From d212040c30bfaaafb0c07f71f30d9b7cf1042a20 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 13:01:05 +0000 Subject: [PATCH] Initial commit --- .../Prefs/dp_user/v2_72/dp_user_prefs | 64 + 01-WaveformGenerator/Prefs/hds.hdp | 19 + .../Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6097 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6841 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Scripts/cleanGenerated.bash | 38 + .../Scripts/cleanGenerated.bat | 42 + 01-WaveformGenerator/Scripts/cleanScratch.bat | 39 + .../Scripts/generateSSHKey.bash | 42 + 01-WaveformGenerator/Scripts/hdlDesigner.bash | 154 + 01-WaveformGenerator/Scripts/hdlDesigner.bat | 301 + 01-WaveformGenerator/Scripts/searchPaths.bat | 209 + 01-WaveformGenerator/Scripts/trimLibs.pl | 170 + 01-WaveformGenerator/Scripts/update_ise.pl | 91 + .../Simulation/waveformGen.do | 30 + .../hdl/lowpass_studentVersion.vhd | 4 + .../hdl/sawtoothGen_studentVersion.vhd | 5 + .../hdl/sawtoothToSquare_studentVersion.vhd | 4 + .../hdl/sawtoothToTriangle_studentVersion.vhd | 4 + .../hdl/triangleToPolygon_studentVersion.vhd | 4 + .../hds/.hdlsidedata/_lowpass_entity.vhd._fpf | 1 + .../hds/.hdlsidedata/_lowpass_entity.vhg._fpf | 1 + .../_lowpass_studentVersion.vhd._fpf | 1 + .../_sawtoothGen_studentVersion.vhd._fpf | 1 + .../_sawtoothToSquare_studentVersion.vhd._fpf | 1 + ...sawtoothToTriangle_studentVersion.vhd._fpf | 1 + .../.hdlsidedata/_sawtoothgen_entity.vhd._fpf | 1 + .../.hdlsidedata/_sawtoothgen_entity.vhg._fpf | 1 + .../_sawtoothtosquare_entity.vhd._fpf | 1 + .../_sawtoothtosquare_entity.vhg._fpf | 1 + .../_sawtoothtotriangle_entity.vhd._fpf | 1 + .../_sawtoothtotriangle_entity.vhg._fpf | 1 + ..._triangleToPolygon_studentVersion.vhd._fpf | 1 + .../_triangletopolygon_entity.vhd._fpf | 1 + .../_triangletopolygon_entity.vhg._fpf | 1 + .../.hdlsidedata/_waveformgen_entity.vhd._fpf | 1 + .../.hdlsidedata/_waveformgen_entity.vhg._fpf | 1 + .../.hdlsidedata/_waveformgen_struct.vhd._fpf | 1 + .../.hdlsidedata/_waveformgen_struct.vhg._fpf | 1 + .../WaveformGenerator/hds/_lowpass._epf | 2 + .../WaveformGenerator/hds/_sawtoothgen._epf | 2 + .../hds/_sawtoothtosquare._epf | 2 + .../hds/_sawtoothtotriangle._epf | 2 + .../hds/_triangletopolygon._epf | 2 + .../WaveformGenerator/hds/_waveformgen._epf | 3 + .../WaveformGenerator/hds/lowpass/symbol.sb | 1607 + .../hds/sawtooth@gen/symbol.sb | 1648 + .../hds/sawtooth@to@square/symbol.sb | 1465 + .../hds/sawtooth@to@triangle/symbol.sb | 1465 + .../hds/triangle@to@polygon/symbol.sb | 1465 + .../hds/waveform@gen/struct.bd | 4462 +++ .../hds/waveform@gen/symbol.sb | 1936 + .../hdl/waveformGen_tester_test.vhd | 22 + .../_waveformGen_tester_test.vhd._fpf | 1 + .../_waveformgen_tb_entity.vhd._fpf | 1 + .../_waveformgen_tb_entity.vhg._fpf | 1 + .../_waveformgen_tb_struct.vhd._fpf | 1 + .../_waveformgen_tb_struct.vhg._fpf | 1 + .../_waveformgen_tester_entity.vhd._fpf | 1 + .../_waveformgen_tester_entity.vhg._fpf | 1 + .../hds/_waveformgen_tb._epf | 3 + .../hds/_waveformgen_tester._epf | 2 + .../hds/waveform@gen_tb/struct.bd | 2865 ++ .../hds/waveform@gen_tb/symbol.sb | 1268 + .../hds/waveform@gen_tester/interface | 1288 + 01-WaveformGenerator/waveformGenerator.bash | 32 + 01-WaveformGenerator/waveformGenerator.bat | 79 + 02-SplineInterpolator/Prefs/hds.hdp | 25 + .../Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6092 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6842 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Scripts/cleanGenerated.bash | 38 + .../Scripts/cleanGenerated.bat | 42 + .../Scripts/cleanScratch.bat | 39 + .../Scripts/generateSSHKey.bash | 42 + .../Scripts/hdlDesigner.bash | 154 + 02-SplineInterpolator/Scripts/hdlDesigner.bat | 301 + 02-SplineInterpolator/Scripts/searchPaths.bat | 209 + 02-SplineInterpolator/Scripts/trimLibs.pl | 170 + 02-SplineInterpolator/Scripts/update_ise.pl | 91 + .../Simulation/coefficients_sinus.pdf | Bin 0 -> 20972 bytes 02-SplineInterpolator/Simulation/sineGen.do | 36 + .../Simulation/waveformGen.do | 30 + ...polatorCalculatePolynom_studentVersion.vhd | 4 + ...nterpolatorCoefficients_studentVersion.vhd | 7 + ...terpolatorShiftRegister_studentVersion.vhd | 7 + .../interpolatorTrigger_studentVersion.vhd | 4 + .../hdl/offsetToUnsigned_studentVersion.vhd | 4 + .../hdl/resizer_studentVersion.vhd | 4 + .../hdl/sineTable_studentVersion.vhd | 27 + ...orCalculatePolynom_studentVersion.vhd._fpf | 1 + ...olatorCoefficients_studentVersion.vhd._fpf | 1 + ...latorShiftRegister_studentVersion.vhd._fpf | 1 + ...nterpolatorTrigger_studentVersion.vhd._fpf | 1 + ...terpolatorcalculatepolynom_entity.vhd._fpf | 1 + ...terpolatorcalculatepolynom_entity.vhg._fpf | 1 + .../_interpolatorcoefficients_entity.vhd._fpf | 1 + .../_interpolatorcoefficients_entity.vhg._fpf | 1 + ..._interpolatorshiftregister_entity.vhd._fpf | 1 + ..._interpolatorshiftregister_entity.vhg._fpf | 1 + .../_interpolatortrigger_entity.vhd._fpf | 1 + .../_interpolatortrigger_entity.vhg._fpf | 1 + .../_offsetToUnsigned_studentVersion.vhd._fpf | 1 + .../_offsettounsigned_entity.vhd._fpf | 1 + .../_offsettounsigned_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_resizer_entity.vhd._fpf | 1 + .../hds/.hdlsidedata/_resizer_entity.vhg._fpf | 1 + .../_resizer_studentVersion.vhd._fpf | 1 + .../_sineTable_studentVersion.vhd._fpf | 1 + .../hds/.hdlsidedata/_sinegen_entity.vhd._fpf | 1 + .../hds/.hdlsidedata/_sinegen_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_sinegen_struct.vhd._fpf | 1 + .../hds/.hdlsidedata/_sinegen_struct.vhg._fpf | 1 + .../.hdlsidedata/_sinetable_entity.vhd._fpf | 1 + .../.hdlsidedata/_sinetable_entity.vhg._fpf | 1 + .../hds/_interpolatorcalculatepolynom._epf | 2 + .../hds/_interpolatorcoefficients._epf | 2 + .../hds/_interpolatorshiftregister._epf | 2 + .../hds/_interpolatortrigger._epf | 2 + .../hds/_offsettounsigned._epf | 2 + .../SplineInterpolator/hds/_resizer._epf | 2 + .../SplineInterpolator/hds/_sinegen._epf | 3 + .../SplineInterpolator/hds/_sinetable._epf | 2 + .../interpolator@calculate@polynom/symbol.sb | 1938 + .../hds/interpolator@coefficients/symbol.sb | 1933 + .../hds/interpolator@shift@register/symbol.sb | 1846 + .../hds/interpolator@trigger/symbol.sb | 1583 + .../hds/offset@to@unsigned/symbol.sb | 1465 + .../SplineInterpolator/hds/resizer/symbol.sb | 1486 + .../SplineInterpolator/hds/sine@gen/struct.bd | 7266 ++++ .../SplineInterpolator/hds/sine@gen/symbol.sb | 1809 + .../hds/sine@gen_tester/interface | 1738 + .../hds/sine@table/symbol.sb | 1506 + .../hdl/sineGen_tester_test.vhd | 19 + .../_sineGen_tester_test.vhd._fpf | 1 + .../.hdlsidedata/_sinegen_tb_entity.vhg._fpf | 1 + .../.hdlsidedata/_sinegen_tb_struct.vhg._fpf | 1 + .../_sinegen_tester_entity.vhg._fpf | 1 + .../hds/_sinegen_tb._epf | 3 + .../hds/_sinegen_tester._epf | 2 + .../hds/sine@gen_tb/struct.bd | 3042 ++ .../hds/sine@gen_tb/symbol.sb | 1244 + .../hds/sine@gen_tester/interface | 1807 + 02-SplineInterpolator/splineInterpolator.bash | 32 + 02-SplineInterpolator/splineInterpolator.bat | 79 + .../hdl/DAC_order1_studentVersion.vhd | 4 + .../hdl/DAC_order2_studentVersion.vhd | 4 + .../_DAC_order1_studentVersion.vhd._fpf | 1 + .../_DAC_order2_studentVersion.vhd._fpf | 1 + .../hds/.hdlsidedata/_dac_entity.vhd._fpf | 1 + .../hds/.hdlsidedata/_dac_entity.vhg._fpf | 1 + .../hds/@d@a@c/symbol.sb | 1585 + .../DigitalToAnalogConverter/hds/_dac._epf | 2 + .../hdl/DAC_tester_test.vhd | 38 + .../.hdlsidedata/_DAC_tester_test.vhd._fpf | 1 + .../hds/.hdlsidedata/_dac_tb_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_dac_tb_struct.vhg._fpf | 1 + .../.hdlsidedata/_dac_tester_entity.vhg._fpf | 1 + .../hds/@d@a@c_tb/struct.bd | 3271 ++ .../hds/@d@a@c_tb/symbol.sb | 1244 + .../hds/@d@a@c_tester/interface | 1653 + .../hds/_dac_tb._epf | 3 + .../hds/_dac_tester._epf | 2 + 03-DigitalToAnalogConverter/Prefs/hds.hdp | 31 + .../Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6092 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6842 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Scripts/cleanGenerated.bash | 38 + .../Scripts/cleanGenerated.bat | 42 + .../Scripts/cleanScratch.bat | 39 + .../Scripts/generateSSHKey.bash | 42 + .../Scripts/hdlDesigner.bash | 154 + .../Scripts/hdlDesigner.bat | 301 + .../Scripts/searchPaths.bat | 209 + .../Scripts/trimLibs.pl | 170 + .../Scripts/update_ise.pl | 91 + 03-DigitalToAnalogConverter/Simulation/DAC.do | 27 + .../Simulation/sineGen.do | 36 + .../Simulation/waveformGen.do | 30 + .../digitalToAnalogConverter.bash | 32 + .../digitalToAnalogConverter.bat | 79 + 04-Lissajous/Board/concat/concatenated.vhd | 1585 + 04-Lissajous/Board/concat/lissajous.lpf | 334 + 04-Lissajous/Board/concat/lissajous.ucf | 19 + 04-Lissajous/Board/concat/lissajous.vhd | 1585 + 04-Lissajous/Board/diamond/lissajous.bit | Bin 0 -> 582677 bytes 04-Lissajous/Board/diamond/lissajous.ldf | 22 + 04-Lissajous/Board/diamond/programmer.xcf | 50 + 04-Lissajous/Board/diamond/reveal_analyze.rva | 638 + 04-Lissajous/Board/diamond/reveal_config.rvl | 662 + 04-Lissajous/Board/diamond/strategy.sty | 203 + 04-Lissajous/Board/hdl/DFF_sim.vhd | 14 + 04-Lissajous/Board/hdl/buff_sim.vhd | 7 + 04-Lissajous/Board/hdl/inverterIn_sim.vhd | 7 + 04-Lissajous/Board/hdl/inverter_sim.vhd | 7 + .../Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf | 1 + .../Board/hds/.hdlsidedata/_buff_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_dff_entity.vhd._fpf | 1 + .../hds/.hdlsidedata/_dff_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_inverterIn_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_inverter_sim.vhd._fpf | 1 + .../.hdlsidedata/_inverterin_entity.vhd._fpf | 1 + .../.hdlsidedata/_inverterin_entity.vhg._fpf | 1 + ...jousgenerator_circuit_ebs3_entity.vhg._fpf | 1 + ...lissajousgenerator_circuit_entity.vhd._fpf | 1 + ...lissajousgenerator_circuit_entity.vhg._fpf | 1 + 04-Lissajous/Board/hds/@d@f@f/symbol.sb | 1211 + .../hds/@f@p@g@a_sine@gen_tester/interface | 1571 + 04-Lissajous/Board/hds/_buff._epf | 2 + .../hds/_lissajousgenerator_circuit._epf | 3 + .../hds/_lissajousgenerator_circuit_ebs2._epf | 3 + .../hds/_lissajousgenerator_circuit_ebs3._epf | 3 + 04-Lissajous/Board/hds/buff/symbol.sb | 1107 + 04-Lissajous/Board/hds/inverter/symbol.sb | 1092 + 04-Lissajous/Board/hds/inverter@in/symbol.sb | 1095 + .../student@version.bd | 3978 ++ .../hds/lissajous@generator_circuit/symbol.sb | 1657 + .../student@version.bd | 3978 ++ .../symbol.sb | 1657 + .../student@version.bd | 4715 +++ .../symbol.sb | 1569 + .../Board/ise/lissajous-XC3S1200E.bit | Bin 0 -> 480260 bytes .../Board/ise/lissajous-XC3S1200E.mcs | 30019 ++++++++++++++++ 04-Lissajous/Board/ise/lissajous-XC3S500E.bit | Bin 0 -> 283887 bytes 04-Lissajous/Board/ise/lissajous-XC3S500E.mcs | 17742 +++++++++ 04-Lissajous/Board/ise/lissajous.dwf3work | Bin 0 -> 268206 bytes 04-Lissajous/Board/ise/lissajous.xise | 331 + .../Board/ise/lissajousGenerator_circuit.bit | Bin 0 -> 283887 bytes .../_lissajousgenerator_entity.vhd._fpf | 1 + .../_lissajousgenerator_entity.vhg._fpf | 1 + .../_lissajousgenerator_struct.vhd._fpf | 1 + .../_lissajousgenerator_struct.vhg._fpf | 1 + .../Lissajous/hds/_lissajousgenerator._epf | 3 + .../hds/lissajous@generator/struct.bd | 4708 +++ .../hds/lissajous@generator/symbol.sb | 1722 + .../hdl/lissajousGenerator_tester_test.vhd | 13 + .../_lissajousGenerator_tester_test.vhd._fpf | 1 + .../_lissajousgenerator_test_entity.vhd._fpf | 1 + .../_lissajousgenerator_test_entity.vhg._fpf | 1 + .../_lissajousgenerator_test_struct.vhd._fpf | 1 + .../_lissajousgenerator_test_struct.vhg._fpf | 1 + ..._lissajousgenerator_tester_entity.vhd._fpf | 1 + ..._lissajousgenerator_tester_entity.vhg._fpf | 1 + .../hds/_lissajousgenerator_test._epf | 3 + .../hds/_lissajousgenerator_tester._epf | 2 + .../lissajous@generator_test/_struct.bd._fpf | 9 + .../hds/lissajous@generator_test/struct.bd | 3941 ++ .../hds/lissajous@generator_test/symbol.sb | 1248 + .../hds/lissajous@generator_tester/interface | 1793 + 04-Lissajous/Prefs/hds.hdp | 46 + 04-Lissajous/Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6075 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6853 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + 04-Lissajous/Scripts/cleanGenerated.bash | 38 + 04-Lissajous/Scripts/cleanGenerated.bat | 42 + 04-Lissajous/Scripts/cleanScratch.bat | 39 + 04-Lissajous/Scripts/generateSSHKey.bash | 42 + 04-Lissajous/Scripts/hdlDesigner.bash | 154 + 04-Lissajous/Scripts/hdlDesigner.bat | 301 + 04-Lissajous/Scripts/searchPaths.bat | 209 + 04-Lissajous/Scripts/trimLibs.pl | 170 + 04-Lissajous/Scripts/update_ise.pl | 91 + 04-Lissajous/Simulation/DAC.do | 31 + 04-Lissajous/Simulation/lissajousGenerator.do | 32 + 04-Lissajous/Simulation/sineGen.do | 36 + 04-Lissajous/Simulation/waveformGen.do | 30 + 04-Lissajous/lissajous.bash | 32 + 04-Lissajous/lissajous.bat | 81 + 05-Morse/Board/concat/morse.lpf | 334 + 05-Morse/Board/concat/morse.ucf | 23 + 05-Morse/Board/concat/morse.vhd | 3247 ++ 05-Morse/Board/diamond/morse.bit | Bin 0 -> 582673 bytes 05-Morse/Board/diamond/morse.ldf | 22 + 05-Morse/Board/diamond/programmer.xcf | 50 + 05-Morse/Board/diamond/reveal_analyze.rva | 638 + 05-Morse/Board/diamond/reveal_config.rvl | 662 + 05-Morse/Board/diamond/strategy.sty | 203 + 05-Morse/Board/hdl/DFF_sim.vhd | 14 + 05-Morse/Board/hdl/buff_sim.vhd | 7 + 05-Morse/Board/hdl/inverterIn_sim.vhd | 7 + 05-Morse/Board/hdl/inverter_sim.vhd | 7 + .../Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf | 1 + .../Board/hds/.hdlsidedata/_buff_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_dff_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_inverterIn_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_inverter_sim.vhd._fpf | 1 + .../.hdlsidedata/_inverterin_entity.vhg._fpf | 1 + .../_morse_circuit_entity.vhg._fpf | 1 + .../_morse_circuit_struct.vhg._fpf | 1 + .../.hdlsidedata/_morse_ebs3_entity.vhg._fpf | 1 + .../.hdlsidedata/_morse_ebs3_struct.vhg._fpf | 1 + 05-Morse/Board/hds/@d@f@f/symbol.sb | 1211 + .../hds/@f@p@g@a_sine@gen_tester/interface | 1571 + 05-Morse/Board/hds/_buff._epf | 2 + 05-Morse/Board/hds/_morse_circuit._epf | 3 + 05-Morse/Board/hds/_morse_ebs2._epf | 3 + 05-Morse/Board/hds/_morse_ebs3._epf | 3 + 05-Morse/Board/hds/buff/symbol.sb | 1107 + 05-Morse/Board/hds/inverter/symbol.sb | 1092 + 05-Morse/Board/hds/inverter@in/symbol.sb | 1095 + 05-Morse/Board/hds/morse_circuit/struct.bd | 5453 +++ 05-Morse/Board/hds/morse_circuit/symbol.sb | 1825 + 05-Morse/Board/hds/morse_ebs2/struct.bd | 5453 +++ 05-Morse/Board/hds/morse_ebs2/symbol.sb | 1825 + 05-Morse/Board/hds/morse_ebs3/struct.bd | 6210 ++++ 05-Morse/Board/hds/morse_ebs3/symbol.sb | 1755 + 05-Morse/Board/ise/morse-XC3S1200E.bit | Bin 0 -> 480244 bytes 05-Morse/Board/ise/morse-XC3S1200E.mcs | 30019 ++++++++++++++++ 05-Morse/Board/ise/morse-XC3S500E.bit | Bin 0 -> 283871 bytes 05-Morse/Board/ise/morse-XC3S500E.mcs | 17742 +++++++++ 05-Morse/Board/ise/morse.xise | 331 + .../charToMorseController_studentVersion.vhd | 54 + .../hdl/characterRegister_studentVersion.vhd | 6 + .../hdl/envelopeRetreiver_studentVersion.vhd | 9 + .../hdl/morseToCharDecoder_studentVersion.vhd | 7 + .../symbolLengthCounter_studentVersion.vhd | 11 + .../hdl/toneGenerator_studentVersion.vhd | 28 + .../Morse/hdl/unitCounter_studentVersion.vhd | 61 + ...rToMorseController_studentVersion.vhd._fpf | 1 + ..._characterRegister_studentVersion.vhd._fpf | 1 + .../.hdlsidedata/_chartomorse_entity.vhg._fpf | 1 + .../.hdlsidedata/_chartomorse_struct.vhg._fpf | 1 + .../_chartomorsecontroller_entity.vhg._fpf | 1 + .../_chartomorsecontroller_fsm.vhg._fpf | 1 + ..._envelopeRetreiver_studentVersion.vhd._fpf | 1 + .../_enveloperetreiver_entity.vhg._fpf | 1 + ...morseToCharDecoder_studentVersion.vhd._fpf | 1 + .../_morsedecoder_entity.vhg._fpf | 1 + .../_morsedecoder_struct.vhg._fpf | 1 + .../_morseencoder_entity.vhg._fpf | 1 + .../_morseencoder_struct.vhg._fpf | 1 + .../_morsetochardecoder_entity.vhg._fpf | 1 + ...ymbolLengthCounter_studentVersion.vhd._fpf | 1 + .../_symbollengthcounter_entity.vhg._fpf | 1 + .../_toneGenerator_studentVersion.vhd._fpf | 1 + .../_tonegenerator_entity.vhg._fpf | 1 + .../_unitCounter_studentVersion.vhd._fpf | 1 + .../.hdlsidedata/_unitcounter_entity.vhg._fpf | 1 + 05-Morse/Morse/hds/_chartomorse._epf | 3 + .../Morse/hds/_chartomorsecontroller._epf | 2 + 05-Morse/Morse/hds/_enveloperetreiver._epf | 2 + 05-Morse/Morse/hds/_morsedecoder._epf | 3 + 05-Morse/Morse/hds/_morseencoder._epf | 3 + 05-Morse/Morse/hds/_morsetochardecoder._epf | 2 + 05-Morse/Morse/hds/_symbollengthcounter._epf | 2 + 05-Morse/Morse/hds/_tonegenerator._epf | 2 + 05-Morse/Morse/hds/_unitcounter._epf | 0 05-Morse/Morse/hds/char@to@morse/struct.bd | 3809 ++ 05-Morse/Morse/hds/char@to@morse/symbol.sb | 1722 + .../Morse/hds/char@to@morse@controller/fsm.sm | 9218 +++++ .../hds/char@to@morse@controller/symbol.sb | 1933 + .../Morse/hds/character@register/symbol.sb | 1654 + .../Morse/hds/envelope@retreiver/symbol.sb | 1609 + 05-Morse/Morse/hds/morse@decoder/struct.bd | 5645 +++ 05-Morse/Morse/hds/morse@decoder/symbol.sb | 1759 + 05-Morse/Morse/hds/morse@encoder/struct.bd | 4641 +++ 05-Morse/Morse/hds/morse@encoder/symbol.sb | 1675 + .../Morse/hds/morse@to@char@decoder/symbol.sb | 1824 + .../Morse/hds/symbol@length@counter/symbol.sb | 1744 + 05-Morse/Morse/hds/tone@generator/symbol.sb | 1528 + 05-Morse/Morse/hds/unit@counter/symbol.sb | 1672 + .../hdl/charToMorseController_tester_test.vhd | 70 + .../hdl/morseDecoder_tester_test.vhd | 108 + .../hdl/morseEncoder_tester_test.vhd | 106 + ...charToMorseController_tester_test.vhd._fpf | 1 + .../_chartomorsecontroller_tb_entity.vhg._fpf | 1 + .../_chartomorsecontroller_tb_struct.vhg._fpf | 1 + ...artomorsecontroller_tester_entity.vhg._fpf | 1 + .../_morseDecoder_tester_test.vhd._fpf | 1 + .../_morseEncoder_tester_test.vhd._fpf | 1 + .../_morsedecoder_tb_entity.vhg._fpf | 1 + .../_morsedecoder_tb_struct.vhg._fpf | 1 + .../_morsedecoder_tester_entity.vhg._fpf | 1 + .../_morseencoder_tb_entity.vhg._fpf | 1 + .../_morseencoder_tb_struct.vhg._fpf | 1 + .../_morseencoder_tester_entity.vhg._fpf | 1 + .../Morse_test/hds/@d@a@c_tester_1/interface | 1035 + .../hds/_chartomorsecontroller_tb._epf | 3 + .../hds/_chartomorsecontroller_tester._epf | 2 + 05-Morse/Morse_test/hds/_morsedecoder_tb._epf | 3 + .../Morse_test/hds/_morsedecoder_tester._epf | 2 + 05-Morse/Morse_test/hds/_morseencoder_tb._epf | 3 + .../Morse_test/hds/_morseencoder_tester._epf | 2 + .../beamer@periph@blanking_tester/interface | 1408 + .../hds/char@to@morse@controller_tb/struct.bd | 3588 ++ .../hds/char@to@morse@controller_tb/symbol.sb | 1244 + .../char@to@morse@controller_tester/interface | 1718 + .../Morse_test/hds/morse@decoder_tb/struct.bd | 3271 ++ .../Morse_test/hds/morse@decoder_tb/symbol.sb | 1244 + .../hds/morse@decoder_tester/interface | 1670 + .../Morse_test/hds/morse@encoder_tb/struct.bd | 2715 ++ .../Morse_test/hds/morse@encoder_tb/symbol.sb | 1244 + .../hds/morse@encoder_tester/interface | 1594 + .../Morse_test/hds/sine@gen_tester/interface | 1182 + .../hds/waveform@gen_tester/interface | 988 + 05-Morse/Prefs/dp_user/v2_72/dp_user_prefs | 65 + 05-Morse/Prefs/hds.hdp | 52 + 05-Morse/Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6095 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6871 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + 05-Morse/Scripts/cleanGenerated.bash | 38 + 05-Morse/Scripts/cleanGenerated.bat | 42 + 05-Morse/Scripts/cleanScratch.bat | 39 + 05-Morse/Scripts/generateSSHKey.bash | 42 + 05-Morse/Scripts/hdlDesigner.bash | 154 + 05-Morse/Scripts/hdlDesigner.bat | 301 + 05-Morse/Scripts/searchPaths.bat | 209 + 05-Morse/Scripts/trimLibs.pl | 170 + 05-Morse/Scripts/update_ise.pl | 91 + 05-Morse/Simulation/charToMorseController.do | 34 + 05-Morse/Simulation/morseDecoder.do | 28 + 05-Morse/Simulation/morseEncoder.do | 31 + 05-Morse/Simulation/uartAgent.txt | 19 + 05-Morse/Simulation/uartDriver.txt | 9 + 05-Morse/Simulation/uartMonitor.txt | 15 + 05-Morse/Simulation/uvmRs232.do | 37 + 05-Morse/morse.bash | 33 + 05-Morse/morse.bat | 81 + .../hdl/ahbGpio_studentVersion.vhd | 33 + .../hdl/ahbUart_studentVersion.vhd | 36 + .../_ahbGpio_studentVersion.vhd._fpf | 1 + .../_ahbUart_studentVersion.vhd._fpf | 1 + .../hds/.hdlsidedata/_ahbgpio_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_ahbuart_entity.vhg._fpf | 1 + .../AhbLiteComponents/hds/_ahbgpio._epf | 2 + .../AhbLiteComponents/hds/_ahbuart._epf | 2 + .../AhbLiteComponents/hds/ahb@gpio/symbol.sb | 2149 ++ .../AhbLiteComponents/hds/ahb@uart/symbol.sb | 2089 ++ .../doc/AMBA_AHB-Lite_spec.pdf | Bin 0 -> 551055 bytes .../AhbLiteComponents_test/doc/MAX11300.pdf | Bin 0 -> 3127089 bytes .../AhbLiteComponents_test/doc/ad670.pdf | Bin 0 -> 372763 bytes .../hdl/ahbGpio_tester_test.vhd | 261 + .../hdl/ahbUart_tester_test.vhd | 330 + .../hdl/uvmAhbDriver_sim.vhd | 74 + .../hdl/uvmAhbMonitor_sim.vhd | 49 + .../_ahbGpio_tester_test.vhd._fpf | 1 + .../_ahbUart_tester_test.vhd._fpf | 1 + .../.hdlsidedata/_ahbgpio_tb_entity.vhg._fpf | 1 + .../.hdlsidedata/_ahbgpio_tb_struct.vhg._fpf | 1 + .../_ahbgpio_tester_entity.vhg._fpf | 1 + .../.hdlsidedata/_ahbuart_tb_entity.vhg._fpf | 1 + .../.hdlsidedata/_ahbuart_tb_struct.vhg._fpf | 1 + .../_ahbuart_tester_entity.vhg._fpf | 1 + .../.hdlsidedata/_uvmAhbDriver_sim.vhd._fpf | 1 + .../.hdlsidedata/_uvmAhbMonitor_sim.vhd._fpf | 1 + .../hds/_ahbgpio_tb._epf | 3 + .../hds/_ahbgpio_tester._epf | 2 + .../hds/_ahbuart_tb._epf | 3 + .../hds/_ahbuart_tester._epf | 2 + .../hds/_uvmahbagenthw._epf | 2 + .../hds/_uvmahbdriver._epf | 2 + .../hds/_uvmahbmonitor._epf | 2 + .../hds/ahb@gpio_tb/struct.bd | 4005 +++ .../hds/ahb@gpio_tb/symbol.sb | 1258 + .../hds/ahb@gpio_tester/interface | 2036 ++ .../hds/ahb@uart_tb/struct.bd | 3697 ++ .../hds/ahb@uart_tb/symbol.sb | 1282 + .../hds/ahb@uart_tester/interface | 2085 ++ .../hds/uvm@ahb@agent@hw/struct.bd | 5392 +++ .../hds/uvm@ahb@agent@hw/symbol.sb | 2116 ++ .../hds/uvm@ahb@driver/symbol.sb | 2001 + .../hds/uvm@ahb@monitor/symbol.sb | 1993 + .../Board/concat/concatenated.vhd | 6031 ++++ .../Board/concat/systemOnChip.lpf | 334 + .../Board/concat/systemOnChip.ucf | 57 + .../Board/concat/systemOnChip.vhd | 6031 ++++ .../Board/diamond/programmer.xcf | 50 + .../Board/diamond/reveal_analyze.rva | 638 + .../Board/diamond/reveal_config.rvl | 662 + .../Board/diamond/strategy.sty | 203 + .../Board/diamond/systemOnChip.bit | Bin 0 -> 587316 bytes .../Board/diamond/systemOnChip.ldf | 22 + .../Board/hdl/DFF_sim.vhd | 14 + .../Board/hdl/buff_sim.vhd | 7 + .../Board/hdl/inverterIn_sim.vhd | 7 + .../Board/hdl/inverter_sim.vhd | 7 + .../Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf | 1 + .../Board/hds/.hdlsidedata/_buff_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_dff_entity.vhg._fpf | 1 + .../.hdlsidedata/_fpga_beamer_entity.vhg._fpf | 1 + .../.hdlsidedata/_fpga_beamer_struct.vhg._fpf | 1 + .../hds/.hdlsidedata/_inverterIn_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_inverter_sim.vhd._fpf | 1 + .../.hdlsidedata/_inverterin_entity.vhg._fpf | 1 + .../.hdlsidedata/_soc_ebs3_entity.vhg._fpf | 1 + .../.hdlsidedata/_soc_ebs3_struct.vhg._fpf | 1 + .../Board/hds/@d@f@f/symbol.sb | 1211 + .../Board/hds/@f@p@g@a_beamer/struct.bd | 6067 ++++ .../hds/@f@p@g@a_beamer/student@version.bd | 6671 ++++ .../Board/hds/@f@p@g@a_beamer/symbol.sb | 1994 + .../Board/hds/@so@c_ebs2/struct.bd | 6067 ++++ .../Board/hds/@so@c_ebs2/student@version.bd | 6671 ++++ .../Board/hds/@so@c_ebs2/symbol.sb | 1994 + .../Board/hds/@so@c_ebs3/struct.bd | 6806 ++++ .../Board/hds/@so@c_ebs3/symbol.sb | 1895 + 06-07-08-09-SystemOnChip/Board/hds/_buff._epf | 2 + .../Board/hds/_fpga_beamer._epf | 3 + .../hds/_lissajousgenerator_circuit._epf | 3 + .../Board/hds/_soc_ebs2._epf | 3 + .../Board/hds/_soc_ebs3._epf | 3 + .../Board/hds/buff/symbol.sb | 1107 + .../Board/hds/inverter/symbol.sb | 1092 + .../Board/hds/inverter@in/symbol.sb | 1095 + .../Board/ise/systemOnChip-XC3S1200E.bit | Bin 0 -> 480246 bytes .../Board/ise/systemOnChip-XC3S1200E.mcs | 30019 ++++++++++++++++ .../Board/ise/systemOnChip-XC3S500E.bit | Bin 0 -> 283873 bytes .../Board/ise/systemOnChip-XC3S500E.mcs | 17742 +++++++++ .../Board/ise/systemOnChip.xise | 331 + .../Documentation/AMBA_AHB-Lite_SPEC.pdf | Bin 0 -> 551055 bytes 06-07-08-09-SystemOnChip/Prefs/hds.hdp | 82 + .../Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6103 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/logs/HDS_log.txt | 73 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6866 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Scripts/cleanGenerated.bash | 38 + .../Scripts/cleanGenerated.bat | 42 + .../Scripts/cleanScratch.bat | 39 + .../Scripts/generateSSHKey.bash | 42 + .../Scripts/hdlDesigner.bash | 154 + .../Scripts/hdlDesigner.bat | 301 + .../Scripts/searchPaths.bat | 209 + 06-07-08-09-SystemOnChip/Scripts/trimLibs.pl | 170 + .../Scripts/update_ise.pl | 91 + 06-07-08-09-SystemOnChip/Simulation/DAC.do | 31 + .../Simulation/ahbBeamer.do | 49 + .../Simulation/ahbGpio.do | 38 + .../Simulation/ahbUart.do | 37 + .../Simulation/beamerSoc.do | 59 + .../Simulation/ramXInit.txt | 512 + .../Simulation/ramYInit.txt | 512 + .../Simulation/sineGen.do | 36 + .../Simulation/waveformGen.do | 30 + .../SystemOnChip/hdl/beamer.asm | 287 + .../SystemOnChip/hdl/beamer.pas | 315 + .../SystemOnChip/hdl/beamer.vhd | 374 + .../blockRAMAddressCounter_studentVersion.vhd | 4 + .../hdl/blockRAMControl_studentVersion.vhd | 6 + .../SystemOnChip/hdl/blockRAM_Spartan2.vhd | 29 + .../SystemOnChip/hdl/blockRAM_Spartan3E.vhd | 44 + .../periphAddressDecoder_studentVersion.vhd | 10 + .../hdl/periphControlReg_studentVersion.vhd | 6 + .../hdl/periphSizeReg_studentVersion.vhd | 4 + .../periphSpeedController_studentVersion.vhd | 4 + .../hdl/periphSpeedReg_studentVersion.vhd | 5 + .../SystemOnChip/hdl/rom_mapped.vhd | 374 + .../hdl/sinCosTable_studentVersion.vhd | 5 + .../.hdlsidedata/_ahbbeamer_entity.vhd._fpf | 1 + .../.hdlsidedata/_ahbbeamer_entity.vhg._fpf | 1 + .../.hdlsidedata/_ahbbeamer_struct.vhd._fpf | 1 + .../.hdlsidedata/_ahbbeamer_struct.vhg._fpf | 1 + .../_ahbbeameroperator_entity.vhd._fpf | 1 + .../_ahbbeameroperator_entity.vhg._fpf | 1 + .../_ahbbeameroperator_struct.vhd._fpf | 1 + .../_ahbbeameroperator_struct.vhg._fpf | 1 + .../_ahbbeamerregisters_entity.vhd._fpf | 1 + .../_ahbbeamerregisters_entity.vhg._fpf | 1 + .../_ahbbeamerregisters_struct.vhd._fpf | 1 + .../_ahbbeamerregisters_struct.vhg._fpf | 1 + .../hds/.hdlsidedata/_beamer.vhd._fpf | 1 + .../.hdlsidedata/_beamersoc_entity.vhg._fpf | 1 + .../.hdlsidedata/_beamersoc_struct.vhg._fpf | 1 + ...kRAMAddressCounter_studentVersion.vhd._fpf | 1 + .../_blockRAMControl_studentVersion.vhd._fpf | 1 + .../.hdlsidedata/_blockRAM_Spartan2.vhd._fpf | 1 + .../.hdlsidedata/_blockRAM_Spartan3E.vhd._fpf | 1 + .../.hdlsidedata/_blockram_entity.vhd._fpf | 1 + .../.hdlsidedata/_blockram_entity.vhg._fpf | 1 + .../_blockramaddresscounter_entity.vhd._fpf | 1 + .../_blockramaddresscounter_entity.vhg._fpf | 1 + .../_blockramcontrol_entity.vhd._fpf | 1 + .../_blockramcontrol_entity.vhg._fpf | 1 + ...riphAddressDecoder_studentVersion.vhd._fpf | 1 + .../_periphControlReg_studentVersion.vhd._fpf | 1 + .../_periphSizeReg_studentVersion.vhd._fpf | 1 + ...iphSpeedController_studentVersion.vhd._fpf | 1 + .../_periphSpeedReg_studentVersion.vhd._fpf | 1 + .../_periphaddressdecoder_entity.vhd._fpf | 1 + .../_periphaddressdecoder_entity.vhg._fpf | 1 + .../_periphcontrolreg_entity.vhd._fpf | 1 + .../_periphcontrolreg_entity.vhg._fpf | 1 + .../_periphspeedcontroller_entity.vhd._fpf | 1 + .../_periphspeedcontroller_entity.vhg._fpf | 1 + .../_periphspeedreg_entity.vhd._fpf | 1 + .../_periphspeedreg_entity.vhg._fpf | 1 + .../.hdlsidedata/_programrom_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_rom_mapped.vhd._fpf | 1 + .../_sinCosTable_studentVersion.vhd._fpf | 1 + .../.hdlsidedata/_sincostable_entity.vhd._fpf | 1 + .../.hdlsidedata/_sincostable_entity.vhg._fpf | 1 + .../SystemOnChip/hds/_ahbbeamer._epf | 3 + .../SystemOnChip/hds/_ahbbeamerblanking._epf | 2 + .../SystemOnChip/hds/_ahbbeameroperator._epf | 2 + .../SystemOnChip/hds/_ahbbeamerregisters._epf | 2 + .../SystemOnChip/hds/_beamerperiph._epf | 3 + .../hds/_beamerperiphblanking._epf | 2 + .../hds/_beamerperiphoperator._epf | 3 + .../hds/_beamerperiphregisters._epf | 3 + .../SystemOnChip/hds/_beamersoc._epf | 3 + .../SystemOnChip/hds/_blockram._epf | 2 + .../hds/_blockramaddresscounter._epf | 2 + .../SystemOnChip/hds/_blockramcontrol._epf | 2 + .../hds/_periphaddressdecoder._epf | 2 + .../SystemOnChip/hds/_periphcontrolreg._epf | 2 + .../SystemOnChip/hds/_periphsizereg._epf | 2 + .../hds/_periphspeedcontroller._epf | 2 + .../SystemOnChip/hds/_periphspeedreg._epf | 2 + .../SystemOnChip/hds/_programrom._epf | 2 + .../SystemOnChip/hds/_sincostable._epf | 2 + .../SystemOnChip/hds/ahb@beamer/struct.bd | 5403 +++ .../SystemOnChip/hds/ahb@beamer/symbol.sb | 2247 ++ .../hds/ahb@beamer@blanking/struct.bd | 25722 +++++++++++++ .../hds/ahb@beamer@blanking/symbol.sb | 2620 ++ .../hds/ahb@beamer@operator/empty.bd | 3078 ++ .../hds/ahb@beamer@operator/struct.bd | 11275 ++++++ .../hds/ahb@beamer@operator/symbol.sb | 2066 ++ .../hds/ahb@beamer@registers/struct.bd | 10779 ++++++ .../hds/ahb@beamer@registers/symbol.sb | 2501 ++ .../SystemOnChip/hds/beamer@periph/struct.bd | 4837 +++ .../SystemOnChip/hds/beamer@periph/symbol.sb | 1909 + .../hds/beamer@periph@blanking/struct.bd | 25722 +++++++++++++ .../hds/beamer@periph@blanking/symbol.sb | 2620 ++ .../hds/beamer@periph@operator/struct.bd | 11240 ++++++ .../hds/beamer@periph@operator/symbol.sb | 2066 ++ .../hds/beamer@periph@registers/struct.bd | 9647 +++++ .../hds/beamer@periph@registers/symbol.sb | 2182 ++ .../SystemOnChip/hds/beamer@soc/struct.bd | 13205 +++++++ .../SystemOnChip/hds/beamer@soc/symbol.sb | 2077 ++ .../SystemOnChip/hds/block@r@a@m/symbol.sb | 1812 + .../hds/block@r@a@m@address@counter/symbol.sb | 1709 + .../hds/block@r@a@m@control/symbol.sb | 1874 + .../hds/periph@address@decoder/symbol.sb | 1719 + .../hds/periph@control@reg/symbol.sb | 2003 ++ .../hds/periph@size@reg/symbol.sb | 1774 + .../hds/periph@speed@controller/symbol.sb | 1646 + .../hds/periph@speed@reg/symbol.sb | 1794 + .../SystemOnChip/hds/program@rom/symbol.sb | 1650 + .../SystemOnChip/hds/sin@cos@table/symbol.sb | 1571 + .../hdl/ahbBeamer_tester_test.vhd | 479 + .../hdl/beamerSoc_tester_test.vhd | 294 + .../hdl/beamerTest_pck_pkg.vhd | 9 + .../hdl/beamerTest_pck_pkg_body.vhd | 16 + .../_ahbBeamer_tester_test.vhd._fpf | 1 + .../_ahbbeamer_tb_entity.vhd._fpf | 1 + .../_ahbbeamer_tb_entity.vhg._fpf | 1 + .../_ahbbeamer_tb_struct.vhd._fpf | 1 + .../_ahbbeamer_tb_struct.vhg._fpf | 1 + .../_ahbbeamer_tester_entity.vhd._fpf | 1 + .../_ahbbeamer_tester_entity.vhg._fpf | 1 + .../_beamerSoc_tester_test.vhd._fpf | 1 + .../.hdlsidedata/_beamerTest_pck_pkg.vhd._fpf | 1 + .../_beamerTest_pck_pkg_body.vhd._fpf | 1 + .../_beamersoc_tb_entity.vhg._fpf | 1 + .../_beamersoc_tb_struct.vhg._fpf | 1 + .../_beamersoc_tester_entity.vhg._fpf | 1 + .../SystemOnChip_test/hds/_ahbbeamer_tb._epf | 3 + .../hds/_ahbbeamer_tester._epf | 2 + .../hds/_beamerperiphblanking_tb._epf | 2 + .../SystemOnChip_test/hds/_beamersoc_tb._epf | 3 + .../hds/_beamersoc_tester._epf | 2 + .../hds/ahb@beamer_tb/struct.bd | 4498 +++ .../hds/ahb@beamer_tb/symbol.sb | 1280 + .../hds/ahb@beamer_tester/interface | 2384 ++ .../hds/ahb@beamer_tester1/interface | 2334 ++ .../hds/beamer@periph@blanking_tb/struct.bd | 5636 +++ .../hds/beamer@periph@blanking_tb/symbol.sb | 1242 + .../beamer@periph@blanking_tester/interface | 1408 + .../hds/beamer@soc_tb/struct.bd | 4189 +++ .../hds/beamer@soc_tb/symbol.sb | 1244 + .../hds/beamer@soc_tester/interface | 1940 + .../hds/sine@gen_tester/interface | 1182 + .../hds/waveform@gen_tester/interface | 988 + 06-07-08-09-SystemOnChip/systemOnChip.bash | 33 + 06-07-08-09-SystemOnChip/systemOnChip.bat | 81 + .../Board/concat/pipelinedOperators.lpf | 334 + .../Board/concat/pipelinedOperators.ucf | 19 + .../Board/concat/pipelinedOperators.vhd | 623 + .../Board/diamond/pipelinedOperators.bit | Bin 0 -> 582686 bytes .../Board/diamond/pipelinedOperators.ldf | 22 + .../Board/diamond/programmer.xcf | 50 + .../Board/diamond/reveal_analyze.rva | 638 + .../Board/diamond/reveal_config.rvl | 662 + .../Board/diamond/strategy.sty | 203 + 10-PipelinedOperators/Board/hdl/DFF_sim.vhd | 14 + 10-PipelinedOperators/Board/hdl/buff_sim.vhd | 7 + .../Board/hdl/inverterIn_sim.vhd | 7 + .../Board/hdl/inverter_sim.vhd | 7 + .../Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf | 1 + .../Board/hds/.hdlsidedata/_buff_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_dff_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_inverterIn_sim.vhd._fpf | 1 + .../hds/.hdlsidedata/_inverter_sim.vhd._fpf | 1 + .../.hdlsidedata/_inverterin_entity.vhg._fpf | 1 + .../_pipelinecounter_circuit_entity.vhg._fpf | 1 + .../_pipelinecounter_circuit_struct.vhg._fpf | 1 + .../_pipelinecounter_ebs2_entity.vhg._fpf | 1 + .../_pipelinecounter_ebs2_struct.vhg._fpf | 1 + .../_pipelinecounter_ebs3_entity.vhg._fpf | 1 + .../_pipelinecounter_ebs3_struct.vhg._fpf | 1 + .../Board/hds/@d@f@f/symbol.sb | 1211 + .../hds/@f@p@g@a_sine@gen_tester/interface | 1571 + 10-PipelinedOperators/Board/hds/_buff._epf | 2 + .../Board/hds/_pipelinecounter_circuit._epf | 3 + .../Board/hds/_pipelinecounter_ebs2._epf | 3 + .../Board/hds/_pipelinecounter_ebs3._epf | 3 + .../Board/hds/buff/symbol.sb | 1107 + .../Board/hds/inverter/symbol.sb | 1092 + .../Board/hds/inverter@in/symbol.sb | 1095 + .../hds/pipeline@counter_circuit/struct.bd | 3650 ++ .../hds/pipeline@counter_circuit/symbol.sb | 1532 + .../Board/hds/pipeline@counter_ebs2/struct.bd | 3649 ++ .../Board/hds/pipeline@counter_ebs2/symbol.sb | 1531 + .../Board/hds/pipeline@counter_ebs3/struct.bd | 4418 +++ .../Board/hds/pipeline@counter_ebs3/symbol.sb | 1466 + .../Board/ise/pipelinedOperators.xise | 328 + .../hdl/parallelAdder_studentVersion.vhd | 7 + .../hdl/pipelineAdder_noPipe.vhd | 45 + .../hdl/pipelineAdder_studentVersion.vhd | 7 + .../hdl/pipelineCounter_studentVersion.vhd | 43 + .../_parallelAdder_studentVersion.vhd._fpf | 1 + .../_paralleladder_entity.vhg._fpf | 1 + .../_pipelineAdder_noPipe.vhd._fpf | 1 + .../_pipelineAdder_studentVersion.vhd._fpf | 1 + .../_pipelineCounter_studentVersion.vhd._fpf | 1 + .../_pipelineadder_entity.vhg._fpf | 1 + .../_pipelinecounter_entity.vhg._fpf | 1 + .../hds/_paralleladder._epf | 2 + .../hds/_pipelineadder._epf | 3 + .../hds/_pipelinecounter._epf | 3 + .../hds/parallel@adder/symbol.sb | 1603 + .../hds/pipeline@adder/symbol.sb | 1795 + .../hds/pipeline@counter/symbol.sb | 1547 + .../hdl/parallelAdder_tester_test.vhd | 48 + .../hdl/pipelineAdder_tester_test.vhd | 68 + .../hdl/pipelineCounter_tester_test.vhd | 24 + .../_parallelAdder_tester_test.vhd._fpf | 1 + .../_paralleladder_tb_entity.vhg._fpf | 1 + .../_paralleladder_tb_struct.vhg._fpf | 1 + .../_paralleladder_tester_entity.vhg._fpf | 1 + .../_pipelineAdder_tester_test.vhd._fpf | 1 + .../_pipelineCounter_tester_test.vhd._fpf | 4 + .../_pipelineadder_tb_entity.vhg._fpf | 1 + .../_pipelineadder_tb_struct.vhg._fpf | 1 + .../_pipelineadder_tester_entity.vhg._fpf | 1 + .../_pipelinecounter_tb_entity.vhg._fpf | 1 + .../_pipelinecounter_tb_struct.vhg._fpf | 1 + .../_pipelinecounter_tester_entity.vhg._fpf | 1 + .../hds/@d@a@c_tester_1/interface | 1035 + .../hds/@pipeline@counter_tester/interface | 1492 + .../hds/_paralleladder_tb._epf | 3 + .../hds/_paralleladder_tester._epf | 2 + .../hds/_pipelineadder_tb._epf | 3 + .../hds/_pipelineadder_tester._epf | 2 + .../hds/_pipelinecounter_tb._epf | 3 + .../hds/_pipelinecounter_tester._epf | 2 + .../beamer@periph@blanking_tester/interface | 1408 + .../hds/parallel@adder_tb/struct.bd | 2791 ++ .../hds/parallel@adder_tb/symbol.sb | 1216 + .../hds/parallel@adder_tester/interface | 1346 + .../hds/pc_tester/interface | 1502 + .../hds/pipeline@adder_tb/struct.bd | 3025 ++ .../hds/pipeline@adder_tb/symbol.sb | 1216 + .../hds/pipeline@adder_tester/interface | 1497 + .../hds/pipeline@counter_tb/struct.bd | 2568 ++ .../hds/pipeline@counter_tb/symbol.sb | 1243 + .../hds/sine@gen_tester/interface | 1182 + .../hds/waveform@gen_tester/interface | 988 + 10-PipelinedOperators/Prefs/hds.hdp | 28 + .../Prefs/hds_team/shared.hdp | 23 + .../Prefs/hds_team/v2018.1/hds_team_prefs | 55 + .../Prefs/hds_team/v2018.1/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.2/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.2/title_block.tmpl | 273 + .../Prefs/hds_team/v2019.3/hds_team_prefs | 55 + .../Prefs/hds_team/v2019.3/title_block.tmpl | 273 + .../hds_user-linux/v2019.3/hds_user_prefs | 6094 ++++ .../hds_user-linux/v2019.3/tasks/generate.tsk | 41 + .../v2019.3/tasks/modelsim_compile.tsk | 98 + .../v2019.3/tasks/modelsim_flow.tsk | 83 + .../v2019.3/tasks/modelsim_simulate.tsk | 98 + .../v2019.3/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 114 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.3/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2018.1/hds_user_prefs | 6831 ++++ .../Prefs/hds_user/v2018.1/tasks/generate.tsk | 41 + .../v2018.1/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2018.1/tasks/modelsim_flow.tsk | 83 + .../v2018.1/tasks/modelsim_simulate.tsk | 96 + .../v2018.1/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2018.1/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Prefs/hds_user/v2019.2/hds_user_prefs | 6870 ++++ .../tasks/diamond_project_navigator.tsk | 162 + .../Prefs/hds_user/v2019.2/tasks/generate.tsk | 41 + .../v2019.2/tasks/modelsim_compile.tsk | 98 + .../hds_user/v2019.2/tasks/modelsim_flow.tsk | 83 + .../v2019.2/tasks/modelsim_simulate.tsk | 98 + .../v2019.2/tasks/prepare_for_synthesis.tsk | 162 + .../tasks/xilinx_project_navigator.tsk | 163 + .../templates/text_files/new_document.txt | 13 + .../vhdl_architecture/architecture.vhd | 15 + .../templates/vhdl_combined/combined.vhd | 17 + .../vhdl_configuration/configuration.vhd | 19 + .../v2019.2/templates/vhdl_entity/entity.vhd | 15 + .../vhdl_package_body/package_body.vhd | 16 + .../vhdl_package_header/package_header.vhd | 18 + .../Scripts/cleanGenerated.bash | 38 + .../Scripts/cleanGenerated.bat | 42 + .../Scripts/cleanScratch.bat | 39 + .../Scripts/generateSSHKey.bash | 42 + .../Scripts/hdlDesigner.bash | 154 + 10-PipelinedOperators/Scripts/hdlDesigner.bat | 301 + 10-PipelinedOperators/Scripts/searchPaths.bat | 209 + 10-PipelinedOperators/Scripts/trimLibs.pl | 170 + 10-PipelinedOperators/Scripts/update_ise.pl | 91 + .../Simulation/parallelAdder.do | 27 + .../Simulation/pipelineAdder.do | 32 + .../Simulation/pipelineCounter.do | 25 + 10-PipelinedOperators/pipelinedOperators.bash | 32 + 10-PipelinedOperators/pipelinedOperators.bat | 81 + Libs/AhbLite/hdl/ahbDecoder_RTL.vhd | 19 + Libs/AhbLite/hdl/ahbLite_pkg.vhd | 59 + Libs/AhbLite/hdl/ahbLite_pkg_body.vhd | 15 + Libs/AhbLite/hdl/ahbMasterInterface_RTL.vhd | 70 + Libs/AhbLite/hdl/ahbMultiplexor_RTL.vhd | 18 + Libs/AhbLite/hdl/ahbMuxConnector_RTL.vhd | 14 + .../hds/.hdlsidedata/_ahbDecoder_RTL.vhd._fpf | 1 + .../hds/.hdlsidedata/_ahbLite_pkg.vhd._fpf | 4 + .../.hdlsidedata/_ahbLite_pkg_body.vhd._fpf | 4 + .../_ahbMasterInterface_RTL.vhd._fpf | 4 + .../.hdlsidedata/_ahbMultiplexor_RTL.vhd._fpf | 1 + .../_ahbMuxConnector_RTL.vhd._fpf | 1 + .../.hdlsidedata/_ahbdecoder_entity.vhg._fpf | 1 + .../_ahbmasterinterface_entity.vhg._fpf | 1 + .../_ahbmultiplexor_entity.vhg._fpf | 1 + .../_ahbmuxconnector_entity.vhg._fpf | 1 + Libs/AhbLite/hds/_ahbdecoder._epf | 2 + Libs/AhbLite/hds/_ahbmasterinterface._epf | 2 + Libs/AhbLite/hds/_ahbmultiplexor._epf | 2 + Libs/AhbLite/hds/_ahbmuxconnector._epf | 2 + Libs/AhbLite/hds/ahb@decoder/symbol.sb | 1448 + .../hds/ahb@master@interface/symbol.sb | 2594 ++ Libs/AhbLite/hds/ahb@multiplexor/symbol.sb | 1750 + Libs/AhbLite/hds/ahb@mux@connector/symbol.sb | 1835 + Libs/AhbLite_test/doc/AMBA_AHB-Lite_spec.pdf | Bin 0 -> 551055 bytes Libs/AhbLite_test/hdl/ahbLite_tester_test.vhd | 145 + .../_ahbLite_tester_test.vhd._fpf | 4 + Libs/AhbLite_test/hds/_ahblite_tb._epf | 3 + Libs/AhbLite_test/hds/_ahblite_tester._epf | 2 + Libs/AhbLite_test/hds/ahb@lite_tb/struct.bd | 7355 ++++ Libs/AhbLite_test/hds/ahb@lite_tb/symbol.sb | 1258 + .../hds/ahb@lite_tester/interface | 2685 ++ Libs/AhbLite_test/hds/hds/_cordic_tb._epf | 2 + Libs/AhbLite_test/hds/hds/_cordic_tester._epf | 2 + .../AhbLite_test/hds/hds/_motherboard_tb._epf | 3 + .../hds/hds/_motherboard_tester._epf | 2 + Libs/Common/hdl/blinker_arch.vhd | 89 + Libs/Common/hdl/commonLib.vhd | 68 + Libs/Common/hdl/commonLib_body.vhd | 105 + Libs/Common/hdl/debounce_rtl.vhd | 112 + Libs/Common/hdl/debouncerULogicVector_RTL.vhd | 97 + Libs/Common/hdl/debouncer_RTL.vhd | 83 + Libs/Common/hdl/edgeDetector_rtl.vhd | 48 + Libs/Common/hdl/rotaryToUnsigned_rtl.vhd | 76 + Libs/Common/hdl/spikeFilter_RTL.vhd | 82 + Libs/Common/hdl/toggler_RTL.vhd | 90 + .../hds/.hdlsidedata/_blinker_arch.vhd._fpf | 4 + .../hds/.hdlsidedata/_blinker_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_commonLib.vhd._fpf | 1 + .../hds/.hdlsidedata/_commonLib_body.vhd._fpf | 1 + .../hds/.hdlsidedata/_debounce_rtl.vhd._fpf | 4 + .../_debouncerULogicVector_RTL.vhd._fpf | 1 + .../hds/.hdlsidedata/_debouncer_RTL.vhd._fpf | 1 + .../.hdlsidedata/_debouncer_entity.vhg._fpf | 1 + .../_debouncerulogicvector_entity.vhd._fpf | 1 + .../_debouncerulogicvector_entity.vhg._fpf | 1 + .../.hdlsidedata/_edgeDetector_rtl.vhd._fpf | 1 + .../_edgedetector_entity.vhd._fpf | 1 + .../_rotaryToUnsigned_rtl.vhd._fpf | 1 + .../_rotarytounsigned_entity.vhd._fpf | 1 + .../.hdlsidedata/_spikeFilter_RTL.vhd._fpf | 1 + .../.hdlsidedata/_spikefilter_entity.vhd._fpf | 1 + .../.hdlsidedata/_spikefilter_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_toggler_RTL.vhd._fpf | 1 + .../hds/.hdlsidedata/_toggler_entity.vhg._fpf | 1 + Libs/Common/hds/_blinker._epf | 2 + Libs/Common/hds/_debounce._epf | 2 + Libs/Common/hds/_debouncer._epf | 2 + Libs/Common/hds/_edgedetector._epf | 2 + Libs/Common/hds/_rotarytounsigned._epf | 2 + Libs/Common/hds/_toggler._epf | 2 + Libs/Common/hds/blinker/symbol.sb | 1557 + Libs/Common/hds/debounce/symbol.sb | 1586 + Libs/Common/hds/debouncer/symbol.sb | 1552 + .../hds/debouncer@u@logic@vector/symbol.sb | 1576 + Libs/Common/hds/edge@detector/symbol.sb | 1647 + Libs/Common/hds/rotary@to@unsigned/symbol.sb | 1602 + Libs/Common/hds/spike@filter/symbol.sb | 1552 + Libs/Common/hds/toggler/symbol.sb | 1552 + Libs/Common_test/hdl/clockGenerator_sim.vhd | 13 + Libs/Common_test/hdl/commonLib_tb_test.vhd | 26 + Libs/Common_test/hdl/debounce_tester_test.vhd | 141 + .../hdl/debouncerULogicVector_tester_RTL.vhd | 57 + .../Common_test/hdl/debouncer_tester_test.vhd | 49 + Libs/Common_test/hdl/requiredBitNb.txt | 40 + .../hdl/rotaryToUnsigned_tester_test.vhd | 47 + .../hdl/spikeFilter_tester_test.vhd | 47 + Libs/Common_test/hdl/testUtils_pkg.vhd | 127 + Libs/Common_test/hdl/testUtils_pkg_body.vhd | 924 + Libs/Common_test/hdl/testUtils_tb_test.vhd | 102 + Libs/Common_test/hdl/toggler_tester_test.vhd | 56 + .../.hdlsidedata/_clockGenerator_sim.vhd._fpf | 1 + .../.hdlsidedata/_commonLib_tb_test.vhd._fpf | 4 + .../_debounce_tester_test.vhd._fpf | 4 + ..._debouncerULogicVector_tester_RTL.vhd._fpf | 4 + .../_debouncer_tester_test.vhd._fpf | 1 + .../_rotaryToUnsigned_tester_test.vhd._fpf | 1 + .../_rotarytounsigned_tb_entity.vhd._fpf | 1 + .../_rotarytounsigned_tb_struct.vhd._fpf | 1 + .../_rotarytounsigned_tester_entity.vhd._fpf | 1 + .../_spikeFilter_tester_test.vhd._fpf | 4 + .../hds/.hdlsidedata/_testUtils_pkg.vhd._fpf | 1 + .../.hdlsidedata/_testUtils_pkg_body.vhd._fpf | 1 + .../.hdlsidedata/_testUtils_tb_test.vhd._fpf | 1 + .../_toggler_tester_test.vhd._fpf | 1 + Libs/Common_test/hds/_clockgenerator._epf | 2 + Libs/Common_test/hds/_commonlib_tb._epf | 3 + Libs/Common_test/hds/_debounce_tb._epf | 3 + Libs/Common_test/hds/_debounce_tester._epf | 2 + Libs/Common_test/hds/_debouncer_tb._epf | 3 + Libs/Common_test/hds/_debouncer_tester._epf | 2 + .../hds/_debouncerulogicvector_tb._epf | 3 + .../hds/_debouncerulogicvector_tester._epf | 2 + .../Common_test/hds/_rotarytounsigned_tb._epf | 3 + .../hds/_rotarytounsigned_tester._epf | 2 + Libs/Common_test/hds/_spikefilter_tb._epf | 3 + Libs/Common_test/hds/_testutils_tb._epf | 3 + Libs/Common_test/hds/_toggler_tb._epf | 3 + Libs/Common_test/hds/_toggler_tester._epf | 2 + .../Common_test/hds/clock@generator/symbol.sb | 1499 + Libs/Common_test/hds/common@lib_tb/symbol.sb | 1276 + Libs/Common_test/hds/debounce_tb/struct.bd | 2411 ++ Libs/Common_test/hds/debounce_tb/symbol.sb | 1215 + .../Common_test/hds/debounce_tester/interface | 1600 + .../hds/debouncer@u@logic@vector_tb/struct.bd | 2771 ++ .../hds/debouncer@u@logic@vector_tb/symbol.sb | 1278 + .../debouncer@u@logic@vector_tester/interface | 1252 + Libs/Common_test/hds/debouncer_tb/struct.bd | 2714 ++ Libs/Common_test/hds/debouncer_tb/symbol.sb | 1278 + .../hds/debouncer_tester/interface | 1523 + .../hds/rotary@to@unsigned_tb/struct.bd | 2783 ++ .../hds/rotary@to@unsigned_tb/symbol.sb | 1278 + .../hds/rotary@to@unsigned_tester/interface | 1562 + .../Common_test/hds/spike@filter_tb/struct.bd | 2725 ++ .../Common_test/hds/spike@filter_tb/symbol.sb | 1278 + .../hds/spike@filter_tester/interface | 1206 + Libs/Common_test/hds/test@utils_tb/symbol.sb | 1275 + Libs/Common_test/hds/toggler_tb/struct.bd | 2714 ++ Libs/Common_test/hds/toggler_tb/symbol.sb | 1278 + Libs/Common_test/hds/toggler_tester/interface | 1523 + Libs/Common_test/sim/debounce.do | 32 + Libs/Common_test/sim/debouncerULogicVector.do | 24 + Libs/Common_test/sim/rotaryToUnsigned.do | 26 + Libs/Common_test/sim/spikeFilter.do | 23 + Libs/Lattice/hdl/ice40_sbIoOd_rtl.vhd | 27 + Libs/Lattice/hdl/pll_rtl.vhd | 93 + Libs/Lattice/hdl/pll_vga_Structure.vhd | 70 + .../.hdlsidedata/_ice40_sbIoOd_rtl.vhd._fpf | 4 + .../hds/.hdlsidedata/_pll_rtl.vhd._fpf | 4 + .../.hdlsidedata/_pll_vga_Structure.vhd._fpf | 4 + Libs/Lattice/hds/_ice40_sbiood._epf | 2 + Libs/Lattice/hds/_pll._epf | 2 + Libs/Lattice/hds/_pll_vga._epf | 2 + Libs/Lattice/hds/ice40_sb@io@od/symbol.sb | 1521 + Libs/Lattice/hds/pll/symbol.sb | 1845 + Libs/Lattice/hds/pll_vga/symbol.sb | 1449 + Libs/Memory/hdl/bramBinASCIIInit_rtl.vhd | 39 + .../Memory/hdl/bramDualportWritefirst_bhv.vhd | 54 + Libs/Memory/hdl/bramDualport_bhv.vhd | 41 + Libs/Memory/hdl/bramHexASCIIInit_rtl.vhd | 42 + Libs/Memory/hdl/bram_actel.vhd | 27 + Libs/Memory/hdl/bram_bhv.vhd | 20 + Libs/Memory/hdl/bram_dualport_writefirst.vhd | 55 + Libs/Memory/hdl/bram_hexRead.vhd | 42 + Libs/Memory/hdl/bram_withInit.vhd | 39 + ...oTxBuswidthAdaptionRxbigger_behavioral.vhd | 73 + ...oTxBuswidthAdaptionTxbigger_behavioral.vhd | 75 + Libs/Memory/hdl/fifo_bram_rtl.vhd | 165 + Libs/Memory/hdl/fifo_minimal.vhd | 63 + Libs/Memory/hdl/fifo_oneRegister_rtl.vhd | 37 + Libs/Memory/hdl/fifo_pim.vhd | 118 + Libs/Memory/hdl/fifo_rtl_minimal.vhd | 97 + Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd | 84 + Libs/Memory/hdl/flashController_RTL.vhd | 140 + .../hdl/sdramControllerBuildAddress_RTL.vhd | 36 + .../hdl/sdramControllerRefreshCounter_RTL.vhd | 48 + Libs/Memory/hdl/sdramControllerSR_RTL.vhd | 18 + .../hdl/sdramControllerSampleDataIn_RTL.vhd | 17 + .../hdl/sdramControllerStoreData_RTL.vhd | 14 + ...dramControllerTimingsShiftRegister_RTL.vhd | 24 + .../_bramBinASCIIInit_rtl.vhd._fpf | 1 + .../_bramDualportWritefirst_bhv.vhd._fpf | 4 + .../.hdlsidedata/_bramDualport_bhv.vhd._fpf | 1 + .../_bramHexASCIIInit_rtl.vhd._fpf | 1 + .../hds/.hdlsidedata/_bram_actel.vhd._fpf | 1 + .../hds/.hdlsidedata/_bram_bhv.vhd._fpf | 1 + .../_bram_dualport_writefirst.vhd._fpf | 1 + .../hds/.hdlsidedata/_bram_hexRead.vhd._fpf | 4 + .../hds/.hdlsidedata/_bram_withInit.vhd._fpf | 1 + .../_bramdualportwritefirst_entity.vhd._fpf | 1 + .../_bramdualportwritefirst_entity.vhg._fpf | 1 + ...swidthAdaptionRxbigger_behavioral.vhd._fpf | 4 + ...swidthAdaptionTxbigger_behavioral.vhd._fpf | 4 + .../.hdlsidedata/_fifo_bram_entity.vhd._fpf | 1 + .../.hdlsidedata/_fifo_bram_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf | 1 + .../hds/.hdlsidedata/_fifo_entity.vhd._fpf | 1 + .../hds/.hdlsidedata/_fifo_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_fifo_minimal.vhd._fpf | 1 + .../_fifo_oneRegister_rtl.vhd._fpf | 4 + .../_fifo_oneregister_entity.vhd._fpf | 1 + .../_fifo_oneregister_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_fifo_pim.vhd._fpf | 1 + .../hds/.hdlsidedata/_fifo_rtl.vhd._fpf | 1 + .../.hdlsidedata/_fifo_rtl_minimal.vhd._fpf | 1 + .../hds/.hdlsidedata/_fifo_struct.vhd._fpf | 1 + .../hds/.hdlsidedata/_fifo_struct.vhg._fpf | 1 + .../_fifobridgerxtotx_rtl.vhd._fpf | 1 + .../_flashController_RTL.vhd._fpf | 4 + .../_sdramControllerBuildAddress_RTL.vhd._fpf | 4 + ...sdramControllerRefreshCounter_RTL.vhd._fpf | 4 + .../_sdramControllerSR_RTL.vhd._fpf | 4 + .../_sdramControllerSampleDataIn_RTL.vhd._fpf | 4 + .../_sdramControllerStoreData_RTL.vhd._fpf | 4 + ...ontrollerTimingsShiftRegister_RTL.vhd._fpf | 4 + Libs/Memory/hds/@f@i@f@o/struct.bd | 4408 +++ Libs/Memory/hds/@f@i@f@o/symbol.sb | 1860 + Libs/Memory/hds/@f@i@f@o_bram/symbol.sb | 1848 + .../hds/@f@i@f@o_one@register/symbol.sb | 1828 + Libs/Memory/hds/_bram._epf | 3 + Libs/Memory/hds/_bramBinASCIIInit._epf | 3 + Libs/Memory/hds/_bramHexASCIIInit._epf | 3 + Libs/Memory/hds/_bramdualport._epf | 3 + Libs/Memory/hds/_bramdualportwritefirst._epf | 3 + Libs/Memory/hds/_fifo._epf | 3 + Libs/Memory/hds/_fifo_bram._epf | 3 + Libs/Memory/hds/_fifo_oneregister._epf | 3 + Libs/Memory/hds/_fifobridge._epf | 3 + .../hds/_fifobridgebuswidthadaption._epf | 3 + Libs/Memory/hds/_fifobridgerxtotx._epf | 2 + ...obridgerxtotxbuswidthadaptionrxbigger._epf | 2 + ...obridgerxtotxbuswidthadaptiontxbigger._epf | 2 + Libs/Memory/hds/_flashcontroller._epf | 3 + Libs/Memory/hds/_sdramcontroller._epf | 3 + .../hds/_sdramcontrollerbuildaddress._epf | 2 + Libs/Memory/hds/_sdramcontrollerfsm._epf | 2 + .../hds/_sdramcontrollerrefreshcounter._epf | 2 + .../hds/_sdramcontrollersampledatain._epf | 2 + Libs/Memory/hds/_sdramcontrollersr._epf | 2 + .../Memory/hds/_sdramcontrollerstoredata._epf | 2 + .../_sdramcontrollertimingsshiftregister._epf | 2 + Libs/Memory/hds/bram/symbol.sb | 1771 + Libs/Memory/hds/bram@Bin@ASCII@Init/symbol.sb | 1771 + Libs/Memory/hds/bram@Hex@ASCII@Init/symbol.sb | 1771 + Libs/Memory/hds/bram@dualport/symbol.sb | 2131 ++ .../hds/bram@dualport@writefirst/symbol.sb | 2162 ++ Libs/Memory/hds/fifo@bridge/struct.bd | 4613 +++ Libs/Memory/hds/fifo@bridge/symbol.sb | 2251 ++ .../fifo@bridge@bus@width@adaption/struct.bd | 3912 ++ .../fifo@bridge@bus@width@adaption/symbol.sb | 1810 + .../Memory/hds/fifo@bridge@rx@to@tx/symbol.sb | 1875 + .../interface | 1823 + .../interface | 1823 + Libs/Memory/hds/flash@controller/symbol.sb | 2518 ++ Libs/Memory/hds/sdram@controller/struct.bd | 9775 +++++ Libs/Memory/hds/sdram@controller/symbol.sb | 2973 ++ .../sdram@controller@build@address/symbol.sb | 1823 + Libs/Memory/hds/sdram@controller@fsm/fsm.sm | 11074 ++++++ .../Memory/hds/sdram@controller@fsm/symbol.sb | 2624 ++ .../symbol.sb | 1625 + .../Memory/hds/sdram@controller@s@r/symbol.sb | 1581 + .../sdram@controller@sample@data@in/symbol.sb | 1606 + .../hds/sdram@controller@store@data/symbol.sb | 1606 + .../symbol.sb | 1544 + Libs/Memory_test/hdl/Flash_behav.vhd | 528 + Libs/Memory_test/hdl/bram_tester_test.vhd | 83 + Libs/Memory_test/hdl/fifo_tester_test.vhd | 339 + .../hdl/flashController_tester_test.vhd | 88 + Libs/Memory_test/hdl/flash_tester_test.vhd | 102 + Libs/Memory_test/hdl/mti_pkg_pkg.vhd | 18 + Libs/Memory_test/hdl/mti_pkg_pkg_body.vhd | 234 + .../hdl/sdramController_tester_test.vhd | 82 + .../hdl/sdram_mt48lc16m16a2_sim.vhd | 1363 + .../hds/.hdlsidedata/_Flash_behav.vhd._fpf | 1 + .../.hdlsidedata/_bram_tester_test.vhd._fpf | 4 + .../.hdlsidedata/_fifo_tester_test.vhd._fpf | 4 + .../_flashController_tester_test.vhd._fpf | 4 + .../.hdlsidedata/_flash_tester_test.vhd._fpf | 1 + .../hds/.hdlsidedata/_mti_pkg_pkg.vhd._fpf | 4 + .../.hdlsidedata/_mti_pkg_pkg_body.vhd._fpf | 4 + .../_sdramController_tester_test.vhd._fpf | 1 + .../_sdram_mt48lc16m16a2_sim.vhd._fpf | 4 + Libs/Memory_test/hds/_bram_tb._epf | 3 + Libs/Memory_test/hds/_bram_tester._epf | 2 + Libs/Memory_test/hds/_fifo_tb._epf | 3 + Libs/Memory_test/hds/_flash_28f128j3a._epf | 2 + Libs/Memory_test/hds/_flash_tb._epf | 3 + Libs/Memory_test/hds/_flash_tester._epf | 2 + Libs/Memory_test/hds/_flashcontroller_tb._epf | 3 + .../hds/_flashcontroller_tester._epf | 2 + Libs/Memory_test/hds/_sdramcontroller_tb._epf | 3 + .../hds/_sdramcontroller_tester._epf | 2 + Libs/Memory_test/hds/bram_tb/struct.bd | 3661 ++ Libs/Memory_test/hds/bram_tb/symbol.sb | 1256 + Libs/Memory_test/hds/bram_tester/interface | 2134 ++ Libs/Memory_test/hds/fifo_tb/struct.bd | 3219 ++ .../struct.bd.info/msimSimulationReplay.sh | 3 + Libs/Memory_test/hds/fifo_tb/symbol.sb | 1256 + Libs/Memory_test/hds/fifo_tester/interface | 1504 + .../hds/flash@controller_tb/struct.bd | 5566 +++ .../hds/flash@controller_tb/symbol.sb | 1256 + .../hds/flash@controller_tester/interface | 1973 + .../hds/flash_28@f128@j3@a/symbol.sb | 1951 + Libs/Memory_test/hds/flash_tb/struct.bd | 3224 ++ Libs/Memory_test/hds/flash_tb/symbol.sb | 1256 + Libs/Memory_test/hds/flash_tester/interface | 1841 + .../hds/sdram@controller_tb/struct.bd | 6053 ++++ .../hds/sdram@controller_tb/symbol.sb | 1256 + .../hds/sdram@controller_tester/interface | 1971 + .../hds/sdram_mt48lc16m16a2/symbol.sb | 2448 ++ Libs/NanoBlaze/hdl/aluBOpSelector_RTL.vhd | 24 + Libs/NanoBlaze/hdl/alu_RTL.vhd | 113 + Libs/NanoBlaze/hdl/branchStack_RTL.vhd | 40 + Libs/NanoBlaze/hdl/controller_RTL.vhd | 236 + Libs/NanoBlaze/hdl/instructionDecoder_RTL.vhd | 56 + Libs/NanoBlaze/hdl/nanoAsm.pl | 565 + Libs/NanoBlaze/hdl/nanoPascal.pl | 1198 + Libs/NanoBlaze/hdl/nanoTest.asm | 342 + Libs/NanoBlaze/hdl/nanoTest.pas | 368 + Libs/NanoBlaze/hdl/nanoTest.vhd | 431 + Libs/NanoBlaze/hdl/programCounter_RTL.vhd | 24 + Libs/NanoBlaze/hdl/registerFile_RTL.vhd | 26 + Libs/NanoBlaze/hdl/rom_empty.vhd | 21 + Libs/NanoBlaze/hdl/rom_mapped.vhd | 431 + Libs/NanoBlaze/hdl/scratchpad_RTL.vhd | 21 + .../.hdlsidedata/_aluBOpSelector_RTL.vhd._fpf | 4 + .../hds/.hdlsidedata/_alu_RTL.vhd._fpf | 1 + .../hds/.hdlsidedata/_alu_entity.vhg._fpf | 1 + .../.hdlsidedata/_aluandregs_entity.vhg._fpf | 1 + .../.hdlsidedata/_aluandregs_struct.vhg._fpf | 1 + .../_alubopselector_entity.vhg._fpf | 1 + .../.hdlsidedata/_branchStack_RTL.vhd._fpf | 4 + .../.hdlsidedata/_branchstack_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_controller_RTL.vhd._fpf | 4 + .../.hdlsidedata/_controller_entity.vhg._fpf | 1 + .../_instructionDecoder_RTL.vhd._fpf | 4 + .../_instructiondecoder_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_nanoTest.vhd._fpf | 1 + .../.hdlsidedata/_nanoblaze_entity.vhg._fpf | 1 + .../.hdlsidedata/_nanoblaze_struct.vhg._fpf | 1 + .../_nanoprocessor_entity.vhg._fpf | 1 + .../_nanoprocessor_struct.vhg._fpf | 1 + .../.hdlsidedata/_programCounter_RTL.vhd._fpf | 4 + .../_programcounter_entity.vhg._fpf | 1 + .../.hdlsidedata/_programrom_entity.vhg._fpf | 1 + .../.hdlsidedata/_registerFile_RTL.vhd._fpf | 4 + .../_registerfile_entity.vhg._fpf | 1 + .../hds/.hdlsidedata/_rom_empty.vhd._fpf | 1 + .../hds/.hdlsidedata/_rom_mapped.vhd._fpf | 1 + .../hds/.hdlsidedata/_scratchpad_RTL.vhd._fpf | 4 + .../.hdlsidedata/_scratchpad_entity.vhg._fpf | 1 + Libs/NanoBlaze/hds/_alu._epf | 2 + Libs/NanoBlaze/hds/_aluandregs._epf | 2 + Libs/NanoBlaze/hds/_alubopselector._epf | 2 + Libs/NanoBlaze/hds/_branchstack._epf | 2 + Libs/NanoBlaze/hds/_controller._epf | 2 + Libs/NanoBlaze/hds/_instructiondecoder._epf | 2 + Libs/NanoBlaze/hds/_nanoblaze._epf | 3 + Libs/NanoBlaze/hds/_nanoprocessor._epf | 2 + Libs/NanoBlaze/hds/_programcounter._epf | 2 + Libs/NanoBlaze/hds/_programrom._epf | 2 + Libs/NanoBlaze/hds/_registerfile._epf | 2 + Libs/NanoBlaze/hds/_scratchpad._epf | 2 + Libs/NanoBlaze/hds/alu/symbol.sb | 1715 + Libs/NanoBlaze/hds/alu@and@regs/struct.bd | 6384 ++++ Libs/NanoBlaze/hds/alu@and@regs/symbol.sb | 2652 ++ .../NanoBlaze/hds/alu@b@op@selector/symbol.sb | 1809 + Libs/NanoBlaze/hds/branch@stack/symbol.sb | 1665 + Libs/NanoBlaze/hds/controller/symbol.sb | 2892 ++ .../hds/instruction@decoder/symbol.sb | 2357 ++ Libs/NanoBlaze/hds/nano@blaze/struct.bd | 4701 +++ Libs/NanoBlaze/hds/nano@blaze/symbol.sb | 2081 ++ Libs/NanoBlaze/hds/nano@processor/struct.bd | 10945 ++++++ Libs/NanoBlaze/hds/nano@processor/symbol.sb | 2223 ++ Libs/NanoBlaze/hds/program@counter/symbol.sb | 1762 + Libs/NanoBlaze/hds/program@rom/symbol.sb | 1578 + Libs/NanoBlaze/hds/register@file/symbol.sb | 1772 + Libs/NanoBlaze/hds/scratchpad/symbol.sb | 1673 + .../hdl/nanoBlaze_tester_test.vhd | 59 + .../_nanoBlaze_tester_test.vhd._fpf | 4 + Libs/NanoBlaze_test/hds/_nanoblaze_tb._epf | 3 + .../NanoBlaze_test/hds/_nanoblaze_tester._epf | 2 + Libs/NanoBlaze_test/hds/hds/_cordic_tb._epf | 2 + .../hds/hds/_cordic_tester._epf | 2 + .../hds/hds/_motherboard_tb._epf | 3 + .../hds/hds/_motherboard_tester._epf | 2 + .../hds/nano@blaze_tb/struct.bd | 3457 ++ .../hds/nano@blaze_tb/symbol.sb | 1258 + .../hds/nano@blaze_tester/interface | 1980 + Libs/NanoBlaze_test/sim/nanoBlaze.do | 74 + Libs/RS232/hdl/cmdRs232Mux_RTL.vhd | 24 + Libs/RS232/hdl/serialPortReceiver_rtl.vhd | 151 + Libs/RS232/hdl/serialPortTransmitter_rtl.vhd | 127 + .../.hdlsidedata/_cmdRs232Mux_RTL.vhd._fpf | 1 + .../_serialPortReceiver_rtl.vhd._fpf | 1 + .../_serialPortTransmitter_rtl.vhd._fpf | 1 + .../_serialportfifo_entity.vhd._fpf | 1 + .../_serialportfifo_struct.vhd._fpf | 1 + .../_serialportreceiver_entity.vhd._fpf | 1 + .../_serialportreceiver_entity.vhg._fpf | 1 + .../_serialporttransmitter_entity.vhd._fpf | 1 + .../_serialporttransmitter_entity.vhg._fpf | 1 + Libs/RS232/hds/_rs232mux._epf | 3 + Libs/RS232/hds/_serialportfifo._epf | 3 + Libs/RS232/hds/_serialportreceiver._epf | 2 + Libs/RS232/hds/_serialporttransmitter._epf | 2 + Libs/RS232/hds/rs232@mux/symbol.sb | 1920 + Libs/RS232/hds/serial@port@f@i@f@o/struct.bd | 5465 +++ Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb | 2015 ++ Libs/RS232/hds/serial@port@receiver/symbol.sb | 1644 + .../hds/serial@port@transmitter/symbol.sb | 1726 + .../hdl/serialPortFIFO_tester_test.vhd | 211 + .../hdl/serialPortTransmitter_tester_test.vhd | 42 + Libs/RS232_test/hdl/uvmRs232Driver_sim.vhd | 129 + Libs/RS232_test/hdl/uvmRs232Monitor_sim.vhd | 79 + Libs/RS232_test/hdl/uvmRs232_tester_test.vhd | 92 + .../_serialPortFIFO_tester_test.vhd._fpf | 4 + ...serialPortTransmitter_tester_test.vhd._fpf | 4 + .../.hdlsidedata/_uvmRs232Driver_sim.vhd._fpf | 1 + .../_uvmRs232Monitor_sim.vhd._fpf | 1 + .../_uvmRs232_tester_test.vhd._fpf | 4 + Libs/RS232_test/hds/_serialportfifo_tb._epf | 3 + .../hds/_serialportfifo_tester._epf | 2 + .../hds/_serialporttransmitter_tb._epf | 3 + .../hds/_serialporttransmitter_tester._epf | 2 + Libs/RS232_test/hds/_uvmrs232_tb._epf | 3 + Libs/RS232_test/hds/_uvmrs232_tester._epf | 2 + Libs/RS232_test/hds/_uvmrs232agenthw._epf | 2 + Libs/RS232_test/hds/_uvmrs232driver._epf | 2 + Libs/RS232_test/hds/_uvmrs232monitor._epf | 2 + .../hds/serial@port@f@i@f@o_tb/struct.bd | 3430 ++ .../hds/serial@port@f@i@f@o_tb/symbol.sb | 1256 + .../hds/serial@port@f@i@f@o_tester/interface | 1988 + .../_struct.bd._fpf | 9 + .../hds/serial@port@transmitter_tb/struct.bd | 2995 ++ .../hds/serial@port@transmitter_tb/symbol.sb | 1256 + .../serial@port@transmitter_tester/interface | 1755 + .../hds/uvm@rs232@agent@hw/struct.bd | 3407 ++ .../hds/uvm@rs232@agent@hw/symbol.sb | 1500 + .../RS232_test/hds/uvm@rs232@driver/symbol.sb | 1534 + .../hds/uvm@rs232@monitor/symbol.sb | 1618 + Libs/RS232_test/hds/uvm@rs232_tb/struct.bd | 3774 ++ Libs/RS232_test/hds/uvm@rs232_tb/symbol.sb | 1274 + .../RS232_test/hds/uvm@rs232_tester/interface | 1770 + Libs/RS232_test/sim/serialPortTransmitter.do | 32 + Libs/RS232_test/sim/uartDriver.txt | 9 + Libs/RS232_test/sim/uvmRs232.do | 37 + .../MultiCycle/hdl/instrDecoder_rtl.vhd | 18 + .../hdl/instructionForwarder_rtl.vhd | 26 + .../hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf | 1 + .../.hdlsidedata/_instrDecoder_rtl.vhd._fpf | 1 + .../_instructionForwarder_rtl.vhd._fpf | 1 + .../hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf | 1 + .../HEIRV32/MultiCycle/hds/_controlunit._epf | 2 + .../HEIRV32/MultiCycle/hds/_heirv32_mc._epf | 3 + .../HEIRV32/MultiCycle/hds/_instrdecoder._epf | 2 + .../hds/_instructiondatamemory._epf | 2 + .../MultiCycle/hds/_instructionforwarder._epf | 2 + .../HEIRV32/MultiCycle/hds/_mainfsm._epf | 2 + .../MultiCycle/hds/control@unit/struct.bd | 6095 ++++ .../MultiCycle/hds/control@unit/symbol.sb | 2439 ++ .../MultiCycle/hds/heirv32_mc/struct.bd | 13169 +++++++ .../MultiCycle/hds/heirv32_mc/symbol.sb | 1718 + .../MultiCycle/hds/instr@decoder/symbol.sb | 1395 + .../hds/instruction@data@memory/struct.bd | 3458 ++ .../hds/instruction@data@memory/symbol.sb | 1756 + .../hds/instruction@forwarder/symbol.sb | 1488 + .../HEIRV32/MultiCycle/hds/main@f@s@m/fsm.sm | 6751 ++++ .../MultiCycle/hds/main@f@s@m/symbol.sb | 2194 ++ .../SingleCycle/hdl/dataMemory_rtl.vhd | 32 + .../SingleCycle/hdl/instrMemory_bin.vhd | 34 + .../SingleCycle/hdl/instrMemory_hex.vhd | 36 + .../SingleCycle/hdl/mainDecoder_rtl.vhd | 24 + .../_controlunit_masterversion.vhg._fpf | 1 + .../hds/.hdlsidedata/_dataMemory_rtl.vhd._fpf | 4 + .../.hdlsidedata/_instrMemory_bin.vhd._fpf | 4 + .../.hdlsidedata/_instrMemory_hex.vhd._fpf | 4 + .../.hdlsidedata/_instrMemory_rtl.vhd._fpf | 4 + .../.hdlsidedata/_mainDecoder_rtl.vhd._fpf | 4 + .../.hdlsidedata/_rtl_instrMemory.vhd._fpf | 4 + Libs/RiscV/HEIRV32/SingleCycle/hds/_bin._epf | 2 + .../HEIRV32/SingleCycle/hds/_controlunit._epf | 2 + .../HEIRV32/SingleCycle/hds/_datamemory._epf | 2 + .../HEIRV32/SingleCycle/hds/_heirv32_sc._epf | 3 + .../HEIRV32/SingleCycle/hds/_instrmemory._epf | 2 + .../HEIRV32/SingleCycle/hds/_maindecoder._epf | 2 + .../HEIRV32/SingleCycle/hds/bin/interface | 1329 + .../hds/control@unit/master@version.bd | 4969 +++ .../hds/control@unit/students@version.bd | 3368 ++ .../SingleCycle/hds/control@unit/symbol.sb | 2014 ++ .../SingleCycle/hds/data@memory/symbol.sb | 1860 + .../SingleCycle/hds/heirv32_sc/struct.bd | 12244 +++++++ .../SingleCycle/hds/heirv32_sc/symbol.sb | 1732 + .../SingleCycle/hds/instr@memory/symbol.sb | 1481 + .../SingleCycle/hds/main@decoder/symbol.sb | 1882 + Libs/RiscV/HEIRV32/hdl/ALU_rtl.vhd | 40 + Libs/RiscV/HEIRV32/hdl/aluDecoder_rtl.vhd | 27 + .../RiscV/HEIRV32/hdl/bramAddrReducer_rtl.vhd | 6 + .../HEIRV32/hdl/bufferStdULogEnable_rtl.vhd | 17 + .../HEIRV32/hdl/bufferUnsignedEnable_rtl.vhd | 16 + Libs/RiscV/HEIRV32/hdl/extend_rtl.vhd | 26 + Libs/RiscV/HEIRV32/hdl/mux4To1ULogVec_rtl.vhd | 16 + Libs/RiscV/HEIRV32/hdl/registerFile_rtl.vhd | 53 + .../hds/.hdlsidedata/_ALU_rtl.vhd._fpf | 4 + .../hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf | 4 + .../_bramAddrReducer_rtl.vhd._fpf | 4 + .../_bufferStdULogEnable_rtl.vhd._fpf | 4 + .../_bufferUnsignedEnable_rtl.vhd._fpf | 4 + .../hds/.hdlsidedata/_extend_rtl.vhd._fpf | 4 + .../.hdlsidedata/_instrDecoder_rtl.vhd._fpf | 4 + .../_instructionForwarder_rtl.vhd._fpf | 4 + .../hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf | 1 + .../.hdlsidedata/_mux4To1ULogVec_rtl.vhd._fpf | 4 + .../.hdlsidedata/_registerFile_rtl.vhd._fpf | 4 + Libs/RiscV/HEIRV32/hds/@a@l@u/symbol.sb | 1641 + Libs/RiscV/HEIRV32/hds/_alu._epf | 2 + Libs/RiscV/HEIRV32/hds/_aludecoder._epf | 2 + Libs/RiscV/HEIRV32/hds/_bramaddrreducer._epf | 2 + .../HEIRV32/hds/_bufferstdulogenable._epf | 2 + .../HEIRV32/hds/_bufferunsignedenable._epf | 2 + Libs/RiscV/HEIRV32/hds/_extend._epf | 2 + Libs/RiscV/HEIRV32/hds/_mux4to1ulogvec._epf | 2 + Libs/RiscV/HEIRV32/hds/_registerfile._epf | 2 + Libs/RiscV/HEIRV32/hds/alu@decoder/symbol.sb | 1614 + .../HEIRV32/hds/bram@addr@reducer/symbol.sb | 1435 + .../hds/buffer@std@u@log@enable/symbol.sb | 1642 + .../hds/buffer@unsigned@enable/symbol.sb | 1658 + Libs/RiscV/HEIRV32/hds/extend/symbol.sb | 1550 + .../HEIRV32/hds/mux4@to1@u@log@vec/symbol.sb | 1701 + .../RiscV/HEIRV32/hds/register@file/symbol.sb | 2190 ++ .../HEIRV32_test/concat/concatenated.vhd | 3275 ++ .../hdl/heirv32_mc_tester_test.vhd | 118 + .../hdl/heirv32_sc_tester_rtl.vhd | 116 + .../HEIRV32_test/hdl/universalTester_test.vhd | 51 + .../_heirv32_mc_tester_test.vhd._fpf | 1 + .../_heirv32_sc_tester_rtl.vhd._fpf | 4 + .../_heirv32_sc_tester_test.vhd._fpf | 1 + .../_heirv32_tb_universal.vhg._fpf | 1 + .../_heirv32_tester_test.vhd._fpf | 4 + .../_universalTester_test.vhd._fpf | 4 + .../HEIRV32_test/hds/_heirv32_mc_tb._epf | 3 + .../HEIRV32_test/hds/_heirv32_mc_tester._epf | 2 + .../HEIRV32_test/hds/_heirv32_sc_tb._epf | 3 + .../HEIRV32_test/hds/_heirv32_sc_tester._epf | 2 + .../HEIRV32_test/hds/_universaltester._epf | 2 + .../HEIRV32_test/hds/heirv32_mc_tb/struct.bd | 2807 ++ .../HEIRV32_test/hds/heirv32_mc_tb/symbol.sb | 1215 + .../hds/heirv32_mc_tb/universal.bd | 2802 ++ .../hds/heirv32_mc_tester/interface | 1545 + .../HEIRV32_test/hds/heirv32_sc_tb/struct.bd | 2820 ++ .../HEIRV32_test/hds/heirv32_sc_tb/symbol.sb | 1219 + .../hds/heirv32_sc_tester/interface | 1549 + .../hds/universal@tester/interface | 1545 + Libs/RiscV/NEORV32/LICENSE | 29 + Libs/RiscV/NEORV32/README.md | 335 + Libs/RiscV/NEORV32/docs/NEORV32.pdf | Bin 0 -> 5710675 bytes Libs/RiscV/NEORV32/docs/NEORV32_UserGuide.pdf | Bin 0 -> 1026138 bytes Libs/RiscV/NEORV32/hdl/.gitkeep | 0 Libs/RiscV/NEORV32/hds/.gitkeep | 0 Libs/RiscV/NEORV32/rtl/README.md | 34 + Libs/RiscV/NEORV32/rtl/core/mem/README.md | 14 + .../rtl/core/mem/neorv32_dmem.cyclone2.vhd | 130 + .../rtl/core/mem/neorv32_dmem.default.vhd | 132 + .../rtl/core/mem/neorv32_imem.cyclone2.vhd | 176 + .../rtl/core/mem/neorv32_imem.default.vhd | 179 + .../rtl/core/neorv32_application_image.vhd | 883 + .../NEORV32/rtl/core/neorv32_boot_rom.vhd | 106 + .../rtl/core/neorv32_bootloader_image.vhd | 1026 + .../NEORV32/rtl/core/neorv32_bus_keeper.vhd | 180 + .../NEORV32/rtl/core/neorv32_busswitch.vhd | 273 + Libs/RiscV/NEORV32/rtl/core/neorv32_cfs.vhd | 257 + Libs/RiscV/NEORV32/rtl/core/neorv32_cpu.vhd | 444 + .../NEORV32/rtl/core/neorv32_cpu_alu.vhd | 349 + .../NEORV32/rtl/core/neorv32_cpu_bus.vhd | 509 + .../NEORV32/rtl/core/neorv32_cpu_control.vhd | 2835 ++ .../rtl/core/neorv32_cpu_cp_bitmanip.vhd | 469 + .../NEORV32/rtl/core/neorv32_cpu_cp_fpu.vhd | 1847 + .../rtl/core/neorv32_cpu_cp_muldiv.vhd | 343 + .../rtl/core/neorv32_cpu_cp_shifter.vhd | 181 + .../rtl/core/neorv32_cpu_decompressor.vhd | 453 + .../NEORV32/rtl/core/neorv32_cpu_regfile.vhd | 135 + .../NEORV32/rtl/core/neorv32_debug_dm.vhd | 728 + .../NEORV32/rtl/core/neorv32_debug_dtm.vhd | 353 + .../NEORV32/rtl/core/neorv32_dmem.entity.vhd | 54 + Libs/RiscV/NEORV32/rtl/core/neorv32_fifo.vhd | 188 + Libs/RiscV/NEORV32/rtl/core/neorv32_gpio.vhd | 126 + Libs/RiscV/NEORV32/rtl/core/neorv32_gptmr.vhd | 203 + .../RiscV/NEORV32/rtl/core/neorv32_icache.vhd | 589 + .../NEORV32/rtl/core/neorv32_imem.entity.vhd | 58 + Libs/RiscV/NEORV32/rtl/core/neorv32_mtime.vhd | 181 + .../RiscV/NEORV32/rtl/core/neorv32_neoled.vhd | 420 + .../NEORV32/rtl/core/neorv32_package.vhd | 2426 ++ Libs/RiscV/NEORV32/rtl/core/neorv32_pwm.vhd | 200 + Libs/RiscV/NEORV32/rtl/core/neorv32_slink.vhd | 439 + Libs/RiscV/NEORV32/rtl/core/neorv32_spi.vhd | 287 + .../NEORV32/rtl/core/neorv32_sysinfo.vhd | 227 + Libs/RiscV/NEORV32/rtl/core/neorv32_top.vhd | 1563 + Libs/RiscV/NEORV32/rtl/core/neorv32_trng.vhd | 550 + Libs/RiscV/NEORV32/rtl/core/neorv32_twi.vhd | 290 + Libs/RiscV/NEORV32/rtl/core/neorv32_uart.vhd | 648 + Libs/RiscV/NEORV32/rtl/core/neorv32_wdt.vhd | 244 + .../NEORV32/rtl/core/neorv32_wishbone.vhd | 274 + Libs/RiscV/NEORV32/rtl/core/neorv32_xirq.vhd | 229 + .../NEORV32/rtl/processor_templates/README.md | 35 + .../neorv32_ProcessorTop_Minimal.vhd | 246 + .../neorv32_ProcessorTop_MinimalBoot.vhd | 267 + .../neorv32_ProcessorTop_UP5KDemo.vhd | 307 + .../neorv32_ProcessorTop_stdlogic.vhd | 486 + .../neorv32_SystemTop_AvalonMM.vhd | 423 + .../neorv32_SystemTop_axi4lite.vhd | 532 + Libs/RiscV/NEORV32/rtl/test_setups/README.md | 52 + .../test_setups/neorv32_test_setup_approm.vhd | 98 + .../neorv32_test_setup_bootloader.vhd | 105 + Libs/RiscV/NEORV32/setups/README.md | 65 + Libs/RiscV/NEORV32/setups/osflow/.gitignore | 8 + Libs/RiscV/NEORV32/setups/osflow/Makefile | 134 + Libs/RiscV/NEORV32/setups/osflow/PnR_Bit.mk | 14 + Libs/RiscV/NEORV32/setups/osflow/README.md | 145 + ...eorv32_AlhambraII_BoardTop_MinimalBoot.vhd | 128 + .../neorv32_Fomu_BoardTop_Minimal.vhd | 149 + .../neorv32_Fomu_BoardTop_MinimalBoot.vhd | 174 + .../neorv32_Fomu_BoardTop_MixedLanguage.vhd | 139 + .../neorv32_Fomu_BoardTop_UP5KDemo.vhd | 185 + ...eorv32_OrangeCrab_BoardTop_MinimalBoot.vhd | 130 + .../neorv32_ULX3S_BoardTop_MinimalBoot.vhd | 110 + .../neorv32_UPduino_BoardTop_MinimalBoot.vhd | 163 + .../neorv32_UPduino_BoardTop_UP5KDemo.vhd | 204 + ...eorv32_iCEBreaker_BoardTop_MinimalBoot.vhd | 163 + .../neorv32_iCEBreaker_BoardTop_UP5KDemo.vhd | 205 + .../neorv32_iCESugar_BoardTop_Minimal.vhd | 172 + .../neorv32_iCESugar_BoardTop_MinimalBoot.vhd | 177 + .../setups/osflow/boards/AlhambraII.mk | 4 + .../NEORV32/setups/osflow/boards/Fomu.mk | 16 + .../setups/osflow/boards/OrangeCrab.mk | 4 + .../NEORV32/setups/osflow/boards/ULX3S.mk | 4 + .../NEORV32/setups/osflow/boards/UPduino.mk | 4 + .../setups/osflow/boards/iCEBreaker.mk | 4 + .../NEORV32/setups/osflow/boards/iCESugar.mk | 4 + .../NEORV32/setups/osflow/boards/index.mk | 107 + Libs/RiscV/NEORV32/setups/osflow/common.mk | 39 + .../setups/osflow/constraints/AlhambraII.pcf | 24 + .../setups/osflow/constraints/Fomu-evt2.pcf | 34 + .../setups/osflow/constraints/Fomu-evt3.pcf | 34 + .../setups/osflow/constraints/Fomu-hacker.pcf | 16 + .../setups/osflow/constraints/Fomu-pvt.pcf | 18 + .../setups/osflow/constraints/OrangeCrab.lpf | 278 + .../setups/osflow/constraints/ULX3S.lpf | 598 + .../setups/osflow/constraints/UPduino_v3.pcf | 36 + .../setups/osflow/constraints/iCEBreaker.pcf | 39 + .../setups/osflow/constraints/iCESugar.pcf | 69 + .../osflow/devices/ecp5/ecp5_components.vhd | 75 + .../ice40/neorv32_dmem.ice40up_spram.vhd | 145 + .../ice40/neorv32_imem.ice40up_spram.vhd | 146 + .../devices/ice40/sb_ice40_components.vhd | 126 + Libs/RiscV/NEORV32/setups/osflow/filesets.mk | 66 + Libs/RiscV/NEORV32/setups/osflow/synthesis.mk | 16 + Libs/RiscV/NEORV32/setups/osflow/tools.mk | 28 + .../.gitignore | 5 + .../README.md | 60 + .../de0-nano-test-setup.qpf | 31 + .../de0-nano-test-setup.qsf | 108 + .../dmem_ram.qip | 4 + .../dmem_ram.vhd | 163 + .../neorv32_test_setup_avalonmm.vhd | 332 + .../de0-nano-test-setup-qsys/.gitignore | 8 + .../de0-nano-test-setup-qsys/README.md | 51 + .../User_Components.ipx | 3 + .../de0-nano-test-setup.qpf | 31 + .../de0-nano-test-setup.qsf | 76 + .../de0-nano-test-setup.sdc | 12 + .../figures/neorv32_platform_designer.png | Bin 0 -> 53277 bytes .../neorv32_ProcessorTop_Test.vhd | 44 + .../neorv32_test_qsys.qsys | 232 + .../quartus/de0-nano-test-setup/.gitignore | 7 + .../quartus/de0-nano-test-setup/README.md | 62 + .../de0-nano-test-setup/create_project.tcl | 94 + .../quartus/neorv32_qsys_component/README.md | 73 + .../figures/gui_settings.png | Bin 0 -> 10814 bytes .../figures/overview.png | Bin 0 -> 63297 bytes .../neorv32_qsys_component/neorv32_qsys.qip | 33 + .../neorv32_qsys_component/neorv32_qsys.vhd | 279 + .../neorv32_qsys_hw.tcl | 258 + .../README.md | 65 + .../create_project.tcl | 108 + .../setups/radiant/UPduino_v3/.gitignore | 20 + .../setups/radiant/UPduino_v3/README.md | 103 + .../UPduino_v3/neorv32_dmem.ice40up_spram.vhd | 145 + .../UPduino_v3/neorv32_imem.ice40up_spram.vhd | 146 + .../radiant/UPduino_v3/neorv32_upduino_v3.pdc | 41 + .../radiant/UPduino_v3/neorv32_upduino_v3.rdf | 137 + .../UPduino_v3/neorv32_upduino_v3_top.vhd | 248 + .../radiant/UPduino_v3/source/impl_1.xcf | 108 + .../UPduino_v3/system_pll/rtl/system_pll.v | 222 + .../UPduino_v3/system_pll/system_pll.ipx | 12 + Libs/RiscV/NEORV32/setups/vivado/README.md | 32 + .../vivado/arty-a7-test-setup/.gitignore | 3 + .../vivado/arty-a7-test-setup/README.md | 29 + .../arty-a7-test-setup/arty_a7_test_setup.xdc | 26 + .../arty-a7-test-setup/create_project.tcl | 57 + .../vivado/nexys-a7-test-setup/.gitignore | 3 + .../vivado/nexys-a7-test-setup/README.md | 29 + .../nexys-a7-test-setup/create_project.tcl | 45 + .../nexys_a7_test_setup.xdc | 23 + Libs/RiscV/NEORV32/sw/README.md | 55 + Libs/RiscV/NEORV32/sw/bootloader/makefile | 40 + Libs/RiscV/NEORV32/sw/common/common.mk | 368 + Libs/RiscV/NEORV32/sw/common/crt0.S | 261 + Libs/RiscV/NEORV32/sw/common/neorv32.ld | 309 + .../sw/example/bitmanip_test/README.md | 13 + .../NEORV32/sw/example/bitmanip_test/makefile | 40 + .../neorv32_b_extension_intrinsics.h | 903 + .../sw/example/blink_led/blink_led_in_asm.S | 37 + .../NEORV32/sw/example/blink_led/makefile | 40 + .../NEORV32/sw/example/bus_explorer/makefile | 40 + .../NEORV32/sw/example/coremark/LICENSE.md | 100 + .../NEORV32/sw/example/coremark/README.md | 78 + .../NEORV32/sw/example/coremark/core_portme.h | 232 + .../NEORV32/sw/example/coremark/coremark.h | 183 + .../NEORV32/sw/example/coremark/makefile | 40 + .../sw/example/demo_freeRTOS/FreeRTOSConfig.h | 152 + .../sw/example/demo_freeRTOS/README.md | 71 + ...freertos_risc_v_chip_specific_extensions.h | 72 + .../example/demo_freeRTOS/full_demo/RegTest.s | 266 + .../NEORV32/sw/example/demo_freeRTOS/makefile | 144 + .../NEORV32/sw/example/demo_gptmr/makefile | 40 + .../NEORV32/sw/example/demo_neopixel/makefile | 40 + .../NEORV32/sw/example/demo_pwm/makefile | 40 + .../NEORV32/sw/example/demo_slink/makefile | 40 + .../NEORV32/sw/example/demo_spi/makefile | 40 + .../NEORV32/sw/example/demo_trng/makefile | 40 + .../NEORV32/sw/example/demo_twi/makefile | 40 + .../NEORV32/sw/example/demo_wdt/makefile | 40 + .../NEORV32/sw/example/demo_xirq/makefile | 40 + .../NEORV32/sw/example/dhrystone/LICENSE | 9 + .../NEORV32/sw/example/dhrystone/README.md | 98 + .../RiscV/NEORV32/sw/example/dhrystone/dhry.h | 451 + .../NEORV32/sw/example/dhrystone/dhrystone.sh | 1 + .../NEORV32/sw/example/dhrystone/makefile | 40 + .../sw/example/floating_point_test/README.md | 52 + .../sw/example/floating_point_test/makefile | 40 + .../neorv32_zfinx_extension_intrinsics.h | 1370 + .../NEORV32/sw/example/game_of_life/makefile | 40 + .../NEORV32/sw/example/hello_world/makefile | 40 + Libs/RiscV/NEORV32/sw/example/makefile | 71 + .../sw/example/processor_check/makefile | 40 + .../RiscV/NEORV32/sw/image_gen/uart_upload.sh | 58 + Libs/RiscV/NEORV32/sw/isa-test/common.mk | 74 + .../sw/isa-test/port-neorv32/README.md | 28 + .../rv32e_unratified/C/Makefile.include | 6 + .../rv32e_unratified/E/Makefile.include | 5 + .../rv32e_unratified/M/Makefile.include | 6 + .../device/rv32i_m/C/Makefile.include | 4 + .../device/rv32i_m/I/Makefile.include | 1 + .../device/rv32i_m/M/Makefile.include | 4 + .../device/rv32i_m/Zifencei/Makefile.include | 6 + .../device/rv32i_m/privilege/Makefile.include | 3 + .../sw/isa-test/port-neorv32/link.imem_ram.ld | 22 + .../sw/isa-test/port-neorv32/link.imem_rom.ld | 26 + .../sw/isa-test/port-neorv32/model_test.h | 212 + Libs/RiscV/NEORV32/sw/lib/README.md | 6 + Libs/RiscV/NEORV32/sw/lib/include/neorv32.h | 1311 + .../NEORV32/sw/lib/include/neorv32_cfs.h | 53 + .../NEORV32/sw/lib/include/neorv32_cpu.h | 306 + .../NEORV32/sw/lib/include/neorv32_gpio.h | 57 + .../NEORV32/sw/lib/include/neorv32_gptmr.h | 54 + .../sw/lib/include/neorv32_intrinsics.h | 166 + .../NEORV32/sw/lib/include/neorv32_mtime.h | 54 + .../NEORV32/sw/lib/include/neorv32_neoled.h | 72 + .../NEORV32/sw/lib/include/neorv32_pwm.h | 56 + .../NEORV32/sw/lib/include/neorv32_rte.h | 101 + .../NEORV32/sw/lib/include/neorv32_slink.h | 269 + .../NEORV32/sw/lib/include/neorv32_spi.h | 59 + .../NEORV32/sw/lib/include/neorv32_trng.h | 53 + .../NEORV32/sw/lib/include/neorv32_twi.h | 61 + .../NEORV32/sw/lib/include/neorv32_uart.h | 82 + .../NEORV32/sw/lib/include/neorv32_wdt.h | 55 + .../NEORV32/sw/lib/include/neorv32_xirq.h | 59 + Libs/RiscV/NEORV32/sw/ocd-firmware/.gitignore | 1 + Libs/RiscV/NEORV32/sw/ocd-firmware/README.md | 18 + .../NEORV32/sw/ocd-firmware/debug_rom.ld | 67 + Libs/RiscV/NEORV32/sw/ocd-firmware/makefile | 294 + .../RiscV/NEORV32/sw/ocd-firmware/park_loop.S | 103 + .../NEORV32/sw/openocd/openocd_neorv32.cfg | 41 + Libs/RiscV/NEORV32/sw/svd/README.md | 10 + Libs/RiscV/NEORV32/sw/svd/neorv32.svd | 1189 + Libs/RiscV/NEORV32_test/hdl/.gitkeep | 0 Libs/RiscV/NEORV32_test/hds/.gitkeep | 0 Libs/RiscV_test/NEORV32_test/README.md | 58 + Libs/RiscV_test/NEORV32_test/neorv32_tb.vhd | 685 + Libs/RiscV_test/NEORV32_test/run.py | 36 + .../NEORV32_test/run_riscv_arch_test.sh | 63 + .../NEORV32_test/simple/ghdl.run.sh | 40 + .../NEORV32_test/simple/ghdl.setup.sh | 18 + Libs/RiscV_test/NEORV32_test/simple/ghdl.sh | 14 + .../simple/neorv32_imem.iram.simple.vhd | 136 + .../simple/neorv32_imem.simple.vhd | 95 + .../NEORV32_test/simple/neorv32_tb.simple.vhd | 554 + .../NEORV32_test/simple/uart_rx.simple.vhd | 77 + Libs/RiscV_test/NEORV32_test/uart_rx.vhd | 119 + Libs/RiscV_test/NEORV32_test/uart_rx_pkg.vhd | 60 + README.md | 2 + 1914 files changed, 1290006 insertions(+) create mode 100644 01-WaveformGenerator/Prefs/dp_user/v2_72/dp_user_prefs create mode 100644 01-WaveformGenerator/Prefs/hds.hdp create mode 100644 01-WaveformGenerator/Prefs/hds_team/shared.hdp create mode 100644 01-WaveformGenerator/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 01-WaveformGenerator/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 01-WaveformGenerator/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 01-WaveformGenerator/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 01-WaveformGenerator/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 01-WaveformGenerator/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 01-WaveformGenerator/Scripts/cleanGenerated.bash create mode 100644 01-WaveformGenerator/Scripts/cleanGenerated.bat create mode 100644 01-WaveformGenerator/Scripts/cleanScratch.bat create mode 100644 01-WaveformGenerator/Scripts/generateSSHKey.bash create mode 100755 01-WaveformGenerator/Scripts/hdlDesigner.bash create mode 100644 01-WaveformGenerator/Scripts/hdlDesigner.bat create mode 100644 01-WaveformGenerator/Scripts/searchPaths.bat create mode 100644 01-WaveformGenerator/Scripts/trimLibs.pl create mode 100644 01-WaveformGenerator/Scripts/update_ise.pl create mode 100644 01-WaveformGenerator/Simulation/waveformGen.do create mode 100644 01-WaveformGenerator/WaveformGenerator/hdl/lowpass_studentVersion.vhd create mode 100644 01-WaveformGenerator/WaveformGenerator/hdl/sawtoothGen_studentVersion.vhd create mode 100644 01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToSquare_studentVersion.vhd create mode 100644 01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToTriangle_studentVersion.vhd create mode 100644 01-WaveformGenerator/WaveformGenerator/hdl/triangleToPolygon_studentVersion.vhd create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhg._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_studentVersion.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothGen_studentVersion.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToSquare_studentVersion.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToTriangle_studentVersion.vhd._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhg._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhg._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhg._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangleToPolygon_studentVersion.vhd._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhg._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhg._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhg._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/_lowpass._epf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/_sawtoothgen._epf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtosquare._epf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtotriangle._epf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/_triangletopolygon._epf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/_waveformgen._epf create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/lowpass/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/sawtooth@gen/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@square/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/triangle@to@polygon/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/struct.bd create mode 100644 01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hdl/waveformGen_tester_test.vhd create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformGen_tester_test.vhd._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhg._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhg._fpf create mode 100755 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhd._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhg._fpf create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tb._epf create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tester._epf create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/struct.bd create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/symbol.sb create mode 100644 01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tester/interface create mode 100755 01-WaveformGenerator/waveformGenerator.bash create mode 100644 01-WaveformGenerator/waveformGenerator.bat create mode 100644 02-SplineInterpolator/Prefs/hds.hdp create mode 100644 02-SplineInterpolator/Prefs/hds_team/shared.hdp create mode 100644 02-SplineInterpolator/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 02-SplineInterpolator/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 02-SplineInterpolator/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 02-SplineInterpolator/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 02-SplineInterpolator/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 02-SplineInterpolator/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 02-SplineInterpolator/Scripts/cleanGenerated.bash create mode 100644 02-SplineInterpolator/Scripts/cleanGenerated.bat create mode 100644 02-SplineInterpolator/Scripts/cleanScratch.bat create mode 100644 02-SplineInterpolator/Scripts/generateSSHKey.bash create mode 100755 02-SplineInterpolator/Scripts/hdlDesigner.bash create mode 100644 02-SplineInterpolator/Scripts/hdlDesigner.bat create mode 100644 02-SplineInterpolator/Scripts/searchPaths.bat create mode 100644 02-SplineInterpolator/Scripts/trimLibs.pl create mode 100644 02-SplineInterpolator/Scripts/update_ise.pl create mode 100644 02-SplineInterpolator/Simulation/coefficients_sinus.pdf create mode 100644 02-SplineInterpolator/Simulation/sineGen.do create mode 100644 02-SplineInterpolator/Simulation/waveformGen.do create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCalculatePolynom_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCoefficients_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/interpolatorShiftRegister_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/interpolatorTrigger_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/offsetToUnsigned_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/resizer_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hdl/sineTable_studentVersion.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCalculatePolynom_studentVersion.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCoefficients_studentVersion.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorShiftRegister_studentVersion.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorTrigger_studentVersion.vhd._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhg._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhg._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhg._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhg._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsetToUnsigned_studentVersion.vhd._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhg._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhg._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_studentVersion.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sineTable_studentVersion.vhd._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhg._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhg._fpf create mode 100755 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhg._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcalculatepolynom._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcoefficients._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_interpolatorshiftregister._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_interpolatortrigger._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_offsettounsigned._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_resizer._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_sinegen._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/_sinetable._epf create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/interpolator@coefficients/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/interpolator@shift@register/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/interpolator@trigger/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/offset@to@unsigned/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/resizer/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/sine@gen/struct.bd create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/sine@gen/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/sine@gen_tester/interface create mode 100644 02-SplineInterpolator/SplineInterpolator/hds/sine@table/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hdl/sineGen_tester_test.vhd create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sineGen_tester_test.vhd._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_entity.vhg._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_struct.vhg._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tester_entity.vhg._fpf create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tb._epf create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tester._epf create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/struct.bd create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/symbol.sb create mode 100644 02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tester/interface create mode 100755 02-SplineInterpolator/splineInterpolator.bash create mode 100644 02-SplineInterpolator/splineInterpolator.bat create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order1_studentVersion.vhd create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order2_studentVersion.vhd create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order1_studentVersion.vhd._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order2_studentVersion.vhd._fpf create mode 100755 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhd._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhg._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/@d@a@c/symbol.sb create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/_dac._epf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hdl/DAC_tester_test.vhd create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_DAC_tester_test.vhd._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_entity.vhg._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_struct.vhg._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tester_entity.vhg._fpf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/struct.bd create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tester/interface create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tb._epf create mode 100644 03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tester._epf create mode 100644 03-DigitalToAnalogConverter/Prefs/hds.hdp create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/shared.hdp create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 03-DigitalToAnalogConverter/Scripts/cleanGenerated.bash create mode 100644 03-DigitalToAnalogConverter/Scripts/cleanGenerated.bat create mode 100644 03-DigitalToAnalogConverter/Scripts/cleanScratch.bat create mode 100644 03-DigitalToAnalogConverter/Scripts/generateSSHKey.bash create mode 100755 03-DigitalToAnalogConverter/Scripts/hdlDesigner.bash create mode 100644 03-DigitalToAnalogConverter/Scripts/hdlDesigner.bat create mode 100644 03-DigitalToAnalogConverter/Scripts/searchPaths.bat create mode 100644 03-DigitalToAnalogConverter/Scripts/trimLibs.pl create mode 100644 03-DigitalToAnalogConverter/Scripts/update_ise.pl create mode 100644 03-DigitalToAnalogConverter/Simulation/DAC.do create mode 100644 03-DigitalToAnalogConverter/Simulation/sineGen.do create mode 100644 03-DigitalToAnalogConverter/Simulation/waveformGen.do create mode 100755 03-DigitalToAnalogConverter/digitalToAnalogConverter.bash create mode 100644 03-DigitalToAnalogConverter/digitalToAnalogConverter.bat create mode 100644 04-Lissajous/Board/concat/concatenated.vhd create mode 100644 04-Lissajous/Board/concat/lissajous.lpf create mode 100644 04-Lissajous/Board/concat/lissajous.ucf create mode 100644 04-Lissajous/Board/concat/lissajous.vhd create mode 100644 04-Lissajous/Board/diamond/lissajous.bit create mode 100644 04-Lissajous/Board/diamond/lissajous.ldf create mode 100644 04-Lissajous/Board/diamond/programmer.xcf create mode 100644 04-Lissajous/Board/diamond/reveal_analyze.rva create mode 100644 04-Lissajous/Board/diamond/reveal_config.rvl create mode 100644 04-Lissajous/Board/diamond/strategy.sty create mode 100644 04-Lissajous/Board/hdl/DFF_sim.vhd create mode 100644 04-Lissajous/Board/hdl/buff_sim.vhd create mode 100644 04-Lissajous/Board/hdl/inverterIn_sim.vhd create mode 100644 04-Lissajous/Board/hdl/inverter_sim.vhd create mode 100644 04-Lissajous/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf create mode 100644 04-Lissajous/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf create mode 100755 04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhd._fpf create mode 100755 04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf create mode 100644 04-Lissajous/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf create mode 100644 04-Lissajous/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf create mode 100755 04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhd._fpf create mode 100755 04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf create mode 100644 04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_ebs3_entity.vhg._fpf create mode 100755 04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhd._fpf create mode 100755 04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhg._fpf create mode 100644 04-Lissajous/Board/hds/@d@f@f/symbol.sb create mode 100644 04-Lissajous/Board/hds/@f@p@g@a_sine@gen_tester/interface create mode 100644 04-Lissajous/Board/hds/_buff._epf create mode 100644 04-Lissajous/Board/hds/_lissajousgenerator_circuit._epf create mode 100644 04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs2._epf create mode 100644 04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs3._epf create mode 100644 04-Lissajous/Board/hds/buff/symbol.sb create mode 100644 04-Lissajous/Board/hds/inverter/symbol.sb create mode 100644 04-Lissajous/Board/hds/inverter@in/symbol.sb create mode 100644 04-Lissajous/Board/hds/lissajous@generator_circuit/student@version.bd create mode 100644 04-Lissajous/Board/hds/lissajous@generator_circuit/symbol.sb create mode 100644 04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/student@version.bd create mode 100644 04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/symbol.sb create mode 100644 04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/student@version.bd create mode 100644 04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/symbol.sb create mode 100755 04-Lissajous/Board/ise/lissajous-XC3S1200E.bit create mode 100755 04-Lissajous/Board/ise/lissajous-XC3S1200E.mcs create mode 100755 04-Lissajous/Board/ise/lissajous-XC3S500E.bit create mode 100755 04-Lissajous/Board/ise/lissajous-XC3S500E.mcs create mode 100755 04-Lissajous/Board/ise/lissajous.dwf3work create mode 100644 04-Lissajous/Board/ise/lissajous.xise create mode 100644 04-Lissajous/Board/ise/lissajousGenerator_circuit.bit create mode 100755 04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhd._fpf create mode 100644 04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhg._fpf create mode 100755 04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhd._fpf create mode 100755 04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhg._fpf create mode 100644 04-Lissajous/Lissajous/hds/_lissajousgenerator._epf create mode 100644 04-Lissajous/Lissajous/hds/lissajous@generator/struct.bd create mode 100644 04-Lissajous/Lissajous/hds/lissajous@generator/symbol.sb create mode 100644 04-Lissajous/Lissajous_test/hdl/lissajousGenerator_tester_test.vhd create mode 100644 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousGenerator_tester_test.vhd._fpf create mode 100755 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhd._fpf create mode 100644 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhg._fpf create mode 100755 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhd._fpf create mode 100644 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhg._fpf create mode 100755 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhd._fpf create mode 100644 04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhg._fpf create mode 100644 04-Lissajous/Lissajous_test/hds/_lissajousgenerator_test._epf create mode 100644 04-Lissajous/Lissajous_test/hds/_lissajousgenerator_tester._epf create mode 100755 04-Lissajous/Lissajous_test/hds/lissajous@generator_test/_struct.bd._fpf create mode 100644 04-Lissajous/Lissajous_test/hds/lissajous@generator_test/struct.bd create mode 100644 04-Lissajous/Lissajous_test/hds/lissajous@generator_test/symbol.sb create mode 100644 04-Lissajous/Lissajous_test/hds/lissajous@generator_tester/interface create mode 100644 04-Lissajous/Prefs/hds.hdp create mode 100644 04-Lissajous/Prefs/hds_team/shared.hdp create mode 100644 04-Lissajous/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 04-Lissajous/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 04-Lissajous/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 04-Lissajous/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 04-Lissajous/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 04-Lissajous/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 04-Lissajous/Scripts/cleanGenerated.bash create mode 100644 04-Lissajous/Scripts/cleanGenerated.bat create mode 100644 04-Lissajous/Scripts/cleanScratch.bat create mode 100644 04-Lissajous/Scripts/generateSSHKey.bash create mode 100755 04-Lissajous/Scripts/hdlDesigner.bash create mode 100644 04-Lissajous/Scripts/hdlDesigner.bat create mode 100644 04-Lissajous/Scripts/searchPaths.bat create mode 100644 04-Lissajous/Scripts/trimLibs.pl create mode 100644 04-Lissajous/Scripts/update_ise.pl create mode 100644 04-Lissajous/Simulation/DAC.do create mode 100644 04-Lissajous/Simulation/lissajousGenerator.do create mode 100644 04-Lissajous/Simulation/sineGen.do create mode 100644 04-Lissajous/Simulation/waveformGen.do create mode 100755 04-Lissajous/lissajous.bash create mode 100644 04-Lissajous/lissajous.bat create mode 100644 05-Morse/Board/concat/morse.lpf create mode 100644 05-Morse/Board/concat/morse.ucf create mode 100644 05-Morse/Board/concat/morse.vhd create mode 100644 05-Morse/Board/diamond/morse.bit create mode 100644 05-Morse/Board/diamond/morse.ldf create mode 100644 05-Morse/Board/diamond/programmer.xcf create mode 100644 05-Morse/Board/diamond/reveal_analyze.rva create mode 100644 05-Morse/Board/diamond/reveal_config.rvl create mode 100644 05-Morse/Board/diamond/strategy.sty create mode 100644 05-Morse/Board/hdl/DFF_sim.vhd create mode 100644 05-Morse/Board/hdl/buff_sim.vhd create mode 100644 05-Morse/Board/hdl/inverterIn_sim.vhd create mode 100644 05-Morse/Board/hdl/inverter_sim.vhd create mode 100644 05-Morse/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_morse_circuit_entity.vhg._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_morse_circuit_struct.vhg._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_entity.vhg._fpf create mode 100644 05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_struct.vhg._fpf create mode 100644 05-Morse/Board/hds/@d@f@f/symbol.sb create mode 100644 05-Morse/Board/hds/@f@p@g@a_sine@gen_tester/interface create mode 100644 05-Morse/Board/hds/_buff._epf create mode 100644 05-Morse/Board/hds/_morse_circuit._epf create mode 100644 05-Morse/Board/hds/_morse_ebs2._epf create mode 100644 05-Morse/Board/hds/_morse_ebs3._epf create mode 100644 05-Morse/Board/hds/buff/symbol.sb create mode 100644 05-Morse/Board/hds/inverter/symbol.sb create mode 100644 05-Morse/Board/hds/inverter@in/symbol.sb create mode 100644 05-Morse/Board/hds/morse_circuit/struct.bd create mode 100644 05-Morse/Board/hds/morse_circuit/symbol.sb create mode 100644 05-Morse/Board/hds/morse_ebs2/struct.bd create mode 100644 05-Morse/Board/hds/morse_ebs2/symbol.sb create mode 100644 05-Morse/Board/hds/morse_ebs3/struct.bd create mode 100644 05-Morse/Board/hds/morse_ebs3/symbol.sb create mode 100644 05-Morse/Board/ise/morse-XC3S1200E.bit create mode 100644 05-Morse/Board/ise/morse-XC3S1200E.mcs create mode 100644 05-Morse/Board/ise/morse-XC3S500E.bit create mode 100644 05-Morse/Board/ise/morse-XC3S500E.mcs create mode 100644 05-Morse/Board/ise/morse.xise create mode 100644 05-Morse/Morse/hdl/charToMorseController_studentVersion.vhd create mode 100644 05-Morse/Morse/hdl/characterRegister_studentVersion.vhd create mode 100644 05-Morse/Morse/hdl/envelopeRetreiver_studentVersion.vhd create mode 100644 05-Morse/Morse/hdl/morseToCharDecoder_studentVersion.vhd create mode 100644 05-Morse/Morse/hdl/symbolLengthCounter_studentVersion.vhd create mode 100644 05-Morse/Morse/hdl/toneGenerator_studentVersion.vhd create mode 100644 05-Morse/Morse/hdl/unitCounter_studentVersion.vhd create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_charToMorseController_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_characterRegister_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_chartomorse_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_chartomorse_struct.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_fsm.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_envelopeRetreiver_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_enveloperetreiver_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_morseToCharDecoder_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_struct.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_morseencoder_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_morseencoder_struct.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_morsetochardecoder_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_symbolLengthCounter_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_symbollengthcounter_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_toneGenerator_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_tonegenerator_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_unitCounter_studentVersion.vhd._fpf create mode 100644 05-Morse/Morse/hds/.hdlsidedata/_unitcounter_entity.vhg._fpf create mode 100644 05-Morse/Morse/hds/_chartomorse._epf create mode 100644 05-Morse/Morse/hds/_chartomorsecontroller._epf create mode 100644 05-Morse/Morse/hds/_enveloperetreiver._epf create mode 100644 05-Morse/Morse/hds/_morsedecoder._epf create mode 100644 05-Morse/Morse/hds/_morseencoder._epf create mode 100644 05-Morse/Morse/hds/_morsetochardecoder._epf create mode 100644 05-Morse/Morse/hds/_symbollengthcounter._epf create mode 100644 05-Morse/Morse/hds/_tonegenerator._epf create mode 100644 05-Morse/Morse/hds/_unitcounter._epf create mode 100644 05-Morse/Morse/hds/char@to@morse/struct.bd create mode 100644 05-Morse/Morse/hds/char@to@morse/symbol.sb create mode 100644 05-Morse/Morse/hds/char@to@morse@controller/fsm.sm create mode 100644 05-Morse/Morse/hds/char@to@morse@controller/symbol.sb create mode 100644 05-Morse/Morse/hds/character@register/symbol.sb create mode 100644 05-Morse/Morse/hds/envelope@retreiver/symbol.sb create mode 100644 05-Morse/Morse/hds/morse@decoder/struct.bd create mode 100644 05-Morse/Morse/hds/morse@decoder/symbol.sb create mode 100644 05-Morse/Morse/hds/morse@encoder/struct.bd create mode 100644 05-Morse/Morse/hds/morse@encoder/symbol.sb create mode 100644 05-Morse/Morse/hds/morse@to@char@decoder/symbol.sb create mode 100644 05-Morse/Morse/hds/symbol@length@counter/symbol.sb create mode 100644 05-Morse/Morse/hds/tone@generator/symbol.sb create mode 100644 05-Morse/Morse/hds/unit@counter/symbol.sb create mode 100644 05-Morse/Morse_test/hdl/charToMorseController_tester_test.vhd create mode 100644 05-Morse/Morse_test/hdl/morseDecoder_tester_test.vhd create mode 100644 05-Morse/Morse_test/hdl/morseEncoder_tester_test.vhd create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_charToMorseController_tester_test.vhd._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_entity.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_struct.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tester_entity.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morseDecoder_tester_test.vhd._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morseEncoder_tester_test.vhd._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_entity.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_struct.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tester_entity.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_entity.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_struct.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tester_entity.vhg._fpf create mode 100644 05-Morse/Morse_test/hds/@d@a@c_tester_1/interface create mode 100644 05-Morse/Morse_test/hds/_chartomorsecontroller_tb._epf create mode 100644 05-Morse/Morse_test/hds/_chartomorsecontroller_tester._epf create mode 100644 05-Morse/Morse_test/hds/_morsedecoder_tb._epf create mode 100644 05-Morse/Morse_test/hds/_morsedecoder_tester._epf create mode 100644 05-Morse/Morse_test/hds/_morseencoder_tb._epf create mode 100644 05-Morse/Morse_test/hds/_morseencoder_tester._epf create mode 100644 05-Morse/Morse_test/hds/beamer@periph@blanking_tester/interface create mode 100644 05-Morse/Morse_test/hds/char@to@morse@controller_tb/struct.bd create mode 100644 05-Morse/Morse_test/hds/char@to@morse@controller_tb/symbol.sb create mode 100644 05-Morse/Morse_test/hds/char@to@morse@controller_tester/interface create mode 100644 05-Morse/Morse_test/hds/morse@decoder_tb/struct.bd create mode 100644 05-Morse/Morse_test/hds/morse@decoder_tb/symbol.sb create mode 100644 05-Morse/Morse_test/hds/morse@decoder_tester/interface create mode 100644 05-Morse/Morse_test/hds/morse@encoder_tb/struct.bd create mode 100644 05-Morse/Morse_test/hds/morse@encoder_tb/symbol.sb create mode 100644 05-Morse/Morse_test/hds/morse@encoder_tester/interface create mode 100644 05-Morse/Morse_test/hds/sine@gen_tester/interface create mode 100644 05-Morse/Morse_test/hds/waveform@gen_tester/interface create mode 100644 05-Morse/Prefs/dp_user/v2_72/dp_user_prefs create mode 100644 05-Morse/Prefs/hds.hdp create mode 100644 05-Morse/Prefs/hds_team/shared.hdp create mode 100644 05-Morse/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 05-Morse/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 05-Morse/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 05-Morse/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 05-Morse/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 05-Morse/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 05-Morse/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 05-Morse/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 05-Morse/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 05-Morse/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 05-Morse/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 05-Morse/Scripts/cleanGenerated.bash create mode 100644 05-Morse/Scripts/cleanGenerated.bat create mode 100644 05-Morse/Scripts/cleanScratch.bat create mode 100644 05-Morse/Scripts/generateSSHKey.bash create mode 100755 05-Morse/Scripts/hdlDesigner.bash create mode 100644 05-Morse/Scripts/hdlDesigner.bat create mode 100644 05-Morse/Scripts/searchPaths.bat create mode 100644 05-Morse/Scripts/trimLibs.pl create mode 100644 05-Morse/Scripts/update_ise.pl create mode 100644 05-Morse/Simulation/charToMorseController.do create mode 100644 05-Morse/Simulation/morseDecoder.do create mode 100644 05-Morse/Simulation/morseEncoder.do create mode 100644 05-Morse/Simulation/uartAgent.txt create mode 100644 05-Morse/Simulation/uartDriver.txt create mode 100644 05-Morse/Simulation/uartMonitor.txt create mode 100644 05-Morse/Simulation/uvmRs232.do create mode 100755 05-Morse/morse.bash create mode 100644 05-Morse/morse.bat create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hdl/ahbGpio_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hdl/ahbUart_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbGpio_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbUart_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbgpio_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbuart_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbgpio._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbuart._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@gpio/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@uart/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/AMBA_AHB-Lite_spec.pdf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/MAX11300.pdf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/ad670.pdf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/ahbGpio_tester_test.vhd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/ahbUart_tester_test.vhd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbDriver_sim.vhd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbMonitor_sim.vhd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbGpio_tester_test.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbUart_tester_test.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tester_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tester_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbDriver_sim.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbMonitor_sim.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tb._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tester._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tb._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tester._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbagenthw._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbdriver._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbmonitor._epf create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/struct.bd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tester/interface create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/struct.bd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tester/interface create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/struct.bd create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@driver/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@monitor/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/concat/concatenated.vhd create mode 100644 06-07-08-09-SystemOnChip/Board/concat/systemOnChip.lpf create mode 100644 06-07-08-09-SystemOnChip/Board/concat/systemOnChip.ucf create mode 100644 06-07-08-09-SystemOnChip/Board/concat/systemOnChip.vhd create mode 100644 06-07-08-09-SystemOnChip/Board/diamond/programmer.xcf create mode 100644 06-07-08-09-SystemOnChip/Board/diamond/reveal_analyze.rva create mode 100644 06-07-08-09-SystemOnChip/Board/diamond/reveal_config.rvl create mode 100644 06-07-08-09-SystemOnChip/Board/diamond/strategy.sty create mode 100644 06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.bit create mode 100644 06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.ldf create mode 100644 06-07-08-09-SystemOnChip/Board/hdl/DFF_sim.vhd create mode 100644 06-07-08-09-SystemOnChip/Board/hdl/buff_sim.vhd create mode 100644 06-07-08-09-SystemOnChip/Board/hdl/inverterIn_sim.vhd create mode 100644 06-07-08-09-SystemOnChip/Board/hdl/inverter_sim.vhd create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@d@f@f/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/struct.bd create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/student@version.bd create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/struct.bd create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/student@version.bd create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/struct.bd create mode 100644 06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/hds/_buff._epf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/_fpga_beamer._epf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/_lissajousgenerator_circuit._epf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/_soc_ebs2._epf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/_soc_ebs3._epf create mode 100644 06-07-08-09-SystemOnChip/Board/hds/buff/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/hds/inverter/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/hds/inverter@in/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.bit create mode 100644 06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.mcs create mode 100644 06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S500E.bit create mode 100644 06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S500E.mcs create mode 100644 06-07-08-09-SystemOnChip/Board/ise/systemOnChip.xise create mode 100644 06-07-08-09-SystemOnChip/Documentation/AMBA_AHB-Lite_SPEC.pdf create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds.hdp create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/shared.hdp create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/logs/HDS_log.txt create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bash create mode 100644 06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bat create mode 100644 06-07-08-09-SystemOnChip/Scripts/cleanScratch.bat create mode 100644 06-07-08-09-SystemOnChip/Scripts/generateSSHKey.bash create mode 100755 06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bash create mode 100644 06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bat create mode 100644 06-07-08-09-SystemOnChip/Scripts/searchPaths.bat create mode 100644 06-07-08-09-SystemOnChip/Scripts/trimLibs.pl create mode 100644 06-07-08-09-SystemOnChip/Scripts/update_ise.pl create mode 100644 06-07-08-09-SystemOnChip/Simulation/DAC.do create mode 100644 06-07-08-09-SystemOnChip/Simulation/ahbBeamer.do create mode 100644 06-07-08-09-SystemOnChip/Simulation/ahbGpio.do create mode 100644 06-07-08-09-SystemOnChip/Simulation/ahbUart.do create mode 100644 06-07-08-09-SystemOnChip/Simulation/beamerSoc.do create mode 100644 06-07-08-09-SystemOnChip/Simulation/ramXInit.txt create mode 100644 06-07-08-09-SystemOnChip/Simulation/ramYInit.txt create mode 100644 06-07-08-09-SystemOnChip/Simulation/sineGen.do create mode 100644 06-07-08-09-SystemOnChip/Simulation/waveformGen.do create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/beamer.asm create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/beamer.pas create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/beamer.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMAddressCounter_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMControl_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan2.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan3E.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphAddressDecoder_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphControlReg_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSizeReg_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedController_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedReg_studentVersion.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/rom_mapped.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hdl/sinCosTable_studentVersion.vhd create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamer.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMAddressCounter_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMControl_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan2.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan3E.vhd._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphAddressDecoder_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphControlReg_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSizeReg_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedController_studentVersion.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedReg_studentVersion.vhd._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_programrom_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_rom_mapped.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sinCosTable_studentVersion.vhd._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamer._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerblanking._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeameroperator._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerregisters._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiph._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphblanking._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphoperator._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphregisters._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamersoc._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockram._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramaddresscounter._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramcontrol._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphaddressdecoder._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphcontrolreg._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphsizereg._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedcontroller._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedreg._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_programrom._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/_sincostable._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/empty.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@control/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@address@decoder/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@control@reg/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@size@reg/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@controller/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@reg/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/program@rom/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip/hds/sin@cos@table/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/ahbBeamer_tester_test.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerSoc_tester_test.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg_body.vhd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbBeamer_tester_test.vhd._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhg._fpf create mode 100755 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerSoc_tester_test.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg_body.vhd._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_struct.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tester_entity.vhg._fpf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tb._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tester._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamerperiphblanking_tb._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tb._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tester._epf create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester/interface create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester1/interface create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tester/interface create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/struct.bd create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/symbol.sb create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tester/interface create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/sine@gen_tester/interface create mode 100644 06-07-08-09-SystemOnChip/SystemOnChip_test/hds/waveform@gen_tester/interface create mode 100755 06-07-08-09-SystemOnChip/systemOnChip.bash create mode 100644 06-07-08-09-SystemOnChip/systemOnChip.bat create mode 100644 10-PipelinedOperators/Board/concat/pipelinedOperators.lpf create mode 100644 10-PipelinedOperators/Board/concat/pipelinedOperators.ucf create mode 100644 10-PipelinedOperators/Board/concat/pipelinedOperators.vhd create mode 100644 10-PipelinedOperators/Board/diamond/pipelinedOperators.bit create mode 100644 10-PipelinedOperators/Board/diamond/pipelinedOperators.ldf create mode 100644 10-PipelinedOperators/Board/diamond/programmer.xcf create mode 100644 10-PipelinedOperators/Board/diamond/reveal_analyze.rva create mode 100644 10-PipelinedOperators/Board/diamond/reveal_config.rvl create mode 100644 10-PipelinedOperators/Board/diamond/strategy.sty create mode 100644 10-PipelinedOperators/Board/hdl/DFF_sim.vhd create mode 100644 10-PipelinedOperators/Board/hdl/buff_sim.vhd create mode 100644 10-PipelinedOperators/Board/hdl/inverterIn_sim.vhd create mode 100644 10-PipelinedOperators/Board/hdl/inverter_sim.vhd create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf create mode 100755 10-PipelinedOperators/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf create mode 100755 10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf create mode 100755 10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_entity.vhg._fpf create mode 100755 10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_struct.vhg._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_entity.vhg._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_struct.vhg._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_entity.vhg._fpf create mode 100644 10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_struct.vhg._fpf create mode 100644 10-PipelinedOperators/Board/hds/@d@f@f/symbol.sb create mode 100644 10-PipelinedOperators/Board/hds/@f@p@g@a_sine@gen_tester/interface create mode 100644 10-PipelinedOperators/Board/hds/_buff._epf create mode 100644 10-PipelinedOperators/Board/hds/_pipelinecounter_circuit._epf create mode 100644 10-PipelinedOperators/Board/hds/_pipelinecounter_ebs2._epf create mode 100644 10-PipelinedOperators/Board/hds/_pipelinecounter_ebs3._epf create mode 100644 10-PipelinedOperators/Board/hds/buff/symbol.sb create mode 100644 10-PipelinedOperators/Board/hds/inverter/symbol.sb create mode 100644 10-PipelinedOperators/Board/hds/inverter@in/symbol.sb create mode 100644 10-PipelinedOperators/Board/hds/pipeline@counter_circuit/struct.bd create mode 100644 10-PipelinedOperators/Board/hds/pipeline@counter_circuit/symbol.sb create mode 100644 10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/struct.bd create mode 100644 10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/symbol.sb create mode 100644 10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/struct.bd create mode 100644 10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/symbol.sb create mode 100644 10-PipelinedOperators/Board/ise/pipelinedOperators.xise create mode 100644 10-PipelinedOperators/PipelinedOperators/hdl/parallelAdder_studentVersion.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_noPipe.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_studentVersion.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators/hdl/pipelineCounter_studentVersion.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_parallelAdder_studentVersion.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_paralleladder_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_noPipe.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_studentVersion.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineCounter_studentVersion.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineadder_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelinecounter_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/_paralleladder._epf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/_pipelineadder._epf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/_pipelinecounter._epf create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/parallel@adder/symbol.sb create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/pipeline@adder/symbol.sb create mode 100644 10-PipelinedOperators/PipelinedOperators/hds/pipeline@counter/symbol.sb create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hdl/parallelAdder_tester_test.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineAdder_tester_test.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineCounter_tester_test.vhd create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_parallelAdder_tester_test.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_struct.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tester_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineAdder_tester_test.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineCounter_tester_test.vhd._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_struct.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tester_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_struct.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tester_entity.vhg._fpf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/@d@a@c_tester_1/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/@pipeline@counter_tester/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tb._epf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tester._epf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tb._epf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tester._epf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tb._epf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tester._epf create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/beamer@periph@blanking_tester/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/struct.bd create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/symbol.sb create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tester/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/pc_tester/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/struct.bd create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/symbol.sb create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tester/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/struct.bd create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/symbol.sb create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/sine@gen_tester/interface create mode 100644 10-PipelinedOperators/PipelinedOperators_test/hds/waveform@gen_tester/interface create mode 100644 10-PipelinedOperators/Prefs/hds.hdp create mode 100644 10-PipelinedOperators/Prefs/hds_team/shared.hdp create mode 100644 10-PipelinedOperators/Prefs/hds_team/v2018.1/hds_team_prefs create mode 100644 10-PipelinedOperators/Prefs/hds_team/v2018.1/title_block.tmpl create mode 100644 10-PipelinedOperators/Prefs/hds_team/v2019.2/hds_team_prefs create mode 100644 10-PipelinedOperators/Prefs/hds_team/v2019.2/title_block.tmpl create mode 100644 10-PipelinedOperators/Prefs/hds_team/v2019.3/hds_team_prefs create mode 100644 10-PipelinedOperators/Prefs/hds_team/v2019.3/title_block.tmpl create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/hds_user_prefs create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/hds_user_prefs create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/generate.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/hds_user_prefs create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/generate.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd create mode 100644 10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd create mode 100755 10-PipelinedOperators/Scripts/cleanGenerated.bash create mode 100644 10-PipelinedOperators/Scripts/cleanGenerated.bat create mode 100644 10-PipelinedOperators/Scripts/cleanScratch.bat create mode 100644 10-PipelinedOperators/Scripts/generateSSHKey.bash create mode 100755 10-PipelinedOperators/Scripts/hdlDesigner.bash create mode 100644 10-PipelinedOperators/Scripts/hdlDesigner.bat create mode 100644 10-PipelinedOperators/Scripts/searchPaths.bat create mode 100644 10-PipelinedOperators/Scripts/trimLibs.pl create mode 100644 10-PipelinedOperators/Scripts/update_ise.pl create mode 100644 10-PipelinedOperators/Simulation/parallelAdder.do create mode 100644 10-PipelinedOperators/Simulation/pipelineAdder.do create mode 100644 10-PipelinedOperators/Simulation/pipelineCounter.do create mode 100755 10-PipelinedOperators/pipelinedOperators.bash create mode 100644 10-PipelinedOperators/pipelinedOperators.bat create mode 100644 Libs/AhbLite/hdl/ahbDecoder_RTL.vhd create mode 100644 Libs/AhbLite/hdl/ahbLite_pkg.vhd create mode 100644 Libs/AhbLite/hdl/ahbLite_pkg_body.vhd create mode 100644 Libs/AhbLite/hdl/ahbMasterInterface_RTL.vhd create mode 100644 Libs/AhbLite/hdl/ahbMultiplexor_RTL.vhd create mode 100644 Libs/AhbLite/hdl/ahbMuxConnector_RTL.vhd create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbDecoder_RTL.vhd._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg.vhd._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg_body.vhd._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbMasterInterface_RTL.vhd._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbMultiplexor_RTL.vhd._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbMuxConnector_RTL.vhd._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbdecoder_entity.vhg._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbmasterinterface_entity.vhg._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbmultiplexor_entity.vhg._fpf create mode 100644 Libs/AhbLite/hds/.hdlsidedata/_ahbmuxconnector_entity.vhg._fpf create mode 100644 Libs/AhbLite/hds/_ahbdecoder._epf create mode 100644 Libs/AhbLite/hds/_ahbmasterinterface._epf create mode 100644 Libs/AhbLite/hds/_ahbmultiplexor._epf create mode 100644 Libs/AhbLite/hds/_ahbmuxconnector._epf create mode 100644 Libs/AhbLite/hds/ahb@decoder/symbol.sb create mode 100644 Libs/AhbLite/hds/ahb@master@interface/symbol.sb create mode 100644 Libs/AhbLite/hds/ahb@multiplexor/symbol.sb create mode 100644 Libs/AhbLite/hds/ahb@mux@connector/symbol.sb create mode 100644 Libs/AhbLite_test/doc/AMBA_AHB-Lite_spec.pdf create mode 100644 Libs/AhbLite_test/hdl/ahbLite_tester_test.vhd create mode 100644 Libs/AhbLite_test/hds/.hdlsidedata/_ahbLite_tester_test.vhd._fpf create mode 100644 Libs/AhbLite_test/hds/_ahblite_tb._epf create mode 100644 Libs/AhbLite_test/hds/_ahblite_tester._epf create mode 100644 Libs/AhbLite_test/hds/ahb@lite_tb/struct.bd create mode 100644 Libs/AhbLite_test/hds/ahb@lite_tb/symbol.sb create mode 100644 Libs/AhbLite_test/hds/ahb@lite_tester/interface create mode 100644 Libs/AhbLite_test/hds/hds/_cordic_tb._epf create mode 100644 Libs/AhbLite_test/hds/hds/_cordic_tester._epf create mode 100644 Libs/AhbLite_test/hds/hds/_motherboard_tb._epf create mode 100644 Libs/AhbLite_test/hds/hds/_motherboard_tester._epf create mode 100644 Libs/Common/hdl/blinker_arch.vhd create mode 100644 Libs/Common/hdl/commonLib.vhd create mode 100644 Libs/Common/hdl/commonLib_body.vhd create mode 100644 Libs/Common/hdl/debounce_rtl.vhd create mode 100644 Libs/Common/hdl/debouncerULogicVector_RTL.vhd create mode 100644 Libs/Common/hdl/debouncer_RTL.vhd create mode 100644 Libs/Common/hdl/edgeDetector_rtl.vhd create mode 100644 Libs/Common/hdl/rotaryToUnsigned_rtl.vhd create mode 100644 Libs/Common/hdl/spikeFilter_RTL.vhd create mode 100644 Libs/Common/hdl/toggler_RTL.vhd create mode 100644 Libs/Common/hds/.hdlsidedata/_blinker_arch.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_blinker_entity.vhg._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_commonLib.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_commonLib_body.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_debounce_rtl.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_debouncerULogicVector_RTL.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_debouncer_RTL.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_debouncer_entity.vhg._fpf create mode 100755 Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhg._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_edgeDetector_rtl.vhd._fpf create mode 100755 Libs/Common/hds/.hdlsidedata/_edgedetector_entity.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_rotaryToUnsigned_rtl.vhd._fpf create mode 100755 Libs/Common/hds/.hdlsidedata/_rotarytounsigned_entity.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_spikeFilter_RTL.vhd._fpf create mode 100755 Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhg._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_toggler_RTL.vhd._fpf create mode 100644 Libs/Common/hds/.hdlsidedata/_toggler_entity.vhg._fpf create mode 100644 Libs/Common/hds/_blinker._epf create mode 100644 Libs/Common/hds/_debounce._epf create mode 100644 Libs/Common/hds/_debouncer._epf create mode 100755 Libs/Common/hds/_edgedetector._epf create mode 100755 Libs/Common/hds/_rotarytounsigned._epf create mode 100644 Libs/Common/hds/_toggler._epf create mode 100644 Libs/Common/hds/blinker/symbol.sb create mode 100644 Libs/Common/hds/debounce/symbol.sb create mode 100644 Libs/Common/hds/debouncer/symbol.sb create mode 100644 Libs/Common/hds/debouncer@u@logic@vector/symbol.sb create mode 100644 Libs/Common/hds/edge@detector/symbol.sb create mode 100644 Libs/Common/hds/rotary@to@unsigned/symbol.sb create mode 100644 Libs/Common/hds/spike@filter/symbol.sb create mode 100644 Libs/Common/hds/toggler/symbol.sb create mode 100644 Libs/Common_test/hdl/clockGenerator_sim.vhd create mode 100644 Libs/Common_test/hdl/commonLib_tb_test.vhd create mode 100644 Libs/Common_test/hdl/debounce_tester_test.vhd create mode 100644 Libs/Common_test/hdl/debouncerULogicVector_tester_RTL.vhd create mode 100644 Libs/Common_test/hdl/debouncer_tester_test.vhd create mode 100644 Libs/Common_test/hdl/requiredBitNb.txt create mode 100644 Libs/Common_test/hdl/rotaryToUnsigned_tester_test.vhd create mode 100644 Libs/Common_test/hdl/spikeFilter_tester_test.vhd create mode 100644 Libs/Common_test/hdl/testUtils_pkg.vhd create mode 100644 Libs/Common_test/hdl/testUtils_pkg_body.vhd create mode 100644 Libs/Common_test/hdl/testUtils_tb_test.vhd create mode 100644 Libs/Common_test/hdl/toggler_tester_test.vhd create mode 100644 Libs/Common_test/hds/.hdlsidedata/_clockGenerator_sim.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_commonLib_tb_test.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_debounce_tester_test.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_debouncerULogicVector_tester_RTL.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_debouncer_tester_test.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_rotaryToUnsigned_tester_test.vhd._fpf create mode 100755 Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_entity.vhd._fpf create mode 100755 Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_struct.vhd._fpf create mode 100755 Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tester_entity.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_spikeFilter_tester_test.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg_body.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_testUtils_tb_test.vhd._fpf create mode 100644 Libs/Common_test/hds/.hdlsidedata/_toggler_tester_test.vhd._fpf create mode 100644 Libs/Common_test/hds/_clockgenerator._epf create mode 100644 Libs/Common_test/hds/_commonlib_tb._epf create mode 100644 Libs/Common_test/hds/_debounce_tb._epf create mode 100644 Libs/Common_test/hds/_debounce_tester._epf create mode 100644 Libs/Common_test/hds/_debouncer_tb._epf create mode 100644 Libs/Common_test/hds/_debouncer_tester._epf create mode 100644 Libs/Common_test/hds/_debouncerulogicvector_tb._epf create mode 100644 Libs/Common_test/hds/_debouncerulogicvector_tester._epf create mode 100755 Libs/Common_test/hds/_rotarytounsigned_tb._epf create mode 100755 Libs/Common_test/hds/_rotarytounsigned_tester._epf create mode 100644 Libs/Common_test/hds/_spikefilter_tb._epf create mode 100644 Libs/Common_test/hds/_testutils_tb._epf create mode 100644 Libs/Common_test/hds/_toggler_tb._epf create mode 100644 Libs/Common_test/hds/_toggler_tester._epf create mode 100644 Libs/Common_test/hds/clock@generator/symbol.sb create mode 100644 Libs/Common_test/hds/common@lib_tb/symbol.sb create mode 100644 Libs/Common_test/hds/debounce_tb/struct.bd create mode 100644 Libs/Common_test/hds/debounce_tb/symbol.sb create mode 100644 Libs/Common_test/hds/debounce_tester/interface create mode 100644 Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd create mode 100644 Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb create mode 100644 Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface create mode 100644 Libs/Common_test/hds/debouncer_tb/struct.bd create mode 100644 Libs/Common_test/hds/debouncer_tb/symbol.sb create mode 100644 Libs/Common_test/hds/debouncer_tester/interface create mode 100644 Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd create mode 100644 Libs/Common_test/hds/rotary@to@unsigned_tb/symbol.sb create mode 100644 Libs/Common_test/hds/rotary@to@unsigned_tester/interface create mode 100644 Libs/Common_test/hds/spike@filter_tb/struct.bd create mode 100644 Libs/Common_test/hds/spike@filter_tb/symbol.sb create mode 100644 Libs/Common_test/hds/spike@filter_tester/interface create mode 100644 Libs/Common_test/hds/test@utils_tb/symbol.sb create mode 100644 Libs/Common_test/hds/toggler_tb/struct.bd create mode 100644 Libs/Common_test/hds/toggler_tb/symbol.sb create mode 100644 Libs/Common_test/hds/toggler_tester/interface create mode 100644 Libs/Common_test/sim/debounce.do create mode 100644 Libs/Common_test/sim/debouncerULogicVector.do create mode 100644 Libs/Common_test/sim/rotaryToUnsigned.do create mode 100644 Libs/Common_test/sim/spikeFilter.do create mode 100644 Libs/Lattice/hdl/ice40_sbIoOd_rtl.vhd create mode 100644 Libs/Lattice/hdl/pll_rtl.vhd create mode 100644 Libs/Lattice/hdl/pll_vga_Structure.vhd create mode 100644 Libs/Lattice/hds/.hdlsidedata/_ice40_sbIoOd_rtl.vhd._fpf create mode 100644 Libs/Lattice/hds/.hdlsidedata/_pll_rtl.vhd._fpf create mode 100644 Libs/Lattice/hds/.hdlsidedata/_pll_vga_Structure.vhd._fpf create mode 100644 Libs/Lattice/hds/_ice40_sbiood._epf create mode 100644 Libs/Lattice/hds/_pll._epf create mode 100644 Libs/Lattice/hds/_pll_vga._epf create mode 100644 Libs/Lattice/hds/ice40_sb@io@od/symbol.sb create mode 100644 Libs/Lattice/hds/pll/symbol.sb create mode 100644 Libs/Lattice/hds/pll_vga/symbol.sb create mode 100644 Libs/Memory/hdl/bramBinASCIIInit_rtl.vhd create mode 100644 Libs/Memory/hdl/bramDualportWritefirst_bhv.vhd create mode 100644 Libs/Memory/hdl/bramDualport_bhv.vhd create mode 100644 Libs/Memory/hdl/bramHexASCIIInit_rtl.vhd create mode 100644 Libs/Memory/hdl/bram_actel.vhd create mode 100644 Libs/Memory/hdl/bram_bhv.vhd create mode 100644 Libs/Memory/hdl/bram_dualport_writefirst.vhd create mode 100644 Libs/Memory/hdl/bram_hexRead.vhd create mode 100644 Libs/Memory/hdl/bram_withInit.vhd create mode 100644 Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd create mode 100644 Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd create mode 100644 Libs/Memory/hdl/fifo_bram_rtl.vhd create mode 100644 Libs/Memory/hdl/fifo_minimal.vhd create mode 100644 Libs/Memory/hdl/fifo_oneRegister_rtl.vhd create mode 100644 Libs/Memory/hdl/fifo_pim.vhd create mode 100644 Libs/Memory/hdl/fifo_rtl_minimal.vhd create mode 100644 Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd create mode 100644 Libs/Memory/hdl/flashController_RTL.vhd create mode 100644 Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd create mode 100644 Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd create mode 100644 Libs/Memory/hdl/sdramControllerSR_RTL.vhd create mode 100644 Libs/Memory/hdl/sdramControllerSampleDataIn_RTL.vhd create mode 100644 Libs/Memory/hdl/sdramControllerStoreData_RTL.vhd create mode 100644 Libs/Memory/hdl/sdramControllerTimingsShiftRegister_RTL.vhd create mode 100644 Libs/Memory/hds/.hdlsidedata/_bramBinASCIIInit_rtl.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_bramDualportWritefirst_bhv.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_bramDualport_bhv.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_bramHexASCIIInit_rtl.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_bram_actel.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_bram_bhv.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_bram_dualport_writefirst.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_bram_hexRead.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_bram_withInit.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhg._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhg._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhg._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_minimal.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_oneRegister_rtl.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhg._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_pim.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_rtl.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_rtl_minimal.vhd._fpf create mode 100755 Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhg._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_fifobridgerxtotx_rtl.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_flashController_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_sdramControllerBuildAddress_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_sdramControllerRefreshCounter_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_sdramControllerSR_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_sdramControllerSampleDataIn_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_sdramControllerStoreData_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/.hdlsidedata/_sdramControllerTimingsShiftRegister_RTL.vhd._fpf create mode 100644 Libs/Memory/hds/@f@i@f@o/struct.bd create mode 100644 Libs/Memory/hds/@f@i@f@o/symbol.sb create mode 100644 Libs/Memory/hds/@f@i@f@o_bram/symbol.sb create mode 100644 Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb create mode 100644 Libs/Memory/hds/_bram._epf create mode 100644 Libs/Memory/hds/_bramBinASCIIInit._epf create mode 100644 Libs/Memory/hds/_bramHexASCIIInit._epf create mode 100755 Libs/Memory/hds/_bramdualport._epf create mode 100644 Libs/Memory/hds/_bramdualportwritefirst._epf create mode 100644 Libs/Memory/hds/_fifo._epf create mode 100644 Libs/Memory/hds/_fifo_bram._epf create mode 100644 Libs/Memory/hds/_fifo_oneregister._epf create mode 100644 Libs/Memory/hds/_fifobridge._epf create mode 100644 Libs/Memory/hds/_fifobridgebuswidthadaption._epf create mode 100644 Libs/Memory/hds/_fifobridgerxtotx._epf create mode 100644 Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptionrxbigger._epf create mode 100644 Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptiontxbigger._epf create mode 100644 Libs/Memory/hds/_flashcontroller._epf create mode 100644 Libs/Memory/hds/_sdramcontroller._epf create mode 100644 Libs/Memory/hds/_sdramcontrollerbuildaddress._epf create mode 100644 Libs/Memory/hds/_sdramcontrollerfsm._epf create mode 100644 Libs/Memory/hds/_sdramcontrollerrefreshcounter._epf create mode 100644 Libs/Memory/hds/_sdramcontrollersampledatain._epf create mode 100644 Libs/Memory/hds/_sdramcontrollersr._epf create mode 100644 Libs/Memory/hds/_sdramcontrollerstoredata._epf create mode 100644 Libs/Memory/hds/_sdramcontrollertimingsshiftregister._epf create mode 100644 Libs/Memory/hds/bram/symbol.sb create mode 100644 Libs/Memory/hds/bram@Bin@ASCII@Init/symbol.sb create mode 100644 Libs/Memory/hds/bram@Hex@ASCII@Init/symbol.sb create mode 100644 Libs/Memory/hds/bram@dualport/symbol.sb create mode 100644 Libs/Memory/hds/bram@dualport@writefirst/symbol.sb create mode 100644 Libs/Memory/hds/fifo@bridge/struct.bd create mode 100644 Libs/Memory/hds/fifo@bridge/symbol.sb create mode 100644 Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd create mode 100644 Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb create mode 100644 Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb create mode 100644 Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface create mode 100644 Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface create mode 100644 Libs/Memory/hds/flash@controller/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller/struct.bd create mode 100644 Libs/Memory/hds/sdram@controller/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@build@address/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@fsm/fsm.sm create mode 100644 Libs/Memory/hds/sdram@controller@fsm/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@s@r/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@store@data/symbol.sb create mode 100644 Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb create mode 100644 Libs/Memory_test/hdl/Flash_behav.vhd create mode 100644 Libs/Memory_test/hdl/bram_tester_test.vhd create mode 100644 Libs/Memory_test/hdl/fifo_tester_test.vhd create mode 100644 Libs/Memory_test/hdl/flashController_tester_test.vhd create mode 100644 Libs/Memory_test/hdl/flash_tester_test.vhd create mode 100644 Libs/Memory_test/hdl/mti_pkg_pkg.vhd create mode 100644 Libs/Memory_test/hdl/mti_pkg_pkg_body.vhd create mode 100644 Libs/Memory_test/hdl/sdramController_tester_test.vhd create mode 100644 Libs/Memory_test/hdl/sdram_mt48lc16m16a2_sim.vhd create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_Flash_behav.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_bram_tester_test.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_fifo_tester_test.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_flashController_tester_test.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_flash_tester_test.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg_body.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_sdramController_tester_test.vhd._fpf create mode 100644 Libs/Memory_test/hds/.hdlsidedata/_sdram_mt48lc16m16a2_sim.vhd._fpf create mode 100644 Libs/Memory_test/hds/_bram_tb._epf create mode 100644 Libs/Memory_test/hds/_bram_tester._epf create mode 100644 Libs/Memory_test/hds/_fifo_tb._epf create mode 100644 Libs/Memory_test/hds/_flash_28f128j3a._epf create mode 100644 Libs/Memory_test/hds/_flash_tb._epf create mode 100644 Libs/Memory_test/hds/_flash_tester._epf create mode 100644 Libs/Memory_test/hds/_flashcontroller_tb._epf create mode 100644 Libs/Memory_test/hds/_flashcontroller_tester._epf create mode 100644 Libs/Memory_test/hds/_sdramcontroller_tb._epf create mode 100644 Libs/Memory_test/hds/_sdramcontroller_tester._epf create mode 100644 Libs/Memory_test/hds/bram_tb/struct.bd create mode 100644 Libs/Memory_test/hds/bram_tb/symbol.sb create mode 100644 Libs/Memory_test/hds/bram_tester/interface create mode 100644 Libs/Memory_test/hds/fifo_tb/struct.bd create mode 100644 Libs/Memory_test/hds/fifo_tb/struct.bd.info/msimSimulationReplay.sh create mode 100644 Libs/Memory_test/hds/fifo_tb/symbol.sb create mode 100644 Libs/Memory_test/hds/fifo_tester/interface create mode 100644 Libs/Memory_test/hds/flash@controller_tb/struct.bd create mode 100644 Libs/Memory_test/hds/flash@controller_tb/symbol.sb create mode 100644 Libs/Memory_test/hds/flash@controller_tester/interface create mode 100644 Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb create mode 100644 Libs/Memory_test/hds/flash_tb/struct.bd create mode 100644 Libs/Memory_test/hds/flash_tb/symbol.sb create mode 100644 Libs/Memory_test/hds/flash_tester/interface create mode 100644 Libs/Memory_test/hds/sdram@controller_tb/struct.bd create mode 100644 Libs/Memory_test/hds/sdram@controller_tb/symbol.sb create mode 100644 Libs/Memory_test/hds/sdram@controller_tester/interface create mode 100644 Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb create mode 100644 Libs/NanoBlaze/hdl/aluBOpSelector_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/alu_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/branchStack_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/controller_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/instructionDecoder_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/nanoAsm.pl create mode 100644 Libs/NanoBlaze/hdl/nanoPascal.pl create mode 100644 Libs/NanoBlaze/hdl/nanoTest.asm create mode 100644 Libs/NanoBlaze/hdl/nanoTest.pas create mode 100644 Libs/NanoBlaze/hdl/nanoTest.vhd create mode 100644 Libs/NanoBlaze/hdl/programCounter_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/registerFile_RTL.vhd create mode 100644 Libs/NanoBlaze/hdl/rom_empty.vhd create mode 100644 Libs/NanoBlaze/hdl/rom_mapped.vhd create mode 100644 Libs/NanoBlaze/hdl/scratchpad_RTL.vhd create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_aluBOpSelector_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_alu_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_alu_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_struct.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_alubopselector_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_branchStack_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_branchstack_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_controller_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_controller_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_instructionDecoder_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_instructiondecoder_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_nanoTest.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_struct.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_struct.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_programCounter_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_programcounter_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_programrom_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_registerFile_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_registerfile_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_rom_empty.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_rom_mapped.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_RTL.vhd._fpf create mode 100644 Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_entity.vhg._fpf create mode 100644 Libs/NanoBlaze/hds/_alu._epf create mode 100644 Libs/NanoBlaze/hds/_aluandregs._epf create mode 100644 Libs/NanoBlaze/hds/_alubopselector._epf create mode 100644 Libs/NanoBlaze/hds/_branchstack._epf create mode 100644 Libs/NanoBlaze/hds/_controller._epf create mode 100644 Libs/NanoBlaze/hds/_instructiondecoder._epf create mode 100644 Libs/NanoBlaze/hds/_nanoblaze._epf create mode 100644 Libs/NanoBlaze/hds/_nanoprocessor._epf create mode 100644 Libs/NanoBlaze/hds/_programcounter._epf create mode 100644 Libs/NanoBlaze/hds/_programrom._epf create mode 100644 Libs/NanoBlaze/hds/_registerfile._epf create mode 100644 Libs/NanoBlaze/hds/_scratchpad._epf create mode 100644 Libs/NanoBlaze/hds/alu/symbol.sb create mode 100644 Libs/NanoBlaze/hds/alu@and@regs/struct.bd create mode 100644 Libs/NanoBlaze/hds/alu@and@regs/symbol.sb create mode 100644 Libs/NanoBlaze/hds/alu@b@op@selector/symbol.sb create mode 100644 Libs/NanoBlaze/hds/branch@stack/symbol.sb create mode 100644 Libs/NanoBlaze/hds/controller/symbol.sb create mode 100644 Libs/NanoBlaze/hds/instruction@decoder/symbol.sb create mode 100644 Libs/NanoBlaze/hds/nano@blaze/struct.bd create mode 100644 Libs/NanoBlaze/hds/nano@blaze/symbol.sb create mode 100644 Libs/NanoBlaze/hds/nano@processor/struct.bd create mode 100644 Libs/NanoBlaze/hds/nano@processor/symbol.sb create mode 100644 Libs/NanoBlaze/hds/program@counter/symbol.sb create mode 100644 Libs/NanoBlaze/hds/program@rom/symbol.sb create mode 100644 Libs/NanoBlaze/hds/register@file/symbol.sb create mode 100644 Libs/NanoBlaze/hds/scratchpad/symbol.sb create mode 100644 Libs/NanoBlaze_test/hdl/nanoBlaze_tester_test.vhd create mode 100644 Libs/NanoBlaze_test/hds/.hdlsidedata/_nanoBlaze_tester_test.vhd._fpf create mode 100644 Libs/NanoBlaze_test/hds/_nanoblaze_tb._epf create mode 100644 Libs/NanoBlaze_test/hds/_nanoblaze_tester._epf create mode 100644 Libs/NanoBlaze_test/hds/hds/_cordic_tb._epf create mode 100644 Libs/NanoBlaze_test/hds/hds/_cordic_tester._epf create mode 100644 Libs/NanoBlaze_test/hds/hds/_motherboard_tb._epf create mode 100644 Libs/NanoBlaze_test/hds/hds/_motherboard_tester._epf create mode 100644 Libs/NanoBlaze_test/hds/nano@blaze_tb/struct.bd create mode 100644 Libs/NanoBlaze_test/hds/nano@blaze_tb/symbol.sb create mode 100644 Libs/NanoBlaze_test/hds/nano@blaze_tester/interface create mode 100644 Libs/NanoBlaze_test/sim/nanoBlaze.do create mode 100644 Libs/RS232/hdl/cmdRs232Mux_RTL.vhd create mode 100644 Libs/RS232/hdl/serialPortReceiver_rtl.vhd create mode 100644 Libs/RS232/hdl/serialPortTransmitter_rtl.vhd create mode 100644 Libs/RS232/hds/.hdlsidedata/_cmdRs232Mux_RTL.vhd._fpf create mode 100755 Libs/RS232/hds/.hdlsidedata/_serialPortReceiver_rtl.vhd._fpf create mode 100755 Libs/RS232/hds/.hdlsidedata/_serialPortTransmitter_rtl.vhd._fpf create mode 100755 Libs/RS232/hds/.hdlsidedata/_serialportfifo_entity.vhd._fpf create mode 100755 Libs/RS232/hds/.hdlsidedata/_serialportfifo_struct.vhd._fpf create mode 100755 Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhd._fpf create mode 100644 Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhg._fpf create mode 100755 Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhd._fpf create mode 100644 Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhg._fpf create mode 100644 Libs/RS232/hds/_rs232mux._epf create mode 100644 Libs/RS232/hds/_serialportfifo._epf create mode 100755 Libs/RS232/hds/_serialportreceiver._epf create mode 100755 Libs/RS232/hds/_serialporttransmitter._epf create mode 100644 Libs/RS232/hds/rs232@mux/symbol.sb create mode 100644 Libs/RS232/hds/serial@port@f@i@f@o/struct.bd create mode 100644 Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb create mode 100644 Libs/RS232/hds/serial@port@receiver/symbol.sb create mode 100644 Libs/RS232/hds/serial@port@transmitter/symbol.sb create mode 100644 Libs/RS232_test/hdl/serialPortFIFO_tester_test.vhd create mode 100644 Libs/RS232_test/hdl/serialPortTransmitter_tester_test.vhd create mode 100644 Libs/RS232_test/hdl/uvmRs232Driver_sim.vhd create mode 100644 Libs/RS232_test/hdl/uvmRs232Monitor_sim.vhd create mode 100644 Libs/RS232_test/hdl/uvmRs232_tester_test.vhd create mode 100644 Libs/RS232_test/hds/.hdlsidedata/_serialPortFIFO_tester_test.vhd._fpf create mode 100755 Libs/RS232_test/hds/.hdlsidedata/_serialPortTransmitter_tester_test.vhd._fpf create mode 100644 Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Driver_sim.vhd._fpf create mode 100644 Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Monitor_sim.vhd._fpf create mode 100644 Libs/RS232_test/hds/.hdlsidedata/_uvmRs232_tester_test.vhd._fpf create mode 100644 Libs/RS232_test/hds/_serialportfifo_tb._epf create mode 100644 Libs/RS232_test/hds/_serialportfifo_tester._epf create mode 100755 Libs/RS232_test/hds/_serialporttransmitter_tb._epf create mode 100755 Libs/RS232_test/hds/_serialporttransmitter_tester._epf create mode 100644 Libs/RS232_test/hds/_uvmrs232_tb._epf create mode 100644 Libs/RS232_test/hds/_uvmrs232_tester._epf create mode 100644 Libs/RS232_test/hds/_uvmrs232agenthw._epf create mode 100644 Libs/RS232_test/hds/_uvmrs232driver._epf create mode 100644 Libs/RS232_test/hds/_uvmrs232monitor._epf create mode 100644 Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd create mode 100644 Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb create mode 100644 Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface create mode 100755 Libs/RS232_test/hds/serial@port@transmitter_tb/_struct.bd._fpf create mode 100644 Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd create mode 100644 Libs/RS232_test/hds/serial@port@transmitter_tb/symbol.sb create mode 100644 Libs/RS232_test/hds/serial@port@transmitter_tester/interface create mode 100644 Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd create mode 100644 Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb create mode 100644 Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb create mode 100644 Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb create mode 100644 Libs/RS232_test/hds/uvm@rs232_tb/struct.bd create mode 100644 Libs/RS232_test/hds/uvm@rs232_tb/symbol.sb create mode 100644 Libs/RS232_test/hds/uvm@rs232_tester/interface create mode 100644 Libs/RS232_test/sim/serialPortTransmitter.do create mode 100644 Libs/RS232_test/sim/uartDriver.txt create mode 100644 Libs/RS232_test/sim/uvmRs232.do create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hdl/instrDecoder_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hdl/instructionForwarder_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/_controlunit._epf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/_heirv32_mc._epf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/_instrdecoder._epf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/_instructiondatamemory._epf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/_instructionforwarder._epf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/_mainfsm._epf create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/struct.bd create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/struct.bd create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/instr@decoder/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/struct.bd create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@forwarder/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/fsm.sm create mode 100644 Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hdl/dataMemory_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_bin.vhd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_hex.vhd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hdl/mainDecoder_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_controlunit_masterversion.vhg._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_dataMemory_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_bin.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_hex.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_mainDecoder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_rtl_instrMemory.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/_bin._epf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/_controlunit._epf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/_datamemory._epf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/_heirv32_sc._epf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/_instrmemory._epf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/_maindecoder._epf create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/bin/interface create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/master@version.bd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/students@version.bd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/data@memory/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/struct.bd create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/instr@memory/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/SingleCycle/hds/main@decoder/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hdl/ALU_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/aluDecoder_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/bramAddrReducer_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/bufferStdULogEnable_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/bufferUnsignedEnable_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/extend_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/mux4To1ULogVec_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hdl/registerFile_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_ALU_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bramAddrReducer_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferStdULogEnable_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferUnsignedEnable_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_extend_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mux4To1ULogVec_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/.hdlsidedata/_registerFile_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32/hds/@a@l@u/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/_alu._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_aludecoder._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_bramaddrreducer._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_bufferstdulogenable._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_bufferunsignedenable._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_extend._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_mux4to1ulogvec._epf create mode 100644 Libs/RiscV/HEIRV32/hds/_registerfile._epf create mode 100644 Libs/RiscV/HEIRV32/hds/alu@decoder/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/bram@addr@reducer/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/buffer@std@u@log@enable/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/buffer@unsigned@enable/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/extend/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/mux4@to1@u@log@vec/symbol.sb create mode 100644 Libs/RiscV/HEIRV32/hds/register@file/symbol.sb create mode 100644 Libs/RiscV/HEIRV32_test/concat/concatenated.vhd create mode 100644 Libs/RiscV/HEIRV32_test/hdl/heirv32_mc_tester_test.vhd create mode 100644 Libs/RiscV/HEIRV32_test/hdl/heirv32_sc_tester_rtl.vhd create mode 100644 Libs/RiscV/HEIRV32_test/hdl/universalTester_test.vhd create mode 100644 Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_mc_tester_test.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_rtl.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_test.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tb_universal.vhg._fpf create mode 100644 Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tester_test.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_universalTester_test.vhd._fpf create mode 100644 Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tb._epf create mode 100644 Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tester._epf create mode 100644 Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tb._epf create mode 100644 Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tester._epf create mode 100644 Libs/RiscV/HEIRV32_test/hds/_universaltester._epf create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/struct.bd create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/symbol.sb create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/universal.bd create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tester/interface create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/struct.bd create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/symbol.sb create mode 100644 Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tester/interface create mode 100644 Libs/RiscV/HEIRV32_test/hds/universal@tester/interface create mode 100644 Libs/RiscV/NEORV32/LICENSE create mode 100644 Libs/RiscV/NEORV32/README.md create mode 100644 Libs/RiscV/NEORV32/docs/NEORV32.pdf create mode 100644 Libs/RiscV/NEORV32/docs/NEORV32_UserGuide.pdf create mode 100644 Libs/RiscV/NEORV32/hdl/.gitkeep create mode 100644 Libs/RiscV/NEORV32/hds/.gitkeep create mode 100644 Libs/RiscV/NEORV32/rtl/README.md create mode 100644 Libs/RiscV/NEORV32/rtl/core/mem/README.md create mode 100644 Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.cyclone2.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.default.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.cyclone2.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.default.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_application_image.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_boot_rom.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_bootloader_image.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_bus_keeper.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_busswitch.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cfs.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_alu.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_bus.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_control.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_bitmanip.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_fpu.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_muldiv.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_shifter.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_decompressor.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_regfile.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dm.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dtm.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_dmem.entity.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_fifo.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_gpio.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_gptmr.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_icache.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_imem.entity.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_mtime.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_neoled.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_package.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_pwm.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_slink.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_spi.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_sysinfo.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_top.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_trng.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_twi.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_uart.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_wdt.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_wishbone.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/core/neorv32_xirq.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/processor_templates/README.md create mode 100644 Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_Minimal.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_UP5KDemo.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/system_integration/neorv32_ProcessorTop_stdlogic.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_axi4lite.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/test_setups/README.md create mode 100644 Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_approm.vhd create mode 100644 Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_bootloader.vhd create mode 100644 Libs/RiscV/NEORV32/setups/README.md create mode 100644 Libs/RiscV/NEORV32/setups/osflow/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/osflow/Makefile create mode 100644 Libs/RiscV/NEORV32/setups/osflow/PnR_Bit.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/README.md create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_AlhambraII_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_Minimal.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MixedLanguage.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_UP5KDemo.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_OrangeCrab_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_ULX3S_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_UP5KDemo.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_UP5KDemo.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_Minimal.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_MinimalBoot.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/AlhambraII.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/Fomu.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/OrangeCrab.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/ULX3S.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/UPduino.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/iCEBreaker.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/iCESugar.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/boards/index.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/common.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/AlhambraII.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt2.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt3.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-hacker.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-pvt.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/OrangeCrab.lpf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/ULX3S.lpf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/UPduino_v3.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/iCEBreaker.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/constraints/iCESugar.pcf create mode 100644 Libs/RiscV/NEORV32/setups/osflow/devices/ecp5/ecp5_components.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_dmem.ice40up_spram.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_imem.ice40up_spram.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/devices/ice40/sb_ice40_components.vhd create mode 100644 Libs/RiscV/NEORV32/setups/osflow/filesets.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/synthesis.mk create mode 100644 Libs/RiscV/NEORV32/setups/osflow/tools.mk create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/README.md create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qpf create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qsf create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.qip create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.vhd create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/neorv32_test_setup_avalonmm.vhd create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/README.md create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/User_Components.ipx create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qpf create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qsf create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.sdc create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/figures/neorv32_platform_designer.png create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/neorv32_ProcessorTop_Test.vhd create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/neorv32_test_qsys.qsys create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/README.md create mode 100644 Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/create_project.tcl create mode 100644 Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/README.md create mode 100644 Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/figures/gui_settings.png create mode 100644 Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/figures/overview.png create mode 100644 Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.qip create mode 100644 Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.vhd create mode 100644 Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys_hw.tcl create mode 100644 Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/README.md create mode 100644 Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/create_project.tcl create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/README.md create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_dmem.ice40up_spram.vhd create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_imem.ice40up_spram.vhd create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.pdc create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.rdf create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3_top.vhd create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/source/impl_1.xcf create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/rtl/system_pll.v create mode 100644 Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/system_pll.ipx create mode 100644 Libs/RiscV/NEORV32/setups/vivado/README.md create mode 100644 Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/README.md create mode 100644 Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/arty_a7_test_setup.xdc create mode 100644 Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/create_project.tcl create mode 100644 Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/.gitignore create mode 100644 Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/README.md create mode 100644 Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/create_project.tcl create mode 100644 Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/nexys_a7_test_setup.xdc create mode 100644 Libs/RiscV/NEORV32/sw/README.md create mode 100644 Libs/RiscV/NEORV32/sw/bootloader/makefile create mode 100644 Libs/RiscV/NEORV32/sw/common/common.mk create mode 100644 Libs/RiscV/NEORV32/sw/common/crt0.S create mode 100644 Libs/RiscV/NEORV32/sw/common/neorv32.ld create mode 100644 Libs/RiscV/NEORV32/sw/example/bitmanip_test/README.md create mode 100644 Libs/RiscV/NEORV32/sw/example/bitmanip_test/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/bitmanip_test/neorv32_b_extension_intrinsics.h create mode 100644 Libs/RiscV/NEORV32/sw/example/blink_led/blink_led_in_asm.S create mode 100644 Libs/RiscV/NEORV32/sw/example/blink_led/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/bus_explorer/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/coremark/LICENSE.md create mode 100644 Libs/RiscV/NEORV32/sw/example/coremark/README.md create mode 100644 Libs/RiscV/NEORV32/sw/example/coremark/core_portme.h create mode 100644 Libs/RiscV/NEORV32/sw/example/coremark/coremark.h create mode 100644 Libs/RiscV/NEORV32/sw/example/coremark/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/FreeRTOSConfig.h create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/README.md create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/chip_specific_extensions/neorv32/freertos_risc_v_chip_specific_extensions.h create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/full_demo/RegTest.s create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_gptmr/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_neopixel/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_pwm/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_slink/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_spi/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_trng/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_twi/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_wdt/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/demo_xirq/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/dhrystone/LICENSE create mode 100644 Libs/RiscV/NEORV32/sw/example/dhrystone/README.md create mode 100644 Libs/RiscV/NEORV32/sw/example/dhrystone/dhry.h create mode 100644 Libs/RiscV/NEORV32/sw/example/dhrystone/dhrystone.sh create mode 100644 Libs/RiscV/NEORV32/sw/example/dhrystone/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/floating_point_test/README.md create mode 100644 Libs/RiscV/NEORV32/sw/example/floating_point_test/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/floating_point_test/neorv32_zfinx_extension_intrinsics.h create mode 100644 Libs/RiscV/NEORV32/sw/example/game_of_life/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/hello_world/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/makefile create mode 100644 Libs/RiscV/NEORV32/sw/example/processor_check/makefile create mode 100644 Libs/RiscV/NEORV32/sw/image_gen/uart_upload.sh create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/common.mk create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/README.md create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/C/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/E/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/M/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/C/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/I/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/M/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/Zifencei/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/privilege/Makefile.include create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_ram.ld create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_rom.ld create mode 100644 Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/model_test.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/README.md create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_cfs.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_cpu.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_gpio.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_gptmr.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_intrinsics.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_mtime.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_neoled.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_pwm.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_rte.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_slink.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_spi.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_trng.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_twi.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_uart.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_wdt.h create mode 100644 Libs/RiscV/NEORV32/sw/lib/include/neorv32_xirq.h create mode 100644 Libs/RiscV/NEORV32/sw/ocd-firmware/.gitignore create mode 100644 Libs/RiscV/NEORV32/sw/ocd-firmware/README.md create mode 100644 Libs/RiscV/NEORV32/sw/ocd-firmware/debug_rom.ld create mode 100644 Libs/RiscV/NEORV32/sw/ocd-firmware/makefile create mode 100644 Libs/RiscV/NEORV32/sw/ocd-firmware/park_loop.S create mode 100644 Libs/RiscV/NEORV32/sw/openocd/openocd_neorv32.cfg create mode 100644 Libs/RiscV/NEORV32/sw/svd/README.md create mode 100644 Libs/RiscV/NEORV32/sw/svd/neorv32.svd create mode 100644 Libs/RiscV/NEORV32_test/hdl/.gitkeep create mode 100644 Libs/RiscV/NEORV32_test/hds/.gitkeep create mode 100644 Libs/RiscV_test/NEORV32_test/README.md create mode 100644 Libs/RiscV_test/NEORV32_test/neorv32_tb.vhd create mode 100644 Libs/RiscV_test/NEORV32_test/run.py create mode 100644 Libs/RiscV_test/NEORV32_test/run_riscv_arch_test.sh create mode 100644 Libs/RiscV_test/NEORV32_test/simple/ghdl.run.sh create mode 100644 Libs/RiscV_test/NEORV32_test/simple/ghdl.setup.sh create mode 100644 Libs/RiscV_test/NEORV32_test/simple/ghdl.sh create mode 100644 Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.iram.simple.vhd create mode 100644 Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.simple.vhd create mode 100644 Libs/RiscV_test/NEORV32_test/simple/neorv32_tb.simple.vhd create mode 100644 Libs/RiscV_test/NEORV32_test/simple/uart_rx.simple.vhd create mode 100644 Libs/RiscV_test/NEORV32_test/uart_rx.vhd create mode 100644 Libs/RiscV_test/NEORV32_test/uart_rx_pkg.vhd create mode 100644 README.md diff --git a/01-WaveformGenerator/Prefs/dp_user/v2_72/dp_user_prefs b/01-WaveformGenerator/Prefs/dp_user/v2_72/dp_user_prefs new file mode 100644 index 0000000..6a67047 --- /dev/null +++ b/01-WaveformGenerator/Prefs/dp_user/v2_72/dp_user_prefs @@ -0,0 +1,64 @@ +[LexParser.LexVHDL2008] +[LexParser] +[Editor] +recentFile0=/usr/opt/HDS/hdl_libs/ieee/hdl/std_logic_1164.vhdl +lastFilter=.vhdl +mark.lineImage=blueball +[Printer] +ENSCRIPT_LIBRARY=/usr/opt/HDS/resources/enscript/share/enscript +[ToolbarFrames] +geom0Group1=top H +geom0Group2=top H +geom0Group3=top H +state0Search=1 +Num=0 +state0VersionManagement=1 +state0Tasks=1 +state0View=1 +state0Standard=1 +state0Edit=1 +Group1=Standard Search +Group2=Edit Bookmarks View Macros DocumentTools Windows +Group3=VersionManagement Tasks +state0Macros=1 +state0Bookmarks=1 +state0Windows=1 +state0DocumentTools=1 +[LexParser.LexPSL] +[DND] +TrackerBg=#c3c3c3 +signalAcceptDropBg=white +signalRefuseDropBg=red +[General] +[Browser] +normalTextBg=white +normalTextFg=black +[Replace] +historyMax=4 +atomicReplaceAll=No +[Console] +[Templates] +Visibility=No +[SearchInFiles] +SearchAsRegExp=0 +MatchCase=0 +LookInSubfolders=0 +historyMax=4 +[VDiff] +[R72] +indentType=spaces +indentString=\#\#\# +[TCOM] +logTCOMActivity=No +afterIdleHandlerTimeSlice=300 +[Menus] +DocAndVis= +[Help] +default=te_guide +[Plugins] +userLanguages= +[Search] +historyMax=4 +[Geometry] +TopWindow0=1286x981+317+1103 +FrameSupp0,0=165 diff --git a/01-WaveformGenerator/Prefs/hds.hdp b/01-WaveformGenerator/Prefs/hds.hdp new file mode 100644 index 0000000..b986ef0 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds.hdp @@ -0,0 +1,19 @@ +[Concat] +[ModelSim] +WaveformGenerator = $SCRATCH_DIR/WaveformGenerator +WaveformGenerator_test = $SCRATCH_DIR/WaveformGenerator_test +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +WaveformGenerator = $HDS_PROJECT_DIR/../WaveformGenerator/hdl +WaveformGenerator_test = $HDS_PROJECT_DIR/../WaveformGenerator_test/hdl +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +WaveformGenerator = $HDS_PROJECT_DIR/../WaveformGenerator/hds +WaveformGenerator_test = $HDS_PROJECT_DIR/../WaveformGenerator_test/hds +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/01-WaveformGenerator/Prefs/hds_team/shared.hdp b/01-WaveformGenerator/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/01-WaveformGenerator/Prefs/hds_team/v2018.1/hds_team_prefs b/01-WaveformGenerator/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/01-WaveformGenerator/Prefs/hds_team/v2018.1/title_block.tmpl b/01-WaveformGenerator/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/01-WaveformGenerator/Prefs/hds_team/v2019.2/hds_team_prefs b/01-WaveformGenerator/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/01-WaveformGenerator/Prefs/hds_team/v2019.2/title_block.tmpl b/01-WaveformGenerator/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/01-WaveformGenerator/Prefs/hds_team/v2019.3/hds_team_prefs b/01-WaveformGenerator/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/01-WaveformGenerator/Prefs/hds_team/v2019.3/title_block.tmpl b/01-WaveformGenerator/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..87d40fc --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6097 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/01-WaveformGenerator/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/SEm_labs/01-WaveformGenerator/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "task_DesignCompilerPath" +second "" +) +(pair +first "task_LeonardoPath" +second "" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +(pair +first "task_NC-SimPath" +second "" +) +(pair +first "task_PrecisionRTLPath" +second "" +) +(pair +first "task_QuestaSimPath" +second "" +) +(pair +first "task_VCSPath" +second "" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Xilinx Project Navigator" +"USER:Prepare for Synthesis" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "850x916--10+40" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator" +showingHierarchy 0 +openLibs [ +"WaveformGenerator" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator_test" +showingHierarchy 0 +openLibs [ +"WaveformGenerator_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "ieee" +showingHierarchy 0 +openLibs [ +"ieee" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 155 +yPos 1148 +width 1066 +height 937 +activeSidePanelTab 2 +activeLibraryTab 3 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +) +] diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..7348b0e --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/waveformGen.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/hds_user_prefs b/01-WaveformGenerator/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/generate.tsk b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/hds_user_prefs b/01-WaveformGenerator/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..4cd7572 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6841 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x200+2349+55" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator" +showingHierarchy 0 +openLibs [ +"WaveformGenerator" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator_test" +showingHierarchy 0 +openLibs [ +"WaveformGenerator_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 0 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/generate.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..7348b0e --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/waveformGen.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/01-WaveformGenerator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/01-WaveformGenerator/Scripts/cleanGenerated.bash b/01-WaveformGenerator/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/01-WaveformGenerator/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/01-WaveformGenerator/Scripts/cleanGenerated.bat b/01-WaveformGenerator/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/01-WaveformGenerator/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/01-WaveformGenerator/Scripts/cleanScratch.bat b/01-WaveformGenerator/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/01-WaveformGenerator/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/01-WaveformGenerator/Scripts/generateSSHKey.bash b/01-WaveformGenerator/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/01-WaveformGenerator/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/01-WaveformGenerator/Scripts/hdlDesigner.bash b/01-WaveformGenerator/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/01-WaveformGenerator/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/01-WaveformGenerator/Scripts/hdlDesigner.bat b/01-WaveformGenerator/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/01-WaveformGenerator/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/01-WaveformGenerator/Scripts/searchPaths.bat b/01-WaveformGenerator/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/01-WaveformGenerator/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/01-WaveformGenerator/Scripts/trimLibs.pl b/01-WaveformGenerator/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/01-WaveformGenerator/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/01-WaveformGenerator/Scripts/update_ise.pl b/01-WaveformGenerator/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/01-WaveformGenerator/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/ '0'); +END ARCHITECTURE studentVersion; diff --git a/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothGen_studentVersion.vhd b/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothGen_studentVersion.vhd new file mode 100644 index 0000000..892bd7d --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothGen_studentVersion.vhd @@ -0,0 +1,5 @@ +ARCHITECTURE studentVersion OF sawtoothGen IS +BEGIN + sawtooth <= (others => '0'); +END ARCHITECTURE studentVersion; + diff --git a/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToSquare_studentVersion.vhd b/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToSquare_studentVersion.vhd new file mode 100644 index 0000000..f8b09bd --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToSquare_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF sawtoothToSquare IS +BEGIN + square <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToTriangle_studentVersion.vhd b/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToTriangle_studentVersion.vhd new file mode 100644 index 0000000..9fa87cc --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hdl/sawtoothToTriangle_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF sawtoothToTriangle IS +BEGIN + triangle <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/01-WaveformGenerator/WaveformGenerator/hdl/triangleToPolygon_studentVersion.vhd b/01-WaveformGenerator/WaveformGenerator/hdl/triangleToPolygon_studentVersion.vhd new file mode 100644 index 0000000..0cb1a55 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hdl/triangleToPolygon_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF triangleToPolygon IS +BEGIN + polygon <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_studentVersion.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_lowpass_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothGen_studentVersion.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothGen_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothGen_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToSquare_studentVersion.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToSquare_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToSquare_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToTriangle_studentVersion.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToTriangle_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothToTriangle_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothgen_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtosquare_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_sawtoothtotriangle_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangleToPolygon_studentVersion.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangleToPolygon_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangleToPolygon_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_triangletopolygon_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhd._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhg._fpf b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/.hdlsidedata/_waveformgen_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/_lowpass._epf b/01-WaveformGenerator/WaveformGenerator/hds/_lowpass._epf new file mode 100644 index 0000000..cdf774a --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/_lowpass._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom lowpass_studentVersion.vhd diff --git a/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothgen._epf b/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothgen._epf new file mode 100644 index 0000000..31bcc08 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothgen._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom sawtoothGen_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion diff --git a/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtosquare._epf b/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtosquare._epf new file mode 100644 index 0000000..13aac32 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtosquare._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom sawtoothToSquare_studentVersion.vhd diff --git a/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtotriangle._epf b/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtotriangle._epf new file mode 100644 index 0000000..195e3b8 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/_sawtoothtotriangle._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom sawtoothToTriangle_studentVersion.vhd diff --git a/01-WaveformGenerator/WaveformGenerator/hds/_triangletopolygon._epf b/01-WaveformGenerator/WaveformGenerator/hds/_triangletopolygon._epf new file mode 100644 index 0000000..29d7453 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/_triangletopolygon._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom triangleToPolygon_studentVersion.vhd diff --git a/01-WaveformGenerator/WaveformGenerator/hds/_waveformgen._epf b/01-WaveformGenerator/WaveformGenerator/hds/_waveformgen._epf new file mode 100644 index 0000000..c91c6be --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/_waveformgen._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom waveform@gen/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/01-WaveformGenerator/WaveformGenerator/hds/lowpass/symbol.sb b/01-WaveformGenerator/WaveformGenerator/hds/lowpass/symbol.sb new file mode 100644 index 0000000..8ea05da --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/lowpass/symbol.sb @@ -0,0 +1,1607 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 150,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 151,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 152,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +uid 153,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 154,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 155,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 90,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 93,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 95,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 97,0 +) +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 116,0 +) +*24 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 117,0 +) +*25 (MRCItem +litem &4 +pos 1 +dimension 20 +uid 118,0 +) +*26 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 119,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 91,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 99,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 103,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 105,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 107,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 109,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 111,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 113,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 89,0 +vaOverrides [ +] +) +] +) +uid 149,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 157,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 145,0 +) +*48 (LogGeneric +generic (GiElement +name "shiftBitNb" +type "positive" +value "12" +) +uid 146,0 +) +] +) +pdm (PhysicalDM +uid 158,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 121,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 124,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 126,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 128,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 147,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 148,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 122,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 130,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 134,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 136,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 138,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 140,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 142,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 144,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 120,0 +vaOverrides [ +] +) +] +) +uid 156,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/lowpass/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/lowpass/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/lowpass" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/lowpass" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lowpass" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:02:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "lowpass" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/lowpass/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/lowpass/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "waveformGenerator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:02:49" +) +(vvPair +variable "unit" +value "lowpass" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,36400,18600" +st "clock" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,19000,12800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*65 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "39700,13400,47000,14600" +st "lowpassOut" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,30000,11900" +st "lowpassOut : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*66 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "33000,19400,36300,20600" +st "reset" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19000,13700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,38800,14600" +st "lowpassIn" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,29000,14600" +st "lowpassIn : IN unsigned (signalBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,21800,41600,22700" +st "WaveformGenerator" +blo "32600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22700,36100,23600" +st "lowpass" +blo "32600,23400" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,25600,45000,29200" +st "Generic Declarations + +signalBitNb positive 16 +shiftBitNb positive 12 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "shiftBitNb" +type "positive" +value "12" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*82 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2,35,1387,985" +viewArea "-1070,-1070,74579,51352" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,14600,2500,15500" +st "User:" +blo "0,15300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,2000,15500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 181,0 +activeModelName "Symbol" +) diff --git a/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@gen/symbol.sb b/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@gen/symbol.sb new file mode 100644 index 0000000..ce19a0a --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@gen/symbol.sb @@ -0,0 +1,1648 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2005,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 154,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 155,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 156,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 157,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 158,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +uid 159,0 +) +*7 (RefLabelRowHdr +) +*8 (TitleRowHdr +) +*9 (FilterRowHdr +) +*10 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*11 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*12 (GroupColHdr +tm "GroupColHdrMgr" +) +*13 (NameColHdr +tm "NameColHdrMgr" +) +*14 (ModeColHdr +tm "ModeColHdrMgr" +) +*15 (TypeColHdr +tm "TypeColHdrMgr" +) +*16 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*17 (InitColHdr +tm "InitColHdrMgr" +) +*18 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 160,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 95,0 +optionalChildren [ +*21 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 98,0 +) +*22 (MRCItem +litem &8 +pos 1 +dimension 23 +uid 100,0 +) +*23 (MRCItem +litem &9 +pos 2 +hidden 1 +dimension 20 +uid 102,0 +) +*24 (MRCItem +litem &2 +pos 4 +dimension 20 +uid 121,0 +) +*25 (MRCItem +litem &3 +pos 3 +dimension 20 +uid 122,0 +) +*26 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 123,0 +) +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 124,0 +) +*28 (MRCItem +litem &6 +pos 1 +dimension 20 +uid 125,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*29 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 104,0 +) +*30 (MRCItem +litem &12 +pos 1 +dimension 50 +uid 108,0 +) +*31 (MRCItem +litem &13 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &14 +pos 3 +dimension 50 +uid 112,0 +) +*33 (MRCItem +litem &15 +pos 4 +dimension 100 +uid 114,0 +) +*34 (MRCItem +litem &16 +pos 5 +dimension 100 +uid 116,0 +) +*35 (MRCItem +litem &17 +pos 6 +dimension 50 +uid 118,0 +) +*36 (MRCItem +litem &18 +pos 7 +dimension 80 +uid 120,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 94,0 +vaOverrides [ +] +) +] +) +uid 153,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 162,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 151,0 +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 127,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 130,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 132,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 152,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 140,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 142,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 144,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 146,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 148,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 150,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 126,0 +vaOverrides [ +] +) +] +) +uid 161,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@gen/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@gen/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@gen" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtoothGen" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sawtoothGen" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:02:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "sawtoothGen" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@gen/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtoothGen/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "waveformGenerator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:02:49" +) +(vvPair +variable "unit" +value "sawtoothGen" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,36400,18600" +st "clock" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,18000,12800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*65 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,11625,48750,12375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "41800,11400,47000,12600" +st "sawtooth" +ju 2 +blo "47000,12400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,26000,11900" +st "sawtooth : OUT unsigned (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*66 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "33000,19400,36300,20600" +st "reset" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,18000,13700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,11625,32000,12375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,11400,35900,12600" +st "step" +blo "33000,12400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,26000,14600" +st "step : IN unsigned (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*68 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,15625,32000,16375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "33000,15400,34900,16600" +st "en" +blo "33000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,17000,15500" +st "en : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,8000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,21800,41600,22700" +st "WaveformGenerator" +blo "32600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22700,38600,23600" +st "sawtoothGen" +blo "32600,23400" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,25600,42500,28300" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2,48,1381,978" +viewArea "-1100,-1100,74300,50120" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15500,2500,16400" +st "User:" +blo "0,16200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,2000,16400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 209,0 +activeModelName "Symbol" +) diff --git a/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@square/symbol.sb b/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@square/symbol.sb new file mode 100644 index 0000000..d04fff0 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@square/symbol.sb @@ -0,0 +1,1465 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 146,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 147,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 148,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 149,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 90,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 93,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 95,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 116,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 117,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 91,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 103,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 105,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 107,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 109,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 111,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 113,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 89,0 +vaOverrides [ +] +) +] +) +uid 145,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 143,0 +) +] +) +pdm (PhysicalDM +uid 152,0 +optionalChildren [ +*44 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *45 (MRCItem +litem &31 +pos 1 +dimension 20 +) +uid 119,0 +optionalChildren [ +*46 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 122,0 +) +*47 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 124,0 +) +*48 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 126,0 +) +*49 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 144,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 120,0 +optionalChildren [ +*50 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 128,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 132,0 +) +*52 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 134,0 +) +*53 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 136,0 +) +*54 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 138,0 +) +*55 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 140,0 +) +*56 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 118,0 +vaOverrides [ +] +) +] +) +uid 150,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@square/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@square/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@square" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtoothToSquare" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sawtoothToSquare" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:02:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "sawtoothToSquare" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@square/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtoothToSquare/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "waveformGenerator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:02:49" +) +(vvPair +variable "unit" +value "sawtoothToSquare" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "42900,13400,47000,14600" +st "square" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,26000,11900" +st "square : OUT unsigned (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*59 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,38200,14600" +st "sawtooth" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,25000,12800" +st "sawtooth : IN unsigned (bitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,41600,18700" +st "WaveformGenerator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,41100,19600" +st "sawtoothToSquare" +blo "32600,19400" +) +) +gi *60 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21600,42500,24300" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*61 (Grouping +uid 16,0 +optionalChildren [ +*62 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*67 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*74 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,36,1391,987" +viewArea "-1064,-1064,74593,51160" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *75 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *76 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,2500,13700" +st "User:" +blo "0,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,2000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 175,0 +activeModelName "Symbol" +) diff --git a/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb b/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb new file mode 100644 index 0000000..cee75ad --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb @@ -0,0 +1,1465 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 146,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 147,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 148,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 149,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 90,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 93,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 95,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 116,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 117,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 91,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 103,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 105,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 107,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 109,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 111,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 113,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 89,0 +vaOverrides [ +] +) +] +) +uid 145,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 143,0 +) +] +) +pdm (PhysicalDM +uid 152,0 +optionalChildren [ +*44 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *45 (MRCItem +litem &31 +pos 1 +dimension 20 +) +uid 119,0 +optionalChildren [ +*46 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 122,0 +) +*47 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 124,0 +) +*48 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 126,0 +) +*49 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 144,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 120,0 +optionalChildren [ +*50 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 128,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 132,0 +) +*52 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 134,0 +) +*53 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 136,0 +) +*54 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 138,0 +) +*55 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 140,0 +) +*56 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 118,0 +vaOverrides [ +] +) +] +) +uid 150,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@triangle" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtoothToTriangle" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sawtoothToTriangle" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:02:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "sawtoothToTriangle" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtooth@to@triangle/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/sawtoothToTriangle/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "waveformGenerator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:02:49" +) +(vvPair +variable "unit" +value "sawtoothToTriangle" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "42500,13400,47000,14600" +st "triangle" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,26000,11900" +st "triangle : OUT unsigned (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*59 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,38200,14600" +st "sawtooth" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,25000,12800" +st "sawtooth : IN unsigned (bitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,41600,18700" +st "WaveformGenerator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,42100,19600" +st "sawtoothToTriangle" +blo "32600,19400" +) +) +gi *60 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21600,42500,24300" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*61 (Grouping +uid 16,0 +optionalChildren [ +*62 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*67 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*74 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1,34,1392,978" +viewArea "-1100,-1100,75080,51030" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *75 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *76 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,2500,13700" +st "User:" +blo "0,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,2000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 198,0 +activeModelName "Symbol" +) diff --git a/01-WaveformGenerator/WaveformGenerator/hds/triangle@to@polygon/symbol.sb b/01-WaveformGenerator/WaveformGenerator/hds/triangle@to@polygon/symbol.sb new file mode 100644 index 0000000..55be706 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/triangle@to@polygon/symbol.sb @@ -0,0 +1,1465 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 146,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 147,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 148,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 149,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 90,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 93,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 95,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 116,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 117,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 91,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 103,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 105,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 107,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 109,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 111,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 113,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 89,0 +vaOverrides [ +] +) +] +) +uid 145,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 143,0 +) +] +) +pdm (PhysicalDM +uid 152,0 +optionalChildren [ +*44 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *45 (MRCItem +litem &31 +pos 1 +dimension 20 +) +uid 119,0 +optionalChildren [ +*46 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 122,0 +) +*47 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 124,0 +) +*48 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 126,0 +) +*49 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 144,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 120,0 +optionalChildren [ +*50 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 128,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 132,0 +) +*52 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 134,0 +) +*53 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 136,0 +) +*54 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 138,0 +) +*55 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 140,0 +) +*56 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 118,0 +vaOverrides [ +] +) +] +) +uid 150,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/triangle@to@polygon/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/triangle@to@polygon/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/triangle@to@polygon" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/triangleToPolygon" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "triangleToPolygon" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:02:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "triangleToPolygon" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/triangle@to@polygon/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/WaveformGenerator/Prefs/../WaveformGenerator/hds/triangleToPolygon/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "waveformGenerator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:02:49" +) +(vvPair +variable "unit" +value "triangleToPolygon" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "42400,13400,47000,14600" +st "polygon" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,26000,11900" +st "polygon : OUT unsigned (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*59 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,37500,14600" +st "triangle" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,25000,12800" +st "triangle : IN unsigned (bitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,41600,18700" +st "WaveformGenerator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,41600,19600" +st "triangleToPolygon" +blo "32600,19400" +) +) +gi *60 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21600,42500,24300" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*61 (Grouping +uid 16,0 +optionalChildren [ +*62 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*67 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*74 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-1,35,1394,985" +viewArea "-1061,-1061,74571,50904" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *75 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *76 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,2500,13700" +st "User:" +blo "0,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,2000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 175,0 +activeModelName "Symbol" +) diff --git a/01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/struct.bd b/01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/struct.bd new file mode 100644 index 0000000..35d843f --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/struct.bd @@ -0,0 +1,4462 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_square" +duLibraryName "WaveformGenerator" +duName "sawtoothToSquare" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 916,0 +) +(Instance +name "I_tri" +duLibraryName "WaveformGenerator" +duName "sawtoothToTriangle" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 977,0 +) +(Instance +name "I_poly" +duLibraryName "WaveformGenerator" +duName "triangleToPolygon" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 1011,0 +) +(Instance +name "I_lp" +duLibraryName "WaveformGenerator" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "10" +) +] +mwi 0 +uid 1036,0 +) +(Instance +name "I_saw" +duLibraryName "WaveformGenerator" +duName "sawtoothGen" +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 1227,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds\\waveform@gen\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds\\waveform@gen\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds\\waveform@gen" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds\\waveformGen" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "waveformGen" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:40:08" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "waveformGen" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds\\waveform@gen\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator\\hds\\waveformGen\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:40:08" +) +(vvPair +variable "unit" +value "waveformGen" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "-2000,32625,-500,33375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "-500,33000,0,33000" +pts [ +"-500,33000" +"0,33000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-6500,32300,-3000,33600" +st "clock" +ju 2 +blo "-3000,33300" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,6600,10900,7800" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "-2000,34625,-500,35375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "-500,35000,0,35000" +pts [ +"-500,35000" +"0,35000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-6500,34300,-3000,35600" +st "reset" +ju 2 +blo "-3000,35300" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-1000,8400,10800,9600" +st "reset : std_ulogic" +) +) +*5 (Grouping +uid 51,0 +optionalChildren [ +*6 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,73000,86000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,73500,69200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,69000,90000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,69500,86200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,71000,86000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,71500,69200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,71000,69000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,71500,65200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,70000,106000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,70200,100300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*11 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90000,69000,106000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "90200,69500,90200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,69000,86000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "70350,69400,80650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,72000,69000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,72500,65200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,73000,69000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,73500,65200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,72000,86000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,72500,69200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "65000,69000,106000,74000" +) +oxt "14000,66000,55000,71000" +) +*16 (Net +uid 317,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +declText (MLText +uid 318,0 +va (VaSet +) +xt "-1000,9300,24800,10500" +st "step : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*17 (Net +uid 412,0 +decl (Decl +n "sawtooth" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 4,0 +) +declText (MLText +uid 413,0 +va (VaSet +) +xt "-1000,11100,25900,12300" +st "sawtooth : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*18 (Net +uid 422,0 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 5,0 +) +declText (MLText +uid 423,0 +va (VaSet +) +xt "-1000,13800,25200,15000" +st "triangle : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*19 (Net +uid 478,0 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 6,0 +) +declText (MLText +uid 479,0 +va (VaSet +) +xt "-1000,12900,25400,14100" +st "square : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*20 (Net +uid 511,0 +decl (Decl +n "polygon" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 7,0 +) +declText (MLText +uid 512,0 +va (VaSet +) +xt "-1000,10200,25600,11400" +st "polygon : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*21 (Net +uid 568,0 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +declText (MLText +uid 569,0 +va (VaSet +) +xt "-1000,12000,24700,13200" +st "sine : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*22 (PortIoIn +uid 595,0 +shape (CompositeShape +uid 596,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 597,0 +sl 0 +ro 270 +xt "-2000,26625,-500,27375" +) +(Line +uid 598,0 +sl 0 +ro 270 +xt "-500,27000,0,27000" +pts [ +"-500,27000" +"0,27000" +] +) +] +) +tg (WTG +uid 599,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 600,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-24700,26300,-3000,27600" +st "step : (phaseBitNb-1 DOWNTO 0)" +ju 2 +blo "-3000,27300" +tm "WireNameMgr" +) +) +) +*23 (PortIoOut +uid 609,0 +shape (CompositeShape +uid 610,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 611,0 +sl 0 +ro 270 +xt "32500,18625,34000,19375" +) +(Line +uid 612,0 +sl 0 +ro 270 +xt "32000,19000,32500,19000" +pts [ +"32000,19000" +"32500,19000" +] +) +] +) +tg (WTG +uid 613,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 614,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "35000,18300,59500,19600" +st "sawtooth : (phaseBitNb-1 DOWNTO 0)" +blo "35000,19300" +tm "WireNameMgr" +) +) +) +*24 (PortIoOut +uid 615,0 +shape (CompositeShape +uid 616,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 617,0 +sl 0 +ro 270 +xt "52500,26625,54000,27375" +) +(Line +uid 618,0 +sl 0 +ro 270 +xt "52000,27000,52500,27000" +pts [ +"52000,27000" +"52500,27000" +] +) +] +) +tg (WTG +uid 619,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 620,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "55000,26300,78800,27600" +st "square : (signalBitNb-1 DOWNTO 0)" +blo "55000,27300" +tm "WireNameMgr" +) +) +) +*25 (PortIoOut +uid 629,0 +shape (CompositeShape +uid 630,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 631,0 +sl 0 +ro 270 +xt "56500,34625,58000,35375" +) +(Line +uid 632,0 +sl 0 +ro 270 +xt "56000,35000,56500,35000" +pts [ +"56000,35000" +"56500,35000" +] +) +] +) +tg (WTG +uid 633,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 634,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "59000,34300,84200,35600" +st "triangle : (signalBitNb-1 DOWNTO 0)" +blo "59000,35300" +tm "WireNameMgr" +) +) +) +*26 (PortIoOut +uid 643,0 +shape (CompositeShape +uid 644,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 645,0 +sl 0 +ro 270 +xt "80500,34625,82000,35375" +) +(Line +uid 646,0 +sl 0 +ro 270 +xt "80000,35000,80500,35000" +pts [ +"80000,35000" +"80500,35000" +] +) +] +) +tg (WTG +uid 647,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 648,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "83000,34300,107500,35600" +st "polygon : (signalBitNb-1 DOWNTO 0)" +blo "83000,35300" +tm "WireNameMgr" +) +) +) +*27 (PortIoOut +uid 649,0 +shape (CompositeShape +uid 650,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 651,0 +sl 0 +ro 270 +xt "104500,42625,106000,43375" +) +(Line +uid 652,0 +sl 0 +ro 270 +xt "104000,43000,104500,43000" +pts [ +"104000,43000" +"104500,43000" +] +) +] +) +tg (WTG +uid 653,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 654,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "107000,42300,129400,43600" +st "sine : (signalBitNb-1 DOWNTO 0)" +blo "107000,43300" +tm "WireNameMgr" +) +) +) +*28 (Net +uid 717,0 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 9,0 +) +declText (MLText +uid 718,0 +va (VaSet +) +xt "-1000,7500,10300,8700" +st "en : std_ulogic" +) +) +*29 (PortIoIn +uid 725,0 +shape (CompositeShape +uid 726,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 727,0 +sl 0 +ro 270 +xt "-2000,30625,-500,31375" +) +(Line +uid 728,0 +sl 0 +ro 270 +xt "-500,31000,0,31000" +pts [ +"-500,31000" +"0,31000" +] +) +] +) +tg (WTG +uid 729,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 730,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-4400,30300,-3000,31600" +st "en" +ju 2 +blo "-3000,31300" +tm "WireNameMgr" +) +) +) +*30 (SaComponent +uid 916,0 +optionalChildren [ +*31 (CptPort +uid 908,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 909,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,26625,48750,27375" +) +tg (CPTG +uid 910,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 911,0 +va (VaSet +font "Arial,9,0" +) +xt "44000,26400,47000,27300" +st "square" +ju 2 +blo "47000,27100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*32 (CptPort +uid 912,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 913,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,26625,32000,27375" +) +tg (CPTG +uid 914,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 915,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,26400,37000,27300" +st "sawtooth" +blo "33000,27100" +) +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 917,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,23000,48000,31000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 918,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 919,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,30800,41600,31700" +st "WaveformGenerator" +blo "32600,31500" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 920,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,32000,41100,32900" +st "sawtoothToSquare" +blo "32600,32700" +tm "CptNameMgr" +) +*35 (Text +uid 921,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,33200,36600,34100" +st "I_square" +blo "32600,33900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 922,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 923,0 +text (MLText +uid 924,0 +va (VaSet +) +xt "32000,34600,51100,35800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*36 (SaComponent +uid 977,0 +optionalChildren [ +*37 (CptPort +uid 969,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 970,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,42625,48750,43375" +) +tg (CPTG +uid 971,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 972,0 +va (VaSet +font "Arial,9,0" +) +xt "43000,42400,47000,43300" +st "triangle" +ju 2 +blo "47000,43100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*38 (CptPort +uid 973,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 974,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,42625,32000,43375" +) +tg (CPTG +uid 975,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 976,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,42400,37000,43300" +st "sawtooth" +blo "33000,43100" +) +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 978,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,39000,48000,47000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 979,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 980,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,46800,41600,47700" +st "WaveformGenerator" +blo "32600,47500" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 981,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,48000,42100,48900" +st "sawtoothToTriangle" +blo "32600,48700" +tm "CptNameMgr" +) +*41 (Text +uid 982,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,49200,35100,50100" +st "I_tri" +blo "32600,49900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 983,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 984,0 +text (MLText +uid 985,0 +va (VaSet +) +xt "32000,50600,51100,51800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 1011,0 +optionalChildren [ +*43 (CptPort +uid 1003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1004,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "72000,42625,72750,43375" +) +tg (CPTG +uid 1005,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1006,0 +va (VaSet +font "Arial,9,0" +) +xt "67500,42400,71000,43300" +st "polygon" +ju 2 +blo "71000,43100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*44 (CptPort +uid 1007,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1008,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55250,42625,56000,43375" +) +tg (CPTG +uid 1009,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1010,0 +va (VaSet +font "Arial,9,0" +) +xt "57000,42400,61000,43300" +st "triangle" +blo "57000,43100" +) +) +thePort (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 1012,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "56000,39000,72000,47000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 1013,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 1014,0 +va (VaSet +font "Arial,9,1" +) +xt "56600,46800,65600,47700" +st "WaveformGenerator" +blo "56600,47500" +tm "BdLibraryNameMgr" +) +*46 (Text +uid 1015,0 +va (VaSet +font "Arial,9,1" +) +xt "56600,48000,65600,48900" +st "triangleToPolygon" +blo "56600,48700" +tm "CptNameMgr" +) +*47 (Text +uid 1016,0 +va (VaSet +font "Arial,9,1" +) +xt "56600,49200,59600,50100" +st "I_poly" +blo "56600,49900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1017,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1018,0 +text (MLText +uid 1019,0 +va (VaSet +) +xt "56000,50600,75100,51800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*48 (SaComponent +uid 1036,0 +optionalChildren [ +*49 (CptPort +uid 1020,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1021,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "79250,46625,80000,47375" +) +tg (CPTG +uid 1022,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1023,0 +va (VaSet +font "Arial,9,0" +) +xt "81000,46400,83500,47300" +st "clock" +blo "81000,47100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*50 (CptPort +uid 1024,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1025,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "96000,42625,96750,43375" +) +tg (CPTG +uid 1026,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1027,0 +va (VaSet +font "Arial,9,0" +) +xt "89500,42400,95000,43300" +st "lowpassOut" +ju 2 +blo "95000,43100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*51 (CptPort +uid 1028,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1029,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "79250,48625,80000,49375" +) +tg (CPTG +uid 1030,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1031,0 +va (VaSet +font "Arial,9,0" +) +xt "81000,48400,83500,49300" +st "reset" +blo "81000,49100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*52 (CptPort +uid 1032,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1033,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "79250,42625,80000,43375" +) +tg (CPTG +uid 1034,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1035,0 +va (VaSet +font "Arial,9,0" +) +xt "81000,42400,85500,43300" +st "lowpassIn" +blo "81000,43100" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 1037,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "80000,39000,96000,51000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 1038,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 1039,0 +va (VaSet +font "Arial,9,1" +) +xt "80600,50800,89600,51700" +st "WaveformGenerator" +blo "80600,51500" +tm "BdLibraryNameMgr" +) +*54 (Text +uid 1040,0 +va (VaSet +font "Arial,9,1" +) +xt "80600,52000,84100,52900" +st "lowpass" +blo "80600,52700" +tm "CptNameMgr" +) +*55 (Text +uid 1041,0 +va (VaSet +font "Arial,9,1" +) +xt "80600,53200,82600,54100" +st "I_lp" +blo "80600,53900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1042,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1043,0 +text (MLText +uid 1044,0 +va (VaSet +) +xt "80000,54600,102900,57000" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = 10 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "10" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*56 (SaComponent +uid 1227,0 +optionalChildren [ +*57 (CptPort +uid 1207,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1208,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "7250,32625,8000,33375" +) +tg (CPTG +uid 1209,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1210,0 +va (VaSet +font "Arial,9,0" +) +xt "9000,32400,11500,33300" +st "clock" +blo "9000,33100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*58 (CptPort +uid 1211,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1212,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24000,26625,24750,27375" +) +tg (CPTG +uid 1213,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1214,0 +va (VaSet +font "Arial,9,0" +) +xt "19000,26400,23000,27300" +st "sawtooth" +ju 2 +blo "23000,27100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*59 (CptPort +uid 1215,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1216,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "7250,34625,8000,35375" +) +tg (CPTG +uid 1217,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1218,0 +va (VaSet +font "Arial,9,0" +) +xt "9000,34400,11500,35300" +st "reset" +blo "9000,35100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*60 (CptPort +uid 1219,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1220,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "7250,26625,8000,27375" +) +tg (CPTG +uid 1221,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1222,0 +va (VaSet +font "Arial,9,0" +) +xt "9000,26400,11000,27300" +st "step" +blo "9000,27100" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*61 (CptPort +uid 1223,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1224,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "7250,30625,8000,31375" +) +tg (CPTG +uid 1225,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1226,0 +va (VaSet +font "Arial,9,0" +) +xt "9000,30400,10000,31300" +st "en" +blo "9000,31100" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 1228,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "8000,23000,24000,37000" +) +oxt "32000,8000,48000,22000" +ttg (MlTextGroup +uid 1229,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 1230,0 +va (VaSet +font "Arial,9,1" +) +xt "8600,36800,17600,37700" +st "WaveformGenerator" +blo "8600,37500" +tm "BdLibraryNameMgr" +) +*63 (Text +uid 1231,0 +va (VaSet +font "Arial,9,1" +) +xt "8600,37700,14600,38600" +st "sawtoothGen" +blo "8600,38400" +tm "CptNameMgr" +) +*64 (Text +uid 1232,0 +va (VaSet +font "Arial,9,1" +) +xt "8600,38600,11100,39500" +st "I_saw" +blo "8600,39300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1233,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1234,0 +text (MLText +uid 1235,0 +va (VaSet +) +xt "8000,40600,27100,41800" +st "bitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*65 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "0,33000,7250,33000" +pts [ +"0,33000" +"7250,33000" +] +) +start &1 +end &57 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Arial,12,0" +) +xt "0,31600,3500,32900" +st "clock" +blo "0,32600" +tm "WireNameMgr" +) +) +on &2 +) +*66 (Wire +uid 184,0 +shape (OrthoPolyLine +uid 185,0 +va (VaSet +vasetType 3 +) +xt "76000,47000,79250,47000" +pts [ +"76000,47000" +"79250,47000" +] +) +end &49 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 190,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 191,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,45600,79500,46900" +st "clock" +blo "76000,46600" +tm "WireNameMgr" +) +) +on &2 +) +*67 (Wire +uid 192,0 +shape (OrthoPolyLine +uid 193,0 +va (VaSet +vasetType 3 +) +xt "76000,49000,79250,49000" +pts [ +"76000,49000" +"79250,49000" +] +) +end &51 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 198,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 199,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,47600,79500,48900" +st "reset" +blo "76000,48600" +tm "WireNameMgr" +) +) +on &4 +) +*68 (Wire +uid 237,0 +shape (OrthoPolyLine +uid 238,0 +va (VaSet +vasetType 3 +) +xt "0,35000,7250,35000" +pts [ +"0,35000" +"7250,35000" +] +) +start &3 +end &59 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 243,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 244,0 +va (VaSet +font "Arial,12,0" +) +xt "0,33600,3500,34900" +st "reset" +blo "0,34600" +tm "WireNameMgr" +) +) +on &4 +) +*69 (Wire +uid 319,0 +shape (OrthoPolyLine +uid 320,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "0,27000,7250,27000" +pts [ +"7250,27000" +"0,27000" +] +) +start &60 +end &22 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 323,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 324,0 +va (VaSet +font "Arial,12,0" +) +xt "1000,25600,3800,26900" +st "step" +blo "1000,26600" +tm "WireNameMgr" +) +) +on &16 +) +*70 (Wire +uid 414,0 +optionalChildren [ +*71 (BdJunction +uid 476,0 +ps "OnConnectorStrategy" +shape (Circle +uid 477,0 +va (VaSet +vasetType 1 +) +xt "27600,26600,28400,27400" +radius 400 +) +) +*72 (BdJunction +uid 607,0 +ps "OnConnectorStrategy" +shape (Circle +uid 608,0 +va (VaSet +vasetType 1 +) +xt "27600,26600,28400,27400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 415,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "24750,27000,31250,27000" +pts [ +"24750,27000" +"31250,27000" +] +) +start &58 +end &32 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 416,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 417,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "25000,25600,30600,26900" +st "sawtooth" +blo "25000,26600" +tm "WireNameMgr" +) +) +on &17 +) +*73 (Wire +uid 424,0 +optionalChildren [ +*74 (BdJunction +uid 627,0 +ps "OnConnectorStrategy" +shape (Circle +uid 628,0 +va (VaSet +vasetType 1 +) +xt "51600,42600,52400,43400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 425,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "48750,43000,55250,43000" +pts [ +"48750,43000" +"55250,43000" +] +) +start &37 +end &44 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "50000,41600,55600,42900" +st "triangle" +blo "50000,42600" +tm "WireNameMgr" +) +) +on &18 +) +*75 (Wire +uid 472,0 +shape (OrthoPolyLine +uid 473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "28000,27000,31250,43000" +pts [ +"28000,27000" +"28000,43000" +"31250,43000" +] +) +start &71 +end &38 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 474,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 475,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "24250,41600,29850,42900" +st "sawtooth" +blo "24250,42600" +tm "WireNameMgr" +) +) +on &17 +) +*76 (Wire +uid 480,0 +shape (OrthoPolyLine +uid 481,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "48750,27000,52000,27000" +pts [ +"48750,27000" +"52000,27000" +] +) +start &31 +end &24 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 485,0 +va (VaSet +font "Arial,12,0" +) +xt "50750,25600,54950,26900" +st "square" +blo "50750,26600" +tm "WireNameMgr" +) +) +on &19 +) +*77 (Wire +uid 513,0 +optionalChildren [ +*78 (BdJunction +uid 641,0 +ps "OnConnectorStrategy" +shape (Circle +uid 642,0 +va (VaSet +vasetType 1 +) +xt "75600,42600,76400,43400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 514,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "72750,43000,79250,43000" +pts [ +"72750,43000" +"79250,43000" +] +) +start &43 +end &52 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 517,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 518,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "74000,41600,78900,42900" +st "polygon" +blo "74000,42600" +tm "WireNameMgr" +) +) +on &20 +) +*79 (Wire +uid 562,0 +shape (OrthoPolyLine +uid 563,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "96750,43000,104000,43000" +pts [ +"96750,43000" +"104000,43000" +] +) +start &50 +end &27 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 566,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 567,0 +va (VaSet +font "Arial,12,0" +) +xt "100000,41600,102800,42900" +st "sine" +blo "100000,42600" +tm "WireNameMgr" +) +) +on &21 +) +*80 (Wire +uid 601,0 +shape (OrthoPolyLine +uid 602,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "28000,19000,32000,27000" +pts [ +"28000,27000" +"28000,19000" +"32000,19000" +] +) +start &72 +end &23 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 605,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 606,0 +va (VaSet +font "Arial,12,0" +) +xt "26000,17600,31600,18900" +st "sawtooth" +blo "26000,18600" +tm "WireNameMgr" +) +) +on &17 +) +*81 (Wire +uid 621,0 +shape (OrthoPolyLine +uid 622,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52000,35000,56000,43000" +pts [ +"52000,43000" +"52000,35000" +"56000,35000" +] +) +start &74 +end &25 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 625,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 626,0 +va (VaSet +font "Arial,12,0" +) +xt "52000,33600,57600,34900" +st "triangle" +blo "52000,34600" +tm "WireNameMgr" +) +) +on &18 +) +*82 (Wire +uid 635,0 +shape (OrthoPolyLine +uid 636,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "76000,35000,80000,43000" +pts [ +"76000,43000" +"76000,35000" +"80000,35000" +] +) +start &78 +end &26 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 639,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 640,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,33600,80900,34900" +st "polygon" +blo "76000,34600" +tm "WireNameMgr" +) +) +on &20 +) +*83 (Wire +uid 719,0 +shape (OrthoPolyLine +uid 720,0 +va (VaSet +vasetType 3 +) +xt "0,31000,7250,31000" +pts [ +"7250,31000" +"0,31000" +] +) +start &61 +end &29 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 723,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 724,0 +va (VaSet +font "Arial,12,0" +) +xt "1000,29600,2400,30900" +st "en" +blo "1000,30600" +tm "WireNameMgr" +) +) +on &28 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *84 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 85,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,0,3500,900" +st "Package List" +blo "-3000,700" +) +*86 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*88 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*89 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*90 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*91 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*92 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*93 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4571,-1604,138105,75916" +cachedDiagramExtent "-24700,0,129400,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 1289,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*95 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*96 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*98 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*99 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*101 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*102 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*104 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*105 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*107 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*108 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*110 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*112 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*114 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,4800,3500,5700" +st "Declarations" +blo "-3000,5500" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,5700,0,6600" +st "Ports:" +blo "-3000,6400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-3000,4800,1500,5700" +st "Pre User:" +blo "-3000,5500" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +) +xt "-3000,4800,-3000,4800" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,14700,5500,15600" +st "Diagram Signals:" +blo "-3000,15400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-3000,4800,2500,5700" +st "Post User:" +blo "-3000,5500" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,4800,-3000,4800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *115 (LEmptyRow +) +uid 787,0 +optionalChildren [ +*116 (RefLabelRowHdr +) +*117 (TitleRowHdr +) +*118 (FilterRowHdr +) +*119 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*120 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*121 (GroupColHdr +tm "GroupColHdrMgr" +) +*122 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*123 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*124 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*125 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*126 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*127 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*128 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 768,0 +) +*129 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 770,0 +) +*130 (LeafLogPort +port (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 772,0 +) +*131 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 4,0 +) +) +uid 774,0 +) +*132 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 5,0 +) +) +uid 776,0 +) +*133 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 6,0 +) +) +uid 778,0 +) +*134 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 7,0 +) +) +uid 780,0 +) +*135 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +uid 782,0 +) +*136 (LeafLogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 9,0 +) +) +uid 784,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 800,0 +optionalChildren [ +*137 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *138 (MRCItem +litem &115 +pos 9 +dimension 20 +) +uid 802,0 +optionalChildren [ +*139 (MRCItem +litem &116 +pos 0 +dimension 20 +uid 803,0 +) +*140 (MRCItem +litem &117 +pos 1 +dimension 23 +uid 804,0 +) +*141 (MRCItem +litem &118 +pos 2 +hidden 1 +dimension 20 +uid 805,0 +) +*142 (MRCItem +litem &128 +pos 0 +dimension 20 +uid 769,0 +) +*143 (MRCItem +litem &129 +pos 1 +dimension 20 +uid 771,0 +) +*144 (MRCItem +litem &130 +pos 2 +dimension 20 +uid 773,0 +) +*145 (MRCItem +litem &131 +pos 3 +dimension 20 +uid 775,0 +) +*146 (MRCItem +litem &132 +pos 4 +dimension 20 +uid 777,0 +) +*147 (MRCItem +litem &133 +pos 5 +dimension 20 +uid 779,0 +) +*148 (MRCItem +litem &134 +pos 6 +dimension 20 +uid 781,0 +) +*149 (MRCItem +litem &135 +pos 7 +dimension 20 +uid 783,0 +) +*150 (MRCItem +litem &136 +pos 8 +dimension 20 +uid 785,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 806,0 +optionalChildren [ +*151 (MRCItem +litem &119 +pos 0 +dimension 20 +uid 807,0 +) +*152 (MRCItem +litem &121 +pos 1 +dimension 50 +uid 808,0 +) +*153 (MRCItem +litem &122 +pos 2 +dimension 100 +uid 809,0 +) +*154 (MRCItem +litem &123 +pos 3 +dimension 50 +uid 810,0 +) +*155 (MRCItem +litem &124 +pos 4 +dimension 100 +uid 811,0 +) +*156 (MRCItem +litem &125 +pos 5 +dimension 100 +uid 812,0 +) +*157 (MRCItem +litem &126 +pos 6 +dimension 50 +uid 813,0 +) +*158 (MRCItem +litem &127 +pos 7 +dimension 80 +uid 814,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 801,0 +vaOverrides [ +] +) +] +) +uid 786,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *159 (LEmptyRow +) +uid 816,0 +optionalChildren [ +*160 (RefLabelRowHdr +) +*161 (TitleRowHdr +) +*162 (FilterRowHdr +) +*163 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*164 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*165 (GroupColHdr +tm "GroupColHdrMgr" +) +*166 (NameColHdr +tm "GenericNameColHdrMgr" +) +*167 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*168 (InitColHdr +tm "GenericValueColHdrMgr" +) +*169 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*170 (EolColHdr +tm "GenericEolColHdrMgr" +) +*171 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "16" +) +uid 905,0 +) +*172 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 907,0 +) +] +) +pdm (PhysicalDM +uid 828,0 +optionalChildren [ +*173 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *174 (MRCItem +litem &159 +pos 2 +dimension 20 +) +uid 830,0 +optionalChildren [ +*175 (MRCItem +litem &160 +pos 0 +dimension 20 +uid 831,0 +) +*176 (MRCItem +litem &161 +pos 1 +dimension 23 +uid 832,0 +) +*177 (MRCItem +litem &162 +pos 2 +hidden 1 +dimension 20 +uid 833,0 +) +*178 (MRCItem +litem &171 +pos 0 +dimension 20 +uid 904,0 +) +*179 (MRCItem +litem &172 +pos 1 +dimension 20 +uid 906,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 834,0 +optionalChildren [ +*180 (MRCItem +litem &163 +pos 0 +dimension 20 +uid 835,0 +) +*181 (MRCItem +litem &165 +pos 1 +dimension 50 +uid 836,0 +) +*182 (MRCItem +litem &166 +pos 2 +dimension 100 +uid 837,0 +) +*183 (MRCItem +litem &167 +pos 3 +dimension 100 +uid 838,0 +) +*184 (MRCItem +litem &168 +pos 4 +dimension 50 +uid 839,0 +) +*185 (MRCItem +litem &169 +pos 5 +dimension 50 +uid 840,0 +) +*186 (MRCItem +litem &170 +pos 6 +dimension 80 +uid 841,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 829,0 +vaOverrides [ +] +) +] +) +uid 815,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/symbol.sb b/01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/symbol.sb new file mode 100644 index 0000000..a15304e --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator/hds/waveform@gen/symbol.sb @@ -0,0 +1,1936 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 192,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 9,0 +) +) +uid 193,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 8,0 +) +) +uid 194,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +uid 195,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 6,0 +) +) +uid 196,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +uid 197,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 3,0 +) +) +uid 198,0 +) +*8 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 4,0 +) +) +uid 199,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 200,0 +) +*10 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 201,0 +) +*11 (RefLabelRowHdr +) +*12 (TitleRowHdr +) +*13 (FilterRowHdr +) +*14 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*15 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*16 (GroupColHdr +tm "GroupColHdrMgr" +) +*17 (NameColHdr +tm "NameColHdrMgr" +) +*18 (ModeColHdr +tm "ModeColHdrMgr" +) +*19 (TypeColHdr +tm "TypeColHdrMgr" +) +*20 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*21 (InitColHdr +tm "InitColHdrMgr" +) +*22 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 202,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 129,0 +optionalChildren [ +*25 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 132,0 +) +*26 (MRCItem +litem &12 +pos 1 +dimension 23 +uid 134,0 +) +*27 (MRCItem +litem &13 +pos 2 +hidden 1 +dimension 20 +uid 136,0 +) +*28 (MRCItem +litem &2 +pos 8 +dimension 20 +uid 155,0 +) +*29 (MRCItem +litem &3 +pos 4 +dimension 20 +uid 156,0 +) +*30 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 157,0 +) +*31 (MRCItem +litem &5 +pos 5 +dimension 20 +uid 158,0 +) +*32 (MRCItem +litem &6 +pos 7 +dimension 20 +uid 159,0 +) +*33 (MRCItem +litem &7 +pos 6 +dimension 20 +uid 160,0 +) +*34 (MRCItem +litem &8 +pos 3 +dimension 20 +uid 161,0 +) +*35 (MRCItem +litem &9 +pos 1 +dimension 20 +uid 162,0 +) +*36 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 163,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 130,0 +optionalChildren [ +*37 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 138,0 +) +*38 (MRCItem +litem &16 +pos 1 +dimension 50 +uid 142,0 +) +*39 (MRCItem +litem &17 +pos 2 +dimension 100 +uid 144,0 +) +*40 (MRCItem +litem &18 +pos 3 +dimension 50 +uid 146,0 +) +*41 (MRCItem +litem &19 +pos 4 +dimension 100 +uid 148,0 +) +*42 (MRCItem +litem &20 +pos 5 +dimension 100 +uid 150,0 +) +*43 (MRCItem +litem &21 +pos 6 +dimension 50 +uid 152,0 +) +*44 (MRCItem +litem &22 +pos 7 +dimension 80 +uid 154,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 128,0 +vaOverrides [ +] +) +] +) +uid 191,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 204,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "16" +) +uid 189,0 +) +*58 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 275,0 +) +] +) +pdm (PhysicalDM +uid 205,0 +optionalChildren [ +*59 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *60 (MRCItem +litem &45 +pos 2 +dimension 20 +) +uid 165,0 +optionalChildren [ +*61 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 168,0 +) +*62 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 170,0 +) +*63 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 172,0 +) +*64 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 190,0 +) +*65 (MRCItem +litem &58 +pos 1 +dimension 20 +uid 276,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 166,0 +optionalChildren [ +*66 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 174,0 +) +*67 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 178,0 +) +*68 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 180,0 +) +*69 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 182,0 +) +*70 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 184,0 +) +*71 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 186,0 +) +*72 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 188,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 164,0 +vaOverrides [ +] +) +] +) +uid 203,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds\\waveform@gen\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds\\waveform@gen\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds\\waveform@gen" +) +(vvPair +variable "d_logical" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds\\waveformGen" +) +(vvPair +variable "date" +value "06.03.2019" +) +(vvPair +variable "day" +value "mer." +) +(vvPair +variable "day_long" +value "mercredi" +) +(vvPair +variable "dd" +value "06" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "waveformGen" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois.corthay" +) +(vvPair +variable "graphical_source_date" +value "06.03.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WEA20303" +) +(vvPair +variable "graphical_source_time" +value "17:19:13" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WEA20303" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "waveformGen" +) +(vvPair +variable "month" +value "mars" +) +(vvPair +variable "month_long" +value "mars" +) +(vvPair +variable "p" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds\\waveform@gen\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\Lissajous\\Prefs\\..\\..\\WaveformGenerator\\WaveformGenerator\\hds\\waveformGen\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:19:13" +) +(vvPair +variable "unit" +value "waveformGen" +) +(vvPair +variable "user" +value "francois.corthay" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,25625,32000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "Verdana,9,0" +) +xt "33000,25400,36400,26600" +st "clock" +blo "33000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,9800,19000,10600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*75 (CptPort +uid 88,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 89,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,27625,32000,28375" +) +tg (CPTG +uid 90,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 91,0 +va (VaSet +font "Verdana,9,0" +) +xt "33000,27400,36300,28600" +st "reset" +blo "33000,28400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 92,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11400,19000,12200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2,0 +) +) +) +*76 (CptPort +uid 93,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 94,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,23625,48750,24375" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 96,0 +va (VaSet +font "Verdana,9,0" +) +xt "42400,23400,47000,24600" +st "polygon" +ju 2 +blo "47000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 97,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13000,30500,13800" +st "polygon : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 3,0 +) +) +) +*77 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "Verdana,9,0" +) +xt "41800,17400,47000,18600" +st "sawtooth" +ju 2 +blo "47000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13800,30000,14600" +st "sawtooth : OUT unsigned (phaseBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 4,0 +) +) +) +*78 (CptPort +uid 103,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 104,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,25625,48750,26375" +) +tg (CPTG +uid 105,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 106,0 +va (VaSet +font "Verdana,9,0" +) +xt "44200,25400,47000,26600" +st "sine" +ju 2 +blo "47000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 107,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14600,30500,15400" +st "sine : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +) +*79 (CptPort +uid 108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,19625,48750,20375" +) +tg (CPTG +uid 110,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 111,0 +va (VaSet +font "Verdana,9,0" +) +xt "42900,19400,47000,20600" +st "square" +ju 2 +blo "47000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 112,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15400,30500,16200" +st "square : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 6,0 +) +) +) +*80 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 114,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "Verdana,9,0" +) +xt "33000,17400,35900,18600" +st "step" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12200,30000,13000" +st "step : IN unsigned (phaseBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +) +*81 (CptPort +uid 118,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,21625,48750,22375" +) +tg (CPTG +uid 120,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 121,0 +va (VaSet +font "Verdana,9,0" +) +xt "42500,21400,47000,22600" +st "triangle" +ju 2 +blo "47000,22400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 122,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16200,29500,17000" +st "triangle : OUT unsigned (signalBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 8,0 +) +) +) +*82 (CptPort +uid 123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,23625,32000,24375" +) +tg (CPTG +uid 125,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 126,0 +va (VaSet +font "Verdana,9,0" +) +xt "33000,23400,34900,24600" +st "en" +blo "33000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 127,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,10600,19000,11400" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,14000,48000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "32600,29800,44100,31000" +st "WaveformGenerator" +blo "32600,30800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "32600,31000,40800,32200" +st "waveformGen" +blo "32600,32000" +) +) +gi *83 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "32000,33600,46000,36800" +st "Generic Declarations + +phaseBitNb positive 16 +signalBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "phaseBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*84 (Grouping +uid 16,0 +optionalChildren [ +*85 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,47800,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*90 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51300,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *95 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*97 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1,36,1389,979" +viewArea "-1100,-1100,74885,50965" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *98 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *99 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,7800,5400,8800" +st "Declarations" +blo "0,8600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,8800,2700,9800" +st "Ports:" +blo "0,9600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,17000,2400,18000" +st "User:" +blo "0,17800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,7800,5800,8800" +st "Internal User:" +blo "0,8600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18000,2000,18000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,7800,0,7800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 437,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/01-WaveformGenerator/WaveformGenerator_test/hdl/waveformGen_tester_test.vhd b/01-WaveformGenerator/WaveformGenerator_test/hdl/waveformGen_tester_test.vhd new file mode 100644 index 0000000..52d3ddd --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hdl/waveformGen_tester_test.vhd @@ -0,0 +1,22 @@ +ARCHITECTURE test OF waveformGen_tester IS + + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + +begin + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + reset <= '1', '0' after 2*clockPeriod; + + ------------------------------------------------------------------------------ + -- enable + en <= '0', '1' after 100 us; + + ------------------------------------------------------------------------------ + -- frequency control + step <= to_unsigned(2**(step'length-13), step'length); + +END ARCHITECTURE test; + diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformGen_tester_test.vhd._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformGen_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformGen_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhd._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhg._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhd._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhg._fpf b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/.hdlsidedata/_waveformgen_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tb._epf b/01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tb._epf new file mode 100644 index 0000000..25a3e3e --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom waveform@gen_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tester._epf b/01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tester._epf new file mode 100644 index 0000000..f982b8b --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/_waveformgen_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom waveformGen_tester_test.vhd diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/struct.bd b/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/struct.bd new file mode 100644 index 0000000..1363e34 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/struct.bd @@ -0,0 +1,2865 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "WaveformGenerator_test" +duName "waveformGen_tester" +elements [ +(GiElement +name "bitNb" +type "positive" +value "bitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 421,0 +) +(Instance +name "I_DUT" +duLibraryName "WaveformGenerator" +duName "waveformGen" +elements [ +(GiElement +name "phaseBitNb" +type "positive" +value "bitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "bitNb" +) +] +mwi 0 +uid 954,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveformGen_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "waveformGen_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:39:46" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "waveformGen_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveformGen_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR/$DESIGN_NAME/$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:39:46" +) +(vvPair +variable "unit" +value "waveformGen_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Net +uid 45,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 1,0 +) +declText (MLText +uid 46,0 +va (VaSet +) +xt "2000,14600,17400,15800" +st "SIGNAL reset : std_ulogic" +) +) +*2 (Net +uid 53,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +declText (MLText +uid 54,0 +va (VaSet +) +xt "2000,12200,17500,13400" +st "SIGNAL clock : std_ulogic" +) +) +*3 (Grouping +uid 110,0 +optionalChildren [ +*4 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,54000,61000,55000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,54500,44200,54500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,50000,65000,51000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,50500,61200,50500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,52000,61000,53000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,52500,44200,52500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,52000,44000,53000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,52500,40200,52500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,51000,81000,55000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,51200,75300,52400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*9 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,50000,81000,51000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,50500,65200,50500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,50000,61000,52000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "45350,50400,55650,51600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,53000,44000,54000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,53500,40200,53500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,54000,44000,55000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,54500,40200,54500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,53000,61000,54000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,53500,44200,53500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "40000,50000,81000,55000" +) +oxt "14000,66000,55000,71000" +) +*14 (Blk +uid 421,0 +shape (Rectangle +uid 422,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "19000,38000,71000,46000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 423,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*15 (Text +uid 424,0 +va (VaSet +font "Arial,9,0" +) +xt "19700,46200,31200,47100" +st "WaveformGenerator_test" +blo "19700,46900" +tm "BdLibraryNameMgr" +) +*16 (Text +uid 425,0 +va (VaSet +font "Arial,9,0" +) +xt "19700,47400,29200,48300" +st "waveformGen_tester" +blo "19700,48100" +tm "BlkNameMgr" +) +*17 (Text +uid 426,0 +va (VaSet +font "Arial,9,0" +) +xt "19700,48600,21700,49500" +st "I_tb" +blo "19700,49300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 427,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 428,0 +text (MLText +uid 429,0 +va (VaSet +) +xt "19000,50000,45200,52400" +st "bitNb = bitNb ( positive ) +clockFrequency = clockFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "bitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*18 (Net +uid 594,0 +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +declText (MLText +uid 595,0 +va (VaSet +) +xt "2000,15800,28300,17000" +st "SIGNAL step : unsigned(bitNb-1 DOWNTO 0)" +) +) +*19 (Net +uid 700,0 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 4,0 +) +declText (MLText +uid 701,0 +va (VaSet +) +xt "2000,13400,16900,14600" +st "SIGNAL en : std_ulogic" +) +) +*20 (SaComponent +uid 954,0 +optionalChildren [ +*21 (CptPort +uid 918,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 919,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,25625,39000,26375" +) +tg (CPTG +uid 920,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 921,0 +va (VaSet +font "Arial,9,0" +) +xt "40000,25400,42500,26300" +st "clock" +blo "40000,26100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*22 (CptPort +uid 922,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 923,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,27625,39000,28375" +) +tg (CPTG +uid 924,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 925,0 +va (VaSet +font "Arial,9,0" +) +xt "40000,27400,42500,28300" +st "reset" +blo "40000,28100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2,0 +) +) +) +*23 (CptPort +uid 926,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 927,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,23625,55750,24375" +) +tg (CPTG +uid 928,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 929,0 +va (VaSet +font "Arial,9,0" +) +xt "50500,23400,54000,24300" +st "polygon" +ju 2 +blo "54000,24100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "polygon" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 3,0 +) +) +) +*24 (CptPort +uid 930,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 931,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,17625,55750,18375" +) +tg (CPTG +uid 932,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 933,0 +va (VaSet +font "Arial,9,0" +) +xt "50000,17400,54000,18300" +st "sawtooth" +ju 2 +blo "54000,18100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 4,0 +) +) +) +*25 (CptPort +uid 934,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 935,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,25625,55750,26375" +) +tg (CPTG +uid 936,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 937,0 +va (VaSet +font "Arial,9,0" +) +xt "52000,25400,54000,26300" +st "sine" +ju 2 +blo "54000,26100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +) +*26 (CptPort +uid 938,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 939,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,19625,55750,20375" +) +tg (CPTG +uid 940,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 941,0 +va (VaSet +font "Arial,9,0" +) +xt "51000,19400,54000,20300" +st "square" +ju 2 +blo "54000,20100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 6,0 +) +) +) +*27 (CptPort +uid 942,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 943,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,17625,39000,18375" +) +tg (CPTG +uid 944,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 945,0 +va (VaSet +font "Arial,9,0" +) +xt "40000,17400,42000,18300" +st "step" +blo "40000,18100" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +) +*28 (CptPort +uid 946,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 947,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,21625,55750,22375" +) +tg (CPTG +uid 948,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 949,0 +va (VaSet +font "Arial,9,0" +) +xt "50000,21400,54000,22300" +st "triangle" +ju 2 +blo "54000,22100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 8,0 +) +) +) +*29 (CptPort +uid 950,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 951,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,23625,39000,24375" +) +tg (CPTG +uid 952,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 953,0 +va (VaSet +font "Arial,9,0" +) +xt "40000,23400,41000,24300" +st "en" +blo "40000,24100" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 955,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,14000,55000,30000" +) +oxt "32000,14000,48000,30000" +ttg (MlTextGroup +uid 956,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*30 (Text +uid 957,0 +va (VaSet +font "Arial,9,1" +) +xt "39600,30800,48600,31700" +st "WaveformGenerator" +blo "39600,31500" +tm "BdLibraryNameMgr" +) +*31 (Text +uid 958,0 +va (VaSet +font "Arial,9,1" +) +xt "39600,32000,45600,32900" +st "waveformGen" +blo "39600,32700" +tm "CptNameMgr" +) +*32 (Text +uid 959,0 +va (VaSet +font "Arial,9,1" +) +xt "39600,33200,42100,34100" +st "I_DUT" +blo "39600,33900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 960,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 961,0 +text (MLText +uid 962,0 +va (VaSet +) +xt "39000,34600,58400,37000" +st "phaseBitNb = bitNb ( positive ) +signalBitNb = bitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "phaseBitNb" +type "positive" +value "bitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "bitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*33 (Wire +uid 47,0 +shape (OrthoPolyLine +uid 48,0 +va (VaSet +vasetType 3 +) +xt "35000,28000,38250,38000" +pts [ +"35000,38000" +"35000,28000" +"38250,28000" +] +) +start &14 +end &22 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 51,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 52,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,26600,38500,27900" +st "reset" +blo "35000,27600" +tm "WireNameMgr" +) +) +on &1 +) +*34 (Wire +uid 55,0 +shape (OrthoPolyLine +uid 56,0 +va (VaSet +vasetType 3 +) +xt "33000,26000,38250,38000" +pts [ +"33000,38000" +"33000,26000" +"38250,26000" +] +) +start &14 +end &21 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 59,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 60,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,24600,38500,25900" +st "clock" +blo "35000,25600" +tm "WireNameMgr" +) +) +on &2 +) +*35 (Wire +uid 596,0 +shape (OrthoPolyLine +uid 597,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "27000,18000,38250,38000" +pts [ +"38250,18000" +"27000,18000" +"27000,38000" +] +) +start &27 +end &14 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 600,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 601,0 +va (VaSet +font "Arial,12,0" +) +xt "34250,16600,37050,17900" +st "step" +blo "34250,17600" +tm "WireNameMgr" +) +) +on &18 +) +*36 (Wire +uid 702,0 +shape (OrthoPolyLine +uid 703,0 +va (VaSet +vasetType 3 +) +xt "31000,24000,38250,38000" +pts [ +"38250,24000" +"31000,24000" +"31000,38000" +] +) +start &29 +end &14 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 706,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 707,0 +va (VaSet +font "Arial,12,0" +) +xt "35250,22600,36650,23900" +st "en" +blo "35250,23600" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *37 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*38 (Text +uid 143,0 +va (VaSet +font "Arial,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*39 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*41 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*42 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*43 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*44 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*45 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*46 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1194,-1194,105025,56517" +cachedDiagramExtent "0,0,81000,55000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 90 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1148,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*48 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*49 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*51 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*52 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*54 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*55 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*57 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*58 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*60 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*61 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*63 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*65 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*67 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,5000,6500,5900" +st "Declarations" +blo "0,5700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,5900,3000,6800" +st "Ports:" +blo "0,6600" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,6800,4500,7700" +st "Pre User:" +blo "0,7500" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "2000,7700,26900,11300" +st "constant bitNb: positive := 16; +constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "0,11300,8500,12200" +st "Diagram Signals:" +blo "0,12000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,5000,5500,5900" +st "Post User:" +blo "0,5700" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "0,5000,0,5000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *68 (LEmptyRow +) +uid 717,0 +optionalChildren [ +*69 (RefLabelRowHdr +) +*70 (TitleRowHdr +) +*71 (FilterRowHdr +) +*72 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*73 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*74 (GroupColHdr +tm "GroupColHdrMgr" +) +*75 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*76 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*77 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*78 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*79 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*80 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*81 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 708,0 +) +*82 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 710,0 +) +*83 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 712,0 +) +*84 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 714,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 730,0 +optionalChildren [ +*85 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *86 (MRCItem +litem &68 +pos 4 +dimension 20 +) +uid 732,0 +optionalChildren [ +*87 (MRCItem +litem &69 +pos 0 +dimension 20 +uid 733,0 +) +*88 (MRCItem +litem &70 +pos 1 +dimension 23 +uid 734,0 +) +*89 (MRCItem +litem &71 +pos 2 +hidden 1 +dimension 20 +uid 735,0 +) +*90 (MRCItem +litem &81 +pos 0 +dimension 20 +uid 709,0 +) +*91 (MRCItem +litem &82 +pos 1 +dimension 20 +uid 711,0 +) +*92 (MRCItem +litem &83 +pos 2 +dimension 20 +uid 713,0 +) +*93 (MRCItem +litem &84 +pos 3 +dimension 20 +uid 715,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 736,0 +optionalChildren [ +*94 (MRCItem +litem &72 +pos 0 +dimension 20 +uid 737,0 +) +*95 (MRCItem +litem &74 +pos 1 +dimension 50 +uid 738,0 +) +*96 (MRCItem +litem &75 +pos 2 +dimension 100 +uid 739,0 +) +*97 (MRCItem +litem &76 +pos 3 +dimension 50 +uid 740,0 +) +*98 (MRCItem +litem &77 +pos 4 +dimension 100 +uid 741,0 +) +*99 (MRCItem +litem &78 +pos 5 +dimension 100 +uid 742,0 +) +*100 (MRCItem +litem &79 +pos 6 +dimension 50 +uid 743,0 +) +*101 (MRCItem +litem &80 +pos 7 +dimension 80 +uid 744,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 731,0 +vaOverrides [ +] +) +] +) +uid 716,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *102 (LEmptyRow +) +uid 746,0 +optionalChildren [ +*103 (RefLabelRowHdr +) +*104 (TitleRowHdr +) +*105 (FilterRowHdr +) +*106 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*107 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*108 (GroupColHdr +tm "GroupColHdrMgr" +) +*109 (NameColHdr +tm "GenericNameColHdrMgr" +) +*110 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*111 (InitColHdr +tm "GenericValueColHdrMgr" +) +*112 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*113 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 758,0 +optionalChildren [ +*114 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *115 (MRCItem +litem &102 +pos 0 +dimension 20 +) +uid 760,0 +optionalChildren [ +*116 (MRCItem +litem &103 +pos 0 +dimension 20 +uid 761,0 +) +*117 (MRCItem +litem &104 +pos 1 +dimension 23 +uid 762,0 +) +*118 (MRCItem +litem &105 +pos 2 +hidden 1 +dimension 20 +uid 763,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 764,0 +optionalChildren [ +*119 (MRCItem +litem &106 +pos 0 +dimension 20 +uid 765,0 +) +*120 (MRCItem +litem &108 +pos 1 +dimension 50 +uid 766,0 +) +*121 (MRCItem +litem &109 +pos 2 +dimension 100 +uid 767,0 +) +*122 (MRCItem +litem &110 +pos 3 +dimension 100 +uid 768,0 +) +*123 (MRCItem +litem &111 +pos 4 +dimension 50 +uid 769,0 +) +*124 (MRCItem +litem &112 +pos 5 +dimension 50 +uid 770,0 +) +*125 (MRCItem +litem &113 +pos 6 +dimension 80 +uid 771,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 759,0 +vaOverrides [ +] +) +] +) +uid 745,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/symbol.sb b/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/symbol.sb new file mode 100644 index 0000000..cdbf741 --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tb/symbol.sb @@ -0,0 +1,1268 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb" +) +(vvPair +variable "d_logical" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveformGen_tb" +) +(vvPair +variable "date" +value "25.02.2019" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "25" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "waveformGen_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois.corthay" +) +(vvPair +variable "graphical_source_date" +value "25.02.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WEA30906" +) +(vvPair +variable "graphical_source_time" +value "14:48:16" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WEA30906" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "waveformGen_tb" +) +(vvPair +variable "month" +value "févr." +) +(vvPair +variable "month_long" +value "février" +) +(vvPair +variable "p" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Bachelor\\SI\\Cours\\225_SEm\\COURS_COF\\Cours\\Labs\\VHDL\\WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveformGen_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "waveformGenerator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:48:16" +) +(vvPair +variable "unit" +value "waveformGen_tb" +) +(vvPair +variable "user" +value "francois.corthay" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,37400,16000" +st "WaveformGenerator_test" +blo "22600,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,32500,17200" +st "waveformGen_tb" +blo "22600,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,47800,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "arial,8,0" +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "arial,8,0" +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,2000,44400,3000" +st "User:" +blo "42000,2800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3000,44000,3000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tester/interface b/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tester/interface new file mode 100644 index 0000000..e643aff --- /dev/null +++ b/01-WaveformGenerator/WaveformGenerator_test/hds/waveform@gen_tester/interface @@ -0,0 +1,1288 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 44,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 49,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 41,0 +) +) +uid 656,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 42,0 +) +) +uid 658,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 43,0 +) +) +uid 660,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 44,0 +) +) +uid 662,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 62,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 64,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 65,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 66,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 67,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 657,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 659,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 661,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 663,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 68,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 69,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 70,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 71,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 73,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 75,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 76,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 63,0 +vaOverrides [ +] +) +] +) +uid 48,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 78,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 229,0 +) +*48 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 611,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 90,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 92,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 93,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 94,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 95,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 230,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 612,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 97,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 98,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 99,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 100,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 101,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 102,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 91,0 +vaOverrides [ +] +) +] +) +uid 77,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveformGen_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "waveformGen_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:39:31" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "WaveformGenerator_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/WaveformGenerator_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "waveformGen_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveform@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\01-WaveformGenerator\\Prefs\\..\\WaveformGenerator_test\\hds\\waveformGen_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:39:31" +) +(vvPair +variable "unit" +value "waveformGen_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 47,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 636,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 637,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 638,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 639,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,10800" +st "clock" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 640,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,59500,2800" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 41,0 +) +) +) +*65 (CptPort +uid 641,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 642,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 643,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 644,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,9400" +st "en" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 645,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,59500,3600" +st "en : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 42,0 +) +) +) +*66 (CptPort +uid 646,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 647,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 648,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 649,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,11100" +st "reset" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 650,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,59500,4400" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 43,0 +) +) +) +*67 (CptPort +uid 651,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 652,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 653,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 654,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10600" +st "step" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 655,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,67000,5200" +st "step : OUT unsigned (bitNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 44,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "35650,9000,46350,10000" +st "WaveformGenerator_test" +blo "35650,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "35650,10000,44050,11000" +st "waveformGen_tester" +blo "35650,10800" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,6000,34500,9200" +st "Generic Declarations + +bitNb positive 16 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *69 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 17,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*71 (MLText +uid 18,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,1016,690" +viewArea "-500,-500,70420,47560" +cachedDiagramExtent "0,0,67000,14000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "WaveformGenerator_test" +entityName "waveformGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *72 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "arial,8,0" +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "arial,8,0" +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *73 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,5200,44400,6200" +st "User:" +blo "42000,6000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6200,44000,6200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 663,0 +activeModelName "Symbol:GEN" +) diff --git a/01-WaveformGenerator/waveformGenerator.bash b/01-WaveformGenerator/waveformGenerator.bash new file mode 100755 index 0000000..933ab09 --- /dev/null +++ b/01-WaveformGenerator/waveformGenerator.bash @@ -0,0 +1,32 @@ +#!/bin/bash + +#=============================================================================== +# waveformGenerator.bash +# Starts HDL designer based on the generic hdlDesigner.bash +# + +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +hdl_script_name="$design_directory/Scripts/hdlDesigner.bash" + +verbose=1 +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + + +#------------------------------------------------------------------------------- +# Main script +# +if [ -n "$verbose" ] ; then + echo "$SEPARATOR" + echo "Launching HDL Designer" + echo "${INDENT}Design name is $design_name" + echo "${INDENT}Start directory is $design_directory" + echo "${INDENT}HDL designer script is $hdl_script_name" +fi + +#------------------------------------------------------------------------------- +# Launch application +# +$hdl_script_name -v -d $design_directory -n $design_name -m hds.hdp diff --git a/01-WaveformGenerator/waveformGenerator.bat b/01-WaveformGenerator/waveformGenerator.bat new file mode 100644 index 0000000..efe9b97 --- /dev/null +++ b/01-WaveformGenerator/waveformGenerator.bat @@ -0,0 +1,79 @@ +::============================================================================== +:: eln_labs.bat +:: Starts HDL designer based on the generic hdlDesigner.bat +:: +@echo off + +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +:: TO BE MODIFIED +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +:: Define environment variables to be modified +:: You can change one or more values as needed +:: +set VERBOSE=1 + +:: Define required Tools to be present +set REQUIRE_LIBS=0 +set REQUIRE_HDS=1 +set REQUIRE_MODELSIM=1 + +:: Set project name +set design_name=%~n0 + +:: Manually override Library & Tools Folder location +::set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + +::set HDS_HOME=C:\eda\MentorGraphics\HDS +::set MODELSIM_HOME=C:\eda\MentorGraphics\Modelsim\win64 +::set ISE_VERSION=14.7 +::set ISE_HOME=C:\eda\Xilinx\%ISE_VERSION%\ISE_DS\ISE +::set LIBERO_HOME=C:\eda\Microsemi\Libero + +::set SCRATCH_DIR=C:\temp\eda\%username% +:: +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +::------------------------------------------------------------------------------ +:: Static environment variables +:: +set SEPARATOR="--------------------------------------------------------------------------------" +set INDENT=" " +set design_directory=%~dp0 +::remove trailing backslash +if %design_directory:~-1%==\ set design_directory=%design_directory:~0,-1% +pushd %design_directory% +set hdl_script_name="%design_directory:"=%\Scripts\hdlDesigner.bat" + +::------------------------------------------------------------------------------ +:: Main script +:: +if %VERBOSE% == 1 ( + echo "%SEPARATOR:"=%" + echo "-- HDL Designer Poject" + echo "%INDENT:"=%Design name is %design_name:"=%" + echo "%INDENT:"=%Start directory is %design_directory:"=%" + echo "%INDENT:"=%HDL designer script is %hdl_script_name:"=%" + echo. +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +if %VERBOSE% == 1 ( + set command=%hdl_script_name% -v -n %design_name% -d %design_directory% +) else ( + set command=%hdl_script_name% -n %design_name% -d %design_directory% +) +echo "Launch HDL Designer Script" +echo "%INDENT:"=%%command:"=%" +echo. +call %command% + +:end +popd +echo. +echo -- %~nx0 Finished! +echo %SEPARATOR% +echo. +if not %errorlevel% lss 1 pause +goto:eof diff --git a/02-SplineInterpolator/Prefs/hds.hdp b/02-SplineInterpolator/Prefs/hds.hdp new file mode 100644 index 0000000..3a75d9b --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds.hdp @@ -0,0 +1,25 @@ +[Concat] +[ModelSim] +SplineInterpolator = $SCRATCH_DIR/SplineInterpolator +SplineInterpolator_test = $SCRATCH_DIR/SplineInterpolator_test +WaveformGenerator = $SCRATCH_DIR/WaveformGenerator +WaveformGenerator_test = $SCRATCH_DIR/WaveformGenerator_test +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +SplineInterpolator = $HDS_PROJECT_DIR/../SplineInterpolator/hdl +SplineInterpolator_test = $HDS_PROJECT_DIR/../SplineInterpolator_test/hdl +std = $HDS_HOME/hdl_libs/std/hdl +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hdl +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hdl +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +SplineInterpolator = $HDS_PROJECT_DIR/../SplineInterpolator/hds +SplineInterpolator_test = $HDS_PROJECT_DIR/../SplineInterpolator_test/hds +std = $HDS_HOME/hdl_libs/std/hds +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hds +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hds +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/02-SplineInterpolator/Prefs/hds_team/shared.hdp b/02-SplineInterpolator/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/02-SplineInterpolator/Prefs/hds_team/v2018.1/hds_team_prefs b/02-SplineInterpolator/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/02-SplineInterpolator/Prefs/hds_team/v2018.1/title_block.tmpl b/02-SplineInterpolator/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/02-SplineInterpolator/Prefs/hds_team/v2019.2/hds_team_prefs b/02-SplineInterpolator/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/02-SplineInterpolator/Prefs/hds_team/v2019.2/title_block.tmpl b/02-SplineInterpolator/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/02-SplineInterpolator/Prefs/hds_team/v2019.3/hds_team_prefs b/02-SplineInterpolator/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/02-SplineInterpolator/Prefs/hds_team/v2019.3/title_block.tmpl b/02-SplineInterpolator/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..0a7d5eb --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6092 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/04-Lissajous/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/02-SplineInterpolator/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "899x918--1+57" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SplineInterpolator" +showingHierarchy 0 +openLibs [ +"SplineInterpolator" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SplineInterpolator_test" +showingHierarchy 0 +openLibs [ +"SplineInterpolator_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 1739 +yPos 76 +width 951 +height 937 +activeSidePanelTab 2 +activeLibraryTab 2 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +) +] diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..3d39e11 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/sineGen.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/hds_user_prefs b/02-SplineInterpolator/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/generate.tsk b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/hds_user_prefs b/02-SplineInterpolator/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..b9d6429 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6842 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\02-SplineInterpolator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\02-SplineInterpolator\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\02-SplineInterpolator\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x200+2349+55" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SplineInterpolator" +showingHierarchy 0 +openLibs [ +"SplineInterpolator" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SplineInterpolator_test" +showingHierarchy 0 +openLibs [ +"SplineInterpolator_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 14 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/generate.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..3d39e11 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/sineGen.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/02-SplineInterpolator/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/02-SplineInterpolator/Scripts/cleanGenerated.bash b/02-SplineInterpolator/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/02-SplineInterpolator/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/02-SplineInterpolator/Scripts/cleanGenerated.bat b/02-SplineInterpolator/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/02-SplineInterpolator/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/02-SplineInterpolator/Scripts/cleanScratch.bat b/02-SplineInterpolator/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/02-SplineInterpolator/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/02-SplineInterpolator/Scripts/generateSSHKey.bash b/02-SplineInterpolator/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/02-SplineInterpolator/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/02-SplineInterpolator/Scripts/hdlDesigner.bash b/02-SplineInterpolator/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/02-SplineInterpolator/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/02-SplineInterpolator/Scripts/hdlDesigner.bat b/02-SplineInterpolator/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/02-SplineInterpolator/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/02-SplineInterpolator/Scripts/searchPaths.bat b/02-SplineInterpolator/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/02-SplineInterpolator/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/02-SplineInterpolator/Scripts/trimLibs.pl b/02-SplineInterpolator/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/02-SplineInterpolator/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/02-SplineInterpolator/Scripts/update_ise.pl b/02-SplineInterpolator/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/02-SplineInterpolator/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/xL8>4M2r3E+Ql$tA zg3_CG5D}2xza2d1c-s4WpXxA<&P4BVlS# zQz#OF1V#|oWn{=PE;axca_GPOkdyj(U~F-c5J+-T_-{YJ)YBH!<&Qpbaq)ljp~OV~ z-iLsT{9`TxfsptIo!CF=L`32Lpc4a(`})gZ&;-|1GL=#h7lSJaiwG+#D#{~NkYb7mq=X_uLP1y*g+wZfiONVR ziz%ZNR8UA|aU}(15m6Bd1#tyMWo0qAiio_3h?uer&e5cvUREAnKRpU3C*|f=)=?oR z{kz-ANre$V0}B^d7#BM)d#E@HrsCk_h4Fx?I9YjNlrU&l8w~6+R00JA8%h{v02M*W z$as2rV62>hm>IFQwETjxv>a&$5%_39NbXRcqw|g zx+%E&nZkh{F$pmtVPPmrRQNhD*8}6?^&3}3R~Ikfou?_{ln)dkjAIAIg%a-NR1GNN z)OEm``Pq5uQz!x_N&h${o-hc*XJlo#N+QoLxA{zgzaZM4<0FOu@<%gM$wy z@8MwOq-6-KB#+-<6A^|fy8uhc!Nm@M&qdzF)8UWzf584H2mNDRB2aLVe_5HomZDl* z>a|x1EaH?O7WgGo@eQ98M?(B;-Px*41zZurtql}tV(bseK zsG_aLoO^ioEfzl+rRpYF zpB??jr|+LE-fCf`4GbeY4g{(4;$PLh>cW?l{AqJ_GQ%|^aj@%P`5cAt^@i*7e6{78 zvTP^aDQ8=YUZi)szy6-I4hg9U89&~0_ZM%;&3!TnYcL=EeoOZe{cV=D&>zKT%?dO| z`5}=Uig`f^d3+VYo*N3OUCyMGbAxf#VU$4&U7rR%mfnvvzq~bZO*NA2v1|gv;C|)J z*v@DwiUXF$B!0IZB*&SBdX4YAy0htfONHF3_kE_oigNB6YZl#Ko%kXpy#r#^qbVso zL3!_#GpRP1Ypm+0U)rABo>PejDDf}yyNp6IwC_7@xGn9ceAkTn+AGCBSf_7vo+aMZ zM%_2oDvX0pHuWQAi%PR2S$nyiwFKQkoyXX2Cz3Lal#^u})R+|U%sE-dxpwCfK${`+ zKqsBW+uCQZSSBmUV53T~@ww-*mB(utKW+HE>T9Yq%V*lb-fP)cb z8$MUJ$Iokor<(r|B)fMdBM+^spLq5o=6wA2_Mv0l(MJj|kv3<3@8fuLNy*gjmT}aN zDI$mwM3O`d(No|)<_*OZ7Dnr)cU;xwKI~i)&f(*N-@-UMfjE-9ovDim5zg%_!}xNaL68b1uEUSUE&%hHva#sqpT~ z8F?>a@Csh!lpU=jYAD(Kp;18PsCMl~t5*3e?uT@h*4`kcXwc&zBFhrvUZ!sE*@3w9 zoaN#aU4uIYZt+6fkNA3Tu*X6a^UxrxJ;w0>%RrykMePmFtpsTl=MJRv_)8uxfU8XB znxC641$;5y>f3s>W*J$V`vP*_rz6XB{c>Y6b>N1eNS&Y8+tF+CSHcqHFH1|01zSvT zn2{7~GLU6Bx3u7Uycode@gXfeoj=yL*&DReU)T>{y|iJatZYi~f-aWVmslx={qYP-%i7Hd zUd{&XRNVM`9fGY&WgUdYWsfs*P7HYG7bw&3C(q{FUhygCa{K^@uvPR3$W+%tSdah| zHpF-UY*vGTQ7o}^ca{l^Z>O(Ri7?+W5H;3vlsxx#x3#E7=U>RqElEkX3!9OAz zD=*K~ca$@ACO68bOQZ;2q$C)@CvNExU_FcNby@%T!|BqBLJTtI z#>TuZncvnTC>DZecmQeCeO}s*pIBibor=oRR?tG8@hbU%$N%|9uL31wv|Kx=`G;dh zq9;kk;p;g?jT(nm0!)^i=|JL>yqp}ek1m5}rEXRSj~zJeZz%>LO}%cLa5qa`${kwo zll)TV7B+ANBTDhkC}SoYR<8KkO=ac_7VheeZ_hHOEX)*R(=lyxzAs7yXwB;Ln9U>! zW%r`E6t~YWpSDnFV}tuj@e#FZDl@u_b!kR1UlkbRBSfyUmClP%eCJ?{SH!G+w>+ac{M3iX7y-syXbL;~R&z?){+Ab;|=zME8AkV#XxK%0n$R@Xq8x!td zAJEKHuCDc&6n$k=%*xOu?g7|`WxaT+BF6u?tl2n-Ej97k{-EreAIE!>lZhd$A%W7H zB9HFm$|f|tetBjtuyk;0Z|m_nS+<6y$%f;g!#%NFaD-`^eL}jLvVTMbraW8Xu2)_q zLF*uCtZlr()588X+Q~{i{7U6(W08Z}On$?>j-Z~s2Oi;5**zDFQXCjv)mYY5uADKa8%&Do65&-~P5K}&BWC{&dk+%rp3abI-J!!RFY zPOLpubhc@uTwFtx=_+d45f3jT<;NUNO(EWt=2Pk?xtmM^@>3D?<;gw9Rq3vE#sy7Y zQJiDMP%~n^rL#jN=9N*r!~60TP19fBK%A5ZvnVd`7f*OCKY*z$9nqS<;Jj9~wRQ3i zACUU~0ST6Z$*h&tS3067X>KM>VT#%1jy-Rg+goNlylbPRvMwrw2Nd7!PEDxc)deF7P3v1NU$~iL5(QI- zs;ZVsz1G;A=%1Ju)C~*GBH))Qhy)Qn5d*?6Zz~tJRH|s0ITA}gwRAe4xtM-5eMX4k zM~OV@CBAxNfSh2Zr2rGTy}hn=Av;NHf>r<4_#pAZ`4-g51%;url9Vvw)KKy;6U%lZ zQAtWi92N20y{AEq#O~Kc-V+crD=bW%%ja%O_-N9W{?y)!b-+H(ksNQgsX#uI=e9~V zNqhRoFh8xlw?i}~_;m5g1sjzF+)uc)jPx^JZ5v0g z`)h($W|Ah~ka1|8_qdvnn$!@Tq_zdU$@>EZ$1mP!szvzqyw+=A@Jd8{#Lz%|p~>dk zwq*s?sh}|GO1SPBCzj_*z}Rvy;+j)LY=QR|wa+rB@ zb|~&$7hn~)wb-FB5YLpUtyXuUQiUK*S2~QVzUl^Xq0ew51)cXFXK$RjsT!2!SUY@a z79q6{|IA4wTST-rtDK(?0i=i$WUbBKpjp~~#9q^y>b{($`X)1GWiz%(>k%G{zuqEB zKt3)$`U_1$-M9p?E5ZgH!GGuMx2pBZEPbi>RbmiDb6QCXjjFdV0GjB)2-kHq`Wb>| z((O}Qi*3N$7L7-&-~6Z+Ma$&k97!(6_yoqd_@E05vlbgQn6;|=I0<-)0^l>sc`aUq zx5TN#wKLb_Rb3G?1xEyD%t!2Br|EZSk8}>-%GgfmJ1`C8hBiJpHwiT@LorIfF^o<` zQorowB%%jcOdIDFR)V>a)ORT2cj?Bzy_KQoUuwKY663r@977J9bM|@i(C?+yJ+q;; z`|s%4UIv#@dPj2wW>SBV>MdpHePg|M%oR?j?qo7@c&=yUEEYA;MJui%kQg=`^MQq= zlJN#!sfnm0Jh>X(OYk)v(-+}5pGD5nSR{(?+V*&i6fez%3n@vpL?!qQ4fK61ULd+T&uDoyU$fNy3i{-nHggR;Y4=HGdj_LnEP)}a-s@Ui zUZ-(^!|W@L+$%Qqne-%udq3g`92jJ;$bm0@o#5e5k6duPNd3U-A^7Hx6Jq*JfhWGx zm&f*J%qVp(mPMEP=eVgiTqeM@$RvO1lMA0OIe1nUN?`bzS^ugo*r*arUD$kg{@x&o z`1Pk^R0%tqLdg%wK2smoc7|`An9pp@_>J8x08#7eRV0@gQL{dw<1$ZNH~~H;(aqr_ z__xa&?zH{4%Nyd~KFRs>dC@6DgL(`_t+*o-rPD}x@>yb@Y39K75?^Yj+|?DPvpu~O zMJYD@`h72s2L|+e_Et|$3<*zIu%g8bpwW&cR%>D?y66!R2>U8rzA@hXllSv=Jhnom z!b9PJ&Ksac26+bA{ku07SQ&%(<)LzILG?8t1~KBTTDI+w`Qwz{1!@AYjp6QoB0S;FyQv_CB7z7Iqo9}=$kI%Z zfuMuI&IJ6v!`DPWZTq+^!Dh3NAS{%*>jHb*nZ^=+V7z4YGi_rBjuN%}(2{vs0@Xn& z*QTjV4q~{u)C%Zyq^*UAeTh^5z$qWhP(%o@e;IHCBo#eiaa|UFqpJ4qe3A)>QDhu2 zXpx(NAfZ>t^tE~$nPuuZ2-qf7L=X?|Wc3*;r=oF%Jk%LmrS#?7k=h&2L~MN`loE=* zZ$%QScMUKk*?H;hE{NeJ{01eoF#8e7Q1tzN4!7<4++=qZ*RBFEp0Lv$Ktzdr$>f{s zrmG9{*kdLDG!-pHfNfP(Is>?4alw%+6cGUr*{oN{?yaUG0J|90is884w0aAWO5~b? zuq=^>g*!)6bqDtbDCI$noH(ekI91C;5P0wa%6;F-z#vp%1vfE4N2RwOJ}6o`uOFB! zOG8r`|I9ampnKxr*iEH@UK?=Ekl+)*yQlEv^t>g&X(tX~YGW8hH_*V_(EeN36+r#>B4T*9W;?-+ck)BAm(BtG z?*Xe^1Wey_0?s}SwfzJw;ednuQb4l+rc)O_t*zKmG#D8lkrjSLCl@Vvn+XK}rdrGd z=(E627Wx!shagTublcGZqPuaT=~RHokRaYGUEL;S+j%7GUhP>S(4YMX=HR`2LQf2- z%}mU{yPxjztpdy-O?;#(+f(@)mTUK^KrL6Vkb_;mdHUQ5tvh&1pBB*lc~FEG2oNnC z!XXb^8IL{&1Xgd)tacl67FM6T5(Z-2VN3&}nlK`i8B@VT(y_R*F7(FktMdm#(2&aH zHA!Z02g7O^sxa52XLUe4K_sBI`wH|+wDhPdHy-1g>+^j#i|ey5lY}O#!ikfn9C<96 zw=FavcsB37yys@6W-UyDdcde87#bC>aYq-OA-J#B7bazLlr@cNB3#$HlG9C`+MDSA^`_sP#h%k zH*E1h(MM9c09M;2$B%!cVk8NhXDs1slNbX&Js%vL~ts9Tqt%T zNA}c{almd7t{c2L6L_P0v4Yo3Ha@FfG|YJjW=Ms~t)EYIt)S}dE_h-0b$PE7Y>9

y#Lty$YoWOXRu>&gA@#S=lq)sxUd@M#$hM{U}(vVZm1gq zwn4vzw~R+DBR7jDj`1e$5`q{G-qHZr9!aK9gV1aNzca0wuZ&r*DW%9)C$P>9?Nk-bB-3OehymURuju+k_-h0*$T#2LQZY^cG7Siu= z-j1|lr@Etg(6nTVm;@BxznT`5*rcOc2L@l{?fsz=3R05rU{@gIRv#y(47FFa0-7EZ zK(i)+E>>4Qj#eB@z+-|6z?VaBi61m+wfBREm`X#o$w7FrU-y3a?e5iF+-HcGTy;v$ zQ|e*H3#U1fqNdW&EohAgDE#bh6L5be`g}%q@=>$V(U>@h0Q$A}F2L6i;0xWqkDyMC z_2-mxnNqnd?|DD!i_7ao1WB^YV0W`2ZsWP^PW<9PZp)-e7gVU*(zf9nS_Fz93i&}V10IMlSkCkeX-N-z~?5% z^%|YDaws2*Z4(6x^p@uY2*4^`5ZkYl44~PN;6X@WsLL@B4{C~|l`>^5Wy5Kb3%v&A zb#DXoBOZ1jc<;As#bWsd4GC^AP!6Y-b|oOzp55rCBT=uar-Fjm9c%#PZ{VEJ;oGKW z^p-+ucV|07cYJJko8d5clbTZ3iprg58ecDbp$ok=2jZSYuhH0$5pd5Q+5q;=?zaLE zMdDcX0$*|Rx&zAK#gg?AHbc8-I+c>XM4DAQw_es&NbtTO2b!KxWGJ1yh=Yqc`j8P8 z@;tmKF*qlT_Xe@Wo!j0~qTi22kZUbNGB|T1~o`*spUb zDTnyg4GSgUE_Dcp@g1J`Gjr`963+&QVZ-v?)?`uQfhkwi0N3CIc)`@t+NZlto+NW5*;0L4*I=@%XTtMYf-qI!iJs+nvT99YjJlFZzrH@8qq zztqiNc1f45Tr`#Q?O=#Z!_o4JYwkq%HRhDEHuOZIkNd>~1M6SaL#$o6-{r#)TSkPp;+`etTg>iUd z?>#AvSluR);ji>Zoz&S3f|>O`Byv?R23-rvT`Fyv+7BQN1CfHp*K(qY-@R_LIL@{C zARB6vwz1{hmA<>Ig>HBg>C2J@sMfhmP~KcGppKi9eFs0cLKUBrA|a?EHPzEz~-ZL1-4JtXI15&M;?z>c(3 zyZm8TlilRTS7m@O&V3<&)f7zWJpRh1pxkuWB#djEcUnrbrd>^6iT?N&iJYi}9L^BF z0;Ps$1U!8;0-R3?av#y^75NKR-FW=I6@k8p!}Yb>(ddPFs-^cs*> zUH#`C?l+lfF?pP0+fJ)ulsTj6=UcEYVHr-NpY27F`6Y4@_n#lydU+v~L?)V+${XO6 z#8Kel45qwa`+`JUjY_W?2_T@XG(JMmeIqOiAlfuxyk6>`bb4-6V3Z(=!4CqgBCPx*c&2gQ%m-wk*{BGbdANJn7%-k+&3 zZuhAuAH+fZtm$L5>wS2Z;W}^1=p*qkZ{RKso(JMhaV8H&@$;UBy#CB37D5w9@aX)F zz6&V!vtp+&FBG*#2%wVU4m98IUVZh(AO&fqky4i#z279I#k8?mdH;dp<%$@#f!*<= z?(#_jo>@@{J&36mCM*_AbGTf@rJ-oqCZixUmZRmSa3f~qIf(dn!&^-^v< zFn0~_saN{Gbph1-Xs`lMK<(?+h25QMwKu`7GU2HdVi>?RBTdD1);mRBC45<+x5`@n ztvf8WsoD`1M(gS94%az?;qo-a*Mzuu`>!RLe*XGI@(j&H40Df7#*?jj)9}~FLorXb8S66fSu6w@`vimsb zUaRkI-W4}f@BQ$RI=|L@2fetC-u3nkh$NSsO6mM;Z?BZtf?l}9Os%w_bN>nC$%}6l zCnRuCxuS^pzg^dHUwi-cx{eb6-#G%^$vsTppCRx4M@hcbD#Ay>4+4 zQZPUI`3EA`S9G|}~u$NQ(EK{m=x#+XA?7bbt zf=1lt_dv*=Xsi8((0pM0hD{%>0$p(Yjc3SIr`1n=n)j?bdJLXBFzdfeL(Xv-Q@pCa zT${NOB;_(w$9u?H*k5at4Zj`i*~+&<%Wuk1|c>Jp^bCeJ`KmuP9!W8 z$8v{rbGx=MQD-KEWTk^neynV*Y>lp-9PMplg7=Tx_j?8h*EYH)GbYW2*sC5jFFjei z;#@mh^Qj`yJ)0)TjKyxhp7#k^kTq>fzSHFmlKtx9J%S^RPl3_L{j(y66vOkQ+h8r$ z`c+y{i!aNXwkL%3KP*N2v*fcT;e6TqHMU$x!=2&4hgo5SHF%@e z;)7j=8EoIKuBee=6E7Lvlo0roJ;YkIxH{AVM#DB2=Gs`xA8ZE{-M$?O7RMefX}t3i zNfhje_Zpg+A?h}Zxg9RM;XJu|ZnyvbKbA$%9}<(m%1yv7LK;AVk%6`XfolJ z^V@3=!o;q9xs%Jb7Tv?_>c)8Z_076MX+RjsCu}t)TG7tuB>~E7M*G^+<}C)+G*b() z`JFO`i9{A>Yrh-k7$72Mw+nqyz|9WC^Ca;R<>6B;K|+zjk%yc_Y1d&$&v z;-;gK<@^4#TPfo0{BgA}r&j_VC>#$+JQe&do0Uu_b zy)b!5<++2P2&0MM&I2EB>gUix211eB#z|J1;o4|wFP1{fc?6kok{+DqE+OMPu0>5- z`DkHM+l$YkXhy>OT`bpJ2Q+Qz3d9|4MaZPG5y($>30ZqAC9jA(`LfR;y{qnh+U79$ z9@y11sqm7UH#_y?yT}1)S>b%o;bRZU{3Cta6EcfwUWUL%>K10jvq&y!UDVPP%LUX{ z(YV-yUUoVbh(p8Y$I-My$gZaGeq1N=N z9F@(M9UsGw)W~QPO#MQ3Qi%6zxv4IdAL*BlP$ewx>WJczl)<@#t1K^#foD?ax^p9v zKi!SrCSrIhGFnmf_9Q{Sn&6%6|t!Sap-HahFcrZ8b;z`)--a z#l6q;8r*I|o*|*?7qOduY-wEP58r-xmQPI=sjdq*Y!25YAyMb%;!Vr5EQut{r>2FZ zRYDCF!u3hW6u5aAE?UW#5D*qoCzOgimPAG^eqg$2750b#t;j6^PiuTJAYk>)-Ki_J zmna+Q7yq>9TWR_VOC~9;wz^Cg9_bO)g)o}bX^E8GBAWy0wW<+xi-wUUrQ@QUPZc34 zk92kev4t|RFBQptOE^Bqx<>i5s+&V1xu8`T`;&b9(PTQ_>`k|0Dfj#40*kItp)Stg zM^_Gs1+2=-ln6Ub70nH1T>-2K|Q@#+J7QXav&OYO$K zfgYT8j91q+o=O)LOB;4Fu|9m$wZSl{Pxn1AuWYxwTeUMFIQV61f8XaB{8U0u$45JQ zSJN%*hXt5Bt>t;i2o;S5h%w1|smkH{bfnSGj3_%5nsn*N6pXoeF;AhXQQ`Rlbdk?= zbvvhP0-giou@hxLPv$c?GPM)VQR0y9_=5KzY_QIjam)S!vt{M4y!W>DGzt< z9C6w%v0W2mxP)7$aWLQW6O`Bpgj7Auu;2@7(^9c7B65bc+X~|5)_MIw6vfjop;d?a zUv(uY30uO9tc^St<)f?408Xn@Y`^o6o>QU@bGgd|fRmhrq`*>*QUjtzAw86|2}EX$ z=PpRApe5{rpz~hQRWU9BweV-qG+v$4ap+V{jOU{NkJOrvQ;jLgWl!UGFWpE{l zDofcuaMTRlL@sBi!6HXUwUR@A7wpC3^F#_*a!TtctImAF(J4BH+$y(Y7J~`*cnVF2 zcU`y@6s>TJko1vU$&Z&!TOoKvAUzK$)W2PvaSu8D_2Mjn5dL4k>+DK6FGd-?vq5V| zavN1|@sjul_^vdEeXLvx0Uq`AihHe@_@!|PyNHsIuhR{q50`J3P8f!C$z&S3ROq<0 zePCissGhiq4R-%h*qSNVB<7z#L8o?EJZ$d;4)t$eV5G;7`B zrf2`XY`ZY6>IEI?nVC<%bL}JbA;&XI4;L_f4-qYGtT)jS%&LqEm-{!lWK1uA;No*5 z6IB$HtFg~N+G?hYlsyp)DU{p4x%2)0c1&T1<-38mZO4zbiX)GlY+}fu#bEF4JNHRe z!hG=wc~<8aZ%XwClEtxI?kdify>nG7)T?)MWwIe8cyIT|-a?2>-O+gc(czEPTnqD) zgTpx*?Z;w~z9KiyIAi(Nrk>WW{zV{F5i>{hOCtmHa(*^GLFv5_1$TWwmr=-a`f*yu@Op zZ;oEmw0PMz<)J-0Wf#qiy7)${zqd6u%d@QtWv6+Q z#@alKVP+sQGvh*AjfkBlKMh)EvW{~;D$c!7%j<2G5aN9&D@+6X=2?3w^~@_i_F3h) z^|6$RbbR000+w*!0nyCW!}Vuxg_hV#x%gEA^%{NOCJy>Mh}WP_9QAcqRmk28e<3hI zDy_^i_Q{qoUle#=g~7G3yuC_65Gu0@E%zUEB{o@(n)`7agCdKpW-&4P7N<<&^0-iE zj#5FOn9d#bboM2yWsE6yw;#VlDQ)O( zT|^aqVu)bWnQ!u8&lbK~>wIkXN^x+7uorc|nRc@7brmdT{tBPoAnG(*;eR4+?Lw>O z`NZE@o1|ZC~iM4OseS6j@C{ zBomuLmF`4de6B2Jt;}q{Qzn5hpc=ue+h%5rMF?rJ1&;*?U)ArIg@s8v-gbzR1WXPS z9_(T|8q2#vp1jw?LE#z(&qEh?cnhZ2lQaJYt7>474}lUNZmjr4 zh0`laeGlcun<|)cUANYSz9R>_v9$wpWzN?0=z)E1DYy`@hNHS&DzlE^r{IjBtr^N5N_tP7syZ& zY|F=i+RM){6|h3hHgze)E|~|5HBEOXxFC2d&mK|kXoWSoro$y&q(7eB%53&Oi&?`9 zAc(NYZ?BWI*;G_~8w`aX%17n3mlN*i(?PSVKOTQS)3M}=-(homn`iOt3iMcBVE61r z0y!7Kj}$LMcMGC^_{u7Vzq!w@p*E5uCs!2#L7~GNjpZP(#NVPV8F^` ziVlbN1g-tnxJ9>Yl%)%&VBDR6&pbaAv7**tYPwLk<8r7^3BX7?RW`~v14^=u?DVL& z2wBmA_iZZ15+G>$1S~s8B=gSSKtye@cIFn8T{?75nltluS#OUOJ)&ff&%`77L5OxH z|48l)nyQQP;bB~6_2svg$ZDC^2K9MG1d1wzsV2dQ9UVh$EAijb3#MLDHu62(S#+O#3rlV`SGv!&vYQH6B$P%HL3G)BZcBLlxZ6cB1D~Wr04H_%glxZ9?Z$ zZ!a%@n7Hk*b=Oei)ev=+~?pN0Xn_%CHR9OYs`M zzHA$&8Gy7W5HI!*mFu}ar|Bi+>}Y@>>Hx#=P^99 zQ!OG63o{(9_@1uq_2pj+3JdVx3-lSUO<6zIea{rpl!8$54x`ZDA1Y1injy=pV=+lO z*KPV{HT>e6k;-P^T7as(H($FV+9qHhk7%4hC`I+Yn2`=JRGU0|B1`z}ETN=MjNBEJ z%M1Q8|N0M%4`?AmA?jXEW35iUVK<415@V9K`V}e$*h*H{p4O{Za2ik6^&bfFFrJyi ztPZS8KFPG0|Kv33E8$6;kPBh|s^(WtL-G)4vncIcX8Zm*S5|0}+7(k8o?YCF7@Jk5EL8HVj zqKb*~y8J#whvoi6k4^IM2I|$PvJ>eBU0V-^X}}=(;rgABn_!MIy3nA6NIVc0(sjnN zL9CGygxx!%7q&H>K@{rz;7E-W4yhmy!RYb`k`p=EaL?WjH0H-577DKcEVgL`K+N(a zQ`rxL`Ov{{vwh7;K#jzeBOnUJVx3n()IOg*2Ml3-;7~nPoiY%!#6|o@WC`BAQ7#ZO zkm>_`!B|P$NF?^G4+J7QDo-N9M>-i2f#5$z1o1lDJ{Zy})om;<#%68|^W!xlFRnzw zi7Yt{F(44<`|By8@y9=?0OEo5lsx7wKle~}5JRh<1KhHZEx-x{D*S*WF-ilz-E_XM zKr*zZ#|Uc7E94<3iedls(9DGSWnm6~u}v}^2=euNQBx@S{s9j;s4F&|;yMToMh0F1 zSRVp<4CUc-l7lSY&cK$kh{ijLN%3ax_gvt9@A-Z&H4Oy9zD8<*kP24-sB|Mtq7Wcv zFUtpbAV`CcR;bIzS`%W1)j$)|XvD%&r5YZHp(>@%vQb4>0kyF7Tr7hb-91`H0J8jO zq3-}+Bsy{}ZwA1xx@rnS-lFbQ4rXJ=O0Yer203wlyr#&2U)g&W3kQWx4SJ9@MjM3J zcC2nhxc3;i-j9NU7>1Pq(>bpJ;1oVNPZJvdAkwS5Jtz=9FLlJ840vj>MlAx5`Lmn` zfV#sxylxXLR->o%)0ZPdK4cK$|xfY8DN??EnpUYlrD2mkoey49R5 zvcBlCDUcVcH)^9RuOegH%2;P)_T9nz#m(l9FMOKdb2givhQ*;&eKxxJD#YE-Lm~Ba zU1BskLPmJ4@Mn%67>c2VEYGJQ=7LXls_vtwAvrBv0A=d=+g#9ycAHnW(^J{0e3rYy zjD|`1j&`@KI&@CwycT<2iCH7D_!yiJC*ntvA{WK9G$zsgh0plOT|ci!0d%^J#2Dcc zC?^}hydDXN94r@Ug%>QVd?~A|wM7ZE`40R{rVA>2s=H(c%VN!25 zk25I)x;I`viV5TW>Q1PX-_W+1gx&NruH?P+Cda2{BI{l<4hD@K&VUHT35xqsf)PBo zKS{52+vzYcN=07IQ;5Had+22Mp1`1{86EI2a4Y=KCj#0+Ycq@1&Tevi2CxWt52!Ab z?s!3nj9QwE*YYir(XgcV5W(C1WhUDautSmuL&`9d2PZmb)4`8?UOCq^=&sLOTyhGO z3gyR zQ0Zrlfdu7#ppuygM+x#)-Q9g^Wq?=s;9XugWSEcBiBakdfK|nTS20*cGew?|u{~Xj z5KDO>f>dmlbt3*LJ$yFw8KBRDAYB6l7OBmP)Rb3|ux(?ky8z5{6|(IClQM8?5}msd z+0Tf_X!b-l+VKKwcO0NjW~5tF*ItQ4M8)$;bEf+_qUTzYV1}G-GX9(0zOAu&Vn$_m z{iJfA@mZ!`=B1aawLuB{-M~fO5Bhk(*Y@sp56AmE85qZ^0eHz@saC6lg=@xYAppSX zoPfh2h1e{5W?VdZ0`YWv?p|D1NaJ^7IXrZ>UmM_%x||eYLah5DV+5&iGeQ6WxdRP= z?9tDR2XueIb$23Q-CriGLv$|1t8aYq4?OqGl2q*0HzO`Q#=3KWeTfSXH1W_Z>1_a7 zA}CzYz!E||1bluPj{QJ5YP)di%11k8iRm`Rp31sU zBSMHx!nx!1;9ZA_nlO=f`$;{bMq}E}&Bahf@iy98DqBu7Mvtf$M5GMf)L+k6cr?kd zBJ9@2E`*T^dpQE?r2)>yP7ic8r#H&?E2#Io%xCJD+>n`!^X8JthlGL zw%eoC1|^XivnS+(no_-$B@8MIzK(#yqw6+A$V`b`TY=32BVA_);CBzFQn+k!E2Ejq z0^o9?#0uOR>_|z1)qFFtNr2?^aRJsz0~>@C5rAZdYYWaboT&g*^2aKPcT5hj}t$q62gA-How<2M|h*gb~?FOnGoV1Vgh)3b{_*cZnm}y z5T=JS+o%h-i9K}JLty*2Y#;_D?1L*aaarK#x`A?FDJ)R96J?x5wE)^jAp*ND<*uDC zU&aM=*TdX%z&;?}4unBkBLkp%sWmPn?w__NACEKe`k?8A{0j9Ph!USuRzP0e@I`+k z#C`-o6E2|8+~{t3+d|kQinwTr&5A?dLdwW^=tnnCATAJ}yX`#^r*q10L$Py`bX+=1 zbC%xh$@6hwi*BnKVgNY&K=7G;NA+hz+wFCpjE35(5wUaw}v^O=kG~PAX zqjT26TqY!F=b1poM7@->fNV&BdGP*zU0KljQB(Vw1|iw{0JG-TFEPf!z$vO_I>Tb3 zo_;XoV0Un3YsPs`Cln7vKFOZ{Zx_g4Dar<380V`{6mVVz@?f>CoH4(0VSx?DUwI;FXWaj>)Zf{Mc7xP)^%Af;OvhD$%j z1|&2C8Mp{I9C;lk|C3Sz4qT4`0V-C`4o?2Or}?*hFhwgjwV&+8frp`uert;%#C~Rs z<0kydbcS69^2Z&}@-B8x7%2Q#D(-3a^v_Szb#%3W+6p?lP+Kb}PYle}?YG8h0`DJL z*DwS5-}()-pl~6$@GoA!vU;_>ojrl{^V5{_KUHSHz5gl80H*Y7-mj;-6)@&y4e5Gk!gH_j`i3k(TD~IsPJIBH}+e{GL?*>&`_=*3Zof?TGP$ zT4U@ST%&7PDvos-o_h^ z@sN>6d$?L#c|nyNJiQ#8fHDtIaUr;n7?c-C?6z_B_2iSnG5JORn{+7{PNhGocxwOu z57qsw-2TAmFRB9rfa>tSst$BYDgxCSfLac~pA4{eP=auzAY8%_fs#asNFs#!;lh$| zxD@Pfl)pfe`eVe^!_d{$Nk-S;v^;>Akd2cQ^eV=~69+g@MnOpUPh5VZ{TmxCAP3&o z|36XXPn7@H2-=|k0MO0b!|61{Y|t=_6UG@=@c{r4@mCOS(2};eJ;boXW4(9dMf*Ga{ez@gO=7G?)=yF;OzWYZvx@0r6sB4 ziuT62`?8XZx3`0hBpiXU5*HV-7PPU&SPO~@TZ;%7mk_i;SPNUDfO0y*!ZyG2 z{nOn4XUzXZ57;(=trzyk-un-4;ezh}{O6a!|L3fKG5oKPUs(JHt^dOHAAt0W+}ZHPm|{G1A! z0JxRK-H-DsN#YI%a3ov;0Tj$TJs0r6;XHgWd2cU!R}Ws`o)0)v|GZt~{hyBje7Krq zrza)e|LLS;_WM!EjE@fn+~5Ac#T(-8qb8l R>ixMU9|Bio@wcjc{~vDTuQvby literal 0 HcmV?d00001 diff --git a/02-SplineInterpolator/Simulation/sineGen.do b/02-SplineInterpolator/Simulation/sineGen.do new file mode 100644 index 0000000..df337bb --- /dev/null +++ b/02-SplineInterpolator/Simulation/sineGen.do @@ -0,0 +1,36 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /sinegen_tb/reset +add wave -noupdate /sinegen_tb/clock +add wave -noupdate -format Analog-Step -height 30 -max 1300.0 -radix unsigned -radixshowbase 0 /sinegen_tb/I_DUT/phase +add wave -noupdate -divider {generator signals} +add wave -noupdate -format Analog-Step -height 40 -max 66000.0 -radix unsigned -radixshowbase 0 /sinegen_tb/I_DUT/sawtooth +add wave -noupdate -format Analog-Step -height 40 -max 66000.0 -radix unsigned -radixshowbase 0 /sinegen_tb/I_DUT/square +add wave -noupdate -format Analog-Step -height 40 -max 66000.0 -radix unsigned -radixshowbase 0 /sinegen_tb/I_DUT/triangle +add wave -noupdate -divider sinewave +add wave -noupdate -format Analog-Step -height 80 -max 43200.0 -min -32800.0 -radix decimal -radixshowbase 0 /sinegen_tb/I_DUT/sineSamples +add wave -noupdate /sinegen_tb/I_DUT/newPolynom +add wave -noupdate -radix decimal -radixshowbase 0 /sinegen_tb/I_DUT/a +add wave -noupdate -radix decimal -radixshowbase 0 /sinegen_tb/I_DUT/b +add wave -noupdate -radix decimal -radixshowbase 0 /sinegen_tb/I_DUT/c +add wave -noupdate -radix decimal -radixshowbase 0 /sinegen_tb/I_DUT/d +add wave -noupdate -format Analog-Step -height 80 -max 76000.0 -radix unsigned -radixshowbase 0 /sinegen_tb/I_DUT/sine +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {0 ns} 0} +quietly wave cursor active 0 +configure wave -namecolwidth 250 +configure wave -valuecolwidth 52 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1000 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ns} {52589 ns} +run 50 us diff --git a/02-SplineInterpolator/Simulation/waveformGen.do b/02-SplineInterpolator/Simulation/waveformGen.do new file mode 100644 index 0000000..ce4b33d --- /dev/null +++ b/02-SplineInterpolator/Simulation/waveformGen.do @@ -0,0 +1,30 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /waveformgen_tb/reset +add wave -noupdate /waveformgen_tb/clock +add wave -noupdate /waveformgen_tb/en +add wave -noupdate -divider {generator signals} +add wave -noupdate -format Analog-Step -height 70 -max 66000.0 -radix unsigned -radixshowbase 0 /waveformgen_tb/I_DUT/sawtooth +add wave -noupdate -format Analog-Step -height 70 -max 66000.0 -radix unsigned -radixshowbase 0 /waveformgen_tb/I_DUT/square +add wave -noupdate -format Analog-Step -height 70 -max 66000.0 -radix unsigned -radixshowbase 0 /waveformgen_tb/I_DUT/triangle +add wave -noupdate -format Analog-Step -height 70 -max 66000.0 -radix unsigned -radixshowbase 0 /waveformgen_tb/I_DUT/polygon +add wave -noupdate -format Analog-Step -height 70 -max 66000.0 -radix unsigned -radixshowbase 0 /waveformgen_tb/I_DUT/sine +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {0 ns} 0} +quietly wave cursor active 0 +configure wave -namecolwidth 272 +configure wave -valuecolwidth 89 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1000 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ns} {525 us} +run 500 us diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCalculatePolynom_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCalculatePolynom_studentVersion.vhd new file mode 100644 index 0000000..775bf7a --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCalculatePolynom_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF interpolatorCalculatePolynom IS +BEGIN + sampleOut <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCoefficients_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCoefficients_studentVersion.vhd new file mode 100644 index 0000000..f213fce --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorCoefficients_studentVersion.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE studentVersion OF interpolatorCoefficients IS +BEGIN + a <= (others => '0'); + b <= (others => '0'); + c <= (others => '0'); + d <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorShiftRegister_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorShiftRegister_studentVersion.vhd new file mode 100644 index 0000000..428b0ab --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorShiftRegister_studentVersion.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE studentVersion OF interpolatorShiftRegister IS +BEGIN + sample1 <= (others => '0'); + sample2 <= (others => '0'); + sample3 <= (others => '0'); + sample4 <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorTrigger_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorTrigger_studentVersion.vhd new file mode 100644 index 0000000..9dd7350 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/interpolatorTrigger_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF interpolatorTrigger IS +BEGIN + triggerOut <= '0'; +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/offsetToUnsigned_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/offsetToUnsigned_studentVersion.vhd new file mode 100644 index 0000000..360c161 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/offsetToUnsigned_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF offsetToUnsigned IS +BEGIN + unsignedOut <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/resizer_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/resizer_studentVersion.vhd new file mode 100644 index 0000000..3d675a6 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/resizer_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF resizer IS +BEGIN + resizeOut <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hdl/sineTable_studentVersion.vhd b/02-SplineInterpolator/SplineInterpolator/hdl/sineTable_studentVersion.vhd new file mode 100644 index 0000000..3d6518d --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hdl/sineTable_studentVersion.vhd @@ -0,0 +1,27 @@ +ARCHITECTURE studentVersion OF sineTable IS + + signal phaseTableAddress : unsigned(tableAddressBitNb-1 downto 0); + signal quarterSine : signed(sine'range); + +BEGIN + + phaseTableAddress <= phase(phase'high-2 downto phase'high-2-tableAddressBitNb+1); + + quarterTable: process(phaseTableAddress) + begin + case to_integer(phaseTableAddress) is + when 0 => quarterSine <= to_signed(16#0000#, quarterSine'length); + when 1 => quarterSine <= to_signed(16#18F9#, quarterSine'length); + when 2 => quarterSine <= to_signed(16#30FB#, quarterSine'length); + when 3 => quarterSine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterSine <= to_signed(16#5A82#, quarterSine'length); + when 5 => quarterSine <= to_signed(16#6A6D#, quarterSine'length); + when 6 => quarterSine <= to_signed(16#7641#, quarterSine'length); + when 7 => quarterSine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterSine <= (others => '-'); + end case; + end process quarterTable; + + sine <= (others => '0'); + +END ARCHITECTURE studentVersion; diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCalculatePolynom_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCalculatePolynom_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCalculatePolynom_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCoefficients_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCoefficients_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorCoefficients_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorShiftRegister_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorShiftRegister_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorShiftRegister_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorTrigger_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorTrigger_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorTrigger_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcalculatepolynom_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorcoefficients_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatorshiftregister_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_interpolatortrigger_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsetToUnsigned_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsetToUnsigned_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsetToUnsigned_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_offsettounsigned_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_resizer_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sineTable_studentVersion.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sineTable_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sineTable_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinegen_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhd._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/.hdlsidedata/_sinetable_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcalculatepolynom._epf b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcalculatepolynom._epf new file mode 100644 index 0000000..56741fd --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcalculatepolynom._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom interpolatorCalculatePolynom_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcoefficients._epf b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcoefficients._epf new file mode 100644 index 0000000..0361627 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorcoefficients._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom interpolatorCoefficients_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorshiftregister._epf b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorshiftregister._epf new file mode 100644 index 0000000..5ff59f7 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatorshiftregister._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom interpolatorShiftRegister_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_interpolatortrigger._epf b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatortrigger._epf new file mode 100644 index 0000000..c5b0ad1 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_interpolatortrigger._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom interpolatorTrigger_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_offsettounsigned._epf b/02-SplineInterpolator/SplineInterpolator/hds/_offsettounsigned._epf new file mode 100644 index 0000000..62b5327 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_offsettounsigned._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom offsetToUnsigned_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_resizer._epf b/02-SplineInterpolator/SplineInterpolator/hds/_resizer._epf new file mode 100644 index 0000000..1693d2c --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_resizer._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom resizer_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_sinegen._epf b/02-SplineInterpolator/SplineInterpolator/hds/_sinegen._epf new file mode 100644 index 0000000..6851f1a --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_sinegen._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom sine@gen/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/02-SplineInterpolator/SplineInterpolator/hds/_sinetable._epf b/02-SplineInterpolator/SplineInterpolator/hds/_sinetable._epf new file mode 100644 index 0000000..4501d06 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/_sinetable._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom sineTable_studentVersion.vhd diff --git a/02-SplineInterpolator/SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb new file mode 100644 index 0000000..1b614fd --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb @@ -0,0 +1,1938 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 214,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 215,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 216,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +uid 217,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +uid 218,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 219,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 220,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 221,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 222,0 +) +*10 (LogPort +port (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +uid 223,0 +) +*11 (RefLabelRowHdr +) +*12 (TitleRowHdr +) +*13 (FilterRowHdr +) +*14 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*15 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*16 (GroupColHdr +tm "GroupColHdrMgr" +) +*17 (NameColHdr +tm "NameColHdrMgr" +) +*18 (ModeColHdr +tm "ModeColHdrMgr" +) +*19 (TypeColHdr +tm "TypeColHdrMgr" +) +*20 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*21 (InitColHdr +tm "InitColHdrMgr" +) +*22 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 224,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 147,0 +optionalChildren [ +*25 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 150,0 +) +*26 (MRCItem +litem &12 +pos 1 +dimension 23 +uid 152,0 +) +*27 (MRCItem +litem &13 +pos 2 +hidden 1 +dimension 20 +uid 154,0 +) +*28 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 173,0 +) +*29 (MRCItem +litem &3 +pos 3 +dimension 20 +uid 174,0 +) +*30 (MRCItem +litem &4 +pos 4 +dimension 20 +uid 175,0 +) +*31 (MRCItem +litem &5 +pos 7 +dimension 20 +uid 176,0 +) +*32 (MRCItem +litem &6 +pos 2 +dimension 20 +uid 177,0 +) +*33 (MRCItem +litem &7 +pos 8 +dimension 20 +uid 178,0 +) +*34 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 179,0 +) +*35 (MRCItem +litem &9 +pos 5 +dimension 20 +uid 180,0 +) +*36 (MRCItem +litem &10 +pos 6 +dimension 20 +uid 181,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 148,0 +optionalChildren [ +*37 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 156,0 +) +*38 (MRCItem +litem &16 +pos 1 +dimension 50 +uid 160,0 +) +*39 (MRCItem +litem &17 +pos 2 +dimension 100 +uid 162,0 +) +*40 (MRCItem +litem &18 +pos 3 +dimension 50 +uid 164,0 +) +*41 (MRCItem +litem &19 +pos 4 +dimension 100 +uid 166,0 +) +*42 (MRCItem +litem &20 +pos 5 +dimension 100 +uid 168,0 +) +*43 (MRCItem +litem &21 +pos 6 +dimension 50 +uid 170,0 +) +*44 (MRCItem +litem &22 +pos 7 +dimension 80 +uid 172,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 146,0 +vaOverrides [ +] +) +] +) +uid 213,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 226,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 207,0 +) +*58 (LogGeneric +generic (GiElement +name "coeffBitNb" +type "positive" +value "16" +) +uid 208,0 +) +*59 (LogGeneric +generic (GiElement +name "oversamplingBitNb" +type "positive" +value "8" +) +uid 209,0 +) +] +) +pdm (PhysicalDM +uid 227,0 +optionalChildren [ +*60 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *61 (MRCItem +litem &45 +pos 3 +dimension 20 +) +uid 183,0 +optionalChildren [ +*62 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 186,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 188,0 +) +*64 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 190,0 +) +*65 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 210,0 +) +*66 (MRCItem +litem &58 +pos 1 +dimension 20 +uid 211,0 +) +*67 (MRCItem +litem &59 +pos 2 +dimension 20 +uid 212,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 184,0 +optionalChildren [ +*68 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 192,0 +) +*69 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 196,0 +) +*70 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 198,0 +) +*71 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 200,0 +) +*72 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 202,0 +) +*73 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 204,0 +) +*74 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 206,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 182,0 +vaOverrides [ +] +) +] +) +uid 225,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@calculate@polynom" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorCalculatePolynom" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "interpolatorCalculatePolynom" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "interpolatorCalculatePolynom" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@calculate@polynom/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorCalculatePolynom/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:14" +) +(vvPair +variable "unit" +value "interpolatorCalculatePolynom" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,24625,37000,25375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "38000,24400,41400,25600" +st "clock" +blo "38000,25400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,21000,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*77 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,26625,37000,27375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "38000,26400,41300,27600" +st "reset" +blo "38000,27400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,21000,12800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*78 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,18625,37000,19375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "courier,9,0" +) +xt "38000,18400,47100,19600" +st "restartPolynom" +blo "38000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,21000,13700" +st "restartPolynom : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*79 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 140,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,16625,37000,17375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +font "courier,9,0" +) +xt "38000,16400,39300,17600" +st "d" +blo "38000,17400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,30500,14600" +st "d : IN signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*80 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 110,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,10625,53750,11375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "45800,10400,52000,11600" +st "sampleOut" +ju 2 +blo "52000,11400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,31000,15500" +st "sampleOut : OUT signed (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*81 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,14625,37000,15375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "38000,14400,39300,15600" +st "c" +blo "38000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,30500,16400" +st "c : IN signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*82 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,12625,37000,13375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "38000,12400,39300,13600" +st "b" +blo "38000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,30500,17300" +st "b : IN signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*83 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,10625,37000,11375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +font "courier,9,0" +) +xt "38000,10400,39300,11600" +st "a" +blo "38000,11400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,30500,18200" +st "a : IN signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +*84 (CptPort +uid 141,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 142,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,22625,37000,23375" +) +tg (CPTG +uid 143,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 144,0 +va (VaSet +font "courier,9,0" +) +xt "38000,22400,39900,23600" +st "en" +blo "38000,23400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 145,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,20000,19100" +st "en : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,7000,53000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "37600,29800,47100,30700" +st "SplineInterpolator" +blo "37600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "37600,30700,52100,31600" +st "interpolatorCalculatePolynom" +blo "37600,31400" +) +) +gi *85 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "37000,34000,53000,38500" +st "Generic Declarations + +signalBitNb positive 16 +coeffBitNb positive 16 +oversamplingBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "coeffBitNb" +type "positive" +value "16" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*86 (Grouping +uid 16,0 +optionalChildren [ +*87 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*92 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *97 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*99 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,37,1394,976" +viewArea "-1062,-1062,74600,50259" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *100 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *101 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,19100,2500,20000" +st "User:" +blo "0,19800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20000,2000,20000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 250,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/interpolator@coefficients/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@coefficients/symbol.sb new file mode 100644 index 0000000..b687437 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@coefficients/symbol.sb @@ -0,0 +1,1933 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 220,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +uid 221,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 222,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 223,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +uid 224,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 225,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 226,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 227,0 +) +*9 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 228,0 +) +*10 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +uid 229,0 +) +*11 (RefLabelRowHdr +) +*12 (TitleRowHdr +) +*13 (FilterRowHdr +) +*14 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*15 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*16 (GroupColHdr +tm "GroupColHdrMgr" +) +*17 (NameColHdr +tm "NameColHdrMgr" +) +*18 (ModeColHdr +tm "ModeColHdrMgr" +) +*19 (TypeColHdr +tm "TypeColHdrMgr" +) +*20 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*21 (InitColHdr +tm "InitColHdrMgr" +) +*22 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 230,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 155,0 +optionalChildren [ +*25 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 158,0 +) +*26 (MRCItem +litem &12 +pos 1 +dimension 23 +uid 160,0 +) +*27 (MRCItem +litem &13 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +*28 (MRCItem +litem &2 +pos 6 +dimension 20 +uid 181,0 +) +*29 (MRCItem +litem &3 +pos 3 +dimension 20 +uid 182,0 +) +*30 (MRCItem +litem &4 +pos 1 +dimension 20 +uid 183,0 +) +*31 (MRCItem +litem &5 +pos 7 +dimension 20 +uid 184,0 +) +*32 (MRCItem +litem &6 +pos 8 +dimension 20 +uid 185,0 +) +*33 (MRCItem +litem &7 +pos 2 +dimension 20 +uid 186,0 +) +*34 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 187,0 +) +*35 (MRCItem +litem &9 +pos 5 +dimension 20 +uid 188,0 +) +*36 (MRCItem +litem &10 +pos 4 +dimension 20 +uid 189,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*37 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 164,0 +) +*38 (MRCItem +litem &16 +pos 1 +dimension 50 +uid 168,0 +) +*39 (MRCItem +litem &17 +pos 2 +dimension 100 +uid 170,0 +) +*40 (MRCItem +litem &18 +pos 3 +dimension 50 +uid 172,0 +) +*41 (MRCItem +litem &19 +pos 4 +dimension 100 +uid 174,0 +) +*42 (MRCItem +litem &20 +pos 5 +dimension 100 +uid 176,0 +) +*43 (MRCItem +litem &21 +pos 6 +dimension 50 +uid 178,0 +) +*44 (MRCItem +litem &22 +pos 7 +dimension 80 +uid 180,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 154,0 +vaOverrides [ +] +) +] +) +uid 219,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 232,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 215,0 +) +*58 (LogGeneric +generic (GiElement +name "coeffBitNb" +type "positive" +value "16" +) +uid 216,0 +) +] +) +pdm (PhysicalDM +uid 233,0 +optionalChildren [ +*59 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *60 (MRCItem +litem &45 +pos 2 +dimension 20 +) +uid 191,0 +optionalChildren [ +*61 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 194,0 +) +*62 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 196,0 +) +*63 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 198,0 +) +*64 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 217,0 +) +*65 (MRCItem +litem &58 +pos 1 +dimension 20 +uid 218,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 192,0 +optionalChildren [ +*66 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 200,0 +) +*67 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 204,0 +) +*68 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 206,0 +) +*69 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 208,0 +) +*70 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 210,0 +) +*71 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 212,0 +) +*72 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 214,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 190,0 +vaOverrides [ +] +) +] +) +uid 231,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@coefficients/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@coefficients/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@coefficients" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorCoefficients" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "interpolatorCoefficients" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "interpolatorCoefficients" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@coefficients/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorCoefficients/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:20" +) +(vvPair +variable "unit" +value "interpolatorCoefficients" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 145,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,14625,33000,15375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +font "courier,9,0" +) +xt "34000,14400,39000,15600" +st "sample1" +blo "34000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,29500,11900" +st "sample1 : IN signed (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*75 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 146,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,16625,33000,17375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "34000,16400,39000,17600" +st "sample2" +blo "34000,17400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,29500,12800" +st "sample2 : IN signed (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*76 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,18625,33000,19375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +font "courier,9,0" +) +xt "34000,18400,39000,19600" +st "sample3" +blo "34000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,29500,13700" +st "sample3 : IN signed (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*77 (CptPort +uid 119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 148,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,20625,33000,21375" +) +tg (CPTG +uid 121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 122,0 +va (VaSet +font "courier,9,0" +) +xt "34000,20400,39000,21600" +st "sample4" +blo "34000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 123,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,29500,14600" +st "sample4 : IN signed (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*78 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,14625,49750,15375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "46700,14400,48000,15600" +st "a" +ju 2 +blo "48000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,32000,15500" +st "a : OUT signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*79 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,16625,49750,17375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "46700,16400,48000,17600" +st "b" +ju 2 +blo "48000,17400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,32000,16400" +st "b : OUT signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*80 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,20625,49750,21375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +font "courier,9,0" +) +xt "46700,20400,48000,21600" +st "d" +ju 2 +blo "48000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,32000,18200" +st "d : OUT signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*81 (CptPort +uid 140,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 141,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,18625,49750,19375" +) +tg (CPTG +uid 142,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 143,0 +va (VaSet +font "courier,9,0" +) +xt "46700,18400,48000,19600" +st "c" +ju 2 +blo "48000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 144,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,32000,17300" +st "c : OUT signed (coeffBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +) +*82 (CptPort +uid 149,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 150,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,22625,33000,23375" +) +tg (CPTG +uid 151,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 152,0 +va (VaSet +font "courier,9,0" +) +xt "34000,22400,43900,23600" +st "interpolateLinear" +blo "34000,23400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 153,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,21500,19100" +st "interpolateLinear : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "33000,11000,49000,27000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "33600,26800,43100,27700" +st "SplineInterpolator" +blo "33600,27500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "33600,27700,46100,28600" +st "interpolatorCoefficients" +blo "33600,28400" +) +) +gi *83 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "33000,30800,45500,34400" +st "Generic Declarations + +bitNb positive 16 +coeffBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +(GiElement +name "coeffBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*84 (Grouping +uid 16,0 +optionalChildren [ +*85 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*90 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *95 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*97 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,38,1394,1005" +viewArea "-1062,-1062,74600,52062" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *98 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *99 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,19100,2500,20000" +st "User:" +blo "0,19800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20000,2000,20000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 256,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/interpolator@shift@register/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@shift@register/symbol.sb new file mode 100644 index 0000000..afcf1da --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@shift@register/symbol.sb @@ -0,0 +1,1846 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 188,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 189,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 190,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +uid 191,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 192,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 193,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 194,0 +) +*8 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +uid 195,0 +) +*9 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +uid 196,0 +) +*10 (RefLabelRowHdr +) +*11 (TitleRowHdr +) +*12 (FilterRowHdr +) +*13 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*14 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*15 (GroupColHdr +tm "GroupColHdrMgr" +) +*16 (NameColHdr +tm "NameColHdrMgr" +) +*17 (ModeColHdr +tm "ModeColHdrMgr" +) +*18 (TypeColHdr +tm "TypeColHdrMgr" +) +*19 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*20 (InitColHdr +tm "InitColHdrMgr" +) +*21 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 197,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 126,0 +optionalChildren [ +*24 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 129,0 +) +*25 (MRCItem +litem &11 +pos 1 +dimension 23 +uid 131,0 +) +*26 (MRCItem +litem &12 +pos 2 +hidden 1 +dimension 20 +uid 133,0 +) +*27 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 152,0 +) +*28 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 153,0 +) +*29 (MRCItem +litem &4 +pos 7 +dimension 20 +uid 154,0 +) +*30 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 155,0 +) +*31 (MRCItem +litem &6 +pos 5 +dimension 20 +uid 156,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 20 +uid 157,0 +) +*33 (MRCItem +litem &8 +pos 6 +dimension 20 +uid 158,0 +) +*34 (MRCItem +litem &9 +pos 4 +dimension 20 +uid 159,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 127,0 +optionalChildren [ +*35 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 135,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 50 +uid 139,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 100 +uid 141,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 50 +uid 143,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 100 +uid 145,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 100 +uid 147,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 50 +uid 149,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 80 +uid 151,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 125,0 +vaOverrides [ +] +) +] +) +uid 187,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 199,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 185,0 +) +] +) +pdm (PhysicalDM +uid 200,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *57 (MRCItem +litem &43 +pos 1 +dimension 20 +) +uid 161,0 +optionalChildren [ +*58 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 164,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 166,0 +) +*60 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 168,0 +) +*61 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 186,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 162,0 +optionalChildren [ +*62 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 170,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 174,0 +) +*64 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 176,0 +) +*65 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 178,0 +) +*66 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 180,0 +) +*67 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 182,0 +) +*68 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 184,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 160,0 +vaOverrides [ +] +) +] +) +uid 198,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@shift@register/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@shift@register/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@shift@register" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorShiftRegister" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "interpolatorShiftRegister" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:24" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "interpolatorShiftRegister" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@shift@register/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorShiftRegister/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:24" +) +(vvPair +variable "unit" +value "interpolatorShiftRegister" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,18625,35000,19375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "36000,18400,39400,19600" +st "clock" +blo "36000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,20000,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,20625,35000,21375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "36000,20400,39300,21600" +st "reset" +blo "36000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,20000,12800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,14625,35000,15375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "courier,9,0" +) +xt "36000,14400,43900,15600" +st "shiftSamples" +blo "36000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,20000,13700" +st "shiftSamples : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*73 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,12625,35000,13375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +font "courier,9,0" +) +xt "36000,12400,41400,13600" +st "sampleIn" +blo "36000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,30000,14600" +st "sampleIn : IN signed (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*74 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,12625,51750,13375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +font "courier,9,0" +) +xt "45000,12400,50000,13600" +st "sample1" +ju 2 +blo "50000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,30000,15500" +st "sample1 : OUT signed (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*75 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 110,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,14625,51750,15375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "45000,14400,50000,15600" +st "sample2" +ju 2 +blo "50000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,30000,16400" +st "sample2 : OUT signed (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*76 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,16625,51750,17375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +font "courier,9,0" +) +xt "45000,16400,50000,17600" +st "sample3" +ju 2 +blo "50000,17400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,30000,17300" +st "sample3 : OUT signed (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*77 (CptPort +uid 119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,18625,51750,19375" +) +tg (CPTG +uid 121,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 122,0 +va (VaSet +font "courier,9,0" +) +xt "45000,18400,50000,19600" +st "sample4" +ju 2 +blo "50000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 123,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,29000,18200" +st "sample4 : OUT signed (signalBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,9000,51000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "35600,22800,45100,23700" +st "SplineInterpolator" +blo "35600,23500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "35600,23700,48600,24600" +st "interpolatorShiftRegister" +blo "35600,24400" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "35000,26600,48000,29300" +st "Generic Declarations + +signalBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*92 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,28,1396,982" +viewArea "-1060,-1060,74589,51129" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,18200,2500,19100" +st "User:" +blo "0,18900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19100,2000,19100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 223,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/interpolator@trigger/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@trigger/symbol.sb new file mode 100644 index 0000000..5a5f514 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/interpolator@trigger/symbol.sb @@ -0,0 +1,1583 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 159,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 160,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 161,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 162,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 100,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 103,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 105,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*23 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 126,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 127,0 +) +*25 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 128,0 +) +*26 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 109,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 113,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 115,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 117,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 119,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 121,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 123,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "4" +) +uid 155,0 +) +] +) +pdm (PhysicalDM +uid 166,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 134,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 136,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 156,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 140,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 144,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 146,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 148,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 150,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 152,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@trigger/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@trigger/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@trigger" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorTrigger" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "interpolatorTrigger" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "interpolatorTrigger" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolator@trigger/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/interpolatorTrigger/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:28" +) +(vvPair +variable "unit" +value "interpolatorTrigger" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,9625,48750,10375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "40400,9400,47000,10600" +st "triggerOut" +ju 2 +blo "47000,10400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,19000,11900" +st "triggerOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,36400,14600" +st "clock" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,19000,12800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*64 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,15625,32000,16375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "33000,15400,36300,16600" +st "reset" +blo "33000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19000,13700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*65 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,9625,32000,10375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "courier,9,0" +) +xt "33000,9400,34900,10600" +st "en" +blo "33000,10400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,18000,14600" +st "en : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,6000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,42100,18700" +st "SplineInterpolator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,42600,19600" +st "interpolatorTrigger" +blo "32600,19400" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21600,45000,24300" +st "Generic Declarations + +counterBitNb positive 4 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "4" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-1,43,1395,998" +viewArea "-1060,-1060,74589,51194" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,14600,2500,15500" +st "User:" +blo "0,15300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,2000,15500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 189,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/offset@to@unsigned/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/offset@to@unsigned/symbol.sb new file mode 100644 index 0000000..af025f3 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/offset@to@unsigned/symbol.sb @@ -0,0 +1,1465 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 146,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 147,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 148,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 149,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 90,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 93,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 95,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 116,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 117,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 91,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 103,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 105,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 107,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 109,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 111,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 113,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 89,0 +vaOverrides [ +] +) +] +) +uid 145,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 143,0 +) +] +) +pdm (PhysicalDM +uid 152,0 +optionalChildren [ +*44 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *45 (MRCItem +litem &31 +pos 1 +dimension 20 +) +uid 119,0 +optionalChildren [ +*46 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 122,0 +) +*47 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 124,0 +) +*48 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 126,0 +) +*49 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 144,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 120,0 +optionalChildren [ +*50 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 128,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 132,0 +) +*52 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 134,0 +) +*53 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 136,0 +) +*54 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 138,0 +) +*55 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 140,0 +) +*56 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 118,0 +vaOverrides [ +] +) +] +) +uid 150,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/offset@to@unsigned/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/offset@to@unsigned/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/offset@to@unsigned" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/offsetToUnsigned" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "offsetToUnsigned" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:32" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "offsetToUnsigned" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/offset@to@unsigned/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/offsetToUnsigned/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:32" +) +(vvPair +variable "unit" +value "offsetToUnsigned" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "39200,13400,47000,14600" +st "unsignedOut" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,27500,11900" +st "unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*59 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,38100,14600" +st "signedIn" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,25500,12800" +st "signedIn : IN signed (bitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,42100,18700" +st "SplineInterpolator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,41100,19600" +st "offsetToUnsigned" +blo "32600,19400" +) +) +gi *60 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21800,42500,24500" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*61 (Grouping +uid 16,0 +optionalChildren [ +*62 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*67 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*74 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1,33,1390,980" +viewArea "-1067,-1067,74651,51029" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *75 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *76 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,2500,13700" +st "User:" +blo "0,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,2000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 175,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/resizer/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/resizer/symbol.sb new file mode 100644 index 0000000..18ecf86 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/resizer/symbol.sb @@ -0,0 +1,1486 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 148,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "resizeIn" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 149,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "resizeOut" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 150,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 151,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 90,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 93,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 95,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 116,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 117,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 91,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 103,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 105,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 107,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 109,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 111,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 113,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 89,0 +vaOverrides [ +] +) +] +) +uid 147,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 153,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "inputBitNb" +type "positive" +value "16" +) +uid 143,0 +) +*44 (LogGeneric +generic (GiElement +name "outputBitNb" +type "positive" +value "16" +) +uid 144,0 +) +] +) +pdm (PhysicalDM +uid 154,0 +optionalChildren [ +*45 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *46 (MRCItem +litem &31 +pos 2 +dimension 20 +) +uid 119,0 +optionalChildren [ +*47 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 122,0 +) +*48 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 124,0 +) +*49 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 126,0 +) +*50 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 145,0 +) +*51 (MRCItem +litem &44 +pos 1 +dimension 20 +uid 146,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 120,0 +optionalChildren [ +*52 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 128,0 +) +*53 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 132,0 +) +*54 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 134,0 +) +*55 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 136,0 +) +*56 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 138,0 +) +*57 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 140,0 +) +*58 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 118,0 +vaOverrides [ +] +) +] +) +uid 152,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/resizer/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/resizer/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/resizer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/resizer" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "resizer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:36" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "resizer" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/resizer/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/resizer/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:36" +) +(vvPair +variable "unit" +value "resizer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "41400,13400,47000,14600" +st "resizeOut" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,29500,11900" +st "resizeOut : OUT unsigned (outputBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "resizeOut" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*61 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,37800,14600" +st "resizeIn" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,28000,12800" +st "resizeIn : IN unsigned (inputBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "resizeIn" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,42100,18700" +st "SplineInterpolator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,36100,19600" +st "resizer" +blo "32600,19400" +) +) +gi *62 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21800,45000,25400" +st "Generic Declarations + +inputBitNb positive 16 +outputBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "16" +) +(GiElement +name "outputBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*63 (Grouping +uid 16,0 +optionalChildren [ +*64 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*67 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*69 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *74 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*76 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2,37,1393,981" +viewArea "-1064,-1064,74593,50708" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *77 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *78 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,2500,13700" +st "User:" +blo "0,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,2000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 200,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/sine@gen/struct.bd b/02-SplineInterpolator/SplineInterpolator/hds/sine@gen/struct.bd new file mode 100644 index 0000000..9351e5b --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/sine@gen/struct.bd @@ -0,0 +1,7266 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_square" +duLibraryName "WaveformGenerator" +duName "sawtoothToSquare" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 2908,0 +) +(Instance +name "I_tri" +duLibraryName "WaveformGenerator" +duName "sawtoothToTriangle" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 2925,0 +) +(Instance +name "I_size" +duLibraryName "SplineInterpolator" +duName "resizer" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 3584,0 +) +(Instance +name "I_sin" +duLibraryName "SplineInterpolator" +duName "sineTable" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +mwi 0 +uid 3601,0 +) +(Instance +name "I_saw" +duLibraryName "WaveformGenerator" +duName "sawtoothGen" +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 3673,0 +) +(Instance +name "I_trig" +duLibraryName "SplineInterpolator" +duName "interpolatorTrigger" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 3698,0 +) +(Instance +name "I_shReg" +duLibraryName "SplineInterpolator" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 3739,0 +) +(Instance +name "I_coeffs" +duLibraryName "SplineInterpolator" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 3784,0 +) +(Instance +name "I_spline" +duLibraryName "SplineInterpolator" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 3829,0 +) +(Instance +name "I_unsigned" +duLibraryName "SplineInterpolator" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 3846,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb3" +number "3" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds\\sine@gen\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds\\sine@gen\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds\\sine@gen" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds\\sineGen" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineGen" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:42:04" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "sineGen" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds\\sine@gen\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator\\hds\\sineGen\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:42:04" +) +(vvPair +variable "unit" +value "sineGen" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "1000,51625,2500,52375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "2500,52000,3000,52000" +pts [ +"2500,52000" +"3000,52000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-3800,51300,0,52700" +st "clock" +ju 2 +blo "0,52500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,7400,9300,8400" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "1000,53625,2500,54375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "2500,54000,3000,54000" +pts [ +"2500,54000" +"3000,54000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-4100,53300,0,54700" +st "reset" +ju 2 +blo "0,54500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,8300,9300,9300" +st "reset : std_ulogic" +) +) +*5 (Grouping +uid 51,0 +optionalChildren [ +*6 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,98000,123000,99000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,98500,106200,98500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "123000,94000,127000,95000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "123200,94500,123200,94500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,96000,123000,97000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,96500,106200,96500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "102000,96000,106000,97000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "102200,96500,102200,96500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "123000,95000,143000,99000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "123200,95200,137300,96400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*11 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,94000,143000,95000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,94500,127200,94500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "102000,94000,123000,96000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "107350,94400,117650,95600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "102000,97000,106000,98000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "102200,97500,102200,97500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "102000,98000,106000,99000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "102200,98500,102200,98500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,97000,123000,98000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,97500,106200,97500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "102000,94000,143000,99000" +) +oxt "14000,66000,55000,71000" +) +*16 (Net +uid 412,0 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +declText (MLText +uid 413,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,10100,21100,11100" +st "sawtooth : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*17 (Net +uid 422,0 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 4,0 +) +declText (MLText +uid 423,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,12800,20400,13800" +st "triangle : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*18 (Net +uid 478,0 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 5,0 +) +declText (MLText +uid 479,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,11900,20700,12900" +st "square : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*19 (Net +uid 568,0 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +declText (MLText +uid 569,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,11000,20200,12000" +st "sine : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*20 (PortIoOut +uid 609,0 +shape (CompositeShape +uid 610,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 611,0 +sl 0 +ro 270 +xt "91500,17625,93000,18375" +) +(Line +uid 612,0 +sl 0 +ro 270 +xt "91000,18000,91500,18000" +pts [ +"91000,18000" +"91500,18000" +] +) +] +) +tg (WTG +uid 613,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 614,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "94000,17300,120400,18700" +st "sawtooth : (signalBitNb-1 DOWNTO 0)" +blo "94000,18500" +tm "WireNameMgr" +) +) +) +*21 (PortIoOut +uid 615,0 +shape (CompositeShape +uid 616,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 617,0 +sl 0 +ro 270 +xt "91500,29625,93000,30375" +) +(Line +uid 618,0 +sl 0 +ro 270 +xt "91000,30000,91500,30000" +pts [ +"91000,30000" +"91500,30000" +] +) +] +) +tg (WTG +uid 619,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 620,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "94000,29300,118800,30700" +st "square : (signalBitNb-1 DOWNTO 0)" +blo "94000,30500" +tm "WireNameMgr" +) +) +) +*22 (PortIoOut +uid 629,0 +shape (CompositeShape +uid 630,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 631,0 +sl 0 +ro 270 +xt "91500,45625,93000,46375" +) +(Line +uid 632,0 +sl 0 +ro 270 +xt "91000,46000,91500,46000" +pts [ +"91000,46000" +"91500,46000" +] +) +] +) +tg (WTG +uid 633,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 634,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "94000,45300,119200,46700" +st "triangle : (signalBitNb-1 DOWNTO 0)" +blo "94000,46500" +tm "WireNameMgr" +) +) +) +*23 (PortIoOut +uid 649,0 +shape (CompositeShape +uid 650,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 651,0 +sl 0 +ro 270 +xt "139500,37625,141000,38375" +) +(Line +uid 652,0 +sl 0 +ro 270 +xt "139000,38000,139500,38000" +pts [ +"139000,38000" +"139500,38000" +] +) +] +) +tg (WTG +uid 653,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 654,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "142000,37300,165000,38700" +st "sine : (signalBitNb-1 DOWNTO 0)" +blo "142000,38500" +tm "WireNameMgr" +) +) +) +*24 (Net +uid 726,0 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 15 +suid 7,0 +) +declText (MLText +uid 727,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,24500,24000,25500" +st "SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 779,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +declText (MLText +uid 780,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,9200,20400,10200" +st "step : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*26 (Net +uid 1102,0 +decl (Decl +n "sineSamples" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 20 +suid 9,0 +) +declText (MLText +uid 1103,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,29000,23700,30000" +st "SIGNAL sineSamples : signed(signalBitNb-1 DOWNTO 0)" +) +) +*27 (Net +uid 1277,0 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 16 +suid 10,0 +) +declText (MLText +uid 1278,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,25400,23300,26400" +st "SIGNAL sample1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*28 (Net +uid 1285,0 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 17 +suid 11,0 +) +declText (MLText +uid 1286,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,26300,23300,27300" +st "SIGNAL sample2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*29 (Net +uid 1293,0 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 18 +suid 12,0 +) +declText (MLText +uid 1294,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,27200,23300,28200" +st "SIGNAL sample3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*30 (Net +uid 1301,0 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 19 +suid 13,0 +) +declText (MLText +uid 1302,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,28100,23300,29100" +st "SIGNAL sample4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*31 (Net +uid 1658,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 14 +suid 14,0 +) +declText (MLText +uid 1659,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,23600,14200,24600" +st "SIGNAL newPolynom : std_ulogic" +) +) +*32 (Net +uid 1701,0 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 15,0 +) +declText (MLText +uid 1702,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,18200,21900,19200" +st "SIGNAL a : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*33 (Net +uid 1709,0 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 9 +suid 16,0 +) +declText (MLText +uid 1710,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,19100,21900,20100" +st "SIGNAL b : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*34 (Net +uid 1717,0 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 10 +suid 17,0 +) +declText (MLText +uid 1718,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,20000,21800,21000" +st "SIGNAL c : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*35 (Net +uid 1725,0 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +declText (MLText +uid 1726,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,20900,21900,21900" +st "SIGNAL d : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*36 (Net +uid 2227,0 +decl (Decl +n "sineSigned" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 21 +suid 19,0 +) +declText (MLText +uid 2228,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,29900,23300,30900" +st "SIGNAL sineSigned : signed(signalBitNb-1 DOWNTO 0)" +) +) +*37 (HdlText +uid 2375,0 +optionalChildren [ +*38 (EmbeddedText +uid 2380,0 +commentText (CommentText +uid 2381,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2382,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "12000,79000,26000,81000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2383,0 +va (VaSet +) +xt "12200,79200,20400,80400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 2376,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "11000,78000,27000,82000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2377,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 2378,0 +va (VaSet +) +xt "11400,82000,14000,83200" +st "eb2" +blo "11400,83000" +tm "HdlTextNameMgr" +) +*40 (Text +uid 2379,0 +va (VaSet +) +xt "11400,83000,12800,84200" +st "2" +blo "11400,84000" +tm "HdlTextNumberMgr" +) +] +) +) +*41 (Net +uid 2447,0 +decl (Decl +n "logic1" +t "std_ulogic" +o 13 +suid 20,0 +) +declText (MLText +uid 2448,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,22700,12500,23700" +st "SIGNAL logic1 : std_ulogic" +) +) +*42 (HdlText +uid 2562,0 +optionalChildren [ +*43 (EmbeddedText +uid 2567,0 +commentText (CommentText +uid 2568,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2569,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "68000,85000,82000,87000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2570,0 +va (VaSet +) +xt "68200,85200,76400,86400" +st " +logic0 <= '0'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 2563,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "67000,84000,83000,88000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2564,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 2565,0 +va (VaSet +) +xt "67400,88000,70000,89200" +st "eb3" +blo "67400,89000" +tm "HdlTextNameMgr" +) +*45 (Text +uid 2566,0 +va (VaSet +) +xt "67400,89000,68800,90200" +st "3" +blo "67400,90000" +tm "HdlTextNumberMgr" +) +] +) +) +*46 (Net +uid 2579,0 +decl (Decl +n "logic0" +t "std_ulogic" +o 12 +suid 21,0 +) +declText (MLText +uid 2580,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,21800,12500,22800" +st "SIGNAL logic0 : std_ulogic" +) +) +*47 (PortIoIn +uid 2666,0 +shape (CompositeShape +uid 2667,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2668,0 +sl 0 +ro 270 +xt "1000,45625,2500,46375" +) +(Line +uid 2669,0 +sl 0 +ro 270 +xt "2500,46000,3000,46000" +pts [ +"2500,46000" +"3000,46000" +] +) +] +) +tg (WTG +uid 2670,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2671,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-23400,45300,0,46700" +st "step : (phaseBitNb-1 DOWNTO 0)" +ju 2 +blo "0,46500" +tm "WireNameMgr" +) +) +) +*48 (SaComponent +uid 2908,0 +optionalChildren [ +*49 (CptPort +uid 2900,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2901,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,29625,83750,30375" +) +tg (CPTG +uid 2902,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2903,0 +va (VaSet +) +xt "77900,29400,82000,30600" +st "square" +ju 2 +blo "82000,30400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*50 (CptPort +uid 2904,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2905,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,29625,67000,30375" +) +tg (CPTG +uid 2906,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2907,0 +va (VaSet +) +xt "68000,29400,73200,30600" +st "sawtooth" +blo "68000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 2909,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "67000,26000,83000,34000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 2910,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 2911,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,33800,79100,35000" +st "WaveformGenerator" +blo "67600,34800" +tm "BdLibraryNameMgr" +) +*52 (Text +uid 2912,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,35000,78200,36200" +st "sawtoothToSquare" +blo "67600,36000" +tm "CptNameMgr" +) +*53 (Text +uid 2913,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,36200,72600,37400" +st "I_square" +blo "67600,37200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2914,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2915,0 +text (MLText +uid 2916,0 +va (VaSet +font "Verdana,8,0" +) +xt "67000,37600,82600,38600" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*54 (SaComponent +uid 2925,0 +optionalChildren [ +*55 (CptPort +uid 2917,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2918,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,45625,83750,46375" +) +tg (CPTG +uid 2919,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2920,0 +va (VaSet +) +xt "77500,45400,82000,46600" +st "triangle" +ju 2 +blo "82000,46400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*56 (CptPort +uid 2921,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2922,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,45625,67000,46375" +) +tg (CPTG +uid 2923,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2924,0 +va (VaSet +) +xt "68000,45400,73200,46600" +st "sawtooth" +blo "68000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 2926,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "67000,42000,83000,50000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 2927,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 2928,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,49800,79100,51000" +st "WaveformGenerator" +blo "67600,50800" +tm "BdLibraryNameMgr" +) +*58 (Text +uid 2929,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,51000,78800,52200" +st "sawtoothToTriangle" +blo "67600,52000" +tm "CptNameMgr" +) +*59 (Text +uid 2930,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,52200,70500,53400" +st "I_tri" +blo "67600,53200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2931,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2932,0 +text (MLText +uid 2933,0 +va (VaSet +font "Verdana,8,0" +) +xt "67000,53600,82600,54600" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*60 (SaComponent +uid 3584,0 +optionalChildren [ +*61 (CptPort +uid 3576,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3577,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,45625,51750,46375" +) +tg (CPTG +uid 3578,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3579,0 +va (VaSet +) +xt "44400,45400,50000,46600" +st "resizeOut" +ju 2 +blo "50000,46400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "resizeOut" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*62 (CptPort +uid 3580,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3581,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,45625,35000,46375" +) +tg (CPTG +uid 3582,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3583,0 +va (VaSet +) +xt "36000,45400,40800,46600" +st "resizeIn" +blo "36000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "resizeIn" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 3585,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,42000,51000,50000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 3586,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +uid 3587,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,49800,46000,51000" +st "SplineInterpolator" +blo "35600,50800" +tm "BdLibraryNameMgr" +) +*64 (Text +uid 3588,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,50700,39500,51900" +st "resizer" +blo "35600,51700" +tm "CptNameMgr" +) +*65 (Text +uid 3589,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,51600,39200,52800" +st "I_size" +blo "35600,52600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3590,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3591,0 +text (MLText +uid 3592,0 +va (VaSet +font "Verdana,8,0" +) +xt "35000,53800,53800,55800" +st "inputBitNb = phaseBitNb ( positive ) +outputBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*66 (SaComponent +uid 3601,0 +optionalChildren [ +*67 (CptPort +uid 3593,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3594,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,61625,51750,62375" +) +tg (CPTG +uid 3595,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3596,0 +va (VaSet +) +xt "47200,61400,50000,62600" +st "sine" +ju 2 +blo "50000,62400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*68 (CptPort +uid 3597,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3598,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,61625,35000,62375" +) +tg (CPTG +uid 3599,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3600,0 +va (VaSet +) +xt "36000,61400,39700,62600" +st "phase" +blo "36000,62400" +) +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 3602,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,58000,51000,66000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 3603,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +uid 3604,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,65800,46000,67000" +st "SplineInterpolator" +blo "35600,66800" +tm "BdLibraryNameMgr" +) +*70 (Text +uid 3605,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,66700,40900,67900" +st "sineTable" +blo "35600,67700" +tm "CptNameMgr" +) +*71 (Text +uid 3606,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,67600,38700,68800" +st "I_sin" +blo "35600,68600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3607,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3608,0 +text (MLText +uid 3609,0 +va (VaSet +font "Verdana,8,0" +) +xt "35000,70000,59000,73000" +st "inputBitNb = phaseBitNb ( positive ) +outputBitNb = signalBitNb ( positive ) +tableAddressBitNb = tableAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*72 (SaComponent +uid 3673,0 +optionalChildren [ +*73 (CptPort +uid 3653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3654,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,51625,11000,52375" +) +tg (CPTG +uid 3655,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3656,0 +va (VaSet +) +xt "12000,51400,15400,52600" +st "clock" +blo "12000,52400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*74 (CptPort +uid 3657,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3658,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "27000,45625,27750,46375" +) +tg (CPTG +uid 3659,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3660,0 +va (VaSet +) +xt "20800,45400,26000,46600" +st "sawtooth" +ju 2 +blo "26000,46400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*75 (CptPort +uid 3661,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3662,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,53625,11000,54375" +) +tg (CPTG +uid 3663,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3664,0 +va (VaSet +) +xt "12000,53400,15300,54600" +st "reset" +blo "12000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*76 (CptPort +uid 3665,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3666,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,45625,11000,46375" +) +tg (CPTG +uid 3667,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3668,0 +va (VaSet +) +xt "12000,45400,14900,46600" +st "step" +blo "12000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*77 (CptPort +uid 3669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3670,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,49625,11000,50375" +) +tg (CPTG +uid 3671,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3672,0 +va (VaSet +) +xt "12000,49400,13900,50600" +st "en" +blo "12000,50400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 3674,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "11000,42000,27000,56000" +) +oxt "32000,8000,48000,22000" +ttg (MlTextGroup +uid 3675,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +uid 3676,0 +va (VaSet +font "Verdana,9,1" +) +xt "11600,55800,23100,57000" +st "WaveformGenerator" +blo "11600,56800" +tm "BdLibraryNameMgr" +) +*79 (Text +uid 3677,0 +va (VaSet +font "Verdana,9,1" +) +xt "11600,56700,19500,57900" +st "sawtoothGen" +blo "11600,57700" +tm "CptNameMgr" +) +*80 (Text +uid 3678,0 +va (VaSet +font "Verdana,9,1" +) +xt "11600,57600,15300,58800" +st "I_saw" +blo "11600,58600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3679,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3680,0 +text (MLText +uid 3681,0 +va (VaSet +font "Verdana,8,0" +) +xt "11000,59600,26700,60600" +st "bitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*81 (SaComponent +uid 3698,0 +optionalChildren [ +*82 (CptPort +uid 3682,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3683,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,79625,51750,80375" +) +tg (CPTG +uid 3684,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3685,0 +va (VaSet +) +xt "43400,79400,50000,80600" +st "triggerOut" +ju 2 +blo "50000,80400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*83 (CptPort +uid 3686,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3687,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,83625,35000,84375" +) +tg (CPTG +uid 3688,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3689,0 +va (VaSet +) +xt "36000,83400,39400,84600" +st "clock" +blo "36000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*84 (CptPort +uid 3690,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,85625,35000,86375" +) +tg (CPTG +uid 3692,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3693,0 +va (VaSet +) +xt "36000,85400,39300,86600" +st "reset" +blo "36000,86400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*85 (CptPort +uid 3694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,79625,35000,80375" +) +tg (CPTG +uid 3696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3697,0 +va (VaSet +) +xt "36000,79400,37900,80600" +st "en" +blo "36000,80400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 3699,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,76000,51000,88000" +) +oxt "32000,6000,48000,18000" +ttg (MlTextGroup +uid 3700,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 3701,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,87800,46000,89000" +st "SplineInterpolator" +blo "35600,88800" +tm "BdLibraryNameMgr" +) +*87 (Text +uid 3702,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,88700,46300,89900" +st "interpolatorTrigger" +blo "35600,89700" +tm "CptNameMgr" +) +*88 (Text +uid 3703,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,89600,39100,90800" +st "I_trig" +blo "35600,90600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3704,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3705,0 +text (MLText +uid 3706,0 +va (VaSet +font "Verdana,8,0" +) +xt "35000,91600,57100,92600" +st "counterBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*89 (SaComponent +uid 3739,0 +optionalChildren [ +*90 (CptPort +uid 3707,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3708,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,67625,67000,68375" +) +tg (CPTG +uid 3709,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3710,0 +va (VaSet +) +xt "68000,67400,71400,68600" +st "clock" +blo "68000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*91 (CptPort +uid 3711,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3712,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,69625,67000,70375" +) +tg (CPTG +uid 3713,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3714,0 +va (VaSet +) +xt "68000,69400,71300,70600" +st "reset" +blo "68000,70400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*92 (CptPort +uid 3715,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3716,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,63625,67000,64375" +) +tg (CPTG +uid 3717,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3718,0 +va (VaSet +) +xt "68000,63400,75900,64600" +st "shiftSamples" +blo "68000,64400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*93 (CptPort +uid 3719,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3720,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,61625,67000,62375" +) +tg (CPTG +uid 3721,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3722,0 +va (VaSet +) +xt "68000,61400,73400,62600" +st "sampleIn" +blo "68000,62400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*94 (CptPort +uid 3723,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3724,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,61625,83750,62375" +) +tg (CPTG +uid 3725,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3726,0 +va (VaSet +) +xt "77000,61400,82000,62600" +st "sample1" +ju 2 +blo "82000,62400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*95 (CptPort +uid 3727,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3728,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,63625,83750,64375" +) +tg (CPTG +uid 3729,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3730,0 +va (VaSet +) +xt "77000,63400,82000,64600" +st "sample2" +ju 2 +blo "82000,64400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*96 (CptPort +uid 3731,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3732,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,65625,83750,66375" +) +tg (CPTG +uid 3733,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3734,0 +va (VaSet +) +xt "77000,65400,82000,66600" +st "sample3" +ju 2 +blo "82000,66400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*97 (CptPort +uid 3735,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3736,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,67625,83750,68375" +) +tg (CPTG +uid 3737,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3738,0 +va (VaSet +) +xt "77000,67400,82000,68600" +st "sample4" +ju 2 +blo "82000,68400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 3740,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "67000,58000,83000,72000" +) +oxt "35000,9000,51000,23000" +ttg (MlTextGroup +uid 3741,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +uid 3742,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,71800,78000,73000" +st "SplineInterpolator" +blo "67600,72800" +tm "BdLibraryNameMgr" +) +*99 (Text +uid 3743,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,72700,82100,73900" +st "interpolatorShiftRegister" +blo "67600,73700" +tm "CptNameMgr" +) +*100 (Text +uid 3744,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,73600,72300,74800" +st "I_shReg" +blo "67600,74600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3745,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3746,0 +text (MLText +uid 3747,0 +va (VaSet +font "Verdana,8,0" +) +xt "67000,75600,85400,76600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*101 (SaComponent +uid 3784,0 +optionalChildren [ +*102 (CptPort +uid 3748,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3749,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "90250,61625,91000,62375" +) +tg (CPTG +uid 3750,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3751,0 +va (VaSet +) +xt "92000,61400,97000,62600" +st "sample1" +blo "92000,62400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*103 (CptPort +uid 3752,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3753,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "90250,63625,91000,64375" +) +tg (CPTG +uid 3754,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3755,0 +va (VaSet +) +xt "92000,63400,97000,64600" +st "sample2" +blo "92000,64400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*104 (CptPort +uid 3756,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3757,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "90250,65625,91000,66375" +) +tg (CPTG +uid 3758,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3759,0 +va (VaSet +) +xt "92000,65400,97000,66600" +st "sample3" +blo "92000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*105 (CptPort +uid 3760,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3761,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "90250,67625,91000,68375" +) +tg (CPTG +uid 3762,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3763,0 +va (VaSet +) +xt "92000,67400,97000,68600" +st "sample4" +blo "92000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*106 (CptPort +uid 3764,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3765,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "107000,61625,107750,62375" +) +tg (CPTG +uid 3766,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3767,0 +va (VaSet +) +xt "104700,61400,106000,62600" +st "a" +ju 2 +blo "106000,62400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*107 (CptPort +uid 3768,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3769,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "107000,63625,107750,64375" +) +tg (CPTG +uid 3770,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3771,0 +va (VaSet +) +xt "104700,63400,106000,64600" +st "b" +ju 2 +blo "106000,64400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*108 (CptPort +uid 3772,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3773,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "107000,67625,107750,68375" +) +tg (CPTG +uid 3774,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3775,0 +va (VaSet +) +xt "104700,67400,106000,68600" +st "d" +ju 2 +blo "106000,68400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*109 (CptPort +uid 3776,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3777,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "107000,65625,107750,66375" +) +tg (CPTG +uid 3778,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3779,0 +va (VaSet +) +xt "104700,65400,106000,66600" +st "c" +ju 2 +blo "106000,66400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +) +*110 (CptPort +uid 3780,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3781,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "90250,69625,91000,70375" +) +tg (CPTG +uid 3782,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3783,0 +va (VaSet +) +xt "92000,69400,101900,70600" +st "interpolateLinear" +blo "92000,70400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 3785,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "91000,58000,107000,74000" +) +oxt "33000,11000,49000,27000" +ttg (MlTextGroup +uid 3786,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +uid 3787,0 +va (VaSet +font "Verdana,9,1" +) +xt "91600,73800,102000,75000" +st "SplineInterpolator" +blo "91600,74800" +tm "BdLibraryNameMgr" +) +*112 (Text +uid 3788,0 +va (VaSet +font "Verdana,9,1" +) +xt "91600,74700,105500,75900" +st "interpolatorCoefficients" +blo "91600,75700" +tm "CptNameMgr" +) +*113 (Text +uid 3789,0 +va (VaSet +font "Verdana,9,1" +) +xt "91600,75600,96500,76800" +st "I_coeffs" +blo "91600,76600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3790,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3791,0 +text (MLText +uid 3792,0 +va (VaSet +font "Verdana,8,0" +) +xt "91000,77800,109100,79800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*114 (SaComponent +uid 3829,0 +optionalChildren [ +*115 (CptPort +uid 3793,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3794,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,75625,115000,76375" +) +tg (CPTG +uid 3795,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3796,0 +va (VaSet +) +xt "116000,75400,119400,76600" +st "clock" +blo "116000,76400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*116 (CptPort +uid 3797,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3798,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,77625,115000,78375" +) +tg (CPTG +uid 3799,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3800,0 +va (VaSet +) +xt "116000,77400,119300,78600" +st "reset" +blo "116000,78400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*117 (CptPort +uid 3801,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3802,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,69625,115000,70375" +) +tg (CPTG +uid 3803,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3804,0 +va (VaSet +) +xt "116000,69400,125100,70600" +st "restartPolynom" +blo "116000,70400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*118 (CptPort +uid 3805,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3806,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,67625,115000,68375" +) +tg (CPTG +uid 3807,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3808,0 +va (VaSet +) +xt "116000,67400,117300,68600" +st "d" +blo "116000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*119 (CptPort +uid 3809,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3810,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "131000,61625,131750,62375" +) +tg (CPTG +uid 3811,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3812,0 +va (VaSet +) +xt "123800,61400,130000,62600" +st "sampleOut" +ju 2 +blo "130000,62400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*120 (CptPort +uid 3813,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3814,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,65625,115000,66375" +) +tg (CPTG +uid 3815,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3816,0 +va (VaSet +) +xt "116000,65400,117300,66600" +st "c" +blo "116000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*121 (CptPort +uid 3817,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3818,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,63625,115000,64375" +) +tg (CPTG +uid 3819,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3820,0 +va (VaSet +) +xt "116000,63400,117300,64600" +st "b" +blo "116000,64400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*122 (CptPort +uid 3821,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3822,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,61625,115000,62375" +) +tg (CPTG +uid 3823,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3824,0 +va (VaSet +) +xt "116000,61400,117300,62600" +st "a" +blo "116000,62400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +*123 (CptPort +uid 3825,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3826,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,73625,115000,74375" +) +tg (CPTG +uid 3827,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3828,0 +va (VaSet +) +xt "116000,73400,117900,74600" +st "en" +blo "116000,74400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 3830,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "115000,58000,131000,81000" +) +oxt "37000,7000,53000,30000" +ttg (MlTextGroup +uid 3831,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*124 (Text +uid 3832,0 +va (VaSet +font "Verdana,9,1" +) +xt "115600,80800,126000,82000" +st "SplineInterpolator" +blo "115600,81800" +tm "BdLibraryNameMgr" +) +*125 (Text +uid 3833,0 +va (VaSet +font "Verdana,9,1" +) +xt "115600,81700,132300,82900" +st "interpolatorCalculatePolynom" +blo "115600,82700" +tm "CptNameMgr" +) +*126 (Text +uid 3834,0 +va (VaSet +font "Verdana,9,1" +) +xt "115600,82600,120200,83800" +st "I_spline" +blo "115600,83600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3835,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3836,0 +text (MLText +uid 3837,0 +va (VaSet +font "Verdana,8,0" +) +xt "115000,85000,139500,88000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*127 (SaComponent +uid 3846,0 +optionalChildren [ +*128 (CptPort +uid 3838,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3839,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "131000,37625,131750,38375" +) +tg (CPTG +uid 3840,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3841,0 +va (VaSet +) +xt "122200,37400,130000,38600" +st "unsignedOut" +ju 2 +blo "130000,38400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*129 (CptPort +uid 3842,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3843,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114250,37625,115000,38375" +) +tg (CPTG +uid 3844,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3845,0 +va (VaSet +) +xt "116000,37400,121100,38600" +st "signedIn" +blo "116000,38400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 3847,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "115000,34000,131000,42000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 3848,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*130 (Text +uid 3849,0 +va (VaSet +font "Verdana,9,1" +) +xt "115600,41800,126000,43000" +st "SplineInterpolator" +blo "115600,42800" +tm "BdLibraryNameMgr" +) +*131 (Text +uid 3850,0 +va (VaSet +font "Verdana,9,1" +) +xt "115600,42700,125700,43900" +st "offsetToUnsigned" +blo "115600,43700" +tm "CptNameMgr" +) +*132 (Text +uid 3851,0 +va (VaSet +font "Verdana,9,1" +) +xt "115600,43600,122300,44800" +st "I_unsigned" +blo "115600,44600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3852,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3853,0 +text (MLText +uid 3854,0 +va (VaSet +font "Verdana,8,0" +) +xt "115000,45800,130600,46800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*133 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "3000,52000,10250,52000" +pts [ +"3000,52000" +"10250,52000" +] +) +start &1 +end &73 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,50600,6800,52000" +st "clock" +blo "3000,51800" +tm "WireNameMgr" +) +) +on &2 +) +*134 (Wire +uid 237,0 +shape (OrthoPolyLine +uid 238,0 +va (VaSet +vasetType 3 +) +xt "3000,54000,10250,54000" +pts [ +"3000,54000" +"10250,54000" +] +) +start &3 +end &75 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 243,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 244,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,52600,7100,54000" +st "reset" +blo "3000,53800" +tm "WireNameMgr" +) +) +on &4 +) +*135 (Wire +uid 414,0 +optionalChildren [ +*136 (BdJunction +uid 476,0 +ps "OnConnectorStrategy" +shape (Circle +uid 477,0 +va (VaSet +vasetType 1 +) +xt "30600,45600,31400,46400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 415,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "27750,46000,34250,46000" +pts [ +"27750,46000" +"34250,46000" +] +) +start &74 +end &62 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 416,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 417,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,44600,32700,46000" +st "phase" +blo "28000,45800" +tm "WireNameMgr" +) +) +on &24 +) +*137 (Wire +uid 424,0 +shape (OrthoPolyLine +uid 425,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83750,46000,91000,46000" +pts [ +"83750,46000" +"91000,46000" +] +) +start &55 +end &22 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,44600,92600,46000" +st "triangle" +blo "87000,45800" +tm "WireNameMgr" +) +) +on &17 +) +*138 (Wire +uid 472,0 +shape (OrthoPolyLine +uid 473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "31000,46000,34250,62000" +pts [ +"31000,46000" +"31000,62000" +"34250,62000" +] +) +start &136 +end &68 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 474,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 475,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "29000,43600,33700,45000" +st "phase" +blo "29000,44800" +tm "WireNameMgr" +) +) +on &24 +) +*139 (Wire +uid 480,0 +shape (OrthoPolyLine +uid 481,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83750,30000,91000,30000" +pts [ +"83750,30000" +"91000,30000" +] +) +start &49 +end &21 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 485,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,28600,92200,30000" +st "square" +blo "87000,29800" +tm "WireNameMgr" +) +) +on &18 +) +*140 (Wire +uid 562,0 +shape (OrthoPolyLine +uid 563,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "131750,38000,139000,38000" +pts [ +"131750,38000" +"139000,38000" +] +) +start &128 +end &23 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 566,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 567,0 +va (VaSet +font "Verdana,12,0" +) +xt "135000,36600,138400,38000" +st "sine" +blo "135000,37800" +tm "WireNameMgr" +) +) +on &19 +) +*141 (Wire +uid 601,0 +optionalChildren [ +*142 (BdJunction +uid 862,0 +ps "OnConnectorStrategy" +shape (Circle +uid 863,0 +va (VaSet +vasetType 1 +) +xt "58600,45600,59400,46400" +radius 400 +) +) +*143 (BdJunction +uid 891,0 +ps "OnConnectorStrategy" +shape (Circle +uid 892,0 +va (VaSet +vasetType 1 +) +xt "58600,29600,59400,30400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 602,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,18000,91000,46000" +pts [ +"51750,46000" +"59000,46000" +"59000,18000" +"91000,18000" +] +) +start &61 +end &20 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 605,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 606,0 +va (VaSet +font "Verdana,12,0" +) +xt "85000,16600,91800,18000" +st "sawtooth" +blo "85000,17800" +tm "WireNameMgr" +) +) +on &16 +) +*144 (Wire +uid 781,0 +shape (OrthoPolyLine +uid 782,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "3000,46000,10250,46000" +pts [ +"10250,46000" +"3000,46000" +] +) +start &76 +end &47 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 785,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 786,0 +va (VaSet +font "Verdana,12,0" +) +xt "7000,43600,10600,45000" +st "step" +blo "7000,44800" +tm "WireNameMgr" +) +) +on &25 +) +*145 (Wire +uid 858,0 +shape (OrthoPolyLine +uid 859,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,46000,66250,46000" +pts [ +"59000,46000" +"66250,46000" +] +) +start &142 +end &56 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 860,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 861,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "55250,60600,62050,62000" +st "sawtooth" +blo "55250,61800" +tm "WireNameMgr" +) +) +on &16 +) +*146 (Wire +uid 887,0 +shape (OrthoPolyLine +uid 888,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,30000,66250,30000" +pts [ +"59000,30000" +"66250,30000" +] +) +start &143 +end &50 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 889,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 890,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "55250,28600,62050,30000" +st "sawtooth" +blo "55250,29800" +tm "WireNameMgr" +) +) +on &16 +) +*147 (Wire +uid 985,0 +shape (OrthoPolyLine +uid 986,0 +va (VaSet +vasetType 3 +) +xt "31000,84000,34250,84000" +pts [ +"31000,84000" +"34250,84000" +] +) +end &83 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 991,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 992,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,82600,33800,84000" +st "clock" +blo "30000,83800" +tm "WireNameMgr" +) +) +on &2 +) +*148 (Wire +uid 993,0 +shape (OrthoPolyLine +uid 994,0 +va (VaSet +vasetType 3 +) +xt "31000,86000,34250,86000" +pts [ +"31000,86000" +"34250,86000" +] +) +end &84 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 999,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1000,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,84600,34100,86000" +st "reset" +blo "30000,85800" +tm "WireNameMgr" +) +) +on &4 +) +*149 (Wire +uid 1096,0 +shape (OrthoPolyLine +uid 1097,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,62000,66250,62000" +pts [ +"51750,62000" +"66250,62000" +] +) +start &67 +end &93 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1100,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1101,0 +va (VaSet +font "Verdana,12,0" +) +xt "55000,60600,64500,62000" +st "sineSamples" +blo "55000,61800" +tm "WireNameMgr" +) +) +on &26 +) +*150 (Wire +uid 1106,0 +optionalChildren [ +*151 (BdJunction +uid 1834,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1835,0 +va (VaSet +vasetType 1 +) +xt "58600,79600,59400,80400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1107,0 +va (VaSet +vasetType 3 +) +xt "51750,64000,66250,80000" +pts [ +"51750,80000" +"59000,80000" +"59000,64000" +"66250,64000" +] +) +start &82 +end &92 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1110,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1111,0 +va (VaSet +font "Verdana,12,0" +) +xt "54000,78600,63600,80000" +st "newPolynom" +blo "54000,79800" +tm "WireNameMgr" +) +) +on &31 +) +*152 (Wire +uid 1220,0 +shape (OrthoPolyLine +uid 1221,0 +va (VaSet +vasetType 3 +) +xt "63000,70000,66250,70000" +pts [ +"63000,70000" +"66250,70000" +] +) +end &91 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1226,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1227,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,68600,66100,70000" +st "reset" +blo "62000,69800" +tm "WireNameMgr" +) +) +on &4 +) +*153 (Wire +uid 1228,0 +shape (OrthoPolyLine +uid 1229,0 +va (VaSet +vasetType 3 +) +xt "63000,68000,66250,68000" +pts [ +"63000,68000" +"66250,68000" +] +) +end &90 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1234,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1235,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,66600,65800,68000" +st "clock" +blo "62000,67800" +tm "WireNameMgr" +) +) +on &2 +) +*154 (Wire +uid 1279,0 +shape (OrthoPolyLine +uid 1280,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83750,62000,90250,62000" +pts [ +"83750,62000" +"90250,62000" +] +) +start &94 +end &102 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1283,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1284,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,60600,90100,62000" +st "sample1" +blo "84000,61800" +tm "WireNameMgr" +) +) +on &27 +) +*155 (Wire +uid 1287,0 +shape (OrthoPolyLine +uid 1288,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83750,64000,90250,64000" +pts [ +"83750,64000" +"90250,64000" +] +) +start &95 +end &103 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1291,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1292,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,62600,90100,64000" +st "sample2" +blo "84000,63800" +tm "WireNameMgr" +) +) +on &28 +) +*156 (Wire +uid 1295,0 +shape (OrthoPolyLine +uid 1296,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83750,66000,90250,66000" +pts [ +"83750,66000" +"90250,66000" +] +) +start &96 +end &104 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1299,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1300,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,64600,90100,66000" +st "sample3" +blo "84000,65800" +tm "WireNameMgr" +) +) +on &29 +) +*157 (Wire +uid 1303,0 +shape (OrthoPolyLine +uid 1304,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83750,68000,90250,68000" +pts [ +"83750,68000" +"90250,68000" +] +) +start &97 +end &105 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1307,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1308,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,66600,90100,68000" +st "sample4" +blo "84000,67800" +tm "WireNameMgr" +) +) +on &30 +) +*158 (Wire +uid 1703,0 +shape (OrthoPolyLine +uid 1704,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107750,62000,114250,62000" +pts [ +"107750,62000" +"114250,62000" +] +) +start &106 +end &122 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1707,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1708,0 +va (VaSet +font "Verdana,12,0" +) +xt "109750,60600,111350,62000" +st "a" +blo "109750,61800" +tm "WireNameMgr" +) +) +on &32 +) +*159 (Wire +uid 1711,0 +shape (OrthoPolyLine +uid 1712,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107750,64000,114250,64000" +pts [ +"107750,64000" +"114250,64000" +] +) +start &107 +end &121 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1715,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1716,0 +va (VaSet +font "Verdana,12,0" +) +xt "109750,62600,111350,64000" +st "b" +blo "109750,63800" +tm "WireNameMgr" +) +) +on &33 +) +*160 (Wire +uid 1719,0 +shape (OrthoPolyLine +uid 1720,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107750,66000,114250,66000" +pts [ +"107750,66000" +"114250,66000" +] +) +start &109 +end &120 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1723,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1724,0 +va (VaSet +font "Verdana,12,0" +) +xt "109750,64600,111150,66000" +st "c" +blo "109750,65800" +tm "WireNameMgr" +) +) +on &34 +) +*161 (Wire +uid 1727,0 +shape (OrthoPolyLine +uid 1728,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107750,68000,114250,68000" +pts [ +"107750,68000" +"114250,68000" +] +) +start &108 +end &118 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1731,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1732,0 +va (VaSet +font "Verdana,12,0" +) +xt "109750,66600,111350,68000" +st "d" +blo "109750,67800" +tm "WireNameMgr" +) +) +on &35 +) +*162 (Wire +uid 1814,0 +shape (OrthoPolyLine +uid 1815,0 +va (VaSet +vasetType 3 +) +xt "111000,76000,114250,76000" +pts [ +"111000,76000" +"114250,76000" +] +) +end &115 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1820,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1821,0 +va (VaSet +font "Verdana,12,0" +) +xt "110000,74600,113800,76000" +st "clock" +blo "110000,75800" +tm "WireNameMgr" +) +) +on &2 +) +*163 (Wire +uid 1822,0 +shape (OrthoPolyLine +uid 1823,0 +va (VaSet +vasetType 3 +) +xt "111000,78000,114250,78000" +pts [ +"111000,78000" +"114250,78000" +] +) +end &116 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1828,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1829,0 +va (VaSet +font "Verdana,12,0" +) +xt "110000,76600,114100,78000" +st "reset" +blo "110000,77800" +tm "WireNameMgr" +) +) +on &4 +) +*164 (Wire +uid 1830,0 +shape (OrthoPolyLine +uid 1831,0 +va (VaSet +vasetType 3 +) +xt "59000,70000,114250,80000" +pts [ +"59000,80000" +"109000,80000" +"109000,70000" +"114250,70000" +] +) +start &151 +end &117 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1832,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1833,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "71000,80600,80600,82000" +st "newPolynom" +blo "71000,81800" +tm "WireNameMgr" +) +) +on &31 +) +*165 (Wire +uid 2219,0 +shape (OrthoPolyLine +uid 2220,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107000,38000,139000,62000" +pts [ +"131750,62000" +"139000,62000" +"139000,50000" +"107000,50000" +"107000,38000" +"114250,38000" +] +) +start &119 +end &129 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2225,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2226,0 +va (VaSet +font "Verdana,12,0" +) +xt "133000,60600,141500,62000" +st "sineSigned" +blo "133000,61800" +tm "WireNameMgr" +) +) +on &36 +) +*166 (Wire +uid 2386,0 +shape (OrthoPolyLine +uid 2387,0 +va (VaSet +vasetType 3 +) +xt "27000,80000,34250,80000" +pts [ +"34250,80000" +"27000,80000" +] +) +start &85 +end &37 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2390,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2391,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,78600,34400,80000" +st "logic1" +blo "30000,79800" +tm "WireNameMgr" +) +) +on &41 +) +*167 (Wire +uid 2394,0 +shape (OrthoPolyLine +uid 2395,0 +va (VaSet +vasetType 3 +) +xt "111000,74000,114250,74000" +pts [ +"114250,74000" +"111000,74000" +] +) +start &123 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2399,0 +va (VaSet +font "Verdana,12,0" +) +xt "110000,72600,114400,74000" +st "logic1" +blo "110000,73800" +tm "WireNameMgr" +) +) +on &41 +) +*168 (Wire +uid 2449,0 +shape (OrthoPolyLine +uid 2450,0 +va (VaSet +vasetType 3 +) +xt "3000,50000,10250,50000" +pts [ +"10250,50000" +"3000,50000" +] +) +start &77 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2455,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2456,0 +va (VaSet +font "Verdana,12,0" +) +xt "6000,48600,10400,50000" +st "logic1" +blo "6000,49800" +tm "WireNameMgr" +) +) +on &41 +) +*169 (Wire +uid 2571,0 +shape (OrthoPolyLine +uid 2572,0 +va (VaSet +vasetType 3 +) +xt "83000,70000,90250,86000" +pts [ +"90250,70000" +"87000,70000" +"87000,86000" +"83000,86000" +] +) +start &110 +end &42 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2578,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,84600,88400,86000" +st "logic0" +blo "84000,85800" +tm "WireNameMgr" +) +) +on &46 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *170 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*171 (Text +uid 85,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*172 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*173 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*174 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*175 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*176 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*177 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*178 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*179 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-5150,-2146,185748,101574" +cachedDiagramExtent "-21700,0,164400,99000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 50 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 3983,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*180 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*181 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*182 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*183 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*184 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*185 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*186 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*187 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*188 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*189 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*190 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*191 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*192 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*193 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*194 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*195 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*196 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*197 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*198 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*199 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*200 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,5600,4000,6600" +st "Declarations" +blo "-3000,6400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6500,400,7500" +st "Ports:" +blo "-3000,7300" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,13700,1800,14700" +st "Pre User:" +blo "-3000,14500" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,14600,31300,17600" +st "constant tableAddressBitNb : positive := 3; +constant sampleCountBitNb : positive := phaseBitNb-2-tableAddressBitNb; +constant coeffBitNb : positive := signalBitNb+4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,17300,6000,18300" +st "Diagram Signals:" +blo "-3000,18100" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,5600,3000,6600" +st "Post User:" +blo "-3000,6400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-3000,5600,-3000,5600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 22,0 +usingSuid 1 +emptyRow *201 (LEmptyRow +) +uid 2778,0 +optionalChildren [ +*202 (RefLabelRowHdr +) +*203 (TitleRowHdr +) +*204 (FilterRowHdr +) +*205 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*206 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*207 (GroupColHdr +tm "GroupColHdrMgr" +) +*208 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*209 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*210 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*211 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*212 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*213 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*214 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 2733,0 +) +*215 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 2735,0 +) +*216 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 2737,0 +) +*217 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +uid 2739,0 +) +*218 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 5,0 +) +) +uid 2741,0 +) +*219 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 2743,0 +) +*220 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 15 +suid 7,0 +) +) +uid 2745,0 +) +*221 (LeafLogPort +port (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +uid 2747,0 +) +*222 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sineSamples" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 20 +suid 9,0 +) +) +uid 2749,0 +) +*223 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 16 +suid 10,0 +) +) +uid 2751,0 +) +*224 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 17 +suid 11,0 +) +) +uid 2753,0 +) +*225 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 18 +suid 12,0 +) +) +uid 2755,0 +) +*226 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 19 +suid 13,0 +) +) +uid 2757,0 +) +*227 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 14 +suid 14,0 +) +) +uid 2759,0 +) +*228 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 15,0 +) +) +uid 2761,0 +) +*229 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 9 +suid 16,0 +) +) +uid 2763,0 +) +*230 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 10 +suid 17,0 +) +) +uid 2765,0 +) +*231 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +) +uid 2767,0 +) +*232 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sineSigned" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 21 +suid 19,0 +) +) +uid 2769,0 +) +*233 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_ulogic" +o 13 +suid 20,0 +) +) +uid 2771,0 +) +*234 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic0" +t "std_ulogic" +o 12 +suid 21,0 +) +) +uid 2773,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 2791,0 +optionalChildren [ +*235 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *236 (MRCItem +litem &201 +pos 21 +dimension 20 +) +uid 2793,0 +optionalChildren [ +*237 (MRCItem +litem &202 +pos 0 +dimension 20 +uid 2794,0 +) +*238 (MRCItem +litem &203 +pos 1 +dimension 23 +uid 2795,0 +) +*239 (MRCItem +litem &204 +pos 2 +hidden 1 +dimension 20 +uid 2796,0 +) +*240 (MRCItem +litem &214 +pos 0 +dimension 20 +uid 2734,0 +) +*241 (MRCItem +litem &215 +pos 1 +dimension 20 +uid 2736,0 +) +*242 (MRCItem +litem &216 +pos 2 +dimension 20 +uid 2738,0 +) +*243 (MRCItem +litem &217 +pos 3 +dimension 20 +uid 2740,0 +) +*244 (MRCItem +litem &218 +pos 4 +dimension 20 +uid 2742,0 +) +*245 (MRCItem +litem &219 +pos 5 +dimension 20 +uid 2744,0 +) +*246 (MRCItem +litem &220 +pos 7 +dimension 20 +uid 2746,0 +) +*247 (MRCItem +litem &221 +pos 6 +dimension 20 +uid 2748,0 +) +*248 (MRCItem +litem &222 +pos 8 +dimension 20 +uid 2750,0 +) +*249 (MRCItem +litem &223 +pos 9 +dimension 20 +uid 2752,0 +) +*250 (MRCItem +litem &224 +pos 10 +dimension 20 +uid 2754,0 +) +*251 (MRCItem +litem &225 +pos 11 +dimension 20 +uid 2756,0 +) +*252 (MRCItem +litem &226 +pos 12 +dimension 20 +uid 2758,0 +) +*253 (MRCItem +litem &227 +pos 13 +dimension 20 +uid 2760,0 +) +*254 (MRCItem +litem &228 +pos 14 +dimension 20 +uid 2762,0 +) +*255 (MRCItem +litem &229 +pos 15 +dimension 20 +uid 2764,0 +) +*256 (MRCItem +litem &230 +pos 16 +dimension 20 +uid 2766,0 +) +*257 (MRCItem +litem &231 +pos 17 +dimension 20 +uid 2768,0 +) +*258 (MRCItem +litem &232 +pos 18 +dimension 20 +uid 2770,0 +) +*259 (MRCItem +litem &233 +pos 19 +dimension 20 +uid 2772,0 +) +*260 (MRCItem +litem &234 +pos 20 +dimension 20 +uid 2774,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 2797,0 +optionalChildren [ +*261 (MRCItem +litem &205 +pos 0 +dimension 20 +uid 2798,0 +) +*262 (MRCItem +litem &207 +pos 1 +dimension 50 +uid 2799,0 +) +*263 (MRCItem +litem &208 +pos 2 +dimension 100 +uid 2800,0 +) +*264 (MRCItem +litem &209 +pos 3 +dimension 50 +uid 2801,0 +) +*265 (MRCItem +litem &210 +pos 4 +dimension 100 +uid 2802,0 +) +*266 (MRCItem +litem &211 +pos 5 +dimension 100 +uid 2803,0 +) +*267 (MRCItem +litem &212 +pos 6 +dimension 50 +uid 2804,0 +) +*268 (MRCItem +litem &213 +pos 7 +dimension 80 +uid 2805,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 2792,0 +vaOverrides [ +] +) +] +) +uid 2777,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *269 (LEmptyRow +) +uid 2807,0 +optionalChildren [ +*270 (RefLabelRowHdr +) +*271 (TitleRowHdr +) +*272 (FilterRowHdr +) +*273 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*274 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*275 (GroupColHdr +tm "GroupColHdrMgr" +) +*276 (NameColHdr +tm "GenericNameColHdrMgr" +) +*277 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*278 (InitColHdr +tm "GenericValueColHdrMgr" +) +*279 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*280 (EolColHdr +tm "GenericEolColHdrMgr" +) +*281 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 2854,0 +) +*282 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "10" +) +uid 2856,0 +) +] +) +pdm (PhysicalDM +uid 2819,0 +optionalChildren [ +*283 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *284 (MRCItem +litem &269 +pos 2 +dimension 20 +) +uid 2821,0 +optionalChildren [ +*285 (MRCItem +litem &270 +pos 0 +dimension 20 +uid 2822,0 +) +*286 (MRCItem +litem &271 +pos 1 +dimension 23 +uid 2823,0 +) +*287 (MRCItem +litem &272 +pos 2 +hidden 1 +dimension 20 +uid 2824,0 +) +*288 (MRCItem +litem &281 +pos 0 +dimension 20 +uid 2853,0 +) +*289 (MRCItem +litem &282 +pos 1 +dimension 20 +uid 2855,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 2825,0 +optionalChildren [ +*290 (MRCItem +litem &273 +pos 0 +dimension 20 +uid 2826,0 +) +*291 (MRCItem +litem &275 +pos 1 +dimension 50 +uid 2827,0 +) +*292 (MRCItem +litem &276 +pos 2 +dimension 100 +uid 2828,0 +) +*293 (MRCItem +litem &277 +pos 3 +dimension 100 +uid 2829,0 +) +*294 (MRCItem +litem &278 +pos 4 +dimension 50 +uid 2830,0 +) +*295 (MRCItem +litem &279 +pos 5 +dimension 50 +uid 2831,0 +) +*296 (MRCItem +litem &280 +pos 6 +dimension 80 +uid 2832,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 2820,0 +vaOverrides [ +] +) +] +) +uid 2806,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/sine@gen/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/sine@gen/symbol.sb new file mode 100644 index 0000000..48f42cf --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/sine@gen/symbol.sb @@ -0,0 +1,1809 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 198,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +uid 200,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 201,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 202,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 4,0 +) +) +uid 203,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 204,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 205,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +uid 206,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 207,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 134,0 +optionalChildren [ +*23 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 137,0 +) +*24 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 139,0 +) +*25 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*26 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 161,0 +) +*27 (MRCItem +litem &3 +pos 4 +dimension 20 +uid 162,0 +) +*28 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 163,0 +) +*29 (MRCItem +litem &5 +pos 5 +dimension 20 +uid 164,0 +) +*30 (MRCItem +litem &6 +pos 1 +dimension 20 +uid 165,0 +) +*31 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 166,0 +) +*32 (MRCItem +litem &8 +pos 6 +dimension 20 +uid 167,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*33 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 143,0 +) +*34 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 147,0 +) +*35 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 149,0 +) +*36 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 151,0 +) +*37 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 153,0 +) +*38 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 155,0 +) +*39 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 157,0 +) +*40 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 159,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 133,0 +vaOverrides [ +] +) +] +) +uid 197,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 209,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 193,0 +) +*54 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "10" +) +uid 194,0 +) +] +) +pdm (PhysicalDM +uid 210,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *56 (MRCItem +litem &41 +pos 2 +dimension 20 +) +uid 169,0 +optionalChildren [ +*57 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 172,0 +) +*58 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 174,0 +) +*59 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 176,0 +) +*60 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 195,0 +) +*61 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 196,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*62 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 178,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 182,0 +) +*64 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 184,0 +) +*65 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 186,0 +) +*66 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 188,0 +) +*67 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 190,0 +) +*68 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 192,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 168,0 +vaOverrides [ +] +) +] +) +uid 208,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sineGen" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineGen" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:40" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "sineGen" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sineGen/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:40" +) +(vvPair +variable "unit" +value "sineGen" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,25625,32000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,25400,36400,26600" +st "clock" +blo "33000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,18000,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 88,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 89,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,27625,32000,28375" +) +tg (CPTG +uid 90,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 91,0 +va (VaSet +font "courier,9,0" +) +xt "33000,27400,36300,28600" +st "reset" +blo "33000,28400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 92,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,18000,12800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,19625,48750,20375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "courier,9,0" +) +xt "41800,19400,47000,20600" +st "sawtooth" +ju 2 +blo "47000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,29000,14600" +st "sawtooth : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*73 (CptPort +uid 103,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 104,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,25625,48750,26375" +) +tg (CPTG +uid 105,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 106,0 +va (VaSet +font "courier,9,0" +) +xt "44200,25400,47000,26600" +st "sine" +ju 2 +blo "47000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 107,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,29000,15500" +st "sine : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 4,0 +) +) +) +*74 (CptPort +uid 118,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,23625,48750,24375" +) +tg (CPTG +uid 120,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 121,0 +va (VaSet +font "courier,9,0" +) +xt "42500,23400,47000,24600" +st "triangle" +ju 2 +blo "47000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 122,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,28000,17300" +st "triangle : OUT unsigned (signalBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +) +*75 (CptPort +uid 108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,21625,48750,22375" +) +tg (CPTG +uid 110,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 111,0 +va (VaSet +font "courier,9,0" +) +xt "42900,21400,47000,22600" +st "square" +ju 2 +blo "47000,22400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 112,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,29000,16400" +st "square : OUT unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*76 (CptPort +uid 128,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 129,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 130,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 131,0 +va (VaSet +font "courier,9,0" +) +xt "33000,19400,35900,20600" +st "step" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 132,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,28500,13700" +st "step : IN unsigned (phaseBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,16000,48000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,29800,42100,30700" +st "SplineInterpolator" +blo "32600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,30700,36100,31600" +st "sineGen" +blo "32600,31400" +) +) +gi *77 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,33600,45000,37200" +st "Generic Declarations + +signalBitNb positive 16 +phaseBitNb positive 10 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "phaseBitNb" +type "positive" +value "10" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*78 (Grouping +uid 16,0 +optionalChildren [ +*79 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*84 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *89 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*91 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2,34,1397,984" +viewArea "-1061,-1061,74571,50904" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *92 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *93 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,17300,2500,18200" +st "User:" +blo "0,18000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,2000,18200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 532,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/sine@gen_tester/interface b/02-SplineInterpolator/SplineInterpolator/hds/sine@gen_tester/interface new file mode 100644 index 0000000..95ac7cb --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/sine@gen_tester/interface @@ -0,0 +1,1738 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 7,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 86,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 88,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 90,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 92,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +uid 94,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 96,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +uid 98,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 117,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 118,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 119,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 87,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 89,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 91,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 93,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 95,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 97,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 122,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 123,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 124,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 125,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 126,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 127,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 128,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 101,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 131,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *54 (MRCItem +litem &41 +pos 3 +dimension 20 +) +uid 145,0 +optionalChildren [ +*55 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 146,0 +) +*56 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 147,0 +) +*57 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*58 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 150,0 +) +*59 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 151,0 +) +*60 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 152,0 +) +*61 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 153,0 +) +*62 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 154,0 +) +*63 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 155,0 +) +*64 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 156,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 130,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sineGen_tester" +) +(vvPair +variable "date" +value "01/17/19" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineGen_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "01/17/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "11:13:06" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "sineGen_tester" +) +(vvPair +variable "month" +value "Jan" +) +(vvPair +variable "month_long" +value "January" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@gen_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sineGen_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:13:06" +) +(vvPair +variable "unit" +value "sineGen_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 100,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "clock" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5400,60000,6300" +st "clock : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,9500" +st "reset" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6300,60000,7200" +st "reset : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "60550,7000,61450,11000" +st "sawtooth" +ju 2 +blo "61250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "courier,8,0" +) +xt "44000,1800,71000,2700" +st "sawtooth : IN unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*69 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "54550,7000,55450,9000" +st "sine" +ju 2 +blo "55250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,71000,3600" +st "sine : IN unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*70 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "58550,7000,59450,10000" +st "square" +ju 2 +blo "59250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3600,71000,4500" +st "square : IN unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*71 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,9000" +st "step" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7200,69500,8100" +st "step : OUT unsigned (phaseBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*72 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "56550,7000,57450,11000" +st "triangle" +ju 2 +blo "57250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4500,71000,5400" +st "triangle : IN unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,69000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "37250,9100,46750,10000" +st "SplineInterpolator" +blo "37250,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "37250,10000,44750,10900" +st "sineGen_tester" +blo "37250,10700" +) +) +gi *73 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "15000,6000,25500,6900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*74 (Grouping +uid 16,0 +optionalChildren [ +*75 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,50050,45700,50950" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,46050,53200,46950" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,48050,45700,48950" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,48050,31200,48950" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,47200,60200,48100" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "53200,46050,62700,46950" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "34000,46500,43000,47500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,49050,30700,49950" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,50050,31700,50950" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,49050,42200,49950" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *85 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*87 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,900,15500,3600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SplineInterpolator_test" +entityName "sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *88 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *89 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,8100,44500,9000" +st "User:" +blo "42000,8800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9000,44000,9000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 156,0 +activeModelName "Symbol:CDM" +) diff --git a/02-SplineInterpolator/SplineInterpolator/hds/sine@table/symbol.sb b/02-SplineInterpolator/SplineInterpolator/hds/sine@table/symbol.sb new file mode 100644 index 0000000..cb86774 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator/hds/sine@table/symbol.sb @@ -0,0 +1,1506 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2003,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 156,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 157,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 158,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 160,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 95,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 98,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 100,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 102,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 121,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 122,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 104,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 108,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 110,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 112,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 114,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 116,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 118,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 120,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 94,0 +vaOverrides [ +] +) +] +) +uid 155,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 162,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "inputBitNb" +type "positive" +value "16" +) +uid 149,0 +) +*44 (LogGeneric +generic (GiElement +name "outputBitNb" +type "positive" +value "16" +) +uid 150,0 +) +*45 (LogGeneric +generic (GiElement +name "tableAddressBitNb" +type "positive" +value "3" +) +uid 151,0 +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *47 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 125,0 +optionalChildren [ +*48 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 128,0 +) +*49 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 130,0 +) +*50 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 132,0 +) +*51 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 152,0 +) +*52 (MRCItem +litem &44 +pos 1 +dimension 20 +uid 153,0 +) +*53 (MRCItem +litem &45 +pos 2 +dimension 20 +uid 154,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 126,0 +optionalChildren [ +*54 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 134,0 +) +*55 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 138,0 +) +*56 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 140,0 +) +*57 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 142,0 +) +*58 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 144,0 +) +*59 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 146,0 +) +*60 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 148,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 124,0 +vaOverrides [ +] +) +] +) +uid 161,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@table/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@table/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@table" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sineTable" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineTable" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:46" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "sineTable" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sine@table/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator/hds/sineTable/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:46" +) +(vvPair +variable "unit" +value "sineTable" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "44200,13400,47000,14600" +st "sine" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,26500,11900" +st "sine : OUT signed (outputBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,36700,14600" +st "phase" +blo "33000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,26000,12800" +st "phase : IN unsigned (inputBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,42100,18700" +st "SplineInterpolator" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,37100,19600" +st "sineTable" +blo "32600,19400" +) +) +gi *64 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,22000,48000,26500" +st "Generic Declarations + +inputBitNb positive 16 +outputBitNb positive 16 +tableAddressBitNb positive 3 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "16" +) +(GiElement +name "outputBitNb" +type "positive" +value "16" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*65 (Grouping +uid 16,0 +optionalChildren [ +*66 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*67 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*71 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *76 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*78 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2,32,1395,973" +viewArea "-1063,-1063,74582,50419" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *79 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *80 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,2500,13700" +st "User:" +blo "0,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,2000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 209,0 +activeModelName "Symbol" +) diff --git a/02-SplineInterpolator/SplineInterpolator_test/hdl/sineGen_tester_test.vhd b/02-SplineInterpolator/SplineInterpolator_test/hdl/sineGen_tester_test.vhd new file mode 100644 index 0000000..16292e5 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hdl/sineGen_tester_test.vhd @@ -0,0 +1,19 @@ +ARCHITECTURE test OF sineGen_tester IS + + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + +BEGIN + + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + + reset <= '1', '0' after 2*clockPeriod; + + ------------------------------------------------------------------------------ + -- controls + step <= to_unsigned(1, step'length); + +END ARCHITECTURE test; diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sineGen_tester_test.vhd._fpf b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sineGen_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sineGen_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_struct.vhg._fpf b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tester_entity.vhg._fpf b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/.hdlsidedata/_sinegen_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tb._epf b/02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tb._epf new file mode 100644 index 0000000..5d5516c --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom sine@gen_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tester._epf b/02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tester._epf new file mode 100644 index 0000000..9adfb0b --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/_sinegen_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom sineGen_tester_test.vhd diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/struct.bd b/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/struct.bd new file mode 100644 index 0000000..0e7d699 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/struct.bd @@ -0,0 +1,3042 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "SplineInterpolator_test" +duName "sineGen_tester" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 421,0 +) +(Instance +name "I_DUT" +duLibraryName "SplineInterpolator" +duName "sineGen" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 1519,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sineGen_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineGen_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:41:39" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "sineGen_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sineGen_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:41:39" +) +(vvPair +variable "unit" +value "sineGen_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Net +uid 45,0 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 46,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,50000,14600,51000" +st "SIGNAL reset : std_ulogic +" +) +) +*2 (Net +uid 53,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +declText (MLText +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,49000,14600,50000" +st "SIGNAL clock : std_ulogic +" +) +) +*3 (Grouping +uid 110,0 +optionalChildren [ +*4 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,54000,61000,55000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,54500,44200,54500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,50000,65000,51000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,50500,61200,50500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,52000,61000,53000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,52500,44200,52500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,52000,44000,53000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,52500,40200,52500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,51000,81000,55000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,51200,75300,52400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*9 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,50000,81000,51000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,50500,65200,50500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,50000,61000,52000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "45350,50400,55650,51600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,53000,44000,54000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,53500,40200,53500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,54000,44000,55000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,54500,40200,54500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,53000,61000,54000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,53500,44200,53500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "40000,50000,81000,55000" +) +oxt "14000,66000,55000,71000" +) +*14 (Blk +uid 421,0 +shape (Rectangle +uid 422,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "15000,28000,69000,36000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 423,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*15 (Text +uid 424,0 +va (VaSet +) +xt "15700,36200,29500,37400" +st "SplineInterpolator_test" +blo "15700,37200" +tm "BdLibraryNameMgr" +) +*16 (Text +uid 425,0 +va (VaSet +) +xt "15700,37400,24800,38600" +st "sineGen_tester" +blo "15700,38400" +tm "BlkNameMgr" +) +*17 (Text +uid 426,0 +va (VaSet +) +xt "15700,38600,18500,39800" +st "I_tb" +blo "15700,39600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 427,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 428,0 +text (MLText +uid 429,0 +va (VaSet +) +xt "28000,36000,54200,39600" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) +clockFrequency = clockFrequency ( real ) +" +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*18 (Net +uid 909,0 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +declText (MLText +uid 910,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,52000,25500,53000" +st "SIGNAL sine : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*19 (Net +uid 917,0 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +declText (MLText +uid 918,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,55000,25700,56000" +st "SIGNAL triangle : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*20 (Net +uid 925,0 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +declText (MLText +uid 926,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,53000,26000,54000" +st "SIGNAL square : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*21 (Net +uid 933,0 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 7,0 +) +declText (MLText +uid 934,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,51000,26400,52000" +st "SIGNAL sawtooth : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*22 (Net +uid 996,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 8,0 +) +declText (MLText +uid 997,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,54000,25700,55000" +st "SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0) +" +) +) +*23 (SaComponent +uid 1519,0 +optionalChildren [ +*24 (CptPort +uid 1491,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1492,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,15625,35000,16375" +) +tg (CPTG +uid 1493,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1494,0 +va (VaSet +) +xt "36000,15400,39400,16600" +st "clock" +blo "36000,16400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*25 (CptPort +uid 1495,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1496,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,17625,35000,18375" +) +tg (CPTG +uid 1497,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1498,0 +va (VaSet +) +xt "36000,17400,39300,18600" +st "reset" +blo "36000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*26 (CptPort +uid 1499,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1500,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,9625,51750,10375" +) +tg (CPTG +uid 1501,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1502,0 +va (VaSet +) +xt "44800,9400,50000,10600" +st "sawtooth" +ju 2 +blo "50000,10400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*27 (CptPort +uid 1503,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1504,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,15625,51750,16375" +) +tg (CPTG +uid 1505,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1506,0 +va (VaSet +) +xt "47200,15400,50000,16600" +st "sine" +ju 2 +blo "50000,16400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 4,0 +) +) +) +*28 (CptPort +uid 1507,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1508,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,13625,51750,14375" +) +tg (CPTG +uid 1509,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1510,0 +va (VaSet +) +xt "45500,13400,50000,14600" +st "triangle" +ju 2 +blo "50000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +) +*29 (CptPort +uid 1511,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1512,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,11625,51750,12375" +) +tg (CPTG +uid 1513,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1514,0 +va (VaSet +) +xt "45900,11400,50000,12600" +st "square" +ju 2 +blo "50000,12400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*30 (CptPort +uid 1515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,9625,35000,10375" +) +tg (CPTG +uid 1517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1518,0 +va (VaSet +) +xt "36000,9400,38900,10600" +st "step" +blo "36000,10400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1520,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,6000,51000,20000" +) +oxt "32000,16000,48000,30000" +ttg (MlTextGroup +uid 1521,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*31 (Text +uid 1522,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,19800,46000,21000" +st "SplineInterpolator" +blo "35600,20800" +tm "BdLibraryNameMgr" +) +*32 (Text +uid 1523,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,20700,40100,21900" +st "sineGen" +blo "35600,21700" +tm "CptNameMgr" +) +*33 (Text +uid 1524,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,21600,39300,22800" +st "I_DUT" +blo "35600,22600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1525,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1526,0 +text (MLText +uid 1527,0 +va (VaSet +font "Verdana,8,0" +) +xt "35000,23600,54200,25600" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*34 (Wire +uid 47,0 +shape (OrthoPolyLine +uid 48,0 +va (VaSet +vasetType 3 +) +xt "31000,18000,34250,28000" +pts [ +"31000,28000" +"31000,18000" +"34250,18000" +] +) +start &14 +end &25 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 51,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 52,0 +va (VaSet +font "Verdana,12,0" +) +xt "31000,16600,35100,18000" +st "reset" +blo "31000,17800" +tm "WireNameMgr" +) +) +on &1 +) +*35 (Wire +uid 55,0 +shape (OrthoPolyLine +uid 56,0 +va (VaSet +vasetType 3 +) +xt "29000,16000,34250,28000" +pts [ +"29000,28000" +"29000,16000" +"34250,16000" +] +) +start &14 +end &24 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 59,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 60,0 +va (VaSet +font "Verdana,12,0" +) +xt "31000,14600,34800,16000" +st "clock" +blo "31000,15800" +tm "WireNameMgr" +) +) +on &2 +) +*36 (Wire +uid 911,0 +shape (OrthoPolyLine +uid 912,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,16000,55000,28000" +pts [ +"51750,16000" +"55000,16000" +"55000,28000" +] +) +start &27 +end &14 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 915,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 916,0 +va (VaSet +font "Verdana,12,0" +) +xt "53750,14600,57150,16000" +st "sine" +blo "53750,15800" +tm "WireNameMgr" +) +) +on &18 +) +*37 (Wire +uid 919,0 +shape (OrthoPolyLine +uid 920,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,14000,57000,28000" +pts [ +"51750,14000" +"57000,14000" +"57000,28000" +] +) +start &28 +end &14 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 923,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 924,0 +va (VaSet +font "Verdana,12,0" +) +xt "53750,12600,59350,14000" +st "triangle" +blo "53750,13800" +tm "WireNameMgr" +) +) +on &19 +) +*38 (Wire +uid 927,0 +shape (OrthoPolyLine +uid 928,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,12000,59000,28000" +pts [ +"51750,12000" +"59000,12000" +"59000,28000" +] +) +start &29 +end &14 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 931,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 932,0 +va (VaSet +font "Verdana,12,0" +) +xt "53750,10600,58950,12000" +st "square" +blo "53750,11800" +tm "WireNameMgr" +) +) +on &20 +) +*39 (Wire +uid 935,0 +shape (OrthoPolyLine +uid 936,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,10000,61000,28000" +pts [ +"51750,10000" +"61000,10000" +"61000,28000" +] +) +start &26 +end &14 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 939,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 940,0 +va (VaSet +font "Verdana,12,0" +) +xt "53750,8600,60550,10000" +st "sawtooth" +blo "53750,9800" +tm "WireNameMgr" +) +) +on &21 +) +*40 (Wire +uid 998,0 +shape (OrthoPolyLine +uid 999,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23000,10000,34250,28000" +pts [ +"34250,10000" +"23000,10000" +"23000,28000" +] +) +start &30 +end &14 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1002,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1003,0 +va (VaSet +font "Verdana,12,0" +) +xt "30250,8600,33850,10000" +st "step" +blo "30250,9800" +tm "WireNameMgr" +) +) +on &22 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *41 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*43 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*45 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*46 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*47 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*48 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*49 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*50 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1194,-1194,105025,56517" +cachedDiagramExtent "0,0,81000,56000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 90 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1601,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*52 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*53 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*55 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*56 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*58 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*59 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*61 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*62 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*64 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*65 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*67 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*69 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*71 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,41000,7000,42000" +st "Declarations" +blo "0,41800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,42000,3400,43000" +st "Ports:" +blo "0,42800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,43000,4800,44000" +st "Pre User:" +blo "0,43800" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,44000,21800,48000" +st "constant signalBitNb: positive := 16; +constant phaseBitNb: positive := 10; +constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,48000,9000,49000" +st "Diagram Signals:" +blo "0,48800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,41000,6000,42000" +st "Post User:" +blo "0,41800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,41000,0,41000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *72 (LEmptyRow +) +uid 1087,0 +optionalChildren [ +*73 (RefLabelRowHdr +) +*74 (TitleRowHdr +) +*75 (FilterRowHdr +) +*76 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*77 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*78 (GroupColHdr +tm "GroupColHdrMgr" +) +*79 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*80 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*81 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*82 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*83 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*84 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*85 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 1070,0 +) +*86 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 1072,0 +) +*87 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 1076,0 +) +*88 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +uid 1078,0 +) +*89 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 1080,0 +) +*90 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 7,0 +) +) +uid 1082,0 +) +*91 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 8,0 +) +) +uid 1084,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1100,0 +optionalChildren [ +*92 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *93 (MRCItem +litem &72 +pos 7 +dimension 20 +) +uid 1102,0 +optionalChildren [ +*94 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 1103,0 +) +*95 (MRCItem +litem &74 +pos 1 +dimension 23 +uid 1104,0 +) +*96 (MRCItem +litem &75 +pos 2 +hidden 1 +dimension 20 +uid 1105,0 +) +*97 (MRCItem +litem &85 +pos 0 +dimension 20 +uid 1071,0 +) +*98 (MRCItem +litem &86 +pos 1 +dimension 20 +uid 1073,0 +) +*99 (MRCItem +litem &87 +pos 2 +dimension 20 +uid 1077,0 +) +*100 (MRCItem +litem &88 +pos 3 +dimension 20 +uid 1079,0 +) +*101 (MRCItem +litem &89 +pos 4 +dimension 20 +uid 1081,0 +) +*102 (MRCItem +litem &90 +pos 5 +dimension 20 +uid 1083,0 +) +*103 (MRCItem +litem &91 +pos 6 +dimension 20 +uid 1085,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1106,0 +optionalChildren [ +*104 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 1107,0 +) +*105 (MRCItem +litem &78 +pos 1 +dimension 50 +uid 1108,0 +) +*106 (MRCItem +litem &79 +pos 2 +dimension 100 +uid 1109,0 +) +*107 (MRCItem +litem &80 +pos 3 +dimension 50 +uid 1110,0 +) +*108 (MRCItem +litem &81 +pos 4 +dimension 100 +uid 1111,0 +) +*109 (MRCItem +litem &82 +pos 5 +dimension 100 +uid 1112,0 +) +*110 (MRCItem +litem &83 +pos 6 +dimension 50 +uid 1113,0 +) +*111 (MRCItem +litem &84 +pos 7 +dimension 80 +uid 1114,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1101,0 +vaOverrides [ +] +) +] +) +uid 1086,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *112 (LEmptyRow +) +uid 1116,0 +optionalChildren [ +*113 (RefLabelRowHdr +) +*114 (TitleRowHdr +) +*115 (FilterRowHdr +) +*116 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*117 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*118 (GroupColHdr +tm "GroupColHdrMgr" +) +*119 (NameColHdr +tm "GenericNameColHdrMgr" +) +*120 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*121 (InitColHdr +tm "GenericValueColHdrMgr" +) +*122 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*123 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1128,0 +optionalChildren [ +*124 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *125 (MRCItem +litem &112 +pos 0 +dimension 20 +) +uid 1130,0 +optionalChildren [ +*126 (MRCItem +litem &113 +pos 0 +dimension 20 +uid 1131,0 +) +*127 (MRCItem +litem &114 +pos 1 +dimension 23 +uid 1132,0 +) +*128 (MRCItem +litem &115 +pos 2 +hidden 1 +dimension 20 +uid 1133,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1134,0 +optionalChildren [ +*129 (MRCItem +litem &116 +pos 0 +dimension 20 +uid 1135,0 +) +*130 (MRCItem +litem &118 +pos 1 +dimension 50 +uid 1136,0 +) +*131 (MRCItem +litem &119 +pos 2 +dimension 100 +uid 1137,0 +) +*132 (MRCItem +litem &120 +pos 3 +dimension 100 +uid 1138,0 +) +*133 (MRCItem +litem &121 +pos 4 +dimension 50 +uid 1139,0 +) +*134 (MRCItem +litem &122 +pos 5 +dimension 50 +uid 1140,0 +) +*135 (MRCItem +litem &123 +pos 6 +dimension 80 +uid 1141,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1129,0 +vaOverrides [ +] +) +] +) +uid 1115,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/symbol.sb b/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/symbol.sb new file mode 100644 index 0000000..f8469bf --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tb/symbol.sb @@ -0,0 +1,1244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds/sine@gen_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds/sine@gen_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds/sine@gen_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds/sineGen_tb" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineGen_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:00:04" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "sineGen_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds/sine@gen_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SplineInterpolator/Prefs/../SplineInterpolator_test/hds/sineGen_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "splineInterpolator" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:00:04" +) +(vvPair +variable "unit" +value "sineGen_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,34600,15700" +st "SplineInterpolator_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,28100,16600" +st "sineGen_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tester/interface b/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tester/interface new file mode 100644 index 0000000..bb632a7 --- /dev/null +++ b/02-SplineInterpolator/SplineInterpolator_test/hds/sine@gen_tester/interface @@ -0,0 +1,1807 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 28,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 22,0 +) +) +uid 434,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 23,0 +) +) +uid 436,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 24,0 +) +) +uid 438,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 25,0 +) +) +uid 440,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 26,0 +) +) +uid 442,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 27,0 +) +) +uid 444,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 28,0 +) +) +uid 446,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 117,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 118,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 119,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 435,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 437,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 439,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 441,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 443,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 445,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 447,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 122,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 123,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 124,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 125,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 126,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 127,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 128,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 101,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 131,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 180,0 +) +*54 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "10" +) +uid 182,0 +) +*55 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 374,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &41 +pos 3 +dimension 20 +) +uid 145,0 +optionalChildren [ +*58 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 146,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 147,0 +) +*60 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*61 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 181,0 +) +*62 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 183,0 +) +*63 (MRCItem +litem &55 +pos 2 +dimension 20 +uid 375,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*64 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 150,0 +) +*65 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 151,0 +) +*66 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 152,0 +) +*67 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 153,0 +) +*68 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 154,0 +) +*69 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 155,0 +) +*70 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 156,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 130,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sineGen_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sineGen_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:41:39" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SplineInterpolator_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SplineInterpolator_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "sineGen_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\02-SplineInterpolator\\Prefs\\..\\SplineInterpolator_test\\hds\\sineGen_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:41:39" +) +(vvPair +variable "unit" +value "sineGen_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 100,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 399,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 400,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 401,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 402,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,10800" +st "clock" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 403,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 22,0 +) +) +) +*73 (CptPort +uid 404,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 405,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 406,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 407,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,11100" +st "reset" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 408,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,61000,6800" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 23,0 +) +) +) +*74 (CptPort +uid 409,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 410,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 411,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 412,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "60300,7000,61700,13800" +st "sawtooth" +ju 2 +blo "61500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 413,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,72500,2800" +st "sawtooth : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 24,0 +) +) +) +*75 (CptPort +uid 414,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 415,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 416,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 417,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "54300,7000,55700,10400" +st "sine" +ju 2 +blo "55500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 418,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,72500,3600" +st "sine : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 25,0 +) +) +) +*76 (CptPort +uid 419,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 420,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 421,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 422,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "58300,7000,59700,12200" +st "square" +ju 2 +blo "59500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 423,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,72500,4400" +st "square : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 26,0 +) +) +) +*77 (CptPort +uid 424,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 425,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 426,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 427,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10600" +st "step" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 428,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,71000,7600" +st "step : OUT unsigned (phaseBitNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 6 +suid 27,0 +) +) +) +*78 (CptPort +uid 429,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 430,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 431,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 432,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "56300,7000,57700,12600" +st "triangle" +ju 2 +blo "57500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 433,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,72500,5200" +st "triangle : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 28,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,69000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "35600,9000,48400,10000" +st "SplineInterpolator_test" +blo "35600,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "35600,10000,43700,11000" +st "sineGen_tester" +blo "35600,10800" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "15000,6000,29400,11000" +st "Generic Declarations + +signalBitNb positive 16 +phaseBitNb positive 10 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "phaseBitNb" +type "positive" +value "10" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,50000,46600,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,46000,52900,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,48000,44700,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,48000,30800,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,47200,60800,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "53200,46000,55100,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "33350,46400,43650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,49000,30900,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,50000,31600,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,49000,43200,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*93 (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "0,900,13600,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "59,33,1075,723" +viewArea "-500,-500,85152,57543" +cachedDiagramExtent "0,0,72500,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SplineInterpolator_test" +entityName "sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,7600,45000,8600" +st "User:" +blo "42000,8400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,8600,44000,8600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 447,0 +activeModelName "Symbol:GEN" +) diff --git a/02-SplineInterpolator/splineInterpolator.bash b/02-SplineInterpolator/splineInterpolator.bash new file mode 100755 index 0000000..933ab09 --- /dev/null +++ b/02-SplineInterpolator/splineInterpolator.bash @@ -0,0 +1,32 @@ +#!/bin/bash + +#=============================================================================== +# waveformGenerator.bash +# Starts HDL designer based on the generic hdlDesigner.bash +# + +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +hdl_script_name="$design_directory/Scripts/hdlDesigner.bash" + +verbose=1 +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + + +#------------------------------------------------------------------------------- +# Main script +# +if [ -n "$verbose" ] ; then + echo "$SEPARATOR" + echo "Launching HDL Designer" + echo "${INDENT}Design name is $design_name" + echo "${INDENT}Start directory is $design_directory" + echo "${INDENT}HDL designer script is $hdl_script_name" +fi + +#------------------------------------------------------------------------------- +# Launch application +# +$hdl_script_name -v -d $design_directory -n $design_name -m hds.hdp diff --git a/02-SplineInterpolator/splineInterpolator.bat b/02-SplineInterpolator/splineInterpolator.bat new file mode 100644 index 0000000..efe9b97 --- /dev/null +++ b/02-SplineInterpolator/splineInterpolator.bat @@ -0,0 +1,79 @@ +::============================================================================== +:: eln_labs.bat +:: Starts HDL designer based on the generic hdlDesigner.bat +:: +@echo off + +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +:: TO BE MODIFIED +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +:: Define environment variables to be modified +:: You can change one or more values as needed +:: +set VERBOSE=1 + +:: Define required Tools to be present +set REQUIRE_LIBS=0 +set REQUIRE_HDS=1 +set REQUIRE_MODELSIM=1 + +:: Set project name +set design_name=%~n0 + +:: Manually override Library & Tools Folder location +::set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + +::set HDS_HOME=C:\eda\MentorGraphics\HDS +::set MODELSIM_HOME=C:\eda\MentorGraphics\Modelsim\win64 +::set ISE_VERSION=14.7 +::set ISE_HOME=C:\eda\Xilinx\%ISE_VERSION%\ISE_DS\ISE +::set LIBERO_HOME=C:\eda\Microsemi\Libero + +::set SCRATCH_DIR=C:\temp\eda\%username% +:: +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +::------------------------------------------------------------------------------ +:: Static environment variables +:: +set SEPARATOR="--------------------------------------------------------------------------------" +set INDENT=" " +set design_directory=%~dp0 +::remove trailing backslash +if %design_directory:~-1%==\ set design_directory=%design_directory:~0,-1% +pushd %design_directory% +set hdl_script_name="%design_directory:"=%\Scripts\hdlDesigner.bat" + +::------------------------------------------------------------------------------ +:: Main script +:: +if %VERBOSE% == 1 ( + echo "%SEPARATOR:"=%" + echo "-- HDL Designer Poject" + echo "%INDENT:"=%Design name is %design_name:"=%" + echo "%INDENT:"=%Start directory is %design_directory:"=%" + echo "%INDENT:"=%HDL designer script is %hdl_script_name:"=%" + echo. +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +if %VERBOSE% == 1 ( + set command=%hdl_script_name% -v -n %design_name% -d %design_directory% +) else ( + set command=%hdl_script_name% -n %design_name% -d %design_directory% +) +echo "Launch HDL Designer Script" +echo "%INDENT:"=%%command:"=%" +echo. +call %command% + +:end +popd +echo. +echo -- %~nx0 Finished! +echo %SEPARATOR% +echo. +if not %errorlevel% lss 1 pause +goto:eof diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order1_studentVersion.vhd b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order1_studentVersion.vhd new file mode 100644 index 0000000..c03bc9a --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order1_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF DAC IS +BEGIN + serialOut <= '0'; +END ARCHITECTURE studentVersion; diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order2_studentVersion.vhd b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order2_studentVersion.vhd new file mode 100644 index 0000000..fb41871 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl/DAC_order2_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE order2_studentVersion OF DAC IS +BEGIN + serialOut <= '0'; +END ARCHITECTURE order2_studentVersion; diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order1_studentVersion.vhd._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order1_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order1_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order2_studentVersion.vhd._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order2_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_DAC_order2_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhd._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhg._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/.hdlsidedata/_dac_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/@d@a@c/symbol.sb b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/@d@a@c/symbol.sb new file mode 100644 index 0000000..70f78a1 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/@d@a@c/symbol.sb @@ -0,0 +1,1585 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 141,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 142,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 143,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 144,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 145,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 146,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 83,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 86,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 88,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 90,0 +) +*23 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 109,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 110,0 +) +*25 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 111,0 +) +*26 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 112,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 84,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 92,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 96,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 98,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 100,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 102,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 104,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 106,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 82,0 +vaOverrides [ +] +) +] +) +uid 140,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 148,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 138,0 +) +] +) +pdm (PhysicalDM +uid 149,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 114,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 117,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 119,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 121,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 139,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 115,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 123,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 127,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 129,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 131,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 133,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 135,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 137,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 113,0 +vaOverrides [ +] +) +] +) +uid 147,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds/@d@a@c/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds/@d@a@c/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds/@d@a@c" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds/DAC" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DAC" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:06:08" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "DigitalToAnalogConverter" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/DigitalToAnalogConverter" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "DAC" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds/@d@a@c/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter/hds/DAC/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "digitalToAnalogConverter" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:06:08" +) +(vvPair +variable "unit" +value "DAC" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,21625,32000,22375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,21400,36400,22600" +st "clock" +blo "33000,22400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19000,13700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*63 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,39200,18600" +st "parallelIn" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,30000,12800" +st "parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*64 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "41601,17400,47001,18600" +st "serialOut" +ju 2 +blo "47001,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,19000,11900" +st "serialOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*65 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,23625,32000,24375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "33000,23400,36300,24600" +st "reset" +blo "33000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,18000,14600" +st "reset : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,14000,48000,26000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,25800,45100,26700" +st "DigitalToAnalogConverter" +blo "32600,26500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,26700,34100,27600" +st "DAC" +blo "32600,27400" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,29600,45000,32300" +st "Generic Declarations + +signalBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,47,1395,986" +viewArea "-1061,-1061,74571,50196" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,14600,2500,15500" +st "User:" +blo "0,15300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,2000,15500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 172,0 +activeModelName "Symbol" +) diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/_dac._epf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/_dac._epf new file mode 100644 index 0000000..f6c99fd --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds/_dac._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom DAC_order1_studentVersion.vhd diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hdl/DAC_tester_test.vhd b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hdl/DAC_tester_test.vhd new file mode 100644 index 0000000..843d64b --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hdl/DAC_tester_test.vhd @@ -0,0 +1,38 @@ +library ieee; + use ieee.math_real.all; + +ARCHITECTURE test OF DAC_tester IS + + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + + signal sineFrequency: real := 20.0E3; + signal tReal: real := 0.0; + signal outAmplitude: real := 1.0; + signal outReal: real := 0.0; + signal outUnsigned: unsigned(parallelIn'range); + +BEGIN + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + reset <= '1', '0' after 2*clockPeriod; + + ------------------------------------------------------------------------------ + -- time signals + process(sClock) + begin + if rising_edge(sClock) then + tReal <= tReal + 1.0/clockFrequency; + end if; + end process; + + outReal <= outAmplitude * ( sin(2.0*math_pi*sineFrequency*tReal) + 1.0) / 2.0; + + outUnsigned <= to_unsigned(integer(outReal * real(2**(outUnsigned'length)-1)), outUnsigned'length); + parallelIn <= outUnsigned; +-- parallelIn <= shift_left(to_unsigned(1, parallelIn'length), parallelIn'length-1); +-- parallelIn <= shift_left(to_unsigned(3, parallelIn'length), parallelIn'length-2); + +END ARCHITECTURE test; diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_DAC_tester_test.vhd._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_DAC_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_DAC_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_entity.vhg._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_struct.vhg._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tester_entity.vhg._fpf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/.hdlsidedata/_dac_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/struct.bd b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/struct.bd new file mode 100644 index 0000000..0e8b820 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/struct.bd @@ -0,0 +1,3271 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "DigitalToAnalogConverter_test" +duName "DAC_tester" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 421,0 +) +(Instance +name "I_filt" +duLibraryName "WaveformGenerator" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +mwi 0 +uid 1056,0 +) +(Instance +name "I_DUT" +duLibraryName "DigitalToAnalogConverter" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 1298,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\DAC_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DAC_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:43:18" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "DigitalToAnalogConverter_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/DigitalToAnalogConverter_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "DAC_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\DAC_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:43:18" +) +(vvPair +variable "unit" +value "DAC_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Net +uid 45,0 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 1,0 +) +declText (MLText +uid 46,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17000,15200,18000" +st "SIGNAL reset : std_ulogic" +) +) +*2 (Net +uid 53,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +declText (MLText +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13000,15200,14000" +st "SIGNAL clock : std_ulogic" +) +) +*3 (Grouping +uid 110,0 +optionalChildren [ +*4 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,54000,61000,55000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,54500,44200,54500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,50000,65000,51000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,50500,61200,50500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,52000,61000,53000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,52500,44200,52500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,52000,44000,53000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,52500,40200,52500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,51000,81000,55000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,51200,75300,52400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*9 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,50000,81000,51000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,50500,65200,50500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,50000,61000,52000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "45350,50400,55650,51600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,53000,44000,54000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,53500,40200,53500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,54000,44000,55000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,54500,40200,54500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,53000,61000,54000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "44200,53500,44200,53500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "40000,50000,81000,55000" +) +oxt "14000,66000,55000,71000" +) +*14 (Net +uid 362,0 +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +declText (MLText +uid 363,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16000,26400,17000" +st "SIGNAL parallelIn : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*15 (Net +uid 364,0 +decl (Decl +n "serialOut" +t "std_ulogic" +o 6 +suid 4,0 +) +declText (MLText +uid 365,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18000,15500,19000" +st "SIGNAL serialOut : std_ulogic" +) +) +*16 (Blk +uid 421,0 +shape (Rectangle +uid 422,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "1000,40000,79000,48000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 423,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*17 (Text +uid 424,0 +va (VaSet +) +xt "1700,48200,19500,49400" +st "DigitalToAnalogConverter_test" +blo "1700,49200" +tm "BdLibraryNameMgr" +) +*18 (Text +uid 425,0 +va (VaSet +) +xt "1700,49400,9100,50600" +st "DAC_tester" +blo "1700,50400" +tm "BlkNameMgr" +) +*19 (Text +uid 426,0 +va (VaSet +) +xt "1700,50600,6500,51800" +st "I_tester" +blo "1700,51600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 427,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 428,0 +text (MLText +uid 429,0 +va (VaSet +) +xt "2000,52000,28200,54400" +st "signalBitNb = signalBitNb ( positive ) +clockFrequency = clockFrequency ( real ) +" +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*20 (SaComponent +uid 1056,0 +optionalChildren [ +*21 (CptPort +uid 1040,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1041,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50250,27625,51000,28375" +) +tg (CPTG +uid 1042,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1043,0 +va (VaSet +) +xt "52000,27400,55400,28600" +st "clock" +blo "52000,28400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*22 (CptPort +uid 1044,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1045,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67000,23625,67750,24375" +) +tg (CPTG +uid 1046,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1047,0 +va (VaSet +) +xt "58700,23400,66000,24600" +st "lowpassOut" +ju 2 +blo "66000,24400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*23 (CptPort +uid 1048,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1049,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50250,29625,51000,30375" +) +tg (CPTG +uid 1050,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1051,0 +va (VaSet +) +xt "52000,29400,55300,30600" +st "reset" +blo "52000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*24 (CptPort +uid 1052,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1053,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50250,23625,51000,24375" +) +tg (CPTG +uid 1054,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1055,0 +va (VaSet +) +xt "52000,23400,57800,24600" +st "lowpassIn" +blo "52000,24400" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 1057,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "51000,20000,67000,32000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 1058,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 1059,0 +va (VaSet +font "Verdana,9,1" +) +xt "51600,31800,63100,33000" +st "WaveformGenerator" +blo "51600,32800" +tm "BdLibraryNameMgr" +) +*26 (Text +uid 1060,0 +va (VaSet +font "Verdana,9,1" +) +xt "51600,33000,56200,34200" +st "lowpass" +blo "51600,34000" +tm "CptNameMgr" +) +*27 (Text +uid 1061,0 +va (VaSet +font "Verdana,9,1" +) +xt "51600,34200,54900,35400" +st "I_filt" +blo "51600,35200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1062,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1063,0 +text (MLText +uid 1064,0 +va (VaSet +font "Verdana,8,0" +) +xt "51000,35600,71800,37600" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = lowpassShiftBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*28 (Net +uid 1081,0 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +declText (MLText +uid 1082,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15000,27300,16000" +st "SIGNAL lowpassOut : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*29 (Net +uid 1091,0 +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 9,0 +) +declText (MLText +uid 1092,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14000,27000,15000" +st "SIGNAL lowpassIn : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*30 (HdlText +uid 1099,0 +optionalChildren [ +*31 (EmbeddedText +uid 1104,0 +commentText (CommentText +uid 1105,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1106,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "35000,13000,51000,15000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1107,0 +va (VaSet +) +xt "35200,13200,50300,14400" +st " +LowpassIn <= (others => serialOut); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1100,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "35000,12000,51000,16000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1101,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 1102,0 +va (VaSet +) +xt "35400,16000,38000,17200" +st "eb1" +blo "35400,17000" +tm "HdlTextNameMgr" +) +*33 (Text +uid 1103,0 +va (VaSet +) +xt "35400,17000,36800,18200" +st "1" +blo "35400,18000" +tm "HdlTextNumberMgr" +) +] +) +) +*34 (SaComponent +uid 1298,0 +optionalChildren [ +*35 (CptPort +uid 1282,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1283,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,27625,19000,28375" +) +tg (CPTG +uid 1284,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1285,0 +va (VaSet +) +xt "20000,27400,23400,28600" +st "clock" +blo "20000,28400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*36 (CptPort +uid 1286,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1287,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,23625,19000,24375" +) +tg (CPTG +uid 1288,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1289,0 +va (VaSet +) +xt "20000,23400,26200,24600" +st "parallelIn" +blo "20000,24400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*37 (CptPort +uid 1290,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1291,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35000,23625,35750,24375" +) +tg (CPTG +uid 1292,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1293,0 +va (VaSet +) +xt "28601,23400,34001,24600" +st "serialOut" +ju 2 +blo "34001,24400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*38 (CptPort +uid 1294,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1295,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,29625,19000,30375" +) +tg (CPTG +uid 1296,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1297,0 +va (VaSet +) +xt "20000,29400,23300,30600" +st "reset" +blo "20000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 1299,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "19000,20000,35000,32000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 1300,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 1301,0 +va (VaSet +font "Verdana,9,1" +) +xt "19600,31800,34300,33000" +st "DigitalToAnalogConverter" +blo "19600,32800" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 1302,0 +va (VaSet +font "Verdana,9,1" +) +xt "19600,32700,22300,33900" +st "DAC" +blo "19600,33700" +tm "CptNameMgr" +) +*41 (Text +uid 1303,0 +va (VaSet +font "Verdana,9,1" +) +xt "19600,33600,23300,34800" +st "I_DUT" +blo "19600,34600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1304,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1305,0 +text (MLText +uid 1306,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,35600,37400,36600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*42 (Wire +uid 47,0 +shape (OrthoPolyLine +uid 48,0 +va (VaSet +vasetType 3 +) +xt "15000,30000,18250,40000" +pts [ +"15000,40000" +"15000,30000" +"18250,30000" +] +) +start &16 +end &38 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 51,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 52,0 +va (VaSet +font "Verdana,12,0" +) +xt "15000,28600,19100,30000" +st "reset" +blo "15000,29800" +tm "WireNameMgr" +) +) +on &1 +) +*43 (Wire +uid 55,0 +shape (OrthoPolyLine +uid 56,0 +va (VaSet +vasetType 3 +) +xt "13000,28000,18250,40000" +pts [ +"13000,40000" +"13000,28000" +"18250,28000" +] +) +start &16 +end &35 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 59,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 60,0 +va (VaSet +font "Verdana,12,0" +) +xt "15000,26600,18800,28000" +st "clock" +blo "15000,27800" +tm "WireNameMgr" +) +) +on &2 +) +*44 (Wire +uid 63,0 +shape (OrthoPolyLine +uid 64,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "9000,24000,18250,40000" +pts [ +"9000,40000" +"9000,24000" +"18250,24000" +] +) +start &16 +end &36 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 67,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 68,0 +va (VaSet +font "Verdana,12,0" +) +xt "9000,22600,16500,24000" +st "parallelIn" +blo "9000,23800" +tm "WireNameMgr" +) +) +on &14 +) +*45 (Wire +uid 366,0 +optionalChildren [ +*46 (BdJunction +uid 1114,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1115,0 +va (VaSet +vasetType 1 +) +xt "38600,23600,39400,24400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 367,0 +va (VaSet +vasetType 3 +) +xt "35750,24000,43000,40000" +pts [ +"35750,24000" +"43000,24000" +"43000,40000" +] +) +start &37 +end &16 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 370,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 371,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,22600,43500,24000" +st "serialOut" +blo "37000,23800" +tm "WireNameMgr" +) +) +on &15 +) +*47 (Wire +uid 1065,0 +shape (OrthoPolyLine +uid 1066,0 +va (VaSet +vasetType 3 +) +xt "47000,30000,50250,30000" +pts [ +"47000,30000" +"50250,30000" +] +) +end &23 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1071,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1072,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,28600,51100,30000" +st "reset" +blo "47000,29800" +tm "WireNameMgr" +) +) +on &1 +) +*48 (Wire +uid 1073,0 +shape (OrthoPolyLine +uid 1074,0 +va (VaSet +vasetType 3 +) +xt "47000,28000,50250,28000" +pts [ +"47000,28000" +"50250,28000" +] +) +end &21 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1079,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1080,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,26600,50800,28000" +st "clock" +blo "47000,27800" +tm "WireNameMgr" +) +) +on &2 +) +*49 (Wire +uid 1083,0 +shape (OrthoPolyLine +uid 1084,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67750,24000,71000,40000" +pts [ +"67750,24000" +"71000,24000" +"71000,40000" +] +) +start &22 +end &16 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1087,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1088,0 +va (VaSet +font "Verdana,12,0" +) +xt "69750,22600,78850,24000" +st "lowpassOut" +blo "69750,23800" +tm "WireNameMgr" +) +) +on &28 +) +*50 (Wire +uid 1093,0 +shape (OrthoPolyLine +uid 1094,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "47000,16000,50250,24000" +pts [ +"50250,24000" +"47000,24000" +"47000,16000" +] +) +start &24 +end &30 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1097,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1098,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,22600,51300,24000" +st "lowpassIn" +blo "44000,23800" +tm "WireNameMgr" +) +) +on &29 +) +*51 (Wire +uid 1108,0 +shape (OrthoPolyLine +uid 1109,0 +va (VaSet +vasetType 3 +) +xt "39000,16000,39000,24000" +pts [ +"39000,24000" +"39000,16000" +] +) +start &46 +end &30 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1112,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1113,0 +ro 270 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "37600,18000,39000,24500" +st "serialOut" +blo "38800,24500" +tm "WireNameMgr" +) +) +on &15 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *52 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*54 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*55 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*56 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*57 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*58 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*59 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*60 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*61 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1193,-1193,104962,56484" +cachedDiagramExtent "0,0,81000,55000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 90 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1552,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*63 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*64 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*66 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*67 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*69 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*70 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*72 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*73 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*75 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*76 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*78 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*80 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*82 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5000,7000,6000" +st "Declarations" +blo "0,5800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6000,3400,7000" +st "Ports:" +blo "0,6800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7000,4800,8000" +st "Pre User:" +blo "0,7800" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,8000,21800,12000" +st "constant signalBitNb: positive := 16; +constant lowpassShiftBitNb: positive := 8; +constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,12000,9000,13000" +st "Diagram Signals:" +blo "0,12800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5000,6000,6000" +st "Post User:" +blo "0,5800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5000,0,5000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *83 (LEmptyRow +) +uid 727,0 +optionalChildren [ +*84 (RefLabelRowHdr +) +*85 (TitleRowHdr +) +*86 (FilterRowHdr +) +*87 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*88 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*89 (GroupColHdr +tm "GroupColHdrMgr" +) +*90 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*91 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*92 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*93 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*94 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*95 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*96 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 1,0 +) +) +uid 714,0 +) +*97 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 716,0 +) +*98 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 718,0 +) +*99 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "serialOut" +t "std_ulogic" +o 6 +suid 4,0 +) +) +uid 720,0 +) +*100 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +uid 1089,0 +) +*101 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 9,0 +) +) +uid 1116,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 740,0 +optionalChildren [ +*102 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *103 (MRCItem +litem &83 +pos 6 +dimension 20 +) +uid 742,0 +optionalChildren [ +*104 (MRCItem +litem &84 +pos 0 +dimension 20 +uid 743,0 +) +*105 (MRCItem +litem &85 +pos 1 +dimension 23 +uid 744,0 +) +*106 (MRCItem +litem &86 +pos 2 +hidden 1 +dimension 20 +uid 745,0 +) +*107 (MRCItem +litem &96 +pos 0 +dimension 20 +uid 715,0 +) +*108 (MRCItem +litem &97 +pos 1 +dimension 20 +uid 717,0 +) +*109 (MRCItem +litem &98 +pos 2 +dimension 20 +uid 719,0 +) +*110 (MRCItem +litem &99 +pos 3 +dimension 20 +uid 721,0 +) +*111 (MRCItem +litem &100 +pos 4 +dimension 20 +uid 1090,0 +) +*112 (MRCItem +litem &101 +pos 5 +dimension 20 +uid 1117,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 746,0 +optionalChildren [ +*113 (MRCItem +litem &87 +pos 0 +dimension 20 +uid 747,0 +) +*114 (MRCItem +litem &89 +pos 1 +dimension 50 +uid 748,0 +) +*115 (MRCItem +litem &90 +pos 2 +dimension 100 +uid 749,0 +) +*116 (MRCItem +litem &91 +pos 3 +dimension 50 +uid 750,0 +) +*117 (MRCItem +litem &92 +pos 4 +dimension 100 +uid 751,0 +) +*118 (MRCItem +litem &93 +pos 5 +dimension 100 +uid 752,0 +) +*119 (MRCItem +litem &94 +pos 6 +dimension 50 +uid 753,0 +) +*120 (MRCItem +litem &95 +pos 7 +dimension 80 +uid 754,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 741,0 +vaOverrides [ +] +) +] +) +uid 726,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *121 (LEmptyRow +) +uid 756,0 +optionalChildren [ +*122 (RefLabelRowHdr +) +*123 (TitleRowHdr +) +*124 (FilterRowHdr +) +*125 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*126 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*127 (GroupColHdr +tm "GroupColHdrMgr" +) +*128 (NameColHdr +tm "GenericNameColHdrMgr" +) +*129 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*130 (InitColHdr +tm "GenericValueColHdrMgr" +) +*131 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*132 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 768,0 +optionalChildren [ +*133 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *134 (MRCItem +litem &121 +pos 0 +dimension 20 +) +uid 770,0 +optionalChildren [ +*135 (MRCItem +litem &122 +pos 0 +dimension 20 +uid 771,0 +) +*136 (MRCItem +litem &123 +pos 1 +dimension 23 +uid 772,0 +) +*137 (MRCItem +litem &124 +pos 2 +hidden 1 +dimension 20 +uid 773,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 774,0 +optionalChildren [ +*138 (MRCItem +litem &125 +pos 0 +dimension 20 +uid 775,0 +) +*139 (MRCItem +litem &127 +pos 1 +dimension 50 +uid 776,0 +) +*140 (MRCItem +litem &128 +pos 2 +dimension 100 +uid 777,0 +) +*141 (MRCItem +litem &129 +pos 3 +dimension 100 +uid 778,0 +) +*142 (MRCItem +litem &130 +pos 4 +dimension 50 +uid 779,0 +) +*143 (MRCItem +litem &131 +pos 5 +dimension 50 +uid 780,0 +) +*144 (MRCItem +litem &132 +pos 6 +dimension 80 +uid 781,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 769,0 +vaOverrides [ +] +) +] +) +uid 755,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb new file mode 100644 index 0000000..8d6c107 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb @@ -0,0 +1,1244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds/@d@a@c_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds/DAC_tb" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DAC_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:05:57" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "DigitalToAnalogConverter_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/DigitalToAnalogConverter_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "DAC_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds/@d@a@c_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/DigitalToAnalogConverter/Prefs/../DigitalToAnalogConverter_test/hds/DAC_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "digitalToAnalogConverter" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:05:57" +) +(vvPair +variable "unit" +value "DAC_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,37600,15700" +st "DigitalToAnalogConverter_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,25600,16600" +st "DAC_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tester/interface b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tester/interface new file mode 100644 index 0000000..cee3114 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/@d@a@c_tester/interface @@ -0,0 +1,1653 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 20,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 16,0 +) +) +uid 380,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 17,0 +) +) +uid 382,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 18,0 +) +) +uid 384,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 19,0 +) +) +uid 386,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "serialOut" +t "std_ulogic" +o 6 +suid 20,0 +) +) +uid 388,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 381,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 383,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 385,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 387,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 389,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 166,0 +) +*50 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 330,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 167,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 331,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\DAC_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DAC_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:43:18" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "DigitalToAnalogConverter_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/DigitalToAnalogConverter_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "DAC_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\@d@a@c_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\..\\DigitalToAnalogConverter_test\\hds\\DAC_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:43:18" +) +(vvPair +variable "unit" +value "DAC_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 355,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 356,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 357,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 358,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,10800" +st "clock" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 359,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 16,0 +) +) +) +*67 (CptPort +uid 360,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 361,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84625,5250,85375,6000" +) +tg (CPTG +uid 362,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 363,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "84300,7000,85700,16100" +st "lowpassOut" +ju 2 +blo "85500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 364,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,73500,2800" +st "lowpassOut : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 17,0 +) +) +) +*68 (CptPort +uid 365,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 366,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 367,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 368,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,14500" +st "parallelIn" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 369,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "parallelIn : OUT unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 18,0 +) +) +) +*69 (CptPort +uid 370,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 371,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 372,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 373,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,11100" +st "reset" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 374,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 19,0 +) +) +) +*70 (CptPort +uid 375,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 376,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 377,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 378,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "56300,7000,57700,13500" +st "serialOut" +ju 2 +blo "57500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 379,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62000,3600" +st "serialOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "serialOut" +t "std_ulogic" +o 6 +suid 20,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,93000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "45950,9000,62050,10000" +st "DigitalToAnalogConverter_test" +blo "45950,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "45950,10000,52350,11000" +st "DAC_tester" +blo "45950,10800" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "27000,6000,41400,10000" +st "Generic Declarations + +signalBitNb positive 16 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,50000,46600,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,46000,52900,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,48000,44700,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,48000,30800,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,47200,60800,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "53200,46000,55100,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "33350,46400,43650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,49000,30900,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,50000,31600,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,49000,46300,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*85 (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "0,900,13600,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "59,6,1075,696" +viewArea "-500,-500,85152,57543" +cachedDiagramExtent "0,0,93000,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "DigitalToAnalogConverter_test" +entityName "DAC_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,6000,45000,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 389,0 +activeModelName "Symbol:GEN" +) diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tb._epf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tb._epf new file mode 100644 index 0000000..066bc61 --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom @d@a@c_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tester._epf b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tester._epf new file mode 100644 index 0000000..2a4c41f --- /dev/null +++ b/03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds/_dac_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom DAC_tester_test.vhd diff --git a/03-DigitalToAnalogConverter/Prefs/hds.hdp b/03-DigitalToAnalogConverter/Prefs/hds.hdp new file mode 100644 index 0000000..8d4c2df --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds.hdp @@ -0,0 +1,31 @@ +[Concat] +[ModelSim] +DigitalToAnalogConverter = $SCRATCH_DIR/DigitalToAnalogConverter +DigitalToAnalogConverter_test = $SCRATCH_DIR/DigitalToAnalogConverter_test +SplineInterpolator = $SCRATCH_DIR/SplineInterpolator +SplineInterpolator_test = $SCRATCH_DIR/SplineInterpolator_test +WaveformGenerator = $SCRATCH_DIR/WaveformGenerator +WaveformGenerator_test = $SCRATCH_DIR/WaveformGenerator_test +[hdl] +DigitalToAnalogConverter = $HDS_PROJECT_DIR/../DigitalToAnalogConverter/hdl +DigitalToAnalogConverter_test = $HDS_PROJECT_DIR/../DigitalToAnalogConverter_test/hdl +ieee = $HDS_HOME/hdl_libs/ieee/hdl +SplineInterpolator = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator/hdl +SplineInterpolator_test = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator_test/hdl +std = $HDS_HOME/hdl_libs/std/hdl +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hdl +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hdl +[hds] +DigitalToAnalogConverter = $HDS_PROJECT_DIR/../DigitalToAnalogConverter/hds +DigitalToAnalogConverter_test = $HDS_PROJECT_DIR/../DigitalToAnalogConverter_test/hds +ieee = $HDS_HOME/hdl_libs/ieee/hds +SplineInterpolator = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator/hds +SplineInterpolator_test = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator_test/hds +std = $HDS_HOME/hdl_libs/std/hds +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hds +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hds +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/shared.hdp b/03-DigitalToAnalogConverter/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/hds_team_prefs b/03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/title_block.tmpl b/03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/hds_team_prefs b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/title_block.tmpl b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/hds_team_prefs b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/title_block.tmpl b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..c09cedf --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6092 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/04-Lissajous/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/03-DigitalToAnalogConverter/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "899x918--1+57" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "DigitalToAnalogConverter" +showingHierarchy 0 +openLibs [ +"DigitalToAnalogConverter" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "DigitalToAnalogConverter_test" +showingHierarchy 0 +openLibs [ +"DigitalToAnalogConverter_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 1739 +yPos 57 +width 1066 +height 937 +activeSidePanelTab 2 +activeLibraryTab 2 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +) +] diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..f0a0260 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/DAC.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/hds_user_prefs b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/generate.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/hds_user_prefs b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..63ce98f --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6842 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\03-DigitalToAnalogConverter\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\03-DigitalToAnalogConverter\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\03-DigitalToAnalogConverter\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\03-DigitalToAnalogConverter\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "1040x667+-1326+141" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "DigitalToAnalogConverter" +showingHierarchy 0 +openLibs [ +"DigitalToAnalogConverter" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "DigitalToAnalogConverter_test" +showingHierarchy 0 +openLibs [ +"DigitalToAnalogConverter_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 0 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/generate.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..f0a0260 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/DAC.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/03-DigitalToAnalogConverter/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/03-DigitalToAnalogConverter/Scripts/cleanGenerated.bash b/03-DigitalToAnalogConverter/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/03-DigitalToAnalogConverter/Scripts/cleanGenerated.bat b/03-DigitalToAnalogConverter/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/03-DigitalToAnalogConverter/Scripts/cleanScratch.bat b/03-DigitalToAnalogConverter/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/03-DigitalToAnalogConverter/Scripts/generateSSHKey.bash b/03-DigitalToAnalogConverter/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/03-DigitalToAnalogConverter/Scripts/hdlDesigner.bash b/03-DigitalToAnalogConverter/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/03-DigitalToAnalogConverter/Scripts/hdlDesigner.bat b/03-DigitalToAnalogConverter/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/03-DigitalToAnalogConverter/Scripts/searchPaths.bat b/03-DigitalToAnalogConverter/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/03-DigitalToAnalogConverter/Scripts/trimLibs.pl b/03-DigitalToAnalogConverter/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/03-DigitalToAnalogConverter/Scripts/update_ise.pl b/03-DigitalToAnalogConverter/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/03-DigitalToAnalogConverter/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/ '0'); + elsif rising_edge(clock) then + if quantized = '0' then + integrator <= integrator + parallelIn1; + else + integrator <= integrator + parallelIn1 - 2**parallelIn'length; + end if; + end if; + end process integrate; + + quantized <= integrator(integrator'high); + + serialOut <= quantized; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.sineGen.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:40 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sineGen IS + GENERIC( + signalBitNb : positive := 16; + phaseBitNb : positive := 10 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + step : IN unsigned (phaseBitNb-1 DOWNTO 0); + sawtooth : OUT unsigned (signalBitNb-1 DOWNTO 0); + sine : OUT unsigned (signalBitNb-1 DOWNTO 0); + square : OUT unsigned (signalBitNb-1 DOWNTO 0); + triangle : OUT unsigned (signalBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sineGen ; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCoefficients.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:20 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCoefficients IS + GENERIC( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + +-- Declarations + +END interpolatorCoefficients ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCoefficients IS +BEGIN + + calcCoeffs: process(interpolateLinear, sample1, sample2, sample3, sample4) + begin + if interpolateLinear = '1' then + a <= (others => '0'); + b <= (others => '0'); + c <= resize(2*sample3, c'length) + - resize(2*sample2, c'length); + d <= resize( sample2, d'length); + else + a <= resize( sample4, a'length) + - resize(3*sample3, a'length) + + resize(3*sample2, a'length) + - resize( sample1, a'length); + b <= resize(2*sample1, b'length) + - resize(5*sample2, b'length) + + resize(4*sample3, b'length) + - resize( sample4, b'length); + c <= resize( sample3, c'length) + - resize( sample1, c'length); + d <= resize( sample2, d'length); + end if; + end process calcCoeffs; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity WaveformGenerator.sawtoothGen.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothGen IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END sawtoothGen ; + + + + + +ARCHITECTURE masterVersion OF sawtoothGen IS + + signal counter: unsigned(sawtooth'range); + +begin + + count: process(reset, clock) + begin + if reset = '1' then + counter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + counter <= counter + step; + end if; + end if; + end process count; + + sawtooth <= counter; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorShiftRegister.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:24 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorShiftRegister IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + shiftSamples : IN std_ulogic; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END interpolatorShiftRegister ; + + + + + +ARCHITECTURE masterVersion OF interpolatorShiftRegister IS + + -- signal sample4_int: signed(sampleIn'range); + -- signal sample3_int: signed(sampleIn'range); + -- signal sample2_int: signed(sampleIn'range); + -- signal sample1_int: signed(sampleIn'range); + + type samplesArray is array(3 downto 0) of signed(sampleIn'range); + signal samples: samplesArray; + +begin + + shiftThem: process(reset, clock) + begin + if reset = '1' then + samples <= (others=>(others=>'0')); + -- sample1_int <= (others => '0'); + -- sample2_int <= (others => '0'); + -- sample3_int <= (others => '0'); + -- sample4_int <= (others => '0'); + elsif rising_edge(clock) then + if shiftSamples = '1' then + -- sample1_int <= sample2_int; + -- sample2_int <= sample3_int; + -- sample3_int <= sample4_int; + -- sample4_int <= sampleIn; + samples(0) <= samples(1); + samples(1) <= samples(2); + samples(2) <= samples(3); + samples(3) <= sampleIn; + end if; + end if; + end process shiftThem; + + sample4 <= samples(3); + sample3 <= samples(2); + sample2 <= samples(1); + sample1 <= samples(0); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.sineTable.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:46 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sineTable IS + GENERIC( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sineTable ; + + + + + +ARCHITECTURE masterVersion OF sineTable IS + + signal changeSign : std_uLogic; + signal flipPhase : std_uLogic; + signal phaseTableAddress1 : unsigned(tableAddressBitNb-1 downto 0); + signal phaseTableAddress2 : unsigned(phaseTableAddress1'range); + signal quarterSine : signed(sine'range); + + signal shiftPhase : std_uLogic := '0'; -- can be used to build a cosine + +begin + + changeSign <= phase(phase'high); + flipPhase <= phase(phase'high-1); + + phaseTableAddress1 <= phase(phase'high-2 downto phase'high-2-tableAddressBitNb+1); + + checkPhase: process(flipPhase, shiftPhase, phaseTableAddress1) + begin + if (flipPhase xor shiftPhase) = '0' then + phaseTableAddress2 <= phaseTableAddress1; + else + phaseTableAddress2 <= 0 - phaseTableAddress1; + end if; + end process checkPhase; + + + quarterTable: process(phaseTableAddress2, flipPhase, shiftPhase) + begin + case to_integer(phaseTableAddress2) is + when 0 => if (flipPhase xor shiftPhase) = '0' then + quarterSine <= to_signed(16#0000#, quarterSine'length); + else + quarterSine <= to_signed(16#7FFF#, quarterSine'length); + end if; + when 1 => quarterSine <= to_signed(16#18F9#, quarterSine'length); + when 2 => quarterSine <= to_signed(16#30FB#, quarterSine'length); + when 3 => quarterSine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterSine <= to_signed(16#5A82#, quarterSine'length); + when 5 => quarterSine <= to_signed(16#6A6D#, quarterSine'length); + when 6 => quarterSine <= to_signed(16#7641#, quarterSine'length); + when 7 => quarterSine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterSine <= (others => '-'); + end case; + end process quarterTable; + + checkSign: process(changeSign, flipPhase, shiftPhase, quarterSine) + begin + if (changeSign xor (flipPhase and shiftPhase)) = '0' then + sine <= quarterSine; + else + sine <= 0 - quarterSine; + end if; + end process checkSign; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.resizer.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:36 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY resizer IS + GENERIC( + inputBitNb : positive := 16; + outputBitNb : positive := 16 + ); + PORT( + resizeOut : OUT unsigned (outputBitNb-1 DOWNTO 0); + resizeIn : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END resizer ; + + + + + +ARCHITECTURE masterVersion OF resizer IS + +BEGIN + + outGtIn: if resizeOut'length > resizeIn'length generate + begin + resizeOut <= shift_left( + resize( + resizeIn, + resizeOut'length + ), + resizeOut'length-resizeIn'length + ); + end generate outGtIn; + + outEqIn: if resizeOut'length = resizeIn'length generate + begin + resizeOut <= resizeIn; + end generate outEqIn; + + outLtIn: if resizeOut'length < resizeIn'length generate + begin + resizeOut <= resize( + shift_right( + resizeIn, + resizeIn'length-resizeOut'length + ), + resizeOut'length + ); + end generate outLtIn; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCalculatePolynom.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCalculatePolynom IS + GENERIC( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + restartPolynom : IN std_ulogic; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorCalculatePolynom ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCalculatePolynom IS + + constant additionalBitNb: positive := 1; + constant internalsBitNb: positive := signalBitNb + 3*oversamplingBitNb + 1 + + additionalBitNb; + signal x: signed(internalsBitNb-1 downto 0); + signal u: signed(internalsBitNb-1 downto 0); + signal v: signed(internalsBitNb-1 downto 0); + signal w: signed(internalsBitNb-1 downto 0); + +BEGIN + + iterativePolynom: process(reset, clock) + begin + if reset = '1' then + x <= (others => '0'); + u <= (others => '0'); + v <= (others => '0'); + w <= (others => '0'); + sampleOut <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + if restartPolynom = '1' then + x <= shift_left(resize(2*d, x'length), 3*oversamplingBitNb); + u <= resize(a, u'length) + + shift_left(resize(b, u'length), oversamplingBitNb) + + shift_left(resize(c, u'length), 2*oversamplingBitNb); + v <= resize(6*a, v'length) + + shift_left(resize(2*b, v'length), oversamplingBitNb); + w <= resize(6*a, w'length); + sampleOut <= resize(d, sampleOut'length); + else + x <= x + u; + u <= u + v; + v <= v + w; + sampleOut <= resize( + shift_right(x, 3*oversamplingBitNb+1), sampleOut'length + ); + -- limit overflow + if x(x'high downto x'high-additionalBitNb) = "01" then + sampleOut <= not shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + -- limit underflow + if x(x'high downto x'high-additionalBitNb) = "10" then + sampleOut <= shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + end if; + end if; + end if; + end process iterativePolynom; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity WaveformGenerator.sawtoothToSquare.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothToSquare IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + square : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sawtoothToSquare ; + + + + + +ARCHITECTURE masterVersion OF sawtoothToSquare IS +BEGIN + + square <= (others => sawtooth(sawtooth'high)); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity WaveformGenerator.sawtoothToTriangle.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothToTriangle IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + triangle : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sawtoothToTriangle ; + + + + + +ARCHITECTURE masterVersion OF sawtoothToTriangle IS + + signal MSB: std_uLogic; + signal triangleInt: unsigned(triangle'range); + +begin + + MSB <= sawtooth(sawtooth'high); + + foldDown: process(MSB, sawtooth) + begin + if MSB = '0' then + triangleInt <= sawtooth; + else + triangleInt <= not sawtooth; + end if; + end process foldDown; + + triangle <= triangleInt(triangleInt'high-1 downto 0) & '0'; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.interpolatorTrigger.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:28 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorTrigger IS + GENERIC( + counterBitNb : positive := 4 + ); + PORT( + triggerOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorTrigger ; + + + + + +ARCHITECTURE masterVersion OF interpolatorTrigger IS + + signal triggerCounter: unsigned(counterBitNb-1 downto 0); + +BEGIN + + count: process(reset, clock) + begin + if reset = '1' then + triggerCounter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + triggerCounter <= triggerCounter + 1; + end if; + end if; + end process count; + + trig: process(triggerCounter, en) + begin + if triggerCounter = 0 then + triggerOut <= en; + else + triggerOut <= '0'; + end if; + end process trig; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.offsetToUnsigned.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:32 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY offsetToUnsigned IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END offsetToUnsigned ; + + + + + +ARCHITECTURE masterVersion OF offsetToUnsigned IS + +BEGIN + + unsignedOut <= not(signedIn(signedIn'high)) & unsigned(signedIn(signedIn'high-1 downto 0)); + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture SplineInterpolator.sineGen.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:42:04 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY SplineInterpolator; +LIBRARY WaveformGenerator; + +ARCHITECTURE struct OF sineGen IS + + -- Architecture declarations + constant tableAddressBitNb : positive := 3; + constant sampleCountBitNb : positive := phaseBitNb-2-tableAddressBitNb; + constant coeffBitNb : positive := signalBitNb+4; + + -- Internal signal declarations + SIGNAL a : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL b : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL c : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL d : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_ulogic; + SIGNAL newPolynom : std_ulogic; + SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL sample1 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sample2 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sample3 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sample4 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sineSamples : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sineSigned : signed(signalBitNb-1 DOWNTO 0); + + -- Implicit buffer signal declarations + SIGNAL sawtooth_internal : unsigned (signalBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT interpolatorCalculatePolynom + GENERIC ( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + restartPolynom : IN std_ulogic ; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorCoefficients + GENERIC ( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT ( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorShiftRegister + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + shiftSamples : IN std_ulogic ; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT interpolatorTrigger + GENERIC ( + counterBitNb : positive := 4 + ); + PORT ( + triggerOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT offsetToUnsigned + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT resizer + GENERIC ( + inputBitNb : positive := 16; + outputBitNb : positive := 16 + ); + PORT ( + resizeOut : OUT unsigned (outputBitNb-1 DOWNTO 0); + resizeIn : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sineTable + GENERIC ( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT ( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sawtoothGen + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic ; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT sawtoothToSquare + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + square : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sawtoothToTriangle + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + triangle : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : interpolatorCalculatePolynom USE ENTITY SplineInterpolator.interpolatorCalculatePolynom; + FOR ALL : interpolatorCoefficients USE ENTITY SplineInterpolator.interpolatorCoefficients; + FOR ALL : interpolatorShiftRegister USE ENTITY SplineInterpolator.interpolatorShiftRegister; + FOR ALL : interpolatorTrigger USE ENTITY SplineInterpolator.interpolatorTrigger; + FOR ALL : offsetToUnsigned USE ENTITY SplineInterpolator.offsetToUnsigned; + FOR ALL : resizer USE ENTITY SplineInterpolator.resizer; + FOR ALL : sawtoothGen USE ENTITY WaveformGenerator.sawtoothGen; + FOR ALL : sawtoothToSquare USE ENTITY WaveformGenerator.sawtoothToSquare; + FOR ALL : sawtoothToTriangle USE ENTITY WaveformGenerator.sawtoothToTriangle; + FOR ALL : sineTable USE ENTITY SplineInterpolator.sineTable; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 2 eb2 + logic1 <= '1'; + + -- HDL Embedded Text Block 3 eb3 + logic0 <= '0'; + + + -- Instance port mappings. + I_spline : interpolatorCalculatePolynom + GENERIC MAP ( + signalBitNb => signalBitNb, + coeffBitNb => coeffBitNb, + oversamplingBitNb => sampleCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + restartPolynom => newPolynom, + d => d, + sampleOut => sineSigned, + c => c, + b => b, + a => a, + en => logic1 + ); + I_coeffs : interpolatorCoefficients + GENERIC MAP ( + bitNb => signalBitNb, + coeffBitNb => coeffBitNb + ) + PORT MAP ( + sample1 => sample1, + sample2 => sample2, + sample3 => sample3, + sample4 => sample4, + a => a, + b => b, + c => c, + d => d, + interpolateLinear => logic0 + ); + I_shReg : interpolatorShiftRegister + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + shiftSamples => newPolynom, + sampleIn => sineSamples, + sample1 => sample1, + sample2 => sample2, + sample3 => sample3, + sample4 => sample4 + ); + I_trig : interpolatorTrigger + GENERIC MAP ( + counterBitNb => sampleCountBitNb + ) + PORT MAP ( + triggerOut => newPolynom, + clock => clock, + reset => reset, + en => logic1 + ); + I_unsigned : offsetToUnsigned + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + unsignedOut => sine, + signedIn => sineSigned + ); + I_size : resizer + GENERIC MAP ( + inputBitNb => phaseBitNb, + outputBitNb => signalBitNb + ) + PORT MAP ( + resizeOut => sawtooth_internal, + resizeIn => phase + ); + I_sin : sineTable + GENERIC MAP ( + inputBitNb => phaseBitNb, + outputBitNb => signalBitNb, + tableAddressBitNb => tableAddressBitNb + ) + PORT MAP ( + sine => sineSamples, + phase => phase + ); + I_saw : sawtoothGen + GENERIC MAP ( + bitNb => phaseBitNb + ) + PORT MAP ( + sawtooth => phase, + clock => clock, + reset => reset, + step => step, + en => logic1 + ); + I_square : sawtoothToSquare + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + square => square, + sawtooth => sawtooth_internal + ); + I_tri : sawtoothToTriangle + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + triangle => triangle, + sawtooth => sawtooth_internal + ); + + -- Implicit buffered output assignments + sawtooth <= sawtooth_internal; + +END struct; + + + + +-- +-- VHDL Architecture Lissajous.lissajousGenerator.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:47:09 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY DigitalToAnalogConverter; +LIBRARY SplineInterpolator; + +ARCHITECTURE struct OF lissajousGenerator IS + + -- Architecture declarations + + -- Internal signal declarations + SIGNAL sineX : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL sineY : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL squareY : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL stepXUnsigned : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL stepYUnsigned : unsigned(phaseBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT DAC + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + serialOut : OUT std_ulogic ; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT sineGen + GENERIC ( + signalBitNb : positive := 16; + phaseBitNb : positive := 10 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + step : IN unsigned (phaseBitNb-1 DOWNTO 0); + sawtooth : OUT unsigned (signalBitNb-1 DOWNTO 0); + sine : OUT unsigned (signalBitNb-1 DOWNTO 0); + square : OUT unsigned (signalBitNb-1 DOWNTO 0); + triangle : OUT unsigned (signalBitNb-1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : DAC USE ENTITY DigitalToAnalogConverter.DAC; + FOR ALL : sineGen USE ENTITY SplineInterpolator.sineGen; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + triggerOut <= squareY(squareY'high); + + -- HDL Embedded Text Block 2 eb2 + stepXUnsigned <= to_unsigned(stepX, stepXUnsigned'length); + + -- HDL Embedded Text Block 3 eb3 + stepYUnsigned <= to_unsigned(stepY, stepYUnsigned'length); + + + -- Instance port mappings. + I_dacX : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => xOut, + parallelIn => sineX, + clock => clock, + reset => reset + ); + I_dacY : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => yOut, + parallelIn => sineY, + clock => clock, + reset => reset + ); + I_sinX : sineGen + GENERIC MAP ( + signalBitNb => signalBitNb, + phaseBitNb => phaseBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + step => stepXUnsigned, + sawtooth => OPEN, + sine => sineX, + square => OPEN, + triangle => OPEN + ); + I_sinY : sineGen + GENERIC MAP ( + signalBitNb => signalBitNb, + phaseBitNb => phaseBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + step => stepYUnsigned, + sawtooth => OPEN, + sine => sineY, + square => squareY, + triangle => OPEN + ); + +END struct; + + + + +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; + + + + +-- +-- VHDL Architecture Board.lissajousGenerator_circuit_EBS3.masterVersion +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 17:45:49 01.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY Board; +LIBRARY Lattice; +LIBRARY Lissajous; + +ARCHITECTURE masterVersion OF lissajousGenerator_circuit_EBS3 IS + + -- Architecture declarations + constant signalBitNb: positive := 16; + constant phaseBitNb: positive := 17; + constant stepX: positive := 3; + constant stepY: positive := 4; + + -- Internal signal declarations + SIGNAL clkSys : std_ulogic; + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_uLogic; + SIGNAL reset : std_ulogic; + SIGNAL resetSynch : std_ulogic; + SIGNAL resetSynch_N : std_ulogic; + + + -- Component Declarations + COMPONENT DFF + PORT ( + CLK : IN std_uLogic ; + CLR : IN std_uLogic ; + D : IN std_uLogic ; + Q : OUT std_uLogic + ); + END COMPONENT; + COMPONENT inverterIn + PORT ( + in1 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT pll + PORT ( + clkIn100M : IN std_ulogic ; + en75M : IN std_ulogic ; + en50M : IN std_ulogic ; + en10M : IN std_ulogic ; + clk60MHz : OUT std_ulogic ; + clk75MHz : OUT std_ulogic ; + clk50MHz : OUT std_ulogic ; + clk10MHz : OUT std_ulogic ; + pllLocked : OUT std_ulogic + ); + END COMPONENT; + COMPONENT lissajousGenerator + GENERIC ( + signalBitNb : positive := 16; + phaseBitNb : positive := 16; + stepX : positive := 1; + stepY : positive := 1 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + triggerOut : OUT std_ulogic ; + xOut : OUT std_ulogic ; + yOut : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : DFF USE ENTITY Board.DFF; + FOR ALL : inverterIn USE ENTITY Board.inverterIn; + FOR ALL : lissajousGenerator USE ENTITY Lissajous.lissajousGenerator; + FOR ALL : pll USE ENTITY Lattice.pll; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 5 eb5 + logic1 <= '1'; + + -- HDL Embedded Text Block 6 eb6 + logic0 <= '0'; + + + -- Instance port mappings. + I_dff : DFF + PORT MAP ( + CLK => clock, + CLR => reset, + D => logic1, + Q => resetSynch_N + ); + I_inv1 : inverterIn + PORT MAP ( + in1 => reset_N, + out1 => reset + ); + I_inv2 : inverterIn + PORT MAP ( + in1 => resetSynch_N, + out1 => resetSynch + ); + U_pll : pll + PORT MAP ( + clkIn100M => clock, + en75M => logic0, + en50M => logic0, + en10M => logic0, + clk60MHz => clkSys, + clk75MHz => OPEN, + clk50MHz => OPEN, + clk10MHz => OPEN, + pllLocked => OPEN + ); + I_main : lissajousGenerator + GENERIC MAP ( + signalBitNb => signalBitNb, + phaseBitNb => phaseBitNb, + stepX => stepX, + stepY => stepY + ) + PORT MAP ( + clock => clkSys, + reset => resetSynch, + triggerOut => triggerOut, + xOut => xOut, + yOut => yOut + ); + +END masterVersion; + + + + diff --git a/04-Lissajous/Board/concat/lissajous.lpf b/04-Lissajous/Board/concat/lissajous.lpf new file mode 100644 index 0000000..2d14664 --- /dev/null +++ b/04-Lissajous/Board/concat/lissajous.lpf @@ -0,0 +1,334 @@ +### For reference, see TN1262 / FPGA-TN-02032 +# .lpf file format is not really documented by Lattice, normally generated through Diamond + + +################ +#### sysCONFIG +################ + +# The BLOCK commands disable tracing of paths within clock domains (impacting overall timing score) +# It can also be used on paths if the TRACE should not consider the clock domain crossing +# like : BLOCK PATH FROM CLKNET "CLK_A" TO CLKNET "CLK_B" ; +BLOCK RESETPATHS ; +BLOCK ASYNCPATHS ; +BLOCK JTAGPATHS ; +BLOCK RD_DURING_WR_PATHS ; + + +# Not comprehensive +# dflt : CONFIG_IOVOLTAGE 1.2, 1.5, 1.8, 2.5(dflt), 3.3 voltage is 3.3V +# dflt : COMPRESS_CONFIG OFF (dflt), ON no bitstream compression +# mod : MCCLK_FREQ 2.4, 4.8, 9.7, 19.4, 38.8, 62 NOR program read @ 62MHz +# mod : MASTER_SPI_PORT DISABLE (dflt), ENABLE master SPI port stays SPI and not GPIOs, other mods disabled by dflt +# dflt : BACKGROUND_RECONFIG - no soft ERC when hot-loading bitstream (due to cosmic rays) +# dflt : DONE_PULL ON (dflt), OFF IPU on DONE pin +# dflt : DONE_EX OFF (dflt), ON not delaying end of the configuration (used for daisy chaining FPGAs) +# mod : DONE_OD OFF (dflt), ON DONE pin as open-drain instead of push-pull +# dflt : CONFIG_SECURE OFF (dflt), ON allows external access to current program +# mod : CONFIG_MODE JTAG (dflt), SSPI, SPI_SERIAL, SPI_DUAL, SPI_QUAD, SLAVE_PARALLEL, SLAVE_SERIAL +# which bus and mode is used to load configuration (for the Lattic IDE) +# dflt : TRANSFR OFF (dflt), ON if using TransFR tool from Lattice +# dflt : WAKE_UP 4 (set DONE=1 before starting user code, dflt for DONE_EX=ON) +# 21 (set DONE=1 once FPGA is already running user code, dflt for DONE_EX=OFF) +# mod : INBUF ON, OFF disable unused input buffers (not sure it impacts the ECP5 family) +SYSCONFIG MCCLK_FREQ=62 MASTER_SPI_PORT=ENABLE DONE_OD=ON CONFIG_MODE=SPI_QUAD INBUF=OFF CONFIG_IOVOLTAGE=3.3 ; +IOBUF ALLPORTS IO_TYPE=LVCMOS33 ; + +################ +#### Labs DB +################ + +### Clock and reset ### +#INPUT_SETUP ALLPORTS 50.000000 ns HOLD 10.000000 ns CLKPORT "CLK" ; +#INPUT_SETUP PORT "nRST" 50.000000 ns CLKPORT "CLK" ; + +FREQUENCY PORT "clock" 100.000000 MHz ; +LOCATE COMP "clock" SITE "K16" ; +IOBUF PORT "clock" PULLMODE=NONE ; + +LOCATE COMP "reset_N" SITE "E13" ; +GSR_NET NET "resetSynch_N"; + + +### LEDs ### +LOCATE COMP "LED1" SITE "T14" ;# red +LOCATE COMP "LED2" SITE "R14" ;# green +LOCATE COMP "LED3" SITE "T15" ;# blue + + +################ +#### SODIMM-200 +################ + +### PP2 ### +LOCATE COMP "xOut" SITE "G3" ; +LOCATE COMP "yOut" SITE "E1" ; +#LOCATE COMP "" SITE "F3" ; +LOCATE COMP "triggerOut" SITE "D1" ; +#LOCATE COMP "" SITE "F4" ; +#LOCATE COMP "" SITE "C1" ; +#LOCATE COMP "" SITE "D7" ; +#LOCATE COMP "" SITE "B6" ; +#LOCATE COMP "" SITE "C7" ; +#LOCATE COMP "" SITE "A6" ; # PP2 11 +#LOCATE COMP "" SITE "D8" ; # PP2 13 +#LOCATE COMP "" SITE "B7" ; # PP2 15 +#LOCATE COMP "" SITE "C8" ; # PP2 17 +#LOCATE COMP "" SITE "A7" ; # PP2 19 +#LOCATE COMP "" SITE "E9" ; # PP2 21 +#LOCATE COMP "" SITE "A8" ; # PP2 23 +#LOCATE COMP "" SITE "D9" ; # PP2 25 + + +### PP1 ### +#LOCATE COMP "" SITE "A9" ; +#LOCATE COMP "" SITE "D10" ; +#LOCATE COMP "" SITE "A10" ; +#LOCATE COMP "" SITE "C10" ; +#LOCATE COMP "" SITE "B10" ; +#LOCATE COMP "" SITE "C12" ; +#LOCATE COMP "" SITE "B12" ; +#LOCATE COMP "" SITE "D13" ; +#LOCATE COMP "" SITE "A13" ; +#LOCATE COMP "" SITE "M5" ; # PP1 11 +#LOCATE COMP "" SITE "L5" ; # PP1 13 +#LOCATE COMP "" SITE "K5" ; # PP1 15 +#LOCATE COMP "" SITE "H5" ; # PP1 17 +#LOCATE COMP "" SITE "E8" ; # PP1 19 +#LOCATE COMP "" SITE "E5" ; # PP1 21 +#LOCATE COMP "" SITE "E6" ; # PP1 23 +#LOCATE COMP "" SITE "E7" ; # PP1 25 + + +### USB (FTDI2232HL located on the daughterboard) ### +#LOCATE COMP "TxD" SITE "A14" ; +#IOBUF PORT "TxD" SLEWRATE=FAST ; +#LOCATE COMP "RxD" SITE "B14" ; +#IOBUF PORT "RxD" PULLMODE=UP ; +#LOCATE COMP "USB_DB_RTS" SITE "B13" ; +#IOBUF PORT "USB_DB_RTS" SLEWRATE=FAST ; +#LOCATE COMP "USB_DB_CTS" SITE "C13" ; +#IOBUF PORT "USB_DB_CTS" PULLMODE=UP ; + + + +################ +#### Extras +################ + + +### SD Flash (External SD card) ### +#LOCATE COMP "SD_DETECT" SITE "G12" ; +#IOBUF PORT "SD_DETECT" PULLMODE=UP ; + +#LOCATE COMP "SD_CMD" SITE "C15" ; +#IOBUF PORT "SD_CMD" SLEWRATE=FAST ; +#LOCATE COMP "SD_CLK" SITE "B15" ; +#IOBUF PORT "SD_CLK" SLEWRATE=FAST ; + +#LOCATE COMP "SD_DTA[0]" SITE "B16" ; +##IOBUF PORT "SD_DTA[0]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[1]" SITE "C16" ; +##IOBUF PORT "SD_DTA[1]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[2]" SITE "F12" ; +##IOBUF PORT "SD_DTA[2]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[3]" SITE "C14" ; +##IOBUF PORT "SD_DTA[3]" SLEWRATE=FAST ; + + +### DRAM ### +#LOCATE COMP "DRAM_ADDR[0]" SITE "J15" ; +#IOBUF PORT "DRAM_ADDR[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[1]" SITE "L16" ; +#IOBUF PORT "DRAM_ADDR[1]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[2]" SITE "L15" ; +#IOBUF PORT "DRAM_ADDR[2]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[3]" SITE "K15" ; +#IOBUF PORT "DRAM_ADDR[3]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[4]" SITE "G15" ; +#IOBUF PORT "DRAM_ADDR[4]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[5]" SITE "F15" ; +#IOBUF PORT "DRAM_ADDR[5]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[6]" SITE "F16" ; +#IOBUF PORT "DRAM_ADDR[6]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[7]" SITE "E16" ; +#IOBUF PORT "DRAM_ADDR[7]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[8]" SITE "E15" ; +#IOBUF PORT "DRAM_ADDR[8]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[9]" SITE "G13" ; +#IOBUF PORT "DRAM_ADDR[9]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[10]" SITE "M16" ; +#IOBUF PORT "DRAM_ADDR[10]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[11]" SITE "F13" ; +#IOBUF PORT "DRAM_ADDR[11]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[12]" SITE "D16" ; +#IOBUF PORT "DRAM_ADDR[12]" SLEWRATE=FAST ; + +#LOCATE COMP "DRAM_BA[0]" SITE "L14" ; +#IOBUF PORT "DRAM_BA[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_BA[1]" SITE "L13" ; +#IOBUF PORT "DRAM_BA[1]" SLEWRATE=FAST ; + +#LOCATE COMP "DRAM_CLK" SITE "G14" ; +#IOBUF PORT "DRAM_CLK" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_CKE" SITE "G16" ; +#IOBUF PORT "DRAM_CKE" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nRAS" SITE "M14" ; +#IOBUF PORT "DRAM_nRAS" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nCAS" SITE "K13" ; +#IOBUF PORT "DRAM_nCAS" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nWE" SITE "N16" ; +#IOBUF PORT "DRAM_nWE" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nCS" SITE "M15" ; + +#LOCATE COMP "DRAM_DQ[0]" SITE "P14" ; +#LOCATE COMP "DRAM_DQ[1]" SITE "R15" ; +#LOCATE COMP "DRAM_DQ[2]" SITE "N14" ; +#LOCATE COMP "DRAM_DQ[3]" SITE "R16" ; +#LOCATE COMP "DRAM_DQ[4]" SITE "J14" ; +#LOCATE COMP "DRAM_DQ[5]" SITE "P15" ; +#LOCATE COMP "DRAM_DQ[6]" SITE "K14" ; +#LOCATE COMP "DRAM_DQ[7]" SITE "P16" ; +#LOCATE COMP "DRAM_DQ[8]" SITE "D14" ; +#LOCATE COMP "DRAM_DQ[9]" SITE "H14" ; +#LOCATE COMP "DRAM_DQ[10]" SITE "H12" ; +#LOCATE COMP "DRAM_DQ[11]" SITE "H13" ; +#LOCATE COMP "DRAM_DQ[12]" SITE "E14" ; +#LOCATE COMP "DRAM_DQ[13]" SITE "H15" ; +#LOCATE COMP "DRAM_DQ[14]" SITE "J13" ; +#LOCATE COMP "DRAM_DQ[15]" SITE "J16" ; + +#LOCATE COMP "DRAM_DQM[0]" SITE "M13" ; +#IOBUF PORT "DRAM_DQM[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_DQM[1]" SITE "F14" ; +#IOBUF PORT "DRAM_DQM[1]" SLEWRATE=FAST ; + + + + +### USB (chip located on the motherboard) ### +#LOCATE COMP "USB_MB_TX" SITE "M11" ; +#IOBUF PORT "USB_MB_TX" SLEWRATE=FAST ; +#LOCATE COMP "USB_MB_RX" SITE "N12" ; +#IOBUF PORT "USB_MB_RX" PULLMODE=UP ; +#LOCATE COMP "USB_MB_RTS" SITE "N11" ; +#IOBUF PORT "USB_MB_RTS" SLEWRATE=FAST ; +#LOCATE COMP "USB_MB_CTS" SITE "M12" ; +#IOBUF PORT "USB_MB_CTS" PULLMODE=UP ; + + +### PMOD1 ### +#LOCATE COMP "dbg_leds[16]" SITE "P1" ; +#LOCATE COMP "dbg_leds[17]" SITE "N4" ; +#LOCATE COMP "dbg_leds[18]" SITE "P2" ; +#LOCATE COMP "dbg_leds[19]" SITE "P5" ; +#LOCATE COMP "dbg_leds[20]" SITE "R1" ; +#LOCATE COMP "dbg_leds[21]" SITE "N5" ; +#LOCATE COMP "dbg_leds[22]" SITE "R2" ; +#LOCATE COMP "dbg_leds[23]" SITE "N6" ; + + +### PMOD2 ### +#LOCATE COMP "dbg_leds[24]" SITE "R3" ; +#LOCATE COMP "dbg_leds[25]" SITE "P11" ; +#LOCATE COMP "dbg_leds[26]" SITE "P12" ; +#LOCATE COMP "dbg_leds[27]" SITE "T3" ; +#LOCATE COMP "dbg_leds[28]" SITE "R4" ; +#LOCATE COMP "dbg_leds[29]" SITE "R12" ; +#LOCATE COMP "dbg_leds[30]" SITE "T13" ; +#LOCATE COMP "dbg_leds[31]" SITE "R5" ; + + +### PMOD3 ### +#LOCATE COMP "dbg_leds[8]" SITE "B2" ; +#LOCATE COMP "dbg_leds[9]" SITE "B3" ; +#LOCATE COMP "dbg_leds[10]" SITE "A4" ; +#LOCATE COMP "dbg_leds[11]" SITE "D4" ; +#LOCATE COMP "dbg_leds[12]" SITE "A2" ; +#LOCATE COMP "dbg_leds[13]" SITE "B4" ; +#LOCATE COMP "dbg_leds[14]" SITE "C3" ; +#LOCATE COMP "dbg_leds[15]" SITE "C4" ; + + +### PMOD4 ### +#LOCATE COMP "dbg_leds[0]" SITE "J4" ; +#LOCATE COMP "dbg_leds[1]" SITE "J5" ; +#LOCATE COMP "dbg_leds[2]" SITE "H4" ; +#LOCATE COMP "dbg_leds[3]" SITE "E4" ; +#LOCATE COMP "dbg_leds[4]" SITE "J3" ; +#LOCATE COMP "dbg_leds[5]" SITE "H3" ; +#LOCATE COMP "dbg_leds[6]" SITE "E3" ; +#LOCATE COMP "dbg_leds[7]" SITE "D3" ; + + +### Ethernet ### +#LOCATE COMP "ETH_CLK_EN" SITE "B1" ; +#LOCATE COMP "ETH_nRESET" SITE "C2" ; + +#LOCATE COMP "ETH_nLED_Y" SITE "F1" ; +#LOCATE COMP "ETH_nLED_G" SITE "G2" ; + +#LOCATE COMP "ETH_MDC" SITE "J1" ; +#LOCATE COMP "ETH_MDIO" SITE "H2" ; +#IOBUF PORT "ETH_MDIO" OPENDRAIN=ON SLEWRATE=FAST ; +#LOCATE COMP "ETH_MDINT" SITE "G1" ; +#IOBUF PORT "ETH_MDINT" SLEWRATE=FAST ; + +#LOCATE COMP "ETH_REF_CLK" SITE "P3" ; + +#LOCATE COMP "ETH_TX_CLK" SITE "M4" ; +#IOBUF PORT "ETH_TX_CLK" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TX_CTL" SITE "N3" ; +#IOBUF PORT "ETH_TX_CTL" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[0]" SITE "M3" ; +#IOBUF PORT "ETH_TXD[0]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[1]" SITE "L4" ; +#IOBUF PORT "ETH_TXD[1]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[2]" SITE "K4" ; +#IOBUF PORT "ETH_TXD[2]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[3]" SITE "K3" ; +#IOBUF PORT "ETH_TXD[3]" SLEWRATE=FAST ; + +#LOCATE COMP "ETH_RX_CLK" SITE "K1" ; +#LOCATE COMP "ETH_RX_CTL" SITE "K2" ; +#LOCATE COMP "ETH_RXD[0]" SITE "L1" ; +#LOCATE COMP "ETH_RXD[1]" SITE "L2" ; +#LOCATE COMP "ETH_RXD[2]" SITE "M1" ; +#LOCATE COMP "ETH_RXD[3]" SITE "M2" ; + + +### Extras ### +#LOCATE COMP "EXT[1]" SITE "P13" ; +#LOCATE COMP "EXT[2]" SITE "R13" ; +#LOCATE COMP "EXT[3]" SITE "A3" ; +#LOCATE COMP "EXT[4]" SITE "A5" ; +#LOCATE COMP "EXT[5]" SITE "B5" ; +#LOCATE COMP "EXT[6]" SITE "C5" ; +#LOCATE COMP "EXT[7]" SITE "C6" ; +#LOCATE COMP "EXT[8]" SITE "D5" ; +#LOCATE COMP "EXT[9]" SITE "D6" ; +#LOCATE COMP "EXT[10]" SITE "A11" ; +#LOCATE COMP "EXT[11]" SITE "A12" ; +#LOCATE COMP "EXT[12]" SITE "B8" ; +#LOCATE COMP "EXT[13]" SITE "B9" ; +#LOCATE COMP "EXT[14]" SITE "B11" ; +#LOCATE COMP "EXT[15]" SITE "C9" ; +#LOCATE COMP "EXT[16]" SITE "C11" ; +#LOCATE COMP "EXT[17]" SITE "D11" ; +#LOCATE COMP "EXT[18]" SITE "D12" ; +#LOCATE COMP "EXT[19]" SITE "E10" ; +#LOCATE COMP "EXT[20]" SITE "E11" ; +#LOCATE COMP "EXT[21]" SITE "E12" ; +#LOCATE COMP "EXT[22]" SITE "L3" ; +#LOCATE COMP "EXT[23]" SITE "M6" ; +#LOCATE COMP "EXT[24]" SITE "N1" ; +#LOCATE COMP "EXT[25]" SITE "P4" ; +#LOCATE COMP "EXT[26]" SITE "P6" ; +#LOCATE COMP "EXT[27]" SITE "T2" ; +#LOCATE COMP "EXT[28]" SITE "T4" ; +#LOCATE COMP "EXT[29]" SITE "E2" ; +#LOCATE COMP "EXT[30]" SITE "F2" ; +#LOCATE COMP "EXT[31]" SITE "F5" ; +#LOCATE COMP "EXT[32]" SITE "G4" ; +#LOCATE COMP "EXT[33]" SITE "G5" ; +#LOCATE COMP "EXT[34]" SITE "J2" ; diff --git a/04-Lissajous/Board/concat/lissajous.ucf b/04-Lissajous/Board/concat/lissajous.ucf new file mode 100644 index 0000000..b145465 --- /dev/null +++ b/04-Lissajous/Board/concat/lissajous.ucf @@ -0,0 +1,19 @@ +#------------------------------------------------------------------------------- +# Clock and reset +# +NET "clock" LOC = "A10"; +NET "reset_N" LOC = "D3" | PULLUP; + +#------------------------------------------------------------------------------- +# Analog outputs +# +NET "xOut" LOC = "G4" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +NET "yOut" LOC = "G5" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +#NET "xOut" LOC = "G4" ; +#NET "yOut" LOC = "G5" ; + +#------------------------------------------------------------------------------- +# Trigger output +# +NET "triggerOut" LOC = "D2" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +#NET "triggerOut" LOC = "D2" ; diff --git a/04-Lissajous/Board/concat/lissajous.vhd b/04-Lissajous/Board/concat/lissajous.vhd new file mode 100644 index 0000000..02ed33b --- /dev/null +++ b/04-Lissajous/Board/concat/lissajous.vhd @@ -0,0 +1,1585 @@ +-- VHDL Entity Board.lissajousGenerator_circuit_EBS3.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 17:45:49 01.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY lissajousGenerator_circuit_EBS3 IS + PORT( + clock : IN std_ulogic; + reset_N : IN std_ulogic; + triggerOut : OUT std_ulogic; + xOut : OUT std_ulogic; + yOut : OUT std_ulogic + ); + +-- Declarations + +END lissajousGenerator_circuit_EBS3 ; + + + + + +-- VHDL Entity Board.DFF.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:05 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY DFF IS + PORT( + CLK : IN std_uLogic; + CLR : IN std_uLogic; + D : IN std_uLogic; + Q : OUT std_uLogic + ); + +-- Declarations + +END DFF ; + + + + + +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + + + + + +-- VHDL Entity Board.inverterIn.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY inverterIn IS + PORT( + in1 : IN std_uLogic; + out1 : OUT std_uLogic + ); + +-- Declarations + +END inverterIn ; + + + + + +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + + + + + +-- VHDL Entity Lissajous.lissajousGenerator.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:53 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY lissajousGenerator IS + GENERIC( + signalBitNb : positive := 16; + phaseBitNb : positive := 16; + stepX : positive := 1; + stepY : positive := 1 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + triggerOut : OUT std_ulogic; + xOut : OUT std_ulogic; + yOut : OUT std_ulogic + ); + +-- Declarations + +END lissajousGenerator ; + + + + + +-- VHDL Entity DigitalToAnalogConverter.DAC.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:06:08 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY DAC IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + serialOut : OUT std_ulogic; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END DAC ; + + + + + +ARCHITECTURE masterVersion OF DAC IS + + signal parallelIn1: unsigned(parallelIn'range); + signal integrator: unsigned(parallelIn'high+1 downto 0); + signal quantized: std_ulogic; + +BEGIN + +-- parallelIn1 <= parallelIn; + parallelIn1 <= parallelIn/2 + 2**(parallelIn'length-2); + + integrate: process(reset, clock) + begin + if reset = '1' then + integrator <= (others => '0'); + elsif rising_edge(clock) then + if quantized = '0' then + integrator <= integrator + parallelIn1; + else + integrator <= integrator + parallelIn1 - 2**parallelIn'length; + end if; + end if; + end process integrate; + + quantized <= integrator(integrator'high); + + serialOut <= quantized; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.sineGen.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:40 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sineGen IS + GENERIC( + signalBitNb : positive := 16; + phaseBitNb : positive := 10 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + step : IN unsigned (phaseBitNb-1 DOWNTO 0); + sawtooth : OUT unsigned (signalBitNb-1 DOWNTO 0); + sine : OUT unsigned (signalBitNb-1 DOWNTO 0); + square : OUT unsigned (signalBitNb-1 DOWNTO 0); + triangle : OUT unsigned (signalBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sineGen ; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCoefficients.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:20 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCoefficients IS + GENERIC( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + +-- Declarations + +END interpolatorCoefficients ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCoefficients IS +BEGIN + + calcCoeffs: process(interpolateLinear, sample1, sample2, sample3, sample4) + begin + if interpolateLinear = '1' then + a <= (others => '0'); + b <= (others => '0'); + c <= resize(2*sample3, c'length) + - resize(2*sample2, c'length); + d <= resize( sample2, d'length); + else + a <= resize( sample4, a'length) + - resize(3*sample3, a'length) + + resize(3*sample2, a'length) + - resize( sample1, a'length); + b <= resize(2*sample1, b'length) + - resize(5*sample2, b'length) + + resize(4*sample3, b'length) + - resize( sample4, b'length); + c <= resize( sample3, c'length) + - resize( sample1, c'length); + d <= resize( sample2, d'length); + end if; + end process calcCoeffs; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity WaveformGenerator.sawtoothGen.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothGen IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END sawtoothGen ; + + + + + +ARCHITECTURE masterVersion OF sawtoothGen IS + + signal counter: unsigned(sawtooth'range); + +begin + + count: process(reset, clock) + begin + if reset = '1' then + counter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + counter <= counter + step; + end if; + end if; + end process count; + + sawtooth <= counter; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorShiftRegister.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:24 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorShiftRegister IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + shiftSamples : IN std_ulogic; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END interpolatorShiftRegister ; + + + + + +ARCHITECTURE masterVersion OF interpolatorShiftRegister IS + + -- signal sample4_int: signed(sampleIn'range); + -- signal sample3_int: signed(sampleIn'range); + -- signal sample2_int: signed(sampleIn'range); + -- signal sample1_int: signed(sampleIn'range); + + type samplesArray is array(3 downto 0) of signed(sampleIn'range); + signal samples: samplesArray; + +begin + + shiftThem: process(reset, clock) + begin + if reset = '1' then + samples <= (others=>(others=>'0')); + -- sample1_int <= (others => '0'); + -- sample2_int <= (others => '0'); + -- sample3_int <= (others => '0'); + -- sample4_int <= (others => '0'); + elsif rising_edge(clock) then + if shiftSamples = '1' then + -- sample1_int <= sample2_int; + -- sample2_int <= sample3_int; + -- sample3_int <= sample4_int; + -- sample4_int <= sampleIn; + samples(0) <= samples(1); + samples(1) <= samples(2); + samples(2) <= samples(3); + samples(3) <= sampleIn; + end if; + end if; + end process shiftThem; + + sample4 <= samples(3); + sample3 <= samples(2); + sample2 <= samples(1); + sample1 <= samples(0); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.sineTable.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:46 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sineTable IS + GENERIC( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sineTable ; + + + + + +ARCHITECTURE masterVersion OF sineTable IS + + signal changeSign : std_uLogic; + signal flipPhase : std_uLogic; + signal phaseTableAddress1 : unsigned(tableAddressBitNb-1 downto 0); + signal phaseTableAddress2 : unsigned(phaseTableAddress1'range); + signal quarterSine : signed(sine'range); + + signal shiftPhase : std_uLogic := '0'; -- can be used to build a cosine + +begin + + changeSign <= phase(phase'high); + flipPhase <= phase(phase'high-1); + + phaseTableAddress1 <= phase(phase'high-2 downto phase'high-2-tableAddressBitNb+1); + + checkPhase: process(flipPhase, shiftPhase, phaseTableAddress1) + begin + if (flipPhase xor shiftPhase) = '0' then + phaseTableAddress2 <= phaseTableAddress1; + else + phaseTableAddress2 <= 0 - phaseTableAddress1; + end if; + end process checkPhase; + + + quarterTable: process(phaseTableAddress2, flipPhase, shiftPhase) + begin + case to_integer(phaseTableAddress2) is + when 0 => if (flipPhase xor shiftPhase) = '0' then + quarterSine <= to_signed(16#0000#, quarterSine'length); + else + quarterSine <= to_signed(16#7FFF#, quarterSine'length); + end if; + when 1 => quarterSine <= to_signed(16#18F9#, quarterSine'length); + when 2 => quarterSine <= to_signed(16#30FB#, quarterSine'length); + when 3 => quarterSine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterSine <= to_signed(16#5A82#, quarterSine'length); + when 5 => quarterSine <= to_signed(16#6A6D#, quarterSine'length); + when 6 => quarterSine <= to_signed(16#7641#, quarterSine'length); + when 7 => quarterSine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterSine <= (others => '-'); + end case; + end process quarterTable; + + checkSign: process(changeSign, flipPhase, shiftPhase, quarterSine) + begin + if (changeSign xor (flipPhase and shiftPhase)) = '0' then + sine <= quarterSine; + else + sine <= 0 - quarterSine; + end if; + end process checkSign; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.resizer.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:36 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY resizer IS + GENERIC( + inputBitNb : positive := 16; + outputBitNb : positive := 16 + ); + PORT( + resizeOut : OUT unsigned (outputBitNb-1 DOWNTO 0); + resizeIn : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END resizer ; + + + + + +ARCHITECTURE masterVersion OF resizer IS + +BEGIN + + outGtIn: if resizeOut'length > resizeIn'length generate + begin + resizeOut <= shift_left( + resize( + resizeIn, + resizeOut'length + ), + resizeOut'length-resizeIn'length + ); + end generate outGtIn; + + outEqIn: if resizeOut'length = resizeIn'length generate + begin + resizeOut <= resizeIn; + end generate outEqIn; + + outLtIn: if resizeOut'length < resizeIn'length generate + begin + resizeOut <= resize( + shift_right( + resizeIn, + resizeIn'length-resizeOut'length + ), + resizeOut'length + ); + end generate outLtIn; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCalculatePolynom.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCalculatePolynom IS + GENERIC( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + restartPolynom : IN std_ulogic; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorCalculatePolynom ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCalculatePolynom IS + + constant additionalBitNb: positive := 1; + constant internalsBitNb: positive := signalBitNb + 3*oversamplingBitNb + 1 + + additionalBitNb; + signal x: signed(internalsBitNb-1 downto 0); + signal u: signed(internalsBitNb-1 downto 0); + signal v: signed(internalsBitNb-1 downto 0); + signal w: signed(internalsBitNb-1 downto 0); + +BEGIN + + iterativePolynom: process(reset, clock) + begin + if reset = '1' then + x <= (others => '0'); + u <= (others => '0'); + v <= (others => '0'); + w <= (others => '0'); + sampleOut <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + if restartPolynom = '1' then + x <= shift_left(resize(2*d, x'length), 3*oversamplingBitNb); + u <= resize(a, u'length) + + shift_left(resize(b, u'length), oversamplingBitNb) + + shift_left(resize(c, u'length), 2*oversamplingBitNb); + v <= resize(6*a, v'length) + + shift_left(resize(2*b, v'length), oversamplingBitNb); + w <= resize(6*a, w'length); + sampleOut <= resize(d, sampleOut'length); + else + x <= x + u; + u <= u + v; + v <= v + w; + sampleOut <= resize( + shift_right(x, 3*oversamplingBitNb+1), sampleOut'length + ); + -- limit overflow + if x(x'high downto x'high-additionalBitNb) = "01" then + sampleOut <= not shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + -- limit underflow + if x(x'high downto x'high-additionalBitNb) = "10" then + sampleOut <= shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + end if; + end if; + end if; + end process iterativePolynom; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity WaveformGenerator.sawtoothToSquare.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothToSquare IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + square : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sawtoothToSquare ; + + + + + +ARCHITECTURE masterVersion OF sawtoothToSquare IS +BEGIN + + square <= (others => sawtooth(sawtooth'high)); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity WaveformGenerator.sawtoothToTriangle.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothToTriangle IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + triangle : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sawtoothToTriangle ; + + + + + +ARCHITECTURE masterVersion OF sawtoothToTriangle IS + + signal MSB: std_uLogic; + signal triangleInt: unsigned(triangle'range); + +begin + + MSB <= sawtooth(sawtooth'high); + + foldDown: process(MSB, sawtooth) + begin + if MSB = '0' then + triangleInt <= sawtooth; + else + triangleInt <= not sawtooth; + end if; + end process foldDown; + + triangle <= triangleInt(triangleInt'high-1 downto 0) & '0'; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.interpolatorTrigger.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:28 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorTrigger IS + GENERIC( + counterBitNb : positive := 4 + ); + PORT( + triggerOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorTrigger ; + + + + + +ARCHITECTURE masterVersion OF interpolatorTrigger IS + + signal triggerCounter: unsigned(counterBitNb-1 downto 0); + +BEGIN + + count: process(reset, clock) + begin + if reset = '1' then + triggerCounter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + triggerCounter <= triggerCounter + 1; + end if; + end if; + end process count; + + trig: process(triggerCounter, en) + begin + if triggerCounter = 0 then + triggerOut <= en; + else + triggerOut <= '0'; + end if; + end process trig; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.offsetToUnsigned.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:32 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY offsetToUnsigned IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END offsetToUnsigned ; + + + + + +ARCHITECTURE masterVersion OF offsetToUnsigned IS + +BEGIN + + unsignedOut <= not(signedIn(signedIn'high)) & unsigned(signedIn(signedIn'high-1 downto 0)); + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture SplineInterpolator.sineGen.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:42:04 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY SplineInterpolator; +-- LIBRARY WaveformGenerator; + +ARCHITECTURE struct OF sineGen IS + + -- Architecture declarations + constant tableAddressBitNb : positive := 3; + constant sampleCountBitNb : positive := phaseBitNb-2-tableAddressBitNb; + constant coeffBitNb : positive := signalBitNb+4; + + -- Internal signal declarations + SIGNAL a : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL b : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL c : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL d : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_ulogic; + SIGNAL newPolynom : std_ulogic; + SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL sample1 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sample2 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sample3 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sample4 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sineSamples : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sineSigned : signed(signalBitNb-1 DOWNTO 0); + + -- Implicit buffer signal declarations + SIGNAL sawtooth_internal : unsigned (signalBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT interpolatorCalculatePolynom + GENERIC ( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + restartPolynom : IN std_ulogic ; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorCoefficients + GENERIC ( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT ( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorShiftRegister + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + shiftSamples : IN std_ulogic ; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT interpolatorTrigger + GENERIC ( + counterBitNb : positive := 4 + ); + PORT ( + triggerOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT offsetToUnsigned + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT resizer + GENERIC ( + inputBitNb : positive := 16; + outputBitNb : positive := 16 + ); + PORT ( + resizeOut : OUT unsigned (outputBitNb-1 DOWNTO 0); + resizeIn : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sineTable + GENERIC ( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT ( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sawtoothGen + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic ; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT sawtoothToSquare + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + square : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sawtoothToTriangle + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + triangle : OUT unsigned (bitNb-1 DOWNTO 0); + sawtooth : IN unsigned (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : interpolatorCalculatePolynom USE ENTITY SplineInterpolator.interpolatorCalculatePolynom; +-- FOR ALL : interpolatorCoefficients USE ENTITY SplineInterpolator.interpolatorCoefficients; +-- FOR ALL : interpolatorShiftRegister USE ENTITY SplineInterpolator.interpolatorShiftRegister; +-- FOR ALL : interpolatorTrigger USE ENTITY SplineInterpolator.interpolatorTrigger; +-- FOR ALL : offsetToUnsigned USE ENTITY SplineInterpolator.offsetToUnsigned; +-- FOR ALL : resizer USE ENTITY SplineInterpolator.resizer; +-- FOR ALL : sawtoothGen USE ENTITY WaveformGenerator.sawtoothGen; +-- FOR ALL : sawtoothToSquare USE ENTITY WaveformGenerator.sawtoothToSquare; +-- FOR ALL : sawtoothToTriangle USE ENTITY WaveformGenerator.sawtoothToTriangle; +-- FOR ALL : sineTable USE ENTITY SplineInterpolator.sineTable; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 2 eb2 + logic1 <= '1'; + + -- HDL Embedded Text Block 3 eb3 + logic0 <= '0'; + + + -- Instance port mappings. + I_spline : interpolatorCalculatePolynom + GENERIC MAP ( + signalBitNb => signalBitNb, + coeffBitNb => coeffBitNb, + oversamplingBitNb => sampleCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + restartPolynom => newPolynom, + d => d, + sampleOut => sineSigned, + c => c, + b => b, + a => a, + en => logic1 + ); + I_coeffs : interpolatorCoefficients + GENERIC MAP ( + bitNb => signalBitNb, + coeffBitNb => coeffBitNb + ) + PORT MAP ( + sample1 => sample1, + sample2 => sample2, + sample3 => sample3, + sample4 => sample4, + a => a, + b => b, + c => c, + d => d, + interpolateLinear => logic0 + ); + I_shReg : interpolatorShiftRegister + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + shiftSamples => newPolynom, + sampleIn => sineSamples, + sample1 => sample1, + sample2 => sample2, + sample3 => sample3, + sample4 => sample4 + ); + I_trig : interpolatorTrigger + GENERIC MAP ( + counterBitNb => sampleCountBitNb + ) + PORT MAP ( + triggerOut => newPolynom, + clock => clock, + reset => reset, + en => logic1 + ); + I_unsigned : offsetToUnsigned + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + unsignedOut => sine, + signedIn => sineSigned + ); + I_size : resizer + GENERIC MAP ( + inputBitNb => phaseBitNb, + outputBitNb => signalBitNb + ) + PORT MAP ( + resizeOut => sawtooth_internal, + resizeIn => phase + ); + I_sin : sineTable + GENERIC MAP ( + inputBitNb => phaseBitNb, + outputBitNb => signalBitNb, + tableAddressBitNb => tableAddressBitNb + ) + PORT MAP ( + sine => sineSamples, + phase => phase + ); + I_saw : sawtoothGen + GENERIC MAP ( + bitNb => phaseBitNb + ) + PORT MAP ( + sawtooth => phase, + clock => clock, + reset => reset, + step => step, + en => logic1 + ); + I_square : sawtoothToSquare + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + square => square, + sawtooth => sawtooth_internal + ); + I_tri : sawtoothToTriangle + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + triangle => triangle, + sawtooth => sawtooth_internal + ); + + -- Implicit buffered output assignments + sawtooth <= sawtooth_internal; + +END struct; + + + + +-- +-- VHDL Architecture Lissajous.lissajousGenerator.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:47:09 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY DigitalToAnalogConverter; +-- LIBRARY SplineInterpolator; + +ARCHITECTURE struct OF lissajousGenerator IS + + -- Architecture declarations + + -- Internal signal declarations + SIGNAL sineX : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL sineY : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL squareY : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL stepXUnsigned : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL stepYUnsigned : unsigned(phaseBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT DAC + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + serialOut : OUT std_ulogic ; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT sineGen + GENERIC ( + signalBitNb : positive := 16; + phaseBitNb : positive := 10 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + step : IN unsigned (phaseBitNb-1 DOWNTO 0); + sawtooth : OUT unsigned (signalBitNb-1 DOWNTO 0); + sine : OUT unsigned (signalBitNb-1 DOWNTO 0); + square : OUT unsigned (signalBitNb-1 DOWNTO 0); + triangle : OUT unsigned (signalBitNb-1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : DAC USE ENTITY DigitalToAnalogConverter.DAC; +-- FOR ALL : sineGen USE ENTITY SplineInterpolator.sineGen; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + triggerOut <= squareY(squareY'high); + + -- HDL Embedded Text Block 2 eb2 + stepXUnsigned <= to_unsigned(stepX, stepXUnsigned'length); + + -- HDL Embedded Text Block 3 eb3 + stepYUnsigned <= to_unsigned(stepY, stepYUnsigned'length); + + + -- Instance port mappings. + I_dacX : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => xOut, + parallelIn => sineX, + clock => clock, + reset => reset + ); + I_dacY : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => yOut, + parallelIn => sineY, + clock => clock, + reset => reset + ); + I_sinX : sineGen + GENERIC MAP ( + signalBitNb => signalBitNb, + phaseBitNb => phaseBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + step => stepXUnsigned, + sawtooth => OPEN, + sine => sineX, + square => OPEN, + triangle => OPEN + ); + I_sinY : sineGen + GENERIC MAP ( + signalBitNb => signalBitNb, + phaseBitNb => phaseBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + step => stepYUnsigned, + sawtooth => OPEN, + sine => sineY, + square => squareY, + triangle => OPEN + ); + +END struct; + + + + +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; + + + + +-- +-- VHDL Architecture Board.lissajousGenerator_circuit_EBS3.masterVersion +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 17:45:49 01.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Board; +-- LIBRARY Lattice; +-- LIBRARY Lissajous; + +ARCHITECTURE masterVersion OF lissajousGenerator_circuit_EBS3 IS + + -- Architecture declarations + constant signalBitNb: positive := 16; + constant phaseBitNb: positive := 17; + constant stepX: positive := 3; + constant stepY: positive := 4; + + -- Internal signal declarations + SIGNAL clkSys : std_ulogic; + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_uLogic; + SIGNAL reset : std_ulogic; + SIGNAL resetSynch : std_ulogic; + SIGNAL resetSynch_N : std_ulogic; + + + -- Component Declarations + COMPONENT DFF + PORT ( + CLK : IN std_uLogic ; + CLR : IN std_uLogic ; + D : IN std_uLogic ; + Q : OUT std_uLogic + ); + END COMPONENT; + COMPONENT inverterIn + PORT ( + in1 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT pll + PORT ( + clkIn100M : IN std_ulogic ; + en75M : IN std_ulogic ; + en50M : IN std_ulogic ; + en10M : IN std_ulogic ; + clk60MHz : OUT std_ulogic ; + clk75MHz : OUT std_ulogic ; + clk50MHz : OUT std_ulogic ; + clk10MHz : OUT std_ulogic ; + pllLocked : OUT std_ulogic + ); + END COMPONENT; + COMPONENT lissajousGenerator + GENERIC ( + signalBitNb : positive := 16; + phaseBitNb : positive := 16; + stepX : positive := 1; + stepY : positive := 1 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + triggerOut : OUT std_ulogic ; + xOut : OUT std_ulogic ; + yOut : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : DFF USE ENTITY Board.DFF; +-- FOR ALL : inverterIn USE ENTITY Board.inverterIn; +-- FOR ALL : lissajousGenerator USE ENTITY Lissajous.lissajousGenerator; +-- FOR ALL : pll USE ENTITY Lattice.pll; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 5 eb5 + logic1 <= '1'; + + -- HDL Embedded Text Block 6 eb6 + logic0 <= '0'; + + + -- Instance port mappings. + I_dff : DFF + PORT MAP ( + CLK => clock, + CLR => reset, + D => logic1, + Q => resetSynch_N + ); + I_inv1 : inverterIn + PORT MAP ( + in1 => reset_N, + out1 => reset + ); + I_inv2 : inverterIn + PORT MAP ( + in1 => resetSynch_N, + out1 => resetSynch + ); + U_pll : pll + PORT MAP ( + clkIn100M => clock, + en75M => logic0, + en50M => logic0, + en10M => logic0, + clk60MHz => clkSys, + clk75MHz => OPEN, + clk50MHz => OPEN, + clk10MHz => OPEN, + pllLocked => OPEN + ); + I_main : lissajousGenerator + GENERIC MAP ( + signalBitNb => signalBitNb, + phaseBitNb => phaseBitNb, + stepX => stepX, + stepY => stepY + ) + PORT MAP ( + clock => clkSys, + reset => resetSynch, + triggerOut => triggerOut, + xOut => xOut, + yOut => yOut + ); + +END masterVersion; + + + + diff --git a/04-Lissajous/Board/diamond/lissajous.bit b/04-Lissajous/Board/diamond/lissajous.bit new file mode 100644 index 0000000000000000000000000000000000000000..085c23452dbbfbbad130d42a737ac6db6d1cee4f GIT binary patch literal 582677 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 literal 0 HcmV?d00001 diff --git a/04-Lissajous/Board/diamond/lissajous.ldf b/04-Lissajous/Board/diamond/lissajous.ldf new file mode 100644 index 0000000..f1ae61d --- /dev/null +++ b/04-Lissajous/Board/diamond/lissajous.ldf @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/04-Lissajous/Board/diamond/programmer.xcf b/04-Lissajous/Board/diamond/programmer.xcf new file mode 100644 index 0000000..468a2da --- /dev/null +++ b/04-Lissajous/Board/diamond/programmer.xcf @@ -0,0 +1,50 @@ + + + + + + JTAG + + + 1 + Renesas + ECP5U + LFE5U-25F + All + LFE5U-25F + + 8 + 11111111 + 1 + 0 + + + 04/11/23 16:14:28 + 0xA4B0 + Fast Program + + + + + SEQUENTIAL + ENTIRED CHAIN + No Override + TLR + TLR + + 4 + + + USB2 + FTUSB-0 + LFE5U-25F A Location 0000 Serial 018VFVT3A + + diff --git a/04-Lissajous/Board/diamond/reveal_analyze.rva b/04-Lissajous/Board/diamond/reveal_analyze.rva new file mode 100644 index 0000000..4249e0e --- /dev/null +++ b/04-Lissajous/Board/diamond/reveal_analyze.rva @@ -0,0 +1,638 @@ + + + lun. 6. mars 14:29:10 2023 + + + + + + + + + + + + 1 + + 0 + 1. LFE5U-25F + 0x41111043 + true + false + + 8 + reveal_config.rvl + reveal_config.rvs + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/04-Lissajous/Board/diamond/reveal_config.rvl b/04-Lissajous/Board/diamond/reveal_config.rvl new file mode 100644 index 0000000..28d2f1c --- /dev/null +++ b/04-Lissajous/Board/diamond/reveal_config.rvl @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/04-Lissajous/Board/diamond/strategy.sty b/04-Lissajous/Board/diamond/strategy.sty new file mode 100644 index 0000000..a2b5a4a --- /dev/null +++ b/04-Lissajous/Board/diamond/strategy.sty @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/04-Lissajous/Board/hdl/DFF_sim.vhd b/04-Lissajous/Board/hdl/DFF_sim.vhd new file mode 100644 index 0000000..cf8868a --- /dev/null +++ b/04-Lissajous/Board/hdl/DFF_sim.vhd @@ -0,0 +1,14 @@ +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + diff --git a/04-Lissajous/Board/hdl/buff_sim.vhd b/04-Lissajous/Board/hdl/buff_sim.vhd new file mode 100644 index 0000000..8ad27be --- /dev/null +++ b/04-Lissajous/Board/hdl/buff_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF buff IS +BEGIN + + out1 <= in1; + +END ARCHITECTURE sim; + diff --git a/04-Lissajous/Board/hdl/inverterIn_sim.vhd b/04-Lissajous/Board/hdl/inverterIn_sim.vhd new file mode 100644 index 0000000..fb039ac --- /dev/null +++ b/04-Lissajous/Board/hdl/inverterIn_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/04-Lissajous/Board/hdl/inverter_sim.vhd b/04-Lissajous/Board/hdl/inverter_sim.vhd new file mode 100644 index 0000000..ca5b6b5 --- /dev/null +++ b/04-Lissajous/Board/hdl/inverter_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverter IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_ebs3_entity.vhg._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_ebs3_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_ebs3_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhd._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhg._fpf b/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Board/hds/.hdlsidedata/_lissajousgenerator_circuit_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Board/hds/@d@f@f/symbol.sb b/04-Lissajous/Board/hds/@d@f@f/symbol.sb new file mode 100644 index 0000000..555b689 --- /dev/null +++ b/04-Lissajous/Board/hds/@d@f@f/symbol.sb @@ -0,0 +1,1211 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 157,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +uid 158,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +uid 159,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +uid 160,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +uid 161,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 162,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 101,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 104,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 106,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 108,0 +) +*23 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 127,0 +) +*24 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 128,0 +) +*25 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 129,0 +) +*26 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 130,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 102,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 110,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 114,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 116,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 118,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 120,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 122,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 124,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 126,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 100,0 +vaOverrides [ +] +) +] +) +uid 156,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 164,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 165,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 132,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 135,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 137,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 141,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 145,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 147,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 149,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 151,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 153,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 155,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 163,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DFF" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:05" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "DFF" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:05" +) +(vvPair +variable "unit" +value "DFF" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*59 (SymbolBody +uid 11,0 +optionalChildren [ +*60 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,4625,23000,5375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "courier,12,0" +) +xt "24000,4300,25700,5700" +st "D" +blo "24000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,15500,13400" +st "D : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +) +*61 (CptPort +uid 57,0 +optionalChildren [ +*62 (FFT +pts [ +"23750,9000" +"23000,9375" +"23000,8625" +] +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,8625,23750,9375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,8625,23000,9375" +) +tg (CPTG +uid 94,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,12,0" +) +xt "24000,8400,27200,9800" +st "CLK" +blo "24000,9600" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 88,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,15500,11600" +st "CLK : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +) +*63 (CptPort +uid 63,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 64,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,11000,26375,11750" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 66,0 +va (VaSet +font "courier,12,0" +) +xt "25000,9600,28200,11000" +st "CLR" +blo "25000,10800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 89,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,15500,12500" +st "CLR : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*64 (CptPort +uid 69,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 70,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,4625,29750,5375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 72,0 +va (VaSet +font "courier,12,0" +) +xt "26200,4300,28000,5700" +st "Q" +ju 2 +blo "28000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,14500,14300" +st "Q : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 12,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,3000,29000,11000" +) +showPorts 0 +oxt "15000,10000,21000,19000" +biTextGroup (BiTextGroup +uid 13,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 14,0 +va (VaSet +) +xt "27600,10700,30600,11700" +st "Board" +blo "27600,11500" +) +second (Text +uid 15,0 +va (VaSet +) +xt "27600,11700,29400,12700" +st "DFF" +blo "27600,12500" +) +) +gi *65 (GenericInterface +uid 16,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 17,0 +text (MLText +uid 18,0 +va (VaSet +isHidden 1 +) +xt "30000,10400,42600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *66 (PackageList +uid 8,0 +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 97,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*68 (MLText +uid 98,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "23,13,991,725" +viewArea "-672,-4956,43920,21156" +cachedDiagramExtent "0,0,43800,15100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,42000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26600,24700,29700,25700" +st "" +blo "26600,25500" +) +second (Text +va (VaSet +) +xt "26600,25700,28800,26700" +st "" +blo "26600,26500" +) +) +gi *69 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *70 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,8300,8600,9500" +st "Declarations" +blo "0,9300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,9500,4200,10700" +st "Ports:" +blo "0,10500" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,14300,3000,15300" +st "User:" +blo "0,15100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,8300,9400,9500" +st "Internal User:" +blo "0,9300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,2000,15300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,8300,32000,8300" +tm "SyDeclarativeTextMgr" +) +) +lastUid 188,0 +) diff --git a/04-Lissajous/Board/hds/@f@p@g@a_sine@gen_tester/interface b/04-Lissajous/Board/hds/@f@p@g@a_sine@gen_tester/interface new file mode 100644 index 0000000..f018467 --- /dev/null +++ b/04-Lissajous/Board/hds/@f@p@g@a_sine@gen_tester/interface @@ -0,0 +1,1571 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +uid 208,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +uid 210,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 4 +suid 2007,0 +) +) +uid 212,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "xOut" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +uid 214,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "yOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +uid 216,0 +) +] +) +pdm (PhysicalDM +uid 156,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 93,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 96,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 209,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 211,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 213,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 215,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 217,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 94,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 102,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 106,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 108,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 110,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 114,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 116,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 118,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 92,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 148,0 +) +] +) +pdm (PhysicalDM +uid 159,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 124,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 127,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 129,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 131,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 149,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 125,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 133,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 139,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 141,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 143,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 145,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 147,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 157,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "chronometer" +) +(vvPair +variable "config" +value "%(unit)_config" +) +(vvPair +variable "d" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\FPGA_sineGen_tester" +) +(vvPair +variable "date" +value "27.01.2010" +) +(vvPair +variable "day" +value "mer." +) +(vvPair +variable "day_long" +value "mercredi" +) +(vvPair +variable "dd" +value "27" +) +(vvPair +variable "entity_name" +value "FPGA_sineGen_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3195" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Chronometer/Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "FPGA_sineGen_tester" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\FPGA_sineGen_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Chronometer\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:20:56" +) +(vvPair +variable "unit" +value "FPGA_sineGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 71,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 183,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 184,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 185,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 186,0 +ro 270 +va (VaSet +) +xt "22500,7000,23500,9100" +st "clock" +ju 2 +blo "23300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 187,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,62000,5200" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +) +*65 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 189,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +ro 270 +va (VaSet +) +xt "24500,7000,25500,9100" +st "reset" +ju 2 +blo "25300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +*66 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 194,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +ro 270 +va (VaSet +) +xt "56500,7000,57500,11400" +st "triggerOut" +ju 2 +blo "57300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,62000,2800" +st "triggerOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 4 +suid 2007,0 +) +) +) +*67 (CptPort +uid 198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 199,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 200,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 201,0 +ro 270 +va (VaSet +) +xt "58500,7000,59500,8900" +st "xOut" +ju 2 +blo "59300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 202,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62000,3600" +st "xOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "xOut" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +) +*68 (CptPort +uid 203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 204,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 205,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 206,0 +ro 270 +va (VaSet +) +xt "60500,7000,61500,8900" +st "yOut" +ju 2 +blo "61300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 207,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "yOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "yOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,59000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "34900,8800,38400,10000" +st "Board" +blo "34900,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "34900,10000,47100,11200" +st "FPGA_sineGen_tester" +blo "34900,11000" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,6000,30000,8400" +st "Generic Declarations + +signalBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44800,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50300,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SineInterpolator_test" +entityName "FPGA_sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,6000,44400,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 217,0 +) diff --git a/04-Lissajous/Board/hds/_buff._epf b/04-Lissajous/Board/hds/_buff._epf new file mode 100644 index 0000000..d74258b --- /dev/null +++ b/04-Lissajous/Board/hds/_buff._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom buff_sim.vhd +DEFAULT_ARCHITECTURE atom sim diff --git a/04-Lissajous/Board/hds/_lissajousgenerator_circuit._epf b/04-Lissajous/Board/hds/_lissajousgenerator_circuit._epf new file mode 100644 index 0000000..743da6f --- /dev/null +++ b/04-Lissajous/Board/hds/_lissajousgenerator_circuit._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom lissajous@generator_circuit/student@version.bd +DEFAULT_ARCHITECTURE atom studentVersion +TOP_MARKER atom 1 diff --git a/04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs2._epf b/04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs2._epf new file mode 100644 index 0000000..5bcd10d --- /dev/null +++ b/04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs2._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom lissajous@generator_circuit_@e@b@s2/student@version.bd +DEFAULT_ARCHITECTURE atom student@version +TOP_MARKER atom 1 diff --git a/04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs3._epf b/04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs3._epf new file mode 100644 index 0000000..033f37c --- /dev/null +++ b/04-Lissajous/Board/hds/_lissajousgenerator_circuit_ebs3._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom lissajous@generator_circuit_@e@b@s3/student@version.bd +TOP_MARKER atom 1 diff --git a/04-Lissajous/Board/hds/buff/symbol.sb b/04-Lissajous/Board/hds/buff/symbol.sb new file mode 100644 index 0000000..f9ad06a --- /dev/null +++ b/04-Lissajous/Board/hds/buff/symbol.sb @@ -0,0 +1,1107 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "buff" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "buff" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:01" +) +(vvPair +variable "unit" +value "buff" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,26310,5700" +st "buff" +blo "23910,5500" +) +) +gi *58 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *59 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*61 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,1352,888" +viewArea "-600,-3900,62412,40055" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *62 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *63 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 149,0 +activeModelName "Symbol" +) diff --git a/04-Lissajous/Board/hds/inverter/symbol.sb b/04-Lissajous/Board/hds/inverter/symbol.sb new file mode 100644 index 0000000..515ce1d --- /dev/null +++ b/04-Lissajous/Board/hds/inverter/symbol.sb @@ -0,0 +1,1092 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:09" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverter" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:09" +) +(vvPair +variable "unit" +value "inverter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +optionalChildren [ +*58 (Circle +uid 28,0 +va (VaSet +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28750,6625,29500,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,28710,5700" +st "inverter" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/04-Lissajous/Board/hds/inverter@in/symbol.sb b/04-Lissajous/Board/hds/inverter@in/symbol.sb new file mode 100644 index 0000000..85e0913 --- /dev/null +++ b/04-Lissajous/Board/hds/inverter@in/symbol.sb @@ -0,0 +1,1095 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 98,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 100,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 101,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 44,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 47,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 49,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 51,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 70,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 45,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 53,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 57,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 59,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 61,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 63,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 65,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 67,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 69,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 43,0 +vaOverrides [ +] +) +] +) +uid 97,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 104,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 73,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 76,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 78,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 80,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 74,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 82,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 86,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 88,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 90,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 92,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 94,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 96,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 72,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverterIn" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverterIn" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:14" +) +(vvPair +variable "unit" +value "inverterIn" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +optionalChildren [ +*57 (Circle +uid 42,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,6546,23000,7454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21342,6625,22092,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*58 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,30510,5700" +st "inverterIn" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 127,0 +) diff --git a/04-Lissajous/Board/hds/lissajous@generator_circuit/student@version.bd b/04-Lissajous/Board/hds/lissajous@generator_circuit/student@version.bd new file mode 100644 index 0000000..7b47360 --- /dev/null +++ b/04-Lissajous/Board/hds/lissajous@generator_circuit/student@version.bd @@ -0,0 +1,3978 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_dff" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 1071,0 +) +(Instance +name "I_inv2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1806,0 +) +(Instance +name "I_inv1" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1817,0 +) +(Instance +name "I_main" +duLibraryName "Lissajous" +duName "lissajousGenerator" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +mwi 0 +uid 2310,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb4" +number "4" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit\\student@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit\\student@version.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "studentVersion" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "student@version.bd" +) +(vvPair +variable "f_logical" +value "studentVersion.bd" +) +(vvPair +variable "f_noext" +value "student@version" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:46:48" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_QuestaSimCompiler" +value "$HDS_PROJECT_DIR/../Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_SvAssistantInvoke" +value "$HDS_PROJECT_DIR/../Board/svassistant" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit\\student@version.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit\\studentVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "student@version" +) +(vvPair +variable "this_file_logical" +value "studentVersion" +) +(vvPair +variable "time" +value "14:46:48" +) +(vvPair +variable "unit" +value "lissajousGenerator_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "studentVersion" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "15000,29625,16500,30375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "16500,30000,17000,30000" +pts [ +"16500,30000" +"17000,30000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "10500,29300,14000,30800" +st "clock" +ju 2 +blo "14000,30500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,8000,11800,9200" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "81500,25625,83000,26375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "81000,26000,81500,26000" +pts [ +"81000,26000" +"81500,26000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "84000,25300,87100,26800" +st "yOut" +blo "84000,26500" +tm "WireNameMgr" +) +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "15000,41625,16500,42375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "16500,42000,17000,42000" +pts [ +"16500,42000" +"17000,42000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "8900,41300,14000,42800" +st "reset_N" +ju 2 +blo "14000,42500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-1000,20000,16200,21200" +st "SIGNAL reset : std_ulogic" +) +) +*6 (Grouping +uid 51,0 +optionalChildren [ +*7 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,65000,76000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,65500,59200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,61000,80000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,61500,76200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,63000,76000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,63500,59200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,63000,59000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,63500,55200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,62000,96000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,62200,90300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*12 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "80000,61000,96000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "80200,61500,80200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,61000,76000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "60350,61400,70650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,64000,59000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,64500,55200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,65000,59000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,65500,55200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,64000,76000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,64500,59200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "55000,61000,96000,66000" +) +oxt "14000,66000,55000,71000" +) +*17 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +) +xt "-1000,9000,12500,10200" +st "reset_N : std_ulogic" +) +) +*18 (PortIoOut +uid 429,0 +shape (CompositeShape +uid 430,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 431,0 +sl 0 +ro 270 +xt "81500,29625,83000,30375" +) +(Line +uid 432,0 +sl 0 +ro 270 +xt "81000,30000,81500,30000" +pts [ +"81000,30000" +"81500,30000" +] +) +] +) +tg (WTG +uid 433,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 434,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "84000,29300,90800,30800" +st "triggerOut" +blo "84000,30500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 441,0 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 4,0 +) +declText (MLText +uid 442,0 +va (VaSet +) +xt "-1000,10000,12800,11200" +st "triggerOut : std_ulogic" +) +) +*20 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 6,0 +) +declText (MLText +uid 477,0 +va (VaSet +) +xt "-1000,11000,11900,12200" +st "xOut : std_ulogic" +) +) +*21 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "81500,27625,83000,28375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "81000,28000,81500,28000" +pts [ +"81000,28000" +"81500,28000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "84000,27300,87100,28800" +st "xOut" +blo "84000,28500" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 7,0 +) +declText (MLText +uid 612,0 +va (VaSet +) +xt "-1000,12000,11900,13200" +st "yOut : std_ulogic" +) +) +*23 (HdlText +uid 818,0 +optionalChildren [ +*24 (EmbeddedText +uid 823,0 +commentText (CommentText +uid 824,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 825,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "22000,33000,28000,35000" +) +oxt "0,0,18000,5000" +text (MLText +uid 826,0 +va (VaSet +) +xt "22200,33200,27700,34400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 819,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "21000,32000,29000,36000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 820,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 821,0 +va (VaSet +) +xt "21400,36000,23000,37000" +st "eb4" +blo "21400,36800" +tm "HdlTextNameMgr" +) +*26 (Text +uid 822,0 +va (VaSet +) +xt "21400,37000,22200,38000" +st "4" +blo "21400,37800" +tm "HdlTextNumberMgr" +) +] +) +) +*27 (Net +uid 893,0 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 8 +suid 10,0 +) +declText (MLText +uid 894,0 +va (VaSet +) +xt "-1000,21000,18300,22200" +st "SIGNAL resetSnch_N : std_ulogic" +) +) +*28 (Net +uid 895,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 6 +suid 11,0 +) +declText (MLText +uid 896,0 +va (VaSet +) +xt "-1000,19000,16700,20200" +st "SIGNAL logic1 : std_uLogic" +) +) +*29 (Net +uid 897,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +declText (MLText +uid 898,0 +va (VaSet +) +xt "-1000,22000,17800,23200" +st "SIGNAL resetSynch : std_ulogic" +) +) +*30 (SaComponent +uid 1071,0 +optionalChildren [ +*31 (CptPort +uid 1054,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1055,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,33625,34000,34375" +) +tg (CPTG +uid 1056,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1057,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,33300,36600,34800" +st "D" +blo "35000,34500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*32 (CptPort +uid 1058,0 +optionalChildren [ +*33 (FFT +pts [ +"34750,38000" +"34000,38375" +"34000,37625" +] +uid 1062,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,37625,34750,38375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1059,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,37625,34000,38375" +) +tg (CPTG +uid 1060,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1061,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,37400,38100,38900" +st "CLK" +blo "35000,38600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*34 (CptPort +uid 1063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1064,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "36625,40000,37375,40750" +) +tg (CPTG +uid 1065,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1066,0 +va (VaSet +font "Arial,12,0" +) +xt "36000,38600,39200,40100" +st "CLR" +blo "36000,39800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*35 (CptPort +uid 1067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1068,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40000,33625,40750,34375" +) +tg (CPTG +uid 1069,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Arial,12,0" +) +xt "37400,33300,39000,34800" +st "Q" +ju 2 +blo "39000,34500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1072,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,32000,40000,40000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1073,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 1074,0 +va (VaSet +) +xt "38600,39700,41000,40700" +st "Board" +blo "38600,40500" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 1075,0 +va (VaSet +) +xt "38600,40700,40600,41700" +st "DFF" +blo "38600,41500" +tm "CptNameMgr" +) +*38 (Text +uid 1076,0 +va (VaSet +) +xt "38600,41700,40400,42700" +st "I_dff" +blo "38600,42500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1077,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1078,0 +text (MLText +uid 1079,0 +va (VaSet +) +xt "11000,29000,11000,29000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*39 (SaComponent +uid 1806,0 +optionalChildren [ +*40 (CptPort +uid 1797,0 +optionalChildren [ +*41 (Circle +uid 1801,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44092,33546,45000,34454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1798,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43342,33625,44092,34375" +) +tg (CPTG +uid 1799,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1800,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "45000,33500,47400,35000" +st "in1" +blo "45000,34700" +) +s (Text +uid 1815,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "45000,34900,45000,34900" +blo "45000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*42 (CptPort +uid 1802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1803,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50000,33625,50750,34375" +) +tg (CPTG +uid 1804,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1805,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "46650,33500,49750,35000" +st "out1" +ju 2 +blo "49750,34700" +) +s (Text +uid 1816,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "49750,34900,49750,34900" +ju 2 +blo "49750,34900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 1807,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,31000,50000,37000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1808,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*43 (Text +uid 1809,0 +va (VaSet +) +xt "46460,36700,48860,37700" +st "Board" +blo "46460,37500" +tm "BdLibraryNameMgr" +) +*44 (Text +uid 1810,0 +va (VaSet +) +xt "46460,37700,50360,38700" +st "inverterIn" +blo "46460,38500" +tm "CptNameMgr" +) +*45 (Text +uid 1811,0 +va (VaSet +) +xt "46460,38700,48760,39700" +st "I_inv2" +blo "46460,39500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1812,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1813,0 +text (MLText +uid 1814,0 +va (VaSet +) +xt "45000,37400,45000,37400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*46 (SaComponent +uid 1817,0 +optionalChildren [ +*47 (CptPort +uid 1826,0 +optionalChildren [ +*48 (Circle +uid 1831,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,41546,23000,42454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1827,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "21342,41625,22092,42375" +) +tg (CPTG +uid 1828,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1829,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "23000,41500,25400,43000" +st "in1" +blo "23000,42700" +) +s (Text +uid 1830,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "23000,42900,23000,42900" +blo "23000,42900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*49 (CptPort +uid 1832,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1833,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "28000,41625,28750,42375" +) +tg (CPTG +uid 1834,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1835,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "24650,41500,27750,43000" +st "out1" +ju 2 +blo "27750,42700" +) +s (Text +uid 1836,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "27750,42900,27750,42900" +ju 2 +blo "27750,42900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 1818,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,39000,28000,45000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1819,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +uid 1820,0 +va (VaSet +) +xt "24460,44700,26860,45700" +st "Board" +blo "24460,45500" +tm "BdLibraryNameMgr" +) +*51 (Text +uid 1821,0 +va (VaSet +) +xt "24460,45700,28360,46700" +st "inverterIn" +blo "24460,46500" +tm "CptNameMgr" +) +*52 (Text +uid 1822,0 +va (VaSet +) +xt "24460,46700,26760,47700" +st "I_inv1" +blo "24460,47500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1823,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1824,0 +text (MLText +uid 1825,0 +va (VaSet +) +xt "23000,45400,23000,45400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*53 (SaComponent +uid 2310,0 +optionalChildren [ +*54 (CptPort +uid 2290,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2291,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,29625,57000,30375" +) +tg (CPTG +uid 2292,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2293,0 +va (VaSet +font "Arial,9,0" +) +xt "58000,29400,60700,30600" +st "clock" +blo "58000,30300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*55 (CptPort +uid 2294,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2295,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,29625,73750,30375" +) +tg (CPTG +uid 2296,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2297,0 +va (VaSet +font "Arial,9,0" +) +xt "66900,29400,72000,30600" +st "triggerOut" +ju 2 +blo "72000,30300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*56 (CptPort +uid 2298,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2299,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,27625,73750,28375" +) +tg (CPTG +uid 2300,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2301,0 +va (VaSet +font "Arial,9,0" +) +xt "69500,27400,72000,28600" +st "xOut" +ju 2 +blo "72000,28300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*57 (CptPort +uid 2302,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2303,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,25625,73750,26375" +) +tg (CPTG +uid 2304,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2305,0 +va (VaSet +font "Arial,9,0" +) +xt "69400,25400,72000,26600" +st "yOut" +ju 2 +blo "72000,26300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*58 (CptPort +uid 2306,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2307,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,31625,57000,32375" +) +tg (CPTG +uid 2308,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2309,0 +va (VaSet +) +xt "58000,31500,60100,32500" +st "reset" +blo "58000,32300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +] +shape (Rectangle +uid 2311,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,22000,73000,34000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 2312,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 2313,0 +va (VaSet +font "Arial,9,1" +) +xt "57600,33800,62500,34900" +st "Lissajous" +blo "57600,34700" +tm "BdLibraryNameMgr" +) +*60 (Text +uid 2314,0 +va (VaSet +font "Arial,9,1" +) +xt "57600,34700,67200,35800" +st "lissajousGenerator" +blo "57600,35600" +tm "CptNameMgr" +) +*61 (Text +uid 2315,0 +va (VaSet +font "Arial,9,1" +) +xt "57600,35600,61100,36700" +st "I_main" +blo "57600,36500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2316,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2317,0 +text (MLText +uid 2318,0 +va (VaSet +) +xt "57000,37600,80500,42400" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) +stepX = stepX ( positive ) +stepY = stepY ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +) +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*62 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "17000,30000,56250,30000" +pts [ +"17000,30000" +"56250,30000" +] +) +start &1 +end &54 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Arial,12,0" +) +xt "17000,28600,20500,30100" +st "clock" +blo "17000,29800" +tm "WireNameMgr" +) +) +on &2 +) +*63 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "73750,26000,81000,26000" +pts [ +"81000,26000" +"73750,26000" +] +) +start &3 +end &57 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,24600,79100,26100" +st "yOut" +blo "76000,25800" +tm "WireNameMgr" +) +) +on &22 +) +*64 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "17000,42000,22092,42000" +pts [ +"17000,42000" +"22092,42000" +] +) +start &4 +end &47 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Arial,12,0" +) +xt "16000,40600,21100,42100" +st "reset_N" +blo "16000,41800" +tm "WireNameMgr" +) +) +on &17 +) +*65 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "50000,32000,56250,34000" +pts [ +"50000,34000" +"53000,34000" +"53000,32000" +"56250,32000" +] +) +start &42 +end &58 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "Arial,12,0" +) +xt "50000,30600,57500,32100" +st "resetSynch" +blo "50000,31800" +tm "WireNameMgr" +) +) +on &29 +) +*66 (Wire +uid 435,0 +shape (OrthoPolyLine +uid 436,0 +va (VaSet +vasetType 3 +) +xt "73750,30000,81000,30000" +pts [ +"81000,30000" +"73750,30000" +] +) +start &18 +end &55 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 439,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 440,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,28600,82800,30100" +st "triggerOut" +blo "76000,29800" +tm "WireNameMgr" +) +) +on &19 +) +*67 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "73750,28000,81000,28000" +pts [ +"81000,28000" +"73750,28000" +] +) +start &21 +end &56 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,26600,79100,28100" +st "xOut" +blo "76000,27800" +tm "WireNameMgr" +) +) +on &20 +) +*68 (Wire +uid 873,0 +shape (OrthoPolyLine +uid 874,0 +va (VaSet +vasetType 3 +) +xt "32000,38000,34000,38000" +pts [ +"32000,38000" +"34000,38000" +] +) +end &32 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 877,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 878,0 +va (VaSet +font "Arial,12,0" +) +xt "30000,36600,33500,38100" +st "clock" +blo "30000,37800" +tm "WireNameMgr" +) +) +on &2 +) +*69 (Wire +uid 879,0 +shape (OrthoPolyLine +uid 880,0 +va (VaSet +vasetType 3 +) +xt "28000,40000,37000,42000" +pts [ +"28000,42000" +"37000,42000" +"37000,40000" +] +) +start &49 +end &34 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 882,0 +va (VaSet +font "Arial,12,0" +) +xt "29000,40600,32500,42100" +st "reset" +blo "29000,41800" +tm "WireNameMgr" +) +) +on &5 +) +*70 (Wire +uid 883,0 +shape (OrthoPolyLine +uid 884,0 +va (VaSet +vasetType 3 +) +xt "40000,34000,44092,34000" +pts [ +"40000,34000" +"44092,34000" +] +) +start &35 +end &40 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 885,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 886,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,32600,47600,34100" +st "resetSnch_N" +blo "39000,33800" +tm "WireNameMgr" +) +) +on &27 +) +*71 (Wire +uid 887,0 +shape (OrthoPolyLine +uid 888,0 +va (VaSet +vasetType 3 +) +xt "29000,34000,34000,34000" +pts [ +"34000,34000" +"29000,34000" +] +) +start &31 +end &23 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 891,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 892,0 +va (VaSet +font "Arial,12,0" +) +xt "30000,32600,34000,34100" +st "logic1" +blo "30000,33800" +tm "WireNameMgr" +) +) +on &28 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 85,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,0,2400,1000" +st "Package List" +blo "-3000,800" +) +*74 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*76 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*77 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*78 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*79 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*80 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*81 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4438,-1432,122918,67764" +cachedDiagramExtent "-3000,0,96000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2453,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*83 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*84 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*86 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*87 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*88 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*89 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*90 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*92 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*93 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*95 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*96 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*98 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*100 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*101 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*102 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,6000,2400,7000" +st "Declarations" +blo "-3000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,7000,-300,8000" +st "Ports:" +blo "-3000,7800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,13000,800,14000" +st "Pre User:" +blo "-3000,13800" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-1000,14000,19800,18800" +st "constant signalBitNb: positive := 16; +constant phaseBitNb: positive := 17; +constant stepX: positive := 2; +constant stepY: positive := 3;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,18000,4100,19000" +st "Diagram Signals:" +blo "-3000,18800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-3000,6000,1700,7000" +st "Post User:" +blo "-3000,6800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,6000,-3000,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 19,0 +usingSuid 1 +emptyRow *103 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*104 (RefLabelRowHdr +) +*105 (TitleRowHdr +) +*106 (FilterRowHdr +) +*107 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*108 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*109 (GroupColHdr +tm "GroupColHdrMgr" +) +*110 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*111 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*112 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*113 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*114 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*115 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*116 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1377,0 +) +*117 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 2,0 +) +) +uid 1379,0 +) +*118 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 1381,0 +) +*119 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 1383,0 +) +*120 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 6,0 +) +) +uid 1387,0 +) +*121 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 7,0 +) +) +uid 1389,0 +) +*122 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 8 +suid 10,0 +) +) +uid 1395,0 +) +*123 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 6 +suid 11,0 +) +) +uid 1397,0 +) +*124 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +) +uid 1399,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*125 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *126 (MRCItem +litem &103 +pos 9 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*127 (MRCItem +litem &104 +pos 0 +dimension 20 +uid 1422,0 +) +*128 (MRCItem +litem &105 +pos 1 +dimension 23 +uid 1423,0 +) +*129 (MRCItem +litem &106 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*130 (MRCItem +litem &116 +pos 0 +dimension 20 +uid 1378,0 +) +*131 (MRCItem +litem &117 +pos 5 +dimension 20 +uid 1380,0 +) +*132 (MRCItem +litem &118 +pos 1 +dimension 20 +uid 1382,0 +) +*133 (MRCItem +litem &119 +pos 2 +dimension 20 +uid 1384,0 +) +*134 (MRCItem +litem &120 +pos 3 +dimension 20 +uid 1388,0 +) +*135 (MRCItem +litem &121 +pos 4 +dimension 20 +uid 1390,0 +) +*136 (MRCItem +litem &122 +pos 6 +dimension 20 +uid 1396,0 +) +*137 (MRCItem +litem &123 +pos 7 +dimension 20 +uid 1398,0 +) +*138 (MRCItem +litem &124 +pos 8 +dimension 20 +uid 1400,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*139 (MRCItem +litem &107 +pos 0 +dimension 20 +uid 1426,0 +) +*140 (MRCItem +litem &109 +pos 1 +dimension 50 +uid 1427,0 +) +*141 (MRCItem +litem &110 +pos 2 +dimension 100 +uid 1428,0 +) +*142 (MRCItem +litem &111 +pos 3 +dimension 50 +uid 1429,0 +) +*143 (MRCItem +litem &112 +pos 4 +dimension 100 +uid 1430,0 +) +*144 (MRCItem +litem &113 +pos 5 +dimension 100 +uid 1431,0 +) +*145 (MRCItem +litem &114 +pos 6 +dimension 50 +uid 1432,0 +) +*146 (MRCItem +litem &115 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *147 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*148 (RefLabelRowHdr +) +*149 (TitleRowHdr +) +*150 (FilterRowHdr +) +*151 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*152 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*153 (GroupColHdr +tm "GroupColHdrMgr" +) +*154 (NameColHdr +tm "GenericNameColHdrMgr" +) +*155 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*156 (InitColHdr +tm "GenericValueColHdrMgr" +) +*157 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*158 (EolColHdr +tm "GenericEolColHdrMgr" +) +*159 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 1488,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*160 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *161 (MRCItem +litem &147 +pos 1 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*162 (MRCItem +litem &148 +pos 0 +dimension 20 +uid 1450,0 +) +*163 (MRCItem +litem &149 +pos 1 +dimension 23 +uid 1451,0 +) +*164 (MRCItem +litem &150 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*165 (MRCItem +litem &159 +pos 0 +dimension 20 +uid 1487,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*166 (MRCItem +litem &151 +pos 0 +dimension 20 +uid 1454,0 +) +*167 (MRCItem +litem &153 +pos 1 +dimension 50 +uid 1455,0 +) +*168 (MRCItem +litem &154 +pos 2 +dimension 100 +uid 1456,0 +) +*169 (MRCItem +litem &155 +pos 3 +dimension 100 +uid 1457,0 +) +*170 (MRCItem +litem &156 +pos 4 +dimension 50 +uid 1458,0 +) +*171 (MRCItem +litem &157 +pos 5 +dimension 50 +uid 1459,0 +) +*172 (MRCItem +litem &158 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/04-Lissajous/Board/hds/lissajous@generator_circuit/symbol.sb b/04-Lissajous/Board/hds/lissajous@generator_circuit/symbol.sb new file mode 100644 index 0000000..e1ad5db --- /dev/null +++ b/04-Lissajous/Board/hds/lissajous@generator_circuit/symbol.sb @@ -0,0 +1,1657 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2005,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 164,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 165,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 166,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 167,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 168,0 +) +*7 (RefLabelRowHdr +) +*8 (TitleRowHdr +) +*9 (FilterRowHdr +) +*10 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*11 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*12 (GroupColHdr +tm "GroupColHdrMgr" +) +*13 (NameColHdr +tm "NameColHdrMgr" +) +*14 (ModeColHdr +tm "ModeColHdrMgr" +) +*15 (TypeColHdr +tm "TypeColHdrMgr" +) +*16 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*17 (InitColHdr +tm "InitColHdrMgr" +) +*18 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 104,0 +optionalChildren [ +*21 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 107,0 +) +*22 (MRCItem +litem &8 +pos 1 +dimension 23 +uid 109,0 +) +*23 (MRCItem +litem &9 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*24 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 130,0 +) +*25 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 131,0 +) +*26 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 132,0 +) +*27 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 133,0 +) +*28 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 134,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*29 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 113,0 +) +*30 (MRCItem +litem &12 +pos 1 +dimension 50 +uid 117,0 +) +*31 (MRCItem +litem &13 +pos 2 +dimension 100 +uid 119,0 +) +*32 (MRCItem +litem &14 +pos 3 +dimension 50 +uid 121,0 +) +*33 (MRCItem +litem &15 +pos 4 +dimension 100 +uid 123,0 +) +*34 (MRCItem +litem &16 +pos 5 +dimension 100 +uid 125,0 +) +*35 (MRCItem +litem &17 +pos 6 +dimension 50 +uid 127,0 +) +*36 (MRCItem +litem &18 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 160,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 136,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 139,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 141,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 161,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 145,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 149,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 151,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 153,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 155,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 157,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajousGenerator_circuit" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:18" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajousGenerator_circuit/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:18" +) +(vvPair +variable "unit" +value "lissajousGenerator_circuit" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,36400,18600" +st "clock" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,19000,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,19400,37700,20600" +st "reset_N" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,19000,12800" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 88,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 89,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 90,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 91,0 +va (VaSet +font "courier,9,0" +) +xt "40400,17400,47000,18600" +st "triggerOut" +ju 2 +blo "47000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 92,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19000,13700" +st "triggerOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 93,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 94,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,15625,48750,16375" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 96,0 +va (VaSet +font "courier,9,0" +) +xt "43800,15400,47000,16600" +st "xOut" +ju 2 +blo "47000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 97,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,19000,14600" +st "xOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*68 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "courier,9,0" +) +xt "43800,13400,47000,14600" +st "yOut" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,18000,15500" +st "yOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,21800,35100,22700" +st "Board" +blo "32600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22700,46100,23600" +st "lissajousGenerator_circuit" +blo "32600,23400" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,25600,42500,28300" +st "Generic Declarations + +bitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-1040,75120,50530" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15500,2500,16400" +st "User:" +blo "0,16200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,2000,16400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 379,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/student@version.bd b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/student@version.bd new file mode 100644 index 0000000..7b47360 --- /dev/null +++ b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/student@version.bd @@ -0,0 +1,3978 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_dff" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 1071,0 +) +(Instance +name "I_inv2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1806,0 +) +(Instance +name "I_inv1" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1817,0 +) +(Instance +name "I_main" +duLibraryName "Lissajous" +duName "lissajousGenerator" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +mwi 0 +uid 2310,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb4" +number "4" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit\\student@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit\\student@version.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "studentVersion" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "student@version.bd" +) +(vvPair +variable "f_logical" +value "studentVersion.bd" +) +(vvPair +variable "f_noext" +value "student@version" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:46:48" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_QuestaSimCompiler" +value "$HDS_PROJECT_DIR/../Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_SvAssistantInvoke" +value "$HDS_PROJECT_DIR/../Board/svassistant" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit\\student@version.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit\\studentVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "student@version" +) +(vvPair +variable "this_file_logical" +value "studentVersion" +) +(vvPair +variable "time" +value "14:46:48" +) +(vvPair +variable "unit" +value "lissajousGenerator_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "studentVersion" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "15000,29625,16500,30375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "16500,30000,17000,30000" +pts [ +"16500,30000" +"17000,30000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "10500,29300,14000,30800" +st "clock" +ju 2 +blo "14000,30500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,8000,11800,9200" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "81500,25625,83000,26375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "81000,26000,81500,26000" +pts [ +"81000,26000" +"81500,26000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "84000,25300,87100,26800" +st "yOut" +blo "84000,26500" +tm "WireNameMgr" +) +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "15000,41625,16500,42375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "16500,42000,17000,42000" +pts [ +"16500,42000" +"17000,42000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "8900,41300,14000,42800" +st "reset_N" +ju 2 +blo "14000,42500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-1000,20000,16200,21200" +st "SIGNAL reset : std_ulogic" +) +) +*6 (Grouping +uid 51,0 +optionalChildren [ +*7 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,65000,76000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,65500,59200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,61000,80000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,61500,76200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,63000,76000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,63500,59200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,63000,59000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,63500,55200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,62000,96000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,62200,90300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*12 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "80000,61000,96000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "80200,61500,80200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,61000,76000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "60350,61400,70650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,64000,59000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,64500,55200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,65000,59000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,65500,55200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,64000,76000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,64500,59200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "55000,61000,96000,66000" +) +oxt "14000,66000,55000,71000" +) +*17 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +) +xt "-1000,9000,12500,10200" +st "reset_N : std_ulogic" +) +) +*18 (PortIoOut +uid 429,0 +shape (CompositeShape +uid 430,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 431,0 +sl 0 +ro 270 +xt "81500,29625,83000,30375" +) +(Line +uid 432,0 +sl 0 +ro 270 +xt "81000,30000,81500,30000" +pts [ +"81000,30000" +"81500,30000" +] +) +] +) +tg (WTG +uid 433,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 434,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "84000,29300,90800,30800" +st "triggerOut" +blo "84000,30500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 441,0 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 4,0 +) +declText (MLText +uid 442,0 +va (VaSet +) +xt "-1000,10000,12800,11200" +st "triggerOut : std_ulogic" +) +) +*20 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 6,0 +) +declText (MLText +uid 477,0 +va (VaSet +) +xt "-1000,11000,11900,12200" +st "xOut : std_ulogic" +) +) +*21 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "81500,27625,83000,28375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "81000,28000,81500,28000" +pts [ +"81000,28000" +"81500,28000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "84000,27300,87100,28800" +st "xOut" +blo "84000,28500" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 7,0 +) +declText (MLText +uid 612,0 +va (VaSet +) +xt "-1000,12000,11900,13200" +st "yOut : std_ulogic" +) +) +*23 (HdlText +uid 818,0 +optionalChildren [ +*24 (EmbeddedText +uid 823,0 +commentText (CommentText +uid 824,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 825,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "22000,33000,28000,35000" +) +oxt "0,0,18000,5000" +text (MLText +uid 826,0 +va (VaSet +) +xt "22200,33200,27700,34400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 819,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "21000,32000,29000,36000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 820,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 821,0 +va (VaSet +) +xt "21400,36000,23000,37000" +st "eb4" +blo "21400,36800" +tm "HdlTextNameMgr" +) +*26 (Text +uid 822,0 +va (VaSet +) +xt "21400,37000,22200,38000" +st "4" +blo "21400,37800" +tm "HdlTextNumberMgr" +) +] +) +) +*27 (Net +uid 893,0 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 8 +suid 10,0 +) +declText (MLText +uid 894,0 +va (VaSet +) +xt "-1000,21000,18300,22200" +st "SIGNAL resetSnch_N : std_ulogic" +) +) +*28 (Net +uid 895,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 6 +suid 11,0 +) +declText (MLText +uid 896,0 +va (VaSet +) +xt "-1000,19000,16700,20200" +st "SIGNAL logic1 : std_uLogic" +) +) +*29 (Net +uid 897,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +declText (MLText +uid 898,0 +va (VaSet +) +xt "-1000,22000,17800,23200" +st "SIGNAL resetSynch : std_ulogic" +) +) +*30 (SaComponent +uid 1071,0 +optionalChildren [ +*31 (CptPort +uid 1054,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1055,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,33625,34000,34375" +) +tg (CPTG +uid 1056,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1057,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,33300,36600,34800" +st "D" +blo "35000,34500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*32 (CptPort +uid 1058,0 +optionalChildren [ +*33 (FFT +pts [ +"34750,38000" +"34000,38375" +"34000,37625" +] +uid 1062,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,37625,34750,38375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1059,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,37625,34000,38375" +) +tg (CPTG +uid 1060,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1061,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,37400,38100,38900" +st "CLK" +blo "35000,38600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*34 (CptPort +uid 1063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1064,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "36625,40000,37375,40750" +) +tg (CPTG +uid 1065,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1066,0 +va (VaSet +font "Arial,12,0" +) +xt "36000,38600,39200,40100" +st "CLR" +blo "36000,39800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*35 (CptPort +uid 1067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1068,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40000,33625,40750,34375" +) +tg (CPTG +uid 1069,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Arial,12,0" +) +xt "37400,33300,39000,34800" +st "Q" +ju 2 +blo "39000,34500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1072,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,32000,40000,40000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1073,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 1074,0 +va (VaSet +) +xt "38600,39700,41000,40700" +st "Board" +blo "38600,40500" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 1075,0 +va (VaSet +) +xt "38600,40700,40600,41700" +st "DFF" +blo "38600,41500" +tm "CptNameMgr" +) +*38 (Text +uid 1076,0 +va (VaSet +) +xt "38600,41700,40400,42700" +st "I_dff" +blo "38600,42500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1077,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1078,0 +text (MLText +uid 1079,0 +va (VaSet +) +xt "11000,29000,11000,29000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*39 (SaComponent +uid 1806,0 +optionalChildren [ +*40 (CptPort +uid 1797,0 +optionalChildren [ +*41 (Circle +uid 1801,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44092,33546,45000,34454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1798,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43342,33625,44092,34375" +) +tg (CPTG +uid 1799,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1800,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "45000,33500,47400,35000" +st "in1" +blo "45000,34700" +) +s (Text +uid 1815,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "45000,34900,45000,34900" +blo "45000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*42 (CptPort +uid 1802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1803,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50000,33625,50750,34375" +) +tg (CPTG +uid 1804,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1805,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "46650,33500,49750,35000" +st "out1" +ju 2 +blo "49750,34700" +) +s (Text +uid 1816,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "49750,34900,49750,34900" +ju 2 +blo "49750,34900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 1807,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,31000,50000,37000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1808,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*43 (Text +uid 1809,0 +va (VaSet +) +xt "46460,36700,48860,37700" +st "Board" +blo "46460,37500" +tm "BdLibraryNameMgr" +) +*44 (Text +uid 1810,0 +va (VaSet +) +xt "46460,37700,50360,38700" +st "inverterIn" +blo "46460,38500" +tm "CptNameMgr" +) +*45 (Text +uid 1811,0 +va (VaSet +) +xt "46460,38700,48760,39700" +st "I_inv2" +blo "46460,39500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1812,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1813,0 +text (MLText +uid 1814,0 +va (VaSet +) +xt "45000,37400,45000,37400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*46 (SaComponent +uid 1817,0 +optionalChildren [ +*47 (CptPort +uid 1826,0 +optionalChildren [ +*48 (Circle +uid 1831,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,41546,23000,42454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1827,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "21342,41625,22092,42375" +) +tg (CPTG +uid 1828,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1829,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "23000,41500,25400,43000" +st "in1" +blo "23000,42700" +) +s (Text +uid 1830,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "23000,42900,23000,42900" +blo "23000,42900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*49 (CptPort +uid 1832,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1833,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "28000,41625,28750,42375" +) +tg (CPTG +uid 1834,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1835,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "24650,41500,27750,43000" +st "out1" +ju 2 +blo "27750,42700" +) +s (Text +uid 1836,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "27750,42900,27750,42900" +ju 2 +blo "27750,42900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 1818,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,39000,28000,45000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1819,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +uid 1820,0 +va (VaSet +) +xt "24460,44700,26860,45700" +st "Board" +blo "24460,45500" +tm "BdLibraryNameMgr" +) +*51 (Text +uid 1821,0 +va (VaSet +) +xt "24460,45700,28360,46700" +st "inverterIn" +blo "24460,46500" +tm "CptNameMgr" +) +*52 (Text +uid 1822,0 +va (VaSet +) +xt "24460,46700,26760,47700" +st "I_inv1" +blo "24460,47500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1823,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1824,0 +text (MLText +uid 1825,0 +va (VaSet +) +xt "23000,45400,23000,45400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*53 (SaComponent +uid 2310,0 +optionalChildren [ +*54 (CptPort +uid 2290,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2291,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,29625,57000,30375" +) +tg (CPTG +uid 2292,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2293,0 +va (VaSet +font "Arial,9,0" +) +xt "58000,29400,60700,30600" +st "clock" +blo "58000,30300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*55 (CptPort +uid 2294,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2295,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,29625,73750,30375" +) +tg (CPTG +uid 2296,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2297,0 +va (VaSet +font "Arial,9,0" +) +xt "66900,29400,72000,30600" +st "triggerOut" +ju 2 +blo "72000,30300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*56 (CptPort +uid 2298,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2299,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,27625,73750,28375" +) +tg (CPTG +uid 2300,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2301,0 +va (VaSet +font "Arial,9,0" +) +xt "69500,27400,72000,28600" +st "xOut" +ju 2 +blo "72000,28300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*57 (CptPort +uid 2302,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2303,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,25625,73750,26375" +) +tg (CPTG +uid 2304,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2305,0 +va (VaSet +font "Arial,9,0" +) +xt "69400,25400,72000,26600" +st "yOut" +ju 2 +blo "72000,26300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*58 (CptPort +uid 2306,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2307,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,31625,57000,32375" +) +tg (CPTG +uid 2308,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2309,0 +va (VaSet +) +xt "58000,31500,60100,32500" +st "reset" +blo "58000,32300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +] +shape (Rectangle +uid 2311,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,22000,73000,34000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 2312,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 2313,0 +va (VaSet +font "Arial,9,1" +) +xt "57600,33800,62500,34900" +st "Lissajous" +blo "57600,34700" +tm "BdLibraryNameMgr" +) +*60 (Text +uid 2314,0 +va (VaSet +font "Arial,9,1" +) +xt "57600,34700,67200,35800" +st "lissajousGenerator" +blo "57600,35600" +tm "CptNameMgr" +) +*61 (Text +uid 2315,0 +va (VaSet +font "Arial,9,1" +) +xt "57600,35600,61100,36700" +st "I_main" +blo "57600,36500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2316,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2317,0 +text (MLText +uid 2318,0 +va (VaSet +) +xt "57000,37600,80500,42400" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) +stepX = stepX ( positive ) +stepY = stepY ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +) +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*62 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "17000,30000,56250,30000" +pts [ +"17000,30000" +"56250,30000" +] +) +start &1 +end &54 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Arial,12,0" +) +xt "17000,28600,20500,30100" +st "clock" +blo "17000,29800" +tm "WireNameMgr" +) +) +on &2 +) +*63 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "73750,26000,81000,26000" +pts [ +"81000,26000" +"73750,26000" +] +) +start &3 +end &57 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,24600,79100,26100" +st "yOut" +blo "76000,25800" +tm "WireNameMgr" +) +) +on &22 +) +*64 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "17000,42000,22092,42000" +pts [ +"17000,42000" +"22092,42000" +] +) +start &4 +end &47 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Arial,12,0" +) +xt "16000,40600,21100,42100" +st "reset_N" +blo "16000,41800" +tm "WireNameMgr" +) +) +on &17 +) +*65 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "50000,32000,56250,34000" +pts [ +"50000,34000" +"53000,34000" +"53000,32000" +"56250,32000" +] +) +start &42 +end &58 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "Arial,12,0" +) +xt "50000,30600,57500,32100" +st "resetSynch" +blo "50000,31800" +tm "WireNameMgr" +) +) +on &29 +) +*66 (Wire +uid 435,0 +shape (OrthoPolyLine +uid 436,0 +va (VaSet +vasetType 3 +) +xt "73750,30000,81000,30000" +pts [ +"81000,30000" +"73750,30000" +] +) +start &18 +end &55 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 439,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 440,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,28600,82800,30100" +st "triggerOut" +blo "76000,29800" +tm "WireNameMgr" +) +) +on &19 +) +*67 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "73750,28000,81000,28000" +pts [ +"81000,28000" +"73750,28000" +] +) +start &21 +end &56 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "Arial,12,0" +) +xt "76000,26600,79100,28100" +st "xOut" +blo "76000,27800" +tm "WireNameMgr" +) +) +on &20 +) +*68 (Wire +uid 873,0 +shape (OrthoPolyLine +uid 874,0 +va (VaSet +vasetType 3 +) +xt "32000,38000,34000,38000" +pts [ +"32000,38000" +"34000,38000" +] +) +end &32 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 877,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 878,0 +va (VaSet +font "Arial,12,0" +) +xt "30000,36600,33500,38100" +st "clock" +blo "30000,37800" +tm "WireNameMgr" +) +) +on &2 +) +*69 (Wire +uid 879,0 +shape (OrthoPolyLine +uid 880,0 +va (VaSet +vasetType 3 +) +xt "28000,40000,37000,42000" +pts [ +"28000,42000" +"37000,42000" +"37000,40000" +] +) +start &49 +end &34 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 882,0 +va (VaSet +font "Arial,12,0" +) +xt "29000,40600,32500,42100" +st "reset" +blo "29000,41800" +tm "WireNameMgr" +) +) +on &5 +) +*70 (Wire +uid 883,0 +shape (OrthoPolyLine +uid 884,0 +va (VaSet +vasetType 3 +) +xt "40000,34000,44092,34000" +pts [ +"40000,34000" +"44092,34000" +] +) +start &35 +end &40 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 885,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 886,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,32600,47600,34100" +st "resetSnch_N" +blo "39000,33800" +tm "WireNameMgr" +) +) +on &27 +) +*71 (Wire +uid 887,0 +shape (OrthoPolyLine +uid 888,0 +va (VaSet +vasetType 3 +) +xt "29000,34000,34000,34000" +pts [ +"34000,34000" +"29000,34000" +] +) +start &31 +end &23 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 891,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 892,0 +va (VaSet +font "Arial,12,0" +) +xt "30000,32600,34000,34100" +st "logic1" +blo "30000,33800" +tm "WireNameMgr" +) +) +on &28 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 85,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,0,2400,1000" +st "Package List" +blo "-3000,800" +) +*74 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*76 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*77 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*78 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*79 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*80 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*81 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4438,-1432,122918,67764" +cachedDiagramExtent "-3000,0,96000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2453,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*83 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*84 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*86 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*87 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*88 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*89 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*90 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*92 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*93 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*95 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*96 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*98 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*100 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*101 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*102 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,6000,2400,7000" +st "Declarations" +blo "-3000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,7000,-300,8000" +st "Ports:" +blo "-3000,7800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,13000,800,14000" +st "Pre User:" +blo "-3000,13800" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-1000,14000,19800,18800" +st "constant signalBitNb: positive := 16; +constant phaseBitNb: positive := 17; +constant stepX: positive := 2; +constant stepY: positive := 3;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,18000,4100,19000" +st "Diagram Signals:" +blo "-3000,18800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-3000,6000,1700,7000" +st "Post User:" +blo "-3000,6800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,6000,-3000,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 19,0 +usingSuid 1 +emptyRow *103 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*104 (RefLabelRowHdr +) +*105 (TitleRowHdr +) +*106 (FilterRowHdr +) +*107 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*108 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*109 (GroupColHdr +tm "GroupColHdrMgr" +) +*110 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*111 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*112 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*113 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*114 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*115 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*116 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1377,0 +) +*117 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 2,0 +) +) +uid 1379,0 +) +*118 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 1381,0 +) +*119 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 1383,0 +) +*120 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 6,0 +) +) +uid 1387,0 +) +*121 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 7,0 +) +) +uid 1389,0 +) +*122 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 8 +suid 10,0 +) +) +uid 1395,0 +) +*123 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 6 +suid 11,0 +) +) +uid 1397,0 +) +*124 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +) +uid 1399,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*125 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *126 (MRCItem +litem &103 +pos 9 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*127 (MRCItem +litem &104 +pos 0 +dimension 20 +uid 1422,0 +) +*128 (MRCItem +litem &105 +pos 1 +dimension 23 +uid 1423,0 +) +*129 (MRCItem +litem &106 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*130 (MRCItem +litem &116 +pos 0 +dimension 20 +uid 1378,0 +) +*131 (MRCItem +litem &117 +pos 5 +dimension 20 +uid 1380,0 +) +*132 (MRCItem +litem &118 +pos 1 +dimension 20 +uid 1382,0 +) +*133 (MRCItem +litem &119 +pos 2 +dimension 20 +uid 1384,0 +) +*134 (MRCItem +litem &120 +pos 3 +dimension 20 +uid 1388,0 +) +*135 (MRCItem +litem &121 +pos 4 +dimension 20 +uid 1390,0 +) +*136 (MRCItem +litem &122 +pos 6 +dimension 20 +uid 1396,0 +) +*137 (MRCItem +litem &123 +pos 7 +dimension 20 +uid 1398,0 +) +*138 (MRCItem +litem &124 +pos 8 +dimension 20 +uid 1400,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*139 (MRCItem +litem &107 +pos 0 +dimension 20 +uid 1426,0 +) +*140 (MRCItem +litem &109 +pos 1 +dimension 50 +uid 1427,0 +) +*141 (MRCItem +litem &110 +pos 2 +dimension 100 +uid 1428,0 +) +*142 (MRCItem +litem &111 +pos 3 +dimension 50 +uid 1429,0 +) +*143 (MRCItem +litem &112 +pos 4 +dimension 100 +uid 1430,0 +) +*144 (MRCItem +litem &113 +pos 5 +dimension 100 +uid 1431,0 +) +*145 (MRCItem +litem &114 +pos 6 +dimension 50 +uid 1432,0 +) +*146 (MRCItem +litem &115 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *147 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*148 (RefLabelRowHdr +) +*149 (TitleRowHdr +) +*150 (FilterRowHdr +) +*151 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*152 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*153 (GroupColHdr +tm "GroupColHdrMgr" +) +*154 (NameColHdr +tm "GenericNameColHdrMgr" +) +*155 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*156 (InitColHdr +tm "GenericValueColHdrMgr" +) +*157 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*158 (EolColHdr +tm "GenericEolColHdrMgr" +) +*159 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 1488,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*160 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *161 (MRCItem +litem &147 +pos 1 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*162 (MRCItem +litem &148 +pos 0 +dimension 20 +uid 1450,0 +) +*163 (MRCItem +litem &149 +pos 1 +dimension 23 +uid 1451,0 +) +*164 (MRCItem +litem &150 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*165 (MRCItem +litem &159 +pos 0 +dimension 20 +uid 1487,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*166 (MRCItem +litem &151 +pos 0 +dimension 20 +uid 1454,0 +) +*167 (MRCItem +litem &153 +pos 1 +dimension 50 +uid 1455,0 +) +*168 (MRCItem +litem &154 +pos 2 +dimension 100 +uid 1456,0 +) +*169 (MRCItem +litem &155 +pos 3 +dimension 100 +uid 1457,0 +) +*170 (MRCItem +litem &156 +pos 4 +dimension 50 +uid 1458,0 +) +*171 (MRCItem +litem &157 +pos 5 +dimension 50 +uid 1459,0 +) +*172 (MRCItem +litem &158 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/symbol.sb b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/symbol.sb new file mode 100644 index 0000000..e1ad5db --- /dev/null +++ b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s2/symbol.sb @@ -0,0 +1,1657 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2005,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 164,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 165,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 166,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 167,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 168,0 +) +*7 (RefLabelRowHdr +) +*8 (TitleRowHdr +) +*9 (FilterRowHdr +) +*10 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*11 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*12 (GroupColHdr +tm "GroupColHdrMgr" +) +*13 (NameColHdr +tm "NameColHdrMgr" +) +*14 (ModeColHdr +tm "ModeColHdrMgr" +) +*15 (TypeColHdr +tm "TypeColHdrMgr" +) +*16 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*17 (InitColHdr +tm "InitColHdrMgr" +) +*18 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 104,0 +optionalChildren [ +*21 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 107,0 +) +*22 (MRCItem +litem &8 +pos 1 +dimension 23 +uid 109,0 +) +*23 (MRCItem +litem &9 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*24 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 130,0 +) +*25 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 131,0 +) +*26 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 132,0 +) +*27 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 133,0 +) +*28 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 134,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*29 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 113,0 +) +*30 (MRCItem +litem &12 +pos 1 +dimension 50 +uid 117,0 +) +*31 (MRCItem +litem &13 +pos 2 +dimension 100 +uid 119,0 +) +*32 (MRCItem +litem &14 +pos 3 +dimension 50 +uid 121,0 +) +*33 (MRCItem +litem &15 +pos 4 +dimension 100 +uid 123,0 +) +*34 (MRCItem +litem &16 +pos 5 +dimension 100 +uid 125,0 +) +*35 (MRCItem +litem &17 +pos 6 +dimension 50 +uid 127,0 +) +*36 (MRCItem +litem &18 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 160,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 136,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 139,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 141,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 161,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 145,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 149,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 151,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 153,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 155,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 157,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajousGenerator_circuit" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:18" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "lissajousGenerator_circuit" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajous@generator_circuit/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/lissajousGenerator_circuit/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:18" +) +(vvPair +variable "unit" +value "lissajousGenerator_circuit" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,36400,18600" +st "clock" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,19000,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,19400,37700,20600" +st "reset_N" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,19000,12800" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 88,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 89,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 90,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 91,0 +va (VaSet +font "courier,9,0" +) +xt "40400,17400,47000,18600" +st "triggerOut" +ju 2 +blo "47000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 92,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19000,13700" +st "triggerOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 93,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 94,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,15625,48750,16375" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 96,0 +va (VaSet +font "courier,9,0" +) +xt "43800,15400,47000,16600" +st "xOut" +ju 2 +blo "47000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 97,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,19000,14600" +st "xOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*68 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "courier,9,0" +) +xt "43800,13400,47000,14600" +st "yOut" +ju 2 +blo "47000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,18000,15500" +st "yOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,21800,35100,22700" +st "Board" +blo "32600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22700,46100,23600" +st "lissajousGenerator_circuit" +blo "32600,23400" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,25600,42500,28300" +st "Generic Declarations + +bitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-1040,75120,50530" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15500,2500,16400" +st "User:" +blo "0,16200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,2000,16400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 379,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/student@version.bd b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/student@version.bd new file mode 100644 index 0000000..1c21e81 --- /dev/null +++ b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/student@version.bd @@ -0,0 +1,4715 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_inv1" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 519,0 +) +(Instance +name "U_pll" +duLibraryName "Lattice" +duName "pll" +elements [ +] +mwi 0 +uid 539,0 +) +(Instance +name "I_dff" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 585,0 +) +(Instance +name "I_inv2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 611,0 +) +(Instance +name "I_main" +duLibraryName "Lissajous" +duName "lissajousGenerator" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +mwi 0 +uid 631,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb7" +number "7" +) +(EmbeddedInstance +name "eb6" +number "6" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3\\student@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3\\student@version.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "studentVersion" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "date" +value "01.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "student@version.bd" +) +(vvPair +variable "f_logical" +value "studentVersion.bd" +) +(vvPair +variable "f_noext" +value "student@version" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "01.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "17:45:56" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3\\student@version.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit_EBS3\\studentVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "student@version" +) +(vvPair +variable "this_file_logical" +value "studentVersion" +) +(vvPair +variable "time" +value "17:45:56" +) +(vvPair +variable "unit" +value "lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "studentVersion" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,4000,38000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "21200,4000,32600,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,0,42000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "38200,0,41200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,2000,38000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "21200,2000,31200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,2000,21000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "17200,2000,19300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,1000,58000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "38200,1200,47600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "42000,0,58000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "42200,0,43800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,0,38000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "22350,400,32650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,3000,21000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "17200,3000,19300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,4000,21000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "17200,4000,19900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,3000,38000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "21200,3000,36000,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "17000,0,58000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 489,0 +shape (CompositeShape +uid 490,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 491,0 +sl 0 +ro 270 +xt "22000,10625,23500,11375" +) +(Line +uid 492,0 +sl 0 +ro 270 +xt "23500,11000,24000,11000" +pts [ +"23500,11000" +"24000,11000" +] +) +] +) +tg (WTG +uid 493,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 494,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "17200,10300,21000,11700" +st "clock" +ju 2 +blo "21000,11500" +tm "WireNameMgr" +) +) +) +*13 (PortIoIn +uid 495,0 +shape (CompositeShape +uid 496,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 497,0 +sl 0 +ro 270 +xt "23000,29625,24500,30375" +) +(Line +uid 498,0 +sl 0 +ro 270 +xt "24500,30000,25000,30000" +pts [ +"24500,30000" +"25000,30000" +] +) +] +) +tg (WTG +uid 499,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 500,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "16200,29300,22000,30700" +st "reset_N" +ju 2 +blo "22000,30500" +tm "WireNameMgr" +) +) +) +*14 (HdlText +uid 501,0 +optionalChildren [ +*15 (EmbeddedText +uid 506,0 +commentText (CommentText +uid 507,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 508,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "20000,13000,29000,15000" +) +oxt "0,0,18000,5000" +text (MLText +uid 509,0 +va (VaSet +) +xt "20200,13200,28400,14400" +st " +logic0 <= '0'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 9000 +) +) +) +] +shape (Rectangle +uid 502,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "20000,12000,30000,16000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 503,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*16 (Text +uid 504,0 +va (VaSet +) +xt "22400,16000,25000,17200" +st "eb7" +blo "22400,17000" +tm "HdlTextNameMgr" +) +*17 (Text +uid 505,0 +va (VaSet +) +xt "22400,17000,23800,18200" +st "7" +blo "22400,18000" +tm "HdlTextNumberMgr" +) +] +) +) +*18 (HdlText +uid 510,0 +optionalChildren [ +*19 (EmbeddedText +uid 515,0 +commentText (CommentText +uid 516,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 517,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "27000,21000,36000,23000" +) +oxt "0,0,18000,5000" +text (MLText +uid 518,0 +va (VaSet +) +xt "27200,21200,35400,22400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 9000 +) +) +) +] +shape (Rectangle +uid 511,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "27000,20000,37000,24000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 512,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*20 (Text +uid 513,0 +va (VaSet +) +xt "29400,24000,32000,25200" +st "eb6" +blo "29400,25000" +tm "HdlTextNameMgr" +) +*21 (Text +uid 514,0 +va (VaSet +) +xt "29400,25000,30800,26200" +st "6" +blo "29400,26000" +tm "HdlTextNumberMgr" +) +] +) +) +*22 (SaComponent +uid 519,0 +optionalChildren [ +*23 (CptPort +uid 528,0 +optionalChildren [ +*24 (Circle +uid 533,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "30092,29546,31000,30454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 529,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29342,29625,30092,30375" +) +tg (CPTG +uid 530,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 531,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "31000,29500,33700,30900" +st "in1" +blo "31000,30700" +) +s (Text +uid 532,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "31000,30900,31000,30900" +blo "31000,30900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*25 (CptPort +uid 534,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 535,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "36000,29625,36750,30375" +) +tg (CPTG +uid 536,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 537,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "32050,29500,35750,30900" +st "out1" +ju 2 +blo "35750,30700" +) +s (Text +uid 538,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "35750,30900,35750,30900" +ju 2 +blo "35750,30900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,27000,36000,33000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 521,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*26 (Text +uid 522,0 +va (VaSet +) +xt "32460,32700,36060,33900" +st "Board" +blo "32460,33700" +tm "BdLibraryNameMgr" +) +*27 (Text +uid 523,0 +va (VaSet +) +xt "32460,33700,38860,34900" +st "inverterIn" +blo "32460,34700" +tm "CptNameMgr" +) +*28 (Text +uid 524,0 +va (VaSet +) +xt "32460,34700,36460,35900" +st "I_inv1" +blo "32460,35700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 525,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 526,0 +text (MLText +uid 527,0 +va (VaSet +) +xt "31000,33400,31000,33400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*29 (SaComponent +uid 539,0 +optionalChildren [ +*30 (CptPort +uid 549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,14625,49750,15375" +) +tg (CPTG +uid 551,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 552,0 +va (VaSet +font "Verdana,8,0" +) +xt "43700,14500,48000,15500" +st "clk10MHz" +ju 2 +blo "48000,15300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk10MHz" +t "std_ulogic" +o 8 +) +) +) +*31 (CptPort +uid 553,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 554,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,13625,49750,14375" +) +tg (CPTG +uid 555,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 556,0 +va (VaSet +font "Verdana,8,0" +) +xt "43700,13500,48000,14500" +st "clk50MHz" +ju 2 +blo "48000,14300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk50MHz" +t "std_ulogic" +o 7 +) +) +) +*32 (CptPort +uid 557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,10625,49750,11375" +) +tg (CPTG +uid 559,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 560,0 +va (VaSet +font "Verdana,8,0" +) +xt "43700,10500,48000,11500" +st "clk60MHz" +ju 2 +blo "48000,11300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk60MHz" +t "std_ulogic" +o 5 +) +) +) +*33 (CptPort +uid 561,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 562,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,12625,49750,13375" +) +tg (CPTG +uid 563,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 564,0 +va (VaSet +font "Verdana,8,0" +) +xt "43700,12500,48000,13500" +st "clk75MHz" +ju 2 +blo "48000,13300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk75MHz" +t "std_ulogic" +o 6 +) +) +) +*34 (CptPort +uid 565,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 566,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,14625,37000,15375" +) +tg (CPTG +uid 567,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 568,0 +va (VaSet +font "Verdana,8,0" +) +xt "38000,14500,41200,15500" +st "en10M" +blo "38000,15300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en10M" +t "std_ulogic" +o 4 +) +) +) +*35 (CptPort +uid 569,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 570,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,13625,37000,14375" +) +tg (CPTG +uid 571,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 572,0 +va (VaSet +font "Verdana,8,0" +) +xt "38000,13500,41200,14500" +st "en50M" +blo "38000,14300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en50M" +t "std_ulogic" +o 3 +) +) +) +*36 (CptPort +uid 573,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 574,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,12625,37000,13375" +) +tg (CPTG +uid 575,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 576,0 +va (VaSet +font "Verdana,8,0" +) +xt "38000,12500,41200,13500" +st "en75M" +blo "38000,13300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en75M" +t "std_ulogic" +o 2 +) +) +) +*37 (CptPort +uid 577,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 578,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,16625,49750,17375" +) +tg (CPTG +uid 579,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 580,0 +va (VaSet +font "Verdana,8,0" +) +xt "43800,16500,48000,17500" +st "pllLocked" +ju 2 +blo "48000,17300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 9 +) +) +) +*38 (CptPort +uid 581,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 582,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,10625,37000,11375" +) +tg (CPTG +uid 583,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 584,0 +va (VaSet +font "Verdana,8,0" +) +xt "38000,10500,42600,11500" +st "clkIn100M" +blo "38000,11300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +) +) +) +] +shape (Rectangle +uid 540,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,10000,49000,18000" +) +oxt "20000,20000,32000,28000" +ttg (MlTextGroup +uid 541,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 542,0 +va (VaSet +font "Verdana,8,1" +) +xt "32400,16000,36100,17000" +st "Lattice" +blo "32400,16800" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 543,0 +va (VaSet +font "Verdana,8,1" +) +xt "32400,17000,34200,18000" +st "pll" +blo "32400,17800" +tm "CptNameMgr" +) +*41 (Text +uid 544,0 +va (VaSet +font "Verdana,8,1" +) +xt "32400,18000,35500,19000" +st "U_pll" +blo "32400,18800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 545,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 546,0 +text (MLText +uid 547,0 +va (VaSet +font "Courier New,8,0" +) +xt "13000,-59200,13000,-59200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 548,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "37250,16250,38750,17750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 585,0 +optionalChildren [ +*43 (CptPort +uid 594,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 595,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "41250,21625,42000,22375" +) +tg (CPTG +uid 596,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 597,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,21300,44700,22700" +st "D" +blo "43000,22500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*44 (CptPort +uid 598,0 +optionalChildren [ +*45 (FFT +pts [ +"42750,26000" +"42000,26375" +"42000,25625" +] +uid 602,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42000,25625,42750,26375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 599,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "41250,25625,42000,26375" +) +tg (CPTG +uid 600,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 601,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,25400,46200,26800" +st "CLK" +blo "43000,26600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*46 (CptPort +uid 603,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 604,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44625,28000,45375,28750" +) +tg (CPTG +uid 605,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 606,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,26600,47200,28000" +st "CLR" +blo "44000,27800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*47 (CptPort +uid 607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 608,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "48000,21625,48750,22375" +) +tg (CPTG +uid 609,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 610,0 +va (VaSet +font "Verdana,12,0" +) +xt "45200,21300,47000,22700" +st "Q" +ju 2 +blo "47000,22500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 586,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,20000,48000,28000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 587,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 588,0 +va (VaSet +) +xt "46600,27700,50200,28900" +st "Board" +blo "46600,28700" +tm "BdLibraryNameMgr" +) +*49 (Text +uid 589,0 +va (VaSet +) +xt "46600,28700,49300,29900" +st "DFF" +blo "46600,29700" +tm "CptNameMgr" +) +*50 (Text +uid 590,0 +va (VaSet +) +xt "46600,29700,49600,30900" +st "I_dff" +blo "46600,30700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 591,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 592,0 +text (MLText +uid 593,0 +va (VaSet +) +xt "19000,17000,19000,17000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*51 (SaComponent +uid 611,0 +optionalChildren [ +*52 (CptPort +uid 620,0 +optionalChildren [ +*53 (Circle +uid 625,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "52092,21546,53000,22454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 621,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51342,21625,52092,22375" +) +tg (CPTG +uid 622,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 623,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "53000,21500,55700,22900" +st "in1" +blo "53000,22700" +) +s (Text +uid 624,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "53000,22900,53000,22900" +blo "53000,22900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*54 (CptPort +uid 626,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 627,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "58000,21625,58750,22375" +) +tg (CPTG +uid 628,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 629,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "54050,21500,57750,22900" +st "out1" +ju 2 +blo "57750,22700" +) +s (Text +uid 630,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57750,22900,57750,22900" +ju 2 +blo "57750,22900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 612,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "53000,19000,58000,25000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 613,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*55 (Text +uid 614,0 +va (VaSet +) +xt "54460,24700,58060,25900" +st "Board" +blo "54460,25700" +tm "BdLibraryNameMgr" +) +*56 (Text +uid 615,0 +va (VaSet +) +xt "54460,25700,60860,26900" +st "inverterIn" +blo "54460,26700" +tm "CptNameMgr" +) +*57 (Text +uid 616,0 +va (VaSet +) +xt "54460,26700,58460,27900" +st "I_inv2" +blo "54460,27700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 617,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 618,0 +text (MLText +uid 619,0 +va (VaSet +) +xt "53000,25400,53000,25400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*58 (SaComponent +uid 631,0 +optionalChildren [ +*59 (CptPort +uid 640,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 641,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64250,17625,65000,18375" +) +tg (CPTG +uid 642,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 643,0 +va (VaSet +) +xt "66000,17400,69400,18600" +st "clock" +blo "66000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*60 (CptPort +uid 644,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 645,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81000,17625,81750,18375" +) +tg (CPTG +uid 646,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 647,0 +va (VaSet +) +xt "73400,17400,80000,18600" +st "triggerOut" +ju 2 +blo "80000,18400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +) +) +) +*61 (CptPort +uid 648,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 649,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81000,15625,81750,16375" +) +tg (CPTG +uid 650,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 651,0 +va (VaSet +) +xt "76800,15400,80000,16600" +st "xOut" +ju 2 +blo "80000,16400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +) +) +) +*62 (CptPort +uid 652,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 653,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81000,13625,81750,14375" +) +tg (CPTG +uid 654,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 655,0 +va (VaSet +) +xt "76800,13400,80000,14600" +st "yOut" +ju 2 +blo "80000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +) +) +) +*63 (CptPort +uid 656,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 657,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64250,19625,65000,20375" +) +tg (CPTG +uid 658,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 659,0 +va (VaSet +) +xt "66000,19500,69300,20700" +st "reset" +blo "66000,20500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +] +shape (Rectangle +uid 632,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "65000,10000,81000,22000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 633,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +uid 634,0 +va (VaSet +font "Verdana,9,1" +) +xt "65600,21800,70800,23000" +st "Lissajous" +blo "65600,22800" +tm "BdLibraryNameMgr" +) +*65 (Text +uid 635,0 +va (VaSet +font "Verdana,9,1" +) +xt "65600,22700,76100,23900" +st "lissajousGenerator" +blo "65600,23700" +tm "CptNameMgr" +) +*66 (Text +uid 636,0 +va (VaSet +font "Verdana,9,1" +) +xt "65600,23600,69700,24800" +st "I_main" +blo "65600,24600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 637,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 638,0 +text (MLText +uid 639,0 +va (VaSet +) +xt "65000,25600,88500,30400" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) +stepX = stepX ( positive ) +stepY = stepY ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +) +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*67 (PortIoOut +uid 660,0 +shape (CompositeShape +uid 661,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 662,0 +sl 0 +ro 270 +xt "89500,13625,91000,14375" +) +(Line +uid 663,0 +sl 0 +ro 270 +xt "89000,14000,89500,14000" +pts [ +"89000,14000" +"89500,14000" +] +) +] +) +tg (WTG +uid 664,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 665,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "92000,13300,95800,14700" +st "yOut" +blo "92000,14500" +tm "WireNameMgr" +) +) +) +*68 (PortIoOut +uid 666,0 +shape (CompositeShape +uid 667,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 668,0 +sl 0 +ro 270 +xt "89500,15625,91000,16375" +) +(Line +uid 669,0 +sl 0 +ro 270 +xt "89000,16000,89500,16000" +pts [ +"89000,16000" +"89500,16000" +] +) +] +) +tg (WTG +uid 670,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 671,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "92000,15300,95800,16700" +st "xOut" +blo "92000,16500" +tm "WireNameMgr" +) +) +) +*69 (PortIoOut +uid 672,0 +shape (CompositeShape +uid 673,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 674,0 +sl 0 +ro 270 +xt "89500,17625,91000,18375" +) +(Line +uid 675,0 +sl 0 +ro 270 +xt "89000,18000,89500,18000" +pts [ +"89000,18000" +"89500,18000" +] +) +] +) +tg (WTG +uid 676,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 677,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "92000,17300,100100,18700" +st "triggerOut" +blo "92000,18500" +tm "WireNameMgr" +) +) +) +*70 (Net +uid 744,0 +lang 11 +decl (Decl +n "logic0" +t "std_ulogic" +o 7 +suid 17,0 +) +declText (MLText +uid 745,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16400,19500,17200" +st "SIGNAL logic0 : std_ulogic +" +) +) +*71 (Net +uid 746,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 18,0 +) +declText (MLText +uid 747,0 +va (VaSet +) +xt "2000,12000,15200,13200" +st "xOut : std_ulogic +" +) +) +*72 (Net +uid 748,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 19,0 +) +declText (MLText +uid 749,0 +va (VaSet +) +xt "2000,9600,15800,10800" +st "reset_N : std_ulogic +" +) +) +*73 (Net +uid 750,0 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 20,0 +) +declText (MLText +uid 751,0 +va (VaSet +) +xt "2000,18400,19500,19600" +st "SIGNAL reset : std_ulogic +" +) +) +*74 (Net +uid 752,0 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 21,0 +) +declText (MLText +uid 753,0 +va (VaSet +) +xt "2000,10800,16100,12000" +st "triggerOut : std_ulogic +" +) +) +*75 (Net +uid 756,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 23,0 +) +declText (MLText +uid 757,0 +va (VaSet +) +xt "2000,13200,15200,14400" +st "yOut : std_ulogic +" +) +) +*76 (Net +uid 758,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 8 +suid 24,0 +) +declText (MLText +uid 759,0 +va (VaSet +) +xt "2000,17200,20000,18400" +st "SIGNAL logic1 : std_uLogic +" +) +) +*77 (Net +uid 760,0 +lang 11 +decl (Decl +n "clkSys" +t "std_ulogic" +o 6 +suid 25,0 +) +declText (MLText +uid 761,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15600,19500,16400" +st "SIGNAL clkSys : std_ulogic +" +) +) +*78 (Net +uid 762,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 26,0 +) +declText (MLText +uid 763,0 +va (VaSet +) +xt "2000,8400,15100,9600" +st "clock : std_ulogic +" +) +) +*79 (Net +uid 764,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 11 +suid 27,0 +) +declText (MLText +uid 765,0 +va (VaSet +) +xt "2000,19600,21100,20800" +st "SIGNAL resetSynch : std_ulogic +" +) +) +*80 (Net +uid 817,0 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 10 +suid 28,0 +) +declText (MLText +uid 818,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,20800,19500,21600" +st "SIGNAL resetSynch_N : std_ulogic +" +) +) +*81 (Wire +uid 678,0 +optionalChildren [ +*82 (BdJunction +uid 684,0 +ps "OnConnectorStrategy" +shape (Circle +uid 685,0 +va (VaSet +vasetType 1 +) +xt "31600,12600,32400,13400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 679,0 +va (VaSet +vasetType 3 +) +xt "30000,13000,36250,13000" +pts [ +"30000,13000" +"36250,13000" +] +) +start &14 +end &36 +sat 2 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 682,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 683,0 +va (VaSet +) +xt "33000,11800,36800,13000" +st "logic0" +blo "33000,12800" +tm "WireNameMgr" +) +) +on &70 +) +*83 (Wire +uid 686,0 +optionalChildren [ +*84 (BdJunction +uid 690,0 +ps "OnConnectorStrategy" +shape (Circle +uid 691,0 +va (VaSet +vasetType 1 +) +xt "31600,13600,32400,14400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 687,0 +va (VaSet +vasetType 3 +) +xt "32000,13000,36250,15000" +pts [ +"36250,15000" +"32000,15000" +"32000,13000" +] +) +start &34 +end &82 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 688,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 689,0 +va (VaSet +isHidden 1 +) +xt "30250,13800,34050,15000" +st "logic0" +blo "30250,14800" +tm "WireNameMgr" +) +) +on &70 +) +*85 (Wire +uid 692,0 +shape (OrthoPolyLine +uid 693,0 +va (VaSet +vasetType 3 +) +xt "32000,14000,36250,14000" +pts [ +"36250,14000" +"32000,14000" +] +) +start &35 +end &84 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 694,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 695,0 +va (VaSet +isHidden 1 +) +xt "30250,12800,34050,14000" +st "logic0" +blo "30250,13800" +tm "WireNameMgr" +) +) +on &70 +) +*86 (Wire +uid 696,0 +shape (OrthoPolyLine +uid 697,0 +va (VaSet +vasetType 3 +) +xt "37000,22000,42000,22000" +pts [ +"42000,22000" +"37000,22000" +] +) +start &43 +end &18 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 700,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 701,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,20600,42400,22000" +st "logic1" +blo "38000,21800" +tm "WireNameMgr" +) +) +on &76 +) +*87 (Wire +uid 702,0 +shape (OrthoPolyLine +uid 703,0 +va (VaSet +vasetType 3 +) +xt "48000,22000,52092,22000" +pts [ +"48000,22000" +"52092,22000" +] +) +start &47 +end &52 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 704,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 705,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,20600,57300,22000" +st "resetSynch_N" +blo "47000,21800" +tm "WireNameMgr" +) +) +on &80 +) +*88 (Wire +uid 706,0 +shape (OrthoPolyLine +uid 707,0 +va (VaSet +vasetType 3 +) +xt "81750,16000,89000,16000" +pts [ +"89000,16000" +"81750,16000" +] +) +start &68 +end &61 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 708,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 709,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,14600,87800,16000" +st "xOut" +blo "84000,15800" +tm "WireNameMgr" +) +) +on &71 +) +*89 (Wire +uid 710,0 +shape (OrthoPolyLine +uid 711,0 +va (VaSet +vasetType 3 +) +xt "36000,28000,45000,30000" +pts [ +"36000,30000" +"45000,30000" +"45000,28000" +] +) +start &25 +end &46 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 712,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 713,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,28600,41100,30000" +st "reset" +blo "37000,29800" +tm "WireNameMgr" +) +) +on &73 +) +*90 (Wire +uid 714,0 +shape (OrthoPolyLine +uid 715,0 +va (VaSet +vasetType 3 +) +xt "81750,18000,89000,18000" +pts [ +"89000,18000" +"81750,18000" +] +) +start &69 +end &60 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 716,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 717,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,16600,92100,18000" +st "triggerOut" +blo "84000,17800" +tm "WireNameMgr" +) +) +on &74 +) +*91 (Wire +uid 718,0 +shape (OrthoPolyLine +uid 719,0 +va (VaSet +vasetType 3 +) +xt "25000,30000,30092,30000" +pts [ +"25000,30000" +"30092,30000" +] +) +start &13 +end &23 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 720,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 721,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,28600,29800,30000" +st "reset_N" +blo "24000,29800" +tm "WireNameMgr" +) +) +on &72 +) +*92 (Wire +uid 722,0 +shape (OrthoPolyLine +uid 723,0 +va (VaSet +vasetType 3 +) +xt "58000,20000,64250,22000" +pts [ +"58000,22000" +"61000,22000" +"61000,20000" +"64250,20000" +] +) +start &54 +end &63 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 724,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 725,0 +va (VaSet +font "Verdana,12,0" +) +xt "58000,18600,66600,20000" +st "resetSynch" +blo "58000,19800" +tm "WireNameMgr" +) +) +on &79 +) +*93 (Wire +uid 726,0 +shape (OrthoPolyLine +uid 727,0 +va (VaSet +vasetType 3 +) +xt "81750,14000,89000,14000" +pts [ +"89000,14000" +"81750,14000" +] +) +start &67 +end &62 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 728,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 729,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,12600,87800,14000" +st "yOut" +blo "84000,13800" +tm "WireNameMgr" +) +) +on &75 +) +*94 (Wire +uid 730,0 +shape (OrthoPolyLine +uid 731,0 +va (VaSet +vasetType 3 +) +xt "24000,11000,36250,11000" +pts [ +"24000,11000" +"36250,11000" +] +) +start &12 +end &38 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 732,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 733,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,9600,27800,11000" +st "clock" +blo "24000,10800" +tm "WireNameMgr" +) +) +on &78 +) +*95 (Wire +uid 734,0 +shape (OrthoPolyLine +uid 735,0 +va (VaSet +vasetType 3 +) +xt "40000,26000,42000,26000" +pts [ +"40000,26000" +"42000,26000" +] +) +end &44 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 738,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 739,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,24600,41800,26000" +st "clock" +blo "38000,25800" +tm "WireNameMgr" +) +) +on &78 +) +*96 (Wire +uid 740,0 +shape (OrthoPolyLine +uid 741,0 +va (VaSet +vasetType 3 +) +xt "49750,11000,64250,18000" +pts [ +"49750,11000" +"61000,11000" +"61000,18000" +"64250,18000" +] +) +start &32 +end &59 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 742,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 743,0 +va (VaSet +) +xt "51750,9800,55850,11000" +st "clkSys" +blo "51750,10800" +tm "WireNameMgr" +) +) +on &77 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *97 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,200,7600,1400" +st "Package List" +blo "0,1200" +) +*99 (MLText +uid 43,0 +va (VaSet +) +xt "0,1400,17500,5000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*101 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*102 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*103 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*104 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*105 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*106 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-600,-9300,92515,41740" +cachedDiagramExtent "0,0,100100,35900" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-73000,0" +lastUid 820,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*108 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*109 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*110 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*111 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*112 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*114 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*115 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*116 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*117 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*118 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*119 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*120 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*121 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*123 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*124 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*125 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*126 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*127 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,6000,7400,7200" +st "Declarations" +blo "0,7000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,7200,3700,8400" +st "Ports:" +blo "0,8200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "0,6000,5200,7200" +st "Pre User:" +blo "0,7000" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,6000,0,6000" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,14400,9500,15600" +st "Diagram Signals:" +blo "0,15400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "0,6000,6400,7200" +st "Post User:" +blo "0,7000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,6000,0,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 28,0 +usingSuid 1 +emptyRow *128 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*129 (RefLabelRowHdr +) +*130 (TitleRowHdr +) +*131 (FilterRowHdr +) +*132 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*133 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*134 (GroupColHdr +tm "GroupColHdrMgr" +) +*135 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*136 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*137 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*138 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*139 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*140 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*141 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "logic0" +t "std_ulogic" +o 7 +suid 17,0 +) +) +uid 766,0 +) +*142 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 18,0 +) +) +uid 768,0 +) +*143 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 19,0 +) +) +uid 770,0 +) +*144 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 20,0 +) +) +uid 772,0 +) +*145 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 21,0 +) +) +uid 774,0 +) +*146 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 23,0 +) +) +uid 778,0 +) +*147 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 8 +suid 24,0 +) +) +uid 780,0 +) +*148 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clkSys" +t "std_ulogic" +o 6 +suid 25,0 +) +) +uid 782,0 +) +*149 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 26,0 +) +) +uid 784,0 +) +*150 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 11 +suid 27,0 +) +) +uid 786,0 +) +*151 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 10 +suid 28,0 +) +) +uid 819,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*152 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *153 (MRCItem +litem &128 +pos 11 +dimension 20 +) +uid 69,0 +optionalChildren [ +*154 (MRCItem +litem &129 +pos 0 +dimension 20 +uid 70,0 +) +*155 (MRCItem +litem &130 +pos 1 +dimension 23 +uid 71,0 +) +*156 (MRCItem +litem &131 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*157 (MRCItem +litem &141 +pos 5 +dimension 20 +uid 767,0 +) +*158 (MRCItem +litem &142 +pos 3 +dimension 20 +uid 769,0 +) +*159 (MRCItem +litem &143 +pos 2 +dimension 20 +uid 771,0 +) +*160 (MRCItem +litem &144 +pos 6 +dimension 20 +uid 773,0 +) +*161 (MRCItem +litem &145 +pos 1 +dimension 20 +uid 775,0 +) +*162 (MRCItem +litem &146 +pos 4 +dimension 20 +uid 779,0 +) +*163 (MRCItem +litem &147 +pos 7 +dimension 20 +uid 781,0 +) +*164 (MRCItem +litem &148 +pos 8 +dimension 20 +uid 783,0 +) +*165 (MRCItem +litem &149 +pos 0 +dimension 20 +uid 785,0 +) +*166 (MRCItem +litem &150 +pos 9 +dimension 20 +uid 787,0 +) +*167 (MRCItem +litem &151 +pos 10 +dimension 20 +uid 820,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*168 (MRCItem +litem &132 +pos 0 +dimension 20 +uid 74,0 +) +*169 (MRCItem +litem &134 +pos 1 +dimension 50 +uid 75,0 +) +*170 (MRCItem +litem &135 +pos 2 +dimension 100 +uid 76,0 +) +*171 (MRCItem +litem &136 +pos 3 +dimension 50 +uid 77,0 +) +*172 (MRCItem +litem &137 +pos 4 +dimension 100 +uid 78,0 +) +*173 (MRCItem +litem &138 +pos 5 +dimension 100 +uid 79,0 +) +*174 (MRCItem +litem &139 +pos 6 +dimension 50 +uid 80,0 +) +*175 (MRCItem +litem &140 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *176 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*177 (RefLabelRowHdr +) +*178 (TitleRowHdr +) +*179 (FilterRowHdr +) +*180 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*181 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*182 (GroupColHdr +tm "GroupColHdrMgr" +) +*183 (NameColHdr +tm "GenericNameColHdrMgr" +) +*184 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*185 (InitColHdr +tm "GenericValueColHdrMgr" +) +*186 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*187 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*188 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *189 (MRCItem +litem &176 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*190 (MRCItem +litem &177 +pos 0 +dimension 20 +uid 98,0 +) +*191 (MRCItem +litem &178 +pos 1 +dimension 23 +uid 99,0 +) +*192 (MRCItem +litem &179 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*193 (MRCItem +litem &180 +pos 0 +dimension 20 +uid 102,0 +) +*194 (MRCItem +litem &182 +pos 1 +dimension 50 +uid 103,0 +) +*195 (MRCItem +litem &183 +pos 2 +dimension 100 +uid 104,0 +) +*196 (MRCItem +litem &184 +pos 3 +dimension 100 +uid 105,0 +) +*197 (MRCItem +litem &185 +pos 4 +dimension 50 +uid 106,0 +) +*198 (MRCItem +litem &186 +pos 5 +dimension 50 +uid 107,0 +) +*199 (MRCItem +litem &187 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/symbol.sb b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/symbol.sb new file mode 100644 index 0000000..7f1df32 --- /dev/null +++ b/04-Lissajous/Board/hds/lissajous@generator_circuit_@e@b@s3/symbol.sb @@ -0,0 +1,1569 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 115,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 117,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 114,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 116,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *50 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*51 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 97,0 +) +*52 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 98,0 +) +*53 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*54 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 101,0 +) +*55 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 102,0 +) +*56 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 103,0 +) +*57 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 104,0 +) +*58 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 105,0 +) +*59 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 106,0 +) +*60 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "date" +value "01.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "01.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "17:45:49" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajous@generator_circuit_@e@b@s3\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Board\\hds\\lissajousGenerator_circuit_EBS3\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:45:49" +) +(vvPair +variable "unit" +value "lissajousGenerator_circuit_EBS3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 118,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,6625,15000,7375" +) +tg (CPTG +uid 120,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 121,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,6300,19800,7700" +st "clock" +blo "16000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 122,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,62000,3200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,6625,44750,7375" +) +tg (CPTG +uid 125,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 126,0 +va (VaSet +font "Verdana,12,0" +) +xt "34900,6300,43000,7700" +st "triggerOut" +ju 2 +blo "43000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 127,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,62000,4800" +st "triggerOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 2,0 +) +) +) +*64 (CptPort +uid 128,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 129,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,7625,15000,8375" +) +tg (CPTG +uid 130,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 131,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,7300,21800,8700" +st "reset_N" +blo "16000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 132,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,62000,4000" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*65 (CptPort +uid 133,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 134,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,7625,44750,8375" +) +tg (CPTG +uid 135,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 136,0 +va (VaSet +font "Verdana,12,0" +) +xt "39200,7300,43000,8700" +st "xOut" +ju 2 +blo "43000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 137,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,62000,5600" +st "xOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*66 (CptPort +uid 138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 139,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,8625,44750,9375" +) +tg (CPTG +uid 140,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 141,0 +va (VaSet +font "Verdana,12,0" +) +xt "39200,8300,43000,9700" +st "yOut" +ju 2 +blo "43000,9500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 142,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,61000,6400" +st "yOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,30300,16000" +st "Board" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,44700,17200" +st "lissajousGenerator_circuit_EBS3" +blo "26800,17000" +) +) +gi *67 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*68 (Grouping +uid 16,0 +optionalChildren [ +*69 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,51000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *79 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*81 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *82 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *83 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,6400,45200,7600" +st "User:" +blo "42000,7400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,44000,7600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 211,0 +activeModelName "Symbol:CDM" +) diff --git a/04-Lissajous/Board/ise/lissajous-XC3S1200E.bit b/04-Lissajous/Board/ise/lissajous-XC3S1200E.bit new file mode 100755 index 0000000000000000000000000000000000000000..a7ea091bb4983bf3d5afe0c456ff15707381ec84 GIT binary patch literal 480260 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 Sm=1n(0sX`8d;8+x{QM6exY7#% literal 0 HcmV?d00001 diff --git a/04-Lissajous/Board/ise/lissajous-XC3S500E.mcs b/04-Lissajous/Board/ise/lissajous-XC3S500E.mcs new file mode 100755 index 0000000..0ea471f --- /dev/null +++ b/04-Lissajous/Board/ise/lissajous-XC3S500E.mcs @@ -0,0 +1,17742 @@ +:020000040000FA +:10000000FFFFFFFF5599AA660C000180000000E089 +:100010000C800680000000060C80048000008CA785 +:100020000C800380804304C90C00038000000000A2 +:100030000C000180000000900C0004800000000013 +:100040000C000180000000800C0002000A8028598A +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000020000000000080000000000000000D5 +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:100290000000000000020000000000080000000054 +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:100350000000000000000000000000040000000099 +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000A00A000000000000000000000000000062 +:1004F00000000000000000000000000000002000DC +:100500000818023100510000000000000000000047 +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:100530000000000000002000081802000000000079 +:100540000000000000000000280000022000000061 +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000020000000000000000000000000004A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000002000000000001A +:1006C0000000000000000000000000000001000029 +:1006D0000200000000000000000000000000000018 +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D00000000000000000000000000000005401C4 +:1007E00018000000000000000000000000000000F1 +:1007F00000000000000000000000000000000000F9 +:1008000000001001000000000000000000000000D7 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000100100000000A7 +:100840000000000000000000000010010000000097 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000001000000000000000066 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000136 +:1009C0000000000000000000000000000000000126 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:10112000400000000000000000000000000000007F +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000100000000000000000000003D +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000100007B +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A0000000000000000000C00200000000000079 +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F000A00000000000000000000000000000004B +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000008000000000000000000000071 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000800040000000000000019 +:101BC0000000000000000001000000000000000014 +:101BD0000000000000000000000000008000000085 +:101BE0000000000101000000000000000000800073 +:101BF00000000000000001000000000000000000E4 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000010000A3 +:101C40000000000000100000000000000000000084 +:101C50000000000100020000000000100000000071 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D3000000000000000000000000C000000000097 +:101D40000000000000000000000000000000000093 +:101D50000000001000000000000000000000000073 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000200010000000000033 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000001000000000000003 +:101DD0000000000000000000905000000000001013 +:101DE00000000000000000000000000000000050A3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000A00000000000000000CFC +:101ED0000000000000000080000000000000000082 +:101EE00000000000100000000000000808000000D2 +:101EF00000000000000010000000000080008800CA +:101F000000000000000006000000000000000000CB +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F400000000000000C0000000000000000000085 +:101F5000000000000E5000000000000C000C00000B +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000800000000000000000000D8 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000020000000000005C +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:102500000000FFFF1D1DFFFF1D1DFFFFFFFFFFFF61 +:10251000FFFFFFFF7722FFFFFFFF00000000FFFF2C +:10252000F3030000000000000000000000000000B5 +:10253000000000000000000000000000000000009B +:102540000000666666666666666666666666CC33C4 +:102550003C3C666666663C3CCC3366666666666690 +:102560006666AA556666CC33AA55000000000000D6 +:10257000000000000000FFFFFFFF0000000000005F +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000C00000000000000000000008E +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:1026800000000000000000000C0000000C0080248E +:102690000E0080240E0000000C0080240E000000BC +:1026A000000000000C00000000000000000000001E +:1026B000000000000000000000000000000000001A +:1026C00000000000000048804CA84C804CB84D80B1 +:1026D0004CB84C804CB84D804CB84C804CB84D80B8 +:1026E0004CB84C804CB84D804CB84C804CB100007C +:1026F0000000000000000000000080240E00000028 +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B00000000000000000000C000000000000000D +:1027C0000000000000000000000000000000000009 +:1027D0000000000000000000000000000000800475 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:102810000000000000000000000000000000802414 +:102820000200000000000000000080240200000000 +:102830000000000000000000000000000000000098 +:1028400000000000000000000000488040A94D800A +:1028500040B94D8040B84C8040B84D8040B94C8064 +:1028600040B84D8040B94D8040B84D8040B94C8053 +:1028700040B0802402008024020000000000802478 +:1028800002000000000080240200000000000000A0 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000400000000057 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000FFFFFFFF000000000000000000006B +:102970000000000000000000000000000000000057 +:10298000000000000000FFFFFFFF00000000FFFF4D +:10299000553300000000FFFF3355FFFFF303000035 +:1029A0000000FFFFFFFFFFFFAF05FFFFBB11FFFFB1 +:1029B000FFFF000000000000000000000000000019 +:1029C00000000000000000000000000000000FF008 +:1029D00055AA999955AA55AAC3C333CC33CC999912 +:1029E000999933CC33CCA5A555AAA5A533CCA5A5DB +:1029F00055AAC3C39999FFFFFFFFFFFFFFFF000028 +:102A00000000FFFFFFFF00000000FFFFFFFF0000CE +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000100001001000000000000D4 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B10000000000000000000000000130000C020C2 +:102B20000092200100018000400B00000000000026 +:102B3000000000000402000020000000000000006F +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B7000000000000000000000002200040300002C +:102B80002401200100018000400B2400000100000E +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C600000000000000040008000000000000000A4 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000802193 +:102CA000000000010004E0028000000100000000BC +:102CB0000000000000000300000000000000000011 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF000000000000000000000000000000047008D +:102D0000800000004000E002800000010000400060 +:102D1000800000000800000000000000000000002B +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000130000000013BD +:102DF00013000000000000000000000000000000C0 +:102E000000000000000000000000000000000000C2 +:102E1000000000C000000000C00000000000000032 +:102E20000100020000C00000030000801300000049 +:102E30000300000000000100140000000000030077 +:102E4000C4000000000000000000000000000000BE +:102E5000000000000000000000000000000004006E +:102E6000000000000000040000000000000004005A +:102E70000000000000000400000000020000080044 +:102E8000000013238323C123D3000001D3000100DA +:102E9000D30000130001000000000000000000004B +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F900000000000000000400000000001000000F0 +:102FA00000000800200004000004040009000002E2 +:102FB00000000200180000000000200000000000D7 +:102FC00000004000000000000000000000000000C1 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF000000000000000000000000000000000A031 +:103000000000000000000000C000C00080000001BF +:1030100010804000100000000001000000000000CF +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:1031200000008100009000000110200000000C0051 +:10313000C000000000300000010001000000300E5F +:1031400000380000007000000000000000000000D7 +:10315000000000000000000000000000000000006F +:10316000000068008480144001F00E600000004000 +:1031700001F040A00000004001F06000200010407D +:1031800001F10000001000A00382000000C02C002C +:1031900000000000003C00000000000000280000CB +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A0000000000000000200C008000002800EA024 +:1032B0000010290000000007007420000200002018 +:1032C0000200400000000000000C000000000000B0 +:1032D00000000000000000000000000000000000EE +:1032E000000000000000880002001C21017881C756 +:1032F000000000480078808008001CC004788C0022 +:10330000E2391C20C178A20500801C062070000054 +:103310000000000000000000001028000000000075 +:10332000008000000000000000000000000000001D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000020001100006B +:103430000000200008400001800000100000000093 +:1034400002000000000000004001000000800000B9 +:10345000000000000000000000000000000000006C +:1034600000000000000000000000044004008A0189 +:1034700000000010020000200004000082000A008A +:103480000000000044088A000400001000010280CF +:103490004001000000000400000000000060000087 +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A0000000000000000000000000000000080310 +:1035B000C08100000000008001401D0000000000EC +:1035C00000802800000000008301140000000000BB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F0000000000040012680E001000400300D8042 +:103600000000280C000000800000000C000000C03A +:10361000000082E001640000006C14000000000063 +:10362000000010000000000000401000000000003A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:10373000000020000000000F0000000000380D0A0B +:1037400000000000002800000200002000004A1ACB +:10375000A060000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000008001000008000100A0010080009E +:10378000000022A07100800000480020000080009E +:103790000000006001000814A04000000008400084 +:1037A0000000000000B040000000000000084000E1 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000010000000047 +:1038800000000010400000000000000001000000E7 +:103890000000000000000000000000000000000226 +:1038A00000000001000000020800100000000200FB +:1038B00002000001100002408100980010108400F6 +:1038C0000000000210000050001220011000000251 +:1038D0008200000000100040000000000040800056 +:1038E0002000000000100220100001000000202035 +:1038F00000002000001000800000100000400020A8 +:1039000000000010000010100002021000010080F2 +:1039100011019000000014000101001000081000C7 +:10392000100A200010000002020101000400000142 +:10393000001000000000002902100000000000023A +:103940001000001000000000100000000000000047 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A00000000000000000020000000000000000096 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000400100082 +:103A3000000000000000000030000000000018003E +:103A40001030000000100000100000209020000046 +:103A50001000A000000000000010000000000000A6 +:103A60000000000000000000001000003000000016 +:103A700000000000000000000030000000003006E0 +:103A8000000000000000002600502010005000261A +:103A9000B000000010503006900020100000902070 +:103AA00090080070200C00100000000000000000D2 +:103AB0009000000000300000000000000020000026 +:103AC0000000000030000020000000003000000076 +:103AD00000000000000010000000000000001000C6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000C000000000000000030000000F9 +:103B900000000000080000000000000000000040DD +:103BA000020000000000004C02020E080000000CA1 +:103BB000000200000A000800440002080E500C1029 +:103BC000185012000000100A0E800004000A801233 +:103BD0000208B00C000A008C18000080800E021051 +:103BE00000000000801032003E000000000008309D +:103BF0000000040A00003010000010000000002047 +:103C000040000000001040300000000000000E00E6 +:103C1000400808000E08822048081A0000000080B2 +:103C200008080000000000500F08A0800000000CF1 +:103C30008808880004000008000000000000000858 +:103C4000080080000000000C0000000000000000E0 +:103C500000000000000000000000800000000000E4 +:103C600000008000000000000000000000000000D4 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000100000000B2 +:103D1000000800000000000000000000000000009B +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000030000000000000000000000000000043 +:103D50000000304010000000000000401080000013 +:103D60000000004000400000004000003000300033 +:103D700000400000300030000000000000000000A3 +:103D800000000000200400000004A0002004004007 +:103D900020040000000400002000000000040000D7 +:103DA00000140000000400000004000000002000D7 +:103DB0000000000020000000000020000000004083 +:103DC0000000000030000000000010003000000083 +:103DD00000000000000000000000000030001000A3 +:103DE0000000000030001000000000000000000093 +:103DF00000000000000010000000000000001000A3 +:103E000000000000000000000000000000001000A2 +:103E10000000000000001000000000000000000092 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E8000000000000000000000000000000000082A +:103E90000000000000020000000000000000000020 +:103EA00000000000000000000000000000003000E2 +:103EB0000000000000000000000000000000000002 +:103EC00000000000008000000000000000800000F2 +:103ED0000000000000000030000000000000003082 +:103EE0000020000000000010001000000030000062 +:103EF0000002000000300000000000000000000090 +:103F000000000000000080018021840000016001A9 +:103F100080210410800180010021000080008001C8 +:103F20000001840080810001000184008001000004 +:103F30000000000000000000000000000000000081 +:103F40000000002000000000000000000000400011 +:103F50000000000000000000000000000000000061 +:103F600000004000000000000000400000000000D1 +:103F70000000000000000000000040000000000001 +:103F800000004000000000000000000000000000F1 +:103F900000004000000000000000400000000000A1 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000008200000040010000000000000001DC +:10402000000000000041000000000000000000004F +:104030000000200000000000000000000000000060 +:104040000000001000000000000000000010000050 +:104050000000000000000000000010101000000030 +:104060000000000010000000000000000000000040 +:1040700000000010100010000000000010001000F0 +:1040800000000000000000000000002000200400EC +:104090000000002000200400000000200020040098 +:1040A00004000020000004000000002000000400C4 +:1040B00000000000000010000000000010000000E0 +:1040C0000000100000000040400000001000000050 +:1040D00000000000100000000000000000000000D0 +:1040E00000000000100000000000000010000000B0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000DF2A599C39996 +:10419000A599C399A599A599C399A599C399C399B7 +:1041A000A599C399A599A599A599C399959A939C01 +:1041B000939C939C939CC399A599A599939C939C3C +:1041C000959A939C939C959A93C693C665A965A965 +:1041D00093C695A693C665A993C663C97788778861 +:1041E000778877888787778887877788878787879B +:1041F000878787877788FFFFFFFF00000000FFFFAA +:104200007722272747470000000000000000000039 +:10421000000000000000FFFFFFFF000000000000A2 +:104220000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10423000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10424000FFFFFFFFFFFFFFFFFFFFFFFFFFFF00007C +:1042500000000000000000000000FFFFFFFF000062 +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000005F5FFFFF000072 +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:104300000C00000000000000000000000000D8A425 +:104310005EA9DCA45EB9DCA45EB9DDA45EB8DDA450 +:104320005EB8DCA45EB9DCA45EB9DDA45EB9DCA431 +:104330005EB9DCA45EB8DCA45EB8DCA45EB9DDA422 +:104340005EB8DCA45EB9DCA45EB8DDA45EB8DCA413 +:104350005EB9DDA45EB8DDA45EB8DDA45EB8DCA401 +:104360003EB8DAA43EB8DAA43EB8DAA43EB8DAA47D +:104370003EB8DAA43EB8DAA43EB000008C020000D9 +:10438000000000000C0000000C0000000000000015 +:104390000000000000000000000000008C0200008F +:1043A00000000000000080240E0080240E00802405 +:1043B0000E0080240E0080240E0080240E00802435 +:1043C0000E0080240E0080240E0080240E00802425 +:1043D0000E0000000000000000000000000080242B +:1043E0000E000000000000000000000000000000BF +:1043F00000000000000000000000000000000000BD +:104400000000000000000000000000000000900418 +:104410000C00000000000000000000000000000090 +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000400C0000000000000000000000E0 +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000A01228DCA452B8DCA408 +:1044D00052B8DCA452B1000000000000000000004F +:1044E00000008024020080240200000000008024DC +:1044F00002000000000000000000000000000000BA +:1045000000000000000000000000000000000000AB +:1045100000000000000000000000000000004880D3 +:1045200040A84D8040B94D8040B84D8040B84C8087 +:1045300040B84C8040B84C8040B84C8040B84D806A +:1045400040B84C8040B080240200802402008024C7 +:104550000200802402008024020000000000802469 +:104560000200000000000000000000000000000049 +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:10460000000000000000004000000000000000006A +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:104640000000FFFF3F30FFFFFFFFFFFFC3C333CC7E +:1046500099999999C3C333CC9999FFFFF303FFFF4D +:104660003355FFFF0F33FFFFFFFFFFFFFFFFFFFF8C +:10467000DD11FFFFFFFFFFFF2727FFFFF505FFFF0E +:10468000F303FFFF0F33FFFF0F33000000000000B4 +:10469000000000000000000000000000000000001A +:1046A00000005A5A66665A5A66665A5ACC3366668B +:1046B0006666CC333C3C3C3C3C3C3C3C6666CC3384 +:1046C00066665A5A666666663C3CFFFFFFFFFFFF60 +:1046D000FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000E8 +:1046E0000000FFFFFFFF00000000000000000000CE +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:10479000000000000000000000008000000C00008D +:1047A0000000C020005400000000C0200064000091 +:1047B0000000C02000A200000000C0200092000005 +:1047C0000000C02000CE00000000C02000D6630022 +:1047D0000403C0208CE76B000403C020C84C000019 +:1047E0000000C020005420000001C02080640A00A6 +:1047F0000402C02004A202000402C020249200008F +:104800000000C020008A000000000000000000003E +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000800305 +:1048300000008000002680350000C020004C803140 +:104840000000C020005400130000C02000642A159E +:104850000403C02004A326110403C02024930000F5 +:104860000402000004000800040280000020000090 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:10489000000000000000800100008000000C00000B +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000080000000000116 +:104920000000802000000001000480200000000141 +:104930000010802000000001001080200000000115 +:104940000004802000000001000880200000000119 +:104950000004C720800000012810E1208000000131 +:1049600080088020000000010004C42080000001B5 +:1049700008108120000000012010892000000001A3 +:10498000000480200000000100080000000000007A +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000008000000000010000802200000001D3 +:1049C0000008803400000001000480210000000184 +:1049D0000010E122800000012810C934800000018D +:1049E000400403000000000080008102000000017C +:1049F0002000000000000000000000000000000097 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000080020000000113 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A9000000000000000000000000000000000C056 +:104AA00000000300000000C00300030344000000F6 +:104AB0000043C200E0C000C003030022470000C062 +:104AC00000000307440000C000004600C30000C00F +:104AD0000000C007470000C010E313E2E00100033C +:104AE00044C0E3C9C2C300C000C00003470000E8DF +:104AF00000E000C1470000C30200C70700E2C0C0D9 +:104B000000C0C022E3004400E0C000C30022000057 +:104B1000400202004200000000000000000000000F +:104B2000000000000000000000000000000004027F +:104B30000002020042C00010C0C0000003000807CD +:104B4000C043030302000BA2C207014003C7C0C356 +:104B5000084003074603E201C353C2071323460379 +:104B600081C0D3D303C00003002300C003000003AF +:104B700000E30000C0C000000000000000000000D2 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000030012 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000001000000900020000102000210810 +:104C300002000040002814800004009020080100B9 +:104C4000200000100000090002000004020004809F +:104C50003000000402005000088000040010011021 +:104C6000040101080090200105210404001003083C +:104C700020000000041005112080000A0400080034 +:104C80000104102001048200080000034011400CC0 +:104C90000300000005800200030000000000000087 +:104CA0000000000000000000000000000000000004 +:104CB000000000808080020003400000011002001C +:104CC000084000000328200804802004054020201C +:104CD0000910011802A020000408040188208400A3 +:104CE00001400408C082102041840001000000201F +:104CF000400002010320000010100000000000002E +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D2000000008000000000000000000000000007B +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000048000000070400AC5 +:104DB000047800C00170400880382CC00938400ACF +:104DC000047A340008F04008043810C00570400030 +:104DD000F4001CC009B84000640200C001600080FB +:104DE000F4401C490100404B812C00840100802FBD +:104DF000780300840260000F6052000E0A00001D5C +:104E000080021C0000004000800800800380002415 +:104E1000842A148442E00000000000012000800089 +:104E2000180300C001100000000000000000000096 +:104E30000000000000000000000000200000000052 +:104E40000048000000000E0000F01406E00000C062 +:104E500001000A00000000000080880040000000FF +:104E600000100C00000000000030300000000000C6 +:104E700000802C0000000000000200000000000084 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000F00000000000000012 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000008010078 +:104F3000001C0000000000000008000700382800E6 +:104F400000700000003828C0006800000000020067 +:104F5000004C00002000008001302C072010402071 +:104F600001700007000000C000300000C80041C010 +:104F70000134060482081C2803142C0B100028801E +:104F80000108008B033000100400000060B1000035 +:104F90000038089B007801D804B10E80030000009F +:104FA00000000004E0080C00008000000000000089 +:104FB00000000000000000000000000000001406D7 +:104FC0000000080000008C06000010000038680097 +:104FD00028000000000008070000000000380E064E +:104FE00008000000003011000000000000900000E8 +:104FF0000000000000000000000000000028200069 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B000C002020000000002400008200008002892 +:1050C000801F0000000800024000000001000028CE +:1050D000E01000000000000600000850000400047A +:1050E00040A20000000A009600040820408B0068DF +:1050F000002100300102222000B010101002000038 +:1051000080050002014100000081285000C2000417 +:10511000284408B0800002200800040000011000AC +:10512000040000002000000000000600000800004D +:10513000000000000000000000000000000000006F +:105140000800100408001000000022001000810078 +:1051500000000C0008008100010010081000000091 +:1051600002A0110400000000005010000000000028 +:10517000002C2200000000000000000000000000E1 +:1051800000002000000000000000000000000000FF +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000040000000000000000000000000000EB +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:1052300000000000E000000000040007E08000C063 +:1052400001700007E08001C001040007E08000C099 +:1052500001040007008000C001780007E00C0EC0C8 +:1052600000680004E03000C001782607EA0000D0A2 +:1052700005702F042301149101710E1436381C801F +:1052800001F0081C0028012000600000E63000C08A +:1052900001300007020802C00111001500003C00A7 +:1052A0000000262002000000000000006000000056 +:1052B00002000000000000000000000000000000EC +:1052C000000022800100620310010020000010068F +:1052D000E00002800D6C1C00000002C000001C00F9 +:1052E00000000C2002080C06A002000000BC3C00DC +:1052F00000000000003800000000000000BC0000BA +:105300000000000000000C00000000000000000091 +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000030000000000000000000003D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000006000000000488007BE +:1053C00078012CC00BF80007700000C00B78800734 +:1053D000780100C00B78000770002CC00BC080075C +:1053E000780115800260410C90382CC00BC08027DA +:1053F00078010080437002A70800C080C2B8000096 +:10540000700140C021802004005001C001740000E0 +:1054100004000000D200400000000C00A08000004A +:10542000F0001C07007000000000000000000000F9 +:1054300068011400000000000000000000000000EF +:1054400000000000000000000000000A0000014011 +:105450000334800000020C000038110000000CA092 +:10546000000C7C14A00001C001383C1800000000B2 +:1054700000080E000000000000081E0000000000F0 +:1054800000083C00000000000002000000000000D6 +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B0000000000000000000680000000000000084 +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:1055400000010000101000400000000000001000EA +:1055500000001000100000400000000100000240A8 +:1055600000001000100000000018000010002000D3 +:1055700080000010904000000440100040501000D7 +:1055800000445008180008008040580810103000EF +:10559000201030280820102000002420081030405F +:1055A000000010180000202000080020001000005B +:1055B0002000202000100000220000210000001028 +:1055C0000000000001200010000000200008000082 +:1055D00000000000801110200200400000000000C8 +:1055E0001011100004001010001010002000000026 +:1055F000001C100000402004040002008000200075 +:10560000000000001000000000200010000000005A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C0000000000000000006103000000000000094 +:1056D0000000300000001006100000100000000064 +:1056E00000000000500030063000000000180006E6 +:1056F00010000000000000101000600200401000C8 +:105700007020100000000004340D0430000010046C +:105710002010300900301000000010000000B00020 +:1057200004101000ADA5003000009000000400003F +:105730000030600000007000003000A00000000099 +:105740000000B03000009D000000003000100D008F +:105750006C04000000120C0E4C222A000050A00025 +:105760004C0200A5251020524C1D052E062A2000B3 +:10577000404E004000200006000000000E500000D7 +:10578000000000400000007020000000B000000099 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000020000000000000B9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:10584000000002000000000000080000000000301E +:1058500000000000000001000000000000000080C7 +:1058600000000008000008000000400000000040A8 +:105870000000000000000000100000001000000008 +:1058800000000E0002000000000430800040808014 +:105890001000300000000000200020200000002246 +:1058A0000000202200000000020042000000003042 +:1058B0000002000A0000000010003000000000009C +:1058C0001C00023800000000000A000A0C10000052 +:1058D000008100300100000000800100110800106C +:1058E00008003000030001500058000001D0000003 +:1058F00000000000100000000004000080302004C0 +:105900000000040010002000000000000000000063 +:105910000000000000008000000000000000000007 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:1059400000000000000000000000000000800000D7 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D0000000000000000200000000000230000093 +:1059E00000000000020000000000020000000000B3 +:1059F0000000000002003000000000000200000073 +:105A0000000020040200000000001000020000005E +:105A10000000002000000000000000000030200016 +:105A200000000080000000000000000000000000F6 +:105A3000000000000000400010007030000000086E +:105A400000000000000000000000000080000000D6 +:105A50000000004000008000000000003000000056 +:105A600000000000014002080000000030000000BB +:105A70000000020000000000000000000010000410 +:105A800002040200014400040200000000000000C3 +:105A90000000000000000000300020000000300086 +:105AA00000000000000000000000000000000000F6 +:105AB0003000000000003000000000000000000086 +:105AC00000000000000000000000100000000000C6 +:105AD00010000000000000000000000000000000B6 +:105AE00000001000000000000000000000000000A6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000004000000000041 +:105B600004B0000000000000040000000000040079 +:105B700000000000000000000400B0000000000071 +:105B800034800400000080000400040000000000D5 +:105B90000400000000000000000000000000000001 +:105BA00000B08000000000200000040000000000A1 +:105BB0003000000000000000000004000000008031 +:105BC0000000000100208000000000000000000034 +:105BD0002000001000000010000020100000000055 +:105BE000000000000000000004200032000000005F +:105BF0003000000000000000000000000000000075 +:105C000000900400000000000400040004020000F2 +:105C10000000000000020000000000000000400042 +:105C20000000000000000000000000000000000074 +:105C300000000000000000000000B00000000000B4 +:105C40000000000000000000000000000000400014 +:105C500000000000800000000000000000000000C4 +:105C600000300000000040000000000000000000C4 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE0000000004040200000000000000000820191 +:105CF0000000000000000000000000000000200084 +:105D00000000000020000400000000080000040063 +:105D10000000100000000000000000100000000063 +:105D20008002000000A1000000000000000004004C +:105D3000800200002000000080020000000004003B +:105D4000920210000000002000300000000000005F +:105D500000000000000000200000000000000030F3 +:105D600000000000100010104000000000000020A3 +:105D70001000400130000000000000000000100092 +:105D8000400850011020C409000800200008C40980 +:105D9000000000800200100000000000000000C2AF +:105DA00010000000000010000000000000000000D3 +:105DB00000000000000000001000000000002000B3 +:105DC0000000000000000000000000000000C00112 +:105DD00000000000000000000000000000000000C3 +:105DE0000000000000200000000000000000000093 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED0000000FFFF7722000000000000000000002B +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000004000000CD +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:1060500000000000000000000C0000000000000034 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D0000000008000284D8040B94C8040B94C80C0 +:1061E00040B94D8040B94D8040B94C8040B94C8099 +:1061F00040B94D8040B94C8040B94D8040B100005D +:1062000000000000000000000000802402000000E8 +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:1063200000000000000000000000FFFF47470000E1 +:10633000000000000000000000000000000000005D +:1063400000005533DD110000000000000000FFFFD9 +:10635000774400000000AF0555AA55AA9999C3C318 +:10636000999933CC9999A5A5999955AA9999C3C397 +:10637000999933CC9999A5A5999933CC9999A5A5C3 +:106380009999FFFFFFFF0000000000000000FFFFE1 +:10639000FFFF0000000000000000000000000000FF +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000002000402000008000000000000006B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000003000000000020000000D7 +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000004000000000000000000D5 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E0000000000000000000000000000020100079 +:1067F000000000000020000008000000002003004E +:106800000000000000000300040000000000000081 +:10681000000000000000000000000000C0C00300F5 +:10682000C3000000000000000000000000000000A5 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000001000000000000000016 +:106980000000020000000000000002000000800281 +:106990008002000000000000000000000000000075 +:1069A00080200400C0000000000000000000000083 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000080000CE +:106AC000D0000000000000000000000000000000F6 +:106AD000000000C0030000000000000000000000F3 +:106AE000000020000000000000000C8001000000F9 +:106AF0000000404000001080020000400000000044 +:106B000000000080000001000000004000080100BB +:106B1000000000000008000000000000000000006D +:106B200000000000008030000000000000000000B5 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000040000000000000000000000000000004 +:106C500000000000000000800000000000000000B4 +:106C60000000000000000C000000000000001C00FC +:106C700000002C0100000040000001110000004055 +:106C800000000001000000000000100100000040B2 +:106C900000001001000000000000000100000000E2 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD000000000000000000000000000062000008D +:106DE00000000000000000000000000000000000A3 +:106DF00000001000010000080000200002208000B8 +:106E0000000020000000800000002000032080001F +:106E10000000200002108004000020000018800400 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F4000000000000000002000000200000000001F +:106F500000000000000000000000000000000080B1 +:106F600001300000E00000000000000000000C0004 +:106F7000000000080000008001008000E0001E808A +:106F80000100001000000E8001800007E0001E805C +:106F90000100000000010E800180000600010E00CB +:106FA000008000060000000000000000000000005B +:106FB000003C000000000000000000000000000095 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000800B8 +:1070D0003000000000000000000000000000000080 +:1070E000000000A0013A0000F002000000000000D3 +:1070F0000000200000000006000000200004000F37 +:10710000F0020CA00130008FF10000200038002FA9 +:10711000F00202600008000F000000600000000F95 +:10712000000000000000000F000000000000000050 +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000200000202E +:10722000000000000108000200000000040000004F +:10723000000000000000000000000000000000004E +:107240000000000000000000000008000000000432 +:1072500000000000000100201000000000000000FD +:10726000000000010000100000001000000000807D +:10727000021000001000001010000000104000007C +:10728000021A00000000140002121000080410840A +:10729000028000000080008800800000008000085C +:1072A0000004000000000800004010000000000082 +:1072B0004012400000000000000000100004000028 +:1072C00000000000040400000000000000010000B5 +:1072D00001000000000000000000000000000000AD +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000100000000000000017B +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000008000000000000D5 +:1073B00000000000000000000000000800000000C5 +:1073C00000000000000000000000000000000400B9 +:1073D000000000000000000000000000300000007D +:1073E0000000000E0000000000003000020030002D +:1073F00000000000B010000030000030300000003D +:107400003000000000380000007030000030300014 +:1074100008003000909000500000000890000050DC +:10742000B000000898000C50000004589000005074 +:10743000060C000090000058000000000000003022 +:10744000000000000000000000000000000000003C +:10745000007000000000000000000A0000000000B2 +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000002000040000D8 +:1074900000000020000000000000000000000000CC +:1074A00000000000200000000000000000000000BC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:107520000000000020000020000000000800000C07 +:10753000000000000C00000000000000000000013E +:10754000000000000000000000000000000000003B +:1075500000000000000000040E00000000080020F1 +:107560000000000000000000000000080000000013 +:1075700000000000400000300C0000000A00000085 +:10758000000000000010000000080000000008805B +:107590000C00000000080018041E7A000010001003 +:1075A0000010700000100000010801000000000140 +:1075B00000300A0000010001300C300B0000000018 +:1075C000000000000008000000000000080C0A0095 +:1075D0000000000002040000040A00000200008A0B +:1075E000000A000002000000000000000000060089 +:1075F00000000000000000000000000000000A0081 +:107600000000000600000000000000060000008CE2 +:1076100000010000000000880000000600000000DB +:1076200006000000000000008600000000000000CE +:107630000000000600000000000000000000000044 +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000004020400000000000000000000D0 +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D0000000000000000000000000400004000066 +:1076E000000000008000000000000000000000001A +:1076F000000000000000000000000000800000000A +:107700000000000000300000000000000000200029 +:10771000000000000004000040000004020400001B +:10772000003480040204000460000024000000040F +:107730000000000000000004000000000000000045 +:1077400000000040000000000000010000000000F8 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000400400000030000040040051 +:1077800000000000000000002000000000000400D5 +:107790002000004000000400200000000000000065 +:1077A00000000000000004000000000000000400D1 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000001018 +:1078600000020000000000002000000000000000F6 +:107870000000000000000000000000000000000008 +:107880002000000000000000004000000001002077 +:10789000000180000000000004000400200000003F +:1078A000040000000080200004000001240000000B +:1078B00000010001000000000400000100000000C1 +:1078C00000000000000000200000000000100C304C +:1078D0000000000000000000000000100000000098 +:1078E0000000000000000200000000000000003066 +:1078F00000000000000000000020000000008010D8 +:107900000020000000000000000000000000000057 +:107910000000000000000020000000000000000047 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000800080000C7 +:1079B00000000000000000000000C0000000000007 +:1079C00080800000000000000000000000000000B7 +:1079D00000000000000000008080000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000004000083 +:107A00000000000000000000000000000000000076 +:107A1000000000200000000000000000040804082E +:107A20000000000800080008000800080008000026 +:107A30001400001800000000000000000400000016 +:107A40000000000000000000000000000000000036 +:107A50000020002000000000000000000000006086 +:107A600042000000000000000000000000000000D4 +:107A700000000020000000000000000000000800DE +:107A800000000020020008000000010000000000CB +:107A900010000000000008001000000000000800B6 +:107AA00010000000020000000000000000000800BC +:107AB00000000100000008000000000000000000BD +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000FFFF5F50FFFF4A +:107B90002727FFFF3535FFFF5533FFFF1D1D4744E6 +:107BA00077470000000000000000FFFF1B1B0000E3 +:107BB00000000000000000000000000000000000C5 +:107BC0000000000000000000000000000000C3C32F +:107BD0009999999933CC999933CC33CCC3C355AA8D +:107BE000999955AA33CCC3C333CCA5A59999999932 +:107BF000C3C3FFFFFFFF0000000000000000000003 +:107C00000000000000007158333393C255556938A5 +:107C1000333300000000278CFF000000000000004C +:107C2000000000000000494B0F0F211355550000C4 +:107C3000000000000000695B0F0F3DF35555000088 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000400000000000000E0 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000C0000000C0000000C0000000C00000033 +:107D20000C0048201E2000000000000000000000A1 +:107D30000C00000000000000000000000000000037 +:107D40000000000000000000000000000000000033 +:107D5000000048804CA84D804CB84D804CB84C80F9 +:107D60004CB84D804CB84D804CB84C804CB84D80D0 +:107D70004CB94D804CB000008C02000000000000A7 +:107D80000000000000000000000048201E204820E5 +:107D90001E2048201E200000000048201E20000059 +:107DA0000000000000000000000048201E204820C5 +:107DB0001E20000000000000000048201E20482077 +:107DC0001E20000000000000000000000000000075 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000400000000022 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000008000284D804D +:107EC00040B94D8040B94D8040B84D8040B84D809C +:107ED00040B84D8040B84D8040B94C8040B048809B +:107EE00040A94C8040B84D8040B84C8040B94D808E +:107EF00040B84D8040B84D8040B84D8040B84D806E +:107F000040B84D8040B000000000000000000000BC +:107F100000000000000000000000482012200000C7 +:107F2000000000000000482012200000000048204F +:107F3000122000000000000000000000000000000F +:107F40000000000000004820122000000000000097 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F9000000000000000000000000000000000C021 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000F554D +:107FD0005F500000000000000000000000000000F2 +:107FE00000000000000000000000FFFF335500000B +:107FF0000000CF030F55FFFF0F330000000000000B +:108000000000FFFF1D1D0000000000000000000038 +:10801000000000000000FFFF1B1B00000000FFFF2E +:10802000DD11FFFF5F0AFFFFF505FFFFF303FFFF11 +:108030003F3000000000FFFF3535FFFFF303FFFF77 +:10804000CC336666AA556666AA5566663C3CAA5558 +:1080500066665A5A3C3C666666666666AA553C3C4D +:1080600066665A5A6666666666666666CC333C3CE9 +:10807000AA55666666665A5A666666666666666685 +:108080006666AA55CC335A5A6666000000000000A6 +:1080900000000000000000000000000000008581DA +:1080A000FF000000000000000000B599FF00000084 +:1080B000000061600F0F00000000000000000000E1 +:1080C0000000000000000000000043220F0F00002D +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B000000040200000000000000000000000005F +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:1082100000000000000080240000C02000CE4420A8 +:108220000001402080D100300000402000C00B0041 +:1082300004020000080083310402C020285400001A +:1082400000000000000000150000C02000A2020095 +:1082500004020000240000000000000000000000F4 +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:108330000000002000000000000800000000000015 +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:10839000000000000000000000008022000000013A +:1083A0000008402480000000400000210000000080 +:1083B000001001000000000080008934000000016E +:1083C0000004000000000000000080220000000106 +:1083D0000010090000000000000000000000000084 +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800004000000000000000000000000000000E8 +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000005000000000000C7 +:1084B0000000000000000000000000004400000078 +:1084C00000000000000000000000000000000000AC +:1084D0000400000000000000000000000000000098 +:1084E0000000000000000000000000020000C000CA +:1084F00000000000A00200000000000400020000D4 +:108500000000000400020000000000002002000043 +:10851000000000000000000000000000000000005B +:108520004400000000000000448000000000000043 +:108530004400000000000000C40000000000C4006F +:1085400044000000000000000000000000000000E7 +:108550004400000000000000C40000000000000013 +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000004000000000000000000000804A +:108670002008010000000004088000000000000045 +:1086800008800000000000000880000000000000DA +:108690000880000000000000000000000000000052 +:1086A0000000000000400000000000000002000088 +:1086B00000000000000000000000000000000000BA +:1086C0000000000002400000000000000000000068 +:1086D000000000000040000000000000000000005A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:1087600002000C00C001000000000000000000003A +:1087700000000000000000000000000000000000F9 +:10878000000000000000282000508016400000007B +:1087900000000000000000000000001800000000C1 +:1087A000000000000000000000000000A0004000E9 +:1087B000040010400060410000001081A26000022F +:1087C00000000096C500000004000E00C0602000FC +:1087D000005000010000002000000000000000C068 +:1087E00001100008000000000004500A00004000D2 +:1087F000F00030000AE0000F0008000002E0602FE7 +:1088000020680F0002620000F4082C000210000F24 +:108810000008000002000C00000001000001000040 +:10882000000000000000000220000000020000A381 +:10883000013C0000020000020000000000001000E7 +:108840000080800000000802208000180000000066 +:10885000000000000000000770010000000002009E +:108860000090003800000000000000000000000040 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E000000000A001000200C00100000000000024 +:1088F0000000000000000000000000000000000078 +:1089000000000E0000000000000008800034000697 +:108910000001000000000000000000000000000056 +:10892000000000000000000000000000E000000067 +:10893000000000A703000100000002A023001600B1 +:1089400008000E8205000080010000000000000009 +:1089500000080EA0000000000000088003000000D6 +:108960000000000000400C000000000000004E016C +:1089700000000C0000382850B040000000B800345F +:108980000130080002021410C000000000BC08D032 +:1089900024800000008008D00400030000001000C4 +:1089A000C00000000000000000000000600100C0E6 +:1089B000046000000200000000000010000000C081 +:1089C00004000C000038140600001000603800009D +:1089D000040000000000000000000010200220C081 +:1089E0000460000000B8000100000000000000006A +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A80000000000000001000000000000000C00016 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00010220000800000000000000000200000E4 +:108AC00010000200010203140000000083000000F7 +:108AD00008000000800001000800000000000A40BB +:108AE000000000014000018000004202100001006F +:108AF0000000010800009000020800001002004081 +:108B00000008810400020000000000001002800044 +:108B1000000010001800800000001100100002008A +:108B20000000000000000000000000000000000441 +:108B30004000249000440046010024B00C000000D6 +:108B40000000045000000A0000002A000000002C71 +:108B5000D0004018004400000000000000000008A1 +:108B60008000000000404000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF000A8020000000000000000000000000000CB +:108C000000000000000000000000280000004000FC +:108C10000000002002000000000000000000000032 +:108C2000000008000000000000000000000000003C +:108C3000000000206200000000800002C72D00003C +:108C400008000000E00100080201828C07001040CB +:108C500000000000E2810000000000800100000030 +:108C60000000000000800007A002100007000000C4 +:108C700010000C6000009000380000800030000FF1 +:108C80000000222060281603A8320100082800678F +:108C900000E00020103000071000006200280007EC +:108CA000100000000700000718000000000000008E +:108CB000000080001000144000400000000C10C0B4 +:108CC000A00080000000004000000000000C9000A8 +:108CD00000001007000C14C300600000000000003A +:108CE00000004004000022C000600100008C00076A +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000A0000000000000000000000053 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000001A00000000B9 +:108DA00000000000000020000000001A0000000089 +:108DB000000000000000000000300000F0308000E3 +:108DC00000000000A000000000000000C00000043F +:108DD00000703D000600000000300000F0000000C0 +:108DE00000000000000008C001300028A0000C00B6 +:108DF000000000002000004000000000A0000E6DF8 +:108E000000360020E01800000480085EA104220063 +:108E100000808F00C0042C0B502EBC560000AC40CC +:108E20000080AC1600002000000080000000000060 +:108E30000000000000000005500014000000008247 +:108E400000001000000000050000140000000800F1 +:108E50000000000000000C0360005600000000004D +:108E60000000000000000003600000000404060091 +:108E700000000120000000000000000000000000D1 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000100000000000000031 +:108F3000800000000000000000019002040000001A +:108F40008100000000000000000024001000000468 +:108F500004040001000400000001000000000040C3 +:108F600000000010000000000000000000000000F1 +:108F7000000410000000000000101000105000104D +:108F800010111040008000000000000004000000EC +:108F900000200040000000004000004000000000F1 +:108FA00000000244000080100000000000000000EB +:108FB0000000400000000000001000000000000061 +:108FC0000000000000000000001000000000000091 +:108FD0000010000000000000001000000000100061 +:108FE0000000000000100000000000000000000071 +:108FF000200000020000000001000000000000004E +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:10909000000000000000000000000006000090003A +:1090A000060000000000000000000000300000008A +:1090B0000000000000000000000000000000300080 +:1090C0000000000004000000005000000005000047 +:1090D00030000000000000000000000000000070F0 +:1090E0000000700000000010000000000000000000 +:1090F000007000A000000090000000000010300090 +:109100003010003010303000000000090070309046 +:1091100030903000709030903000000070000000FF +:10912000000000000000000000000030900000007F +:10913000000000009000000000000000002000007F +:10914000000000000000000000000070001000504F +:10915000000090700010000000000000903000003F +:1091600000001000005000007010000000000030EF +:1091700000009000005000000050000000000000BF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:1092100000000000000000000000700000000000DE +:10922000000000000000000000000000000000003E +:109230000000000000000000200000000606000002 +:10924000600420400C000240290000404000024021 +:1092500006003C404000020C0C000A4C404001005B +:1092600000040000010002110000000201000201E0 +:1092700000000002010002010004000101000201DF +:10928000000000020110720100080600001000003A +:109290000000F0008400800070208000800000004A +:1092A000100000000000000000004C3800003000FA +:1092B000000000000000000000003000000000007E +:1092C000800000000000000080000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000500000000000000000002E +:1092F000000000F0000050001000000C0000000012 +:109300000800000000000000000000000000000055 +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:10938000000000000000000000000000800000005D +:10939000000000008000800000000030800000001D +:1093A000000000008000000000000000000000003D +:1093B000000001000030000000000000000000007C +:1093C000000000000000000000000030000000006D +:1093D0000000000000000000000000040000000089 +:1093E0000000000000000000000402000004000073 +:1093F000000000000000000000002000000000004D +:10940000000020000000000000002000000000001C +:1094100000002000000040000000200000000000CC +:1094200000002000000000000000200000000000FC +:1094300000002000000000000000200000000000EC +:1094400000000000000000000000000000003000EC +:10945000000000000000000000000000000000000C +:1094600000000400000000000000000000000000F8 +:1094700000000000003000000000040000000000B8 +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:109500000000000000000000040000000000000057 +:10951000300000000000000030003000000000407B +:1095200030000000000000003000000000000004D7 +:109530000000000000000C0010800000000000048B +:10954000000000000000000000000000000000001B +:109550000000000000000000000000010000000109 +:1095600000000000000000000001000100000000F9 +:10957000000000000000000000010020000080202A +:10958000000000208000802000000020800080007B +:10959000000000208000800000002000800080206B +:1095A000000000208000802000000020800080203B +:1095B000000000208000802000000020800080202B +:1095C000000000000000000000000000000000009B +:1095D0000000B000000000000000000000000000DB +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000B0000000000000BB +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000001012000000004000000B4 +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B0000000000400000000000000002000000086 +:1096C0000000000400000000000000000000000096 +:1096D000040000100000000004000000040000006E +:1096E0000400000004000000040000080000000066 +:1096F000040800000008000004080000000000202A +:1097000000080020000000200000002000000020D1 +:109710000000000000000020002000000000000009 +:109720000000002000000020000000600000002079 +:1097300000000020000000200000002000000020A9 +:1097400000000020000000000000000000000000F9 +:1097500000000000000020000000000000000000E9 +:1097600000000000000010000000080000000000E1 +:1097700000000000000000000000000010200000B9 +:1097800000000800100000000000000000000000C1 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:10980000000000000000CF03CF03FFFFFEFFFEFFBC +:10981000FF7F000000000000000000000000335542 +:10982000774400000000000000000000000000007D +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000F5051E +:10985000AF05000000005F0AAF0500000000535094 +:109860005F53CD017747000000001D0C3F1D000035 +:10987000000000000000CD01DF1300000000000028 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F000000000000000D3D7333300000000000058 +:10990000000000000000000000000000000061FFF7 +:10991000555500000000000000000000000000009D +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:10996000000000000C0000000000000000000000EB +:1099700000000000000000000000000000000000E7 +:109980000000000000000000000000000C000000CB +:109990000C0000000C0000000000000000000000AF +:1099A000000000000C0000000000000000000000AB +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D000000090241E000000000090241E000000E3 +:1099E000000048201E2048201E20000000004820C3 +:1099F0001E20000000000000000048201E20000083 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A70000000000000000000000048201E20000040 +:109A800000000000000000000000000000000000D6 +:109A9000000048201E200000000000000000000020 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000040040000000000000032 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B300000000000000000000000800400000000A1 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000004820122048201220000000000000C1 +:109B7000000090241200000000000000000000001F +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C60000000000000000000000000800000000074 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA000000000000000FFFFFEFF000000000000B9 +:109CB0000000000000000000000000000000FFFFA6 +:109CC000FFFF00000000000000000F550F330000F0 +:109CD0000000000000000000000000000000000084 +:109CE000000000000000CD01DF13CD01DF130000F4 +:109CF0000000000000003535F50500000000000000 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000FF3F3F300000000000000000000076 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E400000000300040200002800000000000000E1 +:109E50000000000000000000000000000000800082 +:109E60000002000000008000000A000004038000DF +:109E700000200000000040200010000004024020EC +:109E80000000000000008000000E00000000000044 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F0000000080010000800000040000000000004C +:109F100000000000000000000000000100008000C0 +:109F2000000200000000000000000000000000002F +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000900000000000000000088 +:109FD0000000000000000000000000000000800001 +:109FE0000000000100048000000000010000C1002A +:109FF0008000000128000020000000000000012077 +:10A000000000000080088000000000010000000047 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A08000000000000000801000000001000400003B +:10A090000000000000000000000000000000801030 +:10A0A00000000001000400000000000000000000AB +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A15000C00000000000000000000000000000003F +:10A1600000000000000300030000000300000000E6 +:10A17000030000C00000000080000022000000007A +:10A18000000000230322C00000C000000000000007 +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A000000000000000000400100000000000009A +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D00000000000800000000000000000000000FE +:10A2E0000000000000000000000801080100000854 +:10A2F0000080000008800020008000008000000036 +:10A3000000000000000000004000800000200080ED +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000010000000000000000000000000C +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900001000000000000000000000000000000BC +:10A3A00000000000000000000100000000000000AC +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A4200000000000000000000060400050020880B2 +:10A4300003000000000000000000200010004004A5 +:10A4400000300000000000000000000000000000DC +:10A450000000000000340000000000800100000047 +:10A460001002000000000000000000002C000000AE +:10A4700000000000F40000000000134020BC002792 +:10A48000C08A000F000000800200600800001C0865 +:10A490000200000010042C00000400000000000076 +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000A000080000F000000000000000F4 +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A5100000000000F00000000060000000000000EB +:10A5200000000000000000000000000068000000C3 +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A000000000000000000000000000006000004B +:10A5B0000002011000140000000000000000000074 +:10A5C00090014C00000400000000000000000000AA +:10A5D00000000000000000000000000000000080FB +:10A5E000010000000000000000000000000000006A +:10A5F000E000000000000000E00000000000024059 +:10A6000026380006C000000B003428C000000200FD +:10A610000000004100000000800200000000000077 +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A6400000000000000000800174000050000000C5 +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A69000000000000000000000000000004000007A +:10A6A00000000000000000000000000000000000AA +:10A6B00080310000001400000000000000000000D5 +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A7200000000000000000000000000080000000A9 +:10A7300000460000000300000202000000000000CC +:10A7400000000000000000000020000000000000E9 +:10A750000000000000000000000000000080000079 +:10A76000000000000D0000000000000000000000DC +:10A7700000000000A00400000004000080000000B1 +:10A7800000002000CA03040030100000002020E078 +:10A7900000000000000088A6000000003020040037 +:10A7A00000A1000000000000000000000000000008 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000800000000009 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A8100000000000000000000000000080000100B7 +:10A82000000E00000000000000000000000000001A +:10A8300000000000004000000000000000000000D8 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B000800114000008000C00001000007000006F +:10A8C000000000000000020000000000000C00007A +:10A8D0000000000000000000000000000000000078 +:10A8E00000000000000000800100000000020000E5 +:10A8F0000000000000000000603000000048000080 +:10A90000E001000000301C80616C1C07D060800FEB +:10A91000003C10200000810C0040300E01000000BF +:10A9200000021C00004000000000000000000000C9 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A950000F000000000000000000000000000000E8 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000381000006000000000000000000000FF +:10A9B000000000000000000000400C0000700000DB +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000020000100000000005848400015 +:10AA400001E8000000000000000020000068000F86 +:10AA500000300000000000000000000000000000C6 +:10AA600000000000000000000000000000000000E6 +:10AA70000000000000000000000000006000000076 +:10AA80000000000070800000006C0C806128951EA2 +:10AA9000A064000400083C000200020400283C46B8 +:10AAA0000900000000080D00004000000000000048 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB200000000000600200000000000000000000C3 +:10AB30000000000000000000000000006838400035 +:10AB40000080000000000000000000000000000085 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA0000000000000000000800000000000000025 +:10ABB0000000000000000000000000000080000015 +:10ABC000000000000800000000000000002000005D +:10ABD00000000000000000000080000000000000F5 +:10ABE000000000000000000000000020080100003C +:10ABF0000000000000000010101000000000100015 +:10AC000041018020304000001090803000109400FE +:10AC100020440000400010001414000020100440E4 +:10AC20001044000100440000140000000000000077 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000001000004000500064 +:10AC5000000009800000000042000A800A0000088D +:10AC6000000008002000000424000800010000008B +:10AC700001000000000000000008000000000000CB +:10AC800000000000000000000000000000000000C4 +:10AC90000010000000000000000000100000000094 +:10ACA0000010000008000000100000100008000064 +:10ACB00000000000000008008000080000080008F4 +:10ACC000000800000000000000000000000000007C +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD4000000000020000000CB8000000000000003D +:10AD50000000000000006000000000000000000093 +:10AD60000000000000000000000008090000000AC8 +:10AD70000009000000000000000000301830000052 +:10AD8000000A1000000D0000300000001010053017 +:10AD9000B030300C3E0D00000D00300A3039080A8A +:10ADA000003008703009000D007008003009700094 +:10ADB00000000D79000970000000087D0C0970008A +:10ADC00008090090300D70000000007000397C0D03 +:10ADD0000D7010000C00309000000000300030902A +:10ADE0000C005D040000000E000A0000000C0000D2 +:10ADF000000000000E000E0000000000000000092E +:10AE0000000000000000000000000000000D08002D +:10AE1000000000000810000000000009000D0810EC +:10AE2000000000000810080D0800000010000030AD +:10AE3000000C00000010001000000C00B0000C001E +:10AE40000018000C000C00000000000000000000D2 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000100000000070010000000001 +:10AED0000000000000300000000000000000000042 +:10AEE0000010000000000000000000000000010051 +:10AEF000000000100004000000000000000000003E +:10AF000001000000000000003404200000300000B8 +:10AF10000A20202000001C01801400003050000096 +:10AF200008080B00100009100018000C0034010084 +:10AF3000080000C100000000000000000000010047 +:10AF40000100400001000000F000000000000000CF +:10AF500000000100100030000100FC1000000000A3 +:10AF6000B0008C100400000000000000100E000C67 +:10AF70003801000008000000080000000100000087 +:10AF800000000000010000000000000000000000C0 +:10AF9000000001008000000001000000000000002F +:10AFA000000001000000000001000100000000009E +:10AFB0000000000000000000008000800000000091 +:10AFC00030000000008000000000000000000000D1 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000010000000000000000000 +:10B040000000000000000000000000000000000000 +:10B050000004003080000000000000008000800438 +:10B060000000000000308000000000000000000030 +:10B0700000000000000000000000000000000000D0 +:10B08000003000304000040000000000000000001C +:10B0900000000000000000000000000000000000B0 +:10B0A000000002000000000000000000000000009E +:10B0B0000000000000000000000000000000000090 +:10B0C00000000000000000000000000000008008F8 +:10B0D0000000000000000000003000000030000010 +:10B0E0000000000080008000000000000000000060 +:10B0F0000000000000003000000000000000000020 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B1300000000000000004002000000000000000EB +:10B1400000300000000000000000000000000000CF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000040000000004F +:10B1C00000000000000000800000000020000000DF +:10B1D000000004000001004030000000000030804A +:10B1E000300030010000000000403000000000008E +:10B1F000000000000000000000020000000000004D +:10B200000100000000B0000030000000000000005D +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B25000000030010000000000000000004000007D +:10B26000004000000010000030003020000000000E +:10B27000000000000000000000004000000000008E +:10B2800000000000000000000000000000000000BE +:10B29000000000000000000000000000000030007E +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C0000000000000B000000000000000000000CE +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500020000200000004000000000000000000C7 +:10B3600000002000000004000000000000000000B9 +:10B3700000000000000000000000000000000000CD +:10B380000000000000040000002000100000080081 +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000200000000000201D +:10B3F000000000000041008000000000000000008C +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B4200000002000000000000000000000000000FC +:10B4300000000000000000001000000000000800F4 +:10B4400010000000000000000020000000000000CC +:10B4500010000000000000000000000000000000DC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D00000000000000000000000553333557744A1 +:10B4E00047470000000000000000000000000000CE +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B510000000000000000000000000000000F10139 +:10B520003F1D000000000000000000000000CD01F1 +:10B53000DF131D0C3F1DFFFFFFFF4744774700004F +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000AB56333300000000000014 +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B630000400000000000000000000000000000006 +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B660000C0000000C0000000000000000000000C2 +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000048201E2000000000000000000000F4 +:10B6B000000048201E2048201E2000008C02482048 +:10B6C0001E2000000000000000000000000000003C +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B740000000000000000000000048201E20000053 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B000000000400C00000000000000000000003D +:10B7C0000000000000000000000000000000000079 +:10B7D00000000000000000000000D8A472A9DFA44F +:10B7E00072B9DFA472B9DFA472B9DFA472B9DFA4A1 +:10B7F00072B0000000000000000000000000000027 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B82000000000A01228DDA452B8DDA452B8DDA4A7 +:10B8300052B8DCA452B9DCA452B8DDA452B9DDA4DC +:10B8400052B9DCA452B1000000000000000000006A +:10B8500000000000000000000000000000000000E8 +:10B860000000000000000000000000000000488010 +:10B8700040A94D8040B94D8040B84D8040B84D80C2 +:10B8800040B94D8040B94D8040B84D8040B94D80A1 +:10B8900040B84D8060B100000000000000000000D2 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B950000000000000000000000000000000FF00E8 +:10B96000555555553333FF000F0F0F0F3333FF007D +:10B970005555FF00AAAAFFFFFFFF000000000000CE +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A000000000000000FFFFFFFFAA5533CCA5A553 +:10B9B000C3C355AAC3C399999999C3C333CC55AA94 +:10B9C000999955AAA5A59999999900000000000098 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000CC33AA556666AA55AA55CC335A5ACC +:10BA0000CC33AA556666AA555A5A5A5ACC3366663A +:10BA100066666666CC33AA5500FF00000000000091 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000001000000010000040300002401000028 +:10BAF00004030000CC010000040200002C00000040 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000100000001000013 +:10BB300004034020448100000403000000000000D2 +:10BB40000403C0202010000004038000400800000F +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD00000000000000000200000402000400000A5 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC6000000040008000000008004100800000004B +:10BC70004000410080000000800001000000000042 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA00000000000000000000000400080000000D4 +:10BCB000400041208000000080084100800000001A +:10BCC0002800C120800000014004C1008000000164 +:10BCD00080000000000000000000000000000000E4 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000002100000000C2 +:10BD600000100000000000000000000000000000C3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE00000000000000000C80000008080C8C0C83B +:10BDF00000C08000C0C8C0C8C4C0C08080C800C027 +:10BE000000C0C000C40000000000000000000000EE +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE3000800000000000008000C04400C80300C86B +:10BE400000C0C0008000000000C0C02280130000BD +:10BE500000C8C400800300000000000000000000D3 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000400000000000000040000000000AA +:10BE900000000400000000000000C00000000000DE +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE000440000000000000000000000000000000E +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000002CF +:10BF7000800080000020800080008000002080027F +:10BF8000800000020020800000000000000000008F +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB00000000000800000000000000200200000DF +:10BFC0000001000000208000800000400020800070 +:10BFD0008000004000000000800100000000000020 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C01000000000000002000000000000000001001D +:10C0200000000000000000000020000000000000F0 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F000000000000000000010030000E0008002CB +:10C1000000000000020000000080020000000000AB +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000004205B8 +:10C1400000800000420016000000000E0000000504 +:10C1500078059C0002400000840C100E0044000092 +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C18000000000000000100000000C0000002C1057 +:10C19000000414000001084002900000C0000000EC +:10C1A00000040C00000000800100000000000000FE +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E0000000000000000002000000000600000047 +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C27000000000000000000000000000E038140092 +:10C2800000940002000000470000100000000000C1 +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C0000000121700380020E900000000001C08E0 +:10C2D00000004015E00008400048100000001D0864 +:10C2E000004000000000000000000000000000000E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000E8001000D0091 +:10C3100000001C8003000D00A000000000B82800F1 +:10C3200000000C0000001606000002400614280061 +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C36000000000000000000000000000000000804D +:10C3700001000000000000000000000000000000BC +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000001000000000020001C +:10C400004100100020002021010080A00000000059 +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C440000000000000003000001000800A00200002 +:10C45000001010000400B0A820200AA0000800006E +:10C46000020010000020000000000000000000009A +:10C4700000000000000000000000000000000000BC +:10C48000000000000000000000000000000090001C +:10C490000600020000000100000402000000040089 +:10C4A00000000000200022000800820000000300BD +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E0000000000000000000000000000000000646 +:10C4F00000000080000000000000000000000000BC +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C58000000000000000000600840004000000A07D +:10C59000010000000000000000000000000000009A +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C00000000000000000000000003A005002C01F +:10C5D000C10000A008008000E000000263021CC04F +:10C5E000008400A080001C0840C40000000000007F +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000810010000073080004A +:10C62000E00008000090000BE0000E000A80000609 +:10C63000E0011200000000071000000000000000F0 +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000002C00000000000000000F8 +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C7000000000000D0000000000000200000000039 +:10C7100000000000D0000000000000070000000042 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000004E5 +:10C75000001288000A02000000000000D000002241 +:10C7600060083DC0DA01000018158100D0420000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000EC00100000000000000CA +:10C7A0000050000000020100000280005002004022 +:10C7B0000000800000020200005000200000000085 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F000000000000000000300000800040000002A +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C870000000000000000000000000800080800038 +:10C8800000000000010008008000000000200000FF +:10C890000000000000000000000000000000004850 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000100000077 +:10C8C000800000008000000081000800014000009E +:10C8D0000100000284040000004008200022001033 +:10C8E00000000002000000440440020C00000004AC +:10C8F00000400000000000000000000000000000F8 +:10C900000000008000018000800400800001010020 +:10C910000101008000828008010100000082018086 +:10C9200000000800000001820000110000800000EB +:10C9300000008080004000000000000000000000B7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000008000000000000000000AF +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA0000000000000000000000000C00000000001A +:10CA1000000008000000000000000000000090007E +:10CA200000000018000000000000000000000000EE +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000C00DA +:10CA500000000000000000000000000000000800CE +:10CA6000000A001A00090000000000000000000099 +:10CA7000000A0070000050000000000000000000EC +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000080009000085 +:10CAA0000602000600003CA0A60A0006060030A010 +:10CAB000065500060000000002020006000000000B +:10CAC0005600000606000000000000000000000004 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF000000000000000000000000C00000000002A +:10CB000000000000000000000000003000000050A5 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000010701030000000000008000000DD +:10CB90001000000000300100000000000000000054 +:10CBA00000000000000000A00000000000000000E5 +:10CBB0000000000000000000000000000000000075 +:10CBC00000000000040000002000007020000000B1 +:10CBD00028000070083000000800000C180C00004D +:10CBE00000200030001800000000000C00000008C9 +:10CBF0000820000C0000000C0020000000000000D5 +:10CC00000000000000000000000000000000000024 +:10CC100000080000000000000800000000080000FC +:10CC20000C000000002808200000800000000428FC +:10CC30000000040000200000000030200010000070 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC80000000000000000000000000000000008024 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD000000000000000000000000000000300000F3 +:10CD1000000000000000000000000000000C000007 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000300000B3 +:10CD500000000000000000000204020000040000C7 +:10CD600000000000000000000000000000000000C3 +:10CD70000000000000000000003000300000003023 +:10CD80008030003000300030803000000000003083 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE100000000000000030000000000000000000E2 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE900000800000000000000000008C0000000086 +:10CEA0002001000020000000000000000000000041 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED00000B00000000000000000000000000000A2 +:10CEE0000000000000000000000000000000000042 +:10CEF00000000000000000000000000000400040B2 +:10CF00000000004030400040004000403040000041 +:10CF100000000040000000000000000000000000D1 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF900000300000000000000000800000000000E1 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D01000000000400000000000000000000082044A +:10D0200000000000200000002000000020000000A0 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000002000000000000000000000B0 +:10D0600000080000000800000000000000000000B0 +:10D0700000000000000000000000000800000000A8 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B00000000000000000000000000000008201ED +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D1100000000000002000000000000000000000EF +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E0000000000000000000000053505F53335562 +:10D1F000330F0000000003553F55BB110F33774438 +:10D200000F330000000000000000000000000000DC +:10D21000000000000000000000000000000000000E +:10D220000000FFFF3F0C0000000000000000FFFFB7 +:10D23000F30300000000FFFF3F300000000000008B +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000040000002A +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D360000000000000000000000000000000482055 +:10D370001E2090241E000000000048201E20902443 +:10D380001E0090241E0000000000000000000000AD +:10D39000000000000000000000000000000000008D +:10D3A00000000000000000000C0000000000000071 +:10D3B000000000000C000000000000000C00000055 +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D480000400000000000000000000000000000098 +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F0000000000000000000000000000000902478 +:10D50000120000000000482012200000000000006F +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D62000000000000000000000005F5053530000A5 +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D6800000005F0A772200000000272277270000B1 +:10D69000000000000000000000000000000000008A +:10D6A0000000000000000000000000000000FFFF7C +:10D6B0005F0AFFFF535300000000FFFF2727000011 +:10D6C0000000FFFF5F0A00000000000000000000F3 +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000C02049 +:10D8000000E6000000018000C00C00000001C02004 +:10D810008054000000000000000000000000000034 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D970000000000000000000000000000000802007 +:10D98000000000010010C000800000010000C02065 +:10D9900080000001400400000000000000000000C2 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000300004400C00000130001801367 +:10DB1000000000034480C0C003400000000000007B +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000800000000DD +:10DB40000000008000200000000000000020010014 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC800000000000000001080080000010400000BB +:10DC900000018040000001080082100420200000E4 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000008040000000004000000000000000044 +:10DCD0000000200000000000000000000000000024 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB00000000000000000000000008001000000E2 +:10DDC000A0000000000000000000000000000000B3 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE000000000000000000000000000220300000C0 +:10DE10000130006028510000007200E8F1B03400C9 +:10DE20004A38000000000000000000000000000070 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000082200000000000000A8 +:10DE500040380000000000002030000000000000FA +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000040A1 +:10DF400000000000A8020000000000000000000027 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF8000000000000000000000000000000000028F +:10DF900000BC0020036000C021000000C0780080A9 +:10DFA000038000004014000000000000000000009A +:10DFB0000000000000000000000000000000000061 +:10DFC00000000000000006000000500000000000FB +:10DFD0000000000008000020030000000000000016 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E110000000001460002000006400000000000007 +:10E1200000890080000000C03C800000000000006A +:10E1300000000000000000000000000000000000DF +:10E14000000000000000000000000220000010801D +:10E1500062000000080020001010000000002000F5 +:10E16000301200000000000000000000000000006D +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E24000000000000000002002000000200000008C +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000800C808000800108002049 +:10E2A000F0811D000802004FC63114000438000040 +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000044A +:10E2D000030000080000000082011400000000009C +:10E2E000800110000000000000000000000000009D +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000300200000000000000000000000000000B +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000400003CC0FC +:10E4200009000000703015000000004000804E0020 +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E450000000002000000000C200000000001200C8 +:10E46000A03000000000000020400000000000007C +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E54000000000000000800000000000000000004B +:10E5500000000000000100000000000000000000BA +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E580008000000001000004000000000001000005 +:10E590000000200000000000040000000000000057 +:10E5A000200000000100000000040000140000082A +:10E5B0000000040000000000000000040000000053 +:10E5C00004000000100000800200000000000000B5 +:10E5D00002400000800000800042000101000000B5 +:10E5E0000200001000000000000200000001080806 +:10E5F0000000040004800000000000000000000093 +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000800D2 +:10E6400000000000000800000000000800080800AA +:10E65000000008000000080800080000000000009A +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D0000000000000000000010000000000000039 +:10E6E00000000C000000000000000000000000001E +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E72000000000000D0000000000080000000000D4 +:10E730001000008C00000000000000B0000000503D +:10E740005000A000000000003009000000000000A0 +:10E7500000900000000000000000800000000000A9 +:10E760000000000000000030000000000000000079 +:10E7700000000C040101017001B00C010101000056 +:10E78000000E900000010E00000000000E000000CE +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000080000000000000400000000000439 +:10E7D0000004080000000000000008000000000025 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000001000B8 +:10E8500000000000000000000000000000080000B0 +:10E860000000000000000100000000000000810026 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000200000000400000C58 +:10E890000000000000045000000010000000000014 +:10E8A0000800000000000000100000000C700100D3 +:10E8B000500800700000000000000C000000000084 +:10E8C0000000000C0A00000008000000000000200A +:10E8D0000C000000000000000C30000006000020CA +:10E8E0000038000C080000000C0000000A000000C6 +:10E8F00006080000000C000000000C0008000100E9 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000002017 +:10E9E00000000000000002008000000000000000A5 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA1000000000000008000000008000000000006E +:10EA20000000301000080000000000000008000096 +:10EA3000000000100008000000000000800000003E +:10EA40000000000080000000000000000000000046 +:10EA500000000000B0000000000000000000000006 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000008000000000008000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000040042 +:10EAD0000000000000000000000000020000000034 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000080000000000000080030000000ED +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000200000000100063 +:10EBA0000000000000000040000200000000000023 +:10EBB0000002000000000040000200000000000011 +:10EBC00020000000000000002000000000100000F5 +:10EBD00000000000000000006000000000000000D5 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000C00000000000000000009 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000004B0 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE00000000000200000000000000000000040C4 +:10ECF00040000000000000000000000000000000D4 +:10ED00000000000000000000000000000000000003 +:10ED10000000000000000000008000000000000073 +:10ED20000080000000000000000010000000000053 +:10ED30000080000000000000000000000000000053 +:10ED400000000000000000000000000000000000C3 +:10ED50000020000000000000000000000000000093 +:10ED600000000000000000000000000000000000A3 +:10ED7000000000000000000000000400000000008F +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD000000000000000080000000000000000002B +:10EDE000000000000000080000000000000000001B +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000FFFF34 +:10EEE0007722FFFFBB11FFFF3F0CFFFF330FFFFF38 +:10EEF0001B1BFFFF3F0CFFFF3F30FFFF550FFFFFC6 +:10EF00007744FFFF330F00000000FFFF774400004D +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC00000000000000000000C0000000000000035 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F06000000000000C0000000C0000000C0000007C +:10F070000C0000000C0000000C0000000C00000060 +:10F080000C0000000C0000000C000000000000005C +:10F090000C00000000000000000000000000000064 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F14000000000000000000000000040040000007B +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000D8A452A9DCA452B9DCA4DD +:10F1B00052B9DCA452B8DDA452B9DDA452B8DCA423 +:10F1C00052B9DCA452B8DDA452B9DCA452B8DDA413 +:10F1D00052B8DCA452B9DDA452B8DDA452B9DCA403 +:10F1E00052B8DAA432B8DAA432B8DAA432B8DAA45F +:10F1F00032B8DAA432B8DAA432B8DAA432B8DAA46F +:10F2000032B8DAA432B8DAA432B8DAA432B8DAA45E +:10F2100032B000000000000000000000000000000C +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F260000000000000000000000000A01228DFA441 +:10F2700072B9DFA472B9DFA472B9DFA472B9DFA4D6 +:10F2800072B9DFA472B9DFA472B000000000000000 +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000C07E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F32000000000000000000000000DF259AA39CCD6 +:10F3300059AA39CC59AA39CC39CC59AA59AA59AAAF +:10F3400039CC39CC59AA39CC39CC59AA59AA39CC9B +:10F3500039CC59AA39CC63C965A965A993C665A9F1 +:10F3600065A963C993C687877788778887877788F1 +:10F370008787778877887788878777887788778877 +:10F380008787778877887788878787877788778858 +:10F39000878777888787FFFFFFFF00000000000056 +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E0000000000000000000000000000000FFFF1F +:10F3F00055553333FF0055550F0FFF005555333327 +:10F400000F0F0F0FFF00555533335555CCCCFFFF71 +:10F41000FFFF0000000000000000000000000000EE +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000040300004000000004030000CC01000031 +:10F4C00004030000AC010000040300008C010000F4 +:10F4D00004030000C800000004030000A8000000AE +:10F4E0000403000088000000040300000401000081 +:10F4F0000403000024010000040300004401000094 +:10F5000004030000000000000403000020000000CD +:10F510000403000040000000040200000C00000092 +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000100004000000004030000CC01000076 +:10F5800004030000AC010000040300008C01000033 +:10F59000040200000800000000000000000000005D +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000004100800000008000410080000000C8 +:10F640008000410080000000400041008000000078 +:10F650002800410080000000800041008000000080 +:10F6600040004100800000002800410080000000B0 +:10F6700028004100800000004000410080000000A0 +:10F680008000410080000000280041008000000050 +:10F6900040004100800000008000010000000000E8 +:10F6A00080000000000000000000000000000000DA +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F0000000400080000000000041008000000089 +:10F7000080004100800000004000410080000000B7 +:10F710002800010000000000800000000000000040 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B000000000000000008000C0CB01D30000C0AA +:10F7C00000C0CB03930000C000C00303C9010000C8 +:10F7D00000C0CB009303008000C0CB00C11300C861 +:10F7E00000C08300D70300C003008303C90000C02A +:10F7F0000000D703830000C00001DB00C503000048 +:10F800000023C0138103C40000801323C1C800C0BB +:10F810000000DB2381C3C8000000C401D3800000C6 +:10F8200000C00300C3000000000000000000000052 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000800000008000C8C1FF +:10F88000D3C381C0CBEB00C000C88000C40000C05F +:10F890000080C000C800000000C00000C0000000E0 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000200200401A0 +:10F940008000000200200401800000200002040169 +:10F95000400100000020040080010002002004009B +:10F96000C00000000002840000010020400084016B +:10F9700040000002000000018400000200010000BD +:10F980004001000000008000C001080000020000EB +:10F99000C000002000000000C003000000000001C3 +:10F9A0008002000200200400C000000000000000EF +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000008000000087 +:10FA0000800000218003C020400000020000800030 +:10FA10000000002000028000000000020020000022 +:10FA20008000000000000000000000000000000056 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB00000000000000000000000000000000C80BA +:10FAC00000000007D0020C80018000044000088084 +:10FAD0000080010440000C80019000044002088076 +:10FAE0000080000440000CD003700C27E0001E10C2 +:10FAF00002801208E0021F0000701C070000460090 +:10FB00000400149E4170004001040C00E27041C0EA +:10FB100003781200A14016C003080040E00000C0B6 +:10FB20000304A9C0A170000000080006003800000E +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB8000000000000000000000000000E000000095 +:10FB900000000000E0000000000000000000000085 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC40000000088000109C04C0001C8001389C0C3F +:10FC5000500118800038880C50011C8001B89C0CA1 +:10FC6000C001188000389C0C50011C0000001106D7 +:10FC7000500000800110940CC000002003008C0490 +:10FC80004002000008000C000808060000001000F8 +:10FC900000080600000010000001000000401000F5 +:10FCA0000000000B00000007000900006041500048 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000001000000000000000000000000007CC +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000007000051810000000300066 +:10FDD0000514100000001100051000004000B000E4 +:10FDE0000524100000003000051010000000110074 +:10FDF000082802002000100000000200200001007E +:10FE000000A8380004004000000059000101420031 +:10FE1000010058819400C12000800280002003006E +:10FE20000081020080100300008000000000C1007B +:10FE300000080200000000000000000000000000B8 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000100062 +:10FE90000000000020000000020000002000100010 +:10FEA00008008000000020000008000000000000A2 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000016000001C062E +:10FF5000100010800FB000071000106002400C036A +:10FF60001000000003300000100001A001808C048C +:10FF700010001080012C8000E001070000101C061A +:10FF8000200300000E0801070001236002000008A2 +:10FF90001800092C6A003000008000A4299000009D +:10FFA0001000102C68900C07E00100A06910800080 +:10FFB000E0000000000080000000000000000000E1 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040001F9 +:1000000000000000000000000000000000000000F0 +:100010000000100000000000C00000000000000010 +:100020000000000000000000C0000000000000060A +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C000000000000000000000000000000002C06E +:1000D00001043D25100002400100002BD00000402B +:1000E0000090012F000000900330BC16D0000240A9 +:1000F0000380011AF000004003303C074002031067 +:100100000206AD0F000016400130102F0000024023 +:10011000000000C601600F00000100C001000000E7 +:1001200000010036F0380240040040E10132164080 +:10013000042C28CFF11A000000000E09003800003E +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:1001900000000000D000000000000000000200008D +:1001A0000000000700000000000000000002000046 +:1001B000000000200000000000000000000000001F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000080800000DE +:1002200000000000010200010000000000000010BA +:1002300000000000000000000000000000000000BE +:10024000001000000000000000000000808000009E +:1002500040000010808000000000040000018000C9 +:1002600004000C10041004000440040004000C08F6 +:10027000044004100410840000020200008900847D +:1002800000040204801000802000040000000080B0 +:1002900004000400209000001400020000400081CF +:1002A0004000020000200080840044000000002084 +:1002B000040042000000000404000C0000000000E4 +:1002C000040000000000000000000000000000002A +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000800E5 +:1003100000000400000800000800000000000000C9 +:1003200000000200000000000000000000000000CB +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000010000000000010000005B +:1003A0000000080000000000000000000000000045 +:1003B000000000300000000000000000000D000000 +:1003C00000000000003000000000000000000000FD +:1003D00000000000000000300000000000000000ED +:1003E00000000000000008100010000500000000E0 +:1003F00000000C0C0D0000100110000008000000AF +:10040000000C0000000D001600100001008000002C +:10041000000000000000000000300000100000009C +:10042000000C0000A000000000000090B0000000E0 +:10043000000000000001B0000000000C0000080DEA +:1004400000000000000000A0000000000000050007 +:100450000500010000000500000000000000000091 +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:100490000000040000000000000400000000000054 +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:10052000000000000000010000000000080C000CAA +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:1005500000000000101000003000000030300000EB +:1005600000000400000C3000040004000000000043 +:10057000042004000000000004200500000020000A +:10058000010C0400002C0024000C04843000002026 +:1005900010000400000000200400040030200A00C5 +:1005A000040004000011002C300004000030003072 +:1005B00004001400000000300400140000000005D6 +:1005C0000400040000000000040E00000000000011 +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000040000000000C6 +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000030000000000000000000000A +:1006C000000080000000000000000000800000002A +:1006D000000080000000000000100010000000007A +:1006E00000100010080000000000001000000000D2 +:1006F000001000000000000000100010400000008A +:1007000000000010000000000000000000000000D9 +:100710000030000000100000000000000000001089 +:100720000000000000100010000000100010000089 +:1007300000000000001000000000000000000000A9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000300000000000000000000049 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:100830000000000000000000008000000000000038 +:100840000000000000003000000000000000000078 +:100850000000000000000000000000000040004018 +:1008600000000000004000400000000000000040C8 +:1008700000000000004000000000000000400040B8 +:1008800030000000000000400000000000000000F8 +:1008900000000000000000000090000000000000C8 +:1008A0000000004000000000004000400000000088 +:1008B00000404000000000000000000000000000B8 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F000000000000000000000B000000000000048 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000001000000000000087 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B00000000000000000000000008002000000B5 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E00000000000000000000000000008000000FF +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000010000000200000A6 +:100A200000000000000000000000000000000000C6 +:100A30000000001000000000000000000010000096 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000020000056 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD00000000000000000000000000000200000F6 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000FFFF47 +:100BB0001D1D00000000FFFF2727000000000000AF +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D3000000000000C000000000000000C0000009B +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F2000000000000000488060A94F8060B94F8039 +:100F300060B94F8060B94F8060B94F8060B94F8011 +:100F400060B94F8060B000000000000000000000A9 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB000000000000000000000000000000053538B +:100FC0003355000000000000000000000000000099 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:101020000000000000000000000000000000FFFFC2 +:10103000AF05FFFF353500000000FFFFF50500009C +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000007A7EAE5C3E +:1010B0003ECFB2D34A66E41F2C281EE5F4C39698AF +:1010C00036C8BAEB023C9E000D18FFFFFFFF000080 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B0000000000000000000000004000000080020 +:1014C0000000A000000004000000A00000000000D8 +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:101540000000000008000000000000000000000093 +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D0000000000000000002000000000000000008 +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000010000001000000000000000000078 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C000000001000000200A0000001004003000AA +:1017D000C030000004001200000000000000000003 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:10183000000000000000000000000010007814000C +:10184000D0001FD003381008D0002ED0017A1C041D +:10185000400017D0032C140AD002060000480027CD +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000010000000007 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:10194000000000000000000000000008000000008F +:10195000C0000000080000000000000000000000BF +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000E000000000120000E00DA +:1019D0000008BE0C500106000000B60BC000270036 +:1019E00000000006000000000000000000000000F1 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A500000000000000000000000200000008800DE +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000100006 +:101AD00030000000000000000002000020000000B4 +:101AE00000200000000000000000000000000000D6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000C00100081000010C8031D +:101B50001C0004800000010000008100008044019E +:101B600000008100002800000000000000000000CC +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD00000000000000000000000000000001C00E9 +:101BE000000080090000000000000000000000006C +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000700000800000000C08100000000000034 +:101C60002000000000000000000000000000000054 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC00000000000000000200000000000000020D4 +:101CD000080C10012000234006808808100008200E +:101CE000089000071000000000000007000000003E +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D600000000E000000000800000000000000005D +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000E00000000010000013 +:101DE000F000000000000000000000000000000003 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E5000A000000000003108200002400000000047 +:101E6000F000080000101C0EF00000000028202FD9 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000400040000000000A9 +:101F30000400040000000000040004000000080881 +:101F40000400040124000008040004000100000053 +:101F500004000440000000000404840000000000AD +:101F600000000400200400040400008001000004BC +:101F70000000000000020004040000000000000453 +:101F8000040000000000080000000400000000043D +:101F9000040000000000000000000000000000003D +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD00000000000000000000000000010010000F0 +:101FE00000000010001000000000000020000000B1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000070700070000000000000000010 +:102080000000000000000000000000000000000050 +:10209000000000000000000000000000050000003B +:1020A0000000000000000000000000000000000030 +:1020B00000000000000000000000000C0000000014 +:1020C000000000000000000000010000000100907E +:1020D00000000000010001000000000000000000FE +:1020E000000000000000700101000000000100007D +:1020F00000000000010000010000000000000000DE +:1021000000000000000000000000080000000000C7 +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:102150000000000000000000000000000600000079 +:1021600030007000000000000000000002000000CD +:1021700000007000060000000000000000000000E9 +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000040004000000000004000400000000018D +:1022400004000400000000000400040C280000004A +:102250000400040008000000040004100000000056 +:10226000040014000000000000000400200000042E +:10227000040000000850000400000000000C0004EE +:102280000400000000000004040000000000000042 +:102290000000040000000004040000000000000032 +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000800000000000000000000E6 +:1022F00000000000200000000000000000000000BE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000200000000000000000000000003D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A0000000000000080000000000100000000015 +:1023B0000000000200000000000000020000000019 +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:102470000000000004000000000000000000000058 +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000800000000000800000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B0000000000000000000000000000000020019 +:1025C000000000000000000000000000000000000B +:1025D00000000008000000000000000800000000EB +:1025E00001000000000000000100002400000020A5 +:1025F00001000020000000000100000400000000B5 +:1026000000000004000000000000000000000000C6 +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A0000000000000000000000000000008000022 +:1026B000000000100000000000000000000000000A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000004000000000000000471 +:102760000000000000040000000000000000002441 +:102770000000002000000020000000000004000411 +:102780000000000000000004000000000000000045 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:1028400000005F503535000000000000000000006F +:102850000000000000000000000000000000FF80F9 +:10286000F5050F8F33B3FF8055D50F8F33B333B3D7 +:1028700055D50F8F33B3FF8055D50F8F33B300007D +:1028800000000F8F33B30F8F33B3FF8055D50F8FF9 +:1028900033B3000000000F8F33B3FF8055D50F8F87 +:1028A00033B3FF8055D500000000FF8033B3000034 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000C0000000000000000000000000000005B +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C00000000000000090241E0000000000000035 +:1029D00000000000000000000000000000000000F7 +:1029E000000090241E0090241E0090241E009024BD +:1029F0001E0090241E0090241E0090241E0090248F +:102A00001E000000000090241E0090241E00902450 +:102A10001E0090241E000000000090241E00902440 +:102A20001E0090241E0090241E0000000000902430 +:102A30001E00000000000000000000000000000078 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000040000000000000000000000E2 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000900401 +:102B4000000000000000488040A94D8040B84D8042 +:102B500040B94D8040B84D8040B94C8040B84C8061 +:102B600040B94D8040B84D8040B84D8040B94D804F +:102B700040B84D8040B94C8040B94D8040B94D803F +:102B800040B84C8040B94D8040B84D8040B84D8031 +:102B900040B84C8040B94C8040B84D8040B84D8022 +:102BA00040B84D8040B84D8040B84C8040B94D8011 +:102BB00040B0000000000000000000000000000025 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000040000000000000000024 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000F303FFFF0000000055AA9999A5A595 +:102CD000999999999999A5A533CC9999999933CCB2 +:102CE000C3C399999999A5A533CCA5A533CC55AA69 +:102CF000A5A555AA9999A5A599999999999955AA7A +:102D0000A5A59999C3C3999955AA55AA999999992D +:102D100033CC55AA9999999955AA33CC99999999EF +:102D200033CC55AA9999999933CC55AA9999C3C38B +:102D3000999955AA33CCFFFFFFFF00000000000067 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E4000000000000000000004020000000000007C +:102E500000008000000E00000000000000000000E4 +:102E60000000000000000000000000000000000062 +:102E70000000C020005400000000C02000640000DA +:102E80000000C02000A200000000C020009200004E +:102E900000008000000A00000000C02000200000A8 +:102EA00000004020001000000000C02000080000CA +:102EB0000000C02000CE00000000800000060000DE +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000001000000000000 +:102FD00080008000000000010000000000000000F0 +:102FE00000000000000000000000000000000000E1 +:102FF000000080200000000100048020000000018B +:10300000001080200000000100108020000000015E +:10301000000480000000000100008020000000018A +:1030200000100020000000000000802000000001CF +:10303000000880200000000100088000000000015E +:10304000000400000000000000000000000000007C +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000C00000000000C0000000000000EF +:10316000000000000000000000000000000000005F +:10317000000000000000000000C0C000440000008B +:1031800000C0C000440000000040E0000003000058 +:1031900000C0C0004400000000C0000000000000AB +:1031A00000C0E0000022000000C00000440000C099 +:1031B00000C000220000004000C0E000000000004D +:1031C00000C0C0000000000000000000000000007F +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D000000000000000000200000000021000409A +:1032E00001000000000000000000000000000002DB +:1032F000002000000000002000000000000410007A +:103300000080000000041000008000000020000089 +:103310000108004000041000000000000010000040 +:103320000100000000100000010000000004000087 +:103330000000000400100000010000200010000048 +:103340000100000200100100010000000000000068 +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:103450000000000000001200000000000000080052 +:10346000600000000010000000000000000000806C +:1034700000043400C000000000504000000001873C +:1034800070390020C0780802703B00000278008389 +:1034900060500000C9F80003280000060978080001 +:1034A000603000000078080FF01000C00310080F13 +:1034B000001000C00300080F80002DC00310080F8B +:1034C000F00000C003100D001000000000F000002C +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E0000000010010351000C082008004002C0093 +:1035F000C00200400000100008000080040010001D +:10360000C0020E48E0001CC60860010820101C40E3 +:10361000C016804870351C000B30808864355C8093 +:10362000031401A0713D2800001401A201111C2007 +:10363000019401A301B00020010041A70139082035 +:103640000194410400091C20C1960E008000000076 +:103650000038000000000000000000000000000032 +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:10376000000080000000010008201000008001001F +:103770000000000000000100002010000000010017 +:1037800000000000000020046090102000082001CC +:10379000601010A00204010020001050400420001E +:1037A0000030144000040000281000040000201025 +:1037B0000050100000808030080C00000000202025 +:1037C0008056000000802000005010000080600043 +:1037D000C08B00000080000000000000000000001E +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000028061000006EF +:1038F0001070038001009400200203800C009400EB +:103900000000032000008C0110008003000814C692 +:1039100007694010068000C605495210008000CBA0 +:10392000C068810B680114C6E549080008800003DF +:10393000C0F00047E0BA40C6A1710807083800C0CF +:10394000C1000027E83800C6117000000E0014C640 +:1039500001710000604800060070000000000000D7 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000001200000000000000000044 +:103A7000E400002FB0000220002C010F0000020023 +:103A80000030010F000002000078400F00004004E9 +:103A9000F0004E2002650000F00801AF0241000076 +:103AA000F0003CA002620203F00811200242204014 +:103AB000F00000160082804F00034066097A204F14 +:103AC000007800CB0B02004F70503CEB0B78400F9E +:103AD0002CD001E10B78000060383C200078000019 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF000000000004040000008000000000000003D +:103C00000000004000000000000000000000000074 +:103C100000000000000000004040800000000000A4 +:103C20000040800000400010005080000180000033 +:103C300000400000008000000010001000000000A4 +:103C40000040000100000000000020000000000013 +:103C500040000000800000000000000000000000A4 +:103C60000000000000400100000000000000000013 +:103C70000000000000000002000000000000000042 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D700000000100000000000000500000000000F2 +:103D800002B000B00000000001000D0A00000000B9 +:103D900001B000B001000001010A00010100900023 +:103DA00051040501000190010101013600110000DC +:103DB00000010000000000000001000000300010C1 +:103DC0000000000A000009000000000A00000000D6 +:103DD0009D000002000009009800000C0000000097 +:103DE0000000000000000000005000000000000083 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF0000000420000000000000000000000000080 +:103F00000000000000000000000000200000000091 +:103F100000000000000000000000000000000000A1 +:103F200010201000000100000020100000300000F0 +:103F3000002010000C2000000030000000200000D5 +:103F400000006000000000000020000C00000000E5 +:103F5000000030C00000000010000000110000014F +:103F600000000000000000000000000000100C0035 +:103F70000000000000000000000000000000000839 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000030000040 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:10407000000000000000010000300000000004000B +:1040800000000000000000000430000000000000FC +:1040900000300000080000000430000004000000B0 +:1040A00000000000000010000000000000100000F0 +:1040B0000000000000000000000000000000000000 +:1040C00000000004000000000000001000000000DC +:1040D00000000004000030000000000000000000AC +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000020000000000000005F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D000008000000000000000000000000000005F +:1041E00000000000000000000000000000000000CF +:1041F000000000000000000000000000004000007F +:10420000000000000000000000000000014000006D +:104210000000000000400000000000000140000419 +:10422000010000000000000000000030000000005D +:1042300000900000000000000000000000000000EE +:104240000000000004000001000000000000000069 +:104250000000000004000001000042000000000017 +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000010000000001E +:1042900000300000000000000000000000000000EE +:1042A0000000000008000000000000000000000006 +:1042B00000000000000000000000000040000000BE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000404280000000000000000000005B +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:104380000000000000000800000000000000000025 +:104390000004000000040000000000000804000009 +:1043A00000000004000000000000000000001020D9 +:1043B00000000000002000000000000000000000DD +:1043C00000000000000000000400000000000000E9 +:1043D00000000010000000000400000000000000C9 +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:10440000000000000000000000000000000000208C +:10441000000000000020000000000000000000007C +:104420000000000000000000040000000000000088 +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:10590000080000000800000000000000000000087F +:10591000080000000000000000000000000000007F +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A5000000000000000000000000C00000000003A +:105A60000000800000000000000D0E00000000009B +:105A700000A905000000000000000C00000000006C +:105A80000000A000080000000C00000C0000000056 +:105A90000000000C08000000000000000E000000E4 +:105AA00000000000050000000000000000000000F1 +:105AB00000000000000500000000000000000000E1 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000100C4 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000100A4 +:105C00000000000000000000000000000000000193 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000010000000000000000073 +:105D200000000000000000008000000000000000F3 +:105D30000000000000000000000000000000000063 +:105D40000100000000000000001000000000000042 +:105D50000000000000000000000040000000000003 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000100000000013 +:105D800000000000000000000000000040000000D3 +:105D90000000000C000000080000000000000000EF +:105DA00000000000010000000000000000000000F2 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E900000000000000000000000004000000000C2 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000040000000000000000020000CC +:105ED00000000000000000000000000000001000B2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F1000100000000000000200000000000000006F +:105F2000000000000000000004000000000000006D +:105F3000000000000000000C000000000000000055 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000010000000000000000000000000000030 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000001000000000000000000000000000 +:1060900000000000000000000000000000000008F8 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000400000000DC +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000040000A7 +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:107600000400000000000000000000000000000076 +:107610000004000000000000000000000000000066 +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000010101000001000065 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E00000000000000C000000000000000000008C +:1078F0000000000000000000000000000000000088 +:1079000000000000000000000C000000000000006B +:107910000000000000000000000C0000000000005B +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000080008000000BE +:1092A00000000000000000080000080000000000AE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:109420000400000000000000000000040000000034 +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000200B8 +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:1097200000000000000000000C000000000000002D +:109730000000000000000000000000000C0000001D +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000080000000000000000000000000020 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000001000000B7 +:1098B00000000000000000000000000000000000A8 +:1098C0000100000000000000000000000000000097 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC000000033B30F8F0000000000000000000011 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900004000000000000000000000000000000C0 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D400000000000000090241E0000000000000041 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000004000000000000000000000000002 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000902412000000DC +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F2000000000000000000000009024120000006B +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A0300000000000000000000000000000000F8F82 +:10A0400033B300000000000000000000000000002A +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A000000000000000000000000000000033B3CA +:10A0B00033B30000000000000000000000000000BA +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000100008001000000000000000000000D +:10A1D00000008000000400000000000000000000FB +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000100008000000000000000000000009D +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A340000000400080000000080000000000000045 +:10A350000000800000000001000400000000000078 +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000040008000000040000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C00000000000000000000000C8000080000044 +:10A4D00000000000000000000000C00000000000BC +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A530000000000000000001001300000000000007 +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000020000000000000000000000401000A8 +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B0000000000000000000000000010000000099 +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000008009 +:10A7D0000100000000000000000000000000000078 +:10A7E0001400000000100000000000000000000045 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A8300000000000000000000000000000000040D8 +:10A840000030000040000000000000000000000098 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A95000000000800100000028020000000000004C +:10A9600000000000E00A000000C00000000000003D +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C000000000800D482C00D001000000000000B5 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD000000000000000000007200200000000004D +:10AAE0000000000000000000804400000040000062 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB400000000000000000000040000000000000C5 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000003000000F1 +:10AC6000100000000000000000000000C0380000DC +:10AC70000070000000000000000000000000000064 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000800180000083 +:10ACD000E001000000000000000000000000000093 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000010000003 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD000000000000000000000000000000000D0A3 +:10ADE00001380000F000000000000000000000003A +:10ADF0007434000000F800000000000000000000B3 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE400000000000000000000000000000000060A2 +:10AE500003000000000200000000000000000000ED +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF60000000000000000000000000801000000051 +:10AF700000000000000000000000000000020000CF +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000400040000000000A9 +:10AFA000000000000000000000044000000000005D +:10AFB0000000000000000000000020000100000070 +:10AFC0000000000000000000000020000000000061 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B0400000000000006000000000000000000000A0 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E00000000000000000000000000000000090D0 +:10B0F00010000000000000000000500000000000F0 +:10B10000300000000000000000000000000000000F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000400000000000003F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B270000000001000000E000000000000000000B0 +:10B280000000000080080000000000000000000036 +:10B2900000000000000000000000000000000000AE +:10B2A00008000C000000000000000000000000008A +:10B2B0000008100000000000000000000000000076 +:10B2C000000030000C000000000000000000000042 +:10B2D00000003050000000000000000000000000EE +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000402D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B4100000400000000000000000000000000000EC +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000001000000000000000000000000000005C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B530000000020000000000000000000000000009 +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000030000000000000000000000000AB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B59000001000000020000000000000000000007B +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000003000000000000000000000000000001B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B650000000000000C0000000000000000000002A +:10B6600000000000000000000000000000000000DA +:10B670000000000000000000000000000000810148 +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000200000000000000000000009 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000002000000000000000000000A9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000003355FFFF117755550000E0 +:10B8B00000001177FF00117755551177FF00000048 +:10B8C0000000055F3333033FFF000000000000006D +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000090040C0048200E +:10BA30001E200000000048201E2048201E20482014 +:10BA40001E200000000048201E2048201E2000006C +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000A01228DDA43A +:10BBB00052B8DCA452B9DDA452B9DDA452B8DCA459 +:10BBC00052B9DDA452B9DCA452B9DDA452B10000CF +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC60000000004000000000000000000000000094 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000FFFF15 +:10BD3000FFFF6666999933CC999955AA55AAA5A58E +:10BD400033CC33CC999955AA999933CC9999A5A517 +:10BD50009999FFFFFFFF00000000000000000000B5 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB000000000000403800024030000040340206D +:10BEC000448100000403C02000200000040340203F +:10BED000201000000402C020000800000000000044 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C03000000000000000C100800000014004412019 +:10C04000800000008008C1208000000128104120ED +:10C0500080000000400081200000000180080000F6 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000080C4C000007B +:10C1C000C800004003C0C800800000C800C0802232 +:10C1D000C00002C800C08000C000000002C0000013 +:10C1E000C00000000000000000000000000000008F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000002FB +:10C3400000100000000000204020000080000000DD +:10C350000020800082000400002080008000020293 +:10C360000420000080000000000000000000000029 +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C00000000000280001000080020700140000A6 +:10C4D000000000842001000000000844010000006A +:10C4E00000000002000000A00100000000000000A9 +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C64000000000000000000000001000003000BCEE +:10C6500000001CC004000610600A9CC60414000000 +:10C6600000001CC00400001000000000006000007A +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000230000037 +:10C7D0000000E00001201010000030800050100028 +:10C7E0000080400401301000000000088028008014 +:10C7F00000400000000000000000000000000000F9 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000020C7 +:10C9500000000100C00402000000020010000000FE +:10C960000F0000C6066108000A00020600012E0042 +:10C97000000000A601B4000000000000000000005C +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000F00200000000080F4D +:10CAE000D0000000000021200100201000000C6F89 +:10CAF0000A0000041000212F0010000000000000B8 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000001000000000000000000000000000044 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000200020000000000000A4 +:10CC50000000800000000020002000000000008094 +:10CC60000000000020000002000000008001000021 +:10CC7000202200202001000000020000000000002F +:10CC800000000000000000010001000000000000A2 +:10CC90000000000000000000100010000000000074 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000500000000000000000000013 +:10CDD0000000000000000000000000000000000053 +:10CDE000000000060000000000000000000000003D +:10CDF0009000000000000000007000000000000033 +:10CE00000000000000000000000010000000000012 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000A00000000000000E7 +:10CF400000000000000000000000000000000000E1 +:10CF50000000000000000000000030000000003071 +:10CF60000030000000000020000000001000000C55 +:10CF700000000050100C00000018002030080000D5 +:10CF8000000C00000000000000000000000080080D +:10CF90000008000000000000000000000000000089 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000001000000000000040 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D25000000000000000000000000000008000004E +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000C000000000001D +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000100000000000000000000000004D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D54000000077225533000000003F0C1B1B000039 +:10D550000000FF7F80804D4D333311770F0F0F8F09 +:10D5600033B3FF80550FFF8055D50F8F33B3FF8046 +:10D5700055D50F8F33B3FF8055D50F8F33B30F8F32 +:10D5800033B3FF8055D50F8F33B3FF8055D5FF8060 +:10D5900055D50F8F33B30F8F33B3FF8055D5FF8031 +:10D5A00055D50000000000000000FF8033B30000EC +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000400000000000000F6 +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C00000000000000090241E00000000009024D4 +:10D6D0001E000000000000000C0048201E20482012 +:10D6E0001E2090241E0090241E0090241E009024D2 +:10D6F0001E0090241E0090241E0090241E009024E2 +:10D700001E0090241E0090241E0090241E009024D1 +:10D710001E0090241E0090241E0090241E009024C1 +:10D720001E0090241E000000000000000000902455 +:10D730001E000000000000000000000000000000CB +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000400000000039 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D84000000000000000488040A94C8040B84C8097 +:10D8500040B94D8040B84D8040B94D8040B84D80B2 +:10D8600040B94D8040B84D8040B84C8040B94D80A3 +:10D8700040B84C8040B94D8040B84C8040B94D8094 +:10D8800040B84C8040B94D8040B84C8040B94D8084 +:10D8900040B84C8040B94D8040B84C8040B94D8074 +:10D8A00040B94D8040B84D8040B84C8040B84D8064 +:10D8B00040B0000000000000000000000000000078 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000040B7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D9800000000000000000000000FF7FFF7F00009B +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000055AA9999C3C3A0 +:10D9D0009999999999999999C3C39999A5A599994B +:10D9E000C3C39999A5A59999C3C39999C3C3C3C33F +:10D9F000999955AAC3C3C3C39999A5A5C3C333CCE9 +:10DA000099999999C3C3C3C3A5A59999C3C333CCA5 +:10DA1000A5A59999C3C3999999999999C3C3C3C362 +:10DA2000A5A59999A5A59999C3C39999C3C3C3C33A +:10DA3000C3C39999C3C3FFFFFFFF000000000000AC +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB50000000800000060000000080000026000099 +:10DB600000000000000000000000C0200054000081 +:10DB70000000C020006400000000C02000A20000DF +:10DB80000000C020009200000000C020008A0000B9 +:10DB90000000C020002000000000C0200010000095 +:10DBA0000000C020000800000000C02000CE0000DF +:10DBB0000000402000D0000000008000002600008F +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD000000080000000000100048000000000013E +:10DCE0000000000000000000000080200000000193 +:10DCF00000048020000000010010802000000001CE +:10DD000000108020000000010004802000000001BD +:10DD100000088020000000010010802000000001A9 +:10DD200000048020000000010008802000000001A5 +:10DD3000000800200000000000008000000000013A +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE100000000000000000100000000000000000F2 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE50000000000000000000000000C0C32000001F +:10DE600003000000030000000000000000000000AC +:10DE7000000000000040004000C0E0000000000082 +:10DE800000C0C0004400000000C0C000440000000A +:10DE900000C0C0004400004000C0E000000000409E +:10DEA00000C0E0000000000000C0C000440000000E +:10DEB00000C00000C022000000C0000044000000BC +:10DEC00000C0C000000000000000000000000000D2 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD00000000000000000000000004000000111EF +:10DFE0001800020008000080080000000000000087 +:10DFF0000000000000000040002000200010000091 +:10E000000100004000041000000000400004100067 +:10E01000000000400004100000000020001000007C +:10E02000010000200010000001000040000410006A +:10E0300000000000000401001000000000040000C7 +:10E0400000000002001001000100000000000000BC +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000001300EC +:10E1200000000028000000000000000000000000C7 +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E16000802814000000000004300F00C0140000DC +:10E1700020020006C0E8000FF0304006C680000F05 +:10E18000700000C80380080AF40030460AF800C88E +:10E19000870080860278000884802CC6C17880C7FA +:10E1A0007B0000C6C310000F100000C60390000FD4 +:10E1B000F0000006C178000F100000D6C390000FD9 +:10E1C00000300006C10000001000000600F0000052 +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A0000000020000004006000000000000000026 +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E0000000100000011500D00000000000100028 +:10E2F000003900002012280800600000004014C807 +:10E300000000000700395C20D130000800001C48E4 +:10E310002042000800001EDE04600008E0381C28CF +:10E320002116000700151C2801944004000B1C282E +:10E3300001B0000880081C2823164004000B1C2094 +:10E3400001B10008008800282302000080020008B4 +:10E350000038000000000000000000000000000085 +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000400000000E8 +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000010020400C2004094 +:10E47000A010000400000800100000008000080048 +:10E480000004018480002010401811000080240244 +:10E49000001010000000202800301040004028022A +:10E4A0000014100080002821803210008080280095 +:10E4B0000050110000802808003910008000006022 +:10E4C0008846100000802800002C000080002800F2 +:10E4D000900A000000800000000000000000000022 +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A00000000000000000000000320000005403E2 +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E0000000000000000000000006000A00000615 +:10E5F00000F0072080002006207200A0E300C00485 +:10E600001070802020100103D0040182E9110CC693 +:10E61000017900022F1000C605710007EF2900C61E +:10E6200005710007E81000C605710007E82800C65C +:10E6300003710007EE380E66E2F10000080000C624 +:10E6400005710003603080C0017080AA093800C6DF +:10E65000050000008040000600700000000000007F +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000200E7 +:10E730000000560A00000000000000000000000079 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E760000000000000000000000000000000011098 +:10E7700000700007F00003806100000100040C40FD +:10E780002B79000A00800C470700001A0000822F36 +:10E7900028363CE00B008002F07B00E003F8000725 +:10E7A000F0B8002002F88C07F079346002E80C0F12 +:10E7B00070B800A009188C0F782F102002424C0767 +:10E7C000F4B800E003F8168F61783CC70B790C02AF +:10E7D000003800E003000C0010303C2000780000FE +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000040000028 +:10E8B0000000010000000000000000000000000057 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F00000000000000000000000000020000000F8 +:10E900000000000020101220000000008000020023 +:10E910000000000000004000100010008000000017 +:10E920000000000000008000200000089100098025 +:10E930000001098881080881010001881901090284 +:10E940000002012A00000800000000001000000082 +:10E950000040002000800000000000008100000056 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000100000100000000003030000000000024 +:10EA90000104000100000000900000503000300927 +:10EAA0000000000090000C000000000000002004A6 +:10EAB0001000000000B00C04000800000D0000046D +:10EAC000140000A00000500400000000000000003E +:10EAD000100000000000000000B000000000000076 +:10EAE0008000000000000000000A0000000000009C +:10EAF0000E0C0D00000000000000000000000000EF +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000300000000000000000000025 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF00000700000000000000070000000004000F5 +:10EC00004000000000000000400040800040002064 +:10EC10000070000010010C00000000000000100057 +:10EC200000000000100000000000010000002000B3 +:10EC30001000800024000820007804302400002CFC +:10EC40000C00042008040C0C0008043C0000000028 +:10EC50000000000000000000002000300030000034 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000010000000000000000000093 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000020B3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000001000000000000000000000000000092 +:10ED800000004000000000200000002000000020E3 +:10ED90000000002000000020000000200000000013 +:10EDA0000000000000100000000000000000000053 +:10EDB0000000200020000000000000002000204093 +:10EDC0000040000000000000000000000000000003 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC00000000080000000000000000000000000C2 +:10EED0000000000000000000000000000000000032 +:10EEE0000000020000000000000000000000000020 +:10EEF0000000000000000000000000000000000012 +:10EF000000000000000020000000008000000080E1 +:10EF100000800081000000800080008000000080F0 +:10EF200000800000000000000090000000000000D1 +:10EF300000000000000000000000000000000000D1 +:10EF40000000002000200000000000000000000081 +:10EF500000000000000000000000000000000000B1 +:10EF60000000000000800000000000000000000021 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000003000000000000051 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000001010000000000000000EE +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F09000200000000000002420000000000000000C +:10F0A0002000000000000000000000000020000020 +:10F0B0000000000000000000000010001000000030 +:10F0C0000000000010001000000000000000000020 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000200000000000000000 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000200000DF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F250000000CF0C3333F3035F50553355330000B8 +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D00000000000000048201E2090241E00902401 +:10F3E0001E000000000000000000000000000000FF +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F54000000000000000000000009024120048208D +:10F5500012200000000090241200902412000000ED +:10F560000000482012200000000000000000000001 +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F00000000000000000000000004000000000CB +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C00000000000000000000000000000007722A1 +:10F6D000BB117171333300000000BB114747BB11F0 +:10F6E0004747000000007171FF00000000000000AB +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F85000000000000403000044010000000100005B +:10F86000000000000402C02020100000040240201C +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D00000000000000041008000000080004000A6 +:10F9E00080000000080081200000000100040120C8 +:10F9F000000000008008000000000000000000007F +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000C400C080C400DD +:10FB6000C000000080C880000000C000C340C0008A +:10FB7000C403C40044C044000000000000000000B2 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0008002000080000000800080000000100002 +:10FCF00084A01000000100000004000000000000CB +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE600000000E0000042C00000000800200400092 +:10FE700020000E00040040980200010400800020D1 +:10FE8000080000000000000000000000000000006A +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000003C0000000000C002000013 +:10FFF0000000000000001000200014200030480322 +:020000040002F8 +:100000000038008101000000000000000000000036 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:100160000000000000000000000001000A0044013F +:10017000000000000200000080008000000000007D +:10018000014000010000000001000000000000002C +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000012807C +:1002F00001000000C00000000600100020012200E4 +:100300009001008801440000000C2DA703000000AC +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:1004700000000CC00100000000020080010001002B +:100480000002020B1000212008181C0000008C80C4 +:10049000010000000000000000000000000000005B +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:1005700000000000000000000000000080000000FB +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000080000004000000008000000408B +:1005E0008000000000100800000000000200000071 +:1005F0000000000800000010000040080000000497 +:100600000004080880090000000020040100000028 +:1006100000000008000000000000000800000000CA +:1006200000000008000000000000000000000000C2 +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000901000000000000DF +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:100740000000000000000800000000000000000D94 +:100750000000000104000088080000000A000008F2 +:10076000000000000100000400300C00090A000035 +:100770000E000000000A0D0800000920000000081B +:100780000C00700450200408A4080004007000004D +:100790000000200400000008040000000000000821 +:1007A0000000000000000008000000000000000041 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000001000000000027 +:1008D0000000000000000100010000000100001005 +:1008E00000000000010100100000000100000000F5 +:1008F000000000000C0040000600000000000000A6 +:100900000600300001000009008C00662154000739 +:100910000000360C080080010000006001000000AB +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000020000000000000000000000E4 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A6000800C0000000000000000000000000000FA +:100A70000010000000000000000000001000000056 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000004000000000000016 +:100AA0000000000000000000000010000000000036 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF0000000000000800000000000000000000075 +:100C00008000000000000000000000000000000064 +:100C100000000000000000000000000000200000B4 +:100C20000000000000000000000000000000800044 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000020000000000000000000000000002 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D6000000000000000000000080000000000007B +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000100000000000000000000000000043 +:100DA0001000000000000000000000000000000033 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F00000000000000000000000000000000FFFFE3 +:100F1000330F000000000000000055330F330000C5 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:10109000000000000C000000000000000000902490 +:1010A0001E00000000000000000000000000000022 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:101210000000000000000000000000000000482066 +:101220001220482012204820122000000000000058 +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C00000000000000000400000000000000000DE +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000FFFF272700000000000001 +:1013A0000000DD445555DD440F0F033FFF000000F2 +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:101520000000000000000000040380000020000014 +:101530000402000020000000000000000000000085 +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A00000000000000000000000C10080000001F8 +:1016B0002800010000000000000000000000000001 +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:101820000000000000000000000000000000C000F8 +:1018300000C08000C0000000C400000000000000E4 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000002000000000000000100000000007 +:1019B0000000104001208000100000000000000026 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B20000000000000000000000000004000000075 +:101B3000000000000100008061520000203C120003 +:101B40000080800000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB00008000000000000100000100008100000E4 +:101CC00000400C000038000100000000000000008F +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E30000000000010000000000000400000000052 +:101E4000400000008004820000000000000000004C +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB00000000020020000000000400400000000BB +:101FC000000001402081160FC0080000000C0C002A +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000A0000000FF +:10214000000000000200024000300D2600020800DE +:10215000000040000000000000000000000000003F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000002020000000001E +:1022800000002020000000000000202000000000CE +:1022900000002020000000000000002000200400BA +:1022A00000000008002000000000200800000000DE +:1022B000000000200020000000002020000000009E +:1022C00080002020000000000000082000210008FD +:1022D000000024200000000000000020002000007A +:1022E00000000020000000000000000000000000CE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:102410000D0A0E00000000000D0A0E00000D000065 +:102420000D0A0E00090000000D0A0E000000000059 +:10243000000A0E0A0000000000000E0A0000000062 +:102440000D000E0000000000000A0E0A000004004B +:102450000D0A0E00007000B00D2A0E007000000082 +:10246000000A0E0A000000000D0A0E000000000025 +:10247000000A0E0A00000000000A0E000000000022 +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000100000000000000007A +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A0004000000000000800008000000000000063 +:1025B0000000000000000000000006000000000015 +:1025C00000000000000000001000000000000000FB +:1025D00000000000000C000000060C00008000005D +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A0000000000000000001000000000008000021 +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000004000000000000000408000000000C9 +:102710000000400000000000000040000000000039 +:102720000000400000000000000040000000000029 +:102730000000400000000000000040000010000009 +:102740000000400000000000000040000000000009 +:1027500000004000000000000000400000400000B9 +:1027600000004000000000000000400000000000E9 +:102770000000000000000C0000000000000000004D +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000800000000A0 +:102830000002000000000000000000000000000096 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000080000000000000000000000000000088 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000010000000000D7 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A00000000000000000000000000000008200A5 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000001000000066 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000FFFF0F33FFFFF303FFFF3F0CFFFF8A +:102BD0003355FFFF3F0CFFFF5533FFFF3355FFFF1A +:102BE0005F0A0000000000000000FFFF55330000F6 +:102BF0000000FFFFFFFF00000000000000000000D9 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000400000040 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D400000000000000000000C0000000C0000006B +:102D50000C0000000C0000000C0000000C00000043 +:102D60000C0000000C00000000000000000000004B +:102D70000C000000000000008C02000000000000B9 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000D8A452A8DCA452B9DCA452B8DCA427 +:102EA00052B9DCA452B8DCA452B8DCA452B9DCA4F8 +:102EB00052B8DCA452B9DCA452B8DCA452B9DCA4E8 +:102EC00052B8DCA452B8DCA452B8DCA452B8DAA4DC +:102ED00032B8DAA432B8DAA432B8DAA432B8DAA452 +:102EE00032B8DAA432B8DAA432B8DAA432B8DAA442 +:102EF00032B8DAA432B8DAA432B8DAA432B00000B8 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F900000000040000000000000000000000000F1 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:103010000000000000000BF4C9C3C9C3A9A5C9C3BF +:10302000C9C3C9C3A9A5C9C3C9C3C9C3C9C3C9C37E +:10303000A9A5C9C3C9C3C9C3A9A5C9C3C9C3C9C3AC +:10304000A9A593C663C963C963C993C693C663C977 +:1030500063C977888787878777888787778887870F +:103060007788778877887788778887877788778859 +:10307000878787877788778887877788878777881C +:103080008787FFFFAF050000000000000000000080 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:103190000000000000000000000000000403000028 +:1031A000A8000000040300008800000004030000E1 +:1031B00004010000040300002401000004030000D7 +:1031C00044010000040300000000000004030000AC +:1031D0002000000004030000400000000403000081 +:1031E000CC01000004030000AC0100000403000057 +:1031F0008C01000004030000C8000000040300006C +:10320000A800000004020000080000000000000008 +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:10331000000000000000000000000000000041006C +:1033200080000000400041008000000028004100B3 +:1033300080000000280041008000000040004100A3 +:103340008000000080004100800000002800410053 +:10335000800000004000410080000000800041002B +:10336000800000008000410080000000400041001B +:103370008000000028004100800000008000410023 +:10338000800000004000010000000000200000005C +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A0000000008000C0C880C4C3000000C080C805 +:1034B000C8C3000000C8C4C180CB00C800C0C4C1DC +:1034C00080CB008000C0C880C0C300C80080C4801A +:1034D000C0C8008000C8C48300C800C00080C4C148 +:1034E000C8C800000013C4C1C0C801000000C4D394 +:1034F000C0C900800113C4C1C0C800C0001383EB61 +:1035000080C000800003C7C1C8C800400003C4C019 +:1035100004000000000000000000000000000000A7 +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:103620000000000000000002000200020021000073 +:103630000020800000210000000000038001000045 +:103640000020000380010002002000028021000011 +:1036500000020002800000020000000300000002DF +:1036600000020003000000000000000380002000B2 +:103670000000000280010802200000038000000218 +:1036800000008400800200020001040300000040EA +:103690000001000200000000000000000000000027 +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000009D0030000003D +:1037B00000001FD00308000000001FD00308000015 +:1037C00000001FD00300000000001FD00300000015 +:1037D000000011200084100640010CC00350800E30 +:1037E000C0020C000038008EE138000000D080C01C +:1037F000017001500510C8C00140071000310000E1 +:103800000100061000380006000006C0030A40044C +:10381000E1001E2000084007E0000000000000005A +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:1039200000000000000000000000000000000E8009 +:1039300003001C0000000E8003805C0008020E8063 +:1039400003801C0000000E800300540008020E805B +:1039500003001C000000008000385D06C00122004A +:1039600000001000C00022000800800400000000D9 +:1039700083112807400A068003000C070000068C0C +:10398000E33028004002008003B82808400200000D +:1039900000904C000200008000000C0000000000BD +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB000000004400034900228000100002010089B +:103AC000000001400024900228002000001002089D +:103AD00000002800001491022800080003041008C8 +:103AE000000004000404020280000C2002180106F9 +:103AF00095100240040001000000090001100C00B4 +:103B000000024800081820800010C100004000009A +:103B100000004110000000008000010000180000BB +:103B20003000000000000000000000000000000065 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C300000000000000018200030000718001040AD +:103C400006002000C800100002300008E00000C09C +:103C500000802808E000000006B0140610002200D2 +:103C600007806006E00009000F00A8081001262068 +:103C700080015011200027230000900810010063EC +:103C800000884007E00922806BA8101F20020CC0AA +:103C900001280008100110000FA8000F20020100E9 +:103CA00000AC2C0F0000000000000000000000002D +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB000000000000000000000002040013000274B +:103DC000A00002400180800FA00202A0000080003D +:103DD000D002166000808000D00208400300003A44 +:103DE000F00008C001000028F002220000001600C8 +:103DF0000000084000002C0822608280000034C0CF +:103E00000168884001800CE801320800000300A02E +:103E1000F17000600180002000000E00000200E050 +:103E2000F200020000002C20C00000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000002061 +:103F400000210000000000200030100000400000B0 +:103F50000000000000400000001010200040004061 +:103F60000000002000000000000000002000000011 +:103F700000200040000000000000002000000000C1 +:103F8000000000200490000000000020000000005D +:103F90000100000080000080000000208004000874 +:103FA0000100002000800000000000200000000050 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000101000D0 +:1040D00000000000000000000000000000101000C0 +:1040E0000000000000000000000000000010700050 +:1040F000000A000010000000000A0000000000009C +:1041000000007D0C000000000030000000000000F6 +:10411000040A000000000000000A0CA0900000004B +:10412000007A500C00000000000000009000000029 +:10413000000A000000000000000A0000000000006B +:10414000000A000000000000000000000000000065 +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:104240000A00000000000000000C00000000000058 +:104250000A00000000200000000000000020000014 +:1042600000000020002000100000002000000000DE +:10427000008000000000000080100000000000002E +:104280000000002000006001000000200830000055 +:1042900000000020010060000C0000001000012060 +:1042A00000000020300800000C000020003000005A +:1042B00000000020000000000000000000000000DE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000020000000000000000003B +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000012000000000000CB +:1043E00000020000000000000000000000000000CB +:1043F000000000300000000000020000000000008B +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000200000000000000000000000000008A +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000080000000000B4 +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:1045500000000000000000000000000000900000CB +:10456000000000000000000000000000000000004B +:1045700000000000000000400000000000000000FB +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000300000CB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:1046700000000000000000000000000000000040FA +:1046800040000000000000000000000000000000EA +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000200000000000000000000000000000AA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000020000000000000000000000000000049 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000550F550F0000000053535353000044 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A00000000000000000000000FFFF3F3000009B +:1048B00000000000000000000000FFFF3F3000008B +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000C00000000000000CB +:1049E0000C000000000000000000000000000000BB +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000C0000000000000000000000000000006A +:104A40000C0000000000000000000000000000005A +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD000000000000000000000000F3327277722AB +:104CE000772247477744774477447722553300004B +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000FFFF1B1B000000000000000000004F +:104D30000000FFFF7722FFFF1B1BFFFF7722FFFF13 +:104D40001B1BFFFF5353FFFF4747000000000000FD +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:105160000000000000000000000000000304000038 +:1051700000000000C1000000000000000308000063 +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B0000000080000000000000000000000A00047 +:1051C00000080400000008000000040000000800BF +:1051D000008004000000000000000000000000004B +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000002BC +:1052F0000220000000040002212000000000000045 +:10530000020000000000000000000000000000009B +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:105350000000000000040000000000000000000049 +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:1054600000000000000000000000000000001E809E +:105470006000000900000080F4008000004003008C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000600000000E6 +:1054C000000000000000010000000000106001006A +:1054D000000000001000000000000007A0480000CD +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F000000000802000000600002E80E808000661 +:1056000000140E0000000000000000000000000078 +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:105630000000000000000000000000000000000862 +:105640000000000000000000000006000000000054 +:105650000000060000000000000000000000000044 +:105660000001000000000000000000000000000039 +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000002080DE8280000000810028 +:10578000240800000002400000800001000000002A +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000100E8 +:1057C00000000000000000000000000000000100D8 +:1057D0000000200110022000000000000000010075 +:1057E0000000240000000000000000000000000095 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F000000000000000000000001E80E38800009F +:10590000E0700CA069120007E0002F00008800077B +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:10594000000008000000000000000000000000004F +:10595000000002A080011000000802A0000000006A +:105960000000080086810C00000800000000000014 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A700000000000000000000000000000000EC058 +:105A80007108000FF0FA0C806152002FF0020E0036 +:105A900000080020000000000000000000000000DE +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000001600000000C0 +:105AD000000000000000000000000008207000002E +:105AE000000000055000000000080C0F10700000BE +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF0000000000000000020000000000000000085 +:105C0000000000400000400000000000880000008C +:105C10000800000000000000000000000800000074 +:105C20000000000008000000000000200800000044 +:105C300008080840080800080000002008080008BC +:105C4000000800200808000000080000080000000C +:105C500000000020000000200000000000200020C4 +:105C600000000000000420002044000000080000A4 +:105C700000000000000C0000000000000000000018 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D8000000000000000000000000000000006A06D +:105D900090000000000000A0000A00000D0000A01C +:105DA000000000001000000008000E000000000CC1 +:105DB0000C0000000C0C0800080800080000080097 +:105DC00008080008000800000808000D0008053059 +:105DD0000C0A003000000000050D00050000000066 +:105DE0000530000005000000050A000000700E00EC +:105DF0000008000500000D00050800050000000077 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE0000000000000000000000000000070000042 +:105EF0000000000000000000000000000000001092 +:105F00000000507000005000000000000000200061 +:105F10000000007010000000000000000000000001 +:105F20000000007000000000800000000000000081 +:105F30000000003100000000000000100000000020 +:105F4000060001300000000000000030000000608A +:105F5000000000E0000000E0000000306000603061 +:105F60000000000000900030600000000000100EF3 +:105F700010340000000000000000000000040000D9 +:105F80000000000000000000000000000000000011 +:105F900000000000000000000000060000000000FB +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:10603000000000000000000000000000000C000054 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:1060600000000000000000200000000000000020F0 +:106070000000000000000020000000000000000000 +:106080000000000000000000000000000000000010 +:1060900000000000000000000000000000000020E0 +:1060A00000000000002000000000000000000020B0 +:1060B0000000800000000020000000200000002000 +:1060C0000000000000000000000080000000002030 +:1060D0000000800000000000000000000000000040 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000010000000000000000000000000000CE +:1061D00000000000000000000000000000000000BF +:1061E000000000000000000000000040000000006F +:1061F000000000400000000000000040000000001F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000020005E +:1062200000000040000000000040000000000000EE +:10623000000000400000100000000040000000408E +:1062400000000040000000000000000000001000FE +:1062500000000040000010000000000000000040AE +:10626000000010000000000000000000000000001E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000002000000000000000000000000000CD +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E000000000000000200000000000000000008D +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:1065700000000000000000000000FFFF27270000CF +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000C0000000000000000000000000000007D +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A000000000000000000000000FFFF353500001E +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000400000002C0083 +:1071A000D20000000000000000000000000000000D +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000100000000000000DB +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000400307000200000000000E +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000001000C9 +:1077B0005000000000000000000000000000000079 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000808A8 +:1078D0000000000000000008000000080000200078 +:1078E0000000000000000000000000000000000098 +:1078F0000000000008000000080000000000000870 +:10790000000000080008080800000000080008083F +:1079100000008000000008000008000000000000D7 +:1079200000080008200808000008080000080000FF +:1079300000080000000040080000000000080100EE +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A500000000C0C00000000000000080A00000CF0 +:107A60000000000000000000000000000000000016 +:107A7000000000000D0000000400000008000000ED +:107A80000000000C00000008000808080000000EBC +:107A90000400080800000000000A0800000C0000B4 +:107AA000000D0000000C000C003808000008080061 +:107AB000000800000208060000000D0C0000000095 +:107AC00000080000000000000000000000000000AE +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000002000000000000000000075 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000500000000024 +:107C10000000000000000000000030000000000034 +:107C200000000000000000000000000010800000C4 +:107C30000000000000000000000000000000100034 +:107C4000000000000000080000000000000000002C +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D0000000C000000000000000000000000000067 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D700000000000000000000000000010000000F3 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000010000000C3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000100000000000000000000F1 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30004000000000000000000000000000000001 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000100000000000000000000000E0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000FFFF330FFFFF0F330000EE +:10821000000000000000FFFF5533FFFF3355FFFF54 +:10822000330FFFFF5533FFFF3F0C0000000000003D +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:108380000000000000000000000000000C000000E1 +:108390000C00000000000000000000000C000000C5 +:1083A0000C0000000C0000000C0000000C0000009D +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000FFFF2727FFFF90 +:1086A0001B1BFFFF272700000000FFFF2727FFFFFE +:1086B0001B1BFFFF772200000000000000000000ED +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E0000000FFFF33550000000000000000000004 +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B200000000000008000000000000000000000C5 +:108B300000000100000000000000000000800000B4 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000004000000000000C0 +:108CB0000000000000002000000000000000000094 +:108CC00000040000000000000000000000000000A0 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000800140000081 +:108E30000000001620004000000100160210000093 +:108E400000000016D0400000000000C0010000003B +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000020000000000000000000D2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB0000008000000000000080000002010001061 +:108FC00000800000E000000000000C000000000035 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF000000000000000000000000200000000006F +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000201F +:1091300000000040010000000800000000002000C6 +:109140000040080002102000180000C110021000AA +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000007C0010000000806800300400015 +:1092C00008000E000000000000000E050200010072 +:1092D000000806030000411000000000000000002C +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:1093000000000C0000000000000000000000000051 +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:109430000000000000000000000000800260010049 +:1094400000000008200000000000009A02604000B8 +:1094500000001086C130810000000C860200000070 +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000001000050000F000000007C +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A0000000000000000008000080000000000033 +:1095B00000000000000000000000004021108000BA +:1095C0000020200102000110080101800820011084 +:1095D0000448802200000000000A000800020A007F +:1095E000000000080000080000000000000000006B +:1095F000000000000000000000000000000000006B +:109600000000000000000008000000000000000052 +:1096100000000000000000000000000000018000C9 +:109620000000000000000000000000000400000036 +:109630000100000000000000000000000000000029 +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000080000000031 +:109730000000000000000000000000000000000029 +:109740000030060000000000B2000030040200807B +:109750009400063600540000B000B6060014000461 +:10976000B0009406001000540D000400000000003A +:109770000000000000000000000000000000900059 +:10978000000A0000000000000000000800000000C7 +:1097900000000006000000000000000000000000C3 +:1097A00000000000000000000000000000000000B9 +:1097B0000000B000000000000000000000000000F9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B000000030000A00005000000000000000001E +:1098C000000000101C0010000A10000C0800080026 +:1098D000000C080000100C000810101C0000000014 +:1098E000008C00020008040000800000000000005E +:1098F000000000700000000000000E0000000000EA +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:1099200000000000000830000000000000000000FF +:10993000000000000C0000000C000000000000000F +:1099400000000000000000000000000E0000000009 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000050000000000002000000000000000D1 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A90000000300000000000000000000000000096 +:109AA00000000000000000000000000000000000B6 +:109AB0000000000000000030000000000000000076 +:109AC0000000000020000000000000000000000076 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE000000000000106000000000000400000002E +:109BF0000000000000000000000000000000000065 +:109C0000000000080000000000000000000000004C +:109C10000000000000000000000000300000000014 +:109C20000000000000000000000000000000000034 +:109C300000000000000000000000008000000000A4 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D8000000000000000000400000000000081014D +:109D90000000000000000000000010000000002093 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000001000000083 +:109DD0000200000000000000000000000000000081 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E80000000000000000000000000000000FFFFD4 +:109E9000FFFF0000000000000000000000000000C4 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC00000001D1D553300000000FFFF7744FFFF19 +:109ED000FFFF550F550FFFFF0F33FFFF3355FFFFF8 +:109EE0003F30FFFFF303FFFF3F30FFFF3F30FFFF37 +:109EF000330FFFFF5353FFFF4747FFFF3535FFFF8A +:109F0000F5050000000000000000FFFFFFFF00005B +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F3000000000000000FFFFFFFF00000000000025 +:109F40000000000000000000000000000000000011 +:109F5000000000000000FFFFFFFF00000000000005 +:109F600000000000000000000000000000000000F1 +:109F70000000000000000000000000000000EBBA3C +:109F80000F0F0000000000000000000000000000B3 +:109F900000000000000000000000000000000000C1 +:109FA0000000FFFFFFFF00000000000000000000B5 +:109FB0000000000000000000000000000C00000095 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A01000000080240E00000000000000000000008E +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A0400000000000000000000C0000000000000004 +:10A050000C0000008C0200000C0000000C0000004E +:10A060000C0000000C0000000C0000000C000000C0 +:10A070000C0000000C0000000C0000000C000000B0 +:10A080000C0000000C0000000000000000000000B8 +:10A090008C02000000000000000000000000000032 +:10A0A00000000000000000000000000000000000B0 +:10A0B0000000000000000000000080240E000000EE +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000080240E000000CE +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000048201E2000000000000000000000A9 +:10A11000000000000000000000000000000000003F +:10A1200000000000000000008C02000000000000A1 +:10A13000000000000000000000000000000000C05F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D00000000000000000000000802402000000D9 +:10A1E00000000000000000000000000000000080EF +:10A1F00000284D8040B94D8040B94D8040B94D8018 +:10A2000040B94D8040B94D8040B94C8040B94C8038 +:10A2100040B94D8040B84C8040B1000000000000C3 +:10A22000000000000000000000000000000000002E +:10A2300000000000000000000000488040A84D80A1 +:10A2400040B84D8040B84D8040B84C8040B84D80FB +:10A2500040B84C8040B84D8040B84C8040B94C80EC +:10A2600040B0482012200000000000000000000064 +:10A2700000000000000000000000000000000000DE +:10A28000000000000000000000000000000000A02E +:10A290001228DFA472B9DFA472B9DFA472B9DFA4F7 +:10A2A00072B9DFA472B9DFA472B9DFA472B9DEA4F7 +:10A2B00072B000000000000000000000000000007C +:10A2C000000000C0000000000000000000000000CE +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000003F305F50FFFF5F50FFFFF505FFFF3C +:10A36000FFFFFFFF7744FFFFBB11FFFF1D1D000034 +:10A370000000BB1155AA55AAA5A5A5A5999955AA4E +:10A38000A5A5A5A555AA55AAA5A5A5A5999933CC76 +:10A39000A5A59999999955AAC3C399999999000026 +:10A3A00000000000000000000000000000000000AD +:10A3B0000000000000000000000000000000CC339E +:10A3C000CC336666CC336666CC335A5A66666666AC +:10A3D000CC336666666666663C3C5A5A6666CC3323 +:10A3E0005A5ACC3366662966FF0000000000FFFF62 +:10A3F000FFFF00000000000000000000000000005F +:10A40000000000000000000000000000000000004C +:10A410000000FFFF55553333FF0055550F0FFF0068 +:10A42000555533330F0FFF00555533330F0FFF00D2 +:10A430003333F0F0AAAA0000000000000000000082 +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A49000000000000000000000000000000080003C +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E0000000020004020000240000000000000040 +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A540000000000100008000000200000000000088 +:10A5500000000000000000000000000000000000FB +:10A5600000008002000080000008090004020000D2 +:10A570000C000000000000000000000000000000CF +:10A5800000000000000000000000800100008000CA +:10A59000000400000001000080000000040300002F +:10A5A0000401000004030000240100000403000073 +:10A5B000440100000403000000000000000000004F +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A6100000000000000000000000000000008010AA +:10A620000000000100040000000000000000000025 +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000009000000000000000000E1 +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C00000000000000080100000000100040000F5 +:10A6D000000000000000000000000000000000007A +:10A6E00000000000000080000000000100000100E8 +:10A6F00000000000800000000000000000000000DA +:10A7000000000000000000000000000000008010B9 +:10A71000000000010004400080000000080041002B +:10A72000800000002800410080000000400041003F +:10A730008000000080004100800000002800000030 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000003000000000000000000A6 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000020020000057 +:10A7E0000000000000040000040000000100000060 +:10A7F00003C0000000000000088000050000000009 +:10A8000000000800C00000000000000008C00000B8 +:10A810000000000000C0000000000000C0000000B8 +:10A8200000000040000200000000000000000000E6 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000030000000302 +:10A8500000000000000000000000000000000000F8 +:10A86000000000000000000000000000C300000025 +:10A870000000002300230000000000000000000092 +:10A88000C000000000000000000000000000000008 +:10A8900000000000000000000000000100000000B7 +:10A8A000800000D303C38123CB0000C000C8800018 +:10A8B000C40000C000C88000C40000C000C0C800C0 +:10A8C0008000000000000000000000000000000008 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A92000000000000000000000000800020000001D +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A950000000000000000000000000000000008077 +:10A960000000400800000004000008000000000093 +:10A97000200804000402000000000400000400009D +:10A9800000000000100000000100000010000000A6 +:10A990000040000010000000104000000000000017 +:10A9A00001000000000000400080000000000000E6 +:10A9B0000000000000000000000000000000000097 +:10A9C000000000000000000000000000000000087F +:10A9D00000000008018000000000000000000000EE +:10A9E0000000000000000000000000000000000067 +:10A9F00018400000000000000000000000000000FF +:10AA00000000000001000000000000000000000045 +:10AA100000000000000000800000000000000001B5 +:10AA200000000000800000200403C000400000027D +:10AA30000000800000000002000080000000000212 +:10AA40000020000080000000000000000000000066 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA0000000000000000000000000000010010095 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000004501000000A000000000000096EA +:10AAF000C1000024000A00000038000000280040C7 +:10AB0000120000800000000001000C00000000871F +:10AB100001604C100408101A011048000000309A1F +:10AB200001021800003000000000020000000000D8 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000001F10005000000000000000780000FE +:10AB60000000000000500000000000000050001035 +:10AB700000020EC001000007000008000080002055 +:10AB800000000000000000000000000000000000C5 +:10AB9000000000000000000000000000F000400085 +:10ABA00000000000000000000000000000000000A5 +:10ABB000E000000000000000E000000000000000D5 +:10ABC000E0000000000C0000000000000000000099 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC300000000C0000000000000000000000000008 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000040350B0014C0AC0206825A +:10AC700003000000000040140070000000004202C9 +:10AC8000008000000008008000000010000010009C +:10AC90000000000020001000824C01102080000005 +:10ACA000800000004000000000502800000000006C +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000E800300100000000E00C5 +:10ACE00000000000A0022C00000000000000000096 +:10ACF00000102800C000100000102800000008000C +:10AD00000038000600000000000000000000000005 +:10AD10000000000000000000000000000000000033 +:10AD200000380800001400000000000000000000CF +:10AD300000000000000010000000000000001000F3 +:10AD4000000000000000100000000000E000000013 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000100000000000000000000083 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE00000000000000000000000000000000280E1 +:10ADF0001000021004000001C300002000800000C9 +:10AE000002100300000000004201000007000000E3 +:10AE100040120000080004800A2000000002000028 +:10AE200008004000100000000101800008600002DE +:10AE30001000240008300002100000000000000094 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000010002041100DA +:10AE60000000190000001000000001000000400078 +:10AE70001000010000280000000000C00040000099 +:10AE800000000600000005000000000000000000B7 +:10AE900000000000000000000000000000000000B2 +:10AEA0000000000080080000000400000000000016 +:10AEB0000000100000000000200000000200000060 +:10AEC0002000000002000000200020000000000020 +:10AED000080000000000000000000000000000006A +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF3000000000000000000000801C000000000075 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700008000000020000000000000000000003C4 +:10AF800026000D8009000000860114000000000C5E +:10AF9000800110102000008CE30108000000400038 +:10AFA0008000800ED0010085C500000000000080F8 +:10AFB00003000008E00008C003008006E000000075 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000100061 +:10AFE00000381400A000000007008000A0001040FE +:10AFF00007000C00A000100006002207A00010802F +:10B0000003801D0008000100001000010000000086 +:10B010000000000000000000000000000000000030 +:10B0200000000000000000000010200000400000B0 +:10B03000000000000000100000000000C000000040 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000170079 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000004800000000000000000000000008 +:10B10000A200000800014C80053000000000409AB9 +:10B110002260004000000180C242000000001121B6 +:10B12000121A000000000006C000400004000021C8 +:10B130001062004003300000C00200C00130000077 +:10B14000C00200000000000000000000000000003D +:10B1500000000000000000000000000000000000EF +:10B1600000000CD0010000000001080000000000F9 +:10B1700010010C400000400020010C0000380C20A1 +:10B1800010010CA000280D1A20000200000200206F +:10B1900000000000000000000000000000000000AF +:10B1A0000000000000000000000000007402000029 +:10B1B0000000000000000000D000000000000000BF +:10B1C000000200000000000700000000000000076F +:10B1D0000000000000000000D0000000000000009F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000010D +:10B2400001000000000000100000000000000000ED +:10B2500000000000000000000010000000000020BE +:10B26000000000010000200000000000000000209D +:10B270000000000180000000200080020020042067 +:10B2800000201002300092400050280011010010F0 +:10B290000030000000003908801400121001101066 +:10B2A00000300100000002911002921028103010AE +:10B2B000321002102020100020101000002000008A +:10B2C0001012100000000000101011000000000813 +:10B2D0000001010000000001001200000000001148 +:10B2E000001000000000000000100002000000003C +:10B2F00000100010000181200030100080009182B9 +:10B3000000100000001010021010000002000010D9 +:10B3100001100000020110110000000000000000F8 +:10B3200000000000100110001000000000000000EC +:10B3300000000000000014001000000000100000D9 +:10B3400000100000000004000000000004000000E5 +:10B3500000000000000002000000000000000000EB +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000030000000004D +:10B3D00000000050000000000000000000300000ED +:10B3E000000000000000000000000E0C0000000043 +:10B3F00000000000000C000500009000000000406C +:10B4000000000000000010003000300C003E040579 +:10B41000300000100010060500003804053090359B +:10B4200030013932023200050000001012021510FE +:10B4300004103015321200180000300800121006F7 +:10B440000000000516301006960018051030100593 +:10B450000000100000000000000000050E100000B9 +:10B46000000000200020000000000000002000403C +:10B47000006000009020003000001000002020003C +:10B48000000020000020003090301000202000003C +:10B49000000010200020000000003020900000007C +:10B4A000900000A0000000003000300020000000EC +:10B4B000000000000000000000000000200000006C +:10B4C000002000000020000000000000000000003C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B54000000000000000000C0000000E00000000E1 +:10B5500000000000000000000000000000000000EB +:10B5600000000A00000000000000000C00000001C4 +:10B570000040008200400E300001000C300000024C +:10B58000100030080030000000100E0430003011B0 +:10B59000021290500C0C00000210805200803C02FD +:10B5A0009000000850000200503004005070082C39 +:10B5B0005A0C280A30701E00380008013030008113 +:10B5C000B00002800EB00E800004508000008F7228 +:10B5D0000000580000008A008A0C88800000008C5F +:10B5E0008A088A800A00000800000A0000000000A3 +:10B5F000000000004000400000000A004008A800D1 +:10B60000000000001E70282C000000F00000000C5C +:10B61000000E000E0C0E80000C0000000C08000C48 +:10B620000000000000000000000000000008000012 +:10B630000000000000000E000000000000000000FC +:10B6400000000000000000000000000000000400F6 +:10B6500000000000040000000000000000000000E6 +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000300000000000006A +:10B6B000000000000000003000000000000000005A +:10B6C0000000000000000000000000020000400038 +:10B6D00000000002000240000000400200004000A4 +:10B6E00000003000000040000000000100004400A5 +:10B6F00000000000000040000000000100004000C9 +:10B7000000000002000040000012400200000000A3 +:10B710000C000002000000000000400200000002D7 +:10B720000000400200404000004000000000000017 +:10B7300000004002000000000000000000000000C7 +:10B74000000080011080140000083000900190007B +:10B7500000808042100094420400906200000000CB +:10B7600000000002000000000430000000000000A3 +:10B770000000000004002000000000000000202461 +:10B7800040000000000020004000000000002000F9 +:10B790000000000000002000000000000000000089 +:10B7A0000000300000000000200020000000000029 +:10B7B0002000000000000000000000000000000069 +:10B7C0000000000000000000001002000000000067 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000080000098 +:10B830000000000000000000000000800000000088 +:10B8400000000000000000000000000000000004F4 +:10B8500000000000000000040000000000000004E0 +:10B86000000000000000B000000000000000000C1C +:10B870000000020000000000000000000000000CBA +:10B88000000000000000000400000000008400042C +:10B89000000000000200000400000000000000049E +:10B8A0000000000400000000013000200030000013 +:10B8B0000000000000000000000000080000000080 +:10B8C00000000004000020084120000000020000E9 +:10B8D00051001030002010200000101400001054FF +:10B8E00000000000000000040000000000800000D4 +:10B8F0000000000000000020800000200000002068 +:10B900008000802210000020800080201000002095 +:10B9100080008020000000208000802000000000C7 +:10B92000000000000000B000000000000000000067 +:10B930000000000000000000000000000000000007 +:10B940000000000000000000000000000090040063 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000004057 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000100000000057 +:10B9E0000000001000000000000020100010000007 +:10B9F000000008000000000000000010000000002F +:10BA000000000010001000000000001000100000F6 +:10BA1000000000000000000000000000000008001E +:10BA200000000010000000000000000000000020E6 +:10BA300000000000000008000000002000000804D2 +:10BA40000000000400000004000082000000180054 +:10BA5000000010000000102000000000100018007E +:10BA600008001000000008000000000000000000B6 +:10BA70000800000000000000000000200800102066 +:10BA800000200030021000300010002000000020D4 +:10BA90000000102000000020000000200000002016 +:10BAA0000000000000000000000020000000000076 +:10BAB0001000100000000000100000000000000056 +:10BAC0000000000000000000000000000000000076 +:10BAD0000020000000000000000000000000000046 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB50000000000000000DF2A599C399959AC399C1 +:10BB6000A599C399A599C399A599C399A599C3996D +:10BB7000A599C399A599C399A599A599C399939C8A +:10BB8000959A939C959AC399959AC399939C959AE3 +:10BB9000939C939C93C693C663C963C993C693C68B +:10BBA00065A993C695A695A67788778877888787AD +:10BBB0007788878777887788878777888787778860 +:10BBC0007788FFFFFFFFFFFFFFFFFFFF5F500000D1 +:10BBD000000000000000FFFFFFFF00000000FFFF6B +:10BBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10BBF000FFFF000000000000000000000000FFFF49 +:10BC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10BC1000FFFFA5A5C3C3C3C333CC99999999C3C3E7 +:10BC2000999955AA9999C3C355AA999933CC9999C9 +:10BC3000C3C355AA999987D3555500000000AD5646 +:10BC4000555500000000000000000000000000004A +:10BC500000004D2C55550000000000000000FFFFC3 +:10BC6000FFFF0000000000000000000000000000D6 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000C00000000000000A8 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD00000000000000000000000D8A45EA9DCA461 +:10BCE0005EB9DCA45EB9DCA45EB9DCA45EB9DCA4F8 +:10BCF0005EB9DCA45EB9DCA45EB9DCA45EB9DDA4E7 +:10BD00005EB8DCA45EB9DCA45EB9DCA45EB9DCA4D8 +:10BD10005EB8DDA45EB8DCA45EB8DCA45EB8DCA4CA +:10BD20005EB8DCA45EB9DCA45EB9DDA43EB8DAA4DA +:10BD30003EB8DAA43EB8DAA43EB8DAA43EB8DAA433 +:10BD40003EB8DAA43EB000008C0280040C00000073 +:10BD50000C00000000000000000080240E00000025 +:10BD6000000000008C0280240E0080240E0080243D +:10BD70000E0080240E000000000000000000000003 +:10BD8000000080240E0080240E0080240E008024F9 +:10BD90000E0080240E0048804CA84C804CB84D808A +:10BDA0004CB84C804CB84D804CB84C804CB94D8050 +:10BDB0004CB84C804CB84D804CB048201E20000040 +:10BDC000000048201E2000000000000000000000CD +:10BDD00000000000000048201E20000000000000BD +:10BDE000000000008C0200000000000000000000C5 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000C0040000006E +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000A01228DCA452B8DDA4BD +:10BEA00052B9DCA452B00000000000000000802461 +:10BEB0000200802402008024020000000000000034 +:10BEC0000000000000000000000000000000000072 +:10BED00000000000000000000000008000284D80ED +:10BEE00040B94D8040B84D8040B84D8040B84C803E +:10BEF00040B84C8040B84D8040B94D8040B0000003 +:10BF00000000000000008024020080240200802441 +:10BF1000020080240200488040A84C8040B84C8039 +:10BF200040B84D8040B84D8040B94C8040B94D80FC +:10BF300040B94C8040B94D8040B84D8060B1482038 +:10BF4000122048201220000000000000000048805D +:10BF500060A94F8060B94F8060B94F8060B94F8051 +:10BF600060B94F8060B94F8060B94F8060B0000009 +:10BF700000000000000000000000000000000000C1 +:10BF8000000000000000000000000000000000C0F1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C0000000000000000000000000FFFFFFFFFFFF36 +:10C01000553300000000FFFF3F0CFFFF55AAC3C3CC +:10C0200033CCA5A5999933CC33CCFFFFF303FFFFA5 +:10C03000F505FFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10C04000BB11FFFF2727FFFFDD11FFFF0F33330F6A +:10C05000BB1100000000FFFFDD1100000000FFFF2A +:10C060006666AA555A5AAA553C3CAA55CC335A5A28 +:10C07000CC33CC3366663C3CCC335A5AAA55666600 +:10C0800066660000000000000000FFFFFFFFFFFFEA +:10C09000FFFFFFFFFFFFFFFFFFFFCC33CC336666E0 +:10C0A000CC333C3CCC335A5A6666AA555A5ACC33E8 +:10C0B0005A5A6666AA553C3C5A5A5A5ACC33AA5523 +:10C0C00000FFFBC33333015A33330000000000008C +:10C0D000000000007C7E4A7BFEA58EC76A58E21FE6 +:10C0E0004A4836CB9E9C1AE19299F2F9C2300E0969 +:10C0F0008D100000000000000000000000000000A3 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000C02000100000DF +:10C170000000C020000800000000C02000CE000029 +:10C180000000C02000D600000000C02000E6000033 +:10C190000000C020004C00000000C02000544100FE +:10C1A0000403C020886449000403C02004A30000E5 +:10C1B0000000C020009263000403C020448B0B00E9 +:10C1C0000402C020002000000000C0200010000079 +:10C1D00000004020000000140000402000C00000CB +:10C1E00000000000000000000000402000C000002F +:10C1F00000008000000C00000000C020005400205F +:10C200000000402000400000000000000000C520A9 +:10C210000403C0202493E3330403C020448B003480 +:10C2200000004020000000000000000000000000AE +:10C2300000000000000000000000000000000000FE +:10C240000000000000000000040340208CC1000436 +:10C2500000004020004000000000000000008002BC +:10C26000000080000024000000000000000000002A +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E00000000000000000000000802000000001AD +:10C2F00000048020000000010008802000000001F0 +:10C3000000088020000000010004802000000001DF +:10C3100000108020000000010008802000000001C3 +:10C320000004C720800000012810E12080000001E7 +:10C3300028108020000000010004C72080000001B8 +:10C3400080088120000000012010802000000001F2 +:10C350000004002000000000000800200000000091 +:10C3600000080000000000000000002100000000A4 +:10C370000010800200000001000080340000000175 +:10C380000004002100000000001000000000000078 +:10C390000000C934800000014004C7218000000172 +:10C3A00080080020000000000010000000000000D5 +:10C3B000000000000000000000000000000000007D +:10C3C0000000000000000000000047218000000085 +:10C3D00028100020000000000008000000000000FD +:10C3E00000008000000000010000000000000000CC +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C46000000000000000000000000000000000C00C +:10C4700000C000C0444000C000C000C0444000C034 +:10C4800000C000C0444000C000C000C7444000C01D +:10C49000000044C0C0C000C003C003C7474000C084 +:10C4A000020000E00047D75010C0E0C00041C400C7 +:10C4B00000430087C3CF004000C000C0C06000033D +:10C4C000CAC0C422E0C1E00000C00003E2E20022D2 +:10C4D000E00044C000C000040004440020C000008C +:10C4E00000000000E0000000000000000000000765 +:10C4F000E0220240030000C00300420342C00022C9 +:10C5000047C3C000000000220347000000C0000035 +:10C51000000000000000CA5383C0C3C1C713C21388 +:10C52000C507CB9383C3002220400B0002202000CC +:10C53000008008000020000020000800000000002B +:10C540002000080000200000208008000000C40136 +:10C5500080620000000000004600000000000000B3 +:10C5600000000000000000001000000000000000BB +:10C57000000000001000004000000000000000006B +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F00000000010000401100020001000040110D1 +:10C6000000200010000401100020001000040110A0 +:10C6100000200004004000841010001002040310E9 +:10C620000220001004000110002000200010002053 +:10C6300005210000012801024100002100054110F0 +:10C64000502001010404004000110000001001010D +:10C65000042000000000000401100004000020007D +:10C6600020040000000000000000000000000000A6 +:10C670000000000000000420200000900880034813 +:10C6800003100100080C120001000000022000004D +:10C690000004000000000000000004208882302117 +:10C6A000404014004040400284210000002020014E +:10C6B0000400000010040001000000000000000160 +:10C6C0000000000000000001000010000004000055 +:10C6D00000000001802000000000000004000000B5 +:10C6E00000000000000000000000008001000000C9 +:10C6F0000000000040000000000000408000040036 +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C77000000000000000000F000000C00570400F26 +:10C78000048000C00170400F040000C00170400F21 +:10C7900004000CC0017040008400128007C0400FEC +:10C7A000000112C00570400404801C00290420030D +:10C7B000F4081480021540A8842E10200964010793 +:10C7C0007C0030C7D1384007E4F00CC00A40800438 +:10C7D00060B834C009B8000FE48000070108608425 +:10C7E00000D00181020000200000080000000000CD +:10C7F00000000000000008400000080900000820B8 +:10C800000078000000001E00004848000000000002 +:10C810000000080000000000000000000000000010 +:10C8200000781400000000000050200000000220EA +:10C830000002080000702000044820C001710E4072 +:10C84000043013CA5170400000000000D0722083F1 +:10C85000010000C001709ECF038414000000800816 +:10C860000002140000000110023E1004400022608B +:10C870001800000EE00017D0032C140AD00222602A +:10C880000000000440000000000000000000000064 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000040036030004025 +:10C90000001C0000000001200108000000000000E1 +:10C91000000800000000018005380000E000004031 +:10C9200000300080E700004000480007031000804E +:10C9300003400C30038000C0C308000000081C81C5 +:10C9400003C04024E3001CE000400003600034808A +:10C95000017800043641008001300003623000207D +:10C96000036008A70138143001000000223C0200D7 +:10C97000000000000000000000000000003802007D +:10C980000000028001001000C0020080053816007F +:10C99000C002080000301600000000000000000087 +:10C9A00000000000003400000000000000081C002F +:10C9B00000002C80100802000008080010300C0154 +:10C9C000C11C41021080500001082C07100000001B +:10C9D00041480870320000030108000700001441BC +:10C9E000200000070010102001000E80030810082E +:10C9F000500102000201800FF07506000000B60B26 +:10CA0000C0000200022C800C500100000000000059 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA80005044100000000002402400000040002834 +:10CA9000C006082000080002402400000040002CCE +:10CAA0008006008000200028C8060050000C00010D +:10CAB0004C04084020020038A0040820008000A296 +:10CAC000A0001D00008000010030140002080003D7 +:10CAD00000200C400008000400A0004000000010EE +:10CAE000040400000044018400000040080000002D +:10CAF00000010000100000000000000000000480A1 +:10CB000000080000800043000800700000002000C2 +:10CB1000000C000000001000004090010000000028 +:10CB2000000000000000000000001D0000000000E8 +:10CB3000000C100000004000000000000000010098 +:10CB400000409120000000000100002000000008CB +:10CB50000000112400080020100020280000200000 +:10CB60000000B820080000080000181000000000B5 +:10CB700000003800040024808A00200400800000A7 +:10CB8000008024000000048000300000000000004D +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC000000000012E00000C004F00007E00000C0D7 +:10CC100001700007E00000C001700007E00000C0E4 +:10CC200001700007E00000C001700087E10000C053 +:10CC30000068008CE1381DC001780087E80000D052 +:10CC400005700200EE000C0000F0C200903800C039 +:10CC500009B00000000C2C80010C000006020C0042 +:10CC60000008080FE6783080057002A009B00020A7 +:10CC700000000080200000000000000006000C0002 +:10CC800008000000074000000002008001001406B8 +:10CC90000002092008481D00000000800840000331 +:10CCA00018000000000000000000000000280C0038 +:10CCB0000000000000700C0000002740070000008A +:10CCC000A000818000001410100080000800800681 +:10CCD00000110100083C140602092E0700001C0781 +:10CCE000C0668FC00300120441000000000002C0B3 +:10CCF000000022000E00100820011C8001005C04CE +:10CD00004812232008901C071000234006000C073F +:10CD1000E000000000000000000000000000000033 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD8000000000000000800428792CC00380800788 +:10CD900078392CC00BF8000770782CC00BF880078E +:10CDA00078392CC00BF8000770782CC00BF80007FE +:10CDB00070502C80F260000C907909000AC00027A6 +:10CDC0007068008F0338204071001CFA05000107CD +:10CDD0002003148009800002000810800970000FF1 +:10CDE00060383D005270200004081E0FD000008003 +:10CDF00001802C80F300002000010000C0380000FA +:10CE000000004000A000000000383C3A0000000094 +:10CE1000000000000000064000280D10000000A0E7 +:10CE20000138BC08C0000000000000000000000045 +:10CE300000B410000000000000382100000006408F +:10CE400009010E000001021700501E80F1000007CA +:10CE500000001E160080024400001616C0400000AC +:10CE600000501E2000000264008000200802000321 +:10CE700000000000000000000080000000000C80A6 +:10CE8000610000044000020000101C2FF00002406E +:10CE90000028402FF0020000000000000000000009 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF100000000000000000000010000010000000F1 +:10CF200000000000100000000000101010000020A1 +:10CF3000000000001200300000000020103000103F +:10CF40008040104008502000200C0000505030401D +:10CF500020482028080820104040202014000050BD +:10CF60000020004090000040102030000000002011 +:10CF700000200200000440000030004000000000DB +:10CF800000000011000080001114002020000000AB +:10CF9000000050004040200200001004401001102A +:10CFA0001201000000100100010084400100801007 +:10CFB000041010040000004028008480090008804C +:10CFC0002040808020000030880080802000800089 +:10CFD000208080004440000000202020400000000D +:10CFE0000010000000000000000000100010000011 +:10CFF00000000000140000100010100000120012C9 +:10D0000000001000000200100010000002100000DC +:10D0100000000020020004020000000000000000E8 +:10D0200000000000000200000000000000000000FE +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D0900000000000000D0000000000000030000053 +:10D0A00010000000000000003000700000000030A0 +:10D0B000100000000000000030001000000000061A +:10D0C00010100000000A16000430687000400000D4 +:10D0D0001020000D00007000900400300000000DD2 +:10D0E00010000000050D5000300000700D70300081 +:10D0F00050000000054D00A8A00C60000010000DBD +:10D100004000700E0C00001A00007000303000B0BB +:10D1100000000000090030706000000000000060A6 +:10D12000003000303005900090200000705000006A +:10D130000000900000200850000000A00809000036 +:10D14000080878000079084000B800300809480055 +:10D15000000500000009404A0800005C005D4840EE +:10D160000800000C002040000240A0A008A50030EC +:10D17000A0300000000000001000001000100000AF +:10D180004810000000000000400000000000000007 +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000080008E +:10D22000000000010000000000004E0000000000AF +:10D2300000000000000000200000000004000000CA +:10D2400000000000000000001010001080000140ED +:10D25000100000400000001030200030005000009E +:10D26000300020000900011100020290210001118C +:10D27000000210000100012100100801010D014011 +:10D28000003A401000000E000100000840001000AD +:10D290004C00003E100E0070004030002A102000AC +:10D2A0000040000030000C000878000000000C0076 +:10D2B0000C4030300400100000000100400000303D +:10D2C00020002420080100201020A12000010020BF +:10D2D00020702120000010003120100001300001DA +:10D2E00000303131110000010000000A0000000090 +:10D2F00001000000000000000000000000000A0023 +:10D30000000000000B00000400000000000000000E +:10D3100000000000000000000000002004000404E1 +:10D3200000000000000000000000000000080000F5 +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D37000000000000030000000000000000000007D +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000040202D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000020000000300D +:10D3D0004000200040100040000000000000A000BD +:10D3E000000000200000000000000000000000001D +:10D3F000000000200000000040000000400000008D +:10D400000000000000000C00000000000000000010 +:10D41000000000100001400000002020000040003B +:10D42000000020008041400080002C00002000000F +:10D43000000020000030000000000000000030006C +:10D44000200040008020000040000030004000002C +:10D45000000000300080000000000000000000001C +:10D46000000000000040000000000000000000007C +:10D47000200000000000000000000000000020006C +:10D48000000000000000000002000000000000009A +:10D49000000000000000000000000000000020006C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F00000000000000000000080000000000000AC +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000002000000000000000000000000000DB +:10D53000000000000000000000000000000000806B +:10D5400000000000000000000000000000000000DB +:10D55000000000001000800000900020000000008B +:10D56000000060000000000000000000000000005B +:10D5700000000000000000000000000000000000AB +:10D5800000000000800000200000020000000000F9 +:10D59000000000000100008000000020800080608A +:10D5A00000300020800080201020000090008220A9 +:10D5B000004000008000802000B00000000000005B +:10D5C0000000B000400020802080000000000080AB +:10D5D000002000000000008000200000000000008B +:10D5E00000000000002000000000000000200000FB +:10D5F000000000000000000000000000000000002B +:10D60000000080000000000000000020000000007A +:10D6100000000000000000000010002000000000DA +:10D6200000004000000000000000000000000000BA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D67000000000000000000000000080000000002A +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000001000000000000000006A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000020000000000000003A +:10D6D0000000001000000010000000000024000006 +:10D6E000000000000000000000000010000000002A +:10D6F000001000000000000000000010000000000A +:10D7000000000000000000100010002000000030A9 +:10D710000000000000000000000000404000113048 +:10D720000000002000201130000000200000001048 +:10D730000000002000000000000000200020100079 +:10D74000000000000000E00100008200100000C2A4 +:10D7500000000000000000000000000000000000C9 +:10D760000000000000000000002000000000000099 +:10D770000020000000000000100000000000000079 +:10D780000000000000000000000000000000002079 +:10D790000000000010000000000000000020002039 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000FFFFFFFF000000000000000000009C +:10D8900000000000000000000000FFFFFFFF99995A +:10D8A0009999A5A533CCC3C399999999C3C3C3C307 +:10D8B00033CCA5A5C3C39999C3C3999955AA33CCB1 +:10D8C0009999A5A5A5A5FFFFFFFF00000000000096 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F00000000000000007C03333000000000000FB +:10D9000000006B66555500000000000000000D0689 +:10D91000555500000000FDC3FF000000000000009E +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000040000000000000000000000C3 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA000000000000000080240E0000000000000064 +:10DA10000000000000000000000000000000802462 +:10DA20000E0048804CA94D804CB84C804CB84D80BD +:10DA30004CB84C804CB84D804CB84C804CB84D80A4 +:10DA40004CB94C804CB84D804CB180240E00000085 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA70000000000000000000000048201E20000000 +:10DA800000000000000048201E20000000000000F0 +:10DA9000000048201E200000000048201E2000003A +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD00000000000000000800000000000000000C6 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB50000000000000000000000000000000802421 +:10DB600002000000000000000000000000000000B3 +:10DB70000000000000000000000000000000802401 +:10DB8000020000000000488040A94D8040B84C8051 +:10DB900040B94D8040B84C8040B94D8040B84D8070 +:10DBA00040B94C8040B84D8040B94D8040B148806C +:10DBB00040A94C8040B84D8040B94D8040B84D8060 +:10DBC00040B94C8040B84D8040B94D8040B94C8040 +:10DBD00040B94D8040B0000000000000000000008F +:10DBE0000000000000000000000000000000000035 +:10DBF000000000000000000000004820122000008B +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC50000000000000000000000000C00000000004 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000FFFFFFFF0000000000000000000038 +:10DCF0000000000000000000000000000000000024 +:10DD00000000FFFFFFFF000000005A5A5A5A5A5AFB +:10DD10003C3C3C3CAA555A5ACC333C3CAA555A5A36 +:10DD2000CC335A5A6666CC333C3C5A5A66666666B1 +:10DD3000AA553C3C6666CC336666AA5566665A5A56 +:10DD40006666AA555A5A3C3C666666665A5AAA5591 +:10DD500066666666AA55AA553C3C000000000000B5 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000001DE0A6 +:10DD8000333300000000000000000000000000002D +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000400000100000001000000000000AC +:10DE700000000000000000000000000000000000A2 +:10DE80000000600000010000000000000000000031 +:10DE9000000000300000402000C000000000000032 +:10DEA0000000000000000000000000100000402002 +:10DEB0000040000000000000000000000000000022 +:10DEC0000000000000000000000000000000000052 +:10DED0000000800000008000000A00000000000038 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF000000000A01040280000C260000000000004E +:10DF100000000000000040200050000000008000D1 +:10DF2000002400000000800000220000000000002B +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000004000800000000800000069 +:10DFF0000000000000000000000000000000000021 +:10E00000000000000000440080000000400000000C +:10E0100000000000000000240000000000080000D4 +:10E0200000000000000000000000000000000024CC +:10E0300000000000000800000000000000000000D8 +:10E0400000000000000000000000000000000000D0 +:10E05000000000000000800200000001000000003D +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E0800000000000000081020000000120000000EC +:10E0900000000000000000210000000000008002DD +:10E0A00000000001000080100000000100000000DE +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E16000000000000000000000000000000000802F +:10E1700000C80000000000000000000000000000D7 +:10E180000000000000000000000000000000C88047 +:10E1900000000400000000000000E0000000440057 +:10E1A00000C00000000300000000040000030000A5 +:10E1B000000000000300E0E200400000000000005A +:10E1C0000000032000000000000003200000000009 +:10E1D00000000320000000000000A300148000C025 +:10E1E000A00310000000000000000000000000007C +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000030000000B +:10E2100000000000000000000000000002000000FC +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000020000000000000000000000001C +:10E30000000000000000000000000000000000000D +:10E3100000000002000000000002000000000000F9 +:10E320000400000000400000048000200000000005 +:10E3300000800020000000002000004000200401B8 +:10E3400000000000000002000000000000000200C9 +:10E3500000000000000002000000000000000201B8 +:10E360000004019000080000000000000000000010 +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000002008B +:10E390000400000000000000000000000000000079 +:10E3A0000400000000000200000000000000020065 +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E470000000000000041000000000000000000088 +:10E48000000000000000000000000000000000008C +:10E490000000000000280000000000000000000054 +:10E4A000A000002000B808080000000000000000E4 +:10E4B000000101000000000000011E00A0800C0609 +:10E4C00000160005003800C0011002C50100400020 +:10E4D00008100085100800C0C1104005000C0000A5 +:10E4E000003C022300800000000016000008000825 +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000E00F0F0000000000000000000000D +:10E520000000000700000000000000008080540090 +:10E5300000000000800210000080000000000000C9 +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000040000000000000BA +:10E62000000014000002008003780201200008802E +:10E6300001000001A000020000000001C000000075 +:10E64000C010220000900600604010002042000030 +:10E65000000014000040000000402C0308400007A8 +:10E66000E00C94270110008503082800000000003A +:10E67000004040000000000000000000000000001A +:10E68000000000000000000000000000000000008A +:10E690000000000000001000000000010040000029 +:10E6A0000000000000000002003010200100000007 +:10E6B000203800000014000000382800000000008E +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000280071 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000001000300000400000C00227 +:10E7B000180003400400C0001000010000004008E1 +:10E7C000100008000001200210000A0412200600B8 +:10E7D00000280484002000810028010C41008404EA +:10E7E00000288004020110002400241C0000000105 +:10E7F00000000100000040000000000000000000D8 +:10E800000000000000000000000000000000000008 +:10E810000000000000000000000020000000980040 +:10E82000000A0000000000000000001400081400AE +:10E8300000000000800108000000000080000800C7 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E9000000401000000000000000000000000000B7 +:10E9100000000000000000000000000000000000F7 +:10E920000040000000000000000000001000000097 +:10E9300000A8000000000600000000000000060023 +:10E94000060028000002000006280E0000020090C9 +:10E950000300000F0001278314000000E001000FF6 +:10E9600000000001E00106000008420020150C4FE5 +:10E970000000AC04C800000000000001000000001E +:10E980000000000000000000000000000000000087 +:10E9900000000000000000000000000000000E0069 +:10E9A000008220070040000000000000000000007E +:10E9B00000000020000000000038100000040000EB +:10E9C000004020000078000000000000000000006F +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA8000000000000008000000000000000000007E +:10EA90000000000000000000000000000000000076 +:10EAA000000000000038000000000000000000002E +:10EAB000200001C001803C00200000C001000000D7 +:10EAC000200000000000000020000F000080000077 +:10EAD00020000660E0101066000086007008000844 +:10EAE000000A0004042C1016000201C001801C441E +:10EAF0000200008401002C08C0010000000000009A +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000001000008000200080000000000000B5 +:10EB3000000000080000000000000000600201006A +:10EB400000000000701000000080000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC000000000000000000200000000000000000E4 +:10EC10000000001000100000000000402000002054 +:10EC200020000000000420000000000000000000A0 +:10EC30000000000020002000200000042010202000 +:10EC40000000523030103224101020101410012017 +:10EC500030200040301000204000405230100008AA +:10EC600030300200500000001004000020100000AE +:10EC700080400000000101001200100000100000A0 +:10EC8000001000010000000004000400001000104B +:10EC90000000000000000000000000000010000064 +:10ECA0000000000000000001000000010001101041 +:10ECB00010041010000000011010100000001010CF +:10ECC0001000008010010010000000000000001083 +:10ECD00000100010100000000000000040000000C4 +:10ECE0000000008000000000000000002000000084 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000E00000000000000000000000065 +:10EDA000000000000000000E0000000E0000000047 +:10EDB00000000D0000000000000000000000000046 +:10EDC00000300000000010103030005030100010F3 +:10EDD0003030004C30004040303040400060402037 +:10EDE000103040441010406010404040000060600F +:10EDF00060007040606000606040A0700EB0007005 +:10EE0000003000600E00000000107A0000000A9040 +:10EE10000A1000300000000000000A00000000009E +:10EE20000030000000B00000000000000000000002 +:10EE300000001030100030100000000030103000D2 +:10EE40000000303030B000B03000003000B0500072 +:10EE500050000030703050101000300000B0000042 +:10EE60000000000000B000B05000000000000000F2 +:10EE700000000E0000000000090A0E000000000063 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF000000000000000000000001000100000120DE +:10EF100000010000000101000001010000000000EC +:10EF20000001013020000021200001000004200029 +:10EF30000000000000000000004000402000200011 +:10EF40002040000020002020004018303000382CE5 +:10EF5000400010404C400C31103000303000003088 +:10EF60001050303C1000000030100C001000000069 +:10EF7000000C0000104002002010020003040C00EE +:10EF80000C000000000002000000008C0080000067 +:10EF90000800040000000000000000000000000065 +:10EFA0000000000000000000000000000000000859 +:10EFB0000A00000C00080000000C00000000000C1B +:10EFC0000000000000000000000000300008000009 +:10EFD00000000000000000000000000000008000B1 +:10EFE00000000000300000000000003000000000C1 +:10EFF00000000000300000000000000000000000E1 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000010000000000000000000000000000060 +:10F0A00000000000000000000000A00000000000C0 +:10F0B0000000000000000000000000000000000050 +:10F0C0000400202000000000040020004400200074 +:10F0D000440040000400A0000400000000002000E4 +:10F0E0000000000004002400000020028000004016 +:10F0F000003000028000000000000000004000001E +:10F1000000000000200000000000300000000000AF +:10F1100000000000000000000000080000000000E7 +:10F1200000010000000000000000000000002000BE +:10F130002000380000000000000000000000004037 +:10F14000000000000000000000003000000000008F +:10F15000001030000000000000000000000000006F +:10F1600000008000000000000000200000000040BF +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F21000000000000080000000000000000000006E +:10F22000000000000000000000000000000060007E +:10F2300000000000000000000000000000000000CE +:10F24000000000200100800001000000010080009B +:10F2500021008000210020000100A000010000200A +:10F260000100800400000000010000000000000018 +:10F270002020002000B0000020200000000000003E +:10F280000000000000000000800000008020B000AE +:10F29000000000000000000000000000000001006D +:10F2A0000000000000040000000000080030000022 +:10F2B00000000000000081000000000000000000CD +:10F2C00000000010000000000000000000008000AE +:10F2D000000000000090800000000000000000001E +:10F2E000000000000000300000000000000070007E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F33000000000000000004042000000000000004B +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C00000000000002000200000001000200000CD +:10F3D00000240000002000000004000000200000C5 +:10F3E0000004002000040004430000000000180096 +:10F3F0000004180000200800002008000020000081 +:10F4000000000000000000000000000000000020DC +:10F410000020A1000000000000000000000000002B +:10F4200000000000000000000000000000000004D8 +:10F430000020100000001000100000C200000000BA +:10F4400000001000000000000000000000000000AC +:10F45000000000C200000000002000C20000000008 +:10F46000000000000000000000000000000000009C +:10F47000000020000000000000000000000000006C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F570000000FFFFFFFFFFFFFFFFFFFFFFFF000097 +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F00000000000000080240E0080240E00802402 +:10F700000E000000000000000000000000000000EB +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F87000000000000000802402000000000080243E +:10F8800002008024020000000000000000000000D0 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C000000000000000482012209004000000000A +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000C0000000000000000017 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F00000000000000000000000FFFFFFFF00000B +:10FA00000000FFFFFFFFFFFFFFFF000000000000FE +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000478AFF007777F8 +:10FA5000FFFF0000000000000000000000000000A8 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000283 +:10FB800004028000280408040403C02088640000E4 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC00000000000000000000000000000002A000B +:10FBD000040300008C010000000000000000000091 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000008300000000010004E12280000001E7 +:10FD100028100000000000000000000000000000AB +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD5000000061008000000028000000000000009A +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE8000000000000000C0030000C00300C0C40365 +:10FE900083C844C8C3C30000000000000000000085 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED000000000000000C800C40000000000000096 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040003F7 +:1000000000000000000000000000100100408048D7 +:100010000020000184000080840C0000000000002B +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:1001900000046C0000000000000A150000000000D0 +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D0000000000000000000000000000000080017 +:1001E000007A800000000000000000000000000015 +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:100310000000000000141000000000000090150014 +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:1003600000001C0000380001000000000000000038 +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:1004900000000000000000000080000000000000DC +:1004A0000024000000000000000000000000000028 +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000820000200000000000006A +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000001E00BC +:100620000000000000301400000000000000000086 +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000080000047E +:10067000E00000000000000000000000000000009A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A00000340D0000000000003870000000000060 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000020007 +:1007F00000300020000200000000000000000000A7 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000400000000000000000A7 +:100910000000004000000000402000001000000027 +:10092000000000201000000004000020040000046B +:1009300000040000000000000000000000000000B3 +:1009400000000000000004000000000000000000A3 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000100000000000000000000000000057 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000000000000000000000000095D +:100A90000000000000000009000000080000000045 +:100AA0002000000000000000200000000000000600 +:100AB000000900020060000050700000000000000B +:100AC000000A7000000000000000000000000000AC +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000500000001 +:100AF00000000000000000080000000000000000EE +:100B000000700000000030700000000000000000D5 +:100B100000000000000000003000000000000000A5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000001000000000000000100000000000003 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000030B4 +:100C100000000000000000000000003000000001A3 +:100C200030100000000000000A000030000000004A +:100C30000000001008000004000C0000000000008C +:100C4000000000000000000000000000000008009C +:100C50000000000000000000000000000000000094 +:100C60000000000200000000000000000000000082 +:100C70000000000000000000000000010000000073 +:100C80000000000000000000000000000000000064 +:100C900000000000000000000000000080000000D4 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D900000000000004000000000000000400000D3 +:100DA0000000000000000000000000000000000043 +:100DB0000000000200000000000000200000000011 +:100DC0000000002000020000000000000000000001 +:100DD00000000000000030000000000000000000E3 +:100DE0000000000000000000000000000001000002 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E10000000000000000040000000000000000092 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E40000000000000000080000000000000000022 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F40000030000000000000000000000000000071 +:100F500000000000000000000000B00000000000E1 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000100000000041 +:100FA0000010000000000000000000000000000031 +:100FB0000000000000000000000000000000000031 +:100FC00000000000000000000000003000000000F1 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000040000000000000000000000000A0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B00000000040420000000000000000000000AE +:1010C00000000030082000000800001000000000B0 +:1010D00000000000000000000000000000002000F0 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:10112000000000000020000000000000000000009F +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B00000000000000000000000000000004000DB +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E000000000000000008000000000000000006B +:1025F00000000000000008000000001000000000C3 +:1026000000000000000000000000000000000010BA +:10261000000000000000008000000000000000003A +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:10275000000000000D00000000000000000000006C +:1027600000000000000000090C00000008000E003E +:10277000700000000000000D70000800001A0C102E +:10278000000D080000003A00009D0C000C0000B095 +:102790000CB0A030B0000000AC0008000000000D3C +:1027A0005000000E00B000B00000007000000000FB +:1027B0000000000000000000000000000000000019 +:1027C0000000000900000000000000000000000000 +:1027D00000000000500000000000000000000000A9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C00000000000000010000000000000000000F8 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000001000030B7 +:1028F00001000000000000000000000000000000D7 +:1029000000800100000001000100800000000100C3 +:102910000100000001000000000000000100013083 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A500000000000000000000000000000008000F6 +:102A600000000000000000000000800000000000E6 +:102A700080000000000000000000000000000000D6 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000001000000000000000000016 +:102AB0000000000000000000000000001000000006 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000030000000000000000000C6 +:102AE00000000000000000000000000030000000B6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000003000B5 +:102BF00000000000300000000000000000000000A5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000040000000000034 +:102C60000000000000000000000000000000000064 +:102C70004000000000000000000000000000000014 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000100013 +:102DB0000000000000000000000000000000000013 +:102DC00000000000100000000000000000000000F3 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB00000000000000000000000005005000000BC +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:103130000000000000280000A000000000000000C7 +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000004B3 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC9000000000000000000C000000000000000098 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C43000000000000000000000000000000000807C +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A00000000000000000000000482012200000F1 +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C7200000000000000000000000000000004123A5 +:10C730003333000000000000000000000000000093 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B00000000000040200000C0000000000000066 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000011000000000010000000D5 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000300000072 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400004000000000000000000000000000000DF +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC00000000800003480000000000000000000A6 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D040000000000000000100000C000100000000D2 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C00000000000000000000000800000000004DB +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000002800B5 +:10D3500000000001000000000000000000000000CC +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000008000000000000000000C2 +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D000000000000000000000000C00000000003D +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000400000000000000000000000032 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000010000000000000000B3 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A0000000000000000C000000000000009000C0 +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000010000000000D9 +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040004F6 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000030000000000000000000000000094 +:101950000000000000000000000000000000000087 +:101960000000010000000000000000000000000076 +:101970000000000000000000000000000000000067 +:101980000000010000000000000000000000000056 +:101990000000000000000000000000000000000047 +:1019A0000000010000000000000000000000000036 +:1019B0000000000000000000000000000000000027 +:1019C0000000010000000000000000000000000016 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD000000000000000301900000004C0CF000027 +:101DE00000000000000000000000000000000000F3 +:101DF000000000000000F039000000048000000036 +:101E000000000000000000000000000000000000D2 +:101E1000000000000000F039000000048082000093 +:101E200000000000000000000000000000000000B2 +:101E30000000000000003019000000048054000081 +:101E40000000000000000000000000000000000092 +:101E500000000000000090390000000090820000A7 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F500000000000000000000000C0280000800019 +:101F6000008B0000000000000000000000000000E6 +:101F700000000000000000000000C02800008000F9 +:101F800040E300000000000000000000000000002E +:101F900000000000000000000000C02800008000D9 +:101FA00040E300000000000000000000000000000E +:101FB00000000000000000000000C02800008000B9 +:101FC000408700000000000000000000000000004A +:101FD00000000000000000000000C0280000800198 +:101FE00000E300000000000000000000000000000E +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F000030080C0D3C30000000000000000C8053A +:10210000C1C0C00003C0E000C9C0039383C3C000C6 +:10211000CBC0C080C08300000000000000000000B1 +:102120000000C8C0000780000000C4C3C1D3000085 +:10213000C5C0C0C300930000000000000000000004 +:1021400000030300CB000003000313C3E1010005FB +:10215000002303C393070000000000000000E0001C +:10216000C00000000013C000C5C5030000D3A000DC +:1021700080C0C003E0EB0000000000000000000091 +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:1022700000000000200080408028000000000000D6 +:102280000000000041041000402000002002200453 +:1022900084900100202010041003000000000000C2 +:1022A0000000000000000002000080000000000CA0 +:1022B000210200004004010A0004000000000000A8 +:1022C00000000000000820004000000100800028FD +:1022D000200100000000021180000000000000004A +:1022E000000000008000000000008000401002009C +:1022F0000004000080408008000000000000000092 +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00004002C200000000004002C20000000004D +:1023F0000000000000000000003400200000000584 +:102400000428002000000000040830000000000044 +:10241000047820200000000004782020000000053F +:10242000043012000000001000011C000000001029 +:102430000448002000000000040000000000000527 +:102440000408080000000000003100000000000047 +:10245000040000000000000004000000000000056F +:102460000000002000000000000000000800001034 +:10247000042C000000000000042800000000000000 +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000600000000000000065F +:102570000000000020008004000000002000000394 +:102580000000800D674000C60000002002808044EB +:1025900000000000020028E601000000000028E61C +:1025A0000000800D0700800100000000E00002E054 +:1025B00001000000030001E4000000002700800487 +:1025C0000000800D078096C10000008085009040CB +:1025D00000000080070001E6010000000000810407 +:1025E0000000800D270000C60500002023000081A8 +:1025F00001000000030000E100000000C74080036C +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E0000000000000000000000064000000000086 +:1026F0000000010400000000000160000000000074 +:10270000000300000000002208024020000000003A +:1027100000002020000000000C002000000000004D +:102720000002000000000000001010200000000067 +:102730000800000800000000000000000000000089 +:102740000080600000000000080010200000000071 +:1027500008101020000000002000C1000000000050 +:102760000004001400000002080100040000000042 +:102770000001C000000000000002C80000000000CE +:1027800020004000000000000000000000000000E9 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:1028600000000000000000000000800C800100005B +:102870000000000080010100000000008015000140 +:10288000000000008000000700000083810000C0FD +:1028900001000080843914C30100000082159400F7 +:1028A000050000A0200080000000408727000027CE +:1028B00000000080E0010006050000A080019C03EC +:1028C000050000A0803900060000800C83011C2652 +:1028D00000000080E30100270000000086000803DC +:1028E000050000A0E03800C601004003E30000003E +:1028F00001000000830109C104000000E6001CC1C2 +:102900000100000026001C0700000000000000007D +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000004E3 +:1029F00000000000000000000000000000000000D7 +:102A0000000000000000000000000020000000079F +:102A10000000340008000000000200200800000050 +:102A200000003C000000000000803C000000000AA4 +:102A300004000020000000000000800000000000F2 +:102A40000000010000000000000000000000000481 +:102A50000080810000000000000000200000000055 +:102A6000000000000000000000010000000000075E +:102A700000010E000400002000001500000000000E +:102A8000000001000800000000000100000000003C +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B800010000000008000000000401000800000E5 +:102B900008101030080840004020000244800088DF +:102BA0000000001018100890080000002800000025 +:102BB000205800200000001000100002000010004B +:102BC0000044000020000800205010400800800051 +:102BD00002202030200211203014010010001000CB +:102BE000004008201010101000001010000010000D +:102BF0001000002010001000000808021001100052 +:102C0000000100000408041010190018100C101026 +:102C10000818000000010010001800000010041443 +:102C20000014000000040000000000040000000088 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000100000000000000000000C3077 +:102D100000000D0050301C3000040000000060B0C6 +:102D20000DB0000C590EB036101000020000060065 +:102D30005000000D0030500050B00030093050708D +:102D400000B0000000000EBA00000800001010B92A +:102D50000009A000000000300000100030307000BA +:102D60003000300000000870003A100000003D30D4 +:102D700000001000380000000A0A00B0050808052D +:102D8000001900000060B5B670080010351400345A +:102D90000008001200100000000000000000700099 +:102DA0000A00000000000000000000000000000019 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E800000000A00400000000000000000300000C8 +:102E900000002100003000000000012000001000B0 +:102EA0003000000C34300030000000000000003022 +:102EB0000000000020000000002000204041000031 +:102EC0000000000C0000000000200A00300000415B +:102ED00000310030004020000C002010300C083A77 +:102EE000300C08000000000000300010000000005E +:102EF00000000000000000000100002000000000B1 +:102F000000800A0C00880000000400000500040A8C +:102F1000000C00000004000000000000000C000095 +:102F20000000000000000400000400000004000095 +:102F30000000000800000000000000000000000089 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00002000200000000000000000000000000CD +:1030000002040000000400000000020000040004AC +:10301000020000000000000002400200000000006A +:103020000004020000040000000480000000000012 +:10303000020002000044000012400A0000040000E8 +:1030400000000200800000000200000000040000F8 +:10305000020002000040000000400200402000008A +:103060000000002000000000000000080008000030 +:1030700030400000804000000040000002000000DE +:103080000000004002400004024002000100000075 +:1030900000400000000400000004020000000000E6 +:1030A000024002000000000000000040000000009C +:1030B000000002400040000000000000000000008E +:1030C00030000000000000000000000000000000D0 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000001000000000000000000000000000C0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:103170000000000004000400000000000000000047 +:103180000000000004000000000000000000040037 +:103190000000000004000000000000000400040023 +:1031A00000000000000004000000000000002000FB +:1031B000000000000400040000002000440004009F +:1031C00000000000000004002000000004000000D7 +:1031D000000000000400048000002000080004003B +:1031E000208000000000000000000000000000013E +:1031F00000010000801000002000040000000030EA +:10320000040004000000001004100000040004008A +:1032100004000000000000000000000000000400A6 +:103220000000000004000400000000000000000096 +:10323000000000000000040000000000000000008A +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000400000000000000000000E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000008000000080000AD +:10331000000000000008000800000000000200009B +:103320000000000000020000000800080008000083 +:10333000000800000000000000000000000820005D +:10334000000008000008000000000000000200006B +:103350000000000000080000000000000000200045 +:103360000400000000000000000000100000000049 +:103370000000000000000000000000000000040049 +:103380000000002000000400000000000008000809 +:103390000000000000000000000000000008000025 +:1033A00010080008000000000000000800020000F3 +:1033B000000000000000000000000000000000000D +:1033C00000000000000200001000000000000000EB +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:103640000000000000000000000000000000030077 +:10365000000000000000000000000000000000006A +:103660000000000000000000000000000000010059 +:10367000000000000000000000000000000000004A +:103680000000000000000000000000000000010039 +:10369000000000000000000000000000000000002A +:1036A0000000000000000000000000000000010019 +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000100F9 +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:1037600000000000000000000000000000000080D9 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D0000000000000000000000000000000482080 +:1038E00012200000000000000000000000000000A6 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A6000000049593333000000000000000000004E +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE0000000F03900000004C0CF0000000000001A +:103AF00000000000000000000000000000000000C6 +:103B00000000B03900000004800000000000000048 +:103B100000000000000000000000000000000000A5 +:103B20000000B039000000048054000000000000D4 +:103B30000000000000000000000000000000000085 +:103B40000000301900000004100000000000000018 +:103B50000000000000000000000000000000000065 +:103B60000000E03900002001108200000000000089 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE0000000600000010000000000000000000074 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C6000000000000000C02800008000008B000061 +:103C70000000000000000000000000000000000044 +:103C8000000000000000C0280000800040E30000A9 +:103C90000000000000000000000000000000000024 +:103CA000000000000000C028000040004087000025 +:103CB0000000000000000000000000000000000004 +:103CC000000000000000C0280000800000E30000A9 +:103CD00000000000000000000000000000000000E4 +:103CE000000000000000C4280000000000E3000005 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000004400800000000800000087 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF0000000000000000000000000000000C1D32F +:103E000003C30000000000000000C0000080C4C127 +:103E1000C0D3A007CB03C7CBE383C000C58383CB4C +:103E2000CBC30000000000000000000000001300F1 +:103E3000C3000000001303C3C78100070003018310 +:103E4000D703000000000000000000000000E0C0F8 +:103E500000CB010003C0C8C300C1130003C0A0E32E +:103E600000C10000000000000000001300C31300A8 +:103E70000000000781C3C013002300C5C301030075 +:103E8000CB00000000000000000000000000000067 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000100000000D1 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000504004050000000000000000010097 +:103F9000000400058010000002010208400A010030 +:103FA0002003A001080C0000000000000000000039 +:103FB00000000000A000000000002090400500006C +:103FC0000001200A00800000000000000000000046 +:103FD0000000001000012000040200840011000015 +:103FE0000840000200050000000000000000000082 +:103FF0000005000000000000A01101000000000406 +:104000001201040040000000000000000000000059 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:10406000000000000000000000000000000000014F +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000004001000BC +:1040F0000000000000790000000000000000000047 +:104100000000000004000E0000000005002900006F +:10411000000000000001000000000000003000006E +:104120000000000004001620000000050028000028 +:104130000800000004306C00000000100000DC00EB +:104140000000001000010000000000050428080025 +:1041500008000000003000200000000004380020AB +:1041600000000000042800000000000500280000F6 +:1041700000000000000000200000000000390000E6 +:1041800000000000002C0000000000000000000003 +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F0000000004002080000000200000000000073 +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:104270000000100100000000E0000003000000004A +:10428000E000100100000000000000010000800DAF +:104290002740002001000080250000200100008050 +:1042A000870000E001000000000028E60000800D0B +:1042B00027403086010000800540004600000000D5 +:1042C000600102E301000000830000030000800D94 +:1042D0000740028601000080654000060000008063 +:1042E0000740142601000000C04080040000800D3B +:1042F0002740002101000080250000C305000020A8 +:1043000083408027010000806500800300000000DA +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:1043700000000000000000000048280020000000AD +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000098000000000000008000A5 +:104400000000000000019000000000000000C0005B +:10441000000000200804800400000000080480144C +:1044200000000000181080000000000000040000E0 +:104430000000000028018000000000000800C020EB +:104440000000000000000100000000000002C000A9 +:104450000000002808820008000000000801402039 +:104460000000000000001C000000000020042010DC +:10447000000000080805800000000000080300009C +:10448000000000000080010000000000100020007B +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F0000000000000000000000000000840000074 +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000800C8001A000000000008E +:1045800080011C07000000008001A0000000000066 +:10459000C001000300008005C32914C10100008090 +:1045A000C339004100000080C1010007050000A0E0 +:1045B0006030820000004014830080C001000000D1 +:1045C000820120C601000000E6018800050000A06D +:1045D0006000000300000004832800C00100000008 +:1045E000E20002C601000080013080C0010000002E +:1045F00026281CC70100000C63280CC40100000021 +:104600006200008301000000832908C601000080C9 +:1046100087011C07000000000000000000000000EF +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:104680000A00000010000000000000000000000010 +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000400000000B6 +:104700000000000000000120000000000000000088 +:104710000000000000000000000000040000400055 +:104720000800000000000000000000000000002061 +:1047300000000000040010000000000400003C0025 +:104740000800000000002800080000000000000031 +:1047500000000000000000000000000400003C20F9 +:10476000080000000001140008000010048014007C +:1047700008000000000000200000000304004020AA +:10478000080000000000002004000020000080005D +:1047900008000000000000200000000000000000F1 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:104800000000008001000000000000000000000027 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000001000000028 +:104880000000000000000001000000101000000007 +:1048900000000000000000000000000000002020D8 +:1048A000200000200008090A000000001810400045 +:1048B0003000008400104800001004000008203080 +:1048C000002000080048410A4000000800004000A5 +:1048D0000080081000202000004000004020200838 +:1048E0002030000000200100000008140810091208 +:1048F00000042410000000081418140100102022E5 +:104900000030001020100412000000108001241458 +:1049100020101C0404000118001000900000840006 +:1049200000900010000080000010008000000020B7 +:1049300000000880000000002000000000080000C7 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000040000000000000043 +:104970000000000001000080002040000000000056 +:10498000000000000000040204000000000000001D +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000C00000000000000AB +:104A00001000000000000000000000000000001086 +:104A100010000000000000000000000070000050C6 +:104A200050000000000000000C000000090090028F +:104A30000030060000009002000A045609009000B1 +:104A4000000000200DB00004000000000D00000474 +:104A5000000000B00E0000000000090000000E0C75 +:104A60000000000C0D300000000000000D000000F0 +:104A700004000010000D5000000D000C0038000074 +:104A800000300070000900000000080008B00010AD +:104A900000090030003000400060003000000000DD +:104AA00000007D000000000000000500000E000076 +:104AB000000A05000D00080E0E00050E00000E0C89 +:104AC00000080000000000000E0A080D05000D009F +:104AD000000000A000000000000008A0000000008E +:104AE0000000000000000000000000B00000000016 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000010000000100000033 +:104B8000000000000000000000000000000000081D +:104B90000000000000000000000000000000800095 +:104BA0000100000000002020000000A00100084CCF +:104BB0000000000000002000200000340000200061 +:104BC00000000C4000002020002000000030380CC5 +:104BD00010000040000010000010024000300000F3 +:104BE00000300001100020001020000000300800FC +:104BF0000000000000410C080000100E00000A0038 +:104C00000000000C0000202800200A001A00010CFF +:104C100001000000100430001000080400000C0027 +:104C20000000002000002400002000000000200000 +:104C30000000002000000020000000200000000014 +:104C40001000000100000000000000000000010052 +:104C50000000000000000000000000000000010053 +:104C60000000000000000000000000000000000044 +:104C70000C000000000000000000000004000030F4 +:104C800000203000000000000000000000000C0CBC +:104C90000400000000000000000000000000000010 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000100000000000000000C4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D00000000000000000000001000000000000093 +:104D10000000000000000000000000000000000093 +:104D20000000000000400000000000000000000043 +:104D30000000000000000000000000100000000063 +:104D40000040000040400000000000000020402023 +:104D500000002000000000000000000000000040F3 +:104D60000040004000000020400000320000000031 +:104D7000020000020000404000000002000040006D +:104D800000000000004040600000400000000260A1 +:104D900000040000000000000000000000100000FF +:104DA00000000000000000004040002000004030F3 +:104DB0000000003000000000400000000000000083 +:104DC00000000000000000000000000000000010D3 +:104DD00000000000000002000000000000000000D1 +:104DE00000000000000000000000000002000000C1 +:104DF0000030000000000000000000000000000083 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000400000000012 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE000000000200000002000000000200004005E +:104EF000000000000400000000000030020020005C +:104F00000000200000002000000020000000200021 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000001000000071 +:104F30000000308000000080000000001000000031 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F700000000000008000000000000000000000B1 +:104F800000000000000030000000000000000000F1 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD0000000000000000000008000000000000051 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000010000000000000000000000000000080 +:105020000000000000000000000000000000000080 +:105030000000000010000000000000000000000060 +:105040000000001000000000000000000000000050 +:105050000000000000100010000010001000000010 +:105060000000000000000000000000000000001030 +:10507000000004100000000000000000000000100C +:105080000041E001001000000010E00100000010ED +:1050900000100000000010100018000000000000C8 +:1050A00000000000001000000000001000000000E0 +:1050B00000000010000000000000000000000000E0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000100000000000000000C0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000002000000000007F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000B8900C00018019 +:1052C000000000500C000180000000C0040000003D +:1052D00004000000040000000400000004000000BE +:1052E00004000000040000000400000004000000AE +:1052F000040000000400000004000000040000009E +:10530000040000000400000004000000040000008D +:10531000040000000400000004000000040000007D +:10532000040000000400000004000000040000006D +:10533000040000000400000004000000040000005D +:10534000040000000400000004000000040000004D +:10535000040000000400000004000000040000003D +:10536000040000000400000004000000040000002D +:10537000040000000400000004000000040000001D +:10538000040000000400000004000000040000000D +:1053900004000000040000000400000004000000FD +:1053A00004000000040000000400000004000000ED +:1053B00004000000040000000400000004000000DD +:1053C00004000000040000000400000004000000CD +:1053D00004000000040000000400000004000000BD +:1053E00004000000040000000400000004000000AD +:1053F000040000000400000004000000040000009D +:10540000040000000400000004000000040000008C +:10541000040000000400000004000000040000007C +:10542000040000000400000004000000040000006C +:10543000040000000400000004000000040000005C +:10544000040000000400000004000000040000004C +:105450000C000180000000A00C000580000000008E +:105460000C0000800000FAEA0C000180000000B08F +:10547000040000000400000004000000040000001C +:00000001FF diff --git a/04-Lissajous/Board/ise/lissajous.dwf3work b/04-Lissajous/Board/ise/lissajous.dwf3work new file mode 100755 index 0000000000000000000000000000000000000000..3e80dcc51322a5b3b6fd01133ad67ca83fb069d6 GIT binary patch literal 268206 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�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℞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 literal 0 HcmV?d00001 diff --git a/04-Lissajous/Board/ise/lissajous.xise b/04-Lissajous/Board/ise/lissajous.xise new file mode 100644 index 0000000..076ab77 --- /dev/null +++ b/04-Lissajous/Board/ise/lissajous.xise @@ -0,0 +1,331 @@ + + + +

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/04-Lissajous/Board/ise/lissajousGenerator_circuit.bit b/04-Lissajous/Board/ise/lissajousGenerator_circuit.bit new file mode 100644 index 0000000000000000000000000000000000000000..117f66e7cb9427676b079e2b92d8071807916e10 GIT binary patch literal 283887 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 Sm=1n(0sX`8d;8+x{QM6exY7#% literal 0 HcmV?d00001 diff --git a/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhd._fpf b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhg._fpf b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhd._fpf b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhg._fpf b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/.hdlsidedata/_lissajousgenerator_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous/hds/_lissajousgenerator._epf b/04-Lissajous/Lissajous/hds/_lissajousgenerator._epf new file mode 100644 index 0000000..aa82986 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/_lissajousgenerator._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom lissajous@generator/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/04-Lissajous/Lissajous/hds/lissajous@generator/struct.bd b/04-Lissajous/Lissajous/hds/lissajous@generator/struct.bd new file mode 100644 index 0000000..997ee19 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/lissajous@generator/struct.bd @@ -0,0 +1,4708 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_sinY" +duLibraryName "SplineInterpolator" +duName "sineGen" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 2053,0 +) +(Instance +name "I_sinX" +duLibraryName "SplineInterpolator" +duName "sineGen" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 2090,0 +) +(Instance +name "I_dacY" +duLibraryName "DigitalToAnalogConverter" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 2162,0 +) +(Instance +name "I_dacX" +duLibraryName "DigitalToAnalogConverter" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 2187,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb3" +number "3" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds\\lissajous@generator\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds\\lissajous@generator\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds\\lissajous@generator" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds\\lissajousGenerator" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:47:09" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lissajous" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Lissajous" +) +(vvPair +variable "library_downstream_QuestaSimCompiler" +value "$HDS_PROJECT_DIR/../Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_SvAssistantInvoke" +value "$HDS_PROJECT_DIR/../Board/svassistant" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "lissajousGenerator" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds\\lissajous@generator\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous\\hds\\lissajousGenerator\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:47:09" +) +(vvPair +variable "unit" +value "lissajousGenerator" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "33000,30625,34500,31375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "34500,31000,35000,31000" +pts [ +"34500,31000" +"35000,31000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28200,30300,32000,31700" +st "clock" +ju 2 +blo "32000,31500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,7800,9900,8800" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "91500,30625,93000,31375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "91000,31000,91500,31000" +pts [ +"91000,31000" +"91500,31000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "94000,30300,97800,31700" +st "yOut" +blo "94000,31500" +tm "WireNameMgr" +) +) +) +*4 (Grouping +uid 51,0 +optionalChildren [ +*5 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,73000,86000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,73500,69200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,69000,90000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,69500,86200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,71000,86000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,71500,69200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,71000,69000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,71500,65200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,70000,106000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,70200,100300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*10 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90000,69000,106000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "90200,69500,90200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,69000,86000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "70350,69400,80650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,72000,69000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,72500,65200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,73000,69000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,73500,65200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,72000,86000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,72500,69200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "65000,69000,106000,74000" +) +oxt "14000,66000,55000,71000" +) +*15 (PortIoOut +uid 429,0 +shape (CompositeShape +uid 430,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 431,0 +sl 0 +ro 270 +xt "91500,20625,93000,21375" +) +(Line +uid 432,0 +sl 0 +ro 270 +xt "91000,21000,91500,21000" +pts [ +"91000,21000" +"91500,21000" +] +) +] +) +tg (WTG +uid 433,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 434,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "94000,20300,102100,21700" +st "triggerOut" +blo "94000,21500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 441,0 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 4,0 +) +declText (MLText +uid 442,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,9600,10400,10600" +st "triggerOut : std_ulogic" +) +) +*17 (HdlText +uid 443,0 +optionalChildren [ +*18 (EmbeddedText +uid 456,0 +commentText (CommentText +uid 457,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 458,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "68000,20000,82000,23000" +) +oxt "0,0,18000,5000" +text (MLText +uid 459,0 +va (VaSet +) +xt "68200,20200,82000,22600" +st " +triggerOut <= squareY(squareY'high); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 3000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 444,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "67000,19000,83000,24000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 445,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 446,0 +va (VaSet +) +xt "67400,24000,70000,25200" +st "eb1" +blo "67400,25000" +tm "HdlTextNameMgr" +) +*20 (Text +uid 447,0 +va (VaSet +) +xt "67400,25000,68800,26200" +st "1" +blo "67400,26000" +tm "HdlTextNumberMgr" +) +] +) +) +*21 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 6,0 +) +declText (MLText +uid 477,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,10500,10100,11500" +st "xOut : std_ulogic" +) +) +*22 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "91500,52625,93000,53375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "91000,53000,91500,53000" +pts [ +"91000,53000" +"91500,53000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "94000,52300,97800,53700" +st "xOut" +blo "94000,53500" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 7,0 +) +declText (MLText +uid 612,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,11400,10100,12400" +st "yOut : std_ulogic" +) +) +*24 (Net +uid 617,0 +decl (Decl +n "sineX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 9,0 +) +declText (MLText +uid 618,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,14100,24200,15100" +st "SIGNAL sineX : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*25 (HdlText +uid 1324,0 +optionalChildren [ +*26 (EmbeddedText +uid 1329,0 +commentText (CommentText +uid 1330,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1331,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "19000,46000,35000,50000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1332,0 +va (VaSet +) +xt "19200,46200,33100,49800" +st " +stepXUnsigned <= to_unsigned(stepX, stepXUnsigned'length); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1325,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "19000,45000,35000,51000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1326,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*27 (Text +uid 1327,0 +va (VaSet +) +xt "19400,51000,22000,52200" +st "eb2" +blo "19400,52000" +tm "HdlTextNameMgr" +) +*28 (Text +uid 1328,0 +va (VaSet +) +xt "19400,52000,20800,53200" +st "2" +blo "19400,53000" +tm "HdlTextNumberMgr" +) +] +) +) +*29 (Net +uid 1631,0 +decl (Decl +n "sineY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 16,0 +) +declText (MLText +uid 1632,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,15000,24200,16000" +st "SIGNAL sineY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*30 (HdlText +uid 1637,0 +optionalChildren [ +*31 (EmbeddedText +uid 1642,0 +commentText (CommentText +uid 1643,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1644,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "19000,24000,35000,28000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1645,0 +va (VaSet +) +xt "19200,24200,33100,27800" +st " +stepYUnsigned <= to_unsigned(stepY, stepYUnsigned'length); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1638,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "19000,23000,35000,29000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1639,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 1640,0 +va (VaSet +) +xt "19400,29000,22000,30200" +st "eb3" +blo "19400,30000" +tm "HdlTextNameMgr" +) +*33 (Text +uid 1641,0 +va (VaSet +) +xt "19400,30000,20800,31200" +st "3" +blo "19400,31000" +tm "HdlTextNumberMgr" +) +] +) +) +*34 (Net +uid 1652,0 +decl (Decl +n "squareY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 19,0 +) +declText (MLText +uid 1653,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,15900,24700,16900" +st "SIGNAL squareY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*35 (SaComponent +uid 2053,0 +optionalChildren [ +*36 (CptPort +uid 2025,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2026,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,30625,43000,31375" +) +tg (CPTG +uid 2027,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2028,0 +va (VaSet +) +xt "44000,30400,47400,31600" +st "clock" +blo "44000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*37 (CptPort +uid 2029,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2030,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,32625,43000,33375" +) +tg (CPTG +uid 2031,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2032,0 +va (VaSet +) +xt "44000,32400,47300,33600" +st "reset" +blo "44000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*38 (CptPort +uid 2033,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2034,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,24625,59750,25375" +) +tg (CPTG +uid 2035,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2036,0 +va (VaSet +) +xt "52800,24400,58000,25600" +st "sawtooth" +ju 2 +blo "58000,25400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*39 (CptPort +uid 2037,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2038,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,30625,59750,31375" +) +tg (CPTG +uid 2039,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2040,0 +va (VaSet +) +xt "55200,30400,58000,31600" +st "sine" +ju 2 +blo "58000,31400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 4,0 +) +) +) +*40 (CptPort +uid 2041,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2042,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,28625,59750,29375" +) +tg (CPTG +uid 2043,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2044,0 +va (VaSet +) +xt "53500,28400,58000,29600" +st "triangle" +ju 2 +blo "58000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +) +*41 (CptPort +uid 2045,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2046,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,26625,59750,27375" +) +tg (CPTG +uid 2047,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2048,0 +va (VaSet +) +xt "53900,26400,58000,27600" +st "square" +ju 2 +blo "58000,27400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*42 (CptPort +uid 2049,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2050,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,24625,43000,25375" +) +tg (CPTG +uid 2051,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2052,0 +va (VaSet +) +xt "44000,24400,46900,25600" +st "step" +blo "44000,25400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 2054,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,21000,59000,35000" +) +oxt "32000,16000,48000,30000" +ttg (MlTextGroup +uid 2055,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*43 (Text +uid 2056,0 +va (VaSet +font "Verdana,9,1" +) +xt "43600,34800,54000,36000" +st "SplineInterpolator" +blo "43600,35800" +tm "BdLibraryNameMgr" +) +*44 (Text +uid 2057,0 +va (VaSet +font "Verdana,9,1" +) +xt "43600,35700,48100,36900" +st "sineGen" +blo "43600,36700" +tm "CptNameMgr" +) +*45 (Text +uid 2058,0 +va (VaSet +font "Verdana,9,1" +) +xt "43600,36600,47400,37800" +st "I_sinY" +blo "43600,37600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2059,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2060,0 +text (MLText +uid 2061,0 +va (VaSet +font "Verdana,8,0" +) +xt "43000,38600,62200,40600" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*46 (SaComponent +uid 2090,0 +optionalChildren [ +*47 (CptPort +uid 2062,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2063,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,52625,43000,53375" +) +tg (CPTG +uid 2064,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2065,0 +va (VaSet +) +xt "44000,52400,47400,53600" +st "clock" +blo "44000,53400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*48 (CptPort +uid 2066,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2067,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,54625,43000,55375" +) +tg (CPTG +uid 2068,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2069,0 +va (VaSet +) +xt "44000,54400,47300,55600" +st "reset" +blo "44000,55400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*49 (CptPort +uid 2070,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2071,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,46625,59750,47375" +) +tg (CPTG +uid 2072,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2073,0 +va (VaSet +) +xt "52800,46400,58000,47600" +st "sawtooth" +ju 2 +blo "58000,47400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*50 (CptPort +uid 2074,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2075,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,52625,59750,53375" +) +tg (CPTG +uid 2076,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2077,0 +va (VaSet +) +xt "55200,52400,58000,53600" +st "sine" +ju 2 +blo "58000,53400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 4,0 +) +) +) +*51 (CptPort +uid 2078,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2079,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,50625,59750,51375" +) +tg (CPTG +uid 2080,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2081,0 +va (VaSet +) +xt "53500,50400,58000,51600" +st "triangle" +ju 2 +blo "58000,51400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 5,0 +) +) +) +*52 (CptPort +uid 2082,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2083,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,48625,59750,49375" +) +tg (CPTG +uid 2084,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2085,0 +va (VaSet +) +xt "53900,48400,58000,49600" +st "square" +ju 2 +blo "58000,49400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*53 (CptPort +uid 2086,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2087,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,46625,43000,47375" +) +tg (CPTG +uid 2088,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2089,0 +va (VaSet +) +xt "44000,46400,46900,47600" +st "step" +blo "44000,47400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 3 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 2091,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,43000,59000,57000" +) +oxt "32000,16000,48000,30000" +ttg (MlTextGroup +uid 2092,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +uid 2093,0 +va (VaSet +font "Verdana,9,1" +) +xt "43600,56800,54000,58000" +st "SplineInterpolator" +blo "43600,57800" +tm "BdLibraryNameMgr" +) +*55 (Text +uid 2094,0 +va (VaSet +font "Verdana,9,1" +) +xt "43600,57700,48100,58900" +st "sineGen" +blo "43600,58700" +tm "CptNameMgr" +) +*56 (Text +uid 2095,0 +va (VaSet +font "Verdana,9,1" +) +xt "43600,58600,47400,59800" +st "I_sinX" +blo "43600,59600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2096,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2097,0 +text (MLText +uid 2098,0 +va (VaSet +font "Verdana,8,0" +) +xt "43000,60600,62200,62600" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*57 (SaComponent +uid 2162,0 +optionalChildren [ +*58 (CptPort +uid 2146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,34625,67000,35375" +) +tg (CPTG +uid 2148,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2149,0 +va (VaSet +) +xt "68000,34400,71400,35600" +st "clock" +blo "68000,35400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*59 (CptPort +uid 2150,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2151,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,30625,67000,31375" +) +tg (CPTG +uid 2152,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2153,0 +va (VaSet +) +xt "68000,30400,74200,31600" +st "parallelIn" +blo "68000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*60 (CptPort +uid 2154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2155,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,30625,83750,31375" +) +tg (CPTG +uid 2156,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2157,0 +va (VaSet +) +xt "76601,30400,82001,31600" +st "serialOut" +ju 2 +blo "82001,31400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*61 (CptPort +uid 2158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,36625,67000,37375" +) +tg (CPTG +uid 2160,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2161,0 +va (VaSet +) +xt "68000,36400,71300,37600" +st "reset" +blo "68000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 2163,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "67000,27000,83000,39000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 2164,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 2165,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,38800,82300,40000" +st "DigitalToAnalogConverter" +blo "67600,39800" +tm "BdLibraryNameMgr" +) +*63 (Text +uid 2166,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,39700,70300,40900" +st "DAC" +blo "67600,40700" +tm "CptNameMgr" +) +*64 (Text +uid 2167,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,40600,71700,41800" +st "I_dacY" +blo "67600,41600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2168,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2169,0 +text (MLText +uid 2170,0 +va (VaSet +font "Verdana,8,0" +) +xt "67000,42600,85400,43600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*65 (SaComponent +uid 2187,0 +optionalChildren [ +*66 (CptPort +uid 2171,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2172,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,56625,67000,57375" +) +tg (CPTG +uid 2173,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2174,0 +va (VaSet +) +xt "68000,56400,71400,57600" +st "clock" +blo "68000,57400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*67 (CptPort +uid 2175,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2176,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,52625,67000,53375" +) +tg (CPTG +uid 2177,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2178,0 +va (VaSet +) +xt "68000,52400,74200,53600" +st "parallelIn" +blo "68000,53400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 2179,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2180,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83000,52625,83750,53375" +) +tg (CPTG +uid 2181,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2182,0 +va (VaSet +) +xt "76601,52400,82001,53600" +st "serialOut" +ju 2 +blo "82001,53400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*69 (CptPort +uid 2183,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2184,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66250,58625,67000,59375" +) +tg (CPTG +uid 2185,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2186,0 +va (VaSet +) +xt "68000,58400,71300,59600" +st "reset" +blo "68000,59400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 2188,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "67000,49000,83000,61000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 2189,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 2190,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,60800,82300,62000" +st "DigitalToAnalogConverter" +blo "67600,61800" +tm "BdLibraryNameMgr" +) +*71 (Text +uid 2191,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,61700,70300,62900" +st "DAC" +blo "67600,62700" +tm "CptNameMgr" +) +*72 (Text +uid 2192,0 +va (VaSet +font "Verdana,9,1" +) +xt "67600,62600,71700,63800" +st "I_dacX" +blo "67600,63600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2193,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2194,0 +text (MLText +uid 2195,0 +va (VaSet +font "Verdana,8,0" +) +xt "67000,64600,85400,65600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*73 (Net +uid 2339,0 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 20,0 +) +declText (MLText +uid 2340,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,8700,9900,9700" +st "reset : std_ulogic" +) +) +*74 (PortIoIn +uid 2367,0 +shape (CompositeShape +uid 2368,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2369,0 +sl 0 +ro 270 +xt "33000,32625,34500,33375" +) +(Line +uid 2370,0 +sl 0 +ro 270 +xt "34500,33000,35000,33000" +pts [ +"34500,33000" +"35000,33000" +] +) +] +) +tg (WTG +uid 2371,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2372,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "27900,32350,32000,33750" +st "reset" +ju 2 +blo "32000,33550" +tm "WireNameMgr" +) +) +) +*75 (Net +uid 2510,0 +decl (Decl +n "stepYUnsigned" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 10 +suid 21,0 +) +declText (MLText +uid 2511,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,17700,25700,18700" +st "SIGNAL stepYUnsigned : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*76 (Net +uid 2512,0 +decl (Decl +n "stepXUnsigned" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 9 +suid 22,0 +) +declText (MLText +uid 2513,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,16800,25700,17800" +st "SIGNAL stepXUnsigned : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*77 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "35000,31000,42250,31000" +pts [ +"35000,31000" +"42250,31000" +] +) +start &1 +end &36 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "35000,29600,38800,31000" +st "clock" +blo "35000,30800" +tm "WireNameMgr" +) +) +on &2 +) +*78 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "83750,31000,91000,31000" +pts [ +"91000,31000" +"83750,31000" +] +) +start &3 +end &60 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,29600,89800,31000" +st "yOut" +blo "86000,30800" +tm "WireNameMgr" +) +) +on &23 +) +*79 (Wire +uid 435,0 +shape (OrthoPolyLine +uid 436,0 +va (VaSet +vasetType 3 +) +xt "83000,21000,91000,21000" +pts [ +"91000,21000" +"83000,21000" +] +) +start &15 +end &17 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 439,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 440,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,19600,94100,21000" +st "triggerOut" +blo "86000,20800" +tm "WireNameMgr" +) +) +on &16 +) +*80 (Wire +uid 450,0 +shape (OrthoPolyLine +uid 451,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59750,21000,67000,27000" +pts [ +"59750,27000" +"63000,27000" +"63000,21000" +"67000,21000" +] +) +start &41 +end &17 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 454,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 455,0 +va (VaSet +font "Verdana,12,0" +) +xt "61000,19600,66900,21000" +st "squareY" +blo "61000,20800" +tm "WireNameMgr" +) +) +on &34 +) +*81 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "83750,53000,91000,53000" +pts [ +"91000,53000" +"83750,53000" +] +) +start &22 +end &68 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,51600,89800,53000" +st "xOut" +blo "86000,52800" +tm "WireNameMgr" +) +) +on &21 +) +*82 (Wire +uid 579,0 +shape (OrthoPolyLine +uid 580,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59750,53000,66250,53000" +pts [ +"59750,53000" +"66250,53000" +] +) +start &50 +end &67 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 581,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 582,0 +va (VaSet +font "Verdana,12,0" +) +xt "60750,51600,64950,53000" +st "sineX" +blo "60750,52800" +tm "WireNameMgr" +) +) +on &24 +) +*83 (Wire +uid 583,0 +shape (OrthoPolyLine +uid 584,0 +va (VaSet +vasetType 3 +) +xt "63000,57000,66250,57000" +pts [ +"63000,57000" +"66250,57000" +] +) +end &66 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 588,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,55600,65800,57000" +st "clock" +blo "62000,56800" +tm "WireNameMgr" +) +) +on &2 +) +*84 (Wire +uid 589,0 +shape (OrthoPolyLine +uid 590,0 +va (VaSet +vasetType 3 +) +xt "63000,59000,66250,59000" +pts [ +"63000,59000" +"66250,59000" +] +) +end &69 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 594,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,57600,66100,59000" +st "reset" +blo "62000,58800" +tm "WireNameMgr" +) +) +on &73 +) +*85 (Wire +uid 1335,0 +shape (OrthoPolyLine +uid 1336,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "35000,47000,42250,47000" +pts [ +"42250,47000" +"35000,47000" +] +) +start &53 +end &25 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1339,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1340,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,45600,48100,47000" +st "stepXUnsigned" +blo "37000,46800" +tm "WireNameMgr" +) +) +on &76 +) +*86 (Wire +uid 1341,0 +shape (OrthoPolyLine +uid 1342,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "35000,25000,42250,25000" +pts [ +"42250,25000" +"35000,25000" +] +) +start &42 +end &30 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1347,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1348,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,23600,48000,25000" +st "stepYUnsigned" +blo "37000,24800" +tm "WireNameMgr" +) +) +on &75 +) +*87 (Wire +uid 1613,0 +shape (OrthoPolyLine +uid 1614,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59750,31000,66250,31000" +pts [ +"59750,31000" +"66250,31000" +] +) +start &39 +end &59 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1615,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1616,0 +va (VaSet +font "Verdana,12,0" +) +xt "60750,29600,64850,31000" +st "sineY" +blo "60750,30800" +tm "WireNameMgr" +) +) +on &29 +) +*88 (Wire +uid 1617,0 +shape (OrthoPolyLine +uid 1618,0 +va (VaSet +vasetType 3 +) +xt "63000,35000,66250,35000" +pts [ +"63000,35000" +"66250,35000" +] +) +end &58 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1621,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1622,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,33600,65800,35000" +st "clock" +blo "62000,34800" +tm "WireNameMgr" +) +) +on &2 +) +*89 (Wire +uid 1623,0 +shape (OrthoPolyLine +uid 1624,0 +va (VaSet +vasetType 3 +) +xt "63000,37000,66250,37000" +pts [ +"63000,37000" +"66250,37000" +] +) +end &61 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1627,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1628,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,35600,66100,37000" +st "reset" +blo "62000,36800" +tm "WireNameMgr" +) +) +on &73 +) +*90 (Wire +uid 2341,0 +shape (OrthoPolyLine +uid 2342,0 +va (VaSet +vasetType 3 +) +xt "39000,55000,42250,55000" +pts [ +"39000,55000" +"42250,55000" +] +) +end &48 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2347,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2348,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,53600,42100,55000" +st "reset" +blo "38000,54800" +tm "WireNameMgr" +) +) +on &73 +) +*91 (Wire +uid 2349,0 +shape (OrthoPolyLine +uid 2350,0 +va (VaSet +vasetType 3 +) +xt "39000,53000,42250,53000" +pts [ +"39000,53000" +"42250,53000" +] +) +end &47 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2355,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2356,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,51600,41800,53000" +st "clock" +blo "38000,52800" +tm "WireNameMgr" +) +) +on &2 +) +*92 (Wire +uid 2357,0 +shape (OrthoPolyLine +uid 2358,0 +va (VaSet +vasetType 3 +) +xt "35000,33000,42250,33000" +pts [ +"35000,33000" +"42250,33000" +] +) +start &74 +end &37 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2363,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2364,0 +va (VaSet +font "Verdana,12,0" +) +xt "34000,31600,38100,33000" +st "reset" +blo "34000,32800" +tm "WireNameMgr" +) +) +on &73 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *93 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +uid 85,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*95 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*97 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*98 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*99 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*100 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*101 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*102 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4571,-1604,138105,75916" +cachedDiagramExtent "-3000,0,106000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "Microsoft Print to PDF,winspool," +fileName "PORTPROMPT:" +toPrinter 1 +colour 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2732,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*104 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*105 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*107 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*108 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*110 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*111 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*112 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*113 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*114 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*116 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*117 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*118 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*119 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*121 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*123 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6000,4000,7000" +st "Declarations" +blo "-3000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6900,400,7900" +st "Ports:" +blo "-3000,7700" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,12300,1800,13300" +st "Pre User:" +blo "-3000,13100" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,13200,18000,15000" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,13200,6000,14200" +st "Diagram Signals:" +blo "-3000,14000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,6000,3000,7000" +st "Post User:" +blo "-3000,6800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-3000,6000,-3000,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 22,0 +usingSuid 1 +emptyRow *124 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*125 (RefLabelRowHdr +) +*126 (TitleRowHdr +) +*127 (FilterRowHdr +) +*128 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*129 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*130 (GroupColHdr +tm "GroupColHdrMgr" +) +*131 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*132 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*133 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*134 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*135 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*136 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*137 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1377,0 +) +*138 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 1383,0 +) +*139 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 6,0 +) +) +uid 1387,0 +) +*140 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 7,0 +) +) +uid 1389,0 +) +*141 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sineX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +uid 1393,0 +) +*142 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sineY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 16,0 +) +) +uid 1646,0 +) +*143 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "squareY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 19,0 +) +) +uid 1654,0 +) +*144 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 20,0 +) +) +uid 2365,0 +) +*145 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "stepYUnsigned" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 10 +suid 21,0 +) +) +uid 2514,0 +) +*146 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "stepXUnsigned" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 9 +suid 22,0 +) +) +uid 2516,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*147 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *148 (MRCItem +litem &124 +pos 10 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*149 (MRCItem +litem &125 +pos 0 +dimension 20 +uid 1422,0 +) +*150 (MRCItem +litem &126 +pos 1 +dimension 23 +uid 1423,0 +) +*151 (MRCItem +litem &127 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*152 (MRCItem +litem &137 +pos 0 +dimension 20 +uid 1378,0 +) +*153 (MRCItem +litem &138 +pos 1 +dimension 20 +uid 1384,0 +) +*154 (MRCItem +litem &139 +pos 2 +dimension 20 +uid 1388,0 +) +*155 (MRCItem +litem &140 +pos 3 +dimension 20 +uid 1390,0 +) +*156 (MRCItem +litem &141 +pos 5 +dimension 20 +uid 1394,0 +) +*157 (MRCItem +litem &142 +pos 6 +dimension 20 +uid 1647,0 +) +*158 (MRCItem +litem &143 +pos 7 +dimension 20 +uid 1655,0 +) +*159 (MRCItem +litem &144 +pos 4 +dimension 20 +uid 2366,0 +) +*160 (MRCItem +litem &145 +pos 8 +dimension 20 +uid 2515,0 +) +*161 (MRCItem +litem &146 +pos 9 +dimension 20 +uid 2517,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*162 (MRCItem +litem &128 +pos 0 +dimension 20 +uid 1426,0 +) +*163 (MRCItem +litem &130 +pos 1 +dimension 50 +uid 1427,0 +) +*164 (MRCItem +litem &131 +pos 2 +dimension 100 +uid 1428,0 +) +*165 (MRCItem +litem &132 +pos 3 +dimension 50 +uid 1429,0 +) +*166 (MRCItem +litem &133 +pos 4 +dimension 100 +uid 1430,0 +) +*167 (MRCItem +litem &134 +pos 5 +dimension 100 +uid 1431,0 +) +*168 (MRCItem +litem &135 +pos 6 +dimension 50 +uid 1432,0 +) +*169 (MRCItem +litem &136 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *170 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*171 (RefLabelRowHdr +) +*172 (TitleRowHdr +) +*173 (FilterRowHdr +) +*174 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*175 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*176 (GroupColHdr +tm "GroupColHdrMgr" +) +*177 (NameColHdr +tm "GenericNameColHdrMgr" +) +*178 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*179 (InitColHdr +tm "GenericValueColHdrMgr" +) +*180 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*181 (EolColHdr +tm "GenericEolColHdrMgr" +) +*182 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 2460,0 +) +*183 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "16" +) +uid 2462,0 +) +*184 (LogGeneric +generic (GiElement +name "stepX" +type "positive" +value "1" +) +uid 2464,0 +) +*185 (LogGeneric +generic (GiElement +name "stepY" +type "positive" +value "1" +) +uid 2466,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*186 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *187 (MRCItem +litem &170 +pos 4 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*188 (MRCItem +litem &171 +pos 0 +dimension 20 +uid 1450,0 +) +*189 (MRCItem +litem &172 +pos 1 +dimension 23 +uid 1451,0 +) +*190 (MRCItem +litem &173 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*191 (MRCItem +litem &182 +pos 0 +dimension 20 +uid 2459,0 +) +*192 (MRCItem +litem &183 +pos 1 +dimension 20 +uid 2461,0 +) +*193 (MRCItem +litem &184 +pos 2 +dimension 20 +uid 2463,0 +) +*194 (MRCItem +litem &185 +pos 3 +dimension 20 +uid 2465,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*195 (MRCItem +litem &174 +pos 0 +dimension 20 +uid 1454,0 +) +*196 (MRCItem +litem &176 +pos 1 +dimension 50 +uid 1455,0 +) +*197 (MRCItem +litem &177 +pos 2 +dimension 100 +uid 1456,0 +) +*198 (MRCItem +litem &178 +pos 3 +dimension 100 +uid 1457,0 +) +*199 (MRCItem +litem &179 +pos 4 +dimension 50 +uid 1458,0 +) +*200 (MRCItem +litem &180 +pos 5 +dimension 50 +uid 1459,0 +) +*201 (MRCItem +litem &181 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/04-Lissajous/Lissajous/hds/lissajous@generator/symbol.sb b/04-Lissajous/Lissajous/hds/lissajous@generator/symbol.sb new file mode 100644 index 0000000..31b89b1 --- /dev/null +++ b/04-Lissajous/Lissajous/hds/lissajous@generator/symbol.sb @@ -0,0 +1,1722 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2006,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 165,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 166,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 167,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 168,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +uid 427,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 104,0 +optionalChildren [ +*21 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 107,0 +) +*22 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 109,0 +) +*23 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*24 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 131,0 +) +*25 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 132,0 +) +*26 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 133,0 +) +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 134,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 426,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*29 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 113,0 +) +*30 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 117,0 +) +*31 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 119,0 +) +*32 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 121,0 +) +*33 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 123,0 +) +*34 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 125,0 +) +*35 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 127,0 +) +*36 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 160,0 +) +*50 (LogGeneric +generic (GiElement +name "phaseBitNb" +type "positive" +value "16" +) +uid 479,0 +) +*51 (LogGeneric +generic (GiElement +name "stepX" +type "positive" +value "1" +) +uid 481,0 +) +*52 (LogGeneric +generic (GiElement +name "stepY" +type "positive" +value "1" +) +uid 483,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *54 (MRCItem +litem &37 +pos 4 +dimension 20 +) +uid 136,0 +optionalChildren [ +*55 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 139,0 +) +*56 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 141,0 +) +*57 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*58 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 161,0 +) +*59 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 480,0 +) +*60 (MRCItem +litem &51 +pos 2 +dimension 20 +uid 482,0 +) +*61 (MRCItem +litem &52 +pos 3 +dimension 20 +uid 484,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*62 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 145,0 +) +*63 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 149,0 +) +*64 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 151,0 +) +*65 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 153,0 +) +*66 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 155,0 +) +*67 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 157,0 +) +*68 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds/lissajous@generator/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds/lissajous@generator/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds/lissajous@generator" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds/lissajousGenerator" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:53" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lissajous" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Lissajous" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "lissajousGenerator" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds/lissajous@generator/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous/hds/lissajousGenerator/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:53" +) +(vvPair +variable "unit" +value "lissajousGenerator" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,35500,18300" +st "clock" +blo "33000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,19000,11700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 88,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 89,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 90,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 91,0 +va (VaSet +font "courier,9,0" +) +xt "41500,17400,47000,18300" +st "triggerOut" +ju 2 +blo "47000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 92,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,19000,13500" +st "triggerOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*72 (CptPort +uid 93,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 94,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,15625,48750,16375" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 96,0 +va (VaSet +font "courier,9,0" +) +xt "45000,15400,47000,16300" +st "xOut" +ju 2 +blo "47000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 97,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,19000,14400" +st "xOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*73 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "courier,9,0" +) +xt "45000,13400,47000,14300" +st "yOut" +ju 2 +blo "47000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,18000,15300" +st "yOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*74 (CptPort +uid 428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 429,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 430,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 431,0 +va (VaSet +) +xt "33000,19500,36000,20500" +st "reset" +blo "33000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 432,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,19000,12600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,21800,37100,22700" +st "Lissajous" +blo "32600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22700,42100,23600" +st "lissajousGenerator" +blo "32600,23400" +) +) +gi *75 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,25600,45000,31000" +st "Generic Declarations + +signalBitNb positive 16 +phaseBitNb positive 16 +stepX positive 1 +stepY positive 1 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "phaseBitNb" +type "positive" +value "16" +) +(GiElement +name "stepX" +type "positive" +value "1" +) +(GiElement +name "stepY" +type "positive" +value "1" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*76 (Grouping +uid 16,0 +optionalChildren [ +*77 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*82 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *87 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*88 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*89 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "706,78,1648,805" +viewArea "-1900,-1000,73522,46902" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *90 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *91 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15300,2500,16200" +st "User:" +blo "0,16000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,2000,16200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 507,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/04-Lissajous/Lissajous_test/hdl/lissajousGenerator_tester_test.vhd b/04-Lissajous/Lissajous_test/hdl/lissajousGenerator_tester_test.vhd new file mode 100644 index 0000000..64427cf --- /dev/null +++ b/04-Lissajous/Lissajous_test/hdl/lissajousGenerator_tester_test.vhd @@ -0,0 +1,13 @@ +ARCHITECTURE test OF lissajousGenerator_tester IS + + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + +BEGIN + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + reset <= '1', '0' after 2*clockPeriod; + +END ARCHITECTURE test; diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousGenerator_tester_test.vhd._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousGenerator_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousGenerator_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhd._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhg._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhd._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhg._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_test_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhd._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhg._fpf b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/.hdlsidedata/_lissajousgenerator_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/04-Lissajous/Lissajous_test/hds/_lissajousgenerator_test._epf b/04-Lissajous/Lissajous_test/hds/_lissajousgenerator_test._epf new file mode 100644 index 0000000..66cbfb5 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/_lissajousgenerator_test._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom lissajous@generator_test/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/04-Lissajous/Lissajous_test/hds/_lissajousgenerator_tester._epf b/04-Lissajous/Lissajous_test/hds/_lissajousgenerator_tester._epf new file mode 100644 index 0000000..335f3fd --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/_lissajousgenerator_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom lissajousGenerator_tester_test.vhd diff --git a/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/_struct.bd._fpf b/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/_struct.bd._fpf new file mode 100755 index 0000000..30e9f19 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/_struct.bd._fpf @@ -0,0 +1,9 @@ +ARCHITECTURES list { + {lissajousgenerator_test struct} list { + TASK_SETTINGS list { + PLUGIN_SETTINGS list { + ModelSimSimulator atom {TaskSetting Arguments {} TaskSetting Communication 1 TaskSetting DelaySelection typ TaskSetting GlitchGeneration 1 TaskSetting InitCmd {$SIMULATION_DIR/lissajousGenerator.do} TaskSetting LogFile {} TaskSetting RemoteHost {} TaskSetting Resolution ns TaskSetting SdfDelay typ TaskSetting SdfMultiSrcDelay latest TaskSetting SdfReduce 0 TaskSetting SdfWarnings 1 TaskSetting TimingChecks 1 TaskSetting UseBatch 0 TaskSetting UseCLI 0 TaskSetting UseGUI 1 TaskSetting VitalVersion 95 TaskSetting autoNames 1 TaskSetting coverage 0 TaskSetting excludePSL 0 TaskSetting exepath %task_ModelSimPath TaskSetting minimumSimSetting 0 TaskSetting saveReplayScript 0 TaskSetting useCustomSimDir 0} + } + } + } +} diff --git a/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/struct.bd b/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/struct.bd new file mode 100644 index 0000000..11d0420 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/struct.bd @@ -0,0 +1,3941 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "Lissajous_test" +duName "lissajousGenerator_tester" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 421,0 +) +(Instance +name "I_DUT" +duLibraryName "Lissajous" +duName "lissajousGenerator" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +mwi 0 +uid 1594,0 +) +(Instance +name "I_filtX" +duLibraryName "WaveformGenerator" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +mwi 0 +uid 1612,0 +) +(Instance +name "I_filty" +duLibraryName "WaveformGenerator" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +mwi 0 +uid 1699,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_test\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_test\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_test" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajousGenerator_test" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_test" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:48:46" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lissajous_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Lissajous_test/concat" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Lissajous_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "lissajousGenerator_test" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_test\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajousGenerator_test\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:48:46" +) +(vvPair +variable "unit" +value "lissajousGenerator_test" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,65000,79000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,65500,62200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,83000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61500,79200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,63000,79000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,63500,62200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,62000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63500,58200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,62000,99000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,62200,93300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,61000,99000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,61500,83200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,61000,79000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "63350,61400,73650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,62000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64500,58200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,62000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65500,58200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,64000,79000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,64500,62200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "58000,61000,99000,66000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 421,0 +shape (Rectangle +uid 422,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "11000,52000,91000,60000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 423,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 424,0 +va (VaSet +) +xt "11700,60200,20500,61400" +st "Lissajous_test" +blo "11700,61200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 425,0 +va (VaSet +) +xt "11700,61400,26900,62600" +st "lissajousGenerator_tester" +blo "11700,62400" +tm "BlkNameMgr" +) +*15 (Text +uid 426,0 +va (VaSet +) +xt "11700,62600,16500,63800" +st "I_tester" +blo "11700,63600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 427,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 428,0 +text (MLText +uid 429,0 +va (VaSet +) +xt "12000,64000,38200,66400" +st "signalBitNb = signalBitNb ( positive ) +clockFrequency = clockFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*16 (Net +uid 1554,0 +decl (Decl +n "reset" +t "std_ulogic" +o 1 +suid 10,0 +) +declText (MLText +uid 1555,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17400,15200,18400" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 1562,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 11,0 +) +declText (MLText +uid 1563,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16400,15200,17400" +st "SIGNAL clock : std_ulogic" +) +) +*18 (SaComponent +uid 1594,0 +optionalChildren [ +*19 (CptPort +uid 1574,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1575,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,39625,23000,40375" +) +tg (CPTG +uid 1576,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1577,0 +va (VaSet +) +xt "24000,39400,27400,40600" +st "clock" +blo "24000,40400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*20 (CptPort +uid 1578,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1579,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39000,39625,39750,40375" +) +tg (CPTG +uid 1580,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1581,0 +va (VaSet +) +xt "31400,39400,38000,40600" +st "triggerOut" +ju 2 +blo "38000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*21 (CptPort +uid 1582,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1583,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39000,37625,39750,38375" +) +tg (CPTG +uid 1584,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1585,0 +va (VaSet +) +xt "34800,37400,38000,38600" +st "xOut" +ju 2 +blo "38000,38400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*22 (CptPort +uid 1586,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1587,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39000,35625,39750,36375" +) +tg (CPTG +uid 1588,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1589,0 +va (VaSet +) +xt "34800,35400,38000,36600" +st "yOut" +ju 2 +blo "38000,36400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*23 (CptPort +uid 1590,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1591,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,41625,23000,42375" +) +tg (CPTG +uid 1592,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1593,0 +va (VaSet +) +xt "24000,41500,27300,42700" +st "reset" +blo "24000,42500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +] +shape (Rectangle +uid 1595,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,32000,39000,44000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 1596,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 1597,0 +va (VaSet +font "Verdana,9,1" +) +xt "23600,43800,28800,45000" +st "Lissajous" +blo "23600,44800" +tm "BdLibraryNameMgr" +) +*25 (Text +uid 1598,0 +va (VaSet +font "Verdana,9,1" +) +xt "23600,44700,34100,45900" +st "lissajousGenerator" +blo "23600,45700" +tm "CptNameMgr" +) +*26 (Text +uid 1599,0 +va (VaSet +font "Verdana,9,1" +) +xt "23600,45600,27300,46800" +st "I_DUT" +blo "23600,46600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1600,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1601,0 +text (MLText +uid 1602,0 +va (VaSet +font "Verdana,8,0" +) +xt "23000,47600,42200,51600" +st "signalBitNb = signalBitNb ( positive ) +phaseBitNb = phaseBitNb ( positive ) +stepX = stepX ( positive ) +stepY = stepY ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "phaseBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "stepX" +type "positive" +value "stepX" +) +(GiElement +name "stepY" +type "positive" +value "stepY" +) +] +) +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*27 (HdlText +uid 1603,0 +optionalChildren [ +*28 (EmbeddedText +uid 1608,0 +commentText (CommentText +uid 1609,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1610,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "43000,3000,59000,7000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1611,0 +va (VaSet +) +xt "43200,3200,57300,6800" +st " +xParallel <= (others => xSerial); +yParallel <= (others => ySerial); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1604,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "43000,2000,59000,8000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1605,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*29 (Text +uid 1606,0 +va (VaSet +) +xt "43400,8000,46000,9200" +st "eb1" +blo "43400,9000" +tm "HdlTextNameMgr" +) +*30 (Text +uid 1607,0 +va (VaSet +) +xt "43400,9000,44800,10200" +st "1" +blo "43400,10000" +tm "HdlTextNumberMgr" +) +] +) +) +*31 (SaComponent +uid 1612,0 +optionalChildren [ +*32 (CptPort +uid 1621,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1622,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62250,39625,63000,40375" +) +tg (CPTG +uid 1623,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1624,0 +va (VaSet +) +xt "64000,39400,67400,40600" +st "clock" +blo "64000,40400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*33 (CptPort +uid 1625,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1626,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "79000,35625,79750,36375" +) +tg (CPTG +uid 1627,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1628,0 +va (VaSet +) +xt "70700,35400,78000,36600" +st "lowpassOut" +ju 2 +blo "78000,36400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*34 (CptPort +uid 1629,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1630,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62250,41625,63000,42375" +) +tg (CPTG +uid 1631,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1632,0 +va (VaSet +) +xt "64000,41400,67300,42600" +st "reset" +blo "64000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*35 (CptPort +uid 1633,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1634,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62250,35625,63000,36375" +) +tg (CPTG +uid 1635,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1636,0 +va (VaSet +) +xt "64000,35400,69800,36600" +st "lowpassIn" +blo "64000,36400" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +] +shape (Rectangle +uid 1613,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "63000,32000,79000,44000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 1614,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 1615,0 +va (VaSet +font "Verdana,9,1" +) +xt "63600,43800,75100,45000" +st "WaveformGenerator" +blo "63600,44800" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 1616,0 +va (VaSet +font "Verdana,9,1" +) +xt "63600,44700,68200,45900" +st "lowpass" +blo "63600,45700" +tm "CptNameMgr" +) +*38 (Text +uid 1617,0 +va (VaSet +font "Verdana,9,1" +) +xt "63600,45600,67600,46800" +st "I_filtX" +blo "63600,46600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1618,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1619,0 +text (MLText +uid 1620,0 +va (VaSet +font "Verdana,8,0" +) +xt "63000,47600,83800,49600" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = lowpassShiftBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*39 (Net +uid 1683,0 +decl (Decl +n "ySerial" +t "std_ulogic" +o 3 +suid 15,0 +) +declText (MLText +uid 1684,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,24400,15300,25400" +st "SIGNAL ySerial : std_ulogic" +) +) +*40 (Net +uid 1693,0 +decl (Decl +n "xSerial" +t "std_ulogic" +o 6 +suid 17,0 +) +declText (MLText +uid 1694,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,21400,15300,22400" +st "SIGNAL xSerial : std_ulogic" +) +) +*41 (Net +uid 1695,0 +decl (Decl +n "xLowapss" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 18,0 +) +declText (MLText +uid 1696,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,19400,27200,20400" +st "SIGNAL xLowapss : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*42 (Net +uid 1697,0 +decl (Decl +n "xParallel" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 19,0 +) +declText (MLText +uid 1698,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,20400,26400,21400" +st "SIGNAL xParallel : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*43 (SaComponent +uid 1699,0 +optionalChildren [ +*44 (CptPort +uid 1708,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1709,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62250,19625,63000,20375" +) +tg (CPTG +uid 1710,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1711,0 +va (VaSet +) +xt "64000,19400,67400,20600" +st "clock" +blo "64000,20400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*45 (CptPort +uid 1712,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1713,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "79000,15625,79750,16375" +) +tg (CPTG +uid 1714,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1715,0 +va (VaSet +) +xt "70700,15400,78000,16600" +st "lowpassOut" +ju 2 +blo "78000,16400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*46 (CptPort +uid 1716,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1717,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62250,21625,63000,22375" +) +tg (CPTG +uid 1718,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1719,0 +va (VaSet +) +xt "64000,21400,67300,22600" +st "reset" +blo "64000,22400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*47 (CptPort +uid 1720,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1721,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62250,15625,63000,16375" +) +tg (CPTG +uid 1722,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1723,0 +va (VaSet +) +xt "64000,15400,69800,16600" +st "lowpassIn" +blo "64000,16400" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +] +shape (Rectangle +uid 1700,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "63000,12000,79000,24000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 1701,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 1702,0 +va (VaSet +font "Verdana,9,1" +) +xt "63600,23800,75100,25000" +st "WaveformGenerator" +blo "63600,24800" +tm "BdLibraryNameMgr" +) +*49 (Text +uid 1703,0 +va (VaSet +font "Verdana,9,1" +) +xt "63600,24700,68200,25900" +st "lowpass" +blo "63600,25700" +tm "CptNameMgr" +) +*50 (Text +uid 1704,0 +va (VaSet +font "Verdana,9,1" +) +xt "63600,25600,67500,26800" +st "I_filty" +blo "63600,26600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1705,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1706,0 +text (MLText +uid 1707,0 +va (VaSet +font "Verdana,8,0" +) +xt "63000,27600,83800,29600" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = lowpassShiftBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*51 (Net +uid 1744,0 +decl (Decl +n "yLowpass" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 21,0 +) +declText (MLText +uid 1745,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,22400,27200,23400" +st "SIGNAL yLowpass : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*52 (Net +uid 1762,0 +decl (Decl +n "yParallel" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 23,0 +) +declText (MLText +uid 1763,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,23400,26400,24400" +st "SIGNAL yParallel : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*53 (Net +uid 1827,0 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 9 +suid 24,0 +) +declText (MLText +uid 1828,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18400,15700,19400" +st "SIGNAL triggerOut : std_ulogic" +) +) +*54 (Wire +uid 1556,0 +shape (OrthoPolyLine +uid 1557,0 +va (VaSet +vasetType 3 +) +xt "21000,42000,22250,52000" +pts [ +"22250,42000" +"21000,42000" +"21000,52000" +] +) +start &23 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1560,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1561,0 +va (VaSet +font "Verdana,12,0" +) +xt "17250,40700,21350,42100" +st "reset" +blo "17250,41900" +tm "WireNameMgr" +) +) +on &16 +) +*55 (Wire +uid 1564,0 +shape (OrthoPolyLine +uid 1565,0 +va (VaSet +vasetType 3 +) +xt "19000,40000,22250,52000" +pts [ +"22250,40000" +"19000,40000" +"19000,52000" +] +) +start &19 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1568,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1569,0 +va (VaSet +font "Verdana,12,0" +) +xt "17250,38700,21050,40100" +st "clock" +blo "17250,39900" +tm "WireNameMgr" +) +) +on &17 +) +*56 (Wire +uid 1637,0 +optionalChildren [ +*57 (BdJunction +uid 1645,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1646,0 +va (VaSet +vasetType 1 +) +xt "46600,35600,47400,36400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1638,0 +va (VaSet +vasetType 3 +) +xt "39750,36000,47000,52000" +pts [ +"39750,36000" +"47000,36000" +"47000,52000" +] +) +start &22 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1643,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1644,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,34600,46000,36000" +st "ySerial" +blo "41000,35800" +tm "WireNameMgr" +) +) +on &39 +) +*58 (Wire +uid 1647,0 +shape (OrthoPolyLine +uid 1648,0 +va (VaSet +vasetType 3 +) +xt "47000,8000,47000,36000" +pts [ +"47000,36000" +"47000,8000" +] +) +start &57 +end &27 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1651,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1652,0 +ro 270 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45600,31500,47000,36500" +st "ySerial" +blo "46800,36500" +tm "WireNameMgr" +) +) +on &39 +) +*59 (Wire +uid 1653,0 +shape (OrthoPolyLine +uid 1654,0 +va (VaSet +vasetType 3 +) +xt "59000,42000,62250,42000" +pts [ +"59000,42000" +"62250,42000" +] +) +end &34 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1657,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1658,0 +va (VaSet +font "Verdana,12,0" +) +xt "59000,40600,63100,42000" +st "reset" +blo "59000,41800" +tm "WireNameMgr" +) +) +on &16 +) +*60 (Wire +uid 1659,0 +shape (OrthoPolyLine +uid 1660,0 +va (VaSet +vasetType 3 +) +xt "59000,40000,62250,40000" +pts [ +"59000,40000" +"62250,40000" +] +) +end &32 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1663,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1664,0 +va (VaSet +font "Verdana,12,0" +) +xt "59000,38600,62800,40000" +st "clock" +blo "59000,39800" +tm "WireNameMgr" +) +) +on &17 +) +*61 (Wire +uid 1665,0 +shape (OrthoPolyLine +uid 1666,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "79750,36000,83000,52000" +pts [ +"79750,36000" +"83000,36000" +"83000,52000" +] +) +start &33 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1669,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1670,0 +va (VaSet +font "Verdana,12,0" +) +xt "81750,34600,88850,36000" +st "xLowapss" +blo "81750,35800" +tm "WireNameMgr" +) +) +on &41 +) +*62 (Wire +uid 1671,0 +shape (OrthoPolyLine +uid 1672,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "55000,8000,62250,36000" +pts [ +"62250,36000" +"55000,36000" +"55000,8000" +] +) +start &35 +end &27 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1675,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1676,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,34600,62100,36000" +st "xParallel" +blo "56000,35800" +tm "WireNameMgr" +) +) +on &42 +) +*63 (Wire +uid 1687,0 +optionalChildren [ +*64 (BdJunction +uid 1752,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1753,0 +va (VaSet +vasetType 1 +) +xt "44600,37600,45400,38400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1688,0 +va (VaSet +vasetType 3 +) +xt "39750,38000,45000,52000" +pts [ +"39750,38000" +"45000,38000" +"45000,52000" +] +) +start &21 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1691,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1692,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,36700,46000,38100" +st "xSerial" +blo "41000,37900" +tm "WireNameMgr" +) +) +on &40 +) +*65 (Wire +uid 1724,0 +shape (OrthoPolyLine +uid 1725,0 +va (VaSet +vasetType 3 +) +xt "59000,20000,62250,20000" +pts [ +"59000,20000" +"62250,20000" +] +) +end &44 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1728,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1729,0 +va (VaSet +font "Verdana,12,0" +) +xt "59000,18600,62800,20000" +st "clock" +blo "59000,19800" +tm "WireNameMgr" +) +) +on &17 +) +*66 (Wire +uid 1730,0 +shape (OrthoPolyLine +uid 1731,0 +va (VaSet +vasetType 3 +) +xt "59000,22000,62250,22000" +pts [ +"59000,22000" +"62250,22000" +] +) +end &46 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1735,0 +va (VaSet +font "Verdana,12,0" +) +xt "59000,20600,63100,22000" +st "reset" +blo "59000,21800" +tm "WireNameMgr" +) +) +on &16 +) +*67 (Wire +uid 1738,0 +shape (OrthoPolyLine +uid 1739,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "79750,16000,85000,52000" +pts [ +"79750,16000" +"85000,16000" +"85000,52000" +] +) +start &45 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1742,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1743,0 +va (VaSet +font "Verdana,12,0" +) +xt "81750,14700,88850,16100" +st "yLowpass" +blo "81750,15900" +tm "WireNameMgr" +) +) +on &51 +) +*68 (Wire +uid 1746,0 +shape (OrthoPolyLine +uid 1747,0 +va (VaSet +vasetType 3 +) +xt "45000,8000,45000,38000" +pts [ +"45000,38000" +"45000,8000" +] +) +start &64 +end &27 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1751,0 +ro 270 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "43700,9900,45100,14900" +st "xSerial" +blo "44900,14900" +tm "WireNameMgr" +) +) +on &40 +) +*69 (Wire +uid 1756,0 +shape (OrthoPolyLine +uid 1757,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "57000,8000,62250,16000" +pts [ +"62250,16000" +"57000,16000" +"57000,8000" +] +) +start &47 +end &27 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1760,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1761,0 +va (VaSet +font "Verdana,12,0" +) +xt "55250,14700,61350,16100" +st "yParallel" +blo "55250,15900" +tm "WireNameMgr" +) +) +on &52 +) +*70 (Wire +uid 1829,0 +shape (OrthoPolyLine +uid 1830,0 +va (VaSet +vasetType 3 +) +xt "39750,40000,43000,52000" +pts [ +"39750,40000" +"43000,40000" +"43000,52000" +] +) +start &20 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1833,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1834,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,38700,49100,40100" +st "triggerOut" +blo "41000,39900" +tm "WireNameMgr" +) +) +on &53 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *71 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*73 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*75 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*76 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*77 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*78 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*79 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*80 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-1400,-1400,125575,68200" +cachedDiagramExtent "0,0,99000,66400" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 2048,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*82 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*83 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*85 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*86 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*88 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*89 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*91 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*92 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*94 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*95 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*97 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*99 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*101 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5400,7000,6400" +st "Declarations" +blo "0,6200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6400,3400,7400" +st "Ports:" +blo "0,7200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7400,4800,8400" +st "Pre User:" +blo "0,8200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,8400,21800,15400" +st "constant signalBitNb: positive := 16; +constant phaseBitNb: positive := 17; +constant stepX: positive := 2; +constant stepY: positive := 3; +constant lowpassShiftBitNb: positive := 8; +constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,15400,9000,16400" +st "Diagram Signals:" +blo "0,16200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5400,6000,6400" +st "Post User:" +blo "0,6200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5400,0,5400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 24,0 +usingSuid 1 +emptyRow *102 (LEmptyRow +) +uid 727,0 +optionalChildren [ +*103 (RefLabelRowHdr +) +*104 (TitleRowHdr +) +*105 (FilterRowHdr +) +*106 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*107 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*108 (GroupColHdr +tm "GroupColHdrMgr" +) +*109 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*110 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*111 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*112 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*113 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*114 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*115 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 1 +suid 10,0 +) +) +uid 1570,0 +) +*116 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 11,0 +) +) +uid 1572,0 +) +*117 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ySerial" +t "std_ulogic" +o 3 +suid 15,0 +) +) +uid 1764,0 +) +*118 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "xSerial" +t "std_ulogic" +o 6 +suid 17,0 +) +) +uid 1766,0 +) +*119 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "xLowapss" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 18,0 +) +) +uid 1768,0 +) +*120 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "xParallel" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 19,0 +) +) +uid 1770,0 +) +*121 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "yLowpass" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 21,0 +) +) +uid 1772,0 +) +*122 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "yParallel" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 23,0 +) +) +uid 1774,0 +) +*123 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 9 +suid 24,0 +) +) +uid 1835,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 740,0 +optionalChildren [ +*124 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *125 (MRCItem +litem &102 +pos 9 +dimension 20 +) +uid 742,0 +optionalChildren [ +*126 (MRCItem +litem &103 +pos 0 +dimension 20 +uid 743,0 +) +*127 (MRCItem +litem &104 +pos 1 +dimension 23 +uid 744,0 +) +*128 (MRCItem +litem &105 +pos 2 +hidden 1 +dimension 20 +uid 745,0 +) +*129 (MRCItem +litem &115 +pos 0 +dimension 20 +uid 1571,0 +) +*130 (MRCItem +litem &116 +pos 1 +dimension 20 +uid 1573,0 +) +*131 (MRCItem +litem &117 +pos 2 +dimension 20 +uid 1765,0 +) +*132 (MRCItem +litem &118 +pos 3 +dimension 20 +uid 1767,0 +) +*133 (MRCItem +litem &119 +pos 4 +dimension 20 +uid 1769,0 +) +*134 (MRCItem +litem &120 +pos 5 +dimension 20 +uid 1771,0 +) +*135 (MRCItem +litem &121 +pos 6 +dimension 20 +uid 1773,0 +) +*136 (MRCItem +litem &122 +pos 7 +dimension 20 +uid 1775,0 +) +*137 (MRCItem +litem &123 +pos 8 +dimension 20 +uid 1836,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 746,0 +optionalChildren [ +*138 (MRCItem +litem &106 +pos 0 +dimension 20 +uid 747,0 +) +*139 (MRCItem +litem &108 +pos 1 +dimension 50 +uid 748,0 +) +*140 (MRCItem +litem &109 +pos 2 +dimension 100 +uid 749,0 +) +*141 (MRCItem +litem &110 +pos 3 +dimension 50 +uid 750,0 +) +*142 (MRCItem +litem &111 +pos 4 +dimension 100 +uid 751,0 +) +*143 (MRCItem +litem &112 +pos 5 +dimension 100 +uid 752,0 +) +*144 (MRCItem +litem &113 +pos 6 +dimension 50 +uid 753,0 +) +*145 (MRCItem +litem &114 +pos 7 +dimension 80 +uid 754,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 741,0 +vaOverrides [ +] +) +] +) +uid 726,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *146 (LEmptyRow +) +uid 756,0 +optionalChildren [ +*147 (RefLabelRowHdr +) +*148 (TitleRowHdr +) +*149 (FilterRowHdr +) +*150 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*151 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*152 (GroupColHdr +tm "GroupColHdrMgr" +) +*153 (NameColHdr +tm "GenericNameColHdrMgr" +) +*154 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*155 (InitColHdr +tm "GenericValueColHdrMgr" +) +*156 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*157 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 768,0 +optionalChildren [ +*158 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *159 (MRCItem +litem &146 +pos 0 +dimension 20 +) +uid 770,0 +optionalChildren [ +*160 (MRCItem +litem &147 +pos 0 +dimension 20 +uid 771,0 +) +*161 (MRCItem +litem &148 +pos 1 +dimension 23 +uid 772,0 +) +*162 (MRCItem +litem &149 +pos 2 +hidden 1 +dimension 20 +uid 773,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 774,0 +optionalChildren [ +*163 (MRCItem +litem &150 +pos 0 +dimension 20 +uid 775,0 +) +*164 (MRCItem +litem &152 +pos 1 +dimension 50 +uid 776,0 +) +*165 (MRCItem +litem &153 +pos 2 +dimension 100 +uid 777,0 +) +*166 (MRCItem +litem &154 +pos 3 +dimension 100 +uid 778,0 +) +*167 (MRCItem +litem &155 +pos 4 +dimension 50 +uid 779,0 +) +*168 (MRCItem +litem &156 +pos 5 +dimension 50 +uid 780,0 +) +*169 (MRCItem +litem &157 +pos 6 +dimension 80 +uid 781,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 769,0 +vaOverrides [ +] +) +] +) +uid 755,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/symbol.sb b/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/symbol.sb new file mode 100644 index 0000000..4af22fb --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/lissajous@generator_test/symbol.sb @@ -0,0 +1,1248 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds/lissajous@generator_test/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds/lissajous@generator_test/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds/lissajous@generator_test" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds/lissajousGenerator_test" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_test" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:27" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lissajous_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Lissajous_test/concat" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Lissajous_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "lissajousGenerator_test" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds/lissajous@generator_test/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Lissajous_test/hds/lissajousGenerator_test/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:27" +) +(vvPair +variable "unit" +value "lissajousGenerator_test" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,30100,15700" +st "Lissajous_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,34600,16600" +st "lissajousGenerator_test" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/04-Lissajous/Lissajous_test/hds/lissajous@generator_tester/interface b/04-Lissajous/Lissajous_test/hds/lissajous@generator_tester/interface new file mode 100644 index 0000000..22c1928 --- /dev/null +++ b/04-Lissajous/Lissajous_test/hds/lissajous@generator_tester/interface @@ -0,0 +1,1793 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 41,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 35,0 +) +) +uid 684,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 1 +suid 36,0 +) +) +uid 686,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 9 +suid 37,0 +) +) +uid 688,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "xLowapss" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 38,0 +) +) +uid 690,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "xSerial" +t "std_ulogic" +o 6 +suid 39,0 +) +) +uid 692,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "yLowpass" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 40,0 +) +) +uid 694,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "ySerial" +t "std_ulogic" +o 3 +suid 41,0 +) +) +uid 696,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 103,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 685,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 687,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 689,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 691,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 693,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 695,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 697,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 166,0 +) +*54 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 624,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *56 (MRCItem +litem &41 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*57 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 132,0 +) +*58 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 133,0 +) +*59 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*60 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 167,0 +) +*61 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 625,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*62 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 136,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 137,0 +) +*64 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 138,0 +) +*65 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 139,0 +) +*66 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 140,0 +) +*67 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 141,0 +) +*68 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajousGenerator_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "lissajousGenerator_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:48:11" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lissajous_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Lissajous_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Lissajous_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "lissajousGenerator_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajous@generator_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\..\\Lissajous_test\\hds\\lissajousGenerator_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\eda\\MentorGraphics\\ModelSim\\win64" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:48:11" +) +(vvPair +variable "unit" +value "lissajousGenerator_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 649,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 650,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 651,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 652,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10800" +st "clock" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 653,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62000,6800" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 35,0 +) +) +) +*71 (CptPort +uid 654,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 655,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 656,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 657,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,11100" +st "reset" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 658,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,61000,7600" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 1 +suid 36,0 +) +) +) +*72 (CptPort +uid 659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 660,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46625,5250,47375,6000" +) +tg (CPTG +uid 661,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 662,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "46300,7000,47700,15100" +st "triggerOut" +ju 2 +blo "47500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 663,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,62000,2800" +st "triggerOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 9 +suid 37,0 +) +) +) +*73 (CptPort +uid 664,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 665,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86625,5250,87375,6000" +) +tg (CPTG +uid 666,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 667,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "86300,7000,87700,14100" +st "xLowapss" +ju 2 +blo "87500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 668,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,73500,3600" +st "xLowapss : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "xLowapss" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 38,0 +) +) +) +*74 (CptPort +uid 669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 670,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48625,5250,49375,6000" +) +tg (CPTG +uid 671,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 672,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "48300,7000,49700,12000" +st "xSerial" +ju 2 +blo "49500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 673,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "xSerial : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "xSerial" +t "std_ulogic" +o 6 +suid 39,0 +) +) +) +*75 (CptPort +uid 674,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 675,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88625,5250,89375,6000" +) +tg (CPTG +uid 676,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 677,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "88300,7000,89700,14100" +st "yLowpass" +ju 2 +blo "89500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 678,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "yLowpass : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "yLowpass" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 40,0 +) +) +) +*76 (CptPort +uid 679,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 680,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 681,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 682,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "50300,7000,51700,12000" +st "ySerial" +ju 2 +blo "51500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 683,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62000,6000" +st "ySerial : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "ySerial" +t "std_ulogic" +o 3 +suid 41,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,95000,14000" +) +oxt "15000,6000,93000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "49650,9000,55850,10000" +st "Lissajous_test" +blo "49650,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "49650,10000,60350,11000" +st "lissajousGenerator_tester" +blo "49650,10800" +) +) +gi *77 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +) +xt "28000,6000,46100,10800" +st "Generic Declarations + +signalBitNb positive 16 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*78 (Grouping +uid 16,0 +optionalChildren [ +*79 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,50500,32200,50500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "49200,46500,49200,46500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "28200,48500,28200,48500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "49200,47200,63300,48400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,46500,53200,46500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "33350,46400,43650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "28200,49500,28200,49500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "28200,50500,28200,50500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,49500,32200,49500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *89 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +uid 49,0 +va (VaSet +font "Arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*91 (MLText +uid 50,0 +va (VaSet +) +xt "0,900,17500,4500" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "59,33,1075,723" +viewArea "-500,-500,85152,57543" +cachedDiagramExtent "0,0,95000,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Lissajous_test" +entityName "lissajousGenerator_test" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *92 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "0,12000,12700,13200" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "arial,8,0" +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "arial,8,0" +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *93 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,7600,44400,8600" +st "User:" +blo "42000,8400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +) +xt "44000,8600,44000,8600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 697,0 +activeModelName "Symbol:GEN" +) diff --git a/04-Lissajous/Prefs/hds.hdp b/04-Lissajous/Prefs/hds.hdp new file mode 100644 index 0000000..9eb87ee --- /dev/null +++ b/04-Lissajous/Prefs/hds.hdp @@ -0,0 +1,46 @@ +[Concat] +Board = $HDS_PROJECT_DIR/../Board/concat +[ModelSim] +Board = $SCRATCH_DIR/Board +DigitalToAnalogConverter = $SCRATCH_DIR/DigitalToAnalogConverter +DigitalToAnalogConverter_test = $SCRATCH_DIR/DigitalToAnalogConverter_test +Lattice = $SCRATCH_DIR/Lattice +Lissajous = $SCRATCH_DIR/Lissajous +Lissajous_test = $SCRATCH_DIR/Lissajous_test +SplineInterpolator = $SCRATCH_DIR/SplineInterpolator +SplineInterpolator_test = $SCRATCH_DIR/SplineInterpolator_test +WaveformGenerator = $SCRATCH_DIR/WaveformGenerator +WaveformGenerator_test = $SCRATCH_DIR/WaveformGenerator_test +[hdl] +Board = $HDS_PROJECT_DIR/../Board/hdl +DigitalToAnalogConverter = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl +DigitalToAnalogConverter_test = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hdl +ieee = $HDS_HOME/hdl_libs/ieee/hdl +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hdl +Lissajous = $HDS_PROJECT_DIR/../Lissajous/hdl +Lissajous_test = $HDS_PROJECT_DIR/../Lissajous_test/hdl +SplineInterpolator = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator/hdl +SplineInterpolator_test = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator_test/hdl +std = $HDS_HOME/hdl_libs/std/hdl +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hdl +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hdl +[hds] +Board = $HDS_PROJECT_DIR/../Board/hds +DigitalToAnalogConverter = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds +DigitalToAnalogConverter_test = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds +ieee = $HDS_HOME/hdl_libs/ieee/hds +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hds +Lissajous = $HDS_PROJECT_DIR/../Lissajous/hds +Lissajous_test = $HDS_PROJECT_DIR/../Lissajous_test/hds +SplineInterpolator = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator/hds +SplineInterpolator_test = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator_test/hds +std = $HDS_HOME/hdl_libs/std/hds +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hds +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hds +[hds_settings] +design_root = Board.lissajousGenerator_circuit_EBS3(masterVersion)lissajous@generator_circuit_@e@b@s3/master@version.bd +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/04-Lissajous/Prefs/hds_team/shared.hdp b/04-Lissajous/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/04-Lissajous/Prefs/hds_team/v2018.1/hds_team_prefs b/04-Lissajous/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/04-Lissajous/Prefs/hds_team/v2018.1/title_block.tmpl b/04-Lissajous/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/04-Lissajous/Prefs/hds_team/v2019.2/hds_team_prefs b/04-Lissajous/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/04-Lissajous/Prefs/hds_team/v2019.2/title_block.tmpl b/04-Lissajous/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/04-Lissajous/Prefs/hds_team/v2019.3/hds_team_prefs b/04-Lissajous/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/04-Lissajous/Prefs/hds_team/v2019.3/title_block.tmpl b/04-Lissajous/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/04-Lissajous/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/04-Lissajous/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..832b396 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6075 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/04-Lissajous/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/SEm_labs/04-Lissajous/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "899x918-9+1129" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +"Lissajous" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +"Lissajous_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 152 +yPos 1163 +width 1066 +height 937 +activeSidePanelTab 2 +activeLibraryTab 3 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +) +] diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..ef38408 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/chronometer.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/hds_user_prefs b/04-Lissajous/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/tasks/generate.tsk b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/04-Lissajous/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/hds_user_prefs b/04-Lissajous/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..dc45370 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6853 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\04-Lissajous\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\04-Lissajous\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\04-Lissajous\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\04-Lissajous\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x619+-1073+193" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +"Lissajous" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +"Lissajous_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 0 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"Board" +"Lattice" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/generate.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..7a0938e --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/lissajousGenerator.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/04-Lissajous/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/04-Lissajous/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/04-Lissajous/Scripts/cleanGenerated.bash b/04-Lissajous/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/04-Lissajous/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/04-Lissajous/Scripts/cleanGenerated.bat b/04-Lissajous/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/04-Lissajous/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/04-Lissajous/Scripts/cleanScratch.bat b/04-Lissajous/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/04-Lissajous/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/04-Lissajous/Scripts/generateSSHKey.bash b/04-Lissajous/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/04-Lissajous/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/04-Lissajous/Scripts/hdlDesigner.bash b/04-Lissajous/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/04-Lissajous/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/04-Lissajous/Scripts/hdlDesigner.bat b/04-Lissajous/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/04-Lissajous/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/04-Lissajous/Scripts/searchPaths.bat b/04-Lissajous/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/04-Lissajous/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/04-Lissajous/Scripts/trimLibs.pl b/04-Lissajous/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/04-Lissajous/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/04-Lissajous/Scripts/update_ise.pl b/04-Lissajous/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/04-Lissajous/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/ +-- ----------------------------------------------------------------------------- +-- Common Lib +-- +-- ----------------------------------------------------------------------------- +-- Authors: +-- cof: [François Corthay](francois.corthay@hevs.ch) +-- guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +-- ----------------------------------------------------------------------------- +-- Changelog: +-- 2016-06 : guo +-- added function sel +-- 2015-06 : guo +-- added counterBitNb +-- added documentation +-- ----------------------------------------------------------------------------- +library IEEE; + use IEEE.std_logic_1164.all; + use IEEE.numeric_std.all; + +PACKAGE CommonLib IS + + ------------------------------------------------------------------------------ + -- Returns the number of bits needed to represent the given val + -- Examples: + -- requiredBitNb(1) = 1 (1) + -- requiredBitNb(2) = 2 (10) + -- requiredBitNb(3) = 2 (11) + function requiredBitNb(val : integer) return integer; + + ------------------------------------------------------------------------------ + -- Returns the number of bits needed to count val times (0 to val-1) + -- Examples: + -- counterBitNb(1) = 1 (0) + -- counterBitNb(2) = 1 (0->1) + -- counterBitNb(3) = 2 (0->1->10) + function counterBitNb(val : integer) return integer; + + ------------------------------------------------------------------------------ + -- Functions to return one or the other input based on a boolean. + -- Can be used to build conditional constants. + -- Example: + -- constant bonjour_c : string := sel(ptpRole = master, "fpga20", "fpga02"); + function sel(Cond : BOOLEAN; If_True, If_False : integer) + return integer; + function sel(Cond : BOOLEAN; If_True, If_False : string) + return string; + function sel(Cond : BOOLEAN; If_True, If_False : std_ulogic_vector) + return std_ulogic_vector; + function sel(Cond : BOOLEAN; If_True, If_False : unsigned) + return unsigned; + function sel(Cond : BOOLEAN; If_True, If_False : signed) + return signed; + +END CommonLib; + + + + +-------------------------------------------------------------------------------- +-- Copyright 2012 HES-SO Valais Wallis (www.hevs.ch) +-------------------------------------------------------------------------------- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program IS distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- You should have received a copy of the GNU General Public License along with +-- this program. If not, see +-- ----------------------------------------------------------------------------- +-- Often used functions +-- +-- ----------------------------------------------------------------------------- +-- Authors: +-- cof: [François Corthay](francois.corthay@hevs.ch) +-- guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +-- ----------------------------------------------------------------------------- +-- Changelog: +-- 2016-06 : guo +-- added function sel +-- 2015-06 : guo +-- added counterBitNb +-- ----------------------------------------------------------------------------- +PACKAGE BODY CommonLib IS + + function requiredBitNb (val : integer) return integer is + variable powerOfTwo, bitNb : integer; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo <= val loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end requiredBitNb; + + function counterBitNb (val : integer) return integer is + variable powerOfTwo, bitNb : integer; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo < val loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end counterBitNb; + + function sel(Cond : BOOLEAN; If_True, If_False : integer) + return integer is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : string) + return string is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : std_ulogic_vector) + return std_ulogic_vector is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : unsigned) + return unsigned is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : signed) + return signed is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + +END CommonLib; + + + + +-- library Common; + use work.CommonLib.all; + +architecture RTL of FIFO_bram is + + subtype register_type is std_ulogic_vector(dataIn'high downto 0); + type memory_type is array (0 to depth-1) of register_type; + + signal writeCounter: unsigned(requiredBitNb(depth-1)-1 downto 0); + signal readCounter: unsigned(writeCounter'range); + signal memoryArray: memory_type; + + type fifoStateType is ( + sEmpty, sFull, + sRead, sWrite, sWriteFirst, + sReadWrite, sWait + ); + signal fifoState: fifoStateType; + signal emptyCondition, fullCondition, empty_int: std_ulogic; + +begin + ------------------------------------------------------------------------------ + -- read and write counters + updateWriteCounter: process(reset, clock) + begin + if reset = '1' then + writeCounter <= (others => '0'); + elsif rising_edge(clock) then + if (write = '1') and (fullCondition = '0') then + writeCounter <= writeCounter + 1; + end if; + end if; + end process updateWriteCounter; + + updateReadCounter: process(reset, clock) + begin + if reset = '1' then + readCounter <= (others => '0'); + elsif rising_edge(clock) then + if (read = '1') and (empty_int = '0') then + readCounter <= readCounter + 1; + end if; + end if; + end process updateReadCounter; + + ------------------------------------------------------------------------------ + -- memory access + writeMem: process(clock) + begin + if rising_edge(clock) then + if (write = '1') and (fullCondition = '0') then + memoryArray(to_integer(writeCounter)) <= dataIn; + end if; + end if; + end process writeMem; + + readMem: process(reset, clock) + begin + if reset = '1' then + dataOut <= (others => '0'); + elsif rising_edge(clock) then + if (read = '0') or (empty_int = '1') then + dataOut <= memoryArray(to_integer(readCounter)); + else + dataOut <= memoryArray(to_integer(readCounter+1)); + end if; + end if; + end process readMem; + + ------------------------------------------------------------------------------ + -- controls + emptyCondition <= '1' when + ( (fifoState = sRead) and (writeCounter = readCounter) ) or + (fifoState = sEmpty) + else '0'; + + fullCondition <= '1' when + ( (fifoState = sWrite) and (writeCounter = readCounter) ) or + (fifoState = sFull) + else '0'; + + + fifoControl: process(reset, clock) + begin + if reset = '1' then + fifoState <= sEmpty; + elsif rising_edge(clock) then + case fifoState is + when sEmpty => + if write = '1' then + fifoState <= sWriteFirst; + end if; + when sFull => + if (read = '1') then + fifoState <= sRead; + end if; + when sRead => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif write = '1' then + fifoState <= sWrite; + elsif emptyCondition = '1' then + fifoState <= sEmpty; + elsif read = '1' then + fifoState <= sRead; + else + fifoState <= sWait; + end if; + when sWriteFirst => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif write = '1' then + fifoState <= sWrite; + elsif read = '1' then + fifoState <= sRead; + else + fifoState <= sWait; + end if; + when sWrite => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif read = '1' then + fifoState <= sRead; + elsif fullCondition = '1' then + fifoState <= sFull; + elsif write = '1' then + fifoState <= sWrite; + else + fifoState <= sWait; + end if; + when sReadWrite => + if (read = '0') and (write = '0') then + fifoState <= sWait; + elsif (read = '1') and (write = '0') then + fifoState <= sRead; + elsif (write = '1') and (read = '0') then + fifoState <= sWrite; + end if; + when sWait => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif read = '1' then + fifoState <= sRead; + elsif write = '1' then + fifoState <= sWrite; + end if; + when others => null; + end case; + end if; + end process fifoControl; + + + full <= '1' when + (fifoState = sFull) or + (fullCondition = '1') + else '0'; + + empty_int <= '1' when + (fifoState = sEmpty) or + (fifoState = sWriteFirst) or + ( (emptyCondition = '1') and (fifoState = sRead) ) + else '0'; + empty <= empty_int; + +end RTL; + + + + +-- VHDL Entity Morse.morseToCharDecoder.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY morseToCharDecoder IS + GENERIC( + unitCountDivide : positive := 100; + unitCountBitNb : positive := 2; + characterBitNb : positive := 8 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + charValid : OUT std_ulogic; + symbolDuration : IN unsigned (unitCountBitNb-1 DOWNTO 0); + symbolValid : IN std_ulogic; + symbolValue : IN std_ulogic; + charOut : OUT std_ulogic_vector (characterBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END morseToCharDecoder ; + + + + + +ARCHITECTURE masterVersion OF morseToCharDecoder IS + + constant shortDuration : positive := 1; + constant longDuration : positive := 3; + constant veryLongDuration : positive := 5; + signal isShort, isLong, isVeryLong : std_ulogic; + + type decoderStateType is ( + idle, + atA, atB, atC, atD, atE, atF, atG, atH, atI, atJ, + atK, atL, atM, atN, atO, atP, atQ, atR, atS, atT, + atU, atV, atW, atX, atY, atZ, + atO1, atO2, atU2, + at0, at1, at2, at3, at4, at5, at6, at7, at8, at9, + endOfCharacter, endOfWord + ); + signal decoderState : decoderStateType; + +BEGIN + -- decode symbol lengths + isShort <= '1' when symbolDuration = shortDuration else '0'; + isLong <= '1' when symbolDuration = longDuration else '0'; + isVeryLong <= '1' when symbolDuration = veryLongDuration else '0'; + -- decode Morse Code + updateState: process(reset, clock) + begin + if reset = '1' then + decoderState <= idle; + elsif rising_edge(clock) then + if symbolValid = '1' then + case decoderState is + when idle => + if symbolValue = '1' then + if isShort = '1' then + decoderState <= atE; + else + decoderState <= atT; + end if; + end if; + when atA => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atR; + else + decoderState <= atW; + end if; + end if; + when atB => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= at6; + else + decoderState <= idle; + end if; + end if; + when atC => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atD => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atB; + else + decoderState <= atX; + end if; + end if; + when atE => + if symbolValue = '0' then + if isLong = '1' then -- end of character + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then -- end of word + decoderState <= endOfWord; + end if; + else -- next character symbol + if isShort = '1' then + decoderState <= atI; + else + decoderState <= atA; + end if; + end if; + when atF => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atG => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atZ; + else + decoderState <= atQ; + end if; + end if; + when atH => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= at5; + else + decoderState <= at4; + end if; + end if; + when atI => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atS; + else + decoderState <= atU; + end if; + end if; + when atJ => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= idle; + else + decoderState <= at1; + end if; + end if; + when atK => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atC; + else + decoderState <= atY; + end if; + end if; + when atL => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atM => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atG; + else + decoderState <= atO; + end if; + end if; + when atN => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atD; + else + decoderState <= atK; + end if; + end if; + when atO => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atO1; + else + decoderState <= atO2; + end if; + end if; + when atO1 => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= at8; + else + decoderState <= idle; + end if; + end if; + when atO2 => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= at9; + else + decoderState <= at0; + end if; + end if; + when atP => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atQ => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atR => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atL; + else + decoderState <= idle; + end if; + end if; + when atS => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atH; + else + decoderState <= atV; + end if; + end if; + when atT => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atN; + else + decoderState <= atM; + end if; + end if; + when atU => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atF; + else + decoderState <= atU2; + end if; + end if; + when atU2 => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= idle; + else + decoderState <= at2; + end if; + end if; + when atV => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= idle; + else + decoderState <= at3; + end if; + end if; + when atW => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= atP; + else + decoderState <= atJ; + end if; + end if; + when atX => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atY => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when atZ => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + if isShort = '1' then + decoderState <= at7; + else + decoderState <= idle; + end if; + end if; + when at0 | at1 | at2 | at3 | at4 | at5 | at6 | at7 | at8 | at9 => + if symbolValue = '0' then + if isLong = '1' then + decoderState <= endOfCharacter; + elsif isVeryLong = '1' then + decoderState <= endOfWord; + end if; + else + decoderState <= idle; + end if; + when others => null; + end case; + else + case decoderState is + when endOfCharacter => decoderState <= idle; + when endOfWord => decoderState <= idle; + when others => null; + end case; + end if; + end if; + end process updateState; + -- provide character + provideCharacter: process(reset, clock) + -- could be combinatorial, but made sequential for easier debug + begin + if reset = '1' then + charValid <= '0'; + charOut <= (others => '0'); + elsif rising_edge(clock) then + charValid <= '0'; + if (symbolValid = '1') and (symbolValue = '0') then + if (isLong = '1') or (isVeryLong = '1') then + charValid <= '1'; + case decoderState is + when atA => + charOut <= std_ulogic_vector(to_unsigned(character'pos('a'), charOut'length)); + when atB => + charOut <= std_ulogic_vector(to_unsigned(character'pos('b'), charOut'length)); + when atC => + charOut <= std_ulogic_vector(to_unsigned(character'pos('c'), charOut'length)); + when atD => + charOut <= std_ulogic_vector(to_unsigned(character'pos('d'), charOut'length)); + when atE => + charOut <= std_ulogic_vector(to_unsigned(character'pos('e'), charOut'length)); + when atF => + charOut <= std_ulogic_vector(to_unsigned(character'pos('f'), charOut'length)); + when atG => + charOut <= std_ulogic_vector(to_unsigned(character'pos('g'), charOut'length)); + when atH => + charOut <= std_ulogic_vector(to_unsigned(character'pos('h'), charOut'length)); + when atI => + charOut <= std_ulogic_vector(to_unsigned(character'pos('i'), charOut'length)); + when atJ => + charOut <= std_ulogic_vector(to_unsigned(character'pos('j'), charOut'length)); + when atK => + charOut <= std_ulogic_vector(to_unsigned(character'pos('k'), charOut'length)); + when atL => + charOut <= std_ulogic_vector(to_unsigned(character'pos('l'), charOut'length)); + when atM => + charOut <= std_ulogic_vector(to_unsigned(character'pos('m'), charOut'length)); + when atN => + charOut <= std_ulogic_vector(to_unsigned(character'pos('n'), charOut'length)); + when atO => + charOut <= std_ulogic_vector(to_unsigned(character'pos('o'), charOut'length)); + when atP => + charOut <= std_ulogic_vector(to_unsigned(character'pos('p'), charOut'length)); + when atQ => + charOut <= std_ulogic_vector(to_unsigned(character'pos('q'), charOut'length)); + when atR => + charOut <= std_ulogic_vector(to_unsigned(character'pos('r'), charOut'length)); + when atS => + charOut <= std_ulogic_vector(to_unsigned(character'pos('s'), charOut'length)); + when atT => + charOut <= std_ulogic_vector(to_unsigned(character'pos('t'), charOut'length)); + when atU => + charOut <= std_ulogic_vector(to_unsigned(character'pos('u'), charOut'length)); + when atV => + charOut <= std_ulogic_vector(to_unsigned(character'pos('v'), charOut'length)); + when atW => + charOut <= std_ulogic_vector(to_unsigned(character'pos('w'), charOut'length)); + when atX => + charOut <= std_ulogic_vector(to_unsigned(character'pos('x'), charOut'length)); + when atY => + charOut <= std_ulogic_vector(to_unsigned(character'pos('y'), charOut'length)); + when atZ => + charOut <= std_ulogic_vector(to_unsigned(character'pos('z'), charOut'length)); + when at0 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('0'), charOut'length)); + when at1 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('1'), charOut'length)); + when at2 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('2'), charOut'length)); + when at3 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('3'), charOut'length)); + when at4 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('4'), charOut'length)); + when at5 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('5'), charOut'length)); + when at6 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('6'), charOut'length)); + when at7 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('7'), charOut'length)); + when at8 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('8'), charOut'length)); + when at9 => + charOut <= std_ulogic_vector(to_unsigned(character'pos('9'), charOut'length)); + when others => charOut <= (others => '-'); + end case; + end if; + elsif decoderState = endOfWord then + charValid <= '1'; + charOut <= std_ulogic_vector(to_unsigned(character'pos(' '), charOut'length)); + end if; + end if; + end process provideCharacter; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity Morse.envelopeRetreiver.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY envelopeRetreiver IS + GENERIC( + toneDivide : positive := 100E3; + deglitchBitNb : positive := 8 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + morseWithTone : IN std_ulogic; + morseEnvelope : OUT std_ulogic + ); + +-- Declarations + +END envelopeRetreiver ; + + + + + +-- library Common; + use work.CommonLib.all; + +ARCHITECTURE masterVersion OF envelopeRetreiver IS + + signal morseDelayed, morseRising : std_ulogic; + constant toneCounterBitNb: positive := requiredBitNb(toneDivide-1) + 1; + signal toneCounter, tonePeriod: unsigned(toneCounterBitNb-1 downto 0); + constant triggerShift : positive := 3; + constant triggerMin : positive := toneDivide - toneDivide/2**triggerShift; + constant triggerMax : positive := toneDivide + toneDivide/2**triggerShift; + signal morseTriggered : std_ulogic; + signal deglitchCounter: unsigned(deglitchBitNb-1 downto 0); + +BEGIN + -- find input rising edge + delayMorseIn: process(reset, clock) + begin + if reset = '1' then + morseDelayed <= '1'; + elsif rising_edge(clock) then + morseDelayed <= morseWithTone; + end if; + end process delayMorseIn; + + morseRising <= '1' when (morseWithTone = '1') and (morseDelayed = '0') + else '0'; + -- count period of incoming signal + countInputPeriod: process(reset, clock) + begin + if reset = '1' then + toneCounter <= (others => '0'); + tonePeriod <= (others => '0'); + elsif rising_edge(clock) then + if morseRising = '1' then + toneCounter <= (others => '0'); + tonePeriod <= toneCounter; + elsif toneCounter+1 /= 0 then + toneCounter <= toneCounter + 1; + end if; + end if; + end process countInputPeriod; + -- trigger morse signal + triggerMorse: process(tonePeriod, toneCounter) + begin + morseTriggered <= '1'; + if tonePeriod < triggerMin then + morseTriggered <= '0'; + end if; + if tonePeriod > triggerMax then + morseTriggered <= '0'; + end if; + if toneCounter > triggerMax then + morseTriggered <= '0'; + end if; + end process triggerMorse; + -- deglitch morse signal + countDeglitchDuration: process(reset, clock) + begin + if reset = '1' then + deglitchCounter <= (others => '0'); + elsif rising_edge(clock) then + if morseTriggered = '1' then + if deglitchCounter+1 /= 0 then + deglitchCounter <= deglitchCounter + 1; + end if; + else + if deglitchCounter /= 0 then + deglitchCounter <= deglitchCounter - 1; + end if; + end if; + end if; + end process countDeglitchDuration; + + trigDeglitchCounter: process(reset, clock) + begin + if reset = '1' then + morseEnvelope <= '0'; + elsif rising_edge(clock) then + if deglitchCounter+1 = 0 then + morseEnvelope <= '1'; + end if; + if deglitchCounter = 0 then + morseEnvelope <= '0'; + end if; + end if; + end process trigDeglitchCounter; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity Morse.symbolLengthCounter.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY symbolLengthCounter IS + GENERIC( + unitCountDivide : positive := 100; + unitCountBitNb : positive := 2 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + morseCode : IN std_ulogic; + symbolDuration : OUT unsigned (unitCountBitNb-1 DOWNTO 0); + symbolValid : OUT std_ulogic; + symbolValue : OUT std_ulogic + ); + +-- Declarations + +END symbolLengthCounter ; + + + + + +-- library Common; + use work.CommonLib.all; + +ARCHITECTURE masterVersion OF symbolLengthCounter IS + + signal morseDelayed, morseChanged : std_ulogic; + signal unitCounter : unsigned(requiredBitNb(unitCountDivide/2-1)-1 downto 0); + signal unitDone : std_ulogic; + signal durationCounter : unsigned(unitCountBitNb+1-1 downto 0); + constant shortDuration : positive := 1; + constant longDuration : positive := 3; + constant veryLongDuration : positive := 5; + +BEGIN + -- find input change + delayMorseCode: process(reset, clock) + begin + if reset = '1' then + morseDelayed <= '1'; + elsif rising_edge(clock) then + morseDelayed <= morseCode; + end if; + end process delayMorseCode; + + morseChanged <= '1' when morseDelayed /= morseCode + else '0'; + -- count half unit duration + countHalfUnitPeriod: process(reset, clock) + begin + if reset = '1' then + unitCounter <= (others => '0'); + elsif rising_edge(clock) then + if morseChanged = '1' then + unitCounter <= (others => '0'); + elsif unitDone = '1' then + unitCounter <= (others => '0'); + else + unitCounter <= unitCounter + 1; + end if; + end if; + end process countHalfUnitPeriod; + + unitDone <= '1' when unitCounter = unitCountDivide/2-1 + else '0'; + -- count unit number + countUnitNumber: process(reset, clock) + begin + if reset = '1' then + durationCounter <= (others => '0'); + elsif rising_edge(clock) then + if morseChanged = '1' then + durationCounter <= (others => '0'); + elsif unitDone = '1' then + if durationCounter+1 /= 0 then + durationCounter <= durationCounter + 1; + end if; + end if; + end if; + end process countUnitNumber; + -- provide symbol information + provideSymbolInformation: process(reset, clock) + -- could be combinatorial, but made sequential for easier debug + begin + if reset = '1' then + symbolValid <= '0'; + symbolValue <= '0'; + symbolDuration <= (others => '0'); + elsif rising_edge(clock) then + symbolValid <= '0'; + if morseChanged = '1' then + symbolValue <= not morseCode; + symbolValid <= '0'; + symbolDuration <= (others => '0'); + if (durationCounter >= 2*shortDuration-1) and + (durationCounter <= 2*shortDuration+1) then + symbolValid <= '1'; + symbolDuration <= to_unsigned(shortDuration, symbolDuration'length); + end if; + if (durationCounter >= 2*longDuration-1) and + (durationCounter <= 2*longDuration+1) then + symbolValid <= '1'; + symbolDuration <= to_unsigned(longDuration, symbolDuration'length); + end if; + end if; + if (durationCounter = 2*veryLongDuration-1) and (unitDone = '1') then + symbolValue <= morseCode; + symbolValid <= '1'; + symbolDuration <= to_unsigned( + veryLongDuration, symbolDuration'length + ); + end if; + end if; + end process provideSymbolInformation; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity RS232.serialPortTransmitter.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:45:48 08/28/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY serialPortTransmitter IS + GENERIC( + dataBitNb : positive := 8; + baudRateDivide : positive := 2083 + ); + PORT( + TxD : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + send : IN std_ulogic; + busy : OUT std_ulogic + ); + +-- Declarations + +END serialPortTransmitter ; + + + + + +-- library Common; + use work.CommonLib.all; + +architecture RTL of serialPortTransmitter is + + signal dividerCounter: unsigned(requiredBitNb(baudRateDivide)-1 downto 0); + signal dividerCounterReset: std_uLogic; + signal txData: std_ulogic_vector(dataBitNb-1 downto 0); + signal send1: std_uLogic; + signal txShiftEnable: std_uLogic; + signal txShiftReg: std_ulogic_vector(dataBitNb+1 downto 0); + signal txSendingByte: std_uLogic; + signal txSendingByteAndStop: std_uLogic; + +begin + + divide: process(reset, clock) + begin + if reset = '1' then + dividerCounter <= (others => '0'); + elsif rising_edge(clock) then + if dividerCounterReset = '1' then + dividerCounter <= to_unsigned(1, dividerCounter'length); + else + dividerCounter <= dividerCounter + 1; + end if; + end if; + end process divide; + + endOfCount: process(dividerCounter, send1) + begin + if dividerCounter = baudRateDivide then + dividerCounterReset <= '1'; + elsif send1 = '1' then + dividerCounterReset <= '1'; + else + dividerCounterReset <= '0'; + end if; + end process endOfCount; + + txShiftEnable <= dividerCounterReset; + + storeData: process(reset, clock) + begin + if reset = '1' then + txData <= (others => '1'); + elsif rising_edge(clock) then + if send = '1' then + txData <= dataIn; + end if; + end if; + end process storeData; + + delaySend: process(reset, clock) + begin + if reset = '1' then + send1 <= '0'; + elsif rising_edge(clock) then + send1 <= send; + end if; + end process delaySend; + + shiftReg: process(reset, clock) + begin + if reset = '1' then + txShiftReg <= (others => '1'); + elsif rising_edge(clock) then + if txShiftEnable = '1' then + if send1 = '1' then + txShiftReg <= '0' & txData & '0'; + else + txShiftReg(txShiftReg'high-1 downto 0) <= txShiftReg(txShiftReg'high downto 1); + txShiftReg(txShiftReg'high) <= '1'; + end if; + end if; + end if; + end process shiftReg; + + txSendingByte <= '1' when (txShiftReg(txShiftReg'high downto 1) /= (txShiftReg'high downto 1 => '1')) + else '0'; + + txSendingByteAndStop <= '1' when txShiftReg /= (txShiftReg'high downto 0 => '1') + else '0'; + + TxD <= txShiftReg(0) when txSendingByte = '1' else '1'; + busy <= txSendingByteAndStop or send1 or send; + +end RTL; + + + + + +-- +-- VHDL Architecture Morse.morseDecoder.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 08:02:13 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Memory; +-- LIBRARY Morse; +-- LIBRARY RS232; + +ARCHITECTURE struct OF morseDecoder IS + + -- Architecture declarations + constant unitCountBitNb: positive := 3; + constant fifoDepth : positive := 8; + + -- Internal signal declarations + SIGNAL symbolValue : std_ulogic; + SIGNAL symbolValid : std_ulogic; + SIGNAL symbolDuration : unsigned(unitCountBitNb-1 DOWNTO 0); + SIGNAL charValid : std_ulogic; + SIGNAL charOut : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0); + SIGNAL txWord : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0); + SIGNAL txBusy : std_ulogic; + SIGNAL txSend : std_ulogic; + SIGNAL txFifoEmpty : std_ulogic; + + -- Implicit buffer signal declarations + SIGNAL morseEnvelope_internal : std_ulogic; + + + -- Component Declarations + COMPONENT FIFO_bram + GENERIC ( + dataBitNb : positive := 8; + depth : positive := 8 + ); + PORT ( + write : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + read : IN std_ulogic ; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + empty : OUT std_ulogic ; + full : OUT std_ulogic + ); + END COMPONENT; + COMPONENT envelopeRetreiver + GENERIC ( + toneDivide : positive := 100E3; + deglitchBitNb : positive := 8 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + morseWithTone : IN std_ulogic ; + morseEnvelope : OUT std_ulogic + ); + END COMPONENT; + COMPONENT morseToCharDecoder + GENERIC ( + unitCountDivide : positive := 100; + unitCountBitNb : positive := 2; + characterBitNb : positive := 8 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + charValid : OUT std_ulogic ; + symbolDuration : IN unsigned (unitCountBitNb-1 DOWNTO 0); + symbolValid : IN std_ulogic ; + symbolValue : IN std_ulogic ; + charOut : OUT std_ulogic_vector (characterBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT symbolLengthCounter + GENERIC ( + unitCountDivide : positive := 100; + unitCountBitNb : positive := 2 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + morseCode : IN std_ulogic ; + symbolDuration : OUT unsigned (unitCountBitNb-1 DOWNTO 0); + symbolValid : OUT std_ulogic ; + symbolValue : OUT std_ulogic + ); + END COMPONENT; + COMPONENT serialPortTransmitter + GENERIC ( + dataBitNb : positive := 8; + baudRateDivide : positive := 2083 + ); + PORT ( + TxD : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + send : IN std_ulogic ; + busy : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : FIFO_bram USE ENTITY Memory.FIFO_bram; +-- FOR ALL : envelopeRetreiver USE ENTITY Morse.envelopeRetreiver; +-- FOR ALL : morseToCharDecoder USE ENTITY Morse.morseToCharDecoder; +-- FOR ALL : serialPortTransmitter USE ENTITY RS232.serialPortTransmitter; +-- FOR ALL : symbolLengthCounter USE ENTITY Morse.symbolLengthCounter; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 2 eb2 + process(reset, clock) + begin + if reset = '1' then + txSend <= '0'; + elsif rising_edge(clock) then + if ( (txFifoEmpty = '0') and (txBusy = '0') ) then + txSend <= '1'; + else + txSend <= '0'; + end if; + end if; + end process; + + + + -- Instance port mappings. + I0 : FIFO_bram + GENERIC MAP ( + dataBitNb => uartDataBitNb, + depth => fifoDepth + ) + PORT MAP ( + write => charValid, + clock => clock, + reset => reset, + dataOut => txWord, + read => txSend, + dataIn => charOut, + empty => txFifoEmpty, + full => OPEN + ); + I_env : envelopeRetreiver + GENERIC MAP ( + toneDivide => integer(clockFrequency/toneFrequency + 0.5), + deglitchBitNb => deglitchBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + morseWithTone => morseCode, + morseEnvelope => morseEnvelope_internal + ); + I_dec : morseToCharDecoder + GENERIC MAP ( + unitCountDivide => integer(clockFrequency*unitDuration + 0.5), + unitCountBitNb => unitCountBitNb, + characterBitNb => uartDataBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + charValid => charValid, + symbolDuration => symbolDuration, + symbolValid => symbolValid, + symbolValue => symbolValue, + charOut => charOut + ); + I_len : symbolLengthCounter + GENERIC MAP ( + unitCountDivide => integer(clockFrequency*unitDuration + 0.5), + unitCountBitNb => unitCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + morseCode => morseEnvelope_internal, + symbolDuration => symbolDuration, + symbolValid => symbolValid, + symbolValue => symbolValue + ); + I_tx : serialPortTransmitter + GENERIC MAP ( + dataBitNb => uartDataBitNb, + baudRateDivide => integer(clockFrequency/uartBaudRate + 0.5) + ) + PORT MAP ( + TxD => TxD, + clock => clock, + reset => reset, + dataIn => txWord, + send => txSend, + busy => txBusy + ); + + -- Implicit buffered output assignments + morseEnvelope <= morseEnvelope_internal; + +END struct; + + + + +-- VHDL Entity Morse.morseEncoder.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY morseEncoder IS + GENERIC( + clockFrequency : real := 100.0E6; + uartBaudRate : real := 115.2E3; + uartDataBitNb : positive := 8; + unitDuration : real := 100.0E-3; + toneFrequency : real := 300.0 + ); + PORT( + morseCode : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + RxD : IN std_ulogic + ); + +-- Declarations + +END morseEncoder ; + + + + + +-- VHDL Entity Morse.charToMorse.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:49:52 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY charToMorse IS + GENERIC( + characterBitNb : positive := 8; + unitCountDivide : positive := 10E3 + ); + PORT( + morseOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + charIn : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0); + readChar : OUT std_ulogic; + charNotReady : IN std_ulogic + ); + +-- Declarations + +END charToMorse ; + + + + + +-- VHDL Entity Morse.unitCounter.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY unitCounter IS + GENERIC( + unitCountDivide : positive := 10E3; + unitCountBitNb : positive := 3 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + startCounter : IN std_ulogic; + unitNb : IN unsigned (unitCountBitNb-1 DOWNTO 0); + done : OUT std_ulogic + ); + +-- Declarations + +END unitCounter ; + + + + + +-- library Common; + use work.CommonLib.all; + +ARCHITECTURE masterVersion OF unitCounter IS + + signal unitCounter: unsigned(requiredBitNb(unitCountDivide)-1 downto 0); + signal unitCountDone: std_ulogic; + signal unitNbCounter: unsigned(unitnB'range); + signal unitNbCountDone: std_ulogic; + +BEGIN + -- count unit base period + countUnitDuration: process(reset, clock) + begin + if reset = '1' then + unitCounter <= (others => '0'); + elsif rising_edge(clock) then + if unitCounter = 0 then + if (startCounter = '1') or (unitNbCounter > 0) then + unitCounter <= unitCounter + 1; + end if; + else + if unitCountDone = '0' then + unitCounter <= unitCounter + 1; + else + unitCounter <= (others => '0'); + end if; + end if; + end if; + end process countUnitDuration; + + unitCountDone <= '1' when unitCounter = unitCountDivide + else '0'; + -- count unit period number + countPeriods: process(reset, clock) + begin + if reset = '1' then + unitNbCounter <= (others => '0'); + elsif rising_edge(clock) then + if unitNbCounter = 0 then + if startCounter = '1' then + unitNbCounter <= unitNbCounter + 1; + end if; + else + if unitNbCountDone = '0' then + if unitCountDone = '1' then + unitNbCounter <= unitNbCounter + 1; + end if; + else + unitNbCounter <= (others => '0'); + end if; + end if; + end if; + end process countPeriods; + + unitNbCountDone <= '1' when (unitNbCounter = unitNb) and (unitCountDone = '1') + else '0'; + + done <= unitNbCountDone; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity Morse.charToMorseController.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY charToMorseController IS + GENERIC( + characterBitNb : positive := 8; + unitCountBitNb : positive := 3 + ); + PORT( + morseOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + charNotReady : IN std_ulogic; + char : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0); + startCounter : OUT std_ulogic; + unitNb : OUT unsigned (unitCountBitNb-1 DOWNTO 0); + counterDone : IN std_ulogic; + readChar : OUT std_ulogic + ); + +-- Declarations + +END charToMorseController ; + + + + + +ARCHITECTURE masterVersion OF charToMorseController IS + -- sequence for characters + type characterStateType is ( + idle, waitReg, + sA, sB, sC, sD, sE, sF, sG, sH, sI, sJ, sK, sL, sM, sN, sO, sP, + sQ, sR, sS, sT, sU, sV, sW, sX, sY, sZ, + s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, + s2a, s8a, s9a, + popChar, waitEndOfChar + ); + signal characterState : characterStateType; + signal isA, isB, isC, isD, isE, isF, isG, isH, + isI, isJ, isK, isL, isM, isN, isO, isP, + isQ, isR, isS, isT, isU, isV, isW, isX, + isY, isZ, + is0, is1, is2, is3, is4, is5, is6, is7, + is8, is9 : std_ulogic; + signal gotoE, gotoI, gotoS, gotoH, goto5, + gotoF, + gotoL, gotoR, + gotoP, + gotoN, gotoD, gotoB, goto6, + gotoC, + gotoG, gotoZ, goto7, + goto8, + goto9, + gotoT : std_ulogic; + -- inter-FSM signalling + signal sendDot, sendDash, sendSeparator, sendDotDashDone: std_ulogic; + -- sequence for morse units + type sequencerStateType is ( + idle, + startDot, sendingDot, startDash, sendingDash, + startSeparator, waitingSeparator, startSeparator2, waitingSeparator2, + dotDashDone + ); + signal sequencerState : sequencerStateType; + +BEGIN + ------------------------------------------------------------------------------ + -- conditions for morse units + isA <= '1' when std_match(unsigned(char), "1-0" & x"1") else '0'; + isB <= '1' when std_match(unsigned(char), "1-0" & x"2") else '0'; + isC <= '1' when std_match(unsigned(char), "1-0" & x"3") else '0'; + isD <= '1' when std_match(unsigned(char), "1-0" & x"4") else '0'; + isE <= '1' when std_match(unsigned(char), "1-0" & x"5") else '0'; + isF <= '1' when std_match(unsigned(char), "1-0" & x"6") else '0'; + isG <= '1' when std_match(unsigned(char), "1-0" & x"7") else '0'; + isH <= '1' when std_match(unsigned(char), "1-0" & x"8") else '0'; + isI <= '1' when std_match(unsigned(char), "1-0" & x"9") else '0'; + isJ <= '1' when std_match(unsigned(char), "1-0" & x"A") else '0'; + isK <= '1' when std_match(unsigned(char), "1-0" & x"B") else '0'; + isL <= '1' when std_match(unsigned(char), "1-0" & x"C") else '0'; + isM <= '1' when std_match(unsigned(char), "1-0" & x"D") else '0'; + isN <= '1' when std_match(unsigned(char), "1-0" & x"E") else '0'; + isO <= '1' when std_match(unsigned(char), "1-0" & x"F") else '0'; + isP <= '1' when std_match(unsigned(char), "1-1" & x"0") else '0'; + isQ <= '1' when std_match(unsigned(char), "1-1" & x"1") else '0'; + isR <= '1' when std_match(unsigned(char), "1-1" & x"2") else '0'; + isS <= '1' when std_match(unsigned(char), "1-1" & x"3") else '0'; + isT <= '1' when std_match(unsigned(char), "1-1" & x"4") else '0'; + isU <= '1' when std_match(unsigned(char), "1-1" & x"5") else '0'; + isV <= '1' when std_match(unsigned(char), "1-1" & x"6") else '0'; + isW <= '1' when std_match(unsigned(char), "1-1" & x"7") else '0'; + isX <= '1' when std_match(unsigned(char), "1-1" & x"8") else '0'; + isY <= '1' when std_match(unsigned(char), "1-1" & x"9") else '0'; + isZ <= '1' when std_match(unsigned(char), "1-1" & x"A") else '0'; + is0 <= '1' when std_match(unsigned(char), "011" & x"0") else '0'; + is1 <= '1' when std_match(unsigned(char), "011" & x"1") else '0'; + is2 <= '1' when std_match(unsigned(char), "011" & x"2") else '0'; + is3 <= '1' when std_match(unsigned(char), "011" & x"3") else '0'; + is4 <= '1' when std_match(unsigned(char), "011" & x"4") else '0'; + is5 <= '1' when std_match(unsigned(char), "011" & x"5") else '0'; + is6 <= '1' when std_match(unsigned(char), "011" & x"6") else '0'; + is7 <= '1' when std_match(unsigned(char), "011" & x"7") else '0'; + is8 <= '1' when std_match(unsigned(char), "011" & x"8") else '0'; + is9 <= '1' when std_match(unsigned(char), "011" & x"9") else '0'; + goto5 <= is5; + gotoH <= ish or goto5 or is4; + gotoS <= isS or gotoH or isV or is3; + gotoF <= isF; + gotoI <= isI or gotoS or isU or gotoF or is2; + gotoL <= isL; + gotoR <= isR or gotoL; + gotoP <= isP; + gotoE <= isE or gotoI or isA or gotoR or isW or gotoP or isJ or is1; + goto6 <= is6; + gotoB <= isB or goto6; + gotoD <= isD or gotoB or isX; + gotoC <= isC; + gotoN <= isN or gotoD or isK or gotoC or isY; + goto7 <= is7; + gotoZ <= isZ or goto7; + gotoG <= isG or gotoZ or isQ; + goto8 <= is8; + goto9 <= is9; + gotoT <= isT or gotoN or isM or gotoG or isO or goto8 or goto9 or is0; + -- sequence for morse units + sendCharacterState: process(reset, clock) + begin + if reset = '1' then + characterState <= idle; + elsif rising_edge(clock) then + case characterState is + -- start + when idle => + if charnotReady = '0' then + characterState <= waitReg; + end if; + when waitReg => + if gotoE = '1' then + characterState <= sE; + elsif gotoT = '1' then + characterState <= sT; + else + characterState <= popChar; + end if; + -- level 1 + when sE => + if sendDotDashDone = '1' then + if isE = '1' then + characterState <= popChar; + elsif gotoI = '1' then + characterState <= sI; + else + characterState <= sA; + end if; + end if; + when sT => + if sendDotDashDone = '1' then + if isT = '1' then + characterState <= popChar; + elsif gotoN = '1' then + characterState <= sN; + else + characterState <= sM; + end if; + end if; + -- level 2 + when sI => + if sendDotDashDone = '1' then + if isI = '1' then + characterState <= popChar; + elsif gotoS = '1' then + characterState <= sS; + else + characterState <= sU; + end if; + end if; + when sA => + if sendDotDashDone = '1' then + if isA = '1' then + characterState <= popChar; + elsif gotoR = '1' then + characterState <= sR; + else + characterState <= sW; + end if; + end if; + when sN => + if sendDotDashDone = '1' then + if isN = '1' then + characterState <= popChar; + elsif gotoD = '1' then + characterState <= sD; + else + characterState <= sK; + end if; + end if; + when sM => + if sendDotDashDone = '1' then + if isM = '1' then + characterState <= popChar; + elsif gotoG = '1' then + characterState <= sG; + else + characterState <= sO; + end if; + end if; + -- level 3a + when sS => + if sendDotDashDone = '1' then + if isS = '1' then + characterState <= popChar; + elsif gotoH = '1' then + characterState <= sH; + else + characterState <= sV; + end if; + end if; + when sU => + if sendDotDashDone = '1' then + if isU = '1' then + characterState <= popChar; + elsif gotoF = '1' then + characterState <= sF; + else + characterState <= s2a; + end if; + end if; + when sR => + if sendDotDashDone = '1' then + if isR = '1' then + characterState <= popChar; + elsif gotoL = '1' then + characterState <= sL; + else + characterState <= popChar; + end if; + end if; + when sW => + if sendDotDashDone = '1' then + if isW = '1' then + characterState <= popChar; + elsif gotoP = '1' then + characterState <= sP; + else + characterState <= sJ; + end if; + end if; + -- level 3b + when sD => + if sendDotDashDone = '1' then + if isD = '1' then + characterState <= popChar; + elsif gotoB = '1' then + characterState <= sB; + else + characterState <= sX; + end if; + end if; + when sK => + if sendDotDashDone = '1' then + if isK = '1' then + characterState <= popChar; + elsif gotoC = '1' then + characterState <= sC; + else + characterState <= sY; + end if; + end if; + when sG => + if sendDotDashDone = '1' then + if isG = '1' then + characterState <= popChar; + elsif gotoZ = '1' then + characterState <= sZ; + else + characterState <= sQ; + end if; + end if; + when sO => + if sendDotDashDone = '1' then + if isO = '1' then + characterState <= popChar; + elsif goto8 = '1' then + characterState <= s8a; + else + characterState <= s9a; + end if; + end if; + -- level 4a + when sH => + if sendDotDashDone = '1' then + if isH = '1' then + characterState <= popChar; + elsif goto5 = '1' then + characterState <= s5; + else + characterState <= s4; + end if; + end if; + when sV => + if sendDotDashDone = '1' then + if isV = '1' then + characterState <= popChar; + else + characterState <= s3; + end if; + end if; + when sF => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + when s2a => + if sendDotDashDone = '1' then + characterState <= s2; + end if; + -- level 4b + when sL => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + when sP => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + when sJ => + if sendDotDashDone = '1' then + if isJ = '1' then + characterState <= popChar; + else + characterState <= s1; + end if; + end if; + -- level 4c + when sB => + if sendDotDashDone = '1' then + if isB = '1' then + characterState <= popChar; + elsif goto6 = '1' then + characterState <= s6; + else + characterState <= popChar; + end if; + end if; + when sX => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + when sC => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + when sY => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + -- level 4d + when sZ => + if sendDotDashDone = '1' then + if isZ = '1' then + characterState <= popChar; + elsif goto7 = '1' then + characterState <= s7; + else + characterState <= popChar; + end if; + end if; + when sQ => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + when s8a => + if sendDotDashDone = '1' then + characterState <= s8; + end if; + when s9a => + if sendDotDashDone = '1' then + if goto9 = '1' then + characterState <= s9; + else + characterState <= s0; + end if; + end if; + -- level 5 + when s5 | s4 | s3 | s2 | s1 | s6 | s7 | s8 | s9 | s0 => + if sendDotDashDone = '1' then + characterState <= popChar; + end if; + -- end of character + when popChar => characterState <= waitEndOfChar; + when waitEndOfChar => + if sendDotDashDone = '1' then + characterState <= idle; + end if; + when others => characterState <= idle; + end case; + end if; + end process sendCharacterState; + + sendCharacterOutput: process(characterState) + begin + sendDot <= '0'; + sendDash <= '0'; + sendSeparator <= '0'; + readChar <= '0'; + case characterState is + -- level 1 + when sE => + sendDot <= '1'; + when sT => + sendDash <= '1'; + -- level 2 + when sI => + sendDot <= '1'; + when sA => + sendDash <= '1'; + when sN => + sendDot <= '1'; + when sM => + sendDash <= '1'; + -- level 3a + when sS => + sendDot <= '1'; + when sU => + sendDash <= '1'; + when sR => + sendDot <= '1'; + when sW => + sendDash <= '1'; + -- level 3b + when sD => + sendDot <= '1'; + when sK => + sendDash <= '1'; + when sG => + sendDot <= '1'; + when sO => + sendDash <= '1'; + -- level 4a + when sH => + sendDot <= '1'; + when sV => + sendDash <= '1'; + when sF => + sendDot <= '1'; + when s2a => + sendDash <= '1'; + -- level 4b + when sL => + sendDot <= '1'; + when sP => + sendDot <= '1'; + when sJ => + sendDash <= '1'; + -- level 4c + when sB => + sendDot <= '1'; + when sX => + sendDash <= '1'; + when sC => + sendDot <= '1'; + when sY => + sendDash <= '1'; + -- level 4d + when sZ => + sendDot <= '1'; + when sQ => + sendDash <= '1'; + when s8a => + sendDot <= '1'; + when s9a => + sendDash <= '1'; + -- level 5 + when s5 => + sendDot <= '1'; + when s4 => + sendDash <= '1'; + when s3 => + sendDash <= '1'; + when s2 => + sendDash <= '1'; + when s1 => + sendDash <= '1'; + when s6 => + sendDot <= '1'; + when s7 => + sendDot <= '1'; + when s8 => + sendDot <= '1'; + when s9 => + sendDot <= '1'; + when s0 => + sendDash <= '1'; + -- end of character + when popChar => + readChar <= '1'; + sendSeparator <= '1'; + when others => null; + end case; + end process sendCharacterOutput; + + ------------------------------------------------------------------------------ + -- sequence for morse units + sendDotDashState: process(reset, clock) + begin + if reset = '1' then + sequencerState <= idle; + elsif rising_edge(clock) then + case sequencerState is + -- idle + when idle => + if sendDot = '1' then + sequencerState <= startDot; + elsif sendDash = '1' then + sequencerState <= startDash; + elsif sendSeparator = '1' then + sequencerState <= startSeparator2; + end if; + -- dot + when startDot => + sequencerState <= sendingDot; + when sendingDot => + if counterDone = '1' then + sequencerState <= startSeparator; + end if; + -- dash + when startDash => + sequencerState <= sendingDash; + when sendingDash => + if counterDone = '1' then + sequencerState <= startSeparator; + end if; + -- morse symbol separator + when startSeparator => + sequencerState <= waitingSeparator; + when waitingSeparator => + if counterDone = '1' then + sequencerState <= dotDashDone; + end if; + -- character separator + when startSeparator2 => + sequencerState <= waitingSeparator2; + when waitingSeparator2 => + if counterDone = '1' then + sequencerState <= dotDashDone; + end if; + -- done + when dotDashDone => + sequencerState <= idle; + end case; + end if; + end process sendDotDashState; + + sendDotDashOutput: process(sequencerState) + begin + startCounter <= '0'; + unitNb <= (others => '-'); + sendDotDashDone <= '0'; + morseOut <= '0'; + case sequencerState is + when startDot | startDash => + startCounter <= '1'; + morseOut <= '1'; + when sendingDot => + morseOut <= '1'; + unitNb <= to_unsigned(1, unitNb'length); + when sendingDash => + morseOut <= '1'; + unitNb <= to_unsigned(3, unitNb'length); + when startSeparator => + startCounter <= '1'; + when waitingSeparator => + unitNb <= to_unsigned(1, unitNb'length); + when startSeparator2 => + startCounter <= '1'; + when waitingSeparator2 => + unitNb <= to_unsigned(2, unitNb'length); + when dotDashDone => + sendDotDashDone <= '1'; + when others => null; + end case; + end process sendDotDashOutput; + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture Morse.charToMorse.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:49:52 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Morse; + +ARCHITECTURE struct OF charToMorse IS + + -- Architecture declarations + constant unitCountBitNb: positive := 3; + + -- Internal signal declarations + SIGNAL startCounter : std_ulogic; + SIGNAL done : std_ulogic; + SIGNAL unitNb : unsigned(unitCountBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT charToMorseController + GENERIC ( + characterBitNb : positive := 8; + unitCountBitNb : positive := 3 + ); + PORT ( + morseOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + charNotReady : IN std_ulogic ; + char : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0); + startCounter : OUT std_ulogic ; + unitNb : OUT unsigned (unitCountBitNb-1 DOWNTO 0); + counterDone : IN std_ulogic ; + readChar : OUT std_ulogic + ); + END COMPONENT; + COMPONENT unitCounter + GENERIC ( + unitCountDivide : positive := 10E3; + unitCountBitNb : positive := 3 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + startCounter : IN std_ulogic ; + unitNb : IN unsigned (unitCountBitNb-1 DOWNTO 0); + done : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : charToMorseController USE ENTITY Morse.charToMorseController; +-- FOR ALL : unitCounter USE ENTITY Morse.unitCounter; + -- pragma synthesis_on + + +BEGIN + + -- Instance port mappings. + I_ctl : charToMorseController + GENERIC MAP ( + characterBitNb => characterBitNb, + unitCountBitNb => unitCountBitNb + ) + PORT MAP ( + morseOut => morseOut, + clock => clock, + reset => reset, + charNotReady => charNotReady, + char => charIn, + startCounter => startCounter, + unitNb => unitNb, + counterDone => done, + readChar => readChar + ); + I_cnt : unitCounter + GENERIC MAP ( + unitCountDivide => unitCountDivide, + unitCountBitNb => unitCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + startCounter => startCounter, + unitNb => unitNb, + done => done + ); + +END struct; + + + + +-- VHDL Entity Morse.toneGenerator.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 09:13:01 03/29/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY toneGenerator IS + GENERIC( + toneDivide : positive := 100E3 + ); + PORT( + tone : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END toneGenerator ; + + + + + +-- library Common; + use work.CommonLib.all; + +ARCHITECTURE masterVersion OF toneGenerator IS + + constant toneCounterBitNb: positive := requiredBitNb(toneDivide-1); + signal toneCounter: unsigned(toneCounterBitNb-1 downto 0); + constant toneMin : natural := (2**toneCounterBitNb - toneDivide) / 2; + constant toneMax : natural := toneMin + toneDivide; + +BEGIN + + divide: process(reset, clock) + begin + if reset = '1' then + toneCounter <= to_unsigned(toneMin, toneCounter'length); + elsif rising_edge(clock) then + if toneCounter = toneMax then + toneCounter <= to_unsigned(toneMin, toneCounter'length); + else + toneCounter <= toneCounter + 1; + end if; + end if; + end process divide; + + tone <= toneCounter(toneCounter'high); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity RS232.serialPortReceiver.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:45:48 08/28/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY serialPortReceiver IS + GENERIC( + dataBitNb : positive := 8; + baudRateDivide : positive := 2083 + ); + PORT( + RxD : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataValid : OUT std_ulogic + ); + +-- Declarations + +END serialPortReceiver ; + + + + + +-- library Common; + use work.CommonLib.all; + +architecture RTL of serialPortReceiver is + + signal dividerCounter: unsigned(requiredBitNb(baudRateDivide-1)-1 downto 0); + signal dividerCounterReset: std_uLogic; + signal rxDelayed: std_uLogic; + signal dividerCounterSynchronize: std_uLogic; + signal rxSample: std_uLogic; + signal rxShiftReg: std_ulogic_vector(dataBitNb-1 downto 0); + signal rxReceiving: std_uLogic; + signal rxDataValid: std_uLogic; + signal rxCounter: unsigned(requiredBitNb(dataBitNb)-1 downto 0); + +begin + + divide: process(reset, clock) + begin + if reset = '1' then + dividerCounter <= (others => '0'); + elsif rising_edge(clock) then + if dividerCounterSynchronize = '1' then + dividerCounter <= to_unsigned(baudRateDivide/2, dividerCounter'length); + elsif dividerCounterReset = '1' then + dividerCounter <= (others => '0'); + else + dividerCounter <= dividerCounter + 1; + end if; + end if; + end process divide; + + endOfCount: process(dividerCounter) + begin + if dividerCounter = baudRateDivide-1 then + dividerCounterReset <= '1'; + else + dividerCounterReset <= '0'; + end if; + end process endOfCount; + + delayRx: process(reset, clock) + begin + if reset = '1' then + rxDelayed <= '0'; + elsif rising_edge(clock) then + rxDelayed <= RxD; + end if; + end process delayRx; + + rxSynchronize: process(RxD, rxDelayed) + begin + if RxD /= rxDelayed then + dividerCounterSynchronize <= '1'; + else + dividerCounterSynchronize <= '0'; + end if; + end process rxSynchronize; + + rxSample <= dividerCounterReset and not dividerCounterSynchronize; + + shiftReg: process(reset, clock) + begin + if reset = '1' then + rxShiftReg <= (others => '0'); + elsif rising_edge(clock) then + if rxSample = '1' then + rxShiftReg(rxShiftReg'high-1 downto 0) <= rxShiftReg(rxShiftReg'high downto 1); + rxShiftReg(rxShiftReg'high) <= RxD; + end if; + end if; + end process shiftReg; + + detectReceive: process(reset, clock) + begin + if reset = '1' then + rxReceiving <= '0'; + rxDataValid <= '0'; + elsif rising_edge(clock) then + if rxSample = '1' then + if rxCounter = dataBitNb-1 then + rxDataValid <= '1'; + elsif RxD = '0' then + rxReceiving <= '1'; + end if; + elsif rxDataValid = '1' then + rxReceiving <= '0'; + rxDataValid <= '0'; + end if; + end if; + end process detectReceive; + + countRxBitNb: process(reset, clock) + begin + if reset = '1' then + rxCounter <= (others => '0'); + elsif rising_edge(clock) then + if rxSample = '1' then + if rxReceiving = '1' then + rxCounter <= rxCounter + 1; + else + rxCounter <= (others => '0'); + end if; + end if; + end if; + end process countRxBitNb; + + dataOut <= rxShiftReg; + dataValid <= rxDataValid; + +end RTL; + + + + + +-- +-- VHDL Architecture Morse.morseEncoder.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 14:50:20 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Memory; +-- LIBRARY Morse; +-- LIBRARY RS232; + +ARCHITECTURE struct OF morseEncoder IS + + -- Architecture declarations + constant fifoDepth : positive := 100; + + -- Internal signal declarations + SIGNAL characterReg : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0); + SIGNAL characterIn : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0); + SIGNAL characterValid : std_ulogic; + SIGNAL morseOut : std_ulogic; + SIGNAL tone : std_ulogic; + SIGNAL charNotReady : std_ulogic; + SIGNAL readChar : std_ulogic; + + + -- Component Declarations + COMPONENT FIFO_bram + GENERIC ( + dataBitNb : positive := 8; + depth : positive := 8 + ); + PORT ( + write : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + read : IN std_ulogic ; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + empty : OUT std_ulogic ; + full : OUT std_ulogic + ); + END COMPONENT; + COMPONENT charToMorse + GENERIC ( + characterBitNb : positive := 8; + unitCountDivide : positive := 10E3 + ); + PORT ( + morseOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + charIn : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0); + readChar : OUT std_ulogic ; + charNotReady : IN std_ulogic + ); + END COMPONENT; + COMPONENT toneGenerator + GENERIC ( + toneDivide : positive := 100E3 + ); + PORT ( + tone : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT serialPortReceiver + GENERIC ( + dataBitNb : positive := 8; + baudRateDivide : positive := 2083 + ); + PORT ( + RxD : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataValid : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : FIFO_bram USE ENTITY Memory.FIFO_bram; +-- FOR ALL : charToMorse USE ENTITY Morse.charToMorse; +-- FOR ALL : serialPortReceiver USE ENTITY RS232.serialPortReceiver; +-- FOR ALL : toneGenerator USE ENTITY Morse.toneGenerator; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + morseCode <= morseOut and tone; + + + -- Instance port mappings. + I_FIFO : FIFO_bram + GENERIC MAP ( + dataBitNb => uartDataBitNb, + depth => fifoDepth + ) + PORT MAP ( + write => characterValid, + clock => clock, + reset => reset, + dataOut => characterReg, + read => readChar, + dataIn => characterIn, + empty => charNotReady, + full => OPEN + ); + I_enc : charToMorse + GENERIC MAP ( + characterBitNb => uartDataBitNb, + unitCountDivide => integer(clockFrequency*unitDuration + 0.5) + ) + PORT MAP ( + morseOut => morseOut, + clock => clock, + reset => reset, + charNotReady => charNotReady, + charIn => characterReg, + readChar => readChar + ); + I_tone : toneGenerator + GENERIC MAP ( + toneDivide => integer(clockFrequency/toneFrequency + 0.5) + ) + PORT MAP ( + tone => tone, + clock => clock, + reset => reset + ); + I_UART : serialPortReceiver + GENERIC MAP ( + dataBitNb => uartDataBitNb, + baudRateDivide => integer(clockFrequency/uartBaudRate + 0.5) + ) + PORT MAP ( + RxD => RxD, + clock => clock, + reset => reset, + dataOut => characterIn, + dataValid => characterValid + ); + +END struct; + + + + +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; + + + + +-- +-- VHDL Architecture Board.morse_ebs3.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 08:06:36 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Board; +-- LIBRARY Lattice; +-- LIBRARY Morse; + +ARCHITECTURE struct OF morse_ebs3 IS + + -- Architecture declarations + constant clockFrequency: real := 60.0E6; + constant uartBaudRate: real := 9.6E3; + constant uartDataBitNb: positive := 7; + constant morseUnitDuration: real := 100.0E-3; -- 1/2 * 10 Hz + constant morseToneFrequency: real := 3135.96; -- sol 3eme octave + constant deglitchBitNb: positive := 16; + + -- Internal signal declarations + SIGNAL clk_sys : std_ulogic; + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_uLogic; + SIGNAL morseIn_synch : std_uLogic; + SIGNAL reset1 : std_ulogic; + SIGNAL resetSynch : std_ulogic; + SIGNAL resetSynch_n : std_ulogic; + + -- Implicit buffer signal declarations + SIGNAL RxD_synch_internal : std_ulogic; + + + -- Component Declarations + COMPONENT DFF + PORT ( + CLK : IN std_uLogic ; + CLR : IN std_uLogic ; + D : IN std_uLogic ; + Q : OUT std_uLogic + ); + END COMPONENT; + COMPONENT inverterIn + PORT ( + in1 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT pll + PORT ( + clkIn100M : IN std_ulogic ; + en75M : IN std_ulogic ; + en50M : IN std_ulogic ; + en10M : IN std_ulogic ; + clk60MHz : OUT std_ulogic ; + clk75MHz : OUT std_ulogic ; + clk50MHz : OUT std_ulogic ; + clk10MHz : OUT std_ulogic ; + pllLocked : OUT std_ulogic + ); + END COMPONENT; + COMPONENT morseDecoder + GENERIC ( + clockFrequency : real := 100.0E6; + uartBaudRate : real := 115.2E3; + uartDataBitNb : positive := 8; + unitDuration : real := 100.0E-3; + toneFrequency : real := 300.0; + deglitchBitNb : natural := 8 + ); + PORT ( + morseCode : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + TxD : OUT std_ulogic ; + morseEnvelope : OUT std_ulogic + ); + END COMPONENT; + COMPONENT morseEncoder + GENERIC ( + clockFrequency : real := 100.0E6; + uartBaudRate : real := 115.2E3; + uartDataBitNb : positive := 8; + unitDuration : real := 100.0E-3; + toneFrequency : real := 300.0 + ); + PORT ( + morseCode : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + RxD : IN std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : DFF USE ENTITY Board.DFF; +-- FOR ALL : inverterIn USE ENTITY Board.inverterIn; +-- FOR ALL : morseDecoder USE ENTITY Morse.morseDecoder; +-- FOR ALL : morseEncoder USE ENTITY Morse.morseEncoder; +-- FOR ALL : pll USE ENTITY Lattice.pll; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 6 eb6 + logic1 <= '1'; + + -- HDL Embedded Text Block 7 eb7 + logic0 <= '0'; + + + -- Instance port mappings. + I7 : DFF + PORT MAP ( + CLK => clk_sys, + CLR => resetSynch, + D => RxD, + Q => RxD_synch_internal + ); + I8 : DFF + PORT MAP ( + CLK => clock, + CLR => reset1, + D => logic1, + Q => resetSynch_n + ); + I9 : DFF + PORT MAP ( + CLK => clk_sys, + CLR => resetSynch, + D => morseIn, + Q => morseIn_synch + ); + I3 : inverterIn + PORT MAP ( + in1 => reset_n, + out1 => reset1 + ); + I4 : inverterIn + PORT MAP ( + in1 => resetSynch_n, + out1 => resetSynch + ); + I_pll : pll + PORT MAP ( + clkIn100M => clock, + en75M => logic0, + en50M => logic0, + en10M => logic0, + clk60MHz => clk_sys, + clk75MHz => OPEN, + clk50MHz => OPEN, + clk10MHz => OPEN, + pllLocked => OPEN + ); + I_dec : morseDecoder + GENERIC MAP ( + clockFrequency => clockFrequency, + uartBaudRate => uartBaudRate, + uartDataBitNb => uartDataBitNb, + unitDuration => morseUnitDuration, + toneFrequency => morseToneFrequency, + deglitchBitNb => deglitchBitNb + ) + PORT MAP ( + morseCode => morseIn_synch, + clock => clk_sys, + reset => resetSynch, + TxD => TxD, + morseEnvelope => morseEnvelope + ); + I_enc : morseEncoder + GENERIC MAP ( + clockFrequency => clockFrequency, + uartBaudRate => uartBaudRate, + uartDataBitNb => uartDataBitNb, + unitDuration => morseUnitDuration, + toneFrequency => morseToneFrequency + ) + PORT MAP ( + morseCode => morseOut, + clock => clk_sys, + reset => resetSynch, + RxD => RxD_synch_internal + ); + + -- Implicit buffered output assignments + RxD_synch <= RxD_synch_internal; + +END struct; + + + + diff --git a/05-Morse/Board/diamond/morse.bit b/05-Morse/Board/diamond/morse.bit new file mode 100644 index 0000000000000000000000000000000000000000..941f5e704dd014e7b2b9ba0461a29254d0a2c647 GIT binary patch literal 582673 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 at + + + + + + + + + + + + + + + + + + + + + diff --git a/05-Morse/Board/diamond/programmer.xcf b/05-Morse/Board/diamond/programmer.xcf new file mode 100644 index 0000000..468a2da --- /dev/null +++ b/05-Morse/Board/diamond/programmer.xcf @@ -0,0 +1,50 @@ + + + + + + JTAG + + + 1 + Renesas + ECP5U + LFE5U-25F + All + LFE5U-25F + + 8 + 11111111 + 1 + 0 + + + 04/11/23 16:14:28 + 0xA4B0 + Fast Program + + + + + SEQUENTIAL + ENTIRED CHAIN + No Override + TLR + TLR + + 4 + + + USB2 + FTUSB-0 + LFE5U-25F A Location 0000 Serial 018VFVT3A + + diff --git a/05-Morse/Board/diamond/reveal_analyze.rva b/05-Morse/Board/diamond/reveal_analyze.rva new file mode 100644 index 0000000..4249e0e --- /dev/null +++ b/05-Morse/Board/diamond/reveal_analyze.rva @@ -0,0 +1,638 @@ + + + lun. 6. mars 14:29:10 2023 + + + + + + + + + + + + 1 + + 0 + 1. LFE5U-25F + 0x41111043 + true + false + + 8 + reveal_config.rvl + reveal_config.rvs + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/05-Morse/Board/diamond/reveal_config.rvl b/05-Morse/Board/diamond/reveal_config.rvl new file mode 100644 index 0000000..28d2f1c --- /dev/null +++ b/05-Morse/Board/diamond/reveal_config.rvl @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/05-Morse/Board/diamond/strategy.sty b/05-Morse/Board/diamond/strategy.sty new file mode 100644 index 0000000..a2b5a4a --- /dev/null +++ b/05-Morse/Board/diamond/strategy.sty @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/05-Morse/Board/hdl/DFF_sim.vhd b/05-Morse/Board/hdl/DFF_sim.vhd new file mode 100644 index 0000000..cf8868a --- /dev/null +++ b/05-Morse/Board/hdl/DFF_sim.vhd @@ -0,0 +1,14 @@ +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + diff --git a/05-Morse/Board/hdl/buff_sim.vhd b/05-Morse/Board/hdl/buff_sim.vhd new file mode 100644 index 0000000..8ad27be --- /dev/null +++ b/05-Morse/Board/hdl/buff_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF buff IS +BEGIN + + out1 <= in1; + +END ARCHITECTURE sim; + diff --git a/05-Morse/Board/hdl/inverterIn_sim.vhd b/05-Morse/Board/hdl/inverterIn_sim.vhd new file mode 100644 index 0000000..fb039ac --- /dev/null +++ b/05-Morse/Board/hdl/inverterIn_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/05-Morse/Board/hdl/inverter_sim.vhd b/05-Morse/Board/hdl/inverter_sim.vhd new file mode 100644 index 0000000..ca5b6b5 --- /dev/null +++ b/05-Morse/Board/hdl/inverter_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverter IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/05-Morse/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf b/05-Morse/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf b/05-Morse/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf b/05-Morse/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf b/05-Morse/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf b/05-Morse/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf b/05-Morse/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_morse_circuit_entity.vhg._fpf b/05-Morse/Board/hds/.hdlsidedata/_morse_circuit_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_morse_circuit_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_morse_circuit_struct.vhg._fpf b/05-Morse/Board/hds/.hdlsidedata/_morse_circuit_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_morse_circuit_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_entity.vhg._fpf b/05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_struct.vhg._fpf b/05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Board/hds/.hdlsidedata/_morse_ebs3_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Board/hds/@d@f@f/symbol.sb b/05-Morse/Board/hds/@d@f@f/symbol.sb new file mode 100644 index 0000000..555b689 --- /dev/null +++ b/05-Morse/Board/hds/@d@f@f/symbol.sb @@ -0,0 +1,1211 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 157,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +uid 158,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +uid 159,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +uid 160,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +uid 161,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 162,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 101,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 104,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 106,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 108,0 +) +*23 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 127,0 +) +*24 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 128,0 +) +*25 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 129,0 +) +*26 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 130,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 102,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 110,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 114,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 116,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 118,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 120,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 122,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 124,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 126,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 100,0 +vaOverrides [ +] +) +] +) +uid 156,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 164,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 165,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 132,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 135,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 137,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 141,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 145,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 147,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 149,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 151,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 153,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 155,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 163,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DFF" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:05" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "DFF" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:05" +) +(vvPair +variable "unit" +value "DFF" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*59 (SymbolBody +uid 11,0 +optionalChildren [ +*60 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,4625,23000,5375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "courier,12,0" +) +xt "24000,4300,25700,5700" +st "D" +blo "24000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,15500,13400" +st "D : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +) +*61 (CptPort +uid 57,0 +optionalChildren [ +*62 (FFT +pts [ +"23750,9000" +"23000,9375" +"23000,8625" +] +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,8625,23750,9375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,8625,23000,9375" +) +tg (CPTG +uid 94,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,12,0" +) +xt "24000,8400,27200,9800" +st "CLK" +blo "24000,9600" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 88,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,15500,11600" +st "CLK : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +) +*63 (CptPort +uid 63,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 64,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,11000,26375,11750" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 66,0 +va (VaSet +font "courier,12,0" +) +xt "25000,9600,28200,11000" +st "CLR" +blo "25000,10800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 89,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,15500,12500" +st "CLR : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*64 (CptPort +uid 69,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 70,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,4625,29750,5375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 72,0 +va (VaSet +font "courier,12,0" +) +xt "26200,4300,28000,5700" +st "Q" +ju 2 +blo "28000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,14500,14300" +st "Q : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 12,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,3000,29000,11000" +) +showPorts 0 +oxt "15000,10000,21000,19000" +biTextGroup (BiTextGroup +uid 13,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 14,0 +va (VaSet +) +xt "27600,10700,30600,11700" +st "Board" +blo "27600,11500" +) +second (Text +uid 15,0 +va (VaSet +) +xt "27600,11700,29400,12700" +st "DFF" +blo "27600,12500" +) +) +gi *65 (GenericInterface +uid 16,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 17,0 +text (MLText +uid 18,0 +va (VaSet +isHidden 1 +) +xt "30000,10400,42600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *66 (PackageList +uid 8,0 +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 97,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*68 (MLText +uid 98,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "23,13,991,725" +viewArea "-672,-4956,43920,21156" +cachedDiagramExtent "0,0,43800,15100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,42000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26600,24700,29700,25700" +st "" +blo "26600,25500" +) +second (Text +va (VaSet +) +xt "26600,25700,28800,26700" +st "" +blo "26600,26500" +) +) +gi *69 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *70 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,8300,8600,9500" +st "Declarations" +blo "0,9300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,9500,4200,10700" +st "Ports:" +blo "0,10500" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,14300,3000,15300" +st "User:" +blo "0,15100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,8300,9400,9500" +st "Internal User:" +blo "0,9300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,2000,15300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,8300,32000,8300" +tm "SyDeclarativeTextMgr" +) +) +lastUid 188,0 +) diff --git a/05-Morse/Board/hds/@f@p@g@a_sine@gen_tester/interface b/05-Morse/Board/hds/@f@p@g@a_sine@gen_tester/interface new file mode 100644 index 0000000..f018467 --- /dev/null +++ b/05-Morse/Board/hds/@f@p@g@a_sine@gen_tester/interface @@ -0,0 +1,1571 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +uid 208,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +uid 210,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 4 +suid 2007,0 +) +) +uid 212,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "xOut" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +uid 214,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "yOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +uid 216,0 +) +] +) +pdm (PhysicalDM +uid 156,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 93,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 96,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 209,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 211,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 213,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 215,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 217,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 94,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 102,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 106,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 108,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 110,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 114,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 116,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 118,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 92,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 148,0 +) +] +) +pdm (PhysicalDM +uid 159,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 124,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 127,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 129,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 131,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 149,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 125,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 133,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 139,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 141,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 143,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 145,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 147,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 157,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "chronometer" +) +(vvPair +variable "config" +value "%(unit)_config" +) +(vvPair +variable "d" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\FPGA_sineGen_tester" +) +(vvPair +variable "date" +value "27.01.2010" +) +(vvPair +variable "day" +value "mer." +) +(vvPair +variable "day_long" +value "mercredi" +) +(vvPair +variable "dd" +value "27" +) +(vvPair +variable "entity_name" +value "FPGA_sineGen_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3195" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Chronometer/Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "FPGA_sineGen_tester" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\FPGA_sineGen_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Chronometer\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:20:56" +) +(vvPair +variable "unit" +value "FPGA_sineGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 71,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 183,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 184,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 185,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 186,0 +ro 270 +va (VaSet +) +xt "22500,7000,23500,9100" +st "clock" +ju 2 +blo "23300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 187,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,62000,5200" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +) +*65 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 189,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +ro 270 +va (VaSet +) +xt "24500,7000,25500,9100" +st "reset" +ju 2 +blo "25300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +*66 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 194,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +ro 270 +va (VaSet +) +xt "56500,7000,57500,11400" +st "triggerOut" +ju 2 +blo "57300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,62000,2800" +st "triggerOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 4 +suid 2007,0 +) +) +) +*67 (CptPort +uid 198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 199,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 200,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 201,0 +ro 270 +va (VaSet +) +xt "58500,7000,59500,8900" +st "xOut" +ju 2 +blo "59300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 202,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62000,3600" +st "xOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "xOut" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +) +*68 (CptPort +uid 203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 204,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 205,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 206,0 +ro 270 +va (VaSet +) +xt "60500,7000,61500,8900" +st "yOut" +ju 2 +blo "61300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 207,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "yOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "yOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,59000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "34900,8800,38400,10000" +st "Board" +blo "34900,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "34900,10000,47100,11200" +st "FPGA_sineGen_tester" +blo "34900,11000" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,6000,30000,8400" +st "Generic Declarations + +signalBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44800,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50300,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SineInterpolator_test" +entityName "FPGA_sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,6000,44400,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 217,0 +) diff --git a/05-Morse/Board/hds/_buff._epf b/05-Morse/Board/hds/_buff._epf new file mode 100644 index 0000000..d74258b --- /dev/null +++ b/05-Morse/Board/hds/_buff._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom buff_sim.vhd +DEFAULT_ARCHITECTURE atom sim diff --git a/05-Morse/Board/hds/_morse_circuit._epf b/05-Morse/Board/hds/_morse_circuit._epf new file mode 100644 index 0000000..f74abba --- /dev/null +++ b/05-Morse/Board/hds/_morse_circuit._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom morse_circuit/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/05-Morse/Board/hds/_morse_ebs2._epf b/05-Morse/Board/hds/_morse_ebs2._epf new file mode 100644 index 0000000..ee301f8 --- /dev/null +++ b/05-Morse/Board/hds/_morse_ebs2._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom morse_ebs2/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/05-Morse/Board/hds/_morse_ebs3._epf b/05-Morse/Board/hds/_morse_ebs3._epf new file mode 100644 index 0000000..3f93c95 --- /dev/null +++ b/05-Morse/Board/hds/_morse_ebs3._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom morse_ebs3/struct.bd +TOP_MARKER atom 1 diff --git a/05-Morse/Board/hds/buff/symbol.sb b/05-Morse/Board/hds/buff/symbol.sb new file mode 100644 index 0000000..f9ad06a --- /dev/null +++ b/05-Morse/Board/hds/buff/symbol.sb @@ -0,0 +1,1107 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "buff" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "buff" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:01" +) +(vvPair +variable "unit" +value "buff" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,26310,5700" +st "buff" +blo "23910,5500" +) +) +gi *58 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *59 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*61 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,1352,888" +viewArea "-600,-3900,62412,40055" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *62 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *63 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 149,0 +activeModelName "Symbol" +) diff --git a/05-Morse/Board/hds/inverter/symbol.sb b/05-Morse/Board/hds/inverter/symbol.sb new file mode 100644 index 0000000..515ce1d --- /dev/null +++ b/05-Morse/Board/hds/inverter/symbol.sb @@ -0,0 +1,1092 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:09" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverter" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:09" +) +(vvPair +variable "unit" +value "inverter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +optionalChildren [ +*58 (Circle +uid 28,0 +va (VaSet +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28750,6625,29500,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,28710,5700" +st "inverter" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/05-Morse/Board/hds/inverter@in/symbol.sb b/05-Morse/Board/hds/inverter@in/symbol.sb new file mode 100644 index 0000000..85e0913 --- /dev/null +++ b/05-Morse/Board/hds/inverter@in/symbol.sb @@ -0,0 +1,1095 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 98,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 100,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 101,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 44,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 47,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 49,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 51,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 70,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 45,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 53,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 57,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 59,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 61,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 63,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 65,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 67,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 69,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 43,0 +vaOverrides [ +] +) +] +) +uid 97,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 104,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 73,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 76,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 78,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 80,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 74,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 82,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 86,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 88,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 90,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 92,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 94,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 96,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 72,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverterIn" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverterIn" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:14" +) +(vvPair +variable "unit" +value "inverterIn" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +optionalChildren [ +*57 (Circle +uid 42,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,6546,23000,7454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21342,6625,22092,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*58 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,30510,5700" +st "inverterIn" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 127,0 +) diff --git a/05-Morse/Board/hds/morse_circuit/struct.bd b/05-Morse/Board/hds/morse_circuit/struct.bd new file mode 100644 index 0000000..5e586e4 --- /dev/null +++ b/05-Morse/Board/hds/morse_circuit/struct.bd @@ -0,0 +1,5453 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I7" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 1969,0 +) +(Instance +name "I_enc" +duLibraryName "Morse" +duName "morseEncoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +mwi 0 +uid 2160,0 +) +(Instance +name "I3" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 2378,0 +) +(Instance +name "I8" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 2398,0 +) +(Instance +name "I4" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 2424,0 +) +(Instance +name "I9" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 2492,0 +) +(Instance +name "I_dec" +duLibraryName "Morse" +duName "morseDecoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +mwi 0 +uid 2661,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb5" +number "5" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morse_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:49:40" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morse_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:49:40" +) +(vvPair +variable "unit" +value "morse_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,8200,12400,9400" +st "clock : std_ulogic" +) +) +*2 (Grouping +uid 51,0 +optionalChildren [ +*3 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,73000,86000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,73500,69200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,69000,90000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,69500,86200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,71000,86000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,71500,69200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,71000,69000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,71500,65200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,70000,106000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,70200,100300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*8 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90000,69000,106000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "90200,69500,90200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,69000,86000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "70350,69400,80650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,72000,69000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,72500,65200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,73000,69000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,73500,65200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,72000,86000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,72500,69200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "65000,69000,106000,74000" +) +oxt "14000,66000,55000,71000" +) +*13 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "98500,16625,100000,17375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "98000,17000,98500,17000" +pts [ +"98000,17000" +"98500,17000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,16300,107200,17800" +st "morseOut" +blo "101000,17500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 897,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +declText (MLText +uid 898,0 +va (VaSet +) +xt "-1000,27200,18400,28400" +st "SIGNAL resetSynch : std_ulogic" +) +) +*15 (SaComponent +uid 1969,0 +optionalChildren [ +*16 (CptPort +uid 1978,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1979,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,8625,43000,9375" +) +tg (CPTG +uid 1980,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1981,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,8300,45600,9800" +st "D" +blo "44000,9500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*17 (CptPort +uid 1982,0 +optionalChildren [ +*18 (FFT +pts [ +"43750,13000" +"43000,13375" +"43000,12625" +] +uid 1986,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,12625,43750,13375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1983,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,12625,43000,13375" +) +tg (CPTG +uid 1984,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1985,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,12400,47100,13900" +st "CLK" +blo "44000,13600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*19 (CptPort +uid 1987,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1988,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "45625,15000,46375,15750" +) +tg (CPTG +uid 1989,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1990,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,13600,48200,15100" +st "CLR" +blo "45000,14800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*20 (CptPort +uid 1991,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1992,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "49000,8625,49750,9375" +) +tg (CPTG +uid 1993,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1994,0 +va (VaSet +font "Arial,12,0" +) +xt "46400,8300,48000,9800" +st "Q" +ju 2 +blo "48000,9500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1970,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,7000,49000,15000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1971,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*21 (Text +uid 1972,0 +va (VaSet +) +xt "47600,14700,50000,15700" +st "Board" +blo "47600,15500" +tm "BdLibraryNameMgr" +) +*22 (Text +uid 1973,0 +va (VaSet +) +xt "47600,15700,49600,16700" +st "DFF" +blo "47600,16500" +tm "CptNameMgr" +) +*23 (Text +uid 1974,0 +va (VaSet +) +xt "47600,16700,48600,17700" +st "I7" +blo "47600,17500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1975,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1976,0 +text (MLText +uid 1977,0 +va (VaSet +) +xt "20000,4000,20000,4000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*24 (Net +uid 2001,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 21,0 +) +declText (MLText +uid 2002,0 +va (VaSet +) +xt "-1000,7200,12400,8400" +st "RxD : std_ulogic" +) +) +*25 (Net +uid 2015,0 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 4 +suid 22,0 +) +declText (MLText +uid 2016,0 +va (VaSet +) +xt "-1000,11200,14200,12400" +st "RxD_synch : std_ulogic" +) +) +*26 (PortIoIn +uid 2017,0 +shape (CompositeShape +uid 2018,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2019,0 +sl 0 +ro 270 +xt "32000,8625,33500,9375" +) +(Line +uid 2020,0 +sl 0 +ro 270 +xt "33500,9000,34000,9000" +pts [ +"33500,9000" +"34000,9000" +] +) +] +) +tg (WTG +uid 2021,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2022,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "28000,8300,31000,9800" +st "RxD" +ju 2 +blo "31000,9500" +tm "WireNameMgr" +) +) +) +*27 (PortIoOut +uid 2031,0 +shape (CompositeShape +uid 2032,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2033,0 +sl 0 +ro 270 +xt "98500,8625,100000,9375" +) +(Line +uid 2034,0 +sl 0 +ro 270 +xt "98000,9000,98500,9000" +pts [ +"98000,9000" +"98500,9000" +] +) +] +) +tg (WTG +uid 2035,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2036,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,8300,107900,9800" +st "RxD_synch" +blo "101000,9500" +tm "WireNameMgr" +) +) +) +*28 (SaComponent +uid 2160,0 +optionalChildren [ +*29 (CptPort +uid 2144,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2145,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,16625,82750,17375" +) +tg (CPTG +uid 2146,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2147,0 +va (VaSet +font "Arial,9,0" +) +xt "75700,16400,81000,17600" +st "morseCode" +ju 2 +blo "81000,17300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*30 (CptPort +uid 2148,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2149,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,20625,66000,21375" +) +tg (CPTG +uid 2150,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2151,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,20400,69700,21600" +st "clock" +blo "67000,21300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*31 (CptPort +uid 2152,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2153,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,22625,66000,23375" +) +tg (CPTG +uid 2154,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2155,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,22400,69600,23600" +st "reset" +blo "67000,23300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*32 (CptPort +uid 2156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,16625,66000,17375" +) +tg (CPTG +uid 2158,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2159,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,16400,69400,17600" +st "RxD" +blo "67000,17300" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +] +shape (Rectangle +uid 2161,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "66000,13000,82000,25000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 2162,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 2163,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,24800,69800,25900" +st "Morse" +blo "66600,25700" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 2164,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,25900,74200,27000" +st "morseEncoder" +blo "66600,26800" +tm "CptNameMgr" +) +*35 (Text +uid 2165,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,27000,69500,28100" +st "I_enc" +blo "66600,27900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2166,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2167,0 +text (MLText +uid 2168,0 +va (VaSet +) +xt "66000,28000,94900,34000" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*36 (Net +uid 2262,0 +decl (Decl +n "morseOut" +t "std_ulogic" +o 5 +suid 23,0 +) +declText (MLText +uid 2263,0 +va (VaSet +) +xt "-1000,14200,13800,15400" +st "morseOut : std_ulogic" +) +) +*37 (PortIoIn +uid 2357,0 +shape (CompositeShape +uid 2358,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2359,0 +sl 0 +ro 270 +xt "25000,48625,26500,49375" +) +(Line +uid 2360,0 +sl 0 +ro 270 +xt "26500,49000,27000,49000" +pts [ +"26500,49000" +"27000,49000" +] +) +] +) +tg (WTG +uid 2361,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2362,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "20500,48350,24000,49850" +st "clock" +ju 2 +blo "24000,49550" +tm "WireNameMgr" +) +) +) +*38 (PortIoIn +uid 2363,0 +shape (CompositeShape +uid 2364,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2365,0 +sl 0 +ro 270 +xt "25000,60625,26500,61375" +) +(Line +uid 2366,0 +sl 0 +ro 270 +xt "26500,61000,27000,61000" +pts [ +"26500,61000" +"27000,61000" +] +) +] +) +tg (WTG +uid 2367,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2368,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "18900,60350,24000,61850" +st "reset_N" +ju 2 +blo "24000,61550" +tm "WireNameMgr" +) +) +) +*39 (HdlText +uid 2369,0 +optionalChildren [ +*40 (EmbeddedText +uid 2374,0 +commentText (CommentText +uid 2375,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2376,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "32000,52000,38000,54000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2377,0 +va (VaSet +) +xt "32200,52200,37700,53400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 2370,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "31000,51000,39000,55000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2371,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 2372,0 +va (VaSet +) +xt "31400,55000,33000,56000" +st "eb5" +blo "31400,55800" +tm "HdlTextNameMgr" +) +*42 (Text +uid 2373,0 +va (VaSet +) +xt "31400,56000,32200,57000" +st "5" +blo "31400,56800" +tm "HdlTextNumberMgr" +) +] +) +) +*43 (SaComponent +uid 2378,0 +optionalChildren [ +*44 (CptPort +uid 2387,0 +optionalChildren [ +*45 (Circle +uid 2392,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32092,60546,33000,61454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2388,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "31342,60625,32092,61375" +) +tg (CPTG +uid 2389,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2390,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "33000,60500,35400,62000" +st "in1" +blo "33000,61700" +) +s (Text +uid 2391,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "33000,61900,33000,61900" +blo "33000,61900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*46 (CptPort +uid 2393,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2394,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38000,60625,38750,61375" +) +tg (CPTG +uid 2395,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2396,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "34650,60500,37750,62000" +st "out1" +ju 2 +blo "37750,61700" +) +s (Text +uid 2397,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "37750,61900,37750,61900" +ju 2 +blo "37750,61900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 2379,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "33000,58000,38000,64000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 2380,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +uid 2381,0 +va (VaSet +isHidden 1 +) +xt "57460,63700,59860,64700" +st "Board" +blo "57460,64500" +tm "BdLibraryNameMgr" +) +*48 (Text +uid 2382,0 +va (VaSet +isHidden 1 +) +xt "57460,64700,61360,65700" +st "inverterIn" +blo "57460,65500" +tm "CptNameMgr" +) +*49 (Text +uid 2383,0 +va (VaSet +isHidden 1 +) +xt "57460,64700,58460,65700" +st "I3" +blo "57460,65500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2384,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2385,0 +text (MLText +uid 2386,0 +va (VaSet +) +xt "33000,64400,33000,64400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*50 (SaComponent +uid 2398,0 +optionalChildren [ +*51 (CptPort +uid 2407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2408,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43250,52625,44000,53375" +) +tg (CPTG +uid 2409,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2410,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,52300,46600,53800" +st "D" +blo "45000,53500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*52 (CptPort +uid 2411,0 +optionalChildren [ +*53 (FFT +pts [ +"44750,57000" +"44000,57375" +"44000,56625" +] +uid 2415,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,56625,44750,57375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2412,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43250,56625,44000,57375" +) +tg (CPTG +uid 2413,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2414,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,56400,48100,57900" +st "CLK" +blo "45000,57600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*54 (CptPort +uid 2416,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2417,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "46625,59000,47375,59750" +) +tg (CPTG +uid 2418,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2419,0 +va (VaSet +font "Arial,12,0" +) +xt "46000,57600,49200,59100" +st "CLR" +blo "46000,58800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*55 (CptPort +uid 2420,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2421,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50000,52625,50750,53375" +) +tg (CPTG +uid 2422,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2423,0 +va (VaSet +font "Arial,12,0" +) +xt "47400,52300,49000,53800" +st "Q" +ju 2 +blo "49000,53500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 2399,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,51000,50000,59000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2400,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +uid 2401,0 +va (VaSet +) +xt "48600,58700,51000,59700" +st "Board" +blo "48600,59500" +tm "BdLibraryNameMgr" +) +*57 (Text +uid 2402,0 +va (VaSet +) +xt "48600,59700,50600,60700" +st "DFF" +blo "48600,60500" +tm "CptNameMgr" +) +*58 (Text +uid 2403,0 +va (VaSet +) +xt "48600,60700,49600,61700" +st "I8" +blo "48600,61500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2404,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2405,0 +text (MLText +uid 2406,0 +va (VaSet +) +xt "21000,48000,21000,48000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*59 (SaComponent +uid 2424,0 +optionalChildren [ +*60 (CptPort +uid 2433,0 +optionalChildren [ +*61 (Circle +uid 2438,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "54092,52546,55000,53454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2434,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "53342,52625,54092,53375" +) +tg (CPTG +uid 2435,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2436,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "55000,52500,57400,54000" +st "in1" +blo "55000,53700" +) +s (Text +uid 2437,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "55000,53900,55000,53900" +blo "55000,53900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*62 (CptPort +uid 2439,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2440,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "60000,52625,60750,53375" +) +tg (CPTG +uid 2441,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2442,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "337651,319898,340751,321398" +st "out1" +ju 2 +blo "340751,321098" +) +s (Text +uid 2443,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "340751,321198,340751,321198" +ju 2 +blo "340751,321198" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 2425,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "55000,50000,60000,56000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 2426,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +uid 2427,0 +va (VaSet +isHidden 1 +) +xt "79460,55700,81860,56700" +st "Board" +blo "79460,56500" +tm "BdLibraryNameMgr" +) +*64 (Text +uid 2428,0 +va (VaSet +isHidden 1 +) +xt "79460,56700,83360,57700" +st "inverterIn" +blo "79460,57500" +tm "CptNameMgr" +) +*65 (Text +uid 2429,0 +va (VaSet +isHidden 1 +) +xt "79460,56700,80460,57700" +st "I4" +blo "79460,57500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2430,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2431,0 +text (MLText +uid 2432,0 +va (VaSet +) +xt "55000,56400,55000,56400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*66 (Net +uid 2476,0 +decl (Decl +n "resetSnch_N1" +t "std_ulogic" +o 11 +suid 25,0 +) +declText (MLText +uid 2477,0 +va (VaSet +) +xt "-1000,26200,19300,27400" +st "SIGNAL resetSnch_N1 : std_ulogic" +) +) +*67 (Net +uid 2478,0 +decl (Decl +n "reset1" +t "std_ulogic" +o 12 +suid 26,0 +) +declText (MLText +uid 2479,0 +va (VaSet +) +xt "-1000,25200,17200,26400" +st "SIGNAL reset1 : std_ulogic" +) +) +*68 (Net +uid 2482,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 10 +suid 28,0 +) +declText (MLText +uid 2483,0 +va (VaSet +) +xt "-1000,10200,13100,11400" +st "reset_N : std_ulogic" +) +) +*69 (SaComponent +uid 2492,0 +optionalChildren [ +*70 (CptPort +uid 2501,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2502,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,37625,43000,38375" +) +tg (CPTG +uid 2503,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2504,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,37300,45600,38800" +st "D" +blo "44000,38500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*71 (CptPort +uid 2505,0 +optionalChildren [ +*72 (FFT +pts [ +"43750,42000" +"43000,42375" +"43000,41625" +] +uid 2509,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,41625,43750,42375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2506,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,41625,43000,42375" +) +tg (CPTG +uid 2507,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2508,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,41400,47100,42900" +st "CLK" +blo "44000,42600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*73 (CptPort +uid 2510,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2511,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "45625,44000,46375,44750" +) +tg (CPTG +uid 2512,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2513,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,42600,48200,44100" +st "CLR" +blo "45000,43800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*74 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2515,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "49000,37625,49750,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Arial,12,0" +) +xt "46400,37300,48000,38800" +st "Q" +ju 2 +blo "48000,38500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 2493,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,36000,49000,44000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2494,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 2495,0 +va (VaSet +) +xt "47600,43700,50000,44700" +st "Board" +blo "47600,44500" +tm "BdLibraryNameMgr" +) +*76 (Text +uid 2496,0 +va (VaSet +) +xt "47600,44700,49600,45700" +st "DFF" +blo "47600,45500" +tm "CptNameMgr" +) +*77 (Text +uid 2497,0 +va (VaSet +) +xt "47600,45700,48600,46700" +st "I9" +blo "47600,46500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2498,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2499,0 +text (MLText +uid 2500,0 +va (VaSet +) +xt "20000,33000,20000,33000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*78 (Net +uid 2538,0 +decl (Decl +n "morseIn" +t "std_uLogic" +o 10 +suid 30,0 +) +declText (MLText +uid 2539,0 +va (VaSet +) +xt "-1000,9200,13600,10400" +st "morseIn : std_uLogic" +) +) +*79 (PortIoIn +uid 2540,0 +shape (CompositeShape +uid 2541,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2542,0 +sl 0 +ro 270 +xt "32000,37625,33500,38375" +) +(Line +uid 2543,0 +sl 0 +ro 270 +xt "33500,38000,34000,38000" +pts [ +"33500,38000" +"34000,38000" +] +) +] +) +tg (WTG +uid 2544,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2545,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "25700,37350,31000,38850" +st "morseIn" +ju 2 +blo "31000,38550" +tm "WireNameMgr" +) +) +) +*80 (Net +uid 2552,0 +decl (Decl +n "morseIn_synch" +t "std_uLogic" +o 11 +suid 32,0 +) +declText (MLText +uid 2553,0 +va (VaSet +) +xt "-1000,24200,19900,25400" +st "SIGNAL morseIn_synch : std_uLogic" +) +) +*81 (Net +uid 2554,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 12 +suid 33,0 +) +declText (MLText +uid 2555,0 +va (VaSet +) +xt "-1000,12200,12400,13400" +st "TxD : std_ulogic" +) +) +*82 (PortIoOut +uid 2562,0 +shape (CompositeShape +uid 2563,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2564,0 +sl 0 +ro 270 +xt "98500,44625,100000,45375" +) +(Line +uid 2565,0 +sl 0 +ro 270 +xt "98000,45000,98500,45000" +pts [ +"98000,45000" +"98500,45000" +] +) +] +) +tg (WTG +uid 2566,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2567,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,44350,103800,45850" +st "TxD" +blo "101000,45550" +tm "WireNameMgr" +) +) +) +*83 (Net +uid 2568,0 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 13 +suid 34,0 +) +declText (MLText +uid 2569,0 +va (VaSet +) +xt "-1000,13200,15000,14400" +st "morseEnvelope : std_ulogic" +) +) +*84 (PortIoOut +uid 2576,0 +shape (CompositeShape +uid 2577,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2578,0 +sl 0 +ro 270 +xt "98500,48625,100000,49375" +) +(Line +uid 2579,0 +sl 0 +ro 270 +xt "98000,49000,98500,49000" +pts [ +"98000,49000" +"98500,49000" +] +) +] +) +tg (WTG +uid 2580,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2581,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,48350,111100,49850" +st "morseEnvelope" +blo "101000,49550" +tm "WireNameMgr" +) +) +) +*85 (Net +uid 2598,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 13 +suid 35,0 +) +declText (MLText +uid 2599,0 +va (VaSet +) +xt "-1000,23200,17300,24400" +st "SIGNAL logic1 : std_uLogic" +) +) +*86 (SaComponent +uid 2661,0 +optionalChildren [ +*87 (CptPort +uid 2641,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2642,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,44625,66000,45375" +) +tg (CPTG +uid 2643,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2644,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,44700,72300,45900" +st "morseCode" +blo "67000,45600" +) +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*88 (CptPort +uid 2645,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2646,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,48625,66000,49375" +) +tg (CPTG +uid 2647,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2648,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,48400,69700,49600" +st "clock" +blo "67000,49300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*89 (CptPort +uid 2649,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2650,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,50625,66000,51375" +) +tg (CPTG +uid 2651,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2652,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,50400,69600,51600" +st "reset" +blo "67000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*90 (CptPort +uid 2653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2654,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,44625,82750,45375" +) +tg (CPTG +uid 2655,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2656,0 +va (VaSet +font "Arial,9,0" +) +xt "78800,44700,81000,45900" +st "TxD" +ju 2 +blo "81000,45600" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*91 (CptPort +uid 2657,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2658,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,48625,82750,49375" +) +tg (CPTG +uid 2659,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2660,0 +va (VaSet +) +xt "75100,48550,81000,49550" +st "morseEnvelope" +ju 2 +blo "81000,49350" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 2662,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "66000,41000,82000,53000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 2663,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 2664,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,52800,69800,53900" +st "Morse" +blo "66600,53700" +tm "BdLibraryNameMgr" +) +*93 (Text +uid 2665,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,53900,74200,55000" +st "morseDecoder" +blo "66600,54800" +tm "CptNameMgr" +) +*94 (Text +uid 2666,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,55000,69500,56100" +st "I_dec" +blo "66600,55900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2667,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2668,0 +text (MLText +uid 2669,0 +va (VaSet +) +xt "66000,56600,94900,63800" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) +deglitchBitNb = deglitchBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*95 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "62000,21000,65250,21000" +pts [ +"62000,21000" +"65250,21000" +] +) +end &30 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Arial,12,0" +) +xt "62000,19600,65500,21100" +st "clock" +blo "62000,20800" +tm "WireNameMgr" +) +) +on &1 +) +*96 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "62000,23000,65250,23000" +pts [ +"62000,23000" +"65250,23000" +] +) +end &31 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "Arial,12,0" +) +xt "59000,21600,66500,23100" +st "resetSynch" +blo "59000,22800" +tm "WireNameMgr" +) +) +on &14 +) +*97 (Wire +uid 1965,0 +shape (OrthoPolyLine +uid 1966,0 +va (VaSet +vasetType 3 +) +xt "82750,17000,98000,17000" +pts [ +"82750,17000" +"98000,17000" +] +) +start &29 +end &13 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1967,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1968,0 +va (VaSet +font "Arial,12,0" +) +xt "91000,15600,97200,17100" +st "morseOut" +blo "91000,16800" +tm "WireNameMgr" +) +) +on &36 +) +*98 (Wire +uid 1995,0 +shape (OrthoPolyLine +uid 1996,0 +va (VaSet +vasetType 3 +) +xt "41000,13000,43000,13000" +pts [ +"41000,13000" +"43000,13000" +] +) +end &17 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1999,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2000,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,11600,42500,13100" +st "clock" +blo "39000,12800" +tm "WireNameMgr" +) +) +on &1 +) +*99 (Wire +uid 2003,0 +optionalChildren [ +*100 (BdJunction +uid 2029,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2030,0 +va (VaSet +vasetType 1 +) +xt "56600,8600,57400,9400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 2004,0 +va (VaSet +vasetType 3 +) +xt "49000,9000,65250,17000" +pts [ +"65250,17000" +"57000,17000" +"57000,9000" +"49000,9000" +] +) +start &32 +end &20 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2005,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2006,0 +va (VaSet +font "Arial,12,0" +) +xt "51000,7600,57900,9100" +st "RxD_synch" +blo "51000,8800" +tm "WireNameMgr" +) +) +on &25 +) +*101 (Wire +uid 2007,0 +shape (OrthoPolyLine +uid 2008,0 +va (VaSet +vasetType 3 +) +xt "34000,9000,43000,9000" +pts [ +"34000,9000" +"43000,9000" +] +) +start &26 +end &16 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2013,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2014,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,7600,38000,9100" +st "RxD" +blo "35000,8800" +tm "WireNameMgr" +) +) +on &24 +) +*102 (Wire +uid 2023,0 +shape (OrthoPolyLine +uid 2024,0 +va (VaSet +vasetType 3 +) +xt "57000,9000,98000,9000" +pts [ +"57000,9000" +"98000,9000" +] +) +start &100 +end &27 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2027,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2028,0 +va (VaSet +font "Arial,12,0" +) +xt "91000,7600,97900,9100" +st "RxD_synch" +blo "91000,8800" +tm "WireNameMgr" +) +) +on &25 +) +*103 (Wire +uid 2043,0 +shape (OrthoPolyLine +uid 2044,0 +va (VaSet +vasetType 3 +) +xt "41000,15000,46000,17000" +pts [ +"41000,17000" +"46000,17000" +"46000,15000" +] +) +end &19 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2049,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2050,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,15600,45500,17100" +st "resetSynch" +blo "38000,16800" +tm "WireNameMgr" +) +) +on &14 +) +*104 (Wire +uid 2444,0 +shape (OrthoPolyLine +uid 2445,0 +va (VaSet +vasetType 3 +) +xt "38000,59000,47000,61000" +pts [ +"38000,61000" +"47000,61000" +"47000,59000" +] +) +start &46 +end &54 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2446,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2447,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,59600,43200,61100" +st "reset1" +blo "39000,60800" +tm "WireNameMgr" +) +) +on &67 +) +*105 (Wire +uid 2448,0 +shape (OrthoPolyLine +uid 2449,0 +va (VaSet +vasetType 3 +) +xt "27000,61000,32092,61000" +pts [ +"27000,61000" +"32092,61000" +] +) +start &38 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2450,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2451,0 +va (VaSet +font "Arial,12,0" +) +xt "26000,59600,31100,61100" +st "reset_N" +blo "26000,60800" +tm "WireNameMgr" +) +) +on &68 +) +*106 (Wire +uid 2452,0 +shape (OrthoPolyLine +uid 2453,0 +va (VaSet +vasetType 3 +) +xt "39000,53000,44000,53000" +pts [ +"44000,53000" +"39000,53000" +] +) +start &51 +end &39 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2456,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2457,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,51600,44000,53100" +st "logic1" +blo "40000,52800" +tm "WireNameMgr" +) +) +on &85 +) +*107 (Wire +uid 2458,0 +shape (OrthoPolyLine +uid 2459,0 +va (VaSet +vasetType 3 +) +xt "50000,53000,54092,53000" +pts [ +"50000,53000" +"54092,53000" +] +) +start &55 +end &60 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2460,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2461,0 +va (VaSet +font "Arial,12,0" +) +xt "49000,51600,58300,53100" +st "resetSnch_N1" +blo "49000,52800" +tm "WireNameMgr" +) +) +on &66 +) +*108 (Wire +uid 2462,0 +shape (OrthoPolyLine +uid 2463,0 +va (VaSet +vasetType 3 +) +xt "27000,49000,65250,49000" +pts [ +"27000,49000" +"65250,49000" +] +) +start &37 +end &88 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Arial,12,0" +) +xt "27000,47600,30500,49100" +st "clock" +blo "27000,48800" +tm "WireNameMgr" +) +) +on &1 +) +*109 (Wire +uid 2468,0 +shape (OrthoPolyLine +uid 2469,0 +va (VaSet +vasetType 3 +) +xt "42000,57000,44000,57000" +pts [ +"42000,57000" +"44000,57000" +] +) +end &52 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2472,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2473,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,55600,43500,57100" +st "clock" +blo "40000,56800" +tm "WireNameMgr" +) +) +on &1 +) +*110 (Wire +uid 2484,0 +shape (OrthoPolyLine +uid 2485,0 +va (VaSet +vasetType 3 +) +xt "60000,51000,65250,53000" +pts [ +"60000,53000" +"63000,53000" +"63000,51000" +"65250,51000" +] +) +start &62 +end &89 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2490,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2491,0 +va (VaSet +font "Arial,12,0" +) +xt "59000,49600,66500,51100" +st "resetSynch" +blo "59000,50800" +tm "WireNameMgr" +) +) +on &14 +) +*111 (Wire +uid 2518,0 +shape (OrthoPolyLine +uid 2519,0 +va (VaSet +vasetType 3 +) +xt "41000,42000,43000,42000" +pts [ +"41000,42000" +"43000,42000" +] +) +end &71 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2522,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2523,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,40600,42500,42100" +st "clock" +blo "39000,41800" +tm "WireNameMgr" +) +) +on &1 +) +*112 (Wire +uid 2524,0 +shape (OrthoPolyLine +uid 2525,0 +va (VaSet +vasetType 3 +) +xt "41000,44000,46000,46000" +pts [ +"41000,46000" +"46000,46000" +"46000,44000" +] +) +end &73 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2528,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2529,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,44600,45500,46100" +st "resetSynch" +blo "38000,45800" +tm "WireNameMgr" +) +) +on &14 +) +*113 (Wire +uid 2532,0 +shape (OrthoPolyLine +uid 2533,0 +va (VaSet +vasetType 3 +) +xt "34000,38000,43000,38000" +pts [ +"34000,38000" +"43000,38000" +] +) +start &79 +end &70 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2536,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2537,0 +va (VaSet +font "Arial,12,0" +) +xt "36000,36700,41300,38200" +st "morseIn" +blo "36000,37900" +tm "WireNameMgr" +) +) +on &78 +) +*114 (Wire +uid 2548,0 +shape (OrthoPolyLine +uid 2549,0 +va (VaSet +vasetType 3 +) +xt "49000,38000,65250,45000" +pts [ +"49000,38000" +"57000,38000" +"57000,45000" +"65250,45000" +] +) +start &74 +end &87 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2550,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2551,0 +va (VaSet +font "Arial,12,0" +) +xt "51000,36700,60900,38200" +st "morseIn_synch" +blo "51000,37900" +tm "WireNameMgr" +) +) +on &80 +) +*115 (Wire +uid 2556,0 +shape (OrthoPolyLine +uid 2557,0 +va (VaSet +vasetType 3 +) +xt "82750,45000,98000,45000" +pts [ +"82750,45000" +"98000,45000" +] +) +start &90 +end &82 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2560,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2561,0 +va (VaSet +font "Arial,12,0" +) +xt "96000,43700,98800,45200" +st "TxD" +blo "96000,44900" +tm "WireNameMgr" +) +) +on &81 +) +*116 (Wire +uid 2570,0 +shape (OrthoPolyLine +uid 2571,0 +va (VaSet +vasetType 3 +) +xt "82750,49000,98000,49000" +pts [ +"82750,49000" +"98000,49000" +] +) +start &91 +end &84 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2574,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2575,0 +va (VaSet +font "Arial,12,0" +) +xt "89000,47700,99100,49200" +st "morseEnvelope" +blo "89000,48900" +tm "WireNameMgr" +) +) +on &83 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *117 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*118 (Text +uid 85,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,0,2400,1000" +st "Package List" +blo "-3000,800" +) +*119 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*121 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*122 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*123 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*124 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*125 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*126 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4567,-1603,137994,75855" +cachedDiagramExtent "-3000,0,340751,321398" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2786,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*127 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*128 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*129 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*130 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*131 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*132 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*133 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*134 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*135 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*136 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*137 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*138 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*140 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*141 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*142 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*143 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*144 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*145 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*147 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,5200,2400,6200" +st "Declarations" +blo "-3000,6000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,6200,-300,7200" +st "Ports:" +blo "-3000,7000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,15200,800,16200" +st "Pre User:" +blo "-3000,16000" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-1000,16200,36700,23400" +st "constant clockFrequency: real := 66.0E6; +constant uartBaudRate: real := 9.6E3; +constant uartDataBitNb: positive := 7; +constant morseUnitDuration: real := 100.0E-3; -- 1/2 * 10 Hz +constant morseToneFrequency: real := 3135.96; -- sol 3eme octave +constant deglitchBitNb: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,22200,4100,23200" +st "Diagram Signals:" +blo "-3000,23000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-3000,5200,1700,6200" +st "Post User:" +blo "-3000,6000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,5200,-3000,5200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 35,0 +usingSuid 1 +emptyRow *148 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*149 (RefLabelRowHdr +) +*150 (TitleRowHdr +) +*151 (FilterRowHdr +) +*152 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*153 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*154 (GroupColHdr +tm "GroupColHdrMgr" +) +*155 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*156 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*157 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*158 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*159 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*160 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*161 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 1377,0 +) +*162 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +) +uid 1399,0 +) +*163 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 21,0 +) +) +uid 2039,0 +) +*164 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 4 +suid 22,0 +) +) +uid 2041,0 +) +*165 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 5 +suid 23,0 +) +) +uid 2264,0 +) +*166 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSnch_N1" +t "std_ulogic" +o 11 +suid 25,0 +) +) +uid 2582,0 +) +*167 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset1" +t "std_ulogic" +o 12 +suid 26,0 +) +) +uid 2584,0 +) +*168 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 10 +suid 28,0 +) +) +uid 2588,0 +) +*169 (LeafLogPort +port (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 10 +suid 30,0 +) +) +uid 2590,0 +) +*170 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseIn_synch" +t "std_uLogic" +o 11 +suid 32,0 +) +) +uid 2592,0 +) +*171 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 12 +suid 33,0 +) +) +uid 2594,0 +) +*172 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 13 +suid 34,0 +) +) +uid 2596,0 +) +*173 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 13 +suid 35,0 +) +) +uid 2600,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*174 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *175 (MRCItem +litem &148 +pos 13 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*176 (MRCItem +litem &149 +pos 0 +dimension 20 +uid 1422,0 +) +*177 (MRCItem +litem &150 +pos 1 +dimension 23 +uid 1423,0 +) +*178 (MRCItem +litem &151 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*179 (MRCItem +litem &161 +pos 0 +dimension 20 +uid 1378,0 +) +*180 (MRCItem +litem &162 +pos 3 +dimension 20 +uid 1400,0 +) +*181 (MRCItem +litem &163 +pos 1 +dimension 20 +uid 2040,0 +) +*182 (MRCItem +litem &164 +pos 2 +dimension 20 +uid 2042,0 +) +*183 (MRCItem +litem &165 +pos 4 +dimension 20 +uid 2265,0 +) +*184 (MRCItem +litem &166 +pos 5 +dimension 20 +uid 2583,0 +) +*185 (MRCItem +litem &167 +pos 6 +dimension 20 +uid 2585,0 +) +*186 (MRCItem +litem &168 +pos 7 +dimension 20 +uid 2589,0 +) +*187 (MRCItem +litem &169 +pos 8 +dimension 20 +uid 2591,0 +) +*188 (MRCItem +litem &170 +pos 9 +dimension 20 +uid 2593,0 +) +*189 (MRCItem +litem &171 +pos 10 +dimension 20 +uid 2595,0 +) +*190 (MRCItem +litem &172 +pos 11 +dimension 20 +uid 2597,0 +) +*191 (MRCItem +litem &173 +pos 12 +dimension 20 +uid 2601,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*192 (MRCItem +litem &152 +pos 0 +dimension 20 +uid 1426,0 +) +*193 (MRCItem +litem &154 +pos 1 +dimension 50 +uid 1427,0 +) +*194 (MRCItem +litem &155 +pos 2 +dimension 100 +uid 1428,0 +) +*195 (MRCItem +litem &156 +pos 3 +dimension 50 +uid 1429,0 +) +*196 (MRCItem +litem &157 +pos 4 +dimension 100 +uid 1430,0 +) +*197 (MRCItem +litem &158 +pos 5 +dimension 100 +uid 1431,0 +) +*198 (MRCItem +litem &159 +pos 6 +dimension 50 +uid 1432,0 +) +*199 (MRCItem +litem &160 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *200 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*201 (RefLabelRowHdr +) +*202 (TitleRowHdr +) +*203 (FilterRowHdr +) +*204 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*205 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*206 (GroupColHdr +tm "GroupColHdrMgr" +) +*207 (NameColHdr +tm "GenericNameColHdrMgr" +) +*208 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*209 (InitColHdr +tm "GenericValueColHdrMgr" +) +*210 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*211 (EolColHdr +tm "GenericEolColHdrMgr" +) +*212 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 1488,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*213 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *214 (MRCItem +litem &200 +pos 1 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*215 (MRCItem +litem &201 +pos 0 +dimension 20 +uid 1450,0 +) +*216 (MRCItem +litem &202 +pos 1 +dimension 23 +uid 1451,0 +) +*217 (MRCItem +litem &203 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*218 (MRCItem +litem &212 +pos 0 +dimension 20 +uid 1487,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*219 (MRCItem +litem &204 +pos 0 +dimension 20 +uid 1454,0 +) +*220 (MRCItem +litem &206 +pos 1 +dimension 50 +uid 1455,0 +) +*221 (MRCItem +litem &207 +pos 2 +dimension 100 +uid 1456,0 +) +*222 (MRCItem +litem &208 +pos 3 +dimension 100 +uid 1457,0 +) +*223 (MRCItem +litem &209 +pos 4 +dimension 50 +uid 1458,0 +) +*224 (MRCItem +litem &210 +pos 5 +dimension 50 +uid 1459,0 +) +*225 (MRCItem +litem &211 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Board/hds/morse_circuit/symbol.sb b/05-Morse/Board/hds/morse_circuit/symbol.sb new file mode 100644 index 0000000..eec51af --- /dev/null +++ b/05-Morse/Board/hds/morse_circuit/symbol.sb @@ -0,0 +1,1825 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2012,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 4 +suid 2,0 +) +) +uid 164,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 168,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 360,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +uid 362,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +uid 517,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 3 +suid 2010,0 +) +) +uid 547,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 6 +suid 2011,0 +) +) +uid 549,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 7 +suid 2012,0 +) +) +uid 551,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 104,0 +optionalChildren [ +*24 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 107,0 +) +*25 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 109,0 +) +*26 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*27 (MRCItem +litem &2 +pos 4 +dimension 20 +uid 130,0 +) +*28 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 134,0 +) +*29 (MRCItem +litem &16 +pos 1 +dimension 20 +uid 359,0 +) +*30 (MRCItem +litem &17 +pos 2 +dimension 20 +uid 361,0 +) +*31 (MRCItem +litem &18 +pos 3 +dimension 20 +uid 516,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 546,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 548,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 550,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*35 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 113,0 +) +*36 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 117,0 +) +*37 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 119,0 +) +*38 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 121,0 +) +*39 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 123,0 +) +*40 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 125,0 +) +*41 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 127,0 +) +*42 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 160,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &43 +pos 3 +dimension 20 +) +uid 136,0 +optionalChildren [ +*58 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 139,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 141,0 +) +*60 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*61 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 161,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*62 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 145,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 149,0 +) +*64 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 151,0 +) +*65 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 153,0 +) +*66 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 155,0 +) +*67 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 157,0 +) +*68 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morse_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:49:40" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morse_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:49:40" +) +(vvPair +variable "unit" +value "morse_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,17400,35700,18600" +st "clock" +blo "33000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +) +xt "2000,12000,19200,13200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*71 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,19400,36800,20600" +st "reset_N" +blo "33000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +) +xt "2000,14000,19900,15200" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 4 +suid 2,0 +) +) +) +*72 (CptPort +uid 368,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 369,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,20625,32000,21375" +) +tg (CPTG +uid 370,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 371,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,20400,35400,21600" +st "RxD" +blo "33000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 372,0 +va (VaSet +) +xt "2000,11000,19200,12200" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*73 (CptPort +uid 373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 374,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,11625,48750,12375" +) +tg (CPTG +uid 375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 376,0 +va (VaSet +font "Arial,9,0" +) +xt "41500,11400,47000,12600" +st "RxD_synch" +ju 2 +blo "47000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 377,0 +va (VaSet +) +xt "2000,15000,21800,16200" +st "RxD_synch : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +) +*74 (CptPort +uid 518,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 519,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,12625,48750,13375" +) +tg (CPTG +uid 520,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 521,0 +va (VaSet +) +xt "43300,12500,47000,13500" +st "morseOut" +ju 2 +blo "47000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 522,0 +va (VaSet +) +xt "2000,18000,20700,19200" +st "morseOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +) +*75 (CptPort +uid 552,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 553,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,21625,32000,22375" +) +tg (CPTG +uid 554,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 555,0 +va (VaSet +) +xt "33000,21500,36100,22500" +st "morseIn" +blo "33000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 556,0 +va (VaSet +) +xt "2000,13000,20400,14200" +st "morseIn : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 3 +suid 2010,0 +) +) +) +*76 (CptPort +uid 557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 559,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 560,0 +va (VaSet +) +xt "45200,13500,47000,14500" +st "TxD" +ju 2 +blo "47000,14300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 561,0 +va (VaSet +) +xt "2000,16000,20000,17200" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 6 +suid 2011,0 +) +) +) +*77 (CptPort +uid 562,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 563,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,14625,48750,15375" +) +tg (CPTG +uid 564,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 565,0 +va (VaSet +) +xt "41100,14500,47000,15500" +st "morseEnvelope" +ju 2 +blo "47000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 566,0 +va (VaSet +) +xt "2000,17000,22600,18200" +st "morseEnvelope : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 7 +suid 2012,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,21800,35900,22900" +st "Board" +blo "32600,22700" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,22900,39800,24000" +st "morse_circuit" +blo "32600,23800" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +) +xt "32000,25600,44700,29200" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "Arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*92 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-1040,75120,50530" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Arial,9,0" +) +xt "200,200,2500,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Arial,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,19000,2400,20000" +st "User:" +blo "0,19800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +) +xt "2000,20000,2000,20000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 796,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/05-Morse/Board/hds/morse_ebs2/struct.bd b/05-Morse/Board/hds/morse_ebs2/struct.bd new file mode 100644 index 0000000..5e586e4 --- /dev/null +++ b/05-Morse/Board/hds/morse_ebs2/struct.bd @@ -0,0 +1,5453 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I7" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 1969,0 +) +(Instance +name "I_enc" +duLibraryName "Morse" +duName "morseEncoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +mwi 0 +uid 2160,0 +) +(Instance +name "I3" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 2378,0 +) +(Instance +name "I8" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 2398,0 +) +(Instance +name "I4" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 2424,0 +) +(Instance +name "I9" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 2492,0 +) +(Instance +name "I_dec" +duLibraryName "Morse" +duName "morseDecoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +mwi 0 +uid 2661,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb5" +number "5" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morse_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:49:40" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morse_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:49:40" +) +(vvPair +variable "unit" +value "morse_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,8200,12400,9400" +st "clock : std_ulogic" +) +) +*2 (Grouping +uid 51,0 +optionalChildren [ +*3 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,73000,86000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,73500,69200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,69000,90000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,69500,86200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,71000,86000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,71500,69200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,71000,69000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,71500,65200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "86000,70000,106000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "86200,70200,100300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*8 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90000,69000,106000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "90200,69500,90200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,69000,86000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "70350,69400,80650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,72000,69000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,72500,65200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "65000,73000,69000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "65200,73500,65200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,72000,86000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "69200,72500,69200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "65000,69000,106000,74000" +) +oxt "14000,66000,55000,71000" +) +*13 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "98500,16625,100000,17375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "98000,17000,98500,17000" +pts [ +"98000,17000" +"98500,17000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,16300,107200,17800" +st "morseOut" +blo "101000,17500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 897,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +declText (MLText +uid 898,0 +va (VaSet +) +xt "-1000,27200,18400,28400" +st "SIGNAL resetSynch : std_ulogic" +) +) +*15 (SaComponent +uid 1969,0 +optionalChildren [ +*16 (CptPort +uid 1978,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1979,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,8625,43000,9375" +) +tg (CPTG +uid 1980,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1981,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,8300,45600,9800" +st "D" +blo "44000,9500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*17 (CptPort +uid 1982,0 +optionalChildren [ +*18 (FFT +pts [ +"43750,13000" +"43000,13375" +"43000,12625" +] +uid 1986,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,12625,43750,13375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1983,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,12625,43000,13375" +) +tg (CPTG +uid 1984,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1985,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,12400,47100,13900" +st "CLK" +blo "44000,13600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*19 (CptPort +uid 1987,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1988,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "45625,15000,46375,15750" +) +tg (CPTG +uid 1989,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1990,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,13600,48200,15100" +st "CLR" +blo "45000,14800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*20 (CptPort +uid 1991,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1992,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "49000,8625,49750,9375" +) +tg (CPTG +uid 1993,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1994,0 +va (VaSet +font "Arial,12,0" +) +xt "46400,8300,48000,9800" +st "Q" +ju 2 +blo "48000,9500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1970,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,7000,49000,15000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1971,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*21 (Text +uid 1972,0 +va (VaSet +) +xt "47600,14700,50000,15700" +st "Board" +blo "47600,15500" +tm "BdLibraryNameMgr" +) +*22 (Text +uid 1973,0 +va (VaSet +) +xt "47600,15700,49600,16700" +st "DFF" +blo "47600,16500" +tm "CptNameMgr" +) +*23 (Text +uid 1974,0 +va (VaSet +) +xt "47600,16700,48600,17700" +st "I7" +blo "47600,17500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1975,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1976,0 +text (MLText +uid 1977,0 +va (VaSet +) +xt "20000,4000,20000,4000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*24 (Net +uid 2001,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 21,0 +) +declText (MLText +uid 2002,0 +va (VaSet +) +xt "-1000,7200,12400,8400" +st "RxD : std_ulogic" +) +) +*25 (Net +uid 2015,0 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 4 +suid 22,0 +) +declText (MLText +uid 2016,0 +va (VaSet +) +xt "-1000,11200,14200,12400" +st "RxD_synch : std_ulogic" +) +) +*26 (PortIoIn +uid 2017,0 +shape (CompositeShape +uid 2018,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2019,0 +sl 0 +ro 270 +xt "32000,8625,33500,9375" +) +(Line +uid 2020,0 +sl 0 +ro 270 +xt "33500,9000,34000,9000" +pts [ +"33500,9000" +"34000,9000" +] +) +] +) +tg (WTG +uid 2021,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2022,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "28000,8300,31000,9800" +st "RxD" +ju 2 +blo "31000,9500" +tm "WireNameMgr" +) +) +) +*27 (PortIoOut +uid 2031,0 +shape (CompositeShape +uid 2032,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2033,0 +sl 0 +ro 270 +xt "98500,8625,100000,9375" +) +(Line +uid 2034,0 +sl 0 +ro 270 +xt "98000,9000,98500,9000" +pts [ +"98000,9000" +"98500,9000" +] +) +] +) +tg (WTG +uid 2035,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2036,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,8300,107900,9800" +st "RxD_synch" +blo "101000,9500" +tm "WireNameMgr" +) +) +) +*28 (SaComponent +uid 2160,0 +optionalChildren [ +*29 (CptPort +uid 2144,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2145,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,16625,82750,17375" +) +tg (CPTG +uid 2146,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2147,0 +va (VaSet +font "Arial,9,0" +) +xt "75700,16400,81000,17600" +st "morseCode" +ju 2 +blo "81000,17300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*30 (CptPort +uid 2148,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2149,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,20625,66000,21375" +) +tg (CPTG +uid 2150,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2151,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,20400,69700,21600" +st "clock" +blo "67000,21300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*31 (CptPort +uid 2152,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2153,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,22625,66000,23375" +) +tg (CPTG +uid 2154,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2155,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,22400,69600,23600" +st "reset" +blo "67000,23300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*32 (CptPort +uid 2156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,16625,66000,17375" +) +tg (CPTG +uid 2158,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2159,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,16400,69400,17600" +st "RxD" +blo "67000,17300" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +] +shape (Rectangle +uid 2161,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "66000,13000,82000,25000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 2162,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 2163,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,24800,69800,25900" +st "Morse" +blo "66600,25700" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 2164,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,25900,74200,27000" +st "morseEncoder" +blo "66600,26800" +tm "CptNameMgr" +) +*35 (Text +uid 2165,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,27000,69500,28100" +st "I_enc" +blo "66600,27900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2166,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2167,0 +text (MLText +uid 2168,0 +va (VaSet +) +xt "66000,28000,94900,34000" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*36 (Net +uid 2262,0 +decl (Decl +n "morseOut" +t "std_ulogic" +o 5 +suid 23,0 +) +declText (MLText +uid 2263,0 +va (VaSet +) +xt "-1000,14200,13800,15400" +st "morseOut : std_ulogic" +) +) +*37 (PortIoIn +uid 2357,0 +shape (CompositeShape +uid 2358,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2359,0 +sl 0 +ro 270 +xt "25000,48625,26500,49375" +) +(Line +uid 2360,0 +sl 0 +ro 270 +xt "26500,49000,27000,49000" +pts [ +"26500,49000" +"27000,49000" +] +) +] +) +tg (WTG +uid 2361,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2362,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "20500,48350,24000,49850" +st "clock" +ju 2 +blo "24000,49550" +tm "WireNameMgr" +) +) +) +*38 (PortIoIn +uid 2363,0 +shape (CompositeShape +uid 2364,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2365,0 +sl 0 +ro 270 +xt "25000,60625,26500,61375" +) +(Line +uid 2366,0 +sl 0 +ro 270 +xt "26500,61000,27000,61000" +pts [ +"26500,61000" +"27000,61000" +] +) +] +) +tg (WTG +uid 2367,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2368,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "18900,60350,24000,61850" +st "reset_N" +ju 2 +blo "24000,61550" +tm "WireNameMgr" +) +) +) +*39 (HdlText +uid 2369,0 +optionalChildren [ +*40 (EmbeddedText +uid 2374,0 +commentText (CommentText +uid 2375,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2376,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "32000,52000,38000,54000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2377,0 +va (VaSet +) +xt "32200,52200,37700,53400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 2370,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "31000,51000,39000,55000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2371,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 2372,0 +va (VaSet +) +xt "31400,55000,33000,56000" +st "eb5" +blo "31400,55800" +tm "HdlTextNameMgr" +) +*42 (Text +uid 2373,0 +va (VaSet +) +xt "31400,56000,32200,57000" +st "5" +blo "31400,56800" +tm "HdlTextNumberMgr" +) +] +) +) +*43 (SaComponent +uid 2378,0 +optionalChildren [ +*44 (CptPort +uid 2387,0 +optionalChildren [ +*45 (Circle +uid 2392,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32092,60546,33000,61454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2388,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "31342,60625,32092,61375" +) +tg (CPTG +uid 2389,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2390,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "33000,60500,35400,62000" +st "in1" +blo "33000,61700" +) +s (Text +uid 2391,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "33000,61900,33000,61900" +blo "33000,61900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*46 (CptPort +uid 2393,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2394,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38000,60625,38750,61375" +) +tg (CPTG +uid 2395,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2396,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "34650,60500,37750,62000" +st "out1" +ju 2 +blo "37750,61700" +) +s (Text +uid 2397,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "37750,61900,37750,61900" +ju 2 +blo "37750,61900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 2379,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "33000,58000,38000,64000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 2380,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +uid 2381,0 +va (VaSet +isHidden 1 +) +xt "57460,63700,59860,64700" +st "Board" +blo "57460,64500" +tm "BdLibraryNameMgr" +) +*48 (Text +uid 2382,0 +va (VaSet +isHidden 1 +) +xt "57460,64700,61360,65700" +st "inverterIn" +blo "57460,65500" +tm "CptNameMgr" +) +*49 (Text +uid 2383,0 +va (VaSet +isHidden 1 +) +xt "57460,64700,58460,65700" +st "I3" +blo "57460,65500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2384,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2385,0 +text (MLText +uid 2386,0 +va (VaSet +) +xt "33000,64400,33000,64400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*50 (SaComponent +uid 2398,0 +optionalChildren [ +*51 (CptPort +uid 2407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2408,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43250,52625,44000,53375" +) +tg (CPTG +uid 2409,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2410,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,52300,46600,53800" +st "D" +blo "45000,53500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*52 (CptPort +uid 2411,0 +optionalChildren [ +*53 (FFT +pts [ +"44750,57000" +"44000,57375" +"44000,56625" +] +uid 2415,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,56625,44750,57375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2412,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43250,56625,44000,57375" +) +tg (CPTG +uid 2413,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2414,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,56400,48100,57900" +st "CLK" +blo "45000,57600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*54 (CptPort +uid 2416,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2417,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "46625,59000,47375,59750" +) +tg (CPTG +uid 2418,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2419,0 +va (VaSet +font "Arial,12,0" +) +xt "46000,57600,49200,59100" +st "CLR" +blo "46000,58800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*55 (CptPort +uid 2420,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2421,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50000,52625,50750,53375" +) +tg (CPTG +uid 2422,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2423,0 +va (VaSet +font "Arial,12,0" +) +xt "47400,52300,49000,53800" +st "Q" +ju 2 +blo "49000,53500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 2399,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,51000,50000,59000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2400,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +uid 2401,0 +va (VaSet +) +xt "48600,58700,51000,59700" +st "Board" +blo "48600,59500" +tm "BdLibraryNameMgr" +) +*57 (Text +uid 2402,0 +va (VaSet +) +xt "48600,59700,50600,60700" +st "DFF" +blo "48600,60500" +tm "CptNameMgr" +) +*58 (Text +uid 2403,0 +va (VaSet +) +xt "48600,60700,49600,61700" +st "I8" +blo "48600,61500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2404,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2405,0 +text (MLText +uid 2406,0 +va (VaSet +) +xt "21000,48000,21000,48000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*59 (SaComponent +uid 2424,0 +optionalChildren [ +*60 (CptPort +uid 2433,0 +optionalChildren [ +*61 (Circle +uid 2438,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "54092,52546,55000,53454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2434,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "53342,52625,54092,53375" +) +tg (CPTG +uid 2435,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2436,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "55000,52500,57400,54000" +st "in1" +blo "55000,53700" +) +s (Text +uid 2437,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "55000,53900,55000,53900" +blo "55000,53900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*62 (CptPort +uid 2439,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2440,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "60000,52625,60750,53375" +) +tg (CPTG +uid 2441,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2442,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "337651,319898,340751,321398" +st "out1" +ju 2 +blo "340751,321098" +) +s (Text +uid 2443,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "340751,321198,340751,321198" +ju 2 +blo "340751,321198" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 2425,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "55000,50000,60000,56000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 2426,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +uid 2427,0 +va (VaSet +isHidden 1 +) +xt "79460,55700,81860,56700" +st "Board" +blo "79460,56500" +tm "BdLibraryNameMgr" +) +*64 (Text +uid 2428,0 +va (VaSet +isHidden 1 +) +xt "79460,56700,83360,57700" +st "inverterIn" +blo "79460,57500" +tm "CptNameMgr" +) +*65 (Text +uid 2429,0 +va (VaSet +isHidden 1 +) +xt "79460,56700,80460,57700" +st "I4" +blo "79460,57500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2430,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2431,0 +text (MLText +uid 2432,0 +va (VaSet +) +xt "55000,56400,55000,56400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*66 (Net +uid 2476,0 +decl (Decl +n "resetSnch_N1" +t "std_ulogic" +o 11 +suid 25,0 +) +declText (MLText +uid 2477,0 +va (VaSet +) +xt "-1000,26200,19300,27400" +st "SIGNAL resetSnch_N1 : std_ulogic" +) +) +*67 (Net +uid 2478,0 +decl (Decl +n "reset1" +t "std_ulogic" +o 12 +suid 26,0 +) +declText (MLText +uid 2479,0 +va (VaSet +) +xt "-1000,25200,17200,26400" +st "SIGNAL reset1 : std_ulogic" +) +) +*68 (Net +uid 2482,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 10 +suid 28,0 +) +declText (MLText +uid 2483,0 +va (VaSet +) +xt "-1000,10200,13100,11400" +st "reset_N : std_ulogic" +) +) +*69 (SaComponent +uid 2492,0 +optionalChildren [ +*70 (CptPort +uid 2501,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2502,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,37625,43000,38375" +) +tg (CPTG +uid 2503,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2504,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,37300,45600,38800" +st "D" +blo "44000,38500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*71 (CptPort +uid 2505,0 +optionalChildren [ +*72 (FFT +pts [ +"43750,42000" +"43000,42375" +"43000,41625" +] +uid 2509,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,41625,43750,42375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2506,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42250,41625,43000,42375" +) +tg (CPTG +uid 2507,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2508,0 +va (VaSet +font "Arial,12,0" +) +xt "44000,41400,47100,42900" +st "CLK" +blo "44000,42600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*73 (CptPort +uid 2510,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2511,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "45625,44000,46375,44750" +) +tg (CPTG +uid 2512,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2513,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,42600,48200,44100" +st "CLR" +blo "45000,43800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*74 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2515,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "49000,37625,49750,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Arial,12,0" +) +xt "46400,37300,48000,38800" +st "Q" +ju 2 +blo "48000,38500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 2493,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,36000,49000,44000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2494,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 2495,0 +va (VaSet +) +xt "47600,43700,50000,44700" +st "Board" +blo "47600,44500" +tm "BdLibraryNameMgr" +) +*76 (Text +uid 2496,0 +va (VaSet +) +xt "47600,44700,49600,45700" +st "DFF" +blo "47600,45500" +tm "CptNameMgr" +) +*77 (Text +uid 2497,0 +va (VaSet +) +xt "47600,45700,48600,46700" +st "I9" +blo "47600,46500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2498,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2499,0 +text (MLText +uid 2500,0 +va (VaSet +) +xt "20000,33000,20000,33000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*78 (Net +uid 2538,0 +decl (Decl +n "morseIn" +t "std_uLogic" +o 10 +suid 30,0 +) +declText (MLText +uid 2539,0 +va (VaSet +) +xt "-1000,9200,13600,10400" +st "morseIn : std_uLogic" +) +) +*79 (PortIoIn +uid 2540,0 +shape (CompositeShape +uid 2541,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2542,0 +sl 0 +ro 270 +xt "32000,37625,33500,38375" +) +(Line +uid 2543,0 +sl 0 +ro 270 +xt "33500,38000,34000,38000" +pts [ +"33500,38000" +"34000,38000" +] +) +] +) +tg (WTG +uid 2544,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2545,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "25700,37350,31000,38850" +st "morseIn" +ju 2 +blo "31000,38550" +tm "WireNameMgr" +) +) +) +*80 (Net +uid 2552,0 +decl (Decl +n "morseIn_synch" +t "std_uLogic" +o 11 +suid 32,0 +) +declText (MLText +uid 2553,0 +va (VaSet +) +xt "-1000,24200,19900,25400" +st "SIGNAL morseIn_synch : std_uLogic" +) +) +*81 (Net +uid 2554,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 12 +suid 33,0 +) +declText (MLText +uid 2555,0 +va (VaSet +) +xt "-1000,12200,12400,13400" +st "TxD : std_ulogic" +) +) +*82 (PortIoOut +uid 2562,0 +shape (CompositeShape +uid 2563,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2564,0 +sl 0 +ro 270 +xt "98500,44625,100000,45375" +) +(Line +uid 2565,0 +sl 0 +ro 270 +xt "98000,45000,98500,45000" +pts [ +"98000,45000" +"98500,45000" +] +) +] +) +tg (WTG +uid 2566,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2567,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,44350,103800,45850" +st "TxD" +blo "101000,45550" +tm "WireNameMgr" +) +) +) +*83 (Net +uid 2568,0 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 13 +suid 34,0 +) +declText (MLText +uid 2569,0 +va (VaSet +) +xt "-1000,13200,15000,14400" +st "morseEnvelope : std_ulogic" +) +) +*84 (PortIoOut +uid 2576,0 +shape (CompositeShape +uid 2577,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2578,0 +sl 0 +ro 270 +xt "98500,48625,100000,49375" +) +(Line +uid 2579,0 +sl 0 +ro 270 +xt "98000,49000,98500,49000" +pts [ +"98000,49000" +"98500,49000" +] +) +] +) +tg (WTG +uid 2580,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2581,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "101000,48350,111100,49850" +st "morseEnvelope" +blo "101000,49550" +tm "WireNameMgr" +) +) +) +*85 (Net +uid 2598,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 13 +suid 35,0 +) +declText (MLText +uid 2599,0 +va (VaSet +) +xt "-1000,23200,17300,24400" +st "SIGNAL logic1 : std_uLogic" +) +) +*86 (SaComponent +uid 2661,0 +optionalChildren [ +*87 (CptPort +uid 2641,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2642,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,44625,66000,45375" +) +tg (CPTG +uid 2643,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2644,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,44700,72300,45900" +st "morseCode" +blo "67000,45600" +) +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*88 (CptPort +uid 2645,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2646,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,48625,66000,49375" +) +tg (CPTG +uid 2647,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2648,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,48400,69700,49600" +st "clock" +blo "67000,49300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*89 (CptPort +uid 2649,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2650,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,50625,66000,51375" +) +tg (CPTG +uid 2651,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2652,0 +va (VaSet +font "Arial,9,0" +) +xt "67000,50400,69600,51600" +st "reset" +blo "67000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*90 (CptPort +uid 2653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2654,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,44625,82750,45375" +) +tg (CPTG +uid 2655,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2656,0 +va (VaSet +font "Arial,9,0" +) +xt "78800,44700,81000,45900" +st "TxD" +ju 2 +blo "81000,45600" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*91 (CptPort +uid 2657,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2658,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,48625,82750,49375" +) +tg (CPTG +uid 2659,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2660,0 +va (VaSet +) +xt "75100,48550,81000,49550" +st "morseEnvelope" +ju 2 +blo "81000,49350" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 2662,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "66000,41000,82000,53000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 2663,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 2664,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,52800,69800,53900" +st "Morse" +blo "66600,53700" +tm "BdLibraryNameMgr" +) +*93 (Text +uid 2665,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,53900,74200,55000" +st "morseDecoder" +blo "66600,54800" +tm "CptNameMgr" +) +*94 (Text +uid 2666,0 +va (VaSet +font "Arial,9,1" +) +xt "66600,55000,69500,56100" +st "I_dec" +blo "66600,55900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2667,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2668,0 +text (MLText +uid 2669,0 +va (VaSet +) +xt "66000,56600,94900,63800" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) +deglitchBitNb = deglitchBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*95 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "62000,21000,65250,21000" +pts [ +"62000,21000" +"65250,21000" +] +) +end &30 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Arial,12,0" +) +xt "62000,19600,65500,21100" +st "clock" +blo "62000,20800" +tm "WireNameMgr" +) +) +on &1 +) +*96 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "62000,23000,65250,23000" +pts [ +"62000,23000" +"65250,23000" +] +) +end &31 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "Arial,12,0" +) +xt "59000,21600,66500,23100" +st "resetSynch" +blo "59000,22800" +tm "WireNameMgr" +) +) +on &14 +) +*97 (Wire +uid 1965,0 +shape (OrthoPolyLine +uid 1966,0 +va (VaSet +vasetType 3 +) +xt "82750,17000,98000,17000" +pts [ +"82750,17000" +"98000,17000" +] +) +start &29 +end &13 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1967,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1968,0 +va (VaSet +font "Arial,12,0" +) +xt "91000,15600,97200,17100" +st "morseOut" +blo "91000,16800" +tm "WireNameMgr" +) +) +on &36 +) +*98 (Wire +uid 1995,0 +shape (OrthoPolyLine +uid 1996,0 +va (VaSet +vasetType 3 +) +xt "41000,13000,43000,13000" +pts [ +"41000,13000" +"43000,13000" +] +) +end &17 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1999,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2000,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,11600,42500,13100" +st "clock" +blo "39000,12800" +tm "WireNameMgr" +) +) +on &1 +) +*99 (Wire +uid 2003,0 +optionalChildren [ +*100 (BdJunction +uid 2029,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2030,0 +va (VaSet +vasetType 1 +) +xt "56600,8600,57400,9400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 2004,0 +va (VaSet +vasetType 3 +) +xt "49000,9000,65250,17000" +pts [ +"65250,17000" +"57000,17000" +"57000,9000" +"49000,9000" +] +) +start &32 +end &20 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2005,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2006,0 +va (VaSet +font "Arial,12,0" +) +xt "51000,7600,57900,9100" +st "RxD_synch" +blo "51000,8800" +tm "WireNameMgr" +) +) +on &25 +) +*101 (Wire +uid 2007,0 +shape (OrthoPolyLine +uid 2008,0 +va (VaSet +vasetType 3 +) +xt "34000,9000,43000,9000" +pts [ +"34000,9000" +"43000,9000" +] +) +start &26 +end &16 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2013,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2014,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,7600,38000,9100" +st "RxD" +blo "35000,8800" +tm "WireNameMgr" +) +) +on &24 +) +*102 (Wire +uid 2023,0 +shape (OrthoPolyLine +uid 2024,0 +va (VaSet +vasetType 3 +) +xt "57000,9000,98000,9000" +pts [ +"57000,9000" +"98000,9000" +] +) +start &100 +end &27 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2027,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2028,0 +va (VaSet +font "Arial,12,0" +) +xt "91000,7600,97900,9100" +st "RxD_synch" +blo "91000,8800" +tm "WireNameMgr" +) +) +on &25 +) +*103 (Wire +uid 2043,0 +shape (OrthoPolyLine +uid 2044,0 +va (VaSet +vasetType 3 +) +xt "41000,15000,46000,17000" +pts [ +"41000,17000" +"46000,17000" +"46000,15000" +] +) +end &19 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2049,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2050,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,15600,45500,17100" +st "resetSynch" +blo "38000,16800" +tm "WireNameMgr" +) +) +on &14 +) +*104 (Wire +uid 2444,0 +shape (OrthoPolyLine +uid 2445,0 +va (VaSet +vasetType 3 +) +xt "38000,59000,47000,61000" +pts [ +"38000,61000" +"47000,61000" +"47000,59000" +] +) +start &46 +end &54 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2446,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2447,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,59600,43200,61100" +st "reset1" +blo "39000,60800" +tm "WireNameMgr" +) +) +on &67 +) +*105 (Wire +uid 2448,0 +shape (OrthoPolyLine +uid 2449,0 +va (VaSet +vasetType 3 +) +xt "27000,61000,32092,61000" +pts [ +"27000,61000" +"32092,61000" +] +) +start &38 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2450,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2451,0 +va (VaSet +font "Arial,12,0" +) +xt "26000,59600,31100,61100" +st "reset_N" +blo "26000,60800" +tm "WireNameMgr" +) +) +on &68 +) +*106 (Wire +uid 2452,0 +shape (OrthoPolyLine +uid 2453,0 +va (VaSet +vasetType 3 +) +xt "39000,53000,44000,53000" +pts [ +"44000,53000" +"39000,53000" +] +) +start &51 +end &39 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2456,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2457,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,51600,44000,53100" +st "logic1" +blo "40000,52800" +tm "WireNameMgr" +) +) +on &85 +) +*107 (Wire +uid 2458,0 +shape (OrthoPolyLine +uid 2459,0 +va (VaSet +vasetType 3 +) +xt "50000,53000,54092,53000" +pts [ +"50000,53000" +"54092,53000" +] +) +start &55 +end &60 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2460,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2461,0 +va (VaSet +font "Arial,12,0" +) +xt "49000,51600,58300,53100" +st "resetSnch_N1" +blo "49000,52800" +tm "WireNameMgr" +) +) +on &66 +) +*108 (Wire +uid 2462,0 +shape (OrthoPolyLine +uid 2463,0 +va (VaSet +vasetType 3 +) +xt "27000,49000,65250,49000" +pts [ +"27000,49000" +"65250,49000" +] +) +start &37 +end &88 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Arial,12,0" +) +xt "27000,47600,30500,49100" +st "clock" +blo "27000,48800" +tm "WireNameMgr" +) +) +on &1 +) +*109 (Wire +uid 2468,0 +shape (OrthoPolyLine +uid 2469,0 +va (VaSet +vasetType 3 +) +xt "42000,57000,44000,57000" +pts [ +"42000,57000" +"44000,57000" +] +) +end &52 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2472,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2473,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,55600,43500,57100" +st "clock" +blo "40000,56800" +tm "WireNameMgr" +) +) +on &1 +) +*110 (Wire +uid 2484,0 +shape (OrthoPolyLine +uid 2485,0 +va (VaSet +vasetType 3 +) +xt "60000,51000,65250,53000" +pts [ +"60000,53000" +"63000,53000" +"63000,51000" +"65250,51000" +] +) +start &62 +end &89 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2490,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2491,0 +va (VaSet +font "Arial,12,0" +) +xt "59000,49600,66500,51100" +st "resetSynch" +blo "59000,50800" +tm "WireNameMgr" +) +) +on &14 +) +*111 (Wire +uid 2518,0 +shape (OrthoPolyLine +uid 2519,0 +va (VaSet +vasetType 3 +) +xt "41000,42000,43000,42000" +pts [ +"41000,42000" +"43000,42000" +] +) +end &71 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2522,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2523,0 +va (VaSet +font "Arial,12,0" +) +xt "39000,40600,42500,42100" +st "clock" +blo "39000,41800" +tm "WireNameMgr" +) +) +on &1 +) +*112 (Wire +uid 2524,0 +shape (OrthoPolyLine +uid 2525,0 +va (VaSet +vasetType 3 +) +xt "41000,44000,46000,46000" +pts [ +"41000,46000" +"46000,46000" +"46000,44000" +] +) +end &73 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2528,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2529,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,44600,45500,46100" +st "resetSynch" +blo "38000,45800" +tm "WireNameMgr" +) +) +on &14 +) +*113 (Wire +uid 2532,0 +shape (OrthoPolyLine +uid 2533,0 +va (VaSet +vasetType 3 +) +xt "34000,38000,43000,38000" +pts [ +"34000,38000" +"43000,38000" +] +) +start &79 +end &70 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2536,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2537,0 +va (VaSet +font "Arial,12,0" +) +xt "36000,36700,41300,38200" +st "morseIn" +blo "36000,37900" +tm "WireNameMgr" +) +) +on &78 +) +*114 (Wire +uid 2548,0 +shape (OrthoPolyLine +uid 2549,0 +va (VaSet +vasetType 3 +) +xt "49000,38000,65250,45000" +pts [ +"49000,38000" +"57000,38000" +"57000,45000" +"65250,45000" +] +) +start &74 +end &87 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2550,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2551,0 +va (VaSet +font "Arial,12,0" +) +xt "51000,36700,60900,38200" +st "morseIn_synch" +blo "51000,37900" +tm "WireNameMgr" +) +) +on &80 +) +*115 (Wire +uid 2556,0 +shape (OrthoPolyLine +uid 2557,0 +va (VaSet +vasetType 3 +) +xt "82750,45000,98000,45000" +pts [ +"82750,45000" +"98000,45000" +] +) +start &90 +end &82 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2560,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2561,0 +va (VaSet +font "Arial,12,0" +) +xt "96000,43700,98800,45200" +st "TxD" +blo "96000,44900" +tm "WireNameMgr" +) +) +on &81 +) +*116 (Wire +uid 2570,0 +shape (OrthoPolyLine +uid 2571,0 +va (VaSet +vasetType 3 +) +xt "82750,49000,98000,49000" +pts [ +"82750,49000" +"98000,49000" +] +) +start &91 +end &84 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2574,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2575,0 +va (VaSet +font "Arial,12,0" +) +xt "89000,47700,99100,49200" +st "morseEnvelope" +blo "89000,48900" +tm "WireNameMgr" +) +) +on &83 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *117 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*118 (Text +uid 85,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,0,2400,1000" +st "Package List" +blo "-3000,800" +) +*119 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*121 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*122 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*123 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*124 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*125 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*126 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4567,-1603,137994,75855" +cachedDiagramExtent "-3000,0,340751,321398" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2786,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*127 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*128 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*129 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*130 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*131 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*132 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*133 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*134 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*135 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*136 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*137 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*138 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*140 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*141 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*142 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*143 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*144 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*145 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*147 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,5200,2400,6200" +st "Declarations" +blo "-3000,6000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,6200,-300,7200" +st "Ports:" +blo "-3000,7000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,15200,800,16200" +st "Pre User:" +blo "-3000,16000" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-1000,16200,36700,23400" +st "constant clockFrequency: real := 66.0E6; +constant uartBaudRate: real := 9.6E3; +constant uartDataBitNb: positive := 7; +constant morseUnitDuration: real := 100.0E-3; -- 1/2 * 10 Hz +constant morseToneFrequency: real := 3135.96; -- sol 3eme octave +constant deglitchBitNb: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "-3000,22200,4100,23200" +st "Diagram Signals:" +blo "-3000,23000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-3000,5200,1700,6200" +st "Post User:" +blo "-3000,6000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,5200,-3000,5200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 35,0 +usingSuid 1 +emptyRow *148 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*149 (RefLabelRowHdr +) +*150 (TitleRowHdr +) +*151 (FilterRowHdr +) +*152 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*153 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*154 (GroupColHdr +tm "GroupColHdrMgr" +) +*155 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*156 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*157 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*158 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*159 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*160 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*161 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 1377,0 +) +*162 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 9 +suid 12,0 +) +) +uid 1399,0 +) +*163 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 21,0 +) +) +uid 2039,0 +) +*164 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 4 +suid 22,0 +) +) +uid 2041,0 +) +*165 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 5 +suid 23,0 +) +) +uid 2264,0 +) +*166 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSnch_N1" +t "std_ulogic" +o 11 +suid 25,0 +) +) +uid 2582,0 +) +*167 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset1" +t "std_ulogic" +o 12 +suid 26,0 +) +) +uid 2584,0 +) +*168 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 10 +suid 28,0 +) +) +uid 2588,0 +) +*169 (LeafLogPort +port (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 10 +suid 30,0 +) +) +uid 2590,0 +) +*170 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseIn_synch" +t "std_uLogic" +o 11 +suid 32,0 +) +) +uid 2592,0 +) +*171 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 12 +suid 33,0 +) +) +uid 2594,0 +) +*172 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 13 +suid 34,0 +) +) +uid 2596,0 +) +*173 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 13 +suid 35,0 +) +) +uid 2600,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*174 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *175 (MRCItem +litem &148 +pos 13 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*176 (MRCItem +litem &149 +pos 0 +dimension 20 +uid 1422,0 +) +*177 (MRCItem +litem &150 +pos 1 +dimension 23 +uid 1423,0 +) +*178 (MRCItem +litem &151 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*179 (MRCItem +litem &161 +pos 0 +dimension 20 +uid 1378,0 +) +*180 (MRCItem +litem &162 +pos 3 +dimension 20 +uid 1400,0 +) +*181 (MRCItem +litem &163 +pos 1 +dimension 20 +uid 2040,0 +) +*182 (MRCItem +litem &164 +pos 2 +dimension 20 +uid 2042,0 +) +*183 (MRCItem +litem &165 +pos 4 +dimension 20 +uid 2265,0 +) +*184 (MRCItem +litem &166 +pos 5 +dimension 20 +uid 2583,0 +) +*185 (MRCItem +litem &167 +pos 6 +dimension 20 +uid 2585,0 +) +*186 (MRCItem +litem &168 +pos 7 +dimension 20 +uid 2589,0 +) +*187 (MRCItem +litem &169 +pos 8 +dimension 20 +uid 2591,0 +) +*188 (MRCItem +litem &170 +pos 9 +dimension 20 +uid 2593,0 +) +*189 (MRCItem +litem &171 +pos 10 +dimension 20 +uid 2595,0 +) +*190 (MRCItem +litem &172 +pos 11 +dimension 20 +uid 2597,0 +) +*191 (MRCItem +litem &173 +pos 12 +dimension 20 +uid 2601,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*192 (MRCItem +litem &152 +pos 0 +dimension 20 +uid 1426,0 +) +*193 (MRCItem +litem &154 +pos 1 +dimension 50 +uid 1427,0 +) +*194 (MRCItem +litem &155 +pos 2 +dimension 100 +uid 1428,0 +) +*195 (MRCItem +litem &156 +pos 3 +dimension 50 +uid 1429,0 +) +*196 (MRCItem +litem &157 +pos 4 +dimension 100 +uid 1430,0 +) +*197 (MRCItem +litem &158 +pos 5 +dimension 100 +uid 1431,0 +) +*198 (MRCItem +litem &159 +pos 6 +dimension 50 +uid 1432,0 +) +*199 (MRCItem +litem &160 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *200 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*201 (RefLabelRowHdr +) +*202 (TitleRowHdr +) +*203 (FilterRowHdr +) +*204 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*205 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*206 (GroupColHdr +tm "GroupColHdrMgr" +) +*207 (NameColHdr +tm "GenericNameColHdrMgr" +) +*208 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*209 (InitColHdr +tm "GenericValueColHdrMgr" +) +*210 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*211 (EolColHdr +tm "GenericEolColHdrMgr" +) +*212 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 1488,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*213 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *214 (MRCItem +litem &200 +pos 1 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*215 (MRCItem +litem &201 +pos 0 +dimension 20 +uid 1450,0 +) +*216 (MRCItem +litem &202 +pos 1 +dimension 23 +uid 1451,0 +) +*217 (MRCItem +litem &203 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*218 (MRCItem +litem &212 +pos 0 +dimension 20 +uid 1487,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*219 (MRCItem +litem &204 +pos 0 +dimension 20 +uid 1454,0 +) +*220 (MRCItem +litem &206 +pos 1 +dimension 50 +uid 1455,0 +) +*221 (MRCItem +litem &207 +pos 2 +dimension 100 +uid 1456,0 +) +*222 (MRCItem +litem &208 +pos 3 +dimension 100 +uid 1457,0 +) +*223 (MRCItem +litem &209 +pos 4 +dimension 50 +uid 1458,0 +) +*224 (MRCItem +litem &210 +pos 5 +dimension 50 +uid 1459,0 +) +*225 (MRCItem +litem &211 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Board/hds/morse_ebs2/symbol.sb b/05-Morse/Board/hds/morse_ebs2/symbol.sb new file mode 100644 index 0000000..eec51af --- /dev/null +++ b/05-Morse/Board/hds/morse_ebs2/symbol.sb @@ -0,0 +1,1825 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2012,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 4 +suid 2,0 +) +) +uid 164,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 168,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 360,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +uid 362,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +uid 517,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 3 +suid 2010,0 +) +) +uid 547,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 6 +suid 2011,0 +) +) +uid 549,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 7 +suid 2012,0 +) +) +uid 551,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 104,0 +optionalChildren [ +*24 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 107,0 +) +*25 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 109,0 +) +*26 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*27 (MRCItem +litem &2 +pos 4 +dimension 20 +uid 130,0 +) +*28 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 134,0 +) +*29 (MRCItem +litem &16 +pos 1 +dimension 20 +uid 359,0 +) +*30 (MRCItem +litem &17 +pos 2 +dimension 20 +uid 361,0 +) +*31 (MRCItem +litem &18 +pos 3 +dimension 20 +uid 516,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 546,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 548,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 550,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*35 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 113,0 +) +*36 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 117,0 +) +*37 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 119,0 +) +*38 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 121,0 +) +*39 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 123,0 +) +*40 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 125,0 +) +*41 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 127,0 +) +*42 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "16" +) +uid 160,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &43 +pos 3 +dimension 20 +) +uid 136,0 +optionalChildren [ +*58 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 139,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 141,0 +) +*60 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*61 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 161,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*62 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 145,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 149,0 +) +*64 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 151,0 +) +*65 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 153,0 +) +*66 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 155,0 +) +*67 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 157,0 +) +*68 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morse_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:49:40" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morse_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_circuit\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:49:40" +) +(vvPair +variable "unit" +value "morse_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,17400,35700,18600" +st "clock" +blo "33000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +) +xt "2000,12000,19200,13200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*71 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,19400,36800,20600" +st "reset_N" +blo "33000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +) +xt "2000,14000,19900,15200" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 4 +suid 2,0 +) +) +) +*72 (CptPort +uid 368,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 369,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,20625,32000,21375" +) +tg (CPTG +uid 370,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 371,0 +va (VaSet +font "Arial,9,0" +) +xt "33000,20400,35400,21600" +st "RxD" +blo "33000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 372,0 +va (VaSet +) +xt "2000,11000,19200,12200" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*73 (CptPort +uid 373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 374,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,11625,48750,12375" +) +tg (CPTG +uid 375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 376,0 +va (VaSet +font "Arial,9,0" +) +xt "41500,11400,47000,12600" +st "RxD_synch" +ju 2 +blo "47000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 377,0 +va (VaSet +) +xt "2000,15000,21800,16200" +st "RxD_synch : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +) +*74 (CptPort +uid 518,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 519,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,12625,48750,13375" +) +tg (CPTG +uid 520,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 521,0 +va (VaSet +) +xt "43300,12500,47000,13500" +st "morseOut" +ju 2 +blo "47000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 522,0 +va (VaSet +) +xt "2000,18000,20700,19200" +st "morseOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +) +*75 (CptPort +uid 552,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 553,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,21625,32000,22375" +) +tg (CPTG +uid 554,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 555,0 +va (VaSet +) +xt "33000,21500,36100,22500" +st "morseIn" +blo "33000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 556,0 +va (VaSet +) +xt "2000,13000,20400,14200" +st "morseIn : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 3 +suid 2010,0 +) +) +) +*76 (CptPort +uid 557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 559,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 560,0 +va (VaSet +) +xt "45200,13500,47000,14500" +st "TxD" +ju 2 +blo "47000,14300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 561,0 +va (VaSet +) +xt "2000,16000,20000,17200" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 6 +suid 2011,0 +) +) +) +*77 (CptPort +uid 562,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 563,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,14625,48750,15375" +) +tg (CPTG +uid 564,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 565,0 +va (VaSet +) +xt "41100,14500,47000,15500" +st "morseEnvelope" +ju 2 +blo "47000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 566,0 +va (VaSet +) +xt "2000,17000,22600,18200" +st "morseEnvelope : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 7 +suid 2012,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,21800,35900,22900" +st "Board" +blo "32600,22700" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,9,1" +) +xt "32600,22900,39800,24000" +st "morse_circuit" +blo "32600,23800" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +) +xt "32000,25600,44700,29200" +st "Generic Declarations + +bitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "Arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*92 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-1040,75120,50530" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Arial,9,0" +) +xt "200,200,2500,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Arial,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,19000,2400,20000" +st "User:" +blo "0,19800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +) +xt "2000,20000,2000,20000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 796,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/05-Morse/Board/hds/morse_ebs3/struct.bd b/05-Morse/Board/hds/morse_ebs3/struct.bd new file mode 100644 index 0000000..14dfd10 --- /dev/null +++ b/05-Morse/Board/hds/morse_ebs3/struct.bd @@ -0,0 +1,6210 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I3" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 142,0 +) +(Instance +name "I9" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 162,0 +) +(Instance +name "I7" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 188,0 +) +(Instance +name "I8" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 214,0 +) +(Instance +name "I4" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 240,0 +) +(Instance +name "I_dec" +duLibraryName "Morse" +duName "morseDecoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +mwi 0 +uid 260,0 +) +(Instance +name "I_enc" +duLibraryName "Morse" +duName "morseEncoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +mwi 0 +uid 289,0 +) +(Instance +name "I_pll" +duLibraryName "Lattice" +duName "pll" +elements [ +] +mwi 0 +uid 571,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb6" +number "6" +) +(EmbeddedInstance +name "eb7" +number "7" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "entity_name" +value "morse_ebs3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "08:06:36" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "morse_ebs3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "08:06:36" +) +(vvPair +variable "unit" +value "morse_ebs3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,4000,44000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,4000,38600,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,0,48000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "44200,0,47200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,2000,44000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,2000,37200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "23000,2000,27000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "23200,2000,25300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "44000,1000,64000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "44200,1200,53600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,0,64000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "48200,0,49800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "23000,0,44000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "28350,400,38650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "23000,3000,27000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "23200,3000,25300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "23000,4000,27000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "23200,4000,25900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,3000,44000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,3000,36900,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "23000,0,64000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "3000,50625,4500,51375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "4500,51000,5000,51000" +pts [ +"4500,51000" +"5000,51000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1500,50250,2000,51750" +st "clock" +ju 2 +blo "2000,51450" +tm "WireNameMgr" +) +) +) +*13 (PortIoIn +uid 115,0 +shape (CompositeShape +uid 116,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 117,0 +sl 0 +ro 270 +xt "21000,62625,22500,63375" +) +(Line +uid 118,0 +sl 0 +ro 270 +xt "22500,63000,23000,63000" +pts [ +"22500,63000" +"23000,63000" +] +) +] +) +tg (WTG +uid 119,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "15100,62250,20000,63750" +st "reset_n" +ju 2 +blo "20000,63450" +tm "WireNameMgr" +) +) +) +*14 (PortIoIn +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "28000,39625,29500,40375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "29500,40000,30000,40000" +pts [ +"29500,40000" +"30000,40000" +] +) +] +) +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "21700,39250,27000,40750" +st "morseIn" +ju 2 +blo "27000,40450" +tm "WireNameMgr" +) +) +) +*15 (PortIoIn +uid 127,0 +shape (CompositeShape +uid 128,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 129,0 +sl 0 +ro 270 +xt "28000,10625,29500,11375" +) +(Line +uid 130,0 +sl 0 +ro 270 +xt "29500,11000,30000,11000" +pts [ +"29500,11000" +"30000,11000" +] +) +] +) +tg (WTG +uid 131,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "24000,10250,27000,11750" +st "RxD" +ju 2 +blo "27000,11450" +tm "WireNameMgr" +) +) +) +*16 (HdlText +uid 133,0 +optionalChildren [ +*17 (EmbeddedText +uid 138,0 +commentText (CommentText +uid 139,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 140,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "28000,54000,34000,56000" +) +oxt "0,0,18000,5000" +text (MLText +uid 141,0 +va (VaSet +) +xt "28200,54200,33700,55400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 134,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "27000,53000,35000,57000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 135,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*18 (Text +uid 136,0 +va (VaSet +) +xt "27400,57000,30000,58200" +st "eb6" +blo "27400,58000" +tm "HdlTextNameMgr" +) +*19 (Text +uid 137,0 +va (VaSet +) +xt "27400,58000,28800,59200" +st "6" +blo "27400,59000" +tm "HdlTextNumberMgr" +) +] +) +) +*20 (SaComponent +uid 142,0 +optionalChildren [ +*21 (CptPort +uid 151,0 +optionalChildren [ +*22 (Circle +uid 156,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "28092,62546,29000,63454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 152,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "27342,62625,28092,63375" +) +tg (CPTG +uid 153,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 154,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "29000,62500,31400,64000" +st "in1" +blo "29000,63700" +) +s (Text +uid 155,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "29000,63900,29000,63900" +blo "29000,63900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*23 (CptPort +uid 157,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 158,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "34000,62625,34750,63375" +) +tg (CPTG +uid 159,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 160,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "30650,62500,33750,64000" +st "out1" +ju 2 +blo "33750,63700" +) +s (Text +uid 161,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "33750,63900,33750,63900" +ju 2 +blo "33750,63900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 143,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "29000,60000,34000,66000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 144,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 145,0 +va (VaSet +isHidden 1 +) +xt "53460,65700,55860,66700" +st "Board" +blo "53460,66500" +tm "BdLibraryNameMgr" +) +*25 (Text +uid 146,0 +va (VaSet +isHidden 1 +) +xt "53460,66700,57360,67700" +st "inverterIn" +blo "53460,67500" +tm "CptNameMgr" +) +*26 (Text +uid 147,0 +va (VaSet +isHidden 1 +) +xt "53460,66700,54460,67700" +st "I3" +blo "53460,67500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 148,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 149,0 +text (MLText +uid 150,0 +va (VaSet +) +xt "29000,66400,29000,66400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*27 (SaComponent +uid 162,0 +optionalChildren [ +*28 (CptPort +uid 171,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 172,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38250,39625,39000,40375" +) +tg (CPTG +uid 173,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 174,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,39300,41600,40800" +st "D" +blo "40000,40500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*29 (CptPort +uid 175,0 +optionalChildren [ +*30 (FFT +pts [ +"39750,44000" +"39000,44375" +"39000,43625" +] +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39000,43625,39750,44375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 176,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38250,43625,39000,44375" +) +tg (CPTG +uid 177,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 178,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,43400,43100,44900" +st "CLK" +blo "40000,44600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*31 (CptPort +uid 180,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 181,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "41625,46000,42375,46750" +) +tg (CPTG +uid 182,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 183,0 +va (VaSet +font "Arial,12,0" +) +xt "41000,44600,44200,46100" +st "CLR" +blo "41000,45800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*32 (CptPort +uid 184,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 185,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "45000,39625,45750,40375" +) +tg (CPTG +uid 186,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 187,0 +va (VaSet +font "Arial,12,0" +) +xt "42400,39300,44000,40800" +st "Q" +ju 2 +blo "44000,40500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 163,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,38000,45000,46000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 164,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 165,0 +va (VaSet +) +xt "43600,45700,46000,46700" +st "Board" +blo "43600,46500" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 166,0 +va (VaSet +) +xt "43600,46700,45600,47700" +st "DFF" +blo "43600,47500" +tm "CptNameMgr" +) +*35 (Text +uid 167,0 +va (VaSet +) +xt "43600,47700,44600,48700" +st "I9" +blo "43600,48500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 168,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 169,0 +text (MLText +uid 170,0 +va (VaSet +) +xt "16000,35000,16000,35000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*36 (SaComponent +uid 188,0 +optionalChildren [ +*37 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38250,10625,39000,11375" +) +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 200,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,10300,41600,11800" +st "D" +blo "40000,11500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*38 (CptPort +uid 201,0 +optionalChildren [ +*39 (FFT +pts [ +"39750,15000" +"39000,15375" +"39000,14625" +] +uid 205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39000,14625,39750,15375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 202,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38250,14625,39000,15375" +) +tg (CPTG +uid 203,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 204,0 +va (VaSet +font "Arial,12,0" +) +xt "40000,14400,43100,15900" +st "CLK" +blo "40000,15600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*40 (CptPort +uid 206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 207,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "41625,17000,42375,17750" +) +tg (CPTG +uid 208,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 209,0 +va (VaSet +font "Arial,12,0" +) +xt "41000,15600,44200,17100" +st "CLR" +blo "41000,16800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*41 (CptPort +uid 210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 211,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "45000,10625,45750,11375" +) +tg (CPTG +uid 212,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 213,0 +va (VaSet +font "Arial,12,0" +) +xt "42400,10300,44000,11800" +st "Q" +ju 2 +blo "44000,11500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 189,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,9000,45000,17000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 190,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 191,0 +va (VaSet +) +xt "43600,16700,46000,17700" +st "Board" +blo "43600,17500" +tm "BdLibraryNameMgr" +) +*43 (Text +uid 192,0 +va (VaSet +) +xt "43600,17700,45600,18700" +st "DFF" +blo "43600,18500" +tm "CptNameMgr" +) +*44 (Text +uid 193,0 +va (VaSet +) +xt "43600,18700,44600,19700" +st "I7" +blo "43600,19500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 194,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 195,0 +text (MLText +uid 196,0 +va (VaSet +) +xt "16000,6000,16000,6000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*45 (SaComponent +uid 214,0 +optionalChildren [ +*46 (CptPort +uid 223,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 224,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "39250,54625,40000,55375" +) +tg (CPTG +uid 225,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 226,0 +va (VaSet +font "Arial,12,0" +) +xt "41000,54300,42600,55800" +st "D" +blo "41000,55500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*47 (CptPort +uid 227,0 +optionalChildren [ +*48 (FFT +pts [ +"40750,59000" +"40000,59375" +"40000,58625" +] +uid 231,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40000,58625,40750,59375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 228,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "39250,58625,40000,59375" +) +tg (CPTG +uid 229,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 230,0 +va (VaSet +font "Arial,12,0" +) +xt "41000,58400,44100,59900" +st "CLK" +blo "41000,59600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*49 (CptPort +uid 232,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 233,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42625,61000,43375,61750" +) +tg (CPTG +uid 234,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 235,0 +va (VaSet +font "Arial,12,0" +) +xt "42000,59600,45200,61100" +st "CLR" +blo "42000,60800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*50 (CptPort +uid 236,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 237,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "46000,54625,46750,55375" +) +tg (CPTG +uid 238,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 239,0 +va (VaSet +font "Arial,12,0" +) +xt "43400,54300,45000,55800" +st "Q" +ju 2 +blo "45000,55500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 215,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,53000,46000,61000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 216,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 217,0 +va (VaSet +) +xt "44600,60700,47000,61700" +st "Board" +blo "44600,61500" +tm "BdLibraryNameMgr" +) +*52 (Text +uid 218,0 +va (VaSet +) +xt "44600,61700,46600,62700" +st "DFF" +blo "44600,62500" +tm "CptNameMgr" +) +*53 (Text +uid 219,0 +va (VaSet +) +xt "44600,62700,45600,63700" +st "I8" +blo "44600,63500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 220,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 221,0 +text (MLText +uid 222,0 +va (VaSet +) +xt "17000,50000,17000,50000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*54 (SaComponent +uid 240,0 +optionalChildren [ +*55 (CptPort +uid 249,0 +optionalChildren [ +*56 (Circle +uid 254,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "50092,54546,51000,55454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 250,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "49342,54625,50092,55375" +) +tg (CPTG +uid 251,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 252,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "51000,54500,53400,56000" +st "in1" +blo "51000,55700" +) +s (Text +uid 253,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "51000,55900,51000,55900" +blo "51000,55900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*57 (CptPort +uid 255,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 256,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "56000,54625,56750,55375" +) +tg (CPTG +uid 257,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 258,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "333651,321898,336751,323398" +st "out1" +ju 2 +blo "336751,323098" +) +s (Text +uid 259,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "336751,323198,336751,323198" +ju 2 +blo "336751,323198" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 241,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "51000,52000,56000,58000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 242,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +uid 243,0 +va (VaSet +isHidden 1 +) +xt "75460,57700,77860,58700" +st "Board" +blo "75460,58500" +tm "BdLibraryNameMgr" +) +*59 (Text +uid 244,0 +va (VaSet +isHidden 1 +) +xt "75460,58700,79360,59700" +st "inverterIn" +blo "75460,59500" +tm "CptNameMgr" +) +*60 (Text +uid 245,0 +va (VaSet +isHidden 1 +) +xt "75460,58700,76460,59700" +st "I4" +blo "75460,59500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 246,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 247,0 +text (MLText +uid 248,0 +va (VaSet +) +xt "51000,58400,51000,58400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*61 (SaComponent +uid 260,0 +optionalChildren [ +*62 (CptPort +uid 269,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 270,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61250,46625,62000,47375" +) +tg (CPTG +uid 271,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 272,0 +va (VaSet +font "Arial,9,0" +) +xt "63000,46700,68300,47900" +st "morseCode" +blo "63000,47600" +) +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +) +) +) +*63 (CptPort +uid 273,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 274,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61250,50625,62000,51375" +) +tg (CPTG +uid 275,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 276,0 +va (VaSet +font "Arial,9,0" +) +xt "63000,50400,65700,51600" +st "clock" +blo "63000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*64 (CptPort +uid 277,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 278,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61250,52625,62000,53375" +) +tg (CPTG +uid 279,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 280,0 +va (VaSet +font "Arial,9,0" +) +xt "63000,52400,65600,53600" +st "reset" +blo "63000,53300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*65 (CptPort +uid 281,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 282,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78000,46625,78750,47375" +) +tg (CPTG +uid 283,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 284,0 +va (VaSet +font "Arial,9,0" +) +xt "74800,46700,77000,47900" +st "TxD" +ju 2 +blo "77000,47600" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +) +) +) +*66 (CptPort +uid 285,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 286,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78000,50625,78750,51375" +) +tg (CPTG +uid 287,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 288,0 +va (VaSet +) +xt "71100,50550,77000,51550" +st "morseEnvelope" +ju 2 +blo "77000,51350" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 261,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "62000,43000,78000,55000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 262,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 263,0 +va (VaSet +font "Arial,9,1" +) +xt "62600,54800,65800,55900" +st "Morse" +blo "62600,55700" +tm "BdLibraryNameMgr" +) +*68 (Text +uid 264,0 +va (VaSet +font "Arial,9,1" +) +xt "62600,55900,70200,57000" +st "morseDecoder" +blo "62600,56800" +tm "CptNameMgr" +) +*69 (Text +uid 265,0 +va (VaSet +font "Arial,9,1" +) +xt "62600,57000,65500,58100" +st "I_dec" +blo "62600,57900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 266,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 267,0 +text (MLText +uid 268,0 +va (VaSet +) +xt "62000,58600,90900,65800" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) +deglitchBitNb = deglitchBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*70 (SaComponent +uid 289,0 +optionalChildren [ +*71 (CptPort +uid 298,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 299,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78000,18625,78750,19375" +) +tg (CPTG +uid 300,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 301,0 +va (VaSet +font "Arial,9,0" +) +xt "71700,18400,77000,19600" +st "morseCode" +ju 2 +blo "77000,19300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +) +) +) +*72 (CptPort +uid 302,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 303,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61250,22625,62000,23375" +) +tg (CPTG +uid 304,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 305,0 +va (VaSet +font "Arial,9,0" +) +xt "63000,22400,65700,23600" +st "clock" +blo "63000,23300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*73 (CptPort +uid 306,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 307,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61250,24625,62000,25375" +) +tg (CPTG +uid 308,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 309,0 +va (VaSet +font "Arial,9,0" +) +xt "63000,24400,65600,25600" +st "reset" +blo "63000,25300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*74 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 311,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61250,18625,62000,19375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "Arial,9,0" +) +xt "63000,18400,65400,19600" +st "RxD" +blo "63000,19300" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 290,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "62000,15000,78000,27000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 291,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 292,0 +va (VaSet +font "Arial,9,1" +) +xt "62600,26800,65800,27900" +st "Morse" +blo "62600,27700" +tm "BdLibraryNameMgr" +) +*76 (Text +uid 293,0 +va (VaSet +font "Arial,9,1" +) +xt "62600,27900,70200,29000" +st "morseEncoder" +blo "62600,28800" +tm "CptNameMgr" +) +*77 (Text +uid 294,0 +va (VaSet +font "Arial,9,1" +) +xt "62600,29000,65500,30100" +st "I_enc" +blo "62600,29900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 295,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 296,0 +text (MLText +uid 297,0 +va (VaSet +) +xt "62000,30000,90900,36000" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*78 (PortIoOut +uid 314,0 +shape (CompositeShape +uid 315,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 316,0 +sl 0 +ro 270 +xt "94500,50625,96000,51375" +) +(Line +uid 317,0 +sl 0 +ro 270 +xt "94000,51000,94500,51000" +pts [ +"94000,51000" +"94500,51000" +] +) +] +) +tg (WTG +uid 318,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 319,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "97000,50250,107100,51750" +st "morseEnvelope" +blo "97000,51450" +tm "WireNameMgr" +) +) +) +*79 (PortIoOut +uid 320,0 +shape (CompositeShape +uid 321,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 322,0 +sl 0 +ro 270 +xt "94500,46625,96000,47375" +) +(Line +uid 323,0 +sl 0 +ro 270 +xt "94000,47000,94500,47000" +pts [ +"94000,47000" +"94500,47000" +] +) +] +) +tg (WTG +uid 324,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 325,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "97000,46250,99800,47750" +st "TxD" +blo "97000,47450" +tm "WireNameMgr" +) +) +) +*80 (PortIoOut +uid 326,0 +shape (CompositeShape +uid 327,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 328,0 +sl 0 +ro 270 +xt "94500,18625,96000,19375" +) +(Line +uid 329,0 +sl 0 +ro 270 +xt "94000,19000,94500,19000" +pts [ +"94000,19000" +"94500,19000" +] +) +] +) +tg (WTG +uid 330,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 331,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "97000,18250,103200,19750" +st "morseOut" +blo "97000,19450" +tm "WireNameMgr" +) +) +) +*81 (PortIoOut +uid 332,0 +shape (CompositeShape +uid 333,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 334,0 +sl 0 +ro 270 +xt "94500,10625,96000,11375" +) +(Line +uid 335,0 +sl 0 +ro 270 +xt "94000,11000,94500,11000" +pts [ +"94000,11000" +"94500,11000" +] +) +] +) +tg (WTG +uid 336,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 337,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "97000,10250,103900,11750" +st "RxD_synch" +blo "97000,11450" +tm "WireNameMgr" +) +) +) +*82 (Net +uid 440,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 441,0 +va (VaSet +) +xt "2000,9600,15400,10800" +st "clock : std_ulogic +" +) +) +*83 (Net +uid 442,0 +decl (Decl +n "morseOut" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 443,0 +va (VaSet +) +xt "2000,16800,16800,18000" +st "morseOut : std_ulogic +" +) +) +*84 (Net +uid 444,0 +decl (Decl +n "reset_n" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 445,0 +va (VaSet +) +xt "2000,12000,15900,13200" +st "reset_n : std_ulogic +" +) +) +*85 (Net +uid 446,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 447,0 +va (VaSet +) +xt "2000,30400,21400,31600" +st "SIGNAL resetSynch : std_ulogic +" +) +) +*86 (Net +uid 448,0 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 449,0 +va (VaSet +) +xt "2000,13200,17200,14400" +st "RxD_synch : std_ulogic +" +) +) +*87 (Net +uid 452,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 7 +suid 7,0 +) +declText (MLText +uid 453,0 +va (VaSet +) +xt "2000,26800,20300,28000" +st "SIGNAL logic1 : std_uLogic +" +) +) +*88 (Net +uid 454,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 8 +suid 8,0 +) +declText (MLText +uid 455,0 +va (VaSet +) +xt "2000,14400,15400,15600" +st "TxD : std_ulogic +" +) +) +*89 (Net +uid 456,0 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 9 +suid 9,0 +) +declText (MLText +uid 457,0 +va (VaSet +) +xt "2000,15600,18000,16800" +st "morseEnvelope : std_ulogic +" +) +) +*90 (Net +uid 458,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 10 +suid 10,0 +) +declText (MLText +uid 459,0 +va (VaSet +) +xt "2000,8400,15400,9600" +st "RxD : std_ulogic +" +) +) +*91 (Net +uid 460,0 +decl (Decl +n "reset1" +t "std_ulogic" +o 11 +suid 11,0 +) +declText (MLText +uid 461,0 +va (VaSet +) +xt "2000,29200,20200,30400" +st "SIGNAL reset1 : std_ulogic +" +) +) +*92 (Net +uid 462,0 +decl (Decl +n "morseIn" +t "std_uLogic" +o 12 +suid 12,0 +) +declText (MLText +uid 463,0 +va (VaSet +) +xt "2000,10800,16600,12000" +st "morseIn : std_uLogic +" +) +) +*93 (Net +uid 464,0 +decl (Decl +n "morseIn_synch" +t "std_uLogic" +o 13 +suid 13,0 +) +declText (MLText +uid 465,0 +va (VaSet +) +xt "2000,28000,22900,29200" +st "SIGNAL morseIn_synch : std_uLogic +" +) +) +*94 (Net +uid 466,0 +decl (Decl +n "resetSynch_n" +t "std_ulogic" +o 6 +suid 14,0 +) +declText (MLText +uid 467,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,31600,20000,32400" +st "SIGNAL resetSynch_n : std_ulogic +" +) +) +*95 (SaComponent +uid 571,0 +optionalChildren [ +*96 (CptPort +uid 535,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 536,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,54625,23750,55375" +) +tg (CPTG +uid 537,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 538,0 +va (VaSet +font "Verdana,8,0" +) +xt "17700,54500,22000,55500" +st "clk10MHz" +ju 2 +blo "22000,55300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk10MHz" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*97 (CptPort +uid 539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 540,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,53625,23750,54375" +) +tg (CPTG +uid 541,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 542,0 +va (VaSet +font "Verdana,8,0" +) +xt "17700,53500,22000,54500" +st "clk50MHz" +ju 2 +blo "22000,54300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk50MHz" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*98 (CptPort +uid 543,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 544,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,50625,23750,51375" +) +tg (CPTG +uid 545,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 546,0 +va (VaSet +font "Verdana,8,0" +) +xt "17700,50500,22000,51500" +st "clk60MHz" +ju 2 +blo "22000,51300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk60MHz" +t "std_ulogic" +o 5 +suid 3,0 +) +) +) +*99 (CptPort +uid 547,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 548,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,52625,23750,53375" +) +tg (CPTG +uid 549,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 550,0 +va (VaSet +font "Verdana,8,0" +) +xt "17700,52500,22000,53500" +st "clk75MHz" +ju 2 +blo "22000,53300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk75MHz" +t "std_ulogic" +o 6 +suid 4,0 +) +) +) +*100 (CptPort +uid 551,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 552,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,54625,11000,55375" +) +tg (CPTG +uid 553,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 554,0 +va (VaSet +font "Verdana,8,0" +) +xt "12000,54500,15200,55500" +st "en10M" +blo "12000,55300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en10M" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*101 (CptPort +uid 555,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 556,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,53625,11000,54375" +) +tg (CPTG +uid 557,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 558,0 +va (VaSet +font "Verdana,8,0" +) +xt "12000,53500,15200,54500" +st "en50M" +blo "12000,54300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en50M" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*102 (CptPort +uid 559,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 560,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,52625,11000,53375" +) +tg (CPTG +uid 561,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 562,0 +va (VaSet +font "Verdana,8,0" +) +xt "12000,52500,15200,53500" +st "en75M" +blo "12000,53300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en75M" +t "std_ulogic" +o 2 +suid 8,0 +) +) +) +*103 (CptPort +uid 563,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 564,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,56625,23750,57375" +) +tg (CPTG +uid 565,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 566,0 +va (VaSet +font "Verdana,8,0" +) +xt "17800,56500,22000,57500" +st "pllLocked" +ju 2 +blo "22000,57300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*104 (CptPort +uid 567,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 568,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "10250,50625,11000,51375" +) +tg (CPTG +uid 569,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 570,0 +va (VaSet +font "Verdana,8,0" +) +xt "12000,50500,16600,51500" +st "clkIn100M" +blo "12000,51300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 572,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "11000,50000,23000,58000" +) +oxt "20000,20000,32000,28000" +ttg (MlTextGroup +uid 573,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +uid 574,0 +va (VaSet +font "Verdana,8,1" +) +xt "11400,60000,15100,61000" +st "Lattice" +blo "11400,60800" +tm "BdLibraryNameMgr" +) +*106 (Text +uid 575,0 +va (VaSet +font "Verdana,8,1" +) +xt "11400,61000,13200,62000" +st "pll" +blo "11400,61800" +tm "CptNameMgr" +) +*107 (Text +uid 576,0 +va (VaSet +font "Verdana,8,1" +) +xt "11400,62000,14200,63000" +st "I_pll" +blo "11400,62800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 577,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 578,0 +text (MLText +uid 579,0 +va (VaSet +font "Courier New,8,0" +) +xt "-13000,-19200,-13000,-19200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 580,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "11250,56250,12750,57750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +*108 (Net +uid 587,0 +lang 11 +decl (Decl +n "clk_sys" +t "std_ulogic" +o 14 +suid 16,0 +) +declText (MLText +uid 588,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,25200,20000,26000" +st "SIGNAL clk_sys : std_ulogic +" +) +) +*109 (HdlText +uid 589,0 +optionalChildren [ +*110 (EmbeddedText +uid 594,0 +commentText (CommentText +uid 595,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 596,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "2000,60000,8000,62000" +) +oxt "0,0,18000,5000" +text (MLText +uid 597,0 +va (VaSet +) +xt "2200,60200,7700,61400" +st " +logic0 <= '0'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 590,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "1000,59000,9000,63000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 591,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +uid 592,0 +va (VaSet +) +xt "1400,63000,4000,64200" +st "eb7" +blo "1400,64000" +tm "HdlTextNameMgr" +) +*112 (Text +uid 593,0 +va (VaSet +) +xt "1400,64000,2800,65200" +st "7" +blo "1400,65000" +tm "HdlTextNumberMgr" +) +] +) +) +*113 (Net +uid 665,0 +lang 11 +decl (Decl +n "logic0" +t "std_ulogic" +o 15 +suid 19,0 +) +declText (MLText +uid 666,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,26000,20000,26800" +st "SIGNAL logic0 : std_ulogic +" +) +) +*114 (Wire +uid 338,0 +optionalChildren [ +*115 (BdJunction +uid 342,0 +ps "OnConnectorStrategy" +shape (Circle +uid 343,0 +va (VaSet +vasetType 1 +) +xt "52600,10600,53400,11400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 339,0 +va (VaSet +vasetType 3 +) +xt "45000,11000,61250,19000" +pts [ +"61250,19000" +"53000,19000" +"53000,11000" +"45000,11000" +] +) +start &74 +end &41 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 340,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 341,0 +va (VaSet +font "Arial,12,0" +) +xt "47000,9600,53900,11100" +st "RxD_synch" +blo "47000,10800" +tm "WireNameMgr" +) +) +on &86 +) +*116 (Wire +uid 344,0 +shape (OrthoPolyLine +uid 345,0 +va (VaSet +vasetType 3 +) +xt "53000,11000,94000,11000" +pts [ +"53000,11000" +"94000,11000" +] +) +start &115 +end &81 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 347,0 +va (VaSet +font "Arial,12,0" +) +xt "87000,9600,93900,11100" +st "RxD_synch" +blo "87000,10800" +tm "WireNameMgr" +) +) +on &86 +) +*117 (Wire +uid 348,0 +shape (OrthoPolyLine +uid 349,0 +va (VaSet +vasetType 3 +) +xt "30000,40000,39000,40000" +pts [ +"30000,40000" +"39000,40000" +] +) +start &14 +end &28 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 350,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 351,0 +va (VaSet +font "Arial,12,0" +) +xt "32000,38700,37300,40200" +st "morseIn" +blo "32000,39900" +tm "WireNameMgr" +) +) +on &92 +) +*118 (Wire +uid 352,0 +shape (OrthoPolyLine +uid 353,0 +va (VaSet +vasetType 3 +) +xt "46000,55000,50092,55000" +pts [ +"46000,55000" +"50092,55000" +] +) +start &50 +end &55 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 354,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 355,0 +va (VaSet +font "Arial,12,0" +) +xt "45000,53600,53900,55100" +st "resetSynch_n" +blo "45000,54800" +tm "WireNameMgr" +) +) +on &94 +) +*119 (Wire +uid 356,0 +shape (OrthoPolyLine +uid 357,0 +va (VaSet +vasetType 3 +) +xt "78750,47000,94000,47000" +pts [ +"78750,47000" +"94000,47000" +] +) +start &65 +end &79 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 358,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 359,0 +va (VaSet +font "Arial,12,0" +) +xt "92000,45700,94800,47200" +st "TxD" +blo "92000,46900" +tm "WireNameMgr" +) +) +on &88 +) +*120 (Wire +uid 360,0 +shape (OrthoPolyLine +uid 361,0 +va (VaSet +vasetType 3 +) +xt "78750,51000,94000,51000" +pts [ +"78750,51000" +"94000,51000" +] +) +start &66 +end &78 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 363,0 +va (VaSet +font "Arial,12,0" +) +xt "85000,49700,95100,51200" +st "morseEnvelope" +blo "85000,50900" +tm "WireNameMgr" +) +) +on &89 +) +*121 (Wire +uid 364,0 +shape (OrthoPolyLine +uid 365,0 +va (VaSet +vasetType 3 +) +xt "38000,59000,40000,59000" +pts [ +"38000,59000" +"40000,59000" +] +) +end &47 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 368,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 369,0 +va (VaSet +font "Arial,12,0" +) +xt "36000,57600,39500,59100" +st "clock" +blo "36000,58800" +tm "WireNameMgr" +) +) +on &82 +) +*122 (Wire +uid 370,0 +shape (OrthoPolyLine +uid 371,0 +va (VaSet +vasetType 3 +) +xt "45000,40000,61250,47000" +pts [ +"45000,40000" +"53000,40000" +"53000,47000" +"61250,47000" +] +) +start &32 +end &62 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 372,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 373,0 +va (VaSet +font "Arial,12,0" +) +xt "47000,38700,56900,40200" +st "morseIn_synch" +blo "47000,39900" +tm "WireNameMgr" +) +) +on &93 +) +*123 (Wire +uid 374,0 +shape (OrthoPolyLine +uid 375,0 +va (VaSet +vasetType 3 +) +xt "37000,44000,39000,44000" +pts [ +"37000,44000" +"39000,44000" +] +) +end &29 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 378,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 379,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,42600,39800,44100" +st "clk_sys" +blo "35000,43800" +tm "WireNameMgr" +) +) +on &108 +) +*124 (Wire +uid 380,0 +shape (OrthoPolyLine +uid 381,0 +va (VaSet +vasetType 3 +) +xt "56000,53000,61250,55000" +pts [ +"56000,55000" +"59000,55000" +"59000,53000" +"61250,53000" +] +) +start &57 +end &64 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 382,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 383,0 +va (VaSet +font "Arial,12,0" +) +xt "55000,51600,62500,53100" +st "resetSynch" +blo "55000,52800" +tm "WireNameMgr" +) +) +on &85 +) +*125 (Wire +uid 384,0 +shape (OrthoPolyLine +uid 385,0 +va (VaSet +vasetType 3 +) +xt "5000,51000,10250,51000" +pts [ +"5000,51000" +"10250,51000" +] +) +start &12 +end &104 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 386,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 387,0 +va (VaSet +font "Arial,12,0" +) +xt "5000,49600,8500,51100" +st "clock" +blo "5000,50800" +tm "WireNameMgr" +) +) +on &82 +) +*126 (Wire +uid 388,0 +shape (OrthoPolyLine +uid 389,0 +va (VaSet +vasetType 3 +) +xt "37000,46000,42000,48000" +pts [ +"37000,48000" +"42000,48000" +"42000,46000" +] +) +end &31 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 393,0 +va (VaSet +font "Arial,12,0" +) +xt "34000,46600,41500,48100" +st "resetSynch" +blo "34000,47800" +tm "WireNameMgr" +) +) +on &85 +) +*127 (Wire +uid 394,0 +shape (OrthoPolyLine +uid 395,0 +va (VaSet +vasetType 3 +) +xt "78750,19000,94000,19000" +pts [ +"78750,19000" +"94000,19000" +] +) +start &71 +end &80 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 396,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 397,0 +va (VaSet +font "Arial,12,0" +) +xt "87000,17600,93200,19100" +st "morseOut" +blo "87000,18800" +tm "WireNameMgr" +) +) +on &83 +) +*128 (Wire +uid 398,0 +shape (OrthoPolyLine +uid 399,0 +va (VaSet +vasetType 3 +) +xt "37000,15000,39000,15000" +pts [ +"37000,15000" +"39000,15000" +] +) +end &38 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,13600,39800,15100" +st "clk_sys" +blo "35000,14800" +tm "WireNameMgr" +) +) +on &108 +) +*129 (Wire +uid 404,0 +shape (OrthoPolyLine +uid 405,0 +va (VaSet +vasetType 3 +) +xt "30000,11000,39000,11000" +pts [ +"30000,11000" +"39000,11000" +] +) +start &15 +end &37 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 406,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 407,0 +va (VaSet +font "Arial,12,0" +) +xt "31000,9600,34000,11100" +st "RxD" +blo "31000,10800" +tm "WireNameMgr" +) +) +on &90 +) +*130 (Wire +uid 408,0 +shape (OrthoPolyLine +uid 409,0 +va (VaSet +vasetType 3 +) +xt "58000,25000,61250,25000" +pts [ +"58000,25000" +"61250,25000" +] +) +end &73 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 412,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 413,0 +va (VaSet +font "Arial,12,0" +) +xt "55000,23600,62500,25100" +st "resetSynch" +blo "55000,24800" +tm "WireNameMgr" +) +) +on &85 +) +*131 (Wire +uid 414,0 +shape (OrthoPolyLine +uid 415,0 +va (VaSet +vasetType 3 +) +xt "58000,23000,61250,23000" +pts [ +"58000,23000" +"61250,23000" +] +) +end &72 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 419,0 +va (VaSet +font "Arial,12,0" +) +xt "58000,21600,62800,23100" +st "clk_sys" +blo "58000,22800" +tm "WireNameMgr" +) +) +on &108 +) +*132 (Wire +uid 420,0 +shape (OrthoPolyLine +uid 421,0 +va (VaSet +vasetType 3 +) +xt "35000,55000,40000,55000" +pts [ +"40000,55000" +"35000,55000" +] +) +start &46 +end &16 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 424,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 425,0 +va (VaSet +font "Arial,12,0" +) +xt "36000,53600,40000,55100" +st "logic1" +blo "36000,54800" +tm "WireNameMgr" +) +) +on &87 +) +*133 (Wire +uid 426,0 +shape (OrthoPolyLine +uid 427,0 +va (VaSet +vasetType 3 +) +xt "23000,63000,28092,63000" +pts [ +"23000,63000" +"28092,63000" +] +) +start &13 +end &21 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +font "Arial,12,0" +) +xt "22000,61600,26900,63100" +st "reset_n" +blo "22000,62800" +tm "WireNameMgr" +) +) +on &84 +) +*134 (Wire +uid 430,0 +shape (OrthoPolyLine +uid 431,0 +va (VaSet +vasetType 3 +) +xt "37000,17000,42000,19000" +pts [ +"37000,19000" +"42000,19000" +"42000,17000" +] +) +end &40 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 435,0 +va (VaSet +font "Arial,12,0" +) +xt "34000,17600,41500,19100" +st "resetSynch" +blo "34000,18800" +tm "WireNameMgr" +) +) +on &85 +) +*135 (Wire +uid 436,0 +shape (OrthoPolyLine +uid 437,0 +va (VaSet +vasetType 3 +) +xt "34000,61000,43000,63000" +pts [ +"34000,63000" +"43000,63000" +"43000,61000" +] +) +start &23 +end &49 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 439,0 +va (VaSet +font "Arial,12,0" +) +xt "35000,61600,39200,63100" +st "reset1" +blo "35000,62800" +tm "WireNameMgr" +) +) +on &91 +) +*136 (Wire +uid 583,0 +shape (OrthoPolyLine +uid 584,0 +va (VaSet +vasetType 3 +) +xt "23750,51000,61250,51000" +pts [ +"23750,51000" +"61250,51000" +] +) +start &98 +end &63 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 585,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 586,0 +va (VaSet +) +xt "25750,49800,30350,51000" +st "clk_sys" +blo "25750,50800" +tm "WireNameMgr" +) +) +on &108 +) +*137 (Wire +uid 600,0 +optionalChildren [ +*138 (BdJunction +uid 610,0 +ps "OnConnectorStrategy" +shape (Circle +uid 611,0 +va (VaSet +vasetType 1 +) +xt "3600,53600,4400,54400" +radius 400 +) +) +*139 (BdJunction +uid 616,0 +ps "OnConnectorStrategy" +shape (Circle +uid 617,0 +va (VaSet +vasetType 1 +) +xt "3600,54600,4400,55400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 601,0 +va (VaSet +vasetType 3 +) +xt "4000,53000,10250,59000" +pts [ +"10250,53000" +"4000,53000" +"4000,59000" +] +) +start &102 +end &109 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 604,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 605,0 +va (VaSet +) +xt "6000,51800,9800,53000" +st "logic0" +blo "6000,52800" +tm "WireNameMgr" +) +) +on &113 +) +*140 (Wire +uid 606,0 +shape (OrthoPolyLine +uid 607,0 +va (VaSet +vasetType 3 +) +xt "4000,54000,10250,54000" +pts [ +"10250,54000" +"4000,54000" +] +) +start &101 +end &138 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 608,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 609,0 +va (VaSet +isHidden 1 +) +xt "2250,52800,6050,54000" +st "logic0" +blo "2250,53800" +tm "WireNameMgr" +) +) +on &113 +) +*141 (Wire +uid 612,0 +shape (OrthoPolyLine +uid 613,0 +va (VaSet +vasetType 3 +) +xt "4000,55000,10250,55000" +pts [ +"10250,55000" +"4000,55000" +] +) +start &100 +end &139 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 614,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 615,0 +va (VaSet +isHidden 1 +) +xt "2250,53800,6050,55000" +st "logic0" +blo "2250,54800" +tm "WireNameMgr" +) +) +on &113 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *142 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*143 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*144 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*145 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*146 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*147 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*148 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*149 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*150 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*151 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-1400,-1500,128961,69956" +cachedDiagramExtent "-1500,0,336751,323398" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 668,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*152 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*153 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*154 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*155 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*156 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*157 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*158 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*159 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*160 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*161 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*162 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*163 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*164 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*165 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*166 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*167 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*168 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*169 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*170 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*171 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*172 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,6000,7400,7200" +st "Declarations" +blo "0,7000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,7200,3700,8400" +st "Ports:" +blo "0,8200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,18000,5200,19200" +st "Pre User:" +blo "0,19000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19200,36500,24000" +st "constant clockFrequency: real := 60.0E6; +constant uartBaudRate: real := 9.6E3; +constant uartDataBitNb: positive := 7; +constant morseUnitDuration: real := 100.0E-3; -- 1/2 * 10 Hz +constant morseToneFrequency: real := 3135.96; -- sol 3eme octave +constant deglitchBitNb: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,24000,9500,25200" +st "Diagram Signals:" +blo "0,25000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "0,6000,6400,7200" +st "Post User:" +blo "0,7000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,6000,0,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 19,0 +usingSuid 1 +emptyRow *173 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*174 (RefLabelRowHdr +) +*175 (TitleRowHdr +) +*176 (FilterRowHdr +) +*177 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*178 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*179 (GroupColHdr +tm "GroupColHdrMgr" +) +*180 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*181 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*182 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*183 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*184 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*185 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*186 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 468,0 +) +*187 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 470,0 +) +*188 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 472,0 +) +*189 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 474,0 +) +*190 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 476,0 +) +*191 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 7 +suid 7,0 +) +) +uid 478,0 +) +*192 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 480,0 +) +*193 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 482,0 +) +*194 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 10 +suid 10,0 +) +) +uid 484,0 +) +*195 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset1" +t "std_ulogic" +o 11 +suid 11,0 +) +) +uid 486,0 +) +*196 (LeafLogPort +port (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 12 +suid 12,0 +) +) +uid 488,0 +) +*197 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseIn_synch" +t "std_uLogic" +o 13 +suid 13,0 +) +) +uid 490,0 +) +*198 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch_n" +t "std_ulogic" +o 6 +suid 14,0 +) +) +uid 492,0 +) +*199 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clk_sys" +t "std_ulogic" +o 14 +suid 16,0 +) +) +uid 620,0 +) +*200 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "logic0" +t "std_ulogic" +o 15 +suid 19,0 +) +) +uid 667,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*201 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *202 (MRCItem +litem &173 +pos 15 +dimension 20 +) +uid 69,0 +optionalChildren [ +*203 (MRCItem +litem &174 +pos 0 +dimension 20 +uid 70,0 +) +*204 (MRCItem +litem &175 +pos 1 +dimension 23 +uid 71,0 +) +*205 (MRCItem +litem &176 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*206 (MRCItem +litem &186 +pos 0 +dimension 20 +uid 469,0 +) +*207 (MRCItem +litem &187 +pos 1 +dimension 20 +uid 471,0 +) +*208 (MRCItem +litem &188 +pos 2 +dimension 20 +uid 473,0 +) +*209 (MRCItem +litem &189 +pos 3 +dimension 20 +uid 475,0 +) +*210 (MRCItem +litem &190 +pos 4 +dimension 20 +uid 477,0 +) +*211 (MRCItem +litem &191 +pos 5 +dimension 20 +uid 479,0 +) +*212 (MRCItem +litem &192 +pos 6 +dimension 20 +uid 481,0 +) +*213 (MRCItem +litem &193 +pos 7 +dimension 20 +uid 483,0 +) +*214 (MRCItem +litem &194 +pos 8 +dimension 20 +uid 485,0 +) +*215 (MRCItem +litem &195 +pos 9 +dimension 20 +uid 487,0 +) +*216 (MRCItem +litem &196 +pos 10 +dimension 20 +uid 489,0 +) +*217 (MRCItem +litem &197 +pos 11 +dimension 20 +uid 491,0 +) +*218 (MRCItem +litem &198 +pos 12 +dimension 20 +uid 493,0 +) +*219 (MRCItem +litem &199 +pos 13 +dimension 20 +uid 621,0 +) +*220 (MRCItem +litem &200 +pos 14 +dimension 20 +uid 668,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*221 (MRCItem +litem &177 +pos 0 +dimension 20 +uid 74,0 +) +*222 (MRCItem +litem &179 +pos 1 +dimension 50 +uid 75,0 +) +*223 (MRCItem +litem &180 +pos 2 +dimension 100 +uid 76,0 +) +*224 (MRCItem +litem &181 +pos 3 +dimension 50 +uid 77,0 +) +*225 (MRCItem +litem &182 +pos 4 +dimension 100 +uid 78,0 +) +*226 (MRCItem +litem &183 +pos 5 +dimension 100 +uid 79,0 +) +*227 (MRCItem +litem &184 +pos 6 +dimension 50 +uid 80,0 +) +*228 (MRCItem +litem &185 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *229 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*230 (RefLabelRowHdr +) +*231 (TitleRowHdr +) +*232 (FilterRowHdr +) +*233 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*234 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*235 (GroupColHdr +tm "GroupColHdrMgr" +) +*236 (NameColHdr +tm "GenericNameColHdrMgr" +) +*237 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*238 (InitColHdr +tm "GenericValueColHdrMgr" +) +*239 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*240 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*241 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *242 (MRCItem +litem &229 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*243 (MRCItem +litem &230 +pos 0 +dimension 20 +uid 98,0 +) +*244 (MRCItem +litem &231 +pos 1 +dimension 23 +uid 99,0 +) +*245 (MRCItem +litem &232 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*246 (MRCItem +litem &233 +pos 0 +dimension 20 +uid 102,0 +) +*247 (MRCItem +litem &235 +pos 1 +dimension 50 +uid 103,0 +) +*248 (MRCItem +litem &236 +pos 2 +dimension 100 +uid 104,0 +) +*249 (MRCItem +litem &237 +pos 3 +dimension 100 +uid 105,0 +) +*250 (MRCItem +litem &238 +pos 4 +dimension 50 +uid 106,0 +) +*251 (MRCItem +litem &239 +pos 5 +dimension 50 +uid 107,0 +) +*252 (MRCItem +litem &240 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Board/hds/morse_ebs3/symbol.sb b/05-Morse/Board/hds/morse_ebs3/symbol.sb new file mode 100644 index 0000000..57084b2 --- /dev/null +++ b/05-Morse/Board/hds/morse_ebs3/symbol.sb @@ -0,0 +1,1755 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 4 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 4,0 +) +) +uid 115,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 6 +suid 5,0 +) +) +uid 117,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 7 +suid 6,0 +) +) +uid 119,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 7,0 +) +) +uid 121,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 3 +suid 8,0 +) +) +uid 123,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 114,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 116,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 118,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 120,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 122,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *56 (MRCItem +litem &43 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*57 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 97,0 +) +*58 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 98,0 +) +*59 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*60 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 101,0 +) +*61 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 102,0 +) +*62 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 103,0 +) +*63 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 104,0 +) +*64 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 105,0 +) +*65 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 106,0 +) +*66 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "entity_name" +value "morse_ebs3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "08:06:36" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "morse_ebs3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Board\\hds\\morse_ebs3\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:06:36" +) +(vvPair +variable "unit" +value "morse_ebs3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 125,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,6625,15000,7375" +) +tg (CPTG +uid 126,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 127,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,6300,19800,7700" +st "clock" +blo "16000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 128,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,63500,4000" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*69 (CptPort +uid 129,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,6625,44750,7375" +) +tg (CPTG +uid 131,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 132,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,6300,43000,7700" +st "morseOut" +ju 2 +blo "43000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 133,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,62500,8800" +st "morseOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 2,0 +) +) +) +*70 (CptPort +uid 134,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 135,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,7625,15000,8375" +) +tg (CPTG +uid 136,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 137,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,7300,21700,8700" +st "reset_n" +blo "16000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 138,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,63500,5600" +st "reset_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*71 (CptPort +uid 139,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 140,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,7625,44750,8375" +) +tg (CPTG +uid 141,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 142,0 +va (VaSet +font "Verdana,12,0" +) +xt "35400,7300,43000,8700" +st "RxD_synch" +ju 2 +blo "43000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 143,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,63500,6400" +st "RxD_synch : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD_synch" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*72 (CptPort +uid 144,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 145,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,8625,44750,9375" +) +tg (CPTG +uid 146,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 147,0 +va (VaSet +font "Verdana,12,0" +) +xt "39900,8300,43000,9700" +st "TxD" +ju 2 +blo "43000,9500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 148,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,63500,7200" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 6 +suid 5,0 +) +) +) +*73 (CptPort +uid 149,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 150,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,9625,44750,10375" +) +tg (CPTG +uid 151,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 152,0 +va (VaSet +font "Verdana,12,0" +) +xt "31700,9300,43000,10700" +st "morseEnvelope" +ju 2 +blo "43000,10500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 153,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,63500,8000" +st "morseEnvelope : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 7 +suid 6,0 +) +) +) +*74 (CptPort +uid 154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 155,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,8625,15000,9375" +) +tg (CPTG +uid 156,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 157,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,8300,19200,9700" +st "RxD" +blo "16000,9500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 158,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,63500,3200" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 7,0 +) +) +) +*75 (CptPort +uid 159,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 160,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,9625,15000,10375" +) +tg (CPTG +uid 161,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 162,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,9300,22000,10700" +st "morseIn" +blo "16000,10500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 163,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,63500,4800" +st "morseIn : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "morseIn" +t "std_uLogic" +o 3 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,30300,16000" +st "Board" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,33900,17200" +st "morse_ebs3" +blo "26800,17000" +) +) +gi *76 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*77 (Grouping +uid 16,0 +optionalChildren [ +*78 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,46500,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *88 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*90 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *91 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *92 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,8800,45200,10000" +st "User:" +blo "42000,9800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,44000,10000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 301,0 +activeModelName "Symbol:CDM" +) diff --git a/05-Morse/Board/ise/morse-XC3S1200E.bit b/05-Morse/Board/ise/morse-XC3S1200E.bit new file mode 100644 index 0000000000000000000000000000000000000000..81920c17c9eb83779623e03f5e83c6b89db30dfc GIT binary patch literal 480244 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 zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36Q|4CD4#RwfQl(`AVQ! zq-MU>jrAe{5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}frUdLSU6Q>O-X7ay$EFIR8$AO=tx8e0R{2yin$R-sh!dth{hnSpi)Fe=-YN04 z@24tprt#DKrknp#ji0uAR?W2YX0?#{oOwK-D|bS5OV5B)B~Ig|=BbXK<~QB^mumd9 z-84yn1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ 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 literal 0 HcmV?d00001 diff --git a/05-Morse/Board/ise/morse-XC3S500E.mcs b/05-Morse/Board/ise/morse-XC3S500E.mcs new file mode 100644 index 0000000..24d2ffc --- /dev/null +++ b/05-Morse/Board/ise/morse-XC3S500E.mcs @@ -0,0 +1,17742 @@ +:020000040000FA +:10000000FFFFFFFF5599AA660C000180000000E089 +:100010000C800680000000060C80048000008CA785 +:100020000C800380804304C90C00038000000000A2 +:100030000C000180000000900C0004800000000013 +:100040000C000180000000800C0002000A8028598A +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000020000000000080000000000000000D5 +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:100290000000000000020000000000080000000054 +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:100350000000000000000000000000040000000099 +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000A00A000000000000000000000000000062 +:1004F00000000000000000000000000000000000FC +:100500000000003100510000000000000000000069 +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:100640000000000000000000000000000000A0000A +:100650000000120000000000000000000000000088 +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D00000002000000000000000000000005401A4 +:1007E00018000000000000000000000000000000F1 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000100100000000000000000000000086 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000001000000000000000015 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:10112000000000004000000000000000000000007F +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000001000000000000003D +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:101570000000000000020000000000000000000069 +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000040A4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000100000000000000000C0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B0000000000000000080080000000000000094 +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000080000000001A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000080000000000000000099 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000002011000000000000000000000066 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000086400000000000200030 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000800014 +:102C40000040100000000000000000000000000034 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC00000001000004000000000000000000000B3 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F4000000000220000000000000000000000005F +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C000000000000000000000000000000080017F +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000010000000000000000000000006D +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D000000000000000000000000000800000006D +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000004001A9 +:1036E000000000007000000000000000000000006A +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C0000000008000000000000000000000000077 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F0000000000090000000000000000000000037 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000E67 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000002000000000D4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D1000000000000000000000040000000000009F +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E10000000000000000000000000000000003072 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000004000000000000000000000000001 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000008000000000000000000000000000088 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000001000000000000000007F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000004000000000000000000000000003B +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:105530000048000000000000000000000000000023 +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:1055800000000000000000000000000000200000FB +:1055900000000000000000000000000000200000EB +:1055A00000000000000000000000000000200000DB +:1055B00000000000000000000000000000200000CB +:1055C00000000000000000000000000000200000BB +:1055D00000000000000000000000000000200000AB +:1055E000000000000000000000000000002000009B +:1055F000000000000000000000000000002000008B +:10560000000000000000000000000000002000007A +:105610000000000000020000000000000020000068 +:10562000000000000000000000000000002000005A +:10563000000000000000000000000000000000204A +:10564000000000000000000000000000000000005A +:10565000002000000000000000000000000000002A +:10566000000000200000000000000000000000001A +:10567000000000200000000000000000000000000A +:1056800000000000002200000000000000000000F8 +:1056900000000000000000200000000000000000EA +:1056A00000000000000000000020000000000000DA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:1058300000000000000E000000000000000000005A +:105840000000000001000000000000000000000057 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:1058800000000000005000000000000000000000C8 +:1058900000000000003000000000000000000000D8 +:1058A00000000000003000000000000000000000C8 +:1058B00000000000003000000000000000000000B8 +:1058C00000000000003000000000000000000000A8 +:1058D0000000000000300000000000000000000098 +:1058E0000000000000300000000000000000000088 +:1058F0000000000000300000000000000000000078 +:105900000000000000300000000000000000000067 +:10591000000000000030000000000000000C00004B +:105920000000000000300000000000000000000047 +:105930000000000000300000000000000000000037 +:105940000000000000000010000000000000000047 +:105950000000000000000000001000000000000037 +:105960000000000000000000000000100000000027 +:1059700000000000000000000000003000000000F7 +:1059800000000000000000000000000000180000FF +:1059900000000000000000000000000000000010F7 +:1059A00000000000000000000000000000000000F7 +:1059B00000100000000000000000000000000000D7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F0000000000000000000100000000000000097 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000100000000000000066 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000200000000000000000000000000000063 +:105B4000000800000000000000000000000000004D +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA0000000000000000000000000008000000075 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC000000000000048000000000000000000008C +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00001000000000000000000000000000000083 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E400000000000000000000000000000001081C1 +:105E5000080000000000FFFFFFFF0000000000003E +:105E60000000000000000000000000000000000032 +:105E70000000FFFFFFFF0000000000000000000026 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB0000000000000000000000000000000FFFFE3 +:105FC000FFFF0000000000000000000000000000D3 +:105FD0000000008100000000000080040C000000B0 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000008C0200000000000013 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000080040C00000000000000000000803F +:106150000800000000000000000000000000000037 +:10616000000000000000000000000000000000002F +:10617000000000000000008060A84E8060B84E80E3 +:1061800060B00000000000000000000000000000FF +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F00000000000000000000000DDDDFEFFFEFFEA +:10630000FEFFFEFFF0F000000000000000000000B3 +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000FFFFFFFF00000000000050 +:10645000000000000000000000000000000000003C +:1064600000000000000080000004000000000000A8 +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C000000000000000000000000000000080004B +:1065D00000040000000000000000000000000000B7 +:1065E000000000000000800000000001002000000A +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:1067400000000000000000000000000000008000C9 +:106750000000000100200000000000000000000018 +:106760000000000000000000000000000000000029 +:10677000C003000000000000000000000000000056 +:1067800000000000120000005A000040000000005D +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D000000000C300000000C00000000000000035 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000010080000000000000000000080 +:106900000000000000000000000040000001004006 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A500000000000000000480000000010000000DE +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000070000096 +:106A9000F0002EC00300000A3000000000000000DB +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF00000000000A002000000000C0000000000E7 +:106C00000000000000000000000000000000002064 +:106C100002002C0000000D0000005000D000000019 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D600000382800000000000000000000000000C3 +:106D70000008000000000000000000000000020009 +:106D80000000000000000000000000000000000003 +:106D9000000000400000000000000000021082001F +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE000000000000008000000000000000000009A +:106EF0000000000000000000100000000000000082 +:106F00000000000000000000000000000000000081 +:106F1000000000000000002000000000C0031C0072 +:106F20000028000F1000000000000000000000001A +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:1070700000000000000000000000000050000000C0 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000004001000000AF +:1070A00000002CC001D000240000000000000000FF +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F0000000000000000000000000000088000007 +:10720000000000000000000000000000000000007E +:10721000000000000020840000002000800000200A +:107220000000800001400420000000002020002019 +:107230000002000000000002000200000000012225 +:107240000002000000000002000000080000000032 +:10725000002000000000000000000000000000000E +:1072600000000020000000000000000000000000FE +:10727000000000000002000000000000000000000C +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000040000000000000000000000009A +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:107350000004000000000000000000000000000029 +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A0000000000000000000B0000000000000002D +:1073B00000000000B010B00000000000000000005D +:1073C00000000000000000000000000000000008B5 +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000008000000000000C +:10750000000000000000000000000000000000007B +:1075100000000000000000000000000000003050EB +:10752000000000003E0000000000300008200400C1 +:1075300000000000100000000088000000000008AB +:107540000008000000000C18000800000000000CFB +:10755000000000000000000000100000000000001B +:10756000000000000000000000000010000000000B +:107570000000000000000000000000000008000003 +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E00000000000000000000000000C000000008F +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:107650000000000000000000000800000000000022 +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:107990000060000000000000000000000000000087 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B300000000000000000000000FFFFFFFF000049 +:107B400000000055FFFF0000000000000000FFFFE4 +:107B5000FFFFFFFFFFFF0000000000000000FFFF2D +:107B6000FFFF000000000000000000000000000017 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C7000000000000000C3820DD0458AFBBFA58430 +:107C80007DFF6FFF21A5EFDF0BB0C3820DD0000099 +:107C900000000000000000000800000000000000DC +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC0000C000000000000000C000000000000009C +:107CD000000080240E0080240E0000000000000040 +:107CE000000080240E0000000000000000000000E2 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000090241E009024FD +:107E00001E0090241E0090241E0090241E0090242A +:107E10001E000000000000000000008008000000BC +:107E20000000000000000000000000000000000052 +:107E3000000000000000D8A472A9DFA472B9DFA47A +:107E400072B9DFA472B9DFA472B9DFA472B9DFA47A +:107E500072B9DFA472B100000000000000000080D1 +:107E600060A84F8060B84F8060B94E8060B100005C +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F700000000000000000000000008000284F808A +:107F800060B94F8060B94F8060B94F8060B94F8051 +:107F900060B94F8060B000000000000000000000E9 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000BB33BB33BB33F7 +:107FC000AF0FFF444F4FFF444F4FBB33FF0AFF2219 +:107FD000AF0FFF0CAF0F5D5DBB3300000000000072 +:107FE0000000FFFFF0F03333FAFFFF77FF7FFCFF65 +:107FF000FF00000000000000000000000000000082 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000FFFF82 +:108100003333FF00555533330F0FFF0055553333CD +:108110000F0F0F0FFF005555CCCC000000000000E2 +:10812000000000000000000000000000000000004F +:1081300000000000000000000000000000007300CC +:1081400004030000100032000403800010027300DA +:10815000040300009C013200040300001401001914 +:108160000000C020004400000000000000000010DB +:10817000000040200040000000000000000000005F +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000C02000C6000048 +:108290000000C02000C600000000C02000C6000092 +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000005100800000001000D100800000017B +:1082D00010205100800000001000510080000000BC +:1082E0001000802800000001006000000000000075 +:1082F0000000002800000000004000000000000016 +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:1084000000000000000000000000802000000001CB +:10841000006080200000000100608020000000015A +:1084200000600000000000000000000000000000EC +:10843000000000000000000000000000000000003C +:1084400000000000000000C800C393C1C71303C0B0 +:1084500003C381E3C51300C003C381C1D71300C0A8 +:1084600000A3C901D313000000000207032200008B +:1084700000000000020000C00000440002000000F4 +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000040AB +:108590000000C300E00000400000C300E00000E273 +:1085A00000C00300440000000000000000000000C4 +:1085B00000000000000000000000000000000000BB +:1085C0000000000000000000000000000003800325 +:1085D000040008020811C020400000204003C0032E +:1085E00000000002000240018000000000000400C2 +:1085F000090000000000000040000004000000002E +:108600000400000000000000000000000000000066 +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000040065 +:108710000000002000401800020000200040180067 +:108720000200001000042100000000000000000012 +:108730000000000000000000000000000000000039 +:1087400000000000000000000000000000000640E3 +:1087500001000000E000008001800007E0000CC084 +:1087600061300004E0000000000430000000000060 +:1087700000006000000000000000000A40002840E7 +:1087800001000C04000000000000000000000000D8 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:108890000000000000000008F4000000E878000874 +:1088A000F4001C80E378000F502C00C003900000FF +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D000000016000300000000001000003828000F +:1088E000000001801574000800003E80073CDC0495 +:1088F0005000000000000C000000002002000000FA +:108900000000000008004000E0000000000000003F +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A100000000000000000000000100800000080BE +:108A20000100100800001EC007744005002B00273D +:108A300001B0000000000000000000000000000085 +:108A40000000000000000000000000000000000026 +:108A50000000000000001000051000002000008051 +:108A60000020000020001080000000002000000016 +:108A7000080010000000000000000400000000409A +:108A8000000000026000044004000800080000002C +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000028AD +:108BA0000206088020890000020002002000102038 +:108BB0008846845000800000000000000000000093 +:108BC00000000000000000000000000000000000A5 +:108BD00000000000000000000000320008008C0EC1 +:108BE000D0012340060C0007E00010000800800EB2 +:108BF000D0350140000000001000000000001C0003 +:108C000000000000000000000000030000008006DB +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000300000050 +:108D200000000007E03801D00560800DC02D00C0B4 +:108D300007840004800800C0C17800000000000023 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D600000000106C000024000002D2FF0020000AC +:108D700000000006C00002400000010110000000D9 +:108D800000500D000000008001000000E0002E40B7 +:108D900001703C180000000000000000000000000E +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000020B2 +:108EA0000000000000000007F000148702600005C9 +:108EB000F00000070000000F10001C80037200008B +:108EC0000000000000000000004800000000080052 +:108ED0000000001000000000200000000000000062 +:108EE00000000000000000002000500000002020D2 +:108EF0000421222008004800202001020000002058 +:108F0000212002200000002020000242200000203A +:108F100000000102002000000000212000020100EA +:108F2000000201000000000000000000000200003C +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA0000000000000000000000000000000004081 +:108FB00000000000000000000000000000000000B1 +:108FC000000200000000000000000000000000009F +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:10902000000000010000000000000000000000003F +:1090300000000000104010000000000000000004CC +:109040000008000000000000000000000000000018 +:10905000000A0C00000000100000000000090000E1 +:1090600000000000000000000000000000002000E0 +:109070000000000000007000040004000050000028 +:109080000000000000009000000000000000000050 +:109090000000900000000000000000000000000040 +:1090A00000000010000000000000000000000000B0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B000000000000000000000002000000000008F +:1091C00000000000000C0000000000000000000093 +:1091D000000000000000000000000000000000008F +:1091E00020000000000000000000008000000000DF +:1091F00030002E0000000020040C2420000000009D +:109200003020080C000000300C300400000000206A +:1092100000000C380000002E00000C0C0010000EA6 +:10922000000E0C00000C0C8000080800000000007C +:109230000000000000080000000000000000000026 +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B000000000000000003000000000000000007E +:1092C0000000000000000000000800000000000096 +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:109320000000000000000000000000080000000035 +:10933000000000000000000000000000001000001D +:109340000000000000000004000000000000000019 +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:10938000000000200000000000000020000000009D +:10939000000000000000000000000000000000408D +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000405D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000004000000000000000000000000000001C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:1094300000000040000000000000000000000000EC +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000004000000000000000000000BC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:10949000000000000000004000000000000000008C +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000800000000000001C +:1094D0000000000000000000000800000000000084 +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000020000000000000000000000000003B +:10951000000000000000000000000000000000004B +:10952000000000100000000000000000000000002B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:1095500000000030000000000000000000000000DB +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000003000000000000000000000AB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B000000000000000003000000000000000007B +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000300000000000004B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000030000000001A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000001000000A +:1096500000000000000000000000000000480000C2 +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000020000000001000000000AA +:1096900000000010001000000000000000000000AA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:10980000000000000000FFFFFFFF0000000000005C +:10981000000000000000FFFFFFFFFFFFFFFF000050 +:109820000000FFFFFFFF00000000FFFFFFFFFFFF42 +:10983000FFFF00000000000000000000000000002A +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C00000000100AF05F1F0070500000000377748 +:1098D000BF370000000000000000FFFFFFF7553316 +:1098E00055330000000000000000000000000000F0 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000FBBF6D +:1099400055FC00000000FFFFFFFF000000000000CA +:109950000000FFF7BFB0FFFFFFFB000000000000AA +:1099600000000000080000000000000000000000EF +:1099700000000000000000000000000000000000E7 +:109980000000000000000000000080040C00000047 +:109990000000000000000000000080240E00000015 +:1099A0008C020000000080240E00000000008024D3 +:1099B0000E0080240E0000000000000000000000E7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A400000000000000000000C0000201E000000CC +:109A5000000048000C200000000000000000000092 +:109A60000C0010001C0000000000000000000000BE +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC000000090040C000000000080040C00000066 +:109AD00000000000000090040C0000000C000000DA +:109AE00000000000000000800C00000000000000EA +:109AF0000000000000000000000000000000000066 +:109B0000000000000000488060A94F8060B94F80CD +:109B100060B94F8060B94F8060B94F8060B94F80A5 +:109B200060B94F8060B04F8060B84F8060B84F80A0 +:109B300060B84E8060B14F8060B84F8060B84F8091 +:109B400060B84E8060B1000000000000000000001E +:109B50000000000000000000000000000000802461 +:109B600002000000000000000000000000000000F3 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000002075 +:109BD0001200000000000000000000000000000073 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000004000000000B4 +:109C700000000000000000000000000000000000E4 +:109C80000000000000000000000033335555FF00C5 +:109C9000555533335555FF00FF003333FF00333341 +:109CA000FF00FF003333333300FFF0F00F0F00FFEE +:109CB000FF3FFCFFFF00FF7F00FFF0F0FF0000FF11 +:109CC000FF77FAFF3333FF7F00FF00000000000042 +:109CD0000000000000000000000000000000000084 +:109CE0000000FFFFFFFF0000000000000000000078 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D4000000000000000FFFFFFFF00000000CDDD6D +:109D500033FFFF5707030000000000000000FFFF73 +:109D6000FFFF0000000000000000FFFFFFFF0000F9 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000FFFF004000000000FFFF7FFF0000C9 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E100000000000000080000004000000000000BE +:109E200000000009000080000002000000000000A7 +:109E30000000003000004020008000190000C02019 +:109E400000200000000000000000000000000000F2 +:109E50000000000000000000000000000000000002 +:109E60000000300000010000400100000000000080 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED00000000000000180001003000000000000EE +:109EE000000001000402000008009008000180004A +:109EF000100300000000000000000000000000004F +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000800091 +:109F500000048009000080000004000000000000F0 +:109F60000000003000004020004000000000000021 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F90000000000000008000000000010020000020 +:109FA000000000000000800000000001000400002C +:109FB00000000000000000280000000000088028C9 +:109FC0000000000100100000000000000000000080 +:109FD0000000000000000000000000000000000081 +:109FE00000000000000040008000000000000000B1 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A05000000000000000C00080000001002000009F +:10A060000000000000001100000000001000C0000F +:10A07000800001010020000000000000000000003E +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000800010 +:10A0D00000000001002080000000000100200000BE +:10A0E0000000000000000028000000000040000008 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A1100000000000000000000000000000C0C000BF +:10A12000C00300000000000004000800C00004009C +:10A13000C00000400000000085000000000000C0DA +:10A140004740E0000040C0874721000000000000B9 +:10A1500000000000000000000000000000000000FF +:10A160000000000000000000000000001381130048 +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D0000000000000000000C0000000008300003C +:10A1E00080010000000001000000000000000003EA +:10A1F000000000C800000300C000000000000000D4 +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A250000000000000C00003000000030000000038 +:10A260000000000000000000002040070340020042 +:10A27000E0000000000000000000000000000000FE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A0000010100010080000000000000000000076 +:10A2B0000100004010000040000000000400000009 +:10A2C00000000004202000000020102008400000B2 +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000300000000000000000000000000005B +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000001000040BC +:10A3600000820200820100000000200000000000C6 +:10A37000000000010000000800800900100000003B +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000100008000000085D +:10A3E000000000000000000000000000000001006C +:10A3F00020400200080000000000000000000000F3 +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A420000000060000000000000002100000000014 +:10A4300000000040030000000000000000000000D9 +:10A440001002084000000818000202200048F00036 +:10A450000000024000000000000002000000002098 +:10A4600000000000000000000000000000000000EC +:10A4700000000000003000000000000000000000AC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E0000000024008040800F07100000C002C007D +:10A4F00000100000000000000000000080001C8030 +:10A500000310000000000000000000000000000038 +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000090B10000BA +:10A560000010001000020000400000000080000009 +:10A5700040000000040840C001100000000000007E +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A0000000000000000100000000000000260084 +:10A5B000030000000000260000000000000026004C +:10A5C00000000000200038A00130020000002E80B2 +:10A5D00003001001A0003C0000000000C0022C009D +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000400000000000001B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A66000000000000000234C040001C7C57000007A +:10A6700000000000001000000000000000000000CA +:10A6800000000000001800000000000000000000B2 +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000E088280000640000033828000000000013 +:10A6F000072800000001001FC02C10E000800000AF +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000100000000000000019 +:10A7300010000400000000000000000000001000F5 +:10A740000000000000080000000000800040000041 +:10A75000000004000000000008000180000000006C +:10A7600000000400000000000000000000000000E5 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E00000000000000000000000000488210008B4 +:10A7F00000600000000000000052000000000000A7 +:10A80000000000100001098000C1000000000000ED +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000200000000002000008000000BE +:10A870003000000008000000100000080012000076 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000800000000000000A0 +:10A8B000080000000000000008000000000010A0D8 +:10A8C00000001C00000010000000000000000E400E +:10A8D00000000000000001000080080400000C805F +:10A8E00007000000C0020100000080060000000018 +:10A8F0000000000000000000000000000000000058 +:10A9000000800000000000000000000000000000C7 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A96000000000000000000000000000000016557C +:10A9700080010881E948000080002C0000100000E0 +:10A98000002800000000000C0040140000600000DF +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000200000090008055 +:10A9F0000300000000000000030000000000000849 +:10AA0000C08000C0018000000000000000000000C5 +:10AA10000000000000000000000000000000000036 +:10AA200000000000000000000000008000000000A6 +:10AA3000E000008000000016E00000800000000040 +:10AA40000000060000780100000006000000000081 +:10AA5000000020C001343C0000000E0000003D203A +:10AA6000000000000000000500000E0000000000D3 +:10AA700000000000000000000000000000000000D6 +:10AA8000000000000028000000000000000000009E +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000AC006030C0C0E916000018010A0078 +:10AB0000007400000002000000000000000800C007 +:10AB100001600000000000000000000000000000D4 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB70000004000000000000E000000000000000F1 +:10AB8000E000000200003CC00500000000000000E2 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB000000000000000084040204000000040006D +:10ABC000002000000808200020204028200020004D +:10ABD000200000200000002430202000202020043D +:10ABE0002000000020012000202000200021300053 +:10ABF00000000010000000000020000000003002F3 +:10AC00000000000000110000000000000000000033 +:10AC10000000010000000000000000000000000033 +:10AC20000000000000000100000000000000000023 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC7000000000008000000000000000400402020C +:10AC800000100000010100000000000080400000F2 +:10AC900000000000010200000000000000000000B1 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE000000000000000000000040004000002401A +:10ACF00000000000000020224000000008001000BA +:10AD00001008000000000201000000000000000028 +:10AD10002000000000000000000000000000000013 +:10AD20000000000000000000000000000000000023 +:10AD300000000000020200000000040800000A00F9 +:10AD40000600060E060209060000000000000D00C5 +:10AD5000060009000D00500A000C000010000D0054 +:10AD600000000D0000000000000D00A0A000000089 +:10AD700000A010000000003000A000000000000053 +:10AD800000000000000000000020000000000000A3 +:10AD90000000500000000000000000000000000063 +:10ADA000000000000000000000A000000000000003 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE000050000000002000000000000000000000D2 +:10AE100000500000000000000000000000000000E2 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE8000040000000000000000004000000000007E +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000002171 +:10AEC00000202000000030000020000000002000D2 +:10AED0002030101000002000100000100001002899 +:10AEE00030301000102E1004000000000A0C20006A +:10AEF00000300020000C10000000000000000000E6 +:10AF000000300000000030080000000000040E00C7 +:10AF10000000000000000000000004000A00000023 +:10AF2000000000000000000000000000000004001D +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF70000000000000000000000000003E00005043 +:10AF8000000000001A0C040C00000000080C000077 +:10AF9000000000001010000000000000080C00007D +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000008000C00000800000000000000000C29 +:10B000000000000000000000000000000000000838 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000002040000000002000000000000080 +:10B0500000000000000000000000000000002000D0 +:10B060004000000000000000000000000020000080 +:10B0700000000000000000000000000000000000D0 +:10B080000030000000000000000000000000000090 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000100000000000000000000000000DE +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B19000000000440000000000000000000000006B +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C00000000000000000002000000000800000DF +:10B1D000000000000000000000000000000000204F +:10B1E00000008000000000000000000000000000DF +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B3100000000000000080010000000000000000AC +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000001000000000ED +:10B3500000000000000000000010000000000000DD +:10B3600000000020000000000000000000000000BD +:10B3700000000000001000000000000000000000BD +:10B3800000000000000000000010000000000000AD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F0000000EEDD7BDE00CCDE7B0088F66F000016 +:10B50000000000000000000000000000000000003B +:10B51000000000000000080050A00033F7FF00000A +:10B5200000000000000037FF008000000000000065 +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B570000000000000000000000000000000FFFFCD +:10B58000FFFF00000000FFFFFFFFFFFFFFFF8A0239 +:10B59000EE0F044004402333F7F501014544FFFF5B +:10B5A000FFFFFFBFBF045F50F303FFFFFFFF00007B +:10B5B0000000F3033535000000000000000000002B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000F3F3B7B7FFFF000F0000D9 +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B630000800000000000000000000000000000002 +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000090241E0000201E0000209A +:10B680001E0000000000000000000000000000009C +:10B690000000000000000000000000000C0000207E +:10B6A0001E00000000000000000090040C000000DC +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B70000000068408002000000006840800268403D +:10B71000800200001C0000000C0090040C000000DF +:10B720000C0000000C0090241E0010001C00000003 +:10B730000C000000000010001C00000000000000D1 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B780000000000000000000000090241E000000E7 +:10B790000C0000000000000000000000000000009D +:10B7A0000000000000000000000000000000000099 +:10B7B000000000C0040000000000000000000000C5 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000009004000000000000000084 +:10B83000000048201220000000000000000000006E +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B880000000000000000000000000000000902404 +:10B89000120090040000002012000020120000009E +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000001000100000000000000068 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F00000000000000090241200000000009024CE +:10B900001200000000000000000000000000000025 +:10B91000000090040000000000008004000000000F +:10B920000000000000000000000000000000000017 +:10B9300000000000000000400000000000000000C7 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A000000000000000000000005595FFFF0000AF +:10B9B000000000000000BBAAB3AA000000000000C5 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA000000000000000000000000FFFFFFFF00003A +:10BA100000002F0D73239595FF0933131F15503028 +:10BA2000EE0FAFEFF444EBAA0100FFBBFF07FFFFEF +:10BA3000FFFFFF7F0F03FF7FFF7F55FF3F300000B9 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000F3F3FFF00000F1 +:10BA8000000033FFFFCC00000000000000000000B9 +:10BA90000000000000005F9FFFDD00000000FFFFCE +:10BAA000FFFF000000000000000000000000000098 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000244 +:10BB000000008000000000040000C02000000000D1 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000008009000080000006020004 +:10BB300004020000040060340001402010C0000036 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000004020008030000403C020108200001C +:10BBA000040340200000000000004020000010308E +:10BBB0000001C020408280080000C02000C0800832 +:10BBC000040280002C0600000000000000000000BD +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC0000040200000C000000040200000800000014 +:10BC100000000000000070300001402090C00000D3 +:10BC20000001000090000000000000000000000083 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC80000000800000000001002080220000000170 +:10BC90000060000000000000000000000000000044 +:10BCA0000000000000000000000080000000000113 +:10BCB0000020110000000000100060208000000043 +:10BCC0000040000000000000000000000000000034 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD1000000000000000000000C0410080000001A1 +:10BD200010E24120800000002840002000000000B8 +:10BD30000040C02880000001006080280000000151 +:10BD40000028910000000001000400000000000035 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000100000000001000010000000000A1 +:10BD900010000000000000000000402880000000AB +:10BDA0000040400080000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE000000000000000000000000C000000300402F +:10BE1000004000224400000000000000000000007C +:10BE20000000000000000000000000000000000012 +:10BE300000000000020000000000000003000000FD +:10BE400000000100030000000000000000000000EE +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE9000000000000000000000000000C0000000E2 +:10BEA00013DB0003DB2300800040C7634580E00014 +:10BEB00003C3E305C00000D0C303C047D30100C0E3 +:10BEC00000400007C00003C303000000C4000000DE +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF000000000000000000C000230000000000C08E +:10BF100000030000000000000000000000000040DE +:10BF200000C00440C8800000C800000000C8000035 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF80000000000000000000000000000000108021 +:10BF900001080020004001000080000000000000B7 +:10BFA0000000000000000000000000000000000091 +:10BFB00000000000080000800208000000000000EF +:10BFC00040000008000040002000000000000000C9 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C0200009000000000000210000000200200420A0 +:10C030004002000012C0200001000010184801203A +:10C04000100100044020010010000811050001004B +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000200000000AE +:10C09000000000200001000000000000000000007F +:10C0A0000000002000040020000400000000000048 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000241021000070400000B00C00013000002D +:10C12000000000000000000000000000000000000F +:10C13000000000000000400200000000083810006D +:10C140000014000000004018023C02002200000021 +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C190000000000000000000000000000000000F90 +:10C1A000000008C00500800FF0109407E1302882DD +:10C1B00080012C2EF97220A31D0408C7F1120E0075 +:10C1C0000809100400101645010001B442020000E5 +:10C1D0000442080400080000000000000000000005 +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C2100000000004000000000040000000000000DA +:10C22000000000000000000000000080030000008B +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C2900000000000000000000078000060381C0072 +:10C2A0000318000000000000000000000000000073 +:10C2B00000000000000000000000001720000080C7 +:10C2C00001600000000002000000000000000040CB +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000070010028001000C82C38015B7D6 +:10C33000D934480020280886C364860BEA349CE47C +:10C3400020F0100000001D0000F420000300000693 +:10C35000C2010000000000080070000000000000A2 +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000006000000400400000600000000004D +:10C3A000000000000000000000000000000000E0AD +:10C3B000F30000000000000000000000000000008A +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C4100000000000000000006010000000080000A4 +:10C420004015182000080000000000000000000077 +:10C4300000000000000000000000000000000008F4 +:10C4400010020010020C80000000800000000000BC +:10C45000000400F0340000000000000000000000B4 +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A0000000000000000030004000000000D00844 +:10C4B0009604025400248481045066121002240061 +:10C4C0000002184000081000001A1002001080033B +:10C4D000053860000000140020000800000C000077 +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C510000000000000000A000000000800000F00FA +:10C5200000000000000000000000000000000038D3 +:10C530000F020000000000000000000000000000EA +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A00000044000800120C001780000000000006D +:10C5B000000000000000000000000000000000007B +:10C5C00000000008600C1000016800000000000777 +:10C5D0000000804C063800402000000000000000F1 +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C620000000000000000000000000030000008087 +:10C630000100000D87B109C0C1782C5807001CC744 +:10C64000C184166CC0023CE7E10B12008080010E31 +:10C6500000040E050A000CC7F1012E0000020006BE +:10C66000003000000000000000000000000000009A +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B0000000000000000000C0000000004000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000380000000000C005140000F8 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000030000708002100000E4 +:10C7500000400020000000440000400022000000D3 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000C7D +:10C7B00000800AC0090020800100408FD372084029 +:10C7C000080100C7410206CF0142122F01102E00BE +:10C7D000902814260060891500003CC0E900000084 +:10C7E0000000002000000000000000000000000029 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000060012 +:10C820000000000000000600000000000000000002 +:10C83000000000000000000000000000D03A0000EE +:10C8400000380000000000000000000000000000B0 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C880000000000000000000200000000000000088 +:10C890000000000000000000000000800000000018 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000001000000000000000000000000068 +:10C8C0000000000000104000000000020002000014 +:10C8D00000000200001000000000000000000080C6 +:10C8E00000810100000000020000000000000000C4 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000010000000000000026 +:10C910000200000000000000000000000000000015 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000001100000000000E6 +:10C940000201802022302028203004000020000036 +:10C950001000000200000020002410083000002019 +:10C96000082000000000000000000000000000009F +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000008000000000000000000000000017 +:10C9A0000000000000020000000000000000000085 +:10C9B00000000000000000400000000140000000F6 +:10C9C000000800100100002000200000000000000E +:10C9D0000000000000100000000000000000000047 +:10C9E000000000000000000000000800000000003F +:10C9F0000000000000000000000000200000000017 +:10CA0000000000000000000D00000000000100B068 +:10CA1000000000000900000000000000000000000D +:10CA20000000000000000000000000000000000006 +:10CA3000000A0000000000300000000000080000B4 +:10CA400000000000000000000020000000000000C6 +:10CA500000000000000000050030000000000000A1 +:10CA6000000070A070A00000900000A000A00000D6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA000000000000000000000000000A0000000E6 +:10CAB0000000000000000000000000000000200056 +:10CAC0000050000000009050002000040020606032 +:10CAD00000000000000000000000000005000C0C39 +:10CAE0002000000004009000000000000000000092 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000C003000000000000A00009F +:10CB500000000000000E000000000000000A0000BD +:10CB600000000000000000000000000000000100C4 +:10CB70000000000000000000000000000000008035 +:10CB800000000000000000000000000000000000A5 +:10CB90002000000000000000000000000000000075 +:10CBA0000000003000000040000000000001000014 +:10CBB0000000000000000000000000000000000A6B +:10CBC0000001000000000000000000000000100054 +:10CBD0000000000400040000000E0400000000003B +:10CBE0000E00000000000020002C04000000000CDB +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC100004000000000000000C0000000000000004 +:10CC200000000000000000000E00000000000000F6 +:10CC300000000000000000000000000000000000F4 +:10CC400000080A0000000000080C1000040000208A +:10CC50002000000000000000000000040000003080 +:10CC6000003901000000002000000000000000006A +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000200000000074 +:10CCA000000000000000000000000000000800007C +:10CCB0000000000000000000000000000000003044 +:10CCC0000000000C10000000000000000800003010 +:10CCD0000010000000000000000000000000000044 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD200000000000000000000000000000004000C3 +:10CD300000000000000000000000002000000000D3 +:10CD400000000020000000000000000000000000C3 +:10CD50000000000000002000000000400040000033 +:10CD60000040002000000000000000000000000063 +:10CD700000000000000000000000000000000000B3 +:10CD80000000000080000000000000000000000023 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000003000300000000000000000000013 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000030000000000000000000000013 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000200000000000000000000000000052 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000020000000002012 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000200000000000000001 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000800080000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF60000000000000000000800000000000000041 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000001000000000000081 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000010001000000000001000100000A0 +:10D0500000000000000000000000000000003000A0 +:10D0600000000000000000000000001000000000B0 +:10D0700000000000000000000000000000000000B0 +:10D08000000000000000810000000000000000001F +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F000000000000004001000000000000000001C +:10D10000000000000000000000000000000000001F +:10D1100000000000000000000000000000200000EF +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000008000000000000000000000000B7 +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E0000000EFDFFDDFFF5F0770000000000000C0 +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D210000000000000000000000077077707000012 +:10D220000000FFFF0100FFFFFEFFFFFF0100770787 +:10D230007707000000000000000000000000000070 +:10D2400000000000000000000000FFFFFFFFFFFFE4 +:10D25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10D26000FFFF0700FFF0FFFFFFFF000000000000CE +:10D27000000000000000FFFFFFFF000000000000B2 +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B0000000AFAFF3F3FFFFFFFB070FF5F5FFBF74 +:10D2C000FF55FFFFFFBF0FFF33FF0000000000000E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000040000002A +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000090241E0010000C000000CF +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D3900000000000000000000000000000009024D9 +:10D3A0001E000000000000000C0000000C00000047 +:10D3B0000C0090241E00000000000000000000008F +:10D3C00000000000000000000000000000006840B5 +:10D3D00080026840800268408002684080026840A5 +:10D3E00080026840800200000C006840800200005B +:10D3F0000000000000000000000080040C0000009D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000090241E0000000C000020EE +:10D440001E0000000C0000000C0090241E000000D4 +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D47000000000000000000000000000000000802C +:10D480000400000000000000000000000000000098 +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D520000000000000009024120000000000902481 +:10D5300012000020120090241200000000000000E1 +:10D5400000000000000000000000000000000000DB +:10D550000000000000000000000090241200902451 +:10D56000120090040000000000000020120090242F +:10D5700002000000000000000000000000000000A9 +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B00000000000000000000000008000284F80F4 +:10D5C00060B94F8060B94F8060B94F8060B94F80BB +:10D5D00060B94F8060B00000000000000000000053 +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000C00000000000000000000000005A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D680000000FFFF505500000000000000000000F7 +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000003F1577070100A7 +:10D6B00001005F1377070100FFDD77075F130000AC +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000FFFFFFFF00000000DF026D +:10D6E0007323CCCC99997788575D4182F6F601FF78 +:10D6F000070533CCFFFF0000000000000000000021 +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D730000000000000000000000000000000FFFFEB +:10D7400055555555FF003333FF000F0F3333FF009E +:10D750003333FF0055550F0F00FFFFFFFFFF0000A1 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F000000000000000C020004400000000000005 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D820000000000000000000000000000001402097 +:10D8300010410000000100001000000004038000FF +:10D8400014030000000000000000000000000000C1 +:10D850000000000000000000000000000000C020E8 +:10D86000000030000403C020140002000402C020A5 +:10D8700004821000040380009402000000000000F5 +:10D880000000000000008000000200000000000016 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000004020004000000000402058 +:10D8D00000C0000000008000000400000000000004 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000080200000000100600000A6 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000402017 +:10D9B0008000000000404000800000000000D10016 +:10D9C00080000001102000000000000000000000A6 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000100E241008000000110E211008F +:10D9F0000000000110E24100800008011022000038 +:10DA00000000000000008000000000010020000075 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA40000000000000000020000000000040002056 +:10DA500000000000004080000000000100200000E5 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF000000000000000000000000022208700005D +:10DB0000C0C0000000000000000000000020000075 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB30000000008000C84613E107008001DB000000 +:10DB4000100000DB0013C123800000000000000073 +:10DB500000000000000000000000000000000000C5 +:10DB60000000008000000000C00000E893C980E0D1 +:10DB700093C100C3C3C3C020C310C58180DBC85399 +:10DB8000C4C50000000000000000000000C000C08C +:10DB900000C00000000000000000000000000000C5 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000C00000000590 +:10DBD0005400C200020A40620002C00000080000B7 +:10DBE000C000001000000000000000000000000065 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000004000030100000000000000000000050 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB000000000000000000200000400400000021C +:10DCC00040000800000000000140500080000000FB +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000004000800000100C00067 +:10DCF000800180208003800303418020C010400306 +:10DD0000880000400020000000000000000000002B +:10DD100000100010001000000000000000000000D3 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000004CF +:10DD500000000000000005000280054080800940AE +:10DD600000000000100000020000000000000000A1 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000FE4800800014000000000000056 +:10DE100000000000000000002000000000000000E2 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000008200280080B8 +:10DE40004B002800000754044149460084049C808C +:10DE5000A1600000000000000000000000000000C1 +:10DE600000000000000000000000000FF01009009A +:10DE7000099046022478A0000880408555006C0F68 +:10DE8000F1110E0804002C0E00000000000000003C +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000F000000C003380100D000000067 +:10DEE0000000560000000000017800000000002043 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000004002001002200308000012 +:10DF900000000000000000800300000000000000FE +:10DFA0000000000000000000000000000000000071 +:10DFB000000000000000000000000000000040051C +:10DFC00000A800805101080020000D14C0012007A6 +:10DFD000E0001007A8620000000000000000000040 +:10DFE000000000000000000000000000000000052C +:10DFF000C034028001300017E00A68870130100742 +:10E00000E0300C20411C2000E008A80B01F00000CB +:10E0100000000000000000000008280000000000D0 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E050000000000000000000C000000000000612E8 +:10E06000C0000000411200050000000002002C006A +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000800000503F +:10E1100000000000000000000000000004000000FB +:10E1200020000000000000000000000000000000CF +:10E1300000000000000000000000000000000000DF +:10E14000000000810640008002000C900E0080025A +:10E150000010680005040A000342000000000000EF +:10E1600000000000000000000000000000000000AF +:10E1700000000010201105500124C2000AC06400F4 +:10E180000330386CC90E008102102400C3500020F7 +:10E190000008000000000000000000000040000037 +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000241100000A +:10E1E0000010801000010020004001000108000024 +:10E1F0000010000000080000000000000000000007 +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E280000000000000000000000000000000800C02 +:10E29000800D0C00014C0000000000000000000098 +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000009F07000080E100400007 +:10E2D00000000007AA0202C42080C000E060000025 +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000C000103808C0017886044B +:10E3000090B81C030110060003480047E04087084E +:10E31000003C00170070000000000000000000003A +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000004B9 +:10E3600000080000C00000180302004000784802C6 +:10E37000000000000070000000000000000000002D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000005200001000110000000000000C5 +:10E42000000000000000000050000000000000009C +:10E4300000000000000000000000000000000000DC +:10E44000000000000000000000000000000C1200AE +:10E45000FA0226000001801AA07080E02901008ADB +:10E46000D27E00000000000000000000000000005C +:10E4700000000000000000000000000410021480F2 +:10E48000037060041400100FD51400055030BC0850 +:10E49000D64502031049AD0709F80000000000004E +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E0000000400F00802C14001208232068000058 +:10E4F00004900000F00000C0D17400000000000093 +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E570000000000000040001400000000400000052 +:10E580000000020002040000300100000000000052 +:10E59000000000000000000000000000000000007B +:10E5A0000000001000000000000000000400000057 +:10E5B000000000000000000000000000000000005B +:10E5C00000000000000002008000000000000000C9 +:10E5D000010080200041000222800020441200003F +:10E5E00001000024810220000000012041020120DE +:10E5F0000020000000022020000000202000042154 +:10E600000000202201010802004C30424400148026 +:10E610003120200021144010040010000414004098 +:10E6200000000000000800000000000000040008D6 +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000200000000020000000005A +:10E680000004400040040000000000000000000002 +:10E690000000000000000000000000000000040076 +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E7000000000000000000000000000030000000D9 +:10E7100000000000000000000000000C00004000AD +:10E7200000060000000000000000000000000000E3 +:10E7300000007000050000700000000000000000F4 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E760007020000000000000000000000000000019 +:10E770000000000000000000000000000000000099 +:10E780000000000E000000080000040900041E0242 +:10E7900000000E6220020000002040006000000027 +:10E7A00000000900000000000D00A00E00000000A5 +:10E7B00000000C0C00000000000000000000000041 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000C0000600000000050000000000000004C +:10E8100009000000000000000D00000000000000E2 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000020002000000000000000008000884 +:10E880001000000008000000000008000808000058 +:10E89000300800000000000000000000000000013F +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000008000000000000000000000050 +:10E8C0000000000000000000005E000000000C0ED0 +:10E8D0003000000000000000080030100E1C000096 +:10E8E00034200020300C000008000034180800001C +:10E8F00000000C203808080000000000000830006C +:10E90000000000303000003800000E1D08080E0C1A +:10E910000004200C380000200420300028003000C3 +:10E9200004000000080400300000000000000000A7 +:10E93000000000000008010000000000000082004C +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E98000000000200100000000081000100C000032 +:10E990000000000000000000000000000000000077 +:10E9A000000000000000080000000000000000005F +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000002000000000000000C6 +:10EA30000000000000200000000040200000000056 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000400056 +:10EA80000000400000000000000000000000000046 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000081008000000064 +:10EBB0000000000000000000000000000000200035 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000010000000000000000000000000E3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000100000C3 +:10ED400000000010000000000000000000000000B3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000001000000000000000000000000083 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000002043 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000010000000000003 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE800000007BFFEFBF000000000000000000005A +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000FAFF39 +:10EEE0007F33FFFF77FF00FE77075F13770705008B +:10EEF00001000800DFFF0100010001000100F1F046 +:10EF0000ABAAFFFFFEFFF101FFFFBFAF3000000023 +:10EF1000000000000000FFFFFFFFFFFFFFFFFFFFFB +:10EF2000FFFFFFFFFFFF00000000000000000000E7 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF800000000000000000000000BBBBFFAA000062 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC00000000000000000000C0000000000000035 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F0000000000000000090241E000000000000002E +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F06000000000201E0000000C0000201E00902464 +:10F070001E0000000C0000201E0000000C0000001C +:10F080000C0090241E0000000C0090040C00902442 +:10F090001E00000000000000000068408002684080 +:10F0A000800268408002684080020000000000008A +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F10000000000000000000000000000000090244B +:10F110001E000000000000000000000000000000D1 +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F140000000000000000000000000800C00000033 +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000902412004F8060B94F80F2 +:10F1A00060B94F8060B10000000000000000000066 +:10F1B000000000000000000000000000000000004F +:10F1C00000000000000000000000900400000000AB +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000090241200902412009024120000209D +:10F200001200900400000000000090241200000092 +:10F21000000000000000000000000000000090243A +:10F2200012000000000000000000000000000000CC +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F2900000009024120000000000000000000000A8 +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C00000000000000000000000000000000040FE +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000EFDFEFDFFFBF93 +:10F32000FFFBFFDFEFFF7FFF55FF00000000000045 +:10F3300000000000000000000000000000000000CD +:10F340000000000000000000000000000000D0E00D +:10F35000FFFF0000000000000000000000000000AF +:10F3600000000000000000000000BBFFFF015FFF85 +:10F37000EFFF1100FEFF77075F133F155F1377075D +:10F380003F150100FFDD5F130100010001005F1365 +:10F390003F1500000000FFFFAA0000000000000071 +:10F3A00000007323BF1000000000000000000000F8 +:10F3B0000000FFFFFFFF0000000000000000000051 +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F410000000000000003300BBBB00000000000043 +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F4900000008000000200000000000000000000EA +:10F4A0000402000000000000000000000000000056 +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000100001000000000000000000000001B +:10F4E000000000000000000000000000000000001C +:10F4F00000004020008000000001C0209083000038 +:10F500000403800014010100040300001000002423 +:10F5100000014020104180090000C02000000000D0 +:10F5200000000000000000000402C0200082000073 +:10F530000000C02000820000000000000000000069 +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F5900000000000000000000001800010050000D5 +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F610000000800000000001002000000000000049 +:10F6200000000100000000001000000000000000C9 +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000004000800000000000000000000000EA +:10F66000000000000000000000000000000000009A +:10F6700000000020000000000040C02080000001C9 +:10F680000060C110800000011020430080000000D5 +:10F690001000402080000000004080200000000199 +:10F6A00000600000000000000000010000000001F8 +:10F6B00010E200000000000100E200000000000075 +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000C00080000001A8 +:10F7200000200000000000000000000000000000B9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000003000300000063 +:10F7A000000000000000002384830180C5030000E6 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000130000000016 +:10F7E0000000000000000000000000000000000019 +:10F7F000000000000000004000200300542240C828 +:10F8000000C2835002EA00C380C08013C9C304CD84 +:10F810000013C805C8C001C813C0804080C00000E4 +:10F820000040C00000C00000000000000000000018 +:10F830000000C40300000000008000000000000081 +:10F84000C000000000C00000000000000000000038 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A00080C0000000C80000000000000000000050 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000800880DF +:10F92000080000000000000000000000002104208A +:10F9300004010000000000000000000000000000C2 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000200000020164 +:10F98000000001000090884003000021802080409A +:10F9900040030000000000000020400000408020E4 +:10F9A00080040400004010C00004000000000000BB +:10F9B0000000000000100001000010000004000022 +:10F9C00000000000010000000040000000000000F6 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA20000000000080100100000000000000000045 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA00084000000003000000000000000000C6036 +:10FAB0000002000910000140008030070000000033 +:10FAC0000000000000000000000000000000000036 +:10FAD00000000000000000000000000000000080A6 +:10FAE0000100000000000000000000000000000015 +:10FAF00000000000000000000000000000000242C2 +:10FB000000310004F2104064F6403047E2F04C80CF +:10FB100081300860E212406850000C80EB623E00C9 +:10FB2000002800C4E170001380500C000030000079 +:10FB3000000000000000960FF00112C60138400FCF +:10FB4000F40012C0013800000000000000000000B6 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA00000000000000000C0F7000000000000009E +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000E00000000010000000000000E4 +:10FC300000000C0008108004A00000200B389C0479 +:10FC40004002000000000000000000000000000072 +:10FC500000000000000000000000000000000000A4 +:10FC60000000004000000000100000000000000044 +:10FC70000000000000000000000000000000000084 +:10FC80000000603080B04000508030170000140049 +:10FC9000514801C725AC000E20C02087802C885415 +:10FCA000C090088505008C08110800000000004085 +:10FCB000006800000000000000000004803C6806AE +:10FCC00004000005C0302800000000000000000013 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD2000000000000000000000000000E0000000F3 +:10FD3000006400000000000000000000000000005F +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000800038000046000055 +:10FDB00000000000000062000A004001080004404A +:10FDC00000000200400000000000000000000000F1 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE0000000000000000A488004040810400804001 +:10FE1000002C102022001001A081080060080D00B5 +:10FE200051220A0162082031011902213010000418 +:10FE3000000008200040000000000000000003084F +:10FE40008000205800440000004405200008000005 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000A800000000000000000000000000000B8 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF2000000000000000000000000000C00D000004 +:10FF3000008000000000000000001080034000006E +:10FF4000E00016000078000710000000000000002C +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000800000089 +:10FF7000D0000000000000000000000000000000B1 +:10FF8000000000000000000000000E08030000C197 +:10FF900021080618120100274810AFC807900C1757 +:10FFA000C17886088A3CA0C6C01801D485110AB65B +:10FFB00011000000908100C0013C00000000000022 +:10FFC0000000180C803911C40178001C803B08E047 +:10FFD00003F400000000000000000000000000002A +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040001F9 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:100030000000000003900000000800000000000025 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0007000000000000000000000000000004090 +:1000C00000380000D0022240002A920F40000000B9 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000008090 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000024CB +:10011000006800C0D94001650000960F20BA0EC4E7 +:10012000111042344516065490103C8027160E805C +:1001300001020DA6C340000F10000100183000009E +:100140000000000000000003600208A50370000327 +:1001500060001C8003700000000000000000000030 +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B00000000000000000C001100000F07000000E +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000001002030203021FC +:100240001000004000202000000100021000000407 +:100250000040000000000010000200001400140024 +:1002600000200008000840002000200000000000DE +:10027000002000000000000000000000000000005E +:1002800000200000000000000000000000400040CE +:10029000002000400000800000022A205020203072 +:1002A00030420A202420202C44482000202400280A +:1002B0004020010002000000442040140000000023 +:1002C00000000000000000000000004000000000EE +:1002D00000040000000000000014400010001000A6 +:1002E00040000000000000000000000000000000CE +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:10034000000000001000000000000000000000009D +:100350000040000000000000000000000400000059 +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000300030000070000000000000000000005D +:1003D000300070005070000000000020000000009D +:1003E000000000000000000000000000000E0000FF +:1003F000000000000000000000000000000E0000EF +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:100420002000001000BA0000000009040D040800BC +:100430000D000DA4050A004000000000700000003F +:1004400000000000000000A0000000A0000000006C +:10045000000000000000000E00700C000000000012 +:100460000000000C0000090000000000090000006E +:100470000000000C0000000D000000000000005013 +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000D00002F +:1004C000000000000850000000000000000D0000C7 +:1004D000000000000070000000000000000E00009E +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000E00AD +:10054000000C000000000028000000100000000067 +:100550000E0C000C0000000800300000000000003D +:10056000000C00000000000000300000000010003F +:10057000200020000000000000300000000000000B +:10058000000000000000000000300000000000003B +:100590000000000000300010003000000000100ECD +:1005A000000C00002030000000280420242000203F +:1005B0000820310000040010000008000C000000BA +:1005C00038103000000000000000000000000000B3 +:1005D00000000030000000000008000000000100E2 +:1005E00000081000000000013000000000000000C2 +:1005F00000000000000000010000000000000000FA +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000B000000000000009F +:10065000000000000000000000300000000000006A +:100660000000000008000000000000000000000082 +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000002000000000C9 +:1007100000000000000000000000000000000000D9 +:1007200000000020000000000000000000000000A9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000002000000000000000000000000079 +:100760000000002000000000000000000000000069 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000008000000080000000002000000028 +:1008B0000000000000000000000000000000000038 +:1008C00000000000000000000000800000000000A8 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000C0000000000000000000000000000007B +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000010000000000000000000000000C6 +:100A200000000000000000000000000000000000C6 +:100A30002000000000000000000000000000000096 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000100000000086 +:100A60000000000000000000000000100000000076 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000080000004000000000000000000000082 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B40000000000000000000000000000000FBBFEB +:100B5000FDDF00000000EFBFFDF7FDF7FDF7FFBE72 +:100B6000FDF7EFDFFBF7FFF67DFFFFBE7DFFFFBE6A +:100B70007BFF0000000000000000000000000000FB +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000005003704FF778F +:100BB000FFDD77073F153F157707110001000101A1 +:100BC000AB003F155F133300010000000000000080 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C9000000000000C000000000000000000000048 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD000000090241E000000000090241E009024BC +:100CE0001E0090241E0090241E0090241E009024BC +:100CF0001E0090241E000000000000000000000004 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D2000000000000000000000000000000048007B +:100D30001C2000000C0090241E0090241E000000C7 +:100D40000C0000000C0090241E0000000C000000AD +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000800000000000000CA +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000488060A94F8060B94F8060B94F8022 +:100E600060B94F8060B94F8060B94F8060B94F80E2 +:100E700060B94F8060B94F8060B94F8060B00000AA +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB00000009024120090241200000000009024F2 +:100EC0001200000000009024120000000000902496 +:100ED000120090241200000000000000000000003A +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD000000000000000FF00555533330F0FFF00E5 +:100FE00055550F0F5555FF00555555550F0F0F0F00 +:100FF000FF003333FF00FF00333355550F0F3333FA +:10100000F0F0FFFFFFFF0000000000000000000004 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:101030000000000000005F13F75577075F13FFFF04 +:1010400001003F155F13010005053F153F15010025 +:10105000010077075F133F157707000000000000CD +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000080000F +:101160000000000000008000000200000000C0201D +:10117000000000000000C020008200000000C0202D +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B00000000000000000000000000004034020C8 +:1011C0009C0100000001C02010010000000100008F +:1011D0001000000000014020108100000402000007 +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000080008E +:1012E000000000010020800000000001002080209C +:1012F00000000001006080200000000100608020EC +:10130000000000010060000000000000000000007C +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:10133000000000000000000000000000000041204C +:10134000800000001040C0208000000100604000CC +:1013500080000000000040208000000000400100EC +:10136000000000001000000000000000000000006D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:101460000000000000000400C0C0000000080000F0 +:10147000C0E00000030000C0C240C0C744C000007C +:1014800000400062E0C0C02000C00000000000C0BA +:101490000008000000000000000000000000000044 +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000C003418043C885008010C04793DE +:1014D000030300C90108C80080C1C88047C0449305 +:1014E000E081C4E3C0C00000C4C0000000000000F0 +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E000000000000000004000000040101000401B +:1015F0000000804010100040200001111420141041 +:10160000400401000020012000041000011000022D +:10161000000000400000000000000000000000008A +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000002004218021200400028E +:1016500000040802214800014000001080410002FF +:10166000204000040003000280200000000200006F +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:10176000000000000000000000000000F0840C00F9 +:10177000A0900000F0000000004440058004140028 +:10178000424040088000520009E8000FF400604029 +:10179000E8F8000000000006000000000000000063 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C000000000000000000000000E00842C706982 +:1017D000E260000FF2002D94E34A9214F0002CA175 +:1017E000431153CD05001CE8390520000002000418 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000001000E8 +:1018F00000390D0000B1100000010000F040100799 +:1019000000010240004800A001011087016010089A +:101910000000000000000000000040000000000087 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000002275 +:1019500008001004E0E440042010100041140004CA +:101960008010000021750E40200030880110120008 +:1019700000088004000000000000000000000000DB +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A700000000000200002000000000080060000BE +:101A800000240004200000A0829810608020808044 +:101A900000802000002400002000800000080000DA +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD000000015140820000428003000242904E028 +:101AE00020040001112A00E0000200282E00080056 +:101AF00004200100000000020000000000000000BF +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF000000000000000000018002000006000004D +:101C0000603000000868401010080C80F1708005FA +:101C1000800120C000700003600800C0C5040000FF +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C500000000000000018D403000ECC498646B2F4 +:101C6000280200C0E16141C417142CA7E108230435 +:101C700022BCAC90E50D12000080000700000000BF +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D7000000000000000000000000080108030071C +:101D800000E800000000000740600000108040876D +:101D90000530000750283CC00A78400BE40800C01A +:101DA000037A0200000000000000000000000000B4 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD000000000000000000000004C40000001C0B6 +:101DE0004B0000822002148F0B3902C00128BC9ED8 +:101DF000D3120E8400302C8FC1100200000800277F +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000200000000000000040000CB +:101F10004010000000800000002800400004000085 +:101F20000000004000200000000000000000000051 +:101F30000000000000000020000000000000000081 +:101F40000000000000000000002000000000000071 +:101F500000020000000000000000400000000040FF +:101F600000004000200440203000002024205400C5 +:101F700024202020000004001020004004841010C1 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:10208000000000000002000000000000000000004E +:10209000000006060000000000000000000400B080 +:1020A00000B0000000000000000000000000000080 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000AF6 +:1020E00000000006000002020000000010B0000224 +:1020F000090900400000000000000656200000060C +:10210000006A1D000D000000000E0C0000000E0013 +:102110000000A0000000000000000000000000001F +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:1021400000000000000000000000000D0000000082 +:10215000000000B0000000000000000000000000CF +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:102190000009000000000000000000000000000036 +:1021A00000005000000000000000000000000000DF +:1021B0000000000000000000000000B0000000006F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:102210000000000000080000000000000030000086 +:102220000020003000080000000000000030000026 +:10223000000000000000000000000000000000108E +:10224000000000000000000000000000000000008E +:102250000010000000000000000C00000000000062 +:10226000000010000000000000000000000030200E +:1022700000000020280024000420302000000C0072 +:1022800000200000083800000000000000000100ED +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000A00A3 +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A0000000000000000008000000000000000024 +:1024B000000000000000000000000000000000809C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000020004B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000100000000A9 +:10263000000000000000000000000000000000009A +:10264000000000300000000000000000000000005A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000002000000000000000000000000000BA +:1027000000000000000020000000000000000000A9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D10000000FFFF33000000000000000000000082 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A0000000080000000000000000000000000017 +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000010000000000000000001B +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:103620000000000000000000000006000000000094 +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000010018 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000020000000000000000000000000085 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000002000000074 +:103C300080400000000000000000002000000000A4 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB000000000000000000009000000090E0000E3 +:103DC000000000000000000E0000000000000000E5 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000020000000103000000000000021 +:103F40000000002000000000000000000000000051 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00040000000000000000000000000000000BD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E0000000000000000000000040000000000078 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000D00000000000000000000000000000009 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF0000000100000000000000000000000000095 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000002000000000070 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000800E9 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000600000000000000000000F1 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F90000000DFDF001B0FFF0F33000000000000B8 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:1081100000000000000048001C2000000C000000CF +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:1081400000000000000000800000000000000000AF +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:108290000000000000000000000000000000482076 +:1082A000122000000000000000000000000000009C +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000077FF00530000000000000000000083 +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A000000000000001402090400000000000009A +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000004020800000000040000029 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000008182448200FF +:1088B0004400000000000000000000000000000074 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000541 +:108A3000842084000000000000000000000000000E +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB0000000008001041C80231000000000000061 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000083010010400C00000053 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB0000000000000000000000000518D020A8048 +:108EC0004002000000000000000000000000000060 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000001C14 +:1090400000801000E284000000000000000000002A +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C0000000004301306C0020020000000000009D +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:109330000000000000000000000000000000040029 +:109340000000000004000001000000040000000014 +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E0000000000000000000000000A000000000DC +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:109640000000000006000000000000000000000C08 +:109650000000000400000000000000000000000006 +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:1099200000000000000000000000000000000040F7 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C5000000000000000DDDD0100AB007F0F3313CA +:109C60005713ABAF1303000000000000000000001A +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000C00000077 +:109DE0000C0000201E0000201E00000000000000EB +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E100000000080000000000000000000000000C2 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F500000000000000000000000000000000020E1 +:109F600012000000000000201200000000000000AD +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E000000031FF550103001FFF7F3F57000BFFAA +:10A0F000030300000000000000000000000000005A +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000402000028000000C0 +:10A270000402C0200CE40000000000000000000008 +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000100000000006C +:10A3F000000081200000000110400000000000006B +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000023C8 +:10A570000002C4E0A0000062C700C400C4C0000024 +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F00000000000009000200008022004C00000BC +:10A700000020000000000000000000000000000029 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000008852172000E21390688C2 +:10A880006530CE8F2A150000000000000000000097 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F000000000000000000000001C8561081CE849 +:10AA000041142000C8820CC623380000000000005A +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB70000000000000000000000000000000109431 +:10AB80004401900021008550000200008000000078 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD000000007C008603A20002380898010000873A +:10AD100013780000000000000000000000000000A8 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000010000003 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE8000000000000000004002141C87F31400A022 +:10AE9000F13480070890000000000000000000006E +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B00000000000000010000000000000020000002E +:10B01000000000010000000000000000000000002F +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B0400000000000006000000000000000000000A0 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B18000000000000000000000300000000000008F +:10B19000000200000000007000005050010E00008E +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000008000000000000000000F +:10B1C000000000000000000000400000000000003F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F0000000000000000000000000000A00000044 +:10B30000000000000000000000000000000000003D +:10B3100000000000040000000060000C00000000BD +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000080000000000000000000001C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000001000000000000000000000000000005C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B600000000080000000000000000000000000032 +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000100000000000000A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B650000000000000C0000000000000000000002A +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000004000000000000000000B5 +:10B790000000000000000000000000000000100099 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000100000000000000001000053 +:10CCD0000400040100000400000000000000000047 +:10CCE000000400040000000000000000000000003C +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000030000000000000B2 +:10CE50000000000000000000001000B00000000012 +:10CE600000000000000000011000000000000000B1 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000A00000067 +:10CFC0000000000000000000000000000000000061 +:10CFD00000000000000C00000000000800800C00B1 +:10CFE00000000000000000000004000880000000B5 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000020000000000000000000000BD +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000010400000082 +:10E990000000000000000001000000000000005026 +:10E9A0000001000000000000000200040000000060 +:10E9B0000102000000000000000000000000000054 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB2000100000100000000E00000000B0500000B7 +:10EB3000000A0070090A0000000000000000000048 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000808000A000006000000000078DC +:10ECA0000000007080000010060C00000000000052 +:10ECB00050080008000000000808000000000000E4 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED7000000000000008000000000000000000008B +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000200000000000010 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000FFFFFFFFFFFFFFFFFFFF68 +:10F2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10F2C000FFFFFFFFFFFFFFFFFFFF00000000000048 +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F42000000000000000000000006840800268400A +:10F430008002684080026840800268408002684024 +:10F440008002684080026840800280240E00000034 +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000008000000000000000000C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B00000000000000000000000802402000000A5 +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000080000000008B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F73000000000000000FFFFFFFF00000000FFFFCF +:10F74000FFFF000000000000000000000000FFFFBD +:10F75000FFFF0000000000000000000000000000AB +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000008000000000000000C020E8 +:10F8C000008402000402C020080400000000C020E0 +:10F8D000000280080000C02000400000000000007E +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000100220000A3 +:10FA40000000000100E211000000000110E20000CF +:10FA50000000000100E280000000000100E0000062 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000010044 +:10FBC0000000000500C00000C30000C300C0C42343 +:10FBD000C00300050000000000000000C0C30000DA +:10FBE000C000000000000000000000000000000055 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD4000000020000000000000400000030000212F +:10FD500000200800800100000000000000000008F2 +:10FD60001248010001000000000000000000000037 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC00000000000280100000000000FF0084A8038 +:10FED0000664000220721C000260000FF000018026 +:10FEE0000230000F000000C0010000000000000010 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040002F8 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:100040000000000000000000E00010000048000771 +:10005000E040109001300012803A0CB00134000AE8 +:1000600060010E9001B0000F00001EA00100000012 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C00000000000000000000000000000003000FF +:1001D0000041001080030010000200189006180073 +:1001E0000002000000000020008900280004300008 +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000800110000060C0000028008003304000D1 +:10036000E000009005300012C06E02C00460000082 +:1003700000080E80010000000000000000000000E6 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D00000000000680000000044000500800000EB +:1004E00001B8000410500000027C800554381CC084 +:1004F00003400000000008C00900000000000000E8 +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000001000004000000A5 +:100650000000000000008000000000410041010097 +:1006600000400241000481028400240004040108C7 +:1006700000400000102A00000004000000040000F8 +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D00000000000000000000000000000007000A9 +:1007E00000000000000090700010B0000000000940 +:1007F000900090089000000000049010000000009D +:100800007000000000000000000000000000000078 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000600000000D1 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000008000008000000000000000000300057 +:10096000000A001C00180850001054180E883000AF +:1009700018002C000C5C080000100000000C008027 +:1009800000080000000C0000000000000000000053 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000200000000000000020000000000F2 +:100B000000000000000000040000000000000000E1 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C7000000000000000080000000001000000006B +:100C80000020000000000000000000000000000044 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000002000000000000000000008BA +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F6000000000000000FFFFFFFFFFFFFFFFFFFF8B +:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF66F0A +:100F90007FFFDE7BFFDFFFFFFFFFFFFFFFFFFFFFA6 +:100FA000FFFFFFFFFFFF00000000FFFFFFFF00004B +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E000000000000000000000006840800268402E +:1010F0008002684080026840800268408002684048 +:101100008002684080026840800268408002684037 +:10111000800200000C0000000C0068408002684063 +:101120008002684080026840800200000000684041 +:10113000800200000000000000000000000000002D +:10114000000000800000000000000000000000001F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:1012700000000000000048800020408000200000A6 +:10128000000090241200002012000000000048809E +:101290000020408000200000000000000000488086 +:1012A00000204080002080040000902412000000F4 +:1012B000000000000000000000000000000000002E +:1012C000000000000000008000000000000000009E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000271B9F061B27C4 +:101400000F0F000000006666870F00809933000010 +:1014100000009F06D7149F060F0FF66F7FFFFF7F18 +:10142000FFEA47473F0CF505FF00FFFFFFFF55A50B +:101430000F87000000000000000000000000000016 +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:1015700000000000000000000000C02000D40000B7 +:101580000000C02000C070000001C0201004020054 +:101590000402C020082000000000C02000800000DD +:1015A00000000000000000000000C0200084530084 +:1015B0000403C0209C950000000080000002000091 +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000001E9 +:1017000000A200000000000100E240008000000193 +:1017100000E211000000000110C200000000000102 +:1017200000E20000000000000000000000000001D6 +:1017300000AA51008000000110A20000000000017A +:101740000006000000000000000000000000000093 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:1018800000000005000000000000000000000093C0 +:10189000C880C901DB1303D0030B008303100000D1 +:1018A000000000000000002008A001000105000069 +:1018B00000000000A00000C113C11301CB01000013 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A10000000000404024001000002200480008451 +:101A20000200000000000000000000000004200090 +:101A30003000000000000000000008030003000167 +:101A40004001000000000000000000000000000055 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B8000000000000000000410502D0000001EC4E2 +:101B900017302C0AE405000224281080023846037E +:101BA0006C800C800130868FF08D1140E008B017FA +:101BB00008710086F1B04087743080460AC800E79B +:101BC00079002C000882000080110D000048000000 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000C00230080C309D +:101D10000114C8047074108CE1390014E3023E50C1 +:101D200004402007E0282A070400260480088D0EBE +:101D300040038CC3610002A9E3B20207E374008F81 +:101D40001130008B630128000280000020000E008B +:101D50000030000000000000000000000000000053 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90003040001000070220020286800000001877 +:101EA00084140050804449290012000801E00CC845 +:101EB00080204020061880088000C00006900204A0 +:101EC00045801950000400830008000090040000C1 +:101ED00000102400000800000000000000000000C6 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:10201000000080071000015000409607F028800F54 +:10202000F0080007EA380080C1380005E01200041B +:102030000038000220304026C1140EE7E1000026DF +:1020400041302D0220688D44C0480005D6140DD0C3 +:10205000C560000030800C0000700000000000002F +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:1021900000000000000080077000008002600D4514 +:1021A000508C004E0444801410010A80D26206054F +:1021B0005002805E0840A0041013208A02404104AF +:1021C00074000A1451108C0C9009108001328005A3 +:1021D00014700180237A000010010000007C0000D0 +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C00000000000000000000000000000000040CE +:1022D00000000040000000020000000000000000BC +:1022E00000020000000200000000000000000000EA +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000040800000010000804000400000FC +:102320008041080202408000040220045202285C1E +:102330002010415C08202A5101242202002822207A +:102340000C21302002042202400024001200000070 +:102350000200101200003042202001000000002086 +:10236000010000000000000000100000000000005C +:10237000002000000000000000000000000000003D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:1024600000000000000000000000000090000000DC +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A0000000000000000C0000B0000D0000000063 +:1024B000106E940C501D003C940000000D790C002F +:1024C0009C0C09000C50280D90409000405D9050ED +:1024D00020000010001010000000300000600040DC +:1024E000000000000010B00000000000A01000007C +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D0000000000000000010000000100000000CCF +:1025E00000000000000000000E08000000080000CD +:1025F00000000000000000000000000000000002D9 +:1026000000000000000000000000000000000000CA +:102610000002000000000202000000101A00000C7E +:102620000200301000200A80101C0A0008101A0056 +:1026300000CD0000000C20002A0A28300A300418BF +:102640005C04050001003430041C31300004340CFB +:10265000005030000C0000D00C8000000000300062 +:1026600010200C0E00000020088000000000000078 +:10267000000E0080000000000010000000000000BC +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A00000000000003000000000000000000000F9 +:1027B00000000000000002000000000000002000F7 +:1027C0004000000040000000300000000040000019 +:1027D00000000000002000000000000000000000D9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:10292000000000000000000000800800000000001F +:102930000000000000000020000000000000000077 +:102940000000800000000001204000004000002046 +:102950000020000100000000812104000000002090 +:102960000000000000000000002000000000000047 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000040022 +:102AB00000000000000000000000002000000000F6 +:102AC00000000000000000000000000000200000E6 +:102AD000804010200008009004040000043004002E +:102AE0000000002000100000000000000020000096 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE0000000DFFF0F0B5540FF885F13FFFFFFF76B +:102BF000DD0DFFBFDD0D010011312727FF3F000074 +:102C00000000FFAFFF7F4040FDFF0000000000001C +:102C10000000000000000800BFFF000000000000EE +:102C20000000000000000000000000000000FFFFA6 +:102C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:102C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:102C5000FFFFFFFFFFFFFFFFFFFFDFFFFFEFFFFFB4 +:102C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:102C7000FFFF00000000FFFFFFFF0000000000005A +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D600000000000000000000C0090040C001000A7 +:102D70000C0000201E0000201E0000000C000000BF +:102D80000C000000000048000C2000000C000000B7 +:102D90000000000000000000000000000C00000027 +:102DA0000000000000000000000000000000000023 +:102DB00000006840800268408002684080026840ED +:102DC000800268408002684080026840800268405B +:102DD00080026840800268408002684080020000F3 +:102DE0000C006840800268408002684080026840B1 +:102DF00080026840800200000000684080020000FD +:102E0000000000000000000000000000000000C002 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000002012000000A0 +:102F000000000020120048000020480000200000BF +:102F100000000000000090241200000000000000EB +:102F200000000000000000000000000000000000A1 +:102F30000000000000004800002000000000000029 +:102F400000000000000000000000488000204080D9 +:102F500000209024120000000000902412000000C5 +:102F6000000000000000000000000020120000002F +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F9000000000C000000000000000000000000071 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:1030700000000000000000000000030000C07FFF0F +:10308000F35100000000FFF7AF23FFBFFFBFFFFABF +:10309000BFBFFFBF0B0000000000BF04FB0000002B +:1030A0000000000000000000000000000000000020 +:1030B00000000000000000000000F755F757FFFF78 +:1030C000FFFF00000000000000001101F3F39F0665 +:1030D000B7127B21FF0000FF0FF0CDDD01005FA0E4 +:1030E0005595EFFFDFFF00000000000000000080AA +:1030F000AA55FFFFCC33FFFFFFFF000000000000D8 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F0000000000000008000000C00000000C02063 +:10320000005600000402402000800000040200007C +:103210000C000000000000000000000000010000A1 +:10322000900100000000000000000000000000000D +:10323000000000000000000000000000000080000E +:10324000000600000000C020008400000000C02034 +:10325000000200000000C020000603000402C0209D +:1032600000CC03000402C0200CC400000000800059 +:10327000000201000402C020248C00000000C020D5 +:10328000006200000000800000020000000000005A +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000800000000001000080202C +:1033800000000001002001200000000010400100AA +:1033900000000000100000000000000000004000DD +:1033A000800000000000000000000000000000009D +:1033B000000000000000000000000000000000000D +:1033C00000000001002200000000000100E20000F7 +:1033D0000000000100C600000000000100E2110032 +:1033E0000000000110C209000000000110C600002A +:1033F0000000000100221100000000010092000006 +:103400000000000100C200000000000100060000F2 +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000100CB +:10350000C003000000000000E000034502C30322E6 +:103510000000002300C0C4030400002010000000CD +:103520000000131313130000DB010005000000006E +:10353000000000000000000000000000000000008B +:1035400000000000000000000000000000C00000BB +:10355000C0000000000000000000000500000000A6 +:103560000000C3C30BE3C503C3E3C7E3C0E3A3E0A9 +:10357000C72800000040000240000423C4000000EF +:10358000C700000000C00000C300000500000000EC +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:103670000000000000000000000000000000000842 +:103680000008200018080005000005800000042044 +:1036900004A00400000000000020008000000000E2 +:1036A0000008000000000000000000000001000011 +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000020000000000000DA +:1036D0000040000001000010040000000020000075 +:1036E000000108000000820304202001820202027F +:1036F000C04004204000000008480080010800008D +:103700000000000002000000004000000300000074 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000004003207916C00510004F25021C005F +:1038100040B0020210C101C7014C0CA20038008E5A +:103820000200488378320000F100009001785000D7 +:1038300040010000540000000040000000000000B3 +:10384000000000000000000000000000123C2C00FE +:10385000400040036C900C000000004FF0300E0060 +:10386000F0000C436BBC14270406005220A8204E25 +:10387000F99800EFF1001044EAC84008500815001C +:1038800005001E2FF00A0C400248000360001400DF +:1038900000000000843054000038000000000000E8 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000E03000C0009400A033 +:10399000001228C0E0313000003A8024013021803C +:1039A00000000C01E1020027C038000852080000A6 +:1039B0000008000020010000E00200000078000084 +:1039C00000000000000000000000000000000020D7 +:1039D000923000005035000220380D20011C4002BA +:1039E00020003050A4401205C2383183C13810186D +:1039F0000A3B14805130508483001184F13100005F +:103A000080820D0001906004820896440440800486 +:103A1000900815200394000080880D000014000019 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B00000000000000000000000000034008044026 +:103B100000000000010008200820201100000141E1 +:103B2000000000040930B0222300048C0011824000 +:103B3000004000800240080000000000000000007B +:103B40000040000000000000000000000000000035 +:103B5000000000000089300000820009801202C0CD +:103B6000000000803010005008460B19860120C567 +:103B70000480100028100252000410E89002821203 +:103B80001405000020010000014400003010100462 +:103B900000C10038004322000000000000080000BF +:103BA0000080000000000000000000000000000095 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C8000000000000000000000000000000000082C +:103C90000002002001388000E22C1D80010C101869 +:103CA000802B00070490878809008000E0000083D3 +:103CB0008F019608110800800380000010000000AA +:103CC000C00100000018000000000000000000001B +:103CD000000000000000008081091400C80A4000B4 +:103CE00000300000003040000F0C0080C13A060C8C +:103CF00080B51184E538409008160180A1382280F3 +:103D0000012C1CD700604014000201000048C18053 +:103D1000F70814140510000090801C80017000004A +:103D2000F0810000006000000000000000000000C2 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E1000000000070000140002800054D20140009E +:103E20000810020000D0162A028003870138001A09 +:103E3000F102810480844000F61000600000000060 +:103E4000F000000058020000001400000000000014 +:103E5000000000000000000000000090830034001B +:103E6000C03000030002008006B8004AA0004000F5 +:103E7000024008841108088E02600045505014006A +:103E8000F24200A41100CA870370000250000C40E7 +:103E9000083002055002408701300000101000C0B9 +:103EA0000988000060000E0000780000000000009B +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F8000000000000000000000000000000002002F +:103F900000010001000000408050000800010028DE +:103FA0000020202010102011321080200014140452 +:103FB000002202120A001431303100000002001009 +:103FC000010010000240100000101012000010004C +:103FD0000000001000220040000000000010004916 +:103FE000000000100081004000400000010100209E +:103FF0004400100C00111038040C004100345150E2 +:1040000002244802285204420241410290424222C4 +:10401000294028203029212001200002241A0202F0 +:10402000200402020021110004000400001100001D +:104030000000000000000020000000000000000060 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000001000048B +:1041200000000054000000001030B02030200000DB +:10413000A030000090000010BC1010203010B01013 +:10414000904000200000200000502000002020307F +:10415000000030000000002000000000000000000F +:104160000020000878000010000008A8000070007F +:104170000D0A000202001E6C9038081C08040C0096 +:104180000819301D06606CB6082D686606520900D5 +:1041900012426640606A00000D00994D090000005F +:1041A000400000B000000000000A3D00090000507F +:1041B000003000000000000000700000A0000000BF +:1041C00000A000000000000000000000000000004F +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000006C9 +:1041F00000000000000000000000000000000000BF +:10420000000000000000000000000000000E0000A0 +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:104290000000000000000800025C0008000A001096 +:1042A000102002000A08000A00000A100E00000890 +:1042B00038001010000C00005E3808000080000C70 +:1042C0001A08008000080E0008000ECE082000002A +:1042D0000000000C0000004E80000A0000380010B2 +:1042E000000040400040000C0B00000002380B0BA7 +:1042F00000200E000C48003030C1000C00590110A5 +:1043000001000F380B342420043420040030012C29 +:10431000040C28043000003C0C20302030080C0035 +:1043200008100008140C0C0030000408003C0C00BD +:10433000040004000A0C000000000000000000104F +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000300000000000000D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:10440000000000000000000080000000000000002C +:10441000000000000000000000000000000000009C +:104420000008000000000000000000000000000084 +:10443000000000000000002000000000000000005C +:10444000001000000000000000000000200000003C +:10445000000000000000200000000000000000003C +:104460000000000000000000300400000000000018 +:104470000030000000010000010000000200000008 +:104480000000000000000000000000010400000027 +:1044900000000200000820000D10000000040000D1 +:1044A0000034002400000000004000000040000034 +:1044B00000000000000000000040000000000000BC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F000000000000000000000000000008000003C +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000200000000B +:10459000000000000000000000000000000000001B +:1045A000000000000001000000000000000000000A +:1045B000000000010000800000000000003000004A +:1045C000000000000080000000010000000000006A +:1045D00000000000000000000000000000000000DB +:1045E0000000000000000000000030008002000019 +:1045F000000000000000000000000000000020009B +:104600000000002000000000000000080000002062 +:104610008500000000002400040180000E81840059 +:104620000001000180A00400000000000000000064 +:10463000000000000000000000000000003000004A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E0008003000000000000000000000000000047 +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000041065 +:104740000020000000000000000000300000000019 +:104750000000000010000000000000000000100039 +:104760000010000000000000000000000000200019 +:104770000000000000000000001000000000000029 +:1047800000002000000000200000000000000004E5 +:104790000000002004000000080020002400002089 +:1047A0000020040000000060402804180000000001 +:1047B00000180000000000000000000000000000E1 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F0000000000000000000000000000000FFFFBB +:1048000099DC000000000000000000000000000033 +:104810000000000000000000000000000000000098 +:1048200000000000000000000000FF7FFD0D000000 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000AAFFAF +:10486000EEFF00000000000000000000000000005B +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A000000000000000FFFF0100CF8A45CFFFDFBE +:1048B000135F1111CFFF3F3FAF8CCCECF351FF7F63 +:1048C0005575FFFDFFFB0100515501005755FFBB1A +:1048D000DFFFFBFF33138F0F0100FFDF3FFF0000FF +:1048E00000001D551D551B33DF02DF022F0D000098 +:1048F0000000000000000000000000000000FFFFBA +:10490000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10491000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10492000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10493000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10494000FFFFFFFFFFFF000000000000000000006D +:10495000000000000000000008000000000000004F +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:10498000000048000C2000000000000000000000B3 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B0000C000000000000000000000000000000EB +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E000000000000C0000000000000000000000BB +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000C009024C6 +:104A30001E0000201E0000000C0000201E000020B0 +:104A40001E0000000C0000000C0000201E000000F2 +:104A50000C0000000C0000000C0000000C004800DE +:104A60000C200000000090241E0090241E009024C2 +:104A70001E00000000000000000000000000000018 +:104A80000000684080026840800268408002684000 +:104A9000800268408002684080026840800268406E +:104AA000800268408002684080026840800268405E +:104AB000800268408002684080026840800268404E +:104AC0008002684080026840800200000000000010 +:104AD0000000000000000000000000C00000000016 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B3000000000000000902412009004000000001B +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB0000000900400000020120000201200902449 +:104BC00012009024120048000020000000000000A5 +:104BD0000000000000000000000048000020480025 +:104BE00000200000000000000000000000000000A5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000004880DC +:104C10000020408000204880002040800020488004 +:104C20000020408000204880002040800020902408 +:104C300002000000000000000000000000004880AA +:104C40000020408000200000000000000000000064 +:104C5000000000000000000000000000000000C094 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000ECFCF9F9F7F82B +:104CC00011000000000000000000000000000000D3 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D3000000000000000DDD005003FBF153F51001E +:104D4000153F0DDDF5C44755F5F5135F0F08C0009D +:104D50003B005FFF0100FFDF0100FFDFDF00FF5FBF +:104D6000FF7FFF7F7F7FF7FFBFBF000000000010C5 +:104D7000FFFD000000000000000000000000000037 +:104D80000000000000000000000000000000000023 +:104D900000009F066F099F06FF00B7126F09D71426 +:104DA0000F0F6F097B219F060F0F6F09B7127B2131 +:104DB0000F0F0FF0FFFF00000000000000000000D8 +:104DC00000001D1DDD114747FF00FFFFFFFF000032 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000320040 +:104E400004030000980000000000000000000000C3 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000001800090000000E1 +:104EC000040340209C4100000403C02010C40000E3 +:104ED0000000000000000000000040200040000032 +:104EE00000000000000000000000000000000000C2 +:104EF00000008000000400000000C020004400000A +:104F000000000000000000000000000000000000A1 +:104F10000000C02000D400000000C02000C000003D +:104F20000000C02000C600000000C02000460000B5 +:104F30000000C020008601000402C0200CC0000058 +:104F40000000C020002400000000C0200004000079 +:104F50000000C02000C000000000000000000000B1 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC0000000510080000000100000000000000000 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:1050300000000000000000000000C000800000012F +:1050400000204120800000001040C12080000001AD +:1050500010600000000000000000002000000000C0 +:105060000040000000000000000000000000000000 +:1050700000008000000000010020802000000001EE +:1050800000600000000000000000000000000000C0 +:10509000000000000000000100A20000000000016C +:1050A00000B200000000000100B20000000000019A +:1050B00000E200000000000100E211000008000111 +:1050C00010E200000000000100C20000000000012A +:1050D00000E200000000000100E20000000000000B +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000046B +:1051400000000000A00000EB00D30300C40000003A +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000200000000002D +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B000000000000000000000000000000000C827 +:1051C00000001300C00300C0032346C280800262B7 +:1051D000C6C082CAD7C2000000000000A000440080 +:1051E000440022620040400220050200030000004B +:1051F000000008000000030003C30300C003E30332 +:10520000472200220007000000000000000000000C +:10521000000000000000000000000000000000008E +:105220000000000001000000000000050000010077 +:105230000000000000000000000000000000C4E3C7 +:10524000C303C3C3C7C30000000000000005000083 +:1052500000000000A0000000A0000000C00000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C0000000000000000000000000000402400098 +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000200AC +:105300000800000000000000000000000000000095 +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000020018012080040020004A0BC +:10535000800203200282848000A000000000200858 +:1053600000000000000002208020018004000200F4 +:105370000208800180000000000009C009180880B0 +:105380001008200808400200004000000000000053 +:10539000000000000000000000000000000000000D +:1053A00000000000000008002000080000000000CD +:1053B00000002000000000000000000000000000CD +:1053C000000008208401C003042100000000000048 +:1053D00000000000000000000000080000000000C5 +:1053E00001000000000000000000000000000000BC +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000040004C +:1054200000301640020000000000000000000000F4 +:10543000000000000000000000000000000000006C +:105440000000000000000000100000000038000014 +:105450000000000400000000000000000000000048 +:10546000000000000000000000000000000000003C +:105470000000000000000000000000000000000329 +:10548000000000000100000000000000000000001B +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C000000000000000400078071C00E210080304 +:1054D00080700D84F3314180858030D0C1402CA490 +:1054E00011041589F63A0C2F2A790C04E0711FA7D4 +:1054F000793C0024417006C85180CA8FFB78005067 +:1055000061014000F0300003600000C0013800007D +:105510000000000000000000000000000000000289 +:1055200020C80E800160574774302C2E04044C8232 +:1055300024380D9809B0664415B414083AC20C44D6 +:1055400015100FAA1132000000300EC00138800F74 +:10555000F0092C800130200FF07294C00138800FC8 +:10556000F03510C00138000000000000000000000D +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A000000000000080000000000000000000007B +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000020100000AB +:1055D0000014100000004004400200000000000021 +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:105600000000000300000010000000000000000087 +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000007803800009B +:1056500050F4C6050B00110CA5400604E0103C24D4 +:1056600009E44712682A1283C160610062285D263E +:1056700043190E0768305046E2775000003808C1E1 +:10568000A16000802300100020384013600200C099 +:1056900004300000000000000000000000000000D6 +:1056A00000004013603A0C3001148C07FB740C8B23 +:1056B000A13A1617E07E0C13D1100057E03248844F +:1056C00001304643E05450D3C060100B608120C7C6 +:1056D00001700004808010000390080B63311427D0 +:1056E000F004000480001080013000000000000081 +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000020000000400000000019 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:10575000C0410000000020000F0000080000000011 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000014000000000200000003 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000020B9 +:1057D0002700084031001500040A808000520400B0 +:1057E000833081401800080810400098120C000017 +:1057F00008440218020D001130C0306014240180EA +:10580000482400900C080000C9100000080800207F +:105810001000004000C00000000000000000000078 +:10582000000000000000000030001000001200081E +:10583000842010C000003800030448092406C0007A +:1058400000A08E040121140CE2040020000A0004D0 +:105850006008806000880028800210200008200076 +:10586000260018000001002800061820000800008B +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A0000000000000000000000000040080000074 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000800000000068100000000006CA +:1058E000C0000000000000000000000000000000F8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000100000000000000000000000000000086 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:1059500000000007000C0C00403888088B00DC2693 +:1059600040004F00000D15071008086880019100E5 +:10597000000802081A10C0000072230864B2140F55 +:1059800045680318C2099C88E3E100000B2C000065 +:10599000C0840014000000000108000000000000A6 +:1059A00000000000000000000000C000102C00708B +:1059B00000440005C0300023A11C0C05207800061F +:1059C000A000020DC8094036C116430480A8002378 +:1059D000C1164000000001C004680004808000C0BF +:1059E00000605815C07E2E57F04000058092008060 +:1059F00001000000000000000000000000000000A6 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A300000003C000000000000000000000000002A +:105A40000000000000000000000000000000000056 +:105A5000000000000000000024000A000014000004 +:105A600000000027D002000000000000000000003D +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000005000000000000000000000001 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000409000010002E11214EC +:105AE000000C40C6D332204D61001427E1902043C2 +:105AF000802C150F4110010F74000004D1700200BA +:105B000010081220A2100E451A080180017400002E +:105B1000140C0000F00200077C0028800A0000003E +:105B2000000000000000000000000000000000076E +:105B30007000000000305102263216AB02624E8D1A +:105B4000E1110A4608682C888108008602602E430D +:105B50006028346B0118000880000C8001300003BD +:105B6000600234C0077C0883600888870AE000056B +:105B7000100034C009F80000000000000000000020 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB0000000000000000000000010008000000055 +:105BC0000000000000000000020000202001000092 +:105BD00000000000000000000000002000000000A5 +:105BE00000000402000000000100000000000000AE +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000100000000000000000000000083 +:105C20000000000000000000000200000000000072 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000004080040000800000 +:105C6000020004411844420430114A0080002140DF +:105C7000421420105834000A01091804015200018E +:105C80005001020140500430104014000404001080 +:105C900014141000000800000000000000000000C4 +:105CA0000000420000000080000080405010000012 +:105CB00000902040014000200001800040001008BA +:105CC0008891004404849C200041001220443194B7 +:105CD00014542400000C00009851202C24343C84DF +:105CE0004804480221018820042C000401220410E9 +:105CF0004004000020000000000000000000000040 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000200043 +:105D400000000000900000000000000000000000C3 +:105D50000000000000000000000000000000000043 +:105D600000004000000000000000000000000050A3 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D9000000000000000000000000000000000A063 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE0000000000000000002200000000020480C1D +:105DF0000006000200300C100C10620C0000300095 +:105E000042305000300A02500030000025090000E6 +:105E10004060001000150000400400400060601069 +:105E2000000000400060000800000000500000007A +:105E300030100000503009000D000000000E0A096B +:105E4000080A000C0C19001009B004097000001EAB +:105E50007D7018001C0070405004060D0C3070441A +:105E6000001010909000000E000D085002007D7D83 +:105E70000D7A79100C0A00B000000D0D7900000AAF +:105E8000090000A000000000000000000000000069 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB000000000000040400002000E000000020050 +:105EC00000000000100000000000000000000000C2 +:105ED0000800000030080000000000000000000082 +:105EE00000000030000000004000040C0000000032 +:105EF000080000000000000000000000000000009A +:105F00000000000000000000000000000000000091 +:105F100000000000000000000000000C0000005025 +:105F20000000000000000000000000000000000071 +:105F300000080000000000000000000E000000004B +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000040000001 +:105F60004012300000401002000000080000300025 +:105F70003008004F1000280E3800010000100E08F5 +:105F80000808000C043000083A080C082030002EE5 +:105F90000000000000440000000400000040000079 +:105FA000000000800040000000001401008000306C +:105FB0000000103030000040003030000820003079 +:105FC000000C000031800A001A380098003C3010A4 +:105FD0000038000C30240D38093420000000000087 +:105FE00030382024342824341004300C080C1020BD +:105FF000080400080C380400110C000030000000F8 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000800000068 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:1060600000000000000000000040300020000000A0 +:1060700000003000000000000000000000000000F0 +:106080000000000000000000000000000000000010 +:1060900000000000000000000000000020000000E0 +:1060A00000000000200000300000000000000000A0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D0000000000000000030000000000000003060 +:1060E0000000003000000000000000004000000040 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000002000000000000000000000005F +:10612000000000000000004000000000000000002F +:10613000000000000000000000000000000000005F +:1061400000000000000000800000000000000000CF +:10615000000004000000000000000030000000000B +:106160000000000000400900000000800000000066 +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00001000000000000000000000000000000DE +:1061C000000000000000000080000000000000004F +:1061D00000000000000000000000000000000000BF +:1061E000000000000000000000000000002000008F +:1061F000800000000000000000000000000000001F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000800000008000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:10629000000000000020000080200000000000201E +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000001000000000BE +:1062D000000000000000000000000000000000407E +:1062E000000000000000000000000A000000003074 +:1062F000003000000000000000300000000000003E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:1063700000001000000000000000100000000010ED +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000100000000000000010000010BD +:1063B00000000000000001000000000000000000DC +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000010AD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000020007D +:10640000000000100000000000000000000000007C +:10641000000000000000000000200000002000003C +:10642000002000200000000000000000000000002C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:1064500000200000000000000020080000000000F4 +:1064600000200000000010000028000000000000D4 +:106470000000004040200000000000000320000059 +:1064800000200000000000000000000000000000EC +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C0000000000000000000000000000000AAFF23 +:1064D000FF7FFFFFFEFFFFFFFEFF00000000000048 +:1064E000000000000000FEFF7777000000000000C1 +:1064F00000000000000000000000FFBF3737BBAA0B +:106500001144000000000000000000000000000036 +:10651000000000000000000000000000000000007B +:106520000000000000000000000000000000FFFB71 +:10653000C382000000000105FFFF00000000575566 +:10654000F7F0000000000000000000000000000064 +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:106570000000F3F301000100EFEE01000100FFBF96 +:10658000FF7FFFFF010000000000FFFFFFBF3AFF99 +:106590000BBBF3F3FF7F0088FBFF0100F7005044C3 +:1065A0000100F7F7EFFF50220C0000000000000090 +:1065B00000000000000000000000000000000000DB +:1065C0000000FFFFFFFF00000000FFFFFFFFFFFFD5 +:1065D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:1065E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:1065F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10660000FFFFFFFFFFFFFFFFFFFF00000000000094 +:10661000000000000000000000000000000000007A +:10662000000000000C00000000000000000000005E +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000C0000000C0000000C00000016 +:106660000000000000000000000000000C0000001E +:10667000000000000000000000000000000000001A +:106680000C0000000C0000000000000000000000F2 +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B000000000201E000000000090040C000000FC +:1066C000000000201E00000000000000000000008C +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F00000000000000090040C0000000C000000EE +:106700000C0000000C0000000C00000000004820FD +:106710001E2000201E0000000C0000000C000020C5 +:106720001E0000000C0000000C0000000C00000027 +:106730000000000000000000000000000000000059 +:106740000000000000006840800200000000684077 +:106750008002684080026840800268408002684091 +:106760008002684080026840800268408002684081 +:106770008002684080026840800268408002684071 +:106780008002684080026840800268408002000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000C0080000000000000021 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D000000090241200902412000000000000002D +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:1068000000009004000000000000000000000000F4 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:1068700000000000000000000000002012000020C6 +:1068800012000020120000000000000000000000C4 +:1068900000008024120000000000002012004800C8 +:1068A0000020000000000000000000201200000096 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D0000000000000000000000048800020408010 +:1068E000002048800020408000200000000080241C +:1068F00002000000000000000000902412000000D0 +:1069000000000000000000000000488000204080DF +:106910000020000000000000000000000000000057 +:106920000000000000000000000000C000000000A7 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:10695000000000000000F3FFFFEECFFFDDFFFF7F30 +:1069600000010100FFEFFEFFFF7F000000000000BC +:106970000000000000000000000000000000000017 +:106980000000000000000755554431FFFF7B000068 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C0000000DDDDBBBF0000000000000000000093 +:1069D0000000000000005F5F0500000000000000F4 +:1069E00000000000000000000000000000000000A7 +:1069F00000000000000000000000000000007FFF19 +:106A0000153F555D7FFFFFBFCF45FBFF0100010133 +:106A10000100202CBFFFDFFF0FFFFFEF07770E0005 +:106A200051F3FFEFFFBF0002FF3FFFCFD580FFBF55 +:106A3000135FFF7F01000000000000000000000065 +:106A40000000000000000000000000000000FFFF48 +:106A5000FFFF00000000000000000000000077447D +:106A6000CF03CF033333F303CF03F30355550000B4 +:106A70000000FFFFFFFF0000000000000000595968 +:106A8000F70800000000FFFFFFFF00000000DD111D +:106A9000CF033F0C0F0F00000000000000000000BB +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD000000000000000000000007300040300003C +:106AE0001401000000000000000000000000000091 +:106AF0000000000000000000000000000000000096 +:106B0000000000000000000000000000040200007F +:106B10000400000000000000000000000000000071 +:106B20000000000000000000000000000000000065 +:106B300000000000000000000000000000008000D5 +:106B4000000400000000800000040000000080003D +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000302004034020948100000402000033 +:106B90000800000000000000000000000402C02007 +:106BA000004400000402000000000000000040203B +:106BB00000100000040200000400000000000000BB +:106BC00000000000000000000000000000000000C5 +:106BD000000000000000402000C000000000C020B5 +:106BE000008400000000C020000400000000C0205D +:106BF000002650000001C020105400000000C020FA +:106C0000007400000402C020082400000000C0201E +:106C1000004200000000C020004200000000000010 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C500000000000000000000000000000005100E3 +:106C60008000000010000000000000000000000094 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000010003 +:106C900000000000100000000000000000000000E4 +:106CA00000000000000000000000000000000000E4 +:106CB0000000000000000000000000000000800054 +:106CC0000000000100208000000000010020800082 +:106CD0000000000100200000000000000000000093 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000004128800000001040010049 +:106D100000000000100000000000000000009128AA +:106D200000000001106001000000000020000020B1 +:106D30000000000000000100000000001000000042 +:106D40000000000000000000000000000000000043 +:106D500000000000000000000000000000C0000073 +:106D60000000000100E200000000000100E200005D +:106D70000000000100C240008000000100A20000ED +:106D800000000001008211000000000110C200009C +:106D90000000000100C600000000000100E2000049 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE0000000002300030104D32300030308000074 +:106DF000D0000300000000080000000000000005B3 +:106E0000000500000000000000000000000000007D +:106E1000000000C0C00040C0C0030000000000002F +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E4000000000000000000000000000C30000007F +:106E5000C00300000000000000000000000000006F +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E800000000000000000000000000000C700003B +:106E9000C1230040C080A0230000000008000008BB +:106EA00000000403022300000004C0E342C506C042 +:106EB00000000000434000080022C40504C0C000D8 +:106EC00000030000000000000000000000000000BF +:106ED00000000000000000000000000000C00000F2 +:106EE000C3000000000000000100000000000000DE +:106EF0000100000000000000008000DBC9C9801311 +:106F000080800005000000000000002300C0C000D9 +:106F1000C0C0000000C00000C0050000000000006C +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F600000000000000000000001400080000080E0 +:106F7000020000000100020000000000000000000C +:106F80000000000000000000000000000000000001 +:106F900000000000000000028000010280010000EB +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC000000000000000000001000180000000003F +:106FD000180000001008000002400000000000003F +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:10700000000000000000000000000000000000027E +:107010000020000041008840010400020000000040 +:1070200000000000000200010500010000400120F6 +:1070300003200220000080010320800000020000E5 +:107040000028410010800000000000000000000047 +:107050000000000000000000000000000000000030 +:1070600000400000030800000000000020000000B5 +:1070700000000000200000000000001000041000CC +:1070800040018000800400000000000000000000BB +:10709000002080088002000000400008010000007D +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E000000000000000000000002EE0F50080001D +:1070F0000038864004B02C04E2480E000000000472 +:107100000000000080081C00007400000000000067 +:1071100000000000000000000000088024000020A3 +:10712000F16000000000000000000000000000000E +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000240000001B +:10715000007000002030000040800000600000004F +:1071600000000000000000000000000000000021FE +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:10719000000088106200158723041083A64815108C +:1071A000F280005003000D9E430248C079B400866F +:1071B000F27080A0670494C4E9B11D806000000EE5 +:1071C000F23C02AF802801CEF1C0000000000000B8 +:1071D00000000000000000000000000000000000AF +:1071E00000000007008010C00100800FF0032C8019 +:1071F00002604E8368300EC801484C4AA4524AC807 +:1072000001684003643008000240000FF0001000E5 +:107210000000010DD03010800260000FF0301480AB +:1072200002602C03603810DE4138000000000000CE +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:107260000000000000000000000000000000088096 +:10727000E3000004E00230200838000CD0000900D0 +:107280000028800C00000000808001000030000019 +:10729000000000000000000000000000000018B224 +:1072A000C138008653940000000000000000000078 +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000100006C002002400000007000006F +:1072E000F0010000000000000000000000000C00A1 +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:107310000000000000001E82C30209D325782090DF +:10732000E0081421A132200D001011142001308337 +:1073300060314001526C2007E03C30CFC0310C5D21 +:1073400064030C2BA0103C4703401043F06800007E +:10735000000000000000000000000000000000002D +:10736000000000000000400200380120010000037E +:10737000603828100400220780741408B0000C073D +:10738000E0100803A4020017E0420E000280000C87 +:10739000803D29A003B40E03608051E00064000A20 +:1073A00020AD14300114C804983810804132000018 +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F00000000C8000200000400020000014808568 +:1074000086000200004000000000000010000000A4 +:10741000000200000000000000000000000000006A +:107420000000111041184020100000000000000072 +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:1074500000000000E000000000800000400000008C +:107460002000000000020000008A00000000000070 +:107470000000020000000004000000000000000006 +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000180082318000A1 +:1074A000980001120CC0C810010208000A40804177 +:1074B0000000800007A0A0400404680240000C0007 +:1074C0000420000822008200190020100020086A11 +:1074D00000000000000000000000000000000000AC +:1074E00000000000000000000000002C00800000F0 +:1074F0000000002000020010004604A300010270FA +:10750000001834088104041A00450022000A1060A3 +:10751000008800088000000000800012200522186A +:1075200001240028000418000082400030181820B0 +:107530002008000000000000000000000000000023 +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:107570000000000000000200822840000030088C5B +:107580008088100000803600000000070000000026 +:1075900010800000007000000000000000000000EB +:1075A00000000000000001C805800C01C038000088 +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D0000000000000000000E000000000080000C3 +:1075E00002800000C07000001000100000080000C1 +:1075F0000000000000000000000040060000000045 +:10760000000000000000000000000000000000007A +:1076100000000000000000000000000000008E23B9 +:10762000602C8010403A100D00B842C4E3F0020D07 +:1076300002800004E0014003823B1007A06800C8FC +:10764000E40C080940380C8821008270007810385A +:107650008A014D0710180000000000000000000023 +:10766000000000000000000000000000000000001A +:107670000038028001000017E03A020000002943B0 +:10768000C24029C4004012000830005008400003E6 +:1076900060540CC00468000080B528C0046063001A +:1076A000008010C60060000020AB008001406F44E5 +:1076B00080000107039000000000000000000000AF +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000950020B3C0ADE +:1077000040B81E5003015E06F11002000068002F11 +:107710000000000050000000008000000000000099 +:1077200000000000000000000000004F00102D0FBE +:10773000E81500000000000000000000000000004C +:107740000000000000000000000000000000000039 +:1077500000000000000000000000000070000000B9 +:1077600000100050F2000000D08200001000010064 +:1077700000100000000000000000000000000006F3 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A0000000AC4264002C0F20140C0386380086C5 +:1077B0005382034000108006000200D0513828A0F8 +:1077C00012100647001591C0F3141DD2F1040C806D +:1077D000A290080380A84826D29000000000000074 +:1077E0000000000000000000000000000000000099 +:1077F00000000000000010C0090000041002084052 +:10780000011808A7588980000044464775340000D5 +:10781000C00000077808010000004007703000C079 +:1078200003780202280800E703780000600000C027 +:1078300009780ECBE12C94000990000000000000B4 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000002000001000202197 +:107880000000200000000014402000001001103013 +:107890000000001010000000000020000014000094 +:1078A0001000002400200000000000002010000054 +:1078B00001000000000000000000000000100000B7 +:1078C00000000000001000000000000000000000A8 +:1078D00000000000001000000000000000008040D8 +:1078E00000800000000020001000002000000010B8 +:1078F0000000100010210000000000200000000027 +:107900000000000000001000000000000000000067 +:107910000000000000000000100000000000000057 +:1079200000000040004000000000000000140022A1 +:107930004010005041215014001400005408200849 +:107940005C30300030403040500004100A314810A4 +:107950000400500000100200100000100C881000FD +:1079600000101010001000000010000000080010AF +:1079700000000000000000400000001000801041E6 +:1079800000509000002A00000080140288041401B6 +:107990001010500410100012140040144011000088 +:1079A0001408102C400888000004044A00122084A7 +:1079B00044000010008C01000004000108040001D4 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00001000000000000000000000000202000062 +:107A1000380030200000002020000000000000009E +:107A200060105000000000000000000D0000000089 +:107A3000003E00A0000000000800000D0000000053 +:107A400000300000000000000010000000000000F6 +:107A50000000000000000000001000000000000016 +:107A60000000000000000000005000003000000096 +:107A700000000000000030003000000000000000A6 +:107A80000000000000006000000030000000000066 +:107A900000000000000000000000000030000000B6 +:107AA0000000000000000000000D00000000580C65 +:107AB00008007A090020A03008BA30305200007067 +:107AC0000ABC00643C101DAA2D7019001678000035 +:107AD0000C1E64320042100006124000000C000030 +:107AE0000C601800000D0000000E000000000800EF +:107AF000000870300000000000000C0000000C10B6 +:107B00000000300900391C08000C00009000366AA3 +:107B1000940D000918101C601028901010BD5C1006 +:107B20005C190D0000B4090C593804409000004C59 +:107B3000081039B000B00E1E007C0D00000070006F +:107B40000C7EA000000000B000000000000000005B +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000E000000F7 +:107B8000400000000000000C004000000E4000001B +:107B900000300000010800000000000000000000AC +:107BA000000010000008000000000020000000009D +:107BB0000000000010000000040000000B00800026 +:107BC0000000000000000080000000000000000035 +:107BD0000000000000000080000000000000000025 +:107BE0000000000000002030002000000000200005 +:107BF00000000020000000000000000000080080DD +:107C00000000803000000000000000008000000044 +:107C10000000000000000000000000000000000064 +:107C200000000000000000000040001000300E4086 +:107C3000000A01034B080E2C00404000290C300CB8 +:107C40000E0C000030000000081010002010103052 +:107C500030010800000C30000C0010000000000192 +:107C600000010000083001000000000000000000DA +:107C700000000100000000000000000000000110F2 +:107C80000041010000317018002011010E0C0000AD +:107C900000300C58300850080100310C000100047D +:107CA00008003108310C000000000A2C00F0100020 +:107CB00000040C3C010CA034340000000038080023 +:107CC0000008000C000C0004000000000000000090 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D300000000000000000000000000000600000E3 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D700000002000000000000000004000000000A3 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000030B3 +:107DA00000000000000000000000000000000000D3 +:107DB0000000000000000000003000000000000093 +:107DC0000000000000000000000000000020000093 +:107DD00000000000000000000000000000000000A3 +:107DE00020000040000000000000000000400000F3 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E100000000040000000000000800000000000A2 +:107E20000000000000004000000000000000000012 +:107E300000A00000004000000080000000000000E2 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E80000000000000000000000000000000008072 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC0000080000000000000000000000000000032 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000008000000000000000000002 +:107F00000000000000000000000000000000002051 +:107F10000000200000000000000000000000000041 +:107F200000000080000000000000000000000000D1 +:107F30000000000000000000000080000080000041 +:107F400000000000800000000000000000000000B1 +:107F500000000000000080000000000000000000A1 +:107F600000000000800000000000002080000000F1 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F90000000000000000030000000000000300081 +:107FA00000000000000000000000200000000000B1 +:107FB0000000000000600000000000000030000031 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000001000000030 +:10804000000020000000000000A10000000000006F +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000020000020000000000000000000A0 +:1080A00000000000000000000000000000000000D0 +:1080B0000000000000000000000000200000008020 +:1080C00002000000000000000000000000000000AE +:1080D0000000000000300000000000000000000070 +:1080E0000000000000200000000000000000002050 +:1080F0000000000000001000000000000000000070 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000202F +:108130000800000000000000000000000000000037 +:10814000000000000000000000000000002000000F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:108180000000000000000000000000000000DDFF13 +:10819000DDFF00000000AFFFBBFFFFEEDDFF0000D2 +:1081A0000000CFFFF3FFCFFFF3FFFFFCF5FFFFFC65 +:1081B000DDFFCFFFF3FF3322DDFF000000000000F2 +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:1082400000000000000000000000FFDDD5FFDF009F +:10825000F3A2F3A223AF7FFF3F2A0000000000003B +:108260000000FFF70C3000000000000000000000DC +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:10829000000000000000FFFFFFFFFFFFFFFFFFFFE8 +:1082A000FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000DC +:1082B0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:1082C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:1082D000FFFF0000000000000000000000000000A0 +:1082E000000000000000000000000000000000008E +:1082F0000800000000000000000000000000000076 +:10830000000000000000000000000000000000006D +:10831000000090241E000000000090241E00902405 +:108320001E000000000090241E0090241E009024D7 +:108330001E0090241E0090241E0090241E000000A9 +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C000000000000000000000000000000000208D +:1083D0001E0000201E0090241E0000201E00000031 +:1083E00000000000000090040C00000000000000ED +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000006840800268408A +:1084200080026840800268408002684080026840A4 +:1084300080020000000068408002684080026840BE +:108440008002684080026840800268408002684084 +:108450008002684080020000000000000000000070 +:10846000000000000000000000000000000000000C +:108470000000008008000000000000000000000074 +:108480000000000000000000000000000000900458 +:108490000000008000284F8060B94F8060B94F8095 +:1084A00060B94F8060B94F8060B94F8060B94F802C +:1084B00060B94F8060B94F8060B94F8060B94F801C +:1084C00060B000000000000000000000000000009C +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:108540000000000000000000000000000000902477 +:1085500012004820122000000000000000009024BB +:10856000020000201200000000004820122000003D +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A0000000000000000000000000000000488003 +:1085B00000204080002048800020408000200000F3 +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F00000000000000000C00000000000000000BB +:10860000000000000000000000000000000000006A +:108610000000FBFBFFFFFFFF5555555533330F0F90 +:108620005555FF000F0F33335555FF003333555564 +:10863000FF00FF0055550F0F33330F0FFF000F0FD3 +:1086400055550F0FCCCCFFFFFFFF000000000000CE +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D0000000FFBFF3FB5555557501003300FFFF48 +:1086E00001007777FFFFFFBFF5C47FFF0022FFFF88 +:1086F000FF7F0000000000000000000000000000FC +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:1087200000000000000000000000FFFFFFFF00004D +:108730000000CF033F30CF033333CF031D1DDD11C6 +:108740000F0F00000000000000000000000000000B +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000402000000000020B3 +:1087A00000004020004000190000C02000820009A5 +:1087B00000008000000080390000C020008280336B +:1087C0000000C020000000340000402000800000B5 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:10885000000000000000B208040380009422000021 +:108860000000C020004202000403402094C0900990 +:1088700000018000902000000000000000000000C7 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000C02000C4000024 +:1088B0000000C020008000000000C02000C20000B6 +:1088C00000008000000000000000C02000C4000084 +:1088D0000000C020004000000000C02000C00000D8 +:1088E00000004020004000000000000000000000E8 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000011000000000046 +:108920001000002800000000004080280000000126 +:10893000006080000000000100208028000000018D +:1089400000608021000000010060002000000000A5 +:1089500000400000000000000000000000000000D7 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D00000000000000000000000D1008000000145 +:1089E0002000802000000001004451208000000091 +:1089F0008040C00080000001000000000000000076 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000145 +:108A300000E200000000000100AA000000000001A8 +:108A400000E2000000000001002200000000000120 +:108A500000E200000000000100E200000000000150 +:108A600000E200000000000000C000000000000064 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000C0C0000800C000C0444000003A +:108AB0000040C0C0E00008C0C00000C00000C0000E +:108AC00000C04400C04044C0E0004700C000E000D7 +:108AD00000E2440000000000000000000000000070 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000C40051 +:108B600000000001C4C0000008C000024408C48224 +:108B7000C041448002000300808300000008000020 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB0000000000000000000C0C0000503C300006A +:108BC000A000000000000000000000000000000005 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C200000000000000000008002000000040004BA +:108C3000042100400020100400400010010000103A +:108C40000140104001040000102000040080088052 +:108C500010000002000400000000000000000000FE +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE00000000000000000010202004000100180AE +:108CF000000000828021000284000800800C000037 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D300000000000000000000010000001400010D2 +:108D400002C0000000000000000000000000000061 +:108D50000000000000000000000000000000000013 +:108D600000000000000000000000000000001000F3 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB000000000000200400880001CCE03F0060006 +:108DC0000000000000F80000000000C00B80000060 +:108DD000000000000A790008000012000A000000EC +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000002C1018042C2120380012F3 +:108E700020901C0041F000CF0310000025020820C4 +:108E8000D0100000D0300000000000000000000002 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000040036410158002604004C0 +:108EC0001430000006446C8410091C0902681880E4 +:108ED000E508000E4040400220010D400248000F0E +:108EE000F03452000000000360806C40024800042F +:108EF00000801200000000000000000000000000E0 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F2000000000000000000000000000000000033E +:108F30000000000800000040F000100000010200E6 +:108F400000B00100000000000030100000010080AF +:108F5000E1300008000000870140000800000087A1 +:108F60000100000000000000000000000000000000 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000002806300000696 +:108FF0000000300A7078AA040438000200281CC05F +:1090000000011E800300B401000000000000000009 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:10903000000000000000000000000017E0020140F6 +:1090400000480017E002004000480707E04C3EC41B +:10905000E4620040E04CEC070830800730000DC0AF +:109060000460000B6001106002C4001FE03B0C2094 +:109070000114000B00380020030000000000000075 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B0000000C00000002004000000E000000000EC +:1090C000020004520080200004002400000400007C +:1090D00008000000088010000000808000082000C8 +:1090E00000088000010000000000000000000000F7 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000004000BF +:1091700010065400340C080418040000210080106C +:10918000041C10800000110000102000000E0000E0 +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B0000000000000000000000000000000002887 +:1091C000001200A000080000001418800000000633 +:1091D00049068080024020008282000100A8000031 +:1091E000008201100044000020000010000400086C +:1091F00080A000000000002100000000000000002E +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000300000000000000C665 +:1092400008000000000000C0007806008001100047 +:10925000C078000C900114C000700000600002C0D3 +:1092600007B40000000000C005000000000000007E +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F00000001E008638200400480E988083320645 +:109300000C04806800308006E7001000800194099A +:1093100000610000000000000000000000000000EC +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:1093400000000005600200E003B0001000320000E1 +:1093500000000740633800C0013C1800E0480000EE +:109360004068001CE02A14C000604000007C0040FF +:109370000040000FE00900C000600012003C0060E7 +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B0000000000000001E0000000000D0000000BF +:1093C000000000204A00000F00001480D26000005E +:1093D000F00010000072000F100021470808000B79 +:1093E000F4000C80D130000000002040000000009C +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:10947000000000000000220000001416001001048B +:1094800060000CE0417802C701040000D0020E2009 +:109490008000280800180000000000000000000004 +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C0000000000000000005008000800344400010 +:1094D000040000C00AE8AEC0813400800730088074 +:1094E0006038000000410007703420C00378000895 +:1094F000802800C003780003600834C0077C0003A4 +:10950000003400C003000000000000000000000064 +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:109540000000000000000000000000000800001003 +:109550000011002000200000200000040000000096 +:10956000000100000000004020400000000000005A +:1095700000020000000000000000000000000000E9 +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B000008000000000000000000000000000002B +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F00000000000204000402000140040204000F7 +:1096000028400010501010900000000010002108A9 +:1096100000100001340000000000100000001000E5 +:10962000000000000010000000000000000000002A +:10963000000000000000000000000000000000002A +:10964000000000000000004000000050000000008A +:109650000000200000104048048828104C811404A9 +:10966000000110500011400822044000408000001A +:1096700050000900408024840C8C20004000000031 +:1096800000000000000000000000000000000000DA +:1096900000080000000000000000000000000000C2 +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C0000000000000000000000000000000060094 +:1096D0000000000008100000000000000070000EF4 +:1096E000000E000000B00000000A000A0070000038 +:1096F00000000070000000000000000000000000FA +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:10973000000000000001000000000000000E00001A +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:109770000000000900000C0D08090800000030BDC1 +:1097800008090C0D9C000019181E103070BE08004E +:1097900009403000003C006D00B0700D707010B0DA +:1097A000709000B00D0070B000000D0000B05000CF +:1097B00000000000000000000000000000000000A9 +:1097C000000000000000000D00000000000000325A +:1097D0000000080000090800081D0C7C09080C3076 +:1097E00000B209B0020918383030007C0E09304E42 +:1097F00030900000289E3840586000B00C0C50009B +:1098000000000900029E0D0D007000000D0A00709E +:1098100000000000000C000000000000000000003C +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000010C002000200000BB +:109860002000000400000000000C000000000000C8 +:109870003030000000000000000C0000000000007C +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F00000000000000000000000010021300130E5 +:10990000200008001120110000300000110000109C +:1099100000000B000000BC000001000C380000003B +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000001000026 +:109940000000000000000000000000000000001007 +:109950000000003000000100700021007B00313069 +:109960000C300000183C080000080F01800C1000AB +:109970002C5C9000B0100000010088001B303C1CE3 +:109980000C18300030000000000000000000000053 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000004000000000000000000037 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000003000000000000000000000A6 +:109A900000000000000000000000000000000000C6 +:109AA00004000000000000000000000000000000B2 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000030000066 +:109AD0000000000000000000000000008000000006 +:109AE0000000000000010000000000000000000075 +:109AF0000000000004000000000000000000000062 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000200000000000D5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB000000000000000000000000C000000000099 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000004000000000000014 +:109C10000000000000000000000000000000000044 +:109C20000000000001000000000000000000000033 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C500000400000000000000000000000000000C4 +:109C60003000000000000000000C000000000000B8 +:109C700000000000000000000200000000000000E2 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D3000000000000000000000000000000004001F +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000002000000000000043 +:109E00000000000000000000000000000000002032 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000FFFFFFFFFFFFF7 +:109F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:109F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000DF +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E00000000000000000000000000000006840C8 +:10A0F00080026840800268408002684080026840B8 +:10A1000080026840800268408002684080026840A7 +:10A1100080020000000000000000000000000000BD +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000809F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000800000000000000000000000000E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000FFFFFFFF00000000000050 +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A570000000000000000000000000000000C020FB +:10A5800000D400000000C02000C000000000C02077 +:10A59000000600000000C0200084000000004020F1 +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000100A200000000000100B20000F3 +:10A710000000000100E200000000000100E2000073 +:10A720000000000000C00000000000000000000069 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A880000000000000000000008000000000000048 +:10A890000000A00000C00000C000A00000000000F8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000001000000004000032 +:10AA100000100000000000000040100001000000D5 +:10AA20001000000000000000100000000000000006 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000400364005000CE +:10AB90000000400BE4122C800130800220812C4008 +:10ABA0000248000FF000100000008002000012C0F8 +:10ABB0000A0000000000000000000000000000008B +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD0000000000000000000000000000000000073C +:10AD1000E0000C0004080007E078281000000004A0 +:10AD2000803028000400000C800110000280000424 +:10AD300000000C8001000000000000000000000086 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE9000000000046004088002500008A080003018 +:10AEA000000E002C4000010000400002000038208D +:10AEB0000008000400000200000000000000000084 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B0100000000000000040048038002001144003BC +:10B0200060880000000000008003008001B0000C78 +:10B03000809500000000001C00000CA00300000030 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000880000080A7 +:10B1A0000130000360003C4000080000600016C051 +:10B1B00009340003683800C00BF8000400347C0038 +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000010002E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000001000000000000E +:10B2300000100000001000000000000000000000EE +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000800E +:10B2C0000000000002000000000000000800000074 +:10B2D0000000100000084000000010000000000006 +:10B2E000000000000000000000000000000000005E +:10B2F00000000000008000000000000000000000CE +:10B30000000000000000000000000000000000003D +:10B310000000000000000000000000000000080025 +:10B3200000008000500000100000400040000000BD +:10B330000000108040000800008000000004201879 +:10B34000000040410008000000000000000800006C +:10B3500000000000000800000000000000000000E5 +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B38000000000000000000000000C0000000000B1 +:10B39000000030090000000000090000000000006B +:10B3A0000000000058000C000800500000000000E1 +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000900000A00000E00090000D2 +:10B450000C00000000000000000C000D0C000000BB +:10B4600000000970700000000900000000000000EA +:10B4700000000000000000000A00000000000000C2 +:10B4800000000000000000000000000A00000000B2 +:10B490000000000000000009000D00090000080085 +:10B4A0000C5D040D000000003C590A3270007C70F5 +:10B4B00050000100007010007D008C0000B00C0EE8 +:10B4C0000C0D0018000E5071701800000000000EE6 +:10B4D000000C00B00D0000000D080000000000008E +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000001003A +:10B51000000000000000000000000000000000002B +:10B520000000000000000000010001000100000018 +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C0000000000000000030000000000800000043 +:10B5D000000000000000000000000000000030003B +:10B5E0000100000043000000000000000000000017 +:10B5F000000000000000000000000000003000001B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B6200000000100010000000000300031000000B7 +:10B630000000310010000000000000003000000099 +:10B6400000100100010C10000000303000800000EC +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000011000000000000000C8 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B790000000000000000000300000000000000079 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000030000000000049 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000040000000054 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000004000B7 +:10B9500000000000003000000000000000000000B7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700010000000000000000000000000000000B6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0001000000000000000000000000000000086 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000040002000000000000006 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90004000000000000000000000000000000051 +:10CFA0000040000000000000000000000000000041 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000800000000010001000000000000091 +:10D0000000000000000000008000000000000000A0 +:10D010000080000000000000000000000000000090 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D110000000000000000000000000000900000006 +:10D12000000000000000000000000000000E0000F1 +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D16000000000000000000000000000000E0000B1 +:10D170000000000D000D010A000000300038090019 +:10D1800000000801000D000D00000000008D00806F +:10D19000010000700981000000000000000E000086 +:10D1A000000000000000000000000000000C000073 +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000030000000000000005E +:10D2A000000000000000000000100000000000006E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E00000000000000000000040000000000000FE +:10D2F000000000000000000000000000000000002E +:10D30000000100000000010000000000000000001B +:10D3100010000000000000000000000000000000FD +:10D3200000000000000000000000000000000000FD +:10D3300000010000000000000000000000000000EC +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000800A4 +:10D48000000000000000000000000000000000009C +:10D4900000000000000100000000000000900000FB +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D600000000010000000000000000000000000019 +:10D610000000000C000000000008400000000000B6 +:10D6200000500000000000000000000000000000AA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000004000000000000000085 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000FFFF3B +:10D7F000FF7700000000AFAFDDDD0000000000009B +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D97000000000000C000000000090241E000000C9 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD000000000000000000008000000000000003E +:10DAE0000000000000000000000000000000000036 +:10DAF00000000000000000201200000000000000F4 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000FF7FF5F5FFFF3E +:10DC8000FFFFFFFFF7FF00000000000000000000A2 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000001000022 +:10DE0000100100000000800000060000000000007B +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF70000000000000000000000000000000400061 +:10DF80008000000000008000000000010020000070 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E100000000000000000000810003C000030000C8 +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000100004001C00008C0C4 +:10E290000408004000000000000000000000000032 +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E41000F010000080000800401000000000000024 +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000C8000000400200208300000008080000BE +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E71000000000000021000040200000000108006F +:10E7200040000000000000000000000000000000A9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E89000000000000000000000000000E000000098 +:10E8A0001300000000000000000000000000000055 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000004002080000AC +:10EA2000403A0020500000002000000000000000DC +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB900000000000000000200020000080000000B5 +:10EBA0000000000001000000000000000400000060 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA000000000001000000000000000080000004A +:10EEB000000000000400000000000000000000004E +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000FFFFBFFF0505F3F355005B +:10F4B000DDDDCFCF111133001111FFFFFBFF330052 +:10F4C00055FFFFF0330000000000000000000000C6 +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F620000000000000000000000000000C0010209E +:10F630001E0010201E0090041C0010001C00000082 +:10F640000C0010201E0090041C00000000000000B0 +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A00000000000080000000000000000000080D1 +:10F7B00000284F8060B94F8060B94F8060B94F809A +:10F7C00060B94F8060B94F8060B94F8060B0000071 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F930000000FFFF3333FF0055550F0F3333FF0037 +:10F9400055555555FF003333FF00FF0055553333F0 +:10F95000CCCC00000000000000000000000000000F +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB00000000000000000000000800000020000C4 +:10FAC0000000C02000440000000040200080000032 +:10FAD0000000C02000440000000000000000000002 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC30000000000000000000000080000000000143 +:10FC40000020802000000001006000200000000073 +:10FC50000040802000000001006000000000000063 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC00000000008C000030002C04403C00000C0DF +:10FDD0000000A0004420034004C0E000E040000018 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000040000000001010204004040008E1 +:10FF500010800004000000010000092002100000D1 +:10FF60000020000000000000000000000000000071 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040003F7 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000F000000001780008BF +:1000D00004001C8003780000000000800210000073 +:1000E000002C0000081000000000000000000000CC +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000500000000A9 +:10025000020000080000020702740008030000E02A +:1002600002081008000000800108000000000000E3 +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000101D +:1003D000010E00000000200001008000000010005D +:1003E00004010000000000000800000002100000EE +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:1005500000000E04E038000000000000000000C0B1 +:100560000500000080011CC6050000001B000CC037 +:100570000570000000000000000000000000000006 +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D0000000000000006000F00000C0D100000039 +:1006E000F0000000D00000400200402000380080F0 +:1006F00010004E87013400000000000000000000E0 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000001000010000000001000001000000057 +:100870000001000000000000000000000000000077 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E00000000000000000000000000008100000EF +:1009F00000000000000000000002000000500000A5 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000C00000000000079 +:100B70000100000000000000000C00000000000068 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B0000000000000000000000D0000000000000D +:1026C000007000000000000000000000000000009A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000001000087 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A00000040000000000000000000000000000086 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000008000000000000000000000000016 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000300000000000000000000015 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000010000000000000000005 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB00000000000000000000000005005000000BC +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:103130000000000000280000A000000000000000C7 +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000040000000B8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000001000000000000050 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:1063400000600000000000000000000000000000ED +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C000000000000040000000000000000000008C +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000100000B9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:1069500000C0000000000000000000000000000077 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000004000000000000000000DE +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000400DB +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040004F6 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:1049400000000000000000000000000080000000E7 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:1049700000000000000000800000000000000000B7 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000800000000000000000D00000000000011 +:104A900000B0000000000000000000000000000066 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000900000000000000CD +:104AE00000000000000000000009010000010000BB +:104AF0000100000000010000000080010000000033 +:104B000000010000000000000000000E0000000096 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000010000000000000000000000A3 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000002000000000000000000000000D2 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B0000000000000000000000040950C0001808C +:1052C000000000500C000180000000C0040000003D +:1052D00004000000040000000400000004000000BE +:1052E00004000000040000000400000004000000AE +:1052F000040000000400000004000000040000009E +:10530000040000000400000004000000040000008D +:10531000040000000400000004000000040000007D +:10532000040000000400000004000000040000006D +:10533000040000000400000004000000040000005D +:10534000040000000400000004000000040000004D +:10535000040000000400000004000000040000003D +:10536000040000000400000004000000040000002D +:10537000040000000400000004000000040000001D +:10538000040000000400000004000000040000000D +:1053900004000000040000000400000004000000FD +:1053A00004000000040000000400000004000000ED +:1053B00004000000040000000400000004000000DD +:1053C00004000000040000000400000004000000CD +:1053D00004000000040000000400000004000000BD +:1053E00004000000040000000400000004000000AD +:1053F000040000000400000004000000040000009D +:10540000040000000400000004000000040000008C +:10541000040000000400000004000000040000007C +:10542000040000000400000004000000040000006C +:10543000040000000400000004000000040000005C +:10544000040000000400000004000000040000004C +:105450000C000180000000A00C000580000000008E +:105460000C0000800000FAEA0C000180000000B08F +:10547000040000000400000004000000040000001C +:00000001FF diff --git a/05-Morse/Board/ise/morse.xise b/05-Morse/Board/ise/morse.xise new file mode 100644 index 0000000..5a43e34 --- /dev/null +++ b/05-Morse/Board/ise/morse.xise @@ -0,0 +1,331 @@ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/05-Morse/Morse/hdl/charToMorseController_studentVersion.vhd b/05-Morse/Morse/hdl/charToMorseController_studentVersion.vhd new file mode 100644 index 0000000..16c9397 --- /dev/null +++ b/05-Morse/Morse/hdl/charToMorseController_studentVersion.vhd @@ -0,0 +1,54 @@ +ARCHITECTURE studentVersion OF charToMorseController IS + + signal isA, isB, isC, isD, isE, isF, isG, isH, + isI, isJ, isK, isL, isM, isN, isO, isP, + isQ, isR, isS, isT, isU, isV, isW, isX, + isY, isZ, + is0, is1, is2, is3, is4, is5, is6, is7, + is8, is9 : std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- conditions for morse units + isA <= '1' when std_match(unsigned(char), "1-0" & x"1") else '0'; + isB <= '1' when std_match(unsigned(char), "1-0" & x"2") else '0'; + isC <= '1' when std_match(unsigned(char), "1-0" & x"3") else '0'; + isD <= '1' when std_match(unsigned(char), "1-0" & x"4") else '0'; + isE <= '1' when std_match(unsigned(char), "1-0" & x"5") else '0'; + isF <= '1' when std_match(unsigned(char), "1-0" & x"6") else '0'; + isG <= '1' when std_match(unsigned(char), "1-0" & x"7") else '0'; + isH <= '1' when std_match(unsigned(char), "1-0" & x"8") else '0'; + isI <= '1' when std_match(unsigned(char), "1-0" & x"9") else '0'; + isJ <= '1' when std_match(unsigned(char), "1-0" & x"A") else '0'; + isK <= '1' when std_match(unsigned(char), "1-0" & x"B") else '0'; + isL <= '1' when std_match(unsigned(char), "1-0" & x"C") else '0'; + isM <= '1' when std_match(unsigned(char), "1-0" & x"D") else '0'; + isN <= '1' when std_match(unsigned(char), "1-0" & x"E") else '0'; + isO <= '1' when std_match(unsigned(char), "1-0" & x"F") else '0'; + isP <= '1' when std_match(unsigned(char), "1-1" & x"0") else '0'; + isQ <= '1' when std_match(unsigned(char), "1-1" & x"1") else '0'; + isR <= '1' when std_match(unsigned(char), "1-1" & x"2") else '0'; + isS <= '1' when std_match(unsigned(char), "1-1" & x"3") else '0'; + isT <= '1' when std_match(unsigned(char), "1-1" & x"4") else '0'; + isU <= '1' when std_match(unsigned(char), "1-1" & x"5") else '0'; + isV <= '1' when std_match(unsigned(char), "1-1" & x"6") else '0'; + isW <= '1' when std_match(unsigned(char), "1-1" & x"7") else '0'; + isX <= '1' when std_match(unsigned(char), "1-1" & x"8") else '0'; + isY <= '1' when std_match(unsigned(char), "1-1" & x"9") else '0'; + isZ <= '1' when std_match(unsigned(char), "1-1" & x"A") else '0'; + is0 <= '1' when std_match(unsigned(char), "011" & x"0") else '0'; + is1 <= '1' when std_match(unsigned(char), "011" & x"1") else '0'; + is2 <= '1' when std_match(unsigned(char), "011" & x"2") else '0'; + is3 <= '1' when std_match(unsigned(char), "011" & x"3") else '0'; + is4 <= '1' when std_match(unsigned(char), "011" & x"4") else '0'; + is5 <= '1' when std_match(unsigned(char), "011" & x"5") else '0'; + is6 <= '1' when std_match(unsigned(char), "011" & x"6") else '0'; + is7 <= '1' when std_match(unsigned(char), "011" & x"7") else '0'; + is8 <= '1' when std_match(unsigned(char), "011" & x"8") else '0'; + is9 <= '1' when std_match(unsigned(char), "011" & x"9") else '0'; + + morseOut <= '0'; + startCounter <= '0'; + unitNb <= (others => '-'); + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hdl/characterRegister_studentVersion.vhd b/05-Morse/Morse/hdl/characterRegister_studentVersion.vhd new file mode 100644 index 0000000..9df6577 --- /dev/null +++ b/05-Morse/Morse/hdl/characterRegister_studentVersion.vhd @@ -0,0 +1,6 @@ +ARCHITECTURE studentVersion OF characterRegister IS +BEGIN + + charOut <= (others => '0'); + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hdl/envelopeRetreiver_studentVersion.vhd b/05-Morse/Morse/hdl/envelopeRetreiver_studentVersion.vhd new file mode 100644 index 0000000..9480c30 --- /dev/null +++ b/05-Morse/Morse/hdl/envelopeRetreiver_studentVersion.vhd @@ -0,0 +1,9 @@ +library Common; + use Common.CommonLib.all; + +ARCHITECTURE studentVersion OF envelopeRetreiver IS +BEGIN + + morseEnvelope <= '0'; + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hdl/morseToCharDecoder_studentVersion.vhd b/05-Morse/Morse/hdl/morseToCharDecoder_studentVersion.vhd new file mode 100644 index 0000000..33355ef --- /dev/null +++ b/05-Morse/Morse/hdl/morseToCharDecoder_studentVersion.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE studentVersion OF morseToCharDecoder IS +BEGIN + + charValid <= '0'; + charOut <= (others => '0'); + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hdl/symbolLengthCounter_studentVersion.vhd b/05-Morse/Morse/hdl/symbolLengthCounter_studentVersion.vhd new file mode 100644 index 0000000..028073d --- /dev/null +++ b/05-Morse/Morse/hdl/symbolLengthCounter_studentVersion.vhd @@ -0,0 +1,11 @@ +library Common; + use Common.CommonLib.all; + +ARCHITECTURE studentVersion OF symbolLengthCounter IS +BEGIN + + symbolValid <= '0'; + symbolValue <= '0'; + symbolDuration <= (others => '0'); + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hdl/toneGenerator_studentVersion.vhd b/05-Morse/Morse/hdl/toneGenerator_studentVersion.vhd new file mode 100644 index 0000000..3309e33 --- /dev/null +++ b/05-Morse/Morse/hdl/toneGenerator_studentVersion.vhd @@ -0,0 +1,28 @@ +library Common; + use Common.CommonLib.all; + +ARCHITECTURE studentVersion OF toneGenerator IS + + constant toneCounterBitNb: positive := requiredBitNb(toneDivide-1); + signal toneCounter: unsigned(toneCounterBitNb-1 downto 0); + constant toneMin : natural := (2**toneCounterBitNb - toneDivide) / 2; + constant toneMax : natural := toneMin + toneDivide; + +BEGIN + + divide: process(reset, clock) + begin + if reset = '1' then + toneCounter <= to_unsigned(toneMin, toneCounter'length); + elsif rising_edge(clock) then + if toneCounter = toneMax then + toneCounter <= to_unsigned(toneMin, toneCounter'length); + else + toneCounter <= toneCounter + 1; + end if; + end if; + end process divide; + + tone <= toneCounter(toneCounter'high); + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hdl/unitCounter_studentVersion.vhd b/05-Morse/Morse/hdl/unitCounter_studentVersion.vhd new file mode 100644 index 0000000..94e2db7 --- /dev/null +++ b/05-Morse/Morse/hdl/unitCounter_studentVersion.vhd @@ -0,0 +1,61 @@ +library Common; + use Common.CommonLib.all; + +ARCHITECTURE studentVersion OF unitCounter IS + + signal unitCounter: unsigned(requiredBitNb(unitCountDivide)-1 downto 0); + signal unitCountDone: std_ulogic; + signal unitNbCounter: unsigned(unitnB'range); + signal unitNbCountDone: std_ulogic; + +BEGIN + -- count unit base period + countUnitDuration: process(reset, clock) + begin + if reset = '1' then + unitCounter <= (others => '0'); + elsif rising_edge(clock) then + if unitCounter = 0 then + if (startCounter = '1') or (unitNbCounter > 0) then + unitCounter <= unitCounter + 1; + end if; + else + if unitCountDone = '0' then + unitCounter <= unitCounter + 1; + else + unitCounter <= (others => '0'); + end if; + end if; + end if; + end process countUnitDuration; + + unitCountDone <= '1' when unitCounter = unitCountDivide + else '0'; + -- count unit period number + countPeriods: process(reset, clock) + begin + if reset = '1' then + unitNbCounter <= (others => '0'); + elsif rising_edge(clock) then + if unitNbCounter = 0 then + if startCounter = '1' then + unitNbCounter <= unitNbCounter + 1; + end if; + else + if unitNbCountDone = '0' then + if unitCountDone = '1' then + unitNbCounter <= unitNbCounter + 1; + end if; + else + unitNbCounter <= (others => '0'); + end if; + end if; + end if; + end process countPeriods; + + unitNbCountDone <= '1' when (unitNbCounter = unitNb) and (unitCountDone = '1') + else '0'; + + done <= unitNbCountDone; + +END ARCHITECTURE studentVersion; diff --git a/05-Morse/Morse/hds/.hdlsidedata/_charToMorseController_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_charToMorseController_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_charToMorseController_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_characterRegister_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_characterRegister_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_characterRegister_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_chartomorse_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_chartomorse_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_chartomorse_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_chartomorse_struct.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_chartomorse_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_chartomorse_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_fsm.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_fsm.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_chartomorsecontroller_fsm.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_envelopeRetreiver_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_envelopeRetreiver_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_envelopeRetreiver_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_enveloperetreiver_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_enveloperetreiver_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_enveloperetreiver_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_morseToCharDecoder_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_morseToCharDecoder_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_morseToCharDecoder_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_struct.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_morsedecoder_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_morseencoder_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_morseencoder_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_morseencoder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_morseencoder_struct.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_morseencoder_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_morseencoder_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_morsetochardecoder_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_morsetochardecoder_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_morsetochardecoder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_symbolLengthCounter_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_symbolLengthCounter_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_symbolLengthCounter_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_symbollengthcounter_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_symbollengthcounter_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_symbollengthcounter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_toneGenerator_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_toneGenerator_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_toneGenerator_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_tonegenerator_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_tonegenerator_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_tonegenerator_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_unitCounter_studentVersion.vhd._fpf b/05-Morse/Morse/hds/.hdlsidedata/_unitCounter_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_unitCounter_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/.hdlsidedata/_unitcounter_entity.vhg._fpf b/05-Morse/Morse/hds/.hdlsidedata/_unitcounter_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse/hds/.hdlsidedata/_unitcounter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse/hds/_chartomorse._epf b/05-Morse/Morse/hds/_chartomorse._epf new file mode 100644 index 0000000..cc87d16 --- /dev/null +++ b/05-Morse/Morse/hds/_chartomorse._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom char@to@morse/struct.bd +TOP_MARKER atom 0 diff --git a/05-Morse/Morse/hds/_chartomorsecontroller._epf b/05-Morse/Morse/hds/_chartomorsecontroller._epf new file mode 100644 index 0000000..e137cee --- /dev/null +++ b/05-Morse/Morse/hds/_chartomorsecontroller._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom charToMorseController_studentVersion.vhd diff --git a/05-Morse/Morse/hds/_enveloperetreiver._epf b/05-Morse/Morse/hds/_enveloperetreiver._epf new file mode 100644 index 0000000..58aa12d --- /dev/null +++ b/05-Morse/Morse/hds/_enveloperetreiver._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom envelopeRetreiver_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion diff --git a/05-Morse/Morse/hds/_morsedecoder._epf b/05-Morse/Morse/hds/_morsedecoder._epf new file mode 100644 index 0000000..b8c04b8 --- /dev/null +++ b/05-Morse/Morse/hds/_morsedecoder._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom morse@decoder/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/05-Morse/Morse/hds/_morseencoder._epf b/05-Morse/Morse/hds/_morseencoder._epf new file mode 100644 index 0000000..6d0fb95 --- /dev/null +++ b/05-Morse/Morse/hds/_morseencoder._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom morse@encoder/struct.bd +TOP_MARKER atom 1 diff --git a/05-Morse/Morse/hds/_morsetochardecoder._epf b/05-Morse/Morse/hds/_morsetochardecoder._epf new file mode 100644 index 0000000..d03b627 --- /dev/null +++ b/05-Morse/Morse/hds/_morsetochardecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom morseToCharDecoder_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion diff --git a/05-Morse/Morse/hds/_symbollengthcounter._epf b/05-Morse/Morse/hds/_symbollengthcounter._epf new file mode 100644 index 0000000..62bd552 --- /dev/null +++ b/05-Morse/Morse/hds/_symbollengthcounter._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom symbolLengthCounter_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion diff --git a/05-Morse/Morse/hds/_tonegenerator._epf b/05-Morse/Morse/hds/_tonegenerator._epf new file mode 100644 index 0000000..a283cbf --- /dev/null +++ b/05-Morse/Morse/hds/_tonegenerator._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom toneGenerator_studentVersion.vhd diff --git a/05-Morse/Morse/hds/_unitcounter._epf b/05-Morse/Morse/hds/_unitcounter._epf new file mode 100644 index 0000000..e69de29 diff --git a/05-Morse/Morse/hds/char@to@morse/struct.bd b/05-Morse/Morse/hds/char@to@morse/struct.bd new file mode 100644 index 0000000..33e3f89 --- /dev/null +++ b/05-Morse/Morse/hds/char@to@morse/struct.bd @@ -0,0 +1,3809 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_cnt" +duLibraryName "Morse" +duName "unitCounter" +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "unitCountDivide" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +mwi 0 +uid 427,0 +) +(Instance +name "I_ctl" +duLibraryName "Morse" +duName "charToMorseController" +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "characterBitNb" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +mwi 0 +uid 806,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\charToMorse" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorse" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:49:52" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "charToMorse" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\charToMorse\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:49:52" +) +(vvPair +variable "unit" +value "charToMorse" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 134,0 +optionalChildren [ +*1 (PortIoOut +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "39500,26625,41000,27375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "39000,27000,39500,27000" +pts [ +"39000,27000" +"39500,27000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +) +xt "42000,26500,47700,27700" +st "morseOut" +blo "42000,27500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-5000,6800,9500,8000" +st "morseOut : std_ulogic" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "5000,34625,6500,35375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "6500,35000,7000,35000" +pts [ +"6500,35000" +"7000,35000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +) +xt "600,34500,4000,35700" +st "clock" +ju 2 +blo "4000,35500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +) +xt "-5000,7700,8100,8900" +st "clock : std_ulogic" +) +) +*5 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "5000,36625,6500,37375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "6500,37000,7000,37000" +pts [ +"6500,37000" +"7000,37000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +) +xt "700,36500,4000,37700" +st "reset" +ju 2 +blo "4000,37500" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-5000,8600,8000,9800" +st "reset : std_ulogic" +) +) +*7 (PortIoIn +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 270 +xt "5000,26625,6500,27375" +) +(Line +uid 68,0 +sl 0 +ro 270 +xt "6500,27000,7000,27000" +pts [ +"6500,27000" +"7000,27000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +isHidden 1 +) +xt "0,26500,4000,27700" +st "charIn" +ju 2 +blo "4000,27500" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 77,0 +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +) +xt "-5000,9500,28800,10700" +st "charIn : std_ulogic_vector(characterBitNb-1 DOWNTO 0)" +) +) +*9 (Grouping +uid 91,0 +optionalChildren [ +*10 (CommentText +uid 93,0 +shape (Rectangle +uid 94,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,65000,70000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 95,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,65500,53200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 96,0 +shape (Rectangle +uid 97,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,61000,74000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 98,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,61500,70200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*12 (CommentText +uid 99,0 +shape (Rectangle +uid 100,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,63000,70000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 101,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,63500,53200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*13 (CommentText +uid 102,0 +shape (Rectangle +uid 103,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,63000,53000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 104,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "49200,63500,49200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*14 (CommentText +uid 105,0 +shape (Rectangle +uid 106,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,62000,90000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 107,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,62200,84300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 108,0 +shape (Rectangle +uid 109,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,61000,90000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 110,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,61500,74200,61500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 111,0 +shape (Rectangle +uid 112,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,61000,70000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 113,0 +va (VaSet +fg "32768,0,0" +) +xt "54350,61400,64650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*17 (CommentText +uid 114,0 +shape (Rectangle +uid 115,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,64000,53000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 116,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "49200,64500,49200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*18 (CommentText +uid 117,0 +shape (Rectangle +uid 118,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,65000,53000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 119,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "49200,65500,49200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*19 (CommentText +uid 120,0 +shape (Rectangle +uid 121,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,64000,70000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 122,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,64500,53200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 92,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "49000,61000,90000,66000" +) +oxt "14000,66000,55000,71000" +) +*20 (Net +uid 365,0 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +suid 6,0 +) +declText (MLText +uid 366,0 +va (VaSet +) +xt "-5000,14900,14200,16100" +st "SIGNAL startCounter : std_ulogic" +) +) +*21 (Net +uid 371,0 +decl (Decl +n "done" +t "std_ulogic" +o 7 +suid 7,0 +) +declText (MLText +uid 372,0 +va (VaSet +) +xt "-5000,15800,12600,17000" +st "SIGNAL done : std_ulogic" +) +) +*22 (Net +uid 377,0 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 8 +suid 8,0 +) +declText (MLText +uid 378,0 +va (VaSet +) +xt "-5000,16700,27400,17900" +st "SIGNAL unitNb : unsigned(unitCountBitNb-1 downto 0)" +) +) +*23 (SaComponent +uid 427,0 +optionalChildren [ +*24 (CptPort +uid 407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 408,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,36625,47000,37375" +) +tg (CPTG +uid 409,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 410,0 +va (VaSet +) +xt "48000,36400,51400,37600" +st "clock" +blo "48000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*25 (CptPort +uid 411,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 412,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,38625,47000,39375" +) +tg (CPTG +uid 413,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 414,0 +va (VaSet +) +xt "48000,38400,51300,39600" +st "reset" +blo "48000,39400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*26 (CptPort +uid 415,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 416,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,30625,47000,31375" +) +tg (CPTG +uid 417,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 418,0 +va (VaSet +) +xt "48000,30400,55800,31600" +st "startCounter" +blo "48000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "startCounter" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*27 (CptPort +uid 419,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 420,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,32625,47000,33375" +) +tg (CPTG +uid 421,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 422,0 +va (VaSet +) +xt "48000,32400,52000,33600" +st "unitNb" +blo "48000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 4 +suid 2013,0 +) +) +) +*28 (CptPort +uid 423,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 424,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,30625,63750,31375" +) +tg (CPTG +uid 425,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 426,0 +va (VaSet +) +xt "58900,30400,62000,31600" +st "done" +ju 2 +blo "62000,31400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "done" +t "std_ulogic" +o 5 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 428,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,27000,63000,41000" +) +oxt "40000,8000,56000,22000" +ttg (MlTextGroup +uid 429,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*29 (Text +uid 430,0 +va (VaSet +font "Verdana,9,1" +) +xt "47600,40800,51100,42000" +st "Morse" +blo "47600,41800" +tm "BdLibraryNameMgr" +) +*30 (Text +uid 431,0 +va (VaSet +font "Verdana,9,1" +) +xt "47600,42000,54700,43200" +st "unitCounter" +blo "47600,43000" +tm "CptNameMgr" +) +*31 (Text +uid 432,0 +va (VaSet +font "Verdana,9,1" +) +xt "47600,43200,50900,44400" +st "I_cnt" +blo "47600,44200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 433,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 434,0 +text (MLText +uid 435,0 +va (VaSet +) +xt "47000,44600,74500,47000" +st "unitCountDivide = unitCountDivide ( positive ) +unitCountBitNb = unitCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "unitCountDivide" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +) +viewicon (ZoomableIcon +uid 436,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "47250,39250,48750,40750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*32 (PortIoOut +uid 578,0 +shape (CompositeShape +uid 579,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 580,0 +sl 0 +ro 90 +xt "5000,30625,6500,31375" +) +(Line +uid 581,0 +sl 0 +ro 90 +xt "6500,31000,7000,31000" +pts [ +"7000,31000" +"6500,31000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 582,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 583,0 +va (VaSet +isHidden 1 +) +xt "-1300,30500,4000,31700" +st "readChar" +ju 2 +blo "4000,31500" +tm "WireNameMgr" +) +) +) +*33 (Net +uid 590,0 +decl (Decl +n "readChar" +t "std_ulogic" +o 5 +suid 10,0 +) +declText (MLText +uid 591,0 +va (VaSet +) +xt "-5000,10400,9100,11600" +st "readChar : std_ulogic" +) +) +*34 (PortIoIn +uid 627,0 +shape (CompositeShape +uid 628,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 629,0 +sl 0 +ro 270 +xt "5000,28625,6500,29375" +) +(Line +uid 630,0 +sl 0 +ro 270 +xt "6500,29000,7000,29000" +pts [ +"6500,29000" +"7000,29000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 631,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 632,0 +va (VaSet +isHidden 1 +) +xt "-4500,28500,4000,29700" +st "charNotReady" +ju 2 +blo "4000,29500" +tm "WireNameMgr" +) +) +) +*35 (Net +uid 639,0 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 9 +suid 11,0 +) +declText (MLText +uid 640,0 +va (VaSet +) +xt "-5000,11300,10400,12500" +st "charNotReady : std_ulogic" +) +) +*36 (SaComponent +uid 806,0 +optionalChildren [ +*37 (CptPort +uid 770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 771,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31000,26625,31750,27375" +) +tg (CPTG +uid 772,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 773,0 +va (VaSet +) +xt "24300,26400,30000,27600" +st "morseOut" +ju 2 +blo "30000,27400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*38 (CptPort +uid 774,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 775,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,34625,15000,35375" +) +tg (CPTG +uid 776,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 777,0 +va (VaSet +) +xt "16000,34400,19400,35600" +st "clock" +blo "16000,35400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*39 (CptPort +uid 778,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 779,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,36625,15000,37375" +) +tg (CPTG +uid 780,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 781,0 +va (VaSet +) +xt "16000,36400,19300,37600" +st "reset" +blo "16000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*40 (CptPort +uid 782,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 783,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,28625,15000,29375" +) +tg (CPTG +uid 784,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 785,0 +va (VaSet +) +xt "16000,28400,24500,29600" +st "charNotReady" +blo "16000,29400" +) +) +thePort (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*41 (CptPort +uid 786,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 787,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,26625,15000,27375" +) +tg (CPTG +uid 788,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 789,0 +va (VaSet +) +xt "16000,26400,18900,27600" +st "char" +blo "16000,27400" +) +) +thePort (LogicalPort +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +) +*42 (CptPort +uid 790,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 791,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31000,30625,31750,31375" +) +tg (CPTG +uid 792,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 793,0 +va (VaSet +) +xt "22200,30400,30000,31600" +st "startCounter" +ju 2 +blo "30000,31400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +suid 2012,0 +) +) +) +*43 (CptPort +uid 794,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 795,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31000,32625,31750,33375" +) +tg (CPTG +uid 796,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 797,0 +va (VaSet +) +xt "26000,32400,30000,33600" +st "unitNb" +ju 2 +blo "30000,33400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 7 +suid 2013,0 +) +) +) +*44 (CptPort +uid 798,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 799,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31000,34625,31750,35375" +) +tg (CPTG +uid 800,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 801,0 +va (VaSet +) +xt "22200,34400,30000,35600" +st "counterDone" +ju 2 +blo "30000,35400" +) +) +thePort (LogicalPort +decl (Decl +n "counterDone" +t "std_ulogic" +o 8 +suid 2014,0 +) +) +) +*45 (CptPort +uid 802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 803,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,30625,15000,31375" +) +tg (CPTG +uid 804,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 805,0 +va (VaSet +) +xt "16000,30550,21300,31750" +st "readChar" +blo "16000,31550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 9 +suid 2015,0 +) +) +) +] +shape (Rectangle +uid 807,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,23000,31000,39000" +) +oxt "40000,6000,56000,22000" +ttg (MlTextGroup +uid 808,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +uid 809,0 +va (VaSet +font "Verdana,9,1" +) +xt "15600,38800,19100,40000" +st "Morse" +blo "15600,39800" +tm "BdLibraryNameMgr" +) +*47 (Text +uid 810,0 +va (VaSet +font "Verdana,9,1" +) +xt "15600,39700,28500,40900" +st "charToMorseController" +blo "15600,40700" +tm "CptNameMgr" +) +*48 (Text +uid 811,0 +va (VaSet +font "Verdana,9,1" +) +xt "15600,40600,18600,41800" +st "I_ctl" +blo "15600,41600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 812,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 813,0 +text (MLText +uid 814,0 +va (VaSet +) +xt "15000,42600,41700,45000" +st "characterBitNb = characterBitNb ( positive ) +unitCountBitNb = unitCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "characterBitNb" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +) +viewicon (ZoomableIcon +uid 815,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "15250,37250,16750,38750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*49 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "31750,27000,39000,27000" +pts [ +"39000,27000" +"31750,27000" +] +) +start &1 +end &37 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +) +xt "36000,26000,41700,27200" +st "morseOut" +blo "36000,27000" +tm "WireNameMgr" +) +) +on &2 +) +*50 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "7000,35000,14250,35000" +pts [ +"7000,35000" +"14250,35000" +] +) +start &3 +end &38 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +) +xt "7000,34000,10400,35200" +st "clock" +blo "7000,35000" +tm "WireNameMgr" +) +) +on &4 +) +*51 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "7000,37000,14250,37000" +pts [ +"7000,37000" +"14250,37000" +] +) +start &5 +end &39 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +) +xt "7000,36000,10300,37200" +st "reset" +blo "7000,37000" +tm "WireNameMgr" +) +) +on &6 +) +*52 (Wire +uid 71,0 +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "7000,27000,14250,27000" +pts [ +"7000,27000" +"14250,27000" +] +) +start &7 +end &41 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +) +xt "7000,26000,11000,27200" +st "charIn" +blo "7000,27000" +tm "WireNameMgr" +) +) +on &8 +) +*53 (Wire +uid 367,0 +shape (OrthoPolyLine +uid 368,0 +va (VaSet +vasetType 3 +) +xt "31750,31000,46250,31000" +pts [ +"31750,31000" +"46250,31000" +] +) +start &42 +end &26 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 369,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 370,0 +va (VaSet +) +xt "33750,30000,41550,31200" +st "startCounter" +blo "33750,31000" +tm "WireNameMgr" +) +) +on &20 +) +*54 (Wire +uid 373,0 +shape (OrthoPolyLine +uid 374,0 +va (VaSet +vasetType 3 +) +xt "31750,31000,67000,45000" +pts [ +"63750,31000" +"67000,31000" +"67000,45000" +"35000,45000" +"35000,35000" +"31750,35000" +] +) +start &28 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 375,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 376,0 +va (VaSet +) +xt "65750,30000,68850,31200" +st "done" +blo "65750,31000" +tm "WireNameMgr" +) +) +on &21 +) +*55 (Wire +uid 379,0 +shape (OrthoPolyLine +uid 380,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "31750,33000,46250,33000" +pts [ +"31750,33000" +"46250,33000" +] +) +start &43 +end &27 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 381,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 382,0 +va (VaSet +) +xt "33750,32000,37750,33200" +st "unitNb" +blo "33750,33000" +tm "WireNameMgr" +) +) +on &22 +) +*56 (Wire +uid 389,0 +shape (OrthoPolyLine +uid 390,0 +va (VaSet +vasetType 3 +) +xt "43000,39000,46250,39000" +pts [ +"43000,39000" +"46250,39000" +] +) +end &25 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 395,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 396,0 +va (VaSet +) +xt "43000,38000,46300,39200" +st "reset" +blo "43000,39000" +tm "WireNameMgr" +) +) +on &6 +) +*57 (Wire +uid 397,0 +shape (OrthoPolyLine +uid 398,0 +va (VaSet +vasetType 3 +) +xt "43000,37000,46250,37000" +pts [ +"43000,37000" +"46250,37000" +] +) +end &24 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 403,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 404,0 +va (VaSet +) +xt "43000,36000,46400,37200" +st "clock" +blo "43000,37000" +tm "WireNameMgr" +) +) +on &4 +) +*58 (Wire +uid 584,0 +shape (OrthoPolyLine +uid 585,0 +va (VaSet +vasetType 3 +) +xt "7000,31000,14250,31000" +pts [ +"14250,31000" +"7000,31000" +] +) +start &45 +end &32 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 588,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 589,0 +va (VaSet +) +xt "7000,30000,12300,31200" +st "readChar" +blo "7000,31000" +tm "WireNameMgr" +) +) +on &33 +) +*59 (Wire +uid 633,0 +shape (OrthoPolyLine +uid 634,0 +va (VaSet +vasetType 3 +) +xt "7000,29000,14250,29000" +pts [ +"7000,29000" +"14250,29000" +] +) +start &34 +end &40 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 637,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 638,0 +va (VaSet +) +xt "7000,28000,15500,29200" +st "charNotReady" +blo "7000,29000" +tm "WireNameMgr" +) +) +on &35 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *60 (PackageList +uid 123,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 124,0 +va (VaSet +font "Verdana,8,1" +) +xt "-7000,0,-100,1000" +st "Package List" +blo "-7000,800" +) +*62 (MLText +uid 125,0 +va (VaSet +) +xt "-7000,1000,10500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 126,0 +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +uid 127,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*64 (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*65 (MLText +uid 129,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*66 (Text +uid 130,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*67 (MLText +uid 131,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*68 (Text +uid 132,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*69 (MLText +uid 133,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-8435,-1430,118740,67667" +cachedDiagramExtent "-7000,0,90000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,0" +lastUid 923,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*71 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*72 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*74 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*75 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*77 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*78 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*80 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*81 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*83 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*84 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*86 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*88 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*90 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-7000,5000,0,6000" +st "Declarations" +blo "-7000,5800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-7000,5900,-3600,6900" +st "Ports:" +blo "-7000,6700" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-7000,12200,-2200,13200" +st "Pre User:" +blo "-7000,13000" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,13100,17000,14300" +st "constant unitCountBitNb: positive := 3;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-7000,14000,2000,15000" +st "Diagram Signals:" +blo "-7000,14800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-7000,5000,-1000,6000" +st "Post User:" +blo "-7000,5800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-7000,5000,-7000,5000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 11,0 +usingSuid 1 +emptyRow *91 (LEmptyRow +) +uid 136,0 +optionalChildren [ +*92 (RefLabelRowHdr +) +*93 (TitleRowHdr +) +*94 (FilterRowHdr +) +*95 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*96 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*97 (GroupColHdr +tm "GroupColHdrMgr" +) +*98 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*99 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*100 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*101 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*102 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*103 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*104 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 79,0 +) +*105 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 81,0 +) +*106 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 83,0 +) +*107 (LeafLogPort +port (LogicalPort +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 87,0 +) +*108 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 383,0 +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "done" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 385,0 +) +*110 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 8 +suid 8,0 +) +) +uid 387,0 +) +*111 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 5 +suid 10,0 +) +) +uid 563,0 +) +*112 (LeafLogPort +port (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 9 +suid 11,0 +) +) +uid 626,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 149,0 +optionalChildren [ +*113 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *114 (MRCItem +litem &91 +pos 9 +dimension 20 +) +uid 151,0 +optionalChildren [ +*115 (MRCItem +litem &92 +pos 0 +dimension 20 +uid 152,0 +) +*116 (MRCItem +litem &93 +pos 1 +dimension 23 +uid 153,0 +) +*117 (MRCItem +litem &94 +pos 2 +hidden 1 +dimension 20 +uid 154,0 +) +*118 (MRCItem +litem &104 +pos 0 +dimension 20 +uid 80,0 +) +*119 (MRCItem +litem &105 +pos 1 +dimension 20 +uid 82,0 +) +*120 (MRCItem +litem &106 +pos 2 +dimension 20 +uid 84,0 +) +*121 (MRCItem +litem &107 +pos 4 +dimension 20 +uid 88,0 +) +*122 (MRCItem +litem &108 +pos 6 +dimension 20 +uid 384,0 +) +*123 (MRCItem +litem &109 +pos 7 +dimension 20 +uid 386,0 +) +*124 (MRCItem +litem &110 +pos 8 +dimension 20 +uid 388,0 +) +*125 (MRCItem +litem &111 +pos 5 +dimension 20 +uid 562,0 +) +*126 (MRCItem +litem &112 +pos 3 +dimension 20 +uid 625,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 155,0 +optionalChildren [ +*127 (MRCItem +litem &95 +pos 0 +dimension 20 +uid 156,0 +) +*128 (MRCItem +litem &97 +pos 1 +dimension 50 +uid 157,0 +) +*129 (MRCItem +litem &98 +pos 2 +dimension 100 +uid 158,0 +) +*130 (MRCItem +litem &99 +pos 3 +dimension 50 +uid 159,0 +) +*131 (MRCItem +litem &100 +pos 4 +dimension 100 +uid 160,0 +) +*132 (MRCItem +litem &101 +pos 5 +dimension 100 +uid 161,0 +) +*133 (MRCItem +litem &102 +pos 6 +dimension 50 +uid 162,0 +) +*134 (MRCItem +litem &103 +pos 7 +dimension 80 +uid 163,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 150,0 +vaOverrides [ +] +) +] +) +uid 135,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *135 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*136 (RefLabelRowHdr +) +*137 (TitleRowHdr +) +*138 (FilterRowHdr +) +*139 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*140 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*141 (GroupColHdr +tm "GroupColHdrMgr" +) +*142 (NameColHdr +tm "GenericNameColHdrMgr" +) +*143 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*144 (InitColHdr +tm "GenericValueColHdrMgr" +) +*145 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*146 (EolColHdr +tm "GenericEolColHdrMgr" +) +*147 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "8" +) +uid 89,0 +) +*148 (LogGeneric +generic (GiElement +name "unitCountDivide" +type "positive" +value "10E3" +) +uid 406,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 177,0 +optionalChildren [ +*149 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *150 (MRCItem +litem &135 +pos 2 +dimension 20 +) +uid 179,0 +optionalChildren [ +*151 (MRCItem +litem &136 +pos 0 +dimension 20 +uid 180,0 +) +*152 (MRCItem +litem &137 +pos 1 +dimension 23 +uid 181,0 +) +*153 (MRCItem +litem &138 +pos 2 +hidden 1 +dimension 20 +uid 182,0 +) +*154 (MRCItem +litem &147 +pos 0 +dimension 20 +uid 90,0 +) +*155 (MRCItem +litem &148 +pos 1 +dimension 20 +uid 405,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 183,0 +optionalChildren [ +*156 (MRCItem +litem &139 +pos 0 +dimension 20 +uid 184,0 +) +*157 (MRCItem +litem &141 +pos 1 +dimension 50 +uid 185,0 +) +*158 (MRCItem +litem &142 +pos 2 +dimension 100 +uid 186,0 +) +*159 (MRCItem +litem &143 +pos 3 +dimension 100 +uid 187,0 +) +*160 (MRCItem +litem &144 +pos 4 +dimension 50 +uid 188,0 +) +*161 (MRCItem +litem &145 +pos 5 +dimension 50 +uid 189,0 +) +*162 (MRCItem +litem &146 +pos 6 +dimension 80 +uid 190,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 178,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Morse/hds/char@to@morse/symbol.sb b/05-Morse/Morse/hds/char@to@morse/symbol.sb new file mode 100644 index 0000000..f870308 --- /dev/null +++ b/05-Morse/Morse/hds/char@to@morse/symbol.sb @@ -0,0 +1,1722 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2012,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 211,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +uid 320,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +uid 322,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 6 +suid 2010,0 +) +) +uid 353,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 4 +suid 2011,0 +) +) +uid 462,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 5 +suid 2012,0 +) +) +uid 586,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 100,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 212,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 321,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 323,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 354,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 463,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 587,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "8" +) +uid 432,0 +) +*52 (LogGeneric +generic (GiElement +name "unitCountDivide" +type "positive" +value "10E3" +) +uid 533,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *54 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*55 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 134,0 +) +*56 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 136,0 +) +*57 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*58 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 433,0 +) +*59 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 534,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*60 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 140,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 144,0 +) +*62 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 146,0 +) +*63 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 148,0 +) +*64 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 150,0 +) +*65 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 152,0 +) +*66 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\charToMorse" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorse" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:49:52" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "charToMorse" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\charToMorse\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:49:52" +) +(vvPair +variable "unit" +value "charToMorse" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 309,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,15625,58750,16375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +) +xt "51300,15400,57000,16600" +st "morseOut" +ju 2 +blo "57000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +) +xt "2000,8000,21100,9200" +st "morseOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*69 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,23625,42000,24375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +) +xt "43000,23400,46400,24600" +st "clock" +blo "43000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +) +xt "2000,9000,18900,10200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*70 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,25625,42000,26375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +) +xt "43000,25400,46300,26600" +st "reset" +blo "43000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +) +xt "2000,10000,18800,11200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*71 (CptPort +uid 348,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 349,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,17625,42000,18375" +) +tg (CPTG +uid 350,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 351,0 +va (VaSet +) +xt "43000,17400,51500,18600" +st "charNotReady" +blo "43000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 352,0 +va (VaSet +) +xt "2000,13000,20500,14200" +st "charNotReady : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 6 +suid 2010,0 +) +) +) +*72 (CptPort +uid 457,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 458,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,15625,42000,16375" +) +tg (CPTG +uid 459,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 460,0 +va (VaSet +) +xt "43000,15400,47000,16600" +st "charIn" +blo "43000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 461,0 +va (VaSet +) +xt "2000,11000,39600,12200" +st "charIn : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 4 +suid 2011,0 +) +) +) +*73 (CptPort +uid 581,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 611,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,19625,42000,20375" +) +tg (CPTG +uid 583,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 584,0 +va (VaSet +) +xt "43000,19550,48300,20750" +st "readChar" +blo "43000,20550" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 585,0 +va (VaSet +) +xt "2000,12000,20700,13200" +st "readChar : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 5 +suid 2012,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,12000,58000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "42600,27800,46100,29000" +st "Morse" +blo "42600,28800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "42600,29000,50000,30200" +st "charToMorse" +blo "42600,30000" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +) +xt "42000,31600,60200,36400" +st "Generic Declarations + +characterBitNb positive 8 +unitCountDivide positive 10E3 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "8" +) +(GiElement +name "unitCountDivide" +type "positive" +value "10E3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*88 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "83,49,1216,906" +viewArea "-1100,-1100,75796,50380" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6000,7000,7000" +st "Declarations" +blo "0,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7000,3400,8000" +st "Ports:" +blo "0,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,14000,3000,15000" +st "User:" +blo "0,14800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,6000,7600,7000" +st "Internal User:" +blo "0,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +) +xt "2000,14900,2000,14900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 818,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/char@to@morse@controller/fsm.sm b/05-Morse/Morse/hds/char@to@morse@controller/fsm.sm new file mode 100644 index 0000000..403173f --- /dev/null +++ b/05-Morse/Morse/hds/char@to@morse@controller/fsm.sm @@ -0,0 +1,9218 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +machine (Machine +name "csm" +children [ +(Machine +name "csm" +children [ +] +stateSignalName "current_state" +) +] +) +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (StateMachine +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse@controller\\fsm.sm.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse@controller\\fsm.sm.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "fsm" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse@controller" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\charToMorseController" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorseController" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "fsm.sm" +) +(vvPair +variable "f_logical" +value "fsm.sm" +) +(vvPair +variable "f_noext" +value "fsm" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:50:02" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "charToMorseController" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\char@to@morse@controller\\fsm.sm" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\charToMorseController\\fsm.sm" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sm" +) +(vvPair +variable "this_file" +value "fsm" +) +(vvPair +variable "this_file_logical" +value "fsm" +) +(vvPair +variable "time" +value "14:50:02" +) +(vvPair +variable "unit" +value "charToMorseController" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "fsm" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +uid 279,0 +optionalChildren [ +*1 (ConcurrentSM +uid 1,0 +topDiagram (StateDiagram +LanguageMgr "None" +uid 2,0 +optionalChildren [ +*2 (State +uid 39,0 +shape (Circle +uid 40,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "31000,14000,47000,30000" +radius 8000 +) +name (Text +uid 41,0 +va (VaSet +font "Verdana,12,1" +) +xt "34000,21300,44000,22700" +st "waitForChar" +ju 0 +blo "39000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 42,0 +ps "CenterOffsetStrategy" +text (Text +uid 43,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "39100,22200,43200,23400" +st "wait 2" +blo "39100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 44,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "39000,23100,39000,23100" +blo "39000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 47,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 48,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "42900,25100,43100,25300" +) +autoResize 1 +tline (Line +uid 49,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39000,22000,39000,22000" +pts [ +"39000,22000" +"39000,22000" +] +) +bline (Line +uid 50,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39000,22000,39000,22000" +pts [ +"39000,22000" +"39000,22000" +] +) +ttri (Triangle +uid 51,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "38550,21825,38900,22175" +) +btri (Triangle +uid 52,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "38550,21825,38900,22175" +) +entryActions (MLText +uid 53,0 +va (VaSet +) +xt "39000,22000,39000,22000" +tm "Actions" +) +inActions (MLText +uid 54,0 +va (VaSet +) +xt "39000,22000,39000,22000" +tm "Actions" +) +exitActions (MLText +uid 55,0 +va (VaSet +) +xt "39000,22000,39000,22000" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 45,0 +ps "CenterOffsetStrategy" +text (MLText +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "37400,23000,43500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*3 (SmClockPoint +uid 56,0 +shape (CompositeShape +uid 57,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +uid 58,0 +sl 0 +ro 270 +xt "3250,10500,5500,11500" +) +(OrthoPolyLine +uid 59,0 +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "4150,10700,4749,11300" +pts [ +"4150,11300" +"4449,11300" +"4449,10700" +"4749,10700" +] +) +(Arc2D +pts [ +"3759,11153" +"3504,10847" +"3759,10847" +] +uid 60,0 +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "3431,10800,3759,11199" +) +] +) +name (TextAssociate +uid 61,0 +ps "CenterOffsetStrategy" +text (Text +uid 62,0 +va (VaSet +font "Verdana,8,0" +) +xt "250,10500,2750,11500" +st "clock" +ju 2 +blo "2750,11300" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +uid 63,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 64,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "5500,10450,20000,11550" +) +autoResize 1 +cond (MLText +uid 65,0 +va (VaSet +font "Verdana,8,0" +) +xt "5600,10550,18400,11550" +st "clock'EVENT AND clock = '1'" +tm "SmControlConditionMgr" +) +) +) +*4 (SmResetPoint +uid 66,0 +shape (CompositeShape +uid 67,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +uid 68,0 +sl 0 +ro 270 +xt "3250,19500,5500,20500" +) +(OrthoPolyLine +uid 69,0 +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "4150,19700,4749,20300" +pts [ +"4749,19700" +"4449,19700" +"4449,20300" +"4150,20300" +] +) +(Line +uid 70,0 +sl 0 +ro 270 +xt "3499,19825,3599,19875" +pts [ +"3499,19875" +"3599,19825" +] +) +(Line +uid 71,0 +sl 0 +ro 270 +xt "3499,19825,3499,20175" +pts [ +"3499,20175" +"3499,19825" +] +) +(Circle +uid 72,0 +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,0" +) +xt "4299,19850,4599,20150" +radius 150 +) +] +) +cond (SmControlCondition +uid 78,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 79,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1650,17950,8050,19050" +) +autoResize 1 +cond (MLText +uid 80,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "1750,18050,6950,19050" +st "reset = '1'" +tm "SmControlConditionMgr" +) +) +prio (TransitionPriority +uid 75,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 76,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "5500,19219,7062,20781" +radius 781 +) +pr (Text +uid 77,0 +va (VaSet +isHidden 1 +) +xt "5581,19500,6981,20700" +st "1" +ju 0 +blo "6281,20500" +tm "TransitionPriority" +) +padding "100,100" +) +name (TextAssociate +uid 73,0 +ps "CenterOffsetStrategy" +text (Text +uid 74,0 +va (VaSet +font "Verdana,8,0" +) +xt "750,19500,3250,20500" +st "reset" +ju 2 +blo "3250,20300" +tm "SmControlSignalNameMgr" +) +) +actions (TextAssociate +uid 81,0 +ps "CenterOffsetStrategy" +text (MLText +uid 82,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "11125,24125,18125,25125" +st "< Automatic >" +tm "Actions" +) +) +level 1 +) +*5 (Link +uid 83,0 +shape (CompositeShape +uid 84,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 85,0 +sl 0 +ro 270 +xt "17000,19500,19250,20500" +) +(Line +uid 86,0 +sl 0 +ro 270 +xt "16500,20000,17000,20000" +pts [ +"16500,20000" +"17000,20000" +] +) +] +) +name (TextAssociate +uid 87,0 +ps "CenterOffsetStrategy" +text (Text +uid 88,0 +va (VaSet +font "Verdana,8,1" +) +xt "19750,19500,26550,20500" +st "waitForChar" +blo "19750,20300" +tm "LinkName" +) +) +) +*6 (SmRecoveryStatePoint +uid 89,0 +shape (CompositeShape +uid 90,0 +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Circle +uid 91,0 +sl 0 +xt "3250,14100,5050,15900" +radius 900 +) +(Line +uid 92,0 +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "3724,14574,4576,15426" +pts [ +"3724,15426" +"4576,14574" +] +) +(Line +uid 93,0 +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "3724,14574,4576,15426" +pts [ +"4576,15426" +"3724,14574" +] +) +] +) +) +*7 (Link +uid 94,0 +shape (CompositeShape +uid 95,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 96,0 +sl 0 +ro 270 +xt "17000,14500,19250,15500" +) +(Line +uid 97,0 +sl 0 +ro 270 +xt "16500,15000,17000,15000" +pts [ +"16500,15000" +"17000,15000" +] +) +] +) +name (TextAssociate +uid 98,0 +ps "CenterOffsetStrategy" +text (Text +uid 99,0 +va (VaSet +font "Verdana,8,1" +) +xt "19750,14500,26550,15500" +st "waitForChar" +blo "19750,15300" +tm "LinkName" +) +) +) +*8 (Grouping +uid 120,0 +optionalChildren [ +*9 (CommentText +uid 122,0 +shape (Rectangle +uid 123,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "223000,170000,240000,171000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 124,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "223200,170500,223200,170500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 125,0 +shape (Rectangle +uid 126,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "240000,166000,244000,167000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 127,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "240200,166500,240200,166500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 128,0 +shape (Rectangle +uid 129,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "223000,168000,240000,169000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 130,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "223200,168500,223200,168500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*12 (CommentText +uid 131,0 +shape (Rectangle +uid 132,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "219000,168000,223000,169000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 133,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "219200,168500,219200,168500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*13 (CommentText +uid 134,0 +shape (Rectangle +uid 135,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "240000,167000,260000,171000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 136,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "240200,167200,254300,168400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*14 (CommentText +uid 137,0 +shape (Rectangle +uid 138,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "244000,166000,260000,167000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 139,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "244200,166500,244200,166500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 140,0 +shape (Rectangle +uid 141,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "219000,166000,240000,168000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 142,0 +va (VaSet +fg "32768,0,0" +) +xt "224350,166400,234650,167600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 143,0 +shape (Rectangle +uid 144,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "219000,169000,223000,170000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 145,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "219200,169500,219200,169500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*17 (CommentText +uid 146,0 +shape (Rectangle +uid 147,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "219000,170000,223000,171000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 148,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "219200,170500,219200,170500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*18 (CommentText +uid 149,0 +shape (Rectangle +uid 150,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "223000,169000,240000,170000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 151,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "223200,169500,223200,169500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 121,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "219000,166000,260000,171000" +) +oxt "14000,66000,55000,71000" +) +*19 (State +uid 164,0 +shape (Circle +uid 165,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "61000,14000,77000,30000" +radius 8000 +) +name (Text +uid 166,0 +va (VaSet +font "Verdana,12,1" +) +xt "65300,21300,72700,22700" +st "storeChar" +ju 0 +blo "69000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 167,0 +ps "CenterOffsetStrategy" +text (Text +uid 168,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "69100,22200,73200,23400" +st "wait 2" +blo "69100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 169,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "69000,23100,69000,23100" +blo "69000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 172,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 173,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "68900,24900,69100,25100" +) +autoResize 1 +tline (Line +uid 174,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "63900,24300,74100,24300" +pts [ +"63900,24300" +"74100,24300" +] +) +bline (Line +uid 175,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "63900,23650,74100,23650" +pts [ +"63900,23650" +"74100,23650" +] +) +ttri (Triangle +uid 176,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "64550,23925,64900,24275" +) +btri (Triangle +uid 177,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "64550,21625,64900,21975" +) +entryActions (MLText +uid 178,0 +va (VaSet +) +xt "63900,24100,63900,24100" +tm "Actions" +) +inActions (MLText +uid 179,0 +va (VaSet +) +xt "63900,24500,74100,25500" +tm "Actions" +) +exitActions (MLText +uid 180,0 +va (VaSet +) +xt "65000,21800,65000,21800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 170,0 +ps "CenterOffsetStrategy" +text (MLText +uid 171,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "67400,23000,73500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*20 (State +uid 191,0 +shape (Circle +uid 192,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "99000,14000,115000,30000" +radius 8000 +) +name (Text +uid 193,0 +va (VaSet +font "Verdana,12,1" +) +xt "101750,21300,112250,22700" +st "sendDotStart" +ju 0 +blo "107000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 194,0 +ps "CenterOffsetStrategy" +text (Text +uid 195,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "107100,22200,111200,23400" +st "wait 2" +blo "107100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 196,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "107000,23100,107000,23100" +blo "107000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 199,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 200,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "100650,25400,108650,26600" +) +autoResize 1 +tline (Line +uid 201,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "100750,25300,108550,25300" +pts [ +"100750,25300" +"108550,25300" +] +) +bline (Line +uid 202,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "100750,24650,108550,24650" +pts [ +"100750,24650" +"108550,24650" +] +) +ttri (Triangle +uid 203,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "100300,24925,100650,25275" +) +btri (Triangle +uid 204,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "100300,22625,100650,22975" +) +entryActions (MLText +uid 205,0 +va (VaSet +) +xt "100750,25100,100750,25100" +tm "Actions" +) +inActions (MLText +uid 206,0 +va (VaSet +) +xt "100750,25500,112950,26700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 207,0 +va (VaSet +) +xt "100650,22800,100650,22800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 197,0 +ps "CenterOffsetStrategy" +text (MLText +uid 198,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "105400,23000,111500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*21 (State +uid 325,0 +shape (Circle +uid 326,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "121000,14000,137000,30000" +radius 8000 +) +name (Text +uid 327,0 +va (VaSet +font "Verdana,12,1" +) +xt "123850,21300,134150,22700" +st "sendDotWait" +ju 0 +blo "129000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 328,0 +ps "CenterOffsetStrategy" +text (Text +uid 329,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "129100,22200,133200,23400" +st "wait 2" +blo "129100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 330,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "129000,23100,129000,23100" +blo "129000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 333,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 334,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "121200,23900,136800,26100" +) +autoResize 1 +tline (Line +uid 335,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "121300,23800,136700,23800" +pts [ +"121300,23800" +"136700,23800" +] +) +bline (Line +uid 336,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "121300,23900,136700,23900" +pts [ +"121300,23900" +"136700,23900" +] +) +ttri (Triangle +uid 337,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "120850,23425,121200,23775" +) +btri (Triangle +uid 338,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "120850,21625,121200,21975" +) +entryActions (MLText +uid 339,0 +va (VaSet +) +xt "121300,23600,121300,23600" +tm "Actions" +) +inActions (MLText +uid 340,0 +va (VaSet +) +xt "121300,24000,144700,26400" +st "unitNb <= to_unsigned(1, unitNb'length); +morseOut <= '1';" +tm "Actions" +) +exitActions (MLText +uid 341,0 +va (VaSet +) +xt "125000,21800,125000,21800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 331,0 +ps "CenterOffsetStrategy" +text (MLText +uid 332,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "127400,23000,133500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*22 (State +uid 364,0 +shape (Circle +uid 365,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "143416,13416,160584,30584" +radius 8584 +) +name (Text +uid 366,0 +va (VaSet +font "Verdana,12,1" +) +xt "144450,21300,159550,22700" +st "sendDotSpacerStart" +ju 0 +blo "152000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 367,0 +ps "CenterOffsetStrategy" +text (Text +uid 368,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "152100,22200,156200,23400" +st "wait 2" +blo "152100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 369,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "152000,23100,152000,23100" +blo "152000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 372,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 373,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "149000,24400,157000,25600" +) +autoResize 1 +tline (Line +uid 374,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "149100,24300,156900,24300" +pts [ +"149100,24300" +"156900,24300" +] +) +bline (Line +uid 375,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "149100,23650,156900,23650" +pts [ +"149100,23650" +"156900,23650" +] +) +ttri (Triangle +uid 376,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "148650,23925,149000,24275" +) +btri (Triangle +uid 377,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "148650,21625,149000,21975" +) +entryActions (MLText +uid 378,0 +va (VaSet +) +xt "149100,24100,149100,24100" +tm "Actions" +) +inActions (MLText +uid 379,0 +va (VaSet +) +xt "149100,24500,161300,25700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 380,0 +va (VaSet +) +xt "149000,21800,149000,21800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 370,0 +ps "CenterOffsetStrategy" +text (MLText +uid 371,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "150400,23000,156500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*23 (State +uid 381,0 +shape (Circle +uid 382,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "165515,13515,182485,30485" +radius 8485 +) +name (Text +uid 383,0 +va (VaSet +font "Verdana,12,1" +) +xt "166550,21300,181450,22700" +st "sendDotSpacerWait" +ju 0 +blo "174000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 384,0 +ps "CenterOffsetStrategy" +text (Text +uid 385,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "174100,22200,178200,23400" +st "wait 2" +blo "174100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 386,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "174000,23100,174000,23100" +blo "174000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 389,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 390,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "166200,24400,181800,25600" +) +autoResize 1 +tline (Line +uid 391,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "166300,24300,181700,24300" +pts [ +"166300,24300" +"181700,24300" +] +) +bline (Line +uid 392,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "166300,23650,181700,23650" +pts [ +"166300,23650" +"181700,23650" +] +) +ttri (Triangle +uid 393,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "165850,23925,166200,24275" +) +btri (Triangle +uid 394,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "165850,21625,166200,21975" +) +entryActions (MLText +uid 395,0 +va (VaSet +) +xt "166300,24100,166300,24100" +tm "Actions" +) +inActions (MLText +uid 396,0 +va (VaSet +) +xt "166300,24500,189700,25700" +st "unitNb <= to_unsigned(1, unitNb'length);" +tm "Actions" +) +exitActions (MLText +uid 397,0 +va (VaSet +) +xt "170000,21800,170000,21800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 387,0 +ps "CenterOffsetStrategy" +text (MLText +uid 388,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "172400,23000,178500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*24 (State +uid 428,0 +shape (Circle +uid 429,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "204000,14000,220000,30000" +radius 8000 +) +name (Text +uid 430,0 +va (VaSet +font "Verdana,12,1" +) +xt "205600,21300,218400,22700" +st "sendDotDotStart" +ju 0 +blo "212000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 431,0 +ps "CenterOffsetStrategy" +text (Text +uid 432,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "212100,22200,216200,23400" +st "wait 2" +blo "212100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 433,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "212000,23100,212000,23100" +blo "212000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 436,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 437,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "208000,24400,216000,25600" +) +autoResize 1 +tline (Line +uid 438,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "208100,24300,215900,24300" +pts [ +"208100,24300" +"215900,24300" +] +) +bline (Line +uid 439,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "208100,23650,215900,23650" +pts [ +"208100,23650" +"215900,23650" +] +) +ttri (Triangle +uid 440,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "207650,23925,208000,24275" +) +btri (Triangle +uid 441,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "207650,21625,208000,21975" +) +entryActions (MLText +uid 442,0 +va (VaSet +) +xt "208100,24100,208100,24100" +tm "Actions" +) +inActions (MLText +uid 443,0 +va (VaSet +) +xt "208100,24500,220300,25700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 444,0 +va (VaSet +) +xt "208000,21800,208000,21800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 434,0 +ps "CenterOffsetStrategy" +text (MLText +uid 435,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "210400,23000,216500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*25 (State +uid 445,0 +shape (Circle +uid 446,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "226000,14000,242000,30000" +radius 8000 +) +name (Text +uid 447,0 +va (VaSet +font "Verdana,12,1" +) +xt "227700,21300,240300,22700" +st "sendDotDotWait" +ju 0 +blo "234000,22500" +tm "ONodeName" +) +wait (TextAssociate +uid 448,0 +ps "CenterOffsetStrategy" +text (Text +uid 449,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "234100,22200,238200,23400" +st "wait 2" +blo "234100,23200" +tm "SmWaitText" +) +) +encoding (Text +uid 450,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "234000,23100,234000,23100" +blo "234000,23100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 453,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 454,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "229200,23900,244800,26100" +) +autoResize 1 +tline (Line +uid 455,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "229300,23800,244700,23800" +pts [ +"229300,23800" +"244700,23800" +] +) +bline (Line +uid 456,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "229300,23900,244700,23900" +pts [ +"229300,23900" +"244700,23900" +] +) +ttri (Triangle +uid 457,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "228850,23425,229200,23775" +) +btri (Triangle +uid 458,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "228850,21625,229200,21975" +) +entryActions (MLText +uid 459,0 +va (VaSet +) +xt "229300,23600,229300,23600" +tm "Actions" +) +inActions (MLText +uid 460,0 +va (VaSet +) +xt "229300,24000,252700,26400" +st "unitNb <= to_unsigned(1, unitNb'length); +morseOut <= '1';" +tm "Actions" +) +exitActions (MLText +uid 461,0 +va (VaSet +) +xt "233000,21800,233000,21800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 451,0 +ps "CenterOffsetStrategy" +text (MLText +uid 452,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "232400,23000,238500,24000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*26 (State +uid 502,0 +shape (Circle +uid 503,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "203614,48614,220386,65386" +radius 8386 +) +name (Text +uid 504,0 +va (VaSet +font "Verdana,12,1" +) +xt "205100,56300,218900,57700" +st "sendDotDashStart" +ju 0 +blo "212000,57500" +tm "ONodeName" +) +wait (TextAssociate +uid 505,0 +ps "CenterOffsetStrategy" +text (Text +uid 506,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "212100,57200,216200,58400" +st "wait 2" +blo "212100,58200" +tm "SmWaitText" +) +) +encoding (Text +uid 507,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "212000,58100,212000,58100" +blo "212000,58100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 510,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 511,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "208000,59400,216000,60600" +) +autoResize 1 +tline (Line +uid 512,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "208100,59300,215900,59300" +pts [ +"208100,59300" +"215900,59300" +] +) +bline (Line +uid 513,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "208100,58650,215900,58650" +pts [ +"208100,58650" +"215900,58650" +] +) +ttri (Triangle +uid 514,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "207650,58925,208000,59275" +) +btri (Triangle +uid 515,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "207650,56625,208000,56975" +) +entryActions (MLText +uid 516,0 +va (VaSet +) +xt "208100,59100,208100,59100" +tm "Actions" +) +inActions (MLText +uid 517,0 +va (VaSet +) +xt "208100,59500,220300,60700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 518,0 +va (VaSet +) +xt "208000,56800,208000,56800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 508,0 +ps "CenterOffsetStrategy" +text (MLText +uid 509,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "210400,58000,216500,59000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*27 (State +uid 519,0 +shape (Circle +uid 520,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "225713,48713,242287,65287" +radius 8287 +) +name (Text +uid 521,0 +va (VaSet +font "Verdana,12,1" +) +xt "227200,56300,240800,57700" +st "sendDotDashWait" +ju 0 +blo "234000,57500" +tm "ONodeName" +) +wait (TextAssociate +uid 522,0 +ps "CenterOffsetStrategy" +text (Text +uid 523,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "234100,57200,238200,58400" +st "wait 2" +blo "234100,58200" +tm "SmWaitText" +) +) +encoding (Text +uid 524,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "234000,58100,234000,58100" +blo "234000,58100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 527,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 528,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "229200,58900,244800,61100" +) +autoResize 1 +tline (Line +uid 529,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "229300,58800,244700,58800" +pts [ +"229300,58800" +"244700,58800" +] +) +bline (Line +uid 530,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "229300,58900,244700,58900" +pts [ +"229300,58900" +"244700,58900" +] +) +ttri (Triangle +uid 531,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "228850,58425,229200,58775" +) +btri (Triangle +uid 532,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "228850,56625,229200,56975" +) +entryActions (MLText +uid 533,0 +va (VaSet +) +xt "229300,58600,229300,58600" +tm "Actions" +) +inActions (MLText +uid 534,0 +va (VaSet +) +xt "229300,59000,252700,61400" +st "unitNb <= to_unsigned(3, unitNb'length); +morseOut <= '1';" +tm "Actions" +) +exitActions (MLText +uid 535,0 +va (VaSet +) +xt "233000,56800,233000,56800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 525,0 +ps "CenterOffsetStrategy" +text (MLText +uid 526,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "232400,58000,238500,59000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*28 (State +uid 586,0 +shape (Circle +uid 587,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "101000,109000,117000,125000" +radius 8000 +) +name (Text +uid 588,0 +va (VaSet +font "Verdana,12,1" +) +xt "103250,116300,114750,117700" +st "sendDashStart" +ju 0 +blo "109000,117500" +tm "ONodeName" +) +wait (TextAssociate +uid 589,0 +ps "CenterOffsetStrategy" +text (Text +uid 590,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "109100,117200,113200,118400" +st "wait 2" +blo "109100,118200" +tm "SmWaitText" +) +) +encoding (Text +uid 591,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "109000,118100,109000,118100" +blo "109000,118100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 594,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 595,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "109000,119600,117000,120800" +) +autoResize 1 +tline (Line +uid 596,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "109100,119500,116900,119500" +pts [ +"109100,119500" +"116900,119500" +] +) +bline (Line +uid 597,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "109100,118850,116900,118850" +pts [ +"109100,118850" +"116900,118850" +] +) +ttri (Triangle +uid 598,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "108650,119125,109000,119475" +) +btri (Triangle +uid 599,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "108650,116825,109000,117175" +) +entryActions (MLText +uid 600,0 +va (VaSet +) +xt "109100,119300,109100,119300" +tm "Actions" +) +inActions (MLText +uid 601,0 +va (VaSet +) +xt "109100,119700,121300,120900" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 602,0 +va (VaSet +) +xt "109000,117000,109000,117000" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 592,0 +ps "CenterOffsetStrategy" +text (MLText +uid 593,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "107400,118000,113500,119000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*29 (State +uid 603,0 +shape (Circle +uid 604,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "123000,109000,139000,125000" +radius 8000 +) +name (Text +uid 605,0 +va (VaSet +font "Verdana,12,1" +) +xt "125350,116300,136650,117700" +st "sendDashWait" +ju 0 +blo "131000,117500" +tm "ONodeName" +) +wait (TextAssociate +uid 606,0 +ps "CenterOffsetStrategy" +text (Text +uid 607,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "131100,117200,135200,118400" +st "wait 2" +blo "131100,118200" +tm "SmWaitText" +) +) +encoding (Text +uid 608,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "131000,118100,131000,118100" +blo "131000,118100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 611,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 612,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "123200,118900,138800,121100" +) +autoResize 1 +tline (Line +uid 613,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "123300,118800,138700,118800" +pts [ +"123300,118800" +"138700,118800" +] +) +bline (Line +uid 614,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "123300,118900,138700,118900" +pts [ +"123300,118900" +"138700,118900" +] +) +ttri (Triangle +uid 615,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "122850,118425,123200,118775" +) +btri (Triangle +uid 616,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "122850,116625,123200,116975" +) +entryActions (MLText +uid 617,0 +va (VaSet +) +xt "123300,118600,123300,118600" +tm "Actions" +) +inActions (MLText +uid 618,0 +va (VaSet +) +xt "123300,119000,146700,121400" +st "unitNb <= to_unsigned(3, unitNb'length); +morseOut <= '1';" +tm "Actions" +) +exitActions (MLText +uid 619,0 +va (VaSet +) +xt "127000,116800,127000,116800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 609,0 +ps "CenterOffsetStrategy" +text (MLText +uid 610,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "129400,118000,135500,119000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*30 (State +uid 620,0 +shape (Circle +uid 621,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "144524,107524,163476,126476" +radius 9476 +) +name (Text +uid 622,0 +va (VaSet +font "Verdana,12,1" +) +xt "145950,116300,162050,117700" +st "sendDahsSpacerStart" +ju 0 +blo "154000,117500" +tm "ONodeName" +) +wait (TextAssociate +uid 623,0 +ps "CenterOffsetStrategy" +text (Text +uid 624,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "154100,117200,158200,118400" +st "wait 2" +blo "154100,118200" +tm "SmWaitText" +) +) +encoding (Text +uid 625,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "154000,118100,154000,118100" +blo "154000,118100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 628,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 629,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "151000,119400,159000,120600" +) +autoResize 1 +tline (Line +uid 630,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "151100,119300,158900,119300" +pts [ +"151100,119300" +"158900,119300" +] +) +bline (Line +uid 631,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "151100,118650,158900,118650" +pts [ +"151100,118650" +"158900,118650" +] +) +ttri (Triangle +uid 632,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "150650,118925,151000,119275" +) +btri (Triangle +uid 633,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "150650,116625,151000,116975" +) +entryActions (MLText +uid 634,0 +va (VaSet +) +xt "151100,119100,151100,119100" +tm "Actions" +) +inActions (MLText +uid 635,0 +va (VaSet +) +xt "151100,119500,163300,120700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 636,0 +va (VaSet +) +xt "151000,116800,151000,116800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 626,0 +ps "CenterOffsetStrategy" +text (MLText +uid 627,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "152400,118000,158500,119000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*31 (State +uid 637,0 +shape (Circle +uid 638,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "167070,108070,184930,125930" +radius 8930 +) +name (Text +uid 639,0 +va (VaSet +font "Verdana,12,1" +) +xt "168050,116300,183950,117700" +st "sendDashSpacerWait" +ju 0 +blo "176000,117500" +tm "ONodeName" +) +wait (TextAssociate +uid 640,0 +ps "CenterOffsetStrategy" +text (Text +uid 641,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "176100,117200,180200,118400" +st "wait 2" +blo "176100,118200" +tm "SmWaitText" +) +) +encoding (Text +uid 642,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "176000,118100,176000,118100" +blo "176000,118100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 645,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 646,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "168200,119400,183800,120600" +) +autoResize 1 +tline (Line +uid 647,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "168300,119300,183700,119300" +pts [ +"168300,119300" +"183700,119300" +] +) +bline (Line +uid 648,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "168300,118650,183700,118650" +pts [ +"168300,118650" +"183700,118650" +] +) +ttri (Triangle +uid 649,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "167850,118925,168200,119275" +) +btri (Triangle +uid 650,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "167850,116625,168200,116975" +) +entryActions (MLText +uid 651,0 +va (VaSet +) +xt "168300,119100,168300,119100" +tm "Actions" +) +inActions (MLText +uid 652,0 +va (VaSet +) +xt "168300,119500,191700,120700" +st "unitNb <= to_unsigned(1, unitNb'length);" +tm "Actions" +) +exitActions (MLText +uid 653,0 +va (VaSet +) +xt "172000,116800,172000,116800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 643,0 +ps "CenterOffsetStrategy" +text (MLText +uid 644,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "174400,118000,180500,119000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*32 (State +uid 654,0 +shape (Circle +uid 655,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "205664,108664,222336,125336" +radius 8336 +) +name (Text +uid 656,0 +va (VaSet +font "Verdana,12,1" +) +xt "207100,116300,220900,117700" +st "sendDashDotStart" +ju 0 +blo "214000,117500" +tm "ONodeName" +) +wait (TextAssociate +uid 657,0 +ps "CenterOffsetStrategy" +text (Text +uid 658,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "214100,117200,218200,118400" +st "wait 2" +blo "214100,118200" +tm "SmWaitText" +) +) +encoding (Text +uid 659,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "214000,118100,214000,118100" +blo "214000,118100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 662,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 663,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "210000,119400,218000,120600" +) +autoResize 1 +tline (Line +uid 664,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "210100,119300,217900,119300" +pts [ +"210100,119300" +"217900,119300" +] +) +bline (Line +uid 665,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "210100,118650,217900,118650" +pts [ +"210100,118650" +"217900,118650" +] +) +ttri (Triangle +uid 666,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "209650,118925,210000,119275" +) +btri (Triangle +uid 667,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "209650,116625,210000,116975" +) +entryActions (MLText +uid 668,0 +va (VaSet +) +xt "210100,119100,210100,119100" +tm "Actions" +) +inActions (MLText +uid 669,0 +va (VaSet +) +xt "210100,119500,222300,120700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 670,0 +va (VaSet +) +xt "210000,116800,210000,116800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 660,0 +ps "CenterOffsetStrategy" +text (MLText +uid 661,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "212400,118000,218500,119000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*33 (State +uid 671,0 +shape (Circle +uid 672,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "205169,143169,222831,160831" +radius 8831 +) +name (Text +uid 673,0 +va (VaSet +font "Verdana,12,1" +) +xt "206600,151300,221400,152700" +st "sendDashDashStart" +ju 0 +blo "214000,152500" +tm "ONodeName" +) +wait (TextAssociate +uid 674,0 +ps "CenterOffsetStrategy" +text (Text +uid 675,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "214100,152200,218200,153400" +st "wait 2" +blo "214100,153200" +tm "SmWaitText" +) +) +encoding (Text +uid 676,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "214000,153100,214000,153100" +blo "214000,153100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 679,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 680,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "210000,154400,218000,155600" +) +autoResize 1 +tline (Line +uid 681,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "210100,154300,217900,154300" +pts [ +"210100,154300" +"217900,154300" +] +) +bline (Line +uid 682,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "210100,153650,217900,153650" +pts [ +"210100,153650" +"217900,153650" +] +) +ttri (Triangle +uid 683,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "209650,153925,210000,154275" +) +btri (Triangle +uid 684,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "209650,151625,210000,151975" +) +entryActions (MLText +uid 685,0 +va (VaSet +) +xt "210100,154100,210100,154100" +tm "Actions" +) +inActions (MLText +uid 686,0 +va (VaSet +) +xt "210100,154500,222300,155700" +st "startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 687,0 +va (VaSet +) +xt "210000,151800,210000,151800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 677,0 +ps "CenterOffsetStrategy" +text (MLText +uid 678,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "212400,153000,218500,154000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*34 (State +uid 688,0 +shape (Circle +uid 689,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "227763,108763,244237,125237" +radius 8237 +) +name (Text +uid 690,0 +va (VaSet +font "Verdana,12,1" +) +xt "229200,116300,242800,117700" +st "sendDashDotWait" +ju 0 +blo "236000,117500" +tm "ONodeName" +) +wait (TextAssociate +uid 691,0 +ps "CenterOffsetStrategy" +text (Text +uid 692,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "236100,117200,240200,118400" +st "wait 2" +blo "236100,118200" +tm "SmWaitText" +) +) +encoding (Text +uid 693,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "236000,118100,236000,118100" +blo "236000,118100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 696,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 697,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "231200,118900,246800,121100" +) +autoResize 1 +tline (Line +uid 698,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "231300,118800,246700,118800" +pts [ +"231300,118800" +"246700,118800" +] +) +bline (Line +uid 699,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "231300,118900,246700,118900" +pts [ +"231300,118900" +"246700,118900" +] +) +ttri (Triangle +uid 700,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "230850,118425,231200,118775" +) +btri (Triangle +uid 701,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "230850,116625,231200,116975" +) +entryActions (MLText +uid 702,0 +va (VaSet +) +xt "231300,118600,231300,118600" +tm "Actions" +) +inActions (MLText +uid 703,0 +va (VaSet +) +xt "231300,119000,254700,121400" +st "unitNb <= to_unsigned(1, unitNb'length); +morseOut <= '1';" +tm "Actions" +) +exitActions (MLText +uid 704,0 +va (VaSet +) +xt "235000,116800,235000,116800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 694,0 +ps "CenterOffsetStrategy" +text (MLText +uid 695,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "234400,118000,240500,119000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*35 (State +uid 705,0 +shape (Circle +uid 706,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "227268,143268,244732,160732" +radius 8732 +) +name (Text +uid 707,0 +va (VaSet +font "Verdana,12,1" +) +xt "228700,151300,243300,152700" +st "sendDashDashWait" +ju 0 +blo "236000,152500" +tm "ONodeName" +) +wait (TextAssociate +uid 708,0 +ps "CenterOffsetStrategy" +text (Text +uid 709,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "236100,152200,240200,153400" +st "wait 2" +blo "236100,153200" +tm "SmWaitText" +) +) +encoding (Text +uid 710,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "236000,153100,236000,153100" +blo "236000,153100" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 713,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 714,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "231200,153900,246800,156100" +) +autoResize 1 +tline (Line +uid 715,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "231300,153800,246700,153800" +pts [ +"231300,153800" +"246700,153800" +] +) +bline (Line +uid 716,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "231300,153900,246700,153900" +pts [ +"231300,153900" +"246700,153900" +] +) +ttri (Triangle +uid 717,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "230850,153425,231200,153775" +) +btri (Triangle +uid 718,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "230850,151625,231200,151975" +) +entryActions (MLText +uid 719,0 +va (VaSet +) +xt "231300,153600,231300,153600" +tm "Actions" +) +inActions (MLText +uid 720,0 +va (VaSet +) +xt "231300,154000,254700,156400" +st "unitNb <= to_unsigned(3, unitNb'length); +morseOut <= '1';" +tm "Actions" +) +exitActions (MLText +uid 721,0 +va (VaSet +) +xt "235000,151800,235000,151800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 711,0 +ps "CenterOffsetStrategy" +text (MLText +uid 712,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "234400,153000,240500,154000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*36 (State +uid 1027,0 +shape (Circle +uid 1028,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "31000,46000,47000,62000" +radius 8000 +) +name (Text +uid 1029,0 +va (VaSet +font "Verdana,12,1" +) +xt "35800,53350,42200,54750" +st "popChar" +ju 0 +blo "39000,54550" +tm "ONodeName" +) +wait (TextAssociate +uid 1030,0 +ps "CenterOffsetStrategy" +text (Text +uid 1031,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "39100,54250,43200,55450" +st "wait 2" +blo "39100,55250" +tm "SmWaitText" +) +) +encoding (Text +uid 1032,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "39000,55050,39000,55050" +blo "39000,55050" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1035,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1036,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "26600,56400,51400,57600" +) +autoResize 1 +tline (Line +uid 1037,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "26700,56300,51300,56300" +pts [ +"26700,56300" +"51300,56300" +] +) +bline (Line +uid 1038,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "26700,55650,51300,55650" +pts [ +"26700,55650" +"51300,55650" +] +) +ttri (Triangle +uid 1039,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "26250,55925,26600,56275" +) +btri (Triangle +uid 1040,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "26250,53625,26600,53975" +) +entryActions (MLText +uid 1041,0 +va (VaSet +) +xt "26700,56100,26700,56100" +tm "Actions" +) +inActions (MLText +uid 1042,0 +va (VaSet +) +xt "26700,56500,50100,57700" +st "unitNb <= to_unsigned(3, unitNb'length);" +tm "Actions" +) +exitActions (MLText +uid 1043,0 +va (VaSet +) +xt "35000,53800,35000,53800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1033,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1034,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "37400,55000,43500,56000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*37 (State +uid 1083,0 +shape (Circle +uid 1084,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "31000,78000,47000,94000" +radius 8000 +) +name (Text +uid 1085,0 +va (VaSet +font "Verdana,12,1" +) +xt "35350,85350,42650,86750" +st "popChar1" +ju 0 +blo "39000,86550" +tm "ONodeName" +) +wait (TextAssociate +uid 1086,0 +ps "CenterOffsetStrategy" +text (Text +uid 1087,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "39100,86250,43200,87450" +st "wait 2" +blo "39100,87250" +tm "SmWaitText" +) +) +encoding (Text +uid 1088,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "39000,87050,39000,87050" +blo "39000,87050" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1091,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1092,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "32600,87900,45400,90100" +) +autoResize 1 +tline (Line +uid 1093,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "32700,87800,45300,87800" +pts [ +"32700,87800" +"45300,87800" +] +) +bline (Line +uid 1094,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "32700,87900,45300,87900" +pts [ +"32700,87900" +"45300,87900" +] +) +ttri (Triangle +uid 1095,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "32250,87425,32600,87775" +) +btri (Triangle +uid 1096,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "32250,85625,32600,85975" +) +entryActions (MLText +uid 1097,0 +va (VaSet +) +xt "32700,87600,32700,87600" +tm "Actions" +) +inActions (MLText +uid 1098,0 +va (VaSet +) +xt "32700,88000,44900,90400" +st "readChar <= '1'; +startCounter <= '1';" +tm "Actions" +) +exitActions (MLText +uid 1099,0 +va (VaSet +) +xt "35000,85800,35000,85800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1089,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1090,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "37400,87000,43500,88000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*38 (Transition +uid 100,0 +shape (Spline +uid 101,0 +va (VaSet +vasetType 3 +) +xt "5500,20000,16500,20000" +pts [ +"5500,20000" +"16500,20000" +] +) +start &4 +end &5 +ss 0 +es 0 +cond "reset = '1'" +tb (TransitionBlock +uid 102,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 103,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "9000,19000,17200,21000" +) +autoResize 1 +lineShape (Line +uid 104,0 +va (VaSet +vasetType 3 +) +xt "9500,20400,16700,20400" +pts [ +"9500,20400" +"16700,20400" +] +) +condition (MLText +uid 105,0 +va (VaSet +) +xt "9500,19000,16100,20200" +st "reset = '1'" +tm "Condition" +) +actions (MLText +uid 106,0 +va (VaSet +isHidden 1 +) +xt "8900,20800,17500,22000" +st "< Automatic >" +tm "Actions" +) +) +tp (TransitionPriority +uid 107,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 108,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "5819,19219,7381,20781" +radius 781 +) +pr (Text +uid 109,0 +va (VaSet +isHidden 1 +) +xt "5900,19500,7300,20700" +st "1" +ju 0 +blo "6600,20500" +tm "TransitionPriority" +) +padding "100,100" +) +) +*39 (Transition +uid 110,0 +shape (Spline +uid 111,0 +va (VaSet +vasetType 3 +) +xt "5050,15000,16500,15000" +pts [ +"5050,15000" +"16500,15000" +] +) +start &6 +end &7 +ss 0 +es 0 +tb (TransitionBlock +uid 112,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 113,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "8575,14495,12975,15505" +) +autoResize 1 +lineShape (Line +uid 114,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "10775,15900,10775,15900" +pts [ +"10775,15900" +"10775,15900" +] +) +condition (MLText +uid 115,0 +va (VaSet +) +xt "9075,14500,12475,15500" +tm "Condition" +) +actions (MLText +uid 116,0 +va (VaSet +) +xt "10775,15900,10775,15900" +tm "Actions" +) +) +tp (TransitionPriority +uid 117,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 118,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "5414,14219,6976,15781" +radius 781 +) +pr (Text +uid 119,0 +va (VaSet +isHidden 1 +) +xt "5495,14500,6895,15700" +st "1" +ju 0 +blo "6195,15500" +tm "TransitionPriority" +) +padding "100,100" +) +) +*40 (Transition +uid 181,0 +shape (Spline +uid 182,0 +va (VaSet +vasetType 3 +) +xt "47000,22046,61000,22047" +pts [ +"47000,22046" +"61000,22047" +] +arrow 1 +) +start &2 +end &19 +cond "charNotReady = '0'" +tb (TransitionBlock +uid 183,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 184,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "47550,20000,61850,22300" +) +autoResize 1 +lineShape (Line +uid 185,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "51850,21900,51850,21900" +pts [ +"51850,21900" +"51850,21900" +] +) +condition (MLText +uid 186,0 +va (VaSet +font "Verdana,12,0" +) +xt "48050,20500,61550,21900" +st "charNotReady = '0'" +tm "Condition" +) +actions (MLText +uid 187,0 +va (VaSet +) +xt "54700,22200,54700,22200" +tm "Actions" +) +) +tp (TransitionPriority +uid 188,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 189,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "47619,21265,49181,22827" +radius 781 +) +pr (Text +uid 190,0 +va (VaSet +isHidden 1 +) +xt "47700,21546,49100,22746" +st "1" +ju 0 +blo "48400,22546" +tm "TransitionPriority" +) +padding "100,100" +) +) +*41 (Transition +uid 208,0 +shape (Spline +uid 209,0 +va (VaSet +vasetType 3 +) +xt "77000,22007,99000,22076" +pts [ +"77000,22007" +"99000,22076" +] +arrow 1 +) +start &19 +end &20 +cond "character'val(to_integer(unsigned(char))) = 'e' or +character'val(to_integer(unsigned(char))) = 'i' or +character'val(to_integer(unsigned(char))) = 'a'" +tb (TransitionBlock +uid 210,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 211,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "78350,17000,97650,21000" +) +autoResize 1 +lineShape (Line +uid 212,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "80550,18900,80550,18900" +pts [ +"80550,18900" +"80550,18900" +] +) +condition (MLText +uid 213,0 +va (VaSet +) +xt "78850,17500,106250,21100" +st "character'val(to_integer(unsigned(char))) = 'e' or +character'val(to_integer(unsigned(char))) = 'i' or +character'val(to_integer(unsigned(char))) = 'a'" +tm "Condition" +) +actions (MLText +uid 214,0 +va (VaSet +) +xt "88000,20900,88000,20900" +tm "Actions" +) +) +tp (TransitionPriority +uid 215,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 216,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "78419,21232,79981,22794" +radius 781 +) +pr (Text +uid 217,0 +va (VaSet +) +xt "78500,21513,79900,22713" +st "1" +ju 0 +blo "79200,22513" +tm "TransitionPriority" +) +padding "100,100" +) +) +*42 (Transition +uid 218,0 +shape (Spline +uid 219,0 +va (VaSet +vasetType 3 +) +xt "44325,30000,68900,80030" +pts [ +"68900,30000" +"64000,49000" +"44325,80030" +] +arrow 1 +) +start &19 +end &37 +tb (TransitionBlock +uid 220,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 221,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "63500,48995,67900,50005" +) +autoResize 1 +lineShape (Line +uid 222,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "65700,50400,65700,50400" +pts [ +"65700,50400" +"65700,50400" +] +) +condition (MLText +uid 223,0 +va (VaSet +) +xt "64000,49000,67400,50000" +tm "Condition" +) +actions (MLText +uid 224,0 +va (VaSet +) +xt "65700,50400,65700,50400" +tm "Actions" +) +) +tp (TransitionPriority +uid 225,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 226,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "67231,34796,68793,36358" +radius 781 +) +pr (Text +uid 227,0 +va (VaSet +) +xt "67312,35077,68712,36277" +st "3" +ju 0 +blo "68012,36077" +tm "TransitionPriority" +) +padding "100,100" +) +) +*43 (Transition +uid 342,0 +shape (Spline +uid 343,0 +va (VaSet +vasetType 3 +) +xt "115000,22007,121000,22073" +pts [ +"115000,22073" +"121000,22007" +] +arrow 1 +) +start &20 +end &21 +tb (TransitionBlock +uid 344,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 345,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "117500,22035,121900,23045" +) +autoResize 1 +lineShape (Line +uid 346,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "119700,23440,119700,23440" +pts [ +"119700,23440" +"119700,23440" +] +) +condition (MLText +uid 347,0 +va (VaSet +) +xt "118000,22040,121400,23040" +tm "Condition" +) +actions (MLText +uid 348,0 +va (VaSet +) +xt "119700,23440,119700,23440" +tm "Actions" +) +) +tp (TransitionPriority +uid 349,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 350,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "114819,21285,116381,22847" +radius 781 +) +pr (Text +uid 351,0 +va (VaSet +isHidden 1 +) +xt "114900,21566,116300,22766" +st "1" +ju 0 +blo "115600,22566" +tm "TransitionPriority" +) +padding "100,100" +) +) +*44 (Transition +uid 352,0 +shape (Spline +uid 353,0 +va (VaSet +vasetType 3 +) +xt "46056,27569,123257,82230" +pts [ +"123257,27569" +"104000,59000" +"46056,82230" +] +arrow 1 +) +start &21 +end &37 +cond "character'val(to_integer(unsigned(char))) = 'e'" +tb (TransitionBlock +uid 354,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 355,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "111766,58000,130166,60000" +) +autoResize 1 +lineShape (Line +uid 356,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "113966,59900,113966,59900" +pts [ +"113966,59900" +"113966,59900" +] +) +condition (MLText +uid 357,0 +va (VaSet +) +xt "112266,58500,138366,59700" +st "character'val(to_integer(unsigned(char))) = 'e'" +tm "Condition" +) +actions (MLText +uid 358,0 +va (VaSet +) +xt "120966,59900,120966,59900" +tm "Actions" +) +) +tp (TransitionPriority +uid 359,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 360,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "118614,36002,120176,37564" +radius 781 +) +pr (Text +uid 361,0 +va (VaSet +) +xt "118695,36283,120095,37483" +st "2" +ju 0 +blo "119395,37283" +tm "TransitionPriority" +) +padding "100,100" +) +) +*45 (Transition +uid 398,0 +shape (Spline +uid 399,0 +va (VaSet +vasetType 3 +) +xt "160584,22007,165515,22078" +pts [ +"160584,22078" +"165515,22007" +] +arrow 1 +) +start &22 +end &23 +tb (TransitionBlock +uid 400,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 401,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "162550,22037,166950,23047" +) +autoResize 1 +lineShape (Line +uid 402,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "164750,23442,164750,23442" +pts [ +"164750,23442" +"164750,23442" +] +) +condition (MLText +uid 403,0 +va (VaSet +) +xt "163050,22042,166450,23042" +tm "Condition" +) +actions (MLText +uid 404,0 +va (VaSet +) +xt "164750,23442,164750,23442" +tm "Actions" +) +) +tp (TransitionPriority +uid 405,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 406,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "160296,21289,161858,22851" +radius 781 +) +pr (Text +uid 407,0 +va (VaSet +isHidden 1 +) +xt "160377,21570,161777,22770" +st "1" +ju 0 +blo "161077,22570" +tm "TransitionPriority" +) +padding "100,100" +) +) +*46 (Transition +uid 408,0 +shape (Spline +uid 409,0 +va (VaSet +vasetType 3 +) +xt "137000,22020,143416,22020" +pts [ +"137000,22020" +"143416,22020" +] +arrow 1 +) +start &21 +end &22 +tb (TransitionBlock +uid 410,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 411,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "138100,20495,145900,21505" +) +autoResize 1 +lineShape (Line +uid 412,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "140300,21900,140300,21900" +pts [ +"140300,21900" +"140300,21900" +] +) +condition (MLText +uid 413,0 +va (VaSet +) +xt "138600,20500,145400,21500" +tm "Condition" +) +actions (MLText +uid 414,0 +va (VaSet +) +xt "142000,21900,142000,21900" +tm "Actions" +) +) +tp (TransitionPriority +uid 415,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 416,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "136860,21239,138422,22801" +radius 781 +) +pr (Text +uid 417,0 +va (VaSet +) +xt "136941,21520,138341,22720" +st "3" +ju 0 +blo "137641,22520" +tm "TransitionPriority" +) +padding "100,100" +) +) +*47 (Transition +uid 418,0 +shape (Spline +uid 419,0 +va (VaSet +vasetType 3 +) +xt "122892,6000,134372,15570" +pts [ +"133759,15570" +"134000,10000" +"128000,6000" +"123000,10000" +"124507,15382" +] +arrow 1 +) +start &21 +end &21 +cond "counterDone = '0'" +tb (TransitionBlock +uid 420,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 421,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "127500,5500,135300,7500" +) +autoResize 1 +lineShape (Line +uid 422,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "129700,7400,129700,7400" +pts [ +"129700,7400" +"129700,7400" +] +) +condition (MLText +uid 423,0 +va (VaSet +) +xt "128000,6000,138400,7200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 424,0 +va (VaSet +) +xt "131400,7400,131400,7400" +tm "Actions" +) +) +tp (TransitionPriority +uid 425,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 426,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "133466,12291,135028,13853" +radius 781 +) +pr (Text +uid 427,0 +va (VaSet +) +xt "133547,12572,134947,13772" +st "1" +ju 0 +blo "134247,13572" +tm "TransitionPriority" +) +padding "100,100" +) +) +*48 (Transition +uid 462,0 +shape (Spline +uid 463,0 +va (VaSet +vasetType 3 +) +xt "227892,6000,239372,15570" +pts [ +"238759,15570" +"239000,10000" +"233000,6000" +"228000,10000" +"229507,15382" +] +arrow 1 +) +start &25 +end &25 +cond "counterDone = '0'" +tb (TransitionBlock +uid 464,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 465,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "232500,5500,240300,7500" +) +autoResize 1 +lineShape (Line +uid 466,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "234700,7400,234700,7400" +pts [ +"234700,7400" +"234700,7400" +] +) +condition (MLText +uid 467,0 +va (VaSet +) +xt "233000,6000,243400,7200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 468,0 +va (VaSet +) +xt "236400,7400,236400,7400" +tm "Actions" +) +) +tp (TransitionPriority +uid 469,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 470,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "238466,12291,240028,13853" +radius 781 +) +pr (Text +uid 471,0 +va (VaSet +) +xt "238547,12572,239947,13772" +st "1" +ju 0 +blo "239247,13572" +tm "TransitionPriority" +) +padding "100,100" +) +) +*49 (Transition +uid 472,0 +shape (Spline +uid 473,0 +va (VaSet +vasetType 3 +) +xt "220000,22013,226000,22013" +pts [ +"220000,22013" +"226000,22013" +] +arrow 1 +) +start &24 +end &25 +tb (TransitionBlock +uid 474,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 475,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "222500,22008,226900,23018" +) +autoResize 1 +lineShape (Line +uid 476,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "224700,23413,224700,23413" +pts [ +"224700,23413" +"224700,23413" +] +) +condition (MLText +uid 477,0 +va (VaSet +) +xt "223000,22013,226400,23013" +tm "Condition" +) +actions (MLText +uid 478,0 +va (VaSet +) +xt "224700,23413,224700,23413" +tm "Actions" +) +) +tp (TransitionPriority +uid 479,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 480,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "219819,21232,221381,22794" +radius 781 +) +pr (Text +uid 481,0 +va (VaSet +isHidden 1 +) +xt "219900,21513,221300,22713" +st "1" +ju 0 +blo "220600,22513" +tm "TransitionPriority" +) +padding "100,100" +) +) +*50 (Transition +uid 482,0 +shape (Spline +uid 483,0 +va (VaSet +vasetType 3 +) +xt "182485,22001,204047,22867" +pts [ +"182485,22001" +"204047,22867" +] +arrow 1 +) +start &23 +end &24 +cond "character'val(to_integer(unsigned(char))) = 'i'" +tb (TransitionBlock +uid 484,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 485,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "183900,20000,202100,22000" +) +autoResize 1 +lineShape (Line +uid 486,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "186100,21900,186100,21900" +pts [ +"186100,21900" +"186100,21900" +] +) +condition (MLText +uid 487,0 +va (VaSet +) +xt "184400,20500,210200,21700" +st "character'val(to_integer(unsigned(char))) = 'i'" +tm "Condition" +) +actions (MLText +uid 488,0 +va (VaSet +) +xt "193000,21900,193000,21900" +tm "Actions" +) +) +tp (TransitionPriority +uid 489,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 490,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "183859,21306,185421,22868" +radius 781 +) +pr (Text +uid 491,0 +va (VaSet +) +xt "183940,21587,185340,22787" +st "2" +ju 0 +blo "184640,22587" +tm "TransitionPriority" +) +padding "100,100" +) +) +*51 (Transition +uid 492,0 +shape (Spline +uid 493,0 +va (VaSet +vasetType 3 +) +xt "46941,29800,232222,85032" +pts [ +"232222,29800" +"148000,67000" +"46941,85032" +] +arrow 1 +) +start &25 +end &37 +tb (TransitionBlock +uid 494,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 495,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "147500,66995,151900,68005" +) +autoResize 1 +lineShape (Line +uid 496,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "149700,68400,149700,68400" +pts [ +"149700,68400" +"149700,68400" +] +) +condition (MLText +uid 497,0 +va (VaSet +) +xt "148000,67000,151400,68000" +tm "Condition" +) +actions (MLText +uid 498,0 +va (VaSet +) +xt "149700,68400,149700,68400" +tm "Actions" +) +) +tp (TransitionPriority +uid 499,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 500,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "213913,37541,215475,39103" +radius 781 +) +pr (Text +uid 501,0 +va (VaSet +) +xt "213994,37822,215394,39022" +st "2" +ju 0 +blo "214694,38822" +tm "TransitionPriority" +) +padding "100,100" +) +) +*52 (Transition +uid 536,0 +shape (Spline +uid 537,0 +va (VaSet +vasetType 3 +) +xt "227872,41000,239423,50339" +pts [ +"238930,50339" +"239000,45000" +"233000,41000" +"228000,45000" +"229346,50144" +] +arrow 1 +) +start &27 +end &27 +cond "counterDone = '0'" +tb (TransitionBlock +uid 538,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 539,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "232500,40500,240300,42500" +) +autoResize 1 +lineShape (Line +uid 540,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "234700,42400,234700,42400" +pts [ +"234700,42400" +"234700,42400" +] +) +condition (MLText +uid 541,0 +va (VaSet +) +xt "233000,41000,243400,42200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 542,0 +va (VaSet +) +xt "236400,42400,236400,42400" +tm "Actions" +) +) +tp (TransitionPriority +uid 543,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 544,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "238563,47101,240125,48663" +radius 781 +) +pr (Text +uid 545,0 +va (VaSet +) +xt "238644,47382,240044,48582" +st "1" +ju 0 +blo "239344,48382" +tm "TransitionPriority" +) +padding "100,100" +) +) +*53 (Transition +uid 546,0 +shape (Spline +uid 547,0 +va (VaSet +vasetType 3 +) +xt "220386,57013,225713,57013" +pts [ +"220386,57013" +"225713,57013" +] +arrow 1 +) +start &26 +end &27 +tb (TransitionBlock +uid 548,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 549,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "222550,57008,226950,58018" +) +autoResize 1 +lineShape (Line +uid 550,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "224750,58413,224750,58413" +pts [ +"224750,58413" +"224750,58413" +] +) +condition (MLText +uid 551,0 +va (VaSet +) +xt "223050,57013,226450,58013" +tm "Condition" +) +actions (MLText +uid 552,0 +va (VaSet +) +xt "224750,58413,224750,58413" +tm "Actions" +) +) +tp (TransitionPriority +uid 553,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 554,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "220137,56232,221699,57794" +radius 781 +) +pr (Text +uid 555,0 +va (VaSet +isHidden 1 +) +xt "220218,56513,221618,57713" +st "1" +ju 0 +blo "220918,57513" +tm "TransitionPriority" +) +padding "100,100" +) +) +*54 (Transition +uid 556,0 +shape (Spline +uid 557,0 +va (VaSet +vasetType 3 +) +xt "179184,28716,205304,51951" +pts [ +"179184,28716" +"205304,51951" +] +arrow 1 +) +start &23 +end &26 +tb (TransitionBlock +uid 558,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 559,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "191744,40329,196144,41339" +) +autoResize 1 +lineShape (Line +uid 560,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "193944,41734,193944,41734" +pts [ +"193944,41734" +"193944,41734" +] +) +condition (MLText +uid 561,0 +va (VaSet +) +xt "192244,40334,195644,41334" +tm "Condition" +) +actions (MLText +uid 562,0 +va (VaSet +) +xt "193944,41734,193944,41734" +tm "Actions" +) +) +tp (TransitionPriority +uid 563,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 564,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "181014,30257,182576,31819" +radius 781 +) +pr (Text +uid 565,0 +va (VaSet +) +xt "181095,30538,182495,31738" +st "3" +ju 0 +blo "181795,31538" +tm "TransitionPriority" +) +padding "100,100" +) +) +*55 (Transition +uid 566,0 +shape (Spline +uid 567,0 +va (VaSet +vasetType 3 +) +xt "46489,64914,231540,88812" +pts [ +"231540,64914" +"148000,86000" +"46489,88812" +] +arrow 1 +) +start &27 +end &37 +tb (TransitionBlock +uid 568,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 569,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "147500,85995,151900,87005" +) +autoResize 1 +lineShape (Line +uid 570,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "149700,87400,149700,87400" +pts [ +"149700,87400" +"149700,87400" +] +) +condition (MLText +uid 571,0 +va (VaSet +) +xt "148000,86000,151400,87000" +tm "Condition" +) +actions (MLText +uid 572,0 +va (VaSet +) +xt "149700,87400,149700,87400" +tm "Actions" +) +) +tp (TransitionPriority +uid 573,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 574,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "212724,69387,214286,70949" +radius 781 +) +pr (Text +uid 575,0 +va (VaSet +) +xt "212805,69668,214205,70868" +st "2" +ju 0 +blo "213505,70668" +tm "TransitionPriority" +) +padding "100,100" +) +) +*56 (Transition +uid 576,0 +shape (Spline +uid 577,0 +va (VaSet +vasetType 3 +) +xt "169562,6999,179381,15333" +pts [ +"179248,15333" +"179000,11000" +"175000,7000" +"171000,10000" +"169562,14769" +] +arrow 1 +) +start &23 +end &23 +cond "counterDone = '0'" +tb (TransitionBlock +uid 578,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 579,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "174500,6500,182300,8500" +) +autoResize 1 +lineShape (Line +uid 580,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "176700,8400,176700,8400" +pts [ +"176700,8400" +"176700,8400" +] +) +condition (MLText +uid 581,0 +va (VaSet +) +xt "175000,7000,185400,8200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 582,0 +va (VaSet +) +xt "178400,8400,178400,8400" +tm "Actions" +) +) +tp (TransitionPriority +uid 583,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 584,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "178594,12520,180156,14082" +radius 781 +) +pr (Text +uid 585,0 +va (VaSet +) +xt "178675,12801,180075,14001" +st "1" +ju 0 +blo "179375,13801" +tm "TransitionPriority" +) +padding "100,100" +) +) +*57 (Transition +uid 722,0 +shape (Spline +uid 723,0 +va (VaSet +vasetType 3 +) +xt "222336,117013,227763,117013" +pts [ +"222336,117013" +"227763,117013" +] +arrow 1 +) +start &32 +end &34 +tb (TransitionBlock +uid 724,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 725,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "224550,117008,228950,118018" +) +autoResize 1 +lineShape (Line +uid 726,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "226750,118413,226750,118413" +pts [ +"226750,118413" +"226750,118413" +] +) +condition (MLText +uid 727,0 +va (VaSet +) +xt "225050,117013,228450,118013" +tm "Condition" +) +actions (MLText +uid 728,0 +va (VaSet +) +xt "226750,118413,226750,118413" +tm "Actions" +) +) +tp (TransitionPriority +uid 729,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 730,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "222097,116232,223659,117794" +radius 781 +) +pr (Text +uid 731,0 +va (VaSet +isHidden 1 +) +xt "222178,116513,223578,117713" +st "1" +ju 0 +blo "222878,117513" +tm "TransitionPriority" +) +padding "100,100" +) +) +*58 (Transition +uid 732,0 +shape (Spline +uid 733,0 +va (VaSet +vasetType 3 +) +xt "171329,102000,181523,109983" +pts [ +"181523,109983" +"181000,106000" +"177000,102000" +"173000,105000" +"171329,109389" +] +arrow 1 +) +start &31 +end &31 +cond "counterDone = '0'" +tb (TransitionBlock +uid 734,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 735,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "176500,101500,184300,103500" +) +autoResize 1 +lineShape (Line +uid 736,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "178700,103400,178700,103400" +pts [ +"178700,103400" +"178700,103400" +] +) +condition (MLText +uid 737,0 +va (VaSet +) +xt "177000,102000,187400,103200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 738,0 +va (VaSet +) +xt "180400,103400,180400,103400" +tm "Actions" +) +) +tp (TransitionPriority +uid 739,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 740,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "180717,107231,182279,108793" +radius 781 +) +pr (Text +uid 741,0 +va (VaSet +) +xt "180798,107512,182198,108712" +st "1" +ju 0 +blo "181498,108512" +tm "TransitionPriority" +) +padding "100,100" +) +) +*59 (Transition +uid 742,0 +shape (Spline +uid 743,0 +va (VaSet +vasetType 3 +) +xt "222831,152013,227268,152013" +pts [ +"222831,152013" +"227268,152013" +] +arrow 1 +) +start &33 +end &35 +tb (TransitionBlock +uid 744,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 745,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "224550,152008,228950,153018" +) +autoResize 1 +lineShape (Line +uid 746,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "226750,153413,226750,153413" +pts [ +"226750,153413" +"226750,153413" +] +) +condition (MLText +uid 747,0 +va (VaSet +) +xt "225050,152013,228450,153013" +tm "Condition" +) +actions (MLText +uid 748,0 +va (VaSet +) +xt "226750,153413,226750,153413" +tm "Actions" +) +) +tp (TransitionPriority +uid 749,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 750,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "222493,151232,224055,152794" +radius 781 +) +pr (Text +uid 751,0 +va (VaSet +isHidden 1 +) +xt "222574,151513,223974,152713" +st "1" +ju 0 +blo "223274,152513" +tm "TransitionPriority" +) +padding "100,100" +) +) +*60 (Transition +uid 752,0 +shape (Spline +uid 753,0 +va (VaSet +vasetType 3 +) +xt "229876,101000,241414,110379" +pts [ +"240900,110379" +"241000,105000" +"235000,101000" +"230000,105000" +"231374,110186" +] +arrow 1 +) +start &34 +end &34 +cond "counterDone = '0'" +tb (TransitionBlock +uid 754,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 755,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "234500,100500,242300,102500" +) +autoResize 1 +lineShape (Line +uid 756,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "236700,102400,236700,102400" +pts [ +"236700,102400" +"236700,102400" +] +) +condition (MLText +uid 757,0 +va (VaSet +) +xt "235000,101000,245400,102200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 758,0 +va (VaSet +) +xt "238400,102400,238400,102400" +tm "Actions" +) +) +tp (TransitionPriority +uid 759,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 760,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "240546,107134,242108,108696" +radius 781 +) +pr (Text +uid 761,0 +va (VaSet +) +xt "240627,107415,242027,108615" +st "1" +ju 0 +blo "241327,108415" +tm "TransitionPriority" +) +padding "100,100" +) +) +*61 (Transition +uid 762,0 +shape (Spline +uid 763,0 +va (VaSet +vasetType 3 +) +xt "163476,117007,167070,117086" +pts [ +"163476,117086" +"167070,117007" +] +arrow 1 +) +start &30 +end &31 +tb (TransitionBlock +uid 764,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 765,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "164773,117041,169173,118051" +) +autoResize 1 +lineShape (Line +uid 766,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "166973,118446,166973,118446" +pts [ +"166973,118446" +"166973,118446" +] +) +condition (MLText +uid 767,0 +va (VaSet +) +xt "165273,117046,168673,118046" +tm "Condition" +) +actions (MLText +uid 768,0 +va (VaSet +) +xt "166973,118446,166973,118446" +tm "Actions" +) +) +tp (TransitionPriority +uid 769,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 770,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "163054,116297,164616,117859" +radius 781 +) +pr (Text +uid 771,0 +va (VaSet +isHidden 1 +) +xt "163135,116578,164535,117778" +st "1" +ju 0 +blo "163835,117578" +tm "TransitionPriority" +) +padding "100,100" +) +) +*62 (Transition +uid 772,0 +shape (Spline +uid 773,0 +va (VaSet +vasetType 3 +) +xt "229842,136000,241502,144981" +pts [ +"241195,144981" +"241000,140000" +"235000,136000" +"230000,140000" +"231096,144775" +] +arrow 1 +) +start &35 +end &35 +cond "counterDone = '0'" +tb (TransitionBlock +uid 774,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 775,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "234500,135500,242300,137500" +) +autoResize 1 +lineShape (Line +uid 776,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "236700,137400,236700,137400" +pts [ +"236700,137400" +"236700,137400" +] +) +condition (MLText +uid 777,0 +va (VaSet +) +xt "235000,136000,245400,137200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 778,0 +va (VaSet +) +xt "238400,137400,238400,137400" +tm "Actions" +) +) +tp (TransitionPriority +uid 779,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 780,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "240700,141806,242262,143368" +radius 781 +) +pr (Text +uid 781,0 +va (VaSet +) +xt "240781,142087,242181,143287" +st "1" +ju 0 +blo "241481,143087" +tm "TransitionPriority" +) +padding "100,100" +) +) +*63 (Transition +uid 782,0 +shape (Spline +uid 783,0 +va (VaSet +vasetType 3 +) +xt "117000,117007,123000,117073" +pts [ +"117000,117073" +"123000,117007" +] +arrow 1 +) +start &28 +end &29 +tb (TransitionBlock +uid 784,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 785,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "119500,117035,123900,118045" +) +autoResize 1 +lineShape (Line +uid 786,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "121700,118440,121700,118440" +pts [ +"121700,118440" +"121700,118440" +] +) +condition (MLText +uid 787,0 +va (VaSet +) +xt "120000,117040,123400,118040" +tm "Condition" +) +actions (MLText +uid 788,0 +va (VaSet +) +xt "121700,118440,121700,118440" +tm "Actions" +) +) +tp (TransitionPriority +uid 789,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 790,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "116819,116285,118381,117847" +radius 781 +) +pr (Text +uid 791,0 +va (VaSet +isHidden 1 +) +xt "116900,116566,118300,117766" +st "1" +ju 0 +blo "117600,117566" +tm "TransitionPriority" +) +padding "100,100" +) +) +*64 (Transition +uid 792,0 +shape (Spline +uid 793,0 +va (VaSet +vasetType 3 +) +xt "124892,101000,136372,110570" +pts [ +"135759,110570" +"136000,105000" +"130000,101000" +"125000,105000" +"126507,110382" +] +arrow 1 +) +start &29 +end &29 +cond "counterDone = '0'" +tb (TransitionBlock +uid 794,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 795,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "129500,100500,137300,102500" +) +autoResize 1 +lineShape (Line +uid 796,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "131700,102400,131700,102400" +pts [ +"131700,102400" +"131700,102400" +] +) +condition (MLText +uid 797,0 +va (VaSet +) +xt "130000,101000,140400,102200" +st "counterDone = '0'" +tm "Condition" +) +actions (MLText +uid 798,0 +va (VaSet +) +xt "133400,102400,133400,102400" +tm "Actions" +) +) +tp (TransitionPriority +uid 799,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 800,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "135466,107291,137028,108853" +radius 781 +) +pr (Text +uid 801,0 +va (VaSet +) +xt "135547,107572,136947,108772" +st "1" +ju 0 +blo "136247,108572" +tm "TransitionPriority" +) +padding "100,100" +) +) +*65 (Transition +uid 802,0 +shape (Spline +uid 803,0 +va (VaSet +vasetType 3 +) +xt "184930,117001,205713,117903" +pts [ +"184930,117001" +"205713,117903" +] +arrow 1 +) +start &31 +end &32 +cond "character'val(to_integer(unsigned(char))) = 'i'" +tb (TransitionBlock +uid 804,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 805,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "185956,115018,204156,117018" +) +autoResize 1 +lineShape (Line +uid 806,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "188156,116918,188156,116918" +pts [ +"188156,116918" +"188156,116918" +] +) +condition (MLText +uid 807,0 +va (VaSet +) +xt "186456,115518,212256,116718" +st "character'val(to_integer(unsigned(char))) = 'i'" +tm "Condition" +) +actions (MLText +uid 808,0 +va (VaSet +) +xt "195056,116918,195056,116918" +tm "Actions" +) +) +tp (TransitionPriority +uid 809,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 810,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "186227,116310,187789,117872" +radius 781 +) +pr (Text +uid 811,0 +va (VaSet +) +xt "186308,116591,187708,117791" +st "2" +ju 0 +blo "187008,117591" +tm "TransitionPriority" +) +padding "100,100" +) +) +*66 (Transition +uid 812,0 +shape (Spline +uid 813,0 +va (VaSet +vasetType 3 +) +xt "181456,124069,206949,146684" +pts [ +"181456,124069" +"206949,146684" +] +arrow 1 +) +start &31 +end &33 +tb (TransitionBlock +uid 814,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 815,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "193703,135372,198103,136382" +) +autoResize 1 +lineShape (Line +uid 816,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "195903,136777,195903,136777" +pts [ +"195903,136777" +"195903,136777" +] +) +condition (MLText +uid 817,0 +va (VaSet +) +xt "194203,135377,197603,136377" +tm "Condition" +) +actions (MLText +uid 818,0 +va (VaSet +) +xt "195903,136777,195903,136777" +tm "Actions" +) +) +tp (TransitionPriority +uid 819,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 820,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "183223,125548,184785,127110" +radius 781 +) +pr (Text +uid 821,0 +va (VaSet +) +xt "183304,125829,184704,127029" +st "3" +ju 0 +blo "184004,126829" +tm "TransitionPriority" +) +padding "100,100" +) +) +*67 (Transition +uid 822,0 +shape (Spline +uid 823,0 +va (VaSet +vasetType 3 +) +xt "139000,117020,144524,117022" +pts [ +"139000,117020" +"144524,117022" +] +arrow 1 +) +start &29 +end &30 +tb (TransitionBlock +uid 824,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 825,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "139654,115496,147454,116506" +) +autoResize 1 +lineShape (Line +uid 826,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "141854,116901,141854,116901" +pts [ +"141854,116901" +"141854,116901" +] +) +condition (MLText +uid 827,0 +va (VaSet +) +xt "140154,115501,146954,116501" +tm "Condition" +) +actions (MLText +uid 828,0 +va (VaSet +) +xt "143554,116901,143554,116901" +tm "Actions" +) +) +tp (TransitionPriority +uid 829,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 830,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "138771,116239,140333,117801" +radius 781 +) +pr (Text +uid 831,0 +va (VaSet +) +xt "138852,116520,140252,117720" +st "3" +ju 0 +blo "139552,117520" +tm "TransitionPriority" +) +padding "100,100" +) +) +*68 (Transition +uid 832,0 +shape (Spline +uid 833,0 +va (VaSet +vasetType 3 +) +xt "73887,28333,106119,109537" +pts [ +"73887,28333" +"106119,109537" +] +arrow 1 +) +start &19 +end &28 +cond "character'val(to_integer(unsigned(char))) = 't' or +character'val(to_integer(unsigned(char))) = 'n' or +character'val(to_integer(unsigned(char))) = 'm'" +tb (TransitionBlock +uid 834,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 835,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "78450,38000,97750,42000" +) +autoResize 1 +lineShape (Line +uid 836,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "80650,39900,80650,39900" +pts [ +"80650,39900" +"80650,39900" +] +) +condition (MLText +uid 837,0 +va (VaSet +) +xt "78950,38500,106350,42100" +st "character'val(to_integer(unsigned(char))) = 't' or +character'val(to_integer(unsigned(char))) = 'n' or +character'val(to_integer(unsigned(char))) = 'm'" +tm "Condition" +) +actions (MLText +uid 838,0 +va (VaSet +) +xt "88100,41900,88100,41900" +tm "Actions" +) +) +tp (TransitionPriority +uid 839,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 840,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "76328,35671,77890,37233" +radius 781 +) +pr (Text +uid 841,0 +va (VaSet +) +xt "76409,35952,77809,37152" +st "2" +ju 0 +blo "77109,36952" +tm "TransitionPriority" +) +padding "100,100" +) +) +*69 (Transition +uid 842,0 +shape (Spline +uid 843,0 +va (VaSet +vasetType 3 +) +xt "44563,91749,127867,133409" +pts [ +"127867,124361" +"96283,132000" +"44563,91749" +] +arrow 1 +) +start &29 +end &37 +cond "character'val(to_integer(unsigned(char))) = 't'" +tb (TransitionBlock +uid 844,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 845,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "95783,131500,113983,133500" +) +autoResize 1 +lineShape (Line +uid 846,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "97983,133400,97983,133400" +pts [ +"97983,133400" +"97983,133400" +] +) +condition (MLText +uid 847,0 +va (VaSet +) +xt "96283,132000,122183,133200" +st "character'val(to_integer(unsigned(char))) = 't'" +tm "Condition" +) +actions (MLText +uid 848,0 +va (VaSet +) +xt "104883,133400,104883,133400" +tm "Actions" +) +) +tp (TransitionPriority +uid 849,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 850,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "118245,128090,119807,129652" +radius 781 +) +pr (Text +uid 851,0 +va (VaSet +) +xt "118326,128371,119726,129571" +st "2" +ju 0 +blo "119026,129371" +tm "TransitionPriority" +) +padding "100,100" +) +) +*70 (Transition +uid 852,0 +shape (Spline +uid 853,0 +va (VaSet +vasetType 3 +) +xt "42683,93102,233916,145801" +pts [ +"233916,124969" +"104551,145000" +"42683,93102" +] +arrow 1 +) +start &34 +end &37 +tb (TransitionBlock +uid 854,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 855,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "104051,144995,108451,146005" +) +autoResize 1 +lineShape (Line +uid 856,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "106251,146400,106251,146400" +pts [ +"106251,146400" +"106251,146400" +] +) +condition (MLText +uid 857,0 +va (VaSet +) +xt "104551,145000,107951,146000" +tm "Condition" +) +actions (MLText +uid 858,0 +va (VaSet +) +xt "106251,146400,106251,146400" +tm "Actions" +) +) +tp (TransitionPriority +uid 859,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 860,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "212190,128582,213752,130144" +radius 781 +) +pr (Text +uid 861,0 +va (VaSet +) +xt "212271,128863,213671,130063" +st "2" +ju 0 +blo "212971,129863" +tm "TransitionPriority" +) +padding "100,100" +) +) +*71 (Transition +uid 862,0 +shape (Spline +uid 863,0 +va (VaSet +vasetType 3 +) +xt "38273,93967,232405,161966" +pts [ +"232405,159957" +"103528,156000" +"38273,93967" +] +arrow 1 +) +start &35 +end &37 +tb (TransitionBlock +uid 864,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 865,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "103028,155995,107428,157005" +) +autoResize 1 +lineShape (Line +uid 866,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "105228,157400,105228,157400" +pts [ +"105228,157400" +"105228,157400" +] +) +condition (MLText +uid 867,0 +va (VaSet +) +xt "103528,156000,106928,157000" +tm "Condition" +) +actions (MLText +uid 868,0 +va (VaSet +) +xt "105228,157400,105228,157400" +tm "Actions" +) +) +tp (TransitionPriority +uid 869,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 870,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "209558,159715,211120,161277" +radius 781 +) +pr (Text +uid 871,0 +va (VaSet +) +xt "209639,159996,211039,161196" +st "2" +ju 0 +blo "210339,160996" +tm "TransitionPriority" +) +padding "100,100" +) +) +*72 (Transition +uid 1044,0 +shape (Spline +uid 1045,0 +va (VaSet +vasetType 3 +) +xt "39030,30000,39102,46000" +pts [ +"39102,46000" +"39030,30000" +] +arrow 1 +) +start &36 +end &2 +cond "counterDone = '1'" +tb (TransitionBlock +uid 1046,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1047,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "38566,37500,50366,39500" +) +autoResize 1 +lineShape (Line +uid 1048,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "40766,39400,40766,39400" +pts [ +"40766,39400" +"40766,39400" +] +) +condition (MLText +uid 1049,0 +va (VaSet +) +xt "39066,38000,49466,39200" +st "counterDone = '1'" +tm "Condition" +) +actions (MLText +uid 1050,0 +va (VaSet +) +xt "44466,39400,44466,39400" +tm "Actions" +) +) +tp (TransitionPriority +uid 1051,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1052,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "38313,43618,39875,45180" +radius 781 +) +pr (Text +uid 1053,0 +va (VaSet +isHidden 1 +) +xt "38394,43899,39794,45099" +st "1" +ju 0 +blo "39094,44899" +tm "TransitionPriority" +) +padding "100,100" +) +) +*73 (Transition +uid 1100,0 +shape (Spline +uid 1101,0 +va (VaSet +vasetType 3 +) +xt "39099,62000,39101,78000" +pts [ +"39099,78000" +"39101,62000" +] +arrow 1 +) +start &37 +end &36 +tb (TransitionBlock +uid 1102,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1103,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "38600,69995,45000,71005" +) +autoResize 1 +lineShape (Line +uid 1104,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "40800,71400,40800,71400" +pts [ +"40800,71400" +"40800,71400" +] +) +condition (MLText +uid 1105,0 +va (VaSet +) +xt "39100,70000,44500,71000" +tm "Condition" +) +actions (MLText +uid 1106,0 +va (VaSet +) +xt "41800,71400,41800,71400" +tm "Actions" +) +) +tp (TransitionPriority +uid 1107,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1108,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "38318,75618,39880,77180" +radius 781 +) +pr (Text +uid 1109,0 +va (VaSet +isHidden 1 +) +xt "38399,75899,39799,77099" +st "1" +ju 0 +blo "39099,76899" +tm "TransitionPriority" +) +padding "100,100" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *74 (PackageList +uid 27,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 28,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,3000,6900,4000" +st "Package List" +blo "0,3800" +) +*76 (MLText +uid 29,0 +va (VaSet +) +xt "0,4000,17500,7600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "SmPackageListTextMgr" +) +] +) +compDirBlock (MlTextGroup +uid 30,0 +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 31,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*78 (Text +uid 32,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*79 (MLText +uid 33,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "SmCompilerDirectivesTextMgr" +) +*80 (Text +uid 34,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*81 (MLText +uid 35,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "SmCompilerDirectivesTextMgr" +) +*82 (Text +uid 36,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*83 (MLText +uid 37,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "SmCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-3724,-4655,327592,175357" +cachedDiagramExtent "0,-1000,260000,171000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-2000" +isTopLevel 1 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +localDecl *84 (SmLocalDecl +uid 3,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "22100,-1000,35700,0" +st "Architecture Declarations" +blo "22100,-200" +) +*86 (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "22100,0,22100,0" +tm "LocalDeclTextMgr" +) +*87 (Text +uid 902,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,0,4900,1000" +st "Pre Decls" +blo "0,800" +) +*88 (MLText +uid 903,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,900,0,900" +tm "LocalDeclTextMgr" +) +*89 (Text +uid 905,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,0,6100,1000" +st "Post Decls" +blo "0,800" +) +*90 (MLText +uid 906,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "22100,-100,22100,-100" +tm "LocalDeclTextMgr" +) +] +) +processDecl *91 (SmProcessDecl +uid 6,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 7,0 +va (VaSet +font "Verdana,8,1" +) +xt "69000,-1000,80500,0" +st "Process Declarations" +blo "69000,-200" +) +*93 (Text +uid 8,0 +va (VaSet +font "Verdana,8,1" +) +xt "69000,0,78000,1000" +st "Clocked Process:" +blo "69000,800" +) +*94 (MLText +uid 9,0 +va (VaSet +font "Verdana,8,0" +) +xt "69000,-1000,69000,-1000" +tm "ProcessDeclTextMgr" +) +*95 (Text +uid 10,0 +va (VaSet +font "Verdana,8,1" +) +xt "69000,1000,77700,2000" +st "Output Process:" +blo "69000,1800" +) +*96 (MLText +uid 11,0 +va (VaSet +font "Verdana,8,0" +) +xt "69000,2000,69000,2000" +tm "ProcessDeclTextMgr" +) +] +associable 1 +) +defaultActions *97 (MlTextGroup +uid 12,0 +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +uid 13,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,-1000,7900,0" +st "Global Actions" +blo "0,-200" +) +*99 (Text +uid 14,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6800,1000" +st "Pre Actions:" +blo "0,800" +) +*100 (MLText +uid 15,0 +va (VaSet +) +xt "0,-1000,0,-1000" +tm "Actions" +) +*101 (Text +uid 16,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,1000,7400,2000" +st "Post Actions:" +blo "0,1800" +) +*102 (MLText +uid 17,0 +va (VaSet +) +xt "0,2000,0,2000" +tm "Actions" +) +] +associable 1 +) +archConcurrentStatementBlock *103 (BiTextGroup +uid 18,0 +stg "VerticalLayoutStrategy" +first (Text +uid 19,0 +va (VaSet +font "Verdana,8,1" +) +xt "9200,-1000,21700,0" +st "Concurrent Statements" +blo "9200,-200" +) +second (MLText +uid 20,0 +va (VaSet +) +xt "9200,0,9200,0" +tm "ArchConcStmtTextMgr" +) +associable 1 +) +signalsGenStatus *104 (SmSignalGenStatus +uid 24,0 +stg "VerticalLayoutStrategy" +first (Text +uid 25,0 +va (VaSet +font "Verdana,8,1" +) +xt "35600,-1000,43000,0" +st "Signal Status" +blo "35600,-200" +) +second (MLText +uid 26,0 +va (VaSet +font "Verdana,8,0" +) +xt "35600,0,64800,5000" +st "SIGNAL MODE DEFAULT RESET SCHEME COMMENT +morseOut OUT '0' COMB +startCounter OUT '0' COMB +unitNb OUT (others => '0') COMB +readChar OUT '0' COMB +" +tm "SmSignalsGenStatusTextMgr" +) +) +stateRegBlock *105 (BiTextGroup +uid 21,0 +stg "VerticalLayoutStrategy" +first (Text +uid 22,0 +va (VaSet +font "Verdana,8,1" +) +xt "44300,-1000,58100,0" +st "State Register Statements" +blo "44300,-200" +) +second (MLText +uid 23,0 +va (VaSet +) +xt "44300,0,44300,0" +tm "Actions" +) +associable 1 +) +) +genChar (SmGenChar +uid 38,0 +nextStateClocking 0 +) +encoding (Encoding +scheme 3 +encodingStyles [ +(pair +scheme 0 +style 0 +) +(pair +scheme 1 +style 1 +) +(pair +scheme 2 +style 0 +) +(pair +scheme 3 +style 0 +) +(pair +scheme 4 +style 0 +) +(pair +scheme 5 +style 0 +) +] +otherValues [ +(pair +scheme 0 +otherValue "" +) +(pair +scheme 1 +otherValue "" +) +(pair +scheme 2 +otherValue "" +) +(pair +scheme 3 +otherValue "" +) +(pair +scheme 4 +otherValue "" +) +(pair +scheme 5 +otherValue "" +) +] +attribute 0 +synSafe 0 +outputEncodedLocals 0 +useVerilogParameterRange 0 +radix 2 +) +stateOrder [ +&2 +&19 +&20 +&21 +&22 +&23 +&24 +&25 +&26 +&27 +&28 +&29 +&30 +&31 +&32 +&33 +&34 +&35 +&36 +&37 +] +name "csm" +) +] +lastUid 1196,0 +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +emptyRow *106 (LEmptyRow +) +uid 239,0 +optionalChildren [ +*107 (RefLabelRowHdr +) +*108 (TitleRowHdr +) +*109 (FilterRowHdr +) +*110 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*111 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*112 (GroupColHdr +tm "GroupColHdrMgr" +) +*113 (NameColHdr +tm "SmNameColHdrMgr" +) +*114 (ModeColHdr +tm "SmModeColHdrMgr" +) +*115 (TypeColHdr +tm "SmTypeColHdrMgr" +) +*116 (BoundsColHdr +tm "SmBoundsColHdrMgr" +) +*117 (InitColHdr +tm "SmInitColHdrMgr" +) +*118 (ColumnHdr +tm "SmCategoryColHdrMgr" +) +*119 (ColumnHdr +tm "SmAssignColHdrMgr" +) +*120 (ColumnHdr +tm "SmExprColHdrMgr" +) +*121 (ColumnHdr +tm "SmSchemeColHdrMgr" +) +*122 (ColumnHdr +tm "SmDefValColHdrMgr" +) +*123 (ColumnHdr +tm "SmRstValColHdrMgr" +) +*124 (EolColHdr +tm "SmEolColHdrMgr" +) +*125 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +) +) +uid 152,0 +scheme 0 +defVal "'0'" +) +*126 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +uid 154,0 +cat 1 +expr "clock'EVENT AND clock = '1'" +) +*127 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +uid 156,0 +cat 9 +expr "reset = '1'" +) +*128 (LeafLogPort +port (LogicalPort +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +) +) +uid 229,0 +ass "" +) +*129 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +) +) +uid 231,0 +scheme 0 +defVal "'0'" +) +*130 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 7 +) +) +uid 233,0 +scheme 0 +defVal "(others => '0')" +) +*131 (LeafLogPort +port (LogicalPort +decl (Decl +n "counterDone" +t "std_ulogic" +o 8 +) +) +uid 363,0 +ass "" +) +*132 (LeafLogPort +port (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +) +) +uid 937,0 +ass "" +) +*133 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 9 +) +) +uid 939,0 +scheme 0 +defVal "'0'" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 258,0 +optionalChildren [ +*134 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *135 (MRCItem +litem &106 +pos 9 +dimension 20 +) +uid 260,0 +optionalChildren [ +*136 (MRCItem +litem &107 +pos 0 +dimension 20 +uid 261,0 +) +*137 (MRCItem +litem &108 +pos 1 +dimension 23 +uid 262,0 +) +*138 (MRCItem +litem &109 +pos 2 +hidden 1 +dimension 20 +uid 263,0 +) +*139 (MRCItem +litem &125 +pos 0 +dimension 20 +uid 153,0 +) +*140 (MRCItem +litem &126 +pos 1 +dimension 20 +uid 155,0 +) +*141 (MRCItem +litem &127 +pos 2 +dimension 20 +uid 157,0 +) +*142 (MRCItem +litem &128 +pos 4 +dimension 20 +uid 228,0 +) +*143 (MRCItem +litem &129 +pos 5 +dimension 20 +uid 230,0 +) +*144 (MRCItem +litem &130 +pos 6 +dimension 20 +uid 232,0 +) +*145 (MRCItem +litem &131 +pos 7 +dimension 20 +uid 362,0 +) +*146 (MRCItem +litem &132 +pos 3 +dimension 20 +uid 936,0 +) +*147 (MRCItem +litem &133 +pos 8 +dimension 20 +uid 938,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 264,0 +optionalChildren [ +*148 (MRCItem +litem &110 +pos 0 +dimension 20 +uid 265,0 +) +*149 (MRCItem +litem &112 +pos 1 +dimension 50 +uid 266,0 +) +*150 (MRCItem +litem &113 +pos 2 +dimension 70 +uid 267,0 +) +*151 (MRCItem +litem &114 +pos 3 +dimension 50 +uid 268,0 +) +*152 (MRCItem +litem &115 +pos 4 +dimension 80 +uid 269,0 +) +*153 (MRCItem +litem &116 +pos 5 +dimension 80 +uid 270,0 +) +*154 (MRCItem +litem &117 +pos 6 +dimension 40 +uid 271,0 +) +*155 (MRCItem +litem &118 +pos 7 +dimension 100 +uid 272,0 +) +*156 (MRCItem +litem &119 +pos 8 +dimension 60 +uid 273,0 +) +*157 (MRCItem +litem &120 +pos 9 +dimension 130 +uid 274,0 +) +*158 (MRCItem +litem &121 +pos 10 +dimension 56 +uid 275,0 +) +*159 (MRCItem +litem &122 +pos 11 +dimension 50 +uid 276,0 +) +*160 (MRCItem +litem &123 +pos 12 +dimension 50 +uid 277,0 +) +*161 (MRCItem +litem &124 +pos 13 +dimension 80 +uid 278,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 259,0 +vaOverrides [ +] +) +] +) +uid 238,0 +) +cdmCsm &1 +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *162 (LEmptyRow +) +uid 299,0 +optionalChildren [ +*163 (RefLabelRowHdr +) +*164 (TitleRowHdr +) +*165 (FilterRowHdr +) +*166 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*167 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*168 (GroupColHdr +tm "GroupColHdrMgr" +) +*169 (NameColHdr +tm "GenericNameColHdrMgr" +) +*170 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*171 (InitColHdr +tm "GenericValueColHdrMgr" +) +*172 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*173 (EolColHdr +tm "GenericEolColHdrMgr" +) +*174 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "8" +) +uid 162,0 +) +*175 (LogGeneric +generic (GiElement +name "unitCountBitNb" +type "positive" +value "3" +) +uid 237,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 311,0 +optionalChildren [ +*176 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *177 (MRCItem +litem &162 +pos 2 +dimension 20 +) +uid 313,0 +optionalChildren [ +*178 (MRCItem +litem &163 +pos 0 +dimension 20 +uid 314,0 +) +*179 (MRCItem +litem &164 +pos 1 +dimension 23 +uid 315,0 +) +*180 (MRCItem +litem &165 +pos 2 +hidden 1 +dimension 20 +uid 316,0 +) +*181 (MRCItem +litem &174 +pos 0 +dimension 20 +uid 163,0 +) +*182 (MRCItem +litem &175 +pos 1 +dimension 20 +uid 236,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 317,0 +optionalChildren [ +*183 (MRCItem +litem &166 +pos 0 +dimension 20 +uid 318,0 +) +*184 (MRCItem +litem &168 +pos 1 +dimension 50 +uid 319,0 +) +*185 (MRCItem +litem &169 +pos 2 +dimension 100 +uid 320,0 +) +*186 (MRCItem +litem &170 +pos 3 +dimension 100 +uid 321,0 +) +*187 (MRCItem +litem &171 +pos 4 +dimension 50 +uid 322,0 +) +*188 (MRCItem +litem &172 +pos 5 +dimension 50 +uid 323,0 +) +*189 (MRCItem +litem &173 +pos 6 +dimension 80 +uid 324,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 312,0 +vaOverrides [ +] +) +] +) +uid 298,0 +type 1 +) +signalSuffix "_int" +clockSuffix "_cld" +defaultState (State +shape (Circle +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "-3000,-3000,3000,3000" +radius 3000 +) +name (Text +va (VaSet +font "Verdana,10,1" +) +xt "0,0,1800,1200" +st "s0" +ju 0 +blo "900,1000" +tm "ONodeName" +) +wait (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "1000,900,4600,2100" +st "wait 2" +blo "1000,1900" +tm "SmWaitText" +) +) +encoding (Text +va (VaSet +font "Verdana,8,1" +) +blo "0,0" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3900,3100,4100,3300" +) +autoResize 1 +tline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +pts [ +"0,0" +"0,0" +] +) +bline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +pts [ +"0,0" +"0,0" +] +) +ttri (Triangle +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "-450,-175,-100,175" +) +btri (Triangle +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "-450,-175,-100,175" +) +entryActions (MLText +va (VaSet +) +tm "Actions" +) +inActions (MLText +va (VaSet +) +tm "Actions" +) +exitActions (MLText +va (VaSet +) +tm "Actions" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-1600,1000,4500,2000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +defaultWaitState (State +shape (CircleInOctagon +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +xt "-529,-529,6529,6529" +) +name (Text +va (VaSet +font "Verdana,10,1" +) +xt "0,0,1800,1200" +st "s0" +ju 0 +blo "900,1000" +tm "ONodeName" +) +wait (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,10,1" +) +xt "1000,900,4600,2100" +st "wait 2" +blo "1000,1900" +tm "SmWaitText" +) +) +encoding (Text +va (VaSet +font "Verdana,8,1" +) +blo "0,0" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "8900,6100,9100,6300" +) +autoResize 1 +tline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "5000,3000,5000,3000" +pts [ +"5000,3000" +"5000,3000" +] +) +bline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "5000,3000,5000,3000" +pts [ +"5000,3000" +"5000,3000" +] +) +ttri (Triangle +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "4550,2825,4900,3175" +) +btri (Triangle +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "4550,2825,4900,3175" +) +entryActions (MLText +va (VaSet +) +xt "5000,3000,5000,3000" +tm "Actions" +) +inActions (MLText +va (VaSet +) +xt "5000,3000,5000,3000" +tm "Actions" +) +exitActions (MLText +va (VaSet +) +xt "5000,3000,5000,3000" +tm "Actions" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-1600,1000,4500,2000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +isWait 1 +) +defaultCompositeState (CompositeState +shape (TripleCircle +va (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "-3000,-3000,3000,3000" +radius 3000 +) +name (Text +va (VaSet +font "Verdana,10,1" +) +xt "-900,-600,900,600" +st "s0" +ju 0 +blo "0,400" +tm "ONodeName" +) +childDiagram &0 +) +defaultJunction (Junction +shape (Diamond +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "-1150,-1150,2150,2150" +) +symbol (Text +va (VaSet +font "Verdana,10,1" +) +xt "-150,-100,1150,1100" +st "&" +ju 0 +blo "500,900" +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "2000,1000,2000,1000" +blo "2000,1000" +tm "JunctionName" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-1850,2000,4250,3000" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +defaultEntryPoint (EntryPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "29952,39936,65280" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-875,875,1375,1875" +) +(Line +sl 0 +ro 270 +xt "1375,1375,1875,1375" +pts [ +"1375,1375" +"1875,1375" +] +) +] +) +) +defaultInterruptPoint (InterruptPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-875,875,1375,1875" +) +(Line +sl 0 +ro 270 +xt "1375,1375,1875,1375" +pts [ +"1375,1375" +"1875,1375" +] +) +(CustomPolygon +pts [ +"-625,1600" +"-625,1300" +"25,1425" +"-75,1150" +"1025,1350" +"200,1350" +"375,1600" +] +sl 0 +ro 270 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "65535,0,0" +lineColor "65535,65535,0" +) +xt "-625,1150,1025,1600" +) +] +) +) +defaultLink (Link +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-375,875,1875,1875" +) +(Line +sl 0 +ro 270 +xt "-875,1375,-375,1375" +pts [ +"-875,1375" +"-375,1375" +] +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "2375,875,4375,1875" +st "Link" +blo "2375,1675" +tm "LinkName" +) +) +) +defaultExitPoint (ExitPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "29952,39936,65280" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-375,875,1875,1875" +) +(Line +sl 0 +ro 270 +xt "-875,1375,-375,1375" +pts [ +"-875,1375" +"-375,1375" +] +) +] +) +) +defaultTransition (Transition +shape (Spline +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +arrow 1 +) +ss 0 +es 0 +cond "condition" +tb (TransitionBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-500,-500,3900,1500" +) +autoResize 1 +lineShape (Line +va (VaSet +vasetType 3 +isHidden 1 +) +xt "1700,1400,1700,1400" +pts [ +"1700,1400" +"1700,1400" +] +) +condition (MLText +va (VaSet +) +xt "0,0,5300,1200" +st "condition" +tm "Condition" +) +actions (MLText +va (VaSet +) +xt "1700,1800,1700,1800" +tm "Actions" +) +) +tp (TransitionPriority +ps "PercentageFromStartStrategy" +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-781,-781,781,781" +radius 781 +) +pr (Text +va (VaSet +) +xt "-400,-500,400,500" +st "1" +ju 0 +blo "0,300" +tm "TransitionPriority" +) +padding "100,100" +) +) +defaultClk (SmClockPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"275,1425" +"574,1425" +"574,825" +"874,825" +] +) +(Arc2D +pts [ +"-116,1278" +"-371,972" +"-116,972" +] +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-441,926,-116,1323" +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,8,0" +) +xt "-2425,625,-1125,1625" +st "clk" +ju 2 +blo "-1125,1425" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1625,525,3825,1725" +) +autoResize 1 +cond (MLText +va (VaSet +font "Verdana,8,0" +) +xt "1725,625,4125,1625" +st "cond" +tm "SmControlConditionMgr" +) +) +) +defaultEnable (SmEnablePoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"874,1425" +"574,1425" +"574,825" +"275,825" +] +) +(Arc2D +pts [ +"-130,1263" +"-415,1064" +"-76,1064" +] +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-425,943,-76,1304" +) +(Line +sl 0 +ro 270 +xt "-415,1064,-106,1064" +pts [ +"-415,1064" +"-106,1064" +] +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,8,0" +) +xt "-3725,625,-1125,1625" +st "enable" +ju 2 +blo "-1125,1425" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1625,525,3825,1725" +) +autoResize 1 +cond (MLText +va (VaSet +font "Verdana,8,0" +) +xt "1725,625,4125,1625" +st "cond" +tm "SmControlConditionMgr" +) +) +) +defaultRst (SmResetPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"874,1425" +"574,1425" +"574,825" +"275,825" +] +) +(Line +sl 0 +ro 270 +xt "-376,950,-276,1000" +pts [ +"-376,1000" +"-276,950" +] +) +(Line +sl 0 +ro 270 +xt "-376,950,-376,1300" +pts [ +"-376,1300" +"-376,950" +] +) +(Circle +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,0" +) +xt "424,975,724,1275" +radius 150 +) +] +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "-625,-975,1575,225" +) +autoResize 1 +cond (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-525,-875,1875,125" +st "cond" +tm "SmControlConditionMgr" +) +) +prio (TransitionPriority +ps "PercentageFromStartStrategy" +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "1625,344,3187,1906" +radius 781 +) +pr (Text +va (VaSet +) +xt "2006,625,2806,1625" +st "1" +ju 0 +blo "2406,1425" +tm "TransitionPriority" +) +padding "100,100" +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,8,0" +) +xt "-1925,625,-625,1625" +st "rst" +ju 2 +blo "-625,1425" +tm "SmControlSignalNameMgr" +) +) +actions (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "4750,2625,11750,3625" +st "< Automatic >" +tm "Actions" +) +) +) +defaultRecStatePt (SmRecoveryStatePoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Circle +sl 0 +xt "-900,-900,900,900" +radius 900 +) +(Line +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-426,-426,426,426" +pts [ +"-426,426" +"426,-426" +] +) +(Line +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-426,-426,426,426" +pts [ +"426,426" +"-426,-426" +] +) +] +) +) +activeModelName "StateMachine" +LanguageMgr "Vhdl2008LangMgr" +) diff --git a/05-Morse/Morse/hds/char@to@morse@controller/symbol.sb b/05-Morse/Morse/hds/char@to@morse@controller/symbol.sb new file mode 100644 index 0000000..697fa01 --- /dev/null +++ b/05-Morse/Morse/hds/char@to@morse@controller/symbol.sb @@ -0,0 +1,1933 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2015,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 211,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +uid 320,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +uid 322,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +uid 353,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +uid 462,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +suid 2012,0 +) +) +uid 686,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 7 +suid 2013,0 +) +) +uid 688,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "counterDone" +t "std_ulogic" +o 8 +suid 2014,0 +) +) +uid 690,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 9 +suid 2015,0 +) +) +uid 769,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 100,0 +optionalChildren [ +*25 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*26 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*27 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*28 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 212,0 +) +*29 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 321,0 +) +*30 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 323,0 +) +*31 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 354,0 +) +*32 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 463,0 +) +*33 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 687,0 +) +*34 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 689,0 +) +*35 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 691,0 +) +*36 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 770,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*37 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*38 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*39 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*40 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*41 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*42 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*43 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*44 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "8" +) +uid 432,0 +) +*58 (LogGeneric +generic (GiElement +name "unitCountBitNb" +type "positive" +value "3" +) +uid 692,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*59 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *60 (MRCItem +litem &45 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*61 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 134,0 +) +*62 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 136,0 +) +*63 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*64 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 433,0 +) +*65 (MRCItem +litem &58 +pos 1 +dimension 20 +uid 693,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*66 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 140,0 +) +*67 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 144,0 +) +*68 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 146,0 +) +*69 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 148,0 +) +*70 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 150,0 +) +*71 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 152,0 +) +*72 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/char@to@morse@controller/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/char@to@morse@controller/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/char@to@morse@controller" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/charToMorseController" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorseController" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "charToMorseController" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/char@to@morse@controller/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/charToMorseController/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "charToMorseController" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 309,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,9625,56750,10375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "courier,9,0" +) +xt "49300,9400,55000,10600" +st "morseOut" +ju 2 +blo "55000,10400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8000,20000,8900" +st "morseOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*75 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,17625,40000,18375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "41000,17400,44400,18600" +st "clock" +blo "41000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8900,20000,9800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*76 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,19625,40000,20375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "41000,19400,44300,20600" +st "reset" +blo "41000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,20000,10700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*77 (CptPort +uid 348,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 349,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,11625,40000,12375" +) +tg (CPTG +uid 350,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 351,0 +va (VaSet +font "courier,9,0" +) +xt "41000,11400,47500,12300" +st "charNotReady" +blo "41000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 352,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,20000,11600" +st "charNotReady : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*78 (CptPort +uid 457,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 458,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,9625,40000,10375" +) +tg (CPTG +uid 459,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 460,0 +va (VaSet +font "courier,9,0" +) +xt "41000,9400,43900,10600" +st "char" +blo "41000,10400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 461,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,37000,12500" +st "char : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +) +*79 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 672,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,13625,56750,14375" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 674,0 +va (VaSet +font "courier,9,0" +) +xt "47200,13400,55000,14600" +st "startCounter" +ju 2 +blo "55000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,20000,13400" +st "startCounter : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +suid 2012,0 +) +) +) +*80 (CptPort +uid 676,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 677,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,15625,56750,16375" +) +tg (CPTG +uid 678,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 679,0 +va (VaSet +font "courier,9,0" +) +xt "51000,15400,55000,16600" +st "unitNb" +ju 2 +blo "55000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 680,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,32500,14300" +st "unitNb : OUT unsigned (unitCountBitNb-1 downto 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 7 +suid 2013,0 +) +) +) +*81 (CptPort +uid 681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 717,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,17625,56750,18375" +) +tg (CPTG +uid 683,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 684,0 +va (VaSet +font "courier,9,0" +) +xt "47200,17400,55000,18600" +st "counterDone" +ju 2 +blo "55000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 685,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14300,20000,15200" +st "counterDone : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "counterDone" +t "std_ulogic" +o 8 +suid 2014,0 +) +) +) +*82 (CptPort +uid 764,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 840,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,13625,40000,14375" +) +tg (CPTG +uid 766,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 767,0 +va (VaSet +font "courier,9,0" +) +xt "41000,13550,45000,14450" +st "readChar" +blo "41000,14250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 768,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15200,19000,16100" +st "readChar : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 9 +suid 2015,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,6000,56000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "40600,21800,43100,22700" +st "Morse" +blo "40600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "40600,22700,51600,23600" +st "charToMorseController" +blo "40600,23400" +) +) +gi *83 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,25600,54000,29200" +st "Generic Declarations + +characterBitNb positive 8 +unitCountBitNb positive 3 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "8" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*84 (Grouping +uid 16,0 +optionalChildren [ +*85 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*90 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *95 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*97 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "67,57,1307,902" +viewArea "-1081,-1081,74510,51171" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *98 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *99 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,6000,5400,7000" +st "Declarations" +blo "0,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,7000,2700,8000" +st "Ports:" +blo "0,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,16100,2500,17000" +st "User:" +blo "0,16800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,6000,5800,7000" +st "Internal User:" +blo "0,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17000,2000,17000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 863,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/character@register/symbol.sb b/05-Morse/Morse/hds/character@register/symbol.sb new file mode 100644 index 0000000..4ee3046 --- /dev/null +++ b/05-Morse/Morse/hds/character@register/symbol.sb @@ -0,0 +1,1654 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2015.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2011,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 1 +suid 2007,0 +) +) +uid 211,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +uid 320,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +uid 322,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "charValid" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +uid 353,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +uid 462,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 100,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 212,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 321,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 323,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 354,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 463,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "8" +) +uid 432,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 134,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 136,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 433,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 140,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 144,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 146,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 148,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 150,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 152,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds/character@register/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds/character@register/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds/character@register" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds/characterRegister" +) +(vvPair +variable "date" +value "05/14/18" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "14" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "characterRegister" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "05/14/18" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Athena" +) +(vvPair +variable "graphical_source_time" +value "15:31:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Athena" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "characterRegister" +) +(vvPair +variable "month" +value "May" +) +(vvPair +variable "month_long" +value "May" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds/character@register/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SVN/SEm_labs/Prefs/../Morse/hds/characterRegister/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:31:51" +) +(vvPair +variable "unit" +value "characterRegister" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2015.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2018" +) +(vvPair +variable "yy" +value "18" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 309,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,12625,48750,13375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "courier,9,0" +) +xt "42200,12400,47000,13600" +st "charOut" +ju 2 +blo "47000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,35500,11900" +st "charOut : OUT std_ulogic_vector (characterBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 1 +suid 2007,0 +) +) +) +*65 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,18625,32000,19375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "33000,18400,36400,19600" +st "clock" +blo "33000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,18500,12800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*66 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,20625,32000,21375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "33000,20400,36300,21600" +st "reset" +blo "33000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,18500,13700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*67 (CptPort +uid 348,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 349,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,14625,32000,15375" +) +tg (CPTG +uid 350,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 351,0 +va (VaSet +font "courier,9,0" +) +xt "33000,14400,38500,15600" +st "charValid" +blo "33000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 352,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,18500,14600" +st "charValid : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "charValid" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*68 (CptPort +uid 457,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 458,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,12625,32000,13375" +) +tg (CPTG +uid 459,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 460,0 +va (VaSet +font "courier,9,0" +) +xt "33000,12400,37000,13600" +st "charIn" +blo "33000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 461,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,34500,15500" +st "charIn : IN std_ulogic_vector (characterBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,9000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22800,35100,23700" +st "Morse" +blo "32600,23500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,23700,41600,24600" +st "characterRegister" +blo "32600,24400" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,26600,46000,29300" +st "Generic Declarations + +characterBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "99,41,1392,886" +viewArea "-1000,-1000,75254,50901" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15500,2500,16400" +st "User:" +blo "0,16200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,2000,16400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 509,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/envelope@retreiver/symbol.sb b/05-Morse/Morse/hds/envelope@retreiver/symbol.sb new file mode 100644 index 0000000..ae501a5 --- /dev/null +++ b/05-Morse/Morse/hds/envelope@retreiver/symbol.sb @@ -0,0 +1,1609 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2014,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +uid 320,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +uid 322,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "morseWithTone" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +uid 686,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +uid 690,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 100,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 321,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 323,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 687,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 691,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "toneDivide" +type "positive" +value "100E3" +) +uid 432,0 +) +*48 (LogGeneric +generic (GiElement +name "deglitchBitNb" +type "positive" +value "8" +) +uid 813,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 134,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 136,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 433,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 814,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 140,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 144,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 146,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 148,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 150,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 152,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/envelope@retreiver/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/envelope@retreiver/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/envelope@retreiver" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/envelopeRetreiver" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "envelopeRetreiver" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "envelopeRetreiver" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/envelope@retreiver/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/envelopeRetreiver/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "envelopeRetreiver" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,17625,40000,18375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "41000,17400,43500,18300" +st "clock" +blo "41000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,20500,8700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*65 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,19625,40000,20375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "41000,19400,43500,20300" +st "reset" +blo "41000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,20500,9600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*66 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 741,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,13625,40000,14375" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 674,0 +va (VaSet +font "courier,9,0" +) +xt "40000,13550,47000,14450" +st "morseWithTone" +blo "40000,14250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,20500,10500" +st "morseWithTone : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "morseWithTone" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*67 (CptPort +uid 681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 743,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,13625,56750,14375" +) +tg (CPTG +uid 683,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 684,0 +va (VaSet +font "courier,9,0" +) +xt "49000,13550,56000,14450" +st "morseEnvelope" +ju 2 +blo "56000,14250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 685,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,19500,11400" +st "morseEnvelope : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,10000,56000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "40600,21800,43100,22700" +st "Morse" +blo "40600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "40600,22700,49600,23600" +st "envelopeRetreiver" +blo "40600,23400" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,25600,55500,29200" +st "Generic Declarations + +toneDivide positive 100E3 +deglitchBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "toneDivide" +type "positive" +value "100E3" +) +(GiElement +name "deglitchBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*82 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "75,53,1373,898" +viewArea "-1100,-1100,76579,41425" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,6000,6500,6900" +st "Declarations" +blo "0,6700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6900,3000,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,11400,2500,12300" +st "User:" +blo "0,12100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,6000,7500,6900" +st "Internal User:" +blo "0,6700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,2000,12300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 837,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/morse@decoder/struct.bd b/05-Morse/Morse/hds/morse@decoder/struct.bd new file mode 100644 index 0000000..19d1636 --- /dev/null +++ b/05-Morse/Morse/hds/morse@decoder/struct.bd @@ -0,0 +1,5645 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_len" +duLibraryName "Morse" +duName "symbolLengthCounter" +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +mwi 0 +uid 1565,0 +) +(Instance +name "I_tx" +duLibraryName "RS232" +duName "serialPortTransmitter" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/uartBaudRate + 0.5)" +) +] +mwi 0 +uid 1973,0 +) +(Instance +name "I_dec" +duLibraryName "Morse" +duName "morseToCharDecoder" +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +(GiElement +name "characterBitNb" +type "positive" +value "uartDataBitNb" +) +] +mwi 0 +uid 2035,0 +) +(Instance +name "I_env" +duLibraryName "Morse" +duName "envelopeRetreiver" +elements [ +(GiElement +name "toneDivide" +type "positive" +value "integer(clockFrequency/toneFrequency + 0.5)" +) +(GiElement +name "deglitchBitNb" +type "positive" +value "deglitchBitNb" +) +] +mwi 0 +uid 2185,0 +) +(Instance +name "I0" +duLibraryName "Memory" +duName "FIFO_bram" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "depth" +type "positive" +value "fifoDepth" +) +] +mwi 0 +uid 2356,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@decoder\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@decoder\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@decoder" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morseDecoder" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "08:02:13" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "morseDecoder" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@decoder\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morseDecoder\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "08:02:13" +) +(vvPair +variable "unit" +value "morseDecoder" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 116,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "10000,15625,11500,16375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "11500,16000,12000,16000" +pts [ +"11500,16000" +"12000,16000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +) +xt "5600,15500,9000,16700" +st "clock" +ju 2 +blo "9000,16500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,57000,7200,58000" +st "clock : std_ulogic" +) +) +*3 (Net +uid 35,0 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,56000,8600,57000" +st "morseCode : std_ulogic" +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "10000,17625,11500,18375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "11500,18000,12000,18000" +pts [ +"11500,18000" +"12000,18000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +) +xt "5700,17500,9000,18700" +st "reset" +ju 2 +blo "9000,18500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,58000,7200,59000" +st "reset : std_ulogic" +) +) +*6 (Grouping +uid 73,0 +optionalChildren [ +*7 (CommentText +uid 75,0 +shape (Rectangle +uid 76,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,73000,83000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 77,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,73500,66200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 78,0 +shape (Rectangle +uid 79,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,69000,87000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 80,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,69500,83200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 81,0 +shape (Rectangle +uid 82,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,71000,83000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 83,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,71500,66200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 84,0 +shape (Rectangle +uid 85,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,71000,66000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 86,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,71500,62200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 87,0 +shape (Rectangle +uid 88,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,70000,103000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 89,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,70200,97300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*12 (CommentText +uid 90,0 +shape (Rectangle +uid 91,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,69000,103000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 92,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,69500,87200,69500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*13 (CommentText +uid 93,0 +shape (Rectangle +uid 94,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,69000,83000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 95,0 +va (VaSet +fg "32768,0,0" +) +xt "67350,69400,77650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*14 (CommentText +uid 96,0 +shape (Rectangle +uid 97,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,72000,66000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 98,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,72500,62200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 99,0 +shape (Rectangle +uid 100,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,73000,66000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 101,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,73500,62200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 102,0 +shape (Rectangle +uid 103,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,72000,83000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 104,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,72500,66200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 74,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "62000,69000,103000,74000" +) +oxt "14000,66000,55000,71000" +) +*17 (PortIoIn +uid 1148,0 +shape (CompositeShape +uid 1149,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1150,0 +sl 0 +ro 270 +xt "10000,11625,11500,12375" +) +(Line +uid 1151,0 +sl 0 +ro 270 +xt "11500,12000,12000,12000" +pts [ +"11500,12000" +"12000,12000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1152,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1153,0 +va (VaSet +isHidden 1 +) +xt "2600,11500,9000,12700" +st "morseCode" +ju 2 +blo "9000,12500" +tm "WireNameMgr" +) +) +) +*18 (PortIoOut +uid 1154,0 +shape (CompositeShape +uid 1155,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1156,0 +sl 0 +ro 270 +xt "92500,39625,94000,40375" +) +(Line +uid 1157,0 +sl 0 +ro 270 +xt "92000,40000,92500,40000" +pts [ +"92000,40000" +"92500,40000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1158,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1159,0 +va (VaSet +isHidden 1 +) +xt "95000,39500,97800,40700" +st "TxD" +blo "95000,40500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 1166,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 17,0 +) +declText (MLText +uid 1167,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,59000,7400,60000" +st "TxD : std_ulogic" +) +) +*20 (SaComponent +uid 1565,0 +optionalChildren [ +*21 (CptPort +uid 1541,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1542,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,15625,44000,16375" +) +tg (CPTG +uid 1543,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1544,0 +va (VaSet +) +xt "45000,15400,48400,16600" +st "clock" +blo "45000,16400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*22 (CptPort +uid 1545,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1546,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,17625,44000,18375" +) +tg (CPTG +uid 1547,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1548,0 +va (VaSet +) +xt "45000,17400,48300,18600" +st "reset" +blo "45000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*23 (CptPort +uid 1549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,11625,44000,12375" +) +tg (CPTG +uid 1551,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1552,0 +va (VaSet +) +xt "45000,11550,51400,12750" +st "morseCode" +blo "45000,12550" +) +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*24 (CptPort +uid 1553,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1554,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,13625,60750,14375" +) +tg (CPTG +uid 1555,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1556,0 +va (VaSet +) +xt "49700,13550,59000,14750" +st "symbolDuration" +ju 2 +blo "59000,14550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 4 +suid 2014,0 +) +) +) +*25 (CptPort +uid 1557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,15625,60750,16375" +) +tg (CPTG +uid 1559,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1560,0 +va (VaSet +) +xt "51400,15550,59000,16750" +st "symbolValid" +ju 2 +blo "59000,16550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "symbolValid" +t "std_ulogic" +o 5 +suid 2015,0 +) +) +) +*26 (CptPort +uid 1561,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1562,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,11625,60750,12375" +) +tg (CPTG +uid 1563,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1564,0 +va (VaSet +) +xt "51100,11550,59000,12750" +st "symbolValue" +ju 2 +blo "59000,12550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 2016,0 +) +) +) +] +shape (Rectangle +uid 1566,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,8000,60000,20000" +) +oxt "40000,10000,56000,22000" +ttg (MlTextGroup +uid 1567,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*27 (Text +uid 1568,0 +va (VaSet +font "Verdana,9,1" +) +xt "44600,19800,48100,21000" +st "Morse" +blo "44600,20800" +tm "BdLibraryNameMgr" +) +*28 (Text +uid 1569,0 +va (VaSet +font "Verdana,9,1" +) +xt "44600,20700,56700,21900" +st "symbolLengthCounter" +blo "44600,21700" +tm "CptNameMgr" +) +*29 (Text +uid 1570,0 +va (VaSet +font "Verdana,9,1" +) +xt "44600,21600,47800,22800" +st "I_len" +blo "44600,22600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1571,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1572,0 +text (MLText +uid 1573,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,23600,77800,25600" +st "unitCountDivide = integer(clockFrequency*unitDuration + 0.5) ( positive ) +unitCountBitNb = unitCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +) +viewicon (ZoomableIcon +uid 1574,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "44250,18250,45750,19750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*30 (Net +uid 1575,0 +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 20,0 +) +declText (MLText +uid 1576,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,65000,11700,66000" +st "SIGNAL symbolValue : std_ulogic" +) +) +*31 (Net +uid 1583,0 +decl (Decl +n "symbolValid" +t "std_ulogic" +o 7 +suid 21,0 +) +declText (MLText +uid 1584,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,66000,11400,67000" +st "SIGNAL symbolValid : std_ulogic" +) +) +*32 (Net +uid 1591,0 +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 8 +suid 22,0 +) +declText (MLText +uid 1592,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,67000,24600,68000" +st "SIGNAL symbolDuration : unsigned(unitCountBitNb-1 DOWNTO 0)" +) +) +*33 (Net +uid 1727,0 +decl (Decl +n "charValid" +t "std_ulogic" +o 9 +suid 23,0 +) +declText (MLText +uid 1728,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,68000,10800,69000" +st "SIGNAL charValid : std_ulogic" +) +) +*34 (Net +uid 1735,0 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 10 +suid 24,0 +) +declText (MLText +uid 1736,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,69000,26500,70000" +st "SIGNAL charOut : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0)" +) +) +*35 (HdlText +uid 1854,0 +optionalChildren [ +*36 (EmbeddedText +uid 1859,0 +commentText (CommentText +uid 1860,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1861,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "44000,47000,60000,61000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1862,0 +va (VaSet +) +xt "44200,47200,59500,60400" +st " +process(reset, clock) + begin + if reset = '1' then + txSend <= '0'; + elsif rising_edge(clock) then + if ( (txFifoEmpty = '0') and (txBusy = '0') ) then + txSend <= '1'; + else + txSend <= '0'; + end if; + end if; + end process; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1855,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "44000,46000,60000,62000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1856,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 1857,0 +va (VaSet +) +xt "44400,62000,47000,63200" +st "eb2" +blo "44400,63000" +tm "HdlTextNameMgr" +) +*38 (Text +uid 1858,0 +va (VaSet +) +xt "44400,63000,45800,64200" +st "2" +blo "44400,64000" +tm "HdlTextNumberMgr" +) +] +) +) +*39 (Net +uid 1901,0 +decl (Decl +n "txWord" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 11 +suid 25,0 +) +declText (MLText +uid 1902,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,70000,26600,71000" +st "SIGNAL txWord : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0)" +) +) +*40 (Net +uid 1903,0 +decl (Decl +n "txBusy" +t "std_ulogic" +o 12 +suid 26,0 +) +declText (MLText +uid 1904,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,71000,10800,72000" +st "SIGNAL txBusy : std_ulogic" +) +) +*41 (Net +uid 1905,0 +decl (Decl +n "txSend" +t "std_ulogic" +o 13 +suid 27,0 +) +declText (MLText +uid 1906,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,72000,10900,73000" +st "SIGNAL txSend : std_ulogic" +) +) +*42 (SaComponent +uid 1973,0 +optionalChildren [ +*43 (CptPort +uid 1949,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1950,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,39625,84750,40375" +) +tg (CPTG +uid 1951,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1952,0 +va (VaSet +) +xt "80200,39400,83000,40600" +st "TxD" +ju 2 +blo "83000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*44 (CptPort +uid 1953,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1954,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,47625,68000,48375" +) +tg (CPTG +uid 1955,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1956,0 +va (VaSet +) +xt "69000,47400,72400,48600" +st "clock" +blo "69000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*45 (CptPort +uid 1957,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1958,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,49625,68000,50375" +) +tg (CPTG +uid 1959,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1960,0 +va (VaSet +) +xt "69000,49400,72300,50600" +st "reset" +blo "69000,50400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*46 (CptPort +uid 1961,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1962,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,39625,68000,40375" +) +tg (CPTG +uid 1963,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1964,0 +va (VaSet +) +xt "68999,39400,72999,40600" +st "dataIn" +blo "68999,40400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*47 (CptPort +uid 1965,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1966,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,41625,68000,42375" +) +tg (CPTG +uid 1967,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1968,0 +va (VaSet +) +xt "69000,41400,72100,42600" +st "send" +blo "69000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*48 (CptPort +uid 1969,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1970,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,43625,68000,44375" +) +tg (CPTG +uid 1971,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1972,0 +va (VaSet +) +xt "69000,43400,72100,44600" +st "busy" +blo "69000,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "busy" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 1974,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,36000,84000,52000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 1975,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*49 (Text +uid 1976,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,51800,72300,53000" +st "RS232" +blo "68600,52800" +tm "BdLibraryNameMgr" +) +*50 (Text +uid 1977,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,52700,81200,53900" +st "serialPortTransmitter" +blo "68600,53700" +tm "CptNameMgr" +) +*51 (Text +uid 1978,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,53600,71400,54800" +st "I_tx" +blo "68600,54600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1979,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1980,0 +text (MLText +uid 1981,0 +va (VaSet +font "Verdana,8,0" +) +xt "68000,54800,102300,56800" +st "dataBitNb = uartDataBitNb ( positive ) +baudRateDivide = integer(clockFrequency/uartBaudRate + 0.5) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/uartBaudRate + 0.5)" +) +] +) +viewicon (ZoomableIcon +uid 1982,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,50250,69750,51750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*52 (Net +uid 1997,0 +decl (Decl +n "txFifoEmpty" +t "std_ulogic" +o 14 +suid 29,0 +) +declText (MLText +uid 1998,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,73000,11500,74000" +st "SIGNAL txFifoEmpty : std_ulogic" +) +) +*53 (SaComponent +uid 2035,0 +optionalChildren [ +*54 (CptPort +uid 2007,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2008,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,19625,68000,20375" +) +tg (CPTG +uid 2009,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2010,0 +va (VaSet +) +xt "69000,19400,72400,20600" +st "clock" +blo "69000,20400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*55 (CptPort +uid 2011,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2012,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,21625,68000,22375" +) +tg (CPTG +uid 2013,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2014,0 +va (VaSet +) +xt "69000,21400,72300,22600" +st "reset" +blo "69000,22400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*56 (CptPort +uid 2015,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2016,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,13625,84750,14375" +) +tg (CPTG +uid 2017,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2018,0 +va (VaSet +) +xt "77500,13550,83000,14750" +st "charValid" +ju 2 +blo "83000,14550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "charValid" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*57 (CptPort +uid 2019,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2020,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,13625,68000,14375" +) +tg (CPTG +uid 2021,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2022,0 +va (VaSet +) +xt "69000,13550,78300,14750" +st "symbolDuration" +blo "69000,14550" +) +) +thePort (LogicalPort +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 4 +suid 2014,0 +) +) +) +*58 (CptPort +uid 2023,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2024,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,15625,68000,16375" +) +tg (CPTG +uid 2025,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2026,0 +va (VaSet +) +xt "69000,15550,76600,16750" +st "symbolValid" +blo "69000,16550" +) +) +thePort (LogicalPort +decl (Decl +n "symbolValid" +t "std_ulogic" +o 5 +suid 2015,0 +) +) +) +*59 (CptPort +uid 2027,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2028,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,11625,68000,12375" +) +tg (CPTG +uid 2029,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2030,0 +va (VaSet +) +xt "69000,11550,76900,12750" +st "symbolValue" +blo "69000,12550" +) +) +thePort (LogicalPort +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 2016,0 +) +) +) +*60 (CptPort +uid 2031,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2032,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,11625,84750,12375" +) +tg (CPTG +uid 2033,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2034,0 +va (VaSet +) +xt "78200,11550,83000,12750" +st "charOut" +ju 2 +blo "83000,12550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 7 +suid 2017,0 +) +) +) +] +shape (Rectangle +uid 2036,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,8000,84000,24000" +) +oxt "39000,14000,55000,30000" +ttg (MlTextGroup +uid 2037,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 2038,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,23800,72100,25000" +st "Morse" +blo "68600,24800" +tm "BdLibraryNameMgr" +) +*62 (Text +uid 2039,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,24700,80200,25900" +st "morseToCharDecoder" +blo "68600,25700" +tm "CptNameMgr" +) +*63 (Text +uid 2040,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,25600,72000,26800" +st "I_dec" +blo "68600,26600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2041,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2042,0 +text (MLText +uid 2043,0 +va (VaSet +font "Verdana,8,0" +) +xt "68000,27600,101800,30600" +st "unitCountDivide = integer(clockFrequency*unitDuration + 0.5) ( positive ) +unitCountBitNb = unitCountBitNb ( positive ) +characterBitNb = uartDataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +(GiElement +name "characterBitNb" +type "positive" +value "uartDataBitNb" +) +] +) +viewicon (ZoomableIcon +uid 2044,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,22250,69750,23750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*64 (Net +uid 2053,0 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 30,0 +) +declText (MLText +uid 2054,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,60000,9000,61000" +st "morseEnvelope : std_ulogic" +) +) +*65 (PortIoOut +uid 2055,0 +shape (CompositeShape +uid 2056,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2057,0 +sl 0 +ro 270 +xt "48500,3625,50000,4375" +) +(Line +uid 2058,0 +sl 0 +ro 270 +xt "48000,4000,48500,4000" +pts [ +"48000,4000" +"48500,4000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 2059,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2060,0 +va (VaSet +isHidden 1 +) +xt "51000,3500,60100,4700" +st "morseEnvelope" +blo "51000,4500" +tm "WireNameMgr" +) +) +) +*66 (SaComponent +uid 2185,0 +optionalChildren [ +*67 (CptPort +uid 2169,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2170,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,15625,20000,16375" +) +tg (CPTG +uid 2171,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2172,0 +va (VaSet +) +xt "21000,15400,24400,16600" +st "clock" +blo "21000,16400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*68 (CptPort +uid 2173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,17625,20000,18375" +) +tg (CPTG +uid 2175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2176,0 +va (VaSet +) +xt "21000,17400,24300,18600" +st "reset" +blo "21000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*69 (CptPort +uid 2177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2178,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,11625,20000,12375" +) +tg (CPTG +uid 2179,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2180,0 +va (VaSet +) +xt "20000,11550,29200,12750" +st "morseWithTone" +blo "20000,12550" +) +) +thePort (LogicalPort +decl (Decl +n "morseWithTone" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*70 (CptPort +uid 2181,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2182,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36000,11625,36750,12375" +) +tg (CPTG +uid 2183,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2184,0 +va (VaSet +) +xt "26900,11550,36000,12750" +st "morseEnvelope" +ju 2 +blo "36000,12550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 2186,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "20000,8000,36000,20000" +) +oxt "40000,10000,56000,22000" +ttg (MlTextGroup +uid 2187,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +uid 2188,0 +va (VaSet +font "Verdana,9,1" +) +xt "20600,19800,24100,21000" +st "Morse" +blo "20600,20800" +tm "BdLibraryNameMgr" +) +*72 (Text +uid 2189,0 +va (VaSet +font "Verdana,9,1" +) +xt "20600,20700,31000,21900" +st "envelopeRetreiver" +blo "20600,21700" +tm "CptNameMgr" +) +*73 (Text +uid 2190,0 +va (VaSet +font "Verdana,9,1" +) +xt "20600,21600,24100,22800" +st "I_env" +blo "20600,22600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2191,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2192,0 +text (MLText +uid 2193,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,23600,53600,25600" +st "toneDivide = integer(clockFrequency/toneFrequency + 0.5) ( positive ) +deglitchBitNb = deglitchBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "toneDivide" +type "positive" +value "integer(clockFrequency/toneFrequency + 0.5)" +) +(GiElement +name "deglitchBitNb" +type "positive" +value "deglitchBitNb" +) +] +) +viewicon (ZoomableIcon +uid 2194,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "20250,18250,21750,19750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*74 (SaComponent +uid 2356,0 +optionalChildren [ +*75 (CptPort +uid 2366,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2367,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,43625,20000,44375" +) +tg (CPTG +uid 2368,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2369,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,43500,23500,44500" +st "write" +blo "21000,44300" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +) +) +) +*76 (CptPort +uid 2370,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2371,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,47625,20000,48375" +) +tg (CPTG +uid 2372,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2373,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,47500,23500,48500" +st "clock" +blo "21000,48300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*77 (CptPort +uid 2374,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2375,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,49625,20000,50375" +) +tg (CPTG +uid 2376,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2377,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,49500,23500,50500" +st "reset" +blo "21000,50300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*78 (CptPort +uid 2378,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2379,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36000,39625,36750,40375" +) +tg (CPTG +uid 2380,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2381,0 +va (VaSet +font "Verdana,8,0" +) +xt "31301,39500,35001,40500" +st "dataOut" +ju 2 +blo "35001,40300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*79 (CptPort +uid 2382,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2383,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36000,43625,36750,44375" +) +tg (CPTG +uid 2384,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2385,0 +va (VaSet +font "Verdana,8,0" +) +xt "32700,43500,35000,44500" +st "read" +ju 2 +blo "35000,44300" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +) +) +) +*80 (CptPort +uid 2386,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2387,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,39625,20000,40375" +) +tg (CPTG +uid 2388,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2389,0 +va (VaSet +font "Verdana,8,0" +) +xt "20999,39500,24099,40500" +st "dataIn" +blo "20999,40300" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*81 (CptPort +uid 2390,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2391,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36000,41625,36750,42375" +) +tg (CPTG +uid 2392,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2393,0 +va (VaSet +font "Verdana,8,0" +) +xt "31900,41500,35000,42500" +st "empty" +ju 2 +blo "35000,42300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +) +) +) +*82 (CptPort +uid 2394,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2395,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,41625,20000,42375" +) +tg (CPTG +uid 2396,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2397,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,41500,22700,42500" +st "full" +blo "21000,42300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +) +) +) +] +shape (Rectangle +uid 2357,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20000,36000,36000,52000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 2358,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 2359,0 +va (VaSet +) +xt "20600,51800,25300,53000" +st "Memory" +blo "20600,52800" +tm "BdLibraryNameMgr" +) +*84 (Text +uid 2360,0 +va (VaSet +) +xt "20600,53000,27000,54200" +st "FIFO_bram" +blo "20600,54000" +tm "CptNameMgr" +) +*85 (Text +uid 2361,0 +va (VaSet +) +xt "20600,54200,22500,55400" +st "I0" +blo "20600,55200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2362,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2363,0 +text (MLText +uid 2364,0 +va (VaSet +) +xt "20000,55600,43500,58000" +st "dataBitNb = uartDataBitNb ( positive ) +depth = fifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "depth" +type "positive" +value "fifoDepth" +) +] +) +viewicon (ZoomableIcon +uid 2365,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "20250,50250,21750,51750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*86 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "12000,16000,19250,16000" +pts [ +"12000,16000" +"19250,16000" +] +) +start &1 +end &67 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +) +xt "12000,15000,15400,16200" +st "clock" +blo "12000,16000" +tm "WireNameMgr" +) +) +on &2 +) +*87 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "12000,12000,19250,12000" +pts [ +"12000,12000" +"19250,12000" +] +) +start &17 +end &69 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +) +xt "12000,11000,18400,12200" +st "morseCode" +blo "12000,12000" +tm "WireNameMgr" +) +) +on &3 +) +*88 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "12000,18000,19250,18000" +pts [ +"12000,18000" +"19250,18000" +] +) +start &4 +end &68 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +) +xt "12000,17000,15300,18200" +st "reset" +blo "12000,18000" +tm "WireNameMgr" +) +) +on &5 +) +*89 (Wire +uid 1160,0 +shape (OrthoPolyLine +uid 1161,0 +va (VaSet +vasetType 3 +) +xt "84750,40000,92000,40000" +pts [ +"84750,40000" +"92000,40000" +] +) +start &43 +end &18 +ss 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1164,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1165,0 +va (VaSet +) +xt "90000,39000,92800,40200" +st "TxD" +blo "90000,40000" +tm "WireNameMgr" +) +) +on &19 +) +*90 (Wire +uid 1312,0 +optionalChildren [ +*91 (BdJunction +uid 2051,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2052,0 +va (VaSet +vasetType 1 +) +xt "39600,11600,40400,12400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1313,0 +va (VaSet +vasetType 3 +) +xt "36750,12000,43250,12000" +pts [ +"36750,12000" +"43250,12000" +] +) +start &70 +end &23 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1316,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1317,0 +va (VaSet +) +xt "37000,11000,46100,12200" +st "morseEnvelope" +blo "37000,12000" +tm "WireNameMgr" +) +) +on &64 +) +*92 (Wire +uid 1491,0 +shape (OrthoPolyLine +uid 1492,0 +va (VaSet +vasetType 3 +) +xt "40000,16000,43250,16000" +pts [ +"40000,16000" +"43250,16000" +] +) +end &21 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1497,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1498,0 +va (VaSet +) +xt "40000,15000,43400,16200" +st "clock" +blo "40000,16000" +tm "WireNameMgr" +) +) +on &2 +) +*93 (Wire +uid 1499,0 +shape (OrthoPolyLine +uid 1500,0 +va (VaSet +vasetType 3 +) +xt "40000,18000,43250,18000" +pts [ +"40000,18000" +"43250,18000" +] +) +end &22 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1505,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1506,0 +va (VaSet +) +xt "40000,17000,43300,18200" +st "reset" +blo "40000,18000" +tm "WireNameMgr" +) +) +on &5 +) +*94 (Wire +uid 1577,0 +shape (OrthoPolyLine +uid 1578,0 +va (VaSet +vasetType 3 +) +xt "60750,12000,67250,12000" +pts [ +"60750,12000" +"67250,12000" +] +) +start &26 +end &59 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1581,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1582,0 +va (VaSet +) +xt "61000,11000,68900,12200" +st "symbolValue" +blo "61000,12000" +tm "WireNameMgr" +) +) +on &30 +) +*95 (Wire +uid 1585,0 +shape (OrthoPolyLine +uid 1586,0 +va (VaSet +vasetType 3 +) +xt "60750,16000,67250,16000" +pts [ +"60750,16000" +"67250,16000" +] +) +start &25 +end &58 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1589,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1590,0 +va (VaSet +) +xt "61000,15000,68600,16200" +st "symbolValid" +blo "61000,16000" +tm "WireNameMgr" +) +) +on &31 +) +*96 (Wire +uid 1593,0 +shape (OrthoPolyLine +uid 1594,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60750,14000,67250,14000" +pts [ +"60750,14000" +"67250,14000" +] +) +start &24 +end &57 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1597,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1598,0 +va (VaSet +) +xt "61000,13000,70300,14200" +st "symbolDuration" +blo "61000,14000" +tm "WireNameMgr" +) +) +on &32 +) +*97 (Wire +uid 1711,0 +shape (OrthoPolyLine +uid 1712,0 +va (VaSet +vasetType 3 +) +xt "64000,20000,67250,20000" +pts [ +"64000,20000" +"67250,20000" +] +) +end &54 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1717,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1718,0 +va (VaSet +) +xt "64000,19000,67400,20200" +st "clock" +blo "64000,20000" +tm "WireNameMgr" +) +) +on &2 +) +*98 (Wire +uid 1719,0 +shape (OrthoPolyLine +uid 1720,0 +va (VaSet +vasetType 3 +) +xt "64000,22000,67250,22000" +pts [ +"64000,22000" +"67250,22000" +] +) +end &55 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1725,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1726,0 +va (VaSet +) +xt "64000,21000,67300,22200" +st "reset" +blo "64000,22000" +tm "WireNameMgr" +) +) +on &5 +) +*99 (Wire +uid 1729,0 +shape (OrthoPolyLine +uid 1730,0 +va (VaSet +vasetType 3 +) +xt "84750,14000,92000,14000" +pts [ +"84750,14000" +"92000,14000" +] +) +start &56 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1733,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1734,0 +va (VaSet +) +xt "86750,13000,92250,14200" +st "charValid" +blo "86750,14000" +tm "WireNameMgr" +) +) +on &33 +) +*100 (Wire +uid 1737,0 +shape (OrthoPolyLine +uid 1738,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,12000,92000,12000" +pts [ +"84750,12000" +"92000,12000" +] +) +start &60 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1741,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1742,0 +va (VaSet +) +xt "86750,11000,91550,12200" +st "charOut" +blo "86750,12000" +tm "WireNameMgr" +) +) +on &34 +) +*101 (Wire +uid 1789,0 +shape (OrthoPolyLine +uid 1790,0 +va (VaSet +vasetType 3 +) +xt "13000,44000,19250,44000" +pts [ +"13000,44000" +"19250,44000" +] +) +end &75 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1796,0 +va (VaSet +) +xt "13000,43000,18500,44200" +st "charValid" +blo "13000,44000" +tm "WireNameMgr" +) +) +on &33 +) +*102 (Wire +uid 1797,0 +shape (OrthoPolyLine +uid 1798,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "12750,40000,19250,40000" +pts [ +"12750,40000" +"19250,40000" +] +) +end &80 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1803,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1804,0 +va (VaSet +) +xt "13000,39000,17800,40200" +st "charOut" +blo "13000,40000" +tm "WireNameMgr" +) +) +on &34 +) +*103 (Wire +uid 1805,0 +shape (OrthoPolyLine +uid 1806,0 +va (VaSet +vasetType 3 +) +xt "16000,48000,19250,48000" +pts [ +"16000,48000" +"19250,48000" +] +) +end &76 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1811,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1812,0 +va (VaSet +) +xt "16000,47000,19400,48200" +st "clock" +blo "16000,48000" +tm "WireNameMgr" +) +) +on &2 +) +*104 (Wire +uid 1813,0 +shape (OrthoPolyLine +uid 1814,0 +va (VaSet +vasetType 3 +) +xt "16000,50000,19250,50000" +pts [ +"16000,50000" +"19250,50000" +] +) +end &77 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1820,0 +va (VaSet +) +xt "16000,49000,19300,50200" +st "reset" +blo "16000,50000" +tm "WireNameMgr" +) +) +on &5 +) +*105 (Wire +uid 1863,0 +optionalChildren [ +*106 (BdJunction +uid 1987,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1988,0 +va (VaSet +vasetType 1 +) +xt "41600,43600,42400,44400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1864,0 +va (VaSet +vasetType 3 +) +xt "42000,42000,67250,50000" +pts [ +"44000,50000" +"42000,50000" +"42000,42000" +"67250,42000" +] +) +start &35 +end &47 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1867,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1868,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,40700,53200,42100" +st "txSend" +blo "48000,41900" +tm "WireNameMgr" +) +) +on &41 +) +*107 (Wire +uid 1877,0 +shape (OrthoPolyLine +uid 1878,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "36750,40000,67250,40000" +pts [ +"36750,40000" +"67250,40000" +] +) +start &78 +end &46 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1882,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,38700,44400,40100" +st "txWord" +blo "39000,39900" +tm "WireNameMgr" +) +) +on &39 +) +*108 (Wire +uid 1883,0 +shape (OrthoPolyLine +uid 1884,0 +va (VaSet +vasetType 3 +) +xt "64000,50000,67250,50000" +pts [ +"64000,50000" +"67250,50000" +] +) +end &45 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1887,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1888,0 +va (VaSet +font "Verdana,12,0" +) +xt "64000,48700,68100,50100" +st "reset" +blo "64000,49900" +tm "WireNameMgr" +) +) +on &5 +) +*109 (Wire +uid 1889,0 +shape (OrthoPolyLine +uid 1890,0 +va (VaSet +vasetType 3 +) +xt "64000,48000,67250,48000" +pts [ +"64000,48000" +"67250,48000" +] +) +end &44 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1893,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1894,0 +va (VaSet +font "Verdana,12,0" +) +xt "64000,46700,67800,48100" +st "clock" +blo "64000,47900" +tm "WireNameMgr" +) +) +on &2 +) +*110 (Wire +uid 1895,0 +shape (OrthoPolyLine +uid 1896,0 +va (VaSet +vasetType 3 +) +xt "60000,44000,67250,50000" +pts [ +"67250,44000" +"62000,44000" +"62000,50000" +"60000,50000" +] +) +start &48 +end &35 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1899,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1900,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,42700,67000,44100" +st "txBusy" +blo "62000,43900" +tm "WireNameMgr" +) +) +on &40 +) +*111 (Wire +uid 1983,0 +shape (OrthoPolyLine +uid 1984,0 +va (VaSet +vasetType 3 +) +xt "36750,44000,42000,44000" +pts [ +"42000,44000" +"36750,44000" +] +) +start &106 +end &79 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1985,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1986,0 +va (VaSet +isHidden 1 +) +xt "38750,43000,42950,44200" +st "txSend" +blo "38750,44000" +tm "WireNameMgr" +) +) +on &41 +) +*112 (Wire +uid 1991,0 +shape (OrthoPolyLine +uid 1992,0 +va (VaSet +vasetType 3 +) +xt "36750,42000,44000,52000" +pts [ +"36750,42000" +"40000,42000" +"40000,52000" +"44000,52000" +] +) +start &81 +end &35 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 1995,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1996,0 +va (VaSet +) +xt "37000,52000,44400,53200" +st "txFifoEmpty" +blo "37000,53000" +tm "WireNameMgr" +) +) +on &52 +) +*113 (Wire +uid 2045,0 +shape (OrthoPolyLine +uid 2046,0 +va (VaSet +vasetType 3 +) +xt "40000,4000,48000,12000" +pts [ +"40000,12000" +"40000,4000" +"48000,4000" +] +) +start &91 +end &65 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2049,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2050,0 +va (VaSet +) +xt "40000,3000,49100,4200" +st "morseEnvelope" +blo "40000,4000" +tm "WireNameMgr" +) +) +on &64 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *114 (PackageList +uid 105,0 +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +uid 106,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,0,900,1000" +st "Package List" +blo "-6000,800" +) +*116 (MLText +uid 107,0 +va (VaSet +) +xt "-6000,1000,11500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 108,0 +stg "VerticalLayoutStrategy" +textVec [ +*117 (Text +uid 109,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*118 (Text +uid 110,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*119 (MLText +uid 111,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*120 (Text +uid 112,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*121 (MLText +uid 113,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*122 (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*123 (MLText +uid 115,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-7600,-1600,134612,76352" +cachedDiagramExtent "-6000,0,103000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-6000,0" +lastUid 2503,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*124 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*125 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*126 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*127 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*128 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*129 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*130 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*131 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*132 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*133 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*134 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*135 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*136 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*137 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*138 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*140 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*142 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*143 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*144 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,54000,1000,55000" +st "Declarations" +blo "-6000,54800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,55000,-2600,56000" +st "Ports:" +blo "-6000,55800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,61000,-1200,62000" +st "Pre User:" +blo "-6000,61800" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "-4000,62000,13600,64000" +st "constant unitCountBitNb: positive := 3; +constant fifoDepth : positive := 8;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,64000,3000,65000" +st "Diagram Signals:" +blo "-6000,64800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-6000,54000,0,55000" +st "Post User:" +blo "-6000,54800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-6000,54000,-6000,54000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 30,0 +usingSuid 1 +emptyRow *145 (LEmptyRow +) +uid 118,0 +optionalChildren [ +*146 (RefLabelRowHdr +) +*147 (TitleRowHdr +) +*148 (FilterRowHdr +) +*149 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*150 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*151 (GroupColHdr +tm "GroupColHdrMgr" +) +*152 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*153 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*154 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*155 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*156 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*157 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*158 (LeafLogPort +port (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 65,0 +) +*159 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 67,0 +) +*160 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 69,0 +) +*161 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 17,0 +) +) +uid 1147,0 +) +*162 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 20,0 +) +) +uid 1599,0 +) +*163 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "symbolValid" +t "std_ulogic" +o 7 +suid 21,0 +) +) +uid 1601,0 +) +*164 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 8 +suid 22,0 +) +) +uid 1603,0 +) +*165 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "charValid" +t "std_ulogic" +o 9 +suid 23,0 +) +) +uid 1743,0 +) +*166 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 10 +suid 24,0 +) +) +uid 1745,0 +) +*167 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txWord" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 11 +suid 25,0 +) +) +uid 1999,0 +) +*168 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txBusy" +t "std_ulogic" +o 12 +suid 26,0 +) +) +uid 2001,0 +) +*169 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txSend" +t "std_ulogic" +o 13 +suid 27,0 +) +) +uid 2003,0 +) +*170 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txFifoEmpty" +t "std_ulogic" +o 14 +suid 29,0 +) +) +uid 2005,0 +) +*171 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 30,0 +) +) +uid 2061,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 131,0 +optionalChildren [ +*172 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *173 (MRCItem +litem &145 +pos 14 +dimension 20 +) +uid 133,0 +optionalChildren [ +*174 (MRCItem +litem &146 +pos 0 +dimension 20 +uid 134,0 +) +*175 (MRCItem +litem &147 +pos 1 +dimension 23 +uid 135,0 +) +*176 (MRCItem +litem &148 +pos 2 +hidden 1 +dimension 20 +uid 136,0 +) +*177 (MRCItem +litem &158 +pos 0 +dimension 20 +uid 66,0 +) +*178 (MRCItem +litem &159 +pos 1 +dimension 20 +uid 68,0 +) +*179 (MRCItem +litem &160 +pos 2 +dimension 20 +uid 70,0 +) +*180 (MRCItem +litem &161 +pos 3 +dimension 20 +uid 1146,0 +) +*181 (MRCItem +litem &162 +pos 5 +dimension 20 +uid 1600,0 +) +*182 (MRCItem +litem &163 +pos 6 +dimension 20 +uid 1602,0 +) +*183 (MRCItem +litem &164 +pos 7 +dimension 20 +uid 1604,0 +) +*184 (MRCItem +litem &165 +pos 8 +dimension 20 +uid 1744,0 +) +*185 (MRCItem +litem &166 +pos 9 +dimension 20 +uid 1746,0 +) +*186 (MRCItem +litem &167 +pos 10 +dimension 20 +uid 2000,0 +) +*187 (MRCItem +litem &168 +pos 11 +dimension 20 +uid 2002,0 +) +*188 (MRCItem +litem &169 +pos 12 +dimension 20 +uid 2004,0 +) +*189 (MRCItem +litem &170 +pos 13 +dimension 20 +uid 2006,0 +) +*190 (MRCItem +litem &171 +pos 4 +dimension 20 +uid 2062,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*191 (MRCItem +litem &149 +pos 0 +dimension 20 +uid 138,0 +) +*192 (MRCItem +litem &151 +pos 1 +dimension 50 +uid 139,0 +) +*193 (MRCItem +litem &152 +pos 2 +dimension 100 +uid 140,0 +) +*194 (MRCItem +litem &153 +pos 3 +dimension 50 +uid 141,0 +) +*195 (MRCItem +litem &154 +pos 4 +dimension 100 +uid 142,0 +) +*196 (MRCItem +litem &155 +pos 5 +dimension 100 +uid 143,0 +) +*197 (MRCItem +litem &156 +pos 6 +dimension 50 +uid 144,0 +) +*198 (MRCItem +litem &157 +pos 7 +dimension 80 +uid 145,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 132,0 +vaOverrides [ +] +) +] +) +uid 117,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *199 (LEmptyRow +) +uid 147,0 +optionalChildren [ +*200 (RefLabelRowHdr +) +*201 (TitleRowHdr +) +*202 (FilterRowHdr +) +*203 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*204 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*205 (GroupColHdr +tm "GroupColHdrMgr" +) +*206 (NameColHdr +tm "GenericNameColHdrMgr" +) +*207 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*208 (InitColHdr +tm "GenericValueColHdrMgr" +) +*209 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*210 (EolColHdr +tm "GenericEolColHdrMgr" +) +*211 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 257,0 +) +*212 (LogGeneric +generic (GiElement +name "uartBaudRate" +type "real" +value "115.2E3" +) +uid 259,0 +) +*213 (LogGeneric +generic (GiElement +name "unitDuration" +type "real" +value "100.0E-3" +) +uid 261,0 +) +*214 (LogGeneric +generic (GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +uid 321,0 +) +*215 (LogGeneric +generic (GiElement +name "toneFrequency" +type "real" +value "300.0" +) +uid 808,0 +) +*216 (LogGeneric +generic (GiElement +name "deglitchBitNb" +type "natural" +value "8" +) +uid 2249,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 159,0 +optionalChildren [ +*217 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *218 (MRCItem +litem &199 +pos 6 +dimension 20 +) +uid 161,0 +optionalChildren [ +*219 (MRCItem +litem &200 +pos 0 +dimension 20 +uid 162,0 +) +*220 (MRCItem +litem &201 +pos 1 +dimension 23 +uid 163,0 +) +*221 (MRCItem +litem &202 +pos 2 +hidden 1 +dimension 20 +uid 164,0 +) +*222 (MRCItem +litem &211 +pos 0 +dimension 20 +uid 256,0 +) +*223 (MRCItem +litem &212 +pos 1 +dimension 20 +uid 258,0 +) +*224 (MRCItem +litem &213 +pos 3 +dimension 20 +uid 260,0 +) +*225 (MRCItem +litem &214 +pos 2 +dimension 20 +uid 320,0 +) +*226 (MRCItem +litem &215 +pos 4 +dimension 20 +uid 807,0 +) +*227 (MRCItem +litem &216 +pos 5 +dimension 20 +uid 2248,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 165,0 +optionalChildren [ +*228 (MRCItem +litem &203 +pos 0 +dimension 20 +uid 166,0 +) +*229 (MRCItem +litem &205 +pos 1 +dimension 50 +uid 167,0 +) +*230 (MRCItem +litem &206 +pos 2 +dimension 100 +uid 168,0 +) +*231 (MRCItem +litem &207 +pos 3 +dimension 100 +uid 169,0 +) +*232 (MRCItem +litem &208 +pos 4 +dimension 50 +uid 170,0 +) +*233 (MRCItem +litem &209 +pos 5 +dimension 50 +uid 171,0 +) +*234 (MRCItem +litem &210 +pos 6 +dimension 80 +uid 172,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 160,0 +vaOverrides [ +] +) +] +) +uid 146,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Morse/hds/morse@decoder/symbol.sb b/05-Morse/Morse/hds/morse@decoder/symbol.sb new file mode 100644 index 0000000..24093a0 --- /dev/null +++ b/05-Morse/Morse/hds/morse@decoder/symbol.sb @@ -0,0 +1,1759 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2011,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 211,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +uid 320,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +uid 322,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +uid 353,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 2011,0 +) +) +uid 623,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 100,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 212,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 321,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 323,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 354,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 622,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 403,0 +) +*50 (LogGeneric +generic (GiElement +name "uartBaudRate" +type "real" +value "115.2E3" +) +uid 405,0 +) +*51 (LogGeneric +generic (GiElement +name "unitDuration" +type "real" +value "100.0E-3" +) +uid 407,0 +) +*52 (LogGeneric +generic (GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +uid 432,0 +) +*53 (LogGeneric +generic (GiElement +name "toneFrequency" +type "real" +value "300.0" +) +uid 457,0 +) +*54 (LogGeneric +generic (GiElement +name "deglitchBitNb" +type "natural" +value "8" +) +uid 698,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *56 (MRCItem +litem &37 +pos 6 +dimension 20 +) +uid 131,0 +optionalChildren [ +*57 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 134,0 +) +*58 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 136,0 +) +*59 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*60 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 404,0 +) +*61 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 406,0 +) +*62 (MRCItem +litem &51 +pos 3 +dimension 20 +uid 408,0 +) +*63 (MRCItem +litem &52 +pos 2 +dimension 20 +uid 433,0 +) +*64 (MRCItem +litem &53 +pos 4 +dimension 20 +uid 458,0 +) +*65 (MRCItem +litem &54 +pos 5 +dimension 20 +uid 699,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*66 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 140,0 +) +*67 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 144,0 +) +*68 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 146,0 +) +*69 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 148,0 +) +*70 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 150,0 +) +*71 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 152,0 +) +*72 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@decoder/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@decoder/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@decoder" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morseDecoder" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "morseDecoder" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@decoder/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morseDecoder/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "morseDecoder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 528,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,14625,32000,15375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "courier,9,0" +) +xt "33000,14700,37500,15600" +st "morseCode" +blo "33000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,20500,11700" +st "morseCode : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*75 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,18625,32000,19375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "33000,18400,35500,19300" +st "clock" +blo "33000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,20500,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*76 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,20625,32000,21375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "33000,20400,35500,21300" +st "reset" +blo "33000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,20500,13500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*77 (CptPort +uid 348,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 529,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,14625,48750,15375" +) +tg (CPTG +uid 350,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 351,0 +va (VaSet +font "courier,9,0" +) +xt "45500,14700,47000,15600" +st "TxD" +ju 2 +blo "47000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 352,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,20500,14400" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*78 (CptPort +uid 624,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 625,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,18625,48750,19375" +) +tg (CPTG +uid 626,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 627,0 +va (VaSet +font "courier,8,0" +) +xt "40000,18550,47000,19450" +st "morseEnvelope" +ju 2 +blo "47000,19250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 628,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,19500,15300" +st "morseEnvelope : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,11000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22800,35100,23700" +st "Morse" +blo "32600,23500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,23700,39100,24600" +st "morseDecoder" +blo "32600,24400" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,26600,49500,33800" +st "Generic Declarations + +clockFrequency real 100.0E6 +uartBaudRate real 115.2E3 +uartDataBitNb positive 8 +unitDuration real 100.0E-3 +toneFrequency real 300.0 +deglitchBitNb natural 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +(GiElement +name "uartBaudRate" +type "real" +value "115.2E3" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +(GiElement +name "unitDuration" +type "real" +value "100.0E-3" +) +(GiElement +name "toneFrequency" +type "real" +value "300.0" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*93 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "389,72,1436,880" +viewArea "-1100,-1100,63712,41008" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15300,2500,16200" +st "User:" +blo "0,16000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,2000,16200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 722,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/morse@encoder/struct.bd b/05-Morse/Morse/hds/morse@encoder/struct.bd new file mode 100644 index 0000000..c8c13d9 --- /dev/null +++ b/05-Morse/Morse/hds/morse@encoder/struct.bd @@ -0,0 +1,4641 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_UART" +duLibraryName "RS232" +duName "serialPortReceiver" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/uartBaudRate + 0.5)" +) +] +mwi 0 +uid 193,0 +) +(Instance +name "I_tone" +duLibraryName "Morse" +duName "toneGenerator" +elements [ +(GiElement +name "toneDivide" +type "positive" +value "integer(clockFrequency/toneFrequency + 0.5)" +) +] +mwi 0 +uid 756,0 +) +(Instance +name "I_enc" +duLibraryName "Morse" +duName "charToMorse" +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +] +mwi 0 +uid 1073,0 +) +(Instance +name "I_FIFO" +duLibraryName "Memory" +duName "FIFO_bram" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "depth" +type "positive" +value "fifoDepth" +) +] +mwi 0 +uid 1764,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@encoder\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@encoder\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@encoder" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morseEncoder" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseEncoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:50:20" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morseEncoder" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morse@encoder\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse\\hds\\morseEncoder\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:50:20" +) +(vvPair +variable "unit" +value "morseEncoder" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 116,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "-3000,33625,-1500,34375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "-1500,34000,-1000,34000" +pts [ +"-1500,34000" +"-1000,34000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +) +xt "-7400,33500,-4000,34700" +st "clock" +ju 2 +blo "-4000,34500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-4000,9000,9700,10200" +st "clock : std_ulogic" +) +) +*3 (Net +uid 35,0 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +) +xt "-4000,7800,11500,9000" +st "morseCode : std_ulogic" +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "-3000,35625,-1500,36375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "-1500,36000,-1000,36000" +pts [ +"-1500,36000" +"-1000,36000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +) +xt "-7300,35500,-4000,36700" +st "reset" +ju 2 +blo "-4000,36500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-4000,10200,9600,11400" +st "reset : std_ulogic" +) +) +*6 (Grouping +uid 73,0 +optionalChildren [ +*7 (CommentText +uid 75,0 +shape (Rectangle +uid 76,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,73000,83000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 77,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,73500,66200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 78,0 +shape (Rectangle +uid 79,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,69000,87000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 80,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,69500,83200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 81,0 +shape (Rectangle +uid 82,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,71000,83000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 83,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,71500,66200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 84,0 +shape (Rectangle +uid 85,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,71000,66000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 86,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,71500,62200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 87,0 +shape (Rectangle +uid 88,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,70000,103000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 89,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,70200,97300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*12 (CommentText +uid 90,0 +shape (Rectangle +uid 91,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,69000,103000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 92,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,69500,87200,69500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*13 (CommentText +uid 93,0 +shape (Rectangle +uid 94,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,69000,83000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 95,0 +va (VaSet +fg "32768,0,0" +) +xt "67350,69400,77650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*14 (CommentText +uid 96,0 +shape (Rectangle +uid 97,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,72000,66000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 98,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,72500,62200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 99,0 +shape (Rectangle +uid 100,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,73000,66000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 101,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,73500,62200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 102,0 +shape (Rectangle +uid 103,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,72000,83000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 104,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,72500,66200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 74,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "62000,69000,103000,74000" +) +oxt "14000,66000,55000,71000" +) +*17 (SaComponent +uid 193,0 +optionalChildren [ +*18 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,29625,7000,30375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "8000,29400,10800,30600" +st "RxD" +blo "8000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*19 (CptPort +uid 177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 178,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,33625,7000,34375" +) +tg (CPTG +uid 179,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 180,0 +va (VaSet +) +xt "8000,33400,11400,34600" +st "clock" +blo "8000,34400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*20 (CptPort +uid 181,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 182,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,35625,7000,36375" +) +tg (CPTG +uid 183,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 184,0 +va (VaSet +) +xt "8000,35400,11300,36600" +st "reset" +blo "8000,36400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*21 (CptPort +uid 185,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 186,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,29625,23750,30375" +) +tg (CPTG +uid 187,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 188,0 +va (VaSet +) +xt "17201,29400,22001,30600" +st "dataOut" +ju 2 +blo "22001,30400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*22 (CptPort +uid 189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 190,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,31625,23750,32375" +) +tg (CPTG +uid 191,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 192,0 +va (VaSet +) +xt "16500,31400,22000,32600" +st "dataValid" +ju 2 +blo "22000,32400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 194,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "7000,26000,23000,38000" +) +oxt "34000,16000,50000,28000" +ttg (MlTextGroup +uid 195,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 196,0 +va (VaSet +font "Verdana,9,1" +) +xt "7600,37800,11300,39000" +st "RS232" +blo "7600,38800" +tm "BdLibraryNameMgr" +) +*24 (Text +uid 197,0 +va (VaSet +font "Verdana,9,1" +) +xt "7600,39000,18000,40200" +st "serialPortReceiver" +blo "7600,40000" +tm "CptNameMgr" +) +*25 (Text +uid 198,0 +va (VaSet +font "Verdana,9,1" +) +xt "7600,40200,12100,41400" +st "I_UART" +blo "7600,41200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 199,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 200,0 +text (MLText +uid 201,0 +va (VaSet +) +xt "7000,41400,48600,43800" +st "dataBitNb = uartDataBitNb ( positive ) +baudRateDivide = integer(clockFrequency/uartBaudRate + 0.5) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/uartBaudRate + 0.5)" +) +] +) +viewicon (ZoomableIcon +uid 202,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "7250,36250,8750,37750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*26 (Net +uid 351,0 +decl (Decl +n "characterIn" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 6 +suid 9,0 +) +declText (MLText +uid 352,0 +va (VaSet +) +xt "-4000,17000,35600,18200" +st "SIGNAL characterIn : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0)" +) +) +*27 (Net +uid 353,0 +decl (Decl +n "characterValid" +t "std_ulogic" +o 7 +suid 10,0 +) +declText (MLText +uid 354,0 +va (VaSet +) +xt "-4000,18200,16200,19400" +st "SIGNAL characterValid : std_ulogic" +) +) +*28 (Net +uid 435,0 +decl (Decl +n "characterReg" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 5 +suid 11,0 +) +declText (MLText +uid 436,0 +va (VaSet +) +xt "-4000,15800,36100,17000" +st "SIGNAL characterReg : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0)" +) +) +*29 (HdlText +uid 714,0 +optionalChildren [ +*30 (EmbeddedText +uid 728,0 +commentText (CommentText +uid 729,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 730,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "79000,27000,87000,33000" +) +oxt "0,0,18000,5000" +text (MLText +uid 731,0 +va (VaSet +) +xt "79200,27200,86600,32000" +st " +morseCode <= morseOut and tone; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 8000 +) +) +) +] +shape (Rectangle +uid 715,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "79000,26000,87000,34000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 716,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*31 (Text +uid 717,0 +va (VaSet +font "Verdana,8,1" +) +xt "79150,34000,81450,35000" +st "eb1" +blo "79150,34800" +tm "HdlTextNameMgr" +) +*32 (Text +uid 718,0 +va (VaSet +font "Verdana,8,1" +) +xt "79150,35000,80350,36000" +st "1" +blo "79150,35800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 719,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "79250,32250,80750,33750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*33 (Net +uid 720,0 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 12,0 +) +declText (MLText +uid 721,0 +va (VaSet +) +xt "-4000,19400,15600,20600" +st "SIGNAL morseOut : std_ulogic" +) +) +*34 (Net +uid 732,0 +decl (Decl +n "tone" +t "std_ulogic" +o 9 +suid 13,0 +) +declText (MLText +uid 733,0 +va (VaSet +) +xt "-4000,20600,14000,21800" +st "SIGNAL tone : std_ulogic" +) +) +*35 (SaComponent +uid 756,0 +optionalChildren [ +*36 (CptPort +uid 744,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 745,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,53625,71750,54375" +) +tg (CPTG +uid 746,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 747,0 +va (VaSet +) +xt "67100,53400,70000,54600" +st "tone" +ju 2 +blo "70000,54400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "tone" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*37 (CptPort +uid 748,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 749,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,53625,55000,54375" +) +tg (CPTG +uid 750,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 751,0 +va (VaSet +) +xt "56000,53400,59400,54600" +st "clock" +blo "56000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*38 (CptPort +uid 752,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 753,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,55625,55000,56375" +) +tg (CPTG +uid 754,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 755,0 +va (VaSet +) +xt "56000,55400,59300,56600" +st "reset" +blo "56000,56400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +] +shape (Rectangle +uid 757,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "55000,50000,71000,58000" +) +oxt "42000,20000,58000,28000" +ttg (MlTextGroup +uid 758,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 759,0 +va (VaSet +font "Verdana,9,1" +) +xt "55600,57800,59100,59000" +st "Morse" +blo "55600,58800" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 760,0 +va (VaSet +font "Verdana,9,1" +) +xt "55600,59000,64100,60200" +st "toneGenerator" +blo "55600,60000" +tm "CptNameMgr" +) +*41 (Text +uid 761,0 +va (VaSet +font "Verdana,9,1" +) +xt "55600,60200,59600,61400" +st "I_tone" +blo "55600,61200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 762,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 763,0 +text (MLText +uid 764,0 +va (VaSet +) +xt "55000,61600,94700,62800" +st "toneDivide = integer(clockFrequency/toneFrequency + 0.5) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "toneDivide" +type "positive" +value "integer(clockFrequency/toneFrequency + 0.5)" +) +] +) +viewicon (ZoomableIcon +uid 765,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "55250,56250,56750,57750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 1073,0 +optionalChildren [ +*43 (CptPort +uid 1049,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1050,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,29625,71750,30375" +) +tg (CPTG +uid 1051,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1052,0 +va (VaSet +) +xt "64300,29400,70000,30600" +st "morseOut" +ju 2 +blo "70000,30400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*44 (CptPort +uid 1053,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1054,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,37625,55000,38375" +) +tg (CPTG +uid 1055,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1056,0 +va (VaSet +) +xt "56000,37400,59400,38600" +st "clock" +blo "56000,38400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*45 (CptPort +uid 1057,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1058,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,39625,55000,40375" +) +tg (CPTG +uid 1059,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1060,0 +va (VaSet +) +xt "56000,39400,59300,40600" +st "reset" +blo "56000,40400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*46 (CptPort +uid 1061,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1062,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,31625,55000,32375" +) +tg (CPTG +uid 1063,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1064,0 +va (VaSet +) +xt "56000,31400,64500,32600" +st "charNotReady" +blo "56000,32400" +) +) +thePort (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*47 (CptPort +uid 1065,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1066,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,29625,55000,30375" +) +tg (CPTG +uid 1067,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1068,0 +va (VaSet +) +xt "56000,29400,60000,30600" +st "charIn" +blo "56000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "charIn" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +) +*48 (CptPort +uid 1069,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1070,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,33625,55000,34375" +) +tg (CPTG +uid 1071,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1072,0 +va (VaSet +) +xt "56000,33550,61300,34750" +st "readChar" +blo "56000,34550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 6 +suid 2012,0 +) +) +) +] +shape (Rectangle +uid 1074,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "55000,26000,71000,42000" +) +oxt "42000,12000,58000,28000" +ttg (MlTextGroup +uid 1075,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*49 (Text +uid 1076,0 +va (VaSet +font "Verdana,9,1" +) +xt "55600,41800,59100,43000" +st "Morse" +blo "55600,42800" +tm "BdLibraryNameMgr" +) +*50 (Text +uid 1077,0 +va (VaSet +font "Verdana,9,1" +) +xt "55600,42700,63000,43900" +st "charToMorse" +blo "55600,43700" +tm "CptNameMgr" +) +*51 (Text +uid 1078,0 +va (VaSet +font "Verdana,9,1" +) +xt "55600,43600,59000,44800" +st "I_enc" +blo "55600,44600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1079,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1080,0 +text (MLText +uid 1081,0 +va (VaSet +) +xt "55000,45600,96500,48000" +st "characterBitNb = uartDataBitNb ( positive ) +unitCountDivide = integer(clockFrequency*unitDuration + 0.5) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +] +) +viewicon (ZoomableIcon +uid 1082,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "55250,40250,56750,41750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*52 (Net +uid 1089,0 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 10 +suid 15,0 +) +declText (MLText +uid 1090,0 +va (VaSet +) +xt "-4000,21800,16500,23000" +st "SIGNAL charNotReady : std_ulogic" +) +) +*53 (Net +uid 1095,0 +decl (Decl +n "readChar" +t "std_ulogic" +o 11 +suid 16,0 +) +declText (MLText +uid 1096,0 +va (VaSet +) +xt "-4000,23000,15200,24200" +st "SIGNAL readChar : std_ulogic" +) +) +*54 (PortIoOut +uid 1213,0 +shape (CompositeShape +uid 1214,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1215,0 +sl 0 +ro 270 +xt "95500,29625,97000,30375" +) +(Line +uid 1216,0 +sl 0 +ro 270 +xt "95000,30000,95500,30000" +pts [ +"95000,30000" +"95500,30000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1217,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1218,0 +va (VaSet +) +xt "98000,29500,104400,30700" +st "morseCode" +blo "98000,30500" +tm "WireNameMgr" +) +) +) +*55 (Net +uid 1556,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 18,0 +) +declText (MLText +uid 1557,0 +va (VaSet +) +xt "-4000,11400,9700,12600" +st "RxD : std_ulogic" +) +) +*56 (PortIoIn +uid 1601,0 +shape (CompositeShape +uid 1602,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1603,0 +sl 0 +ro 270 +xt "-3000,29625,-1500,30375" +) +(Line +uid 1604,0 +sl 0 +ro 270 +xt "-1500,30000,-1000,30000" +pts [ +"-1500,30000" +"-1000,30000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1605,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1606,0 +va (VaSet +isHidden 1 +) +xt "-6800,29500,-4000,30700" +st "RxD" +ju 2 +blo "-4000,30500" +tm "WireNameMgr" +) +) +) +*57 (SaComponent +uid 1764,0 +optionalChildren [ +*58 (CptPort +uid 1732,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1733,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,33625,31000,34375" +) +tg (CPTG +uid 1734,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1735,0 +va (VaSet +) +xt "32000,33400,35100,34600" +st "write" +blo "32000,34400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*59 (CptPort +uid 1736,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1737,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,37625,31000,38375" +) +tg (CPTG +uid 1738,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1739,0 +va (VaSet +) +xt "32000,37400,35400,38600" +st "clock" +blo "32000,38400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*60 (CptPort +uid 1740,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1741,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,39625,31000,40375" +) +tg (CPTG +uid 1742,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1743,0 +va (VaSet +) +xt "32000,39400,35300,40600" +st "reset" +blo "32000,40400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*61 (CptPort +uid 1744,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1745,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "47000,29625,47750,30375" +) +tg (CPTG +uid 1746,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1747,0 +va (VaSet +) +xt "41201,29400,46001,30600" +st "dataOut" +ju 2 +blo "46001,30400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*62 (CptPort +uid 1748,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1749,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "47000,33625,47750,34375" +) +tg (CPTG +uid 1750,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1751,0 +va (VaSet +) +xt "43100,33400,46000,34600" +st "read" +ju 2 +blo "46000,34400" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*63 (CptPort +uid 1752,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1753,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,29625,31000,30375" +) +tg (CPTG +uid 1754,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1755,0 +va (VaSet +) +xt "31999,29400,35999,30600" +st "dataIn" +blo "31999,30400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*64 (CptPort +uid 1756,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1757,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "47000,31625,47750,32375" +) +tg (CPTG +uid 1758,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1759,0 +va (VaSet +) +xt "42200,31400,46000,32600" +st "empty" +ju 2 +blo "46000,32400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*65 (CptPort +uid 1760,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1761,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,31625,31000,32375" +) +tg (CPTG +uid 1762,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1763,0 +va (VaSet +) +xt "32000,31400,34200,32600" +st "full" +blo "32000,32400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1765,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,26000,47000,42000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 1766,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +uid 1767,0 +va (VaSet +) +xt "31600,41800,36300,43000" +st "Memory" +blo "31600,42800" +tm "BdLibraryNameMgr" +) +*67 (Text +uid 1768,0 +va (VaSet +) +xt "31600,42800,38000,44000" +st "FIFO_bram" +blo "31600,43800" +tm "CptNameMgr" +) +*68 (Text +uid 1769,0 +va (VaSet +) +xt "31600,43800,36000,45000" +st "I_FIFO" +blo "31600,44800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1770,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1771,0 +text (MLText +uid 1772,0 +va (VaSet +) +xt "31000,46000,54500,48400" +st "dataBitNb = uartDataBitNb ( positive ) +depth = fifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "depth" +type "positive" +value "fifoDepth" +) +] +) +viewicon (ZoomableIcon +uid 1773,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "31250,40250,32750,41750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*69 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "-1000,34000,6250,34000" +pts [ +"-1000,34000" +"6250,34000" +] +) +start &1 +end &19 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +) +xt "-1000,33000,2400,34200" +st "clock" +blo "-1000,34000" +tm "WireNameMgr" +) +) +on &2 +) +*70 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "87000,30000,95000,30000" +pts [ +"95000,30000" +"87000,30000" +] +) +start &54 +end &29 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +) +xt "91000,29000,97400,30200" +st "morseCode" +blo "91000,30000" +tm "WireNameMgr" +) +) +on &3 +) +*71 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "-1000,36000,6250,36000" +pts [ +"-1000,36000" +"6250,36000" +] +) +start &4 +end &20 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +) +xt "-1000,35000,2300,36200" +st "reset" +blo "-1000,36000" +tm "WireNameMgr" +) +) +on &5 +) +*72 (Wire +uid 205,0 +shape (OrthoPolyLine +uid 206,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23750,30000,30250,30000" +pts [ +"23750,30000" +"30250,30000" +] +) +start &21 +end &63 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 209,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 210,0 +va (VaSet +) +xt "24750,29000,32050,30200" +st "characterIn" +blo "24750,30000" +tm "WireNameMgr" +) +) +on &26 +) +*73 (Wire +uid 213,0 +shape (OrthoPolyLine +uid 214,0 +va (VaSet +vasetType 3 +) +xt "23750,32000,30250,34000" +pts [ +"23750,32000" +"27000,32000" +"27000,34000" +"30250,34000" +] +) +start &22 +end &58 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 217,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 218,0 +va (VaSet +) +xt "24000,33000,32800,34200" +st "characterValid" +blo "24000,34000" +tm "WireNameMgr" +) +) +on &27 +) +*74 (Wire +uid 411,0 +shape (OrthoPolyLine +uid 412,0 +va (VaSet +vasetType 3 +) +xt "27000,40000,30250,40000" +pts [ +"27000,40000" +"30250,40000" +] +) +end &60 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 417,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 418,0 +va (VaSet +) +xt "27000,39000,30300,40200" +st "reset" +blo "27000,40000" +tm "WireNameMgr" +) +) +on &5 +) +*75 (Wire +uid 419,0 +shape (OrthoPolyLine +uid 420,0 +va (VaSet +vasetType 3 +) +xt "27000,38000,30250,38000" +pts [ +"27000,38000" +"30250,38000" +] +) +end &59 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 425,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 426,0 +va (VaSet +) +xt "27000,37000,30400,38200" +st "clock" +blo "27000,38000" +tm "WireNameMgr" +) +) +on &2 +) +*76 (Wire +uid 427,0 +shape (OrthoPolyLine +uid 428,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "47750,30000,54250,30000" +pts [ +"47750,30000" +"54250,30000" +] +) +start &61 +end &47 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 433,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 434,0 +va (VaSet +) +xt "48000,29000,56100,30200" +st "characterReg" +blo "48000,30000" +tm "WireNameMgr" +) +) +on &28 +) +*77 (Wire +uid 509,0 +shape (OrthoPolyLine +uid 510,0 +va (VaSet +vasetType 3 +) +xt "51000,40000,54250,40000" +pts [ +"51000,40000" +"54250,40000" +] +) +end &45 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 515,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 516,0 +va (VaSet +) +xt "51000,39000,54300,40200" +st "reset" +blo "51000,40000" +tm "WireNameMgr" +) +) +on &5 +) +*78 (Wire +uid 517,0 +shape (OrthoPolyLine +uid 518,0 +va (VaSet +vasetType 3 +) +xt "51000,38000,54250,38000" +pts [ +"51000,38000" +"54250,38000" +] +) +end &44 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 523,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 524,0 +va (VaSet +) +xt "51000,37000,54400,38200" +st "clock" +blo "51000,38000" +tm "WireNameMgr" +) +) +on &2 +) +*79 (Wire +uid 646,0 +shape (OrthoPolyLine +uid 647,0 +va (VaSet +vasetType 3 +) +xt "51000,56000,54250,56000" +pts [ +"51000,56000" +"54250,56000" +] +) +end &38 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 652,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 653,0 +va (VaSet +) +xt "51000,55000,54300,56200" +st "reset" +blo "51000,56000" +tm "WireNameMgr" +) +) +on &5 +) +*80 (Wire +uid 654,0 +shape (OrthoPolyLine +uid 655,0 +va (VaSet +vasetType 3 +) +xt "51000,54000,54250,54000" +pts [ +"51000,54000" +"54250,54000" +] +) +end &37 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 660,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 661,0 +va (VaSet +) +xt "51000,53000,54400,54200" +st "clock" +blo "51000,54000" +tm "WireNameMgr" +) +) +on &2 +) +*81 (Wire +uid 722,0 +shape (OrthoPolyLine +uid 723,0 +va (VaSet +vasetType 3 +) +xt "71750,30000,79000,30000" +pts [ +"71750,30000" +"79000,30000" +] +) +start &43 +end &29 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 726,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 727,0 +va (VaSet +) +xt "73750,29000,79450,30200" +st "morseOut" +blo "73750,30000" +tm "WireNameMgr" +) +) +on &33 +) +*82 (Wire +uid 734,0 +shape (OrthoPolyLine +uid 735,0 +va (VaSet +vasetType 3 +) +xt "71750,32000,79000,54000" +pts [ +"71750,54000" +"75000,54000" +"75000,32000" +"79000,32000" +] +) +start &36 +end &29 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 738,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 739,0 +va (VaSet +) +xt "76000,31000,78900,32200" +st "tone" +blo "76000,32000" +tm "WireNameMgr" +) +) +on &34 +) +*83 (Wire +uid 1091,0 +shape (OrthoPolyLine +uid 1092,0 +va (VaSet +vasetType 3 +) +xt "47750,32000,54250,32000" +pts [ +"54250,32000" +"47750,32000" +] +) +start &46 +end &64 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1093,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1094,0 +va (VaSet +) +xt "48000,31000,56500,32200" +st "charNotReady" +blo "48000,32000" +tm "WireNameMgr" +) +) +on &52 +) +*84 (Wire +uid 1097,0 +shape (OrthoPolyLine +uid 1098,0 +va (VaSet +vasetType 3 +) +xt "47750,34000,54250,34000" +pts [ +"54250,34000" +"47750,34000" +] +) +start &48 +end &62 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1099,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1100,0 +va (VaSet +) +xt "48250,33000,53550,34200" +st "readChar" +blo "48250,34000" +tm "WireNameMgr" +) +) +on &53 +) +*85 (Wire +uid 1550,0 +shape (OrthoPolyLine +uid 1551,0 +va (VaSet +vasetType 3 +) +xt "-1000,30000,6250,30000" +pts [ +"6250,30000" +"-1000,30000" +] +) +start &18 +end &56 +ss 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1554,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1555,0 +va (VaSet +) +xt "-1000,29000,1800,30200" +st "RxD" +blo "-1000,30000" +tm "WireNameMgr" +) +) +on &55 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 105,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 106,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,0,900,1000" +st "Package List" +blo "-6000,800" +) +*88 (MLText +uid 107,0 +va (VaSet +) +xt "-6000,1000,11500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 108,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 109,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*90 (Text +uid 110,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*91 (MLText +uid 111,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*92 (Text +uid 112,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*93 (MLText +uid 113,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*94 (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*95 (MLText +uid 115,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-7612,-1603,134949,75855" +cachedDiagramExtent "-7400,0,104400,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-6000,0" +lastUid 1937,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*97 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*98 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*100 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*101 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*103 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*104 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*106 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*107 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*108 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*109 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*110 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*112 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*114 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*116 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,5800,1000,6800" +st "Declarations" +blo "-6000,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,6800,-2600,7800" +st "Ports:" +blo "-6000,7600" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,12600,-1200,13600" +st "Pre User:" +blo "-6000,13400" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-4000,13600,16500,14800" +st "constant fifoDepth : positive := 100;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-6000,14800,3000,15800" +st "Diagram Signals:" +blo "-6000,15600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-6000,5800,0,6800" +st "Post User:" +blo "-6000,6600" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-6000,5800,-6000,5800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 18,0 +usingSuid 1 +emptyRow *117 (LEmptyRow +) +uid 118,0 +optionalChildren [ +*118 (RefLabelRowHdr +) +*119 (TitleRowHdr +) +*120 (FilterRowHdr +) +*121 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*122 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*123 (GroupColHdr +tm "GroupColHdrMgr" +) +*124 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*125 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*126 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*127 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*128 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*129 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*130 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 65,0 +) +*131 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 67,0 +) +*132 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 69,0 +) +*133 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "characterIn" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +uid 467,0 +) +*134 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "characterValid" +t "std_ulogic" +o 7 +suid 10,0 +) +) +uid 469,0 +) +*135 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "characterReg" +t "std_ulogic_vector" +b "(uartDataBitNb-1 DOWNTO 0)" +o 5 +suid 11,0 +) +) +uid 471,0 +) +*136 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 12,0 +) +) +uid 740,0 +) +*137 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "tone" +t "std_ulogic" +o 9 +suid 13,0 +) +) +uid 742,0 +) +*138 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 10 +suid 15,0 +) +) +uid 1101,0 +) +*139 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "readChar" +t "std_ulogic" +o 11 +suid 16,0 +) +) +uid 1103,0 +) +*140 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 18,0 +) +) +uid 1543,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 131,0 +optionalChildren [ +*141 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *142 (MRCItem +litem &117 +pos 11 +dimension 20 +) +uid 133,0 +optionalChildren [ +*143 (MRCItem +litem &118 +pos 0 +dimension 20 +uid 134,0 +) +*144 (MRCItem +litem &119 +pos 1 +dimension 23 +uid 135,0 +) +*145 (MRCItem +litem &120 +pos 2 +hidden 1 +dimension 20 +uid 136,0 +) +*146 (MRCItem +litem &130 +pos 0 +dimension 20 +uid 66,0 +) +*147 (MRCItem +litem &131 +pos 1 +dimension 20 +uid 68,0 +) +*148 (MRCItem +litem &132 +pos 2 +dimension 20 +uid 70,0 +) +*149 (MRCItem +litem &133 +pos 4 +dimension 20 +uid 468,0 +) +*150 (MRCItem +litem &134 +pos 5 +dimension 20 +uid 470,0 +) +*151 (MRCItem +litem &135 +pos 6 +dimension 20 +uid 472,0 +) +*152 (MRCItem +litem &136 +pos 7 +dimension 20 +uid 741,0 +) +*153 (MRCItem +litem &137 +pos 8 +dimension 20 +uid 743,0 +) +*154 (MRCItem +litem &138 +pos 9 +dimension 20 +uid 1102,0 +) +*155 (MRCItem +litem &139 +pos 10 +dimension 20 +uid 1104,0 +) +*156 (MRCItem +litem &140 +pos 3 +dimension 20 +uid 1542,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*157 (MRCItem +litem &121 +pos 0 +dimension 20 +uid 138,0 +) +*158 (MRCItem +litem &123 +pos 1 +dimension 50 +uid 139,0 +) +*159 (MRCItem +litem &124 +pos 2 +dimension 100 +uid 140,0 +) +*160 (MRCItem +litem &125 +pos 3 +dimension 50 +uid 141,0 +) +*161 (MRCItem +litem &126 +pos 4 +dimension 100 +uid 142,0 +) +*162 (MRCItem +litem &127 +pos 5 +dimension 100 +uid 143,0 +) +*163 (MRCItem +litem &128 +pos 6 +dimension 50 +uid 144,0 +) +*164 (MRCItem +litem &129 +pos 7 +dimension 80 +uid 145,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 132,0 +vaOverrides [ +] +) +] +) +uid 117,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *165 (LEmptyRow +) +uid 147,0 +optionalChildren [ +*166 (RefLabelRowHdr +) +*167 (TitleRowHdr +) +*168 (FilterRowHdr +) +*169 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*170 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*171 (GroupColHdr +tm "GroupColHdrMgr" +) +*172 (NameColHdr +tm "GenericNameColHdrMgr" +) +*173 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*174 (InitColHdr +tm "GenericValueColHdrMgr" +) +*175 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*176 (EolColHdr +tm "GenericEolColHdrMgr" +) +*177 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 257,0 +) +*178 (LogGeneric +generic (GiElement +name "uartBaudRate" +type "real" +value "115.2E3" +) +uid 259,0 +) +*179 (LogGeneric +generic (GiElement +name "unitDuration" +type "real" +value "100.0E-3" +) +uid 261,0 +) +*180 (LogGeneric +generic (GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +uid 321,0 +) +*181 (LogGeneric +generic (GiElement +name "toneFrequency" +type "real" +value "300.0" +) +uid 808,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 159,0 +optionalChildren [ +*182 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *183 (MRCItem +litem &165 +pos 5 +dimension 20 +) +uid 161,0 +optionalChildren [ +*184 (MRCItem +litem &166 +pos 0 +dimension 20 +uid 162,0 +) +*185 (MRCItem +litem &167 +pos 1 +dimension 23 +uid 163,0 +) +*186 (MRCItem +litem &168 +pos 2 +hidden 1 +dimension 20 +uid 164,0 +) +*187 (MRCItem +litem &177 +pos 0 +dimension 20 +uid 256,0 +) +*188 (MRCItem +litem &178 +pos 1 +dimension 20 +uid 258,0 +) +*189 (MRCItem +litem &179 +pos 3 +dimension 20 +uid 260,0 +) +*190 (MRCItem +litem &180 +pos 2 +dimension 20 +uid 320,0 +) +*191 (MRCItem +litem &181 +pos 4 +dimension 20 +uid 807,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 165,0 +optionalChildren [ +*192 (MRCItem +litem &169 +pos 0 +dimension 20 +uid 166,0 +) +*193 (MRCItem +litem &171 +pos 1 +dimension 50 +uid 167,0 +) +*194 (MRCItem +litem &172 +pos 2 +dimension 100 +uid 168,0 +) +*195 (MRCItem +litem &173 +pos 3 +dimension 100 +uid 169,0 +) +*196 (MRCItem +litem &174 +pos 4 +dimension 50 +uid 170,0 +) +*197 (MRCItem +litem &175 +pos 5 +dimension 50 +uid 171,0 +) +*198 (MRCItem +litem &176 +pos 6 +dimension 80 +uid 172,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 160,0 +vaOverrides [ +] +) +] +) +uid 146,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Morse/hds/morse@encoder/symbol.sb b/05-Morse/Morse/hds/morse@encoder/symbol.sb new file mode 100644 index 0000000..c5f9a4d --- /dev/null +++ b/05-Morse/Morse/hds/morse@encoder/symbol.sb @@ -0,0 +1,1675 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2014,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 211,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +uid 320,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +uid 322,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +uid 676,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 100,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 212,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 321,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 323,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 677,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 403,0 +) +*48 (LogGeneric +generic (GiElement +name "uartBaudRate" +type "real" +value "115.2E3" +) +uid 405,0 +) +*49 (LogGeneric +generic (GiElement +name "unitDuration" +type "real" +value "100.0E-3" +) +uid 407,0 +) +*50 (LogGeneric +generic (GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +uid 432,0 +) +*51 (LogGeneric +generic (GiElement +name "toneFrequency" +type "real" +value "300.0" +) +uid 457,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*52 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *53 (MRCItem +litem &35 +pos 5 +dimension 20 +) +uid 131,0 +optionalChildren [ +*54 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 134,0 +) +*55 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 136,0 +) +*56 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*57 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 404,0 +) +*58 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 406,0 +) +*59 (MRCItem +litem &49 +pos 3 +dimension 20 +uid 408,0 +) +*60 (MRCItem +litem &50 +pos 2 +dimension 20 +uid 433,0 +) +*61 (MRCItem +litem &51 +pos 4 +dimension 20 +uid 458,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*62 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 140,0 +) +*63 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 144,0 +) +*64 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 146,0 +) +*65 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 148,0 +) +*66 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 150,0 +) +*67 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 152,0 +) +*68 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@encoder/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@encoder/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@encoder" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morseEncoder" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseEncoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "morseEncoder" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@encoder/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morseEncoder/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "morseEncoder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 553,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,14625,48750,15375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "courier,9,0" +) +xt "42500,14400,47000,15300" +st "morseCode" +ju 2 +blo "47000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,18500,11700" +st "morseCode : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*71 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,18625,32000,19375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "33000,18400,35500,19300" +st "clock" +blo "33000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,18500,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*72 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,20625,32000,21375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "33000,20400,35500,21300" +st "reset" +blo "33000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,18500,13500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*73 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 701,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,14625,32000,15375" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 674,0 +va (VaSet +font "courier,9,0" +) +xt "33000,14550,34500,15450" +st "RxD" +blo "33000,15250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,17500,14400" +st "RxD : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,11000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22800,35100,23700" +st "Morse" +blo "32600,23500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,23700,39100,24600" +st "morseEncoder" +blo "32600,24400" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,26600,49500,32900" +st "Generic Declarations + +clockFrequency real 100.0E6 +uartBaudRate real 115.2E3 +uartDataBitNb positive 8 +unitDuration real 100.0E-3 +toneFrequency real 300.0 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +(GiElement +name "uartBaudRate" +type "real" +value "115.2E3" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +(GiElement +name "unitDuration" +type "real" +value "100.0E-3" +) +(GiElement +name "toneFrequency" +type "real" +value "300.0" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*88 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "352,48,1477,898" +viewArea "-1000,-1000,73200,48560" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,14400,2500,15300" +st "User:" +blo "0,15100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,2000,15300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 701,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/morse@to@char@decoder/symbol.sb b/05-Morse/Morse/hds/morse@to@char@decoder/symbol.sb new file mode 100644 index 0000000..9fa8f0b --- /dev/null +++ b/05-Morse/Morse/hds/morse@to@char@decoder/symbol.sb @@ -0,0 +1,1824 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2017,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +uid 320,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +uid 322,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "charValid" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +uid 686,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 4 +suid 2014,0 +) +) +uid 690,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "symbolValid" +t "std_ulogic" +o 5 +suid 2015,0 +) +) +uid 823,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 2016,0 +) +) +uid 825,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 7 +suid 2017,0 +) +) +uid 880,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 100,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 321,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 323,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 687,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 691,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 824,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 826,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 881,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "unitCountDivide" +type "positive" +value "100" +) +uid 432,0 +) +*54 (LogGeneric +generic (GiElement +name "unitCountBitNb" +type "positive" +value "2" +) +uid 827,0 +) +*55 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "8" +) +uid 882,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *57 (MRCItem +litem &41 +pos 3 +dimension 20 +) +uid 131,0 +optionalChildren [ +*58 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 134,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 136,0 +) +*60 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*61 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 433,0 +) +*62 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 828,0 +) +*63 (MRCItem +litem &55 +pos 2 +dimension 20 +uid 883,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*64 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 140,0 +) +*65 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 144,0 +) +*66 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 146,0 +) +*67 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 148,0 +) +*68 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 150,0 +) +*69 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 152,0 +) +*70 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@to@char@decoder/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@to@char@decoder/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@to@char@decoder" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morseToCharDecoder" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseToCharDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "morseToCharDecoder" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morse@to@char@decoder/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/morseToCharDecoder/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "morseToCharDecoder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,25625,39000,26375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "40000,25400,42500,26300" +st "clock" +blo "40000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,21000,8700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*73 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,27625,39000,28375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "40000,27400,42500,28300" +st "reset" +blo "40000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,21000,9600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*74 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 907,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,19625,55750,20375" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 674,0 +va (VaSet +font "courier,9,0" +) +xt "49500,19550,54000,20450" +st "charValid" +ju 2 +blo "54000,20250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,21000,10500" +st "charValid : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "charValid" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*75 (CptPort +uid 681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,19625,39000,20375" +) +tg (CPTG +uid 683,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 684,0 +va (VaSet +font "courier,9,0" +) +xt "40000,19550,47500,20450" +st "symbolDuration" +blo "40000,20250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 685,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,33500,11400" +st "symbolDuration : IN unsigned (unitCountBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 4 +suid 2014,0 +) +) +) +*76 (CptPort +uid 813,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 909,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,21625,39000,22375" +) +tg (CPTG +uid 815,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 816,0 +va (VaSet +font "courier,9,0" +) +xt "40000,21550,46000,22450" +st "symbolValid" +blo "40000,22250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 817,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,21000,12300" +st "symbolValid : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "symbolValid" +t "std_ulogic" +o 5 +suid 2015,0 +) +) +) +*77 (CptPort +uid 818,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 910,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,17625,39000,18375" +) +tg (CPTG +uid 820,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 821,0 +va (VaSet +font "courier,9,0" +) +xt "40000,17550,46000,18450" +st "symbolValue" +blo "40000,18250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 822,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,21000,13200" +st "symbolValue : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 2016,0 +) +) +) +*78 (CptPort +uid 875,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 911,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,17625,55750,18375" +) +tg (CPTG +uid 877,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 878,0 +va (VaSet +font "courier,9,0" +) +xt "50500,17550,54000,18450" +st "charOut" +ju 2 +blo "54000,18250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 879,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,37000,14100" +st "charOut : OUT std_ulogic_vector (characterBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "charOut" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 7 +suid 2017,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,14000,55000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "39600,29800,42100,30700" +st "Morse" +blo "39600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "39600,30700,49100,31600" +st "morseToCharDecoder" +blo "39600,31400" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "39000,33600,54500,38100" +st "Generic Declarations + +unitCountDivide positive 100 +unitCountBitNb positive 2 +characterBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "100" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "2" +) +(GiElement +name "characterBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*93 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "252,81,1550,926" +viewArea "-1100,-1100,72000,44800" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,6000,6500,6900" +st "Declarations" +blo "0,6700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6900,3000,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,14100,2500,15000" +st "User:" +blo "0,14800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,6000,7500,6900" +st "Internal User:" +blo "0,6700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15000,2000,15000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 934,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/symbol@length@counter/symbol.sb b/05-Morse/Morse/hds/symbol@length@counter/symbol.sb new file mode 100644 index 0000000..b663bc9 --- /dev/null +++ b/05-Morse/Morse/hds/symbol@length@counter/symbol.sb @@ -0,0 +1,1744 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2016,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +uid 320,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +uid 322,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +uid 686,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 4 +suid 2014,0 +) +) +uid 690,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "symbolValid" +t "std_ulogic" +o 5 +suid 2015,0 +) +) +uid 823,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 2016,0 +) +) +uid 825,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 100,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 321,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 323,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 687,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 691,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 824,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 826,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "unitCountDivide" +type "positive" +value "100" +) +uid 432,0 +) +*52 (LogGeneric +generic (GiElement +name "unitCountBitNb" +type "positive" +value "2" +) +uid 827,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *54 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*55 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 134,0 +) +*56 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 136,0 +) +*57 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*58 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 433,0 +) +*59 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 828,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*60 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 140,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 144,0 +) +*62 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 146,0 +) +*63 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 148,0 +) +*64 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 150,0 +) +*65 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 152,0 +) +*66 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/symbol@length@counter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/symbol@length@counter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/symbol@length@counter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/symbolLengthCounter" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "symbolLengthCounter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "symbolLengthCounter" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/symbol@length@counter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/symbolLengthCounter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "symbolLengthCounter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,17625,40000,18375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "41000,17400,43500,18300" +st "clock" +blo "41000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,21000,8700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*69 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,19625,40000,20375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "41000,19400,43500,20300" +st "reset" +blo "41000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,21000,9600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*70 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 741,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,13625,40000,14375" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 674,0 +va (VaSet +font "courier,9,0" +) +xt "41000,13550,45500,14450" +st "morseCode" +blo "41000,14250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,21000,10500" +st "morseCode : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*71 (CptPort +uid 681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 743,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,15625,56750,16375" +) +tg (CPTG +uid 683,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 684,0 +va (VaSet +font "courier,9,0" +) +xt "47500,15550,55000,16450" +st "symbolDuration" +ju 2 +blo "55000,16250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 685,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,33500,11400" +st "symbolDuration : OUT unsigned (unitCountBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "symbolDuration" +t "unsigned" +b "(unitCountBitNb-1 DOWNTO 0)" +o 4 +suid 2014,0 +) +) +) +*72 (CptPort +uid 813,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 814,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,17625,56750,18375" +) +tg (CPTG +uid 815,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 816,0 +va (VaSet +font "courier,9,0" +) +xt "49000,17550,55000,18450" +st "symbolValid" +ju 2 +blo "55000,18250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 817,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,21000,12300" +st "symbolValid : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "symbolValid" +t "std_ulogic" +o 5 +suid 2015,0 +) +) +) +*73 (CptPort +uid 818,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 819,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,13625,56750,14375" +) +tg (CPTG +uid 820,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 821,0 +va (VaSet +font "courier,9,0" +) +xt "49000,13550,55000,14450" +st "symbolValue" +ju 2 +blo "55000,14250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 822,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,20000,13200" +st "symbolValue : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "symbolValue" +t "std_ulogic" +o 6 +suid 2016,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,10000,56000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "40600,21800,43100,22700" +st "Morse" +blo "40600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "40600,22700,50600,23600" +st "symbolLengthCounter" +blo "40600,23400" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,25600,55500,29200" +st "Generic Declarations + +unitCountDivide positive 100 +unitCountBitNb positive 2 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "100" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "2" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*88 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "268,73,1566,918" +viewArea "-1100,-1100,72000,46704" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,6000,6500,6900" +st "Declarations" +blo "0,6700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6900,3000,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13200,2500,14100" +st "User:" +blo "0,13900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,6000,7500,6900" +st "Internal User:" +blo "0,6700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,2000,14100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 874,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/tone@generator/symbol.sb b/05-Morse/Morse/hds/tone@generator/symbol.sb new file mode 100644 index 0000000..68602f3 --- /dev/null +++ b/05-Morse/Morse/hds/tone@generator/symbol.sb @@ -0,0 +1,1528 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2011,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "tone" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +uid 211,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +uid 320,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +uid 322,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 100,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 212,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 321,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 323,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "toneDivide" +type "positive" +value "100E3" +) +uid 533,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *47 (MRCItem +litem &33 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*48 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 134,0 +) +*49 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 136,0 +) +*50 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*51 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 534,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*52 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 140,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 144,0 +) +*54 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 146,0 +) +*55 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 148,0 +) +*56 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 150,0 +) +*57 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 152,0 +) +*58 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/tone@generator/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/tone@generator/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/tone@generator" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/toneGenerator" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "toneGenerator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "toneGenerator" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/tone@generator/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/toneGenerator/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "toneGenerator" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 309,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,23625,58750,24375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "courier,9,0" +) +xt "54100,23400,57000,24600" +st "tone" +ju 2 +blo "57000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8000,16500,8900" +st "tone : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "tone" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*61 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,23625,42000,24375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "43000,23400,46400,24600" +st "clock" +blo "43000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8900,16500,9800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*62 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,25625,42000,26375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "43000,25400,46300,26600" +st "reset" +blo "43000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,15500,10700" +st "reset : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,20000,58000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "42600,27800,45100,28700" +st "Morse" +blo "42600,28500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "42600,28700,49600,29600" +st "toneGenerator" +blo "42600,29400" +) +) +gi *63 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "42000,31600,56000,34300" +st "Generic Declarations + +toneDivide positive 100E3 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "toneDivide" +type "positive" +value "100E3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*64 (Grouping +uid 16,0 +optionalChildren [ +*65 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*67 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*70 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *75 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*77 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "99,41,1397,886" +viewArea "-1100,-1100,74430,48110" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *78 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *79 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,6000,5400,7000" +st "Declarations" +blo "0,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,7000,2700,8000" +st "Ports:" +blo "0,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,10700,2500,11600" +st "User:" +blo "0,11400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,6000,5800,7000" +st "Internal User:" +blo "0,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,2000,11600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 626,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse/hds/unit@counter/symbol.sb b/05-Morse/Morse/hds/unit@counter/symbol.sb new file mode 100644 index 0000000..305139d --- /dev/null +++ b/05-Morse/Morse/hds/unit@counter/symbol.sb @@ -0,0 +1,1672 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2014,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +uid 320,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +uid 322,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "startCounter" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +uid 686,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 4 +suid 2013,0 +) +) +uid 688,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "done" +t "std_ulogic" +o 5 +suid 2014,0 +) +) +uid 690,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 100,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 103,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 321,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 323,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 687,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 689,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 691,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 109,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 113,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 115,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 117,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 121,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 123,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "unitCountDivide" +type "positive" +value "10E3" +) +uid 432,0 +) +*50 (LogGeneric +generic (GiElement +name "unitCountBitNb" +type "positive" +value "3" +) +uid 692,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 166,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 134,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 136,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 433,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 693,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 140,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 144,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 146,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 148,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 150,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 152,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/unit@counter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/unit@counter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/unit@counter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/unitCounter" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "unitCounter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:13:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "unitCounter" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/unit@counter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse/hds/unitCounter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:13:01" +) +(vvPair +variable "unit" +value "unitCounter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,17625,40000,18375" +) +tg (CPTG +uid 312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 313,0 +va (VaSet +font "courier,9,0" +) +xt "41000,17400,44400,18600" +st "clock" +blo "41000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 314,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8000,20000,8900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*67 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,19625,40000,20375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "courier,9,0" +) +xt "41000,19400,44300,20600" +st "reset" +blo "41000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 319,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8900,20000,9800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*68 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 741,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,11625,40000,12375" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 674,0 +va (VaSet +font "courier,9,0" +) +xt "41000,11400,48800,12600" +st "startCounter" +blo "41000,12400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,20000,10700" +st "startCounter : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "startCounter" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*69 (CptPort +uid 676,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 742,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,13625,40000,14375" +) +tg (CPTG +uid 678,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 679,0 +va (VaSet +font "courier,9,0" +) +xt "41000,13400,45000,14600" +st "unitNb" +blo "41000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 680,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,32500,11600" +st "unitNb : IN unsigned (unitCountBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 4 +suid 2013,0 +) +) +) +*70 (CptPort +uid 681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 743,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,11625,56750,12375" +) +tg (CPTG +uid 683,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 684,0 +va (VaSet +font "courier,9,0" +) +xt "51900,11400,55000,12600" +st "done" +ju 2 +blo "55000,12400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 685,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,19000,12500" +st "done : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "done" +t "std_ulogic" +o 5 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,8000,56000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "40600,21800,43100,22700" +st "Morse" +blo "40600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "40600,22700,46600,23600" +st "unitCounter" +blo "40600,23400" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,25600,56000,29200" +st "Generic Declarations + +unitCountDivide positive 10E3 +unitCountBitNb positive 3 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "10E3" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "99,41,1397,886" +viewArea "-1100,-1100,74430,48110" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,6000,5400,7000" +st "Declarations" +blo "0,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,7000,2700,8000" +st "Ports:" +blo "0,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12500,2500,13400" +st "User:" +blo "0,13200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,6000,5800,7000" +st "Internal User:" +blo "0,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,2000,13400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,6000,0,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 766,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/05-Morse/Morse_test/hdl/charToMorseController_tester_test.vhd b/05-Morse/Morse_test/hdl/charToMorseController_tester_test.vhd new file mode 100644 index 0000000..3eca717 --- /dev/null +++ b/05-Morse/Morse_test/hdl/charToMorseController_tester_test.vhd @@ -0,0 +1,70 @@ +LIBRARY std; + USE std.textio.all; +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF charToMorseController_tester IS + -- clock and reset + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + signal sReset: std_uLogic := '1'; + -- character input + constant textToSend : string := "tea time"; + constant charInputDelay : time := 200 us; + signal writePointer, readPointer : integer := 0; + signal fifoDataAvailable: std_uLogic := '0'; + +BEGIN + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + sReset <= '1', '0' after 2*clockPeriod; + reset <= sReset; + + ------------------------------------------------------------------------------ + -- test sequence + testSequence: process + begin + -- send characters + for index in 1 to textToSend'length loop + wait for charInputDelay; + writePointer <= writePointer + 1; + end loop; + -- end of fifo input + print(cr & cr); + assert false + report "End of text" + severity note; + wait; + end process testSequence; + + ------------------------------------------------------------------------------ + -- fifo simulation + fifo: process + begin + -- wait for action + wait until rising_edge(sClock); + -- add char in fifo + if readChar = '1' then + readPointer <= readPointer + 1; + end if; + -- end of simulation + if readPointer = textToSend'length then + wait for charInputDelay; + print(cr & cr); + assert false + report "End of simulation" + severity failure; + end if; + end process fifo; + + char <= std_ulogic_vector(to_unsigned( + character'pos(textToSend(readPointer+1)), char'length + )) when (readPointer < textToSend'length) and (fifoDataAvailable = '1') + else (others => '-'); + + fifoDataAvailable <= '1' when readPointer < writePointer + else '0'; + charNotReady <= not fifoDataAvailable; + +END ARCHITECTURE test; diff --git a/05-Morse/Morse_test/hdl/morseDecoder_tester_test.vhd b/05-Morse/Morse_test/hdl/morseDecoder_tester_test.vhd new file mode 100644 index 0000000..42ded03 --- /dev/null +++ b/05-Morse/Morse_test/hdl/morseDecoder_tester_test.vhd @@ -0,0 +1,108 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF morseDecoder_tester IS + -- clock and reset + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + signal sReset: std_uLogic := '1'; + -- UART + constant uartPeriod: time := (1.0/uartBaudRate) * 1 sec; + constant uartWriteInterval: time := 2 ms; + signal uartInString : string(1 to 32); + signal uartSendInString: std_uLogic; + signal uartSendInDone: std_uLogic; + signal uartInByte: character; + signal uartSendInByte: std_uLogic; + +BEGIN + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + sReset <= '1', '0' after 2*clockPeriod; + reset <= sReset; + + ------------------------------------------------------------------------------ + -- test sequence + process + begin + uartSendInString <= '0'; + wait for 4*uartPeriod; + -- characters with max. 2 Morse symbols + print("Sending characters with max. 2 symbols"); + uartInString <= pad("tea time", uartInString'length); + uartSendInString <= '1', '0' after 1 ns; + wait until uartSendInDone = '1'; + wait for uartWriteInterval; + -- characters starting with a dot + print("Sending characters starting with a dot"); + uartInString <= pad("eish54v3uf2arlwpj1", uartInString'length); + uartSendInString <= '1', '0' after 1 ns; + wait until uartSendInDone = '1'; + wait for uartWriteInterval; + -- characters starting with a dash + print("Sending characters starting with a dash"); + uartInString <= pad("tndb6xkcymgz7qo890", uartInString'length); + uartSendInString <= '1', '0' after 1 ns; + wait until uartSendInDone = '1'; + wait for uartWriteInterval; + -- end of simulation + print(cr & cr); + assert false + report "End of simulation" + severity failure; + wait; + end process; + + --============================================================================ + -- uart send + rsSendSerialString: process + constant uartBytePeriod : time := 15*uartPeriod; + variable commandRight: natural; + begin + + uartSendInByte <= '0'; + uartSendInDone <= '0'; + + wait until rising_edge(uartSendInString); + + commandRight := uartInString'right; + while uartInString(commandRight) = ' ' loop + commandRight := commandRight-1; + end loop; + + for index in uartInString'left to commandRight loop + uartInByte <= uartInString(index); + uartSendInByte <= '1', '0' after 1 ns; + wait for uartBytePeriod; + end loop; + + uartInByte <= cr; + uartSendInByte <= '1', '0' after 1 ns; + wait for uartBytePeriod; + + uartSendInDone <= '1'; + wait for 1 ns; + + end process rsSendSerialString; + + rsSendSerialByte: process + variable rxData: unsigned(uartDataBitNb-1 downto 0); + begin + RxD <= '1'; + + wait until rising_edge(uartSendInByte); + rxData := to_unsigned(character'pos(uartInByte), rxData'length); + + RxD <= '0'; + wait for uartPeriod; + + for index in rxData'reverse_range loop + RxD <= rxData(index); + wait for uartPeriod; + end loop; + + end process rsSendSerialByte; + +END ARCHITECTURE test; + diff --git a/05-Morse/Morse_test/hdl/morseEncoder_tester_test.vhd b/05-Morse/Morse_test/hdl/morseEncoder_tester_test.vhd new file mode 100644 index 0000000..3bd8ccc --- /dev/null +++ b/05-Morse/Morse_test/hdl/morseEncoder_tester_test.vhd @@ -0,0 +1,106 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF morseEncoder_tester IS + -- clock and reset + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + signal sReset: std_uLogic := '1'; + -- UART + constant uartPeriod: time := (1.0/uartBaudRate) * 1 sec; + constant uartWriteInterval: time := 8 ms; + signal uartInString : string(1 to 32); + signal uartSendInString: std_uLogic; + signal uartSendInDone: std_uLogic; + signal uartInByte: character; + signal uartSendInByte: std_uLogic; + +BEGIN + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + sReset <= '1', '0' after 2*clockPeriod; + reset <= sReset; + ------------------------------------------------------------------------------ + -- test sequence + process + begin + uartSendInString <= '0'; + wait for 4*uartPeriod; + -- characters with max. 2 Morse symbols + print("Sending characters with max. 2 symbols"); + uartInString <= pad("tea time", uartInString'length); + uartSendInString <= '1', '0' after 1 ns; + wait until uartSendInDone = '1'; + wait for uartWriteInterval; + -- characters starting with a dot + print("Sending characters starting with a dot"); + uartInString <= pad("eish54v3uf2arlwpj1", uartInString'length); + uartSendInString <= '1', '0' after 1 ns; + wait until uartSendInDone = '1'; + wait for uartWriteInterval; + -- characters starting with a dash + print("Sending characters starting with a dash"); + uartInString <= pad("tndb6xkcymgz7qo890", uartInString'length); + uartSendInString <= '1', '0' after 1 ns; + wait until uartSendInDone = '1'; + wait for uartWriteInterval; + -- end of simulation + print(cr & cr); + assert false + report "End of simulation" + severity failure; + wait; + end process; + + --============================================================================ + -- uart send + rsSendSerialString: process + constant uartBytePeriod : time := 15*uartPeriod; + variable commandRight: natural; + begin + + uartSendInByte <= '0'; + uartSendInDone <= '0'; + + wait until rising_edge(uartSendInString); + + commandRight := uartInString'right; + while uartInString(commandRight) = ' ' loop + commandRight := commandRight-1; + end loop; + + for index in uartInString'left to commandRight loop + uartInByte <= uartInString(index); + uartSendInByte <= '1', '0' after 1 ns; + wait for uartBytePeriod; + end loop; + + uartInByte <= cr; + uartSendInByte <= '1', '0' after 1 ns; + wait for uartBytePeriod; + + uartSendInDone <= '1'; + wait for 1 ns; + + end process rsSendSerialString; + + rsSendSerialByte: process + variable rxData: unsigned(uartDataBitNb-1 downto 0); + begin + RxD <= '1'; + + wait until rising_edge(uartSendInByte); + rxData := to_unsigned(character'pos(uartInByte), rxData'length); + + RxD <= '0'; + wait for uartPeriod; + + for index in rxData'reverse_range loop + RxD <= rxData(index); + wait for uartPeriod; + end loop; + + end process rsSendSerialByte; + +END ARCHITECTURE test; diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_charToMorseController_tester_test.vhd._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_charToMorseController_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_charToMorseController_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_entity.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_struct.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tester_entity.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_chartomorsecontroller_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morseDecoder_tester_test.vhd._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morseDecoder_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morseDecoder_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morseEncoder_tester_test.vhd._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morseEncoder_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morseEncoder_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_entity.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_struct.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tester_entity.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morsedecoder_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_entity.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_struct.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tester_entity.vhg._fpf b/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/05-Morse/Morse_test/hds/.hdlsidedata/_morseencoder_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/05-Morse/Morse_test/hds/@d@a@c_tester_1/interface b/05-Morse/Morse_test/hds/@d@a@c_tester_1/interface new file mode 100644 index 0000000..b372831 --- /dev/null +++ b/05-Morse/Morse_test/hds/@d@a@c_tester_1/interface @@ -0,0 +1,1035 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\@d@a@c_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\@d@a@c_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\@d@a@c_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\DAC_tester" +) +(vvPair +variable "date" +value "01/30/06" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "30" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE0787" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "month" +value "Jan" +) +(vvPair +variable "month_long" +value "January" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\@d@a@c_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\DAC_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "12:48:31" +) +(vvPair +variable "unit" +value "DAC_tester" +) +(vvPair +variable "user" +value "userE" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2006" +) +(vvPair +variable "yy" +value "06" +) +] +) +uid 71,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 178,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,5250,24375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 179,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 180,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "23400,7000,24600,9700" +st "clock" +ju 2 +blo "24400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 181,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 183,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82625,5250,83375,6000" +) +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 185,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "82400,7000,83600,24900" +st "lowpassOut : (signalBitNb-1:0)" +ju 2 +blo "83400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 186,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,73500,2800" +st "lowpassOut : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*4 (CptPort +uid 187,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 188,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19625,5250,20375,6000" +) +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +m 1 +o 4 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 189,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 190,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "19400,7000,20600,23800" +st "parallelIn : (signalBitNb-1:0)" +ju 2 +blo "20400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 191,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "parallelIn : OUT unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*5 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,5250,26375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 195,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "25400,7000,26600,9600" +st "reset" +ju 2 +blo "26400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "reset : OUT std_ulogic +" +) +) +*6 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53625,5250,54375,6000" +) +n "serialOut" +t "std_ulogic" +o 5 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 200,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "53400,7000,54600,11700" +st "serialOut" +ju 2 +blo "54400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 201,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62000,3600" +st "serialOut : IN std_ulogic ; +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,90000,14000" +) +oxt "15000,6000,66000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "48900,8800,56100,10000" +st "Curves_test" +blo "48900,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "48900,10000,55900,11200" +st "DAC_tester" +blo "48900,11000" +) +) +gi *7 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "27500,6000,41000,8400" +st "Generic Declarations + +signalBitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*8 (Grouping +uid 16,0 +optionalChildren [ +*9 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,45500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*14 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*17 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48700,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *19 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*20 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*21 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "DAC_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *22 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *23 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,6000,44000,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 201,0 +) diff --git a/05-Morse/Morse_test/hds/_chartomorsecontroller_tb._epf b/05-Morse/Morse_test/hds/_chartomorsecontroller_tb._epf new file mode 100644 index 0000000..c21fe47 --- /dev/null +++ b/05-Morse/Morse_test/hds/_chartomorsecontroller_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom char@to@morse@controller_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/05-Morse/Morse_test/hds/_chartomorsecontroller_tester._epf b/05-Morse/Morse_test/hds/_chartomorsecontroller_tester._epf new file mode 100644 index 0000000..d3446c1 --- /dev/null +++ b/05-Morse/Morse_test/hds/_chartomorsecontroller_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom charToMorseController_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/05-Morse/Morse_test/hds/_morsedecoder_tb._epf b/05-Morse/Morse_test/hds/_morsedecoder_tb._epf new file mode 100644 index 0000000..b8b5678 --- /dev/null +++ b/05-Morse/Morse_test/hds/_morsedecoder_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom morse@decoder_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/05-Morse/Morse_test/hds/_morsedecoder_tester._epf b/05-Morse/Morse_test/hds/_morsedecoder_tester._epf new file mode 100644 index 0000000..571e9fc --- /dev/null +++ b/05-Morse/Morse_test/hds/_morsedecoder_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom morseDecoder_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/05-Morse/Morse_test/hds/_morseencoder_tb._epf b/05-Morse/Morse_test/hds/_morseencoder_tb._epf new file mode 100644 index 0000000..b4154a8 --- /dev/null +++ b/05-Morse/Morse_test/hds/_morseencoder_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom morse@encoder_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/05-Morse/Morse_test/hds/_morseencoder_tester._epf b/05-Morse/Morse_test/hds/_morseencoder_tester._epf new file mode 100644 index 0000000..e0552f9 --- /dev/null +++ b/05-Morse/Morse_test/hds/_morseencoder_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom morseEncoder_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/05-Morse/Morse_test/hds/beamer@periph@blanking_tester/interface b/05-Morse/Morse_test/hds/beamer@periph@blanking_tester/interface new file mode 100644 index 0000000..49eb239 --- /dev/null +++ b/05-Morse/Morse_test/hds/beamer@periph@blanking_tester/interface @@ -0,0 +1,1408 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\beamerPeriphBlanking_tester" +) +(vvPair +variable "date" +value "04/24/08" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "24" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE1635" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\beamerPeriphBlanking_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "13:33:53" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +m 1 +o 11 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,22200" +st "addr : (addressBitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,73500,6000" +st "addr : OUT unsigned (addressBitNb-1 DOWNTO 0) ; +" +) +) +*3 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 6 +d 0 +s 0 +sf 1 +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "40400,7000,41600,9700" +st "clock" +ju 2 +blo "41400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,61500,6800" +st "clock : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +n "cs" +t "std_ulogic" +m 1 +o 3 +r 7 +d 0 +s 0 +sf 1 +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "36400,7000,37600,8200" +st "cs" +ju 2 +blo "37400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,61500,7600" +st "cs : OUT std_ulogic ; +" +) +) +*5 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +m 1 +o 10 +r 8 +d 0 +s 0 +sf 1 +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "24400,7000,25600,21500" +st "dataIn : (dataBitNb-1:0)" +ju 2 +blo "25400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,76500,8400" +st "dataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +) +*6 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "26400,7000,27600,22300" +st "dataOut : (dataBitNb-1:0)" +ju 2 +blo "27400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,76000,2800" +st "dataOut : IN std_logic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +) +*7 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78625,5250,79375,6000" +) +n "outX" +t "std_ulogic" +o 8 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "78400,7000,79600,9300" +st "outX" +ju 2 +blo "79400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,61500,3600" +st "outX : IN std_ulogic ; +" +) +) +*8 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76625,5250,77375,6000" +) +n "outY" +t "std_ulogic" +o 7 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "76400,7000,77600,9300" +st "outY" +ju 2 +blo "77400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,61500,4400" +st "outY : IN std_ulogic ; +" +) +) +*9 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74625,5250,75375,6000" +) +n "outZ" +t "std_ulogic" +o 15 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "74400,7000,75600,9300" +st "outZ" +ju 2 +blo "75400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,61500,5200" +st "outZ : IN std_ulogic ; +" +) +) +*10 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "rd" +t "std_ulogic" +m 1 +o 6 +r 9 +d 0 +s 0 +sf 1 +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 94,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,8000" +st "rd" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,61500,9200" +st "rd : OUT std_ulogic ; +" +) +) +*11 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 10 +d 0 +s 0 +sf 1 +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 99,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "42400,7000,43600,9600" +st "reset" +ju 2 +blo "43400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,61500,10000" +st "reset : OUT std_ulogic ; +" +) +) +*12 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70625,5250,71375,6000" +) +n "selSinCos" +t "std_ulogic" +m 1 +o 14 +r 11 +d 0 +s 0 +sf 1 +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 104,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "70400,7000,71600,12100" +st "selSinCos" +ju 2 +blo "71400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,61500,10800" +st "selSinCos : OUT std_ulogic ; +" +) +) +*13 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +n "wrH" +t "std_ulogic" +m 1 +o 5 +r 12 +d 0 +s 0 +sf 1 +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 109,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "32400,7000,33600,8900" +st "wrH" +ju 2 +blo "33400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,61500,11600" +st "wrH : OUT std_ulogic ; +" +) +) +*14 (CptPort +uid 111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 112,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +n "wrL" +t "std_ulogic" +m 1 +o 4 +r 13 +d 0 +s 0 +sf 1 +tg (CPTG +uid 113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 114,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "34400,7000,35600,8700" +st "wrL" +ju 2 +blo "35400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 115,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11600,60500,12400" +st "wrL : OUT std_ulogic +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,87000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "42650,8800,49850,10000" +st "Curves_test" +blo "42650,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "42650,10000,59350,11200" +st "beamerPeriphBlanking_tester" +blo "42650,11000" +) +) +gi *15 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,6000,40000,9200" +st "Generic Declarations + +dataBitNb positive 16 +addressBitNb positive 24 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*16 (Grouping +uid 16,0 +optionalChildren [ +*17 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*19 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*20 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*21 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*22 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*23 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*24 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*25 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*26 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52100,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *27 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*28 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*29 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "beamerPeriphBlanking_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *30 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *31 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,12400,44000,13400" +st "User:" +blo "42000,13200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13400,44000,13400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 115,0 +) diff --git a/05-Morse/Morse_test/hds/char@to@morse@controller_tb/struct.bd b/05-Morse/Morse_test/hds/char@to@morse@controller_tb/struct.bd new file mode 100644 index 0000000..b4077e5 --- /dev/null +++ b/05-Morse/Morse_test/hds/char@to@morse@controller_tb/struct.bd @@ -0,0 +1,3588 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_DUT" +duLibraryName "Morse" +duName "charToMorseController" +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "characterBitNb" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +mwi 0 +uid 3079,0 +) +(Instance +name "I_cnt" +duLibraryName "Morse" +duName "unitCounter" +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +mwi 0 +uid 3124,0 +) +(Instance +name "I_tester" +duLibraryName "Morse_test" +duName "charToMorseController_tester" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "characterBitNb" +type "positive" +value "characterBitNb" +) +] +mwi 0 +uid 3410,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\charToMorseController_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorseController_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:50:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Morse_test/concat" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "charToMorseController_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\charToMorseController_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:50:43" +) +(vvPair +variable "unit" +value "charToMorseController_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,73000,91000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,73500,74200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "91000,69000,95000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "91200,69500,91200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,71000,91000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,71500,74200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,71000,74000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,71500,70200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "91000,70000,111000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "91200,70200,105300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "95000,69000,111000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "95200,69500,95200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,69000,91000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "75350,69400,85650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,72000,74000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,72500,70200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,73000,74000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,73500,70200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,72000,91000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,72500,74200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "70000,69000,111000,74000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 2556,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 25,0 +) +declText (MLText +uid 2557,0 +va (VaSet +) +xt "2000,22800,19500,24000" +st "SIGNAL reset : std_ulogic +" +) +) +*13 (Net +uid 2564,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 26,0 +) +declText (MLText +uid 2565,0 +va (VaSet +) +xt "2000,18000,19600,19200" +st "SIGNAL clock : std_ulogic +" +) +) +*14 (SaComponent +uid 3079,0 +optionalChildren [ +*15 (CptPort +uid 3043,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3044,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61000,28625,61750,29375" +) +tg (CPTG +uid 3045,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3046,0 +va (VaSet +) +xt "54300,28400,60000,29600" +st "morseOut" +ju 2 +blo "60000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseOut" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*16 (CptPort +uid 3047,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3048,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,36625,45000,37375" +) +tg (CPTG +uid 3049,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3050,0 +va (VaSet +) +xt "46000,36400,49400,37600" +st "clock" +blo "46000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*17 (CptPort +uid 3051,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3052,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,38625,45000,39375" +) +tg (CPTG +uid 3053,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3054,0 +va (VaSet +) +xt "46000,38400,49300,39600" +st "reset" +blo "46000,39400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*18 (CptPort +uid 3055,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3056,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,30625,45000,31375" +) +tg (CPTG +uid 3057,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3058,0 +va (VaSet +) +xt "46000,30400,54500,31600" +st "charNotReady" +blo "46000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*19 (CptPort +uid 3059,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3060,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,28625,45000,29375" +) +tg (CPTG +uid 3061,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3062,0 +va (VaSet +) +xt "46000,28400,48900,29600" +st "char" +blo "46000,29400" +) +) +thePort (LogicalPort +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 5 +suid 2011,0 +) +) +) +*20 (CptPort +uid 3063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3064,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61000,32625,61750,33375" +) +tg (CPTG +uid 3065,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3066,0 +va (VaSet +) +xt "52200,32400,60000,33600" +st "startCounter" +ju 2 +blo "60000,33400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "startCounter" +t "std_ulogic" +o 6 +suid 2012,0 +) +) +) +*21 (CptPort +uid 3067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3068,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61000,34625,61750,35375" +) +tg (CPTG +uid 3069,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3070,0 +va (VaSet +) +xt "56000,34400,60000,35600" +st "unitNb" +ju 2 +blo "60000,35400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 7 +suid 2013,0 +) +) +) +*22 (CptPort +uid 3071,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3072,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61000,36625,61750,37375" +) +tg (CPTG +uid 3073,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3074,0 +va (VaSet +) +xt "52200,36400,60000,37600" +st "counterDone" +ju 2 +blo "60000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "counterDone" +t "std_ulogic" +o 8 +suid 2014,0 +) +) +) +*23 (CptPort +uid 3075,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3076,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,32625,45000,33375" +) +tg (CPTG +uid 3077,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3078,0 +va (VaSet +) +xt "46000,32550,51300,33750" +st "readChar" +blo "46000,33550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readChar" +t "std_ulogic" +o 9 +suid 2015,0 +) +) +) +] +shape (Rectangle +uid 3080,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,25000,61000,41000" +) +oxt "40000,6000,56000,22000" +ttg (MlTextGroup +uid 3081,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 3082,0 +va (VaSet +font "Verdana,9,1" +) +xt "45600,40800,49100,42000" +st "Morse" +blo "45600,41800" +tm "BdLibraryNameMgr" +) +*25 (Text +uid 3083,0 +va (VaSet +font "Verdana,9,1" +) +xt "45600,41700,58500,42900" +st "charToMorseController" +blo "45600,42700" +tm "CptNameMgr" +) +*26 (Text +uid 3084,0 +va (VaSet +font "Verdana,9,1" +) +xt "45600,42600,49300,43800" +st "I_DUT" +blo "45600,43600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3085,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3086,0 +text (MLText +uid 3087,0 +va (VaSet +font "Verdana,8,0" +) +xt "45000,44600,66600,46600" +st "characterBitNb = characterBitNb ( positive ) +unitCountBitNb = unitCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "characterBitNb" +type "positive" +value "characterBitNb" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*27 (Net +uid 3088,0 +decl (Decl +n "readChar" +t "std_ulogic" +o 3 +suid 29,0 +) +declText (MLText +uid 3089,0 +va (VaSet +) +xt "2000,21600,20600,22800" +st "SIGNAL readChar : std_ulogic +" +) +) +*28 (Net +uid 3096,0 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 30,0 +) +declText (MLText +uid 3097,0 +va (VaSet +) +xt "2000,16800,21900,18000" +st "SIGNAL charNotReady : std_ulogic +" +) +) +*29 (SaComponent +uid 3124,0 +optionalChildren [ +*30 (CptPort +uid 3104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,38625,69000,39375" +) +tg (CPTG +uid 3106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3107,0 +va (VaSet +) +xt "70000,38400,73400,39600" +st "clock" +blo "70000,39400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2008,0 +) +) +) +*31 (CptPort +uid 3108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,40625,69000,41375" +) +tg (CPTG +uid 3110,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3111,0 +va (VaSet +) +xt "70000,40400,73300,41600" +st "reset" +blo "70000,41400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2009,0 +) +) +) +*32 (CptPort +uid 3112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3113,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,32625,69000,33375" +) +tg (CPTG +uid 3114,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3115,0 +va (VaSet +) +xt "70000,32400,77800,33600" +st "startCounter" +blo "70000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "startCounter" +t "std_ulogic" +o 3 +suid 2012,0 +) +) +) +*33 (CptPort +uid 3116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,34625,69000,35375" +) +tg (CPTG +uid 3118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3119,0 +va (VaSet +) +xt "70000,34400,74000,35600" +st "unitNb" +blo "70000,35400" +) +) +thePort (LogicalPort +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 4 +suid 2013,0 +) +) +) +*34 (CptPort +uid 3120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "85000,32625,85750,33375" +) +tg (CPTG +uid 3122,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3123,0 +va (VaSet +) +xt "80900,32400,84000,33600" +st "done" +ju 2 +blo "84000,33400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "done" +t "std_ulogic" +o 5 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 3125,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "69000,29000,85000,43000" +) +oxt "40000,8000,56000,22000" +ttg (MlTextGroup +uid 3126,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 3127,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,42800,73100,44000" +st "Morse" +blo "69600,43800" +tm "BdLibraryNameMgr" +) +*36 (Text +uid 3128,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,43700,76700,44900" +st "unitCounter" +blo "69600,44700" +tm "CptNameMgr" +) +*37 (Text +uid 3129,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,44600,72900,45800" +st "I_cnt" +blo "69600,45600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3130,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3131,0 +text (MLText +uid 3132,0 +va (VaSet +font "Verdana,8,0" +) +xt "69000,46600,102800,48600" +st "unitCountDivide = integer(clockFrequency*unitDuration + 0.5) ( positive ) +unitCountBitNb = unitCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "unitCountDivide" +type "positive" +value "integer(clockFrequency*unitDuration + 0.5)" +) +(GiElement +name "unitCountBitNb" +type "positive" +value "unitCountBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*38 (Net +uid 3133,0 +decl (Decl +n "startCounter" +t "std_ulogic" +o 5 +suid 31,0 +) +declText (MLText +uid 3134,0 +va (VaSet +) +xt "2000,24000,21200,25200" +st "SIGNAL startCounter : std_ulogic +" +) +) +*39 (Net +uid 3139,0 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 6 +suid 32,0 +) +declText (MLText +uid 3140,0 +va (VaSet +) +xt "2000,25200,34400,26400" +st "SIGNAL unitNb : unsigned(unitCountBitNb-1 downto 0) +" +) +) +*40 (Net +uid 3145,0 +decl (Decl +n "done" +t "std_ulogic" +o 7 +suid 33,0 +) +declText (MLText +uid 3146,0 +va (VaSet +) +xt "2000,19200,19600,20400" +st "SIGNAL done : std_ulogic +" +) +) +*41 (Net +uid 3167,0 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 34,0 +) +declText (MLText +uid 3168,0 +va (VaSet +) +xt "2000,20400,21000,21600" +st "SIGNAL morseOut : std_ulogic +" +) +) +*42 (Net +uid 3175,0 +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 9 +suid 35,0 +) +declText (MLText +uid 3176,0 +va (VaSet +) +xt "2000,15600,39800,16800" +st "SIGNAL char : std_ulogic_vector(characterBitNb-1 DOWNTO 0) +" +) +) +*43 (Blk +uid 3410,0 +shape (Rectangle +uid 3411,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "25000,51000,101000,59000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3412,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 3413,0 +va (VaSet +) +xt "25250,59500,32350,60700" +st "Morse_test" +blo "25250,60500" +tm "BdLibraryNameMgr" +) +*45 (Text +uid 3414,0 +va (VaSet +) +xt "25250,60400,42550,61600" +st "charToMorseController_tester" +blo "25250,61400" +tm "BlkNameMgr" +) +*46 (Text +uid 3415,0 +va (VaSet +) +xt "25250,61300,30050,62500" +st "I_tester" +blo "25250,62300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3416,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3417,0 +text (MLText +uid 3418,0 +va (VaSet +) +xt "25000,63000,51500,65400" +st "clockFrequency = clockFrequency ( real ) +characterBitNb = characterBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "characterBitNb" +type "positive" +value "characterBitNb" +) +] +) +) +*47 (Wire +uid 2558,0 +shape (OrthoPolyLine +uid 2559,0 +va (VaSet +vasetType 3 +) +xt "43000,39000,44250,51000" +pts [ +"44250,39000" +"43000,39000" +"43000,51000" +] +) +start &17 +end &43 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2562,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2563,0 +va (VaSet +font "Verdana,12,0" +) +xt "39250,37600,43350,39000" +st "reset" +blo "39250,38800" +tm "WireNameMgr" +) +) +on &12 +) +*48 (Wire +uid 2566,0 +shape (OrthoPolyLine +uid 2567,0 +va (VaSet +vasetType 3 +) +xt "41000,37000,44250,51000" +pts [ +"44250,37000" +"41000,37000" +"41000,51000" +] +) +start &16 +end &43 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2570,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2571,0 +va (VaSet +font "Verdana,12,0" +) +xt "39250,35600,43050,37000" +st "clock" +blo "39250,36800" +tm "WireNameMgr" +) +) +on &13 +) +*49 (Wire +uid 3090,0 +shape (OrthoPolyLine +uid 3091,0 +va (VaSet +vasetType 3 +) +xt "37000,33000,44250,51000" +pts [ +"44250,33000" +"37000,33000" +"37000,51000" +] +) +start &23 +end &43 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3094,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3095,0 +va (VaSet +font "Verdana,12,0" +) +xt "37250,31700,43950,33100" +st "readChar" +blo "37250,32900" +tm "WireNameMgr" +) +) +on &27 +) +*50 (Wire +uid 3098,0 +shape (OrthoPolyLine +uid 3099,0 +va (VaSet +vasetType 3 +) +xt "35000,31000,44250,51000" +pts [ +"44250,31000" +"35000,31000" +"35000,51000" +] +) +start &18 +end &43 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3102,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3103,0 +va (VaSet +font "Verdana,12,0" +) +xt "34250,29700,44650,31100" +st "charNotReady" +blo "34250,30900" +tm "WireNameMgr" +) +) +on &28 +) +*51 (Wire +uid 3135,0 +shape (OrthoPolyLine +uid 3136,0 +va (VaSet +vasetType 3 +) +xt "61750,33000,68250,33000" +pts [ +"61750,33000" +"68250,33000" +] +) +start &20 +end &32 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3137,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3138,0 +va (VaSet +font "Verdana,12,0" +) +xt "63750,31700,73450,33100" +st "startCounter" +blo "63750,32900" +tm "WireNameMgr" +) +) +on &38 +) +*52 (Wire +uid 3141,0 +shape (OrthoPolyLine +uid 3142,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "61750,35000,68250,35000" +pts [ +"61750,35000" +"68250,35000" +] +) +start &21 +end &33 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3143,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3144,0 +va (VaSet +font "Verdana,12,0" +) +xt "63750,33700,68650,35100" +st "unitNb" +blo "63750,34900" +tm "WireNameMgr" +) +) +on &39 +) +*53 (Wire +uid 3147,0 +shape (OrthoPolyLine +uid 3148,0 +va (VaSet +vasetType 3 +) +xt "61750,33000,89000,47000" +pts [ +"85750,33000" +"89000,33000" +"89000,47000" +"63000,47000" +"63000,37000" +"61750,37000" +] +) +start &34 +end &22 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3149,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3150,0 +va (VaSet +font "Verdana,12,0" +) +xt "87750,31700,91750,33100" +st "done" +blo "87750,32900" +tm "WireNameMgr" +) +) +on &40 +) +*54 (Wire +uid 3151,0 +shape (OrthoPolyLine +uid 3152,0 +va (VaSet +vasetType 3 +) +xt "65000,41000,68250,41000" +pts [ +"68250,41000" +"67000,41000" +"65000,41000" +] +) +start &31 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3157,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3158,0 +va (VaSet +font "Verdana,12,0" +) +xt "64000,39700,68100,41100" +st "reset" +blo "64000,40900" +tm "WireNameMgr" +) +) +on &12 +) +*55 (Wire +uid 3159,0 +shape (OrthoPolyLine +uid 3160,0 +va (VaSet +vasetType 3 +) +xt "65000,39000,68250,39000" +pts [ +"68250,39000" +"65000,39000" +"65000,39000" +] +) +start &30 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3165,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3166,0 +va (VaSet +font "Verdana,12,0" +) +xt "64000,37700,67800,39100" +st "clock" +blo "64000,38900" +tm "WireNameMgr" +) +) +on &13 +) +*56 (Wire +uid 3169,0 +shape (OrthoPolyLine +uid 3170,0 +va (VaSet +vasetType 3 +) +xt "61750,25000,93000,51000" +pts [ +"61750,29000" +"65000,29000" +"65000,25000" +"93000,25000" +"93000,51000" +] +) +start &15 +end &43 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3173,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3174,0 +va (VaSet +font "Verdana,12,0" +) +xt "63750,27700,70750,29100" +st "morseOut" +blo "63750,28900" +tm "WireNameMgr" +) +) +on &41 +) +*57 (Wire +uid 3177,0 +shape (OrthoPolyLine +uid 3178,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "33000,29000,44250,51000" +pts [ +"44250,29000" +"33000,29000" +"33000,51000" +] +) +start &19 +end &43 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3181,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3182,0 +va (VaSet +font "Verdana,12,0" +) +xt "40250,27700,43750,29100" +st "char" +blo "40250,28900" +tm "WireNameMgr" +) +) +on &42 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *58 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*60 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*62 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*63 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*64 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*65 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*66 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*67 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1603,-1603,140959,75855" +cachedDiagramExtent "0,0,111000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 3613,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*69 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*70 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*72 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*73 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*75 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*76 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*78 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*79 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*81 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*82 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*84 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*86 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*88 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5600,7000,6600" +st "Declarations" +blo "0,6400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6600,3400,7600" +st "Ports:" +blo "0,7400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7600,4800,8600" +st "Pre User:" +blo "0,8400" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "2000,8600,26900,14600" +st "constant characterBitNb: positive := 7; +constant unitCountBitNb: positive := 3; +constant unitDuration: real := 50.0E-6; +constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,14600,9000,15600" +st "Diagram Signals:" +blo "0,15400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5600,6000,6600" +st "Post User:" +blo "0,6400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "0,5600,0,5600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 35,0 +usingSuid 1 +emptyRow *89 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*90 (RefLabelRowHdr +) +*91 (TitleRowHdr +) +*92 (FilterRowHdr +) +*93 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*94 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*95 (GroupColHdr +tm "GroupColHdrMgr" +) +*96 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*97 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*98 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*99 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*100 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*101 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*102 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 25,0 +) +) +uid 2588,0 +) +*103 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 26,0 +) +) +uid 2590,0 +) +*104 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "readChar" +t "std_ulogic" +o 3 +suid 29,0 +) +) +uid 3183,0 +) +*105 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 30,0 +) +) +uid 3185,0 +) +*106 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "startCounter" +t "std_ulogic" +o 5 +suid 31,0 +) +) +uid 3187,0 +) +*107 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unitNb" +t "unsigned" +b "(unitCountBitNb-1 downto 0)" +o 6 +suid 32,0 +) +) +uid 3189,0 +) +*108 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "done" +t "std_ulogic" +o 7 +suid 33,0 +) +) +uid 3191,0 +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 34,0 +) +) +uid 3193,0 +) +*110 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 9 +suid 35,0 +) +) +uid 3195,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*111 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *112 (MRCItem +litem &89 +pos 9 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*113 (MRCItem +litem &90 +pos 0 +dimension 20 +uid 1337,0 +) +*114 (MRCItem +litem &91 +pos 1 +dimension 23 +uid 1338,0 +) +*115 (MRCItem +litem &92 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*116 (MRCItem +litem &102 +pos 0 +dimension 20 +uid 2589,0 +) +*117 (MRCItem +litem &103 +pos 1 +dimension 20 +uid 2591,0 +) +*118 (MRCItem +litem &104 +pos 2 +dimension 20 +uid 3184,0 +) +*119 (MRCItem +litem &105 +pos 3 +dimension 20 +uid 3186,0 +) +*120 (MRCItem +litem &106 +pos 4 +dimension 20 +uid 3188,0 +) +*121 (MRCItem +litem &107 +pos 5 +dimension 20 +uid 3190,0 +) +*122 (MRCItem +litem &108 +pos 6 +dimension 20 +uid 3192,0 +) +*123 (MRCItem +litem &109 +pos 7 +dimension 20 +uid 3194,0 +) +*124 (MRCItem +litem &110 +pos 8 +dimension 20 +uid 3196,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*125 (MRCItem +litem &93 +pos 0 +dimension 20 +uid 1341,0 +) +*126 (MRCItem +litem &95 +pos 1 +dimension 50 +uid 1342,0 +) +*127 (MRCItem +litem &96 +pos 2 +dimension 100 +uid 1343,0 +) +*128 (MRCItem +litem &97 +pos 3 +dimension 50 +uid 1344,0 +) +*129 (MRCItem +litem &98 +pos 4 +dimension 100 +uid 1345,0 +) +*130 (MRCItem +litem &99 +pos 5 +dimension 100 +uid 1346,0 +) +*131 (MRCItem +litem &100 +pos 6 +dimension 50 +uid 1347,0 +) +*132 (MRCItem +litem &101 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *133 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*134 (RefLabelRowHdr +) +*135 (TitleRowHdr +) +*136 (FilterRowHdr +) +*137 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*138 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*139 (GroupColHdr +tm "GroupColHdrMgr" +) +*140 (NameColHdr +tm "GenericNameColHdrMgr" +) +*141 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*142 (InitColHdr +tm "GenericValueColHdrMgr" +) +*143 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*144 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*145 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *146 (MRCItem +litem &133 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*147 (MRCItem +litem &134 +pos 0 +dimension 20 +uid 1365,0 +) +*148 (MRCItem +litem &135 +pos 1 +dimension 23 +uid 1366,0 +) +*149 (MRCItem +litem &136 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*150 (MRCItem +litem &137 +pos 0 +dimension 20 +uid 1369,0 +) +*151 (MRCItem +litem &139 +pos 1 +dimension 50 +uid 1370,0 +) +*152 (MRCItem +litem &140 +pos 2 +dimension 100 +uid 1371,0 +) +*153 (MRCItem +litem &141 +pos 3 +dimension 100 +uid 1372,0 +) +*154 (MRCItem +litem &142 +pos 4 +dimension 50 +uid 1373,0 +) +*155 (MRCItem +litem &143 +pos 5 +dimension 50 +uid 1374,0 +) +*156 (MRCItem +litem &144 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Morse_test/hds/char@to@morse@controller_tb/symbol.sb b/05-Morse/Morse_test/hds/char@to@morse@controller_tb/symbol.sb new file mode 100644 index 0000000..7b0e694 --- /dev/null +++ b/05-Morse/Morse_test/hds/char@to@morse@controller_tb/symbol.sb @@ -0,0 +1,1244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/char@to@morse@controller_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/char@to@morse@controller_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/char@to@morse@controller_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/charToMorseController_tb" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorseController_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:12:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "charToMorseController_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/char@to@morse@controller_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/charToMorseController_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:12:49" +) +(vvPair +variable "unit" +value "charToMorseController_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,28100,15700" +st "Morse_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,35100,16600" +st "charToMorseController_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1800,44500,2700" +st "User:" +blo "42000,2500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,44000,2700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/05-Morse/Morse_test/hds/char@to@morse@controller_tester/interface b/05-Morse/Morse_test/hds/char@to@morse@controller_tester/interface new file mode 100644 index 0000000..4e5912c --- /dev/null +++ b/05-Morse/Morse_test/hds/char@to@morse@controller_tester/interface @@ -0,0 +1,1718 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 42,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 95,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 9 +suid 37,0 +) +) +uid 601,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 38,0 +) +) +uid 603,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 39,0 +) +) +uid 605,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 40,0 +) +) +uid 607,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "readChar" +t "std_ulogic" +o 3 +suid 41,0 +) +) +uid 609,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 42,0 +) +) +uid 611,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 110,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 111,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 112,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 602,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 604,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 606,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 608,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 610,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 612,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 115,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 116,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 117,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 118,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 120,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 121,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 122,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 94,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 124,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "characterBitNb" +type "positive" +value "" +) +uid 391,0 +) +*52 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 481,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *54 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 138,0 +optionalChildren [ +*55 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 139,0 +) +*56 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 140,0 +) +*57 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*58 (MRCItem +litem &51 +pos 1 +dimension 20 +uid 392,0 +) +*59 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 482,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*60 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 143,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 144,0 +) +*62 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 145,0 +) +*63 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 146,0 +) +*64 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 147,0 +) +*65 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 148,0 +) +*66 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 149,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 123,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\charToMorseController_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "charToMorseController_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:50:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "charToMorseController_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\char@to@morse@controller_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\charToMorseController_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:50:43" +) +(vvPair +variable "unit" +value "charToMorseController_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 93,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 571,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 572,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 573,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 574,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10500" +st "char" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 575,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,80500,4400" +st "char : OUT std_ulogic_vector (characterBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "char" +t "std_ulogic_vector" +b "(characterBitNb-1 DOWNTO 0)" +o 9 +suid 37,0 +) +) +) +*69 (CptPort +uid 576,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 577,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 578,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 579,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,17400" +st "charNotReady" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 580,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,63000,5200" +st "charNotReady : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "charNotReady" +t "std_ulogic" +o 4 +suid 38,0 +) +) +) +*70 (CptPort +uid 581,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 582,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 583,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 584,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,10800" +st "clock" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 585,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,63000,6000" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 39,0 +) +) +) +*71 (CptPort +uid 586,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 587,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82625,5250,83375,6000" +) +tg (CPTG +uid 588,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 589,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "82300,7000,83700,14000" +st "morseOut" +ju 2 +blo "83500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 590,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,63000,2800" +st "morseOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "morseOut" +t "std_ulogic" +o 8 +suid 40,0 +) +) +) +*72 (CptPort +uid 591,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 592,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 593,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 594,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,13700" +st "readChar" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 595,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,63000,3600" +st "readChar : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "readChar" +t "std_ulogic" +o 3 +suid 41,0 +) +) +) +*73 (CptPort +uid 596,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 597,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 598,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 599,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "32300,7000,33700,11100" +st "reset" +ju 2 +blo "33500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 600,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62000,6800" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 42,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,91000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "45150,9050,51550,10050" +st "Morse_test" +blo "45150,9850" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "45150,10050,60850,11050" +st "charToMorseController_tester" +blo "45150,10850" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "26000,6000,37600,10000" +st "Generic Declarations + +clockFrequency real +characterBitNb positive " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "" +) +(GiElement +name "characterBitNb" +type "positive" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,50000,44800,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,46000,52900,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,48000,44700,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,48000,30800,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,47200,60800,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "53200,46000,56200,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "33350,46400,43650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,49000,30900,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,50000,31600,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,49000,40900,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*88 (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "0,900,13600,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "80,66,1095,756" +viewArea "-500,-500,83100,45260" +cachedDiagramExtent "0,0,91000,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Morse_test" +entityName "charToMorseController_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,6800,45000,7800" +st "User:" +blo "42000,7600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,7800,44000,7800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 612,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:GEN" +) diff --git a/05-Morse/Morse_test/hds/morse@decoder_tb/struct.bd b/05-Morse/Morse_test/hds/morse@decoder_tb/struct.bd new file mode 100644 index 0000000..eafe662 --- /dev/null +++ b/05-Morse/Morse_test/hds/morse@decoder_tb/struct.bd @@ -0,0 +1,3271 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "Morse_test" +duName "morseDecoder_tester" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +] +mwi 0 +uid 2178,0 +) +(Instance +name "I_enc" +duLibraryName "Morse" +duName "morseEncoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +mwi 0 +uid 3220,0 +) +(Instance +name "I_DUT" +duLibraryName "Morse" +duName "morseDecoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +mwi 0 +uid 3389,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseDecoder_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseDecoder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:50:57" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morseDecoder_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseDecoder_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:50:57" +) +(vvPair +variable "unit" +value "morseDecoder_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,65000,79000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,65500,62200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,83000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61500,79200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,63000,79000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,63500,62200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,62000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63500,58200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,62000,99000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,62200,93300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,61000,99000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,61500,83200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,61000,79000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "63350,61400,73650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,62000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64500,58200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,62000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65500,58200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,64000,79000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,64500,62200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "58000,61000,99000,66000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 2178,0 +shape (Rectangle +uid 2179,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "19000,40000,89000,48000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2180,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 2181,0 +va (VaSet +) +xt "18850,48200,25950,49400" +st "Morse_test" +blo "18850,49200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 2182,0 +va (VaSet +) +xt "18850,49400,31150,50600" +st "morseDecoder_tester" +blo "18850,50400" +tm "BlkNameMgr" +) +*15 (Text +uid 2183,0 +va (VaSet +) +xt "18850,50600,23650,51800" +st "I_tester" +blo "18850,51600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2184,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2185,0 +text (MLText +uid 2186,0 +va (VaSet +) +xt "19000,52000,45300,55600" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +] +) +) +*16 (Net +uid 2556,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 25,0 +) +declText (MLText +uid 2557,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,21600,16100,22600" +st "SIGNAL reset : std_ulogic +" +) +) +*17 (Net +uid 2564,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 26,0 +) +declText (MLText +uid 2565,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18600,16100,19600" +st "SIGNAL clock : std_ulogic +" +) +) +*18 (Net +uid 2572,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 27,0 +) +declText (MLText +uid 2573,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16600,16400,17600" +st "SIGNAL RxD : std_ulogic +" +) +) +*19 (Net +uid 2580,0 +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 28,0 +) +declText (MLText +uid 2581,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,19600,17500,20600" +st "SIGNAL morseCode : std_ulogic +" +) +) +*20 (Net +uid 3115,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 5 +suid 30,0 +) +declText (MLText +uid 3116,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17600,16300,18600" +st "SIGNAL TxD : std_ulogic +" +) +) +*21 (SaComponent +uid 3220,0 +optionalChildren [ +*22 (CptPort +uid 3204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,23625,51750,24375" +) +tg (CPTG +uid 3206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3207,0 +va (VaSet +) +xt "43600,23400,50000,24600" +st "morseCode" +ju 2 +blo "50000,24400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*23 (CptPort +uid 3208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3209,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,27625,35000,28375" +) +tg (CPTG +uid 3210,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3211,0 +va (VaSet +) +xt "36000,27400,39400,28600" +st "clock" +blo "36000,28400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*24 (CptPort +uid 3212,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3213,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,29625,35000,30375" +) +tg (CPTG +uid 3214,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3215,0 +va (VaSet +) +xt "36000,29400,39300,30600" +st "reset" +blo "36000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*25 (CptPort +uid 3216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3217,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,23625,35000,24375" +) +tg (CPTG +uid 3218,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3219,0 +va (VaSet +) +xt "36000,23550,38800,24750" +st "RxD" +blo "36000,24550" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 3221,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,20000,51000,32000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 3222,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*26 (Text +uid 3223,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,31800,39100,33000" +st "Morse" +blo "35600,32800" +tm "BdLibraryNameMgr" +) +*27 (Text +uid 3224,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,32700,43700,33900" +st "morseEncoder" +blo "35600,33700" +tm "CptNameMgr" +) +*28 (Text +uid 3225,0 +va (VaSet +font "Verdana,9,1" +) +xt "35600,33600,39000,34800" +st "I_enc" +blo "35600,34600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3226,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3227,0 +text (MLText +uid 3228,0 +va (VaSet +font "Verdana,8,0" +) +xt "35000,35600,59200,40600" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*29 (Net +uid 3293,0 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 6 +suid 31,0 +) +declText (MLText +uid 3294,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,20600,17900,21600" +st "SIGNAL morseEnvelope : std_ulogic +" +) +) +*30 (SaComponent +uid 3389,0 +optionalChildren [ +*31 (CptPort +uid 3369,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3370,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,23625,59000,24375" +) +tg (CPTG +uid 3371,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3372,0 +va (VaSet +) +xt "60000,23700,66400,24900" +st "morseCode" +blo "60000,24700" +) +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*32 (CptPort +uid 3373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3374,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,27625,59000,28375" +) +tg (CPTG +uid 3375,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3376,0 +va (VaSet +) +xt "60000,27400,63400,28600" +st "clock" +blo "60000,28400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*33 (CptPort +uid 3377,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3378,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,29625,59000,30375" +) +tg (CPTG +uid 3379,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3380,0 +va (VaSet +) +xt "60000,29400,63300,30600" +st "reset" +blo "60000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*34 (CptPort +uid 3381,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3382,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75000,23625,75750,24375" +) +tg (CPTG +uid 3383,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3384,0 +va (VaSet +) +xt "71200,23700,74000,24900" +st "TxD" +ju 2 +blo "74000,24700" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +*35 (CptPort +uid 3385,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3386,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75000,27625,75750,28375" +) +tg (CPTG +uid 3387,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3388,0 +va (VaSet +font "Verdana,8,0" +) +xt "66800,27550,74000,28550" +st "morseEnvelope" +ju 2 +blo "74000,28350" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 5 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 3390,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "59000,20000,75000,32000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 3391,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 3392,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,31800,63100,33000" +st "Morse" +blo "59600,32800" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 3393,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,32700,67800,33900" +st "morseDecoder" +blo "59600,33700" +tm "CptNameMgr" +) +*38 (Text +uid 3394,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,33600,63300,34800" +st "I_DUT" +blo "59600,34600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3395,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3396,0 +text (MLText +uid 3397,0 +va (VaSet +font "Verdana,8,0" +) +xt "59000,35600,83200,41600" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) +deglitchBitNb = deglitchBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +(GiElement +name "deglitchBitNb" +type "natural" +value "deglitchBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*39 (Wire +uid 2558,0 +shape (OrthoPolyLine +uid 2559,0 +va (VaSet +vasetType 3 +) +xt "33000,30000,34250,40000" +pts [ +"34250,30000" +"33000,30000" +"33000,40000" +] +) +start &24 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2562,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2563,0 +va (VaSet +font "Verdana,12,0" +) +xt "29250,28600,33350,30000" +st "reset" +blo "29250,29800" +tm "WireNameMgr" +) +) +on &16 +) +*40 (Wire +uid 2566,0 +shape (OrthoPolyLine +uid 2567,0 +va (VaSet +vasetType 3 +) +xt "31000,28000,34250,40000" +pts [ +"34250,28000" +"31000,28000" +"31000,40000" +] +) +start &23 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2570,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2571,0 +va (VaSet +font "Verdana,12,0" +) +xt "29250,26600,33050,28000" +st "clock" +blo "29250,27800" +tm "WireNameMgr" +) +) +on &17 +) +*41 (Wire +uid 2574,0 +shape (OrthoPolyLine +uid 2575,0 +va (VaSet +vasetType 3 +) +xt "27000,24000,34250,40000" +pts [ +"34250,24000" +"27000,24000" +"27000,40000" +] +) +start &25 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2578,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2579,0 +va (VaSet +font "Verdana,12,0" +) +xt "30250,22600,33450,24000" +st "RxD" +blo "30250,23800" +tm "WireNameMgr" +) +) +on &18 +) +*42 (Wire +uid 2582,0 +shape (OrthoPolyLine +uid 2583,0 +va (VaSet +vasetType 3 +) +xt "51750,24000,58250,24000" +pts [ +"51750,24000" +"58250,24000" +] +) +start &22 +end &31 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2586,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2587,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,22700,59000,24100" +st "morseCode" +blo "51000,23900" +tm "WireNameMgr" +) +) +on &19 +) +*43 (Wire +uid 3062,0 +shape (OrthoPolyLine +uid 3063,0 +va (VaSet +vasetType 3 +) +xt "55000,30000,58250,30000" +pts [ +"58250,30000" +"55000,30000" +] +) +start &33 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3068,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3069,0 +va (VaSet +font "Verdana,12,0" +) +xt "53250,28600,57350,30000" +st "reset" +blo "53250,29800" +tm "WireNameMgr" +) +) +on &16 +) +*44 (Wire +uid 3070,0 +shape (OrthoPolyLine +uid 3071,0 +va (VaSet +vasetType 3 +) +xt "55000,28000,58250,28000" +pts [ +"58250,28000" +"55000,28000" +] +) +start &32 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3076,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3077,0 +va (VaSet +font "Verdana,12,0" +) +xt "53250,26600,57050,28000" +st "clock" +blo "53250,27800" +tm "WireNameMgr" +) +) +on &17 +) +*45 (Wire +uid 3117,0 +shape (OrthoPolyLine +uid 3118,0 +va (VaSet +vasetType 3 +) +xt "75750,24000,81000,40000" +pts [ +"75750,24000" +"81000,24000" +"81000,40000" +] +) +start &34 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3121,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3122,0 +va (VaSet +font "Verdana,12,0" +) +xt "77750,22700,80850,24100" +st "TxD" +blo "77750,23900" +tm "WireNameMgr" +) +) +on &20 +) +*46 (Wire +uid 3295,0 +shape (OrthoPolyLine +uid 3296,0 +va (VaSet +vasetType 3 +) +xt "75750,28000,79000,40000" +pts [ +"75750,28000" +"79000,28000" +"79000,40000" +] +) +start &35 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3299,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3300,0 +va (VaSet +font "Verdana,12,0" +) +xt "77750,26700,89050,28100" +st "morseEnvelope" +blo "77750,27900" +tm "WireNameMgr" +) +) +on &29 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *47 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*49 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*51 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*52 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*53 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*54 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*55 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*56 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1432,-1432,125925,67764" +cachedDiagramExtent "0,0,99000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 3471,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*58 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*59 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*61 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*62 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*64 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*65 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*67 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*68 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*70 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*71 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*73 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*75 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*77 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5600,7000,6600" +st "Declarations" +blo "0,6400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6600,3400,7600" +st "Ports:" +blo "0,7400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7600,4800,8600" +st "Pre User:" +blo "0,8400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,8600,30400,15600" +st "constant uartBaudRate: real := 115.2E3; +constant uartDataBitNb: positive := 7; +constant morseUnitDuration: real := 50.0E-6; +constant morseToneFrequency: real := 10.0/morseUnitDuration; +constant deglitchBitNb: natural := 8; +constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,15600,9000,16600" +st "Diagram Signals:" +blo "0,16400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5600,6000,6600" +st "Post User:" +blo "0,6400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5600,0,5600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 31,0 +usingSuid 1 +emptyRow *78 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*79 (RefLabelRowHdr +) +*80 (TitleRowHdr +) +*81 (FilterRowHdr +) +*82 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*83 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*84 (GroupColHdr +tm "GroupColHdrMgr" +) +*85 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*86 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*87 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*88 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*89 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*90 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*91 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 25,0 +) +) +uid 2588,0 +) +*92 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 26,0 +) +) +uid 2590,0 +) +*93 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 27,0 +) +) +uid 2592,0 +) +*94 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 28,0 +) +) +uid 2594,0 +) +*95 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "TxD" +t "std_ulogic" +o 5 +suid 30,0 +) +) +uid 3123,0 +) +*96 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 6 +suid 31,0 +) +) +uid 3330,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*97 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *98 (MRCItem +litem &78 +pos 6 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*99 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 1337,0 +) +*100 (MRCItem +litem &80 +pos 1 +dimension 23 +uid 1338,0 +) +*101 (MRCItem +litem &81 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*102 (MRCItem +litem &91 +pos 0 +dimension 20 +uid 2589,0 +) +*103 (MRCItem +litem &92 +pos 1 +dimension 20 +uid 2591,0 +) +*104 (MRCItem +litem &93 +pos 2 +dimension 20 +uid 2593,0 +) +*105 (MRCItem +litem &94 +pos 3 +dimension 20 +uid 2595,0 +) +*106 (MRCItem +litem &95 +pos 4 +dimension 20 +uid 3124,0 +) +*107 (MRCItem +litem &96 +pos 5 +dimension 20 +uid 3331,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*108 (MRCItem +litem &82 +pos 0 +dimension 20 +uid 1341,0 +) +*109 (MRCItem +litem &84 +pos 1 +dimension 50 +uid 1342,0 +) +*110 (MRCItem +litem &85 +pos 2 +dimension 100 +uid 1343,0 +) +*111 (MRCItem +litem &86 +pos 3 +dimension 50 +uid 1344,0 +) +*112 (MRCItem +litem &87 +pos 4 +dimension 100 +uid 1345,0 +) +*113 (MRCItem +litem &88 +pos 5 +dimension 100 +uid 1346,0 +) +*114 (MRCItem +litem &89 +pos 6 +dimension 50 +uid 1347,0 +) +*115 (MRCItem +litem &90 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *116 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*117 (RefLabelRowHdr +) +*118 (TitleRowHdr +) +*119 (FilterRowHdr +) +*120 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*121 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*122 (GroupColHdr +tm "GroupColHdrMgr" +) +*123 (NameColHdr +tm "GenericNameColHdrMgr" +) +*124 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*125 (InitColHdr +tm "GenericValueColHdrMgr" +) +*126 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*127 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*128 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *129 (MRCItem +litem &116 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*130 (MRCItem +litem &117 +pos 0 +dimension 20 +uid 1365,0 +) +*131 (MRCItem +litem &118 +pos 1 +dimension 23 +uid 1366,0 +) +*132 (MRCItem +litem &119 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*133 (MRCItem +litem &120 +pos 0 +dimension 20 +uid 1369,0 +) +*134 (MRCItem +litem &122 +pos 1 +dimension 50 +uid 1370,0 +) +*135 (MRCItem +litem &123 +pos 2 +dimension 100 +uid 1371,0 +) +*136 (MRCItem +litem &124 +pos 3 +dimension 100 +uid 1372,0 +) +*137 (MRCItem +litem &125 +pos 4 +dimension 50 +uid 1373,0 +) +*138 (MRCItem +litem &126 +pos 5 +dimension 50 +uid 1374,0 +) +*139 (MRCItem +litem &127 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Morse_test/hds/morse@decoder_tb/symbol.sb b/05-Morse/Morse_test/hds/morse@decoder_tb/symbol.sb new file mode 100644 index 0000000..aca7181 --- /dev/null +++ b/05-Morse/Morse_test/hds/morse@decoder_tb/symbol.sb @@ -0,0 +1,1244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@decoder_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@decoder_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@decoder_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morseDecoder_tb" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseDecoder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:12:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "morseDecoder_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@decoder_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morseDecoder_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:12:49" +) +(vvPair +variable "unit" +value "morseDecoder_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,28100,15700" +st "Morse_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,30600,16600" +st "morseDecoder_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1800,44500,2700" +st "User:" +blo "42000,2500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,44000,2700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/05-Morse/Morse_test/hds/morse@decoder_tester/interface b/05-Morse/Morse_test/hds/morse@decoder_tester/interface new file mode 100644 index 0000000..fe51603 --- /dev/null +++ b/05-Morse/Morse_test/hds/morse@decoder_tester/interface @@ -0,0 +1,1670 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 19,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 15,0 +) +) +uid 375,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 6 +suid 16,0 +) +) +uid 377,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 17,0 +) +) +uid 379,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 18,0 +) +) +uid 381,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 5 +suid 19,0 +) +) +uid 383,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 376,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 378,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 380,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 382,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 384,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 159,0 +) +*50 (LogGeneric +generic (GiElement +name "uartBaudRate" +type "real" +value "9.6E3" +) +uid 161,0 +) +*51 (LogGeneric +generic (GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +uid 163,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*52 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *53 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 124,0 +optionalChildren [ +*54 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 125,0 +) +*55 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 126,0 +) +*56 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*57 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 160,0 +) +*58 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 162,0 +) +*59 (MRCItem +litem &51 +pos 2 +dimension 20 +uid 164,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*60 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 129,0 +) +*61 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 130,0 +) +*62 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 131,0 +) +*63 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 132,0 +) +*64 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 133,0 +) +*65 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 134,0 +) +*66 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseDecoder_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseDecoder_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:50:57" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morseDecoder_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@decoder_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseDecoder_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:50:57" +) +(vvPair +variable "unit" +value "morseDecoder_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 350,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 351,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 352,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 353,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,10800" +st "clock" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 354,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,63500,5200" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 15,0 +) +) +) +*69 (CptPort +uid 355,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 356,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74625,5250,75375,6000" +) +tg (CPTG +uid 357,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 358,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "74300,7000,75700,18300" +st "morseEnvelope" +ju 2 +blo "75500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 359,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,63500,3600" +st "morseEnvelope : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "morseEnvelope" +t "std_ulogic" +o 6 +suid 16,0 +) +) +) +*70 (CptPort +uid 360,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 361,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 362,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 363,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,11100" +st "reset" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 364,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62500,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 17,0 +) +) +) +*71 (CptPort +uid 365,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 366,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 367,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 368,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10200" +st "RxD" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 369,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,63500,4400" +st "RxD : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 18,0 +) +) +) +*72 (CptPort +uid 370,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 371,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76625,5250,77375,6000" +) +tg (CPTG +uid 372,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 373,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "76300,7000,77700,10100" +st "TxD" +ju 2 +blo "77500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 374,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,63500,2800" +st "TxD : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 5 +suid 19,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,85000,14000" +) +oxt "15000,6000,83000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "44450,9050,50850,10050" +st "Morse_test" +blo "44450,9850" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "44450,10050,55550,11050" +st "morseDecoder_tester" +blo "44450,10850" +) +) +gi *73 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "23000,6000,37900,11000" +st "Generic Declarations + +clockFrequency real 100.0E6 +uartBaudRate real 9.6E3 +uartDataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +(GiElement +name "uartBaudRate" +type "real" +value "9.6E3" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*74 (Grouping +uid 16,0 +optionalChildren [ +*75 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,50000,44800,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,46000,52900,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,48000,44700,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,48000,30800,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,47200,60800,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "53200,46000,56200,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "33350,46400,43650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,49000,30900,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,50000,31600,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,49000,47500,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *85 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*87 (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "0,900,13600,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "57,32,1072,722" +viewArea "-500,-500,83100,45260" +cachedDiagramExtent "0,0,83000,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Morse_test" +entityName "morseDecoder_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *88 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *89 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,6000,45000,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 384,0 +activeModelName "Symbol:GEN" +) diff --git a/05-Morse/Morse_test/hds/morse@encoder_tb/struct.bd b/05-Morse/Morse_test/hds/morse@encoder_tb/struct.bd new file mode 100644 index 0000000..fd9bc8a --- /dev/null +++ b/05-Morse/Morse_test/hds/morse@encoder_tb/struct.bd @@ -0,0 +1,2715 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "Morse_test" +duName "morseEncoder_tester" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +] +mwi 0 +uid 2178,0 +) +(Instance +name "I_DUT" +duLibraryName "Morse" +duName "morseEncoder" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +mwi 0 +uid 2755,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseEncoder_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseEncoder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:51:13" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Morse_test/concat" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morseEncoder_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseEncoder_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "14:51:13" +) +(vvPair +variable "unit" +value "morseEncoder_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,65000,79000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,65500,62200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,83000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61500,79200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,63000,79000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,63500,62200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,62000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63500,58200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,62000,99000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,62200,93300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,61000,99000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,61500,83200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,61000,79000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "63350,61400,73650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,62000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64500,58200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,62000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65500,58200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "62000,64000,79000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "62200,64500,62200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "58000,61000,99000,66000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 2178,0 +shape (Rectangle +uid 2179,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "29000,38000,73000,46000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2180,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 2181,0 +va (VaSet +) +xt "28850,46200,35950,47400" +st "Morse_test" +blo "28850,47200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 2182,0 +va (VaSet +) +xt "28850,47400,41050,48600" +st "morseEncoder_tester" +blo "28850,48400" +tm "BlkNameMgr" +) +*15 (Text +uid 2183,0 +va (VaSet +) +xt "28850,48600,33650,49800" +st "I_tester" +blo "28850,49600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2184,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2185,0 +text (MLText +uid 2186,0 +va (VaSet +) +xt "29000,50000,55300,53600" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +] +) +) +*16 (Net +uid 2556,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 25,0 +) +declText (MLText +uid 2557,0 +va (VaSet +) +xt "2000,20000,18600,21200" +st "SIGNAL reset : std_ulogic +" +) +) +*17 (Net +uid 2564,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 26,0 +) +declText (MLText +uid 2565,0 +va (VaSet +) +xt "2000,17600,18700,18800" +st "SIGNAL clock : std_ulogic +" +) +) +*18 (Net +uid 2572,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 27,0 +) +declText (MLText +uid 2573,0 +va (VaSet +) +xt "2000,16400,18700,17600" +st "SIGNAL RxD : std_ulogic +" +) +) +*19 (Net +uid 2580,0 +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 28,0 +) +declText (MLText +uid 2581,0 +va (VaSet +) +xt "2000,18800,20500,20000" +st "SIGNAL morseCode : std_ulogic +" +) +) +*20 (SaComponent +uid 2755,0 +optionalChildren [ +*21 (CptPort +uid 2739,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2740,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61000,21625,61750,22375" +) +tg (CPTG +uid 2741,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2742,0 +va (VaSet +) +xt "53600,21400,60000,22600" +st "morseCode" +ju 2 +blo "60000,22400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "morseCode" +t "std_ulogic" +o 1 +suid 2007,0 +) +) +) +*22 (CptPort +uid 2743,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2744,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,25625,45000,26375" +) +tg (CPTG +uid 2745,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2746,0 +va (VaSet +) +xt "46000,25400,49400,26600" +st "clock" +blo "46000,26400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2008,0 +) +) +) +*23 (CptPort +uid 2747,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2748,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,27625,45000,28375" +) +tg (CPTG +uid 2749,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2750,0 +va (VaSet +) +xt "46000,27400,49300,28600" +st "reset" +blo "46000,28400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 2009,0 +) +) +) +*24 (CptPort +uid 2751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,21625,45000,22375" +) +tg (CPTG +uid 2753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2754,0 +va (VaSet +) +xt "46000,21400,48800,22600" +st "RxD" +blo "46000,22400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 4 +suid 2010,0 +) +) +) +] +shape (Rectangle +uid 2756,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,18000,61000,30000" +) +oxt "32000,11000,48000,23000" +ttg (MlTextGroup +uid 2757,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 2758,0 +va (VaSet +font "Verdana,9,1" +) +xt "45600,29800,49100,31000" +st "Morse" +blo "45600,30800" +tm "BdLibraryNameMgr" +) +*26 (Text +uid 2759,0 +va (VaSet +font "Verdana,9,1" +) +xt "45600,31000,53700,32200" +st "morseEncoder" +blo "45600,32000" +tm "CptNameMgr" +) +*27 (Text +uid 2760,0 +va (VaSet +font "Verdana,9,1" +) +xt "45600,32200,49300,33400" +st "I_DUT" +blo "45600,33200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2761,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2762,0 +text (MLText +uid 2763,0 +va (VaSet +) +xt "45000,33600,73900,39600" +st "clockFrequency = clockFrequency ( real ) +uartBaudRate = uartBaudRate ( real ) +uartDataBitNb = uartDataBitNb ( positive ) +unitDuration = morseUnitDuration ( real ) +toneFrequency = morseToneFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "uartBaudRate" +type "real" +value "uartBaudRate" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "uartDataBitNb" +) +(GiElement +name "unitDuration" +type "real" +value "morseUnitDuration" +) +(GiElement +name "toneFrequency" +type "real" +value "morseToneFrequency" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*28 (Wire +uid 2558,0 +shape (OrthoPolyLine +uid 2559,0 +va (VaSet +vasetType 3 +) +xt "43000,28000,44250,38000" +pts [ +"44250,28000" +"43000,28000" +"43000,38000" +] +) +start &23 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2562,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2563,0 +va (VaSet +font "Verdana,12,0" +) +xt "39250,26600,43350,28000" +st "reset" +blo "39250,27800" +tm "WireNameMgr" +) +) +on &16 +) +*29 (Wire +uid 2566,0 +shape (OrthoPolyLine +uid 2567,0 +va (VaSet +vasetType 3 +) +xt "41000,26000,44250,38000" +pts [ +"44250,26000" +"41000,26000" +"41000,38000" +] +) +start &22 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2570,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2571,0 +va (VaSet +font "Verdana,12,0" +) +xt "39250,24600,43050,26000" +st "clock" +blo "39250,25800" +tm "WireNameMgr" +) +) +on &17 +) +*30 (Wire +uid 2574,0 +shape (OrthoPolyLine +uid 2575,0 +va (VaSet +vasetType 3 +) +xt "37000,22000,44250,38000" +pts [ +"44250,22000" +"37000,22000" +"37000,38000" +] +) +start &24 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2578,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2579,0 +va (VaSet +font "Verdana,12,0" +) +xt "40250,20600,43450,22000" +st "RxD" +blo "40250,21800" +tm "WireNameMgr" +) +) +on &18 +) +*31 (Wire +uid 2582,0 +shape (OrthoPolyLine +uid 2583,0 +va (VaSet +vasetType 3 +) +xt "61750,22000,65000,38000" +pts [ +"61750,22000" +"65000,22000" +"65000,38000" +] +) +start &21 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2586,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2587,0 +va (VaSet +font "Verdana,12,0" +) +xt "63750,20600,71750,22000" +st "morseCode" +blo "63750,21800" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *32 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*34 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*36 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*37 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*38 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*39 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1432,-1432,125925,67764" +cachedDiagramExtent "0,0,99000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 3073,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*43 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*44 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*46 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*47 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*50 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*52 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*53 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*55 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*56 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*58 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*60 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5200,7000,6200" +st "Declarations" +blo "0,6000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6200,3400,7200" +st "Ports:" +blo "0,7000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7200,4800,8200" +st "Pre User:" +blo "0,8000" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "2000,8200,37300,15400" +st "constant clockFrequency: real := 60.0E6; +--constant clockFrequency: real := 66.0E6; +constant uartBaudRate: real := 115.2E3; +constant uartDataBitNb: positive := 7; +constant morseUnitDuration: real := 50.0E-6; +constant morseToneFrequency: real := 10.0/morseUnitDuration;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,15400,9000,16400" +st "Diagram Signals:" +blo "0,16200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5200,6000,6200" +st "Post User:" +blo "0,6000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "0,5200,0,5200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 28,0 +usingSuid 1 +emptyRow *63 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*71 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*72 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*73 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*74 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*75 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*76 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 25,0 +) +) +uid 2588,0 +) +*77 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 26,0 +) +) +uid 2590,0 +) +*78 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 27,0 +) +) +uid 2592,0 +) +*79 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 28,0 +) +) +uid 2594,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 4 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 1337,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 1338,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*85 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 2589,0 +) +*86 (MRCItem +litem &77 +pos 1 +dimension 20 +uid 2591,0 +) +*87 (MRCItem +litem &78 +pos 2 +dimension 20 +uid 2593,0 +) +*88 (MRCItem +litem &79 +pos 3 +dimension 20 +uid 2595,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*89 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 1341,0 +) +*90 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 1342,0 +) +*91 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 1343,0 +) +*92 (MRCItem +litem &71 +pos 3 +dimension 50 +uid 1344,0 +) +*93 (MRCItem +litem &72 +pos 4 +dimension 100 +uid 1345,0 +) +*94 (MRCItem +litem &73 +pos 5 +dimension 100 +uid 1346,0 +) +*95 (MRCItem +litem &74 +pos 6 +dimension 50 +uid 1347,0 +) +*96 (MRCItem +litem &75 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *97 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*98 (RefLabelRowHdr +) +*99 (TitleRowHdr +) +*100 (FilterRowHdr +) +*101 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*102 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*103 (GroupColHdr +tm "GroupColHdrMgr" +) +*104 (NameColHdr +tm "GenericNameColHdrMgr" +) +*105 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*106 (InitColHdr +tm "GenericValueColHdrMgr" +) +*107 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*108 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*109 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *110 (MRCItem +litem &97 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*111 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 1365,0 +) +*112 (MRCItem +litem &99 +pos 1 +dimension 23 +uid 1366,0 +) +*113 (MRCItem +litem &100 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*114 (MRCItem +litem &101 +pos 0 +dimension 20 +uid 1369,0 +) +*115 (MRCItem +litem &103 +pos 1 +dimension 50 +uid 1370,0 +) +*116 (MRCItem +litem &104 +pos 2 +dimension 100 +uid 1371,0 +) +*117 (MRCItem +litem &105 +pos 3 +dimension 100 +uid 1372,0 +) +*118 (MRCItem +litem &106 +pos 4 +dimension 50 +uid 1373,0 +) +*119 (MRCItem +litem &107 +pos 5 +dimension 50 +uid 1374,0 +) +*120 (MRCItem +litem &108 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/05-Morse/Morse_test/hds/morse@encoder_tb/symbol.sb b/05-Morse/Morse_test/hds/morse@encoder_tb/symbol.sb new file mode 100644 index 0000000..884beb3 --- /dev/null +++ b/05-Morse/Morse_test/hds/morse@encoder_tb/symbol.sb @@ -0,0 +1,1244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@encoder_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@encoder_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@encoder_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morseEncoder_tb" +) +(vvPair +variable "date" +value "03/29/19" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "29" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseEncoder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/29/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "09:12:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "morseEncoder_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morse@encoder_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Morse/Prefs/../Morse_test/hds/morseEncoder_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "morse" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:12:49" +) +(vvPair +variable "unit" +value "morseEncoder_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,28100,15700" +st "Morse_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,30600,16600" +st "morseEncoder_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1800,44500,2700" +st "User:" +blo "42000,2500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,44000,2700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/05-Morse/Morse_test/hds/morse@encoder_tester/interface b/05-Morse/Morse_test/hds/morse@encoder_tester/interface new file mode 100644 index 0000000..685bbdf --- /dev/null +++ b/05-Morse/Morse_test/hds/morse@encoder_tester/interface @@ -0,0 +1,1594 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 28,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 25,0 +) +) +uid 578,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 26,0 +) +) +uid 580,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 27,0 +) +) +uid 582,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 28,0 +) +) +uid 584,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 579,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 581,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 583,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 585,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 131,0 +) +*48 (LogGeneric +generic (GiElement +name "uartBaudRate" +type "real" +value "" +) +uid 207,0 +) +*49 (LogGeneric +generic (GiElement +name "uartDataBitNb" +type "positive" +value "" +) +uid 283,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*52 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*53 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*54 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*55 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 132,0 +) +*56 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 208,0 +) +*57 (MRCItem +litem &49 +pos 2 +dimension 20 +uid 284,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*58 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*59 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*60 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*61 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*62 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*63 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*64 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseEncoder_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "morseEncoder_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:51:13" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Morse_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Morse_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "morseEncoder_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morse@encoder_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\05-Morse\\Prefs\\..\\Morse_test\\hds\\morseEncoder_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:51:13" +) +(vvPair +variable "unit" +value "morseEncoder_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 558,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 559,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 560,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 561,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,10800" +st "clock" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 562,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,61500,4400" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 25,0 +) +) +) +*67 (CptPort +uid 563,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 564,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 565,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 566,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "50300,7000,51700,15000" +st "morseCode" +ju 2 +blo "51500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 567,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,61500,2800" +st "morseCode : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "morseCode" +t "std_ulogic" +o 3 +suid 26,0 +) +) +) +*68 (CptPort +uid 568,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 569,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 570,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 571,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,11100" +st "reset" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 572,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,60500,5200" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 27,0 +) +) +) +*69 (CptPort +uid 573,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 574,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 575,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 576,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10200" +st "RxD" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 577,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,61500,3600" +st "RxD : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 28,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "31500,9050,37900,10050" +st "Morse_test" +blo "31500,9850" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "31500,10050,42500,11050" +st "morseEncoder_tester" +blo "31500,10850" +) +) +gi *70 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "13000,6000,24700,11000" +st "Generic Declarations + +clockFrequency real +uartBaudRate real +uartDataBitNb positive " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "" +) +(GiElement +name "uartBaudRate" +type "real" +value "" +) +(GiElement +name "uartDataBitNb" +type "positive" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*71 (Grouping +uid 16,0 +optionalChildren [ +*72 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *82 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*84 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "72,45,1090,735" +viewArea "-500,-500,71410,48820" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Morse_test" +entityName "morseEncoder_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *85 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *86 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,5200,45000,6200" +st "User:" +blo "42000,6000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,6200,44000,6200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 585,0 +activeModelName "Symbol:GEN" +) diff --git a/05-Morse/Morse_test/hds/sine@gen_tester/interface b/05-Morse/Morse_test/hds/sine@gen_tester/interface new file mode 100644 index 0000000..2f7045f --- /dev/null +++ b/05-Morse/Morse_test/hds/sine@gen_tester/interface @@ -0,0 +1,1182 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\sine@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\sineGen_tester" +) +(vvPair +variable "date" +value "04/01/08" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2636" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\sineGen_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "12:48:44" +) +(vvPair +variable "unit" +value "sineGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +uid 61,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 163,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 164,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 165,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "28400,7000,29600,9700" +st "clock" +ju 2 +blo "29400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 166,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62000,6000" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 167,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 168,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 6 +d 0 +s 0 +sf 1 +tg (CPTG +uid 169,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 170,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,9600" +st "reset" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 171,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62000,6800" +st "reset : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 173,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 174,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 175,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "60400,7000,61600,23500" +st "sawtooth : (signalBitNb-1:0)" +ju 2 +blo "61400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 176,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,73500,2800" +st "sawtooth : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*5 (CptPort +uid 177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 178,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +n "shiftPhase" +t "std_ulogic" +m 1 +o 3 +r 7 +d 0 +s 0 +sf 1 +tg (CPTG +uid 179,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 180,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "24400,7000,25600,13700" +st "shiftPhase" +ju 2 +blo "25400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 181,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,62000,7600" +st "shiftPhase : OUT std_ulogic ; +" +) +) +*6 (CptPort +uid 182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 183,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 185,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "54400,7000,55600,21100" +st "sine : (signalBitNb-1:0)" +ju 2 +blo "55400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 186,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,73500,3600" +st "sine : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*7 (CptPort +uid 187,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 188,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 189,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 190,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "58400,7000,59600,22400" +st "square : (signalBitNb-1:0)" +ju 2 +blo "59400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 191,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,73500,4400" +st "square : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*8 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +m 1 +o 8 +r 8 +d 0 +s 0 +sf 1 +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 195,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,21200" +st "step : (phaseBitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,72000,8400" +st "step : OUT unsigned (phaseBitNb-1 DOWNTO 0) +" +) +) +*9 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 200,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "56400,7000,57600,22800" +st "triangle : (signalBitNb-1:0)" +ju 2 +blo "57400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 201,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "triangle : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,69000,14000" +) +oxt "15000,6000,61000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,8800,44800,10000" +st "Curves_test" +blo "37600,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,10000,46400,11200" +st "sineGen_tester" +blo "37600,11000" +) +) +gi *10 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,6000,30500,9200" +st "Generic Declarations + +phaseBitNb positive 16 +signalBitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "phaseBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*11 (Grouping +uid 16,0 +optionalChildren [ +*12 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*17 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*19 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*20 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*21 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,49800,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *22 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*24 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *25 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *26 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,8400,44000,9400" +st "User:" +blo "42000,9200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9400,44000,9400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 201,0 +) diff --git a/05-Morse/Morse_test/hds/waveform@gen_tester/interface b/05-Morse/Morse_test/hds/waveform@gen_tester/interface new file mode 100644 index 0000000..c5124f5 --- /dev/null +++ b/05-Morse/Morse_test/hds/waveform@gen_tester/interface @@ -0,0 +1,988 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\waveform@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\waveformGen_tester" +) +(vvPair +variable "date" +value "06/09/08" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "09" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE1647" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "month" +value "Jun" +) +(vvPair +variable "month_long" +value "June" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\waveformGen_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "17:30:05" +) +(vvPair +variable "unit" +value "waveformGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +uid 66,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 108,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 109,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 110,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "28400,7000,29600,9700" +st "clock" +ju 2 +blo "29400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 111,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,59500,2800" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 113,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +n "en" +t "std_ulogic" +m 1 +o 4 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 114,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 115,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "26400,7000,27600,8200" +st "en" +ju 2 +blo "27400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 116,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,59500,3600" +st "en : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 117,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 118,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 119,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 120,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,9600" +st "reset" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 121,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,59500,4400" +st "reset : OUT std_ulogic ; +" +) +) +*5 (CptPort +uid 122,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 123,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +m 1 +o 3 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 124,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 125,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,17400" +st "step : (bitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 126,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,67000,5200" +st "step : OUT unsigned (bitNb-1 DOWNTO 0) +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,66000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "35050,8800,42250,10000" +st "Curves_test" +blo "35050,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "35050,10000,46950,11200" +st "waveformGen_tester" +blo "35050,11000" +) +) +gi *6 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,6000,27500,8400" +st "Generic Declarations + +bitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*7 (Grouping +uid 16,0 +optionalChildren [ +*8 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,45500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*13 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*17 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51900,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *18 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*20 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "waveformGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *21 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *22 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,5200,44000,6200" +st "User:" +blo "42000,6000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6200,44000,6200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/05-Morse/Prefs/dp_user/v2_72/dp_user_prefs b/05-Morse/Prefs/dp_user/v2_72/dp_user_prefs new file mode 100644 index 0000000..035eb8f --- /dev/null +++ b/05-Morse/Prefs/dp_user/v2_72/dp_user_prefs @@ -0,0 +1,65 @@ +[LexParser.LexVHDL2008] +[LexParser] +[Editor] +recentFile0=/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/05-Morse/Prefs/../Morse/hdl/chartomorsecontroller_fsm.vhg +recentFile1=/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/05-Morse/Prefs/../Morse/hdl/chartomorsecontroller_entity.vhg +lastFilter=.vhg +mark.lineImage=blueball +[Printer] +ENSCRIPT_LIBRARY=/usr/opt/HDS/resources/enscript/share/enscript +[ToolbarFrames] +geom0Group1=top H +geom0Group2=top H +geom0Group3=top H +state0Search=1 +Num=0 +state0VersionManagement=1 +state0Tasks=1 +state0View=1 +state0Standard=1 +state0Edit=1 +Group1=Standard Search +Group2=Edit Bookmarks View Macros DocumentTools Windows +Group3=VersionManagement Tasks +state0Macros=1 +state0Bookmarks=1 +state0Windows=1 +state0DocumentTools=1 +[LexParser.LexPSL] +[DND] +TrackerBg=#c3c3c3 +signalAcceptDropBg=white +signalRefuseDropBg=red +[General] +[Browser] +normalTextBg=white +normalTextFg=black +[Replace] +historyMax=4 +atomicReplaceAll=No +[Console] +[Templates] +Visibility=No +[SearchInFiles] +SearchAsRegExp=0 +MatchCase=0 +LookInSubfolders=0 +historyMax=4 +[Geometry] +TopWindow0=1613x991+67+0 +FrameSupp0,0=165 +[VDiff] +[R72] +indentType=spaces +indentString=\#\#\# +[TCOM] +logTCOMActivity=No +afterIdleHandlerTimeSlice=300 +[Menus] +DocAndVis= +[Help] +default=te_guide +[Plugins] +userLanguages= +[Search] +historyMax=4 diff --git a/05-Morse/Prefs/hds.hdp b/05-Morse/Prefs/hds.hdp new file mode 100644 index 0000000..66a3cfa --- /dev/null +++ b/05-Morse/Prefs/hds.hdp @@ -0,0 +1,52 @@ +[Concat] +Board = $HDS_PROJECT_DIR/../Board/concat +[ModelSim] +Board = $SCRATCH_DIR/Board +Common = $SCRATCH_DIR/Common +Common_test = $SCRATCH_DIR/Common_test +Lattice = $SCRATCH_DIR/Lattice +Memory = $SCRATCH_DIR/Memory +Memory_test = $SCRATCH_DIR/Memory_test +Morse = $SCRATCH_DIR/Morse +Morse_test = $SCRATCH_DIR/Morse_test +RS232 = $SCRATCH_DIR/RS232 +RS232_test = $SCRATCH_DIR/RS232_test +UVM = $SCRATCH_DIR/UVM +UVM_test = $SCRATCH_DIR/UVM_test +[hdl] +Board = $HDS_PROJECT_DIR/../Board/hdl +Common = $HDS_PROJECT_DIR/../../Libs/Common/hdl +Common_test = $HDS_PROJECT_DIR/../../Libs/Common_test/hdl +ieee = $HDS_HOME/hdl_libs/ieee/hdl +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hdl +Memory = $HDS_PROJECT_DIR/../../Libs/Memory/hdl +Memory_test = $HDS_PROJECT_DIR/../../Libs/Memory_test/hdl +Morse = $HDS_PROJECT_DIR/../Morse/hdl +Morse_test = $HDS_PROJECT_DIR/../Morse_test/hdl +RS232 = $HDS_PROJECT_DIR/../../Libs/RS232/hdl +RS232_test = $HDS_PROJECT_DIR/../../Libs/RS232_test/hdl +std = $HDS_HOME/hdl_libs/std/hdl +UVM = $HDS_PROJECT_DIR/../../Libs/UVM/hdl +UVM_test = $HDS_PROJECT_DIR/../../Libs/UVM_test/hdl +[hds] +Board = $HDS_PROJECT_DIR/../Board/hds +Common = $HDS_PROJECT_DIR/../../Libs/Common/hds +Common_test = $HDS_PROJECT_DIR/../../Libs/Common_test/hds +ieee = $HDS_HOME/hdl_libs/ieee/hds +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hds +Memory = $HDS_PROJECT_DIR/../../Libs/Memory/hds +Memory_test = $HDS_PROJECT_DIR/../../Libs/Memory_test/hds +Morse = $HDS_PROJECT_DIR/../Morse/hds +Morse_test = $HDS_PROJECT_DIR/../Morse_test/hds +RS232 = $HDS_PROJECT_DIR/../../Libs/RS232/hds +RS232_test = $HDS_PROJECT_DIR/../../Libs/RS232_test/hds +std = $HDS_HOME/hdl_libs/std/hds +UVM = $HDS_PROJECT_DIR/../../Libs/UVM/hds +UVM_test = $HDS_PROJECT_DIR/../../Libs/UVM_test/hds +[hds_settings] +design_root = Board.morse_ebs3(struct)morse_ebs3/struct.bd +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/05-Morse/Prefs/hds_team/shared.hdp b/05-Morse/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/05-Morse/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/05-Morse/Prefs/hds_team/v2018.1/hds_team_prefs b/05-Morse/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/05-Morse/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/05-Morse/Prefs/hds_team/v2018.1/title_block.tmpl b/05-Morse/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/05-Morse/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/05-Morse/Prefs/hds_team/v2019.2/hds_team_prefs b/05-Morse/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/05-Morse/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/05-Morse/Prefs/hds_team/v2019.2/title_block.tmpl b/05-Morse/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/05-Morse/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/05-Morse/Prefs/hds_team/v2019.3/hds_team_prefs b/05-Morse/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/05-Morse/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/05-Morse/Prefs/hds_team/v2019.3/title_block.tmpl b/05-Morse/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/05-Morse/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/05-Morse/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..da0e177 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6095 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/04-Lissajous/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/05-Morse/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/SEm_labs/05-Morse/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "899x918-9+48" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Morse" +showingHierarchy 0 +openLibs [ +"Morse" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Morse_test" +showingHierarchy 0 +openLibs [ +"Morse_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 24 +yPos 100 +width 1066 +height 937 +activeSidePanelTab 2 +activeLibraryTab 2 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..5d1345f --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/uvmRs232.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/05-Morse/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/05-Morse/Prefs/hds_user/v2018.1/hds_user_prefs b/05-Morse/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/05-Morse/Prefs/hds_user/v2018.1/tasks/generate.tsk b/05-Morse/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/05-Morse/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/05-Morse/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/05-Morse/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/05-Morse/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/05-Morse/Prefs/hds_user/v2019.2/hds_user_prefs b/05-Morse/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..7e45fd9 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6871 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\05-Morse\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\05-Morse\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\05-Morse\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\05-Morse\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "679x388+307+271" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Morse" +showingHierarchy 0 +openLibs [ +"Morse" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Morse_test" +showingHierarchy 0 +openLibs [ +"Morse_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 0 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"Board" +"Lattice" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/generate.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..6a2954d --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/charToMorseController.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/05-Morse/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/05-Morse/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/05-Morse/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/05-Morse/Scripts/cleanGenerated.bash b/05-Morse/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/05-Morse/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/05-Morse/Scripts/cleanGenerated.bat b/05-Morse/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/05-Morse/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/05-Morse/Scripts/cleanScratch.bat b/05-Morse/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/05-Morse/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/05-Morse/Scripts/generateSSHKey.bash b/05-Morse/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/05-Morse/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/05-Morse/Scripts/hdlDesigner.bash b/05-Morse/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/05-Morse/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/05-Morse/Scripts/hdlDesigner.bat b/05-Morse/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/05-Morse/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/05-Morse/Scripts/searchPaths.bat b/05-Morse/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/05-Morse/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/05-Morse/Scripts/trimLibs.pl b/05-Morse/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/05-Morse/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/05-Morse/Scripts/update_ise.pl b/05-Morse/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/05-Morse/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/ '0'); + hReady <= '0'; + hResp <= '0'; + + -- Out + ioOut <= (OTHERS => '0'); + ioEn <= (OTHERS => '0'); + +END ARCHITECTURE studentVersion; + diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hdl/ahbUart_studentVersion.vhd b/06-07-08-09-SystemOnChip/AhbLiteComponents/hdl/ahbUart_studentVersion.vhd new file mode 100644 index 0000000..249b9d3 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hdl/ahbUart_studentVersion.vhd @@ -0,0 +1,36 @@ +--============================================================================== +-- +-- AHB UART +-- +-- Implements a serial port. +-- +-------------------------------------------------------------------------------- +-- +-- Write registers +-- +-- 00, data register receives the word to be sent to the serial port. +-- 01, control register is used to control the peripheral. +-- 02, scaler register is used to set the baud rate. +-- +-------------------------------------------------------------------------------- +-- +-- Read registers +-- 00, data register provides the last word received by the serial port. +-- 01, status register is used to get the peripheral's state. +-- bit 0: data ready for read +-- bit 1: sending in progress +-- bit 2: receiving in progress +-- +ARCHITECTURE studentVersion OF ahbUart IS +BEGIN + + -- AHB-Lite + hRData <= (OTHERS => '0'); + hReady <= '0'; + hResp <= '0'; + + -- Serial + TxD <= '0'; + +END ARCHITECTURE studentVersion; + diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbGpio_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbGpio_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbGpio_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbUart_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbUart_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbUart_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbgpio_entity.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbgpio_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbgpio_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbuart_entity.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbuart_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/.hdlsidedata/_ahbuart_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbgpio._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbgpio._epf new file mode 100644 index 0000000..879f967 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbgpio._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom ahbGpio_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbuart._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbuart._epf new file mode 100644 index 0000000..c2cca17 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/_ahbuart._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom ahbUart_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@gpio/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@gpio/symbol.sb new file mode 100644 index 0000000..bf84e54 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@gpio/symbol.sb @@ -0,0 +1,2149 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2068,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +uid 2526,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +uid 2528,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +uid 2530,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +uid 2538,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +uid 2542,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +uid 2544,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +uid 2546,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +uid 2548,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2065,0 +) +) +uid 2656,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +uid 2697,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 12 +suid 2067,0 +) +) +uid 2844,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 13 +suid 2068,0 +) +) +uid 2851,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*27 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *28 (MRCItem +litem &1 +pos 13 +dimension 20 +) +uid 254,0 +optionalChildren [ +*29 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*30 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*31 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*32 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*33 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2527,0 +) +*34 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2529,0 +) +*35 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2531,0 +) +*36 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2539,0 +) +*37 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2543,0 +) +*38 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2545,0 +) +*39 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2547,0 +) +*40 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2549,0 +) +*41 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 2657,0 +) +*42 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2698,0 +) +*43 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 2845,0 +) +*44 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 2852,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*45 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*46 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*47 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*48 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*49 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*50 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*51 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*52 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *53 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*54 (RefLabelRowHdr +) +*55 (TitleRowHdr +) +*56 (FilterRowHdr +) +*57 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*58 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*59 (GroupColHdr +tm "GroupColHdrMgr" +) +*60 (NameColHdr +tm "GenericNameColHdrMgr" +) +*61 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*62 (InitColHdr +tm "GenericValueColHdrMgr" +) +*63 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*64 (EolColHdr +tm "GenericEolColHdrMgr" +) +*65 (LogGeneric +generic (GiElement +name "ioNb" +type "positive" +value "8" +) +uid 2658,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*66 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *67 (MRCItem +litem &53 +pos 1 +dimension 20 +) +uid 293,0 +optionalChildren [ +*68 (MRCItem +litem &54 +pos 0 +dimension 20 +uid 296,0 +) +*69 (MRCItem +litem &55 +pos 1 +dimension 23 +uid 298,0 +) +*70 (MRCItem +litem &56 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*71 (MRCItem +litem &65 +pos 0 +dimension 20 +uid 2659,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*72 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 302,0 +) +*73 (MRCItem +litem &59 +pos 1 +dimension 50 +uid 306,0 +) +*74 (MRCItem +litem &60 +pos 2 +dimension 199 +uid 308,0 +) +*75 (MRCItem +litem &61 +pos 3 +dimension 100 +uid 310,0 +) +*76 (MRCItem +litem &62 +pos 4 +dimension 50 +uid 312,0 +) +*77 (MRCItem +litem &63 +pos 5 +dimension 50 +uid 314,0 +) +*78 (MRCItem +litem &64 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@gpio\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@gpio\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@gpio" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahbGpio" +) +(vvPair +variable "date" +value "03.03.2015" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbGpio" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/AhbLiteComponents/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbGpio" +) +(vvPair +variable "month" +value "mars" +) +(vvPair +variable "month_long" +value "mars" +) +(vvPair +variable "p" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@gpio\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahbGpio\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-beamer" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:18:00" +) +(vvPair +variable "unit" +value "ahbGpio" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2015" +) +(vvPair +variable "yy" +value "15" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2683,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,19625,47000,20375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,19300,52500,20700" +st "hAddr" +blo "48000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11400,33500,12200" +st "hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*81 (CptPort +uid 2464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2684,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,21625,47000,22375" +) +tg (CPTG +uid 2466,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,21300,53900,22700" +st "hWData" +blo "48000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2468,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15400,35500,16200" +st "hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +) +*82 (CptPort +uid 2469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2685,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,29625,47000,30375" +) +tg (CPTG +uid 2471,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2472,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,29300,53400,30700" +st "hRData" +blo "48000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17800,35500,18600" +st "hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +) +*83 (CptPort +uid 2474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2686,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,25625,47000,26375" +) +tg (CPTG +uid 2476,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2477,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,25300,53000,26700" +st "hWrite" +blo "48000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2478,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16200,19000,17000" +st "hWrite : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +) +*84 (CptPort +uid 2494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2687,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,23625,47000,24375" +) +tg (CPTG +uid 2496,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2497,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,23300,53100,24700" +st "hTrans" +blo "48000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2498,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14600,36000,15400" +st "hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +) +*85 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2688,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,31625,47000,32375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,31300,53500,32700" +st "hReady" +blo "48000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18600,19000,19400" +st "hReady : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*86 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2689,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,33625,47000,34375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,33300,52700,34700" +st "hResp" +blo "48000,34500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19400,19000,20200" +st "hResp : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +) +*87 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2690,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,37625,47000,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,37300,51500,38700" +st "hClk" +blo "48000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12200,19000,13000" +st "hClk : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*88 (CptPort +uid 2519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,39625,47000,40375" +) +tg (CPTG +uid 2521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2522,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,39300,54800,40700" +st "hReset_n" +blo "48000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2523,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13000,19000,13800" +st "hReset_n : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +) +*89 (CptPort +uid 2651,0 +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,21625,63750,22375" +) +tg (CPTG +uid 2653,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2654,0 +va (VaSet +font "Verdana,12,0" +) +xt "57800,21300,62000,22700" +st "ioOut" +ju 2 +blo "62000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2655,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21000,30500,21800" +st "ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2065,0 +) +) +) +*90 (CptPort +uid 2692,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2693,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,27625,47000,28375" +) +tg (CPTG +uid 2694,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2695,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,27300,51500,28700" +st "hSel" +blo "48000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2696,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13800,19000,14600" +st "hSel : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +) +*91 (CptPort +uid 2839,0 +ps "OnEdgeStrategy" +shape (Triangle +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,23625,63750,24375" +) +tg (CPTG +uid 2841,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2842,0 +va (VaSet +font "Verdana,12,0" +) +xt "58800,23300,62000,24700" +st "ioIn" +ju 2 +blo "62000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2843,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17000,31500,17800" +st "ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 12 +suid 2067,0 +) +) +) +*92 (CptPort +uid 2846,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2847,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,19625,63750,20375" +) +tg (CPTG +uid 2848,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2849,0 +va (VaSet +font "Verdana,12,0" +) +xt "58500,19300,62000,20700" +st "ioEn" +ju 2 +blo "62000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2850,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,20200,31500,21000" +st "ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 13 +suid 2068,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,16000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,54600,42700" +st "AhbLiteComponents" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,50300,43700" +st "ahbGpio" +blo "47100,43500" +) +) +gi *93 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "47000,46000,58500,48400" +st "Generic Declarations + +ioNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "8" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*94 (Grouping +uid 136,0 +optionalChildren [ +*95 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,71700,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,71200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*98 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,59300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*99 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*100 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,92300,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*101 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "64150,61500,70850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*102 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,59300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*103 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,59900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*104 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,74600,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*105 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *106 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +uid 103,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*108 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,11300,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1421,895" +viewArea "-1500,-1500,100490,67966" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *109 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *110 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,21800,2400,22800" +st "User:" +blo "0,22600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,22800,2000,22800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2852,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@uart/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@uart/symbol.sb new file mode 100644 index 0000000..4a0a3ec --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents/hds/ahb@uart/symbol.sb @@ -0,0 +1,2089 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2067,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +uid 2526,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +uid 2528,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +uid 2530,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +uid 2538,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +uid 2542,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +uid 2544,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +uid 2546,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +uid 2548,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 10 +suid 2065,0 +) +) +uid 2656,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +uid 2697,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 12 +suid 2067,0 +) +) +uid 2844,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 254,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*32 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2527,0 +) +*33 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2529,0 +) +*34 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2531,0 +) +*35 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2539,0 +) +*36 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2543,0 +) +*37 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2545,0 +) +*38 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2547,0 +) +*39 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2549,0 +) +*40 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 2657,0 +) +*41 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2698,0 +) +*42 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 2845,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "txFifoDepth" +type "positive" +value "8" +) +uid 2658,0 +) +*64 (LogGeneric +generic (GiElement +name "rxFifoDepth" +type "positive" +value "1" +) +uid 2791,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*65 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *66 (MRCItem +litem &51 +pos 2 +dimension 20 +) +uid 293,0 +optionalChildren [ +*67 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 296,0 +) +*68 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 298,0 +) +*69 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*70 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 2659,0 +) +*71 (MRCItem +litem &64 +pos 1 +dimension 20 +uid 2792,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*72 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 302,0 +) +*73 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 306,0 +) +*74 (MRCItem +litem &58 +pos 2 +dimension 199 +uid 308,0 +) +*75 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 310,0 +) +*76 (MRCItem +litem &60 +pos 4 +dimension 50 +uid 312,0 +) +*77 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 314,0 +) +*78 (MRCItem +litem &62 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@uart\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@uart\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@uart" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahbUart" +) +(vvPair +variable "date" +value "03.03.2015" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbUart" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/AhbLiteComponents/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbUart" +) +(vvPair +variable "month" +value "mars" +) +(vvPair +variable "month_long" +value "mars" +) +(vvPair +variable "p" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahb@uart\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents\\hds\\ahbUart\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-beamer" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:32:23" +) +(vvPair +variable "unit" +value "ahbUart" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2015" +) +(vvPair +variable "yy" +value "15" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2683,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,19625,47000,20375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,19300,52500,20700" +st "hAddr" +blo "48000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12200,33500,13000" +st "hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*81 (CptPort +uid 2464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2684,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,21625,47000,22375" +) +tg (CPTG +uid 2466,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,21300,53900,22700" +st "hWData" +blo "48000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2468,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16200,35500,17000" +st "hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +) +*82 (CptPort +uid 2469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2685,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,29625,47000,30375" +) +tg (CPTG +uid 2471,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2472,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,29300,53400,30700" +st "hRData" +blo "48000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18600,35500,19400" +st "hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +) +*83 (CptPort +uid 2474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2686,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,25625,47000,26375" +) +tg (CPTG +uid 2476,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2477,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,25300,53000,26700" +st "hWrite" +blo "48000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2478,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17000,19000,17800" +st "hWrite : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +) +*84 (CptPort +uid 2494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2687,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,23625,47000,24375" +) +tg (CPTG +uid 2496,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2497,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,23300,53100,24700" +st "hTrans" +blo "48000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2498,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15400,36000,16200" +st "hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +) +*85 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2688,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,31625,47000,32375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,31300,53500,32700" +st "hReady" +blo "48000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19400,19000,20200" +st "hReady : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*86 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2689,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,33625,47000,34375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,33300,52700,34700" +st "hResp" +blo "48000,34500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,20200,18000,21000" +st "hResp : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +) +*87 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2690,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,37625,47000,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,37300,51500,38700" +st "hClk" +blo "48000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13000,19000,13800" +st "hClk : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*88 (CptPort +uid 2519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,39625,47000,40375" +) +tg (CPTG +uid 2521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2522,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,39300,54800,40700" +st "hReset_n" +blo "48000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2523,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13800,19000,14600" +st "hReset_n : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +) +*89 (CptPort +uid 2651,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2652,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,19625,63750,20375" +) +tg (CPTG +uid 2653,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2654,0 +va (VaSet +font "Verdana,12,0" +) +xt "58900,19300,62000,20700" +st "TxD" +ju 2 +blo "62000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2655,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17800,19000,18600" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 10 +suid 2065,0 +) +) +) +*90 (CptPort +uid 2692,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2693,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,27625,47000,28375" +) +tg (CPTG +uid 2694,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2695,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,27300,51500,28700" +st "hSel" +blo "48000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2696,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14600,19000,15400" +st "hSel : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +) +*91 (CptPort +uid 2839,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2869,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,21625,63750,22375" +) +tg (CPTG +uid 2841,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2842,0 +va (VaSet +font "Verdana,12,0" +) +xt "58800,21300,62000,22700" +st "RxD" +ju 2 +blo "62000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2843,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11400,19000,12200" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 12 +suid 2067,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,16000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,54600,42700" +st "AhbLiteComponents" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,50200,43700" +st "ahbUart" +blo "47100,43500" +) +) +gi *92 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "47000,46000,60500,49200" +st "Generic Declarations + +txFifoDepth positive 8 +rxFifoDepth positive 1 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "txFifoDepth" +type "positive" +value "8" +) +(GiElement +name "rxFifoDepth" +type "positive" +value "1" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*93 (Grouping +uid 136,0 +optionalChildren [ +*94 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,71700,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,71200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,59300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*98 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*99 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,92300,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*100 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "64150,61500,70850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*101 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,59300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*102 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,59900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*103 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,74500,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*104 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *105 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +uid 103,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*107 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,11300,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1422,895" +viewArea "-1500,-1500,100584,65334" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *108 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *109 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,21000,2400,22000" +st "User:" +blo "0,21800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,22000,2000,22000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2869,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/AMBA_AHB-Lite_spec.pdf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/AMBA_AHB-Lite_spec.pdf new file mode 100644 index 0000000000000000000000000000000000000000..99e720c536af981b0e8d8ecca5a9922d5890ebd3 GIT binary patch literal 551055 zcmeFZ30zEX*gxE+&>~r)(2!D6b7tnumXtQ_i&oL%%*+{;HZ`q6ixx>LN(f1WvV{;u zqJ`3CDV36aO~@AdUuVMaN55x#pXYtv&;NO!`ZUel=RWtj@9Vy<@BO{L=RTumZ?Z_6 zqQj6?>wVDJDm#`!rPD|VDUjn!($gbb`vl-vuul}uBT>lKBs!gf(CK7564YXnO-VF1 zi$NpXl9*Jo6Nyfxvrz`woV1KYrP3KB3Y|{#(ASs619;GyEa~Tu?AVB4od4rWY?ka; zxi;{=pU6e()LsqdxTA??2%<)m=WWkQAhYQ zjYeaR7#j^@@6Z0x80g3{CS$}nXsnTQNn?+^28xXA3rhKidQ=wW&%U5E<_H_0^pXCD z(nro4%A}4MFUlI}Yba|(4ASTbWyE;tl#z2zr&34Oqfti079Abwe+2IRIbJ&BAI@ct zh-n&~MH_i8n>NBH8OX?(VNlVL^-yGltr+x?al~MZoHxcuJf$(%lo7GOM5rTTl}VwE ztOtSgr(Kxfs3XegBXFF?WQ?>klR0wUm@ITe%rO4}n_y@o`U1!Ius zwr4R$`Vi|MFqXv{iQ_ExNZeo}BYm7r8R;8rDt*L!fD4V74>rmgSw1!1!CX`oPb1usV3V8<6*+JpGG4)1O^HSZU7ESav)m-@B@iY z5Msn9lVy4cg=s{mn;1h4>LL>++tiS0Vrpc`*WRsn!8%wGulf(NV+ zc#|k7jS6gqic+ZLMLvE4Jea)54-?=fI5&`olP%x~iUPf%!u5dMPyv0(jwC9Dh5)Sr z8&JqDP{>B~^+N=~IOY!w=5D>q8f!<_i5E9#>)YpEnC!nj?5^3>FwF7JhiVL{KlDuZ}jCFiHgh;*?nHRS2Vdb<`C)2jQ=ZLnCd>1F}9=klQ~D?>bsJBpv?#~+)0hA~7-&zYe6^{TG@ z`PZ9T+ig8QY4sn{RER7yaB`Y_loMe2?Uu*&cNYhna`ei+-J$cISas-yTxsNmZPQtM z?_HE_fQN4bx%%Y2i~CcyUGLj^*!F_dR?AiK2TmF~vda(O@;z4(zsj@ZDfyABt=Ihv zCF*OZ(m2QNGCq`6Y#)=6x>k1|?U+GseX_;Tz&h)7Tk6`&TCOh*4$1P}7-iSIZ0`rl zqGEgh#ZL1a{g5Yh)`v&QMwaMpa;{bx(2lBEUh!b7i@(L8>2YqYXGMO zOS{xz^%&)7sa^@o#kWt*>g)TU@GAB69ILxyG3^>Djjq!C*SQ}XQ@7qd=COI(tD;LJ zm8vOytd&@#{)>-ui;k3t)f`{d<`>c!?35=+eRgnn*5~ih`fJ|p^m34`JxA%Ycw0SF zEFpBjeO#APO=V))iSWL0)p{Fe)=l<1U%u{Yk<8qj{RjP;2bX!NnKk>ztPs1t_q}=i z!@O(hOJ7W3w2NKcck<@+#hl}l@2q}peX*OjGQ|dM6Jwo_)2dgDn=z^T=Aw_HIUUtw zE>FKzp6)!CkB8LJR@P^TT#<;1P`^;H3#;Y%+YQOPPG9vv&s=uz`Z3kgPR9%@XD*l% zz-vprlCc8_I?g;gnQ>L& zsCTy!KTc}XfW2IC(W_?{Lk{FTaWUGxI%emfeEjEqh}!efl$(R+Rh}pL202N?WLyr*d#i;>catB~yvlrWt~q2`QdpLk$H6)Gwv^tR ze&@rUo~Sck4O4oQl6F^`$-Mr)S1N^^-#9VQtKm}2tIJANs=K$Xaa!VI8zk#FaNV?3 zX2}`#PojqVxeWKdaa%iUg2WDtD!nATwPy1XdS$iM6t9OL@-9m1?ir`AdG}GUar|3D zSFvc-i5E;Y?5Cu}rm=S1{?s(;R7;n>pIBUG3wou0RZL9FV07oCCugweYu>yQhRO+g zq{|tf%$pTxc`cpFI%A9o`yn!7>bsi<&erLFnZ0qeVQk5;%0g)wrj2Lv89(DyoVsP$Zu?@jU-Mr4TOk(Z2sZ#P3v zA;w$fU;A~=-roG^P8xHDQ~er$&s~mDQP*dG>avKIibv@vm^wUMfN{NX-p}>L5OQ8z$KKw`+DCwsjROM&cz_^8 zkA|?Q2p{D@vc{%jEC$MAG5Ab`2YD%QE=+io#vQH&$uAYkDKrYgp&>XQ z1~4QDfdoejAZ(M={5&PJJZhVWV=&O#_S zoCDXTq3}nClTi3$!z&Dc#-?M!qf~g0Ksn^vKmNc>G=z?U-6$;LEU*;V>SxcP-;lq9 zaDdY3d>8>u*b6EHQY9EK4SK|dU$8GsuCNqF!DrwwLZT|n2E0RPY^v}oM9ac!v;VUe zf?J;b`z51PyqlAPB~%vbaoy%?7VT`792d&!S^g9-D!H3s9LH7Ruv;i?euKCW}L1 za`{|3lfy-El!h}|2-HVe94?E^WN~?H3Wnh(_t=dhVlYJRTF{b2&Ve$Ko-W zJU-6DxO_OyWMU`{3W*?Pb8rd;=kie|591+R2Ad8oFt{8Xn&C0&EF3}#XK)c3mCNU2 zG#;Ca@|h@)#^w?+0|o&*AQTJ)9U^RmF-ak!T^Pk+X$lX4j=?Wc8%7O&K^>k=3XcLu zsDJ}hhyp4TgAjy2$m^*T28)TpFG9npd@5h)i(nG)zMpXg(FfkgqXN(jM++U2FCwa- z7U8+jgP&1M;Zcbghj{rDS*Uyhi$EVhppU{hfIbl;qVS16)1jQ`HH?s$cMkn$9V(1? zxDE@ZjW~u8s05A)HU5Ty!uG*N#4!kY;+2rJSb%s8Xo0{ZKu8!e9APmi7`%ca2VM)f z0dXh94=_I18%&1~*umg2K;jU3J5dJKfLA~g0%_nANFu@*;6fBY83P|a0?|w04hj)F zj6D$3#2HWuS|_~1xxy>L)cn(R7*r<2wXl8SEO3&)w+^!cJ_T2U2ozpZ*cQ|f&JeT* z4n!okFcRipt^7TPp_hCjwFk!=9yOo|z&!)O{#s9d&K1}VMF{@_S0QFWI77q)VZvoRj!|hSlZ|kNVa&(qJUWfX z=O7g5F^$b*K$HUfb16(F-~o=ngz~}h0O5E%Di`5XQ4R%x6@Ux)&qh#;!J%nLfI+ah6dYij!2=2b<6wh7@R%G5k4GVkxvM<>{Z5My9bAmHyOyZDPg5L^PxNx1(A zc0q&%@%!WG|5U3G$N_5WzvK}=SptDCeBpXQyaSB-i8x$XH(|Yp#S>#<5Ds8T@L(Dr zVvY*l&Vit11J7hKafDC7Ic$taf#`+9;9@)$g~x|xd2}`(bR}35=@4%m1cHl;u~9Cx z0V^k)&jmKd;bRCFu7p!@07wP{g{TnT(qb`jKnfHVbP#m8pu+ND4WhtOM5FWgbUKbP z*lbuJc^u$|ObU)uQK$(3Ma3u#2owgy2!nxRAW6a<6FRJNY=~DT;1&cDO676c9N=GY zj|7kbumcz)ESLaL&>=t(5Y;d$n~&psxD1sC1A<=jXfPlaj`6@HxggWyYz_#8AfXZi zp>tV0z+E0hE1k|o>0Ca>XTVrEu;M}?a2!BN06`q%V8FKkH-WTrQ4Fp`=i+=87yyzV zgb%1e04Ut8V)NO2K8J&Fm_VWEI2-QCZ~)|CmEi;LVWNPfJfMMmI@o}XF_{FGGZ7Xz zJ&Ol6#o#O$DL@#P4v-C#gaM`^0AhR`L%9e8g_Q?{T@Ex&Ipd&!JG)rAS@N~3l=yV z6Nf)8hBASZFj@Ztu?a!}BJi(li@-7z(jF=bVFFa`#}R;f1Y82LBPwxci$9#{{4F2) z4bOnd57!_{e`YOzVA{`X{>Elu)?n^_F-LF)6bKyfWtc=17I!8r=&-6|5GfP{ToM6y zV-u0dhb!_q5J_Af!E^}5GR%}AY+#8;|08DuA^7PNaQz>gRme_%wEPzzWiWX_EeIck z7qBA^c`FODHwKZt(J&fH{D%WX5=9*UcQGj%m4~q*MPbsp6bNoU_&m@73>Ix5fJ_?B zft-=J)d`_QrE!6a1H*+o>|8dE<3MxhIFpWYi9q0EOdiVN;8Xw%;2%sLa3kU*J}lrA z8pdRxYycD*pc&7#mDO`x+89AXCLav^4cG4SEqT%5^=wjjrX z#2iv7pfDVm5tIiUh;SV~hf7of7Q>{&?I0EpZ~|JPK!n3=@;Nxprn6x&r}KePu;Gf( zb3kGSfe{oyEH(-`9FxKY(!ilG2-1V%bUwxwCO2SJ7zqvKvmr%>E?^iWH(V+O2NuW& z9|6ChF*yjG!=Uou{squPCJs1A05l)vF^ScKi^Ij3C^Y>%3y;nU^Rey zNK8mjSpe^lv9iD#T)=$}fweqf$s8J$14xYt=b28$pw}!G&`=?h!ht74Uui&@hdpRm zjrqZ(U^@O)Z~C9g8GbP-LZ>1A;J!VmF|bM!TFnS11-2AwHA3tmbejMBl`0~z|1+!! zW6*I5pH5^!0GNEh0Sc21UP)&#Fg_bHH%PoO;79~1!MVUez-jq>SSLX&1T0}-;P5CD z$0095fi6Ipf&@XJ5SI)24VO!&QXn4rIKhX&%NdXt;;_8aF+M0Yd>(NI9mAM7AO#Bt zt&$HJDF=SIu*$-XNgg05$SRN-F;EJH1EE7`LOkGJz-QQ84B~^yB~%myqX0{QJPVi( z=q+?Qi%w=7gaNS0X`&_vi}!{klJerPsC&PHe}gn}dFP!L5RK@8Ue-3Ag)SSDee zBN*F1Yc;@^0m$I!pE?bp4gXT6fa?miDOjoC=byDHp;`mWAfZw*I6!>=Qmgo&Sqk+k zV%Y-y1+-*B^MW(Lng1io73flb*+Iw(|5Bu=Fr!pL7=ihwaR2?98c+gom%o%WV4DBS zE`RaP|1J*5Lokq9cr+I1A%xD10SYicKfwSUAQ0gN<@0e+U?2zi&6oei^M;i&Kq>Sm z&ja`W5Ai#U3*imq1ULi`3_cxHF6a=*j-WWv0fRsi24w)0Am|Yf1ZgJd)HLD_2o6~u zp3FMs$auMuv17rhb9M}mcU?8qR%E=?d zcTmJBJP-&$oP=BsKoB?$;57pWIhw-5XlyVI1_>OnS~l!FV?#a-Oa~YW!6Tt#T+sjN zfRWHe4(wO~8IDU(7Z?^3P#FQ$9@0D}h0mnG$^zg8$poM!ur@jnAxMD%li3*1Gn7D9 zHWL;jB7r547;;U}vv?>37X@;0luzSup;->#JDm#s05O^mU4%4~3&Im9U9e7pO2-F? zflL>AzyK0SqzQ2M3$iu_1=cLkV_+eJ>>I#<$%lmmlsOOqIgrdSh#O$Q=YTkJ;C2M8 zE};8E_73-pbY-Q5hkHg!>Rvt4oD`$*&iVa zaj87mOiN=kfWh$DK=naNVDb1Y1`DJNP>{e+iCp-fbF^VKickm;B6>k40w0GPMl=vN zAdILu$SFJq=pmr6!i^;24HZ@&Lg_&L}b=Q9Sw|H%$G9}mU@xcD;Ix8W3w1%&VegZ=HXU`)85 z!!RHqP!O_=Yz&+FV3&po?uWxa*dOA#_Kpmn=;*Tox}~r00XruHgS?DFef)UPyWuS* z@P^opLjHaGhy(1jgmj5QTmsjy!~)oAFS>_a(@I2W4w*DuS` zr6DkXfdQtAV0Vjcpeq&}AiSbJ{QMd!ymfYfw*C{FW;BqvaaNLJ<|djaesm8Ol@iN~ z8>a_lEHP10iZn7ta+H>wxR}x?5k&fLwM6sc+=I^`aS}6-IC055aWPRbF;NcU9{g7w z(NS=Ym#_(OX9>v(V$P0~$;d=W_~0He!9Cav4|EC!YmzJixH^>Sh%#|Rdcs8Ep*M0d?U!ogkkUk-?Wt5>SX%pb#18t%1YBzT8^2r;CE4|YC!)W)Ua&QO60^~1 zW9_!ocBP{mSo@P%m+$kaCIRnRId$1q-HLHTw=bTHtj9evXDPn1a&-;P7TDKxMSU%| z*%aRWs`z7YcmdiL)U@;dj7GD&P1RYhVb`CyYu;JnF55Ht@g-{Gmj$_Yg4Wy#V&bAA zqWj`R7b0<@dNAqY&eO+9NQjF`#UNDTgNlR};;xCz$y3WyO`Pd15CrLx$=qN+9Za|> ziyP=q4uUyy4CCTDP%NDB>1q-%Nk1KkEGjC6j3e5bASyZ}F$w|q0SlZaN=QUW>|rFf z5Q#1L;Y?&vF>xd|8;RW_Ia*5+{7Onp42extij8**3?*T~I0=A;6a?GId<0-{k|2;2 z8Upd@?Gr+>w&3Cc@WB`l7WnXexG*CmJc5e{2}oGT@Hy_X!m~J$a0X8D1AikySXcARI2PgD6S52MFVb7?`Mp4B{RD!6PmvBJLg_ zD*F3;Lr{pviHeFu`URhQY&Xwc<4EUe%V`Z$E^OG?Wf_gEYThilMO>Bjz~A_6;e|KK z3&*_5JjuUdWfl55eq+xf$`RM)Cu%Qi>Z+ps$)+FdSWjc?|JPgSZ~mtDux-@W+3 zBZJSKqGIdYX`#+)^|h1lHwPPjQf~wN*bDfvVHiIo^rw}(Ym6`#;`3VsQT}~F_iy0I z4<&m*wCj;qH24!(luT;s@M?0cQ6LPat1|{DrpkzoA2a>rR~Ltlv#SAV!?% zI1va>@H4`f>g}A?e=N*@LUUYakgJfqa^7~c6>G=MICo@X^5-h~w&`!)+}h*g9zb@Z zAFua2WSu)HZ_f?V#k@wR-X0R))PSAHa+h73dnHY3R`u);q6)|9-OkT_(vNo}FlY4I zN|hMx^_}38$A2D^G2U(N&e4%eNhaEL=V9mwp8wcfSB zE$s+JZ{gaV84Ss631JvYq8J zE^ErwPuY9+3?4rdq4q3hW%+IQfH&2Gt-Ichv+vjue#0s#UUgI6wFr`lySttfum5>I zGIh^$Ye^f)2rJLb?pZB$D^5nW07?uammQeK3K=gsW_hByXyPX$QBeZFM5K_|v|#{? zO+;ejk=U5LwRzD6QAh+u+Fce_x?juG{|hem*NjqxNGM#)B#a%bDTo%)DS3(6$gG%g zuulEm^ZIkfCsg|Ttc=LSkMUn6|vsVU@-Q6p7 z!z@m>_NcC(yUKUgyUIE4nmLm`(9<7ESXXVjum_v=QSZI-Y(K>*JjQOv$c+TWh+!SI3;tpv~W=-|2Oi z70Zi!H0{yQG2X((+Pim}br|iBR=Iq@{P>-UOdp$q5AK?-S0lzx=}cODZ9)lWmz@^1 zoU*_2i$l?<&3fClMb)F$$C8M%iQzl>kGDSQg#piK8|mw94miJyZ7b7 z+=I2zz;Xgqp6|l+?oV3ckkED9&0W(iv0bUVBK_5km-l_OMFM6to^_YCuU4CE9X;-j zmZjI;L^p=oY3r{Z_uodpkK1!?Ti@-6lg)G|e;E4WnJ7{qoqPCHL#(GlUbdLwlgiIF zE+==dx@vRXoL4N@8)j$BGbuZNw~VVdZJOefl_Ad>YL@6OUzonCw<0Cxwr6|F$;#PZ zc}4?wi>CEop4NOq)vdDOCw3J8cI6=o!oVb`&}c*w{)qvNa3#t}684BKV*PhwWPmLA zMT5j60C-zZva32{l4 zA9QS19w~1|;a#+2k&JNTM~#A4vGIv)rzuFD-9evHSiG znfiBFB-ov@1c8hHGA0%m<=@`Dn>29JJM67Y$}-D+t<3Z(znP;17gB80yDeJTDnpB$&^l8(khRewZUyLksJFw!& zq)RoEpU8i9u}IRLt#x(1v6Q1tnAvs;&=YrX<|Tyh^8OnVK_dVBD_hO8hYVvls|8j* znj(gXAX9!6K$<&7obuDviKJH)Q5`7H444tg$2RG!rN z?ERzPVI8=bL~M*_g<4FTSk=2=JXL%#5~%ge=$-bc^_@+6ez_l(Gt+KAKjDv0&m0wI ze#rk@9(&)-z6|lCJq@3{TnEKGt6JD~X$xHz#a;?bSDunGGjq}B?cd$qClr;Bvg>Nw zYthw}?}Yj_UA*4nWFPi;o{gQZr^&k2=}D2#p1jM5K5M8j(aZCg=6|II^xv!M_^iM~ z1TL6gD6VH>2pYJF5#0Y?vowCTp)DS^U;o(#|Xh6c+KO`R;6Z*d?3jGpF z{(q$jfhq(x!g#}q84Ayf!&6p-0=Nj|IYL8&r?H{L(h1(9!;cRWPi_$pY0-v1+6CbO zhFn4;Tn5$Qp=YSR#BC`lAk@$AuNRMD^BTi-`~p`9pZ>DOIJlp%A>p%Ke| zfPtEV(!ztp9IC-rt(XLIe-=RNAZ!wKpcbft@JRBC5EAXT9uZHZ4fn_dyfB0WdnblZ z`T4CXKL$Ts#~1`fqreD|MiCNxjR6TZE`iDj3IJ#XU^)2u1F(|OGLK)+qYhC5>BC~WqZW&dUTd% z{f1(jWZIbC^VD$cw5A(%R;9&iS`|5jCG!#K-;wNOG*8Q?GHDb;ce6ea_RkmW%T5X5-bv{Vn6HqO zkuyy)BKeUvCHt$XPeE^&Pg9-6>873~oH>W9`^}x>wxnqW#cC9enPsoNT(zWGQWgt6 zwE?reU?!u^FRAo#+{C(IYp%33(>9?xQSw1S`WnUQb{&bA9)8X4xpR3;^^&YhN8YNB z#g<#rX6@VVqu|71U%4>VEO5h#mZ@9De_KDEbn9HoQ5=1>A>3!;klVog5Ag@xe6yS8 z-3w}(X+I~f|Df#VAaugz^s1q-r&Ib@rKUQJ<0dwQCiv}YQZYEP;+4;VfS}-e$urI$ zTFoIVbaN{B6VGX^u2i`@5 zqO0eEi_!b1HeDgBGgf!YdCvVHALKqGA$ifk2aM+CA#~C7mgu8#u3mUoDDP zcX{VfaJK!??P=WoZIo;GY~-JAEJCDbr<7+^hxd|9Emf<3{=`{3=RWb8QWG1U z8d|2B*7b?_f*$#8-UqU740I}Gtl7ATwZpK$-bDU_btYw%+_@g-?&RJz19k~dnhG4O z`a+UUpEzMZM{WY;6~lLB=aBsAsY!Pl=AT;2*xAydnIn+#n9!eCK^m*FH!J-DWm-(- zHumi9Gwq|TLiJ5v-Cg*WaVVj?!ZOJ&q3FfN`-AtRX}RSmS<@J2j9a{=R3^P$evV{2 z{;2$E_OfksuD50-qpw-Os%{M>%e zyrZUHA4uoCK=|Hm4V*P=Dm(+$DhHjLKfW&h!R8sAH_ryQmvXGIoz<$|uiBb!|M}_h;_{&R^^bTo-w7&x|GEr>B0Ouw2AiN3nS9KR%_*AW(Z4 zp5SJQKzNS{UMR*tzr_N+h==iSp_TJ$r-@G{?ZLLYJv^Z`U+($QcDH@|<47AVA5Aqe zbQd+PoalAaV~MQkjFRhzGt|)&vu63)+G(*X4j#H4fmY5jTs*T>?SSv>xjl20&9(|2 zyd7=Scjnv+_H^^R-&<)R6@9t$Ki+$H{^H>IaPMm!8}og15w(WneiqgBS0CFjPM#(; zvV3zFq3HIfHU~aQVe_(w?E9L$h1}JxnlO#04=SyPub2) zRkDfV)CtokF`{lL&*v^`oKmi%dGQMGHtv6NNrUO+U3*!_3W`q^)O*vPG`2j;Wcasi z!jC__RzEppyG_Y=#f?WV<kx?Fs3tL=ZDdiC>oHM~qr z^R`1k$;5|>Q?8G#&mOw!I8l3nQ;gyyR$5e7(%5(V^EKyY=TH7*|IG3^%XC-%!Osfg zwldWUjSialj&e5h*gvNw^u5ioI!|X$MSNAsmXbO54&7V#Cg7ubYT_aO4T={sBTQ`P z_1F0MN4}qDd_LaD-&3yd|6t;S-kNU>%qwSZeoXVq+0)*5U*)073$K?KtGdVM$<<1q zJ)Bc)?&$9FUbAXz`!(@vNBe2jD^k}@Uh>+)HMRWHy91TuzdW;QZ_S$==Kp9eH!Ez{ z*QfUa#C4loi4_$H!@gM>xH#m@u&CqW8IVYg^vP znn@qLiBPVjjn%%BmAuNOQ{CM3(*42ZCyQ>pSKnY)dHj6%i7g?)YnCVIRJ^WQ5UTWg zuykA2Q{|nzr*D{W#^8LpRntk8E4OR((a(PKTR+_hl`YU0nOeK6=vcvbi-TDq-Mbb9 zeQOCBxX4lIomh{|VtQzmGz_jCS|H(@ICP36K$3ihdb0wiS+FN*WquN; z`@Mv~g|f|-xkg~~?tMVmo7_p#@B6I`UahseyfGu`Qh3!FC5>+q3NtP@26d|PTJLle zn{s73PZ^i&((jPI6NMKf-t0$SE!fJe_6@3P%rSIy?QVo3jXP3T7yZ%Zi&&~{Ae*~@HxqI*| zx47%utgeOkvgzivbtaSPQ#MQpx;V=9%h|S-K~lYych`0oUVm2_J+b42tww3l4PD15 z%&u?N9OjjC=4$NA;pA6l3#y;w4~bRHS$Vg3X@JHd4d#4H5Bn_bXTc9^5>_B3O zHp*CA?wC_`fRS%-<DV^h55=Y+@}NYF-dA zQ%x?Ry)-m#mYKqOw*mu!U3x~t^2Zk!(P)=ByE?AqDQ>Ls+@2#^Dqde-GizM%+3Pn; zR3o-6et46${Ni-Re5Y~lZ3A8I z>Ct8L{Y-C-F+5?X^pY?2t<6**UQ%Niv^(KiSZ$IKBnE9N;^iMaO+!LfHe9Tw4aA1tG^4(y=L(f*<`{aD` zlJm5kSEDV|dt4Rb74l|`KN_(2y!#cqxO*m?h|MbQvRRiFj_a?Qv8`jGZdvdP|A5xX zWv-WZJ!ACm1t2Te(C>R`? z_?A0^Gp%dN*z`LwsZMdZ6@9bM=TgJ{(>vBLWgq=`fp^#q&D{w@=>Z*n^fuUm~t7f>`*Y?_>}E8K0p zD)Nevu-QRheP4(;Z(G4^x%8U#K~9zvj*OGqKYNQrq2QTe-`3PIcVkJ($)eJ?xoc#W zB4Vm#&0+)g-LjLDo6=+(WTkHE7N}R95qH>QmUS^@jo{=Gl^t#@*GpM`rEJ z$$A-u*(F;l1yUralE+bUgyi4o0&c0oAs6=zNyJ?-;8-HpR#D* zq=k4{JLDmJFMJI3tDl$h!{kL!5tOm@JrArW`ax~b?4B)j9C*Pi)r+w0~; zy;+nbDM&x=YQuf1Hoxtf=hJ(sOV4cIzL$EmuspNb_{(a+Ca2aOEvq-i_pXFzik3J& zy=IZHVTnd>vD+uHyL;bldH7BlfAdMZs(Vz@tvR8n9xYuFnI5rP-{FbC%v&b+E6p z`HlLOu0qScnHi6ACltIASzxh#8;WYl3w z^T8r=m0i>qG%X=PuvY*3Zc}@+?xXRJV$)_-%9PAg>L0Ike|)@*bW-vAGmcvg+zzn) zue25nZoxg7(RpuVqv>DcQstkAXQ8qw3kEcsPaNtie01&U?z%U!teGM4tK-&Q8%Vym z;QMou7u*4xZBi<8SG zzj2b|c&=XK-0&z{dC;yebD^Wd>B55Adz#m$HJen2R(1-yye1wz5TDX0##F30!QQhh zG%u{*V?5t${lXy0&Cf37&olGeY_n$mU42DMnR$B#Zq|;UuQB1%qKDaEqD(*Ej_X_| z#*N+PJ?&1HMt#<9K7kA(rkFzAhdawHa3<>3%6DA*Yd}`gWx5Mv}10!5IWS;i3 zkihYep4H|{>3UsRnDebp5of-57@a~ZNP3`rL{+opb{8o|>x~-g_Bg!z(PB@l!PqU{ zf}D0qeUGv)N%qG+E&Ft=ZlyeFUdLnugN3=rKh5>#<#RDZgq441^Ij{xbB>N~Vdeqs zkb~tt#;bLs@V$de&6rtF*WIemEp;rl@l@c7d2Bmi*KDM@VZ3!B|Fx5asmJ2F53fue z6t`_FpBWhc$+t7*+1st@ZfA-qV>jH-4cauubMLM5j6JhXE_eV=&c)r!>|<=7?qc|xHTJ2Acij!1GH_mNmS01Bt=uhBxjRc+ zix-LxWb}!SztmbDwPT%;U-03r(o!;Zo5tQ;Jk{SI^o8xCO#3kx9S*j48x6T_m+QO56^i^cxs$6e;m>oeZn&Q6b9(BA zmsgDK?7gehad-aVUgO!PG~T3&k2|w(ajVPGWV>|zYnJEqEOJkwoY2HvE2}#*F0mIV zo>{n8_3Pl*!Yi$~g2(Ol84D-G>!um3TjtVxNtvo7LfBI6mp@q@(Hu^Ky? zH)U!x$pnz%rbq-#NscvqnwZa9TcX20SBBL24^_JN71VA;>E)vI@+Yc$ro7g=JAdc1 zfNzcW>S`Pk2Igd39=GOWG}H3^1+$Hc?euSZk2>C8dC0$fUJluF(BW|D@z2XjANx=A z^5Uc}Ib?LM`B-+k@^1Op{I33c?DF(x<-=_PwG`IqBxcNd>6+CwvlN4|bDEA(xt5dm zt3L1!%U|29eCR&wOL=ypf2NAEr@f_iaOP;a@SWI|hBGe~hpe~Uus3D9V+Ft4XHCeH zd#ZWbX|^}^iBz4**>KXrxY6vm-Tr(7Youp=lN+;tyrSp$?u#F*F2_A+*%W@RK5M=b zFXEDHqXoC@b(z??Q`0}mWWF+*E8Dg(+(4s!!s)=-(_U>^-n2aQVbkZzw>Rdm*v!0T zdGq?asfNCB^CfFj1r0MY_aBYA#6Qe4;wpdngboSUh{nUY2W8Hxl z?@qsw?Jw|sf8}}Ik|l2rtduF<8A^3l38!xF=gnz*z2IrNqO>QPnQ%Ho+P1LrwZLY) zTVX=uUdtGyt)XZ1WHXGF78kU0Nb+OCDEZJ)O2=M zK##4m=l0%#HNV08yJYoGNFgUraKZzpe<6yUaCMdehvW6O4JZ|ChE)4?uGNi7O`tB|}+@~Ce~ zL(d&C>42unLN&ickwv3Nc`cFEG(YBKzYWv)!Wny1GAaS5GRFJfczp0?{$$2zlPHPY z_;*jw%!o&(m^M}EjiEY7(5xCKZ_EkHE{pMge0O*Cj*c%CS3@7DY z>}BmW?X5#E)$&)y%=s=;^ZtDNi*IRK>yG8ksY#j19i_hQ@)d{4a+52cUM^Jq7}BC* zM6HQ_!D@M#cfnkL&GxjKb<&84^4W_W|AI_G=-NMI3fM{LLSnImD!6dls;QNQou!Qy zA&27v*vck60y|rA8X@%#%i}*}ZYpfI4S|hp0+Kd-(T%X85g|KkQy2^=qS8sk!`CEu zrow}4I9w4n!;_7%AamSjg|~o2d|LA3J)Qbvb1k9A6YU231PKCz$rhmd`)~~dR`?Op zwj=b{oanEyHx>+9vj#aN2p)4G82KD zY+wKm#s2;nIm9P|Y)Ez>+mNlv{$!lYBZErq16zFk$RXq~vIW_kEbxY{d1NDUFuuYE z_FD$S_riHc26^KFWP37~96;ufL&+=25#&W=jBH2d`-I_SGqNL@52`xZgdBp0K}|l{ zi5x{1j+Gn$-&03+C5Mw&kxj`~WM{H1c`?}yHtYVSZVN^Ae~^!ami@~l#5@e&Zn4Hf z1cV_-@K6zK5atQILzcm_GcddV^h+FphjB^6HR$kFdH@m;q+?l}<~zYPOIe13fv-licM_|0{Q8$MO#hI>Kxr5F#7P3D=*8ZYCT)xbIN_}z@6n(mj&zk zK67+Voth)!D~7qIYi%9U&*{h74|H8TapZ96GU>6`uhxELUTM?p4>VoNn18b$cln^~G^v{%Py_ z3D;jm@~>ahTYbWN*-ZXYEB{Bgiso^yb#OcnMaDJgEIkzHmT;)vxAbxQk?fKjui00Q zzsI88)E8d8aFmz-EhmD#r5-tCsZLAZZg_6_!_>I#)lRgA)Q!(pNVZ3WO+DW|=UUD4 zcl+nrx{#E&uBcMdbeO1QVQHxWZCu-r#jKLxJK(Vmri+N_=%4$o4IL9^=bG)Pl@hl@!COQls-S6>(-_rTZlB z){(ouO(ly=DOa>jI)5}%J5F@!`!X$w_i9T%=ckE#*A+LGUbQcXC7H25sUU2 z#Av+Oa(gUt>*QpUaGkley=8Ie&1Z8r9G-F0Vdke3dyF;a?M+Odr#-3*$ba> zbHv~FxQsTXd+W|zJu~@W9P(Y%K*Z(gq)&xURQyo&M@uKCdJTQkH#Qbe;*P#Mb4>#i z341fsd*Y5JjWYW64PO&rsgcAgw%H~o+?U8;&_D|usK zjZ$aPdgQI*;WnowtNK%dXIGbCIkw^jclYgYap*nu)Xs`wVs%?bZFGpGoQiI9|5f%K z&lmYGdnZZDewFvTEOx)*>cEF5r^E_7mfGev>+gtCR<-xHz8bULzi+Ki>pSDxhc`Eq zo0J;wYaF)D=@9Sr5Kp`{`dn%KO_`G~dIyfCJs9d-F#pN^Fq1MR!^+a;Kz`u(OtqbF z-hWLa>-5!GXOs6P*oYD z&AWYd?*;?~^uF2D@Gkhtv+QkXxIcnwcz3jXSnn)9BU&Xjns)R1y3KE|@ArSZXMULU zB$wH*wtUWdIp;NRs*_=X$oyI?_2F`A<+x6DImgiftFhkYvtq*w0xB(D_jt#oPfC$3pN6!rGh2ZzX^0=Wg`(`!24eVq9! zE4)&w@I}97EMj+7M0)hlgSsvF_Ct|Z4@uU~cF34^V7zBp#KEZ7U)3Ik$g*}-936|c zs61Qve0@LlBYMbT$~}3hj3vcYZY(*o2b29`DCW(iZ<_wu%nljv*;@`j(cW-p<{q0l zsUp`CH+xDB6pp#RQ%3c^m8p~U9g^4$2WzEJa_qp0OSVsNZ@HY~w`0Dc3`=yH54W*0+~uPZzuQPPbfHY(^5va_p?R84hbw zl!kn-6xpITdA!cliFk$zlBlhEP5=i*+1XGr&7+_a353etmUZe z_Lo6B=X!k;Z`$hRxk)6lF>rO`ovKB9hp27+v!phT-n}KW2bp$1h*IeySk)8ttiXQ5 zz^USH=ZfBklXjdMg+5iEYk$-D)T#6vNA%_QvvfaqszlhhC`^0BuJNCBFyqE5?|t_9 zXwPi<-l;vLxEL3up4{D{^6OGk#F{>9UMm>4*C{V;us~OCP8us5? zHmhH9i1!|Eot~uO+ceg&-`jUnz^2g(Tn!V^P4aXHE8DEjnc+vuPkPr|H11xon*U^7 z^iX+sc;Ckwd%umEr7yJg-mUL4-cFvJ+%3OGL2L(>x{hqA5Vn+~@lHu;Q0e3G0LKW< zcl4(D(B?&9vHLGKj8@meTlciQH=h4Zsj~Pbo*3%z=8nu(P6blFi5>E6iDKLHwVR@z zqO$&`14nwh7A9V?m)w8ltj5NzUH9b&3Km~sZ8y0ucN*C+Dipg=lX^LHkYO&rq*{IQ z6IX*hNo){zLg!W7|4F@E0$V$b(X%X$-AtDMW(?ERLE)LHrj31@!_^u1gSJj zhC0nzYxay~a#8i5%(|+Nw+#>XbRz3l%hvZn@^1d9LQNhuSrRsZLCbfLoTa854I$Zr{?TdE$EKWyRgk z6d#4Y&%HcpeYQ^V>JHtPcOUp`N9D-+&6&6L)NwVHe4PI2u-sQY7n_EhgLh`0ys9{N z;VGTvMfRO4_Y&>0?nxA7mFQ-CD|frAAGmsbsLuIU_is3UFY&hNn%}0!si}V{|Als5 z>&ZKdk}Y&wY?6}ZG@YprZ?e7gAFd8rBRRE={o z^`CL-H2WK`#V3iq+`4aS^cGV^zeVG``AF`leUX%SXY$0l>#HUnF)p#t4i_iqoG#XL zx8>Ao=k8Bm@Sr}Ioo49C(0nDy{UXWyaA?QEqQuDfViDCrr0?SH^gBta?XG=?nww(! zUyG&XibNW$=G>FW`{?#VW= z)}r0py5ry}*d0lm1C2V4oOkXX7?>gZR`LJv_TKSSzwaM-iH1s2k)jS!Du=TNl08Dn z7L7AYX0}38Lq(wwrKF*Oh6*jwR8d)_K}CZ?BpLO)Ugvd=bF5F^-{0@?`{Vs?9p}F8 z>%Q*mzOLuB@D?lPT1Qk9&Ce}X*!XAta5?7<0lUp7+{BUs6dnh3&+rUo#(P()*FJyw z!1v7+C+oW{xza7GcI|8PGOA2)t+vD-Sg?TE@;&nO9dUObh7xZ2UE4qFlcyM9XN!|p zr`Kg}J8>$%es^@*yJ7YYk1sl%_mf<5_<~ye`8Nt1-kL^JGIVKj_p^@@+YeQ^xq~9JW`sg#&RDMJy-Iq*I9Ijcw=>ra>%0{?x?1zKn%1+DRPQe3vP`qo z!r0GuI=o+`{+e90c3;7^&hEFh4f3on^b1l`%dahX(;gLWz*d)vEx-QdEkkO=>eQLD z$8VZaY4BpnQ{0`5Bf~f)=GwnEPWE$u%@4pYA+obHUJ$ zcI#)op;(ZD?sW^5{Yti@%jYu^W-R)(sba(~2fQzLCQ{A)zYO1#T+)8X5xmYDh zZeM7g{l(Hq=~udiN7tTA&ahd3&&_$(CadcBjQsuUyjSncvEKG{QT?zWC|?pfqnvTS?4HOnT}Q%c6t@xiz> zqI4mX^m>bgp1tz6yExY;5039>+fWv|gX`>@dHtw^{JHAz_mWovD@Hptl~lalzi?r2 zw`xcFy0JFI!lL>~QPKa8 zU2L?~3F39vD%n@7wn?~OxwADrZgE8T_Tbp7Gv4jQ-2Sj1e~fCGx9(U6bFbZ|GXII> zEUwGBiF)tsHe9F+pZ#W<9lnS=>ReuzSt(QQu1|+-7PWL*oMp3O#m)&naozXx9jw1; zJ}Jh^=0_0gK2G&(wVf1i;%yVt+BEzt&9nTr-`UF>s}^2;Bo%+e#nZz}J`3XFO#wb) zRs)qf^V)LD5_xglqSsYBjZyiZQ2|E`VO<{$0M&3u|gR*L(Mjg4LCnYKYPVAGpw zX^VPMw?FPn=@S& zwL2Z|&YP+fe#gOX>fR~OhsFPTyCH<$VH|SzzRH?w6$?3PA2OD(=Pg@w+R=&jLT_Cf zIU{S*rxO{=F1^=_AN{7aYo?T9)vS~&%eBIPUo*3xzd-zR>2H;prd!wE3U$I(%%8Nt ztc+`Vw|ji7qI@ftaUsX#LfEVMzdv5^y=|54ja#|k+7kJOdm|IRt!W^=jLOG*?5tJN z3u#)FZ=3k(USQGjM6oMXI?F;Z9D@(CYWUNOY8R0c0JgPOV>FEqBrN{1*?dv`wnV2b zmo7wZ{?afa;m5F3INa8<_a-Id){Z|D=9|4tH{E055#usxhc=1wsV(mk5??;lX0=xN z?YXyHX6?1>TkS(Q>r29I#uqJ9!FoNKW0RzJTuUu;Y0-4f!r?SOwY94z>?jM~tAF77 zNSe-5w--et-_0$klu2-UY+#SClwH93<;x6Nv%R3DhO)|i?9)v79qzTas%+ESQ-+Ng zc41}b+CeZ+1Y;7#JfZ0n4_E5}JuMasK~JoKw+GCD0Fb2z`9w2sQREZSUy($v!O%|_ zIRWS=4M9JN7#JHk6!a4ipB`XG2=xt!ej=3jfjWz~k3C9C~T?62xyi{vVAx=sl433i`2p#etg5V)o z9`bwSSL8ndqWG_01wSu90R=dz;MX4H6TTDqJLJ1jOcGjm{s+92_dS4^B0q($DO?$$ z5&3)3Uy*-B{to#MT@(3NOpdYgs=`S}{Gv;2R!ZD|} zU!A<&ZsqyiGtwQ^R9`-waB=j-4Fxr!EoRrh1k`U+AO3KfB*&(sv3TVoyCctc6nVtu zxCGn03!L#iXyHL$$49hN6_?zSE+05MOu}ux=hrl=^atOj#T?CJEjHgMQ52VPF-81* z*$D#zW8LJG*u8R7NagYD#~Gg+*k4<$E?(=*JryzU#FCvFHP_vymAm5V$LdCXNQj;t zO4xO0@996D)|dCEFZmL__YW=)r1s`3jhUD86I0T`X}=WrG|%E=UU}8Du%OT@k8kdq zPwBY4+jWN3weuC-6?HLNw@Z#I&wp@j15;xXeQM&*(hcq8(dW4>#wOdp9h++Ou1<5u z7L$l++tYLI6$F2p_3X~%xt_-rD9p3_10Ua?u9(^$d^}QO@;KLSu4!>~@#~FI947~%8QV}9g=^=m3tJDyskoQ6K zXL|}u_*0ThFa*uTP`CjNXjJ}xx78#C&fie$& zZ&2(QTOSS!?SKJgJ-yh^qhsJzd25*Bi5k$*j!GoKA@c?j0`2IdiypA4hqs>}!#AY& zw+iDPJ$yiQe&4O}w}r9;-Ighy082sxI4S{zkHrzy|}_7pchTh$htR8 zd{*=2mcJItBOXn?#8z-zf^R_&hy*OsXS0DVei$|~%e3#|@V>Q=-sG<UN9g!{=VKGz2ye^d@s3yUX#49=-CnfwH3&X==z}MVTuxT zBJE)&xrdp2>EkmKy`d;s=)J}OQ+R1J@b>oEwon815J5xt#b+yCRN3%|0Jc&DY=uV( z1Me@B;eqkvsgOQjk5JZ^tLWFG=fwL$Xst>Xa#i#y5;VvdE3m%Yd^|Y8-o68`(N9T1 z_s##wR#5`rb$}@kbbS9;gn(B03S^XD9*eRS)C1ZGuCFn}Te;U6LreDF#DEKhh(4da zI8lAYBL?Y*+jGV+xtM2lKo?csPoc}h(}&S#dI$LP8iGN;GoFprOW1hC_vJjgGRk@0 zTF@~Y#D1iQC41w!>Cc*But_M(cCPl3pq1R_OfNc6l+$YgS%YUJ}1rND&4fsrDtK1&av zxq5TG*UIp&z^GA}cPBV^m>|Sk5M9C&a@sK7T#Sj^>Hv6qdT$c>U>}+4vy!N?;F;~v zyc49Eujl!$L+_RB7)+183k{%^`Ya@RhfzxzW(V{v#CLhng#-gyd+%ic&BT`qfsFK( zRTA{sB?=Uu;3zQA$P{VZH}EAyzM>Dq`imYiy1a*SzSQ(SZ*&omJHNraC{*72E`{Dj zfu<2<8DHiRmZ3`_29FmT+7~hc*lrx?sw&DYXbRS|5rH9y>tiVM1yxkM0SoO>WIaZX z;OBT(8wL!B$eu}nFR&6Z1sQ#<9q1L^LxJF-LaE|=qNcnZ5uiP^U`Gga;1j@v98q4o z*dr@O2IXRPy}X-rPeqfynmo(4f3$dp%|@4!r>al`49*Kn@}I6KQMFhZdpk z5N@sa;;5M*x;Tv75o{Cy3Gdau44*Zy(_R(_G$tQ_Y3MhLd=~*ngV#?$F}f5g6sYyk zhuQ&@0RQX-g4S;Z0H#Hr8PS)_-Ve-LxIq6~w)?9Cf#3+16xBPZY{L*Y;ik}|MK@*V z=83EcoiKoDo_#hqfL7@BUJHx@lzr%XO&4xXV0oY`;WY>t=w$*(RUb0}wF&y(R+KON z9YGUdkv?Pv-fTgIqk!%UbZjHBNRCVo~a6Wk5H2FqGCk=zVY`mkeLcorT?)Sj6~|U8qA^W z*%RLoNB2Yk&Y=$U0A@Gz;Qr@YDCy`qp;kQ%R1~Zw@Jj@15%{7u@WzA+LGU)8)vao9q1m@ght@I8Zp5dsN4Fv3tt6Iv|--Vyp( z)4dLK078i{Ou2{99^MhqOUoyem!vNM>51Uz83Z7BHPRNSzry4Z(EF~!R1cnf@DGrH z?puUgL^>5DS|Bj+D)3hToe3`h+Jm0Kg+E~!7z2A-=N?h&r6qVo_dY17UlFzJ1%!w! zjkNRV*}uR~ClXNE5$wPBL6PA`qa5G_Gd#iH?JX}nZuMpW%;gnj0G}NqR3P)I1XmhH zuJJxBUt32T5e=jGh8F@DW z#)$U-F)-w~*VYKatsytE4`GUl6LME~|Kzw^%UK1$e!7^c_044}bE+6EI zGZDE}$2i*PTa$W=j!-l9XdV7qqTf!z3m;=*FXIRdaxPQ{u`wPTuhsr*(3SkuG3JX6 zZF;ZNU)@2P!9YSPxGkdZC#vpXWM+@Z_UIM@ddCDJD@q+)SLX9P4bU%H7;DJIBMcIR12Oh-4 z2RcOI&_Q>^JEp!nLRl)<5qj4}cO;4(644K%%NrxrXsA%Rd9l#2jfh|&r%mg%U*1pu z&*k}YB)U9_(&HZ!`7+*b`GI7*&(i%(v%dGIzi7d@c_HIb<%upWyiJ2`y!VabJ&}Dj z&NmYTw^!7#;Xj(l>gak#=%WlnHq4DIjR#ivyytY_HAL762e^5Vw&f%M5BGi*%R$|YI@G8*+4{@)DP#qI6 zpbF|Oj6&VhbNToy3ii_PE|Bqbp+xWvGn9LM*5|qf_fdbn*Y2-bVCE7}@u9m#qb(#_ z4{ihS7Z?KkpgzVAiGub1#{Q}V1~>7(k-r;$M@#hk@ksOyMt=}Mg`*n)J44haWJ7If zuLYoWV_#(`SU~hE2@q%PIU)X%!Uc%`OSpKS?k!w`6$D#A^|K;e^vZV*|V*mrSHo^SoXmPHiJz{?7_ENZpz z_sqM){MVG<{8UH;p)V1<{qkfKC4|qBejMm;(}3yMOJ+s22|scUlbr=J3tkMc-^|fS z-%h``u=dv`f^Y7{Te3(PfrPFl*cRgB8-vI&AeQRa=j8fp4#BqzSSYGF1au>AnSh0& zj|s910>;dy|1Jj568tO_D(b2W|%2lTFp9;VaTTS5O5nyyg7VKZrv9t7T%S z{fdVI+i^7`4yjX=HbZvsn-?kXmo(jd_c?y-u&2t#rjzur ziOz|d#Fb&c;wO~rED7?S(Ri~nf4cjO=pc@b~ov4%l8@-_; zBxko}SNr_HWiJyCE&n3Zc%2%(@uo#A>8Hf`y{{a~(?=%F(XbeMx`g9qRTS8@ET%g8 z*{_1y0FRUBll_3kB560k{@p2 zr~a*P&P-bOb`Iwthq`FDmD}t^<{$HBzLS3*+phNW&*q5hVb@#SY~*GKHJL0bKP6jy zF7?yY@0cT9g)f{PRBAuPHmo?cBdEbuN4?Fia$CWasO0%qXn~qHYS)%^Qt{ZmGngIZ zw>n+z++UNVy#DCkyK<)zH=*+w(Zj=PdyHhbbKGS4u=9($rWHg#+hI|8KTrMP@iwz! z<+VTa5`S*^T$cE9np=F-x zLTpSXFAJ#>Q=hK(m=IeyLuT&#BsIw!kHv(;S#m&NBV+dt{we>y&qbNn51@~{L|_a_$GDdO(V%4<%Z^0T)Q z`=c>uqwjgA`oh0ze;5AB+xpJ^T$_1r&2z`I*>5AWxz#OIpQleFCVvPb{rNO~+WrJJ zv!qAkbIx5TElJ>x8@b4jRv~lpNR^w3ndBzVkF-$%WtR8{{#kVK_WG;lC$~R)tUjXP z;?KuzwyNhtH8^I~9LKSed!-|EcB~pbJt}4t$$GSIsFCp!yQdhj)9vdV-7+NEc8-pN#+_X+yiK3wLd)V1)1uALzszf}TAcazUDk2B^>d3GxJ zQ*$Mxv`(Wj?ytbeYqokFces*1j`(D}%`2St5kB)hEWMTDEQ+l)a z+9lZ;PB{IVr_x>qzBBKcKWg#9M@S~*a(+pW&Qs!33@vWkY*v^*Z% zQQ4zg-XGYVyz>QBReaWcwGHem-=fD-Mi=L{?uoV}JTkTWuwSNIT`$|*`K`>@s}pxy zx&*&ybJe-DrtHqjUv_T@yR30?Av2{MkGw9f!_+G7Rk>=fI#1W+#R}Ow51ra3pC0}C zercA{$aJ5n>{~nOJHj2RL#|zEi`pM=@4`}cS$!`?kpIy{qqj}Q`y<%!}PD~52jyQ9Y|R_=I3P?)Amf~Qq`gyt@4ob zaT}z9!NxGu@a23qx?dq(ZE5)*GWPD$p!pz!^Uz0(;yMa|&hcn|xk9_uYiCk94T!ruP_wG)kxU#2fkQVw}4+~mw*(SR)f!09m$T{Ea zd%}tHY>&x>(kQ8`=I5K%$NFk${uy0@lTKLS!8vu)XN>#Q`-@UcGG2t@4%EMR^iK9l zri%h`A--PW@|dOG0nf&4+15#2;#u)Db6t&`mczv5ZzIE;!z3D#TrywO`KKkM>J=~O za&MP3lbe>|@q?k^7?wBs^eLZP%Ik(JMT|L-RQIc}xq8X>2^9stBRbEdov5!>u_!wp z{rt9*n8dC)-%&1eS5zHm&m281?CNEI@ng=b7{pVT*M0LG`}yP;%OjWk#yzi0I2=E1 zmYn(QwR2C9rf6g;y3cxL=2bpY{AI*r@4H`S{W4%0`dxg@{PJgB=c!4I6zd&-US&VA zl{=WR`OEbOH_sT?+n2stKPIto=gYSbX4ydnW;D`e9!9dGUN9z>-c^*ze{7?%}0_( z?MIGXvbWWhA7Si9%eI+-@gsb@edQEI0cW&b_e1e%)nk zL%Uv#Us98H<HPq z|JD^l_xkokcG|TWc56L4zNmF?_S)#ysv>t(p?lLf!iT0;Yl4ziMy#LYi&a(>TR*aL zSb+Mm56)>ZTFUjSBs2|}6DE7a#1t z0b@$W)YUBb@+6gdVb0G9zAIH!u2icgXUFJB*|a3RKDKSCPQ1l;lJ6JQqx0Ud*b1Y5 zPm@^Z*qysZ#yq6zz}Sdix6eE|o7wT{(H%dI{GC;YrJrn(_b?wP8}V}mDP`L7%}OmB ziu65vmVeDOrLVb($$nW}(QM(og8gv)u%btV7`#G6>bjYk&bnUC-<~VFudKM5y;?i! zitJ8fpHn3PzqZqIchlOOO9MP2_AJ+o|9-%7-*o#6D?-;kYf>G4jv{uNF^&0(a{uEt z+o>y;iC1rG+Y@S#<<`1u-fDfLCrSwmGB^HNSW|ZK^_7X@jejB+h}rMAQh#fjC_XDq zZJ!cGdtS;^UCV>21XXMER>g;-Rzmv16JNYt`YHV1KXsUOpQ3HoJA|Vw49an*w}0Drl{-kF@#@{47!GS+xFAZ zX7PG5vt$>jQ69N*Ui&zH&VE%p9-O3ce~e#aHa2&$l;eT#-g^Rm=)M28 zCD!}R)wQor{&=t_B*&$8Wc{l>CsHP5Jb7IF6ChJ@u0;qP-9J3<%?w6gNqr#r*#g;X{~coGnZ{keYfTH zt8ZPF^Ur3Vjk+AxwAD<~{`tfU<;9Dgf=m94pY^mEKZ&;CqG$2yRy}XR%eIL7`;F8c zyQbu;T<2!L)tph0@pac}`$LCf6#N%GPRBj0SKolW^I)CZp?OPAuOEFdZA#Jlck36F z$nEZ4L7UtD?JRR&)>KUH>+Q~Qb3Tz&zIeS@I^*~W<=F0nN4Gn;OQ>IP*!R65J9PE} zlOmV8i|-}=RD3UpoRso=-O04i%Og%5nm#hs=f%hIwsgjc0K3{>#%Jx+jaOmLm`zOc zrOVmLc%1(Feo~mVy{^};eWCj^y5xq>e;;7(ZKghovcYiP`ul6L-^EfD6qg4FrZLMN zrj@H7iLNSmk-#`Gj9aPRbbUQ?tq)cwAJR-I<^zw2YkEgYm`_$ltQ|4a1p&plf zIX^<~UAb1vWv{=RJbdpd9B!O7#eUTOSN1U$$L{pO=@K1_e@_fq?{M%&8$Z1>m8yDm)8_%xzU`u*?~Kkh1RS+z!T{ba2O z+}B}2m!&7?MUFZXH+q@pZnH7ZM?aw2WrS9G8$~xnYu|adHN2Ac{?)`d<9$0esb*9X z5@mH0rZ1K+Jo7-K^z4=m(-zVE6`FTb_4cT)5G(v`jInWXzj=z|jx#Gcl+`dd4}qF21$*)t|QeAO0bQ@lGAVsr&l+N|Mj(hqZ-)+uT?m&s=|HTcj0O%8`+t zP#;mhY`U4kxzOj`k5fFx=zO-{U3YkjRGibKS_6sm7xvlipBT>>_T<#hJgbGXtTvKn zO_Yg0{KTw9=fj@A;!}t1^b2bqsK5(BMo`4;zvCJx5Hv(w16jxh280VH+3-;!Wb8t3 zTtf(){oim6sCuOEK$QPGt|3I&__zj?EBvFR(Zk*WHCQW#At5dzk?QOTix9{(` zm}6QEzDs5IyHrI1yMSj88=&uYICwIPo!TTF{OC)sJq=I5!PmlmL2z2p6nt%eOBw? zAgr^+?BGZ##zw8-CfXhHv#EJslHBiZ3Ei(Rzx3lG<6HSjH|MoQ1SsZQQfIawf90&I zGF7!?nEb32t^xY>9|K2enS3e8DL-AlafxAFX)$5Wv#iUjBJJ20)eV2_bh@%G&T)z# zMQTSzz=$O<(=4x}^tW7lgZsurxj-!wb0vNCdzJIGADK)_PEuZf?txWQ&I7TfA6+gc zPT!ATbHDDn_Nzyg)yG_}EQ~TVFxh@XU&XadYewBp7tC)*A*?0F|HcCCV&vaCB zjLx$#tEKyC1v;B&))4Zv*W4q<%Y3=fq+)2)9KPUkNuZzKwAFH~YI)g42iZrisxK^l zZdn*e^sSL)k>ayjcgl5iNX$@tysp0ath+&1HEn4`mh)Vt{h8vgeU;;LwFAbxr6o@1 zs>nW)D|#|2kaCfDuK5k^amje=`&Cv%4eGMe84vG%Q@T#lxS7A`g<9V8*Tdo_-uC+x z{owiLpbK56j@WQ2#ke}w$$KKSf7<#uGdZ%qtrmLTNjJXsaB0!9x-H9|P0@X}l_{lt zu5dnTUE=;llf+Ls zU!3j#!sTo|&0wKS{fom|8Cj1jsTnHYF{}16=IEH5cC9hr5F7sR^pR1IerSy>T{4Zc zx6E~vm~r=pRBMUpF0E;mC-QZsJpM42J0_{I?x&2`^{;oo#wR_TI?ehG>1g4|QvGrq zhm{jlz)0>mB)Q}3Z0RwhDibbf;6}-Qy6f8Q#19OZ;G|I!@x94#Hzm}K*HifQ_cuKDX?r_}x3zTY|9 ztYviDOtC3;N58J$7FJ~85ncHFv~^r*$bmAGPqaMAu3;r=#x)to?LIk8m=`W_H6*>!w(_-Vg5GY?;K~e3>jB2D5xqG+Ds607B4}6SoGg`a)3coh%jij7Y0pLfgY;7kD&QO7_`a?gQh@X(2OQ%7l3{Q{T4K5 zmKo$+k>7k_q zk1Qw-(ZEx9WI+!I3W-i-VwrRz6(+Y(xmX5^%Eq!86bdvRW>L6EqVG`2A`p@M30|nF zFSmqdqR0tC(X9sXkxvyB9ysWp0%yo!;AspTfriCHun9|oTs$ljx=dr~3<`rrXG2me z7m|MdNfqUvXDBokdoha)W&STWl_iMdT70ST-VGkhg%x(kOTm z7AgfuBp{eVWqQoUCX{#r5$+@^@f19V#)YCUEFE$Jup};l zjAamMcq|#uB2l;$8i$4d4`e~h@xjOvzG|YPg+q!%`MkoD`O1Mw;1bwmE*Z=>TgnAf1)PVEzZ$f}Dv#OC`>q(e`*K5Y(f4$Xx;(2HK2xvA+|yd zk0-)CM9+|mgK8BPjRJ2on}j8?=}at*%^+iGWGIRyGYKp@X(*ya``1O}nKT247UXaU znMHt$h%yULXA;H!o36Afk2{T84NlX%VCl!Od5#^xk$_*NEV+em^J|^Km#(X zkAml$G*q~T0(qywEksX{MdOg!3_1==WN?91cqRi*kiy1t;I(FONF)w}118Ep#a%!Y z6)D>ukf?z*JOwVH-~g#`2hsE6P;eX^i46Lkz=ao@$YNo^ieX`iEC!y!;NqwxBBb#S zl_;pg7~~F$WH1lp;PK`xqt2o*rRV?d?1>~S^SwPhl%D^?-D_}s==%X+u9o>e;x}hp;zd_w}brbLTGpI6`ei!^jycZdGWt z2S0sgFQ+K`EPsrt!j$->i(1Cv+x;f&I%=boXtOyobE2W+#N&G|h)=PfoM##lxiD2T zxVc`wqia{;7^~*hg$Z$Ef4DSHDmXpDa->{iieucIWlsof+wFy`+n4>~y1lDQkQq7r z88h2p-?!XGYj>>|ZxdC=Yfsp@a~mOXwo=CUhaR|4)5v$nCm4%QU6&@IS6IC>OMj|8 z_kOui{Qey!Pv%QBc@&Ga>deIaTJlHYgsPF>>F8B8$GLBk0^YrRJZjFJ#^_@Sw)xkl z7Asb}CM(M9&sUP$R&{*Q<#zw6DPrQE;}2G{uYE~6<9w`TZ~E7w+YciaDza6NR7q8|It^E;Q;$!}n0=&|y_AkTrE&1hjd6Lm z)_84*v5r`}ae2_^R5vf_rcD;}@F%>sM}0V+skygtmGjhNb~byyyBCKQZ-$0nW*f#W zS%uxPVdv(sN_EXgUq|K)(-L3r+103iY1OhCeWTIa8ymmsy|!Kz?XDDYb)Q-3IbF}@ zy(fJ9tw<%eUbmjizQc+2k+C?YKfNNXO5OYHg_0u&cVv==NABNK6MI2x%Uj>PAh!a^ z^S;;EE+6Pp~kf^c7T<3hWs68FoX_|K{sc_iZwM#tR6YoF#^rUFt zyOIu;%oCfx+}U*?JF#UNcT#A!hU4c-|0x$|E&2X-N<~;f0vd5oCZIEko zS}Tp~dL|oRc(zWA5FoB4?pmPXTKDu-_*ajVhW!&8xrt|SB|#J8&b2G~U;7fAov&Oi zd*DTAt+A!wPM?v(eO~5sj!O+IZ_*rlVdF(Tm#Ca=e?BDXuQ85wUiswI>;$hckCpS> z4sOoKEz3*hZslzEYJax&_EM+GC$yEC4$sbsE3Vq&IB&tM45>w&u$tuC6NX)%*Emk^ zYrAA?S#VVC3b$6Tz4>nO!EfbexNVhud5z&l5i#!X2vl{`|7{wb_oge-}>P-glP|K-b%-Bgv=sL(ib!&u|~Q^qf& zH*NtBK27_BT@b(G_(|Pcn;I3a$}XmUIApcirF5Z(CG}_Wh7*|^FkgR2ER}PiEx8%8 z=%{9)Rqg8^_tcj*%3jVmn_S}kDYrFqQ*Fv{=aFI4rrk8{viEMediF1AtM~VpO24+; zd}*=h*p*Vp;?iGNzO66yuyko_(jKksmSd`X&9+w2`ibJ1nUSA00kgU9TxB{CX2Yws zKwrxLh1sAr1Q@iK4}<2!W6)|t44R>jLAwlL&=yP>ULv^-2F(q}pvlA-UNSWNC5rWs zcpCg4NDMz;cZf&~59tvJtq59eAx3fU*osK425Ni~@fy&xh)hL*4h#u?fi`_)8dZaU zzI;qBkxYPEbS#|%z7{;e3_uzv;Hna-Ea-bdr;r#!F^c)mF&Jcn*y1%5hzE_%0gf?P6g(5hW-*6?5z+r;6!Qd7 z)Xd`_A`wix9%hl?4=A$$5F+Ea1TGd@jBvn>U<2$yXEDL-BXWqyIRbb!1ZD}yf{s`N zn^e3DF#uV31nKCZi$K@l8^z#4Z~^zga!Ei8iG&;xQJ}zBI3ZIM{q~@9gRxivhXZA zdnm?w4_(liYv5B9DTNV=Jc;Lz3fM&g$DYqFDvm*=a_DdoxpW%9qErMfLf{V?_z(cq za=Azwm49ADaFzbSE|K~fQ3U~FBg!r^C@!9YU;s=DKo|*2;{cpSqRBR^*(tywE)n2u68Kw8G7+vNi$MXc zMZ$5}Ls6&#h9SMJ2RX++Kr$-!h)+uEIY)5rsi=;?Gw4(b3s{AtbAexMfFJ1`62dtK zpnwc2m%tc`;|y;3zs|7_%peeZo?F^O7>FsKUqmJy$02~jMS|K>AO}!x1{vgy&BhU^ zY!;5f;tT~!?jdY&x$lc5qxX?Wg$?y^j0i8IfMXm2hsa=4upABrjt?LjER9BFVmU}N zQX&(_BCv-Nr+_}H|KgYsYxw`cDdZU*s9F-FK2Tv;q?-rS5o&o?&YFC`q(&H|AmW*?CUf}7fV{*4NHr`&b{jmdLhZ zHm)uF@$2QOrzh4uDsUs%swQ$SOpl3wQ*b}y0xo%Dy z%kSN|pUW=p{&vu~QJFlBulX+UEvxQgaRCYjuy><0tMrwex1~*%{*7ig)DBGTz|q zJBQ$YUBB_ih1Jvta}}?xsXyS8FkPH6VM|m*S9**(i8)*KNorf5e?!{h$J*h;>nv`r zm}T1Pu{<-d{^XnL3}cxXE3@Rax26%9!!K4p=7_yaNixLmkGn{x+7`!c(6bVcqvfh> z4wh;=t{0hmUe|UXsndXxVmJ$w5}af5!R0#kJ`U zCstWVsL0y}k8sEhs+LcE>({9upF?Pv-#EwqnZm9IPnG8dA2G6Ps`C7);=AG!HQ;ZS zduQb>Pl{)@XOms^x4N`A*UhoHtnsExRU1QWVj?2FkEuMV$>NS^dm18Fw&?C$sro2M z{NdD-HW7N$N9-#H?rV?#Qfg9E@WZq9Tr1OHrL=O&)xWszl?i+28JavHF2zVJn4hAR zIYCUniY^^>$t__-{<;*g{O0<#r?bA&@Kw)}-QCb%y)mRYkg_`kL=YO>XSlePcAK zW%aIIH&_4R*o?Qex$)||gIQXmb6LjR3*}SCow}R$xF#=5_eRyH+|Y6=W%a+|L|x2cf?(iSSI5!kh{dIk3+S>|8kem7RV5_;YFUwyqaGO z84XpFk@v_3jA!&0o)ZL#TIiq9P&FA1Rg-zi6Bu-QEp)r*eS|k{)#e{w6NUHXnnU!O zc&mwcO=!{>iWc_vnt1yXvDNtTYj~x45KJV1&4)0_94bT=Idm)xR0YHy3JsB%ESTQ} z3Y!FG5uo=&i3SNwBGO>-4IZ2OQAMDOL>Zx{l>oy8!-oP<7Ce>$#v)=sk|8F`g69i@ zv0Mr~rxZ5W_5ZZgdSX=cK|DF$srRRfCK_a<_XHUsGDaoRNgOPdN&>2&{20r?F~Jjn z=AU$+iB4e+#qJPLMI9`)Ac)N5Qu#Uv! zf*Fg09^H(gcuNARXh`4Tfr1<4K9PP@U%}jEkrO2LM6Ve{61b2M0-`fPnn)ZxxR!V_ z1gpq6Du+R4K)T6Ld?h|rz}>-k)h703pD68NE(X1;!_1;Ihb7a2?X(}0)Iq!2SL&EPmqoSaDWCV7y;r_AXg;B!(?%> zWE`7nB(cy%ioI9yC4w5|TLt8pQIDH--yd5`heo z&ViULmC4}J@I)>F!jJ!jEGp7bdqA@Kg!)l#;UQGkbB1_O_553iBZA7p0Wsj%!Woj_ zH0dlh3lb2>WFn45V&Rc>{`uwzoLy+{Ifx<^nZ?fY!Xe@bqa*MXQ160h9v*=>(Q8QM za>xKMk+2~35WEHr1-Jl*jOEgysTBN2f>-B1kVU{F4FLz_me2?P|G{`!}j-gkwp(d~s@4<=X4eMWao z>&TM%$W^^2tvsuYd$)5Y>gb-KyUjXS6-By5sBh8OA-D{aKvw$nVHf)oopy)o#^&uX!3)RlSr@ zOCWw}*!JGXpl(Tf$)3RaK#NC{hD$!o^&FENs4d0z9+h|Ns>=+o8S1Iys2uCvk4Rsq ztoRW2q4Y%QyBhm!u~>8FWGBnpyK8RZPDV`s6`1W3vitq|LtC;Bp53%feU{jtB5$+3 zBRxkO;3{VgdrK)W>rhOWNmtoq{h=jelJo6o*>h`lG^y97sE&?x9g{xW&n>ikT=dUc z<5WrOON-Mk9hhBDm21FO?z>(!=llB0Gdr!`#hlg7a|?WOaz@fkmqVF_SL2NC7(Uvw zCOx?BZH;%zeWJbY?@hz~-j*u{>q!P({V02+ym6-49Tg{i+nenzl@=Ox4~oVdyZ^kb zasHFt%0)L?<(BK}8AqpWd)DFf@I&?psJOzMKVCV;Wh7(vaP7vF>LlZm&@Af@rFb8c z+R0j()=gV{a+5FTZlImFkJ%h_V%YNl_vNdm$tBS8*?0Vv7Iox)%d9^*?unJ-)e)Fa zu8QAd*_gZ0_a?n~cX%o@ZmpNpXAAnvTYFB=-Yz$Jv%MH|pV~>EIR)oOSGQE#4!>En ze(JaIktvVG7mONlINQlcQ?u@_@~d~2pYethwLk28G08XU+eW=pBm5mb!@NH|xEmKD zC9B1{uzJUl5QX){PY%23HJy0V>XNraQfuqd+R-0=S2drF43U1}%$e+Z#_S;bC|O~2 znq8DjmfpdOn;4b!h+~;&xymkXCDvubZz^2ZSJkUiYaf1ll#bD}qUdjxud~~Vbx&Fs zFCACBTEST2olo|R15$-Il!FT6wrl<=ZC|ic$$Rd#gJW$-5eG|m6n-r!)lh30V|}?% zIdfh>X|SG?!NMA`OWSU5(|;y?IA(3~_{S%QU0B;Fq20AnuQf<^W5dIQYf^Q?=QMVy zy!OEb7Us2aOFtGi>**eU(Nx-w-N|S>P_hr#sQ7Z? zDe{pQ({OJ;r0LKX7rx!}tX^Ew$MTW9<(lN3dq(RHZ}X~Dn%_|*Q>7o{l{?*$5z!Qp zpI7gzgYQmD*eI(RC38>VXG`=OOkI=MivO|hF^<56!XH;vw&zQ{E|s$_h;Y4} z_@jD<-6g`7?KVYs#+>I`UOtm7Ij3ah?c-KPmKRlLJKsO4BM~FHc;nSZ(>(d4n=LyZ_LdyBX83E;GP;e5j~g#_c}hRaIIuHYnE2*p6Ohqcfbzc+Cf^j{Od1c8uN4SX!j^Fk!Wl`pq>56<@}zU32O7ZOq8oOl!=@c}55P zL;p^iI<-(QOlE|mm#NGxuY_+`!Yyor*e<4d@h=~L-4S^xqAF*5LAJ)@H<-$mb8Df4!To<@g?fMyqzoT)(y1SPt4&<&=gjnW)?z*5Q7=hm-&A??jj59)- zjr;pyU``#cP|F+XkBY&;2ruXpWZ)gl%ddvG8iqmw%-C*CfF~0}=J&-H)-DL9eDx1K z^8N*Vo(6gh|39c+;8EV|0fguLAMc;tz9J}JkT(AHC(`+zOk&i6jKk^$d8a*YYZq=Y zou+t4FQi~8~Mo$(}cl62hSS?=7X zc=-a25v$Ab;$KRPE6*)UO((B4q;Oq~?B+aEc<|);?t)Lhq;sRkgtOBR?`}I}b}++w zwY2uwCj|>U3Un>MX&b!wwJ$RocbTQF@S%w`kEq3ZywJ9Db?)^AO4O^<&2%3~;HmPy zwGxxcWy`g~XPszGW0LL97|vJL4f9zso%QUn#zu*$!_R1&Z@$ot(`FFWG)Qa2n(hZq8~wVAGD(z2Ax)eK|97_&@nwQYmxU! zw5cctZB~py`$A*Tc`Yy+5&Z~C3p#BCgN_UN2W-Uels+Wbh{B&?A(VK*43YsPen8g( z5+sGjvIuO%1(%hMM?8Bv9-Ko03tU!+3PF+}o`giLz?2_KJd|Jf0Ili<@ho_!)X%dR z3^rmyo+5aIL`dalg2O{$Ks2_A5V}o&uh0ikf|&(=8k8<^WCsP zU?U=j3T3@5lCDlvIn{9SPl-7Jdtz&E^8>xp@1sNU|^QW7(7v`27!&}kYq~5 zL9qjciH8_1MD&0v4x|YZnN%{93El?cg#Odr5l{uG+5@{4yerlJ1P6hQXaqWggM;Wg z1BzIYj7k`PC+%F~s_JG3wLKOi&Sgr)`hWDpx5ZH*q)kk0}#L;^n=xrmU(3{VKbksK-= z$7GR+1V9FdaDqKl4dzDk^k08o4FVhCm~6%qxlBm4#?t^*CNd~g$XJ3_m_w%uM&1lU74PlrCs%`^Mr;TzFd1-oEGmdR ziHrb$bcn5!AupXu10WE}ZTp74IqUPt_ox5rs)*!@B}x&?rb+Is%fikU#~6 z3X`cwOgx)C6o`#~2LYlRfOC&Pz z@C<<(9XhXo@q8%xdQ$k2q&O6O2UwGdL$cqvymyd52F(CvJy;x$#^G>C zG)Ry6FT8@_#vmuyCu@Tb`;j0dAV}edQokP94?)-HkO~BeTu9vtgm;*LzGI01$s=zL z^j05A4wc{p$%9I}(9ID&K_Y|%dQd-5^nBEhMFx2X)r948m|$O#SO7-Spn`=(Ceg`k zA{p-EP%u&fRTQK(??C#BXO;FpLCCcco**cC{s|JHRtD0_I9LJ`9%e|egcIZ-`IZzs zn@fcj!MrNNf7%QJs(52H2c&91-44|sA}1)UqhYfsEFuFSQHT)2i$mgaA+?fAMl+Cmi|v)8JxlU>j3+L-_1OcFS4k zxnCnWO(`=ZRWCDgCr3W<=E}P~CG6)o=hy9aUKG9k$xQC8=Gc~shT3BDWjkYTv7Jx; zH2;zL``xPLo)rgjtWU;dHFcdz{QF!pwLy7fexv)%obJk?A{DIh)6CdC6B=%rpLt|6 z*_D$RdN1y9L0EO;&99$NrA@r}z^Zj@S^LHJZ)t4~=8;w=}S`nN98$1qXkA zyYj8E%AzLlyK<`UQmD#5`=wQ0<3Zkphh6V3z4$#&Ow~C9vsgZPQs9_!yEUDGf#gf; z(n44mlNZiAZ=DN!{Vlfp_Qz=s$4fpawFVza4*z3+Rk5-z@^C*l9?N@859JXd+wGw*Xot})R+ z=_g5z{4JX+Ls=$gX`vdKRU9KGzQm>~rE5bcer`mKM`f1M!?DO|8YUyVrK9W<<`82la5R&HveWGt|aUXrOEGcC-?B-SqDSQUSGAf+pSz; zWqyT&(q(O)+#?Mfu3Zidhj?X12S|x;eW#>Arouui?mT z*|tWj)fibVua^d7OFL$baviO7?~|?54C~I4*RPj-vM=)b?qC?7aVYwHSXthmJ$Idc z40pd2mL_Q>@k%T3$~e9AS3XSN;Iwbi-SDsj&%NWibH1)sPVX+d?6Z8|Q@PIvqaH;+ zzZqGA+oYDdbQDRYB4fh)7WzHxCr`hJ+iyC1XC6Ib653KaPkeOJ&Sh6Vy}F|@`)}4G z_oeo_6*s?Jt_a?}>-f({zPD;L4_nM!KI6vZgL%cNG27o}8=hziDTzvKJ8)62SxmZJ zYu9+QytW<1jjI@MkB2MDcj*)pqnY08W1HpkL8omHIUSM+fGqlY`Zu3b6MnE#Y=S&v#7 zUv*5rn(*=CO}jrvZbttPdtV(_)wZ=QDJk7u(rmgx=`QJJ!`^gvD~KRScPc220TNOY z(v2WUw{%ID@GU^k@!adV$M1XJ@4w5>9~;+RYwfYeoNLYz&v=H`^16KR3Bi&Gf;c3O zUl=bqq!9naa~)lk0sg}prYeSYh@n)&VEE44+x~c1_3{rI`27=_L0BA$I89|1$&2K% zA-Scywl;QV=!N*Y5QF~q+mm_gQ8UuD4@ll1z{UHEs*x%y-jjwg+2p+|s@}ZwKu45X z3(M3iNC)BZms=$$Z1C7tIZsF`Ew> z)*jkxu!~JVoSvWGI7Do2$HCfkEg`PpUbxYy4K^VnJVG)0z%9FXpvG~$7rN~?0c0Gq zv!A{af%VEXPIZChm03*)@ZKK9t#xGW3d5?6ZQ#Q4kwKa1)_N+cJxK8lLVWD37Z5V zG-52F0ox4J7&PLsCN(`(wninHQOFQn_euG~;_H1;`$MA|L2acR`$|sfRg}my8FvfM z_VY&jf_R-!Oq9H{v)Q_26wZfBdQ{4JlRMs&3`jl){X&SCj4YJgFvhZE-2H<+6ArC# zpuJU{mvIfKC$FahASybPw84}ySQ5D6)MT`7Xvh_*G1RX?ISh+0h`%^FrGAMP;rv!M zDNS~}$6w^+43$BH2aQkp+;l5>t?QsrU;qB{O3|uuJsdB>7lyeGcJj3IZXjtDg6GMnY9Hk=oiEPqJ$sz+Hi^<~u)EULTLb0dDgM__ z`Uu66SPEhNOv}+!=ZQ>aTf@#D5&|o!;k5Jh3EL6^>lN<7RZT}@1cK{BDZRdSwY-7B z=6j-QVCQ{U?Q~EmQFMIs!6&%bF1Z~9X$v-`2MG!)Qq^;@W6II>uu_I!Zq6lt)3e8Q zHVtBtXkQ`p+3yG!`y7`^f>M1;Or{0?tVE2DcR4ojwM2gp{liw-{=hLIlExTs1PgQ!~lw916lsdU#9MV;onZ<7zrC3937FUUa^~!^*lJucK zC^WRhH70w3)qqsN-`R?c?bN*n`ou=adU&(Oy^HMyp5Vn(o?g+)n@r+tWAA<51*_aZ z6TaYAnoX6>E5L1oZ7RJKY=`wP$Zt275Y$Ud-o~^_dx$&J0`MlQPcewYb1Bxq}Hm0MI7@JOVuJA9W=>06_42T?wZd5I6ylJ3tKJ zlEA_oDANPbodC_0xc~s6x-2m<{Vi>MN9h7BX#dVf`qP>Gl|S;okoLTOD6R+OyA#68 z%l=P3NJ5YOCw9!XEw34ub>ddcIXI?v#rRi zkkQB@CH1-e^y>xRJZbGQ#AFl?R5Uj;5)iQZTvn&|?qHm8x)|z5PgnB7F7c+f{rNmz zPw~R0_s|N*=brEFP?oJ8Ah<{lQ%Ct#2WOYfng|JrVGM`6UfCj>yC9fD((uh6^Juiagugsj?yX~ zU=h!z1ChOAU{2WO3K6SKs`XWJNqt$-GgMeNUe^EeotsaE?whsJSG4cj-t*c-cSaK$ zQJTYv3Y?dBr;a?HQnnr|FrQQ9TJNY*nx_~HX}!PP%30blqbZuh7&`CRS&&YaRJsGB zpxQjy%H3&_`#j8ElE`@pld@ETh&}Xfc!uij7iI7ZmZBH3R{R`G)OBMoYrHA&^|w2| z-gj9GrGue@qhX->_$@AGgFk#Go}vSqhvwix(VfeNh9fxmg88tT{V_w;IHIcohyvfP zrV62sE^b-tNg8qfAim>x`sb$AcWcVGPr`B&mnM|KmPKu?H+!m3amLum4?9GCrN0p* zq^pe{st$Q}`!t02nS>PiE+lvx*}oZ*pZkKm;Ao>4KF8(dy|XY(El!5OWjb`f^5Hw9 zGD((DE#kMFQvozId)~5B!knUDe^Gmb(ldp1I!gYR3Z(ZV>w)xhhiK)4U+pJAAPC6m zUeE0Rw4nf{VOP0d01|!q`tv4oT@mmXfCE5Kb9vV9l?m{EZ;k%vCIYa^U0r?^eE91w zaxKSCOCtwB+XgJ+0ECqdC_}yEZ3EUMfP?2pOcKgtZVqsw0l_SOV7cZ7sI7oii2rh5 z;RQnQ0R9~)sQl-R+oZ$D7U?cUs0S)rIkQ-i0s|o`f{s%p&xdL77!Ool?98x=lErMlxTS%h8eP12@?(o$m^eZMS zK67JGCR1GA9tn3}DMSFr(@-kD({Hd(b9yj!tK$A!1^g5l8AvM%l}d4Elk-hkBVs*2 z6;TajVmivWWgMA|cI>Tc$HS@HMYKoDhvm{yMqAz&(7gg-cucLVdlo2QKSX7vMZ)Ou zsn_`BZfLh%$T~|}kF4u4bt3q3IJL-&zI;qzNxo;73geC>t)Pg3m1Wgdr@x6c&Mt@8 zV9;KPtb#e&L1Ww)#MIqEj&;-YxXjX~CMYd;v%r1U%`K$T>HXvwxw%g>FJw#|VkxU6 z)rf1(hPpc*u+RnTDU4KuPFED=f2XsmoEUFyF?Q6={E6 zu1&~0a#4|n=e#{m)TBpNVfPhgx9X>Wc{!3_9%>@IV+mzYKJsfD@H?H5AQp0;FXo#$$TGsLI&9lIK18e2(DWt#yxiuXmxiJ& zjx!S&OM!H~$bApxHcWn5}6gn53wp8i=&`k&X+YhVt*$M$_)y)v9B zIj*Qq?*XsZMOi@l;QIX^Y^H#zby?)aam{D?PwVjahLpdFySZB0e=64km@of+9sZYW z$B!ywPF^;klnua$umOb|fQkGgW5vmPX(F2eiGC>i4p3(TbZdZI022q0*W+gefHeF72mqk|{2la$6hE7|nYo2E z)bj82^%J%3U*rP#8ZPAm(vZOR4D^-%As4{92qetdO<8#$02?DWK)JzcddV~hQ0H+0 zbam{Pn5BQ-Po)Gd^#wJz1Oq4kQeXc{X!~7Xmjeh80suY0*#Ht=0DSmEE*?HJbBH;R z_W;xd$aU!ofw=(YHFLlPxh%UkhyD(GgB0MK0TayH5^V9ef?Yn4KkxL{RqU6gKbL}W z0{#!6x6Ab7b)6K4xqvx4Ks>-|Zf*)pFdiT&Y6>v>u>w;ID1hSwiZw2M(|_`0r2zNr zYKB29tp849f0jc0JdzxIzzhQf18Ssz8OFi?#|-1WWJLgIOIUdUZcSi@0S_ZT_>zJY z%xh)___dr@eWU+bFwRTCAf^y&;5qsAP+l%s|E@6(fCv>3?2;c6SSkRw`iI7Nfb1ub ztpc!S01N6ROb=kq14s{9Il=6F>}G(Q4RBcgj>fpyBuv2;mR6Qle<#?#WVbI9>;Pr~ zs0Rdygn$JL@MHn#;}4P-fXam(s7c}j(rbXd#%&4)&^WvR%Pl`AJA^}k`*Mtbqo(D% zCCSI}H%|8Tn)^R7+Wu%d36lQ9egjDZAcAWQ>Hol#yV_0uV#)!$MO^>j24`z4xs11C zyz)2Nhb2$RC>!-p*~d@-;-W(a3eqhMHk!ThOFL~#Ak8$Q$A0^VaC72%V4dM zyumd%IQZ>kKaE1vcgUL0VDjY~|Dz&Jy;twFy)^KdTJQK53vx0I%0Y0-MGac4J@90l zY}w0O$4|blCe3WUAJ-~J?P`Z-I&=HRM>uH8qE$2@IjmDOyycbCV+Gyz84Oyx|I~fR z3KGlTRN-%AFi?wkXYp-c&F0Z3zM2}fZ+r$R!cnd!bNmKh0?wa&P|tl`fA&(8FT~t6 zP1bPhFf0$F(Bt76#rD?;A)6P%a)wqOdu;jqvSY6J?RnT{xXqH~txhb9=;{+Sv#5GKn*mDOrwB=)K)L;}{l+Jw ztZQu$-NxPO#Yx(#5pi%bN7=G%qr!d zvs9v*`MT{v`8#p7`8X@k(Ur-#-FQwwhD8;I81-k0Zr^s5EW`5AUQ1LygYPU{i{dNl zYmX8e0(P@D`QZc=ym)zA`*bhX7U=TyrgKoX>)VQjuo*&xi_Zult5YuSV*%}2Gd z!dqCKba-3wIklr*M3ul|r@g5ClO94ug}aXVvC#ZjlQ5Bb)d&1YR_rD?Wch7%L^8*7 zdOYr{y&F+^9aFM+ucNm!r-k1t3>K+t)(9w(S8p8o2HJS|Hw{<$tCH|>*SMD~S|wN9 zL4zox;Ory8k@DTY%XM>*SYS3F?jC&F>3cXrt-DQzEv=n*HAO@$Y2O_T-jX?<zcFz?h+K___>6>5GMDEjZ4z=C*C1=hl-&xC0s3%+~dG>B4`_ewuwHDYERY}d%>E7QvTE<$&dv2GQ0B)-w)-X zvCfT-?v0M33`!(pkL92C!@h|K!3-3e&KQIB!Kc})m_D_--6kECm38-V0NI6RIZIKb z>Ck?yH>{q|ik>|Jc$Ya6C?MUPHVV#^$;E+e%rZzHtI=yPzbSuj$Ao)|v#? ztC1L4xh^x3=_F)1&|2F&E#16z_!Pth#80|K@0m9;PrBz?bbZlK72qi7Q?)sDp~?L!52!WTD#@Qp)cHi12r6DWVFt+AeCdl( z?p}H*HUD$zN7#Cs1?LD*MalV3k|UY>-?pi#bhCLrczB7g(;;(cg_)6!aWCiSYi$&x z^E{uv^Q7QW;N4Qc_bd(XkX>glaQbpvrXTj}xOK(&skMV3VcMvNFXg3g%`Ik2BjFvz zoQSVHTIJP!Z!*PpF~-qs z_AhoGdJor$Mzzm0f!;3M_pn zli**TknO>8Dhz854yIn%(ofyUBZXw{xS=rKU~oU&Vc9P9T^r%f8&=!+vhrxd>4TwC zM>DS-a}gFz`Ih^Rc)>fdZ(-zI^dgBT?PdKiR1#F=kH#*~TbcusKHfctuSQg^dD3s%MoFci04&rOR2zfe#D(dd5wp)^J+O3Rqnv>D;^lG#bP(7m@#J~ zywsC}#YjF%r?JM9q!m@!$m>xn^o00ykplF@LF`*jODPqrPaw-=2p z>u4r5;AtN}w&!N7nZ`_xeyvHubeHexX)v?g(*=hB7(-U2DTZ>?=!S2kVZD%*K!F_r zW-VnWrgrb?A%3+`3Cg+nnWvEr#4Gx%`Qb0wHmLh|Bg`ZBLf$_vvL|G!irH6LJri6U z+`oA;PBBz~;q&Gh<3)a1Sb^x5It>1q<(*qu?T2OYUQY$#-dOuaaVW4_>ICjuOQ=fj(DJ_pu6+`Ys5dX$P=wpVesK*8_h^qxPfZ?NxY)Q*;c()`dCY0@| z32AzAn7ip?vDY{hb^cL?H@-=Y_8gAL(HBQNU+w&}|N3TQcNXOT8vCd?|D3h9IwTP2O zVe!ldx&@>TL+`-|e9jtHEM6-(N{(aHlaV8|#unKk8s^`*pJ|U*E2saJZ(aG!1AlJ6;zeFdmUKr`_}w|+hwuX=d;p9Zs6_$1 zVl%)^09q(qmX>otcz|C(D~I1ecz?Gk1qA*sI{9y`_TR+*fVmAA+W>qTsI|YO1~3Jx$^oDxz!}X4paQ|B+?)cx zZGi*TJAZ@G=eQc*|0N3?813(*H@`H-LDB+%-mfMt&|97z`1@)i{|{{RpSbUTz~z9P z+&|dp@j!|CLMs*km)kSr>hHImB4WWGdATv7jCQl;;f+>mBnD-h=Hw)pj?o12Zvw|% z>4nxt=Cob6;4RzDJ=_eHGYU^u-%vydM)KVso%Y?g%MKr#o`(3x6y3OghPl*=p`MUB z5@lNM-~j7ZJBr|s3Gex8yZXX;SMI{Bc#7?i#&2uZtgx$-Y0LPOf^zurh#~fgQ;f8A z(j$Ld>6o$meofBzVoM*>T5XA*<=0*Gj_3I2)@zGlN^PaH=e>|S!%P+H(3P!4L6&Ow z5j0*t-{bxyc0&uQgGp2!`_t%A%tJldbAU&lr06oL|_^x3-OSnYgeD`j*zqNlY_% zvT4Au1lJu!xSWu!_lWpOYaIEIHt8oB3lx@2=pRXSs(rcn@Zpi%TXAs|^u0Gz=XXY) z35a~-pTQxxm7CYETYrc>k!#aOxo)?yVQM)=Hq}7VXR+YXZFd2c_8`08u+g-ys~}$I&e}hvEDpsRmhDgs=N9Qb z>XRNXm~Nh0 z-}n{6lpJHF<{4rX>WW59d!c6zgti5X@e=KBlbs(5D01JXEl9aJ=Pq%@kvSv?eeUS& zr|5l~^Oo8|c(hR3b)h!SOa%5|=5>C}l%EXly>!3lmKG=Y?Tu;hRFtYAV(B0?9j_q# zj@*YE-V8ab_HQL*W*@>1^+#<(v)d+3wl+*^!uHr|9u}?^Ebt#EZ6d(XI}sYSFv#<9 zRIjBylwns(s&t{(ewj?Aw#=HVs*3AVzle1`9DOZ(<#!jcld-RNy?(JG)oH%BXz;^8Miiloz^P&M-*^wiHl!*87043kSbfPlDDA0zw~Nmo_S$b%^TfXHluygT%A zD$<00FXHyt7=tA>s}(UYERWsd1UU*+?~xH$*gp!fDwl{DkDtb@^cexTReBM zhUb00Ptn}E*t}&juWM^=Nf?Y6Q!7Z7k}NJEl7)Ql%Vfqn;fw)_&*SF1bE>0oJ5c&^ zl&VdkQMo_{kS;kaosZtsL-vjcnl_oDO#K=|$Ay|e zRxEGIIl}80jU1#%KG}FnX`}9gbRAz(x~!q{f?khM>#>iQ>U$O#M{iMS0h|Dd%|4}h zWx*FNyu|OraLPz2mMeWkzd9Ay)e4@EURaTEmLSXG-_%_ZG=GWz#*9bVD3kP&{NSe{ zo8>TZ*f&D{2&@p2a#qx`50BgjXpKvx@|kWr+vG=Cyrx4ELI|MzT%?(S+}rmkI$0Y# z=9|?NnmIYkV0(_Rrm=i&DOUn*pAN(dDFUv;LJ6_D|r*LO+xieqyAgH&vTDSEa-wg zLy@s?DlBU%&7PIg9lbBA>Qg-KL<~ylw#}@p*f4YcUxi;GiYTzc|OwT1(C!Aer_9{ zw#52?RvfOG-0Y8~p6fqw$KUgf@@+9=vK9SxpWWH*1FiR77g=%7@b8>`?NOl*8>w%4 zm-OKMTp<4v$y`o`Z_K2BOBpt;z*|QZmnR=J&hLGTb9JWYryq7s^KP}WmfSLi*)wME z6uq&7yQfI;@iwZZO{c@B#kU`}IrU74d-l`wW=n;8lyD7)QT&}#H?1lZQY>gtHe+Oz z-0~GP{3{W$VhML`BztXa$%A4pz6NxWJ54&$fH0{gX1*}0Cu@L-+WWdWQ+(OB?piM#;SfNAvw zmo*W(e^M|Qi4oqwaD`ma9shS3 zgaoNWla=oB=`9TR)ksCw+WB6Va4*mn^naMm$0mzHK{f}G57TO+vc0ao<=0PMb+d9! zbx=W0M2Lc>``*Dh&T1@%;rh+d#giOy4}061SY@S@7?!9Ue>|Hm-Q_|-45Rqj75r$p zVRHG=uu%5+TTj^LF?ndCEMGHj*-8K@ealh|gZIZNJW9*AxKj#6)aUsRtI1doj56ut zAAD7GU`1!Dj8c^#x~mUEda}U41C~ecSK>OY5-}B)4E(0B`T$q()&6Z}xm{V?R_Y?} zT{jvxcYHNCBUU=nX*Q~c9i%1N*L}6hZ}CE3Q~LQbU`!}HTJY9+%+!YG`7+9Il)bpK zvA2mFiH?nzb-@L;$z1CF$wZJ_V$t!43&msl&lMRdoziqPAvF<*H~3R^S6TcrcKOu0 z2T|jfIurBv=isYZSJu4?>*BvzRj(2QB|1GJ!e z!2nIa64aDus>nIcX3nK>0dIE;IQ>iOkDuLuyMb9e@cx&s*Hx#(YwPz%?Ef;V&mjT& zZclOmK!$&?Cw+UQoy!coF$1W{x7xbcNF8)YU9TH6iOt{N<`9Kn{9 zgs=gWK{NpmFp&aCO>qSRXH}Ua9-s`GwkZqE4_U~pbLJr!5YX?%pwv+FIvjI#&5A>k%7Pmd313Y;YQnT z=2lB%%Q?v+6$>t_rLX2$s-u!*bE;+?^t~!=ocsbxx#J_pQt_vZ9aydAp%RaT1~jrh z5Xvd%v-?Ukcb3o2W_^fou3{Iv-J|*i35Qky8~PM-KYx4LphkP$=$QMWzTrZfB=7{0 zT0EK%-s`5=93~`h=Epn zV{n;IO}M1c#3xup@*GjBF>*$EW9A+P@1V(Neb&e(YosZ5p-&|d?5P|b(!ZZ7yv71@ zRi#HE-cdiMXf|`4#KwZWsxO~($^GnGo8&xZ8!<_yw1c=&f^FdQ((tqVQ(N9K(d>Mi;l?v1Gm3e|ncwl4RYV(CBc|x>DEk8vE7P}5 zN2?41t5amsc&4>4SQS~&VQ&y1yhi4AvnhUpPW37^zj2U4+#?h9Im>pnJowa#FV=Stq;+TIbb;nXcA z-&bW6^RYezw`;*+^M$#TRQ-|UmeP$^^o}=dcNtd&M0=vGmf-0fafKU}V;VQ9-WCDz ze6?ZU7v>;}soe)e>w3EH2I!X69+UaVs-^SaPVjaQX~Jlv1CjVXr)yZ9CJ$i1EMLVk zKyT7wd!)v0?aPSt!m_@&Sq&5Zag5O6eX`IXcrGRZ2aOx^Thj0rF$=K^4HcC zzB@N#JSzDFXDSdtF0$b;SH|>`F0af}Ekxn7QsARI534ANUyk!5S8>P@#dP439>7)U z=)Y+h-fS4J_O{Dd*w}T7CeW|eX3e3kS_v7HOBk3)SNbxhK&(l2#B~_8`7qsymmk5O zddg!#NO>28Cg^bJXJ9k{V%OGXiqf3(C=p3Kt9~gsk*_g)WJG_5laaqSxy^0!mIMZJ;>76(ABhvS$~C#c#ld-c zwc@TrzVT%Ez+k-xkM5$eg&{sMp*g7LX-QyhUnOEAr}IIK*f)$X$Sr8qdUF3!hZ}S# z1kF?PX>N70;<$sr>s*vn<_+zmOtN`A{@mWj5|4SC|GSdZeva5N*2b zk@gu>hj#6AJHjP*WM0DW3>~}F*Gb_58 zSwX<+V0)L#h1kQ{$`z`kVrpyUp&I2AZ`Ir4DnxfX*C1rhA4qv zoB%}~a8L0|iXm2j5fwPX1CYRQQv!Sth9I%))A#@)I|;C(EY!-v(iNbV;Roq_|C@)4 z>pIwVd6Ub#I$JrqIyi&mT*0o8Et?jCI#&dzpr2s3XR54+g&)qD}%uBNTm5@WBY=dBFJL*C9=&Ns@` z22P(4cVOca&$kbZl|R6uFZk;VD`yayn}qitMjOl-^HD|5N*8y!3iO zg2!ntI8s56L*o^b(6{Gj~ZcjMxVyae3lDWm6J zga>nmsa>zpLB8+ zDuio7&C@uTb4Fqh*CUz4abk$h+F3r@C}%&5K98Y&JewVyVOm^|5-}KTfjp4wQVFlN zkztYi<`av4t{0Aq1EYHP?H4(f@CxS3%N7N%r0`A^y2JWz2Uiv_pN}4xDQL&I|4+ck%Sj1 zO<%V8mmU*RKO>yAuC%H8?4?$VHYIgFjvWfepJ^Uo63X5kfTsGDI%E6&ddQf1uF<1c zMYKAf1 zP_d4_b3Fah-`8b%u+d0Lm9Xq+wVF)BP`lkNS#;nd_Oh9dv-W$Rq$g8q({oN7%5TQ& zyHv<%V+wV(%!_Oo+*HdethLcI^haE(eeU-)zVDvuN8Um>iN)kXofD7wEOx8)^$Ooz z^yAE!TLI*o9rk;NWW<>c2j=wD{^!+)iotMgPg1JRqI%QcR7*>A(_l6*>D10~V5iBi z7QGD5an@II;{AdvzcIxD!yn_#dBgOriw>nzxI_>gTVOE3N)$Y_D&SR*{(iSDTkqFu?Uv#zkcUxz?z7{@Tco641V`yX8!uRo2hflva@tNJxMcbJ?cY#9n&L@%P;bWBA*$D*fp z@rxy41o|U}6axqLq%ZwzsJ(Y!&r{N9{4DO29I&hR#Fwx~(Deo&hEXOGRH5L#RiI@V z3eWPg6qqy9kJN(2LoLv@KNYM~E#o~+8yCUd?&ujx=uJoL)YO}@e6e(&-L?LyQ|a4N zyV*w2%A3d~`U>{g$*j;(78qsK-3EaYN!}{>PlOkF2(<1}Qx8%e84fm45@!$(+$@II z(e=Eae|lqb(e1NOaw3@$TM?-U3|29ulIGK-+-dQPM_+3l&y+uBO{M$>hsr zc94Dv)kbyf_PxHP*Rou+1dQ1a`y}$6ka)CkQB`!GlMwVEqk1`xQo*rej+A9ec}nTo z!l&wez4eTX#W>9e^*Pna`m2v09ht(UKb~l?(uk!{$$ofM2jd*>x=-PDj#ho~N_oSK z)=Ms9;3lCvT9b0BW2Iu&Zi-;u<1Go{=0;QU@DH~~SM0=m9!(@`mw2n2XY#29R4(k> zHD<_6#;+|vJwWIs_2J=@93k2VoR(vb{>8)kv10 z#dnuUyy)A;={dGk$(sjEsUob{0oKoCCun0O{WHG413avkUO@-HUY`Gi0$%U=9NfTO z_w%N&`s+HLg4rASlhjqlwE15XL?T{i51FZc7#ys#HYahvSo4jIV&DhmBbe55bobRU!mZfe%;=LyY}l0Uv@We!fte2KBP%;8_ zad2}6%oR$Yx75{bWDh_qvH`RdTtJ@n3U&-IuLJ)BuzOrr^%h(l9Q@p1 zcA%*_KoJK(_xJ!rA>SqO-z8N&&`68N{CE1Z{m5tjZQ}5!7JCv7whqqfm&UKKFi64$ zK;K=nGy<8u%O@Q;D9r(w?AJXvK+*sV5+MA)`nrGio&8HG#xGHQGC=?KYlg>PXAD)H z9UP&~u2xVN-~*K;fKRz@sR;ZHI1JYf6@e?IJY8kfFS$s8vt-n-<3c~4ST6p5;^Ao4){PpM#`gdGW?5!H=i~a5o?EbR2P11v!&7eV@JEdu za5B%iU0oF=y+|*zza^b&y6yIZZz7w*w%1jYnEg zb5wAAm%MlydJK$ppfY0Ic>EEl1xP>?gVMSfFPw2MT%>-@X|r zK+s5Q;Kwko(U{-n9g@KjndNCTg)jS7FU02npA;cr9 z89%%zQpJZ;=FRc^HxB1^!WDVKDm&#>)*}TkxD826B7^m!aQOm< zMy;tu&xigz$yVFO`_rKQx$xt}XGM19_EP0efcKw>Z&3eu1!V>X|XKJPuLgzS=#pPWrEWdl5k0HBiC8*jy5k< zk3ErCpbE)~pSC%vRLbh0qkt>G+Z7^g+bR;w#Ho9LrF#;3<5NTas5`90g=2{oUW#ig zdNg`Dlb?3cnDZP{)b2AdF$qsRlUs=<)7J~p1OXl9^O48Lw<-lBSMvo=Sz-ludrvZb z1i3+oMM#}oUzsxQG3&flRFkUwSecD*iez6gdH}=6D{HBq2IQwvIt4o`;o9y?=9S@~ zV|@U{n=I_mhlRj+t}POHcB~|;w_|uHb-fI!@g{M>c(hha21C>|Ny=|SA)5`y9i17w z-=@dn-oCW4Nm&RDbGM3xisa!+R`)E`^oYzcbyW8SxhTHPUua(Q74F1$6Po5bga~>o zm!g8k*PW+7B93b8`L(Gb7+Z%UI&F-rx0Nq|$4dLpNUCxCgxn@FsiSD?yS0NmS`Gp= zdQK6GM!y_d(jytkBfk~xVC%L^aFRy<`Z$!##m1e0DR=g$4O0F%K06CXJ+b;yXvtoODc0vPc=h0laU<^lV#78kfhaqhG-9yl-@}7JU=LCYy@F zia{e~iv1i7b3xp@{Df*<`nmAW`-0Vo;_D zXQV2*<>na4przz6Bo~meh0XV^nsS&2olIi%%?QyHq38P}5mz5yh=416d(%R=-Q7ng ztT#T`ces77xZCBnATsQVMIuWGr-NL}qWrKS*>cEj`P7?)=3|(l=V&fB0sIy>Th;uV z)Z2HywJVG1^SO9)H}!G97vI(!lT)mZlQdHfSxA{465hic@)2oyD*3_CIb)}Ne4_<{ z&6*SbyryiAomRmLgrlNAp^22DWSI4Er}I%YnpO|_BiYrunTZjk>MY^@gEvAnmN#pZ z=^W%4tHz__pgQ;|4;onV6~X9jH)`iuRne)6Ip8O7p9H-^@usWEaULe|&TF|hl4qy= zEjg2$z>3(b8ZUtxHD|xb!yuRw*+~{sm$2^DJ z%>hmQup$z2@2biw@t%tZNf^m7TE5tNwOCvCdt0cx?cur=9{P}UzS|?L63LRZxEuC{ zzLh$JgBGMpn(&G~OoC;1j`|V88+tzBB;(H44=P(bnmJwR4aD9K=!M|qFAXT9_N{l< zM)a0VG?)^cl7D3ACriXd5ng%k&w0w8C4z>E2+NH3?%rH&%QWeIP0v0a2yccTKzrQOe|KhzKR&b*I#3sI@RVkx=PVIKHRB5MAs5=T^65sSTZ)fOsY9y1!}wP(s|uy8DZw< zJkK|SP0(Yj*Vn4}zx9?X`=A-6BH*VgifIekJ~FI$fAN&fU!|;RP>+_7tww7uDi(c3 zQi1+{4Sh)_vQ!RhbJhfqKf>MXh}=m?Z(x1G(rA*Dv$4%ECr4nGoxhEUk}^r5`wV#{ z<{U9rrXdO*CrL<9rm&Nyu$13*C&m| z{;tHiaJ!e=cV5=sEuUdNSbn~umw_-G%Wq&v1(#!YW7&}>a2r4vO!UF36WIvcp% z+x;C*@VRf#z^R=>&c>~_FA+89vFA+Zdntp5WB4gw{Li!fo zl-w;mBYux;;oN>%?FFKaNM}S8f@l(jT;zqmbi%F((j{^4&Yp#~MorfU=WuP>aD#Fw ztxgVNEptxgdP)eTYjk8U>B{j#v2SU%q%H9&3zce;orEJ(b+=BZ>IgH$G#3b8t_1Dj zhV_0i3Vag#F*5uE`aM(R%Kp_0&v|}_yGi4=@t+Ul>MR(>Qlk^ue?ee!qm#cn>ev3jzeP_0PS1Y`y`{(Yg^jag zwr=^Mh+$NJN{s8rf5NYjTD&fX_I(PO&C%qce*Ppi(EAw4VkNtD>c4>ERmH=`i5o7JGDFA z8+Z=8dZPFysHzd1npC(&XI8wgdL<%v7E}~Kipsr-L?51zNH~|2ayK@KChuRy570AC z!+t&7e};D@fCiyJD4s!8Qd*G`XvM<_^b&9dL%^R{$zYwY3(H8U`*}H;0S?yhDu5a?= zK0mS{Ru1-*m-hvmI=H!tP*Y!i&>uhF1q3_(@j>=3Y*)gvnK{^jJi(42pg|Ytk2?bw z3IhiPuLc(?3HW8A0P8U?>(xIE4t_xnK0$U)W_Auic6Q;*%YQ!e&riO(hY}FBH~0FT zd;E0fzux2fl=`i^{Cw{B`v`+BRr8aouEyc=TmH-O-%z2F(tlQ>ogL^`%6Dp1)rASLFil$=SQOf`J6h|Lr}0y6)fZDG7D9a)&~sogM71 zlfJT@9vRNa96KW2y zeVYR<3G1i-Sp*}77T0*m(5ntioo z|K5uI$AbNf^%`tvZ02C^4#*8GS1xQW?iSZirmfXq#kxNFS80VozxZOpz%g?NXFIT~ zDA>^v$OVHh?+k)Ex?G+9{jKi<_Ul#P`Y5m*14}ySk2U?T@?2@~|HH38XVU+NoBz1w ze?R1hCVuPnzv}ueHT^j0zv}v-iQjttueyFqO+QZhueyF{;le$p; z^a_FelL)oPrO$`*Yj60^Z2Ax967YS$=db?AUI9(@eq^tHSy1|CzrO3F<6r6Q0Gg8j z3p%@Nzx#)s4J0zTuM7NsmB_q$>wi*f_^SfLUnc{9E6aEFP5+YR0~nD0F_xq?Za)un zxINU~j)A8R=9@g|S>aU*W8WpRnD7QP(w_@xboDC83V^Ae5W-u~e z>=xkqwC@oWE38tK*0Xw|g(Js1uG!lah;(!uz(}i2)R8?q7Tx1d*S^byWq<_phNsrv zNV~p2 z&LioF`c_1+#Mj)o@y+5H0oHnW0TK>+8YaSH#J(g~{@REQE(PbO17tX#V(N9D?~n#+ zh_^F8|3KUt;D6upJ#zzd>8Err24(WMGvH~#@fj;Q0f|qLNjLb~jR{FI_wp7fWz!oHIJs(reMsTV z>jmgy$KFFvHjqfn@>x9Z3%LC8`F89S7b!9Yn9*Cv37;ZONN?l5N=*zPw4}g)N+XJs z5+IO;CWlLKuY=AfM+TWDUE)rfVHY;s!EMKz!Z?W^JBHbMZ;7mob@b??@x_xyvNT55 zx!W1GnT8FZ>431MN=TN3xs7PVj+0wm#jeNtt)KD8B_ZCTh(Y%%eZ1dGr|xiik$ zZlZGnF|hnVl4N)(G5mW8;5XZoV65HVs-}>&wa=fmjUs%EFnn+ispA!(f$d%ZtGSpz zRPYI+OtKYjhdbd{H3}H(t;b|-otj1>LN=4l_q-oTX2)wNnVsgMq&FeHD_w9eyH7f6 za40=IxP`_%{XCjyd$UAbfB;q;21h>GG|LcFwx+{)hkAoZgj3iqFS#oH0OxBn{@pam z{pzZl&CmB@nHCBVo{qAqkZn7{XUK13F4#A4V+t7#kNbFa`c@QSYSBvLTO|f%5ssrn&xW`ie*6Qo^w8b} zBtbSy^jI_**@JI$ZPi=k-B$zmR_G3-xH>&pZr8!L) z_`{1v6ok6s19uQZqMJOK)}3cLVR+f+d=EG_mr@;?OqTC-v&uWuxMDUIz+RvrB(CsLM_DV3l`!t*+i4ao0H zjpvB;lp%J*!{KA#nHzoAj8jN~9c!wO@eC$-Y978FZqw?~vbyzColG<~X1kf&yK)RF zaz~)Et_arv(cR^*Y!}B6G;#91C3R#fQ#m`^ zYsDJZKb<8#HN7F_eXfK{?0V#@Bgl<=hGP_(uexkXk<#06pkg$5#9=XzMvpH@?YnYD z({N*!)v@-Mdk^=Ylw1EVyUKUO%kMF5U-1S05udu;RsJ3xbM@B$%C7Q1*-HKmFanSp z{u5v%T&p8?oEP)`8uJNKwjv?PyL3+FInR5_noJ*AdjpyRXj`!hs0GaWIG)ATD|*1i z^MB3m%z;C~_MH4?1oHkixP^EyxY*;qd-4hnZhSIV!wrG>{@G0UTUEk0=^-0dFTnL5 z}SM;+}{dGrPr{C>DO)bt6E3uEv|4ErMC(Ij;||AW zR+;tMip4zVBJcPZ=kFZLOwqi0pl)Y66<8O6?1 zC2{x61hYuIxR#PkPUwT_fv%WO1O{Uqkvz*|{v+H-r_Y_;k7sdjk7Q~7ANJlluF7qF z_okJS?nYWbnB)YdK^p1q4(aYrrMm>_knWO{Mq26a4v|vM1Fp5#+Iz3Hw(FdIexLU} zAOB%0bIxbp++)n~jQHNym6Rz2^}@?PGw1?!aXoDS0dq;}tR-b7j!&5ndzmmIVzf{L zX=`Wr!84Of7~$@QbKQ8jj-*YgOHR?ZbR#^eN_AgnDKacKSIUKlg$#_UK+~>0#f1ZO zTgPD~^V-3&U;$xv;F#G+BwNou`VAD)1EPnI?iC1ov%qzfmwDm#*_|opf+OTa>JgU` z==Z^);;ehAAohJ3Q%bZ3qNpPw*?2u?Z^4IBnFvQTucX{b%k6Www&HMPh9Bg?bfzbX zPc?nB5@wi?D1k8=2~J8PSq`Ll1S5%Z<&kLQ2;Z?sZL%L2WY5$4p*=|DSQQlHsk--w zy`gXBgj0y8+$i|TG@;8$9J&a(s(?NYyx}^k4;?v=ji!oRv}0_Z#p$rrmXz9uDiyTp zx;;nSoXyejn3wXq=BI;?v)4z8W{PYt6zl2e60&U5qv;FdwG|&dXY&JzNF7&G)o(`8 zD!B0o=|&}03@P_{%1+F|jDf3g6LV4u2BwW#6owvc4bvtHc%hIfs*Vxq631g}(Vw)& zri$Rxtsz=t6|R@(C`xG8_t3Xzo-s~gk<4J^FZd0?<-SV9; z<=8E+rUC)e_<7j|m%UK)2HL>Pey^3tVVAe@#T~IZ_UkY_aDgL7o|@OZF=#n&Dpsii zXugid?YGwj+H@gy^iO=S5r1EBKgibZFa-IXbxxCQt< zPt>t{@OFjL;V3*Knb5pWdt~VWd36s^9#$2!%j6kU4;IWIfcELdZ%b0N!q zaljlAv{>33uARf2LmXYyhC9OR5X_5^ikQMa!9pWM?nZq2O6m7ZnjV_gXvtSs zr=GNw)Ku;H@+>V82aFwqcA9xUn{|!kR9Iek>H?JQw4G6lI5gGQUFWv|2nbRCja9?lNBn+#XZwp)!*3^m z-=!YE>$%*jVgf54fOZ6=6ag*le;D(z=`-mv833Nb`YddKMF0qNyXg*S&48HnSXlJ| zi$fNJA8;#s2ACo;u>$9ce_~9zX9DJ(On_}J;KB?TuClYTb8`NO%FOquz)XK8sCd_Ce-ITQ_6V$YSODEl zz!(E`Yx!^&l^!RUg`Gv;2*?%doh&93AiN5w;4m41*bIPk3Bcj>2lP6>=L)F2`m?C+ zy3p^Ux=jxt!UMbm$ki>m3K$~;x~jkC$_O|l0fX4}7>rn1fLt+wbZ?_#0kk^-V@yC_ zoI{W42MlU&RYb*DS(w=W#IO@^9{$HN`M-y${vXUC?!H3bv-Ase3g~10=jAA%I0?)l zPLvn#+Y8`A@JH@SnQp&N%TB9F-fA0zW{}0^1{FldJ_Vm`oNAvjK*-6htVfPOLX^J- z^!)8lI;@hPhWE}m*xD5(8SQAw^%NQ)@V>JVF^V?~V72%fOLLY;QxI!w(JUtSuG->j z^z6w*Daq8FTNIb-A$P7q{M$~F9THs*L`Mh4R}5@Or3;jm>lU3b4;P|5yRKI9GCeR& z$?RHiLS=SIqLSZ4h7;tR5*W1;b@6-hR?WxN$TiMtIn#U~);K&ImmZ9-VoMNcBULAQ zfHZ$L))Q!C5x8OWNPiU#Ek;6-Ovs8urKqQjJVql=t@uW=MVq=+ymA(TE#{`sYwIpo-92Jws{yvs5~1ojU)3>heS5T@EBc}Ao{bQBq?FDLy?uq3Kk#ZzEm ziB9($Oi{};4n5tbC0{HE3lm^2jkz3nW-Sp(u&O{+j z7dFdT+pED-onv+%MBTPi!G}Z)MEUUIp=6-zyE4!2T#pW=13@wgF<9=8BlHf%dU;J! zyj2+Bf}Ye|0feA8#KOt_(GO*}v#b-Xhnp5ogEB~`<~rF$Z58%Ou+sh%QVM% z30-xI2hJr-4kpd*BOuRN0f4V|jj(c3B5d}g9CDs%=*seX()@x>71m!YUFc$AT!f=m z*rLI@QAg(k?q+b?HopqY^y_O-2%&6w*)DtxI{1EfgkKrfgRcR&t%rFX4v3hWqMDiz zuP-RdScDIIp)6p(#P4)l^T9LCB#IIZ6)?@h*e}+PG8&|$RU%iOti?j}&z`)7KO@ZP zYPDwNNz7hmbFsZXVTXe^NqHv@r3$9z?+bJ)Qz4HT&l3<^#Xd<5>RB37`RWkW2wN)} zK_Z+CnHaM{xDW)^lj-;<_!YjR(lsJC7bV;;yCjA#$Ij5kG4eJ1r#ebnsO+qzit;DE z+xr-mq-fbx2vy}LzCNpb>Ryz|)$}3IR`dcLv+DLO!pGr>_mMtdaTNP4u8nquc-VH&nL&TC zPa~!rGKAqvX*5`@RSUD1A90_B=LS@Xp9LIFqAIj7ne*Uau8P{*BhrH;O9lFo#)}gd z&KBKzj>b5VKVzP~ZIy__=*Oo==1$Ka%(UO_Fv3iHeS}<;6*rKL@IV)%?CyS*@lPH76TG66GdF2Qtp+zKhOC=_yi;7=b2nJ!8j%=ynTYHRQVewKFE@ zf<)sDm#sCr>KIvusd^gcC!tnFE~~*V@bB(%3Oy(b<{Ul_{+2T*eN|U_k8~XAT+rJK zrqv*IVT5zc`MkKFvDf-Y=S`4PCm|cCgoZIg$z^~}MZ>JIeakBBt`tZjVlXvr& zf0}Ik0t?+1d;UwU#a$e~yHf$Tc}BpAp7qw+0=Qvue%G`E%q@OVX)|PJVgoa?-I|ZG z07~3!fGx2uJ3IK+-qsK>E@uXw{{i2h|9k`eZF%{7x$E0m4?sQve$k8^faL~YpZwj& z84!?W0VYAZfSx)a;S3l`0n-k4Jtm+c1ek+>+4Xgq^nSn}{Ff;Z+n+h9GXvEp|7hI* z;S!L?&j2%~J0ozpKfdGsOEm}}w8!?nA4mzZ0W#co(@o%=KeSKG_S+2fmm4!Hkn;b) z9QrG_-MX>@i+gLBJjrC>#yp#{C&``^nrFmbGA(HIAXZc&RWw^b&ZepMYwFj2k5_QC zebSB+_aG@g&24&qZMeETAc_0*plBv&;`59U&Cy|9-y3oqW>3qgd{M+A$ynSYYn3j& z#?UOzaJ!?jw*4j3&tfeo0t8qU$jd!FVp{b`A3GcLl8vzjVL~N%^W(x8k?ClezzHc_}AO4Bha3Vt|~Rl9>u^i2KccGwD-V z@)e4D8v##G6-pZgl_)c3MyehC0I!%aFYQv&boXs70{yJr;~d0*vxJX~sOKv()@((Z zxIL&2HN6#5baMRp2yv}P96o_0lXIq+D<#<7JkMc??e%N7&b~DSPGA}^(%K@zYJy{P z;+GHN3hb4P>!W9^M>4Ks~bRKsl_YDMBD7-fl~Ri0x_lW@~nN`Mh=r zCIE4bUH{pK{W;FK5T{d7UwJSL`~c3JK58<}y^`WtwEdSB8K5}zcZd-VGS5I4pN?X_ zE!vZbw;q9Ww+ZD}uBrPS<-?Zh1Ih(YN^P5i22s4;3Z#jY`$!1DK!&M$r%Nh=Q`D9k zU-ZL0h;rtQjvFKuFMmKv5k-A7^wg@m!3!x;Er34Lc{XnUdJ%;vLi2;Pc-9lCg!m6U zay*9*w=%2<^5*(pWLVp2=t$|xWG0^ZamGSdjgE}IE;g}SbvSUJg@uTW(w?J6-tPnx zN;}fewvvriKCE`?ESZWvU<=d_GvW!trM1<{@v%mF=n>X|#zr zz4e5duW>Og4mxxe#0nCc+N#W@rjGjFF*<7uefVLPDlfbj7Sv2v3pxcFQKEJ-Q_kh6V&*kc0CDR zmsH(`@D?#Iv^&Rvr6AXN<`Rd#huE{al)=hM@;%dZ?`bp|kg^#%ZTMOZ+)5tYedSE7 zh%~>Ng#IAnuhcq_HPAV|h-j1}E3mJJPZ)>cdc4r}sqt?nMizV%&5wk^IdH5~^d4QP zj?xM;MnPkq76Jykk>q1ESV6`HtNg|NnI%FWqZP;{Y@=76C$uI>=(zC{!ZIogNHTIb zoO)y=51>m^WkBU!;N@*-fNDsQF7?L>o+Xf0QegNTJm_z3_OIl9!$&;X)V}gXH?g5O zQHS$nOXwjn?V=wFe~bF^DhTopnP1qrSCqIq41yH~ygS6|`dVBkF#| zuECZW_p|4ti}SdQu8=t&hg`DN)M^RLQsgdneL9KpV6dQqUVSYvJJ)Uenj()DV}U{K z$bRHtbHg!8CvCS)df!Va{Sxw(kakUn{v3(~xQm`z+L+*R=ko<-oq%__bNls^<7AeD zIUatwuq|Kdx6RbU_C;40&Ykv9Bt7F)=k=x>UvQocGQ}@q9Ya6}K8F+){}>nD6!aP! zjwPVE;yi>74U3OG8(R@vu|+u}Q6Q$cyh?!i!0_Yo8S}70Px4!@xh#^gP9FL!^Poq% z7jZVo198urCcq6!TDfO^Vz6T;P_W})i$1+(vTU?$G8NP@V6B&Y#`ii|GyVhP38#BT z?m(Yl(6D7g2jnix*ihNyEyvJlZ{O$P53-&eSEs*~Jq1;gZXM|4TlF_{jt7-^VJi}C zLbaVwTWtH3%H4~M>bEj*7FQ7M-U_(sWO=mXl7u{!&2T~#NiB>iZI+wy#=_&ZjdUej zHOZ_I>qH#}gqq##5wnhEMEr|}lm>c-3)Qsa@hTE0BI<9wVGE7zvORf`m`9Cy?;ndC zI#Feg*&&cpWTrWBLy#I{bmm$>(tFXw8FO&Pe6vEFu8KX%C?1^%C15l?(4b8fAb9T7 zL@gq`f#+>47izm4d>q>HhHHBVoh@ipWdmoCY$!p0jyr@XT{m!4W<2=C-zl~ zTYRd^Z@nvoUVgYf{bbSiRN@ownDhH@{b?PfA3j59O|IfwO-KX}Fpnis+bb&{m}>P? z8sQ*ZAyd{zKUO0$K&PrSv`G}xP=CCednu0kkjdv=zWBMwSuJVAlD3&7#Y%reAp7&| zNXrd`-n|fQq=Z3~9*vwyPpi{TgB^lQ-qk^?S}&NWx;+Bv*Je97drHMSQ6IzGAodzQ zYjLo?w1&+>Zisk#jIPPtrCm94_-0mrK+myXgL?xX#gUzhL|{(B_(PZc)ivoG->5e> zO!oYp1|yTp{&iZd%^RmaB7MEswt`CheklfmHh3cwKQ!<(bWK z2DE%6JS7^w##piO0y9J6)zG zI~%PE-ke_Ll5cGJQH5RONZtc-9}W1Z>9n{<{Du&l^Wlx(5@UTfI#uX(RH~~T+!eBpjAQ@sY5uLbas6+=Xr`cV z!6Rz~<}zJ7`sCEzvJ}$Mo1NjDfw{{E0So_OYiCyd0PU!OtCn#{kzEd+s}r_)NR+uC z8583eYa_9!VqlzAc{Ki^VD*Z6H?`YRgNGmsdD@esl_>L_DIc7<3zuLvQ`bpJwn{jV z8|gmhtFQ@HWy`0Ixoy};W=Z_Cj`LmC0>#?OITq`goywBwe6OCQzc1)wO&uGEG-t%6 zl)A4JK1LK0m&+9Q~Ty<>>UEz)t(W&kmIC6xMMcj;L0;8 zWg6KKPocfDI@RNG1N29oDUqVR+F30qN_%fIFA^;{Fsjqzb=ZUm>o%~BO32J+-)pwB zM#X075hKQ64GLb)6B{w9OHa=eBb|gAxm-WX!aR#|>J-h)t%%~m)i+^A=t2(`cWekx zdu%zEJ9bEz%_omB^@4njB5HY>@1{`}VT*yvEE#`yaL!MnUoa0$d)>UALtA}D0R=|> zW<>LCb#Lzx8o%-8km9oCy`@4W%!zg+JhfAthn^$JTne+oa&N=)Hb~-AHYU6vd91D7Z9U98JAdAfGTUFaRst5}A0EIefysuh*2!LiHq~vi&S?`7EjX6pPn} zBx?*O;&bWY@)?PTDFflRuYLRH6n338&*@U z{n%?CYEfs3=j*C;>GUCZZ`7Yi5!r5#7bqEbzQt;O`Yw5J^h=u3AT(vBBM&nf(#J5> z;}lstx$PBS^yWSSDJmRLBvKnQ3>8b#n_^t#-p*hn+Af(OlXEKNhzTQ3v843RBatbMNMfk+eK_E`B`uPS5NPBdxjp8Er-rH`2?B#W+%?KX?FXn z0Iw2;<{DcmF8TW<6*DMt0d=es{V>5E>~S@3Up=oJFp+MB#E|(!*&Ufk|1wa+j&>VW zf7;+uTr7uCG$p~lGLqG17Th&hj)F|GmogBt8nevK>g?0i;;HzhP_u=W)|V)kA;a9e za6X&_pRK{t3*lS;9B$u}j6>f*Vn`>M3)nX_r7d~+Um!YA+gTH2pU7R6ei@2AG7xDj z6Zqhb%>vVniP_jYy<%(!`HT>SzTh>e4B9*W& zaVb@^=GA#ooWWPcB2V=`Y$PkbHIPwzB{P`3$JL#tSfHvX!K0j^r;95nP~jJAKum() zr!Z^Jn+iE$wbVvEAHiwU8syD~L4st1nk{_|a$4xRvlnsg4T|-xv z0#VZj89n^7?8In&Q96svcxG5M(}b6_^Hra)1c;OxOZ2a@o7J$anWu}R8}nmYag?Rr ziuL(W29L(7@5?m|Ir;=Ni!cmE_SLYrq#)9{i6ULASa$G_``GS$+es)iAJ+Y*(cMwC zzcA(%^YVVOAMql-S4WHXnA{i7E^7_6Z_KXrbKXdg7; z$Tvg_bG<^ci7h@{2gC+J?6@CGr+BHuTMo3cGxhGpIvhq?wXeG_Q28{u{4c?wDn9Nl$Wc^ z)V2aqAX4!!Fc&9czO}B1dGXGg1*+OL#S3A{s@pT$HK^g4H_#~mg)#}OjR$@C%T&x%SguJQ;Li{O!N;7Fp?ljgDP_c;DDt4$s-;v=2-U`h1a)PijU3E`UrhNP1YJjWyw7xh7;*F6c) ze==$Q;WEfZmug}FfC}i7p8VQDEH0BgBKposML%08@b&zD zblOZ$Rs*-&#oF~&)NAu}1ouj{vnnf%hd!AtBe^*qfk|aK*<{2u@FFW{`7BKfPf5#^ zJ|YZ1kBS2!1ZcI z_o+Do4Jv-AfXo9bAdg>PiT-g*-|ky|-;(^R3P`r^XQ~SSoeIc*)JW=CSm~SJl|cT! z0+RhV!t_@?ynm{IWaju;0r|56@>V(%sFC`$!0G>i3P|AO{J&lS`GeQ|AE|)UXJzH! z;9xOeU@`zu1y+4FW(F|W0L;Lm%MKuTfa53&i|(&wiodI#{3p8om*UFbRWaUGk232q zv9TM1^#QvdJ>XEE6EMcrH82D-0KmARAv@r)qt9&c>!pA9-rp|$vjXzpYu5i!0r>~x zwXN=ppJk7~b)R1=G5#++{``=?mDHc<`kAi3m4UzY;-9_iXS)7Y2L9HIfA+5bTDty5 z+2b9q@qG#WTiN5?8Wf;E{!#XLr!V^JLfOjt)&SsknaT!~L$b5pYX4hWTG`vFGk^Ce z1R#)Kn4|Anq`?30upr>^7Z95L7ZCcpmH2;Rl72BZl=~qj32;BWqose-fBo)-_-|xfv#b=WlIGqL-^jVo1SPb=msB{es7&w_gK(YW}8|a`0;5$dpA50b})1M*GcU}G8lLeTd-nAis z*aKezR^Z{6HUxoKL3$i4dJJGg79gzK^_!j{@B;+a1sSq28*%90e$=3TM?A5=!5y8&I~E-W@?Mu3%O1^pu|7DF(n9t((rfrH)900>K;g8|HHz{0@7 z!OEh`X21lX-aq1%`W>!k2ebcKSikMWeQ(3>Uqs+r#t8n$7ZLa@AZd4vXsBnT&&dMl zFN2s_m~Y`gK=j8@53q1G02zSU4fMc3W`8(a9AMx}`-j=O8#=x>;{UV~^WVkr?pVdU zp-)PX1K<|#XwM(T@a{&~?|i+|Vm#RDy4q$k<<=V3N#dt?_wrDV$8b%<$ zQ>ezdRvy-M{_-`;50|6n^uw%c*uX}~+q3~FhA z(7Fa_o{vSUgU$L_-~4f2m}{9D1+0r#?(7xo)mDZoD=Jp*z0-#ow0 z=tMASm{IGX)|_$Uh=sfqpC9(r-aX(YnXFxFTF+w_fzKHbVr_JZ_FBe6Km5k zQ#n50Rhy|^Nsr<|iLsJx+soBR7zNzWJjc@~Rh3vCfjb>eZTO`?+!95eP zinW%#PnKTv8_DLIWx`Iik6|NmA}F07cBoyt1^XkO1* za1E6lOcHf0Oz`wszKLHilfL9hs9`+kfP%w#I|M1%G^+|SrBDnve_V}_Lv9Y$y+%`V z{(@Tf6}bQn7lutivlEzcqa%|}?-@c6lLzPKt9BcYXP#;YpY+}}FC0wIMG^5X)M}a{ z)M%IIvRbc&U+egWJ?^n-a9&V`-FS(o2piX-`Rr@yMn37My-@xBh7VPZj1Br4X0^rO zDvK${u#QXpMuQzq%yYNrya%5@z3f@dwIYvki^vobH=6VrNt zxSU?LV3Iy!=uz}hb;h%uk2rd|+8Zl+dgxUw0(& z#q}_Sm?V*`H_?|ZL!x)P?e*yr<|5Gkk%0mTtJx%V7RQVh#3k5F6TlEn!8kkfm` z8;j{q6i&|;YJ&pd$Q1A}b%%zLi3Jdc*SfonD;VDwerZYOQ#t`h%3$&H}5G&-KyOO>3UFoa$ z-9|BR)QrSvl#&>WaKsX+T1Yh2&b85suD6VNY;MYPPib?DWLW0(|QF60SldJvxF81xIgXng~SZLRWK7qa~qtB^m``U`))z@~FP511ag<)KtP=w zEJdY;)$V)WS`jh0%@gh|# zn%8I`{VBpM$?2%P<>cMW=x6~U*q2`dA!#Spk7!1NI1{>tld(=0<=BZ?m!tQKs*xtt zqzfJBSh=W*z26p?jX}IFVh`K_<}h34bg5t0isW4MJdZ5H#B8P*7xr;b)RUF9HCoDd zKhJPf;;iIwF*a`zy4hiE+jf=AL+n{OUqE+M>PASGOE{jmb;aA{Dr1@D7}sGPiMup> zQ;}KA_Vq*MO!dNIW8|W0e{IPuufT<@_EO+&H^Vbwt7T$J_oo`ko?;wY&oXh^2oFcy zW|@}I3;6CCqJjzpy+Yxf!bbAX&?S9Lj~~XdZe|EnLcPMyH)l)V$D#r^U~WbhVaixA zcd}Zr)ZlcCMbgYNP!=+^7ZWBU)U~9EMP%xze1fpiYPZHUh)#h^(t?_sNTbhYsO!9D z?SBxXW)snuZ#GM@$gag5l55&T;v(VMuYQQ4;D#Yx)co}GWdA0KVg4DF7i5*1B&7MN z2$MNPD)xKtYUq2P?_0hxY`V;FdXd(hR0O>gS`UNpf2SseD4;eG0E_x zXaa7^!+Mj+aaBo9k(ESa-vR|FT7ew=GNm$f4x08tzc^DeJt>LwM$$3;L69mG+lD=v zWs;7tqqw(x+#;I@;VFyH*)_eAMI}NGh9YtYo#wcRj@5e;bMaB-YEQB8S2E&i6Qe?W zl@Q+;j!^jQKhrtD2h2-+iT3%3Zy_)88r4n3E@Vngb-xmm*(DM!WM)h=?*WzLi#0c1w9bMmN+uYIslm{ZWij*r;R_|(8h5PG}O3dekrqxww` zSf;ncryYi%QM*$Mwl^WaKoeVUh8^xrT}w}>QOUUb!C;`Q&VF!=h~_OFxgfi$yjL+^ z_96TF^?tG|gq_deMd^s`=M${(X)I71Z_O@M3s{)=QMv(mqUg;NM@JI+T4xGU>j( zHU+C{78zBLBI6{b>8*~-FSbVr9dfeFtpNefydK-rpggyQS>S=?t@X1w%_l)J_Ymwk ztQ;pDtM%V1fp@0}pA?iRvz~Usgb?T8e{s?qKYTqAkGgTu#^91MK~rDef{d|OHW^Vh z#h^;pznbaTV7`nUq?>vCRUz!yEZqs=%p~u6tkNRpvYlK`pn(?Fx)OAg*CZZI5X`@* zeC$)_k4-UDKxlW2XnS{Jo;=TOB+#b{R zma!X_?kmlwm#Gik)Qz~BAr6jrf&rTAny zC>sYOY)ev+!N}%i{>%Vo^9A7 z#9}6TYCi8P_GgZIe1ev0p0$oqmheGW@Y%p#1{d>XoptI>55wF@J^x~!N-!zL>K4)` z#8pdrpOlwNU@CL+rj5{-T!NqsfwYeN#*y!ttL{Aqv(}e9#eMgkLEU(5*Tw@~nHaVA z4fyq99xydpqZB3Lf>AN()rIN?|j;j}jQ(KACWwMi>oSl1`=nEWbsbs71}FGeg! z?X_+?Bo}zK&n_@@APgu>yZ?~M0P2;0WitLj-~1;F$JFS-TM_c^--(c?{IdvoIz@X0 zMK-)6AVPi`b%_v{W^vg@EdF@(C6DI~-WKn>Ee0H9(gK~w4$@xkSJENHc9*A)F&4WB z503X&7yGxyvN+ku-);@+%^Q1|tMf@;Dw)3i3|^})AVoYX8=%39(1{t_TldLeE{qbr z6(P6k89Kt|TEPc}ER1v&)fYKUZG7Gfz^+IoMt$*K<)ecQN7$>GO0ncz`lO02Rs?GD z8^wnQ5BIdk`k&S}YmM;`BZdZ;Ce2oerIs0IvN}Sm=3L`#7fKeZ2ts8;dpXESrd>LEFo+man4o-MwC6lgovs5z?<7t0KZ7s10xW z?Hg?7W8;Y{l;I{x1Z?p2LdMXRd;#xe;X7XEM=~m@9$|hfRk7ru54&o-qDUGPpI2%^ z8q1`M6QX&`V&X5GQ%f4!ymCew@VGGRvHCum2CW0GlSZnW{PE~2%?Ho8Q-O_Ly(F@x z24)InZodb_j%~%ffNv>k6t+AnnN>huiGvEOyID6-z@lbzx1aD`K@63PYv>a(kB1^p$0k2{{;f)2e0`* zLf{y&u>h6ChPMLv28Il*%zAnZdcgiPAke|V$<7MwRkJg*{ff!_O#+7<(A!{V0`|87 zln2-)1##*!=<0(2cQ{=TvpyRei>@x~KQ8@~!1+Pfh<^|`e=uGf{^W0do|pdD&P)H+ zh5qWrKilN5vh#1x{Y=-trR1-E@iSe2m7RZk?q|CGEhT^Ti=XNGtL*&SbAOetzro+! zozs3ldHr=g2^`+u;WNKO95{YM9R5;h@VkjGaDh9%=09;YoWGzlKgQL3ml6D(9685# z)t5h#BfpE|cklxUfI{w8<>sx z&!YMbefa-6V*uoe^ScBD-! z_?ch|1{?DIislR=Hy;S}GW}Zi8z`?K*+62_Idzp17fHxbS^4AV z@ujejPI9wf!V-$Q!nCU*^{UllRo8^Vd2ccdbA`yHa$l(sVb|Abud1eRNEfp^t9xj< zi_YivlNUv^537J271*Vgi_2(h{^ogFKJECLbw< z{dIKqHJ5mRv{|TMA1Xu>wM3JyY*^!0t~ja-j1W4pTs~JFzR@Z_uN}u7slDd>9%wJ{ zQ)fSi5Q<0IFzy?%UP(D{1rK<+H2X$llf<=h@C))e3I;W7XD2m-E8q)+8|(~WUYwPR{G!>XBpnfv%XVcvmDcqA$t0G$=ea`IXU8y&FY|mh zvr#i;7R?u(GJ>_1SDJGn4vknS7J1`IC4KqF*~yAQktFib0(=Q@jO+%J$!uqzTjr78 zSnbbz*4hnEBV}n?&KXT&7F|Wx4fve>T0%lbab3Xl%ay(9h~ka{t;R!2$_Is z7kz=+u6>RUEt9z-ddLXk;;^shBQ9&+m{O+=4;eQojCKVhy4)*gWK&e4NOG1y6b5Cy ze9ph);UzQ>Uc4(ai5{efv2Pv}j5I$3A7v|*Gx zd|%_Z8ffSl=NC5N3xqxMyjCUls>h602VzlDXVss^=eb^yzWp-DyTfqcuXn=Dh=xq| zo`ibdyqzw{s@ZtqYBz;ri3reW;u`iq3*( z>^ycle%`o5spiIvZa0{P#8^(8j@6q58xpVa#_8U?mx>H&Y#?r{Uk$VmPKrU>-jXdq zSabGc7iSZOA6)elREq13*K?Vih0s;}B>FKGib#%BTc?+SU zi=3gb75%-vp60Sb293+=b%))wPP|IoFQF4Su)eTu_)5YX>=+OEoZBXN0aD*B@w^rh zZw;hAyh&3ug1Dt&^!}^KajFDnOfZA!LXtO%e?5M%wVP>WpCpS3BO1}LT6W*|Dxf8@ zIlty_vMHPN1j^oOei%uyw|}kC2-j`q0P0>e6;1Lqu?I`))*<-I{jnR|_fR6XS|a*n zuP+6q?vYMCJUP_u2EqqlnFKQqDXtp5h*E zL7ZjLYWsLF3o|Cm2VuBC;o{-%(?3v7DkgD(refRm#6x&H5Gr18A}K{1)nXoFX=kC1 zFEWNSI685ljDY!BCvTrmf&}zs;cGg_xuZp?OjY64U}G%X5tc`M+Qq8zR1cZa)b)JZ z-cN`YqQ0)6Us+mP_gOhVV;V>*=KK(}SgBXxOVySqLHbS@5-R>fvzd_|cCrJ>dmGYc z&q~UNWSDcA%VL;^L2$|5K8^-V@n*;-_?$0wALv5|sTPu#b=uLLU`3+E=sujj@)jf> zV<)ECs+NGKY%@Q{+I_DaV3_K1U#5jo92dhmvRjL1B+nBPw!4D*CTC;E@(u5j8JDp0 z0~)-e*~9KYBt>F-biC1C=Xx(ZJlQ3@k^6N6!B225mC`Qq=t#GW?W@GYmwjO_+6&9% zzkEEGiHi$}vzgyOP~!hAfik@K<;~KvDQ)fM_%z1D6pNlQ1jkzX`-{kmffyb!2x=(UyjQ&R zCD4aor0YtIdanvugv|FN)?gY?)vVGKps6EVp{a8v&`?E%FbqO{sGx*rwY&LXLHlj_ z@cT;JRPtw!5hnrQc}%T^c<~Ta&uaICG!oj zYW+(w~8pUgLCmqodn3tf!gFQd$9Kx$8=u zTC1f&vne=%POD)rt*-e5HZ`nK{nN!GVow}@h}Qww2VFr6w&iQ0G}M(E61qg9ght$I zS$uAcISz^Kfk<`waVf-e{9a#;GU=pn86;uf=*A7Reu8+2rPx0EymZa~rHhuU8)1y9 zTn2y6i||qjb6oAs(ghe|k+>6#R{Z8-p5=vQ!m50t^>w&~3`);AZ9Y%PuIY2~Y=llU zb)B$I>v5$l+~`u`647*E@9+ROOCMnXh2AV`C8!o~!E_gX0 z^xo()2O%cL;n*`16nT&7P?A#DhaPTJyMi>H>#&CUTPh@Ts$iDA<`lyBeAG==LGsug z?ooG}-kFOApw@9Xz70BdiBC2-R8K4Qmrvj!IJY2+AQlvQzM50Hd$M}WCevJZ@`dw7 zQBnHzA}!WE1b!>u+R=pbR1-{_%qpkpbDQB*4!rtugDoL7=? z!G#I&oKIe87NfV@ic&N7x(teY%?3t=*??tY1F@pZNY+#0M2EO-LUV|N*xnw{o6`yF&dqq<9i0zNswW*8-n zIG~4K`9BHf_8rQ57_5DIR~W6<4m|x{vU6snx`FB19f#?m)4PRcB9jZLp?B!CRHrVmWU%) zU%S~s`dmiiaxfW$iKq|XhixqSAS85fN&FB#M{^&68EMP&y*%PcHvT*I1AT#9y38 zTQV?sS~^DNC>tYPSvncb-oGJ1%&KT?Q(#A29h(^?mY##HluFZxXE9fEdmes5X8B3N z{*mZKsP~G7xQZw4j>NI^JLJy^vWKAl!@QoyeU={a2Jd)3R(*aO$4xdx4l*_&+zD_> z7qa{$Cl7W+-RLzxe;!l+c^nBTvz0Qa#BTE({qZItEWK#{F^Azk>v+vKZ);IE5A(;<1m{k==>D| z?E`d4X*bSwoxaI?&79bBfv`jxg*hIfRSQ`4Je`^9NQ=@Y50Px9TdTkEYrugK7mZWX zymfPu@x0}EtV}jd+>7qp_^I7Mt7T;OG{CFCqOJ|Tdz3NvRP^yl6gdRVE0NtQG;JD= zr#R40%4J2I`wgZhnQdR^zv4@8qLhPm z{u1BQp%>CA+RkOED@Pg8H^Oj=5VhH%%4D6emEO7;8U{k!u@d((6+%!acM~gU95ScR z6`y`2Er?useIM=t`LL-5H1dZ&s zuj?>XJQ4FZ6cde^9xU3+j2KtWPc^7~F(tSq#)7|fWt{EhI-$;p&nMTWw4M6R{gVF{ z8aeljE8c~2JYHX1{C2p;Plz8id1}VKSJ_g{KuYaVRQ2I9^>|t#GQjzhQ7qvtH1c^n z{0S98(|HJ|_Xt$o{X;NXV<13RwUe!K*ytyoE+IZ=sQe z(UYh3EgEAyJnWc=W1xDYEKc1I0uqPqVqv2upw%Xj+rSn}*SFkn_iml*(K+RRfksMW z1eeCi;ALy9TSw}G4voOg>RMh@BrB`$gw1V6s@(Fze}hI$67Qf9CT`FMf{afzG?l!D zmEH6+Hj8sDvNVQ@W#(&bW^IpToLY`rF;G%$(_3e}cuhsRkmqW~!}qhqt@tt3yZ59K zv=!X6UAx}#)3W)_SVQJb#XdoCi8X%A&aY>Cv{HI(5Oq{+1N7!nQwiR>!y zkDL29M(D3}TfU1J|2L@-I}2S$!+$^{hQFsqIDaEqe%+_~XKIA?CpGd@x8?sm-4@pW z3)ILDUh{v18Ub@Kae!Gt`hdba8=%|5%E8H?s|P?H94v+$hDMy6M*7T#|C`hZli_zZ zgu#Fl1QfAx-d_5)u2dfc6h;C_3ZQV${OhHEQX~I6)X2Y#*FT|=zdE)0w0$b_NwRnJ4R5<->HD#!6BS?iZ9=ny#FG)a`)8t=>HGR0sq*a=!cAl z?*6=g+A(70Wd2Wz2mZ>v;ebJX^VK8gY;X2w+4(Ol)9k5P_H-6${d}tA(`I!NV`#e z=-Zwu#SpBNF*@uk#o}eop)Mmtr<5IWPm92kw~RBHmIP=ozCr0Hzj`~SvNlbnmqrkm zNP(6TG?6@Cd%hjhbaNVZeom%lOqW0+Oi119ak{adhZi9oR~`Vzces7N&W_7$vFhgj zE_UxCr|8QFmvX@qp>o2`cO%oQ^?lhP`X1CsykRSni}k!8?J>`DE5{k7Y1T17JWC2F zE$y|{3bIIWU0;uA7OOgj!-l@JTrEGsioCZWRk(~!`o3~(O)^<4Pjq6%C=M@2*bK12 z)_~2hu7=g(emA|OpOK!fj>tO4lQW#e7nj-EM%m<7LJ+D(YK~Z90?WE7hf^5&P9y|$ zyvrR_j(EtR{zx$?>ZzIu6MO>eAQOYHSXvZs9m3KqVH0OPkGM}hnHqI#&4Cbao#mp` zQs*#O1-l|-Qb~2{V3FiQl(hFmg6P9qMdfEyeiJwir76w04+x7SljxDB4k?! zYEs07l4ffXBcF|Yyn0XMMhT&Ka3uB#&A|LAzB)8zIm7$I9e0FxgHvzqK9aZkLabGk zH07sg&ZH4;Tyw?j*Eb_UjGYi=vC%yW(;K3HdW?mh(6$g#xc?+hrb>EE(;%mAvL`$q zi}Qio{gyc?dXqS+sW(&u{+xy#FQF1GBj;&oA+Lyz}C<}_?^g_|bTu~4O63S`@k31NJBo9`M)lsrH z;Y>)Rr8E{7NE!`$Yu;JuMIwN^3vEF_J*8pVt6(Z~Oj3rG7x}*8Sy2v*r95ZW6v@-1 zkc+RN6im`IsJQv*;b^FsUZa@{jK@#MF_sdOy;j5MH`xY3OSU$hT-)ggATSdMFR!6V?5PpFLi`FlHW zx}kdmt}RE)HIK09s^2$F#t@WSrew5{-D4)ymuUUUV1QCZR!*we?yKjE3r$Ua9!9cPikA?kwn*5hd!#wOk4H&CtTLZF08 zU#S&(HQTa{ppSHL^b)jckx6qz{~RfLx(a%AX8}hhEwfwFpVaQ{it588M2-=G;)L=< zDwe0=P7aUVvt^gw`3|X@fFm=ZGy~HM#MprFkEQ__An+llA>ZY1#90SjOM1Fi0^RC!v)4^fMcVpsL%heN+kQ6eL7aT3~n3sesZYA+UkHC8bLR z>F$t{MwAc`=@tZ3LQz1J5-CAcy5sx+pHIK@_jw=RIo~<+&6#(`5%>6;&EmfA&3&!4 zu6148&(D+D$KGD>Ib*YRLq6KptBbr+j+A9t?n+(g!xLZN8gswlZW7sH@|5P8XnV=F{y#mrs{(5Xk8@((lfrSFzJZgUk%E4pX=+;?qn5ScE{xHlpHONv!|zwXp(zQ;ys(3NUveN&E*|5!8p4& zo=e*%8IQeQ)sgPpIEtTPNK7%>2kc#?)q9P(;GnVkSH^EbuOL9E1uRnjD zcQo>4_16#HSWJ=0aEY&Ppw|cC{tU?jr|aidms?{ zC?mON4VCxyxCmIhb^#-3no&pvtjjQtp^cEmX= zMk#VfRT3v<1*-x+U(%Oxah$i}ds6%YuH0n{oKrzeUdm65&b(8vGDRTyIj$X9n8Blc zjz`;eQGBGWhK_U8q-q!>BAfJHfm<_jIqvzk$DAVGD602Wn|RbIg!&1#hX*8}6EU!l zBfqcB|0G%d7Ipk36^A-vkFtZ&MsA*L z|F@liwVSS6PtIr-R~Ny$p)?cGY!&2*ig_fJG+%J^p*uQs7c~+>T|=waCg*cEda2?- z8wOIOkw})hp2sZnC2Jflr}yo@m~a>wOvDmv0!k&7SDSH4R;qE5HzA8yI%N?@qI+-% zWnw68^5puZ2C0vo{qxOptQnMRdpD>L*6Pic9 ze&Gr=iSPTKZ6G6#d6^lh)VjLL6)cOMr6KTOc(gnfRi^@`$lA3_BwtFm(iR0 zHTp%VZ^5EN43ZArjl6!SjY9vLo43w25V7>yo3Bka`cbKrVYRIj zbZ%ZtY=2z(ERpRQX1%4NAe|c|5ba=5?7AzdUQh+(&ZLm(pCV->z2bh5#fw0E=-G zxZ=Eh!AP)vCflaS%?C~>->$1Y6N_~n{~G>ON!exQ%|x!=NrN(`jGa@jS7^fQMXG{J z9LEG5E(~6t)ptZ}``g>f>LiHuos95jdk}MG+vVA58!0W1uhe`HqOmh&1*=^4dU{Qq zC0@(i@0BqHB*YX13nENW2JBUxcf(uT87I1@!U?pVfTMK$dYH_aV_FFY=}eQB4IK4C z%bi2=JR4ecg)C}~>|WgMFGA9P5(s4e=nQc3sU&`#fX0Z0e6} z+M7H$2Rn@wOs&3uJe#2W9nUqyQrc8^_*=`atjp&GN>)>;Zunf9%{3}3q3cpw+ub?@GkOizElaQ?3zQ$kMYD_udpvPY@Dsb9UqSa_PCl50Uql3Lga0= z;3-+bL9SKuxuLBuyy<&LY7Ft}=O5b`UYAEx!_$@Srmn(# zY_(56_i}NhchWK%jC(8*^G@pBMkjuX_3Hqo$YngP?Q_e)%ze3PUc~K1^ob%+pWXL2 z1X6>&u$Swm1B??UL|hvsJSoW@WiBo7YR-jq_*AoJd{uPgBi5E_Nx!Nl({4p%-Wb-%MQ%dCYsYE^T7HquYZ>rLq^q47` zd+2AkRGBF8dg>RDGV$YtG@%!sMpL$@7W$JMHrT)C(uiU=`i*`}mv}ULs-;Tv~6lEW!b=MbJ9QL zL~0=4cHN3ic~*bQrJnDqp8Z!#cNOBjmD9p?jPJPlZ;O8=tf9j>HZ**b%ss<}%T2Ec*||*F)!{y=3V>El7lyc{vIJ`iv%y zU22=G%+%qfqfr~GV;=nHX4#ZhsA6CCA-T2>;tf4cH2e|n%s9GQPmn&oZ)BLdG(HjHBRPTBHH*2j6xO-B56{^u_; zCI)Fwz#);gz5JAeGhf!`0Xk%P*k`3Gi>ju+t$udZQ|7nMJF^md;0Ii~LJ>AB81Uxf zK~%{llw$U1&idUN2kYY^Nqa%sX!A z8E?ogJBwMczq09B)7K=uymOcLdt%jM7kL;A%pYb!$7jx+>!Qy-Il&XPa_~-yEB-~Z z=hZt{37Fxmog^#g^f;5KiFm)^3Qst?kxUHHK4EQa$14|#+?SrD0c%|n4z z4Q-n^^&o@0MX-u>@@>^^^AgP}_;Y6|Z6y-N|(g(N-=wO@A;wxGGvH88$lIm41T z^1RlS_n8QBXriSqvsH5Tl}N!`9>uTgUa}l=~TJpdh`S_|ct#bzWXg zRYPVyjwI!LiMLNzv@Te8NJh)$lL6++tY;w#>G)x zZb>p!j%SoP27H5>&?O*COGD@jKN_(h+50LeF|zd}I_aosSOkk+WWY$(!L+vHOP8V#lyTm@b&<$|gGs6dA0Nzn)R`0ndCo61Cg>xGavFJv!U?M2&g60M7;-ttX5 zN%8jaz>AC*Utf@7I@|-kI8zy(VpAd0AZ@A==N3K(;*kMyp&k|te#tlgbXK7-GpY!sMT{n9U##B}Ey@8U~A@PxGR&s~W$JfnLe|5h$F z+~v8z2{2F@ z=|wBb@w!Cbx;msi~j_-aP;z~ZzrS=#-DGpYVhpD&-M8DuE;8*MP4^2%$H#q#!e zzdj}lZe+&pzwPRU82ex1whioET$wz5G3Vvt-aDQ0aMIqkNl&aU ziDBtIf<(Dp>_5Q5>bRmn~~f50d3-WIlPb;1y)Tzb>+N2b4{Xif>7YJ3xKsa_??Zp$s$+ z=971s@bR4d)|!Uhbn{%p_X>}v3fJ8&w%Smo6w!CYqouPPCm7X`(r7PWFmAOq?Y%E` zN^_M_AY}|!6D}}R*0}0Xm9^!y*?hZcTk@5CiG7>}gg;pTFnGJBuQ-ui*6Yz0d4ZWs zd|VXg?uSIXT+t^9Bt1`~w0`0nDvj;|2a)IUgZoGxUf!c{{xRV`2P!B z!9RS@|4+DrASfKD4eQg5xz6seL z`ojJ6>HLrH8}OU*=kL3Ji~8{IJ^Y_<@^7uzf0pY%%k^)qz`ynIe@@qbmh0bIfq(1a z|D3M>vE}+VD1=8n(&M!Fr|#5IUivGA5PjH%{VRF?7rt-k!=}F`(0M&>>I2Es(Q63k zsP7I~gB`W+|Dnkb0UbAS|Ip{{$HV{S^9BJOxBY*oM|Bk6@z3$AMHmDPKXSbSzCaM{ zP!Ql!b*%gZLIc)zW>~P0861iOJi>5rAq)sGYc>M|LqAwFpy&z$-TzLH>Jnf% z27-a1f9ra6v|PUl3k4PiOs{~b0JAqV1kk8Dq8{K-Kulm9AVOt<1hNY(7zv1EK|w+Y z3k2E>4A_HVVE~=r4}(IW|3)S2c<+7_6apy>gRnzTXkjoA91``zP7Ml1Ll7VoM99J% zgaUl6p->?+1Ox>rc>xN$P=px{1o;#1xud0mKw*EQl68ENeiIcOdZZ`@0t*9ud9AuwRT!0b;K3xb5Be=pv3e6W8L78EcL z1mw;Dng$RR9Q4-~0)~NrOPK{s$O2~uoGT>YtA>V}!G(Zmzz_rkAd+DI#6R$8v7lho z-& z=UVlWI#J!b{yuD9cQ2$yzlAF`Bd!5saw^}=l7O8E!|*3$vn4Sz96{s zR{IQLSLl?{Z8FGhXK|yEjYukPy3@6~*J-->Wm!2{QeWH{xgo^niIgk^EZ1%=%Oz&%;#J5Opz_1ymkJ_oQ6k>+$S5CN z<4>4d7G(A1yFS;(XR9tMSCJ)oN+EWA&9U5HE6*iN+CmWDkg~uuj;!_}ySP3Ji3rrw z*6rG8>!Wk;>xPTv;|-@r`spHo;O@4%Dr~U_Cc$=v64vEr{pK67hPW8A&d>P3@e+O zsIGd{={oR$s|>H*Wt*mMf8wmcMVo z;62YQrBA%%dUL*oDLitb{Y!C~5lTOZuez5sXvnpB$&d5eb?45y^CC*KS8V8uC`?GN zB32am-e5EckjVvt@<~>bUDsyxw`9K^Sbd}xJatQ&Dn_cH9}tnz+-pHKJ%K(cA^6yt2Jcvnl4()wwd}yd8m=bdP+*E44GP zbx`_Jq}FWuUhV7f%L!4uA(fTvMIJ(i-@67z&tCUbdb2U)uvgUQo({NZbw~S;YR*}k zucXuwgp9UmNn7PN+Mj-uZuC9mM%b*s4Vl*j&-ZWj;jA6{nDQrSBK>a&CPhvr-yDKv z_^}(NPTUb2x?w&40!bBdXHmuCGu7+K3(Jb!*G0P&ET23yi(qHK(Ee!B^1QaR(_8%Mp zpq3+G0Q{UN90CbAnpzyr5d#jULI6ZT2w^d3bCd-bgMyg<@m&YZAODRYVaUIN!U7n{3<;nW01TjoU^u{&77YVDX~7m~z)lqK=!9Ya z!2DGK@FkVSm|0)HZf5;=SMX25>3<6g0ucrSQ5|~svcmwyQScAvPzxj)5by-9U@#N| z;1w(uz*AUY#jqAwK%W#4^+f!M)aY?sR#twe3t*62_?wBLL zW~ZkSy%4U8B3uiN?CFm%aq!G2tb8Ljt1A<(rOx0V*G2V?jj=uUuAq&GUwqfs4gr1o z3&_t|ISYOK+}D)GAHQ#rSVM%Q3+72NoKn0ZFh(G~7|O%<2t?3{*CL#EotEyRb?hAJ zLo09Yh++@q2!0yBH0(a-H5X%zxG6~%7-s@;EJJ`Khj$br`yxkGj=Vs_MV6G69aRg} zyA3kq*Fwp-%8hPjSn-tmx!cjHId7M5@e9Bf(5x3Rn=#MYZYb^#Nh*uUJbf7C60Mw* z$3S}RlE$Uanq7rgX`e_Y)tcA#yfV-g5-N&X+r*2qArRQ|%47G_`2LX3gtLi6w%?`F znin9IkY08TWPy-*u=v|$T#5@$zS*-pZlm1%i3nBQp||Lbyv-WOgA_9oeGqv8rJ~iJ zm(mKmFR+5W3sQEYS6~WjEgc`-6{xzCsjeFTr2BHf+cQ>9b(jqjb#yy#o(xIyh+q8e zoqkY7u57#%S+a*uHQ5K}Tb4Y24DRrY{1*9Omm)`f5A(MnV`RC0g4#}so{dJgy?ZH z*NC^`3u!JatQ-~h(vhOji+8#4-$$Z341`1Wt0zpO47uC6m7X||i7ed{&oetF5QLVoGtBzc)f@8~Y*+SN8T)Q_x>=a{JrC84{`jjM;A`CYt? zt6w~~?MYYhlE@)%>Ka2k*O_Q2;S5gDNzu1B%Npg19% z2f37iWP_#=DSLGCDbgOz$n1x122N2{9bdE$Ub~CLO46i3Tbb|NYrSL0=Y@Uk@eej%N?Of{voz2|hYDD>d z70v2v)g@>%u1R=bWUQ0noJ!AAF~gusXT?sIR+TR5cJN9F@ClA8H{D$JAE6J^9nA3w z_7ZBpie6D!Da9i{(fbXB{p}SE@U{P>!T>p*Fa*5MkCJ@g>rwiD=!JfKb%T$t@PE9r zk1lqRKddkuk1+mnWrL6K!EdkZqxgQkvj1|DKf1Dkq*@rz@cwyanIMi*i017c! z44_ty#Xu2gC=w1u{XrIgyil;et#}-r=>Ib)V2KX*4%k8f5ki32j$=ZjQNWM~5Do@` z0~QJm7}}fRfQl6Yi3Wo~7zi3^@dsrXASPLJ9AK`F0ao>Qj_8o1kHB$M|2t64PxSYr zv;cv_Q2#K!k*7E8G}1xiHLKUn#iP*DLSAw+{=y4w&iBHOS_PzCR3C-!h7*w4o+!55 zj$Teek4m)QB^1=enb9+}bgy19=|xM7?>U?;2%eblnVGNO&{eR0()`koQ;%bRlOw8) zUDt|^2%(!csq>Jvq?Mgqt_U$KC`HbhX8LhyzPJ7no59!XGV_U%Hw`Ia-SIseVkA|+KtB8xHl}g>wWV=z3c`9W?2BWw0fywznWL(QL z&wxqQi=V=2xGpw5SPOiYp0T~{tD5XVbna&EcJ;c-MIr=-@tPo)xeMio4f7tur)zwH z(Mji)yC@459Ev-wFBNf#yyhS;e5aCIHjH7>Hlfftxc`Ch3n=+KF&Rtj*RV=I@?eWM z(58X3J4TJeM)!F_w9W9k1By_5-jnydcjm3t+Mbg~cY<3hSf`&cGYGU29bYsBrILNLb6w%nBLGmzd(4aQ3%YDC&+G*n~jg<=I8K0Exx;^ZYtA^u6~? z$DU5R=RP6e5P7U(+OU%^dohkNI;idQ*@1q1GZd?U>wNv=x8AhR#&l=gDcBU6CZv@g zjQKa{Kyn{#JN0`U$PccY2YR{oa&JkTVJT+9!r%aZx$)iXc zeCGXB=Q6R4(v24^)W|_QC0qnD?nx-o>cmq6frIK0%WpdVSCU)i8m>I+ia|WqMZ^{= zK7S(ieP(UAI`g~jsxogG?S6T$moRUALOFlFPo6M)HAQ>1wEPu<4Lp<2GB!d_<<(+bT8IUJs%(6B^A)9dX&fe|%T4-q# zeZl4FvP4u0XCR|S6g8J#jbq#_>UB^#vu^{0G$=1Q>WZt^;A%75MYv?TfXbKjOt>*= z>F9vrzQM~njT!PHrCXcVu6((;?_ye?$h;HBP_Zky;M!rTQK?-3mdW6Rks-SBX&v;{ zxnF;fgjs~kX;-zeo~g?SlU!TBc88_EVBwPI_w}nMziV!u3THwygxuZKAYDFxueHFUxcf(WvID~-N!3fbkBQ#Cf+@WZ@XLmtL#kFt&5IVwT&tt zpzns0eIHQO_(-!7N3BP_ot9mnm#}f~+KPyiaHIF_hW5RU!VM=O*ZY`Vcpb zT(T}#C*%VsK823qw?=u?9rNdGg}U=IGi_AJccN|(!XQ+?zc@uJTb{vgmNEOe{rP0F z!Y0#XP2>Jl*P+ezkqueoSD4aRp!BAO3NOcgj8eKo0_~WlQ&|*+{lT30XueK` z#Nb1XT}SI`KDiqd{#joyijrB7g}X%~{{(A$h@@3^_Gcu4%>xo(8{yMYi^Q+)SoTAkuhaB8b$xi6xr1vN@k^gNl}8G z?O|5by(tE`>I7))?S+deTe{|s3vM7{jm*WXb(EhpPFHGJ7}m+T6iQ|=$JJ|4j6SX- zrdp6{+t(}kWNoH2*Yx~7s_paKeKk95a9Sa@fid~t$9Z}G$jI(_-Znz&2Z2A7ypRSEepFA=R)dNeZCJA)l~$Nv`&E^%s7Z=Jm-*~MaIL_HUtt1b24!5D<6zM+4R6Bd2 z+_PZ#^);=+fk2%dCL(xh-3e*22d}afL9gsQ7|)pqwLS8&oHee76j_9_P8+t1%rB|e zQV~_#m*!KM*@#OQr(~7jR_k)=Lsi9-lHWq$16Si_B7V&@%Kl*pg5Tv&2kIu>D&9j zq%_=tL#6VRC{>d<)I2U-{LxJV^P$|!T4eVW$ppVHTrOuJ;>(;BvaNC1n^|ugA0K5J zY}KPJvoBnxBe=svs5>K{dQ}YhcyK4{1*?GuC0QTu^Y}E7MEtb+LH=pqTNl$OZ@Nq+ zN({#u2aBdB8<&FPg)}2-Nv;)ph-&Nz#`HD>HN#;`q35GjxAM4fPD2=I&%VZ6A!-WW zcPm2H!4GT-tJ+(lEG?Q;Z8zNrm6HW#sob9AT^&6mr1Tz^j>t2M_WwZUPU3KDK)Rcw z_teO9ldQ8J4d&`o1Z=5?T{D-BGB|9TbxQOkGZlj_tG_C3(eM&yqgN(=p8Z*YL!c#m zz)PZcuNZo82U&^7BF5Ge%W1~oY|ZrvyA=MaURaX4SpVUqEslgSm_caN#OMU5_QT37 zWukdwL8R-o1*ZUC|3pf$?+88qit26wJ`|l=@t2crKz+Lchao?j*^nR2 zY{*eFn;ilP23oUdpd1TiEkI@f zjI1LNKs^@7T8@guSQNk?#Q>=j0s|CfVIZLHiH3qLgdiXbEE>o~kyz*-Oo$&QEkH{e z@pqZj(Hi{{6XZv_0*tR8Wi8OdDRwB(5QQA)cTkWy()=(C5cn|XJS@qY!7*?lxCPPz zdFTm+g8xZWKsKZV1N!&SzsXvTw(OU%ek>KxpFLbEVALOo3I>7wSSkb*WrlzQdAS)D z3vg|57_bof(9IQr1DnHur$KPgp9Td+B9VXBJ3cx;|3^?z1W>U)+&`2s{4f;;mg;E# zpcX)H9ftr3;c!^UVNd|~7bv3x**TD?!%*gEB=ip`3CBq%1oF2r{mjn)SEP4GpPu72 z`m1w{MEsL!RGyxp{V;;gd!zIt7h1bmQKP!){^cqUORb6}b#gm4I>X2CAx(Dv7uz+N zPwv!ykLhn${b0w4Cl67`*x5*LOOi4XtonMUR4+V9O5w`mfv=p2o*lBg?~@djdT6m0 z7DMx8#P8i`UV_NEstiQ%cEYrx!_{`{J`A>Jq$iEmJ^FT&ChyH+VSyM=Q?a-2?dhrD z3yPHyE(A2Qx>r-<%U*}}`Ko7Yk8Em<3D94*YbC&K$zde*W9o9H5bh?!*7aZBn{d9i zBIOq)#}Mm@Fpkl>txpKu(mGezG@|HMH4d$BG`D-7_!a+5v`Qpr3bQ#*IbNy2QCVqf z+3AI1bc6?^!gbx}?bbAb5VfntG*4rSFXhQvL2gz}<9*_mnX)W{6i zbsDz`dAcrnErj0-p0g6(wc8GEu6s(2q|G4%->FUS`CRD$f3n+SjGs9dTJdVUiCQ!c zeTP~gE;Wf0<@5}d#vMTH2;MKz80`W8Q z*KH}d6H~O5I2UTyBv@0c?esTt)qP(-Gb$e_nIEcqI69cNoS4YQ#~mL*sLUy&?i;76 zBnlMSlN>H_gLdy3LsFKJt7c_R7=?guuykO?t#pZrMscgO&DZ8;HuWx!s@S`1MzH7< zkvcXuY%4KK?t4jz$QYTzgSpxE0c(DU_c{*vKI)2Pq%b?)(Xi$Rm&gNiN%q?kN1y9` zd-wUn`_u2HwBFf1k9_NKjkFbu_JOP|#wkgjw|S`pQX5o$MzY*Ts!+hZ;;rXqoKOm< zyMFWDMyMbsZy3B%B&XgiT=XqZ=PkNt3sqL{v#k_lrx_e|2d<*&Bs?ry@;l|TDxaWV zYfhg|30PsS*|ltxV9@YWpC-BYTvMJ5({`X1Tb^k`B495)^PDOi-kR?90-C}Y6n0lx zj5FYjG4;z+E&?q)?PpvARH0|QZU#IFaL7Mdeeybg1ljWoKA#>FD%9Q_r}LT+G~pwC z+bCy#-O-PV=D`)0?i&quk4}q zWR-Q=RhAd0c~=aJ)R7_vXbkUqCe#Pda_)3pvn9p*a^=8_ z;C^0qt5-DF(6n)QsLuZ`bd;gF6`}J*Z_v9mY4mkaGS{iiut>Jil5|61nQ$fB%|7LMC%0;&uO10Y}o@ zc<}NK^-L<0A4Z5hf$LslNXV3Hs`J-D{DZux^yO-WS#Qp!nlqKfPmrTgUNbHF zCIh;pSkml+3oK_Gs=GLm=^ZcnDP|kz3sEug1mD;@aPps7_F!4JY}BYPNm~=41W+46 zgfW&EZ=C~OcF!`bR=w&v3kG0&Nv_MSD}6Pikx-<|^c82ilKSX6ic=dy3u0%l(8j7w zo+5v?Qi|D6FV$eVb9r+dXr;{TjjH?>&jJ+2KWe2wey|(>&&xy7CIAMGze0cDT<8(b z{U=-tJ!V_}VJqcF-{mJ+6M8J@^jlo}f9DzeLn{SrfdcyZ0KX4w1^`<$#6rjnXrlm% zOlTYq2FIC0aDM=dj=7pZJ^gQy?axBIZ- zg@FVD2LG$Y1E^G4;K0zsb_x!ViGl<0*31kA7J?(q&}L|eIl=<`CoP`CsQwkQJvvFh zAX~_BR8aI$lLzQo9MVQW|JCFH2r4iL1PKDR3u{q2>{X)6cpG> zAfo|6umIeK9s11v6Wdk+aJ)V8qy?HUzwM_SeGZPJ`dP>+Fkan0b?S}M1^Q%q#!IxjMR~rql0Wq@TJKK*Y!jYFp5`;4bDDux9^^_!P5>J4ZAcXmw(o2K43760(KHvtQjlp%5-)s%f;yV zwfiSLI83bj+J*;8s1WGVoQST7#KrI+R`EBmT*aJ^DX(_~k_6Ny`bn9mCQE{NHF+so z1T8GuOXhq>${w{lyE9S>_@zyU4YIlwf4KAXWWdX*c(wu9_~148L*k|RPMf8NE+;n* zCK&p*l~*lDYQMCr4dy!I>E5rFMLjYnJ8df(tURklaFuF6lRgM9(`9N|BT>Cs>o!4r zQdxNOr9r87{DKEuvJ#IbqMhZr44-va)P`KSmoKT%U=3}5uD2Eaa=3z*hKXE>d-;at zhsAR!%iD64pV|$S{mx#j`G%jvq2Rw%fRyBTr22|h>sIFI=r|wy#8jog++*$gffY7^ z)QKjK_Af8*c#5;Ldc9r>M|k*XmMIZIe6RWhNwb}NN2zhi#^qk^N;1dJTk*C01E-M! zx+;pECpmcv1W&z%n$L+!XRzaZ+aKE)WO$hs#nQf<(0@cjusAqT`;Ct9Bq2u`6Z098 zj=E(s>N^b+PLs?u7X{lS50*5TG@UGTLPpu^z9PMygG05~4=%Rmi!E#wCDU!}*B0sR zS_Ermy*2$BnWK(?d1uGG!DxDH5jA&ERgGGRcF*9Rco5?JfTjj2)-R6gMErWg%+=VM+WuUerFQR>-t_X>6tn4;Z9<<%!=x@k zRS)f4ktyji93LyoueIS=<0f9ocYI8$236hYz)``K-kSR~?Vzb#1$&j{=Sc*iI)$*Z zrxdjxV;R$FsTZ&oCMNwnvpPEv?{YY!Amt;El8lhjbG4vw(||;tt2HtWZ#~F;0{*d)v;_d)rT7z2EP1 zfmV5-1Py0;4DsWvd99t72wF4WHZRI8xv+WN5ie<{q~*QQ#8y-2W_*aVE`v>52x!?&q1V2cQGP&GLo|r;Y4-uR%pSk`$hPMtrT)*O60s zBm)n5dFPyHepqjGm5vA^f%__Dz0-TdUX}3*i)Tt|SPU`3ZN~3p4?jfK7F>Fk2O_U? z;jW=VAYJXWxo2bcZK`6Lz3HVFb=@`1V-5Kru)3*`k~`xgCkt}CxT zQ_l-(*!j?1`MQ(uwH(4VycVz;p&V@I?o&MZb}*RD(EI%T*AjXQw4Mq=BJC`$!K>rN z=&`K}-q#1>XQ-duApL~q8-KiIgD<w8VPv0#AYSTo3x6T(+d~HUf z8Q(ppBPC_hn8o4Fk>B|$?2*Kjd4ohWMx>OK!Z2$~e(^FT0@<3AgT>XQ+#j!eq*I*3 znY~;uPs{0_{+)+Y!1-FFn6_oIl{mb+f_M*du0(n?zvaPT%AO+Ga2va*GQE*$&B6EJ z5`Bs$-pZiVFGE@#f$`EWJim=7IFv`1ugpB2n(15m8fhOn(rDr)AgXj{fx_7-NXp4U zNjX?njH!=;pI$7r+tf@xd1GOfgS_>ks{Ta-Yk{rx{8*$Q)VDFV}6T1y=r8no~3stg;lvf{U9T#WvCJI-% zMh|FBPly+EB7U0*L4Q^;|7B$#`hz?M{Uh=i^hXl&XO;Y;r0N$9S_t&-$zw-x`~pqE z|C;X&#hGJZNDF|ojDi5U1z;8>gaRz80Im-Pg*Gz-Mr$B{Kw5nD};m{a@x!RCK(!OW+nu59zalFve^f%<{4_(Y~mIA?Zbl- z$%n(Z5sI%?ZyaMcAAYUZn7cE2K))NgsHS5y^h}@VOm%nh!w`J|Tiarl)MP%YYCm0` z%f)KW59x*P4=DJ{mh9I`HIjdQyOOt`Yi>yQ(d;c^mv}i|KrbbbNb3!2 zhVp5XH|~}tEg84FI>%;}9!pHc44F1e`+VfmGc~xu&vN;MpJo-Q>Xn8lmB6x;&$?-O zVX4=e?N7m-VmeIo8P@3wl<+(-?70Ck7anYCbu+Z-%a`pKC-J<x>2;k38p$x?%{W`h>+DaU;qbbQH#`oFP~0gpEfCb~b;;!B7H`Fw$i{fRy;OTY zTJYt0lO%y)c;D6qk(%kHl4JC|~ZR zG>A-fsn^|;{?N}US`|`4D8X$p-$kfBwrNA&K_X|+_|^#ffjzm8DfFBAB|czh!bYDF zJq>+&|NOS&=jc}7(P~#;aA?6xC#=rW!KM#2=yUojM`Ho_tn!+6!8@bHJO!GyhJw@* zZxoCJQJdAG!Pk4mk$Cm%96Omj6LlzGSEP(eBlGk3I{ldsCTqx~| zBst!z%8{L)pr$>`W&Nu6NuQZ-WJb0LJlvNkyu4hH>h5LZA?nNN9MX}hxpGgqDwwI@ z3SH{21#pB~jI`|(YbdyM5#AtAIGrAlI5iP%W%9gXDXcm%#8`VLVVt)h{6gyd4IUDc zng~%li6z2i)2K|#KkX8w zsFP=lQrnPVOhoscljvO1%{*yc}T5eGF z6Mayc)Um6!cb9f#raNJExt@zr&{i0PW0>5tZGd8OM$?0RFFcJwhlW@^6jM=`kbL>n z2N6M%J3x@Icp<+fOJ!JP;+t{Pt+kMEQsC()2+ZJppXXaLl49A!UQgeg*{KPc66Z)x z4cy&ju>eWUd*&Ifq!;y*$ZKWW^KKFD=DnIAT#Dz$e;{}FO=W1EEUU-D){JYJqvoZ2 zsg-Z2P=BqZ3*rrtf+9trH;Y%@7wX+OOVw@7+&Z+?uICL;A|ZjwyK#bpj~1sU)!1&_ zsC4d=st$~DQ!mj9G7((yw~Ln;>5&j6_f;CQ$=h%*M`jQ)3tGRwx9OPET6z84wh9kE zuW)9J*h6Unnx?V!Sq<9+=k6OGl}}w;jX0{SKCv!|r`?aV48BC;8aF9NjR^d{zYY03 zmDKP3)teU~1yj7ZgjQ)^9g|oa_0H=vr@Sak=ri)5f{hIv{+h+iin8_@lgNNs0Y^RQ z3yInMNMj-h|2W;QyS3N3DsJ84A)^WN&16zriIxNN}Ml9S!%`aPJE#K zVph-Kvnl*UzI-K?PMYu*R29Chnk+Y<=gMjomlIiai++TZOSyKQZ*c!)216BTe|W(R zt#zEEIKD0`bLFj)dR|?ETGn2Vgj|J3z1McW)M|JzxM}S?6l$jb98;JqEB^4309`QY z1ETlrQZqcsLjXUmevF_KwidOSJ?Q^BE&BW9t7rN0gd{VmS2{LnJ5|`ZcnP^X86uWD z<%4+E@G;Q2w$gqX4X26sq-)Z*o{6n*C%T(gnA%59%=dyu8`qW@+@M6WNn$If$kL&L zTv+DwpxKArliHt(ZtwXO+@;-{?!AFmGozUI9wMEmz%y@DWH38oue=&%og#L|@r)YD z#!Mrf?ZjQ@&K|-ycWh%OL`r#UX@&Ktsmn+N%&xkBW)ygmEFJT$Nzte&J#|{#HPqx> z(rR)o%Ps4iaq<1q6Zj|K1S8A82jD-;(*F{G!+x|JU_YoefWW{}O9J*s)Ed~oL#;Vx z@%#$Nfk}hE8^An@>sRReuUil(2nGQ~!*N1z90I5nn*-u+C^QNf>jxphXfr^u4Fvv! zDTQM|4)hTIZmj=km41opa6sXZPJ>1Y1D;w?=yB;EP_Z~}K_DSGECLvm5klbrAw!rs z3=pvZ!vVzsV9LWBaJ9vtF#uoYpDNh@*cdt5vtOeE17o28^9XjNtpNolFM-Yo3=T|o z99vaDK`3(s6af{&9?o^ZV8CA(KpjsAWC6^vnBjmiQ^=pNYyP3ye{_O=i3$qL&H}b+ zfGxZ*3h3Ivfh7Z8L1DsZ*b%)30W6XQ1d0WwCSXVUdN3g~7#amkuL8*o$PDy+t zRc-CsI0&e;w3JGBEf%n7>5xuofwk!FMnM`Rq)}R0KqRHROC$sYX{1Y#5PlQb?(P1L z`+fC%@AKZKx7>ipA@R`0MB-o4%;i}h6Yu#~G%v7ZVooqK%F*=fuGMC9Q z9)!qP;AwhH^6{?KL)Abl401_iZeWt#DU%cet((2;H3x zeurO&Ev2ty&ItK{l#sD1 z%$by99;H=&SVzpX49~ck_=>QOb9HYVy)9b<2`|C=qZ-y+=zZy@xMqj_vtR8ZlT=Wx zl@yv(XoHIwKJkJ>jNgbuzf5sgemaUpFi+1%3&2bH;xEI6`)-~-eM<|g2b8NGROk?+ zd6o8;m}&S+bo7Y#zAn9`og0r)uh^bAdF(S6Fz#4#!D0bvZFj zAg@J8oKGW!MLLdkUgAzBSENBVh?wVnz*C%*wWh0b*X29#qP3=*%Z<~88dX@bT_g_F z8!4J%T{UByw7eHQ<+S#%c-2w<<}}Pt%)BFI-91CEcXw2o_D#1#WyUb-7=)bm2mh- zQ(X5@CY>?cZkXV%4O`J|;#SiVeDh4vCwU76ud$K!!B%p?r{P=%XwlVM8c4JLIPJEx zH%MP(q97xtb}sNJ9hj?PyM7ESuz|?Zh>39QH1T9o6qlFeKB0BL>XZ23b7o<%>1Olt)X^^iJ%f3E4BP?=FPq9Czh?W#-%tTTTIyVJF;tuiJqbGtXEPI-bnn zu2s%_rR1Mv6qQF8Q|q=@2^o9(wno^$XJtapY~p5;vqJIu*bYV4B%zN7!*QXx8v93E z^&wQTqi3+k!XyiII00@Vkd>Sl+~VD$k2<7@Lk_BLL(b-$rZLf51P^3**Ua&yR`+-W z8+Xx4HTxg-YoFYGakytpyL^T;k%K6*SqiQ~gQ94fw8N8Jxv#i;R}%AP3(=KQ(nyJSvN(t>AK&Fl zODo{*=!h(6cc^+2&A@fBPt{*RF?n6}k~zjQgyDXwobOaRJ1J3^zf?uA62WtSlC0_U zD-4GvGYyz+y~bVkOtPeiW0hWMs3H~@gBE$ zk9?fF8E1=v>bt5z6G|x-+dm*seRl(Fg&u8y_>PdoreNX;clb@jbnU_6-?UXcIwfP6vX<{zYO>Jp}2Fp(JlK+Da;G%1Zcclb?4a}aJmNyu*^?bT++NbcKx*4l*Q zW!mh|_E>NCVI~{2L>gS6c}tC7P)ag%NtTv8ah@Xv5aGtdKwpi?Fs;o|pw^GYL`-Ov zFYNwmF|y>YuF2dG1ow3E1YdAWdUr_6*QUPfSP=dy9111Jj|;8=?TUX{pz<#bNddE~ zi{;wS6`WkwYX5Du_s{Sv_+LYc?11pb#X9x>LILTb@qe3VfyLXunPycYy5*W#Z-^b7 z25V4bCp@`b_7s-N7yLk^HvfJqw$F>bG|DU6QYTb~G)lQOTQThilldBx)|92bmHP&^ z*+M>NH!$+C1Ld(bfia72hTz3=T~kO>l;}hbSE^)H%i^`H38pn^L8AU>z)(B^hAjS* z0QepCvknjLZDf>e1%}>0Ri7&QCX=Qd^0>z!2IJ95X=X*j5^Zx%MMtZT)T_PQdqV;H z_K&A)6#Cf2uxuk`bm19LKX(o`vm6!oO+Nh!Vgmn z@K2@~mt6;laQ%^D0E^L!6oca;#Q=_9WC6h6KlTCuWfkE4@2j6K4*cC67X;MUoaYWd zIT$Z%oxZE;=lJKrc+uYP7Ord%PG&%?4+OaoIsbHK}s`HWcgH{1GS-=(&2m+)Yz#ootM#M$4j5r|>fTsas;^Ke;FuFKE5H=97p~DW)Kz_DWK;6_o<+K;K-4BAr1`Mh5F62DV z(?9?<b5wP$DI2IvsyEEXWUg&F{(A7aD}hHsuEBsVokhKA3|QppI}FadQ3) z0C3TToE+eP9Pj^nq5|CkLF+m zs`sqtMQ_v{tM9$iYI^Q<)W`%Mi;jYQJQ~?!%cq= zb=AB&SOX2;*>B%${pub=@Fx18>E@>OFiWp<;3{`v*tlO8xy`O)d5yLY1Y-xUwrF8{ z&la+#s=Gp)5*_*Ui^M`9qa)dKwtdu@FQF@`HJAa>T~{qbZZd;Zme7!lzu3gTVX7@x zV(@)9yML&0XJQB(oJL$d({Gi()MYHL{Vq#9h>lqzpRO3F{#jDvsE1912`fv;c@$u9 zcz&~7Dto*R@0kthhg`3xe)>#DS^Qa;zvzol;H|-UPf8>y`E}Eks|J}@;aC>UNY%|n zt;*O(m>9Wl?{&??_bzcc2{t1c+#UW6Y%UmRe5nPH7T_1n^yopFVnaHk@2pTd;4C;akNquFf$TXli&|!=FGV zjh$3RKQEEj+O6#DN3#-z3pq&VH@EIaB5P(5DN8KA={@K*vRqFnHPTz>Nm)l{Cr@Swk=F|RXF91L8D@OiCfaE5t3)K z0YZL0)l^+lkh!#lA*7;mS;`6XF}@_zXYE#G{AB4Uo-pR zqKxAw7iFA(;J%#yrPTaKi!IJyDK)=jWq!Z%2O!da!g(*+@!fMC1fZ3`taI-D3rvQ< zpL6|}bMxOzkdPIs&kcoeL4opQR$%r4g8)5QeSKCY4nR&8AmedEIL{?!{w<<`%MQG_Tv-DzfC-xOd^ldX z0&@Vpc`??0(iIqVG3G9R?H{uo7?Ab(H`82;x{mck7f{wwG$v63NQ2OHew@AX&P7I*H!v<%(KreICxK+$}ORb?`aSUu@B2zqpo?3 zKE%Uk3vnm+T~>_)j*HsYdo5{BW0+MHBVzgFrZ(S;`2CV4R0E8g6k8)I%={ZXAGIV}!kx zDkjR7pG0Fx2S_KX*d<5E#gxvxYtzc_FfVDx#HPMCR{G@bzyzaPQnVLFv+gt9n)LfD z(-bwV;tDqKh>cjZ9ESe)I)C1oN2mM4l;?zFfz}Wch*WPPl_9 z=&3`m*N{a^oQfJ`UA&=9J-A1@<-tvR`*CXpQY3qKsU8o)#2bFX&G&lvlTgrmU z*P4fhzM~$cC4O-AummX-I^@DAqD{x3)H#zW1J~*Lfh^iqa?!NoGhAXs#4yvNG|3gY zNy|?UV8X+wl{fE1L*}_ywjvfAdPeF$KA!18F>X#!6>ow>%Rc$sXPyAVreTR0K2xTz zS`I_4dPY;yEBeNvQ%~#8nG*(OoQ7=KG{ZYF#QBi$BKdx0!>9GKLTJe`Ja!s+gQ$2l zCKX)AZtbzvA{`~5k5`RpG_uy6Cau2if7YKS#pHEzIkP!;oBfO8a?Jcn@vVhrsh3k zuvqoDTb)`kbsQ!`KhjjjEeU^u9hqbsu!-;4AsC6A;Nel>#*g{tZB{Ul#uJ*uQjQRY zI+D+v=c%yh8j`;dRF4qQoSC%v*H_Rr?u-@idTj~%l4A>MzxKbQ<68=QJ8UY&woSRwyczMbEb|j`nl9t?z14sedwSjlQ)z-9U{nFM}0d#{B-1O zdS3B~Yrzqpm6q-H#(FF2R^iwN*My^VL!NTe0}04d%Ivn}dZ_o8tHHj05ya}PoYI>y zIR{C1Fh5QWTLv^8+3~$ga+H-d77=wFJIK^FLW=oRqa9#IKFaN>u-|crfYn5y*34HF zzodx6k_=|mN(>aX;HJA$jA6;!T0@oQ5EDyAi);tav_`0F!5k^h(gVakvweMX_7~x zDR)DqhS>B?Ya2@H%`3ujR-b6jT zZe8x{89!3T!lJq<)OZV5q`^dnp$GBksbU_rOoV;1$+ahCxXE=@0qzP5MO4BB9;m80 zp54yaBRT$8HV|41-!?QT2hu-OpJaLQW%*NMeVX!)jIAs|KRxnEU+)!!u_(8ElFeMV zyUtiyV_c?LKZk*Su%60ig*}}A#N(tF$6lKS1rz+6pEt0M5U1Vm~PO)mcryT4 zvrhqu^*X8g%2y3mubw=56I$?^oR9&9-1ntWZ{-ybYY7ooFVi|c6WI(MoQfZ_W-4DY z65NXqj~y`LmE-*t7>TsSccih0d+r>BlC6PaIK~2EqP`dy1#TfR=9+sXZt6?U>CQb1 zY06>xqF%jRDL~E~EXjh6#FP`HhEmD-9$eOP^C)uBnxHLBE5^-$)X>z5W<)A73=b)? zaU_*m6CQgfFlsTjE{M#bMMnS15vRX}B+Y9QRphIyN_g{pVPlm%`wT61l&aj4X&cLL zM8$&d#ScZkyJN_DUrxP=IVE4HmVm<7gaF6ax2M>)E<`o#i*xYAvys4(yvJhk+S}LY z;f@_Xk%GJ4WXD|HVLWN~(UuLeUJ~RE9LBCnmkixD&q7mNFpzlHoYxKs_n%{UUsYr8`6$CsEBsp?3B?{bI^55yl_OP4;*d+SM4Aa-5j z%c&J@dz)sY=Kw`bQ*kbv1^kUQ*+Wum%6U~}nm~2?kUUra1&8(OY|Xi(H=iOTMJ2H| z?1nR9Ttp*pKM;I33&9U%h?~<4QhQ`1AV>1G3u3z!VVoW$f@cC@PKLC_bkp9!a7E-E z>{txN|M(gubm#W2$T9t@2?ch3J{`CAXR=rN#jJt^i!>-9XIY6~+9I$PYd7TxZSQ(u zrd$(kg$D-5U0`qoTkp!@ zL`(F>5?X8RnV~XGDj`;T{w~hT0mb!7Q>#wpAx!Wz*HTBNB3Ykr#3+R!zbE}wWubee z4@XGW<24VR^x85PWUP`|YONIvZ?&CxkV+syQ+zFl8TDnc7uJ zgOsM>h@|?pUSFGt!$Y7*Fj zw5?QKXhl(XTN#c!E*-jT+HNq=3NMm#4c>C#t6p>|vyZz+ie2fOm%;jtWshM zc;<**4a%Jx$RmT24kQ#pzJ85nOCi_xm@x0kzE(+paAJ5^1^!b1u!Uz<)+Q8D#A>(A zY%?Uq$vF4G@3j52Hu1QFJBEBWr1{ZSMgtui9M?6t8Z{{Ns+m6p-U_?(sedNDh}hxg z7rt5*DY8fGl?GP`vEOh^BuQ1<4*?tM(sqAkUL zIF)gUa7KeTq>pZoC3C^I(WyQ7N*Ve-&{WXSN$Q%XB&rr`v(5R6=m}Ae#;b{j z!zkLOS;Unp=p?1mbVX@e;btGg$7(+Ly5Gdvs*T2+zI!8_WW-?`{fM_--m*r#B;+8F>`MzW5;gwib>Bb$TNDnqHgpBS~rTbH~5`v0KcRh6%kRPZ|S@+m{C(FjS_)E0( z_QD=y?%lbE5PpLchECefC&$cbubpOcovW6(d+n;*5J~JKpW-KJbfN6nagQoDJBptb-fvf-nhSO039YCtVyoohZs=UA zK0~Y%eicfmr|P~-S;Ew6b|Y5 z7^!q3ZoHR_d4WUL?S(tvin<{LNpe%dAGM{RRUrZDFX3?X>_?PoY*wV`o~OQRdR_T$ zMY1#e6N9JWtPI9X%cFXxA&T}?6{X6w$Km9*R!Ic6kI)l1_a{C&VPFP1K2?Tf3<8g~ z?3@4-UEX6;b>77JEuDk+W@`|&#Fe)^+4!Sx$jIRJ>F;6dmJtS(J5;=lwZa~H`|(Tw zapLU~gxu9KFi*tv^`QPMjOr&mYY_1!OCz8wss-v>;pMu@2S#1)0_*vxNyLXNV0dDh!%-ITdI`F-eEk4YanN5yXs2xS6l0N-};z5zg>e^(d>n8XK9u;Th1c%ldqjK7O|I)I-9 z5lIB*R%QRb2BtJPx_n^brYgns|7(NHL z>>c6h;T{5o2JFlBSL&&;n6d7p44i{@7R-~et;{C%5Z9FbmzGGZ?<%B^OZ!>#W$4~2 zV0PnXY+nZxPFZc-xS2tOY$6>+>l)znq%57iPzYxSo@J^>r|e#RVNrkS0L%sRfwFXU zA;pK#o9aVSQIz21x1Yc$G~{PG2&)w9)3dw$Rkgs39*TfvrAc4mAZ&2NSc;#_Ybpd3 z!z9Nn!V!99jZMEhYj_;ikbuw;7_dT!r-FIYjhBG%r};gVk2|>+@{4l zU%oGzPm84WQ}^AXFIh_sXbV&!X;qIkmLnbzq#xY_v;Yqdk0O5D+vgi(e}J2IFntGW zJ6Z)%ahW?@%m5GVPlG(bU+fY}Hg&Lo(TebBYhO4HUs?|Tr01}sjdlks;R@xZS2pDp?ZDBqWrVfkY$0xEHk%iZU1jS~>CcK|MEiT<4l zpaIO-)QX>cv$~%AjwzI%T%ALfRn|rXW@0MoW(QMtlT$HtGdJXhk_!r;@VW4~SlUt7nP=-9Os{l+B4GhoKfq=~;z%miobON#Rv0Q|g=NCQV0joo9w)0vb zD3}wdZ(-Nx1ghDAS|At*3Nip>BB6j?;kQde|BCx}1N{8fIqwvhov9NHDsE?Od2xrI zcNYtA*8*?Y8`_!LIG9>n{rSfKas1BtYkdQ2M+bg#^1m+q=fHs){&~~dINDiUJR6{f zEHDe$`7p2tZd|s%-?&gi9*6Vi?YA!kt_1vd@vsoGaQOStZ*N$bo)1$V3w{$j%hUQYBo?NBZ^Gr#zqgE!)FIZD*3_WSM+AQy{>!7lqZfF5v;6t|{(E~aqV+%UzrS_u|G@PxF8TXQekroQ z!}U8{zZ8LAI{EkL`W>!cioh?O{Cjl$$HMhp1_-kP(mv<&{0`;EdGB8prQZ@spls%% z6h}Y+9r!em6QcuEg+FuAKe3R1=N$Pgsu93KZuoBkSP15uKd_K{iN$Ne%CQ?wix0kG zAyVs$!}|jgD-0@5CGX4E()Kb5!}h+izZI-sVVVnrQwi2wK|Av}dK6gzI{D&-W4$K5 zw$M8mbUYV#&C9|?X(qq5M*euD{L0N0trwo-#__6IxTb*tmcfHAh>2*{T+Y`+6~hq0 zR8rA3BE0RIgM_20$cGOJtQQN%U+9gF8f$idYOWR2z0etrv=R@^|3oQ;O(g%xfyfUh z@~rUD=g58Q?Zf0r-9l6OHvj8fOfgzKWNe=JnyCHHOYekn^6pkPPe5AAv3qntYbPzrCz(f>FHo7YLLtDW9pi(21q0pO*`_k!{_%3G3{oKv>qiYn$TpI)}Zkk9%wJ zWHs?@lmuL;q>O7m>fXq#a46Zww|_h&zOUi?7f{G01489L1BE!-nL5D!5ewluFBiN- zXMT)@aR0_aZ2nBEewd8^#zOvGVtSGK{_7xGTC)5orTrhnLI4>oF;Sr4lU1BUREUjD zn3a_cBFri*#sTIO7vT^Ga=y!S{fD{y<$K>@8khLWPhRu8&;2zsp95fjhX*c#YNKyw z4?72Y_{qPaJ>L&EU|!?7H~=>f2sf08+lULy#%TyJGPtrhFma&F4N4vz>tgFQ|UV}gzKD6_N`RF+D6#gMe960U$i;$I- zwS&DDi0co50f4Oa6M_POJNz#Q3S5>Ud|PbW1LUSlg73wStAf5U?ECiqpLFy~Ewgi< zIY5;H#0p4Y0o*cR+wD@Giw$rv2jsXwOsqzRz$PM?3lI!r)#n0sDgoPgFa&JC#`Y5` zzJCY`Kv@5Y<8~31%P3y5(JxyCV&w*`0sm+f2(VM(zHAj22Ov8PXb1!JwsS!NP8bxB zIRN%gK?X1*4xq_~Fz`>faeQkP_@87BF2eXn-&$K(+bP@V8^ZYbSVZh0cQ`IP6d;iO z-zsC6h%sgwrP6x`l=j5 zSaK(Hdzwsg#PISr<|gfLJMMN%&}~!?=l8BG8Z%{%t*JB9*+tIw3*Iz-3MNPZ2XPwg z7E8B&HG58NN^k$_{p`}B>1Vp}QdkW$Ho^1RGHI1}>-n6z)uQ6h1HGqDP`0C5i(bk+ zYnmxj4pP$$>0QO^yvH83B$n;}V#>>fWvVu8ln}8V$29M=R1^vCofNs(i#ga{ zednGY7Amb<@TT4!Z#5NRQz>^o)f6-=)rkVbF2bTom>*nJaD9Edt1#eYb@>xj|IdPk z8ZPhC+n?A~h(LK1lbsAEo*k8QmuP|H?RYUON$3`o+Q;7#1p5*}`5&`9<@TBFfz-eNDwTf|@FGTGuB&Twl# zQ&tRGpItu|8Nh-v>=vh#`=oxv+b7bb(Uvm5L0#*`m+KRDSNi_lwlT8~8jEU*E7#!> zXeWsJNwsK;NN&40@~JXBf+Wl9fDkh{-InRDX$jM+W`{6Ns# ztoSRbJ<+Asn{a{yI;oqqOmC`4BYybTQ(fyCBE?6%*D_orOC~5uu%Qq!l_2 zy|v=Ua-^0cA_FdX)#QFld#lxwb~4QScSk9!O4x^P;tm`m96aQzC^D2~J~fxJZ;0UG z;5BZ4sOc1hcJ0bin>|`+4)!bVE&C5T^?3L97&#kKTr7gx_nO%?d^0;-5kW^y62jO6 zPkg6!gA^WarO)uwoXsXY57my8M0aO-m=u^M?BbTy+!#=0<(xcU`qpnVZA|+W0jZAW zfp-Z3mU`8#;2n03_efW*F%ZcsF!KEH;Hfj}J0u<8>+AAwB`OEBy;T?01tX8Uniz-? zeig0kq{UrJ<72s(TB_`d0cXpdc4W6hSj=#&^epmDj2;pr<$&|+G4humrEZZa^*SAo zVSq8*l3%bncMhOAg)_y(>C}efq2GwklI$qwA+vqbyFZ<2AEJqzr+_|rD?k3(szIQT zExM&d-@VWAu?14-5B>8xG2Fs^L~@=B;MBWRhzI3v9{RQzMBPN;)3>?_&rAMM2u1gE zft`B#z3%I*ARcKNZt*4thrRpKS0MJpQX^F_4M_TO>>4KDxbBVncaoQbi4@Fyc+jio zk2&GpL_fIHJ=R&`wMf|kW!|1emXL_F-wLpS!)wx>E|*e6}n3JOh*WHvKD1EGsc7;^xOu zyN`vD%B|xeIn){(%pvVt^TbG+I9N}59=XI9&uz4QO{35#fXx;l@IQTZ?24{zo$aAa zKZ$GADJLRQv`I709v&6MOP3&BTkd}gJV67RR_svjib-~3U7^%{iY_qsTC6QYqRT;7 zq|NMw{~~;d=Vw#8rAA`OozN|I;V=ypU#8U0spawTInqOBAh|-_Ry(JvzT=eDV~NZo z&BIq%qlA^A8yLw5Dg=i|RtnR~$#GTian%aZrZhP@xs?3FUxoJM*<_!gix?1M--}SF zOw(-_?BuwRs}llRJ9@m*fgJX5&39R&4b#l4fZEqy{u1TleSM z(2pKBmyOcihj0+wrZ{~c#qiAeacxoC8ja&yGQ=9r%n&Z%;ZN1d53r5|2gKuSg|&K! zt7t(eceP&b=O=MtrsRJp9Iv%156660Z#^~LDO2O-S@A}rfLphE)z0={@Hinj-1+8H zuh!<7_-7(fa?1;7Cg_HOGfS-&nwGlp}iy}lFFo*rDTWNi4LOp4?mnF(D#@?8mYZ+_k zdCv`2I(=kxYKMMA?yvq<-E*n8iM>Uo&SZQk1)d0w&ngRPi`%vtOVl*=M4mq0#)_20 zkq|ju6BJFqONIR&BGFFW^$EDyt~@U`7B-Gx*Mdhhb2ZCdtsFnwdX5e$Pt z5&jD%p(lDbHVNw%m)m9=Ld(Z@u*#pW6yj6zy5O6-l?i-)4h zG$j*S3H4bZA=K$4Ypxj3d#WQ~Fes<8K&{elr@j$;u^ojUV>HHYM!e9YHh{-EC6mqU zSSv{t7N+Djp_dwkF7%lSGrhF&v5yAA;u7t?on~5;M76e@`A54I69OHU-NQoDa6hb8 z13!7&ni>~gD+)ityp-o5LG@MBTUCN;L#!KsF7uRM7icX+0k zXFG3)2%Fn^7@tTfLYeS1p}}l5Mmz8-(yqeZh{N+HK&Ty|{g3R*_F8buyNt>a`O=WP|=3!ek*0_MB;b@eC%R(dYZ>nm;3t3BeZor_}ujPaIEGousE%Z z4$)TwB8uqdn9jbeK--zQ9u^sK>KDDD;&iMWc!8Z2q|Mw*aIbv=kX{*WjAb{n6B{Az zK4lk-az2rL=cR9Tonlh`S^)R0$)_ya1E_pW$ynh+J*5pg?p{W@rfi%Zn4gCRSch(1 z^{H~YMPwA^&!16p{ys(XT8|%f-tN_wyHtthnEV!5{CibZnZ?EmoWTkBV6&K{=T+}o z@D_RVZYLHbnsVVEjA-{cxk{Z;)S0=>Rq8K$dbghVY%gme;PSugd~p}U4|VUx{J^-? z!Gmnta2nM#k$TCENP1rwCRQ(?xgK5+4OwwrFI0f-Af4siP%NpjALK7~V3~ zUylm2(m$-5w10$*8XeCe&HuQyR|V`Ij*04~$0~g-Fw6vLM$x{@>Z-dWR(&W2n@8m+ zNl6$sP0#B{2BQdujH086DF*}zJi7LmB@#on#1^Mg6=`2{1BY?hb-ecp$ zS69$f4d+a+uW3~ZnqnbhJ+&ajL!je|RzJX#9=)p#kw-Al4z3x)5u(JidnvC{Jy{!g zC-!JSn^~Oclnk9f-GM&1T*nE^Vfy|ALhgipi^F2JuSjRP0D~T>X%F+#d*SKLJ56h3 zjZP7z^m^&#$5n_}M)$ZXL$2GupW&X(*io%nHAEh8VPompIB}j9L_S)#&d^q9tk6FK zd1hMgJ?|XgEgs5-xh<#dyE-kq^!toG#A3skz)$jbNFr)0upmmea54XodF4a8z@2>O zX32`Q-RQaKuj(l6OX$Mm!m*haCi6--kE!pu`n?8AsCPt24Z;Nx9!eVDd8&$lZz-_H zA#coBrl1{k4~1oGKm&Y8<1~`0l8CVsM4k{WHS6j{Cpm)U-3z| z;v`BVzHa=E$h5*8Z$~-B0`K7coBgXO&ddaN8_|8<5ii~QB(tu>gENt%v%_HuouA>d zVcMCCpUyR7&J(%9Csm`Wm>L}};#DSz5+d#y6-W-BFDo-iU%D zhkp_yl#$W5P{fm`=FCP*z~~57F{{fO|7g^RWI*0rv@)-u%JuA|eXhBAuDQB?^UU4r z*?Qs#^sKZmrx#NiemMsLYbEa2oR;V(F-4?1VHWXB1A0OFmkMK_$dFu_p zVCA~i1-D&2K4DcY8$aD6eG{mI7FmcjSV6|g zZx$v&rjM~&X||_&YjDEqV@DW2=4l#ln3s5rsS8f8cnxy6umY>H8gNrF*HML|C^^~8 zQ2B8VDeCz4aCU%Jc*bh=BX$l zqT6)_0`@9&GyMD{LG;WH%(*YqrPU}I+*HhIpJ9l-j`X!wANFG0W6Fck6OjamF-{f| zWvmPi^24qN472Q-yfR^79+y&iGu+-em-}cS5$JwBAtx+ z_p}nX;0%s}?`WADBO*HoWJNMc*9(kDI2Mv)orHIu-8Igi-YaJ5@RP4UJ$a)WVPZpZ zD}Bb_q*yFmd`{tdg;|;OF=0%TvlA1M(23mvL45%xE`nAdfssOezCZ-kIFhQvC(xRT z8=jUV*D6|XI09RDd;5e$9yo-)M zTl5vNTA>v`cA=YpG~9ay%~wt*>!x`(iEq2+RYGOzgz2n)OQkhz@`0QLm6W30n5Zkg z!taFV6m~mUj$PNbO%z{Tb4I<2VZYdqhVfqf6V4(b-aSrV147U3FJEGbA^Qr18?o3j z&0)oU6UyAh^pnY5)xl23p4ps38Wa8!n(SL8vJ}{f7+aCh-jSi3LtHk~6kVMY>8;!& z>2y+Kr+Pc3FV*>#Ca=?2JKo_yV9?6hGk)^w4wM}iaosp{!P&|4t=%;&VH z%zd>6iEMQppDwWuG`AJO%E`NsPZ37=$TzsmJ&;xXg?V`(TUXq5^X*|QZn3`CvQC(v zdP3NE3$GWILbVt(uqnkz(ipuY}t61 zJ!jM?#_vw=<9&^CjeS+*@vqknQ3IZm00ccRZ`;9G!Cq`Op=c8>_=XPU3N}-@7Y-q% z%N_m!cwJ>3^4B(P{D*0+!fQfCavTkYutLCS;%t_#W{Oorhq?VXPnahhuYFcRQe;u} zQOK_ihB2HOkhSUxzmJTB)nr+Bdq8P(1=R7L>#8xlBzD7}2%UOr^${OXD%x9O-tfCG zgDdPCfPIA+KUuf1sbE9LM=>-<*V?6K)-;6Y)l?V*2cW@?_HKFWv1+mrzB-fdN#-J5 zxhs!W>kRNL&z8NaIw@Otlk7CuyLTFH!{Jd9!8e69=YWITR^3b9fM7ABzU+@#VO)Pz$9)6Heu4uyZ3b`v+cpny zeRP(y%AY;9y5B;lA#AEo2x9;fT&1`t&B%C9SfEi?*OI_Jv$hFJ(_8*Fq=X?QL$H3+ zV~4B$6X{$TqDogSi176D9F4d%^vfr=rxugaYAYMd3l(#55?%$a^jp0KQ$uyOVTk@m z;z_alghoxVQT}fCsc(i!r1ot&?LKVK)M2r@$C+n^wLdbjB2F)d zV$;lPm@sK=#2~=XiQLr25ujfZW>1yQuHkTAF~*13@A&L;+VxNV!2t{|tbsoGYUuJB zO|ZaPFeBV{XFAGUvgzyvI(mY8*T1_S!I1X|T2ec+~-y4+`4n6uf^oNCS7Z~d| zVE>;B-!2A)63c(6@a=D`5A2NS*TS%6%B732M|@(slCyYlUK<=g)yCF_4-xV$UMhh%pqS4o4 zoMkj^DnXUi829UKd;rx5@`Fi9;;bzWyDd|E#-rzbU#hcT{1+|o(BLilGVx zyzCrUx@e&9m6}5vhY7ZKLx{7z`ug(d=k)~q60}jcSnRisI+MKybNkS!EIO$yC{I{Z zP>1(u!;$3i!50sCE0)pH@OFO#D^2o>Kj0BQ=eIs!B6MzsUU<-n%q#EQGhbxC3yGwf zk2T-X0taJo&_dnOtYc>aKCc_^vB{l&M+?OHixvn$LY8I(;E_f;1-k}?);$0oQ3)dD zrELho>rH9;J3KNTg{Pm}Ei84z&+#f6SKgM|md9rNOR59cC4X{A)>pa8^rs3bM#?*U z^R)7(rF&iT^A-tYHI)D@kQbGdZ_P*J933H3IUK}QS?xLMg@ zPy;4TZVpxe9pUC?;s#ufnK%F-1F%O1vw~reZxF^Wq9ghsh#?dTg)wom83KN3Ai#SR z0@#5uv4PnQ!GO!JK1ko_+ogY_BfpA{{NQ=5_ZK|!8y)#q%d>x4(*5%B-(T`eA^RP! z-{JbD2>jB?zem^aaQ#vQe(B`jqw7Bwu3te%&RJIfCpvPGi+;}&gnTb4{4aQdkPGJD zxi9R`@B|^3mS#U`JbcLt{EjCGIM4o*7v4oXE`QYpBM-z5xZr{AfVn};?B@(LPG-PU zloe3^y)doiV1u%9aT#(laj|g$G(kfnz=##F&jtR)31w&J;N*ZB{({3V>pwZ3UIgX4 zMzMiG%zzQyxi2ih!(@YinE~H8b~eDm_M%nXfV(dUup?!Hac}~O1HcRfELZ{aVRpcQ z7%(`7vH?x|X@frQe{R)z6#u|N{@2h1L9Bp_?}f)5zzhWZ&jDBF^S=IBGT_C)y8KPw zG^QbdVzaoZg#*lvMce||-V}uyT0;S9={KQi$)FbX39AW7Y|l~kJqkimwBsplM0g8h zP*S7OqXP7KviNJQ=}hR*PKvj-AnRl9<2d&`7N~O6(+@Pw5da%7KX27e?jT=}g}Zv) zXi5FG`X=Sv+KQ1;e%mV|?^B^2Y1U>{D!l49NyBSSYU++ml+|zAit^jvFU{sX>z2kn zR#JU)-=aFnX*xz*E$hL;rh0uN7&FV9vm!l8*x<94bvq|?$)0S9s)#{1r}9o)lOvUi z^Jr=SN=+Ju5aQV6A-ABn9L6U?PuO@jpe>i9AgZe59OD}uEKjg z%e$^_ic>*Y(Lh>zy(n9%3s>gtfPbj$)G&O zPTVB^bnS_oavz@4fRk!`nJbF^6VCjYdylRsyWQ`;88q$T+l#tp9$v#7TQHq{IPB%I zr0>2*D!N4zB1YHoX%xHi4$7L>sFOwY>idiNU17GgS20aUUc-?zlG5wkKq0N*$VFXuGA*vG}Du4OCqk&;ZLS{=;+RgS^9IiW+`gxu}nGc z($dqh`;4e5nwfZ>YXj}N;$flqZDR!$IcsT6JcmEi4lE@D^?cX zRK>9q&Rz7amoYajkv0y>S#i_06_rxRqOrCeEDuU3i+6k-_oJRGkL5`Ur-;Ds%st5R zC9&fGtINz7R6_~YY(Esy7PrQp;((RN;V0=ot1x2SO{KfJ@IkO_&8Xsbw{dWY=mGg# ziDf71GNk{Hy|<2vV_nyM2@u@f-5t7d3-0dj?(PH&?(PJ44?%-VaJK+~0Kwfor)RR( znseW?_TF=yv(6cJ+&lkk=&G;YeygfSfA#&I=jmgK*tdjidf;>Ogs})1zdjDGjidxG zuJH9-x;lJBoQ4v*7MO#PLJapqHx^6bp0AHOdE2kwVBZ}nf^r>?j=O*OocgIS$V6V+ zI#5S39QVt+gYfR4J%_Iba$f4}N}DUxH0SG@+BTW5GZW`OuzFfYrw?<)f-8Q}a60;M z9#Udln&Y*1ZB`U*Sb+7I`aFN)(J4r@U-g;wiRi$mK!SozxjI}T*~@vmnRLi*&j{bU z0ny=&;g4nUr|ctRKr)bPH$04R5?$c{OUamyOE->G9U^cI% zVk0ue&N0DG^T)Gs_X^CvM?`)bK+f)Cn&@Yk_qKMKO_{Szoy?i?)j+Qb)1KC6rG`LA z@(R*dWn6?5O3>@8PKgw}!P{)2&TFhEKiUp6dhXw7@6o)kF&~+p$Ql7d9fUZq^=;{4 zKS$by;iq77#Kg-#mr~9gsw8-Jd(lT>hOV7HoSTnRU=HiPHO7?1V4Eu@WZYHAygw%286bXcx?+!i80xbfiN zf{m2qaidv6pWg8pmq;ZkF6-3<@&lG76wbR3f=2~V*lOIg#)WhOQf`u;DWasPWwbve zNd+u;w^<+1yG}Pk)n&pWve;0aWQ}|&e>4$MvT#ftiw5t8x75&#PHlGA=5e5^v$q(0>sF=}qh8n|N{kAS-^5!FQD0kRvSZ4vnkRM!SyQQi!SUh7Wl0~=|S zNwjWBl)^{Im%`sZG_?!X*fzKV%5r8oIo|OrYw=y!2Jv0g1!oZ<>RZgC?L-#u`-<{f z+8O~Fu*wWbBFS;U4>S)d6BovEr?VVQX`aGnQ|h!0I2g-ub;3JuG#$#E^A;}t(AvH$ zTFgLkvp0qOQ;+3uebICvBlq{STMa)YB|3cD`qK4wC|OXqAskl+zl8jsVwRAoqTr4@cPQ4VIm%p z<~Tb>hfb+w=4jy}y^}&Z*vM8p1}k-N@1%AxX6kkHwFuzu*^mU7l5pjg_e0-emyfyU zE620TNz$47Y%#RLMNl%#AlGr%CXlqt#QV*1ueUP=GlmrgZ~O5Q9ciYFAs%mZI{IlF zHB53b2Al2vM-2Dw1|hV#3SKFP@G`{|*E=N@$Cz|lEeUY7S%1=QMzCmqlJ^2g;`>Ks zP7UaVX+rVQaNA8K=UiwMg=i+qS;6b>SE$)Lyi!3u6gAXM7}Su%CCD-t5P>7^WI`z& zJ3sfJ%cp0GeM_Cxa=LLbO8~QHn&ayk7%ku`@|;OwstUB~S7m~||Ln{MqfDVpPKqc< zisKwPJ~w`KTNM2bE?&vGL&7xKSGGpTB0JlX3O%HKuw|zkHD*S_QVQ5G?8saNzzy=c z9WhI!o;V6x3@~|{j9-gf+s8GHnzMwi=#eP|VXy)Vu{1I-XcABc*myRiP6AVn2A$#u z?+4oeN-D=w&r`B^7S@BL?5sC7ruQ&0h~Mf3Q@u|zf)?kccU3^D2#@q?$L$E$k13{z4nKV-pNt&={RwWyaUR8Pf00%(iMnjp{g@9p5 z>G$xG#9OiB6+O{v0i>CzJ|{>Qf^G7lX{Y{~;`iESCb&wE*^ruZ6=!;N(s#FS)+B;Z zquGE;^ftC6jMi#rHQ1D%i^*`|zN!qpN?3S4)+sS&qQ@?1T<0tacYZVx8pOIm{Q?9r zPRYfHOj_)Nbl8qLSIG=o#w=K)D6vBV+2~tksXc6>f#~ztwrCLGazxh6h<*0!CtpRU z(NCunIH`0i4#JblD|`$DxBK#WqH)5TrHYr{5IbX@P8kMWK33nV9Jag*qI@vL!@@*d zv8(gHF`Si3P_>2spqw-pFmZ|~bu5sX#F3p)OeLohrg@#3m({&s+mpdb)Z@nd$>~BV zO@^z_ZAFbEm7seTZAl+IRIHcc^Bt`kDI^bgIYz2uv<;@yHYpTB1%cP_DQY4Ay3dCF z7<-g)PXvY-?9OK9*m;e81592S195mJSZs(8YF3#PS9!v8Nb{t9j|CmuF7>Bcu}`(F zoy^88vWBh6yvRG=hlEiwiF`%Yyx|{#B~@66fg@F$ZWVeQdoITfUY}w1NJfNv%%)NH z`f4x)n+oB94V?YpBe{!6E#c({OD6rzYVZUy_WA=jPCyn@*YaF<^ z4w~H&9*U5+j-;faz{JRa+kGtWxK|g3+KnUSIycU6@K=-BH527kQKSZ+X>YUNdzUV6 zi>9t+PsNs;5p$<-a0D*rj9Zmt^Huo4Mg836V&ireXpp0#6-IP4v71ao-E7J*%k4I* zFP~m9#BPw6q{FA&nyhlf{Y_QF5;p~1%iX27NZ+JWfEr~N%>6A#v7`Mq*XM@qZKWSZ z2h5Y%es_8vN)?P)r5uF7hl`uT!Y+gN)vN{E81B@`4Y7X7#nTc(cuwJ6U*Uai*z4aD z_Cppl+|ZS$!Zz43;)~lsVyAphp?R;d-S~YQGsTp+B#)8Wrk<MC0$uCX6+W$)bAu^m@nvY3XlfsX@zk4&>>-;X z?9ot_Da1AB^Sg`_$A@GsWYIoYMh=&I#_;mK6R5E+*cDgAFQ+V}BQ@uXj+dkD=O$+D zHG7+rdVbReokm#Ca=rEj1;35|$OQG=r8E)po$g8l5XZ?+= z52QUchXohj->p$<^$|A*1hR!{k?rcaRDEy31rr!?gQ5}B9<Gk}qw$wtJCSMq5)P zT4jsx<2Sf;yqjnVmEH7kJ-0qN(7W;S^T~h5Pzo)Y#k%k}oW>S})5w(A{=#YIKR-%7 zE?zk+*w_BTX^ga~nr+djkF+ci^|`E+@Z>_XHFmHI zlg&#(I--umg?Eedm7x^*a3yZrFZ-$4lCdW9W^e8;vB~iL``0l7d-9m3W>{A+jaw^bp#d4QXw-u!Qwb- z-tYxWy!Ob-cLj)$R+!0qEjPT50s@mI+h(7Ya-XgD-wiJhu!(rOnMl^SL;b>O;8?&A zvL1u~`N{sBo%)$I^`8We{k$grZ8(h`CNl zBPe+c)xVRZjjLc2AfUF?$$C&-^%*(%s({P$_v6vZ|a4{Nj8-s=hJzrMM=So!i@)0SXS(!{ZT@Q4KU(o;Ui{UrKhvduZ1ew*cKr(o%}+Mr7j5vn z!06}v^N$D(_wS&Mi1UAe&~X3cTtLLb-%uLvKZVk8|4S&%-~74FTpZk-P0T=++uZ*- zO7pXxKT<2d%&pl$@Cp!w(y*{FfvlI=*#S&!KdBXf2^-J|2w(%50kDIzYFN2h7>!L$ zKtG~Ek-bJ{KsGj0Gr*sxR=Bxne@)YW8j=4&uJyA!f2@j&gNYqT0svLT3PNf)xtZ8W z0PJjkD~i+H#Mqbvgwk-av2!p2x!Bnmjk!U*4?B>XgVmfJXv}G9^k<6#vHKu*?w{u5 z|5H)FTkQPN2b`6i>u0OjflO>5&WD4WiS-xZ0|1(s0$I&W7&(p2K!gt`2=3uF23Z_{ zrXL)j%8a?qjZOb-S!|%X{4+sbq1dv%`oks#<9aqvE^`nKNB zuOOsckCNQ-97+gn$Ao#;`4e$D0B@Sd*Ym$dcni7-5g9e+NeB@P)Gv3mllmEnKWMt8 zhcB!c__HAkY6}K$LZgQ|`BsixRWTtJ6ghGoRZ+CkM2HR>SiRl9X08>vl(mrlREYR# z_z7EL{F3C7Om~MDeHbq%_^8ui3FG9r0jQ-#!-U0F?`U1(&D@M=3-fO0qa9)uVd*r& zwI*`jp`YV%D2zR$ljs8dmyv-y{i9O%%i65RaXGBl6Ge{Yuuf_O80$svPZie*EOCv# zT~h>R)o5^6CA86PzTYhL**icLQ>`ksB`l;#(HVHfw<)dBON*})a)+SCNyOk)PBeD) zpd9C2E^3=Blu?gK#D&vKEe8Nc6ADvIVmgtTn;IO1B>|u~OUKF1^;x>BS)gz`=v-PX zs&6e3*lv@2(G(2LI{akSR?g|Ck;Sd)lu%M>_^DOxElb$f2igQVkTmZCyALE~53d__ox$@{!#)V-RO>!Aro4{)Qm5#7^AM znFl->{PWbE6Kata+V~sS4D@0_#kOv_B~D$82izw+eLDTZeTv2X^Cg|`FJ1=mkjZzm z31*)wE%0JENcV91!Bo)i7f7+Wox3GlN7&LPS)8;;hswvd!Xz$Cw)xk7Jms`DI<{X5 zXt!O=Qa_D2$%NFeBzb>Mj{vi=8Vc-AVXVtZQgSK8n9Ag$hXCVt|TX`l@>*=pMR)BqOf?ayJbN6Q%@TJQWY#j1$&R4s8|!Im99s ziQl296;#TToZnv{wy@z)IwoY!kcZzhF{zB%+h+C(vOr+8WM`krZy!2wPQmP7v9bGk z#Eis`4c4db*7DbV_jyNCNUGWr4G#=tzWMs8i&{pDTfz0wTtkk%CqGkmF-d{V!9Xr0 znoDwyi47*pJb5|)TaF7=cRW=JAsDyC*K!7mH?NGo>U)%+idat`Jr2Z%V6eoA zz|qcdYu6EtFMi%hT)IYAP0OBvT(@T{a|tJX#zA^^Y{0POFZhh(TpqnQ)-ld=GN9dH zC+)_u!2m=?zxOWlU|4S4mYQ2wBjT0rZ4BPaB^v^*?qOFD8}F(1G*9LAh}L4_30ucQ!9Ws(FEXR3rSpGCJC9z;BBmO>ZwqU!1 zS71Wo19b8Z+qUr$y89hTWD0??DB+Y0O?93?j|PWM3krQT?3#&so-e z`(YdnG?@9h9t5_Y%NoNEsVLHfnJ>s&81K^s{Ue4omNUoof-Y_nt8p!C zs4TxplbZcV8O24Ka{OM(k#8AbJhYE56U36XkteaBIviKos{J9if3vK89!tJ6%St@6 zdhc6rp)sYhA1C`7?#p;Q!sM9AhmQC>%Zsrjh;M%Utozlm-tjdbnItw|0D2y+GUVMt zOm>Fl+%93SpNpwj)Vf@-MHzOBysYS35k_?C{RLa15-m$)$M;oF@jtBJ%$tAExs1GZ zUVG#T7;A;&9}tYYrVDcH#s8s9Kkr{RQIgykA^DJ0JoX^^*-bSB2QpLho~NEou1ZX+ zX&sr305_3FLv=9FZjIbi=(DKGWSH$ZO@Q}FMJn_b-V}8%4?G#Bgoq!?ur^R$L(TEk zXfgi&rD}zi0CcFZzG8Q=^o}lp^EWR!3oI-7mTadancnIzQx$`sUhP5$nmy9R^LRWy z7@iA=m?ZEZm573uRJU8iI}kOpdjwWr(0l7gh*G{0yN+p^;)=W?d}eB);Gv6%G?pTF z{7S#aSWcYgtcu9OuH&U)Wxs)03R_75gD{k)wofTpT;6*nB&9 zv|yLh_gJNxko|~>oPww+O!@=oeldbeAupMj{`~?<{t4k!6{A5-%Ws9fkIJ-JPQB)P za=oshX69O#Ve%;X<#8ZSuyQUY~kV81F0T`C1*HdWRDM zWk^%|_pL#jBtFO&I+{qQRGH)r63Yf}c_&9@awXElZ{8O2+h1Qr6>v{0Bc3e`!$$`^ z-F-_y086_SEOekEeSITz5_u!-5f^`V#mGP9_JRf=KHsr5YsDfa4bg>BO(&L2NN&K* zrt?TH{z70Y$~!m4a`2FHMiMqnQVfG;H=VS%nRubDJcT_u9mhzT#>14QD+_5bi)M70 zcsosbnlj-Kd!0QoXC!_=@6%W)Fr#w&evownO|sjiR1I0E&{c>3O&VH`wfW+acqz%y z{7wH2%}eK$&B=zP4eET{q%dOE3m@JZ3(Gb=>S;0$kt;8pwg3LNORvrYd@ElmKT+}m z@&4)JC8R2Di}44j_tul>oXnS)N|APh%wIF? z%D)|^l1z?XA13Zeh+r=qS_@NVD{@B))bBnHjrSct3M#0o^V`I3jvi7BwfFC@gy3x@ zQL-tNd3p4(XhUK729^=pNeH>^d12OO`<`?hHq=KeP1BiH52~<&NY-d|MwLV8{*@1;r4@ zHC#}cQ62pDHO&n;Jgp&AM)60V%N+jTG6ssl0tgacef72utM~BXZ+vO&KNn)%!pWWl z&}Lf4bCwjEveEQk-?pxmBZPqK9~IW+H{p$>ZcO2KJnnRz*LbAAN zqn}+CHE)o5n8M+aOx0YT?UtV~4Z&V~w)XznDmH-ScVywenxF$%e(DnRm=%qj&Fo!4 zQyh?@`E?S1eWt%tEL?2=y^h4rVTB9r z<;0*TZpLUl(t*s42Fr5Ry?MY5x%u2r6XSWKU;5~s33h7Z+Dp-6+AV@qMDiw=9s!cj zh9prEpwGfQ7q|0nU%76@{>Gct=Ukq(2a6Lhia$j6bdOEhV%jvNYxS`uOARC>Ij=~J zWUM*2J9oP&*GzU9Fms||=NxceT>B7KgAuv-nqH7u;7t=u1wBV|B7J$?W6Yun{>){$ z;-#{xE{5AGiXUpIjNZH>RZZ>FL+jh7o`->#(dND#cR$k~w7WCfmI-QV6LzHjhMtum z##*r9t?dcNko&-L<#Fo$cS7C|dOmj$z4d9*PL)j)(F?<6Na9l8AM@4$4Si}#wAUl_ zUhV1Sk(}%Rv=+5(KgzSY*xWF8sOyljA6kc*E9Y?nC~SArcQim*+F`r#52~6{LT9-! zrx>5gdG4<4U3}hJ!a@w;lfXGy*>pS6(A)bNN|UxQ)eVwxL7%cN;Pv+rFVHU(Xy``0 zPbch3ae)>y_;O}SNf3r-X%i_JZ0mJvrZX|DyCTNt#s~fFTbwX6_^t<+Pq8NtLJuA? z`YZn~lhcvb&@6mUhsYHlHbY*@Vvwx3gd?94JxM)5@_`rIK*kh)pbRgmKQLsFGfvrw{7AtYEFeYT3| zu0yc&_Mid-(REFPyx~ZeiBH(mx^qgw^c_CJsEXDro;N{XmHf(s2DbTYIK$LZbL*9} zFAbL3+f$ZApa~n$y<(TX7+j=(0OQWhZt(3dZ16sZY<$?76uIylJO$0_WV7<;PV5 zElae7t+b(=+Qp;{=7ZDn(jWCu!Zfd{(6tyU^C3+c0y_gy^eu5oYYxv4G4b?$l|mM0 ziM4%$x-W$R$p7U1$7#CPYoyZ zS)BLvYeVAs&yIeDT_-&B-_s;Z=nG(dZSQD;6=Z~p%|j+5FJA5IK8F*$A#luLX<;+{ zk*|ysk1NR&Jm_@T4~f_DeX5@lHd9}QO35&4x~9JP_-Myr(#nq?9kB)3Bi(e>vPRDS zDI~LnBIBUR6m9jXXu>0g(awUduheiRVse!iBd&S`s@Z2somV9ZPDLNe%t&awVyID5562~x z=idy1RrZg6qDW}8XOVtfd>Im%5Qn0+Utt4n`@s5mv| zT)+_SszFkoLF4t;I1G6SR z<5{vH;~713GqdN*d+H>^E|%q*^6DX*;RRjJi}NKFqNq1fBmH;QwuxGRS@p9LdACZ& zlB5piEBMgOQ+7TS!&QJ>(tdPMQSzYtK3g$nsJRJ%P(=uw&t9rbv>4aXNvxOS;Pc3_ zskaSmSMpel6dt&lJ)$pV_SpEfP2wm0Ns6{DJrf;)PkD=hOuHIaCL@0I++0bd^qsZ* zCI-he^VK_{OkC7^DP{A;UW$6RR~7ZpR?#10@1zV?KlNW|)6!9P43Fd_;y|{ZS0l{r z%flAvA1F&QR|90EW)8(3&dp7I;t?X95KKSvQsUaa-l7tmC&2}7p+z{9Qb+;3B=uhM zP3wx|@#T;Sg_;6Zx*LGUWK+9KDu&B2}ax;T1MpjHEU{fUekl=@E0Ir*a(8d2L&6#Oq^xq6t#ly0 z+gDHBMA>U?wuqgHg?rG&Z7jVL zQrdlTGj8VB>p1nUA}db5^5eU5?AiFK!r|M?&A!<}hfs-Zx*^Z0?Tl}zixhm`{23Gz zQC5rn3!YbgSkMbCNCnUvy{XHmLtjjPgp{;UX&qjhqP3kL_%8NiQ5IpO>sp>j-QbUl zb<)t_?ZeVTsRSp=8n@J3$f<}BJzISEig>76Soc5mz@N?x%pDqgEOfIxdwVPl-#yAW@6Xr5?S zb_bRZiUlNGKw_<`wDu6dyOIaFnpr@A6~e!JukXzj6WdpqW>_rvDkGpc*A8^U1IkHXVS3`(M70qxo` zgziUHLPj=1rTYQU*ES+a0#}f3Yo-=m?$tQpXZ$Kc znqX6uPf9+OEK9f94b}?EIrVhQJ;cZKRRB0rEBoy5oZs&VcLH#>O<9aStO`KfRyQhh zelxz2=ceTJx|vnQvE)L1Rc}x#tDfCX+r-<1e2{&s&!%5D`h0y+b+W22KfT=5ef|7~ z%os5?Lr+qHr+6HEAX>F9y{TfWF?Lna1E8lRJ)1HviEiZ&)e#TYYMxs^%72K&;yNhj z!F;h+QrD1fNCkIRm@foI;GMZBGTBO4Tu?cxb){KR0@8D_%sG;SyAE=#j7i!hd6MzD z_;KckG48&ft}JEoI^fyLU5gX@q+#ijn%k5+-573l| zEN;)Jq?Z2#X&s3}wmg@=s*=1NLQ01WSAKXY;K@b8t>RNS=6;M|yQR^~F1P{^6WNOf zh<{W#_7bw5{T6ZNuqTYOrWKs_sTKp=e=FQg+~7ce8-KL7CaG;>)d7Q7_jEsmu!cJ& z()oQ?8&lSs6iQ>7n!Sb(?u||rGL-x8Xw?BTQhMInatQ<-;;RwGfTub4lrw3%JDGL0 z#4TC!HD9V47)(74CF(u>*Lo<=Ew{qo80vA0<=o#YQu zl~QTb+K5VvI&&$TVs1$!Y#Mnb5lm=glB>w5jhJVbl{2cTisYqoL*-o&D$8TAH&2)7 z=)6tX81CtKJk3ZW4y79I_NgCfcKacEzpsx*u`Bk@dw!@@BxM*0OqOg&b0$TEpxTD8 zQ#vzdj-` zIF*$o-juC?Z4hlEG1^8`#lG6pSn!_z_Mym4$gIh5tyCr^RYrE~XdrR9%ai!GGgb(h z^1~(zR6z1Ot zz3bZf=>@BS9}4FyPV3{G+)~yoJU54^a|dexN9vU~55(ICbRu%GX$d+MYJ_oNaRd(a z2k2Ll!qk?QlZw? z&m*orpi6TYNl+S%)5Mitw_e+dpFKeSUE-jJPw$hIbfs5hQfUpj<&lI`*;CX>1;7J>-);~eh9(3`-%)GQU7<}$TXi&9CUm;9SRRJty1RVFo;U2n2 z?Q@AUgp$T4mEg)Wtl_e2=SXECE5)dXDdp5@ezw%Bez4@vw6gT1_2SoH(0p4sZ?7DwpAM{gEeP4=+w;u2tRCJ_lts^6Sq4)MDP?`_GxkuiOB_2=nlC{{da0_AJ3VJ< zq#K{#^S9!Gqoi14q(fa?vyRvIx~(Gr6!=UNvFw}KHXl?hbJ^;Ig588MWbq)D$sBsn zuj{|U{I&zL#>dk`(iFSla+mZq678wu z9%a#sAAvHQ8@soMWF39VarQe5A4w=v+F*~k{_E4N{%OdY{pX0$7H|AxFUiiZ?YdW~ z6|2IVr+x7RZu*B`2^0J9_9VXpi{?ZwQ1ynTye@BzByl2jNONx{;>*xmlY6}+yIdqU z+LgrS1mYmrHjZDO&keIh`f`R;xNKmtD-st3;#|bD^f*o@agWGcCm=>l`U$R_5y+zD z3q87~Xd=H{Yf3B##f|lYZaO8u2N#=gVyLUomkfGTto1R;WQT?FTxYxCGs2m86q_FF z4Kufgb^v(Hx+a9wUe5O(JXg`a$#`GuhWC@F=h1SxzKyYx2i*3)Vc!b`C+^*fx-H-< zRCJ6L0wtt$EUcAzs*iaL9IC9-Qsal==y+muQ*<>_u_}4%M+$y|obk=Xp$o zafc19wHhkynCTEUiff^PknbZjjCoUz9ctPlrQVYV_twKlrTk^cE-#^d0ZN9#GRNK@ z9Bis8)b|LiXWBP)hOj^m$7Y4YmO9@_ha++;UCe}o2>L~IiqCRe?|s(f zm8(L{-)Nvq*T2o_|K>`xxPi z&yrVTCkzW1q2y!3KYvL6MIL#o`iFzjKbLxO{w4MLOX~Iixm+nx78W6P0FZ-=MVwt!h?P~Cg@u(%m_=BO9mpXr z!Y=+(i6u{`GZ{RXEEk1rYry;iwUDS zzzno{#l;TNV;OTBGa9k6u>jfG*w{EY+5WD_`oq4z7xeqke~@ea9NLuAjFW@K$P@%! z0!=_`Vk~B$NGUEBM$lRwklh5x$!=~8QZoK3>ks?>KJ-7D`}>Fedw2hB>OxbKe@F`* z-JETi9GoqfO--21Y|VZ?EJ536HCltL-24lE1a!x04`b>-zWl{sD6T ze8bj?#M91}$JWT+f}hNj(bUY`2qdf}6AcGFW@n2WhzpY(=Uhee^A^HUc z{X_2cYYzGcxfg)tchSv%O_Ti;ZvA&O8S5`E+&@W^{StHi{l_*4Mq~XAZ38*4fPRF7 zur&*i?Jc62y(#E3AOcu^7vuafoVAE_n_e$Uh0BdW~SE)R9Gn!IYOu2sC3A6EW zo+oxQ-NII7b9cw;ns&)mtYxAQXxZBoE;@Bu!K7P?itLT`(s_@2(5lw8z$g8hqgDk~ zij;DtLo1<^i_}ltt*UCF^6grkhv2(I$jJ42uGEVWT9-~|Lf8~1E?zpNMl_=o-PspD zOXA%2hg{#89)alKz-Q>1602lL@G!5Q5I+h3__f<6)^{$KqV$u(96FL!?@ahrb$q_i zMCZrr5h5Wh+=xuJRn)dk&U0w@l7QJDVaMoKGUlBjZ1W&;zODLduO1Q3H5-sTz(q$e zpkj7)R52f`PtLIONjbpkej!ASt1JYTj>sOFP)|{`+Rd(ND{JaTl`ZjG<}M#J&FKmo z25aY&mfi9crd$_%Yqx`Fh76yN2aj3Iccok$mmT;pF}@G-G=(%_G=4L%5-HkIr|t;# zaG`z!v0{R%IrqzIZ}}JABoKbNP-sYnax9=39f5+`*)okqRu~L+OcV1nxXu@M!~t?v z5iOn96Ke)GF>r<0Y`s177iq!QwEW~4HbWkyRMA4r+6C_42D^xB{MM~KpSe4lP6(Q~ zh88fhkwz&jl`KhOw?@VOsxZ8^IJ^P4Xgf}hT4~EOpX^4i>F2kO5f*ND!=57#1;y~# zR3b7Q0I9iVd)R;zupR*5fHcJ7YkW}*;e(*bJC=U!7}-M>$@bYK?II7sy2|&ctpZo~ z2sML9sXViRP5tm|I_zuA1BW$e2$jG_vK-h@q zHspM;42|P2HO3y8K6_spgf~7?xLVw*f6Jsx5IxEV2BmphB`T=5Hc4-U<4nDgiUN2H zQsgw#gtggutGgC55-7fY)||5`B{=8E-Uuhlp_ArGL=Y;GI(t$~ild{6>ifp6yRwn7 zHBI+9LOEL<$-S7JUh<`XM}XU`IUixMgoGy)hYt-h{G#3w3a`;g^96Wbg>O*}=Y_ZG zQ3U1W8ifU6V~h<~RTq@{aA5iR%?&~8Wu1qx-gU3B0y~MBwyGwokv~&+ zpIlHx8CUmb(*(txpa~_lQ?Y8(Fv)6%V5k&*J5vqRgITSilcmFo@#0&KJ`%0~e2AK8t3bVT=~8;uoo zK{Dhc`rs;;}3mt-AA3T|!o84s*qYBkBg{z)I|(+s8pw0imxTQ*9cx&Zq-Zp+l$3 zf~?vK-VI_D;?{fy?gV$KXV2Sy*RBe%nkW*cCeM|dX0k-PyXIYZbK;LC6JsN9kG4|% zVkH6PS0A+tgkw$UA!m0#r??HeisLA%!V^9Sp8xSJAAOk3+bjF+E)K?W&s}peD(*N- zREC71Va8X3>6z``rK=_>aYNS}l9nkc;e0d4ckzMz5gJy>w8A4_tiqjo z5Oqb^nR`%x!d>rCi%W*!E0z;m4kvtx_c@DdredsiJ{QOjLT7aPRo`l zOw>sl4I6#MM0V|a&G0JM$DwTt^Spi=Z2pzJD#f=V&^D`7JE4k;d~^`TTg}M4tsmV9 zcm$R-!n}f~!(JVj7L677_VC(U;z*rFw#Y*^lX5qCDG=O!dpJ#xi?i50PmVu3sG)M zic}MNjLK+lRqI}G%;&6i+P_ZQL9UM3mqhoEqn)%bP9A;nvkPTX1$MQrhXo&Us0`+d z_V>TJEOu+_{w$lPXShkb*(>(c+#P$#xg7x`pbfcNd$=x)@WVARgl<7il}%mMnqFE- zOs}KNDaR9#Fx8kwLkAFh68_2*Nh8zAClEa=BHI2YM$|LN8Qo8xBxh>T_#l=bg*>FV zBF!PrV;-yjxrC88&eg};%O$2~BLn#pIp2;#*Q#54bLFf@qg0kGz(bgp?I){?W z5V#MAqbVp>$tH%1tf8V2)PuzouYVly-FolD`DSm+P7V-%{N8E^?x$_qtvUedYU@*) zuqVU(PM=iOtjN9ig++g$B%6mIou4*fZ$6jCn%)b z9w#yYS0SFm>tcNPx3e>74@(~Fb5H)1Zdg{UguaI;*fNJjmPTt4vLC6~zryj@^PFizptb1jzf|db+^@?7GQUP$nH(e*Eq@V=1S}N*q z9x(%7PT_v1Y9K?JL9+OcSR|u6VpU=qd^4XbVk|wzx&u?L<~}PmRTj=q=JGM6w<=F^ zvL&$vVxTiV5odx;VUmI^1Fy*w9`>Z;Yicp>NFFx?1|E$)oEF@vW4W-7xW@eoqXz3mPDjS zBezvdU0Y?8X_1g$FI}FtwI#{SltWHVKN|98hp07<9?+_SIYVh^?okJmF6w!jT>Y;liE?<$2{-LyYN;f7~N ziH@%!Pn60&Z_YD#dq7$JvvLa4@pIZ;#cslCXuhBSzzcZaM^h=NAiE&oD`mU3K1`1^ zNS#$xmF?58#Jh8v$uWH=2<)g=Epy~@5!*gR^E)OT0q0Av-C_F>R$g zV+zI^_pAp?2|6TOxftlB?AriB0**(`W_TpcyOpXRVVa#Sr4){obO|NwsLRntnI@lf z87FwRk5? zTpytD$g!EBMWh3ATo$*{bsE}yuEEE<4jGJ9Ac(CTmaLdzto=5iH8Gu`-<4cxN!4JK(J4NoL%pDF%D}ky zVE6#yJIxiM%#_uJX3#)NfL|445Jajx=6Q15_m%^0SR9RkyPPoNrwKLG2tQ!vW!%0z`AR+RPhH&o5{t4~5y`abT1zFAlxW)q5 zi9H|!&7+yqKEjUyr!OF%$qV5GV$JS-N76^wM+I9FYYFW)uR2+0=&a=`hQqmfeV2y> zq#V1Iz2No7a4Of&%VFb7R;6%S&Wy6KZu@!S;h6=_-t&x|^{zs=1fHxpQQ)?gYMz`9 zIq0d>{8)JOb8R+h)V1fkfQ|ucG_oy&mJ9Rnu?L^)GRl=6t1{wosAQ%MG`2#Njh}VndC{IXMO1Br3d$HpDbBK|79PWAFePc6p?{AG;Ew(8c4*(sXNo16%nBj)KGw_ zRly`eQ;_wPmeB2yRzGlggcT+f(D-bLyH85w!_cO!})Z< zGeU6une=4HbtHP`(XX|1g_efk$hZvml_3@GHRa)Rk^-zqqu1S#22ZtN5|$(iX^}KD zu^L27XmD(>^vqMahczKc&ZjlOAwoG8kH%17t^;3VpE&3jAR|cn0aG{M06rIpA9aTO zynlx}MI5_lq+a=cK^ff-c0p_Tf;4;A20t%zOSy{ns0jpJXQwi}?EM$;kI9g>V>+I= z->~!t`M~OtRonXzzI)7j1fC@BwrE`V`n0`#3A2uto!AV_=3m+&9k9|nFMs!;Wg^ii z0I^(vg9UVAh8Aw?zo>!ixiLA35i`8=Ghm#GHy)F%zWa6Dqv^@5`FiEdB;NL|`5rG$ zr|MS7)Y@cMSS(hU{qXV?JXEzr_NXA%@j9?zj6G8%-QC^YU4y%Y z;O-$f1ef5!HArxGcbiJO`@McM-M`m8zc({$&3b>`MRC`yZ=LVEwaz|gpS=Og$GTqF z*GntyVC1l2oB5HZ9#GzEM+MJN2 z2Db{Gcq?C#M2f1AZ{nw8)eY@z6uzC$EIBag1(mRK@L}oc{?o$)Lpub**E;h*WOsn2 zbAI!J`UjVX<=>Pg(&9RPs5S@vs@fd)d)4N{FPplIRi&UGs?A~tn^TvgBD=JT&Q-H@ z``Q0ALErtw1YLa>`N{LvFSZnLf9;K7voF5CF*Fu>xApZP;9%MaV_MFq4ZVGz)O{s*k<=mW6QRi(|7{HkYsS?VE{uAD|h& zf;wO8TdcKk#K#>nF?2kc9Y?%CjM%3#zl+#Qo0FT2@7iT%GCe`h*y!GCaF8&0VXGsJ zq}LEf3JVO2JNP2=D(u_r`snhL*c$r*3w`V!e`kW8PfLl5d-Z(rO{dG=-pDp-=+o~^ z&=vk^g6@ilo}d~rnD4KUweBm1HQ^L=SA@>#EbEK&k=Y0N=>r2>X5!7kkQM%jF|37z za)6Nzwzxl4DNwgwF7UJeR;__EL&L~>1n-ZCwvu=0wp~6SWvZ#&2<;OJ8R%L7?A#j0 z&ls$c`@4tv;nA9Or*)u^A)c7;jQ@DMe^ju3t+LtwIhp6@srZlSHe1>lSQr`V{MIA> z;iLO|G7r-~>12OQ=3)FVndiS`p8x-md6@nmAoKjiXa2uJ=3!#fGhk)cGp5sLWn}`p z8M5oqv9o|(%MI8Wjo4UN^jTQg*?(i){7o_sqdv&cm=S0U)@?QdGkQQQ26P}su-F?= zp9x^d3}9w6Hq`&^(f=j${9Q87AN*eb!f>)Q`&UNMFQ5J^(TEF7So*(kl78@%jBV_# z^c;EgY;7&g4D=k$Y^)iKY#n~y{_DSfZEpTCo9dTO_W%BN{Wn~HD*}J(=Ks%6*WY0A{3LAr zf_?wV;`s?af6wA!`sZlL|H$HD`YR&MK&HPX(){bq{}5>gGX1GYGuSlzA4vWuiw6h* zyNH9pvdm!HbFim4E6WdQD6o`j#?Jg_ES`UIp#GP_!+%W5`73I}zXbhXxHe26(7#g~j!>DmUt|5@1-|@3 zG#U92=8Uyp5>Q<$Hf5Y3u9W7MMfX)+949!h*Y45u2~Y?ri)rNHJfMUv#(e88oqKYD zMugS0hqFYFqvKojQ1L}N9O1-T6KPVLxaJRt zZLFg<-{`Y40C*ohT^Oi~I~MhPK1rYCTt&~bAYP2}z2@~JI0GfDLk zl7+R{j_MOoVNub^e#{u>bMVw<-OITQl+?t~FK60WJ)RQJtL~2y3BH{;bSe*xR`@}M zpj%+#gqU-##K3D)n97xwuzsiwQ>!H9pcSbX+?I8yw#e>N|r8!jfYHrC5Laza`5)nAwnXV-3S@S_!5!(wr1%N2R}d=vS2P- z1(f2g6lRfZW*}H$=~&Oflsdf@8n|`VWt*(R^g%~_nkDD6e1_3y>7*=E0jV~1&sMVC z)Xd;vCa$*Q;24BK8lpay{~*Bo{0p)P8{K>@_ewc?MF{V13Er~7K_=Qxy6vEgC8(;| z0$LMpv8va~T?ZxA?ug@nfOV%Tv zcmCULDQ?e57)eOYw#*3P%7Yt8!J$~N+!r{@BZEXeXHoXjYd+b|@7(!ptYt_T@zNgh zzS|Z1z-8DyCj4F(Ov5l}g3lt0xwsKJ`JkPI90pKf6%*#&r1)r!7B_9LS{j>tETUSg zq>&W&ct#O2MQ~`pNo0?hz8Utb{OL-MG(pW!3{#)S!>xdk*J0A0cM+8g7+5BjNyCYK zh>sFWn`ee^oL;`ol$d*XilE(uhk_)>;;36v{QkP`VV=})>a3Fp?S_QzJF42TD@0q+ zd2@g2W<7F#GJ9$f&zDn;cKH(>@5lPICJTxDQV+XUCZ{jWR8=EPwZPDs2sN>dI)KSeJDu#ryD-V=%NoNiTG9Aa1<#cOpQ zy;g#>O@|=jbq0xHa4}u(0I*jNn1!S!)`H}%LnR$@bQG7ii*J)si*6@_7Aqwn2H~NM zdLb0ceA-$#nVT}K@c78qGGU{vK2(KeOcs>;#JUfXeC|99eU7n(6+t`1^N5;6iRN-X zndg?R)=g#rS4NE?w*ftj{z{{C>xi0ml7;1gtBya_Fm*G-@)ZX2#SZN*QN}Ing|aBO z5O;&DAnQ@aRKHZa9rf_!0KQBw(z(+?>uiC^t~q^e^ZZ&iQA#IOf)ATq7AMbltEx4$ z+%B~bmz7QIB^REY>FVxjG5GIY@T<;jH3~D@BZ`Z!K!$6c^(d5+fp%d?6w-ExH!ax% z{snL!i;*T~h#<@`aFB{#U`cVN%ii$6#%!1<2ukBAG^-B_EVL@+{!XY;WLEGl=M~z5 zMafRx>#6(ih1Ay=VMgYS`*~>o{z@kn#FP^%H`I|Ix9L!C-{No=-m^T3KGx&PP@sfa zdpYSxhQTbiIizJi9Qmu06JzF7kvR`7$(zkR){!ciI$U*Lx+Y=djrykeVZaiE)eOCl zOAFIpmdtsi+uTde!PIkYXsF_pL zMM0>rhs0DXc9pfF8I0&Nf-O;kEw#{HuK>5~>_WKOIvq9MyF0QYg2u@3TP2?2{W_HOQSE(UF zIQB6w8NN6O!B@IkDZIUNZ$N#l=zO*Ri;*5o z17-)OSl|oT;{lvKGBdLL#*_vcvV&NS!0D9{D>%{mF;YmU&&J3|$7ZYtWHe%AX9uz| z{Z-jbu#*MrpX69S7yQer{+BrxgD}{~gY{?l{uk-i&-njKx&>fn{dba?X(}2H^F3JJ zTjevoLcMP*aNb~hR})amr5bWzb0!zB!H2+*J5$BMwo~nD_((q)wK+If!Wcg`l-;tCXJC)NpU*He(I?0it842$jd|pN+b5*l$QJ`P zIArCHWYIz&SVg_gRw(T*1QI!)wW1rD4W?4PnJX#b*C^NBC+o@x+$LTpSg=`Nxt_7H z=`RppG|I>C_R%%h!jU!yor!NBNA451@LH>3-7A+>0Z|@HJ77_+<|{SeZNf_f-kunL z#u#;GL(Mq~Dtr2*f%AdUw0*8!F!5C$3xbTa7PXGuAu26M%CuB}6gD;vcl2^~j_ zVV#wG^L8FHBA+cs$1x)fxbL&F5P6k0Lc|3L#}%bgB0?cr$&YKeAe+T6p=AXI*Y!Gi zFW(=R3nJ+&T{mLWaDjNzmIB%uo$<9#PA0qwbgTdv}(p+OMY#f3E}t7Ni7g0GdK5;;?p^Al?ct;(6->Dzdz4y)ImJgx(2kU62*e+ zWlrCn)^9?ajg=`_FB#3h_`u%57fQ`!+<<}{#5B)`f7j`%O3+6~>%v$W7uc89jMr_8 zXcOIg-2h)P|4?#t2#u;7HGgeO+ZP|)%H6}cBLIFak0bc{aU(h{>Y6b7oa+Eksxp@} z82b-waiyiQ;_FySaFn^;rmf_hFEts%zXM1v4-j=(?Wa)Q5o^}&1G)tJeKNMSn=qOL zLNXajzV_hXQmG7zH0qHx0T-R}aJlxz+NVvW~&&lK~O^!fOe zbh38+#u>5?iEZ)OV=R1L5x#EB7^8d9oG~M&7+4sYN9J(q7e=ZHN&3k$dUb_f^KfQf zlKQ64rMmX-YaB1K(bI|A{xExgC z8QDksg&F&rrY^RMv9@@)LY4CswD;RgV&-sT)Pb%hKOE}rfH&E2l?@eh( z$x{EJaNSj}RJp5gEkRH66VI5VUfhu%=8B7{=Sb@)g+WJ1br!%sQno6E*w7w}ge@Xs>T zTlr6Mb5J%xxOlO+bdcfXvYNG35yTZB#fEBRe7|26Zn{X(l@;voqiZNOZ)zohT}YJ z51U2Dd@chxK9(of*>?iqJf2D&2?`lmlRWd!*XFV;Uispsk74juTVXo(Xad5)n}~`@ z>G05^9d`oL6e-ak2){{60v-3tOb3q$#kO|G`Gp7MbA%+G!by^m`#^d5EuCip#a=7l z9m${8N<5z}V<;VIhq;AviSxe7zlXF|zs&P%*L}pwK`wM%^G7y2>~`c(r56myNMFTd zTrr!hKmbANGdVws&mf!Q6}^yP8~@0sYOjeR9KZe-Z@+EhP&{VNk)S>>;T(19=wbJo zRz|OJ?|uh4pX|l9Md?Qn73$-jx~9QRnN7+?UR77A=ZDF4i*4=n9rC-ZIDzBB1zUa# zeFcLT5O_Nwe?N&y&YHP<$nx7S8X?DdmvY%g> z34JWKm2WDi1u1nYB}c91sCUIc>8J+|-?U02NCKfwUc+DAXVdBjj#e@TmIS=E zECQr7=BRUF_0Aq*>~#Y^T9AFF5CFjf2l}-<)`6B~M%FMRQ8w@96od`bGpV7_8TH}X z77W7oFF)Eow!=@?uuFXmVGY{T*+7?AD~N~F3Z}9{nat}M_}2A?d_X3ofX?hd-53>p z-Qe1rjFd@wb?CE}D+@8C+v*~rnNv$?nxvC}a~_viENg5$n=69c@D#*q3Ifc*u$;Gc zFku^c3DU5dzkdyh@s^={{zr`W!~oC;=+GZFdkv&3q%VDvI3O2c^uIU8q{8 z+hR{Zc3dh+1#&0gpvyfQF2XxJRS^w%Ei(R|DcYI*&5T02m<)eC8h3i1o8!%LY-Zn<9@*m&I5o_KBOpWplIlr*0YP`2F@T_S~W?+poACcNVeTFAEZISn9Sw{BbQ z#AjO|yP>JluDn64ig0|vk~%4=9Ruwdfb-oAo>llx&r9FERFNzwg1Fq@4xyCrw`EDZu>OXpfVei-9q_cXv- z8#8)*SG%zs&oMjsY3$|+?E7BRQxW-x{2}lZ+&}q4e{N|91P{o8lWJlh;HOajzngUg zS1SKT2LJ0|^xsKmu@JuW$^q?P(Y^?M^5HSDgcm$voKQ4qyl}00(gBQsU@`>@I~zdnZ!8PQ{%6SIpEc$GHL~~**v0{Wo{N7$ z7U0@0@ZYc#6TpSsA48KrY~y0kUmzdaPVw|r8CcMcQJ`xT3l2jIqKX-c`NF*&nEU*Y z_AtP`z+Eq!u#tEDR(Et_Vd8^>d#jJj$Eikc4{qMO$6#4A7M=8b?F?!nUhikMI7NaY z+PK9xhl476z@@VXV#PDq#Z5F5m*MZ}f!fQ=*6ZEUa<#M*HD#zRU2=y+XFmM3*i)@3 z`F=QXB+hMm+-B15hiSH(=1UV%&I;Sd2dsOsQ7y!$81;rOH_aA3(Z$!cYDYw=_ANV; zPv6yI3P!Q6TR9~NyvmLfio#PfC!;sY_6NrmaOOYhpD42wund{JA-uy2(#8`S>oNu4 zMRrjYH@o}f_eJ4wc;jkU#C<-i9=$ph?1s$Qioa^@@kto-F&NIuSpAxrOLa277TwpM z93%)AOLi9bHc)QgD0aLUe*R4-b$Iu;G)uX!*L;+a^U@d$X`65QDcPIK7PVJu=Z1~#ll+1! zR(p!lq8xFiMYUvxRu0#|CkYoHSVv?$&`U*Z_y}8nGd!AjT9=>BD z(+ipIbM+p7E`pdq;MR(VDEQ3&GEB>BnQ`<>RSaHeGjrdmSft>)$F73Htj<*ZO1*+C~7MK9}J0IB`_0mOruob%~;z2ArP8kU5N$(Z(bX&58Oqbt#)x`b}0z&uA5tOTCv zCOx|l`VU#Slc87~iUT=riklPJuEXgmpPA$t?`>hz%{OZ9C{e(}jaYfT4;l8k4G?4P zCzEJp1wo`5*%MR(>!~1}>)M$EqfTttpr~a$&xHKjENA$SQ3R_L_UpvS3T2<@)IA~I z3blmhb2#S-4Ng{e)mK-Hczs88CS6qyBbkWu;+Vb?5!s!)gqjTE@Z@0m&VIzO*lcGK z>flgFPFh|MHHtMZE}*eaBE#=hjhg+w?-ANTIHDos_65d3L=X0Xr{f3~N_8N(Q0^TSHzi_$H%<6uF zct;nHEbMkDoq>-xG@8QEjou{K@$2l0~OK9JHPJQ;xX!!C)y0oLkN~hj5 zDU$3ojYWBxdpe5;7SoHIENm7eYqbOPE8&H?_hSvfXW*}Ug#WC z7!9EU61=?yO`k=kX!XDP=&zR({~7PPIWD>X*d4mrJCd5!iKk+5eu<()7g}l)eY=*H zgTZV|tGAYm9dqQSZf^BaQqE_nUe&3f5*d=H_*j241Vy#+AgmzQy&BkFX3F^z8#QVA zS&eo)8ar1l=~`Y*uNvLp!Nuw&TUwWXPP#l*F#B2%L2^iyatXdjj<;e}=VYOPnah{^ zGM>kxM*D9v?pMZ21FDlrb|qW{)bWsTpFV^)>hCcjibRl@SX}55HK91Db>qi#>Tpc4 zH5_0ix_CK@^caY5`l+N$mt4BHa*B^qFSM{TJ2zJ=0!Z@wga^N($Zks7I7dRG=LXgl zsB0L{hcLXjL%(b_9A2tAglUVjU5Y<9uta_4O_+g=-5ylSk>ey3&f( z8qfgu_Fbbn^3{wyO`if$33(JEj;Pc42$d-YK{vxtb9j{+zVj-Y{|f*Uy`)D})h1r7 z47c+;g)?H#P$7=h=ud(Am5g^~^-FjZ$zmeiQoYJBnbM_jbGK>+2`#Q}Gwty)2?P#x& zpjAtI=1qxK--vY|%-ZP$=w$*jFwmje-+w0(PtlY+tZJkfMG+%yQ>Xb-8&?!EkU5@) zNJ}g;9s{&UnUjZichqfmg>%MEsy1%aJJ`t9+b>Nna!UE2iDFjVy^?vx5#&f9}a?czAA(+w;1M*s= z5S_9N=L0(%?MPyDCM_8YO}yT@YXU)4^dyf*7nK7dMP_2T-}?E6qhi zz}eT;e8thogh=TiKCdMDJ2N};@Iy$Ls7QCyu!mMM{Ju~T@0Nz=%=fb>1gbrEBh!T3 z{Jfo83B-M2_|{yh-2n{}F)i7vjGyd)tzJVQp#V;Dy}ANSSi!P1N3*zR1pY}tbh%}< z<+tv(#jCBO+D{9p#OK!`QXcw?(1bC>oKtXP;Z(pnc2i8ZO>vkx(PqlG(DMOUbuT}y z+Ssk%zcLIAtu3J}t>Mk-E7+6}vHG7Gom%v&sBewG#Z))sgCJa6ht?Au%YhQd~I zh`e!AS8L0g0?6~VhW+V$PtE>j_Xkvp*499Fxr}1GZ4cV;8BBZ6+Vo|{kg+e$1DO`9 z?~t=FL@QvEsY#>X6x`|oB*(7B8TNWoS>^m)5?B$iGF$_A2PP>6bt_miQIl2oiq>rW|q0nP*J1)!nd-zL^;)P44P+zy)(*qz z)H^vh_@hisnsWh3!y?g(p)wZgaSMjYWb6Y-i*_yL8?J@JvzTXTN?%i>Qf}6)8!!B-iG)CbG2WHVEVjfwuAL-=fmKZ0dvI| z(rl)!`>0mPK#*lzYRXHMC#vk16=(-So*Y{;I*QEwR1WpTERK|(#e8t5v;+E|SDeq5 z`Bio3)&Pe+=>vK~OL&RY5|vb_;<_4G!j`V38u6$^&1t%3xX;iO5cE|#8&N=IVV?(5 z&OH-eNp5%dq&)DWqqLVWW$O^C_zKy;8wPhC9t#6;ND*ygl_Lo$vH zMQ<7rJmr`2wnBwPdCQ_Hs2TY%_HJPb=O)NcfKAX>U<04kleTqBscqPuC0<{+k?M@z zpyW|TRhv*fzi@f$xk!I`;l2NK(KzOw<(Z6_?Ss|yVo2#LWynn{D^4UA&za4Rc%RYx zJXq!;Zq~dJ%EuD4sol9oyT=Y%+C?tZ2Tgg*(J(FpyWZx{9+~KEV;725c>24@b#6F1 zvHIj6U%wJ*tbkL9i++RWy-*0Etw%Y*xa%qy>3NaJK42XPe}m%A`;}{(z>+#Oy@*l< zi&;aS8?k^>nU(JB1$mQcO4y-TS@Z^J1a`Jy_`=>oGz2sR&Ni##AEV`eD((D_T%uo^ zQp7;uPiPCi{%lEsuRmKe;OkFqUGViMs{TEi{ssB|s}CLUmkHzq@$l<`-5dMgH6~$;C3AoJvg917O)BXuOMHK9bjY# zhW1PV@Hhgq5rByf%#C89Gcp3P8?%7)nOO9U{_?Vbpg#loKX>sDmIeH!eFy^5vxB3> z{EzmbJ}Uq$cnbPqRL>5M77G)QPLIh@A3Q$sL!(sB0A%#nz2TX`YEFLw@_!zxKUfw3 z+}i|iBDlE;u1DY|{ zEc$c+79(Ri<{t-4-}r}ut+5dk(0~!Z1OyrU|vD7Ws}ihba6zLbNK}L4Ko&I*Ph=QTrx~ zxr2{b1!vr^R}=!keFrh^ea~_9hIlCy;fE^ESyG`*zj~h=WI5)7aH7DXG<4o#EVte zRMmDX%eIR3Gn_|LxARzECF~PKa^e&6dAx6ncsy-#@L_yp#a173pJ8ZNVK>#(fV;kA zS^*&JQvwwFCJ%NXpZMM)!cKlHJR5- zS0*F$1{QlLApLevTotnp7*R{m1h#pDt?oIH=_7$h5{U!j_xLggq!vTBJ|D04ln(Vj z0z!(#+f^zsy(iFp?keV10PBI%6PT;#?(a`is(NV3?7z}-tAd{Ks>#X8Z;h_RW3=%k z^$Dyy!%2>sb0twhZ}|fnc#^3C^WKhIrS0k=x6ChD!?02L8$KC=`@RI25pp$R>DWHyjtG8#g8O4av3z?n0S74Z6V@eh~#af zx@~H?-@%D_H5av6Z?sQ=*z72#E{$6Ogd6u4fW4#vp=1Y6u+n!R#QS}h)9S#OiYP(p z(Z_F#C|R`p!uU3g5iyL7aEuWR5>{9BVOAB5pT9ICLP&!Hjuc`tpUu`KoWTE58`km5 z9z)O0ts_qm{M5eUCutU=VvA@7unWu=Tv?}}6kL1s zo=#@7vcj+N8Ys4)KI_7t=$juE;_)hgM&@|@LIF!&vawxkEhsb*c3|H7(kcQv!!1{Q z_#0ikR%6V(}jL7Qcg`lOzy7xz? zeB!1wllItl=A%or^m;+ z#{qKk_@>&iB!y+Sck$h4CnMtXHA+2aJj|~Jkd}P`_zjC+>m?svol>UeEkY$scj;mQ zgGu2q?Ck>_WMMM-7l?EutuNkn>?$XzY1lS!&gJ&;Fqka&ooUADf0YswmXKPF#|f{) zB@brzWtBuYc3*js9wM9xjJh3i zNfMlE4gg2ApSZ?Qrm%K>zbY0E z*jeTnJfPzaKfrY~y)=S8)%_NfXxW6Ec19zu_eRzJa0{HZ(~8|<=kcLdat@_zKbVeg z#4^o{N(kOZolBJKBJ5DhWwd3VTFS>O`CqNT%6jH#i=G7OCZ{!8`^P5|ck+!X@1$ZY z4ShGr7b5AKch7s&5-8K;Zz);TesBL7pMxT!@!+iuZ*8R1P=}uwP4$L;E#0P>sd?b1 zIq3KLy381OO1N3jZCMn(L-hH^y`{>!A2nn=D&Bl;faf>Oex8RY_~d19T8;I7Sx@iv zV3+2V6*rxvFI`6r5)dYl?vinxldjb6b&0b5?%Vz6m`cH$geqB+q-w(*De6wU4=54V zJ@ew5w9ifx$tOg^sujY|UhAU67P^1jJxeC)AbT^r^Qm}4)7P0knqVYjFsglRMjc<$ z?Y6PTscMJbUAo`^Bb)@vNiZvkg5q0HK@obsK(S-$kPvodb)Ti?gysZnWkKmbN0z=q5`!W^~{q8N$qWJ&BFSGH_r6!<}4>X zX>M+rQN6ww~Iy+WY&F#>W!nZoLgqb{KW};#MHu%u z&qQU?!VD)(>e+}RwW}OU(ORsj~iX}1*r;9>_ zQvacf51kyF=N7ryk&(9_r%8YUYnxsx4SraXaF|&g-8sKkz!e`VS4?-(r_*7Viq>k|T`S|R+xfPDw4-TtS^_$NjKcPq2pOfl|q&704}0}sI&n{Opah!=APCqPU_ z8ROdWd$f#ug3hM)Ecp+MPN2i8ROOcEVH)@%pFe?Gf>rDq1V6k;U`;>MzOK3TSe%>H zNEUn?GLUIP;oRPmM1$bLm5qW_h`dTaY3JcQodt|nVkubQ!_&x~-wj)tg2*+Au_uQr zoxM++l#m+fayY#vkg_sL1{bvD11u%mx_d_>%i||7w~XC8 zE}IY^AX9Pr(UNFAFH=?Fw%YQbLw|5Iu&?@}B9R! z88PXDp%2&|To1^mM`x_h#>&oS08UQ-Mluf`>Hd?f`R9Uv$qfJF&fx!`EdEZxl|ckZ z%mVs}j{lg*_uOq^CM%@96-f+;{X{b};Yd>`AWF#?1QJOGbYM*2UFCuNjSI>x_VVZs>VI_M#YW#-|XtgKsG|TnPLYii0eZ z*mARmaW}tfU8_Owez|#>2zx;{|K{_+P#Xz;Z;9ej&2*%KM*8k{f~5ETo`|rw`;=Y& zA`EF;x(wzK{6K`@B}ixlwzanKXviMwEaBU6^>m%f8j%3IVT8f6T3p>`Q^qgBNKMNcQQI zrA-QmWWOc1&)u*k2_?6E%DH}|XsxDRJ)$pOZuJPM8d7}LY-N_e?@V3IaS#H)U=>1x zO3w09TX1-(UWy4~P6_E~*3up#s*?ciIqQ5tK7<3UVJM7W|o;1noid!pp#1l zyz$??P05SCE)`IPdhhUck|SK*#47h}$p3(~xKfAlROV%d49aDF(y(KBQ@8O;?a%Ya zV9)1A6sChO;T6>bAhabHIojdwH+KbZ><%PgXpXe=O0>&}4sp(g%n`26?u3vblSTO| z7gC0Bp7}NRYR+>Feo3C;Z|!x?yW+-E%RZB@8^CwD=iRk*f7~kOr?!3ulah~_MV*~8 z$x8gz%g`NPaJOiLj;YKqWh) zevmqIQzKBobeN_(iEMUsfh1dn5$o_l{&C+1Pw>j$}Pc zuwr!zWSItJDjF1DmM+ctDO)cI#kZM0B^7iblJ(oK7e3EI3k`9D;)DfC0fEv@b``3fTsy>~)~iP!?am;Z>r@3US`9|9y_xNI|vM}?$!2k@iOtdvy4 z#Fq~KUUlqZ94wTx(xi~|+b1QJ<@5a)IvMP~15NL|$ zlmjv`kcU2z0c4$VM1-TJ8mlMo-u&n7p#nJbvH(vgD*VkgLU zXQDb~YDuTjrqLJ~iOJZa0t#{Y6~5#(_n0K>kNTsJ8LGMwm)VSG;pbQPD^64O53=HQ zj9N^*nLRsQ`%WVh!V=+dCn&zaCmyQoTE7nRwH<12$0PM7FJxSffRB?+em_d-P_k*) zzJaCXe|+G;h!D<Bk?a1HI6g&#?IY9G<)$kSIp&6trT0XSN|mU!uy4WouLRB~Iog4FKECqShM=5YHu z$&|Rv`BGeb&kLay80*io)*ky0Dd)z%qo7on1_zx9Kts*>P0nX`hn6a2lg+ayEI;bs z^x4NTC&C`VlWPpr3y5=8IS?1;fBk6AU%f%GqgIGbF>khcLDbtTpkb@eWdHKnE}Eus z`YvGJjI7b6({*Y_1vh#NMRy*GHH;Evo6g;l5m_rIrjuLR8M% z%9rosi$6k*)elhnHe)?NBzk=lwN1~(&5vn$(F+4N&$klFiJKN8Lf%hL#!QrTG^OyK ztTT*OGbRclOe=706itMD3gd?2QHdK%Y!NCX$mKL7>yTK`MNyuMT0}&tsgR~$BWw4g zfxo^=a3wblbp|uH+JtLKoFPbBi!^Hx*~)T<`za!R{JQfhWwrvxPEsBSu`OQ@t(+8( z*MME%$6kEGT;o`@jVb%%1YQT@os@Cw@OH??qOT2(R8g5_a`c~_vxa2IE{h3{aA37n zrwgOU=4i28viO&5A?RwD;Yy{k(WOho1r3WuT{Px9@Ef>0N^FJYs+mKV=} zj2_BIl}kUP7UjTFq)2B&&$*8sPuucMm8TZ~m%5K^H;LLxz1g20dL_%nWM0dyoj)Hl zACGr5cdtqpj@y>2Hs7}xJkKEab=R5xDLGPI8*+g&rtwB$EvkM`RXfD+Hqu*y<%UF zJl9MPN_|$3KOXZ5g28? z;Nz`d&20fOZ$GZ`l+2{~X^;j_vX7%%qjEy@^+(f2$B}P4oTQsDpSf|Qv9~Us^0)Hf zr%ickgfq7r28b^3dyOM-gRd3nK8)PC7Y{bC6iXOQ7pwGH7RHiUkCo!x;l-z#An1md zE+1a>(Ql{5(ahisWA8Zoc|<7qC4R>W-7KOww(inaG&P2G!Y{$A5rR~_oE?a*5+jbz z*@KTFMA@xg()cO|od6XiD&V{el%3gZlopfy3 z>dflyaRXYW@3Qmr;?uE!O3xc~wW^PHnEf3j3s(*eX9bdt=sv?}(x!{2)r&32tg=m6 z>Az*EDvdQ5q1g3U=5^}Gh@QBI7kG{Ar(PYe((5m+Stp!+V|^i~TN@PXB%U=ZnchK} zEU`u(>))gG8Z{EUW#5f}xq>?)3usTrXhy{M{r zUKIsb-!9paJ`pxhWJSHx5TTzg*29?C@~P~c zAnBGcX0?j*GNEWpN8IwdC8WrFg=ZO2sT5&Jh`7+7EBPqJ}yp zNa_~&;x!xaGIB3C$COzO$&5&Scn~2XEGEi{BuY%W=F>l#?Uu>oU(4wf1^E|D`B_9< zr~uq~LO?7_l9Cr%SlUjLu-#1P-f9LL4W7CS-H;gSK{{WAZ^&zq(f1@-JDAW>%gmgX zSC?;ZK9fmUHic9nON9Yo;J!G!$X!l|t4DrT$NMq>uO7Aiq+!IRqHS{)O_icG}27PL-t0*LaGqIXAlZrT+niZzTbk2d@=}coAa{J^UL%* zYRGxao(uw#>)0OdhNpzet!@-v{anF4ikgT>l-;CI#_)KCQR-_{lNWr^IIIuq8KP2Q zcCP+~HlK2@uG8aQCZ{tPM%tb7GEiBh&`OV=^=r7%Uz&fP)p`I~OshV|dVRi8GpRy| zij6>KQHG}<8YO<|&ZMR%f}DgeA_u_B!bk3_hD=3B)ifeU%+(w1iPN2A=n%I=YZ$I5sfNR(Xf5 z9z6fSieMLV*B0(%@@o+<)1lVtCrfMb%uF`2voBncgP3RSCAls+AYp(pqJh)0yF0Tv zqg3&%=v|xG+vgfH3=X~llaa$A+5G{V!Dd> zK%14mRl%w!{}%kRkmk<9aHvL}`;b%ZTffL{KQys%SLO^KYueZ^Fda*duUp1NF#7QM zRMWtzV;{A;v+WdM20@Cb+Oyy`C(1Yy~8h(@sM^Oui zdEQRSy*VjnX-wO1cbkPeDz;Cl1blMw56e)~DC;Qr1iehVDg0iW^$~sQk<&)lEp^`P zo*iy3*dD|&AtPm9K92NZIDRQzt@l-8sIEYC?p9G`K6e!t;STf(Rg*sLaIIa;|g zmAsX;?wcf`3_PXESGb-bLuD$rUd)gN%b@R@R|0M$Xpq&SGov>en&P>th#u`>tmM%# zy4#cl<}P}os)egS1wxuA@kO4|q!&df@QBRF5UPZxqy9dSsqj+Hwnv#GXg)fb@%(Vg znSFLK{tPkb2j0iD%cU zhq+q80pyMX2k>F`Xs`VPe9F*t0zPkG@>ZLmK7o+}KIv>PbCI%0872Jsv+IP_3m2c@ zU>Tnl1e8qjRkY~zz0@n8N9l4&OTRiPZZx;aIcrsiZcTB{{&Pvkf-8T6)f;n|4Xa$@ z+JIN?9^OH+juhF;xMJG7ho88$#wGutae7HmiJFiJ0FRxJr zJMZ4$8B$cN?cz(?kqwDHEqq4uu44x`#`_PVrMZ@224tH2le>LWE;wRJ8{Zt2>7;x^ z$vEPrY$d@XWHOdwX&N&*z)IL&QBXs~`>oSiFC2K=hF5eXq987nSr4bsd3i?X5JA>A zabz$ez1Zo~F&pn9?IOq+BIVuG3F`Ot&2M^#O|IP-YVJ#cvoO7)J=&(9xISn|9<8H=-a{7GT$it>aEc-LYNKpaUT{D}e4A$k?Kuj) zva7~(GWOtbNPoDX7}vKU2y>raW(wL*6(&uSC)~?t_LX)eTHhsf7s4G_9*L2C^U5Kx z^E%;^It6PB##?k~rs9Lz@`(u__kdw!R(w=ALPC*?0ETT}k9ZL5r102zD?IK<;sA ztDa<>amX4Q9aK#YFxx{ud+p{KlFTXBd&m(W?%-kq9T~oV60K;HWj&=uY7i?6Pqmhfe{#&gD=$PooVm%w_|cbdRud%o&GY~X zX4z`E5pQUtD&8R6z%{wm(r?CYVhKBsp9j-_E%hw-Zgq(EEKo@|YDV|9mlIE4ZX5Ao zj1%%FVo(|TO5dftxSw9X^yI#L7uE~gnj*zHH&ut-E(`W2AEoaoWo*c5J^X+m-1(vi zy;*yKgi%-teH0Y&?i$Jp|D%wFW}xs28y9D4qrQL-LwPjw61gjqE;WhOe9!?Ia~WAK zC`yc(V$E(@24*N8ZW^|cy|>rH-m9@7)fSg(y@0}AN?1=&J0LM#`EjPJ04GZpDjTpFY2V^3|4t+z}v zHa6C|rhtCc^y)#MI=2F{kU5U zWi&^fhdS6tNa|#aZ>K7x1zx^%<|+N*MvumE7yZY({iBZiYpwZzkTm{zDE?!T#>O^I z_B#4t0c9N*d$6LVnYD?|?9<*-|AW1+467^4w#D7u-QC??g1ZMexVt+6 zf+e`SyF;+x!QF!fcS7)B?!ar-}`Zk4?f`Rwbx#IF!wrZP39OwTj3S+ zU!swni&VK0wC_4%;b~XN&diibJzx4Bu4__RaP#d_TRn|LPZQ@4{pZ^!GDkGIg-~fdbGgnuXcU zj`<&*`P1e4pP%XS^Pf$>mIVU6y2*d%JN@(8zx5ga>9H-r_TM0B{4e(T|3uQ*gq7Qr zm5qxNXqpWG^6-pVfd1q>rW}kw4jwzOpwWzni|4Pp!+%iHn1hGg3}{Vm!pP2P^24Ou zm>1|z&T7ucYHr45#%^Z9X3EL)r=;<}>reg<=4%r-XBXEWTJ*m>kbi0${~_VWKi2qn zv)3Ox^Y=Zx$ zZTxc=`de*dAiv|+ZRtNPYUB9HAo?$h+J2V4{j0irKPgPVD{A{i^y42Dwf(&QFL(1> zhjJhviV5gU#KywQ!~^7laIiD|qK;t(Tr!(+0azJLIDzKm96aVcjKCe58RHMu3I~@N zuQ9;X_+RE+aI*X#i`sru66j#-;H>6oY-$Gd1{Ze$3N3U0tR@2%ko|jfjQ>bc8xRxD zUkVL@MQyymUw*A{1M;@mIe%8T0gcRoY$>3?2rv--^>Vkr)foOIgTcze&hlSn)PB~x zN&hr2-*z;PeOPA?MD12Nu?aLhBnsN4cDd(D_iO&i{ zI(YU7*OeV$;CC{4i+w!Karf-ssSzJkO~$p9n1I_kv7>}6gs)3$JCA$It=9d>{@T;U&9hod@uop_ zQHT-IV)x0d4bS{_cG24mLxnrcxlta-_;C3Mm=_kFfcW*IR!W=nSs8$dKaFlzwoY&Dy0!( zDxnGcb}g2Th9}t>)Sn}J*BCZ6J)iMvm3e2btmO8SL#Vr~lE#%|{0Z`4X4K^vOLn|$ zFN4u4liMfM;p6i!&WjsT-2UDOU690{(8!f#`I})LEh0!?LJW!b@?UMzs3F|&Dgm1Be3U`rQw;;$KsQ1-X-XhxYWUYrXxJI* z@sYqr<3ie2z;P*kBE>$0@2iHoh-?`R?>H){ib-}JDj_dkpgVke8;*14^j=OI>rBjR zhEna8Qw6Ce*a>^(R7hVM;S_^8;KUF=dV!>E?M+J(;DMt))aEkoC^#M5UX@a0I*NEwk)xP5^A%Y@lM}BN}D4*W0virE4-> zd0QCEr30Vjp%oYfh%(U^tUFXXl$T?V9A=M|Q~QU$zIk#Lr`zu-?5lUr;SKZ0Qe2YD z%f=@YLJ+Rgemo&>g||n~EvcIyJ|CW?oNYVguYf%@>(O2r#1x7`;}h^4U&_&P;@t7d zpOFMX2U%k7!I%b9Wc8GMOQ+CLit~*~)+gk{eI~5dRNtOZem4sav-Dn%QGX{QT`uK; z^?IHaP2);9uF&;sZYI?#G%dcJDaHYDVwdPQqpd+@)P7>Si-rPUs@}oLWFY;W@naMy z$f=Ga*8_26BG_svUJ8kn=D0z=#&*1GaT~?4alBP+e&@W&T2=MSMK9E9W#VPXZSuB_ zdV=*uj^&62o$f*(#ViT+sKa>enWj_dlgd5?&I*MxUPBo~0RvS}@r0X$N#&_owz;@?34sjL#gYc@y)ce=b1l{VZA02k>)OGnQ#c&YfBl^SNUd>IZQB2(q^Z7;0OpuX~2LiL;lMbUNMy@ZqG zLXWj6EB5#fG&umA3aV%qonyJXh<*NA2RY&O#5SftI9%CX{vEVpVWo$D6p{^6+*tPd@fej6_V?|Pg&ko12xt27 z>f?aC)MN_CQJ5>p@!Uv~W6n)R+THlV15T>208!OAs`N;Mc*|fqv>99HW!XuJ9)3fo zE^OJ0`V!ee2HA4KD~8=<3eHbhcJ{WwT02W0W0$mj~vk7 zNAo26nAgXOduRJ{ohPp+^@lRu$ce|Sw75DlCgzM8fN|Q5Ys;4*%9(jhb{Ecf+nuyM zq}9t{e2IQ1F>LN14+YBN>raO!Buv`tI=%TmPgN!L`}3#7h+}sS^s@)!M0P_2(=F+V zSPtU!^A0cZOZ7*JW`R0_XZPpJ!!K}d^1hRu346&4{Bwk99y4i2S(V|kR96svz^LDH zyv~Q(IjxmNj+V^!Rv$o4Cs<6JRBr^fV3B{PpgLYV;z-TVC*2yd#K~_a#%EJpmPu;BfHUxf<*U2?V%dUw8WB3j!r*|i2(U9a1rPd_Hnf)SYD(!*~2gS8I=Kj*x}i%y#LLZlUbE;Z&TEpl zOMg7l9QK`;Y}1a;wL}dtolinvQ;q0<+cQt?&E@n2dwg~VOBm2sK1zu4)_xB}H!u|( z2uUFDhPQ%;9GbMp%OBXF09?%k!l!ivFK>%|i}TF{Ux9IDGjwtG@ePE@6}&GLAbdcv z(J)mUjpCx6h;xy?AtT2O^XYSp34Ou|sIc38Ro8V;7Vns&)k|e&=cJM#sb92(UfZkePFCIWPXdia;ztM;OnW^fdUCK(Rb&tR?5RP-g4l?#cJ+P z3(ivNEr>(zbr#~CwNpkMpSthJr!p%*Z;YmE3~(ufj7)lQKHzo}HQ98UEZ?+3H}#&W zPR=_@)}XXPr%%}vp{6DY!m=%WlUaW6RVL8oT?Zy-GhP`CP!sbKq=QwzNvC^Tp)_8K ztKRP22_du>13UY+K|wOeW!FeUov*JuJ{z~g?yDX{@8U%60Do8wtBvLEQdugwK;1}M zx-{@HUh4UNqZx(y_)-t`x)lWXU2~8}YOCinGp(FOc}oHwl}O*d8z(rQj%Mldu+QbG znTEI$y>fz>Y_F<}aVNV1T;6n$gQqu(tX!VAO_*ejHp4MqtgSkt&PUx|-MJL@fzbSL zSyhguDy)j}3T)QgJ= z+7EWI)Ggx)989a5Qhf=^uc4B{sExC~q@Erk_!!R23N1CY=vEGGGh2gb1f70#uXsT> zI@NV1;N}3Opf6e_(|wLB(ymDJ+3=bj zmFgzZ-5*Qxc-!tf33@<}oNR_4uA(=E><|qr}Fj^_!z)bvh;Bs#tj=LFFX^(hc_s+JDnS7@g%AUnLU4nZ)2?wIMevF3$e?;^{ftzh~p~f~M zxcYp-tBMPiVFeS{-C_WVj^|M|zqnatSI+fi>cjW?rTxK=^Vhhu3_xua!gk{f;u1U7 zu@ZB=%lAIm(C=?{SowlpeM_Xr^8+Bml#xd?_jzsy9*|`W7miAR8JiUz9uAd2Q>v)O zk_NUx&~6-dL@$QYP*q_b9|dF+`wQEGL0CHgnPy*EhAX1T>SAtj(DZ3i`P5BQ(D%~l>%rp+a^lxhLLro-yS|#2yY`Q@MyxkW z%HGktHXK|}a`In4RZvYo+4H@^BK8v%YVK!EC$P#5A zC7Wc2o%9I3Aj$y15gJmEGg^jDLJ>0BfL@069cw7NzVIa7@%=)EPiy@ix8zDvg%LxM zZu62z8a}8u)hUqjJS50;9U7DVJUDHHT7%3{*fH5erW1f$T>s>>L}#L;kg*unG84S4 zT%WNsPTwoK7}qRL+e@<*te%$GO;@C%4h-M9OW^E~{PAhNX^u}rQ}9?_2f9j4!~Db4 z6;5Gg$jzK>1;&m6;hjnTGT&o_r%nHphE#(+TX7EX;YK$xylVS#t2ezd3%2 zd7?9=>M0*2xqjZ8v$gRLZ0C7Rl*{gnY)?J$3=*QB5&dPO++uLZKYwR=;R@uFe`iLW z(YeEk7VfNi1yRV{Lxx&I)jjChR^Yc_HUICDT|KANs^5xcYmN_L1u622Op{_dSh|7b z=$M(rRz#FKStgj+Jkr#ZBk%1e;=Nx*;O_U5Z7%vj&n(A@nR$gHwb*4`l#zxD9iFtm zxoz8_5n&lPW^!_&75OZEtST960C(`=;OqG{>|igJ{T;1vxR!;oyp(@aZ=Qga)A;wqm=vs!NA9=aX(a3b_7L#E4vuwX%XgBna|O1vu6a*SpWFSvLsj`r0e{WLBp34i#8Y)a7t(<;F!W1af6dV z?IYL}QD zJ0P~INp2M@?Ru{IYiD8({=nNyc{#81`SSCZ8q{eO0rmzCLmpY8Q$Xzw<&@hd(njAz zNqCO`bE>fG_kD2Q8DaE;V05O4oVzVH|A4#04-B!6su<+k7JfldxE#>SAEci&!tddJLBj_6ZIIRq{X~2 z_qc)>`4+~X*P6f{Q^k+T8y$-t(HS25l?WdCVg^Wl7A91;tZ$utb1KL}N z?ukc=w2&FRkUWY6$R9WFvio~r5h{Gw(pzGr6^ zckx*9#P`|fuqZo}-(o-ni6&f<=!5Nr-_XZnnMfznZ|0BOH5M|O7mmE1cI34*P?8>V z8!DoF&F=L5Td91{p~xb&hHcV;C5}C7{RosHPr5o}jScqwtR2*yz~N9wb^VQ= zG)nxFmf*@9xsQ+X;O_3gdZ%1;g%%;y*QmWPUN)U!pP4L%obif4`VJ%?{V-{&$JsKEdP;mn!@l0%Jg~XNCih@x|xT=Fu{g!c|RR# zP|llmNB@$0fjK3dm-DDGnyH+6KYdTD+zV@D-1+1E?cV1Petwhp-%QR8DL>6uAb}@h zb4ydvt5rV@BzFnOOl>sm1|rm}>b%Qlk1T)HGJlN|n#{PQ=A)N>oMPHl%II}nUKormHxn`sz ziNuwysDh?QY@u;@Lr2mn4b3@FnLj2V%q{rK@HgRH+Pa;Ml1JjoW0;NT863@(ikao8 zq=HLp-|W%8>)Tn~-L^m~JKPR>^^toL-EKU+{1m|9&99@lt8_28W-WlI!X?UHox zK)d5)m_uBw*`pwki&&IGe%+vc@-G9N#SdANhD6n}M9QLt8JOoIku%tjib64_(X@+; zLdD^?(D-{~LxsLo4j_c((exekd|lMiFLY#?>}|GsC<3pW(K>Q006XgA<;_NG5uc};izc1`j#EabsA+$6@{b-gWDit;)4=bgw zIHb+r7V+cF6Y)RXy7TDx=%&j4fJ1GW7Cu$o`~p`s&N_`zjFFn;Os9NT;#fwN5qY#c zxyKlbaVV8LYL_pSGMrx0Lf}YOc8I1g`2Khj!QADNLFRhBbCu6$EQ>vig=3gbOdX3d z`DJ_T6-7H{T9&vCt)?e0-b_5ENT0I*vAnw8#i*_!=jruCQ)XF`{@e6d1|1qH6vy43qj zn~{cz+zrri8=q@Qr97LUs3v{xqHTeHXORU>=|lah`JA@EV+sWo`&S?3J8?A}PuS}b z35<<{iBxQu)<_j~y05q3tndtiU>$CCAnPY9TVlx>C}P#;;*a06Oi7RsowbDF_wp=M zz32EusiUPGt0rIq-!wr%U-&Racf`{>^SL5=rd8KCrwxPy>=nF_bdsGAAjs8xiR-|)G0y~#S=$O~x)=$T~Tkh%exz92O>UOqqlpG$|7PdNACyA}}DFHWM3 zx8R>nXWwzuOvx*iN(GDagQG4s-N`|H%?k>b83?TOUzHGi4W7Hp5zeX1oSZgiX-=*^ zH5z0eqssh{g;Jv?uRwv{k{Tj$G-5@@sKT(e4t+GjT@#*6NbzWEX-qtwhGTK4L1#To zS^iK7sn3d#u4{({ARy2v9QL|&*Y$i&K|IFA+h%Q?vu0nsWNn;je19tTXj;k;1OAYU zXQ|zLx1+q2Iy!>oAyfYn(COPwsuJm#hR1(5BAwwNbH#pp%6#{j@NlaYIk1rvgZ%Uy zG4UOSpF7sjrQLzKWt_-mF`5+NHFSZPdb0OEwb`@(MZbxmMXX-kOvRS^4s5>=`C>OJ zRzng^!GeDH$Qa51W`OT#R|3bwhIGOOF2l29laSxz_O(`<8Vv8&No$hGe3HaRuJ#B@ zw|8|%v82{Fwd$X)$l@w=rm=S29Od*;F1}^}X?#=70*Kh697>wci z9cqIqUm>BiN!9i@(j<%YMogq_H$%T{9oqPcp}S3yixk395zauAc7I_YupXi;etU;( zC3eywIAFGIc$Oi!*NiKUb7Y!CN*7i5_J!}V5H_t@K86n0insyLPut_r)k-wqi7$px3@w@1YnTiYm2(cHA7T632PDH8NWD<^cW zc6ysHl*m#}Q6}t+Rb6rr1?rWhWY_`2Ai3&tpvc?z4&g%v*>J6r8r8S;lhE=|CPNv6EKlydP462YfZ<)A&JSS)|(V$&B%1BkmNp^p)Jqzh{- z$uXsVr3?zZISII8_?SnvK6x(kQrCQCF7QsB36V_?uQXPiLf?1?#?G{+PYJn!F2duH zel8n(x8HhtwiP zlnAL7!cb@QbvxFsbHSQCh)}3uQ&HauDXq_bV4YyylvcB{o0kusUX$1NlOj}XEyjtF zBxCFMjA^}I<@&TW?mXj+epT#h%%*>K?+&;0wMP z#O@Zl{JVe(!vxy!h?;QMo=?8{t5nfC+2&h5|W73KT8)GPP|| zU<5chTfvJ0=k-%}B?A!q#qZ<$rQi0e3QNDCtE$VKu%Fj&!@ysI;x_HIxwN;h-4Hyj z*e?oFFv}2HaFQ0d_Ogqa6W3vW(%~urz5~T{C>nITAyi#DdwtFF79j~`KDK|GOw0q3D- z?K{FNAQdTZRd7%sZ$)HsjcB?Y`#EN0W@s;SY>}6D!efeh>K^HPB263ULqu#3k38}Z z@O&alm^S&O7vnb0%~wvhANwo-_&mMAPE4i1NOvN9AcPxkZQ-20AbJ;GE+jlLe$DI3 zU_2J-lC~yo`^M>N???PKhFWle}hh^%-*rcNvi@557F(%@b=va=@vIK%rx7) zmm~%;c)1r#rdwNuSR>8q-z~vyGi1yH2hqN!hV7VTS~+A?3N0`^Da5V^Tx)S$R02^- z67Z?;u#?_o8oJtfeW9=gi`pY3Y@e_Ft^;|_&3YyXPQ5GBlU*%4sW-@E`*d9dCe6muI6?cB#tg;C3N#Y=dZ&ajTnf7c*zt~IMEpm z^Bak!dcFvb-4+w8oIvR(W#xelU9prvE@r*G88YEgGn4kX02P-!WOJ=kjv30OL{Hcc zSK1rs=?#!G^?jl!DSA za|&3#ATKUj)N?nl?W3e32yXJ%F#%uhLeNEK4(Qac+-QkzXCW$4Rl=3Puw~~_NSIZmfkpO!K>n0mH-w2$5#;^ufT> zy5Tkgj&#M6Q$evaqAx~xBr;qJDEzlTajp_l^MifAg3N?KgFqx~wY6nHJ31hYM!Ko? zR9>dKwMFr$hfNO>m`%l7O_)#@b;XJ)5n%@9$f)@f9D}JX z3-MK!{wWJ6((Tl3t0U>S)A7Q2PY96AwM_HjU?I-mL$-u_qz(5ye zGC%Y95KWHD(knJ830$+>S4-qJb;L%;nF9-=cwGODx8J@g5Nui~Td`+WbxM0frnfdcHXXjI!z)-2| zHkEv6|3!R0X#MdmLEu(5`EL4sDtNCck|XRT#?3V}!6r*!YwZnot>=Aimn*hgDWN&P zdBr=g@wxEm{h}O#O-8;>EsRZ4)%>~yuq9FeH*Yt(w`i*p=p!TB=Ry!AhN#GV;5ao( zkl~gJu;2opVVcw?*u|(>M}j?zQO@UZ5wWfAz@>C@#p;nhv#t5S3QXWQQ!9gH&&DY{ zGs3+_-62v2N#`2p|=$vslTw~vdWdc_)k0uGohQTxz` zDJQG!PunMblFo=YW_1i*8bDB(AQPiSDNhw{UX($)ywMMdAVc{vL@s*ZMNU=g1H?du z+6;?ljJm0>L<0_)j+FVw+{gGVN7dy|(+=N&sS3%}r-SDnkWHq9fN!E!VIvJie$d%6i@=L^1omeR*C3$c<*{NPBEm?{Rru1H;%vKhYxupJQFp0VIX zlKXJUZ!2Km;0nL3AQ;3~^)4hQ8%bBSCWCuUfY}?=R$^)+p$nCFpOIg4IVQeonnr8d zZ8Ka~&&25N_E!g4ldksJq>-OwR?%b1GRg_)^Y?vTlUDrk+GtIFvp#1)|Di8wPArP5 zoy!S3A~+P3OcetfdiavuCLhV(d5U?^Dqb_OAH3l<60zBr;0ylx>15ry97zB6%^j9c zpCB`~x9SB~&p}T~6|pQJ+-QXQOp9Au33O^K`bzm9Fjl#j)!oWJ5EL;i9-5-hwV1&n z)96_Y^x}J<3=QnrkA8KIi`_APi%X$h(ip*ManbsWHvj2ULase__?JqY85szo>VDz4 zOhGZSm`2Ga$t(!BcI7Yo@fc`dmMJnY(30G(&|0MDC9@#kNE*wHFvLN?&d}gi#7z~1 zwBT7qSx51~!bOpV-(YZ{4Uju;qfta-1qDle22Rw9!EG@Xlp;?$u!;fcXpL_gq5Z(d z6e3)E9gpQC9c)zlqgM*N&jp~57Cv=B!W5=o9bZovSI@H8$mmVMvRHyn?F}4;xaaaD zZyv2BJ4+NOxxce!+@zq<4Sb;Nv!N11Ni#6WX8B?NtMH+V=PGO}Nk zaa9?*iGJ+j&(?-z@To~!-chohF_?C@F? zDF=Y$T*eh0Tfnd?<~o-h1;3TEC|`YPCKPRak$Gb54C-T{sa|@xNX!=WY!=;cSMV&1 zCyx8_v{AFcY-BVDAq_09C^JtCBQPeut9`5*+q!K@Io~=(UMNCg$xh>@vB20%+S1xHU>i8=jdxeX+nQA zO>CETluCwr5A&l@6Eh1ddqJ}E_AW9KD}W%G7N-J>f}^;ZrIn1gvzeN=qPnTKjVUjH zOjrm`z?09@&e0A?BK?)}DMi^Cn{ViGd?@A~++X}!Pi<$oBhm;Jwi*84B^`TvC03$*-XGXt8H zFq*LffUch$#y}4aGghG41qUk!H<0RUY|6&*EBE#f(t1rfIXPKaxY-zij~b9M%xS{G z2xJYj1HCF(IeFN5O#vLH+`o1Wa4>cIG3Cfg{Fb-=gUqd^cRB~44-#xehQ$ANKSKHt6>w)~8pOb~Ct?RGj z`zxjA=K))*ACnQEt+Bm@AekqSL2YjAX6s5OB+jR=^?y(6{p)=FLyF-~YVS|z|7WnI z{u*Wfw?F&|*B?UgPq_Ys>klFDhZ_GGU4O#$hYeqcGkihxVwogb15qLImlZ?pD`8UO>Kcac|zvo6W{ zfh#RkJbdS{K^tc#m$QDBpS32!c&>=_F;hq|QjL5oe!VhToUO4LatC0UbQVuq)WHEs z@sTJ6mvR=>R<&(I5QRgE6Kz-ksCkCS%d;-#pf7Izg}=?a$#s|XzN52q$~R>OZ<;Fl z+K>1qYU)Ge_!f`(bmsVekT9yN5$8A3sWlt#R_fbDn>P58ATeWIs#{wusS_Pb_$DGZR{kc^fm9cQ+#>X8tXblM7IO}#F8I}x%NiyCs_xuM{~bcGcP z@q+g+DODcC3(HSyei)2cybkc$4@w3*a%4LTxE#Hu9StP)BTjnq(`F_Vak!&4cz!N1?3Ovk`+eWl0zpCGL>}J!q6%W7`uegmvMj)zh>@|KiLnvzo27}7t(B{pk)yMNtAnY7t&xkP znW?_M1yJA2(#q6DU*F8i!qWBkqG!KLj{J>W{*RL*EPp0P{-c^_-2Z{($nX02x055k z@8y43a)jf*Avy9d_WA!LIl{{WlsPcr<^j3|0Zl+TIDm;l9#&%>Mou#xb8}-e04qE1 zzpHu1YQkf}W^QZ@)I9s)4{K~<%E-gR!VS!ou=1Lj0od6AEarbENB-U9$Um5`|ICd1 zvP}H{zW)0|tJQzj_|H4}XXyOhu|MJZJ4pW73xC4(&(Qh1V}HW+caZ$E7yg9npP}=2 z$Np!)^+z%zKUA!K*#-Y5GxB2_3Y50`TV~`pvR%#&j$#g;dOzw&IDsCOTpU0FF;RPa z2Uiz8cFv!2W;;gM^cdn~C)=>StygTwJUs=8R@$K%aRI6D}4;9!?%pMlN=CUUn8< zPIGQflYd?PjFv6N^^4CayD_^dH!lmYBEg&$ zxU%Qq_Gcfu3s`QK(#e?;4gm(NoGk; zS7|j@pe{L3HBMTMl>{gy{Zj-_2>9{Wc>Nh!zuePbGI?BFz%mUfD_d7HXJ#qeAJXP# zrVaqJzg3sWyzSQ-wO<{=T)Wkpi$_?+I5vO?2DM$@_C!HOkr%}Z#*R-{y%jmi<|u-B zE_^hbsN&W;)#3^!<@VBX%h_M&bNluj-LPVHvFGdbtpbplwZUM^&9ktb6Y#zReavxQ zc3|QhTd>{W%3uS2c%tUQ{kidj<-|(Si9~~gMoGr#sVn&bx}ZLPx$Owj?qoV$~E|d zLp#QTSjxeJyA}R(9;hef`pNgez~Lm%-GX2F(^haa-HwRpd;y@M|;>G(b=mo_mW{M|WX zb5O*)l;AnYG^bB$WTn$1>IiL3mF>f|eTdu;)N~V`m$qS3F)ni-{EBVOg~&PU&vja-bTlA7Y~DU8icF0kQe(T6 zIj>1By7Z_qwbCoLZ(h}8tPDOye5PF)axdGQi+ACw@~E0(d6;7w-t1@UG*$A!m=P8{ z0pD5LZoDuD#TJ6mq8oezZPO_Ksk!CEc~lCl`x{(YUgb$#)M+17j&5WIGR#5UZesZ% zX%IOkrF!UFW0BKBSHcqSyTDD?NQLx}rOIQB+6gb1uugfR(A)4S<^u?uXhzV8c&3Vw zk@05AXrpsK+|r1)R^-VqqvHBbQGCZ?dGD_t4mNx#Iq78EiT0ZKBDvpQ%TWyNf+V3j zfmL#=DdJOiTaMt#u_^k~)n4zejjP#wb=p5|omdtPN0Cj!LhX3Kl*i06d;?Z9_~hBJ zGU%s&)mCnICdX*vBppV0;@l)=(dS=!y30WZ?N8$;szTmDJVd#2!gpid@iDYz_%%&` zydIPDlebT0)=-lCMivg`vFr@ zv+dSI!)y@aC<0z05on!ks&$f=X8Rk>&o7vp((ipl1oaz`j&Zo3LCM8l``zvNUF*T< z;}Fhb%#uoQYYP%g$_gMyDF>a1e zqN;jqM1{B5y!=DC+#gg`t^e4cE` zFe!#?))7m(geS?|dGB^J(4TE{lH>!$c5!RbxbE~GC9;vLHeXdAy%a&rBz0sT7p8ac z6XN>;D;kR^EsS#HOp5N+es}H@C;WA-ZA4Kv2ZWhvYJf)KD&(o@*ZBIQjYR{#J`qGL zBv^CRKD-Zs;1jqWP|&(OrHbooMlluhAH3V!{VBqihX>VYmoi#Pq7u?xK`kHdEFGrh zFbneYOQQPs^%1*DS>NrvCKQb%+-gi1f;gQDad)s)wp*_l{NYJ3sM<^X;BW$MpHFI#8QkVZ7`tSuxA8nG6#XS@6Vgjc?J`9kkClR;vhOe z3a+aw>xyT=Z{tg;KqO-zw|K(Ku}hH zEh$y#%aQQfk!ipVkg(Il;E-F`@2*O&e9jqp%_7LcUV(tq-@9uJ1*Ky_Qbmg^<4p(K zHaMu~K5nBcp+EPK3H59{>V98rveG$eOk9 z;^A((>7nG`cvJGlIMUBq41*r^5GBSFeuSQT5#fTp28a2mno8=dES(@LDI8bW%)2j=r(xYe^miw_!5) zg^_K0ZW+n`r44(Tsf~p@Ol4)>hs1+D z6$r^~X_DanlQ}w-^l_RPA+qw6ppzU;DbQg8?nYDIf|acY2%jPeBud_MIU>WRzI3l9 ze)xu_2$gy~K7GGsQA}S_(J|qY5P?`rRqD&9Mi?Kc0xuq8!utLc6|}_BmmV~KB2pYy zB;#tGG4y?ENOQe9g)HmpF;u9BL_8-vf}PxYki^#!&95cR8WcJ%4x3*bU#W8VAm0Z8 z4s7&Hy3y^?HS~4jIY!rw&09_5D|O&vp2ES@bn-(`lcLdfozf`^wf2kIlPGp;2J(I&tV zd?l2Ygy)ux?^U4qR_(X;4KH9<8IzYbK0PyV#TZY<)6QwU$R_szbm5I%7z)$$Os=1c zoWDvP)8z0xv*!J%^j(qFH%xyb2ltIaIt?K*RGuN|4`NC08jE+x56dWm80Omdn#}>b zW(3;IJoQXp^;eMf3+ssw<*I0_X&2(N<;eI(6*`Z*u|V0f#s>WPI!DW0yRj9#6q=K- z)dOE4Dj&wixaPJisv4@QQ*$O!Tdb3js#3`Uzo@1}t4KFUalj^oz;){lT!$+k0n!@G7K1 z!>Ytc2g)2;gByT;gG)`adC*6=OVEbCif!37c4{XjzAeDioY8(evRHr#_7%JlF128= z-`O% z`mSEvTzmvbD`{#fXmU2lnKQiwCnZ^6MHojuifKEE`<(10`8%G)JOUao;cC7Ip&~sW z4-*yD=hPZMmr?K@VR#%!-_Hs;t&T!`_}b#9I$a_%BC)F$PjD>@XHs!ik`@12xz{Vv zw~sc(r@JL^(ATlVJV!FVmCBwX#0lu;X?v81f0EZdpUGGMu90F5!#XyVa?;~^GeJ&k zm0A|=R;5n_y=Y6w`n^n6=@o|TxSwr_&-XA^3&amv&?b-ItAk($n?lwsMCOBM3S8@1 z5r>YCX+xfSw$$^x_<#~QksVZMSdmK&*a(|)2noR^3db1l#npxAla6TcV_!MUhr>qt zikY|C97UW1x-)9>y>GQo`D(A{(N(s}2N{Vzs``{SINm9Qkf>y#N#=_WXy(5f$Z0IT z%ezr`*)kypDoA{$K==za%`(OtjG02PJLm z76wHm>nFpr>8_fR=az*l(*kUXI8mmCS0QxTg!BkPe47Ey{QeH7w}ePTemj0r6BYxndkKW#*HVmm4Fk zm1Fe6`m|T0)YT{~g~r`E0%w$O^sxmeqiXtIh+zT&$(l-dj!bcw40%3!ig_W&N;E_7 zNtRnI)sha_ImwZa3MuuCY+v}}t*YAu73lJ#$i93w#FW^Qla;skk~6K-ay7<&aKfi$ zxX`1`1ey*?9J_}WCPncyy(Ub7cPF^A>)=c;8LwWwFfTL&5srOa30zC_kQ=Dk5SV#B z<*zh1O;TZ?VA3opnPv{_zFlmwPA+x#Euq8`ww-Wy@lecPBH~$QNP9O+6~iQQ&3aD2 zIKXqymQ_8nVoK=LH$LXPdlU_3jrg7ItDe$#>y24zBWgOnRLOm|9q>D$Bo2;O?oEw? zH%tstxtvv^fDUlZh&Yrh)KwVbS@R1d0Fy00b>%Q;KA7Qq>%Ow}Y70d^NqF%w^p8;u zYx&1RhbrTh+Y(tSBIWY>d*DOP{R+E}cq~u{_I9t7nI46i-6eWE)-r9-795?TShZkR zaL`zD8L)~7Sn&zRad$+@m{paP@Kt3&o42gOO=dSWAEg(NWCs3alxnc{j zRVojPeKtL(uZYe{{*3Fhm|Ew7FV-tx#Y5@zInojJ>Rrkv+&U@D&W9p~_Z5gSV|d^e zOQ~p;#&a}#v@tFM2=$OfQm5I1?1({M356jEACVt<9#LH69y>r|`qS8g;rdaw#+L_H3Jul5carNZ9XKME!ZPU1pEjST)+XbF zY-?!HafeIzq8XoMBBNg7NRsSGyp}oCwqasXzaIm}zzz*otln0#(WH`#>j{YVh*@5c zs(W!QNd0naJ@-XzVB%~01VYyeDq6L+lbq?HyVG0nd@C4VdpPtiZY1NkZcv|V*(p1n zqSffJb~j4LgM^PfEMxF;lG}a+k;HS1ZBDb#yyeQsa5bBP2fJAB8%jkh8iP5l%?;1? zRilD}(MZz`3R$r6@@UjWP32}}iev`O5y;Ofk!YdDjRBf0;xjR-p!f;IvSAu{=&$3W zx?w4fK37*)T;Ufz$#LbXwk(Fp+0<<45BI(Mc*-C+ydP~62rgu6NpK*wep{TVn2xq| zvX@0kkS};^8k7G1so-4=UZQKcyt1-oYP&n!%4f}+91l7kTgwkKE+y;I)RigP4ppt_ z1IG%(o)v*r^F`9}_u2=HpOQ3!%b!jjIQ{5rA}Qb1(5Yq@=XB9UGj-({%?*Y`Ime;o z?|gIQ;HQ>pxlDD5kpAktfI63T3Nx&@O*5hfzrZ^9&8uO3nhJzz9crg5RRG-zi68=; z`l}|N188!L>w0puh63M)TWE!?wA>A&*Y0Dm+lc^1rQ3bl<+~PsKv|5UV7RE5fKO~O z`ICeDLd2X{^XvIN|0?iMX`Nsk7U>relJfTfbuay7D>g0J^Tia%=?c!H(LUxpy1zL!p15$+)bJVEe zSR}gkwmn<$WO!@{-pncZ$q~C$373jY+^>7R3 zi!ENuzNKFdp3*u zFs46J7V2m%Ifa+}71-rmFlVGW?8xjXbw!9SnB#*LvV<-#eF)eaHc?2(5o~u%^~E&O z+B8ZkH!092B2U~qL|6#1cAvCLNQmJIK$X?L`scb>8HHwYivAPzNM>!$I~&5gAXGbU zBXywy#NEe}8yyQn_ZD&r33_!QX6^8MgkXcn>vvJE3MalJ+S8hr%V}SFlE$fU4fP-a zp5hh|>?bg=?zsDNv@!EI$3;kwo=ykr**641IV@tCycVQf`C-g@!foh@&jJCsq~>ij2do1|z;a|FcXrg8S0 z3vOF4HByr4p+8l+p%vqX8#0Hs*syq6;f~FHXBSc3cY7tSI`D?WPs?#@@cpc_ z$J@T6VJn8xZU3sTJaHSVpJ(#GMnclOP&tNGBRIzIjG$Sx=AME)Zmn(7inrVS$KI4P z54oz+>6u?C-B*(tl_77806UJpY6}@%*}9*bgk45kAPKAu$A?z}ENxGGVO`O9r^Tv= z56LV&WO@%3jm_CIhg~BW7wpgWVN7;P)HhQ}OcyNSWJF5NAD(Z20do>%9T~<+3zb8x zbN%Ti-fJW7H>_m%*N%3OxD-53c*D5l+{5GXUO&1fqv(^_A~>UUXBKSc=1rOY>1YD_ zb(fijfIBz$zF7K%!l?yEPy2|qddF&|UF0HMHV;BWXD}pXI)knvMe;x+6LaH+{e^qt zux><<9qm2{uHl3$oe3)ndLG;ae*oHBdVe+5+uNBxCmdu|Hje#(;X#BWpLMy{Jj!)) zrG|@{Hu~Jpcy;Msh}q|tw^t*sL$1mMVjF?V3GGA<`ewD~Nax*(5~{do)03tHUg5h@ zmA9TI(*C8P`g1WAA9LiQfo?U(U3vQB^WL3j_ztHt*B)_Lw>~X5*FmBQ`v6Tm_Y(1O z1Wu99-XizUBXCCU3C81ctA_BaPTm^G)q}@ETFhC}hQs6|Hts)2kGb0w89gp-G0haw zqkE*Iv)yMs&KVBs9u7# zcSHPe5rKsTKC^stG~ST6@9&&9dJ}%^C4P0paT*eX|7B#xC5=0*kLsEE{bU`kIs@de z`iy5w7K`k`#wIRzpa(^`1H@7csld5xppEhD!&q_d9(ebz0<<_f(G~IEgx&pwWJBD2 z>Lc2Xa=LsR=aJ>&yE*snKOA2FEc}{C{CS==aAo|C z6CWh0?^;=jytJ2 z_se8KfW&)lQ{k%X`a)Lt;fpmP(BQE%09Wuu`r6Q2{U$}Wn2+J&1=r&b$+D6)CH+^B z(Iu7RO1&Cek>`-T6_zPn&oI)QO*>tAl>-n(eM8_6GkY{qKI5#~cE?9_bJE4te0oGh z1UI$We)&xGCAS~4u?3$m=&DR2s{Nv|8gSYC#*K4aA~B5!gF3~ULlfhLpLgDP?<`7}$5x}<7tX^)t!lN8 z8j0bgA}Au~ID`aMuew`b4n@bh7_3C!Q>y*U!(gL)&yOa1=N6YpWuS>BhMXWIDPNP? z!1$-%MOI&fW5oLFsf6%BGLIVb>FH$bkaS67L9BEb?C@VC9xQCRocE z6sR>&(?t-E0Phd`>iWoja62|Vzv!7izie6Xi{{+t%M-*aYdkc)*loLg;?=Y|gNda0 z`aSdOJN~y1u=DJe0k4*@J`%l^$)}kgTR#Mf@T40fzxdS0wHcj5agbgNys+aH6`h+% zd(Ems@P3>n9Y{#GPCd*E9~>9FAqZr%|J}@Q52)$u(2nab-aye z&Nh#7v%+GH9rywOv3Yo*yi!kV&6QoVtBMt-JZU~ndB@V>>NACnWuD&=3fI+k?+>!$i!u_YC20mvO~jqXlGbu9-FJgFVT*1=Z3QK_TWXoyt;Ex z=mY8(4MLRM(mHvrl=7*9fq6kDY6o^)Mizz|Iqc?;#gB43@Ivh%?I9v5j_E`<7GwV@ zLw(#9f6zN}S{k=APHS_`67tW!+Ir@WLq51d>_)&*+;*L4C&k9;Xa-z z)5PJ(k!SyuG=(l8^f`z!E}^XHMaxS=4kLwAD*MxB6fU#T`@4?*D2w9PHRIi7gNOc2K(e78_t zlS~t;+T4c0PQsC*O2RQny01XWfr-lv+tr1A@yu{pj(S-s7xje($H{9QgQRUUX|;x4 z(Gx2&94`nH@JzF`B`~os0V`ks1G>O^?pbqv6DU(R8>KEfqwhfO-R;=igI2 zLQHXo@4bC*=5#4Zy_{}qZFvlXo8Ny%O_5$jy{wC*>21{Md;WCL2oowo{zm&nv;hA3 zc?1o&5;DKyi0B#dFKMsPy?Xm$dHbYY*xUDr8gd2YRneYCSdG*|;5Gc?H4vYgix!_bfH0SN{i-eg2;7^Bd!}(_e}8e<$+(Z;*I@zuo`8|NIrM zKNZ2h!u40U{!|41)Wv`GuD`9dJHk2LkgU|*5 zU!;QTE5Ul;ZJ^vBb1_C+%C9ExDOWXIb?L_@c3`XbT_Isx%Rh(5b z9^|ASWV+J`_|1FXDZQXTlpyVqxJ|nm@|qqa2~}F_xJRu3WOaGp+*aao^0f&^ub`(P zwI}s~IAe9wQ#Tm$yH6Z#8VAONqLpPJH7gs!^otq|*P0y_>{J=A1wM9uHpq3@v`4g$ zd&ARb#fg*Cje6y+Dnn9bK65vyXUx@ly!5TT>viuZ%#FG?z6M-4KRya8<4tXByS|n< z>e5r+p$PZI)-fAy9%kJsNt@zkWYkKU?GkS+PKRe7?F8>Laebaxl~R z!mq$Eb77NNzjBP|9C6W8>aBF~srZ*g0RHsK*HwyA=Lf zCXS|7w|qp&;wXxjr;)s}Lj9RcF=xS2!^)%f1u?Y;yhrZ&Aq(nPZ}gaI(->)#U1CPi zhq9mWOoj#IyAjPR@+;BIq=j5<#$O6@xhU*E3-8W|cP1c4OSI(L+gDF<^3;B7`4ay@ z6ie{Ixq{T)mbGV-NFSE72v^!~WK_y&sQ0dQc*P#RKix2^ z^N|kyxx|~mmTNlOA@<$XF+w~x2SjFP9I?zWZ=a^f8tR=DA#JOMZL2ph`MQGZJH&&{ z@p?i}u|+72rthxVbcd&WSZH^aNd77t?~KBr;S%T9`#zMViRmtmWz&ZU-0&&8hu+?^ zdLLuJc^oA+Bn{+3&?DD@oawE%W@=5NLZ;rx`zLPFs)?5m3JIvnv=mJ z0f&?U4zrTigTaajQISIe@y@l9jw|N{#=`o^oLLnuihark3-<~em`3-3)3DY}w+64* z<^oCLX*>CE%~3ETR4a!iK4PZ7ASg0FK)D9Nec%I9+d9pLkF6!nST;08XhYY*X5*7} z8({S@6#+H=@Bo5!{AOpy9kDSIv%JrKDIaUcpia=w3P`WTWE{u4pqwfbP45Yy`)`(! z*gf$KeDgYMMMlJ!Exkh+@ZA|bjInEwhC64MI?5DClHM9@b^7}!W9mMoBuWAgUK(N< zZdr08&k}JBUy9&H2`7@He(V~qh^2k5NNuE=IUJg_?!%&MKaYz?Hp`!symu*E+j?ja zk4(5b<6lOsn=X#HtQz$?M7QD?NWgVTTnR1oDv&PqA~K04>YgnZ(QGO)ReX;wa({gQ zs93nBibfvp`BW15rI1FT@g$M$2$wNW5v59_aEMl*wG1sdYE6?hb^I!~i8Z!0?y)KR zdln2mk#OB?eW$zo9qLsxNx68t?iHjou`C#M5~#@>mstAqj#3dy7oRyLp*Kv~HDC?V z7JgxKhaCN(broroXP6s2uHh3HFXzbfRWy4Mg#!$0Nb>Et`<<33^HoOcbE|fY;+a`Y zvd8cSPsEwh(1bCMV+TU_KP{Tad)z~{GP9|S-!QEiI`3m-?NlN6DwryWLz-xErvAdc zE!oA56c4nPXY?WpVvcd`5z*v0gOIb(wv@C#JbcsDmQ!7>FJ|mbudJb`82EbTq%FXD z+;i+&I)C^I{U+GG)6n{*H$~Lp+=nExH9v_hQ2OH;9)apbVicq6hz8r@cX zT~*zEo?#&I_+|$6xLF3gdz!(!=Rnqy4S9cxYkC~xc!BYwcBgpwA9*iRX7L0wrMQ%` z1H8Y4Igl&USUYE~D2Fu8<`4E_?ALXFan?e+XIRdkWG4GwIR|DN!!uSYU`ofGS z0`ZOh&RwSq3UtgTJeYDEC6$xXDx8)H<7H-yQ;c^VL!BiUG4a_{zbZEz}_8v8a6xnvh;FxT~OBt>pU1uXe?YdA%QX+fQQF*k=f1n^k!G)#JI3CpDzc zG}nb3ZrT%cO}!TxHfJVB2g*1+E$Z6#<04{RM_qOVXS}u_hupE+wmu#bo?lDMPqZI| zf7$BCxutbIcHlj#?}a43LR!XIhuI3nYMEAxMI-PmpGd33HDkG+6!lRGiCQ+Uqufx4 zrR=A-sIT2dD~9vBmop@fk)L!Gi|EIKsl?9x(?gG{4G1#5Ui5ID7{v4SR%tnEzB`^| zu0rB5v{4Fe*0qqTx(?Vm3E9~0%v026@XWo)M-u9Dn4>v}*xNmUeJ$bZ^~r$7olUQEkwI4X$M zN>cRm5J&|QPdka+UP;!IF_#L-)dJcRMayV?V2TZXgL#V5H1#ql0lFXWvl1CBH&lMO zf6wbi#=W>z2-4tneKanw)%Laf@e5MTvDZ3O%Y`XdJjSLzLg^yLLwehyzTcbKJQ%%Cy$0kU$-b}TJ!x)XmAoCjeAO#Qrm{<851hLN3HV&=*GVuTW(<0!x1JeDm%}4*S}-(UN;OG_ z^?YKtj!C;-!{jHg?FvJpa83CD9=C{IS~y&?!$$^5Nk;wSq15f*M6gWG zBx98pqu@D0%WI)`{a(!qi$kO8otUW9G$lRp*;aIGxE&Y$4abbnPl9m11lL!hCSo$b zXR%^`nk2-$*G$XrcHsBTfOVp4AmtP#F4>h$Z}5?aJKA#NI4&Ht7bye`An;BHRw zcHvX49Bt^HE{U89!kgJ!96h#Xdorm*emyRMWtaE0r3fOycM0yDF)w0J(#_qej^@~S z+uj~?8qUhiWY=2yf|CT0j34vrz+o53LeS<2Q990R9Q5J=PcPmw4Er(pJ68HDLM{OV z!(7HZ%m*uU-pL{N(Q#cPMuD6Kf-`=cQLLzWD&@QhJNiX#(}t=U7pv(*j`SqP^tAv3bVRMkg#iLxlX} zwS#1yOHTl<(j>7JQZOA`W?%8EXUAsy%UG~ICludzVa-@CznB zEIn8T8&6XlCCZD&+g#UXziB$`_GRkWcHN+YOy{|H@s=Mn+x5-__5l?YJ5bQNuXKWA*8~8|X)ks#b;Zd19$NxGk(l2W943 z0F1dTy$6TD# zEj;_ELt5wpdGed)a=%C;WmMtv43}hGteV!Ya7d=KZ)4Q^i{NMqB>S%OU^1A-%E$-D zmA+5rW*U|X->C?T;3KhXY|Xys|1j z`kjPY7&oZoJgZGWJ6-9yoxtcmPh%>hKu&7Fv0D^I8X->RI~7@)HTLBG)6tMmk{HHi zC#iI~S^P={woHPQVOkP?*C20_Xq9%ow}_I*h@1#2a%|6&R;9H}U{zX`Ix0v4rL%ZT zUZ}>Nu9HY4_(3c^=dR5*o|#}ajm3Sf{z33c0U!0VDHDurFa+Ne$b^FLJC$jI4wwk*=L0Q!{f2j#mCj2!Q?l! z_g%?9PhpyEFDRbcjHvGGDM_8kq=@!#6z4_188zO4(mgCaWg3}gUWPZF#TZx87GHCT zpE#k5VOc4tY4GVlVCj8x8@bswTSkqcD!JTTjBqA%++0dcjV~QnZNsnciMkPA^EcH< z^(RuVGCli{jA)x^{vlOFc%N?9^d!I<-(`|m68_cLGhLk;%y0DwL9Bf;Lf>%i*A#lj zFSKL%KKoVuCsr976`6{S75=w3b;!x>2}~!D^nn?BNu{CqCl>6}3>93wiww4ELbcUG#oT>x&UrCcT=t|sg6=)(OA2t=bQi5QPxRF@Jw9cu|1_wG z(=}gf^#<#eT9;-hTZ!SM_TYN=(!SWu-skQmr$<_S)Kbll(k2n^{YhaW@ zZw}kYp=XDE)*QZ`J}qC7Tl>6S?=3xC`qb6cZhPxRb^NK-M(gP-is;2Q_$y!VwpPFr9P%C)}$|IO7QM>Tl^#{TH-Y7VVJE^fGa zlm|H)m!-#6_#1fVw}1&1f)YpjWH7Q`(|seT8dx%tmXtH&Zi^HtuL^Rm?+hw+xdT$& zJTN#Yk_Tg;&Da@#@&V&He*Dgd|jKq-p=~BcItIz#=7j4x;cy_yJXBs4)*tstcKxWKA05 zBy<0_S)Pw=LDzccsd5)@S0nUYpsUzXIn8rlJGNVTk`8hVA~7(_#G0G6UMptG9VHBG ze|u^6s(%p2geFaICBS*BYC6BEn|_^5;^P>}l$=!kx`I@kX@ZdD2J*y$%_t0kYImq5Skq>Mmu|LQmnSy%j>loTYjnl**n9Nkt-A^OCaH8hjdFmXd&m4*opFp1NZRpVXGzX8&OFqSCV$LfOvBC_d zw~^6Jf7&>>JDZJCH-lWeBzzp!I*E)Cu1#q8_xSf zk<*J1o}HjQJBcwmI^9_1^eBgzR_}?Oz@!{4)VZn?TWj-sWcA!O>tBjR-Ap^p7UFMO zb3CiKdirL{Z?k?EDt}VbZ%z*d;LxiYD!9ZL{tlH zr!}XOt;mDvox3NCgG$+$)JYCM7V7Ph)ngnk^eea|Wn|~cbZgz=97h!rCw#-++aLoF zk@FwhG6Td*NJIe{$qTai3ikeQ?3MRH+1O zTC9s&N~>Uds?&K6`^b;SLDYvn+(~n2-1%FWIO7O}E)IW`MN1g)qv9JzCjVP`e_D7r~}YSm>=o!)=qDTO{;w-3{8 z`W)Rdg#e|Jq1}_580Mp3JRaPReWjP8`My|EY{E_>;6>V0anMfLsiZ-Q{?0xgP3V>_ zyU`-U0DdmQ(w0yk>0?yj%msjZwqD%>ySH(EXI$tWVc&}@Y zMK2|{Hda5wkZ=uWiasOUerZ}Pw>VgJneUZ)U3vW#vIeO^^L;?%A;f*mZkH6gIQTXS zLj0yc7P$!vK-I5|eNY`P-GLrx6J6W%eViDA+>gBY3Qta$Y$BWKc}wp7#z?a3nF%4; zhSS?(Sj{En;R)~X5k=S7T0{B30*S2R0iWh1^5*EaSxGhmu7tfOgJLysd ze2`9G^GcV67Y0O)=PXxuU(oL~88f}X+lsdl3eJ%Ub~?UAdK`-`HZR5C$rymM67opw z*ajo3q8p}@O@H^kr79nn$m2;iZ1M}D(>FGD7?rJu;jsOj%K;&IH4>s-!bT=ZeUCcU zoycOSkiICZr0g3r&W`8h+QDD4wxF2+HxsgV#Sbs*E!q?^+T|;jA>vyZ2L--^+b63L zdh2X0-?qPK_6m1-lL$LpZMR#yc*bE69~k>jg-C5Sw+H7YoP6yZdTSgI8x*%2)Bx-i z9%8d*mmTV)MBy*JQ!~4!PO$V*0!vr(MOK`lGFLSVEa6|Tpr^*I2- zm`3W`dELFQ$M;H;^&ZO^Ydm^wHGGp({2(Bs$)*Kb=qW@UNCD!+3tW5r5_aY-5%7jM zho#qcuSaO_F1R5QlYj|#43&Thay1>Jri(Krui#zvG9vk*%%~Kb_mxeqxl!b*GfO3F$|B9{5h}&@7{M*ca$C%a!BX%Izk+D^kU|=8JDe6( z>h;90vV#ma zi8kymKc}i)<}hgK!SF(FsSjU5?TA7!(`5N7tQAA}hIWJAS$L zQQt;zuBw{9N-m;&@(m+cDY4-FNp~6<=`NCM(9Sjl!m6@m57Tb;GdFGSy zp5app#^_EVstK-}AL3guU<0*!Y^|KIW(`w}N}DeO)1z6f!Re6ird%j&*Pg%K+CS}- z{n+mMJ$U$gr}&S-!_GEvuNVs(6JtFq6B{!pbGV4e$7aP#!Nw2+sL9WS@1KN+!Eo_Es0kO8jT>Za4A-588nVHOVIUg>3I>6IFm3|~>@Rru z-!|p?jq%#S(aDkB(Z%eCW0{r3&kX+$w&=&J|7aY>$MG8;V|?(}Ol=*k4V?H5?Ch*8 zj0~JCY;8D9>>R&e{D~Vu;rbKU@OMD; zpRwWZlh9wQPD6f4Y5iSn81kL*g=44RrH0|h?}EVa|ESB9P)CEobV()AkdJT4QdQGc7dk= zny?ud7{Sx_xVS+kCO`-$T&wyIW5y5|{Mzre`Yzi2>uUXU5C64VAQ_{R7H|n1aDjhygd70Tj#$m(4Z;uo;-bErS83 zoQ9?#5SWY0kn4|D3k2ncOKkskw0?oI|Djr(fbWe6;)2U~Q-QePj^aNW5e|n#z@`8$ zHZBkh9xW472%90y)EGW#f(H%?0+^U^{qbmV!2thFwZ8ZD|JsN^DD-J_ym)3^C z{@#eDTrd#87{CTL1{lB*cDVexp#hYO&CuA0i_;LuX$mxkf7H*5LccFE4hF;iJCX74 zU%g*f3&{0TCkMd3H{#y}*@2vYZ$xfmc($vNi2)k~W(@a`HU+}qu12OtY;Y-aFoe?( z!VQ7`;b_5y)BoFO{jwJKqY*)XpW?&C1rHN96&Do74)+A)0sz>7Kl+v_h!X%c2Ef(f zp+NYgm-DA&T!;yf&Dhiw0-x}5ngWdA+V6iXTEADVUzX$kK_M4$1g3Vy)w76+ZWmV;|Z-D(lGANNv`f)C6`s{IFY5!teaq>GVSwDU-|I%B7|K zSuTN6S$!BE)BTv0OwVzEB2C<*cj9IHgvGOL6LfN~2ui_=YEfYi-ZATb78R4T!XZ@+ zcF}@ZvpUC$(R?#G#g&!eP7gJyz$pi*>GANoOS$lidJqqRVq(G_XZvpelrgVE02VKz zZ%U@hpT6l!GirqLd)b^d&&%I1=$7yWv%M-f0z|C={R?H&+P&Fy_YTf=TBW)#7t-w} zwcbrxFL-q>gVf67J`&+VN5l(Xq{j~IB)$*0q2rOR<98LWP`jW0$mCJk9SAg)vB8ZQP$Yo56}s`m_vX7(FW zOqWCJoHJd9T;y`3OU3D&DWW&m=Sxq9W@op)f`~Zf0~lJ&?WBjZRcUlhCGB1DuH7t- zoL)|%y6;}d@%1WAj3VB(J9KFv0h&nG0-C3n(A zz}s5ZSXQ=hK|yA)SX9w#BuK>AeHR*TRdxE6_(J~vw z+t2WQxd4Q5C4^^I!nsq*DKspjPMsLPgkURoxy%Bk@T01JwSrPx|oZTlrcF#1x&2BzKDav(1kz3;NEhKqHK3G@`Na%>{L zU|udWg&jv8h5pL@El)2ubqA*%CVdMS-&cUsNDILr z*E+5G;vFFkg23a$w7C&#@#u6dinJ8OaDcP&0%L6;Kf;Q^3wxYsdwL=bs#;GU>d~YO zAfxo{HL`CWo9YWef7$-*wGoA5ezXIdoxoC&i)Z#W17y2)41{Of%rp4D%C|lN6w&59 z1H&2s%p?aUsq6~vXeXKSbD|;aN?ewkqRHR=G?!+GHoQ> z*cnn+AyfAn4T+RNd1{DSjAVj0Ja=rj;FWuEE6UlGyhig$Fr!a&+qcQE&3&wuDLQ|} zHAnm=UVdtvjuH7p*2-vo{i(PwLT>Y%1p=1h5my4e_!Er@g=Yv9akJC{K%CE_rp%e= zVeIUa&pL$oROGd_b(lmJk~hvx%8D)=GwtwXBlF~Y4t=`A1v3JZ=D#9CSULn_dOjDTGaMfo3l`SzNa2vVcTY09NLsoHP-gkE}a0P zsf=ci!acvh-REiVJ#g*m40h2Tz0p?bonQ~k-t;&*A+2|IJRK8l3_KxUs2E3&?xYmQ zC!6z8F|g?jNP7LXw88j^*ru(`Mnt6KVWyFXXf&Mv^3qS|U9K*2p0)v~DSknzFw zDTTmfCsdL`#iGc`i?%|CxJH`sA=VNr@l+MLeXZxbmi{(6QziVZu8QCYE%c{8gmiB% z)LL46jsVp7PlaXB-xMjj=Y6QM-1Q3=@bdk5ARke>o2D9drPskRrv>VYFP7j>da8n5 zr?tO(YLeF&Ztf;|P0;Wt!`*Qqv;6~zT-R->1z|fqdXsK#>hSdf@Tf63R&~ED9WSD? z;M10~_@<5<%xe7Vc!`E^iZ9MoqGDNBrza0cR-a3!I;PUM10Lih|6KM|B=|Lum;#FD2lg5p7w>KkpTw+!hI z?u{%7T5Ti{KA#qq%Kd7vv{wvEJx1DYxRS96S0zK{ z&QW4?veO*iNx^l!v65<*XdN-+oMNH+%+Lut{*Goh3Dg#?4#xhHEerhc*B<|#2mBa+y`iVunwaKBfhx2h#`$M zUZA1;QmMm%u5#~n^hUhCz#KTvqzG9nf!_A)r(Y(*4)^Z!ubLB@zqdf2(TXGFL{Mcb zmM9F(_TA&z+WdwEyOgx1`R4F#lE4?d&6tnjOG<<7knjyDPl!fo!{JasR{Fj*lD)7U z6;2OXDies$NVEWg6TU?^4bTQTIyKCG+pGNI(;Q8&@<8-KT3}YuPDc|ERNVy>S8t8c z7o~3ke9B4AZ5ESZbxZL|UY(6K$8AsY9&9>lBD;9>E?f{Pejv?`(Ji2JGI2XL_K<1Ca>BMtia9pM z^+-DQgtu7-4#}=K?Aw#B7-V|7V>5wnq`SzplG@n;s*ZYkCb13;Z!3=_D?KSrQxaAX zgk?z0b18}IVuVNUh~5Nhsyg|Y*c<0XVYoQk<%pY$L-zf&5>jf?BP@VYa|McrL?!?FTd;I7UY!_x<7?Y3%CQ)|L)DYA!kY8gr$bfAvjMd<$j|a92z6;Jb*4lolIH2lDI@>3xL}uilCTF7yHaaEsvcBWm^_+#B_#1np zOh>1}7r>+LnvXUqr8_v%{CS--x?ZZS`Coy;vqn=Ql)}7~U%%GSbIA37Ix~~4M0i}4 z6_w-2EweDkcy6B6SbkdA)2AOj)oJhDS@6iJT2kK%NkS=-H2~a^yYNbbuI9vi?6N;6 zM(ag3g(fn~vdtGl8V$=&{fOio60XKE{n@XNgK5L`KUwFd+Sf@pml|5cgtfF>t zf8HGk6Fb&S#kem)Fj9EHLaqrCd0paMS^&AkoIY|}i4iBLigKZeG-7o_FMUPj zSyre61MR=$)tu86=b=?|FPk%M;xbRo@70erq?Air9oDixDItEgFPlhb*SCParDV|= z?4|V;ayTII4jNhAou6Q=zE_no1Gr~L<1u^k5UJe88oeZq0J8dODntZmlfR^Fp5{PC zVM>Z;yr_|3?ur6p_9Va3$!DLFL5?XkHVumzhJ6B9s{uCgqikwpHCfdF&G~+@401tkqH_fHu+w=WUFT^%c5Ift#Zp$Z754$m}PZ zlSvPZ+_p6Bu#KqimWH_q#`&}%=$zIfGB}ql=Vi*JeacoK>(-DI*vTPRXnukC6jCt> z&WoAJnw)(`8xxf!MP`Kf-qX|2v&`qq`$u-_F{~Ffc|9`S^`bbGLUGUya$%Gep-c8h zI)v!73>wUUx4hp<_2*#|sj*U z+1mF>0Z;PQvH25@HHrn=(=+$}Q00n+E*mrC57wMd0zY7xZ)8wL`7lUnm1_`$p+4!> zHnSfjc$o1JBT)ugL&P-4+M{0_M7#RRf3u!8One__o?O#unTp+*k|KAPlRBYKwIjR- zn~OL;__2*Xn041%OocQ6Ga>LK;9F28cbaaCKiJR*4aH1W$l4WAr-=Oe9iQgQ;MK+p zYTWbD7SChUq^RLV-qI1R23|^mpaJHzs)tn*0aS>Rg*hRFyb-lm*Nn1rf2R zI+jP_ihV40?JXyWUy+#SIs(pT(CY6NKSG6ZhCWw7VpeS}n>FAoe?;VqW*;_|xy=we z;M*Xrgs;ickEJ1xO2&dUDnSM{K+7iIOj}0|H8&NWc*cs0z1qJ;b1%il_$@ML-24M1 zaI6@oW;H4!8Ub1-R;V!bquE%D-RJf>D&sAsPsWxm!WNys5X}eFYN3y3?pw*MQSmNg z8`|kpn5oMW<$9?vFD_j^P0+@Ca2>kZ(6`4jDq#M&TPTAoSOLjqCS@cPE!XxO=OYL7 zp>|q1$*eW`ps0bX(5%pdSHiM|EtaeE27Ikmh=eXIw$jobbQA%7^G5VxFm=Yx8h6i{ z(QH~bPlsONK0~z;4M$B5sb#DQ3(@xE%kU;S2DYP^OIdLpqvTcWQ=iIZ*L3C%*!ZWp zwhvjkQu1zRsV;Vj>K_|MoXnqPzw2gA@qe`6i11bZfS&YFVPPd#?7>~b9Jy>9DKET; zRU(-k-w!JXRT%>E+5<}7Z|4v+TOLbd^oPBaNZs-b`mA?LqWtzsYLRhkt9}0ZY+O4FV_cSwT`G z?JQAm$@^1DQXy=?uuDJk^6ffUok?-LTZZyV8gq*xa~!T_q$9JN3apKXfpz{W$vr{2 zAdM_Vfi0DdTr=|7`>Ut@l@&TYA6yN*5^!;a{8(p|K(Oj{&cbn!-+AQ-lN(<{xn4|M z8v3)nhuX?CT?XP@{wNK{bK!=TC!Z5Wfmi*+{@f1LQITwYFn?EvS>5!wz-Gs#qL00= zL~zkZDR8wSS>AgVdOELHu@>58D7}iDCRMXlW^KV_igtsP38qXrX`FGf3fi0MGFq$z z5$}kuSB8Z}$k%aX)~$l-Rz+F`R9-KvD-4(>=H>3O4@jJM+lS|;M`XfVkM5>YHcRRe zUpx0kIU4;-ooP`~jo9)chf9dVjHh3rc_F5L>J=7v>IFJ= z?zN5ijAwDdNYYnLpuMbypjp?KBF_1i@G+}ySu)(bhszwV@97KE`cl&}&DVOde#C=# znZfLVx7Z;+wXMbw(TLMD#ZD7KI7NA5<=wHVBnrIcLatWa=v*= zEv`VbX4d?z;87x80=Sq}YufDt@r)n1uDSBAWs5M2=l~ohyr-1yGl903H z7WwdXD23?LnSfNh@uQS`0!4)s7QoSA+VYX(~Z$A;loHx+JH%ctU zZ!3;tXI$j1cG@FN?WHW3O2=7Snn9LD)Ue@8yE9dVn^}1+CSuegmDT*&uilDHr^aYr zrwL0&Mr$plL+s-^He1?DU`U%DcLDsRDy$%kiG!_&JhOwyr!Tb6DEQ(KbKt0 zRxQAUPax;HYx~WaY4n^TN z6*A45mR~bukNFrr#LE^+@x?r^yr+?wbV#DNU%Ypkg0?-YFla3^l^{D2&Ue4uWLX!c zFq1`XR`*!gKa*)6aw@=CjSZ{qPmXJc-iq%hdnS|J-^5Z3--2g0&It5ESPr|c&S*U{ zO>fzlFH|SVTPgIE>}cw&^8K-$8M;IRlohhp4UO5sX-MVwFs6rh?|)+s)h?4Q*W8aQw#nJHT{pGrm+72YWfdl z{M)GMKbG=;3^j%P51^)hu+0Az)D*rM3^n9}ny>*)fIsQfg5g`6CftT>rrZD^$jI0T zVrXpoZ=$A#@B#p)+y-o5IL^ujf&k$g%>ejzI2>N(2Egf40N9ZG=c518sr|D$wZAc5 zo9H>&>e<-ZIGWi1MV$WMfOr0hSo-%*{|eWiirrt~`YT+2DguA%;=g*=U*Y;w5%^OV z|3B|te}XvuPAL7D3jZQh`+Y9@YvL683)J_!#3}4MQTne4QrLIS^p6VFen+T&O_0LA z;C;HV}HPLKjXrf}{M z?(|?{0EU2#4UM5NlRr-R!Npns8~E^hjsLdZ@Shf{{e@fm1yH~a z;LNaOni8x+Q-OxjK{y5-F|v2aOa2>R^US(MvL`gXCq9&BcB}2cbAP*G6QabYk{dU$ zwdeX&k}El?Ca+&CRNz)0keb(IH$gY|a$uDa|3R*ON?!4B&l-gQ!&vTMjM;R6T2x^_#&S|&lfw9 z@Mu=(Fke!+JSwnCzZ8zKH9fD6z@9`?WL=9NC49HBed2N{$o;|mVWA@1H%#SPR{NL$ zpoH)dZ%yErHa!p3LoJ?X9wf)|fkv27LvPZm8>G^Nv!J@=$gkNxOIr<^6V`iKMHm*5%JrFY35 zygDLOa|ZI>kED!SA5MP2Fxkle=Dnn~9Xpjx*ssGpo7ggqvY4XYVuDm`lfK|eI5Tam zBQ&$XQLqynt1i~c_#v!!XKJn0Yp@J=5b$X)P5b7i8wIlRIk?nKmSC~vT1xgkP}E72 zL(y{adOPKto^HA>3QBK8Y_%*N#Z%Q3{0qO)2RUvvls(J0i2>$V0b6a@qQ^?4QEHhv z^YrMV4BCuAC`HxWAt7g1_jD>0zF2oS^=>wq43}ckI&0->nkS93V~H>I!m_A&LLZh! zv#!;O+flfxTE(XAK+l7}Jv0l696YvYuQOS(`t0GBeCp}xAZK2dvs#+!t!xrmzEEA? zpgK8!o(dK;!KB5YBXe@j$eStRXsG*ILUuaLz$-lPQ32b^iI|0MD|7)C74rl?G(ld(O}G!8B5C zvw@%z71FOEVS^xlRTTdblfD5b2^U$x|Bt=5j*2VU_qXw&A-KCcG}^ekLvVt-yF0<% z9fEss0!e`21a}MW8l2$2p2?gubMBctXXfg9-?P6v-#vqraJc`&t6BH%hd1i^#J#ZEnyEFuaGHRaGYi} zanyWpn;q6xMx+aoFTDDNxN>X{>K8ORj`7P1`=?H0+y!iRC{5@@YA{CGzFG*B{P_B> zm*6A^a%`3@1l(D@X+8!~TT-TVKBf~$wMN^-Z=cs5bL7kM^vt>Em`Jn*xbjXZzOLZo z5v+B(ekypMm`yUwrQ6GvVxFYL#>j{g&dc3?5;m~wzt|@rp-kT+xtNKO9AT&_@AJ%=MI0RY0*1U^rdAbyzDTP7lR(GPY z0-xItsT~O1?U52h-aPhg-3ZWJe|3PcAI!36wm>#MbidT3O5uHaH_-ITr?(pxi(6;M zKJl`PUZJB{7*6OwS5qL>AB?-}vujlN_4RN=uQ^qo4O7G?Ok9a%STtwpFiCo+P>Xmp zQbO>T{w@Y*&{bYlSxt}&90hjbj5x9V-38sAT?mb7{HK$X`>Xe}jAM|)pdnqBac9-lhE5_Webte2Vb7sw<>r)0lUzNMT z-daVi#V2IZC|(g`1+@yK#nTU)G=WtjgIfG$s}->en{tsyHgBgsAoXiLwBW&0PA}zI zuPH&h-(wjUHwnJcshjO~juCXHmZ#+YI1<~5-#fQZsrv71qx8c}#aN2g^{ z2PtfHyI{_>Tz7x4LG-5TMyTtRM4!NRR9v1kx~Tr+Bg_{&y%31xbVArqpV|E2D$q~S zCatYpQEGRajMJD2^v4w5Kg0eYmVZV79yAa^YKQmO!>rH= zc%mJP(q&m2j&ZqAPbID&_h|cqXPc!BGo11TgL(0eIm3~o0eI$t5`AltZeUxE4 zH3$YX&t|>D>5KYNEHcMg6zHnj!6rgdNW9jMXgKu>_KWenqf4k;bjCDjI;LI_46#+b z1FW=peV{X|cXVxPS>a1L(E9LTA2F4cl^wJEdEEsCs)}=*q^cgAB zL62noLVYQgy!b=YD*E&2{06W9=8^n)>-a_6{hYy&g&SOAq8F&GV+sDUUOmr|(j3aZ z5hP1YfmQf{t1YhumAwT#>W`GPl1Io9hmJ;lhNn(_v^k?Q0XNR54*vLL?C{(To;3`~ zAP5LM!pv=;fR!UIZwGBd_N?T}8N6xv{u2znID8gC$JlIcfyAZY6GB2~j+!=INi)P* zyy-`kyH>S=hyx+c%Q!Un%L8!PDQY9V>QKz4<1%9E`Ky>?Y-br*sjt##X$D}ss7pHy znDE#}Q?p5wP@A}3FX0<$1uBP%sg?XKV-#+RI#ta5EL@n5Beui$-6$j!kw~$xF7oj= zFVt35i=UN*w0f^S)PlN`A+D$QzE_8SN|0v&$K39!p*1jR*-nAIl}v>Ft$J1TyP(mHh;2Ks;X!5(2@T7Bg#2^mA(=Z$QPZ{$ll)s1Ra=uEI~E!LfwKTeE?c4&-nA zW2K+2l__P1A)E3mT`-wveA(NsI#Kct1iIDbV#%A4KHjMh5!q`JB}qdB>I8NO`e%LM z?0WVUyO)rogn#qvj*^&CQfn(^v~B@%P-l%4e+2449|e(;wYr;NJ; z83^VFm(}ZK;E4incuam75n23Wxf)%{hpR*^#jb5Y&pB2{>QhYQl>}2{Q!Zs_pSsPg z`vL#XLp?tAche%HR#imtydvE=QOjx8c4=B08@&JL=qaJZ{V%afRPA!KSWuEDVG$Xe_+?WHL1Q3AC>!}^mx+HAB8ayg$6Avy3QWD4y~#>>5uz?ZS&U&BkxF{-+Nj)QCx~BYB5QvGM)%xS-B-J;VT*l6K!Ie07_J9H=y% zI7pqQm#;|QO+yRM-HLMH-iTsHE=+~8x3cDXQwS4HkRY!GC$^1{Es0n`IVJU(3RT94 zq_!dgeu{}wJKvs^#TSoLfhr-O5KYT)ES_qlB4~;R;!lqibrp4 z`P>tfOn;LPiS1QbF^IH#z%S;+k)4GbAg_*Aw40U~Mnv`ra=X~D(zMdGxHYaQ(bzP3l0$tNz|&+ICu7z0tx_Vt66$A{e^@$Es}sG}c|r zkfYJ#hp)LQUAj~VmJnRP@CFVgOmFnI?m1eSCG9L^0$rWr(_+3VO_eRgd_5CyT(Gqz zpE#Yi?8%TAk%4%(#us{VwbHD2`dZV+2wu4s{$YFhF|G(Y6Wcsw$x2WF=%11L8gfxm z{Mz^uK1Qn<+u-uFx3)l*2Jn2rF8EmMHIE&-asbIj@OU?Q;AC9d&FX6bJe16}VV&MY z@|@i_+H$<4T+vkPp01w!d9cs7_%gnjNVb%~%1s`9+Lk2Wky__}v3{-@NC4EU4%*LV z4J>x2TN(7$>|z8q4A2rid#Fb#hZx%2*t~ z%7%Oq^J@z&$7s=zn%az7W6ySgKhth+saYhUNB3*E><8IhU5VQ6$QvT#&ly9^$Z%%; z`eeyogw*BdTx(|^x_EN9XyGFmDJRRS!%GMifZ5{tA4a=rxwpC2%_O7xs)(vmkDsf5Ax;BEy$V<;j>+e?J~=l)JB$^9 zV6+M`c9}@Qq82~~VGLP>Qi9iazA(s3aD4Y+7rUCt7xPMw>PoiR>I?zeM=v)zTW>RAeSU zXHJ?($al^Z1WQ9$^p3)QF`#5CZ&|$p^Y+@&B~iLgiujnThmr)S<5nZ_swyV0EwN$| z`RV>zU}5D63LDHzHK6HtnJD0|du#u86Au)PEpB1$Y~siyZVlS&FKS|BXAIh}@8s-g zVqk*=FBuM!E&c%D{R@GO20gwrGBjWY{;laB1l)g?fCK%#_V|f_ z1L1FaARnThfvujYh5K*axgZzg4>0b3{qg@_f))Pgv?~*=NHjvNIh?NWU?cE3nQW_c>gG6|oAl;jR0g#i+gp-+>5 z3`QIV9Lz?BrUvZHAW-mcw>bWVI`9vA^=mrHf2RzO10=)yuI&7e^M!28#2_c&&vRK$ zgpCFC;;-<9-lG8sP;C@3Qyg)kKL=TmA#uq zjjlBowewRUaux%T$XJ0_19GI%9(|Enu@d6jFG;dsJQMO$;a6rRugeJyJUWw!w6!<4 zu0-TRksMSTo)-oAQ4gJ`Nxowc*QIYJp%M$*&qw*X1!S01hCfhu%@>UyW{7=~SygZI6y*n9NEy`;YV%hnB>@#J7y-5$-3dk7k* zB)%OQ3LOkS`m^^<+IiMHqnNnigtBsHC$7P~kVmRpd}Inyco4Z!FF82g8p#i|9z_-g z;hV*lj%K<@lb1rmtUd+jE(F}|HS<_tQK?x9tZy!q|Mh4qSeze&k{Lm%&*OVnA&GZVjmGT6&>Bjb?y%rW ztz^u|1ctSYaTuzu6e~l9N4m#{`uo+mV;+d^7j?LE);jkt{BSOKtzFHVbl}m$V6RMR zy&-i5ZS*t6K@UQ)DHTI+h^nbAOoYif8b-iz+w(BG^};DS^!6_#4l&bY@LaTbtF%vZ zR|)oS9hy58r)_s3g@g8Jt-UXw=YLH&SQ<-`SkOZ_a-FY)!#?DeD$`^WrH4SU{HSL^ z*pUwxy8X?ts70N%>usN@4+JJMI$ECU07>U34lwA0&CJDEMp}SlP?=A>WA-j#T#pfT zQz-XmUFt?J#;NQN=t9Xv2I)#*5NtU>s0X1bcaG5cv#_;f_KU@xyFCf!z2r_8#=- z_-Hd9bXB6LLiw_!arS_3pHPn9>AXjpf!cs=J1xPV-Z zZ7zVbcM?%)A>^wngui%18_%=3tRq&s;gn^jP~qVu;n9$#?dmd0Z;Ga+LgjpFARUsL zmR3(;W<6m)$7&g7-Y#^XkpWSX*3x+QC0+Ok)5H9z*8F%}`DM>ltFVYoYegJORNQB~@lzG&x2I=3SvS>44HQ>g?W}$@X!D|?JEaawNmU=681q#GaPa8b6`W79N)$ger*Xqao_vI=;aUyrQH5smIq*{#*SE^c$bxv7h!hzbpZ&|7!yQn~8EFB5i9xzF;bgui8i_`2TD z#+JI|snR2kX}IDm(C(#WkkUkPW&m-%I@^8gn{G+_en*m~Ro_IEOzgTqikJe64C(rv ze2YKix}3V>jH-yG&D21teD5j0W$INqswy)o7}?U4gD7tt+4^L1p}@66T1!5pda0U+ zNNb|&F+mFuRo3ThYpFph3YcUQ#_M^~-w0@)K=*p7efc3KU}Is7jA{NHU1z|6d4`oX zy>$!A*+)mZ*6FY?;8`|GSOy`t1VvI%EE+r`7D3*DpN}rh;ucfU;TOJIfD@%mxvB{8 zK0|Bp)r)+)#1qrZ1dfDY;U|`$oMc3yhKgM<(FrnNym<959BhO_0m@pL4bg2(0-)qU z6T-00_lOo+@fx+r-ta4m+bB@ITM$)DHFT`_nDY31}ZJ321s|cq}d< zcMZq6-+zQIXfbuJZu(GqoShw&?YJ`bIx}xAGw(U)C&wpB4MJxdOitRv67r@+PWm3J zUVK72x1jX*SVEA5FPEQs#1u`8oH|y@2}8iEGb3j|ydg^fpuR9(nG?+N*TJM$`yv6^ z>FiP(QrG5}D_u}s^n8jkGFegkq1}fF9z}O5DB+H{&C-YNqVeN6(P@1WR@5kM!{1ajr)7-0y&70+eW1 z8xQif0+P;=ami+R0Y?JT7F|f>+vYZc8whvY4=URf`va)O&%s(gzqg-DJl*|F=MSV225t2@5a4m2VUV`4YQ6~w72!EjeM?$1!slmamr_>uE*6zVuek@VBCl*l zVL!&cPEzpz&&C#pxQ58AgOqyHL>&Irns{#pCn`+`moKZaezwc}Dz+Wye-~elK9q}h zjBL|rYvuRK!s_Wbd)Rh~I|v0^_b8;^^~w{w3KC9M0)lD2>xx|Q^*|%E&nsi0nLQe` zz=R`P$q#!R-<;H)<742Ll+X;JxzWtSB`bX)2`qfq@{n6=c9o_uVdDF-Arn!drdYlA z)x*`__@s)=(N$W7ma_V4pSer<g9A83{^6lp` z$QkQvG}J*=_x#EF=XvYxMk!+V^f1Q`_oRq80UyRCV0=^rtk+Lqf%7#4DkdM|FB= zE9C?F+(FE^$8cz^mTi7RT1FpBYzLt`hfpm^cneLnFaAg+IEN;h0S-vFq$QZWxU28m zFto`5GaY=XtdXL{h!&1H8rXFC>=}>#)*23E?sNqSR4EvonB_j)jm*lQv9lb6dqkr@ zrw{_qDxAbLcMpuQF5Ju_H#a2xidZ8zMP?Vy%S=pm$8)M^IN*^Q;XLP_sdn;^!Ols1 z3*DebSPqz6*a*99iwfI4{8E%y8pg98pqBK_Jh(cP{=;A}ara;$36RN9^I9ud-**3q zCelRnfC5fu+;hyuR97x6PS^XH-z_X|pHfQ0biyTQC~)8O!Bc%0nKNvCpPB)Y8VW70 z@@#2qA zYY_F0p1|XIoAZeN@r&VEobrnk7kjz~m*QA&f*3N)`|Vp!P0&OV;cjOGPZ<%~7$v2> zCzN_-hy}jE{8{+(d-bNYs1|v}Fxrx7 zY@XE&L4;NEkq6I!4U=U#`O=e)v{3(Zl`zhZP%iU!k**k*@Rm7)@0`jK?3 z(t`ZO9qbgMQEfeVvm`P)l4RRN>7C3dA9Qmg_R#RUnxp%U>7>x{ zi^m8F%_g184P^H8^brMMW=Ymz$18(w{~V{Q8|^~h8}&}VPAXv)_J=HCCy{mPi%iKw zGCj`_mfU5FR$kJjqdn~K+y|fI17V6VeUJ9`+2J>J-qE*s3X!+HEW{gy?JTeCk1|Ii z3h2)lOI0ujF>gRiD1CS;g%j@d-L}Wao!VG>Pu3`a^TL!FVw~wAmcQQk^KV;zsd^`@ z?9N0v0*}dqZ;#LJ6wk?rrG;iq)$VJYF{bmU*9f)6Na1N4>9`NES(>k3b7fcH45H&= zVD#SeaX6C{@!@fG6SSx$qif42k`}!veN>-I}i&5`nG;HLqUEi-3f#V#v*wz*=g5N4b^h|BV$h?E;BB_+){W~dZehytDl z3Jp(o&oAUfFw|Z*>`^XlSp(&0k49&a%sBLqW6^GrsW#t)3ChyGu>dOc8=Xpz3cTNx zvQ7-~O;X*M5Q6Ok1qBa!?1fq066DYmjBGt*XYCtRaTv$uPtsVTXUne@l*ao6^8sV( z5W|ZUG%MwI?5V_$5N{WZtF2PIf=P0BZ?wiX9by-n6FdCs}Gzo=*x&@}xJnY7TF z9Y#E22uG2;ccIjr?vP{xPvP>}P_yVN0V;_Y%NuhM{)rOxj=ljyLbI4$uOvp}n!*EK z`=ZU)AmH+3?}ZqOXt$jP+7xRHG!5!_bxE6d@N=%1x))X0H*OuCH3qBZ)@;dLGv0f% zZ?yfrRUB<|1$4WgR(2@`yafTNv3|tZDbbcV*}bAopW57@GMI?&W>3TFpTxUD+J}&d zc>CTGqgxLfPrvg15G z3hR4I{aRoHpUsaWf5mX=E%(Q9aRf+T8kUrH<;zXU+QVt6_bQj&`;S7?D*lJ&^OSCH z_u&?@o7#_gpj0E=5qXq2&~iUsJ*Fjo6aer@Ng%+F*Fnf$()%itdIDEPF67u+3w z?IN}S&-n6k7ns#!<|(P4^X;>~q3qfTXZJ(!R>KG!RLQ=V4)<27m~+6R&IL_f1XOe; z@%B0IGY!#&rEQ_xt_rFeiT>ppZ~m1mT(<}5H`Ptm51!%J9nV}o`Z1N!xYOu6zHx$% z^^nLXQn;LIS1Uazq<=tBX4H1LB_k(&XG}^UA6?j{TzcRp@N`h}`1AyU2-YW5iS~OK z8XNNu=bol)i@V|r(zfX$)A?T2e`CmYX>_4=7|E16&3-fyA6Q0Vecv0^45GSJY7fz5~=^qdd?WCw8l zoecbo&>@=%DACH8*?_@_%>Wdn#$sT^V89FtFaw2laTytNfFh+?41Pd|c8*p$LUO`F z|5ec8ckSNaxWnJif&RfB{@=hj{)t}skG}DvTz{!@Kg#u^Tz{zof9d2Ov+GB>{!#`0 z(#ikpv+K{Zhu`t2f5RSrzf%1Td&tK8=h#Cw=I`tw8}l#hAZ1B)h3b}o)aCQhLLWdyY1qT|k(y@LOjcGqIl+N6eN1rfW28Z;7ny7Ds_v#GS+lIh{Z+Xv zT~*JzwfNOp;34#6i$Mids$Eadf%B`5lh^%DRSNmF@6;_=O|rU8dB{we^XK|$s;&nf zx=NO=GOmmhGuafhPKm4=>FY_AxQ5~t@9~a;?%U>J)VZ4JD{(yRgF*xOzSt~U4wnp1 z;KTF`998)@XEvd{FE4ZTQ$4W8g)sqCG#b6Pmb*Tcz0kRJKD|5iW}#CBas76jrPlYTf*+PxV7r9Fo@+p7wfljSDG*rBeC8SQC`y;y(R;f%T__2*w04T$5vPtBi%lphfE!8sV#p02+<}12K(&hUE+Q5ywshhZz@Pn3! zwt#7!iBI#YYkhGuG;5|g-1w#eWM$o9dusNwZ^fy?D1_`RVb_)tAo4{7PfA@4UFs{} z(h*`X6cY;{*=njxhov}_ux=fFOB3@O(jdqsq#a)_af&>Qd+i40oPB?G9D$E9aI<3W zta%>A?${)^d!4Gm!z=JUfFc zS;~RSw-j2@cFWs+CT_?0qD$})Fbw@&L}sf19eqHJj2`5TM7j!+H%te2YPUj{GC6SQ z*fEOLUE48+#(e{wjAfhneGgWh3`TkMTH{v~i7HU=(`^TplZ`MYC9{YU?N%uIe!?tk z)3ACxg9~yAfD{i0vcV-l?wR@BCbd|CbO=h^41|zdtehpF&)>;lTwpRGPo3`&>&*~+ zCKg#*@&>7n4r;NgBZTac%}Z`sf|MIVT!5{Miyr4uoh_Wxehq|figrQHu)Mne)q53m z66v=~{EyEK<@a40Nh&c1QckK9TD2mzeXFSb`ODre;&E5XLg^pDP66A%W_XcyS~i-W zJ#IBwQo(>-0?~BY>ai>`lj}~NIF|<6y2^6CzM2%bc8s_D=7Z55Zu0S15uD3CL`3So zORTy-B>tHgVQt7JN=xEvxpHz+iRkRl_acplmIO=DwO7g95*34S)Eh@`YAroV5w=T0 z;dinJ$`ZH&)TirU0$a1NIxe3Y8S4%QZTvRx1TuAicWehAX{mg8K4Ol2!5zT&#a82EmsC z&A6=BU}4$KCch27A8l%NphD6Y{?6(j!ECG#B0`anQiJV=U zq)jVmD!@b7*6Qc;aE`HB(3^y}ujdl{A7+iF8y0VIg=52Pq~vv9crw6+lT{iIE1Oyh zJ3y*$QMMjtPFZS3-rZiIg;K)ix3zM!eVMJ;FYVG|YYT1skg7u)k>Jmi?k#JPSg}vS zMoiGUidtKpF>O02LPU!yCIEd0#NlY!R%7efUqMW)JJ_YX-mnD*tM>Ui^|JWLid=)9 z3J3U82plkv+&f%t>oioRkkgo^Sb`0Qz$jTI7LF90KbhoOzSEv}w*by7V#WoZ4-QUA zqQ;~eXuqE-9h;{19q!_zdGK+@89NRzB^KaL==WhDOqtz{`aDr3q*5QQ)*2yF%T)j= znT=l^AdaMcBrJWoX6W-yk%*#^(*dRQBC3oHDzP)vJVc+P|67Qatw736&awXTS8{Jz zGKV`d>#{iU{w*q6`>t=H2^~dDsN8JyDBLc3?h`Levdd%jC2;uc(M{r!JS&`V3z`rh zAhVmc%ja&d=x!`I{fwNO3Vmp&H%>>dW!HwYZ^kaQ?V;?fU*ue1jb9 zem^i_I{{2@ihBu#Wg|XFLLI8@MbFo@YIGz7(H_uJBzKY&QpN6JASC*kENbN`v+&8Lxz= zGgW`p;_?WyV-Jredq3O*dj$?gLKCIznKK#*gIxgC!N;A+wx7O_NXZv$yb|gYR5gdk zp>~nS)G7WL_`Q}A#g22MM3JQi2^hP};;2F`D-|JVx0DF##o^Jw2 zb8kf4`QVU0>3t3D+m&*6AED+QA906TQj=FZx@pa}dAtbXv}aX;pZXe6>lb=9f%Y`2 zu?`Gs9vN{LHRERzuekDA8o}-CB0*G*F}x5LK!%iV3zs6uGaJ)`r$~a49~Z@-&kMWC zyGC5E8QDY4oFFff@mP(phmkEq;-5~fDMXk4Qm#ae!LC&#{%kw1UrNz^gv;LAj5p9J z$+FIJpH6?T&lXIBwlsF3*3Y=h3wWxKLixCn72j-b#=Fk?a_+R8PcOGGK?tp({2P7B zMR}L9gu{p#3_XXU2`50Y$a(i*B&rOxT~INmtd6K9Lyo4dVNK#IzDnUeOcp9DZlrcD zWF3LUpqafi{w^sNW}zS%)xy`UE(b)?X;~w|9$KGs#?(Nkh5)}6IaH_&r}_e()I+2~1|ecx$T-1f#0t`AdAw?! zt=c#a#oPW-fWi84PVUx4tpwLbmPUhyr?h~Dc+;pF5kqwE8!RVJKBN8eXt2}ks$NNd z78Au?N&o$VHTLJ4c|QA|mOcBk=PhtwEMgj5rjKo1qhE!bjJSjvQ5Ze8B5t+p)YD89 zhcfk6n+pnq*{mjj^Po9A0c3*T&0k-k-X`&}=pVnYxz_$_tGzg7$AH=_=cXfT?;)Zb z33Ejqsa-RjA0O1U#lwoN+&2=%#(>G0Pf?qtd5GufO9dka4;L9o@0TvN0W(w!VdG*r z-r-=CJ!*#8(>dG`oUxL=$es2ftI`;XoW1M4+HQ1G%% zqy*=$qfMkv@O0pZ3-^rBBs=5Y2#^sPKPwCs;n2s+o1ojXRv^`77`l->64^H5>;S%? zE&=`6c^rl^X)07{42pWnL%8WwhE1zu-uvie$lR}qn4^X=+%!=fKcO5LFd5k%((1y( z4!x^lDR`)Bap|MbiRKGXq2k^Kh3obEZ=y%!_cGw!CKj>Sz>TE*^BDKHU~ z3_sNKVHJ0escAFFhELZi8v0dWI~)nnp>|MI9P1`wlT|fQO32pf+)r%kxn~~f0*-5y zihS;yj%Hd|N)say1RgJUh}z`i%1Ar;W+NJegfUQvD*B^DFb$Gj_x&4DH%rI`q2^Dh zZrJY=CD#kgaYN~a<1VLADn>JrunJT=)xj%XscbrupDM9M8)4GFx7mpF?#8t{D}(zI zO;6W`YI&(VQ58QWG0yhsGW(T-h}ok3xH=M&IHkk+ohuwd;5r^=S=aT^lV_G zrQNQy-aOvJ;{}5+3d6dH9=XHwmEBZ3o!XQ)k6BR1*^H$88p%b9^*Tz9XKT_smb^V3%GYojkjD0K7F9;C_N#^iSoe9SP*iM$l6Uc}>%5}_Z%~{`eU$J_li{-*U0tV`681t{6#mb_S=}c6n@<*fb&YSM6Ggp zcZbqn+)Oq%4O_sPx>@@~yAay%7JC6SB>h8K-#`?nLBZmx%qIcg&D__WkMo}N57`Hc zZN}B^U72hhj><&C+8bkES}{eSsI@l1cCiFc$4@|mmM?ZOg<^#vq9Em;RJ~p?@sjCf zE2hQmi;QmIYAUo}Pb;wmS3;r}FZnV%HmPW;lfw;1Y3;X0J2axZ1e{R%MTXhSsb6Ma zZXjKALQBi1t=HHeIs=QjY!h#(GkRGfS8UrVK_B3i{|@B|^asRqtAK0y{>099BsQPQ z1=MXt-y9*(l2PZ`1O@=*RHh!X-YiJI|tqgn`mRFK5tXT*s@H~Px7wP1hSOC zrXAymW`SFpWJ5D@+$<5~A?LJ>C~NzD6~Rt#Y`3^efU1!FQ3yQKQiwY)mR_!rL~qeX zdOkATR%E#j(9AG9&ktGP$~#3s%WQ3=mJ!I5DeYAx`DW6r;iRI|P_Sf`pg&Z(Kb>Zg zzVk-Xv(U{3+E7~#CnaK!XwQn9Jz`aLwV+O@=je`yPd`&5Qb|0W(8t`C4bp@qj-J~S zu@YRz#}v`T?22&tRL$b$Ejy^+meFUC-d7^(#jN%?^hx}N^_kJuC_2#s2Wlw2U1Yr> z+_WO3Q zLa7F)7ct-Ya14B}c4D67wPlA0P4t0&F5%6}&KpNwRe8yVdwH`ciFcclpKrwXH5{Td zg)^)@ORY0m`u&^nQ^*iLyK9dMJqGd{?QkZ@^rwl(Z&}4oZWThK67@`Q8Gn+yK=kYO zoKw@As8T)bkbr1vY^*|kGDCa&)uQZkuO`Q|YkdvvQ+F47ez$%XH9di*VoJ*6X#bS5 zaEdF=g*6Q{E`JF7Mva(OIf%-P)z;$cv^&~>*McW?+2r*5P!P>_TcpZyBf(-392qL- z5iS(+N|wJa&mQl|&e)2KOePXhYoR}&JGA&?H_4zmnZg}LMI*{^tI%m1mm;uvtJf{> zNO0)|927R-c-p%^5Ni>pF3Zyg%`C3$iQb(|S~2~TiuD%Oei1*eb~=LQ43}`=W5uc- zKk!RtZCU25V)c=ZA_59NoetAy`FLW9u>0IT}Ekp8<+BFnFCyuaO2`x7R_PZ5jEFG9ZhzzZR_Rx(f- zXj`w-TXfbT$Z0OT9{!|nY=Md}m=K44xIOK;OLmC?B0U>)uWBv|aiT9CSSJM9_mE7G z+*LolD#d@gJw+q?ZUpBS21 z3}ce-QNSyk?(aPWUs=t=#uhu^7O9(?Ss-LLA!T$Eovbf?In%vz@$o8tP2bmeO-WXG z(E2X3XW@8&TuvoHcEB0;HCp^#HSZDG*7C+VU+qU76-Gk5h;-ZVxdf@KII}nGT&Ay2 zh3VKf8z!FRZkR>f$UG3qQbUc<+i!0|@7QeSWXuk{vEP63np#^k@6}@8i7C)mW5rjT zXk)Wo4EWwWBPe-8#!*~Q7~%8#JRTg%b^7y88I7o+qKgv22=GLy@+;sm*>fJxI6@{h z%~SNpw;Hzm43VHLVDj`~=>@e0L>b*=Wq0c6=~t`_GG_i5UNUkFX>`;(m|1k11f{Fe zzBMKDgz|517l-H6DKD7okLU0}dcNNXNop!fF8G9XUa!MIbu|GlQuKhcOVq24WLA+5gt` z4-?{Fg%W?~@3n=knVx~(zYPg?vv4;5$%_aIcL#+9{}T27155m0hcEsTD)L7s|M(<- zRGoi1_M=??RFXe><43vvs5<|2>_@r&sU&~&#*cFSQFZ?5*#C`k{RJ%XXENzKYxH*| z;`eLS-(ra@zp4fQNQubC@(Yd#_ytD<{EQ7m(Q?_#kB~uVHGs&44 zTNnu2xoiK_8as$XIzl#u+f5j33->Jsm!xDe)*Kde6Rv-YRK_q7V z&i}D-f~0>xL5hFp|2Wu9IgNoosRy}CK}egip#cLI3(%MWUi-7e9t77kXBwUNz)oxuQL0Foqvwo(~@9Em_qqdzT^aQmY+2B%todRhNhgLzOi!wjW{@&IgJ5-THE+X-THOQ z^Zz26_*WC6+1Nk}^Ji(}Pn04%=*7=a@t>s>e_pNsNGY>9F-GI?It+~jq0bIyl0JjJX1@Jz3M=aw;=~O4^Fvs7 zu6b5~PG`p{^>?;suH3*IHNZ&mVEDj61je^|6c0r~bI^J7sgdREd@;q{A_WFyOjbDDU~&yiVF zr0j7@-;9a)tFzDC?*V>7%iLYY7_ zS{zt3nQO1pvSCtfrG)g#-nMyC<*5F8tVWgUK(pCOt7*YmvOqoqJtw13%)co!L^r2I zGhKaP`n5~k`G?9#YA&72PfGk;^ux||Rs@7|wu7dT(1uI%mwpgL00)xMz=o)u)>2ib zNkqV~zST9Cj7RdlEG(;(2qq^pE3{fac3m2clOStz-Bt*JNVg{nY@c>cvBz|~56ZP4$QiFYDib!N85F8T5(Ny1qr-7U4oSWoLA#XAxudd+AHhl+2{&1qo(@j0@# zOl5ZIn;Y*d5L}nakE(ozr8YahuFNH*p^k`%5)_Rkr%cZDK7yw(KohCY33;Y@8#;dJbML(WmjH_#kS5TwwzPp8f>Mzl$O!`7UJVA&s*sQkNvTiEujEnm^x<_Kg{tyFtvFPfA(CoLjD&nUi$b{|Oo zIJA}?m9OXnn!sEfXoe(dI3?{w7u_DXqrFbKIlEdC$+MK>Y zf%q=m+94!k{K`Ax!1}d|7{yLBB2U!u8aa`~cv)Wu1ACsz#bbv|%o#lEE7?;sj5Ctw zXG*6AR|#F{7_e8);r4>glbsG*i!>=wCj9g|U%r4nSM;(O*oQff@LA%sQ8|KBrqE>- zx31ND&uh*|_x0|^>HWeNR^F`x0}8i#SKs+7)0v zjf9A`o85*Ftu^rf*n8`+DBEst7^J%!q>=8H?(XgyO1eY3ySqcWTUxq11e8=jq!Ez* zM!fIs{Tz?`j{QFG{^R}hI7VQuYtA`m%{gnXbFE+4YkLtpd%pBrWp%jdDs<)V5Z_`6 zuveF`K>Y6cG`sLl%+9{5sKxiG-ah?udXB z^JC3V-QJgzbX>U-MNS70TNt08HkIbKdfHP$9Kj3QeuNco=?Qz*tg?W79DJpGhYYWy zx-2rM_5}omVh%Yg&pkt|An0bJoBOibcQfe)Go=ZZPy!EMj}r4rlTbK|LomW&Wk$Wu zGzx3g`=Sg5?bWKgW$skDYuuoAK%4H0Q5_aU!b-W2?0lzqL}Qy8lMSQh27lA?a~n*p z(#hbG%Q{2z$dsXgjO-;U)k;s7M!3oC3z8e(CQT&+rBSpdkiEjQ9n48OYnS(pMJ2DT z)=e-FHu7!54e@hoQ_}c9wM-*~B$`-avPBVnX_95zSVzd93!6EhFcM1mx`ns0V10{1 zLhbz_X5g)&{nHNrQ`9?!742O;yta3Yuo$4#=kw}{E#_}>weJ8jmQdrwPxr&EM)cFL zqt{Tu#D#Y(>z7|EW+@2XHRRjiR`C$UeD{MnY~2)FL$lh*syJ3dhy zA&zTCET^28UIMF7onu9NNqFOook61&EE$)ky-!}a@iJ#Z^?KHOm8&KDB;c7H^gHz| z-35|bVw<{ID^f}$rz6l7r8lL~K6{4sxy`iJ9CK&o>a2BX|Lt%HOZ!VtZ+0%6$|ReE zit@KhmE)>!Y$n%_UERKh<@wcNQ7l1Sd>Ztp%YE5T(N1zej)wd06^6FFTa+nLNRoI( zsLl#+D&~vk&CA4NwYNz`#rm(ElgFNmq};b&1*Xbc*l^4{_oL_4faj02R%JEY7AGXQ zz9TPmcuULye_f1oQ38#% z+n5%ohu%CDT@@W4uR9+XVhT7R{0|~DE#Ya?rM$YBcKVCHAz`e(^-n*k1N7!77HrAW z;>fy+7Z*mu)D$pD?`~SXp$>g*^Po@lL)+VY+XZ4_L1~<28obF#v|22v3DD@qDRl-# zR;u604S+{P%P|->d|YIBwTQ}rDtI{pD|45TO2J;qQ*OEUIa_y>!DN9FH@od3Uoj?s z;}U+_PAPvadM%%{Ha%7I!F(L0UaXAw1@Klc=5U*>r^@h5>tt*>XL<1>ig&7`;(B)e zbY#qSCeZBH@^t|dj$>(0BVxUyO3erezp75n2)bK1T+`ZYiW$R>-76#&pEB3tly`0K zjz0CyjD}f$q{L3@{#Y9+mde=zY7Yu!8@CK$|DCkQ4R8U%DH)up?`-y8{K#*RE2xM6qPu_YWE+Y z+V$%;20eH`C6CWHHQQ;w;L@hONPgxWNg|Au07}!3Z^&m)Ln^? z84UI`&W*5g5A{@MDw4|xk|PU?3)A0fFbciVkm}ck6VqC8?(q{a?)48OHmP}LRb{4E z`wSh#tj_=toxUN!CD)h=B%LF?R663boPbEDd<9#H=NCNnE7_Iess`X zXwj8@ZC%%A7Rk}Xa>d}hknVN75Y;`t3XE)7VKC)6koDX8Ic@WN

=fu{=Qek=%U7d zy4?jP=gsD>f3u59-C8g66FSh`oGx1wIFS-5EfUJhanTAoz0!JWqfgd21){X8uS3(E zj?3z$#j|GKn2B+>Vw|;A3ybx))<(R2I9Q@J8en741m27W5OWmOEe9psP?Re>suM)v zw|P-&3OF8K@zbH~B2Q+|ig)?Cq_(*`seZ`_%N2!5Y*0K+vq!5nCQID~%q(A7R$spb z$!3C8U~xYsoUL0hy5o=r03$e;vCM=zxB9{7==1g#d*}<*t0>#@^72)oMeXzX>6KNX zN%Jww!R|Sxadc=xL;(6e{xbM(+J?eDHcSj$0ozUb&b;swMkm9sX7r5j;B>KrzlNUl zt5F<9(PJOg7jNr^R-a6OU(fO8;H>sd#6l0VYt>h$edH$t$xrKEF_>sG_L?f{|0ZpoO@HtsOeysfKj+BZ<1|v z`^z+x0D7!3YVMAFYML1^qGwX=2vRS*13AdJeEEZtD)Lb;6Y7zNKlb!O>&8z~P{iRw z&WGb3Iom1}Hh)x^43NTC0kO2vW(B(NGL}qrPp=WEbVs-oj<_pmGGoN5dm~MtOGmR{ zsLgq_@+(h8G`5`O27Upb!cySQpi0I!E0aCBL4#;)c>VIJG75#fd{{rN5sJMM7MAt0=@=Y0tNP9?dPthMHAJp~Yux)8`TySX}Wf=EnELpx942 zZsEjP?$ZVlfbg1*QUX%Lr^Q;H`cV>4mM(n_1O0KA$SDdZD~4~`Y)GI~)|+3sP2w^< zhvO|hvPrx`uE|mjtcAxgDh7FRcXuKN`YbkOek-PtR-h2)6(5R>yUG#&*FGfjnIi^5 zzK1JMFr_8)A&5?k&w^{oBZ~7EtWVEK@P?xVrg)_HTnhzapMnb^G@K7u5X!IZAOyl} z2DdHh(bbyAqAJx29yYXKtPair&?~k}vwFU;c~nv~*$$!k4g?^}xu+xVR0W=6&CXcK z?`5h*-D<v(_F;q9Qgn%~KUT0vm}={U;)$ z5a*QX5j*0ceWP)sRu8K0O%LwOwczy-i<-D+_cSmVRUo-p8$xZHJm}t%n5(5hPdvX( zO_CWpUEXwL%dl$tdMZnqk9DPpH)&1fkT}`ooirf6JEKY-jI?W1T(76js?ZT`L8!?P zN3MZ!z75zg7n2tgwa*~7w;cC6CwtC#BB9+tYU%q53jH<%+zQ+3#XR~e*OHnvYDNK_ z3MIG(sxU!r@YAnpxv(Xyi)e#K{D?!POTk3V;0TJ=-j}2~F2@~2PqTgyhj?j?A_%+@ z;4Gs&&+_)Wta1F*e4HT&?L{RD%{yCFYe8>1Y-L7vRgCS^S!V(}BCulXbGyv<0K*8v z<6-~er-&%#ABd=5__zP(@o$e+z3-*DKf}L0E{gvx{2TKRWrLsN-xz=4-+tlW{-1LK z=3-;qzqiy# z{xB2ZjCdTKlmMpOf55OkP6ogT6#Zai14{9+o0tIA9}IyYH6u1-pfi@SAqUV7*ocee ze=N$!$O=^YV`ZdcG-WsaX1WE0))@kr=-7d(63k3&CY**`oWJmI|5H)Ezm0!0G<5q-7mP=AH%SGfLB1pd*CD0Tzh%QE;#|Rt7j}Gbo6NF{l9CoOJ)5OxfeB`#y)?YDyd| z9Dkuw7O6671LRb;f2O&Rc!JT(QCg7EBD;(Zssk#j_=Tu1{Gg{6K~f@Jeox;eC2_yy zAaBYK9Wyg4jo@_i&J3cw(@h%->j<8*gfN__3>vkoq4o_7&Knw<$e`=m*cxgnszMc% zJBLtH&Ik{SYr#;FP)^XGbyc^XK!o_C-ds=*9dsDfJ?%;ts-ObYrKfzNn1 z$jvQS_N-1|Y^vNpp?rlbWHn{?kJ3p(TNVp4d4}xyWE$r~{DiudkJ~49n#~Vy)1}$F z847Xzk7Wu{IdUDN+!WSUWG#bQlUy%UL)`Y(9YY4kr|9do-jF}(v1)_ZZ+hynyWDw@ zz5I%^Sx|c;G7N{KAgv&0EK%#^TAZmGt~%&RNVdO7ib^x47k72h z>(+O*s7dmUvUovI_V#&F!u|K1`S+Ysqr=tl;wnmxPN}agg4u<+HfRXsvr8D=^NsPr zYHc=ZKZP^}+&BkNVu*qX_o-PUfvJU5Eg8xvl@`q9+V+m-1r1-8WL+(qINQA*tO>!> z!{zbmuU&t8fRDTH|K%+zJ1;&ZP~iwh@vPfUfzjrYlX^7ty-m_&!#mWlxvos;L@9HN zEk#QQs)MN0F6=5?Er1+!`f zxp?t5KP5;M%(3G7$ZLWL^TWi+r`c4J#|#zN%AGlr|<4hYOJ9$$?oGoTgI^9YZr#<{DiAHOk!ye$b-q{+HDE`-mSWYTu(K)Zr{##k98h5Bgn zN(;*SOLYUuF(!*AM1nKV`I%2X^sz)2WYS){y-B8Ib0n)1Ryz2?oRiQsR{2CgX|KtQ z<)Rj5L$zAF8MgZ2)|DJ_YrJiI{Bur}f>C`JReTvb)%|IAi3nVIU7v}OW2qbe2(~hbM9gwg(3Vj;U=esA7kTc4k zOKpBRoWssRAxll;fN=Dx(5vitT|vnaw>E= zG%P4Wlo=SyQ4Lk}+TD5;Nxzm7)EvE{uRfMd$}6r$E3UKsJ<}OET(uab^8W6*L~Vh` z?@%dBH@KlWmPt4C1~3)O0~@9T@PuK7mgSiz@=zmO;R*u@WrcmvjXihY9bI#F!cGkb z;KgU^ZWP2-9$%iEVOc=?bq&jiW@xANK0OQOFCELTPAU2*`Lw%%IUuCfi9^T(9t;u( zt&>6-<)I)Q4iX`lG!%Q7 z$H-e5er}ePZGPcmLwj*YG-2F}cY7dTfsyx0!4l@lfF41{Rbpx?NaE!tz5Da0bL& z*qJD=6CpqE2F@URTU@rZrtYA%63A@@%5?q85=op6m>a zG=NNaN4Y!Q(aHQ(Q>rJ~B8Fl_ETzy)-jd=MTvUIN5mKQfFvxP$1qna+<*xlb=cKQi z)Dck~tZ{95PoII*h2v7=L)6?U$4~-)b5OeA-*+7X6 zs%=xrWZK_N?V1~h#5Y?|p~2r_0W*0$iy3!Lg{V3k=6nXLj;s`#a&#`I~`)MmxO z2A8WcFtsaXZW>dP?G@u`0zUW%yU>_!*dc~jVm+OldALg0-R8}$l8KnTb|sIVI<{5U zc1rt@4A)UFkmM_=p~C?)T9>t`=q}x%1vv9jDObg?bS44~Ic~3bqFf$scQ!oD2EcTN z10v%PG7Tt|&UddRk)c$gIaR)_Prb$pDFTBoZhHQ;PY6pzg+`{t3gv~_P!7}xk^ItJ zWCMZa#IP=?=}cPd#JILP2inQ#)3J4xFT=r+C81xdM*CPen@p5Hpe(X%8feHaaN3bL zqH|QTpMt!1gynj!3%Ou3$x50calAjUO1liSBHmNP*i#(lxJlgAxL+O3+x9hmVH0g$ zIdEiyRu`g$}M_3eYuR+eM`b}?2dKW@6U&l9dgF+srBsCT!cENt9m-E(jd zMOUo`8p&c&pyp|N0s>)V6#1MIWs*jTLHfeZU4_^^9c(@z{Vm?43RJXc$_$5YPXnxx z5T6oW+lY5rt~W(AH$GE#a;o93LWR@KMmd`SHSMIIHMH@Taf1BpPo@|alCGIpeU_x$ zHli6klBWFeCAkaR9t#Gfk(>B&K}h)v=wxmjh8Q@+KwbAWR0*-mcJ2kG1W!Uq8L_-Y z9S#>>0A*g0fp1o6al^(O+k17%hC`p<>5ALsyg6IMtwn{zQ6W z;x^((1NXbd#gOA>iwZjmNb)mfL6;0m>ZNSwq!=?8SM(S{uae#7ZQ_ zXKg))r@bRm+~3qQ%)HPf|F}oq;2qr}u5dAS4xK%|IA)4pZx30R30m}$3arlAOAXL% zxsCVyGWiUNa!=*(g~wZ}MYR+GslB}_74*pm36HV46&SiI$X0#-J&bU6iv;DKao6Q+f$QH>xNg_Pa(ROa47R2u+~heOU8i~Z_|*B1Nw zY-9C(&k@V2Vu-rpu-a+o$=+AsKIYRcWh@sl@d?U29~41)VBSl5QAiO`$2_G;^qpxk zxb^@A*Afw7#!%m7AE^g_T-RQ>-BUiK587x~Wz?T|mlQFeq?_a4ZcLq!c`$9m9`>61 zFEd_0eR&zK7Vwp7GAa#5N?(!PL#caSEJORu`TU7t;#X48wWH6Kv>S7&8EWnBpG4iA zd;=i9k|rmdmHRD8ydom~I2>AH;aIMDg=G?~Brm>}C1_%vqS#fM>JXK`Ec>S2QL~mZ zHjJkKJU%5NZLiI=^?gprMJ=xbV|oDDGou>MB?;Gws(ui1GU%LfYpIfYh9zu<`91b) z1y7+${RgoaF*AjY&18z8&N6yVzd=Z0Cz>#r;0wR>GU?VZwpl9wr0cKRt$xO+E2@6s z#`#SuM};n zroz=8nDTWiOT*|%51~e;kaRQ#*6Sk@E$M>Rj|vr7iZrD5wuyq&_#H9P?xxDIylO$G zEwQ0>W@3V4wj^FGnS zRFv4(*Z$ejk^>a=6uDTn1PqZ?S$XH` zr#cQ#cG**B?k6C%?at6$e6{J5S>|3JRquuKk21g6HiF{a>GbidnnS8u47$(y>}=!h z#)}`}?G5PEzV8A71EF1OF#Y*9;D`RppKk*mrNV)m|HrHUzuFG`F3$h=Dh$8z>;AAE zc;xGSZ@eoQngOq05dbzOz{_m}R+bH*({Zu@06=mY2Qv#h zD;Kbf_;-Z-zt4(|`M(qLXZcYk`dK;VuXiaNL~KB9{qGv_|I>QR<68KadJH=!<6mr2 z5>>_>W*Lz?Z>TOPCk<46lC5p16rh#q`#FMzYm)k8_7aC)&639SYS)!FX1J{Pd?gyL z>+I6K0#;)X+ER6!mim(*5f0ePO_T$Ap2@byE%;Ry`dzRq*Ni5rNV%K0RY)j99SC2D zR@m^pxfa%Q(+p#y1RPL5EPIRSjJC8U4$R~Ftu!w=IDj(2p9W8GY`R^#;kvjh4lC_D zl2d%m!YV2f;rgM~keL)`3mikjr2bTh+iTrvrtjbjr+^~FgGE{z5}aDD@1s40ge zQwY8|CoiS`lnX^!YCg9waMTuRWUZj@~g0CjaOdW=_+i8qQtjh@; ziiWhF z-6d3(AU>daxZU35uvsAZ)W)C+j?d@&*%xvgEkY1ooX4`olX4~!~*;gAFe|?y#uL?KRvFdR`pWM9Y6oe4zxC|%kx-pY)fY5 zk0o8DyPp7i_H|bM`dNC?V}L7ux}l3Sy2&E*x;%b0r(_8&7+Uc|Hp*&8^f22 z^P3|I6VO_Ng9unIp=V-!OrxeiQ6F|rU|Ge~*pU63^N10!tir}d$7sZA$jk{aVg_)r z|BbTB_k;x`Hvczi^l`$!MbFmC)%$A`3fm60vbSz8YY??rEyB(D68 zAPziFT=}u+{oA2Ge0c$>t-pUu{8pM~Vd4BMZfd6bO7u4ejYah@q%a!zE@z0~pxdUC z``7;GL(rHJUh4{UVQ^vS5+hr~gdZ6k%gU&vaG?aB^peKE*VRo?E-tI$T^{%$Bf+#F+D14_Ak+`QtS&l6W zoMOOh!;O-bf{mHWW93l4&7%WnuIu*oumlQP@YK-kQ6jN*b(gmi;b&dmw}9NLX6^nJ z&-tZQm$j1TjU#2GV?#%qCgY|CWIo#zxN+1~*l&NK50%zT zRy{MB+4*KwkIs6Y{&Z9-M#3rW5ro0I82eVTp9e}9bSBbzMdHvyU@83gmzo}Rm1xx7iase*kZr&zCx z&MON{ZB4TIU45DLTup8J*ZmhQW6uTF-hBp}wzA155_Ou#_cN|_MQ-bkV|lJ2@cvA` zw9MsFhvVav3tMuZBZ-`uASy~^G&h!bv&BwRl6j&Bo`L78%ZGD^*XUh4f=`KGCWLGj zjE8}-3JN#)qsX7zbTxY87Ot8r;EE6hDF;ksVLg|b%4!n7CAIBI-z$%LPn--eOR_Gz zm`ZxlrXuXgS|j0fUmqEPhK1e-VqS>-p<6>6%t{j3^8>rT?&iTA^0kn)Kek3| z?-tYy^T|_?67Z(^@wzHxoprajiD1vPoOiibpxtC+l`VB*(}$c8d-AHRt})_KaY5@O z7*MfGY)MGl8AXLim|^3l6{OUg@J3n{Ro|5~h zcAd0Oqs?-cRj~tvKZM-)dXUw>(XRq^`lxVJA^bKpl6JQE-9r&P8mc@8k`Bfxu_pSirEg}>+N zL0KUPfEdhRbx)u;*o~<~v{Kz_LW0G3 zV%Qt!7G8fut7ms^Z+D4 z=7AdjC5ywwE}FR{m*=Mh<8niM@0=AdNrAR5+BS9m@pUbi8zW^n0gsWANM4a3RTtNp z5rn!R9ktj|sSkdV?e@z2B?H$K@z8kTHT=buxt&!>vb^Ei`{#3Vtm33C^RdpZ{x+V; z3vWy57|_D%#3 zh^yt$u~Ab^z09FEHv01;9C>|ka5i3}3?L(iRu5GNdT(ky7lmVnv+Nv{_sZ4tU^SgW zklNq2&7gE{WEj7ZA>E1f5Puo%KhUM}ne0f?X=7ekHfJR`qzL1QJTDX4l%R_h6ct`6 zndF2dNhLo?GgPH{@2mGwBs=E|_$&9U_G96-DwbHOW^3%EN@=IBi>dHJ+K;WQB4YAO zwCYOK=V7x8K@B9V3rCw(o>La!-M^p`MmvJ)nrp93xjTk_kSoxV>m30+b1-R&5TpZj z&!Y?oQ&=_x_f?2c1VMu(VkoH-Dp*?iIO#t7VG!LR>#{(8xoQagjY%n=&(&>Ub*Za- zSiE}|v0Bh2!a8;P%_JO`{hgwv`)JhI?42zmp67O-+-3V0O}*$FMck`lE&@>o#DWAx zp>+KPX4LlseC_x;{{5LqY3qxxQZJIlB?c*r8t4^m3q@@dOByb`=OmObEv$OQ3B0+j zBAvI%pqY4x1c^-Phk2RA1+Qs|q_Eu~%I3DN{p`lYOJN1t;`dA`APB{v>qsH*GT$M- zbr=pDyQ$W{3pKb5GRv$UAzsQ3PJz_ph$47~+fZx#60Lg^Q6$rY@W@?CHg(xA3GdT* zXPj2;W#7w(w)Psqx=O3B@DKrOuXvFKr4~NC$_ozBfU+5n1NnkLN7w@ZtaKyzEnlNj zE$U;4<;V~{gF#NKB`3#HM%hU2w>uG2ifAqoaGz_RV%E`Z%kux|vs|UhKn}?;W)PsN zKczY?V;^TM;OA%QZ0;eDe5eEjI!YwG zlzeV+%E%9^Fz7i11D9AvK$%SB(4p)$c%Zt9D!LP(D?Ac8t{2rg1N>#oj?3XHOBe)g zwZJ9)IMl99ncA*%2UjUgJm4`xb14;4Ea>4Pu%9U8I$9Dd6Vtb$|W21*KP^;ZnT?5m~t4a!zpMR)l?NrB#jAuN<{?3vAq=v)#p&J2Kz$YAjt`vrSC`kslBZHB#=M1Se8BAA@ z6wub9AA_b&bro&I`{daNA__>IBxPUn`DC?=B_y_efPF_lnkYE!fV-RiK6;_1pv;zh ze$V6jmYt_L%rX-1x;5X9LM!?5;;?AHKBI@PEh~2V{$uQs@Ub?5EKHF1yAXSyq_a&y zZy#0)RLog=xmuGh0a);tRxd76%3%YyP#qOvRtlA>uRR=+2X#+qaTohHq5Te*DFu~q zGCPCGX49-j^tc;k2F%i-^_pB{bmQ3*2jor=A?C$W*-Jiq^bJ}_P!bOKbqb%`*sDQe z2rKWFe1?p`B6O&nI~j)10uQMS2(qw9Qk^qy(p9P}8#Z8@t*362e6eel(jpN)Z>{zk z+A`1bTm&iZux_t2n-Ol+wlUkmBTOsl} zg=id~Eu0jRoMuhf!#8aeMk^wYhCwvu_x15}dQ$oojaL|lLQ2&e@xoy~guPyVN`>jC z_v}DjYMUnpYa$kIahGO-UVbxu%jF$m%&SVJyYy4VoUJBk2{UPaFVt~VhMgr;RLD+< z)R#`I1_i5Xmp{tAn%T$^RjP<)KIY-&V?E>}Vhsxww6F+;Qb62P5W&lBrHG6qvAHHp zX1}Si{p{iYB?DZKXllNbyM;T_TX>3tKD%pB9k5+h*!G&T^g*egNRZ{7(&N9 zv~x>!uT@Iocq3Abcy{tK+0)(h!2P9tcdKp{)8;eI{0iyzitN0qJh!j4!uppit%bh3 zcq)+*SmYq@b(c|H(&7sbpT7z;%hn|8-@6Vi5SNJRa66adE!0J&!ZZyD^J+8MJn2J= zw%R;_av8&Fj<-Ay94wWqj_?`UnrsUY+!bNE*pxUmpG!`d!i?aQPOsS)QcgbX**0LTtKjUZBP*0V*q*to;^8WT>uNT^&@aL5? z*%vsbNmLLBCpEH+xG@3=8wcBneoSR?zTec=kESMS)tm;{%u#*1BRCw@4|W&N&(kpL z;EzCQ$-k?u56qjy7g0$TnQ%w-gbn#Dc3(@}G=F_5Z^N+I5HlETWTQpWY=ZjigQhth zkL!#-D=q>T%{VCYtxRoK>4P6kP54t9YI+kL7l&;-K%5f zU}$GB^SOJWk^c^kCYz(dbsJ0F)8T?)V_$k|riR~BL>=)bY|2?)D z)Bgpw+20)Ve}!$v4&XF2<=_NT!kAfsY_o3;$VQw%FJu;DHX}x0tua8#|LJvk8|GE1fadqvtbF!`;Y`89)c@ff_LzbFiDTurU5U^dBDk zW9a{)^8KLJ{m!7{VfeL}D<={@VA6if*^en(QbLlEk%dLy(AvmQANa%ENZ-oB37~K1VC!USY-^?OXa_L< zk+6S~uN{9;$$l)Je*}U5XD9!9l7AGhU*Y-{u74DPe{}M%)%7b}|0n|g=;U9k>pvE* ze?TRB>`i}frvG8P``GvXV^8`AM(9rg3*U)be+5`z`;9I3_kdsDJL!L*ma%>Qjxg>4o(HYQdeV8PTBctvh( z0=#TyGh{P1Hsu1ktop5%m ztG<|i5F{Q%1*31prHQIx#A*?YOPxYzq`p{g~9fybNs z#KP4IY4px!kv``0o!ppD+cn1EkkeSt*VZt;&>;0jHQYTuihg>U0b{k>`!4;yV*PD6 z^_#tf?&)hUwPfq$CN&BPY~93E!7wQ)dI>(Yo3<{b&vd0w(U-w+q(0oa~%9iQ%8MIQ6)AS*erJm3yoT#fFT%5usW5BRGZ{KE1Twe}r}(Y@ZyvujR$qLVUAOckTUvbL)yc~yvxLC6PZi+2uP zD4*rtxgJQpWMGE2A)vOGH5zqEDV03+NLbxn$?MPyn?FC%vN}q*7`M-wTxxKnG91yr z0jsS_n2TmZ8qO*K2Z4JfV%sOQP{x!;7P*fm7L?k4klcLGR4K{E)!A_vO{W=XZIOY<%cqg!cYoyBBtS z>Uh(Ywr^b!3^a(_Oio?xqiBnS+s4mzJnATF*la`3pF>Eie%`X4VMOf$oUo@gQ8s0D z$IoUt2vC5j7fPrdICNR!TvWX`Nwl9h6e}z+Nit}WW^fJh^6oCJ<*q<`IFH+(m~?z~ z0(KJ@q1toDJ0>mwsJNHgq#|!^yQ_Mkto8EwezT;YkYA->5jkhPP>E;4ZTq#Mi<0>3 z=QUY1Sf%h*t%%b+s}4j{iHEi`i`snog=ATK5#TsYvWcE8=CMVeti75gktEdiVto!0 zsscCnF^Q(&pq$^B2?dwxFNCX9k>_v}6@(85?a+PZ}>DeS-C0klaCf~pUQqVti_D*I} z4UVPm=NHz_-}xcmt-W1$=7UlM7yE48(p zTRP7D=Hrv;ug51w7cN2(VJ_1U_V&YeY@4S~KyNXSd<^ilPIS#rL|@)jqR`-XVsa87 zj7l5w)M-5jb!t>C@uyf=jfY5)+^R#1e{dd6`_jZd0EaM(0QszLrJLmI(*m4Wb7x7B1EBe5qfda~t4#YD8rsT+i)=48&)`jKC7ar6DHP)|!yWu&mXk zF{MekNGFV|fPze``Cr7Oe_|5r^mH|P6|TWBROpb z6><_eR^x1pDmDJhxM)hCK$tpSD6<`+-}pHJB_1dEHYE$WuLGAIgj?E2#+xFC4vJAd z>!%Xdrfc5VetA=cwV0nng=VvzJk+&~S%TyasX(QRqeTp<5~%n-eF#*U4V1~SUy6l` zjYT9Ab2nawC#Lux3DmG;*;;Kqg?Hv0YdS2rYNsLKlH1wPv zW20s&5<8>G>dmU|H%wcE*kepuJ9X!@Zf->#rd{v=x#=yj+xwaXM}8e&qoBt$FC56h zhOjtH_s?@ByqeN%(iLDiR(7Fle5t4AOiSJvQUhf>Gq=xu72gmL&s3^I59zc$Z)r4I!*;$FNoDnb zw|O?`)p-n$&uJuO5SKs^v)tHXWDc)rDXrsu9Z8S$S|YP>o*g^U>?6+o)F-z2bpB7* zbz{#9J3yHs@0ePcVAJ9aLSguYb=RWo4d|bq@yd%3%Th`1p~JqbW5q3alf*I=>|enL z1yjMk+v3(;NuqJNi9y{Pt6ntwI;VL81+jp)A%<>&qxhL)*Up}M{+p+JgNd}~eeWip zZ@V4yFM0&OnQSZcX-VW~`#L(GcbP`>EZS=#F>F%jx&6N5B%7NA21lMr>9Y~vL(B0O zBOsRK8)wVRj4>&GZ6PQDtM(ar_A**_XPhEtll;jfy;Tr|jeJpUghq>L* z^wlA^!OlhTI~!mpaJmzy?VhRT;*TkBaVb!u zr4U@8v1NmUEp~&|%Tr43olq;ZP~%j1Y*D){>?lDLvd7*ps`+`g!=iIbg>D%tP;OBR zNQb=gh8LZjKkK^}awj==!=TjK{#5m~hg!ir8~gOaS#@0s1AY-Qpj&b+1d;`Iz5PQv z7{psKqv$xEHf5^tgiQK=3au~kj8@dKTS?vxrN~GKx!%fo9TKxVR6Jnft15CLoFo>n z3wgnsS*)*Ub)UCZ1H!H0s|d*;1~YLx&bUUG1iCxG*mx)vSZn(2L_D6sRDdvAtWzFh zAfUOXkUm5phzi!)?}_RWpoI(PVXG|TfKxQlL7Av9ATEs;SMAgtHKEdda zwnIGnR01mV5t+4cHusHEPsB##7d~GuJM?D}!KJgKDDeH^`FR>#=f+%A@0F+lue{n- zvP+TmfMDG1`A>yHPt)Vn!&5Q@GhlIh%Exw}=k|XRjN$;(G0#$QdMJ#r>h4Q!IF6 zS59^bVmL4~@Xn55?HheUnq>ISy$vK=d|hUBw&@gGbvdTw#%Y~Q2s`q+g1N{iVj7!9 z;!3UemX*5R7tKY@Idj&y81ZztdAOTL#fF;6Z$oG>93+&9Gf4MSX6(R|>IPxNZeIhS zK1DaJD-81WV?K4jwoH@B1Xs;|=(bQIpiPVjA|3Z&3$wyRb4~*{14qWF?+rqIwsYn< zS-XD9Ew^XBZE*CuK8z&&?KokHe%?_K34W_h4HP}8O6UfcnL;6La|D~pDgJUMF_|+7 z``n4s)DCesh)3{A_)iko0_{nePF zfbH}TFluL(ykFw3VUx0~u0wbevsnw`yw@VXjN7(<%m*dI*nc(gDaLk8~+A9qob_Y>1v@QuOdVn{WWAsz+^#!Rr;j;%it%&j>UT(Hd6FO{4 zb3tP)r)Rw)jYA6g{{2Hb)I3m9h^aF69h0RomTylAgjzKK{mNgvj9y>W&>kKgCYZ3( zxNDy<(}t9(pyoA9G9|dH-Z&ZKUO=o8Q)lL78cGH>v1K#ETGRFVdyZm2A`Tv)9Ik2qtpVw~v zn`8d3bkl)lJ2qxcpgkVYs+@(6l^y8XXT$;|ZZfejGjkXM8IsJ5Ccn45|6w;BXa&g* zFanOsX$UkaWMu@J?im>wGt!x`vH)02Oih4nCg$IV{?$$YoA{^yfxS#g+C|5|Gn<<4?MwdRUu|}&cCP%sl-mo^)kYT9J#|1YKM8q z?Xw-!ZXF@(5OMUC1}a&+P}COSLA8~fL5!k;(zd_#;s-e2mE_^f50uVh1VCPv(I!JE za60zlB7D$_g?Oij!WteM3TxLmvds>4`6@epd=PrY=2ZB7ahhnBQ&x3x)6oow6p@!p zvtT|JjG!q(ogt(v6Ph(nSVIk&G#f-9eiP#K7u+at!aF)e_ejH(`Lp{wPxFjs81I>} zx7dBiK_X#%U}&>yNSAhthbzNfL@I3rW0T_8x4R*ecJ8=IIF+Hd3ESeOv@@aaR;`FV zV$qDMOov`6%V=!Zuy5c|6+I&;L$5{DgLrwn?oJzDz)Nrs%Lww|qxW-33HEQ2x!>Qk zpDw1~l{(oU!4rRl&|v?r3Gp`<*Y~CLhsE`ql<&_F8jsKaeV+fKfy2f2D9yvd0z_!A zFtY!y%)`N9$ixOP0Ro#%fpBJ^%QsM|laY&!4v5lVHfCotVqrDq`WuoGKr{PCX`XM6 z=|6>NJkI#PU-SPvA~=sx|2~P|J{4^2f2Gu^6F(de6u}8T@(AaXQq`E=3)0qr4E7)G z;|LFsL?2WcaM7%ivHxK2Caoonn(JUEKKk%*-O54eg6bi^+F)`+D%ay$psqBTjr_|wn})|wuJ6dsCK-BPWC>lHQc6e5wJb}mPc-@9wbBfgXg zw4j$+;1r@~HO`(nVRC^z%L|<>V=|{6%0!(cL z5u?h6yey5`wCOUPws=WEERrd<9soAsx#AO4Wc##?hvd_c_34)^_wJljmHh$?|&6&c>b+cuwNc|zp-n0 z{=60JmaO}`K*I?zz`y_?1_%W}D;O}-#{yUkP_cgP1>-gZRE^l#xR`msCI&z~iRg`&Ed6n$`EBCtE&%?*)ZqXiU;tAGV1WT|4}fscuTUKb z2+G01!D+;73b#3wTa|OaKxQ z7#M$HHUS&*7;|$O8?&OY&xvKq>IyI$zPrr5Du+$z~*j) z&YeBKzJ2m={7c%L#-PngAO8FmqeVYl;=}2Xh#B_}@*YP|5N)jQhcTJGsl``}35@C8 zT=SB@;n?`1l`YlK^ynpQbRmQKd~d@>>bE7I=?}|ejby{s810;#;bdod>o3ReXl)Y)O(>`6Mr93GG{(7cId+cWdb%T8413eU z^H@7?wl0frvQ)I*Rm-GC)2^pQn#ZOk$?A*Mz5N5Z&M|LIUF?bbSb{7XGa-o14mxaaZ2u)gb|8}+|i0av+z6p1;Z-+_` zLefeC-}FDZas1k|*&63)S(zrkPUzpsm`sM^2XLw+6WK`RZ6Chvb>z#J*rI}fsGC>z z8i=RdZ0_IF&FuWL8NnLaAF7 z)_e{WDg0O=a_STTgvs&Sl`6D+O0r;%lf9c_ENr>b$--)5EW7$BRZDo^_nm0wLZ28BgdDtRwKT65-aZV9_4KhBu~^tYn_D01 zT-J$2(1;huuP3&vI6BCY7gb+2Ga}COczD=B&pXhSRVyuvV-g*I9aEgERu%+zbb-d- zn7xM&S52O0)qPx6r8d&%XeeGauiVI)6so$AwBhmwR1r!#P+`zw*EfWbu!&{Wd&zDR z4qbn2!goqRt>^YiAeaj`+eF`LZQj_H$5HEO>E`Q%(CPX@99*aT7v_sK<$m^3>Uum_ z*+dp*dEjh^tEQn<(Bg+>TG0(+J z1SuUgULEx43L%#26GHm-;v?hCwdK~-37rKxOx$r5DgrQNb_=p{Fh13=iI2PcH$2*7# z`=Bs(69EZ$R)rE-xJtY{UgFV1`U8BIm<-$(<2Cl;j7_*XcAC`dv7Rc^R=ZsrAL)I} zp5SkPLe1(uM(PyPbrTSjr+LLc)$l@#$FaXL$aq&o^_z#7{yoIEqCv>}@Q40ATKCUO zP(+yd{oOH`nZo2EAL!Gseq91_@mq-B>&5k>Wa5eC%~X7qSx>`|o1kZX580k7=Yi~{ zR0UI10eiOros)+-J}Xk!%ERk$F9%g$d6c&fyxwPcE8spJ>muDG)|CkMSK}OBOO6`F z>_gMy2#0)FQLhuv5DdK>uy8T2v*!2K9zju=OZQsdO251c!t;nnX~qf#vz&hN3Sxm? zC2+ubZmWgNkLX+*Dg<<%=bJ^tfIAaBwH69j(lL5r!?*n&uxECC*9lTgi74EAq`4yZ zn6TTkKP1F!0qK%ComuEy8}hoS0a~1F?FC6TOkt-Z@D=QpZ?fY{8EP2l(c+i?qD3i^ z^cGMq=07=UCB5GT<0Iekvb+H1hDq112{5H z^ItRHEQedl#f*xyH5R7-TmW z_(R%ASFV&h9Lh~hmnM!2n~Iso6xc7l&=(b|IXFxa^-E@WnAEz5z>&TYs@_ybn>mp_ zr!?p>-LMk&C2()R$TTc&HF`NWFUs|7v=eBFHd%!KS~ zc9)`M=d?DWHx7vJceO^N2JDrQP=RbKnwNo-4ogc}7%}x#wP8-XVO1pGvu(SLN^$8N z0zb#NCptS~nch+K1&67hmdLj9*x1k`5(Dc?&4i^Xy~rP+qR4Jqyzq0{{%AkArN5DU z^>opYaTME5LpkmuzrUz;zC*f^>c(&Kg5&k^gTi}h{B?jvp1=Lu=gQ&-ZZ zKlbVk+tlT~^);@G0XJG_ua4G2J(g>j#fHjQuQKNCSKg!v;^3q1L~C}rs%Gf(%U{!& zq(1^T^kE1*@?&7Bn>M2~OX1JMl}~JxfAmfCTY(fdB*ailLG^McWJq{$Ja5L2>$_T7 z3Q^Nq$Xu)g0zV-(TFnWjUrNU0=lPzvbJgti5~CW51Y?wSd2DvPsz;>O+j?0Z-Zo1* zp)@7&c)7z&1`ZWax2zIFnT#FkalId)wP(1yhz*V171Hh9H-Uq`d4}+3VVZb4x!~sv6utPXgdK1C5e^29^gVW*B~%rIApSSejcQhFkoPuM8+ z(K7^|sFF~LZg=A3=FIGV6rDTU&dIBc4%VWS#cF=Lkru6m0@%7k8>yxh}}61<@;#jYNJ6*R@K_2tKs(_P$~m+6Hm&Bc0rA)U6(eF{&YwM zeV`(&L#9QG_{-p0lG&tQbF$%~xqaq70oN*XSSbVcosPQNALhrgBSDP*8bO-spBmVs z0$UAroFpF564v!3mU4O6gib2KRb6{=&2Msa`C#RK%SDRICNUnCo=E+?Nwb(xq%L5U zu$LLykjodj;Y_EOJ}t}tC~OL%FhAn!$zaqW`>eJ69x7?EK^SLeo_6QR2ps5w9;XfA zG8PA4O7B&00h>tTUgiSYR$X&kVLuw4U8U=oS=vlRnYUL#V#Z@$#%b~BM z*Vk#PM`03rO>`t9UJI>dV}qnfA2yh7%raDlfr6zrU!Im;pTGG|6xXdi$cA7&HclY z;9u95d42)K{;eUcUj(~;R|4d@8!h^y65#Ej|42IUe^G(H{doV718{Qk{Hyt;Y>m07 zxgKm_erbq$5yxO?@uvO__w#O-7)99v)lz=_eoY*9(iiC9Gbgy`^O9(i4 zrCxbw*ziqnFj*R*5F$CIb3KzEs{slAOEpHmZ0a|y?5FWicV!h4+6C(HA z;&YpAlzbA=%xXk+3rgdJ%)+j|a}2^28-~OwYrH0&5?MTW+BPPV{pUDS#ZuNHdWz}R z?kfjg$~fHcVY9mG=ZH!~P*G=B@Z;oKa>S{*_A|X*?nW2?{=O86GaY%GaPvV5ExM&| zX(3mqR6LRD32)eNH3Bj&?Jd6v#AYH>P^sVYh=E$KwlNesgmVeiJBxR}?AbDD zR9Eh+sg#oB)!wF(S&DOhMu#M-N4@SohM|xVemHYvSyroKIghSFm<0Y%A&p;-Wtr9d z;{-v@etXP`kfrJg`o?e%M(4z3I#z}L1gQcdYHwjhnbw%Vt%0+9d}jo;PTr$sdx4D zC@ZT{D_Hp?ysapKb_rtU>10TZPeA3$2>YLt3g?(f)$a4Gw>w0eM!Wali+(-zy|)!d zk!79cK#}WMk;9#@>^+x%a=9$qoY9--+kIW;TOU`ac5ldikR0zx_0lr^c(~owhDbJu z@qAD-U*;%KNLyhkfx`GP+_kj%7q3eVc`M_`0y-xz z94xp`h0zyTbo`o}I#!*@tTr=64=+$2N_0~G5CXf|_kt#K0Qm9Wx)1;}@ zPPd`A>|_e8huVhhOd4U(bhpF~>&B z`dxnW1Z{A(`|C?I`p8~iferR%C9;*)<2ZWbvL49LygajtzW@sjP32l`EY zpn^NzVa8onu*SYGeMS7?v5NgU-Ko%nBm!6~CkK@yG-ArpCT}~4A7(U9c@>oJ||m@zKMX0Wzn_~ zv?DE19cwd`o3+st(O`v-?>#`+af{}Rz|0!OGo6!LjfOPXEX@ZgW3d(VF%vhf-S5O! z4Nlb{GQl=TgVW6*u?v`At(8rb@fvvJ(zZJ|WKhz@+BdIw8L24haosppsDz4M0@M9A zkzv3wHX8;4It8#)IXPr2~TU?YMN7z8(Q2erVP z4*@jGJ>@hc7kW%5j97}RTdv0tl)Yv6(?J9@*6p4;BR-b*_ z{ysl$FCjDnt8DRjRXWNIltt2xxvy1IRkF9!`M_9Il#6(i@@w69RECGxux_UwVx*%Y zO3H9Vvrl%(*4WM`aHM@dhrO)zY>HKLiAnC%7Kr;C-F470j#37L0sk zI}0LDeTeIQ{EaG%M?qwP;-jbh{F^M}B3hwldvF$Zc-S77Vhw?<^8(o4UUL&)=y#`xqjH(W$xh0t~JtW*d` z*5Per#yxyuM>W?>Au=6h!Rk{=fxZj zgI_B;kE^R9^=vp8H+E#9e4uDsXiKy(=<(}MrlN?2=xY|l?}KFLU~nQmHuHmB6GC_Z^K`dnY&B8+fygrP5< z2kU{1Y6U?s@t^B~(SHI2u7#0D;-blRKYLsi>X7L6{! z5B5DC)P+3c3~w;gbATO!WL9i1wPhh$k!ss~h!SEqb~Q8l8h$mguCz|No1?|{+0^&7 zYjYl(f34%Y0+o*mycktdy{W^G)b(rgO0c|W*t~C^9@@hdHRfT2O{LBIh$hn5lgT-g z%hT)O(&ZM8HC>qdOygcy@mSvrF*)-6k^xt``Z6iYz&f=>d12V{lvIYYPxfV_BmKTK zFQh+%IYcob>dByj-|k}$s!~t7@Tp)6X)>>8k@tC}=6rz1ZMoi%HH5zVU8a<`GF!{%r^^`;tx6(7OXNY&k`@w)1CwjpYi6NP9! zwf2LZD++uhO8(6?o6ER*W1vJlwz5qC zRq=%-p*x%);4DBW>kO;2u8h&wmTG5_aw5g`3K_$hPvFJd1RW;-;QC;pdY|-nbihh_%;Y(J&prvu9Gxj8X7l=yZjWcp?xa>o#YcRnOPXHxPGnjO2 zbQiQAw+PP8T>YGRMvMb@GiW!bNHtp3!8oEBeOlg_H%HhmdH=({Q>@+~{OQ3BDY1KKNr>*)GY`Ob z|2SLJ?=9d=`NQP>bC3KPC^M?5O}S|}3%{gM?Q(%F8eTY0_GFEJ z{lN(#@Q}@MKjFCV`{Vh^N0XRwVjdI+{YYsk{`bs~(rq~PzZ0XGg+vy8SRE_+E?dxP zr;-qKQdbhzifLNYpW8BnGJHyW!GS;y_bD>{g5pWKPO-%1Q%!A>_nxQO`B>ja3ZwPw z?Suwl#)0hb>}!bUMT3|b*{EGu;8HW8IA5{gw}^X_Qwj(UK~f@)30AcrLvd;%0+yx%Ujiy~yL3DT0pU8={a! zq};>6`>8F8oqW(T?KiX0yVK~+(5T5a>0TU>=4Z*sVr`#$V@V+8oMkE7aHWaG7LN|t zs|yR?KHpR&JFT6jR#R0otsFleX@+3XR)6JnJI%H3eNU})Tt}DG({f}duwGfKG37>s z{&fdiBEzg;a8yyqe;JdLqJ2b9QHM>uuWg+dUrqA_zFrb@DMnpIx(M0R;#oEE3Qgbi z>Q-0`tBQwVAM6|vMbKDlrE?7=<+*cQBf{k>UrZvQ_?jl-lT#dXz6DUMwnWC!TfJ!T z=iqJ=%kKz}(LoUhexifMTs4FJ5wjG}XyHags9k@&a+v%!c!HdquqNCn&*os-i~l97 zSnIXAq6>vPeV1f=Q{wsLtSTqT(4(7Y$Iq)#CulwyP6l1*bFZEqrzCdUzJ%Kf`{CU` z^fsL-1=|Qmc7DKWtvYxBhoL(I<+6zTa-~UOKS0xBvXm_3z0y30`4Gi%9{`L|dupakk>L<5uxl3H{)*V3{Kh>;$t{6jrl{7HucKw)(orU|3 zabjp-1mWNTtl=<#0@OivBO_)*V*>+Vaof-U1S~fj0;c^(?D}mzRP_IaD$5_|{{Ksg z1*l7afW_iFDHh=BgTS|CiN6auxxKmmp-2GY=H&PneQI4AI<|AXINs-Fi&@qA_=lo+ zHIGrMrDxaA2oP}KLqe7X!L`eq9TinkQRzbFKh{zy=_4JIPuL%m%;7;elM@_AHdhDn zO_OZS%-Q)anTSn8k~9<40@p4~TcuKwa~lS-4MUnVN4Tr_2an$yhD=%6w7#=C1YIR) zTgOFkH5E5qeJ?GVQLCC^o^VgFN}8wRLI(5=uVGm~yZ6t$$4kIduIx_W(tIA>z^Oi@ zl4{DYbQ2R1Mwp=3AYpei773O=KX08iah$9Ak>jZJuAJ&9nQCdDsKxy3@QClKs=@M` zM@mJ+9COti-}JQ3yr7{yNnwm;K}>M+_M$2z&**4*2Z35BLDqp@=sER9NWxIn(<%{) z2#9!^qZfl{nzewx`#`yOam>iTmZ%od+H!s$27Zsv64=!4?FSdr&Sgr%LI(q#&*e9@ zCi5-{D6wx=+1EIVq7ri)Q>ss2kdu6#xv8J4v#Dv-`TFdK*aP=U)1nya>Q#*adz+e? zI1&8N!bt=C&7{Q<_Tn>7mxWx%gaV_qBb1g61X=E#*&Zh!_XLLU*Ft?ev@+OOdn{4B z-K2%DzV(rAZN9pCzOPL_{F-RJPq%ak3ptJw@k2nRc3D!(%>Fwq&(=qcijhqH(vcv6 zoo~hwb{h3(H8R3gJIb-dgi?{!o48FayEAq_3Lg&}h<>`d^07N)7^s$CY}YN3^{8z% zh&J`+)mWuQAc|TmZL)u`1N3rCbIv-REn-xM&Ap#%3;ZD;dGzY^WX+KP8WD{H`v)5-ZLdBNo4g%^F<<(Ti9 zYM9;m?BJ)rk~O9t%})t94@B6K!@5~Cv?`|IAd(_&d^y!Ng5<3S4_dXlPrk6>#$-mJ zQ+;!RIv|lS1lh4UFGyb%$bnJ+P(iyhm&3|N`=G!?LGHz%;t$6p#MnF}bbj3wyFA zFrpjU@qK;Sg%eas;BqFZp)lwi^Eew0XNrgnJ8m%jg!cWXiqR3%XyrMTm>9GN#<0tz znX3J*c>?d|jazb8+xQXX7VrRU53f7<2a9olOc_66?a}S+=7?0S74ao;7`A#&1$@&|Y2g^BG)mO>xf zJK-be#;d5fV*2E*csmJryK%pJ7iJH(@ZkP*zeQ5z zmy+6WgLc1(PHwqNPHys~7^2r-x3CyUMHoZIs8HU;uQlp2lQ)Wzb%B%^$Q&LIBLBcX zE`Yx8Wlw)4k3O8`bzI)FHa?yTyQen!`n5CRYRd`8rFz$)MUgcw#p~TSEK*uugF|7% z4^H!ibS7mq<9&e|p2lKzd6tOHjDD2WNz(W@?JGBR3*?@g zl0Jb6qQX;~x437g%Yz!M$`2hwlf)V=V zL_a4SZntd9bD}0Hse@$Q^=Q8Ca1BgUDC{r7;Nr-I>#sai-l2+1$eqTFJRW!Bis8vY zqe}`r@>?vGhAVho+^5MZ+R12fG2n1N`4s(rYJgi$r5c^H=KK3RTzYt|1~VH^?Q5J1 zea#c|PsfoZzK5QFB>kXooN14TIDa5^wUXrdq{Bc8yxH6Siv2v}A^w|ua`yS&f^inE zE(G-+Yd>b_J9}qm|}7ZVx`}`KI=M2Xmn)Kl-BOw|Ifdv*rt@o!L$1sV*tK z*Z#FFTHJi^(eEE4((dRxy>W;j$xK~7fnSa*TDDD^U~qRHbUXJQeWvfY9yJ+Q+wYzdB(%_Vr;DtGUuq{Z!=7PaZG;e;CM6Vd zXv>jolB(pB&iecJx9?jEG$o`YFX()Kxr zXH&qBAIfZH8w}_Vjf^%*&kgW;hX#=jT)>TD|AfrQ(d))0z;#-aGJm}j24A0Yh*DBS zH}A{B^73t8YYmN|OlRt%bvbUySkh$nYYZ=IQ_|@+srV`CAF%@tSy{`mmzL>?gHPvq5#W2aqXz^NBT-hGrcQiA64OnXjSgYStkeip=V#V5Q4O2&{ z0%Z-GdB`Ye;-?oP?i|_Ky*d9Bv+f0EUanIvxvxq0#t@n( zeDSN9KghM>Y~=>tP`-?`A@EI|uCNJbtgulhmVz6Vr3>OkD|G}bKExhjV0;Q|_>qV! zr!=*FN^}CnbSpQAuFO`vt-Ba^7+^M{;mM)f^Y( zPHY$C)f~@A&hFX%w87FC?7X-mUbt?C-zk3Ra2U(F{mCd-?1^l9-dOTDU&M0j9=pH7 zdk=b~v}uUYtfAQ>d;cG&Mb@Ao{k~<2T*?stMTyG;&&*_ZzVTqf&zqBzA5{+*Xnds( zsekAW1Ah*wWqd|At*dcM+`7pXNWXb#9*zr0#9gm(Ghi5dqrJd;JKq1814<$M?X`ZV z8SVLoVe?uwrv4xEbf#rfh zNc$IT8gkkw1)~XB$&|V20S6wV6sS5nLj3wZ7p4VnkDd7wv`O?E5W>ORIX2JX<(fwLeR}ucA&xW3wKGMAut<6S%LANi*GrLBsg-VJ$fv=N zdq*jp8@_%8a9l?!G%aq?%Qko!kQ~GOAQw>roNcsMPM!o61meNwa4sYFA~L^BC5?it z`cTI^tPc@Le1e*1-SY>Zjg@s{j37O=3*Z=|?U|UeLROkk5+3Y zu4om|^o5vD9=SO}YhGt{Q#_8q?!2lx?0EUaJCKJ>REX9s{u9n*;GB4RWyKlo=HY`iC)>-~T^6Ude&do1{Tme2tUk3J6 zJjqGNUEfs8k8_~B#Bcv3F6}#r>dj}2pSbGqVCOYqWd2+P9%4PW=j*T>meHi!I$svJ??H`vb(D<&v*hD42hXqX%fc5?QtqSR;UuzJC~ z!Q5-J-q@V81Zssk#)?k+!h#A!Ywad*Sc>wgD+p;bV5wNuQE@OCF-2d%$v}mw)ciHH z2jS#x)a}%>mMu@b7TY((n`~@8r6t4K2;Z_i$=*EEW(`R@p4Q5EF`8nxEN(L z_nkhf1-%x<0UK3H@a?@#LpVBQ=2%tIqAvWy&vgSk6Sf~mEnbmCbz(D!W#%+V%5h|| z2&JSC5c|up)5P?vJI_~$t&zcxtcS3?N3wV-O*j=3+M%M(I9=4RQ_-H!t$3lmns-sm zIUYz(yCe~>&Q~1pGLs8=C!SYG2G6H0eK|_-MH@eMmf&1W=rLmvz9ntO>wD=q=?A@Q zsY_KOVh?;`Ug5HpxIB}A^NnPq%|EUZTjG1q$Gv$BwR;q?ZKc97QdX>9%ms^y{Dk(& z((zjA^6&o_X)6(GWg2|jef1h8beIQ9I+F^Qib|sxo-+bs_U=Ih**;ehqP?<+76%Y> zJKLx4VMiD&J{Yhz%{*eR8uhFG+{BiaEOQ~f7|ZhFwoP-nRRB*$pLZ{+z~z zR~_)#sLhror7v#srZ6m}ec2ZH=N2Ee6Jp?!c02Bx_IlYHwBTFHwTZ$hA}e03IE)@> zN{)3!MA^aR-u--9vfPFA!T&lx?!j9aRX99By|46wJ4lHaN;vXu)w2d%*XwhJf;|Uw zm#idl;s;D526M7ctr-hIl$QM?G7Ag~y~l%yA%slwbp&-EU)zf|i+~sa5T7gYO z50}l0TU0X`d=%hw?Oh0_>Yb$=9s9!%i@iuj+u&Ad|9(!}38_}7J=2I< zQs%;N-+diyU0X|s!(L^Cjy0iK7z^)2IJA!-#4O@TVA#$X=e>>2X*)?k3X^Bs+C)_hcli`qDEsSlq)cUd#JLI4?$wUgnRWEb!rYY%YFsAI$R9$(jixh1506F)w~(eu^rm?YyQ%xHz%RC}p9~3l zXStJHDKuqd(PUJ#b}U>bq+GI$sMY4}n-IQxe|>pQzIUYu$Ur+}7194;Mf6rv_#ewl z|E|u7`$rY&&?MS3HU|58DnLx(5jxsy$y8xluHyQ>2)hLhT|6?VokX zyQ}?IaI8C_Y1aRc)ReJ<1AxVHFm|-FwQ)55$yfP38w>m!obA_vm}hdbtiKFJaB{Oj z{>#StFB|LsQufEqz)nu?f0Tc099ayEYz>WBptjbmz#%~OhmFikn;NLozrRxJs_`TqkO>u;X({|Ot5 z+mHtW4Ck>i8$#HCscAM~<_yBa17?OAg4j8rU?_mbg8T}w`Zw8Fz^MTU7B`sLgdLd0 z27x)bnGK*|17;Ht2nvRPjKOSN|081cUpCgi%f|ZWaDAt~Wo7=4YFBrA|4{^s9}v^} zC%vqn8d@f{4%P-vf(CYWR_0KHpPVgLV>`#&AOGdhFWt zSpz7&f3)YHKpOv{9sdv%{zK>dr_=oRm;94U{%Xg6-St=A`KM$5b=N<+>#s*Lxc5Wyq zl+Ez(G-3hg1(cRJIRP}oty%wDZR*x9e_$725CEot@UQ@?PaF^q7Ph;-H82>$$<75> z#KFl9~u_A-_N5)?sQe=Zs(0do*~c}X z_Fj-S#tzA>bw9UYA0tngt5g+!Rx-?2`92P;Jbz`wWSq>=-V}l|)gZEnGCGeHw^fb( z)B@>)RTZVG7N!8HAvvbdiZW?`#G7YjPUu}qaZ}qg#nIVF4UxkUyU=J#M$s=+4CqBL z-4kkC?m;suJxbwMBb2#yO=d3(6vmH(F~NFI!X_k@URB$ii}GiSSr8#PW!K0S(en&g zK=bf+kwRkGsSn?iK5z8df~K{V**qi{8)j1{C%iv(_&8LFOGD_YXMkj+O4F6Ybs$(b z(~4f|eg#bWkO0+vI%a4qj8#VRX0}qSTc`l~j#Sm$4*&Q4Zh`l0$j?OwUG$sP>0mu# zatT;J>!Q&FE@n3SWFE@G%P?SnMz8*4Etx|x8=j`ca#cNdaCILfznd+`T4sLqq+Umf zoKUn*=05+(dveQ-yk)j6kb^YR2JywP@Vj33B?UTpSF+AZ!!dV8(o7=#%2!j96{}NJ zj`ea{-Z2OwYtv+Wt1+m~-q>wId+GD<&h{9n6hr00ma2!yRn?|b4?})*p1X9E?Y@eb zL%a4RgVlovFA)~P_{?r2zoeR){9=Mq)MpmO!gv!~zfsE8f$PvBcO za9qXQTFUGFULX*`*u~<(|6v6Y^0U|V?(Y4|2no5RA_1y*x8V%f-qPHF?QQcTu>A$$ z1Vk$!xc#dL3b_k`e=~yq0*?DFfx!@>rl z-~s^w?~Ydk1@Rbi8WKVH>eg?+ zv+Ea%4i_LF2%w|bfdJ3W0f3}{%`Y;7AWjp*pU5FFK=b)2?9It+2m(Wyc??XrOn~?a z;(-1wj?P_V2Sf+|B(mRL$A7j91Ofa7bR+{Y{inJiaF)BsZpg*KX$%E(G6RFHK(`@; z3n2Tj8yhe~*?0>nZ~zU(KQrq$)ra4ckU%`QSCa#1MFxnHAn;Fsln$%B z++#yyh=Cz+DStj}fWH7P(@)|Mh?xr@HW_epL!cbSe~V~!cNw|}LZvU>5Mqy?t-^%`Q#|j{(@29m;HAWCGmvfFaC4>oykvZGsrE z8L*jvjKG|K`!fCorRnyIdS}=F*#r7NOli7}J9qZ{N@?Qa`B&00T^jv1t9{tbJB&y1 z=0OkFJFIPJWhN||!tR3*(C&vp6vf{K-w$Dmjxi$r4!M!(jnY<~`f77wIQf!k9VZf- zRrme%R%h9Besm3oIR19t}{3MH+e;mL#fbJTs2@@ zBpN=o=z2%iF-VC}qv8h?JVdoW=2!LqK&`X5Cr2)(hpzSmj(nlX!aAOJLtP@eJ0F@=zt(#d0k`)`U1HkCEV^kg zHmrjmyW%C0#HM%l(iVr;*%ZE2#CVRuMiiU3kd!q0%|W0t9HuUuqzoFJ(V3CtSK@sY z91Hx-hezua?7Xr@u=MV#bbcC7(a0wb&mfI&?r)0whoOabAydIrg%giHdJykfeQ4>- z@XfHeZ7vfJMYj6HO--1|)3_by6>)1!wEZPo%PP)ZZ%{~P@6>9DyohCu4pqqnvB(>+yBN*(;+cP}RY?q0xjT~US+TS@}b$vZKWh3yB&v~fnzi+I^=r7o;PfMhE z3g3poNE|9Ad^}tDJVU-^;gNQiqrM%whb{ z^JQdt6zZ74vrE27ir6$vt$>W>$h3ZoSL@nFxEwqaRo8K|H{SSi@lj>q87u*x$n(~D z22^x0o0x7KXE#c$=P zJ+HHgrBn=yofV>(Dv*JVJ4aDuVMipM?2}jv?1+|R+hOAWWKm)5OMG_y!6a zGs`*@2)aLXUrre=St9;$059}pKj`KS)DBinNkZ)vzlz{Fu6xUwtSi~NjPVG}N3zBG zrB8%=<%m>j6=>L>EAYtAgWRekFq2{YJ+n8_9up=MDU-k-D+C<(7K*!^Se<1}A#YX1Wpi8+$IEz1*My2oQtBURW|^Xv7I9$rwZstXO-H)L3pJ_26} zZ=!aM&{uRcTwb-}3$8Fq)6}uO@yO1G>O>)xkl~iC75S3I6B2n=E-@S30^1-05~@%q zeoKW@3HnTzM3qKiT5U(KjJ_zQr>*ohXF3s&xn7N{669N5JP~=+4i)goXm3b+4o~qJ zmNwa+C#g2#dqJZ*-e$S+YxD*}3O~bq*=zXwEMAD7H{~bhR502-ax-bIIZNwu4`FO6 zh6hqz=?n$BrngMwwqM+vifMgNx{@CVyc&$p-?Pi`)A@MLk5pS<=}=hg zWp8hh=j#w=GA&?OGE>Jeq0-5HRIwBt#oJddZU>JHLP7HAu1dS8@xA}H|Iv+O#l7p= z4}M}SaRFMfJ(iX-jF}ktL~PU}&tuG<#uhr;}HE^xA9O6}+maEi= z^U$93^SS)gl@6udaMDvY#MHEdsDsp`$ed~KD~bWJ~I30 z6)BPpvyKc~qV1DUoBh_c!pp*y$B+5M>hdn#FjQHw#_&p^3yl;HMeSAgQ0kADDtOL$ z>||oSgpcrWUSr$!@nY*4%?Ojsjaa_WezSB`_vU+2p5)-kCyg6J^-FnpHyYP6@#fif zOmvkho}OY&{Zhoe9pSdM(w$zo4zX2T5c;V~X8KExy&^$9F(fgKtS;R|z66Nm%+R-4 zCT9h_=x7nxZ@7X+c(%&x2u`Kc-dY?Y@Pr?%$5k!2Oe)VmpbJc2v(e0RAYs0lMZ*v- zM2~fR7ae$oJ;mKQAmr@bUAjqfWN?+_QyK6F#NtiJN4I;n06?5&Phnvc08#vBg;& z(`xX3j%yc95`q2;I2@UKx%70NAkPJ^a*&#phHSf1M2>iZl;9v;SY^b62Ll(}b$-fX z+?1OAR-@6g>vg2AVy!r}3rY}U=clD?(jWq=0_pSY{i5sT#i^_0RX688gDgv>gG1@o zN(bXjO$)Hw(DANVhRnx-nhG(ZZBKM> zw@~*}i`JJjX&;DUeO=0LJgnJNn{OHtoo;GQ6wM|UE$aURCd&=HAn6<6DGff<(*V7k(f#y(GhWZfu7pda7`0IJv}L>6m4~ zY)OV`w*G7bx+!t7MJ}SEA{TWHGxSYM&v?zzlA7^RnJ}M)d8z)$|`BAww;E z^5lx@nd#bQBRblOtg$#1@lXPp)lS!zgfCgAz#u!D_Z-0U3^&?+uxb}W|`k%AqqLRb!LbsOXsylp8W^7vQsyh3JSp= z&RI@IOB4Gl+TYjp5Eh;%WIfvjUoj7UWWaO9#2hgH^p%sNI2Mzlcr2ALj=$Lw(bscE z?m5G|D*ffw@3g@hR4E<=nf}pkbFvMBn7P>gEp*ZyDCyT021nqR-R=2o>cMIeCB&X$W`;WWWR1#bE+KjRE(8!BC*@g58MQ0LuO!@z-yu{QpS~ z_{TH3e@7AG?mP33*&aL3zhd(4YRK8H{LJ<=P9jN}8oqbaL3sG8`sLqh)-4f=B6y6Jxwc*QLMhE>(w(VrH=3j8swkTZ zVm8gkLK9xCSir>|yp!zkA2iaMkiDAQkig-`d!&J^}a>-pa^qE57lI|@39 z2BQ}Y8Gb$eMqWfdU9^c(^i<;sj$}ZVTVP_Uchl^IX_sH?YnXVJRtF}3BCB9J2PSue z3hanV3-DV>R8o zEJT#>T7~nnhP`BS2 zRj)jJU%bGZVRdK88p=ceAXn(DtJyKP=6pr4O_iOY8(GhpFb%D|#M%g+G3oU~SDqCW z)`JQ^1^yLWVsgm~U%rGDA=X3t&RH9WV)7_GLEm>EPl2cw(Te&`7xiF2X%YutNEFc zo5`X#BI!-Yr*Xt5noqS5!?@>an%M%YcVEH2(ei4U8h!-v6JyyZik6oO{Q;Jx0dJ2(_|mF>9__bG_g5z3(SFQUPp=1iG%O zrB|@>=3WH!ukOBaJANzFg>$M3OVUv~LEM9M)YK=7TLOkjjoUU{?KgNA zO3BJ~7e-r5h?YL?RFza_Pti3sb1VaE##LP_`1o*?lQ6@H{UqUDOF|`D5x56Snf9B= zJhzofR_4;g*%-`z*Pvo|ZZv2B&nBKepBd;JD1r!%;uq`>*;%kC@-(w!zeYVXc}Vdd zOJCrO_yaMAlxo91MYbOwb}L^E_?Qv7vzTk*NZyrtov%RQc%XGonfM|EcN9$*ybAuk zpTe0Dcd3&4RU|Tm=nGPdPmgtrpO8m+WOyXA@22wGh*}FyZ8yrfui~qmqTl!?`fJ5t zs2j?yem%nRcijjA-nTdSnauMI80-`#`pWNEQ?JnFC%^$xh(x|(4O}nSrgcs08yl`U zX46?vKEGH#G6eFKKID7z*{Xc(QnpdxR|~ILi4HX<99hOQZ{TE=r?K(`uM-Q`irDSB z|Cq6rUTQR}4+CEtsSD7R=TBlx`)HNHA3%+ywo1=^{sC8XYKg6rh-cnDMuoBRO8H75 z&AE8-O=+d>sJfGCo4W|;<{hz{;73kDcNbXeE0*4!RwPp(&Fa&DYYB`gEbh}t+%`7m z=h8D6odQq#l!XtKBy7Wojmo5dmbRZa`syW2?5GAiw(dkJ!DI;h$0~(0!wbt!;w^<2 z@y;bR_a%_xJ1^%{+raF5pY~Rw8i_NkpQXW6XS=@*UTJh&;eP6tSU3%_7G+zs_Rnma zz?7obdC7T}yHlC9xGwqCa_mhdSJHs*+K5@Ln^Km=Jzbk1*dSX(XV`3W7th;nj>tH&v&b{B?pUGC-0e`X{Sz^ zsLfQXk52Bn)XzZGMS^pTJ4Dl8lt1ff)Gh-sSc>(WP=;ae5v6fV#ad<-$`n&7CkYIl z)1&8UnaR9)mw4n{frPa0j`R8J{$x=g8Mm&*5O#k)U5}wxUM@iysfaCyLG|_M7BFvJ zNAj6VCPn6@_dSw6t47iKQ8WN{M}E{Yjz7xey1!U|9!9NQ<>GshuRfbdT-$&t8C-uqtdP2`iJ=R%JvT8 z2C=EQ;wE6IHQV}v#(X6`3P}B6U+vGF=4ogE?;7PV=6}SGJ0DoX_^PAi1 z4=@D|z+Wn|{qlVAYmtou@GpyOKfm$PAL4GDBti)Pt=g_fJR~+Nx3vJmKH^a;fIBi_cwL`==nD zYD8u@@@Pmkm3Gg-?KQeL8wJ-UuR5fv_F=tzUqWBcHe|Lg0-+oTIC>OB7uSvLS5z z;h{j>`#Zn&YB*0*mTTBFY65bG>~Xn0B$qADBs#fmN5^i1?W`mR^fz?Jl?$OpNzF04 zrg<1C?iWYg@m+)|)}qb42^0v!{vk!i?{6MO&K&Ief+76f_`ecR&26nDdK($DUh_@G zqwZi>8t|NQ@O%tbb(E7YMDx`qleS*eq0)P4j6>so=mOP;^@)$rPeW!0OAWStcyvi3%26 z8vVG%fm{R6m0>&>(fC#GtX4PSE$wtwb_=n)XrSAL+D)e|ANtq*KByOqhLCSgkb@5c zqRX=5^QDd*>6cKlGX=<+uREdmf@Qd4d-}>u${o~CTKaq?%|bZVcQ!)FE-2Zp%ucr# zDa+S<8S<*$@i~4mr z`#s|YN*@1Ss|AG*ageZa{^|k71_~Ggn6epzO2{mr<_LBUHbx#!RxU;Wh@xUK0rGIO znErYB0HlZfi%cYr@5A&vS%c+g^o$KuN&X3(VEL)04Js&uRD_=^?q&c`w}vqb2O|p? z2RkD>&8Z4sh<+KKm~5L zU%3f0BOu6v%oxbX$_@l^6P#?Ia6e8^G?Fm~4<|P$YaJ9u^ruphepZ2aSpVf^{TH?6 z7uAgQC)ErTAqB!Zct}`(6U~ePM#iQlY&@WJCL@q&2I_ZV1ZhGbV>dRSsR;-WU}rV@ z^V|e0H{f5yB5{15cR!ETf7~(cS6Gf&l7$2$@_nD-k|1j3=k~%M3pM}MJnbjQ<>&t? zC&~fZD6o9rx%^4~5Q>%H@jhC*)cKZ-NV(D)R+B!Sm)K)Wx6oMx^5e6G2^^=nO_ zJIp&5HpiTS_zyv3rt!6t{UC~K`yT(3`U~V(VaQ5j#;4ndrH4*|S1veQb`9xwZt9lx zD|WT-2GpQ@--k^x$VR?&Az0M3QAn2}J{C?~p~3 z)ogrY=)ryVa0B}R4P;s;ZjOZV)B0~Bf)D}wxi-)3U&!aOxn{j_Ik;H%dRnfI!K$6DkwdN?iqZiLv&~0(%~tNxA3k5qFD<+r2!sG5~)H@ zOq=iwQj0@Pa*3&wOehS@LhCp z+TTa{Zn1`yI_0>MT9GR+B@tqjSRO9|z+?4C4!+DAT#pu{RpIIK3`)BxPEC|Ptaa#T zjF);xb$P2l5Pi8a|LiKt^QpW;B`QZindEKwhIcm_G}403xWIb;hXY)Z;xjHmamSL_ z)7U^=?n&rkE9d@ZVCx6x{N3%(u-IM{4y&i?iiG&DUsIXnc(5M#gaWh6Gv;hhFfPQN zo%%aB_V{^|z2%MfXV|iuNgi|j7z2(UNUTXB&~qmkx4$J86VLHVZDEFj9@pv)g)>I~ zMAM=H1x^P{OJ*NZm+w8_{rl}TNLi=jE)BDK1SR|=fprvIwsU#@Y~-;E@3}!Y=nb9Y z##EG&YOOYfBjnjXbS7Z7hiSt0=2SYW4{UbSH8bGQA&d3wz2R| z2q;;l$-@Ji{meX$H#3bwKA)R0kJ>$a_}t!^4^mQQtEpqQsEXCbB9TYS|oO^M;pav1}a2^>FNEi3`xqlH1XX4$>3z)5d z)im^AFdT9-VG;;SDAmLj#6H}KZD%(~o--k$zSw#LcM_dpqmSSzynbmCr~-F;_G;kr zKBrbtf^I;%K|S;iC?S@(0I(Dc&Y{>7RwQLYScw`y`1zmJ zBqCP1 z5%++@r_3EH@{E_*NHqpb6>|rUQF%55d_b3q1fF_?R+lLau-gnFv~9JVvc5xv>P%d% z&8&%JoGB!s2IIR4!j0=&3-^CT&@7(CNwKs(KiZS+WyGFaI6W$-ailSx>?Go)x7tb4 znHV@`SY!=AB5X+~nU;9shVT9a&-X&ws*-!abD+=~mVq2bX58gIVes_iQSPKJXhy7? zZe~kOQ6zJPCrJg?kK*D8P=YVluGY z)6AZi#b<7&YNzr!KV05!>JrrFx0FDYcgCgia{c&GvCRX=0iP2O)9sHxxM?NvJlFcn z?tIWdS0tnM9{uPArzu-huBQ;2VR$?3yH2jN5!)n`D(}X}jx(>()yqlE5B#Aq=m+KzHcB>|R;!6;jXBG4=9XIEYL*gm+Hb>T)0Phui5Qo~CKPh^JDRr#bev z*7mC12diRyWyM+r>AY`+H)y-uYSgCVXhlGM^Ts))3W_q$Bmg3ao9=Vz71F`C(rRYZ zvton+!IoJyjD$L)#O+CP?{%igfLDSS)VF1~;1(kvq3qLAG<{*8jKe+ny|i^o%r!fx zKFR71qp~p`C$>!)!HTuL%Zl^Oy$E(cO?cs?Q#(JKV}s^NVXB4nz->&V#Ei>pamG9F zX3el7a2}Scmv6>m3#zBbY97yP0HV8s&l{0Olim;s;yRdi-+X4!5K1 zSFU0C0a_J-lf;^-N2{i+s;5aBQzV~AC(hQLZB5I#n{78JH&z@mrjnLFpac?2>ieph z=)5L3Np^Z)G!)4Kd%$le#W~n9nH5b0k zKjH*_>1sGZlJGd`eQ1OU@*XKRkX6D#Z&?2z^nn(_?K!W(uuZ{p$lgpDM~>W?56y4S zG}cT+tMlTOmBt`+g1qS7r>+sLfR%mN67yi#!N5iK zFc*xS()igAt(zR&3--4&&$8*;^AX518|RZP06{y_&{wl0_Vn$Ub__Fhe(;O*K7t#q7DbLo^C(Zl_-obUFa1edLw(<`71l2ERf%1U( zYS>}nV+#s;45JdW4~9RTL;@24oGds^>kP?4bpjE?hhPE<74yC@#YmcKhY4>DwY@8s z^VJOMn2P8M%1G`Pl57DJvvb@x;M(`&M%gRnkB1@XtcOYXPcUZjrlUew)v#UA$HRrH z)8QjgaYeQen5i#XAR3rDcH~R*SY#YEV(sBReQ6CKd55d}7~-*tG&L!_8HFzm2XBc; zP>hePYSb{#Wk^jDMI=OAHgc}ZHXDMO=FRQUNGM-xL0#XLNL0ELPMX9NBa>_r_9$N& zpD`v!H1GYj4Y)v@wl9ygt$S^gMd6$DvI+Jji+GpN1*^34yiy+koW1r%v#>f~)xS91 zW41+3V|A=NR9;Q!ZcQTV>B=2 zq)22>+xNZ&8a43*)Tkp@^qj6qeUR+zs-;Ztwj8(iGI(m|S}d4bo~qBhkb1ig_ut0{ zl(yQm_`hbaCT_A0=&YvhtfI;$@Ft7c=Dl7U#$X&PUVY?!xD72Yj@vi!TN2KqB%cYm zDs{V-w66=$Ad0rRKbz%zbj5Aim&9xq$mJamA%`apr5@bfHb;hDABT-L+Lg&6ssYbt z+2fYV2^O9BmKnQD56axb(`~e0ZADVhztyxI32px70I2#nj5aql#7w>OHN{`FJR$yc zl0k;5fyg)?tbyUu9;rzEeKWizRdo;?dVr6H1Cj1XI?#jP#XV)Mv+dzp|HOxficaXo z7R!WLD*E$f?u%wpwev|9j^PyKWIPus?70zo-m)BAV@#B}pcP{Djs)rrbOR1u8ki`z zb4)DZ2ayj~!5X+hwM6F<=~uLo9$Z6-jr|W5`Z}L?C{2=^F18IzmHOLG0nnA)7ed_@ zLQf-K;@XC4ceZSDGe{JUw?=fe26P_RC(ka|5aMyqUFq3QUA^3fTpB4dr1;%q>U(VQ z^3d^Gu-?QMlK2z3gw-7O!k0qXw~gg6^5lCAR1Ax$C^4R$XHxIx%D6Gg$4{Z*{8Az5g4h0 z-;rM?3NHa!V_suMOnH%n&oZAKZACx`N-akOm2ZAaH|bb3ezR`pVJQ{9D<=tV9useV zwxSHiE+Y=VmG9KL?g7XRrm@62XPQ`fGdN(ARn#}^2M1)wkhIBl803MVcUcv#&&Zia z8jA%>9eWGj(%IiCg&a@)+?A-(H@y55t!x0C?aJUz=ccs&7LH*Cjo~?}IquY9GC0#m z6`AvAbD7+Vv)#)1$bP}kfuXp{!t{*0IHmj@T1JR6vj@ z7f>QbL=T~aT+s@b5nW|hg4}=%qU~3tPB#vX4W!U z*I5EfD$uy1bE5Rv7ua%^1kl&zZsbVV= z_jujF5V$=VUFMPlrwO2n*V#Su&9E1Aq~7Zs~8gXtGfdTK&PL*T^paciM__N7%&?08faHx|u& zDO4QoD8HI+yB{Z(&fB9e{3fY7jMoA^97s*e>ruE-k`Jv%=TRqA^oEl({d^130nHpi zp)07r0c)Ut*UIwlOY*K#_y<#QIXi7^UA=obo6d9gH7NALh|iI&PEL8Zm=`80ZF1{r z-*<&6&-fr&-5(tSX_=$`PB8%sa8I7@+zDgJr^12#E6c1#2v zjC!hkZqjNInT2Q71T?P{v(I~uNPDX>uhMUcQxu;?h~ExgvIz#YwBw|k$x?vn3a|cq}({+B}P&}00g5sq*K*8j>U{g z$&Ok2IuqS?$T7#-LcmVU`qSCX{t#bhd$U~pr=Zi8H3o*(088k29=mS%a;?pRfyS)X zOmsQhrmF_is2xFyx)6t1BJ-(z_AL^H&)S~mj*hjm#91pi@pYMna75p_D>|WYz%bzM z-v0RG{z;$tMMH8lHFCCdqybfIWJy4+Q?$&#HrsN1pB11sR!e7VQyNiTU0n@3$5*<# z!g3csV#yspSAYGgTRNVluvV)X*Hc-q7 zD-V!^698ZV8nOIux=Mi@sf;+d0c?z199%pg$(_>()Em#q!pI8b;xaP@HQ<>6em(Wy zu2O$;#r}1{{=s@}2{bh@c5(X25b$Szr@tMh{+s*7f9?nW&PU@v_AY@Rtt$dv^UjTz_c<{?ft!|Cn8W-eKxzGU4aP;NLy;erGCwbC}{_{f*}Ncm63H ztiMo5tluf5KkD{k{iT7+&e_P>lmq~J>IPaG{kP6CRSOpzV-irm73kSm`SvzQI zNB$^3U&rro8a56d5J1E6lS>Myd5HtS1nTtynWX&EyTrv|3NU3iVgvPh83RE66#z~U zhGc5O$O$w9B@nW*gL3}V&MVxF8$O@1@f-|^`Nn_F|mT|K0sa@ z|8PeEA*djt2Sn1avYUV&8#q7?8=R&*jI01NkR=w#D8-cLFW7zXu>1=f5|G)+ud>5` z9H;rs+TwqJ(||rY)}P@s5KaR+BWRdFbK%e8G~cJ$&%^!?oQ8|#kI>o-4TG4aCN$rx z;1V?>_?nV$Pms->5wV|}$ zYz^B#KAK(cKbTi?_HK-rh01E$we*UvS~uk1GU}!=1Y%-*l8JWd{_*Hn>RdN!)a3Y2sZ?LXpkR;$%>4#rb7H%(_U%WWy6->mneL>z@%qw3tH z1-G^9%yZLayhQTGN%&UNXBR(ZXTVI7)i%^Gy^(i#8ygrOMg;vSH|Hc2#sFEuap{qa z=zhERlu2wnA_svZW4wGE+N4P~fU)|Owwq?)#=wis?&`j``|m4t>h~AN&7SQwD(V=2 z=?{T=kFQqNaCpbW9wuck(k7R4B&xTj5rlN^;>gea&H?_dWg@JcML?NZlo?frr+aCc zyo*g`%O!@-+)8xv3xI*%q06m5fAj}drHZH`3#CXzpLnjvKM{UVemL`X;CCvOR6$vLQZbDu;6icY9F=kC} z(O#DlOt+ee>b^gERg$W$yPK>XR6nmC8ZW)a{^^=st+xR~cndbH#U5??x*~O2?5F%+st}1ZSQ#wXKy0*>SKcO`Vo)cfQ0r0GL%lPV&LJW{JG%?2&U+ zOzEMRBfMhxvIc!-pg^J+667bklK)}+QzZ6iehQvQnaBrFRY+7+Q1`w`zj9DriD4mU zrc5Bx>TpQieRd682yw$|L&}9I_W?ap=Ov8&WhC#wwTg;dHd0O_W50>Pk?K^mOD8gI z@sJuJ+Q-m(q5cj6i2%g#g11jJ@eZ7+KyQ*Ehl;C20%`l$D)z7@B~Cc__?&{CqI<1P z7-eD7F*2?-O& z=8syj(V5vKnXuVbU*}~g1S%Mb&|Yyd9Vnn@)q^p%Eah$*nyQwu*xOq{{uZIPMV9`3Ux*K6Pp#n(DCG@!;RrM0ZB zW?&Nq@#|liXN1~6E!cQtYl>UQpEdJ1+P$RVlt1ydY=TV<61I}oKty-r$<~H|^0MPO z!-5gS6+EgQpt1bW?_qxeS{U{Ab);)$vxYw;(0Vy42gU2~y_ID=QmVpcl{RXCexpKF z$F6D=AI}*pkNm#FG*9%+jn?SM-0-O%j9@}QP#b4nvji)7_i5vs;hk>SR56=8a*gq8 zh>Xmj<)P1L&B=Ec9a-1zitH(9U)fI=&M(rpR7@Skac^pL^V#EGuW?whUsO>Pzq6YP z6N+|iHUqCC^+>|UQ|y#{BVFM4qH2`0z$cp3>6F`KV39ogUf2}fR!^PE+~QW&=*Z_r z6{-HY-w>omU_6nKPBSr})k!ad*Y`{tw6s z_QgGk?Hpkyz@BZY&{CBGV@0+>|6Y&C^Gh8HzxfvI%9w1@anqSe z%}zC;Lb=I+-rkea#1uDXhtl0So?n4$#VQ9}(d4vVr>YCGoBZyWfOB}y2t_Hm$J3ID z2DLlgP6A3+a(qwuIBPuc;?R`A(x)#5ET;NIh0I4R-j_M`_*Kk1=mg7@(Jzk%bg=K3 zIY%t_}I~HGy)f^UQMTs~l=sJ`X@9&{buJ~XyxpdO`JRu71q5LesmR8hJ z3$v!WVt^r2LN}G4?*r?+GUhRc^2Z{R#VXiAGUaxNnuwqp2%XR;qyUX@TI>FhVB zeFm+XSDG zUME|(yGsXDwk*Ogyg1h_?_PUM;Gk6-5_yeP7fcJ*O|D7rR%R3W@Id1!Nb%9HeqCzN zk7Bp+MTyx=gr!1p)q;`~gzOiW_vN1vdmq9!>PNVlnW{@dHv7>;3KI`$6>{a-INx#{ zj;tW3Qc;)tvt>8-R?9T*sPQ(>*3RnkvMSrwnYbdB%l%Ecv=XjHt~VMQUZsaCh|MiG z!(BM#V_f5x)ZX_IuT)%=)qPYAUWcnuetw7S!~&y<&@^f>z!5j(SpQyH>?1gm8GM?0 zW?=5D=>Q5I=V?Uurz2U6UOlOtl?^uXOE1Re^@6zs5&5)A@$v{Hp#?k&9hepW`HEYs zlQNVHCxO#PvExL+)rXcY#W=Ehi<99JPrEMzRL<`U*h+{NxX)o>GJCCf#UM1@d83@F zxo`tuR5bZ*VrO?5x&18X-y@`@k};v?Z#YW2quyX6u<9nj0S#b`$!fOr0}CQ_t(ou^ zy`I)UbmG9ZE)^O=2sb@^2NDZiQ;pmaDdcf!{rVH$(?Nd-9yd=byDDcDB8MfA&Bu}! zTKCIrCG`us~KFcF(a#41TVx8<;=ehde$V^yo#^K+9CPRo_XGBbc7ZW>k* z2*>L>IA1EYM4Ng0Me6UUw*PCvQLdAPSXgKkMXEO?_bkpJm*+}dp^0#4uE zYk3bzt|Zo7>txC=gr>-V;)2k(cVh1!J2d(BGdRMa*r?RU<%6-WpX)kE&ML|mK7+^= zd)blNxKqY)cr#VEt0RPMNFL0PcOENUszV#Pz5Q;Dgl0Ng=u`Syq3t=hCb#S7JiJE5 zNlaH{D=;yO_ay5*dpAO-5D^sJCBc}KnBeHXyh0JU8{wx=im>`YG0V=i!rUg~vQen| zub_N{!c!;`C!W<#J=eBQg80z$89yNVG_m4MbzXyA@U1nQBkBcGIlf3?3w{?;6m9n~ zZiahqglSol>IYsD-B59G7yK-LM9=odl&;yJht0liL6a zDWB-9eQS3-s;wj*Uf>bN4oR@%tqmG=QIg^ozYec&gq3c2~b2iBpq&SGv0&w)2 za2U1_)fVGRa=Q6<8jNPj{hbl=A{`iMj4Cu}dd^tFFtIqpEd2YmZ4%MGb)`w_(PAPo zGln;vG9d{K=sz=U3@Yo9;UC{Pi9AJ zl^-2?TJpNWgB6RcS6I!LO4_|{fVTP`FOhE{wi`4V_7j|~t39*Fe$I21I5MfinI6wVNX_R(=%D?HPlsWjA@3qALCL+@ zFm~HBCS-8%x|EHp;eC0J-Iv!X^{^xopD;);q=`Arzkmee=kV^b4>t>h zt~5MBW>wQ7Z%?}j(OrcW-7F|uR@E=yU*7qM0=dz)M_3K-x$PG@;;$pheyG|F=hv}D_zhhCl(_v!P(hoeqqQ1v&_?T`w7wfzw` zP{pDKs@i0gRfxCd15b=mDkr#4Ccz{p3ye9R%n}zCcvSUXd6fhGsf+(E>|nOsT3U{c za%b9F5|b@9xNO3>9LO||?eXlgM(-yp+eom8tRHdUquC_r?X?z~R{XppO|G@#l`LddZdKf% zsa~{Jq0E5DvK>Zb2zkfosi#Y5+iWcsQPd{;OXl&uS{QAcSHEB?m7EJ#+n3>3wFJj) zT)3n*OMPD{W?f|@EYsqFvVEI08DYx`+gjMPS7_Ns;g>gQj;G^_!!Dv9(jqs4+Taly1}OWC#lR;O8n;02ls-aBFr)W|?rz^9Mcw+o2bph@uLS0oT6Da6s zC622$Ok|$0@dHdn7#d~CaMl0<5ezc&?#Ip1-*u0l#fyKFea7*9R{X~>6}O*?oWFxq zKxNS1V=An_p)-GDDr7&(-vXs){rmK-|C+VM`~AZ;6$1&O0w6OgPR8$lR9U!rS-5yv z*ysT)yZ`_wM99eg_ecJwX7l~@ikuzL(#+$}oa1*#{?~JW5{iIE&PIRgEWbbYm-GBM z2??ap^Em>|c*RVeOn$*vNPhaak+GeNGylID!vD90pK<&jz*PR^IsdO13}?uY{q8n|C^W!w=vMfhzrQg$jJioR0C<;pj zkVQ18{s1)QW-$SIME{zr_BW>TS22|ztk*wbhJRx!pmpcB_3bYe3jf-{f4|9J8n3^H z>+j+EOC#`?4*q*~{XJZNX$1b#!GF)L|JZQ-1x)38#sBBW;NLKn@6VyX3qs>y{gb9S zY~M|D{s>QD`wp=%|H=5C??}S$@f5c2EX)t_l<)8Vdl2N805onkCN_}U3kT@0pOVHv zj=QYib6|}pCTN@xX`Vk>^V%Oukjkq=Tr3Dpyem0P14pDsA{)?{H$wUBP5Dm4#2PNg}p;^je zbLQ)M*yI#y@dBeZkqB_EJT;;eFDYXu;RCycC0@}=D4cL*2Zrb28wPJ51?v}B-YCO# z&eBXdF*gXQzPXr)0AHjLd$Vt%jQORlv&Ho+LRHf*_=CDc1A${V1-7G7w~jQl7G>sL zO|G(Wc}MSS?k;|;BlO59gvUhGiU{2{cvo=svdFH>=KN-}v|&swRj4#6 zEab1tvY)Q%GrKc&>`&*F{7rSUh+wQcj3T<+b@kT?NLH|_ruO>wY`l?$`-sv61n|-o z72v;pbq2V>SwDMr_uA~8lV5^F8WekzPadb3nQ#O}0n=OqEMnJbN_TxdHJwV!>8-L8XzogEz&MZ>QFF zc2xq;jl`86Is=Tp#RCDz_AA+_!gx_jh50?H)&gL}9@W65@z6V+$6 zdW{@fGtzyc(k}X|*-8u2S_ut2IZA~3XSK>CU8VG{?CH+K;n+#5Ih#06fZ;^j$Z)EY z*&f%ifK)?$dE>|Zk*hRmb-pU)ICF*oVmu34Oql|-#dpS?5%aFk!)fAK=*!fkL`Nc+ z%VA$X52_h($NxaK<8%38(6;yJl}?N>%sIog<~^8tK^=MxKuv@mskr*fAbUSOxtkUq z3@ds(z3<>1l}WB_qMy^FV&d3qvC^x2-`BWlUu}WDFu5;P+9)Fe0NZB)-84pTuLNsa z%~m5XCEg7+n7&`B1^)knhKb5e9XU(_%&?p?-+@5Z6+a)%65fgn{TB=%4Cgju{!r>0&o z5qw7?>t5$;YgzWC!MW5;FiQwS;^4x)n3Zkh`gZ@QKj-=ZrvlxBp)MHG$?$zPm=kQ# z0XD2I-UjrWxhpByUORzhC?hINX1}1ojK^h{ z4df|gYop#mOB@oWg9OO#9KrmH=moj~goSrz@-;D4%Ph^7y84@f6rQgG+7SN7BQ)X4_M;4gvMoD_LL% zGYsuVQ)$wr%h}viQB`s$b5PmMqwZYCLMO)N%?>ufD%kWJlA{v?cb!Ti2Wq)re+-^e zTyi|Ff_PRFB;Ujh;6zlFT0BqDoR(`};2pSU`mh*y{Va)`M-pE3`F8k?L;;ZXhG_%} zGkNn70Kqzpe$yp~G>Q`^CYfq-YW` zJu77jQWf5vtjVcl5hJCeLx?b$pT`jJpbqaXm}pMl^Qy%M9hY7T0-c7_QN5;@M`9$z-#k8%{30&CNJVWOz->WdLz>8G#0D8k)w4QL1IweFMvqs#4%KD-_)LI zwMe9XPz{%gDh=$5eU`QI2tEjnN#6Nc!{ z0_R#60_HZavN^plOg2QSC?mJxK|_Tt_E)VQdXrJO{h}P#h=q#5XrD4IONA=JwHin# zX1#j++bY4Pk60f~uVrF^is;=w{K4$F+$fgGu@}wc%+Ec-M@8+^@vP^7v4^CpJi;kP zO5K9v{@*@Eq3z@c8ATuOF%6>8y?456V826QRXcGG+w;Fb;zfFHh`x)!p_J3_Y3q$u zjRL7I_m(Ht3{`k5g%$Xv<2`DmscNo$-q9iWKKD-BvNg=xPFbl;M&jD)&x-Z+7oSUR zM+I|2KDQ@pi}k57i3S8m8Rih+hJ7@=>rxfjzS7}r>dXXIvs=I;#BDZbs9PJB47FT% zJ&jIQ56AUwR#9|robP}|-nOzH4~aYYe#yJO=?%PRx^>rP$PwGNy2)Zat@tdbl0+^t z3OBoS(29RG4d)cswUl~Bm2}@3?&L%PhlEOZh~SqfQK0*xDDl>LWA$0Lhk4LoA|u53 zsdNog*P0IsCI2*B4$_!NrZH(=XO*wl@tp4|+eaQ=^MTONi#MRqxD`|U(PhR(w zU0}mqyw868_4r#e{SSfhKlpn5Wi$P!z;Mp*oB4m*dH;-x|0o88?YGj^|ARZ+pMJf6 z+TpUY{NdMQq{dQoxjMSfmByiD*doEaA4|*;MZ#46d-j+2sFtiKI1M&bIDCEz{n?3~ z8EV*o70K|t+? z*20fiK8G>Fu^sNvt-N7jxoe#1Y+q5R-r26}{0xw_7t?Nxg}v~m|z3d zeRr%rH6k7MoOE^aVfmoyszc!BfI+Igj@UE*rq^JJ0f93Msdw*_<^uT(spA-q@`!kn z#ez>Fz29<;$nlsi_vl&(J^YD9auztE{2R`>Q$8bAJ#CZ;F=~ieV_KilU^Fv~XrmKE z3=j`k9B{nGv~C|YkR%O4abH?{^4xs>j&STDQ-2n1=<#(YL~WcjqaPAD;&P8&ZQ<(Y z%4mAc7buP=U&AN>w?RpeRHw^d#_%{YtjIM z`wtFyTPQq{dr;sWoq}_Zyl}>6Nnn7-KG8j8af)-z^%YfHn!DRI7&hlxABUnBlc!2h zB$G|YSoFwb?T>k9mYY->u-T3D9{ETdd8W8#&fCp1g|!y4Gf7;}Hy0gh-#(_BtbRcb zUr=HoKc*%&8g19;1q+7BS^zA_dn7UB#VpI%UyunV>V|V|$H35FD}tP{8--g)g?N%; zH6koBEGgAqBRh3mbBY{^>Fcz>H-NvCd^G#a9OMk4_mu?U(%+7KwC#QVK};~i+tK^| zudh9BW}fgJ8g$&Pce$yZGV1MdQWJ%FuP3l#2oScKn!l~gf0Cgsa*4tngNDpJOyHxI915>@ri#Ct6W|(aj{Xf2n(n=Ru+-E|X_c&8o(N zwd2VI!^P)twkJO^P3>WonPuF5AblEYFNxA1gBexBytuySNkJKL%Q^k^6Ie11(@OK% z`WWEbiodD}IV>_4hbzt;?7Zsf%;~!0fYOc1Tk6h`Jk`bnTWyh}T*S{-TEt^!iiuM%?R&Sh znX`!q1M&sZl~>v-`%~L=ol#!a0;vmh;Pp61XYyZ26zZ=dXO|-^B`3~DeP0w>Q;c3k zhmn1gzXVek;m4#N7Zic*Imr*g87-$Ly}uQqRL$cjJ?>)E###%rZ#~@mqKj3^D*R3` zA*$3Fxu`UV2K@m&a9~)j)Lun)S(RPXe7|99TKFc9EA@zXFkM}ZPU{VN+JLalP0CH( zoH_=verVHU>xX69hQvnYIz(^?bS*QFd(BV!!_Ul06l^A*&2sc0-3nR))>di`XuEM| z8tePwF^G=+np))-6!{>qWaWlobc=npYhKXe_A$Y@V(#J1=0%cE+HY*w=U?c(vtdcA zo9+2B++V#Xpyx|FUYGUxEA1y!*L3DQTtVw`doswuRn6%dx2FUFS0@|klmML(dr2mT zUKp~ZLpJx4S?y#6p(YELF{!9rTuy?W)V+oH7%@SGf)w&37dfw1f@h2QJT1m;mx(=l zHWF09GNs)&D z9L~-Dc8qP%d>cM{aqUZ+1navZzOX}M_hi?WME8P7DhW}i0e)%Xb8mbL@02EHU?PKKs?Z+y=*(@vQOtD_0O9X%Jk z^HMauLL-~YdY7HGKCYUcW_4UajJ_w;GH^z-5VN@USncOl(xhcrX&*S#>>$qbiY;2F zGO}BqG$5_HL%a5O(~&L0ku8D|Z5C+?QFy<`RS0uNFY76x3@Cq%w&AJoM;0rJ+0^4+ z?I~d%CR=+57pI^|mZU!F*wk_*3L^5Vp8l5Y;~gpX{sT+5#f!kWz3ZHiD1rW(LucM+ z!&x@dbA8wpZ%1AvF;m!(6rhwz~tURaX%smYN)xy@nyy zY7?P;pL>kjJuthS<6}*Q&rg+@FK4-h+vryGweJcU81r(b;B7@j`;a(HZ`BOX%_t&5 zK>H{EmbVt;SE%z6F-|>3kGVUH%fZMED@-K^2i-WOuR>r7Vp+sb#3IMyeQSCKZ#eZU zFsiO)538`flW4g>+j6py(0C8@=#5b169#RSJXyE9;1Ex1vOQAv%kO@A8HdR zK90%Qdg3)|UrNejj{)~fmAEA4uz8a=@1(ZYqQ!cLAGRQTX#>!jK-q#)tFZ`F6lP#= zt9&aYuPg#8ZpejBHxAUpVYI4vIx_i}M|~(T^poKrRRw*3e6jMlmdED1z;9<)Pd+Ce z1O>PPj%Hx-l0%>J!rM)n3|NqIkF70xwjKKoh3Zh3Usn!&-gS^l?(%o`yeO668RONr zcsI_?Gw9&nA=gZ3%Zb32*BmOQEg!gWxs3~!%npMp!$zqn1+59bb@#CU1R|2e-3p%n zcx(3uBJ023+OhwvivBs}gY%bze~W7X#m)UI<>UKH{}bioKOtUz|MmW9YX?fF{-fw+ z(ALg&c>v94PUC_c*WIGl!LSN-LRU#oja z5M4@-Ub(mWw%qpK72-<>A~@Pr9M++D)feCUt~@~kB^cOL({*8MqD@?$G|>GvtlT(5 zF`Ti8IkiV41eEahD29bddGIDz@I8mM0#SOuEHvEp7Ci3SIcLGf759#>Zs}jhcdHaN zbgq;dESbDWrBYm~QhD#AIvd$1(6dq4<3O+_9bdsTGWwRvn>M1Yy;;p&0oBWhz)pH# z^{9FSK*N?~b)pxx7>agJ1^uY)1idj)e!(N%WC(y*ASp%{ z$Hq1>unNqP-ju|3Uz?aiyH^!>JbtxlH%Ss0gGW|)w76(oLS|QT(>tzUTX+zuHg`Ti zjQLR=sACX%qAptEcq~-gReZ^=li%UK)cT58Z`Y>tdShG+Q8+Y~@fy{i9~vid`#Qvf zvKxp^ZAlALnrQ$9H~&tUJi4+|dad3|JtvCma2igHqSDY~?JXQ)NX+H3`;G90;F9J6)ohU?`(=bpDC zv#%K~{c1ey(Nhlqy>1~Yl@4169UwC4vEiz3@PfFb{X}_*d5J~^faNIoVWUE3hHHP1 zk6NpqOLA9To)9{`KHZDEpEb0@v2-h+{C_d`mcel}&AOnNnVFeJ%*@Qp%*@QpELkjz z(PEY?W@d|-S+ZmcSAO3Q&W-)_$gVRCnQYSIuNrKKZ1T4W-tjo9Z?b10BX_ zBy7vQreBybjiii15-6KjGg3a!#$>xSkUOx?3{`3|?dsbD?=v_z37FXAT*9u!zDYW~ zr6x?&m)-#VXUBq!Wd-VZ%;qoPQmIF@)f4!2ZNCJq0&w_=^89Z>UHdPKD_gMpt_`~n zcxz=Sa11g61(5qgM2l0fa^g|S{e=ZyiaXG>_v1O*-nH#k=q6+L4JF){DT2{P?=AII z0z4Hi#li)(u)x2NYQQ%^CH~yqzb36sxZENaE0bT|Ji6+$PPA4T(MmS578{r@PjPZ| z;>OZ(Q`Fad?f^4u#Ug$q;ZV-N<;J|Jg;ZuJ@|6@S?@In4@+j0&E01Ek*W`1>B*a`P zvp2K#8tBo8$pJHpHb4lmCFEqNXpLZ%>b9V>k3%d510voneH7K*e)QRz0q>xq7ZCYI zQ2Bfw0tH!iE!v}&D3rlJTV={W-_mb$git4Sci&8rd7za@UTbmU5*MayvJSx}U;nn- zotE(NlI1VEPs*W4_{K?UkYr9zSBk{>Y)(ff?p(b;-vzNkytVt3v`+lMt^GQ>y|s9i zOsD6q*Oa=vf~!PzY5 zE;scz`3j_JQm#TuCHZ;aGtg-gJk^uO#Ts>n{ngu1+3L;Jn_O(kPx*RCBAum6AO4>T zZYWyr{afRsWY#r_ryE#Qzt(Ow%n{afI?{%xsr?uzdTDr#@g=TOnZV(fhmW0@C8pDo zb+rU*iIO-qRk6k$w;D6<3M9wXc%t@7yitUnL4)C3NzyyMgu{mihXi`0?)=8So{6HB z-1e@sYvfpj$~|>nfnC@~_sAF&5M(#jWMzj&f%XanaAFF|kx`>g3Rv>fd<8Wis5>G4su=0 z?>9ePx1)1|-G*_4L4qDJ*AuB~Qq?@Zo1#IqaPW23gO-s)0MFJ%7G)3#DlmsqebI(N z@EQhg+da1N#pV%B2dQ0Hl@2@|iX0XG2Fyk0kwH+Wd?Q%vw@LmBt5e>y@?vngiOre5 zVZwbnwJZcV-zdR)5jC8D4?(Od&1HD<{glFKa~K*`serr_3`?wfAx#D&)p-gOKWGe7 z*$LE3(vaHtCgewmg+SJ`eUKwO>D&c$E*Q)b`lL?NUA(bbTg?Y#2$~n;9w%WG0bqTo zA3a5tL{zG}yAnftxw-#bdvqxUiNRojO3?Kx=|uOO)7XUonnjkB#1-zf^NRuT?hGhh zhCy)JFyhKMvM>srV_-pkhK&S6u7H!Hg9ra(A`G-v6g4Pa7hfJXUOxrJ`$(U%8}ZX% zM>1h33l_c3>dNQyC&rpl9BFU0=Jx!UAajxAN)R+aXD;C>WkVass)mhPE9lO5KnA7& zfs3a5mE~z_=O3A^4QaO9%b-7C4%tod6li_O8XvsLmH3mR_c&~nC2GDM)PG4;r35H8 z45dOTJP+81?2!Am*^FE4s+5Mq{MHnlWm=eZqYcas4@z{w*kG(%qR_bLmA|+5zIR}g zML{ET>8)$hDg7oK@MDfV+P#-Z>PK~l)G)2E(R?!C@_~X&X0N4P^Rx3U13#QPOqFd)7=w++(8`QRM`2mU& zvK)p`aqxu|9jBj}wREX*K{;LzK3d;a`p6fFiq3kyuXS)X_KR8cr<{Dq$Jl5a6q!I! zM^u-R&4y-5`yT|xC6vgMYzPBp*1Y_V2p)gK?HUElp2 zQ$HFfU@|-mq|#eUA-xk6pF&^)5lj=psO6o~W5brUk1;%tV;H%yKUNi-l7V=or?o0R zFA50+ZQ8NaKaFI4#w;0Q$`&RDyB!79U|9|h zQrXhN4`jQvU<<4!6{3NkD44H{q+biIQP+{^K#()*`ru ze>}6&Otu8$4mG^SEr`3veDQdl1Ix|nb;=}!KLP&JL6Ipt%}H{~q6rSU!y>f(5F@ha zP=UK(*o#6-9I{(}UZ(uG|>%VxrqEw{)FBb;e}pgYXF40BeouXnApF}cnL`l}}U zLnKQ}-{C6yY+UFsA69u6KkBjz6NI6R4m`?v@AkN_g~fXL-$uf50}OiXc^0>68l>GP z(YLICV=YiKj_Rh@wV1wK#5oWe?7o|&wM1`B33v7N-MT19$9~~eF1?qi6Lvq5`wcpx8Dg9JH8 zB0?6}Gs807UxM-R6t0``dIx+S?v)Qwi1$ZYr>36dXxlSWiM{lPaAwWZ$>NBII@7+> zOt?cE^a|3#ds5dXbNp-Y$}XD{a~SvDTq&+L1Fj>ka|e!=g*@w|?6kITNXwWiFf0u< zkC+GPY$~}{R!dg<&1XP{moBWWEjy}67-^xvD=ca~GW5@xLsEJm^$wE@w0m^0zv0zq|~Jlc(#FnZhk5 zS1f5VRiJ@#l(!RcUS5<(YrbJp)I_`f?qb^Z9q#x0ahbrUy4s!$*ZLpT)z3IZ|J-c< zKU*UHp;`*-=mA6=>|M?5U0sOSKIvlqVx9S)St9-c82T^j>i?dihV|b7g8%O<5r2KX z|3zJ8{@ir_9~kNnhW}DmO<0huwg3r57i(+1AiRGc*?tGhhr88fY%Iu zwWY4u>QRtjaCJW0hK`Q292K?gw;Pp$yzr{*w5#v<**59nJ>u8)lma7r-e z;Ox-xDPaIik>sU-UJ_USRK1x1Mp5UdG74xlrCcyby_T4pUaQZ8;AEZ#ZR5s`(jYCw z`rY_zjxYb^dCZ9gFefpxQuMs!B(g!jM1193Bm9F@;ADf)h971HVV-O&C-EC)v2%X~ z!BkKWLeudt#&UPLBF8l+JXHsXg#Z@FYi1Cmof5IcD7_Yp@O8)Jg+lwB-U+wkwjjiP zQ2&x&+j4Hu+x1s74+C+lkH>FnINm|hNREf3jBOb2!(4BdQ%j_Fq!C?&BT#3D3?f8m zPcYK~g%_AwyCu}*`FwFd7JU3d7F;~JaC}-<{V&ifd=+AV*l#SFnJCNl)H2s~WwLa@ zkQ~Q0A^VkT&z11U>s5cAv@y+F%DWJ4KeGO$mu*EFqG@PVPcf1Y(+tk>kS)1*NTq{GZw%K?( zQGcZ^_8TwZa5Sc&a&m_()tjYUMXUA9R9-JYJ)#5C(_9~qvc302Kik@NS{`QW%;u+Z z!iYW2k|*m~`?aC8tsB~y<`YZ=zx!K-eZDHR1j)ubov52dr~OWte-3~s4%I22kF;z! z{xYRChf-TrPv=XI9@B?=rK30+L&aST_&b`J#RtGQvm0~o&?g)@pf-T{ChQXmCFBYG zGp(m!Lw1|9F%jvo65kw6xcrK2)HOrTY#-yy!vR%=srdi!H-|; z3lQ;o>rv z+rpz@2W#fcoC_R#wDE^=o<>O$eJ>S<7?K8t&HK`SGxAUc0gqZlI9br;M;a9f!lN34 zCWzlCiO~jy@p5obydKs9^ntpjG8Q2G54!0*>BHE__{s->#02LF$&wyMqa5_jBx6)Hv zudUr>aP)}L7_InafoyEA8?x`o?`mRVRIBN zHj8c6XN2cYwy`#AB6`8emqMG13Xf%!rCY-S&~p$Uec@8AT_BQ;`*My6&<(fLEr_-<7kjEso4&HWCjP&WR zreX9bCvN4I@d(syyUN6|yCZxi1RJ~G*}j8G&SD^EV&2V-0nIlE<$o`LLW(;L@>RdJ zk=WB1SKK!t7FJ#4kl=@bztjTLK-(&zhPt<$_+{Fj;IK}wf}r{Y{q|EuM?e`{7`|FM z)xH*iUZ#T#M36}7QdFM-x}z>9!FR~HqNOX^cAqi&XJsovYJ`YGaj&vK{o#uZ`)}Ez zz}e@ITgg(e7Q^-aFYJwXwAAKQlV^=P5dno*aMvbG@pjvkZ^vhbrl5`-Y$lg^(vtED z;zFUDH9PM|pc~qVo-ZUml%#?=`Il;y4MGy5(=x&lq{$wMlq;2K!L+u#W6mHA#+##v zzoNtJ$5}Sw%GbZA&kevh!3b`k_@Vl-Xgtf(pj!rs8zbPkW@Hj|H`(ULmR)gMGhDa~ zcH6{dg`hI+ZCAh9fTE#e%&A%EAaKXvE-3HtJyFGJ`Nlus+Xn?okgf6D34G<fX+IjqWSz2`bi^>hC29eGY1fkW;K>@WzAWjX+F@r2Z#Vh| zEbh!Bv9kSfx`eem!oHb+N+HK1vm+f^NOeg2J4f}*(826wcsPxaM8)zw7i2~z)$<_e zX*s=c^!`&|Y<-(BWrjCDeev*cEth4jFZhDN!2p&?nNVNVVU7;N{ASMGnwuP#9d}+% zm%P{BUSU~l6noH-Z5y7D?7YtPh$o~|l;N+!PwWY|(6yAav~QXLb-WoJ(_Ydtp(8Xt z1@Tolx35KCfqwCL-qXSW7vM|{pGYOr*6!S=fe_{&Rzm3e1+loK`$R4a@9~b+W_K^>vTBZxylUu56O-2Y1#@|zK?E86 zobZ^SdGM~!IKrEj&P<4_isn`gc97|c5bUXH+w@A3EpnO}@CEg?i8x4}3@p|9k+anyfPpJYV>aT7KjlUBNlaG42xB?5Hc% zhZji}KIl{$waEm(vhg1Pt-lj^LdgE)D5Y<1V+gt`+=an1I+it!WYY+9=jJ1l4J2|f z=cO#&7;4C#2$YHm**#(jo=QBi#Y?U;l8<-0a_iGHX4DX-Fc~zR6dDeRMIc`i9W*Wf zARU6iBphG6(w;ZDCF(>~CUv)tI1(@&>pA1nWj`so#+P-YRtRm$6ZDT28C>~(GjR7n zXTXNCvoWz?TV&P`bGv1Z)b*7=+k7TIK|G`TC^25|zC3-^ZsBBlqzjt{Lte-7BF%cw zQJ%WyaGE_k5Kp0vD`vxlW9%F$9L>L5M<X}+X|OsgsAO@L|{8ItZd(itGGn?qcD zULb-HmsH^ToBt=Q)e-eN`#(#||3+^9KarOI!O{3Xla~LMjsFX*^)mwN|JJzkZ#>a| zl9vC4M*n{ST4nt=H0U3=b7pqN|3(y6Rh*I^V1(;AruLO3KjU&ruO7MM2;Tu|Cq}SL zRjyc2>`)f22(+J$9s86!aSD%y)2(D($;0cigchcYz9fr0LE?Fi4$>0@`x@_ z3l(h%ZcAhEub}L{dNSE%I=MCD#AvW#Lz}r(XPqjRQiO=H{X(p79z@pqb_ii)Y7bJ9 z-R?rrD0)6BQ}9LlN9QD?EHuL-;Ygv)HsXz5DmxhK8Vb7E>=7K8S2^L;Ztc2T#1VSo zmCxuoDcsa5T>hOGP9}DU%T<2G2a8*ZRr1D$Ezxfx8{^u>Q8iUrO)pLDcKnhD)8Y=b zN|7Q_em%B?+?0V_gn-Y`8ijAVmj8JY{on9SEG++>QqiQWlO`+#R|QUIScp*<7^c~V zQHKPp*(*$E2n_qfl-KsdyHxHz^ULD2VK_^cQ|G4Eq_cYC6{&k5FeFY};|6g!p7lws zwFH(^aZ(8D7Sk}E%>@W1x2D!~lTTTg-j($VUp9iKV`10?Ny1>V485N67j$)9t3$`h zGaQ@RW_M~05y=QM%XS!V>e;^W2HJAJ=s+M1gXvOIp`hB0y3ryiXy?TURdb{MU_BOV z^%fI}ht4fkg)UDv^>H?=;8bD zLiI4WGcX?!F+)yBmv5E-?%uh1{WP+F>&yS`+`C)<`swBVx9|7u?d#)!s_(!+NKREI z@GxffrY^3ZaZT*tKU1F?9y}ZCKkT+T04aM@Gfy*9fT)?fm5G_MgfJ2FA6Csz4${x% zr}wW4Y=3O6e=CRoqEUv9og!{W&>4xm5q0j7038A)Pt?>gAt( z{i)0O7e4bHUnT#l`B(Vo|I{wyzxrom{CE0Ki~k%K^IyIF$^Dc1)BZnm{vIpK zpF4kY|5@iV{pa{|@88Ft-2cCve@6A6#=^nEp$8B)axwe!o&jPqQVOyPw324F?q;r5 zCPwrM#}kF?*9w@(Fv3&-ZRGWbb12uj{`+n134jFKohp&6j^n zELSr-bt2AB|DMkx@=+BkrKhmFM zxPQBB{b}aklN=!BYGi9=B4lr2Yeq!R#0*gR9Ju74f&ZEDDrT-!02fCi6ElDazyaV0 z@B%mktN<1OOMolD#KFO5^0JB2@4g*eAN^~jZ7y& z1Qq3qNq-hDE^x1k{3Up)eHjhj=O(6Fz6su3tE^-@UMfy!XN{&|bY0AmcO^LU!{zbf z3zx^y#>))H_Q&S+bYf^sD3O%2udJ}IvT<@ij#2lRVrE()tnB=^nKeaIEQV=h)?&ux zL(nkM8)eTuJi6zSgNz@{wehdb!BwPPWppoY2R*_VTZtz^vy2M|37I1^|BzA3Rx4Ptf{p8t6^WnDteMiOlA9c#qNSVWuq@h| zKXYa&JH&3*+G_+Cdk(Iiq|0TRP(*t8&>@$+B@#ys-B9cl0wY!^@|(T2pzlom{%GJPNO{XThS%m(8@C;*@mXP!^);h7StEb1J`_w75Y2J?Bj_>ZnZO!to z!sYz+x&%|?U|(Z?kv9RshK3UG5R3cwMMFQiq;8h z3Ou`Iy;NBH4NJ^iRhOTyI=m38r~!`m?Orm6xC^_&%~+_d?8t-cq&VRNSHh1(gwtbU zTwhMJTq&w^ke}ix@vFsw@o4Pn<09T>)XM7zOh`v`jdSBLF|(HHZ>PU=_{&?F5RG!` zV(n_yAisy)W@Q+NmdWa5@dUsVHmMH3qP3CvU&%it!HQv&MX$M3UQLwQZOZLKeA8JI zED5hynJPcXjJRj~iWKAJgz7i|H)q~ZPgwgX69%(O1e?-A;^!0(u~J%y98#(lp&xmC ztnZ~cTkGY&tLg$8@Oy2}=4lZr>N6ztn?{!n)!sO**^|P6@s9VI20eH0u9d9`J-wbg z(M&i4j3$nNkF)nRsQeEl3y_esYNyyF7~I}o{}6~DNMVrp-q_Mqytmo_+ya6?A@|{N z5O@!>v_+(?G-@6iy1ErOT)N5^_g~9-mKG33c>}p&meI(8mh6LJul#_>k+9T!7YJAm zs(OOEQ3m0*h+I9dR0}Ydf!%fbGmCl*RTs~U1|Dn-mP#dtqfUHC2Cc^I}$A&1xV#Yl`G8Ys!tZcA6M$9d2 zUzj`(NLVGeXw2Qgo@VV){mugX#7A#oRPYkLMCiiAAXeEyG6I0|BO}HhHI@bRuxBh{ z0H_)-g~~YJS5;4M9^5q>22ibwJ z`^s5-vXozL@c5@YwO)?{Lp(LSD$XR5?kZRz9#l?XXR-)y;td7|DHpSi{-k6y)d)l4 z4HA=LZ|SJ6>XgLEENX$ORNz?`Ezq5|$`U1IA_;hLHaXu+57Ev-HJA?!&h3QB)HJpN zbo8WzI_}#qDm;-P28Tz|AhQ>zCA|k(SLhY3kkbMQAw`+OdGf{mJV-fK0bD*52{ILo zn2btDujr!?f&@lGx4e(9rO0|pumR1z3^A262;bK%;3Ahb!E)(*8Ex^s+-#lw(UaM# zys*?{4)M0UEIk$wZtyhN3k1Fj&{;qLa;*gfio=0iZNxbc2;qykH}niC-P%29rMr(Y zCGIsvsd?D7LPs#vYyxuN{jU-lm^LRx`WPww5lf(b;fTT}0LvdK;I z0(G|9gMXimov7onOm!mjwj0vaa#y%OXS^KSVDCAG@Jw0;aRf!T6S(GB5PYo_D_#G7 zq*;bDni0X{6X1(j;?r)_$cd(o^0;2Yh5!z0_6^-V0%W{;`kKm2>Pbhhf6;yk^UdL@ zKc2tz3m0q(Sg_ri#sXJCJ?kNzmidM`&9ReoeXNyu{vN%GdR5uB*6V|TT?XzMm${#~ zn%i(|mI>t3CD-8g*9ieS`t4F`hPMMw#7ow4rULB<+f|qcs{I{ciaJ>rSy5|GU;8(W z)@y>-34Vmpto?v$E+UQe2f8aXiY#LLqB93SM|D?P6_Bkw+4GgOPXl}Sp#m$C4?IaP zs4r=daGpVz&zHG6QGEn9Vl51s>fzQ3DT)z%9#A;e z2lo2tVmJZM29lQ&D>=R-UUYoizyWdeteWnGxb0H9I;loYX#(W8T_o+;DYgNd0Gz9kH>!X zczfmY`JKdsuG}ePMp5IZ%t=<7^rt;}jLeLy zcJ@}>q+P4A5VDn04s9<8^^9gbyA`bt9&PUIeVg^p^ecP&iNXe`D{FqQS;@@%LAJDyv@1!>_M)k=u2-RDN-gbAJjqkhV@)u|6^Rf`6KjwnurrN@I8(t0c%r&~6 z)r|#SW*YhG1wvA){{iCGO~*&C(Uvnk-U2Y8IMVhJ+ScE(G#$lcpmKd_Vi-NJUzkjW z@u6#@d}*ilC0gx>PS+N&v$~>e-9odTzzv_QBe8|}vT63J1dga8>$<>=`cum>657;_ z?CZOy)HWZ8O}b)g;JU{65k|zz2!vEh1nQ=G_&1|80{2t?VtYQ;T4`IX;rRhwUc}$T zgd-65w2LE``|vz-PREB?67m_h%r)kddN3JTT2>&4l*0K=SWXS^w)L;-mnG@<=Jm`X zNRR;kMfZ9Uh}vfS@$0NN!#9Fz6GJ~^fQ?~_kFOI-a0={x2lru+uw8WCojvr$MNbw8 z`i|(M7*Dz}duahGZJ=M_VysE()H+^GE)i-qQBf?HXKJ^}Z1fi@5jZ^ZhcH{}kGDPL z?3|pB1pqBa=~Y5P4ud7f%kK!ch@N#y6I*Q({d9-)y>B9q;6Pz{nhis z!WU*+8?Eg%;zWf8>!Od?wMx-Sg?R^$S%Km|0Z>owWA6UrE)Cni4bcCKdjBt#frFX# zzvEr-Rr69rwZgcjI7J`=lUjhnFXiDrt1KrvqbXp(789#KP`uTRL_#A26M^cB%=wxK zh6WA>jBI)X#07>uq}9w@>YjRwgVE*as%r}4VZEw#?sjBi)9Un;@T0P#=4q+wn|}BC zQ`J)s;>e&oR{Xx|&06Bm^JO0g$=Pz1V^K@C$^)nSvM#)1zM-y+6dvv1((`WtrG<`MfN))_V`%&yR#?&s(%#uhY3zXAH3KDvPC^0$%Z@85*6%Qh?2 zMa_%PmaS}D!yf6g+v5pV+t+#f{Re$B zkI9pGlkg&uH{BLl4@nC$T$0SVB>iv627TuN|ERa)M*tqbTe*|xaob$I4G2>o<8HS~ z*8->o;P`DCv3R}YT8~68zLQlhN1)z!FVd#rJl|BlK|>X7Y4_+#{rWMSp+KMwvcp3m zi>qRGV92C%#7<$lG40l5nnhsjX*9u`%QN@Q6!V;!U4aIVbrf=dI24$|2SQgD5?y@B zZzsfx@|ouZ(*$A~c}XLkocO0M z450)&rZ`_;-&s1eL82C~-_3`%KBf*gxy8{b1eVx4=Ckq4irjZi*9=m)wzqNfvCGVHGRYk!w_(+ zL83~a0FrTguUa$p%?H0mi-`}wp{ zkj1Qxa}+j%xZ*p5kxjd1 z!j_mPeb{(viSfc*7475fDn#@`hU;_q)9Oh=r-yuaANt7_VpV=ovSX(@<}P7fLtQJq zadt^m`>+GBS{3d2->wIYPMRZE`Y9iRNJTAkZXLVu4wLG@)R8td4B-6?1$nQ7u3x#< z6I;V;Xo>9e_*VqTAV*mEvqOxJ=rbn@)2MPr_pqZ_8`B7%r6CgXEAkZ)jS%4G5o;`9 zwBsJ1P-s)RDJ+kZ+if$Sml4{f^1sD-tIPu3_n!J>f)ITFUS7Fde(eni@c&J*@Z}El ztHuj?p;W!?67koH%Jb92u5WG&=J^G7J!2r6j5XaO5oHrJ3_|ZJN{M}vw6d|aOobV~r-%j_p#aNJGC^H;`ArpCBBYfJe-1?paa z@*EmxhINno^Cl}0s+%&**>Cq~69Z5ju)~wTNB@G-L5hR9n`Lf-5M!b8cV*}7A6L)( zpl6hMp_IUBK;fusCVE3YsB0J_xD>^Ih;aFy9UY0UR47#SVmPK@25)AjJMd-Mgx>iS z8dP8-B7ZN9#J|W6gHJrU^dz%l$!qZEQC8#AVFB^na=pI6!uMKCWY{u?90Et`-85yW2c2dXD_{|L-s7@4K1};pvz@(R_Xcvs2hu2bJ0uC5*Rz4pW3R7Q zQE5$fGX}w;9a4A?(K6~)aNIO!jvG^>vCl0HT^X^_P0avFK{Q7?`jd4wOo8*Rnvn4++DWV4P_hPJgBMH!CEjose`5 z216wlXq`D7?*m~Wd02@OJq|sY2MeT-92b#(7U?z39%Ws#8s4FFHSM#5#lsN++__LE z>P6?qm{5P_&fnh+`ope7*<%yFx)8@PCPsNh9R)YBP5C>ck@;>%%s zU@#Pg&yvv_1nC|~hEsGQhud2}b;rBcHl9yc01kKV$Q;M9?Q>L3a6dLV=kq1JP#kGa zi+P%o9G|dlArxkdeg_u$A}pn-HY+hZ*6|*bzV6U15F*s8qKMu+ov0kGRS|Wjp)3sW z>#iWxMG9?}k9N81s9V9(#-Y$OiD*#bIbcS=a>6YAocideFf&o*{s5&bX+C&3p~pF( zkzkohmq(yO$<+D8&8KPIIqcHO-^~WrzZi+=Y~AqQ5Tp)l*%KuP#q7#=EVVi+<0}b2Xn1 zv%h!Ed+nUzyMF5S+P>!7*4xoSq^9BKBy}M)Iz_y7^$F|i4-ST~GP%=jYzSHo;yC1$ zoZ#kSt!_S|L(|cz9@m!BmN^JzI5-oNb$K6IEBP5gX%j$wLHb2(XKr3r&NvZdhU|u( zJPe-h_2~GXxcY*k?haZ4Z9?syXvK2|G^QZ3z%z{$I?1&@W^62Ndi#@nv4nM4e5;@DQHQZ2LV8IwWhk;mK9t2a7-vSMR2p`s6G4 z_R^Oa?;`Tx>m`P$5C4@6G!cuIUc9;139rWDXeo)Qm=y8%S_EMy9vjE8Lk{+z=O)sF5uOoD7=GQQ#Ca~=-`g8}TGzBApeN;^(`tFBvIz|?Oe???HTW- zDQ>;ngl!Cg2)GUXN2ibO5~5wLBvp^-8h z>LFM^62{TfY2~$=EOpeyFYvQc2s>mti)%4Rvsn+3&Zjo5qmW_JT@_GM&$;E z-sfb4#+Sr_Uy*qg_KN#LO7rCu^iER)K$2Oc!Tbze>`#x*o?N0SXK~V8x%zAN(Jh** zk;8cHsh{U*Aa&tb`I8Vegt_lMr4yn@!?8PzqvkvV&ZfHqwp#9rxoA&1}$b@ z`ncD4+$(RoFNT`7J^U=oGxICw;o{u4Q`JT>9YV1|bHCt_4Bm!;RzKy4HlJOz_?{da zxjSP=zO4LqO8THp4Ai?V5^#NUphIwSU38U;mQ3S==(a*OvqaYySZxV)jD|{8EW13Qs9E|f3*)#E zgT?z?i{HLUUFX7kO`8yyaLQwk>pV8qq9jeRhzj$<6#6@JaYnF{+`!MCFcFhv8XvXNqe@PPCF+=2q zj9_?}kX%na9}}WUaK|Qv(Z=3#ADtiVZ`^qS@=;Q&j8}w5MYmY}O4<*9L)Aq!*L2Rh z1tv#8hOVyHv!cnUdGcE%F(DCXgX$4=Vy?yBPxb8m;SF2bSe@-L%#)^yIU8VszHw~z@_e~uWSj_aZ;LZSo>ZD zC`w2{3Jf=|8vo9solq?&`#qfHQr#?f&G`blN1sQm?hfA#tydERA5GYjxmXD~6^XI! zn<=p^fG`*nLbCzkT_`UtDZN5{5GyM?4Jn?V(KjsL!VIx~qGcy{486WZyl46=Zvk62 zwvLCKj!eL?vpaoq+0UOeD5Y(K%hLnE)rok2%XsZifaKt$emhK9ztn% z=r5glv_xUH|RA}?{+c!{$<3iy^ zb-@FDPUnty*^q=|eGVggOt5bKOOEc}=#KDTv=iIN6A^xw6Z)%<_uB}cltJO>O9jMk zL5r==eY>h2qB(w(ah$8i!PtzT9sR!8$t`~B!`8>7R&4>;`-RxC!ymEoWbfdahDbTb zdqR5A2$#StlCA)8QmU?Fp&&eBk5(;_e`&sA&L_AMhFe^TL{A#Qj_^9H>Es$4yt1pC zW7-}NDsz2-I&gT&xM1e=i+k9Gu(lI~^xB;>G789;ap$-7{Et=N>V&@UBI6iu9NPKN zn_7Cj=so1X-9v`3WU@S7vE&pe62FM&_)su(L`inKBBo9u=f`_LODWd4g(ay(Gf2%tVU~cK-*>hXb7@`D3-dg^Wy@$YNFs z!%TnY04>Vl<4uYiDT{?bE*Gx%P>RjZ&aauQhiRhPB5g#ggE4=k4tP-Xx}tc_!W0Cj+^|a4 z1}MF9u)G6!-*;Kw-2{Fg2l0uK8)@J)@>)+b%+STo>-msEj?L?Xp+Uu_Y#_R zlr!5p1%i5s3kj$7{Rj?2%%plZy6u?7|7~n8n8a6?w$&*>%O9HyW-aSZBacIyK!2MA zQq*kDj3-_xR_)VOgP7*P67G z+bP}amO?gxJmPMzxyNDs)=LW~<2bH0UcDR0+j}vjiaat3^NAto^WnUC+4*;D4e6;= zvD9>LqA*ZZR)u`!l77R5WdlzWHEPqYh7u&BYk6yh4oc{eEsdS_9#|-7`5pnp?G^Y~ z!0?i0C}GI~5V23PSp+I31lqs1aCx)9B08udsavr~cS8RXcQMAo-tJ?y(? zze)Od7`cc`iyJA@Rr&C;+;JDd7DazG`_(Xfw)U|^f>AY&5tF&SRY~)}7r?d%!7^-O zJE-Ids!th}<@`$~NLZ3{q8X=II%_jk@PnJl^r@_%MYnK~*`mK+GCC?Sv+U zmuq2a5_A+=(>O$A{F!uPMLatv1bNwsjS6T&Z86W+T)JIR2VKhe z^!jbv=bq!{)_Jznie{!vdIEt4fvIY)Fu{mot8~H|w_@5|r4^hop9u0TOWTbQrCONj z-O14(i!5FxUfrb%l2;R9&22fk6ic$m;vL&PrXjkvX_5OTcRTd#J4qPPl)b8sRaN`2 z+Ke!S|Hw}*>#QmaXCMxk6SRG=qov;Kr|_aysm9V;Rrx5j!ykF-7$d+Hy9LCDC|QW4 zZ-o6^>e&limYSo5f?Ss6mNiH!(adTm4%kx1@Acx9?VGES(Bxx6t%dR*gyU5V6!A1L zi1Y2FOC(oq^tntdrv`A6HFF(ysI;Qw7=(lFxOM7Ow03L_^st#%G@Zq-bQf2X4Rrx^ z0vC&N$Qs4q&N#Du3K1$@wuwpHFw&tehje7-`N7l3&}ki*j|zH%Q!ProQiqJ9U3-abE)Iuf0fg^36!A`Zg$B z(VK-6%SX{O>DABB5W;p_85LHqwbO$h**^-K(zkWFCEJ#gs@N{N#wYEO-XUR@TQaYP zf3v2*`|$4F=>(eq4whfR<%;z&#d+i10jYQI4dH(vB*@v4CGzWMI9ifAY*0U1la%?? z$&C|IhH^N*5n?aHR~f=GdA2KB@7#5tB4Ypds+*G%L=ZOm8iouJ$7U{F`JR%J0m2yF zJh|wLDn(46$X~L&u-AgTmnee^MmQK!XTrCtLjF!pL3C)c=m0v|%~z?mZ9`nE#CbA7 zUjD9B<_n|84Y%gRVlt5LlhZEW2`=8-9!YJ)4u^*I9U|yjVH?Wy-0$@rY*I>kx<-i_ z5bAUYNccZPJeHTICZ{VBnGi6e75MDF{C2g}{!yMQNUF3i^}YNx{KHpCDCGSlL+Txu zH!i-TM7h&2+&7H+(p6?ZCoBIOJjrNCb`!47+}z{KyTswYq;@BF}JHomL&4PeMao2>U{c-@rQl#x`9Sqv0`~6Ht_&e@iU0 z%BkpbJDYnku^UuKyV2BhZ3m1=Qb50k%(~&guWHPHTdNtQI$a3PH%+W9ogm}LAYbD> zD#wI3i`rd>`p~}{cR)h76>ZSVJ=w3m3J*X&YlMGH+)O#prF`Ayujv&S-!xsDJ-D+= z{Ce|X+EGbta3$1h6DBs$!Bzl?jzVnVmeMl$YGj7|eZcX>Kub4WB0zI5;L2xa2f4^) z)Z$5tFZlmr@2!L4YPNsx1ozP9{2@)97j`0l6~3DfKZhGJM=hZqD3crvA&#g8%{UccHx zC^G){UdopM+<&m5j6Vs_KUq;J8A?SnDz{eQDbZg62EQm#2FAZpqICbD zM44HElqel5AssCc)n#R4{gV=9W@GysCCbc9|0gBN$VB^JDN)+rj40#(TSim`$cI`3 zc~BRCy^)ETgQJl>5bbuf*E2M-(zCY!0;EC!B_KHJ1aJjnq%r_$AW&)!5CvkSj;8iT zMnIs{)Xmn^$QsC$$^t1tD8iqVB-sFL`Xh(Cy#%csc(2 zxBSA*8G*SkTYpbqp7gu?zp?L^{g>?*fc|&h@AP-c{{H)amg|#db4FU5b^`~AZIQ~LX-0?z~j?Z3bOifZ_?8T^WM_@g=* zfDH+F4sh?K`TW^jUiN=Bm!DPn(x`yBFWa=g`oF(!`>S}rzF&&=M?ry?{A^W!q%ZkD z3l7}>-TGhBKLaFQS_?4mS6h53)L(b}TWk84I+T|Eqf_U%u{8X@i8OernZJ)7bPR0& z96tW#Nq>tm_!$iY_%(XaGt<+tu>NfXp=J7cn?K?V{xO2EF);n75rl>LuMvcq?*DiM zc`5Y2gcD3Fxfq@Lpz)?gH7^k2H z?5Pz2`u2JT7DkRgd;ecu{?D+6KMwyI3Y36jjTo>eSNZ!GVD*oV{N)Y*PcaKjbj-ll zY-agVCSW}{8VMQ!qfCsrx&Mf4f)NFZ`~Heq=r?#GL?qe#nldK_)5-_tgrqE6AwdcA z-gjDEkr#^j6JpY<*I_lph|y;iHP;`@-ar&W5tCoYs~lGDVdBcSm-zR zUYQ&t1QF{enD`}OBNZhqd!Ir}+#srzFjCX3*X^k^)zgXIispwgCp(6mz$j~FcbKoi z2s%1qri~X#Om5qmVL>=xC+1cg9&CiqCp2f{`qBKr(^7Ztv4qWM2)!@)epuQAXMk0q;A8?4J>yL_-9!{Y~>dk}#rAG$JfCaVQ}=Ww0w&3<;64 zSO|DFqklNBzBm3j%|VQqvnW)*dx(I&+C|uuNTb{j&Ai0gL8l7CO@5r* zc;$)9;mJOVV?R(O|Hl4li>LbdrM;hjYm)N&!jbo|H1LAzIB_myORv)tXWdboQh0<2UY>5sr+ z+6q;-qYl-KoMIWqgnjYzB*48;7+S8z&`NEMP&%)Z;&!vsj*mH<%^HgoSWCnB&f~FE z*L6#M$>f#01c~s;kw-d73fns%dc<1{-Y;L|K|snP!tmK=ekf^u%Ebn$936LkFa}9a zFg4I9XzHc0;wf;OVIB7E)wSV#9kgL;l}`KSJxd09>$4m<9xW3Lx%-}PMU>fs*VRUJ zVC$`bhB&`1Yocb!vj1MzVZ&N#AX$-svJqMJ`A+^NliE&mgk9Hsy`b+(CfKs*L2WRg z_NpaaKxX@QB1~*dBIDO75iQ@`h<9~) zz!UsH$6K=P6%e(cVgY`r>(`r=AAKG75@%%xN>`zbcw>EgrQQ!A{=hWNl?I{ieLE%j zaHZaT9ZI}kjh%FxhBNIH<5}Q6!dgIa;ig5j)nruu=wMT ztg`9%z1-mGJ4HssMVnXW-HEzR8eJ*~kWHImT#>@VvYW)5YQ;-BgpTbvTlhpu6kF_F zn6sP|;12fbjV^1BPSp?-@0)w3iJo!ZrBr|s>tPEPSqqS~Jm1i63YF~l;qILtVeT1-pd0_OL5s)l`45L_5gk@1^eP=C2{-z6k15iYmPj614@C zJE+^xIS4_OTpa5Aehs#vicFwvE88I|lDKOZ_TCAPW;bvpZ8-RHH=KG13XV_p@o&N^+thXFAtfe4u|3o}h&c9a z88gPmzj++?MQ8!i4YVrGR{XMphJ=o(@*d&` zA&2t|`vR=Mf=xsy1=Szjl*cvC8|T&700^wekLuLaoUf!L?mwWLIyM#FOyrl$ zDP65Mc$;qb`-D*q5-A>(>?Fr$c&oa|QKM$tcv#5HRB?I_Wu*^r$1qCwZbwJ99v1K0 zZAP(9S@EdVPEiZfo;2@OqeXFB!t}=KAJI%rIOOQwBs9Vp@oTfrEh7MvJ z3L!`~gmlYX*_s_oP}#go!fqj~goJ~=s%6i-{ao-#{p{y*l(6S58t;u-5tX>M6z4eV z<|u^o3e?4|hyZwk!~!0QqA8USXdj`r`3|wOA`C?FT~;MsgR1vbI;p6Epo|h1I1n|y z&|H>InobfI0EFvE=B%iO#U#qu0af-O6k$R1!TGcis508r;d!5+Qg@crXBDd3JkCS7Ela|w%19I^D zT$LjJ)O2+eYS%$NF2O2(0uOu|rETMd5uU zr@9=wui;-;P=bW*DV;s4zXElKCHl1jx;6>~lsb#N(@&~|z5rLiUSV5eRVp2!hJjt* z_tDLjPtkWWYR|b6VrE2M$Hm9SnW*Y$6^^7}tqzwImf_pqfNpGD4cMt|PTKdkUKxNetC7t5}g{ zZ%Z_9Ff5I(KujLI!F|Cd%oFn|2NNPYTUK6M+uZYNCPB#jhsP042+uVP>aO2?;=?sp zQAZy`N?Y~58^if2>yP(&vmXzXhzTNuP?VGuH5F`5LS4%sMql6E(UC6!gcL7bd#upB z7LOI>1ppj#E=Qc6u2^5q6FbhMo${J-K=&q!0qzc_IgW6B-CG`7OBX_=Y(m<06_36@Cx6Yqv zjC9n+#S!5eC=WiV>-sjs7;B+=sD2hGUm1St(COa!Tp19_z~>=Ms2 zVX?54Q+;uQDDlww2ed>~BSbPfT)$j@%Cq)gL;yyHT|@?n9jl+GPc@}zpiJDX$S?x!oxrz_O;$%~S}+WgkC5Jb;U<~j z*vk}ZYk<_T0Z{0GH>ziX75ESbDN;hU-(+G;V^&mAh4&*S4qi13X%A#Lig0kv93_&f zDvc=Bx!1fomBlJdap)m9Wv;_T6}l^$+qsh7{!Hv86M72DS=_BYm;Log8MFhvw3mkV%BWWEQya?Djq-fB30<^x%g0F|Xf397Wu<;K3XbfZ^rgeQ@R)gQ>Z=Y+ z?e_E2loZ>)Nj)fY76^;!eZokNtGSzla#A%K$^oXzm@ScaecL5#JAa;A!fgBI-uub zRbGe<_>h5RRUorQj6|w~&G9f<`UFu9A}!1Xw{lD?12F;$ixOAyiVDuQ6#h6tzz+JI zrdixxc~p&0*e?CK*!rU9l#jUUqwHE%(gE5;KY6WW#Q5iVS5jx6maFNSD5r&)5E zW2x)kbXvfi#qrp-F4Am>#OX96#>ixzm_h{II)~UBT}&=u5nb>n%=h29((R*;oV~_! zpUS%3+m+a3Q8&wAjA-~k_V!0Z9R*1?iDX26nRc`3_xT7HeK)-93~J~R)yB!#Ya6j+ z@%26e1Bsd40HJ`2!&861w~}DHU$%0;?dg6<|Dt0td!Qt7?QvatRC&|5Kqp7VVAmBv zy<1+9_(d`qlFk0XB9*{lB?-F@gd>Ege-Z`~djJ8ia5v;x*mYEsy47wwg_WmIMfGGq z*1;{KEdm=DI4Zhk(toj<5?Yc}Aq9f|KNc*)&g zfs^b8ZQEk^F=e*vcTDy1<53*$anBd8B6h8FqNXG?0~grD>g(u1ByfOtS%=LZJOg)r z$LS7}3t?;`=j@jpk89M_>p ziRBq?&}ub6N~$V3e~#QhWf^SfIrK(~!sd^ig5^3liwRdeA(uCs*Vu*wJj8c{h@i+9 z&b!EqY!Efo{E!6b_2zqKj3{ZD0y{A$!mMUt zDX;it%D>1CG_FX)cB+cj38@+zkfxbs3+prE2}&_WTbetENUZn~gm~v)1{t5<-tIi6 z-@2`wdS#s6L2=iAdOnNlSaySvtmzvzc;XtON)2*ic~jhoB9KKF*UcGMTo;nXsWDpc zVe?r9a*}Gcy{*jtp@SOmVU`a7(fPb4O*0XALp&~ft#O~sqYE1`AR*fiaCPfn3t)0Z zh!UMoCo{$PbSyxEyqUnKWoP>Ec`?1aqOD7AS~kXoRNR#iK}Su!`B+550%1Kw!$mdL zU=Phv$+L43M>AKKrLdWExsAlDxfQ`lR;yC8`niVRY)$NG-J-SXuug9CergBG?O>@P z*3-zW8DoT&$}sDwHsjojM=z9g4T93U*CKgHE<0+S(9MI0PAtqmQPZkEC;6e*5sy@m>Dc$FM{q?FNR^fCd#-1xt>ITIi8>Dy zT`*I`)j#N%IMUMdg)HU|(`73^36~;td~@mA6)Sv^BGUU= zxJiLzydFK!Wq z1Z_+4bKfglW95M3hF7NuY|gR=7$LeX&Hgh0BUw|mDKT7s933i{!jKn;l~vTS#}5PD~N zL3s`4Vd@w^9wnSzORBhOyGOD1Rq$k`ezi@XMH(+!W^Ayx4_IfI7&GHBrI8$0y3k0p zghVptPK1i7!PS^JSh*3wea+JQ-U6lzq9Z|j=#wSk{NgU{0$+#(#;@^`p`qK#*<$WD zu7Ws>=z)$OtC)thqBJ^BEbZjXEi8*87lr=5qU7@RJO@6V~?j7?ob7V(A!Iiab7 zXd2}>Lg0u%Hg;K7|6SDpC4F2{m%JRulN;(;s8R{wMSv$OF*|^x7IU1?{H2(hK zX8dFQ!C!{rzk3;9gmnMXqM?6Lr(psb-&qOS=>PIDvH)$ue^a8N|CI&Yn_b-cKtROF zRryfSB!{E zfDbd8K6N#yDa^?9me^{hZep^_oHSb|UuO85g)DIqb5hZ>^PLdhhDI)-pi|yP!Z>}p z4>Sd?|InqMwiT8@llpv~EhK$`787It9DJ6RqT1l2YMI2&ZP^t2P;Udy1~&Zs?)jGH z*?Jq32F{WqQ0hxXGG>o%5?){>CNoag5#11U7rOqOKAc9R-U(*i1k7bmg%cRMZUFd3 zQp+ni;{c>2oSmTKp4JZS^^DC`4XJ9Fx&tzh5Y+6@ulg;^jUxVG%3;`oyWJfd3|stF zakzQD1)Eb*v7MyTi*xhe7Hj6i#Yy@aKy78$GQq(+7C-n3!{qEC5rhsdB*(`kFfvfH zy`_92tc^JuU{aZNkyY9OacEQg^ytHui6{}BJ#ayQV!d++{e%0;`?)5bMFR+Gk7T)`n zJ3s1rVySoPX5Iu5FkQomb{L<7GQKr6Xrxh1@TR3!$j?uRPIJoZ%p;~4RZP?9hI52? z>SnPoEhnJ7g2AxiV`fP+5n0k+e1ckOraX2__ZMSPy3~B|)a-QGRspNrZ!l{R`yL0I z?ApS82y?k-gH~!XSDk<0?w&i#s8Yu?$Vh5+o@YOBlYuvl*3(E@RMtOdFV22r25?`c zq)@0v1JSNiCa9VFNm}_a8PA&^4X@W^`crbsB?kartlwj+g zh3OPgELb)cpg79Q)cL+YfL8DeQB7hT$x^_*OZzPy0)oKWQ_9+{n&p1)9+tbI@2bt7Lyb1qbZge#JNgoEzC zSHy=tw1x&rTbN7AvWP)5!J>~yMpb9?j?%752i^GIT~5IHwb?$BzHiX)QOIx-GUJ{r zfJ=tkLyrUQO;!f}oc>DACwEA&1_1n?_mrkSw>p5boaQ|pi|ohJn!&(KnMASiEdotF z(zzB-kWaAp?8GUCa`0l^-o^trPhBH7IG?Y!i;9E!Pn+C{^`$lgTO;TZGja?D1huU^ z)JG-C)6E*}E+q?OWCb%v5$65bc;DQ#Vf&Y7&<3~YBI=D#qA0%(Anc{!?(xsq8H8$0 zz0C{iJEu2X3qXXA2@X=qUR`zxlLx>FYSKx@>YSmHuE`NDB^_v3#&Y`PeE8GbXN!}t@^giw6EN@162CFamf zNYUd#5~2BZ*_|ppN}B5lezVKXQyPUp!bwtlKjAX~;S_bsalR^fMPHH=`I87@tAOK)bbm}0=fUd+HafmG4H=_uGTaIJzW&#wA2IF_x;$u$ zALZ5cIW!!{3d%+Ey%XHfGAuhsug~uYJ9?p>cpjALO`$~;zM0P4fs7~W8} zGXhwt0_QhRvQNDqQ&Pd8M4W+HxAZC9R~ zc!YqeI7#=b%ck~rK~-;d z_}zBZ!``yP9svqRVD^W4AZuC{rC_=OCm@lf}NG_!g} z64oaY%qv49w~llEqKd5dr(gzUGP8I_l(pdZzPYJhqFeNfcxu!QwI@Oj3c$EJ4I4&u zrWrI5^qhoTxk95_ET-^6&e^$6{5^C$Np4$mKQYM>K)>#7qPN-{jnaXsQ|A+$6m~pr z?szZ#YmO9}l@o?8xEp`fPXp)DxKC;AUU)j^$Q^`o7< zTA7t)(@*{85i#K|G9KJbSl5y%sBYI9BnpV+ic!Zk$rPWC0gr)8*$*du`)1327AbG( z#2o)?d*?d~RGA*(oVd1?IdwW-XObWwJzE*1SA_ z@Afc1A>5T`Y&Zk3)mK#g1aT}TUop_22Dp}`B#Ki=o8?*o>M^!{{K z)y5))#@(`%`3GA3VWBNrlWG3=UOQf%^l;=TcAtmUmNDG7xn${BzO;Ik=jncflO293 zJB0wCx>>X567BubBa`DXZ#`EqSlk-nDCb`(tvwZ+BbM`_|T<-#38CR1aIme!PNQr5zK`kWg&@TT=V;a1mk2rAg8vR z@c{_A-k7){8@rlb4TW&#?%y?b@207E6VZG^52F^(ohr~Img)6E)qMq3j*aHPH{{%^HO;5_Dk1~(KxHCO|clLK9NzXO|34DnRx03AoZn5?rMzA<8%( zdiQp@H=9gaWpFd{c1h00iPHN*sw{nI@hhbg0XrKdups@{;?%d@2(^x}KRo?7XYOf- zrae*=lDse>-(=Uj`runTdY(QAy)1Y`*OJ}#?`z|Q<@!|{f@a3XKpfQCz{o)ZDAM{< zp%h4O0jGsP?NLHT=HD~IUlYVXrAhw-Gz6p?e}S8XOsv0VmV`io?3XzrArOuI10Et| zW&}TaOS3*ct%oBO@St#t1M4ezO5* zrq(YKszA+FM&LZv0pJMSVgmw6u3Eo%so%=7f76p?e&Oi;%?$JB^!pz~=*x8fAD|xX zZ%~h!7RYJ-|DXSt@8F+|-+wl({2ka-v{AA)dx5@yjqjJr^zZry9{8mK{O=Tof8w|Q zCoO{c1t$JSi=hAABK{qF`a(ehiCG|(`io-xwf_eh`IC|S%}M^w`JKK%mp?y$;FiDl zf5V%-|$2nh)61IRiOOYha)EVs$fnVKjkeI!hqQ=>+WQOo623A1uBkki~z2 zJB@*GrUj77R|I03Ccv&y;ty+^DiE!d0d|UlK>M2r(0C^ggzZ&;n7`Vut{uqQ17S~T zAhY?)B4_sxd)$A(n*Y>&V`6>L2IuM13mpd2 z$$UZ(uZ@uWw-Fn%`3R%I_=Dxj{G*d#$&os<^l{}zjHc!6I7Lv=?KBh5ld2q@oSh^F z=c$XH@N}FlIQAePX{WVLyAE$xPFw)u>Z zZap`*4c1X;7(2~KViE1m5$R9J5@;K6mGbE^X|WkZt8Wv;zKu_SB+F|hy+sH^G(k0d zRwl)enD+|ZkPKkdNFhqxA?LmqMGP9`#^s?gfk;FdS|2)Jr|MvB+q6@5vzxiM&3 zcS30DHU@ePLef<`j)}VQaNxZ&y#LDetl;c)3uW$GI8-0U@i5nJP{5;KXgLyO$i%LN z5F{h!_bsJm254jja@|5jahpLraTIZisdpS@<~F=TJh}*H?G_3qa$oxRqg_a!94mK4 z4$cE7_3U(VZQ>_AQTDQflA)B^Ukgj4^ONm?nbxBP9ok}4Z$yoK)rCgzmIO-(X%bk* zQPeRQ3y<~cH$}NYB!eC85I%w*ya}dUGv(c#YX?q0d(so+1CyfX<#K58ETpPN){}Gmd|(b(L}`C-dbD@jWP_7oyf_Q<|zLl7z;|$GDM8V62iy1 zlP7QnnR>GJM36w=#V5qdzR6r7ydf?iZBzkK#~#dh$ekL?uFo^&__-A!srS;E5rx4* zO8srTQjSDP7LzW?QpXt8hk&u*WV^TC=uG-lvSgZU;6dz6k*|zFZIOM5PL;s<-$<_n zVV&($-(5Mm?%sSMX5d@#n7>&Y8bw76YucUI%Y@*u*<%zfp!cej7JKV+n^2Y161X*> z8~l~Xvke)i&u<~G5ap!rf z7LqAeiiN5r(s}8DO)^W%lH8fGyoMVMUF_REKhzSi^0C7k4DxzMOGIKO7!e`z*SWxm z+&kXB%aCfX>?%?!rgxriJN^4up6G`Bzdu88<#aAV2=)&VKfx=IU0&u))jrKy^ zOQE?d>nTi>FDl{`_#Q;hs7toS>CX>$gjiXN4w_XEE=*<@9E!%MRysTzfVdLzAW*lJ zooY&@q<3nM%f2}FPM_=87glR*Zkx~DHOX^*qsbU{iG4-^ew}YoDqh71i-McqpyV61 zYF1${y5&-`AF{s?2Q?W^Y3bWcqz>_x{y0f9xRjI@$0l#Mo1#**?)cpJg|!V%t#>e` z*F-wuzUUV9smDHO{3W@Da`Ah%)XZwa_3o<--%TjpR?&|1vS-&4%_FD9$(@|MBb+}4 zvYYEz$)iy&>=5Scz+Jv_8k;cX;a>#-H@3tnz(cKb#F~(}68BS{%6>+=DYP;hw2(3_ zCA!1A8E^DU&?BPSTgE6YoyM+>yff*-$ge znxdoZq!Tp$xUjk`9^&f}6w@~~OCD~9x`K>Q8XCfp8UPJHyaFi!&2bk@81iA7npR#h zO4zM!G5)J={G^*#$}JEmIm=$LVaCkC>hM%F#U6KzxOTS1nh5E|>1Yv>*bm`PU-ejW zXDA&h*x^e%WqG{8ku^jBbM91BfeHeeC2S)zolR&2)4t<;Br|BL2wFJc0*F_esd5eM z;_|V125oG3g1%OXx!*mY^h5pB1Mzk`APAV@q!2I?joODcD)EeL*Ep=~2j3TU%~;#y zcVx`}uzm+?Ie|zZfB!1U#>+)CjWTWbldEAL)16YwvaE1_TX?8w)_61G^2bxcI;X4b z(!*In!PD~P6C}HKKFj*Vl>0(b4TG-t?ofu;!i2K)GpZYsF$&%9YN6Sg$y@CZD{n$U ztN3d0%fLH~$P25lS(_|7JSz(m-Hu}zI}LU`=2)5T%GG-2LQaYJje2E8w@%^vWH2#o z*j;3&#!h3NRvfrJ&!sbdl=6&T>x_n2*j`PQcEh=He(9DaDV~{AR_0eq*o`+CuU_VE z=o3+D`I4d(dqjAXRBZ*Sm{!|0BMjP6q9@?pw;WKr7XHQosd_Eg(Zn1j-bn7W{QXEC z{jJ<_9rOMAEz6i`>k{q0y-FA~wyt@l7Myn zp#zJdevOKRIR7o6(PBAT&V0Ev-7IbVQu_y;leHArvkRb+u|WSR#nj@4|I zF>0_O(~w2qhnT37E)X@dv!^n7GY`IdiZS=D z>>d=AUOUxr5XX=sviWs6N8n2AgQ#L{@+?72W=VrN-Igig-%G@#*jsWFIiWoO1$qeB zo9*;8H>he!WS+%xI^zQCp%JYC(|vqhV}4_LM%#S@4B))o7pQno_( zG^Qx8txw#Yi)%@NWmLIbJb_~+W#t#50(I8#?? zfho^l`93Szr>==%wup;#)%ms z7(v|+o9iJawhafEMlExCN0b>%@P3o#smyeqbO&B zzgw(DM};Cqlikvq+pO$xt0>b|va{2J6B)FkkY>Y_AS9?k_6khMi~s(}tJm_S zi@F_%?$_c<62mK-z@BSr?Tnw)MdExRnPIw4NPgZ!GHgHEAr;%Y*d}-46ApDs+Uh?{ zZg@o0vOx2g_JNG_n1k)X5&nLtk|}s)9e0v>KJDO~kz!Y-uR_rT)gkb-?)=fd706N;DWckUxJS}Bwvl`lk7bQZI37sqn0YV& z{a(YyX1}b1C5=|l4zD+NvldV3-wN(VgV)O4d((A3meQ`8E9}ZOxCteHtsrg7>aeyl zM}sR78AR+i*Z$y13WlMb*1B&>=my@U*PHBe;3FsNK)~ISThvjd_ekVjaiVynTIJihpmztsLoZE*iV`4h06+YM?KuWdAb((wkbp<}Mj@ckWZOORfmr^X zY+h`oX@v4%rG?@M-ce*fI~U^jz!|I5Oxp4Ge)S|fs~;mx@nYCnh#1LWX(O;+iH%~3 z1KP&gEgpwn(VABu&}2t^T=y>KptH01iRFvb4tjg#qHDtm2=Eh|!-8Q;+bk*T<7efh z+!0EOeVk2jPsO+pdj_rrQpd6hdv{cLIKBB*J~hARUQp-_=it?M5s|Q=v*_hoNand9 zu$z^%T04?6Ce|h-Qb?9m%vDnfV=+|TK7ET)+t|{5hY?ujs|;eCVd$c%jp77f=FpyI zVQU+W<1)4cqH&6>gogd@9bn36(_SF(%ZhpRd`=4iQMv6_8%?Zd#-PBtv#Ts*6G!o} zb{^8M)ft`?RxfEqMzW$Y8&6WPe9~|ODzn}QQqm^052FP~%6B^#<)Aom^q#!jjZfIg zLVRVb$)E6iPjOdXpPZc>m!HN^#l+@zxyH9trj!)TC?d`I;CuSq2A0k#*JNO?>7$tL zE0XYV61zL$+fVY8&N4aI#u^z}ML=|3ZAb*fFO=`~Mf6lQMMxt02z))Q+tV~T%}q}< z5V4p*7ER9vsC--Vvsn_>DoB0nQXSTkY0-SdOxoU<+(Mg5(7-~eBuO4G3>&aLv;5kD z!+Rap;O5|+sgf&2A+^!-5{MQJlK+4+CBIs`D?Zga>uoZOp=&y$AifB(4KqATgY;Pu z)_x0TasLgqEd*3!QFKeh35bs)3Cd`}CsrEg47>wdCb^Z~ujBCg?b;sKz~v%7Ui-cJ z`fz-1rjL~+n;eclh~&j|{mL4>iB#U#+|RK*p_E-;KCIwMs(=J$biDg2?Ffr)QcV9c z1q>*> zj=W+$aJktIbl)qTPp>nfua}H!lyoX*=YJoo?TVAIV7VMnYPEoC0zppddJ~G63meR- zRr|5qs4%(H8%$>>p?Dzvxty3^BJU>b%+bq!bbe&hz>nl~$PwTbm~C4AJfV6cCza-c z3;4p4V=xxq#QIg`)XGKOW5L>JqyfhKaIkV9(jc^%Ts95{>Z7i!L?5M?DE|-+6cGuL zKd)$T^I{Svn9c`hXT_pP;yu$ei`u7g9!@Tkd#zj7nPp3p-S4N|yGyILw-2qOyZ7xp zDyQYDC+nV`8~fVMf!*6q)5C^g9S3=Ktq$zm#Cc$h1emZO+6{Zyr zX)1E=SsxzjUUgT3(hR9=7hg_U&Z}W8szRhh8;!fLDnu`}p*Hq(f6rpOhI$lfdEDU~oF2OJjGGdS{uCW%D6w0Ey-!Jh4cR=vROcac>0)~%@d*(~)?xnJl$ zrV2vO^6|1_1u40;zk3j!6oX(WI-LOqIs#JWh(8b_dxkhEJvHg+0U6c}a9PJfV@vRG zyQ!D_9rTTrp;{w&ODj{#mq-lHPDU-e5v! zoN3|WS{0*Rh)A)l+a6?J@vG#{iK)(IH%Q|mJ{=w&KSl9Zc<(VB1U|>^hiy4s5)nlx z<6l4w&t=X}5)%oQb8W(mUn)8kODD+;WKPA)s#s$m69f{>_v|Nhct0ZcFPzm!L+{sv z`}~j+9yu9+nDP18o7B=WtWS8(6u094?#l)DoDZZ2c+oNe9gIPyE zSlGlCsw(+|X#lfowlZQT6aM~zt$5Y5s?I&W`x@O*T26j70SDGj3k2J*iF2*$Fe*yK zH~SOIm_xw?lI> z-XKRGyxEdK>~ti{?>x@QVk=_Egi|ZEBOfI_>KQQ2xg}^g@qJl;*pPou71DQ}V&+{R za$3#$jL?`k`GzrXt>(bVypZ>ZhDb-wvRDr=)f9cFjNXxmhBp%D1^lN~XKSdlO?Wde zlMLTDIj!01^ZF^ZR=(B3q#3qEYMzu&QB{FIAl_Ws%n93XC5Pqk>)>ZDQ%s9kCX+$v zj*7E_RgZ zqj6QnJj!lGRmqB2$9Oco0Su2VR0OFUjQm6J6N%i}NouMbZa|b0XeX7hLQujK z*1{D8HlFZh$-JFQ1~#*3x~zk_pOA=ol~F01Biz$vLow}h_j*8RAu5qV*kV!y;wTDK zHyW{g3EqL#7bgLwiq0131nv26cvB^VTB2oCYLfi$B2ba^1iWZh4p?D3*} zUbH69(S56teVZQd>1^X&5IVVY>7=RzX4JpUz#F=&2*KT|<7zfzwL$poP{X;F?uyR! z@r8|kWrjC4f!ui-Jf?Q(8;mJ*_;QVx(t{olXKi1k=r3<@Sz-zbtF{+jl_+Ec?GWFT{Xu3&)=h3qzo@;ze>o z0qBv?13E7RfzAvEpszv^=&j%fIyhcnVvBz`9R8cm13fDX!+&!)#CgansNnb7K(Tbt z^duZAHP5c#9RENsR99A{5b7oiEia&^5DX@XM*Ir>u}=Y!AF3m>PXcTl6ImNZ{G7>D ztMttj%${=STLtH%6Gsgdli5ct_qpEg

vk&)!@k9H%UPfu^zcJJ>)Xl($JB*@=` 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�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
  • P#`_f44B8#ea{DQi#1F@_g z>&(Ow@hCe0K060h+Q&P^Vp*+tzm^M`2I-&>T`iG783$V*mA9sIh!O| z%LF!BO8~w~vQ`3K(33exsV*i(jYoKgC={>PnBYs2*4}*K>Ae8?TO`0FQ417IaMWuC zfw-(4+=>WlW$y}far0U$e^07)d zOn}M3b66&0k|Zt@*r;QG2izrr3)ywHznJ(o?8`QS?;$0>nY%^9V)jUU0E$36l9UD$ zGshq>wS!U~Od-JM9x0!sM3_RrPE(1nxm#&SLQL&)NtmowDHWy=n55dkC2@JH1bC2( z4oQ-=qD^MDT*`)t+0j5do>ac262O3wA@R4!d|VRpwTw&jVj_ECSx^n95Ph%}VLAtK zVXGNitaCafaa{{3F4lo5zPze^1~4GLxTb}YiGcW`nAO4q(*cQMR!;g&7lTyIr4rD} zR$z!LS|Pv#d6cJ^n?L+e2&~wii4b5J1OjY{h9AML42_7;rYL7p9bnprBxoW1!*q{E z*62c%G&$|Zj!vf`%3A;M9(QiQ5K~*p^}$#VA_0$CXvzqKlBCTIp|+_6TBC4!1lB49 zX400jWXcJ?skEg^FX?t$0Oy@=x4u~mN9>q`nd>g)$;7K)(I6Q#$b-=YzV-kME zH!!H+_;wzM0PBTFTDs0C-t}V2M2mp&{V{1-3+@95>}DYmeo#jn;|;!a#Fx9#6>L<1nh!)ZoV$KH~VNaASKPj z+d}~vB~^rpS8oE%LQ0#71c7HEiJKqJ>K-zx#qjw|s^n7U%qk>Q0%?>~6vl#TV`mAZ zQM^qbXJrB#ExN^*?8KF=^Z*COWDb(Fh3hn!gIN#Az=*3tCZO3x{abjxDF}`q=FDEG zQB4Pn-TcdrWS!}S9dsdX*kXoxZSg(601st=LKL=?l{9~U1QepQMG97O0E%Ss}u#5s+W5Xl@iJSXE^t1{TlDviErvUex zKoLmboVRF!N+XcK83ntAL@7jpON!3oU-+$rLdv0uM>5=Sn$29g#G@5J` zOs{!jP?E%jeIvlVO;AV@7ti_-rs3-2Twx##38Kmz!Z|mg#*6;52j&M z(kd4z;0~CSzk@;)xkE^l2egQCCQUd`2qbbjkp_3!=eod|GkM1aHdkEa(g_5dIkP;d z7Ty`mWiGkVM?mIEskEFu7K(w1Qg;YBe5SQrb*cVJ88wHXjgO)cB`>Cn9z`R{Ud$Lh zibj;akTiM(iIiLut_wbjL|pSi>gZ7hR&L^bi$FLy;jxiPtZn7~Odtw7mLVIS@LDHa70KZ942Ul! zVU`-QN=Y~Iq=kiF*l=hMqUaR@v*SnRT==&Xe6YZ`_L*k`FOv2k3SC^q0fH~9RFEdt z{s)qToN~+2OT=KUByWMWnhm4r9;=jg6E!5z*_u^KyNS%@eVCkLSz*;h?lNBMu`S{q zQ(G)0-o#M_I#slCSKqIOtVg|%04GdVDfK4y5oi;Va&MxN1UmMzO361-=;*?vRs}w} zw8n)qDG-?4SOI|~aPdqEtTnk_0SeK^i+f4H-C9b&iKkcruAv|WEeTv0Re)J&E*@hA+}@=OoJwJGivxX#W?iHRaE${LqQI4To8037 zfhcg1Ai%{8P>2E-9f5!Xmo8+AXIX((hLnO+2u$u0Sn+`$!6GOGPI|ck1foS3Jribc zO>)L8@8Y*P;)w-&H^SsXBf1bxI@sp7AkaT2t)T^lC~lR)uL~$zz3Z_~srQo!z zj%L>QwqX*nNhvsS-aJUBmAx2~(F2)2}%B~@3eO{!oM{i;AZ z$aWt=e!`9n9W;5-4ug^eE~M}SJirDDN#Jr9CXd>IK$5q>DK>ADclW5QWj37Fe~cP*lFl`4j#S7s6>&AMcXV4F^e`>d7|Gch6NZI{UAjT;wD9+-q*ivrodf}3Ry8<-X9 zwnfH`9F!ax8=smyG_q}a($HSO;?6&7n~A0~`++So{sXg>{0GJ#{sZ5G84jBbgYd+W zG9tg-kBuLajE;e?ZDQIutQM1T@Y`8vk+-W2MemhI4yY>B{-TXQd)YQr%R7W>nL3#* zenrdqAo!+;G4M?S|7tD=ymqZ`y#|6;c=Oq7xj4L9uJcgafI@YPERV-;xpF=pZ7)Do zvd(tR3Ww@TGgLP<_*avLZb*3gjg8NclKyQTc|87oFvsK3(;}gIh8F>o#uxn+Jp_)L z-1O8p$~v`i>!)21p&?3+Cy&R!1amwd-Qw_LLpEQ1<>G@1dcWG;0{%4v{&((115f9p zzHU(y!SUtsFp##aay%aWLsR_r66;S-3BkG5wOUJI^0E;AcP-b*9W?&CmL5Q97hibt zc>Lxg=i|}!M-RqO%B$&#Q`c`j9zw=OlZzgT;O#n1pLMUEzh#HY*3t%Z&l(0}02s1c2-$HQ(WN8x7%j;tQaQL_3qs&0?4Ho$kN zsy7Y}4GnELBq=4TbMuxu9e!(6JuNG1P*h~(3opD7@q#@fb4Y3=e0Xo9#TIF^H2_9~ zp(6)o#gAw(aA*y!5u=^v$wL!|qz}qU&m0)a+Ko@h9G2CndUe*3?>~Kj@q>IF4ICQ5 z2OE)?IUsUG{Gdo{geB6~G6)+27}X36%1UmI|7(l@!PS8O|2V5V%4v&oxO+Balp>P9 zQ$Km;khsju{*7A>i64;MKE7Y_kWhDoO`z2Ou8_9ROiE7~NqY7~+3ZnPS3Qe0%3{$P z5ir#@bV=u^6%ki&r(q;xsK8(@J;oaa{y4@DN=kup=pvRl&;A0|+hx`>XjHSzK_iEx zr>12!_WcyP>up$Wi?u%cUsq^!=k}rP(g&nxB_~CMM&qD?qYn)ok~}nd$Z!A~Mk+1+ zuP2t2=$qD{VMF?Jy-iAtOzxjN0Gswu%*-m!EGaQ6C3DDt_^ih9g9i0aPmE`J%SPES z(*Gwxi~uGw9n2hJ@LtntE`ct|gJq~8n*QmH1>R_41kB$qL*&Aho8W_>{WZiWveL8q zCo3&5Er{-)B}4sVV9PtIfBeAIM%70&NJ>tLAJ#vsdgJK!O`}8Yq0z0IHfRUQg~kra z%*ss6>>t`?P;z2=iq4WpjalxJk69Ys|59yz;#IZQRB59ynWSNf$wL}PCl1L>h|dab zo<1}yy?=kc=q(Y>(6Dal@GV~$8qQVIkN>|`OxUIN?ac>o7`p)jWYy#(QOz?GhcVra zY2J9)u=J#;gm@Q9b6oBQc5kAqfdl?r1CPy>*udsZOtK~>C%bSDnA@TD?L}I@sxd=| zzr_q3niW4VG1+K0DL&Z}?{zpEBqX`eEMB|JRAgjmQ4{f9!fJi$sL~W0%N{$Nv0(?0PJV zM1=oim&lFB{``OJdMt}Xgh#PUh;NbDYgGLOM6X4I@uMF9`m%jOc~vyhdi?fV=RT2L zLzx@jY#>0|^%^7poQ9PG85v`Szz5Pb6^$^2-gsg}R(hq_^4M*njvw zEvqwP|Ah|JVYrXZs^S$GPyNa;JT3vXR$z8^>Y~8d{Q(8$bg=RY84q>N&|(GVW(OuR z%w=KeIR$2CM==V_!D@CCn2Vk9C@?omJ1Q{#B&Q5>TUfb`0^`Rs3XFX>PQ`;Z5}1qf z&yDbm;CWd|jogRF$_`)@n2nXiC@`LqRbWn545Pr@>|{lO@#n{77+xGEv|cOi*UOH$ z<@THwCp)x|+H>NXo6376WhtI^oj|5Vxw*PvQrX;mVW_Ufq96&ATdnz z#fbw_RhCYi?~s0Be@MS598&r0w7FSXk31HzkHAo4pz_{{gJQx{hn;Oea(gHqrZATY zp4$Wufxg-vghXL{5}nz_-!b;J#0a$-Eexa{i*GFJnZO2rp2@26voS16+C`iq`({|?YT_abDQAt*RrMd zTowz#b6I%BhJweBkQ5kJt1>t2&L-`7Oz`+)l5%_6eJurMqwQhqA^qYz$rR=`!K3nU z!LLwt$c4fRRS#S!mr`w$3q?2thJsUdO}iX0iYl*g>O^6@+Ct_5PMs(od#;C}`S)p; z(?$Dmu?NZ&JQu7Jfw_ncbGhJo5Iis5u29-@V0YIc`)c zk@ny+sJ0zm4hv4C@wuTds*by1vMCI`sI+bi(Py_C8=;Elagcq+?Qzrb;h}!ghnH8u z%VYNPBWVT3-X&1xhSxz=S$ePrRXlh@WGo(=huC6|i`pi@$o}DRxmY!#G(L~Z!$L;YNpL~h!x95BEzlJGL#++_l7@`O z2TfpPufPt<-t1IqovJMXp34Le(o|`2l%viK<&K2UR)jO^+^qQO44H?=tL`(X?&bGH zCBC4TT3!37DkL!{V7!z@qP3xTSM3*7kE+dPRf?Swg4lsE?~q)0OmHK^{T!F?mJr4bqN?RFq7s1??sJ6!98B;BIDsQj4DeU3#xV( z1_I8b!WTsQtZYqg4}O!XLw2|&gcfcNg?Wfh+EJ~f*dg2^K{`q87q1$s^2O&&Rlf9Kf(NgkwC852K82Ql5J`q16jJRA?nAS3JQ)v_XQ~dN_)Fa@aJ>K?451})3RW~P z%ar?Ykv$K1PNG8&mz(GiE-FzxR5Yn}0~sTf`YLln8bsAo2Rl?(@$mH{(jG!~GGDw* zPx?TLhr+xB&xz1Q#dBhlQrDXkYoEf9xlqQ;LK0Q);YpEoj#o3uI)^18dmegVmzpHG zA^I@EbJFoKr&^`O+EV%F#M)BvTv#3|?*Suw6gbabag@e~*iX&B;A$kv1p&stCMDA% z6jyb_1>L1Ey9pi;m9fA@Cv$VN?6-=C4NjFCyf8Iyh6FADM3^*Yw~P8=ZurV-AMmn? zF9jHxhsVO+vXpu1LDpWCk;md@<(|@55F!%&Vftkz}WkH(%b-Zsj|d9A!5goSYj7Z6

    R(HGpc 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 literal 0 HcmV?d00001 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/MAX11300.pdf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/MAX11300.pdf new file mode 100644 index 0000000000000000000000000000000000000000..90e7065f2302bae94314d3be8122c934dab63c4d GIT binary patch literal 3127089 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

    7md--B;%I2rda?cXYudL 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 IJj9S6L4va$;)`@@ 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�sQy(7hS7p4y`vDEA2CDaapgiN2v`Uyn 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

    maaVn;R`)!pl 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∋`IsT)E|A&4e)sW5Ma`sfaAP9dho?I6$ic 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%0D%is!pQG<78 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

    Z6whB|(o`qani5aWFFQf%r6*$<~a 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%0D*d>uZ~5p^mR{1UV3*npe+b$Ho=& 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%0A;%0?Lp-EqUefT*C}t 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%0AKZ9f-dl0BQW)2Evp{Tf|DeKC6*?ss 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 OhEwrh$QkcubVFpJBPo?47V% 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

    Y5v9|M=uUgEEl~*4obAz;Q5+~tk(~W=Q zaEi!mxUdIvZ`Q+hK*b${ZH5!e?raA~ixuF9ArT?|=M8QViOA5K}bB6Jt!hexkqv!Qnw zKiR#aG(Lp}sN78?;77_5@k!Gr`FlN^togw3AWJEB4INM0XPOkI%Db88nFlN*(id9x zg5xbafl_8+U?LPf%1|ZyS%3&FgwW=H+elS}?Qsi@+wwxhN}{D{bew7uo3;kw?*3*& zi8>+8`_3<3Wy^{QTxc^zIxSK#_Bnt4ZGx3tGMQP_a=DRc8hndm*(A!Myn9)ZY)A4gh$!| zLZt7!5xGo9lO;@JO%|^V=vB+3>e$ptT91!LByKjN}+C+1a6h`cRB`YDRvT))P zR&eG3c`%(;z9xfeQct-&4aG8q_Mr@)?P1fY`R;i5Y6AoaQQ>@DSd&vD_@ZttH5CHQ zm8ExlEKuPs+{8CJbo{=u1E!B?nv1u^me}Y8#{}a9|4XA;4u}M*i?=`7(7BqFLft5$ z9BAZEBt%F`SMrm8&Q8{6*;c2dKialaG!KaMMK5m~3G9wRr`G)}(v$C1-Pwz@a~<|O zmc!cNo=OO&k*HU@+ULPJg9TXis!sEz#6b`lsJ#;qZtr^4NW*>{f%r&IvoogRH&`#I(Ffh_ z8iy7g?sdw0|+>Ls>w5ZjyUeC0zRrxp$>%o{a%nXm@s3zb380%qeEoefIn z?Xw)dBtK5W={TSLo@DN0a(BjhpbsvBlbjCNO#FJ(gg-S3WPOVm+tbzDXkXN$7LC`! z`4Q1nD5vjT2wUL7_-Lc%Wm#?Lsy9PwT@$(NyAOs4kr7ZmSO`JHRfSA=#0ZzmL$;Y>!N53 za!h9<@S|+W;0$ivKgxB%`Hyj32zPFrrH9Dzzr-^%C|2Fs8sXuZhBqlDE#$=SS-z?X zRC-co5=U%B741dKsK%`Jv3p@~(Xl^fYDi0UF1fwML;l24g>Yy%0-fZo{Y<;Pm+TYr zYKvYVSakKUzC00Ex3hf@Xbaysu*37NO*6^#OUCDAGI*s#j)=f4)6svu$XN7CFbxxm zHp_!CjRygOa4q6IsP(9HjoqnzKYFB3JMS7~Z>)~3CaUVk57CVHoA>QD)e^aARJvjq zs*8of{4eczOqkfK*C2a2?P_cf{Y4I>))cIG4&*|VIGOXCKdN|9GwQuUF#CLyS7?~r zAL6VsmP*N8w$t?f!^61-_2ZY#J^tfd!Vs6`n@r5ZWXp&Y^$PAHgJb(%v3JW4r)&+Q zIqGdIj9c9_<HJ#akE z@NX3~mctHcmI#U0$-4y_c;3o(8!swVi&=5+d?St4d)G;e!tD@bbGX#bLZmO=!;%E* zA3_0%w?FApT&+qx7xRfTiL84m`4WxP8^^o!7^}I2(hiu`#GUNUbVc^!W^DF^_uYgInmD2Bg$I^9PWw--@g+WpvWV=aQP4zh#IC_!ss+CF268=>YlDtB8q%GS%a zPYN}BTEc4c&*>?+db!(_!e#~}bZ68(JpO&tr@eB@Fa>Axqx*H^I_IzV=3;KGJndvp z>Osh#8)b^0C^f+#INS-9Qkxo?bHu1Ob*NPT>{~yi>wrk!%nIwE`67L)O4f^qqcOVC zSPQJ`aYv`|O2gj~!LB}EQSwR?7_t|zKKKg6BexlLuvuvYx0_d;C z?YGZQ5(xEsZmp~=W*q;ZI#!I;$i!E?M8=EM<&?0qF2_ajJT*wO`Bii}dy0GbM&|j_u52>@p zm$#w%Tgv`uQ}ZIqrJ+`1o2tKKj98wlJQli)*{>m_sRT?Xz3@KL)E%I&7uAa_6EKVJ zWo>mY{jAjj_XI38ZH~fO`=}i-U?uRyw&YIB^740BWPyyx);z0RGfcs(;C{uaZ%pNx zC$cT#tpH)%qvSS2fL#t~-i6`vFyYtQ{#rHrHnP=gW>eUYD~2)sq-_RE!N2oD56N+3Da z&b!a}V07G>g+Su&Dh*XjDCFRkN946mJtFU{dH+$eqcs8<=Oo$`kTc{tmTK?Ib&j;% z3R#x+2>)!0Nno3Cyqn5zVthAMqQ!*Z9%2r#hb~3-(mNq%|M{nC-ybdser2mo>oRsX z3C>6CE#k?6OF0fI9+3XXiI!;%gANB`Iy7<+KpWZ`SM3tB&nj(^&0-c?CDzC9Sr)`t zY=M$e9@z&}LN&gcc8PuHt83GOS;4F=+`%Dj801a9ZYOno`aIwYt;1D-VCWg9oJ;tV0J<3?7?!rD==fx75D7T!;)| z`pHrZ=F+K!`DoARVkfWf8&bX{zIwnkjalY*Lw_XNJIf~d}C3&rqu z#Z7;)D?J3I0tEho2|?Rl#K{E1Fa8x3DG=yOE)+7o#IAaT)?>8@xfq%#bPQoS2=pb- z11j9H&QvbOT`9x)e#o8u!mt?e8DI}@@&l>&z@ZGpkOR7sjOud17J+o;H`gqCqY~(4 z0(;XKW-85+AHiI3g9B=MgW%D2i#tRnsE8>|gpR8-&9VEkxF9KjL>vSG5QuY5O4&-r zAbdc@F2>mrbQ%ev;q|bnqvC%3Y>^F;{17Hf@kO+yRIm5nvPCa{%o)!;Mmp9WA0RcD zAUY|w-X>c{$i|SdL=X^-ib?|rhu(WQ??N>4nN(;znOMw_1 z8{7yd0$2Q@gn?9gSVn9P-l zz!y9{+=6tPT(D&K^DnSg!Xnq2B;3oSanUz=_Tha*3d8P4<4u(KWi|O{Y83Ug8C{%? zCZ}xEVv`dC=OP2$4nQI9roS2He7#SGEsC1y5*mC*zl$ve-%|-x>2DG`FO1vj>hwD- z<=U9KOj8GmJ#Pjp)JE6OR{UYN0GjesuyT=-FTL2;ahX0ImRpYLYtPW&{qANvAtpts~wQ|J4?343i6NL>s%<1J3!#? zttQQY-Q;4FlQdV0?ncr=FR8pP9kNBjK5k9?g*>pseJd7EHC}-+DpSL1l))@8?kro0 zX#S%_mXei6>13d9QxO0a)x|Gqt))JSwyx^)VA8sZugBC68RGqZHCcHkv^CnxIO=265SKGt2J?l1YIyg=DmJk@T@7$I3+_W#{mwsIyXrrDNVrsg z@Ro@4bzIq|uzW!I;xP(dG>27ueC67D8*MS!F`*X2kYv5Ta3wuD&2y58cT`^^$L(_< zy|r+$5K`=k+Dz70*JoOqW(;OF%c~YCsg+8lakaMSlB=b$$1V4vON!Q)F=Zj&8TcAi zCmJf$5#u{I)e?(up*&x&2xZ$$()~mdZTq>lUSp)Yy~$Xq8}zyA?DMkL91Qi#CYUDE zu6c1LXuU!P)FvQ>`EO5Jus6x z{NjqShOwCX8sv*bQ`GplWPP^9fsu1=tBUnYR}!zDl<`F$kj6l#g~*8Cqj@q>@ZrxH zTz8^yof{1N%HhjX@?P9}aiEprpvIP8dW9MkzUYu$AwXv^ePpNYOdL?6?-w+l7^Zm@ zpQ#g9GXf#@#?wgcTQzwQC5f>a%Mg3_5~ZR8Nle=uA)_LvEJrM_kfyJV52C`9a#S3L0#f?>0gPxEc#Hcj%bqy zrEYqgc`(}CjPcWSF&lSF5`UV-PpF%ay5iT7S{zo=g%*Q-`Ov-$X711S@+(RiD75Fr z{)6yd*(PZ+x!a;JmTs9fYti3+4W2R&(<}N=V)7ZOp8t!cArL1ex?l)o0$jHbLs|-=%hS$gT&@017y_h zp|<$26W^e>JE-%qx&cX8$9S+)OTdyTR6@MwWkMA5H|AIv{cn3V3wC2MZ2ENTjHT8H+Vx&U+aDFU$BMt5HCK z{FAAq_y`6!K3zXNqc$qL#(GV01Iilyatu)APFK}s@oXE3q@R?%|TzsCNP+};L2j+G##yG0+I zgYg@sv*tt@-)Wk`{r~a5OR9l@SC+)X&N~>&qH%g40HjY^7F26^VRPlsJs5EV&FsNK zG8h`NilGlBw&F(vGTL(Lm&|Fa6@2RGi7Ka=#F6u{QEJ(FhVOtbiNv)tt8~74;%{oC zAGT;Bm#PviWrNW!c4DW}j&P?`mGnIbOD-#)Sy|(9iF4xbdQ)=QCym(wNp6|2+P%fi z$M?zQEX*W00SmpC6Oqq#jXcYQXzRBSB|Es_7q*9G+=wc>8vWr^GgwN-q@V^)mY19+^%!L8klGfbr^No zJyfzPRvGQ7Vix^uSug|qOI9}Pi~WN3K#=rWi#hF7*HMr;iTd1mz8OjQvhy_V z*_>K#*Th#6S#PiB&uR4aH-^$GkkXV^a9<(M;lMNXR2z>A>EvS>ALC2*vzrRpXj}_$ zLUKu_%ObyYEmxf^QQ3cStWEb-@dQU84S^9LbR zeF)V}l8PivCt;SY7EmL=ZG|4CT;0dpla^7YD+qh%fhI5>`*zU4m!I83-3vq_ygf7| zPv3}{Mak+n>Pn$n)3VObaws&rCd0VpZKQW89+WgM_23ew@r;rBv_)M$`6%%X-eCL8F20OhKXFQVql`oE zvsz3kg{zFuMO4bEc;$@OVdYg6{AJPp1IAf~1hTD4GwgCnL&lEfG3euVTBU&Yf?em} ztxB&Lw(ERoS)JG&HrJgVk6voiN!Z>F2Vefy2~C&D>=A|idg{dVdzUWfjs*JP(MYHM zC@GK1Iz_Z8Q0<9bH#RYOIUIDwaEiR0j%;se=^nU4n!EdUCG|KvP@B$3bG>1&1YX4) z5$Qoh+AXFNb+?o~%wOvF?rKx{XieBZTLbvt+NqB=X#bNqCDs?!H}&lTINpM?F$cu` zy6o)ID``n1z1}mLf75#JNPb_7zfOZzEUfzf)(jQoO7v_%7KyF!n zXoyG@sSFo(2VZ;5chHs+-vAcD!-n89VKh*r+zloV#k&@WOza(|)V)T@zI$%?9_4*?|`$W;L)Ir%z)!Primg-7j z!e>>eAf`5#4UucPE5B35NNDZqumTH(h`YP+eT2UAJsm4y>4uND9E$E?UM_O5@3j?K z5E2C6+TXlgTeXv4RcRAyU!Fp`F1`@=<&qA2Uu5CneQ`<+d0%`tX4op-B?sz}s)vPK zfhWFW(FQ?G71^RgTP6$leqVgj9?Wo$$*!a~x|8xxxVFv>2nB_667ziD(bz1wOz1b3 zCM^*X_46$k!#+JEkUKx0M6CclPw~G*>aoK{IZ_%7-8W?B0YtAB3#)#A z;YQVrU1YrFBY9DKqKMtj%h!A4fK-n`s;8lb_Mu$lWw1i<#QBd$0T#(FThTJ&!!2*E zv)>z?6*bYb)m5yz&(ZtK{oX(URW6rgbKhb*h4tXd0@lMDX9;6_$--GQw+3kxf-NVwhd z0avEIQeSQMsFt6~eU+v{4voTI!mxeRrWLPa zl{Dtz?s*mW35X>7>zh7H17p!G`OR*Uw_p}IkBy-1s=1Z{f3;f6HNo8PD8}+(J_!fS zz*@c{H~Acg1%rP}PvB)DxygPY+LMk$nWw2oS}`%(T)4Uy*bZ#B(9VYGT+Z{+UY{x* zj5?@V0+UAiEAYORo;y-#qBL2Qx5~iw?%@jGfxB6b$<8uc)Yta;hQ|;s?VEb(Sy&6Ol`;PEpHI}LU6ncne3!1 z={xVDCh>SAmVPo9moKfi=AqK;G( zuUvXz!DciaqVx6JP(&n+y|Ak|tIK5TlQO7L%PI%X{tZ&PFV z4%4e`0f<^LgVJA+Morm`S&%1F%!p#`6XZs&Z~4QjFR5^DhMM=x!-R7X+@?~?5rWe^ zA}4HGP)DK_80J7tuA3|kkQ!E+`2{XhT3jIADJiVVh3|_d_Z0mU@VmXRY6qn(UsO}z zFIT_F(=+S{h?k2ru3cNCB_LUgE)kftoUEp0-_|bihnLRx^8BWatqz80WR(s+nMoGgTWL1L@1RI$wHjxb!$F)qnMOUzLHV&KXzK?Gmh{zK#(*!~SDEM*1T6Fg0r!OG27vM%ccq1&JSKur zKm?en8((j}X|SW4#1aEsTY{|QeXJOl2U4jE6P8!P8AI)Ye$ld6o#!6qiX{zdG6PSEenxnK$11P(k%|SLu#l# zn%>I)6U$~CA;#v5A-uw@9HiBvh2nvZUM+UIB=w!p{R@hwqZ&OD> z8y)4R>&uh%z|7#1$)=Gs^pVeUj*ccPky zW}jtaY}>vb3CUTiJvj$dLS4LN+cx`_-rvgyi&-IM$h56X@H3cnO|yHxdeE$~Uq}xd zpQ`onSn``sTrcO#x|1FdzVm@Yy!=$sT>Q>c?hovbm)4g5=(Mg&Z*UQ4F8rE**#p++ zvP(ENp}DCBI|;^pa$1s&ywh1hHlF+&27k>8e_9_OSCfF@oR38@69zG`dodiY2LlIjhaMZB`25R z9J*W6LxuP0dQ9ZxmQw%M9@thJBhRq1HH}lGV1*KEaHSG`e7*GoY7B>(rV!@QQ`Xho z1zTR6**QAo(nSys?_DKV@3OaI1c*&1K@jePUW=?*mJ0GIIoZnndG!+E%U_()+$9Gt zQsl$rA@P72VIlib|C1(5(!y+uDwoJ63YQ!9Viz5Xfw#&}hOH}$|BvX2qc%I&o3>~Z z1IK?m0wu2t{i^zH(k}9NkWh$1RF_S&M7m!!$L4s3UUevh z2z0#w^V+WS6hHx$`yt32rWNx1GV2n9!5c4yFas$fP}iQg#NZ8i^j_&2Ten{~qhF_f zEqcpIwQoZB1$GJvd@&@5y3(}gYTAO)C} zmdk`%AF#VLSTB7|uf?XRFN&J<4%!?`);;P}bx3}Sr>;V>rtPXL&06&?=PDlARrH$S z@Dy=)jWx4dqvG>=jx{}@Rrd)15=7#FD7=1E)7yjKS?VOMn3J2--WHvr31Tx3pWOa` zvd&Z&qG$n7qt@nFXI>{t(iEM*P1B9+t3PhY^a+Sp>_u-9`_q*`88xz`8T@S8M>7TU zq7YnKbsIWizkJw`NwwL`f?3PnSOMTvEhgPqz)j@w8jzNvzos0p*mmvX)(#X43q3Y5 zHTLY52;$XpA;x>yv2SAnIJH|QChE=u6VFiXSkU%dj*OW#y2YfI6u&m|{*!xh{wnB# zK9<^Syn1+oQ&^hx4AqyI@yU7FDxSDE2-9+BvvPc5L@9idhQFl9elT~~cLG%M*pY|N zu#cv`I*!X6PJuJ+&ZifuQOaePuQoy2%Noz|K7x)5W>aKO{w<7U~o~>by$H>%d^ZUC_qU%?5GD#kafR&tea4=D^(Pdo^&H4KBWpi*me~2NUJm z5qhGt>J{nLMqpPA@0-IGYCjPC)Dtrpcf~iG!LVH!!kQiiO)FJ`vTY_|etoB5+^iaC zBCbRv_ug3lw$kL6txDPa7K1qSju)aw_!(eh&A=uxI~PKifDIR!U>uQ^L5iC!*j)O` zrur4?KJwnv18Xo*r!1}c*dgp>Am@x({w;KU)pBfHrE95g zdjLu??M*R$5w|w`b%fN>SG8R-&A4D>19INC)UliK)~Qj^%!P@Q7QEzmbZczpm0gCQ z1EcLsf~pWDUrA69MG3qmIED3$a}f;OH<43hwAeMtgxjCY(RiN4LE2##x;~(R)O&oR zgHoFxT?nr;ly~Q}VS>xD^T-WLtx*t4?_QC=RwCGGO4V_8$c~k0bZBZ#3%awtD=#a; zG^PpTF10R#(YC4O=;oNvnrY3f?au3m1S$%BDi)fG-X4yO3%A*e%T>4!w+ZOr@ObOr zV%ltx2Pbs49hqDT#-46dVT~JwbIZaFK;F8SvYqJ^*t>um92}}-ADOycGA`R@(}hu- zIX0I&ft|k@by&vKpPHWOr9iuwJGVdJs- zc8?uLXBR)zI?#l}OF*+Lep`7nL8a`ao9|W!8=sf&5uP|3b$8)CIr1ji`vvX33AW&* zrt?E7mX1qITbHgMMa+@S(EUaeLc$2ynoIShhs-Uso$~zuv>65$QOo>>IbV6!-S8v6 z{z~q>=|(UDhPrX{Zgx2Wl-mnR-0&Jg61;;1k6-rKHAMc|d^ zIqy_o5gIgzifnel0KqNSc$&m|CwPdPp(rO?UJ zFDTk-s7y<+QZEOZiSww^f!(lstQ3t*U+iNsr)YK|6h-l4{N79wr})&dE~)P|T|x(k zPXwL^Q&v*mqmlz)`aJ=yS>j&N+?J}-T+_#>N>7=WE0zt@b~~i7xK+cnO%bEc41_N7 zL2X)}YoT4h$fg(c2}{Ld7tn<&+QAfP+JR78MeG=2EaZ~w4|3GWem2aD*wwp23zDQe zl;oApqwm?>qV)IDei08kM9VOQwkGnBt#L#aA&e{9TSRlIP38G2Z!J?UP#;rQvCjoe z-7cD*NFC|jOMBfaJAL;6S~SU~_hHYHUL|?oo;FM8jVD3|w}nB67P*BOj?LPvY*KVa z02(E8rb6+)_o;mylP{E;3TtRhm$=S|Box$0h=A6dTxsz z$DVlIRy!$i*6XX!|7a60M9yh9yxs_Qdz=$uFbeuozwxO`YD>BFNXwzvJf*P*T!Ez< zmn>ScD0D+$05-`c;Erhk0EWhbziu%x zbnrWZ+|UpnfB?Ig3opJ!TL2$Y9h4Fv*>+%7gYsD!DY%!-)(EhX?iRcqZUWh`5i}&z zSvq4+MCxvJosSR$BF!vmN|%+ld-(81f#w~HvAT7;zq)}P8vfnbivaA7g0`XH+I-hU zzE7ACTfWW1D3dm`iyt8H^g)#_^32xbd{=go9I_ICL?miSkTJS%ylBNmL~lDQBf5DL zAYgGPEbwi^&>36TN`13Z?l{pedc!rU?+*?6l>U_L&h}kctczf5&%(?3sN&fGqA`S* zFYC;alU{uK9CoD`qgB98Q^Wy5t^vqS)|WZwsUMXNQ;}gbPqEK@Zj8lAa3~lZ-qT4- zW5Nhx`}#tH_b|d>}sHS0Jy4MH2_KVWmv#v-KlutU2wNE=$B>WYwiQL z=(lL{g+x1n%3jj)V`DO=J~lI*F+>>KTg=Aj3kfDlqDnUw60=lQk7bmW5`1h-hsphn zQ%9u;7S%7;8@a=lOhY=cP!RO=!^-R9XB0{Mc~iajhMnr}oZ&H^0WSj8bSjmLlPoEk zn_cZq-Xt8$-VZ>3)Ee-9W(y#j40cWclyc8DIw#3Fz802A4sFWqEb`TqnzhJeMFD`Z zCb*VRxR6DyDl1jE*LV`C2a2gE7S_1a=_7QB{A-Q{x_`)gfW$|a!dfC_;H53AH4|JI zX^v@6UK+R;g+Y}2jx3)6Ed@9*3?m(YR%#>=a%XY`v{Cy9oE@15q#cjc1vtrMuj@$! z4x@?J?nUG=%5D&MbhG5C)669mc3%KxNiBfIp0VKqX~W}m*d(cJpWnUOZG2IOU3B$I z{j(U)ea8u=T_TJ(nHD`(q7nkOthtwMy1D(LzJ?H9uA@LfWNY*_Y!pG>0i=!X9KDhp zPBreeLiw#jNuQ-J`G#*IEp5cwVB{l^St8o$R6Rc@VAcGKHbGMy+uzaf+l=hwn`9p` z=a1e-(B_d!rMyHjDUm3PqG$8asVpYX-;Xc?JA+i+uz}Q_pOWY(falBGbBQt0fLqGAQVU$PbZ^SWVo;z7kV;S_8Q6%Chd|C$u#r8W3`jJI1|T#7xb`zH)Lys)j<%5u z3z7(^SaYT@Tvg!u3gU7#Q!1i!cV0^IOTw~k#JEo#Dt1q)h^Y!_FjR?g>uvwy@z5=4 zKaB*4ng7P5%f5+&r?6pD1KLj|JUXJ6BdCw|yrVEa0am-H`&KFvGn3!Q%DwNgZ)o8I zPU1V)B5a5Jxlt~nn{#h&;%PuBg-q^Ggbl{cy{Y}d4^s&(oh^`H;yM>g zxW8+QmOY7X^?}nq0#fu`lfJPNgX9ApW^7{afXE5u9@(pbwsra#h9@^*#YLKm79j1m zx)1MFhkg8??LR*y2!x4_Hq_savP%>iK#|bAkvo8a1U0r06qXb*jg%TK?Xp5E^m2_G z1w=ge81HLh#an%IjG0t+BN~zlk4fVRqBJP`P))l=2un%2&QJct?^>4=IFOu!E}){^7S<0|_`(F5Mwfz%mW z8S1wIn?p?M#d4)7FAU>hEeUpJ|MINHPV95qu>@}jz5ue#(Kap(4L%G~pssZcx+C!Z z;aTtlDMv|#yEu{ZQWj}|={1>hjqoblu9FAW)*la1+E{jjc%pOf(L`re-KU}-N#?&|j+W&Gwiv8%Q+vH*)+@O1Nmw5WzmlpCGEy^Prc}<8d1G8AN!G2gpd-KYARbM{N z&@cJG$vdS}8q98>WB}Qx4@VSz1XR$dUm2E>t&Ua>U|*lC19(DbfuecxQfW4Sa#YMi zM>$(2Yox?9G3Z*f6IMZUP%xw~HeBzx02tR@G0TPy2!s0juzp-1SXo{p$3n|FMHHF zrMR6A3U?oy;u}xk#p5B^_zUV&o===NX zTQGpKG^f7D#fsuEq>okUs=T)WW-4GD>dn9s&NPBO+ z5mm8GF~17UC;(I^*UHJK+@bx3My2+WOPdmz`&;?;i`hfAe~U57OAzyVK0?!3 zVyBIy)~N;eEBj;@c#0l|CfEw~DDt-ONsw|tGN%SC5A;I-CEa+P_f3N<@Lcv<0FJG_ zMne*m|FD2|YA=|a-A@Vfmohcn>`RwNMp6JS4CGp)w6&o?-t-=TF1BcqB)9;1Vgx%> zw^Ph`mKZhcNe$W-PzcFw^t4V}>IkQ!KZKA8WsRt-VRYXF>QXhOa)WS==r@uVFpReD zhx)incak`w4@r=9wGYp1ar6Xjv(2G&=550qXd55TI4KGQqXFDnpV@{uksRP#jq&ME zV$kpNq&?xI)8rr;z%lWB?({_l|LA5k=FPAWyg%ebl4DU-(#w8W(N0Y~?w=nn)sRE= z%!Pb7B}bm|<3=wraK3ezKkzJo0tJ6i@+eeT1%R}^F1hs_S4$qzP}@_C&sA`kCWn!V zHK}nJE4&M!-SsNjLfhgjMvXTy3E=_7#_PN@7`Hc;BetD#I?>!Z@)v3I{#s?@t3{TN z$Kz%|<08qox40oN38v{e(q^#l6ndhfbLlnWb(uM+hriCW2GZL4Q$SaA@hM98XZ$BS78>sJXO_kWU?7K^E|3$wJ(oVjEjs*E_G$kCH3Ygu z!#a=Jw26T=O0sNIy}u&bXJU|x_X3)gknG4wL_72!PLa zxypX9_$7*)fTdhX;rintDZacW1enr|w==Ye43P;jKVR*q(&x^qN(l>$2%r#(Db~ys z)n?6SX~I3)))G1suaZKXV1fdm?9~xvBzIrA))m*2hq+)KHX3jU%T@^- z{rUK6{;l!ch?eLNd=r?8wjuZ2m{9=Y28+Jpxk9F6eBDZ5_LKt}6^l4Gaw0o9wju0V z&G^Ift^DPf9wiWS1!z<(+Od&DEEunBjkq>lIFhk@kVNbiA#bd31>TfK!A6D>073%s z5`X&^F_=>$jBi|g(|MDQjXPm5r7#sviqD>PGQ~(Cy_coNnz0Tr!YM6TL$gM%sU5LLkF}TJy8KbM1wHTklGww^#_X)wB4pg09DI{kW zZiZYRXTjz`I4%!GwQ#)B*{5-O_te)r#D293k#wn`8Yq3g0{bR`k2ibHQR0_n@j@uZ zTd;TZ#@1?a5bj{LJJM(Kd_AU-bwF<&?0=IL0~wLoWX!F^Ik_nEpO@ac^TEn5wrC5K zMbQHUZ&RuQaFhLJQwabmc^?mmOJr{X5F*R+jV!xOm$p^z z&`>f>sa@?;{&h(sXfTY1HN}-%Sli~|14nZA*!LvslP*s8&1V(pT@5y#l1}7nyv-nf z>ZnY1lpXC`M0<_9wbWn1eTy^>(;Yw>*Cw-NfakJe>+U~Xucvuv<7_#xVp)>~#kumE zxw2#qE-0(xHND7{_oGondOI3#Vq020OnHTnG6#w*Tjh@OtkGl3E<9gOLWXvh>S-LT zR?st`65j{`rlX{#yd&m%!nx7jL<=*v(GkC}8rwq`@Q?yM1pq|KS*R?-Z(nsD$Td)K z{w&O*M#<3#6(rjt&O;B62Is|;L`1hOF ztDzHO%mJzOD0mu4?3PW^VoU1Vsh85>A-S~+M8Gl*h!%cETS30lKSE}*1NI2e}kddQzI)k?FoIir{Ogy5-->3FFD!=zc z5?!`>wC}gAVzhX(M_GI4yC~VFwq8MKPKWuXw1^{sUp=4u`=R<$eL!zO1<()g+3-=pot!_fr6%;cH^@X4HZENZb!KLV=s8`%vJ#|{)D6rHm^O$m)Iyu+TAA<%ww zKl;)b(@B1IobNYJy&VMvGXY>|*5Y<~*gAWTO(Qgolk6mQ z2Ko8=%g>~wuWKae_-2rl5wc;vT{27PRS?n!wa~L$gT;?kYzQ1e+7Q+Q+Z}^KnBwXV8X0(2dl$Op_s4IhYN1 z+^km+5dbVeyUGsbWS7owL}OuK;~Td!$-ah6(lf1fuA1z)&h5T#B6LEAP%rn}1cdT% zumBvS;g_A^;7#|?NVqTqbGnmzTG;q^9FWD|KrLhn{DHn*zjv%BLB~au34|%X`+&j?RhUDMp(c;+7x6Q_TYS#7 zdRQEa0p|7ZC|=f0CC|QWWwav!5-|+1VW;V^vH+s~8V%MUlR=%r0mbNeBsY2NBnTgX zjk27H*zj;>ZPnrfE$D0rT;$^9IEiU>q(_3}`7q%GOzu~U5462wqD|OJOSkqurMqB{ zlfD5{VRp6>wM+v%jQ!iOW3+PiV4jwW%pEOp-lWuU#{W@hWaE*xuQ|`4@0)a+~ z*%3i$Kh&tCLhTDfllZ3tG%-vlCgrWc^Qn9Q$2=bG+As)BYfRBqVPTptNeg>my)VTnc9rNfg`{8#K%PCql#VSbIR>(5>n5=KqRtaOs<_z9r0{9M9 zWB%kUG{hpI{SN6lzd2ka02{K$?a9t@8Fy{xXc&+z83y3SkZSnMWgN1(y4o8=bgWCWRb%2Y+*y8RGKSnAmL*|LKm>g$a!6kr=Kf;~V6P=jkj%QK+ zSaHjl z`-9~)(gfUEBDJ125X0y&@o5I0p-@3ol zOLk*Ymd@BuYF9+dw0aoIr}#f(n~c(Fe1)%8pWIc^Jl8vOzkMY}Los@4vAp!YuM3Kr zzHGN{SXgzrWXHGa2=* zA;>lmzEa~t1$JjP|F{Y=3`SGLM$B6o zuXMo7>GZ!p{`v8rAOHKSOR)by^FUnn+&y3kA6eh+;~rIq~GDq&EyrH!9M=Ll}`2R8OE&;UGOE^6yxjI zsbA8^np*UxvmNpY59$ATF1IXMRuG8(-%<1gx|fQ8j_1yQ4u{xS^-~KgNmF?Q5k?CR zrl`oEOd$AppGh-xL9&FWslJ-Jg;jAxz(%0|Kg2hbJ|5_ zB=h`lJg16kop3f{LmAsCBopp^UZ|Hw!PYC2aPA91dH2(lG=9sTVk`H^%a_7zyF=xq zAc%r*#VW|S21FgVeL{9KHWyQ)@Q93tA};p{2APVoQ}i)ppV6rcT40#Y9ZToFlwcV4 z>aPVYa5$@)qRu)R)MfkakVmSb4n3+84`|)sCJqqED@lPGP4hxrJqN==yz?8Wq%e=` zH@6~v7@$c8=6ZW|4{SwBZC;w_ve!ZIuD+v)b%n)s`!gt|6R0y0?P=YB8g>h1RW=oR z7*>Z2+}U?Lc zt)UDGRyh#2wS_p*ql{_glu+5Blc<;{xKm|%-d-m@;;eAcf20(RSo+VQ`Q>HxWw8N0 zsJ@H(I8G*eXSCB+K!@Q4sW>Q5BL&@wwMwn5)$UPnZzqowBy~E0#VQ(!u8M$yOP)2R zH8R@ASm3hN-LNVk@!YqKx?V^zLBUFKzPY^rp2xw~ZFZfoyy<%%niV5ENIn%xB|$?` zPmHiibvlC)FB4vM5jiXhtyZ>BMY0yJ)QYL$b-j3P?^kxVk}M$9DtHo8mz!iImh5P9 zUO=dih*A~`S|upBhg8J{OK}RVToS8Lu;Y!WB=+08%;SRiL@*BYE9}^ zUr7yY@pUO6#cF2zKrPwFRm+n$%%HAc<}y|DN9qHeqbuo5Nd|^>YQXgiZC*<1y0E{M zU#1`t$8h3-%ihq%<4Sytw-E{GmOQB%hw7Xo^Bw6>`?UET)UE_VRRe6eDPOG^(V*i6 zdp96;w_$hk?k2;u)Q!t{FDuokx!+C|eNhhe$E`b7G%C`I&Q}YTQ!VPR3gCiMES(i- zQI~0M;i3kdTO&pMStCxPbvV?;+lR{E%#e|)-i806kk@m%x~TE?gnI}9WmEbKrwQ;Z z!%6-czA`&3z0-8cJ%uZ?E4wFO&B>vavaXp~uP57@cDko` zs*j&Kn$l&oyjrE~Eqg|X%6!oj3YF0lwiv`DVDGmTIXHv8Dhx`!>^)?!(}&U(0%f|G zqiRc?3WWsJ;sw>v94(vrAN@u+bKvcj4)=tAZIu^y-4}cJRz6t46?{_L2b=ucifZoMiFRKH@E&E7* zT6QtS)oN2%2?tp0n6ta};FU|eq%lZ4{s`Vg2_5TTr33PWF#+>U{F(KiSb+tT!J8KW z#i#H6%EKywLYk6?mvUGtD-4zT+P%#|jb7p`ma(D329c}!ynUiW2GW%0lkycx89=Kf zzP-B9Nr%XYh8n)$TD(%Y@UbL1*I+kf{31uj?MU6NEF)tty+0__+pf3qwHz2R; zJVf^gUUMRj*1>D?-1+Ei0zDh|;oFb}-CwIjzs<;pxS9uyO!M|)Ff&4$2^wsF4M2sW z5{R>kmV(|yw@gDD&E9Eko!t+Z<^2NNhQiWlwHdtjB*lVe9>TWnVxsm97j&XUh>=Ko z-BxqO08c=$zlBrB7=dLQ=Exr=SrISjm0pq4*+R6*%!YJ#tKkFK86{*_ShEQ5Mv?Xa z+{^~G98-xl7+inXzJ;>ZK^M&gb8&-FS#L&nkI}K(Ns;hAY*=6=+rRL?q4$DUdHF;e zGK3wi7q1x9K=a|ELqS@Kxhv4)bl9DVFee$B%<#5BnCvS$IdD{6(Edpo#1tV>y~!)q z1iR3Ckg!2Z0Cf#k)W@Vf$`nb~&14E;K2;T|Nx3*kTz#%NV=#-y=tJeu%3V=NfY{Ki zxe`$Bz0w+loMvi5!#rRF*(<9IR0b`PfZ*v7LZDw+B}X01nc)w*He)oNwo!{p+u(Vq zF=Bq;EO5?;3o!T=xyD=m5T z1py^aCJAGl{POK?^@~E2TEnYiTqkcVliA@=;-YTRr@B0893Pc{LoqrCa){9X{|S%0 zPStF17+wW_Wmn6bI!LycYc&uxBNQvUP1Mw=1N;{Qlu8P8+qkmrfPX__Z)xL5r;-kf z`LgyS4ANTKJy3#L>A%q3f?U0NeoP#S&J8T%U%Z0j;?E)m#*R-@wNjN3G)8ObGc>N zl7c{VM17Zv2+V(CO>FYiPc5kApz@5^dYHM4E^oIxVZVm909+R)SNy^i=<5@%`_SOE zmlRYC-&N$deZEq)d`t=Rb*I5vl+E;DE0A8uq#I!zvHrNCrZ;(6_yLpWSPeU^xs$U5 zZCv%=fUr1ZE_j8k-U=E|fqz>md6yDAiu{9jwniSD-#@aTozSu?xaX^^_oQuIYii!9 zIMi`IVWZ+zThbnsT<7Bze#?+m2lywHAW6Sb;?HRx{!*N zLCgD1q})I;9OW1A$Xs%vG_#46yRg-!$`PMq)X+%)^Yc^&z&s2&F;%Cm#A+8KM^>_K zE=Vb-Zwkh@pFSS|wf~4n8g}#K0@oU)Wn3v?UCJ3?6$bM|dLQZy> z@q0W4tRZj}biu%!pa=3y2L?HK1Ti3}n*^nxV}7BEf|Ih=at-1^-pFsRr9u;a;fpz7 zoTGU6+T$xb2?jW8nF0IAQ!@+Ju$j@3^a3_-8}W7`~@F-B0SVqtEFDg|u` zEja$UdXERQpo`MSh&G5fuCxbEYfJ(Lvau2l(D1xBR;DSczb(@UTD6RDHJ^aluV=mWLjVEz5IU@#CjEf|o_Dbbe6z)bc48O|ycioDQnU$r=+_J(Xwy zpbcuuCWS%nv8XdNv$yR!L`vqqRp~RU>2(3sNoTIA9)Z(EVT&Fvwsrg=wZ3Q45y-ul-`y8WkCjkS|>-2!Gh; zD}Lug8OK^TE&G8;AwQVc=L#mZsp5ND zX##=W20Y7Y0liQxS5_K-EknyzM?PV>7ch<0RfKcCbQVtM2ekJj&tz|{G0zsx6RJ8C zDQ-)$12KiA6<}SWW!QmWY|A8pt(#hB0tUKn-)}(xTJ#nli%Uvrv5(DTmM>jzlYvEH zwe}n9J=B&$s~AaE(Cf~X&eoUba&?XZ{cbS^0W|ZtbM;gOqGe}_g@2QCvuv>vJMDtv zkW`?ZKnZ)Df8TkwG+rzi!W($=1ZC~qKfoYOjyFFy=C9Cu!VUH}s#<#*XnTlBsPgj; z@}^qfTuUu3t|qHX0uHqxC}^xmSzT75U|!3%Ng4p1skbII7hs^3o!?`hv1$1P`*3pTpi8li{2*Fg#n(YeGud0Cn-;0|A*kfa z)BpHlYeNGmr^j}}?PEEW&9&ay6sNB87`f9q4@f)=M^pni49|HG)J*|CvM_8=8snBm zc%}Z#7z&~+sOV)C)IL2ChyAV#vg&6GN-5@x{tt8yR&@;Fxl=Rov>ruWTMpHJQ8SUr zg8E$5Wd$hgNjFl8Nd^XhC0MgB2w$2pcwuXK9~)pwIbG4+i4_FZa20^$HFcFSxLQU9 z^>Qy{VEk8D1-@I*I1#a~QBypH1n;*8Te})2MWl;~JY%BBz%N(@JxaQ`K&8%vt0AGR zLJjTg+g8s&(87}_??%^1QArCx6h-Pl&6bJ3C>T~gyyoi5yt@M-84}>1FKDJJt7QnU z`n$Sj0$O{p+FGkN_53D@H|!Zgnp8xpdxPWA2(49>BsWzD)d0(K-oezGK8#nycIT zVe6LnA7Ut0X1}&;q~$}cAB;?Lrj6B20J_dIILqZ3>a~t;&I1kBY0iPL98zec;N;xu zF8J%!A$LCzq}*QCst&?x@Fa=W6nvoBmfb1bF>*Ox^*TWJX$b{lndK zL8k@YL}B+EU7i}Vy z47IbTv-0k5akotKFIqzp?&15@RIPQ*Me3JR4s%g-2)A)8U7A6xsKh7Z%K@sJ5yh5)C>Qi}QRN5H%s2k8h@_s7InW zAoH^W8;Dg(aYg*hZ^*=8QK@0y;FXdB2m5ngQWkG*bwkj!WTb2cPvU(a5DoZUDkI}N zdEZSj9Tak6>*tX%+QV3~fS!=JWWDg!&z%nGzT}O&^YY(`C6%{irO76Y_kW_x?7EU1hM}oU0`}2LN%#0AU! z(_OImD2gkn^zFOsTQGWUMgke9LCFg|fjP^-P44uIzC9M~dl(SxUK%&VUi@8PDJfLw z0-ODd8Ws%5uCG=f6_4d5n?l;K5}`%A@9zB-D zf|*heR^eq^8C-jgisyypsH8Y$-%+*wPL8g-N&yz%KI*}uR_Pf$eIa@C6*#OCmDSe~ z!GV`8V@3f*WHN^Z-DKQ5D0!G*S0S^DjWY0&tZTzG`%;PvV??b_U_v_kEJ0R+x=m#} zpk)FPf4i!n6plK|)XubCwtf*JDG}JL zaP^WELfT9O)DwS8pPF&D__A<4!PQCEO&+Re33P_bs5fu+NPEMR#`^YB<655w_h!di zmJ3yU)Q`@ST3~Cno!7tF z4^Vlnp_T9uuefs4oYUa)#82ZB)LPhm|A5#Ez&IK!uHaz2JghoXOjju?umYl6&OQ+P zYv-I$!_rD3a0J>Y8xKLM1Urwx`!M)6Phrbl&*b5wq2W@!LR*^8El3r0=hw{*@24hz zXQKZ!iq4`3EN&-ssTQ}3OC6n4l8;Kd!5M{rxI6WVr&Qv+p_6e@r}`ATdInEmR-j*| zRr^xs^j`yLex>Aq?+WYg!EpWQY`mZV`Pu4iV3oE| zM(RhT6A&LAvt-EZDKeWt-+No`=>e6Iu36JJfvm8f=4qd3fHYw(I*pf47Y_90eGeS* zDcySfyC5Ih~YG4TvV<+!{LA(~$zo+SsrX(d}d zKbi$YVQIHA>=30=c>lZk2Ya{qWk8Ppu_H&qvRSJJ#C z7}tW^UdKm|=*%yz9|0QSv&%B+I#J0j0-b^ygTS;fzx${(5g~?qR3n6$1{ z2KIHaiMx6x#3gD1ArQAL>_>19p4_iS{4Bwzx~OJ2+4~YUG!9DnWLE(wMB)Po4oavk zY#jMt+7W0Rdyyz*;|Rg4R<5;bs$8c9uiPf)Z$WBkY}_-m=5D48VNrum>vy?v4#EBi z#hjfMh{1EIXr31vts0$f&TWt!rH{Uk0&(iilOQ#p+(&-#{g@!HUc4HRcdV}8^oQm} zgkD{`2+>)%T07Q;+Y4+}%^MZv1>@6tC~%eJB3OWrBwLUW$s-BWYtu^yGj<< zFYw?_3$CUm-%B2ArEn7=CRu_|8y0mIIPS@x!ppF+(-hG_B0)6z*sPF57raDE3_iTv zOgL_WS6c0D@J3~D+2=1_R{sH6$Rp0Dx{vY*rj(lt>riTB{{#Njk;EBj%sqCWol z@C>arm9A$hDtqFmvusj5`D|Xfc#0ZrhWT3kk%`x&JRw!2>=t;CVS7~7V@`C(`sx6(d z;L?5tSY=P$+b64>s$NeBqI>|G-Nm(+Fa#kY36A0b$4+ns;!{Y7j-4@@sO_-A(Y2er zR|-c*p~8@0-hbNjN{!i9a(c+Q7RxrCui`WK{QM^#EDFcbRV|2X2|U0qZLu z+qTXD_#C5UNsP;93#SKepF}6-r;+$9g1`!!R#=XWvFP=})aH)A+>N~jB_KT4L?mIx zUHb^pUsKN)DHd3ES(&&pLer(3AO?(*K&~TD10^9fG#!S;#>lg_wv2C_2x3PgP4-Yk zy1#X8Erp2`o^55iT*+&7`&F`AE(E(hC@wk}7Xla1KZQ?ehr3`clM3e><`rQ%C3p75 zhGSxi%FSm0uWPeh9b42ZTy^TdgFgunpwr7l=u<`wtF&`@LjWvnsvw^(2(e!f25q7X zm1n9=%vnwpC2g=yfjz#(LBo$u_GvthiI2P}66Etbc~bgr>uj)`T`H*iTUqk?`c7hk zK{uTz^P15DwNp+M6B4%ZN@<0~fEc}U;-#XVn})cps&E^qH14RoA5jw95MT{ye!i&w zhD=&;0k6-pd5C3MeQX-}r}0qp4vQ?91VG>k1cM?~HITATy-fl=S2w)%-85i zu=KFF7Tj`Uyk3GEL6w`9P~JHW?ECX+e9BWF!O1jQw)(!JG%eI=jLRp3ekD(D=XbuW z-XWTsV`pPgr^nG36A+(>QG!HhhR?DD70Iv>PXlDQ|7V&t!QHuTbUKzMS%M+*wMuMg zK8ZdFY}ST147`=>5)9sA?~bEF6cOwuQ)>I=!9j$|X|pK|bj1V&XwSNO5~6rqJ?Hqg z!T*^qlN`%(9f{6!6}bTqsHe1yk6K3!YX6g>9perENWk-2h))e0qcH(<2U+I z;7Fuj|Ar~C6p%`Z5ra3**C{T2FBEg#4*k3~zhC*wOgcQYh)#9mjX2Qw%F&TbQk6oet)a3-2607Ybd<>0Fh2132US~&zX#XbQrhY``0+X^BHe9=!vkldJ zEjkjUN^7)4fe>illXrScbZ~w4)8er=s#rOe=Ds|sANVbB&xURUaRN+N}3FsJQY|)qcAoO4S6ViQP-2i?NqivMkwDAoGZU( zvfpn%HQK$oUI3zg6lktfHB7P)Hi4%adEW3g#dVz8P{W&>xjIidE$7( zw^a!zDi0qG>4Z07@HkGdr}8QFlSr-mi7*ZdA^)Z#cW_LB3A>7q2IW4QFS9gq%< zrfQ?uFyW$98vcmQqg{z{6o+Wvjxj%RabUZF!vvnVaYSYI^&H|{xgABuqa~xquNUt` zbTzNh%e(34Dv4?s6cXGnB9X0>%QATXu8$56L*{bRNdW2j;MdSaQ5!0o)Brf^p;h)+ z21ud0;3I!mqoimkF~i?b01(0=}Ymc0)QT?F3K=!&#yBm3dUJSl#ND=dRI9v*b6r{&U}&^wQ=f zt`NS1@yjMQ&wklU zS)q<)!%gWd+$_pa>m(UBli@yf!yUAKSH)?{pY5zQDD9X~?ZApFL3;V8^9Z3VheUhS zW6m<(UfrUt;aodNy0O1a19-ibC6qtYa4D2&kx22zG#dE$xsicN@wzb$Y3cQqUPyw^ z;g!5*?*IIo-1tYzrkCM1cD+S8 z2~*7oY%4Gu9!V>8O&f;bsWs(briFj?Jdbo6cF|0_las}7)+*Q0 z`{Z>(B~|8cu$IyJQ3iF;RtzMzZApN3_b#E~k|{I++GSW@U)Z-4+J$bN^#a}XPhnwT_6}5$1TIKL}5u<>d)X{`J&I-ZIZ?4t_#^J z_unwmU^vP*lQHqtk_RKZW^M)^H=m1}x0xgX6~joD;HoSn-E8!V) z)s_HaiSoKSM{PopK;bc5IS>OqNl&k%8)`1aI*^5ua@BOm9$>?Y=jSJ&K> zc1#Z6_#_;64H^wuXhS@7YR&g(zU4lmss1W5I|OOt2`&ZWvT(Nd3J!D~q!k;qG5rli zwO()5-1&Rfp_+D(ABSP&e2zRDIK6f*jAIZG*jIyxP>tjBo;XazlOP(h<8x!6LY57K zw$u);3YB6~Qn^u8t5V~cv1K@%wsBTvz70K`Ie&sEt;5S0`tmmQ>`PTYZz7-NJtoe& zV<744j$+t}mjo6n#|3#A7)y`eKM4Hp0A5Z|o&=HcwBVi^wSAbch)Of;2EAg6Hcc~jCfOe5L2wxudu86E{z@!N^ z3Nm-RYf|slH=TZ#X`~+4mkl3qW2kvBWs!Kj(P0vxqb+(8y^dYhIgf_o7C=f1!)@4D zJBUS1q74H18CFb`_REg=1>Cnfkw|v*xI6n z;nB%URP1^`iPPwr@=!2u4oULcy)z) z01MD*Dvg$@_u@cGnu^ZvP;$BObYrMiCoKfidj3|uFF!!7GB2usrn)y5Tad3AE73xq z4Lxj$fwM$)@}jOSK^hHmpnvoGGEezv=A=8lm%8IZ!%F|ak@UpP^w_%hQlIRUozh8U zGKnp+AoIszcU!zuLE2~o?C&Q#+8^?M(JfU}=#Q+82DM)2#G&3h^`c@^aP+#viPs4s zm8iyzlIB=RTYbl0rP1huVyRnweZWomZH7JGEAW5kD%!DEAcFvSSZLM%8nQk(eIJy> zUVr69qxq#(=ifpx-VZB?^^~ImUOjlmu8*aCZ`bz=?{y*7{#co!%Gfw~G4+N6sGhf~ zBzfZGLNpZRGd8!zF?~J_lwAEjeaEri)$b+_%x^W#%oN1rpp#TqsoQ1TD5{rro2`z0 z-`2Ni2&)6)QIAnnT2zrd|Ic)pTuZRqFm&%Iegf^IffS{9oPQ1$E>zFniCt_B96;cY zM2LL`RW)IQ2&)D&?4Ua6)R}TZYgJmKwhptck%VJ%#fa0Z`Lbv(tw@2SAU-5vGA5fV zuVAT80pQRXZAv#^Mu)ROUuXXxYxw3`r`+I%#XGv$tXYGGngF=?Qi^XIbPQP#3gbl{ z1}_|KL;k2EVdn2orZCe!Eqf7C0fU}icm!sex6?!uHc`C`3B+S8AeMOr<4kGg|3`{P z0Txwh$kmZts}4IOK~q=?&~O6Jmf<=bkBXcVv1bh!s^NW_8NneksR zlr<@R$NvPv^ zl^bH|GUbQj55Kg45vv%l@I-WOu)+Ew3Fif?uGd8f1YO+<2xgSlV$5NxdP6R7Q?-a_ zgw~w8ZxZ6cTW8_~)Z(rKd?R0pmU%_G*WyXY!~zOqF*=zcuNC)^C1op^ijT+MYqNf( zrGY-+Z+AVJ6|}{HX+?7m4U&^eVF--Fwl&}#4%T7L8Iz9bz+v(N=*dj<9BwaP%`<}K z1oMV{CYatjg$IL}EdNhk>Is-2WGmAa`)!Op--*WzN1u9w2OsxG$Ix(--`)1-a+ac) z@Fm(%;Qv#DZTlsrhk??5sqTUV^}?w3Hr$vRiyF#dss<@)812PmboghXX2tzQXeW*n z<3Rqe8PjA@yIZH=a^9S=SIhj8UMKU z^cQMAotszB>ExV1@m(bTnaT|~@$X}KVpvFky^)sA%_KR?>+-qUPr-rYQmKR7tZACx zz1<3%oV(2Iz4datys#{H&!m;sW;9Rc(xTf15ArLE7PIkz7qwjjs_+$`N*A4|7gnTI z34gNcn&Ir$O1GS;3F&Ca+p_Fp&r8W7Nb5rl!?d-rsw;QL9{)7Zmu;t|sK>`j@*=%+O&9Iw`;J9xJxKk^6YA$;*lKY09JR5D0$8nqH(<5*jswt;#&P1O&4H`Kem3r4n zORNnWTSlnipv?+nGDHoSKb*>JINmH8v^6%|4skLRycim)IsMQW9_dgFm4{}PW{D!) z;%((r447d!6NhL74K!XEiThAG&|;5U-A{(mXgX}!kD*VgO81I7c@pvV$lL^1g}Ctg z1sT|QA@9sk#Q1qbK)`po3%SBsE+N;@a#9WjE2`8e+q)jg%N^Y{laM%kAXw+ID@pb^ zZ@V|}bU9G8F|w31Dj}L5yLNu1CE)<37R%vE@^&?hAM}C%VE`Zlkq#GdxMsre-{ zaDrBvE?o&M=4HIh8rLcWcY@w@m z)(6ozF7qt%x$6ya=4Ur-L%<6~P&pRxD=%ib3U^hz|vEOoJkU z7HxWS?HV-=k-p*Cm~E*LfKn+Bar9O1a^@nLBmk@hwj4=cMJr|Benq)$c; zwB_ig-RyNYx@#4BHZRXV59#7D_0e@?Z-=2Pr{1?2aN*X60julCJ~7V3i2BML$8<+< zx4w*C2cu{KM#{Cetn8e1q$xW09OzAlF1S|*&+eMGk-7_bP@`<|3M3s780M(FXTUNj zr~pj>q)HP^N{F_ELAqx0u1F$8( z_(KfV`rSya(mzNJybcYXB_kRkUgh1w*(iS-x}#>xT}!{%#d&x?yGKMxgAw(|Nv>JT z^^RtQam?%}&V+(G^eS`lHGRnrrYH+J7}2J=*K}b9GBbUJDD9kSSn3XJ=7S}^?e3=z z3=h9oX=!59mv&r@87sHdB^FH$LbUYueCkFE8Q6x>vEmgoKB}FViU%@Qazjgjm$V)} z#Z(WzY_)>O_g&w6-qW^ss&iNGLFi4pnV5z472^?#HT&(sXddKwPX@-^7%@FPoXzcQsM7+_M~dm( zU1mtr;olo`aHs8D5D_(agZ#_wbXiG6&hUs%49;22fjb^ylo!?2yO#$6=DVGRXi%t5 zfkt57*-C-94o=8}bDxtJC*>8l=@NkIZ)zl?t}{>)ki7rDc#zco{r3oarI~5!%hI~t zo=8T8Xh^r$#%g>yU_t4`jx;HX>{?w`rtZ}T&pkJy*O)}&#IT?9aXQ};qQNygL}Q<~ zU8$J!*4tepD{HB$EJzG^`NXHF^<6s?1O~3PsG)0sahu;!FdR3azO%iJvP1s#Mp4ZP zmTJ8ryJaur)t-9&pfLned3SMy9j}RYJ&i9wq-3SmL_59LBol((*j2{p!DcfGL@tQZrLYNt6tHC-!Wa(P`VQjvC7UJEJL244!| zO0olTY5jGr(;ubDn z*3N|WUbAB=MC-pqSJ|~>DGdAXC?ONOjO5cByirEUsk z0BJu+7tHt@%fpwGbp7aCYT)X2`|zbZh1+pp9zH<;6aYbDJMh-`wm~Jgn85j_HZwV~ zCC*Sv!CCgXJSt{>GUzw8-PwfQFvO;$^#tPoTh1P*G=K^kAl{t_3SM*MCgkl&Lc3fm z0`x^t=AkxS4x@TMV8;Ih$0v%Dsj)*rCUG@T`V74pqzkybBg`gwW}GVngK#z1k}U#( z8KAVRo|GNqjwDW1%0qW4&%`8U6n~YREDyUKr=EfQn!pw~ehb|R>D99kgYsV;HoPMM&23-G3K?Vj1>p5J@ zA72_!CIu@yrRFkpv8dA8k&M_TB__kzp;3&8g=sFctRU)8=S%)#EO103ED@lui(wAx zfqpq-`Qq^ia3JoC7&AUE5n#QLwF|$_-5PgrC=bCmbeOW381yf%JURj_fOxq8tHAGA z%9-qqHe57|&5+bF!4dPpJBYQCzHGzMwIw{C8?{vviIA16azcQH%d}%%R-CadD>R=O z=t|wb)Eyu!=#I^`);PETt*HjC0>f6FhQS$37Cc&xJGSYiSt@(<9d!o{?^e?ys0aiK zk>X;M8`^4@4V{nsssJ?m3f{vjMsQfQDd-|NTkQ3TUS0nuf@pgadH*Lsc{I zYMjo&NiM^gcK}j?u8s^V6hp2dMT@88oEf6rwA&JH;4-Q4is#7zi~z}?p}XpcYw93q zjieC!Xui@gO+{^3Q-;>0azMY@Ga8=7nY9{gM;XEcIN%U0J|Tdq)3BuA1VajP%BMy? zAGVz}Tt08I!>z;KU#AIr>~f3d&@fLE|CFk}+0P%2Q1hF#w+;6?p(AXMj$but3V7YM1FM;ZC zAmrR7LryY8avYSGYr?hZhF)YwWjGBQ1Jhv#Em${e2mn9RTn zlnaMl4vIzpF9!ueU)hvaJ1n~u$@8^Thf)IcId{RnvGQ`mN=@aaU+_RE@v760Yyya-oH@&M^p?Z5x2go2)FBIQM=&7)Fcv}q zELL5!l}clV9ak*CwNqBX7Aa;5nij>mXjiRLR~eLMpKq-7Dvc8S3O56AU9i=UzPV;> ziycT^t9i_{V_ywWM6lD;&`qF6Rgr$@jvwz$nU5i(SIiMn9=PeOJJ;r)o5Z2`&Y*j@ z%qaQ5UgrDiA)mAs=hTnG{Ds4B2J}-JG;C30D;n;lwYmL(O<)4bjJb9c)dsDbZ;`Ca zZ@q^1ZFj|eW&#XIJ)1iSn2gM~ofIIb&VXk8!TxF{tr!;{k%5~bUjai7SIqndFg^M& zf+%=Cw=}$=ClyDZ(8TJLVXBq_;W))7C5t;YLD<`|QyLMQ*x4d~PTqb_v#2`b={09vV(~M)od#PxDMfPuq;qR z1qum&u59L=8xJn-g696+(nZcr=whx^St1PHdLxZHD>t1A-d(Q)up@2=BDe9YtK5KP z)6h7blSO=8if&=YtK58pcU7twEd#Q?ukL{2a}q~)1eXQFVZdU+&3j-M8{h3ZI1XaL z4vCi+$7RD!ltxxkfvAN60q$+d-z38d3P-zQ+7Ye+t;xlL&LutKinP>8v2_$oJWTU# z8ai^8jP`phSTc!J6Xo1$&SQ<&{u{+GiH+{}Wp==*3eacH%o zk*^3_G~1crzUTzggK$htC|<6E6A)b~At@5dHAq zpQb(}g>fty9ofUQ2e5ngP1)U|LJO>fhSV$#NP+Y0O2V+YHh;(Wh3~!iZ8F=Gf?!?q zeMoa{6Bxl|1rBs&AaU+iZg4rwFI11qD%GQIY9vCg-jr}XCg;{Q$74g`0ar=Xx0>C}7|rj)YZ(0mBSM6&-SeOq+Ww&>cW zk!?{q$6jVflwcDuImH*Z#a>56O!Au)k$`)LD*8puq%f@DsZ~n9@#H3`lozJgxtK{m zq8#TC=q*d_=q7<^s37-8Zuu*bHr40AkoY*bqbo1TJGvN+^jnjOp_31Gybys9e=xjg z8L%>WO#)kFj022@w)iWw%y7(9;_iLqmWDy{7cAKOnBaXo7O5cX08zZt?ub1}Z!YZ? ziz~6YvPmm9nuL@!*nG4z65V3d0vhmA7Y?}My;o^|43-ra*`ku%yvVSRD}vFy$EF*2 zK@e)}ms{VZ{ZbNx=O)r~DVPR0fnV*H2+QR&*qW^OMLm<+V~0G>62EQ41@%ua;c_WG zb<}RP8TSaT9g$s@R~f-sD*tk64;)sy1{@j?1eJ;*0x*=@xWo&dhFirb?N-H9Uj+t1 z<6MPMx(sn35?7^ejl!e0mz_dxzwPRmK)afLs0UXMF!$SD!$3046tS0=zR@ zQy<9CD8QR(sioC(rP_?h)Hq~1z)o2R#shSzJa)=9hz`pUI8D{9)sp-;1Z}$Amg$z{ zs6*4eIZ>*Fj^@jL+it0jzFJknVg?$}CA#(9_eCqY_+H*7;P|oY&#+qaM~f}V$URXS zNJq=^NE-%EKc~b^89I=3YKr?zB|if4U~&GUs$IJVE9e(kvfQcAmaQ5L&lZsSYxRo& zW(mqlDYDI9UftFX(J!(lrMR6TFxRZ(ws4;8{9V_A17C49sYP@QkQ!~BcUyxhner`` zfv+Racm^2dpkA-M{AkE&C%65Tu|Q6=sWN~mdDqsWymnTMv$`SZWSC4!T`d*|Tq-G0 zstDzJo8HBF=gtdU<UW5I5jligY+p)QfFAO{sQ_P**7rp$xvVjdYbXtAu12 zu@zv#)_Qf2TP>vvq;zGe$5YLh-)>0Pldg?4-c!F*>)ChHV6bkp!Tx8u%ChaqLD*J$ z1Kr1FFnIqPYfGYT@|CC97gG#E;P(tWlYnW9LOfHmbz6nVQ*2z=TAHcuO$5=#yPynU zC5-g#uklhy`_3J^os=!>%I=Yj7CCfDaPH4;Q$Cbp*-GCI{_-xOJQIY=c(tllRL;MA z5;-QXtDs9pG*E00at*erty>&R6Lm;9EHVo7y+r8rclU`sZ8jvK&D|AQctQ-w_MhEd~AX<|zw=-1Pol{mFRV+_Qnc7y%g@ z%H+UyaUM55VD*2c?jm=^r?v#8m7C&x&Oe~3dPiRdEy>nXR-F5Uzn?&IFYj=yHHcp`ep!|xz#5jlaYh86C zjMgDXDuMw(XUoT^OUlLKlP-7W@2hb#u6m8a;9(PB(gR(gH4zAP-<5B%OFv{hLiy_+ zv*GM{kSS0QovXW|(!>3SSbR{7Ks3ueUilNHbj@e?vNl_ma!K^-mE2^Y;e&@~VO6D4 ze7{$cb~D6?d+Ih-CWkKMQBx}@ss59~1y%=^tX|eQ+Uo<$XKinVx*3>}wd z4}pJH55HvU6gwAILiNT;En;WN;2dtLm`^~(QwzF|^$P1~Pi(OlawDY&wb-3Y9@JK^ z=6G91Rb-3xUrvTJ@k0est#OyS+&P4S#OM&;KqCL)T2O^@<~qHaV$N4u8T_$AZ|zy) zk5&e6=&qCBA+2=RY1dSNO$R+)K)m?%16D>3117(lX*vo+D}}%C_SK>qJf&1O777r} zpyzn?N+oS3|GEVK((gj53{0I#+nF8;qd{~Uvw9U#iW7aZ<)W)lg1k7&6$9|V14jjG66;Sr6b*$2y{jT( zD*cOWD1VSPK(6?0Ml8aF<= ze@fZI2BEtU$J!==UiKCj6o8k!^>|^5tBNV` zkI^Pk(vDOYF&ji zfegAlG>xb&8>GzZzI|@{(k=f-42ML04my+A*lX!ZXWoLm2|`&+dt#J^<$*5|NGs&gdPmP zFQY0i`r(_%)xjdyhsg_0&VIkdD0?6X?99z1F#?Pn+JmxDX{0}DXk$qE3IFLv52PQ9iP#w z50QJhs5xM6OE%#{&Lk|2q65+bNE;2751SkbkBs{g#| zGCgt@5wgs?M?L8JG{_;u%lXUWLKE5(+{MPfGp^HtLk*B$V2>2SRy(TP&ou#w#F!8q zbs(rgs&in_Ck-rkQ9it?u9UoS3> zN5$JqDsgW1Cd}k_wJ{@VwpQ}|cU9?QF*O=7xhVo2p&UBE2LQ{tZn2(TQ0hi`J=#?A zjGo@T)g(g7+$_0Jhy0F`p&Jrj0wkPurUJw`rq9RVM@y&;ZxKaI8{8)5BI6X6pv&j? z(-VsTg5+I&SP~YCD8z=60cRdk;?8$7CQ~}hBSw~071q)af4E48l)evP%X-e1etC&R z-oe3!Vv*U6B`cKH;An?@JY#lyXy4^wFdw;eRk^*-l3fp*@X{%t#KyDf6uWn|F03ylu9$&G@vh(O4_!y)3=#4A% zMbzV;6}podyeN8w2e*OX+9#5K~AzR9eAQGv1=ZnkZmkqf2#4 zCU@!ype>ZHyI388O{cCb(VyL*gb^46@l%_bc1H zvnKM*vnV>CbAfjKCA@<32r@{uI{G|M2_0#xJ$I8`wt^WwC;tlHnGEJ1Z@PDL~z z-wh!pp?IctYlqe=ovO@Jc1szIuXamGjIo3i8YKqMA&UO&mPxGYw8ezUIMfyDqr2qy zqnZB@lXmn-n>6`Ep{aRGW!=uCWiSyPcgBfsCS!t)1E^STQ<<3Uqfn`A;tN|Z}VyG&$n5p%l$Sx9uqcdQ^_ zo5L7Di)e~ra$!hQ1O^!GA(KMX9D@n!M?)4K3W`ANZ$L?e;Op)ozH^F&>$0VRS}1$& zUg1l-6pRkVn%J!#SW-wSx&8)8@yw}7PYCeD{mjh}Ui^@qe^QcC=f&Z!yTvTv>wu8H z%ki9CACaIno|^J!`VQMiea>$*)8zWhnv-a_w>=cxN-kZuWOIT_bXD6#E9@qQTJuQ9 z{7_df;c33tJ9*V>Oi_{-cxkgdF%Mx4q~zNSRDjD?V*Q;)Hm${=_N=ty1Y+p>iG zv)jV|GhHURcI7w_oqHADzz5V)(lQFQjvCbdC&@U$>ogMhdBfsU!(bC^UVU_qZOWA1 zKl7Ux5}U%?aeQdb>Y4i7AxvN|H^c&ti)xWY4a%hl-(_p?*mzFBN})!7&3?pbH3W!pB4&5t5D@3;L!`}`GI?>YVR zB^F`&$a+bwxmIWzw#>f9x*%`RS=Z?PrMkjZopC}Sh)yzHh+L{NAdLrxoj{=~d#11O z!tu~;+m(4LO{{iLS^Q3_Qs17{q^6AziwmkG8-=#1sb}?YAYJcybbVuVEz8z+Y}?$i zZQFLTW81cE8#}gbXUDc}JNa_%x#Jz<`*DA)TGgwcn)6xJJ$hDmPmo6m4Hy(mOqy17 zxR_>_|1Q|AZ?ocRFDrwNvcYGwq1Ogm+W|8~9HZl1pQNgBjn;>M2^~qL5<(IrHWX7K zKRyR=d|9eHw9-5DmnY*QQ3`I9Defh&nSyL~RnAlf{J9WNPhG1p#UKw>gfjPZ`W6Et zUp!vE^%^=JF*?HJhrcx=RIFFm(STcX-GcLQ%m(CIBPP3L){K;4O)mJsU4%moU6-BH z-lLCj@wBwX$hkP;;tVvef0%=yVu9FYay!Wh_B5@j#TG$&EC!#ZhvU*VZ#N^nc=gDn zu=_s+_ssV2;A-vf02^0H<7(~dc_i!XX0&C?GlWOjlpFSqndeq*EY79JE+!7i?*3&1 zX_~H60CB0tqLU8qHDB-Vc@fOB)H9gh-#AC6v;3`)T&XktU{voux@t2M959Za3mtRH z6?08|hn1}%4n%0%L4|5FS7K^@>7qy~eeoEy*aOnSD;7^?*8#o#(ay2Gcjocy@Iet^ z7Phq+Bo$U?x@6VeTH^?Y80nc^;+iV$Ue<%m$(S&0#KpzB;;aD z?TLy#IjrQ?xY3u}Fnz64u4tF;fy@}J)|4G|&H3hu`|Z`=$*IiZcH?`YEX6;8HaqO< zASTk^Rs-_F9Qvq%utZDlyg+I-&=QEK;1eiUdd@BHhY|A6Mo$*oJTdeBp=Gnh6(c+K zo&s|`$#9-^wxBE-+#jGM<>$>E@3tMG4$A4`DAn*RGQV6Ny)aCWDg*_0 zxdyBc6{jdj!Nsb{SvxPY56@SibG8VPGv@jRFw8Z_s_A-uu}3qXLc;pnk2i(J3FP5} zv~xNElD8GoN;z+n6Xw_Qb7<>OYF52g;2!^uEot^n8mb+z3CzQ6qI=Zw_p2%n#Q(I# z45m`%*sZqnCo#JsofvGDk5gG3M#4AMsQRrY0p2eoM}pN-?@#2bfG%4yaUSt5z*?Y*8MsMBD|%qFkKp)^8(rDFw}ZRD}i zq?}sTS18)HM9LbPTZWmnNe=PFYP0I`t83kqw^+!%o2z3cdZKym57KA!`jZWAg{0%` zb;g0o<+|yZR}F0lJq1^OSC3KMdx)a7r zUHi&2C1KEsu}U_w?Q{LW1mcB2JR0Xsz3Hn!;m_?D8;)(;il6vnc}sW(^z5$m;U2s< zE`Yg;4RYq7dsn+WnN)g?S)#i4f^o74(VmAEm-Hfr(-)FnxC{}n=&*+)<}Eajmif`oq^8U6K3UIBq(yKKX&mKNG06H9nd+EQmj7Lg{&ksDMF+(^d+Hy zRZ==rAw=|l#%{|`94pW?Q-X304Li`*c%Y7Qw=j%BP-W?)q}^F*)dy1JUZF#m&42ym zZmGK>b)R&e-npC2Kaj@i#UH_AGl{MeEVwo<0%ErR!%o#cmH(4=ATE`>w%IGF7725H zy_iD(@yU0{ut340nOiD;xvQ1BoF^M0)ATo3b;?!c`4&HY$o(!SXoumfpuTd3ZfY21 z!8D#GRn#akD0p)XpJ||4cHji9K$)q>)_A>XJ~vm5d*9{xA3B6^Hp=d;Iy0P?3-`IS z`4YE_a`Wc`JeCF%lqazkBe*Ql97LHlL-j>js6MgnJOKEaqs=W={Z=%S0YnG2+>uc2 zgo{II+22N7?4LegR6hezIuAph`n7Zm)itcy>hA0wpG`(s(2l**W9=)yyXTuiK zc!&ZO-4sc?O^i48x{&NbODi2|+nsl#yYby( zNq`*aMG1);w~dql&PDRU$ukY4y=qTHE{=ckp4~M);chJmkG^DDMy5q_BJ(CaUUv9s0j@_?M=5}m8X zZTUa1hC`}MVUgj1;gY|8tN4qGO)evZ)m>hILj*c#XAuR^EC@n|ex$Su{~nX}ZrraO zE=ppXN4MEPwX(>I_$_F|@sw%f{&$4C`)iNW5u=Xy+Q%(05BTtH2ZTW*XCs!iia z{P|1szAfG-*mu1)8{QPRwj_;kl0lQcB|9kI*zDMaScq(xueLQU-%S@CMe^d?P|+6i zH+1?cRgUZ0myk!()37~G-}N)q)4q)#*W^1O0=T@GVjN+7j1v^XpaB0&Bau)NYJ5z# zZ*KV+&mDQBG=TsSM;F&R(`R`#DIA9T15j|%)6JG<-XkT1o*Mlm3L#9IwDq_GIFPq& zXFG8fV$e>#RZ%(Q)tw9O9C9D1Az30d+)&H|8YEdGqb{c1ZGUs&l-s0nOJlyJccOgs zZZ8<1QiTH-RRYH~3B+1LljOO*a7)q4Xph2q5mA*3^*i>w3Ijy}&cQB>D#O#JwQk}{ z*48RXJ?*Hy7|$>*JF%(q??D1N*F~AexK;x!nL7~?YqOo8j5-LXf;zi{z(HEKXc=Ka zpC}zmDp`<0%#pZf>Lq_!pV7*@knjOe%YK}aRf2# z_qx?Yw;c2@ZJ2j#*&8Gnts2le?W3xh{$s&ZEMY1Dfz$~Ly~jJDW4nvOUt#1k zf#gxoXp2@rNww~!zl(Sb<8W%DA(RqW2&>wjn4LpR5hqTVo0!ieI5W*58#bOmSTY=s zRFKOy#gLGl!5LRmTr0Vfuh{|>L7BgG_<9lUKjmh&>;yFHS#dt@dUg#5M=Y~MfRt(7 zu!P^PDc{^E-~m3A5kS9j_M3vlyJ^*#gc$ZKX1sXT6qs(1AdH&Pha4Y51?XG>J2P4``|Cz0UN1Djdumw36f009+!%;(lvp~O z0IUD3^k_&=e_Y}kKx_fx4mw|)Tz^TOB%#B89J%&b*if*A-{{`3k$&heDUPY~*n>|J z7#sGaCxPR_R>7$HO{Xx*zyp?Izyd}KEEZ=e|CbT=(c|B!Q3PXm|9h#1_M^*$`2~xp zi2_lEGaY%3I52FlnLrmCNmUAwnxhvZyetfS)*KCe*c6IJdKUBRdLHLR(I*pI7odh} zDw7&s5k6CA&D4txYSlTct^`c%l?v%mw9JK$%Z8I$8KyKWlMZn;8?fJ-iXqxQ<~qp~ zdNj1Ra6{YC)p7kc4zN^~b~ulfef4JnWmFPG3Nf#iy(ZX^>JE1e-4@8150iyLv)$Ef z%$e`yi7QEtiv@`y#}>6FtQ!b?h7^iN=qofohtU2`67OU81o2st-@*w$b z_!;zSq%S|3vgm!q1!Jk^WzgK@oNB{9U$}*sOL$;_-32oA%ZaH~D=f>QDRN|3bueqJ z{zE&xYrWCmTEQvB2*uTZ2et*u5XL?Rp%=Jcn-2hDO2>li_dWU`HG}A#+Q^HafYa?W zWnTRQS+?3_Et62~OD)C@Rp4WF4$SPteD$p+Z>hXwzNjs|;UIkkzLJwiDvkESRV3Rm zI~DWGF#%M5S!o-t;5H%mvqm9czi_Eq z+l&7Dd_Xs-xD8#1`|UdaOz?D_M#cCmYc|M~QS)!G zO1Y1>>-B3ixn?a}aCQ;cx77PHHd)S)#<2aTk)c+Y`KRM=`?5n*d~cV)LfcON?;~t0 zybga91xRF{Ywc&}k+0lPZ<|9ktk+gYeC|uCz&AI>OO6DgDaO3%Hy&M|T?A?V;BEfT zlg-A5(%jj$@C=Fg`72|$3uCVf}~$N7@r17bEf$ck0U9 z*MpIHideehnUUR4drEcM&zHAT_{5}%LA%W9V9v-zDia`d3B0$s0z>$z;)j#hM(KT~ zuQ>~@LtZ>tDcr>2-6;5NuW4}GX5^{Old)NbTp0GP=+^LDe5;~;k^_yQ`l$QEm=@@e zaqKB(;;;L|NDiZC)o?QZKp7Cpe&Tg2ua! zhivD@L%Qh8)~L!^mL$MAi>1d#`f-w)WIVERb;Q*+J$ID#n`)IdUTry>kS%$>vvN*| zW7XOZpe-m549{U&PhPiqyTL*7q*c7@Vvwku|OP5%oV%SN<@-<~~ zx5rKs(8629wf*-mXE(t-ShCZt06Bl*A0%+)nx1bKsi&a6%DJ|HE9GHUGUM$y0^Oc% z{pMJFR69CwWE8(IUZ3m=*nY#9+CG@Qf1-@Ihfmg;Z-{ep%?B8vJSF30UGywm&rjY?y}ygcxroP6L%K{YLs_LD0}()r17w(r({D*j87;j`fFd9U z`8xT4dyLSr`B55eYkhD7gCQOJ4#Oi{RGaf~v^fmS(ut3g)$rx`V!*-WbZ&6-VR>2G zsMq8YwMs6V*5sdfTo2oHQzzhBWZdQQLvWj$1@?MG0Z7K*9=={*SBD(q+t6{)ua-Q1C~TZT0hMr$$lM@L3ZDlx4VPgmoLk^ zQ&@W2+l|ZW%l+&0WAEs0zT-U86@B@6?xqI_20&*KE)o{X*v81w$-!9P8uq7WYhVG( z#6&<(@K1-En@+&NNzm3!i=LLA;GYjG1LIH2#_`kY&He^on}TmR3gRCc#BrjyqyB_zMX&(;-=^uL! zx5H-V3#NAOLe^XRp=gzN-Df{;FoY(TIx=TxlOZWvR+TjEJLfEBH9{H$q!2RDNoiB< z?Vtt$Gn_e9m((`13ZxiKSZZ2&#Tc&bF6M#^aF^g&6#d!D-S>zQx9sA^0kf5kYTD$( z=MhrY+MTmyQm7I3Ty~}b3MEpH$I^_L@ zvvm#VKj^!krbOwO?gu?o!pb{l$@BuM6g6VsBOhgo+nyuH@S970r~?M4u>)NxN(;AL zI3L5ca36AreapT#ov5>QHZ{nAJLWyu00(ehp9q77iuR9vSy<1{ZIZ!8Obb$kJ=

    _jpE?2etk^69h`6hRL%-(8Z4o&9;M$15ctyNVUk+=D% z%4QovM+|u}w56&U1i64L9vR&GYy}peoH`j}D_Hl-iKn=H7Hrv60?JYHtMX`~=EosC z)w)E9yH2g`J_fotfx^y^BmuVuxNsDHoGLaHP|Ghak_u7`@{Ag&NT^2&^M^(#hf@j) z_YMb&StbB8Cfu)X6LApro6K^xa@A@yFEXstVwZz28xb22*rdoP?0w`y(AB00Eq)8W z5Tz9m(WG7pg60Mr)YvjY>wcAvLO|APcOQ0>mh5&L2rhxIxCui{S7Dlejil!x4*ahr^xcSsFC|Wvmq+d?8ORQh^JjM1V z#mq5~D+2w!mQj7zWlQ{X6_EzER-f6!JFgaIzF}rYW-Bfe@3cN8b+e(tgh^b`GxeU3 z_KZA|+S4t|XPwBrhcJx+z^cwEWKJ_YV--!X9yxd0I1*oV7&+v|eok7_hw6te<5 zeY(*(BC@vdDm#kHYL@iYXBLyv|v6IfWU8rp1-76*`Lq21H%JVQYJVKIU?n z!*LS!g}sUC;3x8`H}-CwHZ|2^{`Pu7aj?1mz>@9QoNtXzaQ(hQf(duktufz>xnu2Q>gH!`K5eqwLFpIT3bxg*ym`cnC%L0nr=d;m_)gK6Gs>`NS~n z#QLq;4TR-%Xnf)XcO|dyjh>HZgO8_u9Ko!#Ty&DTiJ{NN)eM}>b@h&m-D25S$tLz= zT=|D$LMTz+xTo?xM(spYHcVFP87GwAXMH#{T#9VzB%-0XqzQR3y+?66YK8(+Y#ZDp zG?u{Cf)Cj~FQzU~>PS>%>Wv%Xf~!ZwLznHYl0Sh_+DVz0)-#RmF7gHXNv)7XtP9+u z=QJHHo{d7&uDUK~LJ7l|p!W)nP4pLF`SKlZx!7MvT779DS0uek+gTjrjCw=n-{{1q zbgR)ZRCqW<90kxdrNYUaRtB%xgnn2tIU()XZ#Ua0fJPUCrovGA(Y_f)hfMDzrcGRJdKZOJbf;_sJW$#72K|u-k*LT7+DKiz4xm{P**W zf65Hj3eGj`1o85Emj%!%1J)rR3UCnYd8&oHWuZEdK4#ZY#3bx{VH$L+1P{`kyspY% zO!}ojX~0r0xJ5#(7AEvb<`X?sVr$tkyCp}-C!nKx8K6p%>jXF4D>ZSv{%b=Pv$@EQ zOW^Uze_0e>ZFR*a@wTUnsGI(xM88?XD9vjKwqQj*U0K}u71lIus96t*xv^&f*Uotc zW|NKB1?L@R7%;<&KW-J~h9k54JLHeA958LmV}kR$9n_x+ee*zbmRqy+zk=gf{%(<4Tupr+2X zDi3ZUfJrmhjA%g)wPJhAkq=WvsE(v3xH%MZO%_!SDm?sHjwKg$0?8Xj&H-sjuY&d{ z!11EWm1Gn`;~`i$ng#vh3v&oOzp{OCtO5XC5l`qM2AuP~b}{XwoQ*1+UY7Y7IpufI zv$r`FTJHm>?mWFJ#xel|+fb`Hg)0$!+z|o6E_{07s*A(en36#=N#Or88Gj7soqM$z zsrqy~7L#E})TC2R^kE-s?}v^&^+gS+8ktI|&@-PWNSSlV^<$zzkZ0s}c#qM8krv+! zD)6cz>{xd@>l|I*xi~03{?prja20u^W^eK zN+=ac${`R-dqQKEesuu(vOKbmAtJI$9c@vv&6*k2Ul#BL{inW-w6?7s%)3+C)s z)Y!M#1Jv(hvqvd18f$qfsyfxtCmMqF@*p%GV~&~D^tNph>w&YV8NG(`d-?FuHO)-} z`sShTF$4cG3n>C@EFyE(Ty%ZNLTg4*VPBlrQU+UcIJ#eNoS%&{VEfyZrKz(EJ1nkg z2QV@BeL5RgcU}Qldi99=F*j~{TrbpbKwFII#4bX-_BLDlMAm0sC1!AbII$ScdX9S2 z3NjjYb=xZ}*3=Dz-zy4VLb}ny!6BQAKUgAG*L1KxU-I z5%m<2M35kg*oN$J$mw^^x2Ij(J!z$?sg>XhOpfPtbW}>FIPzc9T?c3%Tx}m(K3;7g zy1$PR-mdIi9UaTGmRklETnDCNK0|%zKf%|mR))T`;rU>sqBrXsI4tD2h}5czfgC0d z-H+G%o>SF?F1EF|YPVkzMjWnV@Hcw(bzF2f@H+5P2_;DuJ`n$|rMOJxEoy!G@3?`4 zU4RMy5jVf}I2@1hf%oD5dzlp}Wnm=|O@j6*<`5?p{(uq8W;#kKH5;HXaG1EWl4On45)?mp36JuD6hijoh1i{9Fai5#TO;foMYTf?%O! zIe_yban>Nnv?}CWwl+)~dznuMb6|ZREkTRc-uE**9u9io$a&BLI(uai4bw&Kn45*0#i&dc~ zC6ZvgE%|9zIwgXvXwT(l)C2h}Q(i0zJCnuTAGoc-kxA$eol!taeXDlsYapDbrQ^g5 zJYe|Nrw)OBAnUFPQtlrbomcJ_+1g<~qLMSbNx z_*#J{4lKLte&~-rjKuRv`>=)$rY&bamf)$wp)Z5~d?N@xoCm($=X)OX4f9ftANsuh zS$8M0JpX)a7z9DjoZPy6CN?b-E2%Q(>VU!M(wD=QlDb#ZRj*kh+e6Xvtkt%bCN7Gv zu%uSgiVS16dR<)1)fy}W=x|8`hf}z2)rK<5tNn$rfc{c+VGS3 zd7R2BO96sm6j53uBsjz#`PoQ!1@1<87{s%%naN?SVsY9@(!^Vo74!BRB30o|;&RL! zl|gXkZ1Sip4OG>@E;mb|L}Z^6n$y^G7XIS?_HV!O9>95}cJjobn!Q9DNS|iV=k4Dy zOZO^PqTnoJEIX{DC{Y5k__fA&iZRjlT6FBXW@4w3#}&+&exHN`enS0RhS4DRBaps^ zOlYNJiM&(;lPKpR6@8A$@jFTw*^3Jq4Ng8(x$&)dhkVf_ixLJ+YPxW=<%(H)O9qf3 zLij>7VyDzY<_et$5IJpRoB${%7`6gIEvMO(EJOOh1k`k}LD{&4=yZAo%YY>7Jaa~W z&!Bp+H4TuS!7ByOBq|EIALmChCkX-v!C}nOFX`XSA*(=zJPJ{RN(tfel1_wmjv$uF zYgP+&@^X4zR#ICW3P3CbzmPePF?HNoQaBmW^^W1H@;V*6NA=PXY=x0#IcaaM1_z7i z3O%Tu;-Zl7Rrt1|je9M@WI3^HL_PS1=Zs+vD?4XtVBiKh>m1##AIdSy;5g*glJRgf z2B@&pK_|rpc4+4qVxV67q+f~36QW^NekoH>m6o4*ilUYgwntD37TID|&cJR})grmc zH^Hj$k5Kl5QM0b@Ns2o|SDP7uuG)ce7pB_}QKiUWRfC|l^#xF!uMk?<4Y?U6Vybx| zqNyM5$*ZX&a-N#iIyk{juIdeuS)_uh?hw|Q2BO;0FBlK2%u#FWi&}Z;9|EKH;7)u6qka-pr|B&yBU3f|X@MUtdkexz zJWaICEl&z|BdTPy?UIG(e1=dZm+60DRYMGxfT~ekx73bT_U6E*Va=3R`rfQ zRA~8$7;VwDjvH0qOqkk}kfH8Fwrh@37Ml}NNmM3RG6$H}GYZ$&CO5cDsPdL1S0(5O zh{Th+4yqD^&=-zVEHjm+2^p8F*3T(S3aU!yn;%kY)o;-oFIde7l(p}Ut0b$M%BwKu zv_;q;3!+t1?)w%~A{g9<3WfT8?3ro|v`tDPNvoDoK|Hm;b_J4MW0`=#y5- zN}e$-2SOOGQWhbO%)%--K_b->QcgnGKm=tZYrOocY?O3uT3pb?#w{Yk${p;o(~(}X zQroBpj51Ou?+%;<7o?vBIOIN#@;i(&Mf$HWD8JS3@Q8x6^wKS#EwlP6-O55fhpZUc zXpOUoeZp)9`>f#!hm>VQ`?AM9_^Lb#v6{QRp4wECmGrvjcm33Nd6=W{%^1Ej8Mn2w zUGs{Ok}AC1W)F|Gvs3d5(<2+e5A>=Eo(=xxbN%Nw<0Ptd~te6(MV53LKCx5P2IA^fHw?kL8y)Pkqlp zI4L_qI$>3HI)^_#AlR|S9K)|5h_xH+sBoJd1uO|GZ4g zcvh|HqT+Huc(2_kTM#!TSF>Sspf&&(Ey{mSDZm#qw%qyE=%rn~G1w{O#1&%X(DrBN z!)IkT?M-#JsRQ3e$E3X51gE6^{{71};tu-Tk6^#+ntzY?@fbby>L&L7+;Yn5{hIxD zt4T+$0uzy8U^q_BwJVkN*HmA_JB@oKQnH|ccb+w$u25STVF;Le*t(qG}I(0teCM(-) z0BOBu08V53`yoCUQz(OwOmUD*5sDFjMCi4~*z7VC6(kAncg&v@+8HR{1R~lFaQ?iB z{fr!_kVFmbJ_K2#o9jH9jcGBF>A@HVZWlF>uWg$`O&%franO!2#}tuI1|&269kfx+V7aFIh&cL>W5b1&0ga zS9N7oCsHoEsAE`6Hoxx9X0mxaU-#jAK0mylKVBOu1}dP{VRpavhS-t}*1^T~QNj+G z%a;i1fziSXQMdC{^AL=_W3BHE*5gXZWjQ*UfJGW|Cge5<*4?|*d`_FGb3F(s zn}4jo68tYkHuy6+9=*#i0^JDS=?Q^N7qj&h$g}1KO&{b1Yw(*~+ko~C!!oDqnfw7R97261^WROhRpuY>*%nwHJFHK;C#eFSQ`ey zRhIeS27O6=LlD3iPcy}6{~!ef3FO&j21O$F7V(zNESS3Qj86sNJk?zfhGBb|+4;vT>KmSv{Q+zMrB4cA}a%+i?^e znf757;?r3cw{e#d;*o+2*YoBv>C>P^0yD>(|beEP6olOQfDUvxzt z&_mr_0UUYq89#PKX|3VQcmAe4!}jTpb9=qCE%o&sf(hjHTsc4H3;Z0nH|YF&(j5r{ ze^jG0av&ciGs{DZj9B>2&hQ;h?-Bn#mMb*7#Mi66adGMvgPoR}`3grok%0bw16>|m zvSw{nc?$*WDuA*PG9sAld~Ij#Ej9K7PS%`<_@Y-XBUE$z`dmMr&+YMA?w5PceEWPl zT%xxu?_Ym57vTo*#R0xz`G~^*3(|8_ljF!Im1j=*RygS-lDT8Zl$lS!9(Xih(oWhr zP3ireH#hGxl#zuhkvz4gd`|XWsC1UgS{a@01emS47$5Z}W;sR<<*+1b zLvcj9!38UPlhTkynSpz`I+e;r#_<1a6=rlov~Y>8EIi?@8ux+0I9 zIni=6E|mxEv;U7gIhu&O6zY|GPK`1{wXhtj;eW{+c$DvSqArw|8EAAUYVV&QRi%X& zH~ZSBqWjgbR5N1sMvF5=Tk(rxW&kc{XsZG_>Ir)!uC5D0*+(1|^$E)GP&TAaZBF$E z&0Q0+4>r#LGwo@j=?>vy7ib0CG(*#kYqu-_24TqmIu$u#z#rL8rYWuVN3g6$J4+y=Ww8 z6`UEIJMTsCU>_poF-~kEXu~YY_2^jVzObSj` z;jkNt$w3Oi#a|)S?AMdjfkU`VGOsGUD!2cBaLc(C>$5&mBfpXI73M9!;8OUKQ3a|? z13*wX4$N*|12UXr-?}HpbjWXZ&@MnE*1UpcXd#ZElk$9}uQqJmacD+nQH&|e6-hF8 zc*|E5;^%7`Sx4kZi5O47iLB02cmW3Lt0Qod*Gw_9*0!`Tu#*A;>?A2+It(J@S>R#{ z;dEgV48)E@`2iF}r zL8m6TE-2@h@uoK?2eeuj)3pa)TNt!b(P~y?fosMiZ9`xP4<^{K!l8vocGje3S=Wl86%Kj1cu_=y=X-zUpa zq!X5&Je+J+@#L5f=5hUd3uing`Xd;WSPcneA?w`(_rqDuZxIc62js9@!Xo;9al+pU zAB|S+pjF8OqpWk+pn@t=koFC;!qOFJL(8ikcW9}}X0X6nkuL4SuttaJBwVy?q3CA0 zpUzRSrdY@wZm!wH+X|V|m6Y0CIQtcdVPIk;{$-H7?t{Bb_d6jKjn%^^;D|k#G5_X$ zj3_6242yS}(u%K-XvSc;nHs~^RM1utAzlG6wc46NVT9qB5yyRe!DY`RTMdLWGQ*-b z6xQK$P@=8?Ok;5Z8JoQ8jfqyAazR_#2mDRUdoZ*`T|g&$Uk%iUh7~2Ux8@b>87qmE z#(;@nfy*w^AOqM?zzt&IGlPf|7~K}ZYR201mS7O5)0ly;gi;@#f@0{DLcc+8BMsPR z6SIs{fC={gGN$(&4MH9~IJm1@6raK$i)SEBiT*cuEfX*tb*zC$Q5gjr!{eE_UNpqmO4nd0wIM>dRLaM59v1;0IHA`mt6$ndlKR9d{jG(_^ z2Z#nE1f?>1!*B#qf1|zxb*d|l&JL43gN9J{;Yt`uz%~)AP`RMt%MfWUocf$j_ne6O z%tY2^2xtFXv)ea@)!_vwT`>Rd$;qj`pLAXxH9j6J?I5+L;jBOM(oiCpbd!vv9s|ar z!a2{%o$Yg73C_)jYnR1}FWXxwi>z;!w4qQ_0Qrli%w1K1_xMvA6zaDYcb?;t&=I`H zNg%Ote7c+Rb36_ZL{F8X)%yuJsDfuLdzN+?4wUq(M+LgL;?nP(NNO%3E+E7qh zkr^y-R-9#VDz8Wbn2j(xww7_=&@%5ckCB^RVw70^V?JrM)nptFn8?w4$-Qh}11SKkn(rXmX1D>40CO0fiR$ z58!Jbn9T%24TEwlSL;2>eU&Pc;uhby&$UYgFLx!@%AT*V4|YTwED0Ei)j0F35lY(d z4v+g@t>?7OIH*y07H@rsD#V zO$70cpBs^cwuPaO3NLN(`*p2J+!JG8Q&5h~jz3*tb;PJjYNk@+LG4*G=V*0(F)+)k z1q!J#IM%;)9f2nCB`W&CLNWIz*p{5$ja_w1g+g;Xefd6tole|22klPc?`mcGe&uFu zXopN{^S9H<&mDA=x>AAp{@H?-2*gA~?;OX(27*?3FfGZy!pLz;X3CwXUqq9H?>_8d zarRFD+x!V(HuDt`dY69OddkdRZr3xzBCOtuvWJ&jUHM7gz%s7`4n%#K4!U34CJ=uX z1YY*iqX5&X2ai*xMRxINsPR@^`SJIfx|RQRFMOY2vG?1&HxkJW8^dK}hi-a=J7s|cE$s!EH>=0BE>!X?9 z5SNq>tDyIdi=#*NwC}AJMuP$jVLq&|ID2l`{P;K*Me;5{Z_T-0-TOn#JS7QHu1z|m zMESyj#ufikCHKy#XJIyO1o<3^-*fiw0#Pfj#q3q|cn5)7d9;^eJBa2U&}_g{m!I=R zr?8N2;7hO1XMAKVyagigCqReK!sv|ppI( zu;(@xEyPRuF2WNDc2gxvkt?&!&{j{bhhYFSKv!3rh`E32gLiyP6QYwED5?ob5{8{3E+|Yjd?cP> zFk`{8Y=G7n$$WbbP?!l?IkgjnNK9$Cfm5QAA%0BI0k)IDM)Q8xhH^3PGCFXlp^}!o z{B{B+dKJ;BxrGU{YvtN1D?|xYBaF>c!)oNmCqfqs9Zoje^D*NX#c;ruO*k55$iGe2 zs+BQNU26*Ch#&)D4pqEb635!_2!wPJG^(xk$y$lHNBz)s6X7+f2BM2jUK`6eFuQXo ziwbvhp+KDg2>>m~m6K#BWWi#h6*o2G$v)BiAWA}~4y^5wUsknq|n zSIq9Pi!Lwm)^d^Dl&ZI2h9Lb~#4>*;5tCvTU`D9`FbJ2mnniwsaTij))nTfl14gCW zaz6LTUZ_Jrg^tj-$C}-wab~sca9@PlK4K6iI&O5TBeJ_nRQoVFGxE>ERtvPhWbexa znEMDwkQT4Xg4w|q#Ji4q4x!)hgG?O+k66{f&iGISLa;&%N*8E7>1NY-u*X8gzV5t z3XP(44D`p{y{+r0^*f?^DFyX!c_sKy#OB#38n;^TIK7NY&oq2`z`Yg3EUHb zo>Iqr!HNu8s=XW$aH~>plI-1#eL=`hP8*U86l3jb^n8fqMwPqv?oAc0lOdoN4mMs` z_IOTy9>1tRz=H&_B}{eR*B^I(+-4>#_kb=p8A@sp9_BvjE@%5!Lco`_FOfud-`^lp z2O$KI;GjhNFMKoTA(?9W_W{_p+*F5Fw0}1@(hbh;jgbROpMOUa*KTw{KVo+^S%MS zkO|rL`9!X%_ubqlA70-gbpj#U_fH5s$QK*rcMVlI@&RE0!|?1L+&-V2m2 z+sNIpswNeh)}&YB-sPSDaKErtKLB=Tuo}C8+V<~5>^(FcnW>}K3nNSh47t=f*pM51 zMRvyjeKC#60g{2_>naVYQh#=6A>$Us*5}T!KRMdF!NAvtrkCp|BXY42JYW;eoAzN+ z$rghhqPr>I?SqOwun~YlmdX#ZIis}Gvct{HcLrzT#(OT@7DaBW0C=-2Y0J5cr2R)o zX_KCgb%HH!E}g=IH&KgG3O$re@gWZse%__8bK$Q$W@sYx!@(S+=@Oz^Ax7ndor9=7 zrqZvIB8SJLz`zeY$LYf;! z;VmvruwIBP18mMvt=ub>lyM~;s>0xtX`oxzGlWJs(Z&6(FB1gLdom=%I*~yG@AMYc z&jF{5quDgz`6IIA@F%MhxAtw`5*W=JG`i_avQ zxPdr6!=9i~{-zluAy2rxU|4Jl+W^>o9(G)qU+qtw_|HvoR7weVctzQ8AQ15{!Tc2t8d^ZVFjF}K{CkC>W}`?e~$1`UA4W@_9g`u-EUQ`)`S;b$q% z@$g5=%Agd)fx_N;MAMjLV%Io~T!#uubx=D`7usQ}K;JVW2T)FJ9P3>=~m}0(OZ0NjT}Bh`_Ad>kWRC zr5#G6JG+FfKe;SLoDlv%^*h!Ds4uBSFIOjyiJ;d=8=AyPHhEP@75*_aU7IJ=?#|f9 zHWIHQP8`2FCJXQvy6=^s@yUZFrMTDGn5CGP>mO}?6DwQBbxmoQ)uF_<-NQ#PW~G)+ z9&|vbS-Zhjx>iqb)CTp@-h~2B;o$~H^gVaj>%r}?d*3W>0MZKDnqGB} z67YO{DsOag&ItY6s?Me0DS1honwVEhq(m;DtXY*;P*$yOR(>V^BOx{EMOlC;Q{8@5AQW1EIRy~dz5OlaKT z!SzO!9jD%f1Es(>!d$^xtEnuMd>fkM2U zme|K78088je^)9Z+0Sgc-+29=w>1)m+Ha|Ow^3$z29%V?CmZDPYM$g~(5n}Y6+P#S zZ_9ptBD6t}(KQYj-4X*~GogiuAWQW`^F^UHivJHiK*GN)B_#=1qCmg2&CLdbU3YY9 zv(|$O-t69yHz_0~RGPZvp>WcLZWm6{LTfuMl&FT+gyz$p)L-eWXS=i`Rc2Q1Ewzw} zU1cq+TcL=yg~8e;3te$yhc8Vi(%aSu*XwbGQu&`3+v2ara{Dlc@GkBjnhLGg)fOT> zrLwSv!5XiH4x_9(*hBEQnK}={;J&)ebY*;%X`v7*nS^a9lg)Ildiu+nC4ZOLtW8g* zOQ+V>BOv*hrvE6tC&k0YE7(He+-(Yn`(R48sgNFm!kTE<(o}1oc}Oz7 zC~Txc8j0zq21`m8I%d2jP@7>XBqPf7uqDSnb4y}do8 z4tkdky)z{l$e?;CMREILck^H_-RvHP`oQmn!RhV7wP4nU-qsv^F@eHMMy>3d-4qV$ zuyosx)*rc19qC7_3dWM}S~B!@qjCmeu_NB>c3m1gP6gi#$q{_%hql_50mNUc_EX2= zu#awr9W|#AgJkig5^lmB60?KmusFB;^E+9oRQvTsq3D>o3wL~70bKZw6r6o6%7gY& z*`j#3{vn#f=x{}|s8RFa)&yHu_ll#F!n%68&08u6;hSa&5QDXhV)`{!y_H-Kt)W6D zbUR#C)>R?gI;$u(lYu3t)Kc4ttjVLgk{4N}SK@>}GT4tVX6ZcWIAv^lg@RE^L4&Gn z-(ERXZL0CDCaX|@mQb~0Y_~$8p|+)}HLp{MswvHht$`PB6)3fe2NWeIYP)(*iGVlX z1)8}f)7eDE>SJrbaaZ{;H-%7{Dj0mdKl3AMoj;yeg1@$eLe?vswXL%OI7fxi`#>p_ zB*j}x2fa@Rt%=+S1#Qt^Co*f(@=c3VAx!y?byZ(=bxbKn!n@des_F^_dcRq#Hc`># zUVETKT<+}Ia<+ZlOrTwx%+?B1#~yjG56bd(yf!Q@$5xljAqu;xOvd}e(JhES4arAy z-Ll$Lq1`T&WYLzWx254Uq~-isLg`Jz>4PW!o})f^w!&~O$U7sC3E!!Z9q%q#<@sP( zmqBORNgfQ-`%8g_>*G5wJ~kP5it-z}earX0!954m_q$g!Uvl6fGdc*!)feY(moJ0z zLftK?Qyb}&ah*@6YHKSpYv2q;!;(z#)L4Vr6iSNbd39jxdNxvmACX# zcSYIQ$?mTcndGT1?<0D==u@A-J=@w>7a@oFX3SmP*P(N+&LW3UT~4B2gHgHZ-taUd z9{pf)aB7aNDeHjD{EVaNB$J~DWRga)8?KH$Az<{3x|pOj&e@`bKR$UZZ(+T zZ`ghA*D!PRE~HblS2KN>OTc#rBA064czOIE%gdVaok=I6Eo4a^DMxXU4m`2jIC$Vo z{$)0G@BDdQQU%IDQFwStwbhPVXp>IkgWUk=tw)E5_@mc7l4f$WSts&o>#ofjmIXt% z8a1FF;*PUz=jbcTv^uGV-H`2Ez_r?sxp^=S?~htzsmBK{ee!zS+NR&h=MrXBKU)`^ zLG2ldd>8?`gWlJor~i4uEvQNKE{p&tJBCs~*Yhd0ly$|n!KU|)y%bcqY{*Zk` zu&=nB2dm#l(Dig-$@|(xn#B#PF?I5uUFf>QUZA2F;|)%QYhU1AeA}F^FF|&95vlwK z{gNU5bu|3$xU(M|xqU_xC0EWDE>@cN;5S4%?QG=ckt^pkVpn<(Za*-&Qa|EqE7}tK zbyj@l!GpVSC8z2lxX2yAyPL~9XV;Z{y{ktO)|)E%Y-w;o5H51Dq?3>aU(I`LO*oFc zEMZ+vx$`eYtJcDf-%TD^$Z6{YobYZRvtIzM$(77{a6?vX%n#jjX4itrl{IJngO*(k z?mSq!r3YoW2&rdR<>&;DK^IF?3}wB)5Gg4T^%&!*5wQwf6&BeWCy|ovbzJZj?O{-r zP^C?vbtBfngQ|goN$)f+kpq}tc4u?DsD+wSKjKKIr*-J#!RaBkVu2vm*z4XV*3_0zcxd(_Qg!xVQ`=+g_RuK#pL(ykx=>sXUIIQ) zA@70pgK)j~F3XByErAUo^F8RYt?jbz&$qR=Juq9~wCyLHlDDfn=#V25YJ2`yBvHCY zFAujYD)vPqoI+Jh>(X^`SL1sYk|IV*K)A_RjWZt&Inz6 z*llYUU4gB$HVg%Ah0vI7T6Eg0Nd4&^EPqSx?zz9UOt$+k)m4%sNsa^W^@{pH0}{1R ze8ynj(TDl}WoU~hs*pe;ESw>yXk3hw-3dby2wB#oFZ_Y1^!K|ei|Pe;7%P(M8m#9sBI6dG->4wtXlM=;a(+gJT| zJsoDRYRMc_BAS-p3Y^a;->*VtenXN}m$*xUbbZE~*ot6b` zf}8qcsTbTQn$h0@En$XhiW34ou9!gi1x)e5n2~C8j-)H}h<9`pFnjr`1hYw|WPB)) zuZl1)ZBOXr)QaH(NL48Jk47agxX7K(P|wJ4^1Z2{I5xd_Ar_Ys?3vWP?DX6E;#{8o zjvDJ$wnF@Jo_vQZpYrJ4hEvge<~75P*O0;~Wou0ei%{#U5c+Hv;ViOT`{RjTVXE-X z+tDi%Ta(O`%hgpRIr)}ptf$OHsPE4-K&QMc6(IGy#*-L}Baj(|Vh3FBN3qG;<@)&a zs5S%H($M?qR$5;Ulpg`t&@JQ#{6Fz;ehkc z@v=y+3Iq;aDox+H?zznbLaMSj+AciKr?Ry#k39rcqwIv4gmH&~~A+eKg$S zXqoPPgg1TM;uC5dC^;0@u){mqT&ADa`{~8EIVC%{YvJ= zd6;JBd^1#MYn+T9YX$1?LY{1xB1Glue14eFrRumUQ!YD=Ciz;&#y5DScj@I_?6h0g zMb%^KA3Jf~cYUse68F$XN%GtZI2?Zbl^tK7gS8c=EkWaRTBbOhs;pd;F8BH62|=RE z0U_O$21JX`h8fNzE~Nvy0H-ZMk)%654~l+gG0EPfuTf007raG$eM0Aq%e;9i#~Qri zJ4zzg+q$*(VnnqVwv8l-0YSkDy9L~0_<07UIXmL681q%~e^XTM56fCE!&eM2FzO?5+ zd+UCa=qwG8&-RKa43I`9aSLHvYh=qJdWWY@72-oBHJV~g(hOL;DsF@9BEuL*Kytd%j2-Eh=gtg0*zQ<^b+(5Y-&@sF^E&P0TyvFf=J1CyAYv#Pz)&j zQ%nG{1+(Hq|q@jWm3wZ9H3($H|d3@kY|NwvZx`!vS8wp!q%+j8c_+)8fL} zYhIbS#SYs8mIP=4SlTlHwdH|GSwF9RSIuP$}V07K+>#~-T zJ$O7Hn@ej6FJeKJ`s_*erDY!WM@m;rfAvz4kjb*j?Mli=yp#-CoNS?AzM)B0ju!hq z#ynq(SYSq|LZO9$)@QqkAvS@IWeMN%F6(t|2lu7w_sLfL&EiF0Y0-Nwq8eNSOI;O> z8Y4~3r-G#A{A@+yQ%co#qvE-B)aj4?t;46qi%Z^*nF3SD(Jc=+)NMPa49D;RlBw8j zD5=w-0ay|OOF&ydEn9BQTb*gmpr2h!$FOBSt!_H!k+6x)v~tkLxZzEZarvZtZF_?Lrbb_UUK)Ro0T-d=2ro+(`miK~ zrh!D_G;3?QIZk@GT!=Avy=4U&&ps?S*Ld_{y);~Z!7t2EJKs9e{ftXdNFzWhT*5bx ztT$CpNN+sL`C!Lj3mQ#Z`Prhk^> zm68>&Xqws`r}|4StpcB~=_!y{kUHo}^>)o&2o)LS7+U z;Y=^lw^Yf{_0WlfA*l7V57~5+gPr8EjwI!h=~Z+5s5HOgS8?!Mu!G9F4JKHsYovy3SG&nhmsG)Zl{0|NZr!U;q0( ze~(>d(;N zTnA}{9ARn=>6=bMT4Bz1CWow0`P~ojWFk`iRTGN2Nf1}3acFm(f`$vP-WOiZjn8ZA zILzz*QQ#I6Db<(h;u>6P{u#^?+Hn`+mWQD=`Ha89TG-$n9mqjFD6DNB3jxf(Ie3pJ07|YEOBaCA2{{`pP#OL=J zp*%=*e@5O6?gxkl!DiI1iC4t3Cf9X+sG0 z58>5b_&gn8g#xWae*A-2ku(&3^Q5?G$D#}xUa30td@G8)qnP4Bla}(R0rQg)Iiv*5 zl~yF>@jth!K#=AQZ;-7orMH`eGXYWT@xGW-}k z$P)5MKW1_G(btHsjm1OnB?sT;0PcewA1pojZa>+gb&K@{sh3lgpJU9wnUfe&$I(k& z7c?2aP4y5srir+BX z@_0VM`Dm!L{=i)GVG{JgEK*Ne6Axm&et+oh_ z@jbxjY1H-A<_>^=(e4zUO*hH!o!m3Y_G^&6JOI{on_oLFA^XDREyO@IXk@3;5Yv9n z%JjEQ)dX=|BxOwpWPM%DcHJaR#|B{5W}Xj8ixLCBR(jOn7A)rWZjtT`Vil$6iO;>0 zWtO@51JVGA6Eq|the%7nX>t7494zkwgC~8HLEZ2w6X>^UHrL5htjAHsjT5Fq~XV z`q%NC_fDHhxW1iEGlz690jE;HFYvv~w-<^o_|3BkL~^Q%WHDj!dUI@%Fb&9Ono?b| zaMF3a8)+eKi=@=W zc8Jhgi=!7rYyp;m;t@xkvPa_;L#rSFF~4v<)2;CNFyTrmj5H7=Hb8ourXU-A*=WN= z7s^5ono!G6jBDb}VINSgpa%vMcsQ;(NzLZi1W5}l$xvmAT;T@JiH1D8DF4AT(;Q=b z*Gu;a8{CA|;6are(EUv z(@=Q%+kR!WV}1Ze+EuDXqQGp#o9zjS8DPi`Gocy(EWW7iG-aAPR;2ief`W^sHC=j*sdf{RMfB<$wdug>yky4X%=v4H-=$f7!rGa}xPm-(l?z}8R@ z4++^{cn>L26+eP7WZzM!QUJEyo_85;`2u2%%`eQT?E?{>r0{M)O7v}^BmQ$_?GEQLqCA)|sPDW5pOP>N80LZ!1X4gRzxLui<*i;*)VnYC1J`Z`EQw zH5{xQ@yp6HkXDdm-7A+1^Gi^MbpRWQTZ$3F1xwK$wq5i;`kLD-&T=hw*K6K|m`MBGg}VTtIXy2=_n)2*`zncKhD9(H0a$4@4OOX~fn_ zU%kn~nz~lg55e;~x$g1hyP!l+`=%ih1nWbfzZ3fuGf^XXfV~HmFvenHX|E(8?)d~0 zUuh)sDumw=VXxF`0Y{~hSBOF1G3{Uy+Wa5hrU=UhY|v$I)mjM_AC$QfE*LlG^^mjQ zT=30d%nLQvv8+k({P^yZs|c5$eROxBw`|2XD(yuc#$ocdN=B!>4t{;}YG(L_qTcly zmM`l!5te1`a-&u6oz#|!^`{cS*Xwi6z z`EDPk>QDp}r>sL9@Y;}>^u3d4D|XMm%En&u&1Qy%y=t(MQ&E6UOs(I6!^xWf!Ig9> z-^Tne?t^&6z96C9{32pxp4eq!~fy7XzAN6R}+7GJkbzfwa}1y~B@4$6$$-pc=m zA8UcETRL>3V#Hu%H~r}cY%;N_lYRC561~laC%xD4|M-58y8gw1#ozIHkqbZbBqZ}( z7FJYQu4X|an9mkxe}f|-fAJ^f2Qnglmk`E@K6&1`nC%}52&nmioPLStII&tYgleZJTioe_*K*#}}FueVz8yCe29LRon?e6nQ zsWEn9ET~MM4Hj2Ud%?gp?w?IZh|s=AGL$A`rI^bTt@`W*C%HP?WFg43xL3gG_)<#9 z8rpXvrNq4O0v)9s3lSzFL|7T59p7H`{^TwTBBh~SKTKgsNI9+e`0Fz%|2~*Z*YX1w z0#whbk0=QepM4beQx51d*oLmVXomI}r_%a+U?88GUFr*=ma&wSP^=0rNoSNc2NLXe5*+|&lexvr3JX3a#MeN}E0;@rJ z;&#!fhc9gvrKlon!#-y4+6d%YMC2|;Y&r@zh@!s~Xh+3di@^5#?uHryAEJq3zK5S& zaJ;_$y3H~ulqL;}zL&H~P)Ke)-3r>F(X2iHn77?KO&%1%A~q5Wc)`^>{lq@X-2Xh6 z*|l9U3Pk@qicY{@M?zwVr}NLDsg16GY!;KG+{Q?ADQJuR;FzA8GugAK5bG ze4YF!f3QiX(X^?UzTBbrogatFF|2Cr0=4?bt;_=3mD93-W82)RKikobONsi*5#f!C zN$s?}!nNhhq8*|!!EsL&vBnHw7AUq1gXw7?5ghmNer3SX6^OZX@$n65E{9b^=U z=#ssev%WFwK2jo?7pfLQ5C{ zvkjY{!_3Iu)s5DvXsWVwutAh}O)SjU8#&I5?%6K)q1hf2dIEVr9V9BSIC7SNnlKzT z*JFHOb6r~}9yZsz#v|cq2kTQ3&t;p^ZuV5kw`aMAv;&xQA!4XQuf zB}(~m>Sblpl)#9^)d}aFW#H4}?yO{IqIvx=+!VkY1bvb9s|>8Sj!7-4SuzwP{*nK3 zQ`jQK=0M-5BEb$P6?vo#{p?wDCiZ%=`he`TIyNB*me{ovte`0lm7{^BcTaT1nEuQH)k;7!Y2#phGMk75DG3fs z5>mP`molh9D5KnrRvJI;LdkVwk`TLdV?yZ`7bd*=&{G+(AfMXEv`0l9SlducCukdH zC#wRTPU!a-SrsD7?JG0U=Jj4x7XVsUw-*huUW!U@KUdBdbj6i}Di+Iez0i7!L>HkF zB6`~Lg6S)Pt!!4Vj$X_3#McM4Jh;TF*xJ=?orB=>*8id2fVc&}-(X&Ve+z~YUDcBn zjGnS|%3@#DJ{hb%3(|xY+sf&g6Zk8fU6R40y~k}0-PRgmS|;{&^@LT>`{(xl1TMGq z`^_%7xlyNdn0Ag8Yr=OFn@#YQyWrohZFbWD8b2DhWeA$^zvV=nIP4U{?87A`S%HrR ziefjJqZ9&xBwu#UoKVmWaQkfhvZJ7{(qVSlueN+NmmEKI_) z@AOfFv}r%_*H#- zKez8nhO;Iqb2%A?QroVTeTFDuIE8t@d#Oa=^aRcyYdoD$DK>3qV>korG`P1i99mmV zLPpi>n2GRyEIKVOG0Iai65Z_gt!K4|9LphPr6+sIQ)=k$XT(;kZLVc!-!+U##|MBW z1GTlK4+Y`DDUI*VSdo#?vbC)b%qWE<*_Z}aF*<~O>5i?w9FEkAqa+($0-Ap|IZhT7 zO?d3;GHRX~u(>(GAa8dmuC@WAZ!WbBtxLWzs{H6Jb_bZ|kz&khI=;j(P$f*gI$Q&* zTEp0~L6T0$QPdWC{?x{SJ5}kh1{*bu%gHk(Q#DoxqMyd63m9GGf1QC@z;H_86qkfg z>oKQL?u*9#27m~`U2h5}+4_J8tV}5o+_ijQYXYKHF3RwaR{d4Ga&;MEqKnBgupc5P z72g$PdZ{mF%|R3ZgwI*dikm7}tsh1!wS0s|@r`4CDWFfj_}g&DEJit#PER^WoT3$W zToLB%gXjg=Uu!7*eR@Z?2mQ96TVcfix?&NB`WcyA{Hz@O5BU|OVh2Vk*`8Mc$Ffqu zlZoMEKUvLwzUPMTEd4%>6@ecdiN2l@i`Ah<)2V&lnju+jh1Hq5?50V{`te-nx#sG^E3C)swDN6{62be1|&`KZ67 zLy+DgsV$X^6d)+EnG)zwNQP^MkJYSJJrY}X5vOPbXgLygbH|GPwt5m56T^62HSS5? z@5a?!zO|#X7Aer$)UvUE*_`#Xo|^@OTzD*5#jmvwt2i_kRwU z>Y_ypx4ee~jcZQ}eYgtPvXMa@n^^3Nk(}9s%%0R8c$Nee@^=QUXv1)BF3M+OdPx*X5do-nG+TpyE zU)c5de22ej+h}EW+>a(|6?!l7-!d?F$+?!mPIuFFRf*FUK84|L!PS-V0rKCGU$Ic^ zb({#LY9$l^wWNwe2ghW?UOEGMze)iJ`eZ^IY`OIw8qoXo$(<+?K**A0*elvx54dEO z8>;!yTbhb^I(9?v1vIUY4OL~!EV{m@o6?2#?pT4(m)AhPY zA@ssbprT$0rKdU}f9&;C9lk_P6V#m~T-{pEu%&N`gsg9JRSEVh1~u!J7_)|)58u>F z*VG)5KYZQzv>J`28AJJl8AuO}DH)rZ(#U z^F)VFj}*t+zT?5qb~b|GDW;@#Yan0bec!Wy+Rf&)h5@pBkzUKuz88Ia-X&kpN1nX*d(99z)v`QedLzeF8&PhNbcO3#=PLuc-;SzGm@XE_C(&y}L7qMofh zRx~F2mz3}1hj)|zcefz8U7>#Np{p3miX?f;U*TUL<~rBk5X9LlKVD`;}#BA0ZXQ&C?8AG_qBCgH=PzQ}&3XMdk)(lC7jkL$N zUprtZZ0>*YF*ZYeswxcSg$I1isW7Gd|3sJBb!{mOL{sSm>~#=`A^*gh z+9mwHO!??aps{4MK;Nq#&CDO|SbQW%%MLxCsAxpJ=UhwudXJZ$C~AwlkE^P^Dmx}E z&EY+ersG?m$=cECqGyTLe#3% z)*dAZ*^ZAFz{BR(dxVVsB40} zbo&nGwaaya9I3SNe=eF?Ti`C^zsm<5h|R&2dUOHZY-&7 zkVC?i>nVdEg+&%C$!D>x99#3r9l;j3BR`s2bfY$$Dis*DV)hrFt^Cp~^22g4iQ1^7 z$OMb62+eT9TkkU370GnG_9AQY_AlwxSqUetUuo6Oi&nf+NRJ}2is4SrZ2J=9leIoeT&YwZN9O!H+z?{8g3lGbhC&LSbhS9OC5*mVc^tIKj7+grD2+ER;Z9MsEVg-c{W|{Qn z)9aFG_CZ^w12(eRJ=c>wz>a^y+^lo<=JeI8ykqIU077%n9t3T&4GN0(!j=VclgIwm z6v*e(Sc0nr**v$e7>D`O>*4)__&ZFU0rV|Q_b@2ay*D5ldzu1q)On34u}K$f{zf7V ztJ^w%ZV5pivSi}$;eD$uJT+Q3*{M|0_VQExL+Q-IGpu$DuRo=BB(9wH-f*o=+aOT8 zmCpzKv^5J#{&rc+`&c1NG&B++<-zCF41pa_PMp|eJJ@pMW2?)@Of9I}+)i%6MPuZC zNtBfSmLpEXWgu4CX=4ISV9$E;48gOA?sQ}h+F`@DPu7bkks7}KoP(xe^-Cb0>A4{h zNvckblUuR?rLStbvTQj}pWU;Z#xCR4Yy6bt@CNG~TuH~;2D8CZ>XxD;w>KodtKMVV za#cj7V3lgRr<;O$vq$49*+UF|$HrdL;{jy|IbzZb2yWQ10rc($W0pPJ|-sik%pV?+QpCMD3mxp#GKJPKfyby@67I z$MgpNe6CD1gHC6>qd`2)_z9-lP!?#}H#W*;XU zDxGoj3%Zj9XA8zE2B)XEMzl}|jaELN!<(u$PM2{k(X`+vFTZU*DSj)u))PLqn<9nc-+0Nxwhc(YZlu~ z75V;>6fBLKX2vIhK}x&qFgU6S4z(z$f8mqQs5TJhTP;H4UeCAewu^5LKx zL%HseX!ZA?AYP1(3&@VmeS@LcPKhyA(;5;^_F3~}!mPSpELg%I9IxS#@a&8Tbf!P{oXaJr!8s7L3lW{i*1Yr?YV-mb-G*)`RjtsCh^!Du!E=z%!E%Lt~w{}>~NX6TsOT^W4fxwB*iCP<9vv& z5AYr(ZgkPni_06&w&ZJGucB^W{%X9z%ihI_tST(p1f-s5ta6CaF#+C+cx#b%;JJG7`Bqj z+mieANcX|phYx^Qg=hJNhx@M& zl}$8-b@HA8b509hy78kCi?tTV8QnnrI5~ES60fl_uBjk8&w0Y+R=v6{bGgm8O_8+Y zUmZ%QCUo8;4dFR4uYUZ~>AuMxCUP}OYbabn{tI1?T(#@gnNWhh@2PdXA}zZdAd3>M z9#4{Z<%erJyQdBG1}ARy_8#3#jJtKOp48h#CP3@?sV5cCniVONZrAv5fXV`vxJuTg zlQ^8>=srXLPlbKZ4l%7F(}1&3h)?gzqS0a3olA}3M%IbKNb|Q|&lYV~#U9Hp%MOx7 z>&SiSs2h$WxF^<=SvnKJY_Pdi<}=`PXiRUPc6p9u!jh3DbJ(wVCl_dzX?5zK zVx$*&0o{`y&JQ%Rtj`7>4$y>fXe|?9*O~oEvc)VXB+X4Vp)>pE$qJ*|gvp1%#u{ll zDUx;SJ$UjYpB7d3xkOf@e!lhugBiu0R!2$r7HgnhL*0_O-B8J(HBG6vP5jSvx!mfp z<3M=tD4c)|Jt--S!Hr`UlmBK|U$N~A14h?r{%VTPs$+C2Naq&j4#)J7C7pAxg@
      LP-E$8|y0IKSZ9M9fIS~`hb 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%0A!Kk^xa#eyU8j?WFI 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�t^-vA5J+H8`|rcmj99s|e=^b8TA*hr^n=UsL(1_3$??O-@dp~m z4;9A`5XTP-#}5X_4*|yy{KgOW#t-tw5ADVupc_Ao8$Wm(KV%y}P#Zry8$T!;KNS0O z;&1B@{hsH~xhY(q&hq+}S|gU$$HCqpq-*cyw&ImI7wgXjEV>#v_jb`#`bvo~$sE8C z%6rOZK~ibkYcb4MFVDP=RktluR!;ber>LaSIR^8^K{j`W~J6Yp5Tw$`IDtybG#={G%Jp>G~R&*4}1 zK-z_2o8dmcOl?*W@W?USA(0|%VXH63AO)L&qTi*br8YM&?b2jDIKk}dezI+wwit&n zQ9eTnID@~^%&44+1Zwwr$;+Xfolv~b*w)+1VTKeP0@hH3a#z@}!^~8N_PKkc*Hl#r zNeTwYTM@JoR3g=-^BXTaB=qi-mf9nGwpP%6Ad-Q@DDT2|$6oec>$n9A^RR+?FRB!X-?G(3Z3f*<0r_1*yz_yex zu;QQUeCcMkz=pKrOx!1NV)W~*90j4z-7cx5p!GT}w@ZmMybyXnUVD41#Qf$v?inn5 zDe@R0H7}D)FzI>WT}s1)Jhk!d$7qb4YRdoqr=^K>`)_@ALQb~@tWveOV_VOq8G}%a z!%%odc@5$OtC1Gr0Jr)m7+*cbIV;Y0m$jZimnY}frRz#?HymFk5N%O)Hn(iUYy^#k z@vaq*nj@8_ne_#$&uw9M(6$TnBCQ|@^L_Jz-dRJK^ygiG6yW0qOlUQ=)iPK`*ozf< zbv<37>!5j@iS;_xDoq95)d|UVRd@B!?4sOGLMZ$vv5a}vX}kI)u;nx$EbEbz6k@gD zjKH#6fbi$D78yzF&>;Ki-Y%HbAd}8z7Uv;iw5`AuNA^$-?sRDPG#7Z>MlFCyxg|IU zzHe^@qe^;k;r3kTbYzxo14R`>jNaF{^K{=g+x_ktk{l9-N;|rAUi1Q8D76mE(xS5! z%tji8gH#TYNogJ7^%XW2UCzJ(Y?j7_(|#b!-S_=N4zVNPy9I{;K8ji{VH0z{g>bDb zu1l2%H7C8TpQz0i^5ZJ!udvcSBs^Sb+2>1=QpX1;I>WElKnf`p8$tIc2Gmj(*0k2T zZW5e;ob@wrTTtBLQ&PHL2I04sWt~#xENh+SY zA%0Ox*WDsJo|TBYeJDwyoy@N%!6a$fKn5MNVd}Rhe16>ihVuK|U9WRTs3u{JBt@Ame!HbZP{n{%H8^+)B!1)chtCyYz>d;`W*8~*bY@naZZUW zC@rwDHTrNNymP3brN(;IvB#i!1hh+D%v^t&MvLW{t&u*jqIYD&g9w+fwNo&V;7xs= zW}=<@_@!TPOin91#i1KEg$} zwXVUtal{k+Q6 zXX4E1!3Z~bj&2T#OS#WkHVp&v8=k{)gZ<8b)dMNKTe&r>1pl9(sTou<&TGv`O*HKW z-UnKGl>hMFIZTy~geh)xhg~hk{L%K)Lbw|)wv}nec4l|10lj1>xL zetN|&hv9v`;1kHy=l79Rl=$;`df~k&?1DXJ&WnRn89-^9&mK4~v zk2er=;H*EJp7hFe_2TBf=1@z*6Eg~120+Q3CFZ`p0-45phdI9RggSvy)WW6{7}9+{ zob!Hahfzk`^to^wm`TmyKC9}LqH3Tj_-exRO1P{c%`NhRp%uVk~XWtlo{7c$vB#Pbri_? z#i7zvNwr<29@xqnDftI34ROq)TEAPUKZiZN zjlrOF5rms&4EPF4ggQrR+5(0u2in=60MpsUDjuj{JFIi-_ButQ)u?5OkNo#Rj2nEZ?oAbu51+&s2*97MbS7kg z58?VB3Y_3yjBYtwqMqtpBD~!wLqXgxEfcjph&@5rQ_YY89qy2kr=)7h$xZZppe`bF zj-L~J-b%wPt&pmrp=9hrIAI@8BeJvWveON90mDkuh-JMAB+U-{TG}EvHE=fPbTrO6 z032GX4sA1f_9Q~Z)4Ln0Zr{2h8WWpB4wA86TLn!kf_TqrirT@E25~S{6b-Bl*pc|c zQpzF_a`;K@K0op@O1&yx8W%H}+uKgUg8I@EIlS0~p3d1lD;=}^Xme;y6{zUiJP-}H zNgj5EhE9}8824tmKy6gka4k!*yqgNaC6Jgt4vN+JT_;bq=zwO$1rpUuRBhKeXjTWK z620IYu8+d<7RpVPdSPD6^1=oU)UfZ09WpfeG`z9h+paK|cYM$0xCSD=R#y-WjmfioZa7RmLPfEb?)@Y!0-=A6r?`dke>N7cq@S?1;v?b)xgJVb-`Fmc#QJ4Lb z-F4eIku;U6LOz44n}LuB8(_R*0YGQVAidpLp6BYq4k1t{;ofyr1?0EI=bao z3Vm26NM*rOxDBhBRo#LtF!G-B!e;@{f@Aj2E1J=);H83_YN;wLf~aB`b3#5R-^KwG zIFpYUHm}Ps8CFakkwcDZfcUP8^#JOga~UeRst`10r8gQeuPwWWveEwVqd{+Milbnf zVsd(D+~)AiELOz}kuc>eVNGm)ADtam!5QgE4Be2(GpkE)HZQSTik{ee+qP+Q_AR+9 zco|(BNrQkJHCD2oT(Ct=Mdj}KKvSn56>Mrpk=2i4I?l7;NSc|_TaCJ#p+}eJH72o?kU3d`_xoO;Cz(xHHCUY(W;6(9 zv7Cv(x)0#enwIy7yA2mLjGD|v$7@)}9AI)Wk_(9YpMnH6H&doAY9776w-n=b$1AoN za2}290)RUaD2Cl7Aj8H9I|U>9aAb7^O0mGPv{EYml`<|09%Nj|Ha~JFz3gEBpo&B` zJA~z)r_L>0L%BNF@x|HDbStn@V>;e--hvvRj58#PEo_{3S;=ZaPu)fX$5Y`DxBRH< zm4=G_lzv{5yNV*J<jX?eICR?1xe-5vke2bGjNB~x#b-F)@NRBTYrfBupPeS^<6 z*cr8#NYhe$s%trXgRh29DM>m=6MrO!v1s}xuVn&ANkxxVzI%H!AHTRE=_Y9tY6&+< zhuzPbQ>0pzE`jx|rxmwyw#ke{b9KMoLFpj`5zrvCPcdl`(7HixuM;Y?o54or#CiosSscV=lu^oafCBrFN)U~BFxosOAWt1f;t-d=D@?E}^e$kKT?mNlPHPUKVFjYc^R zwTQJ*T*45Q8lOYktArCNwB2IRoI~v6<$GU5yz7#qx5?G3e6ds2dc5@PqE9OD=QQKI zYyBAYe+%;r<~M0md$@-RqmRs>8>|W=KA0x_y*c3+O3(SqQe^n1r?BjlY0T#Ka9^!@ zJsFMuJ;s3;-V>6FQ&pueD<`m)g-5w)<(cow-1Ldqt)!!-6xEavULl_E7G2;X zvHjJsxX(ApC3bjM<36?6t;X%@sLB3U&&pctf7AU_*Z(`}ovb?A1k|S13;|j>dgaA$ zPQRdhxnZxWz@QUp;ntNpbEsJuf}d8OCPQ0{M8n19XgzpM^`~ZTpp8b7lco7BDUh1W zLnAZ4om3LpQpt4Hq{h>B`)WRjC*GFU`P!~U^jOeJ(x503**&!4NZ2p~4NpnOJRzT< z8ZuXI<*%trcf-zpeHL$emx}TVS4!Uo`%ox}F5W?_T5%Gi&W&QdVjqD&Dp%E!0ao%h z`uZy)qV2RmiozqPv*1EL^>H>WCRNxn?@Q~kWQkgA_8~(PteuA-OG zz`MIO+0a@&ho-x$y|64D!?)seoBG>L*v(g9r8x6- zbbN|i#5-J>b(|E#PAOsQ&lmVo#x@jDQkm|nT5gORQX@v9-KM)5>%wyyO6@jaSmLKBHwl^Znb}{$Ha^hh9)yo^-^hK>mwIaA&@jewgiqvnPmf`;!KYg==U=L; zEz7PQg-ss_g_|Do977bk4s7XU#KD zNxohk^YCZI^pjkEg%RWy^P!^+4z3bKb2qZ}Svs*V-W>~d0=^Tu+AFxM0AUE5`ChN(Jxl)wPJz5;k>`3^Fyi8=TF!n_tanj#$w-!`*qg$`%3N};=H`@1_@IzzBd8N zrqS;uEINde#zNBV?+cj>HGgnLBTNRE%0GxrgzOtfWyF5?)N*BsrxsI|H6>qB+$XG$ z>NVE&&z~1R_x=t<#@5$E1$hc$2JjZa+EXETJ+^@Bt3j-~F_#a*v&W>BBg?ZXj=6yY}$hK16Wjg>OAIZ$t=+Z`+r z0DFIyow4k|>Bvhe@MOq|GzEfg{zjd=g`xqN|XW| zG!9B;i$j4HoHLfmm@K0|Gn_L@D1VJ^a1!j8dAX6osroK9*0|nD@K1fOzEH)UR(Me^E7}j!xc; zm9F3SpK<{2kyZsT;YGjasU#*zll_r@X*szqbX4(T5R8>c@l#8=n$k1>dzT3@JVcmJ^6VK zIRuIV01|VH&wiZK`I!ZvDL)v^P$ja%^yxQ+w6p z(~L6|e*pjrYBrZ^By>mdH?~bEOh$!TpXbm>kT{p$isKQ*4m1K)6kZCH>y3B&)?`gy z4nnplB4mmJBS!}4yLw563_E8ULo&?dcxR0K#^2G^s3>2}?wG!i2;%injwpILb@q|` znlK#(Bjo;Z%r$v<4u9ude}YigV>mC3_y(8!D%D4arGbjoi4dY_Jfc|p|Kb#zI24%> zPt&R4Btzp7xSI$qenX_9KLLV@_3p7tC{}Y;L|kU&DYj9}$zRJyO>}~1=4jN#Kg`Wt zG@c_=sA8Uy=Pwfi$X_cH1d5|32p*GH|Jv4?FThX0C!7v1mD}jS7zcIY~?`*-K zRO(QI_c1yFy%HK)wVk_p3t1-M%g-9$z7w5@}(mztL6Y%Uf4 z!q0cMtU!c2?9MNa;v?Gzc>lKL1f$2XjtF+l+kEfNK|ZE;u<?~k3_)h5fZq<{S6lri~uLnvcu6V3=}N=81Cyd^hZ4R(k*S}~?|#I_hu zP-x6iWhoa?>`7=YmI*cska5B+y)~UXr0$%X$Hd$CKuj9wSNe$1gF#LJ@&cx+O>ZT= zYoL*}r{VH(+8lMoRS7|g5NY_miNLk@>8l3RK3hq}D1+vh^xpvFgux^wt5*|VidB#? z85Y>XRg2t5D)DGo6PC}R+FVYXQ7UQGrw%D8)v$4?l(?1ps%3lihk5>yN%gOd-NL29Mtklv8ZJ1%2vNb}~%BefTt# z8~WUJWQjq1FNHG(xtMCamdrie32&>=J+atAZ5ziZ~vHQSt~xfb5@d#-sot`pN@t{tWABq`4DnxI7%J z_LWHL`lZ}wfzSm`hhaHW7GIquVLKVtr$JcW5E-N(d3CHJLgRfwq<9 z!Q?9y<&C46#q{2mt59EWUV1xgKVl(3#XMmL0X=RYY)#tMLT1WnTAef~Ra%x|JH?m# za!k8hyuS{K_zT`&6n}Llp(tCZ1E!`BCd@AWhB&e{^^AE9(#3DkNn4?Pt2kFDL=XQ< z3JPGHdRLR?IaB1HoaDN|csicnLN3!26$=aYFZ(kw8NH zmro6wh~ReS@1`Qty?^(%^)4yk`sl$B0Vo0Sm~dO&Fz%R`&T+_Lxl5g28qaqxQ6!)0cCyIvmB58Dc|vTm9f1^62V z!?O>WBmAurrU_!%3PhV_dTR3f%Pum2G*x|~wJQ+M3lWlwYxOGRf$YXmQto-r8SU^^ zwj2HYG*wvxCAZpruJcVx_6-m(r+q!J_W5o()-hW0@^Qom?fvkGje7eoaAnd)Sq&s= z5<$vfWbMyys?h6(gk6fd&^9=GhISWr*l}SlPM%wax>H8dG3!;wObrd^dXwu3l9Qt` z{+zdC^v(hPHfW&XpoeMizDowpy`<60SelNym+F$SUUXt#WWF~{gv9#|N~q^63n6u* zS;`Pe*Q3w0Va4`#T!U;N4wAv=uLXI?sxWChy>HXCXmj$GgpLHGjMk#sXTBDq_)s*$O8yvh_dLw?s5(9(_EN&o1oNfL95og{H(q$i^H zs63jN_B-$%4@g+29Xt7CKI8>AH6)Jto54<$^Q z^7fj(lCjUOiA`IS1&MXRN*RU90@-fQUO7uYy$lVyZt8<*60o&*O=(T36yLKuUo=Ts zg+YSTZ_^DsrQhCD@X!x$>Tb04d0v@0_$H(g?+2F|Z%n-Q9E7v`^~2TEo)t_(qrFYX zBBJ;5`mt3a*C$kcFM?*rBXf5GGp-x!V4+spd52GsaC<{(P$RO|q9TRHev?^m_?vr7 zVpZ1iEEM@%H@qRqB8w(_F`6X@>hSq_Ud^_u^fE#{R;8{sK9DaCfp6z%wFU%JAy6D!y3b%(LtLKZoux>75&Csj)i#1~5YoblU zPH@Rhx?ra=;{3x1W$H-8hzwDXOK3Bxs+sI|pd%+|UjQ&B8)lM1Mfo@aE3S*yNG(4oP_W5q?vk3i2=A{fmG1T#c#{c`* zzkmJf*MEOk5!S!{JEGcC_|R9~eb?px{?9Lcs{f%_!2$XQ7#@I58yJnDpuw~Che>GUO#Eiep^;%77ksci= z*9M=~|MsdH67!+&dt$Wy{2nxK4!yMa(RKr9HX}BubTVZ$no?AT*JQo@07a-Qf~Jx! zm~2Y%08YOnk%+aUt~RuZ5oj2UpVM^mb>6H!s$Mr&oE>8v2Se;xuTj~TF}V^m&8$?6 zSDp>(6xp*wT~^?BK|QT|_anuc8d~`M-Of39*f0bI@`E!aPWU#&ii}4wSx)a}x|D*c z^&-ki0mMtkyIVLRYv^)e4-y(=W1$?|qsmPNq?sztp(iY|5%YPGkHHgGXvYKdES|2O z!fR2XgDE{>kR2lE(r-y$$FjTgkINO}8U z2x`=g#zWtI(-=<7HczKFb1wR;vUE0f*LK;ddVPuotC_;B#(T3=Q3BxvVKa%jwv*9A}yWpld)A$h;X)6spkOK(I2lmY?2#sjEb z+~qUHeI;kNB74(e<}ueOI`aA5?Y2{1TU*poXx$gW3AhK^Czq>r=_j$NmX!@n4ECvX z)MaqlZ;Fy+Xldhy-414IR4SlEkPEqs>PBrgFN6hr982N?%FfiMt@{LxuJ47qrBM1~ zI0WIJPSIUY0pO*OUhnEpH|D?qs+z~IM{#jLwTj5K3Wqfh3PWDvw=9s;ZS*%u6RshM z(aV}&0Jp8mzK#{j?{~nceB^844y_&jCd{YqH6;{Sk_?N>vJ#L*h$5ji6KJjKy)PV- z?l|S{J?937!x{sj)?V=DG0-5(FK}cbR5ez~Q9!yve(?^CXZ0orEGEE&o($6u zHw=W(Y0r!DOT+|1(*sQ9K=m)Ziq}Dn16FYzO}IE|FqO zVPr=2z{>=ot?cA7->BLnz?%GJ-32_O8Vg+%fvrIh$gYHn0?MczrSFfA+?9u7Ggsm+ zRis(X>PhPu&uwGT7gG3Q!|oG?wws?{1*ncvt5xKxjBA)8a*3Mg7T(0Plp_yKi}iT= zcRXY-V=>s^vw;7tkmc68y#te6xWV&ikIT!GOvH31k5PvlDe&qY`uM;=-NLjA5GLx3 zeU<(BQhAn!&^*5U*_&w$J(X09({v8Tc(`&dW^kWN6H|njXWwbB%jhCL_1}uw7zJ)H ziCPBN)gc2CefRkN$nhp5_I5hZ0&sk9md#n{3sgyAunqK7a%$rdM88!3OKly5+Uk zlI%PSPC{F1m7wQB@|5WmXig}@49Ql*@kg7M<;u&1Ds;IO`o);@r?bln3sBf@Inw-v z1PtagSrg5N*G1oMmgpVGueNL`mw-bhzA1YCJJX@!XhEBnNX#?w4~)AU_E`s2!!=rE zLhTE2JM#-HZWZQ9tJeC8Q@i$$rsaGQjSkrkT|I`B(CoUqwA@4?;T8JZZ3_l zMchMqcz06W2la!m0-V@1m7G7$ zCjor~H=!a4L`Zm9jbDQ{cIYV4N&9*_U6Z1wBr>EZ9WBp5S|mP)T1~R^K~(N+oCTYm z!;}nt^EvhoJNFQ`2QCt{kgqeU#_rR*ZRk-qzRGtnC;(x zv`$fmT#32<{i78yT+7r@i|Hhm*>cxiPba`aYn>76RPaluf*w^~)TvsRyh0Nlbu;R< z-5#v4|I=Z~4*ri*i}GHO_6Defv1U6*_?l?aJNXFXDUIyL#*XNR-^s zQ#W;WYm5L8_h|1N3S*y#%tl#>)%n^(z~j&#EUIHu^fcWa3@Nk^RSS|WCt68<$?pN@ z<@64}(I7hRE_Q59Y-cJxvU8_BmL7Spe*^+6bMU`@aO!Pw6hoxe+$XGbKchF;3Zr4V zIgv1cp#aqd4XE~HWryr88>@>(l5GZ`{$b8O{n9Pux|u;*y8BytEi<_Hcy14noSM20 zxf5)ZtoW`wM>*tckzT)w!diR*v07h#oSaB&8S1vk=qKB}&=aJ?;BZJE_2@;|*Ca7W zLeS^Igkmk6{{}qX#Z?rYe1qvoEVu<0Z=o3b zVzc2X`F9@MVcdG)!Ar27Y3K+Pw%l$fV;-xJrd+g)AJb!R*j@czSx^tbyG!W`bxQ>+Oe8cV z;fqGKumBFM^y)uJo>V$$q4j+x7aI8nbQHs6BemM;_&IcND{rxEw2_^g0XNkFcFh{)0fE!iC-J#@p(uCSodwwG4O-|NW9Ci>!rdhwQG10wuO zfC^Flx0nJQq9Bni_tDYQWKy8jk$op%#*^xi2*(wQ!)VYX&$3w&c0dv}c>hgld~h;} zl1Qw|Mko6LG{z*#;iF=rM)zn%>jloNTKlsCBdRG{&I^>ML?BlCD-NGrZ06g7H4v_V zSnY{x94Q6(iB3dxs|_B{Z+m<=9i7qJ-OL0 zBg1iPO%A}OSTT^+1`v{m9CWw=mSrky2Vx6af@Bv+ z{1kS^#JOYTx?uDFkfk`EgEaclw6`E1069R$zatlFx27qC&l@@~n>L&)_nzS&pz_H? z8hr4=JocDD!lLu-P&%!TLJ3yvKqKLLR1*x|kJ-Bywo2ZkA!u7+Bnzj`qK!bv4uWf*f+U(yw-`f6wrp&JLAVj4X z-phm+sm0Jxk6$9sUchYHb$?cq3|Ca|bD$OS(A|@BtId4!Cx>in3W<6-p*p}g%z&4N z>0rj1d&M|DB-zFaa#46=5WGv!?EO|aR!^mzl$b9egxD$)2Z-*u(CMP1uU%bW?;#e8 zWeyUx>uw?X?(6`)&_m(2HT594aF{(U_aQ%2amz)7?W;l&u%AKSjz3}y62U7DP-%^I zR1}4vqu?9w2xrmWH=aeHYR9yaDliK^8jA4MbTFM9uaoKgY~(?e7$xYKQcVVeQr@xw zat1HA>Zlsl4$13b?YccvVO2q5Mka(FTQ2bc`uBY_P$ol4_R~SaAs1NefS?Nl#p)Ix zV>Mj&T)pr)LtmwWU5q-0w1wmUD-;MK!5#%BZw5FMvmO^>JO&RF_36iCOk? zO2162{XB)T=>AF4^yZ4sYS7o^`+{lp3mX!w`*r)@KdtS-nWjlDqVgkb7*Yi7TVd0* zYNIaBm~3eHwGv`g+V|MSgDU_&So&R#Ef-rOuu+a)=*B&a)DVjaJlAcqAwTwHLN{%D z5T&_kgK3qOmQz=i6>|QA(OZMsSpfmm6E@DBMc^woW@i(4VUJdhE*83KxdWKMA2*vV=P`!}qJW@DBs!q6@F|ZVs%bY$oDY|Uo^>o1P zEF`_JU8^^V5MdP?&*k$?$krvPcR*o%W>d6hH?i;)T$d18jNDG!CWk7a%&9P7SuD`~!>pyXiPhfIoUV)~%Fo2)#g zL0eF=QR127mQtXSp_Lwa@F`XLJl^>ADCl?iMQLbfT%oUZ|J#`*wktlMpN_KfXt{#y zYD!^swVF4lQCCG&i!?l+G!}S|oCvxvb%V+W4E_bRMy>WJdsY^stt3Ns6}!KGT07D_ zRN4aOJ(k9b5oHX+)}U9eo?Vfkf+v{?72s}ZYCdnT6Ot$B`;Zmxq`$@29E_nKj9lhg|9hvozgK_uDM+H1@1)Lh%u3HX2aS# z%Apf}bd)of7HF-tAtyva9P|HFms^%)DF{TT(i6yDqNp(ci8ZnDWL5uENgl59CL*d1 znzNVmFW>*fo!8K=weHn*bQ6-D7m9Xk)+4_;V> z9o6bR>z~H7b-qB)+qI)PDJuteCBh|@F}l{H6~id;c@(LD=yvVLGG;=j98_!+DXj78 zUbybQPva<)K6v9MQ9B8y>&s5x-FgaYqxBm zN=N1a?FW|SZ9+CWW*KbY+gCKzttN^Zk7|o$Dxi{JS0aFQp7MBBmg>B89?X;g4r;v! zM~&vWV^YlfDvHK+P`w4UADwt2-#m#ZshT=)@hrr`bDt+j?A|CW-HGT7X8p5EiS zL$-QmX%z(^QYp9_p~(PKuf)?SFfP0rJig`63Z3tHYBez&dKFc`3j5T}ZlVQgoq=X^ zjsp(n8f3PigU{Jo&YTZZ4jjt6EM6r*mpNbz zHV~t?1A8&dHeZ~ur&1sySD@t6I@+{zpanM8oDWvwW^ADa5uC2yp8+XJS$4?BJzX4U z_Wo5c&w_MmIt11K^DX@n#j}h>8Z@{1T}P6^GA|)i_H@9>&L%Bz2eTrDynmSOz5 zyP@mqRmNS4vhY`(U5Ic^U8_jfY8g-K1YlSdb8me6zJ%_Kug>1wJh~wU=*Q$^7z_Bd zW=zckE%-XKvSaEpZI};$m$cQXlirL&{Z68%fu)JqTA?5>A{nWvvw1xS=ckobDvO<5 z=c%zDfz~1^b9XIjV*c3c?c9LSwPaeVFRB!>lbH(beAF;Q%@D>J(m7sj3s?#fp4z6v zq~-NsomuE~u!M`Hp%1RSu3GL1|I&ER*4hA_!gO^$1pO>+>Cx#3im}9C?pQgVj3Q%R zCVw$VtJKU6EJlwSC~eeuuJbzo^b$nN1xU=%VpJ-`bv{bXiFeo45>A&jM(CDtPM|=x z1Cu=`YwK*Qjg+5r(hQ?7n+59CzpdAEd&_?1XyQ6*fP4?xJg;`}+?+!b$mzL~fFz5U zLokFv>PYfVUX*04ayjIg5Pf~xdR=I;ipEZ>xdxDYt@9S*x1qc)S|fJ9_@u>`RE%@* zB$WI&c6Vvc%kPuk z8ZJG6#~fW5XHX3j%-M^ogZ3ch8U5&4LPB=s=BaEbot(GM4i!zdycQK-AYHV=30h%2 zB~l~ilQlC1%DU&SY5a$`)`fJfi`IeyY^=PF@HN0~+76byPcJ`A10hyv=Z zki=M2GYNa$sm)u00fF{vyRzZ_p=4AZ=gq8io!3jI=w_`+`IU!NECcg$yf6G&eV}Pd z{bULNl^Mk`#!&o?mXm0dxu!q~lb{P1TaPQ@E6_V~^h!0p9+slY9Eto4XqIGv|1R?+ zgrfhR2N$dC(9?VpDue!5<;7Xq5~hYx410b(G9`59xWwh_;NCx=8&bE>^@ z7VG`J@X{;m;JA~o8?BjI9OJywRGTdJhXe~iA^F+eQ}zW@y(VA#&aD?0gIUt1g$$%6 zx!Id_IK?SzQg_I9nQ>UPt(kINfX}*riC9aWul+Pnvxc|?<}6W*wF&2Ogs+s&W|sA* zW^pT8>U{mi=>#*(`eSOL@6OO267s8K6-N2TmnnR)7mi<=%lxJMLUNq^RF=e9ov1f~ zonNEfN9QJyzE>$ZJxOGnv-VoEmRhB}jf#;FN)&^pOn(-Jn!dGMgNZF7;r`M#i4eMV zFg^~GPNQGaMcV8a$z^QGYv6UHF3o{!`p^IUf|w?X5nYuz*(!;Nxt!Nt2Gzpl^rk3s zOIRB#QziE&jLDiZ<7K)2Z_i4uWhk~Zc-;2DX=6W3*(^I7w4wBpfGU zDK&4Z{)*0ncC>5m{Gae%x2sgBFeJogtT;kSm>#V-89BE2HbD>1j!BlHM{0>n0m`T7 z-6M-I%)S1=A;~oMz8E$yExEH*L*Q)KGjpayh?Y@BlVX%$hAHpL#UhQspS9$|?#Joz zIbSFj3{dn|0*K!_lI!%=d3rb70X~IBT5b|9=vvF-d)R5})g|MVs9ifA#~j)dU;X$x z>_RMb4c^TXl(buVHi~#k?DzbFif0Q!2jzL1sjeB9ZyN9lAZKe}{F1mQ#oI->mzK|M z*S1T@c-|d zp&hxhvhQ%H7#1Fq zw6Q~f9pHAKCqlsvaFuYBYH>daS3A{T{%%OJ>^su`bZc~q@=H!cJHYjnN z$fY^9+Uj(M+Ly%K5=lr_rhW|CA?ddCjLbmvo_CtT8_Hz`|Hu7km?RUB@%}QE4)vG> z5@qq}Ik0nR@|Cn3NuO3dyWhS~_u`$JM^XSuT&u36WcxN=sbx*Vj`7WGF~GUhDp0ks z&U@dM#Kjk%jiWHdDpfyCU0SjF;ODj9WDE=QBn}GO6P0JE{;ZMI&rdaD)whoJ_9$w? zkq##NkL)VTvRlVtTge70M-nG#{~K!ppp(4QUuBeeWr`yJU>K4RR0Je#dz?Hj4ySj4 zU!ARA<^4;34ktyQc=V1E3)&Ch0a%y}jnnTYFGD}2I#BTdc0WT5$o?8bZtSbP`c+`Q zow_BD!$`ud&>I$ib4)+x>#!i<7_w!Q_yfX!Zl%*d)C{h40WO2C$e*Ve=3@Jc= zyn!d9k5vX#LN#Ca`)_VIuOgZ8p!S>;67YaHut^19V7j{@g8N%J3%@KZJ_nv(jeC)x z3~Sz1QTou=fNJ|2Z4lzclN#hA2e07IQu+*_2R*vdnxXIBt&#X$k!6VQ)2&7`p(# zi~~sagvQiWmi~PCIs?EEU$WAxHh7EuvL}OYCo{;{yc3$u1QuU-W$E#SA4o!zcLM|V z9+VTDSAe1Fc~>-AKVpvd*Mn%Hr44GN#85zdK4_0qyo`YnBRJTx4X~iVtehygO=ii?dN@K>|P@b6+ScgkXsvq<%u-TiF=c1gAf57q*k7#72)`3qeL;QOyG z#Wde+2!5`c%r!>)nOi`5vyp0?-eY`zley6&+T)?Cryvu7+KuXP($Wtmn0+p~VZOQ1 zMR%&4=d3$#h4+)3j?801XQ#hz)1uAGYqH*Fm-_9lngyn^sGru-PHWYGj|lJ0|YFW5fJt zcgxf?^%mb6uHOOB4GxxZPUh^ zI5A8bo#K!#0wWj5GnS6Ltis`^^dWfQ}Up=mzyXMHfxN;s= zNu#dD>h7Q^q~mRG=g@6{v1I7R_A`P2*zYq;E|V~ReitTLrobieF?>XuQ8|l>#(3h{ z04q&~*h^3Z@{0_RYOSBKB9EruhxFZ(Y?W<)!G7O)Sf>SIZAC zZ8Q8l-VUB~&xvOBOREF`W2pOzsX+(+lR{J1KN%JY+*V!K#VhmAQcXp-Fw6XlsBZ$% zQc!zAy)&hP2Rf5vd+y>)6I-Q0JJd6>^sD~Ug?uJ~&MeIt&@EjON>VJMofGgtQ}rZY zjB@BmUah}XSUNI8RHG6}mgyyd76o$dfzTFgGTW7b zw3W~%$|uY0Nc|WK49N1A*dYMb%dNRi1|WHYbDZN8B`2lstj5v2#Ow0r`A~VGGASl2 z&sahkxHOlO8YAxm3^U@5pXHdmM=1g2!6QZ?O(FOk-Mga8w^X(hNC zo(A2|$nq09royQ)H4+5SXdvoM%u|4%68+9h>>-p0K-Ed4u4Q;%}hdbwC%``Gjq5%$&$HtOVsxIBPL`#tFHz;nI_?)!jUOt;%+QanZ#~lxM ztekXb>cn?tvy%2R7ngr>kSKie4$LRo2=jrFq0uM5U{xk*?P}8s^*9GWQ6{nai zJ6HF&@q^gSonU1Kq1lv0v_lPGg$Df$V}||l$dK$jcd{5kyynzI4%m<0z zhExMa2wSE>F8jN|0ok}q7fMFPoE4mgKC&}mN@L${83u_{C|fDzd1}6%h3wVQ2eB&L zSb6PUD-(B_A$TWv(^~v6?^RpU#`c&EPUg6rUoJ)HLq1Mc`_)iRRw4ykk*z{{Mwehe zF}~z2xExc2Z2tAL_b0fOmPFCs^|2ny=^GGa2pv{JQNU1T0wBP7K11vv(W+z?lJgZH zQ3uE7;-JSRS_KnBxI%!E6D)&<=-tf@1nBDiiO}3 zdjEo>?#M6^;J=2*Qx96>U0!?qgMGsoyvNpna%|gTaW*j_Z74F|>No|#aTdb=m@b!G zJ$4%i&%KJffdfd?lgkLQgp4!D{wHC5rM3+N$4xYUHN{6&aX!zwa~AUk@203HB?ZdR ze}yCWIeM2F;Ztgc#DdMPZkg-0EIY%x^y;mMqOhgg==~4b$y8w*VfG0n&OguZHeDbP z_SxUwiD5}?2srGK3Q7emOGr@Q*fCO=mh1a$YU0|!G2m=GWT*nYznjFM8G@is+kS)Ao6njS&h1ra z6z)h1x^%-k)%5+wVdEL=xw1n_iOR_MHjV1ZCM4VW!kk^^^#>)kwYl=F#%N!VOt<8+ zo^_X(t+|q&;CbzYy?g*uwcg2BlM?%dH>N0OkHK2`awl_A&vl5qrxbNeq>XemP&Xk(1i*L`6&Zx%T z?@Tpg*>K4Lh$YLT+p?Vbl62Om8D*SnJ$e7Kdc5&Dm#PGjo+?;=b9S3(Cik0MDXwd9 zDp5Q{jf+QB5q=-hle zo$0Oft$1ZaUOqCbUSa~C**W_ML)uc8g?+B9zAFE3Su&kzZf zXPF#>sw+d3ms(u)EVXvMua-G6MRFHh7uieQ?l@o*dJsM9q@^)AFQo$?q-4ARL!_=U5q+enXxekIVjTN1 z1l8qSWP}EKeug^k=KJ&*37he1!ak$jC>s?{xie7cHkhf$Wu4)1sERpYK{`3%_NeB5hQGN~C_doL6Q}I$<(VGl_XM z0a=`vq6KXQfh{Gd?e{D~zh9--gkRh)`ma>Vuu&LQM)Wrb>tOdrQ>?2oZ|=`3`)_Si zXi~;?>*$DL;FC5`19!b*??~%2?y`rro#SGQZKbc)^IVc={W)&+X7>>81FPJ4iQE?m zJKL@)bvzDdN)FdVwKs>SOH>3o777=u_}*tI`yzk)O_|FxBY9q5Ru;ut zK`7M(8ujxWl}s_Dp3?+xx5Vo2+tDz&V_9AEw>D8q5zMbM${ZZ&D5EYCC|?;1h8dqD zE2re9jKdg>K_qcOvI~v;``5pI{qLXBn)R@&BHD=U)A#p+GF7- zELCh>0Y!N0Qk*e(o=!-B$w5A1Sv_8k+fM1&_B%)wleL6kWltf5B0LnfDk@3}{d#!F zuRb_jk8_>0;fknX%NU4BZ3&IuuhMUSaZr(tS|8Ogn|Tz(s*Sam;#CzHC?hr07WZGe zYc`Cvoi_31k0xrp7>n3wkU17y@Z72<67+hp6w@}(8i4mp+A~j+hcp9dJpMM`acQKU ztT_Ezoa>e=(0X$@b7IOLcVQW`KSfZ_f+E@;H;HG6sIjeR3F8+a?{p(ATD&#AUYg~i zGk&49pn!00cR3unh_wvh-?8nXv0l&1pv&607nxoBU~{!M3G6GK`Dh@f5WVr6+@>d| zPR#fcRDU~io;sY+^K3rv5hI)1VX0hn-k~USyu)4{LLWLc;)pDTa4v?jjALTXu6LKX z1}%3BXSKfC?RHBsh38g&j!$ne+= zHXIKTwR$qo`c3lbb3D$X!ca|waz_eI{I`yBxKzr${DoO zsu~r_GMpPmHCoKNI>o%!v^Y+h6t}8KxeaN1bYC4O3U5aeao%mOD_I!+4%o$xSfTUm zr2*Cxkm)F?P{FA_*@vFP3Kqr-_BQrMNicDTGNL6i-dSE_I&wk`TiI2ud+Cxu-{FCU_3H7p}e=3T}ZG-hyrvNt{QzL+t^ZK zQ&e7>I>oo*FxNuI%@RZwq()rg`84X7GX8e$E6j-Olzm z!I#A@fm7;PB0*jfTGj9U17iJLGNhnpLUPCD-&#y-u!DErx{?U?GBtOnZf|ne>2o1x zfYaL1v@dl_Ie1v=7yZ~Y{s%#Ny81t^y|nojs90qV)ovW?ROzEBngjYX|LN`g8oa*+JYMTF^Sn zSO4x{FMhGxJ1IeAmMZP7isjCKTn8E3mC9ETzL|VJNNhTZ;d@FuNLd7*7UZnKX@@x< z@2h#?v_3gO2tH_W4FtwOYRM!Ys|jSUU~J7Ry>_&4!nt1kHg?D5Rb+e6qZrMDz2hZN(G(UIH=b=Rj*8B zVn2w|0T7mXm-Edb1sNN%4={UcFO`=xXN@d3jPTLWkq6|aFDePD&4nDqg2Ow0JKVr{ z(Hoh_RIr=OhCe$U*U(N_U(`v%Smb8|_i)n0dBUu_I0f|B(J{cHNEd3rvyGs&QtlVz zIKa|!WaG+Ok~6dhP1497+NWLknKb+Vi7t~QJ8~F??)xt85G88hdHVi$XyPHO zys$&8+vbNj|?{ybufTP%FemeGU_2T_y?gf$Z7gxw8LGL5zN@M&C$y<8e8|%whbyEKS z%I{665`#cZQ|VGTq*?X+{5Iw~L2jsE3g{mUTAy)4IQTe-r&zb*RwjNp6~o*pi2*Fs zlhzh))7e`Ka}v=?vj^xG>TJAkH+Y|<)TC`{IJ5IpDQFEQSk@K$CGGm9B)cs-=++wswN%Z?367oaweAx?U!)3ySFgq#ex zrLoUop2$IYCUtdgWql^mWryE7+gi`$d+itUOhI=^*--jEL53ObUQ zzJ{H3L+U|mLGm`FQ5;3{IlKqFVr|^a3i9(h_ZzZGwxIY~F4}D1lmog;;|R}(D@byh z(H-xl>7=Xa#Oy1b9-_LXv}v!?fy;xn@G>BGv-Q(v^TSGluT3!vO>tCEy5I-tuT~<* z9h8s`+KtJEVD@^c1FbK*J7sMS-TQgsc%(aF@3+~#ZnnD6eyG;V4eI>%XEk@~;f6jP zA<`3wj5`y(FvF2MYn!>>Pd6osuGc-U`a0sM+d~+N0Ybd>{y5m zeZS~4H~K}YQmLv1b>=~m^g5O9>wD)-)QW<3q3R=a_Pt+|!iO*oYF@ISqq!z)lKo9T z@eRy1bmbTN---LC?(lrzTQa12d;K9@e3usK9GWgZP1i=6GI$h7pjjURO>7jeLcCF; zHH1vjwJON@uSCmJek|Ro+$6*kWTZ#0{Wg}vStmXF6q~wCrTw*|dX@}Rv8wuMuZ<~l z%Z*nELzSk6;bVW~)})N36xExY zU@=?}N1ZeR6y4htX3WQ}W0~h`yMUU_`MJS#(mRkJ84oNJYYASw9=Wzc4~?QPi5E4r zuGh8vh8dVsU#1XR`o)Cb=kN<=2IQJAn}%;Mrr6!fUKf>c+3G=z25%8d{PP!rH8Azu zHo{~@OPFO|@3t0vwG`WBFvil>i~GhG+{Mf0#!VHnx#hY-;EnG@+KEI+uSddyT>49*{chD6aiZ=5kNO#Wx z({ICANJAuqK&|vTA;mEjwX2hMGC_xGaPLJA47-sR!#iAcq9P#bW;*8c@_YoHW0iGM zo1HLE9rhF17o)V}VjxUVa3xCg;RC)F3UIR-rSa)EG z2#6Ryx}I>lh%<={+?GXyK)89K9L((PCVP#-J??)H|&1iAOD&Cd5&J+qs#c5lOXc)w`R;vDy$$r>qDvzlQr4vf5|g7!FqkYv z1AV)AA8yg0ysmmE#dIBtjcU3~dOTif>?a!tkxMUXL)xs3+;+T}!83wNkwz0;aT6-L zF;$LsoAin}y5@vJA6(}8^qn57Dc%p)l6u>;w#~gYxd^~)K-65W?mwNNZ}`CZFjp$+ zrUe@tF64_M_=wo1;o^0%^zVV%9_*#` z`s=09psk@w83|nS%MQV5Z$ltPemi6eY$jv@Xmd{nwBgL7q0GzDx+FGxy-#%cooNkr z5gwav9wr-br7yZB(phjy5^_$~P@%j&QWfw=_k-$fFbD->9}-^z4L>uj7o771!QwT$ z1VIkF9RNukbOP4;ww`k=0^acpj^&xkels+Fz&(4jw%5T}I_BJM(T4HNf1Z==xZ;Dm z-I3q;-$ZD@mgIJ)n8^fcNv~h8WF&l*cegnhSG&h31b&yW`^;-dG|St7h)J64f0>>3 zdHhu%wU?X;?3?A0;q%^_Kbo_ROYATgi;b%MahgH1({1!r4V_@^VPvN*mZ>s2FwRX|>oo&cstPaQc*&PS zIE>PXa}ee4S~IXts!hxNl*XdQV=*R;*Y8Lr-0wDtWrY+Qe{_&sF1WYbb8(!u$_wHHh); z)z_J{^wR;u2h4Ja2<_vrC3nfvuO(OlxpnA`jRt+Rt)vK~I@?fz+|CC@HzmqWe=(qW z>HkJF?Lly|J7o{h;rs8#=GFhStj??W9uqtR@{VgIn0%o(scxBPqDW(A6MoJl_nk3>x7KevKMSX z<>2ct^RZnp=~u7lCd0F0%o#rSdRs_zksNEXdK#@1buci+b|q6eK+Y*nV}1b z6=}$b`vhnV`fXd_k*Q-yrmVxb4hJt&9q{LU3rfXHYY0HSW%Yx-4v+byy~ z{Gr!J*|iV-=P2v)`Tpvh{rf7YJq`AO$SQ{RDj%wGGoVGi4*q}IO|TpoC0s z*lzeV*$eF{vtgi0-itAy|lbY-}xIC zhmVj~g8^=nf0ya>cAH(glqS+ZA1HykUVA6N(_X=4p{p&bd=n=L4*%DmQ|m_&;O4hrh-u$?C} z_4AAV_as#7)Wp?LJ*6p{==YTWYu&{HJGGmY=3PFN0i~tR?1Uq=>m%EEJMHaUy!sTr z%;hfuL9Ona^~=B@AzC2S3|ghuh1`m(!e*l@={FA@6%y4+!)!9KwPCa6S!7BfjV*1| zC;vID?=yqDhBvs3He>1$BPoVp;JD@T#SZnwqQB#sIT$?Ww9yp(YXYhDA_h`~1r(6= zcQ~T+Fd(#xT@0?H5X`H!rZ&t{Zl63rS;q*b-IfP|F9_DRD*0N^Kb|CO$$%5jW~ntV zUbZ%FKLI#y66rHnT$hO+w=OJ{gG1^1>$zhyn%$*aZ^Vb5SnHu4wZ^lmyI22`*G1uw zH~&zD6m^elvtq*^jeZygexFm$*;gGSs2HJ(+Ncjlt~vLz)I-m42+lx{r95z^(ld{) zuR%qf$S0odnc%R&fwDq3JEpIA0X-MDi!uu&snYeIXj-e0$m}7V8AAm3>AdR)=1Bh=h`(~~9G2Z@4NkkICg*qZ05(eUug5YWtH#AUaK~C^8>Pqgs!H8a!>`{E#DaO zh#?nDL=NQ^`Mj-<#)kfiB?ArAu)6Ni)Nv-US&y(XJz(rVX}zgTSpxjtC@LYmEn+E9 z8&$m~>!o$HXI4t0PVM@jfD~a4t%J4HJytiqYAHZOBz&?WrnMS|%v6sPRbT5tb7%{* z2^a{xf{QL7y_e8thZ_?y)KMCkmH!6ppQK5}@o1UrU$K>p0qX1=G&-IiO@^B8>X^9C za1w^O`Bvr{aCPd~1L2c4JCZ?CpGn&NSdbKOP^RB%_wK6=REa~!PkP4NNX@)KC$%21 z5B{5zwKxN_D!ZBklAVq!kjuv+Nb|zGflK# zHz+hI1Qk>PhvOc=24r`rR*{OJe5OXHYCiJDvMg!ua-vWdb5?<9?R#!I=X%HPVLH+W zMZ*I~0aZx#x);)|`Amn(b&5n4R%bVAWW3Fkxp!cbB!}*Qey5jOdo~-?%BgS+u3hV) z^<*?G#B4SOR!es$m}f&!;nO5KX|oEG%3Qkl$SudkG49(fF}yr18lt&t>wpqlI)8%h ze?r^Eqyz{?to`RrkOJmN3ME3lpb^*zl|#PrjLXErts}`G6>wI3ole_txSa~{OYfi` z<1`g>MJc?U7_{Dvr^Hm{P#$`Z3&2Ll)IN2!dkL6^*aC=)uZXV)0jMXNsAqAt?5y7l zawwP+?#W5oH)=B%MAVy4&6R$E?vob(*ZT#c=x*m@Mmh@R*}A_uLP-kZf1QF6?zp^M zD!`1k>vjTDVCA!0(nC@P0(;RIZFiUq1}#uHtV@qizYK8dMM4Q`@JQj_TnG{xh5CSf zSP%7zbKmh@n(G{!EhsD5zi%amTe%=LpIod-#&(f`0phP^M+q6dDb*&by+N zD86MMv#KT<0Pz`+neeiyUo$oh+vg8my`H?8jiId;6MUVV8I@ep_Sa} z_13ySpHHR)X#j!cS>pO%6{|N1+SDxT=uF0`_wrexI`D=KE1-vIrNDBaG?xnX;h=V# zN(%mjXBCMYdbXw~Axo0I-&HB``z()|>GfKizT(Akg-A;MygP1s!sVJPLG8<6F|J~= z`MT@p(x!=L_YfH8U2{+A)@D1!YEUXdn@LXs+?MFr`?kC!^qn@X;q&JkRD_esXM5XI z?%L%^^5b+>(3sDmXK37X{7yMwq96oN@%KIbYzS@R6)9eoYuYee%HPwaE!8A_Gl@`z zjetqxd~!{&qvSeni6F8p%zBoID|@HX<~S9);;^1gJB zRK*Tn1S^#nyMe^Mhe*LemH1wF(()&+)DY5`jBLoLx0=5l4InBvfsg{Y-yLtw7D|2} z?NF(;7RpAm-~E|pr%+zbX&!0}6ao|N`=xL)W;`y;?P0fZL>{Z(S8N&d_Stz+I$U9f zL(A$%&M*FH-TJ&X5*vxvU=NX)fF>wgN^@!Y&>AHottNo5>2x2Uq(So*M+J3N=>@1R zbu8O4bhP7dNja^$Ru^M|X1t>%&O~|Ta-o45_8})o*;#a!{5wbJhRYxN`dvHF!D!}81^6RzUf8ny>M)CFsyq~31 zS5!O*3j~A86sVV!ShY{4}%ems`>0DQP{!#mxjenZxu2DiZ5(?z)m?y zr8>`^T@=`Lr57x%Qv;Sy->L~Ge}S$VTK%2=)bJesI6V|?PT$Kk_ob4k{l|SxsNxlM z1lh7fV2*Fs3S2qOrzg6M{f}zvKiAa5^xDJQkIQn})MuIA3!*hI_c~0E!`C<)aNf!1 zNW={vEs5MwIRckF8T0v4iO1_WI~oEy65HsYIp3~&rO3tS>xNZ}&eWiJKK2r+NDxR^ z3mm)CFH%lQ6*Gqj-))gfG$WOf$^S%Ri*|yc*kXSnx)sy9nWKIyr3W(5h7e+GHk49A zrgGUhdM6$hw5s(vTR3TsZ0XZ%f=XR{)r8e*xhyiO0_w*c}u2zna$lM5xOw0 z8Wkqn3z?ELA0JDu6$%7^%?yPskMi|w?#E!qa^XW!>5vx;=egXhCOXwPh{>mnb%Vlv zbpDk8DyGKIRq?cS1qy2th&j7w-s+r@7aG7woI&TF07a@z<}oP2(8um0lKQAaJn3({PiTNVC;G)@b zuTtnM_bTG0F;EYiN1gr_x6qp?y-m1i_l$ezEhgz{#Y6bW)QJzBc$Z7a1j0#RKEnjO z&Ue1jkYnM$$DGWBXTAah;c(DlZ{qYu#)$@Q0=pi~#0x1x_EG)s$&{^tC(9BXpCJa| zZoc@}0Tlwzw>ySPNy+eGj^W#e#sk>4Wr#9qNxFI4Hl`dN0-gFukW5`$=Bhs?0LYoA$s}>I>D|0a7;SS&+-C7tO5kO z$oTA=T1aP#3FDWmjunde+)rDKdn|07@HsLzg_HA`=-~C7lik^qR@wPxV(IL+IAthD zzk(0yz$x*dM%}7Sq!vtN$_*L@G=`~6=`d5f<(4WtQ%0%1K?c+4Xjm4VOV^m2cc!z6 zxAXo?|J9qB>YFn;%IPv?JF(6G@XuQMlUB9={om#|Mxn$s{vKCOoJ(KtVd*oeAk0`l z^GIkp6#zg{L?O38k0@-y`IfNS;%zd4$80?#Sd(*%7_3MhBZ_G$LrR66Q^uMmOP>PG z>x$N6ww{eYkNNUB@R6$-QqYub32C!6-oi*pBNS!(C2%m;QgQ@jFTZKgpcN{{eGvqD zzV2t3!LcSosU7Cg$-975o6R7Wv=PQyqkb^rNz-lqzrPz8Tmucn3D=-|AUe|YXkW;r z%o@W^n0H8x-;(mj9^bi5#k9Ks{oeSq=V~ah%RmA^qFydjAR|gqM5p{{MziQV zW_c%!e|EaG#AVhAyG;dU2Eo)ltpf|s^_oZYBvn05!@ z?+o!!cY(RxFX3i!tz0IGgh-0f_^D;maP227T466o^>%=ZVGQWcLF}?<{9PQyO)>DUhVZQ7NUNQ``g& z+or~+>{7W(Tm#a>P$V)y46G)cnOsV0V9<Ey zJn%`MhMt0zhRyb6{lkyGzPO5W{6^pKddW80n`wUqM*TEM-vbEovkuk*JeZxAx{O3C ziR}C$AB_(S8zc~j3U!Yu_32ZN05R2l>Cl8mn7>Q>I>ru9`U7{HF>?}|{^nq`&us4y z*DroNd=_>g5tsO}&(n#H0*r!Ai##~&9O-2 zESCRe*7hian zx<>)Odt}ih@frhif`?vi%vAASXR~4;x`FT8_bUf)9sdi=L9(~%uA?5rf59oIZzV$H(#=dO&^)BrNq|aTqu(v zhC-8Zqc9~URv>~v#$?=>;&_uRb;WbG$mNmmqJ8YnD_?9@J45|2VA=Hmh#mxj?21GJ!Y9a< z8=%^QEEU>`S2x_$uo%B!TwFztsT2(954eDjDVhs9CHS@9hq9Jw0C=3SOhCHR0LcPL zDI&0cOxU@9FXA+wvpEQN@TE*tN5jUlf6|QsG8U9=95%94>$&Hc1~Eu9P;xn4{je7^ z)Z}N$j0Ha#+AAm(fI0|`{K?Ra(3}@qC(POYTmQq3n0ML*Ox*xeK&-!wlI!wF`fgN; zC~X-soFvPjT2O0y{syQuSA$Kp-C~4}^7WL2WA(9pnI7S-uZ~4U64&5T2l;0ifN&om znIheOpi2FtnvGwGukaXO%n<+FqTD4rP%x}{9^yy&Q31NdM2fiwwFB^CSX}MpGQ}_0 zNU}^^hiY!X>x{p-h(nKFmD3EIFM@M`u=kBY`vQ;^k?X{GH3#H-fI}<{Y zoGq}mA@JrmC3aAgpZkbY1s?1#42S-ElfT`$8gK6i>6AER3W|A9mHOv(FjtW>#3<~K zrQzT@{tYfJHw+EN1R=HQCo^uW2dl2`_MHNS4UW;A{}S(-F3B&=b;#q zxaH_$;(ky$0_34`yf5ezsjdc{vFwiEOCN>lvw7&-)In;DhyF_LC?M$4>@dxl&xuQ6 zdMp^w2moqR5G+|{kc-jXSFGv7m_3Axqpl5`l2H#b^U2w~$iM&$8_Bd=0D~J?hGfbc zvlswTSmk3Fq!1j&jq-@u%2dMi|4f%ju4TCmMCZAR+Q2u|Pz{%1cnLN3!26$=aY8pM zkwD@Sk6)tLL9%@=5O-SVnf z--?-s>sycO@wwTYz8Ny>EB`Qdx8s1!24{>8u}uyiLz?7aOqp|H+L5+t>lvF&KEJ&` z!BfT&1l+@;v>jF#zT61dEYr$Rs|pbCLn3QHUS^bBtu)K7lPu=tF*DEsl2rCx(>s=Z zT`QGL7E9?EuaNW50Gm1nDdGB{Wqv0zI(2bqG1!2#A;{wNNBsxo%z9*3B;iX@tVA(< zXQFuG-B*KE_<2aWP^l6&@;Ro=xWu^Hli(MtquJ(s&(XCk6NDylRRH8eR|v(%cj!_~ z1#~`i!$#~l8q9^Z_?m6qWw5s|v&9Z^kTC-Qz;kzmlw;dU0YfT7_yIB4F#xs65bot+ z;&@5rpFcWoyL!j-veT*0{ik)`n|7K3UFp-k8Bew7<{LRO=kQ~U|G^VMQlPsStx^L zWGFi<-URPuRmm2#EMtp>j#WyTMnmuxM4xH(6#tohj67Sqzq zf@M$is0de96)pai_FTg0@x4l?X^G|jepro`+Muip+|B+T)z!+A{wixwv*ru5nVQY; z6bV#FoHFR2=}ZizxrTQ?KPjntLh##GXXWx=9aUwu??9FA%iz$64F`^pD|Hi8vHRV}K}b}^W&LYbslSc*9P=PeaSYE_ZyXt&YUF%L z4{rXt;l_`<3bJqCfD zvFSq|bLJ><%UvamAbFs!fA!J{p(GWHHkQBs_}Yt3z{d1p?bF?yK%fV zR@FrL0=;vvWY{lQh1Mc!Wv;CJ(sZj_KdY_)tnNYJz0tku_P8(e7SEScpq(U{*<`eM z!z0=#!IZovHCa_48xh8NS{XP*5kD?=5nX(qzV%>;5}(vOcw z%IJu$(7|O{{+)fFtC!OzCQHJvq=+obsEA6pkNG?|X8Jde*7Xh7<%xWr$;@0X1d_u$ zOIe*F^c{BX-cKdyWli{=^{TAsw^@?2w+v#dANz%^)^&?}+Xilz}r*fO`?y&*5OZ?+lFsL=ly3kLD z(Es!6-@pF%S3R%()k99IUTBZ{A_kVxsr}`g?72-f8dQZTa;+0g#Zcwt2Y7Z+pn=N7Lv%Ku*H z)1r<~jr^Twl2qNw&=A+@ymO~Zc-$SZq?%lD^~LqU=E!)w%pT*d8c^#}s2n2)Z^4M+ z#KDj2)%_e0b}@WL+b?yG8xNCk3ze!zm+3%QTf+I>EN(2b(-u-URr|po1?yk zI1onCPmIHmB4vv(^5J#C*~^s)7#%6SB0uZJVL#ZfKfTFz(jVdXiC}MZx=d!X&x3$< z2byvzNt$ZKd~!?fI%$|k!KU^h_ZqBXN?y2qM^) z+(mkHdRzr0$`hP((m2e=Y<}I0d|ivq@z zXu)l}anNsDo$rbjyK4%z`!22%idWM2jq*ush`+5l3Pv!KWw5AH^gu1vw5ss7f_nKG zsFyMTi1zABQ@r37(ox*#-Lizp(7RU^rRw#(c9UFRBtfg5pe}-)2E)s1K~Es*4t@dt z1TRuDg-w=sG>oQ4;X(Y-pzmfi7x9uvXs|^aZ7|lJ}kYiJJN* z9(6Zf^x5Y9hwUmF=Yo7|I>G0_3a3MED5ML-oW$r}S_@Jw*GaHCxmp+@Iu21juPJMy z2Cq7ySc@?4!q8TQ-^T12%-yQfI>FtmZ>1i$l$GQ(Tl_Ob*?H1p#Res_ZqW1`Tuccu*&PqbWg>q%~y>!oW0@7Y~OTICc%o5$nh7Q8cP_X6DBoj-0V#%!-q{TWSd{6 zmk6D!mF?#fk!3DeBa_oM6TSI9^zu6lh!f8aRFazMDv8kyO?%-7rcPogV;F5GjuWFz zrz8xW()MLo&4}`&?zFx-0z*se(z6 z^&PAev#Z9-Rq5gAmN{&UCw6&-Vpz9ZGrNUFfZESQL_L>0I zaq4!U2oc!ZS>XQdMQu1ENYe%bmvIra8wIwLnFy4+1er;KRzE7sLd^`2LwM4+9Vh1e zKh@=SW!a6x(0@lU33M+#Nh%)apM!~wQ*O_nSeL~k@c{y?uRNxzv~OM*Z8#^NmBg#_ z{qo;4UjO-}kaY3>b537Q%=*`0vf9|lyoaU|@@VgUeJ5rrwoE4KOJwq2(r-Vsqs^Mu zRvPB|$};q2P-wUkk7=2dl3|$XBVywDa%N1WpPw+y8M^r z+gJVPx|rk&GKB;pqGKAg6|SunfTniy@T~M-HhH94I z#^yOkADzJU+Kx6^r33vcav<;tg%*d`en<7IP%DZWSl>VoUvZo#d% zbP>*l$&|6JQCE*G?;t*HYU-Imo<{?TvyLdA?h?!e>&E=)Z&zPhEpQ$@XLH@ z8%GBeM}~`5e!_JPV=LZW50Z}GM#Zhq?I1*paF>4>kAI0YG52?+Q+|0hZL}90Nu`yP z)x*DL36(}tQ4xbxU>uL7zZ^d{x-Q)gtI)NAD(50D3wzvaw_q@?Y96XdbbQ?)`YHO# z_`7@lS5w%cqxgDxly2*^zF>ul7Vj9PcDf#!Q(;h6RDE~WZ`h7pI3mcyL(hJLur~ADGhO~(A zE9#&r5lLZX&;Hv%NBpuj`unc~JyYjC^}Ix7pAUXp*`5&81DVxjJJoGmisW!KnNp1# z>MKJGzc*;GIuAn@-DF>^C+n74V2%%{6c;|)vrhv{c7=zP-}?K$gbJSR@1x$&*wXu(lvft4}=wGxV99QE>Nm#r4jU-oJxSey;<*?0_dh9Od^coh;PDJFOF|b22s($y^{|2 z%;5MtR6`U;XE*&fUoS9YDqErw+Tp-}B-`jQbxPh7RTu5PpSTt8ypTSPdpotU@+(%K zH>gnN z%h9xwRij`(yDHjHZFsK*&8cf*-k~cAKUMXi%g$aH1D`cm6#R8f)P-1s)Q8W`h-tD` zN1v5Jp^}d3urZIFE*9w!1(ddYdd*69@k`%p6{Z+L8&CUxT-|Xa6vRs9wp|jkww(_` zZwrM}&YEUV(S}mBFI%UGrWp=yieG|+(wA)%JDN7wbXb;)dd6Yi^wl%9uZ3ZK{!wqf z+;L4FUp=abuo1@#OFiFXPe73F)Rj)^<0lASdj7r6-FdR&=oi5olo|)L;M;zzVkeDv z)vQuGbm`sfgZY)~9@4e1y5hpTPI0V%;o-su22{JxRZc3AEfUW3M`L&^Q~mg=BEML$ z-n;C!WzF+=2%{n9-o_>K@x38_>VjjkJeF=31^DbQb7A4?8OZUyNasl@);ESZjentd zdH!^H9=H5*ytD)mt++AXWuNptY-C0!T(HQ_}%N~HKBogBH^&9G?`&)j`bxCIDeOdTEt4%SX z6KWnfX6dW%n4CU)b!Bu_edqzRupn z6jV2-BpRZCoeiKYAPWO;+%8t>1v8k37rN%OY7>y+R}@=nr>iso%2OL7+!JXKo>xrpO7;y9SVcx2zZV!q! zg$TT*!*u3EIdnHNEM}|4G5N1cx(DMWlkGmZ_%7cr|D309x5;=?BT>0Gl(~b<{Azko zjEj$)W&ex+_I?P5I>(chL|{y`u+$F1o*JK9DxuOP!7`YT`GA`Z_JO?a2$+vz>FvU` zr|aJZ@(h~1%{~9*gaR1JVPNnP%{P3YN3sk59g&j-XP!ncXp2M1D zYR6B<1y@ZnonM8QAJBn>+_9Njy4uO7)r_8 zOvn0C_blHQ?fJSU8aKt3AQj5^t4~yZGY^kFYaefeFT3xN`PIXdEJUq(bk)mzM*vK>!L7_y`yp*SM8TGy(DyL$a+_V1&1Oo- zr*vdjqm7NRj@_EHh*&woM{+N#Kot>K;6_b~9id6NKi^bE1pkf(o(9Qo1BRYFbS+7` zK-adl=l`rf`g}xi^66^pek1ejW&lotd66#8bXb)iy6X8oM0?uNJM_(M_}UJ(t=p!) zvlnR};SGpU$4}TMWAE^r)@twA!G8rCJI)s{se|-q8>NjsLOIzCN<6!rq0!n~7eABz z5WGlGqn&qM{j*sRgBqO!6Iz9FEi|UzdtzIU=z=G=1r8AlBfb}($Ala%b^8f}#jO3W zb1cVGPA3IU+aww)= zU4cnv{Ka@?-IU_v22Yo&=D0$K;R094Q1LnKt4@w3z`mW7sfcU$-Uh}ftiEXj#YcLl z;blnD_)Rj)yMmJCj?wyLCnk_OOpKu`GTF5;G?@#@A*_8T6* z9RELK)KAmo;(OWS^WoI{IIQo+?Vwqpmd3|;Gp0Hd4K$T4h*uyj@JSL7uFl7Uqn?4> z&oXeiqd+`eh;evVbcKO^j{vNib}pV2{1%WGTiYep&u6=?_e~PgU3RGk3}(KsGFF~L z-3{Sra3m^%zq$nZ^jLrFL`#NF+O!#355^*0?(^KL5M0m;0RZ#O?x~#RuFwWREo>0n z85FqJyv~}mV|T^v5c7EIuIU5}lCLooF$M*05M)%?qygg6RAn+HdR}0zVvk&yAQyMb zjpb(q7TgVwnU+T)1Fy-;_JoVjOoHwO4n>mwh&<~X?5zPAr#S(ecfkg&; z{#3V7h`7t8QQYx+1MsHo9~BuBFZKXbDlbfSPg66wgVG|pIsnv;>d7!^nEkp2V#=@Q zeRV?>oh_%~-h3T~VFS}Bm*E+Lb!2#lfMCZx_rQI(NSbC(v2K1OG#exfAJ=bCS8ao4 zH598qfSuw4{bGvCVS{Q&gfog9vwd;-n+FnACcl_(_EH>U!Kn?Y*#JR#ln1oq1OTI} zzvts0^;fhju7Yv)69))Tc%N@bifh>0jq6f6`GNcOb48^b_w<)4&@po+e+9n< z#)CWF>WTIBIg}E@9-tI;#KzF427IG~+%)?5TOTs@Ya zi%|E?v6~vEO9I>j?(TI?SgwxEEs6v)5TniU-0Q>jI2g2NQw#R`u}>Z5T`DT~+s&Di zTZTzNiCNiz)$-;Q=q3HL!WPw0c~qFa?w~lyAgrpB)BD1BYjsfYRQ}?o$iK3ro;VUS z11k3i$`&`MkkriCFI5%nhE@ ztDEB15CV_9V;QInf!PtynHx-^ep0L&37W*Uc5qs*+0|b>9 z+R}L+;xsYV3Gikd+_|M0zj`|x=tynk zXDd~4i;uDiS+@-!RZ`?!!9r8A!vK_$8KzT;%*&}48y{(l_4sDA+df3^ItH-z+yLEo ziFhrxP$aQ7J&$bF{4-@`rhJZ`i`H7a>rv>O5(T)}$sy$VWPYo&G?^UnF0(cpKkDVC%GX zqv%?P7jOn`%lCd6!J3lthv!#m8)sbN>WCov9ObETvt`=9xSbAsR4f2rvuAWAcVPyf z5w^v32_|CS^CfUBxn*$5&zuk%}uB2?IOtABrO z2YLWO(|c0c1G+}UVtO&#rYNVHS-LoJG3_(N1-`n2r z#2EmB-ZgUt*!E&PUl%a~NdkDhHYNv<6Xlsl6)5N>;Q>mMNaPa{WT4G3wWk*&lbvTk zn{43Xmzx3-qL$JH_(<^RBd6!#5@R(vE{TeCnqOS384b8m)JNfDnIgT9wmj<`-ea#+ znwu>57DGTkZq(bMQ>A`)LezAR?Pb=yCtJx#j7cCDy{Wmu4ysB+z!5(7JlD2Gkn?t1 zWNMoaHi*f~$q!^iciwMD_4D{<8##G|o@n%~v3;qR@YNPE{2f4HdnEc>l;H>Mj#oV$ zw&;K`6sLdT{T7#H^NpT)n|C`$1CXyj><3=6BX04N9DzWuKAHpM^-tdcUEpmX*?@{d z!^gJ7=FYh4E)J-4`s#M*zzzhE2wlN*(~D?RO>O-biuK5H;`T)q6$`H}Uf`lrcVf~P zH<5qaCZjKf=1Xq#7KxoQ46JqpBrV}v6gWB$(o)j%(f#jId#*d@zo&30QbomH zZ5g27Xo~KW5fpT_FO^O=ELRuP^i1ydUKe&}DNmtu@}i=Ro41Y?Z+w2?{m_ z6l#g%&j?j*(Vr=HWUA6!QlT+bl1p>IxosXu8Po~^y5g$Y6@m*aQe7kwvk>D$J{rg4 z7tvJI{O~E6hy=(4KmpX3rqw}vnkVR-O!mcli?WRSnQR$jDt9+5yBo2Doa1$=I7IFP}@MZV;*s(*g?)0tH(lwoch5$NiZ*p%}J2 z_A*>>?|u10hYee#UIL~(Kr zlcB*|^v^d>eVYRcYKNw8vlXAqbU($$RsBzE$o^jNoShMh8K@h4|4?Q60ss!kG67SL zU~+>*mrspF3hg@&KrDXLpMko-N6|F67%p`_O9O^-#J2PFHKFiR zzeCP$&O5~k)_r2PA%%-C9=pQbp@{%+2Tf;%4xEppJt~QYdfxchjXa?7* zJpsk;^dtQaR7}*QqLjAyO0Vc|sWH}->{Kn(WuDfa`^%_vmO@%k5ksze;LpeV3Lt1E zfRx6QdsV-UPNv0XVrXW#iF*SzN25b}rRHAa%SL#SnoBA2W8A=ioM_3b#&2t}F@EKU zKmw3iygF>`fD$wjbGP{V3(k|>hB9D)0gigP33bLWy1r*_qyD=(#zp%rq$Yq@$ux-f z9GmEDP*wo-_~!BFa4*7W0@&mWVh41Xm2w|bWvz7OX@v%XWOVVkNmQP(eZ+ob8%&NX zP)CWg9KWEr7l-@Cs>S5%cXx|iTZZ?5Pk!jfy-ZA8CgLh-X5-dX+O~XdB3~^U{daT; zp|8shJfP&m-^G6AIIB$!3u#_6KN<@aQv;&FfHts;58k zgHZoKfy~6=^~Ri?n0Q)IN$lWDeNm+6rFV|3`M*6b`5~NO`=zRNxd>T}-sMv#qqdi- z*(D^G@i`vi*PRGJ=`X5&fF|-~7i;j=`JZMC4PR#s9hIMsR7A>9T>zs%mY2Q#J_eQD z+W#rNSRkESr7R_tP2aHJB1C-3OOB+h3Dv8i3F|2qzaF|2n~ZvE?ho;8k{Z|@yK@Hr9exiGIpmls9A!p5*wE!^>w%Cl;o4lcvu6lDQ zF%K+t>{EZhNA|+IE=M#_a1K1xMoq4KilZi5Y9dw1@zPFqk6l#KG;D-_b^%;|(k^1M zyVMTqpbbspScXo$ve8T$J+j86+t9_O$HAgT>C&{Ds5FD_mF-?6j$NL+H(f>t0y_4m z66+0OX4@ek;s{=N7W0Ch1f-nhnoyn5?L78e z?u}SWfQ-5L0&t{{T!$)FEA+cA^)*%j1&D=YYs+G>6BPH}9rH?P4`f#fyqnF=L7he? zG=V3e_pI4fZs_62mrnLQ*pXK2e!N-}_qPK}$S=*B)SK8iU zX8edVvgCDp&zTUyKN0{y3Jy935eej9^8J-|1%3?bx?%u40qnCYpmXRiIw1VpJo4@M zPnEnA65#sUO}byrKMjL)eGWYbG;!i#c>Hqt1-Z4q3k;bU36(M9~+)9V=0 zq)@Cm6F!}f&NtYdn_Hj=OEqA*7P&duo1G>p~^F+BAdafmI^Fk z=kFAlcjlp+k>MGeOHpTu&%{oL7W_SP8*gyP=0=(xT(^Lv&0}ugK`nun4wMuqbZ?jb z*2>U=26<~GX*~68mX{S@eU2v5{%kMh_>*Z5lvdb>FF&0$<0>n|2e^WMoG|TELP_ln zu_@D}$_ie1w}i2teYg7Fo$Igi#+9|v1%C5X;xU-o%^2NahilTWAqq*Iw1L6UoN0ohLdksfWKT=f(=kB` zrTnubs;^G0gn6p3r~LArzWVWZ$k0XUlZ#rk_v0QOZiZbtrjBNzhi$*rfvp+aODa!Y|l z=)8Z&V7>Yy$os!s?~E4)wJZcKK&K7+*8~c!S&|cAHd^sHj3}RvsZ(iK>KsV^W?#xS zi0=E2O=5+g9UD6*0ICPA?o6O^E8xyk5m~lAK0NPK=9nsTOHCx5?M**>?0jis7{)=v zD5ciftu~Q$RW@^GEi!7W^Og9vmHm=%OPfStD+M=;cd}RTY+6 zzd9A$=>CFQ2!G&hEa%m-VRtWDY=c+j{5U2lg`HnXHcVash!Bn-SsFz;q<#bEgE5hS zw9VH3OhvXx9h!LKb=_ak6iaL9>#l;XhaC$*>nxjDBW<&hFTvzH6n$90X#UjH2m16cg{WyoCB>V%MQd z*QF)2Z2?QzU!9rS6DowBME|&SC6HKC-6}NB=)CRUR!2)a(h^FRb?O#L2EfJE-WXyw zc5jj$3uR91#~+SP*%oOGlA~v|;a_t6g*M1#Nv+q-06^RVCy&$(CfhmvN89_36t{Y{-ahyf2h4jCP=_skX=YP?WBUGW41) zZed0M%~Rvsk#uG9APa^!N@UuT(p+40+4LIiqjI8c9wy4xw5j|Or>~>dl&KUa&vz{6 zHQmybchzeKsbybOGl|c9ElP>x?`nZPJH~%VTlolZI2$v`kh)ZS_YRw|M`Gft_^Ly7 zIrsq{b|(KKRlyZ%zA0@+@2b@JbY^rjASUY@byf~{L4bpC^wt~8OXxCeM}MF*FA)|^ zi8qfLH-K$MbSr|Y&HV*VUe5y_j$?XHAH{coZ*4T=3C?-o6|g0JO_z@Kz_A)5O9 zgoI-aMiY0>EtlF^55 zl~xm^Ai!Qy7kI6NNJ%JkQbH>IhpQ zx+;2cDnwgDq%~(i+4`$WXDNxANm5jh<=ZpdY(Ra;QMLJ|o0Z1_8eoTGqaXW# z+WYWp{ug=M?7HRl!_ljR#ZM!U`bO~d9xvQhs2gOpzCug!J%1|QKd~eUnnzJcM z=`ItjN!y^^^!NBYjedP2Z3f*t#jx`agqAv``X!v(*p?WPrFl2f=Rx~zv)!M2(N-{z z(z4n3Z`&PBe(`S8XL;KJ5MZ8H_GbWqBB#=36Nt$hkCBPtFZRdLWA)eQtts$UMetXL zo_tFa5jdO0wtMEVb)FX~q4$8>mU0I~rz`djP|eP3ygS*NtYK5MLIil?_bnGG+IQ*= z^zn`@hsC$K{#H+G?mojU_N^^L%3+qy-Dhf%)y(7mTWLvEsWz|+(0>nhS!pIz%Z|QO zJ(1EcWdXlT25EZXSf4Xfs%M|F)lIwQ@@r<6nvXXnMnRcn>3R(ik5EZar>)V zWBNiTOaqcDI$TQ1X)P2|AjA1??}-VmEro6MMjwBHHSbw-3$@Xcx7thC;BGTG zUQ@hM9g3$mlol{`aUyAJe_FC_b2kCRH;tshvL{6uuF_V8{`>2nU;qEAN~{0oR|TMA zA-oH5Z`J$%e(6*F+e25-G6-YB14^#45Rs|F1_M`3ulgM2UpaI-dFN}fTVR!{EuWe* zLls77N(Q%Mds|&;7a*8bNBdb#)*27PN>f&S4|l2VujzDDSZc8gfc1(C67K!!?PGCzYn_k^1cxNcpdZBl}f;Q ztD-8FbL)3n+MZRluqddK5=S>05z)L|V3MqQTy8?YCSAJ6WnHnx?heK34vzj-L9E;l zgSX8(?w)?;T8m6l*jp7gXHOc5tJAoSl0Rwme*V13YJoUi6B>|ujt98d?VEsYT65&wv@nMA2>SbdZxVs#1)sQsl<3JKnZ>>UP8!_rc3 z+99A+hYYTD-ilQQ#nl5>y>aek-1uJ|q!CzAqznZ8#tNfhF8LL+hM!kOtp_$@vT)~+ zY!4(3z2MDUc_Bz}G*$d`#h>4kN4 z#|@SFaDK5Q&(B#jg9C3W<60hPyeV5zczM=*E1D(9g>uwjhp>_Y10W`o&FfmB?C^lm z(GjG;Y_=6i2;gs|s$7JzVZY>#52THX8E-I;WLaH_*HXx#=YHt2Dh%3yaW1BhjY7OF%Cp1InfbbK#;g zixf!jHjOOrrLz7;$Tu?K7m8qYq^-++S8*Og4m#mCV>T8Pl8heCCS)08#$AZBqhsJ9 zEgY)_*XCS}^WtIWStaX3V#U+p#8t5h^MHm_ubW&Em8$xkb)hP(Wa8h1zHU-0i~5yo zvKbdy;h&#_^t_>h3M~jfZM~t?F9dPW^iN!{N$YK);d!r-(IWnvQdt!h(M-y2RrtSu z^P+-7Xf`Wj`If2>n9>ph5pZ=x1&C9A<5O4kVULpBw5?EZLGShQtbVDp+VgVofP`4N z5^^Z@47l?paN;gn2(m+w*{X3|)z0CK+AWNtewS7rE@)EQ%3vH)XS zi&M8I{Pt%O!tkUVb^=jaVoDaJS-n3NCSpZ)cN1|+c3;3fx|q*6(4+dG{iZ<1kWDy0 zULpmi8@4d%_8KN4yiC`s(zc-!V)OUv2aUCZa!~BP3t4hZMH#LdbCx~m!=-X)&AFQxYVYdLLDq;!UbYe|qHdCV|3fGpF z%<7TC)QJefvB8uA&q{5I15PK-SMqA)i8i9(6@rp09GChiS z35@YkTIxcxU_R(9b5&!4%B2PTM*dnQ;nM3`U{&x6GDfsQTz-CZ;BkHd%4c*?jat|C zXpb3gUh75}`#uNsOuwcnHP$7n;BR)|eKA)1pw#fR2!f}CX#`_+q=`b6d=>UY4pMM# zhdt;81zdDxL%b!r=BP)fP%SH3r+`Mckjbq`4qWYeY~^Ddtd7ch5)s9v2OE#x$pOrgprw`#YJMyCTy~DoJ*m5?*&tUOvm}jy&wDaq-5wWb~5WP$uQg~7= zom~vAa9{d`Ti-wOe?*sAk}Ww1Ls!%ho&bCQ8*6lwb>B|~uH>dk1|cm6mB7)w3OC~c zto(u+=wt9Iof55^U4w262pD|wICAm$MjcwE(4{eoJ(lodzp1QOpc2IxlG~z;BfnRr zT7M3nXg!;h^r1`82Zvr=gQtcN0~g@s0kA-qSMHNN89ShRy4 z07kX+iMQqtjQVuhr*yd4PQgpqKF1xyzYkgOu2X|zLEOXD`%Wm$V4c!apIvU^m*}#o zu!R&-Ua)bPd5zBtW;R{|vLf*diZ{@!m$kZC3*M4#GX)P(GtjH!+KGX9R9bwnVaTs4 z{naAH>k3sya^VvuX=Z!vgSBfeyyoNtyPo8K+iNfEX|Ka+;T1}jWRoa_I$DT_S4|`V zzrPb);TOvMybg=`CJRelf6V#jgOfR?wRB4JLS{fw3TNOj@x3TE%uf#>#R^t7FftsH zKkPlIH5x`fdkEFNDmT>{=qS-m*6Wo2-U9EDe$$4Qm7fG%f7OU;-nO4Z-vyMj^7i!} zV^p6S{mc0oItb7tZbSl!{H*m;FMZlb-ir)4^ym9F=Rq;yl2R6=PC)KuC7X2lwqP>jSXC+G>oC0} zc{}Av0g_Hh0{d(Ps^!#%;3mpsBXSDK*LJ{X%F~chC`n)sHWMEL-f#K!>1{rvJ|?17 zuFz{Pq*~%t$ipJuLgs98F5DDNbW}wQ>!S}+O$VCW-~FIhIKes&g13iR+~#5`%XNL< z9UAb#_g!2Asdf>l>-qbx+j>Gb;veGQ00O@(T#ArJ}-7CuJDa( zdY6JAJqZ7qP4%I<*ng%X_#KXuOlXNHMf&2Ebop~=tJ7An^0r0Uyk5lv{{%oo`dFV} zY`d!-e)q;~$6hq0Uw2PQdPcuVqp=dTnYEFT5_h=P0oUvAVzD zgE5v*OaafL2V;q-uj%_@>oir|fc1(Yw;e3$FR76mcBasyR1^OIfpo)F6gJ+kXA(lT zS)Vz@T-I_-=9mO4O^|?X+ba5(s0>y+|7P`-&NzXg;f5U zLi&8lKrNF;cWG^%E?rv8!nXR!ANxPZDp7Ns%4~&KT?ISNcOmL%Dylo^qj^>I+aUUA z0C`e5lhJPWVHerhi=Y8tC!(K(iB}r1m;(Kjxv?Fu@ThXrGWp z850CSNWnLSK;7ZQEs2=WIQ<r74Hu;p#Ea>$zSf>lpB$Qv^zNN z_uGToXMcjU?GR$576+yIopP2EkaAg;49ylJBbBk zM-aI^GN3@i#Yx!tAlJtK$q&#*G5vw*iRQwhEec&zs8b7ofF0&H3k4N9bd5T{DTH5D zBulaBC1N$AuL0Tb3fc#0l)-hL1^B`JQQx-t5fQO92J>+t=4wBDXuP1r_mFcC>sp;&}G3aL4&GOpA(n;a&sfpKUw7t~N`W;?d44&rN$7>8Hqs(^X+jB%YOm6~B zx1o{Ys5XjVhZ1_wq=MGA`S-==xB^qrYLhl*55pZg?JVDS4pR391JGI5ZyuvsI@ED> z^x0F&6-SD&{W@f-U|ep|Wzcq5ato@ErO;wYjo#^m>6?nR+V+u#e6&_D319z-Wla*& zb{)DDLPs6ObS{EQOd28)szLmTP<>zSbLn&xRWb_1o|NHE$1cW@FyllXC@s9TCi2#K z&HF)Zn{3R7Aj-#Ke^FIeRH7{yvZT zC~xQ{84vL5@5Oe1-AIR7%TIvy)9{)H!HLze|v~KR#T zU9{7NbzhJUw}A-iI@8jRK04~n(H;D=D3!rZkPj-*Bi~|TKP1nq3*SmZ0<5*}T1!93 z>jv^5I@3^PV5iDLJa(}`x5^1+bC-~%kx}vb!{&G$snboF-wUDC$P^!}h)`T*RV}r; zBVS@XxlwDltE2;7NF*h^*32b|hC|4!P${mmwyIeprPhb?-$L0&E4a9dJ~pBF4V~D# zV5V)MRgVrEzV=Ecy|(J`zk8sbOw3~!gV+E|K(xQ)1B5y^>#d4E*H`a{@!WM?ZIW<; zf8hYYB2|P4kq6OilegnGk}p1J6^Pr=3<10ez?p2qhJUJgld4lNaWQ>mUP* zzzvst*b5nUuRaeGk)umhb^NJF90dWR=3U2)B%G;h2@wwz3bzW!1yO5_P~A+Wag~sO zy_d9TD(uZ&W+mZIWKV80n5ttr5;GUG3OO=NKUl*Lv_D?#bEwl<@2_ciHfs%BMHsIO zG~l(G>OUZp;#Yc@pSh|N>o#hTGBOc&hX*FL=0q;5A*jjnm?jF_6Z`FjSkhb)A5dO2 z@-!Ygbjn+85&hK`UHd;HMlFqV_OM(X^wzkaLlz@@*z4jaT#H zCJnkMz#{H@ISjXY|F3$0QWqX3x=1WgNoX&oVu^!(IcSAy^2Tl}9)YMeAr%?E z(*mk-O;Sb~JiSpajhQef>rnm&$&qz+s|?^a75mja?=Q9e+_28#%T|mRJiL*JwbNe5 z(Z}oV2TCPcn${5=uMR|+)tMT41uZMD{OW=;~+MmRld z17HgL=F}1V0m58Xnhq%RgEV*+k158}w+|FR)&rLwHS|7GHAq5hK5tMCjoZ$K|CHD4 z$xb-UP+i{vs-@6n5qF`1u*FVrb%fsn@S8$Dw_(O1pG0|D9THbXOpw}-7jv6|P{UPacWb=eDQWU&fdzJpnjv6 zc8#^d;N>{&5Q`b95Nz_?$cr-KSK>9HY+}h}EJ~c?w*_lBRNGuY{}dR;yVq$Nx#u{? zrw5EvUgEtP9x9!a9;DvtFqWe8{|TkZ1BZmt%;%**XhzmjR8Y~VrBdKfoy$6Oz^&kS zHm-GN{hHy1!h5-_Qn7hatq1zG`!Ffq+N<&9sa4wVZgKmTe&0o`p23&OK>=hl<82MC zaY&HtsuJmq3YDx7iR{(9-J7ZNArZ307b>3B!?NbbZe$?i8dOl`PSDbhmakz)!o2f2 zc0l32#A@QE?$nM5r%7ate0*I7ow46*I_z!whMGuG5t|q)i)j1#9SzoX84>-0 z?VCTTJ1U3ky;%g(qE-ex=cLyMX8sNi>r{>kh z#d(DtQf_6e24mQSXLTiQ$IId3T6AwgYmEJ_xMt^Xd|DbZ;W#bYsKH2O!u-YL zWN?dE#BetmY9<^v^2=Q%$vF^*GEzqWlCo3x5Yo$-W{5V{kL7kVxWR;$0T0f_i#4M^ z#nN4&n|>-oxo-#}8C^zvJDw0)b?jn?xe$X<(-55BDX*p>`hNX*852MW;nrul!2 z_}v}EIG5Q;g74EqprzQ$NXYBwH=wm@@=n`cx>fSd4EjC7azL|J#sRX-%`a;)AsoXh zVKgonWN6|UXn;3<%FKa0;?odS7_a=v{IC)0q=BNp*hphq4#+s_jNx~sAfB$qQOc(# z_hggN_Y1I$%7^sPt1UfVN{mm6c~zhPG$8`*oh;V+i#2HMfh$8C?6mjfanU7>9Vc{S zJD1b^>%Oc^NXi*pe(*8prkiUWjIUl7DVmo} zc2n1cOK8ItOu;aPjS(EZD?sZDp?(&6!j4mu|J!7_RW?nvHXdvt9toGV-=k9l zB3vkgp$dYR(KS|9JU_)b&He+e+98=T$kFMa1|uxFCi5Mhh?2QKDg7a*U z=v{DLap!Z0;c8MY-9;p|;d;bTL5eRCV$HwmSVM2gpCfF4JV$VUx^2XU%eXIy>kL|g zJFY8zayE{;$;kbpvwKoG++SMZAEwJJ%aR-gqFd<=#5o!OiT!V^v5P!k{bae-BP1~y zMzv*ottE5)n)w)Md55&*ZqH8V$X?MNvV^uMaH%3bMd$Ogl6aDi*XK|Pbp-F!x38Cz zyO1BJf7{x*R)3qmhdnQ@>mH410j03I057iMSUmDwdnKI3zXGXNUWOM*UmtrnYko>c zb4V_yYq&be&-@xCdr|8OO)5o`OMsol<2&)#w*?fq;@4b#b?*Oml%$7hqE6hRF*z~& zTMRu~jc+)}T5@hek==&{TzdF)G3YM@Y2S_1=D(6nu|E^(n)R+pHG&9WN+Hu^&6yjw zt9qnG3T#cJy>A0DlJ9ZT$hHcUb7uv3Cg>DUvGRbi^z zckQNmP>%&R;!4a`z}Oo;N4BGm7jJ)j+}{Ldy-;tK$Q*=vrv$s%X~6tw!B?C*kjkXX zCR@qnUR%n+u=hZbuEYdhnrlm9-U*!Frm*3_daw71^$ba<=p!%ai=rh^dut&dA}djr zKxHWCXDofHy)wB^(l+2&fc-{UK^JqWH3dR$k3R4)K-P<*vji{>H@v42gJF=QGpr3` zs%vJKLo9LC4dNXnY42CEBHrL_0*FcpD}jLEo*A{ga3tyx5^@Jm;;M_TKbND@B$bKf zX#uu6;HSmvjCbZ)y`grHkEAB+m4Jz{mc86aQT+8rA{0T%@O|`s&+BLn5G#hkQ>ojk zn9K(L$QwiLvqe*ffZxTWcl^0qAifl8N!ct(^{-1~MK{6?+NTx%W(laWySz}tq^M|9 zbQcLb=1XA?3bIq3)qO4N1eUx}Uo2nA0ro(mTA{#JABcBJ6$q2IsJRIwU(cUU|_zldrcIFT&skJ%E(P>yYw zYL+6U`qnV{D{vcCe*PrL-jSrUNneleve#ijdS!Lg?LP>RvY#t z;El|Edw-Lcd3f4v55c4IDlk!8i7%TJ^=f8NaCLCMPYS9PI3N&JFNz!evbc9Mzx!y? zGr!brrt&R)P{1m9f4g@=V_yCJlXJ!<^Y?na&_;b}xQM|OD4Xw4({b8Qxm>Y5=nH|P z<}iC+i_$B*&eJT}Pr5L*q!l53srHE;*+c{>J=-7OKRIV&vsNK|D=BIHCoY{f&bwFg z<}7~`cyc`Oyzhe&@^q;|hnJ`|cepQ$rl z(%QD>U6x}!CDcNrT>DHf*cTx|cJ#kSp${#Sg_phYj_<^K-#`>dHOXvx%0c^lEt7PUb+(huQPd`|<(CFr8*VYEcW^Q` zozdS&vGtyqM?JI_ugVKCXuu04XeF&6?gI}!%$X6|I~PEIk4|XIN>phMNjFE`SZ^B= zhrI-ThOwCMed3V_)-V&el3>wNt6-9i&2JOAlbk*Q(KVr{F?&@nj!@IH4`3$>GM*vD z!wy#J1_@xKAPK%vbs?V?gS3~>0@JNXyOi*ACc@u-XH``+iOa)$Q4IWWf z5v=80y=}EndX|+aJ&W{;e=8)NcrB(ij$cu1@^rH8B&X))V)}bMD?>R9o~{`@AWs1F zYF|OvZo2KjN#ZZKSU_aO1Zm5-s4k*t@ZP))uG&54i;X36&^gfun(Gh%DPD(0F!Ut> z?0uVWaoGx7_Da$fJ-40v&t;cTt%Acf*SUne4X>C?93zktc&pnW2DFyXFi4WfTVS;w zhqU3|C`GmJ5WK?3H5B0OgxI3Zj-lm<|GfhCZcVK%d0&r+y|oSTaOk=!gTG4l z$8}!xa%;+r#l>lmS8!swfSp&=8G`G!p(5c;URuhEi5?}Tc9W2zVwow6nr>{4=io%a zNh*}G0(uoPT3~mpJUbfaR)Gk3>t_eV`4v>bqa{<02}nrXJ`SaBbG4aTH)v-85|hSx zT1mBjz4O%k3m&NNrZ%Qpp(4%4HffZ(Fo|jT4t?df461&=F^%vjTxi)_@UWck`Ce1uvXv{adQoXCGh5%IeN{HPdah zs?d;O)bQZFE=%5XMx$=mOZdrPF!HQsC<*krvL#F_s(sv%Jc|yaw0?dZ`mBAV2T% zT<~hzETXs*vF!a|8@-YEv$S4HCgr1DO;yiBxH`VPm^A$E;23^&=*^Xf+%GNGqOD)A zC1p@|0=MVW=d@+x;20kg0mE>{rxFwPGU)64bH=yk%OTwIRc}74OaqstGRxI{Glj2(@TO%tLpst!wp#F2NG9R*r_f_N6X5w%_6Xs zne`&B2$W?)xynO>3W{=-Afnc-SCXz!iPaG^gkn0YKU&_W1Io@iIQjhUS0amAtr1OVexJ}8@1Nq3oAn*92_zTLCt(S^x+|!}J^u8T zAR$!$!yy_+vwx5E6chAvph-JSvVL{+E+JT>^aCZWTocC{# zNVsBs#xJ40@^l{D+hx9T1}Y0S-*vkariDp+C|TPDya`kEm$|)UU$|)Z z78kpdpzlyZ&KH?Ye#Ap1&_|^3D)SYR*fT%EFuF zB`!UF-)~!n#jp@cWq(;Y7&hH(>ViV9<&HXcLR?>7()fWp*)?~@CM|MU#q;S+iQCO4 zyefR__?B9A%C%RBDSrH=EYU??-y(OM{A-kq+2x<@Lo<|smvF?&`mtg%)ZJ4TmRl2|@mg;aLdaLWixcOk z*x|G3r(u1%mb2Pnw)OP320q~}p%Qdq{&g1L$?rA+kCqah;a$rYUkMSkAXlj z!CjqG9sl=#|Ijb>m%%9(T8VFDOWPQ`ORFv~K?~*IQk<~F4WDWJ6;BqKDWe%#s712d z@XHZh)EKLC>MUl0)>UB%qZ`$rnb|ZA^x==U3F&niwCV|6rxE$1rAH0b7pC6v6t_&) zE?4JZ)=kvTg4$hc9o4$l$HtzsUY^gH6hI+9NEV|Ak-LlljXF|Vo{Y>9dToX9Z33f zQS6#?^~|9?)0+b9uKmh~D!_eSeCD#Nw6tc!H0HeI)VWjdWbzIW z?mqu)LX9COW4PcLsHhVhnxEDULO8CG2^yu9ax$M-;3@$>=R?-Y!%x8ArKhp>v*E!d40s(hqEF4L=26R36N|bsx~oTr zDDE%u5ZDt+$7>ooMK!9Wdh%u>%>MK);_@2Th;k!}Lldju&pwO+&rpt5Y;YKS4;Rw$|3SwQs~PK49GXpO|2B?c2*#_Dii znwGrol!GWofye16DI1gB2{pCJ^rSDyyu<)h@YGnQ2ZfpNJXqi!=i3bndJY8jX)X59 z#m-^$Z`>8}yEPS6=B>J}djYAY0mv#N1&&T?7(GYhxb!GvmXI|LiLVQTT(T-OTC*6bR{rWQFO-$N-nme%SQX0)! zI#gG~G4X_=uIPl0ecMU#@ajh~(85gWKayuJXu7;Wu@Nd{^hWjrJJUx=XUuE!6O%6d zS2?ZTqJjnf^q}p}fDG-c1mt16!R0K4{p;06UUBM6er{V2r@a)&6kB#lhi=ruF?Da_ zuIp^9<3wHO!;6F#w1OI{T8q?X;Gve1?%oeg8a-YCZj9f}Z4xO}G2aq~MpGws&9lr( z6iuSCpwB~`Ndvm(&stUrNdrpL%o~SVw>cYz+7d5)9&N%xp@4gF_E1KvyNub7#45{2 zf+Z3wbne#L0q23xhMDm|IDn9d7kar}!t$U4F+?7}a$9MbP=IUV{sIfxIKb4^?B$pn zxPh!GJG*a=^v!rzox%U{OW7K%Mgy?eb$OsQ;kQEAI(JC*qElf`qT^^y4HHp)ok^C+ z!T{?uzrWiyqu0G2LiWRYB?|w|F!3OmRibqhA|kB?KTy+3YdIBDN!I=AC0taas(m^~ ziyc+7M2l<4%p`_Osn~QBddK2Y%*8`xhMZn^!C%nYO#r-1y}F8T9o@gF$+aE+4S8Bq zHt(gs>VP_LFJ1O>vx3E(kH!u7VVx5%!V%j5)*|L+lM4)pj)e{dw>JU~NzLogWd3Uh z!(4(8c`sDk^spbTX<(d-vBJs=QX3}ZUt(rHN&+NVY_b#4o& ztSm~%+gGT0y!yx%m8Gt|y6V1#R7w}lO7L&p9n?ylht6|8rFm&B-E@~XJI`L{C-bL(Cq1HZHT4&~42LUGh?QtY;A_{w*7mHKdR$|)~trT4WeY91S z@J3q;>m@OtlPfMQFjc&rg?EjMTJM&0Lw71hiVBIze3Mer`8J0MILg(=N9GC;&D$g$~oz!{0N?(=PCD6FDrT`E<<)H zzWHUSkXM>|8;U8~m@FDpL>j|KR%hamKx+}rY#Mt!vm2`l-GW&?fr% z91s1WA55mA=h0#IigxJ(UvFaOFK_k#iGJv%5?1Q;t@zG_+{f~@X0g;T=tXCvDgA-L zHRdM*O>S#yr9ss80{PXe+LVyTnf7x+G8CtE83VOhKp}QIXyS*HraWN&LD97RxVcTXKY$hH)IBO>fVAdP}Q)5s+ z7CG)T)x(BWrVl)`K7>|L(Oj;Q^Np$>zmrBVW%`hjWkMLr;7`y*2{$C6?LuhrgD13K zUqbJ=pQt>rb3OR6SVZ}KC3Lrg4h_EtEiiyF_}AG!^ImA^(-RnEb#1E5zw2N4-hTRZ z426GDVr-v_%F%VDEf+Ig_Q(AF#K`C9=@Vgp{t0_$`hht( zNf*h9>~$FlX#eQ$uCUw&Ad-}3KlDjnfOl-W1$A;BCm?+i8(ll6qm`w;9F${Gh{8VE zsN3iJmr&ZBRA{`XoeFljo(rt*2EG-c>c4-YL(5i85u_*5QLSP*4~|bWSi|i=s{1z| zs)$SEmteu3t`E4u>bIl+&esKP-rst7S9rhj^KnJ4{Di3MRkjC^BHH&da{%)=JNoJd{&L;2jeEqaU%7A+AI zhTti3yw@@~X=e1|aHvX13s?X2Lq)^{t8CYeG4wC$>W=Tcf@KXIqAHTCY-=dIdpHn# z8rl^24;K&Bvp3@?(-{(Y0h1c^`|5FG4sD0FkMGEx<~)4qOsI7i=Ra`2rneJTsu+eg zIui&Qyz;F5!mwe>XrFJeTeqdHFplD(GeSjo~II)e2UJViEtG zl-$~Wr%u!IsvN<{K?Pl^y-WBzHPO6m(AlW3h_bnT{j(g5EMdx0_wa*7@*Yp34$tav9#@T_>}k6(RDwm=iA7rLe)-TNwJK}BqE zqirc(rJRKnuheANuX7=sD1Exnr|zk?8GCU)uQYVxRg)^CkKV6TihuOqL!CA!I2xD` ze<*#g)}svhLL$`lZJ+u-9S(Gy8f@qyGnl*uVVp@HuKFA;wIVt736GSb=y%6ou~;6I zeU-L58wu}id+YE!eYr)g@6cZBLj6auSr~ElwO^ui2Txtdo3#~~Wz{r%=>8?dZL2dn zP-J7T5Aw@?n*@xf$8I{KO844VLtdN*w-Ddim+jEKXW^xx8S(9ft|HA~rUKb!X9=x> z&zaEhvz5Q&!yhRZx~ZRrH#>)kpg^5VRT99%i&PLeB@tTuzLbD@IR0sX44SS(Om;&~ z_viIqcv5Vq^KO%E>O(LoQ4R|UQwu9a)Zg`Q7yC5+FheOPJA+;qL z;6w?B{+LJgVrv9XavP|VQGP>Qw*cD({D%sU{AF)iK+FywP*^K$L;bh6O7zy?W}xJN zSoXqDHOnu^tqeH0y84Dow|)Okx@c&ZonDpT3TZC8K@oxa7Z3)TJQ`*r~8iQpC!Puzay9hSKE=H1TX*;0;PZ3RG@y zvJ9H>Ef>9>tl`~g@jX*oael@9uI#b3^NR_fJ7f=l<`l(l+C@n7Vaxj#*(fl8ue-4k zT1E5rYB7uXuw{zMw|$iCJodRP`r%15yL0+^iMskxj0tA;<1&!ARI$xK*Dajp)UZ{O z64Em}>;6Rt<g5Z-Y)WY;P(otB|6b|N2Cy&Z9nYtGf%gG zR{i0Sj9PM1ZK>5-F;5CbM0;D%REfY@J9sP8}i+Wsk zvPM*8wmnt*$0L)LSko^Il-3x!R#@_G4_4IZb-V(pS5#P7@^0lJ04Kw~>VqJU(B*SL z{evRO2@fjAD;LaXO#Jo%j&)596LH*Ww`(?_524U+*kh*D!Cl{8u(~n$IpC;(NZ+o% z0`{%ASOH)c3kDiKPIF^G4%)tQ(qL&@&z)cARuK825LGJLbLoLq>Vkb7)I#&#kk_;3 zJ@ogREQJ2@d)B-Wy7Ai5L|o` zcY+q$+ULrtVG_xHs=Kb|Z`y($v}=f3os&wqho(CkO^Jbl)X?$-Nv!k0=ZufgfQPwt%1x!iR7Ms$>M~0|zw$eu3dH!=Au|<(s0fDq0&ziZiRIt-=Hj-QJh{Ys1FtP@ zC&T_&njTPuP!BIFS@jAW@l$W1p?*o1^9?!ew<{om8ZVD_Q{@dF-Ti8hKx_{&)MEqo z)DjgKx*d|O@NS1>E~~eX8c+9FxX%8mp|F+6Pb_i!mKCSr_I3Eh>6||s&Y%$TqRyGq zSxFGi@+J^Yq_fR^FyS1^Vx!ulk(v{QLTpnda?)!6zPXJv_9MmK;pS22K_el1>O3{4 zyM?rLrG5>+USie-wg7}cVn_WZ#5ZV_HKue7Dx#;2yh#=Gg)5?|3KlO$rz7oGE1>~4 zEF})t^<=E`k6RgVO>PU30*3j;VGIvE^c)+pv}Nj@r0owtb{Hi=MnQt))VpF;^0 zOJeiQWqTv*pKN*hwAJe6GIrap=t~OAx(X$OG{2HjAmTYJljv9KWJT?$2kVTuUjvwJ zbv{hx|E~KAEP)^8G;7ez?!xYymB)XqXQWX=7JA@UTm_X?#m$jiCrDoR> z1x?Yb^69n(YqF7%$#q_0b*o{(+WR+mQ>28aHYTicZS4##1Og?$SCijHV%%MpQ^;x|P1S z5k-huojYW$J*hjkdJI?HsSsR6>N*~KJ-N4nHMD^yculPH)iYM?1`dQV)Hzu#mh5HK z{P;A;bWvZv<+F~Hu9U-`p!As?yb&fe&h$6}t1Zhp@dkQDh#hrh0UOuzSD5pw#3=9I`LRd7L6gU8oH9GmYe32({==z1srX9)93p`qk)&fHI}b%sCM{QDU_o5 zg{POasgJXZABDUChb)I_Mgg@R;9)>1!moxU_wrPDl4p9klZR%7t8{Lb490nCVgQSN z)EEp2uBQD#%PFB5dSO337n7$t*^~7Q@bgQxbmlXDp*9_j^HHArjEi1q)}?^P@l&Cx zk&4X9l+`cTyM>~r6xto|TmTnl)xFPZ$QwBIm>4M;e~cI`ZG4v=>gD+LebEv63<$ve zQhg^AyE!XQ!?3gi4%PPK@gtgcoIghd9_}JQ)LxdKO`n=h*5fGQHqbSabrK%8h5zA*r+ zzYyN+;@ApCC~=Q{AN}ie5)5y3@^4J`35*3Sz-`ZoQ6Ve1e8)Lj!{qt6>S_1cLcTVQ zU_dJDeMw=s!_V*pzctp8$$=M^{g`uU9=zCOF_iYTfZUqs(_Y9UH1fOjit7${Ac$b>!s_ll8Jq!YeStP(H3N%)JP-uQL++|v)n3TFJxQsif630%PDk) zQZor0ZURfPy_w=vOoZZ}pffEzTc*E~C8fX>n1J{UqLl*r)b`$|u6jd(KJG9w2G49kUe%SwF#|HiuCDMw&c_Rf(dmmSVZwYm*-Xl zh9Aqrpjpn(ynq|uog`pIRkoz}#}2ir1Zh`vS$BF;o5TPH4Gzi+m;fk<1t(1XkgteL z+;e?~WP2R|USJD<3o$j3hoLNE%%3Ov`f?|Q3RQJQ{X(LBz@>+SL(he0uPzIEd9Dch zev(@#&eO9~2Uq(*fy>m6HYx)BeDz+O7-le>d&xdkmLXH3m)!5yVld|g49Mq3@5yfEEL)8RN ze}+$*;B;@JOxbX@!!cFYjk^Qk&t$d-&+4FZk&fDY*Axs!fa zjl_1WDKx^DKkiYoKLuxDCX-ao&xa$ljE(TZ^Yd zDH}`EPmIxBrdn>RrG#%&xNbaOZrJf(MSNe?i{eOMXC{pAzSQtN((Op`ebYe9(kszW zQqb*}t~`@AH*CjQfc(;z@wrSP3fwMs?lV)TeWsicQEGlVwUnMI$=i(bxsdg=@bx`+ z$Om%vopiZl-u=Prv!Nih z)Uz=?Wt4Bw46^SlhuFe%DS&Yx2y}J875KR`fVq^Zk@Eg4Mw&3g@QZa4D!Pi?1HgBm*!Q=zqtqHN~pb{mNFB3-DV)-QD4DOYBF}Pas9* z*8I-gFgq9RH5pycQn_*@%Cs`tz(-M6ejx%)#8b;vG~o2ll=4kcy8=@wxzk`7^k+jl256%Gf1{(WWigK%%HO0ew1QH|==igo~IJG1`Lv-hyxT1w` z*|8HE2(g+2H~0mmeHGXID2v!Ub{dNiogEgVdre#m)W_ z$hql_acpuEoVE2R&5VX%y^6C#V5lIe*QFqebufDvnd#Qoj4GUJq*&6`ZL^m zA97(bSOOj=aDR2oWQGp!_X1rbY#gpuB2|7SUXyzM18WtS?D{TNQ>cO(or^xX%D=orTY07Fu9xYC{5EvMaAvg}V56{bu=Psr-;u+FVbg6(e zTTUCIIm4<+^zx!Dh{}-Y)WdzgHRpsoe5jZE5A8z1mPYsfv!TE9JQ=R0c<2#q(xe!8{z3(lUdwB2=;X_%4NSpxBLlLmG*{;{@ESzgV|{skzuJ`Vz8a7_VwECsFmv$63ZoC zMqzpupX~&VZ0i?|IbUPdFmM=sH5#ipt48a$!3v2utZ&!uuSy-T6Q!V2@ zyCKlO2i_?-8e@YoQ*C3Q?)x`a;WX#)C>7FR)C(}%yIm=It?gESR)z&S^JPq39!?>3%cs(0G*DauGiqyq^3xc3>dx)>ETQYG26uj;3M_pnh{mYWJo zzhP&=VVw+}%x5>vxBbmRhTT{wLG!cRz&3b%XGyf>M_hqvB2r_w37+~xfv&YPA0SD$ zy)cf@s9))C>h6Z{5L%Kr!Q3fi5442jU+bCbM<8)twN1+1R&OG}+pEuS>{{N2G=|JjO_2ZYt z8ODh}6B+X!slizka=fCLiOwK)lX^Mr0a)~SA)nSU{+wXZ z?N7MX3Qdoq_U>K_d>o;bnrR{>0%HB_PFo(uVfpflHeJL&n})t(j9vC%5p!LR;r`+& z8N+<<9hnoX{}w`V4*y;LQlEmVlQNBCx7$iZCRD5hdih?d1tNF+@v>qz;532#b;KcE*SR|)Yc)Ygz==fy zUdGQ{UMse&c>l3J6-r3j+^^owHeK*+IY(J|9dd5a)USQ66Xr>AwW%7+Uub~hyqDe> zZfxARQ;eY{vAC74geuxH1&3eCEbh}69A^7>_u)Y8#X6}WdsMC<8fGTpEbR8u>=I%S zE_FnKIM%#2RIOPEBx9|y#0647>cfVqx6JT$SD~K6hBx^VHta1KZd}$8G-7T7WBprW za)03|pOmbMB+u;&x;FNBhIG~lAF|axv-$X=Y(#r+>{pOS4bMPUL?I{Y+-EqPsuvNB z= zalgoTV|LrHqNGgvNKI8y$Hil$CTgVQi_&7kj3DrAk?giRqOh&Ml&^asxcZdszBw+? z)dKq~jkNysCoe3=TtZ6Cm!BbRr4|*)jqv5>l9Uj;CD@og0&g)$~LX>6Mks%d%Y*tzO8TSR#N|d|Q38EK1{Ln3Ze3n(fg<+e! z4qy^=XGLA3HT?yVx7T0Tv|geN6N4zRneZ_iR+daG1=LGn3RuAd`!wOVSK~U>=Hf{X-Wj(uKcLQXdr9e+xN^?%8kWDLMertd=fl17b<4hGFCOvcO&cd6-OUqtc)wOJ&@p&8DDx`w+ zF@P(YbE<$BH>-8s80Zj|c7mwTL}w_ajoaE*3stLjXkoz&-au6_>S~WusG^qq60Pn? zXOEm9L$-?5R2y0(pD$M z8ZE(XFKMmF4L}mH@M+aFxuCKuE0Pz}<|sxK)L_c8x|Ah~z0t}1lvw&ol~IgoRC%zS zC_w3KcOg~wo966D)*J6v(-m<`+suOKE!(n9ootD=%`2%&(|I{YqpZPDwOL>_Cnpj4 zHFa{~|xFyv15RB_yuTLP+XMf-d+$J+B^A@b|S=EOeOu!(|sGZ;`r zRyqhAN#8=Ya}t|VjMBNmJDg>=GmGW}yO>S0gZYv?DyjoxUqgY;>Yw;@6H{idrZa(% zP(;QEfrH^N&-=+}TD*lg(NHMI}y}H2GAwdHZ~`5=VzOm21RV?~x#HT@uI( zWm~dfQCp%Y?=kIcYcg+gA^?Ktk~I$i)|J*)H8r1T`optYPUR(OD!A;|-u8KhD~Nd# z+5O61s_-^mrvyOy*lHC()CWutmW(8GZDTItt#Tz95OUqy`Bg1Q1oy+?%fpWo@(usN zj373JFC^48q}9hC4qUNN~ti?Jt+n5Dg z(Hhh{6^)F&19W9i(>EI1wrx9^*tTukwll%RwlT47+qRvF^JV_e^Wxt1zTds)tlqo2 zy1J`-*RT4lvv=<09LdV@CRx=7v*>f502acQ?&V=b(tMf90IR?;5Ff&d&ZZ*-6%mI2!dYtaJ(3`Ha0(wa~# zJa4pzKk1{qb9a!z^UvuZ#V%OM5CaElaBP|&#k~n!m>@;!m(D&m3R1N7UKVfmMS(J& zdxdvK#5Uf(Juag)kzQp<^4Wecj!><{x!R&;Q{2yu8_S6!?=vw_R64;}mKj2W;Pr@t z8>X#XG4upZuII}!LGIS!?dR@r{?)R=>A88E`?zaHoIo<-?$!2wdh<9=isI+gHxN?t zriIYq>2&Ari){C4{{jS6?RA~Ke*P8L8TFK%{3R0c=4ErGO>AWjd4B6V(DBZ+p7Xpy zOr1UR(TXeQxd++JXEI0pVLF&N2~2s)2-h~XKz;$-Ji!BzJZa0BjT1TDK_li1w-6FN zjrQRbwc9%QY>uefGPUhHPd=6j>8VuE0^&^6z=%G|Zm$wwtvBrkZx_cmHP3!OJ82hJ z!sEx0J@=mO*TsoPE5-7?m6i2sTrVl;f(XlcpkA1$ky+=SRx|Q~*3tT(VWrILE6U&V zmoHCFW7~jM&3vuCC!dbFgj3aq4;`icaKthsmwbt67Vc@juTM9dHE{W!QB>r8p;UZ6 zEj|PirO1v>uZCyp+{HY2VeZ^Wz>Xs^P0h@>#-O_jobGHX_{+dkpxN`IbGb2`&xgMY z)u00d{7%7On1%MBuQ78rE+@-&+#uN>E8oNXdqXNgMm1{u9XleBhL=|W@j5#XpO-eD z(B^UMwkkgldQyZVM522E5AsVkehV|4n{9kQ$(au=AW9(rL>m9IcR$2y@Lp!ybna3; zm?8z^#{L9_d*jH$8*qs=O4@Cg!_v9v6g{os+o`|&=JHx2F~f94lOAL{q&93nCHY*R zgAXwFzKVEY*Tp{T%;jh;IQV>tcs)6P=ni%7Ws^prRnzL{J^6A_1V+YcXL&*iHrvk< zu-?O=){H&29>Jt~%)KS_-jxSt@D{-5`zh&%Pe-Qtr_&Rv2DoKw#EL3Zez8qp=^1Rljd1h8&>nG<~C*LRuJ-j`6&wW-B zPe}*~ar@xm%SY4!1;Ur(+hFI6uTMl3WX24g70ca^_Vv@7y-B^#_nMrpEZr{e+pDMh z_EFTIpBWj;ZtCZeMbK#zEU!RAS>!4En8?M{6j}OGmC0Hf`?%^;H{f3V@`O5~+PLNB z(jk9}+7YG}ofdzolN~5^MuJdGswtp_;(byf91h{!E(hqeDx;ad!Ah zCmdaGb#){hn-%TzjU^ma`lA9U0nOxu4lS`2sh&I0B6io{$M(+y8;%m2 z;{$#s=Sk>q1>N5q&?3u}Zw0Of^%sT$+w)T5jwll!QK2M%eD*LCa2zfU1e4UZj}!ha z-NMkG%0I`Iso1Q9b*1M98%*NXsq$C&3NxW2%ZD8O_uIjnvu0jZ;paSc!!JkIO`!Nu zs~i~WhPMdGWj%QTEr)(Jn6=1jq_v-otK{PdJn}zOLfw1A*1L2HKe?K$&U}ePFdcu8 z_-|{khm~G}HO!uviu&~h2QNemk?PF&Hl=9uk=IATx8u+&M&{^*YFT+b){Z+RvmDEY zdN+1@t{hfjwp(<<(b-6zoU)`g)V6%`yqw}TdB?>Xg{J8g&N=rzLA6bU^~WvqGTvU2 z;n$JwlA8|ebZ5-eqGg`i9}%a2;!lkiHpgR!_qlyV@-+d8ldT#j!eRiScmxDEnC@K~ z0tf6U@W6EpCda4w<>daXgT60FHSca?k7zoB7Kd+W`M1-B~< z*lT9nQp&r|fw8=~;pl4Q`GUey^^}y404RW>b}})2heg=3T*8`9Mo;ZS$Cl=ntYqU= zRzO*5!rT-uUvfo+G_%P#X&GWs*(1PTw*k*L5p1+=Z^R*%L?Z6TqYzJwKFJs|pA zqu#E?>Z1jyKI6N1SrleG8Jrpz!$x^s3f*e(W53IW1M8LF%%Anu7k0|O>k->W;~nRx zsIO2$DwM}8@q1^?dzwKAqp2%yDQ3Xbgx1gbI4K(%|4W^-s=`3q`1Sec10d zs|Kob?QPZ)Drg-FiZGO}8D-gA{v63xdEeMd$$KqV4%AGK_>m9hgKU(b27!Dn-KI|!z_#=@i|lE@HZBT~OhU;G3YL$rj!BM~MS`UE z3r~4KBPt&3CNo!1Vk6x@6I3u!pAEpmExlJzG}X{c%LF zIaGI#F8@5G3brPtknC$nLk(n`ua!arEmI&yQh}%{%y^}1BZFs zRLe=@^0o5jne;&tp(kua2)(&O(A`rn>Cdc*u5Di9;kc-m%W-SQuQ6p%7k|>W=dR1L zmx7>10(le|19xIPrAAn5DJoX<<1VvtYoP-P#JEn*&$&vP@xnA~qQrn9-*DEX&J%WvQd$1TDsw&l)pxW@%k%Z#!t1;WH?CBn^Nif%D^O+OZRz46Tg3AdE4ui3=cUg=3g z11#PFQF@gx&8&q&qgCVefk)RCS;I-az5BI_(V=Thle6ksC%r{1D!+xo%pog-F_{ju zh}WZSPdb`){IhE+5|hvyXDq$=lmk+C5#0dxgO%EewCVV1vja>HVzZshOtGd3bz>T4 zG|cg6T;^o!-q?#CxdUFiIb6|g}t+# zBLOEf%U_%*(n}lsTZWN|fnLeQ(AmS@gkIUv#YFiZ!cN83;xBFp{(+Su{Xg7)dZA`v z>}>9&#l+6>-Om5?{aeD!%=}&UmttjQ`+ubWsm8x}Y;5cVe-k?s(?97im;E0t|D}uL zpLYLp|4ROq_>c4doBmgu4F9E@;lJqrqL{vQ{gwQC{@eC{^!6|B?-*FWYyF4zzy12o z>+tdYr_25A!oOWkP|(g@i-GRD%bZN#M>fX4$M3w(|HT=Z*qP~N44fS;+_f10CH=Ps z!GEK5=oL+z>|7j;Oq{;mTFB1Y&QZzUz{uopMv39CH5tFVpvcEZFXHYjrsVwX@83mY z|0-hnchO(7eRGwSzsK|!SAWIj9qo*iOq{jo<%LD*l}+58zlZgoFc7tKwE6F|MCMN& zt3C#l(Cd5Zt#P!qgF=~#K!^{7(^Pc^^u84lHLFW`Xq&Kg-;aFh-ils`1Dq`(_iP+Q z7omFUF~IpUbpal9y~|<$RT^33T6O05N=Osi;h&C1_pDt}) zlC(RYQ*Ln=A9KlEhWww@oN&2u7lWFj*cNdpDaj8J7iu2^N9mI(U^Jf#ZS_Ud!@DuN zWsoU~A@C&B(`;$LaT^_%U~`y97D1Z*D%FPFo$Ad*FcZG!@c0T1W?gsbi#XxS2I=VjAnH{-|8%a@f?3)Gzio z`GQ~o{6w>#|DXKzuQU7`2?CDJ|AB?S*8CR|{y~Kfy`Z&;iShqhD)enA6I*Ae?^*h< zndpTa?d<jjw;?{<`>I zxqstJh)M4oyX^k}lKwmMSBCYUw*G-0Co}WE`l77NNWjGSuUSZ0nTde$A5Z?CVw9P` z`Twe}tjzLVoB6MQ{m*EnSC=!iG%@;%Yf&49?{WS!Oi`QfrWyWen(zBVuW0wzBM81H zIA=!}BjRx^nZzF$M3aEt6B1>$j&L->xW5}e+o{~s zwTb|prdG(cP6CZS?81!x^LE*7*er+l?ezt}i^nnNMW~}NP?J`enSaXV;uJ7H=Y5$*;8az5Z zA6%-OkGU0h>x+ez6w&u4N2#I*`SmMHzc>6}Q+^c>bs1G*iqmpFyuMEF<HDvKgMvJAT{0n||&U;1liC;I1rL zzu?8M+0wmvza%~Ope7z+za==Cy@DUy%bn7q{{vjdapQ3>25#sub6ges7NCwZv2*E5 z@HBZicsL!`G1wbrlEJ(#;<}}utY<+vH`gE{-a3J}ijmx< z_}Exq^O>mAlCqTli2Qd-_pBlddgvCV`H_I+1OqqAa3W7DsO zx|qj~7?<@S&uvFy8>513<#p5H4O6q#p<+9ub2LWA`3+^>oT?2lR`y>~>q&3Lp|s@( zZIsj*XC4Y~mD#~|1uoVF$<37YHe;`BhZY%kN>R;;>Fegy>*nh#3Q%!HmCzoD_dfSUYzhmX~MP8A-3vEM-OC5$38)jRePG?f^VK$-P5&-4>gK5&e{&J_o-n! zrwA7hv?B;Ff@SRM{z~;`U z^N5NVk0S#c)+V`_ErC9hobppthqXlwSj2vtYlNX6jZPlnGywK2Tmhv>8KY=zR9(?{ z#-^8xSzARqEg*CNRRI@8m^nX~!aT&nTH&%+nQ0S6@PSH_ix8tn;298oS8GPs1TzcA zI!Bo!)hQ`T6;|bpnLC+AObMp^XO<#&uU-rrmXnh4FE%F z;o|n{mU6(EusgGJ!%6}c7{bseR5cYpAWTe8bK!D@4oEwL;(paR6H$XM#lSD(SNN3E z8$<)hVv@yWdopCXeLtfrW( zY#~l8_SAAu3Y3OkPko4hBNS-`JhH+;ZA|^(hBS0YR|sw3H)-(-lRnu}877%pRFu@* zrRPh-Kuu-W_}n_vx|6ehf62fec%HA7H9!Le9y4$bJwHYj)9E zSQ87yQX;WfdOTtb#N1p=LI5l@9i#p#;sucPi97?K^^v9Dk}a^w7Cq6VWBXko>%Yg= zK$_!;js|`+t&TugLz`*TiYt(8dYD$mOsoO;>kGI3?zmxNG#6eEmCMfscaQ+J3S7s4 zkF5u7VlV{KvQC$bFiS=OzzH8fHI$tb-s(_1p2}k-M}@K}>D9@nH4Wl%CdlGL4@_f8 zzQIK^AIDS=)h5}w3!1!v*IC#Ru2>UCNh>DQEA3fHDkI($)&eoMu)5GCP+<_d&p8{K zc~DFE-Wygem2}0hEq*jJW|LIBr4iL4&?e41fsx7F2MWkms|D5yWF6v>-vYs!5jZ(_ zjLeNfK#kC{HNoI@cqS`MF$q&QkakI{OC_X3BxS2oL83y?#A|>CAF|mcZ)61-k&$$b zh$jIVZwV}f-;%|gw7}y;=9zWTFl3i(#ZnWr0LaCIBSTeg!1Q+|c0D^QyaEymwvfsS zTrzjh1p6GDa;_6tt`@O)brxEDdRRK%$Yfgd#@scE$_~)ln8`S3!!KwMP*xb?aJtOJ z8Ry-~s=>vOh7&1>qlrfp=E0Eq=cIF_1;waEE(~TsA<+E^l-iU)zQ(cMiVc;JEG%$l z6Blv&>Hz^r2R2Qkow=3F-WEC?mT=Eq4c1FAdAZENYHH495SKC9RM;AA4l8MPQ0_OY zkrf&wVR6tWTBS;|$lW8lLXpLI#D%45YWmtsBo^9Al_^lN)Lun9 zm^e9`TBSkp77>{}=?GCk&fcaw;siq#W(2;*avQS!u}M51y|x=RO-{n_4ci!Q6Nd8b zv_)Ewjqf$dJ8Z=Q{f(Y;bM@)|{!z98NPSgKW9{GE<++s@h>A6`4Z{XO-d(iw*y;^X zr^LxEv2JvBH!W$#G`z6{c5{*q!%aY)B_Qe$t5(|37T9^Hq~`=RQddf4|6L1)tjVoH z1@nvqDznnWTH}_cb>9MXZ5yKjit*reJehFhswNFXnvO0iuQTW<^Hv5c)42)w2Kh=S zV9D4P`^G^qI886wrvbH;Ay|~;qgmOOD&sMPWY*Esb>Iv)+w)N&N;uhbJpF_$C$bwNJI-rlYW#t2P9vI;OgP9!ASLKmi_ z9Yg9d+@zc$(>>^!m_~MceXK*p_WhCV1J%sPfvyNw4g#>$eCc`jjy)C1yUPd_;?E}h zPdzWy5|@Un61_UO?I@eejK(VLZtkfHf-K!IV`MVgnXA$FEqn;BX%JIwIW-cOh0jVD z{dL!>na=9Qu)6(~#pTw)^K_OdBE!Vv(ST4)H!)v$B+a?1EPGfM>;%p~M7_r1_Zl3G zw;ymag{G%octCv!%`;R|b=+baGh|zbG!1?kL99W=axzP$Wt{VZ%7|TuH90u%)0g~; z8K;bdf;DdkXnixdB$L&*8DeNcgh3)QENA1l`OWTh@_HF-~#rTK1B2{|IBW?~R)wzPT>OIX!4@lS{25Woh$ zkxFw!_IPJeZoK@4tx-l^9W!nYC1!Ztj2VyFiTO%}-r7c0>W1%sq8sy#?}QCgF`cs} zjSPs~w*kU(W>sn2POaOovDnd;0xzzG)`xJX(M?U2Aa0!VRn)mXnoq0+dyGyK)U4^J z<=a;-vRAF23Un_sOnEA<)@!S2&tF;7nzxwo=-X$l5TPj}e+yKGg7jOjtK#%$s;~w8 zmSpK8a>%0d7+M8a?SwahY-k-cEJ!jwSr(ur%}^tbRy0SQC}+c)Q0h3Obe|7)rwJ3O zSKCunFRmy2Uh-re=5yzh^dy@GGUBOOcoUnq3MLDGCv*k4`Uno)t8Nn*3r&%6n|X&G zy+~GJ9$1GD>}Tynw045~`(zK$5S;|7bNr*ugwSP190!7W?dZHmeMQ$7-f5jwi?Du8 z$r~4;0#y3?3M=qCw4tupuxsU?yp-33#5a#cBByoxm&~2tvYMhN>@N?c-oB6Sj;<5H z22KQEf#f@;-0t{8*;Axpx;%N_0ChxIvGpwvaV33k7?-?MJ#o`)f`fVuVc!>F;A`%BFcgQt2 zO}lBqTm@6UG0v_eDTL1pUzNKYu%g!ZiYJ3sgVJv}a+qHq1Or$H8B{95Zjt6G#Vqkb zV>D^9P1}e{C!1Eyq)hZOy6c744mf~UI{60B1g{GVqI4*({@|E+nAX=rDbvP~Hff)2 zAtGdba2*)=aSB`C2az#%wOl^zNX89Q2Mr^)i~3f{Ei)xIPn%l_ps+nApRBlk5>W4{ zVi)v#jrDofG2M(3>v?$xDeS;>q|bQ?DAMhVw*YcFp;5$i6+zK4G^zcWzsUqYSiu!7 z19JbuSg^z&zuoC^wiy7Tk(xai2~Y)n|E8W^TU+&B-i8pqr0(Fxy7!_YQ<~W@rjsFK zlFa+J0Ug&J3pdbAq_$0#2RdwYR<{2wPRc3a3R+~qBdmyivIl)<5vBXMr@ksKy;s1h z43xZf|0QWo%B?N{{?Mv-D>oa#rNd+;cm^hL@A(ilbimrgOtOOJ?E;(-yDhT-|rNZsrKidzvjXD4k3$!?q*V>+@$=D0g)+x?P2>d!}}5 zXzu<(4b=g&uBR!UmU+I!($y4F#Q_le0bi8n(uU$rkUh@PP(i0r7LEHV{ zdhyugNP^P$+MzP2<-L%k=(<`Zu7|S5CjeS0U&PIl-z_D6)NDZowN>zDqvFV;u~;}a z_HdL1>A$RGLEm#FU|>POXGI;-n&nf4DF+-^51 z7vgPG9fN8~eFDg>z?jiCcn`A`(zK1IO3pmz0{HD}ulACC-BjoY-SDi!hzE5%Qu-R8 z(~v@$;1I&xA9K2gn%#x_Jl(Gxm*Z`{0G)*dCi?0q_2(!UT?0yU4D|t(MA-N^;InQq zWuw%v^q7JEY=Ehtyg1AT*Yo^L$5BD8(TQC@pb!~ z&_cN@mUdKM^NJ^$CVMlwxzd27(zk~c^0!6jB&h+%#!-XXPqoz*j0>#PSgY4FNm{3X znO`@w4cIt5-N7X-6}sJ|s0F!7JeT_%CXMpDOx;iFtV=8e0&rqzFQ_iACjS};C$MYO z`K)?fNiRhjhvUznc)1cP&@1;rUf`v|$at4#PxVyQ4wauFvQkb6u*pM6@n3sw_rTwn z>Si3@C~!!Kx2UdE3UEB^Pa^%;sxp>b=LG1}320GQtXKjVwjiJCbr{U-0X%pe$C(>0 z^;7py#i(ga8EpD-DRXXhbeC}{TJKD0eHpprbDm=kcm@?vPzlywt`-B{P#^~5|8!w) zl#)M2Q~nNkosuWby0|Aq^Mh`aD&X4n9&-Dk&0(s|pvBJQcl+ejpc+vJVm13mPkR4X zc*b$Pa3ozd$e~PmaAL_AF9MLZ3 z;o-q275Y5hS(&af_nVW3GS~gJM^V+t;dY7*l|sXB_+=ILtCAI29k_?%ZE-xxx*Ew7 zejL5?IK>=Ucjp}F_xm>HR@?_UhnQ>EBGxZPuBIn$OX?e=d?iDb=7#M@cQTlM<)e_I zD_l#Lb0#3=677q&dFM&HjE%i{?Z=bvfKVD}hg?t~&2!l9E;KCHenzxR30jX4F(v~j z2uz$zk$yG^z{+lHf;c1B8Sf=^JYw^-r&MDO-rYDLpGKe(63Z|0i~3WJAyham_~r8Y zwyO&kdgp87J`OIwg;2z!_%vu>4gikd9=RoiSE*q-6w{!>8SSapfO?mBk`#wkj862w zZ~ECxf+s4Uh5hNyl2tyVHd^w-d;03o*ZWeW1}92i`2B z<71FyS&;;C4)B^8i1pH(3Z^83TNud17Go0?Ia<^6BFyis{%|;zczQ%VWcE6Qi}|!1 zojS|!Be}j(hSPqHjkoU)#ejNznz6KAbeR!4J+K_fMt#LD7!WNSWXHuO6MXX2#fG4c z;(-aS$wXgs*j-w9i^0^S3>4unFspByyvWE&5#`Xb;+e&EFQH> zFX!woZIu!*_&`?Dt4?42kw90rEtp+UFB1GNqzVmb!SNs(F-aEApVC#>(=!zkur!;a zo!q@>P8}^HQAoO_;hh2D_YGqal--K`&zYQQ6Ha~%80b6$zQHY<7v&u6Y2z$DlQk_~ zK2A`Aj(*p&c@We2X|tH+HZqaSdD3$Ju0*T*ExlLc?PnUgFw;h(+EbVJEGS@#j#?Fr zkdXJ9UnWCN*FP2XcMk^~@@jY=2@F#9IQ_I#Tp6lasJQHj`t#@A{6nPBR|U4^@+CV* zX81(pv`4&?+y5*OA*kr@^{vyhw`p1RT4q|49YhB^PHxJq4NI6kt|6(G<@gP6le^xo zniR7VI*mB+kbQi*cZx?55DWCX^KR4eq$d}HwWBol!W18l=@xckZbQMyDN7PS(V2l-(~E!jF$?(bkvC++9446{Z@qRRuD5!ly+x#l19cW`kSEp z=E;!|!-LC-{h9T=f!(?dUu9+hr-JhIV?_o$XNt8IeQ64FXe0=F+~hKt@J19@xcJ%_ z5cjjEg|CD6C6r4ygTy>ErK!i&51prQ__vR> z*mDiw_Q0i8fFG@}Y#n!JP0iTPXBD_?BY(o9n(T4;pF%42Ww|fFu_J7Htt7(WO9FW# zpW3#bs}zeaLI{;82J@2Z+9xo2KApLR>_?P$Dv5yg@OHWjlIU&mR*(wApHg|bTPc=iaV1Qh{_G3H72%Ut=2CGaTH%4;?LI=3ldI-rKF{xM% zph~&1VO@Tshh{=4VJW}2j8zi#A7gVB&vKqRYqcWSD03YA3_#?5>l;Q93N5kWERdm& zf-Z>#gQ{^EFXtVyqZ9GC)7P8Q%mzpMv4)4<#kC%qP3UK?HKSiz(@1L`=@bDRSzMfz zZ+1I0E$gNTlj95a!9{mQB(#Kb27Q}Rt+P_Q1-+$|8Rf~7WP2S8wt^Rp#+o?pmF>omXdV(kj1c}b;J-ngX(NjDv)=jMs_ z&W=B{LWjO6SI+pf=%kTQ)xrz;o$Rc>IOZn>gFV@qWZ%L*2k5;6nOK$q1BvTQD2&GX z*Su0(DCaM@mY+(LNtn5WAKfml*b~0IQH~g}ac2b!pkXiNCa0ZcU$6^u_ad>2^ze6~ zm??1`X+p`%S3L`?AYszX9s!T0IxO54vtvQKHufQXd6xpN))C_tM&P2b>4rk97s0ZF~5|m>W688b(wiD;`fM6j>`Kl3Bd6XiP05z<#+@QwR zM>_`kFs~0Ya6JZWrtF`5WskTsl)Ksa`)?JwmpYa475qk)6)KzrqRp4B$_GKAW>8p( z`BdfyCp3@u0S8NmPxCl81sV8nm)Np8wecz?`~E||b@S6uSQQC%wRP`!&AP91gyKFN zv(tH}KJRb7%CoKD@gI9hhs!};cZ`F0PnJR?#QCqF2P3$m3S~um>!tK^FjcbKJS!j( zMTX^XS%eeruR}>9kT4{B5}SR62hqYlH9zPc z2fbMP$g|V4XBzJa;sj|tZQ_rL0^T0RC;beU3KQ>Kd zsjQCs3fzcn2bB0I12e0orldN&=2vfsrFzZ~NJEf!cNGcR2&qC!+H7W!z(S>eiGjxTSusR85HMVFLwdg9Bi=5q2e!A{j)8_ z$FX&=ch`-RFYHP-8z&JEySivv6orG0-EdpHj}oz(xV_lOY4cO_#Jcu&!|d@?q=b{r zjq#4c@z0J_4B`CD$m+Pvq316gj}<1Cxdp;m{*0M>UVC#VR!PRZ+o9vor=KY8NhNI4 z86Vak;qh9tObqF3h+|=MW3(h9a-ang?|?yw#vc~arN^U`gU&Xil}lElI7@gu7&*Rh z^uMt~1_n3yh$=s?3A!humMzHj^dw?r%s9BY!Jp6s!L zuQBdZmBg;m=SO+N+n*wAUCee?JGyDo>&MTgs9I}mPFM9D?`Ng(N;CVQxxZ(q$C1%f%%(m}+W2Q>n-13~G9yh05jaqBeR_KBS@=^`^7{JnQZZHbi0TR0I4 z8ls5Nha~QfT1aI<&9bCRoqN7!W2<#NWc-xjuVZ;IK>(8clXtx{DaItG2%w;FYp=U2 z*Y!ltQooI2;uMl1zI5UQHy>@Sy-Or9aVAvj{^F7R9~8(c50-2Z<9pvB;H#u$52uh1 zYj4Bh;|jBgz}>i7_v|;yKqHmwFy9pEFooWi%9WAc1y2=q~BAa75`2ewQ71}{qrE0_dphn*tWER&_Y2a`j@=Q)apJ9VkglAFW1x7Ry#6iRR zXHysuw?JU2I)(KHNi5iKLeJ|-wHf-LUbW4ZSu1HhW7@ctp@D02Q8x7^(eH~2G&u?_j|ky%+{*z5pn2k<)_Z5)4HmD6ZSy{9#R81 z(I>aDE1}FD7uMy&a_Y)&;ppW*f1Gb10@gXJeur-uG|;7(WsIvfuBbB--@8NEBH$uN zv8b_7b9dz!6Z(V3s63;my=NZWnt>U)K+x0#*FJ`kn{yV2Gn0YPUIL~uz3Xwi(l%m% zI8NvphY^J?6E`7>`2ET|edDh@N(!C%9B8Qn`4?yluXup+U!|;u@4mL)2Mp@&aagf! z#|r%yVA<_S{$?_({S?9yJO0dtxRE<~|>?ZHxFaU69Hl9)DXH7_NO{aw%Bv-bV zlxbdq5mLcoEz)(s!UnG2IyJ}cv`ETZ2#S#Wh^l-Z`x97agWO7x+O<@K_#+8!gi>A~ ze%gDe>QT8Tr7Y+PuN#6xPQ9)=`R+gXF+ zECb4AK7G};3@b>Z>y%wsoAYQ{is0&y*gOS25a)dqvhMuT;EcBakQ~9SqrC^?jBiIZ zRN9|JNQ-=^6}s3-u@{NZ?4W;7l^-LEl-$P5HU&2Ja3OZMc9lk$eXqq29UtCXnc zl{Rw7ab*!Zw@%*=^QyZHx-W?Cq}&Um>hBJ$KM{3tV{D)8*+%01v`%6E&eE%>6}v|q zOFArpEmEBUE43uv*PVoJ7PR=_8YSHJgBPi!-mh=`pfIN}y6=~M(*OqRPn%)x^w3^b z4eI>pqIkYZ%)_Q@in&r_>cHK2ei7Lr{ux{wMX()VJE4zMDMPATdc0fMA@>Yg7=39k zPb_ggM&8?2LlLwyo$$6!tfVp;*ud$`Xqy?$hbW{1NAte){(Xxs$}2alyd$HkSpYPivB9&yKSU z9k_&Ami_s8P$$}M{K23sTXM@~)LEYVx(;_=mO;L@^DzYJRaq}+SZ(1VNAEWFs)G8^ zKQQ4s5!3YP4pa+1+YY^+KR`(^a?UeVbS1*e&k}2`#V(TxYxep2cwFP>_bON6cW8yZ zLNPSmhVgiY=J$0EU2|rqqBU6R@J?s2ki!X%Z})+lsUwyC^K}nf(B>o9Oc>&pN0A%F zOQhJLqihA$bkQlKIP*lx@|SomP%MpoDvc^nwkI4}MO}mx7MHugxip{9`HFH)c{WX* zXEjFn{;r@%#5_)(OfV|7r7MLI0@s=+WcOq9zKLciddc z=l~Wsii`CkbfjA_YO^|&tI^4t&$9_g-BSL(6%u8~59&O=>StUNfC+5`rx#J#ntrpR zn$;E4P^`=}|E#+U@!T~osF6xnv7a|bL{kz*JE{*jE~=f`8=2qQ)ta~_=mQM`0`lu1 z7+frb(XoXwZEHK=vV($TB>36$m3hg3e_P-lDR=5?$VE<9wRZDfE=9%aIhv(8hl|83Q)8GsKwWKYH^-@v>-ti zTy%AVVku1VmoQ(UB1L3 z_E7sUKLAC4)#tGs7Pml9do1j~Q>ZIn8BF}9KZ5KE0Kd6ngDS;5*(5X5&^9(F!I@U_ zX*%4>dbh5>aVf|Oo0cq{bWo?o*{2pkvNe!R-Kd9h+xJYxEHQE5b`rq10vw|LIAMjm zel8^dsSPiI!34w5yf#r#_Q1q6ofcp^+Q0-k~yN32A8-o!_+4%xoWqXWE8#;up@xEAYf9 zmAaPT$%G3D5`em#z!i{TeqGX|N;Z5oZq}u|TknI|$iRD%Isi+&C{rAQQow3de6PMV zuOQ9PlhrN$rz^&?j8e4-`ka_u$anbeoZ_8X=BT?;q^$7PllHWr~~Y#j&<3%gY5)2beSQ2P9@T4JdbC=-xl#PMM@*T|fg)B5lXy z0A0SYy&fzQJ^d7ALluNMSn{Vy6l$S-*4}x_3gkgTMeE`28fJ$Q2dA-RdfiC_${tOg z9Dz)bDRY)**%x#LjVf?Li7tsgZV4rS7^-f+jN4s?tF#f{!Upz;*qawT>_B3KaHy1! zt!!!iK|mIP)w2g`fT~PpyJaH#qQEYKj{RB`K2y9OIWU+e=TfRN;=^r)q^rwtjWEpU z?e_Q#YEhpVGSD0k7Yz7$gr!K%piI{tlWQ{uT_>-S>og$f8H;bK(_Bs6PGCV+hG0C2 z6>G|0Ve(O5$qe>Gz;nuGnub6nCXo-bp&Jq=sIC9(WS&H(Pezga==p12onKa#1v;oI zLH@u+7?}>i<*>;zg_VGZK5m|e$RNp8^ZcSPJbj9@$I z3H1{$-L+nM|Cuj#VL3qzTBAiAwo(yY zFW3wb1a-~xw>)Re;w-RaDy{g+C2wO5f2vMb$S?U)|GUy6jN*4RaP)ZuQ3YW|MhN+X zEFKkI@Ui?_j%$S*qY7*m?l(GwC&K4!vUpWw@ve7iM?br+Q?4tBJ%4ShPQh~`+zR^Q z<H*A(Q!idQ9mX0W0^4zk@B#OF&0oR^o)5)*6d2O7FY(Wja$|BcIjT#w! zP*t?m-x2M_4WK|ORKB~D^*(AP;?U`C=ajvjxRXJ6hRCnO^#OinUL}d=b;i7(m^j1q zk5Di2ma+x=TqSq(0r=OC)tn06Ld`#(eJNw!B$eNl1dztx!;`hGb4iqFMGx+Kjwr~X z68TEg@qDp3vubI3a^Myd)HYzG0RevHdDoXxGYLIMv6DQIzklz{Zf#RK8I$1(WwV_V z%l}yA&XrdmhCJ9!BKjK%Fvt`Ez@7jB7@!=o@Oz2%`*8%b??x*Rj%9*;P5l>sVlbB; z56F^%j|w~TAOb%_L=!bjDy=6kdB`;}Y;R03D$ozI4c+4~?OR$i#^KYijQHTQY#3K^ zn?RauF7Sva0eP;jPTlC@)`NacyvZJ#z_yv(4@e(^OQah)6|rssgv#Ca2>(RM^G2`s zBDU2ZGa))A2V2dkZ}wm?YXr26O>!(ihuB8O~nUu7QMtVj_d!3#IMP{-6S(Lm~p$2X^h${GwAG-cR=JvUp1y z^_>6o<`l3edfq2wm=2kLFZn+JH9*S0d_6%h7#RZuwpUuguA25-SaV>%u@!8c9=BV)A_=nu@&;P>Wy*%GMivbLx$}i3Ze(-pdq}$N75J-P-q~>jYp= z%1T01zJ3&1AqGDr{LE)nC|rc02v|tEULUpcVy^5@{SXIHmJqN-fqnSI=Cy4#DZx8X zPTcg{L@NB^VJjk0-it|4swWxfRQlUiz#8YR>IPB%>$wTF)TgzNL}mMA(LJ@^%cqHh z=#YF6RLSOpphAIBY0}zUe4%@l&j|zrL5bCMBIppw!0L3kWTD)z?Q{rIWKEqI3}=^6 zL?{8(#;^*&PSV5%_?D71q4QEJo+LuGU&IoAiGsqp!=4t3B%P#SH_O9%t*73w>POfe zD5ZepMe!^N2D_n6hdoIo;;3;z4M>M4#Qc^IGzst4R`@oE3Elo|Z$vp&5*eg8Sy5bD zxq}UgXj@Tl6wT)~1fF)>TJXrPvO>8!c=G}){WcQ@4~9>^|iCoxwxpMGeFo_VOi8g>NVnc0~kMbfTDtSwd^6 z46Mr2s=fe@Gc0rFlOh;d0KF1J7~=c=J{q-s7Yip-Mm{m9ky9?PwC@*9JW?0DoNccz zEq}b7K%oYY1cWM3Mb{v7o9_x3jc79V;K}s@?j&J3K;gs zO9hLCAD}N-IIW5L1A=&!&_lZ)RV?$VX&IS?IW@pY54N(K8%Zl^;TBc^V4zP55`N4v zz21t-x2CNQ^A)4f$6z{A9?oIScd-%+)eg1SbR#5PC#}{HDW;vpGZl)XCC_0xDy`#g zTWx(99AbsVPK*vO3P{iT$a=`&3iw2fOm8C;cJ^Mr=@^f`qz)4aTLq8(%#h2vtyr#v zAKzjvH$K#A0mJrocyL5@ZXF+kIchoXfjm*aDo`ll{i&^lPU-TQj)TfeX~3gM6ppTL zEsM9hKGUB*j_JVnl9*T#e#2RlL*HnaC|Ec&gB2)L>H2llc}JIoj!P@@&{k4}t;lUt zT7RkIbT`cqgAa!fHJmk~VSh}TpOQ2}h!0?i1f?+4X@G}dC6H2H(gE<9MEbOiJGolX!`6m|k zt6{YDWce<5wp@?W1(nfyTAg=?!aiRvn1+LqQAH-%p(Xu)`8b2tCiw)ZWDj$z<8&?Q zDX)7F$yB@*;d#$@d4bWF-~AVH+S5U=ndvsNe1k&in$$N2VX%h6)|wjelk3ZUOuPq1`>q8TF zJduOPJE4iRj~N)i#VSW*t^82xf6s9-u$#91wj7*Sk&+w?5`0rp;a;;rpq`aqA3vB* zmPGF#zd#9ro&Vh10KAv=Wc@klBH;WX&K84ulmCb=mn=zg5D4z)E;&zsiSx|;?=ZMI z(Y*_*NC_ciI2ZVJo()cPA!pNKP_Olp$i}jGAxotCZ(>ND!kk9!~#=2wZ*oDX!M=X*I#ttXy#1EdX)5r24o!C!{) zw2ZZ&Sfe@P(Mg?j@ozEZTMEy3;G;&B=X`ZMn}-C7=}bK4Se+^u1-2Fv{q(XNRG_rCZp6Kl;~{8U zm3nN6g<$TB!*haW5`r2w$_piS^ZyTC&72FxzQO$V-#-ufC4%#HJv5i9dFy-XdoaDF zwK`$&`@<>o-X6J9W!GA0K#7`1oEjs#zGEW+Ctl*;WV(HYKfRnsrDWvHosZWhF!G!dUgP*gQZ{uz~5kYc@R*Fwn7_u3z9ia=M)4p z8w)?q|E9Ac3}yy#()p#5o>ky}$1aj@FRMqNQQi81K)oEFQ5c-`)%^B71m6%;Z5S^w z7-UrxoT!WZrUw~U4-O{o@|`>|D2d2g8Bl%?=Swf>*XXUUIC%66V{mNmxVQ=R-26rk z#n6u8;3NjT@+KzJ;e&&l0rGL1wa(M+OsYvl0H(h9w0THk<;mXSl9HFINhiz1g2{^igHv<<(w+56fe$@5g zwc`Z?9|;u!bu7Fd)N8&!F>vw5A0luvyF4VI*xT>fL;%88r5B(ut%VnjsAsX{H*M$= zS6YY1kuNJq&7!G9fiP-ANT{w5P)l>JoI1Uq?j0maZxpA=n0vLiFsMXdd#znhCBLt( zKy5J!gSR&9Z&Zl~7}RjO^V>4;HG2&%;f2-`168pKO9)hc9oLvq*B-n9X()Z_Jzd&T z{7VPffy)i}$wE)x14$oHP=Z5A6ayQz5HL_PtJ6MV=;8Nf;N}Miai-iT1}^>%0M$P7 z8yW5?BS7G!ody8h05afTem4iTy5zSya8U9ST^gkW@Aml?7@GWJI}mMX9T=;ej;$iXk0J!tN$6i~JUkYho$*fM~;ORsy zrB_3N9B8}v%vArRW$Yscrn#On^&wEJih-FA-^-x~9kvhx^Tw_&KnQIA*5#?G{TfO# zz+9s<2M}!JPHwlUf4-)|yYwKv_$UbWC@(NLkHWf?z3L&jlni(JnlD-3{?A>E6iSvT zm=_pM)&(X*0SkhOBt<0#=D<^>@Vb=a;zHgMx8}xcX-Lwlc-=en;?kv@Sc&uq$w$tMm{6m3zr?V$61(($sL`ifW*RIM)dH@EB;M_ z$MIkeE;=snrwJp%VdnWbw+7sDx9!J&q2iT%Zj_T=^e)du zzvVyRXlK*H;PQ~mGMS5Rz6crlAbwJecy^^Dn<(g!-LW-=$U>l~PGz7J-AZNBsG@n9 zJ-=#~b+Gmy*F!F2`@b2De8a0+Gj0Zxv;|E6LPke8I1vVB>^jsK>g>xqss$wcFWChu zF~0=`rRURXo|~Lmh86s*Tne3oaYcs7IWcB?sG8bX^z1-S#(2DU8&e_m-OCYzUSGKg z`fF5+tV7|=R~ZsWRixn!A8L1d(U5UY9cP9(eh)`jL&;jL4BhhjmX!FF79aeNmZqss z#@0nDe|9|UZRsJy<>C4%$B;P(MXMSYA8_2A@hr-5cV;GMZ%=UH3)o1jc5Ca6 zz<;i7Da=jMWC*W+cHWG;XWK76I;5e?RVCpj%;uAI@IZDlCCM7LqIQ-5O?zF!5^D2@ z{@u1#DL<6Ytwosf)@RTX$12CbbOj2xN-60!Z#_TA98v_rnGAsc7CT>L|NaV6)SXO$ zGJtM7yctoq{mr7ltI}#@PT>7nSaczO%9^)QBmiqFo18&1G%I_v{hL;sRX=Z%2dDXM z679@Nh-R73&+(}02Z?-$u1G~%pdnM^3E`HV`6YRb|^d;LuCM$t;cE%eA*W;c ze;ZYnPfrGybk8YAD6FO{gUqO1%RrvqSt|-i5{Yar0uP2Y834H7U5+RlJ?Z?W6+~la z@i%vF--3(^%TYT*^&9%A#|7I^#PWCE|O_*{clH5&Pmjzw#6bm>?XQH82x>!#RV>`kTEZ7dnD*YQQ) zjUbhACJoMxv~aP=jwqT=m@6oXLq3IG8~6#nGC6^D?X%zHnSBMmt?gZoTP)3GS)Cf5 zs{$lj-M6!y zGsd)WnK@=XETMP0JEswv0hRII0qBN8JUVvBOvcs^iE^z#-97e zfWv93or_xPk5B8462A{wFEbX!u78=kaoJhioisE2`alSYAcJ1#(wDJh^r)SM-h3jP z5Cz_0RWtyvnr1J@rwiEOtr0P5;b{oGS+%dW7J5_Qu%Nh`Ke{#uX_XgZ^KGw?K_pb_ zHyQM1Q9CB-a`i<_61_j2!JfXR{hbB=PLCC%bnkV(1z+i#igD5p?&bz3HF8%Ox}_L( z*DA66-Sqzwy(#fJw!rFI8ad&u% z7;twmMcUD(Z{-}+s!PJ$y|eDQ$m{%C|F-5|1zPHVrpqkLt{en{Tk!^}k47Zze`8HX za?Ad)ALmjU00l{}tXT4{!EWa63nDM>W~qO97I~MI?0~y^C@g=rl}}y9i7h59lqweD|--Eldgsrzo7@NT`i;3k4@CenxybX8xU z-<2t1$WVq@4MiVzfw|jTzAmtC6UE4l?>QN|jDG{Eo7)&)k4o65_7rp%RWAdn+Z^V1 z_3qC5R(yCwd?N_^n|#RYoI(ss1pv} z&-IalnsWkLeJ{TgJYvo+&Zeg8 z)2Db?W7HAFT50S~xEHg?BAJV5++JlPqR%flOU(uKEQ49(Ms041OWBCCVKuLLYVeFJ zh)Vvp=$a_p?yfiK5FJL~DAJ~Ka}dQ@#fa!^!XZ}KaVe^=*)iOUImcEMH9y(!=*2pF z0&TWV@B4U$yWE7@?8=S67_`WZ321Ys`pQ9Um1t(csBXybeUOrsW|OwNUPDWBCM=H&MA%>on7X0`DX%EqgDy$jKB*;bV8{G|-FgS<|ikEWV2@m@sZ4Ld%b zWL+4b9(H}Cr@8!v+6Bh!1{elq{1yPMKeDlETeG&i21VMecYe|YSFhVX*fLa|i*6_` z_%|7)4s@1T>6S4Nz;8J<5HyLaY~GirC9a3;myDA(vV_Nal;j_NbHHP;qwv$v|$7O+jD&L|z*{A#l! zHcs_yD9K|D`!T5=&WEtw@Ax+j)IeIGc75S6Y2*5jOxpH2(hNlh85g1sulO#IsL0HA z0Oi&UCs{`<9(IyU|wx->?E;7+ii0?GAXd_qmUtNsv#)55{E}X^i zF*Z9Jw36C5F4Xl5I|BWEiNLCE_{!0$cC(vEtMSstA$hx^BjMiJrq^|IH&!%j@2qlA z-Uh8-2Its|zY=T5KaT5<8@GN-pdUwjtMlwHhC7ta#YHyVu(`N)O{w2%YGVH#auTSO z=S&83$8m35C2FH{^q5SJjfW%BN_j*%qO)&szBu5jEgQPM+N&MGi`XpV>GWf=;$iNX zbrZ2x-G`l}X@@1+LeYAdv?HutE_snQAMCo^OsG}2eczgSEOH;6 z<`%G%xvsa|Z4*2((8dVl|K~XAmHvd7Tgv=~xEgj>`32cjp0|11Jv3~1o9U|J-b9S_ z9ewS|bCt=&=xUuc^laXV246l+(&x>)bZzE&mft3u{$$B=IY>YKk42aLm{@t#X*>kX zW%W^d2)AJo%yQs%PyS+PFgmZUF;EI^b4T&^r+a4I0QW~PC(1R@HXv*la<7A9MdsFZcpAWdm-1>Bz#osJ5^YlH#DC=Q6%?x?c+XL<-d8!E|~q4x8XNq z+D2W&xP7ib!FDH?Y-H)AULT_zm(1a!5j~gnUmDpCC2C$d9!8NvY=a3%D3!s8`c9ot zxb5{o<$(&~yrQjC%mjI7?_vu~b6zK(%_t3RwXpO{EuLL%H|g#AK=TYjd$6K#o6-6z>{_=>JL)82Kj)ObO>4Z0k&yeN`HAYe;D}!;y&e^yd*~O-OAwQo z{{8+6wVaJwP{17O@wAbuGLSyK?kwgeIJ}^Ut5?m67PxPGj-j-LAIn1_%;y!Y;a&yj z2@o1V167;IQxA>eZP7u+VYR9V1;G8$+;XuN*73*?WJtDpU;OIaW$Rei_Hw;Q+4}b8 zS3v=CB|_}i>DNQK2&r%h!0F!uK~Y@a>&A1HW0SGQfTbLyEL}+>J2*v#;7w|=fZ}7x}Ca{@z!5u z7aw;WMhQ^W9V-gV`R}W=h`T3K=5I?4b01rJux(+i-WchMe$y-UWZ=r*z?f!OoY_0?$R}!I0 zLC{r8W<@hMeDN5bAwNf+wqBSFnqYT^ZB%}P!D#p~#hnP6GH9Hwf*iEOb2*`io9{ok zubz~r0UR}pXzbzihl=_B%KEkzJZgFQD%ni56^J;XXq!8Kuk+NY{O#%49T&A|E7fK{ z;Wn*JG%lHm#wjiXNPIOd+75T{0JX`8?!Q9dk4g%(or_DNQGk3vQW+KLYZc{SSl@<= z*6MbA&%MmfB2SbBd>EH8<8$0R$U)TffQ4o|9-3$W9P_}cUhjr*YU%?Ab(?qGy!Qid zC206GoUem1Wpp>Q18k>%Yn*SwWFe# zeC&3bnj(&#=mD{5Sdpf=U?(vVVbz$~UW6UAH2a-_^5hdypzzNJ*j9cj<@~cCQL`&+ z;nnAmaXh>o5Ss_?c3h^D2k->!H-tY(D@_1cPXI155-M~lih%qXwoSmtFB9e8?i5mrW3j2N44jU~3< zG=+e$J-sS$GnR!ba3kJ$?g!8|UWFYqOQqxvpw(RFFp9Lg@vb-uwo-(hau9GEt@z5RtoI9$dDZyy>)dA85GXRP-;L+@GEV*^pLBrvwKKZl7|K@XQjXGv;l zVIjPmg}rJtD=Or_!{-TBdE84>X)*3g0MZ0S2#mM>d=7d#EyPBkO)fWYoQFAQXGCo$)nmo0{bAT*cG2S) z{3?C6TIx;V$0z$oKmG~(hsxA?NirvI62lt-d zaI;vIfYy2;VeDrR431~7f{|vH2h^RwgY~vrFP6V~`#3guExenl{1UOa**^Nj6%*V$ z-pvBu>0g&H1*NMK!p*>1KZ*;{pSHpa#2@lo!q*jn?)0j2ptuEr9J{tkMHMwcZXsUq zCIjvqy!L!KxAo>_PqPik(^x)(=HDC(ZR7jtD6QAHbEuJ zEHS*0@FvmSngLHSC7kcg*sA0a86$1F)|8FnzWG{ISo?OyTO%XcXgfkj@H%zD+hAvu z5K7(_%3aVl38fViQC#U##;RVV>o{#E*iXo$+DX~`2#|M!=Lf@r>Aj1|HSCF#unJbi#|NvH18~NEdzXafr2dGC)LPET%LeCn@7jFon{^FpCPuF7 zHH@;`+-@3EYv_yMN@HqqKAatn9pbs0R0*2Z{j7*7kXnG5o*`+n6K>$EQIA_>lw6?2 z^mpmVsZPM^3}YO=@DPV^#!DwPH?g-ox$2i;xWyI9sz1Lr&+B2mv%lTlzqr}p*Z^mT z9!RnGWq_aw44li0X1L{Suurd;yz}8E1KGIgd4=LOIpjR_+|v}Hh<`(ZiWta3hIflpi`j|hb-)* zcqY^v@DxU)rnczgc!L=*26SM8NyvhJU>|v~*}Y4?k{(o@U~{N;JD@q><5HT=4lGtU}$8S!vTc17wN@SnDDTs!bE{<0jELEO|DHhKIBbmx)=24;lELPqD7?iNOg9Co93i_oG!`u>K644WW<8W}+#Nu)n zxO^QAVG4@dyqQl`o+7BQ32ZAF(hC2En*ypty@CcNKZDK0h&EVGjl$zWryY$2c_G3A zPGKVY2F~Hk3On671LV}z7go}@E5&;7&0q$Z>Z{SN!e;cG;i#FW3m)a@ggZ~paFSsk z^<4;wv70~iC!2n;UnGQ`0?7VDKchh`yacr2E7MDW*0TY2etzc33UfsJkRJ8z%2{)$ zNiY&hy2EK&FvUwvh;%j>{rGMf>uJ&ATX!xd*+GXkyuNS2)rcm%v%|8+7dHE=$OoLk zKwS5{b!)uMVL?X5Zx*FR?LWqe>i0vjg;g!vbCY>AWk8-wUZv}ndxS#DZR)WPi&DzicK@;XI z{8U+X`2m2|pW|z5v7e{*&dLoPDD=t7LPVuFIBJP?slL1Vt)&!$Gs0L zRdn$M(yDrQuE=oc%#iB9R{*1OP#>m;V0B^%p0D||7InE729Eh?pl1Rq2t(1y8Q6Fb zI`|b3S|t@$1U3b)sc!*Sxkqn(40KXd0g6_+6+qP)vZ;|BAZRD;Xu(&a;Gxd&@l_Xv z;jb4LD#x-rgj%WpD1eZMm4`~ z1x4%6vcdT(bjiQz)!^#d2cl;Qwa(vS^QD4Su!L{ZoU*0F>4Vi=2-CD?JI(;B3X^Y&--NZ6u){Y$iwCh&G3S!3NuYt&Dv{-i zxvrSK^{juGF0!XDK4+7@uT}Xx@k`XSLFul62j6 zDtjAgxv1PfiWxu3H`z8k+fxj$e^owRM(ZL!We8m5Kb^3TZC7Auv>vL*`rsOkZw`;1 z*MhBz)toj=rhV#~qI*Mx*OqgugH%b!x0s7w-%1srsDp^nSkWM`;4i6Vwp zhn>7S79`w^YTUMH-XB{ z`+5+J4#JGEBUT%)aa*cN|LJV|qiU2xwxOyD*)^HxD<~K)a4CdtsM=6poB!xJ9Gj&C zZ(>xJtTgW!U3EWJLA!`5k)blS$;`@!Lh^>D1vPKj>1ubS!6yG2LS#eIhGxbpT%?xH z4@jl_S@=xn%(UTkw3?3gr0QNwI?rq^9}b$jqHnWQAsU)2hqd{D4%a@cVbMOzfi+1U zYMf_x`~r1&p-4{Ga+Kk_90%!DRqW(Tzb2c;<63rx?dEm2i`}AU!FS?m{bao5LbE16 z%;b?tA8hl~Vga+mu8q5{?h-YENw~YSn?b5&{I*stKM+5;4Qb>R*W$M0ut?&t!z<9}lF~l=Z^kWjP1BH6Jg?qq`LLn2uD#%(ZSTXW##+f*=5EGVZU*vj3h^ zz4#WW`nl|aDwGdV|^;s=9V>Q?({GTUIL_Gci@M)i}ay+kctRQqbIHY9-Uv zA%Lp5Z2z4`+&YXvtbUK`LG=uK5Ui>I>61!c;*CvMYSO1&167lEy2*d7(d2fRs!sGR z_#X7tX15#Cov}NIms!`1L@Zqet*TP0`>P`o80U?<>lx5|5g&;nv)|764(;B^5!qjzZ(mkOJg|%v;QgY zz`801!2A&wCx#$))6RwgYb6#2?8M6$E@HPU{()YVORp|7tZLTq8Qq_?!)AWRnL4j= znag(`?liLL)9l@EYcg@~_`(8aYx%8>r%PXUezjg5^orsvWkpw+j?p5}fVQ-f%_>NZ z(q7|x+z06%s}U~C#4u+&wLd<}=1|Dj+~3Q^aFTjM8L$E`oeUBJAdqb+ z)&Q~;HoJPe29Bl`w{^*0Ixn16Dm!@FAyUZ+bJl%VeA4y5;Z8f7Z%Gmny9e6)g7Q#% zNGYzriH|WmUqqslloB^JdFgtR2{G=+7lEyf2OCelI^IEB(cS|EwDq1sR|K<*7B@c3 zw&%eI+D@80`KqT8#;jKNJ<^Yt(4|XGk7Pmv(w9S*n**x9tI5I8ZwAmdG6%!UH2DT- z%S&A=qF$ArHhidUc=t@Wm{&)Hv~CG8+`KjEz%Xg0PIWOzD=FgGA!hdr@>TJ(OnDQD zNGB|?l|0uXpjNFU6OQ2~Bw+18KgZLrKJ5+nG(Ml|970TI2ep+yL>$z*QNYkSBWYK) z!jDGPCqLGnDZ?~wJIAbv8;o6)ODotaWI1iP-F(#9YZ5`5!#FvjX_y~wd;K?QEvg!* zA4tR2=#U|}6(CaI#x^N2oV+|5zBGCp^(o0RO~$Wr-?n@CRjHbwR$ZBfcOt%hUr1X= z-#Q+gEnjd1I9rTdUT#cx8&h|Lv!W1&+xq4+bRD{lZ~2a{on6T?yY2k!nvOTFLl^Qo zT2}8Hv*~wyha#uftbG|0s5Kl8Fx%WIgwo7X!7+H!Aa5$m|ob+6-wV>QS4xZ#kPPD|Qq*|?Z`98KQ41GMD>0tRLq zG9r!H24FDM`|n%+bxF_Aa;EGYPS)%20}m)$66Ro*j^lInb%ZwYzxTNDJb#WAZLKi0 z>-jjVDpr%Kgpv|dJGYaeGpcQ z37c`(*ubq>Ik;vOp951nEIJ@n`H;3Mf7T7_#nqUU4Q@Nq-QHWv9_GX0t*OsA#%aZ2 zcrk!ltXbL<;acg1;WU!_@Ooljy%an?tw`27OsrheK7*;1D>xn9S`cFF$E)g&-Su1U zS`eVBJSnsSY9ltXTU{xjNYt1F7(`7p^|QcgldTPRt$00$Jd9}V{K4>eipLh|K8AJ` zOMNAo38s?Od?^pKmn+*XR)2{LN*g{s38h+Ew-re{x*fAZsX7^LB*j`l2!4?oTWi*=s;Rmk-61ZI zuWNtAYTfmDF55APv`<=S3=a1wI+k~R9Gyh{QS{<(D5_`IZJ79>H+DN#09W2i!{?-< z@$_ob*^g^}Ed22b1Z+qQKO#BQ&t3qv^^f5G=9sMYJH_IJvF^I^0 zEhkxUKZ+_Mmy#?06?HBQRrb-wTnktACtKefkzHA%i3RB%HVnVR%A0Gk+M#Yuj=Llz z)wNiyL~Gg_v05H1de!8`XB-UwQC())m838bT~XBm#JK;BwIZ(4<^J-MQ%Qn`OQ@r# zRj_F=;myq5Gf=gnZ_#J5{D){Cu*(0t7T-F|ih`K$EIn%aUDORQ2di)q3U zT*$=HIP&5iYc7&i;m{5jv&3qg#Dvvr3Y++vne$Ke-)3`5WE6nm`b%o zs;(R&^6_o3EMpqj2d$POM-5P8@}EZ?_Cc@+JR&n=S$)H@E`y)feClr+Boc3dB_HhV1)Z5S&1zJbOu7DQ5>=F^PJ}lDeX#SW*tP}<>pU97)nCoYx^LAV@|FNsVJFOgL1@q(N&Dohxt4h{{i_afj+jViL(@X5m&$3)it6WRcc3T@QUW*#U z-SC#xYZP&?3dCdAsyi%%`e7X+@HnRQimdgmyAP1^!M64@xPY70t`4@Usg2~!?eo*q zP=?JrI*6C^%J-ni51o8S*rmqJWl7OhzH4zdhu&mvR=%BCNo_Q$5QJyXU4AI-o6=Cf zZwqo#RUk-$<5QF#6xtmNJORQFN;HVDl z%l!hw8_akvoHakUF}Q2J-kXl^JqL?X^i>m@*qIF)2?U z!fhdV!A1Y4hOeI@DNa&R7Sg6$c*>sD-S{pVT1QK3yG7gQ3cOVivMzdYvFt-vQ!KI( zhJM&P16#f!>mR)B+Jl}Ik@^Skad~sauSQIJ6Wz_zgYV!?;N5#gpoQWxK5BJLgtpHwnDKQ-+;$y%}S?8|wHj)Ma-TRAXwIdhE>*lu(9gnXWDXHj9~ZpUa8X5dZC(obaShR3E#S6qoQQBt;E`w>H{nw ze9a0I5D#$r22*T#hREMqb)XpD%oZ7S^@57W;4?=Z$_UpMd3s$5qp>O%@8&8PAbePI z%IX$ty59%dJk`SIse;IpUO$`8{E@yG&|BBRE7!dUPWb6j!rR4w-W?$zY2&=c^Rm5> zS4DMLdRsIEzI`~8M>1i2_};@?Fuo~md>8h?7ksaWb;ft~;CstvC33f)_p3oyR&Am9 zZD~1v@U7|{f7#vO8W;xnpgo82J-*-#`nrGT8XN6#a8+$j^f-`LAD1Tp*ND=GC3u6_ zCA2K1?HT$n;(tJIWy_y8y+y@Uu4{iAm$i*(rCk>Ip1X>m0A3XmT)ywwGQPE+iLWjX zrFJ;zs!m_q-os>cQUl{#GJHGeliPPM*4I_oh zH;`Fk9b5C(7VhyD;_#HKZBtf1GSZ#^f)l?Qp8|{V>BQ&B?(XuM zZ!w9|T4s0{KKO3eKoznWuDoJs^2p#;^@-skLw+(0@GRn7MMn3o8!Z^0AQuJFm^BUY z9t3ZQ0O_B_G!%Zi4J?bT_yl+ZSZQ)|K^MAM*z>_nY%pC@Rj06x1-;1d>xJS$`f1Sq)T|BqUUd;RfJ^DI(1&kV#Jtt9-?Av8K75$Mca{1A3o2^+3gG#Wj1|7OS2exW>6NlY>0AG% z#egEoEDJ&V72#su)rcocddmlr@nrN_9V3Xh1dzXIf_Lj=Sp%L&?Nk`?_~`HNecroeZj(3+36&re5pq`zCZ8nFa;qhnO$T4{Ml(q`5QRbPh@a?t+8@J-pCIhg>; zb=e#Q2qk{myDR6rUjtR^c}_-3rreBQk_K;;1q{%%&mTaysW=KjK>vNKky1MD~rZ^i!jS@vr(UeTTqN8`-LMUIW>yzC0M0R`(Hf8>w*p`|0=kVp-<$rX+!zab-g}UbsmMNCtaXLbb{p zHwoJOe4Rz8&VwC)SGq&c)F3qBbayx4`g{Zb$8@>eXtvuxct24%fobS1F%09z;f3?x znDrG;!x&&7_Tf)ad=!iQ@qpFLo;$j$lhj*zETEpwxL`WnoFr>4HRT@_)Mx*EDsBS5i-M@6b0gvmOw>&qO*p4K_^nB$5 zz}%VBlCHX*9dZ45n~hhkBAgat5_JQvYg#Z}&Y&2kk&wKU===T&51v?^5=-A^=S^`` zkLweZxAUubFQvD}xC^)SNHcQo{ zwhh}k=5N!w-i%JWrTaQ_-5>KgdA}fi|BO6tldLV69$q%LxV0!la29whGlpH5Jxa|) zqd5pd>EG31gOh>}f4dTH5O-sAw9lmenwjC*lYQux&`J5KN6)U`vD2kMp$IJzjOO(e z19fY>cxI+Ve2A1_T0E?m;*+>}XR+yKi>nr)RY5G2ZmtboJJbz2&&jMUy$K5#m|Qx) z>7N{_MgQ!jKg$$t!=g7ZB_Sku1>L~)hA~R$%F*_{n}oGn!P!a)T_GWpnptlC)mD*x zm9s@m+UAklLu1<>!2G^u*g)a!*n?+Mt_a#~SFacf5k2Z8BrJ>B`&Uy0X?|G|EPLVV zeylQPi%ilpD>ennkBkYD7u_r&b0h*#B_>SPjKqHd^7z_Sc%1DL^=R^uVdgf$Rpxj2 zEIwSUBgMm{w2NS|D2OdSOP`ZBx)GJH=F8ivf?{>96-}4JnN~3fKrLj<7Ugfn>}ics zV)ycmS|-TTQ{dXHfWHT|vdcALc|e40g@_#-KT8`DhTHc8l@np|f2a zX}SUw>J_H2gr|tN_AG$9t?D)eH~D`?{J@lRfmER!Q`C$R7E>fsF|0UcaZBUClXH0Klh!7+<*a~xM?wp3j#bFh(P)NR9OS#Gne4b~ZUlmk2N^uGlCG)?bP zBt^Gd@u)iP;qgM@5)3hAZ4?&f0k%qSNt%tzCOFfU z4a$KeiS-uvOj`0cotYUrtN;2JL7{GU#U3DcGH4|*8{a4o7fX!jql86kR(&nc?b#}O z>u8vDmEZw(MG5>nV0U_8r5J+R9hAcc@znGZI$NzL<#C%E4O37JEr(#s;Sr^!(b6wr z+ldnI4EH4`=KFlCL&~T0XsJr3A9fBi?MWJsZ zpnejm{fv5v>HcCIUe2rd2zmcD zLN964s++{~>f1h>0N1ujL#DN!3GN3G&*VXIPpRmxFdXUq-#(P`K=&CN!>-(J-G%O6 zpRRW)2QbX23~c7VXBG$qeow=w*m~BUs{F!#b0nMcT(EfZI|*}rYLi9dH$vV;jEUp;BTW0B&@*_zaoV)bi7n{W{@WS6zl=%kS6$E$u zwBp7m(z2+Q_jtcxLg4=yWJnGNc(Iza$FGFHzu0$+`Myr}_9!}}vjRVQ)$FF8$HU&< z2l}}!gev`3QiQ?DDwh=#1~l|JXH-QYN-dE1BKQ>%<=WHXvbWwL{7r8U!36|mXG#MUJVOR&SoJXwx^O}{GEe{C^vZ_$D!kSWl-QNFyuBNZ+4Lp z=Xo=!Zhl)qoc8~z4Zf;*7xvTY%@2%;WrIOu&%@86A+@jTKkV)3iuGoihJ~rV6ogoF zMs=-(L+NzeJghNajcGeb(V2;$;Ea8ST{qt=+-(Ag6#D+Qvj^oB=_@@rZ_})JK!{9O zfKRNqOA$r^IexTB3VO8!ub{mY;k;8LWH zgYYJM z9Ek33B|df%Ut^{#ERYmPeOGuQ!=qO_=m9_IZ&`RuuyQbH=k9dJQik8b!Pqd;`zZpq z>k^z`Dh}g=IIbc!DvWAbg;ka#i%~*|g9Ugiy6091nn0>5hxi~@<12vN0l}~)pj)4W zhN<@um`KYd6ku*bP4nF`>6#;esN&zqD%=_9iLfMSH?-oG zc(`aB0q73v(d2PHJ=#1v21POoD1L>rt!UsqJW;5-4Pz-}es+d)lwRWQ`O+-ZU0zE9 z)XfKPW%-{!|Nisee2{yRV{b-*F z@+7+z$D6Ku##xFgCUrbW%vcy=;5cr|m4_40b{H}==l6)-{pM_(s2;qAYhtOJ_rEY4 zqi{c9bB%3$50r3dhy&@&SCm|wF=#_kyw4rG&dmoyyh4s*z1N&E;PYg0!sg3`I4~TU z?l!XHvZVjW+ed-oH*M0dwJ=0u8;eZ^a~syNHT2}!hI?1vy}KQJuiBQBvZ&%!79%NT zYrgoltvcC$bn+T{$E1+e-f@dk4ixI#p26Z?GyRE%vx?HaTfZ&w{DL!FV_;~z;~1Dh zs+ZbE8bDDXgzi+k8C05&1&9WO2q)roY4H>jgrh4oNSZc)9Qp3dUB0H-1G6LgcJTbg zR@`nAQ>Lb+tX|msG-(d~EsR!dmdQf;BDjQ-AZVh));9^`2aW>oZI0thS@o7JYJqZtDe*A23oQ2i7P z)qpTchG_14+OG)Vh?L&4lCDY)Ttu1{ZU)%^Bf25>z7XyV#9qi@E#0I!cMTe1sNXFg z>w!6x9h0d$p&TpP8@4l zjOiHAcQXvc$*T`bHZ zn|opmE17GOw*eyT1DLrrbgqmvjvQ~or1ylhdbEv!v0aj52DK;L*z~c9+uui6saWtB zY?Uj8cousY0u5{Mdk)C;0Z}geQcbLrHAsFKJP}%WD?wV0%EL*>&8907b zCZfxJ6O(5?loi<>UzA;lHJRS2rKf1@)Qwdb0P74N_;6P2?-~X>ZE+J)(Ed5rFt@>R zl7L1WWA(Sw@Y{?Z!Gp1l9=m|*Ea4R0np0;5M@0q_kH^9ohapysTQU@Yy}SL#T0=~| zJvZ?J5ivy_Y<})Vl{3b$@_28U-p0Ow{7CodvL6=+CzEuf>vY~W ze_(0Rx5NKZSGr`|qZU?s}y&*J}TG1!+Z#Kuar#R%IFZQCn zgG*toV$60kl!~wn1F3SThXbU8j+WztQf=UCuzf4OxT`%msH_ms~ zrlm)6flDEEY4WVP?2RMf*+K09I>nI{=YY{CBrkwYZDza*Jr$fbnYQt~z|GYa+hE7d z%{MDKyR*R^sXGENP3|^mo*wq`Mr}n(k}i*ZFqpOR{AwG`^iIL1G^5fX)YQte*9Q59 zVhLJCdM+LZ)^?PaP*ciKAd?8HI=Vgs6j;uGCh`j>dSOtuG;TQiNgg8k0mz=I4og(z zVaNll6p>WuqM-qj1&ZdbvvjtEl-D|VWk8nj0w$xmj8%Gi<1cGX^sa7K(<(iVtB6G? z9xNB}NS&+Bl>Tu}5ktw-LB~Z6Cs1^pDu~CjOCd#4wGl>2D>>@|Nhvc$JE=fXrpb%BJe72Ah+Kl#zR8a+W7Ll^{>i{7hyMUG&0Vm z{}D0@KAo!FS&a<<*g33gJBGK#acGhXnEGj+7jyuPBJj?Iu(6>o?l=2tQP%_g-7jN8 z#_>Ws10?JUO{mz>lz4%QW8qasO}r+<`J5(`a}?Iue(~Vj0O~rL$DCXEOA?`UdR+pG z+ExlH0Y(u!{SdtN&UTty-f!ADK}mQz2Y}$Q@LO=j6Lw>Bw~p7bXt^DiUuJpc#t&{O zk}SuLsGIzepi!&;*bSDY#!mL#?Oc7$WH@|fhnJ6u&v|M#iAbpAgM^FPi~2>N=p}!@ z*&+3!@)8wM%7=-?8%LRSI2A%g^~Az$nRgJPQ1Ro$;CQSe6mtNAIt={XWtZrRBJ{_B zriz=3gh}4qH(zLL5lT$M7+#Zs&vz6|GEQ(Hgd;kJDV#TQnoCM9>4@w?6Vb7JsCc?B zH7=f}N2VdVl0PYEMYww&k?cNg6%t9klu%j^T!M{*?VV{o-_E}d3^ zcIb&8z&x4@RV*ozP*z4$NiOJ!kuK3;mIVoUYY5T&f0!fv5Iz9-b){H_w6r_mHFqy}XHGNdeCNL=q0igLw z;|;=bPGaI`4twa8vrG=RyGUpWjZ%E#k)1~uB=R1Bz`7QT>s$aVz*6I$xCt)Bf69Kh z@1x8jz=5*zMG#Q(7b=%^#Z7*)S%pkS^Zj0iC|L^+(Qf0)aw$% z%k;dQsH7iL{%cGNSAqaI8&iWLa;ftOOGy#h`bEdhHE|Mq{&*=D(23g8(P6Be$EOJ~ zb==TTUStvcks0N9?-hc6Og*l#s8V0bF$gOBbIHKa8*S*ae@vHKmSmv~1h?W1%$&;` z_P;R`k(9?@4SiK0BoU+{EZf9Cs*zI3dLZ;Bu==IV)HuQHiNjLZjxdx$#6b`WPhEO} znwd>O=;cnuIRHup5g!2h`F3J8N_!G?C@$4CIDoeN^F1kcr-F7I+!7kr}Oqkg^9by`Nd9;_HwImw0lD*;BOhTsi(fH?`5{i)Qbn0 zYv*lvhOg^6#9)1v4}xgeFR9X!{fE*{K%+GGcC5}kJKjOkVqZ7JDDMfb2BUqabT|JY+sUUsCG9!W#Rw~C0Eb49f<)1@5J7Z zjmD3n07|=X^z$l9(eKp=6lH~(nJqc|GI{+I$L7BE1+_V7l9kRa2qg)X%?)^?v^`h36g579%CkxCx)4v-o<> zN6znOrMusa)$~dJtjj4m(dJ95qTcc6MMXh@&xg&S>YNXp^`332H6;lymX*G>=Zvru zMhtw8-sID~c&Q#(E6@qqSWRw%5q=>zzxR|g4RNX~1Q7l6S5I($C5G!iLC1ueP3<#* zW@C;;x>5FknCNkaisO3XJHSkVP0`5Cj=LcKTK1Bc9G~5yJ?W>Wu>48lDJ?k(L3*g{ zm2~$nPu)pm`Js=gv$MuRKULf4scOouTDD++ukJ=RICd3NLvej0U_!%@lu> z!VWycAf&9%Ls^|m*ViwiX6qkSK zh&TkiL^zE=0c2j`SvC&s=9R0i_mH_}7F30j6Bo&|wam$H@}=w^H4$`EW-* z-+``~>az&c^;4g1J4s*A)`(%x^j78a*W860?>m_-0xuqxm1kbN9iNsvpB9anoon7S z*ton6JeZDawKFI&vonCC%Qm1`$ag##_qUdE+N0Jd?iyo*T5BQ_9XSSvt0!V);AIQC zhDETVKEJnI^HJ-EErBV5BLM-YR4*IB(t8{7i@EGJVzkzKE0-iKp6-s1s$?ClK>}j zmmu{D#cm}pU&Ha0ZlE64ek}cZ{98UPA90UayQNU$I$-F0?~dEuvMXO_>L^7`#aQ3zU?M2NQYwmp$B*gYxgdf{inybbAR zwzmA_M3WN%P_o&dUC&#(IABdWR@E@IuSVH&G~i}@o|xZK6gY0Jz$k6W{m{xz3%8l% z=gr38P9q1~VTJbEuI5*gqHk<#K$NwTqe#E~6QsT2ff)U)a_l1L4dJm+F4XV!_}THEjb4vRd(@d_lR~UX%*T^?FrNy7OQtBHJI(ZZ)0X(d0MU5{ZpnNCA!7= zS5kc8>1UBEOYct@zNCE5>bxmt52v-VvN&Zq?M~TBAU>ov1}Q%8G|#A?e;AXdw<3+A zG;Q}#If6Xxf3qpwLVc%}ruV3-m=m5>@AI7$wI*%F5iII~8N;Z98~r;Td5O9|0;bJt zt=%+dGlq-nxo(_}od*y6iJ2Y4xZh7$%Dr$>dS2S59T%PRU$z`^N^hcFXY4II0)%Q{ zPg#2FuEBZ|^r z1U~aE7VWUvlukDy;E2-lzf1tr`+!cYKxy-lJF@gTW;GpQN-FUMjVMCcvgLuR=KqKU zE1f97Qr|m**vv`!p50c6PW%C;7k!7H0Mq;Q)mZg1^bLP{9rlrUK-qAbXVs?q*x%oC z6dQ^oM(;0dWRDz;qQ2uD;bP)?Bt)+zcIml>n~riKFIaB`=9D#tk`%4D`DTl-%_$hg z>sU=Da}WX;%IoIJ>iaL%22U@rHb&Futm$XQz2pQylt&b&(WBQD3krDOi+++R?&!@_ z)oR`p(&HWBdB@`!U2NQ$iJrIE;C#jlZ@(1KddcAMpz~Az9?AJx@LC!EYQ|R|uEp@; zq5XXagqzLlaL0?Z?B#efrj60+bcG`Rg3Qk@@PwFb9_OXzr_?_`4LY}m-IVl^UAYv0 z()yf7&DDu(L})!Z=3Y}K5P+RpT(|%cppr?N zyP2vuYVt($*cRjhQ(M=u=ReFWBCR04NX>WCz@#v#zPU^*VejvogEgN%jgiSQzRe({QugoG=SEIRLW=KAfvwC z+g?&lpGc1BGF$nyEzqT(#cEx<#14Mm18q-U^RTr~ufeAZ^m+Oe>2!0|a=)uEwtei+ zYET*{p{xqP)nkS?f9DH%AlgShDM-I%$a!(O+V3RI_jNTRLMZNInE;JhkKv~*ATqkNy$XMB5`8byoovX)2J;q z@+9i~70{cn&+t*1eEl!cWtJt&jsn50^ak=BNuX)}8*8~aQTMN?AT=N`oZ9|uYssoI z;Z}(7(+RiT*J|)qZ&fcY zxKZdj`x2ObLFR;hv8@ZoPkQ)-ZGc8oyP9loUk6{?M1`t{tpNuQ)cdPN>(?=ryg z--?$98!R$tlVh^A5Zu2u(qXXWlMIfL+}|fO`t)O2i=YiON3EuRy~L~=58C!})CQe; zIZlI4ndU?<1Z!xJ(U}x82%-oqtKLKm#$-PsSoLiKrqKOmEuD+T=DAMuArTdRUxK+K ziH*9<**FTn`P^|7e)IjSwibY&X}?fB*fvvt&Zy8NT_G>e;J=+*xfRZgI-l?xUp6QZ z%3W?eX^|PVt>{~wy@TFCb<227AYSO}B4Y2~Zql^*{$*q7;HwgLZm!6)PDJLl*M-&f zB$F|tFSbR1{O4*icGs$VEQTH@JdgXV5C5yaPGce+M5z*7A2 z6mPpbZ@1p%93^$nt!p0(%x#F6wxXwu35cUkd6+wb&>iNE81|#C*H@v3xiEMN$msgK zdi%TU@$P%0_r}X!PPFO2^&8>9ez3L=UeBae@MJK4lxnoV4s>$wMcU~fF@Q9KW?27N z0S`bc7zPG2$aRArpjK2ld`ng2(M_Jg9OCXgVC}PXsPUn8cy&;F{UC#3LwZ)9L|S!N zX@c=7-U`k@`u@6=`2e=f;2OYICoV^%W$XUrK~;BA&8Xx+EysM`p)&t9Ed2R)HO z7$tUo0Qf?n-7GmWiW5pRpT_TMD|W zWg9?uf7t^$9F$Se?T4NBOv~m_B3$MkdPsLA-lJE{UAGp0)zaU=0{Tv0BjDTQ zc+WB5??k}H2VXr-0ACMZ_M3XRCIuAGR~)yoCv{PNNUC6~j$%P81n?CFYv0~UYgJ-^ z-fAOJGB@IuV`6$idShEQ7Dlg)&0bAUGLHJ5&fMMBf}`W8G|_QbMC27Ya3oW@DIrV6 zb;F-%(HhAxAZ&h)^P(%brs%7*bwovrpL>N}k6$$X^}2fw83wRa1)kA24UYH-z|BAi z0Nenk9jT}`SurT=69iKH)pOPhBJI%rG7jn4{VSwy_OxS?x}$S({r90FIium*PF*}n zN19h4aGRA}Kwl-#C`U)gArN)3bu>D!-x*@Eg>Jj6ezbM~Otb zb;4=d5X8AaG=GY`C%(nD-u(_QaOH;Dj1s#g?&6cXt^u(Z0^zwlj7P5&`%{KltJ9^v_ZE-a?JVounHqa7J#W z-oKaGoNW6E84_QJ{Hu-1ouA{Og}M$!-?Rb>;Oor8@z5rhcN2Vne`Sv9bqlxa3y5sj ztN<*7`v|});L2UGOF{OAj0}$ZLHdj;?Q@l9#P0S^OV~E_e-Q$=J2X}@6~uq&!*prg z)Q4T+CcT~;8%g*|TlqJ8W7HFhy)wC^$txHn;8oqqEg`RRv-4>nm0(#yURgfjvy*Y8 zDd<`3WiCqC`_^=^K65Af+534i3I9q@@Cv+3y zH+x$IcYC6M$9Hpyug;leoC7Q-#^rKtmS;4sqw!DHdqgQ#Z!ZS_1}S3Smp)Rrhwar2 ze%<;x|LNd*&TyDi)rmm;)vT6)Sk~XN7unM;@06NYJnhKR#L|&T_^Ob8(tmtJ44=l6 zCIidy#FB+$sSp{ZBAi?KQci1_tVtz^Ig3lDWR|2QTZqW2=280#%0JD7gkUnb3|2Lg zr3&pB=;+PaCe2_@8!CzUz5QJD3BTyvw}AcrKK%V9y}2CzCXMwH%TW-OUk2WaW@+L^ z_!b---Hx=Y`(4F~csV~cMgT5V2WVOjGKp|vK?FYHGEXH0v4 zBe%q2858Wbs&+$pIOEZqtNx~@S_S>^zQfz{QguT0N{PKnH6dD3jgZ{;IN?8-J$J=M zg)z{WGA3O$lha*4Q_VODm6f{3o9SpTsCKm+4(f4wx_M3Vz03s5;)SccU^b0Ukuy1oU!>}##T>6dAj zd2CUNu|HqSi{_L?BLjFDm%98iQylJS!&%Ds4jTg{)jq#S7YJt)hShoxOTyt!%Gh_3 zEgFtwxlKmzwu0_ItHuk(;^ngh;%1FK;jmt$Jde83JAl72+3n6z50gyh=Qz8EEq`2; zhA)3y8mHi<5!2I+3|dgDzZqLcl@OE5f6hY*WLFCznutQpjv z3^T~V`SDmnN!HmGI+Y~%8nk-N1(E;Hbh+eOlG{LZUaRO0)Pw$%mSOY~dhCJsKQZG3 zvuqUbkgViYN+fj{)WkY5x{Mg)JpKv&2Q{D@Hp?)tQAeu#pE~q!@~uAb)4=gi;tVg zRMGiiNNMqX`%#-}2WbsAsphQ=L;gGX7*@uIHPOl0VJ=5UB_pHkx~~T^uXB)2gXg$4 zo!AjF&%@5dWi8pr6<|(LxNFT%CwJDFZlE#9*Ysdho%dKL=epA?`A%)86FPSwXkYVr z9wH#2tWf!fOl{2oJ0G6AQ-e&-GfsA(e5q61I@rpjXt$e_t<4B}{0-^k-|pe|JtUQ> z_pmW3Wq$-Z?_DLe=%(kfjOYvw*g&b|^D10w1X9h-zSD=i_ALUHC*4Z@1mn?&c|JVf z3Y3*{4??pqk~dr_!nAtacb7zJMh4a~sJTW5P%DP7Jb}^hX{DBx#!XEfk2h!3;S1EX z)$?I`l<&25D^()33ZU~=pw=&g?FiMsJ;UHD5`s}86>b&J;rL*^YrC%v9?b}=)Uu9mqP=b;e|NBu-F^N7_MP@!Sh1=G-nMSud=(X~8*1OM zHR}BDmK^5gWAX_dGC(%+n+$|?v_$sh?I4$3RS;mip#$w|1*=ulP~?r;G!9ej{ML*` z6CAvA-iTJfZCRt+Rp?H;NeKkYHFu{phI{TQPbDz7w0KwCW}AI;Rj)G;kXvgG4lHmt zZeSF+duzj**)#3MYCYou9%&~8lR^|gw@#m$ovemCjho!e#V*A7?1bE9SF>8lB;bYXH7Ym-?91mYrCS+j#@jx}BXdu$89)`0 zm(~TqEh;>sHK}25f_2`vM)((biZ<=JhE0}1NK4|e(Y2i4TQMrTmv1;zv26`+r_R5u z)~?ecRzpbE1=g}ErrY;SSdcZ`J?&Z*RuM3)!)e+}=^W*_$?g1>6m2~CGTd>($s=&k->N9Tir^ZXf&u!_x+?w{k*O>K+gK<0+jjStNCyG1XoDi&q* z9+v6{%PgjfE`lGz=c@Mu^Hd_Q!JLJ1X8BIitO-EYvg#BZ)AF#|E$=UMrnPV01{dHq z|I#zi9iQ*BEp}hiIpZT#T?Q@$Z0(_2&~}OE`$_BRb^CJPi*ofGbU2xnwQjczbaglb zX^ND+ac1~@7tgc;4}fX3piS_lk%>)V=uHUE(p2R)8J)tf)K4d*l(n($t#b>}zn4{8 zTAqQ{^A~Pdja8mT&51#@r*-1$HY%gF>>SJawyPWbAP<_pw92=GS-Q~~ElxiUKRpQD z`u=1PisNOTE-ts|0_p4+z2YQH=cVo}Vn|ns0BKp}xU8QZr(cPL1ZHP_iRo;O^OR>O z+Dje!I)!<&s1B;gUoaZM!ZebaXn}#Qz z?O$C&UZoQX-UFCqhyJV@YI=AZS_n$Cd*LZVjUbft$Hd$OA1jV}Z-7;zrs7>m^ z$nFGFat%q{ZQ-j;bY;_u{^G?|uyc}w!`2}wk(VSR{3V^sQMYjERit^Jt6_=&eR(Woj=de+! zXyJ4DXQpzvsXTLeIJgh-+>q^Q%%;ovRvn+YH8aUFXy=T0=Vx6+#lcGFasCG*d}f9X~J{jpRX2maF3HZzF^6gRkk z}((R;tp${9qRQF1MMJH*Wi&r0t(IUY~ zm_bA&8(6k{q!}0}^7(96jh;O@^ttTj(LvZ$wJeXO43Evq1T7+IrQJ@(uz~(;T5inw zXGpQYkbpyr?eR?$o26K+a9DLc)pH2?{zdix2 z=RY-$*S59<{qrF68z-27F}OrlOuAEt&#_B=O~av{Y0&ERpQVC9;|B9`nryMkDHF47jxojPQ&pKxw$Ln zK!M}@`+2(BbWilNrM;a?hW1&d5tOd*f??&|oU-kCVJ<|37Tu5^-v|ag1#!R*I%#J}m_gIV%To40npi-N zbwg^Pdq%AF-{f1gk$|9PXB>aAcisAs#)6%iq41hqyLIffHdj*rXL=sgi|Copt=sG9 z|MtTR;r!TR=j_)LmK7?r>PQ^rL92{0J@1xV)hOP>te9F8cb}q7Ci+g#espMsQY^gYbDrrIJbDEB2pXGFjK2(*u%Q3>j*Q zK&MV106t04lOx1ZF68PJ#HDzp3R= z@Mr0Cf~W9G{`#^sbW*qF`(>it4#R1?l%I_4&=o?1V*t>G2u;IT*`9P^C}SFqzMh2b zG;&x~ew_K^d&4a_ii!}bOY8bQ2KqovC?b;!bpTRTZ}F3kX_YaEq2Q^>r@XBEI{Odx zv{ag$Iy%O_u1x4Tk@{)4sRgAkcB17RI^k2O;<`i6nWdpGt7)YXqgK4m?Bm@#W)oG_ zOhqpUKGjIIE8saz8Q?iJwcsXv=IV`C1y643C0uLPa<=}GcDszFJ7wmBV ziw$N@)|;<}P89)KOs?%O#-WYs+U8#qt|OkE(85hJUO1$s{7wU%B;glu{Ip;RJHJ21 zNzczNbvK5l=oG4=T3VXfLuk?-EAhVcH>GkFom|E|{-VX_t@*oY9(BCg-KNo=V>KpC z_GoT2+zOm3K+O~lpAfHZ&I|L=kQvL8rL>CcUQ{qohO5z$l4-$PEtg(`_>y4|HZi&3RB{x1a2v~?o`>`JhQO0IG#KqN-9?~ zpJ;sXwJfEjb16xBxwJU1xomkz`^`&)t5yF78B&p=+||Lg{*iThf^$KWQ%%`>+B2J5 zp~oX&>A!xf)G2GbS>@TCY#X=hnGG5)>T2KJ@(6fJZ1|xWr?c^R@6w{4JVKgQX#_$N z!Nnb5sp2^4q8tT99&(~(I?)*46DbLsNCisV?*X+NwxL8XBVQis25?iwDaGenTt#44 zaZ0o1tFjb6@+eqJHSJt)E%#~P}ZH`?88=B8>G;A&J*HMG=ftjyy&@Y!}+ z_^b`}C{srQ_wx&9o$m<>)}d-YfyPNl50N^l8}wZjswC}-SDq#f@=k^~|3=aNQtCLo zb{rR?#yRJ03LI!5Yci(ERoLBF*KJ!^F>CvcqfJT5+wOPnW<=3^&n}a~ynoh&Y8=wu z{P|fHcju+Q#z!S;X1^AsekLS#LKU4|`7KCoH!v+sMeyXn(u3mVZ>wcQ^~4Mc!^&;J zDuUJDYc(E4mBNqzYd@ZT0}s_Sy3zBBnlS-DwD2@C zsr{7cSb0URy}3@y30ei>zlhPDbukwbr`1`YMVn?o(r{Q;6lZ%tU6bnp)Xxc1GxaH& z>#o!6rh!qN)~5!VucnuNyrM@5b>sY#r#r9cy`}KEU>_QOAD8Iqz@z3R52|}}sfX0h z7x$yMd)d+tX*oJ(BPlxZ`Qs^Ng&9OuzVclq>OJBRX9engeVs8(yZgMn5;e-F1*-L7 z{%((btmqrM!oNt-W-!Rb72iCpqPy;H90?>(SeGl%3}fjQyWcL3Y-NHIQ^IIs^LLCbr`$;hgKg_#*?9o%~Pu@4-u`OaqR(Xb)M^9 zfJBSgd8{b+ms%pwH;311wjXkXc~?vy%E>^06TcHc%@`{7jSk6%?%ki zWf6yrPs7=`hl-W{lM_d68L04^guPj#M$!FKi-RSbW zw%_FyK=wYO9jI?_sJzkDV`&4D)VRW5mHpsFvc&H-vwvmH-<>+UuwbO~~^Cu>V zui!!FQUiY1AAvd*6A6l=SZAaxYPS)D7XP`Mjz;+=pNF4NJXWgHId~}XI$ z$_PH`=X?oIekRV4o~Wc8hxd!(bm)f9#JuZ197ys=K$;4^YcpWB;+pd5Jr59^pBXpQ zrLe-+jIXDA4Gn)=Lp4Hdm@$G)Hu>&o^Vf>*CT*lG0{5^<4r>@`T8dwD*c+4AqDvWN za~|MiD!V^Ct@3f#`KE^0L@Fa7?xtIZ)f|7!tTxT@qh{4E$Q+G$%@ytWGD(Df3W#wN z#RJFAX8pe*E_m8|gqlU4j!+Yw8@o(!;C}>~#D;hTn%_&6WvSGBH#5WDToA3rjb@zp z)M@YhwhJ>{t2lW(&;7~}a&jSDyfZVDPS74W%gSdTI_u{VOIC7)V6(O)3*bbHae%TE zJ;=HknDvSRbW$(g`()Ik0`I1WYk9-z!Cc2DCmOH}?XqsU+*xtg@mp`G)$9?JlAV{K zRN1)oH65CYoqsAwuMie<>?rJY(RbH_LfZF~DLxr4N37&cKsuO#sH1 z;CR9)xCbIkC1;TvnzgD@@R!uX^yyD<(wVdyE29sYHeO1aM355_ocG;B7{AIH)7FMd zCUGwBtVtBAQJ5B!cbx6~b&n}GnFRS9&`c1g{3*&9t(H6Qq0j_mtj|sXC+?4#W%J4i z&11;`Of+_Uu^Ja{lkdRGE5-bSOpLE(j!(nOe!o-Ejnz1oa+$Lb??>n;H^7H zK}W#L-=i<@bQY@??v+^eE}ag)L|&r(ms1mcwm!SnGShg({vXlhc3nZP0@42)#Ux-a zy^-R%`R6dyE_(ds#?6t`2sVZ5Zt9#x$k{KBVx+Xr&Q}6tBiRB#s&j06>B58Wl)UT| zQxqRxg={eCT%D#yrKjjY$M5{`Q6onXo;=~x3B|_&TI8fu9tgC2rU16RCQMx3&V-ye z!ADUf;G=4(mI_*n-&{_03Eq6?uRq7fN9ms^X{m)vR^D>L62hv5FTxgb2DBxkm()mTr zTea3jigY%y!k;ATwWMG5nWCdi?&S^(!lhrCj#5+jEj2KeLqNwt4(BsOYTncuGKjt4 zC_TvYGXVVoMaQ8J5E?sVh$7=SlXJcN;(V4&$lTrdO+-jL(|(J#eDWeLaxydM=n+w`!2z!z zx8E8l$Hvj6Dn%MCCrK%NSZx!EDmOW`7hUz*<1Li~2)ebD%OdmW)On>Jw*I90idvccJ_B2+M05mWbh zLf~~y37l%a{={=>Xji8#Zc60bPf+gV{0&QdwbzTLq#|@ou~V@K7npKYmq1znL4N))T%jr=_jcR)gT@4X|*ON86b`d9$KKe=Tz%smLku1FR0F}ku1+FqYPQs>6T$DX;6cp>U7wlRQ3($o{d@xBnVN%X z;g#5I8$YDxoaJ`SNxZBzJIj^Q9Lw9TZU*ac3w@yrc_0&c=a?;SV-U>+C~n65!OSe) z?z>zl3@OG3GV`mS;;|T|P>K&^s@C*kchY<}-37#ykaL#7%xo}6#}P3b#r^=M$l^Uq zYc}45OHBYbK*+z}x$oE0@p561{)p?LOgv=5ySNmF|>o!0lZ~l9Jt1jeesB+2G}mbLRj5lRYevGqSQg2q{moC@-@{ zw$Tw1=%O)lviq5fSx89P*A;iXD)f98L-@@7#(!QV zJ6oHe=hPXy%eK}7=#hmf1BfC?(?W(e(ot6L*5C)rF`UHy3e|om zEomP;!?JPx?1Js}$-|wkf-EW8T={t%I@^8qF{bM9tHJYR$vFe=jPhGD-y*<*>O{zN z>o*y7M4da$Ln;WXNwUo`#8nNOwc_HI8h)#98Uxv+?x?_)8-r{MmRNP?{?VotqEKWW z<@fh45S^1qtxMO6y6D9;);cR1uXXFKTVHrr0w@DoVw*vz^u0cYxwS;OO*vm_&_Pk44T+f?y@uQ9!`<9nJFecYL zuMiulG2{E}OZ?xJUJ$oUy#j&HItF|PAGwkD^E!xqp6@@(|v=^~*k-Cx*N0DKnuRw!;a8*McqyT_xjy&6?%E5jve2MHxP7W z^m)3vnl_;CId$O@_S%>`b(auK9x@Xc0j)EXTV_>qFZ8ge7aZlBWq(Fvs7HBs-(b%Q1D|8V|Z4X zpXY<6k_>5y!RmVaP7D@ZYI~&3>3)T_yVE~H_rCu5sX+7V2Ja4SLS-<(Z;ho`!WP0Q z|9~0I7F`e)aHp?u6o32Ty8(<@I)3TgR@LK|xHTVXFrW1{Z7@#`lXO7fACpa%m9OS4 zS+_>Y3XdQxd$9RzHHs31>CthtI=~$CPUfmn@|T`CO8jmY*KgW}t{he};(Q-2Na_B7OHby#R({V?n-VEHg>yBM z>AahZhtqB@9$A?zHnx{*lGd0$bLIc-o5GyAUAgPfU6}^%LXX^TJ*?~!7!k7SmAjjf zzgJ16hF!j5WEHbJFTJyzSM_3L{Ner<#NkVcl%*`IloKJ^56|{z5rfy8o%YXgv$b?r zrwI8+rwIh$FQEI<>aDrvO4{lxc?d|hRq1b=Zg9BHw>vNa?#`?z9oC;luutQ}Za1N2 zaa0`%F*jDKZdTSRMLc0;?O7G2<19_LF{~_pBN68gPjPmY9r9Q^);(xEecZHpO1P3U zuP_((4m}T^S(9$RR_q+3EGG$NX&4-!?@u3^pfEiRD*LA{N!#xVWrB}Qqt4j!=dE9b#~|167# zCYF3Y&yx8+eEAx0>E8$L$+AOM)y0dYcjw!%w8l?a?rjPuf>z4xA_I!@&$Et1oT@LraI3 zqcIRoVOOJ?-oQJ}8I_?D&FlCeNLm#pu#plbk^xPB?#}^9%NzSDmewKOU=acmoDo%*Yc{iGG zNKL5c*_yDIorSJDnn5T*YdqV8;dW9lDJD{7axN-*Kw8-D)=jWH>?9M4ALeXTL6sJB zAl!Z%>0vXr9qCP5rP})pKil5)h}0%C>s6}xdU6BNq{u2TEWVzj8oC&JcJ5w$T@-o3 zlzg78Df@F|MA%lT0-C2c`c?iS?8fZ`j;FKuG5+XUhEa5lb_=w$W|YAYIQtof_MA_n zG3X>!-T|zMa*8sn`RZp{wC*7baKtTryc3Va?XXwvhDDm3w?xvNxsRb(x_KA7fQ2WU z-(um(_vywmx@`wVkF?!JEqi_jEG^}zN1|vglO51ln7YlF@zU)2EsxH}(YG2j9?H9Z z8(+j9Ji65&j!T0h(6S5>^Vxldt7kR8W(gf%eR;f*s)srtZiDll!WFk7Du!a{@I()o z2ztQdV(57)IB>M+a`IFXC@oyUeL0-mdqV|pIMMck|#1*s}>er`@{#lE?`8i*;wi*U07`fTGhk^ndQ z9JEPPh9_72Gc}^p!_@3GLTH1ur`YsZdHMUxdk@!J-g>@KQCb!q`*6;RZlRM#X$4%T zmXw}BY(&i(j(#!StM62AKHq1{!$r1HerDgweOh@`y0cq0B+f$3YNB!ga=snGvl+e! zL4}yLR#Zwe8ON>Torb>#K=+%+XjWXeHJaWP5;1E@__;p(^AiXB*a-|=@Hm)kA3LlMEy}C)`8;Z@6XKSd>WCGxcEtDRaBv8k6NL* zT^_{vc&5&mR`D}i4|g&>kAa`4B=(GJIi1fdJ?_5~dS-4WsC%e8t&_ayBi**)d8}kj z%W0A5F54%lCr^_%Q#~+Y>7Pl}wui)O4ovIm#x^9>c$B-2MNeN`w!?W1To6?YojO)* ztz&Nrg%)T}oNwNRESv@1Yt5#IxxP9sbY^_FVYj3f=T8&%_;^Qji72tz(0FN`>snHG z-(7!1#AB7^qHLxQOfswz6xz=BeBZYC5Sd*h&i+viiyWI|CW@oCb=sym6b^+Ce-D4P>e)R)6f#a#l8 zg14!B87wJ6i!97nQ97Qi@X)czV{}N86e6Zmdypcc+Q`)Pq?obX)MJ z$y_O2B7^wnW?Kq{27dp4^ztO${z)|PeQ0~Ul3iMdyq02H#GS6GC#pLxl%)Pn6?G1z zaU_8<>J6Ew5(n$F#txC?RLkGNBcxJxJqQ-Pwci}pt>CDw$js84yjy~QHyFB($E z&1I&ZQLUB(;%$jUpXqgI8JH-uQn0u0M6CAtQ}+VSYS#6SJ<}Q^)Zq6ZZl}}4t=tqP z>Vv+~F%88u@RayFbTJKGaVP6c?tbj)cyxA-SG;@9vZ}sarTMl@+xPpF|Dy94ql<^5 zlu8E$9X?H{%e?(@St0L2$?qhmU(d4KG?gT$&{=_N7~Zy7p&&h?3tRi-?4INy3Q9O`#0ZQTcYh-TZd?=v0y1;*S#$)?o zxb33Qai3KP`ZPb=Rj6BWU}CHagdV-d0R2t zHr(r-BoukC%{PWe?wS=X(KoBCZ8x2-QWZL3&M0rgF(K;Fpc-|!kdi0$S;Yl~YfGSD zq`K9S{GQd=@61KFYQGUmGQ#v)sBYyadf6&_s$4yUzJqEKYVDC7rn5oJEjUPV;##<1 z{{CKWP2tKD;PA;#u;waMmTBk`QFrLYk2{LNb!w|BKziRQ=+xG7w9xt&RrX%R6pdFl z5#NKEBII!=`Dt4ZxZ`?)#qZGn{N^^=QMMuj&1+7A#kF?gZ#qC)^03YB?0(!078ieU zE;K&>tJ+i!MN59Vh9?QZg~qjLy>mAhwXzt+zm4*_2>rbw9c&@;O^FJ1dbPRB)gn5l zSB0U#wY1?c3S8}lM+(D&D{Pvs8h_JCv+H})y5Fuu6q_Fh0WQ~;VAM$dmvu4de0mNn z%kaO#MTE~M3l=0#07?H5CFEsiE`|tKZI!pDyl=KW%cJ<(CNf-;E(t=K()$g{=4mJ0 zP4g^S^nRM`vuy1l()OZNtyCzCo^2K$Jl&)}M3ZS9F8$DL3#)sU3W?K|9nNi{O}&z3 zt0KF9l>Yl?0&aH$8t7dOR?mNfn?dQD{uA1u(cY;?P&4X+?%?6L3ut{|yWa3L2C?kJ z&EhYpB865(08&?WZ95&idQLj3oI*@w|oAmlwk{ zrw`AnG^YnD(6*Ba*_)p(ck=O@37We~CY(U_vox!#v3L_&*V0x=gV?ogagsiA7yyYT z-~Ue4i%9(<9(W+v$4ipui&b%Yb00wI?XE$-Bb?r@WE#)<_&-Fg7sBe|FY0UE3jFzc z7_Tb##J?4^n3x+xTmQ8UysmM~cVTrkD+N}pzM^8V+<^MH(BVxcOPbX+a4Qel%+-gJ zVD(EF|0B9gjx5P>AbKw;Qi3!R+{G9hIp#3>UmE@#QEhFVMf?CstPZC`0ji6vm8#i! zbBzP);u%~5sPB&fAH({;mtK;+7GVI?HHoXjfOU;Cz5?pvD3*ettX}5=>zY&~A5hl= z3yZD+tiMuqQ0$ny>^XW@N!))+0aO?0`o{OFTT=ki7u*ol*RN}j>^?uP3cP^y90s!> z;hFVSxC+vTTTX@uch0AKs0?>Dh@Ry>Fcw6=aQsxg#`Kq4^PrRribq9rjp*u$DBWA||U0)auo*(F`bv==%a}Wo&b|ZEGdP@5{_c;VXfBd*=on6CQ7UJ(7| zPV60eW2H29=`PFDUxny01sld8n`c$Hz;q2QVgyYWJHC=;L)uZg(-XN;2Ba%=lmd{R zz}zYhb8ze0crz)~Ijw3$pI<2!ruXYhZ+8GO9z;*`JR2^SsT-V%WrHB&7ep6htGZob zdEuGJy?n7f;JUbJMHgfj9pIy2{rx&3>hBb^!J79vwpM+B_;lTDXYfVkw?JJlAxS}F zI|lG{J)P&lAG?uaR=oD1m8W|Urk)99{rIwXMe8(@>mENI$)i(2z`00a z9SWd(s7RW_;6|p4q@P)Sf#{<2d^|wMsbeqFyHzqDOJCRroHJl0^rB^@dfkJusna_Q zB^P^Kr0q+>UDhN#hQ#eAst&uASKwUE;Rk3g@5dZ!2pFjWq=|3(1Q>`^U0Nzg`X3l9@ z`oBN=lz&Ag8nvaRSZf-0B?Q7|mZmrmMXXX#d>TwUg@phMPib4qQfjq5)?CzGMS`YFh1N}(Hv?Caujy6_=vgyZA7P`vQ~Y32d)isJ;4a-dsL z_>uqU%VW8+lXV}$eD)(aVP2gOfpz+)LDCz~UeuQ_fi{3giQ~}gb{Y6|3Uqrl=T&9iaul}^4QKv z!thL~LpC&I(<`<=(zZiec)qEW270sO{?rLm(3*HAA7=tzUfGwmh76dPKhr(kd05Mo zR^_2lE;G@}P$Us1oAYUXmMvRNlF+xA1O4jm6-tI!4?08ABK~w&?pB%cdPp>OewHRk zjuTn32-M+FjglOIzp1xiboQ^x7{ zqRMl5av7t}$s{CWJqqE@DKwa6xqb>@CGZG7GFnnP{ZcqO=>$GnXI#GOvXici)CoM) zdQD$V7gB8Dri@hRIm*W0M6ooBQznPbe^+b z7X5%$=6cJLRUv)pYUYp3K5pN1_j@es!l$En4bn5Yj>lSB%X|`S%uB9%LBKd*E*)GP zAPHJaA!;b8Q+NOZSixR&uB4_nLDkA>looErW2mGA;)!7}HVwL3Z%}qwYXWL)Cl-pe zs+79^ln(8rNd^=SlXkE$-6+%LLP~F!ZlmQ57W#XwH6$%=5hGoBFYBfCxTUovfroJv z(Y`U^3hp)-BMDs4Xk$pKGFeNh`?zr7YxqaAG9_7 z0O|+?+xG+m237sCWs!q>h;gTPy3Z02PWE(QFpE^=3@~)o&{_mrk3^ncS&Ex;83@Ou z0wm0!iq3(9>RAO?IM^BB(%Mv&=2b5oytIgLaAtGZ`Yp3M&TmaQrMv%f>G9juq$%B0 zV8zUhFulUp%};?s>B^{+!)PWZf$ClBx12;_;evwZnprf(qQJtSFVR{u`Vxk7qK0G# z3v+#Jm(g(Il(FzOt%aKztZfHnYf3bMuu!F```+1t9arm6Sk4uC3(2P*Rc z07CIS>&>GEY9@k4ZXw{Q&@KXTuLB_ry!jhiYt$SHh+wAXI--j~bUXWRF!^B2FW_T! z7LGrHw28SGM}U9<>yQ>)*FM&y&}uO!94uoV{CJb1`>4zV`3qlWD%e4c{Vur%sGHWV zPTHkIAP$%lWZB>s&v7#R30mT#g1iRKCN-ZHWp|mc0>3nbkq8g()qfWr-nW#@1kGNA zeF77^cNsy4&=~!uweTe>eHSdKvq<9P7onfxRcF1ypd#>%ZelJh~%D zxZrP4HfWiM60|I}oj}2{Czs

      (E^lAV@HZ|sBr#7_V8@pGxJ>@0Qbhl)1k+g4V^it62gSs>}P>m=|KH3HLH zp68`i`mVZNmRJ^HqJuD(#xmcQt5w9Y(kLRt+61OCpw9X419qqL?Q*V3*xTiP_IDE| z9-|+-v`HL>v`?J%8jDyj80;qbVq@+x;&kAF2JUg~P-8tAa}tN>ip$kygk<@^cJ@%6 zl~3Jw%hM@qGsq=#^(H-}&@X1OXzNb9?J5U=&(N8-+=AB>GQ$xFV>W0Hz2M3gn-nzd zBW|Ge7?d(kls2cD<;yOuiPB)veZe3z`}@(=8pSsLMH_-Gqkk%9FBI@ILXVo7nu6qV zG=UCq9bH}HzC<|VR%$Mw@}8R;IIj|?!{h4<3Ly0YeG$qDhyvk@?MAYcLDSy?3wJiW z3ZM@D!`jToFrI+Awc5r5Dlq%MydWtfy3=7^6*)@-<-Cv(k$OO*0(u3?B2nRzDEOgv zivWQp>@NCyinOzO+1bob3Gqch66YWJr@t zfJ-xC$Yh>#ORyJMspklK%rn;C*MX(417IH?4_~oWWnUiyaaPvXoa`!iscz}T5fcWA zC3Oz3#1^%2n1v&f!?rLD%VpE~6k)M2NB$Z2@27hNA}T6^a}@`~hUiYdYc09&@_&8* zYK#q^2(n#KF%hVTaxPPxRp9kC9tC~@&L{`3upeVH_zq|D>fd>>{EY>0YAO&y79oS( zSmm@CtH5JQ&)znrne^DI=LRMj8E4ZNl$#(*)Rf5Rx_{fgL#Ot^w-r7n+jvCt9~k)a zCnjh1LyH#fLZbM8Tokg~^Oamx<*B`0pyAc>5^j=0H0)|*{~IIWu=j5DorUpyTR6b$1u%%h%J!1S)ImkZ8QjP)r})@y!V zIYQV81T#Yy-pzC449AGPvkt*s=6;grizLBREzvR%3SUk~1R3N+eB9PcPo>wd2K% zmCm&xd8`$P+ibOk9m9}!4=uE*o+(H=IYjYQaO%f}T(4HR6jA&9@yQ?)6Ldqo}Ly*UY3GCZw!j+ zlqoe^DY=cLGPd4EQArOXf~F*CF`)X%;zWG>Sh(SASVJkq&_qI^u~tPy`V7$6zo1F) zLV~{dDJFtVm|wVCdRHoogxM0IIHy*k!YO>|K(we9qOU3U9Ov3PNV{?6Q7pB7RQs*| zuj{evk={$e)HI>>6cE%?SPZ9Aj4I@^1^+vE_Z?+qWm|04{H=#g4c~k|0c{)DQjz6f z0`mTDUjXlHRPO|^t1gjC^M|JCcLugsfVCQDZhd{-Vlp+4f)WTNuC7)P@9=r&_s04j zd;$!R#_gf5K&=$u13#YytmH2jYaB$o z}Lb;h7u4EU|~T`1~N^Kc7O&+AK(;^YXlT=R@~6SD!sP) z_I4f0|4#GdiIZkC@04Ha=$iAaGdGr~QsfaCmDqL|8m8rmC&mFRLX3=@#iaq_+x z^+GcmwIaF#tOHO=$q0uJ0W)2F;0m1Pz%PSFfD3n6zyXd4q!qe87&yRC77)V34MPMI z`VC-6;sRT&Fy>wGfpCJ(|7rzM0J&3~Q)wL7`bprrxVjSPgK^gT?G*wy`RV5;Qy3L} zb?|Kc<~N?QvG0c5QI1@Z3No&Y)4IuVLKT(ykx^r#qptk=`||+6ZP@CNXO{=WT5WZC z;UZcWmX=yA6wB|6w`_a``VF%(-GClS%Nde60l-EJNV$t1mVo3ABz9qh0j*p(v;G0L zz;6J)4LEbv`W?WAPcX|(L>rJ+$q8cHTrYKq2`-vDItUTJHvzuk++2|YeJb_(&u3pB z?z0nv9?ir%nj9OW?Y;kgD!_-iJHp!qN<~0&ag9LkHX#19iw3{tdLJZzdXSD39e$Wi z9uaSNo{8_DhmVf~Hu&?|UTDC!fH8+c%-?9c!QCAKu<2%IW?+N>2La4b`wIY%;JMoi z9>*z-I0;Q|4b&@^R#swt|7mAu0fElM@%65zNkNXq#X;3C<<7UQ)@qKNU$*#jRIk?( zd|)n`hz~fkB+(HLk(k{--rAnfpI})+M*{so4F|h#sApFI>9H?9OQG5&O;GCyELYH@ zU?W3e#`nPokn$Y?Ib0IA)^E=WP-_4gAD8Cg@o^w;*J@u%34zGa1sp1J4qDLYNg6H{ z(Bm6e%q?fkEXqm{^owci4XpZLF($wW)S^rHMOm1>!Fk(zlfNf1&aM690<71ROK)k1 zBJd0(aykxzyix4CC(An( zyh!`V7NT!?W&K@#Ge?Sc{BC&g=u&@<2{etbSXHX-%It&@lyT&!&83Ga9Uy5C>ey~l z`(FFr=zN0NLJ&UxeRvrJUTyx36SSA+P)rWMf_Q3-iIPsglEq8TcL7B=Dlscj?qWR9 zR=9Nd^hXes8p_RTA-Bok;hstp(o;rS!XH3vIl2^MCQ>;@K*H0=x#PuPZbM(tE&Rma z$)jLKIozDR78N6}m_}n@PiRo`6-#Z+WD9)CM|Y;qv4djslqa&`G=(4?&)>m7VMfy- zqhKscy)95uhn1XHigpqCgDo6pUo4x>U20*T)O_Q+dJ9K}Dn`ti7hgvI4;GZ7j=pdT zvDN3XOV`(ghloungB$7`#hj~Sp5%v=Nc$~*@OKC{WIaAE9;%R<8qzNj$7)*6x;Kdc z{5fdJZgVd%VHtC!fADHFq>2xggZ8VNX`FR=(?W?3Xb23FJgU64$R2Ae12A(j zBGQ5I3`Pd(6`T$@XX&|g0&nL!92{6Xw&O#j-zCBhdmtLlA|LICo176}7ecbPz1Cg*>LwNu zmSgmjdu+o*63kND)eCM?($QthMx85d0tud+r^A0S-!UVYj^l34z(*7>Huo`cQBTLOeqORcW0^(&wMFrEyi6ANx zk{?1PwB_5joqa`VWvhm2M*QJZy|tX_Lh54Upnwar9p(EM z!gH$BqOmWHa-+(JIzz+g9v%?^`b=~5TU*;|a0DSFBOM)xwjKu`@rY!floob3?Tw zBQKmmR@sd3=Q0CZZER1rCf_;6LHX`x-|>-1`RGmh@pj6I!)PgGHSm8P*v9+G1@gDv z0denE&0(3ua?^!%roWpjQ@6lk(po4ixr`p#biLB!I9SO*LfB#4b6Rud&gWSxJsSvL zE=>Ou+B|A%=wme|qpi)G5sMhZT3Q+kth)v+ci0*dVhypzRC(~aWZFp$K}wY%B+WFPljn_M4u*hdUzFJO~G zS{{YK2u5fX`uL%oM}N2hCzEWW5JHM2TiwNJH^ZK4;*kh2p)T?HA&VvF8h~|D!cUeii~AFE zO)oo{RzQWuC-qJJ1QzF6-2BiV_nun@Im={eZq0bCfF*(*7N>91u4Si2f9c{H#qZTy zNFI**P_CM<@h@4!_n$IgzH9}MWN!g(I*dEq#Wo_=*PdMtPyjeYDr?wb=z%S4E)qZX z8~N3v0Xd@FLbm)A;%5}D((Z_pgYtB8gjw$u%&78r;YOO;puh{IwSJpn_I2>K#1Vjn&_bj}gx=kRcGQDGxz z%rCCOqC)DXkFKun?uVNLsnl`pA&U+IgRDJ|y?$r|+>2UZp4r|uAaaO0a=JP_1(Kf3 zM~}-J$opL2KUCEx4>w_)K8|YiT0WM0CAI8grO*HT$yA^byfiI4_PkuM{QMApUBV$e zatxwjkv^U;#~wcaR~?01rj)1#g~TLgU0#kV*bjLPQ)d!*2uokMYz;3@3TIshuI|Ii zjpi@zSpXB38VHMZ(IlT$ShVZU_B1RH6M3_~-PHAJXi;ow;X2arx!xiB`5Z?7?05O; z^uh5T`RY9FaKKG{LBn_2hdy)JhkOXEy#Oj@G2jp(zz;($&h_=y1*`zNR;0i@y|Nhu z`T!am3_D!A3TbDzn=wxHu|I5uqk+zHiVt!;T60r!4yz{>|%$a z|64&q)xoR#?E&i4rtDkO7$STL?PP>qA7{`!c#eJcGz-1msT}43Kg0X>cG!vmsc7j* zg!4e6sC{2(`R{mdKCxACdDc2QHVnPyF!OP(Yj152vO5=77Ur|bS1f$IaANDwFPyC( z|3+7sjJabmChEB|*?O?SdG{BAx<95mZ6a>As6pL{#^Z@`#I&SoO&uA?zI?1Kk2KxQ z`Lv3+TU>oO<3Ro;9+9(8Mec<(+tAQY7-iGClZtUn<@qDJGst5qo}b!AfhnGXBr`KJr1vKtT@>RjHNeF!$3J@b`E&fr`H1_gEXq80Wd7o3NIy=&mQCcm&~rDyc= zd@=>34VU};U76s^($yXJn^uv^g;qbt;M%QsJ>-bcnl5mOh_G={a5391q7(k!9}39j zoM;&wDM_t87ddd+=i{GKHV_MzNUQ5Jsb^O1{_&Yjbz1$qDZKi7zMMJf5Sq;v9DtGB zFdiKBF{M!9l&hfu_zQB;YWkCeVhu59u^e&=JSpl?t@$xQ;|lprY1P zAvlVW_38$zTtkU7=$ax(KUAde39(d$81MBi}J8|?OlBY$~(1#}3 zPg$cM3MU%BUUkmL2zwTLde+1k6qJxQtv1O+Z9&14ST_``Fl^p%uJP2{haR}=>%H|d zN{T9690|>q5GvNhnZOqoMhWo`iOO#v@Hs1oi8XQ^EL{Fj&pN}d1Vsvg)4ehjAr99o z2y7FRpX2;3WCwxY(3s?JW?vwp<{H$4;3N`tuq+z zqAN)SDTKxd@o!#vp5qYQqKL0=8ngJpmqw0rk&uFngdJOD1`rX%}^nFBVz zF#=wq>&By%`w7&)y;B6{!)*~oDL6Y%Vi1m+pUnTBOmEt92gRGfk(*!Q2d6%{?8mLH zH!>bdIDO3`VPip!xoAMiy+{Z3i{(21w32ZAzI$KB5%TkAwX4BV#lU1>U5E8XJtI1_ z-o;Ljuanb!(H;IF5Y6@98?*sa$=TT%c&cl2%vX=SOL!HSK2qGIw{xTq>c|4^NT06H zP6x4!6GO;|U~Gr)b+=kjmWUS5Ipmk;qX>C`+b&Q+r>Uw6xw1%@i1N87JyT`pBgrAr zFfb-LK22QRQhs+b1KjLE)B*Ff7*wU?UCCwhj|FqIwIY9AjGZU4K3jEkRbOvLauT5e zfTveijKQA@L~eMqFW~_z{DOv6`?_6e<0)bmI6FHV8w_?F`}Xz*-2Rnjbnc>w1)A-5 z6rkC)PbYm(ITz}OcA2oG-)R)l5vVwy!(c1>lrgV9-&PcHSq%D{T-up(c|C3qfm~L= zgP5F>;s%uK{Xv%58PmN@;jnCT)B>!rBGRSYm~zU02%{5E$!^j zH2UAq0888J?=Dz9*9!LUk(5}k(S3|Pr>3#+>BnnDo>H3W>T!XP<4PtbQ*TljE-niS zUA@nsM6+>5kLd_O@62Fg9d=#~dj8v|rWksv%>mswR;@Wr=MXPSLyP3h3C1NYUGP4u zIiyIke3jXe$!h)P(2+FAHO`_5H>QLU&AGD^`RSe2rlm0%I{f{j%GQ|MykR)6LLkEU zTQm{Lca!#k)d=U)ni4p7hJL7m>r*|mYxv0zq+Z~WZa}%9yt~b zJjYS;H79D;Xa@O#$Tm7gy5f*^8-tDUfBiPDk`qw8lqJN`FBcOSul-k2DPg`k5?(*! zW$9{QLBGF&v#|AN`d!jPIRK4i=CvYK@<=FMz1WsouwS})*FX%gIO%G97YZr;o zXN47V>_9#LauUYkNt}BoXgn@2*VVHR&tm4A-HZiKLPer+Nf%YjB%0hc_Cz3>IWnN{ zbId&q<@tu7mSS-eRe>f@W-&6zv(HAVE^cP0`sGa#RZ!|@!*aX~r?s#YYD4iC;%B0- zlT^^jyp1nJCFXXnl6`K+R1bM0L6;*5^1gbW{{;8|X=Ib!V3 zy<*i)^`92ZlqU$PKIg3(1*5=+#|r(8NR4A7#&Mh;CY{EGa#Be*igsK{7dym~BT)Vo z(ki+tviQpMOtG=>ixduT_c$ALYVj=BE&~*QOLKBEBdUU=2_)q2y}DZWr4=5$Fop66 z1)$vx32D|WE>s=p;xegA)k#*&5h5la$S=d31A?51cm39Z7W6^_El3;yEmk$32|VxX z>jRdh*mq@RWxyJr9}K+d=Ejk0+lmt?jFeSXMSVE9X$=Pi!BGGiAX@%HyTGZg2&8i+ zD^X-l`6};uIVQSxmXQZ1Vno0T;W3`>K2UzH0x7jL-xaphE_X zvB`UzdwOz;HHLu5=HikP^^q@-$BNBKM=rlm06>)LQl=~ z1_lOx=!5)-l?ujhWQH^l{2-4`N}N(({}+ejNY(DF>}4)IB(R zbx`OR@A5^a)$fYni;|QW%I_h-U-)GvN0<l*`TI^wQ70_|njjTDZ! z_2YgrXR!!if&n>ECMimx^p}gvXo!Qdy1Kf7K{X5n6ciWiPi_Ff1mwrF=3c19L0#+r zoUlML24|b*z)+EFN@02;G$IZWaPx1{0Eotv6dL(3`_BoVreVondVAWK*b8b&{+PAK zwvisFF}DYA|{T#otwH$*w6tBC6>sWl0ctVF)%>bhZuz zwRMPOK7O`vdvRFFMy9p;y)pl;y4);0NxVi5^jE01^y$f>Q;x1S|4Ynr?!NPj0{-94 z02qS7ORhjr3!Zqv0H6*I00qG~rHW^fSFr-B@->3n%=Z1*7-C4lB)rnmaMupK?X+e= zP`*>%A~xw;1yF+v0C~9lc?FDfH&?YP+S=9=JHU`?V30jEU=tM;^DUG`J0UlOdCLJ?F=T*NnK4JubwXXh|wfpf5-+{WwMz{<|Fc&rb>if0x-qei(yYRIA%%?&!5trOUY!C3Zrw|3eS!cB56Iz7 zF;{>706@+RjX5_@ghoT!(P9uR z5J4A!KhTpFcrZ}@RN5+z<^v+RTtQpy!Rm;=THRU`N>D?W+s@wpi zWHR`Ta8YU=W7CdaPHD&W`b?lLz7`d#$CgSS8-dpr*N?~*T-L(cfm{>q0Ad!$C4ysp zZTYy`uG|e{v3I-p&Xv(fDSF-!+*Hp9f_fSn4Ye5&Y>SAs7-s|AG!h1UfGLFRnzyiw zw*W-f%h-&#D&xrP7gf8J4AalI)WE3$v$*@mW|3phwx0x#_k10S+3$RV8SH?v9c&Wr zv_T(iy;;e`V)NTxzFk7^ewPxH zGTA#wj>2*1u*AYSm2-dIppbw4qa9ZZ&{mqVK}N19y>0F7MkWprY^JJa>?NIsUZ{%H zdz&<+31rUUe4I`FTrF#f^x)I+Um`#iw!E_b?A{a`2a1`{yff(^@L|__a86n&(F(Iu z?t(`e>=t#G2`CJCbXbLarTxZbFue*!6eFbk`bUo8uRBMmzeLB!v?z|4r5O<5rURsr zEi553V~8^nIoL9A1Z_xnb0*&9R4nUmi;omk?q2z(TLq3BxN{x!LnrYvk60a&@s`z! zAqx~bA1p?;LMO;6@4jQNJUJAkQoC)8a_yz#Fn}mqOADmAQ%43EHmF$I8iLz<<%5O; z?!okWX{D>o#QkH{Q^lm)m_0d-HR0QIZKSpVAnGiv1Ibv#N*>I{d zv$U!}U*O#FcT8oZlk{}|H-Eu_0k?QZg zKFKyrYA~R5w)o^2+EVacPGcGKug%VQ4bh1F{Euv@-zm#LaJ5({kUn^L7$pwKpn$%c zUVFf+Fn+`W+(7{{grKXSbZxjtOY>_X|GDr568sGdStFW$&pM1l@Kq+YRH%K}S1Y2- zwJqQ@BNg`PR6tz@0=qbX=5Bz@GBY>t+SPNPi>4O$f9&`~*H|<*h_(2_=@&(9~;o)Im zTWi1Fi632BW69t__cu#srOMvUj%?4!H3epPmEm4xUJ95}P~)=|AT!rcjHp=S6q*nz z(FK7H44_qkylK3l@=y8!P?ojP(vv|t3C+8rhI@#0NI(*)BE1cTfSQkEiY}Q4CrP=7 z+I!sRPzZn4E;UB$9s`2=TUX(P?x_}E8xl8KcJLjV~<-tnJv`*_!?5aKW>-jZIPh002<{IQA8;h|Wrm}w(G5SrI_{!UhAu{2Grbe&*ny%2%HqiHJ z<%)^$o8(i_vcp`3`*Lzi_tWkulS)9xk!a?Jh3rOLfWAu_9^O=!>%~+3ZLh7nyT@42 zwn1dW&y`n%6urEZObQd*hq&^Mp`kgTo2)#^Z6@p7G*~ly-B*J#=DjPU>L!9qb0xX8 zVr9Riw6vqD3U~U?nd>s+Up;*+YrAf@OV6hghL`bi7lm5LT|r~L2wzmg^Hnua)yOye zHTq@G@00p2#-laWKj}lfX}#h<1&|R>dejo(l+PPzKQ|_m>aI8H$v8C@=O|hytAt>_ z?UOyRnf`c}m1Sn1NtI(%Y_Q;($EP)Z^tu%D9<(=PYERFINRkaj{qSy`5QYZ2Rt>Sd z4-(ORYV%b?QNItURz$F%c0pSyvJ-(47c zo@uWv4%O&mkTV9-45nbi+SNmdHNx$^y`|L2!aM4~(TS^tf|FHe3;Dw0e6#Hm^QIO* zsTK|{KkvihDIFPB@Y0*cF9=id0oUC86hNiRREL5|);e~&ZqHt_5kUFy5ict?-qZ6q z{YBPJM?m}{;w}~FKo?9^b-xf^=%C)Xk0CsK`Pk!@oDKU{$0oBA&$|B{vA$FKZhwh* za-hXtFkBRszMQsDV0jnLLvQ%~D5t+h&o>1V&dN8%lnp7i5st~T?i(Z{)1RMLF9?LT zO}^nXXuFoLRVU|=QjN9-ZfTwhtZrBvXm+k7Vw|r`F%KM^NVxOmBLVVH6f#uWN|NJK zW8l0ineI0kirr*`wsCobv~-dl_~7=5u^>Mze1k7wq-kWGB1l+~(A8FM8a0cU+3kpZ zM57Mu?1@1F@}VM1g4E0>C$_KaJ#95FtF+M!-9nhJU!vKn>mq*(nIciCERu_6XxJ9Y z#OVOY0DZh@xK&Z4}EuT5$ekdf+#jC4!JdSVf~A^`lWCa#P9E52j7;Xt=+dXy*pncT2%iMAH~5% zi9h89Jf9CJbwxm^vEqkK;!s;shp}>UF3!*I3%+c`j~zZ-ZU9_4_;16U(i*u1v-;=O z3B~3XB&6{9h;$gGwZh3!T~+FX?G}FTr)yxn2_^K8k29C#<@FU9l*it=!IO|-fDmAS zb%dUJg=c=Xx(9f@8Nlt)(ca8G*Wt=qXJI>qnryY;`Ul)iz9ZCPoX0~zJE5Mvt2{C} zF_qi6Y)W3w1_#Co`^e@9K^5^Z1?x6_T$aUd69_r8EID>LlEHyHM1U;xh7L%&_NYy* zq#YYQ*Mn->^ACFk{Oijoq{L5SdfW1!t5weZDZZXTB%n<4V3 zh_xbxWoEh3NMfj#_c8NfZ)t)fq6v7Fm^onsekd8~Iu+afJMU}9 zPVc`5P^Asc#<~zOUfO)4*MmIH5Q)FJy={l}$<&6Xy|?SrDjpP+e8AS7@YW3o%N{NH z_sLS>ZwgjD6U>fSi-#kKnIy+8bfpi%6`^)i-ZSmh)4wVO7t3983qO~&d37@zKzC19 zIad#~yzLb;jss;)bauw0WWQbdIQlo{`yIVw+-2l*ms`Jd^2Hc-loNzsrtoxOmisW= zu=wy>xDIMnCJdQS5^(UFa^e&avk^q4m6(c8y53rOC8Mz>vvFkE38Y02yGup74Bjf& ziTn*UHzl^Y?uVQv`*L@OJHHal;R%B`_gvBw@9zKkfZ7{sm)g#m+U~?R%8_rtA>7qi0k3j|8|qHAZpvn zlMUG$cb@j3y1&u1}c~NJp`r93*=_8g(DG(D^<{#7NlAyMj|x(yq1R@lkXl zhpKCvC z3m4}Wdei=8Rei%*nB`M?H+2d_BAj>j_+bcToplD3~nv(GMCW$*0;f= zz37@-n=%&*MaAeKNEgws6bWJo!^Y4bRDKS1>2_*j*VFBzl9kXZicH<_HdTR$ruId% z-=nBiF*qbG#!RQE)l%YCv{sPQUZLn8)buNiKuoY!s#cADgkHrD2)Os6{`9kR3g|1= zc7P<$=S>0-2=oSsL2`I!fn2nST7R(7UiQS}v|4y~h3E|aP|Dn)xLz$k=x?f#K_<{_ zWk*K22;{}3WKI!i`flaoWOb{VtbDLvp}p(00wMFD@<7km6RE$tCAgNl14nrsJaY--o2SxEz##XyLrpg>iu@UFZeLq zPpFF-3Owxm{&fsY0(~Bm9H`4nF~-Xl_cf8Feg!C|0sX#N!?(G)IRKM(R89q{$i;P+ z=`VOWvvNKj9-7(P*RbRZAqcUt#Ys~FEB;)~k|J?Mr`s#2P5E5b00e0@EmvhmM7$bK zB7A&&5|U#CyMpNC__4yC(M_tV>T^Kiy3sr-7ANfCf{8aI?LtQhdhuKy_F4`G#y&=- zB~IJN?Jc6U3lCEouEGUt5fW0;$33vm0&Ji(Xs0Kqq75Vl_yU2nlKN}ttTaOxNoOf? zbfq|!{C2|f{QszofW9yHtj9kZp>};e9_=xR9;PM)-yOF0s{r4n-F9ahgY>Kw#B~l} zEAWkLi}-J$0fBww)b{^(_%RR#1kmLG{-tGVe*jmm9w=N1J55e92%ZS1x7Q6P_oPV0d4Xer zwX~`XWFoM=p`_m+GacGN%5@|k@A(y*L|nPu`!@Qcpa0erPgB&As3Ku=OU(-YN)2kE z{*=}js&lkWKMiJYvLe}Gw<8>F6ZDUGXRaAxOrrl+UU0bvc-G9Xm6hP1l~ZY9DAbet zwk!`0cQ6n4U73*u{p43J#i7&mlp#+C(WMAYlo5Pq0w$x@(QON$=h&66-*k;2d^1!q z8D~3tb_0b1iOS0%_}$!U;FmNeJTOn?jvit|yG2}%t6RhQ77Y(SQTd(Cbs$_Ipqr)p zpnQt)oWK5@!WeU6c{0@Fr^rPx6H>HHP{GaeV&qp{Ky!g~4G4 znA-~9C{`A=l=u~NQ1n!)BrBo`iD2h9&1T11$$IGru5iTmwFCb|e|5yag5fe%-{uvS zIl@+oM*76vTfUX~(0~HkXffj$YYR7fQ%#LafqVeeu*;hH1%~?83#xO$7tV;7OyEx) zzCKcZ5l~a|{m5JC`H2q4Nx^^+3&YwnnX(ep5yISHjUJclm+AZAvb8H<^bMTiVsC3sU!+x-7YGQ z&juqpkc%XqaB_UXN#7ymW91`9G&$(mj1pqyc+#6Npj0`{1ztD%A!7*>%*fcjlGI_lg93fbE;RsyXK zO+dAsd(enCzfA8iTBufhZ5#SX;9~>*4v;`<(Wkop7v9rfi~2?yTLJ|&k>$F%H+Gi zCwZzs))i&|2md!Tj8AZ@hV1Hpb1-RY#YqARnU9P?j5-qDqE@r4w-m=4ijrGJdn%aI zZ?LWJn=Opuff5`Otn5#VMccj7k-%_S{F91Mq}_Ma%O|rMm-lyA4IT+x7q92HPsVUi zudx09*n7*MIHI;~5D4xT+@0XA!QI{69fG?CcbDL zsu1YeUftjA3?sM+@I+ui324k>)Mn~tv^1m*l=f>IpvA`KVraKZ-9t^p! zpp9zCInJQyTNyawegDRdl9e+;d3l0H&A)9jSS1c$u8O9>hx0xoflkzpffRny(?WCL zFh5k#KO&Q3`b{r=KF_8${G3=MSr%@@Nb}H7SR_bcHU)SMwNPpZ_pzqfKpA=pBa58q zJru}#+2!-z!6$I>o$mqkSpI5@)3p=HC|AP?j5poKblA;lxN2>p!IxIlh`NnX`ZZ) z+@cv==0%Lhk%jlhh15lStPmzpmh21P!O<^25+^~(*;kY-a6Co}iQr5ZKz>~pE97wI zDi&5QP7H+cTms~eXXuL!iWea5YAM3wrUA>AS4Ji`6B(% zW|T)Q#}SjyuOe%2S7ZwH+q6~e(Xy~JFwU&5?ol+hv^?M^s_U80$;koHwDZ<$w!ut# zEtMeC$aoPb8XhjT5V6{x$F#p*PYkB9UmAN05pIO z`e8@vKacAb;jwDD9gVkZJA*#d)Md{y&d$zqa)<#|vK>I`^)IuQS%mu&6D=*=Z=+uz zA}U|dXP^XFk%DBw4Pj`2)(YAJ1p;6?SvLpcLx3fuL12}HFK+_0UGJEgf6js$zy{uX zuFYvfPg65oFdVkFq=b@*Nl{!+%2O)#OFSb~CzZnZ*2NN7e#1bUiAXGjd;wCe-*C6hqiLZZfqx6xO zc>i;f@D*KTU}0(LnuHit8ZZz8K+e?n$;pkLgJt^Y=(>9gefbowv6SrOR`08U>l4fT zx6Dos&u|w6W{3zQS~AJj)A=BEXL8>4{!}-|wPh?4u410gag8%R7Yuq?nVH`%aEm#B z-B%lo+!0IfvznS(Xvg5r(R{_t&q?vG8DNSp}u7H?=OLzl_=v?8y_dY*Qb(J#JH7&S-lT9!7+qX9=faDqag>p;Y z-qRDb{_Q?sFwJcSw0E`l#v0+Q}1hEpDHCnb}tRTPr>sO(nyhA|MSZlUM`vj8> zA&uAo+3P~nTpQd1LM5q4p?Gm@;2)(h66Ab~2gvel+ShRzbqdKHZNKl1L_}KPxUW7o zS62&UGjNQ-e@Qc$z~``a-*b`4x`;L66z zik0#E_NuLpKBjcBwX;6F_2mP09L2s`fNrvjPreMpRXG`HXU^Vk(W+CME|$WTg~&+W z?1S#wYh33+tqBD}0oF&1_wo{hya5`%HRdri9@e`vSk8#o$u0EUo?=sbtq6QipX3&5 zx(;f$Ly_YvGx6~XlA66gB{c_vKfNIa-;x-2oc-Yh*J);|k;$%{+Ko?T=T428PuF zvomlxKo|keQSV6O?ecp1n>Vjgygn8%JZtYX?CtuJ0=0n?0m!-@g@~aeYj6kNeLIhF zhqJS)Dj_;9IX>^-Z-Av|#Y6|3)T+h&Q^#%?hj$gK;HTa&f&?C5KOM7Awz8PluEo#pA<$`xeq0kRqN3 zIM^eoAy|5ir23>G32n?K+a$g>D?Nky0eE2Tn<^Bl_5r&E32AA{S#k&j6@T8w5TFmm z2-!}H3Jvuq+8PtqVankCrtyhsEXTrhYi4r$x^{lq>sTya1v-(jho4YRgVjY`NA1UI zNj2tCFCT7b4}PPAxVVXf%TDhpH5Ho>NzPeDhD9o0K5~*f^+nO=V+$qnawM}{DRY#= zBGH)g_*9I^wpr<<*C?F~4Ya1};G`lF*^bqWw-!k6a6OTJ&X? z&%k3mDZ+U6(3mD7j!%_q#9*c-#)Xg4Nx-az1JWgSoR{wgZ4^F(wV@VM28LZ59|p|` za-4DRD>2Cja&)ISlpS(b4Hzo4x7E7)$<1{K70~Lr4}@x2mU(9Plhk=C$$p%>BtvZ? z$>HPKS3q0@&r6pnmQV^Yi8mURxw^H6Gs!XBi_0s_aVD~^ zqHjZ){55Cs(kQoOuD|Qf>F2*EXFc!Wrh~5K9Bc~T8;>GNs}@N6`3Rll7W;nHjO&&6 zx3a3L>TejI6@m9gcfX6hIK3bL+%b@$p`aWY2eHN`Brt>NC@-e<^z`)h);)$rYs$S9 ztS*WqCzV}GmG}eN97JMtbjVh5F@*&(Ae5J!;y^|QDdkE;jgxKAN`nP5B_&k$LJ@Tl z6WAshM)ut`@6n(_8w(2wGTyrO-#(F$ztK`@^_ij_6RIXBwZ^gCq@RQ@wrWlSHcoWI zMq#Upiw9<)0)W>LFybKp+>Q~u1^6YKn+dMo8)E3SXiTwz2oJyF z?)CmWzj{4@Ph+;$Y0;yZ)=~e5(A|dHw3iVNf6CF!kq9<*7~x=6zwIpwP0PgG)rf@Y z{nMc%>L7Q(Pd2GzTp#b~rN9Hqeh7G6Zj6@)nB#T`@$yD@D>$}11I(3H8=f7NmE>%olpn|trF>iRhV_8w30SL7g z`lJL|5j}vW1fTE6s5+Z8mCyxkpKCeXWXvL?RQ;?DqgqiG5)(0W=J{=SxV5b<=M7I* zX=$m!7vFSfDT4XbUEnDRZ0NC#x&4624X9HA`3YTU;}FC>0o4LF)Wmxkg4mAJXWC5Gq0pBdr4*U8SWX z5#Zn{`1tsMF{eaX#5WUTEiK^EEzwbS1AHMtVXDBUiDsm)-whDO%&TF*SOxXq7vTfi99{{|0Tn-1+;=vw8LEAomE5%`y6Rj%4bW zp+buTO8J1MsB=3C@)5P9?C*O*1L;sod&Q&%iW>K{#BKJ(ZIxLv9_rg79+_)-@#kfT zUkR_VJn@Gf$guk9g(SIo@?^J#MoVtl6n>H_8KtEAQLMT|%+ zFY0sOk%pXtn(vq7%F_+hrJziA|J*vPW9t>+u2o%4M;EWj-qwkoG(BIUn|A$c3Q&tb zOpvtwo}HW+@tGW!Z(0i__uLm!z3zj4<0ls~5mv~)lFx;mWx|SiN}+T#5oS<~I@h#N zP{o;da!#!Sb;OAE+D{dY_oKi#4fS0d>b%#Gq9T0+QG}yX+{u^zae2$Kb-_;58y#y)zUg3ynO3_i?h3SyC~9wo`El#CG{&TfMXF+)4coajx_0 zOKgYt$-^NFF7E5q&R*m#E#yzOFh7{N)x(>&I5>bhLNG`uck1b9ZcZ8S^TU_ws;bTp zd$6i3(d88!{=$CuwWXy)*y?w4z{3m->R{3^FqoK@?`3%z6n^>5a)8jJeGU0rsQ)$f z7gl8yh?8#PfI_@IKPl&JKHf@tj*X>kEAA zh1i71J$E}~DaFMR5z!dzipl2eiy<+fLkKQByCYEum*(co1|UOaBqSs(EvZ#Y(!OaV zB_}uf-r2>le9D<>@dZ(sfk3YGQM@)Z*jh|XYy{A?&4!`?yKUf`e2JJCb8dHGu=r_| zldi-pC8k-2bXi4(^IA)^3!Ow7)a4xLZ=zSRqpJJF-P|}VL;+hddV8TtIsqFTe*z&- zKMvv3HjD8Bze9!&(!A=qkZ3uY|4p$N)SWbo0(lm+_+YSvS1bO&`e{U2yJFZY=`8FQ znatI6A;W^{ zKsD9H~9fV1>BBdpL3|0; zn?putWo2CWIk=q}^wu&mCf_O=T!=xK6}i?r5CnmSev=>p%}%KTs|Gm8I)Szf8Re^S zk2j>9LI^Ve6D}@y2BFihK)Y|o^$wKm{2-_=pgadSJmj-mBI4^1ZA(TDhWwN0L+jhj zh@1hm4v&d}!5;LHFJTPYqSt@!>{V|5^dJ*afdW4vv8a!4LC-*ZcW>{^Q$VX5_$hdM z^LjFlg12$r=n7v1+)nTo4yUAcXTVe9Y8PDL!1o%yxUjhyYhjzPq)w;N3_u=_S-^1D z7tv}e7vagQV&iLozH)zM)GThjfd=W9&}zWT_hs>4F59O2t7m~N=z9xa0va6W*?)f5;aVzEVhcA+u&?x8Es)pf` zZ#ED>PXKNz*QZbdyfEB^-&=JqBR*j24#=}yc9hZyAMyGak^*kYbil35&(D7;2f`lD zH@dG7sboNu_RoLp;*7Mk?YA;X4GpaEYruD7JJ`Fdy4nszwGgzjnUBoqn5k)Kv^cD? ze`z&AHUjj}Y0%eS$@%GbZ-NPV83zYv_pM8U5egzaFIK(C+L{A*Jb?r*laK;15wD8& zFIMX_iavSVIS`u2Af%D=>C@d;L*Qo)!XhsbSwEv?={8%5 zA^^%Ui*dw2nQClQ)Qmd=#4;Rm*46PMLr;_avU8tF57brtgQKr6KM`p?Cl}YzA}|OU z?0TDid~8>ZWmsLX8q z{VLfwj({z`ubj(^5us^^=ie6x5DpD3EwP6p8$-i9u=FH?58WV-0fV|gqmTuW2O~m9 z&?j~k!u03Q4{XFXz&sAG4Z7Y($dZ`tlPLtwBsCQk(!;)g+wM>}CE!zj{?x8+Wm;GR zfK0%RVxX57kEFe`Gu&Y?0kXydvd9}aF-^h1XWmvEAra1`^sFrSK^87#p-VY;cg_X6 z$MnxVL9Z|C&aabBt+ykJ;j<`vPnWIlIkLwro@3spW($r9)D4-hQ*WfdH7u{4qke|= z6nuqfskug@lcX~hZ>EX9@SuM8OJR{ynO_#G3iHrcr2#W^g^XLKfbr?EyP)?X*Ud5L z<77Gt3RZCpcfaI-7^ehwC$*t$}5q*KIPw=I-upw~G@$ai_ogx0dDQ zQ-k%E3<($hcL$$Is@H$tUA=5>9vb`ixLEE!K1x;ytGCCl&NA_i$+|>oBYMB_`^#nu z;fOcYcrtsI4gJW;!op&W`Ae^(_3PIJJ6)xA7D)FV&octf@TR|Z0fQnB9D{`fxxocQ zJtb2e!?IRcvOoA!A>_9?8KskjQaIu=wq>P8Z_XTBuJ#5a8+eF5N^ts|EInOp^sJtI z`6YA|{Qb;&nici%^w5}O&{S8i!pj{*9SM*I7NUe5SKj+uANIGSeYCwlu@*C}+$$?% zC?SBc`EX+GU-vl?kS5ExM)sbvDL{ol#eh;GIMdZb&Eq@+W=7_Y2`dL#csCjq< z+vPByiiL7c{#aL^VxxjrEK_pJKy0J8Qy)#GKKhl+?5=@j8i*`Y;CCyXSnyyc-7;pcmU@Y!yu0TeaL`7Ekx$csyx@9~; z3BR1jl0I?+&kUI_fAg1`ahj4YL3$r!icqwHN`e7RtEL_eRp}6eTq-GIUr?uJQtO?% z&rsXCjKDIi4Rp3osSeRiPdL&BGyl{I48qTAcyqR6eJ$gvtQ49Oqq;eg+IZX!d6`(k zA}zU=J(DquUv0KCQLLHCIXs+(HA+}GZ*@duN8|dM2#ua$D;!gY6}&$#GEv6B9pw#mszJmp(*Y&X2g+32w~Iv7^gyzHomtxBWTVgR&*`XYwC`q zbWK^v>;1%lAazal7>VdJ)TDt5ZhC;5T`)mG9w>};GsC%1DuR1zj5=#Nqoq5X+0>F z5SL8L|ROiwyO&?@H9l>3LN5lt;hpVyNY) zs9;?{!4$eX?1A#e~e&`P+9As&Z z7|i~OTQZxmmaS@4v77>tdS%i|RrNc~Sy#GzruKFfTKch})diS5jac|QkMP>4&lxb8 zYl0a#8lxSX-n7)++{$fDv*}(rm~c1q!!#iAmvxS6L!pENm#jnLWZcAwMariv~;p? zb9c2gbwmM=oXzY|xH!mI$^JbM6l4*zb$3&-bQO1Yba8gFbaE%-Wf6CFaCTL9F*Ubj zk+Af%HMf*@HT7YUvUPB`bY+nc*O0I@ceb!(k+HP3ws9w8=i_3Lb#e#4%A#iJVCrt` zY589-VC!hc*z#me#iRj?S+Bfx)5Sk#D18 z-)HCM7Z#V6S60_{cK7xVejffhI=;NRzPY`-e|Y@;=XDJN{@+mxL-Yp!uY(3>aOOYu zX8&Vv?mzbC|6_0AKlT>?V{hp{_Ll!+@Be?l|2g@u|KFa^)&H~6fb;+6Xh6ot!N~@G zRt*db|3&~6Q&&f~|BE5Sjf~^pSmNR61RnjnrT^C$A_ayC%l}uS2qzyGH|zf%M-)xn z?8*LXFjM<~IH<@(w`glSsOu6)F|M?CB+G_ktvBvrv$ym)*s#d^6d|LLb$J)c%JjW4 zWDp63;l|LE(ID@F$NU>kQCdXREvV9J!`^to)$k+|MGTJ)PoJ3(7F&X1oC8T>t_!qK>pA05{9XmzerrD-?j-Ml%sM_@{1+^@9&7#y| zVw6My1+;%kjC?w_(JIkg(gMACvyZ%+`PJtxhSBV8TQ?7kcv( z(nNy~LI9`Qtd$~Z7gL%hJWaFE!MIkVeN1+ClSzCT6FSaL1fK5NZO&GOxf1fDmBw?_ z?CAsHo6+d$(4QJIpOdh3MHvGjWvEnCCDIL2iZNrw7^w_n3WVfZqJ)I|(WyqqhE5-3 z_qBU9MX&!#?USREt!l~CBoUYvCrKbwMkOZ6m*)8wFDcQrh#0`Npvw$fPSR=Gd#CuQ z$(5i1Ec*k->ZRqJp5%EE?W+z#5{0;1>Q&~tq*bgm&NWJegXl!^fuQbpk4~vI2g%SR zN_Z#Vva-Lw++V0|kIu^KG4x zAm~Yj*95&5bzCyQU(v;M;>d^0>xN1j=*V33l~$mAls-m%4E!6@H=@4d%K!Rj5G~k8 zGFi|Jsx_(Kd(`lnmq=K*F8mTE4kwC-(wx;q@NJ*d16>~{cVho`sOu<1iZw^}HM#(6 z6frIem4KhO)E~0hUpR3_B`Pc0?w=g_5^{@Z8v87+M`;qtep2G}p#xfa>8e9GJR~x_ z`pm%4!FT$`RoKflbV{+p?~RBi(He-y%QA0r*qN|NlG_cy*6YUmzK-gON!&6-?#&|xD-h$XkRg@zVi zU%R28kczE60_Y8J_N3zp-l9f|6PMK0OwR{|0ZH zG_=4B$YcN=0RW?wT}^d0x}TyV00Nw|)&Rxb@khs%`d)>}Wl(GX8d##*==>`$)!Sl2 zrKU}Yytud!@j{5&P7x1iXeM@q1O!w0@AY+bqC~t~nKMrSwp=KNjOe832<_fQA$u0=~v5A%z-t8E}@bu5Q8vp;T|00q}`~jn@~3DS~Gl z3OFZcn_mbMbPx&=*9wzZL`6mWJKb!uBG8YD$YfAS1bKaLZH$<{Lk4~|-42*9?^Vw0 z`C3)Rrvdk}{fXzU-p)=@>v#Lsi@NbEKXz>u3T%-l5DnVkeTBBc8=B%l_Akn*q+d`& zBBJI&wm>H2MkXG}g!mg4u_GT$ZIcCvCmgMXFnqo#Ffhw1Q22?Y!d576l9OU0LLAC* z{w97MFp_b?!@(x{XS7Mb`-Jlq#59F%e3OG{mGJ-o3m$c4c#)QUmQKRp)y4OonD71- z3<9$r-d|vNoHqBF0GuX8dTdfmSKR1>w3`Q9O`W5^?ZJjYs`>1tP|GiUHXPTtv$v0z zDoG$+6ea69m@Sc(iACjh+3p+9WVy)zHtA-GCnh+tFz@^H0R$9z{L4foHoi|ENV(eq z#`V0^#u5=!*&CL<;$23*}ICM1c6 zR?88h1+PV6__&|^^FNxS-VA-g=Xb9}jR^R&-T!8@30!a>PW{9rDFj!*S+~{hZ34t*XoRTo z5zbT=TS-exTKl8_*L_1)*Zom|gKxT?EHSmO*M;$&>8?z9UHCK+-$So@&3X$;bt|Pz z;4&NS_w%Z_y15+*enwH4q3ZH(l%-Y35@A~iT}Colsp}HK0kO&}F4D?SBM=Kwfh%1e z4AT)_0%#?a@8ADjs8W9x6P(K^NmO9cOSWEbvXqyVjZQ#eZ4;%#>^27<)<-zI4(`ldwqHSg4Y=Oi{=XZ<<0(FT zS8w&7>oH<+#2fi{@7!zaGWMe)R%|4k`CsHOXYciyQ_bNhOB^{f)zz^%S~us#Zuap& z7)BLb*1-q}N#GZj;FwltLsepIy^V_@XvBah9MSnULrjYIXi%gNyLlwmXR^>3Qqab1 zS+ZHAn2B@wMk=7Ouu?A{<=NqFSvV{KlyKj4nis;m&tqh-m>ohqDdDr;j6`V74l^sO z!MFrz%(h*a+uC|ic1KmvQBj&PsPN*czjC2Uz$D_X4~6(-hmfV0!&zI*%J0i8TH44~ z?DnTKfIK+@(=-(Q@r%gv+)5Rz-AXS1a4)dFv&(p2|t6Zp$bw2e$5mCbBTsZ5ASovy(>#sz)9jP5f-7Xk$B}j>*L- zPH=v*fk4oz#OBFdP#ssZ4(q4v_sz=#ZIMA1-PY4< zTY4u?uNSYccYeoAtKV~@clM!tlGn)W%bj+wKST6*Uzr64e*G!w2An}hKRJNp6%Mvp zFa@y~c1gIo_J7R%?T0F*zK;xOiCrj!+%pcxdD2+HV6g#R(l@zkj^V4%4eY44GUJlm27>A23BLxw(em^0l|O1CUY0+%@q26kh^k@eE3K7*qiwFuu4f4d($t z4?|U{hrPesIPp$nGo&vV;jv%E5->I(#f1DEm#pwGm)&V-zPHWaz{{t8i&TK!NJM!? z_>2#kwUL1J$MgrWL6^=Gn<$<{RhnBsz?WR@Ckak%T#K}332`U-*^20SQ8S?p=A?Hs zQS?l!a5NK$(1ok#=kyFrNKF^ez7CNE!mH0h+GNU23nEgAdGh6`XA73A?_Gbce3NRR zqxprGX1}{+t4{4#)3s#z?rovv9qm~KrZDp;opq-kR#z4zE?%|03ZG4i=cC=*w;{Qd z$-jrGA+H2>#Odm1g?MNTP4vcH`9GAr4>2ERN2TeRwj!OiapMtdB=~lly56OsgXLK2 z;x0%c3<3)r*RN^M-Xq`bKqa~^<%epx_|y~sKxemnBPRXC4_&zQxne{X-<>(Mcz zp3~WO?d@*#h%(3zW>VI&whHBz*<2xYlTt?cO!Hj)F zMdI3snTZ+8C~Dztqw3}kHdWlA&;toyTefPbNnOB)+sKuz~=HS9;nERj3}NxYQXn`t`h29TQ?f?L@b*a0~C zbj4k^$z?$n7SI~ojTGK6hs!5*%iPYZO*hKMnc<-Uv)Ajh*G(=BUDsZ~liNmcc{IZG zlq^I2d4l>H^8l{hh4=YJspB&(~UGePgJ#(n3VFk`cNa zNMdL3$VtsVm*AUNTOWerpoK+07=$Q+JV*b#<3-kRz6?+<0I0q0N8guGeBjUxE_gs5 z;g?7@viPn^wvT)T=pHz+oiL(P+eDpL7bx4St?8O#Q_1T$wI+>3gBr-hWcE;hzpoDA zGsPeHdyd01I13J8mLvu_NEE8QiT!ZQs#ozQGi$BW)v$p)L*vq6eLT)J!-htwP|DDx z(oi9oqe!WNJm)Nbv`0i1qadx|t|M18R_HLrX>lqjr*pwANy_D7G`bp@lo9IF?2!q( z+^=7p0U5U)2z)i2qnz@5VSdTYMV7SXY(JsKWZUScV#!s#WJ9TIDx=0a;i}!DABmeo z#gYdRYkGHcWlGJEI7)1GoWvJ(HZ>sB2x` zXdqfRiFLRBgJiS9v0DB?PCTsLF;>ZZwoO~JtEiUM0*sVqFqQ*VQux0cZtR$Gq=8|M z{1Bh+d-WKR6J3b+cw?Ud5e~TqihaKzkGN&RD)U9oltb|tv+Zin~2-gIu@$rEoxCheq_O0igtyfH8^3&$!{7ZUHLcmXLL?}3FPe@4U?-%8( z_k0G!CJ3ks_H}))&2IW?!gvyqm2aDyG;5pV*nx_M21Y!4;w# z17=;5+-!LtCHpf0mnmqYHxWgAR5TFgj5j!B+seTKIjO8(Q716)C7Z*VPMLVOvKY4) zbS@x1Z`+z+92@xzt*A{LTs_g;9*=w@lM?%Yyb39~pil-_=5Uvxp->%5i;JopjF7yi zV!>f2t=fm6UCYTKI39yp&31uo(9qG5@#q#&QS?!Ri4j>K0EQcIsHcZ7e|32^d>^Jl zH)VM7n&|BNRg2LM1+F_;?mRB*Nh{-M3>DmK1sC^|nJC$7MhqsPuV%>z6o^BG)vjli z9*S2&JIzB8okFRFnJ+1LUG_nI~tn`_Oq$eK5lq^ZHFJ5^ge!TxJLg(~bbMk-r0hb^Vd zLbI=DyDs0MRhCl9ZEY?}R+w#W>sk-i00Ox>{7R$Fh*wZCH^bo%#?;)g+S~v_^r-A$ zpD>h&MwBfFxe=~{+?OB+t*K63weJ%CZ(Yx$KZcRZCz$qPd>}6{jed#qe@P$wL1z8P zizGFm&2L5k-(L9|zU*FVsJ|6Yb2}bZCT)z@Cu^>f$rF&#&VR7Di32?v@Llv8$ z`;$HX0pd-U7e6;Q>?kl1`gQ?1AF;W>Dcs)9 zt`ZK{!hQgzPtDYn9L&3-TtAReP#`7u_V)hgtAyL{gbCkKIoc3FDmIvE_j_VCb~+;c zrOZ57ki{n-ioY@idjDG|ix|T%zIUL-+BNF#?myq^-CACje*c?*c7Gxw)PiU;AgmI> z(;id=U<1U8Ru=sg(C&p4fX=+Fr6tR}s8#GgBx6{(!vb60NwQ1&8jmQpMx#$-iMlC zC*uRJeJlQ~2>C95TZnq7$hs$ii+Dzi^S`MI{~)&vsfnY6d6c`^5>6@A^}q@SYQ{mD z;zq6(A_xLb@EieNOwl!;O*OSNJE^%3nk>pGlWpRO21t zPo3*G=aN&a9b^I=$518jO!|krYN4AnHK1M3j}Y`lRr87lrA}84$v)c#xl#XSOIB4^ zoS;bfxOTv}aYmlu?GXW!G$e+oA8r5a6gZHHWl7B_9Z83O+(y3v0X2tmM|> z4(iO-120LzN~4`#MunwOO#$Q+CkWl*M^?)7&!e>LN$l74QaSeYMcMomizu=fW z1m3wGkI+sIq=8H}Y<4016ZCwWVy2uX)_&zS`yyyiScQPh zW6zK-#n!4(8M4Vam?%U(+EGk!q2@Wm#L~8nAWpR0bTPBEVo+>0wfM`Y_jG8JRu`pU zC=%0%YP8V9Frei8$mv4n|1FZ%<)z@mNnuoprF=;%Cv_(KSoJo<+n(O=TP1PHcd2(u z$E8&)f86`iR+4PgNxBM6Kggm|p0ms;Fv}?G+5I?n4Pmfd5T}`#gvnAmE~*n@%XIV6 z<<)tL6n^o%tDg>XGkR{ZTXgQ~_FIsx2XQBW$HEt$WeF-xAlW(gRLbQAFb!%4BwsA; zmAC&`3NNL?E+O^j)I(v8)$pp``xQh$7}*(g^#HL6wuJiE*r5B@J?&nDiGt_I2fNsKiq7KH#9^8>I@L6pz&PXDG3nw(nk&Rh zF_%OXM*ByI^}=A4Vt87rT4>1dL}=}Z91cZ z*wiuW;5L1Dco>fWq*y1wsgrTtX2v5TN;7o1-0lZGd`!VVxe-0R?ib(I=|e2W{s%x^ zLM0VqOuYwjjWtNz4l58R-%Aa~soqlJr%hBnTO4mlW0U=SA{FKQ5iWAWdaGL~~ddDVerF&8XF!W!BF z>Nh%}0*tpzlQFyc`l{IlpXRr;S2j3UXs4f^CWESL4g6l3Z~T=s7yo?yT5~{yOPia_(n7r;4DuS3q2o3{+P#y^g4Tc|7A_-u2Q+QKp)0c;p&xb$@#69m zuyf{LTo?*8H_8dgHD>ZjY!HiY7@_@VMKzi>>+9zSfEH;A4`^~P&`_;5{L9^3Z5lof z1!V$$U0Yj*v=He(-jN`(17PNSXIxxZ_-EEga|T+hrP?Ns6D=L>&7S~&BCOU(YtO2eG#eqQc>iO~1^!P(l#c5CEQM!juqx}xNA;0em zY9p7=a+{3~KW>zlWIi@e$qx)knFR$3S>>-R#^W(bvqSH+{EBBjvJ6b%-P-cMe}XI! z-PSCbrl@UgRlK(no2z9eOVMjQ*tW7fy6fnZ)7w|ZhKI)G zm)V?>0^fsSUO{#`M*bi>!{o0jCT1^;D&4%(J}dLR(-Ktn>n~C2oTNo-HiTeBROWO8s0tmtclt0YnITK)34a#uYV#vLBG)ag)pX%nD z$VGd7!JReK#RV4~PJ;(MCIR_b=Ivbk?ik^Sk`up|UUe&6; zxMSg&cQsNhB?3Ht63FpOY5L9f4FKJM;YiPNdd%OTatP*8HNoH$va;r9M zA=jEc38}BA7fcZu&rR9<`7>%C2*})d0*PKj#2FAht*v*9eW}TApg+*meEVT%djt~H zk>oMCk~C_ak&kdOxlDFZvMpBATabJpBrCM%hrRaU!|l}gy;TH?NqBYyxm+~QX3p0( zrB7MeDqdaZ@GVr+S}Tu8jSaAV8liY4Y<)20@`t)7iVvuwL`z?+*5f7itC743FH#V7 z)^V){Kc&NfVx2E`EW7RF%CF|+fZH+g3h$Bdh<*eK@hl^eRN1}k#|b=T6jA^l6qu@`K2Lk_s& z!X{iE-Rk-}8#=JZta(UBesg@}?Oq0zZ{Z>3z-!gW`LW+g!@3BHXMf_) zTk$G`DMQ2Gx~us9A10LjqB4Iyn)oBSFA%_u@TcPElUqbkqYlD2xf8%Qzs1lm$OPf< znC~3*_>*l3S+W}#Dy!$ABV|Gtpj;rUL3aY-Yc;fH^;xfUa8Jsoemti#m1{E=}bD^ZcsINaP6 zb5_d88tir`rOn^~I(wZdDbiTmi^+Gn@^u*cZyL+)E>To)(m6F0P;Q!J3nJjB1xCs- z+L@S}d_)Bx(Afn98ievY4Q@ZrAVS;bmD`i+CC8u5S1a|>5${A0s)Xh!5_P#($AnE^ zbYOJVBj>A3v416ual=s|IhPH-yeTE&-u#q2wl7$3Vnp&xL`wQ8kk4^Kp+}ZvT|s?C z`I1V4OQR?nw`jHz;%E5UkoWy*cFB{89gT&Yq_Xto>&WO$hh7t3R*s;i09ZrHRYv;?TB1;{-DCKtyR^ukjBr&mypl8B9OE8cIuf zNYAa-I_KnqTUm|B$cM_jk1Wqy2etVo1^;#YDjL@%`%@l@>-oiWK+UBejF0f8x1gWh zi|LdkmFmjP4S9XA!%X!)Q1%FSEPt|z2$E7au;tdO6G zg-_HhkmC6o;k>+noV*B<`N%uHgTGmpjj6Cl*&3iJC4?agrPdEdKUM&C;#wyO8A??%XysO4v4)YQstzCY<)k(XgJ zl=)Vn4eBG|zzY4oUETkvcYDrZnSFk9G>#30D@T9Th_+Ig27AOHq*k2dg^L39Qt*1c zbt)*lkB}%GKzTMb{WJ09tbWi%_?31Ut~YRXm9NXCzeRcWEor%m<)0@~kx|8-8`SGM z2obfG%g#SR_ccOv)h98%hMbu3iZmSbjEtn;Gea@C?9M7@ccGAmCh$&4&lapkln51} zimM!-#V0=U{w#@BH5b?`#pep_Tj8|htTTfetq48a#-*!N9eijSXGU_~`WDcBxY>R2 z+o6v6T)!f3$K~O}R`+4P+j-}q*L0`QRkL!pk&$SrC1b}|Z;Y2{6qYgQwoSg90Hl0r zh9D2(h|}ydRaM7~%8XhCWU-NOzgks)Pn!IfAC8qRN7156bqhl`j!YKKJtXu#a+IZK zc|kowK_tBB(>d!wzt>EBI?YF#H~E_V42<%F^EOm%8lkH?yUKGMlFa-a0s3mFufIMs z12GL?+gjL$#t-_2hA0RGC!dQ$rct1$044_1*}TxSBv|l9)%Eo}248<7^6r8dXq2=# z&5Ivh9?flS=ik%YI&AFkj)v+Jd-^}1+DIoNoV8zOeuJdsA=7rr6)TwWPDtfLofQ&% zl9THKi83uKaLsb#usk?kGmJ+iDAQSf9!YRh<1^F7OP*CQe>U9D(H)`EYgMu_9iLBN zwhHJXJKL-LAK4Ys5v$e84ONZxA<^m8^$MLsSxhfKc3#)&)_pd`t9$kD_1Y^ZNw}%R z%AV+V>E%yGJgTj}uk-HQi_AcBf;3{OW;mF%8mX7i|EvS)f= z|B9mP0~Vgr>E>CdulP$F)c$hr?~1193hiHFCNX>S0q1!IKjfl!M^9sJyZeZ4Fa~oC&C82+y1qsB8*RE(Nt^iX>Hz=8wc&p=+v9$uzCz z86MV9UFMyyoR^r1$wKK0T8A9Ts#|NtK{H}y;du@!NyqmvYB^-zVR8FjSvV07BPl;# zgtl<8V{ZHJyI_3VC}sPpzH_R6(^P1dYH5^AA*ME8Q_77Z3UxMWC#_-J8lllxt0eW# zAJ6LjEt2}ezKV;xT5JqKMh-rqfTy=+l@*D4b>)47n=IS!bh+xu;uy=)98Q_cqj|+l z53_8~WVPQok6p|I-F||HGR$}oZ{AWVDQOi zn&|s@azV6_IaQn<@mGYj$eNl{hRFf1BgH`fmtD3+_ja4)G`#mM?~Yx{oJ)T*{OlatZOt%t)dks zb-$}9|8wfew$9zN!u=ddTzi+rdl>6eh;(Sl;AZ_qw*qH9`P1!;PC%Sy88Rj9fK+g` z*MX0*)azcsIN#973`_K4Z|@J}|H0B(hE>&eTNscI>28qjPU-IM?gk0z?rx-0S~?`8 zyFri!>6AvKInVoD=eHNaUVFt{bBu8hCroPoFPPg2x9;RD`qSfk#(tuB0%bJZP7oQX zomgS+$_2wLQ>w0RK{dM%4`OyPsk?>nSIcM17~8q`8p@wHO|)>v8z$6KytRVsLr=%b z^X>%GObMs!uki7I{vdtVt1mYZLF6wOR#O}WKhgLHt|?AxTY;p+<$cmQ!r@8N;{6yB z-#L`lSW*ZYg?G$R1t4_+2G- z!-AKG)&M$E$Jd12?l~=O<296jx(QF+wcV(A7K7F4OiGH?B^cfO9#zJ>iMh)V;u(WY z4qe8?=S8Pfs|A@VPn|rg_=F?G0s($9XMtCS<^OgQYvrjn9@{`)(9& z9;pd)nalSS$N!<}@COX*$>#HC0Yj3nmdLzT{r(V+f{2IUoRZ_G#f)i?fXuB{QdUyP zCbIYcY$td9MC!)~A68keeR=iDdU}RK?wpjr^XA>vxTe_O{arfDj{>ox=XYWsIg2Z5 zQgq`7atZ!o2w67+dwUj&s`S?YZxaZCyx!x29oO;adMlhk9(x7s1Mih%XrSPULr8iq z%iz%}Rq=fE_t8BTHB+wJb3vPmgL^ET*zYGnH9bAWraFFa)T_igFctCmLDqsEA#{Su zmKp_hJ0zr~TB{4{rIs1PJA_Q&2^&tcrd{kR=L27^O>a0{ZauS#DB~Bby%WUjulY(K={NF`oO!(|d>rT;b?0g_?n!-O<7S zSFwZiRD2F>l)%yn8;?Z|#U$FOKPp5E_rrFgcDf2L1KM}QJ^#{ehu!Rc3XhCF=zKbQ z`c+W>ASxPsKqb=LpeN!5{AdFRsL<0}Zy>f}Ub0<=@U5~^wUF(~U z>9@5kPw)<=+Wh%!jp|}>WDp{kfq{BtSeJ|BfaxnVp-x1>8|sHLW{I^a{$O}*c`|%a zN)G7DvSN9<-C?a)Q<`uN9ITflGndW2f7en`Kd|C1;rhM5>a$WHhAYJDNFk+Pc22b8 z#fIaoAuMLnJ_fH}*g&Tcu#Qqu^n68olvB>GP1f=WmLVC_E1boJXFZ;RQf==4;2-~2 z9=0Iv5SD ztg8LT@7~GtC)U!!0!QW_cwVA@cnGF<8R>-=yl+KHA2BE0fA!UvvtVkIk15v1dWwO$NW> zJ9rgFV8MJnFS%Y}2<5<9V{4f6L@u022^FfmmEE38YCR@bBN%m+;U3;gEX>%$812$g zn=Q=9JAO0nS!9*ctPEK2P?sFM#iHra0^UNBcJl}@?aUa zdQ_f!mg_n)D_R-+Ryiqr=GQ8gAz{&&x$Rs@3H)0X=Q*WF{VvOu?{6rgH@{H-(n#I( z^|#gJ%;r|btj25RX{F=Zd@MvY64~;3P!)xiP@(TBe%|e!%x#)EU-g~(qnpdYk!w1A zMIBFwH~pvSZq+`}-rv5a%W4WJJ?++#hXB9;N&>fk3LqgijTS)u$Uu?PF>ozDMOGg? zzd-$LpIvE-!uv2Yo+D&j0nh1+G7FLWSub01WEF{M!G%wtl{~^1so2vxwMBV8Nans!DHo&wuXU$PLi=_prc}Z%SuK~cb3to zgtVY$jjy~%RCAIo^Z~grDbrpuw=<1nW+|gV7L&34QbpxWxQ**euJlCSC8vUlv&6`W zDss{fA?`|ZFqJ6Vi4}TFrdMe&%Ollwuen4vt<_aX$LJ%vy2PB;~=2p5sLk?p;LGdlj-o@vjMwI-o##w*4g4ATS{}=wKF&y+6ppv4FpOpCM2C zj>QXcpDq^m30e7%N(+*eUZ*V1l#)U}oX7ki(~cgVKJ796+i?d(YV<2XRc+Cc!%<2T zDv5%P9_hN+>q{NFX)A(gZg%)*T%7|=X3Z@fmBw72Xe7qWK`y#vBn(?Eq}`voi1ioA9c*4D50_ZG9nFTP??uw3N(OcIF zjdYRai>JEBL%6Y<>^Wo&RSvRRMN7n{24ONt;?JGG&3?-OX(zIw#jIk4HfVVCN@1}E-V~siU}7x@!App z@(*+F13M-7tLsu05+v@_wW;~VvYA;+zG^w|+LZ|Ky9d+aIT(GT$g@AkwLW|_dpy&p zmWs%>A8V<^XQZ`iZd+zkaLSRCvgH_iks15Y9yR1a%fug-h7kL;Vj3B% z9|L>4%oLUWycgyZO4H%x9!G6kFFDemLcULsu@n&l7ZVv%pH2I+eV@?JKCFJFi3NCzRQ5V&gP~X4*?CGiB9NZ$h z@0$6JYXJ_rT;}lqv;Xi*EVa~t>4|b#Ozd-4i3ArSK5b(qx zOgFX_78M20peh+in&#%_N;n(`F_DQK>D?oy;@}3owzu=0gaik7CnOX_;e2fx%O=c$ zFb(JVn8r_c4?jIEJDjxqS*%xOpmYAQ%ZiZ<;PP`r?xeLf>QSD~a0;H(cru|{-2 zD8PhP1|Z`h*{~S>2%6mq`wNk<0Tad466og#cB9zoK=2mwUghS!}w{M^?6pqJnRl*tq4Nbi1*D}zB zfV7y-?G7C!`GX+O03_=H&8?zU!1J7zjVpsu*A?KGIxa!U+mTZaIr`{61){-w&2hNd-e*QgaGSsWmDk85a~7_B}Y>| zSx@(8M@^4pVHN>a%sgwuAGwI2Eb5XTEzD; z(bTO+u0ZQAkYp{%=_M3cceiQou`tjRTS+e=V31-8sWN(5X-BYdXm@m!E4j(&(2^dJ z)S9Vg3Uz3G@&>|_QX?ZGD!B17OKpvznE_@Jd&1%>tjC0PVUCVI&1pE{_u3i<7hm}E zVzZRX#Po0OuAI{^g+t9B17Fv7{ApvG#prN@T6oPHv_v8AAyTlYm<2EyEyiIA;ZVb~ zRSEw@Ri`0|6m^vbi@iH2;x>RcW;400rZR~_lJfDDrqrwFcU%1RfIN=B+kjXB1>4iF zr()w7jEKk8yUWQ33}twO95n8s;(h46(fZh|8icgv-mvkI9APbcuyAD|eYwr!WIE-7{pL>7=9kUFu;^teG+c$-j%(QKDJta0 z*S-IW$YE7gv4O00l*ll0I$zd&Qlc75NQa?H~f{y1z<3$W}+pUvrpAsedP#;o_A>v)j(-?pS{+SWZLGsNTVB#a#F%;3*j%!?w5o&w@@J!=xUorv~mNZS}} z1;J@_{~adOEI|iX;_cUy$IP;im;GM8Qhyg%V%5*VSDlB z;}bbtT`kz(KRnpSvan#}`*c0C6K)$Z;PdzkUws~EW1NbFL_`YmhCdt3hGIZAf!PrA zeWc-14-mP4U%=IRlZ{fi!@;cx5w6|FV?nHKE(|7ih{X@3@3(OGE4|x33ujGtxjA#g zj${H5=^6D~Cl7BdEi4SW{jz*R)vT-zKv^tK`MRtJ?6bU_TpJv;XgH`b93LOwaVi)1 zRdV<5-#aAGaCgfB_33&q8u*8-5BG2ma2J+pYpR$H)H4Gg)E=@pEIt0Vh)wp^3f8z) z>J$2reDvW&gKu*Qg5CwUSFn!ET@PLV6$nQ1@o~9xvJ8b4>sV5UW=S@-z6uiuVvehi zUgCn$Ia^KV<;MAKwcv&KW0NW|85%c5?vgiwqL;n>X{CBO(8aa2wC?V&%+FEe>Lq=B zpLWs&if;ak7;SV6eJte2Mx=$5Sa;-Sz?qz!1p54>;jXH-zrUgG%CUT4XX9{zwr3CC z(Vv-#mQg>vSi)l3cTW%!bD4P5^F>YE?dWkEhR~wH6UcAJDL*hiD?ZKi>d0)mLKVKN z^2O7aSI2mJTVhi>dNy5#+r2@%wzd{;LUEt|dpL?99x)x6yciXN9L7~B61zz7XfNKy zV+k4byM9c35^ac3jF+|CUN5pN{%zaSP)%XUdzMwa41Z^~_NH)l_~VbefW+N*dAK}y zZ=_F}xP(I<;nLo$QkBKjXQBU=mNTo;SA#^-(NG07Xk!cp-@h@XnRR+~#j2|ihQ3SBzBIR+EWm7uz^n7LKGx$TbBUYG<+QC8sk`n>H-&W~# z;}d^D_w7%bo^?0n{@znRTiBkU+N_H&QEzBDU)(&nSq`_RB=~L&MA-jSCI4IzGllU! z38BbP7hrB-$-6#TQWN<65^7>Yfq6?a>kI4a3Vy(wAu~0%q(Npb)4O`J{`{x##-7>~ zeww*xG!Y$ly}R2{MSEXc5p~bwFZqj?17;yMV(OGa*<+nDMf&--Q1Bm|Oj1}j>(GAK zUtd_ipI+;^Us2}C<@1G&%yc>4{nn~y0tK&y3$JT_w%P(bcr`FJjQ|2{YhxqBJU;e3 zbODeVot|~Qb^_8tsxYO23l{1nQ^8Z538 zew%)R>)e+y*CKIv|+{!ixryzw0vv|2EmR}(4#!4#BqvK)M;^b!}|KkHD={9R(#)W=jUR$95NBAHt=&p1<7y4vrErSbI7hiZFl|)2T!-*i!Spe=kXQ65!3Kg7s9->uT%G zSuxnEdss7EV`Mp8Z!JMVAv=^0v_qC8*xNy7ahoN`ZaH+8?KZ_@DN~prVpzHHRu#EbjrS=J|pK853Od%&UC`FGV`Jy4K`&LWG4k3%q3H{(r2x9a`6VpHA| z@m^~vtLDFVkhoRsC6eOgNp5Bpd^o6yMxA`KzdfI(Yu2gBFc-^gR;-ZZ{DDVn%&Mv7 ztSbct8F{@Y&{!v>sOO%?X&nzAAHB9#OeGlwS)6gMH%RG`J8K~0YbPnFY6Y`9IW0Oo zn-B4xV3BPB>4krsIPcciB2V@_c|VxT=;&yG`j?=X`~91gNWOj$#AGD8BOdkh`f5|7 zA)HELsG=wWlfz5TXQn}@)OXQ%T2YL!(-%%q!1c^WkbqdJ1(`~JCw{Ju(NA)|*|5{I zA40|TY+9>y`{Cv=2-*F?1p*Ejc2EEO!FtH(^?U{dKv3GaUCUp;4(INu78(+B@Scq} zwCR6=2X9sm-8vL!S z$tUA3NT{-5qqW1s$ERaBPrKEfzvi@~etpXi8cyVhlZ>uClxwRsR@;c$l_+zWS)hgb z=SKZQRu+CRT~KnW3%TN{z)PfT`#U@{_NESVNZ!kL!D(X_TVxb?876OA0T2N z5;<7+zIuhSsN}!o+yC}{=c!dv=nXoo4j#emF!P?NVlDzU$&F%;C|=q%)=gas*PKMW ze9)`m7cBQby_D}{P?{T@8+lOJaVMA^eTr2r9jur6yUlK;mO29>kEZ+?e2RqOuwW%p zyFT#BG6DRB>7G10a46A3N2Z3G@qwYrKHPPJZOjPk7UE$8M& zX79$Uazz}bL@%kSG-|Q_3m?akI0+)4AvGY0+!s=@Q>>!pms@iuDToZOAxx9!n{T2( zab64v#6xT@i=X8VgcVe)A?vO)2~4?JXynvVy`wg!UMC8Rr)ekc2o-0#?k;#YJkyPx}tDkd`oCAY~Qbw~kTl zvg$$I-QGe--V<`8LP&L+~-ozyC)+fQmDQ9>5491(DtV z&H?1b)z#IxIdX&c-W=Ip@Ek21HMTHS?YqC{RpAs6IHhc3Z1eqm0lf$F7b%Bem(<7z zYU=YhHuhN_uRll0ggnA!AA<_BmKLY2B1}g^Aq>F+_wpYZ_vzVLm&a*Fy+Pyi5Ge_X z(g%!wO^>Y#35U$7XGyh4?TAohsx1&N0)E>#VebgJ=4cYuV76CLmeGe)(weuO?RPWK za+kntO3LTDw>Or0Neq%tLfqWceSN#HTGsUz>{)W9609%vWEsG z{i)MCHR>~iNd!;w3#Nf+TVk=IkT>K*37d@DL)*&_(NbtZ8Cv(QR zopf^@9x5DROY%Tg@a6h$8`EtX04rq%yA{Exh)Qamm^*H>T3+3q^RRU(&bKiJqxJJ! zH7%}=u9_-HhMo>q85Z7c?S)*smhG5lN2DSx1UN9$cJk=cu8w|kb+_bHX0C8~N`f!_ zbh-ysY9l(ut+`3TN2AU(=ap%ci4`BE^Vzmq;M+ENjHZL(62eG~)kM6KjolAI&QpWa z{Pd>vl9dB36OriwEkXn~j;(>s zx+ENAjGb?swu^8=CH{X-t}lN<2tj-whBl7R)~g{jl&rbJj#rIUSsGQhtr|8Q)b3{= zC~U37LW72cAuS{vr_>|ia5FZZ`RC8^B{6tnUBHdzGv@p4gHF%$m%N)iw}8W3)FROj zD7|AC0dL33*}S#RPoy~>;X#^g5i?y8K_20oX!UvvVyyIe$!qqH;)V1M^Qs7a^+is9 z9PKQEQI*WU519EBZkLIc+4{&IJG4khD{-Sb>JCT=ri3}NjoVXV%2H-ePI542OMUn9 zi^^2EBvovP_n&&FD5iADepT`$J}Ikg7^A6hEdq&VF^DA73$FovkIfU3bTrQLuUpM+ zwSrvaJVofFd!aQN83l4ps;flyw)o!hNdHb8b=bDqagSRXsgD*$Wr71Qiv@w0y2+*L6}`SQ>*-ynb~Q(R37(OxxgRCxj{#_6wJ&@ii)N7`G?15 zCkvIpuk}q62qR!aC#m4sx^@Nxq|@_rt2rQ#di+^t!>K7Lc{eL~*9PR%^>u^6=ESP1 zDi8|u;k5t}2(Z>On*-F11_0pX6!f*8%GOj@A6P8_KCk5D?O<-p@wB_U&x3I-AeK8l zIcf26Wn~3nQH=-&q&6L`UtJ^glppRZicC)yjLFz>>Fyb{zJZ=2L^CL0R0o1qWP!|k z(LGzC!0Ry`+?~ngelDC!2Q?;UZ=c9x2deH4KLX?quUSI+QES2%j*b2A3zdf{0|ih;seLQ zu=gP7{Otv}_NPW&vP6#sk6aX{Wnuz(0J>^)i}Uq%5EC$&gYW}5SW0p5Qsc%Aox}=apq5;p zJv>B>`0|u+9KlACkB^TL`0RH_(Sis8`efX$S%(ox=q0T-HkL)yPrI~KF(InWKDI%p zq_~)JUR~I@nYZZPnVFx4n)$8}=vZS_n$=iHwl1J(g~(pVrczq%Mc)=WLpoBa=y|etqPYP>Au0SSHdgmf%O?BS;rMa0CwHc5|0Y$Zed~{l<$ugFqlrE3>hugtz z)`p>>13Z~2;I{ThK$t<3tNbZ%bzH75s;^JtLZ*1HTO~5L1Xwdlm{JIRAlI->ZuY*W zK7wCGUw@()5)>z#eoPC&pN%sRAR`64A}nO9v&he|-lb_0^eU=FFXYtDeSBLKsO5k> z{qAWQEvOn36O#_Ud5bFc%h$3}>8z==X==B&;{GQWR%Y{19x8R2}~FS2ju(?@A3u|P4^&ELw0vcMln9# z^sT@pE>onyR8+}u2H6-}3GKJ#7brR;<)P7)Gv4rCQ9UQxM=|X{P&NkvlDg#46v96`G8nJf@3rx#t+B|L;7o|I_;f-^rWim(=DF%vLfp z{y<~>8{Rzs)KC0yMiPRzTK`J?)s0|ByWw1xbmZes+vanK_FftSR>b**$nfo( zC*`jDogyB+Ia_#y8ozQvOxx>Je1FJ~>}NkUvAS)P(4;F=9Ds~zT|==|DUmld zHFa}qD%Rlk`P01O0Q%Lj0{`$>uE!u0S<0qG^TF5U(jV&C+3D-+8yV%h3PcF{|D5^6 z!dolwy)g7gqUJd7n`Mhjur10y4+7QN&Mv?FXg zJ9&9|RaNw#Xi!~SSS~IuXgVg0ydDycj*0+rBP)Ask$POqRMvP+=_YZXNYgd)X}$X; zYXLSN_gRApBUmy}*n(_nbMw6C#g5&yKP)$wXs>boK8u5jib_a`#J0GJOtkZ>v_5ng zj>&mO@{vf1Kq?f}T(6{zI5U^fGs{Q|R9;Ve=<%fd4@SPAaTPX;Pq!(_d3h*XeSLi{ z;arGuUm$)I7WVSEFu5zq$N+zh7-S&_%;fkufGmnh&EwOGT>U4ZF+-^lg06vvz&9b0 zd|q2M4U4_5anzc{qlzP$ed3juvVuFQ0N}< zsO%H;A@1vqOwPMQs)D{2ck7Sf7s$awZKJ7LTChvN8%El-(S3kEdOrJ}T(nKD!Dm4x zA%-F0w|C?0w!jy%bun9ONX$eQA)QOXuy%FV5p~SiiGdMFvt4Rvxm=VrQ*~*FY!KM1 z37NMW@YIVfr}puKN{nFEDI_5;%fq|cQh`&1V4*oeC_}O2cY{!KT-t3vB#s>#ByuLV zC0b;MixU+Z7GQrrzM_(Y_X^Z>Lj*qWqTv)Dw_}jUWAVtW6k_^tY*Vllr+q56% zP4&gThKmIrd^(k&sAG4S7r7C9165&lR$COoMR{0%rfZlBIo6Tb$*-dnw0oZ(AA1AZ zV5j9xdO~MY(pct}&*N^xMCy(ZgN;=6I2b{W4Fz@tpZrEiKmx~UYJ0m)V9ku8WKtLr zteD#-U$S%r@>^d}xIaqunVCRj!~g$vgn@;XmYO<1&!v?DiVra{lUvWp+TW-Oxoh(U z&nxNqWFT*DZu%q%kds{~VflBjhz;qE_u8Bi>}&0gJ~NO|r>TQSCfLMa()4o)2oS;y z%R?BcsB96o;qcP{h%F6G2?VDNB7A-@BRdX0o4Mega2tF~O7d1%@e}($h-=i)&=LyD zbIkyo1_?@K_Gv`F;7ReM3}7Z{xEdvTNgNTgK%dwDs%C{%FG-904zSMYY~*5cgD z0pZlN@=eQr>jyNw32t|=eGx#D_!}A$BlZd^Knn2l_X^K_4j+)a}w8=slWR=3bz2DkE6oi&-b06QU zkT*ESb6fr#SXp$D#E-NO$*pI!_#$e9n&y{4xZL;<_(R*?L1P3vUoM$mQ<2D^#q?~W zB|cRHd$3ARRZg|^)duOgkStA%{6ixIjDi=|WyZCN0rEbT4Fx1y4I3(X3>$_CI&xL- zFsh0--_R%wGF=!1GduHeg8A>m+uW=T)4NUo_0z5|4PD*77wZ?f57Q3^xwaz#0-JJT z2mWSsn3v72pQV#0`kEGK{ERh&Fw&n}P4n(@ZLr@gkGhg4>;{zC4;vmV(?%=@>-b|LPtd0=Vla+~bX4JDkf55l*0_fw+r@m)z~C;7BW zfW2$_#bmTjIgGJaHh% z4(|CGk>9rk@ndDHfP|53EJ>e0_#|PuEAQScs2F)%j#Ea?@=@wdEhturI-UmJsh&tW z?>a~Lb^GIWe7XAOYvW%%;R0yC&`po}gnU*_!3uY%j@UZfci89FFn3a zl;G;VeVmprpC3mxsFns<(@y#03r`wjIf=m?Xpy3{gRcA)?EgXgU+KSh zKDKTuJer)4gwUM&^mmXSV_Luc5h9;43aH#&;ecsh!p4zk)^ls~0Tm-9BhNN_qohRq zd${r@#UMpHOna?0%^LJ3^Fhr2NY5J{%#Z9=lX%X_m4gESUnK$)Q|tvl9bIv6ai}jT zX&%U3OGe~m>+@n@ZfX>8IlvXDS8o!qQJFdk_pUQ^vcJZbz}iUj*MGD5?X6dR&kIS2{ND7+x}>pn^yIkXoVgDL>M zV_)&9%K7m~IP4bPwWL$IkN4EYHAJkof4%G=!~23ouhrq<`GM-SK|@W=_4sFLQLsR= z8yNgS!OGt=ueJ5{|AUJl3Zc-#zic75pYN5Ut!P#+?L~@_9S)cEtLQkj zvdPEAc{+C|;r@2;b&Q-s=9JhQY&DJNFg_unfXy4KzvVff?12_Decw{04$A0_I;SNgI7l^SoI@7dl9>MQLK@XQNzHwk zW#8ZC%x6fScmU@DD^@zkYNDDnNAm@#Btm5UKA#8F{I*`)5$Q>GR~gxbY*kE!fKgk# z76M=A#jO8b{9iNJeP1N?=511W&QLVofPSfQs>X9$3+%1T$tA8dfSjpd&hRRy`W)={ICryOS7Q}VL)QaHB z);vWiGg?9cg}*HSCsjlp_Q+By^%`BiF9|ZV$n=z=^WJ_Wy{Bf4zV_z&&p}e#S$0bs zhDF@UDuQT<$HzzZ0eLQNr}gF4)$zI)ULzpr{Q*TL3#!Fp#1?t+wu5r%h~F1JbW*}O z*xT#(1o%fNWq(7ySpMrZn3Fh?AkOW+tV7!s@YgtJ>CJm$gfzX*_<~d(ypn@wAt?d4 zI}B7*R`U7W(*AYq?DqM4lEI|^L$XXw6|6(SwemOP^YnB$(i9>13;uo|e^#j|J^l;s zRnO?#E>5rY+D+UJt3mUeiqkDFs>$57vL3GV)eOThlIIu zmk?^WgMC3$TU+L;n29xI(Q(+XBsDyWRPEHkML_)uBrNE`an#+(c_Gm_c``=1(O=HmCHARy3U7Ihxf5+d9 zwk&%i0TY52O^c~4@2)ZeZFYdH$@8?GQ)_xL!XDQxL7?@v-9yBL_YCSaO$XXT)=l2O zi%etXv|wxSKj-^%#+jkbE^lUgjV8D@ckdTWefiKa7)w+z97~JOk*kIu-$T{eS8y#L zl~NK<1V7tk5_Nwc=#|#&wJbuJvw$*>sF23Fm|n<>eR{iaLDDn zz2Qa>U|h2acdMJmf`1N9?BwUoG>0KW#`8~5O~h&-svOw3qNNt$YxK2h@1Vb;tn#*e zD2JI!H~+&>7L=eC5x?qScb}ak{cWGbFHow}m(y6x#JCJQ-dS+Qn}hL!A6XRf-yaqq z+z{xmRQ7MVMGZqSauBkX^h6h1zc0iLt*(ggCq@cx6eh-=4jyhy$*uh;wKA={o{T0Q zZW`x+u@eaPNyaxy?}oz=FhQXhoo@>$ZE0*|r~g$5-Zj8n4$P+-QfoiF!9y!NZV@aH zZ8ErObsCDx$|8pEm_ZECK8MpbB|K?oXD1>87Qd#uI{+{V*|jebSX#e-pLl)e^#P-y z5Tr*)a<`qYvi{#KnT}Bg2wFe(m0?!F_V3^M+C-Q1HC@-QIktdj7P?bU81OnT3nuGy zishd_+3gn@2?7hj!fzFr94$sbM^lI2gR3w6`DRz_1(YoHV!MAQ!yDd;`vZYx=XZSF z&v2YVru`C{nikD~{Q;mbV>X~-`j9+HR=>mD*3pqE{e9-vFF;de`Z|@#w(G}e%DW2g zI-oq*MD*SBe@u{9Qo%N1jOdQOeZfLn%)pOVvi~r%(6;{bA-Ten2>H=sNEO!TwVZ&o zK%;pQD>#q`OBAtWJm8~KMs5M;5~xCI4Ko=}qg$#qOa%+b{qgiWwEy5@#%`Q4nZU;} zjsps2$m=vT)8`hy>AHc19{w5F{Cy%fL8N~$d9740XwHngMTT6CfQ+6h0s;j(1m1)&CkDbYy033&XcV50tV2Zv z#@C<_hJ^x+Oh!dy2v3c65NnO&X7kMRBCB2K#%h>5zrm+>muKnF|8Tvjz_2p{8NZn8 z!w~X7MQ!bYRq#i^QB!b8o8E$61DY7`DmWa6lUbBHXOapbiX5|@U|y5jLDC|kr>6&O z7U~c>Dys0w;u>u=wUmsEvQI}%z+5Ur)OU?V4mzcE2niMnq36Vsg8&isCvRZ~|EjVtV8JpqT{8yf+?GskN*sGb@BiCnwo9{PmcpL zM1Z0qif3OWDYN&({yt>gL?Sgd>))zkJNrVjnLL3nog#3^e0kHxV37{C`n7n1=bph7 z7}@#xMxgP}u-@~+h-lRy2p3c%^AYqKdu_vnoOafzeA))8p>152NXse)pH8Z8jR$swGmkd9pr zvtqT&*HfRr1mi!4Pkr#-a6F;OJhD5l(>m`44gv~OA+Rk`WU5%p$;80k92IcX1hBkxoYEVP0=kbKWh~6UvG{fheMs#zV^g`s!fqex~ zYbRF#J6bA%$kq)q&I&2B#a>%6^HNph>$AxluMJ71MG0o60zx{qr5(afOP%9oyh8$#Af z?ez3N)#p=4*8|=6$1Ss6MBb0|g1O|=oDD5&$kb9)lH1|5?J-##MFn5Tl+{Asm_RnG ze)rRP=QBm?xk6;rCV&dLaerTnr)CJD}IjAGB#u}HH($lpOqJj8r>%K^N3EgH;x@T(n)sy4mm7BDy}A}I`}vN zDgy5aEjhw#*9Pc1Xr`EmT!qMq(C*fg1tFG@JERV+?plydA=Qw(&>q(6B=0BibX7!- z9n=icNuGcB)*0gs`*R-s+Y~l74t(hwa5iB6(&?(=Jw&EmtR72dK9&1$qh7A;Hiy@s z;?_LPA7qRDGYtQ~j8jNFep^4_w~z{Y^{&jidHz}6{#Rr+(1F;D!-XZZ3b&}=H_jra zT_=`3%g+{uq{RVx+eBZ|Mt%YcxefC#8;GUqBx)P|Iy2dlA|@c~sn+ZCd(6VOor+d8 z5B0EUX*bda199qcoIzt!|FS`~KhuChFNhhp;{bRR^C*llv+uzM-H|znfKz@JBGx#( zQ)p_!NZMiI%chKSLtHIx!NVP)GC{#Tn8dG=@^TE@e0jR8tC(E?vfLFi@t0&Q4l%!b z6d{V9Vh;C|73Wc)9!y*})Ol16xN@0b;-nbpR+{`CNQC7~mh(AHF)|brV4nt%)>j2h zZpjZIChvjbTYzN6;3U{{C=NK{hlr5RB{ zq6RAwjuwba(R#FT@0uYJBw-)+>keKXSOPU{NQ#!H^98uf58yBZui^dKtv7@bm`t}I zzWdHbr_xOaBOpTRC;oY#VH*Sg_18RVh@$#q*upMNP2tLNe{pzYxEgIvz`?2=3CA_p zngr4>Ez)cqm)X|^wmcISJ1i!$*3MJh_Bp+FI#1Cgf@^=q+D9m5TD;GH`n3Kov!490 zQ{s?Jo!o#R#5|gy3`MGothIAp{NWYtHxaW*GI$+m3H<4CM<-RTj)t_cvq-YmCx<9_ z9XP*XigUS`CECj@#MIR!jDu@aXYqK;-M@f`*?J9TmSPw2$|Ev$&|uoio*ZU zt!(%5<^oBQlkKhmZ^^5ROck5$(%%tuYSkqBVaOrk3=6k88^$!gER@v%r=meNK@F1Y zijtTqbt7eTG4CmV1cm*_rB;Yrkiy|L@Jm^SX1JMs*cKh0du^fnhVRg1BQWQXfy}_n zm;ld=UbKn6jp%x6^GIPzOsuDEDOGt#VXOuz%Y1bolH@4G@owROOTQtS&Og#2LMF|! z&Y;u6_RewDXP&jYPb}hVz~8@cBg)UxV)qssMVIvoF(Mo(NDfl=^Dx{<-;YD!j~$Xt z`#Z=q403ShCrx*`shQzp!d#G(X&3rm>l%qUtD5ih8kOYhsw8X2u9b~((yfyQvVz>1 z>tqNsk8DJ>Jd9wASF)iTF=`NMep9r5MZwT7S{JRsg&d<)A7waWw5P#Xtv+xnAZZov z^In!Np;7t4`Fmm-nZ^gtYaojL9Uw*xjKFfKV2C3qCUEO4(ZIZNQJb%o{%#4$_>olwH+{I-+jEw$+L6U;wGL$i61K)P1DU1cG2@3ch zK@Q4q!A?((^)mx$bkjn8N9UgBC#6VxowB(m4E&c}ww4(Du{DUpiYK!2m-NDcg`U8- zcX03Fxi!8QtSVTe{dv1vbB?`h->Qs)h>eLslWdU0ae%L@t`^53!!<*w70f93F2u~t z%*MyZ#doZ+zm-a(o|GZdmaH#Oz-(;MlifG}T0BY9h4&3XC=b&0SISGq-!UU8MUy?D zY76-*p=|^ORJN$*g!aOhfxG#;m%Aj!R>idih%!vxbPQzcH9Bx2 z$-yBkI_SP}F(qdAm!_36Fyl!znQEX5^U2yCYC3l9V#OnYZ|^K*dNek(gABRtsJTcr zUMqtcw>Av=D}aS{xD|%JIw8Di9NkFje``VF7x>b`>l5V-$@4Z6&@wFb$#8pZ(FCLP z7Vi0SwX+pBm((Om4*^?ERZ?-yB)CeZqAgyn@&$LLPy{JmZE#nb;jc9nS!<2oY#s8rb3iCAz?Vd^XkaD^h~>_C!VjTwYBE~hV-?rFPDJZ;kw(5 zXZKCL%;u26-O9acd}|nbj3%RJlVi;^vts(T*e8XQkDMh*x%l;=A#~T<)58H`wB(e| z7XhyJCK$%aIO;?Q>yI@y@I*h`XMdci{0JvgZ>OGuA}(E4NOzUA{x-auysk7BE{ityW zs-5RR@G=YG&+iN`Qd|A^zd31S-Fp1CGAXft(AR)OY zm=WT_54oSZ>}-6Vu2YT%-sCW^1LE(;vdk2oJvH$~Q1a2-)zb0t@xkOp8TpNrIY$Ka z5Ch&SS>s(Fz)k{F2fDtPVf_{`8g@h3&n2)m{(5;C)Z^cL*myk=-ul`|jZsyO3a7vF z9OU}PN+-5?i)|2@o`4gl@H#QxMZeW)A0Rm2y&EP2(>{;;d3OBtk@OZAlGlD(r#UE? z$9_VqmilZQ5_@RTl+t^1IJLC6=w;nd{tS+X){B)ZEsk@mKR5j@o`tFna`ZY+RrA@& zZet8?M?(;ThLCez8kT_hV{L6sLK%&xfc+k@hJT3?$&LeGyvaiD5QSVz^BD=x{Nmxm?72)OmEk0~F>7+PR8|)d~kgJuqqm{PhX zW&$eTA8XaR1T)2q%tB`#&25bdu9WY&h)~U!CsDJNg>g9QEjfEssjue3wmx(bf>X+B za#=s&emuhdRf5#zY6dYU!Ozu`7$`Ko=k;Kr9}>su`H5k_09Tjh7UYEIww!mDtI zDT<#e^U*VMWWCxrVKrSK&sg0LKK2#I?~HN>2PU!qTn^jhUUd6m^5BF}{1evw9iro} zT&>0PZT|LOP5oM(bmr5!`y=i3o4zqp9g#GNks|TGpr8~*MTLgi-;LAvA$%9Ud}YKU zYiHN-)Floxzklb-QEwbKBmtv5$eB7DOx^vvyW41S>|4=h7}Z2DT{q%}xk17~NZ803 zl>i910;OSo@5AAvBMTnF^W$R#S2yJMaie-M!M7?$pgYMvlhhT6poNzFV42r(}93K?+euwQd%1P>UC?sF)Kz2q35?$`$8rbX4FD%f# zJS>t2nOZ8Spr&LRHP{aGQfHM7+gn>h;~;!WDFp2BWM)P^#LbINZ#lb677L6=xQBI8 zu!fwQ7!q=9K%xy(g+C?__HR6)7P4A|@ubRjA2u zP~fzm1CqirK54KYE4dx63^+5apt8*xOI| znR!+#2tov-z7V0{2U{`^YBP4g7A^$iErS?&kkKX5mAc*?|I<6eCW^i9w_lkEPFvy| zpmU89CXwW>XEGRPSAIHV%kgq8TiJX?Zd2czO0!Mx#b)D5nJ*fb#^*rAlN#u={|A+W zN46X0C-jMhC4?ILxMP}9ejke|aFn`v*S_{JHUkWypj`lq+Tq#ym zHe}ux1YJ_71IQeS-h3HDhNLFW4p$v@bCF?Sd-Ik1d4T1dv{ygL(ItJj(=Te8EbPfU z&HLXIU!6(kQGjf(y8yZ+S|y0h0&C;c6c?_ThZT5A0}jAVrBSl>`Tqe_z~!om^(h6s z!2s;1c+-zc-FO6ow}sR);2oT~D(@_1-wrJ>gmz1ac5YYglWyTDb()N*+zYy$rb~N9 zn4aH_{E`YrhEgw>e0R-&MGhHYB1hb(F3g)PO84#vi7y|-(blH# z2o;8<)CE9*z^Jcv>0zTO?x;k9;rC38DC+8WE?u}OE}he_JtIl}t!^(?tH|yqsro9p zkPcwK1wsga6!LPi`CP3G4Tbf*QMsilF^)mBCbl+oD}E+imaGo9{%Np@^N&^WC2&82 zz2@zrnJTcALW}b|A0XQp{h<|Tg``pj*`NOZt0|0ZlCv8 za;M0!>k*c||4U?>^%g<&Tu~BlB@g`dY^xGHB1RRO2XTyZaukPN@x8C0MN?mb+6TY9 z4v{*ITrQyEFRuIBVz3CUQ9cxBEd#I}MbLxh#mE&iKwSXye)KU@AyOM%Q0E65kh|H1wR z)26;$gsODoECqW5Rytx8c2!`ixuN%rG?nKsry+!*mZ%n#9Ukw!;n%9TNp*Oej$jYx z>dg8j{a;N!54(9U*$Xcgd)vd&XbA9#G;1H;fu{lvl!(#Si4S~7$fz??=CN;I$`xi> zKOR-kVtO!*?iqI!y0x!y2ptfy$6r5g;#+FTMz{{?;>(H8ZyiYLlsHu!cn)Qk%Cl*q zud);g)g7|do}2n=6wyqG+B!q^2vD&9GGQe+W3iZxZ+zLW@#?DUC#94e-a5-ty;sT^ zU(78ebC5O;QQ64Jgd;0|)7I9|a`7Co`pmS9 z^_B*PoV%jP*F^yvl$4Iu$}u^r0ZaBcGhgL#qHwk>VQLc&6|FK=_j?;j*U1wO8b;Ga z&I~HSwA^udPx_(K7Ycdbi*aAkL4=3X23F4`ghRCPD3m!%Ek(Y6HgxXAepe67+CNwL z`v)!mI{tx!N?@D~4*HrLk(1P7`c>im*}oK7zNIhk-ln`$1|?nfwrR)$MPweo|2XkA zI*wCU?jz?S+j_r+g0^f(oApD5G#Sk=AV2@>J5endD1;gbBi7$r?@AcpqIWsb@&|Z0 z(iZ@WRX8vdZ74URc|F&AYCMPE{$N62s$+;XI&X8``@9tdgtajIx@;aQGcrD?eYjWi zk~C9QZSXh(V#|L~@wjf)!B`?-$JV>z8yFY>?rj=|-ED%jF-~C51VFNg)&B~H>^B8> zjwQFY!9V)X#tjv>x`$Onq}wmoZrf8)!E-Fu|NU!EBTuO4 z!@dWsED&<%QXUo-7Q^G?^G5u}ga6g#MT7!1sYJNgDr)d2V&^5zNL z?BLZ8T%|laAQb!jaxjqv%x^1s4)S=!e6KGa%)F)gJkPn+0q z4TC*xseD!mv@H;VVq#(nk+x!^aF`ccA#|f5`}8gcaH#TpRQ48or(Jn+Fo#;9L)#6( zSPc#b*m@9<(C#$7a*$Ktvke4nLlNfzh#sm=I7)zo3nYx3x_YV|o;W@nGL90e)O~w? zd%KPcJuN#Iq>$WN5j*rUY>f)zeU47 z@wac^z?2a|;O*@Vgp%^_H=qgP>bXFjK36>BPo#i&ydn4eA`hZdafZX*a2nGRB zJ<(ue5V;D-D*qKqcK!h^Y~|(U0dRX^?BJ6&#xpf`eShe;qj{(Ia`3@9@IfVnR@^{~|T zdhEz1EMot1*m95SCw?iC=B$M>-*`C_N`TohA#5vfh_0zJh-T9XV4VJw@bKLm-GNxLh}k?kK%c9SNdIym33QV0;ZqnimOS2>KB zw!9x`aB}#cA<;EX{yye?JHHImKAhY7yA|}F?fh6(-O?V>Iy<0(;eG?2DTlicPW~S? z{AWH}4z8nSp&zUNrqu%LtKWVI#o50D?Ze!*7Epb~{!A=T6E~$hTO+ZSDQXg`)BJ2# z6PKXV4JOm#M-|g_MhwCb35T+xgDs!omFkS<`Hdzn2@#5moed#2LD&LbCmx?76oaQO%2LVl9hoTdM2jxKYya6^_0qg{AdF<{5nPyu)Zh;dTP2w zcl-cHFYDHE_6VPTP-Pq||WR!H7T|a@grd7`t<( z_44uxfL)}Qa_O{eS5wwfcHUM|5q$>F*{sYkno`P6?mhEF%6;EdDb2a6vIOFBsl?yE z^{3Yt7CzKHgtCF|U0}JsQnIE3Ixz)BPFJ70>|GJ zm*;y&CQOH{D1K^nyB0-=T>np3jMnx(W9^=Nd9ykT|q(2lq!7`Oac})A#*6qPP)i+KFng#Ph?E>=UvA zoGWQBN<6xV4ePNd<29IHSz#!wwX_I6BN5zgOegV06v+Jb)EzJTYK4MHmAZ}dT#bUr zk!&d-ve+m%jgpgI5?Zxx;>vaWjU|}CrWHvXTQl#YMfDxqhhtrXJVH#In6SR3X_|7x z)T8jp9VQR+1w4M%F-J@tRrc*7uUF$5L^0Zd1;e~pJM2t(A4Z(b;Gje}-V>VpoCH7l zM3cdzu+863Bq8E%(>h*u=%G$G3mNIoB3=Dkrm-d~u8;E{G?kkkeWt)Y}YB|57BZCE_;%}?pvfoBU5*zS$K zi@)O-kS{(#QlvT_c@oPPerr5Y{O2g5s2ImEwoS(^cKF(o@87Ejaj#jeThy@6VE8GY zdQ2f~4k0e0&QbU81(ev*!ZU7`o`Y$$?IILX=G4&Z%k@puRoCjpvt-$8Zb%gxhyHrJoENd-cX6N6O&zvO~u8GKdU&2{t;R` zIbj0*SMe--y9`(}TDd34dBBj}!L&>UIso+a^!j)4$7CGAytufi&YsCRs`Iz+JkB`d z8sP6axgz)A-Cs#hZ;r2_gGk!BxD-PKct};y$Z>KoU~>`)#i3qB(9p==NJS&$ddUj2 zohX+P0AfcVj{jJiCtidsHY6b1preo0ZlStSalEFclJ+5GGb`~@|?SpLX;o)QT{KPxH!$)TZ>k`u+AoC9+!ol)WUR5^> z?#@Zro2<7RDS@D5i(23BVl4*m7>*?~Ub5Pctq+~=TR(Tv)R+0&FUJCmZbm+YqMfHU z7EKA0f->eoV>j;FD)G3(N>Bw1>^&B^0%YxdaPP|_@3b&k*28BoTzZ8l$IJXXsh>zdaz;S=xRlyPb2J^L^CXg8dszAEZD|1pc$&$~TSu+`3LUla$ z+w8bZ#G?VuFv?NJ2O&C~s(;7-+BzF8lH<|H#DrEh)~2~YWs{FozO=DFc}Z+PoBUz< zNU%%w52nip=b@^M)N&*?+=y`sxKv}XBG4R(euL(NX1&TTTvk=Rd~Z26F$8JRlm)+i z>1n%9^VJdl5Q$PyteHl(+>%dGo`e4TeS>qrB{TgDvXBu5mIukNk zMrb-(qZTb%tkLoD(?5S?M{a}bo%Tlonyj^)u3zs3C=e^H&NRBXp$Q&Tf9JoAmmJke zl%hP0gzjom%2$EGz0;?)%~b;;0~BOIiC_92jN=JPB#SrLO1`OT5SAigBVWTJb>8th zJ@VUg>`<^;Zs2n|yT8L2Ph9km6g%_kv{{CsV3v%Pvb|>d+dV-JeBD|d)*^A z3F&e1QG@#vW)V~Ve>6I`OvvRL)CmWZO#s%&f1cApt z@mv-40(3@UA-OxJvxs@Q5E^`?UON{?L`#`&p{kZvo$u4%oeiO^k4L(ydhjml)|A?X zgGEg^(b2^7nK0zdH?-^5y%E=%NWsPwqNKRCgS4yrdbJQd|+dwT;3GowTo~^cd3i`)-1bjy$E{petQ=F0T zWb(|ZZX1r7_dF`p_T=EbfyEzV;Wl-*WD_y*pwo||`au7}lsUmUcE;ZpmH4Ic>gg_6 z9G(@y^67pTGL|P@Zko^0)c4Ts?3y;zyJznw6lcJk-6E~I^Dh7s`ufUm&Oj^MuTmUif50zx(Fu@g#9aRp1 z0XsQ0v{a7B)xJjw=RV{8JvJu(GkkRb>1h7=j3Gg8#-z6kKBNJ?G!>pJOHwx}x#zc< zIT4AX5|lhvd)u|_MsRoOjiXMN2g8qs5sYRp)GXT}GHLA&q`*>!?oP!MoaV&IX`81T zry*oCyODC{lwbM~QH+J$)x^hnU)a@+SM>3BV4>IKt?CPS7FOmKO-1+h^ZN(ArH182 zm*f1NN$T<#Cg^57Z7A%$a4$q5;GEwpM3gz%oqTF!<_9}*Reol0$-YLs_tVjKIveDy z<7Xd~7Lq7P{>;4f6)0z*os}FD4jsJsJ2AVAaEI`p@Bp}-&I?6{vI@yBCVe>As0Lh-dPt@6<>5d>344W z|FrXSJrnTnWaj?Jyj$Gp{`U%n-ck zd#|{Ya(P=}@PtG5oRTKA4Hey=#anO#^hH2r8_x+LrAt5r<}6n8Ny7g=Gn0_#HH;=2 zzViZX!qKzW8$YvYhXDV_3R0nq)fCvDKSNT@bQ&MctOj_sp;S~7Iy_j5%AOrlrIW8% zkUv6M2ct8~6EjE78hXC;4r0bh@)qD9w8B5Xg@iN*Ozt>0boq09zUE=0%Sl2OnJt`e zLyanBi1+PiyW8IrZqUF24!_c7?# zFnNs_>CGmRzHyJKar%9IJ-}4nIKA-hKyrk^Rf|Ala7vH*j#a(t2C|pqSpCuq+DC{Z zQTiDrV0lKZ#lg=iW4TDjQV?RyOrAtlKqtY17t4b+Qe|A+H2s}{Ia>$BT=!e~WEpiF zbTYCyVA^CbSKzAIW|oz$g16y_U$&Jn$-0kHV`;WE(Ib9Ye5RV23U=XI_=ODxn_xNi zOJ+M0jpN)A{&bkXaasnRHi@ARW8Cego?!6xszd&MF#N z3>JUUq+46y`e>*c1&5iVH?>hCU*rOhxWWRI~BZ4a_ zl9B2g{q$V;RS-Q34?)!MfllPCwlwflGI2R2(t}mfkp`XgLgAGM%7^Uz?{9{-0S}>r(7-~EASzw~$ zzE?1R{O^gO8ZWdYL`Z0BX^Dsov!@7PgFOXCzH=Z2keZ53EQ`@P21HCLDXF{0)ARH5 zqob`|{zBmRN8+ii1WPtXXxrpju*r2i8xQ`oxVRV?2uXAUdb9xbLK7m;bSn4L+zSyt zzSsRF83~EkGznseiyV-NR@c@TSG&ulDGPOG*VaC!mD3n9GVJ0HZ9jo}%$FBM*y*o7 z0=d`-tvdYEZX7oz{~NOd15nWoL2_<<$Q%f^yTD1{+Se_0`Nj4fm$Y>c9Z@3_*`p3x z3qY+AQQe=Po(9t%p_QW@nRT~crlRg%UOK3%Cc!p>cwSEr*?gz~5iAjf%ca>%-?woo z1O4GS^Vmo>-%_DvL44u?h1G6bLtlIQsqc%W%8ZGV*_^-InLAYNGCqC!&Aoe+D`UC$4Ei3?7j|*z_3cb$!Ow>!y%qtlnolstbc~ zqQFHy`P)||hZ|q2=&hrzlM5Sm?c|&=`ST`l63?;*P4w@}*F0V5B^sgohE7+ItOQ-K zEpF2zreKAs_8x@Y%Pa;WKeSN@3u~GgO#p8(Xm`yYPfhQxxAmsM@Tvf0e5YQYYJYau&GRCj- zW;k=BB}=dp=ZF4yczjM7Q-=bSZ-tV|&}vthX`}DE;gnhS_YIAW3D$6*&NntPjy+Fv z+B^N`x4aYRc`DO>HGlm#)_#2;Ek?hUKazv25q8j7N#uRpmM>Vh=|2-%y!LE^t12>tHSpFjFP zI;;IMu$8d0u{}F`XuG=p^mhPrJ~*4rB_u;@bZ3JC;a;L#SC~nbcV>?{>VS!3Mr+^= zhR$H$7X|2w$1n&S)OKjByz4pHf(!PP4)vGSKTRx1(1nh5Wdg7;qxJZeooPV4S ze5_MSLpsY#n{gU9I$Y;Sz5&=CgI0b2TLv`sIG7>HO29|o5tz8(xD0iKeJ}b7N>fVw z;eo4WdkJoZ2l!fE$+jYm;K-T}r}8eEy9yvRBg4z5z)26b<6aEH;#y~H6~aA0&>tRb zXeL1L#QRm2J7;gbjfd1lvs_is-8D0FyxCS&bq1`yX4ZBn zK#njh=wjOF^v(JMC&zLJQ!>D^mPNU$L730f!$DN;;qy+@F(oMPnQVF(KnyFMMnjNr z@~0kO5Y!q09!-*<=#vY!f3@g`vrP-b%<_>Aw68t3GZsNL?2Gs`&?GH$^F^H8#@Psy z<&}>#USbj>2+0Obi##Z}@I320F+TzO2Q{*Glcj8r+V+`@1%_@=dvWgfZ`9Yoy?@>^ zs$t(UUeN-GUuhS|R}H1kNvUBB8JDql8{67e|9UeH%jz1AZGEcvS#^iOi65U*0pT@i z0U7dZ&jqiJjdTx#Hr~pn!}nMvsWha$A(2y!bNRxh5gO`dJDBy?avsZ|Wju=xlZGM4h5cXNY<17dA)nY*cndDML~1who#0ccrlF1>_LKrr%`Wty3wG)fP~0{gX|r zz{87dUeeG*7ey=xZh4BUM^%!9TgG=*Z$}?Mj3TbPJNhbJAQ(0T$xU1^w?ptPJsXb& zQLF~v44#sof&7>*3375^Ky_|b)soF{lXF5Am3#jkwyHxY!bw8-$^ZyL?q>?pgc>3X z;AtmOmz;f_Bronau)Em$Fe@%_uFqz7^+e;S|1|}g-rsdZizgE;yC(1LpI(gtt(5FL zYN6T=ON@fb_1fDuLtB&pd5Qf~-H)0GA`JJ>g zle6c8b=f)e;cWf!F(mccy7JKo5nVRQl)ueaROSfy(OLppp9b-F-ziu{D5*;M!)fF; zWt0Z~*gNlZa1=QWbZ2*6KDHdLg*fE-{=L4cnGY1Lc>UZQm)_oVV7E&;TdaY9*B7#- zY@?tAk0DN@d1ONF8hp>1E&I8|On!pJ`97;KiCB$TQ8jjjwZJM2$MLeJD#BUD zAQVm`ce-%Nz*97ct<1?Kye~ZW<{FPIU%p**S=7a^?agXj_nk=eUHn?q{02SLeLv^) z{Rv0n@|KswU&{DQL>Y7_#*wG0rzQ$St>!#t1U zPQT?`2^9@ZUxPw)8ns-y1CZK!lKHDe340@g1TT|>*3k+jqGyATE7kj{U5sQ8qW;$0%BowBmpx;k_vG(;5jB@zjq;_DlC zvFq{lhn?i;@yPn)0V>t{5|h)1tv>hW!w(;DwmGb}u1=h5_0T zY*HNiDvr(*ojQwrx9o4Gb08|FG;hbU3xA_ARVUGM(W4A0jQ zbO4a-q~8OfsjRAsNUk**z01P&xyBuvv5iK&1}$>Srubdudh z2k+bSO&-n^qWOxMLm>3MKHmr>`RP~+BK8`DqyF*{7pI1y>PtZ-cFcE^4vU0eQmKtp zpNT;gYZ)C-)AadKVfB0MDwmp3*NZat4$Y z8X8NPuGR%yGuRgT^OWM5W2=-zoIFuQ|0G;~3)^lX4h^WW42cj7k4R7rc&;_=U%Wb4 zdF6KyZf6rqM|laxvie=aWU<|1oik>#A(EHqSr?h7y*UR`y0;#lR3;-H4U0;*t=)E~ zkz-6U5}fCdoVH?omn_%sbH?(_QYyDZ?uL-QfW@VUi7Xt!?n^balwJ95`o7b+IzN2r zyN3(ZN60|Ls}u4?PBohQkY#l=ErRx(CL&wjQ6~}T=v8EK(OksVbZDh6qA zeuAg-q3^@SdkD%FUJ@g3Ik@~699c9jaeZn^Vw7OgH^@g?Aj&fp{gt8pYchqT4$HSG zp5EIvR#|EA0fr1UB+1jZla{-H5)+jGu&=#%#wM1DT+31ZZHr{Rea zxq3W}eH;16|4$7EiF=Dmyrv}qgmq~d|NR9^4P6#tbqAqi5_7z)ZKk1Ha5JUZb>ctUw-@Mzje;QDKQJ%?DroP3Yo}mrM|Jo<(rl<-1^We3`jWMX>a#?1!bj z#py~t9?#nX3FFD9*L|YF;hIfwrWLu^bVsrodsx}8;P(2%7)L|s=trI5UTy%}t zsFAGBT-CMq?IkDP+8V$!$4>aQ&#q@6fpVf$2FS&HqRhPa#207!L*BBVQxBu6 z>rnCh{D}--3X{r%@sK?0aoss3|AgQ92PfA#vtsTsgMbsk=NPo58cvrvtn;`gBP3BD zW&hSJ+;2joiJZ@+orf=*TmtM(-=zGXPxf0kE4DSvCtdJzr~K$EAjY}^N_jU0|E(sD z`H`q=h!wO`iH~iLX(Po7-+lbn(kX>I<=6yvmFa zK^#B41=22ao(0b?9wus&xQHH1ofDzpZ_z2YzL})(q2Q3R2;qeo;glK{5rXb&*hFVK zNiC1AX8qr(tU@O`AHOzn$*2dY`+SBqrw;C=h# zjps^^#e9D(etDX%^4EWyP7~z#Xyr!IUnKKW$Ml0z_h>hZc5vecw(CljZHl;(hqR>g|yE==x8;Z^2aX2#H__Z{h&DTQlCHnE&Ty+ZpA8tO=gDd!St@#45 z8SSRkQ-O7~RE4gU7ITO3wG|Az*}Q$MYX=c-a`P)}1j<*?kj3@92Qq3yLqmYiIBZ}W z)`3<#4(5B{hJ#u%VHu6N#rDy-?D;FHLo;*F$BGLbyX-n$J@g0d=KEqTo7t*hJ06eZx^!~S zz;dCM&aV2uSXgkeJ^g{g11wKTb_>XEKMlp`7Eic#k!c~gus36d{B?A%6+KithOH|J zBjtS1xk)8ONa-P0KbtK4R%YE{iB>QRE>OosC;NEW;`gUnwS2j%;DAUc%k9Fe)bgq6 zpW?4Ln%*+e_*uKjB{V4R47rky4j(hKL6p_edhq)|!eJWr)^q<5l9~b`t{WFFv%fYBV-}+@@k8H+!6pg3K;__-)joA` z3F38Sz0oi24>R<=EFqdQn7sPvf&VIPK7}S{;!BsWw&knn^;FOYny#SiKMp#z$Sn1i zl7|ylRx-?VJhe-h`op5aMX_gXN+aQ`1g4f(*LfpOD2(>xYtv!Jd^ssDW|R8J7Eq~E zs;&l|wh$Svj?dQM% zVNg)^aMXO408sDLWA0!brz@V$^mE*TH$JnZH#w znq79dNXk0(rZZVNZ>QtZZj*?R8w&-IVg9CmcSv(#%7dyB%-qMavDMPOY|+-7W7~b?#fIP3k_JM@cuHPRT2pFX-h`#P5BE{8 zg13W+exl5Tw1N=2XCY;|ItGa;891|9Lnca?!oz(@;N6Mm(|ks zvO`fPy+)W6k3aX#ARcPj*j|P#b5ku}7&`2Kd+LUgA963{+I0T zeGSR|T#UIW>^*5xi_st&Y80B|`?}RyM#CkHFFVc~tMGMA6z4eHw1WiWSMU}}WMxqX z69@8`q_rXg%C5tZWx{$J1Y#oxSNvJVD4e2rjX+YpM#vo3b88|R>6$l=`W5-Bta&Tj zc}@A|z0^gI2h$1Rv?L}?hALH-o#2%$Isa5I&BrP{f%iEHdcnBDDlyZQA}A=xvaV&` z0qKQ#$|yeoAyY|=+5x3R$%Nl$iS7VvVoN-PS8lpD0J6;tH`tn995#Fw#+y945;uN9gA0xO9S3jwVf0S*TZ1-o}%fwen4AIdnq<@;B<`MGCgyKXG>gnr!;(GOCr z)ZJ3hjx5&}EW{dvtT5!r1^o~|*d+uI?=B;ALP;D@3Eek?97P)hFfjT~q)oCx4B zv?E=u_f9S`PFtz(jk!kY%a9GrnVH_w%8*lkqtqF;g?p20vQ zA*>1xV;?%f=1%R*dI@oB60;EDiL=%3dx+}c2kTm*OZF=Q0)!-THc^8of_cwN6Z6CV z#Lqem5mvb8k+$vQp+#IQEct)h2pUtUQa%G+J)HkDl>HTGPobfvZYhhoi5Y-k%H-#P zpE=)7Fq~*OwK#qNTP-|d;=k(V1fa6d%f!UQ#RaSSRf{e|4jAMeDx$9%mnB;P>|mqa z-BU!WmMlS9SRo=KJ2|Ka?ir4HV8K6dd#`IonwG4c0r5 zqVc%x;HKHQ{i@Bu$HvBn@U*fT4MN$AH)QcRnWsBfe1|yuKZyPy(is2zGh_`4x@5u( zL)iP#U9kIv!SpPv#j=cyjYWlcA0p}y;(Z>M0zv3j$8{-sw7$C923Qm4VtQn85YMHJ zjq^Gt=Y~Dt<=rFxA5M+w<}6}Y3bK{s%i=t)ELAfNhJ0O>rp?sEL<5fs*$ItQKs>hL8YA*83)>2SL$|cEi^chZ3mwI&+@En0o*R1%-uJd54}cnr9ol7; zu;ncJ+6rNM3GBopiMeZ-d<(bI1_CC{t=MJ~`1VFXrp( zM4O8nyR=}BZcxjXc1{C-X2)2Eo;SNc`q2x?`j3HT22FbOMz&36%c(X;X9s$A?nT~# z?A^`4XS;5sf`*ujz*O0R^4i1uCXwf9Ld(m}W@zCe1xrSG# z=_KxvP5pe-+F)l*vhP0ZyWwnbYLRgcJNyEAx2Gd=^a z7p9wL6yf`^&&mVmbjFh2n;@Cz4Rx?XDbMl#f$~S{Q&Z*r zmnZOqVb0O;hN<}Q7Tc|XJ=||E#5KP_mJ_yv5;KER@ZV+Wb(+RAerc%cCN5t(7a+jN zxsTxhivSk{w7PX}$;Rg9=AS>WzO5tBlcLDl8d=kaBL^x^uxdlOxw(Cd=$O|G=YZ9O z>lQ0O(*<|X|3*Gw(RQ=_?|PVBU41-nzi=YKWrPH90~G52ZkEvqASMJvU`bq|=~Ay_ z4#hz^S<=q`@5+SEF^;*@!>RGP@9|%$SxhfWWRUyXyJN!klqSW^h}=nX6(=-qrZjI6 z5KQ~tn4>d@UwIdobFhp+I0nBVaYju93p+eBpc_L3R;#E$L>!Nm35iw&y)dHe4ejXM z+y1Ql$9dtS+vfS&#=ptQI6-Oe^6ICB@{8F&ok3vHJ zU%!e*5qUHL$Vg|WV832{;{f1``2q1mWx-yS+%h13cMvMFsV5%A(=7rD6%|##%TG@y z56{Ej-yb}_zeEG`@zD?l!xaF!BA#Dte2&QmAN9F->MZ}0AqHTzvwx1}%yD!;W54{ktqWovXH;mP_3qj@B= z%ZPbikF87QE-OVQsI)zPfMOo=%vQXs2t!00VUOTDFMmqpSX3MXb5 z{uRp-B06C-)rdcb;6ljDtmG0qv{mmI8k$`SS7G?fqcg*gAJ;85GWa5DOgFk&YqA@S zh;D>nd=BGO6KH?NLL1wjJL$4ylf@wSTjquvMqossaya8RS$x6)z@ZHTPZw|0{V4ZY z5%PrZ(=*os3`Z?m%V8BYy&cNxE=uM#T4*JDb*q)rLoKc&WoBTl?0fnRaESHp$+r4?^JLuTHA zOIbwJfXd!VKgv&y)T}t$5f(rbV-Qks#Zc#-BHG>hO zBfdmDRwbVkIWTSQo$pc(M==_U1jVdPQqq#dWR)!foG}L;1b*FoN~&ZvXP!iSOoM%^ zp{F$&p?>S4Bozmj0Sf*blX1}dR4^g0eZIh&S zaS#Pzo-y=!{^3F8BKnJMDP(%X3yfwwVkp65$?UrSdkQ8U?nuc%Mj^p3$|~_!;my+7 zF*e7;YdPE|Dm~<4LZla`##^JmyG=NxZLUij4q1vd*Ivoufsb!9so-K3E;{CWV%-C zO_7`?^gXTs{l4Q3Y!7)IwgQkDSy`{Zd+nByk6lRU4LJP;l0epTi}5A3Acx1X@JJH< zj`$;fLFa2=e}5P0EDq~4P&Pox+j~bywyX)z{W^RnnwFaS_x4!zcO5_m0V%XS%n(2i zXwE=&TWf3UDWf4=cQb$>8TG*pVl0EiBN7slXCp|*;X~y%0t}YAni|=m2=wB@LP}yH zIR#4h+UlxDBalG#+TBK`A^Z&u1O9b2-X1V_@vP@Nl=wsMY`$10U_ja6z>f$ zDJgl6Cfu9-$vf5H3Y50RYj9=7Nb!5!TFA&C#Qg<1kbh_pF~E%U9Elxe3aaUDTie>` zfv5PXMrbNB#@1ezrFn2@AZxL-n1+ffH6@Mjlbn^+BX<`^KNd!`r*r}iqxSsT+SnYx zn^I*uHI9V6t61Q3KiAF3Cc6R41=@4zUEagnpBn$E$<96D0;eWzoN>KNPn+oX zkXU&g9Rh+dXcWu*H+iujxQK#^^_w;PKS&QAR!(YWCVfR&HwN;kXsyXe;`zB9F-kXJ zT+r)ats6R(P=N9bs4&mBf>$y9k^f2o1d!aN1pHKd(SOYlZMeoviEkVq6Z7&;(WG-dKftrJKW7?{3gWXKUYwxzPn>4Ac+l@ zSy(jbj61T1TCjB&8xBKp$P~E?>e|BkNcIV}s6>$Qeq5bTzKNjB)5D4%ej#Fm#Y~7Q zLPav>CIJjPj}6nUGFx2 zzx^fmDw~coT)zc0J9qy4?sNXN6-82-<`flTR(sPyeub?1u%LkoM^TFnDoW8==Z^RU|5+UyR(lb{K+ z_fD39xB}5}anRQwD1Q0+aRunUK*3GubIv+Ip8{2-3JQ{x8o#EJN%0bhFk_gRNG7)RzF-36F7u~8+?yk_N z2@MOQs1k#~$iG*r3oML?KtSoCL-+J-<>_Saiek^;V`!K-xNq^m%o5|K_>A~a>c?1R zsbT3w+ska?_8szrSR4wJ)VJVdMRUCf6{w}SVu_keF`7! zY};v%JL*?4-0~aIDmBw7MVp3Gqk(pFNacO6FJ?kH-1<;QM^Bx|go+2BfClSxh~(s- zOw#^oxkT^9sWHHU*s;^A&&@~v-S%qyp0xC7Y&Z!`idoWlsq9fg8Jp&dCL-K=Y4!_p zpnr)we7B2A;8y-X4|0mLtZYZm{}J|%L6QYq+i2UiZQHhO+qP|c+MKp+bK17eY4^0} zt2yWWZrmUDjav~_k$YEaXYR~gxpJ-N!4l2DxKjo(OpP#vbMOzwS}ZS~jH4H>r^%ke zcHX+@-@7**retL(Q0-XCK*L4P`1}4VD^RGb5sj$>hnqAI(74Qz?1;g2G(p!S@(m>i zWiA};-&m$m+4-Uf7Q|A_-KQ!^N|&0;M+75ng%H{#{v6*$@f^eetpA@6)p3M*2@r{) zJUgKvpqiwX&%{sznHjB`xel#3$lS8I3i##C+yY}#$8^vhgA$w&22dhO2=ir84kI?L z5GU<1t?Mp6EpkE9_x||^C}gBfM{Fag;LLA4VpszNALjs69G%|WUhZ7| zqeh|f^~!g5H(Q)S1o-&yyMg4eh=`1IbjO%0t1K)mDypi?-;KO;v~MFn7mmy7_(1`cLH6x$*$ zp@)n3hKMFFCuaqvFt@dx+YkIuU@;rVI_jZi(cUtWWr5wz6X@&I-xpZ8cL55cGUpen zrmS3a1^l%?7z)@I6W6sbVDy)l0~`ZUD=#C#k*_q#RHcXGX-mvBy%I;e>gp8m`}QEF zm)F)f+1UPZKMH0H`~?j0fq|8Y&hG9HzVL?&{Vw}cS1H*NbjSb0F3+_q@uXMpyzJJQesi|9>$m5n zpSpWhf(TY1488ScQTGR4TdyOIpv22*0a^wK@NIkUsDxQZJfzpKC{ZhnRSa>UJTfwq z-H#uVy2bKOf8De(yUiCyLG=u_*UYv(TWq7tjJO>Ae4engm?i(>F>t!scr`;_=A7py zfM`I-(kT3FLWA<^Ke@Jq`b4cHMgpyZJIkAt+&t(nyK|yCo1E;Jh(^Bl#2VB06J)@I zb}~IgAn(o?b@?2;1Jx5=tZ&R&rTNYET0_{~z=97fP`2Xx!+ZNO!0!uSePN05p7q*+12X z6xpQV@HY%KwdZk>eKA-`AR_mYcV3P}HRtRC9QdOjiouIz1j6FO(W~8!A4{=YmW8q? zvcW-rbZ5UK1{e=+#+vgNTBNe6`1ZqgZhA~&qQYG2D&p8BvoaXJj(Wmg4+AljS$|A2 z5jAezC@U+=%gc`qJW~MZLIGf|q`S#ucVYlt&Mg2CAXCT&WgA0MJ_i#t+k7z!WyvYa|tt_2bm^0uXjWl8Z}A0O1W9Ha>3f8-PYAnMgn`aDrk#>Evh}A43rR zWOEb&bGt*1@Cq1xX=!Mt{uuiJ#BYE-?c~IS6u|1QqJqdp3jpKk`+9dUFyK#p23VMe zhD1nebAtgkyr#*~f102Xll}r$sj&>!{=uCdXMS>W_D4qTg_>OBbq?*j2Ki1`(aFUt3Ki-7>nAC0~gV9jq`?^<3D)%1?sTa%IBnU46Avd`mxY`xRa>KBCiByL|o&4z&CF4ns=_5Oj9|I z%NL6X6%lAl`oPNeC23?qA^w!+`Xdeki5WmSp<^NZHaVfYoI)c|nCj%SD9-YF^lWMw$HQIGUWt|B_no31$vlSj)pk?&F$$Er&~g8P2s zk_zYii7wDsFjS+K zb0~PJ1$-Q0qJmuNs@`d6Hb0j}r@Xz#s|Yn83v!uQz&kS9bMX-*0mMoG8%`rHe`&y4 z0YE|y%y8}n2>adMj}-UR$~!Q|sqs0UsQbVY4u|vH_}u#dLH*(J5#D2y7O+DA2L}gG z7kGPnKWOm)Hfh%;M*CkGtP=nx9#1%BVaXO2rw)K z<7F5@uY*HEGJC8;NGm7+NVh?gosjO4fMfx-q!bd7LCwI3 z02)3eaKL#RM2M>g0>Lyq0s;ZMja=O5!~ULOy5>kG9fh$dZtUz+Fr%bi)Su6V7^Znt zel|EMHq9J?bqr3rT1T4CfCZmkMeFvmkOwzYk-t%~njHQfD4N|;O7PZ%C81vPk2il& zK&GquiO)mX7~6jvOkwX9k|roXaT(PU&u^8*95B*=Wuo>XRd`$)!y4z1k{YiA=AVR>k@D!Z?+ zR83e?o=|sw5=iP}NOa!`%JCdij(s_zQ33)j!~lQk{qIRwkd@SxdgW$_hyb;n9u#2Z|Kv2;Z&PTHa zf^!9(CmYR{lyaFu0`x*&jm5Es9i%8f|}Xg?HXWJsvM0Q7)BtgmBMfI{{fO(AzJkfidEL$mXFlM8;!@g!L?;n8bSx*kscHJ&Jm42sT$}Isg(|yW4|) zm*QA3(;dK1q!cW((d)~(OOZs{gTANaDMTUB4RG}WJV$Swzs@XrzRMU2Iyyj>j9~|` zJ?8NHwoTfd&le?uYJskdbB2&pQB`zyV%q}NvgW3y1_&53E-tO-!xVB^z+}`2p@2An zm%ag*X^ca){$YVotCm$vOT=Lfx=K#~(Chwr6h33*4rT*%I1Yeqw=JNv%AY*|5dn%C zEzocbw3=BzE}@cBYlpojE*UQUlHNi*t9Hlmu z|DYh6EfH4-h#@R!05}(CfL_3{9iYvB)1t$W1*lP0^*Wr4Pp7kJSO@BBYe%zh`~OO+ zEC$pB|K@X>m~VL~!|a0AyHO(FOos2w;XXf)~@vVOlCzj3h;~-KPr)l{E*P z@049?0M*H3IUND?S6ZoAZ>@yy2D7T82*j%-WurD2Vf3*?wJG58P=(= zpW|<{1A0GfrOurqcZ_{!b{ar}ooEOI19E*~38C1)Xc-s~#uR>I`4!$uN=OW0gZI10 z+uB|giAEN7td|8zK>^zp!EaYoRhjIn@XniASk(PpdROqJ1aIEJ$@w04Xnkr^4qt%J z|H#D_G_@p1xN+Y8NiUsEA%55>@A-r|Z@!7HuRdP@YOek*ES_9Qy9us>+G9j&SrI1q-SoS0@O(7( zM0SeH|Knq>_I&tY_Hk#cU}uc<<9tPyPSnD~A~1e<|EfNv+c2LVGbfE>uTV8^WXKw2 zF((f5OC@n})j4g-l9CehuaH)1Q^ks(?7JoY0tp|Q!XeL$j(MAo;8{b^B*F=@Y4B8z zvfJR9WtcvSQwGvzb_F9_)g!}&Qb=xCL&6#P%{j>#vN=5r-&W~@R)yN^$=2N$t8z=4 zB$9B07R}5l@;1n)tPUEzsW*YJvt6_@aG;N3W)&!LkV|b9 z6YkIh(tmxc z@fE$0jpce^#fCc7sbnGd40{hr9X50vKNpXYM@FWArM1A;(8B5)w*217!^Us=HkHJ# zL+1n)R6kKeht#2&iAUBcK#{OH${8nLVzjxjKC+o1q}|YDz_8#Jx9?GVT=tUjw%u%B zfm4;BQB@mb#UXATQx)Aj!MJbraLzd>cl-*>McJRJXksR4IS*CWU#O}(0k%+<}s+}Iu-5OM?{NU*aLF%kU>@bNJUySRxsdg(GTFcJOxaxk+1emS`Tzxs?K z08&=7|Mg!{M+Y}^2RBzDb`C&xDvY8oj!yq;WO;KlYvcd*UnOG~Ku$z#EZqOeNyXgN z(cQ(=+!atiQAayR7gZ-?Q}cfps!T-OtZdBxEl-vC-vyxFL@ELTjN)EylB#aTZvWy* z{x=@mf8t60Hy-Q%#FGG2`(IWphD=1vod1&*i{Zb#*#DCkqng^kQdqhElUhxUnTVN# z^MArDL@dnzO`@j83JCveNEJW=HX;_5{~Koim-s&k0JTzbaWqvmchhB55|dz5Gxu_1 zl(sjvG#Axp)KWCDF*p5J6$yJLA{M6q7AIlP3<&=>D`~)ej{lY>4YD#K9>OC!>Ho;uThAY7**X|+)ds7+tjW^EL@CgR_^vD zM66u@Z6-ArYy1DTgVem8%o&vc6&Dcre_o=0z5YKhk%YCKo4E_4gdLzHF>_N#Gjm2c za|cT|DEmNW2bUW*7uiJbz54lHB(R=D?m9auF1KpyRWD!;^%&!8QzWna5?el5q^kJnvQzz z`S=DzjyWM?b(%J%;IsGm__yQi-Y>2^1;$BW!>wp}6M_5I9HKre0%;l_^s+z>Xa zEJ@ow%voFFEDS+`g4FFvC5KEvZ#p2GdqM<-gUZ@CwULEu!IrZ52(ynQa!j+);ObDf z{-=sW&78RYb`+714>QzRqh%WADsN>9;`Q}m8eUO5zW?gl3cSEY>#`PuB_q#Yzq;5ql&S%zn)0HMop!N~I=mNb2-uyZd)zZ0QNf z9OPl{nEWoi$!B=8WN**Q`~%IiM!C++75tLu?GJNt@P2o}d>c)ek5`9D=d}#t&)!TS z9eb^$p#p4`=OjEtbe`XQb9<;?TcAsP{%34}S`TAXh`6V6)JS?3ky$IP+{WMkuw(g; z29!1>feGYTL0X~|gL|~aNP9!CYX9iF$`|t0!_;KhJ3aNvr$2`ReHANN>aUJ0xPs7W zDR@%Z^shk@*Y=ocE&SwiX`Fa6`ut(bJ^GPHm!o!8*LDLC2kPc*B2zo)_b0e?5Hfoi z4+rB(m~GRq9^Z!jT%5)DDc>}E)O}^5pl=@^#9xt_UB9m-UCyAxJ;kd}1lrX;GK9no zXH7YQ$=KnWmpMR*@E+z#5bxn4TLxQmGNLq_o9fdR!AG_0TxWyp65M`P%qz%=g_v!N zpq>3_4jq;y&$xB|n!D7N5Ep>un&vLJ)TRnw&|d#Dk3Z~`QECZtRyGaA_!8|NI23rmEM z7e3!t#^!^Q4aMiNKEeo&xX)8a&HDvSkB&qkYdRr>n&g#%lk><@837c5?7;(>zq9%t z`4Q_Z4ME861j{CD%DiDzlWoNmRo3Ff9t?8KxNPXQ%7Rih0w>;A9F%WGpZh80XN_7^ zM~RCA0SX#a7KQ3`@K~wJ-8*FiB=85MhTd+;+P%qE(etQ zK(jM$SP-6g9tfl zUg%khAl*)6Mb6@=?qmW{`w=JJPSo{9um)}P3OwOe;0K%uFrFIVE{J^tsOB}6eS%id z^KPl@@XTe1Re|ydY3l^5Vld+XqFP_#>i|Eji9{#09soI6<4S5679992ib3gXDU@>v z&KV8Bm;!pB`1e_oo1P1kiJI$yD==&p1S(Sj+JK1XdmwPevlMA|8jR7(l=1o-cMh3q-Rh|=%qGix;buVhfvZ+Ssel7V-_iT7zIqa$VTXqcsz5|R3>8V}e-6sj z+Ixc&*6ztIz={H?7%=DWVqe_!Z0$tkc}6e>3!uCj{H?@Og`j7vRI!45 zzLZ#<+8NnY=yeN+xSrIdyP&)^2tI1x2)?Bzss$05+2#hT1+IL6R(+`~j~!pZIffzX<)pk^_`IQ~28XJvAW%+UxzwnW<- z^;Qs&bh14)aB{YN|6zXJy&=YliQK~L_C#26@yy7zF#q?pS*tW=0=R)ngjT$n&bQ6f zy<@To(YeS$#hLit+9>zn&qw5?`PBQ1DGS)x5kBKLzX@{H2v9gJcdmiS&_^;+28k9R z_0CrpZO}hYyGs#};|nylRA4RT{KFB^H#9Fw1l1H&bLiVn0%TV(8=>q3!zMyYN@_#| zJ7kh_X&v%znfYU!HnjZaW$rrr{XdIP;?#W%A$bVMqbcEUuKFPDdGrK?l|*L%AChFHVZ<_8 zEnJwMT=r1hv>j#igI!!L16MhWP<*Ib*hmOnud$H9lcX@(XJ?zYKnH{UuQT|px>UMcnq;~hx+J@O z64pT3v8Q}uPWQTh4h%T0=H$musyG>z4u6mlqW z1Wckdv3ZbxhQ=)%6U;D_&94P5aImJ*VmNLW)yV8Q1e)`LvRzPK6@o+|DQiV}7}1oX zgt!CB{jVU6lT@NpV2t&pj$zd#h{TsVqreDs97Y}SXoMyZj3QyK&~nS{)*&X?uODA7 zANEIML$AKyF#NM<)y%iYK$XC?r9Y_;_3*|S;Tx!$wj5&NL)ffizi$6{PIT&|8LP4iiy^51Ado`O)KgdWIH1EwA3PNsX)!2?dP-Ig`d= z-yHOa1)kp|lfh#ZAFMR7(()f-L^im`Sr1j07r#t@n##<&DbBhPTkbwCFEn$|pVt_G z%2d?ejNSmSJ-Nf(bn-bYC*R$=*!Toh9s+n8PEA3=x-ZbaW`H;ofhunyiT=okqd7o& z84}p>gNFp?06YAi2{ovukcRI=-{<#6Qdkk|Y~lpf+be*~Llc%+ss*~83SE|=^gpu* zvK;?I)X&4EMnf5mb`3OZoX5aE^Y;LF+tb@xkPt6#i;FAW)eQ<==39MAM^DpRoe)`O zE2MBIe&kh@SQ&dn0Z34?3g%LwH2;|TBrS%+Gr%imvGS8T!fr`G%`HSV3k#x2W-^ypHC*yd*L&W(gjoE( z47Jpz$r7G&SH2!$H?B|mRPjh&{<6Xg($S%Frd?QNA?lItmp4&6@*gyWn>OtY-0By5 z1J^d@K@Wa2acT!RbZ)jv9oRLO&t~}w48t|MH4U|B9aYfy{w`N&w(iZi*;Xh^8_m11 z2BibykMGjc89W;Axw@-`Tmu{X# zi5}XS%FmQ?JLE*fRBe$}ODdSxW2n*)BAZCD8)>8rzG1)9v?Zil>wp!H4vZ2>l_lw_ z7(vLii$-cla%)c?Skyv%#RYS|OG;03z_04ZeB5Ml~@U8MCf5q}T@O^LJb zZ5+$)O)quYPB8Z=bA7^;l3kq|QWm8*kJFUfsy>o#mE@y5+J|*7L0W-bsLboU$WG^7 zYO%GhfJ<2QP23WxTJUfjQ?}c8hx7MxNd%3YeR$Qsaf3V_Nx8v}d%j7z5y2kbA7?O& zBZ8?!_RhI8ZySe$ze)-MKA(RC(h~^qaSQr3l_7yXJU!joo*D=+K|qdREZb|O^Sn}Y z#OYKy)aBqC87IrgT;BFX*I-kVNFT8cJ&*bK*DzN?SDNy7yeY!3s|P1<97`y3U5m*j zu2i|d@_?(&=fvxkt~ZoFvmZhEdsc9wq8&^?G*{Bdw#ZhACU(AbzisO)bjfkh+XFB zqJqltW0;zO;9wO$|0}m^*l<^iZ(E5^?=+;;0ce1S83>9>9=DcJTvVA(PF#7a6(sgf zkgzV2dPiPAfE_ODtNP}fx;=2xu>kp{KH;N$@kQdMZpFvqd7=msCVs0Da9oUgGJN<@ z;Me^0%%X7ui-vfhv=f#Ly_dJ>$-ZS}KZPPt?05r}Fw&uG(o>Ul9jjWGIMPEANZ`|A z+=o~uT&P~^u}{Z3_DBCfl=|I5iG_%CSiqs($ ztlKBS$xr74BOF<;)o1$3BA5#HsiL}ac0Dj<^-)b>B3lT8mlma1v+_r4HOHBIg@GM| zjbZI&;lsME0hU#l>zVN(!i%zxX$TG;pOidlbrow6#_#(BR-Kb`PF9^%cH33c5*AkK zBBhXWQDTdqd@*`Rr93hbwefY8{A*#$si65aB4eFBl;!zi-! z@VXf_`L*qI&Z+$Rx8|C4a!~xhN56D7T_<%>_;z$3)Lyp2?fX+NHoXaZ?6*K}x-U6V z?nwjXdw;TM#7_BK;Og36mR8Qb2~+ka1$M#d*F1oz_V%r(;n95BO)ghppunzUKCtd_ zKggS{r8dq^qh9IU!Ob>H6poS26ir>1Z*O06k84&xx5lua4n7A_T{LgloLAhozw5}s zp!;9#$h?}=bkRmhuIx^97~g)H5uXdRTFIqIcrV?2RT{Kie|^(CX)9&T8#;6@ce&Am zA_kQ%R5EMHPR-a2aG=2%XBpnyIvkba(*QdZFBa0He^_-@{+w9Jck!KpNd?jtu=ug= z&$o?69u}7Q(qp>$#LZ#;P*#dE_&c&J(X;o5L7iT={JWFpmH0Xqaf%2(#OfMVHfo8E zKq%n=8Cs;*?l--GH@AE734*J8FSPtmxFcCog{Po57fKzN;1?PU+q5;qLor)p&l6Kc zsIR9KnNDoGAK{Z016OPqEyh#U8eVxZWI2m2X*oRc`j{@X?jAa}HAL{t z2?kr`{&MyH6b>t9$)^}1h2i)yc7+Tuu2*16%KWHKn-mwl6fz5=_usHYM* zB*rffGbZEPlA>pb0)un;31I5L0V9N z(7iK!a5}TtXU!kXvZ1C(bp18C!-wzT*o7IBCA2{-M+IPT?C)aw6}~NUzUg zso_v2+cMjVZ6W8oRJGJ=SAntArxYvE1x{GmBP znlV4)ueUQ@E|2<7IewObp63&Nh_vc}-Q>DgQa~UQL&0#C|0Id%c#g}f372+S7{9IY z+##gsu8l(ygTt$?r(63&dYpeM_lLNrmVi$$fNvRwZ=%FN&JMY@ldVCeYt+R`DXL7i zUb8-b*(>CxFKq;OT~z9cVe3%me2W03;2p`F;yIY^E4hFCt}Fph@!{oofwxtwpE8@W z+EC!@Y50$$AoQ6}AD8$0SK!{?_sTOpl&kUj^@}60rgy><^|cTpIPt%e1pZYPISNR` zBt?a~QCSAV14l^qh|h^PLzZkz z-wy+ZO=2H1(LDz;W>6bERy(_f*R{UbpAB^f7_lfdxQ(1+Fq)aK3pMA`B3t`Ysx!1& ztP(MF8+U5BD1?9$l3H!A!T+xll7IU9|6k=c;9P){>3=lc z%tUOQ>@1xBZ(a9tnzx?%IQn?t+3YlM*mwdJ$e%t)L{714iuhIfF?>%p2V`L(;*dg= zcB(@ZQ#~in-zF^!Rq9(^<6@~g@nan$VoPKkFbrVg@D7by6MO?Bet^#WyZfip^E8*+ zb@$Wa)K3`5ZX#Uh*1$PFN8p(ctB`;1f|HmU0ATwt-}C|03Ib9_7C+a9kStajwRPCmL{w{Il zMcQ7n%)(3&jz^C}dW&4B+WaC*I=W)-6qm@lt8LAKOko-Z9%dKeIP${F*3Cph#;#-} zd(#0vDo;D>sA>GfTmXb)$0gn}Uj7%4Gb1m=`ZY9IZFtg7+^~|9X0;k?ElE!m`kB*2 z5HB1dr>GP)oHw|HIPZ1Eytdv)FoAOhI4o7YQCet1XDw$j-8{rvCRbID{@*fBx!9T* z$-*|bIVeb6cBS+(o8z@ew-)6M*1P_Ksw@#V)Z3UZlWIF+jTm$iNjX&Srq*-Dv6x^I z{cQ~L!-Njn-_eBPl^u)(QIRG=Ug{o6j8h54ky@b8g0CeQBFN!gQ4*#tVze#7kZxjh z5JpH4qy)dDM!C#PQ7BBaC(yM`y0j=LRH3ntMf=c14%8BTmW*&@tkV>-o*?4OE1wW% zO5R$cG?ol_WC)j>d4$VH;h1%%(Wai?`S-((!b)I$NJGh>RgNX(*r}rESbixWv&9`! z2S+TCWlM0U$+BAU+?4yf1tCO-o20H&ctnjJ$~T5-#P~HD*!@%)mT!wheE;>kDfODJ zJ4(N){+jsX7nf=Nwe;C}&$TE=HoZ@b)`t4aVfX|3hVIW8HfE`Uls@?La82uk35+B0 z9xMuoSmLI?Qxj_(l6g{iPORco2awvY&JU z`H%_!86O^BA1^u~4T^M#bBKVO;UO4RVffmC14zM`U{CyzrP_)Q|aQTO)9j9Iq&*V380!t8<#k_TIjUiB|d<5d>==GcvH zof#(9wQWlRPR8sXGb)eC3@m}QWsNJ#HpZ=sHixxzv|Bo6C%TYTE6aWg@`%2<{$>6P zj5ePw*_#P>Htf&|$1?01W+G+w7TXKKBd_oLhPl=sfrH1Z1 z@mJtXH=IDi*1UjtWLhx$Fmk9I37<^Ey; zasF77SdbXDEeDL9&tjYJKhLQncP;~G{I{qp+plR)HtGEoZUpu7dwv4HF)jth*^e7H zO(~U*BF<#y6!{c=SDu=xn!HvXWnOr0)XiA!4B9B#PTLUL%=|~vaqK(Q4S$$#J=*QG z#r9XV%K%%6=`+fc6;*lUQEZ%TcY<||U!(4<3Fje|I3&cn23(cwsv7gwC2Ufp)C|5=fE zYL!V*S&6;;Gh5i5O|x6mr2^Aus_i_oMFz**2nJ$NMqanldn&twoee&e&9PSIaLo3! zD+;$PE2pF~r#hNfw5?<#yX!-LyEK(e6TmdlIh@M3FK+-vBnXxwXrn?DLIu=Xi6BCS zh7cnL#*Hkk?4+Wvbu7ex8T!7A2~ULpUrC6wfHX31Yb6ow6`XQMLViRpGk9warZX?~ z87xu6Za#0-QcBk&XS$FuwvRq3;foWgzy_>u&BC)J=7YLp1@k^H_q4*vm$2)ij3;UZ z9I+_UBjJrD5t}R|%aofzoSZ>pcoK=G6PnzDaN&kjasg_#Xl%9+i6u&COou-R#uHKL z2E#p3I>#J3Yr>OPr2YvY9q&8tyrj)9XQ-0pGxV?huIxJi&n@p$->aOuH0)9Gudll! zaaTvL5HT2%_0H-lt9x{D7iGwhT$VQ|ih0$44y8Fwzr-*+P`~7;*C2OE=PUYM(S1o! zuPpeWqh9sk=5(h2*jc)to7Qx#p&0%zUd;MR_s^$O$lhWy7R3Y-g^h$k#meltYZz|qf6|UuY(DW zOZmmi-^Uh8D6v+cFC$!nxrh1)e-#SPGg+arAq<5^6-pyvv%zPB&xB$KPZ7~rp|>Dx zt~0b%-&k~S5ww-xnEP%C2u!v&ecb@@&LcF1-XQTVBQy`+K=HC%w>Jo0Q{8#A#J4ef z#NpeHZ`^aNj%|457@^vy$bSdkT=miiiszW9+Gpn(QEp0e>?pKhd&JDNs7k9wCBcE4 zMNc57QWk}%MZu^d)5wfgaHSWfsKv-cexbeCuHPbsh@b$E7GZEzf|(b}tQVkA&-@G* zleV>{y(uLP3+IXKlA^qz)Bgm%px7ymd`dG|)P0xgcuEgY0lpORzhDG4D}+lKWD$#) zWWr`3HTxL{6AvGcI2w*Zrek6j7nkmgf-8e)9>#J~*Ar3uAaO{poI<9pLMBfk(It_-`2-PlltN}h-1l9_Cr-*SnR00VBc^-_U2%9Z30}0%|kiI4KWgeJEgz_9t zzmV1~G=Cn}N0iVCp5KT?E;5S=a#e`OOo&1*+?olri3rzX*iQ=x))@JC07VO;GYN9a z7`!H|wSnNl7<4*(r2$Q2Py$D`ku5D^!AYjXD_e%tnq*W7BEArsErvpwP5$M`zbWyV zT41*P-K*df^%Jb%obsJaF#3=xIK>JEzR;O1e@ux2{^vrPLNr?x#1ax0SmXirbtvKi zL~fX>6VB`~xfg=v0oZoLM+2Zb`4u&Mb#!%u@M?>IHbVr) zWnM?{Bmi3mdO*J6#o32?K(OHr<~w^pvLURdntewJiC==@8Ro}xK=j-n*)NFxX~(C| zfYiAZ!ehxd?ST7@0F1=_8@`mi6XhPzmueEe?7bta-CxW-vEz3R1XI3Vc(?wxDgJm< zAKVFuPJD#NU;-o2ewnGSP?V3#3J0dSljGd+ig#cFzfj-M6c3kjXDz*03Qphz##Ome z=N{Gi29{n)6whS&LK$5FlUbHudc8A;;hDBysO6)4{&2e&!``X4U*y^2M^Di0gGk?a z?5n`p9jL+Qs+8<2GULg3Ph5c$gW$=@C-B*QWKW3TVfrU?{h?(~cEKY~z@Y6Ls=+v; zH-G=3-*+14on=q5;FQ|Px#*<-8b3YvB30D7cMvbgh^&@;_~CT+*DW>X@)6v zy9h&L*H0YXea>~1{!yw=1l{u%1?CO zBf&=4?+E>S!*%$-@jLgP*TH`W^IsufhW?s3exiP4f~^0!$$VxF`idU{mN*hZ9TJ9c zZeZpb0pnWM!n1&i#Em3{JCZtbPD94ChcRiP4r4B3N?;aus-ccKl4Hhmj4`dD4t6dh z8_QA2G?FnbrVf=Zqoc@i$uyZXt*Q*NE+bK3N_Q%*j7yb6m*Z4-ZmNvHF5^*PW@lPj zreh+%mI$71$N?`4-x;ec!%$#tb?&MRWtG#PW_flht4!P|1D<7pmnU6X56gjC8WFpM z`^wKR_Pmtql~r8nerD^HR9y3YhU-mwCwKLtEad& z{_NCyf$cBCc#h6r{==aV_Y$J}z#$3uG@=9fsTB7XMK4#@rIBG_wA<_**I(9f3HLpw zuf*}(_YAL-rmm^_?6PaNF7@i{y$cKTMnyk{_Bf`Kq%Ms1I;Ok0j;yv6z9pYyfoD_d zt!0DV4Y{r{)-7HS74vuYB6pV<<~dAW`IKAo_qb1Mq@=R`y{n~z$B$0m4RB4F(^cSU7-$-(B5+%BTk_ay!`fOrZt!W$ z;b_ItD=AQor+cQEPHxTmSmrfn`^Wm{(OVjt(x#D4>P|*ZLQYy+rZ=YqMkk(le@^ig zVBU!cBw!xotbhf87DU}@>b`M!Qy0+f(J-d|cr-B};r!)#Vj-YzK*X4)>jkhcGho~s zY+q6_U|4&AdBanjI6HxTIC~K9)KpL@43kkSOT#PGUY5977KT&~XSw{Di%`aJStfd} zy2N32H&H+OYeBvzCL9wfUgL9 z0mhT8P01L1`Uek)GOVoMZi9w7BZ*xoSp z00)K$4jUfOzv6!4Ck!#`xtB96{SCozES}k-t`00*f#!!JnG(C_Q(!kv?w;Hs$d`Hd{+bbO5@}Q z1!ku=R#{g5sG_7xD2cCVidyJz8=qgR>bpbtGbAkPjeaHjjZogOc=+D85&h?2XZm#~ zZ5NbqAkt}-uOK4PNst?~fJh*6+FI;KGia9L{VUuz{8?jY!SJZS`618=$&*Q9FcJwe zwhv=GL*r>;3Z2O?|BNsMayS<>WoUG4NAg8|LmbO7%cwWFebO&Da?NDp4#NbZ4KuX+ z{XTE{&V)D$0~dcndou}T<%J2Xl+?wDoP1K&zLEtKF~TiAmi+Am%f@QV122#)F^W_Z z7W6EU5l$iofCaesvnV~=u;#wss_!B#Rv^}I8fZhWgOIn!Qx5T`jd=KH_ts{M*-Qi0 z+O8@VJQ#>i&JUVNN1E@UqVd@lHi5E)It(~Q7tM73*s_NjQ-w7RLh#mA z&O{ZJc|R)^#_vIe>5FmrPrV|z%Q`9cp?VCSltedfgja}^+0DX!w2q4|5RJ()kr#q* zrVW8eQNcyRNsejRONYeKQ=SUp;L^xT?e8D9MdYH!v;sCLK2+!TKBN?oz^oa@uvi|f z8C_b(aJDOA!k(Ys3Y=_`k9oB^ws!dr6U=TgQ$=2Wt;}S56H6fyyD>)_TqhhQLa-5W ze(<3y%a#s8aW#1DWn*(76!p)!mvbX3arEQ<7$Zt@%&HX2OQr+cOrp63YqT!fTNj}g zU=osf4#w!&{JevjX@mf-8>OzL$(82t#bgbZ-^w$zI_NQFeN&sw@d*~K4M5e70j_tk zT{aV)3#S<#&hf3Itw!@zx+M;;AzXK(Dz5P4W0*z$bTO$~bdyTuxZ;~ArkSVha7jwy zh!~vbWwMhqSQt!1n<)=0F(SgrKX76sLp4H3GBnCP2S<(ZX|$Updo&>uJq_=z^**2MK|hN1WZn z(8}A=VtzpG$KK!8VY8K9@@>wUe?H^HI+n_>`#w>*sY@LI4ET<2u;CtyTlK=(Wfe** zE*wWu$xkEgK;Jl_f&`9_utYjDQ$?OzZw*J8lK!RQMZ&X0GSMOmXR4rnlytC~@nB_O z5z;p>_$6JXqtH_(6|>~>tJ5;yckyjvh2=`kU4FAukw`I2Sh;QoD~ve)K-=-aQ`M93 z{TFqb}?yN z1@VqXUzyh{q8Y;iRrOS!67S;~sFD&OO3s1s^|jw?2}I(ffy?tr*In03;4d)|Z7fY= z9cIuTVdW_>T1i3i_&B%^3?bIfFw543rpd;GUroeUmMdhMCD}5$6{MEyW2?($vH^bD zNfYFSk&4+ri(+JoPsuf?NbTS5x?4l4+|8{%`K}9`tv>zk*k5;>;GF%qGK2cWVMKFc zDTiB-ySBEzO1>}B{IQ{SPHS2}&H?WO3MIvwN3=1QRN#PEMciua!7ReY_n?YTe7I|; zH)}VCmjxe3kLEmL4@yj(2v;4W%Zo>#V`|Uvx5m}2(4~5}R%k;B+zO9)#dajokt?~d zhH<}SaQV7awzHsCGL*IB>a9f-BefRjM8{LBV$?&;nt)$$;jU~&2Q>RY?=X$Hrc(DCiO)I9a5qZWslhl71#0`;BRZBK( zd$i7IO^0kcT_Xn#@=;7JQJRTI@C;^!&C_o1V;oQTb5Ol7dFv%X`43upS-8gIC9Qty z8!UO8FqXLcd|i*zVqC3O&d294QNZ`%*uo7-np&nmZ<^zo^;O)pL6tFOM!&*4B|G)y zzBI#%$Fs9+h;!ZtS3xo|)y-T?qP@qt$XKzp<9k-M)BY8y99-3k4kG5Y!NWCuz(m{- z!KZcB*O^>+0aSl0GPfUhezR;YpD9>rR8cVpt27PnDC5kQY|43bbTS_3eN`*Cc%o_6 zin50v_~~Z)z0`%1Ce2s+m^P|68y{7*?WSjsA~Px0u-SZy#s{T*v%9MR=MAn-6Y1Ov zi|#c`RW>|qoz2IxNgJMkk^!os0bXMCZIY)6YZK4z`97chsITihsnqY&KqwO42F^s|`;w<0bE2A+1cySvLH&J*rUkt#shRdh~A!894y8=k7gevrG|c@p0%THA+G79>iW+5%8%7=aQ_LBQnBoA z7+XnJaXglNgP)gGrba4e561JFKo0l#+Pt{L!Y4abK-rp30J%+Uh7~|46(Y89G4phW zvH*UrRs1G5Ui@H9Ui=e%@Y%4C+5_sTFW3mW{dpm7l&4KmmvAt;qRUp&kb~?rJP7Be zNDl$qlnt>Jdc6;ASI}Xan=%KV;FrnterDw*myuxW{?TvNp?yz-HMR9mWc8h0^@kZF zMF5^t1=WT%=%-ITb=y-p8^6y^4cYIePSNEIb-B9C`=j7fi42UCJ1?01go|>j9*JKc z6olaNJd*S|6Z6#GR`0cFCJlJIYwlEy(q6)D7#5f7X&a!YF5ZSNOLjun9XT?a%9*uf-zXRYXDszhW~EKU!y0(C&I;o4a?ZclzD=x&G)iEZVLDD+-;T_V|#xVlrxGf znRbiMq$5dHKEpZ@gfb9JZKL;i%86(WQ3NQfnF$~*3zoRYBasrD4?N7rrH4`yA%d5T z)Tq;w1f)J7!y)>Ec2wTec;YVbC$oyPe>@mydjo!x4K%Inw%gA!Kd#^KcYm9(e$WK8 z%@i?(kp!Cpy)corkc6W#Td`iJs9u-?XZww!EV3j_)sr_|dw5Q=6RYg7leGs*Quq|j zH9feBq(f)!7ljg}Z;UODV4Sq`{RqZ-loOvBl_lLmQe?xyS0ou<5ZX^XTqEzG4Qk;` z-B3ylg-`)}BI%E3OKD`?ueMW*M*f~kcowWt`tuUIeS)6Qh3hwl%iI2ux>ux$%0V3w0>< zhjDd3H|mZet5NvIxGpN#8cVQ4vc`4AOkX--Ox}`U-KYjzfNN;C+zXl1?)Wg6_U_cZ zV67JE&nexK4Dn}Lwg(3s^dp&_wbLXJKuXnlct`lhk>omnG7VMvw-Wgcrmh!u47zP1 z0|Z~~idWzX5vNa~q8L1Xu7d`EdeFVV)g@1g@!>ZGI>^4!TW=Nq%th3sT@$Gbk}4oT zR!#nG;T%Zt-Omt$iEfRW}4Nzlz%8k3&}!%SW$HP?ulFLdj6}`>Ab+ z(@0v7cB}Q&?RFVv8Bt$pQ{wnBaEAE&u*ZppD4wF9d%33cQ;?ws98WR!0^4f*<>>}A z7G+e9`3I9)Hz&@W{Fsk( zP1Oz9O{yhX_>G7wwNQWUe6+~N?Edq{DmC!tG;7kV?Xw8@Gn{V8>ZM{Glh)voYBQEW zSB=TAqw%TcK)5OeNDXZ|=dLuk1R~L9XO!?)S0lg-XERr#{N?5uIxRHx5ec#%52{tI zy8BLUq|T1|=%Yl4D3uLq&F!dQBV{|xZMv_-yg?A}HrRml<{9@G@DtdRIHU`WzKXzw%$lg6AW%1i_#@+rD1S{*)r1T($q;2xhLDhevI|PK6`3(E z{S=5;O*|@3P>Iki$}rXYn+F!mm*VX%;=DfiFH4keTZRLi@n{oPLRFkQ<|Q<#B-wgu zo~0clKDEvKM^32{$>YwyTt;vNJ{4O%dC=3KX`aZ=LU9f5iY%8cV*$P4++tk2@B zrTAo?>32WngZj{v&_2t`+@(;l7M$=O>#M!&VX?&xu>RDe`{gVoSdJ%uMHrvKyyPoB zvRQCeVWrNcH4KpsbGNkSifrW}^uSLoP0-uQm;xzyyOGC~$RSL=h65#KQzsKpZA@4C z(6P(;hQhi1@wW4ewnfKv$urcYXZ*UE+%DrKo(c0tX5LtrwP<(ogSI0J=KY3S=N23e zV!)IJT*IIVT?IMUT3pAfL8cp%l$X?$U1|AUF+$(#e#Q=<4E$o_Q=(!^4+52ubRJ|K zlx+To%zlUuh=uvc2)jsWURjGzH>@N463>r}XI`PvTu()S=(LtSqQ%lrrc`uOKQT`v zLZd@`MfUk%!-Pq$l^L@(HtBMWvL5%WcwMOcYz`e#y4UFr5|XBuS4e|93$5E+hxa?U z9vs)7RKfgb?kFm9t}mSla@7R7Q%^K7qx`)Dp*pt3$i9PKG62X-s!^&iLC{w);ocw;~_0kAaV4 z#>BVAvk>vbJJH z;T0FhenyffYAK>uI$j8d;c=wq)Pl`q^tHDcHz>OaHRa)84;g6e)p^od60?A`Eh7_y z>~74ogfL%YPu0{dBij_F>6BeEHF55}ozss+m5aPDab#Rx%GQ$M>agMxtzaF{*AH zZ>eTZhP|ArBlM>;-QrmS0Iihi#ixWOVKYsd&d^HI^Cx4EhRG3)=AR!#WkQ>K_rt&3 zu?n(m0|Q8OW0YFltSxF^FJ6+xxdrRQ;XB!uy#M_pQYdnP+Q^A>G)d;^TKf=DH9Vjfl>K{8`0n6}pKPA=hZ>!Vg}g~)GhXksFQn>w*?ufy+a6J{AWQ?^7t zF$V0!t*+1j7?9=6o`~xu7&+Zw-ezkQOZ^EQBF)AEu4yl*>-E_D-575HEz99`Ie_*( zi27w3oG)iY2_MCC$7$oOf^R#uwv(=5KMZ#atfLblx_a=njAxJwlC%leE2PeF;b}F*eE-WJ46T{mr&AFwSU1l#aW zOv>*VF8e)X8XCXd8`1?%`O;`9x3p+A*U?mEYyx~2g}Y6DheTxJM)6~}uyWljZhtuDL@np=fm+L z^a5#&VAMy^DM&{89S5kJJhy?O?WH0obpI&)lU;AlVi zs@_LNseJ5$_kP;=>P8h&d+?e;Ke5ej)u#KcB9+VG=PZLoH4nMnY2`icwgQ)>N>h)_ z>hWziBZsauP6>heU3(XG})PJ{BAJ+l$$V<)A#A`plsDM8Ap^QKIXu zN(Q`EV=eY7;jA(HTn7p&q006Z0b!}xD$a?BQP3NQF5wvEwur<>t?r`L?!7`T_pzQ3 zJbi+fAGzK!IAUkFI5xj?kn>tcGgcU?>X98LOwB0KXZ#qsGEi4%npbmbd6M*X9QpD` z*Are_1l-EvEnnAa{6Ku{69odt1CUNt(Yi-hXbT);wP;5>X-{&QMn7vb%yy3px$8{9 zA>QITtbC2L?6@N8ZGWstIH5`qWZVB~MCT1n*9K2_@I-?XZ(*)8FT1`~dA)$KQV%2z zqP>>_>@K@L(I?lKmP&~#ftUKNo|C9Cg$te}ZNBLqa{uF=z}HhBFFd&ZR#E}nRJOdW zb&j+a=6U>Oi;i1|{*P5=nbinAE?1V_*Qkd*fr}9w zU9(O}yss%*=r-tnI?fC^P1lz-a`Btdo^u#Pyz!3u3~D=ZjRemwoy{)=yO7ErdPW;4 zbR%6a0lz3fzT2y;*4Jb0lxh)QO>=w-Kj0G!JEnzd4ei~_JV8Eqsz>>8!9Rf~F!$5g z;yok6mqTmI@Qt?4-!f1)xlB(*5OhVsrq!!u+=xA@xb418iRppOQ&Qm7Nhe(^ciZO@ zdt|)OJxRGdH<~}gIwrcK>kz5+K2IpW;+ICoE@|;}iLYYP(NrEXuL=_b`6oo+{k%bXQlNE*Vrobq?lm=UlmsNp{jhp=e zz%r+%uJtIpFVn>gB`ps98EFPe)U5i&!Q1+z%(z+@zIW|)V!i8wBXNmZJ6q4g#F7B; zK=t;Ghwirp-YvuUpS;;?0|EAUQi$fJL{^#tD1aWkmvpXPmbtgEo8?}Zt$zjC&Rp31(aOV| zit7SxpUm%DyoBK@q#6h*A#-`5FcYIsoAI)l4IaC6Fg#toCS9Lrd6(=4Ki_+kcOw!0r2GEPWu86c17|`P&CVKL=YHg`w6ZPJ zYZ;Sk94mD1LpmA+r8H5#n77^p3}1qWitM+O^wok^wg8lXhj#gS3qU>2R8)Gy)DwKW z2Us_Hso}5AlpVTXC;Re#5dv0cv{l}nXDIu>l8cs^M!608^_51<2lo%d&ugJAI&(-) zvrkpO2J|;u|6V;?h|5qerQF*22$<5t@l9tDBHL^EQCl-OxxZ6coH#BBJf_|AD^j_b z(BL7FX-5A#@!azy@QWA5aL4Q)Etw|#nzo;16r@_c)iDEv&L z?oUC|DV%tMb`GRN9MLKb_5d>>;9`em#Mm{F)lxd_R+izYzidlr4G8V4ddaT>{3K2sYuk z8*NCAUbRv@oo(fYb&a?C82(H5m<(r<5V3i$AN1C`z&va{RZf(zld`dNZ{?!7Xevsz zFCaPWRqXXt?zB1PR!-H{Kq|WW%Sro@*w}Hf0-00Yoh{pyMPcnW`T9|Gt>T^^Vtm4U zsj8_z4B!2${czKKU)DK%lM}0*?Uxhp13{;}rMD?q+bOR_fbTb%ikpz45JR!6xIQ7Y zVl>tKzS&?XJ51kJSh!eoJss`_&O@4;+-1aT>gRN=N#SRn> z>T>uQSHI7>{n(RVO+Hq;lVBd1m;z>QATD8=oa|`2_7*BB3ci)nrBz3$Ns;)q{GRs7feh0K<=XhSe%gs zT%g`EXnNDhMBc{OCZO1VKsmKH_U3?rZ%R+);a&@=5q0R@P&p#1bJ%H3=OS8obau=g z9?XB|@914apV^T3gp|B|adNkCSJBqWSJE@OB$LxTvxXb6RvlDvZtCeN|0ykH&rw5Q z4L9BDWp2%1Q)s+L2ydi{-HCVAVe;eKp7}*AJr|cXQy~9xTt7n2D3?XsuUpktD9shQ zuF*qy{jY3O!Nyv?ElE3!p*FW^zw=IP@7$;I9P?Z^3g5t1O|(WAjZX}e$GTeEULj8@ zL_R5TD-DKS@pl+}^~J^r_iT3xy;^0mW`ce6z1DPJfrKK+B4Ylg^Mv4oE4a!z@)}g65)UHQE-*tg(Ifc_NMSZGmT#yQU_EO@Z5+tX3OIPHQt=;esI};{v#SUTe%GJP7$?9`QwogCA@yT^Qic&6l17fuz z#!b3|cvX24%Q$7Llf+Ifj>Oe`4H0R^^d{4PHO0wQ`y===W&SwGmn-h_iP{&|>+DEq z%M330=x6Jom*_8;2+EtVk0qPPI8XyQxCmWbxI}kT><4|BBeI)chY$t}b(LLl-c8DN zBZ)ot$R71z8@W)lUX&Vri7eB)zTd?JwXq{x;gk9iQ?|gZ8Dkl~h-=4(51f2BV@%&- z%uQ%RIcPp_a#<0rho!4JLr)F9=N``|=d;?%jNPpOsH&HPVI)Iye=U_04T^&t0^X-BCdtMoi)xiAlDQ_cW&=fOaXn)%3PqQx2AOrak=a!cYb=ZF^&l zJG`+!i3|43tw+Awb9MImOBRWk%!XHSthng&NjAE*0;`C+k4x?+<4OMaNaC> zCi)Ahk-1}gI$&X8OXCsqi)Bj8svc|z-Exa~{Xb(r++_gxn1t9B1y;*qibCw_&mlk7Hr&Wy8wlE@6pA?VuG z&P{joiaLd#-reUtoT?`?=jn`ZXB>hifjEgxGPO@H-zKiuKXw0(QYn#Y_}Rr`aJNiX z!d}0Mzv|vFh+i_9s({f`+X{GNTr1f(qhGlHKJ=aQrALu#6im|Gt=PqaNCu+4TX!l=TO8~#gpg$o6U5nJn&<$+^lFA`}vK} z4>x8nERWAaQ|?R^2EFAzG477+`$FXxlN%GIAvb{dRK5m6r&L_?EQ^^Nr3gT{k_Oem z!;_+-t$xxHwCvm%W#h5vqc4X_=>3WY$7_w%Q}~%)OGx!cUzsy8#2zK~`}O>N?*`nO ziTq6PZ%{ro3kQ$$C&pcr^WS-=w~;H#i3bklIt zgxH|51Xa<9_bYCpkuZx=?({;iaa;|aTe8!&8IWtlr6Jl}h(naO58ph>X^2^o(?b7B z^x6*Czs$0}N}JT6y2u{9EnmCM*066^xSD5F^}&vrb3X9`w^zf(-*5`UU87!8sefpB zbU1EyDsad?^pm6zC=z_SuWXMz=Li&G&#}dmt5=BmQqkQK$gnU!KR@lkI=4=i zx6>YRnkMFOv(Sk*(6W4#XEe#VV7Ot?61K8mCegAUQ?bzvSoaO)cC@!CtT?^VHL+ul z`&0`!OOyDtQQ8t&4GBCG;2M{(v0emutH|W7_Edhs&c57ITS4n($&1=dpYP?1inEs&?_(i7boSA+Eh`kX_ovscr_SndEJ-Oh z#1%5im3I`1TYg#7*pBSAYvi-9R>PeXDV3>IWa56s8(=@q5sO9P-|F%icx} zOpS_5YP#CTo`)tglS7(&ow}kGGwgylyl@N#77PbbO@;g*jV>3ltNfAjdP~n?{l(XL~dc*6W1q0X41v{b7d~j&C3FgxMCi4x3ryL zO#O0o1co8lo8DeXxuFi{2vqf$xnZT7GDuGlWJKW%=O6gtvP{tV!SGDLtE?u%O$hLa zK0|MTwh_(u`8zYMf_wHGZ1&>Tnzgi{Yx)xSe$jA-t_oQ(302n zAEdYVVyTS~wMp5A>S%m)Y(mn(6!^f5yw`_+n}xX0OP>zA(1*|#R$gm)cj$~MA56Ce z=h24G7%XQ(s}F|l8-9(3-5cr*Dj#&UReO$|j_@f=sMlK=GASR8mKbhdlqcC6nutQS z0OE@YX*M`2^=DXSLbw8uOB4Lv-lcP?d+=;Xt3GXRaK$@bd@{vgH4}tq!T{((6O8B( zRAzivlMe`?YMbUCz=BOsvLV2?#D{`Fr-&YVVV(J(u^vTb-6e#dlQ@?+(S3MZ=Kt5BYgW_+v(viZpA%ox4$vfbG=MJ70^4# zY%U7r{yEke1|NYSU!W=29mXYuJ$5QJ#$l7#8nHT`qA7513PF`5lqXA+6)!0tmRuAJ zf&_$8F&_y@m;sOv)gA1#g?G;zu=xG;{*C$^6R#(PY18cNl(`*sicZ=*E<@P&t zUDi(5Suqjqda!4g`Ku%J(tNUhqp=P#H>moYoqr%eiS-8koSUi#l5oc>&gT#uU2gM19S`~qhCJ`Q$Y;V)WqQPCOtFeYm%j{u z=+9NR3V(y$+FNaCovytX>N=px#I8?&AzBDvFf7Y!%OHuuX^0@>X`Gqnk=Zsa$7i6wRh&b^ zcsD(Pmga3k6(!fzRBuWfXV5nkh2yHyGj}D!^3?wzSo`+R~BO%th-?^Us5_> z#y4l%EW1{qS+Oz)r%|0+xiVXAo1t5gTBbKUZdpL;e14thHiBq?re|`kp2P1xx30dRHhi4bSQ>3 z+^`}1n<~`}9-WZp)2!i5!lUx(&tHCGr>cB&$44B^V*W~wU69QxK;@kcH$`iBa-Gi@ zc*I2-2LlJ6V|gd?8&o^&vr?UhZAg+sTAG@8KkiVLHcd%)x|c9v68Tjk5tKST#XGB% zS36h%o{BY&9sE$54cCPSIxJpN&oUMsHx*x>R!(wZv)mF%jJ`McA^Ah)gd2uVh*%Y9 z5>MEBoi1?EW(Qr_sUxg>E$b2I14#$oaOs7-hD}K!&U_wV6ft z7(HJF@+FB~d;xtLm;fXf+ERe5+$ z3nO*80Rco^O@1ISx#?IZrXeGx8{I{khx?g9fhQZ|D?dI2ROX$jJ>DBu#+|8nTp7qRDNzgXJKmh< z$VPkWv8)%nUlK3}bfEoO{c?#^9Mh`j!2h-B9E-b00rsj|Gu=tWy?bfeyHYU|Gsel( z6M9Q1LLD*A{9}tx&9cTSo-~v-D>HgJe4Y86J|;m8x$A)QfHY*1iImGe@}tyq;cIq} zupz(kZ*!ZLWJ-S>qUyWy?$K_XJh{u9OBHW%!W1{ws3BNy%@zwSMM|DC$TJG2C@*xw z{!#PVtL&6A!(Sc>w-5rhZaLv=diyrl;{5giG4(jt@Dd-}d7GHu5qw*gg^pjpEjUhD zMxBsWVD*MBiFU* z^LFJoTG=|8Ytar^y66O$t>u`7@UL-59t>J{)30Ln@BdKDj?VY_{nIn zptYdbo9?z3O;_~Y+~(yAZ8a;2XS+W3yFJf4Z)Xk~q_4Fg;2_l7q?P|o*Wq1d`7d1u z5jV4U(Pa-R@@AOo~pf4kq@0bZPx*78f%!lZ-oXW-}2-EBimyoGlzQ z-z{MJL!0@1?svOgZJgbmT$!~0a)+G@sJ{GZYm*@is7wDcnc zBgZ<&!s~<(N)Z9t!S)@x3on<4$w@L+tKA065ygQ2$^5*zm2DH+9~C7)7}}X2c4-pQ zuQfv;;vpw1#BDN^pI_6v^sxnj8OhVs=rE`e80{;}oI2>;X- zjNmK|qH~vS40L8YxeL1QAW{(S&i@55obQ_8e+5m{#@$WX!d1-4!P&|29Xs6rk|zhk z#>2+ULdw;|o9Qn-Y;iI5ztph*N(UP&7n95%s_9Is7C^CV8xM;=^v!J?EZkjf%>EY5 zW?^CGV)_Fq+DvL6P2JzcxBrk0|1;NrDTgy@*_gj8Y%~8$VEb+H?KcRL2vFtS0>m8T zy}hk~h=G9p)4+kRz#+ha4FVG4y#bGA`l~_1z`#I5!omR?EW)1+`LFBS8VCf4(A#$q zco^0GZg#t3Ig)?JyzmuV`-jK3We}Km ztA#*%0{=Gpuj|{?e|G)+&#vkJ?3(${uG#CTbFgy$Lx~C|Zg#|f5VPw4lpjHX{5bGG=0{K< ztpX_(8WIv35gryE0RecfHsU*XA|oOFL7~X+7bGMkbR-1e!M*?4!2YKb{KL?we=syS zkfA|QLBUYL-TJkL2?)nuD zNb6!21zUg8`k$08`WKh8X5&F9X{qN2Gr}q3)dj2jv|IK7z-9Z3`9~2b~6lf4U2X;jRyt9Y+2#qfodh~23FHZP4-`AU|JLicSigOYfQ?$Oo z@|TifV)crly;{EC^4?&tnkKJErtyGhN?G3pjnK5v_p!Cv=8-8I=rFiXIc=&IRO}rb zjAqwtNgdd+n&zMSRm$V--IuKd;K&}^Hty^mJLL9dN7G{W_c=PSaf7+$5Oh!ne6gQk z7&$zpD?_tBK`2uyL@c!v#!M+6Sn9^TY@Z=$pB58MK56V#432o$BxSPD$0N>4hx9K(8s#z)|aoYX2Awtanp{3bhQ4m ztVse-?~EYd%VV>U^(q1mY;rF%i}0n>WUu6tmYfN2b#*=&iS_*}A!0jwPOJiPl|-D` z3RJD%{fru#Q^Q-F?5N88U(WUf&Ju2HmYT7DZ=}QmzPCDeMl6J9`i+++RU)%+r}D7# z`-ItP`LmLd#q8ZwqQ)3lh+UnH{P+Vsa1VQKWTX4RfR-1BN}(ThC(FP!8x{M%?=g`Q z2yyV_Xze)ch};mCV$eqJ0X7$`FKL?4_RvL&FJsuXIe6zxap22`ui$;t|~M1f6%Ec`X1oojq*N-+*$k? zu&o)Jp<`xbVMkw(-rm~kGfagvR<_?mM-Uk_W+)C1^s$Kb`@8KJCo!Z?bULeMb0x29 zN3;L7T?838n-Xy*p{WbKE42jzo9<}fi25tk&1dJ2DagQ(!6kuu1GiTE!*Gj1k5udde-pmm)2O&kfKm7OEW5GNrPbd^3;Z_RU;d%E zDP=TGS53L0M;4|q6^GgBxRhZE1$Be}1$y;#cwnkAug3PI(k8(p9UfOSKgF3WHRIp? zvdjs8j}T{o%@t>bR%T(kpB#PS(;iQ?;Vp>M=>|xzraF`0bJg6mu@HA>#BY7iL%KtB zfM5NlBkp8dC3nFvb+hewKBjw0dyo86(vO9Y{yimuhcl%*1Twr0)Gjf*`ZLAD?RvPa z@Ytv$zGU<=+@de@Ax_I{rz;K#KclQqFJpBFs`C3wa`736a6{CKhl@^Y)^is;tG3F4 zS^I%8RSHC=Y1zyyFu8n9c-1c*vo47q7E%HaImbqSom7mf4pbx6|+q z-wl=+0t<ydzPbP9uFq-+O>mHvP^} z*C<|Tcehn= zjW^ZH)_9K!T}ptjDxq!Mj^^PY%2( z2IS!0Jv_uhX8%SR#`EmnM+R|B^=H7g_I^o%Ma-a`ru#P(^~Eu%^xnVW1AJ`wyVQC8 zw^CQSSITBh_hups zn-xSZ0!HR_^@<4R0`eaTYWMu#K;mx>ms0*!!o>Aw_uOgJF#hnQ4WJrlVLMTTlnC0n zkzJ_P+8g8hugaq4rj;?9f}$}4q-M$5|=bI@=t3)H;&P^o3NeeiOxcllz_ zuvooq{5DlMVJm@;Ke30eqCTL7>%wSfV}b@@H#g!dUJrQkb}YoII*+``y;RTHCV+PV z1IUJfFoOnimf6v|9xcoF#VV#4KwQiU|I%n0Mu(Q1?oD0{s)sQB_yJ|GFBN}oMnN#F z>K3oA-XffX`c(0Fok-eEYdSpEyR^^Ex!WquTt^*WMo%f{fjyV)BfsO5bCKvswa0tFSGC|YtUb@hjV(U$C--IYeU z0k@t}ol}Ek8$*ObjH20+Y0ulrb z_HQmO{zB%&I8216cA8PC8&SiB3tSHrIO~9fdCFK>%m-YRU|ZiTlonOatJSzPkbjw! zC@z&ktjWnL{h=Z*vV0MBj|ol?lbBJ^7gZE-L{(diZ4A%hQ4to zmSWt!^JkT!{{qABDDr%#8!4=+9&@FtyTqb1lmop8BvSQ1oHj-_(IenhvtWQVBcF}F zS_2CrE-Oxk!SYYrW&Ghf{gFj`g?2%!DTQ)5*3?8dfq))3|VaRXyjwlLMLn6SZvRwbSTH8qQTeO|Qd09<*W7{i+S>^+$T&!#yl6Dv823j3Q8V zgc@-_%NBH*{ZBN}qNn+ry*`C!X4X{bHZB}VFtAFYt<^kQ=w|3tt-ya>b!tuJtUP4X zs*Boj$^SD02r8&DavfEHNSPI%tDL$^W?@#gh0G@Zl|NJ*6vZ=q^1CKmg1~#xRN;T& z1&F3(al)yNp-lC)S&~_GTP%bps5Yplm=pd$_;*0QTii!_NP@KIdO`pf7zAQK&iPe_ zym>Ie4srbUAGZWgu0eD^wiBBvbGVPrPPZc3kYwR+zk(#kBgK zX0+-Flkk&-|8(jDfw&S*D9&1PB&>rhw#F<-ue~Favtl2>>0i0z9em6s&#~_pO9k6S zK{lgV%!+w_{>}OQpTHPH$sUtOAEF6YdBnhD8b#Py3eo&?7nE+i(xzl<0Bvam3d z2(_jLyOM3v3Va1ix7-B#>LiAxg|5Z2)&yg4=WnZODiRAK35vkw>K$avTs6m_UiE@6 zHz7Cw-fD{VL$Md+MSZw{uxAQ}0HYb$0gAXu+XA+1aBTq4ehTH3q$OA`c=?$IbswZ5>v4(hke&Exp7mg7)P`=l?0OaLj6+$Sj#7A5d1YQxn& zG|+N1vk{nsXs^Ydy4k@mf{<3JpHrBi_kmd_%nef){|*XlOejOTaz=~=1e-VrOVEi9 zOp#C!@cq=+nJr%mhF@wCG+z7+0}TW}tBtO=MMfXp*vSc*L=32zTQLf4*@iI)_$)KT z&KFku?X=Jbmu&T4mr}`lIt-#e=ORQ0NaDE16K01hIJm7>Hqhq5FC(yyE-gHeC_ZYU zB~C}rEyPa3Bd)Jz-k$V)b;{O_HYzx;3I%8Fr#E1kvC_0;DK|E2t8@Jpcsu@`lh5!L z>*PA+HVc6?rNHz6C9x{!poacP{iHYa#6!^dH@z_T?1yCM0XSxpb_l#E_y>P`>!NCB zPQ_;VMtM`*<;%7&%wO`eR!M0qYF_g}`eo?`5e%i=LvhsUWi{ZwmJ>H}ECoWw46m-P zI1xi}Kv`32n(Kl^p2p2t???MLNQ8)Ly;U4>AF-ZU-4Em1rPKyAhg!s zfOwFFPmERyscmhF4W=LEJC8Dv4Cy985O!)rXy4 zvG)!AF$j70Ov&*LYCu%IOTLnWCpO<8mm@-=RJ#4PSp)35{^`YzUHycayLnn1LC^mpTYxPlK~5$s=S1XZk#@0$1k134yoz=Vx$gpT z%4*bN)Z@jsqrDjbGO26~8hs-Ck`9)z$4wy=^zM5!y-;OMZ9?o#B-L%`-NTG!%LTPa z6v6?{GqEYPRS=2%m+a9MAA($PX&C}ryM*(-{fG!T77>bV)EW58$k1X&mOMg+wS^||yz z0@MG)+*?Ogxwc=Ui*BV`x=Xsdghh9EcXtQ~NVsT_mhOf{3et^A!vg6pX%SN*Pb6cN9Wut2(j{uAo%0o(R%K_%TW3lRZW6Q7AAQ|Jmdx zlFO0Wz~x|2lt6>0>^zAohvf@B+i;|9Ggpbeg}&!Q)@UiNgqMF(#ZIC{+Ptn#MNO41 zKv9jiyQ44+DXGH*u3*m)Qm6J`;>4vHZKFgNw4vRiS(+nm5{_gmm3^U^!bWTypBQP3 z1Hn&4s0#d{u|;z*Hk;U1MsxD9lMGx1Ss1=O>;A%UH;2L9ESr>+O>1i|&E(Xe?g|9a zqK{|MUF+qJn4WAShblXc1EpyMak|d*rVE&HSve)rNFgx63>_?U$`Iu5)09X%31xOh zH`AlO_aO!gPV@FwlOZ?GD1z?m*q`rR)b@^92Ph=Z>p`tZaWq0|0jDRvX|M6u)Q%3i zZ57F>$e)C`9}mlpCT3rkAy@K_)COj|!sJuScGy2#RIIC8*3z+Z+p9B}raH-4@-{Wj z=;M|hamYdHL}O88XOTI_KPusm;^Y(QY0$96fO8-Uo9WRj5vby_R_d1Hqu|bTi#^oF z;n*@Lf{=9pc=V_m)(AnZD3Px!wn0a0AQHDeb5*3Tpzs<0I6@f3RXlps&xfg~J%30t=W_2Yael$yC({P^d?V#B*J#1)Z%{{^e1rGz|Y$0rW{VV#I zHlk0Awiy3`FY6843r3lL&1HH}7C$Srd7|UvhpTQgr?ro#VkQdJ@v+FukYqGJRabjg zZS>tnEwAxX)!V(e|HXUKNtS?dF!53{m<7wvbJ{Sy^;y8Gx`uj{G5^BS$m?XZNik9} zw5p@MqN)kcr6VsESngCYI6EzQ4@P6@Y3ZOq-#%;)l!pT%Fh9qQL(25~I{#0+Wrp3Tc>+V|-*S7XnWe4L$>y(}wRl2_5jK;XxCcAYd*p+O5}p;isy267OPUJ72ToK_Y>3)LPr4CEuJH8qTYuq>^RxRzgLK z!ODY7iO#P&+fWD*T{yp44;AOzM>-u4s}Vu(hXf)I_v?oJn1w`|kSZ-hBe5C7+uPc1 zdtu|;{4SU4zd+O3bD|Qr`2is|_zjF0^9u{wA5v#;a&>OXCy`irN$ngEgtQZ-sM3)l z(s2bHwQV>^JQ_+$hbv0TPGQS3O0B0ZHnr;+<6j(%6rM4dY01wh-R7q!kEx)$dl0ZH z)7ev(#byhk6XRs_X%&t>X=`>yr5V6W6SN+1RM~c%fv)C5Lm2Ds7dhq}^Hoyj-KbwI z{3!QsIaat{#hQ&)O@XDnQmj)fg=ljo>Un4P5?xUe@>iKYDxVjSdpN5tqpOKj>nqPXmo zd-JK}ZQ#vv(7LR{&brKK5cS~CFoLTgxx18RW?md}EG0RPic}+gR(VM?Cvj8#ZPC;L zWK8n!Yplc9WzZwzp4h6vv8lVaF#~(?r{YYae2h^W**HevbnW9!rjOm?pUEoGylj!u z*4Kd#Dnr(>-xFWdi?R9H&YqUtoH)5Llpj3eVdPMw8e{DS@d)a1ak|@BGYB1JlsYhz zm@w-y?VEoR>u0MV4lrE29A26|?+fSPxI6sB>Y(PF<8g5Z^CdM9x(vXQ$d+iiinGcY zlR#>j_qiB%q>o5G)lnlI!Pc|3%+^4PSb7|?r#KW!9SmGFqN#tY;W#$tTibeLX4gh5wj0o*ESiMk{s9$qD%}j?T<>{s1D|u}Q1&F!2~u0pIH=L6%tXa2x)V#{4+;A@ONn+jp=%VZ^aL=(Zi6v5k9 zNGFPHD4Cj~(TwD8256eDLSd(-nv1mzH{F4-FZJo!9Xp@eOl6(rUf;uyIx#yOw992g zl+`sA32uf}sVZyVh{?^CAYCMLynyl5hOOY{sbNgWYi0;I7vryFKlT6kh!KmhLuyj?NQ{)~Q&*fxu5c)u* zggzU%qSUIXQtMFNGUKOcU^sj*z-WI2&99FXmFcGlGZ;Kok;^!TsMrL%=SPWh-WV{J zS)f6*L7m&-nFP@B=Ah%$G6uuV&}?C?eC}693oEUatZUz#cUmt?8$1GpE}d=?)l8Cp zl-rQIX_!!=+Z>!7&RZs>rGPFPFiRY4s37l{F}}ucr>mv;+YdQ%`p;bRb*p|@D{qHw z0v98Hde$!<7VuNe%tS5YJW5_8y#<=?!~3xhHNF>hC-ZG13#Sf}68rVi(hILpwx&gl zYag!2@>k`oatu44OTD2Y)!n{9!O^=fQ|*WvLI{-(9&?UYRx;g5*T|{b6hBo{(U_0R z=6hy2Q=G-iR;3SpzmcNKZ?$;d^+X7)KVee3qG&MIno(Bkn^%MH>046cJbkWK5GiDX zDQ7DSRu6DJ&7>9C7eQx!!jkW8E>36CoAxZh1QxVwL@aTg^XQc7{itY|p3cF614 z&=hD&jpOcC5c-_LD0{|wmDK=I-KS!TPfS>bPNU{zznrv+??${xiZ1+lVCxC1XE{b1 z?{wq^7oJO{sb7lA@ZxE1#?YA4%J5WUv}#UgThcWza8@`hIFP1fwX@CYlvH{q@s}p2 z2%&c%zNpe}M8x*Sv8;CC;u5sq<}DrhWR$nnW!SxaxH#T_7wz21PZrrTd-XK#4X@!N zvS$wzPe&#!jk4Svz&h^nHeDl0%^!%Q- z^*Hld{cu)RER&^@(E0R`v!&(uT;r!bNB*5@rJrg2$G#2c{lH(F97Oi%oO9+^%ijmbq}ZZ*mpES+%0UBH1%~B^{pHv)U7d_ucY7^fpHA=O;Sdmr*Ws zZXxSw0DT_d@3`Zz;w114g;B}o z-Ruu*f6sTP;?1uTxl$m4K23p)uk_~nG-$4;g#9H+Wz!85a2*)FaQIOCJn=I1Js(oh zK@#UtS(g*6^$QFlU2OV6+Um%ELBcl#Tlfnk8$`eHRMK%mr^J}M@mZ#tbR`aUjSlZz zCEa)dP~v!!xSs;r}3K+a*wybUepW zK0~N`wO%|X1-Gk1MJXAx2|JmiV%x;{O}A}#ycGUUVDrRdN%ZX86zG9}fQc125HSEX zPJ41op>Uo^OEzl3-HNRw+Qst2rvzo5>SzLTWj;2Qw$yp=jg>%HXKO;YlV(VDBVKWuVMEIdw(e=Q!C zMnEo;e|V1hK4m(9{Efa@tg{^m6;N|81F@m zyox}Ay_IICGjUtpGxlamF+sxWjT%K0e$~DwX_bTDYe@Yl+SRDVBWu))f2BqSwPKZDFAv z)#+mbdCAR)Nm0?KuSQqzzv(cjW=#EHY@O;5I-pLs{w|`ItFgl?B(9&Xl&-C<#!{2K zh(jJX!`qfUqZ<)EfoO;1or5!6^dW(;ip9esitU+@{b5N)`4b1&r@9I!XkA8E_IM8C zFw1Rg*YomjzT*Ib10ucbF(rPJlxNv9#89mfEnaHU)Uub_8p?5grKD#9&1?7TI_~X~ zn|>&8imI+0_opO&dO?Q4r^eZ>21bgS)~8PihRT_{L8t0b{+4DGPe>wbVNim3e3r`7 zyvX?}I?|N=d9a=k|Wqv$~9vOQhX-C3m z7P)yyBupSaoGKd5=-64godb>q1*vdB;NB@m>C6yFuCU#226!aT44(3OLsI8m^#=)eN6Q?3IvzvRXZVdmacKQDcC_?7yAHg`xSU&H1rg@qJvq7nG| z3e3D-jagr>>{*0=$jTR&48!Wug<08}-2 zQuUAXO!MK*Z!0aTnFW7$eV?GPyyT6Wc>laS=Hq)Iz5@a<#Y@5B&B;!Ss{B*lw3D); z?o%>ePv!+jOZ&OC4FuApy!LLwpz|)?M$Xb$`ZmkgUeVCy@@i?tOMw-qz^Uf)v16Ba z(>dwiE3YvMjf<+eCz??4_^N6r4wPs3s#r$B;52p9$piZnMZ{`ka~U2y(%|z=FM_RS zkNgwmdY<6?{=ye!f2e zUEZ#ZL7}#dq;!M8Y=>Z(<_A~8QjNWo!B@p33@I9OrA%W`{M42ll~dzR2pW-m`Y14$_$LB2up4^E$HWAg73GcTs}iQnpdJ~iMNC->0rQz z8;<9<7V7Rf>?@mmU~}eg(GJ!JlIJg8(lTE*4jD^vm#V1hs=mnJO_#QbMIfHx(NZml z)FI7S1B31#!`LR4KO5vPT`xOK#6~gDr`3jt^Jh$b-MglTuDhl=A5 z9DZl|YyOu~2WUM`fKsPbk82xFVZXpgr8Chem!i(*OK8=~ZV);Os6Ez|B7?$&TWI7d zvOe;=WG;Pe$(R!8aD(&&^fi?^Muj9dH*^>u0wmXU?NS0u1wfh zv#x;6u9j;iQp8yQr~{*eX2ns2b1SXXjqFYqOUG7TPoCvKhMB@Vk%p_IWIhwgSAA1I zoNA^waHy~G8${Mo(2Vx|;9=KDaPqL=#4~GX~5;d?ps{qd6r< zL>y=oY_QiAz(4 zy{~l=J^5CumDfYfo(uQ^E{udJMxh@ifCdGcC(T7k8tpEw^`Pv)?HZ&-YwEmACY~<& zC~Bon46lUD&XsQYRQps(Wyv= zpTdt>Q#Oe0iYmCEp{Z;8GCs%Qoy%vpMA8*~(FZ9FZkn5B{F4D~j%sE<6ZH$MGz-No;QSnR4=BCC;Mm)RdR|}FaTzVYIY>l!@ zjPOKRo7$>S(OgV2$M`3=*$Q>UGC#19qDThfI4Vpjk^`~CJVdBFh7ZW3b8g%8j1I&r+_lZy3G56s(e<>&OOfm4+onAkUg7;_#LO`C};~~I?JkghyjmqV;JsPttpgAOUW>Z|n3pwE*a5@BL zs`JCV{$(2=?o=fqpELk-n&UIgR}jo7GCGmP>z}wa{1GBYUrBxD7ENC6(ug2iIuu~} zDL;7HzTzhOM_5J%S(nk$660*gJ4@#fcuIJGX1UZnxn}(Fc_{%3{0pf>JaE3 z-_U22(#6&+gmAI*Dz~`|eX8MK|3Id5omIUgchUaww|+)nvitorLHi=*zJiE*;5{M5I6!LAtNeJ>0+Y$5=q=8wlc)_}~_cW0|BI zJi3s|>~4AJ|GjEr_T!`K&($Wit#3@Z6CQoOzV4c;Ek{+K-%I1hBAglpjL5U5* z1c}xh;&Mt-YgU&MC?duCVZ&MZUJ39wT!PF&;E7*iYr|JwVZHF<6XeODY-^UmG|fdL*rb%Xz$!w|;w3RCPB-eNKzhNZ zxv0Gvz8pI6n6|NX#G?n8$<|FRGop3aywN*A5B`XftP=0-MF77~mX}6~#4gp)fsBbw zg4p+u8P-hoK?Vj^DO7mMrHb_U4YNTGmKcx4PUL?0KRkXg2D<^#VA{kFkzx^3>^bsU zs6U)PT*~;Y!c4p5dsk_i;dd75OqAy4aHVz%#nkYFsG1d3!+ZN$AdFx=hPA(+ja}2} z3TCz_pHRY9xOz|*!%$1@tqriLZMt6+jdsPm))7-myZ~fsp?$xcI$h2$ST+y>4tCex zLYKDmwqD%aS&{0B(aTIzwzp_<3ZWS$a(Ll$6lza|+wV8F9pgHx17nKD$H@Gez!!9d5}cg<6|}b$sH9aCx#ZCCb{h$6bEFMqC06CVXQ;$sY%vwx1#mFn$sui5SARb|``?EXe|7P6 zIlAhF2al!F6Zyg> zf`RU6T*Nqh!W{Zji;mWPuO1Mou6=P#ZBRRD%<0lEaVrcEx9BCYW7Aj( z6Qki+8zn}Ob0=TmI0M_{n2p05qev8Ry(J3< zO%xfEMiADAERmcPRS;&)G#wp7%yK4n9O(%@*+Vmgh)Zrx#;b7j)&?5VINXsg3N@0L zWGxN!DvOi)u?eO5~nuvXiDFuo$AGo{O?sU`J^8n2d|L;DOnmTiK+Xw*PhB4U5Y!%#tL0h z+8*+$54G@YQ>rVxBB2iuD0kqz+yOHWLUo3z^ZvDRQjGb=(Soi5jbf}&f_~7RHZJGc zr7i8m2I07%uo<#f=)qqg`PkWgrQ4Zb`|8IMaaX97msaL!rj9?Xd9b5g(+wMH*genQ z-9aI_KuE@Q$7R^%an&XSSbBchKi*%^6z3fJztf}p>A(f`b1MvH!h`ezXN-X3t3AvX zB>`P7<$i*rSYe07%=8(OIKK=RI)t8TgK!ZG==FCRX)oFy>tzTS4a~fnK`$mu zweF_TR;1H43a=zw(_bcY;PL8CMjpPh|Ls~L!y&mRpb=`3mcB`?z|)`Og&>7HJ-J0* z^G7iI+W?3>M4hYM?_hg=12>|oTJTaSFi|5*`bW?!;y+CjBUo0vw?Qs*ecLVg?LNYE z3Zu{m*#g!|_|B!ak+ARIM-7mCXQM8gSEf%JAyR+B?T~2XePiN-MXM8CZMd)4KzjFg z&xv1N!|^>AqoCERn9uk=p@*Zgpxg3OfaPsIrG~|dMZHS5-Y+z?jwAFp7%KbmlA>v~ z_m}r>FbVM9C68zkSUv^ZTiG~N^4-Se7Hl5ki>*go|I@v-cW?T1eoP`;*~Mh#zziL6 z+Z}*7SXtA$EHw0rm`NEn>b=8(O<3%e+NS+KO5$<4&wihA;kCc!1n|emh+24~wsPJ! z@Z4lt$n(C4%tja(t1sFcM3(*_2Wy2U@z?28MqCSEjnM+_sd9{qsk}8nTL1 z=_Jd`%98w0bo^+#3M2j^q*xKMa43KwfF%P&^0-S3L?boTLzk;9Ka-DBn>Yaaq243G zBBqpvbJ(-?P3MR1I>|E>w~g`Vrt1gO!oi2<3O5;hpuZlBc>k{eTUr7ll_$mku+97r zV5{Vc)(wgN1y}xKC=rMh2WYe6ndLFzqe!9for-j)Rvu1IApiObNpNDs_MWAP2sm=e z1U+HcH5*;ZYa?^n{{u5042*-;R`8-8c(A&@rN@wn0tu==I1}*Tm5v*|6m(%`a-ym? z!`WiYt`jOqeQQ<@Kixm}Zh&>$*{x*Cq(+YG|6j1yKM-!X@ybe^T}f1jkNk-Vn^#wm za@sc61no&;85)hOMTHO<0kltW>`o{9egJ|>6&_=2qGMJ~5#b&pv5Y}$*Wq}-Kq0;JCNdYa z{K=4oUO$D0oZcV}x_V>%tLZ_kFhT^U)x1X7eJBo`)ST=^W^&%LK3K^~y)axI0jb#$ zaTTwjk!;-^HP6cO1FkB1)1fEeKo0veA~W?<1Pu{!n!6Ux>#JT;zkR6o45i- z8_knbi;I*{QIJSA9k`*ymJg6C>Z#dO%ervfv06d;SoNNg2o(z@Xt^`vIoQkm`)QOOsB52uNrmkqFZghD)u4>H^~;! z$-lyWUkVi)6L4xI3vfo6=m8PTJ)U@t=Svd$?S4=e_+7?7Im0+76vX z`GPYW*V;Yt7{)-8d~TWV zmNj{3s6XL@3x|@U5?LO(_+h-%mPNhrLCXoZ9qT(}=5Tq+9tE)kNsZj_ zu>9Kwr$&=nXxP=-9q5^kqV`}4Zy1sqJ66iZgf%^2p`J{9)qBvbpdqd z7E%LBs7k4fqT^;lKQX*W>iy*03y|nOLJ6!GV1R|JlD8D6iSfvzBHAg6G}3EAX&#UK zo~4PE)C$Pyr0R`CI-oW$t`3_0AmbBI0|@EC9jswOk~xauXx`^sLda@ieBP;71AH%tNDEhwsyN>N4PcPdl}%fO1Lt*7GQ0ByAQL=QscO+1J#ay)lf{GXV7J# zjmvB5tm(<=SC^honWe`uc}#jusPOY;ZU5`k*i%0D=X%*be1d{dui;mv5We!FmDybS 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¬C`2!Q>UZ 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 z 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

      EWxfktEpMR><9$?CJX=2OS_Bg-s1{t-wD($Areo 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

      ji-MNmlix2&v4 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%0Ano7`BTD-UThZyx6JF0}CLIFP$FK-BppAy1Z8z z9dd)d!ivg`v|Qd1YS35x3y?B+1vBn*kU>-NXg>wS%(KamQ&GiqSOdjas|ie=)tC#J z{54q|Jg`1SAjRv{5@09m`OFgceBKx{BnXuhg9F~E=N=(jaJ8r0fGTXz~Zf+d?vYnPfUA zZ&MQ5oJf4CYzkJorlxE|PdXjlvCXgJ%<|Q6<=n5^#f~rAV0SA&_RBTf#!LW|3Um8fRvN4*-{TgQq6(yi^5}K84Kc z#Q3uDiQ7&BkZ_RSS1F!0k8_#rY4f(X%UZk6V&xE{d|sm~Ekv{G4&*~>?qvS-W=V!f zG8S~g5bfv{&K>uh2HuApO}y3*-F*$_q#uOgxyFIMtuZ%8>H_}8zwdCEg0o^7UMtP? z;T9NU!xEjk?Y1mWRk{p*MmOB8ZjZ-1!Qr?h7wP(6L7Hng-GN^( zZ&s}G7a>oQmrUn$Tqpdp2Z`HkXDo5Y^v~ZydWuQ!SI`2-jqyD zyd%&I(y5xPI+*1e6j6S$qHO3%&tH^R;+6({-$?U5_)E=ANhR6xL3pBpg9V{L&{`F5 z<}e}q`73Nee2b4)C~{!?nk=O>xpG8aJumW$zL?%nQ(w^8P`CxEG$6v4MOrh5KW_d= zvLvp!9<>4bsokqv?|qPnf(uu!PYDdHd~4gO|15gE+mvMZ491a+jeDrP23vC43&oD7 zFaZyWlOjPl+XM9}?^_7md3R~+U7-CeweC!Nr@EFp13uBTL4>qBHcnz7yygKKml_|~-rB4$XJ zK7N^&F~0P-&qXs0Jt85XUv{O4vP6VgT4?C0ATk24AVE(Twyh^|xZIl$?Tn#Ie}o?w z$aZc6Wid;U8fkGbgZNIe#W+cTYoej&dU$WO^P5}ui<(;$oVV|e1tqAopui8oy!nUxd{fR&Ie#@F2Mem~$3r1{WNGeN>uAA2p~fLe|P} zF2Ps~6CgGFnm5dj<=Ywr0@4lbi&3X^E{6r(Ay8lg+Bx`{;u;b(PSWY#MKKEy4QE5} z0sByR9Y)m9bcw4sf%qht0X*1qR0M!0XlY1OG2#ccF))hU+rp*NzU{OguZ|9*e(cKo`JVWKb%&RG6aE^a z-#v#;1kENAdP^Cq6s)=4%h#3F4ixdAS3m3Jhie2wNLW7f>3(9u%CRui?`xCp=Jt6Q zGAsAIQ~LVk^6~!BiMNkbFcly`XwuR+FM1Af4lZIIoI(8;*iySHZ6BkDZA3E2ndib1 zfk)~w9~DuN$fPiv+Nz`CC&ZA@EN!a2WM=1N zv{d=sUuC9U+C$68^PxD>N#ZSNsV!R5*-SiG=|pACi-Nv|9denlNl8Iw-wrj%#ti0| zD=NJtFuLaQF7(CKus08g?`ba*(s|0xCfu1rn&omw~G*(gIk_O<~yNd zouMd=JG8}kc(e033;kZ%cdHN5xjGzgoq5)I3(S2D&A>W(9)nt9~sxb68@1fPK{;S4ZLhr($M^WgJ|bQeoXh6$2lgtADeCI(W2n^D zZ4zxqTcX0k2)htPkIJcQ7*BsD#%-&#A6@D04yY$P@biOyuVj;qZxG7m@#ti^^PppU zqZLwV!bRq{B;UvGf6MaT%dQr4NC9xLvK$3y{_Ns%?NGOPlWgy5p@pTQsmW}@aq_q% z-TQ(7d8ygDOH)HwA*9Y&M^Q+;ZK$=PnCelQtPO$BP zc@sFU44(QY?HVq8-N#z}Nl(W98QOkkt1%xr_{%giy~8osMOntSd8WVNFRcNf;Fqfa zMCoWbRW8Y#7&lAsjknMOZ_4d24lNYVIQ#9$vK2f`XJ+%OHz}5m0T9{VfeaJjtJo?1 zh=j;)XQ!%Mq(}G+2Tng<^bl5I6ha&pdiOv`j$6 zv$Jep7Jdm7;@%?kF+c@yEvwL|Qqk~m*<50Vq+Z>#aeje<^$Q{Is_id?34B*^Rw1j6 zRxyA0oOqfWtUyBA}1pUfLw_DbxTz=R#6C_Wzvw*H1oZk4!HlKdB@^IXX zf0Tn_ztFxOq^$|u4BIFacMs0dDrgXse2^37Adg(lQ zEp|wfPZ`IFzs<(kwoLF`h3GgJkqnB^)fEAzjY9*e!8YUg+}RBQvM!x0Fl3YKXUg?~ zLGK4gnO5)hF*4xWQp4eAhi%r@yJ6#vT^KGNNT2eh_jEZ^~q+jvnl#U#V zv8QhXE1XCGlS@`=Ux4yg!w^%_uNM3E7)z)@YHp6*P8!{Ci>I1}Tqs3Ny(M~3pB2G? z+%r#s)Ng@ekx8kV`h7{n>j|rW4CD0rM_Ye2sjOyYVU4{0_6=g8$6+D*sIw-&6Cn?@ zR*=4YL`O$-8ap&{2+rb0TBIKBlyYMD;N~6TX8H72lJIO&_d%Ed(GPm{_f1u#?}a;b zFa!?mnh%M>lBI$kCd(O|)0cPWGMzt(*@e{X5ns54pZ7AFqNNWhFO6V~fUAuUTL5e7zVEG#P>k_*1Z^;#xNCIaDi;i2_W)^x|!Psk4fc9c1E zEILsl$L|Reaa{qg;Fag*qVA=J$#5w5Evvrl%^-6hX z|ti zimL(f)sk_wq4V(NbV0*fp6dk4A!Hjxno}J7EStK7m7u|p?9!r{B8!G(cJdhme~sf6 zxWHt={`1_gOYhIhH_}<|7~{RRFBov+?O+v)PY9$^@j0tE+g%AZS3Prd7zob>X17_C z{TkKpei1sXBuSYx#lD4Z7g_CUuNbEo{M?z$1Q=-fFN9-{NENQhFUsnWo1{H;BCcqj zEe<@LVuEwo=-cGy-iFyV0EXXJ1PzZ|=2@8bpS((X!n0XlTev*1HA0!cgPa!m9z5r4 z$&qtK1DG5D=zS_`Je^l-Q-$8QlaUP$WEb24YPJrlAf8-y`VldXY>UqYeLlA$4Cb?B zYa566iVK6YOspuBBmtAkSl0bTp9Sxs)h|1DhrNkV(K{Ra!;z)Yk<^M?_7^1^Qu+^-kiIHD!#9x;hpB=K_sCDN>@k4)q%xJm;2@C&+1$zL=HJo`5V7g z&tiqZ%~uBJ>A)A@OocV6LsamGFv&}3WQS}%2yVU*u-yx+p@-KgQn-1PNt!B)19FHY zJa_iX2`CzDbJtt-(Ur5f3eW^JdTGaY1r6$eUY$TdZTEl#tHq~%#ZL=}LI)b7hCwXz zN0cGA?&wJ3Qpt<~-BUG48sMOyQuEB7_ImZz$$hT*1~fTnyo6?IKJ@WsOlQ45OuUa= z!rtK*Li2G7niP}O!?rrc$9k*N_{c~{r+bsm2+Ah~8}xUaZm0TkW1T1|UK zG*E458-`nkH*{Fi%n7I0`KhHMIYL;NfsytADJamXf2*N5|1UW`RinoZjPP??*s5!> z-iTTb^T+P}Af<=LVO0>j;S-*i6cye_m5WG1gF>Mwi{ zUWGNLF8vX)6m4*DP+ngjSC?`aZu;1&-;+d@biw^K==&;8l0-sa0HD}F;fAt zt};kKmam}Rj8cIdixN3FmxtfHkeL7hY7kxrt~mv!AdymWiiZ3gV^cWI`+kdU$ObIMDMSV>9Wo4d^{s?}6$!M=9cTsh}A4}U3S#Ue_0&w~3a zd8C?S3Q#(57tN0BzB0f-O6%zu5m4%F5M=cs;Rwn~!~a%=%qvkf_&1T9jp**~UiW-9 zU7c~%Smx$l=5__w-CfHtbI5RDL>OK5aCHfSh4kdW-M`x|6k?%_4UG7{z77bo1OJ;c zobC%0@)QqBGe?XHeu4$sMgNOd7b_(dH?J6n7<{p61lVn6L3sTJ<6TPSwD^rWD~7N| zK#}4|Mwlq}WC%Lie1~XRt!83Wx+?mF#JMMNm@WB);ontUc2CX8Y*D!$$$|~)J_zv% z;ujAC?3DOlhzK;be!cNxCQa)3?)`d4`>H$rdTU(V0KZt*DW4-i%sAeNHbw-fFAa|h zpm$s`RX|=Af2qV8kpizf5kSEEvI<8Btu@%*Yd-~XxjeN@OR+F9MOeHMZ-C|JqDvNi zR04TL?fgRElcBfusIi$vrl43Ozz^&>0%((~DLXlbn4twj^q+};!8Xv({=LIxUM-GM ze_zWG1kRQg;x8xS14zj9TmvamCe3f51^Pe8pfd3vA(X;>+dBa)HeNiqDKFh6QVO0Q z;`W7Wk5ekV@;scCHk0oM3|b;pjHM8wDPj>&`@ASQL<#0VuI_NYb;3zdq>jG{z5bJ^V7`E+f0Sz9?KtKWUEt~UFW1PuTJO44vI@# zwW)OJZJh)67wZ?{w?y+k&Z`Wgn0^PCjP*rWf4p^yQPTH$>*$~lI+ z1q#CDfGU{BV$yz4i_ZDj*np(-931UoxvfAwt(z`@2;hIeEtVc8 zk*9UWU5En$i|d6qQ5 z08@Da)Tq&1q>5enim`7OlwNxG98Vp)z{|=NVC3g13H77riI__@FpluYg364 z(`P5Liqkj;zkPU_>9%dPQz|j%F|LoD0#PD5j%UW-QM$#N|_fOeRlsc zclH#&lLuRWgz=d@bx>~o6)<6c0_I{rKj=RLrmFW?rq5{|5cummFp9r$2yEE56c?|_ zWBApJVhzog9U`@Xvn9!Um!coD+?;^BLlJr$Ou9cQ@TUgUkN|maS%W4i#RSAl2`RA& ztWTMyU?$vO3rvS94h;BwYt&j*ddW6Ra5G1XJQh>~f1Zin1oqjZ)wZznjH5feExf42 zD_#CDx|}`Q8|1uv0T5p={9m;^%d^sGo6g4SAV?~>tYs#`&Q5zm2L42-Qq41gkwp!l z2~1D5Vya_S<>IPO(G~yBD5xSxZSLp%%Aw~0trWnx(r~nk2GZBZ!&jwhC{3gI8=*oW zQniO<*h}3cIYKOJe&3xTQx0gH&utXkU zgwy}!5-n35X8CLP{8#z0rQeF6;V}whrg_Q#nrPR{%_PBjw9YU*%5D46R|kB)uio2f z^D0K{WSB$q={PU7<)Uq^=b%KQg~_m8sga6Q>?0UVxaa%N%e7zm?#okZ!>giT(I}A@ zddk&EwA2KN-4GOmcpiK@2TJ*s*?5DB{2S0$2jbORD$3MPE{# zYeB8S-gLXe-!WYJ!Z-L=R{)+I`xAvp(rdb_62w2w1eLHNYTo>E+3TG}cN|K&nU44> z=l<_0)x(@eckYapWXxGo$;TO&bjn`wKWDJ|*QF=oRmZo10lY^R(XkcC!N%?R@WWky5#I zc{PI7gimmck4d9QPAQENkoysifAa6uB#sZQS9>iU1^A}I4NTgA2cy2!v_>VI3YRcFipeEm3$%8xNCVoDz zRYn4gPK(2?b547cl~$17=uW&ZOBsUf%{w9zO@)K!wnQ8K_6^;3k`W9<>3ta`eyca&OW%ipkS%*L{A8be`y{}!w`uy5N9 z*zTy3PPmH|wynBEalKl@m$&f``Jowq#!~_7(Em^A>P<6xIeY#Q`{6Y#mlf&S`6E;F zm7bck-4t8jerU8Vx?V-Sg7&jIt{Imbn|#wn7G=D{PzvkeEoItBORSWp3N5$Qa*eqO z6qYf5bguREP7rl;X{FRZr2f^Ke`Sq^+_KHPKV$O}{&Wu=irokp!Gr`tATuYgwo5RE z>p~9NTwUg>5`hTI9xL$q)3yv*RaJcXMi*@(d80YvvZMp)eCYBI3zHfXF#*PuKF^*w z&Beq|Ts1_aY8#;&Q>LSM>NRGeJxW#FmiH>&NR+CPao5}mEqE=PrwoZ{+j}>uso+tL zD28ZGk#=FZU(^pTYS#f@LH0$bR*qKAcgmgYy+1tQd>X-PaliQ@jtojPG|=56!dao& z8IgF!IB*!4FY9u5*1tZxE$%q`GQF?}TOSmc?$1ylH^zKzyTz5O;+leSBAEz&Q;fmz zy1N95ushBVzd4KcKXpD0KW)+W`U!$Px4Hw;-xyc{(BTX z#7%YSxo1?e(rjB=t~FLoyCtrF6nhsX6B#_*@IHFnV${64;`2a%LU{}^Ze-U9?~i?L zP3M9G@3cG;^3P8Q28Cd=nrbF^-$5-iOb<4S~p)cJ~ASq1T!MM4aNfzv2F9 zK;VY^NYr$KfnU%DaeY(IcW#kc1VS4%GCpM%>^_iIa^X?x+O zZDDnqMi~y;%FhxSQUHZkKUb7=rdVCf8dta)*()FAB!t|moH|tOajq~6$}91COrT1G ze|By(_Tq=$k-b(EcEbN-CRA$>K2GI0LP8v;@~$2qd!!D#Tog6B?k?R?K0R#!p7>i) zZs99T3>1Wa_H}<*4lyfTrZH#nludcrR-h*d6wS#{HZtN-Q(vB2gnxsEalKDTc^c&o zefPpalM^cg?6Eqn!JEM2?=8vWootZ8u3xO-t-H4Z$%3<#wT}K9J~iZ+9Yl9_Xs;06 z#zb+it{0Y<(~K(93@bkyjcT17G%oSt#|^?RZ0p7k=0?h*We|olAEZDzEF4Al^n|11 zHZieBMG4)XAY$OcF|+L6!j|Tc7!#U_8PV0OGa;8 z_PS&c6tug3zM$oUO|co)d&PGY=PH#e(2A_rJolG-g_Vqe$ixtP=oj2x>^C*dGe|H# z3Sdz4!;ag4YwGiU9?=h~o^?L6FhF0b)$02#WE1syJS)A@=p8%lyd4i7z?m>+I-Y5; z#3vsIC{79Ya3qIo*uKoypzmYrZ%w3(M`GWctm5L*j7W@@mQwR_Lbb~L#*A~3>IqIs zMfF{@C}Oyn-hOb?xs{q(QGgo{(mxCk{$Cmpg*nf}P%xoL9$Jg_kb(8>Y^QoU9#0A{ z_M2Rklg*bRbxn=2njtCDe{uHZb4o9&Y3aqUT8~Oc&FnCcppu>6fg@?pDC0CxA|L*C4#of71I!?te+APa&_^ z+$)IbQ3pIG6ckv#6mfV0J`n*Bm-y^b&(K=*!ZQS*=WnF_SC42~?&2=~DWyAoqMiR; zOO=p`l0-xl8z^$llrHdFMxLK9zZ~=q9L|0em5cg8Bkgu-mt%qHjhFi;AO9s){_Tjo zb}KFf7q8+8^l1m@Zl%R8;lJ0Af6dr7zeIRVwYEo-mEQly-CID#xh##MBm@Z%Bv^0@ z?rsAFcLsNd!GgOJJU{|TaCg_>PJrOaH&9 z>aLpV?=xc|4O)o9y6IcV>~M4K+%SEq{xOPr6Z=MI`;WCs#3)r2*G}90pGLEsYy1ay z_piPn|1S&0pUkaG3>)hq(uBpCfKTnC!+kbM{evgeN2(IKSDC>SXgHy z^bJQkb0j7-#iz~HP|V9eQv+2RHIl@{mnFkV_>_#+3dir8`6J%{uMA4ZeT^gsdfwD6 z*m+$Mg9{+RzYleq?kBXM@7*_xU19|%e0WQD7u0{ZB6iTsjCaha*Qn#g#Z+?x+`Zg2 zJ0A*WPGz3peUu_|&xVaI_zpKfBQKi=<93b}OA)_nq^^y*-P0Q5i@5#D^{L zDR7;?^Lx&quF1qax<)>Z%gn-0p@TNpO+*vj;1wXUsODSwR4HPW+3ua0I42up#J8X6 z!-HFG!KGz*$5-$EK@815h_%fweP4v0*J4f?UBk^+g3=22I8r0R)3m*!WD>4#4ml*aOyFO67@7s43 zO<&iQ7rtw5VK5O{xp0j!ZoX)}Ae`@=xnMcC2w-1w-#2metks-8KP!>rt7^QS{yb$x z&bK2L>S1NMjdYzjQ_&Y?dhJv`gv^5cDmq8W*GqN}^xAcTvy0B~X__IE+23blOr1b2 zuBrXl=TeC=3N*&#`2Iy=h?e;htx|&-s=>?pP{69-_2+$I;(l`nhtH>{=N&NLdL*Gv zf;Q+ga6~wgx#JR(>7pw+N0R_o7wMmqX$`f-K0CebXtc99o(NIfeqXLWuq#t^LX<9Jn(R+IBONiR;YIJ=k&}w3{wmRdVJFHI*NbzpD!u^bM zTV_TdK3LZ;?nv~sPyE1;dcs%H3C_LI4?K6AsA*y02Gsos@>dMDjBVan{^^HppkwcJ zAWRJ7Uo_0qBn$Mo82K8y8e_~=7OR+Pc&EdLeRiRuqMZbsZaVkfnGgv^N-~eX+0P&{ zNwMaAQu=>~XN0h@e{=GwM8T>1LNdFT~Z1zjzF>SI`r^N7Gfu~sq zp(n86W%iXv2SPguYPZPF-_+6B(Hj*$7j2Hocc85+2uZ(SaIOI}2p6qZ;$kq-HGk{g z-@X-g!!B`3Do?&tXz*?{pM>*#xp(#Z0Q1K9#P~Ke5EGkDE+6`#V7lk+X_4JGtza-(HC9RClvp){{Df^&UXT=bt;CB>c#5lWca-p1bA+6zN^ z8yyX|jyj+t#{S8gcOtegBX124#h&l%_4eexKr2|Ui^)oEv3~OoGNtg~#~gxx{9YzL zj5&zf4Af|8-hkhkxN_~xGOxh7LY&wI#g(3O-V!BRUib_QbMniv@w zcvAtSGsLXICm7|KV`#b3d^D6Or$>cJ<`~q$|94%Gf_mK94mC9a(yJjrVk(ANc0RAi z$m5)MpffaLqvj^w^xP&L{XX}HN;3bqRYJ+$Q_+XhBZ->3HFR|JeRZriaaO)U(^xxl`)W>k6~Of$Rn;fdek`DSw0~8MXNJKa3K)HA2(_;3u^<;6`>2 zcb}7E$WzvW@Y|pK;*Mr#ueq}0e`WsxIP;%Pv}Etz>0*~Y5Lj<}y*^iJ85>Bq6@b#e z0iNXdo}3r`+nBeh|72MTz;_8Y0t4v zk1*UF(dgFzjZ*bz5Ao5WmLu5Gr=gFR)Ny@9M`A3mc4i9VGISl6in0r?VhjThEr^1Af zwlzyol9XHyHm>U8#tEmqA@ghV@XEr^?an&aKdH0T#DtRq2i4ur=XY0N&WwxZ_VY9!>L*6}3<-MB^Je%Rl;Pv$aymr#f)-~;yNhjvk5m>V&35f7Ln+3n!=qxzyzyqE>2@Q(*xeBh zSG%sRZacONDMUEg?O%smLE%S~bLKS#`=X;+SOt}0ZEUQgDN1YSzTSRbI~!0_# z&-ZWcwni@J?7^fyd60kfdi7D~u~$D@^MRKTiYFF+QZZVyk04Okhn{_o-t<@Fcf<9k z+~6_9-fOErwr&p+^m=}SaFEJFQ08)Wj8&))~KEyLP3BAA81QhhhN8Z#c%H*&}p(szaCr~F&+TN zZl*qv4u26FzBs{~2lztwR^xGave$eJY~#bz>S}g_G}B75n*pY)-rad%!@6Yx0AL1w zEhG?&4$qYErQpNC$7n}hZ(Je4{vrwdsyojpB{`Z1|BnxTnE!8mKto|K2utLLEb#b} zRS{qs+10%(?UJC$7ag)X+(YutgK*ilMujovoF7Zn?;}( zn}GXBgZZi;ha~bFq~y&2Hv@rDw@e7?Y(y3V6ASWkDQC(8PnDHeSw_7kJjLDggJ#xt zataI2A|j(BT*Ycr)--pj3wRi{$n|5Qay&Ty>!?yrH?DP|V|XXZN?tR=wpGOkOK2DS zb4~VF$EnlPzJZ8mv&W{uyK!`xa$#h88Uq2kBYUMT6mk2ok3H&KaiwlyXRpr5 z%hs0Zb&y}{Qc%!K2~TtLg6yiQjL~!+9@<~zYW)kjI`kEu8ggo!ET<#Rn&79-AWh(Z zzn{tAS>lK~n0YwdNG2yIC;2MIftwT)lhWJK-i{A&mQ|F``v*ePe?h1K<{z-;77*a+ zngDSx8kTcXh%-^1%@YpgzpqMz@mb^v8~DKs&AJT8u$On9wVD6G(brg-31d9 zQ*el*L{IQqPfq58CHupva>U30vyN9YU!mP+@C}EClLMNr){~+4=f3rC1BcgayHt}x zE}d`KG(tXIUo`P{IeV`X+A@8LJCR%~*U{6(busNHCC{mqpF++qU9GREv8nBokMs8# z2{w-xL~6~KmVivW!QHSP3y*|pALsWFTi-_3lV3)Er5C5}R9{rFCr_c*2%cGm&`p0?aH z-yG2P^=pUM#d)c3U^6o_kI6@Htrqqv!E5JojUC$^3X@XPz7CdD+3MXJ?ZgCp?O9vi zj-;!80E=W)oV4*Rnc(ZM?cLZLLTYWhfhT8D?^EwKJghA{aj(ZUB)3e=>oV|V<%fp` z#W_{bHmq~~Z$?}b$w6-A)eqEfp^YiEhmiYgoGcxOA6hK>Hm;04=DvQSthDS(&h_u@ zQWK|DQwwp{jV{(IO1$POR#a9A3kwVUmb(8lsB%1{QnsqD*kj1r-6=OaWw3DKFV$w5 z|0#%RRE4>Uy7K)?uf~fCa$Dll6YISthnRN9v)vqe;?{O*9-UsZ~P? ze#l2n81{y_f$!U{WFJ73=Xzn^8b(|q+4B4TSYKIpv(y(9z}Ps2wcHy2W$SM&Uwm`; zwrYD73W@~C);Q{80Ts0vGU9Xc4t9nZ(?CQqofdcgtAZ}AK9uUP+GH&HMOJy2@T7BIO@#xoxcfvg0k>l>#`cE^w>|ZZ&d$ReWjMIG@2WJ|pTW1+w&uWv^9SE$ z`48i>vZN}PtFm%BpgVhOOB_bP$Lo5!DSAb)X4P+XSxWS$)F=Ox`dVK2wn7ohmi`5u zf|-1-V{Uw*eP&W6#(ptIhUUDjVQgsQ4hLCe{%~xX9LdE-Zf>^v3724Qto6Itxiwqy zX0vtlx9ByU!}rI8LOUwK!U4-&`)kOSUDr=L}b3Wxcq$ zN#=-&i7C;_`4k%J+TCrQdcM0bF=A(|NDT=I37)_YJnkGEEG&nM&uI57b##D0;6UX~WCU1>sj{1$UrBJ-EGMf?4Fm-ReaMNy3#yq{9(X|myXVuEo=6(> zZ>RJVVbaDj64JH$S4>6k8qn9wGR66Frya&K`h6kX;oDhdy!U6;V1ohO8Lk4 zamEGAyez!E;L1?7NWsqs_g8b^sZ35!L18~5aK%-O%jIsJUH8$_wA@D{ z9J^w}sH`^Yx_d3^iW_C&agNEvztF26`_xO{F;xa|gdPc%B_9L^rma?prc%ZDSMS31&LQd3%}m-Y-R3l(^KgLJUfS>>~OHyf>z zt(U{=E<(9pFd4UdCcA4Va9-Rx_j9h=hVhQE_-t+6$EdMATAG=C29RVD!^`&C%w7n?VQ0M1o)81m%be52 z_PEYV4R{cA%!fjmA)o6m^YhFdC9E77SCe=3)HPp0QZhWOzbGuDT`CWX zx!|oq027uOllqruf?e@nrA2c`v#-S}+oV!`-+#8;N*^bt734HoSbVm{w3Z>|a*$LV ziaX1tRbYytnH5@)5v!K9uB@O%st{urac<;YyE;g@fp*;ro9K3GZFleBFT;15or#sE z>nse3v%mdQ)#WN{==BT3N|RK1 z$E}I!SKWwQ5otNQRz%cgtZ?MUPxMAA!`W&@h7?w^oE^o@HB)bZMYNUK zmxd`1K2`>zGiE(ydQTRaGv7eXks@S`o4H3ie}96bPM;emAwF}<0?cf{QiC7hx%uQ` z`0cA&rNs<(!PhUW5&@~JeP~P{LkU@j?}Scf;_?7YBr)1dDY1%GEafM)7<0%YOx5l@ zgd^G_Y!)oWb6j%?d=108wcuyE9viSJbD1$~nOnO#Xw~K$A$J+>M9~fzzSZUU*}nBhLCu#_wn$$W~8w!+54V&kKxPPQ@waPe@053obu@O7%8 z?rO+=SA*LKpX07nkyv_n=V^)?w`_&Ud+TaWbHl)t|Ml*n6M#@y!^<-_HV3vo{MLt? z%>E)fun+m>=mZ=X926Z_=vFusVw&oupDI_?zN#tPF?R>LA2c=`Bm?6lh+Z9YqD-7b zoFxYsFf`k^_w`+W zD~ElFwpl-UUEcuS47GH;$>+QR_r~0#9JDO*4ukJ8<+(YNxQT1Y20BSQ`&~thyx6$4 z$5SO|w668u-ta+&rCz!v?6DPaFc8b;=M`Is$uPRO^V$@(1~ z>3XLI3=_$}bs2KWIPKoH_G>BCy>1AqNcy;Q)qTAU0U_ru2KjCXyc3Pc!BIf%(9i(i z2m6FDOe}kZd}f-gz3F?BBQM6f<*l*fv@7-w-&b?CnG3xI0vts4`q{%Ha)RPBAH z>e_#%x;FRV!K3zM7skUQe4=Qs!R^8;-{xR`7>V5q5kbp6`))4i$m*D&&n6)OYA4i#0Q_HKL}o=EMagmI1L#<4H7yDLIpcA();Pz*)hBQZsXPy=8^Z<-T$?F z;TG~U2><3l76>$2?I8#s+>S1_b>o%qBv8EY6DLaE+0YQHzJKua>;-420Z-uasPnFv zx3T>r$Gm@W{49l|CaJi9{3-blQ6lp=+q-@R!3E)96}kROC`0V5x;9=%K7Mca$8Xxt z)-(6Bg)5w2jY<2!PL=0ZnEk=QmPhA~><5H-++FW0IFO~GoxLqc&*ByMKP!E+SB$Jo zgbaj_{{aB>{I>Q2R?Zp>bPR-#e{76Q;8%7|@T(TRfH??c_*)AhoM1O%;o)CyCFcLCyvi|Wu(_^0}8o_-;z+^vSV$xwC zWaMCfY68As1h-)Y%K*%WqT=Hq%p8AQJVKbC+JSq^+FBVXfb2EsWralO6+zDSTJ)+w zeKU~3BTf+uFiLjL$9}xvA9{JKN7@J(=oRd39SrP$F=AnUhS|#cq$E;9Gm7zD1#MVJ6Uc$MD+u?n`1)QazrIG}A_8e}6w6*^0S6BTnL{ zY^pk!?$Pt6-K}*!`{Mx5v#TI{CcDTjb4T`J*Bgd8=V)}gRi(@x^Ge)ADiB;|eJVlW zXxsbDS~nK4l-BNp&2EP+d$_6?m%Eda5-U_k~O~V1!3=)v1MU>(Gi$qtzVQ zU+kE0T^k!$-h1#P<;w?dkPjLNTMBOS@WWJiv?uYKB7W>p)0}gL%zu2tb`qOYb>c|i z2;+7p$QVc|{WRcf3Pc*qbkLa}nptXle*S8*R`yI0A_G5L?hNg|@mg0aN00_SDLb$H zo6=f7yMv1U1Ke@w@@u}I@*1CMpywsEM9V_u zXD?I_UxZ34UDl_o5h)c# z$c?e<<_nA|T)xiJJwvOHpqeC7h8j>%%8bYp5K&tAPza`fDI^En;!rSVw+;>FYayS^9p_kE0xbH{~c^tJ}=^TFfe=O$ns;%i+Mi(OlWE@ zT(T1jbw+m-Q{MF-A{78D%qLnNiu*~Vc@gq!AjPv+lX$$F7MDqv`ipR z>dWuM%`c%ul%8kxLm4d0Lt(|#ZAxcGr5wQmIIuy&Q7UPRDGmIsDqJX)lz#_Pqf`?4 z9Sn<7N#b`fN+PA&*S{CHMD)KAw^C=$Hcp8Wn0|MZM;q6cLf=Nt_u0tJ6Of2R1ta}s zY{ZWWsgI!={bg)25|QY?gDFcyV*C!KE)n@i=-=W5vxh7&HnI^X(57(uI!pE_q85#E zG$r>XzLOgAv0}INc9$Jq>NKOnOUWEZ1Wk$8c?&Er!s-hA7=sxl=4&Ud-M>N}%!F^P zoC!L*x*j{avvwt@ka2U@#e6CoYBRS#Hp(j<0H%je6+|V>eHPfSx;_Kv2tx0Hfzo>J zokl%FL-B2``W_8xvqt$VQ&#CcQ=7-M;%8FkGjD_5SJa(fTg67_m8j{plwCvSZy}mh z(yOYl75h+a#^r|A_NbqopBvTyuITT&R6Y1|tRi}Rnd6FTQ)|W_O7CxulbTM`s0)!a zxjcg3TRiudv3jErRdJe~zBNF=duy+`1;D-Axm+mosyCNI)KC=Go?g75@pO3@vDrFa zHc?)fOg~|du2*=|YkJXs^uoNH^BTld<2qoZ`0OZfHmcb%vZ9NJTskq(Zy;<^43EZcd1oSpAs!a-Fflr zbs_5Qn=SUd;o0CW2Ty7$Uwnk8opai-qF2*<P0>GI2lHpca^_j4>zQ7ALJW0nYbz_1e z&xUS%m7P8Xkv%JAtb>os666c1_<6N3S|u2rL29e$9^ag#DCnZ-x!rYnFG|P(gT8pY zECxsxOPFps+xV9eG_DC;GiLXWM;mv2`krO3lLaa|Y95R4GC>n+*>xD(b?ar=WHm*p zwx=G3K-F9vZPzzTs)8EMrLRaev={gcrJ1H&kFM@b%T&u8H(hq5@=tGIzG*!iRmaj7 zC*QYjLyB77d9*5Ng#aC3I!HZ?Ifi!wD|rx3s3Y^QxqnEH&t642%;X-Y!SW2OsKhl| z;d>NYh3#)59eBjpR#ePYeJZT5s}JThatM{xL)3~*+{PuoIJr4H=o#D7*G9xAL7Yk^ zVbAONtmhx-?R9@CpJwp$RT(~xY@&hTg|{%tsg076gMcd1rk*9WLv`Ss3%)AqD!?ju z^HLUNH*W96##PdxF3O?HJc^94-(JlUlypi*4XqC0bIu_=+q4dya51?}n z91_76-jX7e2UdPv&LJJZHEkws>~8O@@7AWlS=~JDRY(Og?lvAKm5;@wLEv@KM}ePy zfkvg+Ym_Fao@r^Dy-N=1)-^|8%XjDh@ z;7EBVbyp}IPtp)<^o+IMuJ1Eb({Y4yUq^7c)uZ{WI0Kz2&e8<8CVS6%zE?%?fp_GB!VVq=?7jbQcZj=K+nA!t&wfOgDu~Jd+NnFCL4d(RB>H_QUQbQd323q-C&aF*NDtnr*Sj2O^)1`M)9$pSzORKER~^jeKH zxISZIsv<3_y`V%lauO9k14f&atHpQk#|tR?K8AY+erOU3LL5<=4kwhjl9tYP6qMr! zOaZ-^dsX?H?!MMN9e>$(m@ifkNemhMo|h7_B-<594wB}F(7=8rBqyf$5yCI(T!NcG zXwS}&b++!TS;&4C#Y^DqFey@^HN|zkU8mKn9Op311^IiF5GV7aO@Z`$-=8>aLWUux!3UcPNA)GTAycS`>T1fhJ|R}r z4>f`LbRnVe++rgqIH$`1vWv&rxLk6oVx`r&#HnOtgJ1zT%{_W(=fL@Psq;Y_27H<4+$I!|L#%cAQ?JHg9h5`FhOtA6gU$w9VAe zvt5?#_t3AB;GEdhokLtZb-8iQ@g_hiS~>BRnKI>HVJczQ zJT^(Q;+ab5MlEjIv+eV!Yv=6wP=}2UlY`LUy*{HNb2nXGDh0KvFy$!A&lZM98_HVF z9v3Fn`VtK2AF6s4SJ7>k?@D@El5y+F6n*TSc}2$D;->J%BFvF*>}E{@;9h;DuTXa- z_3_8`xQ*9&Piw&~K+<>+<{^1Hf%OzV@PXbB)W6)pym&yBZK=@&Tz6wH*w63A$rDNc z%E3F>t7ELTuxagiP(H24wDF1#=E8~j#;PnSAnQHfa|DQ=9lU~n8;d^%tpAg-_^+V% z|7WrIuP|Lv@hKMnGcbP)>sg-?2LD@uIolr@fPWL1v-}yDGyRbX_-_a1kJA6ofjK(| z!@maRIHIrp7p|zUzdo-|Z|r-8{NiJTVdqCY@?|;<1_bY~CL-RJD5jHF7r8{)feB=4 z9^2AlZc+^{mZsb?d^G$eTNLK0gdC^j;W{H1QpdD z*tkvEe0`XwkqtxLIbBuWjQPb|v=@1YO3D*iis2p2LF1K!Tvew`>S1&h=fa~qVcQaZ2 z>`es8GWXb;QqY(L;yz>79TR$Y6DvT-#I@}}Ged^Y2wwS)NBI?XT=|m4mIN?;3-~bY z7_og@E3J#JhZ@DzS8jSIz0-xR*WIXmMQoAUksX)A`}~3WUo7lG$^;oZ9mfwq8XFfq zuRS4-PwHPsh6|3qTm3Rb9H?>%($*Bm(toV_s z+}9ZI`4qqXN4#ME$G+rv&##(^$`f#@{II$~SiwgHf`oObTHlDi%)O-RL+(UEOkG?3 zf@##*#e}w^7WmE)8BZU~0N#tRDe=H}p4PCm4PkHbkt*`qw~usd#u0rX zz!m7}O4W=ZqVJLY^c!Z6TM#%OhkcTAv>_~5$db%2e#yzuAB(9Jq0M=m=nI}u;G+g$ znhhL>|3FMc();C61CKPx*oy~%hpuM%r5?96GqnIs((XaTBs*A8Rhq%BEJCS9v(qGH zpseQ(vZf58QYk`>{BQLG%N)`3dm-EE1=Rl`NT)POCa|cRGqL{Aoox$(+8^v7rU^a{ z>$}Lvz4c3bo?~E}`ug`IKUx%##^b1*fwGUPt!krql(7P0>g_mD^{hfJjbP<#kO|B$ z-9ljrfOXq~korrv|Ez$&F$*}o0NdXQdDS1w_TLDZy!T7w?bt#*cksJ_>r4%4wC?%Pe(|qS}DsVoz)!jYnRuc>kJv0P`=RO{z&=+h3xF~lkeD{ z$b45WCe-^deOJ0N_+=Vj<mpZN%l}+{~7poGj266|31N3C(IX%u#wTEw<71FhCv?_|UJXFdZ_738(b*h?7!JC8kk`z`Aruc|SRUEil$RQiCRDhBZ>EYOckQ9r4b__FcmhEPH8jFKH5l1-8|b@99_ zzKzg$9~!4~<+0AK+$o^zIo1T3P_}rw_ujyhz+8S^rTR)^waU!1IWD>JYvnqoTlfJd zk=?6>J2&U!q{JPUYsZSCMkF%+ebw@|2Ksr=L&^RdfX9P*!@vbJpRxbxhYOIAsn_|H z;XNt5%t8^{y6B?N;mLD$KCheRV%3wO6`lQa=q6o%p->OdIvyUt)%|Yd2vKjNvEoXG z^s2hnaaODzs=*-xqFac6`*V+ zcZEwQuke*A5iCQ)ZF80GdB!%tqBk7%5x%MDBBSp1T+*%u0x`#E_+N;vtp5K@AzkA_U{P|#j?Yb?bSqEFD= zFA9H#{tzc$44Q+?P5=`qV;)V=FVyCUEVZkRYU=|7Pv-by915pOz7@3&MuxMQ9wu?J zAKaqPf#IJqP?946zPo|Nacesmw71(V^@eQ=I({;XE}d-kCl)-0)Gk;t+*r=~7eBhl zxf>|~rG4#p^xrW>GyAqvIj^~{tgBI(YC{U>G>cVMIzMW88`|Ow)t6kZ?&pS=uYRQK zBs(qLgsnPT`eKa~o+&Ki{57&NIPMFn0S3*RB@_g=vz zVrGD<+}VgtzYi2M;CVJ#pue#*QbM^8CLG>!B}W3>zD=opC$i2$wkuC(5PTGM3>eXx zpYLNMd!LDyc*|^jxKE8Hk*ng!jEi5Y*>w3p34&4W0}=6;d8~)wv?=UAYB+JA-69GG zIJuSXu@3P`YSTBLhW?H34us129sc8yl1$t@k_ zT9D>0`uk*8@+QEY2Mv=baI1og@^z7LwV5g^XwWZ5$G<5a3ZyE`j0P$+^UAMxj#?IO zvJz2GLW;d7V@19O^S)cdy1JatErY6C7Nlph^xk7!|kGECE}&;jk} zi-oMJp7m}|rH&@42bcTCSvL^Zi2Y{#t?bzKa~xx4g`udl9-4f24-bNDz5{}>u@PG~ zuS7ayCy6s5u}Yko_`%{WrSb+_E2fc8*M-{T)0fAJLdjC6*p0TndHt5r3)x8FQv+*V zYi(v;OV?PB-7qxp`KsGJ#=@eN$O< zH6^9@v)4@XxfjI)3(5QY$?FHBo5|5z`uqe_A~y%KTxFoCYK1DeF>3$Kgk`4p6Ff}_ z^rkxaLvaCKy%;^~3Ow$y4a1fm3A}Ut^SK8hvDW~6+HqmN{b;W|)03JvbV&sJ2czx| z-?yLE0{B_4Xe+vsNhj~}kna8GI`~<@GAS(pZDUja=<&do{M_8YLG%a=Yi9dM_EzhO zCf=Q~gZPErwa%IK1B*ruW#mb8g%^vg&n9&FMrr5uXUmYO9(%mRbT6#p%EWd(ic4xw zds6H%@o<(fbXscsC}DVYBDt5b1(IdeHW3*myAubK{jY4jF(U?9l9-u|`?nH?Jc>ev z4li{-_$fxhd>ts^5gFx&4_AzQ%a@7X3(ah&nHN%`lh+dm%>!`6Kx~B|fap`kqjOS3 zi~Wd7w-(PipZ;C(=)_XlCd<1Zr$|a7)ry!(Jolr7u@tq3IlJFZ4qOivv9vwzp8x%t7ia;ZP=Q^+?)ZaDpo4}jzuQwq~pVy8r z9Bmf&t?!~-7%|vr=mIkt!)|c7D;P#2R2OK|sfL_Ufi7~icl(TPggt3(&&C&h{X?LM^p(6VvCI97 zM8&9=k{U&=A<5p1G@ggl#p$E_1qX+>n7R-uykGnOHnZ^T?N9gL+O*>VK7e`GzL z>MH&Z$`Kx=@u+DHCe|md5Hhho2?+fDl%D~=Kc%I#{;FVjZ1*1%CE#KT#(z$fWT+o@a;qUD}A$iLS4#tDPX9dsf6@roN$r{#|p8PeK&M7z4SNGdY$EiO-njg zF2HC|ATh2NGo!Sut~(d^krDZ=nj0i#Yk7mW@SFoQhG9H{x#-U~V&0PPAu}CIM&^H{ z?Q=oGm%f6oe5)@3@m3ffQlX#p2)kc+3a}yH#x)f@cR?O?9Hqwyuaj4!u21!K)m6VXy;Th4?8E)q>r*dDQS`=#xG zInz724>A;AkEG|MlTW5^Z&U5FGd7{> zIh0S#&or8Yoa+222q{zL=Na_nP{;{-8?bk|?(fgCM3s)5DApsdM=+Bm0!}pcg2V`r|oIQP%OSR zjQl-prk#Uk5pfN`D=*#;x1(C$l5+iQi)CLTp|wWHu1oL{|rzP08vAs7g1igmFc5_Q}uvpC7X?gk4mD@_et+}Ex z+Aqi{+Jf^H3+2XeG-^80+~eK*^{Ra)&tDEaL(o;ik$U$k4nZW#Q_a&3mEpq=W|43y zmc8re*r0Uzku!QNkZF*@ZLEJ#1C)$14O*ZI8x$^~MYg_yWd+FjN8an|e@Jgb zNmB8v=V2_Rk=94nU?XiGI*rrN5^)I#6G!N_v%Eq45_ae`mAVO4@BIDkCV(NuINs!b zQJMtOJ>+^~K5UVbi|sw3sp>bDm#naWavCVgmX`r5iJ>lY&c!FBwd%t6EA1h-Slt(W zMr6Cm=GT*yQGR*?FDuGa!8hMd97!)fz{Tx&meHRzR90nuH?i5;cDU?=(jo%{%H0ak z!G1xLSU)QK$>Qsd;5!PaD3gk&DSKO73{!^n!)%!lCwP2`E8JR9AjMg_{k!|38i-#u z3Y$RZ?M}J{cKEpX{pW@)_Jg57F}@e^nV5aPO41>+eodL;%^Le?D5@m8^7P^qHbGbu zTQm)@Y&r1S$3;#O|2aK;lO(WIs_tn|E4B?|=~IpF2+dSYT>nx^3vV`m?aD zzrH7%Cz5`=r$;iHJ4VCVwA-~Y-wg07>TWbuuYrA+{WP{T{cYg2fg(DrJ_{T%f&O!9 zMM1>`LAkGM;xR)0!BUpOKy5#O{lFVOZ~7zN##_!Bzj|gT9=pJGYQtlzc*_yp_13Z} zcQad*xd(f&cTHh9PTOGX%0Mh~o#p%yfA}fTXKY!tR9`>5(^jSWsLy<*p;skL&$jB+ z^DX9*!r}9FGUAg!I{%TBvqh_0r3g5H6+ypFIQa;<6{N?&f_S(QdyEC~ z1%Q%wyJRw5VlT6!EUcGpfwcVZy-;0FluUxjZ~{I*Y+4w>^C8F`eqdtE;bx?eFpC4# zlrLL?U^iy6{ZMhqZ{|6jf*8e~yC)=;@J^sJhRI&VS zAN5xy=i}as<KI+$I?f>fABPO=Tnpt^pi6eyg_1NV*ck1Qi6(_)r<(T=SK0QD4eXa+reuFgibD8^pZsNf}2G&e+gzf zcsxX5_M@hQ!;+t4-z6~_iTt^**YAxS8RAe`;z;E01W$%6-jxXP$ud+2gl||J;tg$o zBBuPZj1u*lG(W|?0xrWl48(xsS+U9xE+!Y6-td-RO5f(KBqcZWm}(Ddb)-4FB6=ip z;E#lt?ysv+4*Y1-rW+v5l^S^3Ju$&onO7f5a$YD^*>}S3lKNHZQL}EO6>u44a3At^ z=efyqwN^bZtlh|Db`Ou+KTi7wDy7}&4*SS}ZlUU|H#+r&0HW^oD7p)QHO_2wD)avuMuO)kkjMvMd}|5~>Gq^$T7bBkXmY+F8I zeKMeTy{v9V`xeL$mx(n+GLL)55zb0jTvav z>DB0o9fy)YK_dUwovztE{?&tlLz6bb=7*w0i9p7V=3HzwO|f|h$SnG@8Fu_Y2<8~})0mvt z;_4%ES+S2_os#@&F)qW}{+`d*1l1rWGwXnj_ZY|O1+r6YE5lo`}*?PWrWOW;o~3azjbn&Z-PQO=%?06U$Z;dWEUsTM?nN8eFzgTAl<}jy28& zuc}?@vsg(Lk-IwhQ-XDrAvTy1-sO@vlyjmHKNN~eI z$7}j|)ltq7VUwxXp>R-pEaf4gW+Ra~mtO|S3E;rK+1YD>2W1L(vziEPW&UEfkU*VL9L&^$5R7;QtI1KdM!2 z-x^rf=Zcj{eLl6eMw;hY!w%ty1*P2LTFab*Xq?MsI7rmL**$`Te@KzLaHG;-7sV4fX^(|J)N)P8)-BA)%|9#@fAyegC4kgy<%oK*6+_iP6 z>MX6fEJPzA$XUwzz2(wzS|5OCt#r*s7PJc#r>S9gS22LU_iop?Ebh zK7y53QRl5DhkrYnPoj-e2Ziya@f(Er+rF{4Bj|8S^vqXwiuY zsfy6azcm+^dPi(6K`ksxLCOH9uf?WkW+9_)Nkzm%4wO>|$!V)m(eP;T3DOBrYbu!= za~hfmQ4yO8YH(BWFzZ^$GHMVhXjAerQi`jy7&=(%!U;3l64BF8F=$Y6(&>qa%QKPb z(+ZN<0aVRdMa14|0CG%wJr7hvuNadKU z)Qn{0Mc%%p2Fd`awd9o~ECdbXKaScIw;;YDyaP>?8m(W_Iv10p%oZKoTGl z8YK~Sd1HM>IAs|X5lJInOCfa@prRdv0+F4bD6gofq>{NDl^h=nE0>@+8H)tD4wD%G zWG^8uXvPj=x0IFE=K-=Quqy$@0C2KEc3VwxIxz<_5Q8C^Fo2Gn(nwg|mfoD2N`;2f zMq7wV&y*G5;2@<+$8Jo|`&L!b) zcF~TVj@7YkJ007$ZQHifv2EM7I<`BuanoP#Z}0t|v;TAcG42@mj`h}C#;TfguBy4# zQ>86sORH(mVq&kUqoP7*rN&Ck#;B{|#r+?N=HK8R-~R@R{Dsl^2VUnBxuZ$*e*l88 zFw#isI@p=IsMGxe=kpuu^KWiVn*X3V zsORt-<|1TmXZbI(6$y=qlQs9JMGD-!p_t739vMn(mV>0m5u|U0Wh8^#RGzo$xi(X5d! zBllcB2pQw=Y>cZdo}1(kX2ki|JP-43`~T<4%%iRqlowoPUw@<5+07&=nKq z(r*M8W+jgh)2Ey3o%%7jiY&sY**KC0KkF8GV(8%Q>UK?eeCgW5i+0Pi4?Le7^*DIa zI+@`23|cYEubSwXcCxqPAz7#Cc)aE;o`Ts%1aT4K1;7s8ujVp$1G>lW4y(#L`lYk4 z1a6po)*QKp@WkCn9O0U`6BzA_z)tS*ef!{>e4wr%cFB%arwAZ&YwQ;bv`#qcg^Szpc z?myDd(SO3F{y`23c8-RB!JibY6|GEvLz_Mc>reW>g8yoUvZ;ZCiM={K%WsY1f4Y9h zd~Se&``i9)m_Buq|8D+Molx%U|{Ut2WlplK+JMPWd~<-}e9N z{!=FHzv`y_m-}C?&#g)RD&@ERyX?PP`aAdUyI}gv^>^*R+x6+!{5NFSU)}Rxo)-TR z8OFx)?`)yGT5BQ(1*ISbS%2<;E`^*a~aE%r^1jpQm?A&jv|93M+zF7az5=O1VY#ug=}D zZ|m=Zsma9Sz4`}k;3^NcTYlX?r{r7b%uGM$xjw3$V@tNS-M&R<&VMyBLxGw*!ee$T zd0sruC&n5hUL~$<>T^Uee@Dn#)RJWOnj)2Vj?8>1U66UoBi?7^hLX41sS}xJ`B<>{b<&$74FKCYUU$D9>wycLn|Yj20WOs^kXGp=Gl z$>21uQVYUS3&azf)$LGcQ+Hc)Np>XPU8FMw$Q91!imiHtYXip)jv3&}r}gQK@ze16 zMQ{m!pHM@x4s6xSfRvsyEx$#^$=`zxnE^5x1q%!NPxHcldeUs|v2ADF6k;AVXL8P< zp#42$mm%tul_e!*;l#7_rIMuvvTIM-2jGi;eBarBc?fd`VW~BSCobvZe zi%;O@KYLYNSV&nw;NN@of6|@*yIiAV{)6oNSBJ9F{h!6!pSM~6yI72R4pp|HRG zzf1oVRG*>0(=)Sv3Zu`^zhXbb{!aCGuD?rQVPX7J(mzW3Q_7$JKlT2zwRE)qZ27<6 z2_5Tik@z`$pLpHR`abLZXO6!}?DyUOj{RqzPxqhn|KAcF<8Oh^_p*|YgA^1(h$xin5|4!wkI#%KIV1TX=icf? zdirc2GD7sxQ8dA#N8RfAvz61+l&Q(RteJ29`)2wH z-PqjD+Zp}PO(hSks%q=2GP~=KqBM7vranAwqo?SSNcqLAwZ5#0_nG~d6IQQ&`%~j4 zo3cdnUApxnbuO=}shRx;L+Li=jEjR+d9|C1u+1jA)*Y{Q!b0>F7xWWiDM#-x)fSP} z(L`%gb;BC#4-Op8WUQzOcP>Li-*D9Mdhw?pPv}p9Pav)n?Lw6)6nii?psr)>f?kGR zf?oPkDYG}K*i+Zy2Sj!~8o2I8(UjwU<>O%%<3X4yK=g0eUeaB`n{x-cH@7Y>0ieEo zCU9u~t+kYv&7y1Vw-LbXEBV`&S{IsE8;M?lpSYQnM5(|z z6NaS-X8(!**24B5S}Mws&YRF-xHmnTJ7Q!7dVxM-m`2}%b^v7s$^e+;HTL<-TMx2C zzERi9MR6~a6C7qf2iy0^=7=_SduOA~u&Gf*7WwjqXrE;-;j%bXRW;2TL0!>H^Fq=6 z<;x@5<9~ce{JSRDUjH|mo{pB4nTB82M#Rw6*u(*sg^u}it@$U4ih-8p_r$>1{_jcI zU+W60-wgIU?lbQvG5;>$b6xQ{*%Q*WG_`Og{cEm=`{!{(_9w#B!jS$G^!}UTKeeNu zNu_ix4Qc*^9Q_^lIqx@g(Erp$7+RWsZXaM^Xl4Jo0RA1L{HKkdEJX9?F~(<6D#8+wvzJ3OU*iGe6es zA3Q!Dyg!@)0J0b;1@x!dT>*GEx8LEZy!Id~ncL_^B+tS-odLs>?GLMpsRH zj1o*gY7vnR8=WoIX0NyGU$bmuuvYSc&{edFu)Qfm3?~r~(+SswV(kNxIgM#m zw>eHI+u(!Pi$X`K3YvmNXtX#h!BP9D^^V~k{?)D~%zC#x6o2qRJ@M*JGxBOimZ-2l zhg=1jl59}umO-({$KZSNPJgH4A)T?Li|t5r=Or|Ew?uoi_p@B|$zs$mRW~ERA^Zn3ya>`Xr%Tf9YS@uQ!z8rxQH{<3dEZIvQ;cvjK6ak_BM;*! ze$TalCjc2_C$|X}A|BYPo^+O9F;iFPbd|5c@*FeKq@uuZG+vN-IuA{S^|I9eT}U>@swIl!wj&MHCRy zfRD~3zunUYFldW?4diBT9|!kKenDx}XfE)%`;~hhqcT?J-q+GW|En#PY58Bp<&i2SO!`c}!5QGhf0Iv{{1kBdKpBjtdKB zhb93?=t`Ey2dc8PP44Mon1HBO7%n?m^ZC;Y?N{OuB;?5;Noa|O-OQiXS|mCgj4E9v zctIR?MBLnp)2(eryWdrMd20IYb3JFt`s?c1Zm_9_<*JUI7+GSZ82lo?V74@hXxfFN z>zDcx6v_$Oa3IO?;cimREhQ)=zf&NSh$8MT@(Mf(Sc#-(z^sIMoTbj?D1`S7dt)t4 z{lZc$mbC^t?~&>x8U3Ub~>Ga z6!JD{H9Nd{ASt(_Rap~m10TBLc|1LNPa2$Km5R0soNQ$RQX8#Lvqzm5x#H`wdM!2R zPekoY!5z4}sO0fphPkaM8`;p5@=5F#>WLMghLS04F}<>ACeq!zdEy%2*5kwaUq{F{ z3V93xPIXMc)V@a8LJYxt5WW-N`NQ^Lb5Ko5v!(4wk8H`KcuR&PClVO~*^r&H>opW# z+2r$&H@$5N9mjrdX0~|REUw6GRz@{yIRUlVoNNPlHoS**Vxexyz76vX*%DPgyQRCh zCd(ZW-V&R*87D`adU65@#ayC=Jo*|jqYLte&j@rP4a{{3A(qsO$)oAenV|`7v*RzM zf>mP?#7JCo6hwf9cI4yrkDwzI#$@EJ$WRm10IMAOcK=8{qd;XF1d|mzpmQ z8L!W*ejEmyg@&Y#T~N`kKEG}!54Ykk6;1%In?h+4rps5IfDZ=mM57PS8A2YgO#OCD zZvk{4{^CL6Vg2G#M{{~|Z>yc~W3q1LRv6jD0#jT`mvUR_N=K2BJN4+*fX!kODQ{$t zFP!Ch*V-_m;0QxrqY&v>|iw(m>6L1I^eW6vub*V(cUE#v6HzAoz?> zNPGOY2oe!oxt5lW%5f`_NJ`=ydgi&(6(Db-hXq7Ol zR%Q%$+~QGChLS;gK>zr7=$dNlXzSo;CRyvjavtKBk)>0awFuJ(9unzCB?akk=rLhL zi(mo84+X6N&QqunA+PvaZ!)Zc^C;rc&m1qM9vaQc9N)tn?L@EZG2g$?J!}0Cv(^2% z>$_3&_DkpH3B$?JRpj@nQ)3AiuMVG5X;0hJ2NNghz9#ri)|1TSf5~e79OPw=Z>WC?Bta zu_!4xC>@dRs%~tky0CbGY1cAa@yNN!AYi!0nqTibP8B?!-n1_E?tma2_P3gtYasNa z9(y-KAd<|_m=>)?8$AT+QbC1WUVlWi3_@}kq#R;!v>MblW`Tf!C4Du>?vYDLn)WZk zaz@JMuH1TfakK?O$Dy1H1!_2HACZ!vYf;IBQtc}jmywC1%GS}=@bi+@Zt`(Q7`fx6(byRVCstR`*X?5lpse#28$IclZR+j~iLH5$Ld0}>Wo9&4oMye3TQbV9~@pa5v2 zJO`}y#_&QdQu@VgOk1)U|Eh!QDp>oj3OUq<(Y-bmuVoj$hR4`~A}u1u@6pp7>w6HD zc+P)`1~2p`nN`88TyFfO3>!?h6Y6qF!MxS4?;Z(_`cU4+$Chl^UlTHMUqZGRI8Pc+ zU*Z>}Xgoe7b7%%W7;NpmD zegc|QHn4{t4%dO~6stz=Q-h#j*^sq-60@~-X}e&1 z35SxC*3<2DZBl*2%|tRb=VS9eCbd>)r`HJ0h6>Lm|L%Jf%jZF6-=vre`Y@lvF;%{I zK$q5K0Kx`F%(-k>1H-nwIVyqHgXm>QDZSqBO^Jc0f z2QM?w(Fr=tlrxM6oaP|WW#g`Zly27%k+O>VEoPJD<1PSn#-klBdJKJ_c?-dd&zp6E&62ycV-7VhzeS^`80dgt$Yx^A`-LE;;KG=bseEGmQ*;q0Uhm7cOll z)d!;Cm)3YMbcd}Ox3t`Bf)(6jP8(USi$PEwDl2VddbH~+G zbX{(gWFF#&BF8M3pmxm?=Ma-05urn?UObsh{2!pZbUitvteHMc%L*3l#=ggZOx5a$ z^U3`RCs+j=hbeU7k(QR(Jb^#1d34|nmj=_jf&lyyC6S)a5SJ;0-j$Szo3jgQ=Ak2~ zt2EbJ3;IGmwBPZbp=;Mm~1a9wfWrTKSC@$~T-Mm+F$SlN03?(XCm zaAkz?-f+rUXY2=^amc%MK0h3l)cRrwVz$$_NLA{yq@1eEmdM!xaSg5A0- z63$zJ?+~QOp2X5W#-RMD^y-rG3!Q`~1&c+1T@l5y3AOb?16=T8BiUE|WC_La6A4H4 z0-Lo?;ikgNm-r1wqv`|tAu-ig&T-lAv#BgrWibqV>5HL&>ntw4x-##L9_n0|J@!ptiK8MZ3M;2C zhT#k^beAdEe;yvg4of+2VIT z{gAx5A#26*QqtEu8XNlyF~-b^At6n|`U7hRrv2v8$d}j5Q-Blcc7S$i)g^ksE-R8k zgb>I*EapcyCIiWL=C2q5FW~pLJ40|qcoq$!%wdLXL3wPs5N?GPX^~j1%6RYn($r^C-*0IoAX6#(Y zzSysPU%vq8FQX^G zIn)SmR>jAxgm&?ob!O%pxzn0^<8@ve9q_NQc%0$3bkxDW`!OP;3Pp zAf4Q>8WfEI@lC|vTp!x^i)k?xpSnnDxi2A%rG`xQC`xEtDZbb&Bj1*X+U)l{a?3gP z>;-)ArJRR}N-P_XkTZo;6f?;3n-#l>ChK_hzSS~V}HRZ zX$YF3{Nw<2Mb++oL|U87b(8|v<8NI=!jz#Vd;E^axZ7yN7+sJGReA9t(3m!Vz`Ui} z(qyPm7i>>q=tZ`*K;x^fIBK17O>}>KIXT@qEuPc2&GOyDteMP1JEh(PB3FSIGf@g% zO|5{m6uDjXw#Xz}klalHOH4^o$$>CMP%+B44B;#Q*kFnEUQD$K@0T1_Gd=skF9Zz{ zL$gT^m#Jr@G5^>~qMd5eu$jvtO&xN^~!?j1bbGMxrC%ey3t+H4&= zw-#&H^rM;@P4A>`Hn;T8_uJOk-i@72#*;?Qr!40<>o;TPe9Q`#P&(xseM@FV>{gB4 z*y2gO;6fU6z}@18(EKojAS=5VfO?K>f{-X8YhvXP4#@1R2OXqOGl@JMfFm`)z`jzw zbr_RW=xd21d!S39YvC@-4Q!7p=KzllcqS%L0)h$qQs(K7wO-7_K}+VR&~3xi3|!rq zG?ZvLDSJ6lyQAi#===D<{eYK1!rN453ZO)f=!tItE~2=u)qbq4?Yu$sc7S59!zE3< zW&Nr}&ZSpq;EqjK`f*GOk{`p}bi3a`J5BIqfYzs({C}ldnONH~^|wIwaavZ#=+g2l zLm)@UMS!G$z;Kt+i#3B^0%UFrKa#yucXiX)PD~kJR`pECZ>*+il50&mN;`EgUO z$QH!KZhOD|E!e+m_jwV9BtsOJNT)tnkUm^$%5y@^2@{wV#xwl3GsyiqQbZldZUO96<;PBI=&O$h0aj>o<`AQoDtL&g z;yCglVNarcXRE77VqnCWsEjtEHL@9rz6J{NF;!juNL>7=_(;OzHu~h~qZDRW7Fj5` zf{~9NTQfO*^SyYU1ll}63l5d?r!<8q5z)=WOF2B<4u^GSlLAN@Cbxd$PK!b23VG-8 z9BMdGr}({OnjQ8a5vLBx6%u`*Gz!ckH8lwTMS(hEobA_0#$e z(5eQo(+JN|uf==IzP3k1y#SBl$+BauYedH?v|Gb*W6Fkr;DA@L9}N*SNa9pf?)II# zGIOX+5_RD_aJSlz9-0Y#$W6dRUQsohjGo;5eT7*s#f44bKC#T85fQfiIzXWGwMXhv zJiK!bK1N6IqoAa@*IK>T(mJn5CIyNsP;|Nygqh( zPOCRS*S`rI@RrE55+GQ|si+U3wLvo5s+s*$9b z7B$nacshl(OFo@SYBq|75`GI{6zno<%5>b@*0y6zIx)HgWkEu#8y-coG`;Jf?kGW6sH?Sa zks~9F?aWO2>YMjK=Rf(~Gx?8rL2HWU&fnUSxb8CIGpb&1>Ik4v$F(0VN}YyIFQ`6N z(H*9YNtryxxn6&jod>(0C~*d-O5s};yG43|cTN07#bY+CnVqlG_eSJ!4QZL2tUtQ0zxzL6`= zHy;g1<9hkL(`U^>{ZTyQDS4(CKFerot6*It@B=OJ`9|lPDC;@1u5y#X;sK zE_6Q^4Lr+$_~u2RK8%1QC<0~z2JTyl_XHlYw23exP?ZupHlv6-j6_naW-R&j@l2Fs zdTnnUx4;;0qKOqGHyY0DOu|&CzpPuH_WKt-Yk80`8y@#6TA@DA)@-b-SN+r_+{YtVb6P=Y(x@KBPjbqxUC@QlwFdf;4j3$Ox}RCfVRiCNPENjfZomC}nyL2(@Z0tx{jizs5{C{nMe z{@BX<%KHa3YIboYLsZtq+Jk@F;rY5Iii`%ZDts9(J_fv1;ZFeyv3j$K=2~WX*`iSD zSQY&hMt!6TM8UvP5q!kHy@CO~{(*?Z#`+(PbMWdMKL(=;scOz7OwR(O(tw>_GRA}$ zx;@We57#cPKD<6obTOoQ4?5eqqId^!e_%JGrMJdpy}bGcj@P+e*|S9XgUls$;G*2D>6!kjcE*^5Tj&?AQ3+=n8`E+{-)>U5hA1M>Qj&0Rc0kcP zYlr@s+nLiadf>W)zB@0T^wF(xGm03jt#x_Z(4=;9@ow=!(-dAbzWbsEJC(7z_;MuA zk@<8N%Te;t`(oidR?5GMv!TG?J$aCvb@X=AsD0WL<>Bq@;pzI6ex3W2ob_>jXYD(3 zI0wC#+NJZ8VvnpT%0#Bna?!~|GnI7aE|(WMSF9^eR>DxB3&OkiD<&bE{3yJfP@{WD zD57(S%q^{E05z_F{8O2Agr!B8;gNF+jB$UAbS|)4lGwRgHcf;4ku;O2>fx04Go7(@ zIyZ7N0T{^vBQbsW6U`I#D#DFqjk$j>BeFaAoHY6aal&--?o5+WN-Mgti85oMV7+^4 z@zn<8mX4Uj^aHR*v;<>Pkz$LVHf3X&C4?o#>=5w|>Jo8W!44jQB+ccIP=>6wg%ZYK z?R}uaF_b9hiq5+O9^uLP_S=ajDN*G?uiKaTE-hctYC#pYg%>Sri!a|fJIPB&%{;zk ztl5aiDoCnX4^Al64YliwQS}1s6SC!m*JhK62NaCLTs2Y>+>9{(@LG!$5r~HK0VM|^ z6%1LxP$0`L1z#pV^dN)4sw`<^e`q5&67K?}YBm`oBFnvRRzm>23Ug{x`S7nq4i$GM z9L;xgfcBgJ%0nUq+t)jRH3bvBcThcUY5-i2-pAkE$ewK2JMcv6KZ61IhW$J9LL!6TD8vx-qNkf1|rRMWS@6`=tvl+E=lud}c z0LR{kptXt)tB&(F3(b2^vG+a|LJh;IuUvXO7zu@yNgRp#$FdcQ7mU)YMQ@fpjWKxQ zwRD6q==kv|HDYRpnDJ5Q#+XDu8Z{;HbA~mAWeG;=cPE)GP-L-IrO?c}X%(EjVM(P( z6Jip42+6+I>J!c7oqy-3j-dzpT6m`Y2yNL|tS|C?*jUxX9VxRu#*!h(kdF^SwDe4c zatG)DNE>0tGZtIFJ6i~WS>xCi6f>-#qvxmQ`5mpT4@7jEJb|eO(#|xHDV%3Dg7suK zT=qv_umeE)gcRWNkdW(*u9Lk@@m|o7{;msKT!?E+!-esqFR~$G5QI#-SXYb{;gG}v zgYzTZsIoku`Iqo7=G_p6hubsJiCYT1IdF-{01Jg)cK6qN)9ulqlRu?Ks9RSOk2w;_ z8{bSV5?31Iw-BwO4-4Plx(HAMaPVCRCkK+fotWon%sb9M%G_xoWora7tR$Lp-)nX9 zYQ~n}EnqOt=tEM3>Uj&l_=H?M!mW}r1HdT&PtZyX)>?G!9(7MsaP|PL?;+7r)!ts>Qpx5l-Sh6eZ^n7pUA1+))hVLcc)D^{7GNcloRGPM z-I^v`lUfD!Nh?v3D(3Sc zDLRA7aU20V5z#K)v(mNA#mt5ZiLTu{qV9zOF0=|-wB$kj*MnGudZc$*T_j6342th_ z-jpTf8dneR3IW_?^94z#mR_yMZiCcOI75bEHq@S59b?!{h2y17PAY!I$8JC&0AJu8 z6cZLG=$UTsIGqLN4GaC;oPuY}G-zGCzZnh&2kE?mZkLV!1cxPen@U@YC%ON~(6tEb zx9L3r={-dF=vx@xi<2%16H8GZI7A`^>A`Ou&}76$)!Y4+JbTO0ySl03_5PYN>ykOt z$<~0pad&V;U=>--Q%3fpv#`smViN*=GQ+|9!V zQr3aIh@v`Q8s}Q%|J4QYtsjFP`G)QwDcx@4wgdj`fhZ55Sb(5ah8fH#`YnsEw4v-6q&X5=bdZ-hi#LbC)c=Qj%~)AHn= zU~uVuuhKZXJ^RUh=o7;|0;Mz6tmVwbii4CxSuG2~Bs46(*|ciD_jJzir!ZBi1&rZ| zI=eF_8OV?w>>v^meC9|*P22r7jN(*fDEmAUYXc%RAj}V9e%u6270Tf-L4RKvkRki$ zmD(3#T0!HMlW`ARL;CDk2?<6$T4lQ1fZU&tkXXln~RR8sZWHTvk}kk*Y{HlXeOxl zFXVAxq^wdo%!J{1)hWPW?mZyiSac$~alv7kd%}~xi;2+XC-AC)h~&gf?+}~v7s!04 zXpqcZFct7NqspBxA=k;+V5u7vh^@Ga5WeqpKWBT$tg{)2^K8rcc9Qe0%txGjlpiN` z<{V;)*0D(!k_|o0G7AZaNwyPko?q&V}9p>EZyVuSP}NUV=aeCCZXP-wa0VZa(Wtjq$CLZJe|VwCLEv`1nw>C4YK?IfbH~d zNM)VzU;xQ2%!p0+(QarMj3z2Hf31vohe;e^EeL81oDhPnVk5r%cK>ep?0SOI9jdHK z9uf5JYI3`0oukF6uIHkhMYqa;mxiPj>xT>Vk4KbOi><>&JpAYCpax|vI<>`*ohF?2 z1}HZkAh;9@TN2a`bE)&mA;%|PoJb~#U^-a`j_LzGA%A|}TF`>s?6fNfpK}CqqL`so z4U#qZ5MfqoXov_!HSD8uPgedP*NSm_dwb8XTfTW-li!5d=rugrQG{D^>7?Q*5x?se zQS8yjX)K{j=q105an1k*K)_Lr97DGgxtvn1%O)~&B7g31{zb)~%Elry1`*MD9{Wvv z?pH&@DhbwT``Tu6X%owjr8egoJ(abcffvp21H^}Qkp7pn6Mt)%^+!Xe4I&>BZiDPT zBSq(P)BPgIy2Rxnk7(V(P>gGR@0GKwYP@iA1qK2wpRuo7j@z&mP%Skt^bnet4ytJT zOVosI_P;JmK)bjdoeI~Z7zbK=N&rF_Gg%?o8PT{Cpdi26{FV|<>lBIQX zzvZb}q}i6ZU|C4d{Wb%(tF`SF?BFmvPYkTj$Do2^0p$h1=L{;}Y|AoyNFURD<1q_81sHJM*!P*lGz^r|p&YqT1 zdl*V7XA--qZu2g1Bov?kGmEf1al8>b-v0)TpI*Z4INd~GF_mNSBgpI(CJl78B%p0t*$qjgF+Xc zB24R`OB23R&e_r9nY$KYB+(*c`Py_{#_xFRiBDSSFFy*#>3*e*+tDrNS>Qm;@cU#F zjiwWZWdL5F0%z(jOG(|^r&EgG_5jQT?qlVWcGC!C>ZAAAYIHvVW|HfS0NIK>qNnm= zLX>9<3FzT|Ff;n7ATmmqJF!x2^gZ?A8KU`L>++QPT671_&Rcwf@5r}t6Pve%e9(wz z!&VQe+AgufZS~mtSAaJJ-2E$PiHj{w+mBa{PF(s1W^z!5E0wQWW+r|R$89pT`r*$4 zVzn4M8bqmvb!((y%6~n_Xb#ARfsl~q@JT^BeFp0b_eW9;RWS@`^i4fCgK~aup)x&> zY=b)T-uN;RuUm_h!;^MJs*W$TSKJnsfu}U8cn)F_$*Nsx%aIs@zKr%O8Z%lW{E}1- z3ok+;VYBaqONxXBZk(bN1NNJcEIe?B3@m>br&w><=gxG+$+ieej-=_svJnY<(9as7 zBEq_|J2`##{_>rm1Y&YBOq`XV(_mY&#s0)gO-^hBaE9gB-Sq`LrxYT6Qo&;PW22#; zyQgH(tRN;KF}iO?LG>~d@6Ik&8;f1UC9VqzPQ{&-IP~NhMrH(~EONdIeN}&Z*P%scj#eN! z1EPt7;tnJ9s`!DD8g%nJ|w zepC$u!Nh~cm8(5M(Uj&XHLtwvbA0#QbI*4dUyUl|8kGH(72o?H1{f{K}F z{fhYPT+-m9UCp4=Cqgj%vn`>EEioE{Jjh^4b6KL+YZ;=p9Bj)Go8>`lK&inrwyJG0 zyHlA~>Vm$Iyia+xfC(#R>b|~o+IO9?wYk@}kwA=C^%CPIe-Q-S>^I{>6P0dPGtrr8jd}sb>jY5VHI;T7LPe?W`kJR3h2~%x-mIu%r;jj3 z56e6qj+HO-PXb+Wddf}fjhzB&WUx+9APL82MZ1jeE?Ms3;DoLX8R(PT>Zn zAp_K}aaecsz;25t_txM0`0jxBDperADX?#58_S^`S5b7Oi}+%f?&=tWDP-((wiY64 z87G=a?MJMxtljh@Zr(ZrrUExL+2ah;WUy7@(ikVjjvAd6XKW7uGpN;w?S?l_#F*t5StmWMLZ!9>pqWPoh2jolF;P~~4R zKlz?E!hH5Ly%2#q{4PVnhRI%#G0w_%3Unqm$ize_+`CQ9xlS!(D6eS9gsB@ehPa2o zM*Jc39_sPkOZq&yAb2ZV)JtrGc*xKzGs19L&;MI05bJc{!}9Lud6m9)=!F7F6~JlO zK@67sWzYZwc$AdErh!brs~N*lkn6ofInr<-$KQPC$va?JDulp#Xf_2=XB7Jhj9DLX zzo_yM%C&cO8pjN6`F|(p1P~#fGGU3iG>PfJa2y?e6kCKR!ME zI-51A)z)P&5d9s@2nE?Fg#aoXr|n{Sb1px0?U{sof(wj#&gi9g0d1^tv|OzW{Y!lx z0>IqrX^4@?S?hQn&E*U)RGv$Fsx-VJ9}Dza(EE8_MT)gCWUBOCB0&$F8XsoTc|agt zw$hKw!mE z;JzHhOW9v9{eWUHH(Oz`UU+p~h|)%nPkxWg;IFeW7s90TeDkhiOAhs$NTBssg~}2^n9Nug<}`#2l!T?EJD5t_F7;BoBJMSWd;EtJesUPX+k(b*X3Rv?GO)^j-|65Ly*sx+pk__^enggJ3KIIsn1;vjKX0 zK18#O1{HmUUa*J*ohIQ9yo9RYp!(^TUdcwOSy3w8)Dgb#I*kMYm_bl*#P`FrAX)U4 zN#+NwY}hSemKtErp(ne*{$)Ne1T$1WhC8Ah^Hqer0q5e}Ntp?Q-6EtZlX1UuC7`$= z9Lt&Hje`z@rokh{AD_s00v|pD^<06xYeZ0_Po4?);&~t7WI1XX*6m0yP8@CL<}vDuSA* zEy6?>!VAhe@-ITGBDrMt*bIrxMsJP8jB{pMZ02DGE-S{t=o7_B1P}(9tcWE7AnNg2 zg0pN)Gb(}*eeLTa$5ml0-`sLV7VWT08@-KV&c8b-HZ-dkEq0IGunJI~3+R)^rIBP! zJ*744&Jxu8Ja(w|=UjZYdfri^9949iSP!V`xgm;=QaJc%s9@%8ruEgdwC&cg z{VVIOwI>!e*wzGyH9F5vL2cqR*(;<&|H>?3{u#V88ji!u`blLwZsNXb`wEw}`WhBY zCNGraN&8W}v$P)_dy8vq$qGu#c`CWp<>S?WWpKPnAmf6jzLPH~m#9BMkSMJIs0n}` zugNFyHF#kF1{YX4pIlz0+(Kpl({G)R#-aRHz6n~!dwiI@nIIy~`6tWy+E1A-b5%o8 zTSG%zQKFaNpbU<07*1yvpGquBUzYtORqz^sd+4>$C~V*S4qW;%LOTGX?z^gAnTDmr z;clo}w;Woky}q)PwR2n!WD-QoWCY0hkq$B3_!YzzdkDHK;KWtCmHYZ+dVk|5qv_-Vxs}IwCT$A*N2U;d!u()L>({m^* zdeNavg)yMkLUbdbJ+rQLf-;O>O{*(gzo@6?mMJq$TkAn%%r8CxfqMf)mkn$dcz0qEQdy04grSwA}K=7r%3($H0A%r;j2)7aV4J?PRXR>-vNB<&(uWu@-qXaAQ zBwSb0ih-t=h?neB=5@W@ceb3Q(z1qu6dq%tZ(S(4zXIVsf525$2gh$uFLbF?AygMuQod%T0au@Ig@w@gq9P;7mMaBE?Ql1!Ev`hFCxie<&=u-=5vOu1Bo?y1zG+TU^j+@D$7c4ft!_p-@Xapv*B_f$zvw- z#r?{u7qP@H-QB_ob;w4m7q^$Fj5f%w<&Gkgi_SMNSZsEWy`!345~)mfO^*Z0$&43F=pbvaZp*n&%7Tt&ry_gB;R6arV3%<|7(u87$}2!NMMWZ|!t# zOl_f|q!wo<+wEY7U7v%LvyleQse~=i_OC3<$&5{*XUGmc6axywe2|6VuEYHgkC^tf zP-8XNWi6o6`vsms4zCgJj|fn7@zz|hm1D}dU%%Sme64|eVhti#@`*(YWE9v1j$jSj zB^?w^?=@XJNIk`z+@fU02X&_VifW6EN(<^e6#WQTLyHHi5C4^+R=0M|W=Mo;a#_!Xexp5VqF zP+-!Gof@BNf+R%=LI+=B31mesCTA~Aed@xrnwoG+edhHM#b^;seJt~g(aLv_dgN%^ zP&rc+%iSdtb-A`FFikL`ZP>pZnvn6ttagU(7^&9a5sUAToDAt>g&eM8w(I#fFYpGqU3y!ldNsKxAo0@{1T8 zk|t+dTX|7sMIuWemQ$wZ%n{Vg$f(rJOvd*IR$n7D zl1MBdJC=Y1hPPp={(X1xJhwATWZeoRJkbBlIKT1BOyP5!9a*U_ipdM^u-= zl`CcJ8gjxcP+tkNWC<``iAH-y*&Nb)M*yn+(fZQThhF?mJ=F2UFI%*F?CkCx&}fx$(i$$Q;5mcN(Gl zEreq~uEQ>ILSqGmwa(<$yY=C4U)JSZm~MBp^PQIP{ukk$b=5$nIS8ni<>jIfeOay5 zD$9{7OWMa3`yu+`Id-jvHSUwdhW$lkz^4S-M(1tnreHm_YY=TK)n{ID|ARn%(a z_(2lPe%%FfVXft>Ns zhr+V0-zM?E28miuo{NZiT-~2(jwRJg`Pj!t>+f5(jfO;rQD^PtNYjb!X&=`}%Po`v z)pnW3q;{rCHYCUg_0Gu=d^a5Hizs1g!YM+n5;y#1+Zklfy7@XUg^9U&D+WXKuF{@T(cb$3ROx7Na|IH zlu3ntWUFHqg$9>IzFrU8Oc#2qv)OlpBoE6 zXNn-&M-`#u5#t;3J4GDCMaRME_Nz`!fdnMp*v3)yY#pHXJ!3&!C#ZI)5n-g>Rl|r) zMVg#iUn2=~q9PsK0;nM=VpPeAgb1uP(btDPDL%i-3iEc?r=E&HdKiPMkUj~jl02gO%fCtJj7X>#FT;rk;vpaL@`P=*48D~3n$wT zDTkf60In@!vWB6E!mdaxyr7%1`pAzXCTx>q;izvsNdYY!1 zCY=@@Rf8auBKls@z6P{9e6)JsF3C8aD_eeewe8AcSQU9?l(?G_UnpxSz(~NB(lQ1) z9~n9#O$E;Q9mopD9D9qdFBFz(c2^1AtLO1(=S7*wkLB-iQUcwiD4>UQASEIlVvI9Y zsJ9zEl+7h#JB!}%Yir6Xv}|Y`(P4Y+kc(%6h~J`6kBw`l)c3@4dTT9hOt7LkrB{{m z;Wcmn41g{tu`m@hvaAd~GXjQ=Z3wCfY%m2e`lBMGQiev)*g3O7FFud4d|$+X6f7&6 zh~2!)41HEN%|MjURLPqV{X7w)yBTvRq`DMlV2Djdg(8Id`7V{MORC#%4U%;p@!HQd z!OX>6zgBTMa^GUgVNVriFIxv_^wa{sQZV8N{yaX+JK|b1wr27Au9SJIk3i8lgJas< zWC8u^DV0oqV5=_nU}c{yXq1?!iLY3qMy0=6M%k`0bfV{MGJ@(XEfh?Q*+8xlw`kQQ z>;z272*1aOoS?#3G+pNU$NB~PDS&PXzTrqgnq&cJeq_oH>t@cizx*(=-Ubt8l*+(UR-=jICOh zxqf&b+nFLn*v-SsDKCbRx^pJ>Pds7i6roDy&&EFFRL7hU!*eDb(U}GTU9_)LlKhiP zx{_UO5nh4zU)?qfvQrqjC~OkH-N3rR`i>&KCoDn<)GPv{*arlQ#KY`Pq?0P+;LBT5 zQuV5bmip=>>$RA;gaN+tm)61n?Rtw88TL`1jJQ4nhx~3 zh(E;z&NH6pM>}4v4VAa>jNcs{|MZ4JQ4n))EO2o;Sg&A@*T`h1zajyddb_njRM&dW z^UwP~s+1ACzI7F7^m>k$Da*OYHpuw139a@Bd4@Te>6Xctl?WxsfnC?I@R=`=t^sVK z$Y{g9Kt>08G1`EVfOz!u38)j!fGgN?=6(Slne4k3VCJK*Pm>e`>d&iOnO<;M0%Y;J z@*p?}IM4kqdD7h|Q4_~r>P@*i-7e%e;STszYQPGz(BVwLps8Y!ovNuU8l(Wgx)`UO z_6_JBU(`5=t6i~tmJ4Pb_w`iS$B4mbfx&vzr@T(F^MR|M*^aa$UixBc20BBi`+3I^ z^y!Ft%-0EZ$gzTlTmOT22fp02&@M=d54rDat!4Yi+awpUr{4!e`lay35Spb*ynaHt zMyMxfY2hjphGu<@tfqKpOeGK14ifZAIsjU=mSq@2&;?1Rzqd7@d4rP~pQdkS<13n5 z>KV^(pqqC-_R!8YNy8KOF{cPEe)e8%__tD(2Kn5|m@Zha%Hem;o*zdX(;hxrP)p2s z%Vs$8z8lfBe}>eqi1r6+c|EBg8GRZr^CVEOfW~U6-F=jrz|NBGCS11@30(vu2CMjs zv0V@^pnNeOHSOT_T{w>1aC`fGzeLb|rf3Hqu3}Pq%$o2ZM(crRn1fvH0I){DAXk}v zJbwa~`{@68hHD4o8ceC4KszG3^KZ?~jNUX{UwI6G4L&*v?WZ=HV7uMwOLw9W^3)qE zY;*MbE1Rs$hnsoU3-i6KDSA#fU@!ey)J-pmW2#1))crx6p;W7P(=Js?NefP)1>DjFVt7Vq^&}f+xB~ohQe~*O%fR0 zU|m{3MZM!q4fUE}=K+ydVatb{e(o%f(ylm7b3m^kYD84CbRUWd-e9YeAR&|Mr5SE9 zbOqr01!{1!s7MDGjm|Y~2VVJ+ei-t^FI`6QQ+$HgN>@3dw z=~H}=^7{Q0G)yf_^x5I+SV^`0iuPWGvC0$swqn`9YJnvQlw--(Wxpy6+GPvHOy$+1 z_QVUx?wQ?LzF+fkbnJGezxp`pOkGV~b-wI;!5%!wmK8(Kqis!~zK{oH{`^fJ@!+iD zUtgms$mQ$7{{pgPIlJho&IR#`X0PYuA|+io1$I`rMgAc$c_ztQfp2`0DQ?&lF7}G^N&rKr4@U zt$a%Ca{R{N?}tZHpXV5v9*Vc}a>X29xT?SMxY69eQ80(Qu(ydf05RNcu+v$g&dt=vJf53!?$Q`XbtVqgTkj<~~xG zg#30p`BJzL5V-rkt=*AGxqNpsDGqz1-|Iw#5YTuYO*yvw~ZijD<){q%{$&AN>?66#U& zTf>($5B{x~#!+EdI61ZfzZC*Timb zUq*{}==LoGlsoIujvlJ6k0he>PLQSAjf(cUGQPmI_1Z;qGl%jXtFNq|?q$#i+Q;*e zzrtS}V7q&cRAtn9%Aa+)INb$-L)oqMo;CZ2^O zxJ@^{VjM-tWko9t{DSrAum>x7giEn|2t)+qRJi7c_8w-TOf{3>mZGThUfaPr!B6BK zv3HB&fRxsWXv}uOUl}3QdZ$E6m6@-cBP)a9bzI;&?-k=s*C_X8J;40sYF2owXxdvw z^JSuaXuZz)p4h^EnY<5@nzYT3P0g5{X*XD6qDsVV;T?_>;a$6Ik-VPh^e}3czc$h_ z&NZ+Zr%QT9OL<33X|FVnIZwy0b`+E3DmKnhx>&m~d|&~4w&E~9fO{XQZKq8(& zid3Ps>>9Z}_Y4Q!roya%mOHjFM^`o0-tS7ew0ZXK6nt?Gml%oVG$HEv2K!i5Grf9Y zVi1TFSmUltpqDM&9-x&MVmS<1(RU~tht!+j@M~u`JQa~ctjt}kV_3Wc_|>180@$Uc z9D#~jR_T_Q5?ss5hy{HV8n!)SjApVWBXz81TvlC7A1cq9AX%iP;*Cp>*V&-=jSDbb zZ|Zkdu?r?9I~7ao^q$VaUN!{v)KfQ|bn6k)lAtZKOon4?LSr>au^1w&V=#U(kFI{o zYVl_0%j3}Fi3PBJ{1=s4@P-msrbToVaNg+1R}nPvC(as~T|2HNooP7A_CS-I*9RIT z^^<1Wq)_k<$uBIxxT$k#p^mA0pY81QPJ*9a!d|$nG%WZBxp>ENIwX4&p!lB}+D=gR zN-1xEv6zPWoSm%|jEJL8s-Ckwxgnh#Hgt^M$`#375s7TAf%Wlys$v7^DcgM<)DuAX zOC2GM)Oye=KvopUocL4f#@15BHJx8NqEz3U8Vl!WkPy3t+t7D^pL>)1Czbv(zH>}P zhE*v;+;athz6SCJasr9xWCDpNo=(g81I|Yi{eCj`X46|9&B*$W*6RgkuBh#S0j!se z%wp?~>Qd2!!nB&&W1^v}Pl&q#7X%tDyJL~rSU&|cEZd6Jf_+$l47%KsHHGt^0z;vn z-=N<5nuo*x2I?{YTWbIBJ}AG8Ag_`FIsZ4bs%K~V52t6K`wirM8+P{J4&L8!B>yo( zMZbwV2U7=EN|FEQpWo2+cRI*_L}TWE5<>n3U|Tu-cggOrMgL#Pj{bj!q-n%$n)&nm z3cT_R>$ITqYug_}6cCBvqk83^=lWZWEVq~t-0C{R6wQT##4$FSnz#%Y^lEP2Ea`Jz zW(LDvEUmBHH}|%OF8`g)jxnIts7XIX@O2~y%X<)3GD|JtJd&A6-6ew(P@UgCd{|Gz)~bE5wXqy4`c8^5T4ysN!~ zp{1ymk@a^|`wJA6qy8>cuoe~-kkqxI{&#Dm7Et~haQs_V{12D-z0JSi-hcbr-`oDx zZvT=M|C_H!t*lP3PDl5RWHYmB(lMwr(K2e%v8Xe!uxQeMPrk!%nCNLW8NL_L(Q7i% zsWZ^gXfm;=vwTPVF)=V{GBc_(G0|zVFsn1tGHbHZs53IqYqB!@wV~#>D*3%1W=&dJ zMs-FeW=#gh?{a#2O%_I`@94nqjacZ^>1miWzhy>s23D58)@S%W657Am>%UA&7RG;y zSy=y>Vf|Ohf0tJOKFELSlJ{TSB`XudUlk>9_>E#R|0@mXKQ1QIH{biexR?xo*WSNa zOhy{|e^^Yq?~tPJz5Ndr^Pj81{{%7r&OQ8l7k`78|JS+vtJ?pKVM=|Y_qrB;uloN{ zFj>B@8~?sa{O7d(mx9T_^o_^Eq|)#M;5v_VU=spp;7MvIZ1vfrix6*h+L&d`hHb&gb4_zQ zKq<)8`6cUXW!oHSPPA%-p@wC8PF2KJmpI2!%Lf`t!5hTp3yS0zWlb01uh@^*@IrmM zkKSIry02`z?mUmN*JXYjm2m+SpY>xV*j%gv~Y!prfFwr?>N9M>Gi=GJ%A(VI{F*@)IQ;zeXSR4_UC6+nZf zr}Xe!7E56iz^FRn6f|YA0_zWqjHYDE#DqhOvr^4od$J4}D9f_4BNMYJ=#tYPT9Wb# zwAvLW^NzqiwGCMMGC^3virp}WDKnjGO7>_-O^b_PP#BZnBtv^ zxzqYQ8JuV?u*FxyV~IUA|0wExRYnwXE1H8yQNyWV;kL@Sd7QJbIhmagB%n9s0GZby zN8|aCOm;(YuJ9zf0%FXDOTt^?Z@RTPBe-Q$=ot_mtSd?9MOS_28cpkvV|fx-PvPde zi|rZLL`Ge#_+~!CJLx(fbxG2-i`2{ST{v9yCYRD{_twjeaZwskcZF5UE`!#z|7o8dW0|ahqDAEUt_7E1lt-wzFCfXqX^qZEJe&<;UA?W z1Uv$6^{QqJkY>a;M#wH!gc+R8QJSv^Gp-2IZ?NO(mwT-bl{W?-Q5_|XOgOOLOiNv_ zq?P8^Y=|c*A(q49k6n@`vhdi~9IVsV&ETXh*1eOqhkrW#{U}n{cJL9PXczAl z#>M}S2k==9)y&MpbKCGz)hSKn;)P`;Ww{bp+g|KZa5_51pZ;8(O@80Cv}t8;tCzY$ zSSnSG+MEuHtZnAxNmm^q(b)Ex#O&lVhZV~PdU6t|`qz-D54fy-CIw9|M>AcIxTK{_2(&>>2sX06CSw{)Bn4xd&br=*4XgSf6V0}`3hBCdf6 z_V4g5;4Ym9xxvQw0S;9H_cYbpYw_U1e2CPk*(e6RF5exB<6K_|j^YQ7Yr6{Qs)b_x z*r+==M7PDMXepLGc1=*U7xe=8v8$I8F#YI|o55Q7hvt|=GHSJ@lQbndV(jwi<d z+w#nzs{}_$a|01V0kjmxj_ZGAci;J=F&wf`>*vx?8zNS;I(qyFT=%dlBDV64GyaVu zWt4|DbZNis_iGSwcwFGM;^$Z-UBQcMCw}rr=?^xD>rdqVJ~lSaVz?3###VH=v~bnQ zkMh7G?s7EeXqsvhMV2_$=EsShk4!gLG)3(!E;i9>`$?SBh=&kkhAf@j7{z8Me=t4* z;JnnJaN&)p{3R0GB1)%O^ob>Yq_;cs{tJlSEV>SkcVPHgRBG9qZM!$OKB9;8sc_7K z$tmg6-Msy-haq#}M@)lk<`hPk*Q}2G4<Drhk}aSZoLckdo|mz4#PRWy!K|Q=L0rQ z^_e+^&J$h#kevMx4=+DitSH`$Tog{dTslLTRcPy`kNpV@@3|{7Z3pMi=t!uNE_)H% z+JxTD$v!AEXrh$1el|94a#bo$XQ(Ysmve4@MiaDgPwuSUZmXuapi?jf!YMXQP%nlKNYb?7Uv}S(DB+9pM!zmG=}_O zF^P3cl`Hs*Rl`RD{34fDnoKp(;yxrLpsKpGg1j{-7wqum8xJMoXSLpCwGPc|7&X)} zhrqDkj|Bn&vs{8uV?M&QNqIzke@Y$NHm|$R&}cgw7MA7~b+0$%*4`|;f=8=(HQ@3v zT)ZjBZhOr5pV>SlY2%YDnQ&7XZZyJT(nEQWALfK9gzds)txJ68y0d>=F}JFcfig0s z*s->=qOaPSwIj_Rp#UkSgz7bkbfw>u9lU@J{7$yxPuHcz_G3sfMH-dmNgYNl)q~3{ z%k)>lpma2+p1f0$$Y>hC^w!XF&5D56Q%j@XP8_yJk>Ozr%;@Inh-1p`XQ(_NL?1z& zS+UBJMtdPnpxftJ#8ZqP37i5DQ%vci>}x2P8EcxK!jDUe#Vk0Y(w0wP@*d~TMr~p^ zJ4bXE@FE(j8DtxnfGW96tL9AP>UDA<_81#adA9ong^-1(wnBp-57AZB&@sW9=qSn- zYtwdluCq9PitY_52Rq*k`hhdJVst_F(LJ}*Ls!w0uVN2CRfsfStHJ92_$f1@dg&q$ zF=w7besM3YDC_6jhq>tJbu^*o82C9hEn7=GctsJ3+L#m}jo2Ss> zefKK)G@Klsq^Pjvadl*jLMFI{@0utfj}-;ao?g$R`HuD#H#R27_-BudJDpxKQDZR< z%)DVtuwJo}V0@tjkbG_N%gKaX_~H+?(p#X|`gv*~AyvC%<^%W8IAu%dS;YRaiSpW_ znc;<*bK#;``MQ|ew%%%-{yypq8!aBdx(?rjgdZTOBm@IQK!Yzsg07vrNm?#x7GfM- zr-2T<7{BGd0)!f(kJ`;8IF4VXF$9pr2(ibmq`$V{85>=Lo>zu{HEOn z)nl!Be1x%$IcYy8f(y#ojl!N=fhUdQl>kqyN;du|UKZ4t-r4oiA91yacVUTn^e;s$ z5Q?QeK=+Z#JchAcgsa?%y$x2`zTZlL=&fUWi}qYJ9+Lb&`e{QF6G#43SL=B?s@W!O zT;A`_MkJ1Ziro~kPW$5eJCF(Bi+tgsPF}TU_<+l9W`@P)+JpiBYEP~Ce_m; zl00tW*@c~Ik_2BAC!Ou>pVGBN8+CP5<9l)AVwkKg<{h_>N^@dnLW@UM z_S(bA*8O%PZ53xtEzf6V@K<0GeHgzwsr&l`U1jv*rqfbOH?#DtwW8uCa;nuEx5R?D zfPM_53HHx^Ru8;j>O&i<<4^^jXzz_6%dz})!$^7g z_slpuFe}frG<2B!tuQPz_Ylj}bK8*q83An8dm#);!W2xBhz-d1R??r|fJ11ik>8>m z`Vu-mBhyZ@%_NLlfa+>MpV-cR4lt|$#B=dw*g$w{9vE5|hc$(}NT&%2H4#CKL z0F>c8PKS7{RR8*(<(9EUnmTm1t=8)8YjtqL?SADz&UuAwv2@$vYV>0-zC{?=UL3!( z0}@UhvTgOK)$KJL1EGoGD=oDp3HAJ-3k8(JK5O`a*j}MicMgz*!fHFnKh1r;I4_;N zgzc=askUQmRekVt{;<;P)~bz_ zX08?c>prOdqR?zn;~&4L#cOpWY3+>EP{xg`q`JDU>w}@oCql-b6gF6*b}zgrb6kWAkGK<8Hw1cDNvw zk*OzopzFG!p877*>3S9*G=AL>!i6(0iHelGz)u0G`y~c#cq5c&XhJp~$}XF5qidL_ zoeOD6o(jnwmecD9iX7aSsYMqkY%!`u3)cM1fyE=fty)}+PGfo#oiC$m;gD=sRbB$( z2HL#CoCT4xq?|_|)!_NCwMgad?97sl(&n&P@}3=-{>++n3Mc66 zqK2D=98wIjXZk(sf@8+6*0Ce712uLZ`F3B!UH#HMh}BnLMe4dI#Ma~Vwe&HNb$W)ACa}aFLj9nPZA=Zh1M64)XmE)tz2H z0(dBF(imX^MD1G96UY^dfCUYBJVy`UEz0v-L3BE3xz-HJK)$uF9VFwv!Hv2SJ=hn< z{%z}(q{2mPNtnT%#t3Ejwk+`5%pszAsT8`d{&VvC6I8XRxR8K2Uav|>`ow99l`3vn z5Buw^vn&_aj>;n+Aa4Ej;*Gcyx-oZJW;f;H$4te4AT6z-e?cB ze>Ua<$)mv{?d9@uFdY6hD1-zD@Tf3BV8`#!63#{oPY`U-=h935W`*)J9omQEEwUEE zKuK;q6!H;ab}~9Ua+;vRC`*aX{NU!aStu{SFDPrkP%+2Ze0UaFKi^5RJBHmtU3Ya3 zVtu`S%2rW5QyYV_VML*_^fVd|+U%rU^lq-&^hFO-#UZ)m?>|u_rg9wp;K*ppE;*?# zKOruA4NZRQ9p|>T-!WGgB_ipGBSlZmi~V~9FzHYs?k9S_*$Ly6aZQFxla3BMk1wCy zeFT<9Ma^Ii{ZpSo{Lj7viak`E49ir^Y@k1bEFa!RdcA$?(aPyvNoq^1oaedMMblzB zShiW8AFaYE8r>2%qmjC^6_&{3)>4^QWni^pFtd=@pz=2QmaQ>h*iTs2AEaCJ?S%%4 zUp2sRLFml;+O)ODRk@iMmon;XN>L9BpJ}wID8f#GtkRYQj4g0wlWT*nMqme%ohLX~ zxp*#;5Iy0;zXTZsW}#=*=mlh<6*V%YgnMNbIOJ>$T-ZqsAoUc8yCdTOu@edEdZhCP zux6h$ISazRf^W>iE!Wxl-vz@G1U5z1;0?tSD$)tZlMKh>JR(mp;J49-qvF>ZGuAT} zLeD5pm+t8*PUnEtok!IQP}`71m!V13eyVP?M8!3kgF2k_>*T=p$2A+l0)_nmXiGM< z)N%jHC0U1lq*>cz<-iBYy6X1WcCJKEXW2E5=2A)+G6c)DHoxUBDYPRA$Rnc$wu_N> zCI6}KVO5GuHx9wtyBJz_<9}(U@3Em6(4rNL>h}gXI}j?+>$)u}=NLadIENCANFq-) z6SpZ*_sXdLVyQYf7wjhe(KO@fVI7<<{9;g7EG+%A3E8cGQr{j*I;xQUNNY25g?)~+ zHp17)HOl&&yunyly)11wnhFz3y1$m#%eG_{349EW`&Ehx6^gWV*5R@?s_4FHli2Cf z%~smKe?QrUH%Xw{;4#RfOF^38O~u&0&HNpBXvDYC3xl3pWKt_xF^?a_Zw-E`KSc2>pSelW3Wjtae^T-A~AtPNBMC0$W%t(H<<1#)x@jG?~)R;D8ZDEjwSd zVl%8*j)PPwNHzYLLtofmyqLIjDb`|xV0;}r7{7ud`w3~)*If69s%lY3xU=BlltIRm zUJ)d9c);yyAOZ*yZGW^a6D+Wyh`=A{(f)T}-0d>g)2CBYf)PjGS zX$vrv5>YkPf$Wsz|txFqNoXo`|g*2zf$G&DFDuL^&Qhc8+>4Q`pA=9mFA}bLs<7q7I znyuy31k#o;Tq#Aq45dzB<4x`Bwz*Pq>8n%+ouI(WblS4ES_<|^1&0VoEL0U$KPpIz zR25-1G8NrcR_n)XgxAcUX1N6t>KI_ATW_JSy<#O;GT5J50yw*G+YE~jY-@CP1kLY1 zOBz+wXzw>;L-C%%6aBW1d=U_v&mCzTcgjHGJT8VLzY zBCld?Omo-k9WQ@xr|GCb1R$Oa5eDtLI9*7qAAf$Bi?1}o_3Mw|;a~tMKsEZi?SnFg zyj(h=3O&N|?Y+6OWCU+OQ>-tu+ftShwnZ92kI*-cL}!~C@lzHT zjEYs9e(wNY{gvy^B>VXO$BA0xd?WgY?fCm4Lc15uCX#K~Xl5}LwLs9K8~ZS-&;Fzb z1A81*MtaD+;^uGnv?DK8w9dULsRsejw>w3~m(&in`bn_v^p^V#9t)e##O>*bZs(g~ zVYW$_*k)FOc9lbhRgkyqQ|Dr=uyd32kI~OZPfp$Rb?Pn$!z#Q+bL0yg#-Nq0@7w2r z7A!9Z|FJ6XMu8K$a7sS&u++S+IMV8d1ZA}`a??J@k$KZhLQsae!C%lkWggK?c$1E2 zW14d*a)SQC4+;Yeu}JoD?)R**k+pfeO67>cBC;XJB{NcDfqJHkm!_0e-c?GkIt7aE zGTH>NOkEFNN;+$(MMg zL@Ek;`1G1XL5kA`Uw?$Y`;gCr_!1#v$3n8OG>d4)aVqd}H~o3jh@&b8*W8*_1FaP} zZ?9K{s5ZMG`Or8$qVTN08#vV8Zf%*t#!x%C%1|;-gXy$=-g)8kj8r?>@bV~mjH-6z zp!e=*v$Q@w_t32Q64Cb3PX0O{FP`qXzND8QZL2jFZiBf(gM58+mNb5o;>@zzXpE7b zKF0gN$>C&o##9fe4`$C}D(yj!qH=nLr@IBTa>Q z6`KO$0O7ZvT+kg1^os-?U7*BX72DUN1)^FNQq4KH*n$LzwWop=n9A zki6egxJ!K9!0Sm?b0J3#nU_}njSAQ(6Iwl&w_tNviVse)Eu?;?>_rpCDi&mpD zF`KX)f^fTr*wcB`QfO6*1yjfEYc~q)x#v@_ItsSQJ`T+LYiekQ@x3w5WcTax{Kf88 zYP@l+r)FDbIQ@D0)&@CF5q zWd~cVnU<>4J+>TMO`3tw)OvC{SCOO9RFr$RKG|||-s*hHvu1~R|CxORYY1Es60o~v zK7HGJt_}Qlj9tsAYJ9k48p#R*F3Ey%$XbP;GAk?$$MvLeAW??-=!=K=Y`qW%654u{ zOjeF*^|ut^knrc*B3A8iNcCucP|Hce?RX5XQqPU_vlR{xSd0@1lpu^=r_PXvidsNc zO%1to(LljJI5@0@UWFQ@@z<>Nq^$F)N}61d;UNb+e<|`%CYg$Wpp5DzFS%*}NSdOd zC(XmX=dU?btXrXL6+FYUaQGG8!T=hZtK-fDjV5bIwXYns)I$f_qvgh(nouwzSm2Tq zU^N0S(99VeH}{OSNJ!Qxj;ePh)A*7D&Quv4~^<9V=)cg{@lxjo+J3V@nVSt@-z=%n*9TCPz^2S5(n&Jm;7wj$x z*qD={(|s9sOz7vgO#S%Wnn+)DkLv6=&P~6~BJ^YG4BOhsDoe_HHRX5Ypd5N9>kQ_T3Z zE`Va-6F(`P{Wg@xxha_!YYdWJ+Ew1&Xeex6kaxCD4%4HB<`S;6HeXlIDa%n^-(`As z+mMQ^_0!scq4Gl6O>0F4$?S5J>QY-V@Tuxc)_Mqu1P<7^2k9YLFIVJl&7nv=)W^LA zQ)~8@?2>WZ1vFvdsGQV&>ma_WO%IoH^=h-h?$neJlzxe}puRWsLMsk`raFwRDW7SW z;=T)#l)|0~pzuD+(XcHJl_HSBgunhwV5{v$;Jy@QGL408LcgpZxra)mk`twxVk;+& z%{=bW5_9aBv+mW#=N~gu7H?&U9wc~2?ohP=0$$X36ZlvY9D+_TNmD>LN+mdv9}6Gg zj@uW~W z5*2p)a+pTkPHWQWnRwO22Q(5}4Ps1DzQ~|osrJC+{<~{A4suS1peY-m@Ae(+nA4uT z7<_=&5EagHK z<7z!)C$gmc<>*i;Zby(63h+r>5NiYv;RQ3Xm(t$clSM!du73?>{U9a%AXPMuG8&sR z;pI=%vwLE;JtvxKRIHfTHW^}rYO4?(2ix=nN_WOH5z`$H)_Ru7GBH*c7b@BqkmIDD*1ytRN8fSv4idG*kpkuK-`DOcA9C9_}RR1L-GhDKw_x_=Y& z6XuMwI8AM;J|lEm(OyrsfdxJp4SPGoV|I6E!Y}ki&PLURP7n6Eqi+DGGB5Pd5(Yyx zErJcV`r3)RqG&6$$IL6hWLY>G49|Wc2l?K7P*y2&oK-`}1}%JipT%mZl0hNh#JHJ{ ztya=7uE*KTR^QV7VoI$k51C)AR6#=I7oQ2UUIP=4IT)2(_~cv%fP8&}R_*-hTU`s@ zdeX&Y-7Liv3_Vg}HzjtX-*slqxhjkXF==WmJWCf&ub&@D76 zb=#n0tknTGKd$C0>g3sa3-UVtrt$p@hE!brJtR)=c5&Zb?f3`n}dMFYlDW{7#k{b@fVz1 zjh7F`Yhy|rjt)5&GcR3f3d2#a=S@p0NR8V}3&UDORtbDl&ExsKx)z@6W9zbIRt|Oz zRZT*UL)RNCpp2^u@%ZIQHmS@|LmM@+kL?)%XhKBkslk6HLe?YgdQNZ09SrJiBKEFV zBU_Vk%WN^BEj@+Wr**-wA}ola{Mlfp=EVGXqjz7PF+@3>e@?In#cE#@C7j za5+*gc>5nvaMVK@Qj3jfLk?=T;-ia&wudyfX@*T=>BTcN1m;+zcPO2AUbbp+kTHw> zkn+4`K7Abtd6j~wSgvg8tu(Ta@ISv_mu#KQIq7mAxA@(WYJ6c8OS>`=50;9#Xu z*#1@PW|BIdW`Y$i&xlRW)i;680}Mh$Tbpar=)CZRY!qJVb4QDKW4@l z^ozM;O&8wU5*fuKutP||`)ZR-gcHW|dD$68dLxy?2%TOdh#$d&Q)wT4PZnku?k+Wy z-FYfyNa3O)887hK?d4&Gc?(^fJq3v-Ybq3c0@4fD*e>l&(c zhbEwOUt`CQUvJ3hdle@9cn4G)useu|df@1KB3`5;1S3K@$SNQXKfri!fZ-1aG@Jp^ zQV?G12_WtOoZ`po&zU?sFkVLWO+vm9FEzbze)iZke3+lk?0khb#e;J|?KJhaU<{#a zD)c>3&e{TGo$gP^vS3j8O>vSOkc6T7ndssX_?qo#^|HQ$8ajq4x?+gJLN?QWIYZ)^ z_EP25gg902$pH66wpuzR{4JT8VF27VTkDI8;NA9tV$V=`_7uH|9vo_0+^AP(54 zuN#J9pN~H+C@jHl-AUx=HrZN_&es$^8a_8H5scVMhG1sPBiF~z?|R%UyKq+f$8jk+)*DZVlqns6F^ggrF_5c zPbz@1GufE#^RYkKd>D7uC=Xa_pi+XH>JUuk{d>-NX+Iee>9quDZ=q1TtD;d5XJmb< zjxZ87bgRRmxFU00OZpEg`1!ODpk^1sQ`~u8$=J+39YSSBrQ|{4p+1&#qZzX zI_`Y(@_IoMX@cAcZs3Fg3JrjyK{q7BNVvu#kuKsd872)DHu9;!<=U6wY0|bS%}mN$;8pE zjO*W1#_kBC#`&#JDf!**QN|r#x~1uz`F4$5`q**h=gD@Fs(wS1@#PZ_cHwBET-6>_1OwMw<>ji*KNP(5AFO#4W(4 z!1^;&oj1%eY_`DB*|ixhn4)jqF+nXL~~fTDr5?EK<%u^EN5B_u+A$cjTQFSrK3evawnPiM z#Z~2Du+~pa{B+zqO`3x%>e2DA%Q!@q=4})pP($8|2!}E*VKmt;9w#ecaAxE%5hX>N z)QPgzs$fLzGn0ULA}Q+AurB6!xb_RdLcI2q#FgP2wn4s+k?n=13v<;*wn)0&u}v*X zIkciatCwn9=9IuSr*9y<LQgUeLzl#$WqZ;ct_$8%Pm(t?dy z)TmXo#YV>TfaQU@7-{O>6?Hc)@K)hyCg)B&9nyIacxzJaKi+!GFcJS!TJ1WVi1{Us zUZ|$?)`!@-nN1--$BMZv=!tUszPw-s+!P+^Jx-)dd^qHw)155VU*UF=rUQrGp)mA3 z-rA&*6~Jg4NiTMWa?~cPYt4y59ln=lK)-=D9JZt>iY3cCp(JDPtc(4S?{cGjHz9HP zCUsO$RkU?F?HbAei#_0s$(5-3Nd70;BZ~jNQ=sa$7|!h!3x^=Vf@^RH z?(XjH?(Xiv5(w_FaQEQu7Tn$4-GV#3MfN#+?|a_4=ic{!|F^zc-6dUBG;>yu*{geu zIFMwNOz8vLcPnDI5mpu{$8!6;2@vhkJp8pN^tu}hJTGTPbT2a4ksTH%Oz~T5T?nJ0 zm5yqmqu9EpuYM}37q2hhUMgcADGH|+``1$~2T+-}Z*#ic3>!OX6ObIET09l*7iT;q^bDgURoN>?Suv76atk_bbg~)sIa&ME-P899`XaZrH!zD^(}1<>@rG*x3l??!Gz6 zJ`0;v-NuffPx~;(I1;nZ?RMJE1l?@gQN&e73!VZb4gmuC#rBua^T) z(PMt;HS^&n8=Lmi+_$Xz)p}Vs&3g}8LRf}xmaOk(h5jS_u>TieQ8J|2OW{*Zo{fUS zG@ERcVw^6$w*|?`LCx-XTU>gjwt&Tk`#up3YsP>@ia;}rQLQ^1?nVpV-j;FgEfqH4 z=MxU^-V1gaHNGtkpCgY$Uwu}q;jjWGpUtnroZiHo$-y((viXr_)lMBuk#KjJbIC3` ztY%q$-A{U0MkN!t0_UA{!vU_-ioA6%x==OMq5OcKLB*ssHd%yMskmqcT z*Hacv&0n{#FlI$t6U4;ER5bfp$3&)Yg4u4HkbGDZZh3>Op=HTjT2(Q)@kTg5)!%4X zSOQ;~?Vqtd;Mm8Gv7PO?{XBQu^6i18TKLSE8ctZqGT-}l0bZ>+7j z?yxAd2wn-szT$4OikGfx{ge7d)u33Fl5dkzT%yGsZU$8ow)-4(w)JRF9^qPNld5G- z-2C9rYGkE;#G|@mJZU&JIjo#~!?rNIke{+qDT9{uuc%K7XAZ=tuKUB&8i2pbJ8#^} zy2tbMUXxzsc;n4QvN*JoHqNyBFN)Fr-;K$X=T~x8TiZ_oqi+pxp@&iab0FJp?^_oj*hOHnB~Zy}|e- zM>F-LUSjPtYaL#*(~LDNB0hB_mDgu3jB9(cD~N|#E%V5A^P`Ezvzlrbqyg^Kv~>mB zIZWM2X{hDPPwggMdgZX9zR83t$w3N?7s3+G3QP!5nY{-i5R=0P6X+5|DEb<#oD9hfqWSHs&`^y$ z6%%smgoY`{><8FNXf)5f8U1`8y{tUn{I-Xx=I7Mr=DVRtzRALu^Q1>0gE&y^`;2|f zk?P?U3g@MdV-qy0z*}J+8!S;^MU4i#G{TY4e{uJ@0hs|Ko=4!lr zU-Ppd)7ks2m&x8fg^PCe(TiW)uNq5h>pT*0iKK$d1-}UVw>1s(x^H3&Hl}E+=rW9oCqZQ6dtM05^9v=ew^6(QvD z8sSwGPh&Jvxf|5Zct3qR{!XUUit((<=VsqFUcm=>jfSYqGNR~lr{v-kV=wvFS;*oT zROJk!Q#W+VQOS5^A^gCZ!#N(jLvKIpbxP$*oOAN6#*%4tmOr4l)+v5y-RPBm&40DX za{lpaV$#E!0UC0<d%g>C{-N5g+eE~K={(gnYm&v7LGkv5 zRdG_^3tSi5>H=j>#g^F~H|EyOPHIHF!RQnFsmBH6l|6hvSc-004C3y`C0^;j}Nt0r5Q^$BQy-wh_h^_suy_zGg?N-uP z+5*|!t(u)gO)SlA2?L;pC;hCSlQc8#d(7$??vob!A9$cO3Asadb%>A^NqtrCXRTXY zzj@snHTZcA?{ONm_k0<#xT1R)v(`VsniniFWvsEdT1i$z#*4!C{E1Ni*>kQnL~Cwc z_O##`&$IKBQ>WUlPWf7Pxk%GxxB*U|m)R~J>(Zkf1*tR5s&$z9U`u_n!yzJX&=7Tr zF@_ebJHDNtW;bK)2#`cPa9yCZdQD%h4>S%?6;aHUE*hHrp?eN4%M6k8( z2~WyXwtq}*VgcqQ&pzju+0b8jAFoK8yga2Q)0e-cmq&;%)@IC%;B1qot+%hRFRzqV z`h;%6xXyarF}|7_g19~BYCRL8BvR@zwb9aERK}BYEzy83t4<&!EVa;FDBgYWTn=2; zeH4dhJovA`Rf+qm2nZ|!+#vn%(qrC2}WGQfBBY-5!OId}A92zpwJ%*BPUFPPJq zu772=a=z&DnXjT*4tyO_#0%2JG*CeT4cYnDy{68~;?Gh8P_v$8+zr?0MTWvj% z-dZ! zi`Eh(H&||#EJy-MPtVTDxjS8hYK`;J9dV%M+JNG0{ zb2Zk58%w;_3d@~M|NV8}^QQ+FqcC82Lz{%TdmONvxNkSXHFeK=Bz-ZgtuXD+#W={E z0f0)jUDRS6Wwef1kiwk=3L@t)bZ7}Yn<lAU3btzmL(d-~GrqTCN&9TQC z0jN<|rCYn)*+;9p%)a2%t3a@^_BW0?PPcbef5JSBcWm2@YNyjZM1F|u+lrwd?n)%Y z*_v~#%YbrCHof0l=}dc(?abLFcUpH`e#YAHoR{%D;!nal-Fc04nF-8Be0mJ(S^i*3 zU|RVeuB%P$QkuUwlX$!^47H zNWV^<_wU|tAH)0MpwBY0y7s7(f+{>3C37m|=Lsyl>#}l}J5^4FAP*$o4?fCVM(Jnk zNg~8!n^Ny$%9MfoG*f#;(?MnV4}- z9T;T?6xhc*OJyGixg4!q#gVIM@^*7mL`#~Lhr16{MLQ0-JKtuW-O4dUJl?{N)fpR< zLGj9KiPjxp)^F3*L2)lit}2!2D!&%qN{`WBPcP|XbUZ^`6uSg@Ht|g`*AbEKNj{J>*-Pw%DT8kb2-Ubx%R_IN+Y!(`cmtPU+dlq~LWXCs)Gj=IE<|KZ@ov zM~cC7+TdR!cAIa)Z|7`zUVcd0T%+^~YNqT6f8N{Aoo?yT4j-FiTm0F8_C$Z#I2Zex zNk1&12N&L66k9qgIjAuzYh5uMUlf`Vl`Rws=psHC~=iZ$%%@j{}g$gQQi^ z&6v;uWt1XvT}LtX>7z~H_jaG(O!(j|Cz96oOZf08w(c<@bA$^^NieVU3~ILL8mFSi z^HYs`Irxm+K^&MgPL1oktqMz0!)NsVY8}YMNljmiA5yxRUMEWtP>ZSceilERc3tLI zK{T8@HM{Vdu&C7A>!LL_U)kV+NZ7!!WgKzF2 z56azyZ(1o{m-TAr5SY>|eApW(Ef`hh$B$75jz@d*AN!A;GR9?jag_3OVN?oC&2^V; zKAuk26>ed>geSdr&AXg6MrIikk@W3^)7Pz`I0V2LBR^prGA^btEJ}!rv`TI@W{{f- zHNaV9hShaj=b?PzAo3NofA;#}tEC2s8f?N%G{LQ1$bnmAczTk#0`sLa`7SBu!_dYf zOZlDexaY6XpO4Oa4VL}vb5Um^MsvkXt|x>;O$?)WQ|yJv7kSgc6;%08S1$96&V+0- z>=~v4jUWLXN)01S(Mze|*IDtOZpzzk94WgZS2X$$`yy%YxX#b^Q_Jq2%I-GG?kdZ= zBdmO6ybN3(nSAC+6PHHuCS|Tfv)PrlYNn8ru3@?DC3u}8oj~q8(x6s9AKQgHO}U-X z;IEAsmdYaa-R6A2+ggBC`~2K;I@vYEPsv3va$u{VgLDABDG>RYCozs;*#qbKSJbkN zikgc@M!#GS{jerMj|tpaI;oA3kDeBXG-jX0Yx{A6yCYVaq0>&TQT zf+Pw}D~g7-=}Nk=IoL3#@d`7U?8BmMs^>nmAlq6l z{RR7IRKkgNG8hm2{KIS1DJ|N_%U`L%b&z_N{hVpC&i6K&2g8d6{OC?UH$woU`_;b@ z-h#q@HfhSJ+UX}QnT!v-$8H)LYOjvD#b&x62mE?d9Fu@HstC!UFz&6&0L!BU?`Lwo znu6G{zI&!2uAF4G9S35OwTRnTg3zA^mZfJ_Ij?H4HS7oPIrIE1Sr-!zxW-5hGG#@Z zn+Cwf$dcB*-;Z6V!d}(@MADgR3^Q{v;j>5F&~k_t>mV$9!~u+RVGxkKQ4+WOm|w5Y zX^0T*AE{y{B6@p~a?REH@(o)xiM=gtSw)aaYu{naNxI(hi3`0Z?3+?ktPu5>W+z>* zhJGO;<5Xd?94Qf6=?~=j(Na+s8HwH3`j~W`qGoKOPs@RK;;yEmk!ZQ1f%S|NHex)( z7W(wjuAKem5+gjXxeYHBkagOq7xw+C3#pTBmP>jfpiv>rK0U|-1#@eH=J?9+o#33v zS2-;I2Bz;z{NM=QgraJM*D}Bnt%P=sdDet@RX9mvjv;Z^5C6tlRo^e1E#*cn=pRx?TsV$v)zIC$ zyV*z#TMCFrJ+wZ#CFseZ<&>)VE!XCT@0ox1Fb3SJ3Q_;VlfXPx17jouCdz4a5>jod+z;!3;P#AJQSG3``v-ff@<#xBi zoUscY8m6mmw)y>%+I{tj@u+#~7mNOUMowK> z)KCuham2N&T#hR66V))i@k0Z z=5lTInU@bPLWCxG%~Lh5+Kf8{yUdsCem-FCFrJV|7Spca*}UkBjQwSbJ|MWZx|)gR zg4ikxYSzPb7qlPz@dwU7Y3))e^koCp=$3?w&IXE3ihbuZj%)eThmJ|d#}ZpNO!PP~ z$Q@3(*g|jd6X45*?(jR6QXHdc4R2#}sxf(+zjyYGa@f7$Q3P`>2*f&%l?Ado7sPtK)Iu&_)0!_5qApgUYF z&S`Zahbi*vVMT9Nf5$-r%rid&KW88u+<^SDQtaWi<}+QteuZB#iOL#~)`T!bB5Q~TsmIHA6`sCY3kyoj`=D<8VL*`ikZZYNnunyCX@C&;l=l4VlLLm8Ll zmXNtYeep}a_)@Vt(Q5|A?T|&uSt+q1((#PUkt*^W_Z(WQsdU(MaaXvj-^x0=h3hGRb!cu|Zv3W{X25zD6R zu!nC6+%k)#6r2r#w-%2Zy}KTOgc3{t{+Y};lW!1l4i7Cx;fVDEJ;=O~IKPB0dG8$Q zK@cT?FgH$J)%&~mc6z{?=k{@=Lr;HfXu~@Puo6%9%;h3Ryn6|R03)PL;4`q~!a=Q0 zq0psAg=WZ(djwP+&TtxN6{i_hvvb6?j_7Mad^%)mXjEjk*YE)nep#s(e0B~Y<+k>f zwA^xPN;VvG)8|DlMjn$tOIYgY>lbR9IRIQxv;vBrMYiu{1 zZ6jv9mbBolgRQea`VVIf=W~fA2`7oWe|6y9c?6uvpXLl_E=wlKB#9(RkQV^t^W`MS z`3H?8pz;zKf*GQbGEwBA$-z;0i8EqE2lBS%NaU)>Z{<$&!wSN3!t%nh!t$4e2eQMm zjT9Kj4gj3w=74AbCm9i07kL+%AbGuFfE7W647!jzE$O&T=Ei z4M{POa|#K~mhVQS7GRf!QY<3dBQqs8C40?!O1WU)VH`9cEC9%o6_CAVdrI90T@dVm z4n6{I$zF3)bD#Vid@pEra0ZtETY!49J~B~qTZI=Hb^&+43yvLIKo?++tXu(3{zc** zW(Rd}2;c_*1@J1q2rbCE2UkU25E|1O!|y}_c;#FaUF5xG-M>}EUT_Xx0&oB)fHj5m zoTq@Q@C(a9mBDf{O|te}t9+|$F3AP41wQwHs`Lw(L5@L+dqOsWE^9I8Ane)m)besuwLse4RgL}P-T0suImkL;5Cl8iTtOXA*l@d4Jh$)f9B zIw?qZzIjYcE|K-CGFbO}UuYpdEDgwgp(#;e2YWxQ$iN581uZxY$9U z%bLqDsLPsi_K|I_4ds_J_@zb=g9wm zivJw_B(Q$y?2+S3Zw9Dnk^uJSBukeVA(?FrSBLip z`3w^Ls&VoVO$b<|r6u3hB8bwqGqyChZB=}tc?a;c9@A!Qw^c7-?$z^DzZz1sVn1~s zie7-S57rWuw2`hw+cw^OyibnRjiwzy-*&XQ51T0{;nBaQzYoIRT_m_5AmznBi}l;) zwsB9G;oP>4V*zi;npgMhJZCTr9a&0L*usu?J>P>LP@>z}LkO=^|-~B>}E*X4}T0jgE-w zVrWtKMz~|lQD54sIdC&1EgBu+lB7+dlZ+q=Hv-c~U0K4Vb^^6%v2a&<@24mg)k#@vAJz;UC@uBPuG)u7RkF8sCY* zYN#-UbQZZETql`)c>zDgkUrmUYsH1MpE^L8ib zg8@$2-89nkDy>z6DD3nh67_Cb2Jrv~=?@2k%Ak_~ONd{HwC7Q{pW{9(bFFXY#^xe? z5Z{&IbS1IB5SmO&lr_(=NaPZ>lxT!Ue$v$l>h<|2Frw_BKx6`z`A}{4MIce8a5sfSmesj*Cydur6}eNlRQ-dtybxWc&NIu=~1 z*etjbHVii;tXS}b9#J3Ye0Ux3W>0$-ZHCEnL4%2I=T$$sE~#R=E@*~vp2!oK*fO8; z*@)T*x)9V8a-KYgYp##uFMm=ppa#Y1nAW9%e zAWXnV-&z)KIP1(cF!WFeuB0wpolmZrnvba&n%6rrE~y6(b4H?@O+ML8R%>1`5gD0P zo30VtJPEpZ5-6X(KIe&N=TtJ7#eAv4UgwI3Rs79RHrg<33ekK zL0qZ~>Lz5MAOs~cs1?$RUJjyeT!2lHuB-y|HNZ)D+=5=}}vso()gu?EH_;+gYQy-(eI(d+~&MiKB~%zZt*$%gL< z9GQ4ph==0hQj8smSNZJGR)c$J!9kz-U-e(*eb7UBPuI@s^Eep8r7U$#15o0P#0*6= zdv9P<7@zr?m=jm)b^DWC@K59xqiblmea*c-e5c|`pq(?lB;iT1H4xr!xX;U!taHC@gli~~DPT)Wld&8RJ{d(J>PdDxl&S<*g!uT8 z9Veg*m~)!<G-T%76@iuvG>Wm$)!w4&qc zIjs_sxRQJDK)0$Q<6(Du|M_CfZ8^LRC}Z+3v)R~@SMNigXM)!g)?cr$`xWb&H4a7v z&aHW~O>pX=CH#xgEV-z`gw*{OMyORt>ffkD;|UORG0g?y2_>UMjOeQ%)q|+`c8M;d zAaZdF1$PNwv+{YCL^9vgMew?c4OsQBGARk&c$QRQQBV+ZXJpE*OAoGMW*y7d)S640 z2ntu#A4iw2)!VVpU31co7GLhZpr0cNxf7^490J+*zPv0bG zk4?}y7dl*C^s#)Z zrMwTJz4slv50kzBj_Nrq>e>IHWz3^x$RYk5&bAsrOl5)yqyE!#mp*~Lr6*} z@Ww&FKj?l1c?Y~Vw)Srs_TISN{ztw29$U;Xet?%Su?xsoqN9(sE@c*{24V;Rjt+Runu_KVu zQqUIo+?1l7zM=73MiIzr$H?@?c&Wg{Lo4j&B&z5H90FJ+`bX7ozCvKt8*v@5R7nZg zH5+hJzuU_>*ct-4^)zYaghXhSjNP1obbNpEU5Wtd?f!ngQ)A>U{pb+-)-K6U<+FN) zkZa|jXX6c$io3W_dT~>0XBFbi16FvRvo&G7J^`Y%?(jBVhgOojDTf4;#S=${sS{-n zR4>W(d332j`Cz^c;}b+V^Ywyjs}MPs=4K1#BY=?wffC{~#GyXhIq?NUuXVM85B3I9 z02N{F>2h#C$Y-fiU$`o{V&;FUg_>CFhA0Ko5FVU=LOnJ@v@+*@NbkL>zg`)&7xB{$ii#p%_KzyVRcZXv+lq*;lbo4PDcj*jtK*16 zT{QLcv?^=29H#R#c5ym`MJ2{%6vUU@qsfP>_K6|*jWWVWTtvcf+;l+zI|UEWeL?pK z=69pqcGMx5ekB5aDg=J9`YfYl{IvU`K=1gGogwz`4E6W_>mP>tC&{FWw5ptd7$v`h zxxSUO(qGJ_z^A1L+dqtl%#K!Z*|TgIH2Z{~vAW z8R-5r03`=!$kGEzk(Tf)IUdmn-?(ucM8kjr{{lM#~9iF%R;6VGi1?4hai0W z0!_UnY-cc(gCdo=4WfRZ2&+eZ`>gl~OW_B>Ieil&hgd94eQ~MnhuF5j zveg4UxKdl+^k&H)GsoBS4@U7x`K5tNb9cHKMLgn$=ciwAuWGIXX~-pGy}NrZ5z2Nq z8V_zB5_4^{CdMCf-0w6_aiyD@ubv~*r{PU3&|s$a30S@qKFl5FlHd%HERmGecR3?j zz941H=}5D9kC7?5hNnLk&C1>9knAw=z$n^mR*OxuzRo)KRXu0DlnE%9K*|=Jqq>Xh z_^NKBx=HK!v2M?|46CQ)uw+D=u7{<5b9BI6U@(lX99A=;Vssf+s{-e&0_Ba)_~}$_ zSAA9ai+o@4XMx_>d+tzncU<*-d^-dVNbK+K{5rthC||9w2SmRRZvd5~D_}OAj3}vD zJR==N<@p!fO3cAflN@B15<@1Nc$CMKsLBS9&oBqwHUC1q~f-TB|F6K`JimVSHPZ|{EF``>-u zJn*lU|MbhZlE2sdUPtKP&LnW}znr$WN&b)C%D~F}_sgJG^q56AK0@yqPY<>$e5iP` zwhIB6M3X=ELtwtwyPQ}hvoH+D{w3FGV;CGcpDxdgVKUprf>|^8r{0JfcTgA9&MRU2AN$OO)i;IOcNF5pS(XB-0C|{IMQ7f1=rLi-naFDpGT2fQi);RhM5;~SizwbOSnwy`ocar$G=!Q9l$iPq58 z+FGAhkXD>lhE|bQiB^UDZ=AmjK(1daeN!NRHzPegu=}^m+aJWgEG$ew;$H?Pd{wW(6WydrvS?&J(n{ z-s`kHOQxLJeIbdAfq_(-BaFIHu$A9eE7SlOf-p!0LnnFra8R_B_fw5f7IgSS?kD8? zlorcAs~(QP_iXl3&ssAa%_T4eCYY#E5-%k#E^hYNEU4;`j?U3idh~5-IdrPneEY~_ z_#`JJf`7Pe;w=ObbCPuyVyp;Lv|k$CX3)&}P%4wPpn`BG6J%?JqrSHIN-N-Oel8W zJkOEc(uX{}N)?+XFmw3P6~8R}`|Ry_1t=V4?lm7xWE`F4S53MC|9+csSYMI3$L7bm ziHt|y44p=pFL3T?%w`M*O_+=gL=6Q{hVJx*!p(xGN*{2xDXJtlrPiXmPP zqpEzL3{L0P(d|y)h2cP;3nMO#-~o2C4^&J0?lj#WST(MV!X4m!Y4#NN+zMfXK-6Sx z9*(vL>jpz>e(%VPdvEVJBi<;)o4HGU+IiZo9fVBtI*o_ zC2)L&2*0VnlvKq%EaOT|PrJ2CUm61a326uBf?2tnk1Nqv%;)C4LWjp~`!fiU39{c% z%?nZCOC=d`Bcys6MiN9=FB^5p^IbPek#k1om(>P`AWAimRfypC-5|V86=gm(Y%quN zVx1R}In(G%kc{J?3&l(TfkuJ028CpGnBfYf$Xjq(M>-d?Jry zoYohd&1!4+Kbu>oLD<1G=|wGwUU+>Ih0#Cf+|eG2q3cVy)(t(?wM_+HxKbEGVc}9q zfny=Ck|w2XUFVZ1Ru?+A9mqVle(mMO^q(oYs+H2B0V{U7xhH+d#d)^Eucw`EUBTIf zkjZlZmG_rqY=+$0ctz5CHwMdp_ixeE-y;1#p^A{avXq3vA5eu_z}CtL7|{H|?EW{2 z2DZ0ATj4M4^3O>9KS?yO{ei~*Bwzpg+WNQX|G$sUnV1;+n6l1A1 zqo)$DX`Ob9xkd;3sSvM9A*9T9&wtX#!zQ09vgdKh_-1d#4!inVW4nEG!x)bB{AxD* z!)xjeuK-Y}Ahmny?8__F#j|tr%R@DuiF{BIQW|fs$XfD&hvN;QtTAmfP5SNS3GuAw z%3X`JPJcJC!D8iQLZP{rSwQUAtgt6VX*nqQf*-M|=A*g(DBJiSTLmCA_|d-jVRwU#fGP8xA#gBrpmKcV zi2L^WJDMMw|36ZXQyK4t)^N2`ATUF6gJA!8)g z8S|Yy3qDATsu9D%e%qkGCpxslugmYBiN98`_8;l`Fg*q!iIgH->(x*cTF&bH;FMr{ z^@7-^jU4&WyqutWM+_#ZZnF*kc^!|FGdwm(`BwKv7KrOb=}$BMttI~R#*HRD`x|8Z zo2tX_{6DU{|ItYQMcRS=57hhrB<;Zd2gLv1NIS3sg%#-W=^1|GWqP)^pj(@s9SCuL zhp9lR2Vk_S&B&q&1iwJV2Yg2M-!Pbo4yfw@jHH2w0;A_Q{fD>Xn1I3$KmiA4I?cC` z`VAN}Grk@8JAVG%7T5_hneRdCbO}zYXf6qHpbueKotl^pcnt+z_+3|nTfYa0Z#%uFqj7R2*ff#;R&GP z1h9x6SoYTFZ(jTRZ2c>+q-Xn6B!c}dkN}En=-Y`Izu`yxH=Oy$QsM*zgseb}_!}_( zT_l2qf$ewIKd~Y`+y9Lf{{o2&zo+#!$QuCstr79>maqSe4q55wXvLj?Vl;;QHl|j_ z_`sVkKz$GuAdY4EkMNM0{_pS*czXUf@e2bBE5lz(5%hFSz}uI9-A46PhEa-BMtiwo z-)q0UkVD)FAB9&P*vRtD`Vj<)J}uQl2kJT8`W}LZJa||_WLh7hlxd`pNpi%Kl~=-? zEM#O-IUm#9Bmy%hCeny{%HB!ol=o4`ve%^aAl3Pl+cd-L=H=${1IVwgGlB^ZC!6xz z2xQXM5kPB8sz2(^!%EF{0Z0f~3Ao~5da8c2(i&)m^1H=3Ss5Q2iGko}kFPgG-vCuH z2C5SaEhdyvD?iU3W8$5_g9Kbi&?NH|j}yOmSK+#Cxbq|o z+l`RJ49Zb8-*82 z<&rnTKr5cQpLOl~#~JLdZ*F0}8=d0mte9O6B|mw-bhM0UaOQ;UBVyg+QE?xCPw!h1>S<1kGagfuu(X?EIdZ!(=7zLDl%qCgMD-KIGX&3GTPZmX zBS34`GpZ>{hW_|GmQZRK`EuL-%E*$GVbSy#3v7fK_f6(EuS-^@9Dfc)Fm8cZb4+dY zmuxZY*kYqJt}HQY6Q8AtG%uxyk9P>7b|`&fhWD-Hf%%hE4~(tCBb^AUJ=DgEFw@#I z`8^FOE3PB*yVBnYu_Fy=C>H9EDv_P$Y}PYS_{fz6EC(`8nkYPlYA~n=yCo|5 ztrBv!8Ql4Zi(#3iag+;cdCfvgX^J0LJx+H{Pfkf36BfD~r_y)&@Kd-sGO7(gZ?@PZ zUm?~uQ%QZ)Uic_7#Y>D?o}*R9T{y&~o%~C`yNZN<>+H}l4K7%aRW@i;>sSQ7kuQ*n zwibfdEnPTZwxG&GJSQP|8n4@bru;QTo?AKlQzqxuGZdNLl-y88Zd9RA0ipgTX5~oL|Dg|RI4w}JT0Ht-%wk#RbP~<50m9V8>+cwEO zv3LZ0*KwE1v)A@aj%y{$wSmy(GE~X4^AgolFtiaa@TDp3)wUsYJctrSVud{TC`-9` zJl;aHhQm6;WjdyRRVPR}bz+Y##cRP=fN2BTCOX^@Ilzr;*i8|`12;d^bK$ELv?%7B z75wQICa*d}N}f{Xt%@TztDUvh77snhqg@D?e}%Ar$y%?2NJWNE-}0F~82Y$OK8pQZ zL=U``tA_;QP6=%qap`v1On>6&y2nl3K@aMfR|o%=+AKBKH^SL*batg7#5;uN#%hjj z#2Z&uXg&zxsphBA0n|lY?QvaB+4twC@+Ki62dId|C zhdQ^fY(F`dle)FJ*(ZBu)ovCN`5x#W0QSN86lI=1Q}EH{#k-A%rC3-|0b#THctK_* z$o>;WFOQX)@1B(_eaH2?4)cAf!58AlEY4P|2U_;2B*(#5yZp61saJSX@clwD>7cpl z<0kuQ{W({~jzq52_U($jBavcP-pOX&!?VF0?xFrNvcdre4mGXP z4BLF}>UmZI+}bwpmg}uFL<8F5yeOs%8zHgTuNokloDjy}mvGcY5?40(_4-fM%Ls`~ zrF7zn2q`Fd305z&RibqbA#xr$J46>fyZb3xbv;VDx&X==RXXPw241^WgM1^aAUVqtr zeBKzW*e<5thp_yGfYo0oB9E!mQ-e+grD9#!Rf%7=HDSJs4O%m}AzgQ*4w_Bq1Rz-( zkAEz~2#_D3Mu^5E?kS4@uEc-sOVAELHT@J09-Wl(A57*;5(Ywkdb;;;xu?56fPubL zxqqIlA&4Fyt)BS_0T7$M+fEje%w~=|T|JH^);0Kk75maXdKg~-BAq81=@!E*YDgC> zqXl9_Y{&pIktf9bO&`HQQR#H~cDN0Xariz0l3Z`x!@-u~mh~#dKQcU4@LX03D zF(%AdQz8BzoQB4XAz{n$on$#vTr>L9@q~;VGjj3 z_Ycn_`wK=!4@dCp_|_F)=f*aNd{)ZAxRic|oe07RMyfJf?O?Z??2;qAXv#)ypUj9_ zz?YmyIly6PZ%k{W=V9k&CYR10lpv?-Xtu+Cyb!B2q9&&%{5)i0KQI26w^gv1tow;` z`8>@aL&FE_bq{X4czc)g5cT?=_BAt|r!ww~0(d$ZrtB=mXpd24ou89gB>$BR7PveS zK?60?HPmPZBhN?6woRG+Le_X|<>{1x1I^2{$}*!6!SCc%npIZs^^36Pl&I#v+-+9A z%tY5uKXkaZw^bfVdP1PTXlq|x$9WtA9x%AXWeaR$QP-jT1_A!>erj~iLuTPg@!|RK zFJoVVJ5-jpuEV}tu8lp)4Xph&YiE3iaBH>xm8p%2Y@Kj;{X}&}x2d5y(rTUBLT1e* zd>O;@#`r23$z6Ua=cLcnzuKVv-1qL=4|A5jV|rIdm%zrU)q~UiSwO5qn-CQ}@Nvg` zi^|?{T5lnm%dO3Z4ZLl|mt?mQz4+9sST@B2`X1ZLz*MhKf^~)CLQ>FT`8?g!sXzR> z5;^-=vK-yZUv{v3ntyb~exrGi%ar4aNZ>p+5nuOW@2853XLE4-#wzLJF>w(yiBt_p z5RLb_*rY5!z29znfE>)ezVXj$%1#Qw@-S3e$*oI0^Dk+Df4%WMOH-ESRoQ3)GarPB z@{N`(#_w$hRoDZ8Ahb~FJ~85De_v5W-eP2i9N37m;KonnfN>yvWr__xOczWE0av+D zGEAZ#?`$q=&zqZ{6x`ia3pmGIFW8LT8S*7Ny-s$|YWQ4V6EvV``}!~lC*@nOwpKiI zusrm^97QFM*U)e{g^B0^%jbeF9wQ#)7eKah(Op7N*ZgW-VU) zh;zZL-H(Js`F1Pgsv_tEuKdSXYmm*2W(}j`0sGe%I8WBn_msXQ+3~}Q+e4yK2Z|Bu%HYE7+&kP+VKMhs=2{nd zduO;W4e;{xZuYVMBD{WRtuKoX|L|$n`Pi!H70O0yy5VIy_F2vK8G@zw`H;pr@F4|e z*f)LkSycB$m^D+(^+)J3*|Drfiv<|e0hBNmHT?O#9Hf(ifwz5-YUVq00rfL&SQfJQ z%=dL)hvv`@hvdjr3)cebqFqcV=L!$TUsCA3BKw>k^=q>Gp$P-3gWgGst_#Pp zw}=!spqEWgs_rkt2x{=^W2A!{t*L~y@Ug}Bh~>DlEt3grplY)`eSq7vQ41xHDGpj7 zgbP_AL=+XLF~|xe13lAf3b$qqD@t<#X;M6=*}G~wykX7&sn;Vdgq@RlKj^=4z=vPm z4UdDtdsPyv;)?=@_X!VgU0hkwNewnQ00FuiA2&L;j6OySY^@rxJ9mcvV=<0&@z?2C zkaX%CRagVGek~nZP~PKO23S{luX>M%C!K4rs`m-#o_9QD%7G0Nq)>#iYq`xvmJclT zh`@(Ko61T!$#Cm%>N13EfBB%6)6Y4druQgFqjUwh!MR5`wsO!c9rp#PQG3Vc+Ec&8 zekHFA6w(eFm8f*_s677Islcjf^jVTWSnSofdGL*J_pXK2wyd79y88CZiLt5cF9NhK zgV_N8kLmvhYCx607DNDxK*H&u4Hk)kSW#gu4wE(xH#nsdkwQQfEmlg>7Fuxyunnj{ zRVwmFg#zJdMC%j?^l*YA1QhVP-`ia-HM5#|Gf$)0@A`ee-`9nIddM6x<8gE9Pfs;6 z*}L&Pa-mVx=h>LcWPz8W&}{RhB(k3sMXr%Gqs9SfD=I20tPgPbXw#amrs`1(r>Z_OBYSm-IMIGwxsm&5BiUvC%^A*UbJ>h9Tp+Oy}#LbuLpWE;nk z+u*5#+iJfc3q+F3MR!C%31Odr1wr9SIW%Odlsh;W1sixgiE<9)2$@4-hPuGDfHaW9lMvy-UI8mgZ1mddWCDX>%n?aD3?q*A^$=CyG(}5 zTV*WET)_ne?5`K6iCBDv2i=52rX%6Nj_2*C-)DcOKpXvOH#7eG?Ay-w^^e7G^zUT0 zeSE+FeHPgTfW8xeK9jp_PaHj{VbE-8g}g%DAg@<91lE@-Vn8f)2i&DquBu>FsA`Zr z$uW=2R9<=xc2eY|5t^VpWvGj`?|Ke(%z5KZ zUpC*z3g`py^|@GA%f{1r63GJ))dGbQD>fL4(LJheq)Cbx^cil(Ewy|-ZqMX)9sWAE z=XWQ&fA%?Yp^-y#e~s*2efq|&5$s|BVc zcuvOr6;R3hxn7Px$$A&d_BnVW+>gkJ$Bwrag>Zdd3T9iO5+S{=EvQQ9c`y;|fRqBE z_i!o>+71U_Ay+tf!Xq9E*H+5LB&j)OY*OhO=si?i?cHU=U>7c;BGYTie<&der5;>H z3?)J>Jd~Kqa1gGGNwd;ISK>CZTiHVoD?RkC@__nxk*&%udPX@*FX7ANqH=}a#J9)| zMJ8|iP1bg0DW&-Q22p`Zao4I9SwEEsR( z862#Ap1F%G?U@06OCIPw;4m2_XYxnBR^nVdn}LEshz(FMvAEtx#}GvlI-cvxUCmv~ z{SAmY$lrP}k*s~#&Q9n!jnE-(LWgj2rQApMtnI>fd55|~Co+O*c{v#QYE+Sl|nvu$Qug!LXxLiQ%b5O-e0+oB90o=Ea2NV z6Ja~t6kZx$9qtT^X83j(hmFck4mp9|5&$jM1j^d~_@oKsxhPZ6{q=ne5t%HP@gzsp z)iIP82$w@%2J+gxUThp+^ZP{|htLGHA=jQek?YR2qY+;pIB@Oi(WAZiLhp{H2jgQv z8vZ=@i`){R-NpaS4GauCy8n=|E#sj3fGrk>m3Fx(bbGsl{EGrwBwQ4*+f}aVI#+72 zF7D)H|Nrr;KN3z9{S(55^Vx=8_B_QtVc23jf6B6uJdhB6pI2lYYn5Pdjrj%)yA6Gb z^jF&VEZF{1%h^*O?OQSawMn&|LXSUsb>F70H(kE|OXPH}Y1o1vOkb=~_+yX|!g27& z$3?mO_S%$lvU85q;%HIX{MKn5(Jw1hltmhl{j^S>s84iCvZ1)Vy4UG7>hwD2i_Ycx zD&stLv?*;RE5e(V%_SSdqT=@|s#Bk#FW1-WALzf*1>MwCucoO^)u#pgGSD6Q-i_lqaRb0QHpEwzwoB`j=3ea}WMHsbZCQOnmt z9}G>81@2QKWHUu-)3A6(hd~y(it`0fLpH+#T9c2bMX+q7j>SJaD^+DK>V zvto_bVs)W=QS{BKMMGDHH-_L$vTkYnOQ1a#2%hsvbDT`!dS!+#fjrCRR zD@%;iA==>BU@N61tp?hlO^A)RTC`?smG*Y5Lwhgw3H`P9o0vzTiYCTHtAv(l{+JZA zs76p=cF-;{lS_hVNpM#X2YYZcR|+8VzO{jSi*^1>_z@hA&OTEn8P%PfO7tJ3U1fC?1VPvhj_fW3<{>EyQuMHa<4d`h@;A zM!8JmW5HXPO!H;JeznQEr_w@#(KO&E`O0G2e+n}HM|G9JMsc0td2{ZZyF1=%W{>Wg z_0=`3vBwAC;6ZiFWrI<`c%d6W0TU}qu~92TRgP5Q2uFcHxr_v92+&X=V#nA9To6@( zM5?F|0&-B43P?@rMyg!n2zK26%^F13*8Atpyw$$>|Nni5ess&OJ+IUoeg9dyWyAM> zL>}blth+hu*1a<`SzLwA-uTsyQR0&I*t(7Gh4yS+JI|OIR3}VnT6?DLFD?K5TyB4( zJa>|jmuz{vfBX8c-$DrYS218xpY2*#o8yvv30=Z8@@?P;ck>*J7&4EhNRDvuU?1rX z;0t@vcvE0GaFE0Xe2QS|rj$mqjoe7?CTUW0Wd1Z(m3hsdkWdv{S!SwX0QdM{43nyD z{Q)FWj&&uvZ#B?6tvU3Sk&&lUVOM*BG2*Z*jo4;ZaSo2>TmT~cbjNg_TgW%L_PY+a z4|+R%CtW?hJKl%vFe}QE1lEMh%i$$4D&N4gN^UoE&0u42X^?6QZVZyqU`g;;@N$q2 zB2Y(Btwg)5Q5psU9nc|B|h8Vu6&8G&aEKGi8-*r1~@a3FkG zNhiE~5s}Ap1H!k`6aEL`iNsuEJ`=7G z`fk}DjcJ4(f<(SO1ete zOLqv@=+A_|)0{x^tjJLgR-`EhLqKI2f(J<(C3z1C6IK+X1ml6-LD`^)pn*jKP~&0` zYvy!T@GEQ&ZCP2IeNJp?vk@bOx@xbuuHfQ8m>eDL-`RJ{CZ{_>OxUN-3eE`4%=^l9-_2KO zb=t!G7Hwtz=KS}yz4{5gFL+JA9+X&C_WD@OSHKo|Q`#DGGkJpTX0Ni+CF2Vh8IG4u zbQjBUGcm!4o4JKBXklYj{8^lg*M;$cD^Z-rD`7;0UE#CgAHsAvT#U*H6YgS-OA-rW zX2@L=GlMP|0=g0FC4bpXbCN6+<8uqo>70~t%9=YCfLSt=`vE%BrKel*v=#J|c<`L(jvY0upy6sdhMJ;#+EPGn~f zYz&38!{G-5V)L=BsuJ01btc28JvEq}^bzsV%RRxcF+aXMPNoy7G<*Zj8Kt(sGibPnqL`T0a;l9-B1JFpb_7g^O~J0HRXHL*{Zhs)&LT zwxW{3iN_`h%0W-GzEj?q+q!PUTa7JV!Fd+Wb8q_a9ljD*5Lt zaKLEri+LyUNtzG2TV^|=5V6}Fucp|PkW!m`O@UPCAa{r#;rX`6#t1o?GNj2~Lz_j_ zO0&GR+996zK;L#UqK?~F5jn*Pr4al@iky#nQIY9%68f$PinwA9E!TMrEl&DghPi?sHnuKxHa{*My^n z9dnDaF)=XI^ilptIS4_x~f`3%OKd+dO ztSm1is{x?E900YK*?N!oKi$;=6vcVRzwg`k&w3SS3bugx2o6(u1HJx;(HW@q9w8l)E7M+IC zv<=3DTl(KU@G+Ur&EDSb-R<}NU%y9F6k9Ex0}{{baYW_X>d%wb=YH}94$QxC+Wgn^ z?b!SN7}qC5<|@rG9OBImWAs`(8P>|0?uC)VyTAxwU60e)5OgD=MD0G++P* z;Gf{^G&F3?n@{5+I!DP-8|Y+!;pqzj;?q>(b!)2A<3ftlgONhK0`HP=vot9Y$tr}% zV%4SLNeye(6&$wFP{K~KG6h{J@_#Sz?d|3m8alHz+2foi)yE^*b}oo%RE14qk=Ey z%L8GY7w9j0dDE7s!xaxNDt+%gbF`lh*X-=B%YR!btF68|@k?r%J^N-Y-D0z7F zfa9hv8@F8T-u8kGk=AH?G2j+z@-v!$n)^xt!loM7UkVNeTuTm+rN?^@%YJ|t^I3)U z9S;?F9NRAbY3n+SFZ?EnxraM{)ocFyZxcIOHtgHowth#IzQ8vlS1ZYT?8vEey;rb= zLq9(-@%3Myf1-S3pOfr(_2?_demZazlJz3E$_Bu74GkGl7tY3IRw0!oc!~NUzJmph z(U^R)Mr~6WjETpqx;>PaV3(EDEQ%9E(d!d6gd{P{3r0?U{Iq~41uQ_Cp(NVO{P>Rp z0|C+*xD_Bb12}-ZVa;d57W{U=hj00?FX&IC6W_HlYI(U8maU79PhF+m2x!SM$f@6! z7`$!sfDKe==^4ZatsJ-Mjl^Qb2O)RQB_CG9A(a@{&9S1=kDIreo}I> zv9xl}&eSImH1zgMFo>t%BLz-x^9T}PX9-nI7($IelEN9`qHtNbDKObWi?Cf7fEx_O za)_ZRU@-$-MjydHn+Oat!*aApIN(gX7jyIDbdaBl>s}lQdps#du_8(frHxUKwP`qB z!a;Ks2kAF3ZBBgo4Lbbg2T-9sP@!haKcN4NAZqgJS%;diE#21O>^Mg$l!w)YR`#@b zL3~GeSNuQ}>!=orIJkgN#eS22hGpImuF+%k1pOJytl(Dgt?X9%1^Nix&-AfQJ`2_VrUkkM3TgFA|;9vJxso5gqUK!EStmJ zdIyohIEipJY&a+1m=S-x(5eLHbYG zFA)8pDq~h|Y}wDLdvFjh!;R(v{Ji-`^Rpdbw#M-@=8sa3;j4ShQ?T^CYSxV)267a! zYRS|vB*~m%E;5&yn+%i9v@qM50l2|HNEApiDvZ%|)liWBO4X+76ie5LIsZi!thEgx z_AsELju(!g2>iPV)&drieXJ(OsW=}G#Pcf2Bm5(Q$~-xTDvs0%EsllGSkmrHY@EQ>aVL@w8651La{RnN%G z4C^Aao=XY4Rim-AMa54+BMp-(!xhR1XJx{@r!sL%CeDO=uNQ>Fx}~^=5YlZCA|$M{ zF(3A=!%uZ%F&yP^XSOH2MhmRK5Zn@kQhy4 zW%)SpJy6nkSCe&`9$m#A-^3Vzqm7M_&y7)wmT=UQ>$5z9-*yUq%^qd_?kL}z>TQ_n zx!8JeZqpR+c1? zssx8MWJ4RmlkkxL2W_GhmYr699S->}!pZm+u-tF_W%qBBVtzS^nJ!EFn;r`bv+Pa^$aBUUn*FK2U0dD7zvGh6~ z(?k&H~R;4{^t-GDn#wo>56Hb1d^zX57gT z>e>3czGa-dlflFMglvPtSw6+kBuQ~O{keRo6Fi9;aXMXLMX`;F)QOU?QZOr#j=#drU}8>;tm$0| zCD!(}u6u6hw>RvD($;*({LoC94G9 z;yR|4*~C!A?lsOfXQ!JM1(%#HlU{jJCJA|^Oyps**@$o)^fyIVu@DK0FjwdlXd$%S zecVl&-P_%#-Iv|8TR~w=+3^#S!~>Y%pqd!LnQ0N)bzeJ=HwBlcWhi6`b=r<|M;%f*eI?me9z3CnVr`@XLfei4&I%$ch_EnO}uMkKO>}K04}kN-gr1v+uMg@+^mFQk;AMMOlQt)v+HI*P?8B+C;F$4({mojrEwx?jR(th5 zzV5^pTe54@sWvU2$lLj3zE%J1N!LPUF+ssPQ%PtMw-u&Y0h7c-=hL zFl|pK_0#aO_3g-O4L@#}XcVnP*hwUFVW+w#R}+RmBjs=LBnIkUuH)*Q$RoMBSR+FR z3sHBV5tTM`u{bA0XNyLmj!diXhn$W+4vW zBb8R_40tg5 z`tU4{RLv5*`~hR!iJ8i5&y?q;*3>e4ZmOoXVn<`H?Ns67s1B`mw>_@EYTvLww8ez2 z>6FIEDyJtcjNMOJYr9}o0J^qamt(W@2=+b#&EUWQ&|x?Y3&0cbqcsfFeKHirCjp#( zLScw5P>#6}cJS5V7R$l+S`NO{a`J6C%gL_8p{^bWe6P={v4*UtENTtL97Jzl31Fd-W-ew|yBpJ_EEtuWg^HpY!C$fH%G%oU`;M#zyL=fOFb;ovOK;Z< zt(`3=wRViq-K%Q5D_sHqk9ZiW3%jI0kF73^Nr&2ubw8mZS4{&|5Vk@C^+2i_V!^L` z=~!ExVeTybuD7M#PC( zVwA6MC{z^gVzJY|=qg-4J~`OuRjOBo%`dDN@p=X-$9i598DoV_<>^` z2s{xuFYvM$6+5}kKp)o^_$w#5$|pe8Fi}jyP-HP=q)d}Afb@o4mJo(A*8Klr39{!i zdfrXcB$SFjnRG_k|P_2r@Xjm}hsA6hbl4NLFSSx3gw6>nK z37h0@vV+?p^hi79lVp^h6h`Gy<)k)7&d@R8jC@8J({7Pl^rmoAzNOsM?vlH7UYM8f zD)ZWXa-S{<%hHm3Us=-DRv>QL14z#p9H3%w#gK^$)nS$@B4S7sM42cR0?Nvl6(6Qd zd)4&2Diz{0<^CyAk#XMTJjxR-j{o8{!U5HIK~W{yBYGrB5Gdt15H&@S@oi1sE-&Y` zte9uB3|hN5CCP!2L>B{fuM@!R=^ zQ>^nQAQ1|&0}?zBh0+8B-n$0As~><_dZYB|wP~7K>EUMB`S07@8!LmD8ya%tVayE` z#+{ck(yu8uF3rLnxG62@f=7zch?o)E$Ocaj6yRAnAt@=yO0Cc#bwjT-t}ctql3Yhq zQiGDC9m-a^TlppR>{9mAf^wK1Q%2!A)pKNz zeo>#(d7WpMxfYdO4lZE0kafjLGoj>&b^~!N>H=8=Tk^eVzrVQTu1Hg*esLHR)@8FJ z*|FztjIE2Tu7D*dVM8Umf2zbWk(q;&I1@J~*uEA=Mvem;TEN{`V7scpsnRQO;GJJV zZ)qIPmM(vEn@e(h=?>JE6p>vUH&(krwtppxBOZ|z zw}3EO$NT+@^QbF|O_eGFYyz&LbgM}6`a4;qz%77c--I8VNe4EQN$MwWmvOhs3s-qR zY`|Z^ZQVlo6UVCuxOJHe+2Ae0*uDq*IDI&?sC+&2a0dAWYvZZB6mdk(Homf-#!WAMSB)#tVMFAwi5{3jG z;@$uY_nhO!MVq)ovH8=eoM6`#F#NL z8s{QQF$rfQ&~Jl3(XX!8*DG1dN>eE|6*DcivMO|)l>5>=v)sX8swWuEIbnfZ6vU-^ zwLIAEmX`|BV|lfrj8o!WDy|Zd)0?1m2dAj7u*CE0Xa7x6;3o%V zVpp^DGq^21ltGvM3(mPZEj3nnMP626R)tmJsrF_ENz2Gi&GQy|XM2}=g?GGbtTnZ#`Y+mQU$9#Kgt=0Ue|(2rDX;cvx-_3J{OG{*55MQe z;_cS|GbSl%EFL05{+#@CVR@HiQ`V6?t8ycOH$JCLkDhBym7<4+h2DV z%$fP8-j}uel}8lO*Zb)VkdW~&Q`=@qVN~}m1dFh4e{dP^ipubBE@M_#3p)2v?~EVVdZu_FGyh zYUoxl%^X4t_2aZid7mCYTNRk14WV>#h)U6a6~1dAcd7+;5dF)*K`<7~0@+|Om>*^y zn2a$eK@;X!!t+RZo+`~YnuxUs>;hi}PwQn=kG9=L0WITtthE($3`2Pj>h~K>v>oLJ zv@hhoQu6pRnt}FQly~Z7wr$pti8?|#i27u#zk_v#%*OgPqQ>qbHZrU<+6b`|$XDjLXD#9m=uL%LRE07%YfxLm!_ykzRlt zh4rU|_f2x&*hl}Kpuf~Pa09 zuF`Pz1M(QdX#(uG0Q1iW4`I&Nq(4-!4)zC-nc@Oo+%>cmRATLuj-A*x_@0h)U4Xv5 z91pPT2JkR!&;TA~{jh!>+Z^Zqky6(8Jo>(ib!IYHGgE@Sht8E&VSF{_Qsg?Ja|lU* z_Db0FC*W7$Ro1~l`dJt`R}*P!ll>uN0`Pz~u$}!4ECmJJ2kXb6e~k23_ze3d`v?1m zeq8$MJk~w52N?@n!ZGs*#xDkGV1#jq9tbl6ec3+C*k?IjoVnSz*k>FmeY#5e{R!SD z`&5K{S`W}1)mj zGo-J>7ai%?qF?@w_F~R5V>|q`i;BcqD$?GdB7H674(#t2sKb6lJ95~aG}{VL4$g8m z#_oxd4UE~YRAQ~~ie}iNo%Tz+wyU>^c172l?M|JPlX|mSE6dl(Xp}&xjU^M=cC+}LnZgxRI!gDgj){w44P7-`+9G+0&2QL~iX2GM1(Lip)!-A@xl zfC@zt`C+Hws4q3{lX-U==0C1X2!OyB5$2&W8C5=zu>?2lw&a!1-C;56ID=F66IvcfWt0q(;c^IQ|*s zrz4~M(~S1ZXvudA=XZIxAWor2owI+=kDTK;M{=IyyU*z#EhEO)BX|5k=HWJ46prg0 zkPq@O$FXo8X~j>!%ZSm7#u>ZSEVNs-Q+BJd$NrI7WuGvP*p1kCPXC=62<0-4C+99@ zJMq2f+@pFnEf43jy|ORXm-lFy%mZYsMf_FLGR*r1->V#lS|j2P_QZVa#dGux(Lvjw zdz|*uP`#K(MVu4GYLroroX+jB+BVrfSA0mTMGnf(LGGh?!=%;5uX&8!ChN|J+PF?% zM7!a4dEzPhq5dK*;Ira=sN?KYeD;WWkM#uYHwix6L3>3H_8h<-k4w2v`V)^mZ1?c~ z%zG$B*RVhC19*(SpR&UC*d=WdkT$B9J`7v%oW}3vdxP}1(f@n2&cZJq>kj0nE95be zOXONF(tOJ=?Jnef{ZGV47ksRgHtUJ@C({29*|ye$80tcNF$&s}C{6F8eTb#a(mo-% zh2ux-q9pba?5{+=C%WL{&(fntGi@~j@Vj>01?@PuF6^a>zKrsA(QJQ;zV~7d;`TaPk z1zSVNI(JAaLovrXu2&zT6VO5>vK5X6@jPO0A5GSNOfh0P-Vc{(y_!dxv?BOjH|`9L z*73K;&D1`Y_s=Fhh9<~<$+*WaQn6Tw@d2t3FHwbNqnrxr;g1-nAEib5*YM7I z5c7ml$776(ij6HO=h=t2pIqZ(JDCw{X^b2ffz;K3bv_uOb3JzTZTJK0i*lsCtZToX zVI2q3PwtcF#W>mLk2D!}ItPY_WZxXMj+((U>RG(Q15~T*vRh!+X;Dm%{1&y!W>5@- zsHFptqaZJVcF+ipfxn4y^d#nf74k6uE@0GOB6mTe{aNq|c*kjrgx49UJ`(Ys-4gk& zkD&ra%|%Yny|zvEKR|bhHORyHb_=7erWnQ;OgW}SIcf*$%P=nLTOUEY#R~MDOWKWe z`cL35Kf;dw$UQpe0h#-Z>}KZA4GrSKJYUJ`&jPv-~H=;7A15S>@-c3K$ni|zYRC#G3rWuH=zAJx`XNeE}{({M zb-J=A^|8^j&FkHG=SI)#b0<+djl-ko8yCPD%KLy_*7zcJIraqoYk95`iw0<#haE=! zJHUQudWHHZAn!MgfcF7En~*V0LwSBJ%vL>eihJniYjfN`KB>jWS@1opIq^4nhxo)c z{+^xKPKg- z-acscWS-TO&a$5BM;F!3s$a1W*?Zp0_;b5lgNrP9=Hk<(v)uiub9s&&ot>vYYdy~MG5MpUR0%J|?@Qb3(xeXP ztlpW7azcVyMKDINT8>q%V_*ORpSzy02e^h__#TTJ5Ioi3cyG5)RQ_4vHTJ|xd^ z>v?na;4Zlg#>O^pgPcbk83fht-qoKnIndmp`7P5VrI{^KO8rUL9>p9}8Rb4xo%b8G z^nW$vwA@WS^!M7n*ElLW+t0~;tNPsPL)Ogtem~#hxD17n&=t19Ev?_0J0x@O^vJw= z&-MOhPB7MqTv{-f<(^li_dV)`)C-Bl#lbcyNk1oRC@;VkU<-)vGvRt-c6oY-X%3#S zeXirb$^IKMo;W`v?a8fvo!LxGpPnw_s!=5mXzqlNXIJs;BFe?s!tki9V4N*Hzf^NT zSVSIdkn&)(l+bps=3)2&eZSAzemC`wlo03p@L!R$LxNe%L%s?I*&K5wZD;$!d)3JZ zsPu=+`EW7+eGRVlPBQj7`|Q1`OQhColv;m_R50FC1si2~{tj85;eGNeq$d2b)c95M zV8IAk$^C65^<|o`;=Ib*x5Q<%+s3fBT%+&J*aMuM9KUl?6IlO-6IU-b>$2yKpUaf7 zHj{Y&9kP=8vd**(<6Hzo;5Zyk&ZoKA>uvT%R(|Gk{Ee+Sze28HoUc+IY}awN19VV6<~cFP2HEjpn7+K4>Q0NB%y$XBVrVitaDC*&8L7r8aOzUzcvW2mJ%`Am8Y2$4}X( z>ve7YBT{XB+ypPMkBv-Xtq!-r*=ofc_BSz?!g{Gcjy3*7yFYuny;>Ik89b-jnOR zJ#riCwGw^=%Xyy$Mf=&ln`N5gd?mFpuOI(E4RQHPQQ5Zbb~HHFXF)&n4m76z$=v-I zKZRfaihT0E$X-prGt(U&^v3;}{uI{g{NkaRWQ}~gq zUoJm#wGT`}`@qk^k6h#SPeObD4*a_^3GG*&h99}sc|a1{2Xx@a_$0KCPx?W8dK{kR zj{2nLPjdBK>^AHr*jr&MW$wLZhO6&%{cdVQf2NP)GMGjm^0D~<9)gK&=v=0I^h`XD zxtVf3_FK_h`fSV7(cBg{XUlr$>u<4t$f~RF%-!;CG@qRtKU#ht=@_$`KEI<`_161}5+?y)uu$IlSQoAuqUZbN-iS&X@Ca4*wW>g|Rj7s^;(x$VA0zjpuBx9BacP;XbJjrV>x1yX+a^P1J8hcl=l?f>35>)=G8w8vlDTj(k-Xx5sze z;BI5mgXN6aX8t3U;U3!OOaF8)>96yJ7fLy6c2PWcthI=-h3>oS-dPgS^cA?u`i#HW zv#`ZB7pr#CHQ6N#@n^8+PuA@$KTp08^x#}I$$4Qu`eM5*%umUxa2ow~$VmT}GOTq@ zw3T;6x(EAZaQf%c-LCbcQWdCL=XjjZ-}GFFZBO?Q``Ry!QD zV@Ea~VT*pTdJu6CAXAV5-$$qhxA$2f1~Nj0;|pvUC|b{R%0|^pd{eqta9LSvZ5esd|kZ z9rTqU={3R`H)VXMUD!EL>&|zDJ9DqXW*0jqMeX)%($>7%wanFS>zvR15vt|PzF0>mEq!aOwzJk8arTh2dvvd<)=SzfU42TMOTV`1Sa;51 z8|mr=Ic#ODuRF7?`a6eh)$5(v3S%@*#Wq|bp=!|Bx;WOQ%{pD)c7ICR2heG6IUTF| z{c_fQ31@D6N9ev&f(BC`G-O+1BzS)!N1uYAgnlI=;Z{>0Zf&!ASL}%3KAyXe{L;tN zXZmDY>89ZG{Sjt6yaaE-2k-K(mL+#Av-gupry{6f-Wuj9XFj5M zxC?)Y0_3~d9f4+-kTjf`Zr`y%b76<-T-4VIJi)m0kulMfA_w)|)3LMfhXX#CMFTt7yCE@c@>-S;a5yB}E zdYC`ZGOeE*GCC+*A?FFdcJp|)i0~?ZIu+Gd8$<}*c?$P zm;1A2DVp+3)gP)C>{+;7hM@~5Ir_0Kll=$KjdgOh<$d~XGL4FABKw`{WMVKtCi-s! z@zusf;-vRisOQ-a(46J6kpH@>_R%p^52`Nm>R3l&inoqCF3Q<^1X~{Ad)ParG_MMc z`WEF{D53ov>>QX&c_8);x*KDqDJ%Wxw>`3!R7C3K2(K@5(4N{&zxgsO zRZrWup#Uy-XrE`$c>3QM+pjeBK6Ct!{jveB>Zs!Qxx4QpNlD&=gpej7?@~w_pdrZ( zOlXVn9w1}+5Qs?!hbm1?fJmB`Ngnir7NWHy2})C}9okaDx71Le_o*cxw4ucgRa=-U zN*S$8Kc=-aDs~+0SjqE$_TI!$q^VAIM&0-3chA|~vwQdM$Jw(BDMjYE`W%#<14)QL zxIGVe&n+9Unf-Sg?{8^d$~MGQ>7X^y?TsY5jo(n7r;>u0(^P<&?C1N?({3Dv-I`bo zb|8I0JVSMiT!%g|eTiha!XV8!HilMoTz-5|I5*Lh^q29DD=s z-#T{>*LhlLFRv{(7G(Q_GL!CwEEn4_4xgetx9(@aO<;pNhV#+x4zGnV0^&NHfdKjp z26{I$r2G>}dv;)d-3i}P0=?w&H0E=$%O!K`w(j{x=fG zIfiCG>L1H`;tcqqgw9|sCs1|{YiS(p?h_ZVXMc(F;R6aeJ{RCGeujOJae-0*v7ZrtKstu>IL9xsF4kc;Y=OQ62cJ#KcM7Ln@jJW+ zI^SK?zP*|9cn`uZGF-gm#+L&z=7|rdhl>kg^WsoGTrS_l98^*^&YKd%G#AmYOpfIT z?_JF_p3iJwnYynizk|8V8I1G!%;R&C=ZWX5l}5s+CwOJ#P8neW;6YBKJS$%R&CD zT62 zdzffi#{W3){`XKmk7#AFRLf(e!2}QgPh+q z`iZMcN;eEw_dw5ZbszL=UENQm#tpDEJjvXqvBuR6DlpEtx}Y@U16P++Ad+3(1HIVQ zebB319sLpO=?OB)q7o{_-=s=fO|_7VC`t_=Mt4!8%9(>y6Lfx7Bfm~rOhHM6>hU+J z0(q-YKSs?eRSQ`Q>vee6z%l~84t3eKPT5q0m};*EHn&4I(Hi7MY30AtmnTfCq_otm zTwQA}iZ(=JcQw|UbD~X+(WdHHU9@3}8L6)~E9zFQjy0PVwav9n>uPJJ%w1ZwaDK() zNK;*PebMY_ea)iEkC&x%v#!~!He*fIHMO@_H?1+FE3f?e|KL#1rKMPs3u!*eCJ!0- zBASi1>S418@8^1}Xf4t_@E@Ul31KwnS3pK{^buPw_OtP9P~P561neR`@97 zs0=0T%*j?)q7TXqWh%euA*-cVcG3zeLw2WK#o3+l@LWsDvKt*)T&kp<1yX|=)w6G5i1tJ-8A9i;b&r=`)BznIO-?EQ> z@8)>Wt3C1L5&Zf+s#cENgIWPRgP;W*2B(0RqIh)YZ%H8zjL1L;;c5|rPjB|y*-xrq9JK(h~`+JhuuzQ8UjRYSNSo|0w- zVZRxj-i(fH#w&N?X{dAIzEdL}o2pB)&f>aDj+raDSIm}M=&DBMYgtd$KkoEe zj3=jB?U50(5}#R#VF{s+21dC-HPm3Ep~y)2X_-rzC|e`P(rCzeGEd3x$XzrK^6_{< zZm6$EeoNKb%8lanGo7V1GoG4e^+l59Oq3pxTQC7z)XUrB1=B5x6v#p<0Rm&Z5!yzz z=-Z&RVbhP$jy!?r*Y4+>{02;EGs@D&6;&gHe;PPqs_34#m8h>(H=QTeadz5tQ@Y;Xk)n^ zlVhBzLB&j-l4CL#1Hl6`R_58GLq{SZqNW+SwH16_)2Cx#BG}wnF@hI-m*BBc6vF4vBN(DEC6VD!OPEWSch+P zocb8-pp9!)I{_KQq7CQtLqx$D%lN>D+6Y3J4u*F#jbbU?VmSy9ddzedEZU3ga=sch zMKh&KP@V+~DAjo-wqb;Ag^8AR>oiX>l%_|7^Gerht|4N8#2!KS0jQ|G$?l0gE(hj`#$u`)QmlYqIP#^zi671ytnSz6T z00~jgmzM7{z9gX}!UqUse=&c^c2GSeM4+DupAhJ0;uZXKo$o6v2>mmK1*82+h*SuG zbfjPM?aL#kC^8_$MSu8}2&C|(@P~#~XeRVcS(z__C4vVax=MYu-ZnxxC(J6bYoq$> z6GK4q`$h|jA|UyL5`;wKzlRVLME#i(g2{g+L?!lmRDZ(fhpfjDjU27DQXi8N=PxqR z+WPQfJ9F%NLB+!Nz#8~o8Ct|%QC(s*l?Y_rL{toVwlbX$u>$pPu?3n!SflDAR0S6W zb`=|=Zec63hFCXRxSu|IYv@d#>@A>OC6->@Mcvsvpg-L_E}%V8wHkjAsn%|YTAyy` z&N@fx7lGgul>JbUIGPvZf^{>8`6y{IA^n24odeN|w{}D5N!QL3a%x!T9RIK@ZBkhu z7~(K9hsgeZ8u3i_7U5WuB?*_CsA+T{yG>=DerTp0*bWs@M3NvI0-B(J>P_oG zxJ#fWpFg4jgu+){0Rh(-tX-B=qmm?=$&bfIOXM=HEcJNJwlL$T?LGJ_9%~MSb3;k0 zs!uANtsTQl0o3m6zzwZd11#yci1t0m6VVLXuJD`j=+8p$J?<}~h@bnLC>AtFl-EXWWG?a4uWJF?19p!3WeF?HByQW3o1SXZS~RFY0i=%aL2D&QcvW9Oh z&cIGw2=6oQsh;A~$KiMRyfi=Z;Z1=@02ApRGCE^$1?t_xW@KRwVpv*MW2dam!rg<2 zKXNPG7vPR6hP)x3sLxv45<1@RH=mnB8R?&@Q@u_ldr5|6b{#om*{szK9q^$XNSEyM za<0v?NsYGSptxEjtLwfS;#B{7E$3GiXYFTGkY_<;ze>wKSM!c&ApF9lY^ir=?sPPu z(^h{~_T`yqk1CWuzdA#+LqDQI0elj>3=tdlMI5sTVchf?#{w9sgryVt{`W`sy-v zq$i=Q*4lWSY2tlU*DSl+G}U!HI0=|#0~%Beg{i&D_xg8?X8OpC(Fo;&Z`D|z%W`}` z^9}7!ki(`b203d7WlO1_JBjAg+m=!Q`E>T>B3WXtiCgW9&cNVXh5%h-IJsy%9aj%k zZElm~n!C__S|gPL+vAeDg!HtygjG%TVekoKD|@T3W2PxCOv#y9_3c~@4TtUVsd4{)e7xl~i%xP7&#NXHLN*5jb_a`WRk0n=W7n3a=A0F}e$SB#=|6xS zudKMxegXy$*0ltJparrV0Q33VWBdsP^S@`ovAq&h{b3L!A20C-Emq z|9`KfPyg2oq#4}?fL_4_o_IsyEC^Ig3{Vr4JHgnSvLqe>V{7!mgju5OMAv1k2f%$O z=X-vUc}#4n9-#_=xsS*>pzT2DWf->83mVK5xbgbDkCIQtdS2z%YcjJP* z*tu0jZvTEcWrKmvHQdK;C_z*-FUlm_D#`@a_cGy9gtwTqHS{DKvhbNiVe#RiyYFTd zx1VY-HvcdabdC_T{UKRi5`WTpG71O;D9_j??{5w5ckBQ_b^a&NKg)e(?*CbN9qZHPX6WJtx zbc4NjP~>N3MhJ%X&mky*7O?9?Or{^@hxUI%HkydqS;%SCMnKRfnPn6kxCa{h!5=9w z&|fSLz+}8GvBVz4OFNz@T|U8C;b^%zqJ-cj#3G$xa8=;Ss3BmAtWHg7><(A}c;z ztN}b5C%vnv;A@0)d$o5SuCje>oPKDYnbNW>IV9fUNw%P6>v)X8aO1FdU*;^+8D9Fd zLFiD3=)j>rYySwdyg_yAKU!vJ%eb`~A znQx~kv$Mw#Ly6U8R(TNlLzl#(rME)cq#=MA zOH4>nGR_Q)ONJ*~;L;|BggT_LvQaYTZkz_hKCOxHgmtoZuR^N=+W7nTKo7CS3(#dT z_!+f;@1{SXio4mliKJ$`tJ4}?!uwXe(~aF>Pc{tlEb1d=+}0IK>3rF5 zw-B!+o{-7rk@6YEoL5&0(8aqXX!IwEO9m7%z{>mWKi7g(RL){E^ia~Hf7Tc}lAQV8 z6J^iDhVkPn{-PA{TR4(@pS?y&i|;P)zGtV+4m4La+(2b}K5MuIj;zCK{_xOTd8qeY zsP7o6*gue>CeO@TTaeK*f(b%nM$M5pLU*qZem}yNRm^j)RG196(D(;NbxTIs2_N% z{ygtI(q0WG8?8|9gMgLtOM!OPRk_hz-~zdoT;ov1^jQc|V4N#5A|sFId0|K@N}J6t za$&Eqo%F3>cD?99LhC5dvQGu5)4Rkq=;2dDca8AuIeNjV#n!9p=TiM``gI`_zJJ1WIedAyy?Zl}u;iNN4KtjH1ogD3AD8Nj(c z0%n_gy0ZCR?H$EE&O*UJ#8o15qRr)z%dXHsLPGq((P7rAi101J%C{siMj{ejQnveC zvA1Z`ev}a0_z)OaVd9PR80z@ec}_KsRa@;rluJj6$I=q^<_2`N_&OK+$#yM*Guet- zYX;sHA;&Y}DR$2xtYw>>eDokmVO)$h?p`6rvb+~qU%%~lEb~H^p^HhL?xxTC`+5o@ zA$^fD92T8;M;NaxX(ycP22J!P(r~!HcT%EBI8a;vt8TBQO?fwI*{PdEr6%=9z81dp z=$0R!xZ6bg!cu-9!yC+U26EvFYZxZ@4XM9xWojbc@AT!>mXFXzPCZ~S9JT2Z9oncT z7M{N;&HD)Ac7}_)k_TR+Mt>-!ldDFHy_}2rK;a2*t~EVzvcoj1VweQh{uSFD+NGjc ze#2BhXT@Yx7_Lw)K~u%wOd`DWbK6v_?v<6mmmb&^%%(OIO z3L-Ch8UL&R#^KI<2dSJAkt0)ofttwxB|=X{9`q# zNI0pzv36AOTZ_^L(6_NL#3>(ZZ)Il$kKoe#>;0?cJ1{>_K3|g5YrfH6mJGs7VX=zW`#w<-}(njOQ9mNFexcNsHZ-9%`0wk5Qw_I zL4J&RF21NS{lr0ynkElzhQ^P1_9Go3vYz}~7c66UjkqR4PZlWwwZmc(BEQ@iwL`a& zC+caw0Z!)RQ_@3Gm>I?Qc9UZso_FCJ7$Ev5#M}9{=n&Ch5X$9kyuNKizH#ePIEvz`>n$gK#) zM6qb9#$&MDV1VVa6Wy8f9F{HpwqW3NkAW@4o`n%QpU z!w2#9Tu-nqKFA@H`D(3(&qfbVZ-v}(6B6U&QTP3ywem~j-NoCcDcq0ebxY?P!21am3WK5v8AP?*p4sB*xhw7_|?^A z#?$GfWg4xnp{~18V{Xg7uJ#c5149zE34IccQKTlD-Q)h$21%)?RTBLdi631@�B! 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 literal 0 HcmV?d00001 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/ad670.pdf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/doc/ad670.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9f701ecaaf793240072abaa82f61b76915158a79 GIT binary patch literal 372763 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


      B*#5-Bt^A7LL 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
      + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/06-07-08-09-SystemOnChip/Documentation/AMBA_AHB-Lite_SPEC.pdf b/06-07-08-09-SystemOnChip/Documentation/AMBA_AHB-Lite_SPEC.pdf new file mode 100644 index 0000000000000000000000000000000000000000..99e720c536af981b0e8d8ecca5a9922d5890ebd3 GIT binary patch literal 551055 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

      =fu{=Qek=%U7d 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

      vk&)!@k9H%UPfu^zcJJ>)Xl($JB*@=` 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�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
    1. P#`_f44B8#ea{DQi#1F@_g z>&(Ow@hCe0K060h+Q&P^Vp*+tzm^M`2I-&>T`iG783$V*mA9sIh!O| z%LF!BO8~w~vQ`3K(33exsV*i(jYoKgC={>PnBYs2*4}*K>Ae8?TO`0FQ417IaMWuC zfw-(4+=>WlW$y}far0U$e^07)d zOn}M3b66&0k|Zt@*r;QG2izrr3)ywHznJ(o?8`QS?;$0>nY%^9V)jUU0E$36l9UD$ zGshq>wS!U~Od-JM9x0!sM3_RrPE(1nxm#&SLQL&)NtmowDHWy=n55dkC2@JH1bC2( z4oQ-=qD^MDT*`)t+0j5do>ac262O3wA@R4!d|VRpwTw&jVj_ECSx^n95Ph%}VLAtK zVXGNitaCafaa{{3F4lo5zPze^1~4GLxTb}YiGcW`nAO4q(*cQMR!;g&7lTyIr4rD} zR$z!LS|Pv#d6cJ^n?L+e2&~wii4b5J1OjY{h9AML42_7;rYL7p9bnprBxoW1!*q{E z*62c%G&$|Zj!vf`%3A;M9(QiQ5K~*p^}$#VA_0$CXvzqKlBCTIp|+_6TBC4!1lB49 zX400jWXcJ?skEg^FX?t$0Oy@=x4u~mN9>q`nd>g)$;7K)(I6Q#$b-=YzV-kME zH!!H+_;wzM0PBTFTDs0C-t}V2M2mp&{V{1-3+@95>}DYmeo#jn;|;!a#Fx9#6>L<1nh!)ZoV$KH~VNaASKPj z+d}~vB~^rpS8oE%LQ0#71c7HEiJKqJ>K-zx#qjw|s^n7U%qk>Q0%?>~6vl#TV`mAZ zQM^qbXJrB#ExN^*?8KF=^Z*COWDb(Fh3hn!gIN#Az=*3tCZO3x{abjxDF}`q=FDEG zQB4Pn-TcdrWS!}S9dsdX*kXoxZSg(601st=LKL=?l{9~U1QepQMG97O0E%Ss}u#5s+W5Xl@iJSXE^t1{TlDviErvUex zKoLmboVRF!N+XcK83ntAL@7jpON!3oU-+$rLdv0uM>5=Sn$29g#G@5J` zOs{!jP?E%jeIvlVO;AV@7ti_-rs3-2Twx##38Kmz!Z|mg#*6;52j&M z(kd4z;0~CSzk@;)xkE^l2egQCCQUd`2qbbjkp_3!=eod|GkM1aHdkEa(g_5dIkP;d z7Ty`mWiGkVM?mIEskEFu7K(w1Qg;YBe5SQrb*cVJ88wHXjgO)cB`>Cn9z`R{Ud$Lh zibj;akTiM(iIiLut_wbjL|pSi>gZ7hR&L^bi$FLy;jxiPtZn7~Odtw7mLVIS@LDHa70KZ942Ul! zVU`-QN=Y~Iq=kiF*l=hMqUaR@v*SnRT==&Xe6YZ`_L*k`FOv2k3SC^q0fH~9RFEdt z{s)qToN~+2OT=KUByWMWnhm4r9;=jg6E!5z*_u^KyNS%@eVCkLSz*;h?lNBMu`S{q zQ(G)0-o#M_I#slCSKqIOtVg|%04GdVDfK4y5oi;Va&MxN1UmMzO361-=;*?vRs}w} zw8n)qDG-?4SOI|~aPdqEtTnk_0SeK^i+f4H-C9b&iKkcruAv|WEeTv0Re)J&E*@hA+}@=OoJwJGivxX#W?iHRaE${LqQI4To8037 zfhcg1Ai%{8P>2E-9f5!Xmo8+AXIX((hLnO+2u$u0Sn+`$!6GOGPI|ck1foS3Jribc zO>)L8@8Y*P;)w-&H^SsXBf1bxI@sp7AkaT2t)T^lC~lR)uL~$zz3Z_~srQo!z zj%L>QwqX*nNhvsS-aJUBmAx2~(F2)2}%B~@3eO{!oM{i;AZ z$aWt=e!`9n9W;5-4ug^eE~M}SJirDDN#Jr9CXd>IK$5q>DK>ADclW5QWj37Fe~cP*lFl`4j#S7s6>&AMcXV4F^e`>d7|Gch6NZI{UAjT;wD9+-q*ivrodf}3Ry8<-X9 zwnfH`9F!ax8=smyG_q}a($HSO;?6&7n~A0~`++So{sXg>{0GJ#{sZ5G84jBbgYd+W zG9tg-kBuLajE;e?ZDQIutQM1T@Y`8vk+-W2MemhI4yY>B{-TXQd)YQr%R7W>nL3#* zenrdqAo!+;G4M?S|7tD=ymqZ`y#|6;c=Oq7xj4L9uJcgafI@YPERV-;xpF=pZ7)Do zvd(tR3Ww@TGgLP<_*avLZb*3gjg8NclKyQTc|87oFvsK3(;}gIh8F>o#uxn+Jp_)L z-1O8p$~v`i>!)21p&?3+Cy&R!1amwd-Qw_LLpEQ1<>G@1dcWG;0{%4v{&((115f9p zzHU(y!SUtsFp##aay%aWLsR_r66;S-3BkG5wOUJI^0E;AcP-b*9W?&CmL5Q97hibt zc>Lxg=i|}!M-RqO%B$&#Q`c`j9zw=OlZzgT;O#n1pLMUEzh#HY*3t%Z&l(0}02s1c2-$HQ(WN8x7%j;tQaQL_3qs&0?4Ho$kN zsy7Y}4GnELBq=4TbMuxu9e!(6JuNG1P*h~(3opD7@q#@fb4Y3=e0Xo9#TIF^H2_9~ zp(6)o#gAw(aA*y!5u=^v$wL!|qz}qU&m0)a+Ko@h9G2CndUe*3?>~Kj@q>IF4ICQ5 z2OE)?IUsUG{Gdo{geB6~G6)+27}X36%1UmI|7(l@!PS8O|2V5V%4v&oxO+Balp>P9 zQ$Km;khsju{*7A>i64;MKE7Y_kWhDoO`z2Ou8_9ROiE7~NqY7~+3ZnPS3Qe0%3{$P z5ir#@bV=u^6%ki&r(q;xsK8(@J;oaa{y4@DN=kup=pvRl&;A0|+hx`>XjHSzK_iEx zr>12!_WcyP>up$Wi?u%cUsq^!=k}rP(g&nxB_~CMM&qD?qYn)ok~}nd$Z!A~Mk+1+ zuP2t2=$qD{VMF?Jy-iAtOzxjN0Gswu%*-m!EGaQ6C3DDt_^ih9g9i0aPmE`J%SPES z(*Gwxi~uGw9n2hJ@LtntE`ct|gJq~8n*QmH1>R_41kB$qL*&Aho8W_>{WZiWveL8q zCo3&5Er{-)B}4sVV9PtIfBeAIM%70&NJ>tLAJ#vsdgJK!O`}8Yq0z0IHfRUQg~kra z%*ss6>>t`?P;z2=iq4WpjalxJk69Ys|59yz;#IZQRB59ynWSNf$wL}PCl1L>h|dab zo<1}yy?=kc=q(Y>(6Dal@GV~$8qQVIkN>|`OxUIN?ac>o7`p)jWYy#(QOz?GhcVra zY2J9)u=J#;gm@Q9b6oBQc5kAqfdl?r1CPy>*udsZOtK~>C%bSDnA@TD?L}I@sxd=| zzr_q3niW4VG1+K0DL&Z}?{zpEBqX`eEMB|JRAgjmQ4{f9!fJi$sL~W0%N{$Nv0(?0PJV zM1=oim&lFB{``OJdMt}Xgh#PUh;NbDYgGLOM6X4I@uMF9`m%jOc~vyhdi?fV=RT2L zLzx@jY#>0|^%^7poQ9PG85v`Szz5Pb6^$^2-gsg}R(hq_^4M*njvw zEvqwP|Ah|JVYrXZs^S$GPyNa;JT3vXR$z8^>Y~8d{Q(8$bg=RY84q>N&|(GVW(OuR z%w=KeIR$2CM==V_!D@CCn2Vk9C@?omJ1Q{#B&Q5>TUfb`0^`Rs3XFX>PQ`;Z5}1qf z&yDbm;CWd|jogRF$_`)@n2nXiC@`LqRbWn545Pr@>|{lO@#n{77+xGEv|cOi*UOH$ z<@THwCp)x|+H>NXo6376WhtI^oj|5Vxw*PvQrX;mVW_Ufq96&ATdnz z#fbw_RhCYi?~s0Be@MS598&r0w7FSXk31HzkHAo4pz_{{gJQx{hn;Oea(gHqrZATY zp4$Wufxg-vghXL{5}nz_-!b;J#0a$-Eexa{i*GFJnZO2rp2@26voS16+C`iq`({|?YT_abDQAt*RrMd zTowz#b6I%BhJweBkQ5kJt1>t2&L-`7Oz`+)l5%_6eJurMqwQhqA^qYz$rR=`!K3nU z!LLwt$c4fRRS#S!mr`w$3q?2thJsUdO}iX0iYl*g>O^6@+Ct_5PMs(od#;C}`S)p; z(?$Dmu?NZ&JQu7Jfw_ncbGhJo5Iis5u29-@V0YIc`)c zk@ny+sJ0zm4hv4C@wuTds*by1vMCI`sI+bi(Py_C8=;Elagcq+?Qzrb;h}!ghnH8u z%VYNPBWVT3-X&1xhSxz=S$ePrRXlh@WGo(=huC6|i`pi@$o}DRxmY!#G(L~Z!$L;YNpL~h!x95BEzlJGL#++_l7@`O z2TfpPufPt<-t1IqovJMXp34Le(o|`2l%viK<&K2UR)jO^+^qQO44H?=tL`(X?&bGH zCBC4TT3!37DkL!{V7!z@qP3xTSM3*7kE+dPRf?Swg4lsE?~q)0OmHK^{T!F?mJr4bqN?RFq7s1??sJ6!98B;BIDsQj4DeU3#xV( z1_I8b!WTsQtZYqg4}O!XLw2|&gcfcNg?Wfh+EJ~f*dg2^K{`q87q1$s^2O&&Rlf9Kf(NgkwC852K82Ql5J`q16jJRA?nAS3JQ)v_XQ~dN_)Fa@aJ>K?451})3RW~P z%ar?Ykv$K1PNG8&mz(GiE-FzxR5Yn}0~sTf`YLln8bsAo2Rl?(@$mH{(jG!~GGDw* zPx?TLhr+xB&xz1Q#dBhlQrDXkYoEf9xlqQ;LK0Q);YpEoj#o3uI)^18dmegVmzpHG zA^I@EbJFoKr&^`O+EV%F#M)BvTv#3|?*Suw6gbabag@e~*iX&B;A$kv1p&stCMDA% z6jyb_1>L1Ey9pi;m9fA@Cv$VN?6-=C4NjFCyf8Iyh6FADM3^*Yw~P8=ZurV-AMmn? zF9jHxhsVO+vXpu1LDpWCk;md@<(|@55F!%&Vftkz}WkH(%b-Zsj|d9A!5goSYj7Z6

      R(HGpc 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 literal 0 HcmV?d00001 diff --git a/06-07-08-09-SystemOnChip/Prefs/hds.hdp b/06-07-08-09-SystemOnChip/Prefs/hds.hdp new file mode 100644 index 0000000..c0dda32 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds.hdp @@ -0,0 +1,82 @@ +[Concat] +Board = $HDS_PROJECT_DIR/../Board/concat +[ModelSim] +AhbLite = $SCRATCH_DIR/AhbLite +AhbLite_test = $SCRATCH_DIR/AhbLite_test +AhbLiteComponents = $SCRATCH_DIR/AhbLiteComponents +AhbLiteComponents_test = $SCRATCH_DIR/AhbLiteComponents_test +Board = $SCRATCH_DIR/Board +Common = $SCRATCH_DIR/Common +Common_test = $SCRATCH_DIR/Common_test +DigitalToAnalogConverter = $SCRATCH_DIR/DigitalToAnalogConverter +DigitalToAnalogConverter_test = $SCRATCH_DIR/DigitalToAnalogConverter_test +Lattice = $SCRATCH_DIR/Lattice +NanoBlaze = $SCRATCH_DIR/NanoBlaze +NanoBlaze_test = $SCRATCH_DIR/NanoBlaze_test +RiscV = $SCRATCH_DIR/RiscV +RiscV_test = $SCRATCH_DIR/RiscV_test +SplineInterpolator = $SCRATCH_DIR/SplineInterpolator +SplineInterpolator_test = $SCRATCH_DIR/SplineInterpolator_test +SystemOnChip = $SCRATCH_DIR/SystemOnChip +SystemOnChip_test = $SCRATCH_DIR/SystemOnChip_test +UVM = $SCRATCH_DIR/UVM +UVM_test = $SCRATCH_DIR/UVM_test +WaveformGenerator = $SCRATCH_DIR/WaveformGenerator +WaveformGenerator_test = $SCRATCH_DIR/WaveformGenerator_test +[hdl] +AhbLite = $HDS_PROJECT_DIR/../../Libs/AhbLite/hdl +AhbLite_test = $HDS_PROJECT_DIR/../../Libs/AhbLite_test/hdl +AhbLiteComponents = $HDS_PROJECT_DIR/../AhbLiteComponents/hdl +AhbLiteComponents_test = $HDS_PROJECT_DIR/../AhbLiteComponents_test/hdl +Board = $HDS_PROJECT_DIR/../Board/hdl +Common = $HDS_PROJECT_DIR/../../Libs/Common/hdl +Common_test = $HDS_PROJECT_DIR/../../Libs/Common_test/hdl +DigitalToAnalogConverter = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter/hdl +DigitalToAnalogConverter_test = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hdl +ieee = $HDS_HOME/hdl_libs/ieee/hdl +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hdl +NanoBlaze = $HDS_PROJECT_DIR/../../Libs/NanoBlaze/hdl +NanoBlaze_test = $HDS_PROJECT_DIR/../../Libs/NanoBlaze_test/hdl +RiscV = $HDS_PROJECT_DIR/../../Libs/RiscV/hdl +RiscV_test = $HDS_PROJECT_DIR/../../Libs/RiscV_test/hdl +SplineInterpolator = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator/hdl +SplineInterpolator_test = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator_test/hdl +std = $HDS_HOME/hdl_libs/std/hdl +SystemOnChip = $HDS_PROJECT_DIR/../SystemOnChip/hdl +SystemOnChip_test = $HDS_PROJECT_DIR/../SystemOnChip_test/hdl +UVM = $HDS_PROJECT_DIR/../../Libs/UVM/hdl +UVM_test = $HDS_PROJECT_DIR/../../Libs/UVM_test/hdl +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hdl +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hdl +[hds] +AhbLite = $HDS_PROJECT_DIR/../../Libs/AhbLite/hds +AhbLite_test = $HDS_PROJECT_DIR/../../Libs/AhbLite_test/hds +AhbLiteComponents = $HDS_PROJECT_DIR/../AhbLiteComponents/hds +AhbLiteComponents_test = $HDS_PROJECT_DIR/../AhbLiteComponents_test/hds +Board = $HDS_PROJECT_DIR/../Board/hds +Common = $HDS_PROJECT_DIR/../../Libs/Common/hds +Common_test = $HDS_PROJECT_DIR/../../Libs/Common_test/hds +DigitalToAnalogConverter = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter/hds +DigitalToAnalogConverter_test = $HDS_PROJECT_DIR/../../03-DigitalToAnalogConverter/DigitalToAnalogConverter_test/hds +ieee = $HDS_HOME/hdl_libs/ieee/hds +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hds +NanoBlaze = $HDS_PROJECT_DIR/../../Libs/NanoBlaze/hds +NanoBlaze_test = $HDS_PROJECT_DIR/../../Libs/NanoBlaze_test/hds +RiscV = $HDS_PROJECT_DIR/../../Libs/RiscV/hds +RiscV_test = $HDS_PROJECT_DIR/../../Libs/RiscV_test/hds +SplineInterpolator = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator/hds +SplineInterpolator_test = $HDS_PROJECT_DIR/../../02-SplineInterpolator/SplineInterpolator_test/hds +std = $HDS_HOME/hdl_libs/std/hds +SystemOnChip = $HDS_PROJECT_DIR/../SystemOnChip/hds +SystemOnChip_test = $HDS_PROJECT_DIR/../SystemOnChip_test/hds +UVM = $HDS_PROJECT_DIR/../../Libs/UVM/hds +UVM_test = $HDS_PROJECT_DIR/../../Libs/UVM_test/hds +WaveformGenerator = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator/hds +WaveformGenerator_test = $HDS_PROJECT_DIR/../../01-WaveformGenerator/WaveformGenerator_test/hds +[hds_settings] +design_root = Board.SoC_ebs3(struct)@so@c_ebs3/struct.bd +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/shared.hdp b/06-07-08-09-SystemOnChip/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/hds_team_prefs b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/title_block.tmpl b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/hds_team_prefs b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/title_block.tmpl b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/hds_team_prefs b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/title_block.tmpl b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..8b550bd --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6103 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/04-Lissajous/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/06-07-08-09-SystemOnChip/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/SEm_labs/06-07-08-09-SystemOnChip/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "899x918--1+57" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SystemOnChip" +showingHierarchy 0 +openLibs [ +"SystemOnChip" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SystemOnChip_test" +showingHierarchy 0 +openLibs [ +"SystemOnChip_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "AhbLiteComponents" +showingHierarchy 0 +openLibs [ +"AhbLiteComponents" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "AhbLiteComponents_test" +showingHierarchy 0 +openLibs [ +"AhbLiteComponents_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 60 +yPos 37 +width 1066 +height 937 +activeSidePanelTab 2 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +) +] diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..5752b73 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/ahbUart.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/logs/HDS_log.txt b/06-07-08-09-SystemOnChip/Prefs/hds_user/logs/HDS_log.txt new file mode 100644 index 0000000..4c4644c --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/logs/HDS_log.txt @@ -0,0 +1,73 @@ +Application HDL Designer version 2019.2 (Build 5) +Created on 02/20/2020 13:36:10 +HDL Designer Series +HDL Designer +Version 2019.2 (Build 5) +Built on Sat Apr 20 2019 at 23:05 +Verilog parser dynamic library version 5.1.42.f ( 2019/04/20 21:28:10 ) +Running on Professional (Build 9200) + +Loading HDS Project file via Environment variable $HDS_LIBS C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds.hdp +Loading prefs env variable USER_HOME C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds_user +Loading teamprefs env variable TEAM_HOME C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds_team +Loading user Task files from 'C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds_user\v2019.2\tasks'. +Loading team Task files from 'C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds_team\v2019.2\tasks'. +The timezone environment variable is set : TZ=GMT-1:0 + +HDS_HOME is set to : C:\tools\eda\HDS + +Environment variables: +HDS_HOME set to C:\tools\eda\HDS +HDS_USER_HOME set to C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds_user +HDS_TEAM_HOME set to C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds_team +HDS_LIBS set to C:\work\repo\edu\sem\labo\solution\sem_labs\06-07-08-09-SystemOnChip\Prefs\hds.hdp +HDS_PORT set to zell:51992 +10 events recorded: +Undo +Undo +Undo +Undo +Undo +Undo +ExecuteAction +Print +Print +ExecuteAction + +Traceback + +hdldesigner.exe caused an EXCEPTION_ACCESS_VIOLATION in module at 0023:6F6C6C61 +EAX=6F6C6C61 EBX=0291A7F0 ECX=142B6EB0 EDX=02FFEF64 ESI=00000000 +EDI=00000111 EBP=03C3F39C ESP=03C3F34C EIP=6F6C6C61 FLG=00210202 +CS=0023 DS=002B SS=002B ES=002B FS=0053 GS=002B +0x6F6C6C61 +0x01C2358B hdldesigner.exe +0x01C1E5B4 hdldesigner.exe +0x01D06A6D hdldesigner.exe +0x01939CB1 hdldesigner.exe +0x018F899B hdldesigner.exe +0x01CD5F69 hdldesigner.exe +0x01AFB193 hdldesigner.exe +0x00702F46 hdldesigner.exe +0x01CE7705 hdldesigner.exe +0x01A07AA9 hdldesigner.exe +0x01A0763F hdldesigner.exe +0x02797EC1 hdldesigner.exe +0x02818CBB hdldesigner.exe +0x027D60D0 hdldesigner.exe +0x0291A820 hdldesigner.exe +0x0004438B USER32.dll, AddClipboardFormatListener()+0075 byte(s) +0x00024F8C USER32.dll, CallWindowProcW()+2860 byte(s) +0x000240DE USER32.dll, DispatchMessageW()+0558 byte(s) +0x0003E7B0 USER32.dll, DispatchMessageA()+0016 byte(s) +0x027D4515 hdldesigner.exe +0x027D42CB hdldesigner.exe +0x0040469A hdldesigner.exe +0x00401BA6 hdldesigner.exe +0x0291B412 hdldesigner.exe +0x028DAD8F hdldesigner.exe +0x00016359 KERNEL32.DLL, BaseThreadInitThunk()+0025 byte(s) +0x00067B74 ntdll.dll, RtlGetAppContainerNamedObjectPath()+0228 byte(s) +0x00067B44 ntdll.dll, RtlGetAppContainerNamedObjectPath()+0180 byte(s) +End of traceback + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/hds_user_prefs b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/generate.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/hds_user_prefs b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..28c9b8f --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6866 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\06-07-08-09-SystemOnChip\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\06-07-08-09-SystemOnChip\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "636x406+-823+276" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SystemOnChip" +showingHierarchy 0 +openLibs [ +"SystemOnChip" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "SystemOnChip_test" +showingHierarchy 0 +openLibs [ +"SystemOnChip_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "AhbLiteComponents" +showingHierarchy 0 +openLibs [ +"AhbLiteComponents" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "AhbLiteComponents_test" +showingHierarchy 0 +openLibs [ +"AhbLiteComponents_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 0 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"Board" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/generate.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..ba578c2 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/beamerSoc.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bash b/06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bat b/06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/06-07-08-09-SystemOnChip/Scripts/cleanScratch.bat b/06-07-08-09-SystemOnChip/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/06-07-08-09-SystemOnChip/Scripts/generateSSHKey.bash b/06-07-08-09-SystemOnChip/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bash b/06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bat b/06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/06-07-08-09-SystemOnChip/Scripts/searchPaths.bat b/06-07-08-09-SystemOnChip/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/06-07-08-09-SystemOnChip/Scripts/trimLibs.pl b/06-07-08-09-SystemOnChip/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/06-07-08-09-SystemOnChip/Scripts/update_ise.pl b/06-07-08-09-SystemOnChip/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/ commandHeader do + uartData := getSerialPortByte; + checksum := uartData; + { get packet id } + packetId := getSerialPortByte; + checksum := checksum + packetId; + { get command } + commandId := getSerialPortByte; + checksum := checksum + commandId; + { process known commands } + if (commandId = commandWriteMem) or (commandId = commandReadMem) then + begin + { get command length } + commandLength := getSerialPortByte; + checksum := checksum + commandLength; + { check command lengths } + if (commandId = commandWriteMem) and (commandLength <> commandWriteLength) then + getCommand := 1; + else if (commandId = commandReadMem) and (commandLength <> commandReadLength) then + getCommand := 1; + else + begin + { get address } + memoryAddress := getSerialPortByte; + checksum := checksum + memoryAddress; + memoryAddress := (memoryAddress shl 8) + getSerialPortByte; + checksum := checksum + memoryAddress; + { get data } + if commandId = commandReadMem then + begin + memoryData := getSerialPortByte; + checksum := checksum + memoryData; + memoryData := (memoryData shl 8) + getSerialPortByte; + checksum := checksum + memoryData; + end; + { get and verify checksum} + if getSerialPortByte = (checksum and $00FF) then + getCommand := 0; + else + getCommand := 1; + end; + end; + else + getCommand := 1; + end; + + {----------------------------------------------------------------------------} + { Send NACK } + {----------------------------------------------------------------------------} + function sendNegativeAcknowledge(packetId : uint8); + var + uartData: uint8; + checksum: word; + begin + { send packet header } + uartData := $AA; + sendSerialPort(uartData); + checksum := uartData; + { send packet id } + uartData := packetId; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send command id } + uartData := commandNack; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send packet length } + uartData := 0; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send checksum } + uartData := checksum and $00FF; + sendSerialPort(uartData); + end; + + {----------------------------------------------------------------------------} + { Send ACK } + {----------------------------------------------------------------------------} + function sendAcknowledge(packetId, commandId : uint8); + var + uartData: uint8; + checksum: word; + begin + { send packet header } + uartData := $AA; + sendSerialPort(uartData); + checksum := uartData; + { send packet id } + uartData := packetId; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send command id } + uartData := commandId; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send packet length } + uartData := 0; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send checksum } + uartData := checksum and $00FF; + sendSerialPort(uartData); + end; + + {----------------------------------------------------------------------------} + { Send READ_MEM reply } + {----------------------------------------------------------------------------} + function sendReadAnswer(packetId : uint8; memoryData: word); + var + uartData: uint8; + checksum: word; + begin + { send packet header } + uartData := $AA; + sendSerialPort(uartData); + checksum := uartData; + { send packet id } + uartData := packetId; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send command id } + uartData := commandReadMem; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send packet length } + uartData := 2; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send data low } + uartData := memoryData and $00FF; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send data high } + uartData := memoryData shr 8; + sendSerialPort(uartData); + checksum := checksum + uartData; + { send checksum } + uartData := checksum and $00FF; + sendSerialPort(uartData); + end; + +{==============================================================================} +{ Main program } +{==============================================================================} +begin + { initialize SoC registers } + initRegisters; + { main loop } + while true do begin + { get a new command } + errorId := getCommand(packetId, commandId, memoryAddress, memoryData); + { process command } + if errorId = 0 then + begin + { process write command } + if commandId = commandWriteMem then + begin + mem[memoryAddress] := memoryData; + sendAcknowledge(packetId, commandId); + end; + { process read command } + else if commandId = commandReadMem then + begin + memoryData := mem[memoryAddress]; + sendReadAnswer(packetId, memoryData); + end; + { reply to unknown command } + else + sendNegativeAcknowledge(packetId); + end; + { negative acknowledge on reception error } + else + sendNegativeAcknowledge(packetId); + end; +end. + +{ + ;--------------------------------------------------------------- + ; register definitions + ; s0, s1: used for INPUT and OUTPUT operations + ; S2: returns UART data byte + ; S3: uart protocol checksum + ; S4: uart protocol packet id + ; S5: uart protocol command id + ; S6: uart protocol address + ; S7: uart protocol data + ; S8: copy of UART data byte for debug + ;--------------------------------------------------------------- +} diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/beamer.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/beamer.vhd new file mode 100644 index 0000000..24fc8c5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/beamer.vhd @@ -0,0 +1,374 @@ +ARCHITECTURE mapped OF programRom IS + + subtype opCodeType is std_ulogic_vector(5 downto 0); + constant opLoadC : opCodeType := "000000"; + constant opLoadR : opCodeType := "000001"; + constant opInputC : opCodeType := "000100"; + constant opInputR : opCodeType := "000101"; + constant opFetchC : opCodeType := "000110"; + constant opFetchR : opCodeType := "000111"; + constant opAndC : opCodeType := "001010"; + constant opAndR : opCodeType := "001011"; + constant opOrC : opCodeType := "001100"; + constant opOrR : opCodeType := "001101"; + constant opXorC : opCodeType := "001110"; + constant opXorR : opCodeType := "001111"; + constant opTestC : opCodeType := "010010"; + constant opTestR : opCodeType := "010011"; + constant opCompC : opCodeType := "010100"; + constant opCompR : opCodeType := "010101"; + constant opAddC : opCodeType := "011000"; + constant opAddR : opCodeType := "011001"; + constant opAddCyC : opCodeType := "011010"; + constant opAddCyR : opCodeType := "011011"; + constant opSubC : opCodeType := "011100"; + constant opSubR : opCodeType := "011101"; + constant opSubCyC : opCodeType := "011110"; + constant opSubCyR : opCodeType := "011111"; + constant opShRot : opCodeType := "100000"; + constant opOutputC : opCodeType := "101100"; + constant opOutputR : opCodeType := "101101"; + constant opStoreC : opCodeType := "101110"; + constant opStoreR : opCodeType := "101111"; + + subtype shRotCinType is std_ulogic_vector(2 downto 0); + constant shRotLdC : shRotCinType := "00-"; + constant shRotLdM : shRotCinType := "01-"; + constant shRotLdL : shRotCinType := "10-"; + constant shRotLd0 : shRotCinType := "110"; + constant shRotLd1 : shRotCinType := "111"; + + constant registerAddressBitNb : positive := 4; + constant shRotPadLength : positive + := dataOut'length - opCodeType'length - registerAddressBitNb + - 1 - shRotCinType'length; + subtype shRotDirType is std_ulogic_vector(1+shRotPadLength-1 downto 0); + constant shRotL : shRotDirType := (0 => '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + --=============================================================== + -- Beamer control + --=============================================================== + -- + ----------------------------------------------------------------- + -- register definitions + -- s0, s1: used for INPUT and OUTPUT operations + -- S2: returns UART data byte + -- S3: uart protocol checksum + -- S4: uart protocol packet id + -- S5: uart protocol command id + -- S6: uart protocol address + -- S7: uart protocol data + -- S8: copy of UART data byte for debug + ----------------------------------------------------------------- + -- + ----------------------------------------------------------------- + -- GPIO definitions + ----------------------------------------------------------------- + ----------------------------------------------------------------- + -- UART definitions + ----------------------------------------------------------------- + -- CONSTANT uartBaudCount, 023D ; 66E6 / 115 200 = 573 + -- CONSTANT uartpollDelay, 0100 + ----------------------------------------------------------------- + -- beamer peripheral definitions + ----------------------------------------------------------------- + -- CONSTANT beamerCtlInit, 1001 + -- + --=============================================================== + -- initializations + --=============================================================== + -- + ----------------------------------------------------------------- + -- initialize GPIO + ----------------------------------------------------------------- + 16#000# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#001# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#002# => opLoadC & "0001" & "0000000010101010", -- LOAD s1, AA + 16#003# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#004# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#005# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#006# => opLoadC & "0001" & "0000000000001111", -- LOAD s1, 0F + 16#007# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize UART + ----------------------------------------------------------------- + 16#008# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 + 16#009# => opAddC & "0000" & "0000000000000010", -- ADD s0, 0002 + 16#00A# => opLoadC & "0001" & "0000000001000010", -- LOAD s1, 0042 + 16#00B# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize beamer peripheral + ----------------------------------------------------------------- + 16#00C# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#00D# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#00E# => opLoadC & "0001" & "0000010000000001", -- LOAD s1, 0401 + 16#00F# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#010# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#011# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#012# => opLoadC & "0001" & "0000000000000100", -- LOAD s1, 0004 + 16#013# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + -- + --=============================================================== + -- Main loop + --=============================================================== + -- + ----------------------------------------------------------------- + -- Process commands from serial port + ----------------------------------------------------------------- + -- _main_: + 16#014# => brCall & brDo & "--------0000100001",-- CALL 021 ; get command from UART + 16#015# => opCompC & "0011" & "0000000000000000", -- COMPARE s3, 0000 ; check function return + 16#016# => brJump & brNZ & "--------0000011111",-- JUMP NZ, 01F + 16#017# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#018# => brJump & brNZ & "--------0000011100",-- JUMP NZ, 01C + 16#019# => opOutputR & "0111" & "0110------------", -- OUTPUT s7, (S6) ; write word to memory location + 16#01A# => brCall & brDo & "--------0001100000",-- CALL 060 ; send write acknowledge + 16#01B# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandRead_: + 16#01C# => opInputR & "0111" & "0110------------", -- INPUT s7, (S6) ; write word in memory location + 16#01D# => brCall & brDo & "--------0001101111",-- CALL 06F ; send back read data + 16#01E# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandAbort_: + 16#01F# => brCall & brDo & "--------0001010001",-- CALL 051 + 16#020# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- + --=============================================================== + -- Subroutines + --=============================================================== + -- + ----------------------------------------------------------------- + -- Get command from serial port + ----------------------------------------------------------------- + -- _uartGetCmd_: + 16#021# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command header + 16#022# => opCompC & "0010" & "0000000010101010", -- COMPARE s2, 00AA + 16#023# => brJump & brNZ & "--------0000100001",-- JUMP NZ, 021 ; loop until byte is AAh + 16#024# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#025# => brCall & brDo & "--------0010000110",-- CALL 086 ; get packet id + 16#026# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#027# => opLoadR & "0100" & "0010------------", -- LOAD s4, s2 ; store id for reply + 16#028# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command + 16#029# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#02A# => opCompC & "0010" & "0000000000000011", -- COMPARE s2, 0003 ; check for WRITE_MEM command + 16#02B# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02C# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; check for READ_MEM command + 16#02D# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02E# => brJump & brDo & "--------0001001111",-- JUMP 04F ; no match + -- _commandOk_: + 16#02F# => opLoadR & "0101" & "0010------------", -- LOAD s5, s2 ; store command for action + 16#030# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data length + 16#031# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#032# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#033# => brJump & brZ & "--------0000110111",-- JUMP Z, 037 ; go to test write command length + 16#034# => opCompC & "0010" & "0000000000000010", -- COMPARE s2, 0002 ; verify READ_MEM length + 16#035# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#036# => brJump & brDo & "--------0000111001",-- JUMP 039 + -- _testWrLength_: + 16#037# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; verify WRITE_MEM length + 16#038# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + -- _getAddress_: + 16#039# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address low + 16#03A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03B# => opLoadR & "0110" & "0010------------", -- LOAD s6, s2 ; store address low + 16#03C# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address high + 16#03D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03E# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#03F# => opAddR & "0110" & "0010------------", -- ADD s6, s2 ; build address from low and high + 16#040# => opCompC & "0101" & "0000000000000100", -- COMPARE s5, 0004 ; check for READ_MEM command + 16#041# => brJump & brZ & "--------0001001001",-- JUMP Z, 049 ; skip reading data word + 16#042# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data low + 16#043# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#044# => opLoadR & "0111" & "0010------------", -- LOAD s7, s2 ; store data low + 16#045# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data high + 16#046# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#047# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#048# => opAddR & "0111" & "0010------------", -- ADD s7, s2 ; build data from low and high + -- _getChecksum_: + 16#049# => brCall & brDo & "--------0010000110",-- CALL 086 ; get checksum + 16#04A# => opAndC & "0011" & "0000000011111111", -- AND s3, 00FF ; limit calculated checksum to 8 bit + 16#04B# => opCompR & "0011" & "0010------------", -- COMPARE s3, s2 ; test checksum + 16#04C# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#04D# => opLoadC & "0011" & "0000000000000000", -- LOAD s3, 0000 ; return OK + 16#04E# => brRet & brDo & "------------------",-- RETURN + -- _commandKo_: + 16#04F# => opLoadC & "0011" & "0000000000000001", -- LOAD s3, 0001 ; return KO + 16#050# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send NACK reply + ----------------------------------------------------------------- + -- _sendNAck_: + 16#051# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#052# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#053# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#054# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#055# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#056# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#057# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; negative Acknowledge + 16#058# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#059# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05A# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#05B# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#05C# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05D# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#05E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send WRITE_MEM reply + ----------------------------------------------------------------- + -- _sendWriteOk_: + 16#060# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#061# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#062# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#063# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#064# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#065# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#066# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#067# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#068# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#069# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#06A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#06B# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06C# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#06D# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06E# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send READ_MEM reply + ----------------------------------------------------------------- + -- _sendReadData_: + 16#06F# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#070# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#071# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#072# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#073# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#074# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#075# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#076# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#077# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#078# => opLoadC & "0010" & "0000000000000010", -- LOAD s2, 0002 ; packet length: 2 bytes + 16#079# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07A# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07B# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data low + 16#07C# => opAndC & "0010" & "0000000011111111", -- AND s2, 00FF ; keep low byte only + 16#07D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07F# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data high + 16#080# => brCall & brDo & "--------0010100101",-- CALL 0A5 ; shift MSBs down to LSBs + 16#081# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#082# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#083# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#084# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#085# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Get byte from serial port + ----------------------------------------------------------------- + -- _uartGetByte_: + 16#086# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#087# => opAddC & "0000" & "0000000000000001", -- ADD s0, 01 + --load s8, 0100 + -- _checkStat_: + 16#088# => opLoadC & "0010" & "0000000001000000", -- LOAD s2, 0040 ; add delay between bus reads + -- _delay0_: + 16#089# => opSubC & "0010" & "0000000000000001", -- SUB s2, 0001 + 16#08A# => brJump & brNZ & "--------0010001001",-- JUMP NZ, 089 + --sub s8, 0001 + --jump nz, continue + --load s2, 0035 + --call uartSendByte + --load s8, 0100 + -- _continue_: + 16#08B# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08C# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08D# => opTestC & "0001" & "0000000000000001", -- TEST s1, 0001 ; check "data ready" bit + 16#08E# => brJump & brZ & "--------0010001000",-- JUMP Z, 088 ; loop until bit is '1' + 16#08F# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART data register + 16#090# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + 16#091# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + --LOAD s8, s2 + 16#092# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Send byte to serial port + ----------------------------------------------------------------- + -- _uartSendByte_: + 16#093# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#094# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + -- _readStatus_: + 16#095# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#096# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#097# => opTestC & "0001" & "0000000000000010", -- TEST s1, 0002 ; check "sending data" bit + 16#098# => brJump & brZ & "--------0010011101",-- JUMP Z, 09D ; loop until bit is '1' + 16#099# => opLoadC & "0001" & "0000000001000000", -- LOAD s1, 0040 ; add delay between bus reads + -- _delay1_: + 16#09A# => opSubC & "0001" & "0000000000000001", -- SUB s1, 0001 + 16#09B# => brJump & brNZ & "--------0010011010",-- JUMP NZ, 09A + 16#09C# => brJump & brDo & "--------0010010101",-- JUMP 095 + -- _sendByte_: + 16#09D# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; write UART data register + 16#09E# => opOutputR & "0010" & "0000------------", -- OUTPUT s2, (S0) + 16#09F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the left + ----------------------------------------------------------------- + -- _shiftS2L8_: + 16#0A0# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftLeftLoop_: + 16#0A1# => opShRot & "0010" & shRotL & shRotLd0, -- SL0 s2 + 16#0A2# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A3# => brJump & brNZ & "--------0010100001",-- JUMP NZ, 0A1 + 16#0A4# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the right + ----------------------------------------------------------------- + -- _shiftS2R8_: + 16#0A5# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftRightLoop_: + 16#0A6# => opShRot & "0010" & shRotR & shRotLd0, -- SR0 s2 + 16#0A7# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A8# => brJump & brNZ & "--------0010100110",-- JUMP NZ, 0A6 + 16#0A9# => brRet & brDo & "------------------",-- RETURN + -- + --=============================================================== + -- End of instruction memory + --=============================================================== + -- _endOfMemory_: + 16#3FF# => brJump & brDo & "--------1111111111",-- JUMP 3FF + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMAddressCounter_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMAddressCounter_studentVersion.vhd new file mode 100644 index 0000000..f9eaeb8 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMAddressCounter_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF blockRAMAddressCounter IS +BEGIN + addr <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMControl_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMControl_studentVersion.vhd new file mode 100644 index 0000000..95ca788 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAMControl_studentVersion.vhd @@ -0,0 +1,6 @@ +ARCHITECTURE studentVersion OF blockRAMControl IS +BEGIN + cntIncr <= '0'; + memWr <= '0'; + memEn <= '0'; +END ARCHITECTURE studentVersion; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan2.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan2.vhd new file mode 100644 index 0000000..4de467b --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan2.vhd @@ -0,0 +1,29 @@ +ARCHITECTURE Spartan2 OF blockRAM IS + + subtype register_type is std_ulogic_vector(dataBitNb-1 downto 0); + type memory_type is array (0 to 2**addressBitNb-1) of register_type; + + signal memoryArray : memory_type; + +BEGIN + + portA: process(clock) + begin + if rising_edge(clock) then + if (en = '1') then + if (write = '1') then + memoryArray(to_integer(addr)) <= dataIn; + end if; + if reset = '1' then + dataOut <= (others => '0'); + elsif (write = '1') then + dataOut <= dataIn; + else + dataOut <= memoryArray(to_integer(addr)); + end if; + end if; + end if; + end process portA; + +END ARCHITECTURE Spartan2; + diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan3E.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan3E.vhd new file mode 100644 index 0000000..7b9e894 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/blockRAM_Spartan3E.vhd @@ -0,0 +1,44 @@ +USE std.textio.all; + +ARCHITECTURE Spartan3E OF blockRAM IS + + subtype registerType is std_ulogic_vector(dataBitNb-1 downto 0); + type memoryType is array (0 to 2**addressBitNb-1) of registerType; + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFileSpec : in string) return memoryType is + FILE ramContentFile : text open read_mode is ramContentFileSpec; + variable ramContentFileLine : line; + variable ramContent : memoryType; + variable ramCurrentWord : bit_vector(registerType'range); + variable index : natural := 0; --241; + begin + for index in ramContent'range loop +-- while not endfile(ramContentFile) loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramCurrentWord); + ramContent(index) := std_ulogic_vector(to_stdlogicvector(ramCurrentWord)); +-- index := index + 1; + end loop; + return ramContent; + end function; + + shared variable memoryArray: memoryType := ReadRamContentFromFile(initFileSpec); + +BEGIN + + portA: process(clock) + begin + if rising_edge(clock) then + if (en = '1') then + if (write = '1') then + memoryArray(to_integer(addr)) := dataIn; + dataOut <= dataIn; + else + dataOut <= memoryArray(to_integer(addr)); + end if; + end if; + end if; + end process portA; + +END ARCHITECTURE Spartan3E; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphAddressDecoder_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphAddressDecoder_studentVersion.vhd new file mode 100644 index 0000000..58b5a04 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphAddressDecoder_studentVersion.vhd @@ -0,0 +1,10 @@ +ARCHITECTURE studentVersion OF periphAddressDecoder IS +BEGIN + selControl <= '0'; +-- selSize <= '0'; + selSpeed <= '0'; + selX <= '0'; + selY <= '0'; + selZ <= '0'; +END ARCHITECTURE studentVersion; + diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphControlReg_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphControlReg_studentVersion.vhd new file mode 100644 index 0000000..73b4d1d --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphControlReg_studentVersion.vhd @@ -0,0 +1,6 @@ +ARCHITECTURE studentVersion OF periphControlReg IS +BEGIN + run <= '0'; + updatePattern <= '0'; + interpolateLinear <= '0'; +END ARCHITECTURE studentVersion; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSizeReg_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSizeReg_studentVersion.vhd new file mode 100644 index 0000000..0238147 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSizeReg_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF periphSizeReg IS +BEGIN + patternSize <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedController_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedController_studentVersion.vhd new file mode 100644 index 0000000..68a3938 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedController_studentVersion.vhd @@ -0,0 +1,4 @@ +ARCHITECTURE studentVersion OF periphSpeedController IS +BEGIN + enableOut <= '0'; +END ARCHITECTURE studentVersion; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedReg_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedReg_studentVersion.vhd new file mode 100644 index 0000000..9efa810 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/periphSpeedReg_studentVersion.vhd @@ -0,0 +1,5 @@ +ARCHITECTURE studentVersion OF periphSpeedReg IS +BEGIN + updatePeriod <= (others => '0'); +END ARCHITECTURE studentVersion; + diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/rom_mapped.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/rom_mapped.vhd new file mode 100644 index 0000000..24fc8c5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/rom_mapped.vhd @@ -0,0 +1,374 @@ +ARCHITECTURE mapped OF programRom IS + + subtype opCodeType is std_ulogic_vector(5 downto 0); + constant opLoadC : opCodeType := "000000"; + constant opLoadR : opCodeType := "000001"; + constant opInputC : opCodeType := "000100"; + constant opInputR : opCodeType := "000101"; + constant opFetchC : opCodeType := "000110"; + constant opFetchR : opCodeType := "000111"; + constant opAndC : opCodeType := "001010"; + constant opAndR : opCodeType := "001011"; + constant opOrC : opCodeType := "001100"; + constant opOrR : opCodeType := "001101"; + constant opXorC : opCodeType := "001110"; + constant opXorR : opCodeType := "001111"; + constant opTestC : opCodeType := "010010"; + constant opTestR : opCodeType := "010011"; + constant opCompC : opCodeType := "010100"; + constant opCompR : opCodeType := "010101"; + constant opAddC : opCodeType := "011000"; + constant opAddR : opCodeType := "011001"; + constant opAddCyC : opCodeType := "011010"; + constant opAddCyR : opCodeType := "011011"; + constant opSubC : opCodeType := "011100"; + constant opSubR : opCodeType := "011101"; + constant opSubCyC : opCodeType := "011110"; + constant opSubCyR : opCodeType := "011111"; + constant opShRot : opCodeType := "100000"; + constant opOutputC : opCodeType := "101100"; + constant opOutputR : opCodeType := "101101"; + constant opStoreC : opCodeType := "101110"; + constant opStoreR : opCodeType := "101111"; + + subtype shRotCinType is std_ulogic_vector(2 downto 0); + constant shRotLdC : shRotCinType := "00-"; + constant shRotLdM : shRotCinType := "01-"; + constant shRotLdL : shRotCinType := "10-"; + constant shRotLd0 : shRotCinType := "110"; + constant shRotLd1 : shRotCinType := "111"; + + constant registerAddressBitNb : positive := 4; + constant shRotPadLength : positive + := dataOut'length - opCodeType'length - registerAddressBitNb + - 1 - shRotCinType'length; + subtype shRotDirType is std_ulogic_vector(1+shRotPadLength-1 downto 0); + constant shRotL : shRotDirType := (0 => '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + --=============================================================== + -- Beamer control + --=============================================================== + -- + ----------------------------------------------------------------- + -- register definitions + -- s0, s1: used for INPUT and OUTPUT operations + -- S2: returns UART data byte + -- S3: uart protocol checksum + -- S4: uart protocol packet id + -- S5: uart protocol command id + -- S6: uart protocol address + -- S7: uart protocol data + -- S8: copy of UART data byte for debug + ----------------------------------------------------------------- + -- + ----------------------------------------------------------------- + -- GPIO definitions + ----------------------------------------------------------------- + ----------------------------------------------------------------- + -- UART definitions + ----------------------------------------------------------------- + -- CONSTANT uartBaudCount, 023D ; 66E6 / 115 200 = 573 + -- CONSTANT uartpollDelay, 0100 + ----------------------------------------------------------------- + -- beamer peripheral definitions + ----------------------------------------------------------------- + -- CONSTANT beamerCtlInit, 1001 + -- + --=============================================================== + -- initializations + --=============================================================== + -- + ----------------------------------------------------------------- + -- initialize GPIO + ----------------------------------------------------------------- + 16#000# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#001# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#002# => opLoadC & "0001" & "0000000010101010", -- LOAD s1, AA + 16#003# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#004# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#005# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#006# => opLoadC & "0001" & "0000000000001111", -- LOAD s1, 0F + 16#007# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize UART + ----------------------------------------------------------------- + 16#008# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 + 16#009# => opAddC & "0000" & "0000000000000010", -- ADD s0, 0002 + 16#00A# => opLoadC & "0001" & "0000000001000010", -- LOAD s1, 0042 + 16#00B# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize beamer peripheral + ----------------------------------------------------------------- + 16#00C# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#00D# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#00E# => opLoadC & "0001" & "0000010000000001", -- LOAD s1, 0401 + 16#00F# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#010# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#011# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#012# => opLoadC & "0001" & "0000000000000100", -- LOAD s1, 0004 + 16#013# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + -- + --=============================================================== + -- Main loop + --=============================================================== + -- + ----------------------------------------------------------------- + -- Process commands from serial port + ----------------------------------------------------------------- + -- _main_: + 16#014# => brCall & brDo & "--------0000100001",-- CALL 021 ; get command from UART + 16#015# => opCompC & "0011" & "0000000000000000", -- COMPARE s3, 0000 ; check function return + 16#016# => brJump & brNZ & "--------0000011111",-- JUMP NZ, 01F + 16#017# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#018# => brJump & brNZ & "--------0000011100",-- JUMP NZ, 01C + 16#019# => opOutputR & "0111" & "0110------------", -- OUTPUT s7, (S6) ; write word to memory location + 16#01A# => brCall & brDo & "--------0001100000",-- CALL 060 ; send write acknowledge + 16#01B# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandRead_: + 16#01C# => opInputR & "0111" & "0110------------", -- INPUT s7, (S6) ; write word in memory location + 16#01D# => brCall & brDo & "--------0001101111",-- CALL 06F ; send back read data + 16#01E# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandAbort_: + 16#01F# => brCall & brDo & "--------0001010001",-- CALL 051 + 16#020# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- + --=============================================================== + -- Subroutines + --=============================================================== + -- + ----------------------------------------------------------------- + -- Get command from serial port + ----------------------------------------------------------------- + -- _uartGetCmd_: + 16#021# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command header + 16#022# => opCompC & "0010" & "0000000010101010", -- COMPARE s2, 00AA + 16#023# => brJump & brNZ & "--------0000100001",-- JUMP NZ, 021 ; loop until byte is AAh + 16#024# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#025# => brCall & brDo & "--------0010000110",-- CALL 086 ; get packet id + 16#026# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#027# => opLoadR & "0100" & "0010------------", -- LOAD s4, s2 ; store id for reply + 16#028# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command + 16#029# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#02A# => opCompC & "0010" & "0000000000000011", -- COMPARE s2, 0003 ; check for WRITE_MEM command + 16#02B# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02C# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; check for READ_MEM command + 16#02D# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02E# => brJump & brDo & "--------0001001111",-- JUMP 04F ; no match + -- _commandOk_: + 16#02F# => opLoadR & "0101" & "0010------------", -- LOAD s5, s2 ; store command for action + 16#030# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data length + 16#031# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#032# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#033# => brJump & brZ & "--------0000110111",-- JUMP Z, 037 ; go to test write command length + 16#034# => opCompC & "0010" & "0000000000000010", -- COMPARE s2, 0002 ; verify READ_MEM length + 16#035# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#036# => brJump & brDo & "--------0000111001",-- JUMP 039 + -- _testWrLength_: + 16#037# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; verify WRITE_MEM length + 16#038# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + -- _getAddress_: + 16#039# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address low + 16#03A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03B# => opLoadR & "0110" & "0010------------", -- LOAD s6, s2 ; store address low + 16#03C# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address high + 16#03D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03E# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#03F# => opAddR & "0110" & "0010------------", -- ADD s6, s2 ; build address from low and high + 16#040# => opCompC & "0101" & "0000000000000100", -- COMPARE s5, 0004 ; check for READ_MEM command + 16#041# => brJump & brZ & "--------0001001001",-- JUMP Z, 049 ; skip reading data word + 16#042# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data low + 16#043# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#044# => opLoadR & "0111" & "0010------------", -- LOAD s7, s2 ; store data low + 16#045# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data high + 16#046# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#047# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#048# => opAddR & "0111" & "0010------------", -- ADD s7, s2 ; build data from low and high + -- _getChecksum_: + 16#049# => brCall & brDo & "--------0010000110",-- CALL 086 ; get checksum + 16#04A# => opAndC & "0011" & "0000000011111111", -- AND s3, 00FF ; limit calculated checksum to 8 bit + 16#04B# => opCompR & "0011" & "0010------------", -- COMPARE s3, s2 ; test checksum + 16#04C# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#04D# => opLoadC & "0011" & "0000000000000000", -- LOAD s3, 0000 ; return OK + 16#04E# => brRet & brDo & "------------------",-- RETURN + -- _commandKo_: + 16#04F# => opLoadC & "0011" & "0000000000000001", -- LOAD s3, 0001 ; return KO + 16#050# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send NACK reply + ----------------------------------------------------------------- + -- _sendNAck_: + 16#051# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#052# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#053# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#054# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#055# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#056# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#057# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; negative Acknowledge + 16#058# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#059# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05A# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#05B# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#05C# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05D# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#05E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send WRITE_MEM reply + ----------------------------------------------------------------- + -- _sendWriteOk_: + 16#060# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#061# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#062# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#063# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#064# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#065# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#066# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#067# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#068# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#069# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#06A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#06B# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06C# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#06D# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06E# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send READ_MEM reply + ----------------------------------------------------------------- + -- _sendReadData_: + 16#06F# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#070# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#071# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#072# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#073# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#074# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#075# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#076# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#077# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#078# => opLoadC & "0010" & "0000000000000010", -- LOAD s2, 0002 ; packet length: 2 bytes + 16#079# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07A# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07B# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data low + 16#07C# => opAndC & "0010" & "0000000011111111", -- AND s2, 00FF ; keep low byte only + 16#07D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07F# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data high + 16#080# => brCall & brDo & "--------0010100101",-- CALL 0A5 ; shift MSBs down to LSBs + 16#081# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#082# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#083# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#084# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#085# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Get byte from serial port + ----------------------------------------------------------------- + -- _uartGetByte_: + 16#086# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#087# => opAddC & "0000" & "0000000000000001", -- ADD s0, 01 + --load s8, 0100 + -- _checkStat_: + 16#088# => opLoadC & "0010" & "0000000001000000", -- LOAD s2, 0040 ; add delay between bus reads + -- _delay0_: + 16#089# => opSubC & "0010" & "0000000000000001", -- SUB s2, 0001 + 16#08A# => brJump & brNZ & "--------0010001001",-- JUMP NZ, 089 + --sub s8, 0001 + --jump nz, continue + --load s2, 0035 + --call uartSendByte + --load s8, 0100 + -- _continue_: + 16#08B# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08C# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08D# => opTestC & "0001" & "0000000000000001", -- TEST s1, 0001 ; check "data ready" bit + 16#08E# => brJump & brZ & "--------0010001000",-- JUMP Z, 088 ; loop until bit is '1' + 16#08F# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART data register + 16#090# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + 16#091# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + --LOAD s8, s2 + 16#092# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Send byte to serial port + ----------------------------------------------------------------- + -- _uartSendByte_: + 16#093# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#094# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + -- _readStatus_: + 16#095# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#096# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#097# => opTestC & "0001" & "0000000000000010", -- TEST s1, 0002 ; check "sending data" bit + 16#098# => brJump & brZ & "--------0010011101",-- JUMP Z, 09D ; loop until bit is '1' + 16#099# => opLoadC & "0001" & "0000000001000000", -- LOAD s1, 0040 ; add delay between bus reads + -- _delay1_: + 16#09A# => opSubC & "0001" & "0000000000000001", -- SUB s1, 0001 + 16#09B# => brJump & brNZ & "--------0010011010",-- JUMP NZ, 09A + 16#09C# => brJump & brDo & "--------0010010101",-- JUMP 095 + -- _sendByte_: + 16#09D# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; write UART data register + 16#09E# => opOutputR & "0010" & "0000------------", -- OUTPUT s2, (S0) + 16#09F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the left + ----------------------------------------------------------------- + -- _shiftS2L8_: + 16#0A0# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftLeftLoop_: + 16#0A1# => opShRot & "0010" & shRotL & shRotLd0, -- SL0 s2 + 16#0A2# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A3# => brJump & brNZ & "--------0010100001",-- JUMP NZ, 0A1 + 16#0A4# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the right + ----------------------------------------------------------------- + -- _shiftS2R8_: + 16#0A5# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftRightLoop_: + 16#0A6# => opShRot & "0010" & shRotR & shRotLd0, -- SR0 s2 + 16#0A7# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A8# => brJump & brNZ & "--------0010100110",-- JUMP NZ, 0A6 + 16#0A9# => brRet & brDo & "------------------",-- RETURN + -- + --=============================================================== + -- End of instruction memory + --=============================================================== + -- _endOfMemory_: + 16#3FF# => brJump & brDo & "--------1111111111",-- JUMP 3FF + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hdl/sinCosTable_studentVersion.vhd b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/sinCosTable_studentVersion.vhd new file mode 100644 index 0000000..173267c --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hdl/sinCosTable_studentVersion.vhd @@ -0,0 +1,5 @@ +ARCHITECTURE studentVersion OF sinCosTable IS +BEGIN + sine <= (others => '0'); + cosine <= (others => '0'); +END ARCHITECTURE studentVersion; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamer_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeameroperator_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_ahbbeamerregisters_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamer.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamer.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamer.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_struct.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_beamersoc_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMAddressCounter_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMAddressCounter_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMAddressCounter_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMControl_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMControl_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAMControl_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan2.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan2.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan2.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan3E.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan3E.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockRAM_Spartan3E.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockram_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramaddresscounter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_blockramcontrol_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphAddressDecoder_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphAddressDecoder_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphAddressDecoder_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphControlReg_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphControlReg_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphControlReg_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSizeReg_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSizeReg_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSizeReg_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedController_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedController_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedController_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedReg_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedReg_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphSpeedReg_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphaddressdecoder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphcontrolreg_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedcontroller_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_periphspeedreg_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_programrom_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_programrom_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_programrom_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_rom_mapped.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_rom_mapped.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_rom_mapped.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sinCosTable_studentVersion.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sinCosTable_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sinCosTable_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/.hdlsidedata/_sincostable_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamer._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamer._epf new file mode 100644 index 0000000..85cc248 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamer._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom ahb@beamer/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerblanking._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerblanking._epf new file mode 100644 index 0000000..c6b8ef2 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerblanking._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom ahb@beamer@blanking/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeameroperator._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeameroperator._epf new file mode 100644 index 0000000..4e4a27c --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeameroperator._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom ahb@beamer@operator/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerregisters._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerregisters._epf new file mode 100644 index 0000000..96629ce --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_ahbbeamerregisters._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom ahb@beamer@registers/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiph._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiph._epf new file mode 100644 index 0000000..82aff67 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiph._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom beamer@periph/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphblanking._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphblanking._epf new file mode 100644 index 0000000..4254734 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphblanking._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom beamer@periph@blanking/struct.bd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphoperator._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphoperator._epf new file mode 100644 index 0000000..7886b47 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphoperator._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom beamer@periph@operator/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 0 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphregisters._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphregisters._epf new file mode 100644 index 0000000..82d8c6e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamerperiphregisters._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom beamer@periph@registers/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 0 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamersoc._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamersoc._epf new file mode 100644 index 0000000..8d18be3 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_beamersoc._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom beamer@soc/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockram._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockram._epf new file mode 100644 index 0000000..e8cefbe --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockram._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom Spartan3E +DEFAULT_FILE atom blockRAM_Spartan3E.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramaddresscounter._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramaddresscounter._epf new file mode 100644 index 0000000..03318ce --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramaddresscounter._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom blockRAMAddressCounter_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramcontrol._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramcontrol._epf new file mode 100644 index 0000000..79021f5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_blockramcontrol._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom blockRAMControl_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphaddressdecoder._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphaddressdecoder._epf new file mode 100644 index 0000000..5427f48 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphaddressdecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom periphAddressDecoder_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphcontrolreg._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphcontrolreg._epf new file mode 100644 index 0000000..7cbdd9d --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphcontrolreg._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom periphControlReg_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphsizereg._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphsizereg._epf new file mode 100644 index 0000000..cdb6485 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphsizereg._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom periphSizeReg_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedcontroller._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedcontroller._epf new file mode 100644 index 0000000..97f3a4d --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedcontroller._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom periphSpeedController_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedreg._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedreg._epf new file mode 100644 index 0000000..5ee021b --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_periphspeedreg._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom periphSpeedReg_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_programrom._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_programrom._epf new file mode 100644 index 0000000..04f9d0f --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_programrom._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom rom_mapped.vhd +DEFAULT_ARCHITECTURE atom mapped diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/_sincostable._epf b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_sincostable._epf new file mode 100644 index 0000000..7a46612 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/_sincostable._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom studentVersion +DEFAULT_FILE atom sinCosTable_studentVersion.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/struct.bd new file mode 100644 index 0000000..eeb8d8b --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/struct.bd @@ -0,0 +1,5403 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_regs" +duLibraryName "SystemOnChip" +duName "ahbBeamerRegisters" +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +mwi 0 +uid 17506,0 +) +(Instance +name "I_op" +duLibraryName "SystemOnChip" +duName "ahbBeamerOperator" +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 17559,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb3" +number "3" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamer" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:00:20" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbBeamer" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamer\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:00:20" +) +(vvPair +variable "unit" +value "ahbBeamer" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "102500,625,104000,1375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "102000,1000,102500,1000" +pts [ +"102000,1000" +"102500,1000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "105000,300,108100,1800" +st "outX" +blo "105000,1500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +) +xt "2000,-2000,15600,-800" +st "outX : std_ulogic" +) +) +*3 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "102500,2625,104000,3375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "102000,3000,102500,3000" +pts [ +"102000,3000" +"102500,3000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "105000,2300,108100,3800" +st "outY" +blo "105000,3500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 3 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +) +xt "2000,400,15600,1600" +st "outY : std_ulogic" +) +) +*5 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 90 +xt "102500,6625,104000,7375" +) +(Line +uid 5083,0 +sl 0 +ro 90 +xt "102000,7000,102500,7000" +pts [ +"102500,7000" +"102000,7000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "105000,6300,111500,7800" +st "selSinCos" +blo "105000,7500" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +) +xt "2000,2800,16900,4000" +st "selSinCos : std_ulogic" +) +) +*7 (Net +uid 14974,0 +decl (Decl +n "reset" +t "std_ulogic" +o 15 +suid 75,0 +) +declText (MLText +uid 14975,0 +va (VaSet +) +xt "2000,19200,20100,20400" +st "SIGNAL reset : std_ulogic" +) +) +*8 (Net +uid 15201,0 +decl (Decl +n "run" +t "std_ulogic" +o 16 +suid 76,0 +) +declText (MLText +uid 15202,0 +va (VaSet +) +xt "2000,20400,19700,21600" +st "SIGNAL run : std_ulogic" +) +) +*9 (Net +uid 15207,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 17 +suid 77,0 +) +declText (MLText +uid 15208,0 +va (VaSet +) +xt "2000,21600,21700,22800" +st "SIGNAL interpolateLin : std_ulogic" +) +) +*10 (Net +uid 15213,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 18 +suid 78,0 +) +declText (MLText +uid 15214,0 +va (VaSet +) +xt "2000,22800,39700,24000" +st "SIGNAL updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*11 (Net +uid 15462,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 19 +suid 79,0 +) +declText (MLText +uid 15463,0 +va (VaSet +) +xt "2000,24000,39500,25200" +st "SIGNAL memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*12 (Net +uid 15468,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 20 +suid 80,0 +) +declText (MLText +uid 15469,0 +va (VaSet +) +xt "2000,25200,39500,26400" +st "SIGNAL memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*13 (Net +uid 15574,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 6 +suid 81,0 +) +declText (MLText +uid 15575,0 +va (VaSet +) +xt "2000,4000,31200,5200" +st "testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*14 (PortIoOut +uid 15582,0 +shape (CompositeShape +uid 15583,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15584,0 +sl 0 +ro 270 +xt "62500,-7375,64000,-6625" +) +(Line +uid 15585,0 +sl 0 +ro 270 +xt "62000,-7000,62500,-7000" +pts [ +"62000,-7000" +"62500,-7000" +] +) +] +) +tg (WTG +uid 15586,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15587,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "65000,-7700,82500,-6200" +st "testOut : (1 TO testOutBitNb)" +blo "65000,-6500" +tm "WireNameMgr" +) +) +) +*15 (HdlText +uid 16006,0 +optionalChildren [ +*16 (EmbeddedText +uid 16011,0 +commentText (CommentText +uid 16012,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 16013,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "62000,-22000,78000,-12000" +) +oxt "0,0,18000,5000" +text (MLText +uid 16014,0 +va (VaSet +) +xt "62200,-21800,77500,-12200" +st " +--process +--begin +-- newPolynom <= '0'; +-- for index in 1 to 2**4-1 loop +-- wait until rising_edge(clock); +-- end loop; +-- newPolynom <= '1'; +-- wait until rising_edge(clock); +--end process; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 16007,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "62000,-23000,78000,-11000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 16008,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*17 (Text +uid 16009,0 +va (VaSet +) +xt "62400,-11000,64000,-10000" +st "eb2" +blo "62400,-10200" +tm "HdlTextNameMgr" +) +*18 (Text +uid 16010,0 +va (VaSet +) +xt "62400,-10000,63200,-9000" +st "2" +blo "62400,-9200" +tm "HdlTextNumberMgr" +) +] +) +) +*19 (Net +uid 16103,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 21 +suid 83,0 +) +declText (MLText +uid 16104,0 +va (VaSet +) +xt "2000,26400,22200,27600" +st "SIGNAL newPolynom : std_ulogic" +) +) +*20 (PortIoIn +uid 16666,0 +shape (CompositeShape +uid 16667,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16668,0 +sl 0 +ro 270 +xt "36000,625,37500,1375" +) +(Line +uid 16669,0 +sl 0 +ro 270 +xt "37500,1000,38000,1000" +pts [ +"37500,1000" +"38000,1000" +] +) +] +) +tg (WTG +uid 16670,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16671,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "11900,500,35000,2000" +st "hAddr : (ahbAddressBitNb-1 downto 0)" +ju 2 +blo "35000,1700" +tm "WireNameMgr" +) +) +) +*21 (Net +uid 16678,0 +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 2 +suid 84,0 +) +declText (MLText +uid 16679,0 +va (VaSet +) +xt "2000,-800,31600,400" +st "hAddr : unsigned(ahbAddressBitNb-1 downto 0)" +) +) +*22 (PortIoIn +uid 16729,0 +shape (CompositeShape +uid 16730,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16731,0 +sl 0 +ro 270 +xt "36000,2625,37500,3375" +) +(Line +uid 16732,0 +sl 0 +ro 270 +xt "37500,3000,38000,3000" +pts [ +"37500,3000" +"38000,3000" +] +) +] +) +tg (WTG +uid 16733,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16734,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "12700,2500,35000,4000" +st "hWData : (ahbDataBitNb-1 downto 0)" +ju 2 +blo "35000,3700" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 16741,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 4 +suid 85,0 +) +declText (MLText +uid 16742,0 +va (VaSet +) +xt "2000,1600,34900,2800" +st "hWData : std_ulogic_vector(ahbDataBitNb-1 downto 0)" +) +) +*24 (PortIoOut +uid 16743,0 +shape (CompositeShape +uid 16744,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16745,0 +sl 0 +ro 90 +xt "36000,10625,37500,11375" +) +(Line +uid 16746,0 +sl 0 +ro 90 +xt "37500,11000,38000,11000" +pts [ +"38000,11000" +"37500,11000" +] +) +] +) +tg (WTG +uid 16747,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16748,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "12900,10300,35000,11800" +st "hRData : (ahbDataBitNb-1 downto 0)" +ju 2 +blo "35000,11500" +tm "WireNameMgr" +) +) +) +*25 (Net +uid 16755,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 7 +suid 86,0 +) +declText (MLText +uid 16756,0 +va (VaSet +) +xt "2000,5200,34700,6400" +st "hRData : std_ulogic_vector(ahbDataBitNb-1 downto 0)" +) +) +*26 (PortIoIn +uid 16757,0 +shape (CompositeShape +uid 16758,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16759,0 +sl 0 +ro 270 +xt "36000,4625,37500,5375" +) +(Line +uid 16760,0 +sl 0 +ro 270 +xt "37500,5000,38000,5000" +pts [ +"37500,5000" +"38000,5000" +] +) +] +) +tg (WTG +uid 16761,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16762,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "12600,4500,35000,6000" +st "hTrans : (ahbTransBitNb-1 downto 0)" +ju 2 +blo "35000,5700" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 16769,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 8 +suid 87,0 +) +declText (MLText +uid 16770,0 +va (VaSet +) +xt "2000,6400,35000,7600" +st "hTrans : std_ulogic_vector(ahbTransBitNb-1 downto 0)" +) +) +*28 (PortIoIn +uid 16771,0 +shape (CompositeShape +uid 16772,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16773,0 +sl 0 +ro 270 +xt "36000,6625,37500,7375" +) +(Line +uid 16774,0 +sl 0 +ro 270 +xt "37500,7000,38000,7000" +pts [ +"37500,7000" +"38000,7000" +] +) +] +) +tg (WTG +uid 16775,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16776,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "30800,6500,35000,8000" +st "hWrite" +ju 2 +blo "35000,7700" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 16783,0 +decl (Decl +n "hWrite" +t "std_ulogic" +o 9 +suid 88,0 +) +declText (MLText +uid 16784,0 +va (VaSet +) +xt "2000,7600,15900,8800" +st "hWrite : std_ulogic" +) +) +*30 (PortIoIn +uid 16785,0 +shape (CompositeShape +uid 16786,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16787,0 +sl 0 +ro 270 +xt "36000,8625,37500,9375" +) +(Line +uid 16788,0 +sl 0 +ro 270 +xt "37500,9000,38000,9000" +pts [ +"37500,9000" +"38000,9000" +] +) +] +) +tg (WTG +uid 16789,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16790,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "31800,8500,35000,10000" +st "hSel" +ju 2 +blo "35000,9700" +tm "WireNameMgr" +) +) +) +*31 (Net +uid 16797,0 +decl (Decl +n "hSel" +t "std_ulogic" +o 10 +suid 89,0 +) +declText (MLText +uid 16798,0 +va (VaSet +) +xt "2000,8800,15500,10000" +st "hSel : std_ulogic" +) +) +*32 (Net +uid 16811,0 +decl (Decl +n "hReady" +t "std_ulogic" +o 11 +suid 90,0 +) +declText (MLText +uid 16812,0 +va (VaSet +) +xt "2000,10000,16400,11200" +st "hReady : std_ulogic" +) +) +*33 (Net +uid 16825,0 +decl (Decl +n "hResp" +t "std_ulogic" +o 12 +suid 91,0 +) +declText (MLText +uid 16826,0 +va (VaSet +) +xt "2000,11200,16100,12400" +st "hResp : std_ulogic" +) +) +*34 (PortIoIn +uid 16933,0 +shape (CompositeShape +uid 16934,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16935,0 +sl 0 +ro 270 +xt "36000,18625,37500,19375" +) +(Line +uid 16936,0 +sl 0 +ro 270 +xt "37500,19000,38000,19000" +pts [ +"37500,19000" +"38000,19000" +] +) +] +) +tg (WTG +uid 16937,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16938,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "31800,18500,35000,20000" +st "hClk" +ju 2 +blo "35000,19700" +tm "WireNameMgr" +) +) +) +*35 (Net +uid 16945,0 +decl (Decl +n "hClk" +t "std_ulogic" +o 13 +suid 92,0 +) +declText (MLText +uid 16946,0 +va (VaSet +) +xt "2000,12400,15600,13600" +st "hClk : std_ulogic" +) +) +*36 (PortIoIn +uid 16947,0 +shape (CompositeShape +uid 16948,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16949,0 +sl 0 +ro 270 +xt "36000,20625,37500,21375" +) +(Line +uid 16950,0 +sl 0 +ro 270 +xt "37500,21000,38000,21000" +pts [ +"37500,21000" +"38000,21000" +] +) +] +) +tg (WTG +uid 16951,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16952,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "28900,20500,35000,22000" +st "hReset_n" +ju 2 +blo "35000,21700" +tm "WireNameMgr" +) +) +) +*37 (Net +uid 16959,0 +decl (Decl +n "hReset_n" +t "std_ulogic" +o 14 +suid 93,0 +) +declText (MLText +uid 16960,0 +va (VaSet +) +xt "2000,13600,16800,14800" +st "hReset_n : std_ulogic" +) +) +*38 (PortIoOut +uid 17020,0 +shape (CompositeShape +uid 17021,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 17022,0 +sl 0 +ro 90 +xt "36000,14625,37500,15375" +) +(Line +uid 17023,0 +sl 0 +ro 90 +xt "37500,15000,38000,15000" +pts [ +"38000,15000" +"37500,15000" +] +) +] +) +tg (WTG +uid 17024,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17025,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "30600,14300,35000,15800" +st "hResp" +ju 2 +blo "35000,15500" +tm "WireNameMgr" +) +) +) +*39 (PortIoOut +uid 17026,0 +shape (CompositeShape +uid 17027,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 17028,0 +sl 0 +ro 90 +xt "36000,12625,37500,13375" +) +(Line +uid 17029,0 +sl 0 +ro 90 +xt "37500,13000,38000,13000" +pts [ +"38000,13000" +"37500,13000" +] +) +] +) +tg (WTG +uid 17030,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17031,0 +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "30100,12300,35000,13800" +st "hReady" +ju 2 +blo "35000,13500" +tm "WireNameMgr" +) +) +) +*40 (HdlText +uid 17109,0 +optionalChildren [ +*41 (EmbeddedText +uid 17114,0 +commentText (CommentText +uid 17115,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 17116,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "66000,24000,74000,26000" +) +oxt "0,0,18000,5000" +text (MLText +uid 17117,0 +va (VaSet +) +xt "66200,24200,74100,25400" +st " +reset <= not hReset_n; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 8000 +) +) +) +] +shape (Rectangle +uid 17110,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "66000,23000,74000,27000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 17111,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 17112,0 +va (VaSet +) +xt "66400,27000,68000,28000" +st "eb3" +blo "66400,27800" +tm "HdlTextNameMgr" +) +*43 (Text +uid 17113,0 +va (VaSet +) +xt "66400,28000,67200,29000" +st "3" +blo "66400,28800" +tm "HdlTextNumberMgr" +) +] +) +) +*44 (SaComponent +uid 17506,0 +optionalChildren [ +*45 (CptPort +uid 17438,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17439,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,18625,46000,19375" +) +tg (CPTG +uid 17440,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17441,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,18400,49400,19600" +st "hClk" +blo "47000,19300" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*46 (CptPort +uid 17442,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17443,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,625,46000,1375" +) +tg (CPTG +uid 17444,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17445,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,400,49900,1600" +st "hAddr" +blo "47000,1300" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 10 +suid 2,0 +) +) +) +*47 (CptPort +uid 17446,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17447,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,10625,46000,11375" +) +tg (CPTG +uid 17448,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17449,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,10400,50700,11600" +st "hRData" +blo "47000,11300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 9 +suid 11,0 +) +) +) +*48 (CptPort +uid 17450,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17451,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53625,-3750,54375,-3000" +) +tg (CPTG +uid 17452,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17453,0 +va (VaSet +font "Arial,9,0" +) +xt "52000,-2000,55600,-800" +st "testOut" +blo "52000,-1100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 1 +suid 12,0 +) +) +) +*49 (CptPort +uid 17454,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17455,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,625,62750,1375" +) +tg (CPTG +uid 17456,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17457,0 +va (VaSet +font "Arial,9,0" +) +xt "59200,400,61000,1600" +st "run" +ju 2 +blo "61000,1300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +) +*50 (CptPort +uid 17458,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17459,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,4625,62750,5375" +) +tg (CPTG +uid 17460,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17461,0 +va (VaSet +font "Arial,9,0" +) +xt "54600,4400,61000,5600" +st "updatePeriod" +ju 2 +blo "61000,5300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 5 +suid 2015,0 +) +) +) +*51 (CptPort +uid 17462,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17463,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,8625,62750,9375" +) +tg (CPTG +uid 17464,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17465,0 +va (VaSet +font "Arial,9,0" +) +xt "57900,8400,61000,9600" +st "memX" +ju 2 +blo "61000,9300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2016,0 +) +) +) +*52 (CptPort +uid 17466,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17467,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,10625,62750,11375" +) +tg (CPTG +uid 17468,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17469,0 +va (VaSet +font "Arial,9,0" +) +xt "57700,10400,61000,11600" +st "memY" +ju 2 +blo "61000,11300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 2017,0 +) +) +) +*53 (CptPort +uid 17470,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17471,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,2625,62750,3375" +) +tg (CPTG +uid 17472,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17473,0 +va (VaSet +font "Arial,9,0" +) +xt "54500,2400,61000,3600" +st "interpolateLin" +ju 2 +blo "61000,3300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 6 +suid 2018,0 +) +) +) +*54 (CptPort +uid 17474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17475,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,20625,46000,21375" +) +tg (CPTG +uid 17476,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17477,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,20400,51500,21600" +st "hReset_n" +blo "47000,21300" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 11 +suid 2021,0 +) +) +) +*55 (CptPort +uid 17478,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17479,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,6625,62750,7375" +) +tg (CPTG +uid 17480,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17481,0 +va (VaSet +font "Arial,9,0" +) +xt "54700,6400,61000,7600" +st "newPolynom" +ju 2 +blo "61000,7300" +) +) +thePort (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 7 +suid 2022,0 +) +) +) +*56 (CptPort +uid 17482,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17483,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,2625,46000,3375" +) +tg (CPTG +uid 17484,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17485,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,2400,50900,3600" +st "hWData" +blo "47000,3300" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 12 +suid 2023,0 +) +) +) +*57 (CptPort +uid 17486,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17487,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,4625,46000,5375" +) +tg (CPTG +uid 17488,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17489,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,4400,50300,5600" +st "hTrans" +blo "47000,5300" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 13 +suid 2024,0 +) +) +) +*58 (CptPort +uid 17490,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17491,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,6625,46000,7375" +) +tg (CPTG +uid 17492,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17493,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,6400,50200,7600" +st "hWrite" +blo "47000,7300" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 14 +suid 2025,0 +) +) +) +*59 (CptPort +uid 17494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17495,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,8625,46000,9375" +) +tg (CPTG +uid 17496,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17497,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,8400,49300,9600" +st "hSel" +blo "47000,9300" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 15 +suid 2026,0 +) +) +) +*60 (CptPort +uid 17498,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17499,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,12625,46000,13375" +) +tg (CPTG +uid 17500,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17501,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,12400,50800,13600" +st "hReady" +blo "47000,13300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 16 +suid 2027,0 +) +) +) +*61 (CptPort +uid 17502,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17503,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,14625,46000,15375" +) +tg (CPTG +uid 17504,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17505,0 +va (VaSet +font "Arial,9,0" +) +xt "47000,14400,50200,15600" +st "hResp" +blo "47000,15300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 17 +suid 2028,0 +) +) +) +] +shape (Rectangle +uid 17507,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "46000,-3000,62000,23000" +) +oxt "44000,4000,60000,30000" +ttg (MlTextGroup +uid 17508,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 17509,0 +va (VaSet +font "Arial,9,1" +) +xt "46600,22800,54300,23900" +st "SystemOnChip" +blo "46600,23700" +tm "BdLibraryNameMgr" +) +*63 (Text +uid 17510,0 +va (VaSet +font "Arial,9,1" +) +xt "46600,23700,57000,24800" +st "ahbBeamerRegisters" +blo "46600,24600" +tm "CptNameMgr" +) +*64 (Text +uid 17511,0 +va (VaSet +font "Arial,9,1" +) +xt "46600,24600,49900,25700" +st "I_regs" +blo "46600,25500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17512,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17513,0 +text (MLText +uid 17514,0 +va (VaSet +) +xt "46000,26600,78500,31400" +st "updatePeriodBitNb = updatePeriodBitNb ( positive ) +signalBitNb = signalBitNb ( positive ) +patternAddressBitNb = patternAddressBitNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*65 (SaComponent +uid 17559,0 +optionalChildren [ +*66 (CptPort +uid 17515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,14625,78000,15375" +) +tg (CPTG +uid 17517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17518,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,14400,81700,15600" +st "clock" +blo "79000,15300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*67 (CptPort +uid 17519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,625,78000,1375" +) +tg (CPTG +uid 17521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17522,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,400,80800,1600" +st "run" +blo "79000,1300" +) +) +thePort (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 17523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17524,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,625,94750,1375" +) +tg (CPTG +uid 17525,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17526,0 +va (VaSet +font "Arial,9,0" +) +xt "90701,400,93001,1600" +st "outX" +ju 2 +blo "93001,1300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*69 (CptPort +uid 17527,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17528,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,16625,78000,17375" +) +tg (CPTG +uid 17529,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17530,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,16400,81600,17600" +st "reset" +blo "79000,17300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*70 (CptPort +uid 17531,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17532,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,2625,94750,3375" +) +tg (CPTG +uid 17533,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17534,0 +va (VaSet +font "Arial,9,0" +) +xt "90501,2400,93001,3600" +st "outY" +ju 2 +blo "93001,3300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*71 (CptPort +uid 17535,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17536,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,6625,94750,7375" +) +tg (CPTG +uid 17537,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17538,0 +va (VaSet +font "Arial,9,0" +) +xt "88301,6400,93001,7600" +st "selSinCos" +ju 2 +blo "93001,7300" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +) +*72 (CptPort +uid 17539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17540,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,2625,78000,3375" +) +tg (CPTG +uid 17541,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17542,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,2400,85500,3600" +st "interpolateLin" +blo "79000,3300" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +) +*73 (CptPort +uid 17543,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17544,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,4625,78000,5375" +) +tg (CPTG +uid 17545,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17546,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,4400,85400,5600" +st "updatePeriod" +blo "79000,5300" +) +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +) +*74 (CptPort +uid 17547,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17548,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,8625,78000,9375" +) +tg (CPTG +uid 17549,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17550,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,8400,82100,9600" +st "memX" +blo "79000,9300" +) +) +thePort (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2016,0 +) +) +) +*75 (CptPort +uid 17551,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17552,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,10625,78000,11375" +) +tg (CPTG +uid 17553,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17554,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,10400,82300,11600" +st "memY" +blo "79000,11300" +) +) +thePort (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 2018,0 +) +) +) +*76 (CptPort +uid 17555,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17556,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,6625,78000,7375" +) +tg (CPTG +uid 17557,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17558,0 +va (VaSet +font "Arial,9,0" +) +xt "79000,6400,85300,7600" +st "newPolynom" +blo "79000,7300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +] +shape (Rectangle +uid 17560,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,-3000,94000,19000" +) +oxt "42000,9000,58000,31000" +ttg (MlTextGroup +uid 17561,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 17562,0 +va (VaSet +font "Arial,9,1" +) +xt "78600,18800,86300,19900" +st "SystemOnChip" +blo "78600,19700" +tm "BdLibraryNameMgr" +) +*78 (Text +uid 17563,0 +va (VaSet +font "Arial,9,1" +) +xt "78600,19700,88700,20800" +st "ahbBeamerOperator" +blo "78600,20600" +tm "CptNameMgr" +) +*79 (Text +uid 17564,0 +va (VaSet +font "Arial,9,1" +) +xt "78600,20600,81100,21700" +st "I_op" +blo "78600,21500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17565,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17566,0 +text (MLText +uid 17567,0 +va (VaSet +) +xt "78000,22600,108100,25000" +st "updatePeriodBitNb = updatePeriodBitNb ( positive ) +signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*80 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "94750,1000,102000,1000" +pts [ +"94750,1000" +"102000,1000" +] +) +start &68 +end &1 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Arial,12,0" +) +xt "99000,-400,102100,1100" +st "outX" +blo "99000,800" +tm "WireNameMgr" +) +) +on &2 +) +*81 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "94750,3000,102000,3000" +pts [ +"94750,3000" +"102000,3000" +] +) +start &70 +end &3 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Arial,12,0" +) +xt "99000,1600,102100,3100" +st "outY" +blo "99000,2800" +tm "WireNameMgr" +) +) +on &4 +) +*82 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "94750,7000,102000,7000" +pts [ +"102000,7000" +"94750,7000" +] +) +start &5 +end &71 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Arial,12,0" +) +xt "97000,5600,103500,7100" +st "selSinCos" +blo "97000,6800" +tm "WireNameMgr" +) +) +on &6 +) +*83 (Wire +uid 15203,0 +shape (OrthoPolyLine +uid 15204,0 +va (VaSet +vasetType 3 +) +xt "62750,1000,77250,1000" +pts [ +"62750,1000" +"77250,1000" +] +) +start &49 +end &67 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15205,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15206,0 +va (VaSet +font "Arial,12,0" +) +xt "64750,-400,67250,1100" +st "run" +blo "64750,800" +tm "WireNameMgr" +) +) +on &8 +) +*84 (Wire +uid 15209,0 +shape (OrthoPolyLine +uid 15210,0 +va (VaSet +vasetType 3 +) +xt "62750,3000,77250,3000" +pts [ +"62750,3000" +"77250,3000" +] +) +start &53 +end &72 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15211,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15212,0 +va (VaSet +font "Arial,12,0" +) +xt "64750,1600,73650,3100" +st "interpolateLin" +blo "64750,2800" +tm "WireNameMgr" +) +) +on &9 +) +*85 (Wire +uid 15215,0 +shape (OrthoPolyLine +uid 15216,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62750,5000,77250,5000" +pts [ +"62750,5000" +"77250,5000" +] +) +start &50 +end &73 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15217,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15218,0 +va (VaSet +font "Arial,12,0" +) +xt "64750,3600,73550,5100" +st "updatePeriod" +blo "64750,4800" +tm "WireNameMgr" +) +) +on &10 +) +*86 (Wire +uid 15464,0 +shape (OrthoPolyLine +uid 15465,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62750,9000,77250,9000" +pts [ +"62750,9000" +"77250,9000" +] +) +start &51 +end &74 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15467,0 +va (VaSet +font "Arial,12,0" +) +xt "64750,7600,69050,9100" +st "memX" +blo "64750,8800" +tm "WireNameMgr" +) +) +on &11 +) +*87 (Wire +uid 15470,0 +shape (OrthoPolyLine +uid 15471,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62750,11000,77250,11000" +pts [ +"62750,11000" +"77250,11000" +] +) +start &52 +end &75 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15472,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15473,0 +va (VaSet +font "Arial,12,0" +) +xt "64750,9600,69050,11100" +st "memY" +blo "64750,10800" +tm "WireNameMgr" +) +) +on &12 +) +*88 (Wire +uid 15576,0 +shape (OrthoPolyLine +uid 15577,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "54000,-7000,62000,-3750" +pts [ +"54000,-3750" +"54000,-7000" +"62000,-7000" +] +) +start &48 +end &14 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15580,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15581,0 +va (VaSet +font "Arial,12,0" +) +xt "57000,-8400,61600,-6900" +st "testOut" +blo "57000,-7200" +tm "WireNameMgr" +) +) +on &13 +) +*89 (Wire +uid 16105,0 +shape (OrthoPolyLine +uid 16106,0 +va (VaSet +vasetType 3 +) +xt "62750,7000,77250,7000" +pts [ +"62750,7000" +"77250,7000" +] +) +start &55 +end &76 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16107,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16108,0 +va (VaSet +font "Arial,12,0" +) +xt "64750,5600,73250,7100" +st "newPolynom" +blo "64750,6800" +tm "WireNameMgr" +) +) +on &19 +) +*90 (Wire +uid 16672,0 +shape (OrthoPolyLine +uid 16673,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "38000,1000,45250,1000" +pts [ +"38000,1000" +"45250,1000" +] +) +start &20 +end &46 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16676,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16677,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,-400,41900,1100" +st "hAddr" +blo "38000,800" +tm "WireNameMgr" +) +) +on &21 +) +*91 (Wire +uid 16735,0 +shape (OrthoPolyLine +uid 16736,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "38000,3000,45250,3000" +pts [ +"38000,3000" +"45250,3000" +] +) +start &22 +end &56 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16739,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16740,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,1600,43100,3100" +st "hWData" +blo "38000,2800" +tm "WireNameMgr" +) +) +on &23 +) +*92 (Wire +uid 16749,0 +shape (OrthoPolyLine +uid 16750,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "38000,11000,45250,11000" +pts [ +"45250,11000" +"38000,11000" +] +) +start &47 +end &24 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16753,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16754,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,9600,42900,11100" +st "hRData" +blo "38000,10800" +tm "WireNameMgr" +) +) +on &25 +) +*93 (Wire +uid 16763,0 +shape (OrthoPolyLine +uid 16764,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "38000,5000,45250,5000" +pts [ +"38000,5000" +"45250,5000" +] +) +start &26 +end &57 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16768,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,3600,42600,5100" +st "hTrans" +blo "38000,4800" +tm "WireNameMgr" +) +) +on &27 +) +*94 (Wire +uid 16777,0 +shape (OrthoPolyLine +uid 16778,0 +va (VaSet +vasetType 3 +) +xt "38000,7000,45250,7000" +pts [ +"38000,7000" +"45250,7000" +] +) +start &28 +end &58 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16781,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16782,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,5600,42200,7100" +st "hWrite" +blo "38000,6800" +tm "WireNameMgr" +) +) +on &29 +) +*95 (Wire +uid 16791,0 +shape (OrthoPolyLine +uid 16792,0 +va (VaSet +vasetType 3 +) +xt "38000,9000,45250,9000" +pts [ +"38000,9000" +"45250,9000" +] +) +start &30 +end &59 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16796,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,7600,41200,9100" +st "hSel" +blo "38000,8800" +tm "WireNameMgr" +) +) +on &31 +) +*96 (Wire +uid 16805,0 +shape (OrthoPolyLine +uid 16806,0 +va (VaSet +vasetType 3 +) +xt "38000,13000,45250,13000" +pts [ +"38000,13000" +"45250,13000" +] +) +start &39 +end &60 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16809,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16810,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,11600,42900,13100" +st "hReady" +blo "38000,12800" +tm "WireNameMgr" +) +) +on &32 +) +*97 (Wire +uid 16819,0 +shape (OrthoPolyLine +uid 16820,0 +va (VaSet +vasetType 3 +) +xt "38000,15000,45250,15000" +pts [ +"38000,15000" +"45250,15000" +] +) +start &38 +end &61 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16823,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16824,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,13600,42400,15100" +st "hResp" +blo "38000,14800" +tm "WireNameMgr" +) +) +on &33 +) +*98 (Wire +uid 16939,0 +shape (OrthoPolyLine +uid 16940,0 +va (VaSet +vasetType 3 +) +xt "38000,19000,45250,19000" +pts [ +"38000,19000" +"45250,19000" +] +) +start &34 +end &45 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16943,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16944,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,17600,41200,19100" +st "hClk" +blo "38000,18800" +tm "WireNameMgr" +) +) +on &35 +) +*99 (Wire +uid 16953,0 +shape (OrthoPolyLine +uid 16954,0 +va (VaSet +vasetType 3 +) +xt "38000,21000,45250,21000" +pts [ +"38000,21000" +"45250,21000" +] +) +start &36 +end &54 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16957,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16958,0 +va (VaSet +font "Arial,12,0" +) +xt "38000,19600,44100,21100" +st "hReset_n" +blo "38000,20800" +tm "WireNameMgr" +) +) +on &37 +) +*100 (Wire +uid 17118,0 +shape (OrthoPolyLine +uid 17119,0 +va (VaSet +vasetType 3 +) +xt "58000,25000,66000,25000" +pts [ +"58000,25000" +"66000,25000" +] +) +end &40 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17124,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17125,0 +va (VaSet +font "Arial,12,0" +) +xt "58000,23600,64100,25100" +st "hReset_n" +blo "58000,24800" +tm "WireNameMgr" +) +) +on &37 +) +*101 (Wire +uid 17126,0 +shape (OrthoPolyLine +uid 17127,0 +va (VaSet +vasetType 3 +) +xt "74000,17000,77250,25000" +pts [ +"77250,17000" +"76000,17000" +"76000,25000" +"74000,25000" +] +) +start &69 +end &40 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17132,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17133,0 +va (VaSet +font "Arial,12,0" +) +xt "73000,15600,76500,17100" +st "reset" +blo "73000,16800" +tm "WireNameMgr" +) +) +on &7 +) +*102 (Wire +uid 17242,0 +shape (OrthoPolyLine +uid 17243,0 +va (VaSet +vasetType 3 +) +xt "74000,15000,77250,15000" +pts [ +"74000,15000" +"77250,15000" +] +) +end &66 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17248,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17249,0 +va (VaSet +font "Arial,12,0" +) +xt "74000,13600,77200,15100" +st "hClk" +blo "74000,14800" +tm "WireNameMgr" +) +) +on &35 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *103 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +uid 43,0 +va (VaSet +font "Arial,8,1" +) +xt "0,-21000,5400,-20000" +st "Package List" +blo "0,-20200" +) +*105 (MLText +uid 44,0 +va (VaSet +) +xt "0,-20000,17500,-14000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*107 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*108 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*109 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*110 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*111 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*112 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1581,-24668,109793,35844" +cachedDiagramExtent "0,-23000,111500,31400" +pageSetupInfo (PageSetupInfo +ptrCmd "priPrinter,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-25000" +lastUid 17691,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*114 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*115 (Text +va (VaSet +font "Arial,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*116 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*117 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*118 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*119 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*120 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*121 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*123 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*124 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*126 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*127 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*128 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*129 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Arial,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Arial,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*130 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*131 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*132 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*133 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,-4000,5400,-3000" +st "Declarations" +blo "0,-3200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,-3000,2700,-2000" +st "Ports:" +blo "0,-2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,14800,3800,15800" +st "Pre User:" +blo "0,15600" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "2000,15800,27400,18200" +st "constant signalBitNb: positive := 16; +constant updatePeriodBitNb : positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "0,18200,7100,19200" +st "Diagram Signals:" +blo "0,19000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,-4000,4700,-3000" +st "Post User:" +blo "0,-3200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "0,-4000,0,-4000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 93,0 +usingSuid 1 +emptyRow *134 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*135 (RefLabelRowHdr +) +*136 (TitleRowHdr +) +*137 (FilterRowHdr +) +*138 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*139 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*140 (GroupColHdr +tm "GroupColHdrMgr" +) +*141 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*142 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*143 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*144 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*145 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*146 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*147 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +) +uid 10639,0 +) +*148 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 3 +suid 5,0 +) +) +uid 10641,0 +) +*149 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 62,0 +) +) +uid 10755,0 +) +*150 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 15 +suid 75,0 +) +) +uid 14982,0 +) +*151 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "run" +t "std_ulogic" +o 16 +suid 76,0 +) +) +uid 15219,0 +) +*152 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 17 +suid 77,0 +) +) +uid 15221,0 +) +*153 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 18 +suid 78,0 +) +) +uid 15223,0 +) +*154 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 19 +suid 79,0 +) +) +uid 15474,0 +) +*155 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 20 +suid 80,0 +) +) +uid 15476,0 +) +*156 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 6 +suid 81,0 +) +) +uid 15588,0 +) +*157 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 21 +suid 83,0 +) +) +uid 16109,0 +) +*158 (LeafLogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 2 +suid 84,0 +) +) +uid 16665,0 +) +*159 (LeafLogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 4 +suid 85,0 +) +) +uid 16716,0 +) +*160 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 7 +suid 86,0 +) +) +uid 16718,0 +) +*161 (LeafLogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 8 +suid 87,0 +) +) +uid 16720,0 +) +*162 (LeafLogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 9 +suid 88,0 +) +) +uid 16722,0 +) +*163 (LeafLogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 10 +suid 89,0 +) +) +uid 16724,0 +) +*164 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 11 +suid 90,0 +) +) +uid 16726,0 +) +*165 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 12 +suid 91,0 +) +) +uid 16728,0 +) +*166 (LeafLogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 13 +suid 92,0 +) +) +uid 16930,0 +) +*167 (LeafLogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 14 +suid 93,0 +) +) +uid 16932,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*168 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *169 (MRCItem +litem &134 +pos 21 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*170 (MRCItem +litem &135 +pos 0 +dimension 20 +uid 10790,0 +) +*171 (MRCItem +litem &136 +pos 1 +dimension 23 +uid 10791,0 +) +*172 (MRCItem +litem &137 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*173 (MRCItem +litem &147 +pos 1 +dimension 20 +uid 10640,0 +) +*174 (MRCItem +litem &148 +pos 2 +dimension 20 +uid 10642,0 +) +*175 (MRCItem +litem &149 +pos 5 +dimension 20 +uid 10756,0 +) +*176 (MRCItem +litem &150 +pos 14 +dimension 20 +uid 14983,0 +) +*177 (MRCItem +litem &151 +pos 15 +dimension 20 +uid 15220,0 +) +*178 (MRCItem +litem &152 +pos 16 +dimension 20 +uid 15222,0 +) +*179 (MRCItem +litem &153 +pos 17 +dimension 20 +uid 15224,0 +) +*180 (MRCItem +litem &154 +pos 18 +dimension 20 +uid 15475,0 +) +*181 (MRCItem +litem &155 +pos 19 +dimension 20 +uid 15477,0 +) +*182 (MRCItem +litem &156 +pos 7 +dimension 20 +uid 15589,0 +) +*183 (MRCItem +litem &157 +pos 20 +dimension 20 +uid 16110,0 +) +*184 (MRCItem +litem &158 +pos 0 +dimension 20 +uid 16664,0 +) +*185 (MRCItem +litem &159 +pos 4 +dimension 20 +uid 16715,0 +) +*186 (MRCItem +litem &160 +pos 8 +dimension 20 +uid 16717,0 +) +*187 (MRCItem +litem &161 +pos 9 +dimension 20 +uid 16719,0 +) +*188 (MRCItem +litem &162 +pos 10 +dimension 20 +uid 16721,0 +) +*189 (MRCItem +litem &163 +pos 11 +dimension 20 +uid 16723,0 +) +*190 (MRCItem +litem &164 +pos 12 +dimension 20 +uid 16725,0 +) +*191 (MRCItem +litem &165 +pos 13 +dimension 20 +uid 16727,0 +) +*192 (MRCItem +litem &166 +pos 6 +dimension 20 +uid 16929,0 +) +*193 (MRCItem +litem &167 +pos 3 +dimension 20 +uid 16931,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*194 (MRCItem +litem &138 +pos 0 +dimension 20 +uid 10794,0 +) +*195 (MRCItem +litem &140 +pos 1 +dimension 50 +uid 10795,0 +) +*196 (MRCItem +litem &141 +pos 2 +dimension 100 +uid 10796,0 +) +*197 (MRCItem +litem &142 +pos 3 +dimension 50 +uid 10797,0 +) +*198 (MRCItem +litem &143 +pos 4 +dimension 100 +uid 10798,0 +) +*199 (MRCItem +litem &144 +pos 5 +dimension 100 +uid 10799,0 +) +*200 (MRCItem +litem &145 +pos 6 +dimension 50 +uid 10800,0 +) +*201 (MRCItem +litem &146 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *202 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*203 (RefLabelRowHdr +) +*204 (TitleRowHdr +) +*205 (FilterRowHdr +) +*206 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*207 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*208 (GroupColHdr +tm "GroupColHdrMgr" +) +*209 (NameColHdr +tm "GenericNameColHdrMgr" +) +*210 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*211 (InitColHdr +tm "GenericValueColHdrMgr" +) +*212 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*213 (EolColHdr +tm "GenericEolColHdrMgr" +) +*214 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 12900,0 +) +*215 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "9" +) +uid 17313,0 +) +] +) +pdm (PhysicalDM +uid 10815,0 +optionalChildren [ +*216 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *217 (MRCItem +litem &202 +pos 2 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*218 (MRCItem +litem &203 +pos 0 +dimension 20 +uid 10818,0 +) +*219 (MRCItem +litem &204 +pos 1 +dimension 23 +uid 10819,0 +) +*220 (MRCItem +litem &205 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*221 (MRCItem +litem &214 +pos 1 +dimension 20 +uid 12899,0 +) +*222 (MRCItem +litem &215 +pos 0 +dimension 20 +uid 17312,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*223 (MRCItem +litem &206 +pos 0 +dimension 20 +uid 10822,0 +) +*224 (MRCItem +litem &208 +pos 1 +dimension 50 +uid 10823,0 +) +*225 (MRCItem +litem &209 +pos 2 +dimension 100 +uid 10824,0 +) +*226 (MRCItem +litem &210 +pos 3 +dimension 100 +uid 10825,0 +) +*227 (MRCItem +litem &211 +pos 4 +dimension 50 +uid 10826,0 +) +*228 (MRCItem +litem &212 +pos 5 +dimension 50 +uid 10827,0 +) +*229 (MRCItem +litem &213 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/symbol.sb new file mode 100644 index 0000000..9690a0f --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer/symbol.sb @@ -0,0 +1,2247 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2020,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 203,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +uid 204,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 13 +suid 1,0 +) +) +uid 206,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 4 +suid 11,0 +) +) +uid 207,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 2 +suid 2,0 +) +) +uid 209,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 3 +suid 5,0 +) +) +uid 210,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 14 +suid 4,0 +) +) +uid 211,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 6 +suid 2014,0 +) +) +uid 548,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 7 +suid 2015,0 +) +) +uid 745,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 8 +suid 2016,0 +) +) +uid 747,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 9 +suid 2017,0 +) +) +uid 749,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 10 +suid 2018,0 +) +) +uid 751,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +uid 753,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 12 +suid 2020,0 +) +) +uid 755,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*28 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *29 (MRCItem +litem &1 +pos 14 +dimension 20 +) +uid 132,0 +optionalChildren [ +*30 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 135,0 +) +*31 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 137,0 +) +*32 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*33 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 159,0 +) +*34 (MRCItem +litem &3 +pos 5 +dimension 20 +uid 160,0 +) +*35 (MRCItem +litem &4 +pos 6 +dimension 20 +uid 162,0 +) +*36 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 163,0 +) +*37 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 165,0 +) +*38 (MRCItem +litem &7 +pos 2 +dimension 20 +uid 166,0 +) +*39 (MRCItem +litem &8 +pos 3 +dimension 20 +uid 167,0 +) +*40 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 547,0 +) +*41 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 746,0 +) +*42 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 748,0 +) +*43 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 750,0 +) +*44 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 752,0 +) +*45 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 754,0 +) +*46 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 756,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*47 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 141,0 +) +*48 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 145,0 +) +*49 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 147,0 +) +*50 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 149,0 +) +*51 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 151,0 +) +*52 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 153,0 +) +*53 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 155,0 +) +*54 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *55 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*56 (RefLabelRowHdr +) +*57 (TitleRowHdr +) +*58 (FilterRowHdr +) +*59 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*60 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*61 (GroupColHdr +tm "GroupColHdrMgr" +) +*62 (NameColHdr +tm "GenericNameColHdrMgr" +) +*63 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*64 (InitColHdr +tm "GenericValueColHdrMgr" +) +*65 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*66 (EolColHdr +tm "GenericEolColHdrMgr" +) +*67 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 197,0 +) +*68 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "9" +) +uid 476,0 +) +] +) +pdm (PhysicalDM +uid 218,0 +optionalChildren [ +*69 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *70 (MRCItem +litem &55 +pos 2 +dimension 20 +) +uid 172,0 +optionalChildren [ +*71 (MRCItem +litem &56 +pos 0 +dimension 20 +uid 175,0 +) +*72 (MRCItem +litem &57 +pos 1 +dimension 23 +uid 177,0 +) +*73 (MRCItem +litem &58 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*74 (MRCItem +litem &67 +pos 1 +dimension 20 +uid 199,0 +) +*75 (MRCItem +litem &68 +pos 0 +dimension 20 +uid 477,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*76 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 181,0 +) +*77 (MRCItem +litem &61 +pos 1 +dimension 50 +uid 185,0 +) +*78 (MRCItem +litem &62 +pos 2 +dimension 100 +uid 187,0 +) +*79 (MRCItem +litem &63 +pos 3 +dimension 100 +uid 189,0 +) +*80 (MRCItem +litem &64 +pos 4 +dimension 50 +uid 191,0 +) +*81 (MRCItem +litem &65 +pos 5 +dimension 50 +uid 193,0 +) +*82 (MRCItem +litem &66 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamer" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:22" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbBeamer" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamer/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:22" +) +(vvPair +variable "unit" +value "ahbBeamer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*83 (SymbolBody +uid 8,0 +optionalChildren [ +*84 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,27625,43000,28375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "44000,27400,46000,28300" +st "hClk" +blo "44000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20200,18500,21100" +st "hClk : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 13 +suid 1,0 +) +) +) +*85 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,9625,43000,10375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "44000,9400,46500,10300" +st "hAddr" +blo "44000,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,31500,11200" +st "hAddr : IN unsigned (ahbAddressBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 2 +suid 2,0 +) +) +) +*86 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,9625,59750,10375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "56001,9400,58001,10300" +st "outX" +ju 2 +blo "58001,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,18500,10300" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*87 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,29625,43000,30375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "44000,29400,48000,30300" +st "hReset_n" +blo "44000,30100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,21100,17500,22000" +st "hReset_n : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 14 +suid 4,0 +) +) +) +*88 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,11625,59750,12375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "56001,11400,58001,12300" +st "outY" +ju 2 +blo "58001,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,18500,12100" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 3 +suid 5,0 +) +) +) +*89 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 780,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,11625,43000,12375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "courier,9,0" +) +xt "44000,11400,47000,12300" +st "hWData" +blo "44000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,34500,13000" +st "hWData : IN std_ulogic_vector (ahbDataBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 4 +suid 11,0 +) +) +) +*90 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,15625,59750,16375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "53501,15400,58001,16300" +st "selSinCos" +ju 2 +blo "58001,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,18500,13900" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*91 (CptPort +uid 549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,27625,59750,28375" +) +tg (CPTG +uid 551,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 552,0 +va (VaSet +font "courier,9,0" +) +xt "54500,27400,58000,28300" +st "testOut" +ju 2 +blo "58000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 553,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,31500,14800" +st "testOut : OUT std_ulogic_vector (1 TO testOutBitNb) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 6 +suid 2014,0 +) +) +) +*92 (CptPort +uid 715,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 716,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,19625,43000,20375" +) +tg (CPTG +uid 717,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 718,0 +va (VaSet +font "courier,9,0" +) +xt "44000,19400,47000,20300" +st "hRData" +blo "44000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 719,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,34500,15700" +st "hRData : OUT std_ulogic_vector (ahbDataBitNb-1 downto 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 7 +suid 2015,0 +) +) +) +*93 (CptPort +uid 720,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 721,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,13625,43000,14375" +) +tg (CPTG +uid 722,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 723,0 +va (VaSet +font "courier,9,0" +) +xt "44000,13400,47000,14300" +st "hTrans" +blo "44000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 724,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,35000,16600" +st "hTrans : IN std_ulogic_vector (ahbTransBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 8 +suid 2016,0 +) +) +) +*94 (CptPort +uid 725,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 726,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,15625,43000,16375" +) +tg (CPTG +uid 727,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 728,0 +va (VaSet +font "courier,9,0" +) +xt "44000,15400,47000,16300" +st "hWrite" +blo "44000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 729,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16600,18500,17500" +st "hWrite : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 9 +suid 2017,0 +) +) +) +*95 (CptPort +uid 730,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 731,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,17625,43000,18375" +) +tg (CPTG +uid 732,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 733,0 +va (VaSet +font "courier,9,0" +) +xt "44000,17400,46000,18300" +st "hSel" +blo "44000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 734,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17500,18500,18400" +st "hSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 10 +suid 2018,0 +) +) +) +*96 (CptPort +uid 735,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 850,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,21625,43000,22375" +) +tg (CPTG +uid 737,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 738,0 +va (VaSet +font "courier,9,0" +) +xt "44000,21400,47000,22300" +st "hReady" +blo "44000,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 739,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18400,18500,19300" +st "hReady : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +*97 (CptPort +uid 740,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 851,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,23625,43000,24375" +) +tg (CPTG +uid 742,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 743,0 +va (VaSet +font "courier,9,0" +) +xt "44000,23400,46500,24300" +st "hResp" +blo "44000,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 744,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19300,18500,20200" +st "hResp : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 12 +suid 2020,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,6000,59000,32000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "43600,31800,50100,32700" +st "SystemOnChip" +blo "43600,32500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "43600,32700,48100,33600" +st "ahbBeamer" +blo "43600,33400" +) +) +gi *98 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "43000,35600,60000,39200" +st "Generic Declarations + +patternAddressBitNb positive 9 +testOutBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "9" +) +(GiElement +name "testOutBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*99 (Grouping +uid 16,0 +optionalChildren [ +*100 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*101 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*102 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*103 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*104 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*105 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*106 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*107 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*108 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*109 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *110 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*112 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "95,33,1373,883" +viewArea "-1000,-1000,75248,49976" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *113 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *114 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7600,6500,8500" +st "Declarations" +blo "0,8300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8500,3000,9400" +st "Ports:" +blo "0,9200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,22000,2500,22900" +st "User:" +blo "0,22700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7600,7500,8500" +st "Internal User:" +blo "0,8300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22900,2000,22900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7600,0,7600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 874,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/struct.bd new file mode 100644 index 0000000..ae0e381 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/struct.bd @@ -0,0 +1,25722 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I0" +duLibraryName "Curves" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 472,0 +) +(Instance +name "I10" +duLibraryName "Curves" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 513,0 +) +(Instance +name "I14" +duLibraryName "Curves" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 725,0 +) +(Instance +name "I1" +duLibraryName "Curves" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 742,0 +) +(Instance +name "I3" +duLibraryName "Curves" +duName "periphSpeedReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1816,0 +) +(Instance +name "I5" +duLibraryName "Curves" +duName "periphSizeReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1853,0 +) +(Instance +name "I6" +duLibraryName "Curves" +duName "interpolatorTrigger" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 1919,0 +) +(Instance +name "I18" +duLibraryName "Curves" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +mwi 0 +uid 3378,0 +) +(Instance +name "I15" +duLibraryName "Curves" +duName "periphSpeedController" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 3623,0 +) +(Instance +name "I20" +duLibraryName "Curves" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +mwi 0 +uid 3681,0 +) +(Instance +name "I22" +duLibraryName "Curves" +duName "periphWritePulse" +elements [ +] +mwi 0 +uid 4245,0 +) +(Instance +name "I23" +duLibraryName "Curves" +duName "periphWritePulse" +elements [ +] +mwi 0 +uid 4300,0 +) +(Instance +name "I24" +duLibraryName "Curves" +duName "sawtoothGen" +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 4923,0 +) +(Instance +name "I25" +duLibraryName "Curves" +duName "sinCosTable" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +mwi 0 +uid 5956,0 +) +(Instance +name "I26" +duLibraryName "sequential" +duName "registerULogicVector" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 7019,0 +) +(Instance +name "I27" +duLibraryName "sequential" +duName "registerUnsigned" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 7075,0 +) +(Instance +name "I28" +duLibraryName "Curves" +duName "periphWritePulse" +elements [ +] +mwi 0 +uid 7695,0 +) +(Instance +name "I29" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 7770,0 +) +(Instance +name "I4" +duLibraryName "Curves" +duName "periphControlReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 8139,0 +) +(Instance +name "I8" +duLibraryName "Curves" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 8192,0 +) +(Instance +name "I12" +duLibraryName "Curves" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 8237,0 +) +(Instance +name "I21" +duLibraryName "Curves" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 8656,0 +) +(Instance +name "I16" +duLibraryName "Curves" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 8693,0 +) +(Instance +name "I11" +duLibraryName "Curves" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 9102,0 +) +(Instance +name "I7" +duLibraryName "Curves" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 9143,0 +) +(Instance +name "I13" +duLibraryName "Curves" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 9190,0 +) +(Instance +name "I9" +duLibraryName "Curves" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 9235,0 +) +(Instance +name "I30" +duLibraryName "Curves" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +mwi 0 +uid 10416,0 +) +(Instance +name "I32" +duLibraryName "Curves" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 10494,0 +) +(Instance +name "I2" +duLibraryName "Curves" +duName "periphAddressDecoder" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 10651,0 +) +(Instance +name "I19" +duLibraryName "Curves" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11389,0 +) +(Instance +name "I17" +duLibraryName "Curves" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11434,0 +) +(Instance +name "I31" +duLibraryName "Curves" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11479,0 +) +(Instance +name "I33" +duLibraryName "Curves" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11488,0 +) +(Instance +name "I34" +duLibraryName "Curves" +duName "dacInterface" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11858,0 +) +(Instance +name "I35" +duLibraryName "Curves" +duName "dacInterface" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11943,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb3" +number "3" +) +(EmbeddedInstance +name "eb4" +number "4" +) +(EmbeddedInstance +name "eb5" +number "5" +) +(EmbeddedInstance +name "eb6" +number "6" +) +(EmbeddedInstance +name "eb7" +number "7" +) +(EmbeddedInstance +name "eb8" +number "8" +) +(EmbeddedInstance +name "eb9" +number "9" +) +(EmbeddedInstance +name "eb10" +number "10" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@blanking\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@blanking\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@blanking" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerBlanking" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerBlanking" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:00:37" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbBeamerBlanking" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@blanking\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerBlanking\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:00:37" +) +(vvPair +variable "unit" +value "ahbBeamerBlanking" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,197000,274000,198000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,197500,257200,197500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,193000,278000,194000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,193500,274200,193500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,195000,274000,196000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,195500,257200,195500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,195000,257000,196000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,195500,253200,195500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,194000,294000,198000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,194200,288300,195400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "278000,193000,294000,194000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "278200,193500,278200,193500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,193000,274000,195000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "258350,193400,268650,194600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,196000,257000,197000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,196500,253200,196500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,197000,257000,198000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,197500,253200,197500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,196000,274000,197000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,196500,257200,196500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "253000,193000,294000,198000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 53,0 +shape (CompositeShape +uid 54,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 55,0 +sl 0 +ro 270 +xt "1000,31625,2500,32375" +) +(Line +uid 56,0 +sl 0 +ro 270 +xt "2500,32000,3000,32000" +pts [ +"2500,32000" +"3000,32000" +] +) +] +) +tg (WTG +uid 57,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 58,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-24700,31300,0,32700" +st "addr : (addressBitNb-1 DOWNTO 0)" +ju 2 +blo "0,32500" +tm "WireNameMgr" +) +) +) +*13 (Net +uid 65,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 1,0 +) +declText (MLText +uid 66,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,3100,238600,4100" +st "addr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*14 (PortIoIn +uid 67,0 +shape (CompositeShape +uid 68,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 69,0 +sl 0 +ro 270 +xt "69000,23625,70500,24375" +) +(Line +uid 70,0 +sl 0 +ro 270 +xt "70500,24000,71000,24000" +pts [ +"70500,24000" +"71000,24000" +] +) +] +) +tg (WTG +uid 71,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 72,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "64200,23300,68000,24700" +st "clock" +ju 2 +blo "68000,24500" +tm "WireNameMgr" +) +) +) +*15 (Net +uid 79,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +declText (MLText +uid 80,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,4000,226700,5000" +st "clock : std_ulogic" +) +) +*16 (PortIoIn +uid 81,0 +shape (CompositeShape +uid 82,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 83,0 +sl 0 +ro 270 +xt "17000,59625,18500,60375" +) +(Line +uid 84,0 +sl 0 +ro 270 +xt "18500,60000,19000,60000" +pts [ +"18500,60000" +"19000,60000" +] +) +] +) +tg (WTG +uid 85,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 86,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13900,59300,16000,60700" +st "cs" +ju 2 +blo "16000,60500" +tm "WireNameMgr" +) +) +) +*17 (Net +uid 93,0 +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 3,0 +) +declText (MLText +uid 94,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,9400,226400,10400" +st "cs : std_ulogic" +) +) +*18 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "289500,153625,291000,154375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "289000,154000,289500,154000" +pts [ +"289000,154000" +"289500,154000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,153300,295700,154700" +st "outX" +blo "292000,154500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,2200,226800,3200" +st "outX : std_ulogic" +) +) +*20 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "289500,116625,291000,117375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "289000,117000,289500,117000" +pts [ +"289000,117000" +"289500,117000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,116300,295600,117700" +st "outY" +blo "292000,117500" +tm "WireNameMgr" +) +) +) +*21 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,5800,226800,6800" +st "outY : std_ulogic" +) +) +*22 (PortIoIn +uid 137,0 +shape (CompositeShape +uid 138,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 139,0 +sl 0 +ro 270 +xt "17000,95625,18500,96375" +) +(Line +uid 140,0 +sl 0 +ro 270 +xt "18500,96000,19000,96000" +pts [ +"18500,96000" +"19000,96000" +] +) +] +) +tg (WTG +uid 141,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 142,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13900,95300,16000,96700" +st "rd" +ju 2 +blo "16000,96500" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 149,0 +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 6,0 +) +declText (MLText +uid 150,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,7600,226400,8600" +st "rd : std_ulogic" +) +) +*24 (PortIoIn +uid 151,0 +shape (CompositeShape +uid 152,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 153,0 +sl 0 +ro 270 +xt "69000,25625,70500,26375" +) +(Line +uid 154,0 +sl 0 +ro 270 +xt "70500,26000,71000,26000" +pts [ +"70500,26000" +"71000,26000" +] +) +] +) +tg (WTG +uid 155,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 156,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "63900,25300,68000,26700" +st "reset" +ju 2 +blo "68000,26500" +tm "WireNameMgr" +) +) +) +*25 (Net +uid 163,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +declText (MLText +uid 164,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,4900,226700,5900" +st "reset : std_ulogic" +) +) +*26 (PortIoIn +uid 165,0 +shape (CompositeShape +uid 166,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 167,0 +sl 0 +ro 270 +xt "17000,57625,18500,58375" +) +(Line +uid 168,0 +sl 0 +ro 270 +xt "18500,58000,19000,58000" +pts [ +"18500,58000" +"19000,58000" +] +) +] +) +tg (WTG +uid 169,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 170,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "12700,57300,16000,58700" +st "wrH" +ju 2 +blo "16000,58500" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 177,0 +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +declText (MLText +uid 178,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,8500,226900,9500" +st "wrH : std_ulogic" +) +) +*28 (PortIoIn +uid 179,0 +shape (CompositeShape +uid 180,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 181,0 +sl 0 +ro 270 +xt "17000,79625,18500,80375" +) +(Line +uid 182,0 +sl 0 +ro 270 +xt "18500,80000,19000,80000" +pts [ +"18500,80000" +"19000,80000" +] +) +] +) +tg (WTG +uid 183,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 184,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "12900,79300,16000,80700" +st "wrL" +ju 2 +blo "16000,80500" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 191,0 +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 9,0 +) +declText (MLText +uid 192,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,10300,226700,11300" +st "wrL : std_ulogic" +) +) +*30 (Net +uid 436,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 52 +suid 10,0 +) +declText (MLText +uid 437,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,56200,231600,57200" +st "SIGNAL newPolynom : std_ulogic" +) +) +*31 (SaComponent +uid 472,0 +optionalChildren [ +*32 (CptPort +uid 456,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 457,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,157625,265000,158375" +) +tg (CPTG +uid 458,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 459,0 +va (VaSet +) +xt "266000,157400,269400,158600" +st "clock" +blo "266000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*33 (CptPort +uid 460,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 461,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,153625,265000,154375" +) +tg (CPTG +uid 462,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 463,0 +va (VaSet +) +xt "266000,153400,272200,154600" +st "parallelIn" +blo "266000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*34 (CptPort +uid 464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 465,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,153625,281750,154375" +) +tg (CPTG +uid 466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 467,0 +va (VaSet +) +xt "274601,153400,280001,154600" +st "serialOut" +ju 2 +blo "280001,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +) +) +) +*35 (CptPort +uid 468,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 469,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,159625,265000,160375" +) +tg (CPTG +uid 470,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 471,0 +va (VaSet +) +xt "266000,159400,269300,160600" +st "reset" +blo "266000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 473,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,150000,281000,162000" +) +oxt "114000,86000,130000,98000" +ttg (MlTextGroup +uid 474,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 475,0 +va (VaSet +) +xt "265600,161800,269900,163000" +st "Curves" +blo "265600,162800" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 476,0 +va (VaSet +) +xt "265600,162800,268700,164000" +st "DAC" +blo "265600,163800" +tm "CptNameMgr" +) +*38 (Text +uid 477,0 +va (VaSet +) +xt "265600,163800,267500,165000" +st "I0" +blo "265600,164800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 478,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 479,0 +text (MLText +uid 480,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,165600,283100,166600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*39 (SaComponent +uid 513,0 +optionalChildren [ +*40 (CptPort +uid 522,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 523,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,153625,257750,154375" +) +tg (CPTG +uid 524,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 525,0 +va (VaSet +) +xt "248200,153400,256000,154600" +st "unsignedOut" +ju 2 +blo "256000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*41 (CptPort +uid 526,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 527,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,153625,241000,154375" +) +tg (CPTG +uid 528,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 529,0 +va (VaSet +) +xt "242000,153400,247100,154600" +st "signedIn" +blo "242000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +] +shape (Rectangle +uid 514,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,150000,257000,158000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 515,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 516,0 +va (VaSet +) +xt "241600,158800,245900,160000" +st "Curves" +blo "241600,159800" +tm "BdLibraryNameMgr" +) +*43 (Text +uid 517,0 +va (VaSet +) +xt "241600,159800,251800,161000" +st "offsetToUnsigned" +blo "241600,160800" +tm "CptNameMgr" +) +*44 (Text +uid 518,0 +va (VaSet +) +xt "241600,160800,244200,162000" +st "I10" +blo "241600,161800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 519,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 520,0 +text (MLText +uid 521,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,161800,256300,162800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*45 (Net +uid 542,0 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 56 +suid 11,0 +) +declText (MLText +uid 543,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,59800,240700,60800" +st "SIGNAL sampleX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*46 (Net +uid 544,0 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 79 +suid 12,0 +) +declText (MLText +uid 545,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,80500,241800,81500" +st "SIGNAL unsignedX : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*47 (Net +uid 546,0 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 68 +suid 13,0 +) +declText (MLText +uid 547,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,70600,240800,71600" +st "SIGNAL samplesX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*48 (Net +uid 548,0 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 57 +suid 14,0 +) +declText (MLText +uid 549,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,60700,240900,61700" +st "SIGNAL sampleX1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*49 (Net +uid 550,0 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 58 +suid 15,0 +) +declText (MLText +uid 551,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,61600,240900,62600" +st "SIGNAL sampleX2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*50 (Net +uid 552,0 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 59 +suid 16,0 +) +declText (MLText +uid 553,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,62500,240900,63500" +st "SIGNAL sampleX3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*51 (Net +uid 554,0 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 60 +suid 17,0 +) +declText (MLText +uid 555,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,63400,240900,64400" +st "SIGNAL sampleX4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*52 (Net +uid 556,0 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 21 +suid 18,0 +) +declText (MLText +uid 557,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,28300,239500,29300" +st "SIGNAL aX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*53 (Net +uid 558,0 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 27 +suid 19,0 +) +declText (MLText +uid 559,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,33700,239500,34700" +st "SIGNAL bX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*54 (Net +uid 560,0 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 29 +suid 20,0 +) +declText (MLText +uid 561,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,35500,239400,36500" +st "SIGNAL cX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*55 (Net +uid 562,0 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 35 +suid 21,0 +) +declText (MLText +uid 563,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,40900,239500,41900" +st "SIGNAL dX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*56 (SaComponent +uid 725,0 +optionalChildren [ +*57 (CptPort +uid 734,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 735,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,116625,257750,117375" +) +tg (CPTG +uid 736,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 737,0 +va (VaSet +) +xt "248200,116400,256000,117600" +st "unsignedOut" +ju 2 +blo "256000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*58 (CptPort +uid 738,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 739,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,116625,241000,117375" +) +tg (CPTG +uid 740,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 741,0 +va (VaSet +) +xt "242000,116400,247100,117600" +st "signedIn" +blo "242000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +] +shape (Rectangle +uid 726,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,113000,257000,121000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 727,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 728,0 +va (VaSet +) +xt "241600,121800,245900,123000" +st "Curves" +blo "241600,122800" +tm "BdLibraryNameMgr" +) +*60 (Text +uid 729,0 +va (VaSet +) +xt "241600,122800,251800,124000" +st "offsetToUnsigned" +blo "241600,123800" +tm "CptNameMgr" +) +*61 (Text +uid 730,0 +va (VaSet +) +xt "241600,123800,244200,125000" +st "I14" +blo "241600,124800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 731,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 732,0 +text (MLText +uid 733,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,124800,256300,125800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*62 (SaComponent +uid 742,0 +optionalChildren [ +*63 (CptPort +uid 751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,120625,265000,121375" +) +tg (CPTG +uid 753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 754,0 +va (VaSet +) +xt "266000,120400,269400,121600" +st "clock" +blo "266000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*64 (CptPort +uid 755,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 756,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,116625,265000,117375" +) +tg (CPTG +uid 757,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 758,0 +va (VaSet +) +xt "266000,116400,272200,117600" +st "parallelIn" +blo "266000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*65 (CptPort +uid 759,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 760,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,116625,281750,117375" +) +tg (CPTG +uid 761,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 762,0 +va (VaSet +) +xt "274601,116400,280001,117600" +st "serialOut" +ju 2 +blo "280001,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +) +) +) +*66 (CptPort +uid 763,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 764,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,122625,265000,123375" +) +tg (CPTG +uid 765,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 766,0 +va (VaSet +) +xt "266000,122400,269300,123600" +st "reset" +blo "266000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 743,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,113000,281000,125000" +) +oxt "114000,86000,130000,98000" +ttg (MlTextGroup +uid 744,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 745,0 +va (VaSet +) +xt "265600,124800,269900,126000" +st "Curves" +blo "265600,125800" +tm "BdLibraryNameMgr" +) +*68 (Text +uid 746,0 +va (VaSet +) +xt "265600,125800,268700,127000" +st "DAC" +blo "265600,126800" +tm "CptNameMgr" +) +*69 (Text +uid 747,0 +va (VaSet +) +xt "265600,126800,267500,128000" +st "I1" +blo "265600,127800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 748,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 749,0 +text (MLText +uid 750,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,128600,283100,129600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*70 (Net +uid 865,0 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 69 +suid 22,0 +) +declText (MLText +uid 866,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,71500,240800,72500" +st "SIGNAL samplesY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*71 (Net +uid 867,0 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 62 +suid 23,0 +) +declText (MLText +uid 868,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,65200,240900,66200" +st "SIGNAL sampleY1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*72 (Net +uid 869,0 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 63 +suid 24,0 +) +declText (MLText +uid 870,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,66100,240900,67100" +st "SIGNAL sampleY2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*73 (Net +uid 871,0 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 64 +suid 25,0 +) +declText (MLText +uid 872,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,67000,240900,68000" +st "SIGNAL sampleY3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*74 (Net +uid 873,0 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 65 +suid 26,0 +) +declText (MLText +uid 874,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,67900,240900,68900" +st "SIGNAL sampleY4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*75 (Net +uid 875,0 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 22 +suid 27,0 +) +declText (MLText +uid 876,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,29200,239500,30200" +st "SIGNAL aY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*76 (Net +uid 877,0 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 28 +suid 28,0 +) +declText (MLText +uid 878,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,34600,239500,35600" +st "SIGNAL bY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*77 (Net +uid 879,0 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 30 +suid 29,0 +) +declText (MLText +uid 880,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,36400,239400,37400" +st "SIGNAL cY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*78 (Net +uid 881,0 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 36 +suid 30,0 +) +declText (MLText +uid 882,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,41800,239500,42800" +st "SIGNAL dY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*79 (Net +uid 883,0 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 61 +suid 31,0 +) +declText (MLText +uid 884,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,64300,240700,65300" +st "SIGNAL sampleY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*80 (Net +uid 885,0 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 80 +suid 32,0 +) +declText (MLText +uid 886,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,81400,241800,82400" +st "SIGNAL unsignedY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*81 (Net +uid 990,0 +decl (Decl +n "selControl" +t "std_ulogic" +o 71 +suid 33,0 +) +declText (MLText +uid 991,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,73300,230400,74300" +st "SIGNAL selControl : std_ulogic" +) +) +*82 (Net +uid 1047,0 +decl (Decl +n "selSize" +t "std_ulogic" +o 72 +suid 34,0 +) +declText (MLText +uid 1048,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,74200,230000,75200" +st "SIGNAL selSize : std_ulogic" +) +) +*83 (Net +uid 1055,0 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 73 +suid 35,0 +) +declText (MLText +uid 1056,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,75100,230600,76100" +st "SIGNAL selSpeed : std_ulogic" +) +) +*84 (Net +uid 1063,0 +decl (Decl +n "selX" +t "std_ulogic" +o 74 +suid 36,0 +) +declText (MLText +uid 1064,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,76000,229800,77000" +st "SIGNAL selX : std_ulogic" +) +) +*85 (Net +uid 1071,0 +decl (Decl +n "selY" +t "std_ulogic" +o 75 +suid 37,0 +) +declText (MLText +uid 1072,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,76900,229800,77900" +st "SIGNAL selY : std_ulogic" +) +) +*86 (Net +uid 1348,0 +decl (Decl +n "run" +t "std_ulogic" +o 55 +suid 38,0 +) +declText (MLText +uid 1349,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,58900,229800,59900" +st "SIGNAL run : std_ulogic" +) +) +*87 (Net +uid 1356,0 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 81 +suid 39,0 +) +declText (MLText +uid 1357,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,82300,231200,83300" +st "SIGNAL updatePattern : std_ulogic" +) +) +*88 (Net +uid 1470,0 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 53 +suid 40,0 +) +declText (MLText +uid 1471,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,57100,242000,58100" +st "SIGNAL patternSize : unsigned(dataBitNb/2-1 DOWNTO 0)" +) +) +*89 (PortIoIn +uid 1565,0 +shape (CompositeShape +uid 1566,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1567,0 +sl 0 +ro 270 +xt "17000,9625,18500,10375" +) +(Line +uid 1568,0 +sl 0 +ro 270 +xt "18500,10000,19000,10000" +pts [ +"18500,10000" +"19000,10000" +] +) +] +) +tg (WTG +uid 1569,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1570,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-7800,9300,16000,10700" +st "dataIn : (dataBitNb-1 DOWNTO 0)" +ju 2 +blo "16000,10500" +tm "WireNameMgr" +) +) +) +*90 (PortIoOut +uid 1577,0 +shape (CompositeShape +uid 1578,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1579,0 +sl 0 +ro 90 +xt "17000,3625,18500,4375" +) +(Line +uid 1580,0 +sl 0 +ro 90 +xt "18500,4000,19000,4000" +pts [ +"19000,4000" +"18500,4000" +] +) +] +) +tg (WTG +uid 1581,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1582,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-8800,3300,16000,4700" +st "dataOut : (dataBitNb-1 DOWNTO 0)" +ju 2 +blo "16000,4500" +tm "WireNameMgr" +) +) +) +*91 (Net +uid 1589,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 41,0 +) +declText (MLText +uid 1590,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,11200,240700,12200" +st "dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*92 (Net +uid 1776,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 82 +suid 42,0 +) +declText (MLText +uid 1777,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,83200,241600,84200" +st "SIGNAL updatePeriod : unsigned(dataBitNb-1 DOWNTO 0)" +) +) +*93 (SaComponent +uid 1816,0 +optionalChildren [ +*94 (CptPort +uid 1784,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1785,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,67625,91750,68375" +) +tg (CPTG +uid 1786,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1787,0 +va (VaSet +) +xt "82000,67400,90000,68600" +st "updatePeriod" +ju 2 +blo "90000,68400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*95 (CptPort +uid 1788,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1789,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,67625,75000,68375" +) +tg (CPTG +uid 1790,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1791,0 +va (VaSet +) +xt "76000,67400,80000,68600" +st "dataIn" +blo "76000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*96 (CptPort +uid 1792,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1793,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,69625,75000,70375" +) +tg (CPTG +uid 1794,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1795,0 +va (VaSet +) +xt "76000,69400,80800,70600" +st "dataOut" +blo "76000,70400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +*97 (CptPort +uid 1796,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1797,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,73625,75000,74375" +) +tg (CPTG +uid 1798,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1799,0 +va (VaSet +) +xt "76000,73400,84400,74600" +st "writeHighByte" +blo "76000,74400" +) +) +thePort (LogicalPort +decl (Decl +n "writeHighByte" +t "std_ulogic" +o 4 +) +) +) +*98 (CptPort +uid 1800,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1801,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,77625,75000,78375" +) +tg (CPTG +uid 1802,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1803,0 +va (VaSet +) +xt "76000,77400,77900,78600" +st "en" +blo "76000,78400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +) +) +) +*99 (CptPort +uid 1804,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1805,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,81625,75000,82375" +) +tg (CPTG +uid 1806,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1807,0 +va (VaSet +) +xt "76000,81400,79400,82600" +st "clock" +blo "76000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 6 +) +) +) +*100 (CptPort +uid 1808,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1809,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,83625,75000,84375" +) +tg (CPTG +uid 1810,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1811,0 +va (VaSet +) +xt "76000,83400,79300,84600" +st "reset" +blo "76000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 7 +) +) +) +*101 (CptPort +uid 1812,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1813,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,75625,75000,76375" +) +tg (CPTG +uid 1814,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1815,0 +va (VaSet +) +xt "76000,75400,84000,76600" +st "writeLowByte" +blo "76000,76400" +) +) +thePort (LogicalPort +decl (Decl +n "writeLowByte" +t "std_ulogic" +o 8 +) +) +) +] +shape (Rectangle +uid 1817,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,64000,91000,86000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1818,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +uid 1819,0 +va (VaSet +) +xt "75600,85800,79900,87000" +st "Curves" +blo "75600,86800" +tm "BdLibraryNameMgr" +) +*103 (Text +uid 1820,0 +va (VaSet +) +xt "75600,86800,85100,88000" +st "periphSpeedReg" +blo "75600,87800" +tm "CptNameMgr" +) +*104 (Text +uid 1821,0 +va (VaSet +) +xt "75600,87800,77500,89000" +st "I3" +blo "75600,88800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1822,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1823,0 +text (MLText +uid 1824,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,89600,91600,90600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*105 (SaComponent +uid 1853,0 +optionalChildren [ +*106 (CptPort +uid 1825,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1826,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,39625,91750,40375" +) +tg (CPTG +uid 1827,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1828,0 +va (VaSet +) +xt "82900,39400,90000,40600" +st "patternSize" +ju 2 +blo "90000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 1 +) +) +) +*107 (CptPort +uid 1829,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1830,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,39625,75000,40375" +) +tg (CPTG +uid 1831,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1832,0 +va (VaSet +) +xt "76000,39400,80000,40600" +st "dataIn" +blo "76000,40400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*108 (CptPort +uid 1833,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1834,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,41625,75000,42375" +) +tg (CPTG +uid 1835,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1836,0 +va (VaSet +) +xt "76000,41400,80800,42600" +st "dataOut" +blo "76000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +*109 (CptPort +uid 1837,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1838,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,45625,75000,46375" +) +tg (CPTG +uid 1839,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1840,0 +va (VaSet +) +xt "76000,45400,79100,46600" +st "write" +blo "76000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 4 +) +) +) +*110 (CptPort +uid 1841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1842,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,47625,75000,48375" +) +tg (CPTG +uid 1843,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1844,0 +va (VaSet +) +xt "76000,47400,77900,48600" +st "en" +blo "76000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +) +) +) +*111 (CptPort +uid 1845,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1846,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,51625,75000,52375" +) +tg (CPTG +uid 1847,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1848,0 +va (VaSet +) +xt "76000,51400,79400,52600" +st "clock" +blo "76000,52400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 6 +) +) +) +*112 (CptPort +uid 1849,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1850,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,53625,75000,54375" +) +tg (CPTG +uid 1851,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1852,0 +va (VaSet +) +xt "76000,53400,79300,54600" +st "reset" +blo "76000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 7 +) +) +) +] +shape (Rectangle +uid 1854,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,36000,91000,56000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1855,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 1856,0 +va (VaSet +) +xt "75600,55800,79900,57000" +st "Curves" +blo "75600,56800" +tm "BdLibraryNameMgr" +) +*114 (Text +uid 1857,0 +va (VaSet +) +xt "75600,56800,84100,58000" +st "periphSizeReg" +blo "75600,57800" +tm "CptNameMgr" +) +*115 (Text +uid 1858,0 +va (VaSet +) +xt "75600,57800,77500,59000" +st "I5" +blo "75600,58800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1859,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1860,0 +text (MLText +uid 1861,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,59600,91600,60600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*116 (SaComponent +uid 1919,0 +optionalChildren [ +*117 (CptPort +uid 1903,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1904,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,175625,177750,176375" +) +tg (CPTG +uid 1905,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1906,0 +va (VaSet +) +xt "169400,175400,176000,176600" +st "triggerOut" +ju 2 +blo "176000,176400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +) +) +) +*118 (CptPort +uid 1907,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,179625,161000,180375" +) +tg (CPTG +uid 1909,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1910,0 +va (VaSet +) +xt "162000,179400,165400,180600" +st "clock" +blo "162000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*119 (CptPort +uid 1911,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1912,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,181625,161000,182375" +) +tg (CPTG +uid 1913,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1914,0 +va (VaSet +) +xt "162000,181400,165300,182600" +st "reset" +blo "162000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*120 (CptPort +uid 1915,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1916,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,175625,161000,176375" +) +tg (CPTG +uid 1917,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1918,0 +va (VaSet +) +xt "162000,175400,163900,176600" +st "en" +blo "162000,176400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1920,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,172000,177000,184000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1921,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*121 (Text +uid 1922,0 +va (VaSet +) +xt "161600,184800,165900,186000" +st "Curves" +blo "161600,185800" +tm "BdLibraryNameMgr" +) +*122 (Text +uid 1923,0 +va (VaSet +) +xt "161600,185800,172400,187000" +st "interpolatorTrigger" +blo "161600,186800" +tm "CptNameMgr" +) +*123 (Text +uid 1924,0 +va (VaSet +) +xt "161600,186800,163500,188000" +st "I6" +blo "161600,187800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1925,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1926,0 +text (MLText +uid 1927,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,187600,182800,188600" +st "counterBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*124 (Net +uid 1993,0 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 41 +suid 43,0 +) +declText (MLText +uid 1994,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,46300,231400,47300" +st "SIGNAL interpolationEnable : std_ulogic" +) +) +*125 (Net +uid 2776,0 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 24 +suid 44,0 +) +declText (MLText +uid 2777,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,31000,244900,32000" +st "SIGNAL addrX : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*126 (Net +uid 2850,0 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 31 +suid 45,0 +) +declText (MLText +uid 2851,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,37300,230200,38300" +st "SIGNAL cntIncrX : std_ulogic" +) +) +*127 (Net +uid 2852,0 +decl (Decl +n "memWrX" +t "std_ulogic" +o 46 +suid 46,0 +) +declText (MLText +uid 2853,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,50800,231300,51800" +st "SIGNAL memWrX : std_ulogic" +) +) +*128 (Net +uid 2854,0 +decl (Decl +n "memEnX" +t "std_ulogic" +o 43 +suid 47,0 +) +declText (MLText +uid 2855,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,48100,231200,49100" +st "SIGNAL memEnX : std_ulogic" +) +) +*129 (HdlText +uid 3135,0 +optionalChildren [ +*130 (EmbeddedText +uid 3140,0 +commentText (CommentText +uid 3141,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3142,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,152000,146000,156000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3143,0 +va (VaSet +) +xt "132200,152200,144900,155800" +st " +samplesX <= cosine when selSinCos = '1' + else signed(memX); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3136,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,150000,147000,158000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3137,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +uid 3138,0 +va (VaSet +) +xt "131400,158000,134000,159200" +st "eb2" +blo "131400,159000" +tm "HdlTextNameMgr" +) +*132 (Text +uid 3139,0 +va (VaSet +) +xt "131400,159000,132800,160200" +st "2" +blo "131400,160000" +tm "HdlTextNumberMgr" +) +] +) +) +*133 (Net +uid 3152,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 49 +suid 48,0 +) +declText (MLText +uid 3153,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,53500,244700,54500" +st "SIGNAL memX : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*134 (SaComponent +uid 3378,0 +optionalChildren [ +*135 (CptPort +uid 3354,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3355,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,159625,75000,160375" +) +tg (CPTG +uid 3356,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3357,0 +va (VaSet +) +xt "76000,159400,77900,160600" +st "en" +blo "76000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +) +) +) +*136 (CptPort +uid 3358,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3359,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,163625,75000,164375" +) +tg (CPTG +uid 3360,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3361,0 +va (VaSet +) +xt "76000,163400,79400,164600" +st "clock" +blo "76000,164400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*137 (CptPort +uid 3362,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3363,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,165625,75000,166375" +) +tg (CPTG +uid 3364,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3365,0 +va (VaSet +) +xt "76000,165400,79300,166600" +st "reset" +blo "76000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*138 (CptPort +uid 3366,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3367,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,157625,75000,158375" +) +tg (CPTG +uid 3368,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3369,0 +va (VaSet +) +xt "76000,157400,82500,158600" +st "updateMem" +blo "76000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +) +) +) +*139 (CptPort +uid 3370,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3371,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,155625,91750,156375" +) +tg (CPTG +uid 3372,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3373,0 +va (VaSet +) +xt "87100,155400,90000,156600" +st "addr" +ju 2 +blo "90000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*140 (CptPort +uid 3374,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3375,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,155625,75000,156375" +) +tg (CPTG +uid 3376,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3377,0 +va (VaSet +) +xt "76000,155400,83100,156600" +st "patternSize" +blo "76000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 3379,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,152000,91000,168000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3380,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +uid 3381,0 +va (VaSet +) +xt "75600,167800,79900,169000" +st "Curves" +blo "75600,168800" +tm "BdLibraryNameMgr" +) +*142 (Text +uid 3382,0 +va (VaSet +) +xt "75600,168800,91000,170000" +st "blockRAMAddressCounter" +blo "75600,169800" +tm "CptNameMgr" +) +*143 (Text +uid 3383,0 +va (VaSet +) +xt "75600,169800,78200,171000" +st "I18" +blo "75600,170800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3384,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3385,0 +text (MLText +uid 3386,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,171600,98800,173600" +st "addressBitNb = patternAddressBitNb ( positive ) +patternSizeBitNb = dataBitNb/2 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*144 (SaComponent +uid 3623,0 +optionalChildren [ +*145 (CptPort +uid 3603,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3604,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,65625,123750,66375" +) +tg (CPTG +uid 3605,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3606,0 +va (VaSet +) +xt "116100,65400,122000,66600" +st "enableOut" +ju 2 +blo "122000,66400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "enableOut" +t "std_ulogic" +o 1 +) +) +) +*146 (CptPort +uid 3607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3608,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,71625,107000,72375" +) +tg (CPTG +uid 3609,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3610,0 +va (VaSet +) +xt "108000,71400,111400,72600" +st "clock" +blo "108000,72400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*147 (CptPort +uid 3611,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3612,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,73625,107000,74375" +) +tg (CPTG +uid 3613,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3614,0 +va (VaSet +) +xt "108000,73400,111300,74600" +st "reset" +blo "108000,74400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*148 (CptPort +uid 3615,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3616,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,67625,107000,68375" +) +tg (CPTG +uid 3617,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3618,0 +va (VaSet +) +xt "108000,67400,116000,68600" +st "updatePeriod" +blo "108000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*149 (CptPort +uid 3619,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3620,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,65625,107000,66375" +) +tg (CPTG +uid 3621,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3622,0 +va (VaSet +) +xt "108000,65400,113100,66600" +st "enableIn" +blo "108000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "enableIn" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 3624,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,62000,123000,76000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3625,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*150 (Text +uid 3626,0 +va (VaSet +) +xt "107600,75800,111900,77000" +st "Curves" +blo "107600,76800" +tm "BdLibraryNameMgr" +) +*151 (Text +uid 3627,0 +va (VaSet +) +xt "107600,76800,120900,78000" +st "periphSpeedController" +blo "107600,77800" +tm "CptNameMgr" +) +*152 (Text +uid 3628,0 +va (VaSet +) +xt "107600,77800,110200,79000" +st "I15" +blo "107600,78800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3629,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3630,0 +text (MLText +uid 3631,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,79600,123600,80600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*153 (SaComponent +uid 3681,0 +optionalChildren [ +*154 (CptPort +uid 3690,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,109625,75000,110375" +) +tg (CPTG +uid 3692,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3693,0 +va (VaSet +) +xt "76000,109400,77900,110600" +st "en" +blo "76000,110400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +) +) +) +*155 (CptPort +uid 3694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,113625,75000,114375" +) +tg (CPTG +uid 3696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3697,0 +va (VaSet +) +xt "76000,113400,79400,114600" +st "clock" +blo "76000,114400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*156 (CptPort +uid 3698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3699,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,115625,75000,116375" +) +tg (CPTG +uid 3700,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3701,0 +va (VaSet +) +xt "76000,115400,79300,116600" +st "reset" +blo "76000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*157 (CptPort +uid 3702,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3703,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,107625,75000,108375" +) +tg (CPTG +uid 3704,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3705,0 +va (VaSet +) +xt "76000,107400,82500,108600" +st "updateMem" +blo "76000,108400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +) +) +) +*158 (CptPort +uid 3706,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3707,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,105625,91750,106375" +) +tg (CPTG +uid 3708,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3709,0 +va (VaSet +) +xt "87100,105400,90000,106600" +st "addr" +ju 2 +blo "90000,106400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*159 (CptPort +uid 3710,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3711,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,105625,75000,106375" +) +tg (CPTG +uid 3712,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3713,0 +va (VaSet +) +xt "76000,105400,83100,106600" +st "patternSize" +blo "76000,106400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 3682,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,102000,91000,118000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3683,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*160 (Text +uid 3684,0 +va (VaSet +) +xt "75600,117800,79900,119000" +st "Curves" +blo "75600,118800" +tm "BdLibraryNameMgr" +) +*161 (Text +uid 3685,0 +va (VaSet +) +xt "75600,118800,91000,120000" +st "blockRAMAddressCounter" +blo "75600,119800" +tm "CptNameMgr" +) +*162 (Text +uid 3686,0 +va (VaSet +) +xt "75600,119800,78200,121000" +st "I20" +blo "75600,120800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3687,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3688,0 +text (MLText +uid 3689,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,121600,98800,123600" +st "addressBitNb = patternAddressBitNb ( positive ) +patternSizeBitNb = dataBitNb/2 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*163 (Net +uid 3827,0 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 32 +suid 49,0 +) +declText (MLText +uid 3828,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,38200,230200,39200" +st "SIGNAL cntIncrY : std_ulogic" +) +) +*164 (Net +uid 3890,0 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 25 +suid 50,0 +) +declText (MLText +uid 3891,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,31900,244900,32900" +st "SIGNAL addrY : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*165 (Net +uid 3892,0 +decl (Decl +n "memWrY" +t "std_ulogic" +o 47 +suid 51,0 +) +declText (MLText +uid 3893,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,51700,231300,52700" +st "SIGNAL memWrY : std_ulogic" +) +) +*166 (Net +uid 3894,0 +decl (Decl +n "memEnY" +t "std_ulogic" +o 44 +suid 52,0 +) +declText (MLText +uid 3895,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,49000,231200,50000" +st "SIGNAL memEnY : std_ulogic" +) +) +*167 (HdlText +uid 3896,0 +optionalChildren [ +*168 (EmbeddedText +uid 3901,0 +commentText (CommentText +uid 3902,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3903,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,115000,146000,119000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3904,0 +va (VaSet +) +xt "132200,115200,144900,118800" +st " +samplesY <= sine when selSinCos = '1' + else signed(memY); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3897,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,113000,147000,121000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3898,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*169 (Text +uid 3899,0 +va (VaSet +) +xt "131400,121000,134000,122200" +st "eb1" +blo "131400,122000" +tm "HdlTextNameMgr" +) +*170 (Text +uid 3900,0 +va (VaSet +) +xt "131400,122000,132800,123200" +st "1" +blo "131400,123000" +tm "HdlTextNumberMgr" +) +] +) +) +*171 (Net +uid 3913,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 50 +suid 53,0 +) +declText (MLText +uid 3914,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,54400,244700,55400" +st "SIGNAL memY : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*172 (PortIoOut +uid 4041,0 +shape (CompositeShape +uid 4042,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4043,0 +sl 0 +ro 270 +xt "289500,5625,291000,6375" +) +(Line +uid 4044,0 +sl 0 +ro 270 +xt "289000,6000,289500,6000" +pts [ +"289000,6000" +"289500,6000" +] +) +] +) +tg (WTG +uid 4045,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4046,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,5300,305600,6700" +st "testOut : (1 TO 16)" +blo "292000,6500" +tm "WireNameMgr" +) +) +) +*173 (Net +uid 4053,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 54,0 +) +declText (MLText +uid 4054,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,12100,234500,13100" +st "testOut : std_ulogic_vector(1 TO 16)" +) +) +*174 (HdlText +uid 4055,0 +optionalChildren [ +*175 (EmbeddedText +uid 4060,0 +commentText (CommentText +uid 4061,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4062,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "266000,5000,280000,27000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4063,0 +va (VaSet +) +xt "266200,5200,278400,26800" +st " +testout(1) <= run; +testout(2) <= updatePattern; +testout(3) <= interpolationEnable; +testout(4) <= newPolynom; +testout(5) <= selSinCos; +testout(6) <= cs; +testout(7) <= rd; +testout(8) <= wrH; +testout(9) <= wrL; +testout(10) <= addrReg(1); +testout(11) <= dataInReg(0); +--testout(10) <= selControl; +--testout(11) <= selSize; +testout(12) <= selSpeed; +testout(13) <= selX; +testout(14) <= selY; +testout(15) <= cntIncrX; +testout(16) <= cntIncrY; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 22000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4056,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "265000,4000,281000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4057,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*176 (Text +uid 4058,0 +va (VaSet +) +xt "265400,28000,268000,29200" +st "eb3" +blo "265400,29000" +tm "HdlTextNameMgr" +) +*177 (Text +uid 4059,0 +va (VaSet +) +xt "265400,29000,266800,30200" +st "3" +blo "265400,30000" +tm "HdlTextNumberMgr" +) +] +) +) +*178 (SaComponent +uid 4245,0 +optionalChildren [ +*179 (CptPort +uid 4225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,57625,43750,58375" +) +tg (CPTG +uid 4227,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4228,0 +va (VaSet +) +xt "35400,57400,42000,58600" +st "writePulse" +ju 2 +blo "42000,58400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writePulse" +t "std_ulogic" +o 1 +) +) +) +*180 (CptPort +uid 4229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4230,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,57625,27000,58375" +) +tg (CPTG +uid 4231,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4232,0 +va (VaSet +) +xt "28000,57400,31100,58600" +st "write" +blo "28000,58400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 2 +) +) +) +*181 (CptPort +uid 4233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4234,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,59625,27000,60375" +) +tg (CPTG +uid 4235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4236,0 +va (VaSet +) +xt "28000,59400,34700,60600" +st "chipSelect" +blo "28000,60400" +) +) +thePort (LogicalPort +decl (Decl +n "chipSelect" +t "std_ulogic" +o 3 +) +) +) +*182 (CptPort +uid 4237,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4238,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,63625,27000,64375" +) +tg (CPTG +uid 4239,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4240,0 +va (VaSet +) +xt "28000,63400,31400,64600" +st "clock" +blo "28000,64400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*183 (CptPort +uid 4241,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4242,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,65625,27000,66375" +) +tg (CPTG +uid 4243,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4244,0 +va (VaSet +) +xt "28000,65400,31300,66600" +st "reset" +blo "28000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 4246,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,54000,43000,68000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4247,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*184 (Text +uid 4248,0 +va (VaSet +) +xt "27600,67800,31900,69000" +st "Curves" +blo "27600,68800" +tm "BdLibraryNameMgr" +) +*185 (Text +uid 4249,0 +va (VaSet +) +xt "27600,68800,37500,70000" +st "periphWritePulse" +blo "27600,69800" +tm "CptNameMgr" +) +*186 (Text +uid 4250,0 +va (VaSet +) +xt "27600,69800,30200,71000" +st "I22" +blo "27600,70800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4251,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4252,0 +text (MLText +uid 4253,0 +va (VaSet +font "Verdana,8,0" +) +xt "-7000,45000,-7000,45000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*187 (Net +uid 4290,0 +decl (Decl +n "wrHPulse" +t "std_ulogic" +o 85 +suid 55,0 +) +declText (MLText +uid 4291,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,85900,230700,86900" +st "SIGNAL wrHPulse : std_ulogic" +) +) +*188 (SaComponent +uid 4300,0 +optionalChildren [ +*189 (CptPort +uid 4309,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4310,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,79625,43750,80375" +) +tg (CPTG +uid 4311,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4312,0 +va (VaSet +) +xt "35400,79400,42000,80600" +st "writePulse" +ju 2 +blo "42000,80400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writePulse" +t "std_ulogic" +o 1 +) +) +) +*190 (CptPort +uid 4313,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4314,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,79625,27000,80375" +) +tg (CPTG +uid 4315,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4316,0 +va (VaSet +) +xt "28000,79400,31100,80600" +st "write" +blo "28000,80400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 2 +) +) +) +*191 (CptPort +uid 4317,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4318,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,81625,27000,82375" +) +tg (CPTG +uid 4319,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4320,0 +va (VaSet +) +xt "28000,81400,34700,82600" +st "chipSelect" +blo "28000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "chipSelect" +t "std_ulogic" +o 3 +) +) +) +*192 (CptPort +uid 4321,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4322,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,85625,27000,86375" +) +tg (CPTG +uid 4323,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4324,0 +va (VaSet +) +xt "28000,85400,31400,86600" +st "clock" +blo "28000,86400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*193 (CptPort +uid 4325,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4326,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,87625,27000,88375" +) +tg (CPTG +uid 4327,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4328,0 +va (VaSet +) +xt "28000,87400,31300,88600" +st "reset" +blo "28000,88400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 4301,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,76000,43000,90000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4302,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*194 (Text +uid 4303,0 +va (VaSet +) +xt "27600,89800,31900,91000" +st "Curves" +blo "27600,90800" +tm "BdLibraryNameMgr" +) +*195 (Text +uid 4304,0 +va (VaSet +) +xt "27600,90800,37500,92000" +st "periphWritePulse" +blo "27600,91800" +tm "CptNameMgr" +) +*196 (Text +uid 4305,0 +va (VaSet +) +xt "27600,91800,30200,93000" +st "I23" +blo "27600,92800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4306,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4307,0 +text (MLText +uid 4308,0 +va (VaSet +font "Verdana,8,0" +) +xt "-7000,67000,-7000,67000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*197 (Net +uid 4347,0 +decl (Decl +n "wrLPulse" +t "std_ulogic" +o 86 +suid 56,0 +) +declText (MLText +uid 4348,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,86800,230500,87800" +st "SIGNAL wrLPulse : std_ulogic" +) +) +*198 (HdlText +uid 4719,0 +optionalChildren [ +*199 (EmbeddedText +uid 4724,0 +commentText (CommentText +uid 4725,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4726,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "150000,75000,164000,77000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4727,0 +va (VaSet +) +xt "150200,75200,164000,76400" +st " +step <= to_unsigned(1, step'length); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4720,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "149000,74000,165000,78000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4721,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*200 (Text +uid 4722,0 +va (VaSet +) +xt "149400,78000,152000,79200" +st "eb4" +blo "149400,79000" +tm "HdlTextNameMgr" +) +*201 (Text +uid 4723,0 +va (VaSet +) +xt "149400,79000,150800,80200" +st "4" +blo "149400,80000" +tm "HdlTextNumberMgr" +) +] +) +) +*202 (Net +uid 4800,0 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 54 +suid 57,0 +) +declText (MLText +uid 4801,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,58000,241400,59000" +st "SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*203 (Net +uid 4802,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 78 +suid 58,0 +) +declText (MLText +uid 4803,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,79600,241000,80600" +st "SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*204 (Net +uid 4858,0 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 77 +suid 59,0 +) +declText (MLText +uid 4859,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,78700,239800,79700" +st "SIGNAL sine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*205 (SaComponent +uid 4923,0 +optionalChildren [ +*206 (CptPort +uid 4903,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4904,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,89625,161000,90375" +) +tg (CPTG +uid 4905,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4906,0 +va (VaSet +) +xt "162000,89400,165400,90600" +st "clock" +blo "162000,90400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*207 (CptPort +uid 4907,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,83625,177750,84375" +) +tg (CPTG +uid 4909,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4910,0 +va (VaSet +) +xt "170800,83400,176000,84600" +st "sawtooth" +ju 2 +blo "176000,84400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*208 (CptPort +uid 4911,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4912,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,91625,161000,92375" +) +tg (CPTG +uid 4913,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4914,0 +va (VaSet +) +xt "162000,91400,165300,92600" +st "reset" +blo "162000,92400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*209 (CptPort +uid 4915,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4916,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,83625,161000,84375" +) +tg (CPTG +uid 4917,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4918,0 +va (VaSet +) +xt "162000,83400,164900,84600" +st "step" +blo "162000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*210 (CptPort +uid 4919,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4920,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,85625,161000,86375" +) +tg (CPTG +uid 4921,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4922,0 +va (VaSet +) +xt "162000,85400,163900,86600" +st "en" +blo "162000,86400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 4924,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,80000,177000,94000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4925,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*211 (Text +uid 4926,0 +va (VaSet +) +xt "161600,93800,165900,95000" +st "Curves" +blo "161600,94800" +tm "BdLibraryNameMgr" +) +*212 (Text +uid 4927,0 +va (VaSet +) +xt "161600,94800,169500,96000" +st "sawtoothGen" +blo "161600,95800" +tm "CptNameMgr" +) +*213 (Text +uid 4928,0 +va (VaSet +) +xt "161600,95800,164200,97000" +st "I24" +blo "161600,96800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4929,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4930,0 +text (MLText +uid 4931,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,96600,176400,97600" +st "bitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*214 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 270 +xt "151000,69625,152500,70375" +) +(Line +uid 5083,0 +sl 0 +ro 270 +xt "152500,70000,153000,70000" +pts [ +"152500,70000" +"153000,70000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "143100,69300,150000,70700" +st "selSinCos" +ju 2 +blo "150000,70500" +tm "WireNameMgr" +) +) +) +*215 (HdlText +uid 5244,0 +optionalChildren [ +*216 (EmbeddedText +uid 5249,0 +commentText (CommentText +uid 5250,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 5251,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "162000,65000,176000,71000" +) +oxt "0,0,18000,5000" +text (MLText +uid 5252,0 +va (VaSet +) +xt "162200,65200,176100,71200" +st " +interpolationEnable <= '1' when selSinCos = '1' + else interpolationEn; +--interpolateLinear <= '1' when selSinCos = '1' +-- else interpolateLin; +interpolateLinear <= interpolateLin; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 5245,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "161000,64000,177000,72000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 5246,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*217 (Text +uid 5247,0 +va (VaSet +) +xt "161400,72000,164000,73200" +st "eb5" +blo "161400,73000" +tm "HdlTextNameMgr" +) +*218 (Text +uid 5248,0 +va (VaSet +) +xt "161400,73000,162800,74200" +st "5" +blo "161400,74000" +tm "HdlTextNumberMgr" +) +] +) +) +*219 (Net +uid 5261,0 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 40 +suid 60,0 +) +declText (MLText +uid 5262,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,45400,230900,46400" +st "SIGNAL interpolationEn : std_ulogic" +) +) +*220 (Net +uid 5936,0 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 61,0 +) +declText (MLText +uid 5937,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,40000,240100,41000" +st "SIGNAL cosine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*221 (SaComponent +uid 5956,0 +optionalChildren [ +*222 (CptPort +uid 5944,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5945,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,83625,201750,84375" +) +tg (CPTG +uid 5946,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5947,0 +va (VaSet +) +xt "197200,83400,200000,84600" +st "sine" +ju 2 +blo "200000,84400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*223 (CptPort +uid 5948,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5949,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,83625,185000,84375" +) +tg (CPTG +uid 5950,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5951,0 +va (VaSet +) +xt "186000,83400,189700,84600" +st "phase" +blo "186000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*224 (CptPort +uid 5952,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5953,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,85625,201750,86375" +) +tg (CPTG +uid 5954,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5955,0 +va (VaSet +) +xt "196000,85400,200000,86600" +st "cosine" +ju 2 +blo "200000,86400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cosine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +) +) +) +] +shape (Rectangle +uid 5957,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,80000,201000,90000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 5958,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*225 (Text +uid 5959,0 +va (VaSet +) +xt "185600,89800,189900,91000" +st "Curves" +blo "185600,90800" +tm "BdLibraryNameMgr" +) +*226 (Text +uid 5960,0 +va (VaSet +) +xt "185600,90800,193300,92000" +st "sinCosTable" +blo "185600,91800" +tm "CptNameMgr" +) +*227 (Text +uid 5961,0 +va (VaSet +) +xt "185600,91800,188200,93000" +st "I25" +blo "185600,92800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5962,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5963,0 +text (MLText +uid 5964,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,93000,208700,96000" +st "inputBitNb = phaseBitNb ( positive ) +outputBitNb = signalBitNb ( positive ) +tableAddressBitNb = tableAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*228 (HdlText +uid 6125,0 +optionalChildren [ +*229 (EmbeddedText +uid 6130,0 +commentText (CommentText +uid 6131,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6132,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "28000,151000,42000,165000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6133,0 +va (VaSet +) +xt "28200,151200,42200,164400" +st " +writeX: process(selX, memX) +begin + if selX = '1' then + dataOut <= std_logic_vector(memX); + else + dataOut <= (others => 'Z'); + end if; +end process writeX; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 6126,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "27000,150000,43000,166000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6127,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*230 (Text +uid 6128,0 +va (VaSet +) +xt "27400,166000,30000,167200" +st "eb6" +blo "27400,167000" +tm "HdlTextNameMgr" +) +*231 (Text +uid 6129,0 +va (VaSet +) +xt "27400,167000,28800,168200" +st "6" +blo "27400,168000" +tm "HdlTextNumberMgr" +) +] +) +) +*232 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,13000,227300,14000" +st "selSinCos : std_ulogic" +) +) +*233 (HdlText +uid 6825,0 +optionalChildren [ +*234 (EmbeddedText +uid 6830,0 +commentText (CommentText +uid 6831,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6832,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "28000,171000,42000,185000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6833,0 +va (VaSet +) +xt "28200,171200,42200,184400" +st " +writeCounters: process(addr, addrX, addrY) +begin + if addr = 16#84# then + dataOut <= std_logic_vector(addrX & addrY); + else + dataOut <= (others => 'Z'); + end if; +end process writeCounters; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 6826,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "27000,170000,43000,186000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6827,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*235 (Text +uid 6828,0 +va (VaSet +) +xt "27400,186000,30000,187200" +st "eb7" +blo "27400,187000" +tm "HdlTextNameMgr" +) +*236 (Text +uid 6829,0 +va (VaSet +) +xt "27400,187000,28800,188200" +st "7" +blo "27400,188000" +tm "HdlTextNumberMgr" +) +] +) +) +*237 (SaComponent +uid 7019,0 +optionalChildren [ +*238 (CptPort +uid 6994,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6995,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,15625,27000,16375" +) +tg (CPTG +uid 6996,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6997,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,15300,31800,16700" +st "clock" +blo "28000,16500" +) +s (Text +uid 6998,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,16700,28000,16700" +blo "9000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*239 (CptPort +uid 6999,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7000,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,9625,27000,10375" +) +tg (CPTG +uid 7001,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7002,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,9300,33000,10700" +st "dataIn" +blo "28000,10500" +) +s (Text +uid 7003,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,10700,28000,10700" +blo "-37800,34100" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerNbBits-1 DOWNTO 0)" +o 1 +) +) +) +*240 (CptPort +uid 7004,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7005,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,9625,43750,10375" +) +tg (CPTG +uid 7006,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7007,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,9300,42000,10700" +st "dataOut" +ju 2 +blo "42000,10500" +) +s (Text +uid 7008,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "42000,10700,42000,10700" +ju 2 +blo "-23600,-18900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerNbBits-1 DOWNTO 0)" +o 3 +) +) +) +*241 (CptPort +uid 7009,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7010,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,13625,27000,14375" +) +tg (CPTG +uid 7011,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7012,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,13300,33100,14700" +st "enable" +blo "28000,14500" +) +s (Text +uid 7013,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,14700,28000,14700" +blo "9000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "enable" +t "std_ulogic" +o 4 +) +) +) +*242 (CptPort +uid 7014,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7015,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,17625,27000,18375" +) +tg (CPTG +uid 7016,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7017,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,17300,32100,18700" +st "reset" +blo "28000,18500" +) +s (Text +uid 7018,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,18700,28000,18700" +blo "9000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 7020,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "27000,6000,43000,20000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7021,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*243 (Text +uid 7022,0 +va (VaSet +) +xt "26910,20700,33510,21900" +st "sequential" +blo "26910,21700" +tm "BdLibraryNameMgr" +) +*244 (Text +uid 7023,0 +va (VaSet +) +xt "26910,21700,39810,22900" +st "registerULogicVector" +blo "26910,22700" +tm "CptNameMgr" +) +*245 (Text +uid 7024,0 +va (VaSet +) +xt "26910,22700,29510,23900" +st "I26" +blo "26910,23700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7025,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7026,0 +text (MLText +uid 7027,0 +va (VaSet +) +xt "27000,23600,50300,26000" +st "delay = 1 ns ( time ) +registerNbBits = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "dataBitNb" +) +] +) +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*246 (Net +uid 7053,0 +decl (Decl +n "dataInReg" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 37 +suid 63,0 +) +declText (MLText +uid 7054,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,42700,244800,43700" +st "SIGNAL dataInReg : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*247 (Net +uid 7073,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 64,0 +) +declText (MLText +uid 7074,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,6700,240900,7700" +st "dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*248 (SaComponent +uid 7075,0 +optionalChildren [ +*249 (CptPort +uid 7084,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7085,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,37625,7000,38375" +) +tg (CPTG +uid 7086,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7087,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,37300,11800,38700" +st "clock" +blo "8000,38500" +) +s (Text +uid 7088,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,38700,8000,38700" +blo "-11000,56900" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*250 (CptPort +uid 7089,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7090,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,31625,7000,32375" +) +tg (CPTG +uid 7091,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7092,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,31300,13000,32700" +st "dataIn" +blo "8000,32500" +) +s (Text +uid 7093,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,32700,8000,32700" +blo "-57800,56100" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "unsigned" +b "(registerNbBits-1 DOWNTO 0)" +o 1 +) +) +) +*251 (CptPort +uid 7094,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7095,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,31625,23750,32375" +) +tg (CPTG +uid 7096,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7097,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,31300,22000,32700" +st "dataOut" +ju 2 +blo "22000,32500" +) +s (Text +uid 7098,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "22000,32700,22000,32700" +ju 2 +blo "-43600,3100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "unsigned" +b "(registerNbBits-1 DOWNTO 0)" +o 3 +) +) +) +*252 (CptPort +uid 7099,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,35625,7000,36375" +) +tg (CPTG +uid 7101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7102,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,35300,13100,36700" +st "enable" +blo "8000,36500" +) +s (Text +uid 7103,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,36700,8000,36700" +blo "-11000,56900" +) +) +thePort (LogicalPort +decl (Decl +n "enable" +t "std_ulogic" +o 4 +) +) +) +*253 (CptPort +uid 7104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,39625,7000,40375" +) +tg (CPTG +uid 7106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7107,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,39300,12100,40700" +st "reset" +blo "8000,40500" +) +s (Text +uid 7108,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,40700,8000,40700" +blo "-11000,56900" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 7076,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "7000,28000,23000,42000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7077,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*254 (Text +uid 7078,0 +va (VaSet +) +xt "6910,42700,13510,43900" +st "sequential" +blo "6910,43700" +tm "BdLibraryNameMgr" +) +*255 (Text +uid 7079,0 +va (VaSet +) +xt "6910,43700,16910,44900" +st "registerUnsigned" +blo "6910,44700" +tm "CptNameMgr" +) +*256 (Text +uid 7080,0 +va (VaSet +) +xt "6910,44700,9510,45900" +st "I27" +blo "6910,45700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7081,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7082,0 +text (MLText +uid 7083,0 +va (VaSet +) +xt "7000,45600,32100,48000" +st "delay = 1 ns ( time ) +registerNbBits = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "addressBitNb" +) +] +) +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*257 (Net +uid 7115,0 +decl (Decl +n "addrReg" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 23 +suid 65,0 +) +declText (MLText +uid 7116,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,30100,242500,31100" +st "SIGNAL addrReg : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*258 (HdlText +uid 7149,0 +optionalChildren [ +*259 (EmbeddedText +uid 7154,0 +commentText (CommentText +uid 7155,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 7156,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "12000,13000,18000,15000" +) +oxt "0,0,18000,5000" +text (MLText +uid 7157,0 +va (VaSet +) +xt "12200,13200,17700,14400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 7150,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "11000,12000,19000,16000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7151,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*260 (Text +uid 7152,0 +va (VaSet +) +xt "11400,16000,14000,17200" +st "eb8" +blo "11400,17000" +tm "HdlTextNameMgr" +) +*261 (Text +uid 7153,0 +va (VaSet +) +xt "11400,17000,12800,18200" +st "8" +blo "11400,18000" +tm "HdlTextNumberMgr" +) +] +) +) +*262 (Net +uid 7166,0 +decl (Decl +n "logic1" +t "std_ulogic" +o 42 +suid 66,0 +) +declText (MLText +uid 7167,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,47200,229900,48200" +st "SIGNAL logic1 : std_ulogic" +) +) +*263 (SaComponent +uid 7695,0 +optionalChildren [ +*264 (CptPort +uid 7704,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7705,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,107625,43750,108375" +) +tg (CPTG +uid 7706,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7707,0 +va (VaSet +) +xt "35400,107400,42000,108600" +st "writePulse" +ju 2 +blo "42000,108400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writePulse" +t "std_ulogic" +o 1 +) +) +) +*265 (CptPort +uid 7708,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7709,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,107625,27000,108375" +) +tg (CPTG +uid 7710,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7711,0 +va (VaSet +) +xt "28000,107400,31100,108600" +st "write" +blo "28000,108400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 2 +) +) +) +*266 (CptPort +uid 7712,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7713,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,109625,27000,110375" +) +tg (CPTG +uid 7714,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7715,0 +va (VaSet +) +xt "28000,109400,34700,110600" +st "chipSelect" +blo "28000,110400" +) +) +thePort (LogicalPort +decl (Decl +n "chipSelect" +t "std_ulogic" +o 3 +) +) +) +*267 (CptPort +uid 7716,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7717,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,113625,27000,114375" +) +tg (CPTG +uid 7718,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7719,0 +va (VaSet +) +xt "28000,113400,31400,114600" +st "clock" +blo "28000,114400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*268 (CptPort +uid 7720,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7721,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,115625,27000,116375" +) +tg (CPTG +uid 7722,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7723,0 +va (VaSet +) +xt "28000,115400,31300,116600" +st "reset" +blo "28000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 7696,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,104000,43000,118000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7697,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*269 (Text +uid 7698,0 +va (VaSet +) +xt "27600,117800,31900,119000" +st "Curves" +blo "27600,118800" +tm "BdLibraryNameMgr" +) +*270 (Text +uid 7699,0 +va (VaSet +) +xt "27600,118800,37500,120000" +st "periphWritePulse" +blo "27600,119800" +tm "CptNameMgr" +) +*271 (Text +uid 7700,0 +va (VaSet +) +xt "27600,119800,30200,121000" +st "I28" +blo "27600,120800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7701,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7702,0 +text (MLText +uid 7703,0 +va (VaSet +font "Verdana,8,0" +) +xt "-7000,95000,-7000,95000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*272 (Net +uid 7756,0 +decl (Decl +n "wr16Pulse" +t "std_ulogic" +o 84 +suid 67,0 +) +declText (MLText +uid 7757,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,85000,230800,86000" +st "SIGNAL wr16Pulse : std_ulogic" +) +) +*273 (SaComponent +uid 7770,0 +optionalChildren [ +*274 (CptPort +uid 7758,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7759,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "10250,105625,11000,106375" +) +tg (CPTG +uid 7760,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7761,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11000,105400,22600,106800" +st "in1 : std_uLogic" +blo "11000,106600" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*275 (CptPort +uid 7762,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7763,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "10250,109625,11000,110375" +) +tg (CPTG +uid 7764,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7765,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11000,109400,22600,110800" +st "in2 : std_uLogic" +blo "11000,110600" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*276 (CptPort +uid 7766,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7767,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "17950,107625,18700,108375" +) +tg (CPTG +uid 7768,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7769,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "5400,107350,18000,108750" +st "out1 : std_uLogic" +ju 2 +blo "18000,108550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (And +uid 7771,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "11000,105000,18000,111000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7772,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*277 (Text +uid 7773,0 +va (VaSet +isHidden 1 +) +xt "13600,105700,17100,106900" +st "gates" +blo "13600,106700" +tm "BdLibraryNameMgr" +) +*278 (Text +uid 7774,0 +va (VaSet +isHidden 1 +) +xt "13600,106700,16800,107900" +st "and2" +blo "13600,107700" +tm "CptNameMgr" +) +*279 (Text +uid 7775,0 +va (VaSet +) +xt "13600,106700,16200,107900" +st "I29" +blo "13600,107700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7776,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7777,0 +text (MLText +uid 7778,0 +va (VaSet +isHidden 1 +) +xt "11000,111400,24400,112600" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*280 (Net +uid 7799,0 +decl (Decl +n "wr16" +t "std_ulogic" +o 83 +suid 68,0 +) +declText (MLText +uid 7800,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,84100,230200,85100" +st "SIGNAL wr16 : std_ulogic" +) +) +*281 (SaComponent +uid 8139,0 +optionalChildren [ +*282 (CptPort +uid 8103,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8104,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,11625,91750,12375" +) +tg (CPTG +uid 8105,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8106,0 +va (VaSet +) +xt "87700,11400,90000,12600" +st "run" +ju 2 +blo "90000,12400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 1 +) +) +) +*283 (CptPort +uid 8107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8108,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,11625,75000,12375" +) +tg (CPTG +uid 8109,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8110,0 +va (VaSet +) +xt "76000,11400,80000,12600" +st "dataIn" +blo "76000,12400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*284 (CptPort +uid 8111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8112,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,13625,91750,14375" +) +tg (CPTG +uid 8113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8114,0 +va (VaSet +) +xt "81500,13400,90000,14600" +st "updatePattern" +ju 2 +blo "90000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 3 +) +) +) +*285 (CptPort +uid 8115,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8116,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,13625,75000,14375" +) +tg (CPTG +uid 8117,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8118,0 +va (VaSet +) +xt "76000,13400,80800,14600" +st "dataOut" +blo "76000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*286 (CptPort +uid 8119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,17625,75000,18375" +) +tg (CPTG +uid 8121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8122,0 +va (VaSet +) +xt "76000,17400,79100,18600" +st "write" +blo "76000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 5 +) +) +) +*287 (CptPort +uid 8123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,19625,75000,20375" +) +tg (CPTG +uid 8125,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8126,0 +va (VaSet +) +xt "76000,19400,77900,20600" +st "en" +blo "76000,20400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 6 +) +) +) +*288 (CptPort +uid 8127,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8128,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,23625,75000,24375" +) +tg (CPTG +uid 8129,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8130,0 +va (VaSet +) +xt "76000,23400,79400,24600" +st "clock" +blo "76000,24400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +) +) +) +*289 (CptPort +uid 8131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,25625,75000,26375" +) +tg (CPTG +uid 8133,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8134,0 +va (VaSet +) +xt "76000,25400,79300,26600" +st "reset" +blo "76000,26400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +) +) +) +*290 (CptPort +uid 8135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,15625,91750,16375" +) +tg (CPTG +uid 8137,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8138,0 +va (VaSet +) +xt "80100,15400,90000,16600" +st "interpolateLinear" +ju 2 +blo "90000,16400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 8140,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,8000,91000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8141,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*291 (Text +uid 8142,0 +va (VaSet +) +xt "75600,27800,79900,29000" +st "Curves" +blo "75600,28800" +tm "BdLibraryNameMgr" +) +*292 (Text +uid 8143,0 +va (VaSet +) +xt "75600,28800,85700,30000" +st "periphControlReg" +blo "75600,29800" +tm "CptNameMgr" +) +*293 (Text +uid 8144,0 +va (VaSet +) +xt "75600,29800,77500,31000" +st "I4" +blo "75600,30800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8145,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8146,0 +text (MLText +uid 8147,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,31600,91600,32600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*294 (Net +uid 8148,0 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 39 +suid 69,0 +) +declText (MLText +uid 8149,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,44500,231000,45500" +st "SIGNAL interpolateLinear : std_ulogic" +) +) +*295 (SaComponent +uid 8192,0 +optionalChildren [ +*296 (CptPort +uid 8156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,153625,185000,154375" +) +tg (CPTG +uid 8158,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8159,0 +va (VaSet +) +xt "186000,153400,191000,154600" +st "sample1" +blo "186000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*297 (CptPort +uid 8160,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8161,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,155625,185000,156375" +) +tg (CPTG +uid 8162,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8163,0 +va (VaSet +) +xt "186000,155400,191000,156600" +st "sample2" +blo "186000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +*298 (CptPort +uid 8164,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8165,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,157625,185000,158375" +) +tg (CPTG +uid 8166,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8167,0 +va (VaSet +) +xt "186000,157400,191000,158600" +st "sample3" +blo "186000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +) +) +) +*299 (CptPort +uid 8168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,159625,185000,160375" +) +tg (CPTG +uid 8170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8171,0 +va (VaSet +) +xt "186000,159400,191000,160600" +st "sample4" +blo "186000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*300 (CptPort +uid 8172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8173,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,153625,201750,154375" +) +tg (CPTG +uid 8174,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8175,0 +va (VaSet +) +xt "198700,153400,200000,154600" +st "a" +ju 2 +blo "200000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*301 (CptPort +uid 8176,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8177,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,155625,201750,156375" +) +tg (CPTG +uid 8178,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8179,0 +va (VaSet +) +xt "198700,155400,200000,156600" +st "b" +ju 2 +blo "200000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*302 (CptPort +uid 8180,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8181,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,159625,201750,160375" +) +tg (CPTG +uid 8182,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8183,0 +va (VaSet +) +xt "198700,159400,200000,160600" +st "d" +ju 2 +blo "200000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*303 (CptPort +uid 8184,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8185,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,157625,201750,158375" +) +tg (CPTG +uid 8186,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8187,0 +va (VaSet +) +xt "198700,157400,200000,158600" +st "c" +ju 2 +blo "200000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*304 (CptPort +uid 8188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8189,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,161625,185000,162375" +) +tg (CPTG +uid 8190,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8191,0 +va (VaSet +) +xt "186000,161400,195900,162600" +st "interpolateLinear" +blo "186000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 8193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,150000,201000,166000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8194,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*305 (Text +uid 8195,0 +va (VaSet +) +xt "185600,165800,189900,167000" +st "Curves" +blo "185600,166800" +tm "BdLibraryNameMgr" +) +*306 (Text +uid 8196,0 +va (VaSet +) +xt "185600,166800,199500,168000" +st "interpolatorCoefficients" +blo "185600,167800" +tm "CptNameMgr" +) +*307 (Text +uid 8197,0 +va (VaSet +) +xt "185600,167800,187500,169000" +st "I8" +blo "185600,168800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8198,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8199,0 +text (MLText +uid 8200,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,169800,202800,171800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*308 (SaComponent +uid 8237,0 +optionalChildren [ +*309 (CptPort +uid 8201,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8202,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,116625,185000,117375" +) +tg (CPTG +uid 8203,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8204,0 +va (VaSet +) +xt "186000,116400,191000,117600" +st "sample1" +blo "186000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*310 (CptPort +uid 8205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,118625,185000,119375" +) +tg (CPTG +uid 8207,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8208,0 +va (VaSet +) +xt "186000,118400,191000,119600" +st "sample2" +blo "186000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +*311 (CptPort +uid 8209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,120625,185000,121375" +) +tg (CPTG +uid 8211,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8212,0 +va (VaSet +) +xt "186000,120400,191000,121600" +st "sample3" +blo "186000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +) +) +) +*312 (CptPort +uid 8213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8214,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,122625,185000,123375" +) +tg (CPTG +uid 8215,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8216,0 +va (VaSet +) +xt "186000,122400,191000,123600" +st "sample4" +blo "186000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*313 (CptPort +uid 8217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8218,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,116625,201750,117375" +) +tg (CPTG +uid 8219,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8220,0 +va (VaSet +) +xt "198700,116400,200000,117600" +st "a" +ju 2 +blo "200000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*314 (CptPort +uid 8221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8222,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,118625,201750,119375" +) +tg (CPTG +uid 8223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8224,0 +va (VaSet +) +xt "198700,118400,200000,119600" +st "b" +ju 2 +blo "200000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*315 (CptPort +uid 8225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,122625,201750,123375" +) +tg (CPTG +uid 8227,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8228,0 +va (VaSet +) +xt "198700,122400,200000,123600" +st "d" +ju 2 +blo "200000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*316 (CptPort +uid 8229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8230,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,120625,201750,121375" +) +tg (CPTG +uid 8231,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8232,0 +va (VaSet +) +xt "198700,120400,200000,121600" +st "c" +ju 2 +blo "200000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*317 (CptPort +uid 8233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8234,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,124625,185000,125375" +) +tg (CPTG +uid 8235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8236,0 +va (VaSet +) +xt "186000,124400,195900,125600" +st "interpolateLinear" +blo "186000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 8238,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,113000,201000,129000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8239,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*318 (Text +uid 8240,0 +va (VaSet +) +xt "185600,128800,189900,130000" +st "Curves" +blo "185600,129800" +tm "BdLibraryNameMgr" +) +*319 (Text +uid 8241,0 +va (VaSet +) +xt "185600,129800,199500,131000" +st "interpolatorCoefficients" +blo "185600,130800" +tm "CptNameMgr" +) +*320 (Text +uid 8242,0 +va (VaSet +) +xt "185600,130800,188200,132000" +st "I12" +blo "185600,131800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8243,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8244,0 +text (MLText +uid 8245,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,132800,202800,134800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*321 (SaComponent +uid 8656,0 +optionalChildren [ +*322 (CptPort +uid 8628,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8629,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,116625,107000,117375" +) +tg (CPTG +uid 8630,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8631,0 +va (VaSet +) +xt "108000,116400,112000,117600" +st "dataIn" +blo "108000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*323 (CptPort +uid 8632,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8633,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,116625,123750,117375" +) +tg (CPTG +uid 8634,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8635,0 +va (VaSet +) +xt "117200,116400,122000,117600" +st "dataOut" +ju 2 +blo "122000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*324 (CptPort +uid 8636,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8637,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,124625,107000,125375" +) +tg (CPTG +uid 8638,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8639,0 +va (VaSet +) +xt "108000,124400,109900,125600" +st "en" +blo "108000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*325 (CptPort +uid 8640,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8641,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,128625,107000,129375" +) +tg (CPTG +uid 8642,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8643,0 +va (VaSet +) +xt "108000,128400,111400,129600" +st "clock" +blo "108000,129400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*326 (CptPort +uid 8644,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8645,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,130625,107000,131375" +) +tg (CPTG +uid 8646,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8647,0 +va (VaSet +) +xt "108000,130400,111300,131600" +st "reset" +blo "108000,131400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +*327 (CptPort +uid 8648,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8649,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,122625,107000,123375" +) +tg (CPTG +uid 8650,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8651,0 +va (VaSet +) +xt "108000,122400,111100,123600" +st "write" +blo "108000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +) +) +) +*328 (CptPort +uid 8652,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8653,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,118625,107000,119375" +) +tg (CPTG +uid 8654,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8655,0 +va (VaSet +) +xt "108000,118400,110900,119600" +st "addr" +blo "108000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +) +) +) +] +shape (Rectangle +uid 8657,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,113000,123000,133000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8658,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*329 (Text +uid 8659,0 +va (VaSet +) +xt "107600,132800,111900,134000" +st "Curves" +blo "107600,133800" +tm "BdLibraryNameMgr" +) +*330 (Text +uid 8660,0 +va (VaSet +) +xt "107600,133800,113400,135000" +st "blockRAM" +blo "107600,134800" +tm "CptNameMgr" +) +*331 (Text +uid 8661,0 +va (VaSet +) +xt "107600,134800,110200,136000" +st "I21" +blo "107600,135800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8662,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8663,0 +text (MLText +uid 8664,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,136600,129600,138600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*332 (SaComponent +uid 8693,0 +optionalChildren [ +*333 (CptPort +uid 8665,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8666,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,153625,107000,154375" +) +tg (CPTG +uid 8667,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8668,0 +va (VaSet +) +xt "108000,153400,112000,154600" +st "dataIn" +blo "108000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*334 (CptPort +uid 8669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8670,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,153625,123750,154375" +) +tg (CPTG +uid 8671,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8672,0 +va (VaSet +) +xt "117200,153400,122000,154600" +st "dataOut" +ju 2 +blo "122000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*335 (CptPort +uid 8673,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8674,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,161625,107000,162375" +) +tg (CPTG +uid 8675,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8676,0 +va (VaSet +) +xt "108000,161400,109900,162600" +st "en" +blo "108000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*336 (CptPort +uid 8677,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8678,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,165625,107000,166375" +) +tg (CPTG +uid 8679,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8680,0 +va (VaSet +) +xt "108000,165400,111400,166600" +st "clock" +blo "108000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*337 (CptPort +uid 8681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8682,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,167625,107000,168375" +) +tg (CPTG +uid 8683,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8684,0 +va (VaSet +) +xt "108000,167400,111300,168600" +st "reset" +blo "108000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +*338 (CptPort +uid 8685,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8686,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,159625,107000,160375" +) +tg (CPTG +uid 8687,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8688,0 +va (VaSet +) +xt "108000,159400,111100,160600" +st "write" +blo "108000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +) +) +) +*339 (CptPort +uid 8689,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8690,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,155625,107000,156375" +) +tg (CPTG +uid 8691,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8692,0 +va (VaSet +) +xt "108000,155400,110900,156600" +st "addr" +blo "108000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +) +) +) +] +shape (Rectangle +uid 8694,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,150000,123000,170000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8695,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*340 (Text +uid 8696,0 +va (VaSet +) +xt "107600,169800,111900,171000" +st "Curves" +blo "107600,170800" +tm "BdLibraryNameMgr" +) +*341 (Text +uid 8697,0 +va (VaSet +) +xt "107600,170800,113400,172000" +st "blockRAM" +blo "107600,171800" +tm "CptNameMgr" +) +*342 (Text +uid 8698,0 +va (VaSet +) +xt "107600,171800,110200,173000" +st "I16" +blo "107600,172800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8699,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8700,0 +text (MLText +uid 8701,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,173600,129600,175600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*343 (SaComponent +uid 9102,0 +optionalChildren [ +*344 (CptPort +uid 9070,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9071,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,122625,161000,123375" +) +tg (CPTG +uid 9072,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9073,0 +va (VaSet +) +xt "162000,122400,165400,123600" +st "clock" +blo "162000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*345 (CptPort +uid 9074,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9075,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,124625,161000,125375" +) +tg (CPTG +uid 9076,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9077,0 +va (VaSet +) +xt "162000,124400,165300,125600" +st "reset" +blo "162000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*346 (CptPort +uid 9078,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9079,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,118625,161000,119375" +) +tg (CPTG +uid 9080,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9081,0 +va (VaSet +) +xt "162000,118400,169900,119600" +st "shiftSamples" +blo "162000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*347 (CptPort +uid 9082,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9083,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,116625,161000,117375" +) +tg (CPTG +uid 9084,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9085,0 +va (VaSet +) +xt "162000,116400,167400,117600" +st "sampleIn" +blo "162000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*348 (CptPort +uid 9086,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9087,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,116625,177750,117375" +) +tg (CPTG +uid 9088,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9089,0 +va (VaSet +) +xt "171000,116400,176000,117600" +st "sample1" +ju 2 +blo "176000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*349 (CptPort +uid 9090,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9091,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,118625,177750,119375" +) +tg (CPTG +uid 9092,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9093,0 +va (VaSet +) +xt "171000,118400,176000,119600" +st "sample2" +ju 2 +blo "176000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*350 (CptPort +uid 9094,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9095,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,120625,177750,121375" +) +tg (CPTG +uid 9096,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9097,0 +va (VaSet +) +xt "171000,120400,176000,121600" +st "sample3" +ju 2 +blo "176000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*351 (CptPort +uid 9098,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9099,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,122625,177750,123375" +) +tg (CPTG +uid 9100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9101,0 +va (VaSet +) +xt "171000,122400,176000,123600" +st "sample4" +ju 2 +blo "176000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 9103,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,113000,177000,127000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9104,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*352 (Text +uid 9105,0 +va (VaSet +) +xt "161600,126800,165900,128000" +st "Curves" +blo "161600,127800" +tm "BdLibraryNameMgr" +) +*353 (Text +uid 9106,0 +va (VaSet +) +xt "161600,127800,176000,129000" +st "interpolatorShiftRegister" +blo "161600,128800" +tm "CptNameMgr" +) +*354 (Text +uid 9107,0 +va (VaSet +) +xt "161600,128800,164200,130000" +st "I11" +blo "161600,129800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9108,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9109,0 +text (MLText +uid 9110,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,130600,179100,131600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*355 (SaComponent +uid 9143,0 +optionalChildren [ +*356 (CptPort +uid 9111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9112,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,159625,161000,160375" +) +tg (CPTG +uid 9113,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9114,0 +va (VaSet +) +xt "162000,159400,165400,160600" +st "clock" +blo "162000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*357 (CptPort +uid 9115,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9116,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,161625,161000,162375" +) +tg (CPTG +uid 9117,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9118,0 +va (VaSet +) +xt "162000,161400,165300,162600" +st "reset" +blo "162000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*358 (CptPort +uid 9119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,155625,161000,156375" +) +tg (CPTG +uid 9121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9122,0 +va (VaSet +) +xt "162000,155400,169900,156600" +st "shiftSamples" +blo "162000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*359 (CptPort +uid 9123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,153625,161000,154375" +) +tg (CPTG +uid 9125,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9126,0 +va (VaSet +) +xt "162000,153400,167400,154600" +st "sampleIn" +blo "162000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*360 (CptPort +uid 9127,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9128,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,153625,177750,154375" +) +tg (CPTG +uid 9129,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9130,0 +va (VaSet +) +xt "171000,153400,176000,154600" +st "sample1" +ju 2 +blo "176000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*361 (CptPort +uid 9131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,155625,177750,156375" +) +tg (CPTG +uid 9133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9134,0 +va (VaSet +) +xt "171000,155400,176000,156600" +st "sample2" +ju 2 +blo "176000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*362 (CptPort +uid 9135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,157625,177750,158375" +) +tg (CPTG +uid 9137,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9138,0 +va (VaSet +) +xt "171000,157400,176000,158600" +st "sample3" +ju 2 +blo "176000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*363 (CptPort +uid 9139,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9140,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,159625,177750,160375" +) +tg (CPTG +uid 9141,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9142,0 +va (VaSet +) +xt "171000,159400,176000,160600" +st "sample4" +ju 2 +blo "176000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 9144,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,150000,177000,164000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9145,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*364 (Text +uid 9146,0 +va (VaSet +) +xt "161600,163800,165900,165000" +st "Curves" +blo "161600,164800" +tm "BdLibraryNameMgr" +) +*365 (Text +uid 9147,0 +va (VaSet +) +xt "161600,164800,176000,166000" +st "interpolatorShiftRegister" +blo "161600,165800" +tm "CptNameMgr" +) +*366 (Text +uid 9148,0 +va (VaSet +) +xt "161600,165800,163500,167000" +st "I7" +blo "161600,166800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9149,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9150,0 +text (MLText +uid 9151,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,167600,179100,168600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*367 (SaComponent +uid 9190,0 +optionalChildren [ +*368 (CptPort +uid 9154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9155,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,130625,217000,131375" +) +tg (CPTG +uid 9156,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9157,0 +va (VaSet +) +xt "218000,130400,221400,131600" +st "clock" +blo "218000,131400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*369 (CptPort +uid 9158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,132625,217000,133375" +) +tg (CPTG +uid 9160,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9161,0 +va (VaSet +) +xt "218000,132400,221300,133600" +st "reset" +blo "218000,133400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*370 (CptPort +uid 9162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9163,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,124625,217000,125375" +) +tg (CPTG +uid 9164,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9165,0 +va (VaSet +) +xt "218000,124400,227100,125600" +st "restartPolynom" +blo "218000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +) +) +) +*371 (CptPort +uid 9166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9167,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,122625,217000,123375" +) +tg (CPTG +uid 9168,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9169,0 +va (VaSet +) +xt "218000,122400,219300,123600" +st "d" +blo "218000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*372 (CptPort +uid 9170,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9171,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,116625,233750,117375" +) +tg (CPTG +uid 9172,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9173,0 +va (VaSet +) +xt "225800,116400,232000,117600" +st "sampleOut" +ju 2 +blo "232000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*373 (CptPort +uid 9174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,120625,217000,121375" +) +tg (CPTG +uid 9176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9177,0 +va (VaSet +) +xt "218000,120400,219300,121600" +st "c" +blo "218000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*374 (CptPort +uid 9178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,118625,217000,119375" +) +tg (CPTG +uid 9180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9181,0 +va (VaSet +) +xt "218000,118400,219300,119600" +st "b" +blo "218000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*375 (CptPort +uid 9182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9183,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,116625,217000,117375" +) +tg (CPTG +uid 9184,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9185,0 +va (VaSet +) +xt "218000,116400,219300,117600" +st "a" +blo "218000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*376 (CptPort +uid 9186,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9187,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,128625,217000,129375" +) +tg (CPTG +uid 9188,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9189,0 +va (VaSet +) +xt "218000,128400,219900,129600" +st "en" +blo "218000,129400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 9191,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,113000,233000,136000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9192,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*377 (Text +uid 9193,0 +va (VaSet +) +xt "217600,135800,221900,137000" +st "Curves" +blo "217600,136800" +tm "BdLibraryNameMgr" +) +*378 (Text +uid 9194,0 +va (VaSet +) +xt "217600,136800,234600,138000" +st "interpolatorCalculatePolynom" +blo "217600,137800" +tm "CptNameMgr" +) +*379 (Text +uid 9195,0 +va (VaSet +) +xt "217600,137800,220200,139000" +st "I13" +blo "217600,138800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9196,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9197,0 +text (MLText +uid 9198,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,139000,241200,142000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*380 (SaComponent +uid 9235,0 +optionalChildren [ +*381 (CptPort +uid 9199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9200,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,167625,217000,168375" +) +tg (CPTG +uid 9201,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9202,0 +va (VaSet +) +xt "218000,167400,221400,168600" +st "clock" +blo "218000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*382 (CptPort +uid 9203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9204,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,169625,217000,170375" +) +tg (CPTG +uid 9205,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9206,0 +va (VaSet +) +xt "218000,169400,221300,170600" +st "reset" +blo "218000,170400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*383 (CptPort +uid 9207,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9208,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,161625,217000,162375" +) +tg (CPTG +uid 9209,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9210,0 +va (VaSet +) +xt "218000,161400,227100,162600" +st "restartPolynom" +blo "218000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +) +) +) +*384 (CptPort +uid 9211,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9212,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,159625,217000,160375" +) +tg (CPTG +uid 9213,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9214,0 +va (VaSet +) +xt "218000,159400,219300,160600" +st "d" +blo "218000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*385 (CptPort +uid 9215,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9216,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,153625,233750,154375" +) +tg (CPTG +uid 9217,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9218,0 +va (VaSet +) +xt "225800,153400,232000,154600" +st "sampleOut" +ju 2 +blo "232000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*386 (CptPort +uid 9219,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9220,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,157625,217000,158375" +) +tg (CPTG +uid 9221,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9222,0 +va (VaSet +) +xt "218000,157400,219300,158600" +st "c" +blo "218000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*387 (CptPort +uid 9223,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9224,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,155625,217000,156375" +) +tg (CPTG +uid 9225,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9226,0 +va (VaSet +) +xt "218000,155400,219300,156600" +st "b" +blo "218000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*388 (CptPort +uid 9227,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,153625,217000,154375" +) +tg (CPTG +uid 9229,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9230,0 +va (VaSet +) +xt "218000,153400,219300,154600" +st "a" +blo "218000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*389 (CptPort +uid 9231,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9232,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,165625,217000,166375" +) +tg (CPTG +uid 9233,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9234,0 +va (VaSet +) +xt "218000,165400,219900,166600" +st "en" +blo "218000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 9236,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,150000,233000,173000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9237,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*390 (Text +uid 9238,0 +va (VaSet +) +xt "217600,172800,221900,174000" +st "Curves" +blo "217600,173800" +tm "BdLibraryNameMgr" +) +*391 (Text +uid 9239,0 +va (VaSet +) +xt "217600,173800,234600,175000" +st "interpolatorCalculatePolynom" +blo "217600,174800" +tm "CptNameMgr" +) +*392 (Text +uid 9240,0 +va (VaSet +) +xt "217600,174800,219500,176000" +st "I9" +blo "217600,175800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9241,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9242,0 +text (MLText +uid 9243,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,176000,241200,179000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*393 (Net +uid 9646,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 38 +suid 70,0 +) +declText (MLText +uid 9647,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,43600,230600,44600" +st "SIGNAL interpolateLin : std_ulogic" +) +) +*394 (SaComponent +uid 10416,0 +optionalChildren [ +*395 (CptPort +uid 10425,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10426,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,209625,75000,210375" +) +tg (CPTG +uid 10427,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10428,0 +va (VaSet +) +xt "76000,209400,77900,210600" +st "en" +blo "76000,210400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +) +) +) +*396 (CptPort +uid 10429,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10430,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,213625,75000,214375" +) +tg (CPTG +uid 10431,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10432,0 +va (VaSet +) +xt "76000,213400,79400,214600" +st "clock" +blo "76000,214400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*397 (CptPort +uid 10433,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10434,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,215625,75000,216375" +) +tg (CPTG +uid 10435,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10436,0 +va (VaSet +) +xt "76000,215400,79300,216600" +st "reset" +blo "76000,216400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*398 (CptPort +uid 10437,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10438,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,207625,75000,208375" +) +tg (CPTG +uid 10439,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10440,0 +va (VaSet +) +xt "76000,207400,82500,208600" +st "updateMem" +blo "76000,208400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +) +) +) +*399 (CptPort +uid 10441,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10442,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,205625,91750,206375" +) +tg (CPTG +uid 10443,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10444,0 +va (VaSet +) +xt "87100,205400,90000,206600" +st "addr" +ju 2 +blo "90000,206400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*400 (CptPort +uid 10445,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10446,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,205625,75000,206375" +) +tg (CPTG +uid 10447,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10448,0 +va (VaSet +) +xt "76000,205400,83100,206600" +st "patternSize" +blo "76000,206400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 10417,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,202000,91000,218000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10418,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*401 (Text +uid 10419,0 +va (VaSet +) +xt "75600,217800,79900,219000" +st "Curves" +blo "75600,218800" +tm "BdLibraryNameMgr" +) +*402 (Text +uid 10420,0 +va (VaSet +) +xt "75600,218800,91000,220000" +st "blockRAMAddressCounter" +blo "75600,219800" +tm "CptNameMgr" +) +*403 (Text +uid 10421,0 +va (VaSet +) +xt "75600,219800,78200,221000" +st "I30" +blo "75600,220800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 10422,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 10423,0 +text (MLText +uid 10424,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,221600,98800,223600" +st "addressBitNb = patternAddressBitNb ( positive ) +patternSizeBitNb = dataBitNb/2 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*404 (SaComponent +uid 10494,0 +optionalChildren [ +*405 (CptPort +uid 10503,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10504,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,203625,107000,204375" +) +tg (CPTG +uid 10505,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10506,0 +va (VaSet +) +xt "108000,203400,112000,204600" +st "dataIn" +blo "108000,204400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*406 (CptPort +uid 10507,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10508,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,203625,123750,204375" +) +tg (CPTG +uid 10509,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10510,0 +va (VaSet +) +xt "117200,203400,122000,204600" +st "dataOut" +ju 2 +blo "122000,204400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*407 (CptPort +uid 10511,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10512,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,211625,107000,212375" +) +tg (CPTG +uid 10513,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10514,0 +va (VaSet +) +xt "108000,211400,109900,212600" +st "en" +blo "108000,212400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*408 (CptPort +uid 10515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,215625,107000,216375" +) +tg (CPTG +uid 10517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10518,0 +va (VaSet +) +xt "108000,215400,111400,216600" +st "clock" +blo "108000,216400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*409 (CptPort +uid 10519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,217625,107000,218375" +) +tg (CPTG +uid 10521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10522,0 +va (VaSet +) +xt "108000,217400,111300,218600" +st "reset" +blo "108000,218400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +*410 (CptPort +uid 10523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10524,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,209625,107000,210375" +) +tg (CPTG +uid 10525,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10526,0 +va (VaSet +) +xt "108000,209400,111100,210600" +st "write" +blo "108000,210400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +) +) +) +*411 (CptPort +uid 10527,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10528,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,205625,107000,206375" +) +tg (CPTG +uid 10529,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10530,0 +va (VaSet +) +xt "108000,205400,110900,206600" +st "addr" +blo "108000,206400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +) +) +) +] +shape (Rectangle +uid 10495,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,200000,123000,220000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10496,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*412 (Text +uid 10497,0 +va (VaSet +) +xt "107600,219800,111900,221000" +st "Curves" +blo "107600,220800" +tm "BdLibraryNameMgr" +) +*413 (Text +uid 10498,0 +va (VaSet +) +xt "107600,220800,113400,222000" +st "blockRAM" +blo "107600,221800" +tm "CptNameMgr" +) +*414 (Text +uid 10499,0 +va (VaSet +) +xt "107600,221800,110200,223000" +st "I32" +blo "107600,222800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 10500,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 10501,0 +text (MLText +uid 10502,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,223600,129600,225600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*415 (Net +uid 10607,0 +decl (Decl +n "cntIncrZ" +t "std_ulogic" +o 33 +suid 71,0 +) +declText (MLText +uid 10608,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,39100,230200,40100" +st "SIGNAL cntIncrZ : std_ulogic" +) +) +*416 (Net +uid 10609,0 +decl (Decl +n "addrZ" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 26 +suid 72,0 +) +declText (MLText +uid 10610,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,32800,244900,33800" +st "SIGNAL addrZ : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*417 (Net +uid 10611,0 +decl (Decl +n "memZ" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 51 +suid 73,0 +) +declText (MLText +uid 10612,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,55300,244700,56300" +st "SIGNAL memZ : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*418 (Net +uid 10613,0 +decl (Decl +n "memWrZ" +t "std_ulogic" +o 48 +suid 74,0 +) +declText (MLText +uid 10614,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,52600,231300,53600" +st "SIGNAL memWrZ : std_ulogic" +) +) +*419 (Net +uid 10615,0 +decl (Decl +n "memEnZ" +t "std_ulogic" +o 45 +suid 75,0 +) +declText (MLText +uid 10616,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,49900,231200,50900" +st "SIGNAL memEnZ : std_ulogic" +) +) +*420 (SaComponent +uid 10651,0 +optionalChildren [ +*421 (CptPort +uid 10623,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10624,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,31625,43750,32375" +) +tg (CPTG +uid 10625,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10626,0 +va (VaSet +) +xt "35400,31400,42000,32600" +st "selControl" +ju 2 +blo "42000,32400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selControl" +t "std_ulogic" +o 1 +) +) +) +*422 (CptPort +uid 10627,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10628,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,31625,27000,32375" +) +tg (CPTG +uid 10629,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10630,0 +va (VaSet +) +xt "28000,31400,30900,32600" +st "addr" +blo "28000,32400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*423 (CptPort +uid 10631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10632,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,33625,43750,34375" +) +tg (CPTG +uid 10633,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10634,0 +va (VaSet +) +xt "37700,33400,42000,34600" +st "selSize" +ju 2 +blo "42000,34400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSize" +t "std_ulogic" +o 3 +) +) +) +*424 (CptPort +uid 10635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10636,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,35625,43750,36375" +) +tg (CPTG +uid 10637,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10638,0 +va (VaSet +) +xt "36700,35400,42000,36600" +st "selSpeed" +ju 2 +blo "42000,36400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 4 +) +) +) +*425 (CptPort +uid 10639,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10640,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,37625,43750,38375" +) +tg (CPTG +uid 10641,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10642,0 +va (VaSet +) +xt "39100,37400,42000,38600" +st "selX" +ju 2 +blo "42000,38400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selX" +t "std_ulogic" +o 5 +) +) +) +*426 (CptPort +uid 10643,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10644,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,39625,43750,40375" +) +tg (CPTG +uid 10645,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10646,0 +va (VaSet +) +xt "39100,39400,42000,40600" +st "selY" +ju 2 +blo "42000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selY" +t "std_ulogic" +o 6 +) +) +) +*427 (CptPort +uid 10647,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10648,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,41625,43750,42375" +) +tg (CPTG +uid 10649,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10650,0 +va (VaSet +) +xt "39100,41400,42000,42600" +st "selZ" +ju 2 +blo "42000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selZ" +t "std_ulogic" +o 7 +) +) +) +] +shape (Rectangle +uid 10652,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,28000,43000,46000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10653,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*428 (Text +uid 10654,0 +va (VaSet +) +xt "27600,45800,31900,47000" +st "Curves" +blo "27600,46800" +tm "BdLibraryNameMgr" +) +*429 (Text +uid 10655,0 +va (VaSet +) +xt "27600,46800,41200,48000" +st "periphAddressDecoder" +blo "27600,47800" +tm "CptNameMgr" +) +*430 (Text +uid 10656,0 +va (VaSet +) +xt "27600,47800,29500,49000" +st "I2" +blo "27600,48800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 10657,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 10658,0 +text (MLText +uid 10659,0 +va (VaSet +font "Verdana,8,0" +) +xt "27000,49600,46700,50600" +st "addressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*431 (Net +uid 10660,0 +decl (Decl +n "selZ" +t "std_ulogic" +o 76 +suid 76,0 +) +declText (MLText +uid 10661,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,77800,229800,78800" +st "SIGNAL selZ : std_ulogic" +) +) +*432 (PortIoOut +uid 10878,0 +shape (CompositeShape +uid 10879,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 10880,0 +sl 0 +ro 270 +xt "209500,205625,211000,206375" +) +(Line +uid 10881,0 +sl 0 +ro 270 +xt "209000,206000,209500,206000" +pts [ +"209000,206000" +"209500,206000" +] +) +] +) +tg (WTG +uid 10882,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10883,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "212000,205300,215700,206700" +st "outZ" +blo "212000,206500" +tm "WireNameMgr" +) +) +) +*433 (Net +uid 10890,0 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 77,0 +) +declText (MLText +uid 10891,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,13900,226800,14900" +st "outZ : std_ulogic" +) +) +*434 (HdlText +uid 10892,0 +optionalChildren [ +*435 (EmbeddedText +uid 10897,0 +commentText (CommentText +uid 10898,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 10899,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "186000,204000,200300,208000" +) +oxt "0,0,18000,5000" +text (MLText +uid 10900,0 +va (VaSet +) +xt "186200,204200,198500,207800" +st " +outZ <= '0' when ( (to_01(unsigned(sampleZ1)) = 0) or (to_01(unsigned(sampleZ2)) = 0) ) else '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14300 +) +) +) +] +shape (Rectangle +uid 10893,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "185000,202000,201000,210000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10894,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*436 (Text +uid 10895,0 +va (VaSet +) +xt "185400,210000,188000,211200" +st "eb9" +blo "185400,211000" +tm "HdlTextNameMgr" +) +*437 (Text +uid 10896,0 +va (VaSet +) +xt "185400,211000,186800,212200" +st "9" +blo "185400,212000" +tm "HdlTextNumberMgr" +) +] +) +) +*438 (SaComponent +uid 11389,0 +optionalChildren [ +*439 (CptPort +uid 11353,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11354,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,133625,91750,134375" +) +tg (CPTG +uid 11355,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11356,0 +va (VaSet +) +xt "85600,133400,90000,134600" +st "memWr" +ju 2 +blo "90000,134400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*440 (CptPort +uid 11357,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11358,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,129625,75000,130375" +) +tg (CPTG +uid 11359,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11360,0 +va (VaSet +) +xt "76000,129400,78200,130600" +st "sel" +blo "76000,130400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*441 (CptPort +uid 11361,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11362,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,135625,91750,136375" +) +tg (CPTG +uid 11363,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11364,0 +va (VaSet +) +xt "85600,135400,90000,136600" +st "memEn" +ju 2 +blo "90000,136400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*442 (CptPort +uid 11365,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11366,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,133625,75000,134375" +) +tg (CPTG +uid 11367,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11368,0 +va (VaSet +) +xt "76000,133400,80100,134600" +st "update" +blo "76000,134400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*443 (CptPort +uid 11369,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11370,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,131625,75000,132375" +) +tg (CPTG +uid 11371,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11372,0 +va (VaSet +) +xt "76000,131400,77800,132600" +st "wr" +blo "76000,132400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*444 (CptPort +uid 11373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11374,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,129625,91750,130375" +) +tg (CPTG +uid 11375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11376,0 +va (VaSet +) +xt "85600,129400,90000,130600" +st "cntIncr" +ju 2 +blo "90000,130400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*445 (CptPort +uid 11377,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11378,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,135625,75000,136375" +) +tg (CPTG +uid 11379,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11380,0 +va (VaSet +) +xt "76000,135400,82300,136600" +st "newSample" +blo "76000,136400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*446 (CptPort +uid 11381,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11382,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,139625,75000,140375" +) +tg (CPTG +uid 11383,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11384,0 +va (VaSet +) +xt "76000,139400,79400,140600" +st "clock" +blo "76000,140400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*447 (CptPort +uid 11385,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11386,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,141625,75000,142375" +) +tg (CPTG +uid 11387,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11388,0 +va (VaSet +) +xt "76000,141400,79300,142600" +st "reset" +blo "76000,142400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11390,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,126000,91000,144000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11391,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*448 (Text +uid 11392,0 +va (VaSet +) +xt "75600,143800,79900,145000" +st "Curves" +blo "75600,144800" +tm "BdLibraryNameMgr" +) +*449 (Text +uid 11393,0 +va (VaSet +) +xt "75600,144800,85800,146000" +st "blockRAMControl" +blo "75600,145800" +tm "CptNameMgr" +) +*450 (Text +uid 11394,0 +va (VaSet +) +xt "75600,145800,78200,147000" +st "I19" +blo "75600,146800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11395,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11396,0 +text (MLText +uid 11397,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "43000,118000,43000,118000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*451 (SaComponent +uid 11434,0 +optionalChildren [ +*452 (CptPort +uid 11398,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11399,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,183625,91750,184375" +) +tg (CPTG +uid 11400,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11401,0 +va (VaSet +) +xt "85600,183400,90000,184600" +st "memWr" +ju 2 +blo "90000,184400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*453 (CptPort +uid 11402,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11403,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,179625,75000,180375" +) +tg (CPTG +uid 11404,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11405,0 +va (VaSet +) +xt "76000,179400,78200,180600" +st "sel" +blo "76000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*454 (CptPort +uid 11406,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11407,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,185625,91750,186375" +) +tg (CPTG +uid 11408,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11409,0 +va (VaSet +) +xt "85600,185400,90000,186600" +st "memEn" +ju 2 +blo "90000,186400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*455 (CptPort +uid 11410,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11411,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,183625,75000,184375" +) +tg (CPTG +uid 11412,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11413,0 +va (VaSet +) +xt "76000,183400,80100,184600" +st "update" +blo "76000,184400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*456 (CptPort +uid 11414,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11415,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,181625,75000,182375" +) +tg (CPTG +uid 11416,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11417,0 +va (VaSet +) +xt "76000,181400,77800,182600" +st "wr" +blo "76000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*457 (CptPort +uid 11418,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11419,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,179625,91750,180375" +) +tg (CPTG +uid 11420,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11421,0 +va (VaSet +) +xt "85600,179400,90000,180600" +st "cntIncr" +ju 2 +blo "90000,180400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*458 (CptPort +uid 11422,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11423,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,185625,75000,186375" +) +tg (CPTG +uid 11424,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11425,0 +va (VaSet +) +xt "76000,185400,82300,186600" +st "newSample" +blo "76000,186400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*459 (CptPort +uid 11426,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11427,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,189625,75000,190375" +) +tg (CPTG +uid 11428,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11429,0 +va (VaSet +) +xt "76000,189400,79400,190600" +st "clock" +blo "76000,190400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*460 (CptPort +uid 11430,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11431,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,191625,75000,192375" +) +tg (CPTG +uid 11432,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11433,0 +va (VaSet +) +xt "76000,191400,79300,192600" +st "reset" +blo "76000,192400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11435,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,176000,91000,194000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11436,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*461 (Text +uid 11437,0 +va (VaSet +) +xt "75600,193800,79900,195000" +st "Curves" +blo "75600,194800" +tm "BdLibraryNameMgr" +) +*462 (Text +uid 11438,0 +va (VaSet +) +xt "75600,194800,85800,196000" +st "blockRAMControl" +blo "75600,195800" +tm "CptNameMgr" +) +*463 (Text +uid 11439,0 +va (VaSet +) +xt "75600,195800,78200,197000" +st "I17" +blo "75600,196800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11440,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11441,0 +text (MLText +uid 11442,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "43000,168000,43000,168000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*464 (SaComponent +uid 11479,0 +optionalChildren [ +*465 (CptPort +uid 11443,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11444,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,233625,91750,234375" +) +tg (CPTG +uid 11445,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11446,0 +va (VaSet +) +xt "85600,233400,90000,234600" +st "memWr" +ju 2 +blo "90000,234400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*466 (CptPort +uid 11447,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11448,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,229625,75000,230375" +) +tg (CPTG +uid 11449,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11450,0 +va (VaSet +) +xt "76000,229400,78200,230600" +st "sel" +blo "76000,230400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*467 (CptPort +uid 11451,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11452,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,235625,91750,236375" +) +tg (CPTG +uid 11453,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11454,0 +va (VaSet +) +xt "85600,235400,90000,236600" +st "memEn" +ju 2 +blo "90000,236400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*468 (CptPort +uid 11455,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11456,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,233625,75000,234375" +) +tg (CPTG +uid 11457,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11458,0 +va (VaSet +) +xt "76000,233400,80100,234600" +st "update" +blo "76000,234400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*469 (CptPort +uid 11459,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11460,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,231625,75000,232375" +) +tg (CPTG +uid 11461,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11462,0 +va (VaSet +) +xt "76000,231400,77800,232600" +st "wr" +blo "76000,232400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*470 (CptPort +uid 11463,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11464,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,229625,91750,230375" +) +tg (CPTG +uid 11465,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11466,0 +va (VaSet +) +xt "85600,229400,90000,230600" +st "cntIncr" +ju 2 +blo "90000,230400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*471 (CptPort +uid 11467,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11468,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,235625,75000,236375" +) +tg (CPTG +uid 11469,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11470,0 +va (VaSet +) +xt "76000,235400,82300,236600" +st "newSample" +blo "76000,236400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*472 (CptPort +uid 11471,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11472,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,239625,75000,240375" +) +tg (CPTG +uid 11473,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11474,0 +va (VaSet +) +xt "76000,239400,79400,240600" +st "clock" +blo "76000,240400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*473 (CptPort +uid 11475,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11476,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,241625,75000,242375" +) +tg (CPTG +uid 11477,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11478,0 +va (VaSet +) +xt "76000,241400,79300,242600" +st "reset" +blo "76000,242400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11480,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,226000,91000,244000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11481,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*474 (Text +uid 11482,0 +va (VaSet +) +xt "75600,243800,79900,245000" +st "Curves" +blo "75600,244800" +tm "BdLibraryNameMgr" +) +*475 (Text +uid 11483,0 +va (VaSet +) +xt "75600,244800,85800,246000" +st "blockRAMControl" +blo "75600,245800" +tm "CptNameMgr" +) +*476 (Text +uid 11484,0 +va (VaSet +) +xt "75600,245800,78200,247000" +st "I31" +blo "75600,246800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11485,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11486,0 +text (MLText +uid 11487,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "43000,218000,43000,218000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*477 (SaComponent +uid 11488,0 +optionalChildren [ +*478 (CptPort +uid 11497,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11498,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,209625,161000,210375" +) +tg (CPTG +uid 11499,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11500,0 +va (VaSet +) +xt "162000,209400,165400,210600" +st "clock" +blo "162000,210400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*479 (CptPort +uid 11501,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11502,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,211625,161000,212375" +) +tg (CPTG +uid 11503,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11504,0 +va (VaSet +) +xt "162000,211400,165300,212600" +st "reset" +blo "162000,212400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*480 (CptPort +uid 11505,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11506,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,205625,161000,206375" +) +tg (CPTG +uid 11507,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11508,0 +va (VaSet +) +xt "162000,205400,169900,206600" +st "shiftSamples" +blo "162000,206400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*481 (CptPort +uid 11509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11510,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,203625,161000,204375" +) +tg (CPTG +uid 11511,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11512,0 +va (VaSet +) +xt "162000,203400,167400,204600" +st "sampleIn" +blo "162000,204400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*482 (CptPort +uid 11513,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11514,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,203625,177750,204375" +) +tg (CPTG +uid 11515,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11516,0 +va (VaSet +) +xt "171000,203400,176000,204600" +st "sample1" +ju 2 +blo "176000,204400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*483 (CptPort +uid 11517,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11518,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,205625,177750,206375" +) +tg (CPTG +uid 11519,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11520,0 +va (VaSet +) +xt "171000,205400,176000,206600" +st "sample2" +ju 2 +blo "176000,206400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*484 (CptPort +uid 11521,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11522,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,207625,177750,208375" +) +tg (CPTG +uid 11523,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11524,0 +va (VaSet +) +xt "171000,207400,176000,208600" +st "sample3" +ju 2 +blo "176000,208400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*485 (CptPort +uid 11525,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11526,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,209625,177750,210375" +) +tg (CPTG +uid 11527,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11528,0 +va (VaSet +) +xt "171000,209400,176000,210600" +st "sample4" +ju 2 +blo "176000,210400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 11489,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,200000,177000,214000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11490,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*486 (Text +uid 11491,0 +va (VaSet +) +xt "161600,213800,165900,215000" +st "Curves" +blo "161600,214800" +tm "BdLibraryNameMgr" +) +*487 (Text +uid 11492,0 +va (VaSet +) +xt "161600,214800,176000,216000" +st "interpolatorShiftRegister" +blo "161600,215800" +tm "CptNameMgr" +) +*488 (Text +uid 11493,0 +va (VaSet +) +xt "161600,215800,164200,217000" +st "I33" +blo "161600,216800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11494,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11495,0 +text (MLText +uid 11496,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,217600,179100,218600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*489 (Net +uid 11567,0 +decl (Decl +n "sampleZ1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 66 +suid 78,0 +) +declText (MLText +uid 11568,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,68800,240900,69800" +st "SIGNAL sampleZ1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*490 (Net +uid 11569,0 +decl (Decl +n "sampleZ2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 67 +suid 79,0 +) +declText (MLText +uid 11570,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,69700,240900,70700" +st "SIGNAL sampleZ2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*491 (HdlText +uid 11571,0 +optionalChildren [ +*492 (EmbeddedText +uid 11576,0 +commentText (CommentText +uid 11577,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 11578,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,202000,146300,206000" +) +oxt "0,0,18000,5000" +text (MLText +uid 11579,0 +va (VaSet +) +xt "132200,202200,146500,205800" +st " +samplesZ <= (others => '1') when selSinCos = '1' + else signed(memZ); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14300 +) +) +) +] +shape (Rectangle +uid 11572,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,200000,147000,208000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11573,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*493 (Text +uid 11574,0 +va (VaSet +) +xt "131400,208000,134700,209200" +st "eb10" +blo "131400,209000" +tm "HdlTextNameMgr" +) +*494 (Text +uid 11575,0 +va (VaSet +) +xt "131400,209000,133500,210200" +st "10" +blo "131400,210000" +tm "HdlTextNumberMgr" +) +] +) +) +*495 (Net +uid 11588,0 +decl (Decl +n "samplesZ" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 70 +suid 80,0 +) +declText (MLText +uid 11589,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,72400,240800,73400" +st "SIGNAL samplesZ : signed(signalBitNb-1 DOWNTO 0)" +) +) +*496 (SaComponent +uid 11858,0 +optionalChildren [ +*497 (CptPort +uid 11830,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11831,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,84625,281750,85375" +) +tg (CPTG +uid 11832,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11833,0 +va (VaSet +) +xt "277200,84400,280000,85600" +st "CLK" +ju 2 +blo "280000,85400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK" +t "std_ulogic" +o 17 +) +) +) +*498 (CptPort +uid 11834,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11835,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,86625,265000,87375" +) +tg (CPTG +uid 11836,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11837,0 +va (VaSet +) +xt "266000,86400,269400,87600" +st "clock" +blo "266000,87400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*499 (CptPort +uid 11838,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11839,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,80625,281750,81375" +) +tg (CPTG +uid 11840,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11841,0 +va (VaSet +) +xt "276600,80400,280000,81600" +st "CS_n" +ju 2 +blo "280000,81400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_n" +t "std_ulogic" +o 15 +) +) +) +*500 (CptPort +uid 11842,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11843,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,82625,265000,83375" +) +tg (CPTG +uid 11844,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11845,0 +va (VaSet +) +xt "266000,82400,270500,83600" +st "enConv" +blo "266000,83400" +) +) +thePort (LogicalPort +decl (Decl +n "enConv" +t "std_uLogic" +o 37 +) +) +) +*501 (CptPort +uid 11846,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11847,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,88625,265000,89375" +) +tg (CPTG +uid 11848,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11849,0 +va (VaSet +) +xt "266000,88400,269300,89600" +st "reset" +blo "266000,89400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*502 (CptPort +uid 11850,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11851,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,80625,265000,81375" +) +tg (CPTG +uid 11852,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11853,0 +va (VaSet +) +xt "266000,80400,270000,81600" +st "dataIn" +blo "266000,81400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 56 +) +) +) +*503 (CptPort +uid 11854,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11855,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,82625,281750,83375" +) +tg (CPTG +uid 11856,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11857,0 +va (VaSet +) +xt "277300,82400,280000,83600" +st "SDI" +ju 2 +blo "280000,83400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI" +t "std_ulogic" +o 16 +) +) +) +] +shape (Rectangle +uid 11859,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,77000,281000,91000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11860,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*504 (Text +uid 11861,0 +va (VaSet +) +xt "265150,90800,269450,92000" +st "Curves" +blo "265150,91800" +tm "BdLibraryNameMgr" +) +*505 (Text +uid 11862,0 +va (VaSet +) +xt "265150,91800,272950,93000" +st "dacInterface" +blo "265150,92800" +tm "CptNameMgr" +) +*506 (Text +uid 11863,0 +va (VaSet +) +xt "265150,92800,267750,94000" +st "I34" +blo "265150,93800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11864,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11865,0 +text (MLText +uid 11866,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,94600,280300,95600" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*507 (SaComponent +uid 11943,0 +optionalChildren [ +*508 (CptPort +uid 11952,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11953,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,62625,281750,63375" +) +tg (CPTG +uid 11954,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11955,0 +va (VaSet +) +xt "277200,62400,280000,63600" +st "CLK" +ju 2 +blo "280000,63400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK" +t "std_ulogic" +o 17 +) +) +) +*509 (CptPort +uid 11956,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11957,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,64625,265000,65375" +) +tg (CPTG +uid 11958,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11959,0 +va (VaSet +) +xt "266000,64400,269400,65600" +st "clock" +blo "266000,65400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*510 (CptPort +uid 11960,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11961,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,58625,281750,59375" +) +tg (CPTG +uid 11962,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11963,0 +va (VaSet +) +xt "276600,58400,280000,59600" +st "CS_n" +ju 2 +blo "280000,59400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_n" +t "std_ulogic" +o 15 +) +) +) +*511 (CptPort +uid 11964,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11965,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,60625,265000,61375" +) +tg (CPTG +uid 11966,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11967,0 +va (VaSet +) +xt "266000,60400,270500,61600" +st "enConv" +blo "266000,61400" +) +) +thePort (LogicalPort +decl (Decl +n "enConv" +t "std_uLogic" +o 37 +) +) +) +*512 (CptPort +uid 11968,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11969,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,66625,265000,67375" +) +tg (CPTG +uid 11970,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11971,0 +va (VaSet +) +xt "266000,66400,269300,67600" +st "reset" +blo "266000,67400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*513 (CptPort +uid 11972,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11973,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,58625,265000,59375" +) +tg (CPTG +uid 11974,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11975,0 +va (VaSet +) +xt "266000,58400,270000,59600" +st "dataIn" +blo "266000,59400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 56 +) +) +) +*514 (CptPort +uid 11976,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11977,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,60625,281750,61375" +) +tg (CPTG +uid 11978,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11979,0 +va (VaSet +) +xt "277300,60400,280000,61600" +st "SDI" +ju 2 +blo "280000,61400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI" +t "std_ulogic" +o 16 +) +) +) +] +shape (Rectangle +uid 11944,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,55000,281000,69000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11945,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*515 (Text +uid 11946,0 +va (VaSet +) +xt "265150,68800,269450,70000" +st "Curves" +blo "265150,69800" +tm "BdLibraryNameMgr" +) +*516 (Text +uid 11947,0 +va (VaSet +) +xt "265150,69800,272950,71000" +st "dacInterface" +blo "265150,70800" +tm "CptNameMgr" +) +*517 (Text +uid 11948,0 +va (VaSet +) +xt "265150,70800,267750,72000" +st "I35" +blo "265150,71800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11949,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11950,0 +text (MLText +uid 11951,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,72600,280300,73600" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*518 (PortIoOut +uid 12050,0 +shape (CompositeShape +uid 12051,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12052,0 +sl 0 +ro 270 +xt "289500,84625,291000,85375" +) +(Line +uid 12053,0 +sl 0 +ro 270 +xt "289000,85000,289500,85000" +pts [ +"289000,85000" +"289500,85000" +] +) +] +) +tg (WTG +uid 12054,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12055,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,84300,296800,85700" +st "CLK_X" +blo "292000,85500" +tm "WireNameMgr" +) +) +) +*519 (Net +uid 12062,0 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 81,0 +) +declText (MLText +uid 12063,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,16600,227300,17600" +st "CLK_X : std_ulogic" +) +) +*520 (PortIoOut +uid 12064,0 +shape (CompositeShape +uid 12065,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12066,0 +sl 0 +ro 270 +xt "289500,62625,291000,63375" +) +(Line +uid 12067,0 +sl 0 +ro 270 +xt "289000,63000,289500,63000" +pts [ +"289000,63000" +"289500,63000" +] +) +] +) +tg (WTG +uid 12068,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12069,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,62300,296700,63700" +st "CLK_Y" +blo "292000,63500" +tm "WireNameMgr" +) +) +) +*521 (Net +uid 12076,0 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 82,0 +) +declText (MLText +uid 12077,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,17500,227300,18500" +st "CLK_Y : std_ulogic" +) +) +*522 (PortIoOut +uid 12078,0 +shape (CompositeShape +uid 12079,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12080,0 +sl 0 +ro 270 +xt "289500,80625,291000,81375" +) +(Line +uid 12081,0 +sl 0 +ro 270 +xt "289000,81000,289500,81000" +pts [ +"289000,81000" +"289500,81000" +] +) +] +) +tg (WTG +uid 12082,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12083,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,80300,297700,81700" +st "CS_X_n" +blo "292000,81500" +tm "WireNameMgr" +) +) +) +*523 (Net +uid 12090,0 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 83,0 +) +declText (MLText +uid 12091,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,14800,227500,15800" +st "CS_X_n : std_ulogic" +) +) +*524 (PortIoOut +uid 12092,0 +shape (CompositeShape +uid 12093,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12094,0 +sl 0 +ro 270 +xt "289500,58625,291000,59375" +) +(Line +uid 12095,0 +sl 0 +ro 270 +xt "289000,59000,289500,59000" +pts [ +"289000,59000" +"289500,59000" +] +) +] +) +tg (WTG +uid 12096,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12097,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,58300,297600,59700" +st "CS_Y_n" +blo "292000,59500" +tm "WireNameMgr" +) +) +) +*525 (Net +uid 12104,0 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 84,0 +) +declText (MLText +uid 12105,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,18400,227500,19400" +st "CS_Y_n : std_ulogic" +) +) +*526 (PortIoOut +uid 12106,0 +shape (CompositeShape +uid 12107,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12108,0 +sl 0 +ro 270 +xt "289500,82625,291000,83375" +) +(Line +uid 12109,0 +sl 0 +ro 270 +xt "289000,83000,289500,83000" +pts [ +"289000,83000" +"289500,83000" +] +) +] +) +tg (WTG +uid 12110,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12111,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,82300,296600,83700" +st "SDI_X" +blo "292000,83500" +tm "WireNameMgr" +) +) +) +*527 (Net +uid 12118,0 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 85,0 +) +declText (MLText +uid 12119,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,15700,227100,16700" +st "SDI_X : std_ulogic" +) +) +*528 (PortIoOut +uid 12120,0 +shape (CompositeShape +uid 12121,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12122,0 +sl 0 +ro 270 +xt "289500,60625,291000,61375" +) +(Line +uid 12123,0 +sl 0 +ro 270 +xt "289000,61000,289500,61000" +pts [ +"289000,61000" +"289500,61000" +] +) +] +) +tg (WTG +uid 12124,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12125,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,60300,296500,61700" +st "SDI_Y" +blo "292000,61500" +tm "WireNameMgr" +) +) +) +*529 (Net +uid 12132,0 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 86,0 +) +declText (MLText +uid 12133,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,19300,227100,20300" +st "SDI_Y : std_ulogic" +) +) +*530 (Wire +uid 59,0 +shape (OrthoPolyLine +uid 60,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "3000,32000,6250,32000" +pts [ +"3000,32000" +"6250,32000" +] +) +start &12 +end &250 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 63,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,30600,6700,32000" +st "addr" +blo "3000,31800" +tm "WireNameMgr" +) +) +on &13 +) +*531 (Wire +uid 73,0 +shape (OrthoPolyLine +uid 74,0 +va (VaSet +vasetType 3 +) +xt "71000,24000,74250,24000" +pts [ +"71000,24000" +"74250,24000" +] +) +start &14 +end &288 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 77,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 78,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,22600,74800,24000" +st "clock" +blo "71000,23800" +tm "WireNameMgr" +) +) +on &15 +) +*532 (Wire +uid 87,0 +shape (OrthoPolyLine +uid 88,0 +va (VaSet +vasetType 3 +) +xt "19000,60000,26250,60000" +pts [ +"19000,60000" +"26250,60000" +] +) +start &16 +end &181 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 91,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 92,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,58600,21100,60000" +st "cs" +blo "19000,59800" +tm "WireNameMgr" +) +) +on &17 +) +*533 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "281750,154000,289000,154000" +pts [ +"281750,154000" +"289000,154000" +] +) +start &34 +end &18 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,152600,289700,154000" +st "outX" +blo "286000,153800" +tm "WireNameMgr" +) +) +on &19 +) +*534 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "281750,117000,289000,117000" +pts [ +"281750,117000" +"289000,117000" +] +) +start &65 +end &20 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,115600,289600,117000" +st "outY" +blo "286000,116800" +tm "WireNameMgr" +) +) +on &21 +) +*535 (Wire +uid 143,0 +shape (OrthoPolyLine +uid 144,0 +va (VaSet +vasetType 3 +) +xt "19000,96000,27000,96000" +pts [ +"19000,96000" +"27000,96000" +] +) +start &22 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 147,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 148,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,94600,21100,96000" +st "rd" +blo "19000,95800" +tm "WireNameMgr" +) +) +on &23 +) +*536 (Wire +uid 157,0 +shape (OrthoPolyLine +uid 158,0 +va (VaSet +vasetType 3 +) +xt "71000,26000,74250,26000" +pts [ +"71000,26000" +"74250,26000" +] +) +start &24 +end &289 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 161,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 162,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,24600,75100,26000" +st "reset" +blo "71000,25800" +tm "WireNameMgr" +) +) +on &25 +) +*537 (Wire +uid 171,0 +shape (OrthoPolyLine +uid 172,0 +va (VaSet +vasetType 3 +) +xt "19000,58000,26250,58000" +pts [ +"19000,58000" +"26250,58000" +] +) +start &26 +end &180 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 175,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 176,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,56600,22300,58000" +st "wrH" +blo "19000,57800" +tm "WireNameMgr" +) +) +on &27 +) +*538 (Wire +uid 185,0 +shape (OrthoPolyLine +uid 186,0 +va (VaSet +vasetType 3 +) +xt "19000,80000,26250,80000" +pts [ +"19000,80000" +"26250,80000" +] +) +start &28 +end &190 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 189,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 190,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,78600,22100,80000" +st "wrL" +blo "19000,79800" +tm "WireNameMgr" +) +) +on &29 +) +*539 (Wire +uid 354,0 +optionalChildren [ +*540 (BdJunction +uid 9152,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9153,0 +va (VaSet +vasetType 1 +) +xt "152600,155600,153400,156400" +radius 400 +) +) +*541 (BdJunction +uid 11549,0 +ps "OnConnectorStrategy" +shape (Circle +uid 11550,0 +va (VaSet +vasetType 1 +) +xt "152600,168600,153400,169400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 355,0 +va (VaSet +vasetType 3 +) +xt "153000,156000,181000,176000" +pts [ +"181000,176000" +"181000,169000" +"153000,169000" +"153000,156000" +"160250,156000" +] +) +start *542 (BdJunction +uid 564,0 +ps "OnConnectorStrategy" +shape (Circle +uid 565,0 +va (VaSet +vasetType 1 +) +xt "180600,175600,181400,176400" +radius 400 +) +) +end &358 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,154600,161600,156000" +st "newPolynom" +blo "152000,155800" +tm "WireNameMgr" +) +) +on &30 +) +*543 (Wire +uid 360,0 +optionalChildren [ +&542 +*544 (BdJunction +uid 9244,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9245,0 +va (VaSet +vasetType 1 +) +xt "204600,161600,205400,162400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 361,0 +va (VaSet +vasetType 3 +) +xt "177750,162000,216250,176000" +pts [ +"177750,176000" +"205000,176000" +"205000,162000" +"216250,162000" +] +) +start &117 +end &383 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 363,0 +va (VaSet +font "Verdana,12,0" +) +xt "201000,174600,210600,176000" +st "newPolynom" +blo "201000,175800" +tm "WireNameMgr" +) +) +on &30 +) +*545 (Wire +uid 364,0 +shape (OrthoPolyLine +uid 365,0 +va (VaSet +vasetType 3 +) +xt "157000,182000,160250,182000" +pts [ +"157000,182000" +"160250,182000" +] +) +end &119 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 368,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 369,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,180600,160100,182000" +st "reset" +blo "156000,181800" +tm "WireNameMgr" +) +) +on &25 +) +*546 (Wire +uid 370,0 +shape (OrthoPolyLine +uid 371,0 +va (VaSet +vasetType 3 +) +xt "157000,180000,160250,180000" +pts [ +"157000,180000" +"160250,180000" +] +) +end &118 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 374,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 375,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,178600,159800,180000" +st "clock" +blo "156000,179800" +tm "WireNameMgr" +) +) +on &15 +) +*547 (Wire +uid 376,0 +shape (OrthoPolyLine +uid 377,0 +va (VaSet +vasetType 3 +) +xt "157000,162000,160250,162000" +pts [ +"157000,162000" +"160250,162000" +] +) +end &357 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 381,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,160600,160100,162000" +st "reset" +blo "156000,161800" +tm "WireNameMgr" +) +) +on &25 +) +*548 (Wire +uid 382,0 +shape (OrthoPolyLine +uid 383,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,154000,160250,154000" +pts [ +"147000,154000" +"160250,154000" +] +) +start &129 +end &359 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 384,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 385,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,152600,155800,154000" +st "samplesX" +blo "149000,153800" +tm "WireNameMgr" +) +) +on &47 +) +*549 (Wire +uid 386,0 +shape (OrthoPolyLine +uid 387,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,156000,184250,156000" +pts [ +"177750,156000" +"184250,156000" +] +) +start &361 +end &297 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 388,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 389,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,154600,184900,156000" +st "sampleX2" +blo "178000,155800" +tm "WireNameMgr" +) +) +on &49 +) +*550 (Wire +uid 390,0 +shape (OrthoPolyLine +uid 391,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,154000,184250,154000" +pts [ +"177750,154000" +"184250,154000" +] +) +start &360 +end &296 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 393,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,152600,184900,154000" +st "sampleX1" +blo "178000,153800" +tm "WireNameMgr" +) +) +on &48 +) +*551 (Wire +uid 394,0 +shape (OrthoPolyLine +uid 395,0 +va (VaSet +vasetType 3 +) +xt "157000,160000,160250,160000" +pts [ +"157000,160000" +"160250,160000" +] +) +end &356 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 399,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,158600,159800,160000" +st "clock" +blo "156000,159800" +tm "WireNameMgr" +) +) +on &15 +) +*552 (Wire +uid 400,0 +shape (OrthoPolyLine +uid 401,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,154000,216250,154000" +pts [ +"201750,154000" +"216250,154000" +] +) +start &300 +end &388 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,152600,206150,154000" +st "aX" +blo "203750,153800" +tm "WireNameMgr" +) +) +on &52 +) +*553 (Wire +uid 404,0 +shape (OrthoPolyLine +uid 405,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,160000,184250,160000" +pts [ +"177750,160000" +"184250,160000" +] +) +start &363 +end &299 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 406,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 407,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,158600,184900,160000" +st "sampleX4" +blo "178000,159800" +tm "WireNameMgr" +) +) +on &51 +) +*554 (Wire +uid 408,0 +shape (OrthoPolyLine +uid 409,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,158000,184250,158000" +pts [ +"177750,158000" +"184250,158000" +] +) +start &362 +end &298 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 410,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 411,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,156600,184900,158000" +st "sampleX3" +blo "178000,157800" +tm "WireNameMgr" +) +) +on &50 +) +*555 (Wire +uid 412,0 +shape (OrthoPolyLine +uid 413,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,160000,216250,160000" +pts [ +"201750,160000" +"216250,160000" +] +) +start &302 +end &384 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 414,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 415,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,158600,206150,160000" +st "dX" +blo "203750,159800" +tm "WireNameMgr" +) +) +on &55 +) +*556 (Wire +uid 416,0 +shape (OrthoPolyLine +uid 417,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,158000,216250,158000" +pts [ +"201750,158000" +"216250,158000" +] +) +start &303 +end &386 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 419,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,156600,205950,158000" +st "cX" +blo "203750,157800" +tm "WireNameMgr" +) +) +on &54 +) +*557 (Wire +uid 420,0 +shape (OrthoPolyLine +uid 421,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,156000,216250,156000" +pts [ +"201750,156000" +"216250,156000" +] +) +start &301 +end &387 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 422,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 423,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,154600,206150,156000" +st "bX" +blo "203750,155800" +tm "WireNameMgr" +) +) +on &53 +) +*558 (Wire +uid 424,0 +shape (OrthoPolyLine +uid 425,0 +va (VaSet +vasetType 3 +) +xt "213000,170000,216250,170000" +pts [ +"213000,170000" +"216250,170000" +] +) +end &382 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,168600,216100,170000" +st "reset" +blo "212000,169800" +tm "WireNameMgr" +) +) +on &25 +) +*559 (Wire +uid 430,0 +shape (OrthoPolyLine +uid 431,0 +va (VaSet +vasetType 3 +) +xt "213000,168000,216250,168000" +pts [ +"213000,168000" +"216250,168000" +] +) +end &381 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 435,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,166600,215800,168000" +st "clock" +blo "212000,167800" +tm "WireNameMgr" +) +) +on &15 +) +*560 (Wire +uid 497,0 +shape (OrthoPolyLine +uid 498,0 +va (VaSet +vasetType 3 +) +xt "261000,160000,264250,160000" +pts [ +"261000,160000" +"264250,160000" +] +) +end &35 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 503,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 504,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,158600,264100,160000" +st "reset" +blo "260000,159800" +tm "WireNameMgr" +) +) +on &25 +) +*561 (Wire +uid 505,0 +shape (OrthoPolyLine +uid 506,0 +va (VaSet +vasetType 3 +) +xt "261000,158000,264250,158000" +pts [ +"261000,158000" +"264250,158000" +] +) +end &32 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 511,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 512,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,156600,263800,158000" +st "clock" +blo "260000,157800" +tm "WireNameMgr" +) +) +on &15 +) +*562 (Wire +uid 532,0 +shape (OrthoPolyLine +uid 533,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,154000,240250,154000" +pts [ +"233750,154000" +"240250,154000" +] +) +start &385 +end &41 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 534,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 535,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,152600,240100,154000" +st "sampleX" +blo "234000,153800" +tm "WireNameMgr" +) +) +on &45 +) +*563 (Wire +uid 538,0 +shape (OrthoPolyLine +uid 539,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,154000,264250,154000" +pts [ +"257750,154000" +"264250,154000" +] +) +start &40 +end &33 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 541,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,152600,265400,154000" +st "unsignedX" +blo "258000,153800" +tm "WireNameMgr" +) +) +on &46 +) +*564 (Wire +uid 767,0 +shape (OrthoPolyLine +uid 768,0 +va (VaSet +vasetType 3 +) +xt "205000,125000,216250,162000" +pts [ +"205000,162000" +"205000,125000" +"216250,125000" +] +) +start &544 +end &370 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 772,0 +va (VaSet +font "Verdana,12,0" +) +xt "205000,123600,214600,125000" +st "newPolynom" +blo "205000,124800" +tm "WireNameMgr" +) +) +on &30 +) +*565 (Wire +uid 775,0 +shape (OrthoPolyLine +uid 776,0 +va (VaSet +vasetType 3 +) +xt "153000,119000,160250,156000" +pts [ +"153000,156000" +"153000,119000" +"160250,119000" +] +) +start &540 +end &346 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 777,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 778,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,117600,161600,119000" +st "newPolynom" +blo "152000,118800" +tm "WireNameMgr" +) +) +on &30 +) +*566 (Wire +uid 779,0 +shape (OrthoPolyLine +uid 780,0 +va (VaSet +vasetType 3 +) +xt "157000,125000,160250,125000" +pts [ +"157000,125000" +"160250,125000" +] +) +end &345 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 783,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 784,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,123600,160100,125000" +st "reset" +blo "156000,124800" +tm "WireNameMgr" +) +) +on &25 +) +*567 (Wire +uid 785,0 +shape (OrthoPolyLine +uid 786,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,117000,184250,117000" +pts [ +"177750,117000" +"184250,117000" +] +) +start &348 +end &309 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 787,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 788,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,115600,184800,117000" +st "sampleY1" +blo "178000,116800" +tm "WireNameMgr" +) +) +on &71 +) +*568 (Wire +uid 789,0 +shape (OrthoPolyLine +uid 790,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,119000,184250,119000" +pts [ +"177750,119000" +"184250,119000" +] +) +start &349 +end &310 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 791,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 792,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,117600,184800,119000" +st "sampleY2" +blo "178000,118800" +tm "WireNameMgr" +) +) +on &72 +) +*569 (Wire +uid 793,0 +shape (OrthoPolyLine +uid 794,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,117000,160250,117000" +pts [ +"147000,117000" +"160250,117000" +] +) +start &167 +end &347 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 797,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 798,0 +va (VaSet +font "Verdana,12,0" +) +xt "148000,115600,154700,117000" +st "samplesY" +blo "148000,116800" +tm "WireNameMgr" +) +) +on &70 +) +*570 (Wire +uid 799,0 +shape (OrthoPolyLine +uid 800,0 +va (VaSet +vasetType 3 +) +xt "157000,123000,160250,123000" +pts [ +"157000,123000" +"160250,123000" +] +) +end &344 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 803,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 804,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,121600,159800,123000" +st "clock" +blo "156000,122800" +tm "WireNameMgr" +) +) +on &15 +) +*571 (Wire +uid 805,0 +shape (OrthoPolyLine +uid 806,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,123000,216250,123000" +pts [ +"201750,123000" +"216250,123000" +] +) +start &315 +end &371 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 808,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,121600,206050,123000" +st "dY" +blo "203750,122800" +tm "WireNameMgr" +) +) +on &78 +) +*572 (Wire +uid 809,0 +shape (OrthoPolyLine +uid 810,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,121000,184250,121000" +pts [ +"177750,121000" +"184250,121000" +] +) +start &350 +end &311 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 811,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 812,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,119600,184800,121000" +st "sampleY3" +blo "178000,120800" +tm "WireNameMgr" +) +) +on &73 +) +*573 (Wire +uid 813,0 +shape (OrthoPolyLine +uid 814,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,123000,184250,123000" +pts [ +"177750,123000" +"184250,123000" +] +) +start &351 +end &312 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 816,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,121600,184800,123000" +st "sampleY4" +blo "178000,122800" +tm "WireNameMgr" +) +) +on &74 +) +*574 (Wire +uid 817,0 +shape (OrthoPolyLine +uid 818,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,117000,216250,117000" +pts [ +"201750,117000" +"216250,117000" +] +) +start &313 +end &375 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 820,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,115600,206050,117000" +st "aY" +blo "203750,116800" +tm "WireNameMgr" +) +) +on &75 +) +*575 (Wire +uid 821,0 +shape (OrthoPolyLine +uid 822,0 +va (VaSet +vasetType 3 +) +xt "213000,133000,216250,133000" +pts [ +"213000,133000" +"216250,133000" +] +) +end &369 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 825,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 826,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,131600,216100,133000" +st "reset" +blo "212000,132800" +tm "WireNameMgr" +) +) +on &25 +) +*576 (Wire +uid 827,0 +shape (OrthoPolyLine +uid 828,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,119000,216250,119000" +pts [ +"201750,119000" +"216250,119000" +] +) +start &314 +end &374 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 829,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 830,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,117600,206050,119000" +st "bY" +blo "203750,118800" +tm "WireNameMgr" +) +) +on &76 +) +*577 (Wire +uid 831,0 +shape (OrthoPolyLine +uid 832,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,121000,216250,121000" +pts [ +"201750,121000" +"216250,121000" +] +) +start &316 +end &373 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 833,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 834,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,119600,205850,121000" +st "cY" +blo "203750,120800" +tm "WireNameMgr" +) +) +on &77 +) +*578 (Wire +uid 835,0 +shape (OrthoPolyLine +uid 836,0 +va (VaSet +vasetType 3 +) +xt "261000,123000,264250,123000" +pts [ +"261000,123000" +"264250,123000" +] +) +end &66 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 840,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,121600,264100,123000" +st "reset" +blo "260000,122800" +tm "WireNameMgr" +) +) +on &25 +) +*579 (Wire +uid 841,0 +shape (OrthoPolyLine +uid 842,0 +va (VaSet +vasetType 3 +) +xt "213000,131000,216250,131000" +pts [ +"213000,131000" +"216250,131000" +] +) +end &368 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 845,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 846,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,129600,215800,131000" +st "clock" +blo "212000,130800" +tm "WireNameMgr" +) +) +on &15 +) +*580 (Wire +uid 847,0 +shape (OrthoPolyLine +uid 848,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,117000,240250,117000" +pts [ +"233750,117000" +"240250,117000" +] +) +start &372 +end &58 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 849,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 850,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,115600,240000,117000" +st "sampleY" +blo "234000,116800" +tm "WireNameMgr" +) +) +on &79 +) +*581 (Wire +uid 851,0 +shape (OrthoPolyLine +uid 852,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,117000,264250,117000" +pts [ +"257750,117000" +"264250,117000" +] +) +start &57 +end &64 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 853,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 854,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,115600,265300,117000" +st "unsignedY" +blo "258000,116800" +tm "WireNameMgr" +) +) +on &80 +) +*582 (Wire +uid 855,0 +shape (OrthoPolyLine +uid 856,0 +va (VaSet +vasetType 3 +) +xt "261000,121000,264250,121000" +pts [ +"261000,121000" +"264250,121000" +] +) +end &63 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 859,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 860,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,119600,263800,121000" +st "clock" +blo "260000,120800" +tm "WireNameMgr" +) +) +on &15 +) +*583 (Wire +uid 1049,0 +shape (OrthoPolyLine +uid 1050,0 +va (VaSet +vasetType 3 +) +xt "43750,34000,74250,48000" +pts [ +"43750,34000" +"57000,34000" +"57000,48000" +"74250,48000" +] +) +start &423 +end &110 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1053,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1054,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,46600,72200,48000" +st "selSize" +blo "67000,47800" +tm "WireNameMgr" +) +) +on &82 +) +*584 (Wire +uid 1057,0 +shape (OrthoPolyLine +uid 1058,0 +va (VaSet +vasetType 3 +) +xt "43750,36000,74250,78000" +pts [ +"43750,36000" +"55000,36000" +"55000,78000" +"74250,78000" +] +) +start &424 +end &98 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1062,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,76600,73600,78000" +st "selSpeed" +blo "67000,77800" +tm "WireNameMgr" +) +) +on &83 +) +*585 (Wire +uid 1065,0 +shape (OrthoPolyLine +uid 1066,0 +va (VaSet +vasetType 3 +) +xt "43750,38000,74250,180000" +pts [ +"43750,38000" +"53000,38000" +"53000,180000" +"74250,180000" +] +) +start &425 +end &453 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,178600,70400,180000" +st "selX" +blo "67000,179800" +tm "WireNameMgr" +) +) +on &84 +) +*586 (Wire +uid 1073,0 +shape (OrthoPolyLine +uid 1074,0 +va (VaSet +vasetType 3 +) +xt "43750,40000,74250,130000" +pts [ +"43750,40000" +"51000,40000" +"51000,130000" +"74250,130000" +] +) +start &426 +end &440 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1077,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1078,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,128600,70300,130000" +st "selY" +blo "67000,129800" +tm "WireNameMgr" +) +) +on &85 +) +*587 (Wire +uid 1332,0 +shape (OrthoPolyLine +uid 1333,0 +va (VaSet +vasetType 3 +) +xt "43750,20000,74250,32000" +pts [ +"43750,32000" +"57000,32000" +"57000,20000" +"74250,20000" +] +) +start &421 +end &287 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1338,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1339,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,18600,75000,20000" +st "selControl" +blo "67000,19800" +tm "WireNameMgr" +) +) +on &81 +) +*588 (Wire +uid 1340,0 +shape (OrthoPolyLine +uid 1341,0 +va (VaSet +vasetType 3 +) +xt "67000,18000,74250,18000" +pts [ +"67000,18000" +"74250,18000" +] +) +end &286 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1347,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,16600,73500,18000" +st "wrLPulse" +blo "67000,17800" +tm "WireNameMgr" +) +) +on &197 +) +*589 (Wire +uid 1350,0 +shape (OrthoPolyLine +uid 1351,0 +va (VaSet +vasetType 3 +) +xt "91750,12000,106250,66000" +pts [ +"91750,12000" +"103000,12000" +"103000,66000" +"106250,66000" +] +) +start &282 +end &149 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1354,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1355,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,10600,96650,12000" +st "run" +blo "93750,11800" +tm "WireNameMgr" +) +) +on &86 +) +*590 (Wire +uid 1358,0 +shape (OrthoPolyLine +uid 1359,0 +va (VaSet +vasetType 3 +) +xt "91750,14000,99000,14000" +pts [ +"91750,14000" +"99000,14000" +] +) +start &284 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1363,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,12600,104550,14000" +st "updatePattern" +blo "93750,13800" +tm "WireNameMgr" +) +) +on &87 +) +*591 (Wire +uid 1472,0 +shape (OrthoPolyLine +uid 1473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,40000,99000,40000" +pts [ +"91750,40000" +"99000,40000" +] +) +start &106 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1477,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,38600,102650,40000" +st "patternSize" +blo "93750,39800" +tm "WireNameMgr" +) +) +on &88 +) +*592 (Wire +uid 1494,0 +shape (OrthoPolyLine +uid 1495,0 +va (VaSet +vasetType 3 +) +xt "71000,52000,74250,52000" +pts [ +"71000,52000" +"74250,52000" +] +) +end &111 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1500,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1501,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,50600,74800,52000" +st "clock" +blo "71000,51800" +tm "WireNameMgr" +) +) +on &15 +) +*593 (Wire +uid 1502,0 +shape (OrthoPolyLine +uid 1503,0 +va (VaSet +vasetType 3 +) +xt "71000,54000,74250,54000" +pts [ +"71000,54000" +"74250,54000" +] +) +end &112 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1508,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1509,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,52600,75100,54000" +st "reset" +blo "71000,53800" +tm "WireNameMgr" +) +) +on &25 +) +*594 (Wire +uid 1510,0 +shape (OrthoPolyLine +uid 1511,0 +va (VaSet +vasetType 3 +) +xt "67000,46000,74250,46000" +pts [ +"67000,46000" +"74250,46000" +] +) +end &109 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1516,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1517,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,44600,73700,46000" +st "wrHPulse" +blo "67000,45800" +tm "WireNameMgr" +) +) +on &187 +) +*595 (Wire +uid 1526,0 +optionalChildren [ +*596 (BdJunction +uid 1538,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1539,0 +va (VaSet +vasetType 1 +) +xt "58600,11600,59400,12400" +radius 400 +) +) +*597 (BdJunction +uid 1544,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1545,0 +va (VaSet +vasetType 1 +) +xt "58600,39600,59400,40400" +radius 400 +) +) +*598 (BdJunction +uid 1736,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1737,0 +va (VaSet +vasetType 1 +) +xt "58600,67600,59400,68400" +radius 400 +) +) +*599 (BdJunction +uid 2476,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2477,0 +va (VaSet +vasetType 1 +) +xt "58600,149600,59400,150400" +radius 400 +) +) +*600 (BdJunction +uid 3825,0 +ps "OnConnectorStrategy" +shape (Circle +uid 3826,0 +va (VaSet +vasetType 1 +) +xt "58600,99600,59400,100400" +radius 400 +) +) +*601 (BdJunction +uid 10621,0 +ps "OnConnectorStrategy" +shape (Circle +uid 10622,0 +va (VaSet +vasetType 1 +) +xt "58600,199600,59400,200400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1527,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "43750,10000,59000,204000" +pts [ +"59000,204000" +"59000,10000" +"43750,10000" +] +) +end &240 +es 0 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1532,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1533,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,8600,51400,10000" +st "dataInReg" +blo "44000,9800" +tm "WireNameMgr" +) +) +on &246 +) +*602 (Wire +uid 1534,0 +shape (OrthoPolyLine +uid 1535,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,12000,74250,12000" +pts [ +"59000,12000" +"74250,12000" +] +) +start &596 +end &283 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1536,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1537,0 +va (VaSet +font "Verdana,12,0" +) +xt "68000,10600,75400,12000" +st "dataInReg" +blo "68000,11800" +tm "WireNameMgr" +) +) +on &246 +) +*603 (Wire +uid 1540,0 +shape (OrthoPolyLine +uid 1541,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,40000,74250,40000" +pts [ +"59000,40000" +"74250,40000" +] +) +start &597 +end &107 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1542,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1543,0 +va (VaSet +font "Verdana,12,0" +) +xt "70250,38600,77650,40000" +st "dataInReg" +blo "70250,39800" +tm "WireNameMgr" +) +) +on &246 +) +*604 (Wire +uid 1583,0 +optionalChildren [ +*605 (BdJunction +uid 2856,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2857,0 +va (VaSet +vasetType 1 +) +xt "62600,69600,63400,70400" +radius 400 +) +) +*606 (BdJunction +uid 2858,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2859,0 +va (VaSet +vasetType 1 +) +xt "62600,41600,63400,42400" +radius 400 +) +) +*607 (BdJunction +uid 2864,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2865,0 +va (VaSet +vasetType 1 +) +xt "62600,13600,63400,14400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1584,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,4000,63000,74000" +pts [ +"63000,74000" +"63000,4000" +"19000,4000" +] +) +end &90 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1588,0 +va (VaSet +font "Verdana,12,0" +) +xt "18000,1600,24000,3000" +st "dataOut" +blo "18000,2800" +tm "WireNameMgr" +) +) +on &91 +) +*608 (Wire +uid 1653,0 +shape (OrthoPolyLine +uid 1654,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "63000,42000,74250,42000" +pts [ +"74250,42000" +"63000,42000" +] +) +start &108 +end &606 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1655,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1656,0 +va (VaSet +font "Verdana,12,0" +) +xt "68250,40600,74250,42000" +st "dataOut" +blo "68250,41800" +tm "WireNameMgr" +) +) +on &91 +) +*609 (Wire +uid 1732,0 +shape (OrthoPolyLine +uid 1733,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,68000,74250,68000" +pts [ +"59000,68000" +"74250,68000" +] +) +start &598 +end &95 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1735,0 +va (VaSet +font "Verdana,12,0" +) +xt "69250,66600,76650,68000" +st "dataInReg" +blo "69250,67800" +tm "WireNameMgr" +) +) +on &246 +) +*610 (Wire +uid 1738,0 +shape (OrthoPolyLine +uid 1739,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "63000,70000,74250,70000" +pts [ +"63000,70000" +"74250,70000" +] +) +start &605 +end &96 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1740,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1741,0 +va (VaSet +font "Verdana,12,0" +) +xt "68250,68600,74250,70000" +st "dataOut" +blo "68250,69800" +tm "WireNameMgr" +) +) +on &91 +) +*611 (Wire +uid 1744,0 +shape (OrthoPolyLine +uid 1745,0 +va (VaSet +vasetType 3 +) +xt "71000,84000,74250,84000" +pts [ +"71000,84000" +"74250,84000" +] +) +end &100 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1751,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,82600,75100,84000" +st "reset" +blo "71000,83800" +tm "WireNameMgr" +) +) +on &25 +) +*612 (Wire +uid 1752,0 +shape (OrthoPolyLine +uid 1753,0 +va (VaSet +vasetType 3 +) +xt "71000,82000,74250,82000" +pts [ +"71000,82000" +"74250,82000" +] +) +end &99 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1758,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1759,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,80600,74800,82000" +st "clock" +blo "71000,81800" +tm "WireNameMgr" +) +) +on &15 +) +*613 (Wire +uid 1760,0 +shape (OrthoPolyLine +uid 1761,0 +va (VaSet +vasetType 3 +) +xt "67000,74000,74250,74000" +pts [ +"67000,74000" +"74250,74000" +] +) +end &97 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1766,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1767,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,72600,73700,74000" +st "wrHPulse" +blo "67000,73800" +tm "WireNameMgr" +) +) +on &187 +) +*614 (Wire +uid 1768,0 +shape (OrthoPolyLine +uid 1769,0 +va (VaSet +vasetType 3 +) +xt "67000,76000,74250,76000" +pts [ +"67000,76000" +"74250,76000" +] +) +end &101 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1775,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,74600,73500,76000" +st "wrLPulse" +blo "67000,75800" +tm "WireNameMgr" +) +) +on &197 +) +*615 (Wire +uid 1778,0 +shape (OrthoPolyLine +uid 1779,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,68000,106250,68000" +pts [ +"91750,68000" +"106250,68000" +] +) +start &94 +end &148 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1782,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1783,0 +va (VaSet +font "Verdana,12,0" +) +xt "93000,66600,103100,68000" +st "updatePeriod" +blo "93000,67800" +tm "WireNameMgr" +) +) +on &92 +) +*616 (Wire +uid 1969,0 +shape (OrthoPolyLine +uid 1970,0 +va (VaSet +vasetType 3 +) +xt "103000,74000,106250,74000" +pts [ +"103000,74000" +"106250,74000" +] +) +end &147 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1975,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1976,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,72600,107100,74000" +st "reset" +blo "103000,73800" +tm "WireNameMgr" +) +) +on &25 +) +*617 (Wire +uid 1977,0 +shape (OrthoPolyLine +uid 1978,0 +va (VaSet +vasetType 3 +) +xt "103000,72000,106250,72000" +pts [ +"103000,72000" +"106250,72000" +] +) +end &146 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1983,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1984,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,70600,106800,72000" +st "clock" +blo "103000,71800" +tm "WireNameMgr" +) +) +on &15 +) +*618 (Wire +uid 1987,0 +shape (OrthoPolyLine +uid 1988,0 +va (VaSet +vasetType 3 +) +xt "123750,66000,131000,66000" +pts [ +"123750,66000" +"131000,66000" +] +) +start &145 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1991,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1992,0 +va (VaSet +font "Verdana,12,0" +) +xt "125750,64600,136950,66000" +st "interpolationEn" +blo "125750,65800" +tm "WireNameMgr" +) +) +on &219 +) +*619 (Wire +uid 1995,0 +shape (OrthoPolyLine +uid 1996,0 +va (VaSet +vasetType 3 +) +xt "155000,176000,160250,176000" +pts [ +"155000,176000" +"160250,176000" +] +) +end &120 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2001,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2002,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,174600,163900,176000" +st "interpolationEnable" +blo "150000,175800" +tm "WireNameMgr" +) +) +on &124 +) +*620 (Wire +uid 2472,0 +shape (OrthoPolyLine +uid 2473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,150000,106250,154000" +pts [ +"106250,154000" +"99000,154000" +"99000,150000" +"59000,150000" +] +) +start &333 +end &599 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2474,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2475,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,152600,107400,154000" +st "dataInReg" +blo "100000,153800" +tm "WireNameMgr" +) +) +on &246 +) +*621 (Wire +uid 2478,0 +shape (OrthoPolyLine +uid 2479,0 +va (VaSet +vasetType 3 +) +xt "103000,166000,106250,166000" +pts [ +"103000,166000" +"106250,166000" +] +) +end &336 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2485,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,164600,106800,166000" +st "clock" +blo "103000,165800" +tm "WireNameMgr" +) +) +on &15 +) +*622 (Wire +uid 2486,0 +shape (OrthoPolyLine +uid 2487,0 +va (VaSet +vasetType 3 +) +xt "103000,168000,106250,168000" +pts [ +"103000,168000" +"106250,168000" +] +) +end &337 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2492,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2493,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,166600,107100,168000" +st "reset" +blo "103000,167800" +tm "WireNameMgr" +) +) +on &25 +) +*623 (Wire +uid 2638,0 +shape (OrthoPolyLine +uid 2639,0 +va (VaSet +vasetType 3 +) +xt "91750,160000,106250,184000" +pts [ +"91750,184000" +"99000,184000" +"99000,160000" +"106250,160000" +] +) +start &452 +end &338 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2640,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2641,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,158600,106400,160000" +st "memWrX" +blo "100000,159800" +tm "WireNameMgr" +) +) +on &127 +) +*624 (Wire +uid 2644,0 +shape (OrthoPolyLine +uid 2645,0 +va (VaSet +vasetType 3 +) +xt "91750,162000,106250,186000" +pts [ +"91750,186000" +"101000,186000" +"101000,162000" +"106250,162000" +] +) +start &454 +end &335 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2646,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2647,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,160600,106200,162000" +st "memEnX" +blo "100000,161800" +tm "WireNameMgr" +) +) +on &128 +) +*625 (Wire +uid 2648,0 +shape (OrthoPolyLine +uid 2649,0 +va (VaSet +vasetType 3 +) +xt "67000,184000,74250,184000" +pts [ +"67000,184000" +"74250,184000" +] +) +end &455 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2654,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2655,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,182600,76800,184000" +st "updatePattern" +blo "66000,183800" +tm "WireNameMgr" +) +) +on &87 +) +*626 (Wire +uid 2772,0 +shape (OrthoPolyLine +uid 2773,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,156000,106250,156000" +pts [ +"91750,156000" +"106250,156000" +] +) +start &139 +end &339 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2775,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,154600,106500,156000" +st "addrX" +blo "102000,155800" +tm "WireNameMgr" +) +) +on &125 +) +*627 (Wire +uid 2778,0 +shape (OrthoPolyLine +uid 2779,0 +va (VaSet +vasetType 3 +) +xt "71000,166000,74250,166000" +pts [ +"71000,166000" +"74250,166000" +] +) +end &137 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2785,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,164600,75100,166000" +st "reset" +blo "71000,165800" +tm "WireNameMgr" +) +) +on &25 +) +*628 (Wire +uid 2786,0 +shape (OrthoPolyLine +uid 2787,0 +va (VaSet +vasetType 3 +) +xt "71000,164000,74250,164000" +pts [ +"71000,164000" +"74250,164000" +] +) +end &136 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2793,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,162600,74800,164000" +st "clock" +blo "71000,163800" +tm "WireNameMgr" +) +) +on &15 +) +*629 (Wire +uid 2844,0 +shape (OrthoPolyLine +uid 2845,0 +va (VaSet +vasetType 3 +) +xt "69000,160000,95000,180000" +pts [ +"91750,180000" +"95000,180000" +"95000,174000" +"69000,174000" +"69000,160000" +"74250,160000" +] +) +start &457 +end &135 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2846,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2847,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,158600,74900,160000" +st "cntIncrX" +blo "69000,159800" +tm "WireNameMgr" +) +) +on &126 +) +*630 (Wire +uid 2860,0 +shape (OrthoPolyLine +uid 2861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "63000,14000,74250,14000" +pts [ +"63000,14000" +"74250,14000" +] +) +start &607 +end &285 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2862,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2863,0 +va (VaSet +font "Verdana,12,0" +) +xt "68250,12600,74250,14000" +st "dataOut" +blo "68250,13800" +tm "WireNameMgr" +) +) +on &91 +) +*631 (Wire +uid 2866,0 +shape (OrthoPolyLine +uid 2867,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,156000,74250,156000" +pts [ +"67000,156000" +"74250,156000" +] +) +end &140 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2873,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,154600,74900,156000" +st "patternSize" +blo "66000,155800" +tm "WireNameMgr" +) +) +on &88 +) +*632 (Wire +uid 2919,0 +shape (OrthoPolyLine +uid 2920,0 +va (VaSet +vasetType 3 +) +xt "67000,186000,74250,186000" +pts [ +"74250,186000" +"67000,186000" +] +) +start &458 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2926,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,184600,75600,186000" +st "newPolynom" +blo "66000,185800" +tm "WireNameMgr" +) +) +on &30 +) +*633 (Wire +uid 2996,0 +shape (OrthoPolyLine +uid 2997,0 +va (VaSet +vasetType 3 +) +xt "71000,192000,74250,192000" +pts [ +"71000,192000" +"74250,192000" +] +) +end &460 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3002,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3003,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,190600,75100,192000" +st "reset" +blo "71000,191800" +tm "WireNameMgr" +) +) +on &25 +) +*634 (Wire +uid 3004,0 +shape (OrthoPolyLine +uid 3005,0 +va (VaSet +vasetType 3 +) +xt "71000,190000,74250,190000" +pts [ +"71000,190000" +"74250,190000" +] +) +end &459 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3010,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3011,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,188600,74800,190000" +st "clock" +blo "71000,189800" +tm "WireNameMgr" +) +) +on &15 +) +*635 (Wire +uid 3094,0 +shape (OrthoPolyLine +uid 3095,0 +va (VaSet +vasetType 3 +) +xt "67000,158000,74250,158000" +pts [ +"67000,158000" +"74250,158000" +] +) +end &138 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3100,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3101,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,156600,76800,158000" +st "updatePattern" +blo "66000,157800" +tm "WireNameMgr" +) +) +on &87 +) +*636 (Wire +uid 3146,0 +shape (OrthoPolyLine +uid 3147,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,154000,131000,154000" +pts [ +"123750,154000" +"131000,154000" +] +) +start &334 +end &129 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3150,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3151,0 +va (VaSet +font "Verdana,12,0" +) +xt "125000,152600,129600,154000" +st "memX" +blo "125000,153800" +tm "WireNameMgr" +) +) +on &133 +) +*637 (Wire +uid 3432,0 +shape (OrthoPolyLine +uid 3433,0 +va (VaSet +vasetType 3 +) +xt "209000,166000,216250,166000" +pts [ +"209000,166000" +"216250,166000" +] +) +end &389 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3439,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,164600,217900,166000" +st "interpolationEnable" +blo "204000,165800" +tm "WireNameMgr" +) +) +on &124 +) +*638 (Wire +uid 3485,0 +shape (OrthoPolyLine +uid 3486,0 +va (VaSet +vasetType 3 +) +xt "209000,129000,216250,129000" +pts [ +"209000,129000" +"216250,129000" +] +) +end &376 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3491,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3492,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,127600,217900,129000" +st "interpolationEnable" +blo "204000,128800" +tm "WireNameMgr" +) +) +on &124 +) +*639 (Wire +uid 3751,0 +shape (OrthoPolyLine +uid 3752,0 +va (VaSet +vasetType 3 +) +xt "103000,131000,106250,131000" +pts [ +"103000,131000" +"106250,131000" +] +) +end &326 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3755,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3756,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,129600,107100,131000" +st "reset" +blo "103000,130800" +tm "WireNameMgr" +) +) +on &25 +) +*640 (Wire +uid 3757,0 +shape (OrthoPolyLine +uid 3758,0 +va (VaSet +vasetType 3 +) +xt "103000,129000,106250,129000" +pts [ +"103000,129000" +"106250,129000" +] +) +end &325 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3761,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3762,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,127600,106800,129000" +st "clock" +blo "103000,128800" +tm "WireNameMgr" +) +) +on &15 +) +*641 (Wire +uid 3763,0 +shape (OrthoPolyLine +uid 3764,0 +va (VaSet +vasetType 3 +) +xt "67000,134000,74250,134000" +pts [ +"67000,134000" +"74250,134000" +] +) +end &442 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3768,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,132600,76800,134000" +st "updatePattern" +blo "66000,133800" +tm "WireNameMgr" +) +) +on &87 +) +*642 (Wire +uid 3769,0 +shape (OrthoPolyLine +uid 3770,0 +va (VaSet +vasetType 3 +) +xt "91750,125000,106250,136000" +pts [ +"91750,136000" +"101000,136000" +"101000,125000" +"106250,125000" +] +) +start &441 +end &324 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3772,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,123600,106100,125000" +st "memEnY" +blo "100000,124800" +tm "WireNameMgr" +) +) +on &166 +) +*643 (Wire +uid 3773,0 +shape (OrthoPolyLine +uid 3774,0 +va (VaSet +vasetType 3 +) +xt "91750,123000,106250,134000" +pts [ +"91750,134000" +"99000,134000" +"99000,123000" +"106250,123000" +] +) +start &439 +end &327 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3775,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3776,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,121600,106300,123000" +st "memWrY" +blo "100000,122800" +tm "WireNameMgr" +) +) +on &165 +) +*644 (Wire +uid 3777,0 +shape (OrthoPolyLine +uid 3778,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,106000,106250,119000" +pts [ +"91750,106000" +"99000,106000" +"99000,119000" +"106250,119000" +] +) +start &158 +end &328 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3779,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3780,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,117600,106400,119000" +st "addrY" +blo "102000,118800" +tm "WireNameMgr" +) +) +on &164 +) +*645 (Wire +uid 3793,0 +shape (OrthoPolyLine +uid 3794,0 +va (VaSet +vasetType 3 +) +xt "69000,110000,95000,130000" +pts [ +"91750,130000" +"95000,130000" +"95000,124000" +"69000,124000" +"69000,110000" +"74250,110000" +] +) +start &444 +end &154 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3796,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,108600,74800,110000" +st "cntIncrY" +blo "69000,109800" +tm "WireNameMgr" +) +) +on &163 +) +*646 (Wire +uid 3797,0 +shape (OrthoPolyLine +uid 3798,0 +va (VaSet +vasetType 3 +) +xt "67000,136000,74250,136000" +pts [ +"74250,136000" +"67000,136000" +] +) +start &445 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3801,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3802,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,134600,75600,136000" +st "newPolynom" +blo "66000,135800" +tm "WireNameMgr" +) +) +on &30 +) +*647 (Wire +uid 3803,0 +shape (OrthoPolyLine +uid 3804,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,106000,74250,106000" +pts [ +"67000,106000" +"74250,106000" +] +) +end &159 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3808,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,104600,74900,106000" +st "patternSize" +blo "66000,105800" +tm "WireNameMgr" +) +) +on &88 +) +*648 (Wire +uid 3809,0 +shape (OrthoPolyLine +uid 3810,0 +va (VaSet +vasetType 3 +) +xt "67000,108000,74250,108000" +pts [ +"67000,108000" +"74250,108000" +] +) +end &157 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3813,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3814,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,106600,76800,108000" +st "updatePattern" +blo "66000,107800" +tm "WireNameMgr" +) +) +on &87 +) +*649 (Wire +uid 3815,0 +shape (OrthoPolyLine +uid 3816,0 +va (VaSet +vasetType 3 +) +xt "71000,140000,74250,140000" +pts [ +"71000,140000" +"74250,140000" +] +) +end &446 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3820,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,138600,74800,140000" +st "clock" +blo "71000,139800" +tm "WireNameMgr" +) +) +on &15 +) +*650 (Wire +uid 3821,0 +shape (OrthoPolyLine +uid 3822,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,100000,106250,117000" +pts [ +"59000,100000" +"103000,100000" +"103000,117000" +"106250,117000" +] +) +start &600 +end &322 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3823,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3824,0 +va (VaSet +font "Verdana,12,0" +) +xt "101250,115600,108650,117000" +st "dataInReg" +blo "101250,116800" +tm "WireNameMgr" +) +) +on &246 +) +*651 (Wire +uid 3866,0 +shape (OrthoPolyLine +uid 3867,0 +va (VaSet +vasetType 3 +) +xt "71000,114000,74250,114000" +pts [ +"71000,114000" +"74250,114000" +] +) +end &155 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3873,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,112600,74800,114000" +st "clock" +blo "71000,113800" +tm "WireNameMgr" +) +) +on &15 +) +*652 (Wire +uid 3874,0 +shape (OrthoPolyLine +uid 3875,0 +va (VaSet +vasetType 3 +) +xt "71000,116000,74250,116000" +pts [ +"71000,116000" +"74250,116000" +] +) +end &156 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3880,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3881,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,114600,75100,116000" +st "reset" +blo "71000,115800" +tm "WireNameMgr" +) +) +on &25 +) +*653 (Wire +uid 3882,0 +shape (OrthoPolyLine +uid 3883,0 +va (VaSet +vasetType 3 +) +xt "71000,142000,74250,142000" +pts [ +"71000,142000" +"74250,142000" +] +) +end &447 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3888,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3889,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,140600,75100,142000" +st "reset" +blo "71000,141800" +tm "WireNameMgr" +) +) +on &25 +) +*654 (Wire +uid 3907,0 +shape (OrthoPolyLine +uid 3908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,117000,131000,117000" +pts [ +"123750,117000" +"131000,117000" +] +) +start &323 +end &167 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3912,0 +va (VaSet +font "Verdana,12,0" +) +xt "125750,115600,130250,117000" +st "memY" +blo "125750,116800" +tm "WireNameMgr" +) +) +on &171 +) +*655 (Wire +uid 4047,0 +shape (OrthoPolyLine +uid 4048,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "281000,6000,289000,6000" +pts [ +"281000,6000" +"289000,6000" +] +) +start &174 +end &172 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4051,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4052,0 +va (VaSet +font "Verdana,12,0" +) +xt "284000,4600,289600,6000" +st "testOut" +blo "284000,5800" +tm "WireNameMgr" +) +) +on &173 +) +*656 (Wire +uid 4274,0 +shape (OrthoPolyLine +uid 4275,0 +va (VaSet +vasetType 3 +) +xt "23000,66000,26250,66000" +pts [ +"23000,66000" +"26250,66000" +] +) +end &183 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4280,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4281,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,64600,27100,66000" +st "reset" +blo "23000,65800" +tm "WireNameMgr" +) +) +on &25 +) +*657 (Wire +uid 4282,0 +shape (OrthoPolyLine +uid 4283,0 +va (VaSet +vasetType 3 +) +xt "23000,64000,26250,64000" +pts [ +"23000,64000" +"26250,64000" +] +) +end &182 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4288,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4289,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,62600,26800,64000" +st "clock" +blo "23000,63800" +tm "WireNameMgr" +) +) +on &15 +) +*658 (Wire +uid 4292,0 +shape (OrthoPolyLine +uid 4293,0 +va (VaSet +vasetType 3 +) +xt "43750,58000,47000,58000" +pts [ +"43750,58000" +"47000,58000" +] +) +start &179 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4298,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4299,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,56600,50700,58000" +st "wrHPulse" +blo "44000,57800" +tm "WireNameMgr" +) +) +on &187 +) +*659 (Wire +uid 4329,0 +shape (OrthoPolyLine +uid 4330,0 +va (VaSet +vasetType 3 +) +xt "23000,86000,26250,86000" +pts [ +"23000,86000" +"26250,86000" +] +) +end &192 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4333,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4334,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,84600,26800,86000" +st "clock" +blo "23000,85800" +tm "WireNameMgr" +) +) +on &15 +) +*660 (Wire +uid 4335,0 +shape (OrthoPolyLine +uid 4336,0 +va (VaSet +vasetType 3 +) +xt "23000,88000,26250,88000" +pts [ +"23000,88000" +"26250,88000" +] +) +end &193 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4339,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4340,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,86600,27100,88000" +st "reset" +blo "23000,87800" +tm "WireNameMgr" +) +) +on &25 +) +*661 (Wire +uid 4341,0 +shape (OrthoPolyLine +uid 4342,0 +va (VaSet +vasetType 3 +) +xt "43750,80000,47000,80000" +pts [ +"43750,80000" +"47000,80000" +] +) +start &189 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4345,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4346,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,78600,50500,80000" +st "wrLPulse" +blo "44000,79800" +tm "WireNameMgr" +) +) +on &197 +) +*662 (Wire +uid 4349,0 +shape (OrthoPolyLine +uid 4350,0 +va (VaSet +vasetType 3 +) +xt "19000,82000,26250,82000" +pts [ +"19000,82000" +"26250,82000" +] +) +end &191 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4355,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4356,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,80600,21100,82000" +st "cs" +blo "19000,81800" +tm "WireNameMgr" +) +) +on &17 +) +*663 (Wire +uid 4770,0 +shape (OrthoPolyLine +uid 4771,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,84000,184250,84000" +pts [ +"177750,84000" +"184250,84000" +] +) +start &207 +end &223 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4775,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,82600,182700,84000" +st "phase" +blo "178000,83800" +tm "WireNameMgr" +) +) +on &202 +) +*664 (Wire +uid 4782,0 +shape (OrthoPolyLine +uid 4783,0 +va (VaSet +vasetType 3 +) +xt "157000,92000,160250,92000" +pts [ +"157000,92000" +"160250,92000" +] +) +end &208 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4786,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4787,0 +va (VaSet +font "Verdana,12,0" +) +xt "157000,90600,161100,92000" +st "reset" +blo "157000,91800" +tm "WireNameMgr" +) +) +on &25 +) +*665 (Wire +uid 4788,0 +shape (OrthoPolyLine +uid 4789,0 +va (VaSet +vasetType 3 +) +xt "157000,90000,160250,90000" +pts [ +"157000,90000" +"160250,90000" +] +) +end &206 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4793,0 +va (VaSet +font "Verdana,12,0" +) +xt "157000,88600,160800,90000" +st "clock" +blo "157000,89800" +tm "WireNameMgr" +) +) +on &15 +) +*666 (Wire +uid 4794,0 +shape (OrthoPolyLine +uid 4795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "157000,78000,160250,84000" +pts [ +"160250,84000" +"157000,84000" +"157000,78000" +] +) +start &209 +end &198 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4799,0 +va (VaSet +font "Verdana,12,0" +) +xt "157000,82600,160600,84000" +st "step" +blo "157000,83800" +tm "WireNameMgr" +) +) +on &203 +) +*667 (Wire +uid 4860,0 +shape (OrthoPolyLine +uid 4861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "129000,84000,209000,115000" +pts [ +"201750,84000" +"209000,84000" +"209000,98000" +"129000,98000" +"129000,115000" +"131000,115000" +] +) +start &222 +end &167 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4864,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4865,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,82600,207150,84000" +st "sine" +blo "203750,83800" +tm "WireNameMgr" +) +) +on &204 +) +*668 (Wire +uid 4866,0 +shape (OrthoPolyLine +uid 4867,0 +va (VaSet +vasetType 3 +) +xt "153000,86000,160250,86000" +pts [ +"153000,86000" +"160250,86000" +] +) +end &210 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4873,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,84600,162900,86000" +st "interpolationEnable" +blo "149000,85800" +tm "WireNameMgr" +) +) +on &124 +) +*669 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "153000,70000,161000,70000" +pts [ +"153000,70000" +"161000,70000" +] +) +start &214 +end &215 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Verdana,12,0" +) +xt "153000,68600,159900,70000" +st "selSinCos" +blo "153000,69800" +tm "WireNameMgr" +) +) +on &232 +) +*670 (Wire +uid 5253,0 +shape (OrthoPolyLine +uid 5254,0 +va (VaSet +vasetType 3 +) +xt "177000,66000,185000,66000" +pts [ +"177000,66000" +"185000,66000" +] +) +start &215 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5259,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5260,0 +va (VaSet +font "Verdana,12,0" +) +xt "179750,64600,193650,66000" +st "interpolationEnable" +blo "179750,65800" +tm "WireNameMgr" +) +) +on &124 +) +*671 (Wire +uid 5263,0 +shape (OrthoPolyLine +uid 5264,0 +va (VaSet +vasetType 3 +) +xt "152750,66000,161000,66000" +pts [ +"152750,66000" +"161000,66000" +] +) +end &215 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5269,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5270,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,64600,161200,66000" +st "interpolationEn" +blo "150000,65800" +tm "WireNameMgr" +) +) +on &219 +) +*672 (Wire +uid 5938,0 +shape (OrthoPolyLine +uid 5939,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "127000,86000,207000,152000" +pts [ +"201750,86000" +"207000,86000" +"207000,97000" +"127000,97000" +"127000,152000" +"131000,152000" +] +) +start &224 +end &129 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5942,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5943,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,84600,208550,86000" +st "cosine" +blo "203750,85800" +tm "WireNameMgr" +) +) +on &220 +) +*673 (Wire +uid 7055,0 +shape (OrthoPolyLine +uid 7056,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,10000,26250,10000" +pts [ +"26250,10000" +"19000,10000" +] +) +start &239 +end &89 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7062,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,8600,24000,10000" +st "dataIn" +blo "19000,9800" +tm "WireNameMgr" +) +) +on &247 +) +*674 (Wire +uid 7111,0 +shape (OrthoPolyLine +uid 7112,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23750,32000,26250,32000" +pts [ +"23750,32000" +"26250,32000" +] +) +start &251 +end &422 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7113,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7114,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,30600,29100,32000" +st "addrReg" +blo "23000,31800" +tm "WireNameMgr" +) +s (Text +uid 7337,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,32000,23000,32000" +blo "23000,32000" +tm "SignalTypeMgr" +) +) +on &257 +) +*675 (Wire +uid 7117,0 +shape (OrthoPolyLine +uid 7118,0 +va (VaSet +vasetType 3 +) +xt "23000,18000,26250,18000" +pts [ +"23000,18000" +"26250,18000" +] +) +end &242 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7123,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7124,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,16600,27100,18000" +st "reset" +blo "23000,17800" +tm "WireNameMgr" +) +) +on &25 +) +*676 (Wire +uid 7125,0 +shape (OrthoPolyLine +uid 7126,0 +va (VaSet +vasetType 3 +) +xt "23000,16000,26250,16000" +pts [ +"23000,16000" +"26250,16000" +] +) +end &238 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7132,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,14600,26800,16000" +st "clock" +blo "23000,15800" +tm "WireNameMgr" +) +) +on &15 +) +*677 (Wire +uid 7133,0 +shape (OrthoPolyLine +uid 7134,0 +va (VaSet +vasetType 3 +) +xt "3000,40000,6250,40000" +pts [ +"3000,40000" +"6250,40000" +] +) +end &253 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7139,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7140,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,38600,7100,40000" +st "reset" +blo "3000,39800" +tm "WireNameMgr" +) +) +on &25 +) +*678 (Wire +uid 7141,0 +shape (OrthoPolyLine +uid 7142,0 +va (VaSet +vasetType 3 +) +xt "3000,38000,6250,38000" +pts [ +"3000,38000" +"6250,38000" +] +) +end &249 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7147,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7148,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,36600,6800,38000" +st "clock" +blo "3000,37800" +tm "WireNameMgr" +) +) +on &15 +) +*679 (Wire +uid 7160,0 +shape (OrthoPolyLine +uid 7161,0 +va (VaSet +vasetType 3 +) +xt "19000,14000,26250,14000" +pts [ +"26250,14000" +"19000,14000" +] +) +start &241 +end &258 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7164,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7165,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,12600,27400,14000" +st "logic1" +blo "23000,13800" +tm "WireNameMgr" +) +s (Text +uid 7348,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,14000,23000,14000" +blo "23000,14000" +tm "SignalTypeMgr" +) +) +on &262 +) +*680 (Wire +uid 7168,0 +shape (OrthoPolyLine +uid 7169,0 +va (VaSet +vasetType 3 +) +xt "3000,36000,6250,36000" +pts [ +"6250,36000" +"3000,36000" +] +) +start &252 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7174,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7175,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,34600,7400,36000" +st "logic1" +blo "3000,35800" +tm "WireNameMgr" +) +s (Text +uid 7176,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,36000,3000,36000" +blo "3000,36000" +tm "SignalTypeMgr" +) +) +on &262 +) +*681 (Wire +uid 7724,0 +shape (OrthoPolyLine +uid 7725,0 +va (VaSet +vasetType 3 +) +xt "23000,116000,26250,116000" +pts [ +"23000,116000" +"26250,116000" +] +) +end &268 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7730,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7731,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,114600,27100,116000" +st "reset" +blo "23000,115800" +tm "WireNameMgr" +) +) +on &25 +) +*682 (Wire +uid 7732,0 +shape (OrthoPolyLine +uid 7733,0 +va (VaSet +vasetType 3 +) +xt "23000,114000,26250,114000" +pts [ +"23000,114000" +"26250,114000" +] +) +end &267 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7738,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7739,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,112600,26800,114000" +st "clock" +blo "23000,113800" +tm "WireNameMgr" +) +) +on &15 +) +*683 (Wire +uid 7740,0 +shape (OrthoPolyLine +uid 7741,0 +va (VaSet +vasetType 3 +) +xt "19000,110000,26250,110000" +pts [ +"19000,110000" +"26250,110000" +] +) +end &266 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7746,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7747,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,108600,21100,110000" +st "cs" +blo "19000,109800" +tm "WireNameMgr" +) +) +on &17 +) +*684 (Wire +uid 7748,0 +shape (OrthoPolyLine +uid 7749,0 +va (VaSet +vasetType 3 +) +xt "43750,108000,47000,108000" +pts [ +"43750,108000" +"47000,108000" +] +) +start &264 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7754,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7755,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,106600,51400,108000" +st "wr16Pulse" +blo "44000,107800" +tm "WireNameMgr" +) +) +on &272 +) +*685 (Wire +uid 7793,0 +shape (OrthoPolyLine +uid 7794,0 +va (VaSet +vasetType 3 +) +xt "17950,108000,26250,108000" +pts [ +"26250,108000" +"17950,108000" +] +) +start &265 +end &276 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7796,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,106600,24000,108000" +st "wr16" +blo "20000,107800" +tm "WireNameMgr" +) +) +on &280 +) +*686 (Wire +uid 7801,0 +shape (OrthoPolyLine +uid 7802,0 +va (VaSet +vasetType 3 +) +xt "7000,106000,11000,106000" +pts [ +"7000,106000" +"11000,106000" +] +) +end &274 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7808,0 +va (VaSet +font "Verdana,12,0" +) +xt "7000,104600,10300,106000" +st "wrH" +blo "7000,105800" +tm "WireNameMgr" +) +) +on &27 +) +*687 (Wire +uid 7809,0 +shape (OrthoPolyLine +uid 7810,0 +va (VaSet +vasetType 3 +) +xt "7000,110000,11000,110000" +pts [ +"7000,110000" +"11000,110000" +] +) +end &275 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7816,0 +va (VaSet +font "Verdana,12,0" +) +xt "7000,108600,10100,110000" +st "wrL" +blo "7000,109800" +tm "WireNameMgr" +) +) +on &29 +) +*688 (Wire +uid 7907,0 +shape (OrthoPolyLine +uid 7908,0 +va (VaSet +vasetType 3 +) +xt "67000,132000,74250,132000" +pts [ +"67000,132000" +"74250,132000" +] +) +end &443 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7913,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7914,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,130600,74400,132000" +st "wr16Pulse" +blo "67000,131800" +tm "WireNameMgr" +) +) +on &272 +) +*689 (Wire +uid 7915,0 +shape (OrthoPolyLine +uid 7916,0 +va (VaSet +vasetType 3 +) +xt "67000,182000,74250,182000" +pts [ +"67000,182000" +"74250,182000" +] +) +end &456 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7921,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7922,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,180600,74400,182000" +st "wr16Pulse" +blo "67000,181800" +tm "WireNameMgr" +) +) +on &272 +) +*690 (Wire +uid 8150,0 +shape (OrthoPolyLine +uid 8151,0 +va (VaSet +vasetType 3 +) +xt "91750,16000,99000,16000" +pts [ +"91750,16000" +"99000,16000" +] +) +start &290 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8154,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8155,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,14600,104050,16000" +st "interpolateLin" +blo "93750,15800" +tm "WireNameMgr" +) +) +on &393 +) +*691 (Wire +uid 8248,0 +optionalChildren [ +*692 (BdJunction +uid 8258,0 +ps "OnConnectorStrategy" +shape (Circle +uid 8259,0 +va (VaSet +vasetType 1 +) +xt "180600,124600,181400,125400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 8249,0 +va (VaSet +vasetType 3 +) +xt "177000,69000,184250,162000" +pts [ +"184250,162000" +"181000,162000" +"181000,69000" +"177000,69000" +] +) +start &304 +end &215 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8253,0 +va (VaSet +font "Verdana,12,0" +) +xt "179000,67600,191400,69000" +st "interpolateLinear" +blo "179000,68800" +tm "WireNameMgr" +) +) +on &294 +) +*693 (Wire +uid 8254,0 +shape (OrthoPolyLine +uid 8255,0 +va (VaSet +vasetType 3 +) +xt "181000,125000,184250,125000" +pts [ +"184250,125000" +"181000,125000" +] +) +start &317 +end &692 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8256,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8257,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "171250,123600,183650,125000" +st "interpolateLinear" +blo "171250,124800" +tm "WireNameMgr" +) +) +on &294 +) +*694 (Wire +uid 9246,0 +shape (OrthoPolyLine +uid 9247,0 +va (VaSet +vasetType 3 +) +xt "139000,121000,139000,125000" +pts [ +"139000,125000" +"139000,121000" +] +) +end &167 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9253,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,123600,145900,125000" +st "selSinCos" +blo "139000,124800" +tm "WireNameMgr" +) +) +on &232 +) +*695 (Wire +uid 9254,0 +shape (OrthoPolyLine +uid 9255,0 +va (VaSet +vasetType 3 +) +xt "139000,158000,139000,162000" +pts [ +"139000,162000" +"139000,158000" +] +) +end &129 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9260,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9261,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,160600,145900,162000" +st "selSinCos" +blo "139000,161800" +tm "WireNameMgr" +) +) +on &232 +) +*696 (Wire +uid 10531,0 +shape (OrthoPolyLine +uid 10532,0 +va (VaSet +vasetType 3 +) +xt "91750,212000,106250,236000" +pts [ +"91750,236000" +"101000,236000" +"101000,212000" +"106250,212000" +] +) +start &467 +end &407 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10533,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10534,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,210600,106200,212000" +st "memEnZ" +blo "100000,211800" +tm "WireNameMgr" +) +) +on &419 +) +*697 (Wire +uid 10535,0 +shape (OrthoPolyLine +uid 10536,0 +va (VaSet +vasetType 3 +) +xt "91750,210000,106250,234000" +pts [ +"91750,234000" +"99000,234000" +"99000,210000" +"106250,210000" +] +) +start &465 +end &410 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10537,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10538,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,208600,106400,210000" +st "memWrZ" +blo "100000,209800" +tm "WireNameMgr" +) +) +on &418 +) +*698 (Wire +uid 10539,0 +shape (OrthoPolyLine +uid 10540,0 +va (VaSet +vasetType 3 +) +xt "71000,216000,74250,216000" +pts [ +"71000,216000" +"74250,216000" +] +) +end &397 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10543,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10544,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,214600,75100,216000" +st "reset" +blo "71000,215800" +tm "WireNameMgr" +) +) +on &25 +) +*699 (Wire +uid 10545,0 +shape (OrthoPolyLine +uid 10546,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,206000,106250,206000" +pts [ +"91750,206000" +"106250,206000" +] +) +start &399 +end &411 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10547,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10548,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,204600,106500,206000" +st "addrZ" +blo "102000,205800" +tm "WireNameMgr" +) +) +on &416 +) +*700 (Wire +uid 10549,0 +shape (OrthoPolyLine +uid 10550,0 +va (VaSet +vasetType 3 +) +xt "67000,234000,74250,234000" +pts [ +"67000,234000" +"74250,234000" +] +) +end &468 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10553,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10554,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,232600,76800,234000" +st "updatePattern" +blo "66000,233800" +tm "WireNameMgr" +) +) +on &87 +) +*701 (Wire +uid 10555,0 +shape (OrthoPolyLine +uid 10556,0 +va (VaSet +vasetType 3 +) +xt "69000,210000,95000,230000" +pts [ +"91750,230000" +"95000,230000" +"95000,224000" +"69000,224000" +"69000,210000" +"74250,210000" +] +) +start &470 +end &395 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10557,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10558,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,208600,74900,210000" +st "cntIncrZ" +blo "69000,209800" +tm "WireNameMgr" +) +) +on &415 +) +*702 (Wire +uid 10559,0 +shape (OrthoPolyLine +uid 10560,0 +va (VaSet +vasetType 3 +) +xt "71000,214000,74250,214000" +pts [ +"71000,214000" +"74250,214000" +] +) +end &396 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10563,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10564,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,212600,74800,214000" +st "clock" +blo "71000,213800" +tm "WireNameMgr" +) +) +on &15 +) +*703 (Wire +uid 10565,0 +shape (OrthoPolyLine +uid 10566,0 +va (VaSet +vasetType 3 +) +xt "67000,236000,74250,236000" +pts [ +"74250,236000" +"67000,236000" +] +) +start &471 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10569,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10570,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,234600,75600,236000" +st "newPolynom" +blo "66000,235800" +tm "WireNameMgr" +) +) +on &30 +) +*704 (Wire +uid 10571,0 +shape (OrthoPolyLine +uid 10572,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,206000,74250,206000" +pts [ +"67000,206000" +"74250,206000" +] +) +end &400 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10575,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10576,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,204600,74900,206000" +st "patternSize" +blo "66000,205800" +tm "WireNameMgr" +) +) +on &88 +) +*705 (Wire +uid 10577,0 +shape (OrthoPolyLine +uid 10578,0 +va (VaSet +vasetType 3 +) +xt "67000,208000,74250,208000" +pts [ +"67000,208000" +"74250,208000" +] +) +end &398 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10581,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10582,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,206600,76800,208000" +st "updatePattern" +blo "66000,207800" +tm "WireNameMgr" +) +) +on &87 +) +*706 (Wire +uid 10583,0 +shape (OrthoPolyLine +uid 10584,0 +va (VaSet +vasetType 3 +) +xt "71000,240000,74250,240000" +pts [ +"71000,240000" +"74250,240000" +] +) +end &472 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10588,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,238600,74800,240000" +st "clock" +blo "71000,239800" +tm "WireNameMgr" +) +) +on &15 +) +*707 (Wire +uid 10589,0 +shape (OrthoPolyLine +uid 10590,0 +va (VaSet +vasetType 3 +) +xt "71000,242000,74250,242000" +pts [ +"71000,242000" +"74250,242000" +] +) +end &473 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10594,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,240600,75100,242000" +st "reset" +blo "71000,241800" +tm "WireNameMgr" +) +) +on &25 +) +*708 (Wire +uid 10595,0 +shape (OrthoPolyLine +uid 10596,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,204000,131000,204000" +pts [ +"123750,204000" +"131000,204000" +] +) +start &406 +end &491 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10599,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10600,0 +va (VaSet +font "Verdana,12,0" +) +xt "127000,202600,131600,204000" +st "memZ" +blo "127000,203800" +tm "WireNameMgr" +) +) +on &417 +) +*709 (Wire +uid 10601,0 +shape (OrthoPolyLine +uid 10602,0 +va (VaSet +vasetType 3 +) +xt "67000,232000,74250,232000" +pts [ +"67000,232000" +"74250,232000" +] +) +end &469 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10605,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10606,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,230600,73500,232000" +st "wrLPulse" +blo "67000,231800" +tm "WireNameMgr" +) +) +on &197 +) +*710 (Wire +uid 10617,0 +shape (OrthoPolyLine +uid 10618,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,200000,106250,204000" +pts [ +"59000,200000" +"99000,200000" +"99000,204000" +"106250,204000" +] +) +start &601 +end &405 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10619,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10620,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,202600,107400,204000" +st "dataInReg" +blo "100000,203800" +tm "WireNameMgr" +) +) +on &246 +) +*711 (Wire +uid 10662,0 +shape (OrthoPolyLine +uid 10663,0 +va (VaSet +vasetType 3 +) +xt "43750,42000,74250,230000" +pts [ +"43750,42000" +"49000,42000" +"49000,230000" +"74250,230000" +] +) +start &427 +end &466 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10664,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10665,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,228600,70400,230000" +st "selZ" +blo "67000,229800" +tm "WireNameMgr" +) +) +on &431 +) +*712 (Wire +uid 10884,0 +shape (OrthoPolyLine +uid 10885,0 +va (VaSet +vasetType 3 +) +xt "201000,206000,209000,206000" +pts [ +"201000,206000" +"209000,206000" +] +) +start &434 +end &432 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10888,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10889,0 +va (VaSet +font "Verdana,12,0" +) +xt "205000,204600,208700,206000" +st "outZ" +blo "205000,205800" +tm "WireNameMgr" +) +) +on &433 +) +*713 (Wire +uid 10901,0 +shape (OrthoPolyLine +uid 10902,0 +va (VaSet +vasetType 3 +) +xt "103000,218000,106250,218000" +pts [ +"103000,218000" +"106250,218000" +] +) +end &409 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10907,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10908,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,216600,107100,218000" +st "reset" +blo "103000,217800" +tm "WireNameMgr" +) +) +on &25 +) +*714 (Wire +uid 10909,0 +shape (OrthoPolyLine +uid 10910,0 +va (VaSet +vasetType 3 +) +xt "103000,216000,106250,216000" +pts [ +"103000,216000" +"106250,216000" +] +) +end &408 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10915,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10916,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,214600,106800,216000" +st "clock" +blo "103000,215800" +tm "WireNameMgr" +) +) +on &15 +) +*715 (Wire +uid 11529,0 +shape (OrthoPolyLine +uid 11530,0 +va (VaSet +vasetType 3 +) +xt "157000,210000,160250,210000" +pts [ +"157000,210000" +"160250,210000" +] +) +end &478 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11535,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11536,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,208600,159800,210000" +st "clock" +blo "156000,209800" +tm "WireNameMgr" +) +) +on &15 +) +*716 (Wire +uid 11537,0 +shape (OrthoPolyLine +uid 11538,0 +va (VaSet +vasetType 3 +) +xt "157000,212000,160250,212000" +pts [ +"157000,212000" +"160250,212000" +] +) +end &479 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11543,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11544,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,210600,160100,212000" +st "reset" +blo "156000,211800" +tm "WireNameMgr" +) +) +on &25 +) +*717 (Wire +uid 11545,0 +shape (OrthoPolyLine +uid 11546,0 +va (VaSet +vasetType 3 +) +xt "153000,169000,160250,206000" +pts [ +"153000,169000" +"153000,206000" +"160250,206000" +] +) +start &541 +end &480 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11547,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11548,0 +va (VaSet +font "Verdana,12,0" +) +xt "153000,204600,162600,206000" +st "newPolynom" +blo "153000,205800" +tm "WireNameMgr" +) +) +on &30 +) +*718 (Wire +uid 11553,0 +shape (OrthoPolyLine +uid 11554,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,204000,185000,204000" +pts [ +"177750,204000" +"185000,204000" +] +) +start &482 +end &434 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11557,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11558,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,202600,184900,204000" +st "sampleZ1" +blo "178000,203800" +tm "WireNameMgr" +) +) +on &489 +) +*719 (Wire +uid 11561,0 +shape (OrthoPolyLine +uid 11562,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,206000,185000,206000" +pts [ +"177750,206000" +"185000,206000" +] +) +start &483 +end &434 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11565,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11566,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,204600,184900,206000" +st "sampleZ2" +blo "178000,205800" +tm "WireNameMgr" +) +) +on &490 +) +*720 (Wire +uid 11582,0 +shape (OrthoPolyLine +uid 11583,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,204000,160250,204000" +pts [ +"160250,204000" +"147000,204000" +] +) +start &481 +end &491 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11586,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11587,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,202600,155800,204000" +st "samplesZ" +blo "149000,203800" +tm "WireNameMgr" +) +) +on &495 +) +*721 (Wire +uid 11590,0 +shape (OrthoPolyLine +uid 11591,0 +va (VaSet +vasetType 3 +) +xt "139000,208000,139000,212000" +pts [ +"139000,212000" +"139000,208000" +] +) +end &491 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11596,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11597,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,210600,145900,212000" +st "selSinCos" +blo "139000,211800" +tm "WireNameMgr" +) +) +on &232 +) +*722 (Wire +uid 11911,0 +shape (OrthoPolyLine +uid 11912,0 +va (VaSet +vasetType 3 +) +xt "261000,89000,264250,89000" +pts [ +"261000,89000" +"264250,89000" +] +) +end &501 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11917,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11918,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,87600,264100,89000" +st "reset" +blo "260000,88800" +tm "WireNameMgr" +) +) +on &25 +) +*723 (Wire +uid 11919,0 +shape (OrthoPolyLine +uid 11920,0 +va (VaSet +vasetType 3 +) +xt "261000,87000,264250,87000" +pts [ +"261000,87000" +"264250,87000" +] +) +end &498 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11926,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,85600,263800,87000" +st "clock" +blo "260000,86800" +tm "WireNameMgr" +) +) +on &15 +) +*724 (Wire +uid 11927,0 +shape (OrthoPolyLine +uid 11928,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257000,81000,264250,81000" +pts [ +"257000,81000" +"264250,81000" +] +) +end &502 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11933,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11934,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,79600,265400,81000" +st "unsignedX" +blo "258000,80800" +tm "WireNameMgr" +) +) +on &46 +) +*725 (Wire +uid 11935,0 +shape (OrthoPolyLine +uid 11936,0 +va (VaSet +vasetType 3 +) +xt "257000,83000,264250,83000" +pts [ +"257000,83000" +"264250,83000" +] +) +end &500 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11941,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11942,0 +va (VaSet +font "Verdana,12,0" +) +xt "252000,81600,265900,83000" +st "interpolationEnable" +blo "252000,82800" +tm "WireNameMgr" +) +) +on &124 +) +*726 (Wire +uid 11980,0 +shape (OrthoPolyLine +uid 11981,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257000,59000,264250,59000" +pts [ +"257000,59000" +"264250,59000" +] +) +end &513 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11984,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11985,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,57600,265300,59000" +st "unsignedY" +blo "258000,58800" +tm "WireNameMgr" +) +) +on &80 +) +*727 (Wire +uid 11986,0 +shape (OrthoPolyLine +uid 11987,0 +va (VaSet +vasetType 3 +) +xt "257000,61000,264250,61000" +pts [ +"257000,61000" +"264250,61000" +] +) +end &511 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11990,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11991,0 +va (VaSet +font "Verdana,12,0" +) +xt "252000,59600,265900,61000" +st "interpolationEnable" +blo "252000,60800" +tm "WireNameMgr" +) +) +on &124 +) +*728 (Wire +uid 11992,0 +shape (OrthoPolyLine +uid 11993,0 +va (VaSet +vasetType 3 +) +xt "261000,65000,264250,65000" +pts [ +"261000,65000" +"264250,65000" +] +) +end &509 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11998,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11999,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,63600,263800,65000" +st "clock" +blo "260000,64800" +tm "WireNameMgr" +) +) +on &15 +) +*729 (Wire +uid 12000,0 +shape (OrthoPolyLine +uid 12001,0 +va (VaSet +vasetType 3 +) +xt "261000,67000,264250,67000" +pts [ +"261000,67000" +"264250,67000" +] +) +end &512 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12006,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12007,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,65600,264100,67000" +st "reset" +blo "260000,66800" +tm "WireNameMgr" +) +) +on &25 +) +*730 (Wire +uid 12056,0 +shape (OrthoPolyLine +uid 12057,0 +va (VaSet +vasetType 3 +) +xt "281750,85000,289000,85000" +pts [ +"281750,85000" +"289000,85000" +] +) +start &497 +end &518 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12060,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12061,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,83600,289800,85000" +st "CLK_X" +blo "285000,84800" +tm "WireNameMgr" +) +) +on &519 +) +*731 (Wire +uid 12070,0 +shape (OrthoPolyLine +uid 12071,0 +va (VaSet +vasetType 3 +) +xt "281750,63000,289000,63000" +pts [ +"281750,63000" +"289000,63000" +] +) +start &508 +end &520 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12074,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12075,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,61600,289700,63000" +st "CLK_Y" +blo "285000,62800" +tm "WireNameMgr" +) +) +on &521 +) +*732 (Wire +uid 12084,0 +shape (OrthoPolyLine +uid 12085,0 +va (VaSet +vasetType 3 +) +xt "281750,81000,289000,81000" +pts [ +"281750,81000" +"289000,81000" +] +) +start &499 +end &522 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12088,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12089,0 +va (VaSet +font "Verdana,12,0" +) +xt "284000,79600,289700,81000" +st "CS_X_n" +blo "284000,80800" +tm "WireNameMgr" +) +) +on &523 +) +*733 (Wire +uid 12098,0 +shape (OrthoPolyLine +uid 12099,0 +va (VaSet +vasetType 3 +) +xt "281750,59000,289000,59000" +pts [ +"281750,59000" +"289000,59000" +] +) +start &510 +end &524 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12102,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12103,0 +va (VaSet +font "Verdana,12,0" +) +xt "284000,57600,289600,59000" +st "CS_Y_n" +blo "284000,58800" +tm "WireNameMgr" +) +) +on &525 +) +*734 (Wire +uid 12112,0 +shape (OrthoPolyLine +uid 12113,0 +va (VaSet +vasetType 3 +) +xt "281750,83000,289000,83000" +pts [ +"281750,83000" +"289000,83000" +] +) +start &503 +end &526 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12116,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12117,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,81600,289600,83000" +st "SDI_X" +blo "285000,82800" +tm "WireNameMgr" +) +) +on &527 +) +*735 (Wire +uid 12126,0 +shape (OrthoPolyLine +uid 12127,0 +va (VaSet +vasetType 3 +) +xt "281750,61000,289000,61000" +pts [ +"281750,61000" +"289000,61000" +] +) +start &514 +end &528 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12130,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12131,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,59600,289500,61000" +st "SDI_Y" +blo "285000,60800" +tm "WireNameMgr" +) +) +on &529 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *736 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*737 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*738 (MLText +uid 44,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*739 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*740 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*741 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*742 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*743 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*744 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*745 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4267,-4267,465287,250854" +cachedDiagramExtent "-24700,0,305600,246800" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 13426,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*746 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*747 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*748 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*749 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*750 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*751 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*752 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*753 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*754 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*755 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*756 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*757 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*758 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*759 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*760 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*761 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*762 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*763 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*764 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*765 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*766 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,400,219000,1400" +st "Declarations" +blo "212000,1200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,1300,215400,2300" +st "Ports:" +blo "212000,2100" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,20200,216800,21200" +st "Pre User:" +blo "212000,21000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,21100,248100,28100" +st "constant signalBitNb: positive := 16; +constant coeffBitNb : positive := signalBitNb+3; +constant sampleCountBitNb : positive := 8; +constant patternAddressBitNb : positive := 8; +-- sinewave generator +constant tableAddressBitNb : positive := 3; +constant phaseBitNb : positive := sampleCountBitNb + tableAddressBitNb + 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,27400,221000,28400" +st "Diagram Signals:" +blo "212000,28200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "212000,400,218000,1400" +st "Post User:" +blo "212000,1200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "212000,400,212000,400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 86,0 +usingSuid 1 +emptyRow *767 (LEmptyRow +) +uid 12307,0 +optionalChildren [ +*768 (RefLabelRowHdr +) +*769 (TitleRowHdr +) +*770 (FilterRowHdr +) +*771 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*772 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*773 (GroupColHdr +tm "GroupColHdrMgr" +) +*774 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*775 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*776 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*777 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*778 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*779 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*780 (LeafLogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 1,0 +) +) +uid 12134,0 +) +*781 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 12136,0 +) +*782 (LeafLogPort +port (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 3,0 +) +) +uid 12138,0 +) +*783 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +) +uid 12140,0 +) +*784 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 12142,0 +) +*785 (LeafLogPort +port (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 6,0 +) +) +uid 12144,0 +) +*786 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 12146,0 +) +*787 (LeafLogPort +port (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 12148,0 +) +*788 (LeafLogPort +port (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 9,0 +) +) +uid 12150,0 +) +*789 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 52 +suid 10,0 +) +) +uid 12152,0 +) +*790 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 56 +suid 11,0 +) +) +uid 12154,0 +) +*791 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 79 +suid 12,0 +) +) +uid 12156,0 +) +*792 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 68 +suid 13,0 +) +) +uid 12158,0 +) +*793 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 57 +suid 14,0 +) +) +uid 12160,0 +) +*794 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 58 +suid 15,0 +) +) +uid 12162,0 +) +*795 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 59 +suid 16,0 +) +) +uid 12164,0 +) +*796 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 60 +suid 17,0 +) +) +uid 12166,0 +) +*797 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 21 +suid 18,0 +) +) +uid 12168,0 +) +*798 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 27 +suid 19,0 +) +) +uid 12170,0 +) +*799 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 29 +suid 20,0 +) +) +uid 12172,0 +) +*800 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 35 +suid 21,0 +) +) +uid 12174,0 +) +*801 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 69 +suid 22,0 +) +) +uid 12176,0 +) +*802 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 62 +suid 23,0 +) +) +uid 12178,0 +) +*803 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 63 +suid 24,0 +) +) +uid 12180,0 +) +*804 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 64 +suid 25,0 +) +) +uid 12182,0 +) +*805 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 65 +suid 26,0 +) +) +uid 12184,0 +) +*806 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 22 +suid 27,0 +) +) +uid 12186,0 +) +*807 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 28 +suid 28,0 +) +) +uid 12188,0 +) +*808 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 30 +suid 29,0 +) +) +uid 12190,0 +) +*809 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 36 +suid 30,0 +) +) +uid 12192,0 +) +*810 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 61 +suid 31,0 +) +) +uid 12194,0 +) +*811 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 80 +suid 32,0 +) +) +uid 12196,0 +) +*812 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selControl" +t "std_ulogic" +o 71 +suid 33,0 +) +) +uid 12198,0 +) +*813 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSize" +t "std_ulogic" +o 72 +suid 34,0 +) +) +uid 12200,0 +) +*814 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 73 +suid 35,0 +) +) +uid 12202,0 +) +*815 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selX" +t "std_ulogic" +o 74 +suid 36,0 +) +) +uid 12204,0 +) +*816 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selY" +t "std_ulogic" +o 75 +suid 37,0 +) +) +uid 12206,0 +) +*817 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "run" +t "std_ulogic" +o 55 +suid 38,0 +) +) +uid 12208,0 +) +*818 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 81 +suid 39,0 +) +) +uid 12210,0 +) +*819 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 53 +suid 40,0 +) +) +uid 12212,0 +) +*820 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 41,0 +) +) +uid 12214,0 +) +*821 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 82 +suid 42,0 +) +) +uid 12216,0 +) +*822 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 41 +suid 43,0 +) +) +uid 12218,0 +) +*823 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 24 +suid 44,0 +) +) +uid 12220,0 +) +*824 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 31 +suid 45,0 +) +) +uid 12222,0 +) +*825 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrX" +t "std_ulogic" +o 46 +suid 46,0 +) +) +uid 12224,0 +) +*826 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnX" +t "std_ulogic" +o 43 +suid 47,0 +) +) +uid 12226,0 +) +*827 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 49 +suid 48,0 +) +) +uid 12228,0 +) +*828 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 32 +suid 49,0 +) +) +uid 12230,0 +) +*829 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 25 +suid 50,0 +) +) +uid 12232,0 +) +*830 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrY" +t "std_ulogic" +o 47 +suid 51,0 +) +) +uid 12234,0 +) +*831 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnY" +t "std_ulogic" +o 44 +suid 52,0 +) +) +uid 12236,0 +) +*832 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 50 +suid 53,0 +) +) +uid 12238,0 +) +*833 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 54,0 +) +) +uid 12240,0 +) +*834 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrHPulse" +t "std_ulogic" +o 85 +suid 55,0 +) +) +uid 12242,0 +) +*835 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrLPulse" +t "std_ulogic" +o 86 +suid 56,0 +) +) +uid 12244,0 +) +*836 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 54 +suid 57,0 +) +) +uid 12246,0 +) +*837 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 78 +suid 58,0 +) +) +uid 12248,0 +) +*838 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 77 +suid 59,0 +) +) +uid 12250,0 +) +*839 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 40 +suid 60,0 +) +) +uid 12252,0 +) +*840 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 61,0 +) +) +uid 12254,0 +) +*841 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 62,0 +) +) +uid 12256,0 +) +*842 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataInReg" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 37 +suid 63,0 +) +) +uid 12258,0 +) +*843 (LeafLogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 64,0 +) +) +uid 12260,0 +) +*844 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrReg" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 23 +suid 65,0 +) +) +uid 12262,0 +) +*845 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_ulogic" +o 42 +suid 66,0 +) +) +uid 12264,0 +) +*846 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wr16Pulse" +t "std_ulogic" +o 84 +suid 67,0 +) +) +uid 12266,0 +) +*847 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wr16" +t "std_ulogic" +o 83 +suid 68,0 +) +) +uid 12268,0 +) +*848 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 39 +suid 69,0 +) +) +uid 12270,0 +) +*849 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 38 +suid 70,0 +) +) +uid 12272,0 +) +*850 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrZ" +t "std_ulogic" +o 33 +suid 71,0 +) +) +uid 12274,0 +) +*851 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrZ" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 26 +suid 72,0 +) +) +uid 12276,0 +) +*852 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memZ" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 51 +suid 73,0 +) +) +uid 12278,0 +) +*853 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrZ" +t "std_ulogic" +o 48 +suid 74,0 +) +) +uid 12280,0 +) +*854 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnZ" +t "std_ulogic" +o 45 +suid 75,0 +) +) +uid 12282,0 +) +*855 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selZ" +t "std_ulogic" +o 76 +suid 76,0 +) +) +uid 12284,0 +) +*856 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 77,0 +) +) +uid 12286,0 +) +*857 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleZ1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 66 +suid 78,0 +) +) +uid 12288,0 +) +*858 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleZ2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 67 +suid 79,0 +) +) +uid 12290,0 +) +*859 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesZ" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 70 +suid 80,0 +) +) +uid 12292,0 +) +*860 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 81,0 +) +) +uid 12294,0 +) +*861 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 82,0 +) +) +uid 12296,0 +) +*862 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 83,0 +) +) +uid 12298,0 +) +*863 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 84,0 +) +) +uid 12300,0 +) +*864 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 85,0 +) +) +uid 12302,0 +) +*865 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 86,0 +) +) +uid 12304,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 12320,0 +optionalChildren [ +*866 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *867 (MRCItem +litem &767 +pos 86 +dimension 20 +) +uid 12322,0 +optionalChildren [ +*868 (MRCItem +litem &768 +pos 0 +dimension 20 +uid 12323,0 +) +*869 (MRCItem +litem &769 +pos 1 +dimension 23 +uid 12324,0 +) +*870 (MRCItem +litem &770 +pos 2 +hidden 1 +dimension 20 +uid 12325,0 +) +*871 (MRCItem +litem &780 +pos 0 +dimension 20 +uid 12135,0 +) +*872 (MRCItem +litem &781 +pos 1 +dimension 20 +uid 12137,0 +) +*873 (MRCItem +litem &782 +pos 2 +dimension 20 +uid 12139,0 +) +*874 (MRCItem +litem &783 +pos 3 +dimension 20 +uid 12141,0 +) +*875 (MRCItem +litem &784 +pos 4 +dimension 20 +uid 12143,0 +) +*876 (MRCItem +litem &785 +pos 5 +dimension 20 +uid 12145,0 +) +*877 (MRCItem +litem &786 +pos 6 +dimension 20 +uid 12147,0 +) +*878 (MRCItem +litem &787 +pos 7 +dimension 20 +uid 12149,0 +) +*879 (MRCItem +litem &788 +pos 8 +dimension 20 +uid 12151,0 +) +*880 (MRCItem +litem &789 +pos 20 +dimension 20 +uid 12153,0 +) +*881 (MRCItem +litem &790 +pos 21 +dimension 20 +uid 12155,0 +) +*882 (MRCItem +litem &791 +pos 22 +dimension 20 +uid 12157,0 +) +*883 (MRCItem +litem &792 +pos 23 +dimension 20 +uid 12159,0 +) +*884 (MRCItem +litem &793 +pos 24 +dimension 20 +uid 12161,0 +) +*885 (MRCItem +litem &794 +pos 25 +dimension 20 +uid 12163,0 +) +*886 (MRCItem +litem &795 +pos 26 +dimension 20 +uid 12165,0 +) +*887 (MRCItem +litem &796 +pos 27 +dimension 20 +uid 12167,0 +) +*888 (MRCItem +litem &797 +pos 28 +dimension 20 +uid 12169,0 +) +*889 (MRCItem +litem &798 +pos 29 +dimension 20 +uid 12171,0 +) +*890 (MRCItem +litem &799 +pos 30 +dimension 20 +uid 12173,0 +) +*891 (MRCItem +litem &800 +pos 31 +dimension 20 +uid 12175,0 +) +*892 (MRCItem +litem &801 +pos 32 +dimension 20 +uid 12177,0 +) +*893 (MRCItem +litem &802 +pos 33 +dimension 20 +uid 12179,0 +) +*894 (MRCItem +litem &803 +pos 34 +dimension 20 +uid 12181,0 +) +*895 (MRCItem +litem &804 +pos 35 +dimension 20 +uid 12183,0 +) +*896 (MRCItem +litem &805 +pos 36 +dimension 20 +uid 12185,0 +) +*897 (MRCItem +litem &806 +pos 37 +dimension 20 +uid 12187,0 +) +*898 (MRCItem +litem &807 +pos 38 +dimension 20 +uid 12189,0 +) +*899 (MRCItem +litem &808 +pos 39 +dimension 20 +uid 12191,0 +) +*900 (MRCItem +litem &809 +pos 40 +dimension 20 +uid 12193,0 +) +*901 (MRCItem +litem &810 +pos 41 +dimension 20 +uid 12195,0 +) +*902 (MRCItem +litem &811 +pos 42 +dimension 20 +uid 12197,0 +) +*903 (MRCItem +litem &812 +pos 43 +dimension 20 +uid 12199,0 +) +*904 (MRCItem +litem &813 +pos 44 +dimension 20 +uid 12201,0 +) +*905 (MRCItem +litem &814 +pos 45 +dimension 20 +uid 12203,0 +) +*906 (MRCItem +litem &815 +pos 46 +dimension 20 +uid 12205,0 +) +*907 (MRCItem +litem &816 +pos 47 +dimension 20 +uid 12207,0 +) +*908 (MRCItem +litem &817 +pos 48 +dimension 20 +uid 12209,0 +) +*909 (MRCItem +litem &818 +pos 49 +dimension 20 +uid 12211,0 +) +*910 (MRCItem +litem &819 +pos 50 +dimension 20 +uid 12213,0 +) +*911 (MRCItem +litem &820 +pos 9 +dimension 20 +uid 12215,0 +) +*912 (MRCItem +litem &821 +pos 51 +dimension 20 +uid 12217,0 +) +*913 (MRCItem +litem &822 +pos 52 +dimension 20 +uid 12219,0 +) +*914 (MRCItem +litem &823 +pos 53 +dimension 20 +uid 12221,0 +) +*915 (MRCItem +litem &824 +pos 54 +dimension 20 +uid 12223,0 +) +*916 (MRCItem +litem &825 +pos 55 +dimension 20 +uid 12225,0 +) +*917 (MRCItem +litem &826 +pos 56 +dimension 20 +uid 12227,0 +) +*918 (MRCItem +litem &827 +pos 57 +dimension 20 +uid 12229,0 +) +*919 (MRCItem +litem &828 +pos 58 +dimension 20 +uid 12231,0 +) +*920 (MRCItem +litem &829 +pos 59 +dimension 20 +uid 12233,0 +) +*921 (MRCItem +litem &830 +pos 60 +dimension 20 +uid 12235,0 +) +*922 (MRCItem +litem &831 +pos 61 +dimension 20 +uid 12237,0 +) +*923 (MRCItem +litem &832 +pos 62 +dimension 20 +uid 12239,0 +) +*924 (MRCItem +litem &833 +pos 10 +dimension 20 +uid 12241,0 +) +*925 (MRCItem +litem &834 +pos 63 +dimension 20 +uid 12243,0 +) +*926 (MRCItem +litem &835 +pos 64 +dimension 20 +uid 12245,0 +) +*927 (MRCItem +litem &836 +pos 65 +dimension 20 +uid 12247,0 +) +*928 (MRCItem +litem &837 +pos 66 +dimension 20 +uid 12249,0 +) +*929 (MRCItem +litem &838 +pos 67 +dimension 20 +uid 12251,0 +) +*930 (MRCItem +litem &839 +pos 68 +dimension 20 +uid 12253,0 +) +*931 (MRCItem +litem &840 +pos 69 +dimension 20 +uid 12255,0 +) +*932 (MRCItem +litem &841 +pos 11 +dimension 20 +uid 12257,0 +) +*933 (MRCItem +litem &842 +pos 70 +dimension 20 +uid 12259,0 +) +*934 (MRCItem +litem &843 +pos 12 +dimension 20 +uid 12261,0 +) +*935 (MRCItem +litem &844 +pos 71 +dimension 20 +uid 12263,0 +) +*936 (MRCItem +litem &845 +pos 72 +dimension 20 +uid 12265,0 +) +*937 (MRCItem +litem &846 +pos 73 +dimension 20 +uid 12267,0 +) +*938 (MRCItem +litem &847 +pos 74 +dimension 20 +uid 12269,0 +) +*939 (MRCItem +litem &848 +pos 75 +dimension 20 +uid 12271,0 +) +*940 (MRCItem +litem &849 +pos 76 +dimension 20 +uid 12273,0 +) +*941 (MRCItem +litem &850 +pos 77 +dimension 20 +uid 12275,0 +) +*942 (MRCItem +litem &851 +pos 78 +dimension 20 +uid 12277,0 +) +*943 (MRCItem +litem &852 +pos 79 +dimension 20 +uid 12279,0 +) +*944 (MRCItem +litem &853 +pos 80 +dimension 20 +uid 12281,0 +) +*945 (MRCItem +litem &854 +pos 81 +dimension 20 +uid 12283,0 +) +*946 (MRCItem +litem &855 +pos 82 +dimension 20 +uid 12285,0 +) +*947 (MRCItem +litem &856 +pos 13 +dimension 20 +uid 12287,0 +) +*948 (MRCItem +litem &857 +pos 83 +dimension 20 +uid 12289,0 +) +*949 (MRCItem +litem &858 +pos 84 +dimension 20 +uid 12291,0 +) +*950 (MRCItem +litem &859 +pos 85 +dimension 20 +uid 12293,0 +) +*951 (MRCItem +litem &860 +pos 14 +dimension 20 +uid 12295,0 +) +*952 (MRCItem +litem &861 +pos 15 +dimension 20 +uid 12297,0 +) +*953 (MRCItem +litem &862 +pos 16 +dimension 20 +uid 12299,0 +) +*954 (MRCItem +litem &863 +pos 17 +dimension 20 +uid 12301,0 +) +*955 (MRCItem +litem &864 +pos 18 +dimension 20 +uid 12303,0 +) +*956 (MRCItem +litem &865 +pos 19 +dimension 20 +uid 12305,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 12326,0 +optionalChildren [ +*957 (MRCItem +litem &771 +pos 0 +dimension 20 +uid 12327,0 +) +*958 (MRCItem +litem &773 +pos 1 +dimension 50 +uid 12328,0 +) +*959 (MRCItem +litem &774 +pos 2 +dimension 100 +uid 12329,0 +) +*960 (MRCItem +litem &775 +pos 3 +dimension 50 +uid 12330,0 +) +*961 (MRCItem +litem &776 +pos 4 +dimension 100 +uid 12331,0 +) +*962 (MRCItem +litem &777 +pos 5 +dimension 100 +uid 12332,0 +) +*963 (MRCItem +litem &778 +pos 6 +dimension 50 +uid 12333,0 +) +*964 (MRCItem +litem &779 +pos 7 +dimension 80 +uid 12334,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 12321,0 +vaOverrides [ +] +) +] +) +uid 12306,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *965 (LEmptyRow +) +uid 12336,0 +optionalChildren [ +*966 (RefLabelRowHdr +) +*967 (TitleRowHdr +) +*968 (FilterRowHdr +) +*969 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*970 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*971 (GroupColHdr +tm "GroupColHdrMgr" +) +*972 (NameColHdr +tm "GenericNameColHdrMgr" +) +*973 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*974 (InitColHdr +tm "GenericValueColHdrMgr" +) +*975 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*976 (EolColHdr +tm "GenericEolColHdrMgr" +) +*977 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 12611,0 +) +*978 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 12613,0 +) +] +) +pdm (PhysicalDM +uid 12348,0 +optionalChildren [ +*979 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *980 (MRCItem +litem &965 +pos 2 +dimension 20 +) +uid 12350,0 +optionalChildren [ +*981 (MRCItem +litem &966 +pos 0 +dimension 20 +uid 12351,0 +) +*982 (MRCItem +litem &967 +pos 1 +dimension 23 +uid 12352,0 +) +*983 (MRCItem +litem &968 +pos 2 +hidden 1 +dimension 20 +uid 12353,0 +) +*984 (MRCItem +litem &977 +pos 0 +dimension 20 +uid 12610,0 +) +*985 (MRCItem +litem &978 +pos 1 +dimension 20 +uid 12612,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 12354,0 +optionalChildren [ +*986 (MRCItem +litem &969 +pos 0 +dimension 20 +uid 12355,0 +) +*987 (MRCItem +litem &971 +pos 1 +dimension 50 +uid 12356,0 +) +*988 (MRCItem +litem &972 +pos 2 +dimension 100 +uid 12357,0 +) +*989 (MRCItem +litem &973 +pos 3 +dimension 100 +uid 12358,0 +) +*990 (MRCItem +litem &974 +pos 4 +dimension 50 +uid 12359,0 +) +*991 (MRCItem +litem &975 +pos 5 +dimension 50 +uid 12360,0 +) +*992 (MRCItem +litem &976 +pos 6 +dimension 80 +uid 12361,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 12349,0 +vaOverrides [ +] +) +] +) +uid 12335,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/symbol.sb new file mode 100644 index 0000000..7dee099 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@blanking/symbol.sb @@ -0,0 +1,2620 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2020,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 243,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 244,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 13,0 +) +) +uid 245,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 246,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 10,0 +) +) +uid 247,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 18,0 +) +) +uid 248,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 14,0 +) +) +uid 249,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 250,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 251,0 +) +*10 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 15,0 +) +) +uid 252,0 +) +*11 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 17,0 +) +) +uid 253,0 +) +*12 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 254,0 +) +*13 (LogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 255,0 +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 256,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 257,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 12,0 +) +) +uid 258,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 19,0 +) +) +uid 259,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 16,0 +) +) +uid 260,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 20,0 +) +) +uid 261,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +uid 262,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 263,0 +) +*22 (RefLabelRowHdr +) +*23 (TitleRowHdr +) +*24 (FilterRowHdr +) +*25 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*26 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*27 (GroupColHdr +tm "GroupColHdrMgr" +) +*28 (NameColHdr +tm "NameColHdrMgr" +) +*29 (ModeColHdr +tm "ModeColHdrMgr" +) +*30 (TypeColHdr +tm "TypeColHdrMgr" +) +*31 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*32 (InitColHdr +tm "InitColHdrMgr" +) +*33 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 264,0 +optionalChildren [ +*34 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *35 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 167,0 +optionalChildren [ +*36 (MRCItem +litem &22 +pos 0 +dimension 20 +uid 170,0 +) +*37 (MRCItem +litem &23 +pos 1 +dimension 23 +uid 172,0 +) +*38 (MRCItem +litem &24 +pos 2 +hidden 1 +dimension 20 +uid 174,0 +) +*39 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 193,0 +) +*40 (MRCItem +litem &3 +pos 11 +dimension 20 +uid 194,0 +) +*41 (MRCItem +litem &4 +pos 5 +dimension 20 +uid 195,0 +) +*42 (MRCItem +litem &5 +pos 8 +dimension 20 +uid 196,0 +) +*43 (MRCItem +litem &6 +pos 17 +dimension 20 +uid 197,0 +) +*44 (MRCItem +litem &7 +pos 13 +dimension 20 +uid 198,0 +) +*45 (MRCItem +litem &8 +pos 12 +dimension 20 +uid 199,0 +) +*46 (MRCItem +litem &9 +pos 1 +dimension 20 +uid 200,0 +) +*47 (MRCItem +litem &10 +pos 14 +dimension 20 +uid 201,0 +) +*48 (MRCItem +litem &11 +pos 18 +dimension 20 +uid 202,0 +) +*49 (MRCItem +litem &12 +pos 4 +dimension 20 +uid 203,0 +) +*50 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 204,0 +) +*51 (MRCItem +litem &14 +pos 3 +dimension 20 +uid 205,0 +) +*52 (MRCItem +litem &15 +pos 6 +dimension 20 +uid 206,0 +) +*53 (MRCItem +litem &16 +pos 10 +dimension 20 +uid 207,0 +) +*54 (MRCItem +litem &17 +pos 19 +dimension 20 +uid 208,0 +) +*55 (MRCItem +litem &18 +pos 16 +dimension 20 +uid 209,0 +) +*56 (MRCItem +litem &19 +pos 15 +dimension 20 +uid 210,0 +) +*57 (MRCItem +litem &20 +pos 9 +dimension 20 +uid 211,0 +) +*58 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 212,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 168,0 +optionalChildren [ +*59 (MRCItem +litem &25 +pos 0 +dimension 20 +uid 176,0 +) +*60 (MRCItem +litem &27 +pos 1 +dimension 50 +uid 180,0 +) +*61 (MRCItem +litem &28 +pos 2 +dimension 100 +uid 182,0 +) +*62 (MRCItem +litem &29 +pos 3 +dimension 50 +uid 184,0 +) +*63 (MRCItem +litem &30 +pos 4 +dimension 100 +uid 186,0 +) +*64 (MRCItem +litem &31 +pos 5 +dimension 100 +uid 188,0 +) +*65 (MRCItem +litem &32 +pos 6 +dimension 50 +uid 190,0 +) +*66 (MRCItem +litem &33 +pos 7 +dimension 80 +uid 192,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 166,0 +vaOverrides [ +] +) +] +) +uid 242,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *67 (LEmptyRow +) +uid 266,0 +optionalChildren [ +*68 (RefLabelRowHdr +) +*69 (TitleRowHdr +) +*70 (FilterRowHdr +) +*71 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*72 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*73 (GroupColHdr +tm "GroupColHdrMgr" +) +*74 (NameColHdr +tm "GenericNameColHdrMgr" +) +*75 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*76 (InitColHdr +tm "GenericValueColHdrMgr" +) +*77 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*78 (EolColHdr +tm "GenericEolColHdrMgr" +) +*79 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 238,0 +) +*80 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 239,0 +) +] +) +pdm (PhysicalDM +uid 267,0 +optionalChildren [ +*81 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *82 (MRCItem +litem &67 +pos 3 +dimension 20 +) +uid 214,0 +optionalChildren [ +*83 (MRCItem +litem &68 +pos 0 +dimension 20 +uid 217,0 +) +*84 (MRCItem +litem &69 +pos 1 +dimension 23 +uid 219,0 +) +*85 (MRCItem +litem &70 +pos 2 +hidden 1 +dimension 20 +uid 221,0 +) +*86 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 240,0 +) +*87 (MRCItem +litem &80 +pos 1 +dimension 20 +uid 241,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 215,0 +optionalChildren [ +*88 (MRCItem +litem &71 +pos 0 +dimension 20 +uid 223,0 +) +*89 (MRCItem +litem &73 +pos 1 +dimension 50 +uid 227,0 +) +*90 (MRCItem +litem &74 +pos 2 +dimension 100 +uid 229,0 +) +*91 (MRCItem +litem &75 +pos 3 +dimension 100 +uid 231,0 +) +*92 (MRCItem +litem &76 +pos 4 +dimension 50 +uid 233,0 +) +*93 (MRCItem +litem &77 +pos 5 +dimension 50 +uid 235,0 +) +*94 (MRCItem +litem &78 +pos 6 +dimension 80 +uid 237,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 213,0 +vaOverrides [ +] +) +] +) +uid 265,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@blanking/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@blanking/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@blanking" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamerBlanking" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerBlanking" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:22" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbBeamerBlanking" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@blanking/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamerBlanking/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:22" +) +(vvPair +variable "unit" +value "ahbBeamerBlanking" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*95 (SymbolBody +uid 8,0 +optionalChildren [ +*96 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,31625,36000,32375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "37000,31400,39500,32300" +st "clock" +blo "37000,32100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,18500,10300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*97 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,5625,36000,6375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "37000,5400,39000,6300" +st "addr" +blo "37000,6100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8500,30000,9400" +st "addr : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*98 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,5625,52750,6375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "49001,5400,51001,6300" +st "outX" +ju 2 +blo "51001,6100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7600,18500,8500" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*99 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,33625,36000,34375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "37000,33400,39500,34300" +st "reset" +blo "37000,34100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,18500,11200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*100 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,7625,52750,8375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "49001,7400,51001,8300" +st "outY" +ju 2 +blo "51001,8100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,18500,12100" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*101 (CptPort +uid 87,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 118,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,7625,36000,8375" +) +tg (CPTG +uid 89,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 90,0 +va (VaSet +font "courier,9,0" +) +xt "37000,7400,40000,8300" +st "dataIn" +blo "37000,8100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 91,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,33000,13000" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*102 (CptPort +uid 92,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 93,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,13625,36000,14375" +) +tg (CPTG +uid 94,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 95,0 +va (VaSet +font "courier,9,0" +) +xt "37000,13400,38000,14300" +st "rd" +blo "37000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 96,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,18500,13900" +st "rd : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*103 (CptPort +uid 97,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 98,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,15625,36000,16375" +) +tg (CPTG +uid 99,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 100,0 +va (VaSet +font "courier,9,0" +) +xt "37000,15400,38500,16300" +st "wrH" +blo "37000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 101,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,18500,14800" +st "wrH : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*104 (CptPort +uid 102,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 103,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,19625,36000,20375" +) +tg (CPTG +uid 104,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 105,0 +va (VaSet +font "courier,9,0" +) +xt "37000,19400,38000,20300" +st "cs" +blo "37000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 106,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,18500,15700" +st "cs : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*105 (CptPort +uid 107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 108,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,17625,36000,18375" +) +tg (CPTG +uid 109,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 110,0 +va (VaSet +font "courier,9,0" +) +xt "37000,17400,38500,18300" +st "wrL" +blo "37000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 111,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,18500,16600" +st "wrL : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 10,0 +) +) +) +*106 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,9625,36000,10375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "courier,9,0" +) +xt "37000,9400,40500,10300" +st "dataOut" +blo "37000,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16600,32500,17500" +st "dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +) +*107 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,31625,52750,32375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "47501,31400,51001,32300" +st "testOut" +ju 2 +blo "51001,32100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17500,26500,18400" +st "testOut : OUT std_ulogic_vector (1 TO 16) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 12,0 +) +) +) +*108 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,29625,52750,30375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "46501,29400,51001,30300" +st "selSinCos" +ju 2 +blo "51001,30100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18400,18500,19300" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 13,0 +) +) +) +*109 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,9625,52750,10375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +font "courier,9,0" +) +xt "49001,9400,51001,10300" +st "outZ" +ju 2 +blo "51001,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19300,18500,20200" +st "outZ : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 14,0 +) +) +) +*110 (CptPort +uid 136,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 137,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,15625,52750,16375" +) +tg (CPTG +uid 138,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 139,0 +va (VaSet +font "courier,9,0" +) +xt "48500,15400,51000,16300" +st "CLK_X" +ju 2 +blo "51000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 140,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22000,18500,22900" +st "CLK_X : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 15,0 +) +) +) +*111 (CptPort +uid 141,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 142,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,13625,52750,14375" +) +tg (CPTG +uid 143,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 144,0 +va (VaSet +font "courier,9,0" +) +xt "48000,13400,51000,14300" +st "CS_X_n" +ju 2 +blo "51000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 145,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20200,18500,21100" +st "CS_X_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 16,0 +) +) +) +*112 (CptPort +uid 146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,17625,52750,18375" +) +tg (CPTG +uid 148,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 149,0 +va (VaSet +font "courier,9,0" +) +xt "48500,17400,51000,18300" +st "SDI_X" +ju 2 +blo "51000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 150,0 +va (VaSet +font "courier,8,0" +) +xt "2000,21100,18500,22000" +st "SDI_X : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 17,0 +) +) +) +*113 (CptPort +uid 151,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 152,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,21625,52750,22375" +) +tg (CPTG +uid 153,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 154,0 +va (VaSet +font "courier,9,0" +) +xt "48000,21400,51000,22300" +st "CS_Y_n" +ju 2 +blo "51000,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 155,0 +va (VaSet +font "courier,8,0" +) +xt "2000,23800,18500,24700" +st "CS_Y_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 18,0 +) +) +) +*114 (CptPort +uid 156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,25625,52750,26375" +) +tg (CPTG +uid 158,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 159,0 +va (VaSet +font "courier,9,0" +) +xt "48500,25400,51000,26300" +st "SDI_Y" +ju 2 +blo "51000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 160,0 +va (VaSet +font "courier,8,0" +) +xt "2000,24700,17500,25600" +st "SDI_Y : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 19,0 +) +) +) +*115 (CptPort +uid 161,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 162,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 163,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 164,0 +va (VaSet +font "courier,9,0" +) +xt "48500,23400,51000,24300" +st "CLK_Y" +ju 2 +blo "51000,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 165,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22900,18500,23800" +st "CLK_Y : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 20,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,2000,52000,36000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "36600,35800,43100,36700" +st "SystemOnChip" +blo "36600,36500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "36600,36700,45600,37600" +st "ahbBeamerBlanking" +blo "36600,37400" +) +) +gi *116 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "36000,39600,49500,43200" +st "Generic Declarations + +dataBitNb positive 16 +addressBitNb positive 24 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*117 (Grouping +uid 16,0 +optionalChildren [ +*118 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*119 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*120 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*121 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*122 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*123 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*124 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*125 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*126 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*127 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *128 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*129 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*130 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-940,75120,50630" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *131 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *132 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,6500,6700" +st "Declarations" +blo "0,6500" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6700,3000,7600" +st "Ports:" +blo "0,7400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,25600,2500,26500" +st "User:" +blo "0,26300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7500,6700" +st "Internal User:" +blo "0,6500" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,26500,2000,26500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 290,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/empty.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/empty.bd new file mode 100644 index 0000000..cc112af --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/empty.bd @@ -0,0 +1,3078 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator\\empty.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator\\empty.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "empty" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerOperator" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerOperator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "empty.bd" +) +(vvPair +variable "f_logical" +value "empty.bd" +) +(vvPair +variable "f_noext" +value "empty" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:00:51" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbBeamerOperator" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator\\empty.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerOperator\\empty.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "empty" +) +(vvPair +variable "this_file_logical" +value "empty" +) +(vvPair +variable "time" +value "15:00:51" +) +(vvPair +variable "unit" +value "ahbBeamerOperator" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "empty" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 184,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "-2000,7625,-500,8375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "-500,8000,0,8000" +pts [ +"-500,8000" +"0,8000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +) +xt "-6400,7500,-3000,8700" +st "clock" +ju 2 +blo "-3000,8500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,3600,33200,4600" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "-2000,11625,-500,12375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "-500,12000,0,12000" +pts [ +"-500,12000" +"0,12000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +) +xt "-11300,11500,-3000,12700" +st "interpolateLin" +ju 2 +blo "-3000,12500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,6800,33900,7800" +st "interpolateLin : std_ulogic" +) +) +*5 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "-2000,15625,-500,16375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "-500,16000,0,16000" +pts [ +"-500,16000" +"0,16000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +) +xt "-6800,15500,-3000,16700" +st "memX" +ju 2 +blo "-3000,16500" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,8400,48500,9400" +st "memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*7 (PortIoIn +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 270 +xt "-2000,19625,-500,20375" +) +(Line +uid 54,0 +sl 0 +ro 270 +xt "-500,20000,0,20000" +pts [ +"-500,20000" +"0,20000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +) +xt "-6800,19500,-3000,20700" +st "memY" +ju 2 +blo "-3000,20500" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 63,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,9200,48500,10200" +st "memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*9 (PortIoOut +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 270 +xt "60500,7625,62000,8375" +) +(Line +uid 68,0 +sl 0 +ro 270 +xt "60000,8000,60500,8000" +pts [ +"60000,8000" +"60500,8000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +) +xt "63000,7500,66000,8700" +st "outX" +blo "63000,8500" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 77,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,2000,33300,3000" +st "outX : std_ulogic" +) +) +*11 (PortIoOut +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 270 +xt "60500,11625,62000,12375" +) +(Line +uid 82,0 +sl 0 +ro 270 +xt "60000,12000,60500,12000" +pts [ +"60000,12000" +"60500,12000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "63000,11500,66000,12700" +st "outY" +blo "63000,12500" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 91,0 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,5200,33300,6200" +st "outY : std_ulogic" +) +) +*13 (PortIoIn +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "-2000,23625,-500,24375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "-500,24000,0,24000" +pts [ +"-500,24000" +"0,24000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +) +xt "-6300,23500,-3000,24700" +st "reset" +ju 2 +blo "-3000,24500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 105,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,4400,33200,5400" +st "reset : std_ulogic" +) +) +*15 (PortIoIn +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "-2000,27625,-500,28375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "-500,28000,0,28000" +pts [ +"-500,28000" +"0,28000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "-5300,27500,-3000,28700" +st "run" +ju 2 +blo "-3000,28500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 119,0 +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,2800,33100,3800" +st "run : std_ulogic" +) +) +*17 (PortIoIn +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "-2000,31625,-500,32375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "-500,32000,0,32000" +pts [ +"-500,32000" +"0,32000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +) +xt "-8800,31500,-3000,32700" +st "selSinCos" +ju 2 +blo "-3000,32500" +tm "WireNameMgr" +) +) +) +*18 (Net +uid 133,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 9,0 +) +declText (MLText +uid 134,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,6000,33800,7000" +st "selSinCos : std_ulogic" +) +) +*19 (PortIoIn +uid 135,0 +shape (CompositeShape +uid 136,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 137,0 +sl 0 +ro 270 +xt "-2000,35625,-500,36375" +) +(Line +uid 138,0 +sl 0 +ro 270 +xt "-500,36000,0,36000" +pts [ +"-500,36000" +"0,36000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 139,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 140,0 +va (VaSet +) +xt "-11000,35500,-3000,36700" +st "updatePeriod" +ju 2 +blo "-3000,36500" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 147,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 10,0 +) +declText (MLText +uid 148,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,7600,48400,8600" +st "updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*21 (PortIoOut +uid 370,0 +shape (CompositeShape +uid 371,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 372,0 +sl 0 +ro 270 +xt "57500,19625,59000,20375" +) +(Line +uid 373,0 +sl 0 +ro 270 +xt "57000,20000,57500,20000" +pts [ +"57000,20000" +"57500,20000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 374,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 375,0 +va (VaSet +) +xt "60000,19500,67600,20700" +st "newPolynom" +blo "60000,20500" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 384,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 12,0 +) +declText (MLText +uid 385,0 +va (VaSet +font "Verdana,8,0" +) +xt "22000,10000,34900,11000" +st "newPolynom : std_ulogic" +) +) +*23 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "0,8000,10000,8000" +pts [ +"0,8000" +"10000,8000" +] +) +start &1 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +isHidden 1 +) +xt "2000,7000,5400,8200" +st "clock" +blo "2000,8000" +tm "WireNameMgr" +) +) +on &2 +) +*24 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "0,12000,10000,12000" +pts [ +"0,12000" +"10000,12000" +] +) +start &3 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +isHidden 1 +) +xt "2000,11000,10300,12200" +st "interpolateLin" +blo "2000,12000" +tm "WireNameMgr" +) +) +on &4 +) +*25 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "0,16000,10000,16000" +pts [ +"0,16000" +"10000,16000" +] +) +start &5 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +isHidden 1 +) +xt "2000,15000,17100,16200" +st "memX : (signalBitNb-1:0)" +blo "2000,16000" +tm "WireNameMgr" +) +) +on &6 +) +*26 (Wire +uid 57,0 +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "0,20000,10000,20000" +pts [ +"0,20000" +"10000,20000" +] +) +start &7 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +isHidden 1 +) +xt "2000,19000,17100,20200" +st "memY : (signalBitNb-1:0)" +blo "2000,20000" +tm "WireNameMgr" +) +) +on &8 +) +*27 (Wire +uid 71,0 +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +) +xt "50000,8000,60000,8000" +pts [ +"60000,8000" +"50000,8000" +] +) +start &9 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +isHidden 1 +) +xt "59000,7000,62000,8200" +st "outX" +blo "59000,8000" +tm "WireNameMgr" +) +) +on &10 +) +*28 (Wire +uid 85,0 +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +) +xt "50000,12000,60000,12000" +pts [ +"60000,12000" +"50000,12000" +] +) +start &11 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +isHidden 1 +) +xt "59000,11000,62000,12200" +st "outY" +blo "59000,12000" +tm "WireNameMgr" +) +) +on &12 +) +*29 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +) +xt "0,24000,10000,24000" +pts [ +"0,24000" +"10000,24000" +] +) +start &13 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +isHidden 1 +) +xt "2000,23000,5300,24200" +st "reset" +blo "2000,24000" +tm "WireNameMgr" +) +) +on &14 +) +*30 (Wire +uid 113,0 +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +) +xt "0,28000,10000,28000" +pts [ +"0,28000" +"10000,28000" +] +) +start &15 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +isHidden 1 +) +xt "2000,27000,4300,28200" +st "run" +blo "2000,28000" +tm "WireNameMgr" +) +) +on &16 +) +*31 (Wire +uid 127,0 +shape (OrthoPolyLine +uid 128,0 +va (VaSet +vasetType 3 +) +xt "0,32000,10000,32000" +pts [ +"0,32000" +"10000,32000" +] +) +start &17 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +isHidden 1 +) +xt "2000,31000,7800,32200" +st "selSinCos" +blo "2000,32000" +tm "WireNameMgr" +) +) +on &18 +) +*32 (Wire +uid 141,0 +shape (OrthoPolyLine +uid 142,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "0,36000,10000,36000" +pts [ +"0,36000" +"10000,36000" +] +) +start &19 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 145,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 146,0 +va (VaSet +isHidden 1 +) +xt "2000,35000,24200,36200" +st "updatePeriod : (updatePeriodBitNb-1:0)" +blo "2000,36000" +tm "WireNameMgr" +) +) +on &20 +) +*33 (Wire +uid 376,0 +shape (OrthoPolyLine +uid 377,0 +va (VaSet +vasetType 3 +) +xt "47000,20000,57000,20000" +pts [ +"57000,20000" +"47000,20000" +] +) +start &21 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 381,0 +va (VaSet +isHidden 1 +) +xt "56000,19000,63600,20200" +st "newPolynom" +blo "56000,20000" +tm "WireNameMgr" +) +) +on &22 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *34 (PackageList +uid 173,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 174,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*36 (MLText +uid 175,0 +va (VaSet +) +xt "0,1000,16900,4600" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 176,0 +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 177,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*38 (Text +uid 178,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*39 (MLText +uid 179,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 180,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*41 (MLText +uid 181,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*42 (Text +uid 182,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*43 (MLText +uid 183,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-12448,-1157,69034,43114" +cachedDiagramExtent "-8300,0,64900,36500" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-82000,0" +lastUid 477,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*45 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*46 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2200,5500,3200,6500" +st "I0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*48 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*49 (Text +va (VaSet +font "Verdana,8,1" +) +xt "550,5500,1550,6500" +st "I0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*51 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*52 (Text +va (VaSet +font "Verdana,8,1" +) +xt "900,5500,1900,6500" +st "I0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*54 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*55 (Text +va (VaSet +font "Verdana,8,1" +) +xt "500,5500,1500,6500" +st "I0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*57 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*58 (Text +va (VaSet +font "Verdana,8,1" +) +xt "50,5500,1050,6500" +st "I0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*60 (Text +va (VaSet +font "Verdana,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*64 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "20000,0,27000,1000" +st "Declarations" +blo "20000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "20000,1000,23400,2000" +st "Ports:" +blo "20000,1800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,24800,1000" +st "Pre User:" +blo "20000,800" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "20000,10800,29000,11800" +st "Diagram Signals:" +blo "20000,11600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,26000,1000" +st "Post User:" +blo "20000,800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 12,0 +usingSuid 1 +emptyRow *65 (LEmptyRow +) +uid 186,0 +optionalChildren [ +*66 (RefLabelRowHdr +) +*67 (TitleRowHdr +) +*68 (FilterRowHdr +) +*69 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*70 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*71 (GroupColHdr +tm "GroupColHdrMgr" +) +*72 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*73 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*74 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*75 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*76 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*77 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*78 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 5,0 +) +) +uid 149,0 +) +*79 (LeafLogPort +port (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 8,0 +) +) +uid 151,0 +) +*80 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 153,0 +) +*81 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 155,0 +) +*82 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 6,0 +) +) +uid 157,0 +) +*83 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 9,0 +) +) +uid 159,0 +) +*84 (LeafLogPort +port (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2,0 +) +) +uid 161,0 +) +*85 (LeafLogPort +port (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 10,0 +) +) +uid 163,0 +) +*86 (LeafLogPort +port (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 3,0 +) +) +uid 165,0 +) +*87 (LeafLogPort +port (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 4,0 +) +) +uid 167,0 +) +*88 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 12,0 +) +) +uid 386,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 199,0 +optionalChildren [ +*89 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *90 (MRCItem +litem &65 +pos 11 +dimension 20 +) +uid 201,0 +optionalChildren [ +*91 (MRCItem +litem &66 +pos 0 +dimension 20 +uid 202,0 +) +*92 (MRCItem +litem &67 +pos 1 +dimension 23 +uid 203,0 +) +*93 (MRCItem +litem &68 +pos 2 +hidden 1 +dimension 20 +uid 204,0 +) +*94 (MRCItem +litem &78 +pos 0 +dimension 20 +uid 150,0 +) +*95 (MRCItem +litem &79 +pos 1 +dimension 20 +uid 152,0 +) +*96 (MRCItem +litem &80 +pos 2 +dimension 20 +uid 154,0 +) +*97 (MRCItem +litem &81 +pos 3 +dimension 20 +uid 156,0 +) +*98 (MRCItem +litem &82 +pos 4 +dimension 20 +uid 158,0 +) +*99 (MRCItem +litem &83 +pos 5 +dimension 20 +uid 160,0 +) +*100 (MRCItem +litem &84 +pos 6 +dimension 20 +uid 162,0 +) +*101 (MRCItem +litem &85 +pos 7 +dimension 20 +uid 164,0 +) +*102 (MRCItem +litem &86 +pos 8 +dimension 20 +uid 166,0 +) +*103 (MRCItem +litem &87 +pos 9 +dimension 20 +uid 168,0 +) +*104 (MRCItem +litem &88 +pos 10 +dimension 20 +uid 387,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 205,0 +optionalChildren [ +*105 (MRCItem +litem &69 +pos 0 +dimension 20 +uid 206,0 +) +*106 (MRCItem +litem &71 +pos 1 +dimension 50 +uid 207,0 +) +*107 (MRCItem +litem &72 +pos 2 +dimension 100 +uid 208,0 +) +*108 (MRCItem +litem &73 +pos 3 +dimension 50 +uid 209,0 +) +*109 (MRCItem +litem &74 +pos 4 +dimension 100 +uid 210,0 +) +*110 (MRCItem +litem &75 +pos 5 +dimension 100 +uid 211,0 +) +*111 (MRCItem +litem &76 +pos 6 +dimension 50 +uid 212,0 +) +*112 (MRCItem +litem &77 +pos 7 +dimension 80 +uid 213,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 200,0 +vaOverrides [ +] +) +] +) +uid 185,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *113 (LEmptyRow +) +uid 215,0 +optionalChildren [ +*114 (RefLabelRowHdr +) +*115 (TitleRowHdr +) +*116 (FilterRowHdr +) +*117 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*118 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*119 (GroupColHdr +tm "GroupColHdrMgr" +) +*120 (NameColHdr +tm "GenericNameColHdrMgr" +) +*121 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*122 (InitColHdr +tm "GenericValueColHdrMgr" +) +*123 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*124 (EolColHdr +tm "GenericEolColHdrMgr" +) +*125 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 169,0 +) +*126 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 171,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 227,0 +optionalChildren [ +*127 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *128 (MRCItem +litem &113 +pos 2 +dimension 20 +) +uid 229,0 +optionalChildren [ +*129 (MRCItem +litem &114 +pos 0 +dimension 20 +uid 230,0 +) +*130 (MRCItem +litem &115 +pos 1 +dimension 23 +uid 231,0 +) +*131 (MRCItem +litem &116 +pos 2 +hidden 1 +dimension 20 +uid 232,0 +) +*132 (MRCItem +litem &125 +pos 0 +dimension 20 +uid 170,0 +) +*133 (MRCItem +litem &126 +pos 1 +dimension 20 +uid 172,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 233,0 +optionalChildren [ +*134 (MRCItem +litem &117 +pos 0 +dimension 20 +uid 234,0 +) +*135 (MRCItem +litem &119 +pos 1 +dimension 50 +uid 235,0 +) +*136 (MRCItem +litem &120 +pos 2 +dimension 100 +uid 236,0 +) +*137 (MRCItem +litem &121 +pos 3 +dimension 100 +uid 237,0 +) +*138 (MRCItem +litem &122 +pos 4 +dimension 50 +uid 238,0 +) +*139 (MRCItem +litem &123 +pos 5 +dimension 50 +uid 239,0 +) +*140 (MRCItem +litem &124 +pos 6 +dimension 80 +uid 240,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 228,0 +vaOverrides [ +] +) +] +) +uid 214,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/struct.bd new file mode 100644 index 0000000..4d097de --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/struct.bd @@ -0,0 +1,11275 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_speed" +duLibraryName "SystemOnChip" +duName "periphSpeedController" +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +mwi 0 +uid 17519,0 +) +(Instance +name "I_sin" +duLibraryName "SystemOnChip" +duName "sinCosTable" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +mwi 0 +uid 17540,0 +) +(Instance +name "I_dacy" +duLibraryName "DigitalToAnalogConverter" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 17565,0 +) +(Instance +name "I_dacx" +duLibraryName "DigitalToAnalogConverter" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 17590,0 +) +(Instance +name "I_phase" +duLibraryName "WaveformGenerator" +duName "sawtoothGen" +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 17619,0 +) +(Instance +name "I_trig" +duLibraryName "SplineInterpolator" +duName "interpolatorTrigger" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 17644,0 +) +(Instance +name "I_srx" +duLibraryName "SplineInterpolator" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 17685,0 +) +(Instance +name "I_coeffx" +duLibraryName "SplineInterpolator" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 17730,0 +) +(Instance +name "I_polyx" +duLibraryName "SplineInterpolator" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 17775,0 +) +(Instance +name "I_offsx" +duLibraryName "SplineInterpolator" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 17792,0 +) +(Instance +name "I_offsy" +duLibraryName "SplineInterpolator" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 17809,0 +) +(Instance +name "I_polyy" +duLibraryName "SplineInterpolator" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 17854,0 +) +(Instance +name "I_coeffy" +duLibraryName "SplineInterpolator" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 17899,0 +) +(Instance +name "I_sry" +duLibraryName "SplineInterpolator" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 18037,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb4" +number "4" +) +(EmbeddedInstance +name "eb5" +number "5" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerOperator" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerOperator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "10:42:24" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "ahbBeamerOperator" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@operator\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerOperator\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "10:42:24" +) +(vvPair +variable "unit" +value "ahbBeamerOperator" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,178000,270000,179000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,178500,253200,178500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "270000,174000,274000,175000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "270200,174500,270200,174500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,176000,270000,177000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,176500,253200,176500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "249000,176000,253000,177000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "249200,176500,249200,176500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "270000,175000,290000,179000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "270200,175200,284300,176400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,174000,290000,175000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,174500,274200,174500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "249000,174000,270000,176000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "254350,174400,264650,175600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "249000,177000,253000,178000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "249200,177500,249200,177500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "249000,178000,253000,179000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "249200,178500,249200,178500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,177000,270000,178000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,177500,253200,177500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "249000,174000,290000,179000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 79,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +declText (MLText +uid 80,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,124500,31700,125500" +st "clock : std_ulogic" +) +) +*13 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "289500,153625,291000,154375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "289000,154000,289500,154000" +pts [ +"289000,154000" +"289500,154000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,153300,295700,154700" +st "outX" +blo "292000,154500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,122700,31800,123700" +st "outX : std_ulogic" +) +) +*15 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "289500,116625,291000,117375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "289000,117000,289500,117000" +pts [ +"289000,117000" +"289500,117000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,116300,295600,117700" +st "outY" +blo "292000,117500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,126300,31800,127300" +st "outY : std_ulogic" +) +) +*17 (Net +uid 163,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +declText (MLText +uid 164,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,125400,31700,126400" +st "reset : std_ulogic" +) +) +*18 (Net +uid 436,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 10,0 +) +declText (MLText +uid 437,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,131700,33400,132700" +st "newPolynom : std_ulogic" +) +) +*19 (Net +uid 542,0 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 25 +suid 11,0 +) +declText (MLText +uid 543,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,151500,45700,152500" +st "SIGNAL sampleX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*20 (Net +uid 544,0 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 39 +suid 12,0 +) +declText (MLText +uid 545,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,164100,46800,165100" +st "SIGNAL unsignedX : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*21 (Net +uid 546,0 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 35 +suid 13,0 +) +declText (MLText +uid 547,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,160500,45800,161500" +st "SIGNAL samplesX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*22 (Net +uid 548,0 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 26 +suid 14,0 +) +declText (MLText +uid 549,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,152400,45900,153400" +st "SIGNAL sampleX1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*23 (Net +uid 550,0 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 27 +suid 15,0 +) +declText (MLText +uid 551,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,153300,45900,154300" +st "SIGNAL sampleX2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*24 (Net +uid 552,0 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 28 +suid 16,0 +) +declText (MLText +uid 553,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,154200,45900,155200" +st "SIGNAL sampleX3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 554,0 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 29 +suid 17,0 +) +declText (MLText +uid 555,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,155100,45900,156100" +st "SIGNAL sampleX4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*26 (Net +uid 556,0 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 12 +suid 18,0 +) +declText (MLText +uid 557,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,139800,44500,140800" +st "SIGNAL aX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*27 (Net +uid 558,0 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 14 +suid 19,0 +) +declText (MLText +uid 559,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,141600,44500,142600" +st "SIGNAL bX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*28 (Net +uid 560,0 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 16 +suid 20,0 +) +declText (MLText +uid 561,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,143400,44400,144400" +st "SIGNAL cX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*29 (Net +uid 562,0 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 19 +suid 21,0 +) +declText (MLText +uid 563,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,146100,44500,147100" +st "SIGNAL dX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*30 (Net +uid 865,0 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 36 +suid 22,0 +) +declText (MLText +uid 866,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,161400,45800,162400" +st "SIGNAL samplesY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*31 (Net +uid 867,0 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 31 +suid 23,0 +) +declText (MLText +uid 868,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,156900,45900,157900" +st "SIGNAL sampleY1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*32 (Net +uid 869,0 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 32 +suid 24,0 +) +declText (MLText +uid 870,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,157800,45900,158800" +st "SIGNAL sampleY2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*33 (Net +uid 871,0 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 33 +suid 25,0 +) +declText (MLText +uid 872,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,158700,45900,159700" +st "SIGNAL sampleY3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*34 (Net +uid 873,0 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 26,0 +) +declText (MLText +uid 874,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,159600,45900,160600" +st "SIGNAL sampleY4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*35 (Net +uid 875,0 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 13 +suid 27,0 +) +declText (MLText +uid 876,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,140700,44500,141700" +st "SIGNAL aY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*36 (Net +uid 877,0 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 15 +suid 28,0 +) +declText (MLText +uid 878,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,142500,44500,143500" +st "SIGNAL bY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*37 (Net +uid 879,0 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 17 +suid 29,0 +) +declText (MLText +uid 880,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,144300,44400,145300" +st "SIGNAL cY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*38 (Net +uid 881,0 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 20 +suid 30,0 +) +declText (MLText +uid 882,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,147000,44500,148000" +st "SIGNAL dY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*39 (Net +uid 883,0 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 30 +suid 31,0 +) +declText (MLText +uid 884,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,156000,45700,157000" +st "SIGNAL sampleY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*40 (Net +uid 885,0 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 40 +suid 32,0 +) +declText (MLText +uid 886,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,165000,46800,166000" +st "SIGNAL unsignedY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*41 (Net +uid 1348,0 +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 38,0 +) +declText (MLText +uid 1349,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,123600,31600,124600" +st "run : std_ulogic" +) +) +*42 (Net +uid 1776,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 42,0 +) +declText (MLText +uid 1777,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,129000,46900,130000" +st "updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*43 (Net +uid 1993,0 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 23 +suid 43,0 +) +declText (MLText +uid 1994,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,149700,36400,150700" +st "SIGNAL interpolationEnable : std_ulogic" +) +) +*44 (HdlText +uid 3135,0 +optionalChildren [ +*45 (EmbeddedText +uid 3140,0 +commentText (CommentText +uid 3141,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3142,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,152000,146000,156000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3143,0 +va (VaSet +) +xt "132200,152200,144900,155800" +st " +samplesX <= cosine when selSinCos = '1' + else signed(memX); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3136,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,150000,147000,158000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3137,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +uid 3138,0 +va (VaSet +) +xt "131400,158000,134000,159200" +st "eb2" +blo "131400,159000" +tm "HdlTextNameMgr" +) +*47 (Text +uid 3139,0 +va (VaSet +) +xt "131400,159000,132800,160200" +st "2" +blo "131400,160000" +tm "HdlTextNumberMgr" +) +] +) +) +*48 (Net +uid 3152,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 48,0 +) +declText (MLText +uid 3153,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,129900,47000,130900" +st "memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*49 (HdlText +uid 3896,0 +optionalChildren [ +*50 (EmbeddedText +uid 3901,0 +commentText (CommentText +uid 3902,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3903,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,115000,146000,119000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3904,0 +va (VaSet +) +xt "132200,115200,144900,118800" +st " +samplesY <= sine when selSinCos = '1' + else signed(memY); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3897,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,113000,147000,121000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3898,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 3899,0 +va (VaSet +) +xt "131400,121000,134000,122200" +st "eb1" +blo "131400,122000" +tm "HdlTextNameMgr" +) +*52 (Text +uid 3900,0 +va (VaSet +) +xt "131400,122000,132800,123200" +st "1" +blo "131400,123000" +tm "HdlTextNumberMgr" +) +] +) +) +*53 (Net +uid 3913,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 53,0 +) +declText (MLText +uid 3914,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,130800,47000,131800" +st "memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*54 (HdlText +uid 4719,0 +optionalChildren [ +*55 (EmbeddedText +uid 4724,0 +commentText (CommentText +uid 4725,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4726,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "64000,141000,78000,143000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4727,0 +va (VaSet +) +xt "64200,141200,78000,142400" +st " +step <= to_unsigned(1, step'length); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4720,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "63000,140000,79000,144000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4721,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +uid 4722,0 +va (VaSet +) +xt "63400,144000,66000,145200" +st "eb4" +blo "63400,145000" +tm "HdlTextNameMgr" +) +*57 (Text +uid 4723,0 +va (VaSet +) +xt "63400,145000,64800,146200" +st "4" +blo "63400,146000" +tm "HdlTextNumberMgr" +) +] +) +) +*58 (Net +uid 4800,0 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 24 +suid 57,0 +) +declText (MLText +uid 4801,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,150600,46400,151600" +st "SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*59 (Net +uid 4802,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 38 +suid 58,0 +) +declText (MLText +uid 4803,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,163200,46000,164200" +st "SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*60 (Net +uid 4858,0 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 37 +suid 59,0 +) +declText (MLText +uid 4859,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,162300,44800,163300" +st "SIGNAL sine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*61 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 270 +xt "89000,108625,90500,109375" +) +(Line +uid 5083,0 +sl 0 +ro 270 +xt "90500,109000,91000,109000" +pts [ +"90500,109000" +"91000,109000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "81100,108300,88000,109700" +st "selSinCos" +ju 2 +blo "88000,109500" +tm "WireNameMgr" +) +) +) +*62 (HdlText +uid 5244,0 +optionalChildren [ +*63 (EmbeddedText +uid 5249,0 +commentText (CommentText +uid 5250,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 5251,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "99000,104000,115000,114000" +) +oxt "0,0,18000,5000" +text (MLText +uid 5252,0 +va (VaSet +) +xt "99200,104200,114600,113800" +st " +interpolationEnable <= '1' when selSinCos = '1' + else interpolationEn; +interpolateLinear <= '0' when selSinCos = '1' + else interpolateLin; +--interpolateLinear <= interpolateLin; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 5245,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "99000,103000,115000,115000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 5246,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +uid 5247,0 +va (VaSet +) +xt "99400,115000,102000,116200" +st "eb5" +blo "99400,116000" +tm "HdlTextNameMgr" +) +*65 (Text +uid 5248,0 +va (VaSet +) +xt "99400,116000,100800,117200" +st "5" +blo "99400,117000" +tm "HdlTextNumberMgr" +) +] +) +) +*66 (Net +uid 5261,0 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 22 +suid 60,0 +) +declText (MLText +uid 5262,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,148800,35900,149800" +st "SIGNAL interpolationEn : std_ulogic" +) +) +*67 (Net +uid 5936,0 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 18 +suid 61,0 +) +declText (MLText +uid 5937,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,145200,45100,146200" +st "SIGNAL cosine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*68 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,127200,32300,128200" +st "selSinCos : std_ulogic" +) +) +*69 (Net +uid 8148,0 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 21 +suid 69,0 +) +declText (MLText +uid 8149,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,147900,36000,148900" +st "SIGNAL interpolateLinear : std_ulogic" +) +) +*70 (Net +uid 9646,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 70,0 +) +declText (MLText +uid 9647,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,128100,32400,129100" +st "interpolateLin : std_ulogic" +) +) +*71 (PortIoIn +uid 15558,0 +shape (CompositeShape +uid 15559,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15560,0 +sl 0 +ro 270 +xt "49000,112625,50500,113375" +) +(Line +uid 15561,0 +sl 0 +ro 270 +xt "50500,113000,51000,113000" +pts [ +"50500,113000" +"51000,113000" +] +) +] +) +tg (WTG +uid 15562,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15563,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "44200,112500,48000,113900" +st "clock" +ju 2 +blo "48000,113700" +tm "WireNameMgr" +) +) +) +*72 (PortIoIn +uid 15570,0 +shape (CompositeShape +uid 15571,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15572,0 +sl 0 +ro 270 +xt "89000,110625,90500,111375" +) +(Line +uid 15573,0 +sl 0 +ro 270 +xt "90500,111000,91000,111000" +pts [ +"90500,111000" +"91000,111000" +] +) +] +) +tg (WTG +uid 15574,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15575,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "77700,110500,88000,111900" +st "interpolateLin" +ju 2 +blo "88000,111700" +tm "WireNameMgr" +) +) +) +*73 (PortIoIn +uid 15582,0 +shape (CompositeShape +uid 15583,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15584,0 +sl 0 +ro 270 +xt "121000,153625,122500,154375" +) +(Line +uid 15585,0 +sl 0 +ro 270 +xt "122500,154000,123000,154000" +pts [ +"122500,154000" +"123000,154000" +] +) +] +) +tg (WTG +uid 15586,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15587,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "95800,153500,120000,154900" +st "memX : (signalBitNb-1 DOWNTO 0)" +ju 2 +blo "120000,154700" +tm "WireNameMgr" +) +) +) +*74 (PortIoIn +uid 15594,0 +shape (CompositeShape +uid 15595,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15596,0 +sl 0 +ro 270 +xt "49000,114625,50500,115375" +) +(Line +uid 15597,0 +sl 0 +ro 270 +xt "50500,115000,51000,115000" +pts [ +"50500,115000" +"51000,115000" +] +) +] +) +tg (WTG +uid 15598,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15599,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "43900,114500,48000,115900" +st "reset" +ju 2 +blo "48000,115700" +tm "WireNameMgr" +) +) +) +*75 (PortIoIn +uid 15606,0 +shape (CompositeShape +uid 15607,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15608,0 +sl 0 +ro 270 +xt "49000,106625,50500,107375" +) +(Line +uid 15609,0 +sl 0 +ro 270 +xt "50500,107000,51000,107000" +pts [ +"50500,107000" +"51000,107000" +] +) +] +) +tg (WTG +uid 15610,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15611,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45100,106500,48000,107900" +st "run" +ju 2 +blo "48000,107700" +tm "WireNameMgr" +) +) +) +*76 (PortIoIn +uid 15632,0 +shape (CompositeShape +uid 15633,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15634,0 +sl 0 +ro 270 +xt "49000,108625,50500,109375" +) +(Line +uid 15635,0 +sl 0 +ro 270 +xt "50500,109000,51000,109000" +pts [ +"50500,109000" +"51000,109000" +] +) +] +) +tg (WTG +uid 15636,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15637,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13500,108500,48000,109900" +st "updatePeriod : (updatePeriodBitNb-1 DOWNTO 0)" +ju 2 +blo "48000,109700" +tm "WireNameMgr" +) +) +) +*77 (PortIoIn +uid 16404,0 +shape (CompositeShape +uid 16405,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16406,0 +sl 0 +ro 270 +xt "121000,116625,122500,117375" +) +(Line +uid 16407,0 +sl 0 +ro 270 +xt "122500,117000,123000,117000" +pts [ +"122500,117000" +"123000,117000" +] +) +] +) +tg (WTG +uid 16408,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16409,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "95900,116500,120000,117900" +st "memY : (signalBitNb-1 DOWNTO 0)" +ju 2 +blo "120000,117700" +tm "WireNameMgr" +) +) +) +*78 (PortIoOut +uid 16674,0 +shape (CompositeShape +uid 16675,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16676,0 +sl 0 +ro 270 +xt "209500,175625,211000,176375" +) +(Line +uid 16677,0 +sl 0 +ro 270 +xt "209000,176000,209500,176000" +pts [ +"209000,176000" +"209500,176000" +] +) +] +) +tg (WTG +uid 16678,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16679,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "212000,175500,221600,176900" +st "newPolynom" +blo "212000,176700" +tm "WireNameMgr" +) +) +) +*79 (SaComponent +uid 17519,0 +optionalChildren [ +*80 (CptPort +uid 17499,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17500,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75000,106625,75750,107375" +) +tg (CPTG +uid 17501,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17502,0 +va (VaSet +) +xt "68100,106400,74000,107600" +st "enableOut" +ju 2 +blo "74000,107400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "enableOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*81 (CptPort +uid 17503,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17504,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,112625,59000,113375" +) +tg (CPTG +uid 17505,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17506,0 +va (VaSet +) +xt "60000,112400,63400,113600" +st "clock" +blo "60000,113400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*82 (CptPort +uid 17507,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17508,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,114625,59000,115375" +) +tg (CPTG +uid 17509,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17510,0 +va (VaSet +) +xt "60000,114400,63300,115600" +st "reset" +blo "60000,115400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*83 (CptPort +uid 17511,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17512,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,108625,59000,109375" +) +tg (CPTG +uid 17513,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17514,0 +va (VaSet +) +xt "60000,108400,68000,109600" +st "updatePeriod" +blo "60000,109400" +) +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*84 (CptPort +uid 17515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,106625,59000,107375" +) +tg (CPTG +uid 17517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17518,0 +va (VaSet +) +xt "60000,106400,65100,107600" +st "enableIn" +blo "60000,107400" +) +) +thePort (LogicalPort +decl (Decl +n "enableIn" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 17520,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "59000,103000,75000,117000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 17521,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 17522,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,116800,68000,118000" +st "SystemOnChip" +blo "59600,117800" +tm "BdLibraryNameMgr" +) +*86 (Text +uid 17523,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,117700,72400,118900" +st "periphSpeedController" +blo "59600,118700" +tm "CptNameMgr" +) +*87 (Text +uid 17524,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,118600,64200,119800" +st "I_speed" +blo "59600,119600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17525,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17526,0 +text (MLText +uid 17527,0 +va (VaSet +font "Verdana,8,0" +) +xt "59000,120600,83400,121600" +st "updatePeriodBitNb = updatePeriodBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*88 (SaComponent +uid 17540,0 +optionalChildren [ +*89 (CptPort +uid 17528,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17529,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "115000,149625,115750,150375" +) +tg (CPTG +uid 17530,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17531,0 +va (VaSet +) +xt "111200,149400,114000,150600" +st "sine" +ju 2 +blo "114000,150400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*90 (CptPort +uid 17532,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17533,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98250,149625,99000,150375" +) +tg (CPTG +uid 17534,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17535,0 +va (VaSet +) +xt "100000,149400,103700,150600" +st "phase" +blo "100000,150400" +) +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*91 (CptPort +uid 17536,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17537,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "115000,151625,115750,152375" +) +tg (CPTG +uid 17538,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17539,0 +va (VaSet +) +xt "110000,151400,114000,152600" +st "cosine" +ju 2 +blo "114000,152400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cosine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 17541,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "99000,146000,115000,156000" +) +oxt "32000,8000,48000,18000" +ttg (MlTextGroup +uid 17542,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 17543,0 +va (VaSet +font "Verdana,9,1" +) +xt "99600,155800,108000,157000" +st "SystemOnChip" +blo "99600,156800" +tm "BdLibraryNameMgr" +) +*93 (Text +uid 17544,0 +va (VaSet +font "Verdana,9,1" +) +xt "99600,156700,106600,157900" +st "sinCosTable" +blo "99600,157700" +tm "CptNameMgr" +) +*94 (Text +uid 17545,0 +va (VaSet +font "Verdana,9,1" +) +xt "99600,157600,102700,158800" +st "I_sin" +blo "99600,158600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17546,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17547,0 +text (MLText +uid 17548,0 +va (VaSet +font "Verdana,8,0" +) +xt "99000,159000,123000,162000" +st "inputBitNb = phaseBitNb ( positive ) +outputBitNb = signalBitNb ( positive ) +tableAddressBitNb = tableAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*95 (SaComponent +uid 17565,0 +optionalChildren [ +*96 (CptPort +uid 17549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,120625,265000,121375" +) +tg (CPTG +uid 17551,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17552,0 +va (VaSet +) +xt "266000,120400,269400,121600" +st "clock" +blo "266000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*97 (CptPort +uid 17553,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17554,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,116625,265000,117375" +) +tg (CPTG +uid 17555,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17556,0 +va (VaSet +) +xt "266000,116400,272200,117600" +st "parallelIn" +blo "266000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*98 (CptPort +uid 17557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,116625,281750,117375" +) +tg (CPTG +uid 17559,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17560,0 +va (VaSet +) +xt "274601,116400,280001,117600" +st "serialOut" +ju 2 +blo "280001,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*99 (CptPort +uid 17561,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17562,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,122625,265000,123375" +) +tg (CPTG +uid 17563,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17564,0 +va (VaSet +) +xt "266000,122400,269300,123600" +st "reset" +blo "266000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 17566,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,113000,281000,125000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 17567,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +uid 17568,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,124800,280300,126000" +st "DigitalToAnalogConverter" +blo "265600,125800" +tm "BdLibraryNameMgr" +) +*101 (Text +uid 17569,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,125700,268300,126900" +st "DAC" +blo "265600,126700" +tm "CptNameMgr" +) +*102 (Text +uid 17570,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,126600,269600,127800" +st "I_dacy" +blo "265600,127600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17571,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17572,0 +text (MLText +uid 17573,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,128600,283400,129600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*103 (SaComponent +uid 17590,0 +optionalChildren [ +*104 (CptPort +uid 17574,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17575,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,157625,265000,158375" +) +tg (CPTG +uid 17576,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17577,0 +va (VaSet +) +xt "266000,157400,269400,158600" +st "clock" +blo "266000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*105 (CptPort +uid 17578,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17579,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,153625,265000,154375" +) +tg (CPTG +uid 17580,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17581,0 +va (VaSet +) +xt "266000,153400,272200,154600" +st "parallelIn" +blo "266000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*106 (CptPort +uid 17582,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17583,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,153625,281750,154375" +) +tg (CPTG +uid 17584,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17585,0 +va (VaSet +) +xt "274601,153400,280001,154600" +st "serialOut" +ju 2 +blo "280001,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*107 (CptPort +uid 17586,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17587,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,159625,265000,160375" +) +tg (CPTG +uid 17588,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17589,0 +va (VaSet +) +xt "266000,159400,269300,160600" +st "reset" +blo "266000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 17591,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,150000,281000,162000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 17592,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*108 (Text +uid 17593,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,161800,280300,163000" +st "DigitalToAnalogConverter" +blo "265600,162800" +tm "BdLibraryNameMgr" +) +*109 (Text +uid 17594,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,162700,268300,163900" +st "DAC" +blo "265600,163700" +tm "CptNameMgr" +) +*110 (Text +uid 17595,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,163600,269600,164800" +st "I_dacx" +blo "265600,164600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17596,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17597,0 +text (MLText +uid 17598,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,165600,283400,166600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*111 (SaComponent +uid 17619,0 +optionalChildren [ +*112 (CptPort +uid 17599,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17600,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,155625,75000,156375" +) +tg (CPTG +uid 17601,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17602,0 +va (VaSet +) +xt "76000,155400,79400,156600" +st "clock" +blo "76000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*113 (CptPort +uid 17603,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17604,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,149625,91750,150375" +) +tg (CPTG +uid 17605,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17606,0 +va (VaSet +) +xt "84800,149400,90000,150600" +st "sawtooth" +ju 2 +blo "90000,150400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*114 (CptPort +uid 17607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17608,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,157625,75000,158375" +) +tg (CPTG +uid 17609,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17610,0 +va (VaSet +) +xt "76000,157400,79300,158600" +st "reset" +blo "76000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*115 (CptPort +uid 17611,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17612,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,149625,75000,150375" +) +tg (CPTG +uid 17613,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17614,0 +va (VaSet +) +xt "76000,149400,78900,150600" +st "step" +blo "76000,150400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*116 (CptPort +uid 17615,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17616,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,153625,75000,154375" +) +tg (CPTG +uid 17617,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17618,0 +va (VaSet +) +xt "76000,153400,77900,154600" +st "en" +blo "76000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 17620,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,146000,91000,160000" +) +oxt "32000,8000,48000,22000" +ttg (MlTextGroup +uid 17621,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*117 (Text +uid 17622,0 +va (VaSet +font "Verdana,9,1" +) +xt "75600,159800,87100,161000" +st "WaveformGenerator" +blo "75600,160800" +tm "BdLibraryNameMgr" +) +*118 (Text +uid 17623,0 +va (VaSet +font "Verdana,9,1" +) +xt "75600,160700,83500,161900" +st "sawtoothGen" +blo "75600,161700" +tm "CptNameMgr" +) +*119 (Text +uid 17624,0 +va (VaSet +font "Verdana,9,1" +) +xt "75600,161600,80200,162800" +st "I_phase" +blo "75600,162600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17625,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17626,0 +text (MLText +uid 17627,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,163600,90700,164600" +st "bitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*120 (SaComponent +uid 17644,0 +optionalChildren [ +*121 (CptPort +uid 17628,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17629,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,175625,177750,176375" +) +tg (CPTG +uid 17630,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17631,0 +va (VaSet +) +xt "169400,175400,176000,176600" +st "triggerOut" +ju 2 +blo "176000,176400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*122 (CptPort +uid 17632,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17633,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,179625,161000,180375" +) +tg (CPTG +uid 17634,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17635,0 +va (VaSet +) +xt "162000,179400,165400,180600" +st "clock" +blo "162000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*123 (CptPort +uid 17636,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17637,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,181625,161000,182375" +) +tg (CPTG +uid 17638,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17639,0 +va (VaSet +) +xt "162000,181400,165300,182600" +st "reset" +blo "162000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*124 (CptPort +uid 17640,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17641,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,175625,161000,176375" +) +tg (CPTG +uid 17642,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17643,0 +va (VaSet +) +xt "162000,175400,163900,176600" +st "en" +blo "162000,176400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 17645,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,172000,177000,184000" +) +oxt "32000,6000,48000,18000" +ttg (MlTextGroup +uid 17646,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +uid 17647,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,183800,172000,185000" +st "SplineInterpolator" +blo "161600,184800" +tm "BdLibraryNameMgr" +) +*126 (Text +uid 17648,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,184700,172300,185900" +st "interpolatorTrigger" +blo "161600,185700" +tm "CptNameMgr" +) +*127 (Text +uid 17649,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,185600,165100,186800" +st "I_trig" +blo "161600,186600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17650,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17651,0 +text (MLText +uid 17652,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,187600,183100,188600" +st "counterBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*128 (SaComponent +uid 17685,0 +optionalChildren [ +*129 (CptPort +uid 17653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17654,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,159625,161000,160375" +) +tg (CPTG +uid 17655,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17656,0 +va (VaSet +) +xt "162000,159400,165400,160600" +st "clock" +blo "162000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*130 (CptPort +uid 17657,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17658,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,161625,161000,162375" +) +tg (CPTG +uid 17659,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17660,0 +va (VaSet +) +xt "162000,161400,165300,162600" +st "reset" +blo "162000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*131 (CptPort +uid 17661,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17662,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,155625,161000,156375" +) +tg (CPTG +uid 17663,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17664,0 +va (VaSet +) +xt "162000,155400,169900,156600" +st "shiftSamples" +blo "162000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*132 (CptPort +uid 17665,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17666,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,153625,161000,154375" +) +tg (CPTG +uid 17667,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17668,0 +va (VaSet +) +xt "162000,153400,167400,154600" +st "sampleIn" +blo "162000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*133 (CptPort +uid 17669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17670,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,153625,177750,154375" +) +tg (CPTG +uid 17671,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17672,0 +va (VaSet +) +xt "171000,153400,176000,154600" +st "sample1" +ju 2 +blo "176000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*134 (CptPort +uid 17673,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17674,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,155625,177750,156375" +) +tg (CPTG +uid 17675,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17676,0 +va (VaSet +) +xt "171000,155400,176000,156600" +st "sample2" +ju 2 +blo "176000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*135 (CptPort +uid 17677,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17678,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,157625,177750,158375" +) +tg (CPTG +uid 17679,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17680,0 +va (VaSet +) +xt "171000,157400,176000,158600" +st "sample3" +ju 2 +blo "176000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*136 (CptPort +uid 17681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17682,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,159625,177750,160375" +) +tg (CPTG +uid 17683,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17684,0 +va (VaSet +) +xt "171000,159400,176000,160600" +st "sample4" +ju 2 +blo "176000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 17686,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,150000,177000,164000" +) +oxt "35000,9000,51000,23000" +ttg (MlTextGroup +uid 17687,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*137 (Text +uid 17688,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,163800,172000,165000" +st "SplineInterpolator" +blo "161600,164800" +tm "BdLibraryNameMgr" +) +*138 (Text +uid 17689,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,164700,176100,165900" +st "interpolatorShiftRegister" +blo "161600,165700" +tm "CptNameMgr" +) +*139 (Text +uid 17690,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,165600,164800,166800" +st "I_srx" +blo "161600,166600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17691,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17692,0 +text (MLText +uid 17693,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,167600,179400,168600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*140 (SaComponent +uid 17730,0 +optionalChildren [ +*141 (CptPort +uid 17694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,153625,185000,154375" +) +tg (CPTG +uid 17696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17697,0 +va (VaSet +) +xt "186000,153400,191000,154600" +st "sample1" +blo "186000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*142 (CptPort +uid 17698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17699,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,155625,185000,156375" +) +tg (CPTG +uid 17700,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17701,0 +va (VaSet +) +xt "186000,155400,191000,156600" +st "sample2" +blo "186000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*143 (CptPort +uid 17702,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17703,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,157625,185000,158375" +) +tg (CPTG +uid 17704,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17705,0 +va (VaSet +) +xt "186000,157400,191000,158600" +st "sample3" +blo "186000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*144 (CptPort +uid 17706,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17707,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,159625,185000,160375" +) +tg (CPTG +uid 17708,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17709,0 +va (VaSet +) +xt "186000,159400,191000,160600" +st "sample4" +blo "186000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*145 (CptPort +uid 17710,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17711,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,153625,201750,154375" +) +tg (CPTG +uid 17712,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17713,0 +va (VaSet +) +xt "198700,153400,200000,154600" +st "a" +ju 2 +blo "200000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*146 (CptPort +uid 17714,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17715,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,155625,201750,156375" +) +tg (CPTG +uid 17716,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17717,0 +va (VaSet +) +xt "198700,155400,200000,156600" +st "b" +ju 2 +blo "200000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*147 (CptPort +uid 17718,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17719,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,159625,201750,160375" +) +tg (CPTG +uid 17720,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17721,0 +va (VaSet +) +xt "198700,159400,200000,160600" +st "d" +ju 2 +blo "200000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*148 (CptPort +uid 17722,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17723,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,157625,201750,158375" +) +tg (CPTG +uid 17724,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17725,0 +va (VaSet +) +xt "198700,157400,200000,158600" +st "c" +ju 2 +blo "200000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +) +*149 (CptPort +uid 17726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17727,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,161625,185000,162375" +) +tg (CPTG +uid 17728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17729,0 +va (VaSet +) +xt "186000,161400,195900,162600" +st "interpolateLinear" +blo "186000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 17731,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,150000,201000,166000" +) +oxt "33000,11000,49000,27000" +ttg (MlTextGroup +uid 17732,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*150 (Text +uid 17733,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,165800,196000,167000" +st "SplineInterpolator" +blo "185600,166800" +tm "BdLibraryNameMgr" +) +*151 (Text +uid 17734,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,166700,199500,167900" +st "interpolatorCoefficients" +blo "185600,167700" +tm "CptNameMgr" +) +*152 (Text +uid 17735,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,167600,190600,168800" +st "I_coeffx" +blo "185600,168600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17736,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17737,0 +text (MLText +uid 17738,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,169800,203100,171800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*153 (SaComponent +uid 17775,0 +optionalChildren [ +*154 (CptPort +uid 17739,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17740,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,167625,217000,168375" +) +tg (CPTG +uid 17741,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17742,0 +va (VaSet +) +xt "218000,167400,221400,168600" +st "clock" +blo "218000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*155 (CptPort +uid 17743,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17744,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,169625,217000,170375" +) +tg (CPTG +uid 17745,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17746,0 +va (VaSet +) +xt "218000,169400,221300,170600" +st "reset" +blo "218000,170400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*156 (CptPort +uid 17747,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17748,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,161625,217000,162375" +) +tg (CPTG +uid 17749,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17750,0 +va (VaSet +) +xt "218000,161400,227100,162600" +st "restartPolynom" +blo "218000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*157 (CptPort +uid 17751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,159625,217000,160375" +) +tg (CPTG +uid 17753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17754,0 +va (VaSet +) +xt "218000,159400,219300,160600" +st "d" +blo "218000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*158 (CptPort +uid 17755,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17756,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,153625,233750,154375" +) +tg (CPTG +uid 17757,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17758,0 +va (VaSet +) +xt "225800,153400,232000,154600" +st "sampleOut" +ju 2 +blo "232000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*159 (CptPort +uid 17759,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17760,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,157625,217000,158375" +) +tg (CPTG +uid 17761,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17762,0 +va (VaSet +) +xt "218000,157400,219300,158600" +st "c" +blo "218000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*160 (CptPort +uid 17763,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17764,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,155625,217000,156375" +) +tg (CPTG +uid 17765,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17766,0 +va (VaSet +) +xt "218000,155400,219300,156600" +st "b" +blo "218000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*161 (CptPort +uid 17767,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17768,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,153625,217000,154375" +) +tg (CPTG +uid 17769,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17770,0 +va (VaSet +) +xt "218000,153400,219300,154600" +st "a" +blo "218000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +*162 (CptPort +uid 17771,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17772,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,165625,217000,166375" +) +tg (CPTG +uid 17773,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17774,0 +va (VaSet +) +xt "218000,165400,219900,166600" +st "en" +blo "218000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 17776,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,150000,233000,173000" +) +oxt "37000,7000,53000,30000" +ttg (MlTextGroup +uid 17777,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*163 (Text +uid 17778,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,172800,228000,174000" +st "SplineInterpolator" +blo "217600,173800" +tm "BdLibraryNameMgr" +) +*164 (Text +uid 17779,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,173700,234300,174900" +st "interpolatorCalculatePolynom" +blo "217600,174700" +tm "CptNameMgr" +) +*165 (Text +uid 17780,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,174600,222000,175800" +st "I_polyx" +blo "217600,175600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17781,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17782,0 +text (MLText +uid 17783,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,177000,241500,180000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*166 (SaComponent +uid 17792,0 +optionalChildren [ +*167 (CptPort +uid 17784,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17785,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,153625,257750,154375" +) +tg (CPTG +uid 17786,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17787,0 +va (VaSet +) +xt "248200,153400,256000,154600" +st "unsignedOut" +ju 2 +blo "256000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*168 (CptPort +uid 17788,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17789,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,153625,241000,154375" +) +tg (CPTG +uid 17790,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17791,0 +va (VaSet +) +xt "242000,153400,247100,154600" +st "signedIn" +blo "242000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 17793,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,150000,257000,158000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 17794,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*169 (Text +uid 17795,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,157800,252000,159000" +st "SplineInterpolator" +blo "241600,158800" +tm "BdLibraryNameMgr" +) +*170 (Text +uid 17796,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,158700,251700,159900" +st "offsetToUnsigned" +blo "241600,159700" +tm "CptNameMgr" +) +*171 (Text +uid 17797,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,159600,246000,160800" +st "I_offsx" +blo "241600,160600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17798,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17799,0 +text (MLText +uid 17800,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,161800,256600,162800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*172 (SaComponent +uid 17809,0 +optionalChildren [ +*173 (CptPort +uid 17801,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17802,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,116625,257750,117375" +) +tg (CPTG +uid 17803,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17804,0 +va (VaSet +) +xt "248200,116400,256000,117600" +st "unsignedOut" +ju 2 +blo "256000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*174 (CptPort +uid 17805,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17806,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,116625,241000,117375" +) +tg (CPTG +uid 17807,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17808,0 +va (VaSet +) +xt "242000,116400,247100,117600" +st "signedIn" +blo "242000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 17810,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,113000,257000,121000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 17811,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*175 (Text +uid 17812,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,120800,252000,122000" +st "SplineInterpolator" +blo "241600,121800" +tm "BdLibraryNameMgr" +) +*176 (Text +uid 17813,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,121700,251700,122900" +st "offsetToUnsigned" +blo "241600,122700" +tm "CptNameMgr" +) +*177 (Text +uid 17814,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,122600,246000,123800" +st "I_offsy" +blo "241600,123600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17815,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17816,0 +text (MLText +uid 17817,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,124800,256600,125800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*178 (SaComponent +uid 17854,0 +optionalChildren [ +*179 (CptPort +uid 17818,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17819,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,130625,217000,131375" +) +tg (CPTG +uid 17820,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17821,0 +va (VaSet +) +xt "218000,130400,221400,131600" +st "clock" +blo "218000,131400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*180 (CptPort +uid 17822,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17823,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,132625,217000,133375" +) +tg (CPTG +uid 17824,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17825,0 +va (VaSet +) +xt "218000,132400,221300,133600" +st "reset" +blo "218000,133400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*181 (CptPort +uid 17826,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17827,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,124625,217000,125375" +) +tg (CPTG +uid 17828,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17829,0 +va (VaSet +) +xt "218000,124400,227100,125600" +st "restartPolynom" +blo "218000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*182 (CptPort +uid 17830,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17831,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,122625,217000,123375" +) +tg (CPTG +uid 17832,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17833,0 +va (VaSet +) +xt "218000,122400,219300,123600" +st "d" +blo "218000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*183 (CptPort +uid 17834,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17835,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,116625,233750,117375" +) +tg (CPTG +uid 17836,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17837,0 +va (VaSet +) +xt "225800,116400,232000,117600" +st "sampleOut" +ju 2 +blo "232000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*184 (CptPort +uid 17838,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17839,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,120625,217000,121375" +) +tg (CPTG +uid 17840,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17841,0 +va (VaSet +) +xt "218000,120400,219300,121600" +st "c" +blo "218000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*185 (CptPort +uid 17842,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17843,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,118625,217000,119375" +) +tg (CPTG +uid 17844,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17845,0 +va (VaSet +) +xt "218000,118400,219300,119600" +st "b" +blo "218000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*186 (CptPort +uid 17846,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17847,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,116625,217000,117375" +) +tg (CPTG +uid 17848,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17849,0 +va (VaSet +) +xt "218000,116400,219300,117600" +st "a" +blo "218000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +*187 (CptPort +uid 17850,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17851,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,128625,217000,129375" +) +tg (CPTG +uid 17852,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17853,0 +va (VaSet +) +xt "218000,128400,219900,129600" +st "en" +blo "218000,129400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 17855,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,113000,233000,136000" +) +oxt "37000,7000,53000,30000" +ttg (MlTextGroup +uid 17856,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*188 (Text +uid 17857,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,135800,228000,137000" +st "SplineInterpolator" +blo "217600,136800" +tm "BdLibraryNameMgr" +) +*189 (Text +uid 17858,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,136700,234300,137900" +st "interpolatorCalculatePolynom" +blo "217600,137700" +tm "CptNameMgr" +) +*190 (Text +uid 17859,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,137600,222000,138800" +st "I_polyy" +blo "217600,138600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17860,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17861,0 +text (MLText +uid 17862,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,140000,241500,143000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*191 (SaComponent +uid 17899,0 +optionalChildren [ +*192 (CptPort +uid 17863,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17864,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,116625,185000,117375" +) +tg (CPTG +uid 17865,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17866,0 +va (VaSet +) +xt "186000,116400,191000,117600" +st "sample1" +blo "186000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*193 (CptPort +uid 17867,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17868,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,118625,185000,119375" +) +tg (CPTG +uid 17869,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17870,0 +va (VaSet +) +xt "186000,118400,191000,119600" +st "sample2" +blo "186000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*194 (CptPort +uid 17871,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17872,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,120625,185000,121375" +) +tg (CPTG +uid 17873,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17874,0 +va (VaSet +) +xt "186000,120400,191000,121600" +st "sample3" +blo "186000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*195 (CptPort +uid 17875,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17876,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,122625,185000,123375" +) +tg (CPTG +uid 17877,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17878,0 +va (VaSet +) +xt "186000,122400,191000,123600" +st "sample4" +blo "186000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*196 (CptPort +uid 17879,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17880,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,116625,201750,117375" +) +tg (CPTG +uid 17881,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17882,0 +va (VaSet +) +xt "198700,116400,200000,117600" +st "a" +ju 2 +blo "200000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*197 (CptPort +uid 17883,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17884,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,118625,201750,119375" +) +tg (CPTG +uid 17885,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17886,0 +va (VaSet +) +xt "198700,118400,200000,119600" +st "b" +ju 2 +blo "200000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*198 (CptPort +uid 17887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17888,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,122625,201750,123375" +) +tg (CPTG +uid 17889,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17890,0 +va (VaSet +) +xt "198700,122400,200000,123600" +st "d" +ju 2 +blo "200000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*199 (CptPort +uid 17891,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17892,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,120625,201750,121375" +) +tg (CPTG +uid 17893,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17894,0 +va (VaSet +) +xt "198700,120400,200000,121600" +st "c" +ju 2 +blo "200000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +) +*200 (CptPort +uid 17895,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17896,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,124625,185000,125375" +) +tg (CPTG +uid 17897,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17898,0 +va (VaSet +) +xt "186000,124400,195900,125600" +st "interpolateLinear" +blo "186000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 17900,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,113000,201000,129000" +) +oxt "33000,11000,49000,27000" +ttg (MlTextGroup +uid 17901,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*201 (Text +uid 17902,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,128800,196000,130000" +st "SplineInterpolator" +blo "185600,129800" +tm "BdLibraryNameMgr" +) +*202 (Text +uid 17903,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,129700,199500,130900" +st "interpolatorCoefficients" +blo "185600,130700" +tm "CptNameMgr" +) +*203 (Text +uid 17904,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,130600,190600,131800" +st "I_coeffy" +blo "185600,131600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17905,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17906,0 +text (MLText +uid 17907,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,132800,203100,134800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*204 (SaComponent +uid 18037,0 +optionalChildren [ +*205 (CptPort +uid 18005,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18006,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,122625,161000,123375" +) +tg (CPTG +uid 18007,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18008,0 +va (VaSet +) +xt "162000,122400,165400,123600" +st "clock" +blo "162000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*206 (CptPort +uid 18009,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18010,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,124625,161000,125375" +) +tg (CPTG +uid 18011,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18012,0 +va (VaSet +) +xt "162000,124400,165300,125600" +st "reset" +blo "162000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*207 (CptPort +uid 18013,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18014,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,118625,161000,119375" +) +tg (CPTG +uid 18015,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18016,0 +va (VaSet +) +xt "162000,118400,169900,119600" +st "shiftSamples" +blo "162000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*208 (CptPort +uid 18017,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18018,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,116625,161000,117375" +) +tg (CPTG +uid 18019,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18020,0 +va (VaSet +) +xt "162000,116400,167400,117600" +st "sampleIn" +blo "162000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*209 (CptPort +uid 18021,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18022,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,116625,177750,117375" +) +tg (CPTG +uid 18023,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18024,0 +va (VaSet +) +xt "171000,116400,176000,117600" +st "sample1" +ju 2 +blo "176000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*210 (CptPort +uid 18025,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18026,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,118625,177750,119375" +) +tg (CPTG +uid 18027,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18028,0 +va (VaSet +) +xt "171000,118400,176000,119600" +st "sample2" +ju 2 +blo "176000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*211 (CptPort +uid 18029,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18030,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,120625,177750,121375" +) +tg (CPTG +uid 18031,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18032,0 +va (VaSet +) +xt "171000,120400,176000,121600" +st "sample3" +ju 2 +blo "176000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*212 (CptPort +uid 18033,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18034,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,122625,177750,123375" +) +tg (CPTG +uid 18035,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18036,0 +va (VaSet +) +xt "171000,122400,176000,123600" +st "sample4" +ju 2 +blo "176000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 18038,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,113000,177000,127000" +) +oxt "35000,9000,51000,23000" +ttg (MlTextGroup +uid 18039,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*213 (Text +uid 18040,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,126800,172000,128000" +st "SplineInterpolator" +blo "161600,127800" +tm "BdLibraryNameMgr" +) +*214 (Text +uid 18041,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,127700,176100,128900" +st "interpolatorShiftRegister" +blo "161600,128700" +tm "CptNameMgr" +) +*215 (Text +uid 18042,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,128600,164800,129800" +st "I_sry" +blo "161600,129600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18043,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18044,0 +text (MLText +uid 18045,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,130600,179400,131600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*216 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "281750,154000,289000,154000" +pts [ +"281750,154000" +"289000,154000" +] +) +start &106 +end &13 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,152600,289700,154000" +st "outX" +blo "286000,153800" +tm "WireNameMgr" +) +) +on &14 +) +*217 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "281750,117000,289000,117000" +pts [ +"281750,117000" +"289000,117000" +] +) +start &98 +end &15 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,115600,289600,117000" +st "outY" +blo "286000,116800" +tm "WireNameMgr" +) +) +on &16 +) +*218 (Wire +uid 354,0 +optionalChildren [ +*219 (BdJunction +uid 9152,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9153,0 +va (VaSet +vasetType 1 +) +xt "152600,155600,153400,156400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 355,0 +va (VaSet +vasetType 3 +) +xt "153000,156000,181000,176000" +pts [ +"181000,176000" +"181000,169000" +"153000,169000" +"153000,156000" +"160250,156000" +] +) +start *220 (BdJunction +uid 564,0 +ps "OnConnectorStrategy" +shape (Circle +uid 565,0 +va (VaSet +vasetType 1 +) +xt "180600,175600,181400,176400" +radius 400 +) +) +end &131 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,154600,161600,156000" +st "newPolynom" +blo "152000,155800" +tm "WireNameMgr" +) +) +on &18 +) +*221 (Wire +uid 360,0 +optionalChildren [ +&220 +*222 (BdJunction +uid 9244,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9245,0 +va (VaSet +vasetType 1 +) +xt "204600,161600,205400,162400" +radius 400 +) +) +*223 (BdJunction +uid 16692,0 +ps "OnConnectorStrategy" +shape (Circle +uid 16693,0 +va (VaSet +vasetType 1 +) +xt "204600,175600,205400,176400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 361,0 +va (VaSet +vasetType 3 +) +xt "177750,162000,216250,176000" +pts [ +"177750,176000" +"205000,176000" +"205000,162000" +"216250,162000" +] +) +start &121 +end &156 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 363,0 +va (VaSet +font "Verdana,12,0" +) +xt "207000,160600,216600,162000" +st "newPolynom" +blo "207000,161800" +tm "WireNameMgr" +) +) +on &18 +) +*224 (Wire +uid 364,0 +shape (OrthoPolyLine +uid 365,0 +va (VaSet +vasetType 3 +) +xt "157000,182000,160250,182000" +pts [ +"157000,182000" +"160250,182000" +] +) +end &123 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 368,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 369,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,180600,160100,182000" +st "reset" +blo "156000,181800" +tm "WireNameMgr" +) +) +on &17 +) +*225 (Wire +uid 370,0 +shape (OrthoPolyLine +uid 371,0 +va (VaSet +vasetType 3 +) +xt "157000,180000,160250,180000" +pts [ +"157000,180000" +"160250,180000" +] +) +end &122 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 374,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 375,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,178600,159800,180000" +st "clock" +blo "156000,179800" +tm "WireNameMgr" +) +) +on &12 +) +*226 (Wire +uid 376,0 +shape (OrthoPolyLine +uid 377,0 +va (VaSet +vasetType 3 +) +xt "157000,162000,160250,162000" +pts [ +"157000,162000" +"160250,162000" +] +) +end &130 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 381,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,160600,160100,162000" +st "reset" +blo "156000,161800" +tm "WireNameMgr" +) +) +on &17 +) +*227 (Wire +uid 382,0 +shape (OrthoPolyLine +uid 383,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,154000,160250,154000" +pts [ +"147000,154000" +"160250,154000" +] +) +start &44 +end &132 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 384,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 385,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,152600,155800,154000" +st "samplesX" +blo "149000,153800" +tm "WireNameMgr" +) +) +on &21 +) +*228 (Wire +uid 386,0 +shape (OrthoPolyLine +uid 387,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,156000,184250,156000" +pts [ +"177750,156000" +"184250,156000" +] +) +start &134 +end &142 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 388,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 389,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,154600,184900,156000" +st "sampleX2" +blo "178000,155800" +tm "WireNameMgr" +) +) +on &23 +) +*229 (Wire +uid 390,0 +shape (OrthoPolyLine +uid 391,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,154000,184250,154000" +pts [ +"177750,154000" +"184250,154000" +] +) +start &133 +end &141 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 393,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,152600,184900,154000" +st "sampleX1" +blo "178000,153800" +tm "WireNameMgr" +) +) +on &22 +) +*230 (Wire +uid 394,0 +shape (OrthoPolyLine +uid 395,0 +va (VaSet +vasetType 3 +) +xt "157000,160000,160250,160000" +pts [ +"157000,160000" +"160250,160000" +] +) +end &129 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 399,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,158600,159800,160000" +st "clock" +blo "156000,159800" +tm "WireNameMgr" +) +) +on &12 +) +*231 (Wire +uid 400,0 +shape (OrthoPolyLine +uid 401,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,154000,216250,154000" +pts [ +"201750,154000" +"216250,154000" +] +) +start &145 +end &161 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,152600,206150,154000" +st "aX" +blo "203750,153800" +tm "WireNameMgr" +) +) +on &26 +) +*232 (Wire +uid 404,0 +shape (OrthoPolyLine +uid 405,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,160000,184250,160000" +pts [ +"177750,160000" +"184250,160000" +] +) +start &136 +end &144 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 406,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 407,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,158600,184900,160000" +st "sampleX4" +blo "178000,159800" +tm "WireNameMgr" +) +) +on &25 +) +*233 (Wire +uid 408,0 +shape (OrthoPolyLine +uid 409,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,158000,184250,158000" +pts [ +"177750,158000" +"184250,158000" +] +) +start &135 +end &143 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 410,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 411,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,156600,184900,158000" +st "sampleX3" +blo "178000,157800" +tm "WireNameMgr" +) +) +on &24 +) +*234 (Wire +uid 412,0 +shape (OrthoPolyLine +uid 413,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,160000,216250,160000" +pts [ +"201750,160000" +"216250,160000" +] +) +start &147 +end &157 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 414,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 415,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,158600,206150,160000" +st "dX" +blo "203750,159800" +tm "WireNameMgr" +) +) +on &29 +) +*235 (Wire +uid 416,0 +shape (OrthoPolyLine +uid 417,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,158000,216250,158000" +pts [ +"201750,158000" +"216250,158000" +] +) +start &148 +end &159 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 419,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,156600,205950,158000" +st "cX" +blo "203750,157800" +tm "WireNameMgr" +) +) +on &28 +) +*236 (Wire +uid 420,0 +shape (OrthoPolyLine +uid 421,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,156000,216250,156000" +pts [ +"201750,156000" +"216250,156000" +] +) +start &146 +end &160 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 422,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 423,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,154600,206150,156000" +st "bX" +blo "203750,155800" +tm "WireNameMgr" +) +) +on &27 +) +*237 (Wire +uid 424,0 +shape (OrthoPolyLine +uid 425,0 +va (VaSet +vasetType 3 +) +xt "213000,170000,216250,170000" +pts [ +"213000,170000" +"216250,170000" +] +) +end &155 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,168600,216100,170000" +st "reset" +blo "212000,169800" +tm "WireNameMgr" +) +) +on &17 +) +*238 (Wire +uid 430,0 +shape (OrthoPolyLine +uid 431,0 +va (VaSet +vasetType 3 +) +xt "213000,168000,216250,168000" +pts [ +"213000,168000" +"216250,168000" +] +) +end &154 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 435,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,166600,215800,168000" +st "clock" +blo "212000,167800" +tm "WireNameMgr" +) +) +on &12 +) +*239 (Wire +uid 497,0 +shape (OrthoPolyLine +uid 498,0 +va (VaSet +vasetType 3 +) +xt "261000,160000,264250,160000" +pts [ +"261000,160000" +"264250,160000" +] +) +end &107 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 503,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 504,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,158600,264100,160000" +st "reset" +blo "260000,159800" +tm "WireNameMgr" +) +) +on &17 +) +*240 (Wire +uid 505,0 +shape (OrthoPolyLine +uid 506,0 +va (VaSet +vasetType 3 +) +xt "261000,158000,264250,158000" +pts [ +"261000,158000" +"264250,158000" +] +) +end &104 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 511,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 512,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,156600,263800,158000" +st "clock" +blo "260000,157800" +tm "WireNameMgr" +) +) +on &12 +) +*241 (Wire +uid 532,0 +shape (OrthoPolyLine +uid 533,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,154000,240250,154000" +pts [ +"233750,154000" +"240250,154000" +] +) +start &158 +end &168 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 534,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 535,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,152600,240100,154000" +st "sampleX" +blo "234000,153800" +tm "WireNameMgr" +) +) +on &19 +) +*242 (Wire +uid 538,0 +shape (OrthoPolyLine +uid 539,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,154000,264250,154000" +pts [ +"257750,154000" +"264250,154000" +] +) +start &167 +end &105 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 541,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,152600,265400,154000" +st "unsignedX" +blo "258000,153800" +tm "WireNameMgr" +) +) +on &20 +) +*243 (Wire +uid 767,0 +shape (OrthoPolyLine +uid 768,0 +va (VaSet +vasetType 3 +) +xt "205000,125000,216250,162000" +pts [ +"205000,162000" +"205000,125000" +"216250,125000" +] +) +start &222 +end &181 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 772,0 +va (VaSet +font "Verdana,12,0" +) +xt "205000,123600,214600,125000" +st "newPolynom" +blo "205000,124800" +tm "WireNameMgr" +) +) +on &18 +) +*244 (Wire +uid 775,0 +shape (OrthoPolyLine +uid 776,0 +va (VaSet +vasetType 3 +) +xt "153000,119000,160250,156000" +pts [ +"153000,156000" +"153000,119000" +"160250,119000" +] +) +start &219 +end &207 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 777,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 778,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,117600,161600,119000" +st "newPolynom" +blo "152000,118800" +tm "WireNameMgr" +) +) +on &18 +) +*245 (Wire +uid 779,0 +shape (OrthoPolyLine +uid 780,0 +va (VaSet +vasetType 3 +) +xt "157000,125000,160250,125000" +pts [ +"157000,125000" +"160250,125000" +] +) +end &206 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 783,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 784,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,123600,160100,125000" +st "reset" +blo "156000,124800" +tm "WireNameMgr" +) +) +on &17 +) +*246 (Wire +uid 785,0 +shape (OrthoPolyLine +uid 786,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,117000,184250,117000" +pts [ +"177750,117000" +"184250,117000" +] +) +start &209 +end &192 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 787,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 788,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,115600,184800,117000" +st "sampleY1" +blo "178000,116800" +tm "WireNameMgr" +) +) +on &31 +) +*247 (Wire +uid 789,0 +shape (OrthoPolyLine +uid 790,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,119000,184250,119000" +pts [ +"177750,119000" +"184250,119000" +] +) +start &210 +end &193 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 791,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 792,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,117600,184800,119000" +st "sampleY2" +blo "178000,118800" +tm "WireNameMgr" +) +) +on &32 +) +*248 (Wire +uid 793,0 +shape (OrthoPolyLine +uid 794,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,117000,160250,117000" +pts [ +"147000,117000" +"160250,117000" +] +) +start &49 +end &208 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 797,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 798,0 +va (VaSet +font "Verdana,12,0" +) +xt "148000,115600,154700,117000" +st "samplesY" +blo "148000,116800" +tm "WireNameMgr" +) +) +on &30 +) +*249 (Wire +uid 799,0 +shape (OrthoPolyLine +uid 800,0 +va (VaSet +vasetType 3 +) +xt "157000,123000,160250,123000" +pts [ +"157000,123000" +"160250,123000" +] +) +end &205 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 803,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 804,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,121600,159800,123000" +st "clock" +blo "156000,122800" +tm "WireNameMgr" +) +) +on &12 +) +*250 (Wire +uid 805,0 +shape (OrthoPolyLine +uid 806,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,123000,216250,123000" +pts [ +"201750,123000" +"216250,123000" +] +) +start &198 +end &182 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 808,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,121600,206050,123000" +st "dY" +blo "203750,122800" +tm "WireNameMgr" +) +) +on &38 +) +*251 (Wire +uid 809,0 +shape (OrthoPolyLine +uid 810,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,121000,184250,121000" +pts [ +"177750,121000" +"184250,121000" +] +) +start &211 +end &194 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 811,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 812,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,119600,184800,121000" +st "sampleY3" +blo "178000,120800" +tm "WireNameMgr" +) +) +on &33 +) +*252 (Wire +uid 813,0 +shape (OrthoPolyLine +uid 814,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,123000,184250,123000" +pts [ +"177750,123000" +"184250,123000" +] +) +start &212 +end &195 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 816,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,121600,184800,123000" +st "sampleY4" +blo "178000,122800" +tm "WireNameMgr" +) +) +on &34 +) +*253 (Wire +uid 817,0 +shape (OrthoPolyLine +uid 818,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,117000,216250,117000" +pts [ +"201750,117000" +"216250,117000" +] +) +start &196 +end &186 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 820,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,115600,206050,117000" +st "aY" +blo "203750,116800" +tm "WireNameMgr" +) +) +on &35 +) +*254 (Wire +uid 821,0 +shape (OrthoPolyLine +uid 822,0 +va (VaSet +vasetType 3 +) +xt "213000,133000,216250,133000" +pts [ +"213000,133000" +"216250,133000" +] +) +end &180 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 825,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 826,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,131600,216100,133000" +st "reset" +blo "212000,132800" +tm "WireNameMgr" +) +) +on &17 +) +*255 (Wire +uid 827,0 +shape (OrthoPolyLine +uid 828,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,119000,216250,119000" +pts [ +"201750,119000" +"216250,119000" +] +) +start &197 +end &185 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 829,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 830,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,117600,206050,119000" +st "bY" +blo "203750,118800" +tm "WireNameMgr" +) +) +on &36 +) +*256 (Wire +uid 831,0 +shape (OrthoPolyLine +uid 832,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,121000,216250,121000" +pts [ +"201750,121000" +"216250,121000" +] +) +start &199 +end &184 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 833,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 834,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,119600,205850,121000" +st "cY" +blo "203750,120800" +tm "WireNameMgr" +) +) +on &37 +) +*257 (Wire +uid 835,0 +shape (OrthoPolyLine +uid 836,0 +va (VaSet +vasetType 3 +) +xt "261000,123000,264250,123000" +pts [ +"261000,123000" +"264250,123000" +] +) +end &99 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 840,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,121600,264100,123000" +st "reset" +blo "260000,122800" +tm "WireNameMgr" +) +) +on &17 +) +*258 (Wire +uid 841,0 +shape (OrthoPolyLine +uid 842,0 +va (VaSet +vasetType 3 +) +xt "213000,131000,216250,131000" +pts [ +"213000,131000" +"216250,131000" +] +) +end &179 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 845,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 846,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,129600,215800,131000" +st "clock" +blo "212000,130800" +tm "WireNameMgr" +) +) +on &12 +) +*259 (Wire +uid 847,0 +shape (OrthoPolyLine +uid 848,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,117000,240250,117000" +pts [ +"233750,117000" +"240250,117000" +] +) +start &183 +end &174 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 849,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 850,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,115600,240000,117000" +st "sampleY" +blo "234000,116800" +tm "WireNameMgr" +) +) +on &39 +) +*260 (Wire +uid 851,0 +shape (OrthoPolyLine +uid 852,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,117000,264250,117000" +pts [ +"257750,117000" +"264250,117000" +] +) +start &173 +end &97 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 853,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 854,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,115600,265300,117000" +st "unsignedY" +blo "258000,116800" +tm "WireNameMgr" +) +) +on &40 +) +*261 (Wire +uid 855,0 +shape (OrthoPolyLine +uid 856,0 +va (VaSet +vasetType 3 +) +xt "261000,121000,264250,121000" +pts [ +"261000,121000" +"264250,121000" +] +) +end &96 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 859,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 860,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,119600,263800,121000" +st "clock" +blo "260000,120800" +tm "WireNameMgr" +) +) +on &12 +) +*262 (Wire +uid 1995,0 +shape (OrthoPolyLine +uid 1996,0 +va (VaSet +vasetType 3 +) +xt "153000,176000,160250,176000" +pts [ +"153000,176000" +"160250,176000" +] +) +end &124 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2001,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2002,0 +va (VaSet +font "Verdana,12,0" +) +xt "148000,174600,161900,176000" +st "interpolationEnable" +blo "148000,175800" +tm "WireNameMgr" +) +) +on &43 +) +*263 (Wire +uid 3146,0 +shape (OrthoPolyLine +uid 3147,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123000,154000,131000,154000" +pts [ +"123000,154000" +"131000,154000" +] +) +start &73 +end &44 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3150,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3151,0 +va (VaSet +font "Verdana,12,0" +) +xt "124000,152600,128600,154000" +st "memX" +blo "124000,153800" +tm "WireNameMgr" +) +) +on &48 +) +*264 (Wire +uid 3432,0 +shape (OrthoPolyLine +uid 3433,0 +va (VaSet +vasetType 3 +) +xt "209000,166000,216250,166000" +pts [ +"209000,166000" +"216250,166000" +] +) +end &162 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3439,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,164600,217900,166000" +st "interpolationEnable" +blo "204000,165800" +tm "WireNameMgr" +) +) +on &43 +) +*265 (Wire +uid 3485,0 +shape (OrthoPolyLine +uid 3486,0 +va (VaSet +vasetType 3 +) +xt "209000,129000,216250,129000" +pts [ +"209000,129000" +"216250,129000" +] +) +end &187 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3491,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3492,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,127600,217900,129000" +st "interpolationEnable" +blo "204000,128800" +tm "WireNameMgr" +) +) +on &43 +) +*266 (Wire +uid 3907,0 +shape (OrthoPolyLine +uid 3908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123000,117000,131000,117000" +pts [ +"123000,117000" +"131000,117000" +] +) +start &77 +end &49 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3912,0 +va (VaSet +font "Verdana,12,0" +) +xt "125750,115600,130250,117000" +st "memY" +blo "125750,116800" +tm "WireNameMgr" +) +) +on &53 +) +*267 (Wire +uid 4770,0 +shape (OrthoPolyLine +uid 4771,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,150000,98250,150000" +pts [ +"91750,150000" +"98250,150000" +] +) +start &113 +end &90 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4775,0 +va (VaSet +font "Verdana,12,0" +) +xt "92000,148600,96700,150000" +st "phase" +blo "92000,149800" +tm "WireNameMgr" +) +) +on &58 +) +*268 (Wire +uid 4782,0 +shape (OrthoPolyLine +uid 4783,0 +va (VaSet +vasetType 3 +) +xt "71000,158000,74250,158000" +pts [ +"71000,158000" +"74250,158000" +] +) +end &114 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4786,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4787,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,156600,75100,158000" +st "reset" +blo "71000,157800" +tm "WireNameMgr" +) +) +on &17 +) +*269 (Wire +uid 4788,0 +shape (OrthoPolyLine +uid 4789,0 +va (VaSet +vasetType 3 +) +xt "71000,156000,74250,156000" +pts [ +"71000,156000" +"74250,156000" +] +) +end &112 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4793,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,154600,74800,156000" +st "clock" +blo "71000,155800" +tm "WireNameMgr" +) +) +on &12 +) +*270 (Wire +uid 4794,0 +shape (OrthoPolyLine +uid 4795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71000,144000,74250,150000" +pts [ +"74250,150000" +"71000,150000" +"71000,144000" +] +) +start &115 +end &54 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4799,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,148600,74600,150000" +st "step" +blo "71000,149800" +tm "WireNameMgr" +) +) +on &59 +) +*271 (Wire +uid 4860,0 +shape (OrthoPolyLine +uid 4861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "115750,115000,131000,150000" +pts [ +"115750,150000" +"119000,150000" +"119000,115000" +"131000,115000" +] +) +start &89 +end &49 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4864,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4865,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,148600,121150,150000" +st "sine" +blo "117750,149800" +tm "WireNameMgr" +) +) +on &60 +) +*272 (Wire +uid 4866,0 +shape (OrthoPolyLine +uid 4867,0 +va (VaSet +vasetType 3 +) +xt "67000,154000,74250,154000" +pts [ +"67000,154000" +"74250,154000" +] +) +end &116 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4873,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,152600,76900,154000" +st "interpolationEnable" +blo "63000,153800" +tm "WireNameMgr" +) +) +on &43 +) +*273 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "91000,109000,99000,109000" +pts [ +"91000,109000" +"99000,109000" +] +) +start &61 +end &62 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,107600,97900,109000" +st "selSinCos" +blo "91000,108800" +tm "WireNameMgr" +) +) +on &68 +) +*274 (Wire +uid 5253,0 +shape (OrthoPolyLine +uid 5254,0 +va (VaSet +vasetType 3 +) +xt "115000,107000,123000,107000" +pts [ +"115000,107000" +"123000,107000" +] +) +start &62 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5259,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5260,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,105600,131650,107000" +st "interpolationEnable" +blo "117750,106800" +tm "WireNameMgr" +) +) +on &43 +) +*275 (Wire +uid 5263,0 +shape (OrthoPolyLine +uid 5264,0 +va (VaSet +vasetType 3 +) +xt "75750,107000,99000,107000" +pts [ +"75750,107000" +"99000,107000" +] +) +start &80 +end &62 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5269,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5270,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,105600,100200,107000" +st "interpolationEn" +blo "89000,106800" +tm "WireNameMgr" +) +) +on &66 +) +*276 (Wire +uid 5938,0 +shape (OrthoPolyLine +uid 5939,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "115750,152000,131000,152000" +pts [ +"115750,152000" +"131000,152000" +] +) +start &91 +end &44 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5942,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5943,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,150600,122550,152000" +st "cosine" +blo "117750,151800" +tm "WireNameMgr" +) +) +on &67 +) +*277 (Wire +uid 8248,0 +optionalChildren [ +*278 (BdJunction +uid 8258,0 +ps "OnConnectorStrategy" +shape (Circle +uid 8259,0 +va (VaSet +vasetType 1 +) +xt "180600,124600,181400,125400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 8249,0 +va (VaSet +vasetType 3 +) +xt "115000,111000,184250,162000" +pts [ +"184250,162000" +"181000,162000" +"181000,111000" +"115000,111000" +] +) +start &149 +end &62 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8253,0 +va (VaSet +font "Verdana,12,0" +) +xt "117000,109600,129400,111000" +st "interpolateLinear" +blo "117000,110800" +tm "WireNameMgr" +) +) +on &69 +) +*279 (Wire +uid 8254,0 +shape (OrthoPolyLine +uid 8255,0 +va (VaSet +vasetType 3 +) +xt "181000,125000,184250,125000" +pts [ +"184250,125000" +"181000,125000" +] +) +start &200 +end &278 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8256,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8257,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "171250,123600,183650,125000" +st "interpolateLinear" +blo "171250,124800" +tm "WireNameMgr" +) +) +on &69 +) +*280 (Wire +uid 9246,0 +shape (OrthoPolyLine +uid 9247,0 +va (VaSet +vasetType 3 +) +xt "139000,121000,139000,125000" +pts [ +"139000,125000" +"139000,121000" +] +) +end &49 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9253,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,123600,145900,125000" +st "selSinCos" +blo "139000,124800" +tm "WireNameMgr" +) +) +on &68 +) +*281 (Wire +uid 9254,0 +shape (OrthoPolyLine +uid 9255,0 +va (VaSet +vasetType 3 +) +xt "139000,158000,139000,162000" +pts [ +"139000,162000" +"139000,158000" +] +) +end &44 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9260,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9261,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,160600,145900,162000" +st "selSinCos" +blo "139000,161800" +tm "WireNameMgr" +) +) +on &68 +) +*282 (Wire +uid 15564,0 +shape (OrthoPolyLine +uid 15565,0 +va (VaSet +vasetType 3 +) +xt "51000,113000,58250,113000" +pts [ +"51000,113000" +"58250,113000" +] +) +start &71 +end &81 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15568,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15569,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,111600,56800,113000" +st "clock" +blo "53000,112800" +tm "WireNameMgr" +) +) +on &12 +) +*283 (Wire +uid 15576,0 +shape (OrthoPolyLine +uid 15577,0 +va (VaSet +vasetType 3 +) +xt "91000,111000,99000,111000" +pts [ +"91000,111000" +"99000,111000" +] +) +start &72 +end &62 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15580,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15581,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,109600,101300,111000" +st "interpolateLin" +blo "91000,110800" +tm "WireNameMgr" +) +) +on &70 +) +*284 (Wire +uid 15600,0 +shape (OrthoPolyLine +uid 15601,0 +va (VaSet +vasetType 3 +) +xt "51000,115000,58250,115000" +pts [ +"51000,115000" +"58250,115000" +] +) +start &74 +end &82 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15604,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15605,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,113600,57100,115000" +st "reset" +blo "53000,114800" +tm "WireNameMgr" +) +) +on &17 +) +*285 (Wire +uid 15612,0 +shape (OrthoPolyLine +uid 15613,0 +va (VaSet +vasetType 3 +) +xt "51000,107000,58250,107000" +pts [ +"51000,107000" +"58250,107000" +] +) +start &75 +end &84 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15616,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15617,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,105600,53900,107000" +st "run" +blo "51000,106800" +tm "WireNameMgr" +) +) +on &41 +) +*286 (Wire +uid 15638,0 +shape (OrthoPolyLine +uid 15639,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51000,109000,58250,109000" +pts [ +"51000,109000" +"58250,109000" +] +) +start &76 +end &83 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15642,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15643,0 +va (VaSet +font "Verdana,12,0" +) +xt "49000,107600,59100,109000" +st "updatePeriod" +blo "49000,108800" +tm "WireNameMgr" +) +) +on &42 +) +*287 (Wire +uid 16686,0 +shape (OrthoPolyLine +uid 16687,0 +va (VaSet +vasetType 3 +) +xt "205000,176000,209000,176000" +pts [ +"205000,176000" +"209000,176000" +"209000,176000" +] +) +start &223 +end &78 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16690,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16691,0 +va (VaSet +font "Verdana,12,0" +) +xt "200000,174600,209600,176000" +st "newPolynom" +blo "200000,175800" +tm "WireNameMgr" +) +) +on &18 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *288 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*289 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "17000,110400,23900,111400" +st "Package List" +blo "17000,111200" +) +*290 (MLText +uid 44,0 +va (VaSet +) +xt "17000,111400,34500,115000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*291 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*292 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*293 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*294 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*295 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*296 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*297 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "13023,98875,296113,252685" +cachedDiagramExtent "13500,0,295700,188600" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "ipp://ippsion.hevs.ch/ipp/PREA309_HPLJ3005DN" +toPrinter 1 +colour 1 +xMargin 46 +yMargin 46 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,99000" +lastUid 18336,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*298 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*299 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*300 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*301 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*302 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*303 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*304 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*305 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*306 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*307 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*308 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*309 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*310 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*311 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*312 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*313 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*314 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*315 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*316 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*317 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*318 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "17000,120900,24000,121900" +st "Declarations" +blo "17000,121700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "17000,121800,20400,122800" +st "Ports:" +blo "17000,122600" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "17000,132600,21800,133600" +st "Pre User:" +blo "17000,133400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "19000,133500,53100,139500" +st "constant coeffBitNb : positive := signalBitNb+3+1; +constant sampleCountBitNb : positive := 8; +constant patternAddressBitNb : positive := 8; +-- sinewave generator +constant tableAddressBitNb : positive := 3; +constant phaseBitNb : positive := sampleCountBitNb + tableAddressBitNb + 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "17000,138900,26000,139900" +st "Diagram Signals:" +blo "17000,139700" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "17000,120900,23000,121900" +st "Post User:" +blo "17000,121700" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "17000,120900,17000,120900" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 74,0 +usingSuid 1 +emptyRow *319 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*320 (RefLabelRowHdr +) +*321 (TitleRowHdr +) +*322 (FilterRowHdr +) +*323 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*324 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*325 (GroupColHdr +tm "GroupColHdrMgr" +) +*326 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*327 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*328 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*329 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*330 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*331 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*332 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 10635,0 +) +*333 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +) +uid 10639,0 +) +*334 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 10641,0 +) +*335 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 10645,0 +) +*336 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 10,0 +) +) +uid 10651,0 +) +*337 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 25 +suid 11,0 +) +) +uid 10653,0 +) +*338 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 39 +suid 12,0 +) +) +uid 10655,0 +) +*339 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 35 +suid 13,0 +) +) +uid 10657,0 +) +*340 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 26 +suid 14,0 +) +) +uid 10659,0 +) +*341 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 27 +suid 15,0 +) +) +uid 10661,0 +) +*342 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 28 +suid 16,0 +) +) +uid 10663,0 +) +*343 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 29 +suid 17,0 +) +) +uid 10665,0 +) +*344 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 12 +suid 18,0 +) +) +uid 10667,0 +) +*345 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 14 +suid 19,0 +) +) +uid 10669,0 +) +*346 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 16 +suid 20,0 +) +) +uid 10671,0 +) +*347 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 19 +suid 21,0 +) +) +uid 10673,0 +) +*348 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 36 +suid 22,0 +) +) +uid 10675,0 +) +*349 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 31 +suid 23,0 +) +) +uid 10677,0 +) +*350 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 32 +suid 24,0 +) +) +uid 10679,0 +) +*351 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 33 +suid 25,0 +) +) +uid 10681,0 +) +*352 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 26,0 +) +) +uid 10683,0 +) +*353 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 13 +suid 27,0 +) +) +uid 10685,0 +) +*354 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 15 +suid 28,0 +) +) +uid 10687,0 +) +*355 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 17 +suid 29,0 +) +) +uid 10689,0 +) +*356 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 20 +suid 30,0 +) +) +uid 10691,0 +) +*357 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 30 +suid 31,0 +) +) +uid 10693,0 +) +*358 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 40 +suid 32,0 +) +) +uid 10695,0 +) +*359 (LeafLogPort +port (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 38,0 +) +) +uid 10707,0 +) +*360 (LeafLogPort +port (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 42,0 +) +) +uid 10715,0 +) +*361 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 23 +suid 43,0 +) +) +uid 10717,0 +) +*362 (LeafLogPort +port (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 48,0 +) +) +uid 10727,0 +) +*363 (LeafLogPort +port (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 53,0 +) +) +uid 10737,0 +) +*364 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 24 +suid 57,0 +) +) +uid 10745,0 +) +*365 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 38 +suid 58,0 +) +) +uid 10747,0 +) +*366 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 37 +suid 59,0 +) +) +uid 10749,0 +) +*367 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 22 +suid 60,0 +) +) +uid 10751,0 +) +*368 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 18 +suid 61,0 +) +) +uid 10753,0 +) +*369 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 62,0 +) +) +uid 10755,0 +) +*370 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 21 +suid 69,0 +) +) +uid 10769,0 +) +*371 (LeafLogPort +port (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 70,0 +) +) +uid 10771,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*372 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *373 (MRCItem +litem &319 +pos 40 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*374 (MRCItem +litem &320 +pos 0 +dimension 20 +uid 10790,0 +) +*375 (MRCItem +litem &321 +pos 1 +dimension 23 +uid 10791,0 +) +*376 (MRCItem +litem &322 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*377 (MRCItem +litem &332 +pos 2 +dimension 20 +uid 10636,0 +) +*378 (MRCItem +litem &333 +pos 0 +dimension 20 +uid 10640,0 +) +*379 (MRCItem +litem &334 +pos 4 +dimension 20 +uid 10642,0 +) +*380 (MRCItem +litem &335 +pos 3 +dimension 20 +uid 10646,0 +) +*381 (MRCItem +litem &336 +pos 10 +dimension 20 +uid 10652,0 +) +*382 (MRCItem +litem &337 +pos 11 +dimension 20 +uid 10654,0 +) +*383 (MRCItem +litem &338 +pos 12 +dimension 20 +uid 10656,0 +) +*384 (MRCItem +litem &339 +pos 13 +dimension 20 +uid 10658,0 +) +*385 (MRCItem +litem &340 +pos 14 +dimension 20 +uid 10660,0 +) +*386 (MRCItem +litem &341 +pos 15 +dimension 20 +uid 10662,0 +) +*387 (MRCItem +litem &342 +pos 16 +dimension 20 +uid 10664,0 +) +*388 (MRCItem +litem &343 +pos 17 +dimension 20 +uid 10666,0 +) +*389 (MRCItem +litem &344 +pos 18 +dimension 20 +uid 10668,0 +) +*390 (MRCItem +litem &345 +pos 19 +dimension 20 +uid 10670,0 +) +*391 (MRCItem +litem &346 +pos 20 +dimension 20 +uid 10672,0 +) +*392 (MRCItem +litem &347 +pos 21 +dimension 20 +uid 10674,0 +) +*393 (MRCItem +litem &348 +pos 22 +dimension 20 +uid 10676,0 +) +*394 (MRCItem +litem &349 +pos 23 +dimension 20 +uid 10678,0 +) +*395 (MRCItem +litem &350 +pos 24 +dimension 20 +uid 10680,0 +) +*396 (MRCItem +litem &351 +pos 25 +dimension 20 +uid 10682,0 +) +*397 (MRCItem +litem &352 +pos 26 +dimension 20 +uid 10684,0 +) +*398 (MRCItem +litem &353 +pos 27 +dimension 20 +uid 10686,0 +) +*399 (MRCItem +litem &354 +pos 28 +dimension 20 +uid 10688,0 +) +*400 (MRCItem +litem &355 +pos 29 +dimension 20 +uid 10690,0 +) +*401 (MRCItem +litem &356 +pos 30 +dimension 20 +uid 10692,0 +) +*402 (MRCItem +litem &357 +pos 31 +dimension 20 +uid 10694,0 +) +*403 (MRCItem +litem &358 +pos 32 +dimension 20 +uid 10696,0 +) +*404 (MRCItem +litem &359 +pos 1 +dimension 20 +uid 10708,0 +) +*405 (MRCItem +litem &360 +pos 7 +dimension 20 +uid 10716,0 +) +*406 (MRCItem +litem &361 +pos 33 +dimension 20 +uid 10718,0 +) +*407 (MRCItem +litem &362 +pos 8 +dimension 20 +uid 10728,0 +) +*408 (MRCItem +litem &363 +pos 9 +dimension 20 +uid 10738,0 +) +*409 (MRCItem +litem &364 +pos 34 +dimension 20 +uid 10746,0 +) +*410 (MRCItem +litem &365 +pos 35 +dimension 20 +uid 10748,0 +) +*411 (MRCItem +litem &366 +pos 36 +dimension 20 +uid 10750,0 +) +*412 (MRCItem +litem &367 +pos 37 +dimension 20 +uid 10752,0 +) +*413 (MRCItem +litem &368 +pos 38 +dimension 20 +uid 10754,0 +) +*414 (MRCItem +litem &369 +pos 5 +dimension 20 +uid 10756,0 +) +*415 (MRCItem +litem &370 +pos 39 +dimension 20 +uid 10770,0 +) +*416 (MRCItem +litem &371 +pos 6 +dimension 20 +uid 10772,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*417 (MRCItem +litem &323 +pos 0 +dimension 20 +uid 10794,0 +) +*418 (MRCItem +litem &325 +pos 1 +dimension 50 +uid 10795,0 +) +*419 (MRCItem +litem &326 +pos 2 +dimension 100 +uid 10796,0 +) +*420 (MRCItem +litem &327 +pos 3 +dimension 50 +uid 10797,0 +) +*421 (MRCItem +litem &328 +pos 4 +dimension 100 +uid 10798,0 +) +*422 (MRCItem +litem &329 +pos 5 +dimension 100 +uid 10799,0 +) +*423 (MRCItem +litem &330 +pos 6 +dimension 50 +uid 10800,0 +) +*424 (MRCItem +litem &331 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *425 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*426 (RefLabelRowHdr +) +*427 (TitleRowHdr +) +*428 (FilterRowHdr +) +*429 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*430 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*431 (GroupColHdr +tm "GroupColHdrMgr" +) +*432 (NameColHdr +tm "GenericNameColHdrMgr" +) +*433 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*434 (InitColHdr +tm "GenericValueColHdrMgr" +) +*435 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*436 (EolColHdr +tm "GenericEolColHdrMgr" +) +*437 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 15314,0 +) +*438 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 15897,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10815,0 +optionalChildren [ +*439 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *440 (MRCItem +litem &425 +pos 2 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*441 (MRCItem +litem &426 +pos 0 +dimension 20 +uid 10818,0 +) +*442 (MRCItem +litem &427 +pos 1 +dimension 23 +uid 10819,0 +) +*443 (MRCItem +litem &428 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*444 (MRCItem +litem &437 +pos 0 +dimension 20 +uid 15313,0 +) +*445 (MRCItem +litem &438 +pos 1 +dimension 20 +uid 15896,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*446 (MRCItem +litem &429 +pos 0 +dimension 20 +uid 10822,0 +) +*447 (MRCItem +litem &431 +pos 1 +dimension 50 +uid 10823,0 +) +*448 (MRCItem +litem &432 +pos 2 +dimension 100 +uid 10824,0 +) +*449 (MRCItem +litem &433 +pos 3 +dimension 100 +uid 10825,0 +) +*450 (MRCItem +litem &434 +pos 4 +dimension 50 +uid 10826,0 +) +*451 (MRCItem +litem &435 +pos 5 +dimension 50 +uid 10827,0 +) +*452 (MRCItem +litem &436 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/symbol.sb new file mode 100644 index 0000000..e1e5442 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@operator/symbol.sb @@ -0,0 +1,2066 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2019,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 203,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +uid 204,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 206,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 209,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 210,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 211,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +uid 539,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +uid 541,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2016,0 +) +) +uid 543,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 2018,0 +) +) +uid 653,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +uid 725,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 132,0 +optionalChildren [ +*27 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 135,0 +) +*28 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 137,0 +) +*29 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*30 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 159,0 +) +*31 (MRCItem +litem &3 +pos 5 +dimension 20 +uid 160,0 +) +*32 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 162,0 +) +*33 (MRCItem +litem &5 +pos 1 +dimension 20 +uid 165,0 +) +*34 (MRCItem +litem &6 +pos 4 +dimension 20 +uid 166,0 +) +*35 (MRCItem +litem &7 +pos 3 +dimension 20 +uid 167,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 540,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 542,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 544,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 654,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 724,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*41 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 141,0 +) +*42 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 145,0 +) +*43 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 147,0 +) +*44 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 149,0 +) +*45 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 151,0 +) +*46 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 153,0 +) +*47 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 155,0 +) +*48 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +*61 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 197,0 +) +*62 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 593,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 218,0 +optionalChildren [ +*63 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *64 (MRCItem +litem &49 +pos 2 +dimension 20 +) +uid 172,0 +optionalChildren [ +*65 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 175,0 +) +*66 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 177,0 +) +*67 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*68 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 199,0 +) +*69 (MRCItem +litem &62 +pos 1 +dimension 20 +uid 594,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*70 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 181,0 +) +*71 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 185,0 +) +*72 (MRCItem +litem &56 +pos 2 +dimension 100 +uid 187,0 +) +*73 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 189,0 +) +*74 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 191,0 +) +*75 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 193,0 +) +*76 (MRCItem +litem &60 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@operator/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@operator/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@operator" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamerOperator" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerOperator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:21" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbBeamerOperator" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@operator/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamerOperator/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:21" +) +(vvPair +variable "unit" +value "ahbBeamerOperator" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*77 (SymbolBody +uid 8,0 +optionalChildren [ +*78 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,26625,42000,27375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "43000,26400,45500,27300" +st "clock" +blo "43000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,21000,10300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*79 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,12625,42000,13375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "43000,12400,44500,13300" +st "run" +blo "43000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8500,21000,9400" +st "run : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*80 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,12625,58750,13375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "55001,12400,57001,13300" +st "outX" +ju 2 +blo "57001,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7600,21000,8500" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*81 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,28625,42000,29375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "43000,28400,45500,29300" +st "reset" +blo "43000,29100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,21000,11200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*82 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,14625,58750,15375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "55001,14400,57001,15300" +st "outY" +ju 2 +blo "57001,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,21000,12100" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*83 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,18625,58750,19375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "52501,18400,57001,19300" +st "selSinCos" +ju 2 +blo "57001,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,21000,13000" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +) +*84 (CptPort +uid 524,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 525,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,14625,42000,15375" +) +tg (CPTG +uid 526,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 527,0 +va (VaSet +font "courier,9,0" +) +xt "43000,14400,50500,15300" +st "interpolateLin" +blo "43000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 528,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,21000,13900" +st "interpolateLin : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +) +*85 (CptPort +uid 529,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 530,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,16625,42000,17375" +) +tg (CPTG +uid 531,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 532,0 +va (VaSet +font "courier,9,0" +) +xt "43000,16400,49500,17300" +st "updatePeriod" +blo "43000,17100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 533,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,35000,14800" +st "updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +) +*86 (CptPort +uid 534,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 535,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,20625,42000,21375" +) +tg (CPTG +uid 536,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 537,0 +va (VaSet +font "courier,9,0" +) +xt "43000,20400,45000,21300" +st "memX" +blo "43000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 538,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,36500,15700" +st "memX : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2016,0 +) +) +) +*87 (CptPort +uid 648,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 649,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,22625,42000,23375" +) +tg (CPTG +uid 650,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 651,0 +va (VaSet +font "courier,9,0" +) +xt "43000,22400,45000,23300" +st "memY" +blo "43000,23100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 652,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,36500,16600" +st "memY : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 2018,0 +) +) +) +*88 (CptPort +uid 726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 727,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,18625,42000,19375" +) +tg (CPTG +uid 728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 729,0 +va (VaSet +font "courier,9,0" +) +xt "43000,18400,48500,19300" +st "newPolynom" +blo "43000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 730,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16600,20000,17500" +st "newPolynom : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,9000,58000,31000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "42600,30800,49100,31700" +st "SystemOnChip" +blo "42600,31500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "42600,31700,51600,32600" +st "ahbBeamerOperator" +blo "42600,32400" +) +) +gi *89 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "42000,34600,58000,38200" +st "Generic Declarations + +updatePeriodBitNb positive 16 +signalBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*90 (Grouping +uid 16,0 +optionalChildren [ +*91 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*96 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*98 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*99 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*100 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*101 (CommentGraphic +uid 591,0 +shape (PolyLine2D +pts [ +"42000,33000" +"58000,33000" +] +uid 592,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "42000,33000,58000,33000" +) +oxt "36000,32000,52000,32000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *102 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*104 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "26,33,1318,883" +viewArea "-1000,-1000,77329,50684" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *105 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *106 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,6500,6700" +st "Declarations" +blo "0,6500" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6700,3000,7600" +st "Ports:" +blo "0,7400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,17500,2500,18400" +st "User:" +blo "0,18200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7500,6700" +st "Internal User:" +blo "0,6500" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18400,2000,18400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 776,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/struct.bd new file mode 100644 index 0000000..b8a0102 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/struct.bd @@ -0,0 +1,10779 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_ctl" +duLibraryName "SystemOnChip" +duName "periphControlReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 21149,0 +) +(Instance +name "I_speed" +duLibraryName "SystemOnChip" +duName "periphSpeedReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +mwi 0 +uid 21186,0 +) +(Instance +name "I_decoder" +duLibraryName "SystemOnChip" +duName "periphAddressDecoder" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 21219,0 +) +(Instance +name "I_addry" +duLibraryName "SystemOnChip" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 21252,0 +) +(Instance +name "I_ctly" +duLibraryName "SystemOnChip" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 21297,0 +) +(Instance +name "I_addrx" +duLibraryName "SystemOnChip" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 21330,0 +) +(Instance +name "I_ctlx" +duLibraryName "SystemOnChip" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 21375,0 +) +(Instance +name "I_ramx" +duLibraryName "SystemOnChip" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR/ramYInit.txt\"" +) +] +mwi 0 +uid 21412,0 +) +(Instance +name "I_ramy" +duLibraryName "SystemOnChip" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR/ramXInit.txt\"" +) +] +mwi 0 +uid 21449,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb3" +number "3" +) +(EmbeddedInstance +name "eb8" +number "8" +) +(EmbeddedInstance +name "eb9" +number "9" +) +(EmbeddedInstance +name "eb10" +number "10" +) +(EmbeddedInstance +name "eb11" +number "11" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@registers\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@registers\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@registers" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerRegisters" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerRegisters" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:01:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbBeamerRegisters" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahb@beamer@registers\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\ahbBeamerRegisters\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:01:22" +) +(vvPair +variable "unit" +value "ahbBeamerRegisters" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,197000,127000,198000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,197500,110200,197500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,193000,131000,194000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,193500,127200,193500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,195000,127000,196000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,195500,110200,195500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,195000,110000,196000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,195500,106200,195500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,194000,147000,198000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,194200,141300,195400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "131000,193000,147000,194000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "131200,193500,131200,193500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,193000,127000,195000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "111350,193400,121650,194600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,196000,110000,197000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,196500,106200,196500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,197000,110000,198000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,197500,106200,197500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,196000,127000,197000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,196500,110200,196500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "106000,193000,147000,198000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 79,0 +decl (Decl +n "clock" +t "std_ulogic" +o 18 +suid 2,0 +) +declText (MLText +uid 80,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,120100,17600,121100" +st "SIGNAL clock : std_ulogic" +) +) +*13 (Net +uid 163,0 +decl (Decl +n "reset" +t "std_ulogic" +o 19 +suid 7,0 +) +declText (MLText +uid 164,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,121000,17600,122000" +st "SIGNAL reset : std_ulogic" +) +) +*14 (Net +uid 436,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 7 +suid 10,0 +) +declText (MLText +uid 437,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,106600,16100,107600" +st "newPolynom : std_ulogic" +) +) +*15 (Net +uid 990,0 +decl (Decl +n "selControl" +t "std_ulogic" +o 32 +suid 33,0 +) +declText (MLText +uid 991,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,132700,18100,133700" +st "SIGNAL selControl : std_ulogic" +) +) +*16 (Net +uid 1055,0 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 33 +suid 35,0 +) +declText (MLText +uid 1056,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,133600,18300,134600" +st "SIGNAL selSpeed : std_ulogic" +) +) +*17 (Net +uid 1063,0 +decl (Decl +n "selX" +t "std_ulogic" +o 34 +suid 36,0 +) +declText (MLText +uid 1064,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,134500,17500,135500" +st "SIGNAL selX : std_ulogic" +) +) +*18 (Net +uid 1071,0 +decl (Decl +n "selY" +t "std_ulogic" +o 35 +suid 37,0 +) +declText (MLText +uid 1072,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,135400,17500,136400" +st "SIGNAL selY : std_ulogic" +) +) +*19 (Net +uid 1348,0 +decl (Decl +n "run" +t "std_ulogic" +o 4 +suid 38,0 +) +declText (MLText +uid 1349,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,103900,14300,104900" +st "run : std_ulogic" +) +) +*20 (Net +uid 1356,0 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 36 +suid 39,0 +) +declText (MLText +uid 1357,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,136300,18900,137300" +st "SIGNAL updatePattern : std_ulogic" +) +) +*21 (Net +uid 1470,0 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 31 +suid 40,0 +) +declText (MLText +uid 1471,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,131800,33000,132800" +st "SIGNAL patternSize : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*22 (Net +uid 1589,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 26 +suid 41,0 +) +declText (MLText +uid 1590,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,127300,31600,128300" +st "SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*23 (Net +uid 1776,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 5 +suid 42,0 +) +declText (MLText +uid 1777,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,104800,29600,105800" +st "updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*24 (Net +uid 2776,0 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 21 +suid 44,0 +) +declText (MLText +uid 2777,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,122800,32600,123800" +st "SIGNAL addrX : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 2850,0 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 23 +suid 45,0 +) +declText (MLText +uid 2851,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,124600,17900,125600" +st "SIGNAL cntIncrX : std_ulogic" +) +) +*26 (Net +uid 2852,0 +decl (Decl +n "memWrX" +t "std_ulogic" +o 29 +suid 46,0 +) +declText (MLText +uid 2853,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,130000,19000,131000" +st "SIGNAL memWrX : std_ulogic" +) +) +*27 (Net +uid 2854,0 +decl (Decl +n "memEnX" +t "std_ulogic" +o 27 +suid 47,0 +) +declText (MLText +uid 2855,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,128200,18900,129200" +st "SIGNAL memEnX : std_ulogic" +) +) +*28 (Net +uid 3152,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 48,0 +) +declText (MLText +uid 3153,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,102100,29700,103100" +st "memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*29 (Net +uid 3827,0 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 24 +suid 49,0 +) +declText (MLText +uid 3828,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,125500,17900,126500" +st "SIGNAL cntIncrY : std_ulogic" +) +) +*30 (Net +uid 3890,0 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 22 +suid 50,0 +) +declText (MLText +uid 3891,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,123700,32600,124700" +st "SIGNAL addrY : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*31 (Net +uid 3892,0 +decl (Decl +n "memWrY" +t "std_ulogic" +o 30 +suid 51,0 +) +declText (MLText +uid 3893,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,130900,19000,131900" +st "SIGNAL memWrY : std_ulogic" +) +) +*32 (Net +uid 3894,0 +decl (Decl +n "memEnY" +t "std_ulogic" +o 28 +suid 52,0 +) +declText (MLText +uid 3895,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,129100,18900,130100" +st "SIGNAL memEnY : std_ulogic" +) +) +*33 (Net +uid 3913,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 53,0 +) +declText (MLText +uid 3914,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,103000,29700,104000" +st "memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*34 (PortIoOut +uid 4041,0 +shape (CompositeShape +uid 4042,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4043,0 +sl 0 +ro 270 +xt "143500,3625,145000,4375" +) +(Line +uid 4044,0 +sl 0 +ro 270 +xt "143000,4000,143500,4000" +pts [ +"143000,4000" +"143500,4000" +] +) +] +) +tg (WTG +uid 4045,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4046,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "146000,3300,166900,4700" +st "testOut : (1 TO testOutBitNb)" +blo "146000,4500" +tm "WireNameMgr" +) +) +) +*35 (Net +uid 4053,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 1 +suid 54,0 +) +declText (MLText +uid 4054,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,101200,26200,102200" +st "testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*36 (HdlText +uid 4055,0 +optionalChildren [ +*37 (EmbeddedText +uid 4060,0 +commentText (CommentText +uid 4061,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4062,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "120000,3000,134000,25000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4063,0 +va (VaSet +) +xt "120200,3200,133900,24800" +st " +testout( 1) <= run_int; run <= run_int; +testout( 2) <= updatePattern; +testout( 3) <= interpolateLin_int; interpolateLin <= interpolateLin_int; +testout( 4) <= newPolynom; +testout( 5) <= newPolynom; +testout( 6) <= '0'; +testout( 7) <= '0'; +testout( 8) <= selControl; +testout( 9) <= selSpeed; +testout(10) <= selX; +testout(11) <= selY; +testout(12) <= '0'; +testout(13) <= addr(0); +testout(14) <= addr(1); +testout(15) <= dataIn(0); +testout(16) <= dataIn(1); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 22000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4056,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "119000,2000,135000,26000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4057,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*38 (Text +uid 4058,0 +va (VaSet +) +xt "119400,26000,122000,27200" +st "eb3" +blo "119400,27000" +tm "HdlTextNameMgr" +) +*39 (Text +uid 4059,0 +va (VaSet +) +xt "119400,27000,120800,28200" +st "3" +blo "119400,28000" +tm "HdlTextNumberMgr" +) +] +) +) +*40 (Net +uid 9646,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 6 +suid 70,0 +) +declText (MLText +uid 9647,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,105700,15100,106700" +st "interpolateLin : std_ulogic" +) +) +*41 (PortIoOut +uid 14845,0 +shape (CompositeShape +uid 14846,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14847,0 +sl 0 +ro 270 +xt "134500,115625,136000,116375" +) +(Line +uid 14848,0 +sl 0 +ro 270 +xt "134000,116000,134500,116000" +pts [ +"134000,116000" +"134500,116000" +] +) +] +) +tg (WTG +uid 14849,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14850,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "137000,115300,161100,116700" +st "memY : (signalBitNb-1 DOWNTO 0)" +blo "137000,116500" +tm "WireNameMgr" +) +) +) +*42 (PortIoOut +uid 14851,0 +shape (CompositeShape +uid 14852,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14853,0 +sl 0 +ro 270 +xt "134500,153625,136000,154375" +) +(Line +uid 14854,0 +sl 0 +ro 270 +xt "134000,154000,134500,154000" +pts [ +"134000,154000" +"134500,154000" +] +) +] +) +tg (WTG +uid 14855,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14856,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "137000,153300,161200,154700" +st "memX : (signalBitNb-1 DOWNTO 0)" +blo "137000,154500" +tm "WireNameMgr" +) +) +) +*43 (PortIoOut +uid 14857,0 +shape (CompositeShape +uid 14858,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14859,0 +sl 0 +ro 270 +xt "109750,41625,111250,42375" +) +(Line +uid 14860,0 +sl 0 +ro 270 +xt "109250,42000,109750,42000" +pts [ +"109250,42000" +"109750,42000" +] +) +] +) +tg (WTG +uid 14861,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14862,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "112000,41300,114900,42700" +st "run" +blo "112000,42500" +tm "WireNameMgr" +) +) +) +*44 (PortIoOut +uid 14863,0 +shape (CompositeShape +uid 14864,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14865,0 +sl 0 +ro 270 +xt "109750,69625,111250,70375" +) +(Line +uid 14866,0 +sl 0 +ro 270 +xt "109250,70000,109750,70000" +pts [ +"109250,70000" +"109750,70000" +] +) +] +) +tg (WTG +uid 14867,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14868,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "112000,69300,146500,70700" +st "updatePeriod : (updatePeriodBitNb-1 DOWNTO 0)" +blo "112000,70500" +tm "WireNameMgr" +) +) +) +*45 (PortIoOut +uid 14869,0 +shape (CompositeShape +uid 14870,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14871,0 +sl 0 +ro 270 +xt "109500,43625,111000,44375" +) +(Line +uid 14872,0 +sl 0 +ro 270 +xt "109000,44000,109500,44000" +pts [ +"109000,44000" +"109500,44000" +] +) +] +) +tg (WTG +uid 14873,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14874,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "112000,43300,122300,44700" +st "interpolateLin" +blo "112000,44500" +tm "WireNameMgr" +) +) +) +*46 (Net +uid 16705,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 25 +suid 74,0 +) +declText (MLText +uid 16706,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,126400,31800,127400" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*47 (HdlText +uid 16707,0 +optionalChildren [ +*48 (EmbeddedText +uid 16712,0 +commentText (CommentText +uid 16713,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 16714,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "30000,39000,46000,53000" +) +oxt "0,0,18000,5000" +text (MLText +uid 16715,0 +va (VaSet +) +xt "30200,39200,45400,52400" +st " +storeControls: process(reset, clock) +begin + if reset = '1' then + addr <= (others => '0'); + write <= '0'; + elsif rising_edge(clock) then + write <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addr <= hAddr(addr'range); + write <= hWrite; + end if; + end if; +end process storeControls; + +dataIn <= hWData; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 16708,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "30000,38000,46000,54000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 16709,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*49 (Text +uid 16710,0 +va (VaSet +) +xt "30400,54000,33000,55200" +st "eb8" +blo "30400,55000" +tm "HdlTextNameMgr" +) +*50 (Text +uid 16711,0 +va (VaSet +) +xt "30400,55000,31800,56200" +st "8" +blo "30400,56000" +tm "HdlTextNumberMgr" +) +] +) +) +*51 (Net +uid 16716,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 20 +suid 75,0 +) +declText (MLText +uid 16717,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,121900,29500,122900" +st "SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*52 (HdlText +uid 17145,0 +optionalChildren [ +*53 (EmbeddedText +uid 17150,0 +commentText (CommentText +uid 17151,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 17152,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "58000,87000,66000,93000" +) +oxt "0,0,18000,5000" +text (MLText +uid 17153,0 +va (VaSet +) +xt "58200,87200,65800,92000" +st " +memDataIn <= dataIn(memDataIn'range); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 8000 +) +) +) +] +shape (Rectangle +uid 17146,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "58000,86000,66000,94000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 17147,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +uid 17148,0 +va (VaSet +) +xt "58400,94000,61000,95200" +st "eb9" +blo "58400,95000" +tm "HdlTextNameMgr" +) +*55 (Text +uid 17149,0 +va (VaSet +) +xt "58400,95000,59800,96200" +st "9" +blo "58400,96000" +tm "HdlTextNumberMgr" +) +] +) +) +*56 (Net +uid 17162,0 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 38 +suid 77,0 +) +declText (MLText +uid 17163,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,138100,33600,139100" +st "SIGNAL memDataIn : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*57 (Net +uid 17505,0 +decl (Decl +n "write" +t "std_ulogic" +o 37 +suid 78,0 +) +declText (MLText +uid 17506,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,137200,17600,138200" +st "SIGNAL write : std_ulogic" +) +) +*58 (HdlText +uid 17860,0 +optionalChildren [ +*59 (EmbeddedText +uid 17865,0 +commentText (CommentText +uid 17866,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 17867,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "30000,19000,46000,29000" +) +oxt "0,0,18000,5000" +text (MLText +uid 17868,0 +va (VaSet +) +xt "30200,19200,46200,27600" +st " +hRData <= std_ulogic_vector(dataOut); + +hReady <= '1'; -- no wait state +hResp <= '0'; -- data OK +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 17861,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "30000,18000,46000,30000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 17862,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 17863,0 +va (VaSet +) +xt "30400,30000,33700,31200" +st "eb10" +blo "30400,31000" +tm "HdlTextNameMgr" +) +*61 (Text +uid 17864,0 +va (VaSet +) +xt "30400,31000,32500,32200" +st "10" +blo "30400,32000" +tm "HdlTextNumberMgr" +) +] +) +) +*62 (PortIoIn +uid 18266,0 +shape (CompositeShape +uid 18267,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18268,0 +sl 0 +ro 270 +xt "68000,135625,69500,136375" +) +(Line +uid 18269,0 +sl 0 +ro 270 +xt "69500,136000,70000,136000" +pts [ +"69500,136000" +"70000,136000" +] +) +] +) +tg (WTG +uid 18270,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18271,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57400,135300,67000,136700" +st "newPolynom" +ju 2 +blo "67000,136500" +tm "WireNameMgr" +) +) +) +*63 (PortIoIn +uid 19642,0 +shape (CompositeShape +uid 19643,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19644,0 +sl 0 +ro 270 +xt "20000,3625,21500,4375" +) +(Line +uid 19645,0 +sl 0 +ro 270 +xt "21500,4000,22000,4000" +pts [ +"21500,4000" +"22000,4000" +] +) +] +) +tg (WTG +uid 19646,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19647,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "15500,3500,19000,4900" +st "hClk" +ju 2 +blo "19000,4700" +tm "WireNameMgr" +) +) +) +*64 (Net +uid 19654,0 +decl (Decl +n "hClk" +t "std_ulogic" +o 8 +suid 79,0 +) +declText (MLText +uid 19655,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,107500,14500,108500" +st "hClk : std_ulogic" +) +) +*65 (PortIoOut +uid 19656,0 +shape (CompositeShape +uid 19657,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19658,0 +sl 0 +ro 90 +xt "20000,21625,21500,22375" +) +(Line +uid 19659,0 +sl 0 +ro 90 +xt "21500,22000,22000,22000" +pts [ +"22000,22000" +"21500,22000" +] +) +] +) +tg (WTG +uid 19660,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19661,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-6700,21300,19000,22700" +st "hRData : (ahbDataBitNb-1 downto 0)" +ju 2 +blo "19000,22500" +tm "WireNameMgr" +) +) +) +*66 (Net +uid 19668,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 9 +suid 80,0 +) +declText (MLText +uid 19669,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,108400,29900,109400" +st "hRData : std_ulogic_vector(ahbDataBitNb-1 downto 0)" +) +) +*67 (PortIoIn +uid 19670,0 +shape (CompositeShape +uid 19671,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19672,0 +sl 0 +ro 270 +xt "20000,41625,21500,42375" +) +(Line +uid 19673,0 +sl 0 +ro 270 +xt "21500,42000,22000,42000" +pts [ +"21500,42000" +"22000,42000" +] +) +] +) +tg (WTG +uid 19674,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19675,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-7900,41500,19000,42900" +st "hAddr : (ahbAddressBitNb-1 downto 0)" +ju 2 +blo "19000,42700" +tm "WireNameMgr" +) +) +) +*68 (Net +uid 19682,0 +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 10 +suid 81,0 +) +declText (MLText +uid 19683,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,109300,27300,110300" +st "hAddr : unsigned(ahbAddressBitNb-1 downto 0)" +) +) +*69 (PortIoIn +uid 19684,0 +shape (CompositeShape +uid 19685,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19686,0 +sl 0 +ro 270 +xt "20000,5625,21500,6375" +) +(Line +uid 19687,0 +sl 0 +ro 270 +xt "21500,6000,22000,6000" +pts [ +"21500,6000" +"22000,6000" +] +) +] +) +tg (WTG +uid 19688,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19689,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "12200,5500,19000,6900" +st "hReset_n" +ju 2 +blo "19000,6700" +tm "WireNameMgr" +) +) +) +*70 (Net +uid 19696,0 +decl (Decl +n "hReset_n" +t "std_ulogic" +o 11 +suid 82,0 +) +declText (MLText +uid 19697,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,110200,15300,111200" +st "hReset_n : std_ulogic" +) +) +*71 (PortIoIn +uid 19698,0 +shape (CompositeShape +uid 19699,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19700,0 +sl 0 +ro 270 +xt "20000,43625,21500,44375" +) +(Line +uid 19701,0 +sl 0 +ro 270 +xt "21500,44000,22000,44000" +pts [ +"21500,44000" +"22000,44000" +] +) +] +) +tg (WTG +uid 19702,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19703,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-7200,43500,19000,44900" +st "hWData : (ahbDataBitNb-1 downto 0)" +ju 2 +blo "19000,44700" +tm "WireNameMgr" +) +) +) +*72 (Net +uid 19710,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 12 +suid 83,0 +) +declText (MLText +uid 19711,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,111100,30100,112100" +st "hWData : std_ulogic_vector(ahbDataBitNb-1 downto 0)" +) +) +*73 (PortIoIn +uid 19712,0 +shape (CompositeShape +uid 19713,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19714,0 +sl 0 +ro 270 +xt "20000,45625,21500,46375" +) +(Line +uid 19715,0 +sl 0 +ro 270 +xt "21500,46000,22000,46000" +pts [ +"21500,46000" +"22000,46000" +] +) +] +) +tg (WTG +uid 19716,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19717,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-6900,45500,19000,46900" +st "hTrans : (ahbTransBitNb-1 downto 0)" +ju 2 +blo "19000,46700" +tm "WireNameMgr" +) +) +) +*74 (Net +uid 19724,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 13 +suid 84,0 +) +declText (MLText +uid 19725,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,112000,29900,113000" +st "hTrans : std_ulogic_vector(ahbTransBitNb-1 downto 0)" +) +) +*75 (PortIoIn +uid 19726,0 +shape (CompositeShape +uid 19727,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19728,0 +sl 0 +ro 270 +xt "20000,47625,21500,48375" +) +(Line +uid 19729,0 +sl 0 +ro 270 +xt "21500,48000,22000,48000" +pts [ +"21500,48000" +"22000,48000" +] +) +] +) +tg (WTG +uid 19730,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19731,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "14000,47500,19000,48900" +st "hWrite" +ju 2 +blo "19000,48700" +tm "WireNameMgr" +) +) +) +*76 (Net +uid 19738,0 +decl (Decl +n "hWrite" +t "std_ulogic" +o 14 +suid 85,0 +) +declText (MLText +uid 19739,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,112900,14700,113900" +st "hWrite : std_ulogic" +) +) +*77 (PortIoIn +uid 19740,0 +shape (CompositeShape +uid 19741,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19742,0 +sl 0 +ro 270 +xt "20000,49625,21500,50375" +) +(Line +uid 19743,0 +sl 0 +ro 270 +xt "21500,50000,22000,50000" +pts [ +"21500,50000" +"22000,50000" +] +) +] +) +tg (WTG +uid 19744,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19745,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "15500,49500,19000,50900" +st "hSel" +ju 2 +blo "19000,50700" +tm "WireNameMgr" +) +) +) +*78 (Net +uid 19752,0 +decl (Decl +n "hSel" +t "std_ulogic" +o 15 +suid 86,0 +) +declText (MLText +uid 19753,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,113800,14400,114800" +st "hSel : std_ulogic" +) +) +*79 (PortIoOut +uid 19754,0 +shape (CompositeShape +uid 19755,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19756,0 +sl 0 +ro 90 +xt "20000,23625,21500,24375" +) +(Line +uid 19757,0 +sl 0 +ro 90 +xt "21500,24000,22000,24000" +pts [ +"22000,24000" +"21500,24000" +] +) +] +) +tg (WTG +uid 19758,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19759,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13500,23300,19000,24700" +st "hReady" +ju 2 +blo "19000,24500" +tm "WireNameMgr" +) +) +) +*80 (Net +uid 19766,0 +decl (Decl +n "hReady" +t "std_ulogic" +o 16 +suid 87,0 +) +declText (MLText +uid 19767,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,114700,15200,115700" +st "hReady : std_ulogic" +) +) +*81 (PortIoOut +uid 19768,0 +shape (CompositeShape +uid 19769,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19770,0 +sl 0 +ro 90 +xt "20000,25625,21500,26375" +) +(Line +uid 19771,0 +sl 0 +ro 90 +xt "21500,26000,22000,26000" +pts [ +"22000,26000" +"21500,26000" +] +) +] +) +tg (WTG +uid 19772,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19773,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "14300,25300,19000,26700" +st "hResp" +ju 2 +blo "19000,26500" +tm "WireNameMgr" +) +) +) +*82 (Net +uid 19780,0 +decl (Decl +n "hResp" +t "std_ulogic" +o 17 +suid 88,0 +) +declText (MLText +uid 19781,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,115600,14900,116600" +st "hResp : std_ulogic" +) +) +*83 (HdlText +uid 20266,0 +optionalChildren [ +*84 (EmbeddedText +uid 20271,0 +commentText (CommentText +uid 20272,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 20273,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "30000,1000,46000,9000" +) +oxt "0,0,18000,5000" +text (MLText +uid 20274,0 +va (VaSet +) +xt "30200,1200,43900,4800" +st " +clock<= hClk; + +reset <= not hReset_n; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 20267,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "30000,0,46000,10000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 20268,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 20269,0 +va (VaSet +) +xt "30400,10000,33700,11200" +st "eb11" +blo "30400,11000" +tm "HdlTextNameMgr" +) +*86 (Text +uid 20270,0 +va (VaSet +) +xt "30400,11000,32500,12200" +st "11" +blo "30400,12000" +tm "HdlTextNumberMgr" +) +] +) +) +*87 (Net +uid 20553,0 +decl (Decl +n "run_int" +t "std_ulogic" +o 39 +suid 90,0 +) +declText (MLText +uid 20554,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,139000,17800,140000" +st "SIGNAL run_int : std_ulogic" +) +) +*88 (Net +uid 20563,0 +decl (Decl +n "interpolateLin_int" +t "std_ulogic" +o 40 +suid 92,0 +) +declText (MLText +uid 20564,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,139900,18600,140900" +st "SIGNAL interpolateLin_int : std_ulogic" +) +) +*89 (SaComponent +uid 21149,0 +optionalChildren [ +*90 (CptPort +uid 21109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21110,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,41625,94750,42375" +) +tg (CPTG +uid 21111,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21112,0 +va (VaSet +) +xt "90700,41400,93000,42600" +st "run" +ju 2 +blo "93000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*91 (CptPort +uid 21113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21114,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,41625,78000,42375" +) +tg (CPTG +uid 21115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21116,0 +va (VaSet +) +xt "79000,41400,83000,42600" +st "dataIn" +blo "79000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*92 (CptPort +uid 21117,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21118,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,47625,94750,48375" +) +tg (CPTG +uid 21119,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21120,0 +va (VaSet +) +xt "84500,47400,93000,48600" +st "updatePattern" +ju 2 +blo "93000,48400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*93 (CptPort +uid 21121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21122,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,43625,78000,44375" +) +tg (CPTG +uid 21123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21124,0 +va (VaSet +) +xt "79000,43400,83800,44600" +st "dataOut" +blo "79000,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*94 (CptPort +uid 21125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,47625,78000,48375" +) +tg (CPTG +uid 21127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21128,0 +va (VaSet +) +xt "79000,47400,82100,48600" +st "write" +blo "79000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*95 (CptPort +uid 21129,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21130,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,49625,78000,50375" +) +tg (CPTG +uid 21131,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21132,0 +va (VaSet +) +xt "79000,49400,80900,50600" +st "en" +blo "79000,50400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*96 (CptPort +uid 21133,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21134,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,53625,78000,54375" +) +tg (CPTG +uid 21135,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21136,0 +va (VaSet +) +xt "79000,53400,82400,54600" +st "clock" +blo "79000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*97 (CptPort +uid 21137,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21138,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,55625,78000,56375" +) +tg (CPTG +uid 21139,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21140,0 +va (VaSet +) +xt "79000,55400,82300,56600" +st "reset" +blo "79000,56400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*98 (CptPort +uid 21141,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21142,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,43625,94750,44375" +) +tg (CPTG +uid 21143,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21144,0 +va (VaSet +) +xt "83100,43400,93000,44600" +st "interpolateLinear" +ju 2 +blo "93000,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*99 (CptPort +uid 21145,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21146,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,49625,94750,50375" +) +tg (CPTG +uid 21147,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21148,0 +va (VaSet +) +xt "85900,49400,93000,50600" +st "patternSize" +ju 2 +blo "93000,50400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 downto 0)" +o 10 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 21150,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,38000,94000,58000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 21151,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +uid 21152,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,57800,87000,59000" +st "SystemOnChip" +blo "78600,58800" +tm "BdLibraryNameMgr" +) +*101 (Text +uid 21153,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,58700,88400,59900" +st "periphControlReg" +blo "78600,59700" +tm "CptNameMgr" +) +*102 (Text +uid 21154,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,59600,81600,60800" +st "I_ctl" +blo "78600,60600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21155,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21156,0 +text (MLText +uid 21157,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,61600,102300,63600" +st "dataBitNb = dataBitNb ( positive ) +patternSizeBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*103 (SaComponent +uid 21186,0 +optionalChildren [ +*104 (CptPort +uid 21158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,69625,94750,70375" +) +tg (CPTG +uid 21160,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21161,0 +va (VaSet +) +xt "85000,69400,93000,70600" +st "updatePeriod" +ju 2 +blo "93000,70400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*105 (CptPort +uid 21162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21163,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,69625,78000,70375" +) +tg (CPTG +uid 21164,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21165,0 +va (VaSet +) +xt "79000,69400,83000,70600" +st "dataIn" +blo "79000,70400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*106 (CptPort +uid 21166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21167,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,71625,78000,72375" +) +tg (CPTG +uid 21168,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21169,0 +va (VaSet +) +xt "79000,71400,83800,72600" +st "dataOut" +blo "79000,72400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*107 (CptPort +uid 21170,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21171,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,77625,78000,78375" +) +tg (CPTG +uid 21172,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21173,0 +va (VaSet +) +xt "79000,77400,80900,78600" +st "en" +blo "79000,78400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*108 (CptPort +uid 21174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,81625,78000,82375" +) +tg (CPTG +uid 21176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21177,0 +va (VaSet +) +xt "79000,81400,82400,82600" +st "clock" +blo "79000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*109 (CptPort +uid 21178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,83625,78000,84375" +) +tg (CPTG +uid 21180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21181,0 +va (VaSet +) +xt "79000,83400,82300,84600" +st "reset" +blo "79000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 7,0 +) +) +) +*110 (CptPort +uid 21182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21183,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,75625,78000,76375" +) +tg (CPTG +uid 21184,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21185,0 +va (VaSet +) +xt "79000,75400,82100,76600" +st "write" +blo "79000,76400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 7 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 21187,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,66000,94000,86000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 21188,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +uid 21189,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,85800,87000,87000" +st "SystemOnChip" +blo "78600,86800" +tm "BdLibraryNameMgr" +) +*112 (Text +uid 21190,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,86700,87800,87900" +st "periphSpeedReg" +blo "78600,87700" +tm "CptNameMgr" +) +*113 (Text +uid 21191,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,87600,83200,88800" +st "I_speed" +blo "78600,88600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21192,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21193,0 +text (MLText +uid 21194,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,89600,102400,91600" +st "dataBitNb = dataBitNb ( positive ) +updatePeriodBitNb = updatePeriodBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*114 (SaComponent +uid 21219,0 +optionalChildren [ +*115 (CptPort +uid 21195,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21196,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,71625,46750,72375" +) +tg (CPTG +uid 21197,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21198,0 +va (VaSet +) +xt "38400,71400,45000,72600" +st "selControl" +ju 2 +blo "45000,72400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selControl" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*116 (CptPort +uid 21199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21200,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29250,71625,30000,72375" +) +tg (CPTG +uid 21201,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21202,0 +va (VaSet +) +xt "31000,71400,33900,72600" +st "addr" +blo "31000,72400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*117 (CptPort +uid 21203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21204,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,73625,46750,74375" +) +tg (CPTG +uid 21205,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21206,0 +va (VaSet +) +xt "39700,73400,45000,74600" +st "selSpeed" +ju 2 +blo "45000,74400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*118 (CptPort +uid 21207,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21208,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,77625,46750,78375" +) +tg (CPTG +uid 21209,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21210,0 +va (VaSet +) +xt "42100,77400,45000,78600" +st "selX" +ju 2 +blo "45000,78400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selX" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*119 (CptPort +uid 21211,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21212,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,79625,46750,80375" +) +tg (CPTG +uid 21213,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21214,0 +va (VaSet +) +xt "42100,79400,45000,80600" +st "selY" +ju 2 +blo "45000,80400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selY" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*120 (CptPort +uid 21215,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21216,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,81625,46750,82375" +) +tg (CPTG +uid 21217,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21218,0 +va (VaSet +) +xt "42100,81400,45000,82600" +st "selZ" +ju 2 +blo "45000,82400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selZ" +t "std_ulogic" +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 21220,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "30000,68000,46000,86000" +) +oxt "34000,9000,50000,27000" +ttg (MlTextGroup +uid 21221,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*121 (Text +uid 21222,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,85800,39000,87000" +st "SystemOnChip" +blo "30600,86800" +tm "BdLibraryNameMgr" +) +*122 (Text +uid 21223,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,86700,43500,87900" +st "periphAddressDecoder" +blo "30600,87700" +tm "CptNameMgr" +) +*123 (Text +uid 21224,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,87600,36200,88800" +st "I_decoder" +blo "30600,88600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21225,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21226,0 +text (MLText +uid 21227,0 +va (VaSet +font "Verdana,8,0" +) +xt "30000,89600,50000,90600" +st "addressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*124 (SaComponent +uid 21252,0 +optionalChildren [ +*125 (CptPort +uid 21228,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21229,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,109625,78000,110375" +) +tg (CPTG +uid 21230,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21231,0 +va (VaSet +) +xt "79000,109400,80900,110600" +st "en" +blo "79000,110400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*126 (CptPort +uid 21232,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21233,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,113625,78000,114375" +) +tg (CPTG +uid 21234,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21235,0 +va (VaSet +) +xt "79000,113400,82400,114600" +st "clock" +blo "79000,114400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*127 (CptPort +uid 21236,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21237,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,115625,78000,116375" +) +tg (CPTG +uid 21238,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21239,0 +va (VaSet +) +xt "79000,115400,82300,116600" +st "reset" +blo "79000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*128 (CptPort +uid 21240,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21241,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,107625,78000,108375" +) +tg (CPTG +uid 21242,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21243,0 +va (VaSet +) +xt "79000,107400,85500,108600" +st "updateMem" +blo "79000,108400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*129 (CptPort +uid 21244,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21245,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,105625,94750,106375" +) +tg (CPTG +uid 21246,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21247,0 +va (VaSet +) +xt "90100,105400,93000,106600" +st "addr" +ju 2 +blo "93000,106400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*130 (CptPort +uid 21248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21249,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,105625,78000,106375" +) +tg (CPTG +uid 21250,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21251,0 +va (VaSet +) +xt "79000,105400,86100,106600" +st "patternSize" +blo "79000,106400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 21253,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,102000,94000,118000" +) +oxt "38000,13000,54000,29000" +ttg (MlTextGroup +uid 21254,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +uid 21255,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,117800,87000,119000" +st "SystemOnChip" +blo "78600,118800" +tm "BdLibraryNameMgr" +) +*132 (Text +uid 21256,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,118700,93200,119900" +st "blockRAMAddressCounter" +blo "78600,119700" +tm "CptNameMgr" +) +*133 (Text +uid 21257,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,119600,83100,120800" +st "I_addry" +blo "78600,120600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21258,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21259,0 +text (MLText +uid 21260,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,121600,100900,122600" +st "addressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*134 (SaComponent +uid 21297,0 +optionalChildren [ +*135 (CptPort +uid 21261,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21262,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,133625,94750,134375" +) +tg (CPTG +uid 21263,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21264,0 +va (VaSet +) +xt "88600,133400,93000,134600" +st "memWr" +ju 2 +blo "93000,134400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*136 (CptPort +uid 21265,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21266,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,129625,78000,130375" +) +tg (CPTG +uid 21267,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21268,0 +va (VaSet +) +xt "79000,129400,81200,130600" +st "sel" +blo "79000,130400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*137 (CptPort +uid 21269,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21270,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,135625,94750,136375" +) +tg (CPTG +uid 21271,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21272,0 +va (VaSet +) +xt "88600,135400,93000,136600" +st "memEn" +ju 2 +blo "93000,136400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*138 (CptPort +uid 21273,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21274,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,133625,78000,134375" +) +tg (CPTG +uid 21275,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21276,0 +va (VaSet +) +xt "79000,133400,83100,134600" +st "update" +blo "79000,134400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*139 (CptPort +uid 21277,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21278,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,131625,78000,132375" +) +tg (CPTG +uid 21279,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21280,0 +va (VaSet +) +xt "79000,131400,80800,132600" +st "wr" +blo "79000,132400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*140 (CptPort +uid 21281,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21282,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,129625,94750,130375" +) +tg (CPTG +uid 21283,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21284,0 +va (VaSet +) +xt "88600,129400,93000,130600" +st "cntIncr" +ju 2 +blo "93000,130400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*141 (CptPort +uid 21285,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21286,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,135625,78000,136375" +) +tg (CPTG +uid 21287,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21288,0 +va (VaSet +) +xt "79000,135400,85300,136600" +st "newSample" +blo "79000,136400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*142 (CptPort +uid 21289,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21290,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,139625,78000,140375" +) +tg (CPTG +uid 21291,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21292,0 +va (VaSet +) +xt "79000,139400,82400,140600" +st "clock" +blo "79000,140400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*143 (CptPort +uid 21293,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21294,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,141625,78000,142375" +) +tg (CPTG +uid 21295,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21296,0 +va (VaSet +) +xt "79000,141400,82300,142600" +st "reset" +blo "79000,142400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 21298,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,126000,94000,144000" +) +oxt "32000,8000,48000,26000" +ttg (MlTextGroup +uid 21299,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*144 (Text +uid 21300,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,143800,87000,145000" +st "SystemOnChip" +blo "78600,144800" +tm "BdLibraryNameMgr" +) +*145 (Text +uid 21301,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,144700,88300,145900" +st "blockRAMControl" +blo "78600,145700" +tm "CptNameMgr" +) +*146 (Text +uid 21302,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,145600,82200,146800" +st "I_ctly" +blo "78600,146600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21303,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21304,0 +text (MLText +uid 21305,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,139800,78000,139800" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*147 (SaComponent +uid 21330,0 +optionalChildren [ +*148 (CptPort +uid 21306,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21307,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,159625,78000,160375" +) +tg (CPTG +uid 21308,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21309,0 +va (VaSet +) +xt "79000,159400,80900,160600" +st "en" +blo "79000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*149 (CptPort +uid 21310,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21311,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,163625,78000,164375" +) +tg (CPTG +uid 21312,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21313,0 +va (VaSet +) +xt "79000,163400,82400,164600" +st "clock" +blo "79000,164400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*150 (CptPort +uid 21314,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21315,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,165625,78000,166375" +) +tg (CPTG +uid 21316,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21317,0 +va (VaSet +) +xt "79000,165400,82300,166600" +st "reset" +blo "79000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*151 (CptPort +uid 21318,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21319,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,157625,78000,158375" +) +tg (CPTG +uid 21320,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21321,0 +va (VaSet +) +xt "79000,157400,85500,158600" +st "updateMem" +blo "79000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*152 (CptPort +uid 21322,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21323,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,155625,94750,156375" +) +tg (CPTG +uid 21324,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21325,0 +va (VaSet +) +xt "90100,155400,93000,156600" +st "addr" +ju 2 +blo "93000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*153 (CptPort +uid 21326,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21327,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,155625,78000,156375" +) +tg (CPTG +uid 21328,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21329,0 +va (VaSet +) +xt "79000,155400,86100,156600" +st "patternSize" +blo "79000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 21331,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,152000,94000,168000" +) +oxt "38000,13000,54000,29000" +ttg (MlTextGroup +uid 21332,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*154 (Text +uid 21333,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,167800,87000,169000" +st "SystemOnChip" +blo "78600,168800" +tm "BdLibraryNameMgr" +) +*155 (Text +uid 21334,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,168700,93200,169900" +st "blockRAMAddressCounter" +blo "78600,169700" +tm "CptNameMgr" +) +*156 (Text +uid 21335,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,169600,83100,170800" +st "I_addrx" +blo "78600,170600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21336,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21337,0 +text (MLText +uid 21338,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,171600,100900,172600" +st "addressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*157 (SaComponent +uid 21375,0 +optionalChildren [ +*158 (CptPort +uid 21339,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21340,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,183625,94750,184375" +) +tg (CPTG +uid 21341,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21342,0 +va (VaSet +) +xt "88600,183400,93000,184600" +st "memWr" +ju 2 +blo "93000,184400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*159 (CptPort +uid 21343,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21344,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,179625,78000,180375" +) +tg (CPTG +uid 21345,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21346,0 +va (VaSet +) +xt "79000,179400,81200,180600" +st "sel" +blo "79000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*160 (CptPort +uid 21347,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21348,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,185625,94750,186375" +) +tg (CPTG +uid 21349,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21350,0 +va (VaSet +) +xt "88600,185400,93000,186600" +st "memEn" +ju 2 +blo "93000,186400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*161 (CptPort +uid 21351,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21352,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,183625,78000,184375" +) +tg (CPTG +uid 21353,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21354,0 +va (VaSet +) +xt "79000,183400,83100,184600" +st "update" +blo "79000,184400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*162 (CptPort +uid 21355,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21356,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,181625,78000,182375" +) +tg (CPTG +uid 21357,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21358,0 +va (VaSet +) +xt "79000,181400,80800,182600" +st "wr" +blo "79000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*163 (CptPort +uid 21359,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21360,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,179625,94750,180375" +) +tg (CPTG +uid 21361,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21362,0 +va (VaSet +) +xt "88600,179400,93000,180600" +st "cntIncr" +ju 2 +blo "93000,180400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*164 (CptPort +uid 21363,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21364,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,185625,78000,186375" +) +tg (CPTG +uid 21365,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21366,0 +va (VaSet +) +xt "79000,185400,85300,186600" +st "newSample" +blo "79000,186400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*165 (CptPort +uid 21367,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21368,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,189625,78000,190375" +) +tg (CPTG +uid 21369,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21370,0 +va (VaSet +) +xt "79000,189400,82400,190600" +st "clock" +blo "79000,190400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*166 (CptPort +uid 21371,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21372,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,191625,78000,192375" +) +tg (CPTG +uid 21373,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21374,0 +va (VaSet +) +xt "79000,191400,82300,192600" +st "reset" +blo "79000,192400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 21376,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,176000,94000,194000" +) +oxt "32000,8000,48000,26000" +ttg (MlTextGroup +uid 21377,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*167 (Text +uid 21378,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,193800,87000,195000" +st "SystemOnChip" +blo "78600,194800" +tm "BdLibraryNameMgr" +) +*168 (Text +uid 21379,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,194700,88300,195900" +st "blockRAMControl" +blo "78600,195700" +tm "CptNameMgr" +) +*169 (Text +uid 21380,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,195600,82200,196800" +st "I_ctlx" +blo "78600,196600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21381,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21382,0 +text (MLText +uid 21383,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,189800,78000,189800" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*170 (SaComponent +uid 21412,0 +optionalChildren [ +*171 (CptPort +uid 21384,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21385,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,153625,110000,154375" +) +tg (CPTG +uid 21386,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21387,0 +va (VaSet +) +xt "111000,153400,115000,154600" +st "dataIn" +blo "111000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*172 (CptPort +uid 21388,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21389,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "126000,153625,126750,154375" +) +tg (CPTG +uid 21390,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21391,0 +va (VaSet +) +xt "120200,153400,125000,154600" +st "dataOut" +ju 2 +blo "125000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*173 (CptPort +uid 21392,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21393,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,161625,110000,162375" +) +tg (CPTG +uid 21394,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21395,0 +va (VaSet +) +xt "111000,161400,112900,162600" +st "en" +blo "111000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*174 (CptPort +uid 21396,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21397,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,165625,110000,166375" +) +tg (CPTG +uid 21398,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21399,0 +va (VaSet +) +xt "111000,165400,114400,166600" +st "clock" +blo "111000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*175 (CptPort +uid 21400,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21401,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,167625,110000,168375" +) +tg (CPTG +uid 21402,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21403,0 +va (VaSet +) +xt "111000,167400,114300,168600" +st "reset" +blo "111000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*176 (CptPort +uid 21404,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21405,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,159625,110000,160375" +) +tg (CPTG +uid 21406,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21407,0 +va (VaSet +) +xt "111000,159400,114100,160600" +st "write" +blo "111000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*177 (CptPort +uid 21408,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21409,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,155625,110000,156375" +) +tg (CPTG +uid 21410,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21411,0 +va (VaSet +) +xt "111000,155400,113900,156600" +st "addr" +blo "111000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 21413,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "110000,150000,126000,170000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 21414,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*178 (Text +uid 21415,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,169800,119000,171000" +st "SystemOnChip" +blo "110600,170800" +tm "BdLibraryNameMgr" +) +*179 (Text +uid 21416,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,170700,116100,171900" +st "blockRAM" +blo "110600,171700" +tm "CptNameMgr" +) +*180 (Text +uid 21417,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,171600,114800,172800" +st "I_ramx" +blo "110600,172600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21418,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21419,0 +text (MLText +uid 21420,0 +va (VaSet +font "Verdana,8,0" +) +xt "110000,173600,137300,176600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = signalBitNb ( positive ) +initFileSpec = \"$SIMULATION_DIR/ramYInit.txt\" ( string ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR/ramYInit.txt\"" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*181 (SaComponent +uid 21449,0 +optionalChildren [ +*182 (CptPort +uid 21421,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21422,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,115625,110000,116375" +) +tg (CPTG +uid 21423,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21424,0 +va (VaSet +) +xt "111000,115400,115000,116600" +st "dataIn" +blo "111000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*183 (CptPort +uid 21425,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21426,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "126000,115625,126750,116375" +) +tg (CPTG +uid 21427,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21428,0 +va (VaSet +) +xt "120200,115400,125000,116600" +st "dataOut" +ju 2 +blo "125000,116400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*184 (CptPort +uid 21429,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21430,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,123625,110000,124375" +) +tg (CPTG +uid 21431,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21432,0 +va (VaSet +) +xt "111000,123400,112900,124600" +st "en" +blo "111000,124400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*185 (CptPort +uid 21433,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21434,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,127625,110000,128375" +) +tg (CPTG +uid 21435,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21436,0 +va (VaSet +) +xt "111000,127400,114400,128600" +st "clock" +blo "111000,128400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*186 (CptPort +uid 21437,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21438,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,129625,110000,130375" +) +tg (CPTG +uid 21439,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21440,0 +va (VaSet +) +xt "111000,129400,114300,130600" +st "reset" +blo "111000,130400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*187 (CptPort +uid 21441,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21442,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,121625,110000,122375" +) +tg (CPTG +uid 21443,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21444,0 +va (VaSet +) +xt "111000,121400,114100,122600" +st "write" +blo "111000,122400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*188 (CptPort +uid 21445,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21446,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,117625,110000,118375" +) +tg (CPTG +uid 21447,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21448,0 +va (VaSet +) +xt "111000,117400,113900,118600" +st "addr" +blo "111000,118400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 21450,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "110000,112000,126000,132000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 21451,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*189 (Text +uid 21452,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,131800,119000,133000" +st "SystemOnChip" +blo "110600,132800" +tm "BdLibraryNameMgr" +) +*190 (Text +uid 21453,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,132700,116100,133900" +st "blockRAM" +blo "110600,133700" +tm "CptNameMgr" +) +*191 (Text +uid 21454,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,133600,114800,134800" +st "I_ramy" +blo "110600,134600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21455,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21456,0 +text (MLText +uid 21457,0 +va (VaSet +font "Verdana,8,0" +) +xt "110000,135600,137300,138600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = signalBitNb ( positive ) +initFileSpec = \"$SIMULATION_DIR/ramXInit.txt\" ( string ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR/ramXInit.txt\"" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*192 (Wire +uid 73,0 +shape (OrthoPolyLine +uid 74,0 +va (VaSet +vasetType 3 +) +xt "74000,54000,77250,54000" +pts [ +"74000,54000" +"77250,54000" +] +) +end &96 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 77,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 78,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,52600,77800,54000" +st "clock" +blo "74000,53800" +tm "WireNameMgr" +) +) +on &12 +) +*193 (Wire +uid 157,0 +shape (OrthoPolyLine +uid 158,0 +va (VaSet +vasetType 3 +) +xt "74000,56000,77250,56000" +pts [ +"74000,56000" +"77250,56000" +] +) +end &97 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 161,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 162,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,54600,78100,56000" +st "reset" +blo "74000,55800" +tm "WireNameMgr" +) +) +on &13 +) +*194 (Wire +uid 1057,0 +shape (OrthoPolyLine +uid 1058,0 +va (VaSet +vasetType 3 +) +xt "46750,74000,77250,78000" +pts [ +"46750,74000" +"58000,74000" +"58000,78000" +"77250,78000" +] +) +start &117 +end &107 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1062,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,76600,76600,78000" +st "selSpeed" +blo "70000,77800" +tm "WireNameMgr" +) +) +on &16 +) +*195 (Wire +uid 1065,0 +shape (OrthoPolyLine +uid 1066,0 +va (VaSet +vasetType 3 +) +xt "46750,78000,77250,180000" +pts [ +"46750,78000" +"56000,78000" +"56000,180000" +"77250,180000" +] +) +start &118 +end &159 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,178600,73400,180000" +st "selX" +blo "70000,179800" +tm "WireNameMgr" +) +) +on &17 +) +*196 (Wire +uid 1073,0 +shape (OrthoPolyLine +uid 1074,0 +va (VaSet +vasetType 3 +) +xt "46750,80000,77250,130000" +pts [ +"46750,80000" +"54000,80000" +"54000,130000" +"77250,130000" +] +) +start &119 +end &136 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1077,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1078,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,128600,73300,130000" +st "selY" +blo "70000,129800" +tm "WireNameMgr" +) +) +on &18 +) +*197 (Wire +uid 1332,0 +shape (OrthoPolyLine +uid 1333,0 +va (VaSet +vasetType 3 +) +xt "46750,50000,77250,72000" +pts [ +"46750,72000" +"58000,72000" +"58000,50000" +"77250,50000" +] +) +start &115 +end &95 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1338,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1339,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,48600,78000,50000" +st "selControl" +blo "70000,49800" +tm "WireNameMgr" +) +) +on &15 +) +*198 (Wire +uid 1340,0 +shape (OrthoPolyLine +uid 1341,0 +va (VaSet +vasetType 3 +) +xt "70000,48000,77250,48000" +pts [ +"70000,48000" +"77250,48000" +] +) +end &94 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1347,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,46600,74000,48000" +st "write" +blo "70000,47800" +tm "WireNameMgr" +) +) +on &57 +) +*199 (Wire +uid 1350,0 +shape (OrthoPolyLine +uid 1351,0 +va (VaSet +vasetType 3 +) +xt "104000,42000,109250,42000" +pts [ +"104000,42000" +"109250,42000" +] +) +end &43 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1354,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1355,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,40600,108900,42000" +st "run" +blo "106000,41800" +tm "WireNameMgr" +) +) +on &19 +) +*200 (Wire +uid 1358,0 +shape (OrthoPolyLine +uid 1359,0 +va (VaSet +vasetType 3 +) +xt "94750,48000,102000,48000" +pts [ +"94750,48000" +"102000,48000" +] +) +start &92 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1363,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,46600,107550,48000" +st "updatePattern" +blo "96750,47800" +tm "WireNameMgr" +) +) +on &20 +) +*201 (Wire +uid 1472,0 +shape (OrthoPolyLine +uid 1473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,50000,102000,50000" +pts [ +"94750,50000" +"102000,50000" +] +) +start &99 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1477,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,48600,105650,50000" +st "patternSize" +blo "96750,49800" +tm "WireNameMgr" +) +) +on &21 +) +*202 (Wire +uid 1526,0 +optionalChildren [ +*203 (BdJunction +uid 1538,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1539,0 +va (VaSet +vasetType 1 +) +xt "61600,41600,62400,42400" +radius 400 +) +) +*204 (BdJunction +uid 1736,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1737,0 +va (VaSet +vasetType 1 +) +xt "61600,69600,62400,70400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1527,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "46000,42000,62000,86000" +pts [ +"62000,86000" +"62000,42000" +"46000,42000" +] +) +start &52 +end &47 +sat 1 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1532,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1533,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,40600,51000,42000" +st "dataIn" +blo "46000,41800" +tm "WireNameMgr" +) +) +on &46 +) +*205 (Wire +uid 1534,0 +shape (OrthoPolyLine +uid 1535,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,42000,77250,42000" +pts [ +"62000,42000" +"77250,42000" +] +) +start &203 +end &91 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1536,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1537,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,40600,76000,42000" +st "dataIn" +blo "71000,41800" +tm "WireNameMgr" +) +) +on &46 +) +*206 (Wire +uid 1583,0 +optionalChildren [ +*207 (BdJunction +uid 2856,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2857,0 +va (VaSet +vasetType 1 +) +xt "65600,71600,66400,72400" +radius 400 +) +) +*208 (BdJunction +uid 2864,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2865,0 +va (VaSet +vasetType 1 +) +xt "65600,43600,66400,44400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1584,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "46000,22000,66000,76000" +pts [ +"66000,76000" +"66000,22000" +"46000,22000" +] +) +end &58 +sat 16 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1588,0 +va (VaSet +font "Verdana,12,0" +) +xt "49000,20600,55000,22000" +st "dataOut" +blo "49000,21800" +tm "WireNameMgr" +) +) +on &22 +) +*209 (Wire +uid 1732,0 +shape (OrthoPolyLine +uid 1733,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,70000,77250,70000" +pts [ +"62000,70000" +"77250,70000" +] +) +start &204 +end &105 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1735,0 +va (VaSet +font "Verdana,12,0" +) +xt "72250,68600,77250,70000" +st "dataIn" +blo "72250,69800" +tm "WireNameMgr" +) +) +on &46 +) +*210 (Wire +uid 1738,0 +shape (OrthoPolyLine +uid 1739,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66000,72000,77250,72000" +pts [ +"66000,72000" +"77250,72000" +] +) +start &207 +end &106 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1740,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1741,0 +va (VaSet +font "Verdana,12,0" +) +xt "71250,70600,77250,72000" +st "dataOut" +blo "71250,71800" +tm "WireNameMgr" +) +) +on &22 +) +*211 (Wire +uid 1744,0 +shape (OrthoPolyLine +uid 1745,0 +va (VaSet +vasetType 3 +) +xt "74000,84000,77250,84000" +pts [ +"74000,84000" +"77250,84000" +] +) +end &109 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1751,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,82600,78100,84000" +st "reset" +blo "74000,83800" +tm "WireNameMgr" +) +) +on &13 +) +*212 (Wire +uid 1752,0 +shape (OrthoPolyLine +uid 1753,0 +va (VaSet +vasetType 3 +) +xt "74000,82000,77250,82000" +pts [ +"74000,82000" +"77250,82000" +] +) +end &108 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1758,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1759,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,80600,77800,82000" +st "clock" +blo "74000,81800" +tm "WireNameMgr" +) +) +on &12 +) +*213 (Wire +uid 1778,0 +shape (OrthoPolyLine +uid 1779,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,70000,109250,70000" +pts [ +"94750,70000" +"109250,70000" +] +) +start &104 +end &44 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1782,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1783,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,68600,106100,70000" +st "updatePeriod" +blo "96000,69800" +tm "WireNameMgr" +) +) +on &23 +) +*214 (Wire +uid 2478,0 +shape (OrthoPolyLine +uid 2479,0 +va (VaSet +vasetType 3 +) +xt "106000,166000,109250,166000" +pts [ +"106000,166000" +"109250,166000" +] +) +end &174 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2485,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,164600,109800,166000" +st "clock" +blo "106000,165800" +tm "WireNameMgr" +) +) +on &12 +) +*215 (Wire +uid 2486,0 +shape (OrthoPolyLine +uid 2487,0 +va (VaSet +vasetType 3 +) +xt "106000,168000,109250,168000" +pts [ +"106000,168000" +"109250,168000" +] +) +end &175 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2492,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2493,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,166600,110100,168000" +st "reset" +blo "106000,167800" +tm "WireNameMgr" +) +) +on &13 +) +*216 (Wire +uid 2638,0 +shape (OrthoPolyLine +uid 2639,0 +va (VaSet +vasetType 3 +) +xt "94750,160000,109250,184000" +pts [ +"94750,184000" +"102000,184000" +"102000,160000" +"109250,160000" +] +) +start &158 +end &176 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2640,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2641,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,158600,109400,160000" +st "memWrX" +blo "103000,159800" +tm "WireNameMgr" +) +) +on &26 +) +*217 (Wire +uid 2644,0 +shape (OrthoPolyLine +uid 2645,0 +va (VaSet +vasetType 3 +) +xt "94750,162000,109250,186000" +pts [ +"94750,186000" +"104000,186000" +"104000,162000" +"109250,162000" +] +) +start &160 +end &173 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2646,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2647,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,160600,109200,162000" +st "memEnX" +blo "103000,161800" +tm "WireNameMgr" +) +) +on &27 +) +*218 (Wire +uid 2648,0 +shape (OrthoPolyLine +uid 2649,0 +va (VaSet +vasetType 3 +) +xt "70000,184000,77250,184000" +pts [ +"70000,184000" +"77250,184000" +] +) +end &161 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2654,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2655,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,182600,79800,184000" +st "updatePattern" +blo "69000,183800" +tm "WireNameMgr" +) +) +on &20 +) +*219 (Wire +uid 2772,0 +shape (OrthoPolyLine +uid 2773,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,156000,109250,156000" +pts [ +"94750,156000" +"109250,156000" +] +) +start &152 +end &177 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2775,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,154600,109500,156000" +st "addrX" +blo "105000,155800" +tm "WireNameMgr" +) +) +on &24 +) +*220 (Wire +uid 2778,0 +shape (OrthoPolyLine +uid 2779,0 +va (VaSet +vasetType 3 +) +xt "74000,166000,77250,166000" +pts [ +"74000,166000" +"77250,166000" +] +) +end &150 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2785,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,164600,78100,166000" +st "reset" +blo "74000,165800" +tm "WireNameMgr" +) +) +on &13 +) +*221 (Wire +uid 2786,0 +shape (OrthoPolyLine +uid 2787,0 +va (VaSet +vasetType 3 +) +xt "74000,164000,77250,164000" +pts [ +"74000,164000" +"77250,164000" +] +) +end &149 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2793,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,162600,77800,164000" +st "clock" +blo "74000,163800" +tm "WireNameMgr" +) +) +on &12 +) +*222 (Wire +uid 2844,0 +shape (OrthoPolyLine +uid 2845,0 +va (VaSet +vasetType 3 +) +xt "72000,160000,98000,180000" +pts [ +"94750,180000" +"98000,180000" +"98000,174000" +"72000,174000" +"72000,160000" +"77250,160000" +] +) +start &163 +end &148 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2846,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2847,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,158600,77900,160000" +st "cntIncrX" +blo "72000,159800" +tm "WireNameMgr" +) +) +on &25 +) +*223 (Wire +uid 2860,0 +shape (OrthoPolyLine +uid 2861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66000,44000,77250,44000" +pts [ +"66000,44000" +"77250,44000" +] +) +start &208 +end &93 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2862,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2863,0 +va (VaSet +font "Verdana,12,0" +) +xt "71250,42600,77250,44000" +st "dataOut" +blo "71250,43800" +tm "WireNameMgr" +) +) +on &22 +) +*224 (Wire +uid 2866,0 +shape (OrthoPolyLine +uid 2867,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,156000,77250,156000" +pts [ +"70000,156000" +"77250,156000" +] +) +end &153 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2873,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,154600,77900,156000" +st "patternSize" +blo "69000,155800" +tm "WireNameMgr" +) +) +on &21 +) +*225 (Wire +uid 2919,0 +shape (OrthoPolyLine +uid 2920,0 +va (VaSet +vasetType 3 +) +xt "70000,186000,77250,186000" +pts [ +"77250,186000" +"70000,186000" +] +) +start &164 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2926,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,184600,78600,186000" +st "newPolynom" +blo "69000,185800" +tm "WireNameMgr" +) +) +on &14 +) +*226 (Wire +uid 2996,0 +shape (OrthoPolyLine +uid 2997,0 +va (VaSet +vasetType 3 +) +xt "74000,192000,77250,192000" +pts [ +"74000,192000" +"77250,192000" +] +) +end &166 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3002,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3003,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,190600,78100,192000" +st "reset" +blo "74000,191800" +tm "WireNameMgr" +) +) +on &13 +) +*227 (Wire +uid 3004,0 +shape (OrthoPolyLine +uid 3005,0 +va (VaSet +vasetType 3 +) +xt "74000,190000,77250,190000" +pts [ +"74000,190000" +"77250,190000" +] +) +end &165 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3010,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3011,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,188600,77800,190000" +st "clock" +blo "74000,189800" +tm "WireNameMgr" +) +) +on &12 +) +*228 (Wire +uid 3094,0 +shape (OrthoPolyLine +uid 3095,0 +va (VaSet +vasetType 3 +) +xt "70000,158000,77250,158000" +pts [ +"70000,158000" +"77250,158000" +] +) +end &151 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3100,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3101,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,156600,79800,158000" +st "updatePattern" +blo "69000,157800" +tm "WireNameMgr" +) +) +on &20 +) +*229 (Wire +uid 3146,0 +shape (OrthoPolyLine +uid 3147,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "126750,154000,134000,154000" +pts [ +"126750,154000" +"134000,154000" +] +) +start &172 +end &42 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3150,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3151,0 +va (VaSet +font "Verdana,12,0" +) +xt "128000,152600,132600,154000" +st "memX" +blo "128000,153800" +tm "WireNameMgr" +) +) +on &28 +) +*230 (Wire +uid 3751,0 +shape (OrthoPolyLine +uid 3752,0 +va (VaSet +vasetType 3 +) +xt "106000,130000,109250,130000" +pts [ +"106000,130000" +"109250,130000" +] +) +end &186 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3755,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3756,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,128600,110100,130000" +st "reset" +blo "106000,129800" +tm "WireNameMgr" +) +) +on &13 +) +*231 (Wire +uid 3757,0 +shape (OrthoPolyLine +uid 3758,0 +va (VaSet +vasetType 3 +) +xt "106000,128000,109250,128000" +pts [ +"106000,128000" +"109250,128000" +] +) +end &185 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3761,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3762,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,126600,109800,128000" +st "clock" +blo "106000,127800" +tm "WireNameMgr" +) +) +on &12 +) +*232 (Wire +uid 3763,0 +shape (OrthoPolyLine +uid 3764,0 +va (VaSet +vasetType 3 +) +xt "70000,134000,77250,134000" +pts [ +"70000,134000" +"77250,134000" +] +) +end &138 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3768,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,132600,79800,134000" +st "updatePattern" +blo "69000,133800" +tm "WireNameMgr" +) +) +on &20 +) +*233 (Wire +uid 3769,0 +shape (OrthoPolyLine +uid 3770,0 +va (VaSet +vasetType 3 +) +xt "94750,124000,109250,136000" +pts [ +"94750,136000" +"102000,136000" +"102000,124000" +"109250,124000" +] +) +start &137 +end &184 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3772,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,122600,109100,124000" +st "memEnY" +blo "103000,123800" +tm "WireNameMgr" +) +) +on &32 +) +*234 (Wire +uid 3773,0 +shape (OrthoPolyLine +uid 3774,0 +va (VaSet +vasetType 3 +) +xt "94750,122000,109250,134000" +pts [ +"94750,134000" +"100000,134000" +"100000,122000" +"109250,122000" +] +) +start &135 +end &187 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3775,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3776,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,120600,109300,122000" +st "memWrY" +blo "103000,121800" +tm "WireNameMgr" +) +) +on &31 +) +*235 (Wire +uid 3777,0 +shape (OrthoPolyLine +uid 3778,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,106000,109250,118000" +pts [ +"94750,106000" +"98000,106000" +"98000,118000" +"109250,118000" +] +) +start &129 +end &188 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3779,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3780,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,116600,109400,118000" +st "addrY" +blo "105000,117800" +tm "WireNameMgr" +) +) +on &30 +) +*236 (Wire +uid 3793,0 +shape (OrthoPolyLine +uid 3794,0 +va (VaSet +vasetType 3 +) +xt "72000,110000,98000,130000" +pts [ +"94750,130000" +"98000,130000" +"98000,124000" +"72000,124000" +"72000,110000" +"77250,110000" +] +) +start &140 +end &125 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3796,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,108600,77800,110000" +st "cntIncrY" +blo "72000,109800" +tm "WireNameMgr" +) +) +on &29 +) +*237 (Wire +uid 3797,0 +shape (OrthoPolyLine +uid 3798,0 +va (VaSet +vasetType 3 +) +xt "70000,136000,77250,136000" +pts [ +"77250,136000" +"70000,136000" +] +) +start &141 +end &62 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3801,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3802,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,134600,78600,136000" +st "newPolynom" +blo "69000,135800" +tm "WireNameMgr" +) +) +on &14 +) +*238 (Wire +uid 3803,0 +shape (OrthoPolyLine +uid 3804,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,106000,77250,106000" +pts [ +"70000,106000" +"77250,106000" +] +) +end &130 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3808,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,104600,77900,106000" +st "patternSize" +blo "69000,105800" +tm "WireNameMgr" +) +) +on &21 +) +*239 (Wire +uid 3809,0 +shape (OrthoPolyLine +uid 3810,0 +va (VaSet +vasetType 3 +) +xt "70000,108000,77250,108000" +pts [ +"70000,108000" +"77250,108000" +] +) +end &128 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3813,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3814,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,106600,79800,108000" +st "updatePattern" +blo "69000,107800" +tm "WireNameMgr" +) +) +on &20 +) +*240 (Wire +uid 3815,0 +shape (OrthoPolyLine +uid 3816,0 +va (VaSet +vasetType 3 +) +xt "74000,140000,77250,140000" +pts [ +"74000,140000" +"77250,140000" +] +) +end &142 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3820,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,138600,77800,140000" +st "clock" +blo "74000,139800" +tm "WireNameMgr" +) +) +on &12 +) +*241 (Wire +uid 3866,0 +shape (OrthoPolyLine +uid 3867,0 +va (VaSet +vasetType 3 +) +xt "74000,114000,77250,114000" +pts [ +"74000,114000" +"77250,114000" +] +) +end &126 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3873,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,112600,77800,114000" +st "clock" +blo "74000,113800" +tm "WireNameMgr" +) +) +on &12 +) +*242 (Wire +uid 3874,0 +shape (OrthoPolyLine +uid 3875,0 +va (VaSet +vasetType 3 +) +xt "74000,116000,77250,116000" +pts [ +"74000,116000" +"77250,116000" +] +) +end &127 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3880,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3881,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,114600,78100,116000" +st "reset" +blo "74000,115800" +tm "WireNameMgr" +) +) +on &13 +) +*243 (Wire +uid 3882,0 +shape (OrthoPolyLine +uid 3883,0 +va (VaSet +vasetType 3 +) +xt "74000,142000,77250,142000" +pts [ +"74000,142000" +"77250,142000" +] +) +end &143 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3888,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3889,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,140600,78100,142000" +st "reset" +blo "74000,141800" +tm "WireNameMgr" +) +) +on &13 +) +*244 (Wire +uid 3907,0 +shape (OrthoPolyLine +uid 3908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "126750,116000,134000,116000" +pts [ +"126750,116000" +"134000,116000" +] +) +start &183 +end &41 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3912,0 +va (VaSet +font "Verdana,12,0" +) +xt "128750,114600,133250,116000" +st "memY" +blo "128750,115800" +tm "WireNameMgr" +) +) +on &33 +) +*245 (Wire +uid 4047,0 +shape (OrthoPolyLine +uid 4048,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "135000,4000,143000,4000" +pts [ +"135000,4000" +"143000,4000" +] +) +start &36 +end &34 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4051,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4052,0 +va (VaSet +font "Verdana,12,0" +) +xt "138000,2600,143600,4000" +st "testOut" +blo "138000,3800" +tm "WireNameMgr" +) +) +on &35 +) +*246 (Wire +uid 7907,0 +shape (OrthoPolyLine +uid 7908,0 +va (VaSet +vasetType 3 +) +xt "70000,132000,77250,132000" +pts [ +"70000,132000" +"77250,132000" +] +) +end &139 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7913,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7914,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,130600,74000,132000" +st "write" +blo "70000,131800" +tm "WireNameMgr" +) +) +on &57 +) +*247 (Wire +uid 7915,0 +shape (OrthoPolyLine +uid 7916,0 +va (VaSet +vasetType 3 +) +xt "70000,182000,77250,182000" +pts [ +"70000,182000" +"77250,182000" +] +) +end &162 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7921,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7922,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,180600,74000,182000" +st "write" +blo "70000,181800" +tm "WireNameMgr" +) +) +on &57 +) +*248 (Wire +uid 8150,0 +shape (OrthoPolyLine +uid 8151,0 +va (VaSet +vasetType 3 +) +xt "104000,44000,109000,44000" +pts [ +"104000,44000" +"109000,44000" +] +) +end &45 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8154,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8155,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,42600,111300,44000" +st "interpolateLin" +blo "101000,43800" +tm "WireNameMgr" +) +) +on &40 +) +*249 (Wire +uid 16718,0 +shape (OrthoPolyLine +uid 16719,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "26000,44000,50000,72000" +pts [ +"29250,72000" +"26000,72000" +"26000,64000" +"50000,64000" +"50000,44000" +"46000,44000" +] +) +start &116 +end &47 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16722,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16723,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,42600,51700,44000" +st "addr" +blo "48000,43800" +tm "WireNameMgr" +) +) +on &51 +) +*250 (Wire +uid 17156,0 +optionalChildren [ +*251 (BdJunction +uid 18482,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18483,0 +va (VaSet +vasetType 1 +) +xt "61600,99600,62400,100400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17157,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,94000,109250,116000" +pts [ +"109250,116000" +"106000,116000" +"106000,100000" +"62000,100000" +"62000,94000" +] +) +start &182 +end &52 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17160,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17161,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,114600,110100,116000" +st "memDataIn" +blo "102000,115800" +tm "WireNameMgr" +) +) +on &56 +) +*252 (Wire +uid 17164,0 +shape (OrthoPolyLine +uid 17165,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,100000,109250,154000" +pts [ +"109250,154000" +"106000,154000" +"106000,150000" +"62000,150000" +"62000,100000" +] +) +start &171 +end &251 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17170,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17171,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,152600,109100,154000" +st "memDataIn" +blo "101000,153800" +tm "WireNameMgr" +) +) +on &56 +) +*253 (Wire +uid 17515,0 +shape (OrthoPolyLine +uid 17516,0 +va (VaSet +vasetType 3 +) +xt "46000,46000,54000,46000" +pts [ +"46000,46000" +"54000,46000" +] +) +start &47 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17521,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17522,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,44600,55000,46000" +st "write" +blo "51000,45800" +tm "WireNameMgr" +) +) +on &57 +) +*254 (Wire +uid 18258,0 +shape (OrthoPolyLine +uid 18259,0 +va (VaSet +vasetType 3 +) +xt "70000,76000,77250,76000" +pts [ +"70000,76000" +"77250,76000" +] +) +end &110 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18264,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18265,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,74600,74000,76000" +st "write" +blo "70000,75800" +tm "WireNameMgr" +) +) +on &57 +) +*255 (Wire +uid 19648,0 +shape (OrthoPolyLine +uid 19649,0 +va (VaSet +vasetType 3 +) +xt "22000,4000,30000,4000" +pts [ +"22000,4000" +"30000,4000" +] +) +start &63 +end &83 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19652,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19653,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,2600,27500,4000" +st "hClk" +blo "24000,3800" +tm "WireNameMgr" +) +) +on &64 +) +*256 (Wire +uid 19662,0 +shape (OrthoPolyLine +uid 19663,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,22000,30000,22000" +pts [ +"30000,22000" +"22000,22000" +] +) +start &58 +end &65 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19666,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19667,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,20600,27400,22000" +st "hRData" +blo "22000,21800" +tm "WireNameMgr" +) +) +on &66 +) +*257 (Wire +uid 19676,0 +shape (OrthoPolyLine +uid 19677,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,42000,30000,42000" +pts [ +"22000,42000" +"30000,42000" +] +) +start &67 +end &47 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19680,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19681,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,40600,26500,42000" +st "hAddr" +blo "22000,41800" +tm "WireNameMgr" +) +) +on &68 +) +*258 (Wire +uid 19690,0 +shape (OrthoPolyLine +uid 19691,0 +va (VaSet +vasetType 3 +) +xt "22000,6000,30000,6000" +pts [ +"22000,6000" +"30000,6000" +] +) +start &69 +end &83 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19694,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19695,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,4600,28800,6000" +st "hReset_n" +blo "22000,5800" +tm "WireNameMgr" +) +) +on &70 +) +*259 (Wire +uid 19704,0 +shape (OrthoPolyLine +uid 19705,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,44000,30000,44000" +pts [ +"22000,44000" +"30000,44000" +] +) +start &71 +end &47 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19708,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19709,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,42600,27900,44000" +st "hWData" +blo "22000,43800" +tm "WireNameMgr" +) +) +on &72 +) +*260 (Wire +uid 19718,0 +shape (OrthoPolyLine +uid 19719,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,46000,30000,46000" +pts [ +"22000,46000" +"30000,46000" +] +) +start &73 +end &47 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19722,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19723,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,44600,27100,46000" +st "hTrans" +blo "22000,45800" +tm "WireNameMgr" +) +) +on &74 +) +*261 (Wire +uid 19732,0 +shape (OrthoPolyLine +uid 19733,0 +va (VaSet +vasetType 3 +) +xt "22000,48000,30000,48000" +pts [ +"22000,48000" +"30000,48000" +] +) +start &75 +end &47 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19736,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19737,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,46600,27000,48000" +st "hWrite" +blo "22000,47800" +tm "WireNameMgr" +) +) +on &76 +) +*262 (Wire +uid 19746,0 +shape (OrthoPolyLine +uid 19747,0 +va (VaSet +vasetType 3 +) +xt "22000,50000,30000,50000" +pts [ +"22000,50000" +"30000,50000" +] +) +start &77 +end &47 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19751,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,48600,25500,50000" +st "hSel" +blo "22000,49800" +tm "WireNameMgr" +) +) +on &78 +) +*263 (Wire +uid 19760,0 +shape (OrthoPolyLine +uid 19761,0 +va (VaSet +vasetType 3 +) +xt "22000,24000,30000,24000" +pts [ +"30000,24000" +"22000,24000" +] +) +start &58 +end &79 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19764,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19765,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,22600,27500,24000" +st "hReady" +blo "22000,23800" +tm "WireNameMgr" +) +) +on &80 +) +*264 (Wire +uid 19774,0 +shape (OrthoPolyLine +uid 19775,0 +va (VaSet +vasetType 3 +) +xt "22000,26000,30000,26000" +pts [ +"30000,26000" +"22000,26000" +] +) +start &58 +end &81 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19778,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19779,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,24600,26700,26000" +st "hResp" +blo "22000,25800" +tm "WireNameMgr" +) +) +on &82 +) +*265 (Wire +uid 20275,0 +shape (OrthoPolyLine +uid 20276,0 +va (VaSet +vasetType 3 +) +xt "46000,6000,54000,6000" +pts [ +"46000,6000" +"54000,6000" +] +) +start &83 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 20281,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20282,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,4600,52100,6000" +st "reset" +blo "48000,5800" +tm "WireNameMgr" +) +) +on &13 +) +*266 (Wire +uid 20283,0 +shape (OrthoPolyLine +uid 20284,0 +va (VaSet +vasetType 3 +) +xt "46000,4000,54000,4000" +pts [ +"46000,4000" +"54000,4000" +] +) +start &83 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 20289,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20290,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,2600,51800,4000" +st "clock" +blo "48000,3800" +tm "WireNameMgr" +) +) +on &12 +) +*267 (Wire +uid 20547,0 +shape (OrthoPolyLine +uid 20548,0 +va (VaSet +vasetType 3 +) +xt "94750,42000,102000,42000" +pts [ +"94750,42000" +"102000,42000" +] +) +start &90 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 20551,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20552,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,40600,101300,42000" +st "run_int" +blo "96000,41800" +tm "WireNameMgr" +) +) +on &87 +) +*268 (Wire +uid 20557,0 +shape (OrthoPolyLine +uid 20558,0 +va (VaSet +vasetType 3 +) +xt "94750,44000,102000,44000" +pts [ +"94750,44000" +"102000,44000" +] +) +start &98 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 20561,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20562,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,42600,108700,44000" +st "interpolateLin_int" +blo "96000,43800" +tm "WireNameMgr" +) +) +on &88 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *269 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*270 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*271 (MLText +uid 44,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*272 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*273 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*274 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*275 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*276 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*277 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*278 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-2784,-2784,374267,202077" +cachedDiagramExtent "-6900,0,167000,198000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "ipp://ippsion.hevs.ch/ipp/PREA309_HPLJ3005DN" +toPrinter 1 +colour 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 21727,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*279 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*280 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*281 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*282 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*283 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*284 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*285 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*286 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*287 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*288 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*289 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*290 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*291 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*292 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*293 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*294 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*295 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*296 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*297 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*298 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*299 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,99400,7000,100400" +st "Declarations" +blo "0,100200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,100300,3400,101300" +st "Ports:" +blo "0,101100" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,116500,4800,117500" +st "Pre User:" +blo "0,117300" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,117400,23800,119400" +st "constant addressBitNb: positive := hAddr'length; +constant dataBitNb : positive := hWData'length;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,119200,9000,120200" +st "Diagram Signals:" +blo "0,120000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,99400,6000,100400" +st "Post User:" +blo "0,100200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,99400,0,99400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 92,0 +usingSuid 1 +emptyRow *300 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*301 (RefLabelRowHdr +) +*302 (TitleRowHdr +) +*303 (FilterRowHdr +) +*304 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*305 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*306 (GroupColHdr +tm "GroupColHdrMgr" +) +*307 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*308 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*309 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*310 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*311 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*312 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*313 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 18 +suid 2,0 +) +) +uid 10635,0 +) +*314 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 19 +suid 7,0 +) +) +uid 10645,0 +) +*315 (LeafLogPort +port (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 7 +suid 10,0 +) +) +uid 10651,0 +) +*316 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selControl" +t "std_ulogic" +o 32 +suid 33,0 +) +) +uid 10697,0 +) +*317 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 33 +suid 35,0 +) +) +uid 10701,0 +) +*318 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selX" +t "std_ulogic" +o 34 +suid 36,0 +) +) +uid 10703,0 +) +*319 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selY" +t "std_ulogic" +o 35 +suid 37,0 +) +) +uid 10705,0 +) +*320 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 4 +suid 38,0 +) +) +uid 10707,0 +) +*321 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 36 +suid 39,0 +) +) +uid 10709,0 +) +*322 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 31 +suid 40,0 +) +) +uid 10711,0 +) +*323 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 26 +suid 41,0 +) +) +uid 10713,0 +) +*324 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 5 +suid 42,0 +) +) +uid 10715,0 +) +*325 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 21 +suid 44,0 +) +) +uid 10719,0 +) +*326 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 23 +suid 45,0 +) +) +uid 10721,0 +) +*327 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrX" +t "std_ulogic" +o 29 +suid 46,0 +) +) +uid 10723,0 +) +*328 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnX" +t "std_ulogic" +o 27 +suid 47,0 +) +) +uid 10725,0 +) +*329 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 48,0 +) +) +uid 10727,0 +) +*330 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 24 +suid 49,0 +) +) +uid 10729,0 +) +*331 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 22 +suid 50,0 +) +) +uid 10731,0 +) +*332 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrY" +t "std_ulogic" +o 30 +suid 51,0 +) +) +uid 10733,0 +) +*333 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnY" +t "std_ulogic" +o 28 +suid 52,0 +) +) +uid 10735,0 +) +*334 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 53,0 +) +) +uid 10737,0 +) +*335 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 1 +suid 54,0 +) +) +uid 10739,0 +) +*336 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 6 +suid 70,0 +) +) +uid 10771,0 +) +*337 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 25 +suid 74,0 +) +) +uid 16726,0 +) +*338 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 20 +suid 75,0 +) +) +uid 16728,0 +) +*339 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 38 +suid 77,0 +) +) +uid 17172,0 +) +*340 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "write" +t "std_ulogic" +o 37 +suid 78,0 +) +) +uid 17556,0 +) +*341 (LeafLogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 8 +suid 79,0 +) +) +uid 19623,0 +) +*342 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 9 +suid 80,0 +) +) +uid 19625,0 +) +*343 (LeafLogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 10 +suid 81,0 +) +) +uid 19627,0 +) +*344 (LeafLogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 11 +suid 82,0 +) +) +uid 19629,0 +) +*345 (LeafLogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 12 +suid 83,0 +) +) +uid 19631,0 +) +*346 (LeafLogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 13 +suid 84,0 +) +) +uid 19633,0 +) +*347 (LeafLogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 14 +suid 85,0 +) +) +uid 19635,0 +) +*348 (LeafLogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 15 +suid 86,0 +) +) +uid 19637,0 +) +*349 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 16 +suid 87,0 +) +) +uid 19639,0 +) +*350 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 17 +suid 88,0 +) +) +uid 19641,0 +) +*351 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "run_int" +t "std_ulogic" +o 39 +suid 90,0 +) +) +uid 20565,0 +) +*352 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLin_int" +t "std_ulogic" +o 40 +suid 92,0 +) +) +uid 20567,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*353 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *354 (MRCItem +litem &300 +pos 40 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*355 (MRCItem +litem &301 +pos 0 +dimension 20 +uid 10790,0 +) +*356 (MRCItem +litem &302 +pos 1 +dimension 23 +uid 10791,0 +) +*357 (MRCItem +litem &303 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*358 (MRCItem +litem &313 +pos 17 +dimension 20 +uid 10636,0 +) +*359 (MRCItem +litem &314 +pos 18 +dimension 20 +uid 10646,0 +) +*360 (MRCItem +litem &315 +pos 10 +dimension 20 +uid 10652,0 +) +*361 (MRCItem +litem &316 +pos 20 +dimension 20 +uid 10698,0 +) +*362 (MRCItem +litem &317 +pos 21 +dimension 20 +uid 10702,0 +) +*363 (MRCItem +litem &318 +pos 22 +dimension 20 +uid 10704,0 +) +*364 (MRCItem +litem &319 +pos 23 +dimension 20 +uid 10706,0 +) +*365 (MRCItem +litem &320 +pos 4 +dimension 20 +uid 10708,0 +) +*366 (MRCItem +litem &321 +pos 24 +dimension 20 +uid 10710,0 +) +*367 (MRCItem +litem &322 +pos 25 +dimension 20 +uid 10712,0 +) +*368 (MRCItem +litem &323 +pos 19 +dimension 20 +uid 10714,0 +) +*369 (MRCItem +litem &324 +pos 5 +dimension 20 +uid 10716,0 +) +*370 (MRCItem +litem &325 +pos 26 +dimension 20 +uid 10720,0 +) +*371 (MRCItem +litem &326 +pos 27 +dimension 20 +uid 10722,0 +) +*372 (MRCItem +litem &327 +pos 28 +dimension 20 +uid 10724,0 +) +*373 (MRCItem +litem &328 +pos 29 +dimension 20 +uid 10726,0 +) +*374 (MRCItem +litem &329 +pos 6 +dimension 20 +uid 10728,0 +) +*375 (MRCItem +litem &330 +pos 30 +dimension 20 +uid 10730,0 +) +*376 (MRCItem +litem &331 +pos 31 +dimension 20 +uid 10732,0 +) +*377 (MRCItem +litem &332 +pos 32 +dimension 20 +uid 10734,0 +) +*378 (MRCItem +litem &333 +pos 33 +dimension 20 +uid 10736,0 +) +*379 (MRCItem +litem &334 +pos 7 +dimension 20 +uid 10738,0 +) +*380 (MRCItem +litem &335 +pos 3 +dimension 20 +uid 10740,0 +) +*381 (MRCItem +litem &336 +pos 8 +dimension 20 +uid 10772,0 +) +*382 (MRCItem +litem &337 +pos 34 +dimension 20 +uid 16727,0 +) +*383 (MRCItem +litem &338 +pos 35 +dimension 20 +uid 16729,0 +) +*384 (MRCItem +litem &339 +pos 36 +dimension 20 +uid 17173,0 +) +*385 (MRCItem +litem &340 +pos 37 +dimension 20 +uid 17557,0 +) +*386 (MRCItem +litem &341 +pos 1 +dimension 20 +uid 19622,0 +) +*387 (MRCItem +litem &342 +pos 2 +dimension 20 +uid 19624,0 +) +*388 (MRCItem +litem &343 +pos 0 +dimension 20 +uid 19626,0 +) +*389 (MRCItem +litem &344 +pos 9 +dimension 20 +uid 19628,0 +) +*390 (MRCItem +litem &345 +pos 11 +dimension 20 +uid 19630,0 +) +*391 (MRCItem +litem &346 +pos 12 +dimension 20 +uid 19632,0 +) +*392 (MRCItem +litem &347 +pos 13 +dimension 20 +uid 19634,0 +) +*393 (MRCItem +litem &348 +pos 14 +dimension 20 +uid 19636,0 +) +*394 (MRCItem +litem &349 +pos 15 +dimension 20 +uid 19638,0 +) +*395 (MRCItem +litem &350 +pos 16 +dimension 20 +uid 19640,0 +) +*396 (MRCItem +litem &351 +pos 38 +dimension 20 +uid 20566,0 +) +*397 (MRCItem +litem &352 +pos 39 +dimension 20 +uid 20568,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*398 (MRCItem +litem &304 +pos 0 +dimension 20 +uid 10794,0 +) +*399 (MRCItem +litem &306 +pos 1 +dimension 50 +uid 10795,0 +) +*400 (MRCItem +litem &307 +pos 2 +dimension 100 +uid 10796,0 +) +*401 (MRCItem +litem &308 +pos 3 +dimension 50 +uid 10797,0 +) +*402 (MRCItem +litem &309 +pos 4 +dimension 100 +uid 10798,0 +) +*403 (MRCItem +litem &310 +pos 5 +dimension 100 +uid 10799,0 +) +*404 (MRCItem +litem &311 +pos 6 +dimension 50 +uid 10800,0 +) +*405 (MRCItem +litem &312 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *406 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*407 (RefLabelRowHdr +) +*408 (TitleRowHdr +) +*409 (FilterRowHdr +) +*410 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*411 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*412 (GroupColHdr +tm "GroupColHdrMgr" +) +*413 (NameColHdr +tm "GenericNameColHdrMgr" +) +*414 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*415 (InitColHdr +tm "GenericValueColHdrMgr" +) +*416 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*417 (EolColHdr +tm "GenericEolColHdrMgr" +) +*418 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 12900,0 +) +*419 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 15331,0 +) +*420 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 16243,0 +) +*421 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "8" +) +uid 17007,0 +) +] +) +pdm (PhysicalDM +uid 10815,0 +optionalChildren [ +*422 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *423 (MRCItem +litem &406 +pos 4 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*424 (MRCItem +litem &407 +pos 0 +dimension 20 +uid 10818,0 +) +*425 (MRCItem +litem &408 +pos 1 +dimension 23 +uid 10819,0 +) +*426 (MRCItem +litem &409 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*427 (MRCItem +litem &418 +pos 3 +dimension 20 +uid 12899,0 +) +*428 (MRCItem +litem &419 +pos 0 +dimension 20 +uid 15330,0 +) +*429 (MRCItem +litem &420 +pos 1 +dimension 20 +uid 16242,0 +) +*430 (MRCItem +litem &421 +pos 2 +dimension 20 +uid 17006,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*431 (MRCItem +litem &410 +pos 0 +dimension 20 +uid 10822,0 +) +*432 (MRCItem +litem &412 +pos 1 +dimension 50 +uid 10823,0 +) +*433 (MRCItem +litem &413 +pos 2 +dimension 100 +uid 10824,0 +) +*434 (MRCItem +litem &414 +pos 3 +dimension 100 +uid 10825,0 +) +*435 (MRCItem +litem &415 +pos 4 +dimension 50 +uid 10826,0 +) +*436 (MRCItem +litem &416 +pos 5 +dimension 50 +uid 10827,0 +) +*437 (MRCItem +litem &417 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/symbol.sb new file mode 100644 index 0000000..6efdcca --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/ahb@beamer@registers/symbol.sb @@ -0,0 +1,2501 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2028,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 8 +suid 1,0 +) +) +uid 206,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 9 +suid 11,0 +) +) +uid 207,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 10 +suid 2,0 +) +) +uid 209,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 1 +suid 12,0 +) +) +uid 214,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +uid 525,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 5 +suid 2015,0 +) +) +uid 527,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2016,0 +) +) +uid 529,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 2017,0 +) +) +uid 531,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 6 +suid 2018,0 +) +) +uid 533,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 11 +suid 2021,0 +) +) +uid 766,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 7 +suid 2022,0 +) +) +uid 840,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 12 +suid 2023,0 +) +) +uid 970,0 +) +*26 (LogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 13 +suid 2024,0 +) +) +uid 972,0 +) +*27 (LogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 14 +suid 2025,0 +) +) +uid 974,0 +) +*28 (LogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 15 +suid 2026,0 +) +) +uid 976,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 16 +suid 2027,0 +) +) +uid 978,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 17 +suid 2028,0 +) +) +uid 980,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*31 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *32 (MRCItem +litem &1 +pos 17 +dimension 20 +) +uid 132,0 +optionalChildren [ +*33 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 135,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 137,0 +) +*35 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*36 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 162,0 +) +*37 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 163,0 +) +*38 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 165,0 +) +*39 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 170,0 +) +*40 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 524,0 +) +*41 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 526,0 +) +*42 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 528,0 +) +*43 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 530,0 +) +*44 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 532,0 +) +*45 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 767,0 +) +*46 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 839,0 +) +*47 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 971,0 +) +*48 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 973,0 +) +*49 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 975,0 +) +*50 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 977,0 +) +*51 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 979,0 +) +*52 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 981,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*53 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 141,0 +) +*54 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 145,0 +) +*55 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 147,0 +) +*56 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 149,0 +) +*57 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 151,0 +) +*58 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 153,0 +) +*59 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 155,0 +) +*60 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *61 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*62 (RefLabelRowHdr +) +*63 (TitleRowHdr +) +*64 (FilterRowHdr +) +*65 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*66 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*67 (GroupColHdr +tm "GroupColHdrMgr" +) +*68 (NameColHdr +tm "GenericNameColHdrMgr" +) +*69 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*70 (InitColHdr +tm "GenericValueColHdrMgr" +) +*71 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*72 (EolColHdr +tm "GenericEolColHdrMgr" +) +*73 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 197,0 +) +*74 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 651,0 +) +*75 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 736,0 +) +*76 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "8" +) +uid 814,0 +) +] +) +pdm (PhysicalDM +uid 218,0 +optionalChildren [ +*77 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *78 (MRCItem +litem &61 +pos 4 +dimension 20 +) +uid 172,0 +optionalChildren [ +*79 (MRCItem +litem &62 +pos 0 +dimension 20 +uid 175,0 +) +*80 (MRCItem +litem &63 +pos 1 +dimension 23 +uid 177,0 +) +*81 (MRCItem +litem &64 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*82 (MRCItem +litem &73 +pos 3 +dimension 20 +uid 199,0 +) +*83 (MRCItem +litem &74 +pos 0 +dimension 20 +uid 652,0 +) +*84 (MRCItem +litem &75 +pos 1 +dimension 20 +uid 737,0 +) +*85 (MRCItem +litem &76 +pos 2 +dimension 20 +uid 815,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*86 (MRCItem +litem &65 +pos 0 +dimension 20 +uid 181,0 +) +*87 (MRCItem +litem &67 +pos 1 +dimension 50 +uid 185,0 +) +*88 (MRCItem +litem &68 +pos 2 +dimension 100 +uid 187,0 +) +*89 (MRCItem +litem &69 +pos 3 +dimension 100 +uid 189,0 +) +*90 (MRCItem +litem &70 +pos 4 +dimension 50 +uid 191,0 +) +*91 (MRCItem +litem &71 +pos 5 +dimension 50 +uid 193,0 +) +*92 (MRCItem +litem &72 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@registers/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@registers/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@registers" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamerRegisters" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamerRegisters" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:21" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbBeamerRegisters" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahb@beamer@registers/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/ahbBeamerRegisters/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:21" +) +(vvPair +variable "unit" +value "ahbBeamerRegisters" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*93 (SymbolBody +uid 8,0 +optionalChildren [ +*94 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,25625,44000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "45000,25400,47000,26300" +st "hClk" +blo "45000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18100,21000,19000" +st "hClk : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*95 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,7625,44000,8375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "45000,7400,47500,8300" +st "hAddr" +blo "45000,8100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19900,34000,20800" +st "hAddr : IN unsigned (ahbAddressBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 10 +suid 2,0 +) +) +) +*96 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,17625,44000,18375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "courier,9,0" +) +xt "45000,17400,48000,18300" +st "hRData" +blo "45000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19000,37000,19900" +st "hRData : OUT std_ulogic_vector (ahbDataBitNb-1 downto 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 9 +suid 11,0 +) +) +) +*97 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51625,3250,52375,4000" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "50000,5000,53500,5900" +st "testOut" +blo "50000,5700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11800,34000,12700" +st "testOut : OUT std_ulogic_vector (1 TO testOutBitNb) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 1 +suid 12,0 +) +) +) +*98 (CptPort +uid 534,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 535,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,7625,60750,8375" +) +tg (CPTG +uid 536,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 537,0 +va (VaSet +font "courier,9,0" +) +xt "57500,7400,59000,8300" +st "run" +ju 2 +blo "59000,8100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 538,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14500,21000,15400" +st "run : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 4 +suid 2014,0 +) +) +) +*99 (CptPort +uid 539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 540,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,11625,60750,12375" +) +tg (CPTG +uid 541,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 542,0 +va (VaSet +font "courier,9,0" +) +xt "52500,11400,59000,12300" +st "updatePeriod" +ju 2 +blo "59000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 543,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15400,35000,16300" +st "updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 5 +suid 2015,0 +) +) +) +*100 (CptPort +uid 544,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 545,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,15625,60750,16375" +) +tg (CPTG +uid 546,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 547,0 +va (VaSet +font "courier,9,0" +) +xt "57000,15400,59000,16300" +st "memX" +ju 2 +blo "59000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 548,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12700,36500,13600" +st "memX : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2016,0 +) +) +) +*101 (CptPort +uid 549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,17625,60750,18375" +) +tg (CPTG +uid 551,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 552,0 +va (VaSet +font "courier,9,0" +) +xt "57000,17400,59000,18300" +st "memY" +ju 2 +blo "59000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 553,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13600,36500,14500" +st "memY : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 3 +suid 2017,0 +) +) +) +*102 (CptPort +uid 554,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 555,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,9625,60750,10375" +) +tg (CPTG +uid 556,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 557,0 +va (VaSet +font "courier,9,0" +) +xt "51500,9400,59000,10300" +st "interpolateLin" +ju 2 +blo "59000,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 558,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16300,21000,17200" +st "interpolateLin : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 6 +suid 2018,0 +) +) +) +*103 (CptPort +uid 761,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 762,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,27625,44000,28375" +) +tg (CPTG +uid 763,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 764,0 +va (VaSet +font "courier,9,0" +) +xt "45000,27400,49000,28300" +st "hReset_n" +blo "45000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 765,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20800,21000,21700" +st "hReset_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 11 +suid 2021,0 +) +) +) +*104 (CptPort +uid 841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 842,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,13625,60750,14375" +) +tg (CPTG +uid 843,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 844,0 +va (VaSet +font "courier,9,0" +) +xt "53500,13400,59000,14300" +st "newPolynom" +ju 2 +blo "59000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 845,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17200,21000,18100" +st "newPolynom : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 7 +suid 2022,0 +) +) +) +*105 (CptPort +uid 940,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1005,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,9625,44000,10375" +) +tg (CPTG +uid 942,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 943,0 +va (VaSet +font "courier,9,0" +) +xt "45000,9400,48000,10300" +st "hWData" +blo "45000,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 944,0 +va (VaSet +font "courier,8,0" +) +xt "2000,21700,37000,22600" +st "hWData : IN std_ulogic_vector (ahbDataBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 12 +suid 2023,0 +) +) +) +*106 (CptPort +uid 945,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 946,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,11625,44000,12375" +) +tg (CPTG +uid 947,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 948,0 +va (VaSet +font "courier,9,0" +) +xt "45000,11400,48000,12300" +st "hTrans" +blo "45000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 949,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22600,37500,23500" +st "hTrans : IN std_ulogic_vector (ahbTransBitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 13 +suid 2024,0 +) +) +) +*107 (CptPort +uid 950,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 951,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,13625,44000,14375" +) +tg (CPTG +uid 952,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 953,0 +va (VaSet +font "courier,9,0" +) +xt "45000,13400,48000,14300" +st "hWrite" +blo "45000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 954,0 +va (VaSet +font "courier,8,0" +) +xt "2000,23500,21000,24400" +st "hWrite : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 14 +suid 2025,0 +) +) +) +*108 (CptPort +uid 955,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 956,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,15625,44000,16375" +) +tg (CPTG +uid 957,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 958,0 +va (VaSet +font "courier,9,0" +) +xt "45000,15400,47000,16300" +st "hSel" +blo "45000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 959,0 +va (VaSet +font "courier,8,0" +) +xt "2000,24400,21000,25300" +st "hSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 15 +suid 2026,0 +) +) +) +*109 (CptPort +uid 960,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1006,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,19625,44000,20375" +) +tg (CPTG +uid 962,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 963,0 +va (VaSet +font "courier,9,0" +) +xt "45000,19400,48000,20300" +st "hReady" +blo "45000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 964,0 +va (VaSet +font "courier,8,0" +) +xt "2000,25300,21000,26200" +st "hReady : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 16 +suid 2027,0 +) +) +) +*110 (CptPort +uid 965,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 966,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,21625,44000,22375" +) +tg (CPTG +uid 967,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 968,0 +va (VaSet +font "courier,9,0" +) +xt "45000,21400,47500,22300" +st "hResp" +blo "45000,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 969,0 +va (VaSet +font "courier,8,0" +) +xt "2000,26200,20000,27100" +st "hResp : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 17 +suid 2028,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,4000,60000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "44600,29800,51100,30700" +st "SystemOnChip" +blo "44600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "44600,30700,54100,31600" +st "ahbBeamerRegisters" +blo "44600,31400" +) +) +gi *111 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "44000,33600,61000,39000" +st "Generic Declarations + +updatePeriodBitNb positive 16 +signalBitNb positive 16 +patternAddressBitNb positive 8 +testOutBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "8" +) +(GiElement +name "testOutBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*112 (Grouping +uid 16,0 +optionalChildren [ +*113 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*114 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*115 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*116 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*117 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*118 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*119 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*120 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*121 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*122 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*123 (CommentGraphic +uid 869,0 +shape (PolyLine2D +pts [ +"44000,32000" +"60000,32000" +] +uid 870,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "44000,32000,60000,32000" +) +oxt "36000,32000,52000,32000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *124 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*126 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "125,34,1429,884" +viewArea "-1100,-1100,74850,48460" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *127 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *128 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,6500,10900" +st "Declarations" +blo "0,10700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10900,3000,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,27100,2500,28000" +st "User:" +blo "0,27800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,10000,7500,10900" +st "Internal User:" +blo "0,10700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,28000,2000,28000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,10000,0,10000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1075,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/struct.bd new file mode 100644 index 0000000..31a74cd --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/struct.bd @@ -0,0 +1,4837 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I1" +duLibraryName "Beamer" +duName "beamerPeriphOperator" +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 16094,0 +) +(Instance +name "I0" +duLibraryName "Beamer" +duName "beamerPeriphRegisters" +elements [ +(GiElement +name "pindex" +type "natural" +value "pindex" +) +(GiElement +name "paddr" +type "positive" +value "paddr" +) +(GiElement +name "pmask" +type "positive" +value "pmask" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +mwi 0 +uid 16456,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriph" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriph" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:01:30" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerPeriph" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriph\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:01:30" +) +(vvPair +variable "unit" +value "beamerPeriph" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,48000,89000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,48500,72200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,44000,93000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,44500,89200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,46000,89000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,46500,72200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,46000,72000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,46500,68200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,45000,109000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,45200,103300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "93000,44000,109000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "93200,44500,93200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,44000,89000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "73350,44400,83650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,47000,72000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,47500,68200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,48000,72000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,48500,68200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,47000,89000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,47500,72200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "68000,44000,109000,49000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "90500,625,92000,1375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "90000,1000,90500,1000" +pts [ +"90000,1000" +"90500,1000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "93000,300,96700,1700" +st "outX" +blo "93000,1500" +tm "WireNameMgr" +) +) +) +*13 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,29000,13300,30000" +st "outX : std_ulogic" +) +) +*14 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "90500,2625,92000,3375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "90000,3000,90500,3000" +pts [ +"90000,3000" +"90500,3000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "93000,2300,96600,3700" +st "outY" +blo "93000,3500" +tm "WireNameMgr" +) +) +) +*15 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,31400,13300,32400" +st "outY : std_ulogic" +) +) +*16 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 90 +xt "90500,6625,92000,7375" +) +(Line +uid 5083,0 +sl 0 +ro 90 +xt "90000,7000,90500,7000" +pts [ +"90500,7000" +"90000,7000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "93000,6300,99900,7700" +st "selSinCos" +blo "93000,7500" +tm "WireNameMgr" +) +) +) +*17 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,33000,13800,34000" +st "selSinCos : std_ulogic" +) +) +*18 (PortIoIn +uid 13128,0 +shape (CompositeShape +uid 13129,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 13130,0 +sl 0 +ro 270 +xt "16000,625,17500,1375" +) +(Line +uid 13131,0 +sl 0 +ro 270 +xt "17500,1000,18000,1000" +pts [ +"17500,1000" +"18000,1000" +] +) +] +) +tg (WTG +uid 13132,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13133,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11500,500,15000,1900" +st "apbi" +ju 2 +blo "15000,1700" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 13140,0 +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 2 +suid 71,0 +) +declText (MLText +uid 13141,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,29800,15800,30800" +st "apbi : apb_slv_in_type" +) +) +*20 (PortIoOut +uid 13373,0 +shape (CompositeShape +uid 13374,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 13375,0 +sl 0 +ro 90 +xt "16000,2625,17500,3375" +) +(Line +uid 13376,0 +sl 0 +ro 90 +xt "17500,3000,18000,3000" +pts [ +"18000,3000" +"17500,3000" +] +) +] +) +tg (WTG +uid 13377,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13378,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11000,2300,15000,3700" +st "apbo" +ju 2 +blo "15000,3500" +tm "WireNameMgr" +) +) +) +*21 (Net +uid 13385,0 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 5 +suid 72,0 +) +declText (MLText +uid 13386,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,32200,16700,33200" +st "apbo : apb_slv_out_type" +) +) +*22 (PortIoIn +uid 13622,0 +shape (CompositeShape +uid 13623,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 13624,0 +sl 0 +ro 270 +xt "8000,14625,9500,15375" +) +(Line +uid 13625,0 +sl 0 +ro 270 +xt "9500,15000,10000,15000" +pts [ +"9500,15000" +"10000,15000" +] +) +] +) +tg (WTG +uid 13626,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13627,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "1300,14500,7000,15900" +st "reset_n" +ju 2 +blo "7000,15700" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 13634,0 +decl (Decl +n "reset_n" +t "std_ulogic" +o 3 +suid 73,0 +) +declText (MLText +uid 13635,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,30600,13600,31600" +st "reset_n : std_ulogic" +) +) +*24 (Net +uid 14876,0 +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 74,0 +) +declText (MLText +uid 14877,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,33800,13200,34800" +st "clock : std_ulogic" +) +) +*25 (PortIoIn +uid 14884,0 +shape (CompositeShape +uid 14885,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14886,0 +sl 0 +ro 270 +xt "16000,10625,17500,11375" +) +(Line +uid 14887,0 +sl 0 +ro 270 +xt "17500,11000,18000,11000" +pts [ +"17500,11000" +"18000,11000" +] +) +] +) +tg (WTG +uid 14888,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14889,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11200,10300,15000,11700" +st "clock" +ju 2 +blo "15000,11500" +tm "WireNameMgr" +) +) +) +*26 (HdlText +uid 14916,0 +optionalChildren [ +*27 (EmbeddedText +uid 14921,0 +commentText (CommentText +uid 14922,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 14923,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "18000,14000,26000,16000" +) +oxt "0,0,18000,5000" +text (MLText +uid 14924,0 +va (VaSet +) +xt "18200,14200,26100,15400" +st " +reset <= not reset_n; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 8000 +) +) +) +] +shape (Rectangle +uid 14917,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "18000,13000,26000,17000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 14918,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*28 (Text +uid 14919,0 +va (VaSet +) +xt "18400,17000,21000,18200" +st "eb1" +blo "18400,18000" +tm "HdlTextNameMgr" +) +*29 (Text +uid 14920,0 +va (VaSet +) +xt "18400,18000,19800,19200" +st "1" +blo "18400,19000" +tm "HdlTextNumberMgr" +) +] +) +) +*30 (Net +uid 14974,0 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 75,0 +) +declText (MLText +uid 14975,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,39800,16400,40800" +st "SIGNAL reset : std_ulogic" +) +) +*31 (Net +uid 15201,0 +decl (Decl +n "run" +t "std_ulogic" +o 10 +suid 76,0 +) +declText (MLText +uid 15202,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,40600,16300,41600" +st "SIGNAL run : std_ulogic" +) +) +*32 (Net +uid 15207,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 11 +suid 77,0 +) +declText (MLText +uid 15208,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,41400,17100,42400" +st "SIGNAL interpolateLin : std_ulogic" +) +) +*33 (Net +uid 15213,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 12 +suid 78,0 +) +declText (MLText +uid 15214,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,42200,31600,43200" +st "SIGNAL updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*34 (Net +uid 15462,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 79,0 +) +declText (MLText +uid 15463,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,43000,31700,44000" +st "SIGNAL memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*35 (Net +uid 15468,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 14 +suid 80,0 +) +declText (MLText +uid 15469,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,43800,31700,44800" +st "SIGNAL memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*36 (Net +uid 15574,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 8 +suid 81,0 +) +declText (MLText +uid 15575,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,34600,25000,35600" +st "testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*37 (PortIoOut +uid 15582,0 +shape (CompositeShape +uid 15583,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15584,0 +sl 0 +ro 270 +xt "50500,-7375,52000,-6625" +) +(Line +uid 15585,0 +sl 0 +ro 270 +xt "50000,-7000,50500,-7000" +pts [ +"50000,-7000" +"50500,-7000" +] +) +] +) +tg (WTG +uid 15586,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15587,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "53000,-7700,73900,-6300" +st "testOut : (1 TO testOutBitNb)" +blo "53000,-6500" +tm "WireNameMgr" +) +) +) +*38 (HdlText +uid 16006,0 +optionalChildren [ +*39 (EmbeddedText +uid 16011,0 +commentText (CommentText +uid 16012,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 16013,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "50000,-20000,66000,-10000" +) +oxt "0,0,18000,5000" +text (MLText +uid 16014,0 +va (VaSet +) +xt "50200,-19800,65500,-10200" +st " +--process +--begin +-- newPolynom <= '0'; +-- for index in 1 to 2**4-1 loop +-- wait until rising_edge(clock); +-- end loop; +-- newPolynom <= '1'; +-- wait until rising_edge(clock); +--end process; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 16007,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "50000,-21000,66000,-9000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 16008,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 16009,0 +va (VaSet +) +xt "50400,-9000,53000,-7800" +st "eb2" +blo "50400,-8000" +tm "HdlTextNameMgr" +) +*41 (Text +uid 16010,0 +va (VaSet +) +xt "50400,-8000,51800,-6800" +st "2" +blo "50400,-7000" +tm "HdlTextNumberMgr" +) +] +) +) +*42 (SaComponent +uid 16094,0 +optionalChildren [ +*43 (CptPort +uid 16050,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16051,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,14625,66000,15375" +) +tg (CPTG +uid 16052,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16053,0 +va (VaSet +) +xt "67000,14400,70400,15600" +st "clock" +blo "67000,15400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*44 (CptPort +uid 16054,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16055,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,625,66000,1375" +) +tg (CPTG +uid 16056,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16057,0 +va (VaSet +) +xt "67000,400,69300,1600" +st "run" +blo "67000,1400" +) +) +thePort (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*45 (CptPort +uid 16058,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16059,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,625,82750,1375" +) +tg (CPTG +uid 16060,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16061,0 +va (VaSet +) +xt "78001,400,81001,1600" +st "outX" +ju 2 +blo "81001,1400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*46 (CptPort +uid 16062,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16063,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,16625,66000,17375" +) +tg (CPTG +uid 16064,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16065,0 +va (VaSet +) +xt "67000,16400,70300,17600" +st "reset" +blo "67000,17400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*47 (CptPort +uid 16066,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16067,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,2625,82750,3375" +) +tg (CPTG +uid 16068,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16069,0 +va (VaSet +) +xt "78001,2400,81001,3600" +st "outY" +ju 2 +blo "81001,3400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*48 (CptPort +uid 16070,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16071,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82000,6625,82750,7375" +) +tg (CPTG +uid 16072,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16073,0 +va (VaSet +) +xt "75201,6400,81001,7600" +st "selSinCos" +ju 2 +blo "81001,7400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +) +*49 (CptPort +uid 16074,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16075,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,2625,66000,3375" +) +tg (CPTG +uid 16076,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16077,0 +va (VaSet +) +xt "67000,2400,75300,3600" +st "interpolateLin" +blo "67000,3400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +) +*50 (CptPort +uid 16078,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16079,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,4625,66000,5375" +) +tg (CPTG +uid 16080,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16081,0 +va (VaSet +) +xt "67000,4400,75000,5600" +st "updatePeriod" +blo "67000,5400" +) +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +) +*51 (CptPort +uid 16082,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16083,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,8625,66000,9375" +) +tg (CPTG +uid 16084,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16085,0 +va (VaSet +) +xt "67000,8400,70800,9600" +st "memX" +blo "67000,9400" +) +) +thePort (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2016,0 +) +) +) +*52 (CptPort +uid 16086,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16087,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,10625,66000,11375" +) +tg (CPTG +uid 16088,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16089,0 +va (VaSet +) +xt "67000,10400,70800,11600" +st "memY" +blo "67000,11400" +) +) +thePort (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 2018,0 +) +) +) +*53 (CptPort +uid 16090,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16091,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65250,6625,66000,7375" +) +tg (CPTG +uid 16092,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16093,0 +va (VaSet +) +xt "67000,6400,74600,7600" +st "newPolynom" +blo "67000,7400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +] +shape (Rectangle +uid 16095,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "66000,-3000,82000,19000" +) +oxt "42000,9000,58000,31000" +ttg (MlTextGroup +uid 16096,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +uid 16097,0 +va (VaSet +font "Verdana,9,1" +) +xt "66600,18800,71000,20000" +st "Beamer" +blo "66600,19800" +tm "BdLibraryNameMgr" +) +*55 (Text +uid 16098,0 +va (VaSet +font "Verdana,9,1" +) +xt "66600,20000,79800,21200" +st "beamerPeriphOperator" +blo "66600,21000" +tm "CptNameMgr" +) +*56 (Text +uid 16099,0 +va (VaSet +font "Verdana,9,1" +) +xt "66600,21200,68300,22400" +st "I1" +blo "66600,22200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16100,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16101,0 +text (MLText +uid 16102,0 +va (VaSet +font "Verdana,8,0" +) +xt "66000,22600,90400,24600" +st "updatePeriodBitNb = updatePeriodBitNb ( positive ) +signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*57 (Net +uid 16103,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 15 +suid 83,0 +) +declText (MLText +uid 16104,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,44600,18100,45600" +st "SIGNAL newPolynom : std_ulogic" +) +) +*58 (SaComponent +uid 16456,0 +optionalChildren [ +*59 (CptPort +uid 16412,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16413,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,10625,34000,11375" +) +tg (CPTG +uid 16414,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16415,0 +va (VaSet +) +xt "35000,10400,38400,11600" +st "clock" +blo "35000,11400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*60 (CptPort +uid 16416,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16417,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,625,34000,1375" +) +tg (CPTG +uid 16418,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16419,0 +va (VaSet +) +xt "35000,400,37800,1600" +st "apbi" +blo "35000,1400" +) +) +thePort (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 1 +suid 2,0 +) +) +) +*61 (CptPort +uid 16420,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16421,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,2625,34000,3375" +) +tg (CPTG +uid 16422,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16423,0 +va (VaSet +) +xt "35000,2400,38100,3600" +st "apbo" +blo "35000,3400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 3 +suid 11,0 +) +) +) +*62 (CptPort +uid 16424,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16425,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41625,-3750,42375,-3000" +) +tg (CPTG +uid 16426,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16427,0 +va (VaSet +) +xt "40000,-2000,44600,-800" +st "testOut" +blo "40000,-1000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 4 +suid 12,0 +) +) +) +*63 (CptPort +uid 16428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16429,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,625,50750,1375" +) +tg (CPTG +uid 16430,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16431,0 +va (VaSet +) +xt "46700,400,49000,1600" +st "run" +ju 2 +blo "49000,1400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +) +*64 (CptPort +uid 16432,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16433,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,4625,50750,5375" +) +tg (CPTG +uid 16434,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16435,0 +va (VaSet +) +xt "41000,4400,49000,5600" +st "updatePeriod" +ju 2 +blo "49000,5400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +) +*65 (CptPort +uid 16436,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16437,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,8625,50750,9375" +) +tg (CPTG +uid 16438,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16439,0 +va (VaSet +) +xt "45200,8400,49000,9600" +st "memX" +ju 2 +blo "49000,9400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 2016,0 +) +) +) +*66 (CptPort +uid 16440,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16441,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,10625,50750,11375" +) +tg (CPTG +uid 16442,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16443,0 +va (VaSet +) +xt "45200,10400,49000,11600" +st "memY" +ju 2 +blo "49000,11400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 2017,0 +) +) +) +*67 (CptPort +uid 16444,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16445,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,2625,50750,3375" +) +tg (CPTG +uid 16446,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16447,0 +va (VaSet +) +xt "40700,2400,49000,3600" +st "interpolateLin" +ju 2 +blo "49000,3400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 9 +suid 2018,0 +) +) +) +*68 (CptPort +uid 16448,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16449,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,12625,34000,13375" +) +tg (CPTG +uid 16450,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16451,0 +va (VaSet +) +xt "35000,12400,38300,13600" +st "reset" +blo "35000,13400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 10 +suid 2021,0 +) +) +) +*69 (CptPort +uid 16452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16453,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,6625,50750,7375" +) +tg (CPTG +uid 16454,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16455,0 +va (VaSet +) +xt "41400,6400,49000,7600" +st "newPolynom" +ju 2 +blo "49000,7400" +) +) +thePort (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2022,0 +) +) +) +] +shape (Rectangle +uid 16457,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,-3000,50000,15000" +) +oxt "36000,12000,52000,30000" +ttg (MlTextGroup +uid 16458,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 16459,0 +va (VaSet +font "Verdana,9,1" +) +xt "34600,14800,39000,16000" +st "Beamer" +blo "34600,15800" +tm "BdLibraryNameMgr" +) +*71 (Text +uid 16460,0 +va (VaSet +font "Verdana,9,1" +) +xt "34600,16000,48000,17200" +st "beamerPeriphRegisters" +blo "34600,17000" +tm "CptNameMgr" +) +*72 (Text +uid 16461,0 +va (VaSet +font "Verdana,9,1" +) +xt "34600,17200,36300,18400" +st "I0" +blo "34600,18200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16462,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16463,0 +text (MLText +uid 16464,0 +va (VaSet +font "Verdana,8,0" +) +xt "34000,18600,59800,25600" +st "pindex = pindex ( natural ) +paddr = paddr ( positive ) +pmask = pmask ( positive ) +updatePeriodBitNb = updatePeriodBitNb ( positive ) +signalBitNb = signalBitNb ( positive ) +patternAddressBitNb = patternAddressBitNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "pindex" +type "natural" +value "pindex" +) +(GiElement +name "paddr" +type "positive" +value "paddr" +) +(GiElement +name "pmask" +type "positive" +value "pmask" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*73 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "82750,1000,90000,1000" +pts [ +"82750,1000" +"90000,1000" +] +) +start &45 +end &12 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,-400,90700,1000" +st "outX" +blo "87000,800" +tm "WireNameMgr" +) +) +on &13 +) +*74 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "82750,3000,90000,3000" +pts [ +"82750,3000" +"90000,3000" +] +) +start &47 +end &14 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,1600,90600,3000" +st "outY" +blo "87000,2800" +tm "WireNameMgr" +) +) +on &15 +) +*75 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "82750,7000,90000,7000" +pts [ +"90000,7000" +"82750,7000" +] +) +start &16 +end &48 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Verdana,12,0" +) +xt "85000,5600,91900,7000" +st "selSinCos" +blo "85000,6800" +tm "WireNameMgr" +) +) +on &17 +) +*76 (Wire +uid 13134,0 +shape (OrthoPolyLine +uid 13135,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "18000,1000,33250,1000" +pts [ +"18000,1000" +"33250,1000" +] +) +start &18 +end &60 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13138,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13139,0 +va (VaSet +font "Verdana,12,0" +) +xt "18000,-400,21500,1000" +st "apbi" +blo "18000,800" +tm "WireNameMgr" +) +) +on &19 +) +*77 (Wire +uid 13379,0 +shape (OrthoPolyLine +uid 13380,0 +va (VaSet +vasetType 3 +) +xt "18000,3000,33250,3000" +pts [ +"33250,3000" +"18000,3000" +] +) +start &61 +end &20 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13383,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13384,0 +va (VaSet +font "Verdana,12,0" +) +xt "18000,1600,22000,3000" +st "apbo" +blo "18000,2800" +tm "WireNameMgr" +) +) +on &21 +) +*78 (Wire +uid 13628,0 +shape (OrthoPolyLine +uid 13629,0 +va (VaSet +vasetType 3 +) +xt "10000,15000,18000,15000" +pts [ +"10000,15000" +"18000,15000" +] +) +start &22 +end &26 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13632,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13633,0 +va (VaSet +font "Verdana,12,0" +) +xt "10000,13600,15700,15000" +st "reset_n" +blo "10000,14800" +tm "WireNameMgr" +) +) +on &23 +) +*79 (Wire +uid 14878,0 +shape (OrthoPolyLine +uid 14879,0 +va (VaSet +vasetType 3 +) +xt "18000,11000,33250,11000" +pts [ +"33250,11000" +"18000,11000" +] +) +start &59 +end &25 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 14882,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14883,0 +va (VaSet +font "Verdana,12,0" +) +xt "18000,9600,21800,11000" +st "clock" +blo "18000,10800" +tm "WireNameMgr" +) +) +on &24 +) +*80 (Wire +uid 14976,0 +shape (OrthoPolyLine +uid 14977,0 +va (VaSet +vasetType 3 +) +xt "26000,13000,33250,15000" +pts [ +"33250,13000" +"30000,13000" +"30000,15000" +"26000,15000" +] +) +start &68 +end &26 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 14980,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14981,0 +va (VaSet +font "Verdana,12,0" +) +xt "29000,11600,33100,13000" +st "reset" +blo "29000,12800" +tm "WireNameMgr" +) +) +on &30 +) +*81 (Wire +uid 15203,0 +shape (OrthoPolyLine +uid 15204,0 +va (VaSet +vasetType 3 +) +xt "50750,1000,65250,1000" +pts [ +"50750,1000" +"65250,1000" +] +) +start &63 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15205,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15206,0 +va (VaSet +font "Verdana,12,0" +) +xt "52750,-400,55650,1000" +st "run" +blo "52750,800" +tm "WireNameMgr" +) +) +on &31 +) +*82 (Wire +uid 15209,0 +shape (OrthoPolyLine +uid 15210,0 +va (VaSet +vasetType 3 +) +xt "50750,3000,65250,3000" +pts [ +"50750,3000" +"65250,3000" +] +) +start &67 +end &49 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15211,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15212,0 +va (VaSet +font "Verdana,12,0" +) +xt "52750,1600,63050,3000" +st "interpolateLin" +blo "52750,2800" +tm "WireNameMgr" +) +) +on &32 +) +*83 (Wire +uid 15215,0 +shape (OrthoPolyLine +uid 15216,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "50750,5000,65250,5000" +pts [ +"50750,5000" +"65250,5000" +] +) +start &64 +end &50 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15217,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15218,0 +va (VaSet +font "Verdana,12,0" +) +xt "52750,3600,62850,5000" +st "updatePeriod" +blo "52750,4800" +tm "WireNameMgr" +) +) +on &33 +) +*84 (Wire +uid 15464,0 +shape (OrthoPolyLine +uid 15465,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "50750,9000,65250,9000" +pts [ +"50750,9000" +"65250,9000" +] +) +start &65 +end &51 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15467,0 +va (VaSet +font "Verdana,12,0" +) +xt "52750,7600,57350,9000" +st "memX" +blo "52750,8800" +tm "WireNameMgr" +) +) +on &34 +) +*85 (Wire +uid 15470,0 +shape (OrthoPolyLine +uid 15471,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "50750,11000,65250,11000" +pts [ +"50750,11000" +"65250,11000" +] +) +start &66 +end &52 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15472,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15473,0 +va (VaSet +font "Verdana,12,0" +) +xt "52750,9600,57250,11000" +st "memY" +blo "52750,10800" +tm "WireNameMgr" +) +) +on &35 +) +*86 (Wire +uid 15527,0 +shape (OrthoPolyLine +uid 15528,0 +va (VaSet +vasetType 3 +) +xt "62000,15000,65250,15000" +pts [ +"65250,15000" +"62000,15000" +] +) +start &43 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15533,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15534,0 +va (VaSet +font "Verdana,12,0" +) +xt "61000,13600,64800,15000" +st "clock" +blo "61000,14800" +tm "WireNameMgr" +) +) +on &24 +) +*87 (Wire +uid 15535,0 +shape (OrthoPolyLine +uid 15536,0 +va (VaSet +vasetType 3 +) +xt "62000,17000,65250,17000" +pts [ +"65250,17000" +"62000,17000" +] +) +start &46 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15541,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15542,0 +va (VaSet +font "Verdana,12,0" +) +xt "61000,15600,65100,17000" +st "reset" +blo "61000,16800" +tm "WireNameMgr" +) +) +on &30 +) +*88 (Wire +uid 15576,0 +shape (OrthoPolyLine +uid 15577,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "42000,-7000,50000,-3750" +pts [ +"42000,-3750" +"42000,-7000" +"50000,-7000" +] +) +start &62 +end &37 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15580,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15581,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,-8400,50600,-7000" +st "testOut" +blo "45000,-7200" +tm "WireNameMgr" +) +) +on &36 +) +*89 (Wire +uid 16105,0 +shape (OrthoPolyLine +uid 16106,0 +va (VaSet +vasetType 3 +) +xt "50750,7000,65250,7000" +pts [ +"50750,7000" +"65250,7000" +] +) +start &69 +end &53 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16107,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16108,0 +va (VaSet +font "Verdana,12,0" +) +xt "52750,5600,62350,7000" +st "newPolynom" +blo "52750,6800" +tm "WireNameMgr" +) +) +on &57 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,-25000,6900,-24000" +st "Package List" +blo "0,-24200" +) +*92 (MLText +uid 44,0 +va (VaSet +) +xt "0,-24000,17500,-20400" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*94 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*95 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*96 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*97 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*98 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*99 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1605,-26645,141185,50936" +cachedDiagramExtent "0,-25000,109000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "HP LaserJet P3005 PCL 6 (A303),winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-25000" +lastUid 16557,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*101 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*102 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*104 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*105 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*107 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*108 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*110 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*111 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*112 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*113 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*114 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*116 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*117 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*118 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*119 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*120 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,27000,7000,28000" +st "Declarations" +blo "0,27800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,28000,3400,29000" +st "Ports:" +blo "0,28800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,35400,4800,36400" +st "Pre User:" +blo "0,36200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,36400,23000,39400" +st "constant signalBitNb: positive := 16; +constant updatePeriodBitNb : positive := 16; +constant patternAddressBitNb : positive := 10;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,38800,9000,39800" +st "Diagram Signals:" +blo "0,39600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,27000,6000,28000" +st "Post User:" +blo "0,27800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,27000,0,27000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 83,0 +usingSuid 1 +emptyRow *121 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*122 (RefLabelRowHdr +) +*123 (TitleRowHdr +) +*124 (FilterRowHdr +) +*125 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*126 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*127 (GroupColHdr +tm "GroupColHdrMgr" +) +*128 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*129 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*130 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*131 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*132 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*133 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*134 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +) +uid 10639,0 +) +*135 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 10641,0 +) +*136 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 62,0 +) +) +uid 10755,0 +) +*137 (LeafLogPort +port (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 2 +suid 71,0 +) +) +uid 13127,0 +) +*138 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 5 +suid 72,0 +) +) +uid 13372,0 +) +*139 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 3 +suid 73,0 +) +) +uid 13621,0 +) +*140 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 74,0 +) +) +uid 14914,0 +) +*141 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 75,0 +) +) +uid 14982,0 +) +*142 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "run" +t "std_ulogic" +o 10 +suid 76,0 +) +) +uid 15219,0 +) +*143 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 11 +suid 77,0 +) +) +uid 15221,0 +) +*144 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 12 +suid 78,0 +) +) +uid 15223,0 +) +*145 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 79,0 +) +) +uid 15474,0 +) +*146 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 14 +suid 80,0 +) +) +uid 15476,0 +) +*147 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 8 +suid 81,0 +) +) +uid 15588,0 +) +*148 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 15 +suid 83,0 +) +) +uid 16109,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*149 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *150 (MRCItem +litem &121 +pos 15 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*151 (MRCItem +litem &122 +pos 0 +dimension 20 +uid 10790,0 +) +*152 (MRCItem +litem &123 +pos 1 +dimension 23 +uid 10791,0 +) +*153 (MRCItem +litem &124 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*154 (MRCItem +litem &134 +pos 1 +dimension 20 +uid 10640,0 +) +*155 (MRCItem +litem &135 +pos 2 +dimension 20 +uid 10642,0 +) +*156 (MRCItem +litem &136 +pos 5 +dimension 20 +uid 10756,0 +) +*157 (MRCItem +litem &137 +pos 0 +dimension 20 +uid 13126,0 +) +*158 (MRCItem +litem &138 +pos 4 +dimension 20 +uid 13371,0 +) +*159 (MRCItem +litem &139 +pos 3 +dimension 20 +uid 13620,0 +) +*160 (MRCItem +litem &140 +pos 6 +dimension 20 +uid 14915,0 +) +*161 (MRCItem +litem &141 +pos 8 +dimension 20 +uid 14983,0 +) +*162 (MRCItem +litem &142 +pos 9 +dimension 20 +uid 15220,0 +) +*163 (MRCItem +litem &143 +pos 10 +dimension 20 +uid 15222,0 +) +*164 (MRCItem +litem &144 +pos 11 +dimension 20 +uid 15224,0 +) +*165 (MRCItem +litem &145 +pos 12 +dimension 20 +uid 15475,0 +) +*166 (MRCItem +litem &146 +pos 13 +dimension 20 +uid 15477,0 +) +*167 (MRCItem +litem &147 +pos 7 +dimension 20 +uid 15589,0 +) +*168 (MRCItem +litem &148 +pos 14 +dimension 20 +uid 16110,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*169 (MRCItem +litem &125 +pos 0 +dimension 20 +uid 10794,0 +) +*170 (MRCItem +litem &127 +pos 1 +dimension 50 +uid 10795,0 +) +*171 (MRCItem +litem &128 +pos 2 +dimension 100 +uid 10796,0 +) +*172 (MRCItem +litem &129 +pos 3 +dimension 50 +uid 10797,0 +) +*173 (MRCItem +litem &130 +pos 4 +dimension 100 +uid 10798,0 +) +*174 (MRCItem +litem &131 +pos 5 +dimension 100 +uid 10799,0 +) +*175 (MRCItem +litem &132 +pos 6 +dimension 50 +uid 10800,0 +) +*176 (MRCItem +litem &133 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *177 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*178 (RefLabelRowHdr +) +*179 (TitleRowHdr +) +*180 (FilterRowHdr +) +*181 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*182 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*183 (GroupColHdr +tm "GroupColHdrMgr" +) +*184 (NameColHdr +tm "GenericNameColHdrMgr" +) +*185 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*186 (InitColHdr +tm "GenericValueColHdrMgr" +) +*187 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*188 (EolColHdr +tm "GenericEolColHdrMgr" +) +*189 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 12900,0 +) +*190 (LogGeneric +generic (GiElement +name "pindex" +type "natural" +value "7" +) +uid 13874,0 +) +*191 (LogGeneric +generic (GiElement +name "paddr" +type "positive" +value "16#003#" +) +uid 14113,0 +) +*192 (LogGeneric +generic (GiElement +name "pmask" +type "positive" +value "16#FFF#" +) +uid 14352,0 +) +] +) +pdm (PhysicalDM +uid 10815,0 +optionalChildren [ +*193 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *194 (MRCItem +litem &177 +pos 4 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*195 (MRCItem +litem &178 +pos 0 +dimension 20 +uid 10818,0 +) +*196 (MRCItem +litem &179 +pos 1 +dimension 23 +uid 10819,0 +) +*197 (MRCItem +litem &180 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*198 (MRCItem +litem &189 +pos 3 +dimension 20 +uid 12899,0 +) +*199 (MRCItem +litem &190 +pos 0 +dimension 20 +uid 13873,0 +) +*200 (MRCItem +litem &191 +pos 1 +dimension 20 +uid 14112,0 +) +*201 (MRCItem +litem &192 +pos 2 +dimension 20 +uid 14351,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*202 (MRCItem +litem &181 +pos 0 +dimension 20 +uid 10822,0 +) +*203 (MRCItem +litem &183 +pos 1 +dimension 50 +uid 10823,0 +) +*204 (MRCItem +litem &184 +pos 2 +dimension 100 +uid 10824,0 +) +*205 (MRCItem +litem &185 +pos 3 +dimension 100 +uid 10825,0 +) +*206 (MRCItem +litem &186 +pos 4 +dimension 50 +uid 10826,0 +) +*207 (MRCItem +litem &187 +pos 5 +dimension 50 +uid 10827,0 +) +*208 (MRCItem +litem &188 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/symbol.sb new file mode 100644 index 0000000..512ede2 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph/symbol.sb @@ -0,0 +1,1909 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "grlib" +unitName "amba" +) +] +libraryRefs [ +"ieee" +"grlib" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2014,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 203,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +uid 204,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +uid 206,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 5 +suid 11,0 +) +) +uid 207,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 2 +suid 2,0 +) +) +uid 209,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 210,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 211,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 8 +suid 2014,0 +) +) +uid 548,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 132,0 +optionalChildren [ +*24 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 135,0 +) +*25 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 137,0 +) +*26 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*27 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 159,0 +) +*28 (MRCItem +litem &3 +pos 5 +dimension 20 +uid 160,0 +) +*29 (MRCItem +litem &4 +pos 6 +dimension 20 +uid 162,0 +) +*30 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 163,0 +) +*31 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 165,0 +) +*32 (MRCItem +litem &7 +pos 2 +dimension 20 +uid 166,0 +) +*33 (MRCItem +litem &8 +pos 3 +dimension 20 +uid 167,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 547,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*35 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 141,0 +) +*36 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 145,0 +) +*37 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 147,0 +) +*38 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 149,0 +) +*39 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 151,0 +) +*40 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 153,0 +) +*41 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 155,0 +) +*42 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "pindex" +type "natural" +value "7" +) +uid 196,0 +) +*56 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 197,0 +) +*57 (LogGeneric +generic (GiElement +name "paddr" +type "positive" +value "16#003#" +) +uid 474,0 +) +*58 (LogGeneric +generic (GiElement +name "pmask" +type "positive" +value "16#FFF#" +) +uid 476,0 +) +] +) +pdm (PhysicalDM +uid 218,0 +optionalChildren [ +*59 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *60 (MRCItem +litem &43 +pos 4 +dimension 20 +) +uid 172,0 +optionalChildren [ +*61 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 175,0 +) +*62 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 177,0 +) +*63 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*64 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 198,0 +) +*65 (MRCItem +litem &56 +pos 3 +dimension 20 +uid 199,0 +) +*66 (MRCItem +litem &57 +pos 1 +dimension 20 +uid 475,0 +) +*67 (MRCItem +litem &58 +pos 2 +dimension 20 +uid 477,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*68 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 181,0 +) +*69 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 185,0 +) +*70 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 187,0 +) +*71 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 189,0 +) +*72 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 191,0 +) +*73 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 193,0 +) +*74 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriph" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriph" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:21" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerPeriph" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriph/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:21" +) +(vvPair +variable "unit" +value "beamerPeriph" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,25625,36000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "37000,25400,39500,26300" +st "clock" +blo "37000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,18500,15700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +) +*77 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,17625,36000,18375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "37000,17400,39000,18300" +st "apbi" +blo "37000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,21000,11200" +st "apbi : IN apb_slv_in_type ;" +) +thePort (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 2 +suid 2,0 +) +) +) +*78 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,17625,52750,18375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "49001,17400,51001,18300" +st "outX" +ju 2 +blo "51001,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,18500,10300" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*79 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,27625,36000,28375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "37000,27400,40500,28300" +st "reset_n" +blo "37000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,18500,12100" +st "reset_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*80 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,19625,52750,20375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "49001,19400,51001,20300" +st "outY" +ju 2 +blo "51001,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,18500,13000" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*81 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,19625,36000,20375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "courier,9,0" +) +xt "37000,19400,39000,20300" +st "apbo" +blo "37000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,21500,13900" +st "apbo : OUT apb_slv_out_type ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 5 +suid 11,0 +) +) +) +*82 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "46501,23400,51001,24300" +st "selSinCos" +ju 2 +blo "51001,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,18500,14800" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +) +*83 (CptPort +uid 549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,25625,52750,26375" +) +tg (CPTG +uid 551,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 552,0 +va (VaSet +font "courier,9,0" +) +xt "47500,25400,51000,26300" +st "testOut" +ju 2 +blo "51000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 553,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,30500,16600" +st "testOut : OUT std_ulogic_vector (1 TO testOutBitNb)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 8 +suid 2014,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "32768,65280,32768" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,14000,52000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "36600,29800,43100,30700" +st "SystemOnChip" +blo "36600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "36600,30700,43100,31600" +st "beamerPeriph" +blo "36600,31400" +) +) +gi *84 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "36000,33600,52000,39000" +st "Generic Declarations + +pindex natural 7 +paddr positive 16#003# +pmask positive 16#FFF# +testOutBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "pindex" +type "natural" +value "7" +) +(GiElement +name "paddr" +type "positive" +value "16#003#" +) +(GiElement +name "pmask" +type "positive" +value "16#FFF#" +) +(GiElement +name "testOutBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*85 (Grouping +uid 16,0 +optionalChildren [ +*86 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*91 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *96 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*98 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY grlib; + USE grlib.amba.all;" +tm "PackageList" +) +] +) +windowSize "56,33,1329,883" +viewArea "-1047,-1047,75623,50454" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *99 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *100 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7600,6500,8500" +st "Declarations" +blo "0,8300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8500,3000,9400" +st "Ports:" +blo "0,9200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,16600,2500,17500" +st "User:" +blo "0,17300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7600,7500,8500" +st "Internal User:" +blo "0,8300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17500,2000,17500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7600,0,7600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 691,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/struct.bd new file mode 100644 index 0000000..ec74219 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/struct.bd @@ -0,0 +1,25722 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I0" +duLibraryName "Curves" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 472,0 +) +(Instance +name "I10" +duLibraryName "Curves" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 513,0 +) +(Instance +name "I14" +duLibraryName "Curves" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 725,0 +) +(Instance +name "I1" +duLibraryName "Curves" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 742,0 +) +(Instance +name "I3" +duLibraryName "Curves" +duName "periphSpeedReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1816,0 +) +(Instance +name "I5" +duLibraryName "Curves" +duName "periphSizeReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1853,0 +) +(Instance +name "I6" +duLibraryName "Curves" +duName "interpolatorTrigger" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 1919,0 +) +(Instance +name "I18" +duLibraryName "Curves" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +mwi 0 +uid 3378,0 +) +(Instance +name "I15" +duLibraryName "Curves" +duName "periphSpeedController" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 3623,0 +) +(Instance +name "I20" +duLibraryName "Curves" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +mwi 0 +uid 3681,0 +) +(Instance +name "I22" +duLibraryName "Curves" +duName "periphWritePulse" +elements [ +] +mwi 0 +uid 4245,0 +) +(Instance +name "I23" +duLibraryName "Curves" +duName "periphWritePulse" +elements [ +] +mwi 0 +uid 4300,0 +) +(Instance +name "I24" +duLibraryName "Curves" +duName "sawtoothGen" +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 4923,0 +) +(Instance +name "I25" +duLibraryName "Curves" +duName "sinCosTable" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +mwi 0 +uid 5956,0 +) +(Instance +name "I26" +duLibraryName "sequential" +duName "registerULogicVector" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 7019,0 +) +(Instance +name "I27" +duLibraryName "sequential" +duName "registerUnsigned" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 7075,0 +) +(Instance +name "I28" +duLibraryName "Curves" +duName "periphWritePulse" +elements [ +] +mwi 0 +uid 7695,0 +) +(Instance +name "I29" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 7770,0 +) +(Instance +name "I4" +duLibraryName "Curves" +duName "periphControlReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 8139,0 +) +(Instance +name "I8" +duLibraryName "Curves" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 8192,0 +) +(Instance +name "I12" +duLibraryName "Curves" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 8237,0 +) +(Instance +name "I21" +duLibraryName "Curves" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 8656,0 +) +(Instance +name "I16" +duLibraryName "Curves" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 8693,0 +) +(Instance +name "I11" +duLibraryName "Curves" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 9102,0 +) +(Instance +name "I7" +duLibraryName "Curves" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 9143,0 +) +(Instance +name "I13" +duLibraryName "Curves" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 9190,0 +) +(Instance +name "I9" +duLibraryName "Curves" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 9235,0 +) +(Instance +name "I30" +duLibraryName "Curves" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +mwi 0 +uid 10416,0 +) +(Instance +name "I32" +duLibraryName "Curves" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 10494,0 +) +(Instance +name "I2" +duLibraryName "Curves" +duName "periphAddressDecoder" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 10651,0 +) +(Instance +name "I19" +duLibraryName "Curves" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11389,0 +) +(Instance +name "I17" +duLibraryName "Curves" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11434,0 +) +(Instance +name "I31" +duLibraryName "Curves" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11479,0 +) +(Instance +name "I33" +duLibraryName "Curves" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11488,0 +) +(Instance +name "I34" +duLibraryName "Curves" +duName "dacInterface" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11858,0 +) +(Instance +name "I35" +duLibraryName "Curves" +duName "dacInterface" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11943,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb3" +number "3" +) +(EmbeddedInstance +name "eb4" +number "4" +) +(EmbeddedInstance +name "eb5" +number "5" +) +(EmbeddedInstance +name "eb6" +number "6" +) +(EmbeddedInstance +name "eb7" +number "7" +) +(EmbeddedInstance +name "eb8" +number "8" +) +(EmbeddedInstance +name "eb9" +number "9" +) +(EmbeddedInstance +name "eb10" +number "10" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@blanking\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@blanking\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@blanking" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriphBlanking" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphBlanking" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:01:52" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerPeriphBlanking" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@blanking\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriphBlanking\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:01:52" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,197000,274000,198000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,197500,257200,197500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,193000,278000,194000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,193500,274200,193500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,195000,274000,196000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,195500,257200,195500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,195000,257000,196000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,195500,253200,195500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,194000,294000,198000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,194200,288300,195400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "278000,193000,294000,194000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "278200,193500,278200,193500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,193000,274000,195000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "258350,193400,268650,194600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,196000,257000,197000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,196500,253200,196500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,197000,257000,198000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,197500,253200,197500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,196000,274000,197000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,196500,257200,196500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "253000,193000,294000,198000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 53,0 +shape (CompositeShape +uid 54,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 55,0 +sl 0 +ro 270 +xt "1000,31625,2500,32375" +) +(Line +uid 56,0 +sl 0 +ro 270 +xt "2500,32000,3000,32000" +pts [ +"2500,32000" +"3000,32000" +] +) +] +) +tg (WTG +uid 57,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 58,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-24700,31300,0,32700" +st "addr : (addressBitNb-1 DOWNTO 0)" +ju 2 +blo "0,32500" +tm "WireNameMgr" +) +) +) +*13 (Net +uid 65,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 1,0 +) +declText (MLText +uid 66,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,3100,238600,4100" +st "addr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*14 (PortIoIn +uid 67,0 +shape (CompositeShape +uid 68,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 69,0 +sl 0 +ro 270 +xt "69000,23625,70500,24375" +) +(Line +uid 70,0 +sl 0 +ro 270 +xt "70500,24000,71000,24000" +pts [ +"70500,24000" +"71000,24000" +] +) +] +) +tg (WTG +uid 71,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 72,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "64200,23300,68000,24700" +st "clock" +ju 2 +blo "68000,24500" +tm "WireNameMgr" +) +) +) +*15 (Net +uid 79,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +declText (MLText +uid 80,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,4000,226700,5000" +st "clock : std_ulogic" +) +) +*16 (PortIoIn +uid 81,0 +shape (CompositeShape +uid 82,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 83,0 +sl 0 +ro 270 +xt "17000,59625,18500,60375" +) +(Line +uid 84,0 +sl 0 +ro 270 +xt "18500,60000,19000,60000" +pts [ +"18500,60000" +"19000,60000" +] +) +] +) +tg (WTG +uid 85,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 86,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13900,59300,16000,60700" +st "cs" +ju 2 +blo "16000,60500" +tm "WireNameMgr" +) +) +) +*17 (Net +uid 93,0 +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 3,0 +) +declText (MLText +uid 94,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,9400,226400,10400" +st "cs : std_ulogic" +) +) +*18 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "289500,153625,291000,154375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "289000,154000,289500,154000" +pts [ +"289000,154000" +"289500,154000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,153300,295700,154700" +st "outX" +blo "292000,154500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,2200,226800,3200" +st "outX : std_ulogic" +) +) +*20 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "289500,116625,291000,117375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "289000,117000,289500,117000" +pts [ +"289000,117000" +"289500,117000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,116300,295600,117700" +st "outY" +blo "292000,117500" +tm "WireNameMgr" +) +) +) +*21 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,5800,226800,6800" +st "outY : std_ulogic" +) +) +*22 (PortIoIn +uid 137,0 +shape (CompositeShape +uid 138,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 139,0 +sl 0 +ro 270 +xt "17000,95625,18500,96375" +) +(Line +uid 140,0 +sl 0 +ro 270 +xt "18500,96000,19000,96000" +pts [ +"18500,96000" +"19000,96000" +] +) +] +) +tg (WTG +uid 141,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 142,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13900,95300,16000,96700" +st "rd" +ju 2 +blo "16000,96500" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 149,0 +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 6,0 +) +declText (MLText +uid 150,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,7600,226400,8600" +st "rd : std_ulogic" +) +) +*24 (PortIoIn +uid 151,0 +shape (CompositeShape +uid 152,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 153,0 +sl 0 +ro 270 +xt "69000,25625,70500,26375" +) +(Line +uid 154,0 +sl 0 +ro 270 +xt "70500,26000,71000,26000" +pts [ +"70500,26000" +"71000,26000" +] +) +] +) +tg (WTG +uid 155,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 156,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "63900,25300,68000,26700" +st "reset" +ju 2 +blo "68000,26500" +tm "WireNameMgr" +) +) +) +*25 (Net +uid 163,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +declText (MLText +uid 164,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,4900,226700,5900" +st "reset : std_ulogic" +) +) +*26 (PortIoIn +uid 165,0 +shape (CompositeShape +uid 166,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 167,0 +sl 0 +ro 270 +xt "17000,57625,18500,58375" +) +(Line +uid 168,0 +sl 0 +ro 270 +xt "18500,58000,19000,58000" +pts [ +"18500,58000" +"19000,58000" +] +) +] +) +tg (WTG +uid 169,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 170,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "12700,57300,16000,58700" +st "wrH" +ju 2 +blo "16000,58500" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 177,0 +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +declText (MLText +uid 178,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,8500,226900,9500" +st "wrH : std_ulogic" +) +) +*28 (PortIoIn +uid 179,0 +shape (CompositeShape +uid 180,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 181,0 +sl 0 +ro 270 +xt "17000,79625,18500,80375" +) +(Line +uid 182,0 +sl 0 +ro 270 +xt "18500,80000,19000,80000" +pts [ +"18500,80000" +"19000,80000" +] +) +] +) +tg (WTG +uid 183,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 184,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "12900,79300,16000,80700" +st "wrL" +ju 2 +blo "16000,80500" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 191,0 +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 9,0 +) +declText (MLText +uid 192,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,10300,226700,11300" +st "wrL : std_ulogic" +) +) +*30 (Net +uid 436,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 52 +suid 10,0 +) +declText (MLText +uid 437,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,56200,231600,57200" +st "SIGNAL newPolynom : std_ulogic" +) +) +*31 (SaComponent +uid 472,0 +optionalChildren [ +*32 (CptPort +uid 456,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 457,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,157625,265000,158375" +) +tg (CPTG +uid 458,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 459,0 +va (VaSet +) +xt "266000,157400,269400,158600" +st "clock" +blo "266000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*33 (CptPort +uid 460,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 461,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,153625,265000,154375" +) +tg (CPTG +uid 462,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 463,0 +va (VaSet +) +xt "266000,153400,272200,154600" +st "parallelIn" +blo "266000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*34 (CptPort +uid 464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 465,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,153625,281750,154375" +) +tg (CPTG +uid 466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 467,0 +va (VaSet +) +xt "274601,153400,280001,154600" +st "serialOut" +ju 2 +blo "280001,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +) +) +) +*35 (CptPort +uid 468,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 469,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,159625,265000,160375" +) +tg (CPTG +uid 470,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 471,0 +va (VaSet +) +xt "266000,159400,269300,160600" +st "reset" +blo "266000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 473,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,150000,281000,162000" +) +oxt "114000,86000,130000,98000" +ttg (MlTextGroup +uid 474,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 475,0 +va (VaSet +) +xt "265600,161800,269900,163000" +st "Curves" +blo "265600,162800" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 476,0 +va (VaSet +) +xt "265600,162800,268700,164000" +st "DAC" +blo "265600,163800" +tm "CptNameMgr" +) +*38 (Text +uid 477,0 +va (VaSet +) +xt "265600,163800,267500,165000" +st "I0" +blo "265600,164800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 478,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 479,0 +text (MLText +uid 480,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,165600,283100,166600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*39 (SaComponent +uid 513,0 +optionalChildren [ +*40 (CptPort +uid 522,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 523,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,153625,257750,154375" +) +tg (CPTG +uid 524,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 525,0 +va (VaSet +) +xt "248200,153400,256000,154600" +st "unsignedOut" +ju 2 +blo "256000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*41 (CptPort +uid 526,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 527,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,153625,241000,154375" +) +tg (CPTG +uid 528,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 529,0 +va (VaSet +) +xt "242000,153400,247100,154600" +st "signedIn" +blo "242000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +] +shape (Rectangle +uid 514,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,150000,257000,158000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 515,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 516,0 +va (VaSet +) +xt "241600,158800,245900,160000" +st "Curves" +blo "241600,159800" +tm "BdLibraryNameMgr" +) +*43 (Text +uid 517,0 +va (VaSet +) +xt "241600,159800,251800,161000" +st "offsetToUnsigned" +blo "241600,160800" +tm "CptNameMgr" +) +*44 (Text +uid 518,0 +va (VaSet +) +xt "241600,160800,244200,162000" +st "I10" +blo "241600,161800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 519,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 520,0 +text (MLText +uid 521,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,161800,256300,162800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*45 (Net +uid 542,0 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 56 +suid 11,0 +) +declText (MLText +uid 543,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,59800,240700,60800" +st "SIGNAL sampleX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*46 (Net +uid 544,0 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 79 +suid 12,0 +) +declText (MLText +uid 545,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,80500,241800,81500" +st "SIGNAL unsignedX : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*47 (Net +uid 546,0 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 68 +suid 13,0 +) +declText (MLText +uid 547,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,70600,240800,71600" +st "SIGNAL samplesX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*48 (Net +uid 548,0 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 57 +suid 14,0 +) +declText (MLText +uid 549,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,60700,240900,61700" +st "SIGNAL sampleX1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*49 (Net +uid 550,0 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 58 +suid 15,0 +) +declText (MLText +uid 551,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,61600,240900,62600" +st "SIGNAL sampleX2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*50 (Net +uid 552,0 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 59 +suid 16,0 +) +declText (MLText +uid 553,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,62500,240900,63500" +st "SIGNAL sampleX3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*51 (Net +uid 554,0 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 60 +suid 17,0 +) +declText (MLText +uid 555,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,63400,240900,64400" +st "SIGNAL sampleX4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*52 (Net +uid 556,0 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 21 +suid 18,0 +) +declText (MLText +uid 557,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,28300,239500,29300" +st "SIGNAL aX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*53 (Net +uid 558,0 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 27 +suid 19,0 +) +declText (MLText +uid 559,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,33700,239500,34700" +st "SIGNAL bX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*54 (Net +uid 560,0 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 29 +suid 20,0 +) +declText (MLText +uid 561,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,35500,239400,36500" +st "SIGNAL cX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*55 (Net +uid 562,0 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 35 +suid 21,0 +) +declText (MLText +uid 563,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,40900,239500,41900" +st "SIGNAL dX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*56 (SaComponent +uid 725,0 +optionalChildren [ +*57 (CptPort +uid 734,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 735,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,116625,257750,117375" +) +tg (CPTG +uid 736,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 737,0 +va (VaSet +) +xt "248200,116400,256000,117600" +st "unsignedOut" +ju 2 +blo "256000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*58 (CptPort +uid 738,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 739,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,116625,241000,117375" +) +tg (CPTG +uid 740,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 741,0 +va (VaSet +) +xt "242000,116400,247100,117600" +st "signedIn" +blo "242000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +] +shape (Rectangle +uid 726,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,113000,257000,121000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 727,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 728,0 +va (VaSet +) +xt "241600,121800,245900,123000" +st "Curves" +blo "241600,122800" +tm "BdLibraryNameMgr" +) +*60 (Text +uid 729,0 +va (VaSet +) +xt "241600,122800,251800,124000" +st "offsetToUnsigned" +blo "241600,123800" +tm "CptNameMgr" +) +*61 (Text +uid 730,0 +va (VaSet +) +xt "241600,123800,244200,125000" +st "I14" +blo "241600,124800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 731,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 732,0 +text (MLText +uid 733,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,124800,256300,125800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*62 (SaComponent +uid 742,0 +optionalChildren [ +*63 (CptPort +uid 751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,120625,265000,121375" +) +tg (CPTG +uid 753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 754,0 +va (VaSet +) +xt "266000,120400,269400,121600" +st "clock" +blo "266000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*64 (CptPort +uid 755,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 756,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,116625,265000,117375" +) +tg (CPTG +uid 757,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 758,0 +va (VaSet +) +xt "266000,116400,272200,117600" +st "parallelIn" +blo "266000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*65 (CptPort +uid 759,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 760,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,116625,281750,117375" +) +tg (CPTG +uid 761,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 762,0 +va (VaSet +) +xt "274601,116400,280001,117600" +st "serialOut" +ju 2 +blo "280001,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +) +) +) +*66 (CptPort +uid 763,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 764,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,122625,265000,123375" +) +tg (CPTG +uid 765,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 766,0 +va (VaSet +) +xt "266000,122400,269300,123600" +st "reset" +blo "266000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 743,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,113000,281000,125000" +) +oxt "114000,86000,130000,98000" +ttg (MlTextGroup +uid 744,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 745,0 +va (VaSet +) +xt "265600,124800,269900,126000" +st "Curves" +blo "265600,125800" +tm "BdLibraryNameMgr" +) +*68 (Text +uid 746,0 +va (VaSet +) +xt "265600,125800,268700,127000" +st "DAC" +blo "265600,126800" +tm "CptNameMgr" +) +*69 (Text +uid 747,0 +va (VaSet +) +xt "265600,126800,267500,128000" +st "I1" +blo "265600,127800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 748,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 749,0 +text (MLText +uid 750,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,128600,283100,129600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*70 (Net +uid 865,0 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 69 +suid 22,0 +) +declText (MLText +uid 866,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,71500,240800,72500" +st "SIGNAL samplesY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*71 (Net +uid 867,0 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 62 +suid 23,0 +) +declText (MLText +uid 868,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,65200,240900,66200" +st "SIGNAL sampleY1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*72 (Net +uid 869,0 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 63 +suid 24,0 +) +declText (MLText +uid 870,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,66100,240900,67100" +st "SIGNAL sampleY2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*73 (Net +uid 871,0 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 64 +suid 25,0 +) +declText (MLText +uid 872,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,67000,240900,68000" +st "SIGNAL sampleY3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*74 (Net +uid 873,0 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 65 +suid 26,0 +) +declText (MLText +uid 874,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,67900,240900,68900" +st "SIGNAL sampleY4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*75 (Net +uid 875,0 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 22 +suid 27,0 +) +declText (MLText +uid 876,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,29200,239500,30200" +st "SIGNAL aY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*76 (Net +uid 877,0 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 28 +suid 28,0 +) +declText (MLText +uid 878,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,34600,239500,35600" +st "SIGNAL bY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*77 (Net +uid 879,0 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 30 +suid 29,0 +) +declText (MLText +uid 880,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,36400,239400,37400" +st "SIGNAL cY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*78 (Net +uid 881,0 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 36 +suid 30,0 +) +declText (MLText +uid 882,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,41800,239500,42800" +st "SIGNAL dY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*79 (Net +uid 883,0 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 61 +suid 31,0 +) +declText (MLText +uid 884,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,64300,240700,65300" +st "SIGNAL sampleY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*80 (Net +uid 885,0 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 80 +suid 32,0 +) +declText (MLText +uid 886,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,81400,241800,82400" +st "SIGNAL unsignedY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*81 (Net +uid 990,0 +decl (Decl +n "selControl" +t "std_ulogic" +o 71 +suid 33,0 +) +declText (MLText +uid 991,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,73300,230400,74300" +st "SIGNAL selControl : std_ulogic" +) +) +*82 (Net +uid 1047,0 +decl (Decl +n "selSize" +t "std_ulogic" +o 72 +suid 34,0 +) +declText (MLText +uid 1048,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,74200,230000,75200" +st "SIGNAL selSize : std_ulogic" +) +) +*83 (Net +uid 1055,0 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 73 +suid 35,0 +) +declText (MLText +uid 1056,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,75100,230600,76100" +st "SIGNAL selSpeed : std_ulogic" +) +) +*84 (Net +uid 1063,0 +decl (Decl +n "selX" +t "std_ulogic" +o 74 +suid 36,0 +) +declText (MLText +uid 1064,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,76000,229800,77000" +st "SIGNAL selX : std_ulogic" +) +) +*85 (Net +uid 1071,0 +decl (Decl +n "selY" +t "std_ulogic" +o 75 +suid 37,0 +) +declText (MLText +uid 1072,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,76900,229800,77900" +st "SIGNAL selY : std_ulogic" +) +) +*86 (Net +uid 1348,0 +decl (Decl +n "run" +t "std_ulogic" +o 55 +suid 38,0 +) +declText (MLText +uid 1349,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,58900,229800,59900" +st "SIGNAL run : std_ulogic" +) +) +*87 (Net +uid 1356,0 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 81 +suid 39,0 +) +declText (MLText +uid 1357,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,82300,231200,83300" +st "SIGNAL updatePattern : std_ulogic" +) +) +*88 (Net +uid 1470,0 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 53 +suid 40,0 +) +declText (MLText +uid 1471,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,57100,242000,58100" +st "SIGNAL patternSize : unsigned(dataBitNb/2-1 DOWNTO 0)" +) +) +*89 (PortIoIn +uid 1565,0 +shape (CompositeShape +uid 1566,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1567,0 +sl 0 +ro 270 +xt "17000,9625,18500,10375" +) +(Line +uid 1568,0 +sl 0 +ro 270 +xt "18500,10000,19000,10000" +pts [ +"18500,10000" +"19000,10000" +] +) +] +) +tg (WTG +uid 1569,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1570,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-7800,9300,16000,10700" +st "dataIn : (dataBitNb-1 DOWNTO 0)" +ju 2 +blo "16000,10500" +tm "WireNameMgr" +) +) +) +*90 (PortIoOut +uid 1577,0 +shape (CompositeShape +uid 1578,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1579,0 +sl 0 +ro 90 +xt "17000,3625,18500,4375" +) +(Line +uid 1580,0 +sl 0 +ro 90 +xt "18500,4000,19000,4000" +pts [ +"19000,4000" +"18500,4000" +] +) +] +) +tg (WTG +uid 1581,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1582,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-8800,3300,16000,4700" +st "dataOut : (dataBitNb-1 DOWNTO 0)" +ju 2 +blo "16000,4500" +tm "WireNameMgr" +) +) +) +*91 (Net +uid 1589,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 41,0 +) +declText (MLText +uid 1590,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,11200,240700,12200" +st "dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*92 (Net +uid 1776,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 82 +suid 42,0 +) +declText (MLText +uid 1777,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,83200,241600,84200" +st "SIGNAL updatePeriod : unsigned(dataBitNb-1 DOWNTO 0)" +) +) +*93 (SaComponent +uid 1816,0 +optionalChildren [ +*94 (CptPort +uid 1784,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1785,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,67625,91750,68375" +) +tg (CPTG +uid 1786,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1787,0 +va (VaSet +) +xt "82000,67400,90000,68600" +st "updatePeriod" +ju 2 +blo "90000,68400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*95 (CptPort +uid 1788,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1789,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,67625,75000,68375" +) +tg (CPTG +uid 1790,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1791,0 +va (VaSet +) +xt "76000,67400,80000,68600" +st "dataIn" +blo "76000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*96 (CptPort +uid 1792,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1793,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,69625,75000,70375" +) +tg (CPTG +uid 1794,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1795,0 +va (VaSet +) +xt "76000,69400,80800,70600" +st "dataOut" +blo "76000,70400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +*97 (CptPort +uid 1796,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1797,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,73625,75000,74375" +) +tg (CPTG +uid 1798,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1799,0 +va (VaSet +) +xt "76000,73400,84400,74600" +st "writeHighByte" +blo "76000,74400" +) +) +thePort (LogicalPort +decl (Decl +n "writeHighByte" +t "std_ulogic" +o 4 +) +) +) +*98 (CptPort +uid 1800,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1801,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,77625,75000,78375" +) +tg (CPTG +uid 1802,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1803,0 +va (VaSet +) +xt "76000,77400,77900,78600" +st "en" +blo "76000,78400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +) +) +) +*99 (CptPort +uid 1804,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1805,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,81625,75000,82375" +) +tg (CPTG +uid 1806,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1807,0 +va (VaSet +) +xt "76000,81400,79400,82600" +st "clock" +blo "76000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 6 +) +) +) +*100 (CptPort +uid 1808,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1809,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,83625,75000,84375" +) +tg (CPTG +uid 1810,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1811,0 +va (VaSet +) +xt "76000,83400,79300,84600" +st "reset" +blo "76000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 7 +) +) +) +*101 (CptPort +uid 1812,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1813,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,75625,75000,76375" +) +tg (CPTG +uid 1814,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1815,0 +va (VaSet +) +xt "76000,75400,84000,76600" +st "writeLowByte" +blo "76000,76400" +) +) +thePort (LogicalPort +decl (Decl +n "writeLowByte" +t "std_ulogic" +o 8 +) +) +) +] +shape (Rectangle +uid 1817,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,64000,91000,86000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1818,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +uid 1819,0 +va (VaSet +) +xt "75600,85800,79900,87000" +st "Curves" +blo "75600,86800" +tm "BdLibraryNameMgr" +) +*103 (Text +uid 1820,0 +va (VaSet +) +xt "75600,86800,85100,88000" +st "periphSpeedReg" +blo "75600,87800" +tm "CptNameMgr" +) +*104 (Text +uid 1821,0 +va (VaSet +) +xt "75600,87800,77500,89000" +st "I3" +blo "75600,88800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1822,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1823,0 +text (MLText +uid 1824,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,89600,91600,90600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*105 (SaComponent +uid 1853,0 +optionalChildren [ +*106 (CptPort +uid 1825,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1826,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,39625,91750,40375" +) +tg (CPTG +uid 1827,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1828,0 +va (VaSet +) +xt "82900,39400,90000,40600" +st "patternSize" +ju 2 +blo "90000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 1 +) +) +) +*107 (CptPort +uid 1829,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1830,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,39625,75000,40375" +) +tg (CPTG +uid 1831,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1832,0 +va (VaSet +) +xt "76000,39400,80000,40600" +st "dataIn" +blo "76000,40400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*108 (CptPort +uid 1833,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1834,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,41625,75000,42375" +) +tg (CPTG +uid 1835,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1836,0 +va (VaSet +) +xt "76000,41400,80800,42600" +st "dataOut" +blo "76000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +*109 (CptPort +uid 1837,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1838,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,45625,75000,46375" +) +tg (CPTG +uid 1839,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1840,0 +va (VaSet +) +xt "76000,45400,79100,46600" +st "write" +blo "76000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 4 +) +) +) +*110 (CptPort +uid 1841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1842,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,47625,75000,48375" +) +tg (CPTG +uid 1843,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1844,0 +va (VaSet +) +xt "76000,47400,77900,48600" +st "en" +blo "76000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +) +) +) +*111 (CptPort +uid 1845,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1846,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,51625,75000,52375" +) +tg (CPTG +uid 1847,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1848,0 +va (VaSet +) +xt "76000,51400,79400,52600" +st "clock" +blo "76000,52400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 6 +) +) +) +*112 (CptPort +uid 1849,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1850,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,53625,75000,54375" +) +tg (CPTG +uid 1851,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1852,0 +va (VaSet +) +xt "76000,53400,79300,54600" +st "reset" +blo "76000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 7 +) +) +) +] +shape (Rectangle +uid 1854,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,36000,91000,56000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1855,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 1856,0 +va (VaSet +) +xt "75600,55800,79900,57000" +st "Curves" +blo "75600,56800" +tm "BdLibraryNameMgr" +) +*114 (Text +uid 1857,0 +va (VaSet +) +xt "75600,56800,84100,58000" +st "periphSizeReg" +blo "75600,57800" +tm "CptNameMgr" +) +*115 (Text +uid 1858,0 +va (VaSet +) +xt "75600,57800,77500,59000" +st "I5" +blo "75600,58800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1859,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1860,0 +text (MLText +uid 1861,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,59600,91600,60600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*116 (SaComponent +uid 1919,0 +optionalChildren [ +*117 (CptPort +uid 1903,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1904,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,175625,177750,176375" +) +tg (CPTG +uid 1905,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1906,0 +va (VaSet +) +xt "169400,175400,176000,176600" +st "triggerOut" +ju 2 +blo "176000,176400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +) +) +) +*118 (CptPort +uid 1907,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,179625,161000,180375" +) +tg (CPTG +uid 1909,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1910,0 +va (VaSet +) +xt "162000,179400,165400,180600" +st "clock" +blo "162000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*119 (CptPort +uid 1911,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1912,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,181625,161000,182375" +) +tg (CPTG +uid 1913,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1914,0 +va (VaSet +) +xt "162000,181400,165300,182600" +st "reset" +blo "162000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*120 (CptPort +uid 1915,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1916,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,175625,161000,176375" +) +tg (CPTG +uid 1917,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1918,0 +va (VaSet +) +xt "162000,175400,163900,176600" +st "en" +blo "162000,176400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1920,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,172000,177000,184000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1921,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*121 (Text +uid 1922,0 +va (VaSet +) +xt "161600,184800,165900,186000" +st "Curves" +blo "161600,185800" +tm "BdLibraryNameMgr" +) +*122 (Text +uid 1923,0 +va (VaSet +) +xt "161600,185800,172400,187000" +st "interpolatorTrigger" +blo "161600,186800" +tm "CptNameMgr" +) +*123 (Text +uid 1924,0 +va (VaSet +) +xt "161600,186800,163500,188000" +st "I6" +blo "161600,187800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1925,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1926,0 +text (MLText +uid 1927,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,187600,182800,188600" +st "counterBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*124 (Net +uid 1993,0 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 41 +suid 43,0 +) +declText (MLText +uid 1994,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,46300,231400,47300" +st "SIGNAL interpolationEnable : std_ulogic" +) +) +*125 (Net +uid 2776,0 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 24 +suid 44,0 +) +declText (MLText +uid 2777,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,31000,244900,32000" +st "SIGNAL addrX : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*126 (Net +uid 2850,0 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 31 +suid 45,0 +) +declText (MLText +uid 2851,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,37300,230200,38300" +st "SIGNAL cntIncrX : std_ulogic" +) +) +*127 (Net +uid 2852,0 +decl (Decl +n "memWrX" +t "std_ulogic" +o 46 +suid 46,0 +) +declText (MLText +uid 2853,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,50800,231300,51800" +st "SIGNAL memWrX : std_ulogic" +) +) +*128 (Net +uid 2854,0 +decl (Decl +n "memEnX" +t "std_ulogic" +o 43 +suid 47,0 +) +declText (MLText +uid 2855,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,48100,231200,49100" +st "SIGNAL memEnX : std_ulogic" +) +) +*129 (HdlText +uid 3135,0 +optionalChildren [ +*130 (EmbeddedText +uid 3140,0 +commentText (CommentText +uid 3141,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3142,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,152000,146000,156000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3143,0 +va (VaSet +) +xt "132200,152200,144900,155800" +st " +samplesX <= cosine when selSinCos = '1' + else signed(memX); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3136,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,150000,147000,158000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3137,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +uid 3138,0 +va (VaSet +) +xt "131400,158000,134000,159200" +st "eb2" +blo "131400,159000" +tm "HdlTextNameMgr" +) +*132 (Text +uid 3139,0 +va (VaSet +) +xt "131400,159000,132800,160200" +st "2" +blo "131400,160000" +tm "HdlTextNumberMgr" +) +] +) +) +*133 (Net +uid 3152,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 49 +suid 48,0 +) +declText (MLText +uid 3153,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,53500,244700,54500" +st "SIGNAL memX : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*134 (SaComponent +uid 3378,0 +optionalChildren [ +*135 (CptPort +uid 3354,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3355,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,159625,75000,160375" +) +tg (CPTG +uid 3356,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3357,0 +va (VaSet +) +xt "76000,159400,77900,160600" +st "en" +blo "76000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +) +) +) +*136 (CptPort +uid 3358,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3359,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,163625,75000,164375" +) +tg (CPTG +uid 3360,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3361,0 +va (VaSet +) +xt "76000,163400,79400,164600" +st "clock" +blo "76000,164400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*137 (CptPort +uid 3362,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3363,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,165625,75000,166375" +) +tg (CPTG +uid 3364,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3365,0 +va (VaSet +) +xt "76000,165400,79300,166600" +st "reset" +blo "76000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*138 (CptPort +uid 3366,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3367,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,157625,75000,158375" +) +tg (CPTG +uid 3368,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3369,0 +va (VaSet +) +xt "76000,157400,82500,158600" +st "updateMem" +blo "76000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +) +) +) +*139 (CptPort +uid 3370,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3371,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,155625,91750,156375" +) +tg (CPTG +uid 3372,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3373,0 +va (VaSet +) +xt "87100,155400,90000,156600" +st "addr" +ju 2 +blo "90000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*140 (CptPort +uid 3374,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3375,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,155625,75000,156375" +) +tg (CPTG +uid 3376,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3377,0 +va (VaSet +) +xt "76000,155400,83100,156600" +st "patternSize" +blo "76000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 3379,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,152000,91000,168000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3380,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +uid 3381,0 +va (VaSet +) +xt "75600,167800,79900,169000" +st "Curves" +blo "75600,168800" +tm "BdLibraryNameMgr" +) +*142 (Text +uid 3382,0 +va (VaSet +) +xt "75600,168800,91000,170000" +st "blockRAMAddressCounter" +blo "75600,169800" +tm "CptNameMgr" +) +*143 (Text +uid 3383,0 +va (VaSet +) +xt "75600,169800,78200,171000" +st "I18" +blo "75600,170800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3384,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3385,0 +text (MLText +uid 3386,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,171600,98800,173600" +st "addressBitNb = patternAddressBitNb ( positive ) +patternSizeBitNb = dataBitNb/2 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*144 (SaComponent +uid 3623,0 +optionalChildren [ +*145 (CptPort +uid 3603,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3604,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,65625,123750,66375" +) +tg (CPTG +uid 3605,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3606,0 +va (VaSet +) +xt "116100,65400,122000,66600" +st "enableOut" +ju 2 +blo "122000,66400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "enableOut" +t "std_ulogic" +o 1 +) +) +) +*146 (CptPort +uid 3607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3608,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,71625,107000,72375" +) +tg (CPTG +uid 3609,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3610,0 +va (VaSet +) +xt "108000,71400,111400,72600" +st "clock" +blo "108000,72400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*147 (CptPort +uid 3611,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3612,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,73625,107000,74375" +) +tg (CPTG +uid 3613,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3614,0 +va (VaSet +) +xt "108000,73400,111300,74600" +st "reset" +blo "108000,74400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*148 (CptPort +uid 3615,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3616,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,67625,107000,68375" +) +tg (CPTG +uid 3617,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3618,0 +va (VaSet +) +xt "108000,67400,116000,68600" +st "updatePeriod" +blo "108000,68400" +) +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*149 (CptPort +uid 3619,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3620,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,65625,107000,66375" +) +tg (CPTG +uid 3621,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3622,0 +va (VaSet +) +xt "108000,65400,113100,66600" +st "enableIn" +blo "108000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "enableIn" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 3624,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,62000,123000,76000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3625,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*150 (Text +uid 3626,0 +va (VaSet +) +xt "107600,75800,111900,77000" +st "Curves" +blo "107600,76800" +tm "BdLibraryNameMgr" +) +*151 (Text +uid 3627,0 +va (VaSet +) +xt "107600,76800,120900,78000" +st "periphSpeedController" +blo "107600,77800" +tm "CptNameMgr" +) +*152 (Text +uid 3628,0 +va (VaSet +) +xt "107600,77800,110200,79000" +st "I15" +blo "107600,78800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3629,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3630,0 +text (MLText +uid 3631,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,79600,123600,80600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*153 (SaComponent +uid 3681,0 +optionalChildren [ +*154 (CptPort +uid 3690,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,109625,75000,110375" +) +tg (CPTG +uid 3692,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3693,0 +va (VaSet +) +xt "76000,109400,77900,110600" +st "en" +blo "76000,110400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +) +) +) +*155 (CptPort +uid 3694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,113625,75000,114375" +) +tg (CPTG +uid 3696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3697,0 +va (VaSet +) +xt "76000,113400,79400,114600" +st "clock" +blo "76000,114400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*156 (CptPort +uid 3698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3699,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,115625,75000,116375" +) +tg (CPTG +uid 3700,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3701,0 +va (VaSet +) +xt "76000,115400,79300,116600" +st "reset" +blo "76000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*157 (CptPort +uid 3702,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3703,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,107625,75000,108375" +) +tg (CPTG +uid 3704,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3705,0 +va (VaSet +) +xt "76000,107400,82500,108600" +st "updateMem" +blo "76000,108400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +) +) +) +*158 (CptPort +uid 3706,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3707,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,105625,91750,106375" +) +tg (CPTG +uid 3708,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3709,0 +va (VaSet +) +xt "87100,105400,90000,106600" +st "addr" +ju 2 +blo "90000,106400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*159 (CptPort +uid 3710,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3711,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,105625,75000,106375" +) +tg (CPTG +uid 3712,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3713,0 +va (VaSet +) +xt "76000,105400,83100,106600" +st "patternSize" +blo "76000,106400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 3682,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,102000,91000,118000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3683,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*160 (Text +uid 3684,0 +va (VaSet +) +xt "75600,117800,79900,119000" +st "Curves" +blo "75600,118800" +tm "BdLibraryNameMgr" +) +*161 (Text +uid 3685,0 +va (VaSet +) +xt "75600,118800,91000,120000" +st "blockRAMAddressCounter" +blo "75600,119800" +tm "CptNameMgr" +) +*162 (Text +uid 3686,0 +va (VaSet +) +xt "75600,119800,78200,121000" +st "I20" +blo "75600,120800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3687,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3688,0 +text (MLText +uid 3689,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,121600,98800,123600" +st "addressBitNb = patternAddressBitNb ( positive ) +patternSizeBitNb = dataBitNb/2 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*163 (Net +uid 3827,0 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 32 +suid 49,0 +) +declText (MLText +uid 3828,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,38200,230200,39200" +st "SIGNAL cntIncrY : std_ulogic" +) +) +*164 (Net +uid 3890,0 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 25 +suid 50,0 +) +declText (MLText +uid 3891,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,31900,244900,32900" +st "SIGNAL addrY : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*165 (Net +uid 3892,0 +decl (Decl +n "memWrY" +t "std_ulogic" +o 47 +suid 51,0 +) +declText (MLText +uid 3893,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,51700,231300,52700" +st "SIGNAL memWrY : std_ulogic" +) +) +*166 (Net +uid 3894,0 +decl (Decl +n "memEnY" +t "std_ulogic" +o 44 +suid 52,0 +) +declText (MLText +uid 3895,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,49000,231200,50000" +st "SIGNAL memEnY : std_ulogic" +) +) +*167 (HdlText +uid 3896,0 +optionalChildren [ +*168 (EmbeddedText +uid 3901,0 +commentText (CommentText +uid 3902,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3903,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,115000,146000,119000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3904,0 +va (VaSet +) +xt "132200,115200,144900,118800" +st " +samplesY <= sine when selSinCos = '1' + else signed(memY); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3897,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,113000,147000,121000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3898,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*169 (Text +uid 3899,0 +va (VaSet +) +xt "131400,121000,134000,122200" +st "eb1" +blo "131400,122000" +tm "HdlTextNameMgr" +) +*170 (Text +uid 3900,0 +va (VaSet +) +xt "131400,122000,132800,123200" +st "1" +blo "131400,123000" +tm "HdlTextNumberMgr" +) +] +) +) +*171 (Net +uid 3913,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 50 +suid 53,0 +) +declText (MLText +uid 3914,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,54400,244700,55400" +st "SIGNAL memY : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*172 (PortIoOut +uid 4041,0 +shape (CompositeShape +uid 4042,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4043,0 +sl 0 +ro 270 +xt "289500,5625,291000,6375" +) +(Line +uid 4044,0 +sl 0 +ro 270 +xt "289000,6000,289500,6000" +pts [ +"289000,6000" +"289500,6000" +] +) +] +) +tg (WTG +uid 4045,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4046,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,5300,305600,6700" +st "testOut : (1 TO 16)" +blo "292000,6500" +tm "WireNameMgr" +) +) +) +*173 (Net +uid 4053,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 54,0 +) +declText (MLText +uid 4054,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,12100,234500,13100" +st "testOut : std_ulogic_vector(1 TO 16)" +) +) +*174 (HdlText +uid 4055,0 +optionalChildren [ +*175 (EmbeddedText +uid 4060,0 +commentText (CommentText +uid 4061,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4062,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "266000,5000,280000,27000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4063,0 +va (VaSet +) +xt "266200,5200,278400,26800" +st " +testout(1) <= run; +testout(2) <= updatePattern; +testout(3) <= interpolationEnable; +testout(4) <= newPolynom; +testout(5) <= selSinCos; +testout(6) <= cs; +testout(7) <= rd; +testout(8) <= wrH; +testout(9) <= wrL; +testout(10) <= addrReg(1); +testout(11) <= dataInReg(0); +--testout(10) <= selControl; +--testout(11) <= selSize; +testout(12) <= selSpeed; +testout(13) <= selX; +testout(14) <= selY; +testout(15) <= cntIncrX; +testout(16) <= cntIncrY; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 22000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4056,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "265000,4000,281000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4057,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*176 (Text +uid 4058,0 +va (VaSet +) +xt "265400,28000,268000,29200" +st "eb3" +blo "265400,29000" +tm "HdlTextNameMgr" +) +*177 (Text +uid 4059,0 +va (VaSet +) +xt "265400,29000,266800,30200" +st "3" +blo "265400,30000" +tm "HdlTextNumberMgr" +) +] +) +) +*178 (SaComponent +uid 4245,0 +optionalChildren [ +*179 (CptPort +uid 4225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,57625,43750,58375" +) +tg (CPTG +uid 4227,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4228,0 +va (VaSet +) +xt "35400,57400,42000,58600" +st "writePulse" +ju 2 +blo "42000,58400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writePulse" +t "std_ulogic" +o 1 +) +) +) +*180 (CptPort +uid 4229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4230,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,57625,27000,58375" +) +tg (CPTG +uid 4231,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4232,0 +va (VaSet +) +xt "28000,57400,31100,58600" +st "write" +blo "28000,58400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 2 +) +) +) +*181 (CptPort +uid 4233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4234,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,59625,27000,60375" +) +tg (CPTG +uid 4235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4236,0 +va (VaSet +) +xt "28000,59400,34700,60600" +st "chipSelect" +blo "28000,60400" +) +) +thePort (LogicalPort +decl (Decl +n "chipSelect" +t "std_ulogic" +o 3 +) +) +) +*182 (CptPort +uid 4237,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4238,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,63625,27000,64375" +) +tg (CPTG +uid 4239,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4240,0 +va (VaSet +) +xt "28000,63400,31400,64600" +st "clock" +blo "28000,64400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*183 (CptPort +uid 4241,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4242,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,65625,27000,66375" +) +tg (CPTG +uid 4243,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4244,0 +va (VaSet +) +xt "28000,65400,31300,66600" +st "reset" +blo "28000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 4246,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,54000,43000,68000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4247,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*184 (Text +uid 4248,0 +va (VaSet +) +xt "27600,67800,31900,69000" +st "Curves" +blo "27600,68800" +tm "BdLibraryNameMgr" +) +*185 (Text +uid 4249,0 +va (VaSet +) +xt "27600,68800,37500,70000" +st "periphWritePulse" +blo "27600,69800" +tm "CptNameMgr" +) +*186 (Text +uid 4250,0 +va (VaSet +) +xt "27600,69800,30200,71000" +st "I22" +blo "27600,70800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4251,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4252,0 +text (MLText +uid 4253,0 +va (VaSet +font "Verdana,8,0" +) +xt "-7000,45000,-7000,45000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*187 (Net +uid 4290,0 +decl (Decl +n "wrHPulse" +t "std_ulogic" +o 85 +suid 55,0 +) +declText (MLText +uid 4291,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,85900,230700,86900" +st "SIGNAL wrHPulse : std_ulogic" +) +) +*188 (SaComponent +uid 4300,0 +optionalChildren [ +*189 (CptPort +uid 4309,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4310,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,79625,43750,80375" +) +tg (CPTG +uid 4311,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4312,0 +va (VaSet +) +xt "35400,79400,42000,80600" +st "writePulse" +ju 2 +blo "42000,80400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writePulse" +t "std_ulogic" +o 1 +) +) +) +*190 (CptPort +uid 4313,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4314,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,79625,27000,80375" +) +tg (CPTG +uid 4315,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4316,0 +va (VaSet +) +xt "28000,79400,31100,80600" +st "write" +blo "28000,80400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 2 +) +) +) +*191 (CptPort +uid 4317,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4318,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,81625,27000,82375" +) +tg (CPTG +uid 4319,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4320,0 +va (VaSet +) +xt "28000,81400,34700,82600" +st "chipSelect" +blo "28000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "chipSelect" +t "std_ulogic" +o 3 +) +) +) +*192 (CptPort +uid 4321,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4322,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,85625,27000,86375" +) +tg (CPTG +uid 4323,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4324,0 +va (VaSet +) +xt "28000,85400,31400,86600" +st "clock" +blo "28000,86400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*193 (CptPort +uid 4325,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4326,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,87625,27000,88375" +) +tg (CPTG +uid 4327,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4328,0 +va (VaSet +) +xt "28000,87400,31300,88600" +st "reset" +blo "28000,88400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 4301,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,76000,43000,90000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4302,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*194 (Text +uid 4303,0 +va (VaSet +) +xt "27600,89800,31900,91000" +st "Curves" +blo "27600,90800" +tm "BdLibraryNameMgr" +) +*195 (Text +uid 4304,0 +va (VaSet +) +xt "27600,90800,37500,92000" +st "periphWritePulse" +blo "27600,91800" +tm "CptNameMgr" +) +*196 (Text +uid 4305,0 +va (VaSet +) +xt "27600,91800,30200,93000" +st "I23" +blo "27600,92800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4306,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4307,0 +text (MLText +uid 4308,0 +va (VaSet +font "Verdana,8,0" +) +xt "-7000,67000,-7000,67000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*197 (Net +uid 4347,0 +decl (Decl +n "wrLPulse" +t "std_ulogic" +o 86 +suid 56,0 +) +declText (MLText +uid 4348,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,86800,230500,87800" +st "SIGNAL wrLPulse : std_ulogic" +) +) +*198 (HdlText +uid 4719,0 +optionalChildren [ +*199 (EmbeddedText +uid 4724,0 +commentText (CommentText +uid 4725,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4726,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "150000,75000,164000,77000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4727,0 +va (VaSet +) +xt "150200,75200,164000,76400" +st " +step <= to_unsigned(1, step'length); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4720,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "149000,74000,165000,78000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4721,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*200 (Text +uid 4722,0 +va (VaSet +) +xt "149400,78000,152000,79200" +st "eb4" +blo "149400,79000" +tm "HdlTextNameMgr" +) +*201 (Text +uid 4723,0 +va (VaSet +) +xt "149400,79000,150800,80200" +st "4" +blo "149400,80000" +tm "HdlTextNumberMgr" +) +] +) +) +*202 (Net +uid 4800,0 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 54 +suid 57,0 +) +declText (MLText +uid 4801,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,58000,241400,59000" +st "SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*203 (Net +uid 4802,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 78 +suid 58,0 +) +declText (MLText +uid 4803,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,79600,241000,80600" +st "SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*204 (Net +uid 4858,0 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 77 +suid 59,0 +) +declText (MLText +uid 4859,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,78700,239800,79700" +st "SIGNAL sine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*205 (SaComponent +uid 4923,0 +optionalChildren [ +*206 (CptPort +uid 4903,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4904,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,89625,161000,90375" +) +tg (CPTG +uid 4905,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4906,0 +va (VaSet +) +xt "162000,89400,165400,90600" +st "clock" +blo "162000,90400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*207 (CptPort +uid 4907,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,83625,177750,84375" +) +tg (CPTG +uid 4909,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4910,0 +va (VaSet +) +xt "170800,83400,176000,84600" +st "sawtooth" +ju 2 +blo "176000,84400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*208 (CptPort +uid 4911,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4912,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,91625,161000,92375" +) +tg (CPTG +uid 4913,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4914,0 +va (VaSet +) +xt "162000,91400,165300,92600" +st "reset" +blo "162000,92400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*209 (CptPort +uid 4915,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4916,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,83625,161000,84375" +) +tg (CPTG +uid 4917,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4918,0 +va (VaSet +) +xt "162000,83400,164900,84600" +st "step" +blo "162000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*210 (CptPort +uid 4919,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4920,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,85625,161000,86375" +) +tg (CPTG +uid 4921,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4922,0 +va (VaSet +) +xt "162000,85400,163900,86600" +st "en" +blo "162000,86400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 4924,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,80000,177000,94000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4925,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*211 (Text +uid 4926,0 +va (VaSet +) +xt "161600,93800,165900,95000" +st "Curves" +blo "161600,94800" +tm "BdLibraryNameMgr" +) +*212 (Text +uid 4927,0 +va (VaSet +) +xt "161600,94800,169500,96000" +st "sawtoothGen" +blo "161600,95800" +tm "CptNameMgr" +) +*213 (Text +uid 4928,0 +va (VaSet +) +xt "161600,95800,164200,97000" +st "I24" +blo "161600,96800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4929,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4930,0 +text (MLText +uid 4931,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,96600,176400,97600" +st "bitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*214 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 270 +xt "151000,69625,152500,70375" +) +(Line +uid 5083,0 +sl 0 +ro 270 +xt "152500,70000,153000,70000" +pts [ +"152500,70000" +"153000,70000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "143100,69300,150000,70700" +st "selSinCos" +ju 2 +blo "150000,70500" +tm "WireNameMgr" +) +) +) +*215 (HdlText +uid 5244,0 +optionalChildren [ +*216 (EmbeddedText +uid 5249,0 +commentText (CommentText +uid 5250,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 5251,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "162000,65000,176000,71000" +) +oxt "0,0,18000,5000" +text (MLText +uid 5252,0 +va (VaSet +) +xt "162200,65200,176100,71200" +st " +interpolationEnable <= '1' when selSinCos = '1' + else interpolationEn; +--interpolateLinear <= '1' when selSinCos = '1' +-- else interpolateLin; +interpolateLinear <= interpolateLin; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 5245,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "161000,64000,177000,72000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 5246,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*217 (Text +uid 5247,0 +va (VaSet +) +xt "161400,72000,164000,73200" +st "eb5" +blo "161400,73000" +tm "HdlTextNameMgr" +) +*218 (Text +uid 5248,0 +va (VaSet +) +xt "161400,73000,162800,74200" +st "5" +blo "161400,74000" +tm "HdlTextNumberMgr" +) +] +) +) +*219 (Net +uid 5261,0 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 40 +suid 60,0 +) +declText (MLText +uid 5262,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,45400,230900,46400" +st "SIGNAL interpolationEn : std_ulogic" +) +) +*220 (Net +uid 5936,0 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 61,0 +) +declText (MLText +uid 5937,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,40000,240100,41000" +st "SIGNAL cosine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*221 (SaComponent +uid 5956,0 +optionalChildren [ +*222 (CptPort +uid 5944,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5945,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,83625,201750,84375" +) +tg (CPTG +uid 5946,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5947,0 +va (VaSet +) +xt "197200,83400,200000,84600" +st "sine" +ju 2 +blo "200000,84400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*223 (CptPort +uid 5948,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5949,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,83625,185000,84375" +) +tg (CPTG +uid 5950,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5951,0 +va (VaSet +) +xt "186000,83400,189700,84600" +st "phase" +blo "186000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*224 (CptPort +uid 5952,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5953,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,85625,201750,86375" +) +tg (CPTG +uid 5954,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5955,0 +va (VaSet +) +xt "196000,85400,200000,86600" +st "cosine" +ju 2 +blo "200000,86400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cosine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +) +) +) +] +shape (Rectangle +uid 5957,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,80000,201000,90000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 5958,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*225 (Text +uid 5959,0 +va (VaSet +) +xt "185600,89800,189900,91000" +st "Curves" +blo "185600,90800" +tm "BdLibraryNameMgr" +) +*226 (Text +uid 5960,0 +va (VaSet +) +xt "185600,90800,193300,92000" +st "sinCosTable" +blo "185600,91800" +tm "CptNameMgr" +) +*227 (Text +uid 5961,0 +va (VaSet +) +xt "185600,91800,188200,93000" +st "I25" +blo "185600,92800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5962,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5963,0 +text (MLText +uid 5964,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,93000,208700,96000" +st "inputBitNb = phaseBitNb ( positive ) +outputBitNb = signalBitNb ( positive ) +tableAddressBitNb = tableAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*228 (HdlText +uid 6125,0 +optionalChildren [ +*229 (EmbeddedText +uid 6130,0 +commentText (CommentText +uid 6131,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6132,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "28000,151000,42000,165000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6133,0 +va (VaSet +) +xt "28200,151200,42200,164400" +st " +writeX: process(selX, memX) +begin + if selX = '1' then + dataOut <= std_logic_vector(memX); + else + dataOut <= (others => 'Z'); + end if; +end process writeX; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 6126,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "27000,150000,43000,166000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6127,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*230 (Text +uid 6128,0 +va (VaSet +) +xt "27400,166000,30000,167200" +st "eb6" +blo "27400,167000" +tm "HdlTextNameMgr" +) +*231 (Text +uid 6129,0 +va (VaSet +) +xt "27400,167000,28800,168200" +st "6" +blo "27400,168000" +tm "HdlTextNumberMgr" +) +] +) +) +*232 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,13000,227300,14000" +st "selSinCos : std_ulogic" +) +) +*233 (HdlText +uid 6825,0 +optionalChildren [ +*234 (EmbeddedText +uid 6830,0 +commentText (CommentText +uid 6831,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6832,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "28000,171000,42000,185000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6833,0 +va (VaSet +) +xt "28200,171200,42200,184400" +st " +writeCounters: process(addr, addrX, addrY) +begin + if addr = 16#84# then + dataOut <= std_logic_vector(addrX & addrY); + else + dataOut <= (others => 'Z'); + end if; +end process writeCounters; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 6826,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "27000,170000,43000,186000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6827,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*235 (Text +uid 6828,0 +va (VaSet +) +xt "27400,186000,30000,187200" +st "eb7" +blo "27400,187000" +tm "HdlTextNameMgr" +) +*236 (Text +uid 6829,0 +va (VaSet +) +xt "27400,187000,28800,188200" +st "7" +blo "27400,188000" +tm "HdlTextNumberMgr" +) +] +) +) +*237 (SaComponent +uid 7019,0 +optionalChildren [ +*238 (CptPort +uid 6994,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6995,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,15625,27000,16375" +) +tg (CPTG +uid 6996,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6997,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,15300,31800,16700" +st "clock" +blo "28000,16500" +) +s (Text +uid 6998,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,16700,28000,16700" +blo "9000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*239 (CptPort +uid 6999,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7000,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,9625,27000,10375" +) +tg (CPTG +uid 7001,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7002,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,9300,33000,10700" +st "dataIn" +blo "28000,10500" +) +s (Text +uid 7003,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,10700,28000,10700" +blo "-37800,34100" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerNbBits-1 DOWNTO 0)" +o 1 +) +) +) +*240 (CptPort +uid 7004,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7005,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,9625,43750,10375" +) +tg (CPTG +uid 7006,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7007,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,9300,42000,10700" +st "dataOut" +ju 2 +blo "42000,10500" +) +s (Text +uid 7008,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "42000,10700,42000,10700" +ju 2 +blo "-23600,-18900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerNbBits-1 DOWNTO 0)" +o 3 +) +) +) +*241 (CptPort +uid 7009,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7010,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,13625,27000,14375" +) +tg (CPTG +uid 7011,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7012,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,13300,33100,14700" +st "enable" +blo "28000,14500" +) +s (Text +uid 7013,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,14700,28000,14700" +blo "9000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "enable" +t "std_ulogic" +o 4 +) +) +) +*242 (CptPort +uid 7014,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7015,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,17625,27000,18375" +) +tg (CPTG +uid 7016,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7017,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,17300,32100,18700" +st "reset" +blo "28000,18500" +) +s (Text +uid 7018,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28000,18700,28000,18700" +blo "9000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 7020,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "27000,6000,43000,20000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7021,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*243 (Text +uid 7022,0 +va (VaSet +) +xt "26910,20700,33510,21900" +st "sequential" +blo "26910,21700" +tm "BdLibraryNameMgr" +) +*244 (Text +uid 7023,0 +va (VaSet +) +xt "26910,21700,39810,22900" +st "registerULogicVector" +blo "26910,22700" +tm "CptNameMgr" +) +*245 (Text +uid 7024,0 +va (VaSet +) +xt "26910,22700,29510,23900" +st "I26" +blo "26910,23700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7025,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7026,0 +text (MLText +uid 7027,0 +va (VaSet +) +xt "27000,23600,50300,26000" +st "delay = 1 ns ( time ) +registerNbBits = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "dataBitNb" +) +] +) +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*246 (Net +uid 7053,0 +decl (Decl +n "dataInReg" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 37 +suid 63,0 +) +declText (MLText +uid 7054,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,42700,244800,43700" +st "SIGNAL dataInReg : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*247 (Net +uid 7073,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 64,0 +) +declText (MLText +uid 7074,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,6700,240900,7700" +st "dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*248 (SaComponent +uid 7075,0 +optionalChildren [ +*249 (CptPort +uid 7084,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7085,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,37625,7000,38375" +) +tg (CPTG +uid 7086,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7087,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,37300,11800,38700" +st "clock" +blo "8000,38500" +) +s (Text +uid 7088,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,38700,8000,38700" +blo "-11000,56900" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*250 (CptPort +uid 7089,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7090,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,31625,7000,32375" +) +tg (CPTG +uid 7091,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7092,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,31300,13000,32700" +st "dataIn" +blo "8000,32500" +) +s (Text +uid 7093,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,32700,8000,32700" +blo "-57800,56100" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "unsigned" +b "(registerNbBits-1 DOWNTO 0)" +o 1 +) +) +) +*251 (CptPort +uid 7094,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7095,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,31625,23750,32375" +) +tg (CPTG +uid 7096,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7097,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,31300,22000,32700" +st "dataOut" +ju 2 +blo "22000,32500" +) +s (Text +uid 7098,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "22000,32700,22000,32700" +ju 2 +blo "-43600,3100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "unsigned" +b "(registerNbBits-1 DOWNTO 0)" +o 3 +) +) +) +*252 (CptPort +uid 7099,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,35625,7000,36375" +) +tg (CPTG +uid 7101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7102,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,35300,13100,36700" +st "enable" +blo "8000,36500" +) +s (Text +uid 7103,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,36700,8000,36700" +blo "-11000,56900" +) +) +thePort (LogicalPort +decl (Decl +n "enable" +t "std_ulogic" +o 4 +) +) +) +*253 (CptPort +uid 7104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "6250,39625,7000,40375" +) +tg (CPTG +uid 7106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7107,0 +va (VaSet +font "Verdana,12,0" +) +xt "8000,39300,12100,40700" +st "reset" +blo "8000,40500" +) +s (Text +uid 7108,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8000,40700,8000,40700" +blo "-11000,56900" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 7076,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "7000,28000,23000,42000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7077,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*254 (Text +uid 7078,0 +va (VaSet +) +xt "6910,42700,13510,43900" +st "sequential" +blo "6910,43700" +tm "BdLibraryNameMgr" +) +*255 (Text +uid 7079,0 +va (VaSet +) +xt "6910,43700,16910,44900" +st "registerUnsigned" +blo "6910,44700" +tm "CptNameMgr" +) +*256 (Text +uid 7080,0 +va (VaSet +) +xt "6910,44700,9510,45900" +st "I27" +blo "6910,45700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7081,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7082,0 +text (MLText +uid 7083,0 +va (VaSet +) +xt "7000,45600,32100,48000" +st "delay = 1 ns ( time ) +registerNbBits = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +(GiElement +name "registerNbBits" +type "positive" +value "addressBitNb" +) +] +) +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*257 (Net +uid 7115,0 +decl (Decl +n "addrReg" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 23 +suid 65,0 +) +declText (MLText +uid 7116,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,30100,242500,31100" +st "SIGNAL addrReg : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*258 (HdlText +uid 7149,0 +optionalChildren [ +*259 (EmbeddedText +uid 7154,0 +commentText (CommentText +uid 7155,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 7156,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "12000,13000,18000,15000" +) +oxt "0,0,18000,5000" +text (MLText +uid 7157,0 +va (VaSet +) +xt "12200,13200,17700,14400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 7150,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "11000,12000,19000,16000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7151,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*260 (Text +uid 7152,0 +va (VaSet +) +xt "11400,16000,14000,17200" +st "eb8" +blo "11400,17000" +tm "HdlTextNameMgr" +) +*261 (Text +uid 7153,0 +va (VaSet +) +xt "11400,17000,12800,18200" +st "8" +blo "11400,18000" +tm "HdlTextNumberMgr" +) +] +) +) +*262 (Net +uid 7166,0 +decl (Decl +n "logic1" +t "std_ulogic" +o 42 +suid 66,0 +) +declText (MLText +uid 7167,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,47200,229900,48200" +st "SIGNAL logic1 : std_ulogic" +) +) +*263 (SaComponent +uid 7695,0 +optionalChildren [ +*264 (CptPort +uid 7704,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7705,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,107625,43750,108375" +) +tg (CPTG +uid 7706,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7707,0 +va (VaSet +) +xt "35400,107400,42000,108600" +st "writePulse" +ju 2 +blo "42000,108400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writePulse" +t "std_ulogic" +o 1 +) +) +) +*265 (CptPort +uid 7708,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7709,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,107625,27000,108375" +) +tg (CPTG +uid 7710,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7711,0 +va (VaSet +) +xt "28000,107400,31100,108600" +st "write" +blo "28000,108400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 2 +) +) +) +*266 (CptPort +uid 7712,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7713,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,109625,27000,110375" +) +tg (CPTG +uid 7714,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7715,0 +va (VaSet +) +xt "28000,109400,34700,110600" +st "chipSelect" +blo "28000,110400" +) +) +thePort (LogicalPort +decl (Decl +n "chipSelect" +t "std_ulogic" +o 3 +) +) +) +*267 (CptPort +uid 7716,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7717,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,113625,27000,114375" +) +tg (CPTG +uid 7718,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7719,0 +va (VaSet +) +xt "28000,113400,31400,114600" +st "clock" +blo "28000,114400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*268 (CptPort +uid 7720,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7721,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,115625,27000,116375" +) +tg (CPTG +uid 7722,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7723,0 +va (VaSet +) +xt "28000,115400,31300,116600" +st "reset" +blo "28000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +] +shape (Rectangle +uid 7696,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,104000,43000,118000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7697,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*269 (Text +uid 7698,0 +va (VaSet +) +xt "27600,117800,31900,119000" +st "Curves" +blo "27600,118800" +tm "BdLibraryNameMgr" +) +*270 (Text +uid 7699,0 +va (VaSet +) +xt "27600,118800,37500,120000" +st "periphWritePulse" +blo "27600,119800" +tm "CptNameMgr" +) +*271 (Text +uid 7700,0 +va (VaSet +) +xt "27600,119800,30200,121000" +st "I28" +blo "27600,120800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7701,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7702,0 +text (MLText +uid 7703,0 +va (VaSet +font "Verdana,8,0" +) +xt "-7000,95000,-7000,95000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*272 (Net +uid 7756,0 +decl (Decl +n "wr16Pulse" +t "std_ulogic" +o 84 +suid 67,0 +) +declText (MLText +uid 7757,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,85000,230800,86000" +st "SIGNAL wr16Pulse : std_ulogic" +) +) +*273 (SaComponent +uid 7770,0 +optionalChildren [ +*274 (CptPort +uid 7758,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7759,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "10250,105625,11000,106375" +) +tg (CPTG +uid 7760,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7761,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11000,105400,22600,106800" +st "in1 : std_uLogic" +blo "11000,106600" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*275 (CptPort +uid 7762,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7763,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "10250,109625,11000,110375" +) +tg (CPTG +uid 7764,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7765,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "11000,109400,22600,110800" +st "in2 : std_uLogic" +blo "11000,110600" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*276 (CptPort +uid 7766,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7767,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "17950,107625,18700,108375" +) +tg (CPTG +uid 7768,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7769,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "5400,107350,18000,108750" +st "out1 : std_uLogic" +ju 2 +blo "18000,108550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (And +uid 7771,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "11000,105000,18000,111000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 7772,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*277 (Text +uid 7773,0 +va (VaSet +isHidden 1 +) +xt "13600,105700,17100,106900" +st "gates" +blo "13600,106700" +tm "BdLibraryNameMgr" +) +*278 (Text +uid 7774,0 +va (VaSet +isHidden 1 +) +xt "13600,106700,16800,107900" +st "and2" +blo "13600,107700" +tm "CptNameMgr" +) +*279 (Text +uid 7775,0 +va (VaSet +) +xt "13600,106700,16200,107900" +st "I29" +blo "13600,107700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7776,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7777,0 +text (MLText +uid 7778,0 +va (VaSet +isHidden 1 +) +xt "11000,111400,24400,112600" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*280 (Net +uid 7799,0 +decl (Decl +n "wr16" +t "std_ulogic" +o 83 +suid 68,0 +) +declText (MLText +uid 7800,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,84100,230200,85100" +st "SIGNAL wr16 : std_ulogic" +) +) +*281 (SaComponent +uid 8139,0 +optionalChildren [ +*282 (CptPort +uid 8103,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8104,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,11625,91750,12375" +) +tg (CPTG +uid 8105,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8106,0 +va (VaSet +) +xt "87700,11400,90000,12600" +st "run" +ju 2 +blo "90000,12400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 1 +) +) +) +*283 (CptPort +uid 8107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8108,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,11625,75000,12375" +) +tg (CPTG +uid 8109,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8110,0 +va (VaSet +) +xt "76000,11400,80000,12600" +st "dataIn" +blo "76000,12400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*284 (CptPort +uid 8111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8112,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,13625,91750,14375" +) +tg (CPTG +uid 8113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8114,0 +va (VaSet +) +xt "81500,13400,90000,14600" +st "updatePattern" +ju 2 +blo "90000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 3 +) +) +) +*285 (CptPort +uid 8115,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8116,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,13625,75000,14375" +) +tg (CPTG +uid 8117,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8118,0 +va (VaSet +) +xt "76000,13400,80800,14600" +st "dataOut" +blo "76000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*286 (CptPort +uid 8119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,17625,75000,18375" +) +tg (CPTG +uid 8121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8122,0 +va (VaSet +) +xt "76000,17400,79100,18600" +st "write" +blo "76000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 5 +) +) +) +*287 (CptPort +uid 8123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,19625,75000,20375" +) +tg (CPTG +uid 8125,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8126,0 +va (VaSet +) +xt "76000,19400,77900,20600" +st "en" +blo "76000,20400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 6 +) +) +) +*288 (CptPort +uid 8127,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8128,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,23625,75000,24375" +) +tg (CPTG +uid 8129,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8130,0 +va (VaSet +) +xt "76000,23400,79400,24600" +st "clock" +blo "76000,24400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +) +) +) +*289 (CptPort +uid 8131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,25625,75000,26375" +) +tg (CPTG +uid 8133,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8134,0 +va (VaSet +) +xt "76000,25400,79300,26600" +st "reset" +blo "76000,26400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +) +) +) +*290 (CptPort +uid 8135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,15625,91750,16375" +) +tg (CPTG +uid 8137,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8138,0 +va (VaSet +) +xt "80100,15400,90000,16600" +st "interpolateLinear" +ju 2 +blo "90000,16400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 8140,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,8000,91000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8141,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*291 (Text +uid 8142,0 +va (VaSet +) +xt "75600,27800,79900,29000" +st "Curves" +blo "75600,28800" +tm "BdLibraryNameMgr" +) +*292 (Text +uid 8143,0 +va (VaSet +) +xt "75600,28800,85700,30000" +st "periphControlReg" +blo "75600,29800" +tm "CptNameMgr" +) +*293 (Text +uid 8144,0 +va (VaSet +) +xt "75600,29800,77500,31000" +st "I4" +blo "75600,30800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8145,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8146,0 +text (MLText +uid 8147,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,31600,91600,32600" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*294 (Net +uid 8148,0 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 39 +suid 69,0 +) +declText (MLText +uid 8149,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,44500,231000,45500" +st "SIGNAL interpolateLinear : std_ulogic" +) +) +*295 (SaComponent +uid 8192,0 +optionalChildren [ +*296 (CptPort +uid 8156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,153625,185000,154375" +) +tg (CPTG +uid 8158,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8159,0 +va (VaSet +) +xt "186000,153400,191000,154600" +st "sample1" +blo "186000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*297 (CptPort +uid 8160,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8161,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,155625,185000,156375" +) +tg (CPTG +uid 8162,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8163,0 +va (VaSet +) +xt "186000,155400,191000,156600" +st "sample2" +blo "186000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +*298 (CptPort +uid 8164,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8165,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,157625,185000,158375" +) +tg (CPTG +uid 8166,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8167,0 +va (VaSet +) +xt "186000,157400,191000,158600" +st "sample3" +blo "186000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +) +) +) +*299 (CptPort +uid 8168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,159625,185000,160375" +) +tg (CPTG +uid 8170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8171,0 +va (VaSet +) +xt "186000,159400,191000,160600" +st "sample4" +blo "186000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*300 (CptPort +uid 8172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8173,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,153625,201750,154375" +) +tg (CPTG +uid 8174,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8175,0 +va (VaSet +) +xt "198700,153400,200000,154600" +st "a" +ju 2 +blo "200000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*301 (CptPort +uid 8176,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8177,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,155625,201750,156375" +) +tg (CPTG +uid 8178,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8179,0 +va (VaSet +) +xt "198700,155400,200000,156600" +st "b" +ju 2 +blo "200000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*302 (CptPort +uid 8180,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8181,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,159625,201750,160375" +) +tg (CPTG +uid 8182,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8183,0 +va (VaSet +) +xt "198700,159400,200000,160600" +st "d" +ju 2 +blo "200000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*303 (CptPort +uid 8184,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8185,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,157625,201750,158375" +) +tg (CPTG +uid 8186,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8187,0 +va (VaSet +) +xt "198700,157400,200000,158600" +st "c" +ju 2 +blo "200000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*304 (CptPort +uid 8188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8189,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,161625,185000,162375" +) +tg (CPTG +uid 8190,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8191,0 +va (VaSet +) +xt "186000,161400,195900,162600" +st "interpolateLinear" +blo "186000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 8193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,150000,201000,166000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8194,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*305 (Text +uid 8195,0 +va (VaSet +) +xt "185600,165800,189900,167000" +st "Curves" +blo "185600,166800" +tm "BdLibraryNameMgr" +) +*306 (Text +uid 8196,0 +va (VaSet +) +xt "185600,166800,199500,168000" +st "interpolatorCoefficients" +blo "185600,167800" +tm "CptNameMgr" +) +*307 (Text +uid 8197,0 +va (VaSet +) +xt "185600,167800,187500,169000" +st "I8" +blo "185600,168800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8198,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8199,0 +text (MLText +uid 8200,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,169800,202800,171800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*308 (SaComponent +uid 8237,0 +optionalChildren [ +*309 (CptPort +uid 8201,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8202,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,116625,185000,117375" +) +tg (CPTG +uid 8203,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8204,0 +va (VaSet +) +xt "186000,116400,191000,117600" +st "sample1" +blo "186000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*310 (CptPort +uid 8205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,118625,185000,119375" +) +tg (CPTG +uid 8207,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8208,0 +va (VaSet +) +xt "186000,118400,191000,119600" +st "sample2" +blo "186000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +*311 (CptPort +uid 8209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,120625,185000,121375" +) +tg (CPTG +uid 8211,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8212,0 +va (VaSet +) +xt "186000,120400,191000,121600" +st "sample3" +blo "186000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +) +) +) +*312 (CptPort +uid 8213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8214,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,122625,185000,123375" +) +tg (CPTG +uid 8215,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8216,0 +va (VaSet +) +xt "186000,122400,191000,123600" +st "sample4" +blo "186000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*313 (CptPort +uid 8217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8218,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,116625,201750,117375" +) +tg (CPTG +uid 8219,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8220,0 +va (VaSet +) +xt "198700,116400,200000,117600" +st "a" +ju 2 +blo "200000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*314 (CptPort +uid 8221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8222,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,118625,201750,119375" +) +tg (CPTG +uid 8223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8224,0 +va (VaSet +) +xt "198700,118400,200000,119600" +st "b" +ju 2 +blo "200000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*315 (CptPort +uid 8225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,122625,201750,123375" +) +tg (CPTG +uid 8227,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8228,0 +va (VaSet +) +xt "198700,122400,200000,123600" +st "d" +ju 2 +blo "200000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*316 (CptPort +uid 8229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8230,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,120625,201750,121375" +) +tg (CPTG +uid 8231,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8232,0 +va (VaSet +) +xt "198700,120400,200000,121600" +st "c" +ju 2 +blo "200000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*317 (CptPort +uid 8233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8234,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,124625,185000,125375" +) +tg (CPTG +uid 8235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8236,0 +va (VaSet +) +xt "186000,124400,195900,125600" +st "interpolateLinear" +blo "186000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 8238,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,113000,201000,129000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8239,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*318 (Text +uid 8240,0 +va (VaSet +) +xt "185600,128800,189900,130000" +st "Curves" +blo "185600,129800" +tm "BdLibraryNameMgr" +) +*319 (Text +uid 8241,0 +va (VaSet +) +xt "185600,129800,199500,131000" +st "interpolatorCoefficients" +blo "185600,130800" +tm "CptNameMgr" +) +*320 (Text +uid 8242,0 +va (VaSet +) +xt "185600,130800,188200,132000" +st "I12" +blo "185600,131800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8243,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8244,0 +text (MLText +uid 8245,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,132800,202800,134800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*321 (SaComponent +uid 8656,0 +optionalChildren [ +*322 (CptPort +uid 8628,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8629,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,116625,107000,117375" +) +tg (CPTG +uid 8630,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8631,0 +va (VaSet +) +xt "108000,116400,112000,117600" +st "dataIn" +blo "108000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*323 (CptPort +uid 8632,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8633,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,116625,123750,117375" +) +tg (CPTG +uid 8634,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8635,0 +va (VaSet +) +xt "117200,116400,122000,117600" +st "dataOut" +ju 2 +blo "122000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*324 (CptPort +uid 8636,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8637,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,124625,107000,125375" +) +tg (CPTG +uid 8638,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8639,0 +va (VaSet +) +xt "108000,124400,109900,125600" +st "en" +blo "108000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*325 (CptPort +uid 8640,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8641,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,128625,107000,129375" +) +tg (CPTG +uid 8642,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8643,0 +va (VaSet +) +xt "108000,128400,111400,129600" +st "clock" +blo "108000,129400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*326 (CptPort +uid 8644,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8645,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,130625,107000,131375" +) +tg (CPTG +uid 8646,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8647,0 +va (VaSet +) +xt "108000,130400,111300,131600" +st "reset" +blo "108000,131400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +*327 (CptPort +uid 8648,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8649,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,122625,107000,123375" +) +tg (CPTG +uid 8650,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8651,0 +va (VaSet +) +xt "108000,122400,111100,123600" +st "write" +blo "108000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +) +) +) +*328 (CptPort +uid 8652,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8653,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,118625,107000,119375" +) +tg (CPTG +uid 8654,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8655,0 +va (VaSet +) +xt "108000,118400,110900,119600" +st "addr" +blo "108000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +) +) +) +] +shape (Rectangle +uid 8657,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,113000,123000,133000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8658,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*329 (Text +uid 8659,0 +va (VaSet +) +xt "107600,132800,111900,134000" +st "Curves" +blo "107600,133800" +tm "BdLibraryNameMgr" +) +*330 (Text +uid 8660,0 +va (VaSet +) +xt "107600,133800,113400,135000" +st "blockRAM" +blo "107600,134800" +tm "CptNameMgr" +) +*331 (Text +uid 8661,0 +va (VaSet +) +xt "107600,134800,110200,136000" +st "I21" +blo "107600,135800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8662,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8663,0 +text (MLText +uid 8664,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,136600,129600,138600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*332 (SaComponent +uid 8693,0 +optionalChildren [ +*333 (CptPort +uid 8665,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8666,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,153625,107000,154375" +) +tg (CPTG +uid 8667,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8668,0 +va (VaSet +) +xt "108000,153400,112000,154600" +st "dataIn" +blo "108000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*334 (CptPort +uid 8669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8670,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,153625,123750,154375" +) +tg (CPTG +uid 8671,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8672,0 +va (VaSet +) +xt "117200,153400,122000,154600" +st "dataOut" +ju 2 +blo "122000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*335 (CptPort +uid 8673,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8674,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,161625,107000,162375" +) +tg (CPTG +uid 8675,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8676,0 +va (VaSet +) +xt "108000,161400,109900,162600" +st "en" +blo "108000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*336 (CptPort +uid 8677,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8678,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,165625,107000,166375" +) +tg (CPTG +uid 8679,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8680,0 +va (VaSet +) +xt "108000,165400,111400,166600" +st "clock" +blo "108000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*337 (CptPort +uid 8681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8682,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,167625,107000,168375" +) +tg (CPTG +uid 8683,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8684,0 +va (VaSet +) +xt "108000,167400,111300,168600" +st "reset" +blo "108000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +*338 (CptPort +uid 8685,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8686,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,159625,107000,160375" +) +tg (CPTG +uid 8687,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8688,0 +va (VaSet +) +xt "108000,159400,111100,160600" +st "write" +blo "108000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +) +) +) +*339 (CptPort +uid 8689,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8690,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,155625,107000,156375" +) +tg (CPTG +uid 8691,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8692,0 +va (VaSet +) +xt "108000,155400,110900,156600" +st "addr" +blo "108000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +) +) +) +] +shape (Rectangle +uid 8694,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,150000,123000,170000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 8695,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*340 (Text +uid 8696,0 +va (VaSet +) +xt "107600,169800,111900,171000" +st "Curves" +blo "107600,170800" +tm "BdLibraryNameMgr" +) +*341 (Text +uid 8697,0 +va (VaSet +) +xt "107600,170800,113400,172000" +st "blockRAM" +blo "107600,171800" +tm "CptNameMgr" +) +*342 (Text +uid 8698,0 +va (VaSet +) +xt "107600,171800,110200,173000" +st "I16" +blo "107600,172800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8699,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8700,0 +text (MLText +uid 8701,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,173600,129600,175600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*343 (SaComponent +uid 9102,0 +optionalChildren [ +*344 (CptPort +uid 9070,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9071,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,122625,161000,123375" +) +tg (CPTG +uid 9072,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9073,0 +va (VaSet +) +xt "162000,122400,165400,123600" +st "clock" +blo "162000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*345 (CptPort +uid 9074,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9075,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,124625,161000,125375" +) +tg (CPTG +uid 9076,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9077,0 +va (VaSet +) +xt "162000,124400,165300,125600" +st "reset" +blo "162000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*346 (CptPort +uid 9078,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9079,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,118625,161000,119375" +) +tg (CPTG +uid 9080,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9081,0 +va (VaSet +) +xt "162000,118400,169900,119600" +st "shiftSamples" +blo "162000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*347 (CptPort +uid 9082,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9083,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,116625,161000,117375" +) +tg (CPTG +uid 9084,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9085,0 +va (VaSet +) +xt "162000,116400,167400,117600" +st "sampleIn" +blo "162000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*348 (CptPort +uid 9086,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9087,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,116625,177750,117375" +) +tg (CPTG +uid 9088,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9089,0 +va (VaSet +) +xt "171000,116400,176000,117600" +st "sample1" +ju 2 +blo "176000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*349 (CptPort +uid 9090,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9091,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,118625,177750,119375" +) +tg (CPTG +uid 9092,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9093,0 +va (VaSet +) +xt "171000,118400,176000,119600" +st "sample2" +ju 2 +blo "176000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*350 (CptPort +uid 9094,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9095,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,120625,177750,121375" +) +tg (CPTG +uid 9096,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9097,0 +va (VaSet +) +xt "171000,120400,176000,121600" +st "sample3" +ju 2 +blo "176000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*351 (CptPort +uid 9098,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9099,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,122625,177750,123375" +) +tg (CPTG +uid 9100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9101,0 +va (VaSet +) +xt "171000,122400,176000,123600" +st "sample4" +ju 2 +blo "176000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 9103,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,113000,177000,127000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9104,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*352 (Text +uid 9105,0 +va (VaSet +) +xt "161600,126800,165900,128000" +st "Curves" +blo "161600,127800" +tm "BdLibraryNameMgr" +) +*353 (Text +uid 9106,0 +va (VaSet +) +xt "161600,127800,176000,129000" +st "interpolatorShiftRegister" +blo "161600,128800" +tm "CptNameMgr" +) +*354 (Text +uid 9107,0 +va (VaSet +) +xt "161600,128800,164200,130000" +st "I11" +blo "161600,129800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9108,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9109,0 +text (MLText +uid 9110,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,130600,179100,131600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*355 (SaComponent +uid 9143,0 +optionalChildren [ +*356 (CptPort +uid 9111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9112,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,159625,161000,160375" +) +tg (CPTG +uid 9113,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9114,0 +va (VaSet +) +xt "162000,159400,165400,160600" +st "clock" +blo "162000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*357 (CptPort +uid 9115,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9116,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,161625,161000,162375" +) +tg (CPTG +uid 9117,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9118,0 +va (VaSet +) +xt "162000,161400,165300,162600" +st "reset" +blo "162000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*358 (CptPort +uid 9119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,155625,161000,156375" +) +tg (CPTG +uid 9121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9122,0 +va (VaSet +) +xt "162000,155400,169900,156600" +st "shiftSamples" +blo "162000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*359 (CptPort +uid 9123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,153625,161000,154375" +) +tg (CPTG +uid 9125,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9126,0 +va (VaSet +) +xt "162000,153400,167400,154600" +st "sampleIn" +blo "162000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*360 (CptPort +uid 9127,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9128,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,153625,177750,154375" +) +tg (CPTG +uid 9129,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9130,0 +va (VaSet +) +xt "171000,153400,176000,154600" +st "sample1" +ju 2 +blo "176000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*361 (CptPort +uid 9131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,155625,177750,156375" +) +tg (CPTG +uid 9133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9134,0 +va (VaSet +) +xt "171000,155400,176000,156600" +st "sample2" +ju 2 +blo "176000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*362 (CptPort +uid 9135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,157625,177750,158375" +) +tg (CPTG +uid 9137,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9138,0 +va (VaSet +) +xt "171000,157400,176000,158600" +st "sample3" +ju 2 +blo "176000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*363 (CptPort +uid 9139,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9140,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,159625,177750,160375" +) +tg (CPTG +uid 9141,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9142,0 +va (VaSet +) +xt "171000,159400,176000,160600" +st "sample4" +ju 2 +blo "176000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 9144,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,150000,177000,164000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9145,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*364 (Text +uid 9146,0 +va (VaSet +) +xt "161600,163800,165900,165000" +st "Curves" +blo "161600,164800" +tm "BdLibraryNameMgr" +) +*365 (Text +uid 9147,0 +va (VaSet +) +xt "161600,164800,176000,166000" +st "interpolatorShiftRegister" +blo "161600,165800" +tm "CptNameMgr" +) +*366 (Text +uid 9148,0 +va (VaSet +) +xt "161600,165800,163500,167000" +st "I7" +blo "161600,166800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9149,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9150,0 +text (MLText +uid 9151,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,167600,179100,168600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*367 (SaComponent +uid 9190,0 +optionalChildren [ +*368 (CptPort +uid 9154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9155,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,130625,217000,131375" +) +tg (CPTG +uid 9156,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9157,0 +va (VaSet +) +xt "218000,130400,221400,131600" +st "clock" +blo "218000,131400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*369 (CptPort +uid 9158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,132625,217000,133375" +) +tg (CPTG +uid 9160,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9161,0 +va (VaSet +) +xt "218000,132400,221300,133600" +st "reset" +blo "218000,133400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*370 (CptPort +uid 9162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9163,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,124625,217000,125375" +) +tg (CPTG +uid 9164,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9165,0 +va (VaSet +) +xt "218000,124400,227100,125600" +st "restartPolynom" +blo "218000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +) +) +) +*371 (CptPort +uid 9166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9167,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,122625,217000,123375" +) +tg (CPTG +uid 9168,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9169,0 +va (VaSet +) +xt "218000,122400,219300,123600" +st "d" +blo "218000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*372 (CptPort +uid 9170,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9171,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,116625,233750,117375" +) +tg (CPTG +uid 9172,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9173,0 +va (VaSet +) +xt "225800,116400,232000,117600" +st "sampleOut" +ju 2 +blo "232000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*373 (CptPort +uid 9174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,120625,217000,121375" +) +tg (CPTG +uid 9176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9177,0 +va (VaSet +) +xt "218000,120400,219300,121600" +st "c" +blo "218000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*374 (CptPort +uid 9178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,118625,217000,119375" +) +tg (CPTG +uid 9180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9181,0 +va (VaSet +) +xt "218000,118400,219300,119600" +st "b" +blo "218000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*375 (CptPort +uid 9182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9183,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,116625,217000,117375" +) +tg (CPTG +uid 9184,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9185,0 +va (VaSet +) +xt "218000,116400,219300,117600" +st "a" +blo "218000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*376 (CptPort +uid 9186,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9187,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,128625,217000,129375" +) +tg (CPTG +uid 9188,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9189,0 +va (VaSet +) +xt "218000,128400,219900,129600" +st "en" +blo "218000,129400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 9191,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,113000,233000,136000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9192,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*377 (Text +uid 9193,0 +va (VaSet +) +xt "217600,135800,221900,137000" +st "Curves" +blo "217600,136800" +tm "BdLibraryNameMgr" +) +*378 (Text +uid 9194,0 +va (VaSet +) +xt "217600,136800,234600,138000" +st "interpolatorCalculatePolynom" +blo "217600,137800" +tm "CptNameMgr" +) +*379 (Text +uid 9195,0 +va (VaSet +) +xt "217600,137800,220200,139000" +st "I13" +blo "217600,138800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9196,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9197,0 +text (MLText +uid 9198,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,139000,241200,142000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*380 (SaComponent +uid 9235,0 +optionalChildren [ +*381 (CptPort +uid 9199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9200,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,167625,217000,168375" +) +tg (CPTG +uid 9201,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9202,0 +va (VaSet +) +xt "218000,167400,221400,168600" +st "clock" +blo "218000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*382 (CptPort +uid 9203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9204,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,169625,217000,170375" +) +tg (CPTG +uid 9205,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9206,0 +va (VaSet +) +xt "218000,169400,221300,170600" +st "reset" +blo "218000,170400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*383 (CptPort +uid 9207,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9208,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,161625,217000,162375" +) +tg (CPTG +uid 9209,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9210,0 +va (VaSet +) +xt "218000,161400,227100,162600" +st "restartPolynom" +blo "218000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +) +) +) +*384 (CptPort +uid 9211,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9212,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,159625,217000,160375" +) +tg (CPTG +uid 9213,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9214,0 +va (VaSet +) +xt "218000,159400,219300,160600" +st "d" +blo "218000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*385 (CptPort +uid 9215,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9216,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,153625,233750,154375" +) +tg (CPTG +uid 9217,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9218,0 +va (VaSet +) +xt "225800,153400,232000,154600" +st "sampleOut" +ju 2 +blo "232000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*386 (CptPort +uid 9219,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9220,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,157625,217000,158375" +) +tg (CPTG +uid 9221,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9222,0 +va (VaSet +) +xt "218000,157400,219300,158600" +st "c" +blo "218000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*387 (CptPort +uid 9223,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9224,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,155625,217000,156375" +) +tg (CPTG +uid 9225,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9226,0 +va (VaSet +) +xt "218000,155400,219300,156600" +st "b" +blo "218000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*388 (CptPort +uid 9227,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,153625,217000,154375" +) +tg (CPTG +uid 9229,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9230,0 +va (VaSet +) +xt "218000,153400,219300,154600" +st "a" +blo "218000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*389 (CptPort +uid 9231,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9232,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,165625,217000,166375" +) +tg (CPTG +uid 9233,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9234,0 +va (VaSet +) +xt "218000,165400,219900,166600" +st "en" +blo "218000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 9236,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,150000,233000,173000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 9237,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*390 (Text +uid 9238,0 +va (VaSet +) +xt "217600,172800,221900,174000" +st "Curves" +blo "217600,173800" +tm "BdLibraryNameMgr" +) +*391 (Text +uid 9239,0 +va (VaSet +) +xt "217600,173800,234600,175000" +st "interpolatorCalculatePolynom" +blo "217600,174800" +tm "CptNameMgr" +) +*392 (Text +uid 9240,0 +va (VaSet +) +xt "217600,174800,219500,176000" +st "I9" +blo "217600,175800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9241,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9242,0 +text (MLText +uid 9243,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,176000,241200,179000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*393 (Net +uid 9646,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 38 +suid 70,0 +) +declText (MLText +uid 9647,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,43600,230600,44600" +st "SIGNAL interpolateLin : std_ulogic" +) +) +*394 (SaComponent +uid 10416,0 +optionalChildren [ +*395 (CptPort +uid 10425,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10426,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,209625,75000,210375" +) +tg (CPTG +uid 10427,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10428,0 +va (VaSet +) +xt "76000,209400,77900,210600" +st "en" +blo "76000,210400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +) +) +) +*396 (CptPort +uid 10429,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10430,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,213625,75000,214375" +) +tg (CPTG +uid 10431,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10432,0 +va (VaSet +) +xt "76000,213400,79400,214600" +st "clock" +blo "76000,214400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*397 (CptPort +uid 10433,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10434,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,215625,75000,216375" +) +tg (CPTG +uid 10435,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10436,0 +va (VaSet +) +xt "76000,215400,79300,216600" +st "reset" +blo "76000,216400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*398 (CptPort +uid 10437,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10438,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,207625,75000,208375" +) +tg (CPTG +uid 10439,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10440,0 +va (VaSet +) +xt "76000,207400,82500,208600" +st "updateMem" +blo "76000,208400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +) +) +) +*399 (CptPort +uid 10441,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10442,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,205625,91750,206375" +) +tg (CPTG +uid 10443,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10444,0 +va (VaSet +) +xt "87100,205400,90000,206600" +st "addr" +ju 2 +blo "90000,206400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*400 (CptPort +uid 10445,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10446,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,205625,75000,206375" +) +tg (CPTG +uid 10447,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10448,0 +va (VaSet +) +xt "76000,205400,83100,206600" +st "patternSize" +blo "76000,206400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 10417,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,202000,91000,218000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10418,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*401 (Text +uid 10419,0 +va (VaSet +) +xt "75600,217800,79900,219000" +st "Curves" +blo "75600,218800" +tm "BdLibraryNameMgr" +) +*402 (Text +uid 10420,0 +va (VaSet +) +xt "75600,218800,91000,220000" +st "blockRAMAddressCounter" +blo "75600,219800" +tm "CptNameMgr" +) +*403 (Text +uid 10421,0 +va (VaSet +) +xt "75600,219800,78200,221000" +st "I30" +blo "75600,220800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 10422,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 10423,0 +text (MLText +uid 10424,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,221600,98800,223600" +st "addressBitNb = patternAddressBitNb ( positive ) +patternSizeBitNb = dataBitNb/2 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "dataBitNb/2" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*404 (SaComponent +uid 10494,0 +optionalChildren [ +*405 (CptPort +uid 10503,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10504,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,203625,107000,204375" +) +tg (CPTG +uid 10505,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10506,0 +va (VaSet +) +xt "108000,203400,112000,204600" +st "dataIn" +blo "108000,204400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*406 (CptPort +uid 10507,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10508,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,203625,123750,204375" +) +tg (CPTG +uid 10509,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10510,0 +va (VaSet +) +xt "117200,203400,122000,204600" +st "dataOut" +ju 2 +blo "122000,204400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*407 (CptPort +uid 10511,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10512,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,211625,107000,212375" +) +tg (CPTG +uid 10513,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10514,0 +va (VaSet +) +xt "108000,211400,109900,212600" +st "en" +blo "108000,212400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*408 (CptPort +uid 10515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,215625,107000,216375" +) +tg (CPTG +uid 10517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10518,0 +va (VaSet +) +xt "108000,215400,111400,216600" +st "clock" +blo "108000,216400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +) +) +) +*409 (CptPort +uid 10519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,217625,107000,218375" +) +tg (CPTG +uid 10521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10522,0 +va (VaSet +) +xt "108000,217400,111300,218600" +st "reset" +blo "108000,218400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +) +*410 (CptPort +uid 10523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10524,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,209625,107000,210375" +) +tg (CPTG +uid 10525,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10526,0 +va (VaSet +) +xt "108000,209400,111100,210600" +st "write" +blo "108000,210400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +) +) +) +*411 (CptPort +uid 10527,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10528,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,205625,107000,206375" +) +tg (CPTG +uid 10529,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10530,0 +va (VaSet +) +xt "108000,205400,110900,206600" +st "addr" +blo "108000,206400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +) +) +) +] +shape (Rectangle +uid 10495,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,200000,123000,220000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10496,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*412 (Text +uid 10497,0 +va (VaSet +) +xt "107600,219800,111900,221000" +st "Curves" +blo "107600,220800" +tm "BdLibraryNameMgr" +) +*413 (Text +uid 10498,0 +va (VaSet +) +xt "107600,220800,113400,222000" +st "blockRAM" +blo "107600,221800" +tm "CptNameMgr" +) +*414 (Text +uid 10499,0 +va (VaSet +) +xt "107600,221800,110200,223000" +st "I32" +blo "107600,222800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 10500,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 10501,0 +text (MLText +uid 10502,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,223600,129600,225600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*415 (Net +uid 10607,0 +decl (Decl +n "cntIncrZ" +t "std_ulogic" +o 33 +suid 71,0 +) +declText (MLText +uid 10608,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,39100,230200,40100" +st "SIGNAL cntIncrZ : std_ulogic" +) +) +*416 (Net +uid 10609,0 +decl (Decl +n "addrZ" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 26 +suid 72,0 +) +declText (MLText +uid 10610,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,32800,244900,33800" +st "SIGNAL addrZ : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*417 (Net +uid 10611,0 +decl (Decl +n "memZ" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 51 +suid 73,0 +) +declText (MLText +uid 10612,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,55300,244700,56300" +st "SIGNAL memZ : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*418 (Net +uid 10613,0 +decl (Decl +n "memWrZ" +t "std_ulogic" +o 48 +suid 74,0 +) +declText (MLText +uid 10614,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,52600,231300,53600" +st "SIGNAL memWrZ : std_ulogic" +) +) +*419 (Net +uid 10615,0 +decl (Decl +n "memEnZ" +t "std_ulogic" +o 45 +suid 75,0 +) +declText (MLText +uid 10616,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,49900,231200,50900" +st "SIGNAL memEnZ : std_ulogic" +) +) +*420 (SaComponent +uid 10651,0 +optionalChildren [ +*421 (CptPort +uid 10623,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10624,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,31625,43750,32375" +) +tg (CPTG +uid 10625,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10626,0 +va (VaSet +) +xt "35400,31400,42000,32600" +st "selControl" +ju 2 +blo "42000,32400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selControl" +t "std_ulogic" +o 1 +) +) +) +*422 (CptPort +uid 10627,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10628,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,31625,27000,32375" +) +tg (CPTG +uid 10629,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 10630,0 +va (VaSet +) +xt "28000,31400,30900,32600" +st "addr" +blo "28000,32400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*423 (CptPort +uid 10631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10632,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,33625,43750,34375" +) +tg (CPTG +uid 10633,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10634,0 +va (VaSet +) +xt "37700,33400,42000,34600" +st "selSize" +ju 2 +blo "42000,34400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSize" +t "std_ulogic" +o 3 +) +) +) +*424 (CptPort +uid 10635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10636,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,35625,43750,36375" +) +tg (CPTG +uid 10637,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10638,0 +va (VaSet +) +xt "36700,35400,42000,36600" +st "selSpeed" +ju 2 +blo "42000,36400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 4 +) +) +) +*425 (CptPort +uid 10639,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10640,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,37625,43750,38375" +) +tg (CPTG +uid 10641,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10642,0 +va (VaSet +) +xt "39100,37400,42000,38600" +st "selX" +ju 2 +blo "42000,38400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selX" +t "std_ulogic" +o 5 +) +) +) +*426 (CptPort +uid 10643,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10644,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,39625,43750,40375" +) +tg (CPTG +uid 10645,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10646,0 +va (VaSet +) +xt "39100,39400,42000,40600" +st "selY" +ju 2 +blo "42000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selY" +t "std_ulogic" +o 6 +) +) +) +*427 (CptPort +uid 10647,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 10648,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,41625,43750,42375" +) +tg (CPTG +uid 10649,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 10650,0 +va (VaSet +) +xt "39100,41400,42000,42600" +st "selZ" +ju 2 +blo "42000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selZ" +t "std_ulogic" +o 7 +) +) +) +] +shape (Rectangle +uid 10652,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,28000,43000,46000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10653,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*428 (Text +uid 10654,0 +va (VaSet +) +xt "27600,45800,31900,47000" +st "Curves" +blo "27600,46800" +tm "BdLibraryNameMgr" +) +*429 (Text +uid 10655,0 +va (VaSet +) +xt "27600,46800,41200,48000" +st "periphAddressDecoder" +blo "27600,47800" +tm "CptNameMgr" +) +*430 (Text +uid 10656,0 +va (VaSet +) +xt "27600,47800,29500,49000" +st "I2" +blo "27600,48800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 10657,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 10658,0 +text (MLText +uid 10659,0 +va (VaSet +font "Verdana,8,0" +) +xt "27000,49600,46700,50600" +st "addressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*431 (Net +uid 10660,0 +decl (Decl +n "selZ" +t "std_ulogic" +o 76 +suid 76,0 +) +declText (MLText +uid 10661,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,77800,229800,78800" +st "SIGNAL selZ : std_ulogic" +) +) +*432 (PortIoOut +uid 10878,0 +shape (CompositeShape +uid 10879,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 10880,0 +sl 0 +ro 270 +xt "209500,205625,211000,206375" +) +(Line +uid 10881,0 +sl 0 +ro 270 +xt "209000,206000,209500,206000" +pts [ +"209000,206000" +"209500,206000" +] +) +] +) +tg (WTG +uid 10882,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10883,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "212000,205300,215700,206700" +st "outZ" +blo "212000,206500" +tm "WireNameMgr" +) +) +) +*433 (Net +uid 10890,0 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 77,0 +) +declText (MLText +uid 10891,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,13900,226800,14900" +st "outZ : std_ulogic" +) +) +*434 (HdlText +uid 10892,0 +optionalChildren [ +*435 (EmbeddedText +uid 10897,0 +commentText (CommentText +uid 10898,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 10899,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "186000,204000,200300,208000" +) +oxt "0,0,18000,5000" +text (MLText +uid 10900,0 +va (VaSet +) +xt "186200,204200,198500,207800" +st " +outZ <= '0' when ( (to_01(unsigned(sampleZ1)) = 0) or (to_01(unsigned(sampleZ2)) = 0) ) else '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14300 +) +) +) +] +shape (Rectangle +uid 10893,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "185000,202000,201000,210000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 10894,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*436 (Text +uid 10895,0 +va (VaSet +) +xt "185400,210000,188000,211200" +st "eb9" +blo "185400,211000" +tm "HdlTextNameMgr" +) +*437 (Text +uid 10896,0 +va (VaSet +) +xt "185400,211000,186800,212200" +st "9" +blo "185400,212000" +tm "HdlTextNumberMgr" +) +] +) +) +*438 (SaComponent +uid 11389,0 +optionalChildren [ +*439 (CptPort +uid 11353,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11354,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,133625,91750,134375" +) +tg (CPTG +uid 11355,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11356,0 +va (VaSet +) +xt "85600,133400,90000,134600" +st "memWr" +ju 2 +blo "90000,134400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*440 (CptPort +uid 11357,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11358,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,129625,75000,130375" +) +tg (CPTG +uid 11359,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11360,0 +va (VaSet +) +xt "76000,129400,78200,130600" +st "sel" +blo "76000,130400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*441 (CptPort +uid 11361,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11362,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,135625,91750,136375" +) +tg (CPTG +uid 11363,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11364,0 +va (VaSet +) +xt "85600,135400,90000,136600" +st "memEn" +ju 2 +blo "90000,136400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*442 (CptPort +uid 11365,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11366,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,133625,75000,134375" +) +tg (CPTG +uid 11367,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11368,0 +va (VaSet +) +xt "76000,133400,80100,134600" +st "update" +blo "76000,134400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*443 (CptPort +uid 11369,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11370,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,131625,75000,132375" +) +tg (CPTG +uid 11371,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11372,0 +va (VaSet +) +xt "76000,131400,77800,132600" +st "wr" +blo "76000,132400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*444 (CptPort +uid 11373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11374,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,129625,91750,130375" +) +tg (CPTG +uid 11375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11376,0 +va (VaSet +) +xt "85600,129400,90000,130600" +st "cntIncr" +ju 2 +blo "90000,130400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*445 (CptPort +uid 11377,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11378,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,135625,75000,136375" +) +tg (CPTG +uid 11379,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11380,0 +va (VaSet +) +xt "76000,135400,82300,136600" +st "newSample" +blo "76000,136400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*446 (CptPort +uid 11381,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11382,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,139625,75000,140375" +) +tg (CPTG +uid 11383,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11384,0 +va (VaSet +) +xt "76000,139400,79400,140600" +st "clock" +blo "76000,140400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*447 (CptPort +uid 11385,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11386,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,141625,75000,142375" +) +tg (CPTG +uid 11387,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11388,0 +va (VaSet +) +xt "76000,141400,79300,142600" +st "reset" +blo "76000,142400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11390,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,126000,91000,144000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11391,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*448 (Text +uid 11392,0 +va (VaSet +) +xt "75600,143800,79900,145000" +st "Curves" +blo "75600,144800" +tm "BdLibraryNameMgr" +) +*449 (Text +uid 11393,0 +va (VaSet +) +xt "75600,144800,85800,146000" +st "blockRAMControl" +blo "75600,145800" +tm "CptNameMgr" +) +*450 (Text +uid 11394,0 +va (VaSet +) +xt "75600,145800,78200,147000" +st "I19" +blo "75600,146800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11395,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11396,0 +text (MLText +uid 11397,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "43000,118000,43000,118000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*451 (SaComponent +uid 11434,0 +optionalChildren [ +*452 (CptPort +uid 11398,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11399,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,183625,91750,184375" +) +tg (CPTG +uid 11400,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11401,0 +va (VaSet +) +xt "85600,183400,90000,184600" +st "memWr" +ju 2 +blo "90000,184400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*453 (CptPort +uid 11402,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11403,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,179625,75000,180375" +) +tg (CPTG +uid 11404,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11405,0 +va (VaSet +) +xt "76000,179400,78200,180600" +st "sel" +blo "76000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*454 (CptPort +uid 11406,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11407,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,185625,91750,186375" +) +tg (CPTG +uid 11408,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11409,0 +va (VaSet +) +xt "85600,185400,90000,186600" +st "memEn" +ju 2 +blo "90000,186400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*455 (CptPort +uid 11410,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11411,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,183625,75000,184375" +) +tg (CPTG +uid 11412,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11413,0 +va (VaSet +) +xt "76000,183400,80100,184600" +st "update" +blo "76000,184400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*456 (CptPort +uid 11414,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11415,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,181625,75000,182375" +) +tg (CPTG +uid 11416,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11417,0 +va (VaSet +) +xt "76000,181400,77800,182600" +st "wr" +blo "76000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*457 (CptPort +uid 11418,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11419,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,179625,91750,180375" +) +tg (CPTG +uid 11420,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11421,0 +va (VaSet +) +xt "85600,179400,90000,180600" +st "cntIncr" +ju 2 +blo "90000,180400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*458 (CptPort +uid 11422,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11423,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,185625,75000,186375" +) +tg (CPTG +uid 11424,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11425,0 +va (VaSet +) +xt "76000,185400,82300,186600" +st "newSample" +blo "76000,186400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*459 (CptPort +uid 11426,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11427,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,189625,75000,190375" +) +tg (CPTG +uid 11428,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11429,0 +va (VaSet +) +xt "76000,189400,79400,190600" +st "clock" +blo "76000,190400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*460 (CptPort +uid 11430,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11431,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,191625,75000,192375" +) +tg (CPTG +uid 11432,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11433,0 +va (VaSet +) +xt "76000,191400,79300,192600" +st "reset" +blo "76000,192400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11435,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,176000,91000,194000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11436,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*461 (Text +uid 11437,0 +va (VaSet +) +xt "75600,193800,79900,195000" +st "Curves" +blo "75600,194800" +tm "BdLibraryNameMgr" +) +*462 (Text +uid 11438,0 +va (VaSet +) +xt "75600,194800,85800,196000" +st "blockRAMControl" +blo "75600,195800" +tm "CptNameMgr" +) +*463 (Text +uid 11439,0 +va (VaSet +) +xt "75600,195800,78200,197000" +st "I17" +blo "75600,196800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11440,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11441,0 +text (MLText +uid 11442,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "43000,168000,43000,168000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*464 (SaComponent +uid 11479,0 +optionalChildren [ +*465 (CptPort +uid 11443,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11444,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,233625,91750,234375" +) +tg (CPTG +uid 11445,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11446,0 +va (VaSet +) +xt "85600,233400,90000,234600" +st "memWr" +ju 2 +blo "90000,234400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*466 (CptPort +uid 11447,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11448,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,229625,75000,230375" +) +tg (CPTG +uid 11449,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11450,0 +va (VaSet +) +xt "76000,229400,78200,230600" +st "sel" +blo "76000,230400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*467 (CptPort +uid 11451,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11452,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,235625,91750,236375" +) +tg (CPTG +uid 11453,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11454,0 +va (VaSet +) +xt "85600,235400,90000,236600" +st "memEn" +ju 2 +blo "90000,236400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*468 (CptPort +uid 11455,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11456,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,233625,75000,234375" +) +tg (CPTG +uid 11457,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11458,0 +va (VaSet +) +xt "76000,233400,80100,234600" +st "update" +blo "76000,234400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*469 (CptPort +uid 11459,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11460,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,231625,75000,232375" +) +tg (CPTG +uid 11461,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11462,0 +va (VaSet +) +xt "76000,231400,77800,232600" +st "wr" +blo "76000,232400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*470 (CptPort +uid 11463,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11464,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,229625,91750,230375" +) +tg (CPTG +uid 11465,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11466,0 +va (VaSet +) +xt "85600,229400,90000,230600" +st "cntIncr" +ju 2 +blo "90000,230400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*471 (CptPort +uid 11467,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11468,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,235625,75000,236375" +) +tg (CPTG +uid 11469,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11470,0 +va (VaSet +) +xt "76000,235400,82300,236600" +st "newSample" +blo "76000,236400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*472 (CptPort +uid 11471,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11472,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,239625,75000,240375" +) +tg (CPTG +uid 11473,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11474,0 +va (VaSet +) +xt "76000,239400,79400,240600" +st "clock" +blo "76000,240400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*473 (CptPort +uid 11475,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11476,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,241625,75000,242375" +) +tg (CPTG +uid 11477,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11478,0 +va (VaSet +) +xt "76000,241400,79300,242600" +st "reset" +blo "76000,242400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11480,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,226000,91000,244000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11481,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*474 (Text +uid 11482,0 +va (VaSet +) +xt "75600,243800,79900,245000" +st "Curves" +blo "75600,244800" +tm "BdLibraryNameMgr" +) +*475 (Text +uid 11483,0 +va (VaSet +) +xt "75600,244800,85800,246000" +st "blockRAMControl" +blo "75600,245800" +tm "CptNameMgr" +) +*476 (Text +uid 11484,0 +va (VaSet +) +xt "75600,245800,78200,247000" +st "I31" +blo "75600,246800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11485,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11486,0 +text (MLText +uid 11487,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "43000,218000,43000,218000" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*477 (SaComponent +uid 11488,0 +optionalChildren [ +*478 (CptPort +uid 11497,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11498,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,209625,161000,210375" +) +tg (CPTG +uid 11499,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11500,0 +va (VaSet +) +xt "162000,209400,165400,210600" +st "clock" +blo "162000,210400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*479 (CptPort +uid 11501,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11502,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,211625,161000,212375" +) +tg (CPTG +uid 11503,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11504,0 +va (VaSet +) +xt "162000,211400,165300,212600" +st "reset" +blo "162000,212400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*480 (CptPort +uid 11505,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11506,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,205625,161000,206375" +) +tg (CPTG +uid 11507,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11508,0 +va (VaSet +) +xt "162000,205400,169900,206600" +st "shiftSamples" +blo "162000,206400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*481 (CptPort +uid 11509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11510,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,203625,161000,204375" +) +tg (CPTG +uid 11511,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11512,0 +va (VaSet +) +xt "162000,203400,167400,204600" +st "sampleIn" +blo "162000,204400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*482 (CptPort +uid 11513,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11514,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,203625,177750,204375" +) +tg (CPTG +uid 11515,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11516,0 +va (VaSet +) +xt "171000,203400,176000,204600" +st "sample1" +ju 2 +blo "176000,204400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*483 (CptPort +uid 11517,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11518,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,205625,177750,206375" +) +tg (CPTG +uid 11519,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11520,0 +va (VaSet +) +xt "171000,205400,176000,206600" +st "sample2" +ju 2 +blo "176000,206400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*484 (CptPort +uid 11521,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11522,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,207625,177750,208375" +) +tg (CPTG +uid 11523,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11524,0 +va (VaSet +) +xt "171000,207400,176000,208600" +st "sample3" +ju 2 +blo "176000,208400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*485 (CptPort +uid 11525,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11526,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,209625,177750,210375" +) +tg (CPTG +uid 11527,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11528,0 +va (VaSet +) +xt "171000,209400,176000,210600" +st "sample4" +ju 2 +blo "176000,210400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 11489,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,200000,177000,214000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11490,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*486 (Text +uid 11491,0 +va (VaSet +) +xt "161600,213800,165900,215000" +st "Curves" +blo "161600,214800" +tm "BdLibraryNameMgr" +) +*487 (Text +uid 11492,0 +va (VaSet +) +xt "161600,214800,176000,216000" +st "interpolatorShiftRegister" +blo "161600,215800" +tm "CptNameMgr" +) +*488 (Text +uid 11493,0 +va (VaSet +) +xt "161600,215800,164200,217000" +st "I33" +blo "161600,216800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11494,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11495,0 +text (MLText +uid 11496,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,217600,179100,218600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*489 (Net +uid 11567,0 +decl (Decl +n "sampleZ1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 66 +suid 78,0 +) +declText (MLText +uid 11568,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,68800,240900,69800" +st "SIGNAL sampleZ1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*490 (Net +uid 11569,0 +decl (Decl +n "sampleZ2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 67 +suid 79,0 +) +declText (MLText +uid 11570,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,69700,240900,70700" +st "SIGNAL sampleZ2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*491 (HdlText +uid 11571,0 +optionalChildren [ +*492 (EmbeddedText +uid 11576,0 +commentText (CommentText +uid 11577,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 11578,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,202000,146300,206000" +) +oxt "0,0,18000,5000" +text (MLText +uid 11579,0 +va (VaSet +) +xt "132200,202200,146500,205800" +st " +samplesZ <= (others => '1') when selSinCos = '1' + else signed(memZ); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14300 +) +) +) +] +shape (Rectangle +uid 11572,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,200000,147000,208000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11573,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*493 (Text +uid 11574,0 +va (VaSet +) +xt "131400,208000,134700,209200" +st "eb10" +blo "131400,209000" +tm "HdlTextNameMgr" +) +*494 (Text +uid 11575,0 +va (VaSet +) +xt "131400,209000,133500,210200" +st "10" +blo "131400,210000" +tm "HdlTextNumberMgr" +) +] +) +) +*495 (Net +uid 11588,0 +decl (Decl +n "samplesZ" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 70 +suid 80,0 +) +declText (MLText +uid 11589,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,72400,240800,73400" +st "SIGNAL samplesZ : signed(signalBitNb-1 DOWNTO 0)" +) +) +*496 (SaComponent +uid 11858,0 +optionalChildren [ +*497 (CptPort +uid 11830,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11831,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,84625,281750,85375" +) +tg (CPTG +uid 11832,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11833,0 +va (VaSet +) +xt "277200,84400,280000,85600" +st "CLK" +ju 2 +blo "280000,85400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK" +t "std_ulogic" +o 17 +) +) +) +*498 (CptPort +uid 11834,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11835,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,86625,265000,87375" +) +tg (CPTG +uid 11836,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11837,0 +va (VaSet +) +xt "266000,86400,269400,87600" +st "clock" +blo "266000,87400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*499 (CptPort +uid 11838,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11839,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,80625,281750,81375" +) +tg (CPTG +uid 11840,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11841,0 +va (VaSet +) +xt "276600,80400,280000,81600" +st "CS_n" +ju 2 +blo "280000,81400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_n" +t "std_ulogic" +o 15 +) +) +) +*500 (CptPort +uid 11842,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11843,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,82625,265000,83375" +) +tg (CPTG +uid 11844,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11845,0 +va (VaSet +) +xt "266000,82400,270500,83600" +st "enConv" +blo "266000,83400" +) +) +thePort (LogicalPort +decl (Decl +n "enConv" +t "std_uLogic" +o 37 +) +) +) +*501 (CptPort +uid 11846,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11847,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,88625,265000,89375" +) +tg (CPTG +uid 11848,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11849,0 +va (VaSet +) +xt "266000,88400,269300,89600" +st "reset" +blo "266000,89400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*502 (CptPort +uid 11850,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11851,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,80625,265000,81375" +) +tg (CPTG +uid 11852,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11853,0 +va (VaSet +) +xt "266000,80400,270000,81600" +st "dataIn" +blo "266000,81400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 56 +) +) +) +*503 (CptPort +uid 11854,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11855,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,82625,281750,83375" +) +tg (CPTG +uid 11856,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11857,0 +va (VaSet +) +xt "277300,82400,280000,83600" +st "SDI" +ju 2 +blo "280000,83400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI" +t "std_ulogic" +o 16 +) +) +) +] +shape (Rectangle +uid 11859,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,77000,281000,91000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11860,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*504 (Text +uid 11861,0 +va (VaSet +) +xt "265150,90800,269450,92000" +st "Curves" +blo "265150,91800" +tm "BdLibraryNameMgr" +) +*505 (Text +uid 11862,0 +va (VaSet +) +xt "265150,91800,272950,93000" +st "dacInterface" +blo "265150,92800" +tm "CptNameMgr" +) +*506 (Text +uid 11863,0 +va (VaSet +) +xt "265150,92800,267750,94000" +st "I34" +blo "265150,93800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11864,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11865,0 +text (MLText +uid 11866,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,94600,280300,95600" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*507 (SaComponent +uid 11943,0 +optionalChildren [ +*508 (CptPort +uid 11952,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11953,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,62625,281750,63375" +) +tg (CPTG +uid 11954,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11955,0 +va (VaSet +) +xt "277200,62400,280000,63600" +st "CLK" +ju 2 +blo "280000,63400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK" +t "std_ulogic" +o 17 +) +) +) +*509 (CptPort +uid 11956,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11957,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,64625,265000,65375" +) +tg (CPTG +uid 11958,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11959,0 +va (VaSet +) +xt "266000,64400,269400,65600" +st "clock" +blo "266000,65400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*510 (CptPort +uid 11960,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11961,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,58625,281750,59375" +) +tg (CPTG +uid 11962,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11963,0 +va (VaSet +) +xt "276600,58400,280000,59600" +st "CS_n" +ju 2 +blo "280000,59400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_n" +t "std_ulogic" +o 15 +) +) +) +*511 (CptPort +uid 11964,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11965,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,60625,265000,61375" +) +tg (CPTG +uid 11966,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11967,0 +va (VaSet +) +xt "266000,60400,270500,61600" +st "enConv" +blo "266000,61400" +) +) +thePort (LogicalPort +decl (Decl +n "enConv" +t "std_uLogic" +o 37 +) +) +) +*512 (CptPort +uid 11968,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11969,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,66625,265000,67375" +) +tg (CPTG +uid 11970,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11971,0 +va (VaSet +) +xt "266000,66400,269300,67600" +st "reset" +blo "266000,67400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*513 (CptPort +uid 11972,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11973,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,58625,265000,59375" +) +tg (CPTG +uid 11974,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11975,0 +va (VaSet +) +xt "266000,58400,270000,59600" +st "dataIn" +blo "266000,59400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 56 +) +) +) +*514 (CptPort +uid 11976,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11977,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,60625,281750,61375" +) +tg (CPTG +uid 11978,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11979,0 +va (VaSet +) +xt "277300,60400,280000,61600" +st "SDI" +ju 2 +blo "280000,61400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI" +t "std_ulogic" +o 16 +) +) +) +] +shape (Rectangle +uid 11944,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,55000,281000,69000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 11945,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*515 (Text +uid 11946,0 +va (VaSet +) +xt "265150,68800,269450,70000" +st "Curves" +blo "265150,69800" +tm "BdLibraryNameMgr" +) +*516 (Text +uid 11947,0 +va (VaSet +) +xt "265150,69800,272950,71000" +st "dacInterface" +blo "265150,70800" +tm "CptNameMgr" +) +*517 (Text +uid 11948,0 +va (VaSet +) +xt "265150,70800,267750,72000" +st "I35" +blo "265150,71800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11949,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11950,0 +text (MLText +uid 11951,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,72600,280300,73600" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*518 (PortIoOut +uid 12050,0 +shape (CompositeShape +uid 12051,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12052,0 +sl 0 +ro 270 +xt "289500,84625,291000,85375" +) +(Line +uid 12053,0 +sl 0 +ro 270 +xt "289000,85000,289500,85000" +pts [ +"289000,85000" +"289500,85000" +] +) +] +) +tg (WTG +uid 12054,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12055,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,84300,296800,85700" +st "CLK_X" +blo "292000,85500" +tm "WireNameMgr" +) +) +) +*519 (Net +uid 12062,0 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 81,0 +) +declText (MLText +uid 12063,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,16600,227300,17600" +st "CLK_X : std_ulogic" +) +) +*520 (PortIoOut +uid 12064,0 +shape (CompositeShape +uid 12065,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12066,0 +sl 0 +ro 270 +xt "289500,62625,291000,63375" +) +(Line +uid 12067,0 +sl 0 +ro 270 +xt "289000,63000,289500,63000" +pts [ +"289000,63000" +"289500,63000" +] +) +] +) +tg (WTG +uid 12068,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12069,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,62300,296700,63700" +st "CLK_Y" +blo "292000,63500" +tm "WireNameMgr" +) +) +) +*521 (Net +uid 12076,0 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 82,0 +) +declText (MLText +uid 12077,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,17500,227300,18500" +st "CLK_Y : std_ulogic" +) +) +*522 (PortIoOut +uid 12078,0 +shape (CompositeShape +uid 12079,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12080,0 +sl 0 +ro 270 +xt "289500,80625,291000,81375" +) +(Line +uid 12081,0 +sl 0 +ro 270 +xt "289000,81000,289500,81000" +pts [ +"289000,81000" +"289500,81000" +] +) +] +) +tg (WTG +uid 12082,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12083,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,80300,297700,81700" +st "CS_X_n" +blo "292000,81500" +tm "WireNameMgr" +) +) +) +*523 (Net +uid 12090,0 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 83,0 +) +declText (MLText +uid 12091,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,14800,227500,15800" +st "CS_X_n : std_ulogic" +) +) +*524 (PortIoOut +uid 12092,0 +shape (CompositeShape +uid 12093,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12094,0 +sl 0 +ro 270 +xt "289500,58625,291000,59375" +) +(Line +uid 12095,0 +sl 0 +ro 270 +xt "289000,59000,289500,59000" +pts [ +"289000,59000" +"289500,59000" +] +) +] +) +tg (WTG +uid 12096,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12097,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,58300,297600,59700" +st "CS_Y_n" +blo "292000,59500" +tm "WireNameMgr" +) +) +) +*525 (Net +uid 12104,0 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 84,0 +) +declText (MLText +uid 12105,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,18400,227500,19400" +st "CS_Y_n : std_ulogic" +) +) +*526 (PortIoOut +uid 12106,0 +shape (CompositeShape +uid 12107,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12108,0 +sl 0 +ro 270 +xt "289500,82625,291000,83375" +) +(Line +uid 12109,0 +sl 0 +ro 270 +xt "289000,83000,289500,83000" +pts [ +"289000,83000" +"289500,83000" +] +) +] +) +tg (WTG +uid 12110,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12111,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,82300,296600,83700" +st "SDI_X" +blo "292000,83500" +tm "WireNameMgr" +) +) +) +*527 (Net +uid 12118,0 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 85,0 +) +declText (MLText +uid 12119,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,15700,227100,16700" +st "SDI_X : std_ulogic" +) +) +*528 (PortIoOut +uid 12120,0 +shape (CompositeShape +uid 12121,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 12122,0 +sl 0 +ro 270 +xt "289500,60625,291000,61375" +) +(Line +uid 12123,0 +sl 0 +ro 270 +xt "289000,61000,289500,61000" +pts [ +"289000,61000" +"289500,61000" +] +) +] +) +tg (WTG +uid 12124,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12125,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,60300,296500,61700" +st "SDI_Y" +blo "292000,61500" +tm "WireNameMgr" +) +) +) +*529 (Net +uid 12132,0 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 86,0 +) +declText (MLText +uid 12133,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,19300,227100,20300" +st "SDI_Y : std_ulogic" +) +) +*530 (Wire +uid 59,0 +shape (OrthoPolyLine +uid 60,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "3000,32000,6250,32000" +pts [ +"3000,32000" +"6250,32000" +] +) +start &12 +end &250 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 63,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,30600,6700,32000" +st "addr" +blo "3000,31800" +tm "WireNameMgr" +) +) +on &13 +) +*531 (Wire +uid 73,0 +shape (OrthoPolyLine +uid 74,0 +va (VaSet +vasetType 3 +) +xt "71000,24000,74250,24000" +pts [ +"71000,24000" +"74250,24000" +] +) +start &14 +end &288 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 77,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 78,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,22600,74800,24000" +st "clock" +blo "71000,23800" +tm "WireNameMgr" +) +) +on &15 +) +*532 (Wire +uid 87,0 +shape (OrthoPolyLine +uid 88,0 +va (VaSet +vasetType 3 +) +xt "19000,60000,26250,60000" +pts [ +"19000,60000" +"26250,60000" +] +) +start &16 +end &181 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 91,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 92,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,58600,21100,60000" +st "cs" +blo "19000,59800" +tm "WireNameMgr" +) +) +on &17 +) +*533 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "281750,154000,289000,154000" +pts [ +"281750,154000" +"289000,154000" +] +) +start &34 +end &18 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,152600,289700,154000" +st "outX" +blo "286000,153800" +tm "WireNameMgr" +) +) +on &19 +) +*534 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "281750,117000,289000,117000" +pts [ +"281750,117000" +"289000,117000" +] +) +start &65 +end &20 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,115600,289600,117000" +st "outY" +blo "286000,116800" +tm "WireNameMgr" +) +) +on &21 +) +*535 (Wire +uid 143,0 +shape (OrthoPolyLine +uid 144,0 +va (VaSet +vasetType 3 +) +xt "19000,96000,27000,96000" +pts [ +"19000,96000" +"27000,96000" +] +) +start &22 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 147,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 148,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,94600,21100,96000" +st "rd" +blo "19000,95800" +tm "WireNameMgr" +) +) +on &23 +) +*536 (Wire +uid 157,0 +shape (OrthoPolyLine +uid 158,0 +va (VaSet +vasetType 3 +) +xt "71000,26000,74250,26000" +pts [ +"71000,26000" +"74250,26000" +] +) +start &24 +end &289 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 161,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 162,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,24600,75100,26000" +st "reset" +blo "71000,25800" +tm "WireNameMgr" +) +) +on &25 +) +*537 (Wire +uid 171,0 +shape (OrthoPolyLine +uid 172,0 +va (VaSet +vasetType 3 +) +xt "19000,58000,26250,58000" +pts [ +"19000,58000" +"26250,58000" +] +) +start &26 +end &180 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 175,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 176,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,56600,22300,58000" +st "wrH" +blo "19000,57800" +tm "WireNameMgr" +) +) +on &27 +) +*538 (Wire +uid 185,0 +shape (OrthoPolyLine +uid 186,0 +va (VaSet +vasetType 3 +) +xt "19000,80000,26250,80000" +pts [ +"19000,80000" +"26250,80000" +] +) +start &28 +end &190 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 189,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 190,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,78600,22100,80000" +st "wrL" +blo "19000,79800" +tm "WireNameMgr" +) +) +on &29 +) +*539 (Wire +uid 354,0 +optionalChildren [ +*540 (BdJunction +uid 9152,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9153,0 +va (VaSet +vasetType 1 +) +xt "152600,155600,153400,156400" +radius 400 +) +) +*541 (BdJunction +uid 11549,0 +ps "OnConnectorStrategy" +shape (Circle +uid 11550,0 +va (VaSet +vasetType 1 +) +xt "152600,168600,153400,169400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 355,0 +va (VaSet +vasetType 3 +) +xt "153000,156000,181000,176000" +pts [ +"181000,176000" +"181000,169000" +"153000,169000" +"153000,156000" +"160250,156000" +] +) +start *542 (BdJunction +uid 564,0 +ps "OnConnectorStrategy" +shape (Circle +uid 565,0 +va (VaSet +vasetType 1 +) +xt "180600,175600,181400,176400" +radius 400 +) +) +end &358 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,154600,161600,156000" +st "newPolynom" +blo "152000,155800" +tm "WireNameMgr" +) +) +on &30 +) +*543 (Wire +uid 360,0 +optionalChildren [ +&542 +*544 (BdJunction +uid 9244,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9245,0 +va (VaSet +vasetType 1 +) +xt "204600,161600,205400,162400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 361,0 +va (VaSet +vasetType 3 +) +xt "177750,162000,216250,176000" +pts [ +"177750,176000" +"205000,176000" +"205000,162000" +"216250,162000" +] +) +start &117 +end &383 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 363,0 +va (VaSet +font "Verdana,12,0" +) +xt "201000,174600,210600,176000" +st "newPolynom" +blo "201000,175800" +tm "WireNameMgr" +) +) +on &30 +) +*545 (Wire +uid 364,0 +shape (OrthoPolyLine +uid 365,0 +va (VaSet +vasetType 3 +) +xt "157000,182000,160250,182000" +pts [ +"157000,182000" +"160250,182000" +] +) +end &119 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 368,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 369,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,180600,160100,182000" +st "reset" +blo "156000,181800" +tm "WireNameMgr" +) +) +on &25 +) +*546 (Wire +uid 370,0 +shape (OrthoPolyLine +uid 371,0 +va (VaSet +vasetType 3 +) +xt "157000,180000,160250,180000" +pts [ +"157000,180000" +"160250,180000" +] +) +end &118 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 374,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 375,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,178600,159800,180000" +st "clock" +blo "156000,179800" +tm "WireNameMgr" +) +) +on &15 +) +*547 (Wire +uid 376,0 +shape (OrthoPolyLine +uid 377,0 +va (VaSet +vasetType 3 +) +xt "157000,162000,160250,162000" +pts [ +"157000,162000" +"160250,162000" +] +) +end &357 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 381,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,160600,160100,162000" +st "reset" +blo "156000,161800" +tm "WireNameMgr" +) +) +on &25 +) +*548 (Wire +uid 382,0 +shape (OrthoPolyLine +uid 383,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,154000,160250,154000" +pts [ +"147000,154000" +"160250,154000" +] +) +start &129 +end &359 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 384,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 385,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,152600,155800,154000" +st "samplesX" +blo "149000,153800" +tm "WireNameMgr" +) +) +on &47 +) +*549 (Wire +uid 386,0 +shape (OrthoPolyLine +uid 387,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,156000,184250,156000" +pts [ +"177750,156000" +"184250,156000" +] +) +start &361 +end &297 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 388,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 389,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,154600,184900,156000" +st "sampleX2" +blo "178000,155800" +tm "WireNameMgr" +) +) +on &49 +) +*550 (Wire +uid 390,0 +shape (OrthoPolyLine +uid 391,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,154000,184250,154000" +pts [ +"177750,154000" +"184250,154000" +] +) +start &360 +end &296 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 393,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,152600,184900,154000" +st "sampleX1" +blo "178000,153800" +tm "WireNameMgr" +) +) +on &48 +) +*551 (Wire +uid 394,0 +shape (OrthoPolyLine +uid 395,0 +va (VaSet +vasetType 3 +) +xt "157000,160000,160250,160000" +pts [ +"157000,160000" +"160250,160000" +] +) +end &356 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 399,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,158600,159800,160000" +st "clock" +blo "156000,159800" +tm "WireNameMgr" +) +) +on &15 +) +*552 (Wire +uid 400,0 +shape (OrthoPolyLine +uid 401,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,154000,216250,154000" +pts [ +"201750,154000" +"216250,154000" +] +) +start &300 +end &388 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,152600,206150,154000" +st "aX" +blo "203750,153800" +tm "WireNameMgr" +) +) +on &52 +) +*553 (Wire +uid 404,0 +shape (OrthoPolyLine +uid 405,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,160000,184250,160000" +pts [ +"177750,160000" +"184250,160000" +] +) +start &363 +end &299 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 406,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 407,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,158600,184900,160000" +st "sampleX4" +blo "178000,159800" +tm "WireNameMgr" +) +) +on &51 +) +*554 (Wire +uid 408,0 +shape (OrthoPolyLine +uid 409,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,158000,184250,158000" +pts [ +"177750,158000" +"184250,158000" +] +) +start &362 +end &298 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 410,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 411,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,156600,184900,158000" +st "sampleX3" +blo "178000,157800" +tm "WireNameMgr" +) +) +on &50 +) +*555 (Wire +uid 412,0 +shape (OrthoPolyLine +uid 413,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,160000,216250,160000" +pts [ +"201750,160000" +"216250,160000" +] +) +start &302 +end &384 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 414,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 415,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,158600,206150,160000" +st "dX" +blo "203750,159800" +tm "WireNameMgr" +) +) +on &55 +) +*556 (Wire +uid 416,0 +shape (OrthoPolyLine +uid 417,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,158000,216250,158000" +pts [ +"201750,158000" +"216250,158000" +] +) +start &303 +end &386 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 419,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,156600,205950,158000" +st "cX" +blo "203750,157800" +tm "WireNameMgr" +) +) +on &54 +) +*557 (Wire +uid 420,0 +shape (OrthoPolyLine +uid 421,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,156000,216250,156000" +pts [ +"201750,156000" +"216250,156000" +] +) +start &301 +end &387 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 422,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 423,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,154600,206150,156000" +st "bX" +blo "203750,155800" +tm "WireNameMgr" +) +) +on &53 +) +*558 (Wire +uid 424,0 +shape (OrthoPolyLine +uid 425,0 +va (VaSet +vasetType 3 +) +xt "213000,170000,216250,170000" +pts [ +"213000,170000" +"216250,170000" +] +) +end &382 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,168600,216100,170000" +st "reset" +blo "212000,169800" +tm "WireNameMgr" +) +) +on &25 +) +*559 (Wire +uid 430,0 +shape (OrthoPolyLine +uid 431,0 +va (VaSet +vasetType 3 +) +xt "213000,168000,216250,168000" +pts [ +"213000,168000" +"216250,168000" +] +) +end &381 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 435,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,166600,215800,168000" +st "clock" +blo "212000,167800" +tm "WireNameMgr" +) +) +on &15 +) +*560 (Wire +uid 497,0 +shape (OrthoPolyLine +uid 498,0 +va (VaSet +vasetType 3 +) +xt "261000,160000,264250,160000" +pts [ +"261000,160000" +"264250,160000" +] +) +end &35 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 503,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 504,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,158600,264100,160000" +st "reset" +blo "260000,159800" +tm "WireNameMgr" +) +) +on &25 +) +*561 (Wire +uid 505,0 +shape (OrthoPolyLine +uid 506,0 +va (VaSet +vasetType 3 +) +xt "261000,158000,264250,158000" +pts [ +"261000,158000" +"264250,158000" +] +) +end &32 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 511,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 512,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,156600,263800,158000" +st "clock" +blo "260000,157800" +tm "WireNameMgr" +) +) +on &15 +) +*562 (Wire +uid 532,0 +shape (OrthoPolyLine +uid 533,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,154000,240250,154000" +pts [ +"233750,154000" +"240250,154000" +] +) +start &385 +end &41 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 534,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 535,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,152600,240100,154000" +st "sampleX" +blo "234000,153800" +tm "WireNameMgr" +) +) +on &45 +) +*563 (Wire +uid 538,0 +shape (OrthoPolyLine +uid 539,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,154000,264250,154000" +pts [ +"257750,154000" +"264250,154000" +] +) +start &40 +end &33 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 541,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,152600,265400,154000" +st "unsignedX" +blo "258000,153800" +tm "WireNameMgr" +) +) +on &46 +) +*564 (Wire +uid 767,0 +shape (OrthoPolyLine +uid 768,0 +va (VaSet +vasetType 3 +) +xt "205000,125000,216250,162000" +pts [ +"205000,162000" +"205000,125000" +"216250,125000" +] +) +start &544 +end &370 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 772,0 +va (VaSet +font "Verdana,12,0" +) +xt "205000,123600,214600,125000" +st "newPolynom" +blo "205000,124800" +tm "WireNameMgr" +) +) +on &30 +) +*565 (Wire +uid 775,0 +shape (OrthoPolyLine +uid 776,0 +va (VaSet +vasetType 3 +) +xt "153000,119000,160250,156000" +pts [ +"153000,156000" +"153000,119000" +"160250,119000" +] +) +start &540 +end &346 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 777,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 778,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,117600,161600,119000" +st "newPolynom" +blo "152000,118800" +tm "WireNameMgr" +) +) +on &30 +) +*566 (Wire +uid 779,0 +shape (OrthoPolyLine +uid 780,0 +va (VaSet +vasetType 3 +) +xt "157000,125000,160250,125000" +pts [ +"157000,125000" +"160250,125000" +] +) +end &345 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 783,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 784,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,123600,160100,125000" +st "reset" +blo "156000,124800" +tm "WireNameMgr" +) +) +on &25 +) +*567 (Wire +uid 785,0 +shape (OrthoPolyLine +uid 786,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,117000,184250,117000" +pts [ +"177750,117000" +"184250,117000" +] +) +start &348 +end &309 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 787,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 788,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,115600,184800,117000" +st "sampleY1" +blo "178000,116800" +tm "WireNameMgr" +) +) +on &71 +) +*568 (Wire +uid 789,0 +shape (OrthoPolyLine +uid 790,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,119000,184250,119000" +pts [ +"177750,119000" +"184250,119000" +] +) +start &349 +end &310 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 791,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 792,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,117600,184800,119000" +st "sampleY2" +blo "178000,118800" +tm "WireNameMgr" +) +) +on &72 +) +*569 (Wire +uid 793,0 +shape (OrthoPolyLine +uid 794,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,117000,160250,117000" +pts [ +"147000,117000" +"160250,117000" +] +) +start &167 +end &347 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 797,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 798,0 +va (VaSet +font "Verdana,12,0" +) +xt "148000,115600,154700,117000" +st "samplesY" +blo "148000,116800" +tm "WireNameMgr" +) +) +on &70 +) +*570 (Wire +uid 799,0 +shape (OrthoPolyLine +uid 800,0 +va (VaSet +vasetType 3 +) +xt "157000,123000,160250,123000" +pts [ +"157000,123000" +"160250,123000" +] +) +end &344 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 803,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 804,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,121600,159800,123000" +st "clock" +blo "156000,122800" +tm "WireNameMgr" +) +) +on &15 +) +*571 (Wire +uid 805,0 +shape (OrthoPolyLine +uid 806,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,123000,216250,123000" +pts [ +"201750,123000" +"216250,123000" +] +) +start &315 +end &371 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 808,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,121600,206050,123000" +st "dY" +blo "203750,122800" +tm "WireNameMgr" +) +) +on &78 +) +*572 (Wire +uid 809,0 +shape (OrthoPolyLine +uid 810,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,121000,184250,121000" +pts [ +"177750,121000" +"184250,121000" +] +) +start &350 +end &311 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 811,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 812,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,119600,184800,121000" +st "sampleY3" +blo "178000,120800" +tm "WireNameMgr" +) +) +on &73 +) +*573 (Wire +uid 813,0 +shape (OrthoPolyLine +uid 814,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,123000,184250,123000" +pts [ +"177750,123000" +"184250,123000" +] +) +start &351 +end &312 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 816,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,121600,184800,123000" +st "sampleY4" +blo "178000,122800" +tm "WireNameMgr" +) +) +on &74 +) +*574 (Wire +uid 817,0 +shape (OrthoPolyLine +uid 818,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,117000,216250,117000" +pts [ +"201750,117000" +"216250,117000" +] +) +start &313 +end &375 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 820,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,115600,206050,117000" +st "aY" +blo "203750,116800" +tm "WireNameMgr" +) +) +on &75 +) +*575 (Wire +uid 821,0 +shape (OrthoPolyLine +uid 822,0 +va (VaSet +vasetType 3 +) +xt "213000,133000,216250,133000" +pts [ +"213000,133000" +"216250,133000" +] +) +end &369 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 825,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 826,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,131600,216100,133000" +st "reset" +blo "212000,132800" +tm "WireNameMgr" +) +) +on &25 +) +*576 (Wire +uid 827,0 +shape (OrthoPolyLine +uid 828,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,119000,216250,119000" +pts [ +"201750,119000" +"216250,119000" +] +) +start &314 +end &374 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 829,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 830,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,117600,206050,119000" +st "bY" +blo "203750,118800" +tm "WireNameMgr" +) +) +on &76 +) +*577 (Wire +uid 831,0 +shape (OrthoPolyLine +uid 832,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,121000,216250,121000" +pts [ +"201750,121000" +"216250,121000" +] +) +start &316 +end &373 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 833,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 834,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,119600,205850,121000" +st "cY" +blo "203750,120800" +tm "WireNameMgr" +) +) +on &77 +) +*578 (Wire +uid 835,0 +shape (OrthoPolyLine +uid 836,0 +va (VaSet +vasetType 3 +) +xt "261000,123000,264250,123000" +pts [ +"261000,123000" +"264250,123000" +] +) +end &66 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 840,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,121600,264100,123000" +st "reset" +blo "260000,122800" +tm "WireNameMgr" +) +) +on &25 +) +*579 (Wire +uid 841,0 +shape (OrthoPolyLine +uid 842,0 +va (VaSet +vasetType 3 +) +xt "213000,131000,216250,131000" +pts [ +"213000,131000" +"216250,131000" +] +) +end &368 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 845,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 846,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,129600,215800,131000" +st "clock" +blo "212000,130800" +tm "WireNameMgr" +) +) +on &15 +) +*580 (Wire +uid 847,0 +shape (OrthoPolyLine +uid 848,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,117000,240250,117000" +pts [ +"233750,117000" +"240250,117000" +] +) +start &372 +end &58 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 849,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 850,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,115600,240000,117000" +st "sampleY" +blo "234000,116800" +tm "WireNameMgr" +) +) +on &79 +) +*581 (Wire +uid 851,0 +shape (OrthoPolyLine +uid 852,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,117000,264250,117000" +pts [ +"257750,117000" +"264250,117000" +] +) +start &57 +end &64 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 853,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 854,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,115600,265300,117000" +st "unsignedY" +blo "258000,116800" +tm "WireNameMgr" +) +) +on &80 +) +*582 (Wire +uid 855,0 +shape (OrthoPolyLine +uid 856,0 +va (VaSet +vasetType 3 +) +xt "261000,121000,264250,121000" +pts [ +"261000,121000" +"264250,121000" +] +) +end &63 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 859,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 860,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,119600,263800,121000" +st "clock" +blo "260000,120800" +tm "WireNameMgr" +) +) +on &15 +) +*583 (Wire +uid 1049,0 +shape (OrthoPolyLine +uid 1050,0 +va (VaSet +vasetType 3 +) +xt "43750,34000,74250,48000" +pts [ +"43750,34000" +"57000,34000" +"57000,48000" +"74250,48000" +] +) +start &423 +end &110 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1053,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1054,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,46600,72200,48000" +st "selSize" +blo "67000,47800" +tm "WireNameMgr" +) +) +on &82 +) +*584 (Wire +uid 1057,0 +shape (OrthoPolyLine +uid 1058,0 +va (VaSet +vasetType 3 +) +xt "43750,36000,74250,78000" +pts [ +"43750,36000" +"55000,36000" +"55000,78000" +"74250,78000" +] +) +start &424 +end &98 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1062,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,76600,73600,78000" +st "selSpeed" +blo "67000,77800" +tm "WireNameMgr" +) +) +on &83 +) +*585 (Wire +uid 1065,0 +shape (OrthoPolyLine +uid 1066,0 +va (VaSet +vasetType 3 +) +xt "43750,38000,74250,180000" +pts [ +"43750,38000" +"53000,38000" +"53000,180000" +"74250,180000" +] +) +start &425 +end &453 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,178600,70400,180000" +st "selX" +blo "67000,179800" +tm "WireNameMgr" +) +) +on &84 +) +*586 (Wire +uid 1073,0 +shape (OrthoPolyLine +uid 1074,0 +va (VaSet +vasetType 3 +) +xt "43750,40000,74250,130000" +pts [ +"43750,40000" +"51000,40000" +"51000,130000" +"74250,130000" +] +) +start &426 +end &440 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1077,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1078,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,128600,70300,130000" +st "selY" +blo "67000,129800" +tm "WireNameMgr" +) +) +on &85 +) +*587 (Wire +uid 1332,0 +shape (OrthoPolyLine +uid 1333,0 +va (VaSet +vasetType 3 +) +xt "43750,20000,74250,32000" +pts [ +"43750,32000" +"57000,32000" +"57000,20000" +"74250,20000" +] +) +start &421 +end &287 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1338,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1339,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,18600,75000,20000" +st "selControl" +blo "67000,19800" +tm "WireNameMgr" +) +) +on &81 +) +*588 (Wire +uid 1340,0 +shape (OrthoPolyLine +uid 1341,0 +va (VaSet +vasetType 3 +) +xt "67000,18000,74250,18000" +pts [ +"67000,18000" +"74250,18000" +] +) +end &286 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1347,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,16600,73500,18000" +st "wrLPulse" +blo "67000,17800" +tm "WireNameMgr" +) +) +on &197 +) +*589 (Wire +uid 1350,0 +shape (OrthoPolyLine +uid 1351,0 +va (VaSet +vasetType 3 +) +xt "91750,12000,106250,66000" +pts [ +"91750,12000" +"103000,12000" +"103000,66000" +"106250,66000" +] +) +start &282 +end &149 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1354,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1355,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,10600,96650,12000" +st "run" +blo "93750,11800" +tm "WireNameMgr" +) +) +on &86 +) +*590 (Wire +uid 1358,0 +shape (OrthoPolyLine +uid 1359,0 +va (VaSet +vasetType 3 +) +xt "91750,14000,99000,14000" +pts [ +"91750,14000" +"99000,14000" +] +) +start &284 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1363,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,12600,104550,14000" +st "updatePattern" +blo "93750,13800" +tm "WireNameMgr" +) +) +on &87 +) +*591 (Wire +uid 1472,0 +shape (OrthoPolyLine +uid 1473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,40000,99000,40000" +pts [ +"91750,40000" +"99000,40000" +] +) +start &106 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1477,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,38600,102650,40000" +st "patternSize" +blo "93750,39800" +tm "WireNameMgr" +) +) +on &88 +) +*592 (Wire +uid 1494,0 +shape (OrthoPolyLine +uid 1495,0 +va (VaSet +vasetType 3 +) +xt "71000,52000,74250,52000" +pts [ +"71000,52000" +"74250,52000" +] +) +end &111 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1500,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1501,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,50600,74800,52000" +st "clock" +blo "71000,51800" +tm "WireNameMgr" +) +) +on &15 +) +*593 (Wire +uid 1502,0 +shape (OrthoPolyLine +uid 1503,0 +va (VaSet +vasetType 3 +) +xt "71000,54000,74250,54000" +pts [ +"71000,54000" +"74250,54000" +] +) +end &112 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1508,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1509,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,52600,75100,54000" +st "reset" +blo "71000,53800" +tm "WireNameMgr" +) +) +on &25 +) +*594 (Wire +uid 1510,0 +shape (OrthoPolyLine +uid 1511,0 +va (VaSet +vasetType 3 +) +xt "67000,46000,74250,46000" +pts [ +"67000,46000" +"74250,46000" +] +) +end &109 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1516,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1517,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,44600,73700,46000" +st "wrHPulse" +blo "67000,45800" +tm "WireNameMgr" +) +) +on &187 +) +*595 (Wire +uid 1526,0 +optionalChildren [ +*596 (BdJunction +uid 1538,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1539,0 +va (VaSet +vasetType 1 +) +xt "58600,11600,59400,12400" +radius 400 +) +) +*597 (BdJunction +uid 1544,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1545,0 +va (VaSet +vasetType 1 +) +xt "58600,39600,59400,40400" +radius 400 +) +) +*598 (BdJunction +uid 1736,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1737,0 +va (VaSet +vasetType 1 +) +xt "58600,67600,59400,68400" +radius 400 +) +) +*599 (BdJunction +uid 2476,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2477,0 +va (VaSet +vasetType 1 +) +xt "58600,149600,59400,150400" +radius 400 +) +) +*600 (BdJunction +uid 3825,0 +ps "OnConnectorStrategy" +shape (Circle +uid 3826,0 +va (VaSet +vasetType 1 +) +xt "58600,99600,59400,100400" +radius 400 +) +) +*601 (BdJunction +uid 10621,0 +ps "OnConnectorStrategy" +shape (Circle +uid 10622,0 +va (VaSet +vasetType 1 +) +xt "58600,199600,59400,200400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1527,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "43750,10000,59000,204000" +pts [ +"59000,204000" +"59000,10000" +"43750,10000" +] +) +end &240 +es 0 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1532,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1533,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,8600,51400,10000" +st "dataInReg" +blo "44000,9800" +tm "WireNameMgr" +) +) +on &246 +) +*602 (Wire +uid 1534,0 +shape (OrthoPolyLine +uid 1535,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,12000,74250,12000" +pts [ +"59000,12000" +"74250,12000" +] +) +start &596 +end &283 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1536,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1537,0 +va (VaSet +font "Verdana,12,0" +) +xt "68000,10600,75400,12000" +st "dataInReg" +blo "68000,11800" +tm "WireNameMgr" +) +) +on &246 +) +*603 (Wire +uid 1540,0 +shape (OrthoPolyLine +uid 1541,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,40000,74250,40000" +pts [ +"59000,40000" +"74250,40000" +] +) +start &597 +end &107 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1542,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1543,0 +va (VaSet +font "Verdana,12,0" +) +xt "70250,38600,77650,40000" +st "dataInReg" +blo "70250,39800" +tm "WireNameMgr" +) +) +on &246 +) +*604 (Wire +uid 1583,0 +optionalChildren [ +*605 (BdJunction +uid 2856,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2857,0 +va (VaSet +vasetType 1 +) +xt "62600,69600,63400,70400" +radius 400 +) +) +*606 (BdJunction +uid 2858,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2859,0 +va (VaSet +vasetType 1 +) +xt "62600,41600,63400,42400" +radius 400 +) +) +*607 (BdJunction +uid 2864,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2865,0 +va (VaSet +vasetType 1 +) +xt "62600,13600,63400,14400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1584,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,4000,63000,74000" +pts [ +"63000,74000" +"63000,4000" +"19000,4000" +] +) +end &90 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1588,0 +va (VaSet +font "Verdana,12,0" +) +xt "18000,1600,24000,3000" +st "dataOut" +blo "18000,2800" +tm "WireNameMgr" +) +) +on &91 +) +*608 (Wire +uid 1653,0 +shape (OrthoPolyLine +uid 1654,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "63000,42000,74250,42000" +pts [ +"74250,42000" +"63000,42000" +] +) +start &108 +end &606 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1655,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1656,0 +va (VaSet +font "Verdana,12,0" +) +xt "68250,40600,74250,42000" +st "dataOut" +blo "68250,41800" +tm "WireNameMgr" +) +) +on &91 +) +*609 (Wire +uid 1732,0 +shape (OrthoPolyLine +uid 1733,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,68000,74250,68000" +pts [ +"59000,68000" +"74250,68000" +] +) +start &598 +end &95 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1735,0 +va (VaSet +font "Verdana,12,0" +) +xt "69250,66600,76650,68000" +st "dataInReg" +blo "69250,67800" +tm "WireNameMgr" +) +) +on &246 +) +*610 (Wire +uid 1738,0 +shape (OrthoPolyLine +uid 1739,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "63000,70000,74250,70000" +pts [ +"63000,70000" +"74250,70000" +] +) +start &605 +end &96 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1740,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1741,0 +va (VaSet +font "Verdana,12,0" +) +xt "68250,68600,74250,70000" +st "dataOut" +blo "68250,69800" +tm "WireNameMgr" +) +) +on &91 +) +*611 (Wire +uid 1744,0 +shape (OrthoPolyLine +uid 1745,0 +va (VaSet +vasetType 3 +) +xt "71000,84000,74250,84000" +pts [ +"71000,84000" +"74250,84000" +] +) +end &100 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1751,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,82600,75100,84000" +st "reset" +blo "71000,83800" +tm "WireNameMgr" +) +) +on &25 +) +*612 (Wire +uid 1752,0 +shape (OrthoPolyLine +uid 1753,0 +va (VaSet +vasetType 3 +) +xt "71000,82000,74250,82000" +pts [ +"71000,82000" +"74250,82000" +] +) +end &99 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1758,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1759,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,80600,74800,82000" +st "clock" +blo "71000,81800" +tm "WireNameMgr" +) +) +on &15 +) +*613 (Wire +uid 1760,0 +shape (OrthoPolyLine +uid 1761,0 +va (VaSet +vasetType 3 +) +xt "67000,74000,74250,74000" +pts [ +"67000,74000" +"74250,74000" +] +) +end &97 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1766,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1767,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,72600,73700,74000" +st "wrHPulse" +blo "67000,73800" +tm "WireNameMgr" +) +) +on &187 +) +*614 (Wire +uid 1768,0 +shape (OrthoPolyLine +uid 1769,0 +va (VaSet +vasetType 3 +) +xt "67000,76000,74250,76000" +pts [ +"67000,76000" +"74250,76000" +] +) +end &101 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1775,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,74600,73500,76000" +st "wrLPulse" +blo "67000,75800" +tm "WireNameMgr" +) +) +on &197 +) +*615 (Wire +uid 1778,0 +shape (OrthoPolyLine +uid 1779,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,68000,106250,68000" +pts [ +"91750,68000" +"106250,68000" +] +) +start &94 +end &148 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1782,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1783,0 +va (VaSet +font "Verdana,12,0" +) +xt "93000,66600,103100,68000" +st "updatePeriod" +blo "93000,67800" +tm "WireNameMgr" +) +) +on &92 +) +*616 (Wire +uid 1969,0 +shape (OrthoPolyLine +uid 1970,0 +va (VaSet +vasetType 3 +) +xt "103000,74000,106250,74000" +pts [ +"103000,74000" +"106250,74000" +] +) +end &147 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1975,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1976,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,72600,107100,74000" +st "reset" +blo "103000,73800" +tm "WireNameMgr" +) +) +on &25 +) +*617 (Wire +uid 1977,0 +shape (OrthoPolyLine +uid 1978,0 +va (VaSet +vasetType 3 +) +xt "103000,72000,106250,72000" +pts [ +"103000,72000" +"106250,72000" +] +) +end &146 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1983,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1984,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,70600,106800,72000" +st "clock" +blo "103000,71800" +tm "WireNameMgr" +) +) +on &15 +) +*618 (Wire +uid 1987,0 +shape (OrthoPolyLine +uid 1988,0 +va (VaSet +vasetType 3 +) +xt "123750,66000,131000,66000" +pts [ +"123750,66000" +"131000,66000" +] +) +start &145 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1991,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1992,0 +va (VaSet +font "Verdana,12,0" +) +xt "125750,64600,136950,66000" +st "interpolationEn" +blo "125750,65800" +tm "WireNameMgr" +) +) +on &219 +) +*619 (Wire +uid 1995,0 +shape (OrthoPolyLine +uid 1996,0 +va (VaSet +vasetType 3 +) +xt "155000,176000,160250,176000" +pts [ +"155000,176000" +"160250,176000" +] +) +end &120 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2001,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2002,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,174600,163900,176000" +st "interpolationEnable" +blo "150000,175800" +tm "WireNameMgr" +) +) +on &124 +) +*620 (Wire +uid 2472,0 +shape (OrthoPolyLine +uid 2473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,150000,106250,154000" +pts [ +"106250,154000" +"99000,154000" +"99000,150000" +"59000,150000" +] +) +start &333 +end &599 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2474,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2475,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,152600,107400,154000" +st "dataInReg" +blo "100000,153800" +tm "WireNameMgr" +) +) +on &246 +) +*621 (Wire +uid 2478,0 +shape (OrthoPolyLine +uid 2479,0 +va (VaSet +vasetType 3 +) +xt "103000,166000,106250,166000" +pts [ +"103000,166000" +"106250,166000" +] +) +end &336 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2485,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,164600,106800,166000" +st "clock" +blo "103000,165800" +tm "WireNameMgr" +) +) +on &15 +) +*622 (Wire +uid 2486,0 +shape (OrthoPolyLine +uid 2487,0 +va (VaSet +vasetType 3 +) +xt "103000,168000,106250,168000" +pts [ +"103000,168000" +"106250,168000" +] +) +end &337 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2492,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2493,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,166600,107100,168000" +st "reset" +blo "103000,167800" +tm "WireNameMgr" +) +) +on &25 +) +*623 (Wire +uid 2638,0 +shape (OrthoPolyLine +uid 2639,0 +va (VaSet +vasetType 3 +) +xt "91750,160000,106250,184000" +pts [ +"91750,184000" +"99000,184000" +"99000,160000" +"106250,160000" +] +) +start &452 +end &338 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2640,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2641,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,158600,106400,160000" +st "memWrX" +blo "100000,159800" +tm "WireNameMgr" +) +) +on &127 +) +*624 (Wire +uid 2644,0 +shape (OrthoPolyLine +uid 2645,0 +va (VaSet +vasetType 3 +) +xt "91750,162000,106250,186000" +pts [ +"91750,186000" +"101000,186000" +"101000,162000" +"106250,162000" +] +) +start &454 +end &335 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2646,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2647,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,160600,106200,162000" +st "memEnX" +blo "100000,161800" +tm "WireNameMgr" +) +) +on &128 +) +*625 (Wire +uid 2648,0 +shape (OrthoPolyLine +uid 2649,0 +va (VaSet +vasetType 3 +) +xt "67000,184000,74250,184000" +pts [ +"67000,184000" +"74250,184000" +] +) +end &455 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2654,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2655,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,182600,76800,184000" +st "updatePattern" +blo "66000,183800" +tm "WireNameMgr" +) +) +on &87 +) +*626 (Wire +uid 2772,0 +shape (OrthoPolyLine +uid 2773,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,156000,106250,156000" +pts [ +"91750,156000" +"106250,156000" +] +) +start &139 +end &339 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2775,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,154600,106500,156000" +st "addrX" +blo "102000,155800" +tm "WireNameMgr" +) +) +on &125 +) +*627 (Wire +uid 2778,0 +shape (OrthoPolyLine +uid 2779,0 +va (VaSet +vasetType 3 +) +xt "71000,166000,74250,166000" +pts [ +"71000,166000" +"74250,166000" +] +) +end &137 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2785,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,164600,75100,166000" +st "reset" +blo "71000,165800" +tm "WireNameMgr" +) +) +on &25 +) +*628 (Wire +uid 2786,0 +shape (OrthoPolyLine +uid 2787,0 +va (VaSet +vasetType 3 +) +xt "71000,164000,74250,164000" +pts [ +"71000,164000" +"74250,164000" +] +) +end &136 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2793,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,162600,74800,164000" +st "clock" +blo "71000,163800" +tm "WireNameMgr" +) +) +on &15 +) +*629 (Wire +uid 2844,0 +shape (OrthoPolyLine +uid 2845,0 +va (VaSet +vasetType 3 +) +xt "69000,160000,95000,180000" +pts [ +"91750,180000" +"95000,180000" +"95000,174000" +"69000,174000" +"69000,160000" +"74250,160000" +] +) +start &457 +end &135 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2846,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2847,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,158600,74900,160000" +st "cntIncrX" +blo "69000,159800" +tm "WireNameMgr" +) +) +on &126 +) +*630 (Wire +uid 2860,0 +shape (OrthoPolyLine +uid 2861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "63000,14000,74250,14000" +pts [ +"63000,14000" +"74250,14000" +] +) +start &607 +end &285 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2862,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2863,0 +va (VaSet +font "Verdana,12,0" +) +xt "68250,12600,74250,14000" +st "dataOut" +blo "68250,13800" +tm "WireNameMgr" +) +) +on &91 +) +*631 (Wire +uid 2866,0 +shape (OrthoPolyLine +uid 2867,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,156000,74250,156000" +pts [ +"67000,156000" +"74250,156000" +] +) +end &140 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2873,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,154600,74900,156000" +st "patternSize" +blo "66000,155800" +tm "WireNameMgr" +) +) +on &88 +) +*632 (Wire +uid 2919,0 +shape (OrthoPolyLine +uid 2920,0 +va (VaSet +vasetType 3 +) +xt "67000,186000,74250,186000" +pts [ +"74250,186000" +"67000,186000" +] +) +start &458 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2926,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,184600,75600,186000" +st "newPolynom" +blo "66000,185800" +tm "WireNameMgr" +) +) +on &30 +) +*633 (Wire +uid 2996,0 +shape (OrthoPolyLine +uid 2997,0 +va (VaSet +vasetType 3 +) +xt "71000,192000,74250,192000" +pts [ +"71000,192000" +"74250,192000" +] +) +end &460 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3002,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3003,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,190600,75100,192000" +st "reset" +blo "71000,191800" +tm "WireNameMgr" +) +) +on &25 +) +*634 (Wire +uid 3004,0 +shape (OrthoPolyLine +uid 3005,0 +va (VaSet +vasetType 3 +) +xt "71000,190000,74250,190000" +pts [ +"71000,190000" +"74250,190000" +] +) +end &459 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3010,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3011,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,188600,74800,190000" +st "clock" +blo "71000,189800" +tm "WireNameMgr" +) +) +on &15 +) +*635 (Wire +uid 3094,0 +shape (OrthoPolyLine +uid 3095,0 +va (VaSet +vasetType 3 +) +xt "67000,158000,74250,158000" +pts [ +"67000,158000" +"74250,158000" +] +) +end &138 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3100,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3101,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,156600,76800,158000" +st "updatePattern" +blo "66000,157800" +tm "WireNameMgr" +) +) +on &87 +) +*636 (Wire +uid 3146,0 +shape (OrthoPolyLine +uid 3147,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,154000,131000,154000" +pts [ +"123750,154000" +"131000,154000" +] +) +start &334 +end &129 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3150,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3151,0 +va (VaSet +font "Verdana,12,0" +) +xt "125000,152600,129600,154000" +st "memX" +blo "125000,153800" +tm "WireNameMgr" +) +) +on &133 +) +*637 (Wire +uid 3432,0 +shape (OrthoPolyLine +uid 3433,0 +va (VaSet +vasetType 3 +) +xt "209000,166000,216250,166000" +pts [ +"209000,166000" +"216250,166000" +] +) +end &389 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3439,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,164600,217900,166000" +st "interpolationEnable" +blo "204000,165800" +tm "WireNameMgr" +) +) +on &124 +) +*638 (Wire +uid 3485,0 +shape (OrthoPolyLine +uid 3486,0 +va (VaSet +vasetType 3 +) +xt "209000,129000,216250,129000" +pts [ +"209000,129000" +"216250,129000" +] +) +end &376 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3491,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3492,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,127600,217900,129000" +st "interpolationEnable" +blo "204000,128800" +tm "WireNameMgr" +) +) +on &124 +) +*639 (Wire +uid 3751,0 +shape (OrthoPolyLine +uid 3752,0 +va (VaSet +vasetType 3 +) +xt "103000,131000,106250,131000" +pts [ +"103000,131000" +"106250,131000" +] +) +end &326 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3755,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3756,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,129600,107100,131000" +st "reset" +blo "103000,130800" +tm "WireNameMgr" +) +) +on &25 +) +*640 (Wire +uid 3757,0 +shape (OrthoPolyLine +uid 3758,0 +va (VaSet +vasetType 3 +) +xt "103000,129000,106250,129000" +pts [ +"103000,129000" +"106250,129000" +] +) +end &325 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3761,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3762,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,127600,106800,129000" +st "clock" +blo "103000,128800" +tm "WireNameMgr" +) +) +on &15 +) +*641 (Wire +uid 3763,0 +shape (OrthoPolyLine +uid 3764,0 +va (VaSet +vasetType 3 +) +xt "67000,134000,74250,134000" +pts [ +"67000,134000" +"74250,134000" +] +) +end &442 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3768,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,132600,76800,134000" +st "updatePattern" +blo "66000,133800" +tm "WireNameMgr" +) +) +on &87 +) +*642 (Wire +uid 3769,0 +shape (OrthoPolyLine +uid 3770,0 +va (VaSet +vasetType 3 +) +xt "91750,125000,106250,136000" +pts [ +"91750,136000" +"101000,136000" +"101000,125000" +"106250,125000" +] +) +start &441 +end &324 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3772,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,123600,106100,125000" +st "memEnY" +blo "100000,124800" +tm "WireNameMgr" +) +) +on &166 +) +*643 (Wire +uid 3773,0 +shape (OrthoPolyLine +uid 3774,0 +va (VaSet +vasetType 3 +) +xt "91750,123000,106250,134000" +pts [ +"91750,134000" +"99000,134000" +"99000,123000" +"106250,123000" +] +) +start &439 +end &327 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3775,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3776,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,121600,106300,123000" +st "memWrY" +blo "100000,122800" +tm "WireNameMgr" +) +) +on &165 +) +*644 (Wire +uid 3777,0 +shape (OrthoPolyLine +uid 3778,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,106000,106250,119000" +pts [ +"91750,106000" +"99000,106000" +"99000,119000" +"106250,119000" +] +) +start &158 +end &328 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3779,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3780,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,117600,106400,119000" +st "addrY" +blo "102000,118800" +tm "WireNameMgr" +) +) +on &164 +) +*645 (Wire +uid 3793,0 +shape (OrthoPolyLine +uid 3794,0 +va (VaSet +vasetType 3 +) +xt "69000,110000,95000,130000" +pts [ +"91750,130000" +"95000,130000" +"95000,124000" +"69000,124000" +"69000,110000" +"74250,110000" +] +) +start &444 +end &154 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3796,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,108600,74800,110000" +st "cntIncrY" +blo "69000,109800" +tm "WireNameMgr" +) +) +on &163 +) +*646 (Wire +uid 3797,0 +shape (OrthoPolyLine +uid 3798,0 +va (VaSet +vasetType 3 +) +xt "67000,136000,74250,136000" +pts [ +"74250,136000" +"67000,136000" +] +) +start &445 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3801,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3802,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,134600,75600,136000" +st "newPolynom" +blo "66000,135800" +tm "WireNameMgr" +) +) +on &30 +) +*647 (Wire +uid 3803,0 +shape (OrthoPolyLine +uid 3804,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,106000,74250,106000" +pts [ +"67000,106000" +"74250,106000" +] +) +end &159 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3808,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,104600,74900,106000" +st "patternSize" +blo "66000,105800" +tm "WireNameMgr" +) +) +on &88 +) +*648 (Wire +uid 3809,0 +shape (OrthoPolyLine +uid 3810,0 +va (VaSet +vasetType 3 +) +xt "67000,108000,74250,108000" +pts [ +"67000,108000" +"74250,108000" +] +) +end &157 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3813,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3814,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,106600,76800,108000" +st "updatePattern" +blo "66000,107800" +tm "WireNameMgr" +) +) +on &87 +) +*649 (Wire +uid 3815,0 +shape (OrthoPolyLine +uid 3816,0 +va (VaSet +vasetType 3 +) +xt "71000,140000,74250,140000" +pts [ +"71000,140000" +"74250,140000" +] +) +end &446 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3820,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,138600,74800,140000" +st "clock" +blo "71000,139800" +tm "WireNameMgr" +) +) +on &15 +) +*650 (Wire +uid 3821,0 +shape (OrthoPolyLine +uid 3822,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,100000,106250,117000" +pts [ +"59000,100000" +"103000,100000" +"103000,117000" +"106250,117000" +] +) +start &600 +end &322 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3823,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3824,0 +va (VaSet +font "Verdana,12,0" +) +xt "101250,115600,108650,117000" +st "dataInReg" +blo "101250,116800" +tm "WireNameMgr" +) +) +on &246 +) +*651 (Wire +uid 3866,0 +shape (OrthoPolyLine +uid 3867,0 +va (VaSet +vasetType 3 +) +xt "71000,114000,74250,114000" +pts [ +"71000,114000" +"74250,114000" +] +) +end &155 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3873,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,112600,74800,114000" +st "clock" +blo "71000,113800" +tm "WireNameMgr" +) +) +on &15 +) +*652 (Wire +uid 3874,0 +shape (OrthoPolyLine +uid 3875,0 +va (VaSet +vasetType 3 +) +xt "71000,116000,74250,116000" +pts [ +"71000,116000" +"74250,116000" +] +) +end &156 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3880,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3881,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,114600,75100,116000" +st "reset" +blo "71000,115800" +tm "WireNameMgr" +) +) +on &25 +) +*653 (Wire +uid 3882,0 +shape (OrthoPolyLine +uid 3883,0 +va (VaSet +vasetType 3 +) +xt "71000,142000,74250,142000" +pts [ +"71000,142000" +"74250,142000" +] +) +end &447 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3888,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3889,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,140600,75100,142000" +st "reset" +blo "71000,141800" +tm "WireNameMgr" +) +) +on &25 +) +*654 (Wire +uid 3907,0 +shape (OrthoPolyLine +uid 3908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,117000,131000,117000" +pts [ +"123750,117000" +"131000,117000" +] +) +start &323 +end &167 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3912,0 +va (VaSet +font "Verdana,12,0" +) +xt "125750,115600,130250,117000" +st "memY" +blo "125750,116800" +tm "WireNameMgr" +) +) +on &171 +) +*655 (Wire +uid 4047,0 +shape (OrthoPolyLine +uid 4048,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "281000,6000,289000,6000" +pts [ +"281000,6000" +"289000,6000" +] +) +start &174 +end &172 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4051,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4052,0 +va (VaSet +font "Verdana,12,0" +) +xt "284000,4600,289600,6000" +st "testOut" +blo "284000,5800" +tm "WireNameMgr" +) +) +on &173 +) +*656 (Wire +uid 4274,0 +shape (OrthoPolyLine +uid 4275,0 +va (VaSet +vasetType 3 +) +xt "23000,66000,26250,66000" +pts [ +"23000,66000" +"26250,66000" +] +) +end &183 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4280,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4281,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,64600,27100,66000" +st "reset" +blo "23000,65800" +tm "WireNameMgr" +) +) +on &25 +) +*657 (Wire +uid 4282,0 +shape (OrthoPolyLine +uid 4283,0 +va (VaSet +vasetType 3 +) +xt "23000,64000,26250,64000" +pts [ +"23000,64000" +"26250,64000" +] +) +end &182 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4288,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4289,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,62600,26800,64000" +st "clock" +blo "23000,63800" +tm "WireNameMgr" +) +) +on &15 +) +*658 (Wire +uid 4292,0 +shape (OrthoPolyLine +uid 4293,0 +va (VaSet +vasetType 3 +) +xt "43750,58000,47000,58000" +pts [ +"43750,58000" +"47000,58000" +] +) +start &179 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4298,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4299,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,56600,50700,58000" +st "wrHPulse" +blo "44000,57800" +tm "WireNameMgr" +) +) +on &187 +) +*659 (Wire +uid 4329,0 +shape (OrthoPolyLine +uid 4330,0 +va (VaSet +vasetType 3 +) +xt "23000,86000,26250,86000" +pts [ +"23000,86000" +"26250,86000" +] +) +end &192 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4333,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4334,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,84600,26800,86000" +st "clock" +blo "23000,85800" +tm "WireNameMgr" +) +) +on &15 +) +*660 (Wire +uid 4335,0 +shape (OrthoPolyLine +uid 4336,0 +va (VaSet +vasetType 3 +) +xt "23000,88000,26250,88000" +pts [ +"23000,88000" +"26250,88000" +] +) +end &193 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4339,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4340,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,86600,27100,88000" +st "reset" +blo "23000,87800" +tm "WireNameMgr" +) +) +on &25 +) +*661 (Wire +uid 4341,0 +shape (OrthoPolyLine +uid 4342,0 +va (VaSet +vasetType 3 +) +xt "43750,80000,47000,80000" +pts [ +"43750,80000" +"47000,80000" +] +) +start &189 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4345,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4346,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,78600,50500,80000" +st "wrLPulse" +blo "44000,79800" +tm "WireNameMgr" +) +) +on &197 +) +*662 (Wire +uid 4349,0 +shape (OrthoPolyLine +uid 4350,0 +va (VaSet +vasetType 3 +) +xt "19000,82000,26250,82000" +pts [ +"19000,82000" +"26250,82000" +] +) +end &191 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4355,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4356,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,80600,21100,82000" +st "cs" +blo "19000,81800" +tm "WireNameMgr" +) +) +on &17 +) +*663 (Wire +uid 4770,0 +shape (OrthoPolyLine +uid 4771,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,84000,184250,84000" +pts [ +"177750,84000" +"184250,84000" +] +) +start &207 +end &223 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4775,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,82600,182700,84000" +st "phase" +blo "178000,83800" +tm "WireNameMgr" +) +) +on &202 +) +*664 (Wire +uid 4782,0 +shape (OrthoPolyLine +uid 4783,0 +va (VaSet +vasetType 3 +) +xt "157000,92000,160250,92000" +pts [ +"157000,92000" +"160250,92000" +] +) +end &208 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4786,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4787,0 +va (VaSet +font "Verdana,12,0" +) +xt "157000,90600,161100,92000" +st "reset" +blo "157000,91800" +tm "WireNameMgr" +) +) +on &25 +) +*665 (Wire +uid 4788,0 +shape (OrthoPolyLine +uid 4789,0 +va (VaSet +vasetType 3 +) +xt "157000,90000,160250,90000" +pts [ +"157000,90000" +"160250,90000" +] +) +end &206 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4793,0 +va (VaSet +font "Verdana,12,0" +) +xt "157000,88600,160800,90000" +st "clock" +blo "157000,89800" +tm "WireNameMgr" +) +) +on &15 +) +*666 (Wire +uid 4794,0 +shape (OrthoPolyLine +uid 4795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "157000,78000,160250,84000" +pts [ +"160250,84000" +"157000,84000" +"157000,78000" +] +) +start &209 +end &198 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4799,0 +va (VaSet +font "Verdana,12,0" +) +xt "157000,82600,160600,84000" +st "step" +blo "157000,83800" +tm "WireNameMgr" +) +) +on &203 +) +*667 (Wire +uid 4860,0 +shape (OrthoPolyLine +uid 4861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "129000,84000,209000,115000" +pts [ +"201750,84000" +"209000,84000" +"209000,98000" +"129000,98000" +"129000,115000" +"131000,115000" +] +) +start &222 +end &167 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4864,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4865,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,82600,207150,84000" +st "sine" +blo "203750,83800" +tm "WireNameMgr" +) +) +on &204 +) +*668 (Wire +uid 4866,0 +shape (OrthoPolyLine +uid 4867,0 +va (VaSet +vasetType 3 +) +xt "153000,86000,160250,86000" +pts [ +"153000,86000" +"160250,86000" +] +) +end &210 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4873,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,84600,162900,86000" +st "interpolationEnable" +blo "149000,85800" +tm "WireNameMgr" +) +) +on &124 +) +*669 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "153000,70000,161000,70000" +pts [ +"153000,70000" +"161000,70000" +] +) +start &214 +end &215 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Verdana,12,0" +) +xt "153000,68600,159900,70000" +st "selSinCos" +blo "153000,69800" +tm "WireNameMgr" +) +) +on &232 +) +*670 (Wire +uid 5253,0 +shape (OrthoPolyLine +uid 5254,0 +va (VaSet +vasetType 3 +) +xt "177000,66000,185000,66000" +pts [ +"177000,66000" +"185000,66000" +] +) +start &215 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5259,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5260,0 +va (VaSet +font "Verdana,12,0" +) +xt "179750,64600,193650,66000" +st "interpolationEnable" +blo "179750,65800" +tm "WireNameMgr" +) +) +on &124 +) +*671 (Wire +uid 5263,0 +shape (OrthoPolyLine +uid 5264,0 +va (VaSet +vasetType 3 +) +xt "152750,66000,161000,66000" +pts [ +"152750,66000" +"161000,66000" +] +) +end &215 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5269,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5270,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,64600,161200,66000" +st "interpolationEn" +blo "150000,65800" +tm "WireNameMgr" +) +) +on &219 +) +*672 (Wire +uid 5938,0 +shape (OrthoPolyLine +uid 5939,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "127000,86000,207000,152000" +pts [ +"201750,86000" +"207000,86000" +"207000,97000" +"127000,97000" +"127000,152000" +"131000,152000" +] +) +start &224 +end &129 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5942,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5943,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,84600,208550,86000" +st "cosine" +blo "203750,85800" +tm "WireNameMgr" +) +) +on &220 +) +*673 (Wire +uid 7055,0 +shape (OrthoPolyLine +uid 7056,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,10000,26250,10000" +pts [ +"26250,10000" +"19000,10000" +] +) +start &239 +end &89 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7062,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,8600,24000,10000" +st "dataIn" +blo "19000,9800" +tm "WireNameMgr" +) +) +on &247 +) +*674 (Wire +uid 7111,0 +shape (OrthoPolyLine +uid 7112,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23750,32000,26250,32000" +pts [ +"23750,32000" +"26250,32000" +] +) +start &251 +end &422 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7113,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7114,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,30600,29100,32000" +st "addrReg" +blo "23000,31800" +tm "WireNameMgr" +) +s (Text +uid 7337,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,32000,23000,32000" +blo "23000,32000" +tm "SignalTypeMgr" +) +) +on &257 +) +*675 (Wire +uid 7117,0 +shape (OrthoPolyLine +uid 7118,0 +va (VaSet +vasetType 3 +) +xt "23000,18000,26250,18000" +pts [ +"23000,18000" +"26250,18000" +] +) +end &242 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7123,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7124,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,16600,27100,18000" +st "reset" +blo "23000,17800" +tm "WireNameMgr" +) +) +on &25 +) +*676 (Wire +uid 7125,0 +shape (OrthoPolyLine +uid 7126,0 +va (VaSet +vasetType 3 +) +xt "23000,16000,26250,16000" +pts [ +"23000,16000" +"26250,16000" +] +) +end &238 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7132,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,14600,26800,16000" +st "clock" +blo "23000,15800" +tm "WireNameMgr" +) +) +on &15 +) +*677 (Wire +uid 7133,0 +shape (OrthoPolyLine +uid 7134,0 +va (VaSet +vasetType 3 +) +xt "3000,40000,6250,40000" +pts [ +"3000,40000" +"6250,40000" +] +) +end &253 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7139,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7140,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,38600,7100,40000" +st "reset" +blo "3000,39800" +tm "WireNameMgr" +) +) +on &25 +) +*678 (Wire +uid 7141,0 +shape (OrthoPolyLine +uid 7142,0 +va (VaSet +vasetType 3 +) +xt "3000,38000,6250,38000" +pts [ +"3000,38000" +"6250,38000" +] +) +end &249 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7147,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7148,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,36600,6800,38000" +st "clock" +blo "3000,37800" +tm "WireNameMgr" +) +) +on &15 +) +*679 (Wire +uid 7160,0 +shape (OrthoPolyLine +uid 7161,0 +va (VaSet +vasetType 3 +) +xt "19000,14000,26250,14000" +pts [ +"26250,14000" +"19000,14000" +] +) +start &241 +end &258 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7164,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7165,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,12600,27400,14000" +st "logic1" +blo "23000,13800" +tm "WireNameMgr" +) +s (Text +uid 7348,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,14000,23000,14000" +blo "23000,14000" +tm "SignalTypeMgr" +) +) +on &262 +) +*680 (Wire +uid 7168,0 +shape (OrthoPolyLine +uid 7169,0 +va (VaSet +vasetType 3 +) +xt "3000,36000,6250,36000" +pts [ +"6250,36000" +"3000,36000" +] +) +start &252 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7174,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7175,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,34600,7400,36000" +st "logic1" +blo "3000,35800" +tm "WireNameMgr" +) +s (Text +uid 7176,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,36000,3000,36000" +blo "3000,36000" +tm "SignalTypeMgr" +) +) +on &262 +) +*681 (Wire +uid 7724,0 +shape (OrthoPolyLine +uid 7725,0 +va (VaSet +vasetType 3 +) +xt "23000,116000,26250,116000" +pts [ +"23000,116000" +"26250,116000" +] +) +end &268 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7730,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7731,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,114600,27100,116000" +st "reset" +blo "23000,115800" +tm "WireNameMgr" +) +) +on &25 +) +*682 (Wire +uid 7732,0 +shape (OrthoPolyLine +uid 7733,0 +va (VaSet +vasetType 3 +) +xt "23000,114000,26250,114000" +pts [ +"23000,114000" +"26250,114000" +] +) +end &267 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7738,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7739,0 +va (VaSet +font "Verdana,12,0" +) +xt "23000,112600,26800,114000" +st "clock" +blo "23000,113800" +tm "WireNameMgr" +) +) +on &15 +) +*683 (Wire +uid 7740,0 +shape (OrthoPolyLine +uid 7741,0 +va (VaSet +vasetType 3 +) +xt "19000,110000,26250,110000" +pts [ +"19000,110000" +"26250,110000" +] +) +end &266 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7746,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7747,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,108600,21100,110000" +st "cs" +blo "19000,109800" +tm "WireNameMgr" +) +) +on &17 +) +*684 (Wire +uid 7748,0 +shape (OrthoPolyLine +uid 7749,0 +va (VaSet +vasetType 3 +) +xt "43750,108000,47000,108000" +pts [ +"43750,108000" +"47000,108000" +] +) +start &264 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7754,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7755,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,106600,51400,108000" +st "wr16Pulse" +blo "44000,107800" +tm "WireNameMgr" +) +) +on &272 +) +*685 (Wire +uid 7793,0 +shape (OrthoPolyLine +uid 7794,0 +va (VaSet +vasetType 3 +) +xt "17950,108000,26250,108000" +pts [ +"26250,108000" +"17950,108000" +] +) +start &265 +end &276 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7796,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,106600,24000,108000" +st "wr16" +blo "20000,107800" +tm "WireNameMgr" +) +) +on &280 +) +*686 (Wire +uid 7801,0 +shape (OrthoPolyLine +uid 7802,0 +va (VaSet +vasetType 3 +) +xt "7000,106000,11000,106000" +pts [ +"7000,106000" +"11000,106000" +] +) +end &274 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7808,0 +va (VaSet +font "Verdana,12,0" +) +xt "7000,104600,10300,106000" +st "wrH" +blo "7000,105800" +tm "WireNameMgr" +) +) +on &27 +) +*687 (Wire +uid 7809,0 +shape (OrthoPolyLine +uid 7810,0 +va (VaSet +vasetType 3 +) +xt "7000,110000,11000,110000" +pts [ +"7000,110000" +"11000,110000" +] +) +end &275 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7816,0 +va (VaSet +font "Verdana,12,0" +) +xt "7000,108600,10100,110000" +st "wrL" +blo "7000,109800" +tm "WireNameMgr" +) +) +on &29 +) +*688 (Wire +uid 7907,0 +shape (OrthoPolyLine +uid 7908,0 +va (VaSet +vasetType 3 +) +xt "67000,132000,74250,132000" +pts [ +"67000,132000" +"74250,132000" +] +) +end &443 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7913,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7914,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,130600,74400,132000" +st "wr16Pulse" +blo "67000,131800" +tm "WireNameMgr" +) +) +on &272 +) +*689 (Wire +uid 7915,0 +shape (OrthoPolyLine +uid 7916,0 +va (VaSet +vasetType 3 +) +xt "67000,182000,74250,182000" +pts [ +"67000,182000" +"74250,182000" +] +) +end &456 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7921,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7922,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,180600,74400,182000" +st "wr16Pulse" +blo "67000,181800" +tm "WireNameMgr" +) +) +on &272 +) +*690 (Wire +uid 8150,0 +shape (OrthoPolyLine +uid 8151,0 +va (VaSet +vasetType 3 +) +xt "91750,16000,99000,16000" +pts [ +"91750,16000" +"99000,16000" +] +) +start &290 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8154,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8155,0 +va (VaSet +font "Verdana,12,0" +) +xt "93750,14600,104050,16000" +st "interpolateLin" +blo "93750,15800" +tm "WireNameMgr" +) +) +on &393 +) +*691 (Wire +uid 8248,0 +optionalChildren [ +*692 (BdJunction +uid 8258,0 +ps "OnConnectorStrategy" +shape (Circle +uid 8259,0 +va (VaSet +vasetType 1 +) +xt "180600,124600,181400,125400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 8249,0 +va (VaSet +vasetType 3 +) +xt "177000,69000,184250,162000" +pts [ +"184250,162000" +"181000,162000" +"181000,69000" +"177000,69000" +] +) +start &304 +end &215 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8253,0 +va (VaSet +font "Verdana,12,0" +) +xt "179000,67600,191400,69000" +st "interpolateLinear" +blo "179000,68800" +tm "WireNameMgr" +) +) +on &294 +) +*693 (Wire +uid 8254,0 +shape (OrthoPolyLine +uid 8255,0 +va (VaSet +vasetType 3 +) +xt "181000,125000,184250,125000" +pts [ +"184250,125000" +"181000,125000" +] +) +start &317 +end &692 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8256,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8257,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "171250,123600,183650,125000" +st "interpolateLinear" +blo "171250,124800" +tm "WireNameMgr" +) +) +on &294 +) +*694 (Wire +uid 9246,0 +shape (OrthoPolyLine +uid 9247,0 +va (VaSet +vasetType 3 +) +xt "139000,121000,139000,125000" +pts [ +"139000,125000" +"139000,121000" +] +) +end &167 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9253,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,123600,145900,125000" +st "selSinCos" +blo "139000,124800" +tm "WireNameMgr" +) +) +on &232 +) +*695 (Wire +uid 9254,0 +shape (OrthoPolyLine +uid 9255,0 +va (VaSet +vasetType 3 +) +xt "139000,158000,139000,162000" +pts [ +"139000,162000" +"139000,158000" +] +) +end &129 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9260,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9261,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,160600,145900,162000" +st "selSinCos" +blo "139000,161800" +tm "WireNameMgr" +) +) +on &232 +) +*696 (Wire +uid 10531,0 +shape (OrthoPolyLine +uid 10532,0 +va (VaSet +vasetType 3 +) +xt "91750,212000,106250,236000" +pts [ +"91750,236000" +"101000,236000" +"101000,212000" +"106250,212000" +] +) +start &467 +end &407 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10533,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10534,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,210600,106200,212000" +st "memEnZ" +blo "100000,211800" +tm "WireNameMgr" +) +) +on &419 +) +*697 (Wire +uid 10535,0 +shape (OrthoPolyLine +uid 10536,0 +va (VaSet +vasetType 3 +) +xt "91750,210000,106250,234000" +pts [ +"91750,234000" +"99000,234000" +"99000,210000" +"106250,210000" +] +) +start &465 +end &410 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10537,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10538,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,208600,106400,210000" +st "memWrZ" +blo "100000,209800" +tm "WireNameMgr" +) +) +on &418 +) +*698 (Wire +uid 10539,0 +shape (OrthoPolyLine +uid 10540,0 +va (VaSet +vasetType 3 +) +xt "71000,216000,74250,216000" +pts [ +"71000,216000" +"74250,216000" +] +) +end &397 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10543,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10544,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,214600,75100,216000" +st "reset" +blo "71000,215800" +tm "WireNameMgr" +) +) +on &25 +) +*699 (Wire +uid 10545,0 +shape (OrthoPolyLine +uid 10546,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,206000,106250,206000" +pts [ +"91750,206000" +"106250,206000" +] +) +start &399 +end &411 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10547,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10548,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,204600,106500,206000" +st "addrZ" +blo "102000,205800" +tm "WireNameMgr" +) +) +on &416 +) +*700 (Wire +uid 10549,0 +shape (OrthoPolyLine +uid 10550,0 +va (VaSet +vasetType 3 +) +xt "67000,234000,74250,234000" +pts [ +"67000,234000" +"74250,234000" +] +) +end &468 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10553,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10554,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,232600,76800,234000" +st "updatePattern" +blo "66000,233800" +tm "WireNameMgr" +) +) +on &87 +) +*701 (Wire +uid 10555,0 +shape (OrthoPolyLine +uid 10556,0 +va (VaSet +vasetType 3 +) +xt "69000,210000,95000,230000" +pts [ +"91750,230000" +"95000,230000" +"95000,224000" +"69000,224000" +"69000,210000" +"74250,210000" +] +) +start &470 +end &395 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10557,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10558,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,208600,74900,210000" +st "cntIncrZ" +blo "69000,209800" +tm "WireNameMgr" +) +) +on &415 +) +*702 (Wire +uid 10559,0 +shape (OrthoPolyLine +uid 10560,0 +va (VaSet +vasetType 3 +) +xt "71000,214000,74250,214000" +pts [ +"71000,214000" +"74250,214000" +] +) +end &396 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10563,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10564,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,212600,74800,214000" +st "clock" +blo "71000,213800" +tm "WireNameMgr" +) +) +on &15 +) +*703 (Wire +uid 10565,0 +shape (OrthoPolyLine +uid 10566,0 +va (VaSet +vasetType 3 +) +xt "67000,236000,74250,236000" +pts [ +"74250,236000" +"67000,236000" +] +) +start &471 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10569,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10570,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,234600,75600,236000" +st "newPolynom" +blo "66000,235800" +tm "WireNameMgr" +) +) +on &30 +) +*704 (Wire +uid 10571,0 +shape (OrthoPolyLine +uid 10572,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,206000,74250,206000" +pts [ +"67000,206000" +"74250,206000" +] +) +end &400 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10575,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10576,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,204600,74900,206000" +st "patternSize" +blo "66000,205800" +tm "WireNameMgr" +) +) +on &88 +) +*705 (Wire +uid 10577,0 +shape (OrthoPolyLine +uid 10578,0 +va (VaSet +vasetType 3 +) +xt "67000,208000,74250,208000" +pts [ +"67000,208000" +"74250,208000" +] +) +end &398 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10581,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10582,0 +va (VaSet +font "Verdana,12,0" +) +xt "66000,206600,76800,208000" +st "updatePattern" +blo "66000,207800" +tm "WireNameMgr" +) +) +on &87 +) +*706 (Wire +uid 10583,0 +shape (OrthoPolyLine +uid 10584,0 +va (VaSet +vasetType 3 +) +xt "71000,240000,74250,240000" +pts [ +"71000,240000" +"74250,240000" +] +) +end &472 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10588,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,238600,74800,240000" +st "clock" +blo "71000,239800" +tm "WireNameMgr" +) +) +on &15 +) +*707 (Wire +uid 10589,0 +shape (OrthoPolyLine +uid 10590,0 +va (VaSet +vasetType 3 +) +xt "71000,242000,74250,242000" +pts [ +"71000,242000" +"74250,242000" +] +) +end &473 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10594,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,240600,75100,242000" +st "reset" +blo "71000,241800" +tm "WireNameMgr" +) +) +on &25 +) +*708 (Wire +uid 10595,0 +shape (OrthoPolyLine +uid 10596,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,204000,131000,204000" +pts [ +"123750,204000" +"131000,204000" +] +) +start &406 +end &491 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10599,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10600,0 +va (VaSet +font "Verdana,12,0" +) +xt "127000,202600,131600,204000" +st "memZ" +blo "127000,203800" +tm "WireNameMgr" +) +) +on &417 +) +*709 (Wire +uid 10601,0 +shape (OrthoPolyLine +uid 10602,0 +va (VaSet +vasetType 3 +) +xt "67000,232000,74250,232000" +pts [ +"67000,232000" +"74250,232000" +] +) +end &469 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10605,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10606,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,230600,73500,232000" +st "wrLPulse" +blo "67000,231800" +tm "WireNameMgr" +) +) +on &197 +) +*710 (Wire +uid 10617,0 +shape (OrthoPolyLine +uid 10618,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59000,200000,106250,204000" +pts [ +"59000,200000" +"99000,200000" +"99000,204000" +"106250,204000" +] +) +start &601 +end &405 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10619,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10620,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,202600,107400,204000" +st "dataInReg" +blo "100000,203800" +tm "WireNameMgr" +) +) +on &246 +) +*711 (Wire +uid 10662,0 +shape (OrthoPolyLine +uid 10663,0 +va (VaSet +vasetType 3 +) +xt "43750,42000,74250,230000" +pts [ +"43750,42000" +"49000,42000" +"49000,230000" +"74250,230000" +] +) +start &427 +end &466 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10664,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10665,0 +va (VaSet +font "Verdana,12,0" +) +xt "67000,228600,70400,230000" +st "selZ" +blo "67000,229800" +tm "WireNameMgr" +) +) +on &431 +) +*712 (Wire +uid 10884,0 +shape (OrthoPolyLine +uid 10885,0 +va (VaSet +vasetType 3 +) +xt "201000,206000,209000,206000" +pts [ +"201000,206000" +"209000,206000" +] +) +start &434 +end &432 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10888,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10889,0 +va (VaSet +font "Verdana,12,0" +) +xt "205000,204600,208700,206000" +st "outZ" +blo "205000,205800" +tm "WireNameMgr" +) +) +on &433 +) +*713 (Wire +uid 10901,0 +shape (OrthoPolyLine +uid 10902,0 +va (VaSet +vasetType 3 +) +xt "103000,218000,106250,218000" +pts [ +"103000,218000" +"106250,218000" +] +) +end &409 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10907,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10908,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,216600,107100,218000" +st "reset" +blo "103000,217800" +tm "WireNameMgr" +) +) +on &25 +) +*714 (Wire +uid 10909,0 +shape (OrthoPolyLine +uid 10910,0 +va (VaSet +vasetType 3 +) +xt "103000,216000,106250,216000" +pts [ +"103000,216000" +"106250,216000" +] +) +end &408 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 10915,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 10916,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,214600,106800,216000" +st "clock" +blo "103000,215800" +tm "WireNameMgr" +) +) +on &15 +) +*715 (Wire +uid 11529,0 +shape (OrthoPolyLine +uid 11530,0 +va (VaSet +vasetType 3 +) +xt "157000,210000,160250,210000" +pts [ +"157000,210000" +"160250,210000" +] +) +end &478 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11535,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11536,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,208600,159800,210000" +st "clock" +blo "156000,209800" +tm "WireNameMgr" +) +) +on &15 +) +*716 (Wire +uid 11537,0 +shape (OrthoPolyLine +uid 11538,0 +va (VaSet +vasetType 3 +) +xt "157000,212000,160250,212000" +pts [ +"157000,212000" +"160250,212000" +] +) +end &479 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11543,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11544,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,210600,160100,212000" +st "reset" +blo "156000,211800" +tm "WireNameMgr" +) +) +on &25 +) +*717 (Wire +uid 11545,0 +shape (OrthoPolyLine +uid 11546,0 +va (VaSet +vasetType 3 +) +xt "153000,169000,160250,206000" +pts [ +"153000,169000" +"153000,206000" +"160250,206000" +] +) +start &541 +end &480 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11547,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11548,0 +va (VaSet +font "Verdana,12,0" +) +xt "153000,204600,162600,206000" +st "newPolynom" +blo "153000,205800" +tm "WireNameMgr" +) +) +on &30 +) +*718 (Wire +uid 11553,0 +shape (OrthoPolyLine +uid 11554,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,204000,185000,204000" +pts [ +"177750,204000" +"185000,204000" +] +) +start &482 +end &434 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11557,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11558,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,202600,184900,204000" +st "sampleZ1" +blo "178000,203800" +tm "WireNameMgr" +) +) +on &489 +) +*719 (Wire +uid 11561,0 +shape (OrthoPolyLine +uid 11562,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,206000,185000,206000" +pts [ +"177750,206000" +"185000,206000" +] +) +start &483 +end &434 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11565,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11566,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,204600,184900,206000" +st "sampleZ2" +blo "178000,205800" +tm "WireNameMgr" +) +) +on &490 +) +*720 (Wire +uid 11582,0 +shape (OrthoPolyLine +uid 11583,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,204000,160250,204000" +pts [ +"160250,204000" +"147000,204000" +] +) +start &481 +end &491 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11586,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11587,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,202600,155800,204000" +st "samplesZ" +blo "149000,203800" +tm "WireNameMgr" +) +) +on &495 +) +*721 (Wire +uid 11590,0 +shape (OrthoPolyLine +uid 11591,0 +va (VaSet +vasetType 3 +) +xt "139000,208000,139000,212000" +pts [ +"139000,212000" +"139000,208000" +] +) +end &491 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11596,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11597,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,210600,145900,212000" +st "selSinCos" +blo "139000,211800" +tm "WireNameMgr" +) +) +on &232 +) +*722 (Wire +uid 11911,0 +shape (OrthoPolyLine +uid 11912,0 +va (VaSet +vasetType 3 +) +xt "261000,89000,264250,89000" +pts [ +"261000,89000" +"264250,89000" +] +) +end &501 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11917,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11918,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,87600,264100,89000" +st "reset" +blo "260000,88800" +tm "WireNameMgr" +) +) +on &25 +) +*723 (Wire +uid 11919,0 +shape (OrthoPolyLine +uid 11920,0 +va (VaSet +vasetType 3 +) +xt "261000,87000,264250,87000" +pts [ +"261000,87000" +"264250,87000" +] +) +end &498 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11926,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,85600,263800,87000" +st "clock" +blo "260000,86800" +tm "WireNameMgr" +) +) +on &15 +) +*724 (Wire +uid 11927,0 +shape (OrthoPolyLine +uid 11928,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257000,81000,264250,81000" +pts [ +"257000,81000" +"264250,81000" +] +) +end &502 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11933,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11934,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,79600,265400,81000" +st "unsignedX" +blo "258000,80800" +tm "WireNameMgr" +) +) +on &46 +) +*725 (Wire +uid 11935,0 +shape (OrthoPolyLine +uid 11936,0 +va (VaSet +vasetType 3 +) +xt "257000,83000,264250,83000" +pts [ +"257000,83000" +"264250,83000" +] +) +end &500 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11941,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11942,0 +va (VaSet +font "Verdana,12,0" +) +xt "252000,81600,265900,83000" +st "interpolationEnable" +blo "252000,82800" +tm "WireNameMgr" +) +) +on &124 +) +*726 (Wire +uid 11980,0 +shape (OrthoPolyLine +uid 11981,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257000,59000,264250,59000" +pts [ +"257000,59000" +"264250,59000" +] +) +end &513 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11984,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11985,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,57600,265300,59000" +st "unsignedY" +blo "258000,58800" +tm "WireNameMgr" +) +) +on &80 +) +*727 (Wire +uid 11986,0 +shape (OrthoPolyLine +uid 11987,0 +va (VaSet +vasetType 3 +) +xt "257000,61000,264250,61000" +pts [ +"257000,61000" +"264250,61000" +] +) +end &511 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11990,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11991,0 +va (VaSet +font "Verdana,12,0" +) +xt "252000,59600,265900,61000" +st "interpolationEnable" +blo "252000,60800" +tm "WireNameMgr" +) +) +on &124 +) +*728 (Wire +uid 11992,0 +shape (OrthoPolyLine +uid 11993,0 +va (VaSet +vasetType 3 +) +xt "261000,65000,264250,65000" +pts [ +"261000,65000" +"264250,65000" +] +) +end &509 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 11998,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11999,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,63600,263800,65000" +st "clock" +blo "260000,64800" +tm "WireNameMgr" +) +) +on &15 +) +*729 (Wire +uid 12000,0 +shape (OrthoPolyLine +uid 12001,0 +va (VaSet +vasetType 3 +) +xt "261000,67000,264250,67000" +pts [ +"261000,67000" +"264250,67000" +] +) +end &512 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12006,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12007,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,65600,264100,67000" +st "reset" +blo "260000,66800" +tm "WireNameMgr" +) +) +on &25 +) +*730 (Wire +uid 12056,0 +shape (OrthoPolyLine +uid 12057,0 +va (VaSet +vasetType 3 +) +xt "281750,85000,289000,85000" +pts [ +"281750,85000" +"289000,85000" +] +) +start &497 +end &518 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12060,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12061,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,83600,289800,85000" +st "CLK_X" +blo "285000,84800" +tm "WireNameMgr" +) +) +on &519 +) +*731 (Wire +uid 12070,0 +shape (OrthoPolyLine +uid 12071,0 +va (VaSet +vasetType 3 +) +xt "281750,63000,289000,63000" +pts [ +"281750,63000" +"289000,63000" +] +) +start &508 +end &520 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12074,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12075,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,61600,289700,63000" +st "CLK_Y" +blo "285000,62800" +tm "WireNameMgr" +) +) +on &521 +) +*732 (Wire +uid 12084,0 +shape (OrthoPolyLine +uid 12085,0 +va (VaSet +vasetType 3 +) +xt "281750,81000,289000,81000" +pts [ +"281750,81000" +"289000,81000" +] +) +start &499 +end &522 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12088,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12089,0 +va (VaSet +font "Verdana,12,0" +) +xt "284000,79600,289700,81000" +st "CS_X_n" +blo "284000,80800" +tm "WireNameMgr" +) +) +on &523 +) +*733 (Wire +uid 12098,0 +shape (OrthoPolyLine +uid 12099,0 +va (VaSet +vasetType 3 +) +xt "281750,59000,289000,59000" +pts [ +"281750,59000" +"289000,59000" +] +) +start &510 +end &524 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12102,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12103,0 +va (VaSet +font "Verdana,12,0" +) +xt "284000,57600,289600,59000" +st "CS_Y_n" +blo "284000,58800" +tm "WireNameMgr" +) +) +on &525 +) +*734 (Wire +uid 12112,0 +shape (OrthoPolyLine +uid 12113,0 +va (VaSet +vasetType 3 +) +xt "281750,83000,289000,83000" +pts [ +"281750,83000" +"289000,83000" +] +) +start &503 +end &526 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12116,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12117,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,81600,289600,83000" +st "SDI_X" +blo "285000,82800" +tm "WireNameMgr" +) +) +on &527 +) +*735 (Wire +uid 12126,0 +shape (OrthoPolyLine +uid 12127,0 +va (VaSet +vasetType 3 +) +xt "281750,61000,289000,61000" +pts [ +"281750,61000" +"289000,61000" +] +) +start &514 +end &528 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12130,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12131,0 +va (VaSet +font "Verdana,12,0" +) +xt "285000,59600,289500,61000" +st "SDI_Y" +blo "285000,60800" +tm "WireNameMgr" +) +) +on &529 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *736 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*737 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*738 (MLText +uid 44,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*739 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*740 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*741 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*742 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*743 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*744 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*745 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4300,-4300,470144,253478" +cachedDiagramExtent "-24700,0,305600,246800" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 13697,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*746 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*747 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*748 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*749 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*750 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*751 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*752 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*753 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*754 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*755 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*756 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*757 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*758 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*759 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*760 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*761 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*762 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*763 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*764 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*765 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*766 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,400,219000,1400" +st "Declarations" +blo "212000,1200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,1300,215400,2300" +st "Ports:" +blo "212000,2100" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,20200,216800,21200" +st "Pre User:" +blo "212000,21000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "214000,21100,248100,28100" +st "constant signalBitNb: positive := 16; +constant coeffBitNb : positive := signalBitNb+3; +constant sampleCountBitNb : positive := 8; +constant patternAddressBitNb : positive := 8; +-- sinewave generator +constant tableAddressBitNb : positive := 3; +constant phaseBitNb : positive := sampleCountBitNb + tableAddressBitNb + 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "212000,27400,221000,28400" +st "Diagram Signals:" +blo "212000,28200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "212000,400,218000,1400" +st "Post User:" +blo "212000,1200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "212000,400,212000,400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 86,0 +usingSuid 1 +emptyRow *767 (LEmptyRow +) +uid 12307,0 +optionalChildren [ +*768 (RefLabelRowHdr +) +*769 (TitleRowHdr +) +*770 (FilterRowHdr +) +*771 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*772 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*773 (GroupColHdr +tm "GroupColHdrMgr" +) +*774 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*775 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*776 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*777 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*778 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*779 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*780 (LeafLogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 1,0 +) +) +uid 12134,0 +) +*781 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 12136,0 +) +*782 (LeafLogPort +port (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 3,0 +) +) +uid 12138,0 +) +*783 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +) +uid 12140,0 +) +*784 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 12142,0 +) +*785 (LeafLogPort +port (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 6,0 +) +) +uid 12144,0 +) +*786 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 12146,0 +) +*787 (LeafLogPort +port (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 12148,0 +) +*788 (LeafLogPort +port (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 9,0 +) +) +uid 12150,0 +) +*789 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 52 +suid 10,0 +) +) +uid 12152,0 +) +*790 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 56 +suid 11,0 +) +) +uid 12154,0 +) +*791 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 79 +suid 12,0 +) +) +uid 12156,0 +) +*792 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 68 +suid 13,0 +) +) +uid 12158,0 +) +*793 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 57 +suid 14,0 +) +) +uid 12160,0 +) +*794 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 58 +suid 15,0 +) +) +uid 12162,0 +) +*795 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 59 +suid 16,0 +) +) +uid 12164,0 +) +*796 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 60 +suid 17,0 +) +) +uid 12166,0 +) +*797 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 21 +suid 18,0 +) +) +uid 12168,0 +) +*798 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 27 +suid 19,0 +) +) +uid 12170,0 +) +*799 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 29 +suid 20,0 +) +) +uid 12172,0 +) +*800 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 35 +suid 21,0 +) +) +uid 12174,0 +) +*801 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 69 +suid 22,0 +) +) +uid 12176,0 +) +*802 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 62 +suid 23,0 +) +) +uid 12178,0 +) +*803 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 63 +suid 24,0 +) +) +uid 12180,0 +) +*804 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 64 +suid 25,0 +) +) +uid 12182,0 +) +*805 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 65 +suid 26,0 +) +) +uid 12184,0 +) +*806 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 22 +suid 27,0 +) +) +uid 12186,0 +) +*807 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 28 +suid 28,0 +) +) +uid 12188,0 +) +*808 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 30 +suid 29,0 +) +) +uid 12190,0 +) +*809 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 36 +suid 30,0 +) +) +uid 12192,0 +) +*810 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 61 +suid 31,0 +) +) +uid 12194,0 +) +*811 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 80 +suid 32,0 +) +) +uid 12196,0 +) +*812 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selControl" +t "std_ulogic" +o 71 +suid 33,0 +) +) +uid 12198,0 +) +*813 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSize" +t "std_ulogic" +o 72 +suid 34,0 +) +) +uid 12200,0 +) +*814 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 73 +suid 35,0 +) +) +uid 12202,0 +) +*815 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selX" +t "std_ulogic" +o 74 +suid 36,0 +) +) +uid 12204,0 +) +*816 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selY" +t "std_ulogic" +o 75 +suid 37,0 +) +) +uid 12206,0 +) +*817 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "run" +t "std_ulogic" +o 55 +suid 38,0 +) +) +uid 12208,0 +) +*818 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 81 +suid 39,0 +) +) +uid 12210,0 +) +*819 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 53 +suid 40,0 +) +) +uid 12212,0 +) +*820 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 41,0 +) +) +uid 12214,0 +) +*821 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 82 +suid 42,0 +) +) +uid 12216,0 +) +*822 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 41 +suid 43,0 +) +) +uid 12218,0 +) +*823 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 24 +suid 44,0 +) +) +uid 12220,0 +) +*824 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 31 +suid 45,0 +) +) +uid 12222,0 +) +*825 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrX" +t "std_ulogic" +o 46 +suid 46,0 +) +) +uid 12224,0 +) +*826 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnX" +t "std_ulogic" +o 43 +suid 47,0 +) +) +uid 12226,0 +) +*827 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 49 +suid 48,0 +) +) +uid 12228,0 +) +*828 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 32 +suid 49,0 +) +) +uid 12230,0 +) +*829 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 25 +suid 50,0 +) +) +uid 12232,0 +) +*830 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrY" +t "std_ulogic" +o 47 +suid 51,0 +) +) +uid 12234,0 +) +*831 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnY" +t "std_ulogic" +o 44 +suid 52,0 +) +) +uid 12236,0 +) +*832 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 50 +suid 53,0 +) +) +uid 12238,0 +) +*833 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 54,0 +) +) +uid 12240,0 +) +*834 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrHPulse" +t "std_ulogic" +o 85 +suid 55,0 +) +) +uid 12242,0 +) +*835 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrLPulse" +t "std_ulogic" +o 86 +suid 56,0 +) +) +uid 12244,0 +) +*836 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 54 +suid 57,0 +) +) +uid 12246,0 +) +*837 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 78 +suid 58,0 +) +) +uid 12248,0 +) +*838 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 77 +suid 59,0 +) +) +uid 12250,0 +) +*839 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 40 +suid 60,0 +) +) +uid 12252,0 +) +*840 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 61,0 +) +) +uid 12254,0 +) +*841 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 62,0 +) +) +uid 12256,0 +) +*842 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataInReg" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 37 +suid 63,0 +) +) +uid 12258,0 +) +*843 (LeafLogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 64,0 +) +) +uid 12260,0 +) +*844 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrReg" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 23 +suid 65,0 +) +) +uid 12262,0 +) +*845 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_ulogic" +o 42 +suid 66,0 +) +) +uid 12264,0 +) +*846 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wr16Pulse" +t "std_ulogic" +o 84 +suid 67,0 +) +) +uid 12266,0 +) +*847 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wr16" +t "std_ulogic" +o 83 +suid 68,0 +) +) +uid 12268,0 +) +*848 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 39 +suid 69,0 +) +) +uid 12270,0 +) +*849 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 38 +suid 70,0 +) +) +uid 12272,0 +) +*850 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrZ" +t "std_ulogic" +o 33 +suid 71,0 +) +) +uid 12274,0 +) +*851 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrZ" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 26 +suid 72,0 +) +) +uid 12276,0 +) +*852 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memZ" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 51 +suid 73,0 +) +) +uid 12278,0 +) +*853 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrZ" +t "std_ulogic" +o 48 +suid 74,0 +) +) +uid 12280,0 +) +*854 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnZ" +t "std_ulogic" +o 45 +suid 75,0 +) +) +uid 12282,0 +) +*855 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selZ" +t "std_ulogic" +o 76 +suid 76,0 +) +) +uid 12284,0 +) +*856 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 77,0 +) +) +uid 12286,0 +) +*857 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleZ1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 66 +suid 78,0 +) +) +uid 12288,0 +) +*858 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleZ2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 67 +suid 79,0 +) +) +uid 12290,0 +) +*859 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesZ" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 70 +suid 80,0 +) +) +uid 12292,0 +) +*860 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 81,0 +) +) +uid 12294,0 +) +*861 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 82,0 +) +) +uid 12296,0 +) +*862 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 83,0 +) +) +uid 12298,0 +) +*863 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 84,0 +) +) +uid 12300,0 +) +*864 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 85,0 +) +) +uid 12302,0 +) +*865 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 86,0 +) +) +uid 12304,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 12320,0 +optionalChildren [ +*866 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *867 (MRCItem +litem &767 +pos 86 +dimension 20 +) +uid 12322,0 +optionalChildren [ +*868 (MRCItem +litem &768 +pos 0 +dimension 20 +uid 12323,0 +) +*869 (MRCItem +litem &769 +pos 1 +dimension 23 +uid 12324,0 +) +*870 (MRCItem +litem &770 +pos 2 +hidden 1 +dimension 20 +uid 12325,0 +) +*871 (MRCItem +litem &780 +pos 0 +dimension 20 +uid 12135,0 +) +*872 (MRCItem +litem &781 +pos 1 +dimension 20 +uid 12137,0 +) +*873 (MRCItem +litem &782 +pos 2 +dimension 20 +uid 12139,0 +) +*874 (MRCItem +litem &783 +pos 3 +dimension 20 +uid 12141,0 +) +*875 (MRCItem +litem &784 +pos 4 +dimension 20 +uid 12143,0 +) +*876 (MRCItem +litem &785 +pos 5 +dimension 20 +uid 12145,0 +) +*877 (MRCItem +litem &786 +pos 6 +dimension 20 +uid 12147,0 +) +*878 (MRCItem +litem &787 +pos 7 +dimension 20 +uid 12149,0 +) +*879 (MRCItem +litem &788 +pos 8 +dimension 20 +uid 12151,0 +) +*880 (MRCItem +litem &789 +pos 20 +dimension 20 +uid 12153,0 +) +*881 (MRCItem +litem &790 +pos 21 +dimension 20 +uid 12155,0 +) +*882 (MRCItem +litem &791 +pos 22 +dimension 20 +uid 12157,0 +) +*883 (MRCItem +litem &792 +pos 23 +dimension 20 +uid 12159,0 +) +*884 (MRCItem +litem &793 +pos 24 +dimension 20 +uid 12161,0 +) +*885 (MRCItem +litem &794 +pos 25 +dimension 20 +uid 12163,0 +) +*886 (MRCItem +litem &795 +pos 26 +dimension 20 +uid 12165,0 +) +*887 (MRCItem +litem &796 +pos 27 +dimension 20 +uid 12167,0 +) +*888 (MRCItem +litem &797 +pos 28 +dimension 20 +uid 12169,0 +) +*889 (MRCItem +litem &798 +pos 29 +dimension 20 +uid 12171,0 +) +*890 (MRCItem +litem &799 +pos 30 +dimension 20 +uid 12173,0 +) +*891 (MRCItem +litem &800 +pos 31 +dimension 20 +uid 12175,0 +) +*892 (MRCItem +litem &801 +pos 32 +dimension 20 +uid 12177,0 +) +*893 (MRCItem +litem &802 +pos 33 +dimension 20 +uid 12179,0 +) +*894 (MRCItem +litem &803 +pos 34 +dimension 20 +uid 12181,0 +) +*895 (MRCItem +litem &804 +pos 35 +dimension 20 +uid 12183,0 +) +*896 (MRCItem +litem &805 +pos 36 +dimension 20 +uid 12185,0 +) +*897 (MRCItem +litem &806 +pos 37 +dimension 20 +uid 12187,0 +) +*898 (MRCItem +litem &807 +pos 38 +dimension 20 +uid 12189,0 +) +*899 (MRCItem +litem &808 +pos 39 +dimension 20 +uid 12191,0 +) +*900 (MRCItem +litem &809 +pos 40 +dimension 20 +uid 12193,0 +) +*901 (MRCItem +litem &810 +pos 41 +dimension 20 +uid 12195,0 +) +*902 (MRCItem +litem &811 +pos 42 +dimension 20 +uid 12197,0 +) +*903 (MRCItem +litem &812 +pos 43 +dimension 20 +uid 12199,0 +) +*904 (MRCItem +litem &813 +pos 44 +dimension 20 +uid 12201,0 +) +*905 (MRCItem +litem &814 +pos 45 +dimension 20 +uid 12203,0 +) +*906 (MRCItem +litem &815 +pos 46 +dimension 20 +uid 12205,0 +) +*907 (MRCItem +litem &816 +pos 47 +dimension 20 +uid 12207,0 +) +*908 (MRCItem +litem &817 +pos 48 +dimension 20 +uid 12209,0 +) +*909 (MRCItem +litem &818 +pos 49 +dimension 20 +uid 12211,0 +) +*910 (MRCItem +litem &819 +pos 50 +dimension 20 +uid 12213,0 +) +*911 (MRCItem +litem &820 +pos 9 +dimension 20 +uid 12215,0 +) +*912 (MRCItem +litem &821 +pos 51 +dimension 20 +uid 12217,0 +) +*913 (MRCItem +litem &822 +pos 52 +dimension 20 +uid 12219,0 +) +*914 (MRCItem +litem &823 +pos 53 +dimension 20 +uid 12221,0 +) +*915 (MRCItem +litem &824 +pos 54 +dimension 20 +uid 12223,0 +) +*916 (MRCItem +litem &825 +pos 55 +dimension 20 +uid 12225,0 +) +*917 (MRCItem +litem &826 +pos 56 +dimension 20 +uid 12227,0 +) +*918 (MRCItem +litem &827 +pos 57 +dimension 20 +uid 12229,0 +) +*919 (MRCItem +litem &828 +pos 58 +dimension 20 +uid 12231,0 +) +*920 (MRCItem +litem &829 +pos 59 +dimension 20 +uid 12233,0 +) +*921 (MRCItem +litem &830 +pos 60 +dimension 20 +uid 12235,0 +) +*922 (MRCItem +litem &831 +pos 61 +dimension 20 +uid 12237,0 +) +*923 (MRCItem +litem &832 +pos 62 +dimension 20 +uid 12239,0 +) +*924 (MRCItem +litem &833 +pos 10 +dimension 20 +uid 12241,0 +) +*925 (MRCItem +litem &834 +pos 63 +dimension 20 +uid 12243,0 +) +*926 (MRCItem +litem &835 +pos 64 +dimension 20 +uid 12245,0 +) +*927 (MRCItem +litem &836 +pos 65 +dimension 20 +uid 12247,0 +) +*928 (MRCItem +litem &837 +pos 66 +dimension 20 +uid 12249,0 +) +*929 (MRCItem +litem &838 +pos 67 +dimension 20 +uid 12251,0 +) +*930 (MRCItem +litem &839 +pos 68 +dimension 20 +uid 12253,0 +) +*931 (MRCItem +litem &840 +pos 69 +dimension 20 +uid 12255,0 +) +*932 (MRCItem +litem &841 +pos 11 +dimension 20 +uid 12257,0 +) +*933 (MRCItem +litem &842 +pos 70 +dimension 20 +uid 12259,0 +) +*934 (MRCItem +litem &843 +pos 12 +dimension 20 +uid 12261,0 +) +*935 (MRCItem +litem &844 +pos 71 +dimension 20 +uid 12263,0 +) +*936 (MRCItem +litem &845 +pos 72 +dimension 20 +uid 12265,0 +) +*937 (MRCItem +litem &846 +pos 73 +dimension 20 +uid 12267,0 +) +*938 (MRCItem +litem &847 +pos 74 +dimension 20 +uid 12269,0 +) +*939 (MRCItem +litem &848 +pos 75 +dimension 20 +uid 12271,0 +) +*940 (MRCItem +litem &849 +pos 76 +dimension 20 +uid 12273,0 +) +*941 (MRCItem +litem &850 +pos 77 +dimension 20 +uid 12275,0 +) +*942 (MRCItem +litem &851 +pos 78 +dimension 20 +uid 12277,0 +) +*943 (MRCItem +litem &852 +pos 79 +dimension 20 +uid 12279,0 +) +*944 (MRCItem +litem &853 +pos 80 +dimension 20 +uid 12281,0 +) +*945 (MRCItem +litem &854 +pos 81 +dimension 20 +uid 12283,0 +) +*946 (MRCItem +litem &855 +pos 82 +dimension 20 +uid 12285,0 +) +*947 (MRCItem +litem &856 +pos 13 +dimension 20 +uid 12287,0 +) +*948 (MRCItem +litem &857 +pos 83 +dimension 20 +uid 12289,0 +) +*949 (MRCItem +litem &858 +pos 84 +dimension 20 +uid 12291,0 +) +*950 (MRCItem +litem &859 +pos 85 +dimension 20 +uid 12293,0 +) +*951 (MRCItem +litem &860 +pos 14 +dimension 20 +uid 12295,0 +) +*952 (MRCItem +litem &861 +pos 15 +dimension 20 +uid 12297,0 +) +*953 (MRCItem +litem &862 +pos 16 +dimension 20 +uid 12299,0 +) +*954 (MRCItem +litem &863 +pos 17 +dimension 20 +uid 12301,0 +) +*955 (MRCItem +litem &864 +pos 18 +dimension 20 +uid 12303,0 +) +*956 (MRCItem +litem &865 +pos 19 +dimension 20 +uid 12305,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 12326,0 +optionalChildren [ +*957 (MRCItem +litem &771 +pos 0 +dimension 20 +uid 12327,0 +) +*958 (MRCItem +litem &773 +pos 1 +dimension 50 +uid 12328,0 +) +*959 (MRCItem +litem &774 +pos 2 +dimension 100 +uid 12329,0 +) +*960 (MRCItem +litem &775 +pos 3 +dimension 50 +uid 12330,0 +) +*961 (MRCItem +litem &776 +pos 4 +dimension 100 +uid 12331,0 +) +*962 (MRCItem +litem &777 +pos 5 +dimension 100 +uid 12332,0 +) +*963 (MRCItem +litem &778 +pos 6 +dimension 50 +uid 12333,0 +) +*964 (MRCItem +litem &779 +pos 7 +dimension 80 +uid 12334,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 12321,0 +vaOverrides [ +] +) +] +) +uid 12306,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *965 (LEmptyRow +) +uid 12336,0 +optionalChildren [ +*966 (RefLabelRowHdr +) +*967 (TitleRowHdr +) +*968 (FilterRowHdr +) +*969 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*970 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*971 (GroupColHdr +tm "GroupColHdrMgr" +) +*972 (NameColHdr +tm "GenericNameColHdrMgr" +) +*973 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*974 (InitColHdr +tm "GenericValueColHdrMgr" +) +*975 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*976 (EolColHdr +tm "GenericEolColHdrMgr" +) +*977 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 12611,0 +) +*978 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 12613,0 +) +] +) +pdm (PhysicalDM +uid 12348,0 +optionalChildren [ +*979 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *980 (MRCItem +litem &965 +pos 2 +dimension 20 +) +uid 12350,0 +optionalChildren [ +*981 (MRCItem +litem &966 +pos 0 +dimension 20 +uid 12351,0 +) +*982 (MRCItem +litem &967 +pos 1 +dimension 23 +uid 12352,0 +) +*983 (MRCItem +litem &968 +pos 2 +hidden 1 +dimension 20 +uid 12353,0 +) +*984 (MRCItem +litem &977 +pos 0 +dimension 20 +uid 12610,0 +) +*985 (MRCItem +litem &978 +pos 1 +dimension 20 +uid 12612,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 12354,0 +optionalChildren [ +*986 (MRCItem +litem &969 +pos 0 +dimension 20 +uid 12355,0 +) +*987 (MRCItem +litem &971 +pos 1 +dimension 50 +uid 12356,0 +) +*988 (MRCItem +litem &972 +pos 2 +dimension 100 +uid 12357,0 +) +*989 (MRCItem +litem &973 +pos 3 +dimension 100 +uid 12358,0 +) +*990 (MRCItem +litem &974 +pos 4 +dimension 50 +uid 12359,0 +) +*991 (MRCItem +litem &975 +pos 5 +dimension 50 +uid 12360,0 +) +*992 (MRCItem +litem &976 +pos 6 +dimension 80 +uid 12361,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 12349,0 +vaOverrides [ +] +) +] +) +uid 12335,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/symbol.sb new file mode 100644 index 0000000..8e7f067 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@blanking/symbol.sb @@ -0,0 +1,2620 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2020,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 243,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 244,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 13,0 +) +) +uid 245,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 246,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 10,0 +) +) +uid 247,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 18,0 +) +) +uid 248,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 14,0 +) +) +uid 249,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 250,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 251,0 +) +*10 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 15,0 +) +) +uid 252,0 +) +*11 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 17,0 +) +) +uid 253,0 +) +*12 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 254,0 +) +*13 (LogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 255,0 +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 256,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 257,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 12,0 +) +) +uid 258,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 19,0 +) +) +uid 259,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 16,0 +) +) +uid 260,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 20,0 +) +) +uid 261,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +uid 262,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 263,0 +) +*22 (RefLabelRowHdr +) +*23 (TitleRowHdr +) +*24 (FilterRowHdr +) +*25 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*26 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*27 (GroupColHdr +tm "GroupColHdrMgr" +) +*28 (NameColHdr +tm "NameColHdrMgr" +) +*29 (ModeColHdr +tm "ModeColHdrMgr" +) +*30 (TypeColHdr +tm "TypeColHdrMgr" +) +*31 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*32 (InitColHdr +tm "InitColHdrMgr" +) +*33 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 264,0 +optionalChildren [ +*34 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *35 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 167,0 +optionalChildren [ +*36 (MRCItem +litem &22 +pos 0 +dimension 20 +uid 170,0 +) +*37 (MRCItem +litem &23 +pos 1 +dimension 23 +uid 172,0 +) +*38 (MRCItem +litem &24 +pos 2 +hidden 1 +dimension 20 +uid 174,0 +) +*39 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 193,0 +) +*40 (MRCItem +litem &3 +pos 11 +dimension 20 +uid 194,0 +) +*41 (MRCItem +litem &4 +pos 5 +dimension 20 +uid 195,0 +) +*42 (MRCItem +litem &5 +pos 8 +dimension 20 +uid 196,0 +) +*43 (MRCItem +litem &6 +pos 17 +dimension 20 +uid 197,0 +) +*44 (MRCItem +litem &7 +pos 13 +dimension 20 +uid 198,0 +) +*45 (MRCItem +litem &8 +pos 12 +dimension 20 +uid 199,0 +) +*46 (MRCItem +litem &9 +pos 1 +dimension 20 +uid 200,0 +) +*47 (MRCItem +litem &10 +pos 14 +dimension 20 +uid 201,0 +) +*48 (MRCItem +litem &11 +pos 18 +dimension 20 +uid 202,0 +) +*49 (MRCItem +litem &12 +pos 4 +dimension 20 +uid 203,0 +) +*50 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 204,0 +) +*51 (MRCItem +litem &14 +pos 3 +dimension 20 +uid 205,0 +) +*52 (MRCItem +litem &15 +pos 6 +dimension 20 +uid 206,0 +) +*53 (MRCItem +litem &16 +pos 10 +dimension 20 +uid 207,0 +) +*54 (MRCItem +litem &17 +pos 19 +dimension 20 +uid 208,0 +) +*55 (MRCItem +litem &18 +pos 16 +dimension 20 +uid 209,0 +) +*56 (MRCItem +litem &19 +pos 15 +dimension 20 +uid 210,0 +) +*57 (MRCItem +litem &20 +pos 9 +dimension 20 +uid 211,0 +) +*58 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 212,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 168,0 +optionalChildren [ +*59 (MRCItem +litem &25 +pos 0 +dimension 20 +uid 176,0 +) +*60 (MRCItem +litem &27 +pos 1 +dimension 50 +uid 180,0 +) +*61 (MRCItem +litem &28 +pos 2 +dimension 100 +uid 182,0 +) +*62 (MRCItem +litem &29 +pos 3 +dimension 50 +uid 184,0 +) +*63 (MRCItem +litem &30 +pos 4 +dimension 100 +uid 186,0 +) +*64 (MRCItem +litem &31 +pos 5 +dimension 100 +uid 188,0 +) +*65 (MRCItem +litem &32 +pos 6 +dimension 50 +uid 190,0 +) +*66 (MRCItem +litem &33 +pos 7 +dimension 80 +uid 192,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 166,0 +vaOverrides [ +] +) +] +) +uid 242,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *67 (LEmptyRow +) +uid 266,0 +optionalChildren [ +*68 (RefLabelRowHdr +) +*69 (TitleRowHdr +) +*70 (FilterRowHdr +) +*71 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*72 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*73 (GroupColHdr +tm "GroupColHdrMgr" +) +*74 (NameColHdr +tm "GenericNameColHdrMgr" +) +*75 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*76 (InitColHdr +tm "GenericValueColHdrMgr" +) +*77 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*78 (EolColHdr +tm "GenericEolColHdrMgr" +) +*79 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 238,0 +) +*80 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 239,0 +) +] +) +pdm (PhysicalDM +uid 267,0 +optionalChildren [ +*81 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *82 (MRCItem +litem &67 +pos 3 +dimension 20 +) +uid 214,0 +optionalChildren [ +*83 (MRCItem +litem &68 +pos 0 +dimension 20 +uid 217,0 +) +*84 (MRCItem +litem &69 +pos 1 +dimension 23 +uid 219,0 +) +*85 (MRCItem +litem &70 +pos 2 +hidden 1 +dimension 20 +uid 221,0 +) +*86 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 240,0 +) +*87 (MRCItem +litem &80 +pos 1 +dimension 20 +uid 241,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 215,0 +optionalChildren [ +*88 (MRCItem +litem &71 +pos 0 +dimension 20 +uid 223,0 +) +*89 (MRCItem +litem &73 +pos 1 +dimension 50 +uid 227,0 +) +*90 (MRCItem +litem &74 +pos 2 +dimension 100 +uid 229,0 +) +*91 (MRCItem +litem &75 +pos 3 +dimension 100 +uid 231,0 +) +*92 (MRCItem +litem &76 +pos 4 +dimension 50 +uid 233,0 +) +*93 (MRCItem +litem &77 +pos 5 +dimension 50 +uid 235,0 +) +*94 (MRCItem +litem &78 +pos 6 +dimension 80 +uid 237,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 213,0 +vaOverrides [ +] +) +] +) +uid 265,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@blanking/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@blanking/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@blanking" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriphBlanking" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphBlanking" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:21" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerPeriphBlanking" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@blanking/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriphBlanking/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:21" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*95 (SymbolBody +uid 8,0 +optionalChildren [ +*96 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,31625,36000,32375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "37000,31400,39500,32300" +st "clock" +blo "37000,32100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,18500,10300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*97 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,5625,36000,6375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "37000,5400,39000,6300" +st "addr" +blo "37000,6100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8500,30000,9400" +st "addr : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*98 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,5625,52750,6375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "49001,5400,51001,6300" +st "outX" +ju 2 +blo "51001,6100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7600,18500,8500" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*99 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,33625,36000,34375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "37000,33400,39500,34300" +st "reset" +blo "37000,34100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,18500,11200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*100 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,7625,52750,8375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "49001,7400,51001,8300" +st "outY" +ju 2 +blo "51001,8100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,18500,12100" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*101 (CptPort +uid 87,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 118,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,7625,36000,8375" +) +tg (CPTG +uid 89,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 90,0 +va (VaSet +font "courier,9,0" +) +xt "37000,7400,40000,8300" +st "dataIn" +blo "37000,8100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 91,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,33000,13000" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*102 (CptPort +uid 92,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 93,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,13625,36000,14375" +) +tg (CPTG +uid 94,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 95,0 +va (VaSet +font "courier,9,0" +) +xt "37000,13400,38000,14300" +st "rd" +blo "37000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 96,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,18500,13900" +st "rd : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*103 (CptPort +uid 97,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 98,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,15625,36000,16375" +) +tg (CPTG +uid 99,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 100,0 +va (VaSet +font "courier,9,0" +) +xt "37000,15400,38500,16300" +st "wrH" +blo "37000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 101,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,18500,14800" +st "wrH : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*104 (CptPort +uid 102,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 103,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,19625,36000,20375" +) +tg (CPTG +uid 104,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 105,0 +va (VaSet +font "courier,9,0" +) +xt "37000,19400,38000,20300" +st "cs" +blo "37000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 106,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,18500,15700" +st "cs : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*105 (CptPort +uid 107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 108,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,17625,36000,18375" +) +tg (CPTG +uid 109,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 110,0 +va (VaSet +font "courier,9,0" +) +xt "37000,17400,38500,18300" +st "wrL" +blo "37000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 111,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,18500,16600" +st "wrL : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +suid 10,0 +) +) +) +*106 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,9625,36000,10375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "courier,9,0" +) +xt "37000,9400,40500,10300" +st "dataOut" +blo "37000,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16600,32500,17500" +st "dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +) +*107 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,31625,52750,32375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "47501,31400,51001,32300" +st "testOut" +ju 2 +blo "51001,32100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17500,26500,18400" +st "testOut : OUT std_ulogic_vector (1 TO 16) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +suid 12,0 +) +) +) +*108 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,29625,52750,30375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "46501,29400,51001,30300" +st "selSinCos" +ju 2 +blo "51001,30100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18400,18500,19300" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 13,0 +) +) +) +*109 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,9625,52750,10375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +font "courier,9,0" +) +xt "49001,9400,51001,10300" +st "outZ" +ju 2 +blo "51001,10100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19300,18500,20200" +st "outZ : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +suid 14,0 +) +) +) +*110 (CptPort +uid 136,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 137,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,15625,52750,16375" +) +tg (CPTG +uid 138,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 139,0 +va (VaSet +font "courier,9,0" +) +xt "48500,15400,51000,16300" +st "CLK_X" +ju 2 +blo "51000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 140,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22000,18500,22900" +st "CLK_X : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +suid 15,0 +) +) +) +*111 (CptPort +uid 141,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 142,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,13625,52750,14375" +) +tg (CPTG +uid 143,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 144,0 +va (VaSet +font "courier,9,0" +) +xt "48000,13400,51000,14300" +st "CS_X_n" +ju 2 +blo "51000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 145,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20200,18500,21100" +st "CS_X_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +suid 16,0 +) +) +) +*112 (CptPort +uid 146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,17625,52750,18375" +) +tg (CPTG +uid 148,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 149,0 +va (VaSet +font "courier,9,0" +) +xt "48500,17400,51000,18300" +st "SDI_X" +ju 2 +blo "51000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 150,0 +va (VaSet +font "courier,8,0" +) +xt "2000,21100,18500,22000" +st "SDI_X : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +suid 17,0 +) +) +) +*113 (CptPort +uid 151,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 152,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,21625,52750,22375" +) +tg (CPTG +uid 153,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 154,0 +va (VaSet +font "courier,9,0" +) +xt "48000,21400,51000,22300" +st "CS_Y_n" +ju 2 +blo "51000,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 155,0 +va (VaSet +font "courier,8,0" +) +xt "2000,23800,18500,24700" +st "CS_Y_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +suid 18,0 +) +) +) +*114 (CptPort +uid 156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,25625,52750,26375" +) +tg (CPTG +uid 158,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 159,0 +va (VaSet +font "courier,9,0" +) +xt "48500,25400,51000,26300" +st "SDI_Y" +ju 2 +blo "51000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 160,0 +va (VaSet +font "courier,8,0" +) +xt "2000,24700,17500,25600" +st "SDI_Y : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +suid 19,0 +) +) +) +*115 (CptPort +uid 161,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 162,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 163,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 164,0 +va (VaSet +font "courier,9,0" +) +xt "48500,23400,51000,24300" +st "CLK_Y" +ju 2 +blo "51000,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 165,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22900,18500,23800" +st "CLK_Y : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +suid 20,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,2000,52000,36000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "36600,35800,43100,36700" +st "SystemOnChip" +blo "36600,36500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "36600,36700,47100,37600" +st "beamerPeriphBlanking" +blo "36600,37400" +) +) +gi *116 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "36000,39600,49500,43200" +st "Generic Declarations + +dataBitNb positive 16 +addressBitNb positive 24 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*117 (Grouping +uid 16,0 +optionalChildren [ +*118 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*119 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*120 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*121 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*122 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*123 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*124 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*125 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*126 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*127 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *128 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*129 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*130 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-940,75120,50630" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *131 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *132 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,6500,6700" +st "Declarations" +blo "0,6500" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6700,3000,7600" +st "Ports:" +blo "0,7400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,25600,2500,26500" +st "User:" +blo "0,26300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7500,6700" +st "Internal User:" +blo "0,6500" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,26500,2000,26500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 290,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/struct.bd new file mode 100644 index 0000000..9b568e7 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/struct.bd @@ -0,0 +1,11240 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_phase" +duLibraryName "Beamer" +duName "sawtoothGen" +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +mwi 0 +uid 11853,0 +) +(Instance +name "I_sin" +duLibraryName "Beamer" +duName "sinCosTable" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +mwi 0 +uid 11874,0 +) +(Instance +name "I_sry" +duLibraryName "Beamer" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11915,0 +) +(Instance +name "I_srx" +duLibraryName "Beamer" +duName "interpolatorShiftRegister" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 11924,0 +) +(Instance +name "I_coeffy" +duLibraryName "Beamer" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 12001,0 +) +(Instance +name "I_coeffx" +duLibraryName "Beamer" +duName "interpolatorCoefficients" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +mwi 0 +uid 12010,0 +) +(Instance +name "I_trig" +duLibraryName "Beamer" +duName "interpolatorTrigger" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 12071,0 +) +(Instance +name "I_polyy" +duLibraryName "Beamer" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 12116,0 +) +(Instance +name "I_polyx" +duLibraryName "Beamer" +duName "interpolatorCalculatePolynom" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +mwi 0 +uid 12125,0 +) +(Instance +name "I_offsy" +duLibraryName "Beamer" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 12178,0 +) +(Instance +name "I_offsx" +duLibraryName "Beamer" +duName "offsetToUnsigned" +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 12187,0 +) +(Instance +name "I_dacy" +duLibraryName "Beamer" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 12220,0 +) +(Instance +name "I_dacx" +duLibraryName "Beamer" +duName "DAC" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +mwi 0 +uid 12229,0 +) +(Instance +name "I_speed" +duLibraryName "Beamer" +duName "periphSpeedController" +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +mwi 0 +uid 16811,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb4" +number "4" +) +(EmbeddedInstance +name "eb5" +number "5" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@operator\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@operator\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@operator" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriphOperator" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphOperator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:02:04" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerPeriphOperator" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@operator\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriphOperator\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:02:04" +) +(vvPair +variable "unit" +value "beamerPeriphOperator" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,197000,274000,198000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,197500,257200,197500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,193000,278000,194000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,193500,274200,193500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,195000,274000,196000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,195500,257200,195500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,195000,257000,196000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,195500,253200,195500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "274000,194000,294000,198000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "274200,194200,288300,195400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "278000,193000,294000,194000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "278200,193500,278200,193500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,193000,274000,195000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "258350,193400,268650,194600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,196000,257000,197000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,196500,253200,196500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "253000,197000,257000,198000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "253200,197500,253200,197500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "257000,196000,274000,197000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "257200,196500,257200,196500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "253000,193000,294000,198000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 79,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +declText (MLText +uid 80,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,159800,14700,160800" +st "clock : std_ulogic" +) +) +*13 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "289500,153625,291000,154375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "289000,154000,289500,154000" +pts [ +"289000,154000" +"289500,154000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,153300,295700,154700" +st "outX" +blo "292000,154500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,158200,14800,159200" +st "outX : std_ulogic" +) +) +*15 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "289500,116625,291000,117375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "289000,117000,289500,117000" +pts [ +"289000,117000" +"289500,117000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "292000,116300,295600,117700" +st "outY" +blo "292000,117500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,161400,14800,162400" +st "outY : std_ulogic" +) +) +*17 (Net +uid 163,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +declText (MLText +uid 164,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,160600,14700,161600" +st "reset : std_ulogic" +) +) +*18 (Net +uid 436,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 10,0 +) +declText (MLText +uid 437,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,166200,16400,167200" +st "newPolynom : std_ulogic" +) +) +*19 (Net +uid 542,0 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 25 +suid 11,0 +) +declText (MLText +uid 543,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,184200,28700,185200" +st "SIGNAL sampleX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*20 (Net +uid 544,0 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 39 +suid 12,0 +) +declText (MLText +uid 545,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,195400,29800,196400" +st "SIGNAL unsignedX : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*21 (Net +uid 546,0 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 35 +suid 13,0 +) +declText (MLText +uid 547,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,192200,28800,193200" +st "SIGNAL samplesX : signed(signalBitNb-1 DOWNTO 0)" +) +) +*22 (Net +uid 548,0 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 26 +suid 14,0 +) +declText (MLText +uid 549,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,185000,28900,186000" +st "SIGNAL sampleX1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*23 (Net +uid 550,0 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 27 +suid 15,0 +) +declText (MLText +uid 551,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,185800,28900,186800" +st "SIGNAL sampleX2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*24 (Net +uid 552,0 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 28 +suid 16,0 +) +declText (MLText +uid 553,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,186600,28900,187600" +st "SIGNAL sampleX3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 554,0 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 29 +suid 17,0 +) +declText (MLText +uid 555,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,187400,28900,188400" +st "SIGNAL sampleX4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*26 (Net +uid 556,0 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 12 +suid 18,0 +) +declText (MLText +uid 557,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,173800,27500,174800" +st "SIGNAL aX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*27 (Net +uid 558,0 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 14 +suid 19,0 +) +declText (MLText +uid 559,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,175400,27500,176400" +st "SIGNAL bX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*28 (Net +uid 560,0 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 16 +suid 20,0 +) +declText (MLText +uid 561,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,177000,27400,178000" +st "SIGNAL cX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*29 (Net +uid 562,0 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 19 +suid 21,0 +) +declText (MLText +uid 563,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,179400,27500,180400" +st "SIGNAL dX : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*30 (Net +uid 865,0 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 36 +suid 22,0 +) +declText (MLText +uid 866,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,193000,28800,194000" +st "SIGNAL samplesY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*31 (Net +uid 867,0 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 31 +suid 23,0 +) +declText (MLText +uid 868,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,189000,28900,190000" +st "SIGNAL sampleY1 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*32 (Net +uid 869,0 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 32 +suid 24,0 +) +declText (MLText +uid 870,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,189800,28900,190800" +st "SIGNAL sampleY2 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*33 (Net +uid 871,0 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 33 +suid 25,0 +) +declText (MLText +uid 872,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,190600,28900,191600" +st "SIGNAL sampleY3 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*34 (Net +uid 873,0 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 26,0 +) +declText (MLText +uid 874,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,191400,28900,192400" +st "SIGNAL sampleY4 : signed(signalBitNb-1 DOWNTO 0)" +) +) +*35 (Net +uid 875,0 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 13 +suid 27,0 +) +declText (MLText +uid 876,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,174600,27500,175600" +st "SIGNAL aY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*36 (Net +uid 877,0 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 15 +suid 28,0 +) +declText (MLText +uid 878,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,176200,27500,177200" +st "SIGNAL bY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*37 (Net +uid 879,0 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 17 +suid 29,0 +) +declText (MLText +uid 880,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,177800,27400,178800" +st "SIGNAL cY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*38 (Net +uid 881,0 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 20 +suid 30,0 +) +declText (MLText +uid 882,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,180200,27500,181200" +st "SIGNAL dY : signed(coeffBitNb-1 DOWNTO 0)" +) +) +*39 (Net +uid 883,0 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 30 +suid 31,0 +) +declText (MLText +uid 884,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,188200,28700,189200" +st "SIGNAL sampleY : signed(signalBitNb-1 DOWNTO 0)" +) +) +*40 (Net +uid 885,0 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 40 +suid 32,0 +) +declText (MLText +uid 886,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,196200,29800,197200" +st "SIGNAL unsignedY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*41 (Net +uid 1348,0 +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 38,0 +) +declText (MLText +uid 1349,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,159000,14600,160000" +st "run : std_ulogic" +) +) +*42 (Net +uid 1776,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 42,0 +) +declText (MLText +uid 1777,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,163800,29900,164800" +st "updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*43 (Net +uid 1993,0 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 23 +suid 43,0 +) +declText (MLText +uid 1994,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,182600,19400,183600" +st "SIGNAL interpolationEnable : std_ulogic" +) +) +*44 (HdlText +uid 3135,0 +optionalChildren [ +*45 (EmbeddedText +uid 3140,0 +commentText (CommentText +uid 3141,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3142,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,152000,146000,156000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3143,0 +va (VaSet +) +xt "132200,152200,144900,155800" +st " +samplesX <= cosine when selSinCos = '1' + else signed(memX); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3136,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,150000,147000,158000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3137,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +uid 3138,0 +va (VaSet +) +xt "131400,158000,134000,159200" +st "eb2" +blo "131400,159000" +tm "HdlTextNameMgr" +) +*47 (Text +uid 3139,0 +va (VaSet +) +xt "131400,159000,132800,160200" +st "2" +blo "131400,160000" +tm "HdlTextNumberMgr" +) +] +) +) +*48 (Net +uid 3152,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 48,0 +) +declText (MLText +uid 3153,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,164600,30000,165600" +st "memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*49 (HdlText +uid 3896,0 +optionalChildren [ +*50 (EmbeddedText +uid 3901,0 +commentText (CommentText +uid 3902,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 3903,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,115000,146000,119000" +) +oxt "0,0,18000,5000" +text (MLText +uid 3904,0 +va (VaSet +) +xt "132200,115200,144900,118800" +st " +samplesY <= sine when selSinCos = '1' + else signed(memY); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 3897,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "131000,113000,147000,121000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3898,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 3899,0 +va (VaSet +) +xt "131400,121000,134000,122200" +st "eb1" +blo "131400,122000" +tm "HdlTextNameMgr" +) +*52 (Text +uid 3900,0 +va (VaSet +) +xt "131400,122000,132800,123200" +st "1" +blo "131400,123000" +tm "HdlTextNumberMgr" +) +] +) +) +*53 (Net +uid 3913,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 53,0 +) +declText (MLText +uid 3914,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,165400,30000,166400" +st "memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*54 (HdlText +uid 4719,0 +optionalChildren [ +*55 (EmbeddedText +uid 4724,0 +commentText (CommentText +uid 4725,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4726,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "64000,141000,78000,143000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4727,0 +va (VaSet +) +xt "64200,141200,78000,142400" +st " +step <= to_unsigned(1, step'length); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4720,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "63000,140000,79000,144000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4721,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +uid 4722,0 +va (VaSet +) +xt "63400,144000,66000,145200" +st "eb4" +blo "63400,145000" +tm "HdlTextNameMgr" +) +*57 (Text +uid 4723,0 +va (VaSet +) +xt "63400,145000,64800,146200" +st "4" +blo "63400,146000" +tm "HdlTextNumberMgr" +) +] +) +) +*58 (Net +uid 4800,0 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 24 +suid 57,0 +) +declText (MLText +uid 4801,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,183400,29400,184400" +st "SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*59 (Net +uid 4802,0 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 38 +suid 58,0 +) +declText (MLText +uid 4803,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,194600,29000,195600" +st "SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0)" +) +) +*60 (Net +uid 4858,0 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 37 +suid 59,0 +) +declText (MLText +uid 4859,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,193800,27800,194800" +st "SIGNAL sine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*61 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 270 +xt "89000,108625,90500,109375" +) +(Line +uid 5083,0 +sl 0 +ro 270 +xt "90500,109000,91000,109000" +pts [ +"90500,109000" +"91000,109000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "81100,108300,88000,109700" +st "selSinCos" +ju 2 +blo "88000,109500" +tm "WireNameMgr" +) +) +) +*62 (HdlText +uid 5244,0 +optionalChildren [ +*63 (EmbeddedText +uid 5249,0 +commentText (CommentText +uid 5250,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 5251,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "99000,104000,115000,114000" +) +oxt "0,0,18000,5000" +text (MLText +uid 5252,0 +va (VaSet +) +xt "99200,104200,114600,113800" +st " +interpolationEnable <= '1' when selSinCos = '1' + else interpolationEn; +interpolateLinear <= '0' when selSinCos = '1' + else interpolateLin; +--interpolateLinear <= interpolateLin; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 5245,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "99000,103000,115000,115000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 5246,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +uid 5247,0 +va (VaSet +) +xt "99400,115000,102000,116200" +st "eb5" +blo "99400,116000" +tm "HdlTextNameMgr" +) +*65 (Text +uid 5248,0 +va (VaSet +) +xt "99400,116000,100800,117200" +st "5" +blo "99400,117000" +tm "HdlTextNumberMgr" +) +] +) +) +*66 (Net +uid 5261,0 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 22 +suid 60,0 +) +declText (MLText +uid 5262,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,181800,18900,182800" +st "SIGNAL interpolationEn : std_ulogic" +) +) +*67 (Net +uid 5936,0 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 18 +suid 61,0 +) +declText (MLText +uid 5937,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,178600,28100,179600" +st "SIGNAL cosine : signed(signalBitNb-1 DOWNTO 0)" +) +) +*68 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,162200,15300,163200" +st "selSinCos : std_ulogic" +) +) +*69 (Net +uid 8148,0 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 21 +suid 69,0 +) +declText (MLText +uid 8149,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,181000,19000,182000" +st "SIGNAL interpolateLinear : std_ulogic" +) +) +*70 (Net +uid 9646,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 70,0 +) +declText (MLText +uid 9647,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,163000,15400,164000" +st "interpolateLin : std_ulogic" +) +) +*71 (SaComponent +uid 11853,0 +optionalChildren [ +*72 (CptPort +uid 11833,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11834,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,155625,75000,156375" +) +tg (CPTG +uid 11835,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11836,0 +va (VaSet +) +xt "76000,155400,79400,156600" +st "clock" +blo "76000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*73 (CptPort +uid 11837,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11838,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91000,149625,91750,150375" +) +tg (CPTG +uid 11839,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11840,0 +va (VaSet +) +xt "84800,149400,90000,150600" +st "sawtooth" +ju 2 +blo "90000,150400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sawtooth" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*74 (CptPort +uid 11841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11842,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,157625,75000,158375" +) +tg (CPTG +uid 11843,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11844,0 +va (VaSet +) +xt "76000,157400,79300,158600" +st "reset" +blo "76000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*75 (CptPort +uid 11845,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11846,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,149625,75000,150375" +) +tg (CPTG +uid 11847,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11848,0 +va (VaSet +) +xt "76000,149400,78900,150600" +st "step" +blo "76000,150400" +) +) +thePort (LogicalPort +decl (Decl +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*76 (CptPort +uid 11849,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11850,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74250,153625,75000,154375" +) +tg (CPTG +uid 11851,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11852,0 +va (VaSet +) +xt "76000,153400,77900,154600" +st "en" +blo "76000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 11854,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "75000,146000,91000,160000" +) +oxt "32000,8000,48000,22000" +ttg (MlTextGroup +uid 11855,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 11856,0 +va (VaSet +font "Verdana,9,1" +) +xt "75600,159800,80000,161000" +st "Beamer" +blo "75600,160800" +tm "BdLibraryNameMgr" +) +*78 (Text +uid 11857,0 +va (VaSet +font "Verdana,9,1" +) +xt "75600,161000,83500,162200" +st "sawtoothGen" +blo "75600,162000" +tm "CptNameMgr" +) +*79 (Text +uid 11858,0 +va (VaSet +font "Verdana,9,1" +) +xt "75600,162200,80200,163400" +st "I_phase" +blo "75600,163200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11859,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11860,0 +text (MLText +uid 11861,0 +va (VaSet +font "Verdana,8,0" +) +xt "75000,163600,90700,164600" +st "bitNb = phaseBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "phaseBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*80 (SaComponent +uid 11874,0 +optionalChildren [ +*81 (CptPort +uid 11862,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11863,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "115000,149625,115750,150375" +) +tg (CPTG +uid 11864,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11865,0 +va (VaSet +) +xt "111200,149400,114000,150600" +st "sine" +ju 2 +blo "114000,150400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*82 (CptPort +uid 11866,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11867,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98250,149625,99000,150375" +) +tg (CPTG +uid 11868,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11869,0 +va (VaSet +) +xt "100000,149400,103700,150600" +st "phase" +blo "100000,150400" +) +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*83 (CptPort +uid 11870,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11871,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "115000,151625,115750,152375" +) +tg (CPTG +uid 11872,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11873,0 +va (VaSet +) +xt "110000,151400,114000,152600" +st "cosine" +ju 2 +blo "114000,152400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cosine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 11875,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "99000,146000,115000,156000" +) +oxt "32000,8000,48000,18000" +ttg (MlTextGroup +uid 11876,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 11877,0 +va (VaSet +font "Verdana,9,1" +) +xt "99600,155800,104000,157000" +st "Beamer" +blo "99600,156800" +tm "BdLibraryNameMgr" +) +*85 (Text +uid 11878,0 +va (VaSet +font "Verdana,9,1" +) +xt "99600,157000,106600,158200" +st "sinCosTable" +blo "99600,158000" +tm "CptNameMgr" +) +*86 (Text +uid 11879,0 +va (VaSet +font "Verdana,9,1" +) +xt "99600,158200,102700,159400" +st "I_sin" +blo "99600,159200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11880,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11881,0 +text (MLText +uid 11882,0 +va (VaSet +font "Verdana,8,0" +) +xt "99000,159600,123000,162600" +st "inputBitNb = phaseBitNb ( positive ) +outputBitNb = signalBitNb ( positive ) +tableAddressBitNb = tableAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "phaseBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "tableAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*87 (SaComponent +uid 11915,0 +optionalChildren [ +*88 (CptPort +uid 11883,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11884,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,122625,161000,123375" +) +tg (CPTG +uid 11885,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11886,0 +va (VaSet +) +xt "162000,122400,165400,123600" +st "clock" +blo "162000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*89 (CptPort +uid 11887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11888,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,124625,161000,125375" +) +tg (CPTG +uid 11889,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11890,0 +va (VaSet +) +xt "162000,124400,165300,125600" +st "reset" +blo "162000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*90 (CptPort +uid 11891,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11892,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,118625,161000,119375" +) +tg (CPTG +uid 11893,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11894,0 +va (VaSet +) +xt "162000,118400,169900,119600" +st "shiftSamples" +blo "162000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*91 (CptPort +uid 11895,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11896,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,116625,161000,117375" +) +tg (CPTG +uid 11897,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11898,0 +va (VaSet +) +xt "162000,116400,167400,117600" +st "sampleIn" +blo "162000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*92 (CptPort +uid 11899,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11900,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,116625,177750,117375" +) +tg (CPTG +uid 11901,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11902,0 +va (VaSet +) +xt "171000,116400,176000,117600" +st "sample1" +ju 2 +blo "176000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*93 (CptPort +uid 11903,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11904,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,118625,177750,119375" +) +tg (CPTG +uid 11905,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11906,0 +va (VaSet +) +xt "171000,118400,176000,119600" +st "sample2" +ju 2 +blo "176000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*94 (CptPort +uid 11907,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,120625,177750,121375" +) +tg (CPTG +uid 11909,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11910,0 +va (VaSet +) +xt "171000,120400,176000,121600" +st "sample3" +ju 2 +blo "176000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*95 (CptPort +uid 11911,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11912,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,122625,177750,123375" +) +tg (CPTG +uid 11913,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11914,0 +va (VaSet +) +xt "171000,122400,176000,123600" +st "sample4" +ju 2 +blo "176000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 11916,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,113000,177000,127000" +) +oxt "35000,9000,51000,23000" +ttg (MlTextGroup +uid 11917,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +uid 11918,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,126800,166000,128000" +st "Beamer" +blo "161600,127800" +tm "BdLibraryNameMgr" +) +*97 (Text +uid 11919,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,128000,176100,129200" +st "interpolatorShiftRegister" +blo "161600,129000" +tm "CptNameMgr" +) +*98 (Text +uid 11920,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,129200,164800,130400" +st "I_sry" +blo "161600,130200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11921,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11922,0 +text (MLText +uid 11923,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,130600,179400,131600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*99 (SaComponent +uid 11924,0 +optionalChildren [ +*100 (CptPort +uid 11933,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11934,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,159625,161000,160375" +) +tg (CPTG +uid 11935,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11936,0 +va (VaSet +) +xt "162000,159400,165400,160600" +st "clock" +blo "162000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*101 (CptPort +uid 11937,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11938,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,161625,161000,162375" +) +tg (CPTG +uid 11939,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11940,0 +va (VaSet +) +xt "162000,161400,165300,162600" +st "reset" +blo "162000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*102 (CptPort +uid 11941,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11942,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,155625,161000,156375" +) +tg (CPTG +uid 11943,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11944,0 +va (VaSet +) +xt "162000,155400,169900,156600" +st "shiftSamples" +blo "162000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "shiftSamples" +t "std_ulogic" +o 3 +) +) +) +*103 (CptPort +uid 11945,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11946,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,153625,161000,154375" +) +tg (CPTG +uid 11947,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11948,0 +va (VaSet +) +xt "162000,153400,167400,154600" +st "sampleIn" +blo "162000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sampleIn" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*104 (CptPort +uid 11949,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11950,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,153625,177750,154375" +) +tg (CPTG +uid 11951,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11952,0 +va (VaSet +) +xt "171000,153400,176000,154600" +st "sample1" +ju 2 +blo "176000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*105 (CptPort +uid 11953,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11954,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,155625,177750,156375" +) +tg (CPTG +uid 11955,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11956,0 +va (VaSet +) +xt "171000,155400,176000,156600" +st "sample2" +ju 2 +blo "176000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*106 (CptPort +uid 11957,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11958,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,157625,177750,158375" +) +tg (CPTG +uid 11959,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11960,0 +va (VaSet +) +xt "171000,157400,176000,158600" +st "sample3" +ju 2 +blo "176000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*107 (CptPort +uid 11961,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11962,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,159625,177750,160375" +) +tg (CPTG +uid 11963,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11964,0 +va (VaSet +) +xt "171000,159400,176000,160600" +st "sample4" +ju 2 +blo "176000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sample4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +) +) +) +] +shape (Rectangle +uid 11925,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,150000,177000,164000" +) +oxt "35000,9000,51000,23000" +ttg (MlTextGroup +uid 11926,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*108 (Text +uid 11927,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,163800,166000,165000" +st "Beamer" +blo "161600,164800" +tm "BdLibraryNameMgr" +) +*109 (Text +uid 11928,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,165000,176100,166200" +st "interpolatorShiftRegister" +blo "161600,166000" +tm "CptNameMgr" +) +*110 (Text +uid 11929,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,166200,164800,167400" +st "I_srx" +blo "161600,167200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11930,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11931,0 +text (MLText +uid 11932,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,167600,179400,168600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*111 (SaComponent +uid 12001,0 +optionalChildren [ +*112 (CptPort +uid 11965,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11966,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,116625,185000,117375" +) +tg (CPTG +uid 11967,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11968,0 +va (VaSet +) +xt "186000,116400,191000,117600" +st "sample1" +blo "186000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*113 (CptPort +uid 11969,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11970,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,118625,185000,119375" +) +tg (CPTG +uid 11971,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11972,0 +va (VaSet +) +xt "186000,118400,191000,119600" +st "sample2" +blo "186000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*114 (CptPort +uid 11973,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11974,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,120625,185000,121375" +) +tg (CPTG +uid 11975,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11976,0 +va (VaSet +) +xt "186000,120400,191000,121600" +st "sample3" +blo "186000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*115 (CptPort +uid 11977,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11978,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,122625,185000,123375" +) +tg (CPTG +uid 11979,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11980,0 +va (VaSet +) +xt "186000,122400,191000,123600" +st "sample4" +blo "186000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*116 (CptPort +uid 11981,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11982,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,116625,201750,117375" +) +tg (CPTG +uid 11983,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11984,0 +va (VaSet +) +xt "198700,116400,200000,117600" +st "a" +ju 2 +blo "200000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*117 (CptPort +uid 11985,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11986,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,118625,201750,119375" +) +tg (CPTG +uid 11987,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11988,0 +va (VaSet +) +xt "198700,118400,200000,119600" +st "b" +ju 2 +blo "200000,119400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*118 (CptPort +uid 11989,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11990,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,122625,201750,123375" +) +tg (CPTG +uid 11991,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11992,0 +va (VaSet +) +xt "198700,122400,200000,123600" +st "d" +ju 2 +blo "200000,123400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*119 (CptPort +uid 11993,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11994,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,120625,201750,121375" +) +tg (CPTG +uid 11995,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11996,0 +va (VaSet +) +xt "198700,120400,200000,121600" +st "c" +ju 2 +blo "200000,121400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 8,0 +) +) +) +*120 (CptPort +uid 11997,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11998,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,124625,185000,125375" +) +tg (CPTG +uid 11999,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12000,0 +va (VaSet +) +xt "186000,124400,195900,125600" +st "interpolateLinear" +blo "186000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 12002,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,113000,201000,129000" +) +oxt "33000,11000,49000,27000" +ttg (MlTextGroup +uid 12003,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*121 (Text +uid 12004,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,128800,190000,130000" +st "Beamer" +blo "185600,129800" +tm "BdLibraryNameMgr" +) +*122 (Text +uid 12005,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,130000,199500,131200" +st "interpolatorCoefficients" +blo "185600,131000" +tm "CptNameMgr" +) +*123 (Text +uid 12006,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,131200,190600,132400" +st "I_coeffy" +blo "185600,132200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12007,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12008,0 +text (MLText +uid 12009,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,132800,203100,134800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*124 (SaComponent +uid 12010,0 +optionalChildren [ +*125 (CptPort +uid 12019,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12020,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,153625,185000,154375" +) +tg (CPTG +uid 12021,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12022,0 +va (VaSet +) +xt "186000,153400,191000,154600" +st "sample1" +blo "186000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "sample1" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*126 (CptPort +uid 12023,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12024,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,155625,185000,156375" +) +tg (CPTG +uid 12025,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12026,0 +va (VaSet +) +xt "186000,155400,191000,156600" +st "sample2" +blo "186000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "sample2" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +*127 (CptPort +uid 12027,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12028,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,157625,185000,158375" +) +tg (CPTG +uid 12029,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12030,0 +va (VaSet +) +xt "186000,157400,191000,158600" +st "sample3" +blo "186000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "sample3" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 3 +) +) +) +*128 (CptPort +uid 12031,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12032,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,159625,185000,160375" +) +tg (CPTG +uid 12033,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12034,0 +va (VaSet +) +xt "186000,159400,191000,160600" +st "sample4" +blo "186000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "sample4" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 4 +) +) +) +*129 (CptPort +uid 12035,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12036,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,153625,201750,154375" +) +tg (CPTG +uid 12037,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12038,0 +va (VaSet +) +xt "198700,153400,200000,154600" +st "a" +ju 2 +blo "200000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*130 (CptPort +uid 12039,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12040,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,155625,201750,156375" +) +tg (CPTG +uid 12041,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12042,0 +va (VaSet +) +xt "198700,155400,200000,156600" +st "b" +ju 2 +blo "200000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*131 (CptPort +uid 12043,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12044,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,159625,201750,160375" +) +tg (CPTG +uid 12045,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12046,0 +va (VaSet +) +xt "198700,159400,200000,160600" +st "d" +ju 2 +blo "200000,160400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*132 (CptPort +uid 12047,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12048,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "201000,157625,201750,158375" +) +tg (CPTG +uid 12049,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12050,0 +va (VaSet +) +xt "198700,157400,200000,158600" +st "c" +ju 2 +blo "200000,158400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*133 (CptPort +uid 12051,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12052,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "184250,161625,185000,162375" +) +tg (CPTG +uid 12053,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12054,0 +va (VaSet +) +xt "186000,161400,195900,162600" +st "interpolateLinear" +blo "186000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 12011,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "185000,150000,201000,166000" +) +oxt "33000,11000,49000,27000" +ttg (MlTextGroup +uid 12012,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*134 (Text +uid 12013,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,165800,190000,167000" +st "Beamer" +blo "185600,166800" +tm "BdLibraryNameMgr" +) +*135 (Text +uid 12014,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,167000,199500,168200" +st "interpolatorCoefficients" +blo "185600,168000" +tm "CptNameMgr" +) +*136 (Text +uid 12015,0 +va (VaSet +font "Verdana,9,1" +) +xt "185600,168200,190600,169400" +st "I_coeffx" +blo "185600,169200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12016,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12017,0 +text (MLText +uid 12018,0 +va (VaSet +font "Verdana,8,0" +) +xt "185000,169800,203100,171800" +st "bitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*137 (SaComponent +uid 12071,0 +optionalChildren [ +*138 (CptPort +uid 12055,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12056,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177000,175625,177750,176375" +) +tg (CPTG +uid 12057,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12058,0 +va (VaSet +) +xt "169400,175400,176000,176600" +st "triggerOut" +ju 2 +blo "176000,176400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "triggerOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*139 (CptPort +uid 12059,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12060,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,179625,161000,180375" +) +tg (CPTG +uid 12061,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12062,0 +va (VaSet +) +xt "162000,179400,165400,180600" +st "clock" +blo "162000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*140 (CptPort +uid 12063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12064,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,181625,161000,182375" +) +tg (CPTG +uid 12065,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12066,0 +va (VaSet +) +xt "162000,181400,165300,182600" +st "reset" +blo "162000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*141 (CptPort +uid 12067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12068,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160250,175625,161000,176375" +) +tg (CPTG +uid 12069,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12070,0 +va (VaSet +) +xt "162000,175400,163900,176600" +st "en" +blo "162000,176400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 12072,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "161000,172000,177000,184000" +) +oxt "32000,6000,48000,18000" +ttg (MlTextGroup +uid 12073,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*142 (Text +uid 12074,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,183800,166000,185000" +st "Beamer" +blo "161600,184800" +tm "BdLibraryNameMgr" +) +*143 (Text +uid 12075,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,185000,172300,186200" +st "interpolatorTrigger" +blo "161600,186000" +tm "CptNameMgr" +) +*144 (Text +uid 12076,0 +va (VaSet +font "Verdana,9,1" +) +xt "161600,186200,165100,187400" +st "I_trig" +blo "161600,187200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12077,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12078,0 +text (MLText +uid 12079,0 +va (VaSet +font "Verdana,8,0" +) +xt "161000,187600,183100,188600" +st "counterBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*145 (SaComponent +uid 12116,0 +optionalChildren [ +*146 (CptPort +uid 12080,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12081,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,130625,217000,131375" +) +tg (CPTG +uid 12082,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12083,0 +va (VaSet +) +xt "218000,130400,221400,131600" +st "clock" +blo "218000,131400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*147 (CptPort +uid 12084,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12085,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,132625,217000,133375" +) +tg (CPTG +uid 12086,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12087,0 +va (VaSet +) +xt "218000,132400,221300,133600" +st "reset" +blo "218000,133400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*148 (CptPort +uid 12088,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12089,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,124625,217000,125375" +) +tg (CPTG +uid 12090,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12091,0 +va (VaSet +) +xt "218000,124400,227100,125600" +st "restartPolynom" +blo "218000,125400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*149 (CptPort +uid 12092,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12093,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,122625,217000,123375" +) +tg (CPTG +uid 12094,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12095,0 +va (VaSet +) +xt "218000,122400,219300,123600" +st "d" +blo "218000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*150 (CptPort +uid 12096,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12097,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,116625,233750,117375" +) +tg (CPTG +uid 12098,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12099,0 +va (VaSet +) +xt "225800,116400,232000,117600" +st "sampleOut" +ju 2 +blo "232000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*151 (CptPort +uid 12100,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12101,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,120625,217000,121375" +) +tg (CPTG +uid 12102,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12103,0 +va (VaSet +) +xt "218000,120400,219300,121600" +st "c" +blo "218000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*152 (CptPort +uid 12104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,118625,217000,119375" +) +tg (CPTG +uid 12106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12107,0 +va (VaSet +) +xt "218000,118400,219300,119600" +st "b" +blo "218000,119400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +*153 (CptPort +uid 12108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,116625,217000,117375" +) +tg (CPTG +uid 12110,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12111,0 +va (VaSet +) +xt "218000,116400,219300,117600" +st "a" +blo "218000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +*154 (CptPort +uid 12112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12113,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,128625,217000,129375" +) +tg (CPTG +uid 12114,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12115,0 +va (VaSet +) +xt "218000,128400,219900,129600" +st "en" +blo "218000,129400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 12117,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,113000,233000,136000" +) +oxt "37000,7000,53000,30000" +ttg (MlTextGroup +uid 12118,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*155 (Text +uid 12119,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,135800,222000,137000" +st "Beamer" +blo "217600,136800" +tm "BdLibraryNameMgr" +) +*156 (Text +uid 12120,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,137000,234300,138200" +st "interpolatorCalculatePolynom" +blo "217600,138000" +tm "CptNameMgr" +) +*157 (Text +uid 12121,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,138200,222000,139400" +st "I_polyy" +blo "217600,139200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12122,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12123,0 +text (MLText +uid 12124,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,140000,241500,143000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*158 (SaComponent +uid 12125,0 +optionalChildren [ +*159 (CptPort +uid 12134,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12135,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,167625,217000,168375" +) +tg (CPTG +uid 12136,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12137,0 +va (VaSet +) +xt "218000,167400,221400,168600" +st "clock" +blo "218000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*160 (CptPort +uid 12138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12139,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,169625,217000,170375" +) +tg (CPTG +uid 12140,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12141,0 +va (VaSet +) +xt "218000,169400,221300,170600" +st "reset" +blo "218000,170400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +) +) +) +*161 (CptPort +uid 12142,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12143,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,161625,217000,162375" +) +tg (CPTG +uid 12144,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12145,0 +va (VaSet +) +xt "218000,161400,227100,162600" +st "restartPolynom" +blo "218000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "restartPolynom" +t "std_ulogic" +o 3 +) +) +) +*162 (CptPort +uid 12146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,159625,217000,160375" +) +tg (CPTG +uid 12148,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12149,0 +va (VaSet +) +xt "218000,159400,219300,160600" +st "d" +blo "218000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "d" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*163 (CptPort +uid 12150,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12151,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "233000,153625,233750,154375" +) +tg (CPTG +uid 12152,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12153,0 +va (VaSet +) +xt "225800,153400,232000,154600" +st "sampleOut" +ju 2 +blo "232000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleOut" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +) +) +) +*164 (CptPort +uid 12154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12155,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,157625,217000,158375" +) +tg (CPTG +uid 12156,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12157,0 +va (VaSet +) +xt "218000,157400,219300,158600" +st "c" +blo "218000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "c" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*165 (CptPort +uid 12158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,155625,217000,156375" +) +tg (CPTG +uid 12160,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12161,0 +va (VaSet +) +xt "218000,155400,219300,156600" +st "b" +blo "218000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 7 +) +) +) +*166 (CptPort +uid 12162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12163,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,153625,217000,154375" +) +tg (CPTG +uid 12164,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12165,0 +va (VaSet +) +xt "218000,153400,219300,154600" +st "a" +blo "218000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 8 +) +) +) +*167 (CptPort +uid 12166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12167,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "216250,165625,217000,166375" +) +tg (CPTG +uid 12168,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12169,0 +va (VaSet +) +xt "218000,165400,219900,166600" +st "en" +blo "218000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 12126,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "217000,150000,233000,173000" +) +oxt "37000,7000,53000,30000" +ttg (MlTextGroup +uid 12127,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*168 (Text +uid 12128,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,172800,222000,174000" +st "Beamer" +blo "217600,173800" +tm "BdLibraryNameMgr" +) +*169 (Text +uid 12129,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,174000,234300,175200" +st "interpolatorCalculatePolynom" +blo "217600,175000" +tm "CptNameMgr" +) +*170 (Text +uid 12130,0 +va (VaSet +font "Verdana,9,1" +) +xt "217600,175200,222000,176400" +st "I_polyx" +blo "217600,176200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12131,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12132,0 +text (MLText +uid 12133,0 +va (VaSet +font "Verdana,8,0" +) +xt "217000,177000,241500,180000" +st "signalBitNb = signalBitNb ( positive ) +coeffBitNb = coeffBitNb ( positive ) +oversamplingBitNb = sampleCountBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "coeffBitNb" +type "positive" +value "coeffBitNb" +) +(GiElement +name "oversamplingBitNb" +type "positive" +value "sampleCountBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*171 (SaComponent +uid 12178,0 +optionalChildren [ +*172 (CptPort +uid 12170,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12171,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,116625,257750,117375" +) +tg (CPTG +uid 12172,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12173,0 +va (VaSet +) +xt "248200,116400,256000,117600" +st "unsignedOut" +ju 2 +blo "256000,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*173 (CptPort +uid 12174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,116625,241000,117375" +) +tg (CPTG +uid 12176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12177,0 +va (VaSet +) +xt "242000,116400,247100,117600" +st "signedIn" +blo "242000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 12179,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,113000,257000,121000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 12180,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*174 (Text +uid 12181,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,120800,246000,122000" +st "Beamer" +blo "241600,121800" +tm "BdLibraryNameMgr" +) +*175 (Text +uid 12182,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,122000,251700,123200" +st "offsetToUnsigned" +blo "241600,123000" +tm "CptNameMgr" +) +*176 (Text +uid 12183,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,123200,246000,124400" +st "I_offsy" +blo "241600,124200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12184,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12185,0 +text (MLText +uid 12186,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,124800,256600,125800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*177 (SaComponent +uid 12187,0 +optionalChildren [ +*178 (CptPort +uid 12196,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12197,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "257000,153625,257750,154375" +) +tg (CPTG +uid 12198,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12199,0 +va (VaSet +) +xt "248200,153400,256000,154600" +st "unsignedOut" +ju 2 +blo "256000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "unsignedOut" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +o 1 +) +) +) +*179 (CptPort +uid 12200,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12201,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "240250,153625,241000,154375" +) +tg (CPTG +uid 12202,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12203,0 +va (VaSet +) +xt "242000,153400,247100,154600" +st "signedIn" +blo "242000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "signedIn" +t "signed" +b "(bitNb-1 DOWNTO 0)" +o 2 +) +) +) +] +shape (Rectangle +uid 12188,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "241000,150000,257000,158000" +) +oxt "32000,10000,48000,18000" +ttg (MlTextGroup +uid 12189,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*180 (Text +uid 12190,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,157800,246000,159000" +st "Beamer" +blo "241600,158800" +tm "BdLibraryNameMgr" +) +*181 (Text +uid 12191,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,159000,251700,160200" +st "offsetToUnsigned" +blo "241600,160000" +tm "CptNameMgr" +) +*182 (Text +uid 12192,0 +va (VaSet +font "Verdana,9,1" +) +xt "241600,160200,246000,161400" +st "I_offsx" +blo "241600,161200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12193,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12194,0 +text (MLText +uid 12195,0 +va (VaSet +font "Verdana,8,0" +) +xt "241000,161800,256600,162800" +st "bitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*183 (SaComponent +uid 12220,0 +optionalChildren [ +*184 (CptPort +uid 12204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,120625,265000,121375" +) +tg (CPTG +uid 12206,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12207,0 +va (VaSet +) +xt "266000,120400,269400,121600" +st "clock" +blo "266000,121400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*185 (CptPort +uid 12208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12209,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,116625,265000,117375" +) +tg (CPTG +uid 12210,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12211,0 +va (VaSet +) +xt "266000,116400,272200,117600" +st "parallelIn" +blo "266000,117400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*186 (CptPort +uid 12212,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12213,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,116625,281750,117375" +) +tg (CPTG +uid 12214,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12215,0 +va (VaSet +) +xt "274601,116400,280001,117600" +st "serialOut" +ju 2 +blo "280001,117400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*187 (CptPort +uid 12216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12217,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,122625,265000,123375" +) +tg (CPTG +uid 12218,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12219,0 +va (VaSet +) +xt "266000,122400,269300,123600" +st "reset" +blo "266000,123400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 12221,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,113000,281000,125000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 12222,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*188 (Text +uid 12223,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,124800,270000,126000" +st "Beamer" +blo "265600,125800" +tm "BdLibraryNameMgr" +) +*189 (Text +uid 12224,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,126000,268300,127200" +st "DAC" +blo "265600,127000" +tm "CptNameMgr" +) +*190 (Text +uid 12225,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,127200,269600,128400" +st "I_dacy" +blo "265600,128200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12226,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12227,0 +text (MLText +uid 12228,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,128600,283400,129600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*191 (SaComponent +uid 12229,0 +optionalChildren [ +*192 (CptPort +uid 12238,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12239,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,157625,265000,158375" +) +tg (CPTG +uid 12240,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12241,0 +va (VaSet +) +xt "266000,157400,269400,158600" +st "clock" +blo "266000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*193 (CptPort +uid 12242,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12243,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,153625,265000,154375" +) +tg (CPTG +uid 12244,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12245,0 +va (VaSet +) +xt "266000,153400,272200,154600" +st "parallelIn" +blo "266000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*194 (CptPort +uid 12246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12247,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "281000,153625,281750,154375" +) +tg (CPTG +uid 12248,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12249,0 +va (VaSet +) +xt "274601,153400,280001,154600" +st "serialOut" +ju 2 +blo "280001,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "serialOut" +t "std_ulogic" +o 1 +) +) +) +*195 (CptPort +uid 12250,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12251,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "264250,159625,265000,160375" +) +tg (CPTG +uid 12252,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12253,0 +va (VaSet +) +xt "266000,159400,269300,160600" +st "reset" +blo "266000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +] +shape (Rectangle +uid 12230,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "265000,150000,281000,162000" +) +oxt "32000,14000,48000,26000" +ttg (MlTextGroup +uid 12231,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*196 (Text +uid 12232,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,161800,270000,163000" +st "Beamer" +blo "265600,162800" +tm "BdLibraryNameMgr" +) +*197 (Text +uid 12233,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,163000,268300,164200" +st "DAC" +blo "265600,164000" +tm "CptNameMgr" +) +*198 (Text +uid 12234,0 +va (VaSet +font "Verdana,9,1" +) +xt "265600,164200,269600,165400" +st "I_dacx" +blo "265600,165200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12235,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12236,0 +text (MLText +uid 12237,0 +va (VaSet +font "Verdana,8,0" +) +xt "265000,165600,283400,166600" +st "signalBitNb = signalBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*199 (PortIoIn +uid 15558,0 +shape (CompositeShape +uid 15559,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15560,0 +sl 0 +ro 270 +xt "49000,112625,50500,113375" +) +(Line +uid 15561,0 +sl 0 +ro 270 +xt "50500,113000,51000,113000" +pts [ +"50500,113000" +"51000,113000" +] +) +] +) +tg (WTG +uid 15562,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15563,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "44200,112500,48000,113900" +st "clock" +ju 2 +blo "48000,113700" +tm "WireNameMgr" +) +) +) +*200 (PortIoIn +uid 15570,0 +shape (CompositeShape +uid 15571,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15572,0 +sl 0 +ro 270 +xt "89000,110625,90500,111375" +) +(Line +uid 15573,0 +sl 0 +ro 270 +xt "90500,111000,91000,111000" +pts [ +"90500,111000" +"91000,111000" +] +) +] +) +tg (WTG +uid 15574,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15575,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "77700,110500,88000,111900" +st "interpolateLin" +ju 2 +blo "88000,111700" +tm "WireNameMgr" +) +) +) +*201 (PortIoIn +uid 15582,0 +shape (CompositeShape +uid 15583,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15584,0 +sl 0 +ro 270 +xt "121000,153625,122500,154375" +) +(Line +uid 15585,0 +sl 0 +ro 270 +xt "122500,154000,123000,154000" +pts [ +"122500,154000" +"123000,154000" +] +) +] +) +tg (WTG +uid 15586,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15587,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "95800,153500,120000,154900" +st "memX : (signalBitNb-1 DOWNTO 0)" +ju 2 +blo "120000,154700" +tm "WireNameMgr" +) +) +) +*202 (PortIoIn +uid 15594,0 +shape (CompositeShape +uid 15595,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15596,0 +sl 0 +ro 270 +xt "49000,114625,50500,115375" +) +(Line +uid 15597,0 +sl 0 +ro 270 +xt "50500,115000,51000,115000" +pts [ +"50500,115000" +"51000,115000" +] +) +] +) +tg (WTG +uid 15598,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15599,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "43900,114500,48000,115900" +st "reset" +ju 2 +blo "48000,115700" +tm "WireNameMgr" +) +) +) +*203 (PortIoIn +uid 15606,0 +shape (CompositeShape +uid 15607,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15608,0 +sl 0 +ro 270 +xt "49000,106625,50500,107375" +) +(Line +uid 15609,0 +sl 0 +ro 270 +xt "50500,107000,51000,107000" +pts [ +"50500,107000" +"51000,107000" +] +) +] +) +tg (WTG +uid 15610,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15611,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45100,106500,48000,107900" +st "run" +ju 2 +blo "48000,107700" +tm "WireNameMgr" +) +) +) +*204 (PortIoIn +uid 15632,0 +shape (CompositeShape +uid 15633,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 15634,0 +sl 0 +ro 270 +xt "49000,108625,50500,109375" +) +(Line +uid 15635,0 +sl 0 +ro 270 +xt "50500,109000,51000,109000" +pts [ +"50500,109000" +"51000,109000" +] +) +] +) +tg (WTG +uid 15636,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15637,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "13500,108500,48000,109900" +st "updatePeriod : (updatePeriodBitNb-1 DOWNTO 0)" +ju 2 +blo "48000,109700" +tm "WireNameMgr" +) +) +) +*205 (PortIoIn +uid 16404,0 +shape (CompositeShape +uid 16405,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16406,0 +sl 0 +ro 270 +xt "121000,116625,122500,117375" +) +(Line +uid 16407,0 +sl 0 +ro 270 +xt "122500,117000,123000,117000" +pts [ +"122500,117000" +"123000,117000" +] +) +] +) +tg (WTG +uid 16408,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16409,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "95900,116500,120000,117900" +st "memY : (signalBitNb-1 DOWNTO 0)" +ju 2 +blo "120000,117700" +tm "WireNameMgr" +) +) +) +*206 (PortIoOut +uid 16674,0 +shape (CompositeShape +uid 16675,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16676,0 +sl 0 +ro 270 +xt "209500,175625,211000,176375" +) +(Line +uid 16677,0 +sl 0 +ro 270 +xt "209000,176000,209500,176000" +pts [ +"209000,176000" +"209500,176000" +] +) +] +) +tg (WTG +uid 16678,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16679,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "212000,175500,221600,176900" +st "newPolynom" +blo "212000,176700" +tm "WireNameMgr" +) +) +) +*207 (SaComponent +uid 16811,0 +optionalChildren [ +*208 (CptPort +uid 16791,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16792,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75000,106625,75750,107375" +) +tg (CPTG +uid 16793,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16794,0 +va (VaSet +) +xt "68100,106400,74000,107600" +st "enableOut" +ju 2 +blo "74000,107400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "enableOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*209 (CptPort +uid 16795,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16796,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,112625,59000,113375" +) +tg (CPTG +uid 16797,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16798,0 +va (VaSet +) +xt "60000,112400,63400,113600" +st "clock" +blo "60000,113400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*210 (CptPort +uid 16799,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16800,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,114625,59000,115375" +) +tg (CPTG +uid 16801,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16802,0 +va (VaSet +) +xt "60000,114400,63300,115600" +st "reset" +blo "60000,115400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*211 (CptPort +uid 16803,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16804,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,108625,59000,109375" +) +tg (CPTG +uid 16805,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16806,0 +va (VaSet +) +xt "60000,108400,68000,109600" +st "updatePeriod" +blo "60000,109400" +) +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*212 (CptPort +uid 16807,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16808,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58250,106625,59000,107375" +) +tg (CPTG +uid 16809,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16810,0 +va (VaSet +) +xt "60000,106400,65100,107600" +st "enableIn" +blo "60000,107400" +) +) +thePort (LogicalPort +decl (Decl +n "enableIn" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 16812,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "59000,103000,75000,117000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 16813,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*213 (Text +uid 16814,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,116800,64000,118000" +st "Beamer" +blo "59600,117800" +tm "BdLibraryNameMgr" +) +*214 (Text +uid 16815,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,118000,72400,119200" +st "periphSpeedController" +blo "59600,119000" +tm "CptNameMgr" +) +*215 (Text +uid 16816,0 +va (VaSet +font "Verdana,9,1" +) +xt "59600,119200,64200,120400" +st "I_speed" +blo "59600,120200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16817,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16818,0 +text (MLText +uid 16819,0 +va (VaSet +font "Verdana,8,0" +) +xt "59000,120600,83400,121600" +st "updatePeriodBitNb = updatePeriodBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*216 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "281750,154000,289000,154000" +pts [ +"281750,154000" +"289000,154000" +] +) +start &194 +end &13 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,152600,289700,154000" +st "outX" +blo "286000,153800" +tm "WireNameMgr" +) +) +on &14 +) +*217 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "281750,117000,289000,117000" +pts [ +"281750,117000" +"289000,117000" +] +) +start &186 +end &15 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Verdana,12,0" +) +xt "286000,115600,289600,117000" +st "outY" +blo "286000,116800" +tm "WireNameMgr" +) +) +on &16 +) +*218 (Wire +uid 354,0 +optionalChildren [ +*219 (BdJunction +uid 9152,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9153,0 +va (VaSet +vasetType 1 +) +xt "152600,155600,153400,156400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 355,0 +va (VaSet +vasetType 3 +) +xt "153000,156000,181000,176000" +pts [ +"181000,176000" +"181000,169000" +"153000,169000" +"153000,156000" +"160250,156000" +] +) +start *220 (BdJunction +uid 564,0 +ps "OnConnectorStrategy" +shape (Circle +uid 565,0 +va (VaSet +vasetType 1 +) +xt "180600,175600,181400,176400" +radius 400 +) +) +end &102 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,154600,161600,156000" +st "newPolynom" +blo "152000,155800" +tm "WireNameMgr" +) +) +on &18 +) +*221 (Wire +uid 360,0 +optionalChildren [ +&220 +*222 (BdJunction +uid 9244,0 +ps "OnConnectorStrategy" +shape (Circle +uid 9245,0 +va (VaSet +vasetType 1 +) +xt "204600,161600,205400,162400" +radius 400 +) +) +*223 (BdJunction +uid 16692,0 +ps "OnConnectorStrategy" +shape (Circle +uid 16693,0 +va (VaSet +vasetType 1 +) +xt "204600,175600,205400,176400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 361,0 +va (VaSet +vasetType 3 +) +xt "177750,162000,216250,176000" +pts [ +"177750,176000" +"205000,176000" +"205000,162000" +"216250,162000" +] +) +start &138 +end &161 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 363,0 +va (VaSet +font "Verdana,12,0" +) +xt "207000,160600,216600,162000" +st "newPolynom" +blo "207000,161800" +tm "WireNameMgr" +) +) +on &18 +) +*224 (Wire +uid 364,0 +shape (OrthoPolyLine +uid 365,0 +va (VaSet +vasetType 3 +) +xt "157000,182000,160250,182000" +pts [ +"157000,182000" +"160250,182000" +] +) +end &140 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 368,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 369,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,180600,160100,182000" +st "reset" +blo "156000,181800" +tm "WireNameMgr" +) +) +on &17 +) +*225 (Wire +uid 370,0 +shape (OrthoPolyLine +uid 371,0 +va (VaSet +vasetType 3 +) +xt "157000,180000,160250,180000" +pts [ +"157000,180000" +"160250,180000" +] +) +end &139 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 374,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 375,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,178600,159800,180000" +st "clock" +blo "156000,179800" +tm "WireNameMgr" +) +) +on &12 +) +*226 (Wire +uid 376,0 +shape (OrthoPolyLine +uid 377,0 +va (VaSet +vasetType 3 +) +xt "157000,162000,160250,162000" +pts [ +"157000,162000" +"160250,162000" +] +) +end &101 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 381,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,160600,160100,162000" +st "reset" +blo "156000,161800" +tm "WireNameMgr" +) +) +on &17 +) +*227 (Wire +uid 382,0 +shape (OrthoPolyLine +uid 383,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,154000,160250,154000" +pts [ +"147000,154000" +"160250,154000" +] +) +start &44 +end &103 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 384,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 385,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,152600,155800,154000" +st "samplesX" +blo "149000,153800" +tm "WireNameMgr" +) +) +on &21 +) +*228 (Wire +uid 386,0 +shape (OrthoPolyLine +uid 387,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,156000,184250,156000" +pts [ +"177750,156000" +"184250,156000" +] +) +start &105 +end &126 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 388,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 389,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,154600,184900,156000" +st "sampleX2" +blo "178000,155800" +tm "WireNameMgr" +) +) +on &23 +) +*229 (Wire +uid 390,0 +shape (OrthoPolyLine +uid 391,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,154000,184250,154000" +pts [ +"177750,154000" +"184250,154000" +] +) +start &104 +end &125 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 393,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,152600,184900,154000" +st "sampleX1" +blo "178000,153800" +tm "WireNameMgr" +) +) +on &22 +) +*230 (Wire +uid 394,0 +shape (OrthoPolyLine +uid 395,0 +va (VaSet +vasetType 3 +) +xt "157000,160000,160250,160000" +pts [ +"157000,160000" +"160250,160000" +] +) +end &100 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 399,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,158600,159800,160000" +st "clock" +blo "156000,159800" +tm "WireNameMgr" +) +) +on &12 +) +*231 (Wire +uid 400,0 +shape (OrthoPolyLine +uid 401,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,154000,216250,154000" +pts [ +"201750,154000" +"216250,154000" +] +) +start &129 +end &166 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,152600,206150,154000" +st "aX" +blo "203750,153800" +tm "WireNameMgr" +) +) +on &26 +) +*232 (Wire +uid 404,0 +shape (OrthoPolyLine +uid 405,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,160000,184250,160000" +pts [ +"177750,160000" +"184250,160000" +] +) +start &107 +end &128 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 406,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 407,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,158600,184900,160000" +st "sampleX4" +blo "178000,159800" +tm "WireNameMgr" +) +) +on &25 +) +*233 (Wire +uid 408,0 +shape (OrthoPolyLine +uid 409,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,158000,184250,158000" +pts [ +"177750,158000" +"184250,158000" +] +) +start &106 +end &127 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 410,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 411,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,156600,184900,158000" +st "sampleX3" +blo "178000,157800" +tm "WireNameMgr" +) +) +on &24 +) +*234 (Wire +uid 412,0 +shape (OrthoPolyLine +uid 413,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,160000,216250,160000" +pts [ +"201750,160000" +"216250,160000" +] +) +start &131 +end &162 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 414,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 415,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,158600,206150,160000" +st "dX" +blo "203750,159800" +tm "WireNameMgr" +) +) +on &29 +) +*235 (Wire +uid 416,0 +shape (OrthoPolyLine +uid 417,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,158000,216250,158000" +pts [ +"201750,158000" +"216250,158000" +] +) +start &132 +end &164 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 419,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,156600,205950,158000" +st "cX" +blo "203750,157800" +tm "WireNameMgr" +) +) +on &28 +) +*236 (Wire +uid 420,0 +shape (OrthoPolyLine +uid 421,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,156000,216250,156000" +pts [ +"201750,156000" +"216250,156000" +] +) +start &130 +end &165 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 422,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 423,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,154600,206150,156000" +st "bX" +blo "203750,155800" +tm "WireNameMgr" +) +) +on &27 +) +*237 (Wire +uid 424,0 +shape (OrthoPolyLine +uid 425,0 +va (VaSet +vasetType 3 +) +xt "213000,170000,216250,170000" +pts [ +"213000,170000" +"216250,170000" +] +) +end &160 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 429,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,168600,216100,170000" +st "reset" +blo "212000,169800" +tm "WireNameMgr" +) +) +on &17 +) +*238 (Wire +uid 430,0 +shape (OrthoPolyLine +uid 431,0 +va (VaSet +vasetType 3 +) +xt "213000,168000,216250,168000" +pts [ +"213000,168000" +"216250,168000" +] +) +end &159 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 435,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,166600,215800,168000" +st "clock" +blo "212000,167800" +tm "WireNameMgr" +) +) +on &12 +) +*239 (Wire +uid 497,0 +shape (OrthoPolyLine +uid 498,0 +va (VaSet +vasetType 3 +) +xt "261000,160000,264250,160000" +pts [ +"261000,160000" +"264250,160000" +] +) +end &195 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 503,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 504,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,158600,264100,160000" +st "reset" +blo "260000,159800" +tm "WireNameMgr" +) +) +on &17 +) +*240 (Wire +uid 505,0 +shape (OrthoPolyLine +uid 506,0 +va (VaSet +vasetType 3 +) +xt "261000,158000,264250,158000" +pts [ +"261000,158000" +"264250,158000" +] +) +end &192 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 511,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 512,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,156600,263800,158000" +st "clock" +blo "260000,157800" +tm "WireNameMgr" +) +) +on &12 +) +*241 (Wire +uid 532,0 +shape (OrthoPolyLine +uid 533,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,154000,240250,154000" +pts [ +"233750,154000" +"240250,154000" +] +) +start &163 +end &179 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 534,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 535,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,152600,240100,154000" +st "sampleX" +blo "234000,153800" +tm "WireNameMgr" +) +) +on &19 +) +*242 (Wire +uid 538,0 +shape (OrthoPolyLine +uid 539,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,154000,264250,154000" +pts [ +"257750,154000" +"264250,154000" +] +) +start &178 +end &193 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 541,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,152600,265400,154000" +st "unsignedX" +blo "258000,153800" +tm "WireNameMgr" +) +) +on &20 +) +*243 (Wire +uid 767,0 +shape (OrthoPolyLine +uid 768,0 +va (VaSet +vasetType 3 +) +xt "205000,125000,216250,162000" +pts [ +"205000,162000" +"205000,125000" +"216250,125000" +] +) +start &222 +end &148 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 772,0 +va (VaSet +font "Verdana,12,0" +) +xt "205000,123600,214600,125000" +st "newPolynom" +blo "205000,124800" +tm "WireNameMgr" +) +) +on &18 +) +*244 (Wire +uid 775,0 +shape (OrthoPolyLine +uid 776,0 +va (VaSet +vasetType 3 +) +xt "153000,119000,160250,156000" +pts [ +"153000,156000" +"153000,119000" +"160250,119000" +] +) +start &219 +end &90 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 777,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 778,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,117600,161600,119000" +st "newPolynom" +blo "152000,118800" +tm "WireNameMgr" +) +) +on &18 +) +*245 (Wire +uid 779,0 +shape (OrthoPolyLine +uid 780,0 +va (VaSet +vasetType 3 +) +xt "157000,125000,160250,125000" +pts [ +"157000,125000" +"160250,125000" +] +) +end &89 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 783,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 784,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,123600,160100,125000" +st "reset" +blo "156000,124800" +tm "WireNameMgr" +) +) +on &17 +) +*246 (Wire +uid 785,0 +shape (OrthoPolyLine +uid 786,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,117000,184250,117000" +pts [ +"177750,117000" +"184250,117000" +] +) +start &92 +end &112 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 787,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 788,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,115600,184800,117000" +st "sampleY1" +blo "178000,116800" +tm "WireNameMgr" +) +) +on &31 +) +*247 (Wire +uid 789,0 +shape (OrthoPolyLine +uid 790,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,119000,184250,119000" +pts [ +"177750,119000" +"184250,119000" +] +) +start &93 +end &113 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 791,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 792,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,117600,184800,119000" +st "sampleY2" +blo "178000,118800" +tm "WireNameMgr" +) +) +on &32 +) +*248 (Wire +uid 793,0 +shape (OrthoPolyLine +uid 794,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,117000,160250,117000" +pts [ +"147000,117000" +"160250,117000" +] +) +start &49 +end &91 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 797,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 798,0 +va (VaSet +font "Verdana,12,0" +) +xt "148000,115600,154700,117000" +st "samplesY" +blo "148000,116800" +tm "WireNameMgr" +) +) +on &30 +) +*249 (Wire +uid 799,0 +shape (OrthoPolyLine +uid 800,0 +va (VaSet +vasetType 3 +) +xt "157000,123000,160250,123000" +pts [ +"157000,123000" +"160250,123000" +] +) +end &88 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 803,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 804,0 +va (VaSet +font "Verdana,12,0" +) +xt "156000,121600,159800,123000" +st "clock" +blo "156000,122800" +tm "WireNameMgr" +) +) +on &12 +) +*250 (Wire +uid 805,0 +shape (OrthoPolyLine +uid 806,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,123000,216250,123000" +pts [ +"201750,123000" +"216250,123000" +] +) +start &118 +end &149 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 808,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,121600,206050,123000" +st "dY" +blo "203750,122800" +tm "WireNameMgr" +) +) +on &38 +) +*251 (Wire +uid 809,0 +shape (OrthoPolyLine +uid 810,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,121000,184250,121000" +pts [ +"177750,121000" +"184250,121000" +] +) +start &94 +end &114 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 811,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 812,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,119600,184800,121000" +st "sampleY3" +blo "178000,120800" +tm "WireNameMgr" +) +) +on &33 +) +*252 (Wire +uid 813,0 +shape (OrthoPolyLine +uid 814,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177750,123000,184250,123000" +pts [ +"177750,123000" +"184250,123000" +] +) +start &95 +end &115 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 816,0 +va (VaSet +font "Verdana,12,0" +) +xt "178000,121600,184800,123000" +st "sampleY4" +blo "178000,122800" +tm "WireNameMgr" +) +) +on &34 +) +*253 (Wire +uid 817,0 +shape (OrthoPolyLine +uid 818,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,117000,216250,117000" +pts [ +"201750,117000" +"216250,117000" +] +) +start &116 +end &153 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 820,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,115600,206050,117000" +st "aY" +blo "203750,116800" +tm "WireNameMgr" +) +) +on &35 +) +*254 (Wire +uid 821,0 +shape (OrthoPolyLine +uid 822,0 +va (VaSet +vasetType 3 +) +xt "213000,133000,216250,133000" +pts [ +"213000,133000" +"216250,133000" +] +) +end &147 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 825,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 826,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,131600,216100,133000" +st "reset" +blo "212000,132800" +tm "WireNameMgr" +) +) +on &17 +) +*255 (Wire +uid 827,0 +shape (OrthoPolyLine +uid 828,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,119000,216250,119000" +pts [ +"201750,119000" +"216250,119000" +] +) +start &117 +end &152 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 829,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 830,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,117600,206050,119000" +st "bY" +blo "203750,118800" +tm "WireNameMgr" +) +) +on &36 +) +*256 (Wire +uid 831,0 +shape (OrthoPolyLine +uid 832,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "201750,121000,216250,121000" +pts [ +"201750,121000" +"216250,121000" +] +) +start &119 +end &151 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 833,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 834,0 +va (VaSet +font "Verdana,12,0" +) +xt "203750,119600,205850,121000" +st "cY" +blo "203750,120800" +tm "WireNameMgr" +) +) +on &37 +) +*257 (Wire +uid 835,0 +shape (OrthoPolyLine +uid 836,0 +va (VaSet +vasetType 3 +) +xt "261000,123000,264250,123000" +pts [ +"261000,123000" +"264250,123000" +] +) +end &187 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 840,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,121600,264100,123000" +st "reset" +blo "260000,122800" +tm "WireNameMgr" +) +) +on &17 +) +*258 (Wire +uid 841,0 +shape (OrthoPolyLine +uid 842,0 +va (VaSet +vasetType 3 +) +xt "213000,131000,216250,131000" +pts [ +"213000,131000" +"216250,131000" +] +) +end &146 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 845,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 846,0 +va (VaSet +font "Verdana,12,0" +) +xt "212000,129600,215800,131000" +st "clock" +blo "212000,130800" +tm "WireNameMgr" +) +) +on &12 +) +*259 (Wire +uid 847,0 +shape (OrthoPolyLine +uid 848,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "233750,117000,240250,117000" +pts [ +"233750,117000" +"240250,117000" +] +) +start &150 +end &173 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 849,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 850,0 +va (VaSet +font "Verdana,12,0" +) +xt "234000,115600,240000,117000" +st "sampleY" +blo "234000,116800" +tm "WireNameMgr" +) +) +on &39 +) +*260 (Wire +uid 851,0 +shape (OrthoPolyLine +uid 852,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "257750,117000,264250,117000" +pts [ +"257750,117000" +"264250,117000" +] +) +start &172 +end &185 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 853,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 854,0 +va (VaSet +font "Verdana,12,0" +) +xt "258000,115600,265300,117000" +st "unsignedY" +blo "258000,116800" +tm "WireNameMgr" +) +) +on &40 +) +*261 (Wire +uid 855,0 +shape (OrthoPolyLine +uid 856,0 +va (VaSet +vasetType 3 +) +xt "261000,121000,264250,121000" +pts [ +"261000,121000" +"264250,121000" +] +) +end &184 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 859,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 860,0 +va (VaSet +font "Verdana,12,0" +) +xt "260000,119600,263800,121000" +st "clock" +blo "260000,120800" +tm "WireNameMgr" +) +) +on &12 +) +*262 (Wire +uid 1995,0 +shape (OrthoPolyLine +uid 1996,0 +va (VaSet +vasetType 3 +) +xt "153000,176000,160250,176000" +pts [ +"153000,176000" +"160250,176000" +] +) +end &141 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2001,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2002,0 +va (VaSet +font "Verdana,12,0" +) +xt "148000,174600,161900,176000" +st "interpolationEnable" +blo "148000,175800" +tm "WireNameMgr" +) +) +on &43 +) +*263 (Wire +uid 3146,0 +shape (OrthoPolyLine +uid 3147,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123000,154000,131000,154000" +pts [ +"123000,154000" +"131000,154000" +] +) +start &201 +end &44 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3150,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3151,0 +va (VaSet +font "Verdana,12,0" +) +xt "124000,152600,128600,154000" +st "memX" +blo "124000,153800" +tm "WireNameMgr" +) +) +on &48 +) +*264 (Wire +uid 3432,0 +shape (OrthoPolyLine +uid 3433,0 +va (VaSet +vasetType 3 +) +xt "209000,166000,216250,166000" +pts [ +"209000,166000" +"216250,166000" +] +) +end &167 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3439,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,164600,217900,166000" +st "interpolationEnable" +blo "204000,165800" +tm "WireNameMgr" +) +) +on &43 +) +*265 (Wire +uid 3485,0 +shape (OrthoPolyLine +uid 3486,0 +va (VaSet +vasetType 3 +) +xt "209000,129000,216250,129000" +pts [ +"209000,129000" +"216250,129000" +] +) +end &154 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3491,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3492,0 +va (VaSet +font "Verdana,12,0" +) +xt "204000,127600,217900,129000" +st "interpolationEnable" +blo "204000,128800" +tm "WireNameMgr" +) +) +on &43 +) +*266 (Wire +uid 3907,0 +shape (OrthoPolyLine +uid 3908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123000,117000,131000,117000" +pts [ +"123000,117000" +"131000,117000" +] +) +start &205 +end &49 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3912,0 +va (VaSet +font "Verdana,12,0" +) +xt "125750,115600,130250,117000" +st "memY" +blo "125750,116800" +tm "WireNameMgr" +) +) +on &53 +) +*267 (Wire +uid 4770,0 +shape (OrthoPolyLine +uid 4771,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91750,150000,98250,150000" +pts [ +"91750,150000" +"98250,150000" +] +) +start &73 +end &82 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4775,0 +va (VaSet +font "Verdana,12,0" +) +xt "92000,148600,96700,150000" +st "phase" +blo "92000,149800" +tm "WireNameMgr" +) +) +on &58 +) +*268 (Wire +uid 4782,0 +shape (OrthoPolyLine +uid 4783,0 +va (VaSet +vasetType 3 +) +xt "71000,158000,74250,158000" +pts [ +"71000,158000" +"74250,158000" +] +) +end &74 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4786,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4787,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,156600,75100,158000" +st "reset" +blo "71000,157800" +tm "WireNameMgr" +) +) +on &17 +) +*269 (Wire +uid 4788,0 +shape (OrthoPolyLine +uid 4789,0 +va (VaSet +vasetType 3 +) +xt "71000,156000,74250,156000" +pts [ +"71000,156000" +"74250,156000" +] +) +end &72 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4793,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,154600,74800,156000" +st "clock" +blo "71000,155800" +tm "WireNameMgr" +) +) +on &12 +) +*270 (Wire +uid 4794,0 +shape (OrthoPolyLine +uid 4795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71000,144000,74250,150000" +pts [ +"74250,150000" +"71000,150000" +"71000,144000" +] +) +start &75 +end &54 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4799,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,148600,74600,150000" +st "step" +blo "71000,149800" +tm "WireNameMgr" +) +) +on &59 +) +*271 (Wire +uid 4860,0 +shape (OrthoPolyLine +uid 4861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "115750,115000,131000,150000" +pts [ +"115750,150000" +"119000,150000" +"119000,115000" +"131000,115000" +] +) +start &81 +end &49 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4864,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4865,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,148600,121150,150000" +st "sine" +blo "117750,149800" +tm "WireNameMgr" +) +) +on &60 +) +*272 (Wire +uid 4866,0 +shape (OrthoPolyLine +uid 4867,0 +va (VaSet +vasetType 3 +) +xt "67000,154000,74250,154000" +pts [ +"67000,154000" +"74250,154000" +] +) +end &76 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4873,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,152600,76900,154000" +st "interpolationEnable" +blo "63000,153800" +tm "WireNameMgr" +) +) +on &43 +) +*273 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "91000,109000,99000,109000" +pts [ +"91000,109000" +"99000,109000" +] +) +start &61 +end &62 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,107600,97900,109000" +st "selSinCos" +blo "91000,108800" +tm "WireNameMgr" +) +) +on &68 +) +*274 (Wire +uid 5253,0 +shape (OrthoPolyLine +uid 5254,0 +va (VaSet +vasetType 3 +) +xt "115000,107000,123000,107000" +pts [ +"115000,107000" +"123000,107000" +] +) +start &62 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5259,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5260,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,105600,131650,107000" +st "interpolationEnable" +blo "117750,106800" +tm "WireNameMgr" +) +) +on &43 +) +*275 (Wire +uid 5263,0 +shape (OrthoPolyLine +uid 5264,0 +va (VaSet +vasetType 3 +) +xt "75750,107000,99000,107000" +pts [ +"75750,107000" +"99000,107000" +] +) +start &208 +end &62 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5269,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5270,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,105600,100200,107000" +st "interpolationEn" +blo "89000,106800" +tm "WireNameMgr" +) +) +on &66 +) +*276 (Wire +uid 5938,0 +shape (OrthoPolyLine +uid 5939,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "115750,152000,131000,152000" +pts [ +"115750,152000" +"131000,152000" +] +) +start &83 +end &44 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5942,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5943,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,150600,122550,152000" +st "cosine" +blo "117750,151800" +tm "WireNameMgr" +) +) +on &67 +) +*277 (Wire +uid 8248,0 +optionalChildren [ +*278 (BdJunction +uid 8258,0 +ps "OnConnectorStrategy" +shape (Circle +uid 8259,0 +va (VaSet +vasetType 1 +) +xt "177600,124600,178400,125400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 8249,0 +va (VaSet +vasetType 3 +) +xt "115000,111000,184250,162000" +pts [ +"184250,162000" +"178000,162000" +"178000,111000" +"115000,111000" +] +) +start &133 +end &62 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8253,0 +va (VaSet +font "Verdana,12,0" +) +xt "117000,109600,129400,111000" +st "interpolateLinear" +blo "117000,110800" +tm "WireNameMgr" +) +) +on &69 +) +*279 (Wire +uid 8254,0 +shape (OrthoPolyLine +uid 8255,0 +va (VaSet +vasetType 3 +) +xt "178000,125000,184250,125000" +pts [ +"184250,125000" +"178000,125000" +] +) +start &120 +end &278 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8256,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8257,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "168250,123600,180650,125000" +st "interpolateLinear" +blo "168250,124800" +tm "WireNameMgr" +) +) +on &69 +) +*280 (Wire +uid 9246,0 +shape (OrthoPolyLine +uid 9247,0 +va (VaSet +vasetType 3 +) +xt "139000,121000,139000,125000" +pts [ +"139000,125000" +"139000,121000" +] +) +end &49 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9253,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,123600,145900,125000" +st "selSinCos" +blo "139000,124800" +tm "WireNameMgr" +) +) +on &68 +) +*281 (Wire +uid 9254,0 +shape (OrthoPolyLine +uid 9255,0 +va (VaSet +vasetType 3 +) +xt "139000,158000,139000,162000" +pts [ +"139000,162000" +"139000,158000" +] +) +end &44 +sat 16 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 9260,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9261,0 +va (VaSet +font "Verdana,12,0" +) +xt "139000,160600,145900,162000" +st "selSinCos" +blo "139000,161800" +tm "WireNameMgr" +) +) +on &68 +) +*282 (Wire +uid 15564,0 +shape (OrthoPolyLine +uid 15565,0 +va (VaSet +vasetType 3 +) +xt "51000,113000,58250,113000" +pts [ +"51000,113000" +"58250,113000" +] +) +start &199 +end &209 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15568,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15569,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,111600,56800,113000" +st "clock" +blo "53000,112800" +tm "WireNameMgr" +) +) +on &12 +) +*283 (Wire +uid 15576,0 +shape (OrthoPolyLine +uid 15577,0 +va (VaSet +vasetType 3 +) +xt "91000,111000,99000,111000" +pts [ +"91000,111000" +"99000,111000" +] +) +start &200 +end &62 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15580,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15581,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,109600,101300,111000" +st "interpolateLin" +blo "91000,110800" +tm "WireNameMgr" +) +) +on &70 +) +*284 (Wire +uid 15600,0 +shape (OrthoPolyLine +uid 15601,0 +va (VaSet +vasetType 3 +) +xt "51000,115000,58250,115000" +pts [ +"51000,115000" +"58250,115000" +] +) +start &202 +end &210 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15604,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15605,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,113600,57100,115000" +st "reset" +blo "53000,114800" +tm "WireNameMgr" +) +) +on &17 +) +*285 (Wire +uid 15612,0 +shape (OrthoPolyLine +uid 15613,0 +va (VaSet +vasetType 3 +) +xt "51000,107000,58250,107000" +pts [ +"51000,107000" +"58250,107000" +] +) +start &203 +end &212 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15616,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15617,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,105600,53900,107000" +st "run" +blo "51000,106800" +tm "WireNameMgr" +) +) +on &41 +) +*286 (Wire +uid 15638,0 +shape (OrthoPolyLine +uid 15639,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51000,109000,58250,109000" +pts [ +"51000,109000" +"58250,109000" +] +) +start &204 +end &211 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 15642,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 15643,0 +va (VaSet +font "Verdana,12,0" +) +xt "49000,107600,59100,109000" +st "updatePeriod" +blo "49000,108800" +tm "WireNameMgr" +) +) +on &42 +) +*287 (Wire +uid 16686,0 +shape (OrthoPolyLine +uid 16687,0 +va (VaSet +vasetType 3 +) +xt "205000,176000,209000,176000" +pts [ +"205000,176000" +"209000,176000" +"209000,176000" +] +) +start &223 +end &206 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16690,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16691,0 +va (VaSet +font "Verdana,12,0" +) +xt "200000,174600,209600,176000" +st "newPolynom" +blo "200000,175800" +tm "WireNameMgr" +) +) +on &18 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *288 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*289 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,99000,6900,100000" +st "Package List" +blo "0,99800" +) +*290 (MLText +uid 44,0 +va (VaSet +) +xt "0,100000,17500,103600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*291 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*292 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*293 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*294 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*295 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*296 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*297 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4318,94646,299797,259879" +cachedDiagramExtent "0,0,295700,198000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "ipp://ippsion.hevs.ch/ipp/PREA309_HPLJ3005DN" +toPrinter 1 +colour 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,99000" +lastUid 17304,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*298 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*299 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*300 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*301 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*302 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*303 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*304 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*305 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*306 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*307 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*308 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*309 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*310 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*311 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*312 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*313 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*314 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*315 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*316 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*317 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*318 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,156200,7000,157200" +st "Declarations" +blo "0,157000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,157200,3400,158200" +st "Ports:" +blo "0,158000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,167000,4800,168000" +st "Pre User:" +blo "0,167800" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,168000,36100,174000" +st "constant coeffBitNb : positive := signalBitNb+3; +constant sampleCountBitNb : positive := 8; +constant patternAddressBitNb : positive := 8; +-- sinewave generator +constant tableAddressBitNb : positive := 3; +constant phaseBitNb : positive := sampleCountBitNb + tableAddressBitNb + 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,172800,9000,173800" +st "Diagram Signals:" +blo "0,173600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,156200,6000,157200" +st "Post User:" +blo "0,157000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,156200,0,156200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 74,0 +usingSuid 1 +emptyRow *319 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*320 (RefLabelRowHdr +) +*321 (TitleRowHdr +) +*322 (FilterRowHdr +) +*323 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*324 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*325 (GroupColHdr +tm "GroupColHdrMgr" +) +*326 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*327 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*328 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*329 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*330 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*331 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*332 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 10635,0 +) +*333 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 4,0 +) +) +uid 10639,0 +) +*334 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 10641,0 +) +*335 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 10645,0 +) +*336 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 10,0 +) +) +uid 10651,0 +) +*337 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 25 +suid 11,0 +) +) +uid 10653,0 +) +*338 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedX" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 39 +suid 12,0 +) +) +uid 10655,0 +) +*339 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesX" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 35 +suid 13,0 +) +) +uid 10657,0 +) +*340 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 26 +suid 14,0 +) +) +uid 10659,0 +) +*341 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 27 +suid 15,0 +) +) +uid 10661,0 +) +*342 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 28 +suid 16,0 +) +) +uid 10663,0 +) +*343 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleX4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 29 +suid 17,0 +) +) +uid 10665,0 +) +*344 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 12 +suid 18,0 +) +) +uid 10667,0 +) +*345 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 14 +suid 19,0 +) +) +uid 10669,0 +) +*346 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 16 +suid 20,0 +) +) +uid 10671,0 +) +*347 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dX" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 19 +suid 21,0 +) +) +uid 10673,0 +) +*348 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "samplesY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 36 +suid 22,0 +) +) +uid 10675,0 +) +*349 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY1" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 31 +suid 23,0 +) +) +uid 10677,0 +) +*350 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY2" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 32 +suid 24,0 +) +) +uid 10679,0 +) +*351 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY3" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 33 +suid 25,0 +) +) +uid 10681,0 +) +*352 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY4" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 34 +suid 26,0 +) +) +uid 10683,0 +) +*353 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 13 +suid 27,0 +) +) +uid 10685,0 +) +*354 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "bY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 15 +suid 28,0 +) +) +uid 10687,0 +) +*355 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 17 +suid 29,0 +) +) +uid 10689,0 +) +*356 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dY" +t "signed" +b "(coeffBitNb-1 DOWNTO 0)" +o 20 +suid 30,0 +) +) +uid 10691,0 +) +*357 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleY" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 30 +suid 31,0 +) +) +uid 10693,0 +) +*358 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "unsignedY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 40 +suid 32,0 +) +) +uid 10695,0 +) +*359 (LeafLogPort +port (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 38,0 +) +) +uid 10707,0 +) +*360 (LeafLogPort +port (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 42,0 +) +) +uid 10715,0 +) +*361 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEnable" +t "std_ulogic" +o 23 +suid 43,0 +) +) +uid 10717,0 +) +*362 (LeafLogPort +port (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 48,0 +) +) +uid 10727,0 +) +*363 (LeafLogPort +port (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 53,0 +) +) +uid 10737,0 +) +*364 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "phase" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 24 +suid 57,0 +) +) +uid 10745,0 +) +*365 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +o 38 +suid 58,0 +) +) +uid 10747,0 +) +*366 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 37 +suid 59,0 +) +) +uid 10749,0 +) +*367 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolationEn" +t "std_ulogic" +o 22 +suid 60,0 +) +) +uid 10751,0 +) +*368 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cosine" +t "signed" +b "(signalBitNb-1 DOWNTO 0)" +o 18 +suid 61,0 +) +) +uid 10753,0 +) +*369 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 62,0 +) +) +uid 10755,0 +) +*370 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 21 +suid 69,0 +) +) +uid 10769,0 +) +*371 (LeafLogPort +port (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 70,0 +) +) +uid 10771,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*372 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *373 (MRCItem +litem &319 +pos 40 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*374 (MRCItem +litem &320 +pos 0 +dimension 20 +uid 10790,0 +) +*375 (MRCItem +litem &321 +pos 1 +dimension 23 +uid 10791,0 +) +*376 (MRCItem +litem &322 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*377 (MRCItem +litem &332 +pos 2 +dimension 20 +uid 10636,0 +) +*378 (MRCItem +litem &333 +pos 0 +dimension 20 +uid 10640,0 +) +*379 (MRCItem +litem &334 +pos 4 +dimension 20 +uid 10642,0 +) +*380 (MRCItem +litem &335 +pos 3 +dimension 20 +uid 10646,0 +) +*381 (MRCItem +litem &336 +pos 10 +dimension 20 +uid 10652,0 +) +*382 (MRCItem +litem &337 +pos 11 +dimension 20 +uid 10654,0 +) +*383 (MRCItem +litem &338 +pos 12 +dimension 20 +uid 10656,0 +) +*384 (MRCItem +litem &339 +pos 13 +dimension 20 +uid 10658,0 +) +*385 (MRCItem +litem &340 +pos 14 +dimension 20 +uid 10660,0 +) +*386 (MRCItem +litem &341 +pos 15 +dimension 20 +uid 10662,0 +) +*387 (MRCItem +litem &342 +pos 16 +dimension 20 +uid 10664,0 +) +*388 (MRCItem +litem &343 +pos 17 +dimension 20 +uid 10666,0 +) +*389 (MRCItem +litem &344 +pos 18 +dimension 20 +uid 10668,0 +) +*390 (MRCItem +litem &345 +pos 19 +dimension 20 +uid 10670,0 +) +*391 (MRCItem +litem &346 +pos 20 +dimension 20 +uid 10672,0 +) +*392 (MRCItem +litem &347 +pos 21 +dimension 20 +uid 10674,0 +) +*393 (MRCItem +litem &348 +pos 22 +dimension 20 +uid 10676,0 +) +*394 (MRCItem +litem &349 +pos 23 +dimension 20 +uid 10678,0 +) +*395 (MRCItem +litem &350 +pos 24 +dimension 20 +uid 10680,0 +) +*396 (MRCItem +litem &351 +pos 25 +dimension 20 +uid 10682,0 +) +*397 (MRCItem +litem &352 +pos 26 +dimension 20 +uid 10684,0 +) +*398 (MRCItem +litem &353 +pos 27 +dimension 20 +uid 10686,0 +) +*399 (MRCItem +litem &354 +pos 28 +dimension 20 +uid 10688,0 +) +*400 (MRCItem +litem &355 +pos 29 +dimension 20 +uid 10690,0 +) +*401 (MRCItem +litem &356 +pos 30 +dimension 20 +uid 10692,0 +) +*402 (MRCItem +litem &357 +pos 31 +dimension 20 +uid 10694,0 +) +*403 (MRCItem +litem &358 +pos 32 +dimension 20 +uid 10696,0 +) +*404 (MRCItem +litem &359 +pos 1 +dimension 20 +uid 10708,0 +) +*405 (MRCItem +litem &360 +pos 7 +dimension 20 +uid 10716,0 +) +*406 (MRCItem +litem &361 +pos 33 +dimension 20 +uid 10718,0 +) +*407 (MRCItem +litem &362 +pos 8 +dimension 20 +uid 10728,0 +) +*408 (MRCItem +litem &363 +pos 9 +dimension 20 +uid 10738,0 +) +*409 (MRCItem +litem &364 +pos 34 +dimension 20 +uid 10746,0 +) +*410 (MRCItem +litem &365 +pos 35 +dimension 20 +uid 10748,0 +) +*411 (MRCItem +litem &366 +pos 36 +dimension 20 +uid 10750,0 +) +*412 (MRCItem +litem &367 +pos 37 +dimension 20 +uid 10752,0 +) +*413 (MRCItem +litem &368 +pos 38 +dimension 20 +uid 10754,0 +) +*414 (MRCItem +litem &369 +pos 5 +dimension 20 +uid 10756,0 +) +*415 (MRCItem +litem &370 +pos 39 +dimension 20 +uid 10770,0 +) +*416 (MRCItem +litem &371 +pos 6 +dimension 20 +uid 10772,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*417 (MRCItem +litem &323 +pos 0 +dimension 20 +uid 10794,0 +) +*418 (MRCItem +litem &325 +pos 1 +dimension 50 +uid 10795,0 +) +*419 (MRCItem +litem &326 +pos 2 +dimension 100 +uid 10796,0 +) +*420 (MRCItem +litem &327 +pos 3 +dimension 50 +uid 10797,0 +) +*421 (MRCItem +litem &328 +pos 4 +dimension 100 +uid 10798,0 +) +*422 (MRCItem +litem &329 +pos 5 +dimension 100 +uid 10799,0 +) +*423 (MRCItem +litem &330 +pos 6 +dimension 50 +uid 10800,0 +) +*424 (MRCItem +litem &331 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *425 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*426 (RefLabelRowHdr +) +*427 (TitleRowHdr +) +*428 (FilterRowHdr +) +*429 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*430 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*431 (GroupColHdr +tm "GroupColHdrMgr" +) +*432 (NameColHdr +tm "GenericNameColHdrMgr" +) +*433 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*434 (InitColHdr +tm "GenericValueColHdrMgr" +) +*435 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*436 (EolColHdr +tm "GenericEolColHdrMgr" +) +*437 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 15314,0 +) +*438 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 15897,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10815,0 +optionalChildren [ +*439 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *440 (MRCItem +litem &425 +pos 2 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*441 (MRCItem +litem &426 +pos 0 +dimension 20 +uid 10818,0 +) +*442 (MRCItem +litem &427 +pos 1 +dimension 23 +uid 10819,0 +) +*443 (MRCItem +litem &428 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*444 (MRCItem +litem &437 +pos 0 +dimension 20 +uid 15313,0 +) +*445 (MRCItem +litem &438 +pos 1 +dimension 20 +uid 15896,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*446 (MRCItem +litem &429 +pos 0 +dimension 20 +uid 10822,0 +) +*447 (MRCItem +litem &431 +pos 1 +dimension 50 +uid 10823,0 +) +*448 (MRCItem +litem &432 +pos 2 +dimension 100 +uid 10824,0 +) +*449 (MRCItem +litem &433 +pos 3 +dimension 100 +uid 10825,0 +) +*450 (MRCItem +litem &434 +pos 4 +dimension 50 +uid 10826,0 +) +*451 (MRCItem +litem &435 +pos 5 +dimension 50 +uid 10827,0 +) +*452 (MRCItem +litem &436 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/symbol.sb new file mode 100644 index 0000000..0f4a02e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@operator/symbol.sb @@ -0,0 +1,2066 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2019,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 203,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +uid 204,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 206,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 209,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 210,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 211,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +uid 539,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +uid 541,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2016,0 +) +) +uid 543,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 2018,0 +) +) +uid 653,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +uid 725,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 132,0 +optionalChildren [ +*27 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 135,0 +) +*28 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 137,0 +) +*29 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*30 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 159,0 +) +*31 (MRCItem +litem &3 +pos 5 +dimension 20 +uid 160,0 +) +*32 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 162,0 +) +*33 (MRCItem +litem &5 +pos 1 +dimension 20 +uid 165,0 +) +*34 (MRCItem +litem &6 +pos 4 +dimension 20 +uid 166,0 +) +*35 (MRCItem +litem &7 +pos 3 +dimension 20 +uid 167,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 540,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 542,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 544,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 654,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 724,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*41 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 141,0 +) +*42 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 145,0 +) +*43 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 147,0 +) +*44 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 149,0 +) +*45 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 151,0 +) +*46 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 153,0 +) +*47 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 155,0 +) +*48 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +*61 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 197,0 +) +*62 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 593,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 218,0 +optionalChildren [ +*63 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *64 (MRCItem +litem &49 +pos 2 +dimension 20 +) +uid 172,0 +optionalChildren [ +*65 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 175,0 +) +*66 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 177,0 +) +*67 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*68 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 199,0 +) +*69 (MRCItem +litem &62 +pos 1 +dimension 20 +uid 594,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*70 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 181,0 +) +*71 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 185,0 +) +*72 (MRCItem +litem &56 +pos 2 +dimension 100 +uid 187,0 +) +*73 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 189,0 +) +*74 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 191,0 +) +*75 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 193,0 +) +*76 (MRCItem +litem &60 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@operator/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@operator/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@operator" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriphOperator" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphOperator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:21" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerPeriphOperator" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@operator/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriphOperator/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:21" +) +(vvPair +variable "unit" +value "beamerPeriphOperator" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*77 (SymbolBody +uid 8,0 +optionalChildren [ +*78 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,26625,42000,27375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "43000,26400,45500,27300" +st "clock" +blo "43000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,21000,10300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*79 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,12625,42000,13375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "43000,12400,44500,13300" +st "run" +blo "43000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8500,21000,9400" +st "run : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "run" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*80 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,12625,58750,13375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "55001,12400,57001,13300" +st "outX" +ju 2 +blo "57001,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7600,21000,8500" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*81 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,28625,42000,29375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "courier,9,0" +) +xt "43000,28400,45500,29300" +st "reset" +blo "43000,29100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,21000,11200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*82 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,14625,58750,15375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "55001,14400,57001,15300" +st "outY" +ju 2 +blo "57001,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,21000,12100" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*83 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,18625,58750,19375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "52501,18400,57001,19300" +st "selSinCos" +ju 2 +blo "57001,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,21000,13000" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 6 +suid 13,0 +) +) +) +*84 (CptPort +uid 524,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 525,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,14625,42000,15375" +) +tg (CPTG +uid 526,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 527,0 +va (VaSet +font "courier,9,0" +) +xt "43000,14400,50500,15300" +st "interpolateLin" +blo "43000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 528,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,21000,13900" +st "interpolateLin : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +) +*85 (CptPort +uid 529,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 530,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,16625,42000,17375" +) +tg (CPTG +uid 531,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 532,0 +va (VaSet +font "courier,9,0" +) +xt "43000,16400,49500,17300" +st "updatePeriod" +blo "43000,17100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 533,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,35000,14800" +st "updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +) +*86 (CptPort +uid 534,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 535,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,20625,42000,21375" +) +tg (CPTG +uid 536,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 537,0 +va (VaSet +font "courier,9,0" +) +xt "43000,20400,45000,21300" +st "memX" +blo "43000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 538,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,36500,15700" +st "memX : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2016,0 +) +) +) +*87 (CptPort +uid 648,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 649,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,22625,42000,23375" +) +tg (CPTG +uid 650,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 651,0 +va (VaSet +font "courier,9,0" +) +xt "43000,22400,45000,23300" +st "memY" +blo "43000,23100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 652,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,36500,16600" +st "memY : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 10 +suid 2018,0 +) +) +) +*88 (CptPort +uid 726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 727,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,18625,42000,19375" +) +tg (CPTG +uid 728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 729,0 +va (VaSet +font "courier,9,0" +) +xt "43000,18400,48500,19300" +st "newPolynom" +blo "43000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 730,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16600,20000,17500" +st "newPolynom : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,9000,58000,31000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "42600,30800,49100,31700" +st "SystemOnChip" +blo "42600,31500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "42600,31700,53100,32600" +st "beamerPeriphOperator" +blo "42600,32400" +) +) +gi *89 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "42000,34600,58000,38200" +st "Generic Declarations + +updatePeriodBitNb positive 16 +signalBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*90 (Grouping +uid 16,0 +optionalChildren [ +*91 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*96 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*98 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*99 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*100 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*101 (CommentGraphic +uid 591,0 +shape (PolyLine2D +pts [ +"42000,33000" +"58000,33000" +] +uid 592,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "42000,33000,58000,33000" +) +oxt "36000,32000,52000,32000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *102 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*104 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "26,33,1318,883" +viewArea "-1000,-1000,77329,50684" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *105 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *106 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,6500,6700" +st "Declarations" +blo "0,6500" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6700,3000,7600" +st "Ports:" +blo "0,7400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,17500,2500,18400" +st "User:" +blo "0,18200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7500,6700" +st "Internal User:" +blo "0,6500" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18400,2000,18400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 776,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/struct.bd new file mode 100644 index 0000000..71b9a91 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/struct.bd @@ -0,0 +1,9647 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I19" +duLibraryName "Beamer" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11639,0 +) +(Instance +name "I31" +duLibraryName "Beamer" +duName "blockRAMControl" +elements [ +] +mwi 0 +uid 11714,0 +) +(Instance +name "I2" +duLibraryName "Beamer" +duName "periphAddressDecoder" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 17547,0 +) +(Instance +name "I4" +duLibraryName "Beamer" +duName "periphControlReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 18007,0 +) +(Instance +name "I20" +duLibraryName "Beamer" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 18179,0 +) +(Instance +name "I30" +duLibraryName "Beamer" +duName "blockRAMAddressCounter" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 18212,0 +) +(Instance +name "I3" +duLibraryName "Beamer" +duName "periphSpeedReg" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +mwi 0 +uid 18249,0 +) +(Instance +name "I18" +duLibraryName "Beamer" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR\\ramYInit.txt\"" +) +] +mwi 0 +uid 19180,0 +) +(Instance +name "I17" +duLibraryName "Beamer" +duName "blockRAM" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR\\ramXInit.txt\"" +) +] +mwi 0 +uid 19217,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb3" +number "3" +) +(EmbeddedInstance +name "eb8" +number "8" +) +(EmbeddedInstance +name "eb9" +number "9" +) +(EmbeddedInstance +name "eb10" +number "10" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@registers\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@registers\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@registers" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriphRegisters" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphRegisters" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:02:17" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerPeriphRegisters" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@periph@registers\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerPeriphRegisters\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:02:17" +) +(vvPair +variable "unit" +value "beamerPeriphRegisters" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,197000,127000,198000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,197500,110200,197500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,193000,131000,194000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,193500,127200,193500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,195000,127000,196000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,195500,110200,195500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,195000,110000,196000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,195500,106200,195500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,194000,147000,198000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,194200,141300,195400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "131000,193000,147000,194000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "131200,193500,131200,193500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,193000,127000,195000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "111350,193400,121650,194600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,196000,110000,197000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,196500,106200,196500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,197000,110000,198000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,197500,106200,197500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,196000,127000,197000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,196500,110200,196500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "106000,193000,147000,198000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 67,0 +shape (CompositeShape +uid 68,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 69,0 +sl 0 +ro 270 +xt "72000,53625,73500,54375" +) +(Line +uid 70,0 +sl 0 +ro 270 +xt "73500,54000,74000,54000" +pts [ +"73500,54000" +"74000,54000" +] +) +] +) +tg (WTG +uid 71,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 72,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "67200,53300,71000,54700" +st "clock" +ju 2 +blo "71000,54500" +tm "WireNameMgr" +) +) +) +*13 (Net +uid 79,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 80,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,102200,13200,103200" +st "clock : std_ulogic" +) +) +*14 (Net +uid 163,0 +decl (Decl +n "reset" +t "std_ulogic" +o 10 +suid 7,0 +) +declText (MLText +uid 164,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,108600,13200,109600" +st "reset : std_ulogic" +) +) +*15 (Net +uid 436,0 +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 10,0 +) +declText (MLText +uid 437,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,109400,14900,110400" +st "newPolynom : std_ulogic" +) +) +*16 (Net +uid 990,0 +decl (Decl +n "selControl" +t "std_ulogic" +o 24 +suid 33,0 +) +declText (MLText +uid 991,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,123400,16900,124400" +st "SIGNAL selControl : std_ulogic" +) +) +*17 (Net +uid 1055,0 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 25 +suid 35,0 +) +declText (MLText +uid 1056,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,124200,17100,125200" +st "SIGNAL selSpeed : std_ulogic" +) +) +*18 (Net +uid 1063,0 +decl (Decl +n "selX" +t "std_ulogic" +o 26 +suid 36,0 +) +declText (MLText +uid 1064,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,125000,16300,126000" +st "SIGNAL selX : std_ulogic" +) +) +*19 (Net +uid 1071,0 +decl (Decl +n "selY" +t "std_ulogic" +o 27 +suid 37,0 +) +declText (MLText +uid 1072,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,125800,16300,126800" +st "SIGNAL selY : std_ulogic" +) +) +*20 (Net +uid 1348,0 +decl (Decl +n "run" +t "std_ulogic" +o 7 +suid 38,0 +) +declText (MLText +uid 1349,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,106200,13100,107200" +st "run : std_ulogic" +) +) +*21 (Net +uid 1356,0 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 28 +suid 39,0 +) +declText (MLText +uid 1357,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,126600,17700,127600" +st "SIGNAL updatePattern : std_ulogic" +) +) +*22 (Net +uid 1470,0 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 23 +suid 40,0 +) +declText (MLText +uid 1471,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,122600,31800,123600" +st "SIGNAL patternSize : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*23 (Net +uid 1589,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 18 +suid 41,0 +) +declText (MLText +uid 1590,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,118600,30400,119600" +st "SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*24 (Net +uid 1776,0 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 42,0 +) +declText (MLText +uid 1777,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,107000,28400,108000" +st "updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 2776,0 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 13 +suid 44,0 +) +declText (MLText +uid 2777,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,114600,31400,115600" +st "SIGNAL addrX : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*26 (Net +uid 2850,0 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 15 +suid 45,0 +) +declText (MLText +uid 2851,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,116200,16700,117200" +st "SIGNAL cntIncrX : std_ulogic" +) +) +*27 (Net +uid 2852,0 +decl (Decl +n "memWrX" +t "std_ulogic" +o 21 +suid 46,0 +) +declText (MLText +uid 2853,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,121000,17800,122000" +st "SIGNAL memWrX : std_ulogic" +) +) +*28 (Net +uid 2854,0 +decl (Decl +n "memEnX" +t "std_ulogic" +o 19 +suid 47,0 +) +declText (MLText +uid 2855,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,119400,17700,120400" +st "SIGNAL memEnX : std_ulogic" +) +) +*29 (Net +uid 3152,0 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 48,0 +) +declText (MLText +uid 3153,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,104600,28500,105600" +st "memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*30 (Net +uid 3827,0 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 16 +suid 49,0 +) +declText (MLText +uid 3828,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,117000,16700,118000" +st "SIGNAL cntIncrY : std_ulogic" +) +) +*31 (Net +uid 3890,0 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 14 +suid 50,0 +) +declText (MLText +uid 3891,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,115400,31400,116400" +st "SIGNAL addrY : unsigned(patternAddressBitNb-1 DOWNTO 0)" +) +) +*32 (Net +uid 3892,0 +decl (Decl +n "memWrY" +t "std_ulogic" +o 22 +suid 51,0 +) +declText (MLText +uid 3893,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,121800,17800,122800" +st "SIGNAL memWrY : std_ulogic" +) +) +*33 (Net +uid 3894,0 +decl (Decl +n "memEnY" +t "std_ulogic" +o 20 +suid 52,0 +) +declText (MLText +uid 3895,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,120200,17700,121200" +st "SIGNAL memEnY : std_ulogic" +) +) +*34 (Net +uid 3913,0 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 53,0 +) +declText (MLText +uid 3914,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,105400,28500,106400" +st "memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*35 (PortIoOut +uid 4041,0 +shape (CompositeShape +uid 4042,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4043,0 +sl 0 +ro 270 +xt "143500,3625,145000,4375" +) +(Line +uid 4044,0 +sl 0 +ro 270 +xt "143000,4000,143500,4000" +pts [ +"143000,4000" +"143500,4000" +] +) +] +) +tg (WTG +uid 4045,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4046,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "146000,3300,166900,4700" +st "testOut : (1 TO testOutBitNb)" +blo "146000,4500" +tm "WireNameMgr" +) +) +) +*36 (Net +uid 4053,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 4 +suid 54,0 +) +declText (MLText +uid 4054,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,103800,25000,104800" +st "testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*37 (HdlText +uid 4055,0 +optionalChildren [ +*38 (EmbeddedText +uid 4060,0 +commentText (CommentText +uid 4061,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4062,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "120000,3000,134000,25000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4063,0 +va (VaSet +) +xt "120200,3200,134200,24800" +st " +testout(1) <= '0'; +testout(2) <= updatePattern; +testout(3) <= '0'; +testout(4) <= newPolynom; +testout(5) <= '0'; +testout(6) <= '0'; +testout(7) <= '0'; +testout(8) <= '0'; +testout(9) <= '0'; +testout(10) <= addr(1); +testout(11) <= dataIn(0); +--testout(10) <= selControl; +--testout(11) <= selSize; +testout(12) <= selSpeed; +testout(13) <= selX; +testout(14) <= selY; +testout(15) <= cntIncrX; +testout(16) <= cntIncrY; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 22000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 4056,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "119000,2000,135000,26000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4057,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 4058,0 +va (VaSet +) +xt "119400,26000,122000,27200" +st "eb3" +blo "119400,27000" +tm "HdlTextNameMgr" +) +*40 (Text +uid 4059,0 +va (VaSet +) +xt "119400,27000,120800,28200" +st "3" +blo "119400,28000" +tm "HdlTextNumberMgr" +) +] +) +) +*41 (Net +uid 9646,0 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 9 +suid 70,0 +) +declText (MLText +uid 9647,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,107800,13900,108800" +st "interpolateLin : std_ulogic" +) +) +*42 (SaComponent +uid 11639,0 +optionalChildren [ +*43 (CptPort +uid 11603,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11604,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,133625,94750,134375" +) +tg (CPTG +uid 11605,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11606,0 +va (VaSet +) +xt "88600,133400,93000,134600" +st "memWr" +ju 2 +blo "93000,134400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*44 (CptPort +uid 11607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11608,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,129625,78000,130375" +) +tg (CPTG +uid 11609,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11610,0 +va (VaSet +) +xt "79000,129400,81200,130600" +st "sel" +blo "79000,130400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*45 (CptPort +uid 11611,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11612,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,135625,94750,136375" +) +tg (CPTG +uid 11613,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11614,0 +va (VaSet +) +xt "88600,135400,93000,136600" +st "memEn" +ju 2 +blo "93000,136400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*46 (CptPort +uid 11615,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11616,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,133625,78000,134375" +) +tg (CPTG +uid 11617,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11618,0 +va (VaSet +) +xt "79000,133400,83100,134600" +st "update" +blo "79000,134400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*47 (CptPort +uid 11619,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11620,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,131625,78000,132375" +) +tg (CPTG +uid 11621,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11622,0 +va (VaSet +) +xt "79000,131400,80800,132600" +st "wr" +blo "79000,132400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*48 (CptPort +uid 11623,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11624,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,129625,94750,130375" +) +tg (CPTG +uid 11625,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11626,0 +va (VaSet +) +xt "88600,129400,93000,130600" +st "cntIncr" +ju 2 +blo "93000,130400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*49 (CptPort +uid 11627,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11628,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,135625,78000,136375" +) +tg (CPTG +uid 11629,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11630,0 +va (VaSet +) +xt "79000,135400,85300,136600" +st "newSample" +blo "79000,136400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*50 (CptPort +uid 11631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11632,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,139625,78000,140375" +) +tg (CPTG +uid 11633,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11634,0 +va (VaSet +) +xt "79000,139400,82400,140600" +st "clock" +blo "79000,140400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*51 (CptPort +uid 11635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11636,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,141625,78000,142375" +) +tg (CPTG +uid 11637,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11638,0 +va (VaSet +) +xt "79000,141400,82300,142600" +st "reset" +blo "79000,142400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 11640,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,126000,94000,144000" +) +oxt "32000,8000,48000,26000" +ttg (MlTextGroup +uid 11641,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*52 (Text +uid 11642,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,143800,83000,145000" +st "Beamer" +blo "78600,144800" +tm "BdLibraryNameMgr" +) +*53 (Text +uid 11643,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,145000,88300,146200" +st "blockRAMControl" +blo "78600,146000" +tm "CptNameMgr" +) +*54 (Text +uid 11644,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,146200,80900,147400" +st "I19" +blo "78600,147200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11645,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11646,0 +text (MLText +uid 11647,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,139800,78000,139800" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*55 (SaComponent +uid 11714,0 +optionalChildren [ +*56 (CptPort +uid 11723,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11724,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,183625,94750,184375" +) +tg (CPTG +uid 11725,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11726,0 +va (VaSet +) +xt "88600,183400,93000,184600" +st "memWr" +ju 2 +blo "93000,184400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +) +) +) +*57 (CptPort +uid 11727,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11728,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,179625,78000,180375" +) +tg (CPTG +uid 11729,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11730,0 +va (VaSet +) +xt "79000,179400,81200,180600" +st "sel" +blo "79000,180400" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +) +) +) +*58 (CptPort +uid 11731,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11732,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,185625,94750,186375" +) +tg (CPTG +uid 11733,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11734,0 +va (VaSet +) +xt "88600,185400,93000,186600" +st "memEn" +ju 2 +blo "93000,186400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +) +) +) +*59 (CptPort +uid 11735,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11736,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,183625,78000,184375" +) +tg (CPTG +uid 11737,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11738,0 +va (VaSet +) +xt "79000,183400,83100,184600" +st "update" +blo "79000,184400" +) +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +) +) +) +*60 (CptPort +uid 11739,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11740,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,181625,78000,182375" +) +tg (CPTG +uid 11741,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11742,0 +va (VaSet +) +xt "79000,181400,80800,182600" +st "wr" +blo "79000,182400" +) +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +) +) +) +*61 (CptPort +uid 11743,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11744,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,179625,94750,180375" +) +tg (CPTG +uid 11745,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 11746,0 +va (VaSet +) +xt "88600,179400,93000,180600" +st "cntIncr" +ju 2 +blo "93000,180400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +) +) +) +*62 (CptPort +uid 11747,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11748,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,185625,78000,186375" +) +tg (CPTG +uid 11749,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11750,0 +va (VaSet +) +xt "79000,185400,85300,186600" +st "newSample" +blo "79000,186400" +) +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +) +) +) +*63 (CptPort +uid 11751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,189625,78000,190375" +) +tg (CPTG +uid 11753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11754,0 +va (VaSet +) +xt "79000,189400,82400,190600" +st "clock" +blo "79000,190400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +) +) +) +*64 (CptPort +uid 11755,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 11756,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,191625,78000,192375" +) +tg (CPTG +uid 11757,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 11758,0 +va (VaSet +) +xt "79000,191400,82300,192600" +st "reset" +blo "79000,192400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +) +) +) +] +shape (Rectangle +uid 11715,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,176000,94000,194000" +) +oxt "32000,8000,48000,26000" +ttg (MlTextGroup +uid 11716,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 11717,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,193800,83000,195000" +st "Beamer" +blo "78600,194800" +tm "BdLibraryNameMgr" +) +*66 (Text +uid 11718,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,195000,88300,196200" +st "blockRAMControl" +blo "78600,196000" +tm "CptNameMgr" +) +*67 (Text +uid 11719,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,196200,80900,197400" +st "I31" +blo "78600,197200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 11720,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 11721,0 +text (MLText +uid 11722,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,189800,78000,189800" +) +header "" +) +elements [ +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*68 (PortIoIn +uid 13128,0 +shape (CompositeShape +uid 13129,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 13130,0 +sl 0 +ro 270 +xt "20000,41625,21500,42375" +) +(Line +uid 13131,0 +sl 0 +ro 270 +xt "21500,42000,22000,42000" +pts [ +"21500,42000" +"22000,42000" +] +) +] +) +tg (WTG +uid 13132,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13133,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "15500,41500,19000,42900" +st "apbi" +ju 2 +blo "19000,42700" +tm "WireNameMgr" +) +) +) +*69 (Net +uid 13140,0 +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 1 +suid 71,0 +) +declText (MLText +uid 13141,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,101400,15800,102400" +st "apbi : apb_slv_in_type" +) +) +*70 (PortIoOut +uid 13373,0 +shape (CompositeShape +uid 13374,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 13375,0 +sl 0 +ro 90 +xt "20000,25625,21500,26375" +) +(Line +uid 13376,0 +sl 0 +ro 90 +xt "21500,26000,22000,26000" +pts [ +"22000,26000" +"21500,26000" +] +) +] +) +tg (WTG +uid 13377,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13378,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "15000,25300,19000,26700" +st "apbo" +ju 2 +blo "19000,26500" +tm "WireNameMgr" +) +) +) +*71 (Net +uid 13385,0 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 3 +suid 72,0 +) +declText (MLText +uid 13386,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,103000,16700,104000" +st "apbo : apb_slv_out_type" +) +) +*72 (PortIoOut +uid 14845,0 +shape (CompositeShape +uid 14846,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14847,0 +sl 0 +ro 270 +xt "134500,115625,136000,116375" +) +(Line +uid 14848,0 +sl 0 +ro 270 +xt "134000,116000,134500,116000" +pts [ +"134000,116000" +"134500,116000" +] +) +] +) +tg (WTG +uid 14849,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14850,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "137000,115300,161100,116700" +st "memY : (signalBitNb-1 DOWNTO 0)" +blo "137000,116500" +tm "WireNameMgr" +) +) +) +*73 (PortIoOut +uid 14851,0 +shape (CompositeShape +uid 14852,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14853,0 +sl 0 +ro 270 +xt "134500,153625,136000,154375" +) +(Line +uid 14854,0 +sl 0 +ro 270 +xt "134000,154000,134500,154000" +pts [ +"134000,154000" +"134500,154000" +] +) +] +) +tg (WTG +uid 14855,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14856,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "137000,153300,161200,154700" +st "memX : (signalBitNb-1 DOWNTO 0)" +blo "137000,154500" +tm "WireNameMgr" +) +) +) +*74 (PortIoOut +uid 14857,0 +shape (CompositeShape +uid 14858,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14859,0 +sl 0 +ro 270 +xt "109750,41625,111250,42375" +) +(Line +uid 14860,0 +sl 0 +ro 270 +xt "109250,42000,109750,42000" +pts [ +"109250,42000" +"109750,42000" +] +) +] +) +tg (WTG +uid 14861,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14862,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "112000,41300,114900,42700" +st "run" +blo "112000,42500" +tm "WireNameMgr" +) +) +) +*75 (PortIoOut +uid 14863,0 +shape (CompositeShape +uid 14864,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14865,0 +sl 0 +ro 270 +xt "109750,69625,111250,70375" +) +(Line +uid 14866,0 +sl 0 +ro 270 +xt "109250,70000,109750,70000" +pts [ +"109250,70000" +"109750,70000" +] +) +] +) +tg (WTG +uid 14867,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14868,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "112000,69300,146500,70700" +st "updatePeriod : (updatePeriodBitNb-1 DOWNTO 0)" +blo "112000,70500" +tm "WireNameMgr" +) +) +) +*76 (PortIoOut +uid 14869,0 +shape (CompositeShape +uid 14870,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 14871,0 +sl 0 +ro 270 +xt "109500,43625,111000,44375" +) +(Line +uid 14872,0 +sl 0 +ro 270 +xt "109000,44000,109500,44000" +pts [ +"109000,44000" +"109500,44000" +] +) +] +) +tg (WTG +uid 14873,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14874,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "112000,43300,122300,44700" +st "interpolateLin" +blo "112000,44500" +tm "WireNameMgr" +) +) +) +*77 (PortIoIn +uid 16542,0 +shape (CompositeShape +uid 16543,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16544,0 +sl 0 +ro 270 +xt "72000,55625,73500,56375" +) +(Line +uid 16545,0 +sl 0 +ro 270 +xt "73500,56000,74000,56000" +pts [ +"73500,56000" +"74000,56000" +] +) +] +) +tg (WTG +uid 16546,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16547,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "66900,55500,71000,56900" +st "reset" +ju 2 +blo "71000,56700" +tm "WireNameMgr" +) +) +) +*78 (Net +uid 16705,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 74,0 +) +declText (MLText +uid 16706,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,117800,30600,118800" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*79 (HdlText +uid 16707,0 +optionalChildren [ +*80 (EmbeddedText +uid 16712,0 +commentText (CommentText +uid 16713,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 16714,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "30000,39000,46000,49000" +) +oxt "0,0,18000,5000" +text (MLText +uid 16715,0 +va (VaSet +) +xt "30200,39200,45700,48800" +st " +dataIn <= std_ulogic_vector(apbi.pwdata); +addr <= unsigned(apbi.paddr); +write <= apbi.pwrite and apbi.psel(pindex) and apbi.penable; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 16708,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "30000,38000,46000,50000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 16709,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 16710,0 +va (VaSet +) +xt "30400,50000,33000,51200" +st "eb8" +blo "30400,51000" +tm "HdlTextNameMgr" +) +*82 (Text +uid 16711,0 +va (VaSet +) +xt "30400,51000,31800,52200" +st "8" +blo "30400,52000" +tm "HdlTextNumberMgr" +) +] +) +) +*83 (Net +uid 16716,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 12 +suid 75,0 +) +declText (MLText +uid 16717,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,113800,28300,114800" +st "SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*84 (HdlText +uid 17145,0 +optionalChildren [ +*85 (EmbeddedText +uid 17150,0 +commentText (CommentText +uid 17151,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 17152,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "58000,87000,66000,93000" +) +oxt "0,0,18000,5000" +text (MLText +uid 17153,0 +va (VaSet +) +xt "58200,87200,65800,92000" +st " +memDataIn <= dataIn(memDataIn'range); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 8000 +) +) +) +] +shape (Rectangle +uid 17146,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "58000,86000,66000,94000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 17147,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 17148,0 +va (VaSet +) +xt "58400,94000,61000,95200" +st "eb9" +blo "58400,95000" +tm "HdlTextNameMgr" +) +*87 (Text +uid 17149,0 +va (VaSet +) +xt "58400,95000,59800,96200" +st "9" +blo "58400,96000" +tm "HdlTextNumberMgr" +) +] +) +) +*88 (Net +uid 17162,0 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 30 +suid 77,0 +) +declText (MLText +uid 17163,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,128200,32400,129200" +st "SIGNAL memDataIn : std_ulogic_vector(signalBitNb-1 DOWNTO 0)" +) +) +*89 (Net +uid 17505,0 +decl (Decl +n "write" +t "std_ulogic" +o 29 +suid 78,0 +) +declText (MLText +uid 17506,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,127400,16400,128400" +st "SIGNAL write : std_ulogic" +) +) +*90 (SaComponent +uid 17547,0 +optionalChildren [ +*91 (CptPort +uid 17523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17524,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,71625,46750,72375" +) +tg (CPTG +uid 17525,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17526,0 +va (VaSet +) +xt "38400,71400,45000,72600" +st "selControl" +ju 2 +blo "45000,72400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selControl" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*92 (CptPort +uid 17527,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17528,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29250,71625,30000,72375" +) +tg (CPTG +uid 17529,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17530,0 +va (VaSet +) +xt "31000,71400,33900,72600" +st "addr" +blo "31000,72400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*93 (CptPort +uid 17531,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17532,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,73625,46750,74375" +) +tg (CPTG +uid 17533,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17534,0 +va (VaSet +) +xt "39700,73400,45000,74600" +st "selSpeed" +ju 2 +blo "45000,74400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*94 (CptPort +uid 17535,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17536,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,77625,46750,78375" +) +tg (CPTG +uid 17537,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17538,0 +va (VaSet +) +xt "42100,77400,45000,78600" +st "selX" +ju 2 +blo "45000,78400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selX" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*95 (CptPort +uid 17539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17540,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,79625,46750,80375" +) +tg (CPTG +uid 17541,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17542,0 +va (VaSet +) +xt "42100,79400,45000,80600" +st "selY" +ju 2 +blo "45000,80400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selY" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*96 (CptPort +uid 17543,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17544,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,81625,46750,82375" +) +tg (CPTG +uid 17545,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17546,0 +va (VaSet +) +xt "42100,81400,45000,82600" +st "selZ" +ju 2 +blo "45000,82400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selZ" +t "std_ulogic" +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 17548,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "30000,68000,46000,86000" +) +oxt "34000,9000,50000,27000" +ttg (MlTextGroup +uid 17549,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +uid 17550,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,85800,35000,87000" +st "Beamer" +blo "30600,86800" +tm "BdLibraryNameMgr" +) +*98 (Text +uid 17551,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,87000,43500,88200" +st "periphAddressDecoder" +blo "30600,88000" +tm "CptNameMgr" +) +*99 (Text +uid 17552,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,88200,32300,89400" +st "I2" +blo "30600,89200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 17553,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 17554,0 +text (MLText +uid 17555,0 +va (VaSet +font "Verdana,8,0" +) +xt "30000,89600,50000,90600" +st "addressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*100 (HdlText +uid 17860,0 +optionalChildren [ +*101 (EmbeddedText +uid 17865,0 +commentText (CommentText +uid 17866,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 17867,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "30000,23000,46000,29000" +) +oxt "0,0,18000,5000" +text (MLText +uid 17868,0 +va (VaSet +) +xt "30200,23200,44700,29200" +st " +apbo.prdata <= dataOut; + +apbo.pindex <= pindex; + +apbo.pconfig <= ( + 0 => ahb_device_reg ( 16#ff#, 16#3ff#, 0, 1, 7), + 1 => apb_iobar(paddr, pmask) +); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 17861,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "30000,22000,46000,30000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 17862,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +uid 17863,0 +va (VaSet +) +xt "30400,30000,33700,31200" +st "eb10" +blo "30400,31000" +tm "HdlTextNameMgr" +) +*103 (Text +uid 17864,0 +va (VaSet +) +xt "30400,31000,32500,32200" +st "10" +blo "30400,32000" +tm "HdlTextNumberMgr" +) +] +) +) +*104 (SaComponent +uid 18007,0 +optionalChildren [ +*105 (CptPort +uid 17967,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17968,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,41625,94750,42375" +) +tg (CPTG +uid 17969,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17970,0 +va (VaSet +) +xt "90700,41400,93000,42600" +st "run" +ju 2 +blo "93000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*106 (CptPort +uid 17971,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17972,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,41625,78000,42375" +) +tg (CPTG +uid 17973,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17974,0 +va (VaSet +) +xt "79000,41400,83000,42600" +st "dataIn" +blo "79000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*107 (CptPort +uid 17975,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17976,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,47625,94750,48375" +) +tg (CPTG +uid 17977,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 17978,0 +va (VaSet +) +xt "84500,47400,93000,48600" +st "updatePattern" +ju 2 +blo "93000,48400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*108 (CptPort +uid 17979,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17980,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,43625,78000,44375" +) +tg (CPTG +uid 17981,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17982,0 +va (VaSet +) +xt "79000,43400,83800,44600" +st "dataOut" +blo "79000,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*109 (CptPort +uid 17983,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17984,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,47625,78000,48375" +) +tg (CPTG +uid 17985,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17986,0 +va (VaSet +) +xt "79000,47400,82100,48600" +st "write" +blo "79000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*110 (CptPort +uid 17987,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17988,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,49625,78000,50375" +) +tg (CPTG +uid 17989,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17990,0 +va (VaSet +) +xt "79000,49400,80900,50600" +st "en" +blo "79000,50400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*111 (CptPort +uid 17991,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17992,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,53625,78000,54375" +) +tg (CPTG +uid 17993,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17994,0 +va (VaSet +) +xt "79000,53400,82400,54600" +st "clock" +blo "79000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*112 (CptPort +uid 17995,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17996,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,55625,78000,56375" +) +tg (CPTG +uid 17997,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 17998,0 +va (VaSet +) +xt "79000,55400,82300,56600" +st "reset" +blo "79000,56400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*113 (CptPort +uid 17999,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18000,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,43625,94750,44375" +) +tg (CPTG +uid 18001,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18002,0 +va (VaSet +) +xt "83100,43400,93000,44600" +st "interpolateLinear" +ju 2 +blo "93000,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*114 (CptPort +uid 18003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18004,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,49625,94750,50375" +) +tg (CPTG +uid 18005,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18006,0 +va (VaSet +) +xt "85900,49400,93000,50600" +st "patternSize" +ju 2 +blo "93000,50400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 downto 0)" +o 10 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 18008,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,38000,94000,58000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 18009,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +uid 18010,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,57800,83000,59000" +st "Beamer" +blo "78600,58800" +tm "BdLibraryNameMgr" +) +*116 (Text +uid 18011,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,59000,88400,60200" +st "periphControlReg" +blo "78600,60000" +tm "CptNameMgr" +) +*117 (Text +uid 18012,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,60200,80300,61400" +st "I4" +blo "78600,61200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18013,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18014,0 +text (MLText +uid 18015,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,61600,102300,63600" +st "dataBitNb = dataBitNb ( positive ) +patternSizeBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*118 (SaComponent +uid 18179,0 +optionalChildren [ +*119 (CptPort +uid 18155,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18156,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,109625,78000,110375" +) +tg (CPTG +uid 18157,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18158,0 +va (VaSet +) +xt "79000,109400,80900,110600" +st "en" +blo "79000,110400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*120 (CptPort +uid 18159,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18160,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,113625,78000,114375" +) +tg (CPTG +uid 18161,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18162,0 +va (VaSet +) +xt "79000,113400,82400,114600" +st "clock" +blo "79000,114400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*121 (CptPort +uid 18163,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18164,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,115625,78000,116375" +) +tg (CPTG +uid 18165,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18166,0 +va (VaSet +) +xt "79000,115400,82300,116600" +st "reset" +blo "79000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*122 (CptPort +uid 18167,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18168,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,107625,78000,108375" +) +tg (CPTG +uid 18169,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18170,0 +va (VaSet +) +xt "79000,107400,85500,108600" +st "updateMem" +blo "79000,108400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*123 (CptPort +uid 18171,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18172,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,105625,94750,106375" +) +tg (CPTG +uid 18173,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18174,0 +va (VaSet +) +xt "90100,105400,93000,106600" +st "addr" +ju 2 +blo "93000,106400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*124 (CptPort +uid 18175,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18176,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,105625,78000,106375" +) +tg (CPTG +uid 18177,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18178,0 +va (VaSet +) +xt "79000,105400,86100,106600" +st "patternSize" +blo "79000,106400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 18180,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,102000,94000,118000" +) +oxt "38000,13000,54000,29000" +ttg (MlTextGroup +uid 18181,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +uid 18182,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,117800,83000,119000" +st "Beamer" +blo "78600,118800" +tm "BdLibraryNameMgr" +) +*126 (Text +uid 18183,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,119000,93200,120200" +st "blockRAMAddressCounter" +blo "78600,120000" +tm "CptNameMgr" +) +*127 (Text +uid 18184,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,120200,80900,121400" +st "I20" +blo "78600,121200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18185,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18186,0 +text (MLText +uid 18187,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,121600,100900,122600" +st "addressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*128 (SaComponent +uid 18212,0 +optionalChildren [ +*129 (CptPort +uid 18188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18189,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,159625,78000,160375" +) +tg (CPTG +uid 18190,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18191,0 +va (VaSet +) +xt "79000,159400,80900,160600" +st "en" +blo "79000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*130 (CptPort +uid 18192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18193,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,163625,78000,164375" +) +tg (CPTG +uid 18194,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18195,0 +va (VaSet +) +xt "79000,163400,82400,164600" +st "clock" +blo "79000,164400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*131 (CptPort +uid 18196,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18197,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,165625,78000,166375" +) +tg (CPTG +uid 18198,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18199,0 +va (VaSet +) +xt "79000,165400,82300,166600" +st "reset" +blo "79000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*132 (CptPort +uid 18200,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18201,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,157625,78000,158375" +) +tg (CPTG +uid 18202,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18203,0 +va (VaSet +) +xt "79000,157400,85500,158600" +st "updateMem" +blo "79000,158400" +) +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*133 (CptPort +uid 18204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,155625,94750,156375" +) +tg (CPTG +uid 18206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18207,0 +va (VaSet +) +xt "90100,155400,93000,156600" +st "addr" +ju 2 +blo "93000,156400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*134 (CptPort +uid 18208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18209,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,155625,78000,156375" +) +tg (CPTG +uid 18210,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18211,0 +va (VaSet +) +xt "79000,155400,86100,156600" +st "patternSize" +blo "79000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 18213,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,152000,94000,168000" +) +oxt "38000,13000,54000,29000" +ttg (MlTextGroup +uid 18214,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*135 (Text +uid 18215,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,167800,83000,169000" +st "Beamer" +blo "78600,168800" +tm "BdLibraryNameMgr" +) +*136 (Text +uid 18216,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,169000,93200,170200" +st "blockRAMAddressCounter" +blo "78600,170000" +tm "CptNameMgr" +) +*137 (Text +uid 18217,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,170200,80900,171400" +st "I30" +blo "78600,171200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18218,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18219,0 +text (MLText +uid 18220,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,171600,100900,172600" +st "addressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*138 (SaComponent +uid 18249,0 +optionalChildren [ +*139 (CptPort +uid 18221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18222,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,69625,94750,70375" +) +tg (CPTG +uid 18223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18224,0 +va (VaSet +) +xt "85000,69400,93000,70600" +st "updatePeriod" +ju 2 +blo "93000,70400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*140 (CptPort +uid 18225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,69625,78000,70375" +) +tg (CPTG +uid 18227,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18228,0 +va (VaSet +) +xt "79000,69400,83000,70600" +st "dataIn" +blo "79000,70400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*141 (CptPort +uid 18229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18230,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,71625,78000,72375" +) +tg (CPTG +uid 18231,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18232,0 +va (VaSet +) +xt "79000,71400,83800,72600" +st "dataOut" +blo "79000,72400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*142 (CptPort +uid 18233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18234,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,77625,78000,78375" +) +tg (CPTG +uid 18235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18236,0 +va (VaSet +) +xt "79000,77400,80900,78600" +st "en" +blo "79000,78400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*143 (CptPort +uid 18237,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18238,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,81625,78000,82375" +) +tg (CPTG +uid 18239,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18240,0 +va (VaSet +) +xt "79000,81400,82400,82600" +st "clock" +blo "79000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*144 (CptPort +uid 18241,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18242,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,83625,78000,84375" +) +tg (CPTG +uid 18243,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18244,0 +va (VaSet +) +xt "79000,83400,82300,84600" +st "reset" +blo "79000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 7,0 +) +) +) +*145 (CptPort +uid 18245,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18246,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,75625,78000,76375" +) +tg (CPTG +uid 18247,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18248,0 +va (VaSet +) +xt "79000,75400,82100,76600" +st "write" +blo "79000,76400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 7 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 18250,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,66000,94000,86000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 18251,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +uid 18252,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,85800,83000,87000" +st "Beamer" +blo "78600,86800" +tm "BdLibraryNameMgr" +) +*147 (Text +uid 18253,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,87000,87800,88200" +st "periphSpeedReg" +blo "78600,88000" +tm "CptNameMgr" +) +*148 (Text +uid 18254,0 +va (VaSet +font "Verdana,9,1" +) +xt "78600,88200,80300,89400" +st "I3" +blo "78600,89200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18255,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18256,0 +text (MLText +uid 18257,0 +va (VaSet +font "Verdana,8,0" +) +xt "78000,89600,102400,91600" +st "dataBitNb = dataBitNb ( positive ) +updatePeriodBitNb = updatePeriodBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "updatePeriodBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*149 (PortIoIn +uid 18266,0 +shape (CompositeShape +uid 18267,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18268,0 +sl 0 +ro 270 +xt "68000,135625,69500,136375" +) +(Line +uid 18269,0 +sl 0 +ro 270 +xt "69500,136000,70000,136000" +pts [ +"69500,136000" +"70000,136000" +] +) +] +) +tg (WTG +uid 18270,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18271,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57400,135300,67000,136700" +st "newPolynom" +ju 2 +blo "67000,136500" +tm "WireNameMgr" +) +) +) +*150 (SaComponent +uid 19180,0 +optionalChildren [ +*151 (CptPort +uid 19152,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19153,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,153625,110000,154375" +) +tg (CPTG +uid 19154,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19155,0 +va (VaSet +) +xt "111000,153400,115000,154600" +st "dataIn" +blo "111000,154400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*152 (CptPort +uid 19156,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19157,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "126000,153625,126750,154375" +) +tg (CPTG +uid 19158,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19159,0 +va (VaSet +) +xt "120200,153400,125000,154600" +st "dataOut" +ju 2 +blo "125000,154400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*153 (CptPort +uid 19160,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19161,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,161625,110000,162375" +) +tg (CPTG +uid 19162,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19163,0 +va (VaSet +) +xt "111000,161400,112900,162600" +st "en" +blo "111000,162400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*154 (CptPort +uid 19164,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19165,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,165625,110000,166375" +) +tg (CPTG +uid 19166,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19167,0 +va (VaSet +) +xt "111000,165400,114400,166600" +st "clock" +blo "111000,166400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*155 (CptPort +uid 19168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,167625,110000,168375" +) +tg (CPTG +uid 19170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19171,0 +va (VaSet +) +xt "111000,167400,114300,168600" +st "reset" +blo "111000,168400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*156 (CptPort +uid 19172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19173,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,159625,110000,160375" +) +tg (CPTG +uid 19174,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19175,0 +va (VaSet +) +xt "111000,159400,114100,160600" +st "write" +blo "111000,160400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*157 (CptPort +uid 19176,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19177,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,155625,110000,156375" +) +tg (CPTG +uid 19178,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19179,0 +va (VaSet +) +xt "111000,155400,113900,156600" +st "addr" +blo "111000,156400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 19181,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "110000,150000,126000,170000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 19182,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*158 (Text +uid 19183,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,169800,115000,171000" +st "Beamer" +blo "110600,170800" +tm "BdLibraryNameMgr" +) +*159 (Text +uid 19184,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,171000,116100,172200" +st "blockRAM" +blo "110600,172000" +tm "CptNameMgr" +) +*160 (Text +uid 19185,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,172200,112900,173400" +st "I18" +blo "110600,173200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 19186,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 19187,0 +text (MLText +uid 19188,0 +va (VaSet +font "Verdana,8,0" +) +xt "110000,173600,137300,176600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = signalBitNb ( positive ) +initFileSpec = \"$SIMULATION_DIR\\ramYInit.txt\" ( string ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR\\ramYInit.txt\"" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*161 (SaComponent +uid 19217,0 +optionalChildren [ +*162 (CptPort +uid 19189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19190,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,115625,110000,116375" +) +tg (CPTG +uid 19191,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19192,0 +va (VaSet +) +xt "111000,115400,115000,116600" +st "dataIn" +blo "111000,116400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*163 (CptPort +uid 19193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19194,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "126000,115625,126750,116375" +) +tg (CPTG +uid 19195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19196,0 +va (VaSet +) +xt "120200,115400,125000,116600" +st "dataOut" +ju 2 +blo "125000,116400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*164 (CptPort +uid 19197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19198,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,123625,110000,124375" +) +tg (CPTG +uid 19199,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19200,0 +va (VaSet +) +xt "111000,123400,112900,124600" +st "en" +blo "111000,124400" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*165 (CptPort +uid 19201,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19202,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,127625,110000,128375" +) +tg (CPTG +uid 19203,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19204,0 +va (VaSet +) +xt "111000,127400,114400,128600" +st "clock" +blo "111000,128400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*166 (CptPort +uid 19205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,129625,110000,130375" +) +tg (CPTG +uid 19207,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19208,0 +va (VaSet +) +xt "111000,129400,114300,130600" +st "reset" +blo "111000,130400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*167 (CptPort +uid 19209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,121625,110000,122375" +) +tg (CPTG +uid 19211,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19212,0 +va (VaSet +) +xt "111000,121400,114100,122600" +st "write" +blo "111000,122400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*168 (CptPort +uid 19213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19214,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,117625,110000,118375" +) +tg (CPTG +uid 19215,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19216,0 +va (VaSet +) +xt "111000,117400,113900,118600" +st "addr" +blo "111000,118400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 19218,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "110000,112000,126000,132000" +) +oxt "38000,9000,54000,29000" +ttg (MlTextGroup +uid 19219,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*169 (Text +uid 19220,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,131800,115000,133000" +st "Beamer" +blo "110600,132800" +tm "BdLibraryNameMgr" +) +*170 (Text +uid 19221,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,133000,116100,134200" +st "blockRAM" +blo "110600,134000" +tm "CptNameMgr" +) +*171 (Text +uid 19222,0 +va (VaSet +font "Verdana,9,1" +) +xt "110600,134200,112900,135400" +st "I17" +blo "110600,135200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 19223,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 19224,0 +text (MLText +uid 19225,0 +va (VaSet +font "Verdana,8,0" +) +xt "110000,135600,137300,138600" +st "addressBitNb = patternAddressBitNb ( positive ) +dataBitNb = signalBitNb ( positive ) +initFileSpec = \"$SIMULATION_DIR\\ramXInit.txt\" ( string ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "initFileSpec" +type "string" +value "\"$SIMULATION_DIR\\ramXInit.txt\"" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*172 (Wire +uid 73,0 +shape (OrthoPolyLine +uid 74,0 +va (VaSet +vasetType 3 +) +xt "74000,54000,77250,54000" +pts [ +"74000,54000" +"77250,54000" +] +) +start &12 +end &111 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 77,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 78,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,52600,77800,54000" +st "clock" +blo "74000,53800" +tm "WireNameMgr" +) +) +on &13 +) +*173 (Wire +uid 157,0 +shape (OrthoPolyLine +uid 158,0 +va (VaSet +vasetType 3 +) +xt "74000,56000,77250,56000" +pts [ +"74000,56000" +"77250,56000" +] +) +start &77 +end &112 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 161,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 162,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,54600,78100,56000" +st "reset" +blo "74000,55800" +tm "WireNameMgr" +) +) +on &14 +) +*174 (Wire +uid 1057,0 +shape (OrthoPolyLine +uid 1058,0 +va (VaSet +vasetType 3 +) +xt "46750,74000,77250,78000" +pts [ +"46750,74000" +"58000,74000" +"58000,78000" +"77250,78000" +] +) +start &93 +end &142 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1062,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,76600,76600,78000" +st "selSpeed" +blo "70000,77800" +tm "WireNameMgr" +) +) +on &17 +) +*175 (Wire +uid 1065,0 +shape (OrthoPolyLine +uid 1066,0 +va (VaSet +vasetType 3 +) +xt "46750,78000,77250,180000" +pts [ +"46750,78000" +"56000,78000" +"56000,180000" +"77250,180000" +] +) +start &94 +end &57 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,178600,73400,180000" +st "selX" +blo "70000,179800" +tm "WireNameMgr" +) +) +on &18 +) +*176 (Wire +uid 1073,0 +shape (OrthoPolyLine +uid 1074,0 +va (VaSet +vasetType 3 +) +xt "46750,80000,77250,130000" +pts [ +"46750,80000" +"54000,80000" +"54000,130000" +"77250,130000" +] +) +start &95 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1077,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1078,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,128600,73300,130000" +st "selY" +blo "70000,129800" +tm "WireNameMgr" +) +) +on &19 +) +*177 (Wire +uid 1332,0 +shape (OrthoPolyLine +uid 1333,0 +va (VaSet +vasetType 3 +) +xt "46750,50000,77250,72000" +pts [ +"46750,72000" +"58000,72000" +"58000,50000" +"77250,50000" +] +) +start &91 +end &110 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1338,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1339,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,48600,78000,50000" +st "selControl" +blo "70000,49800" +tm "WireNameMgr" +) +) +on &16 +) +*178 (Wire +uid 1340,0 +shape (OrthoPolyLine +uid 1341,0 +va (VaSet +vasetType 3 +) +xt "70000,48000,77250,48000" +pts [ +"70000,48000" +"77250,48000" +] +) +end &109 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1347,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,46600,74000,48000" +st "write" +blo "70000,47800" +tm "WireNameMgr" +) +) +on &89 +) +*179 (Wire +uid 1350,0 +shape (OrthoPolyLine +uid 1351,0 +va (VaSet +vasetType 3 +) +xt "94750,42000,109250,42000" +pts [ +"94750,42000" +"109250,42000" +] +) +start &105 +end &74 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1354,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1355,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,40600,108900,42000" +st "run" +blo "106000,41800" +tm "WireNameMgr" +) +) +on &20 +) +*180 (Wire +uid 1358,0 +shape (OrthoPolyLine +uid 1359,0 +va (VaSet +vasetType 3 +) +xt "94750,48000,102000,48000" +pts [ +"94750,48000" +"102000,48000" +] +) +start &107 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1363,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,46600,107550,48000" +st "updatePattern" +blo "96750,47800" +tm "WireNameMgr" +) +) +on &21 +) +*181 (Wire +uid 1472,0 +shape (OrthoPolyLine +uid 1473,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,50000,102000,50000" +pts [ +"94750,50000" +"102000,50000" +] +) +start &114 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1477,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,48600,105650,50000" +st "patternSize" +blo "96750,49800" +tm "WireNameMgr" +) +) +on &22 +) +*182 (Wire +uid 1526,0 +optionalChildren [ +*183 (BdJunction +uid 1538,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1539,0 +va (VaSet +vasetType 1 +) +xt "61600,41600,62400,42400" +radius 400 +) +) +*184 (BdJunction +uid 1736,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1737,0 +va (VaSet +vasetType 1 +) +xt "61600,69600,62400,70400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1527,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "46000,42000,62000,86000" +pts [ +"62000,86000" +"62000,42000" +"46000,42000" +] +) +start &84 +end &79 +sat 1 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1532,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1533,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,40600,51000,42000" +st "dataIn" +blo "46000,41800" +tm "WireNameMgr" +) +) +on &78 +) +*185 (Wire +uid 1534,0 +shape (OrthoPolyLine +uid 1535,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,42000,77250,42000" +pts [ +"62000,42000" +"77250,42000" +] +) +start &183 +end &106 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1536,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1537,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,40600,76000,42000" +st "dataIn" +blo "71000,41800" +tm "WireNameMgr" +) +) +on &78 +) +*186 (Wire +uid 1583,0 +optionalChildren [ +*187 (BdJunction +uid 2856,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2857,0 +va (VaSet +vasetType 1 +) +xt "65600,71600,66400,72400" +radius 400 +) +) +*188 (BdJunction +uid 2864,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2865,0 +va (VaSet +vasetType 1 +) +xt "65600,43600,66400,44400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1584,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "46000,26000,66000,76000" +pts [ +"66000,76000" +"66000,26000" +"46000,26000" +] +) +end &100 +sat 16 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1587,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1588,0 +va (VaSet +font "Verdana,12,0" +) +xt "49000,24600,55000,26000" +st "dataOut" +blo "49000,25800" +tm "WireNameMgr" +) +) +on &23 +) +*189 (Wire +uid 1732,0 +shape (OrthoPolyLine +uid 1733,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,70000,77250,70000" +pts [ +"62000,70000" +"77250,70000" +] +) +start &184 +end &140 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1735,0 +va (VaSet +font "Verdana,12,0" +) +xt "72250,68600,77250,70000" +st "dataIn" +blo "72250,69800" +tm "WireNameMgr" +) +) +on &78 +) +*190 (Wire +uid 1738,0 +shape (OrthoPolyLine +uid 1739,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66000,72000,77250,72000" +pts [ +"66000,72000" +"77250,72000" +] +) +start &187 +end &141 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1740,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1741,0 +va (VaSet +font "Verdana,12,0" +) +xt "71250,70600,77250,72000" +st "dataOut" +blo "71250,71800" +tm "WireNameMgr" +) +) +on &23 +) +*191 (Wire +uid 1744,0 +shape (OrthoPolyLine +uid 1745,0 +va (VaSet +vasetType 3 +) +xt "74000,84000,77250,84000" +pts [ +"74000,84000" +"77250,84000" +] +) +end &144 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1751,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,82600,78100,84000" +st "reset" +blo "74000,83800" +tm "WireNameMgr" +) +) +on &14 +) +*192 (Wire +uid 1752,0 +shape (OrthoPolyLine +uid 1753,0 +va (VaSet +vasetType 3 +) +xt "74000,82000,77250,82000" +pts [ +"74000,82000" +"77250,82000" +] +) +end &143 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1758,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1759,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,80600,77800,82000" +st "clock" +blo "74000,81800" +tm "WireNameMgr" +) +) +on &13 +) +*193 (Wire +uid 1778,0 +shape (OrthoPolyLine +uid 1779,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,70000,109250,70000" +pts [ +"94750,70000" +"109250,70000" +] +) +start &139 +end &75 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1782,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1783,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,68600,106100,70000" +st "updatePeriod" +blo "96000,69800" +tm "WireNameMgr" +) +) +on &24 +) +*194 (Wire +uid 2478,0 +shape (OrthoPolyLine +uid 2479,0 +va (VaSet +vasetType 3 +) +xt "106000,166000,109250,166000" +pts [ +"106000,166000" +"109250,166000" +] +) +end &154 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2485,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,164600,109800,166000" +st "clock" +blo "106000,165800" +tm "WireNameMgr" +) +) +on &13 +) +*195 (Wire +uid 2486,0 +shape (OrthoPolyLine +uid 2487,0 +va (VaSet +vasetType 3 +) +xt "106000,168000,109250,168000" +pts [ +"106000,168000" +"109250,168000" +] +) +end &155 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2492,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2493,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,166600,110100,168000" +st "reset" +blo "106000,167800" +tm "WireNameMgr" +) +) +on &14 +) +*196 (Wire +uid 2638,0 +shape (OrthoPolyLine +uid 2639,0 +va (VaSet +vasetType 3 +) +xt "94750,160000,109250,184000" +pts [ +"94750,184000" +"102000,184000" +"102000,160000" +"109250,160000" +] +) +start &56 +end &156 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2640,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2641,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,158600,109400,160000" +st "memWrX" +blo "103000,159800" +tm "WireNameMgr" +) +) +on &27 +) +*197 (Wire +uid 2644,0 +shape (OrthoPolyLine +uid 2645,0 +va (VaSet +vasetType 3 +) +xt "94750,162000,109250,186000" +pts [ +"94750,186000" +"104000,186000" +"104000,162000" +"109250,162000" +] +) +start &58 +end &153 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2646,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2647,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,160600,109200,162000" +st "memEnX" +blo "103000,161800" +tm "WireNameMgr" +) +) +on &28 +) +*198 (Wire +uid 2648,0 +shape (OrthoPolyLine +uid 2649,0 +va (VaSet +vasetType 3 +) +xt "70000,184000,77250,184000" +pts [ +"70000,184000" +"77250,184000" +] +) +end &59 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2654,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2655,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,182600,79800,184000" +st "updatePattern" +blo "69000,183800" +tm "WireNameMgr" +) +) +on &21 +) +*199 (Wire +uid 2772,0 +shape (OrthoPolyLine +uid 2773,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,156000,109250,156000" +pts [ +"94750,156000" +"109250,156000" +] +) +start &133 +end &157 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2774,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2775,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,154600,109500,156000" +st "addrX" +blo "105000,155800" +tm "WireNameMgr" +) +) +on &25 +) +*200 (Wire +uid 2778,0 +shape (OrthoPolyLine +uid 2779,0 +va (VaSet +vasetType 3 +) +xt "74000,166000,77250,166000" +pts [ +"74000,166000" +"77250,166000" +] +) +end &131 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2785,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,164600,78100,166000" +st "reset" +blo "74000,165800" +tm "WireNameMgr" +) +) +on &14 +) +*201 (Wire +uid 2786,0 +shape (OrthoPolyLine +uid 2787,0 +va (VaSet +vasetType 3 +) +xt "74000,164000,77250,164000" +pts [ +"74000,164000" +"77250,164000" +] +) +end &130 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2792,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2793,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,162600,77800,164000" +st "clock" +blo "74000,163800" +tm "WireNameMgr" +) +) +on &13 +) +*202 (Wire +uid 2844,0 +shape (OrthoPolyLine +uid 2845,0 +va (VaSet +vasetType 3 +) +xt "72000,160000,98000,180000" +pts [ +"94750,180000" +"98000,180000" +"98000,174000" +"72000,174000" +"72000,160000" +"77250,160000" +] +) +start &61 +end &129 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2846,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2847,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,158600,77900,160000" +st "cntIncrX" +blo "72000,159800" +tm "WireNameMgr" +) +) +on &26 +) +*203 (Wire +uid 2860,0 +shape (OrthoPolyLine +uid 2861,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66000,44000,77250,44000" +pts [ +"66000,44000" +"77250,44000" +] +) +start &188 +end &108 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2862,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2863,0 +va (VaSet +font "Verdana,12,0" +) +xt "71250,42600,77250,44000" +st "dataOut" +blo "71250,43800" +tm "WireNameMgr" +) +) +on &23 +) +*204 (Wire +uid 2866,0 +shape (OrthoPolyLine +uid 2867,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,156000,77250,156000" +pts [ +"70000,156000" +"77250,156000" +] +) +end &134 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2873,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,154600,77900,156000" +st "patternSize" +blo "69000,155800" +tm "WireNameMgr" +) +) +on &22 +) +*205 (Wire +uid 2919,0 +shape (OrthoPolyLine +uid 2920,0 +va (VaSet +vasetType 3 +) +xt "70000,186000,77250,186000" +pts [ +"77250,186000" +"70000,186000" +] +) +start &62 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2926,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,184600,78600,186000" +st "newPolynom" +blo "69000,185800" +tm "WireNameMgr" +) +) +on &15 +) +*206 (Wire +uid 2996,0 +shape (OrthoPolyLine +uid 2997,0 +va (VaSet +vasetType 3 +) +xt "74000,192000,77250,192000" +pts [ +"74000,192000" +"77250,192000" +] +) +end &64 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3002,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3003,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,190600,78100,192000" +st "reset" +blo "74000,191800" +tm "WireNameMgr" +) +) +on &14 +) +*207 (Wire +uid 3004,0 +shape (OrthoPolyLine +uid 3005,0 +va (VaSet +vasetType 3 +) +xt "74000,190000,77250,190000" +pts [ +"74000,190000" +"77250,190000" +] +) +end &63 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3010,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3011,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,188600,77800,190000" +st "clock" +blo "74000,189800" +tm "WireNameMgr" +) +) +on &13 +) +*208 (Wire +uid 3094,0 +shape (OrthoPolyLine +uid 3095,0 +va (VaSet +vasetType 3 +) +xt "70000,158000,77250,158000" +pts [ +"70000,158000" +"77250,158000" +] +) +end &132 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3100,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3101,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,156600,79800,158000" +st "updatePattern" +blo "69000,157800" +tm "WireNameMgr" +) +) +on &21 +) +*209 (Wire +uid 3146,0 +shape (OrthoPolyLine +uid 3147,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "126750,154000,134000,154000" +pts [ +"126750,154000" +"134000,154000" +] +) +start &152 +end &73 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3150,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3151,0 +va (VaSet +font "Verdana,12,0" +) +xt "128000,152600,132600,154000" +st "memX" +blo "128000,153800" +tm "WireNameMgr" +) +) +on &29 +) +*210 (Wire +uid 3751,0 +shape (OrthoPolyLine +uid 3752,0 +va (VaSet +vasetType 3 +) +xt "106000,130000,109250,130000" +pts [ +"106000,130000" +"109250,130000" +] +) +end &166 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3755,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3756,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,128600,110100,130000" +st "reset" +blo "106000,129800" +tm "WireNameMgr" +) +) +on &14 +) +*211 (Wire +uid 3757,0 +shape (OrthoPolyLine +uid 3758,0 +va (VaSet +vasetType 3 +) +xt "106000,128000,109250,128000" +pts [ +"106000,128000" +"109250,128000" +] +) +end &165 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3761,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3762,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,126600,109800,128000" +st "clock" +blo "106000,127800" +tm "WireNameMgr" +) +) +on &13 +) +*212 (Wire +uid 3763,0 +shape (OrthoPolyLine +uid 3764,0 +va (VaSet +vasetType 3 +) +xt "70000,134000,77250,134000" +pts [ +"70000,134000" +"77250,134000" +] +) +end &46 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3768,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,132600,79800,134000" +st "updatePattern" +blo "69000,133800" +tm "WireNameMgr" +) +) +on &21 +) +*213 (Wire +uid 3769,0 +shape (OrthoPolyLine +uid 3770,0 +va (VaSet +vasetType 3 +) +xt "94750,124000,109250,136000" +pts [ +"94750,136000" +"102000,136000" +"102000,124000" +"109250,124000" +] +) +start &45 +end &164 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3772,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,122600,109100,124000" +st "memEnY" +blo "103000,123800" +tm "WireNameMgr" +) +) +on &33 +) +*214 (Wire +uid 3773,0 +shape (OrthoPolyLine +uid 3774,0 +va (VaSet +vasetType 3 +) +xt "94750,122000,109250,134000" +pts [ +"94750,134000" +"100000,134000" +"100000,122000" +"109250,122000" +] +) +start &43 +end &167 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3775,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3776,0 +va (VaSet +font "Verdana,12,0" +) +xt "103000,120600,109300,122000" +st "memWrY" +blo "103000,121800" +tm "WireNameMgr" +) +) +on &32 +) +*215 (Wire +uid 3777,0 +shape (OrthoPolyLine +uid 3778,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,106000,109250,118000" +pts [ +"94750,106000" +"98000,106000" +"98000,118000" +"109250,118000" +] +) +start &123 +end &168 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3779,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3780,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,116600,109400,118000" +st "addrY" +blo "105000,117800" +tm "WireNameMgr" +) +) +on &31 +) +*216 (Wire +uid 3793,0 +shape (OrthoPolyLine +uid 3794,0 +va (VaSet +vasetType 3 +) +xt "72000,110000,98000,130000" +pts [ +"94750,130000" +"98000,130000" +"98000,124000" +"72000,124000" +"72000,110000" +"77250,110000" +] +) +start &48 +end &119 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3796,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,108600,77800,110000" +st "cntIncrY" +blo "72000,109800" +tm "WireNameMgr" +) +) +on &30 +) +*217 (Wire +uid 3797,0 +shape (OrthoPolyLine +uid 3798,0 +va (VaSet +vasetType 3 +) +xt "70000,136000,77250,136000" +pts [ +"77250,136000" +"70000,136000" +] +) +start &49 +end &149 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3801,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3802,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,134600,78600,136000" +st "newPolynom" +blo "69000,135800" +tm "WireNameMgr" +) +) +on &15 +) +*218 (Wire +uid 3803,0 +shape (OrthoPolyLine +uid 3804,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,106000,77250,106000" +pts [ +"70000,106000" +"77250,106000" +] +) +end &124 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3808,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,104600,77900,106000" +st "patternSize" +blo "69000,105800" +tm "WireNameMgr" +) +) +on &22 +) +*219 (Wire +uid 3809,0 +shape (OrthoPolyLine +uid 3810,0 +va (VaSet +vasetType 3 +) +xt "70000,108000,77250,108000" +pts [ +"70000,108000" +"77250,108000" +] +) +end &122 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3813,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3814,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,106600,79800,108000" +st "updatePattern" +blo "69000,107800" +tm "WireNameMgr" +) +) +on &21 +) +*220 (Wire +uid 3815,0 +shape (OrthoPolyLine +uid 3816,0 +va (VaSet +vasetType 3 +) +xt "74000,140000,77250,140000" +pts [ +"74000,140000" +"77250,140000" +] +) +end &50 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3820,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,138600,77800,140000" +st "clock" +blo "74000,139800" +tm "WireNameMgr" +) +) +on &13 +) +*221 (Wire +uid 3866,0 +shape (OrthoPolyLine +uid 3867,0 +va (VaSet +vasetType 3 +) +xt "74000,114000,77250,114000" +pts [ +"74000,114000" +"77250,114000" +] +) +end &120 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3872,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3873,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,112600,77800,114000" +st "clock" +blo "74000,113800" +tm "WireNameMgr" +) +) +on &13 +) +*222 (Wire +uid 3874,0 +shape (OrthoPolyLine +uid 3875,0 +va (VaSet +vasetType 3 +) +xt "74000,116000,77250,116000" +pts [ +"74000,116000" +"77250,116000" +] +) +end &121 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3880,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3881,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,114600,78100,116000" +st "reset" +blo "74000,115800" +tm "WireNameMgr" +) +) +on &14 +) +*223 (Wire +uid 3882,0 +shape (OrthoPolyLine +uid 3883,0 +va (VaSet +vasetType 3 +) +xt "74000,142000,77250,142000" +pts [ +"74000,142000" +"77250,142000" +] +) +end &51 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3888,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3889,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,140600,78100,142000" +st "reset" +blo "74000,141800" +tm "WireNameMgr" +) +) +on &14 +) +*224 (Wire +uid 3907,0 +shape (OrthoPolyLine +uid 3908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "126750,116000,134000,116000" +pts [ +"126750,116000" +"134000,116000" +] +) +start &163 +end &72 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3912,0 +va (VaSet +font "Verdana,12,0" +) +xt "128750,114600,133250,116000" +st "memY" +blo "128750,115800" +tm "WireNameMgr" +) +) +on &34 +) +*225 (Wire +uid 4047,0 +shape (OrthoPolyLine +uid 4048,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "135000,4000,143000,4000" +pts [ +"135000,4000" +"143000,4000" +] +) +start &37 +end &35 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4051,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4052,0 +va (VaSet +font "Verdana,12,0" +) +xt "138000,2600,143600,4000" +st "testOut" +blo "138000,3800" +tm "WireNameMgr" +) +) +on &36 +) +*226 (Wire +uid 7907,0 +shape (OrthoPolyLine +uid 7908,0 +va (VaSet +vasetType 3 +) +xt "70000,132000,77250,132000" +pts [ +"70000,132000" +"77250,132000" +] +) +end &47 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7913,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7914,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,130600,74000,132000" +st "write" +blo "70000,131800" +tm "WireNameMgr" +) +) +on &89 +) +*227 (Wire +uid 7915,0 +shape (OrthoPolyLine +uid 7916,0 +va (VaSet +vasetType 3 +) +xt "70000,182000,77250,182000" +pts [ +"70000,182000" +"77250,182000" +] +) +end &60 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7921,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7922,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,180600,74000,182000" +st "write" +blo "70000,181800" +tm "WireNameMgr" +) +) +on &89 +) +*228 (Wire +uid 8150,0 +shape (OrthoPolyLine +uid 8151,0 +va (VaSet +vasetType 3 +) +xt "94750,44000,109000,44000" +pts [ +"94750,44000" +"109000,44000" +] +) +start &113 +end &76 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8154,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8155,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,42600,111300,44000" +st "interpolateLin" +blo "101000,43800" +tm "WireNameMgr" +) +) +on &41 +) +*229 (Wire +uid 13134,0 +shape (OrthoPolyLine +uid 13135,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,42000,30000,42000" +pts [ +"22000,42000" +"30000,42000" +] +) +start &68 +end &79 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13138,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13139,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,40600,25500,42000" +st "apbi" +blo "22000,41800" +tm "WireNameMgr" +) +) +on &69 +) +*230 (Wire +uid 13379,0 +shape (OrthoPolyLine +uid 13380,0 +va (VaSet +vasetType 3 +) +xt "22000,26000,30000,26000" +pts [ +"30000,26000" +"22000,26000" +] +) +start &100 +end &70 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13383,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13384,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,24600,26000,26000" +st "apbo" +blo "22000,25800" +tm "WireNameMgr" +) +) +on &71 +) +*231 (Wire +uid 16718,0 +shape (OrthoPolyLine +uid 16719,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "26000,44000,50000,72000" +pts [ +"29250,72000" +"26000,72000" +"26000,64000" +"50000,64000" +"50000,44000" +"46000,44000" +] +) +start &92 +end &79 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16722,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16723,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,42600,51700,44000" +st "addr" +blo "48000,43800" +tm "WireNameMgr" +) +) +on &83 +) +*232 (Wire +uid 17156,0 +optionalChildren [ +*233 (BdJunction +uid 18482,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18483,0 +va (VaSet +vasetType 1 +) +xt "61600,99600,62400,100400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17157,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,94000,109250,116000" +pts [ +"109250,116000" +"106000,116000" +"106000,100000" +"62000,100000" +"62000,94000" +] +) +start &162 +end &84 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17160,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17161,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,114600,110100,116000" +st "memDataIn" +blo "102000,115800" +tm "WireNameMgr" +) +) +on &88 +) +*234 (Wire +uid 17164,0 +shape (OrthoPolyLine +uid 17165,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62000,100000,109250,154000" +pts [ +"109250,154000" +"106000,154000" +"106000,150000" +"62000,150000" +"62000,100000" +] +) +start &151 +end &233 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17170,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17171,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,152600,109100,154000" +st "memDataIn" +blo "101000,153800" +tm "WireNameMgr" +) +) +on &88 +) +*235 (Wire +uid 17515,0 +shape (OrthoPolyLine +uid 17516,0 +va (VaSet +vasetType 3 +) +xt "46000,46000,54000,46000" +pts [ +"46000,46000" +"54000,46000" +] +) +start &79 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17521,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17522,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,44600,55000,46000" +st "write" +blo "51000,45800" +tm "WireNameMgr" +) +) +on &89 +) +*236 (Wire +uid 18258,0 +shape (OrthoPolyLine +uid 18259,0 +va (VaSet +vasetType 3 +) +xt "70000,76000,77250,76000" +pts [ +"70000,76000" +"77250,76000" +] +) +end &145 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18264,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18265,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,74600,74000,76000" +st "write" +blo "70000,75800" +tm "WireNameMgr" +) +) +on &89 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *237 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*238 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*239 (MLText +uid 44,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*240 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*241 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*242 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*243 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*244 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*245 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*246 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-2784,-2784,374267,202077" +cachedDiagramExtent "0,0,166900,198000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "ipp://ippsion.hevs.ch/ipp/PREA309_HPLJ3005DN" +toPrinter 1 +colour 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 50 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 19720,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*247 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*248 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*249 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*250 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*251 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*252 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*253 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*254 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*255 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*256 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*257 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*258 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*259 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*260 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*261 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*262 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*263 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*264 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*265 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*266 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*267 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,99400,7000,100400" +st "Declarations" +blo "0,100200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,100400,3400,101400" +st "Ports:" +blo "0,101200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,110200,4800,111200" +st "Pre User:" +blo "0,111000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,111200,25800,113200" +st "constant addressBitNb: positive := apbi.paddr'length; +constant dataBitNb : positive := apbi.pwdata'length;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,112800,9000,113800" +st "Diagram Signals:" +blo "0,113600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,99400,6000,100400" +st "Post User:" +blo "0,100200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,99400,0,99400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 78,0 +usingSuid 1 +emptyRow *268 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*269 (RefLabelRowHdr +) +*270 (TitleRowHdr +) +*271 (FilterRowHdr +) +*272 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*273 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*274 (GroupColHdr +tm "GroupColHdrMgr" +) +*275 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*276 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*277 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*278 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*279 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*280 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*281 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 10635,0 +) +*282 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 10 +suid 7,0 +) +) +uid 10645,0 +) +*283 (LeafLogPort +port (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 10,0 +) +) +uid 10651,0 +) +*284 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selControl" +t "std_ulogic" +o 24 +suid 33,0 +) +) +uid 10697,0 +) +*285 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 25 +suid 35,0 +) +) +uid 10701,0 +) +*286 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selX" +t "std_ulogic" +o 26 +suid 36,0 +) +) +uid 10703,0 +) +*287 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selY" +t "std_ulogic" +o 27 +suid 37,0 +) +) +uid 10705,0 +) +*288 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 7 +suid 38,0 +) +) +uid 10707,0 +) +*289 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 28 +suid 39,0 +) +) +uid 10709,0 +) +*290 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 23 +suid 40,0 +) +) +uid 10711,0 +) +*291 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 18 +suid 41,0 +) +) +uid 10713,0 +) +*292 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 42,0 +) +) +uid 10715,0 +) +*293 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrX" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 13 +suid 44,0 +) +) +uid 10719,0 +) +*294 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrX" +t "std_ulogic" +o 15 +suid 45,0 +) +) +uid 10721,0 +) +*295 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrX" +t "std_ulogic" +o 21 +suid 46,0 +) +) +uid 10723,0 +) +*296 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnX" +t "std_ulogic" +o 19 +suid 47,0 +) +) +uid 10725,0 +) +*297 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 48,0 +) +) +uid 10727,0 +) +*298 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cntIncrY" +t "std_ulogic" +o 16 +suid 49,0 +) +) +uid 10729,0 +) +*299 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrY" +t "unsigned" +b "(patternAddressBitNb-1 DOWNTO 0)" +o 14 +suid 50,0 +) +) +uid 10731,0 +) +*300 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrY" +t "std_ulogic" +o 22 +suid 51,0 +) +) +uid 10733,0 +) +*301 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memEnY" +t "std_ulogic" +o 20 +suid 52,0 +) +) +uid 10735,0 +) +*302 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 53,0 +) +) +uid 10737,0 +) +*303 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 4 +suid 54,0 +) +) +uid 10739,0 +) +*304 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 9 +suid 70,0 +) +) +uid 10771,0 +) +*305 (LeafLogPort +port (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 1 +suid 71,0 +) +) +uid 13127,0 +) +*306 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 3 +suid 72,0 +) +) +uid 13372,0 +) +*307 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 74,0 +) +) +uid 16726,0 +) +*308 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 12 +suid 75,0 +) +) +uid 16728,0 +) +*309 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 30 +suid 77,0 +) +) +uid 17172,0 +) +*310 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "write" +t "std_ulogic" +o 29 +suid 78,0 +) +) +uid 17556,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*311 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *312 (MRCItem +litem &268 +pos 30 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*313 (MRCItem +litem &269 +pos 0 +dimension 20 +uid 10790,0 +) +*314 (MRCItem +litem &270 +pos 1 +dimension 23 +uid 10791,0 +) +*315 (MRCItem +litem &271 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*316 (MRCItem +litem &281 +pos 1 +dimension 20 +uid 10636,0 +) +*317 (MRCItem +litem &282 +pos 9 +dimension 20 +uid 10646,0 +) +*318 (MRCItem +litem &283 +pos 10 +dimension 20 +uid 10652,0 +) +*319 (MRCItem +litem &284 +pos 12 +dimension 20 +uid 10698,0 +) +*320 (MRCItem +litem &285 +pos 13 +dimension 20 +uid 10702,0 +) +*321 (MRCItem +litem &286 +pos 14 +dimension 20 +uid 10704,0 +) +*322 (MRCItem +litem &287 +pos 15 +dimension 20 +uid 10706,0 +) +*323 (MRCItem +litem &288 +pos 4 +dimension 20 +uid 10708,0 +) +*324 (MRCItem +litem &289 +pos 16 +dimension 20 +uid 10710,0 +) +*325 (MRCItem +litem &290 +pos 17 +dimension 20 +uid 10712,0 +) +*326 (MRCItem +litem &291 +pos 11 +dimension 20 +uid 10714,0 +) +*327 (MRCItem +litem &292 +pos 5 +dimension 20 +uid 10716,0 +) +*328 (MRCItem +litem &293 +pos 18 +dimension 20 +uid 10720,0 +) +*329 (MRCItem +litem &294 +pos 19 +dimension 20 +uid 10722,0 +) +*330 (MRCItem +litem &295 +pos 20 +dimension 20 +uid 10724,0 +) +*331 (MRCItem +litem &296 +pos 21 +dimension 20 +uid 10726,0 +) +*332 (MRCItem +litem &297 +pos 6 +dimension 20 +uid 10728,0 +) +*333 (MRCItem +litem &298 +pos 22 +dimension 20 +uid 10730,0 +) +*334 (MRCItem +litem &299 +pos 23 +dimension 20 +uid 10732,0 +) +*335 (MRCItem +litem &300 +pos 24 +dimension 20 +uid 10734,0 +) +*336 (MRCItem +litem &301 +pos 25 +dimension 20 +uid 10736,0 +) +*337 (MRCItem +litem &302 +pos 7 +dimension 20 +uid 10738,0 +) +*338 (MRCItem +litem &303 +pos 3 +dimension 20 +uid 10740,0 +) +*339 (MRCItem +litem &304 +pos 8 +dimension 20 +uid 10772,0 +) +*340 (MRCItem +litem &305 +pos 0 +dimension 20 +uid 13126,0 +) +*341 (MRCItem +litem &306 +pos 2 +dimension 20 +uid 13371,0 +) +*342 (MRCItem +litem &307 +pos 26 +dimension 20 +uid 16727,0 +) +*343 (MRCItem +litem &308 +pos 27 +dimension 20 +uid 16729,0 +) +*344 (MRCItem +litem &309 +pos 28 +dimension 20 +uid 17173,0 +) +*345 (MRCItem +litem &310 +pos 29 +dimension 20 +uid 17557,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*346 (MRCItem +litem &272 +pos 0 +dimension 20 +uid 10794,0 +) +*347 (MRCItem +litem &274 +pos 1 +dimension 50 +uid 10795,0 +) +*348 (MRCItem +litem &275 +pos 2 +dimension 100 +uid 10796,0 +) +*349 (MRCItem +litem &276 +pos 3 +dimension 50 +uid 10797,0 +) +*350 (MRCItem +litem &277 +pos 4 +dimension 100 +uid 10798,0 +) +*351 (MRCItem +litem &278 +pos 5 +dimension 100 +uid 10799,0 +) +*352 (MRCItem +litem &279 +pos 6 +dimension 50 +uid 10800,0 +) +*353 (MRCItem +litem &280 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *354 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*355 (RefLabelRowHdr +) +*356 (TitleRowHdr +) +*357 (FilterRowHdr +) +*358 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*359 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*360 (GroupColHdr +tm "GroupColHdrMgr" +) +*361 (NameColHdr +tm "GenericNameColHdrMgr" +) +*362 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*363 (InitColHdr +tm "GenericValueColHdrMgr" +) +*364 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*365 (EolColHdr +tm "GenericEolColHdrMgr" +) +*366 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 12900,0 +) +*367 (LogGeneric +generic (GiElement +name "pindex" +type "natural" +value "" +) +uid 13874,0 +) +*368 (LogGeneric +generic (GiElement +name "paddr" +type "positive" +value "" +) +uid 14113,0 +) +*369 (LogGeneric +generic (GiElement +name "pmask" +type "positive" +value "16#FFF#" +) +uid 14352,0 +) +*370 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 15331,0 +) +*371 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 16243,0 +) +*372 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "8" +) +uid 17007,0 +) +] +) +pdm (PhysicalDM +uid 10815,0 +optionalChildren [ +*373 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *374 (MRCItem +litem &354 +pos 7 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*375 (MRCItem +litem &355 +pos 0 +dimension 20 +uid 10818,0 +) +*376 (MRCItem +litem &356 +pos 1 +dimension 23 +uid 10819,0 +) +*377 (MRCItem +litem &357 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*378 (MRCItem +litem &366 +pos 6 +dimension 20 +uid 12899,0 +) +*379 (MRCItem +litem &367 +pos 0 +dimension 20 +uid 13873,0 +) +*380 (MRCItem +litem &368 +pos 1 +dimension 20 +uid 14112,0 +) +*381 (MRCItem +litem &369 +pos 2 +dimension 20 +uid 14351,0 +) +*382 (MRCItem +litem &370 +pos 3 +dimension 20 +uid 15330,0 +) +*383 (MRCItem +litem &371 +pos 4 +dimension 20 +uid 16242,0 +) +*384 (MRCItem +litem &372 +pos 5 +dimension 20 +uid 17006,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*385 (MRCItem +litem &358 +pos 0 +dimension 20 +uid 10822,0 +) +*386 (MRCItem +litem &360 +pos 1 +dimension 50 +uid 10823,0 +) +*387 (MRCItem +litem &361 +pos 2 +dimension 100 +uid 10824,0 +) +*388 (MRCItem +litem &362 +pos 3 +dimension 100 +uid 10825,0 +) +*389 (MRCItem +litem &363 +pos 4 +dimension 50 +uid 10826,0 +) +*390 (MRCItem +litem &364 +pos 5 +dimension 50 +uid 10827,0 +) +*391 (MRCItem +litem &365 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/symbol.sb new file mode 100644 index 0000000..a8f837d --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@periph@registers/symbol.sb @@ -0,0 +1,2182 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "grlib" +unitName "amba" +) +] +libraryRefs [ +"ieee" +"grlib" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2022,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 206,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 3 +suid 11,0 +) +) +uid 207,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 1 +suid 2,0 +) +) +uid 209,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 4 +suid 12,0 +) +) +uid 214,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +uid 525,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +uid 527,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 2016,0 +) +) +uid 529,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 2017,0 +) +) +uid 531,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 9 +suid 2018,0 +) +) +uid 533,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 10 +suid 2021,0 +) +) +uid 766,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2022,0 +) +) +uid 840,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 132,0 +optionalChildren [ +*27 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 135,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 137,0 +) +*29 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*30 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 162,0 +) +*31 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 163,0 +) +*32 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 165,0 +) +*33 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 170,0 +) +*34 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 524,0 +) +*35 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 526,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 528,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 530,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 532,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 767,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 839,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*41 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 141,0 +) +*42 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 145,0 +) +*43 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 147,0 +) +*44 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 149,0 +) +*45 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 151,0 +) +*46 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 153,0 +) +*47 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 155,0 +) +*48 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +*61 (LogGeneric +generic (GiElement +name "pindex" +type "natural" +value "" +) +uid 196,0 +) +*62 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 197,0 +) +*63 (LogGeneric +generic (GiElement +name "paddr" +type "positive" +value "" +) +uid 474,0 +) +*64 (LogGeneric +generic (GiElement +name "pmask" +type "positive" +value "16#FFF#" +) +uid 476,0 +) +*65 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 651,0 +) +*66 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 736,0 +) +*67 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "8" +) +uid 814,0 +) +] +) +pdm (PhysicalDM +uid 218,0 +optionalChildren [ +*68 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *69 (MRCItem +litem &49 +pos 7 +dimension 20 +) +uid 172,0 +optionalChildren [ +*70 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 175,0 +) +*71 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 177,0 +) +*72 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*73 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 198,0 +) +*74 (MRCItem +litem &62 +pos 6 +dimension 20 +uid 199,0 +) +*75 (MRCItem +litem &63 +pos 1 +dimension 20 +uid 475,0 +) +*76 (MRCItem +litem &64 +pos 2 +dimension 20 +uid 477,0 +) +*77 (MRCItem +litem &65 +pos 3 +dimension 20 +uid 652,0 +) +*78 (MRCItem +litem &66 +pos 4 +dimension 20 +uid 737,0 +) +*79 (MRCItem +litem &67 +pos 5 +dimension 20 +uid 815,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*80 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 181,0 +) +*81 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 185,0 +) +*82 (MRCItem +litem &56 +pos 2 +dimension 100 +uid 187,0 +) +*83 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 189,0 +) +*84 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 191,0 +) +*85 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 193,0 +) +*86 (MRCItem +litem &60 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@registers/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@registers/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@registers" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriphRegisters" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphRegisters" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:21" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerPeriphRegisters" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@periph@registers/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerPeriphRegisters/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:21" +) +(vvPair +variable "unit" +value "beamerPeriphRegisters" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*87 (SymbolBody +uid 8,0 +optionalChildren [ +*88 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,25625,36000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "37000,25400,39500,26300" +st "clock" +blo "37000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12700,21000,13600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*89 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,15625,36000,16375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "37000,15400,39000,16300" +st "apbi" +blo "37000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11800,23500,12700" +st "apbi : IN apb_slv_in_type ;" +) +thePort (LogicalPort +decl (Decl +n "apbi" +t "apb_slv_in_type" +o 1 +suid 2,0 +) +) +) +*90 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,17625,36000,18375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +font "courier,9,0" +) +xt "37000,17400,39000,18300" +st "apbo" +blo "37000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13600,24000,14500" +st "apbo : OUT apb_slv_out_type ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "apbo" +t "apb_slv_out_type" +o 3 +suid 11,0 +) +) +) +*91 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,11250,44375,12000" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "42000,13000,45500,13900" +st "testOut" +blo "42000,13700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14500,34000,15400" +st "testOut : OUT std_ulogic_vector (1 TO testOutBitNb) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 4 +suid 12,0 +) +) +) +*92 (CptPort +uid 534,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 535,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,15625,52750,16375" +) +tg (CPTG +uid 536,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 537,0 +va (VaSet +font "courier,9,0" +) +xt "49500,15400,51000,16300" +st "run" +ju 2 +blo "51000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 538,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17200,21000,18100" +st "run : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 7 +suid 2014,0 +) +) +) +*93 (CptPort +uid 539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 540,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,19625,52750,20375" +) +tg (CPTG +uid 541,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 542,0 +va (VaSet +font "courier,9,0" +) +xt "44500,19400,51000,20300" +st "updatePeriod" +ju 2 +blo "51000,20100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 543,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18100,35000,19000" +st "updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 8 +suid 2015,0 +) +) +) +*94 (CptPort +uid 544,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 545,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 546,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 547,0 +va (VaSet +font "courier,9,0" +) +xt "49000,23400,51000,24300" +st "memX" +ju 2 +blo "51000,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 548,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15400,36500,16300" +st "memX : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memX" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +suid 2016,0 +) +) +) +*95 (CptPort +uid 549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,25625,52750,26375" +) +tg (CPTG +uid 551,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 552,0 +va (VaSet +font "courier,9,0" +) +xt "49000,25400,51000,26300" +st "memY" +ju 2 +blo "51000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 553,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16300,36500,17200" +st "memY : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memY" +t "std_ulogic_vector" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +suid 2017,0 +) +) +) +*96 (CptPort +uid 554,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 555,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,17625,52750,18375" +) +tg (CPTG +uid 556,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 557,0 +va (VaSet +font "courier,9,0" +) +xt "43500,17400,51000,18300" +st "interpolateLin" +ju 2 +blo "51000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 558,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19000,21000,19900" +st "interpolateLin : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLin" +t "std_ulogic" +o 9 +suid 2018,0 +) +) +) +*97 (CptPort +uid 761,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 762,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,27625,36000,28375" +) +tg (CPTG +uid 763,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 764,0 +va (VaSet +font "courier,9,0" +) +xt "37000,27400,39500,28300" +st "reset" +blo "37000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 765,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19900,21000,20800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 10 +suid 2021,0 +) +) +) +*98 (CptPort +uid 841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 842,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,21625,52750,22375" +) +tg (CPTG +uid 843,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 844,0 +va (VaSet +font "courier,9,0" +) +xt "45500,21400,51000,22300" +st "newPolynom" +ju 2 +blo "51000,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 845,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20800,20000,21700" +st "newPolynom : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "newPolynom" +t "std_ulogic" +o 11 +suid 2022,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,12000,52000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "36600,29800,43100,30700" +st "SystemOnChip" +blo "36600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "36600,30700,47600,31600" +st "beamerPeriphRegisters" +blo "36600,31400" +) +) +gi *99 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "36000,33600,55500,41700" +st "Generic Declarations + +pindex natural +paddr positive +pmask positive 16#FFF# +updatePeriodBitNb positive 16 +signalBitNb positive 16 +patternAddressBitNb positive 8 +testOutBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "pindex" +type "natural" +value "" +) +(GiElement +name "paddr" +type "positive" +value "" +) +(GiElement +name "pmask" +type "positive" +value "16#FFF#" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "8" +) +(GiElement +name "testOutBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*100 (Grouping +uid 16,0 +optionalChildren [ +*101 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*102 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*103 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*104 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*105 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*106 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*107 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*108 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*109 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*110 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*111 (CommentGraphic +uid 869,0 +shape (PolyLine2D +pts [ +"36000,32000" +"52000,32000" +] +uid 870,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "36000,32000,52000,32000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *112 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*114 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY grlib; + USE grlib.amba.all;" +tm "PackageList" +) +] +) +windowSize "26,33,1269,883" +viewArea "-1100,-1100,75700,52000" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *115 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *116 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,6500,10900" +st "Declarations" +blo "0,10700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10900,3000,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,21700,2500,22600" +st "User:" +blo "0,22400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,10000,7500,10900" +st "Internal User:" +blo "0,10700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22600,2000,22600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,10000,0,10000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 939,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/struct.bd new file mode 100644 index 0000000..efb3d72 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/struct.bd @@ -0,0 +1,13205 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_mst" +duLibraryName "AhbLite" +duName "ahbMasterInterface" +elements [ +] +mwi 0 +uid 16717,0 +) +(Instance +name "I_mux" +duLibraryName "AhbLite" +duName "ahbMultiplexor" +elements [ +] +mwi 0 +uid 16806,0 +) +(Instance +name "I_dec" +duLibraryName "AhbLite" +duName "ahbDecoder" +elements [ +(GiElement +name "ahbMemoryLocation" +type "ahbMemoryLocationVector" +value "ahbMemoryLocation" +) +] +mwi 0 +uid 16843,0 +) +(Instance +name "I_connT" +duLibraryName "AhbLite" +duName "ahbMuxConnector" +elements [ +(GiElement +name "index" +type "positive" +value "gpioIndex" +) +] +mwi 0 +uid 16860,0 +) +(Instance +name "I_connUart" +duLibraryName "AhbLite" +duName "ahbMuxConnector" +elements [ +(GiElement +name "index" +type "positive" +value "uartIndex" +) +] +mwi 0 +uid 16901,0 +) +(Instance +name "I_UART" +duLibraryName "AhbLiteComponents" +duName "ahbUart" +elements [ +(GiElement +name "txFifoDepth" +type "positive" +value "8" +) +(GiElement +name "rxFifoDepth" +type "positive" +value "1" +) +] +mwi 0 +uid 18307,0 +) +(Instance +name "I_connBeam" +duLibraryName "AhbLite" +duName "ahbMuxConnector" +elements [ +(GiElement +name "index" +type "positive" +value "beamerIndex" +) +] +mwi 0 +uid 18370,0 +) +(Instance +name "I_GPIO" +duLibraryName "AhbLiteComponents" +duName "ahbGpio" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +] +mwi 0 +uid 18666,0 +) +(Instance +name "I_up" +duLibraryName "NanoBlaze" +duName "nanoProcessor" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "ahbAddressBitNb" +) +(GiElement +name "registerBitNb" +type "positive" +value "ahbDataBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +(GiElement +name "instructionBitNb" +type "positive" +value "instructionBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +mwi 0 +uid 19476,0 +) +(Instance +name "I_beamer" +duLibraryName "SystemOnChip" +duName "ahbBeamer" +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +mwi 0 +uid 20730,0 +) +(Instance +name "I_rom" +duLibraryName "SystemOnChip" +duName "programRom" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "instructionBitNb" +) +] +mwi 0 +uid 20759,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@soc\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@soc\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@soc" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerSoc" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerSoc" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:02:29" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerSoc" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamer@soc\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip\\hds\\beamerSoc\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:02:29" +) +(vvPair +variable "unit" +value "beamerSoc" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "181000,122000,198000,123000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "181200,122500,181200,122500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "198000,118000,202000,119000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "198200,118500,198200,118500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "181000,120000,198000,121000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "181200,120500,181200,120500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "177000,120000,181000,121000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "177200,120500,177200,120500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "198000,119000,218000,123000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "198200,119200,212300,120400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "202000,118000,218000,119000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "202200,118500,202200,118500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "177000,118000,198000,120000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "182350,118400,192650,119600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "177000,121000,181000,122000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "177200,121500,177200,121500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "177000,122000,181000,123000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "177200,122500,177200,122500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "181000,121000,198000,122000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "181200,121500,181200,121500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "177000,118000,218000,123000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoOut +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "213500,58625,215000,59375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "213000,59000,213500,59000" +pts [ +"213000,59000" +"213500,59000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,58300,219700,59700" +st "outX" +blo "216000,59500" +tm "WireNameMgr" +) +) +) +*13 (Net +uid 121,0 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 4,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,52600,13300,53600" +st "outX : std_ulogic" +) +) +*14 (PortIoOut +uid 123,0 +shape (CompositeShape +uid 124,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 125,0 +sl 0 +ro 270 +xt "213500,60625,215000,61375" +) +(Line +uid 126,0 +sl 0 +ro 270 +xt "213000,61000,213500,61000" +pts [ +"213000,61000" +"213500,61000" +] +) +] +) +tg (WTG +uid 127,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 128,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,60300,219600,61700" +st "outY" +blo "216000,61500" +tm "WireNameMgr" +) +) +) +*15 (Net +uid 135,0 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +declText (MLText +uid 136,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,53500,13300,54500" +st "outY : std_ulogic" +) +) +*16 (PortIoIn +uid 5080,0 +shape (CompositeShape +uid 5081,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5082,0 +sl 0 +ro 90 +xt "213500,64625,215000,65375" +) +(Line +uid 5083,0 +sl 0 +ro 90 +xt "213000,65000,213500,65000" +pts [ +"213500,65000" +"213000,65000" +] +) +] +) +tg (WTG +uid 5084,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5085,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,64300,222900,65700" +st "selSinCos" +blo "216000,65500" +tm "WireNameMgr" +) +) +) +*17 (Net +uid 6503,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 62,0 +) +declText (MLText +uid 6504,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,54400,13800,55400" +st "selSinCos : std_ulogic" +) +) +*18 (PortIoIn +uid 16654,0 +shape (CompositeShape +uid 16655,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16656,0 +sl 0 +ro 270 +xt "34000,-3375,35500,-2625" +) +(Line +uid 16657,0 +sl 0 +ro 270 +xt "35500,-3000,36000,-3000" +pts [ +"35500,-3000" +"36000,-3000" +] +) +] +) +tg (WTG +uid 16658,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16659,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "28900,-3700,33000,-2300" +st "reset" +ju 2 +blo "33000,-2500" +tm "WireNameMgr" +) +s (Text +uid 16660,0 +va (VaSet +font "Verdana,12,0" +) +xt "28900,-2300,28900,-2300" +ju 2 +blo "28900,-2300" +tm "SignalTypeMgr" +) +) +) +*19 (PortIoIn +uid 16661,0 +shape (CompositeShape +uid 16662,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16663,0 +sl 0 +ro 270 +xt "34000,-5375,35500,-4625" +) +(Line +uid 16664,0 +sl 0 +ro 270 +xt "35500,-5000,36000,-5000" +pts [ +"35500,-5000" +"36000,-5000" +] +) +] +) +tg (WTG +uid 16665,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16666,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "29200,-5700,33000,-4300" +st "clock" +ju 2 +blo "33000,-4500" +tm "WireNameMgr" +) +s (Text +uid 16667,0 +va (VaSet +font "Verdana,12,0" +) +xt "29200,-4300,29200,-4300" +ju 2 +blo "29200,-4300" +tm "SignalTypeMgr" +) +) +) +*20 (SaComponent +uid 16717,0 +optionalChildren [ +*21 (CptPort +uid 16726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16727,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,8625,85000,9375" +) +tg (CPTG +uid 16728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16729,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,8300,89800,9700" +st "clock" +blo "86000,9500" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*22 (CptPort +uid 16730,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16731,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,10625,85000,11375" +) +tg (CPTG +uid 16732,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16733,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,10300,90100,11700" +st "reset" +blo "86000,11500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +) +) +) +*23 (CptPort +uid 16734,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16735,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,-7375,85000,-6625" +) +tg (CPTG +uid 16736,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16737,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,-7700,95800,-6300" +st "pReadStrobe" +blo "86000,-6500" +) +) +thePort (LogicalPort +decl (Decl +n "pReadStrobe" +t "std_uLogic" +o 7 +) +) +) +*24 (CptPort +uid 16738,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16739,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,-5375,85000,-4625" +) +tg (CPTG +uid 16740,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16741,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,-5700,96000,-4300" +st "pWriteStrobe" +blo "86000,-4500" +) +) +thePort (LogicalPort +decl (Decl +n "pWriteStrobe" +t "std_uLogic" +o 9 +) +) +) +*25 (CptPort +uid 16742,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16743,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,-13375,85000,-12625" +) +tg (CPTG +uid 16744,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16745,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,-13700,92700,-12300" +st "pAddress" +blo "86000,-12500" +) +) +thePort (LogicalPort +decl (Decl +n "pAddress" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +) +) +) +*26 (CptPort +uid 16746,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16747,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,-11375,85000,-10625" +) +tg (CPTG +uid 16748,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16749,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,-11700,92900,-10300" +st "pDataOut" +blo "86000,-10500" +) +) +thePort (LogicalPort +decl (Decl +n "pDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +*27 (CptPort +uid 16750,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16751,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84250,-9375,85000,-8625" +) +tg (CPTG +uid 16752,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16753,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,-9700,91900,-8300" +st "pDataIn" +blo "86000,-8500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "pDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +) +) +) +*28 (CptPort +uid 16754,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16755,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-13375,101750,-12625" +) +tg (CPTG +uid 16756,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16757,0 +va (VaSet +font "Verdana,12,0" +) +xt "95500,-13700,100000,-12300" +st "hAddr" +ju 2 +blo "100000,-12500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 11 +) +) +) +*29 (CptPort +uid 16758,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16759,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-11375,101750,-10625" +) +tg (CPTG +uid 16760,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16761,0 +va (VaSet +font "Verdana,12,0" +) +xt "94100,-11700,100000,-10300" +st "hWData" +ju 2 +blo "100000,-10500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 19 +) +) +) +*30 (CptPort +uid 16762,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16763,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,2625,101750,3375" +) +tg (CPTG +uid 16764,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16765,0 +va (VaSet +font "Verdana,12,0" +) +xt "94600,2300,100000,3700" +st "hRData" +ju 2 +blo "100000,3500" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*31 (CptPort +uid 16766,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16767,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-7375,101750,-6625" +) +tg (CPTG +uid 16768,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16769,0 +va (VaSet +font "Verdana,12,0" +) +xt "95000,-7700,100000,-6300" +st "hWrite" +ju 2 +blo "100000,-6500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 20 +) +) +) +*32 (CptPort +uid 16770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16771,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-5375,101750,-4625" +) +tg (CPTG +uid 16772,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16773,0 +va (VaSet +font "Verdana,12,0" +) +xt "95800,-5700,100000,-4300" +st "hSize" +ju 2 +blo "100000,-4500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 17 +) +) +) +*33 (CptPort +uid 16774,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16775,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-3375,101750,-2625" +) +tg (CPTG +uid 16776,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16777,0 +va (VaSet +font "Verdana,12,0" +) +xt "95100,-3700,100000,-2300" +st "hBurst" +ju 2 +blo "100000,-2500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 12 +) +) +) +*34 (CptPort +uid 16778,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16779,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-1375,101750,-625" +) +tg (CPTG +uid 16780,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16781,0 +va (VaSet +font "Verdana,12,0" +) +xt "95800,-1700,100000,-300" +st "hProt" +ju 2 +blo "100000,-500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 15 +) +) +) +*35 (CptPort +uid 16782,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16783,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,-9375,101750,-8625" +) +tg (CPTG +uid 16784,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16785,0 +va (VaSet +font "Verdana,12,0" +) +xt "94900,-9700,100000,-8300" +st "hTrans" +ju 2 +blo "100000,-8500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 18 +) +) +) +*36 (CptPort +uid 16786,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16787,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,625,101750,1375" +) +tg (CPTG +uid 16788,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16789,0 +va (VaSet +font "Verdana,12,0" +) +xt "92600,300,100000,1700" +st "hMastLock" +ju 2 +blo "100000,1500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 14 +) +) +) +*37 (CptPort +uid 16790,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16791,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,4625,101750,5375" +) +tg (CPTG +uid 16792,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16793,0 +va (VaSet +font "Verdana,12,0" +) +xt "94500,4300,100000,5700" +st "hReady" +ju 2 +blo "100000,5500" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +) +) +) +*38 (CptPort +uid 16794,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16795,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,6625,101750,7375" +) +tg (CPTG +uid 16796,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16797,0 +va (VaSet +font "Verdana,12,0" +) +xt "95300,6300,100000,7700" +st "hResp" +ju 2 +blo "100000,7500" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +) +) +) +*39 (CptPort +uid 16798,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16799,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,8625,101750,9375" +) +tg (CPTG +uid 16800,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16801,0 +va (VaSet +font "Verdana,12,0" +) +xt "96500,8300,100000,9700" +st "hClk" +ju 2 +blo "100000,9500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 13 +) +) +) +*40 (CptPort +uid 16802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16803,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101000,10625,101750,11375" +) +tg (CPTG +uid 16804,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16805,0 +va (VaSet +font "Verdana,12,0" +) +xt "93200,10300,100000,11700" +st "hReset_n" +ju 2 +blo "100000,11500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 16 +) +) +) +] +shape (Rectangle +uid 16718,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "85000,-17000,101000,13000" +) +oxt "47000,12000,63000,42000" +ttg (MlTextGroup +uid 16719,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 16720,0 +va (VaSet +) +xt "85100,12700,89700,13900" +st "AhbLite" +blo "85100,13700" +tm "BdLibraryNameMgr" +) +*42 (Text +uid 16721,0 +va (VaSet +) +xt "85100,13700,96400,14900" +st "ahbMasterInterface" +blo "85100,14700" +tm "CptNameMgr" +) +*43 (Text +uid 16722,0 +va (VaSet +) +xt "85100,14700,88800,15900" +st "I_mst" +blo "85100,15700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16723,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16724,0 +text (MLText +uid 16725,0 +va (VaSet +) +xt "85000,15400,85000,15400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*44 (SaComponent +uid 16806,0 +optionalChildren [ +*45 (CptPort +uid 16815,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16816,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "141000,22625,141750,23375" +) +tg (CPTG +uid 16817,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16818,0 +va (VaSet +font "Verdana,12,0" +) +xt "136500,22300,140000,23700" +st "hSel" +ju 2 +blo "140000,23500" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*46 (CptPort +uid 16819,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16820,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "141000,26625,141750,27375" +) +tg (CPTG +uid 16821,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16822,0 +va (VaSet +font "Verdana,12,0" +) +xt "133800,26300,140000,27700" +st "hRDataV" +ju 2 +blo "140000,27500" +) +) +thePort (LogicalPort +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*47 (CptPort +uid 16823,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16824,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,28625,125000,29375" +) +tg (CPTG +uid 16825,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16826,0 +va (VaSet +font "Verdana,12,0" +) +xt "126000,28300,131500,29700" +st "hReady" +blo "126000,29500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*48 (CptPort +uid 16827,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16828,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,30625,125000,31375" +) +tg (CPTG +uid 16829,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16830,0 +va (VaSet +font "Verdana,12,0" +) +xt "126000,30300,130700,31700" +st "hResp" +blo "126000,31500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*49 (CptPort +uid 16831,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16832,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,26625,125000,27375" +) +tg (CPTG +uid 16833,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16834,0 +va (VaSet +font "Verdana,12,0" +) +xt "126000,26300,131400,27700" +st "hRData" +blo "126000,27500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*50 (CptPort +uid 16835,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16836,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "141000,28625,141750,29375" +) +tg (CPTG +uid 16837,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16838,0 +va (VaSet +font "Verdana,12,0" +) +xt "133700,28300,140000,29700" +st "hReadyV" +ju 2 +blo "140000,29500" +) +) +thePort (LogicalPort +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*51 (CptPort +uid 16839,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16840,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "141000,30625,141750,31375" +) +tg (CPTG +uid 16841,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16842,0 +va (VaSet +font "Verdana,12,0" +) +xt "134500,30300,140000,31700" +st "hRespV" +ju 2 +blo "140000,31500" +) +) +thePort (LogicalPort +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +] +shape (Rectangle +uid 16807,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "125000,19000,141000,35000" +) +oxt "40000,9000,56000,25000" +ttg (MlTextGroup +uid 16808,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*52 (Text +uid 16809,0 +va (VaSet +) +xt "125100,34700,129700,35900" +st "AhbLite" +blo "125100,35700" +tm "BdLibraryNameMgr" +) +*53 (Text +uid 16810,0 +va (VaSet +) +xt "125100,35700,133900,36900" +st "ahbMultiplexor" +blo "125100,36700" +tm "CptNameMgr" +) +*54 (Text +uid 16811,0 +va (VaSet +) +xt "125100,36700,129000,37900" +st "I_mux" +blo "125100,37700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16812,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16813,0 +text (MLText +uid 16814,0 +va (VaSet +) +xt "125000,37400,125000,37400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*55 (SaComponent +uid 16843,0 +optionalChildren [ +*56 (CptPort +uid 16852,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16853,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,-1375,125000,-625" +) +tg (CPTG +uid 16854,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16855,0 +va (VaSet +font "Verdana,12,0" +) +xt "126000,-1700,130500,-300" +st "hAddr" +blo "126000,-500" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +) +) +) +*57 (CptPort +uid 16856,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16857,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "141000,-1375,141750,-625" +) +tg (CPTG +uid 16858,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16859,0 +va (VaSet +font "Verdana,12,0" +) +xt "136500,-1700,140000,-300" +st "hSel" +ju 2 +blo "140000,-500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +] +shape (Rectangle +uid 16844,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "125000,-5000,141000,3000" +) +oxt "39000,14000,55000,22000" +ttg (MlTextGroup +uid 16845,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +uid 16846,0 +va (VaSet +) +xt "125100,2700,129700,3900" +st "AhbLite" +blo "125100,3700" +tm "BdLibraryNameMgr" +) +*59 (Text +uid 16847,0 +va (VaSet +) +xt "125100,3700,132500,4900" +st "ahbDecoder" +blo "125100,4700" +tm "CptNameMgr" +) +*60 (Text +uid 16848,0 +va (VaSet +) +xt "125100,4700,128700,5900" +st "I_dec" +blo "125100,5700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16849,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16850,0 +text (MLText +uid 16851,0 +va (VaSet +) +xt "125000,5400,166000,6600" +st "ahbMemoryLocation = ahbMemoryLocation ( ahbMemoryLocationVector ) " +) +header "" +) +elements [ +(GiElement +name "ahbMemoryLocation" +type "ahbMemoryLocationVector" +value "ahbMemoryLocation" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*61 (SaComponent +uid 16860,0 +optionalChildren [ +*62 (CptPort +uid 16869,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16870,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,-1375,157000,-625" +) +tg (CPTG +uid 16871,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16872,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,-1700,162300,-300" +st "hSelV" +blo "158000,-500" +) +) +thePort (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*63 (CptPort +uid 16873,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16874,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,625,157000,1375" +) +tg (CPTG +uid 16875,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16876,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,300,164200,1700" +st "hRDataV" +blo "158000,1500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*64 (CptPort +uid 16877,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16878,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,2625,173750,3375" +) +tg (CPTG +uid 16879,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16880,0 +va (VaSet +font "Verdana,12,0" +) +xt "166500,2300,172000,3700" +st "hReady" +ju 2 +blo "172000,3500" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*65 (CptPort +uid 16881,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16882,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,4625,173750,5375" +) +tg (CPTG +uid 16883,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16884,0 +va (VaSet +font "Verdana,12,0" +) +xt "167300,4300,172000,5700" +st "hResp" +ju 2 +blo "172000,5500" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*66 (CptPort +uid 16885,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16886,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,625,173750,1375" +) +tg (CPTG +uid 16887,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16888,0 +va (VaSet +font "Verdana,12,0" +) +xt "166600,300,172000,1700" +st "hRData" +ju 2 +blo "172000,1500" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*67 (CptPort +uid 16889,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16890,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,2625,157000,3375" +) +tg (CPTG +uid 16891,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16892,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,2300,164300,3700" +st "hReadyV" +blo "158000,3500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*68 (CptPort +uid 16893,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16894,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,4625,157000,5375" +) +tg (CPTG +uid 16895,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16896,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,4300,163500,5700" +st "hRespV" +blo "158000,5500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +*69 (CptPort +uid 16897,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16898,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,-1375,173750,-625" +) +tg (CPTG +uid 16899,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16900,0 +va (VaSet +font "Verdana,12,0" +) +xt "168500,-1700,172000,-300" +st "hSel" +ju 2 +blo "172000,-500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +) +) +) +] +shape (Rectangle +uid 16861,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "157000,-5000,173000,9000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 16862,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 16863,0 +va (VaSet +) +xt "157100,8700,161700,9900" +st "AhbLite" +blo "157100,9700" +tm "BdLibraryNameMgr" +) +*71 (Text +uid 16864,0 +va (VaSet +) +xt "157100,9700,167600,10900" +st "ahbMuxConnector" +blo "157100,10700" +tm "CptNameMgr" +) +*72 (Text +uid 16865,0 +va (VaSet +) +xt "157100,10700,162000,11900" +st "I_connT" +blo "157100,11700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16866,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16867,0 +text (MLText +uid 16868,0 +va (VaSet +) +xt "157000,11400,175300,12600" +st "index = gpioIndex ( positive ) " +) +header "" +) +elements [ +(GiElement +name "index" +type "positive" +value "gpioIndex" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*73 (SaComponent +uid 16901,0 +optionalChildren [ +*74 (CptPort +uid 16910,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16911,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,32625,157000,33375" +) +tg (CPTG +uid 16912,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16913,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,32300,162300,33700" +st "hSelV" +blo "158000,33500" +) +) +thePort (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*75 (CptPort +uid 16914,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16915,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,34625,157000,35375" +) +tg (CPTG +uid 16916,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16917,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,34300,164200,35700" +st "hRDataV" +blo "158000,35500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*76 (CptPort +uid 16918,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16919,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,36625,173750,37375" +) +tg (CPTG +uid 16920,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16921,0 +va (VaSet +font "Verdana,12,0" +) +xt "166500,36300,172000,37700" +st "hReady" +ju 2 +blo "172000,37500" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*77 (CptPort +uid 16922,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16923,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,38625,173750,39375" +) +tg (CPTG +uid 16924,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16925,0 +va (VaSet +font "Verdana,12,0" +) +xt "167300,38300,172000,39700" +st "hResp" +ju 2 +blo "172000,39500" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*78 (CptPort +uid 16926,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16927,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,34625,173750,35375" +) +tg (CPTG +uid 16928,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16929,0 +va (VaSet +font "Verdana,12,0" +) +xt "166600,34300,172000,35700" +st "hRData" +ju 2 +blo "172000,35500" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*79 (CptPort +uid 16930,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16931,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,36625,157000,37375" +) +tg (CPTG +uid 16932,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16933,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,36300,164300,37700" +st "hReadyV" +blo "158000,37500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*80 (CptPort +uid 16934,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16935,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,38625,157000,39375" +) +tg (CPTG +uid 16936,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 16937,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,38300,163500,39700" +st "hRespV" +blo "158000,39500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +*81 (CptPort +uid 16938,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 16939,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,32625,173750,33375" +) +tg (CPTG +uid 16940,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 16941,0 +va (VaSet +font "Verdana,12,0" +) +xt "168500,32300,172000,33700" +st "hSel" +ju 2 +blo "172000,33500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +) +) +) +] +shape (Rectangle +uid 16902,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "157000,29000,173000,43000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 16903,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 16904,0 +va (VaSet +) +xt "157100,42700,161700,43900" +st "AhbLite" +blo "157100,43700" +tm "BdLibraryNameMgr" +) +*83 (Text +uid 16905,0 +va (VaSet +) +xt "157100,43700,167600,44900" +st "ahbMuxConnector" +blo "157100,44700" +tm "CptNameMgr" +) +*84 (Text +uid 16906,0 +va (VaSet +) +xt "157100,44700,164200,45900" +st "I_connUart" +blo "157100,45700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 16907,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 16908,0 +text (MLText +uid 16909,0 +va (VaSet +) +xt "157000,45400,175200,46600" +st "index = uartIndex ( positive ) " +) +header "" +) +elements [ +(GiElement +name "index" +type "positive" +value "uartIndex" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*85 (Net +uid 17490,0 +decl (Decl +n "int" +t "std_uLogic" +o 13 +suid 87,0 +) +declText (MLText +uid 17491,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,91300,16200,92300" +st "SIGNAL int : std_uLogic" +) +) +*86 (Net +uid 17492,0 +decl (Decl +n "upAddress" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 14 +suid 88,0 +) +declText (MLText +uid 17493,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,92200,30600,93200" +st "SIGNAL upAddress : unsigned(ahbAddressBitNb-1 DOWNTO 0)" +) +) +*87 (Net +uid 17494,0 +decl (Decl +n "upDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 15 +suid 89,0 +) +declText (MLText +uid 17495,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,93100,33000,94100" +st "SIGNAL upDataOut : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*88 (Net +uid 17496,0 +decl (Decl +n "upDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 16 +suid 90,0 +) +declText (MLText +uid 17497,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,94000,32700,95000" +st "SIGNAL upDataIn : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*89 (Net +uid 17498,0 +decl (Decl +n "upReadStrobe" +t "std_uLogic" +o 17 +suid 91,0 +) +declText (MLText +uid 17499,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,94900,18200,95900" +st "SIGNAL upReadStrobe : std_uLogic" +) +) +*90 (Net +uid 17500,0 +decl (Decl +n "upWriteStrobe" +t "std_uLogic" +o 18 +suid 92,0 +) +declText (MLText +uid 17501,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,95800,17900,96800" +st "SIGNAL upWriteStrobe : std_uLogic" +) +) +*91 (Net +uid 17502,0 +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 19 +suid 93,0 +) +declText (MLText +uid 17503,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,96700,30000,97700" +st "SIGNAL hAddr : unsigned(ahbAddressBitNb-1 DOWNTO 0)" +) +) +*92 (Net +uid 17504,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 20 +suid 94,0 +) +declText (MLText +uid 17505,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,97600,32800,98600" +st "SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*93 (Net +uid 17506,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 21 +suid 95,0 +) +declText (MLText +uid 17507,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,98500,32600,99500" +st "SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*94 (Net +uid 17508,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 22 +suid 96,0 +) +declText (MLText +uid 17509,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,99400,32600,100400" +st "SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0)" +) +) +*95 (Net +uid 17510,0 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 23 +suid 97,0 +) +declText (MLText +uid 17511,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,100300,31700,101300" +st "SIGNAL hSize : std_ulogic_vector(ahbSizeBitNb-1 DOWNTO 0)" +) +) +*96 (Net +uid 17512,0 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 24 +suid 98,0 +) +declText (MLText +uid 17513,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,101200,32200,102200" +st "SIGNAL hBurst : std_ulogic_vector(ahbBurstBitNb-1 DOWNTO 0)" +) +) +*97 (Net +uid 17514,0 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 25 +suid 99,0 +) +declText (MLText +uid 17515,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,102100,31700,103100" +st "SIGNAL hProt : std_ulogic_vector(ahbProtBitNb-1 DOWNTO 0)" +) +) +*98 (Net +uid 17516,0 +decl (Decl +n "hWrite" +t "std_uLogic" +o 26 +suid 100,0 +) +declText (MLText +uid 17517,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,103000,16900,104000" +st "SIGNAL hWrite : std_uLogic" +) +) +*99 (Net +uid 17518,0 +decl (Decl +n "hReady" +t "std_uLogic" +o 27 +suid 101,0 +) +declText (MLText +uid 17519,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,103900,17400,104900" +st "SIGNAL hReady : std_uLogic" +) +) +*100 (Net +uid 17520,0 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 28 +suid 102,0 +) +declText (MLText +uid 17521,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,104800,17600,105800" +st "SIGNAL hMastLock : std_uLogic" +) +) +*101 (Net +uid 17522,0 +decl (Decl +n "hResp" +t "std_uLogic" +o 29 +suid 103,0 +) +declText (MLText +uid 17523,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,105700,17100,106700" +st "SIGNAL hResp : std_uLogic" +) +) +*102 (Net +uid 17524,0 +decl (Decl +n "hClk" +t "std_uLogic" +o 30 +suid 104,0 +) +declText (MLText +uid 17525,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,106600,16700,107600" +st "SIGNAL hClk : std_uLogic" +) +) +*103 (Net +uid 17526,0 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 31 +suid 105,0 +) +declText (MLText +uid 17527,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,107500,17500,108500" +st "SIGNAL hReset_n : std_uLogic" +) +) +*104 (Net +uid 17528,0 +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "(1 TO ahbSlaveNb)" +o 32 +suid 106,0 +) +declText (MLText +uid 17529,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,108400,27900,109400" +st "SIGNAL hSelV : std_ulogic_vector(1 TO ahbSlaveNb)" +) +) +*105 (Net +uid 17530,0 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 33 +suid 107,0 +) +declText (MLText +uid 17531,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,109300,19200,110300" +st "SIGNAL hRDataV : ahbDataVector" +) +) +*106 (Net +uid 17532,0 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 34 +suid 108,0 +) +declText (MLText +uid 17533,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,110200,28200,111200" +st "SIGNAL hReadyV : std_logic_vector(1 TO ahbSlaveNb)" +) +) +*107 (Net +uid 17534,0 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 35 +suid 109,0 +) +declText (MLText +uid 17535,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,111100,27900,112100" +st "SIGNAL hRespV : std_logic_vector(1 TO ahbSlaveNb)" +) +) +*108 (Net +uid 17751,0 +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 126,0 +) +declText (MLText +uid 17752,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,56200,13200,57200" +st "clock : std_ulogic" +) +) +*109 (Net +uid 17753,0 +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 127,0 +) +declText (MLText +uid 17754,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,55300,13200,56300" +st "reset : std_ulogic" +) +) +*110 (SaComponent +uid 18307,0 +optionalChildren [ +*111 (CptPort +uid 18259,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18260,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,24625,189000,25375" +) +tg (CPTG +uid 18261,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18262,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,24300,194500,25700" +st "hAddr" +blo "190000,25500" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*112 (CptPort +uid 18263,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18264,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,26625,189000,27375" +) +tg (CPTG +uid 18265,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18266,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,26300,195900,27700" +st "hWData" +blo "190000,27500" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +) +*113 (CptPort +uid 18267,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18268,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,34625,189000,35375" +) +tg (CPTG +uid 18269,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18270,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,34300,195400,35700" +st "hRData" +blo "190000,35500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +) +*114 (CptPort +uid 18271,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18272,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,30625,189000,31375" +) +tg (CPTG +uid 18273,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18274,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,30300,195000,31700" +st "hWrite" +blo "190000,31500" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +) +*115 (CptPort +uid 18275,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18276,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,28625,189000,29375" +) +tg (CPTG +uid 18277,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18278,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,28300,195100,29700" +st "hTrans" +blo "190000,29500" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +) +*116 (CptPort +uid 18279,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18280,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,36625,189000,37375" +) +tg (CPTG +uid 18281,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18282,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,36300,195500,37700" +st "hReady" +blo "190000,37500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*117 (CptPort +uid 18283,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18284,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,38625,189000,39375" +) +tg (CPTG +uid 18285,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18286,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,38300,194700,39700" +st "hResp" +blo "190000,39500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +) +*118 (CptPort +uid 18287,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18288,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,42625,189000,43375" +) +tg (CPTG +uid 18289,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18290,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,42300,193500,43700" +st "hClk" +blo "190000,43500" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*119 (CptPort +uid 18291,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18292,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,44625,189000,45375" +) +tg (CPTG +uid 18293,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18294,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,44300,196800,45700" +st "hReset_n" +blo "190000,45500" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +) +*120 (CptPort +uid 18295,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18296,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,24625,205750,25375" +) +tg (CPTG +uid 18297,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18298,0 +va (VaSet +font "Verdana,12,0" +) +xt "200900,24300,204000,25700" +st "TxD" +ju 2 +blo "204000,25500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 10 +suid 2065,0 +) +) +) +*121 (CptPort +uid 18299,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18300,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,32625,189000,33375" +) +tg (CPTG +uid 18301,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18302,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,32300,193500,33700" +st "hSel" +blo "190000,33500" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +) +*122 (CptPort +uid 18303,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18304,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,26625,205750,27375" +) +tg (CPTG +uid 18305,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18306,0 +va (VaSet +font "Verdana,12,0" +) +xt "200800,26300,204000,27700" +st "RxD" +ju 2 +blo "204000,27500" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 12 +suid 2067,0 +) +) +) +] +shape (Rectangle +uid 18308,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "189000,21000,205000,47000" +) +oxt "47000,16000,63000,42000" +ttg (MlTextGroup +uid 18309,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*123 (Text +uid 18310,0 +va (VaSet +) +xt "189100,46700,200700,47900" +st "AhbLiteComponents" +blo "189100,47700" +tm "BdLibraryNameMgr" +) +*124 (Text +uid 18311,0 +va (VaSet +) +xt "189100,47700,193800,48900" +st "ahbUart" +blo "189100,48700" +tm "CptNameMgr" +) +*125 (Text +uid 18312,0 +va (VaSet +) +xt "189100,48700,193900,49900" +st "I_UART" +blo "189100,49700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18313,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18314,0 +text (MLText +uid 18315,0 +va (VaSet +font "Verdana,8,0" +) +xt "189000,51000,203300,53000" +st "txFifoDepth = 8 ( positive ) +rxFifoDepth = 1 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "txFifoDepth" +type "positive" +value "8" +) +(GiElement +name "rxFifoDepth" +type "positive" +value "1" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*126 (PortIoOut +uid 18316,0 +shape (CompositeShape +uid 18317,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18318,0 +sl 0 +ro 270 +xt "213500,24625,215000,25375" +) +(Line +uid 18319,0 +sl 0 +ro 270 +xt "213000,25000,213500,25000" +pts [ +"213000,25000" +"213500,25000" +] +) +] +) +tg (WTG +uid 18320,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18321,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,24300,219100,25700" +st "TxD" +blo "216000,25500" +tm "WireNameMgr" +) +) +) +*127 (PortIoIn +uid 18340,0 +shape (CompositeShape +uid 18341,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18342,0 +sl 0 +ro 90 +xt "213500,26625,215000,27375" +) +(Line +uid 18343,0 +sl 0 +ro 90 +xt "213000,27000,213500,27000" +pts [ +"213500,27000" +"213000,27000" +] +) +] +) +tg (WTG +uid 18344,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18345,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,26300,219200,27700" +st "RxD" +blo "216000,27500" +tm "WireNameMgr" +) +) +) +*128 (Net +uid 18346,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 128,0 +) +declText (MLText +uid 18347,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,50800,13400,51800" +st "TxD : std_ulogic" +) +) +*129 (Net +uid 18348,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 129,0 +) +declText (MLText +uid 18349,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,51700,13500,52700" +st "RxD : std_ulogic" +) +) +*130 (Net +uid 18350,0 +decl (Decl +n "hSelUart" +t "std_uLogic" +o 43 +suid 130,0 +) +declText (MLText +uid 18351,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,118300,17100,119300" +st "SIGNAL hSelUart : std_uLogic" +) +) +*131 (Net +uid 18352,0 +decl (Decl +n "hRDataUart" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 41 +suid 131,0 +) +declText (MLText +uid 18353,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,116500,33100,117500" +st "SIGNAL hRDataUart : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*132 (Net +uid 18354,0 +decl (Decl +n "hReadyUart" +t "std_uLogic" +o 47 +suid 132,0 +) +declText (MLText +uid 18355,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,121900,17900,122900" +st "SIGNAL hReadyUart : std_uLogic" +) +) +*133 (Net +uid 18356,0 +decl (Decl +n "hRespUart" +t "std_uLogic" +o 44 +suid 133,0 +) +declText (MLText +uid 18357,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,119200,17600,120200" +st "SIGNAL hRespUart : std_uLogic" +) +) +*134 (SaComponent +uid 18370,0 +optionalChildren [ +*135 (CptPort +uid 18379,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18380,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,66625,157000,67375" +) +tg (CPTG +uid 18381,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18382,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,66300,162300,67700" +st "hSelV" +blo "158000,67500" +) +) +thePort (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*136 (CptPort +uid 18383,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18384,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,68625,157000,69375" +) +tg (CPTG +uid 18385,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18386,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,68300,164200,69700" +st "hRDataV" +blo "158000,69500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*137 (CptPort +uid 18387,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18388,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,70625,173750,71375" +) +tg (CPTG +uid 18389,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18390,0 +va (VaSet +font "Verdana,12,0" +) +xt "166500,70300,172000,71700" +st "hReady" +ju 2 +blo "172000,71500" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*138 (CptPort +uid 18391,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18392,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,72625,173750,73375" +) +tg (CPTG +uid 18393,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18394,0 +va (VaSet +font "Verdana,12,0" +) +xt "167300,72300,172000,73700" +st "hResp" +ju 2 +blo "172000,73500" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*139 (CptPort +uid 18395,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18396,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,68625,173750,69375" +) +tg (CPTG +uid 18397,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18398,0 +va (VaSet +font "Verdana,12,0" +) +xt "166600,68300,172000,69700" +st "hRData" +ju 2 +blo "172000,69500" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*140 (CptPort +uid 18399,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18400,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,70625,157000,71375" +) +tg (CPTG +uid 18401,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18402,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,70300,164300,71700" +st "hReadyV" +blo "158000,71500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*141 (CptPort +uid 18403,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18404,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,72625,157000,73375" +) +tg (CPTG +uid 18405,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18406,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,72300,163500,73700" +st "hRespV" +blo "158000,73500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +*142 (CptPort +uid 18407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18408,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "173000,66625,173750,67375" +) +tg (CPTG +uid 18409,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18410,0 +va (VaSet +font "Verdana,12,0" +) +xt "168500,66300,172000,67700" +st "hSel" +ju 2 +blo "172000,67500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +) +) +) +] +shape (Rectangle +uid 18371,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "157000,63000,173000,77000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 18372,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*143 (Text +uid 18373,0 +va (VaSet +) +xt "157100,76700,161700,77900" +st "AhbLite" +blo "157100,77700" +tm "BdLibraryNameMgr" +) +*144 (Text +uid 18374,0 +va (VaSet +) +xt "157100,77700,167600,78900" +st "ahbMuxConnector" +blo "157100,78700" +tm "CptNameMgr" +) +*145 (Text +uid 18375,0 +va (VaSet +) +xt "157100,78700,164800,79900" +st "I_connBeam" +blo "157100,79700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18376,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18377,0 +text (MLText +uid 18378,0 +va (VaSet +) +xt "157000,79400,176900,80600" +st "index = beamerIndex ( positive ) " +) +header "" +) +elements [ +(GiElement +name "index" +type "positive" +value "beamerIndex" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*146 (Net +uid 18467,0 +decl (Decl +n "hSelBeamer" +t "std_uLogic" +o 42 +suid 134,0 +) +declText (MLText +uid 18468,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,117400,17900,118400" +st "SIGNAL hSelBeamer : std_uLogic" +) +) +*147 (Net +uid 18469,0 +decl (Decl +n "hRDataBeamer" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 40 +suid 135,0 +) +declText (MLText +uid 18470,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,115600,33900,116600" +st "SIGNAL hRDataBeamer : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*148 (Net +uid 18471,0 +decl (Decl +n "hReadyBeamer" +t "std_uLogic" +o 46 +suid 136,0 +) +declText (MLText +uid 18472,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,121000,18700,122000" +st "SIGNAL hReadyBeamer : std_uLogic" +) +) +*149 (Net +uid 18473,0 +decl (Decl +n "hRespBeamer" +t "std_uLogic" +o 45 +suid 137,0 +) +declText (MLText +uid 18474,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,120100,18400,121100" +st "SIGNAL hRespBeamer : std_uLogic" +) +) +*150 (SaComponent +uid 18666,0 +optionalChildren [ +*151 (CptPort +uid 18614,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18615,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,-9375,189000,-8625" +) +tg (CPTG +uid 18616,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18617,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,-9700,194500,-8300" +st "hAddr" +blo "190000,-8500" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*152 (CptPort +uid 18618,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18619,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,-7375,189000,-6625" +) +tg (CPTG +uid 18620,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18621,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,-7700,195900,-6300" +st "hWData" +blo "190000,-6500" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +) +*153 (CptPort +uid 18622,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18623,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,625,189000,1375" +) +tg (CPTG +uid 18624,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18625,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,300,195400,1700" +st "hRData" +blo "190000,1500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +) +*154 (CptPort +uid 18626,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18627,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,-3375,189000,-2625" +) +tg (CPTG +uid 18628,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18629,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,-3700,195000,-2300" +st "hWrite" +blo "190000,-2500" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +) +*155 (CptPort +uid 18630,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18631,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,-5375,189000,-4625" +) +tg (CPTG +uid 18632,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18633,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,-5700,195100,-4300" +st "hTrans" +blo "190000,-4500" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +) +*156 (CptPort +uid 18634,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18635,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,2625,189000,3375" +) +tg (CPTG +uid 18636,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18637,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,2300,195500,3700" +st "hReady" +blo "190000,3500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*157 (CptPort +uid 18638,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18639,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,4625,189000,5375" +) +tg (CPTG +uid 18640,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18641,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,4300,194700,5700" +st "hResp" +blo "190000,5500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +) +*158 (CptPort +uid 18642,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18643,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,8625,189000,9375" +) +tg (CPTG +uid 18644,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18645,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,8300,193500,9700" +st "hClk" +blo "190000,9500" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*159 (CptPort +uid 18646,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18647,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,10625,189000,11375" +) +tg (CPTG +uid 18648,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18649,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,10300,196800,11700" +st "hReset_n" +blo "190000,11500" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +) +*160 (CptPort +uid 18650,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18651,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,-7375,205750,-6625" +) +tg (CPTG +uid 18652,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18653,0 +va (VaSet +font "Verdana,12,0" +) +xt "199800,-7700,204000,-6300" +st "ioOut" +ju 2 +blo "204000,-6500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2065,0 +) +) +) +*161 (CptPort +uid 18654,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18655,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,-1375,189000,-625" +) +tg (CPTG +uid 18656,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18657,0 +va (VaSet +font "Verdana,12,0" +) +xt "190000,-1700,193500,-300" +st "hSel" +blo "190000,-500" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +) +*162 (CptPort +uid 18658,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18659,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,-5375,205750,-4625" +) +tg (CPTG +uid 18660,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18661,0 +va (VaSet +font "Verdana,12,0" +) +xt "200800,-5700,204000,-4300" +st "ioIn" +ju 2 +blo "204000,-4500" +) +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 12 +suid 2067,0 +) +) +) +*163 (CptPort +uid 18662,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18663,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,-9375,205750,-8625" +) +tg (CPTG +uid 18664,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18665,0 +va (VaSet +font "Verdana,12,0" +) +xt "200500,-9700,204000,-8300" +st "ioEn" +ju 2 +blo "204000,-8500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 13 +suid 2068,0 +) +) +) +] +shape (Rectangle +uid 18667,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "189000,-13000,205000,13000" +) +oxt "47000,16000,63000,42000" +ttg (MlTextGroup +uid 18668,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*164 (Text +uid 18669,0 +va (VaSet +) +xt "189100,12700,200700,13900" +st "AhbLiteComponents" +blo "189100,13700" +tm "BdLibraryNameMgr" +) +*165 (Text +uid 18670,0 +va (VaSet +) +xt "189100,13700,193900,14900" +st "ahbGpio" +blo "189100,14700" +tm "CptNameMgr" +) +*166 (Text +uid 18671,0 +va (VaSet +) +xt "189100,14700,193800,15900" +st "I_GPIO" +blo "189100,15700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 18672,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 18673,0 +text (MLText +uid 18674,0 +va (VaSet +font "Verdana,8,0" +) +xt "189000,17000,201700,18000" +st "ioNb = ioNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*167 (Net +uid 18675,0 +decl (Decl +n "hSelGpio" +t "std_uLogic" +o 36 +suid 138,0 +) +declText (MLText +uid 18676,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,112000,17200,113000" +st "SIGNAL hSelGpio : std_uLogic" +) +) +*168 (Net +uid 18677,0 +decl (Decl +n "hRDataGpio" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 39 +suid 139,0 +) +declText (MLText +uid 18678,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,114700,33200,115700" +st "SIGNAL hRDataGpio : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*169 (Net +uid 18679,0 +decl (Decl +n "hReadyGpio" +t "std_uLogic" +o 38 +suid 140,0 +) +declText (MLText +uid 18680,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,113800,18000,114800" +st "SIGNAL hReadyGpio : std_uLogic" +) +) +*170 (Net +uid 18681,0 +decl (Decl +n "hRespGpio" +t "std_uLogic" +o 37 +suid 141,0 +) +declText (MLText +uid 18682,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,112900,17700,113900" +st "SIGNAL hRespGpio : std_uLogic" +) +) +*171 (PortIoOut +uid 18683,0 +shape (CompositeShape +uid 18684,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18685,0 +sl 0 +ro 270 +xt "213500,-7375,215000,-6625" +) +(Line +uid 18686,0 +sl 0 +ro 270 +xt "213000,-7000,213500,-7000" +pts [ +"213000,-7000" +"213500,-7000" +] +) +] +) +tg (WTG +uid 18687,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18688,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,-7700,235600,-6300" +st "ioOut : (ioNb-1 DOWNTO 0)" +blo "216000,-6500" +tm "WireNameMgr" +) +) +) +*172 (PortIoIn +uid 18689,0 +shape (CompositeShape +uid 18690,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18691,0 +sl 0 +ro 90 +xt "213500,-5375,215000,-4625" +) +(Line +uid 18692,0 +sl 0 +ro 90 +xt "213000,-5000,213500,-5000" +pts [ +"213500,-5000" +"213000,-5000" +] +) +] +) +tg (WTG +uid 18693,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18694,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,-5700,234600,-4300" +st "ioIn : (ioNb-1 DOWNTO 0)" +blo "216000,-4500" +tm "WireNameMgr" +) +) +) +*173 (PortIoOut +uid 18707,0 +shape (CompositeShape +uid 18708,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 18709,0 +sl 0 +ro 270 +xt "213500,-9375,215000,-8625" +) +(Line +uid 18710,0 +sl 0 +ro 270 +xt "213000,-9000,213500,-9000" +pts [ +"213000,-9000" +"213500,-9000" +] +) +] +) +tg (WTG +uid 18711,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18712,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,-9700,234900,-8300" +st "ioEn : (ioNb-1 DOWNTO 0)" +blo "216000,-8500" +tm "WireNameMgr" +) +) +) +*174 (Net +uid 18713,0 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 142,0 +) +declText (MLText +uid 18714,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,57100,25000,58100" +st "ioEn : std_ulogic_vector(ioNb-1 DOWNTO 0)" +) +) +*175 (Net +uid 18719,0 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 143,0 +) +declText (MLText +uid 18720,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,58000,25100,59000" +st "ioOut : std_ulogic_vector(ioNb-1 DOWNTO 0)" +) +) +*176 (Net +uid 18725,0 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 144,0 +) +declText (MLText +uid 18726,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,58900,24800,59900" +st "ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0)" +) +) +*177 (Net +uid 19108,0 +decl (Decl +n "intAck" +t "std_ulogic" +o 48 +suid 145,0 +) +declText (MLText +uid 19109,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,122800,16500,123800" +st "SIGNAL intAck : std_ulogic" +) +) +*178 (Net +uid 19120,0 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 49 +suid 151,0 +) +declText (MLText +uid 19121,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,123700,32900,124700" +st "SIGNAL instruction : std_ulogic_vector(instructionBitNb-1 DOWNTO 0)" +) +) +*179 (Net +uid 19122,0 +decl (Decl +n "programCounter" +t "unsigned" +b "(programCounterBitNb-1 DOWNTO 0)" +o 50 +suid 152,0 +) +declText (MLText +uid 19123,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,124600,33600,125600" +st "SIGNAL programCounter : unsigned(programCounterBitNb-1 DOWNTO 0)" +) +) +*180 (Net +uid 19320,0 +decl (Decl +n "upEn" +t "std_ulogic" +o 12 +suid 160,0 +) +declText (MLText +uid 19321,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,90400,16700,91400" +st "SIGNAL upEn : std_ulogic" +) +) +*181 (HdlText +uid 19389,0 +optionalChildren [ +*182 (EmbeddedText +uid 19395,0 +commentText (CommentText +uid 19396,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 19397,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "12000,-8000,28000,-6000" +) +oxt "0,0,18000,5000" +text (MLText +uid 19398,0 +va (VaSet +) +xt "12200,-7800,19800,-6600" +st " +upEn <= '1'; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 19390,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "12000,-9000,28000,-5000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 19391,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*183 (Text +uid 19392,0 +va (VaSet +font "Verdana,8,1" +) +xt "11850,-5000,14150,-4000" +st "eb1" +blo "11850,-4200" +tm "HdlTextNameMgr" +) +*184 (Text +uid 19393,0 +va (VaSet +font "Verdana,8,1" +) +xt "11850,-4000,13050,-3000" +st "1" +blo "11850,-3200" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 19394,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "12250,-6750,13750,-5250" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*185 (SaComponent +uid 19476,0 +optionalChildren [ +*186 (CptPort +uid 19428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19429,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,-5375,44000,-4625" +) +tg (CPTG +uid 19430,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19431,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,-5700,48800,-4300" +st "clock" +blo "45000,-4500" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*187 (CptPort +uid 19432,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19433,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,-3375,44000,-2625" +) +tg (CPTG +uid 19434,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19435,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,-3700,49100,-2300" +st "reset" +blo "45000,-2500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 12,0 +) +) +) +*188 (CptPort +uid 19436,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19437,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-7375,60750,-6625" +) +tg (CPTG +uid 19438,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19439,0 +va (VaSet +font "Verdana,12,0" +) +xt "50300,-7700,59000,-6300" +st "readStrobe" +ju 2 +blo "59000,-6500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 11 +suid 2024,0 +) +) +) +*189 (CptPort +uid 19440,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19441,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-5375,60750,-4625" +) +tg (CPTG +uid 19442,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19443,0 +va (VaSet +font "Verdana,12,0" +) +xt "50000,-5700,59000,-4300" +st "writeStrobe" +ju 2 +blo "59000,-4500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 12 +suid 2026,0 +) +) +) +*190 (CptPort +uid 19444,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19445,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,-7375,44000,-6625" +) +tg (CPTG +uid 19446,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19447,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,-7700,47400,-6300" +st "en" +blo "45000,-6500" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +) +*191 (CptPort +uid 19448,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19449,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,-17375,44000,-16625" +) +tg (CPTG +uid 19450,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19451,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,-17700,49500,-16300" +st "intAck" +blo "45000,-16500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 9 +suid 2042,0 +) +) +) +*192 (CptPort +uid 19452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19453,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,-19375,44000,-18625" +) +tg (CPTG +uid 19454,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19455,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,-19700,47400,-18300" +st "int" +blo "45000,-18500" +) +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 2028,0 +) +) +) +*193 (CptPort +uid 19456,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19457,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-13375,60750,-12625" +) +tg (CPTG +uid 19458,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19459,0 +va (VaSet +font "Verdana,12,0" +) +xt "49400,-13700,59000,-12300" +st "dataAddress" +ju 2 +blo "59000,-12500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 2039,0 +) +) +) +*194 (CptPort +uid 19460,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19461,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-11375,60750,-10625" +) +tg (CPTG +uid 19462,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19463,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,-11700,59000,-10300" +st "dataOut" +ju 2 +blo "59000,-10500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 8 +suid 2040,0 +) +) +) +*195 (CptPort +uid 19464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19465,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-9375,60750,-8625" +) +tg (CPTG +uid 19466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19467,0 +va (VaSet +font "Verdana,12,0" +) +xt "54000,-9700,59000,-8300" +st "dataIn" +ju 2 +blo "59000,-8500" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +) +*196 (CptPort +uid 19468,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19469,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-17375,60750,-16625" +) +tg (CPTG +uid 19470,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19471,0 +va (VaSet +font "Verdana,12,0" +) +xt "50800,-17700,59000,-16300" +st "instruction" +ju 2 +blo "59000,-16500" +) +) +thePort (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 4 +suid 2052,0 +) +) +) +*197 (CptPort +uid 19472,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19473,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,-19375,60750,-18625" +) +tg (CPTG +uid 19474,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19475,0 +va (VaSet +font "Verdana,12,0" +) +xt "49400,-19700,59000,-18300" +st "progCounter" +ju 2 +blo "59000,-18500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 10 +suid 2053,0 +) +) +) +] +shape (Rectangle +uid 19477,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,-23000,60000,-1000" +) +oxt "47000,10000,63000,32000" +ttg (MlTextGroup +uid 19478,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*198 (Text +uid 19479,0 +va (VaSet +) +xt "44100,-1300,50100,-100" +st "NanoBlaze" +blo "44100,-300" +tm "BdLibraryNameMgr" +) +*199 (Text +uid 19480,0 +va (VaSet +) +xt "44100,-300,53000,900" +st "nanoProcessor" +blo "44100,700" +tm "CptNameMgr" +) +*200 (Text +uid 19481,0 +va (VaSet +) +xt "44100,700,47100,1900" +st "I_up" +blo "44100,1700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 19482,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 19483,0 +text (MLText +uid 19484,0 +va (VaSet +) +xt "44000,1400,80300,9800" +st "addressBitNb = ahbAddressBitNb ( positive ) +registerBitNb = ahbDataBitNb ( positive ) +registerAddressBitNb = registerAddressBitNb ( positive ) +programCounterBitNb = programCounterBitNb ( positive ) +stackPointerBitNb = stackPointerBitNb ( positive ) +instructionBitNb = instructionBitNb ( positive ) +scratchpadAddressBitNb = scratchpadAddressBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "ahbAddressBitNb" +) +(GiElement +name "registerBitNb" +type "positive" +value "ahbDataBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +(GiElement +name "instructionBitNb" +type "positive" +value "instructionBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*201 (PortIoOut +uid 19797,0 +shape (CompositeShape +uid 19798,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 19799,0 +sl 0 +ro 270 +xt "213500,76625,215000,77375" +) +(Line +uid 19800,0 +sl 0 +ro 270 +xt "213000,77000,213500,77000" +pts [ +"213000,77000" +"213500,77000" +] +) +] +) +tg (WTG +uid 19801,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19802,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "216000,76500,236900,77900" +st "testOut : (1 TO testOutBitNb)" +blo "216000,77700" +tm "WireNameMgr" +) +) +) +*202 (Net +uid 19811,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 162,0 +) +declText (MLText +uid 19812,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,59800,25000,60800" +st "testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*203 (SaComponent +uid 20730,0 +optionalChildren [ +*204 (CptPort +uid 20674,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20675,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,76625,189000,77375" +) +tg (CPTG +uid 20676,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20677,0 +va (VaSet +) +xt "190000,76400,193000,77600" +st "hClk" +blo "190000,77400" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 13 +suid 1,0 +) +) +) +*205 (CptPort +uid 20678,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20679,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,58625,189000,59375" +) +tg (CPTG +uid 20680,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20681,0 +va (VaSet +) +xt "190000,58400,193700,59600" +st "hAddr" +blo "190000,59400" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 2 +suid 2,0 +) +) +) +*206 (CptPort +uid 20682,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20683,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,58625,205750,59375" +) +tg (CPTG +uid 20684,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 20685,0 +va (VaSet +) +xt "201001,58400,204001,59600" +st "outX" +ju 2 +blo "204001,59400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*207 (CptPort +uid 20686,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20687,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,78625,189000,79375" +) +tg (CPTG +uid 20688,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20689,0 +va (VaSet +) +xt "190000,78400,195400,79600" +st "hReset_n" +blo "190000,79400" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 14 +suid 4,0 +) +) +) +*208 (CptPort +uid 20690,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,60625,205750,61375" +) +tg (CPTG +uid 20692,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 20693,0 +va (VaSet +) +xt "201001,60400,204001,61600" +st "outY" +ju 2 +blo "204001,61400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 3 +suid 5,0 +) +) +) +*209 (CptPort +uid 20694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,60625,189000,61375" +) +tg (CPTG +uid 20696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20697,0 +va (VaSet +) +xt "190000,60400,194600,61600" +st "hWData" +blo "190000,61400" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 4 +suid 11,0 +) +) +) +*210 (CptPort +uid 20698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20699,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,64625,205750,65375" +) +tg (CPTG +uid 20700,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 20701,0 +va (VaSet +) +xt "198201,64400,204001,65600" +st "selSinCos" +ju 2 +blo "204001,65400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*211 (CptPort +uid 20702,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20703,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "205000,76625,205750,77375" +) +tg (CPTG +uid 20704,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 20705,0 +va (VaSet +) +xt "199400,76400,204000,77600" +st "testOut" +ju 2 +blo "204000,77400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 6 +suid 2014,0 +) +) +) +*212 (CptPort +uid 20706,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20707,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,68625,189000,69375" +) +tg (CPTG +uid 20708,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20709,0 +va (VaSet +) +xt "190000,68400,194400,69600" +st "hRData" +blo "190000,69400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 7 +suid 2015,0 +) +) +) +*213 (CptPort +uid 20710,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20711,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,62625,189000,63375" +) +tg (CPTG +uid 20712,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20713,0 +va (VaSet +) +xt "190000,62400,194200,63600" +st "hTrans" +blo "190000,63400" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 8 +suid 2016,0 +) +) +) +*214 (CptPort +uid 20714,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20715,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,64625,189000,65375" +) +tg (CPTG +uid 20716,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20717,0 +va (VaSet +) +xt "190000,64400,193900,65600" +st "hWrite" +blo "190000,65400" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 9 +suid 2017,0 +) +) +) +*215 (CptPort +uid 20718,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20719,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,66625,189000,67375" +) +tg (CPTG +uid 20720,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20721,0 +va (VaSet +) +xt "190000,66400,192900,67600" +st "hSel" +blo "190000,67400" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 10 +suid 2018,0 +) +) +) +*216 (CptPort +uid 20722,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20723,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,70625,189000,71375" +) +tg (CPTG +uid 20724,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20725,0 +va (VaSet +) +xt "190000,70400,194400,71600" +st "hReady" +blo "190000,71400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +*217 (CptPort +uid 20726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20727,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "188250,72625,189000,73375" +) +tg (CPTG +uid 20728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20729,0 +va (VaSet +) +xt "190000,72400,193800,73600" +st "hResp" +blo "190000,73400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 12 +suid 2020,0 +) +) +) +] +shape (Rectangle +uid 20731,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "189000,55000,205000,81000" +) +oxt "43000,6000,59000,32000" +ttg (MlTextGroup +uid 20732,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*218 (Text +uid 20733,0 +va (VaSet +font "Verdana,9,1" +) +xt "189600,80800,198000,82000" +st "SystemOnChip" +blo "189600,81800" +tm "BdLibraryNameMgr" +) +*219 (Text +uid 20734,0 +va (VaSet +font "Verdana,9,1" +) +xt "189600,81700,195800,82900" +st "ahbBeamer" +blo "189600,82700" +tm "CptNameMgr" +) +*220 (Text +uid 20735,0 +va (VaSet +font "Verdana,9,1" +) +xt "189600,82600,195000,83800" +st "I_beamer" +blo "189600,83600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 20736,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 20737,0 +text (MLText +uid 20738,0 +va (VaSet +font "Verdana,8,0" +) +xt "189000,84600,214800,86600" +st "patternAddressBitNb = patternAddressBitNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*221 (SaComponent +uid 20759,0 +optionalChildren [ +*222 (CptPort +uid 20739,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20740,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,10625,44000,11375" +) +tg (CPTG +uid 20741,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20742,0 +va (VaSet +) +xt "45000,10500,49700,11700" +st "address" +blo "45000,11500" +) +) +thePort (LogicalPort +decl (Decl +n "address" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*223 (CptPort +uid 20743,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20744,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,16625,44000,17375" +) +tg (CPTG +uid 20745,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20746,0 +va (VaSet +) +xt "45000,16500,48400,17700" +st "clock" +blo "45000,17500" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*224 (CptPort +uid 20747,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20748,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,10625,60750,11375" +) +tg (CPTG +uid 20749,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 20750,0 +va (VaSet +) +xt "54200,10500,59000,11700" +st "dataOut" +ju 2 +blo "59000,11500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 3,0 +) +) +) +*225 (CptPort +uid 20751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,14625,44000,15375" +) +tg (CPTG +uid 20753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20754,0 +va (VaSet +) +xt "45000,14500,46900,15700" +st "en" +blo "45000,15500" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*226 (CptPort +uid 20755,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 20756,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43250,18625,44000,19375" +) +tg (CPTG +uid 20757,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 20758,0 +va (VaSet +) +xt "45000,18500,48300,19700" +st "reset" +blo "45000,19500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 20760,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,7000,60000,21000" +) +oxt "25000,17000,41000,31000" +ttg (MlTextGroup +uid 20761,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*227 (Text +uid 20762,0 +va (VaSet +font "Verdana,8,1" +) +xt "44500,21000,52400,22000" +st "SystemOnChip" +blo "44500,21800" +tm "BdLibraryNameMgr" +) +*228 (Text +uid 20763,0 +va (VaSet +font "Verdana,8,1" +) +xt "44500,21900,51600,22900" +st "programRom" +blo "44500,22700" +tm "CptNameMgr" +) +*229 (Text +uid 20764,0 +va (VaSet +font "Verdana,8,1" +) +xt "44500,22800,47900,23800" +st "I_rom" +blo "44500,23600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 20765,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 20766,0 +text (MLText +uid 20767,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,24200,67500,26200" +st "addressBitNb = programCounterBitNb ( positive ) +dataBitNb = instructionBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "instructionBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*230 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "205750,59000,213000,59000" +pts [ +"205750,59000" +"213000,59000" +] +) +start &206 +end &12 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,57600,213700,59000" +st "outX" +blo "210000,58800" +tm "WireNameMgr" +) +) +on &13 +) +*231 (Wire +uid 129,0 +shape (OrthoPolyLine +uid 130,0 +va (VaSet +vasetType 3 +) +xt "205750,61000,213000,61000" +pts [ +"205750,61000" +"213000,61000" +] +) +start &208 +end &14 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 134,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,59600,213600,61000" +st "outY" +blo "210000,60800" +tm "WireNameMgr" +) +) +on &15 +) +*232 (Wire +uid 5086,0 +shape (OrthoPolyLine +uid 5087,0 +va (VaSet +vasetType 3 +) +xt "205750,65000,213000,65000" +pts [ +"213000,65000" +"205750,65000" +] +) +start &16 +end &210 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5090,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5091,0 +va (VaSet +font "Verdana,12,0" +) +xt "208000,63600,214900,65000" +st "selSinCos" +blo "208000,64800" +tm "WireNameMgr" +) +) +on &17 +) +*233 (Wire +uid 17076,0 +optionalChildren [ +*234 (BdJunction +uid 17082,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17083,0 +va (VaSet +vasetType 1 +) +xt "116600,-13399,117400,-12599" +radius 400 +) +) +*235 (BdJunction +uid 17084,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17085,0 +va (VaSet +vasetType 1 +) +xt "180600,-9397,181400,-8597" +radius 400 +) +) +*236 (BdJunction +uid 17086,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17087,0 +va (VaSet +vasetType 1 +) +xt "180600,24601,181400,25401" +radius 400 +) +) +*237 (BdJunction +uid 18513,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18514,0 +va (VaSet +vasetType 1 +) +xt "180600,58600,181400,59400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17077,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,-13000,181000,115000" +pts [ +"101750,-13000" +"181000,-13000" +"181000,115000" +] +) +start &28 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17080,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17081,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-13000,108250,-11600" +st "hAddr" +blo "103750,-11800" +tm "WireNameMgr" +) +) +on &91 +) +*238 (Wire +uid 17092,0 +shape (OrthoPolyLine +uid 17093,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117000,-12996,124250,-1000" +pts [ +"117000,-12996" +"117000,-1000" +"124250,-1000" +] +) +start &234 +end &56 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17094,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17095,0 +va (VaSet +font "Verdana,12,0" +) +xt "118250,-2400,122750,-1000" +st "hAddr" +blo "118250,-1200" +tm "WireNameMgr" +) +) +on &91 +) +*239 (Wire +uid 17096,0 +shape (OrthoPolyLine +uid 17097,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "181000,-9000,188250,-8997" +pts [ +"181000,-8997" +"185000,-8997" +"185000,-9000" +"188250,-9000" +] +) +start &235 +end &151 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17098,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17099,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,-10400,186750,-9000" +st "hAddr" +blo "182250,-9200" +tm "WireNameMgr" +) +) +on &91 +) +*240 (Wire +uid 17100,0 +shape (OrthoPolyLine +uid 17101,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "181000,25000,188250,25001" +pts [ +"181000,25001" +"185000,25001" +"185000,25000" +"188250,25000" +] +) +start &236 +end &111 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17102,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17103,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,23600,186750,25000" +st "hAddr" +blo "182250,24800" +tm "WireNameMgr" +) +) +on &91 +) +*241 (Wire +uid 17104,0 +optionalChildren [ +*242 (BdJunction +uid 17110,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17111,0 +va (VaSet +vasetType 1 +) +xt "178600,-7399,179400,-6599" +radius 400 +) +) +*243 (BdJunction +uid 17112,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17113,0 +va (VaSet +vasetType 1 +) +xt "178600,26600,179400,27400" +radius 400 +) +) +*244 (BdJunction +uid 18507,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18508,0 +va (VaSet +vasetType 1 +) +xt "178600,60600,179400,61400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17105,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,-11000,179000,115000" +pts [ +"101750,-11000" +"179000,-11000" +"179000,115000" +] +) +start &29 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17108,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17109,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-11000,109650,-9600" +st "hWData" +blo "103750,-9800" +tm "WireNameMgr" +) +) +on &92 +) +*245 (Wire +uid 17118,0 +shape (OrthoPolyLine +uid 17119,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "179000,-7000,188250,-6999" +pts [ +"179000,-6999" +"184000,-6999" +"184000,-7000" +"188250,-7000" +] +) +start &242 +end &152 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17121,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,-8400,187150,-7000" +st "hWData" +blo "181250,-7200" +tm "WireNameMgr" +) +) +on &92 +) +*246 (Wire +uid 17122,0 +shape (OrthoPolyLine +uid 17123,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "179000,27000,188250,27000" +pts [ +"179000,27000" +"188250,27000" +] +) +start &243 +end &112 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17124,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17125,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,25600,187150,27000" +st "hWData" +blo "181250,26800" +tm "WireNameMgr" +) +) +on &92 +) +*247 (Wire +uid 17126,0 +optionalChildren [ +*248 (BdJunction +uid 17132,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17133,0 +va (VaSet +vasetType 1 +) +xt "176600,-5399,177400,-4599" +radius 400 +) +) +*249 (BdJunction +uid 17134,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17135,0 +va (VaSet +vasetType 1 +) +xt "176600,28600,177400,29400" +radius 400 +) +) +*250 (BdJunction +uid 18501,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18502,0 +va (VaSet +vasetType 1 +) +xt "176600,62600,177400,63400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17127,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,-9000,177000,115000" +pts [ +"101750,-9000" +"177000,-9000" +"177000,115000" +] +) +start &35 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17130,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17131,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-9000,108850,-7600" +st "hTrans" +blo "103750,-7800" +tm "WireNameMgr" +) +) +on &94 +) +*251 (Wire +uid 17140,0 +shape (OrthoPolyLine +uid 17141,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177000,-5000,188250,-4999" +pts [ +"177000,-4999" +"183000,-4999" +"183000,-5000" +"188250,-5000" +] +) +start &248 +end &155 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17142,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17143,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,-6400,187350,-5000" +st "hTrans" +blo "182250,-5200" +tm "WireNameMgr" +) +) +on &94 +) +*252 (Wire +uid 17144,0 +shape (OrthoPolyLine +uid 17145,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177000,29000,188250,29000" +pts [ +"177000,29000" +"188250,29000" +] +) +start &249 +end &115 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17146,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17147,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,27600,187350,29000" +st "hTrans" +blo "182250,28800" +tm "WireNameMgr" +) +) +on &94 +) +*253 (Wire +uid 17148,0 +optionalChildren [ +*254 (BdJunction +uid 17154,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17155,0 +va (VaSet +vasetType 1 +) +xt "174600,-3399,175400,-2599" +radius 400 +) +) +*255 (BdJunction +uid 17156,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17157,0 +va (VaSet +vasetType 1 +) +xt "174600,30600,175400,31400" +radius 400 +) +) +*256 (BdJunction +uid 18495,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18496,0 +va (VaSet +vasetType 1 +) +xt "174600,64600,175400,65400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17149,0 +va (VaSet +vasetType 3 +) +xt "101750,-7000,175000,115000" +pts [ +"101750,-7000" +"175000,-7000" +"175000,115000" +] +) +start &31 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17152,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17153,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-7000,108750,-5600" +st "hWrite" +blo "103750,-5800" +tm "WireNameMgr" +) +) +on &98 +) +*257 (Wire +uid 17162,0 +shape (OrthoPolyLine +uid 17163,0 +va (VaSet +vasetType 3 +) +xt "175000,-3000,188250,-2999" +pts [ +"175000,-2999" +"182000,-2999" +"182000,-3000" +"188250,-3000" +] +) +start &254 +end &154 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17164,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17165,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,-4400,187250,-3000" +st "hWrite" +blo "182250,-3200" +tm "WireNameMgr" +) +) +on &98 +) +*258 (Wire +uid 17166,0 +shape (OrthoPolyLine +uid 17167,0 +va (VaSet +vasetType 3 +) +xt "175000,31000,188250,31000" +pts [ +"175000,31000" +"188250,31000" +] +) +start &255 +end &114 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17168,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17169,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,29600,187250,31000" +st "hWrite" +blo "182250,30800" +tm "WireNameMgr" +) +) +on &98 +) +*259 (Wire +uid 17170,0 +optionalChildren [ +*260 (BdJunction +uid 17174,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17175,0 +va (VaSet +vasetType 1 +) +xt "146600,-1399,147400,-599" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17171,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "141750,-1000,156250,-1000" +pts [ +"141750,-1000" +"156250,-1000" +] +) +start &57 +end &62 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17172,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17173,0 +va (VaSet +font "Verdana,12,0" +) +xt "142000,-2400,146300,-1000" +st "hSelV" +blo "142000,-1200" +tm "WireNameMgr" +) +) +on &104 +) +*261 (Wire +uid 17176,0 +optionalChildren [ +*262 (BdJunction +uid 17180,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17181,0 +va (VaSet +vasetType 1 +) +xt "146600,22600,147400,23400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17177,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "141750,-999,147000,23000" +pts [ +"147000,-999" +"147000,23000" +"141750,23000" +] +) +start &260 +end &45 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17178,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17179,0 +va (VaSet +font "Verdana,12,0" +) +xt "142000,21600,146300,23000" +st "hSelV" +blo "142000,22800" +tm "WireNameMgr" +) +) +on &104 +) +*263 (Wire +uid 17182,0 +optionalChildren [ +*264 (BdJunction +uid 17188,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17189,0 +va (VaSet +vasetType 1 +) +xt "146600,32600,147400,33400" +radius 400 +) +) +*265 (BdJunction +uid 18459,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18460,0 +va (VaSet +vasetType 1 +) +xt "146600,66600,147400,67400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17183,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,23000,147000,115000" +pts [ +"147000,23000" +"147000,115000" +] +) +start &262 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17186,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17187,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "145600,110000,147000,114300" +st "hSelV" +blo "146800,114300" +tm "WireNameMgr" +) +) +on &104 +) +*266 (Wire +uid 17194,0 +shape (OrthoPolyLine +uid 17195,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,33000,156250,33000" +pts [ +"156250,33000" +"147000,33000" +] +) +start &74 +end &264 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17196,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17197,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "151250,31600,155550,33000" +st "hSelV" +blo "151250,32800" +tm "WireNameMgr" +) +) +on &104 +) +*267 (Wire +uid 17198,0 +optionalChildren [ +*268 (BdJunction +uid 17202,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17203,0 +va (VaSet +vasetType 1 +) +xt "148600,26600,149400,27400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17199,0 +va (VaSet +vasetType 3 +) +xt "141750,1000,156250,27000" +pts [ +"141750,27000" +"149000,27000" +"149000,1000" +"156250,1000" +] +) +start &46 +end &63 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17200,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17201,0 +va (VaSet +font "Verdana,12,0" +) +xt "143750,25600,149950,27000" +st "hRDataV" +blo "143750,26800" +tm "WireNameMgr" +) +) +on &105 +) +*269 (Wire +uid 17204,0 +optionalChildren [ +*270 (BdJunction +uid 17210,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17211,0 +va (VaSet +vasetType 1 +) +xt "148600,34600,149400,35400" +radius 400 +) +) +*271 (BdJunction +uid 18461,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18462,0 +va (VaSet +vasetType 1 +) +xt "148600,68600,149400,69400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17205,0 +va (VaSet +vasetType 3 +) +xt "149000,27000,149000,115000" +pts [ +"149000,27000" +"149000,115000" +] +) +start &268 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17208,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17209,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "147600,108000,149000,114200" +st "hRDataV" +blo "148800,114200" +tm "WireNameMgr" +) +) +on &105 +) +*272 (Wire +uid 17216,0 +shape (OrthoPolyLine +uid 17217,0 +va (VaSet +vasetType 3 +) +xt "149000,35000,156250,35000" +pts [ +"156250,35000" +"149000,35000" +] +) +start &75 +end &270 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17218,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17219,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "149250,33600,155450,35000" +st "hRDataV" +blo "149250,34800" +tm "WireNameMgr" +) +) +on &105 +) +*273 (Wire +uid 17220,0 +optionalChildren [ +*274 (BdJunction +uid 17224,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17225,0 +va (VaSet +vasetType 1 +) +xt "150600,28600,151400,29400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17221,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "141750,3000,156250,29000" +pts [ +"141750,29000" +"151000,29000" +"151000,3000" +"156250,3000" +] +) +start &50 +end &67 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17222,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17223,0 +va (VaSet +font "Verdana,12,0" +) +xt "143750,27600,150050,29000" +st "hReadyV" +blo "143750,28800" +tm "WireNameMgr" +) +) +on &106 +) +*275 (Wire +uid 17226,0 +optionalChildren [ +*276 (BdJunction +uid 17232,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17233,0 +va (VaSet +vasetType 1 +) +xt "150600,36600,151400,37400" +radius 400 +) +) +*277 (BdJunction +uid 18463,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18464,0 +va (VaSet +vasetType 1 +) +xt "150600,70600,151400,71400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17227,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "151000,29000,151000,115000" +pts [ +"151000,29000" +"151000,115000" +] +) +start &274 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17230,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17231,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "149600,108000,151000,114300" +st "hReadyV" +blo "150800,114300" +tm "WireNameMgr" +) +) +on &106 +) +*278 (Wire +uid 17238,0 +shape (OrthoPolyLine +uid 17239,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "151000,37000,156250,37000" +pts [ +"156250,37000" +"151000,37000" +] +) +start &79 +end &276 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17240,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17241,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "149250,35600,155550,37000" +st "hReadyV" +blo "149250,36800" +tm "WireNameMgr" +) +) +on &106 +) +*279 (Wire +uid 17242,0 +optionalChildren [ +*280 (BdJunction +uid 17246,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17247,0 +va (VaSet +vasetType 1 +) +xt "152600,30600,153400,31400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17243,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "141750,5000,156250,31000" +pts [ +"141750,31000" +"153000,31000" +"153000,5000" +"156250,5000" +] +) +start &51 +end &68 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17244,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17245,0 +va (VaSet +font "Verdana,12,0" +) +xt "143750,29600,149250,31000" +st "hRespV" +blo "143750,30800" +tm "WireNameMgr" +) +) +on &107 +) +*281 (Wire +uid 17248,0 +optionalChildren [ +*282 (BdJunction +uid 17254,0 +ps "OnConnectorStrategy" +shape (Circle +uid 17255,0 +va (VaSet +vasetType 1 +) +xt "152600,38600,153400,39400" +radius 400 +) +) +*283 (BdJunction +uid 18465,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18466,0 +va (VaSet +vasetType 1 +) +xt "152600,72600,153400,73400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17249,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "153000,31000,153000,115000" +pts [ +"153000,31000" +"153000,115000" +] +) +start &280 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17252,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17253,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "151600,108000,153000,113500" +st "hRespV" +blo "152800,113500" +tm "WireNameMgr" +) +) +on &107 +) +*284 (Wire +uid 17260,0 +shape (OrthoPolyLine +uid 17261,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "153000,39000,156250,39000" +pts [ +"156250,39000" +"153000,39000" +] +) +start &80 +end &282 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17262,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17263,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "149250,37600,154750,39000" +st "hRespV" +blo "149250,38800" +tm "WireNameMgr" +) +) +on &107 +) +*285 (Wire +uid 17286,0 +shape (OrthoPolyLine +uid 17287,0 +va (VaSet +vasetType 3 +) +xt "36000,-3000,43250,-3000" +pts [ +"36000,-3000" +"43250,-3000" +] +) +start &18 +end &187 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 17288,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17289,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,-4400,40100,-3000" +st "reset" +blo "36000,-3200" +tm "WireNameMgr" +) +) +on &109 +) +*286 (Wire +uid 17290,0 +shape (OrthoPolyLine +uid 17291,0 +va (VaSet +vasetType 3 +) +xt "36000,-5000,43250,-5000" +pts [ +"36000,-5000" +"43250,-5000" +] +) +start &19 +end &186 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17292,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17293,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,-6400,39800,-5000" +st "clock" +blo "36000,-5200" +tm "WireNameMgr" +) +) +on &108 +) +*287 (Wire +uid 17294,0 +optionalChildren [ +*288 (BdJunction +uid 19318,0 +ps "OnConnectorStrategy" +shape (Circle +uid 19319,0 +va (VaSet +vasetType 1 +) +xt "37600,-7400,38400,-6600" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17295,0 +va (VaSet +vasetType 3 +) +xt "28000,-7000,43250,-7000" +pts [ +"28000,-7000" +"43250,-7000" +] +) +start &181 +end &190 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17298,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17299,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,-8400,32000,-7000" +st "upEn" +blo "28000,-7200" +tm "WireNameMgr" +) +) +on &180 +) +*289 (Wire +uid 17300,0 +shape (OrthoPolyLine +uid 17301,0 +va (VaSet +vasetType 3 +) +xt "81000,11000,84250,11000" +pts [ +"81000,11000" +"84250,11000" +] +) +end &22 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 17304,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17305,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,9600,84100,11000" +st "reset" +blo "80000,10800" +tm "WireNameMgr" +) +) +on &109 +) +*290 (Wire +uid 17306,0 +shape (OrthoPolyLine +uid 17307,0 +va (VaSet +vasetType 3 +) +xt "81000,9000,84250,9000" +pts [ +"81000,9000" +"84250,9000" +] +) +end &21 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17310,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17311,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,7600,83800,9000" +st "clock" +blo "80000,8800" +tm "WireNameMgr" +) +) +on &108 +) +*291 (Wire +uid 17318,0 +shape (OrthoPolyLine +uid 17319,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60750,-13000,84250,-13000" +pts [ +"60750,-13000" +"84250,-13000" +] +) +start &193 +end &25 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17320,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17321,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,-14400,70500,-13000" +st "upAddress" +blo "63000,-13200" +tm "WireNameMgr" +) +) +on &86 +) +*292 (Wire +uid 17322,0 +shape (OrthoPolyLine +uid 17323,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60750,-11000,84250,-11000" +pts [ +"60750,-11000" +"84250,-11000" +] +) +start &194 +end &26 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17324,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17325,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,-12400,70700,-11000" +st "upDataOut" +blo "63000,-11200" +tm "WireNameMgr" +) +) +on &87 +) +*293 (Wire +uid 17326,0 +shape (OrthoPolyLine +uid 17327,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60750,-9000,84250,-9000" +pts [ +"60750,-9000" +"84250,-9000" +] +) +start &195 +end &27 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17328,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17329,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,-10400,69700,-9000" +st "upDataIn" +blo "63000,-9200" +tm "WireNameMgr" +) +) +on &88 +) +*294 (Wire +uid 17330,0 +shape (OrthoPolyLine +uid 17331,0 +va (VaSet +vasetType 3 +) +xt "60750,-7000,84250,-7000" +pts [ +"60750,-7000" +"84250,-7000" +] +) +start &188 +end &23 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17332,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17333,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,-8400,73600,-7000" +st "upReadStrobe" +blo "63000,-7200" +tm "WireNameMgr" +) +) +on &89 +) +*295 (Wire +uid 17334,0 +shape (OrthoPolyLine +uid 17335,0 +va (VaSet +vasetType 3 +) +xt "60750,-5000,84250,-5000" +pts [ +"60750,-5000" +"84250,-5000" +] +) +start &189 +end &24 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17336,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17337,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,-6400,73800,-5000" +st "upWriteStrobe" +blo "63000,-5200" +tm "WireNameMgr" +) +) +on &90 +) +*296 (Wire +uid 17338,0 +shape (OrthoPolyLine +uid 17339,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,3000,124250,27000" +pts [ +"101750,3000" +"115000,3000" +"115000,27000" +"124250,27000" +] +) +start &30 +end &49 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17340,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17341,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,1600,109150,3000" +st "hRData" +blo "103750,2800" +tm "WireNameMgr" +) +) +on &93 +) +*297 (Wire +uid 17342,0 +shape (OrthoPolyLine +uid 17343,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,-5000,113000,-5000" +pts [ +"101750,-5000" +"113000,-5000" +] +) +start &32 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17347,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-6400,107950,-5000" +st "hSize" +blo "103750,-5200" +tm "WireNameMgr" +) +) +on &95 +) +*298 (Wire +uid 17348,0 +shape (OrthoPolyLine +uid 17349,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,-3000,113000,-3000" +pts [ +"101750,-3000" +"113000,-3000" +] +) +start &33 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17352,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17353,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-4400,108650,-3000" +st "hBurst" +blo "103750,-3200" +tm "WireNameMgr" +) +) +on &96 +) +*299 (Wire +uid 17354,0 +shape (OrthoPolyLine +uid 17355,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101750,-1000,113000,-1000" +pts [ +"101750,-1000" +"113000,-1000" +] +) +start &34 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17358,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17359,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-2400,107950,-1000" +st "hProt" +blo "103750,-1200" +tm "WireNameMgr" +) +) +on &97 +) +*300 (Wire +uid 17360,0 +shape (OrthoPolyLine +uid 17361,0 +va (VaSet +vasetType 3 +) +xt "101750,5000,124250,29000" +pts [ +"101750,5000" +"113000,5000" +"113000,29000" +"124250,29000" +] +) +start &37 +end &47 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17363,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,3600,109250,5000" +st "hReady" +blo "103750,4800" +tm "WireNameMgr" +) +) +on &99 +) +*301 (Wire +uid 17364,0 +shape (OrthoPolyLine +uid 17365,0 +va (VaSet +vasetType 3 +) +xt "101750,1000,113000,1000" +pts [ +"101750,1000" +"113000,1000" +] +) +start &36 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17368,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17369,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,-400,111150,1000" +st "hMastLock" +blo "103750,800" +tm "WireNameMgr" +) +) +on &100 +) +*302 (Wire +uid 17370,0 +shape (OrthoPolyLine +uid 17371,0 +va (VaSet +vasetType 3 +) +xt "101750,7000,124250,31000" +pts [ +"101750,7000" +"111000,7000" +"111000,31000" +"124250,31000" +] +) +start &38 +end &48 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17372,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17373,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,5600,108450,7000" +st "hResp" +blo "103750,6800" +tm "WireNameMgr" +) +) +on &101 +) +*303 (Wire +uid 17374,0 +shape (OrthoPolyLine +uid 17375,0 +va (VaSet +vasetType 3 +) +xt "101750,9000,109000,9000" +pts [ +"101750,9000" +"109000,9000" +] +) +start &39 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17378,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17379,0 +va (VaSet +font "Verdana,12,0" +) +xt "104000,7600,107500,9000" +st "hClk" +blo "104000,8800" +tm "WireNameMgr" +) +) +on &102 +) +*304 (Wire +uid 17380,0 +shape (OrthoPolyLine +uid 17381,0 +va (VaSet +vasetType 3 +) +xt "101750,11000,109000,11000" +pts [ +"101750,11000" +"109000,11000" +] +) +start &40 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17384,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17385,0 +va (VaSet +font "Verdana,12,0" +) +xt "103750,9600,110550,11000" +st "hReset_n" +blo "103750,10800" +tm "WireNameMgr" +) +) +on &103 +) +*305 (Wire +uid 17386,0 +shape (OrthoPolyLine +uid 17387,0 +va (VaSet +vasetType 3 +) +xt "185000,9000,188250,9000" +pts [ +"188250,9000" +"185000,9000" +] +) +start &158 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17390,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17391,0 +va (VaSet +font "Verdana,12,0" +) +xt "183000,7600,186500,9000" +st "hClk" +blo "183000,8800" +tm "WireNameMgr" +) +) +on &102 +) +*306 (Wire +uid 17392,0 +shape (OrthoPolyLine +uid 17393,0 +va (VaSet +vasetType 3 +) +xt "185000,11000,188250,11000" +pts [ +"188250,11000" +"185000,11000" +] +) +start &159 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17396,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17397,0 +va (VaSet +font "Verdana,12,0" +) +xt "183000,9600,189800,11000" +st "hReset_n" +blo "183000,10800" +tm "WireNameMgr" +) +) +on &103 +) +*307 (Wire +uid 17398,0 +shape (OrthoPolyLine +uid 17399,0 +va (VaSet +vasetType 3 +) +xt "173750,-1000,188250,-1000" +pts [ +"173750,-1000" +"188250,-1000" +] +) +start &69 +end &161 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17400,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17401,0 +va (VaSet +font "Verdana,12,0" +) +xt "182000,-2400,188300,-1000" +st "hSelGpio" +blo "182000,-1200" +tm "WireNameMgr" +) +) +on &167 +) +*308 (Wire +uid 17402,0 +shape (OrthoPolyLine +uid 17403,0 +va (VaSet +vasetType 3 +) +xt "173750,5000,188250,5000" +pts [ +"188250,5000" +"173750,5000" +] +) +start &157 +end &65 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17404,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17405,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,3600,188750,5000" +st "hRespGpio" +blo "181250,4800" +tm "WireNameMgr" +) +) +on &170 +) +*309 (Wire +uid 17406,0 +shape (OrthoPolyLine +uid 17407,0 +va (VaSet +vasetType 3 +) +xt "173750,3000,188250,3000" +pts [ +"188250,3000" +"173750,3000" +] +) +start &156 +end &64 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17408,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17409,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,1600,190350,3000" +st "hReadyGpio" +blo "181250,2800" +tm "WireNameMgr" +) +) +on &169 +) +*310 (Wire +uid 17410,0 +shape (OrthoPolyLine +uid 17411,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "173750,1000,188250,1000" +pts [ +"188250,1000" +"173750,1000" +] +) +start &153 +end &66 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17412,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17413,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,-400,190250,1000" +st "hRDataGpio" +blo "181250,800" +tm "WireNameMgr" +) +) +on &168 +) +*311 (Wire +uid 17456,0 +shape (OrthoPolyLine +uid 17457,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "173750,35000,188250,35000" +pts [ +"188250,35000" +"173750,35000" +] +) +start &113 +end &78 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17458,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17459,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,33600,190150,35000" +st "hRDataUart" +blo "181250,34800" +tm "WireNameMgr" +) +) +on &131 +) +*312 (Wire +uid 17460,0 +shape (OrthoPolyLine +uid 17461,0 +va (VaSet +vasetType 3 +) +xt "173750,33000,188250,33000" +pts [ +"173750,33000" +"188250,33000" +] +) +start &81 +end &121 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17462,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17463,0 +va (VaSet +font "Verdana,12,0" +) +xt "182000,31600,188200,33000" +st "hSelUart" +blo "182000,32800" +tm "WireNameMgr" +) +) +on &130 +) +*313 (Wire +uid 17464,0 +shape (OrthoPolyLine +uid 17465,0 +va (VaSet +vasetType 3 +) +xt "173750,39000,188250,39000" +pts [ +"188250,39000" +"173750,39000" +] +) +start &117 +end &77 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17467,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,37600,188650,39000" +st "hRespUart" +blo "181250,38800" +tm "WireNameMgr" +) +) +on &133 +) +*314 (Wire +uid 17468,0 +shape (OrthoPolyLine +uid 17469,0 +va (VaSet +vasetType 3 +) +xt "173750,37000,188250,37000" +pts [ +"188250,37000" +"173750,37000" +] +) +start &116 +end &76 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17470,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17471,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,35600,190250,37000" +st "hReadyUart" +blo "181250,36800" +tm "WireNameMgr" +) +) +on &132 +) +*315 (Wire +uid 17472,0 +shape (OrthoPolyLine +uid 17473,0 +va (VaSet +vasetType 3 +) +xt "185000,45000,188250,45000" +pts [ +"188250,45000" +"185000,45000" +] +) +start &119 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17477,0 +va (VaSet +font "Verdana,12,0" +) +xt "183000,43600,189800,45000" +st "hReset_n" +blo "183000,44800" +tm "WireNameMgr" +) +) +on &103 +) +*316 (Wire +uid 17478,0 +shape (OrthoPolyLine +uid 17479,0 +va (VaSet +vasetType 3 +) +xt "185000,43000,188250,43000" +pts [ +"188250,43000" +"185000,43000" +] +) +start &118 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17482,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17483,0 +va (VaSet +font "Verdana,12,0" +) +xt "183000,41600,186500,43000" +st "hClk" +blo "183000,42800" +tm "WireNameMgr" +) +) +on &102 +) +*317 (Wire +uid 18322,0 +shape (OrthoPolyLine +uid 18323,0 +va (VaSet +vasetType 3 +) +xt "205750,25000,213000,25000" +pts [ +"205750,25000" +"213000,25000" +] +) +start &120 +end &126 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18326,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18327,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,23600,213100,25000" +st "TxD" +blo "210000,24800" +tm "WireNameMgr" +) +) +on &128 +) +*318 (Wire +uid 18334,0 +shape (OrthoPolyLine +uid 18335,0 +va (VaSet +vasetType 3 +) +xt "205750,27000,213000,27000" +pts [ +"205750,27000" +"213000,27000" +] +) +start &122 +end &127 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18338,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18339,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,25600,213200,27000" +st "RxD" +blo "210000,26800" +tm "WireNameMgr" +) +) +on &129 +) +*319 (Wire +uid 18411,0 +shape (OrthoPolyLine +uid 18412,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,67000,156250,67000" +pts [ +"156250,67000" +"147000,67000" +] +) +start &135 +end &265 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18415,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18416,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "151250,65600,155550,67000" +st "hSelV" +blo "151250,66800" +tm "WireNameMgr" +) +) +on &104 +) +*320 (Wire +uid 18417,0 +shape (OrthoPolyLine +uid 18418,0 +va (VaSet +vasetType 3 +) +xt "149000,69000,156250,69000" +pts [ +"156250,69000" +"149000,69000" +] +) +start &136 +end &271 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18421,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18422,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "149250,67600,155450,69000" +st "hRDataV" +blo "149250,68800" +tm "WireNameMgr" +) +) +on &105 +) +*321 (Wire +uid 18423,0 +shape (OrthoPolyLine +uid 18424,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "151000,71000,156250,71000" +pts [ +"156250,71000" +"151000,71000" +] +) +start &140 +end &277 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18427,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18428,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "149250,69600,155550,71000" +st "hReadyV" +blo "149250,70800" +tm "WireNameMgr" +) +) +on &106 +) +*322 (Wire +uid 18429,0 +shape (OrthoPolyLine +uid 18430,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "153000,73000,156250,73000" +pts [ +"156250,73000" +"153000,73000" +] +) +start &141 +end &283 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18433,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18434,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "149250,71600,154750,73000" +st "hRespV" +blo "149250,72800" +tm "WireNameMgr" +) +) +on &107 +) +*323 (Wire +uid 18435,0 +shape (OrthoPolyLine +uid 18436,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "173750,69000,188250,69000" +pts [ +"188250,69000" +"173750,69000" +] +) +start &212 +end &139 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18439,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18440,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,67600,192250,69000" +st "hRDataBeamer" +blo "181250,68800" +tm "WireNameMgr" +) +) +on &147 +) +*324 (Wire +uid 18441,0 +shape (OrthoPolyLine +uid 18442,0 +va (VaSet +vasetType 3 +) +xt "173750,67000,188250,67000" +pts [ +"173750,67000" +"188250,67000" +] +) +start &142 +end &215 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18445,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18446,0 +va (VaSet +font "Verdana,12,0" +) +xt "182000,65600,191100,67000" +st "hSelBeamer" +blo "182000,66800" +tm "WireNameMgr" +) +) +on &146 +) +*325 (Wire +uid 18447,0 +shape (OrthoPolyLine +uid 18448,0 +va (VaSet +vasetType 3 +) +xt "173750,73000,188250,73000" +pts [ +"188250,73000" +"173750,73000" +] +) +start &217 +end &138 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18451,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18452,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,71600,191550,73000" +st "hRespBeamer" +blo "181250,72800" +tm "WireNameMgr" +) +) +on &149 +) +*326 (Wire +uid 18453,0 +shape (OrthoPolyLine +uid 18454,0 +va (VaSet +vasetType 3 +) +xt "173750,71000,188250,71000" +pts [ +"188250,71000" +"173750,71000" +] +) +start &216 +end &137 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18457,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18458,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,69600,192350,71000" +st "hReadyBeamer" +blo "181250,70800" +tm "WireNameMgr" +) +) +on &148 +) +*327 (Wire +uid 18475,0 +shape (OrthoPolyLine +uid 18476,0 +va (VaSet +vasetType 3 +) +xt "185000,79000,188250,79000" +pts [ +"188250,79000" +"185000,79000" +] +) +start &207 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18481,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18482,0 +va (VaSet +font "Verdana,12,0" +) +xt "183000,77600,189800,79000" +st "hReset_n" +blo "183000,78800" +tm "WireNameMgr" +) +) +on &103 +) +*328 (Wire +uid 18483,0 +shape (OrthoPolyLine +uid 18484,0 +va (VaSet +vasetType 3 +) +xt "185000,77000,188250,77000" +pts [ +"188250,77000" +"185000,77000" +] +) +start &204 +sat 32 +eat 16 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18489,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18490,0 +va (VaSet +font "Verdana,12,0" +) +xt "183000,75600,186500,77000" +st "hClk" +blo "183000,76800" +tm "WireNameMgr" +) +) +on &102 +) +*329 (Wire +uid 18491,0 +shape (OrthoPolyLine +uid 18492,0 +va (VaSet +vasetType 3 +) +xt "175000,65000,188250,65000" +pts [ +"175000,65000" +"188250,65000" +] +) +start &256 +end &214 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18493,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18494,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,63600,187250,65000" +st "hWrite" +blo "182250,64800" +tm "WireNameMgr" +) +) +on &98 +) +*330 (Wire +uid 18497,0 +shape (OrthoPolyLine +uid 18498,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "177000,63000,188250,63000" +pts [ +"177000,63000" +"188250,63000" +] +) +start &250 +end &213 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18499,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18500,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,61600,187350,63000" +st "hTrans" +blo "182250,62800" +tm "WireNameMgr" +) +) +on &94 +) +*331 (Wire +uid 18503,0 +shape (OrthoPolyLine +uid 18504,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "179000,61000,188250,61000" +pts [ +"179000,61000" +"188250,61000" +] +) +start &244 +end &209 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18505,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18506,0 +va (VaSet +font "Verdana,12,0" +) +xt "181250,59600,187150,61000" +st "hWData" +blo "181250,60800" +tm "WireNameMgr" +) +) +on &92 +) +*332 (Wire +uid 18509,0 +shape (OrthoPolyLine +uid 18510,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "181000,59000,188250,59000" +pts [ +"181000,59000" +"188250,59000" +] +) +start &237 +end &205 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18511,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18512,0 +va (VaSet +font "Verdana,12,0" +) +xt "182250,57600,186750,59000" +st "hAddr" +blo "182250,58800" +tm "WireNameMgr" +) +) +on &91 +) +*333 (Wire +uid 18715,0 +shape (OrthoPolyLine +uid 18716,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "205750,-9000,213000,-9000" +pts [ +"213000,-9000" +"205750,-9000" +] +) +start &173 +end &163 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18717,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18718,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,-10400,213500,-9000" +st "ioEn" +blo "210000,-9200" +tm "WireNameMgr" +) +) +on &174 +) +*334 (Wire +uid 18721,0 +shape (OrthoPolyLine +uid 18722,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "205750,-7000,213000,-7000" +pts [ +"213000,-7000" +"205750,-7000" +] +) +start &171 +end &160 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18723,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18724,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,-8400,214200,-7000" +st "ioOut" +blo "210000,-7200" +tm "WireNameMgr" +) +) +on &175 +) +*335 (Wire +uid 18727,0 +shape (OrthoPolyLine +uid 18728,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "205750,-5000,213000,-5000" +pts [ +"213000,-5000" +"205750,-5000" +] +) +start &172 +end &162 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 18729,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18730,0 +va (VaSet +font "Verdana,12,0" +) +xt "210000,-6400,213200,-5000" +st "ioIn" +blo "210000,-5200" +tm "WireNameMgr" +) +) +on &176 +) +*336 (Wire +uid 19070,0 +shape (OrthoPolyLine +uid 19071,0 +va (VaSet +vasetType 3 +) +xt "36000,-17000,43250,-17000" +pts [ +"43250,-17000" +"36000,-17000" +] +) +start &191 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19074,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19075,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,-18400,40500,-17000" +st "intAck" +blo "36000,-17200" +tm "WireNameMgr" +) +) +on &177 +) +*337 (Wire +uid 19076,0 +shape (OrthoPolyLine +uid 19077,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60750,-17000,69000,11000" +pts [ +"60750,-17000" +"69000,-17000" +"69000,11000" +"60750,11000" +] +) +start &196 +end &224 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 19078,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19079,0 +va (VaSet +font "Verdana,12,0" +) +xt "62750,-18400,70950,-17000" +st "instruction" +blo "62750,-17200" +tm "WireNameMgr" +) +) +on &178 +) +*338 (Wire +uid 19080,0 +shape (OrthoPolyLine +uid 19081,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "40000,-19000,65000,11000" +pts [ +"60750,-19000" +"65000,-19000" +"65000,3000" +"40000,3000" +"40000,11000" +"43250,11000" +] +) +start &197 +end &222 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 19082,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19083,0 +va (VaSet +font "Verdana,12,0" +) +xt "62000,-20400,74000,-19000" +st "programCounter" +blo "62000,-19200" +tm "WireNameMgr" +) +) +on &179 +) +*339 (Wire +uid 19084,0 +shape (OrthoPolyLine +uid 19085,0 +va (VaSet +vasetType 3 +) +xt "36000,-19000,43250,-19000" +pts [ +"36000,-19000" +"43250,-19000" +] +) +end &192 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19088,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19089,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,-20400,38400,-19000" +st "int" +blo "36000,-19200" +tm "WireNameMgr" +) +) +on &85 +) +*340 (Wire +uid 19298,0 +shape (OrthoPolyLine +uid 19299,0 +va (VaSet +vasetType 3 +) +xt "40000,19000,43250,19000" +pts [ +"40000,19000" +"43250,19000" +] +) +end &226 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 19304,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19305,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,17600,43100,19000" +st "reset" +blo "39000,18800" +tm "WireNameMgr" +) +) +on &109 +) +*341 (Wire +uid 19306,0 +shape (OrthoPolyLine +uid 19307,0 +va (VaSet +vasetType 3 +) +xt "40000,17000,43250,17000" +pts [ +"40000,17000" +"43250,17000" +] +) +end &223 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19312,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19313,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,15600,42800,17000" +st "clock" +blo "39000,16800" +tm "WireNameMgr" +) +) +on &108 +) +*342 (Wire +uid 19314,0 +shape (OrthoPolyLine +uid 19315,0 +va (VaSet +vasetType 3 +) +xt "38000,-6997,43250,15000" +pts [ +"38000,-6997" +"38000,15000" +"43250,15000" +] +) +start &288 +end &225 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19316,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19317,0 +va (VaSet +font "Verdana,12,0" +) +xt "40250,13600,44250,15000" +st "upEn" +blo "40250,14800" +tm "WireNameMgr" +) +) +on &180 +) +*343 (Wire +uid 19803,0 +shape (OrthoPolyLine +uid 19804,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "205750,77000,213000,77000" +pts [ +"205750,77000" +"213000,77000" +] +) +start &211 +end &201 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19808,0 +va (VaSet +font "Verdana,12,0" +) +xt "208000,75600,213600,77000" +st "testOut" +blo "208000,76800" +tm "WireNameMgr" +) +) +on &202 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *344 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*345 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,-25000,6900,-24000" +st "Package List" +blo "0,-24200" +) +*346 (MLText +uid 44,0 +va (VaSet +) +xt "0,-24000,17500,-18000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*347 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*348 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*349 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*350 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*351 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*352 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*353 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-3252,-28293,286043,128889" +cachedDiagramExtent "0,-25000,237000,125500" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 67 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-25000" +lastUid 20844,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*354 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*355 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*356 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*357 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*358 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*359 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*360 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*361 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*362 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*363 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*364 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*365 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*366 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*367 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*368 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*369 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*370 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*371 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*372 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*373 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*374 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,49000,7000,50000" +st "Declarations" +blo "0,49800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,49900,3400,50900" +st "Ports:" +blo "0,50700" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,60700,4800,61700" +st "Pre User:" +blo "0,61500" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,61600,29500,92600" +st "constant programCounterBitNb: positive := 10; +constant instructionBitNb: positive := 26; +constant stackPointerBitNb: positive := 4; +constant registerAddressBitNb: positive := 4; +constant scratchpadAddressBitNb: natural := 0; + +constant signalBitNb: positive := 16; +constant updatePeriodBitNb : positive := 16; + +constant gpioIndex: positive := 1; +constant uartIndex: positive := gpioIndex+1; +constant beamerIndex: positive := uartIndex+1; + +constant ahbMemoryLocation : ahbMemoryLocationVector := ( + gpioIndex => ( + baseAddress => 16#0000#, + addressMask => 16#10000# - 16#0002# + ), + uartIndex => ( + baseAddress => 16#0010#, + addressMask => 16#10000# - 16#0004# + ), + beamerIndex => ( + baseAddress => 16#0020#, + addressMask => 16#10000# - 16#0004# + ), + others => ( + baseAddress => 16#FFFF#, + addressMask => 16#0000# + ) +);" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,89500,9000,90500" +st "Diagram Signals:" +blo "0,90300" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,49000,6000,50000" +st "Post User:" +blo "0,49800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,49000,0,49000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 162,0 +usingSuid 1 +emptyRow *375 (LEmptyRow +) +uid 10774,0 +optionalChildren [ +*376 (RefLabelRowHdr +) +*377 (TitleRowHdr +) +*378 (FilterRowHdr +) +*379 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*380 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*381 (GroupColHdr +tm "GroupColHdrMgr" +) +*382 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*383 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*384 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*385 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*386 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*387 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*388 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 10639,0 +) +*389 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 10641,0 +) +*390 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 62,0 +) +) +uid 10755,0 +) +*391 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "int" +t "std_uLogic" +o 13 +suid 87,0 +) +) +uid 17574,0 +) +*392 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upAddress" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 14 +suid 88,0 +) +) +uid 17576,0 +) +*393 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 15 +suid 89,0 +) +) +uid 17578,0 +) +*394 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 16 +suid 90,0 +) +) +uid 17580,0 +) +*395 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upReadStrobe" +t "std_uLogic" +o 17 +suid 91,0 +) +) +uid 17582,0 +) +*396 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upWriteStrobe" +t "std_uLogic" +o 18 +suid 92,0 +) +) +uid 17584,0 +) +*397 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 19 +suid 93,0 +) +) +uid 17586,0 +) +*398 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 20 +suid 94,0 +) +) +uid 17588,0 +) +*399 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 21 +suid 95,0 +) +) +uid 17590,0 +) +*400 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 22 +suid 96,0 +) +) +uid 17592,0 +) +*401 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 23 +suid 97,0 +) +) +uid 17594,0 +) +*402 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 24 +suid 98,0 +) +) +uid 17596,0 +) +*403 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 25 +suid 99,0 +) +) +uid 17598,0 +) +*404 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWrite" +t "std_uLogic" +o 26 +suid 100,0 +) +) +uid 17600,0 +) +*405 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReady" +t "std_uLogic" +o 27 +suid 101,0 +) +) +uid 17602,0 +) +*406 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 28 +suid 102,0 +) +) +uid 17604,0 +) +*407 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hResp" +t "std_uLogic" +o 29 +suid 103,0 +) +) +uid 17606,0 +) +*408 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hClk" +t "std_uLogic" +o 30 +suid 104,0 +) +) +uid 17608,0 +) +*409 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 31 +suid 105,0 +) +) +uid 17610,0 +) +*410 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "(1 TO ahbSlaveNb)" +o 32 +suid 106,0 +) +) +uid 17612,0 +) +*411 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 33 +suid 107,0 +) +) +uid 17614,0 +) +*412 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 34 +suid 108,0 +) +) +uid 17616,0 +) +*413 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 35 +suid 109,0 +) +) +uid 17618,0 +) +*414 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 126,0 +) +) +uid 17755,0 +) +*415 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 127,0 +) +) +uid 17757,0 +) +*416 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 128,0 +) +) +uid 18358,0 +) +*417 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 129,0 +) +) +uid 18360,0 +) +*418 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelUart" +t "std_uLogic" +o 43 +suid 130,0 +) +) +uid 18362,0 +) +*419 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataUart" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 41 +suid 131,0 +) +) +uid 18364,0 +) +*420 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyUart" +t "std_uLogic" +o 47 +suid 132,0 +) +) +uid 18366,0 +) +*421 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespUart" +t "std_uLogic" +o 44 +suid 133,0 +) +) +uid 18368,0 +) +*422 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelBeamer" +t "std_uLogic" +o 42 +suid 134,0 +) +) +uid 18515,0 +) +*423 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataBeamer" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 40 +suid 135,0 +) +) +uid 18517,0 +) +*424 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyBeamer" +t "std_uLogic" +o 46 +suid 136,0 +) +) +uid 18519,0 +) +*425 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespBeamer" +t "std_uLogic" +o 45 +suid 137,0 +) +) +uid 18521,0 +) +*426 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelGpio" +t "std_uLogic" +o 36 +suid 138,0 +) +) +uid 18731,0 +) +*427 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataGpio" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 39 +suid 139,0 +) +) +uid 18733,0 +) +*428 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyGpio" +t "std_uLogic" +o 38 +suid 140,0 +) +) +uid 18735,0 +) +*429 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespGpio" +t "std_uLogic" +o 37 +suid 141,0 +) +) +uid 18737,0 +) +*430 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 142,0 +) +) +uid 18739,0 +) +*431 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 143,0 +) +) +uid 18741,0 +) +*432 (LeafLogPort +port (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 144,0 +) +) +uid 18743,0 +) +*433 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "intAck" +t "std_ulogic" +o 48 +suid 145,0 +) +) +uid 19124,0 +) +*434 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 49 +suid 151,0 +) +) +uid 19126,0 +) +*435 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "programCounter" +t "unsigned" +b "(programCounterBitNb-1 DOWNTO 0)" +o 50 +suid 152,0 +) +) +uid 19128,0 +) +*436 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upEn" +t "std_ulogic" +o 12 +suid 160,0 +) +) +uid 19387,0 +) +*437 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 162,0 +) +) +uid 19813,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 10787,0 +optionalChildren [ +*438 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *439 (MRCItem +litem &375 +pos 50 +dimension 20 +) +uid 10789,0 +optionalChildren [ +*440 (MRCItem +litem &376 +pos 0 +dimension 20 +uid 10790,0 +) +*441 (MRCItem +litem &377 +pos 1 +dimension 23 +uid 10791,0 +) +*442 (MRCItem +litem &378 +pos 2 +hidden 1 +dimension 20 +uid 10792,0 +) +*443 (MRCItem +litem &388 +pos 0 +dimension 20 +uid 10640,0 +) +*444 (MRCItem +litem &389 +pos 1 +dimension 20 +uid 10642,0 +) +*445 (MRCItem +litem &390 +pos 2 +dimension 20 +uid 10756,0 +) +*446 (MRCItem +litem &391 +pos 11 +dimension 20 +uid 17575,0 +) +*447 (MRCItem +litem &392 +pos 12 +dimension 20 +uid 17577,0 +) +*448 (MRCItem +litem &393 +pos 13 +dimension 20 +uid 17579,0 +) +*449 (MRCItem +litem &394 +pos 14 +dimension 20 +uid 17581,0 +) +*450 (MRCItem +litem &395 +pos 15 +dimension 20 +uid 17583,0 +) +*451 (MRCItem +litem &396 +pos 16 +dimension 20 +uid 17585,0 +) +*452 (MRCItem +litem &397 +pos 17 +dimension 20 +uid 17587,0 +) +*453 (MRCItem +litem &398 +pos 18 +dimension 20 +uid 17589,0 +) +*454 (MRCItem +litem &399 +pos 19 +dimension 20 +uid 17591,0 +) +*455 (MRCItem +litem &400 +pos 20 +dimension 20 +uid 17593,0 +) +*456 (MRCItem +litem &401 +pos 21 +dimension 20 +uid 17595,0 +) +*457 (MRCItem +litem &402 +pos 22 +dimension 20 +uid 17597,0 +) +*458 (MRCItem +litem &403 +pos 23 +dimension 20 +uid 17599,0 +) +*459 (MRCItem +litem &404 +pos 24 +dimension 20 +uid 17601,0 +) +*460 (MRCItem +litem &405 +pos 25 +dimension 20 +uid 17603,0 +) +*461 (MRCItem +litem &406 +pos 26 +dimension 20 +uid 17605,0 +) +*462 (MRCItem +litem &407 +pos 27 +dimension 20 +uid 17607,0 +) +*463 (MRCItem +litem &408 +pos 28 +dimension 20 +uid 17609,0 +) +*464 (MRCItem +litem &409 +pos 29 +dimension 20 +uid 17611,0 +) +*465 (MRCItem +litem &410 +pos 30 +dimension 20 +uid 17613,0 +) +*466 (MRCItem +litem &411 +pos 31 +dimension 20 +uid 17615,0 +) +*467 (MRCItem +litem &412 +pos 32 +dimension 20 +uid 17617,0 +) +*468 (MRCItem +litem &413 +pos 33 +dimension 20 +uid 17619,0 +) +*469 (MRCItem +litem &414 +pos 3 +dimension 20 +uid 17756,0 +) +*470 (MRCItem +litem &415 +pos 4 +dimension 20 +uid 17758,0 +) +*471 (MRCItem +litem &416 +pos 5 +dimension 20 +uid 18359,0 +) +*472 (MRCItem +litem &417 +pos 6 +dimension 20 +uid 18361,0 +) +*473 (MRCItem +litem &418 +pos 34 +dimension 20 +uid 18363,0 +) +*474 (MRCItem +litem &419 +pos 35 +dimension 20 +uid 18365,0 +) +*475 (MRCItem +litem &420 +pos 36 +dimension 20 +uid 18367,0 +) +*476 (MRCItem +litem &421 +pos 37 +dimension 20 +uid 18369,0 +) +*477 (MRCItem +litem &422 +pos 38 +dimension 20 +uid 18516,0 +) +*478 (MRCItem +litem &423 +pos 39 +dimension 20 +uid 18518,0 +) +*479 (MRCItem +litem &424 +pos 40 +dimension 20 +uid 18520,0 +) +*480 (MRCItem +litem &425 +pos 41 +dimension 20 +uid 18522,0 +) +*481 (MRCItem +litem &426 +pos 42 +dimension 20 +uid 18732,0 +) +*482 (MRCItem +litem &427 +pos 43 +dimension 20 +uid 18734,0 +) +*483 (MRCItem +litem &428 +pos 44 +dimension 20 +uid 18736,0 +) +*484 (MRCItem +litem &429 +pos 45 +dimension 20 +uid 18738,0 +) +*485 (MRCItem +litem &430 +pos 7 +dimension 20 +uid 18740,0 +) +*486 (MRCItem +litem &431 +pos 8 +dimension 20 +uid 18742,0 +) +*487 (MRCItem +litem &432 +pos 9 +dimension 20 +uid 18744,0 +) +*488 (MRCItem +litem &433 +pos 46 +dimension 20 +uid 19125,0 +) +*489 (MRCItem +litem &434 +pos 47 +dimension 20 +uid 19127,0 +) +*490 (MRCItem +litem &435 +pos 48 +dimension 20 +uid 19129,0 +) +*491 (MRCItem +litem &436 +pos 49 +dimension 20 +uid 19388,0 +) +*492 (MRCItem +litem &437 +pos 10 +dimension 20 +uid 19814,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10793,0 +optionalChildren [ +*493 (MRCItem +litem &379 +pos 0 +dimension 20 +uid 10794,0 +) +*494 (MRCItem +litem &381 +pos 1 +dimension 50 +uid 10795,0 +) +*495 (MRCItem +litem &382 +pos 2 +dimension 100 +uid 10796,0 +) +*496 (MRCItem +litem &383 +pos 3 +dimension 50 +uid 10797,0 +) +*497 (MRCItem +litem &384 +pos 4 +dimension 100 +uid 10798,0 +) +*498 (MRCItem +litem &385 +pos 5 +dimension 100 +uid 10799,0 +) +*499 (MRCItem +litem &386 +pos 6 +dimension 50 +uid 10800,0 +) +*500 (MRCItem +litem &387 +pos 7 +dimension 80 +uid 10801,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 10788,0 +vaOverrides [ +] +) +] +) +uid 10773,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *501 (LEmptyRow +) +uid 10803,0 +optionalChildren [ +*502 (RefLabelRowHdr +) +*503 (TitleRowHdr +) +*504 (FilterRowHdr +) +*505 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*506 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*507 (GroupColHdr +tm "GroupColHdrMgr" +) +*508 (NameColHdr +tm "GenericNameColHdrMgr" +) +*509 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*510 (InitColHdr +tm "GenericValueColHdrMgr" +) +*511 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*512 (EolColHdr +tm "GenericEolColHdrMgr" +) +*513 (LogGeneric +generic (GiElement +name "ioNb" +type "positive" +value "8" +) +uid 18746,0 +) +*514 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 19794,0 +) +*515 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "9" +) +uid 20442,0 +) +] +) +pdm (PhysicalDM +uid 10815,0 +optionalChildren [ +*516 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *517 (MRCItem +litem &501 +pos 3 +dimension 20 +) +uid 10817,0 +optionalChildren [ +*518 (MRCItem +litem &502 +pos 0 +dimension 20 +uid 10818,0 +) +*519 (MRCItem +litem &503 +pos 1 +dimension 23 +uid 10819,0 +) +*520 (MRCItem +litem &504 +pos 2 +hidden 1 +dimension 20 +uid 10820,0 +) +*521 (MRCItem +litem &513 +pos 0 +dimension 20 +uid 18745,0 +) +*522 (MRCItem +litem &514 +pos 1 +dimension 20 +uid 19793,0 +) +*523 (MRCItem +litem &515 +pos 2 +dimension 20 +uid 20441,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 10821,0 +optionalChildren [ +*524 (MRCItem +litem &505 +pos 0 +dimension 20 +uid 10822,0 +) +*525 (MRCItem +litem &507 +pos 1 +dimension 50 +uid 10823,0 +) +*526 (MRCItem +litem &508 +pos 2 +dimension 100 +uid 10824,0 +) +*527 (MRCItem +litem &509 +pos 3 +dimension 100 +uid 10825,0 +) +*528 (MRCItem +litem &510 +pos 4 +dimension 50 +uid 10826,0 +) +*529 (MRCItem +litem &511 +pos 5 +dimension 50 +uid 10827,0 +) +*530 (MRCItem +litem &512 +pos 6 +dimension 80 +uid 10828,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 10816,0 +vaOverrides [ +] +) +] +) +uid 10802,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/symbol.sb new file mode 100644 index 0000000..f1fbb8c --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/beamer@soc/symbol.sb @@ -0,0 +1,2077 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2024,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 203,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +uid 204,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +uid 206,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 210,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 2017,0 +) +) +uid 799,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 2018,0 +) +) +uid 898,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 2019,0 +) +) +uid 900,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 2020,0 +) +) +uid 1004,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 2021,0 +) +) +uid 1006,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2022,0 +) +) +uid 1008,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 2024,0 +) +) +uid 1126,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 215,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 132,0 +optionalChildren [ +*27 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 135,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 137,0 +) +*29 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +*30 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 159,0 +) +*31 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 160,0 +) +*32 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 162,0 +) +*33 (MRCItem +litem &5 +pos 1 +dimension 20 +uid 166,0 +) +*34 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 798,0 +) +*35 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 897,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 899,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 1003,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 1005,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 1007,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 1125,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*41 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 141,0 +) +*42 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 145,0 +) +*43 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 147,0 +) +*44 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 149,0 +) +*45 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 151,0 +) +*46 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 153,0 +) +*47 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 155,0 +) +*48 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 217,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +*61 (LogGeneric +generic (GiElement +name "ioNb" +type "positive" +value "8" +) +uid 197,0 +) +*62 (LogGeneric +generic (GiElement +name "testOutBitNb" +type "positive" +value "16" +) +uid 1093,0 +) +*63 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "9" +) +uid 1178,0 +) +] +) +pdm (PhysicalDM +uid 218,0 +optionalChildren [ +*64 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *65 (MRCItem +litem &49 +pos 3 +dimension 20 +) +uid 172,0 +optionalChildren [ +*66 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 175,0 +) +*67 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 177,0 +) +*68 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 179,0 +) +*69 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 199,0 +) +*70 (MRCItem +litem &62 +pos 1 +dimension 20 +uid 1094,0 +) +*71 (MRCItem +litem &63 +pos 2 +dimension 20 +uid 1179,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 173,0 +optionalChildren [ +*72 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 181,0 +) +*73 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 185,0 +) +*74 (MRCItem +litem &56 +pos 2 +dimension 100 +uid 187,0 +) +*75 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 189,0 +) +*76 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 191,0 +) +*77 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 193,0 +) +*78 (MRCItem +litem &60 +pos 6 +dimension 80 +uid 195,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 171,0 +vaOverrides [ +] +) +] +) +uid 216,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@soc/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@soc/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@soc" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerSoc" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerSoc" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerSoc" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamer@soc/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/beamerSoc/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "beamerSoc" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,25625,36000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "37000,25400,39500,26300" +st "clock" +blo "37000,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14800,18500,15700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +) +*81 (CptPort +uid 67,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 68,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,21625,52750,22375" +) +tg (CPTG +uid 69,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 70,0 +va (VaSet +font "courier,9,0" +) +xt "49001,21400,51001,22300" +st "outX" +ju 2 +blo "51001,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 71,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11200,18500,12100" +st "outX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*82 (CptPort +uid 82,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 83,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 84,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 85,0 +va (VaSet +font "courier,9,0" +) +xt "49001,23400,51001,24300" +st "outY" +ju 2 +blo "51001,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 86,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12100,18500,13000" +st "outY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*83 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,25625,52750,26375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "46501,25400,51001,26300" +st "selSinCos" +ju 2 +blo "51001,26100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,18500,13900" +st "selSinCos : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*84 (CptPort +uid 800,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 801,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,27625,36000,28375" +) +tg (CPTG +uid 802,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 803,0 +va (VaSet +font "courier,9,0" +) +xt "37000,27400,39500,28300" +st "reset" +blo "37000,28100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 804,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,18500,14800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 2017,0 +) +) +) +*85 (CptPort +uid 901,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 902,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,13625,36000,14375" +) +tg (CPTG +uid 903,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 904,0 +va (VaSet +font "courier,9,0" +) +xt "37000,13400,38500,14300" +st "TxD" +blo "37000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 905,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9400,18500,10300" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 2018,0 +) +) +) +*86 (CptPort +uid 906,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 907,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,15625,36000,16375" +) +tg (CPTG +uid 908,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 909,0 +va (VaSet +font "courier,9,0" +) +xt "37000,15400,38500,16300" +st "RxD" +blo "37000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 910,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10300,18500,11200" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 2019,0 +) +) +) +*87 (CptPort +uid 1009,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1010,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,13625,52750,14375" +) +tg (CPTG +uid 1011,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1012,0 +va (VaSet +font "courier,9,0" +) +xt "49000,13400,51000,14300" +st "ioEn" +ju 2 +blo "51000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1013,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15700,30500,16600" +st "ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 2020,0 +) +) +) +*88 (CptPort +uid 1014,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1015,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,15625,52750,16375" +) +tg (CPTG +uid 1016,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1017,0 +va (VaSet +font "courier,9,0" +) +xt "48500,15400,51000,16300" +st "ioOut" +ju 2 +blo "51000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1018,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16600,30500,17500" +st "ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 2021,0 +) +) +) +*89 (CptPort +uid 1019,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1020,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,17625,52750,18375" +) +tg (CPTG +uid 1021,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1022,0 +va (VaSet +font "courier,9,0" +) +xt "49000,17400,51000,18300" +st "ioIn" +ju 2 +blo "51000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1023,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17500,30500,18400" +st "ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2022,0 +) +) +) +*90 (CptPort +uid 1127,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1128,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,9250,44375,10000" +) +tg (CPTG +uid 1129,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1130,0 +va (VaSet +font "courier,9,0" +) +xt "43100,11000,46600,11900" +st "testOut" +ju 2 +blo "46600,11700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1131,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18400,30500,19300" +st "testOut : OUT std_ulogic_vector (1 TO testOutBitNb)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 2024,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,10000,52000,30000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "36600,29800,43100,30700" +st "SystemOnChip" +blo "36600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "36600,30700,41100,31600" +st "beamerSoc" +blo "36600,31400" +) +) +gi *91 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "36000,33600,53000,38100" +st "Generic Declarations + +ioNb positive 8 +testOutBitNb positive 16 +patternAddressBitNb positive 9 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "8" +) +(GiElement +name "testOutBitNb" +type "positive" +value "16" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "9" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*92 (Grouping +uid 16,0 +optionalChildren [ +*93 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*98 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*99 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*100 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*101 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*102 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *103 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*105 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "91,33,1411,880" +viewArea "-1100,-1100,75970,48250" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *106 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *107 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7600,6500,8500" +st "Declarations" +blo "0,8300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8500,3000,9400" +st "Ports:" +blo "0,9200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,19300,2500,20200" +st "User:" +blo "0,20000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7600,7500,8500" +st "Internal User:" +blo "0,8300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20200,2000,20200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7600,0,7600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1202,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m/symbol.sb new file mode 100644 index 0000000..83d411c --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m/symbol.sb @@ -0,0 +1,1812 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2007,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 209,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 210,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 211,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 212,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 213,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 214,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 215,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +uid 216,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 217,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 146,0 +optionalChildren [ +*23 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 149,0 +) +*24 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 151,0 +) +*25 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 153,0 +) +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 172,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 173,0 +) +*28 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 174,0 +) +*29 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 175,0 +) +*30 (MRCItem +litem &6 +pos 4 +dimension 20 +uid 176,0 +) +*31 (MRCItem +litem &7 +pos 5 +dimension 20 +uid 177,0 +) +*32 (MRCItem +litem &8 +pos 6 +dimension 20 +uid 178,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 147,0 +optionalChildren [ +*33 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 155,0 +) +*34 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 159,0 +) +*35 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 161,0 +) +*36 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 163,0 +) +*37 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 165,0 +) +*38 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 167,0 +) +*39 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 169,0 +) +*40 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 171,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 145,0 +vaOverrides [ +] +) +] +) +uid 208,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 219,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 204,0 +) +*54 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 205,0 +) +*55 (LogGeneric +generic (GiElement +name "initFileSpec" +type "string" +value "\"ramInit.txt\"" +) +uid 221,0 +) +] +) +pdm (PhysicalDM +uid 220,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *57 (MRCItem +litem &41 +pos 3 +dimension 20 +) +uid 180,0 +optionalChildren [ +*58 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 183,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 185,0 +) +*60 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 187,0 +) +*61 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 206,0 +) +*62 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 207,0 +) +*63 (MRCItem +litem &55 +pos 2 +dimension 20 +uid 222,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 181,0 +optionalChildren [ +*64 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 189,0 +) +*65 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 193,0 +) +*66 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 195,0 +) +*67 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 197,0 +) +*68 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 199,0 +) +*69 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 201,0 +) +*70 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 203,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 179,0 +vaOverrides [ +] +) +] +) +uid 218,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/blockRAM" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "blockRAM" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "blockRAM" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/blockRAM/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "blockRAM" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,12625,38000,13375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "39000,12400,42000,13300" +st "dataIn" +blo "39000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,32000,11700" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*73 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,12625,54750,13375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "49500,12400,53000,13300" +st "dataOut" +ju 2 +blo "53000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,32000,12600" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*74 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,20625,38000,21375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "39000,20400,40000,21300" +st "en" +blo "39000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,17500,13500" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*75 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,24625,38000,25375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "39000,24400,41500,25300" +st "clock" +blo "39000,25100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,17500,14400" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*76 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "39000,26400,41500,27300" +st "reset" +blo "39000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,17500,15300" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*77 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,18625,38000,19375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +font "courier,9,0" +) +xt "39000,18400,41500,19300" +st "write" +blo "39000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,17500,16200" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*78 (CptPort +uid 140,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 141,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,14625,38000,15375" +) +tg (CPTG +uid 142,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 143,0 +va (VaSet +font "courier,9,0" +) +xt "39000,14400,41000,15300" +st "addr" +blo "39000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 144,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,28000,17100" +st "addr : IN unsigned (addressBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,9000,54000,29000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "38600,28800,45100,29700" +st "SystemOnChip" +blo "38600,29500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "38600,29700,42600,30600" +st "blockRAM" +blo "38600,30400" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,32600,57000,37100" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 16 +initFileSpec string \"ramInit.txt\" " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "initFileSpec" +type "string" +value "\"ramInit.txt\"" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*93 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "104,48,1340,870" +viewArea "-1090,-1090,75899,50388" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,17100,2500,18000" +st "User:" +blo "0,17800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18000,2000,18000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 245,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb new file mode 100644 index 0000000..600eb18 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb @@ -0,0 +1,1709 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2006,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 225,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 226,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 227,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 228,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +uid 229,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 230,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 231,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 232,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 163,0 +optionalChildren [ +*22 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 166,0 +) +*23 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 168,0 +) +*24 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 170,0 +) +*25 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 189,0 +) +*26 (MRCItem +litem &3 +pos 5 +dimension 20 +uid 190,0 +) +*27 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 191,0 +) +*28 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 192,0 +) +*29 (MRCItem +litem &6 +pos 1 +dimension 20 +uid 193,0 +) +*30 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 194,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 164,0 +optionalChildren [ +*31 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 172,0 +) +*32 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 176,0 +) +*33 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 178,0 +) +*34 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 180,0 +) +*35 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 182,0 +) +*36 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 184,0 +) +*37 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 186,0 +) +*38 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 188,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 162,0 +vaOverrides [ +] +) +] +) +uid 224,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 234,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 220,0 +) +] +) +pdm (PhysicalDM +uid 235,0 +optionalChildren [ +*52 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *53 (MRCItem +litem &39 +pos 1 +dimension 20 +) +uid 196,0 +optionalChildren [ +*54 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 199,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 201,0 +) +*56 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 203,0 +) +*57 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 222,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 197,0 +optionalChildren [ +*58 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 205,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 209,0 +) +*60 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 211,0 +) +*61 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 213,0 +) +*62 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 215,0 +) +*63 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 217,0 +) +*64 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 219,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 195,0 +vaOverrides [ +] +) +] +) +uid 233,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@address@counter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/blockRAMAddressCounter" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "blockRAMAddressCounter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "blockRAMAddressCounter" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@address@counter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/blockRAMAddressCounter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "blockRAMAddressCounter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,20625,38000,21375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "39000,20400,40000,21300" +st "en" +blo "39000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,19500,11700" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,24625,38000,25375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "39000,24400,41500,25300" +st "clock" +blo "39000,25100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,19500,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "39000,26400,41500,27300" +st "reset" +blo "39000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,19500,13500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*69 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,18625,38000,19375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +font "courier,9,0" +) +xt "39000,18400,43500,19300" +st "updateMem" +blo "39000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,19500,14400" +st "updateMem : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "updateMem" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*70 (CptPort +uid 140,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 160,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,16625,54750,17375" +) +tg (CPTG +uid 142,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 143,0 +va (VaSet +font "courier,9,0" +) +xt "51000,16400,53000,17300" +st "addr" +ju 2 +blo "53000,17100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 144,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,31000,15300" +st "addr : OUT unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 5 +suid 5,0 +) +) +) +*71 (CptPort +uid 155,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 161,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,16625,38000,17375" +) +tg (CPTG +uid 157,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 158,0 +va (VaSet +font "courier,9,0" +) +xt "39000,16400,45000,17300" +st "patternSize" +blo "39000,17100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 159,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,30000,16200" +st "patternSize : IN unsigned (addressBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +decl (Decl +n "patternSize" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,13000,54000,29000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "38600,28800,45100,29700" +st "SystemOnChip" +blo "38600,29500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "38600,29700,50100,30600" +st "blockRAMAddressCounter" +blo "38600,30400" +) +) +gi *72 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,32600,51000,35300" +st "Generic Declarations + +addressBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*73 (Grouping +uid 16,0 +optionalChildren [ +*74 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*79 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *84 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*86 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "119,45,1392,900" +viewArea "-1038,-1038,74942,50360" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *87 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *88 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,16200,2500,17100" +st "User:" +blo "0,16900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17100,2000,17100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 281,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@control/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@control/symbol.sb new file mode 100644 index 0000000..49228a1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/block@r@a@m@control/symbol.sb @@ -0,0 +1,1874 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 202,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 203,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 204,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 205,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 206,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 207,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 208,0 +) +*9 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 209,0 +) +*10 (LogPort +port (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 210,0 +) +*11 (RefLabelRowHdr +) +*12 (TitleRowHdr +) +*13 (FilterRowHdr +) +*14 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*15 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*16 (GroupColHdr +tm "GroupColHdrMgr" +) +*17 (NameColHdr +tm "NameColHdrMgr" +) +*18 (ModeColHdr +tm "ModeColHdrMgr" +) +*19 (TypeColHdr +tm "TypeColHdrMgr" +) +*20 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*21 (InitColHdr +tm "InitColHdrMgr" +) +*22 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 211,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 140,0 +optionalChildren [ +*25 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 143,0 +) +*26 (MRCItem +litem &12 +pos 1 +dimension 23 +uid 145,0 +) +*27 (MRCItem +litem &13 +pos 2 +hidden 1 +dimension 20 +uid 147,0 +) +*28 (MRCItem +litem &2 +pos 6 +dimension 20 +uid 166,0 +) +*29 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 167,0 +) +*30 (MRCItem +litem &4 +pos 1 +dimension 20 +uid 168,0 +) +*31 (MRCItem +litem &5 +pos 8 +dimension 20 +uid 169,0 +) +*32 (MRCItem +litem &6 +pos 5 +dimension 20 +uid 170,0 +) +*33 (MRCItem +litem &7 +pos 3 +dimension 20 +uid 171,0 +) +*34 (MRCItem +litem &8 +pos 7 +dimension 20 +uid 172,0 +) +*35 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 173,0 +) +*36 (MRCItem +litem &10 +pos 4 +dimension 20 +uid 174,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 141,0 +optionalChildren [ +*37 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 149,0 +) +*38 (MRCItem +litem &16 +pos 1 +dimension 50 +uid 153,0 +) +*39 (MRCItem +litem &17 +pos 2 +dimension 100 +uid 155,0 +) +*40 (MRCItem +litem &18 +pos 3 +dimension 50 +uid 157,0 +) +*41 (MRCItem +litem &19 +pos 4 +dimension 100 +uid 159,0 +) +*42 (MRCItem +litem &20 +pos 5 +dimension 100 +uid 161,0 +) +*43 (MRCItem +litem &21 +pos 6 +dimension 50 +uid 163,0 +) +*44 (MRCItem +litem &22 +pos 7 +dimension 80 +uid 165,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 139,0 +vaOverrides [ +] +) +] +) +uid 200,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 213,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 214,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &45 +pos 0 +dimension 20 +) +uid 176,0 +optionalChildren [ +*59 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 179,0 +) +*60 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 181,0 +) +*61 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 183,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 177,0 +optionalChildren [ +*62 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 185,0 +) +*63 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 189,0 +) +*64 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 191,0 +) +*65 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 193,0 +) +*66 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 195,0 +) +*67 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 197,0 +) +*68 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 199,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 175,0 +vaOverrides [ +] +) +] +) +uid 212,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@control/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@control/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@control" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/blockRAMControl" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "blockRAMControl" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "blockRAMControl" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/block@r@a@m@control/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/blockRAMControl/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "blockRAMControl" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,15625,48750,16375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "44500,15400,47000,16300" +st "memWr" +ju 2 +blo "47000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,18500,11700" +st "memWr : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,11625,32000,12375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,11400,34500,12300" +st "sel" +blo "33000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,18500,12600" +st "sel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "44500,17400,47000,18300" +st "memEn" +ju 2 +blo "47000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,18500,13500" +st "memEn : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memEn" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*73 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,15625,32000,16375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "courier,9,0" +) +xt "33000,15400,36000,16300" +st "update" +blo "33000,16100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,18500,14400" +st "update : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "update" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*74 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,13625,32000,14375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +font "courier,9,0" +) +xt "33000,13400,34000,14300" +st "wr" +blo "33000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,18500,15300" +st "wr : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "wr" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*75 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 110,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,11625,48750,12375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "43500,11400,47000,12300" +st "cntIncr" +ju 2 +blo "47000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,18500,16200" +st "cntIncr : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cntIncr" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*76 (CptPort +uid 119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 122,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,37500,18300" +st "newSample" +blo "33000,18100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 123,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,18500,17100" +st "newSample : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "newSample" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*77 (CptPort +uid 124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 125,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,21625,32000,22375" +) +tg (CPTG +uid 126,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 127,0 +va (VaSet +font "courier,9,0" +) +xt "33000,21400,35500,22300" +st "clock" +blo "33000,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 128,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17100,18500,18000" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*78 (CptPort +uid 129,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,23625,32000,24375" +) +tg (CPTG +uid 131,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 132,0 +va (VaSet +font "courier,9,0" +) +xt "33000,23400,35500,24300" +st "reset" +blo "33000,24100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 133,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18000,17500,18900" +st "reset : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,8000,48000,26000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,25800,39100,26700" +st "SystemOnChip" +blo "32600,26500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,26700,40600,27600" +st "blockRAMControl" +blo "32600,27400" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,21800,42500,22700" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*93 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "4,53,1392,1002" +viewArea "-1067,-1067,74586,51159" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,18900,2500,19800" +st "User:" +blo "0,19600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19800,2000,19800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 237,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@address@decoder/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@address@decoder/symbol.sb new file mode 100644 index 0000000..05d7b69 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@address@decoder/symbol.sb @@ -0,0 +1,1719 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2007,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 181,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 182,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 183,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selX" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 184,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selY" +t "std_ulogic" +o 5 +suid 6,0 +) +) +uid 185,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selZ" +t "std_ulogic" +o 6 +suid 7,0 +) +) +uid 186,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selControl" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 188,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 189,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 120,0 +optionalChildren [ +*22 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 123,0 +) +*23 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 125,0 +) +*24 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*25 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 146,0 +) +*26 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 147,0 +) +*27 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 148,0 +) +*28 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 149,0 +) +*29 (MRCItem +litem &6 +pos 5 +dimension 20 +uid 150,0 +) +*30 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 152,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*31 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 129,0 +) +*32 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 133,0 +) +*33 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 135,0 +) +*34 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 137,0 +) +*35 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 139,0 +) +*36 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 141,0 +) +*37 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 143,0 +) +*38 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 145,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 119,0 +vaOverrides [ +] +) +] +) +uid 180,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 191,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 178,0 +) +] +) +pdm (PhysicalDM +uid 192,0 +optionalChildren [ +*52 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *53 (MRCItem +litem &39 +pos 1 +dimension 20 +) +uid 154,0 +optionalChildren [ +*54 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 157,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 159,0 +) +*56 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 161,0 +) +*57 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 179,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 155,0 +optionalChildren [ +*58 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 163,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 167,0 +) +*60 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 169,0 +) +*61 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 171,0 +) +*62 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 173,0 +) +*63 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 175,0 +) +*64 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 177,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 153,0 +vaOverrides [ +] +) +] +) +uid 190,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@address@decoder/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@address@decoder/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@address@decoder" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphAddressDecoder" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "periphAddressDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "periphAddressDecoder" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@address@decoder/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphAddressDecoder/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "periphAddressDecoder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,12625,50750,13375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "43500,12400,49000,13300" +st "selControl" +ju 2 +blo "49000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,19000,11700" +st "selControl : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selControl" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,12625,34000,13375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "35000,12400,37000,13300" +st "addr" +blo "35000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,30500,12600" +st "addr : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,14625,50750,15375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "courier,9,0" +) +xt "45000,14400,49000,15300" +st "selSpeed" +ju 2 +blo "49000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,19000,13500" +st "selSpeed : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSpeed" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*69 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,18625,50750,19375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +font "courier,9,0" +) +xt "47000,18400,49000,19300" +st "selX" +ju 2 +blo "49000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,19000,14400" +st "selX : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selX" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*70 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,20625,50750,21375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +font "courier,9,0" +) +xt "47000,20400,49000,21300" +st "selY" +ju 2 +blo "49000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,19000,15300" +st "selY : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selY" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*71 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,22625,50750,23375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +font "courier,9,0" +) +xt "47000,22400,49000,23300" +st "selZ" +ju 2 +blo "49000,23100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,18000,16200" +st "selZ : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "selZ" +t "std_ulogic" +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,9000,50000,27000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "34600,26800,41100,27700" +st "SystemOnChip" +blo "34600,27500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "34600,27700,45100,28600" +st "periphAddressDecoder" +blo "34600,28400" +) +) +gi *72 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,30600,47500,33300" +st "Generic Declarations + +addressBitNb positive 24 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*73 (Grouping +uid 16,0 +optionalChildren [ +*74 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*79 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *84 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*86 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1,0,1400,900" +viewArea "-1100,-1100,74420,47412" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *87 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *88 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,16200,2500,17100" +st "User:" +blo "0,16900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17100,2000,17100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 238,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@control@reg/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@control@reg/symbol.sb new file mode 100644 index 0000000..360ff17 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@control@reg/symbol.sb @@ -0,0 +1,2003 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2011,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 204,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 205,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 206,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 207,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 208,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 209,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 210,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 211,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 212,0 +) +*10 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 213,0 +) +*11 (RefLabelRowHdr +) +*12 (TitleRowHdr +) +*13 (FilterRowHdr +) +*14 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*15 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*16 (GroupColHdr +tm "GroupColHdrMgr" +) +*17 (NameColHdr +tm "NameColHdrMgr" +) +*18 (ModeColHdr +tm "ModeColHdrMgr" +) +*19 (TypeColHdr +tm "TypeColHdrMgr" +) +*20 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*21 (InitColHdr +tm "InitColHdrMgr" +) +*22 (EolColHdr +tm "EolColHdrMgr" +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 downto 0)" +o 10 +suid 2011,0 +) +) +uid 253,0 +) +] +) +pdm (PhysicalDM +uid 214,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 141,0 +optionalChildren [ +*26 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 144,0 +) +*27 (MRCItem +litem &12 +pos 1 +dimension 23 +uid 146,0 +) +*28 (MRCItem +litem &13 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*29 (MRCItem +litem &2 +pos 8 +dimension 20 +uid 167,0 +) +*30 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 168,0 +) +*31 (MRCItem +litem &4 +pos 6 +dimension 20 +uid 169,0 +) +*32 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 170,0 +) +*33 (MRCItem +litem &6 +pos 1 +dimension 20 +uid 171,0 +) +*34 (MRCItem +litem &7 +pos 5 +dimension 20 +uid 172,0 +) +*35 (MRCItem +litem &8 +pos 7 +dimension 20 +uid 173,0 +) +*36 (MRCItem +litem &9 +pos 4 +dimension 20 +uid 174,0 +) +*37 (MRCItem +litem &10 +pos 3 +dimension 20 +uid 175,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 254,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*39 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 150,0 +) +*40 (MRCItem +litem &16 +pos 1 +dimension 50 +uid 154,0 +) +*41 (MRCItem +litem &17 +pos 2 +dimension 100 +uid 156,0 +) +*42 (MRCItem +litem &18 +pos 3 +dimension 50 +uid 158,0 +) +*43 (MRCItem +litem &19 +pos 4 +dimension 100 +uid 160,0 +) +*44 (MRCItem +litem &20 +pos 5 +dimension 100 +uid 162,0 +) +*45 (MRCItem +litem &21 +pos 6 +dimension 50 +uid 164,0 +) +*46 (MRCItem +litem &22 +pos 7 +dimension 80 +uid 166,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 140,0 +vaOverrides [ +] +) +] +) +uid 203,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 216,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 201,0 +) +*60 (LogGeneric +generic (GiElement +name "patternSizeBitNb" +type "positive" +value "8" +) +uid 255,0 +) +] +) +pdm (PhysicalDM +uid 217,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *62 (MRCItem +litem &47 +pos 2 +dimension 20 +) +uid 177,0 +optionalChildren [ +*63 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 180,0 +) +*64 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 182,0 +) +*65 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 184,0 +) +*66 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 202,0 +) +*67 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 256,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 178,0 +optionalChildren [ +*68 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 186,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 190,0 +) +*70 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 192,0 +) +*71 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 194,0 +) +*72 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 196,0 +) +*73 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 198,0 +) +*74 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 200,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 176,0 +vaOverrides [ +] +) +] +) +uid 215,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@control@reg/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@control@reg/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@control@reg" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphControlReg" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "periphControlReg" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "periphControlReg" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@control@reg/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphControlReg/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "periphControlReg" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,12625,54750,13375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "51500,12400,53000,13300" +st "run" +ju 2 +blo "53000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,22500,11700" +st "run : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "run" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*77 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,12625,38000,13375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "39000,12400,42000,13300" +st "dataIn" +blo "39000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,37000,12600" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*78 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,18625,54750,19375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "46000,18400,53000,19300" +st "updatePattern" +ju 2 +blo "53000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,22500,13500" +st "updatePattern : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePattern" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*79 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,14625,38000,15375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "39000,14400,42500,15300" +st "dataOut" +blo "39000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,36500,14400" +st "dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*80 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,18625,38000,19375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +font "courier,9,0" +) +xt "39000,18400,41500,19300" +st "write" +blo "39000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,22500,15300" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*81 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,20625,38000,21375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "39000,20400,40000,21300" +st "en" +blo "39000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,22500,16200" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*82 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,24625,38000,25375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "39000,24400,41500,25300" +st "clock" +blo "39000,25100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,22500,17100" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*83 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "39000,26400,41500,27300" +st "reset" +blo "39000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17100,22500,18000" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +*84 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,14625,54750,15375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +font "courier,9,0" +) +xt "44000,14400,53000,15300" +st "interpolateLinear" +ju 2 +blo "53000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18000,22500,18900" +st "interpolateLinear : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "interpolateLinear" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*85 (CptPort +uid 248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 249,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,20625,54750,21375" +) +tg (CPTG +uid 250,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 251,0 +va (VaSet +font "courier,9,0" +) +xt "47000,20400,53000,21300" +st "patternSize" +ju 2 +blo "53000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 252,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18900,35000,19800" +st "patternSize : OUT unsigned (patternSizeBitNb-1 downto 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(patternSizeBitNb-1 downto 0)" +o 10 +suid 2011,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,9000,54000,29000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "38600,28800,45100,29700" +st "SystemOnChip" +blo "38600,29500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "38600,29700,47100,30600" +st "periphControlReg" +blo "38600,30400" +) +) +gi *86 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,32600,53500,36200" +st "Generic Declarations + +dataBitNb positive 16 +patternSizeBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "patternSizeBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*87 (Grouping +uid 16,0 +optionalChildren [ +*88 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*93 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*98 (CommentGraphic +uid 246,0 +shape (PolyLine2D +pts [ +"38000,31000" +"54000,31000" +] +uid 247,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "38000,31000,54000,31000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *99 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*101 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "14,43,1304,894" +viewArea "-1045,-1045,76699,50421" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *102 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *103 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,19800,2500,20700" +st "User:" +blo "0,20500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20700,2000,20700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 325,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@size@reg/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@size@reg/symbol.sb new file mode 100644 index 0000000..b6f90cf --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@size@reg/symbol.sb @@ -0,0 +1,1774 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2007,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 197,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 198,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 199,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 200,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 201,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 202,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 203,0 +) +*8 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 204,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 205,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 136,0 +optionalChildren [ +*23 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 139,0 +) +*24 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 141,0 +) +*25 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*26 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 162,0 +) +*27 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 163,0 +) +*28 (MRCItem +litem &4 +pos 4 +dimension 20 +uid 164,0 +) +*29 (MRCItem +litem &5 +pos 5 +dimension 20 +uid 165,0 +) +*30 (MRCItem +litem &6 +pos 6 +dimension 20 +uid 166,0 +) +*31 (MRCItem +litem &7 +pos 3 +dimension 20 +uid 167,0 +) +*32 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 168,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*33 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 145,0 +) +*34 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 149,0 +) +*35 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 151,0 +) +*36 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 153,0 +) +*37 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 155,0 +) +*38 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 157,0 +) +*39 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 159,0 +) +*40 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 161,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 196,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 207,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 194,0 +) +] +) +pdm (PhysicalDM +uid 208,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *55 (MRCItem +litem &41 +pos 1 +dimension 20 +) +uid 170,0 +optionalChildren [ +*56 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 173,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 175,0 +) +*58 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 177,0 +) +*59 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 195,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 171,0 +optionalChildren [ +*60 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 179,0 +) +*61 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 183,0 +) +*62 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 185,0 +) +*63 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 187,0 +) +*64 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 189,0 +) +*65 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 191,0 +) +*66 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 193,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 169,0 +vaOverrides [ +] +) +] +) +uid 206,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@size@reg/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@size@reg/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@size@reg" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphSizeReg" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "periphSizeReg" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "periphSizeReg" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@size@reg/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphSizeReg/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "periphSizeReg" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,12625,54750,13375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "47000,12400,53000,13300" +st "patternSize" +ju 2 +blo "53000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,30500,11700" +st "patternSize : OUT unsigned (dataBitNb/2-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "patternSize" +t "unsigned" +b "(dataBitNb/2-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*69 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,12625,38000,13375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "39000,12400,42000,13300" +st "dataIn" +blo "39000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,34000,12600" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*70 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,14625,38000,15375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "39000,14400,42500,15300" +st "dataOut" +blo "39000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,33500,13500" +st "dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*71 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,18625,38000,19375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +font "courier,9,0" +) +xt "39000,18400,41500,19300" +st "write" +blo "39000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,19500,14400" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*72 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,20625,38000,21375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "39000,20400,40000,21300" +st "en" +blo "39000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,19500,15300" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*73 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,24625,38000,25375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "39000,24400,41500,25300" +st "clock" +blo "39000,25100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,19500,16200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*74 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "39000,26400,41500,27300" +st "reset" +blo "39000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,18500,17100" +st "reset : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,9000,54000,29000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "38600,28800,45100,29700" +st "SystemOnChip" +blo "38600,29500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "38600,29700,45600,30600" +st "periphSizeReg" +blo "38600,30400" +) +) +gi *75 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,32600,50000,35300" +st "Generic Declarations + +dataBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*76 (Grouping +uid 16,0 +optionalChildren [ +*77 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*82 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *87 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*88 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*89 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "3,55,1398,1005" +viewArea "-1061,-1061,74571,50904" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *90 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *91 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,17100,2500,18000" +st "User:" +blo "0,17800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18000,2000,18000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 231,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@controller/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@controller/symbol.sb new file mode 100644 index 0000000..488f93a --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@controller/symbol.sb @@ -0,0 +1,1646 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2005,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 170,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 171,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 172,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "enableOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 173,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "enableIn" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 174,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 175,0 +) +*7 (RefLabelRowHdr +) +*8 (TitleRowHdr +) +*9 (FilterRowHdr +) +*10 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*11 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*12 (GroupColHdr +tm "GroupColHdrMgr" +) +*13 (NameColHdr +tm "NameColHdrMgr" +) +*14 (ModeColHdr +tm "ModeColHdrMgr" +) +*15 (TypeColHdr +tm "TypeColHdrMgr" +) +*16 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*17 (InitColHdr +tm "InitColHdrMgr" +) +*18 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 176,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 111,0 +optionalChildren [ +*21 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 114,0 +) +*22 (MRCItem +litem &8 +pos 1 +dimension 23 +uid 116,0 +) +*23 (MRCItem +litem &9 +pos 2 +hidden 1 +dimension 20 +uid 118,0 +) +*24 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 137,0 +) +*25 (MRCItem +litem &3 +pos 3 +dimension 20 +uid 138,0 +) +*26 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 139,0 +) +*27 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 140,0 +) +*28 (MRCItem +litem &6 +pos 1 +dimension 20 +uid 141,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 112,0 +optionalChildren [ +*29 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 120,0 +) +*30 (MRCItem +litem &12 +pos 1 +dimension 50 +uid 124,0 +) +*31 (MRCItem +litem &13 +pos 2 +dimension 100 +uid 126,0 +) +*32 (MRCItem +litem &14 +pos 3 +dimension 50 +uid 128,0 +) +*33 (MRCItem +litem &15 +pos 4 +dimension 100 +uid 130,0 +) +*34 (MRCItem +litem &16 +pos 5 +dimension 100 +uid 132,0 +) +*35 (MRCItem +litem &17 +pos 6 +dimension 50 +uid 134,0 +) +*36 (MRCItem +litem &18 +pos 7 +dimension 80 +uid 136,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 110,0 +vaOverrides [ +] +) +] +) +uid 169,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 178,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 167,0 +) +] +) +pdm (PhysicalDM +uid 179,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 143,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 146,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 148,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 150,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 168,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 144,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 152,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 156,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 158,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 160,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 162,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 164,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 166,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 142,0 +vaOverrides [ +] +) +] +) +uid 177,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@controller/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@controller/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@controller" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphSpeedController" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "periphSpeedController" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "periphSpeedController" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@controller/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphSpeedController/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "periphSpeedController" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,14625,56750,15375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "50500,14400,55000,15300" +st "enableOut" +ju 2 +blo "55000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,20000,11700" +st "enableOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "enableOut" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,20625,40000,21375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "41000,20400,43500,21300" +st "clock" +blo "41000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,20000,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,22625,40000,23375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "41000,22400,43500,23300" +st "reset" +blo "41000,23100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,20000,13500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 104,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +font "courier,9,0" +) +xt "41000,16400,47500,17300" +st "updatePeriod" +blo "41000,17100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,34000,14400" +st "updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*68 (CptPort +uid 105,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 106,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,14625,40000,15375" +) +tg (CPTG +uid 107,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 108,0 +va (VaSet +font "courier,9,0" +) +xt "41000,14400,45000,15300" +st "enableIn" +blo "41000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 109,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,19000,15300" +st "enableIn : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "enableIn" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,11000,56000,25000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "40600,24800,47100,25700" +st "SystemOnChip" +blo "40600,25500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "40600,25700,51600,26600" +st "periphSpeedController" +blo "40600,26400" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,28600,56000,31300" +st "Generic Declarations + +updatePeriodBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "130,43,1399,900" +viewArea "-1049,-1049,74649,50497" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15300,2500,16200" +st "User:" +blo "0,16000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,2000,16200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 225,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@reg/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@reg/symbol.sb new file mode 100644 index 0000000..438b263 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/periph@speed@reg/symbol.sb @@ -0,0 +1,1794 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 203,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 204,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 205,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 7 +suid 8,0 +) +) +uid 206,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 6,0 +) +) +uid 207,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 7,0 +) +) +uid 208,0 +) +*7 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 209,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 210,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 212,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 141,0 +optionalChildren [ +*23 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 144,0 +) +*24 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 146,0 +) +*25 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*27 (MRCItem +litem &3 +pos 3 +dimension 20 +uid 168,0 +) +*28 (MRCItem +litem &4 +pos 6 +dimension 20 +uid 169,0 +) +*29 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 170,0 +) +*30 (MRCItem +litem &6 +pos 5 +dimension 20 +uid 171,0 +) +*31 (MRCItem +litem &7 +pos 2 +dimension 20 +uid 172,0 +) +*32 (MRCItem +litem &8 +pos 1 +dimension 20 +uid 173,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*33 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 150,0 +) +*34 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 154,0 +) +*35 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 156,0 +) +*36 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 158,0 +) +*37 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 160,0 +) +*38 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 162,0 +) +*39 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 164,0 +) +*40 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 166,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 140,0 +vaOverrides [ +] +) +] +) +uid 202,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 214,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 200,0 +) +*54 (LogGeneric +generic (GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +uid 239,0 +) +] +) +pdm (PhysicalDM +uid 215,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *56 (MRCItem +litem &41 +pos 2 +dimension 20 +) +uid 176,0 +optionalChildren [ +*57 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 179,0 +) +*58 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 181,0 +) +*59 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 183,0 +) +*60 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 201,0 +) +*61 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 240,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 177,0 +optionalChildren [ +*62 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 185,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 189,0 +) +*64 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 191,0 +) +*65 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 193,0 +) +*66 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 195,0 +) +*67 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 197,0 +) +*68 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 199,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 175,0 +vaOverrides [ +] +) +] +) +uid 213,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@reg/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@reg/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@reg" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphSpeedReg" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "periphSpeedReg" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "periphSpeedReg" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periph@speed@reg/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/periphSpeedReg/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "periphSpeedReg" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,12625,54750,13375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "46500,12400,53000,13300" +st "updatePeriod" +ju 2 +blo "53000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,34000,11700" +st "updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "updatePeriod" +t "unsigned" +b "(updatePeriodBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,12625,38000,13375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "39000,12400,42000,13300" +st "dataIn" +blo "39000,13100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,34500,12600" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,14625,38000,15375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +font "courier,9,0" +) +xt "39000,14400,42500,15300" +st "dataOut" +blo "39000,15100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,34000,13500" +st "dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*73 (CptPort +uid 120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 121,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,20625,38000,21375" +) +tg (CPTG +uid 122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 123,0 +va (VaSet +font "courier,9,0" +) +xt "39000,20400,40000,21300" +st "en" +blo "39000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 124,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13500,20000,14400" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*74 (CptPort +uid 125,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 126,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,24625,38000,25375" +) +tg (CPTG +uid 127,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 128,0 +va (VaSet +font "courier,9,0" +) +xt "39000,24400,41500,25300" +st "clock" +blo "39000,25100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 129,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,20000,15300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*75 (CptPort +uid 130,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 132,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 133,0 +va (VaSet +font "courier,9,0" +) +xt "39000,26400,41500,27300" +st "reset" +blo "39000,27100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 134,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,20000,16200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 7,0 +) +) +) +*76 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,18625,38000,19375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +font "courier,9,0" +) +xt "39000,18400,41500,19300" +st "write" +blo "39000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16200,19000,17100" +st "write : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 7 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,9000,54000,29000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "38600,28800,45100,29700" +st "SystemOnChip" +blo "38600,29500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "38600,29700,46100,30600" +st "periphSpeedReg" +blo "38600,30400" +) +) +gi *77 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,32600,54000,36200" +st "Generic Declarations + +dataBitNb positive 16 +updatePeriodBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "updatePeriodBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*78 (Grouping +uid 16,0 +optionalChildren [ +*79 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*84 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *89 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*91 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1399,900" +viewArea "-1100,-1100,74420,47412" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *92 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *93 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,17100,2500,18000" +st "User:" +blo "0,17800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18000,2000,18000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 286,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/program@rom/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/program@rom/symbol.sb new file mode 100644 index 0000000..681378e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/program@rom/symbol.sb @@ -0,0 +1,1650 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 6,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 95,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "address" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 81,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 83,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 3,0 +) +) +uid 85,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 87,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 89,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 110,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 111,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 112,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 82,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 84,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 86,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 88,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 90,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 115,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 116,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 117,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 118,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 120,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 121,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 122,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 94,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 124,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 196,0 +) +*50 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 198,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 138,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 139,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 140,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 197,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 199,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 143,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 144,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 145,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 146,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 147,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 148,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 149,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 123,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/program@rom/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/program@rom/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/program@rom" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/programRom" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "programRom" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "programRom" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/program@rom/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/programRom/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "programRom" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 93,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,20625,25000,21375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "26000,20500,30200,21500" +st "address" +blo "26000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "courier,8,0" +) +xt "18000,2000,45000,2900" +st "address : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "address" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,26625,25000,27375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "26000,26500,29000,27500" +st "clock" +blo "26000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "courier,8,0" +) +xt "18000,2900,33500,3800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,20625,41750,21375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "35800,20500,40000,21500" +st "dataOut" +ju 2 +blo "40000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "courier,8,0" +) +xt "18000,5600,48000,6500" +st "dataOut : OUT std_ulogic_vector ( dataBitNb-1 DOWNTO 0 )" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 3,0 +) +) +) +*69 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,24625,25000,25375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "26000,24500,27200,25500" +st "en" +blo "26000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "courier,8,0" +) +xt "18000,3800,33500,4700" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*70 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,28625,25000,29375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "26000,28500,29000,29500" +st "reset" +blo "26000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "courier,8,0" +) +xt "18000,4700,33500,5600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "25000,17000,41000,31000" +) +oxt "15000,6000,32000,22000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "25500,31000,32000,31900" +st "SystemOnChip" +blo "25500,31700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "25500,31900,31000,32800" +st "programRom" +blo "25500,32600" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "25000,34200,38000,37800" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,48000,52000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "35200,48000,52000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,44000,56000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "52200,44000,55800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,46000,52000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "35200,46000,51400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,46000,35000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "31200,46000,34800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,45000,72000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "52200,45200,65400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,44000,72000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,44000,62800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,44000,52000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37000,44500,46000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,47000,35000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "31200,47000,34200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,48000,35000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "31200,48000,34800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,47000,52000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "35200,47000,50200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "31000,44000,72000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-1000,0,5500,900" +st "Package List" +blo "-1000,700" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "-1000,1000,17600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "149,44,1412,875" +viewArea "-2039,-1055,73649,50927" +cachedDiagramExtent "-1000,0,72000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-1000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "16000,200,22500,1100" +st "Declarations" +blo "16000,900" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "16000,1100,19000,2000" +st "Ports:" +blo "16000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "16000,6500,18500,7400" +st "User:" +blo "16000,7200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "16000,200,23500,1100" +st "Internal User:" +blo "16000,900" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "18000,7400,18000,7400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "16000,200,16000,200" +tm "SyDeclarativeTextMgr" +) +) +lastUid 337,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip/hds/sin@cos@table/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip/hds/sin@cos@table/symbol.sb new file mode 100644 index 0000000..577ee5e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip/hds/sin@cos@table/symbol.sb @@ -0,0 +1,1571 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2003,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 156,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cosine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 157,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 158,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 159,0 +) +*5 (RefLabelRowHdr +) +*6 (TitleRowHdr +) +*7 (FilterRowHdr +) +*8 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*9 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*10 (GroupColHdr +tm "GroupColHdrMgr" +) +*11 (NameColHdr +tm "NameColHdrMgr" +) +*12 (ModeColHdr +tm "ModeColHdrMgr" +) +*13 (TypeColHdr +tm "TypeColHdrMgr" +) +*14 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*15 (InitColHdr +tm "InitColHdrMgr" +) +*16 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 160,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 95,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 98,0 +) +*20 (MRCItem +litem &6 +pos 1 +dimension 23 +uid 100,0 +) +*21 (MRCItem +litem &7 +pos 2 +hidden 1 +dimension 20 +uid 102,0 +) +*22 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 121,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 122,0 +) +*24 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 123,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*25 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 104,0 +) +*26 (MRCItem +litem &10 +pos 1 +dimension 50 +uid 108,0 +) +*27 (MRCItem +litem &11 +pos 2 +dimension 100 +uid 110,0 +) +*28 (MRCItem +litem &12 +pos 3 +dimension 50 +uid 112,0 +) +*29 (MRCItem +litem &13 +pos 4 +dimension 100 +uid 114,0 +) +*30 (MRCItem +litem &14 +pos 5 +dimension 100 +uid 116,0 +) +*31 (MRCItem +litem &15 +pos 6 +dimension 50 +uid 118,0 +) +*32 (MRCItem +litem &16 +pos 7 +dimension 80 +uid 120,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 94,0 +vaOverrides [ +] +) +] +) +uid 155,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 162,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "inputBitNb" +type "positive" +value "16" +) +uid 149,0 +) +*46 (LogGeneric +generic (GiElement +name "outputBitNb" +type "positive" +value "16" +) +uid 150,0 +) +*47 (LogGeneric +generic (GiElement +name "tableAddressBitNb" +type "positive" +value "3" +) +uid 151,0 +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *49 (MRCItem +litem &33 +pos 3 +dimension 20 +) +uid 125,0 +optionalChildren [ +*50 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 128,0 +) +*51 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 130,0 +) +*52 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 132,0 +) +*53 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 152,0 +) +*54 (MRCItem +litem &46 +pos 1 +dimension 20 +uid 153,0 +) +*55 (MRCItem +litem &47 +pos 2 +dimension 20 +uid 154,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 126,0 +optionalChildren [ +*56 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 134,0 +) +*57 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 138,0 +) +*58 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 140,0 +) +*59 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 142,0 +) +*60 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 144,0 +) +*61 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 146,0 +) +*62 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 148,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 124,0 +vaOverrides [ +] +) +] +) +uid 161,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/sin@cos@table/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/sin@cos@table/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/sin@cos@table" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/sinCosTable" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sinCosTable" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:40:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "sinCosTable" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/sin@cos@table/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip/hds/sinCosTable/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:40:20" +) +(vvPair +variable "unit" +value "sinCosTable" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,11625,48750,12375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "45000,11400,47000,12300" +st "sine" +ju 2 +blo "47000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,27000,11700" +st "sine : OUT signed (outputBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,11625,32000,12375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,11400,35500,12300" +st "phase" +blo "33000,12100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,27500,12600" +st "phase : IN unsigned (inputBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "phase" +t "unsigned" +b "(inputBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,13625,48750,14375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "44000,13400,47000,14300" +st "cosine" +ju 2 +blo "47000,14100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,26000,13500" +st "cosine : OUT signed (outputBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cosine" +t "signed" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,8000,48000,18000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,17800,39100,18700" +st "SystemOnChip" +blo "32600,18500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,18700,38600,19600" +st "sinCosTable" +blo "32600,19400" +) +) +gi *67 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,21000,48000,25500" +st "Generic Declarations + +inputBitNb positive 16 +outputBitNb positive 16 +tableAddressBitNb positive 3 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "16" +) +(GiElement +name "outputBitNb" +type "positive" +value "16" +) +(GiElement +name "tableAddressBitNb" +type "positive" +value "3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*68 (Grouping +uid 16,0 +optionalChildren [ +*69 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*74 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *79 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*81 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "3,46,1390,979" +viewArea "-1068,-1068,74568,50155" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *82 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *83 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13500,2500,14400" +st "User:" +blo "0,14200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,2000,14400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 186,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/ahbBeamer_tester_test.vhd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/ahbBeamer_tester_test.vhd new file mode 100644 index 0000000..516688e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/ahbBeamer_tester_test.vhd @@ -0,0 +1,479 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF ahbBeamer_tester IS + -- reset and clock + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + signal reset_int: std_uLogic; + -- test information + signal testSeparator : string(1 to 80) := (others => '-'); + signal errorTopSeparator : string(1 to 80) := (others => '#'); + signal bottomSeparator : string(1 to 80) := (others => '.'); + signal indentation : string(1 to 2) := (others => ' '); + signal noteInformation : string(1 to 9) := (others => ' '); + signal errorInformation : string(1 to 10) := (others => ' '); + signal failureInformation : string(1 to 12) := (others => ' '); + signal testInformation : string(1 to 50) := (others => ' '); + -- register definition + constant controlRegisterAddress: natural := 0; + constant controlRun: natural := 2#001#; + constant controlUpdatePattern: natural := 2#010#; + constant controlInterpolateLinear: natural := 2#100#; + constant speedRegisterAddress: natural := 1; + constant xFifoRegisterAddress: natural := 2; + constant yFifoRegisterAddress: natural := 3; + signal updatePeriod: natural := 1; + signal patternLength: natural := 32; + -- AMBA bus access + constant registerWriteDelay: time := 4*clockPeriod; + signal registerAddress: natural; + signal registerDataOut, registerDataIn: integer; + signal registerWrite: std_uLogic; + signal registerRead: std_uLogic; + -- UART access + constant baudPeriodNb: positive := 4; + signal uartData: integer; + signal uartSend: std_uLogic; + -- functions + function clearBits (word, bits : natural) return natural is + variable andMask: unsigned(hRData'range); + begin + andMask := not(to_unsigned(bits, hRData'length)); + return to_integer(to_unsigned(word, hRData'length) and andMask); + end clearBits; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset_int <= '1', '0' after 2*clockPeriod; + hReset_n <= not(reset_int); + reset <= reset_int; + + clock_int <= not clock_int after clockPeriod/2; + hClk <= transport clock_int after clockPeriod*9.0/10.0; + clock <= transport clock_int after clockPeriod*9.0/10.0; + + ------------------------------------------------------------------------------ + -- test sequence + testSequence: process + begin + selSinCos <= '0'; + registerAddress <= 0; + registerDataOut <= 0; + registerWrite <= '0'; + registerRead <= '0'; + uartSend <= '0'; + wait for 100 ns; + print(cr & cr & cr & cr); + + ---------------------------------------------------------------------------- + -- test control register + wait for 1 us - now; + testInformation <= pad("Testing control register", testInformation'length); + wait for 0 ns; + print(testSeparator & cr & testInformation); + -- set control register bits + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= controlRun + controlUpdatePattern + controlInterpolateLinear; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + -- readback control register + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + wait for 3*clockPeriod; + assert(registerDataIn = controlRun + controlUpdatePattern + controlInterpolateLinear) + report "Control register write / readback error" + severity error; + wait for registerWriteDelay; + -- stop running and pattern update + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + wait for 3*clockPeriod; + registerDataOut <= clearBits(registerDataIn, controlRun + controlUpdatePattern); + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + + ---------------------------------------------------------------------------- + -- test speed register + wait for 2 us - now; + testInformation <= pad("Testing speed register", testInformation'length); + wait for 0 ns; + print(testSeparator & cr & testInformation); + -- set speed count value + wait until rising_edge(clock_int); + registerAddress <= speedRegisterAddress; + registerDataOut <= updatePeriod; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + -- readback speed count + wait until rising_edge(clock_int); + registerAddress <= speedRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + wait for 3*clockPeriod; + assert(registerDataIn = updatePeriod) + report "Speed register write / readback error" + severity error; + wait for registerWriteDelay; + + ---------------------------------------------------------------------------- + -- write sinewave data points to RAM + wait for 3 us - now; + testInformation <= pad("Writing sinewaves to RAM", testInformation'length); + wait for 0 ns; + print(testSeparator & cr & testInformation); + -- start pattern update + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= controlUpdatePattern; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + -- write X FIFO values + wait until rising_edge(clock_int); + registerAddress <= xFifoRegisterAddress; + registerDataOut <= 16#0000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7FFF#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#0000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7FFF#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for 10*registerWriteDelay; + -- write Y FIFO values + wait until rising_edge(clock_int); + registerAddress <= yFifoRegisterAddress; + registerDataOut <= 16#7FFF#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#0000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7FFF#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#0000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#18F9#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#30FB#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#471C#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#5A82#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#6A6D#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7641#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7D89#; + registerWrite <= '1', '0' after clockPeriod; + wait for 10*registerWriteDelay; + -- end pattern update + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= 0; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + + ---------------------------------------------------------------------------- + -- playing waveforms + wait for 7 us - now; + testInformation <= pad("Playing waveforms", testInformation'length); + wait for 0 ns; + print(testSeparator & cr & testInformation); + -- start run + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= controlRun + patternLength * 2**(hWData'length-patternAddressBitNb); + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + -- run for some time + wait for 250 us - now; + -- stop run + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= 0; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + + ---------------------------------------------------------------------------- + -- play data points to RAM for overflow + wait for 300 us - now; + testInformation <= pad( + "Writing waveform to RAM for overflow", testInformation'length + ); + wait for 0 ns; + print(testSeparator & cr & testInformation); + -- start pattern update + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= controlUpdatePattern; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + -- write X FIFO values + wait until rising_edge(clock_int); + registerAddress <= xFifoRegisterAddress; + registerDataOut <= 16#4000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for 10*registerWriteDelay; + -- write Y FIFO values + wait until rising_edge(clock_int); + registerAddress <= yFifoRegisterAddress; + registerDataOut <= -16#4000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= 16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + registerDataOut <= -16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for 10*registerWriteDelay; + -- end pattern update and start run + patternLength <= 4; + wait until rising_edge(clock_int); + registerAddress <= controlRegisterAddress; + registerDataOut <= controlRun + patternLength * 2**(hWData'length-patternAddressBitNb); + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + -- set lower speed execution + updatePeriod <= 9; + wait until rising_edge(clock_int); + registerAddress <= speedRegisterAddress; + registerDataOut <= updatePeriod; + registerWrite <= '1', '0' after clockPeriod; + wait for registerWriteDelay; + ---------------------------------------------------------------------------- + -- sin/cos debug mode + wait for 700 us - now; + testInformation <= pad("Drawing debug mode circle", testInformation'length); + wait for 0 ns; + print(testSeparator & cr & testInformation); + selSinCos <= '1'; + ---------------------------------------------------------------------------- + -- stop simulation + wait for 1 ms - now; + assert false + report "End" & cr & " --> " & + "End of simulation" + severity failure; + end process testSequence; + + ------------------------------------------------------------------------------ + -- AMBA bus access + busAccess: process + variable writeAccess: boolean; + variable hRData01: std_ulogic_vector(hRData'range); + begin + hAddr <= (others => '-'); + hWData <= (others => '-'); + hTrans <= transIdle; + hSel <= '0'; + hWrite <= '0'; + wait on registerWrite, registerRead; + writeAccess := false; + if rising_edge(registerWrite) then + writeAccess := true; + end if; + -- phase 1: address and controls + wait until rising_edge(clock_int); + hAddr <= to_unsigned(registerAddress, hAddr'length); + hTrans <= transNonSeq; + hSel <= '1'; + if writeAccess then + hWrite <= '1'; + end if; + -- phase 2: data + wait until rising_edge(clock_int); + hAddr <= (others => '-'); + hTrans <= transIdle; + hSel <= '0'; + hWrite <= '0'; + if writeAccess then + hWData <= std_uLogic_vector(to_signed(registerDataOut, hWData'length)); + else + wait until falling_edge(clock_int); + hRData01 := hRData; + for index in hRData01'range loop + if (hRData01(index) /= '0') and (hRData01(index) /= '1') then + hRData01(index) := '0'; + end if; + end loop; + registerDataIn <= to_integer(unsigned(hRData01)); + end if; + wait until rising_edge(clock_int); + end process; + +END ARCHITECTURE test; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerSoc_tester_test.vhd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerSoc_tester_test.vhd new file mode 100644 index 0000000..050ff65 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerSoc_tester_test.vhd @@ -0,0 +1,294 @@ +ARCHITECTURE test OF beamerSoc_tester IS + -- clock and reset + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + signal sReset: std_uLogic := '1'; + -- register definition + constant beamerBaseAddress: natural := 16#20#; + constant beamerControlRegisterAddress: natural := beamerBaseAddress + 0; + constant beamerControlRun: natural := 2#001#; + constant beamerControlUpdatePattern: natural := 2#010#; + constant beamerControlInterpolateLinear: natural := 2#100#; + constant beamerControlsizeBase: natural := 16#80#; + constant beamerSpeedRegisterAddress: natural := beamerBaseAddress + 1; + constant beamerXFifoRegisterAddress: natural := beamerBaseAddress + 2; + constant beamerYFifoRegisterAddress: natural := beamerBaseAddress + 3; + -- microprocessor bus access + constant registerWriteDelay: time := 4*clockPeriod; + signal registerAddress: natural; + signal registerDataOut, registerDataIn: integer; + signal registerWrite, registerRead, registerDone: std_uLogic; + -- UART access +-- constant uartFrequency: real := 115200.0; + constant uartDataBitNb: positive := 8; + constant uartFrequency: real := 1.0E6; + constant uartPeriod: time := (1.0/uartFrequency) * 1 sec; + constant uartDataSpan: time := 10*uartPeriod; + constant uartWriteReplySpan: time := 5*uartDataSpan; + constant uartReadReplySpan: time := 10*uartDataSpan; + signal uartRxData, uartTxData: integer; + signal uartSend, uartDone: std_uLogic; + signal uartTxShiftRegister: unsigned(2*uartDataBitNb-1 downto 0); + signal uartTxDataWord: integer; + +BEGIN + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + + reset <= '1', '0' after 2*clockPeriod; + + ------------------------------------------------------------------------------ + -- test sequence + process + begin + io <= (others => 'Z'); + selSinCos <= '0'; + wait for 1 ns; + assert false + report cr & cr & cr & cr & + "----------------------------------------" & + "----------------------------------------" & + "----------------------------------------" + severity note; + ---------------------------------------------------------------------------- + -- initialization by microprocessor + wait for 100 ns - now; + assert false + report "Init" & cr & " --> " & + "Letting the microprocessor initialize the peripherals" + severity note; + ---------------------------------------------------------------------------- + -- test GPIOs + wait for 400 ns - now; + assert false + report "GPIOs" & cr & " --> " & + "Testing the GPIOs" + severity note; + io(7 downto 4) <= x"5"; + wait for 1 ns; + assert io = x"5A" + report "GPIO error" + severity error; + ---------------------------------------------------------------------------- + -- set speed count value + wait for 3*uartPeriod - now; + assert false + report "Beamer init" & cr & " --> " & + "Setting drawing speed" + severity note; + registerAddress <= beamerSpeedRegisterAddress; + registerDataOut <= 2; +--registerAddress <= 16#1234#; +--registerDataOut <= 16#5678#; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + ---------------------------------------------------------------------------- + -- start updating pattern + assert false + report "Beamer init" & cr & " --> " & + "Writing y-pattern to beamer RAM" + severity note; + registerAddress <= beamerControlRegisterAddress; + registerDataOut <= beamerControlUpdatePattern; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + ---------------------------------------------------------------------------- + -- write y-FIFO + registerAddress <= beamerYFifoRegisterAddress; + registerDataOut <= -16#4000# + 16#10000#; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + registerDataOut <= 16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + registerDataOut <= 16#7000#; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + registerDataOut <= -16#7000# + 16#10000#; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + ---------------------------------------------------------------------------- + -- start run + assert false + report "Beamer play" & cr & " --> " & + "Launching pattern drawing (setting pattern size and run flag)" + severity note; + registerAddress <= beamerControlRegisterAddress; + registerDataOut <= beamerControlRun + beamerControlsizeBase * 4; + registerWrite <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartWriteReplySpan; + ---------------------------------------------------------------------------- + -- readback control register + assert false + report "Beamer test" & cr & " --> " & + "Reading back control register" + severity note; + registerAddress <= beamerControlRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + wait for uartPeriod; + wait until registerDone = '1'; + wait for uartReadReplySpan; + assert uartTxDataWord = beamerControlRun + beamerControlsizeBase * 4 + report "Beamer register readback error" + severity error; + ---------------------------------------------------------------------------- + -- stop simulation + wait for 1.5 ms - now; + assert false + report "End" & cr & " --> " & + "End of simulation" + severity failure; + end process; + + --============================================================================ + -- microprocessor bus access + busAccess: process + variable writeAccess: boolean; +-- variable packetId: natural := 0; +variable packetId: natural := 16#1D#; + variable checksum: natural; + begin + registerDone <= '1'; + uartSend <= '0'; + uartRxData <= 16#AA#; + wait on registerWrite, registerRead; + registerDone <= '0'; + writeAccess := false; + if registerWrite = '1' then + writeAccess := true; + end if; + -- send header + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := uartRxData; + -- send packet id + uartRxData <= packetId; + packetId := (packetId + 1) mod 2**8; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + -- send command + if writeAccess then + uartRxData <= 16#03#; + else + uartRxData <= 16#04#; + end if; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + -- send data length + if writeAccess then + uartRxData <= 4; + else + uartRxData <= 2; + end if; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + -- send addresss low + uartRxData <= registerAddress mod 2**8; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + -- send addresss high + uartRxData <= registerAddress / 2**8; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + -- send data low + if writeAccess then + uartRxData <= registerDataOut mod 2**8; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + -- send data high + uartRxData <= registerDataOut / 2**8; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + checksum := (checksum + uartRxData) mod 2**8; + end if; + -- send checksum + uartRxData <= checksum; + uartSend <= '1', '0' after uartPeriod; + wait for uartPeriod; + wait until uartDone = '1'; + end process; + + ------------------------------------------------------------------------------ + -- UART access + sendByte: process + variable serialData: unsigned(7 downto 0); + begin + -- send stop bit + uartDone <= '1'; + RxD <= '1'; + -- get new word + wait until rising_edge(uartSend); + uartDone <= '0'; + serialData := to_unsigned(uartRxData, serialData'length); + -- send start bit + RxD <= '0'; + wait for uartPeriod; + -- send data bits + for index in serialData'reverse_range loop + RxD <= serialData(index); + wait for uartPeriod; + end loop; + -- send stop bits + RxD <= '1'; + wait for 4*uartPeriod; + end process sendByte; + + ------------------------------------------------------------------------------ + -- UART access + receiveByte: process + variable serialData: unsigned(uartDataBitNb-1 downto 0); + begin + -- wait for stat bit + wait until falling_edge(TxD); + -- jump to middle of first data bit + wait for 1.5 * uartPeriod; + -- read data bits + for index in serialData'reverse_range loop + if Is_X(TxD) then + serialData(index) := '0'; + else + serialData(index) := TxD; + end if; + wait for uartPeriod; + end loop; + -- write data to signal + uartTxData <= to_integer(serialData); + uartTxDataWord <= to_integer(uartTxShiftRegister); + uartTxShiftRegister <= shift_right(uartTxShiftRegister, serialData'length); + uartTxShiftRegister( + uartTxShiftRegister'high downto + uartTxShiftRegister'high-serialData'length+1 + ) <= serialData; + end process receiveByte; + +END ARCHITECTURE test; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg.vhd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg.vhd new file mode 100644 index 0000000..490ad4e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg.vhd @@ -0,0 +1,9 @@ +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +PACKAGE beamerTest_pck IS + + function trim_X (arg : signed) return signed; + +END beamerTest_pck; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg_body.vhd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg_body.vhd new file mode 100644 index 0000000..2c83ab7 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hdl/beamerTest_pck_pkg_body.vhd @@ -0,0 +1,16 @@ +PACKAGE BODY beamerTest_pck IS + + function trim_X (arg : signed) return signed is + variable returnVal : signed(arg'range); + begin + for i in arg'range loop + case arg(i) is + when '0' | 'L' => returnVal(i) := '0'; + when '1' | 'H' => returnVal(i) := '1'; + when others => returnVal(i) := '0'; + end case; + end loop; + return returnVal; + end trim_X; + +END beamerTest_pck; diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbBeamer_tester_test.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbBeamer_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbBeamer_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_ahbbeamer_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerSoc_tester_test.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerSoc_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerSoc_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg.vhd._fpf new file mode 100644 index 0000000..e69b3ef --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_93 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg_body.vhd._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg_body.vhd._fpf new file mode 100644 index 0000000..e69b3ef --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamerTest_pck_pkg_body.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_93 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_struct.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tester_entity.vhg._fpf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/.hdlsidedata/_beamersoc_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tb._epf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tb._epf new file mode 100644 index 0000000..50e0e8c --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom ahb@beamer_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tester._epf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tester._epf new file mode 100644 index 0000000..036f8ec --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_ahbbeamer_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom ahbBeamer_tester_test.vhd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamerperiphblanking_tb._epf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamerperiphblanking_tb._epf new file mode 100644 index 0000000..9cb6082 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamerperiphblanking_tb._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom beamer@periph@blanking_tb/struct.bd diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tb._epf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tb._epf new file mode 100644 index 0000000..1de05b2 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom beamer@soc_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tester._epf b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tester._epf new file mode 100644 index 0000000..d07423e --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/_beamersoc_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom beamerSoc_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/struct.bd new file mode 100644 index 0000000..d1a24ef --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/struct.bd @@ -0,0 +1,4498 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "SystemOnChip_test" +duName "ahbBeamer_tester" +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 12657,0 +) +(Instance +name "I_filt" +duLibraryName "WaveformGenerator" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +mwi 0 +uid 13849,0 +) +(Instance +name "I_DUT" +duLibraryName "SystemOnChip" +duName "ahbBeamer" +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +mwi 0 +uid 14527,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahbBeamer_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamer_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:04:15" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbBeamer_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahbBeamer_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:04:15" +) +(vvPair +variable "unit" +value "ahbBeamer_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "119000,85000,138000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "119200,85400,134600,86600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,85000,113000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "Verdana,12,1" +) +xt "93150,85300,106850,86700" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,91000,113000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,91400,110000,92600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,85000,119000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,85400,117900,86600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,87000,113000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,87400,107400,88600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,87000,92000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,87400,90600,88600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,89000,92000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,89400,90600,90600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,87000,138000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,87200,127300,88400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,89000,113000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,89400,112500,90600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,91000,92000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,91400,91500,92600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "87000,85000,138000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Net +uid 12555,0 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 108,0 +) +declText (MLText +uid 12556,0 +va (VaSet +isHidden 1 +) +xt "0,0,18700,1200" +st "SIGNAL hReset_n : std_uLogic" +) +) +*13 (Net +uid 12563,0 +decl (Decl +n "hClk" +t "std_uLogic" +o 3 +suid 109,0 +) +declText (MLText +uid 12564,0 +va (VaSet +isHidden 1 +) +xt "0,0,17500,1200" +st "SIGNAL hClk : std_uLogic" +) +) +*14 (Net +uid 12571,0 +decl (Decl +n "hResp" +t "std_uLogic" +o 7 +suid 110,0 +) +declText (MLText +uid 12572,0 +va (VaSet +isHidden 1 +) +xt "0,0,18000,1200" +st "SIGNAL hResp : std_uLogic" +) +) +*15 (Net +uid 12579,0 +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 111,0 +) +declText (MLText +uid 12580,0 +va (VaSet +isHidden 1 +) +xt "0,0,18300,1200" +st "SIGNAL hReady : std_uLogic" +) +) +*16 (Net +uid 12587,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 112,0 +) +declText (MLText +uid 12588,0 +va (VaSet +isHidden 1 +) +xt "0,0,37800,1200" +st "SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*17 (Net +uid 12595,0 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 113,0 +) +declText (MLText +uid 12596,0 +va (VaSet +isHidden 1 +) +xt "0,0,17400,1200" +st "SIGNAL hSel : std_uLogic" +) +) +*18 (Net +uid 12603,0 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 114,0 +) +declText (MLText +uid 12604,0 +va (VaSet +isHidden 1 +) +xt "0,0,17800,1200" +st "SIGNAL hWrite : std_uLogic" +) +) +*19 (Net +uid 12611,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 115,0 +) +declText (MLText +uid 12612,0 +va (VaSet +isHidden 1 +) +xt "0,0,38100,1200" +st "SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0)" +) +) +*20 (Net +uid 12619,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 116,0 +) +declText (MLText +uid 12620,0 +va (VaSet +isHidden 1 +) +xt "0,0,38000,1200" +st "SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*21 (Net +uid 12627,0 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 117,0 +) +declText (MLText +uid 12628,0 +va (VaSet +isHidden 1 +) +xt "0,0,35300,1200" +st "SIGNAL hAddr : unsigned( ahbAddressBitNb-1 DOWNTO 0 )" +) +) +*22 (Blk +uid 12657,0 +shape (Rectangle +uid 12658,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "39000,69000,129000,77000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 12659,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 12660,0 +va (VaSet +font "Verdana,12,0" +) +xt "39400,76900,53500,78300" +st "SystemOnChip_test" +blo "39400,78100" +tm "BdLibraryNameMgr" +) +*24 (Text +uid 12661,0 +va (VaSet +font "Verdana,12,0" +) +xt "39400,78300,52800,79700" +st "ahbBeamer_tester" +blo "39400,79500" +tm "BlkNameMgr" +) +*25 (Text +uid 12662,0 +va (VaSet +font "Verdana,12,0" +) +xt "39400,79700,45300,81100" +st "I_tester" +blo "39400,80900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12663,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12664,0 +text (MLText +uid 12665,0 +va (VaSet +font "Verdana,8,0" +) +xt "39400,82300,65200,85300" +st "patternAddressBitNb = patternAddressBitNb ( positive ) +signalBitNb = signalBitNb ( positive ) +clockFrequency = clockFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +viewicon (ZoomableIcon +uid 12742,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "39250,75250,40750,76750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*26 (Net +uid 13629,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 120,0 +) +declText (MLText +uid 13630,0 +va (VaSet +isHidden 1 +) +xt "0,0,18500,1200" +st "SIGNAL selSinCos : std_ulogic" +) +) +*27 (Net +uid 13637,0 +decl (Decl +n "outY" +t "std_ulogic" +o 15 +suid 121,0 +) +declText (MLText +uid 13638,0 +va (VaSet +isHidden 1 +) +xt "0,0,17200,1200" +st "SIGNAL outY : std_ulogic" +) +) +*28 (Net +uid 13645,0 +decl (Decl +n "outX" +t "std_ulogic" +o 14 +suid 122,0 +) +declText (MLText +uid 13646,0 +va (VaSet +isHidden 1 +) +xt "0,0,17200,1200" +st "SIGNAL outX : std_ulogic" +) +) +*29 (HdlText +uid 13840,0 +optionalChildren [ +*30 (EmbeddedText +uid 13845,0 +commentText (CommentText +uid 13846,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 13847,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "85000,28000,101000,30000" +) +oxt "0,0,18000,5000" +text (MLText +uid 13848,0 +va (VaSet +) +xt "85200,28200,100700,29400" +st " +lowpassInY <= (others => outY); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 13841,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "85000,27000,101000,31000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 13842,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*31 (Text +uid 13843,0 +va (VaSet +) +xt "85400,31000,88000,32200" +st "eb2" +blo "85400,32000" +tm "HdlTextNameMgr" +) +*32 (Text +uid 13844,0 +va (VaSet +) +xt "85400,32000,86800,33200" +st "2" +blo "85400,33000" +tm "HdlTextNumberMgr" +) +] +) +) +*33 (SaComponent +uid 13849,0 +optionalChildren [ +*34 (CptPort +uid 13858,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13859,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,44625,101000,45375" +) +tg (CPTG +uid 13860,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13861,0 +va (VaSet +) +xt "102000,44400,105400,45600" +st "clock" +blo "102000,45400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*35 (CptPort +uid 13862,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13863,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,40625,117750,41375" +) +tg (CPTG +uid 13864,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 13865,0 +va (VaSet +) +xt "108700,40400,116000,41600" +st "lowpassOut" +ju 2 +blo "116000,41400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*36 (CptPort +uid 13866,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13867,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,46625,101000,47375" +) +tg (CPTG +uid 13868,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13869,0 +va (VaSet +) +xt "102000,46400,105300,47600" +st "reset" +blo "102000,47400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*37 (CptPort +uid 13870,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13871,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,40625,101000,41375" +) +tg (CPTG +uid 13872,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13873,0 +va (VaSet +) +xt "102000,40400,107800,41600" +st "lowpassIn" +blo "102000,41400" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +] +shape (Rectangle +uid 13850,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "101000,37000,117000,49000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 13851,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*38 (Text +uid 13852,0 +va (VaSet +font "Verdana,9,1" +) +xt "101600,48800,113100,50000" +st "WaveformGenerator" +blo "101600,49800" +tm "BdLibraryNameMgr" +) +*39 (Text +uid 13853,0 +va (VaSet +font "Verdana,9,1" +) +xt "101600,50000,106200,51200" +st "lowpass" +blo "101600,51000" +tm "CptNameMgr" +) +*40 (Text +uid 13854,0 +va (VaSet +font "Verdana,9,1" +) +xt "101600,51200,104900,52400" +st "I_filt" +blo "101600,52200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 13855,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 13856,0 +text (MLText +uid 13857,0 +va (VaSet +font "Verdana,8,0" +) +xt "101000,52600,121800,54600" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = lowpassShiftBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*41 (Net +uid 13892,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 123,0 +) +declText (MLText +uid 13893,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "2000,11400,15500,12400" +st "SIGNAL clock : std_ulogic" +) +) +*42 (Net +uid 13896,0 +decl (Decl +n "reset" +t "std_ulogic" +o 16 +suid 125,0 +) +declText (MLText +uid 13897,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "2000,14600,15500,15600" +st "SIGNAL reset : std_ulogic" +) +) +*43 (Net +uid 13922,0 +decl (Decl +n "lowpassInY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 12 +suid 127,0 +) +declText (MLText +uid 13923,0 +va (VaSet +isHidden 1 +) +xt "0,0,33000,1200" +st "SIGNAL lowpassInY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*44 (Net +uid 13924,0 +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 128,0 +) +declText (MLText +uid 13925,0 +va (VaSet +isHidden 1 +) +xt "0,0,33500,1200" +st "SIGNAL lowpassOutY : unsigned(signalBitNb-1 DOWNTO 0)" +) +) +*45 (SaComponent +uid 14527,0 +optionalChildren [ +*46 (CptPort +uid 14471,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14472,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,56625,69000,57375" +) +tg (CPTG +uid 14473,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14474,0 +va (VaSet +) +xt "70000,56400,73000,57600" +st "hClk" +blo "70000,57400" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_ulogic" +o 13 +suid 1,0 +) +) +) +*47 (CptPort +uid 14475,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14476,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,38625,69000,39375" +) +tg (CPTG +uid 14477,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14478,0 +va (VaSet +) +xt "70000,38400,73700,39600" +st "hAddr" +blo "70000,39400" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 downto 0)" +o 2 +suid 2,0 +) +) +) +*48 (CptPort +uid 14479,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14480,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "85000,38625,85750,39375" +) +tg (CPTG +uid 14481,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 14482,0 +va (VaSet +) +xt "81001,38400,84001,39600" +st "outX" +ju 2 +blo "84001,39400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*49 (CptPort +uid 14483,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14484,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,58625,69000,59375" +) +tg (CPTG +uid 14485,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14486,0 +va (VaSet +) +xt "70000,58400,75400,59600" +st "hReset_n" +blo "70000,59400" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_ulogic" +o 14 +suid 4,0 +) +) +) +*50 (CptPort +uid 14487,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14488,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "85000,40625,85750,41375" +) +tg (CPTG +uid 14489,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 14490,0 +va (VaSet +) +xt "81001,40400,84001,41600" +st "outY" +ju 2 +blo "84001,41400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 3 +suid 5,0 +) +) +) +*51 (CptPort +uid 14491,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14492,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,40625,69000,41375" +) +tg (CPTG +uid 14493,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14494,0 +va (VaSet +) +xt "70000,40400,74600,41600" +st "hWData" +blo "70000,41400" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 4 +suid 11,0 +) +) +) +*52 (CptPort +uid 14495,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14496,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "85000,44625,85750,45375" +) +tg (CPTG +uid 14497,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 14498,0 +va (VaSet +) +xt "78201,44400,84001,45600" +st "selSinCos" +ju 2 +blo "84001,45400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*53 (CptPort +uid 14499,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14500,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "85000,56625,85750,57375" +) +tg (CPTG +uid 14501,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 14502,0 +va (VaSet +) +xt "79400,56400,84000,57600" +st "testOut" +ju 2 +blo "84000,57400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 6 +suid 2014,0 +) +) +) +*54 (CptPort +uid 14503,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14504,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,48625,69000,49375" +) +tg (CPTG +uid 14505,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14506,0 +va (VaSet +) +xt "70000,48400,74400,49600" +st "hRData" +blo "70000,49400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 downto 0)" +o 7 +suid 2015,0 +) +) +) +*55 (CptPort +uid 14507,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14508,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,42625,69000,43375" +) +tg (CPTG +uid 14509,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14510,0 +va (VaSet +) +xt "70000,42400,74200,43600" +st "hTrans" +blo "70000,43400" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 downto 0)" +o 8 +suid 2016,0 +) +) +) +*56 (CptPort +uid 14511,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14512,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,44625,69000,45375" +) +tg (CPTG +uid 14513,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14514,0 +va (VaSet +) +xt "70000,44400,73900,45600" +st "hWrite" +blo "70000,45400" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_ulogic" +o 9 +suid 2017,0 +) +) +) +*57 (CptPort +uid 14515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,46625,69000,47375" +) +tg (CPTG +uid 14517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14518,0 +va (VaSet +) +xt "70000,46400,72900,47600" +st "hSel" +blo "70000,47400" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic" +o 10 +suid 2018,0 +) +) +) +*58 (CptPort +uid 14519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14520,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,50625,69000,51375" +) +tg (CPTG +uid 14521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14522,0 +va (VaSet +) +xt "70000,50400,74400,51600" +st "hReady" +blo "70000,51400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_ulogic" +o 11 +suid 2019,0 +) +) +) +*59 (CptPort +uid 14523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 14524,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,52625,69000,53375" +) +tg (CPTG +uid 14525,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 14526,0 +va (VaSet +) +xt "70000,52400,73800,53600" +st "hResp" +blo "70000,53400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_ulogic" +o 12 +suid 2020,0 +) +) +) +] +shape (Rectangle +uid 14528,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "69000,35000,85000,61000" +) +oxt "43000,6000,59000,32000" +ttg (MlTextGroup +uid 14529,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 14530,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,60800,78000,62000" +st "SystemOnChip" +blo "69600,61800" +tm "BdLibraryNameMgr" +) +*61 (Text +uid 14531,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,61700,75800,62900" +st "ahbBeamer" +blo "69600,62700" +tm "CptNameMgr" +) +*62 (Text +uid 14532,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,62600,73300,63800" +st "I_DUT" +blo "69600,63600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 14533,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 14534,0 +text (MLText +uid 14535,0 +va (VaSet +font "Verdana,8,0" +) +xt "69000,64600,94800,66600" +st "patternAddressBitNb = patternAddressBitNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +] +) +viewicon (ZoomableIcon +uid 14536,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "69250,59250,70750,60750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*63 (Wire +uid 12557,0 +shape (OrthoPolyLine +uid 12558,0 +va (VaSet +vasetType 3 +) +xt "67000,59000,68250,69000" +pts [ +"68250,59000" +"67000,59000" +"67000,69000" +] +) +start &49 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12561,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12562,0 +va (VaSet +font "Verdana,12,0" +) +xt "60250,57600,67050,59000" +st "hReset_n" +blo "60250,58800" +tm "WireNameMgr" +) +) +on &12 +) +*64 (Wire +uid 12565,0 +shape (OrthoPolyLine +uid 12566,0 +va (VaSet +vasetType 3 +) +xt "65000,57000,68250,69000" +pts [ +"68250,57000" +"65000,57000" +"65000,69000" +] +) +start &46 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12569,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12570,0 +va (VaSet +font "Verdana,12,0" +) +xt "63250,55600,66750,57000" +st "hClk" +blo "63250,56800" +tm "WireNameMgr" +) +) +on &13 +) +*65 (Wire +uid 12573,0 +shape (OrthoPolyLine +uid 12574,0 +va (VaSet +vasetType 3 +) +xt "61000,53000,68250,69000" +pts [ +"68250,53000" +"61000,53000" +"61000,69000" +] +) +start &59 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12578,0 +va (VaSet +font "Verdana,12,0" +) +xt "62250,51600,66950,53000" +st "hResp" +blo "62250,52800" +tm "WireNameMgr" +) +) +on &14 +) +*66 (Wire +uid 12581,0 +shape (OrthoPolyLine +uid 12582,0 +va (VaSet +vasetType 3 +) +xt "59000,51000,68250,69000" +pts [ +"68250,51000" +"59000,51000" +"59000,69000" +] +) +start &58 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12585,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12586,0 +va (VaSet +font "Verdana,12,0" +) +xt "61250,49600,66750,51000" +st "hReady" +blo "61250,50800" +tm "WireNameMgr" +) +) +on &15 +) +*67 (Wire +uid 12589,0 +shape (OrthoPolyLine +uid 12590,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "57000,49000,68250,69000" +pts [ +"68250,49000" +"57000,49000" +"57000,69000" +] +) +start &54 +end &22 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12594,0 +va (VaSet +font "Verdana,12,0" +) +xt "62250,47600,67650,49000" +st "hRData" +blo "62250,48800" +tm "WireNameMgr" +) +) +on &16 +) +*68 (Wire +uid 12597,0 +shape (OrthoPolyLine +uid 12598,0 +va (VaSet +vasetType 3 +) +xt "55000,47000,68250,69000" +pts [ +"68250,47000" +"55000,47000" +"55000,69000" +] +) +start &57 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12601,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12602,0 +va (VaSet +font "Verdana,12,0" +) +xt "63250,45600,66750,47000" +st "hSel" +blo "63250,46800" +tm "WireNameMgr" +) +) +on &17 +) +*69 (Wire +uid 12605,0 +shape (OrthoPolyLine +uid 12606,0 +va (VaSet +vasetType 3 +) +xt "53000,45000,68250,69000" +pts [ +"68250,45000" +"53000,45000" +"53000,69000" +] +) +start &56 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12609,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12610,0 +va (VaSet +font "Verdana,12,0" +) +xt "62250,43600,67250,45000" +st "hWrite" +blo "62250,44800" +tm "WireNameMgr" +) +) +on &18 +) +*70 (Wire +uid 12613,0 +shape (OrthoPolyLine +uid 12614,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51000,43000,68250,69000" +pts [ +"68250,43000" +"51000,43000" +"51000,69000" +] +) +start &55 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12617,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12618,0 +va (VaSet +font "Verdana,12,0" +) +xt "62250,41600,67350,43000" +st "hTrans" +blo "62250,42800" +tm "WireNameMgr" +) +) +on &19 +) +*71 (Wire +uid 12621,0 +shape (OrthoPolyLine +uid 12622,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49000,41000,68250,69000" +pts [ +"68250,41000" +"49000,41000" +"49000,69000" +] +) +start &51 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12625,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12626,0 +va (VaSet +font "Verdana,12,0" +) +xt "61250,39600,67150,41000" +st "hWData" +blo "61250,40800" +tm "WireNameMgr" +) +) +on &20 +) +*72 (Wire +uid 12629,0 +shape (OrthoPolyLine +uid 12630,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "47000,39000,68250,69000" +pts [ +"68250,39000" +"47000,39000" +"47000,69000" +] +) +start &47 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12633,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12634,0 +va (VaSet +font "Verdana,12,0" +) +xt "62250,37600,66750,39000" +st "hAddr" +blo "62250,38800" +tm "WireNameMgr" +) +) +on &21 +) +*73 (Wire +uid 13631,0 +shape (OrthoPolyLine +uid 13632,0 +va (VaSet +vasetType 3 +) +xt "85750,45000,89000,69000" +pts [ +"85750,45000" +"89000,45000" +"89000,69000" +] +) +start &52 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13635,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13636,0 +va (VaSet +font "Verdana,12,0" +) +xt "87750,43600,94650,45000" +st "selSinCos" +blo "87750,44800" +tm "WireNameMgr" +) +) +on &26 +) +*74 (Wire +uid 13639,0 +optionalChildren [ +*75 (BdJunction +uid 13904,0 +ps "OnConnectorStrategy" +shape (Circle +uid 13905,0 +va (VaSet +vasetType 1 +) +xt "92600,40600,93400,41400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 13640,0 +va (VaSet +vasetType 3 +) +xt "85750,41000,93000,69000" +pts [ +"85750,41000" +"93000,41000" +"93000,69000" +] +) +start &50 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13643,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13644,0 +va (VaSet +font "Verdana,12,0" +) +xt "87750,39600,91350,41000" +st "outY" +blo "87750,40800" +tm "WireNameMgr" +) +) +on &27 +) +*76 (Wire +uid 13647,0 +shape (OrthoPolyLine +uid 13648,0 +va (VaSet +vasetType 3 +) +xt "85750,39000,95000,69000" +pts [ +"85750,39000" +"95000,39000" +"95000,69000" +] +) +start &48 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13651,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13652,0 +va (VaSet +font "Verdana,12,0" +) +xt "87750,37600,91450,39000" +st "outX" +blo "87750,38800" +tm "WireNameMgr" +) +) +on &28 +) +*77 (Wire +uid 13874,0 +shape (OrthoPolyLine +uid 13875,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "97000,31000,100250,41000" +pts [ +"100250,41000" +"97000,41000" +"97000,31000" +] +) +start &37 +end &29 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13878,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13879,0 +va (VaSet +font "Verdana,12,0" +) +xt "94000,39600,102800,41000" +st "lowpassInY" +blo "94000,40800" +tm "WireNameMgr" +) +) +on &43 +) +*78 (Wire +uid 13880,0 +shape (OrthoPolyLine +uid 13881,0 +va (VaSet +vasetType 3 +) +xt "97000,45000,100250,69000" +pts [ +"97000,69000" +"97000,45000" +"100250,45000" +] +) +start &22 +end &34 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13884,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13885,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,43600,100800,45000" +st "clock" +blo "97000,44800" +tm "WireNameMgr" +) +) +on &41 +) +*79 (Wire +uid 13886,0 +shape (OrthoPolyLine +uid 13887,0 +va (VaSet +vasetType 3 +) +xt "99000,47000,100250,69000" +pts [ +"99000,69000" +"99000,47000" +"100250,47000" +] +) +start &22 +end &36 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13890,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13891,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,45600,101100,47000" +st "reset" +blo "97000,46800" +tm "WireNameMgr" +) +) +on &42 +) +*80 (Wire +uid 13898,0 +shape (OrthoPolyLine +uid 13899,0 +va (VaSet +vasetType 3 +) +xt "93000,31000,93000,41000" +pts [ +"93000,41000" +"93000,31000" +] +) +start &75 +end &29 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13902,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13903,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,31600,92600,33000" +st "outY" +blo "89000,32800" +tm "WireNameMgr" +) +) +on &27 +) +*81 (Wire +uid 13908,0 +shape (OrthoPolyLine +uid 13909,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,41000,121000,69000" +pts [ +"117750,41000" +"121000,41000" +"121000,69000" +] +) +start &35 +end &22 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13912,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13913,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,39600,129550,41000" +st "lowpassOutY" +blo "119750,40800" +tm "WireNameMgr" +) +) +on &44 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *82 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 1297,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,19000,35900,20000" +st "Package List" +blo "29000,19800" +) +*84 (MLText +uid 1298,0 +va (VaSet +) +xt "29000,20000,46500,26000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "20000,0,32500,1200" +st "Compiler Directives" +blo "20000,1000" +) +*86 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "20000,1400,35100,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*87 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32100,5200" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*88 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "20000,5600,35700,6800" +st "Post-module directives:" +blo "20000,6600" +) +*89 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*90 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "20000,7200,35200,8400" +st "End-module directives:" +blo "20000,8200" +) +*91 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "27404,17388,169965,94845" +cachedDiagramExtent "0,0,138000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "29000,19000" +lastUid 14713,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "300,1000,4000,2000" +st "Panel0" +blo "300,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,2550,8000,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*93 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,3950,7300,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*94 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,5350,4800,6750" +st "U_0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*95 (Text +va (VaSet +) +xt "-100,3000,4300,4200" +st "Library" +blo "-100,4000" +) +*96 (Text +va (VaSet +) +xt "-100,4200,9800,5400" +st "MWComponent" +blo "-100,5200" +) +*97 (Text +va (VaSet +) +xt "-100,5400,2700,6600" +st "U_0" +blo "-100,6400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +va (VaSet +) +xt "-350,2550,4050,3750" +st "Library" +blo "-350,3550" +tm "BdLibraryNameMgr" +) +*99 (Text +va (VaSet +) +xt "-350,3750,8950,4950" +st "SaComponent" +blo "-350,4750" +tm "CptNameMgr" +) +*100 (Text +va (VaSet +) +xt "-350,4950,2450,6150" +st "U_0" +blo "-350,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "-600,8250,900,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*101 (Text +va (VaSet +) +xt "-850,2550,3550,3750" +st "Library" +blo "-850,3550" +) +*102 (Text +va (VaSet +) +xt "-850,3750,9450,4950" +st "VhdlComponent" +blo "-850,4750" +) +*103 (Text +va (VaSet +) +xt "-850,4950,1950,6150" +st "U_0" +blo "-850,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +va (VaSet +) +xt "-1600,2550,2800,3750" +st "Library" +blo "-1600,3550" +) +*105 (Text +va (VaSet +) +xt "-1600,3750,10100,4950" +st "VerilogComponent" +blo "-1600,4750" +) +*106 (Text +va (VaSet +) +xt "-1600,4950,1200,6150" +st "U_0" +blo "-1600,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,3400,5250,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*108 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,4400,4150,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-750,-600,750,600" +st "G" +blo "-750,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,400,3700,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1400,1500,2600" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1200,9600,2400" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,18500,-200" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "150,400,950,1400" +st "1" +blo "150,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*110 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,11000,-200" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "150,400,950,1400" +st "1" +blo "150,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*112 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,26800,36000,27800" +st "Declarations" +blo "29000,27600" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,32400,29000" +st "Ports:" +blo "29000,28800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,27800,33800,28800" +st "Pre User:" +blo "29000,28600" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "31000,28800,56600,37200" +st "constant patternAddressBitNb: positive := 9; +constant testOutBitNb: positive := 16; + +constant signalBitNb: positive := 16; +constant lowpassShiftBitNb: positive := 8; +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,38000,29000" +st "Diagram Signals:" +blo "29000,28800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,35000,29000" +st "Post User:" +blo "29000,28800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "31000,42400,31000,42400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 129,0 +usingSuid 1 +emptyRow *113 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*114 (RefLabelRowHdr +) +*115 (TitleRowHdr +) +*116 (FilterRowHdr +) +*117 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*118 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*119 (GroupColHdr +tm "GroupColHdrMgr" +) +*120 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*121 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*122 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*123 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*124 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*125 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*126 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 108,0 +) +) +uid 12637,0 +) +*127 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hClk" +t "std_uLogic" +o 3 +suid 109,0 +) +) +uid 12639,0 +) +*128 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hResp" +t "std_uLogic" +o 7 +suid 110,0 +) +) +uid 12641,0 +) +*129 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 111,0 +) +) +uid 12643,0 +) +*130 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 112,0 +) +) +uid 12645,0 +) +*131 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 113,0 +) +) +uid 12647,0 +) +*132 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 114,0 +) +) +uid 12649,0 +) +*133 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 115,0 +) +) +uid 12651,0 +) +*134 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 116,0 +) +) +uid 12653,0 +) +*135 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 117,0 +) +) +uid 12655,0 +) +*136 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 120,0 +) +) +uid 13653,0 +) +*137 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outY" +t "std_ulogic" +o 15 +suid 121,0 +) +) +uid 13655,0 +) +*138 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outX" +t "std_ulogic" +o 14 +suid 122,0 +) +) +uid 13657,0 +) +*139 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 123,0 +) +) +uid 13914,0 +) +*140 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 16 +suid 125,0 +) +) +uid 13918,0 +) +*141 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassInY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 12 +suid 127,0 +) +) +uid 13926,0 +) +*142 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 128,0 +) +) +uid 13928,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*143 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *144 (MRCItem +litem &113 +pos 17 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*145 (MRCItem +litem &114 +pos 0 +dimension 20 +uid 3326,0 +) +*146 (MRCItem +litem &115 +pos 1 +dimension 23 +uid 3327,0 +) +*147 (MRCItem +litem &116 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*148 (MRCItem +litem &126 +pos 0 +dimension 20 +uid 12638,0 +) +*149 (MRCItem +litem &127 +pos 1 +dimension 20 +uid 12640,0 +) +*150 (MRCItem +litem &128 +pos 2 +dimension 20 +uid 12642,0 +) +*151 (MRCItem +litem &129 +pos 3 +dimension 20 +uid 12644,0 +) +*152 (MRCItem +litem &130 +pos 4 +dimension 20 +uid 12646,0 +) +*153 (MRCItem +litem &131 +pos 5 +dimension 20 +uid 12648,0 +) +*154 (MRCItem +litem &132 +pos 6 +dimension 20 +uid 12650,0 +) +*155 (MRCItem +litem &133 +pos 7 +dimension 20 +uid 12652,0 +) +*156 (MRCItem +litem &134 +pos 8 +dimension 20 +uid 12654,0 +) +*157 (MRCItem +litem &135 +pos 9 +dimension 20 +uid 12656,0 +) +*158 (MRCItem +litem &136 +pos 10 +dimension 20 +uid 13654,0 +) +*159 (MRCItem +litem &137 +pos 11 +dimension 20 +uid 13656,0 +) +*160 (MRCItem +litem &138 +pos 12 +dimension 20 +uid 13658,0 +) +*161 (MRCItem +litem &139 +pos 13 +dimension 20 +uid 13915,0 +) +*162 (MRCItem +litem &140 +pos 14 +dimension 20 +uid 13919,0 +) +*163 (MRCItem +litem &141 +pos 15 +dimension 20 +uid 13927,0 +) +*164 (MRCItem +litem &142 +pos 16 +dimension 20 +uid 13929,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*165 (MRCItem +litem &117 +pos 0 +dimension 20 +uid 3330,0 +) +*166 (MRCItem +litem &119 +pos 1 +dimension 50 +uid 3331,0 +) +*167 (MRCItem +litem &120 +pos 2 +dimension 100 +uid 3332,0 +) +*168 (MRCItem +litem &121 +pos 3 +dimension 50 +uid 3333,0 +) +*169 (MRCItem +litem &122 +pos 4 +dimension 100 +uid 3334,0 +) +*170 (MRCItem +litem &123 +pos 5 +dimension 100 +uid 3335,0 +) +*171 (MRCItem +litem &124 +pos 6 +dimension 50 +uid 3336,0 +) +*172 (MRCItem +litem &125 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *173 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*174 (RefLabelRowHdr +) +*175 (TitleRowHdr +) +*176 (FilterRowHdr +) +*177 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*178 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*179 (GroupColHdr +tm "GroupColHdrMgr" +) +*180 (NameColHdr +tm "GenericNameColHdrMgr" +) +*181 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*182 (InitColHdr +tm "GenericValueColHdrMgr" +) +*183 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*184 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*185 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *186 (MRCItem +litem &173 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*187 (MRCItem +litem &174 +pos 0 +dimension 20 +uid 3354,0 +) +*188 (MRCItem +litem &175 +pos 1 +dimension 23 +uid 3355,0 +) +*189 (MRCItem +litem &176 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*190 (MRCItem +litem &177 +pos 0 +dimension 20 +uid 3358,0 +) +*191 (MRCItem +litem &179 +pos 1 +dimension 50 +uid 3359,0 +) +*192 (MRCItem +litem &180 +pos 2 +dimension 100 +uid 3360,0 +) +*193 (MRCItem +litem &181 +pos 3 +dimension 100 +uid 3361,0 +) +*194 (MRCItem +litem &182 +pos 4 +dimension 50 +uid 3362,0 +) +*195 (MRCItem +litem &183 +pos 5 +dimension 50 +uid 3363,0 +) +*196 (MRCItem +litem &184 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb new file mode 100644 index 0000000..8caf89b --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb @@ -0,0 +1,1280 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahbBeamer_tb" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamer_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:30:06" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbBeamer_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahbBeamer_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:30:06" +) +(vvPair +variable "unit" +value "ahbBeamer_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,40750,22900" +st "SystemOnChip_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,37750,23900" +st "ahbBeamer_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,46400,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,46400,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,9100,1300" +st "Package List" +blo "0,1000" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7800,4400" +st "Declarations" +blo "0,4200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4400,3600,5400" +st "Ports:" +blo "0,5200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5400,3000,6400" +st "User:" +blo "0,6200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,9000,4400" +st "Internal User:" +blo "0,4200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6400,2000,6400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 157,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester/interface b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester/interface new file mode 100644 index 0000000..8a5811c --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester/interface @@ -0,0 +1,2384 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 64,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 49,0 +) +) +uid 714,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 50,0 +) +) +uid 716,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 3 +suid 51,0 +) +) +uid 718,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 52,0 +) +) +uid 720,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 53,0 +) +) +uid 722,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 54,0 +) +) +uid 724,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 7 +suid 55,0 +) +) +uid 726,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 56,0 +) +) +uid 728,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 57,0 +) +) +uid 730,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 58,0 +) +) +uid 732,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 59,0 +) +) +uid 734,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 60,0 +) +) +uid 736,0 +) +*26 (LogPort +port (LogicalPort +decl (Decl +n "outX" +t "std_ulogic" +o 14 +suid 61,0 +) +) +uid 738,0 +) +*27 (LogPort +port (LogicalPort +decl (Decl +n "outY" +t "std_ulogic" +o 15 +suid 62,0 +) +) +uid 740,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 16 +suid 63,0 +) +) +uid 742,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 64,0 +) +) +uid 744,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 178,0 +optionalChildren [ +*30 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *31 (MRCItem +litem &1 +pos 16 +dimension 20 +) +uid 180,0 +optionalChildren [ +*32 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 181,0 +) +*33 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 182,0 +) +*34 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 183,0 +) +*35 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 715,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 717,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 719,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 721,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 723,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 725,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 727,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 729,0 +) +*43 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 731,0 +) +*44 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 733,0 +) +*45 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 735,0 +) +*46 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 737,0 +) +*47 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 739,0 +) +*48 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 741,0 +) +*49 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 743,0 +) +*50 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 745,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 184,0 +optionalChildren [ +*51 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 185,0 +) +*52 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 186,0 +) +*53 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 187,0 +) +*54 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 188,0 +) +*55 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 189,0 +) +*56 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 190,0 +) +*57 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 191,0 +) +*58 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 192,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 179,0 +vaOverrides [ +] +) +] +) +uid 164,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *59 (LEmptyRow +) +uid 194,0 +optionalChildren [ +*60 (RefLabelRowHdr +) +*61 (TitleRowHdr +) +*62 (FilterRowHdr +) +*63 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*64 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*65 (GroupColHdr +tm "GroupColHdrMgr" +) +*66 (NameColHdr +tm "GenericNameColHdrMgr" +) +*67 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*68 (InitColHdr +tm "GenericValueColHdrMgr" +) +*69 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*70 (EolColHdr +tm "GenericEolColHdrMgr" +) +*71 (LogGeneric +generic (GiElement +name "patternAddressBitNb" +type "positive" +value "1" +) +uid 267,0 +) +*72 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "1" +) +uid 269,0 +) +*73 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 609,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 206,0 +optionalChildren [ +*74 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *75 (MRCItem +litem &59 +pos 3 +dimension 20 +) +uid 208,0 +optionalChildren [ +*76 (MRCItem +litem &60 +pos 0 +dimension 20 +uid 209,0 +) +*77 (MRCItem +litem &61 +pos 1 +dimension 23 +uid 210,0 +) +*78 (MRCItem +litem &62 +pos 2 +hidden 1 +dimension 20 +uid 211,0 +) +*79 (MRCItem +litem &71 +pos 0 +dimension 20 +uid 266,0 +) +*80 (MRCItem +litem &72 +pos 1 +dimension 20 +uid 268,0 +) +*81 (MRCItem +litem &73 +pos 2 +dimension 20 +uid 610,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 212,0 +optionalChildren [ +*82 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 213,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 50 +uid 214,0 +) +*84 (MRCItem +litem &66 +pos 2 +dimension 100 +uid 215,0 +) +*85 (MRCItem +litem &67 +pos 3 +dimension 100 +uid 216,0 +) +*86 (MRCItem +litem &68 +pos 4 +dimension 50 +uid 217,0 +) +*87 (MRCItem +litem &69 +pos 5 +dimension 50 +uid 218,0 +) +*88 (MRCItem +litem &70 +pos 6 +dimension 80 +uid 219,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 207,0 +vaOverrides [ +] +) +] +) +uid 193,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahbBeamer_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamer_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:03:58" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbBeamer_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahb@beamer_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\ahbBeamer_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "15:03:58" +) +(vvPair +variable "unit" +value "ahbBeamer_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 163,0 +optionalChildren [ +*89 (SymbolBody +uid 8,0 +optionalChildren [ +*90 (CptPort +uid 634,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 635,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "72625,5250,73375,6000" +) +tg (CPTG +uid 636,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 637,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "72300,7000,73700,10800" +st "clock" +ju 2 +blo "73500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 638,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,62500,7600" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 49,0 +) +) +) +*91 (CptPort +uid 639,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 640,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 641,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 642,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,11500" +st "hAddr" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 643,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,77000,8400" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 50,0 +) +) +) +*92 (CptPort +uid 644,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 645,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +tg (CPTG +uid 646,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 647,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "40300,7000,41700,10500" +st "hClk" +ju 2 +blo "41500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 648,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,62500,9200" +st "hClk : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 3 +suid 51,0 +) +) +) +*93 (CptPort +uid 649,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 650,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 651,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 652,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "32300,7000,33700,12400" +st "hRData" +ju 2 +blo "33500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 653,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,79000,2800" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 52,0 +) +) +) +*94 (CptPort +uid 654,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 655,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 656,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 657,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "34300,7000,35700,12500" +st "hReady" +ju 2 +blo "35500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 658,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62500,3600" +st "hReady : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 53,0 +) +) +) +*95 (CptPort +uid 659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 660,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +tg (CPTG +uid 661,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 662,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "42300,7000,43700,13800" +st "hReset_n" +ju 2 +blo "43500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 663,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,62500,10000" +st "hReset_n : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 54,0 +) +) +) +*96 (CptPort +uid 664,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 665,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 666,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 667,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "36300,7000,37700,11700" +st "hResp" +ju 2 +blo "37500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 668,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62500,4400" +st "hResp : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 7 +suid 55,0 +) +) +) +*97 (CptPort +uid 669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 670,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 671,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 672,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,10500" +st "hSel" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 673,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,62500,10800" +st "hSel : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 56,0 +) +) +) +*98 (CptPort +uid 674,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 675,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 676,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 677,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,12100" +st "hTrans" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 678,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,79500,11600" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 57,0 +) +) +) +*99 (CptPort +uid 679,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 680,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 681,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 682,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,12900" +st "hWData" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 683,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11600,79000,12400" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 58,0 +) +) +) +*100 (CptPort +uid 684,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 685,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 686,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 687,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,12000" +st "hWrite" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 688,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12400,62500,13200" +st "hWrite : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 59,0 +) +) +) +*101 (CptPort +uid 689,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 690,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "96625,5250,97375,6000" +) +tg (CPTG +uid 691,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 692,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "96300,7000,97700,16800" +st "lowpassOutY" +ju 2 +blo "97500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 693,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,74000,5200" +st "lowpassOutY : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 60,0 +) +) +) +*102 (CptPort +uid 694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 695,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70625,5250,71375,6000" +) +tg (CPTG +uid 696,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 697,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "70300,7000,71700,10700" +st "outX" +ju 2 +blo "71500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 698,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62500,6000" +st "outX : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "outX" +t "std_ulogic" +o 14 +suid 61,0 +) +) +) +*103 (CptPort +uid 699,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 700,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68625,5250,69375,6000" +) +tg (CPTG +uid 701,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 702,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "68300,7000,69700,10600" +st "outY" +ju 2 +blo "69500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 703,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62500,6800" +st "outY : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "outY" +t "std_ulogic" +o 15 +suid 62,0 +) +) +) +*104 (CptPort +uid 704,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 705,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74625,5250,75375,6000" +) +tg (CPTG +uid 706,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 707,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "74300,7000,75700,11100" +st "reset" +ju 2 +blo "75500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 708,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13200,62500,14000" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 16 +suid 63,0 +) +) +) +*105 (CptPort +uid 709,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 710,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64625,5250,65375,6000" +) +tg (CPTG +uid 711,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 712,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "64300,7000,65700,13900" +st "selSinCos" +ju 2 +blo "65500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 713,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,14000,61500,14800" +st "selSinCos : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 64,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,105000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "54850,9000,65150,10000" +st "SystemOnChip_test" +blo "54850,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "54850,10000,64350,11000" +st "ahbBeamer_tester" +blo "54850,10800" +) +) +gi *106 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "36000,6000,51900,11000" +st "Generic Declarations + +patternAddressBitNb positive 1 +signalBitNb positive 1 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "patternAddressBitNb" +type "positive" +value "1" +) +(GiElement +name "signalBitNb" +type "positive" +value "1" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*107 (Grouping +uid 16,0 +optionalChildren [ +*108 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*109 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*110 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*111 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*112 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*113 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*114 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*115 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*116 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*117 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *118 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*119 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*120 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,7000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1016,690" +viewArea "-500,-500,70420,47560" +cachedDiagramExtent "0,0,105000,49000" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SystemOnChip_test" +entityName "ahbBeamer_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *121 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *122 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,14800,45000,15800" +st "User:" +blo "42000,15600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,15800,44000,15800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 745,0 +activeModelName "Symbol:GEN" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester1/interface b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester1/interface new file mode 100644 index 0000000..ba9d508 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/ahb@beamer_tester1/interface @@ -0,0 +1,2334 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 32,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 17,0 +) +) +uid 323,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 18,0 +) +) +uid 325,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 3 +suid 19,0 +) +) +uid 327,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 20,0 +) +) +uid 329,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 21,0 +) +) +uid 331,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 22,0 +) +) +uid 333,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 7 +suid 23,0 +) +) +uid 335,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 24,0 +) +) +uid 337,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 25,0 +) +) +uid 339,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 26,0 +) +) +uid 341,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 27,0 +) +) +uid 343,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 28,0 +) +) +uid 345,0 +) +*26 (LogPort +port (LogicalPort +decl (Decl +n "outX" +t "std_ulogic" +o 14 +suid 29,0 +) +) +uid 347,0 +) +*27 (LogPort +port (LogicalPort +decl (Decl +n "outY" +t "std_ulogic" +o 15 +suid 30,0 +) +) +uid 349,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 16 +suid 31,0 +) +) +uid 351,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 32,0 +) +) +uid 353,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 178,0 +optionalChildren [ +*30 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *31 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 180,0 +optionalChildren [ +*32 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 181,0 +) +*33 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 182,0 +) +*34 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 183,0 +) +*35 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 324,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 326,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 328,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 330,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 332,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 334,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 336,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 338,0 +) +*43 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 340,0 +) +*44 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 342,0 +) +*45 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 344,0 +) +*46 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 346,0 +) +*47 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 348,0 +) +*48 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 350,0 +) +*49 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 352,0 +) +*50 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 354,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 184,0 +optionalChildren [ +*51 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 185,0 +) +*52 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 186,0 +) +*53 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 187,0 +) +*54 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 188,0 +) +*55 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 189,0 +) +*56 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 190,0 +) +*57 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 191,0 +) +*58 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 192,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 179,0 +vaOverrides [ +] +) +] +) +uid 164,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *59 (LEmptyRow +) +uid 194,0 +optionalChildren [ +*60 (RefLabelRowHdr +) +*61 (TitleRowHdr +) +*62 (FilterRowHdr +) +*63 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*64 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*65 (GroupColHdr +tm "GroupColHdrMgr" +) +*66 (NameColHdr +tm "GenericNameColHdrMgr" +) +*67 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*68 (InitColHdr +tm "GenericValueColHdrMgr" +) +*69 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*70 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 206,0 +optionalChildren [ +*71 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *72 (MRCItem +litem &59 +pos 3 +dimension 20 +) +uid 208,0 +optionalChildren [ +*73 (MRCItem +litem &60 +pos 0 +dimension 20 +uid 209,0 +) +*74 (MRCItem +litem &61 +pos 1 +dimension 23 +uid 210,0 +) +*75 (MRCItem +litem &62 +pos 2 +hidden 1 +dimension 20 +uid 211,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 212,0 +optionalChildren [ +*76 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 213,0 +) +*77 (MRCItem +litem &65 +pos 1 +dimension 50 +uid 214,0 +) +*78 (MRCItem +litem &66 +pos 2 +dimension 100 +uid 215,0 +) +*79 (MRCItem +litem &67 +pos 3 +dimension 100 +uid 216,0 +) +*80 (MRCItem +litem &68 +pos 4 +dimension 50 +uid 217,0 +) +*81 (MRCItem +litem &69 +pos 5 +dimension 50 +uid 218,0 +) +*82 (MRCItem +litem &70 +pos 6 +dimension 80 +uid 219,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 207,0 +vaOverrides [ +] +) +] +) +uid 193,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tester1/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tester1/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tester1" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahbBeamer_tester1" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbBeamer_tester1" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:30:07" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "ahbBeamer_tester1" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahb@beamer_tester1/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/ahbBeamer_tester1/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:30:07" +) +(vvPair +variable "unit" +value "ahbBeamer_tester1" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 163,0 +optionalChildren [ +*83 (SymbolBody +uid 8,0 +optionalChildren [ +*84 (CptPort +uid 243,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 244,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "72625,5250,73375,6000" +) +tg (CPTG +uid 245,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 246,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "72550,7000,73450,9500" +st "clock" +ju 2 +blo "73250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 247,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7200,61500,8100" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 17,0 +) +) +) +*85 (CptPort +uid 248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 249,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 250,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 251,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,9500" +st "hAddr" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 252,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8100,75500,9000" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 18,0 +) +) +) +*86 (CptPort +uid 253,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 254,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +tg (CPTG +uid 255,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 256,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "40550,7000,41450,9000" +st "hClk" +ju 2 +blo "41250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 257,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9000,61500,9900" +st "hClk : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 3 +suid 19,0 +) +) +) +*87 (CptPort +uid 258,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 259,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 260,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 261,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "32550,7000,33450,10000" +st "hRData" +ju 2 +blo "33250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 262,0 +va (VaSet +font "courier,8,0" +) +xt "44000,1800,77500,2700" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 20,0 +) +) +) +*88 (CptPort +uid 263,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 264,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 265,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 266,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "34550,7000,35450,10000" +st "hReady" +ju 2 +blo "35250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 267,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,61500,3600" +st "hReady : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 21,0 +) +) +) +*89 (CptPort +uid 268,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 269,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +tg (CPTG +uid 270,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 271,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "42550,7000,43450,11000" +st "hReset_n" +ju 2 +blo "43250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 272,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9900,61500,10800" +st "hReset_n : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 22,0 +) +) +) +*90 (CptPort +uid 273,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 274,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 275,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 276,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "36550,7000,37450,9500" +st "hResp" +ju 2 +blo "37250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 277,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3600,61500,4500" +st "hResp : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 7 +suid 23,0 +) +) +) +*91 (CptPort +uid 278,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 279,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 280,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 281,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,9000" +st "hSel" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 282,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10800,61500,11700" +st "hSel : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 24,0 +) +) +) +*92 (CptPort +uid 283,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 284,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 285,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 286,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,10000" +st "hTrans" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 287,0 +va (VaSet +font "courier,8,0" +) +xt "44000,11700,78000,12600" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 25,0 +) +) +) +*93 (CptPort +uid 288,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 289,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 290,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 291,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,10000" +st "hWData" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 292,0 +va (VaSet +font "courier,8,0" +) +xt "44000,12600,77500,13500" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 26,0 +) +) +) +*94 (CptPort +uid 293,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 294,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 295,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 296,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,10000" +st "hWrite" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 297,0 +va (VaSet +font "courier,8,0" +) +xt "44000,13500,61500,14400" +st "hWrite : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 27,0 +) +) +) +*95 (CptPort +uid 298,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 299,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "96625,5250,97375,6000" +) +tg (CPTG +uid 300,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 301,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "96550,7000,97450,13000" +st "lowpassOutY" +ju 2 +blo "97250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 302,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4500,72500,5400" +st "lowpassOutY : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 13 +suid 28,0 +) +) +) +*96 (CptPort +uid 303,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 304,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70625,5250,71375,6000" +) +tg (CPTG +uid 305,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 306,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "70550,7000,71450,9000" +st "outX" +ju 2 +blo "71250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 307,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5400,61500,6300" +st "outX : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "outX" +t "std_ulogic" +o 14 +suid 29,0 +) +) +) +*97 (CptPort +uid 308,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 309,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68625,5250,69375,6000" +) +tg (CPTG +uid 310,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 311,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "68550,7000,69450,9000" +st "outY" +ju 2 +blo "69250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 312,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6300,61500,7200" +st "outY : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "outY" +t "std_ulogic" +o 15 +suid 30,0 +) +) +) +*98 (CptPort +uid 313,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 314,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74625,5250,75375,6000" +) +tg (CPTG +uid 315,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 316,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "74550,7000,75450,9500" +st "reset" +ju 2 +blo "75250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 317,0 +va (VaSet +font "courier,8,0" +) +xt "44000,14400,61500,15300" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 16 +suid 31,0 +) +) +) +*99 (CptPort +uid 318,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 319,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64625,5250,65375,6000" +) +tg (CPTG +uid 320,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 321,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "64550,7000,65450,11500" +st "selSinCos" +ju 2 +blo "65250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 322,0 +va (VaSet +font "courier,8,0" +) +xt "44000,15300,60500,16200" +st "selSinCos : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 32,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,105000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "55500,9100,64500,10000" +st "SystemOnChip_test" +blo "55500,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "55500,10000,64500,10900" +st "ahbBeamer_tester1" +blo "55500,10700" +) +) +gi *100 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "33000,6000,43500,6900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*101 (Grouping +uid 16,0 +optionalChildren [ +*102 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,50050,45700,50950" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,46050,53200,46950" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*104 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,48050,45700,48950" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*105 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,48050,31200,48950" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*106 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,47200,60200,48100" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*107 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "53200,46050,59700,46950" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*108 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "34000,46500,43000,47500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*109 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,49050,30700,49950" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*110 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,50050,31700,50950" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*111 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,49050,41700,49950" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *112 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*114 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,900,15500,5400" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SystemOnChip_test" +entityName "ahbBeamer_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *115 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *116 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,16200,44500,17100" +st "User:" +blo "42000,16900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,17100,44000,17100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 354,0 +activeModelName "Symbol:CDM" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/struct.bd new file mode 100644 index 0000000..603cb46 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/struct.bd @@ -0,0 +1,5636 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I1" +duLibraryName "Curves_test" +duName "beamerPeriphBlanking_tester" +elements [ +] +mwi 0 +uid 421,0 +) +(Instance +name "I3" +duLibraryName "Curves" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "8" +) +] +mwi 0 +uid 984,0 +) +(Instance +name "I0" +duLibraryName "Curves" +duName "beamerPeriphBlanking" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +mwi 0 +uid 1599,0 +) +(Instance +name "I2" +duLibraryName "Curves_test" +duName "DAC_5543" +elements [ +] +mwi 0 +uid 1624,0 +) +(Instance +name "I4" +duLibraryName "Curves_test" +duName "DAC_5543" +elements [ +] +mwi 0 +uid 1649,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@periph@blanking_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@periph@blanking_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@periph@blanking_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamerPeriphBlanking_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphBlanking_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:05:23" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerPeriphBlanking_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@periph@blanking_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamerPeriphBlanking_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:05:23" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Net +uid 45,0 +decl (Decl +n "reset" +t "std_ulogic" +o 20 +suid 1,0 +) +declText (MLText +uid 46,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,35600,15200,36600" +st "SIGNAL reset : std_ulogic +" +) +) +*2 (Net +uid 53,0 +decl (Decl +n "clock" +t "std_ulogic" +o 10 +suid 2,0 +) +declText (MLText +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,25600,15200,26600" +st "SIGNAL clock : std_ulogic +" +) +) +*3 (Grouping +uid 110,0 +optionalChildren [ +*4 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,61000,71000,62000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,61500,54200,61500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "71000,57000,75000,58000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "71200,57500,71200,57500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,59000,71000,60000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,59500,54200,59500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "50000,59000,54000,60000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "50200,59500,50200,59500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "71000,58000,91000,62000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "71200,58200,85300,59400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*9 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,57000,91000,58000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,57500,75200,57500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "50000,57000,71000,59000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "55350,57400,65650,58600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "50000,60000,54000,61000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "50200,60500,50200,60500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "50000,61000,54000,62000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "50200,61500,50200,61500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,60000,71000,61000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,60500,54200,60500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "50000,57000,91000,62000" +) +oxt "14000,66000,55000,71000" +) +*14 (Blk +uid 421,0 +shape (Rectangle +uid 422,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "17000,44000,89000,52000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 423,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*15 (Text +uid 424,0 +va (VaSet +) +xt "17700,52200,25300,53400" +st "Curves_test" +blo "17700,53200" +tm "BdLibraryNameMgr" +) +*16 (Text +uid 425,0 +va (VaSet +) +xt "17700,53400,34600,54600" +st "beamerPeriphBlanking_tester" +blo "17700,54400" +tm "BlkNameMgr" +) +*17 (Text +uid 426,0 +va (VaSet +) +xt "17700,54600,19600,55800" +st "I1" +blo "17700,55600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 427,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 428,0 +text (MLText +uid 429,0 +va (VaSet +) +xt "27000,58000,51600,60400" +) +header "" +) +elements [ +] +) +) +*18 (Net +uid 758,0 +decl (Decl +n "cs" +t "std_ulogic" +o 11 +suid 3,0 +) +declText (MLText +uid 759,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,26600,14900,27600" +st "SIGNAL cs : std_ulogic +" +) +) +*19 (Net +uid 766,0 +decl (Decl +n "wrL" +t "std_ulogic" +o 23 +suid 4,0 +) +declText (MLText +uid 767,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,38600,15200,39600" +st "SIGNAL wrL : std_ulogic +" +) +) +*20 (Net +uid 774,0 +decl (Decl +n "wrH" +t "std_ulogic" +o 22 +suid 5,0 +) +declText (MLText +uid 775,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,37600,15400,38600" +st "SIGNAL wrH : std_ulogic +" +) +) +*21 (Net +uid 782,0 +decl (Decl +n "rd" +t "std_ulogic" +o 19 +suid 6,0 +) +declText (MLText +uid 783,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,34600,14900,35600" +st "SIGNAL rd : std_ulogic +" +) +) +*22 (Net +uid 790,0 +decl (Decl +n "outY" +t "std_ulogic" +o 17 +suid 7,0 +) +declText (MLText +uid 791,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,32600,15300,33600" +st "SIGNAL outY : std_ulogic +" +) +) +*23 (Net +uid 798,0 +decl (Decl +n "outX" +t "std_ulogic" +o 16 +suid 8,0 +) +declText (MLText +uid 799,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,31600,15300,32600" +st "SIGNAL outX : std_ulogic +" +) +) +*24 (Net +uid 806,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 9,0 +) +declText (MLText +uid 807,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,28600,29200,29600" +st "SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0) +" +) +) +*25 (Net +uid 814,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 10,0 +) +declText (MLText +uid 815,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,27600,29400,28600" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0) +" +) +) +*26 (Net +uid 822,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 9 +suid 11,0 +) +declText (MLText +uid 823,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,24600,27100,25600" +st "SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0) +" +) +) +*27 (HdlText +uid 975,0 +optionalChildren [ +*28 (EmbeddedText +uid 980,0 +commentText (CommentText +uid 981,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 982,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "100000,2000,122000,4000" +) +oxt "0,0,18000,5000" +text (MLText +uid 983,0 +va (VaSet +) +xt "100200,2200,122200,3400" +st " +lowpassIn <= (lowpassIn'high => outY, others => '0'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 22000 +) +) +) +] +shape (Rectangle +uid 976,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "99000,1000,123000,5000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 977,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*29 (Text +uid 978,0 +va (VaSet +) +xt "99400,5000,102000,6200" +st "eb2" +blo "99400,6000" +tm "HdlTextNameMgr" +) +*30 (Text +uid 979,0 +va (VaSet +) +xt "99400,6000,100800,7200" +st "2" +blo "99400,7000" +tm "HdlTextNumberMgr" +) +] +) +) +*31 (SaComponent +uid 984,0 +optionalChildren [ +*32 (CptPort +uid 993,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 994,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,14625,107000,15375" +) +tg (CPTG +uid 995,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 996,0 +va (VaSet +) +xt "108000,14400,111400,15600" +st "clock" +blo "108000,15400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*33 (CptPort +uid 997,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 998,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123000,10625,123750,11375" +) +tg (CPTG +uid 999,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1000,0 +va (VaSet +) +xt "114700,10400,122000,11600" +st "lowpassOut" +ju 2 +blo "122000,11400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*34 (CptPort +uid 1001,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1002,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,16625,107000,17375" +) +tg (CPTG +uid 1003,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1004,0 +va (VaSet +) +xt "108000,16400,111300,17600" +st "reset" +blo "108000,17400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*35 (CptPort +uid 1005,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1006,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,10625,107000,11375" +) +tg (CPTG +uid 1007,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1008,0 +va (VaSet +) +xt "108000,10400,113800,11600" +st "lowpassIn" +blo "108000,11400" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +] +shape (Rectangle +uid 985,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,7000,123000,19000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 986,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 987,0 +va (VaSet +) +xt "107600,18800,111900,20000" +st "Curves" +blo "107600,19800" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 988,0 +va (VaSet +) +xt "107600,19800,112300,21000" +st "lowpass" +blo "107600,20800" +tm "CptNameMgr" +) +*38 (Text +uid 989,0 +va (VaSet +) +xt "107600,20800,109500,22000" +st "I3" +blo "107600,21800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 990,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 991,0 +text (MLText +uid 992,0 +va (VaSet +font "Verdana,8,0" +) +xt "107000,22600,125100,24600" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = 8 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "8" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*39 (Net +uid 1033,0 +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 14 +suid 12,0 +) +declText (MLText +uid 1034,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,29600,27000,30600" +st "SIGNAL lowpassIn : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*40 (Net +uid 1035,0 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 15 +suid 13,0 +) +declText (MLText +uid 1036,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,30600,27300,31600" +st "SIGNAL lowpassOut : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*41 (Net +uid 1290,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 21 +suid 14,0 +) +declText (MLText +uid 1291,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,36600,15800,37600" +st "SIGNAL selSinCos : std_ulogic +" +) +) +*42 (Net +uid 1477,0 +decl (Decl +n "outZ" +t "std_ulogic" +o 18 +suid 15,0 +) +declText (MLText +uid 1478,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,33600,15300,34600" +st "SIGNAL outZ : std_ulogic +" +) +) +*43 (SaComponent +uid 1599,0 +optionalChildren [ +*44 (CptPort +uid 1519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,31625,49000,32375" +) +tg (CPTG +uid 1521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1522,0 +va (VaSet +) +xt "50000,31400,53400,32600" +st "clock" +blo "50000,32400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*45 (CptPort +uid 1523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1524,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,5625,49000,6375" +) +tg (CPTG +uid 1525,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1526,0 +va (VaSet +) +xt "50000,5400,52900,6600" +st "addr" +blo "50000,6400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*46 (CptPort +uid 1527,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1528,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,5625,65750,6375" +) +tg (CPTG +uid 1529,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1530,0 +va (VaSet +) +xt "61001,5400,64001,6600" +st "outX" +ju 2 +blo "64001,6400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +) +) +) +*47 (CptPort +uid 1531,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1532,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,33625,49000,34375" +) +tg (CPTG +uid 1533,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1534,0 +va (VaSet +) +xt "50000,33400,53300,34600" +st "reset" +blo "50000,34400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*48 (CptPort +uid 1535,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1536,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,7625,65750,8375" +) +tg (CPTG +uid 1537,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1538,0 +va (VaSet +) +xt "61001,7400,64001,8600" +st "outY" +ju 2 +blo "64001,8400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +) +) +) +*49 (CptPort +uid 1539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1540,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,7625,49000,8375" +) +tg (CPTG +uid 1541,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1542,0 +va (VaSet +) +xt "50000,7400,54000,8600" +st "dataIn" +blo "50000,8400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*50 (CptPort +uid 1543,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1544,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,13625,49000,14375" +) +tg (CPTG +uid 1545,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1546,0 +va (VaSet +) +xt "50000,13400,51700,14600" +st "rd" +blo "50000,14400" +) +) +thePort (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +) +) +) +*51 (CptPort +uid 1547,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1548,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,15625,49000,16375" +) +tg (CPTG +uid 1549,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1550,0 +va (VaSet +) +xt "50000,15400,52600,16600" +st "wrH" +blo "50000,16400" +) +) +thePort (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +) +) +) +*52 (CptPort +uid 1551,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1552,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,19625,49000,20375" +) +tg (CPTG +uid 1553,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1554,0 +va (VaSet +) +xt "50000,19400,51900,20600" +st "cs" +blo "50000,20400" +) +) +thePort (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +) +) +) +*53 (CptPort +uid 1555,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1556,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,17625,49000,18375" +) +tg (CPTG +uid 1557,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1558,0 +va (VaSet +) +xt "50000,17400,52400,18600" +st "wrL" +blo "50000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +) +) +) +*54 (CptPort +uid 1559,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1560,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48250,9625,49000,10375" +) +tg (CPTG +uid 1561,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1562,0 +va (VaSet +) +xt "50000,9400,54800,10600" +st "dataOut" +blo "50000,10400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +) +) +) +*55 (CptPort +uid 1563,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1564,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,31625,65750,32375" +) +tg (CPTG +uid 1565,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1566,0 +va (VaSet +) +xt "59401,31400,64001,32600" +st "testOut" +ju 2 +blo "64001,32400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +) +) +) +*56 (CptPort +uid 1567,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1568,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,29625,65750,30375" +) +tg (CPTG +uid 1569,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1570,0 +va (VaSet +) +xt "58201,29400,64001,30600" +st "selSinCos" +ju 2 +blo "64001,30400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +) +) +) +*57 (CptPort +uid 1571,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1572,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,9625,65750,10375" +) +tg (CPTG +uid 1573,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1574,0 +va (VaSet +) +xt "61001,9400,64001,10600" +st "outZ" +ju 2 +blo "64001,10400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outZ" +t "std_ulogic" +o 14 +) +) +) +*58 (CptPort +uid 1575,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1576,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,15625,65750,16375" +) +tg (CPTG +uid 1577,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1578,0 +va (VaSet +) +xt "59900,15400,64000,16600" +st "CLK_X" +ju 2 +blo "64000,16400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 17 +) +) +) +*59 (CptPort +uid 1579,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1580,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,13625,65750,14375" +) +tg (CPTG +uid 1581,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1582,0 +va (VaSet +) +xt "59300,13400,64000,14600" +st "CS_X_n" +ju 2 +blo "64000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 15 +) +) +) +*60 (CptPort +uid 1583,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1584,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,17625,65750,18375" +) +tg (CPTG +uid 1585,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1586,0 +va (VaSet +) +xt "60000,17400,64000,18600" +st "SDI_X" +ju 2 +blo "64000,18400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 16 +) +) +) +*61 (CptPort +uid 1587,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1588,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,21625,65750,22375" +) +tg (CPTG +uid 1589,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1590,0 +va (VaSet +) +xt "59300,21400,64000,22600" +st "CS_Y_n" +ju 2 +blo "64000,22400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 19 +) +) +) +*62 (CptPort +uid 1591,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1592,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,25625,65750,26375" +) +tg (CPTG +uid 1593,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1594,0 +va (VaSet +) +xt "60000,25400,64000,26600" +st "SDI_Y" +ju 2 +blo "64000,26400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 20 +) +) +) +*63 (CptPort +uid 1595,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1596,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,23625,65750,24375" +) +tg (CPTG +uid 1597,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1598,0 +va (VaSet +) +xt "59900,23400,64000,24600" +st "CLK_Y" +ju 2 +blo "64000,24400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 18 +) +) +) +] +shape (Rectangle +uid 1600,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "49000,2000,65000,36000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1601,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +uid 1602,0 +va (VaSet +) +xt "49600,35800,53900,37000" +st "Curves" +blo "49600,36800" +tm "BdLibraryNameMgr" +) +*65 (Text +uid 1603,0 +va (VaSet +) +xt "49600,36800,62900,38000" +st "beamerPeriphBlanking" +blo "49600,37800" +tm "CptNameMgr" +) +*66 (Text +uid 1604,0 +va (VaSet +) +xt "49600,37800,51500,39000" +st "I0" +blo "49600,38800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1605,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1606,0 +text (MLText +uid 1607,0 +va (VaSet +font "Verdana,8,0" +) +xt "49000,39600,64000,41600" +st "dataBitNb = 16 ( positive ) +addressBitNb = 24 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*67 (SaComponent +uid 1624,0 +optionalChildren [ +*68 (CptPort +uid 1608,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1609,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,32625,107000,33375" +) +tg (CPTG +uid 1610,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1611,0 +va (VaSet +) +xt "108000,32400,110800,33600" +st "CLK" +blo "108000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_ulogic" +o 17 +) +) +) +*69 (CptPort +uid 1612,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1613,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,28625,107000,29375" +) +tg (CPTG +uid 1614,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1615,0 +va (VaSet +) +xt "108000,28400,111400,29600" +st "CS_n" +blo "108000,29400" +) +) +thePort (LogicalPort +decl (Decl +n "CS_n" +t "std_ulogic" +o 15 +) +) +) +*70 (CptPort +uid 1616,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1617,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,30625,107000,31375" +) +tg (CPTG +uid 1618,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1619,0 +va (VaSet +) +xt "108000,30400,110700,31600" +st "SDI" +blo "108000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "SDI" +t "std_ulogic" +o 16 +) +) +) +*71 (CptPort +uid 1620,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1621,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "115000,28625,115750,29375" +) +tg (CPTG +uid 1622,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1623,0 +va (VaSet +) +xt "111200,28400,114000,29600" +st "Iout" +ju 2 +blo "114000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Iout" +t "natural" +o 4 +) +) +) +] +shape (Rectangle +uid 1625,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,27000,115000,35000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1626,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +uid 1627,0 +va (VaSet +) +xt "107600,34800,115200,36000" +st "Curves_test" +blo "107600,35800" +tm "BdLibraryNameMgr" +) +*73 (Text +uid 1628,0 +va (VaSet +) +xt "107600,35800,114100,37000" +st "DAC_5543" +blo "107600,36800" +tm "CptNameMgr" +) +*74 (Text +uid 1629,0 +va (VaSet +) +xt "107600,36800,109500,38000" +st "I2" +blo "107600,37800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1630,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1631,0 +text (MLText +uid 1632,0 +va (VaSet +font "Verdana,8,0" +) +xt "72000,12000,72000,12000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +*75 (SaComponent +uid 1649,0 +optionalChildren [ +*76 (CptPort +uid 1658,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1659,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,48625,107000,49375" +) +tg (CPTG +uid 1660,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1661,0 +va (VaSet +) +xt "108000,48400,110800,49600" +st "CLK" +blo "108000,49400" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_ulogic" +o 17 +) +) +) +*77 (CptPort +uid 1662,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1663,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,44625,107000,45375" +) +tg (CPTG +uid 1664,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1665,0 +va (VaSet +) +xt "108000,44400,111400,45600" +st "CS_n" +blo "108000,45400" +) +) +thePort (LogicalPort +decl (Decl +n "CS_n" +t "std_ulogic" +o 15 +) +) +) +*78 (CptPort +uid 1666,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1667,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "106250,46625,107000,47375" +) +tg (CPTG +uid 1668,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1669,0 +va (VaSet +) +xt "108000,46400,110700,47600" +st "SDI" +blo "108000,47400" +) +) +thePort (LogicalPort +decl (Decl +n "SDI" +t "std_ulogic" +o 16 +) +) +) +*79 (CptPort +uid 1670,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1671,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "115000,44625,115750,45375" +) +tg (CPTG +uid 1672,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1673,0 +va (VaSet +) +xt "111200,44400,114000,45600" +st "Iout" +ju 2 +blo "114000,45400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Iout" +t "natural" +o 4 +) +) +) +] +shape (Rectangle +uid 1650,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "107000,43000,115000,51000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1651,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 1652,0 +va (VaSet +) +xt "107600,50800,115200,52000" +st "Curves_test" +blo "107600,51800" +tm "BdLibraryNameMgr" +) +*81 (Text +uid 1653,0 +va (VaSet +) +xt "107600,51800,114100,53000" +st "DAC_5543" +blo "107600,52800" +tm "CptNameMgr" +) +*82 (Text +uid 1654,0 +va (VaSet +) +xt "107600,52800,109500,54000" +st "I4" +blo "107600,53800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1655,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1656,0 +text (MLText +uid 1657,0 +va (VaSet +font "Verdana,8,0" +) +xt "72000,28000,72000,28000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +*83 (Net +uid 1674,0 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 3 +suid 16,0 +) +declText (MLText +uid 1675,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18600,16000,19600" +st "SIGNAL CS_X_n : std_ulogic +" +) +) +*84 (Net +uid 1682,0 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 1 +suid 17,0 +) +declText (MLText +uid 1683,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16600,15800,17600" +st "SIGNAL CLK_X : std_ulogic +" +) +) +*85 (Net +uid 1690,0 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 7 +suid 18,0 +) +declText (MLText +uid 1691,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,22600,15600,23600" +st "SIGNAL SDI_X : std_ulogic +" +) +) +*86 (Net +uid 1698,0 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 4 +suid 19,0 +) +declText (MLText +uid 1699,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,19600,16000,20600" +st "SIGNAL CS_Y_n : std_ulogic +" +) +) +*87 (Net +uid 1706,0 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 2 +suid 20,0 +) +declText (MLText +uid 1707,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17600,15800,18600" +st "SIGNAL CLK_Y : std_ulogic +" +) +) +*88 (Net +uid 1714,0 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 8 +suid 21,0 +) +declText (MLText +uid 1715,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,23600,15600,24600" +st "SIGNAL SDI_Y : std_ulogic +" +) +) +*89 (Net +uid 1786,0 +decl (Decl +n "IoutX" +t "natural" +o 5 +suid 22,0 +) +declText (MLText +uid 1787,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,20600,14100,21600" +st "SIGNAL IoutX : natural +" +) +) +*90 (Net +uid 1788,0 +decl (Decl +n "IoutY" +t "natural" +o 6 +suid 23,0 +) +declText (MLText +uid 1789,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,21600,14100,22600" +st "SIGNAL IoutY : natural +" +) +) +*91 (Wire +uid 47,0 +shape (OrthoPolyLine +uid 48,0 +va (VaSet +vasetType 3 +) +xt "45000,34000,48250,44000" +pts [ +"45000,44000" +"45000,34000" +"48250,34000" +] +) +start &14 +end &47 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 51,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 52,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,32600,49100,34000" +st "reset" +blo "45000,33800" +tm "WireNameMgr" +) +) +on &1 +) +*92 (Wire +uid 55,0 +shape (OrthoPolyLine +uid 56,0 +va (VaSet +vasetType 3 +) +xt "43000,32000,48250,44000" +pts [ +"43000,44000" +"43000,32000" +"48250,32000" +] +) +start &14 +end &44 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 59,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 60,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,30600,48800,32000" +st "clock" +blo "45000,31800" +tm "WireNameMgr" +) +) +on &2 +) +*93 (Wire +uid 760,0 +shape (OrthoPolyLine +uid 761,0 +va (VaSet +vasetType 3 +) +xt "39000,20000,48250,44000" +pts [ +"48250,20000" +"39000,20000" +"39000,44000" +] +) +start &52 +end &14 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 764,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 765,0 +va (VaSet +font "Verdana,12,0" +) +xt "46250,18600,48350,20000" +st "cs" +blo "46250,19800" +tm "WireNameMgr" +) +) +on &18 +) +*94 (Wire +uid 768,0 +shape (OrthoPolyLine +uid 769,0 +va (VaSet +vasetType 3 +) +xt "37000,18000,48250,44000" +pts [ +"48250,18000" +"37000,18000" +"37000,44000" +] +) +start &53 +end &14 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 772,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 773,0 +va (VaSet +font "Verdana,12,0" +) +xt "45250,16600,48350,18000" +st "wrL" +blo "45250,17800" +tm "WireNameMgr" +) +) +on &19 +) +*95 (Wire +uid 776,0 +shape (OrthoPolyLine +uid 777,0 +va (VaSet +vasetType 3 +) +xt "35000,16000,48250,44000" +pts [ +"48250,16000" +"35000,16000" +"35000,44000" +] +) +start &51 +end &14 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 780,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 781,0 +va (VaSet +font "Verdana,12,0" +) +xt "44250,14600,47550,16000" +st "wrH" +blo "44250,15800" +tm "WireNameMgr" +) +) +on &20 +) +*96 (Wire +uid 784,0 +shape (OrthoPolyLine +uid 785,0 +va (VaSet +vasetType 3 +) +xt "33000,14000,48250,44000" +pts [ +"48250,14000" +"33000,14000" +"33000,44000" +] +) +start &50 +end &14 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 788,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 789,0 +va (VaSet +font "Verdana,12,0" +) +xt "46250,12600,48350,14000" +st "rd" +blo "46250,13800" +tm "WireNameMgr" +) +) +on &21 +) +*97 (Wire +uid 792,0 +shape (OrthoPolyLine +uid 793,0 +va (VaSet +vasetType 3 +) +xt "65750,8000,79000,44000" +pts [ +"65750,8000" +"79000,8000" +"79000,44000" +] +) +start &48 +end &14 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 796,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 797,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,6600,71350,8000" +st "outY" +blo "67750,7800" +tm "WireNameMgr" +) +) +on &22 +) +*98 (Wire +uid 800,0 +shape (OrthoPolyLine +uid 801,0 +va (VaSet +vasetType 3 +) +xt "65750,6000,81000,44000" +pts [ +"65750,6000" +"81000,6000" +"81000,44000" +] +) +start &46 +end &14 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 804,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 805,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,4600,71450,6000" +st "outX" +blo "67750,5800" +tm "WireNameMgr" +) +) +on &23 +) +*99 (Wire +uid 808,0 +shape (OrthoPolyLine +uid 809,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "29000,10000,48250,44000" +pts [ +"48250,10000" +"29000,10000" +"29000,44000" +] +) +start &54 +end &14 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 812,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 813,0 +va (VaSet +font "Verdana,12,0" +) +xt "42250,8600,48250,10000" +st "dataOut" +blo "42250,9800" +tm "WireNameMgr" +) +) +on &24 +) +*100 (Wire +uid 816,0 +shape (OrthoPolyLine +uid 817,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "27000,8000,48250,44000" +pts [ +"48250,8000" +"27000,8000" +"27000,44000" +] +) +start &49 +end &14 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 820,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 821,0 +va (VaSet +font "Verdana,12,0" +) +xt "43250,6600,48250,8000" +st "dataIn" +blo "43250,7800" +tm "WireNameMgr" +) +) +on &25 +) +*101 (Wire +uid 824,0 +shape (OrthoPolyLine +uid 825,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "25000,6000,48250,44000" +pts [ +"48250,6000" +"25000,6000" +"25000,44000" +] +) +start &45 +end &14 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 828,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 829,0 +va (VaSet +font "Verdana,12,0" +) +xt "44250,4600,47950,6000" +st "addr" +blo "44250,5800" +tm "WireNameMgr" +) +) +on &26 +) +*102 (Wire +uid 1009,0 +shape (OrthoPolyLine +uid 1010,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "99000,11000,106250,11000" +pts [ +"106250,11000" +"99000,11000" +] +) +start &35 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1013,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1014,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,9600,108300,11000" +st "lowpassIn" +blo "101000,10800" +tm "WireNameMgr" +) +) +on &39 +) +*103 (Wire +uid 1015,0 +shape (OrthoPolyLine +uid 1016,0 +va (VaSet +vasetType 3 +) +xt "103000,15000,106250,15000" +pts [ +"103000,15000" +"106250,15000" +] +) +end &32 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1019,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1020,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,13600,105800,15000" +st "clock" +blo "102000,14800" +tm "WireNameMgr" +) +) +on &2 +) +*104 (Wire +uid 1021,0 +shape (OrthoPolyLine +uid 1022,0 +va (VaSet +vasetType 3 +) +xt "103000,17000,106250,17000" +pts [ +"103000,17000" +"106250,17000" +] +) +end &34 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1025,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1026,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,15600,106100,17000" +st "reset" +blo "102000,16800" +tm "WireNameMgr" +) +) +on &1 +) +*105 (Wire +uid 1027,0 +shape (OrthoPolyLine +uid 1028,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123750,11000,131000,11000" +pts [ +"123750,11000" +"131000,11000" +] +) +start &33 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1031,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1032,0 +va (VaSet +font "Verdana,12,0" +) +xt "126750,9600,135850,11000" +st "lowpassOut" +blo "126750,10800" +tm "WireNameMgr" +) +) +on &40 +) +*106 (Wire +uid 1191,0 +shape (OrthoPolyLine +uid 1192,0 +va (VaSet +vasetType 3 +) +xt "65750,30000,73000,44000" +pts [ +"65750,30000" +"73000,30000" +"73000,44000" +] +) +start &56 +end &14 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1195,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1196,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,28600,74650,30000" +st "selSinCos" +blo "67750,29800" +tm "WireNameMgr" +) +) +on &41 +) +*107 (Wire +uid 1479,0 +shape (OrthoPolyLine +uid 1480,0 +va (VaSet +vasetType 3 +) +xt "65750,10000,77000,44000" +pts [ +"65750,10000" +"77000,10000" +"77000,44000" +] +) +start &57 +end &14 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1483,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1484,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,8600,71450,10000" +st "outZ" +blo "67750,9800" +tm "WireNameMgr" +) +) +on &42 +) +*108 (Wire +uid 1676,0 +shape (OrthoPolyLine +uid 1677,0 +va (VaSet +vasetType 3 +) +xt "65750,14000,73000,14000" +pts [ +"65750,14000" +"73000,14000" +] +) +start &59 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1680,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1681,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,12600,73450,14000" +st "CS_X_n" +blo "67750,13800" +tm "WireNameMgr" +) +) +on &83 +) +*109 (Wire +uid 1684,0 +shape (OrthoPolyLine +uid 1685,0 +va (VaSet +vasetType 3 +) +xt "65750,16000,73000,16000" +pts [ +"65750,16000" +"73000,16000" +] +) +start &58 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1688,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1689,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,14600,72550,16000" +st "CLK_X" +blo "67750,15800" +tm "WireNameMgr" +) +) +on &84 +) +*110 (Wire +uid 1692,0 +shape (OrthoPolyLine +uid 1693,0 +va (VaSet +vasetType 3 +) +xt "65750,18000,73000,18000" +pts [ +"65750,18000" +"73000,18000" +] +) +start &60 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1696,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1697,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,16600,72350,18000" +st "SDI_X" +blo "67750,17800" +tm "WireNameMgr" +) +) +on &85 +) +*111 (Wire +uid 1700,0 +shape (OrthoPolyLine +uid 1701,0 +va (VaSet +vasetType 3 +) +xt "65750,22000,73000,22000" +pts [ +"65750,22000" +"73000,22000" +] +) +start &61 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1704,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1705,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,20600,73350,22000" +st "CS_Y_n" +blo "67750,21800" +tm "WireNameMgr" +) +) +on &86 +) +*112 (Wire +uid 1708,0 +shape (OrthoPolyLine +uid 1709,0 +va (VaSet +vasetType 3 +) +xt "65750,24000,73000,24000" +pts [ +"65750,24000" +"73000,24000" +] +) +start &63 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1712,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1713,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,22600,72450,24000" +st "CLK_Y" +blo "67750,23800" +tm "WireNameMgr" +) +) +on &87 +) +*113 (Wire +uid 1716,0 +shape (OrthoPolyLine +uid 1717,0 +va (VaSet +vasetType 3 +) +xt "65750,26000,73000,26000" +pts [ +"65750,26000" +"73000,26000" +] +) +start &62 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1720,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1721,0 +va (VaSet +font "Verdana,12,0" +) +xt "67750,24600,72250,26000" +st "SDI_Y" +blo "67750,25800" +tm "WireNameMgr" +) +) +on &88 +) +*114 (Wire +uid 1722,0 +shape (OrthoPolyLine +uid 1723,0 +va (VaSet +vasetType 3 +) +xt "99000,29000,106250,29000" +pts [ +"99000,29000" +"106250,29000" +] +) +end &69 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1728,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1729,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,27600,104700,29000" +st "CS_X_n" +blo "99000,28800" +tm "WireNameMgr" +) +) +on &83 +) +*115 (Wire +uid 1730,0 +shape (OrthoPolyLine +uid 1731,0 +va (VaSet +vasetType 3 +) +xt "99000,47000,106250,47000" +pts [ +"99000,47000" +"106250,47000" +] +) +end &78 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1736,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1737,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,45600,103500,47000" +st "SDI_Y" +blo "99000,46800" +tm "WireNameMgr" +) +) +on &88 +) +*116 (Wire +uid 1738,0 +shape (OrthoPolyLine +uid 1739,0 +va (VaSet +vasetType 3 +) +xt "99000,49000,106250,49000" +pts [ +"99000,49000" +"106250,49000" +] +) +end &76 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1744,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1745,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,47600,103700,49000" +st "CLK_Y" +blo "99000,48800" +tm "WireNameMgr" +) +) +on &87 +) +*117 (Wire +uid 1746,0 +shape (OrthoPolyLine +uid 1747,0 +va (VaSet +vasetType 3 +) +xt "99000,33000,106250,33000" +pts [ +"99000,33000" +"106250,33000" +] +) +end &68 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1752,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1753,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,31600,103800,33000" +st "CLK_X" +blo "99000,32800" +tm "WireNameMgr" +) +) +on &84 +) +*118 (Wire +uid 1754,0 +shape (OrthoPolyLine +uid 1755,0 +va (VaSet +vasetType 3 +) +xt "99000,31000,106250,31000" +pts [ +"99000,31000" +"106250,31000" +] +) +end &70 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1760,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1761,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,29600,103600,31000" +st "SDI_X" +blo "99000,30800" +tm "WireNameMgr" +) +) +on &85 +) +*119 (Wire +uid 1762,0 +shape (OrthoPolyLine +uid 1763,0 +va (VaSet +vasetType 3 +) +xt "99000,45000,106250,45000" +pts [ +"99000,45000" +"106250,45000" +] +) +end &77 +es 0 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1768,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1769,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,43600,104600,45000" +st "CS_Y_n" +blo "99000,44800" +tm "WireNameMgr" +) +) +on &86 +) +*120 (Wire +uid 1772,0 +shape (OrthoPolyLine +uid 1773,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "115750,29000,123000,29000" +pts [ +"115750,29000" +"123000,29000" +] +) +start &71 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 1776,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1777,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,27600,121950,29000" +st "IoutX" +blo "117750,28800" +tm "WireNameMgr" +) +) +on &89 +) +*121 (Wire +uid 1780,0 +shape (OrthoPolyLine +uid 1781,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "115750,45000,123000,45000" +pts [ +"115750,45000" +"123000,45000" +] +) +start &79 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 1784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1785,0 +va (VaSet +font "Verdana,12,0" +) +xt "117750,43600,121850,45000" +st "IoutY" +blo "117750,44800" +tm "WireNameMgr" +) +) +on &90 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *122 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*123 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*124 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*126 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*127 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*128 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*129 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*130 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*131 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1990,-1990,138203,74180" +cachedDiagramExtent "0,0,135850,62000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 47 +yMargin 47 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +scale 80 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 2208,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*132 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*133 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*134 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*135 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*136 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*137 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*138 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*139 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*140 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*142 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*143 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*144 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*145 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*146 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*147 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*148 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*149 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*150 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*151 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*152 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7600,7000,8600" +st "Declarations" +blo "0,8400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,8600,3400,9600" +st "Ports:" +blo "0,9400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,9600,4800,10600" +st "Pre User:" +blo "0,10400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,10600,22100,15600" +st "constant addressBitNb: positive := 24; +constant dataBitNb: positive := 16; +constant signalBitNb: positive := 16; +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,15600,9000,16600" +st "Diagram Signals:" +blo "0,16400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,7600,6000,8600" +st "Post User:" +blo "0,8400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,7600,0,7600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 23,0 +usingSuid 1 +emptyRow *153 (LEmptyRow +) +uid 1837,0 +optionalChildren [ +*154 (RefLabelRowHdr +) +*155 (TitleRowHdr +) +*156 (FilterRowHdr +) +*157 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*158 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*159 (GroupColHdr +tm "GroupColHdrMgr" +) +*160 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*161 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*162 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*163 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*164 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*165 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*166 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 20 +suid 1,0 +) +) +uid 1790,0 +) +*167 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 10 +suid 2,0 +) +) +uid 1792,0 +) +*168 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cs" +t "std_ulogic" +o 11 +suid 3,0 +) +) +uid 1794,0 +) +*169 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrL" +t "std_ulogic" +o 23 +suid 4,0 +) +) +uid 1796,0 +) +*170 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrH" +t "std_ulogic" +o 22 +suid 5,0 +) +) +uid 1798,0 +) +*171 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rd" +t "std_ulogic" +o 19 +suid 6,0 +) +) +uid 1800,0 +) +*172 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outY" +t "std_ulogic" +o 17 +suid 7,0 +) +) +uid 1802,0 +) +*173 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outX" +t "std_ulogic" +o 16 +suid 8,0 +) +) +uid 1804,0 +) +*174 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 9,0 +) +) +uid 1806,0 +) +*175 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 10,0 +) +) +uid 1808,0 +) +*176 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 9 +suid 11,0 +) +) +uid 1810,0 +) +*177 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 14 +suid 12,0 +) +) +uid 1812,0 +) +*178 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 15 +suid 13,0 +) +) +uid 1814,0 +) +*179 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 21 +suid 14,0 +) +) +uid 1816,0 +) +*180 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outZ" +t "std_ulogic" +o 18 +suid 15,0 +) +) +uid 1818,0 +) +*181 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "CS_X_n" +t "std_ulogic" +o 3 +suid 16,0 +) +) +uid 1820,0 +) +*182 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "CLK_X" +t "std_ulogic" +o 1 +suid 17,0 +) +) +uid 1822,0 +) +*183 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "SDI_X" +t "std_ulogic" +o 7 +suid 18,0 +) +) +uid 1824,0 +) +*184 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "CS_Y_n" +t "std_ulogic" +o 4 +suid 19,0 +) +) +uid 1826,0 +) +*185 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "CLK_Y" +t "std_ulogic" +o 2 +suid 20,0 +) +) +uid 1828,0 +) +*186 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "SDI_Y" +t "std_ulogic" +o 8 +suid 21,0 +) +) +uid 1830,0 +) +*187 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "IoutX" +t "natural" +o 5 +suid 22,0 +) +) +uid 1832,0 +) +*188 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "IoutY" +t "natural" +o 6 +suid 23,0 +) +) +uid 1834,0 +) +] +) +pdm (PhysicalDM +uid 1850,0 +optionalChildren [ +*189 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *190 (MRCItem +litem &153 +pos 23 +dimension 20 +) +uid 1852,0 +optionalChildren [ +*191 (MRCItem +litem &154 +pos 0 +dimension 20 +uid 1853,0 +) +*192 (MRCItem +litem &155 +pos 1 +dimension 23 +uid 1854,0 +) +*193 (MRCItem +litem &156 +pos 2 +hidden 1 +dimension 20 +uid 1855,0 +) +*194 (MRCItem +litem &166 +pos 0 +dimension 20 +uid 1791,0 +) +*195 (MRCItem +litem &167 +pos 1 +dimension 20 +uid 1793,0 +) +*196 (MRCItem +litem &168 +pos 2 +dimension 20 +uid 1795,0 +) +*197 (MRCItem +litem &169 +pos 3 +dimension 20 +uid 1797,0 +) +*198 (MRCItem +litem &170 +pos 4 +dimension 20 +uid 1799,0 +) +*199 (MRCItem +litem &171 +pos 5 +dimension 20 +uid 1801,0 +) +*200 (MRCItem +litem &172 +pos 6 +dimension 20 +uid 1803,0 +) +*201 (MRCItem +litem &173 +pos 7 +dimension 20 +uid 1805,0 +) +*202 (MRCItem +litem &174 +pos 8 +dimension 20 +uid 1807,0 +) +*203 (MRCItem +litem &175 +pos 9 +dimension 20 +uid 1809,0 +) +*204 (MRCItem +litem &176 +pos 10 +dimension 20 +uid 1811,0 +) +*205 (MRCItem +litem &177 +pos 11 +dimension 20 +uid 1813,0 +) +*206 (MRCItem +litem &178 +pos 12 +dimension 20 +uid 1815,0 +) +*207 (MRCItem +litem &179 +pos 13 +dimension 20 +uid 1817,0 +) +*208 (MRCItem +litem &180 +pos 14 +dimension 20 +uid 1819,0 +) +*209 (MRCItem +litem &181 +pos 15 +dimension 20 +uid 1821,0 +) +*210 (MRCItem +litem &182 +pos 16 +dimension 20 +uid 1823,0 +) +*211 (MRCItem +litem &183 +pos 17 +dimension 20 +uid 1825,0 +) +*212 (MRCItem +litem &184 +pos 18 +dimension 20 +uid 1827,0 +) +*213 (MRCItem +litem &185 +pos 19 +dimension 20 +uid 1829,0 +) +*214 (MRCItem +litem &186 +pos 20 +dimension 20 +uid 1831,0 +) +*215 (MRCItem +litem &187 +pos 21 +dimension 20 +uid 1833,0 +) +*216 (MRCItem +litem &188 +pos 22 +dimension 20 +uid 1835,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1856,0 +optionalChildren [ +*217 (MRCItem +litem &157 +pos 0 +dimension 20 +uid 1857,0 +) +*218 (MRCItem +litem &159 +pos 1 +dimension 50 +uid 1858,0 +) +*219 (MRCItem +litem &160 +pos 2 +dimension 100 +uid 1859,0 +) +*220 (MRCItem +litem &161 +pos 3 +dimension 50 +uid 1860,0 +) +*221 (MRCItem +litem &162 +pos 4 +dimension 100 +uid 1861,0 +) +*222 (MRCItem +litem &163 +pos 5 +dimension 100 +uid 1862,0 +) +*223 (MRCItem +litem &164 +pos 6 +dimension 50 +uid 1863,0 +) +*224 (MRCItem +litem &165 +pos 7 +dimension 80 +uid 1864,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1851,0 +vaOverrides [ +] +) +] +) +uid 1836,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *225 (LEmptyRow +) +uid 1866,0 +optionalChildren [ +*226 (RefLabelRowHdr +) +*227 (TitleRowHdr +) +*228 (FilterRowHdr +) +*229 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*230 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*231 (GroupColHdr +tm "GroupColHdrMgr" +) +*232 (NameColHdr +tm "GenericNameColHdrMgr" +) +*233 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*234 (InitColHdr +tm "GenericValueColHdrMgr" +) +*235 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*236 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1878,0 +optionalChildren [ +*237 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *238 (MRCItem +litem &225 +pos 0 +dimension 20 +) +uid 1880,0 +optionalChildren [ +*239 (MRCItem +litem &226 +pos 0 +dimension 20 +uid 1881,0 +) +*240 (MRCItem +litem &227 +pos 1 +dimension 23 +uid 1882,0 +) +*241 (MRCItem +litem &228 +pos 2 +hidden 1 +dimension 20 +uid 1883,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1884,0 +optionalChildren [ +*242 (MRCItem +litem &229 +pos 0 +dimension 20 +uid 1885,0 +) +*243 (MRCItem +litem &231 +pos 1 +dimension 50 +uid 1886,0 +) +*244 (MRCItem +litem &232 +pos 2 +dimension 100 +uid 1887,0 +) +*245 (MRCItem +litem &233 +pos 3 +dimension 100 +uid 1888,0 +) +*246 (MRCItem +litem &234 +pos 4 +dimension 50 +uid 1889,0 +) +*247 (MRCItem +litem &235 +pos 5 +dimension 50 +uid 1890,0 +) +*248 (MRCItem +litem &236 +pos 6 +dimension 80 +uid 1891,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1879,0 +vaOverrides [ +] +) +] +) +uid 1865,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb new file mode 100644 index 0000000..4157d7a --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb @@ -0,0 +1,1242 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@periph@blanking_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamerPeriphBlanking_tb" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerPeriphBlanking_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:30:06" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerPeriphBlanking_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@periph@blanking_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamerPeriphBlanking_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:30:06" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,31600,15700" +st "SystemOnChip_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,34600,16600" +st "beamerPeriphBlanking_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1800,44500,2700" +st "User:" +blo "42000,2500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,44000,2700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tester/interface b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tester/interface new file mode 100644 index 0000000..49eb239 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@periph@blanking_tester/interface @@ -0,0 +1,1408 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\beamerPeriphBlanking_tester" +) +(vvPair +variable "date" +value "04/24/08" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "24" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE1635" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\beamerPeriphBlanking_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "13:33:53" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +m 1 +o 11 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,22200" +st "addr : (addressBitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,73500,6000" +st "addr : OUT unsigned (addressBitNb-1 DOWNTO 0) ; +" +) +) +*3 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 6 +d 0 +s 0 +sf 1 +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "40400,7000,41600,9700" +st "clock" +ju 2 +blo "41400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,61500,6800" +st "clock : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +n "cs" +t "std_ulogic" +m 1 +o 3 +r 7 +d 0 +s 0 +sf 1 +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "36400,7000,37600,8200" +st "cs" +ju 2 +blo "37400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,61500,7600" +st "cs : OUT std_ulogic ; +" +) +) +*5 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +m 1 +o 10 +r 8 +d 0 +s 0 +sf 1 +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "24400,7000,25600,21500" +st "dataIn : (dataBitNb-1:0)" +ju 2 +blo "25400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,76500,8400" +st "dataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +) +*6 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "26400,7000,27600,22300" +st "dataOut : (dataBitNb-1:0)" +ju 2 +blo "27400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,76000,2800" +st "dataOut : IN std_logic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +) +*7 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78625,5250,79375,6000" +) +n "outX" +t "std_ulogic" +o 8 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "78400,7000,79600,9300" +st "outX" +ju 2 +blo "79400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,61500,3600" +st "outX : IN std_ulogic ; +" +) +) +*8 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76625,5250,77375,6000" +) +n "outY" +t "std_ulogic" +o 7 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "76400,7000,77600,9300" +st "outY" +ju 2 +blo "77400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,61500,4400" +st "outY : IN std_ulogic ; +" +) +) +*9 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74625,5250,75375,6000" +) +n "outZ" +t "std_ulogic" +o 15 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "74400,7000,75600,9300" +st "outZ" +ju 2 +blo "75400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,61500,5200" +st "outZ : IN std_ulogic ; +" +) +) +*10 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "rd" +t "std_ulogic" +m 1 +o 6 +r 9 +d 0 +s 0 +sf 1 +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 94,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,8000" +st "rd" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,61500,9200" +st "rd : OUT std_ulogic ; +" +) +) +*11 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 10 +d 0 +s 0 +sf 1 +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 99,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "42400,7000,43600,9600" +st "reset" +ju 2 +blo "43400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,61500,10000" +st "reset : OUT std_ulogic ; +" +) +) +*12 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70625,5250,71375,6000" +) +n "selSinCos" +t "std_ulogic" +m 1 +o 14 +r 11 +d 0 +s 0 +sf 1 +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 104,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "70400,7000,71600,12100" +st "selSinCos" +ju 2 +blo "71400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,61500,10800" +st "selSinCos : OUT std_ulogic ; +" +) +) +*13 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +n "wrH" +t "std_ulogic" +m 1 +o 5 +r 12 +d 0 +s 0 +sf 1 +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 109,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "32400,7000,33600,8900" +st "wrH" +ju 2 +blo "33400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,61500,11600" +st "wrH : OUT std_ulogic ; +" +) +) +*14 (CptPort +uid 111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 112,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +n "wrL" +t "std_ulogic" +m 1 +o 4 +r 13 +d 0 +s 0 +sf 1 +tg (CPTG +uid 113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 114,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "34400,7000,35600,8700" +st "wrL" +ju 2 +blo "35400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 115,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11600,60500,12400" +st "wrL : OUT std_ulogic +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,87000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "42650,8800,49850,10000" +st "Curves_test" +blo "42650,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "42650,10000,59350,11200" +st "beamerPeriphBlanking_tester" +blo "42650,11000" +) +) +gi *15 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,6000,40000,9200" +st "Generic Declarations + +dataBitNb positive 16 +addressBitNb positive 24 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*16 (Grouping +uid 16,0 +optionalChildren [ +*17 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*19 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*20 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*21 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*22 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*23 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*24 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*25 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*26 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52100,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *27 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*28 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*29 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "beamerPeriphBlanking_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *30 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *31 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,12400,44000,13400" +st "User:" +blo "42000,13200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13400,44000,13400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 115,0 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/struct.bd b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/struct.bd new file mode 100644 index 0000000..f22f293 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/struct.bd @@ -0,0 +1,4189 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "SystemOnChip_test" +duName "beamerSoc_tester" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 1616,0 +) +(Instance +name "I_filt" +duLibraryName "WaveformGenerator" +duName "lowpass" +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +mwi 0 +uid 2852,0 +) +(Instance +name "I_DUT" +duLibraryName "SystemOnChip" +duName "beamerSoc" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 3413,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb3" +number "3" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamerSoc_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerSoc_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:06:16" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerSoc_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamerSoc_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:06:16" +) +(vvPair +variable "unit" +value "beamerSoc_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,73000,89000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,73500,72200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,69000,93000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,69500,89200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,71000,89000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,71500,72200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,71000,72000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,71500,68200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,70000,109000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,70200,103300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "93000,69000,109000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "93200,69500,93200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,69000,89000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "73350,69400,83650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,72000,72000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,72500,68200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,73000,72000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,73500,68200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,72000,89000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,72500,72200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "68000,69000,109000,74000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 1616,0 +shape (Rectangle +uid 1617,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "19000,58000,101000,66000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1618,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1619,0 +va (VaSet +) +xt "18600,66200,30200,67400" +st "SystemOnChip_test" +blo "18600,67200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1620,0 +va (VaSet +) +xt "18600,67400,29200,68600" +st "beamerSoc_tester" +blo "18600,68400" +tm "BlkNameMgr" +) +*15 (Text +uid 1621,0 +va (VaSet +) +xt "18600,68600,23400,69800" +st "I_tester" +blo "18600,69600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1622,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1623,0 +text (MLText +uid 1624,0 +va (VaSet +) +xt "19000,70000,45200,73600" +st "ioNb = ioNb ( positive ) +signalBitNb = signalBitNb ( positive ) +clockFrequency = clockFrequency ( real ) +" +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*16 (Net +uid 2464,0 +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 18,0 +) +declText (MLText +uid 2465,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,31400,15500,32400" +st "SIGNAL reset : std_ulogic +" +) +) +*17 (Net +uid 2472,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 19,0 +) +declText (MLText +uid 2473,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,21200,15500,22200" +st "SIGNAL clock : std_ulogic +" +) +) +*18 (Net +uid 2480,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 20,0 +) +declText (MLText +uid 2481,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,19200,15800,20200" +st "SIGNAL RxD : std_ulogic +" +) +) +*19 (Net +uid 2488,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 21,0 +) +declText (MLText +uid 2489,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,20200,15700,21200" +st "SIGNAL TxD : std_ulogic +" +) +) +*20 (Net +uid 2496,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 22,0 +) +declText (MLText +uid 2497,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,32400,16100,33400" +st "SIGNAL selSinCos : std_ulogic +" +) +) +*21 (Net +uid 2504,0 +decl (Decl +n "outY" +t "std_ulogic" +o 11 +suid 23,0 +) +declText (MLText +uid 2505,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,30400,15600,31400" +st "SIGNAL outY : std_ulogic +" +) +) +*22 (Net +uid 2512,0 +decl (Decl +n "outX" +t "std_ulogic" +o 10 +suid 24,0 +) +declText (MLText +uid 2513,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,29400,15600,30400" +st "SIGNAL outX : std_ulogic +" +) +) +*23 (HdlText +uid 2542,0 +optionalChildren [ +*24 (EmbeddedText +uid 2548,0 +commentText (CommentText +uid 2549,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2550,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "69000,31000,85000,41000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2551,0 +va (VaSet +) +xt "69200,31200,84200,40800" +st " +tristate: process(ioEn, ioOut) +begin + for index in io'range loop + if ioEn(index) = '1' then + io(index) <= ioOut(index); + else + io(index) <= 'Z'; + end if; + end loop; +end process tristate; + +ioIn <= std_ulogic_vector(io); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 2543,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "69000,30000,85000,42000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2544,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 2545,0 +va (VaSet +font "Verdana,8,1" +) +xt "68850,42000,71150,43000" +st "eb1" +blo "68850,42800" +tm "HdlTextNameMgr" +) +*26 (Text +uid 2546,0 +va (VaSet +font "Verdana,8,1" +) +xt "68850,43000,70050,44000" +st "1" +blo "68850,43800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 2547,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "69250,40250,70750,41750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*27 (Net +uid 2584,0 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 4 +suid 26,0 +) +declText (MLText +uid 2585,0 +va (VaSet +) +xt "2000,22200,32900,23400" +st "SIGNAL io : std_logic_vector(ioNb-1 DOWNTO 0) +" +) +) +*28 (Net +uid 2586,0 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 6 +suid 27,0 +) +declText (MLText +uid 2587,0 +va (VaSet +) +xt "2000,24600,34000,25800" +st "SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*29 (Net +uid 2588,0 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 7 +suid 28,0 +) +declText (MLText +uid 2589,0 +va (VaSet +) +xt "2000,25800,34500,27000" +st "SIGNAL ioOut : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*30 (Net +uid 2590,0 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 5 +suid 29,0 +) +declText (MLText +uid 2591,0 +va (VaSet +) +xt "2000,23400,34200,24600" +st "SIGNAL ioEn : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*31 (HdlText +uid 2843,0 +optionalChildren [ +*32 (EmbeddedText +uid 2848,0 +commentText (CommentText +uid 2849,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2850,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "45000,13000,61000,15000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2851,0 +va (VaSet +) +xt "45200,13200,60700,14400" +st " +lowpassInY <= (others => outY); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 2844,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "45000,12000,61000,16000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2845,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 2846,0 +va (VaSet +) +xt "45400,16000,48000,17200" +st "eb3" +blo "45400,17000" +tm "HdlTextNameMgr" +) +*34 (Text +uid 2847,0 +va (VaSet +) +xt "45400,17000,46800,18200" +st "3" +blo "45400,18000" +tm "HdlTextNumberMgr" +) +] +) +) +*35 (SaComponent +uid 2852,0 +optionalChildren [ +*36 (CptPort +uid 2861,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2862,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,17625,69000,18375" +) +tg (CPTG +uid 2863,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2864,0 +va (VaSet +) +xt "70000,17400,73400,18600" +st "clock" +blo "70000,18400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*37 (CptPort +uid 2865,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2866,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "85000,13625,85750,14375" +) +tg (CPTG +uid 2867,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2868,0 +va (VaSet +) +xt "76700,13400,84000,14600" +st "lowpassOut" +ju 2 +blo "84000,14400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*38 (CptPort +uid 2869,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2870,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,19625,69000,20375" +) +tg (CPTG +uid 2871,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2872,0 +va (VaSet +) +xt "70000,19400,73300,20600" +st "reset" +blo "70000,20400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +*39 (CptPort +uid 2873,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2874,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "68250,13625,69000,14375" +) +tg (CPTG +uid 2875,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2876,0 +va (VaSet +) +xt "70000,13400,75800,14600" +st "lowpassIn" +blo "70000,14400" +) +) +thePort (LogicalPort +decl (Decl +n "lowpassIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +) +) +) +] +shape (Rectangle +uid 2853,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "69000,10000,85000,22000" +) +oxt "32000,10000,48000,22000" +ttg (MlTextGroup +uid 2854,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 2855,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,21800,81100,23000" +st "WaveformGenerator" +blo "69600,22800" +tm "BdLibraryNameMgr" +) +*41 (Text +uid 2856,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,23000,74200,24200" +st "lowpass" +blo "69600,24000" +tm "CptNameMgr" +) +*42 (Text +uid 2857,0 +va (VaSet +font "Verdana,9,1" +) +xt "69600,24200,72900,25400" +st "I_filt" +blo "69600,25200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2858,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2859,0 +text (MLText +uid 2860,0 +va (VaSet +font "Verdana,8,0" +) +xt "69000,25600,89800,27600" +st "signalBitNb = signalBitNb ( positive ) +shiftBitNb = lowpassShiftBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "signalBitNb" +) +(GiElement +name "shiftBitNb" +type "positive" +value "lowpassShiftBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*43 (Net +uid 2901,0 +decl (Decl +n "lowpassInY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 30,0 +) +declText (MLText +uid 2902,0 +va (VaSet +) +xt "2000,27000,35000,28200" +st "SIGNAL lowpassInY : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*44 (Net +uid 2903,0 +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 31,0 +) +declText (MLText +uid 2904,0 +va (VaSet +) +xt "2000,28200,35500,29400" +st "SIGNAL lowpassOutY : unsigned(signalBitNb-1 DOWNTO 0) +" +) +) +*45 (SaComponent +uid 3413,0 +optionalChildren [ +*46 (CptPort +uid 3369,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3370,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,45625,37000,46375" +) +tg (CPTG +uid 3371,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3372,0 +va (VaSet +) +xt "38000,45400,41400,46600" +st "clock" +blo "38000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +) +*47 (CptPort +uid 3373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3374,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,41625,53750,42375" +) +tg (CPTG +uid 3375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3376,0 +va (VaSet +) +xt "49001,41400,52001,42600" +st "outX" +ju 2 +blo "52001,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*48 (CptPort +uid 3377,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3378,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,43625,53750,44375" +) +tg (CPTG +uid 3379,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3380,0 +va (VaSet +) +xt "49001,43400,52001,44600" +st "outY" +ju 2 +blo "52001,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*49 (CptPort +uid 3381,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3382,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,45625,53750,46375" +) +tg (CPTG +uid 3383,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3384,0 +va (VaSet +) +xt "46201,45400,52001,46600" +st "selSinCos" +ju 2 +blo "52001,46400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*50 (CptPort +uid 3385,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3386,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,47625,37000,48375" +) +tg (CPTG +uid 3387,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3388,0 +va (VaSet +) +xt "38000,47400,41300,48600" +st "reset" +blo "38000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 2017,0 +) +) +) +*51 (CptPort +uid 3389,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3390,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,33625,37000,34375" +) +tg (CPTG +uid 3391,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3392,0 +va (VaSet +) +xt "38000,33400,40800,34600" +st "TxD" +blo "38000,34400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 2018,0 +) +) +) +*52 (CptPort +uid 3393,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3394,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,35625,37000,36375" +) +tg (CPTG +uid 3395,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3396,0 +va (VaSet +) +xt "38000,35400,40800,36600" +st "RxD" +blo "38000,36400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 2019,0 +) +) +) +*53 (CptPort +uid 3397,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3398,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,33625,53750,34375" +) +tg (CPTG +uid 3399,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3400,0 +va (VaSet +) +xt "49100,33400,52000,34600" +st "ioEn" +ju 2 +blo "52000,34400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 2020,0 +) +) +) +*54 (CptPort +uid 3401,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3402,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,35625,53750,36375" +) +tg (CPTG +uid 3403,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3404,0 +va (VaSet +) +xt "48500,35400,52000,36600" +st "ioOut" +ju 2 +blo "52000,36400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 2021,0 +) +) +) +*55 (CptPort +uid 3405,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3406,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,37625,53750,38375" +) +tg (CPTG +uid 3407,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3408,0 +va (VaSet +) +xt "49300,37400,52000,38600" +st "ioIn" +ju 2 +blo "52000,38400" +) +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2022,0 +) +) +) +*56 (CptPort +uid 3409,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3410,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44625,29250,45375,30000" +) +tg (CPTG +uid 3411,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3412,0 +va (VaSet +) +xt "43000,31000,47600,32200" +st "testOut" +ju 2 +blo "47600,32000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 2024,0 +) +) +) +] +shape (Rectangle +uid 3414,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,30000,53000,50000" +) +oxt "36000,10000,52000,30000" +ttg (MlTextGroup +uid 3415,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 3416,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,49800,46000,51000" +st "SystemOnChip" +blo "37600,50800" +tm "BdLibraryNameMgr" +) +*58 (Text +uid 3417,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,51000,43600,52200" +st "beamerSoc" +blo "37600,52000" +tm "CptNameMgr" +) +*59 (Text +uid 3418,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,52200,41300,53400" +st "I_DUT" +blo "37600,53200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3419,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3420,0 +text (MLText +uid 3421,0 +va (VaSet +font "Verdana,8,0" +) +xt "37000,53600,62800,56600" +st "ioNb = ioNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) +patternAddressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*60 (Wire +uid 2466,0 +shape (OrthoPolyLine +uid 2467,0 +va (VaSet +vasetType 3 +) +xt "35000,48000,36250,58000" +pts [ +"36250,48000" +"35000,48000" +"35000,58000" +] +) +start &50 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2470,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2471,0 +va (VaSet +font "Verdana,12,0" +) +xt "31250,46600,35350,48000" +st "reset" +blo "31250,47800" +tm "WireNameMgr" +) +) +on &16 +) +*61 (Wire +uid 2474,0 +shape (OrthoPolyLine +uid 2475,0 +va (VaSet +vasetType 3 +) +xt "33000,46000,36250,58000" +pts [ +"36250,46000" +"33000,46000" +"33000,58000" +] +) +start &46 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2478,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2479,0 +va (VaSet +font "Verdana,12,0" +) +xt "31250,44600,35050,46000" +st "clock" +blo "31250,45800" +tm "WireNameMgr" +) +) +on &17 +) +*62 (Wire +uid 2482,0 +shape (OrthoPolyLine +uid 2483,0 +va (VaSet +vasetType 3 +) +xt "29000,36000,36250,58000" +pts [ +"36250,36000" +"29000,36000" +"29000,58000" +] +) +start &52 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2486,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2487,0 +va (VaSet +font "Verdana,12,0" +) +xt "32250,34600,35450,36000" +st "RxD" +blo "32250,35800" +tm "WireNameMgr" +) +) +on &18 +) +*63 (Wire +uid 2490,0 +shape (OrthoPolyLine +uid 2491,0 +va (VaSet +vasetType 3 +) +xt "27000,34000,36250,58000" +pts [ +"36250,34000" +"27000,34000" +"27000,58000" +] +) +start &51 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2494,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2495,0 +va (VaSet +font "Verdana,12,0" +) +xt "32250,32600,35350,34000" +st "TxD" +blo "32250,33800" +tm "WireNameMgr" +) +) +on &19 +) +*64 (Wire +uid 2498,0 +shape (OrthoPolyLine +uid 2499,0 +va (VaSet +vasetType 3 +) +xt "53750,46000,57000,58000" +pts [ +"53750,46000" +"57000,46000" +"57000,58000" +] +) +start &49 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2502,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2503,0 +va (VaSet +font "Verdana,12,0" +) +xt "55750,44600,62650,46000" +st "selSinCos" +blo "55750,45800" +tm "WireNameMgr" +) +) +on &20 +) +*65 (Wire +uid 2506,0 +optionalChildren [ +*66 (BdJunction +uid 2911,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2912,0 +va (VaSet +vasetType 1 +) +xt "58600,43600,59400,44400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 2507,0 +va (VaSet +vasetType 3 +) +xt "53750,44000,59000,58000" +pts [ +"53750,44000" +"59000,44000" +"59000,58000" +] +) +start &48 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2510,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2511,0 +va (VaSet +font "Verdana,12,0" +) +xt "55750,42600,59350,44000" +st "outY" +blo "55750,43800" +tm "WireNameMgr" +) +) +on &21 +) +*67 (Wire +uid 2514,0 +shape (OrthoPolyLine +uid 2515,0 +va (VaSet +vasetType 3 +) +xt "53750,42000,61000,58000" +pts [ +"53750,42000" +"61000,42000" +"61000,58000" +] +) +start &47 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2518,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2519,0 +va (VaSet +font "Verdana,12,0" +) +xt "55750,40600,59450,42000" +st "outX" +blo "55750,41800" +tm "WireNameMgr" +) +) +on &22 +) +*68 (Wire +uid 2552,0 +shape (OrthoPolyLine +uid 2553,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "53750,36000,69000,36000" +pts [ +"53750,36000" +"69000,36000" +] +) +start &54 +end &23 +sat 32 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2558,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2559,0 +va (VaSet +font "Verdana,12,0" +) +xt "55750,34600,59950,36000" +st "ioOut" +blo "55750,35800" +tm "WireNameMgr" +) +) +on &29 +) +*69 (Wire +uid 2560,0 +shape (OrthoPolyLine +uid 2561,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "53750,34000,69000,34000" +pts [ +"53750,34000" +"69000,34000" +] +) +start &53 +end &23 +sat 32 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2566,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2567,0 +va (VaSet +font "Verdana,12,0" +) +xt "55750,32600,59250,34000" +st "ioEn" +blo "55750,33800" +tm "WireNameMgr" +) +) +on &30 +) +*70 (Wire +uid 2568,0 +shape (OrthoPolyLine +uid 2569,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "85000,34000,89000,58000" +pts [ +"85000,34000" +"89000,34000" +"89000,58000" +] +) +start &23 +end &12 +sat 4 +eat 4 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2574,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2575,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,32600,88900,34000" +st "io" +blo "87000,33800" +tm "WireNameMgr" +) +) +on &27 +) +*71 (Wire +uid 2576,0 +shape (OrthoPolyLine +uid 2577,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "53750,38000,69000,38000" +pts [ +"53750,38000" +"69000,38000" +] +) +start &55 +end &23 +sat 32 +eat 2 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2582,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2583,0 +va (VaSet +font "Verdana,12,0" +) +xt "55750,36600,58950,38000" +st "ioIn" +blo "55750,37800" +tm "WireNameMgr" +) +) +on &28 +) +*72 (Wire +uid 2877,0 +shape (OrthoPolyLine +uid 2878,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "61000,14000,68250,14000" +pts [ +"68250,14000" +"61000,14000" +] +) +start &39 +end &31 +ss 0 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2882,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,12600,71800,14000" +st "lowpassInY" +blo "63000,13800" +tm "WireNameMgr" +) +) +on &43 +) +*73 (Wire +uid 2883,0 +shape (OrthoPolyLine +uid 2884,0 +va (VaSet +vasetType 3 +) +xt "65000,18000,68250,18000" +pts [ +"65000,18000" +"68250,18000" +] +) +end &36 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2887,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2888,0 +va (VaSet +font "Verdana,12,0" +) +xt "65000,16600,68800,18000" +st "clock" +blo "65000,17800" +tm "WireNameMgr" +) +) +on &17 +) +*74 (Wire +uid 2889,0 +shape (OrthoPolyLine +uid 2890,0 +va (VaSet +vasetType 3 +) +xt "65000,20000,68250,20000" +pts [ +"65000,20000" +"68250,20000" +] +) +end &38 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2893,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2894,0 +va (VaSet +font "Verdana,12,0" +) +xt "65000,18600,69100,20000" +st "reset" +blo "65000,19800" +tm "WireNameMgr" +) +) +on &16 +) +*75 (Wire +uid 2895,0 +shape (OrthoPolyLine +uid 2896,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "85750,14000,93000,58000" +pts [ +"85750,14000" +"93000,14000" +"93000,58000" +] +) +start &37 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2899,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2900,0 +va (VaSet +font "Verdana,12,0" +) +xt "87750,12600,97550,14000" +st "lowpassOutY" +blo "87750,13800" +tm "WireNameMgr" +) +) +on &44 +) +*76 (Wire +uid 2905,0 +shape (OrthoPolyLine +uid 2906,0 +va (VaSet +vasetType 3 +) +xt "53000,16000,59000,44000" +pts [ +"59000,44000" +"59000,20000" +"53000,20000" +"53000,16000" +] +) +start &66 +end &31 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2909,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2910,0 +va (VaSet +font "Verdana,12,0" +) +xt "54000,18600,57600,20000" +st "outY" +blo "54000,19800" +tm "WireNameMgr" +) +) +on &21 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *77 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*79 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*81 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*82 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*83 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*84 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*85 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*86 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1604,-1604,141072,75916" +cachedDiagramExtent "0,0,109000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 3478,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*88 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*89 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*91 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*92 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*94 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*95 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*97 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*98 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*100 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*101 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*103 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*105 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*107 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7200,7000,8200" +st "Declarations" +blo "0,8000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,8200,3400,9200" +st "Ports:" +blo "0,9000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,9200,4800,10200" +st "Pre User:" +blo "0,10000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,10200,22200,18200" +st "constant ioNb: positive := 8; +constant testOutBitNb: positive := 16; +constant patternAddressBitNb: positive := 9; + +constant signalBitNb: positive := 16; +constant lowpassShiftBitNb: positive := 8; +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,18200,9000,19200" +st "Diagram Signals:" +blo "0,19000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,7200,6000,8200" +st "Post User:" +blo "0,8000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,7200,0,7200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 31,0 +usingSuid 1 +emptyRow *108 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*109 (RefLabelRowHdr +) +*110 (TitleRowHdr +) +*111 (FilterRowHdr +) +*112 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*113 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*114 (GroupColHdr +tm "GroupColHdrMgr" +) +*115 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*116 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*117 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*118 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*119 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*120 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*121 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 18,0 +) +) +uid 2528,0 +) +*122 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 19,0 +) +) +uid 2530,0 +) +*123 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 20,0 +) +) +uid 2532,0 +) +*124 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 21,0 +) +) +uid 2534,0 +) +*125 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 22,0 +) +) +uid 2536,0 +) +*126 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outY" +t "std_ulogic" +o 11 +suid 23,0 +) +) +uid 2538,0 +) +*127 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "outX" +t "std_ulogic" +o 10 +suid 24,0 +) +) +uid 2540,0 +) +*128 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 4 +suid 26,0 +) +) +uid 2592,0 +) +*129 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 6 +suid 27,0 +) +) +uid 2594,0 +) +*130 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 7 +suid 28,0 +) +) +uid 2596,0 +) +*131 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 5 +suid 29,0 +) +) +uid 2598,0 +) +*132 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassInY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 8 +suid 30,0 +) +) +uid 2913,0 +) +*133 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 31,0 +) +) +uid 2915,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*134 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *135 (MRCItem +litem &108 +pos 13 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*136 (MRCItem +litem &109 +pos 0 +dimension 20 +uid 1337,0 +) +*137 (MRCItem +litem &110 +pos 1 +dimension 23 +uid 1338,0 +) +*138 (MRCItem +litem &111 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*139 (MRCItem +litem &121 +pos 0 +dimension 20 +uid 2529,0 +) +*140 (MRCItem +litem &122 +pos 1 +dimension 20 +uid 2531,0 +) +*141 (MRCItem +litem &123 +pos 2 +dimension 20 +uid 2533,0 +) +*142 (MRCItem +litem &124 +pos 3 +dimension 20 +uid 2535,0 +) +*143 (MRCItem +litem &125 +pos 4 +dimension 20 +uid 2537,0 +) +*144 (MRCItem +litem &126 +pos 5 +dimension 20 +uid 2539,0 +) +*145 (MRCItem +litem &127 +pos 6 +dimension 20 +uid 2541,0 +) +*146 (MRCItem +litem &128 +pos 7 +dimension 20 +uid 2593,0 +) +*147 (MRCItem +litem &129 +pos 8 +dimension 20 +uid 2595,0 +) +*148 (MRCItem +litem &130 +pos 9 +dimension 20 +uid 2597,0 +) +*149 (MRCItem +litem &131 +pos 10 +dimension 20 +uid 2599,0 +) +*150 (MRCItem +litem &132 +pos 11 +dimension 20 +uid 2914,0 +) +*151 (MRCItem +litem &133 +pos 12 +dimension 20 +uid 2916,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*152 (MRCItem +litem &112 +pos 0 +dimension 20 +uid 1341,0 +) +*153 (MRCItem +litem &114 +pos 1 +dimension 50 +uid 1342,0 +) +*154 (MRCItem +litem &115 +pos 2 +dimension 100 +uid 1343,0 +) +*155 (MRCItem +litem &116 +pos 3 +dimension 50 +uid 1344,0 +) +*156 (MRCItem +litem &117 +pos 4 +dimension 100 +uid 1345,0 +) +*157 (MRCItem +litem &118 +pos 5 +dimension 100 +uid 1346,0 +) +*158 (MRCItem +litem &119 +pos 6 +dimension 50 +uid 1347,0 +) +*159 (MRCItem +litem &120 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *160 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*161 (RefLabelRowHdr +) +*162 (TitleRowHdr +) +*163 (FilterRowHdr +) +*164 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*165 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*166 (GroupColHdr +tm "GroupColHdrMgr" +) +*167 (NameColHdr +tm "GenericNameColHdrMgr" +) +*168 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*169 (InitColHdr +tm "GenericValueColHdrMgr" +) +*170 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*171 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*172 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *173 (MRCItem +litem &160 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*174 (MRCItem +litem &161 +pos 0 +dimension 20 +uid 1365,0 +) +*175 (MRCItem +litem &162 +pos 1 +dimension 23 +uid 1366,0 +) +*176 (MRCItem +litem &163 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*177 (MRCItem +litem &164 +pos 0 +dimension 20 +uid 1369,0 +) +*178 (MRCItem +litem &166 +pos 1 +dimension 50 +uid 1370,0 +) +*179 (MRCItem +litem &167 +pos 2 +dimension 100 +uid 1371,0 +) +*180 (MRCItem +litem &168 +pos 3 +dimension 100 +uid 1372,0 +) +*181 (MRCItem +litem &169 +pos 4 +dimension 50 +uid 1373,0 +) +*182 (MRCItem +litem &170 +pos 5 +dimension 50 +uid 1374,0 +) +*183 (MRCItem +litem &171 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/symbol.sb b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/symbol.sb new file mode 100644 index 0000000..6c292c7 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tb/symbol.sb @@ -0,0 +1,1244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@soc_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@soc_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@soc_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamerSoc_tb" +) +(vvPair +variable "date" +value "03/13/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerSoc_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/13/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:30:06" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "beamerSoc_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamer@soc_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../SystemOnChip_test/hds/beamerSoc_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:30:06" +) +(vvPair +variable "unit" +value "beamerSoc_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "22600,14800,31600,15700" +st "SystemOnChip_test" +blo "22600,15500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "22600,15700,29100,16600" +st "beamerSoc_tb" +blo "22600,16400" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1800,44500,2700" +st "User:" +blo "42000,2500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,44000,2700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tester/interface b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tester/interface new file mode 100644 index 0000000..b5137ff --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/beamer@soc_tester/interface @@ -0,0 +1,1940 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2192,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 296,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2184,0 +) +) +uid 2232,0 +) +*15 (LogPort +port (LogicalPort +m 2 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 4 +suid 2185,0 +) +) +uid 2234,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2186,0 +) +) +uid 2236,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "outX" +t "std_ulogic" +o 10 +suid 2187,0 +) +) +uid 2238,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "outY" +t "std_ulogic" +o 11 +suid 2188,0 +) +) +uid 2240,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 2189,0 +) +) +uid 2242,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 2190,0 +) +) +uid 2244,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 2191,0 +) +) +uid 2246,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 2192,0 +) +) +uid 2248,0 +) +] +) +pdm (PhysicalDM +uid 309,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 228,0 +optionalChildren [ +*25 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 231,0 +) +*26 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 233,0 +) +*27 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 235,0 +) +*28 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2233,0 +) +*29 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2235,0 +) +*30 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2237,0 +) +*31 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2239,0 +) +*32 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2241,0 +) +*33 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2243,0 +) +*34 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2245,0 +) +*35 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2247,0 +) +*36 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2249,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 229,0 +optionalChildren [ +*37 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 237,0 +) +*38 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 241,0 +) +*39 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 243,0 +) +*40 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 245,0 +) +*41 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 247,0 +) +*42 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 249,0 +) +*43 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 251,0 +) +*44 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 253,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 227,0 +vaOverrides [ +] +) +] +) +uid 295,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 311,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "ioNb" +type "positive" +value "" +) +uid 680,0 +) +*58 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "" +) +uid 1770,0 +) +*59 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 2162,0 +) +] +) +pdm (PhysicalDM +uid 312,0 +optionalChildren [ +*60 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *61 (MRCItem +litem &45 +pos 3 +dimension 20 +) +uid 267,0 +optionalChildren [ +*62 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 270,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 272,0 +) +*64 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 274,0 +) +*65 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 681,0 +) +*66 (MRCItem +litem &58 +pos 1 +dimension 20 +uid 1771,0 +) +*67 (MRCItem +litem &59 +pos 2 +dimension 20 +uid 2163,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 268,0 +optionalChildren [ +*68 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 276,0 +) +*69 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 280,0 +) +*70 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 282,0 +) +*71 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 284,0 +) +*72 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 286,0 +) +*73 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 288,0 +) +*74 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 290,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 266,0 +vaOverrides [ +] +) +] +) +uid 310,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamerSoc_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "beamerSoc_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:06:16" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "SystemOnChip_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SystemOnChip_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "beamerSoc_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamer@soc_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\SystemOnChip_test\\hds\\beamerSoc_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "15:06:16" +) +(vvPair +variable "unit" +value "beamerSoc_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 106,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 2187,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2188,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 2189,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2190,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,10800" +st "clock" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2191,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62500,6800" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2184,0 +) +) +) +*77 (CptPort +uid 2192,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 2193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84625,5250,85375,6000" +) +tg (CPTG +uid 2194,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2195,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,6000,87900,7400" +st "io" +blo "86000,7200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2196,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,73500,9200" +st "io : INOUT std_logic_vector (ioNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 2 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 4 +suid 2185,0 +) +) +) +*78 (CptPort +uid 2197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2198,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88625,5250,89375,6000" +) +tg (CPTG +uid 2199,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2200,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "88300,7000,89700,16800" +st "lowpassOutY" +ju 2 +blo "89500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2201,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,74000,3600" +st "lowpassOutY : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "lowpassOutY" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 9 +suid 2186,0 +) +) +) +*79 (CptPort +uid 2202,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2203,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 2204,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2205,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "56300,7000,57700,10700" +st "outX" +ju 2 +blo "57500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2206,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62500,4400" +st "outX : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "outX" +t "std_ulogic" +o 10 +suid 2187,0 +) +) +) +*80 (CptPort +uid 2207,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2208,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 2209,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2210,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "54300,7000,55700,10600" +st "outY" +ju 2 +blo "55500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2211,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,62500,5200" +st "outY : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "outY" +t "std_ulogic" +o 11 +suid 2188,0 +) +) +) +*81 (CptPort +uid 2212,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2213,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 2214,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2215,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,11100" +st "reset" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2216,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,62500,7600" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 2189,0 +) +) +) +*82 (CptPort +uid 2217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2218,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 2219,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2220,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,10200" +st "RxD" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2221,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62500,6000" +st "RxD : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 2190,0 +) +) +) +*83 (CptPort +uid 2222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2223,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,5250,53375,6000" +) +tg (CPTG +uid 2224,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2225,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "52300,7000,53700,13900" +st "selSinCos" +ju 2 +blo "53500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2226,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,62500,8400" +st "selSinCos : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 13 +suid 2191,0 +) +) +) +*84 (CptPort +uid 2227,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2228,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 2229,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2230,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10100" +st "TxD" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2231,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,62500,2800" +st "TxD : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 2192,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,97000,14000" +) +oxt "15000,6000,85000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "50450,8800,61550,10000" +st "SystemOnChip_test" +blo "50450,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "50450,10000,60750,11200" +st "beamerSoc_tester" +blo "50450,11000" +) +) +gi *85 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "31000,6000,45400,11000" +st "Generic Declarations + +ioNb positive +signalBitNb positive +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "" +) +(GiElement +name "signalBitNb" +type "positive" +value "" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*86 (Grouping +uid 16,0 +optionalChildren [ +*87 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*92 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *97 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*99 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "72,45,971,795" +viewArea "-500,-500,60561,53554" +cachedDiagramExtent "0,0,97000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SystemOnChip_test" +entityName "beamerSoc_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *100 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *101 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,9200,45000,10200" +st "User:" +blo "42000,10000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,10200,44000,10200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2249,0 +activeModelName "Symbol:GEN" +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/sine@gen_tester/interface b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/sine@gen_tester/interface new file mode 100644 index 0000000..2f7045f --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/sine@gen_tester/interface @@ -0,0 +1,1182 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\sine@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\sineGen_tester" +) +(vvPair +variable "date" +value "04/01/08" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2636" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\sineGen_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "12:48:44" +) +(vvPair +variable "unit" +value "sineGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +uid 61,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 163,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 164,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 165,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "28400,7000,29600,9700" +st "clock" +ju 2 +blo "29400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 166,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62000,6000" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 167,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 168,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 6 +d 0 +s 0 +sf 1 +tg (CPTG +uid 169,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 170,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,9600" +st "reset" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 171,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62000,6800" +st "reset : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 173,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 174,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 175,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "60400,7000,61600,23500" +st "sawtooth : (signalBitNb-1:0)" +ju 2 +blo "61400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 176,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,73500,2800" +st "sawtooth : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*5 (CptPort +uid 177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 178,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +n "shiftPhase" +t "std_ulogic" +m 1 +o 3 +r 7 +d 0 +s 0 +sf 1 +tg (CPTG +uid 179,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 180,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "24400,7000,25600,13700" +st "shiftPhase" +ju 2 +blo "25400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 181,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,62000,7600" +st "shiftPhase : OUT std_ulogic ; +" +) +) +*6 (CptPort +uid 182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 183,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 185,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "54400,7000,55600,21100" +st "sine : (signalBitNb-1:0)" +ju 2 +blo "55400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 186,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,73500,3600" +st "sine : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*7 (CptPort +uid 187,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 188,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 189,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 190,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "58400,7000,59600,22400" +st "square : (signalBitNb-1:0)" +ju 2 +blo "59400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 191,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,73500,4400" +st "square : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*8 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +m 1 +o 8 +r 8 +d 0 +s 0 +sf 1 +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 195,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,21200" +st "step : (phaseBitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,72000,8400" +st "step : OUT unsigned (phaseBitNb-1 DOWNTO 0) +" +) +) +*9 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 200,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "56400,7000,57600,22800" +st "triangle : (signalBitNb-1:0)" +ju 2 +blo "57400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 201,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "triangle : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,69000,14000" +) +oxt "15000,6000,61000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,8800,44800,10000" +st "Curves_test" +blo "37600,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,10000,46400,11200" +st "sineGen_tester" +blo "37600,11000" +) +) +gi *10 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,6000,30500,9200" +st "Generic Declarations + +phaseBitNb positive 16 +signalBitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "phaseBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*11 (Grouping +uid 16,0 +optionalChildren [ +*12 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*17 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*19 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*20 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*21 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,49800,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *22 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*24 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *25 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *26 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,8400,44000,9400" +st "User:" +blo "42000,9200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9400,44000,9400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 201,0 +) diff --git a/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/waveform@gen_tester/interface b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/waveform@gen_tester/interface new file mode 100644 index 0000000..c5124f5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/SystemOnChip_test/hds/waveform@gen_tester/interface @@ -0,0 +1,988 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\waveform@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\waveformGen_tester" +) +(vvPair +variable "date" +value "06/09/08" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "09" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE1647" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "month" +value "Jun" +) +(vvPair +variable "month_long" +value "June" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\waveformGen_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "17:30:05" +) +(vvPair +variable "unit" +value "waveformGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +uid 66,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 108,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 109,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 110,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "28400,7000,29600,9700" +st "clock" +ju 2 +blo "29400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 111,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,59500,2800" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 113,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +n "en" +t "std_ulogic" +m 1 +o 4 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 114,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 115,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "26400,7000,27600,8200" +st "en" +ju 2 +blo "27400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 116,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,59500,3600" +st "en : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 117,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 118,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 119,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 120,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,9600" +st "reset" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 121,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,59500,4400" +st "reset : OUT std_ulogic ; +" +) +) +*5 (CptPort +uid 122,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 123,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +m 1 +o 3 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 124,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 125,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,17400" +st "step : (bitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 126,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,67000,5200" +st "step : OUT unsigned (bitNb-1 DOWNTO 0) +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,66000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "35050,8800,42250,10000" +st "Curves_test" +blo "35050,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "35050,10000,46950,11200" +st "waveformGen_tester" +blo "35050,11000" +) +) +gi *6 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,6000,27500,8400" +st "Generic Declarations + +bitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*7 (Grouping +uid 16,0 +optionalChildren [ +*8 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,45500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*13 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*17 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51900,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *18 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*20 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "waveformGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *21 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *22 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,5200,44000,6200" +st "User:" +blo "42000,6000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6200,44000,6200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/06-07-08-09-SystemOnChip/systemOnChip.bash b/06-07-08-09-SystemOnChip/systemOnChip.bash new file mode 100755 index 0000000..553408f --- /dev/null +++ b/06-07-08-09-SystemOnChip/systemOnChip.bash @@ -0,0 +1,33 @@ +#!/bin/bash + +#=============================================================================== +# systemOnChip.bash +# Starts HDL designer based on the generic hdlDesigner.bash +# + +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +hdl_script_name="$design_directory/Scripts/hdlDesigner.bash" +export HEI_LIBS_DIR=$design_directory/../Libs + +verbose=1 +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + + +#------------------------------------------------------------------------------- +# Main script +# +if [ -n "$verbose" ] ; then + echo "$SEPARATOR" + echo "Launching HDL Designer" + echo "${INDENT}Design name is $design_name" + echo "${INDENT}Start directory is $design_directory" + echo "${INDENT}HDL designer script is $hdl_script_name" +fi + +#------------------------------------------------------------------------------- +# Launch application +# +$hdl_script_name -v -d $design_directory -n $design_name -m hds.hdp diff --git a/06-07-08-09-SystemOnChip/systemOnChip.bat b/06-07-08-09-SystemOnChip/systemOnChip.bat new file mode 100644 index 0000000..983c9d9 --- /dev/null +++ b/06-07-08-09-SystemOnChip/systemOnChip.bat @@ -0,0 +1,81 @@ +::============================================================================== +:: eln_labs.bat +:: Starts HDL designer based on the generic hdlDesigner.bat +:: +@echo off + +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +:: TO BE MODIFIED +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +:: Define environment variables to be modified +:: You can change one or more values as needed +:: +set VERBOSE=1 + +:: Define required Tools to be present +set REQUIRE_LIBS=0 +set REQUIRE_HDS=1 +set REQUIRE_MODELSIM=1 +set REQUIRE_ISE=0 +set REQUIRE_DIAMOND=1 + +:: Set project name +set design_name=%~n0 + +:: Manually override Library & Tools Folder location +::set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + +::set HDS_HOME=C:\eda\MentorGraphics\HDS +::set MODELSIM_HOME=C:\eda\MentorGraphics\Modelsim\win64 +::set ISE_VERSION=14.7 +::set ISE_HOME=C:\eda\Xilinx\%ISE_VERSION%\ISE_DS\ISE +::set LIBERO_HOME=C:\eda\Microsemi\Libero + +::set SCRATCH_DIR=C:\temp\eda\%username% +:: +::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +::------------------------------------------------------------------------------ +:: Static environment variables +:: +set SEPARATOR="--------------------------------------------------------------------------------" +set INDENT=" " +set design_directory=%~dp0 +::remove trailing backslash +if %design_directory:~-1%==\ set design_directory=%design_directory:~0,-1% +pushd %design_directory% +set hdl_script_name="%design_directory:"=%\Scripts\hdlDesigner.bat" + +::------------------------------------------------------------------------------ +:: Main script +:: +if %VERBOSE% == 1 ( + echo "%SEPARATOR:"=%" + echo "-- HDL Designer Poject" + echo "%INDENT:"=%Design name is %design_name:"=%" + echo "%INDENT:"=%Start directory is %design_directory:"=%" + echo "%INDENT:"=%HDL designer script is %hdl_script_name:"=%" + echo. +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +if %VERBOSE% == 1 ( + set command=%hdl_script_name% -v -n %design_name% -d %design_directory% +) else ( + set command=%hdl_script_name% -n %design_name% -d %design_directory% +) +echo "Launch HDL Designer Script" +echo "%INDENT:"=%%command:"=%" +echo. +call %command% + +:end +popd +echo. +echo -- %~nx0 Finished! +echo %SEPARATOR% +echo. +if not %errorlevel% lss 1 pause +goto:eof diff --git a/10-PipelinedOperators/Board/concat/pipelinedOperators.lpf b/10-PipelinedOperators/Board/concat/pipelinedOperators.lpf new file mode 100644 index 0000000..f155067 --- /dev/null +++ b/10-PipelinedOperators/Board/concat/pipelinedOperators.lpf @@ -0,0 +1,334 @@ +### For reference, see TN1262 / FPGA-TN-02032 +# .lpf file format is not really documented by Lattice, normally generated through Diamond + + +################ +#### sysCONFIG +################ + +# The BLOCK commands disable tracing of paths within clock domains (impacting overall timing score) +# It can also be used on paths if the TRACE should not consider the clock domain crossing +# like : BLOCK PATH FROM CLKNET "CLK_A" TO CLKNET "CLK_B" ; +BLOCK RESETPATHS ; +BLOCK ASYNCPATHS ; +BLOCK JTAGPATHS ; +BLOCK RD_DURING_WR_PATHS ; + + +# Not comprehensive +# dflt : CONFIG_IOVOLTAGE 1.2, 1.5, 1.8, 2.5(dflt), 3.3 voltage is 3.3V +# dflt : COMPRESS_CONFIG OFF (dflt), ON no bitstream compression +# mod : MCCLK_FREQ 2.4, 4.8, 9.7, 19.4, 38.8, 62 NOR program read @ 62MHz +# mod : MASTER_SPI_PORT DISABLE (dflt), ENABLE master SPI port stays SPI and not GPIOs, other mods disabled by dflt +# dflt : BACKGROUND_RECONFIG - no soft ERC when hot-loading bitstream (due to cosmic rays) +# dflt : DONE_PULL ON (dflt), OFF IPU on DONE pin +# dflt : DONE_EX OFF (dflt), ON not delaying end of the configuration (used for daisy chaining FPGAs) +# mod : DONE_OD OFF (dflt), ON DONE pin as open-drain instead of push-pull +# dflt : CONFIG_SECURE OFF (dflt), ON allows external access to current program +# mod : CONFIG_MODE JTAG (dflt), SSPI, SPI_SERIAL, SPI_DUAL, SPI_QUAD, SLAVE_PARALLEL, SLAVE_SERIAL +# which bus and mode is used to load configuration (for the Lattic IDE) +# dflt : TRANSFR OFF (dflt), ON if using TransFR tool from Lattice +# dflt : WAKE_UP 4 (set DONE=1 before starting user code, dflt for DONE_EX=ON) +# 21 (set DONE=1 once FPGA is already running user code, dflt for DONE_EX=OFF) +# mod : INBUF ON, OFF disable unused input buffers (not sure it impacts the ECP5 family) +SYSCONFIG MCCLK_FREQ=62 MASTER_SPI_PORT=ENABLE DONE_OD=ON CONFIG_MODE=SPI_QUAD INBUF=OFF CONFIG_IOVOLTAGE=3.3 ; +IOBUF ALLPORTS IO_TYPE=LVCMOS33 ; + +################ +#### Labs DB +################ + +### Clock and reset ### +#INPUT_SETUP ALLPORTS 50.000000 ns HOLD 10.000000 ns CLKPORT "CLK" ; +#INPUT_SETUP PORT "nRST" 50.000000 ns CLKPORT "CLK" ; + +FREQUENCY PORT "clock" 100.000000 MHz ; +LOCATE COMP "clock" SITE "K16" ; +IOBUF PORT "clock" PULLMODE=NONE ; + +LOCATE COMP "reset_n" SITE "E13" ; +GSR_NET NET "resetSynch_n"; + + +### LEDs ### +LOCATE COMP "LED1" SITE "T14" ;# red +LOCATE COMP "LED2" SITE "R14" ;# green +LOCATE COMP "LED3" SITE "T15" ;# blue + + +################ +#### SODIMM-200 +################ + +### PP2 ### +LOCATE COMP "xOut" SITE "G3" ; +LOCATE COMP "yOut" SITE "E1" ; +#LOCATE COMP "" SITE "F3" ; +#LOCATE COMP "" SITE "D1" ; +LOCATE COMP "triggerOut" SITE "F4" ; +#LOCATE COMP "" SITE "C1" ; +#LOCATE COMP "" SITE "D7" ; +#LOCATE COMP "" SITE "B6" ; +#LOCATE COMP "" SITE "C7" ; +#LOCATE COMP "" SITE "A6" ; # PP2 11 +#LOCATE COMP "" SITE "D8" ; # PP2 13 +#LOCATE COMP "" SITE "B7" ; # PP2 15 +#LOCATE COMP "" SITE "C8" ; # PP2 17 +#LOCATE COMP "" SITE "A7" ; # PP2 19 +#LOCATE COMP "" SITE "E9" ; # PP2 21 +#LOCATE COMP "" SITE "A8" ; # PP2 23 +#LOCATE COMP "" SITE "D9" ; # PP2 25 + + +### PP1 ### +#LOCATE COMP "" SITE "A9" ; +#LOCATE COMP "" SITE "D10" ; +#LOCATE COMP "" SITE "A10" ; +#LOCATE COMP "" SITE "C10" ; +#LOCATE COMP "" SITE "B10" ; +#LOCATE COMP "" SITE "C12" ; +#LOCATE COMP "" SITE "B12" ; +#LOCATE COMP "" SITE "D13" ; +#LOCATE COMP "" SITE "A13" ; +#LOCATE COMP "" SITE "M5" ; # PP1 11 +#LOCATE COMP "" SITE "L5" ; # PP1 13 +#LOCATE COMP "" SITE "K5" ; # PP1 15 +#LOCATE COMP "" SITE "H5" ; # PP1 17 +#LOCATE COMP "" SITE "E8" ; # PP1 19 +#LOCATE COMP "" SITE "E5" ; # PP1 21 +LOCATE COMP "selSinCos_n" SITE "E6" ; # PP1 23 +#LOCATE COMP "" SITE "E7" ; # PP1 25 + + +### USB (FTDI2232HL located on the daughterboard) ### +LOCATE COMP "TxD" SITE "A14" ; +IOBUF PORT "TxD" SLEWRATE=FAST ; +LOCATE COMP "RxD" SITE "B14" ; +IOBUF PORT "RxD" PULLMODE=UP ; +#LOCATE COMP "USB_DB_RTS" SITE "B13" ; +#IOBUF PORT "USB_DB_RTS" SLEWRATE=FAST ; +#LOCATE COMP "USB_DB_CTS" SITE "C13" ; +#IOBUF PORT "USB_DB_CTS" PULLMODE=UP ; + + + +################ +#### Extras +################ + + +### SD Flash (External SD card) ### +#LOCATE COMP "SD_DETECT" SITE "G12" ; +#IOBUF PORT "SD_DETECT" PULLMODE=UP ; + +#LOCATE COMP "SD_CMD" SITE "C15" ; +#IOBUF PORT "SD_CMD" SLEWRATE=FAST ; +#LOCATE COMP "SD_CLK" SITE "B15" ; +#IOBUF PORT "SD_CLK" SLEWRATE=FAST ; + +#LOCATE COMP "SD_DTA[0]" SITE "B16" ; +##IOBUF PORT "SD_DTA[0]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[1]" SITE "C16" ; +##IOBUF PORT "SD_DTA[1]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[2]" SITE "F12" ; +##IOBUF PORT "SD_DTA[2]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[3]" SITE "C14" ; +##IOBUF PORT "SD_DTA[3]" SLEWRATE=FAST ; + + +### DRAM ### +#LOCATE COMP "DRAM_ADDR[0]" SITE "J15" ; +#IOBUF PORT "DRAM_ADDR[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[1]" SITE "L16" ; +#IOBUF PORT "DRAM_ADDR[1]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[2]" SITE "L15" ; +#IOBUF PORT "DRAM_ADDR[2]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[3]" SITE "K15" ; +#IOBUF PORT "DRAM_ADDR[3]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[4]" SITE "G15" ; +#IOBUF PORT "DRAM_ADDR[4]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[5]" SITE "F15" ; +#IOBUF PORT "DRAM_ADDR[5]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[6]" SITE "F16" ; +#IOBUF PORT "DRAM_ADDR[6]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[7]" SITE "E16" ; +#IOBUF PORT "DRAM_ADDR[7]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[8]" SITE "E15" ; +#IOBUF PORT "DRAM_ADDR[8]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[9]" SITE "G13" ; +#IOBUF PORT "DRAM_ADDR[9]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[10]" SITE "M16" ; +#IOBUF PORT "DRAM_ADDR[10]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[11]" SITE "F13" ; +#IOBUF PORT "DRAM_ADDR[11]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[12]" SITE "D16" ; +#IOBUF PORT "DRAM_ADDR[12]" SLEWRATE=FAST ; + +#LOCATE COMP "DRAM_BA[0]" SITE "L14" ; +#IOBUF PORT "DRAM_BA[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_BA[1]" SITE "L13" ; +#IOBUF PORT "DRAM_BA[1]" SLEWRATE=FAST ; + +#LOCATE COMP "DRAM_CLK" SITE "G14" ; +#IOBUF PORT "DRAM_CLK" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_CKE" SITE "G16" ; +#IOBUF PORT "DRAM_CKE" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nRAS" SITE "M14" ; +#IOBUF PORT "DRAM_nRAS" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nCAS" SITE "K13" ; +#IOBUF PORT "DRAM_nCAS" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nWE" SITE "N16" ; +#IOBUF PORT "DRAM_nWE" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nCS" SITE "M15" ; + +#LOCATE COMP "DRAM_DQ[0]" SITE "P14" ; +#LOCATE COMP "DRAM_DQ[1]" SITE "R15" ; +#LOCATE COMP "DRAM_DQ[2]" SITE "N14" ; +#LOCATE COMP "DRAM_DQ[3]" SITE "R16" ; +#LOCATE COMP "DRAM_DQ[4]" SITE "J14" ; +#LOCATE COMP "DRAM_DQ[5]" SITE "P15" ; +#LOCATE COMP "DRAM_DQ[6]" SITE "K14" ; +#LOCATE COMP "DRAM_DQ[7]" SITE "P16" ; +#LOCATE COMP "DRAM_DQ[8]" SITE "D14" ; +#LOCATE COMP "DRAM_DQ[9]" SITE "H14" ; +#LOCATE COMP "DRAM_DQ[10]" SITE "H12" ; +#LOCATE COMP "DRAM_DQ[11]" SITE "H13" ; +#LOCATE COMP "DRAM_DQ[12]" SITE "E14" ; +#LOCATE COMP "DRAM_DQ[13]" SITE "H15" ; +#LOCATE COMP "DRAM_DQ[14]" SITE "J13" ; +#LOCATE COMP "DRAM_DQ[15]" SITE "J16" ; + +#LOCATE COMP "DRAM_DQM[0]" SITE "M13" ; +#IOBUF PORT "DRAM_DQM[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_DQM[1]" SITE "F14" ; +#IOBUF PORT "DRAM_DQM[1]" SLEWRATE=FAST ; + + + + +### USB (chip located on the motherboard) ### +#LOCATE COMP "USB_MB_TX" SITE "M11" ; +#IOBUF PORT "USB_MB_TX" SLEWRATE=FAST ; +#LOCATE COMP "USB_MB_RX" SITE "N12" ; +#IOBUF PORT "USB_MB_RX" PULLMODE=UP ; +#LOCATE COMP "USB_MB_RTS" SITE "N11" ; +#IOBUF PORT "USB_MB_RTS" SLEWRATE=FAST ; +#LOCATE COMP "USB_MB_CTS" SITE "M12" ; +#IOBUF PORT "USB_MB_CTS" PULLMODE=UP ; + + +### PMOD1 ### +#LOCATE COMP "dbg_leds[16]" SITE "P1" ; +#LOCATE COMP "dbg_leds[17]" SITE "N4" ; +#LOCATE COMP "dbg_leds[18]" SITE "P2" ; +#LOCATE COMP "dbg_leds[19]" SITE "P5" ; +#LOCATE COMP "dbg_leds[20]" SITE "R1" ; +#LOCATE COMP "dbg_leds[21]" SITE "N5" ; +#LOCATE COMP "dbg_leds[22]" SITE "R2" ; +#LOCATE COMP "dbg_leds[23]" SITE "N6" ; + + +### PMOD2 ### +#LOCATE COMP "dbg_leds[24]" SITE "R3" ; +#LOCATE COMP "dbg_leds[25]" SITE "P11" ; +#LOCATE COMP "dbg_leds[26]" SITE "P12" ; +#LOCATE COMP "dbg_leds[27]" SITE "T3" ; +#LOCATE COMP "dbg_leds[28]" SITE "R4" ; +#LOCATE COMP "dbg_leds[29]" SITE "R12" ; +#LOCATE COMP "dbg_leds[30]" SITE "T13" ; +#LOCATE COMP "dbg_leds[31]" SITE "R5" ; + + +### PMOD3 ### +#LOCATE COMP "dbg_leds[8]" SITE "B2" ; +#LOCATE COMP "dbg_leds[9]" SITE "B3" ; +#LOCATE COMP "dbg_leds[10]" SITE "A4" ; +#LOCATE COMP "dbg_leds[11]" SITE "D4" ; +#LOCATE COMP "dbg_leds[12]" SITE "A2" ; +#LOCATE COMP "dbg_leds[13]" SITE "B4" ; +#LOCATE COMP "dbg_leds[14]" SITE "C3" ; +#LOCATE COMP "dbg_leds[15]" SITE "C4" ; + + +### PMOD4 ### +#LOCATE COMP "dbg_leds[0]" SITE "J4" ; +#LOCATE COMP "dbg_leds[1]" SITE "J5" ; +#LOCATE COMP "dbg_leds[2]" SITE "H4" ; +#LOCATE COMP "dbg_leds[3]" SITE "E4" ; +#LOCATE COMP "dbg_leds[4]" SITE "J3" ; +#LOCATE COMP "dbg_leds[5]" SITE "H3" ; +#LOCATE COMP "dbg_leds[6]" SITE "E3" ; +#LOCATE COMP "dbg_leds[7]" SITE "D3" ; + + +### Ethernet ### +#LOCATE COMP "ETH_CLK_EN" SITE "B1" ; +#LOCATE COMP "ETH_nRESET" SITE "C2" ; + +#LOCATE COMP "ETH_nLED_Y" SITE "F1" ; +#LOCATE COMP "ETH_nLED_G" SITE "G2" ; + +#LOCATE COMP "ETH_MDC" SITE "J1" ; +#LOCATE COMP "ETH_MDIO" SITE "H2" ; +#IOBUF PORT "ETH_MDIO" OPENDRAIN=ON SLEWRATE=FAST ; +#LOCATE COMP "ETH_MDINT" SITE "G1" ; +#IOBUF PORT "ETH_MDINT" SLEWRATE=FAST ; + +#LOCATE COMP "ETH_REF_CLK" SITE "P3" ; + +#LOCATE COMP "ETH_TX_CLK" SITE "M4" ; +#IOBUF PORT "ETH_TX_CLK" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TX_CTL" SITE "N3" ; +#IOBUF PORT "ETH_TX_CTL" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[0]" SITE "M3" ; +#IOBUF PORT "ETH_TXD[0]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[1]" SITE "L4" ; +#IOBUF PORT "ETH_TXD[1]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[2]" SITE "K4" ; +#IOBUF PORT "ETH_TXD[2]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[3]" SITE "K3" ; +#IOBUF PORT "ETH_TXD[3]" SLEWRATE=FAST ; + +#LOCATE COMP "ETH_RX_CLK" SITE "K1" ; +#LOCATE COMP "ETH_RX_CTL" SITE "K2" ; +#LOCATE COMP "ETH_RXD[0]" SITE "L1" ; +#LOCATE COMP "ETH_RXD[1]" SITE "L2" ; +#LOCATE COMP "ETH_RXD[2]" SITE "M1" ; +#LOCATE COMP "ETH_RXD[3]" SITE "M2" ; + + +### Extras ### +#LOCATE COMP "EXT[1]" SITE "P13" ; +#LOCATE COMP "EXT[2]" SITE "R13" ; +#LOCATE COMP "EXT[3]" SITE "A3" ; +#LOCATE COMP "EXT[4]" SITE "A5" ; +#LOCATE COMP "EXT[5]" SITE "B5" ; +#LOCATE COMP "EXT[6]" SITE "C5" ; +#LOCATE COMP "EXT[7]" SITE "C6" ; +#LOCATE COMP "EXT[8]" SITE "D5" ; +#LOCATE COMP "EXT[9]" SITE "D6" ; +#LOCATE COMP "EXT[10]" SITE "A11" ; +#LOCATE COMP "EXT[11]" SITE "A12" ; +#LOCATE COMP "EXT[12]" SITE "B8" ; +#LOCATE COMP "EXT[13]" SITE "B9" ; +#LOCATE COMP "EXT[14]" SITE "B11" ; +#LOCATE COMP "EXT[15]" SITE "C9" ; +#LOCATE COMP "EXT[16]" SITE "C11" ; +#LOCATE COMP "EXT[17]" SITE "D11" ; +#LOCATE COMP "EXT[18]" SITE "D12" ; +#LOCATE COMP "EXT[19]" SITE "E10" ; +#LOCATE COMP "EXT[20]" SITE "E11" ; +#LOCATE COMP "EXT[21]" SITE "E12" ; +#LOCATE COMP "EXT[22]" SITE "L3" ; +#LOCATE COMP "EXT[23]" SITE "M6" ; +#LOCATE COMP "EXT[24]" SITE "N1" ; +#LOCATE COMP "EXT[25]" SITE "P4" ; +#LOCATE COMP "EXT[26]" SITE "P6" ; +#LOCATE COMP "EXT[27]" SITE "T2" ; +#LOCATE COMP "EXT[28]" SITE "T4" ; +#LOCATE COMP "EXT[29]" SITE "E2" ; +#LOCATE COMP "EXT[30]" SITE "F2" ; +#LOCATE COMP "EXT[31]" SITE "F5" ; +#LOCATE COMP "EXT[32]" SITE "G4" ; +#LOCATE COMP "EXT[33]" SITE "G5" ; +#LOCATE COMP "EXT[34]" SITE "J2" ; diff --git a/10-PipelinedOperators/Board/concat/pipelinedOperators.ucf b/10-PipelinedOperators/Board/concat/pipelinedOperators.ucf new file mode 100644 index 0000000..b145465 --- /dev/null +++ b/10-PipelinedOperators/Board/concat/pipelinedOperators.ucf @@ -0,0 +1,19 @@ +#------------------------------------------------------------------------------- +# Clock and reset +# +NET "clock" LOC = "A10"; +NET "reset_N" LOC = "D3" | PULLUP; + +#------------------------------------------------------------------------------- +# Analog outputs +# +NET "xOut" LOC = "G4" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +NET "yOut" LOC = "G5" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +#NET "xOut" LOC = "G4" ; +#NET "yOut" LOC = "G5" ; + +#------------------------------------------------------------------------------- +# Trigger output +# +NET "triggerOut" LOC = "D2" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +#NET "triggerOut" LOC = "D2" ; diff --git a/10-PipelinedOperators/Board/concat/pipelinedOperators.vhd b/10-PipelinedOperators/Board/concat/pipelinedOperators.vhd new file mode 100644 index 0000000..a017aaf --- /dev/null +++ b/10-PipelinedOperators/Board/concat/pipelinedOperators.vhd @@ -0,0 +1,623 @@ +-- VHDL Entity Board.pipelineCounter_ebs3.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:16:01 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY pipelineCounter_ebs3 IS + GENERIC( + counterBitNb : positive := 16 + ); + PORT( + clock : IN std_ulogic; + reset_n : IN std_ulogic; + countOut : OUT unsigned (counterBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END pipelineCounter_ebs3 ; + + + + + +-- VHDL Entity PipelinedOperators.pipelineCounter.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:50:00 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY pipelineCounter IS + GENERIC( + bitNb : positive; + stageNb : positive + ); + PORT( + countOut : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END pipelineCounter ; + + + + + +-- VHDL Entity PipelinedOperators.pipelineAdder.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:50:15 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY pipelineAdder IS + GENERIC( + bitNb : positive; + stageNb : positive + ); + PORT( + sum : OUT signed (bitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic; + cIn : IN std_ulogic; + cOut : OUT std_ulogic; + a : IN signed (bitNb-1 DOWNTO 0); + b : IN signed (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END pipelineAdder ; + + + + + +-- VHDL Entity PipelinedOperators.parallelAdder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:43:49 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY parallelAdder IS + GENERIC( + bitNb : positive := 32 + ); + PORT( + sum : OUT signed (bitNb-1 DOWNTO 0); + cIn : IN std_ulogic; + cOut : OUT std_ulogic; + a : IN signed (bitNb-1 DOWNTO 0); + b : IN signed (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END parallelAdder ; + + + + + +ARCHITECTURE masterVersion OF parallelAdder IS + + signal sum_int: unsigned(sum'high+1 downto 0); + +BEGIN + + sum_int <= resize(unsigned(a), sum_int'length) + + resize(unsigned(b), sum_int'length) + + resize('0' & cIn, sum_int'length); + + sum <= signed(sum_int(sum'range)); + cOut <= sum_int(sum_int'high); + +END ARCHITECTURE masterVersion; + + + + + +ARCHITECTURE masterVersion OF pipelineAdder IS + + constant stageBitNb : positive := sum'length/stageNb; + subtype stageOperandType is signed(stageBitNb-1 downto 0); + type stageOperandVectorType is array(stageNb-1 downto 0) of stageOperandType; + type stageOperandMatrixType is array(stageNb-1 downto 0) of stageOperandVectorType; + subtype carryType is std_ulogic_vector(stageNb downto 0); + + signal a_int, b_int, sum_int : stageOperandMatrixType; + signal carryIn, carryOut : carryType; + + COMPONENT parallelAdder + GENERIC ( + bitNb : positive := 32 + ); + PORT ( + sum : OUT signed (bitNb-1 DOWNTO 0); + cIn : IN std_ulogic ; + cOut : OUT std_ulogic ; + a : IN signed (bitNb-1 DOWNTO 0); + b : IN signed (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + + carryIn(0) <= cIn; + + distributeInput: for wordIndex in stageOperandVectorType'range generate + a_int(wordIndex)(0) <= a(wordIndex*stageBitNb+stageBitNb-1 downto wordIndex*stageBitNb); + b_int(wordIndex)(0) <= b(wordIndex*stageBitNb+stageBitNb-1 downto wordIndex*stageBitNb); + end generate distributeInput; + + inputRegistersX: for wordIndex in stageOperandVectorType'high downto 1 generate + inputRegistersY: for pipeIndex in stageOperandMatrixType'high downto 1 generate + upperTriangle: if wordIndex >= pipeIndex generate + inputRegisters: process(reset, clock) + begin + if reset = '1' then + a_int(wordIndex)(pipeIndex) <= (others => '0'); + b_int(wordIndex)(pipeIndex) <= (others => '0'); + elsif rising_edge(clock) then + a_int(wordIndex)(pipeIndex) <= a_int(wordIndex)(pipeIndex-1); + b_int(wordIndex)(pipeIndex) <= b_int(wordIndex)(pipeIndex-1); + end if; + end process inputRegisters; + end generate upperTriangle; + end generate inputRegistersY; + end generate inputRegistersX; + + operation: for index in stageOperandVectorType'range generate + partialAdder: parallelAdder + GENERIC MAP (bitNb => stageBitNb) + PORT MAP ( + a => a_int(index)(index), + b => b_int(index)(index), + sum => sum_int(index)(index), + cIn => carryIn(index), + cOut => carryOut(index) + ); + carryRegisters: process(reset, clock) + begin + if reset = '1' then + carryIn(index+1) <= '0'; + elsif rising_edge(clock) then + carryIn(index+1) <= carryOut(index); + end if; + end process carryRegisters; + end generate operation; + + outputRegistersX: for wordIndex in stageOperandVectorType'range generate + outputRegistersY: for pipeIndex in stageOperandMatrixType'range generate + lowerTriangle: if wordIndex < pipeIndex generate + outputRegisters: process(reset, clock) + begin + if reset = '1' then + sum_int(wordIndex)(pipeIndex) <= (others => '0'); + elsif rising_edge(clock) then + sum_int(wordIndex)(pipeIndex) <= sum_int(wordIndex)(pipeIndex-1); + end if; + end process outputRegisters; + end generate lowerTriangle; + end generate outputRegistersY; + end generate outputRegistersX; + + packOutput: for index in stageOperandVectorType'range generate + sum(index*stageBitNb+stageBitNb-1 downto index*stageBitNb) <= + sum_int(index)(stageOperandMatrixType'high); + end generate packOutput; + + cOut <= carryOut(carryOut'high-1); + +END ARCHITECTURE masterVersion; + + + + +ARCHITECTURE masterVersion OF pipelineCounter IS + + signal initCounter : unsigned(countOut'length/stageNb-1 downto 0); + signal b : signed(countOut'range); + signal sum : signed(countOut'range); + + COMPONENT pipelineAdder + GENERIC ( + bitNb : positive := 32; + stageNb : positive := 4 + ); + PORT ( + reset : IN std_ulogic; + clock : IN std_ulogic; + cIn : IN std_ulogic; + a : IN signed (bitNb-1 DOWNTO 0); + b : IN signed (bitNb-1 DOWNTO 0); + sum : OUT signed (bitNb-1 DOWNTO 0); + cOut : OUT std_ulogic + ); + END COMPONENT; + +BEGIN + + adder: pipelineAdder + GENERIC MAP ( + bitNb => countOut'length, + stageNb => stageNb + ) + PORT MAP ( + reset => reset, + clock => clock, + cIn => '0', + a => sum, + b => b, + sum => sum, + cOut => open + ); + + prepareBInput: process(reset, clock) + begin + if reset = '1' then + initCounter <= (others => '0'); + elsif rising_edge(clock) then + if initCounter < stageNb then + initCounter <= initCounter + 1; + end if; + end if; + end process prepareBInput; + + selectInitOrRun: process(initCounter, sum) + begin + if initCounter < stageNb-1 then + b <= signed(resize(initCounter+stageNb-1, b'length)); + countOut <= resize(initCounter, countOut'length); + else + b <= to_signed(stageNb-1, b'length); + countOut <= unsigned(sum); + end if; + end process selectInitOrRun; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity Board.DFF.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:05 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY DFF IS + PORT( + CLK : IN std_uLogic; + CLR : IN std_uLogic; + D : IN std_uLogic; + Q : OUT std_uLogic + ); + +-- Declarations + +END DFF ; + + + + + +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + + + + + +-- VHDL Entity Board.inverterIn.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY inverterIn IS + PORT( + in1 : IN std_uLogic; + out1 : OUT std_uLogic + ); + +-- Declarations + +END inverterIn ; + + + + + +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + + + + + +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; + + + + +-- +-- VHDL Architecture Board.pipelineCounter_ebs3.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:16:01 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Board; +-- LIBRARY Lattice; +-- LIBRARY PipelinedOperators; + +ARCHITECTURE struct OF pipelineCounter_ebs3 IS + + -- Architecture declarations + constant pipelineStageNb: positive := 5; + + -- Internal signal declarations + SIGNAL clk_sys : std_ulogic; + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_uLogic; + SIGNAL reset : std_ulogic; + SIGNAL resetSynch : std_ulogic; + SIGNAL resetSynch_n : std_ulogic; + + + -- Component Declarations + COMPONENT DFF + PORT ( + CLK : IN std_uLogic ; + CLR : IN std_uLogic ; + D : IN std_uLogic ; + Q : OUT std_uLogic + ); + END COMPONENT; + COMPONENT inverterIn + PORT ( + in1 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT pll + PORT ( + clkIn100M : IN std_ulogic ; + en75M : IN std_ulogic ; + en50M : IN std_ulogic ; + en10M : IN std_ulogic ; + clk60MHz : OUT std_ulogic ; + clk75MHz : OUT std_ulogic ; + clk50MHz : OUT std_ulogic ; + clk10MHz : OUT std_ulogic ; + pllLocked : OUT std_ulogic + ); + END COMPONENT; + COMPONENT pipelineCounter + GENERIC ( + bitNb : positive; + stageNb : positive + ); + PORT ( + countOut : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : DFF USE ENTITY Board.DFF; +-- FOR ALL : inverterIn USE ENTITY Board.inverterIn; +-- FOR ALL : pipelineCounter USE ENTITY PipelinedOperators.pipelineCounter; +-- FOR ALL : pll USE ENTITY Lattice.pll; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 5 eb5 + logic1 <= '1'; + + -- HDL Embedded Text Block 6 eb6 + logic0 <= '0'; + + + -- Instance port mappings. + I_dff : DFF + PORT MAP ( + CLK => clock, + CLR => reset, + D => logic1, + Q => resetSynch_n + ); + I_inv1 : inverterIn + PORT MAP ( + in1 => reset_n, + out1 => reset + ); + I_inv2 : inverterIn + PORT MAP ( + in1 => resetSynch_n, + out1 => resetSynch + ); + I_pll : pll + PORT MAP ( + clkIn100M => clock, + en75M => logic0, + en50M => logic0, + en10M => logic0, + clk60MHz => clk_sys, + clk75MHz => OPEN, + clk50MHz => OPEN, + clk10MHz => OPEN, + pllLocked => OPEN + ); + I_cnt : pipelineCounter + GENERIC MAP ( + bitNb => counterBitNb, + stageNb => pipelineStageNb + ) + PORT MAP ( + countOut => countOut, + clock => clk_sys, + reset => resetSynch + ); + +END struct; + + + + diff --git a/10-PipelinedOperators/Board/diamond/pipelinedOperators.bit b/10-PipelinedOperators/Board/diamond/pipelinedOperators.bit new file mode 100644 index 0000000000000000000000000000000000000000..e4efb02c821e084b12fb0e24c81012125eabcffd GIT binary patch literal 582686 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 + + + + + + + + + + + + + + + + + + + + + diff --git a/10-PipelinedOperators/Board/diamond/programmer.xcf b/10-PipelinedOperators/Board/diamond/programmer.xcf new file mode 100644 index 0000000..468a2da --- /dev/null +++ b/10-PipelinedOperators/Board/diamond/programmer.xcf @@ -0,0 +1,50 @@ + + + + + + JTAG + + + 1 + Renesas + ECP5U + LFE5U-25F + All + LFE5U-25F + + 8 + 11111111 + 1 + 0 + + + 04/11/23 16:14:28 + 0xA4B0 + Fast Program + + + + + SEQUENTIAL + ENTIRED CHAIN + No Override + TLR + TLR + + 4 + + + USB2 + FTUSB-0 + LFE5U-25F A Location 0000 Serial 018VFVT3A + + diff --git a/10-PipelinedOperators/Board/diamond/reveal_analyze.rva b/10-PipelinedOperators/Board/diamond/reveal_analyze.rva new file mode 100644 index 0000000..4249e0e --- /dev/null +++ b/10-PipelinedOperators/Board/diamond/reveal_analyze.rva @@ -0,0 +1,638 @@ + + + lun. 6. mars 14:29:10 2023 + + + + + + + + + + + + 1 + + 0 + 1. LFE5U-25F + 0x41111043 + true + false + + 8 + reveal_config.rvl + reveal_config.rvs + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/10-PipelinedOperators/Board/diamond/reveal_config.rvl b/10-PipelinedOperators/Board/diamond/reveal_config.rvl new file mode 100644 index 0000000..28d2f1c --- /dev/null +++ b/10-PipelinedOperators/Board/diamond/reveal_config.rvl @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/10-PipelinedOperators/Board/diamond/strategy.sty b/10-PipelinedOperators/Board/diamond/strategy.sty new file mode 100644 index 0000000..a2b5a4a --- /dev/null +++ b/10-PipelinedOperators/Board/diamond/strategy.sty @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/10-PipelinedOperators/Board/hdl/DFF_sim.vhd b/10-PipelinedOperators/Board/hdl/DFF_sim.vhd new file mode 100644 index 0000000..cf8868a --- /dev/null +++ b/10-PipelinedOperators/Board/hdl/DFF_sim.vhd @@ -0,0 +1,14 @@ +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + diff --git a/10-PipelinedOperators/Board/hdl/buff_sim.vhd b/10-PipelinedOperators/Board/hdl/buff_sim.vhd new file mode 100644 index 0000000..8ad27be --- /dev/null +++ b/10-PipelinedOperators/Board/hdl/buff_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF buff IS +BEGIN + + out1 <= in1; + +END ARCHITECTURE sim; + diff --git a/10-PipelinedOperators/Board/hdl/inverterIn_sim.vhd b/10-PipelinedOperators/Board/hdl/inverterIn_sim.vhd new file mode 100644 index 0000000..fb039ac --- /dev/null +++ b/10-PipelinedOperators/Board/hdl/inverterIn_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/10-PipelinedOperators/Board/hdl/inverter_sim.vhd b/10-PipelinedOperators/Board/hdl/inverter_sim.vhd new file mode 100644 index 0000000..ca5b6b5 --- /dev/null +++ b/10-PipelinedOperators/Board/hdl/inverter_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverter IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_entity.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_entity.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_struct.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_struct.vhg._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_circuit_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_entity.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_struct.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs2_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_entity.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_struct.vhg._fpf b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/.hdlsidedata/_pipelinecounter_ebs3_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/Board/hds/@d@f@f/symbol.sb b/10-PipelinedOperators/Board/hds/@d@f@f/symbol.sb new file mode 100644 index 0000000..555b689 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/@d@f@f/symbol.sb @@ -0,0 +1,1211 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 157,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +uid 158,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +uid 159,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +uid 160,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +uid 161,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 162,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 101,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 104,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 106,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 108,0 +) +*23 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 127,0 +) +*24 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 128,0 +) +*25 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 129,0 +) +*26 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 130,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 102,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 110,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 114,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 116,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 118,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 120,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 122,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 124,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 126,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 100,0 +vaOverrides [ +] +) +] +) +uid 156,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 164,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 165,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 132,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 135,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 137,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 141,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 145,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 147,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 149,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 151,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 153,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 155,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 163,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DFF" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:05" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "DFF" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:05" +) +(vvPair +variable "unit" +value "DFF" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*59 (SymbolBody +uid 11,0 +optionalChildren [ +*60 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,4625,23000,5375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "courier,12,0" +) +xt "24000,4300,25700,5700" +st "D" +blo "24000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,15500,13400" +st "D : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +) +*61 (CptPort +uid 57,0 +optionalChildren [ +*62 (FFT +pts [ +"23750,9000" +"23000,9375" +"23000,8625" +] +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,8625,23750,9375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,8625,23000,9375" +) +tg (CPTG +uid 94,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,12,0" +) +xt "24000,8400,27200,9800" +st "CLK" +blo "24000,9600" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 88,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,15500,11600" +st "CLK : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +) +*63 (CptPort +uid 63,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 64,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,11000,26375,11750" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 66,0 +va (VaSet +font "courier,12,0" +) +xt "25000,9600,28200,11000" +st "CLR" +blo "25000,10800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 89,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,15500,12500" +st "CLR : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*64 (CptPort +uid 69,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 70,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,4625,29750,5375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 72,0 +va (VaSet +font "courier,12,0" +) +xt "26200,4300,28000,5700" +st "Q" +ju 2 +blo "28000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,14500,14300" +st "Q : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 12,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,3000,29000,11000" +) +showPorts 0 +oxt "15000,10000,21000,19000" +biTextGroup (BiTextGroup +uid 13,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 14,0 +va (VaSet +) +xt "27600,10700,30600,11700" +st "Board" +blo "27600,11500" +) +second (Text +uid 15,0 +va (VaSet +) +xt "27600,11700,29400,12700" +st "DFF" +blo "27600,12500" +) +) +gi *65 (GenericInterface +uid 16,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 17,0 +text (MLText +uid 18,0 +va (VaSet +isHidden 1 +) +xt "30000,10400,42600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *66 (PackageList +uid 8,0 +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 97,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*68 (MLText +uid 98,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "23,13,991,725" +viewArea "-672,-4956,43920,21156" +cachedDiagramExtent "0,0,43800,15100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,42000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26600,24700,29700,25700" +st "" +blo "26600,25500" +) +second (Text +va (VaSet +) +xt "26600,25700,28800,26700" +st "" +blo "26600,26500" +) +) +gi *69 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *70 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,8300,8600,9500" +st "Declarations" +blo "0,9300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,9500,4200,10700" +st "Ports:" +blo "0,10500" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,14300,3000,15300" +st "User:" +blo "0,15100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,8300,9400,9500" +st "Internal User:" +blo "0,9300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,2000,15300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,8300,32000,8300" +tm "SyDeclarativeTextMgr" +) +) +lastUid 188,0 +) diff --git a/10-PipelinedOperators/Board/hds/@f@p@g@a_sine@gen_tester/interface b/10-PipelinedOperators/Board/hds/@f@p@g@a_sine@gen_tester/interface new file mode 100644 index 0000000..f018467 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/@f@p@g@a_sine@gen_tester/interface @@ -0,0 +1,1571 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2009,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +uid 208,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +uid 210,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 4 +suid 2007,0 +) +) +uid 212,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "xOut" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +uid 214,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "yOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +uid 216,0 +) +] +) +pdm (PhysicalDM +uid 156,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 93,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 96,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 209,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 211,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 213,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 215,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 217,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 94,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 102,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 106,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 108,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 110,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 114,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 116,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 118,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 92,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "signalBitNb" +type "positive" +value "16" +) +uid 148,0 +) +] +) +pdm (PhysicalDM +uid 159,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 124,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 127,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 129,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 131,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 149,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 125,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 133,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 139,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 141,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 143,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 145,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 147,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 157,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "chronometer" +) +(vvPair +variable "config" +value "%(unit)_config" +) +(vvPair +variable "d" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\FPGA_sineGen_tester" +) +(vvPair +variable "date" +value "27.01.2010" +) +(vvPair +variable "day" +value "mer." +) +(vvPair +variable "day_long" +value "mercredi" +) +(vvPair +variable "dd" +value "27" +) +(vvPair +variable "entity_name" +value "FPGA_sineGen_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3195" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Chronometer/Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "FPGA_sineGen_tester" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\@f@p@g@a_sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_labs\\Prefs\\..\\Board\\hds\\FPGA_sineGen_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Chronometer\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:20:56" +) +(vvPair +variable "unit" +value "FPGA_sineGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 71,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 183,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 184,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 185,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 186,0 +ro 270 +va (VaSet +) +xt "22500,7000,23500,9100" +st "clock" +ju 2 +blo "23300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 187,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,62000,5200" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +) +*65 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 189,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +ro 270 +va (VaSet +) +xt "24500,7000,25500,9100" +st "reset" +ju 2 +blo "25300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2006,0 +) +) +) +*66 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 194,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +ro 270 +va (VaSet +) +xt "56500,7000,57500,11400" +st "triggerOut" +ju 2 +blo "57300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,62000,2800" +st "triggerOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "triggerOut" +t "std_ulogic" +o 4 +suid 2007,0 +) +) +) +*67 (CptPort +uid 198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 199,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 200,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 201,0 +ro 270 +va (VaSet +) +xt "58500,7000,59500,8900" +st "xOut" +ju 2 +blo "59300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 202,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62000,3600" +st "xOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "xOut" +t "std_ulogic" +o 5 +suid 2008,0 +) +) +) +*68 (CptPort +uid 203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 204,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 205,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 206,0 +ro 270 +va (VaSet +) +xt "60500,7000,61500,8900" +st "yOut" +ju 2 +blo "61300,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 207,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "yOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "yOut" +t "std_ulogic" +o 8 +suid 2009,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,59000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "34900,8800,38400,10000" +st "Board" +blo "34900,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "34900,10000,47100,11200" +st "FPGA_sineGen_tester" +blo "34900,11000" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,6000,30000,8400" +st "Generic Declarations + +signalBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44800,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50300,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "SineInterpolator_test" +entityName "FPGA_sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,6000,44400,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 217,0 +) diff --git a/10-PipelinedOperators/Board/hds/_buff._epf b/10-PipelinedOperators/Board/hds/_buff._epf new file mode 100644 index 0000000..d74258b --- /dev/null +++ b/10-PipelinedOperators/Board/hds/_buff._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom buff_sim.vhd +DEFAULT_ARCHITECTURE atom sim diff --git a/10-PipelinedOperators/Board/hds/_pipelinecounter_circuit._epf b/10-PipelinedOperators/Board/hds/_pipelinecounter_circuit._epf new file mode 100644 index 0000000..d110fb2 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/_pipelinecounter_circuit._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom pipeline@counter_circuit/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/Board/hds/_pipelinecounter_ebs2._epf b/10-PipelinedOperators/Board/hds/_pipelinecounter_ebs2._epf new file mode 100644 index 0000000..dd813c6 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/_pipelinecounter_ebs2._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom pipeline@counter_ebs2/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/Board/hds/_pipelinecounter_ebs3._epf b/10-PipelinedOperators/Board/hds/_pipelinecounter_ebs3._epf new file mode 100644 index 0000000..34eba2a --- /dev/null +++ b/10-PipelinedOperators/Board/hds/_pipelinecounter_ebs3._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom pipeline@counter_ebs3/struct.bd +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/Board/hds/buff/symbol.sb b/10-PipelinedOperators/Board/hds/buff/symbol.sb new file mode 100644 index 0000000..f9ad06a --- /dev/null +++ b/10-PipelinedOperators/Board/hds/buff/symbol.sb @@ -0,0 +1,1107 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "buff" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "buff" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:01" +) +(vvPair +variable "unit" +value "buff" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,26310,5700" +st "buff" +blo "23910,5500" +) +) +gi *58 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *59 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*61 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,1352,888" +viewArea "-600,-3900,62412,40055" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *62 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *63 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 149,0 +activeModelName "Symbol" +) diff --git a/10-PipelinedOperators/Board/hds/inverter/symbol.sb b/10-PipelinedOperators/Board/hds/inverter/symbol.sb new file mode 100644 index 0000000..515ce1d --- /dev/null +++ b/10-PipelinedOperators/Board/hds/inverter/symbol.sb @@ -0,0 +1,1092 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:09" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverter" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:09" +) +(vvPair +variable "unit" +value "inverter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +optionalChildren [ +*58 (Circle +uid 28,0 +va (VaSet +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28750,6625,29500,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,28710,5700" +st "inverter" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/10-PipelinedOperators/Board/hds/inverter@in/symbol.sb b/10-PipelinedOperators/Board/hds/inverter@in/symbol.sb new file mode 100644 index 0000000..85e0913 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/inverter@in/symbol.sb @@ -0,0 +1,1095 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 98,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 100,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 101,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 44,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 47,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 49,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 51,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 70,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 45,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 53,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 57,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 59,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 61,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 63,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 65,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 67,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 69,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 43,0 +vaOverrides [ +] +) +] +) +uid 97,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 104,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 73,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 76,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 78,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 80,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 74,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 82,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 86,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 88,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 90,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 92,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 94,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 96,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 72,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverterIn" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverterIn" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:14" +) +(vvPair +variable "unit" +value "inverterIn" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +optionalChildren [ +*57 (Circle +uid 42,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,6546,23000,7454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21342,6625,22092,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*58 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,30510,5700" +st "inverterIn" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 127,0 +) diff --git a/10-PipelinedOperators/Board/hds/pipeline@counter_circuit/struct.bd b/10-PipelinedOperators/Board/hds/pipeline@counter_circuit/struct.bd new file mode 100644 index 0000000..49697ce --- /dev/null +++ b/10-PipelinedOperators/Board/hds/pipeline@counter_circuit/struct.bd @@ -0,0 +1,3650 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_dff" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 1071,0 +) +(Instance +name "I_inv2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1806,0 +) +(Instance +name "I_inv1" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1817,0 +) +(Instance +name "I_cnt" +duLibraryName "PipelinedOperators" +duName "pipelineCounter" +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +mwi 0 +uid 2439,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb4" +number "4" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_circuit\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_circuit\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_circuit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_circuit" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:18:24" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_QuestaSimCompiler" +value "$HDS_PROJECT_DIR/../Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_SvAssistantInvoke" +value "$HDS_PROJECT_DIR/../Board/svassistant" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "pipelineCounter_circuit" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_circuit\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_circuit\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:18:24" +) +(vvPair +variable "unit" +value "pipelineCounter_circuit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "15000,29625,16500,30375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "16500,30000,17000,30000" +pts [ +"16500,30000" +"17000,30000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "10200,29300,14000,30700" +st "clock" +ju 2 +blo "14000,30500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,7800,11800,9000" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "15000,41625,16500,42375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "16500,42000,17000,42000" +pts [ +"16500,42000" +"17000,42000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8200,41300,14000,42700" +st "reset_N" +ju 2 +blo "14000,42500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-1000,15600,16200,16800" +st "SIGNAL reset : std_ulogic" +) +) +*5 (Grouping +uid 51,0 +optionalChildren [ +*6 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,65000,76000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,65500,59200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,61000,80000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,61500,76200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,63000,76000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,63500,59200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,63000,59000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,63500,55200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,62000,96000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,62200,90300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*11 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "80000,61000,96000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "80200,61500,80200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,61000,76000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "60350,61400,70650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,64000,59000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,64500,55200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,65000,59000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,65500,55200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,64000,76000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,64500,59200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "55000,61000,96000,66000" +) +oxt "14000,66000,55000,71000" +) +*16 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +) +xt "-1000,8800,12500,10000" +st "reset_N : std_ulogic" +) +) +*17 (HdlText +uid 818,0 +optionalChildren [ +*18 (EmbeddedText +uid 823,0 +commentText (CommentText +uid 824,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 825,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "22000,33000,28000,35000" +) +oxt "0,0,18000,5000" +text (MLText +uid 826,0 +va (VaSet +) +xt "22200,33200,27700,34400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 819,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "21000,32000,29000,36000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 820,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 821,0 +va (VaSet +) +xt "21400,36000,24000,37200" +st "eb4" +blo "21400,37000" +tm "HdlTextNameMgr" +) +*20 (Text +uid 822,0 +va (VaSet +) +xt "21400,37000,22800,38200" +st "4" +blo "21400,38000" +tm "HdlTextNumberMgr" +) +] +) +) +*21 (Net +uid 893,0 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 6 +suid 10,0 +) +declText (MLText +uid 894,0 +va (VaSet +) +xt "-1000,16600,18300,17800" +st "SIGNAL resetSnch_N : std_ulogic" +) +) +*22 (Net +uid 895,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 4 +suid 11,0 +) +declText (MLText +uid 896,0 +va (VaSet +) +xt "-1000,14600,16700,15800" +st "SIGNAL logic1 : std_uLogic" +) +) +*23 (Net +uid 897,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 7 +suid 12,0 +) +declText (MLText +uid 898,0 +va (VaSet +) +xt "-1000,17600,17800,18800" +st "SIGNAL resetSynch : std_ulogic" +) +) +*24 (SaComponent +uid 1071,0 +optionalChildren [ +*25 (CptPort +uid 1054,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1055,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,33625,34000,34375" +) +tg (CPTG +uid 1056,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1057,0 +va (VaSet +font "Verdana,12,0" +) +xt "35000,33300,36700,34700" +st "D" +blo "35000,34500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*26 (CptPort +uid 1058,0 +optionalChildren [ +*27 (FFT +pts [ +"34750,38000" +"34000,38375" +"34000,37625" +] +uid 1062,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,37625,34750,38375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1059,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,37625,34000,38375" +) +tg (CPTG +uid 1060,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1061,0 +va (VaSet +font "Verdana,12,0" +) +xt "35000,37400,38200,38800" +st "CLK" +blo "35000,38600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*28 (CptPort +uid 1063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1064,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "36625,40000,37375,40750" +) +tg (CPTG +uid 1065,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1066,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,38600,39200,40000" +st "CLR" +blo "36000,39800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*29 (CptPort +uid 1067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1068,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40000,33625,40750,34375" +) +tg (CPTG +uid 1069,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Verdana,12,0" +) +xt "37200,33300,39000,34700" +st "Q" +ju 2 +blo "39000,34500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1072,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,32000,40000,40000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1073,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*30 (Text +uid 1074,0 +va (VaSet +) +xt "38600,39700,42200,40900" +st "Board" +blo "38600,40700" +tm "BdLibraryNameMgr" +) +*31 (Text +uid 1075,0 +va (VaSet +) +xt "38600,40700,41300,41900" +st "DFF" +blo "38600,41700" +tm "CptNameMgr" +) +*32 (Text +uid 1076,0 +va (VaSet +) +xt "38600,41700,41600,42900" +st "I_dff" +blo "38600,42700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1077,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1078,0 +text (MLText +uid 1079,0 +va (VaSet +) +xt "11000,29000,11000,29000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*33 (SaComponent +uid 1806,0 +optionalChildren [ +*34 (CptPort +uid 1797,0 +optionalChildren [ +*35 (Circle +uid 1801,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44092,33546,45000,34454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1798,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43342,33625,44092,34375" +) +tg (CPTG +uid 1799,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1800,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45000,33500,47700,34900" +st "in1" +blo "45000,34700" +) +s (Text +uid 1815,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45000,34900,45000,34900" +blo "45000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*36 (CptPort +uid 1802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1803,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50000,33625,50750,34375" +) +tg (CPTG +uid 1804,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1805,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "46050,33500,49750,34900" +st "out1" +ju 2 +blo "49750,34700" +) +s (Text +uid 1816,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "49750,34900,49750,34900" +ju 2 +blo "49750,34900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 1807,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,31000,50000,37000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1808,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 1809,0 +va (VaSet +) +xt "46460,36700,50060,37900" +st "Board" +blo "46460,37700" +tm "BdLibraryNameMgr" +) +*38 (Text +uid 1810,0 +va (VaSet +) +xt "46460,37700,52860,38900" +st "inverterIn" +blo "46460,38700" +tm "CptNameMgr" +) +*39 (Text +uid 1811,0 +va (VaSet +) +xt "46460,38700,50460,39900" +st "I_inv2" +blo "46460,39700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1812,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1813,0 +text (MLText +uid 1814,0 +va (VaSet +) +xt "45000,37400,45000,37400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*40 (SaComponent +uid 1817,0 +optionalChildren [ +*41 (CptPort +uid 1826,0 +optionalChildren [ +*42 (Circle +uid 1831,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,41546,23000,42454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1827,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "21342,41625,22092,42375" +) +tg (CPTG +uid 1828,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1829,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "23000,41500,25700,42900" +st "in1" +blo "23000,42700" +) +s (Text +uid 1830,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "23000,42900,23000,42900" +blo "23000,42900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*43 (CptPort +uid 1832,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1833,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "28000,41625,28750,42375" +) +tg (CPTG +uid 1834,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1835,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "24050,41500,27750,42900" +st "out1" +ju 2 +blo "27750,42700" +) +s (Text +uid 1836,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "27750,42900,27750,42900" +ju 2 +blo "27750,42900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 1818,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,39000,28000,45000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1819,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 1820,0 +va (VaSet +) +xt "24460,44700,28060,45900" +st "Board" +blo "24460,45700" +tm "BdLibraryNameMgr" +) +*45 (Text +uid 1821,0 +va (VaSet +) +xt "24460,45700,30860,46900" +st "inverterIn" +blo "24460,46700" +tm "CptNameMgr" +) +*46 (Text +uid 1822,0 +va (VaSet +) +xt "24460,46700,28460,47900" +st "I_inv1" +blo "24460,47700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1823,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1824,0 +text (MLText +uid 1825,0 +va (VaSet +) +xt "23000,45400,23000,45400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*47 (SaComponent +uid 2439,0 +optionalChildren [ +*48 (CptPort +uid 2427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2428,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,29625,73750,30375" +) +tg (CPTG +uid 2429,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2430,0 +va (VaSet +) +xt "66600,29550,72000,30750" +st "countOut" +ju 2 +blo "72000,30550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*49 (CptPort +uid 2431,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2432,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,29625,57000,30375" +) +tg (CPTG +uid 2433,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2434,0 +va (VaSet +) +xt "58000,29400,61400,30600" +st "clock" +blo "58000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*50 (CptPort +uid 2435,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2436,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,31625,57000,32375" +) +tg (CPTG +uid 2437,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2438,0 +va (VaSet +) +xt "58000,31550,61300,32750" +st "reset" +blo "58000,32550" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 2440,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,26000,73000,34000" +) +oxt "32000,15000,48000,23000" +ttg (MlTextGroup +uid 2441,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 2442,0 +va (VaSet +font "Verdana,9,1" +) +xt "57600,33800,68400,35000" +st "PipelinedOperators" +blo "57600,34800" +tm "BdLibraryNameMgr" +) +*52 (Text +uid 2443,0 +va (VaSet +font "Verdana,9,1" +) +xt "57600,34700,66600,35900" +st "pipelineCounter" +blo "57600,35700" +tm "CptNameMgr" +) +*53 (Text +uid 2444,0 +va (VaSet +font "Verdana,9,1" +) +xt "57600,35600,60900,36800" +st "I_cnt" +blo "57600,36600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2445,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2446,0 +text (MLText +uid 2447,0 +va (VaSet +font "Verdana,8,0" +) +xt "57000,37400,76400,39400" +st "bitNb = counterBitNb ( positive ) +stageNb = pipelineStageNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*54 (Net +uid 2475,0 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 20,0 +) +declText (MLText +uid 2476,0 +va (VaSet +) +xt "-1000,9800,26300,11000" +st "countOut : unsigned(counterBitNb-1 downto 0)" +) +) +*55 (PortIoOut +uid 2483,0 +shape (CompositeShape +uid 2484,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2485,0 +sl 0 +ro 270 +xt "81500,29625,83000,30375" +) +(Line +uid 2486,0 +sl 0 +ro 270 +xt "81000,30000,81500,30000" +pts [ +"81000,30000" +"81500,30000" +] +) +] +) +tg (WTG +uid 2487,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2488,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "84000,29350,110300,30750" +st "countOut : (counterBitNb-1 downto 0)" +blo "84000,30550" +tm "WireNameMgr" +) +) +) +*56 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "17000,30000,56250,30000" +pts [ +"17000,30000" +"56250,30000" +] +) +start &1 +end &49 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,28600,20800,30000" +st "clock" +blo "17000,29800" +tm "WireNameMgr" +) +) +on &2 +) +*57 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "17000,42000,22092,42000" +pts [ +"17000,42000" +"22092,42000" +] +) +start &3 +end &41 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,40600,21800,42000" +st "reset_N" +blo "16000,41800" +tm "WireNameMgr" +) +) +on &16 +) +*58 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "50000,32000,56250,34000" +pts [ +"50000,34000" +"53000,34000" +"53000,32000" +"56250,32000" +] +) +start &36 +end &50 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "Verdana,12,0" +) +xt "50000,30600,58600,32000" +st "resetSynch" +blo "50000,31800" +tm "WireNameMgr" +) +) +on &23 +) +*59 (Wire +uid 873,0 +shape (OrthoPolyLine +uid 874,0 +va (VaSet +vasetType 3 +) +xt "32000,38000,34000,38000" +pts [ +"32000,38000" +"34000,38000" +] +) +end &26 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 877,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 878,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,36600,33800,38000" +st "clock" +blo "30000,37800" +tm "WireNameMgr" +) +) +on &2 +) +*60 (Wire +uid 879,0 +shape (OrthoPolyLine +uid 880,0 +va (VaSet +vasetType 3 +) +xt "28000,40000,37000,42000" +pts [ +"28000,42000" +"37000,42000" +"37000,40000" +] +) +start &43 +end &28 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 882,0 +va (VaSet +font "Verdana,12,0" +) +xt "29000,40600,33100,42000" +st "reset" +blo "29000,41800" +tm "WireNameMgr" +) +) +on &4 +) +*61 (Wire +uid 883,0 +shape (OrthoPolyLine +uid 884,0 +va (VaSet +vasetType 3 +) +xt "40000,34000,44092,34000" +pts [ +"40000,34000" +"44092,34000" +] +) +start &29 +end &34 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 885,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 886,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,32600,48600,34000" +st "resetSnch_N" +blo "39000,33800" +tm "WireNameMgr" +) +) +on &21 +) +*62 (Wire +uid 887,0 +shape (OrthoPolyLine +uid 888,0 +va (VaSet +vasetType 3 +) +xt "29000,34000,34000,34000" +pts [ +"34000,34000" +"29000,34000" +] +) +start &25 +end &17 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 891,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 892,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,32600,34400,34000" +st "logic1" +blo "30000,33800" +tm "WireNameMgr" +) +) +on &22 +) +*63 (Wire +uid 2477,0 +shape (OrthoPolyLine +uid 2478,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "73750,30000,81000,30000" +pts [ +"73750,30000" +"81000,30000" +] +) +start &48 +end &55 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2481,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2482,0 +va (VaSet +font "Verdana,12,0" +) +xt "76000,28700,82600,30100" +st "countOut" +blo "76000,29900" +tm "WireNameMgr" +) +) +on &54 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 85,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*66 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*68 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*69 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*70 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*71 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*72 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*73 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4435,-1431,122830,67716" +cachedDiagramExtent "-3000,0,109900,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2627,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*75 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*76 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*78 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*79 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*81 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*82 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*84 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*85 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*87 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*88 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*90 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*92 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*94 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6000,4000,7000" +st "Declarations" +blo "-3000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6900,400,7900" +st "Ports:" +blo "-3000,7700" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,10800,1800,11800" +st "Pre User:" +blo "-3000,11600" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-1000,11700,22600,14100" +st "-- constant counterBitNb: positive := 20; +constant pipelineStageNb: positive := 5;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,13700,6000,14700" +st "Diagram Signals:" +blo "-3000,14500" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,6000,3000,7000" +st "Post User:" +blo "-3000,6800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,6000,-3000,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 20,0 +usingSuid 1 +emptyRow *95 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*96 (RefLabelRowHdr +) +*97 (TitleRowHdr +) +*98 (FilterRowHdr +) +*99 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*100 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*101 (GroupColHdr +tm "GroupColHdrMgr" +) +*102 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*103 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*104 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*105 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*106 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*107 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*108 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1377,0 +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 2,0 +) +) +uid 1379,0 +) +*110 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 1381,0 +) +*111 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 6 +suid 10,0 +) +) +uid 1395,0 +) +*112 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 4 +suid 11,0 +) +) +uid 1397,0 +) +*113 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 7 +suid 12,0 +) +) +uid 1399,0 +) +*114 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 20,0 +) +) +uid 2489,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*115 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *116 (MRCItem +litem &95 +pos 7 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*117 (MRCItem +litem &96 +pos 0 +dimension 20 +uid 1422,0 +) +*118 (MRCItem +litem &97 +pos 1 +dimension 23 +uid 1423,0 +) +*119 (MRCItem +litem &98 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*120 (MRCItem +litem &108 +pos 0 +dimension 20 +uid 1378,0 +) +*121 (MRCItem +litem &109 +pos 3 +dimension 20 +uid 1380,0 +) +*122 (MRCItem +litem &110 +pos 1 +dimension 20 +uid 1382,0 +) +*123 (MRCItem +litem &111 +pos 4 +dimension 20 +uid 1396,0 +) +*124 (MRCItem +litem &112 +pos 5 +dimension 20 +uid 1398,0 +) +*125 (MRCItem +litem &113 +pos 6 +dimension 20 +uid 1400,0 +) +*126 (MRCItem +litem &114 +pos 2 +dimension 20 +uid 2490,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*127 (MRCItem +litem &99 +pos 0 +dimension 20 +uid 1426,0 +) +*128 (MRCItem +litem &101 +pos 1 +dimension 50 +uid 1427,0 +) +*129 (MRCItem +litem &102 +pos 2 +dimension 100 +uid 1428,0 +) +*130 (MRCItem +litem &103 +pos 3 +dimension 50 +uid 1429,0 +) +*131 (MRCItem +litem &104 +pos 4 +dimension 100 +uid 1430,0 +) +*132 (MRCItem +litem &105 +pos 5 +dimension 100 +uid 1431,0 +) +*133 (MRCItem +litem &106 +pos 6 +dimension 50 +uid 1432,0 +) +*134 (MRCItem +litem &107 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *135 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*136 (RefLabelRowHdr +) +*137 (TitleRowHdr +) +*138 (FilterRowHdr +) +*139 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*140 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*141 (GroupColHdr +tm "GroupColHdrMgr" +) +*142 (NameColHdr +tm "GenericNameColHdrMgr" +) +*143 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*144 (InitColHdr +tm "GenericValueColHdrMgr" +) +*145 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*146 (EolColHdr +tm "GenericEolColHdrMgr" +) +*147 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "16" +) +uid 2600,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*148 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *149 (MRCItem +litem &135 +pos 1 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*150 (MRCItem +litem &136 +pos 0 +dimension 20 +uid 1450,0 +) +*151 (MRCItem +litem &137 +pos 1 +dimension 23 +uid 1451,0 +) +*152 (MRCItem +litem &138 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*153 (MRCItem +litem &147 +pos 0 +dimension 20 +uid 2599,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*154 (MRCItem +litem &139 +pos 0 +dimension 20 +uid 1454,0 +) +*155 (MRCItem +litem &141 +pos 1 +dimension 50 +uid 1455,0 +) +*156 (MRCItem +litem &142 +pos 2 +dimension 100 +uid 1456,0 +) +*157 (MRCItem +litem &143 +pos 3 +dimension 100 +uid 1457,0 +) +*158 (MRCItem +litem &144 +pos 4 +dimension 50 +uid 1458,0 +) +*159 (MRCItem +litem &145 +pos 5 +dimension 50 +uid 1459,0 +) +*160 (MRCItem +litem &146 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/10-PipelinedOperators/Board/hds/pipeline@counter_circuit/symbol.sb b/10-PipelinedOperators/Board/hds/pipeline@counter_circuit/symbol.sb new file mode 100644 index 0000000..69c0aa7 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/pipeline@counter_circuit/symbol.sb @@ -0,0 +1,1532 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2006,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 164,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 168,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 2006,0 +) +) +uid 427,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 104,0 +optionalChildren [ +*19 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 107,0 +) +*20 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 109,0 +) +*21 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*22 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 130,0 +) +*23 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 134,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 426,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*25 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 113,0 +) +*26 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 117,0 +) +*27 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 119,0 +) +*28 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 121,0 +) +*29 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 123,0 +) +*30 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 125,0 +) +*31 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 127,0 +) +*32 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "16" +) +uid 525,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *47 (MRCItem +litem &33 +pos 1 +dimension 20 +) +uid 136,0 +optionalChildren [ +*48 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 139,0 +) +*49 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 141,0 +) +*50 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*51 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 526,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*52 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 145,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 149,0 +) +*54 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 151,0 +) +*55 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 153,0 +) +*56 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 155,0 +) +*57 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 157,0 +) +*58 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds/pipeline@counter_circuit/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds/pipeline@counter_circuit/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds/pipeline@counter_circuit" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds/pipelineCounter_circuit" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_circuit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:53:13" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "pipelineCounter_circuit" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds/pipeline@counter_circuit/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../Board/hds/pipelineCounter_circuit/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "PipelinedOperators" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:53:13" +) +(vvPair +variable "unit" +value "pipelineCounter_circuit" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "33000,17400,36400,18600" +st "clock" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,18000,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*61 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,19400,37700,20600" +st "reset_N" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,18000,12800" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*62 (CptPort +uid 428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 429,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,10625,48750,11375" +) +tg (CPTG +uid 430,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 431,0 +va (VaSet +font "courier,8,0" +) +xt "43000,10550,47000,11450" +st "countOut" +ju 2 +blo "47000,11250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 432,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,28500,13700" +st "countOut : OUT unsigned (counterBitNb-1 downto 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 2006,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,21800,35100,22700" +st "Board" +blo "32600,22500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22700,44600,23600" +st "pipelineCounter_circuit" +blo "32600,23400" +) +) +gi *63 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,25600,45500,28300" +st "Generic Declarations + +counterBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*64 (Grouping +uid 16,0 +optionalChildren [ +*65 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*67 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*70 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *75 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*77 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "59,39,954,780" +viewArea "-1900,-1000,71140,49248" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *78 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *79 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13700,2500,14600" +st "User:" +blo "0,14400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,2000,14600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 526,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/struct.bd b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/struct.bd new file mode 100644 index 0000000..b22a0e6 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/struct.bd @@ -0,0 +1,3649 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_dff" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 1071,0 +) +(Instance +name "I_inv2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1806,0 +) +(Instance +name "I_inv1" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 1817,0 +) +(Instance +name "I_cnt" +duLibraryName "PipelinedOperators" +duName "pipelineCounter" +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +mwi 0 +uid 2439,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb4" +number "4" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs2" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_ebs2" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:15:42" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_QuestaSimCompiler" +value "$HDS_PROJECT_DIR/../Board/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_SvAssistantInvoke" +value "$HDS_PROJECT_DIR/../Board/svassistant" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "pipelineCounter_ebs2" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs2\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:15:42" +) +(vvPair +variable "unit" +value "pipelineCounter_ebs2" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "15000,29625,16500,30375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "16500,30000,17000,30000" +pts [ +"16500,30000" +"17000,30000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "10200,29300,14000,30700" +st "clock" +ju 2 +blo "14000,30500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,8000,11800,9200" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "15000,41625,16500,42375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "16500,42000,17000,42000" +pts [ +"16500,42000" +"17000,42000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "8200,41300,14000,42700" +st "reset_N" +ju 2 +blo "14000,42500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-1000,16000,16200,17200" +st "SIGNAL reset : std_ulogic" +) +) +*5 (Grouping +uid 51,0 +optionalChildren [ +*6 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,65000,76000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,65500,59200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,61000,80000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,61500,76200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,63000,76000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,63500,59200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,63000,59000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,63500,55200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,62000,96000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "76200,62200,90300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*11 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "80000,61000,96000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "80200,61500,80200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,61000,76000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "60350,61400,70650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,64000,59000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,64500,55200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,65000,59000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,65500,55200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,64000,76000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "59200,64500,59200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "55000,61000,96000,66000" +) +oxt "14000,66000,55000,71000" +) +*16 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +) +xt "-1000,9200,12500,10400" +st "reset_N : std_ulogic" +) +) +*17 (HdlText +uid 818,0 +optionalChildren [ +*18 (EmbeddedText +uid 823,0 +commentText (CommentText +uid 824,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 825,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "22000,33000,28000,35000" +) +oxt "0,0,18000,5000" +text (MLText +uid 826,0 +va (VaSet +) +xt "22200,33200,27700,34400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 819,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "21000,32000,29000,36000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 820,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 821,0 +va (VaSet +) +xt "21400,36000,24000,37200" +st "eb4" +blo "21400,37000" +tm "HdlTextNameMgr" +) +*20 (Text +uid 822,0 +va (VaSet +) +xt "21400,37000,22800,38200" +st "4" +blo "21400,38000" +tm "HdlTextNumberMgr" +) +] +) +) +*21 (Net +uid 893,0 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 6 +suid 10,0 +) +declText (MLText +uid 894,0 +va (VaSet +) +xt "-1000,17200,18300,18400" +st "SIGNAL resetSnch_N : std_ulogic" +) +) +*22 (Net +uid 895,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 4 +suid 11,0 +) +declText (MLText +uid 896,0 +va (VaSet +) +xt "-1000,14800,16700,16000" +st "SIGNAL logic1 : std_uLogic" +) +) +*23 (Net +uid 897,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 7 +suid 12,0 +) +declText (MLText +uid 898,0 +va (VaSet +) +xt "-1000,18400,17800,19600" +st "SIGNAL resetSynch : std_ulogic" +) +) +*24 (SaComponent +uid 1071,0 +optionalChildren [ +*25 (CptPort +uid 1054,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1055,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,33625,34000,34375" +) +tg (CPTG +uid 1056,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1057,0 +va (VaSet +font "Verdana,12,0" +) +xt "35000,33300,36700,34700" +st "D" +blo "35000,34500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*26 (CptPort +uid 1058,0 +optionalChildren [ +*27 (FFT +pts [ +"34750,38000" +"34000,38375" +"34000,37625" +] +uid 1062,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,37625,34750,38375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1059,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33250,37625,34000,38375" +) +tg (CPTG +uid 1060,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1061,0 +va (VaSet +font "Verdana,12,0" +) +xt "35000,37400,38200,38800" +st "CLK" +blo "35000,38600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*28 (CptPort +uid 1063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1064,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "36625,40000,37375,40750" +) +tg (CPTG +uid 1065,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1066,0 +va (VaSet +font "Verdana,12,0" +) +xt "36000,38600,39200,40000" +st "CLR" +blo "36000,39800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*29 (CptPort +uid 1067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1068,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40000,33625,40750,34375" +) +tg (CPTG +uid 1069,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1070,0 +va (VaSet +font "Verdana,12,0" +) +xt "37200,33300,39000,34700" +st "Q" +ju 2 +blo "39000,34500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 1072,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,32000,40000,40000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1073,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*30 (Text +uid 1074,0 +va (VaSet +) +xt "38600,39700,42200,40900" +st "Board" +blo "38600,40700" +tm "BdLibraryNameMgr" +) +*31 (Text +uid 1075,0 +va (VaSet +) +xt "38600,40700,41300,41900" +st "DFF" +blo "38600,41700" +tm "CptNameMgr" +) +*32 (Text +uid 1076,0 +va (VaSet +) +xt "38600,41700,41600,42900" +st "I_dff" +blo "38600,42700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1077,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1078,0 +text (MLText +uid 1079,0 +va (VaSet +) +xt "11000,29000,11000,29000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*33 (SaComponent +uid 1806,0 +optionalChildren [ +*34 (CptPort +uid 1797,0 +optionalChildren [ +*35 (Circle +uid 1801,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44092,33546,45000,34454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1798,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43342,33625,44092,34375" +) +tg (CPTG +uid 1799,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1800,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45000,33500,47700,34900" +st "in1" +blo "45000,34700" +) +s (Text +uid 1815,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45000,34900,45000,34900" +blo "45000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*36 (CptPort +uid 1802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1803,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50000,33625,50750,34375" +) +tg (CPTG +uid 1804,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1805,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "46050,33500,49750,34900" +st "out1" +ju 2 +blo "49750,34700" +) +s (Text +uid 1816,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "49750,34900,49750,34900" +ju 2 +blo "49750,34900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 1807,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,31000,50000,37000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1808,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 1809,0 +va (VaSet +) +xt "46460,36700,50060,37900" +st "Board" +blo "46460,37700" +tm "BdLibraryNameMgr" +) +*38 (Text +uid 1810,0 +va (VaSet +) +xt "46460,37700,52860,38900" +st "inverterIn" +blo "46460,38700" +tm "CptNameMgr" +) +*39 (Text +uid 1811,0 +va (VaSet +) +xt "46460,38700,50460,39900" +st "I_inv2" +blo "46460,39700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1812,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1813,0 +text (MLText +uid 1814,0 +va (VaSet +) +xt "45000,37400,45000,37400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*40 (SaComponent +uid 1817,0 +optionalChildren [ +*41 (CptPort +uid 1826,0 +optionalChildren [ +*42 (Circle +uid 1831,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,41546,23000,42454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 1827,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "21342,41625,22092,42375" +) +tg (CPTG +uid 1828,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1829,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "23000,41500,25700,42900" +st "in1" +blo "23000,42700" +) +s (Text +uid 1830,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "23000,42900,23000,42900" +blo "23000,42900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*43 (CptPort +uid 1832,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1833,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "28000,41625,28750,42375" +) +tg (CPTG +uid 1834,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1835,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "24050,41500,27750,42900" +st "out1" +ju 2 +blo "27750,42700" +) +s (Text +uid 1836,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "27750,42900,27750,42900" +ju 2 +blo "27750,42900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 1818,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,39000,28000,45000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 1819,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 1820,0 +va (VaSet +) +xt "24460,44700,28060,45900" +st "Board" +blo "24460,45700" +tm "BdLibraryNameMgr" +) +*45 (Text +uid 1821,0 +va (VaSet +) +xt "24460,45700,30860,46900" +st "inverterIn" +blo "24460,46700" +tm "CptNameMgr" +) +*46 (Text +uid 1822,0 +va (VaSet +) +xt "24460,46700,28460,47900" +st "I_inv1" +blo "24460,47700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1823,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1824,0 +text (MLText +uid 1825,0 +va (VaSet +) +xt "23000,45400,23000,45400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*47 (SaComponent +uid 2439,0 +optionalChildren [ +*48 (CptPort +uid 2427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2428,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "73000,29625,73750,30375" +) +tg (CPTG +uid 2429,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2430,0 +va (VaSet +) +xt "66600,29550,72000,30750" +st "countOut" +ju 2 +blo "72000,30550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*49 (CptPort +uid 2431,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2432,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,29625,57000,30375" +) +tg (CPTG +uid 2433,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2434,0 +va (VaSet +) +xt "58000,29400,61400,30600" +st "clock" +blo "58000,30400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*50 (CptPort +uid 2435,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2436,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,31625,57000,32375" +) +tg (CPTG +uid 2437,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2438,0 +va (VaSet +) +xt "58000,31550,61300,32750" +st "reset" +blo "58000,32550" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 2440,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,26000,73000,34000" +) +oxt "32000,15000,48000,23000" +ttg (MlTextGroup +uid 2441,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 2442,0 +va (VaSet +font "Verdana,9,1" +) +xt "57600,33800,68400,35000" +st "PipelinedOperators" +blo "57600,34800" +tm "BdLibraryNameMgr" +) +*52 (Text +uid 2443,0 +va (VaSet +font "Verdana,9,1" +) +xt "57600,34700,66600,35900" +st "pipelineCounter" +blo "57600,35700" +tm "CptNameMgr" +) +*53 (Text +uid 2444,0 +va (VaSet +font "Verdana,9,1" +) +xt "57600,35600,60900,36800" +st "I_cnt" +blo "57600,36600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2445,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2446,0 +text (MLText +uid 2447,0 +va (VaSet +font "Verdana,8,0" +) +xt "57000,37400,76400,39400" +st "bitNb = counterBitNb ( positive ) +stageNb = pipelineStageNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*54 (Net +uid 2475,0 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 20,0 +) +declText (MLText +uid 2476,0 +va (VaSet +) +xt "-1000,10400,26300,11600" +st "countOut : unsigned(counterBitNb-1 downto 0)" +) +) +*55 (PortIoOut +uid 2483,0 +shape (CompositeShape +uid 2484,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 2485,0 +sl 0 +ro 270 +xt "81500,29625,83000,30375" +) +(Line +uid 2486,0 +sl 0 +ro 270 +xt "81000,30000,81500,30000" +pts [ +"81000,30000" +"81500,30000" +] +) +] +) +tg (WTG +uid 2487,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2488,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "84000,29350,110300,30750" +st "countOut : (counterBitNb-1 downto 0)" +blo "84000,30550" +tm "WireNameMgr" +) +) +) +*56 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "17000,30000,56250,30000" +pts [ +"17000,30000" +"56250,30000" +] +) +start &1 +end &49 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,28600,20800,30000" +st "clock" +blo "17000,29800" +tm "WireNameMgr" +) +) +on &2 +) +*57 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "17000,42000,22092,42000" +pts [ +"17000,42000" +"22092,42000" +] +) +start &3 +end &41 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,40600,21800,42000" +st "reset_N" +blo "16000,41800" +tm "WireNameMgr" +) +) +on &16 +) +*58 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "50000,32000,56250,34000" +pts [ +"50000,34000" +"53000,34000" +"53000,32000" +"56250,32000" +] +) +start &36 +end &50 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "Verdana,12,0" +) +xt "50000,30600,58600,32000" +st "resetSynch" +blo "50000,31800" +tm "WireNameMgr" +) +) +on &23 +) +*59 (Wire +uid 873,0 +shape (OrthoPolyLine +uid 874,0 +va (VaSet +vasetType 3 +) +xt "32000,38000,34000,38000" +pts [ +"32000,38000" +"34000,38000" +] +) +end &26 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 877,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 878,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,36600,33800,38000" +st "clock" +blo "30000,37800" +tm "WireNameMgr" +) +) +on &2 +) +*60 (Wire +uid 879,0 +shape (OrthoPolyLine +uid 880,0 +va (VaSet +vasetType 3 +) +xt "28000,40000,37000,42000" +pts [ +"28000,42000" +"37000,42000" +"37000,40000" +] +) +start &43 +end &28 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 882,0 +va (VaSet +font "Verdana,12,0" +) +xt "29000,40600,33100,42000" +st "reset" +blo "29000,41800" +tm "WireNameMgr" +) +) +on &4 +) +*61 (Wire +uid 883,0 +shape (OrthoPolyLine +uid 884,0 +va (VaSet +vasetType 3 +) +xt "40000,34000,44092,34000" +pts [ +"40000,34000" +"44092,34000" +] +) +start &29 +end &34 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 885,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 886,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,32600,48600,34000" +st "resetSnch_N" +blo "39000,33800" +tm "WireNameMgr" +) +) +on &21 +) +*62 (Wire +uid 887,0 +shape (OrthoPolyLine +uid 888,0 +va (VaSet +vasetType 3 +) +xt "29000,34000,34000,34000" +pts [ +"34000,34000" +"29000,34000" +] +) +start &25 +end &17 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 891,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 892,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,32600,34400,34000" +st "logic1" +blo "30000,33800" +tm "WireNameMgr" +) +) +on &22 +) +*63 (Wire +uid 2477,0 +shape (OrthoPolyLine +uid 2478,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "73750,30000,81000,30000" +pts [ +"73750,30000" +"81000,30000" +] +) +start &48 +end &55 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2481,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2482,0 +va (VaSet +font "Verdana,12,0" +) +xt "76000,28700,82600,30100" +st "countOut" +blo "76000,29900" +tm "WireNameMgr" +) +) +on &54 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 85,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*66 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*68 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*69 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*70 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*71 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*72 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*73 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,24,1921,1080" +viewArea "-4400,-1400,122575,68200" +cachedDiagramExtent "-3000,0,110300,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 2710,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "450,2150,1450,3350" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*75 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*76 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*78 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*79 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*81 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*82 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*84 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*85 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*87 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*88 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*90 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*92 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*94 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6000,4000,7000" +st "Declarations" +blo "-3000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,7000,400,8000" +st "Ports:" +blo "-3000,7800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,11600,1800,12600" +st "Pre User:" +blo "-3000,12400" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-1000,12600,22200,13800" +st "constant pipelineStageNb: positive := 5;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,13800,6000,14800" +st "Diagram Signals:" +blo "-3000,14600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,6000,3000,7000" +st "Post User:" +blo "-3000,6800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,6000,-3000,6000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 20,0 +usingSuid 1 +emptyRow *95 (LEmptyRow +) +uid 1406,0 +optionalChildren [ +*96 (RefLabelRowHdr +) +*97 (TitleRowHdr +) +*98 (FilterRowHdr +) +*99 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*100 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*101 (GroupColHdr +tm "GroupColHdrMgr" +) +*102 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*103 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*104 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*105 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*106 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*107 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*108 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1377,0 +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 2,0 +) +) +uid 1379,0 +) +*110 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 1381,0 +) +*111 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSnch_N" +t "std_ulogic" +o 6 +suid 10,0 +) +) +uid 1395,0 +) +*112 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 4 +suid 11,0 +) +) +uid 1397,0 +) +*113 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 7 +suid 12,0 +) +) +uid 1399,0 +) +*114 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 20,0 +) +) +uid 2489,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1419,0 +optionalChildren [ +*115 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *116 (MRCItem +litem &95 +pos 7 +dimension 20 +) +uid 1421,0 +optionalChildren [ +*117 (MRCItem +litem &96 +pos 0 +dimension 20 +uid 1422,0 +) +*118 (MRCItem +litem &97 +pos 1 +dimension 23 +uid 1423,0 +) +*119 (MRCItem +litem &98 +pos 2 +hidden 1 +dimension 20 +uid 1424,0 +) +*120 (MRCItem +litem &108 +pos 0 +dimension 20 +uid 1378,0 +) +*121 (MRCItem +litem &109 +pos 3 +dimension 20 +uid 1380,0 +) +*122 (MRCItem +litem &110 +pos 1 +dimension 20 +uid 1382,0 +) +*123 (MRCItem +litem &111 +pos 4 +dimension 20 +uid 1396,0 +) +*124 (MRCItem +litem &112 +pos 5 +dimension 20 +uid 1398,0 +) +*125 (MRCItem +litem &113 +pos 6 +dimension 20 +uid 1400,0 +) +*126 (MRCItem +litem &114 +pos 2 +dimension 20 +uid 2490,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1425,0 +optionalChildren [ +*127 (MRCItem +litem &99 +pos 0 +dimension 20 +uid 1426,0 +) +*128 (MRCItem +litem &101 +pos 1 +dimension 50 +uid 1427,0 +) +*129 (MRCItem +litem &102 +pos 2 +dimension 100 +uid 1428,0 +) +*130 (MRCItem +litem &103 +pos 3 +dimension 50 +uid 1429,0 +) +*131 (MRCItem +litem &104 +pos 4 +dimension 100 +uid 1430,0 +) +*132 (MRCItem +litem &105 +pos 5 +dimension 100 +uid 1431,0 +) +*133 (MRCItem +litem &106 +pos 6 +dimension 50 +uid 1432,0 +) +*134 (MRCItem +litem &107 +pos 7 +dimension 80 +uid 1433,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1420,0 +vaOverrides [ +] +) +] +) +uid 1405,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *135 (LEmptyRow +) +uid 1435,0 +optionalChildren [ +*136 (RefLabelRowHdr +) +*137 (TitleRowHdr +) +*138 (FilterRowHdr +) +*139 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*140 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*141 (GroupColHdr +tm "GroupColHdrMgr" +) +*142 (NameColHdr +tm "GenericNameColHdrMgr" +) +*143 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*144 (InitColHdr +tm "GenericValueColHdrMgr" +) +*145 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*146 (EolColHdr +tm "GenericEolColHdrMgr" +) +*147 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "16" +) +uid 2709,0 +) +] +) +pdm (PhysicalDM +uid 1447,0 +optionalChildren [ +*148 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *149 (MRCItem +litem &135 +pos 1 +dimension 20 +) +uid 1449,0 +optionalChildren [ +*150 (MRCItem +litem &136 +pos 0 +dimension 20 +uid 1450,0 +) +*151 (MRCItem +litem &137 +pos 1 +dimension 23 +uid 1451,0 +) +*152 (MRCItem +litem &138 +pos 2 +hidden 1 +dimension 20 +uid 1452,0 +) +*153 (MRCItem +litem &147 +pos 0 +dimension 20 +uid 2710,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1453,0 +optionalChildren [ +*154 (MRCItem +litem &139 +pos 0 +dimension 20 +uid 1454,0 +) +*155 (MRCItem +litem &141 +pos 1 +dimension 50 +uid 1455,0 +) +*156 (MRCItem +litem &142 +pos 2 +dimension 100 +uid 1456,0 +) +*157 (MRCItem +litem &143 +pos 3 +dimension 100 +uid 1457,0 +) +*158 (MRCItem +litem &144 +pos 4 +dimension 50 +uid 1458,0 +) +*159 (MRCItem +litem &145 +pos 5 +dimension 50 +uid 1459,0 +) +*160 (MRCItem +litem &146 +pos 6 +dimension 80 +uid 1460,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1448,0 +vaOverrides [ +] +) +] +) +uid 1434,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/symbol.sb b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/symbol.sb new file mode 100644 index 0000000..263c0c5 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs2/symbol.sb @@ -0,0 +1,1531 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2006,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 163,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 164,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 168,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 2006,0 +) +) +uid 427,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 169,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 104,0 +optionalChildren [ +*19 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 107,0 +) +*20 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 109,0 +) +*21 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 111,0 +) +*22 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 130,0 +) +*23 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 134,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 426,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 105,0 +optionalChildren [ +*25 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 113,0 +) +*26 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 117,0 +) +*27 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 119,0 +) +*28 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 121,0 +) +*29 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 123,0 +) +*30 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 125,0 +) +*31 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 127,0 +) +*32 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 103,0 +vaOverrides [ +] +) +] +) +uid 162,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 171,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "16" +) +uid 574,0 +) +] +) +pdm (PhysicalDM +uid 172,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *47 (MRCItem +litem &33 +pos 1 +dimension 20 +) +uid 136,0 +optionalChildren [ +*48 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 139,0 +) +*49 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 141,0 +) +*50 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 143,0 +) +*51 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 573,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 137,0 +optionalChildren [ +*52 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 145,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 149,0 +) +*54 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 151,0 +) +*55 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 153,0 +) +*56 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 155,0 +) +*57 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 157,0 +) +*58 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 159,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 135,0 +vaOverrides [ +] +) +] +) +uid 170,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs2" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_ebs2" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:15:42" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "pipelineCounter_ebs2" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs2\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs2\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:15:42" +) +(vvPair +variable "unit" +value "pipelineCounter_ebs2" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,17625,32000,18375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +) +xt "33000,17400,36400,18600" +st "clock" +blo "33000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11000,14800,12000" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*61 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +) +xt "33000,19400,37700,20600" +st "reset_N" +blo "33000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11900,15300,12900" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*62 (CptPort +uid 428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 429,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,10625,48750,11375" +) +tg (CPTG +uid 430,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 431,0 +va (VaSet +font "Verdana,8,0" +) +xt "42900,10550,47000,11550" +st "countOut" +ju 2 +blo "47000,11350" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 432,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12800,26300,13800" +st "countOut : OUT unsigned (counterBitNb-1 downto 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 2006,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,10000,48000,22000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "32600,21800,36100,23000" +st "Board" +blo "32600,22800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "32600,23000,45100,24200" +st "pipelineCounter_ebs2" +blo "32600,24000" +) +) +gi *63 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "32000,25600,43900,28600" +st "Generic Declarations + +counterBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*64 (Grouping +uid 16,0 +optionalChildren [ +*65 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*67 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*70 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *75 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*77 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "59,39,954,780" +viewArea "-1900,-1000,71140,49248" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *78 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *79 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,9000,7000,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,10000,3400,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,13700,3000,14700" +st "User:" +blo "0,14500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,9000,7600,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14600,2000,14600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 574,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/struct.bd b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/struct.bd new file mode 100644 index 0000000..810c09b --- /dev/null +++ b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/struct.bd @@ -0,0 +1,4418 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_inv1" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 130,0 +) +(Instance +name "I_dff" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 150,0 +) +(Instance +name "I_inv2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 176,0 +) +(Instance +name "I_cnt" +duLibraryName "PipelinedOperators" +duName "pipelineCounter" +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +mwi 0 +uid 196,0 +) +(Instance +name "I_pll" +duLibraryName "Lattice" +duName "pll" +elements [ +] +mwi 0 +uid 323,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb5" +number "5" +) +(EmbeddedInstance +name "eb6" +number "6" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs3" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "entity_name" +value "pipelineCounter_ebs3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:16:01" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "pipelineCounter_ebs3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs3\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:16:01" +) +(vvPair +variable "unit" +value "pipelineCounter_ebs3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "42000,4000,59000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "42200,4000,53600,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,0,63000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,0,62200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "42000,2000,59000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "42200,2000,52200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,2000,42000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "38200,2000,40300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,1000,79000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,1200,68600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "63000,0,79000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "63200,0,64800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,0,59000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "43350,400,53650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,3000,42000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "38200,3000,40300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,4000,42000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "38200,4000,40900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "42000,3000,59000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "42200,3000,55000,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "38000,0,79000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "29000,33625,30500,34375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "30500,34000,31000,34000" +pts [ +"30500,34000" +"31000,34000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "22300,33300,28000,34700" +st "reset_n" +ju 2 +blo "28000,34500" +tm "WireNameMgr" +) +) +) +*13 (PortIoIn +uid 115,0 +shape (CompositeShape +uid 116,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 117,0 +sl 0 +ro 270 +xt "28000,14625,29500,15375" +) +(Line +uid 118,0 +sl 0 +ro 270 +xt "29500,15000,30000,15000" +pts [ +"29500,15000" +"30000,15000" +] +) +] +) +tg (WTG +uid 119,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "23200,14300,27000,15700" +st "clock" +ju 2 +blo "27000,15500" +tm "WireNameMgr" +) +) +) +*14 (HdlText +uid 121,0 +optionalChildren [ +*15 (EmbeddedText +uid 126,0 +commentText (CommentText +uid 127,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 128,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "36000,25000,42000,27000" +) +oxt "0,0,18000,5000" +text (MLText +uid 129,0 +va (VaSet +) +xt "36200,25200,41700,26400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 122,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "35000,24000,43000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 123,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*16 (Text +uid 124,0 +va (VaSet +) +xt "35400,28000,38000,29200" +st "eb5" +blo "35400,29000" +tm "HdlTextNameMgr" +) +*17 (Text +uid 125,0 +va (VaSet +) +xt "35400,29000,36800,30200" +st "5" +blo "35400,30000" +tm "HdlTextNumberMgr" +) +] +) +) +*18 (SaComponent +uid 130,0 +optionalChildren [ +*19 (CptPort +uid 139,0 +optionalChildren [ +*20 (Circle +uid 144,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36092,33546,37000,34454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 140,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "35342,33625,36092,34375" +) +tg (CPTG +uid 141,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 142,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "37000,33500,39700,34900" +st "in1" +blo "37000,34700" +) +s (Text +uid 143,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "37000,34900,37000,34900" +blo "37000,34900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*21 (CptPort +uid 145,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 146,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42000,33625,42750,34375" +) +tg (CPTG +uid 147,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 148,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "38050,33500,41750,34900" +st "out1" +ju 2 +blo "41750,34700" +) +s (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "41750,34900,41750,34900" +ju 2 +blo "41750,34900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 131,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,31000,42000,37000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 132,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*22 (Text +uid 133,0 +va (VaSet +) +xt "38460,36700,42060,37900" +st "Board" +blo "38460,37700" +tm "BdLibraryNameMgr" +) +*23 (Text +uid 134,0 +va (VaSet +) +xt "38460,37700,44860,38900" +st "inverterIn" +blo "38460,38700" +tm "CptNameMgr" +) +*24 (Text +uid 135,0 +va (VaSet +) +xt "38460,38700,42460,39900" +st "I_inv1" +blo "38460,39700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 136,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 137,0 +text (MLText +uid 138,0 +va (VaSet +) +xt "37000,37400,37000,37400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*25 (SaComponent +uid 150,0 +optionalChildren [ +*26 (CptPort +uid 159,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 160,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "47250,25625,48000,26375" +) +tg (CPTG +uid 161,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 162,0 +va (VaSet +font "Verdana,12,0" +) +xt "49000,25300,50700,26700" +st "D" +blo "49000,26500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*27 (CptPort +uid 163,0 +optionalChildren [ +*28 (FFT +pts [ +"48750,30000" +"48000,30375" +"48000,29625" +] +uid 167,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,29625,48750,30375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 164,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "47250,29625,48000,30375" +) +tg (CPTG +uid 165,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 166,0 +va (VaSet +font "Verdana,12,0" +) +xt "49000,29400,52200,30800" +st "CLK" +blo "49000,30600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*29 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50625,32000,51375,32750" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +font "Verdana,12,0" +) +xt "50000,30600,53200,32000" +st "CLR" +blo "50000,31800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*30 (CptPort +uid 172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 173,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "54000,25625,54750,26375" +) +tg (CPTG +uid 174,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 175,0 +va (VaSet +font "Verdana,12,0" +) +xt "51200,25300,53000,26700" +st "Q" +ju 2 +blo "53000,26500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 151,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "48000,24000,54000,32000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 152,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*31 (Text +uid 153,0 +va (VaSet +) +xt "52600,31700,56200,32900" +st "Board" +blo "52600,32700" +tm "BdLibraryNameMgr" +) +*32 (Text +uid 154,0 +va (VaSet +) +xt "52600,32700,55300,33900" +st "DFF" +blo "52600,33700" +tm "CptNameMgr" +) +*33 (Text +uid 155,0 +va (VaSet +) +xt "52600,33700,55600,34900" +st "I_dff" +blo "52600,34700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 156,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 157,0 +text (MLText +uid 158,0 +va (VaSet +) +xt "25000,21000,25000,21000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*34 (SaComponent +uid 176,0 +optionalChildren [ +*35 (CptPort +uid 185,0 +optionalChildren [ +*36 (Circle +uid 190,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "58092,25546,59000,26454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 186,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "57342,25625,58092,26375" +) +tg (CPTG +uid 187,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 188,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "59000,25500,61700,26900" +st "in1" +blo "59000,26700" +) +s (Text +uid 189,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "59000,26900,59000,26900" +blo "59000,26900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*37 (CptPort +uid 191,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 192,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "64000,25625,64750,26375" +) +tg (CPTG +uid 193,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 194,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "60050,25500,63750,26900" +st "out1" +ju 2 +blo "63750,26700" +) +s (Text +uid 195,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "63750,26900,63750,26900" +ju 2 +blo "63750,26900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 177,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "59000,23000,64000,29000" +) +showPorts 0 +oxt "23000,4000,28000,10000" +ttg (MlTextGroup +uid 178,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*38 (Text +uid 179,0 +va (VaSet +) +xt "60460,28700,64060,29900" +st "Board" +blo "60460,29700" +tm "BdLibraryNameMgr" +) +*39 (Text +uid 180,0 +va (VaSet +) +xt "60460,29700,66860,30900" +st "inverterIn" +blo "60460,30700" +tm "CptNameMgr" +) +*40 (Text +uid 181,0 +va (VaSet +) +xt "60460,30700,64460,31900" +st "I_inv2" +blo "60460,31700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 182,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 183,0 +text (MLText +uid 184,0 +va (VaSet +) +xt "59000,29400,59000,29400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*41 (SaComponent +uid 196,0 +optionalChildren [ +*42 (CptPort +uid 205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "87000,21625,87750,22375" +) +tg (CPTG +uid 207,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 208,0 +va (VaSet +) +xt "80600,21550,86000,22750" +st "countOut" +ju 2 +blo "86000,22550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(bitNb-1 downto 0)" +o 1 +) +) +) +*43 (CptPort +uid 209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70250,21625,71000,22375" +) +tg (CPTG +uid 211,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 212,0 +va (VaSet +) +xt "72000,21400,75400,22600" +st "clock" +blo "72000,22400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +) +) +) +*44 (CptPort +uid 213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 214,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70250,23625,71000,24375" +) +tg (CPTG +uid 215,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 216,0 +va (VaSet +) +xt "72000,23550,75300,24750" +st "reset" +blo "72000,24550" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +) +) +) +] +shape (Rectangle +uid 197,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "71000,18000,87000,26000" +) +oxt "32000,15000,48000,23000" +ttg (MlTextGroup +uid 198,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 199,0 +va (VaSet +font "Verdana,9,1" +) +xt "71600,25800,82400,27000" +st "PipelinedOperators" +blo "71600,26800" +tm "BdLibraryNameMgr" +) +*46 (Text +uid 200,0 +va (VaSet +font "Verdana,9,1" +) +xt "71600,26700,80600,27900" +st "pipelineCounter" +blo "71600,27700" +tm "CptNameMgr" +) +*47 (Text +uid 201,0 +va (VaSet +font "Verdana,9,1" +) +xt "71600,27600,74900,28800" +st "I_cnt" +blo "71600,28600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 202,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 203,0 +text (MLText +uid 204,0 +va (VaSet +font "Verdana,8,0" +) +xt "71000,29400,90400,31400" +st "bitNb = counterBitNb ( positive ) +stageNb = pipelineStageNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*48 (PortIoOut +uid 217,0 +shape (CompositeShape +uid 218,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 219,0 +sl 0 +ro 270 +xt "95500,21625,97000,22375" +) +(Line +uid 220,0 +sl 0 +ro 270 +xt "95000,22000,95500,22000" +pts [ +"95000,22000" +"95500,22000" +] +) +] +) +tg (WTG +uid 221,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 222,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "98000,21300,124300,22700" +st "countOut : (counterBitNb-1 downto 0)" +blo "98000,22500" +tm "WireNameMgr" +) +) +) +*49 (Net +uid 259,0 +decl (Decl +n "reset_n" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 260,0 +va (VaSet +) +xt "2000,11600,15600,12800" +st "reset_n : std_ulogic +" +) +) +*50 (Net +uid 261,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 262,0 +va (VaSet +) +xt "2000,21200,21100,22400" +st "SIGNAL resetSynch : std_ulogic +" +) +) +*51 (Net +uid 263,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 264,0 +va (VaSet +) +xt "2000,10400,15100,11600" +st "clock : std_ulogic +" +) +) +*52 (Net +uid 265,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 266,0 +va (VaSet +) +xt "2000,20000,19500,21200" +st "SIGNAL reset : std_ulogic +" +) +) +*53 (Net +uid 269,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 6 +suid 6,0 +) +declText (MLText +uid 270,0 +va (VaSet +) +xt "2000,18800,20000,20000" +st "SIGNAL logic1 : std_uLogic +" +) +) +*54 (Net +uid 271,0 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 7 +suid 7,0 +) +declText (MLText +uid 272,0 +va (VaSet +) +xt "2000,12800,29600,14000" +st "countOut : unsigned(counterBitNb-1 downto 0) +" +) +) +*55 (SaComponent +uid 323,0 +optionalChildren [ +*56 (CptPort +uid 287,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 288,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,18625,58750,19375" +) +tg (CPTG +uid 289,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 290,0 +va (VaSet +font "Verdana,8,0" +) +xt "52700,18500,57000,19500" +st "clk10MHz" +ju 2 +blo "57000,19300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk10MHz" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*57 (CptPort +uid 291,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 292,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,17625,58750,18375" +) +tg (CPTG +uid 293,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 294,0 +va (VaSet +font "Verdana,8,0" +) +xt "52700,17500,57000,18500" +st "clk50MHz" +ju 2 +blo "57000,18300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk50MHz" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*58 (CptPort +uid 295,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 296,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,14625,58750,15375" +) +tg (CPTG +uid 297,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 298,0 +va (VaSet +font "Verdana,8,0" +) +xt "52700,14500,57000,15500" +st "clk60MHz" +ju 2 +blo "57000,15300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk60MHz" +t "std_ulogic" +o 5 +suid 3,0 +) +) +) +*59 (CptPort +uid 299,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 300,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,16625,58750,17375" +) +tg (CPTG +uid 301,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 302,0 +va (VaSet +font "Verdana,8,0" +) +xt "52700,16500,57000,17500" +st "clk75MHz" +ju 2 +blo "57000,17300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk75MHz" +t "std_ulogic" +o 6 +suid 4,0 +) +) +) +*60 (CptPort +uid 303,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 304,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,18625,46000,19375" +) +tg (CPTG +uid 305,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 306,0 +va (VaSet +font "Verdana,8,0" +) +xt "47000,18500,50200,19500" +st "en10M" +blo "47000,19300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en10M" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*61 (CptPort +uid 307,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 308,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,17625,46000,18375" +) +tg (CPTG +uid 309,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 310,0 +va (VaSet +font "Verdana,8,0" +) +xt "47000,17500,50200,18500" +st "en50M" +blo "47000,18300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en50M" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*62 (CptPort +uid 311,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 312,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,16625,46000,17375" +) +tg (CPTG +uid 313,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 314,0 +va (VaSet +font "Verdana,8,0" +) +xt "47000,16500,50200,17500" +st "en75M" +blo "47000,17300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en75M" +t "std_ulogic" +o 2 +suid 8,0 +) +) +) +*63 (CptPort +uid 315,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 316,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,20625,58750,21375" +) +tg (CPTG +uid 317,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 318,0 +va (VaSet +font "Verdana,8,0" +) +xt "52800,20500,57000,21500" +st "pllLocked" +ju 2 +blo "57000,21300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*64 (CptPort +uid 319,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 320,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,14625,46000,15375" +) +tg (CPTG +uid 321,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 322,0 +va (VaSet +font "Verdana,8,0" +) +xt "47000,14500,51600,15500" +st "clkIn100M" +blo "47000,15300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 324,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "46000,14000,58000,22000" +) +oxt "20000,20000,32000,28000" +ttg (MlTextGroup +uid 325,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 326,0 +va (VaSet +font "Verdana,8,1" +) +xt "54400,11000,58100,12000" +st "Lattice" +blo "54400,11800" +tm "BdLibraryNameMgr" +) +*66 (Text +uid 327,0 +va (VaSet +font "Verdana,8,1" +) +xt "54400,12000,56200,13000" +st "pll" +blo "54400,12800" +tm "CptNameMgr" +) +*67 (Text +uid 328,0 +va (VaSet +font "Verdana,8,1" +) +xt "54400,13000,57200,14000" +st "I_pll" +blo "54400,13800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 329,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 330,0 +text (MLText +uid 331,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,-55200,22000,-55200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 332,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "46250,20250,47750,21750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +*68 (Net +uid 339,0 +lang 11 +decl (Decl +n "clk_sys" +t "std_ulogic" +o 8 +suid 9,0 +) +declText (MLText +uid 340,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17200,19500,18000" +st "SIGNAL clk_sys : std_ulogic +" +) +) +*69 (HdlText +uid 341,0 +optionalChildren [ +*70 (EmbeddedText +uid 346,0 +commentText (CommentText +uid 347,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 348,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "33000,17000,39000,19000" +) +oxt "0,0,18000,5000" +text (MLText +uid 349,0 +va (VaSet +) +xt "33200,17200,38700,18400" +st " +logic0 <= '0'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 342,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "32000,16000,40000,20000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 343,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +uid 344,0 +va (VaSet +) +xt "32400,20000,35000,21200" +st "eb6" +blo "32400,21000" +tm "HdlTextNameMgr" +) +*72 (Text +uid 345,0 +va (VaSet +) +xt "32400,21000,33800,22200" +st "6" +blo "32400,22000" +tm "HdlTextNumberMgr" +) +] +) +) +*73 (Net +uid 370,0 +lang 11 +decl (Decl +n "logic0" +t "std_ulogic" +o 9 +suid 11,0 +) +declText (MLText +uid 371,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18000,19500,18800" +st "SIGNAL logic0 : std_ulogic +" +) +) +*74 (Net +uid 376,0 +decl (Decl +n "resetSynch_n" +t "std_ulogic" +o 5 +suid 12,0 +) +declText (MLText +uid 377,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,22400,19500,23200" +st "SIGNAL resetSynch_n : std_ulogic +" +) +) +*75 (Wire +uid 223,0 +shape (OrthoPolyLine +uid 224,0 +va (VaSet +vasetType 3 +) +xt "43000,26000,48000,26000" +pts [ +"48000,26000" +"43000,26000" +] +) +start &26 +end &14 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 227,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 228,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,24600,48400,26000" +st "logic1" +blo "44000,25800" +tm "WireNameMgr" +) +) +on &53 +) +*76 (Wire +uid 229,0 +shape (OrthoPolyLine +uid 230,0 +va (VaSet +vasetType 3 +) +xt "46000,30000,48000,30000" +pts [ +"46000,30000" +"48000,30000" +] +) +end &27 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 233,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 234,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,28600,47800,30000" +st "clock" +blo "44000,29800" +tm "WireNameMgr" +) +) +on &51 +) +*77 (Wire +uid 235,0 +shape (OrthoPolyLine +uid 236,0 +va (VaSet +vasetType 3 +) +xt "54000,26000,58092,26000" +pts [ +"54000,26000" +"58092,26000" +] +) +start &30 +end &35 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 237,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 238,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,24600,63200,26000" +st "resetSynch_n" +blo "53000,25800" +tm "WireNameMgr" +) +) +on &74 +) +*78 (Wire +uid 239,0 +shape (OrthoPolyLine +uid 240,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "87750,22000,95000,22000" +pts [ +"87750,22000" +"95000,22000" +] +) +start &42 +end &48 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 241,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 242,0 +va (VaSet +font "Verdana,12,0" +) +xt "90000,20700,96600,22100" +st "countOut" +blo "90000,21900" +tm "WireNameMgr" +) +) +on &54 +) +*79 (Wire +uid 243,0 +shape (OrthoPolyLine +uid 244,0 +va (VaSet +vasetType 3 +) +xt "31000,34000,36092,34000" +pts [ +"31000,34000" +"36092,34000" +] +) +start &12 +end &19 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 245,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 246,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,32600,35700,34000" +st "reset_n" +blo "30000,33800" +tm "WireNameMgr" +) +) +on &49 +) +*80 (Wire +uid 247,0 +shape (OrthoPolyLine +uid 248,0 +va (VaSet +vasetType 3 +) +xt "30000,15000,45250,15000" +pts [ +"30000,15000" +"45250,15000" +] +) +start &13 +end &64 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 249,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 250,0 +va (VaSet +font "Verdana,12,0" +) +xt "30000,13600,33800,15000" +st "clock" +blo "30000,14800" +tm "WireNameMgr" +) +) +on &51 +) +*81 (Wire +uid 251,0 +shape (OrthoPolyLine +uid 252,0 +va (VaSet +vasetType 3 +) +xt "64000,24000,70250,26000" +pts [ +"64000,26000" +"67000,26000" +"67000,24000" +"70250,24000" +] +) +start &37 +end &44 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 253,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 254,0 +va (VaSet +font "Verdana,12,0" +) +xt "64000,22600,72600,24000" +st "resetSynch" +blo "64000,23800" +tm "WireNameMgr" +) +) +on &50 +) +*82 (Wire +uid 255,0 +shape (OrthoPolyLine +uid 256,0 +va (VaSet +vasetType 3 +) +xt "42000,32000,51000,34000" +pts [ +"42000,34000" +"51000,34000" +"51000,32000" +] +) +start &21 +end &29 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 257,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 258,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,32600,47100,34000" +st "reset" +blo "43000,33800" +tm "WireNameMgr" +) +) +on &52 +) +*83 (Wire +uid 335,0 +shape (OrthoPolyLine +uid 336,0 +va (VaSet +vasetType 3 +) +xt "58750,15000,70250,22000" +pts [ +"58750,15000" +"67000,15000" +"67000,22000" +"70250,22000" +] +) +start &58 +end &43 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 337,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 338,0 +va (VaSet +) +xt "60750,13800,65350,15000" +st "clk_sys" +blo "60750,14800" +tm "WireNameMgr" +) +) +on &68 +) +*84 (Wire +uid 352,0 +optionalChildren [ +*85 (BdJunction +uid 362,0 +ps "OnConnectorStrategy" +shape (Circle +uid 363,0 +va (VaSet +vasetType 1 +) +xt "41600,16600,42400,17400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 353,0 +va (VaSet +vasetType 3 +) +xt "40000,17000,45250,17000" +pts [ +"40000,17000" +"45250,17000" +] +) +start &69 +end &62 +sat 2 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +) +xt "42000,15800,45800,17000" +st "logic0" +blo "42000,16800" +tm "WireNameMgr" +) +) +on &73 +) +*86 (Wire +uid 358,0 +optionalChildren [ +*87 (BdJunction +uid 368,0 +ps "OnConnectorStrategy" +shape (Circle +uid 369,0 +va (VaSet +vasetType 1 +) +xt "41600,17600,42400,18400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 359,0 +va (VaSet +vasetType 3 +) +xt "42000,17000,45250,19000" +pts [ +"45250,19000" +"42000,19000" +"42000,17000" +] +) +start &60 +end &85 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 360,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 361,0 +va (VaSet +isHidden 1 +) +xt "41250,17800,45050,19000" +st "logic0" +blo "41250,18800" +tm "WireNameMgr" +) +) +on &73 +) +*88 (Wire +uid 364,0 +shape (OrthoPolyLine +uid 365,0 +va (VaSet +vasetType 3 +) +xt "42000,18000,45250,18000" +pts [ +"45250,18000" +"42000,18000" +] +) +start &61 +end &87 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 366,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 367,0 +va (VaSet +isHidden 1 +) +xt "41250,16800,45050,18000" +st "logic0" +blo "41250,17800" +tm "WireNameMgr" +) +) +on &73 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *89 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*91 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*93 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*94 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*95 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*96 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*97 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*98 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-300,-5300,97894,48524" +cachedDiagramExtent "0,0,124300,39900" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 470,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*100 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*101 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*103 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*104 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*106 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*107 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*108 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*109 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*110 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*111 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*112 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*113 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*114 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*115 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*116 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*117 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*118 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*119 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,8000,7400,9200" +st "Declarations" +blo "0,9000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,9200,3700,10400" +st "Ports:" +blo "0,10200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,14000,5200,15200" +st "Pre User:" +blo "0,15000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15200,24000,16000" +st "constant pipelineStageNb: positive := 5;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,16000,9500,17200" +st "Diagram Signals:" +blo "0,17000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "0,8000,6400,9200" +st "Post User:" +blo "0,9000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,8000,0,8000" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *120 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*121 (RefLabelRowHdr +) +*122 (TitleRowHdr +) +*123 (FilterRowHdr +) +*124 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*125 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*126 (GroupColHdr +tm "GroupColHdrMgr" +) +*127 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*128 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*129 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*130 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*131 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*132 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*133 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 273,0 +) +*134 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 275,0 +) +*135 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 277,0 +) +*136 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 279,0 +) +*137 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 6 +suid 6,0 +) +) +uid 283,0 +) +*138 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 7 +suid 7,0 +) +) +uid 285,0 +) +*139 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clk_sys" +t "std_ulogic" +o 8 +suid 9,0 +) +) +uid 372,0 +) +*140 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "logic0" +t "std_ulogic" +o 9 +suid 11,0 +) +) +uid 374,0 +) +*141 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch_n" +t "std_ulogic" +o 5 +suid 12,0 +) +) +uid 378,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*142 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *143 (MRCItem +litem &120 +pos 9 +dimension 20 +) +uid 69,0 +optionalChildren [ +*144 (MRCItem +litem &121 +pos 0 +dimension 20 +uid 70,0 +) +*145 (MRCItem +litem &122 +pos 1 +dimension 23 +uid 71,0 +) +*146 (MRCItem +litem &123 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*147 (MRCItem +litem &133 +pos 0 +dimension 20 +uid 274,0 +) +*148 (MRCItem +litem &134 +pos 1 +dimension 20 +uid 276,0 +) +*149 (MRCItem +litem &135 +pos 2 +dimension 20 +uid 278,0 +) +*150 (MRCItem +litem &136 +pos 3 +dimension 20 +uid 280,0 +) +*151 (MRCItem +litem &137 +pos 4 +dimension 20 +uid 284,0 +) +*152 (MRCItem +litem &138 +pos 5 +dimension 20 +uid 286,0 +) +*153 (MRCItem +litem &139 +pos 6 +dimension 20 +uid 373,0 +) +*154 (MRCItem +litem &140 +pos 7 +dimension 20 +uid 375,0 +) +*155 (MRCItem +litem &141 +pos 8 +dimension 20 +uid 379,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*156 (MRCItem +litem &124 +pos 0 +dimension 20 +uid 74,0 +) +*157 (MRCItem +litem &126 +pos 1 +dimension 50 +uid 75,0 +) +*158 (MRCItem +litem &127 +pos 2 +dimension 100 +uid 76,0 +) +*159 (MRCItem +litem &128 +pos 3 +dimension 50 +uid 77,0 +) +*160 (MRCItem +litem &129 +pos 4 +dimension 100 +uid 78,0 +) +*161 (MRCItem +litem &130 +pos 5 +dimension 100 +uid 79,0 +) +*162 (MRCItem +litem &131 +pos 6 +dimension 50 +uid 80,0 +) +*163 (MRCItem +litem &132 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *164 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*165 (RefLabelRowHdr +) +*166 (TitleRowHdr +) +*167 (FilterRowHdr +) +*168 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*169 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*170 (GroupColHdr +tm "GroupColHdrMgr" +) +*171 (NameColHdr +tm "GenericNameColHdrMgr" +) +*172 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*173 (InitColHdr +tm "GenericValueColHdrMgr" +) +*174 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*175 (EolColHdr +tm "GenericEolColHdrMgr" +) +*176 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "16" +) +uid 469,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*177 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *178 (MRCItem +litem &164 +pos 1 +dimension 20 +) +uid 97,0 +optionalChildren [ +*179 (MRCItem +litem &165 +pos 0 +dimension 20 +uid 98,0 +) +*180 (MRCItem +litem &166 +pos 1 +dimension 23 +uid 99,0 +) +*181 (MRCItem +litem &167 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*182 (MRCItem +litem &176 +pos 0 +dimension 20 +uid 470,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*183 (MRCItem +litem &168 +pos 0 +dimension 20 +uid 102,0 +) +*184 (MRCItem +litem &170 +pos 1 +dimension 50 +uid 103,0 +) +*185 (MRCItem +litem &171 +pos 2 +dimension 100 +uid 104,0 +) +*186 (MRCItem +litem &172 +pos 3 +dimension 100 +uid 105,0 +) +*187 (MRCItem +litem &173 +pos 4 +dimension 50 +uid 106,0 +) +*188 (MRCItem +litem &174 +pos 5 +dimension 50 +uid 107,0 +) +*189 (MRCItem +litem &175 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/symbol.sb b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/symbol.sb new file mode 100644 index 0000000..efcb031 --- /dev/null +++ b/10-PipelinedOperators/Board/hds/pipeline@counter_ebs3/symbol.sb @@ -0,0 +1,1466 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 3,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 3,0 +) +) +uid 113,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "16" +) +uid 270,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *47 (MRCItem +litem &33 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*48 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 97,0 +) +*49 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 98,0 +) +*50 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*51 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 269,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*52 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 101,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 102,0 +) +*54 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 103,0 +) +*55 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 104,0 +) +*56 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 105,0 +) +*57 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 106,0 +) +*58 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs3" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "entity_name" +value "pipelineCounter_ebs3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:16:01" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "pipelineCounter_ebs3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipeline@counter_ebs3\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\Board\\hds\\pipelineCounter_ebs3\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:16:01" +) +(vvPair +variable "unit" +value "pipelineCounter_ebs3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,6625,15000,7375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,6300,21700,7700" +st "reset_n" +blo "16000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61000,4000" +st "reset_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_n" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*61 (CptPort +uid 119,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 120,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,7625,15000,8375" +) +tg (CPTG +uid 121,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 122,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,7300,19800,8700" +st "clock" +blo "16000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 123,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,61000,3200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 2,0 +) +) +) +*62 (CptPort +uid 124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 125,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45000,6625,45750,7375" +) +tg (CPTG +uid 126,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 127,0 +va (VaSet +font "Verdana,12,0" +) +xt "22800,6300,44000,7700" +st "countOut : (counterBitNb-1:0)" +ju 2 +blo "44000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 128,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,72000,4800" +st "countOut : OUT unsigned (counterBitNb-1 downto 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,45000,26000" +) +oxt "15000,6000,44000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,30300,16000" +st "Board" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,39300,17200" +st "pipelineCounter_ebs3" +blo "26800,17000" +) +) +gi *63 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,14500,14400" +st "Generic Declarations + +counterBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*64 (Grouping +uid 16,0 +optionalChildren [ +*65 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *75 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*77 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *78 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *79 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4800,45200,6000" +st "User:" +blo "42000,5800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,44000,6000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 270,0 +activeModelName "Symbol:CDM" +) diff --git a/10-PipelinedOperators/Board/ise/pipelinedOperators.xise b/10-PipelinedOperators/Board/ise/pipelinedOperators.xise new file mode 100644 index 0000000..4c288f1 --- /dev/null +++ b/10-PipelinedOperators/Board/ise/pipelinedOperators.xise @@ -0,0 +1,328 @@ + + + +

      + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/10-PipelinedOperators/PipelinedOperators/hdl/parallelAdder_studentVersion.vhd b/10-PipelinedOperators/PipelinedOperators/hdl/parallelAdder_studentVersion.vhd new file mode 100644 index 0000000..63da026 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hdl/parallelAdder_studentVersion.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE studentVersion OF parallelAdder IS +BEGIN + + sum <= (others => '0'); + cOut <= '0'; + +END ARCHITECTURE studentVersion; diff --git a/10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_noPipe.vhd b/10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_noPipe.vhd new file mode 100644 index 0000000..8da0b7a --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_noPipe.vhd @@ -0,0 +1,45 @@ +ARCHITECTURE noPipe OF pipelineAdder IS + + constant stageBitNb : positive := sum'length/stageNb; + subtype stageOperandType is signed(stageBitNb-1 downto 0); + type stageOperandArrayType is array(stageNb-1 downto 0) of stageOperandType; + subtype carryType is std_ulogic_vector(stageNb downto 0); + + signal a_int, b_int, sum_int : stageOperandArrayType; + signal carryIn : carryType; + + COMPONENT parallelAdder + GENERIC ( + bitNb : positive := 32 + ); + PORT ( + sum : OUT signed (bitNb-1 DOWNTO 0); + cIn : IN std_ulogic ; + cOut : OUT std_ulogic ; + a : IN signed (bitNb-1 DOWNTO 0); + b : IN signed (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + + carryIn(0) <= cIn; + + pipeline: for index in stageOperandArrayType'range generate + a_int(index) <= a(index*stageBitNb+stageBitNb-1 downto index*stageBitNb); + b_int(index) <= b(index*stageBitNb+stageBitNb-1 downto index*stageBitNb); + partialAdder: parallelAdder + GENERIC MAP (bitNb => stageBitNb) + PORT MAP ( + a => a_int(index), + b => b_int(index), + sum => sum_int(index), + cIn => carryIn(index), + cOut => carryIn(index+1) + ); + sum(index*stageBitNb+stageBitNb-1 downto index*stageBitNb) <= sum_int(index); + end generate pipeline; + + cOut <= carryIn(carryIn'high); + +END ARCHITECTURE noPipe; diff --git a/10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_studentVersion.vhd b/10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_studentVersion.vhd new file mode 100644 index 0000000..c5475b6 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hdl/pipelineAdder_studentVersion.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE studentVersion OF pipelineAdder IS +BEGIN + + sum <= (others => '0'); + cOut <= '0'; + +END ARCHITECTURE studentVersion; diff --git a/10-PipelinedOperators/PipelinedOperators/hdl/pipelineCounter_studentVersion.vhd b/10-PipelinedOperators/PipelinedOperators/hdl/pipelineCounter_studentVersion.vhd new file mode 100644 index 0000000..fff62b4 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hdl/pipelineCounter_studentVersion.vhd @@ -0,0 +1,43 @@ +ARCHITECTURE studentVersion OF pipelineCounter IS + + signal b : signed(countOut'range); + signal sum : signed(countOut'range); + + COMPONENT pipelineAdder + GENERIC ( + bitNb : positive := 32; + stageNb : positive := 4 + ); + PORT ( + reset : IN std_ulogic; + clock : IN std_ulogic; + cIn : IN std_ulogic; + a : IN signed (bitNb-1 DOWNTO 0); + b : IN signed (bitNb-1 DOWNTO 0); + sum : OUT signed (bitNb-1 DOWNTO 0); + cOut : OUT std_ulogic + ); + END COMPONENT; + +BEGIN + + b <= to_signed(1, b'length); + + adder: pipelineAdder + GENERIC MAP ( + bitNb => countOut'length, + stageNb => stageNb + ) + PORT MAP ( + reset => reset, + clock => clock, + cIn => '0', + a => sum, + b => b, + sum => sum, + cOut => open + ); + + countOut <= unsigned(sum); + +END ARCHITECTURE studentVersion; diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_parallelAdder_studentVersion.vhd._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_parallelAdder_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_parallelAdder_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_paralleladder_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_paralleladder_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_paralleladder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_noPipe.vhd._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_noPipe.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_noPipe.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_studentVersion.vhd._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineAdder_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineCounter_studentVersion.vhd._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineCounter_studentVersion.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineCounter_studentVersion.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineadder_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineadder_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelineadder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelinecounter_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelinecounter_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/.hdlsidedata/_pipelinecounter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/10-PipelinedOperators/PipelinedOperators/hds/_paralleladder._epf b/10-PipelinedOperators/PipelinedOperators/hds/_paralleladder._epf new file mode 100644 index 0000000..da7dc94 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/_paralleladder._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom parallelAdder_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion diff --git a/10-PipelinedOperators/PipelinedOperators/hds/_pipelineadder._epf b/10-PipelinedOperators/PipelinedOperators/hds/_pipelineadder._epf new file mode 100644 index 0000000..d791dd8 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/_pipelineadder._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom pipelineAdder_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/PipelinedOperators/hds/_pipelinecounter._epf b/10-PipelinedOperators/PipelinedOperators/hds/_pipelinecounter._epf new file mode 100644 index 0000000..a214d7f --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/_pipelinecounter._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom pipelineCounter_studentVersion.vhd +DEFAULT_ARCHITECTURE atom studentVersion +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/PipelinedOperators/hds/parallel@adder/symbol.sb b/10-PipelinedOperators/PipelinedOperators/hds/parallel@adder/symbol.sb new file mode 100644 index 0000000..a824846 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/parallel@adder/symbol.sb @@ -0,0 +1,1603 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2007,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 161,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sum" +t "signed" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +uid 162,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +uid 197,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "a" +t "signed" +b "(bitNb-1 downto 0)" +o 4 +suid 2006,0 +) +) +uid 209,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "b" +t "signed" +b "(bitNb-1 downto 0)" +o 5 +suid 2007,0 +) +) +uid 211,0 +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 100,0 +optionalChildren [ +*21 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 103,0 +) +*22 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*24 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 128,0 +) +*25 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 129,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 198,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 210,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 212,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*29 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 109,0 +) +*30 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 113,0 +) +*31 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 115,0 +) +*32 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 117,0 +) +*33 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 119,0 +) +*34 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 121,0 +) +*35 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 123,0 +) +*36 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "32" +) +uid 155,0 +) +] +) +pdm (PhysicalDM +uid 166,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 134,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 136,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 156,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 140,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 144,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 146,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 148,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 150,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 152,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds\\parallel@adder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds\\parallel@adder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_config" +) +(vvPair +variable "d" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds\\parallel@adder" +) +(vvPair +variable "d_logical" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds\\parallelAdder" +) +(vvPair +variable "date" +value "25.04.2012" +) +(vvPair +variable "day" +value "mer." +) +(vvPair +variable "day_long" +value "mercredi" +) +(vvPair +variable "dd" +value "25" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "parallelAdder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "pipelinedOperators" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SEm/pipelinedOperators/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "parallelAdder" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds\\parallel@adder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Labs\\SEm_labs\\Prefs\\..\\pipelinedOperators\\hds\\parallelAdder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-pipelinedOperators" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "16:03:50" +) +(vvPair +variable "unit" +value "parallelAdder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2012" +) +(vvPair +variable "yy" +value "12" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39625,23000,40375,23750" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "Verdana,9,0" +) +xt "39000,21800,41800,23000" +st "sum" +blo "39000,22800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11000,24500,11800" +st "sum : OUT signed (bitNb-1 downto 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sum" +t "signed" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45334,18625,46084,19375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "Verdana,9,0" +) +xt "41934,18400,44334,19600" +st "cIn" +ju 2 +blo "44334,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,17000,12600" +st "cIn : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*66 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 237,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33917,18625,34667,19375" +) +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 195,0 +va (VaSet +font "Verdana,9,0" +) +xt "35667,18400,38867,19600" +st "cOut" +blo "35667,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,17000,13400" +st "cOut : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +) +*67 (CptPort +uid 199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 238,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35625,14250,36375,15000" +) +tg (CPTG +uid 201,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 202,0 +va (VaSet +font "Verdana,9,0" +) +xt "35000,15000,36300,16200" +st "a" +ju 2 +blo "36300,16000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 203,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13400,24500,14200" +st "a : IN signed (bitNb-1 downto 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(bitNb-1 downto 0)" +o 4 +suid 2006,0 +) +) +) +*68 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 205,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,14250,44375,15000" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "Verdana,9,0" +) +xt "43000,15000,44300,16200" +st "b" +ju 2 +blo "44300,16000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14200,23000,15000" +st "b : IN signed (bitNb-1 downto 0) +" +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(bitNb-1 downto 0)" +o 5 +suid 2007,0 +) +) +) +] +shape (Alu +uid 236,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,15000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "41600,22800,52300,24000" +st "pipelinedOperators" +blo "41600,23800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "41600,24000,49500,25200" +st "parallelAdder" +blo "41600,25000" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "42000,26600,53500,29000" +st "Generic Declarations + +bitNb positive 32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,46200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "104,37,1389,882" +viewArea "-1053,-1053,76925,50372" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,15000,2400,16000" +st "User:" +blo "0,15800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16000,2000,16000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 261,0 +activeModelName "Symbol" +) diff --git a/10-PipelinedOperators/PipelinedOperators/hds/pipeline@adder/symbol.sb b/10-PipelinedOperators/PipelinedOperators/hds/pipeline@adder/symbol.sb new file mode 100644 index 0000000..7c08fde --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/pipeline@adder/symbol.sb @@ -0,0 +1,1795 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2007,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 159,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 160,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 161,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sum" +t "signed" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +uid 162,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 5 +suid 2005,0 +) +) +uid 197,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "a" +t "signed" +b "(bitNb-1 downto 0)" +o 6 +suid 2006,0 +) +) +uid 209,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "b" +t "signed" +b "(bitNb-1 downto 0)" +o 7 +suid 2007,0 +) +) +uid 211,0 +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 100,0 +optionalChildren [ +*23 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 103,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 105,0 +) +*25 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*26 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 126,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 127,0 +) +*28 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 128,0 +) +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 198,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 210,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 212,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*33 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 109,0 +) +*34 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 115,0 +) +*36 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 117,0 +) +*37 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 119,0 +) +*38 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 121,0 +) +*39 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 123,0 +) +*40 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "" +) +uid 155,0 +) +*54 (LogGeneric +generic (GiElement +name "stageNb" +type "positive" +value "" +) +uid 262,0 +) +] +) +pdm (PhysicalDM +uid 166,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *56 (MRCItem +litem &41 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*57 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 134,0 +) +*58 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 136,0 +) +*59 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*60 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 156,0 +) +*61 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 263,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*62 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 140,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 144,0 +) +*64 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 146,0 +) +*65 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 148,0 +) +*66 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 150,0 +) +*67 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 152,0 +) +*68 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@adder/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@adder/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@adder" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipelineAdder" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineAdder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:50:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "pipelineAdder" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@adder/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipelineAdder/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "PipelinedOperators" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:50:15" +) +(vvPair +variable "unit" +value "pipelineAdder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39625,23000,40375,23750" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "39000,21800,40500,22700" +st "sum" +blo "39000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,23500,11900" +st "sum : OUT signed (bitNb-1 downto 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sum" +t "signed" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35250,20625,36000,21375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "37000,20400,39500,21300" +st "clock" +blo "37000,21100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11800,16500,12700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35917,21625,36667,22375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "37667,21400,40167,22300" +st "reset" +blo "37667,22100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,16500,13500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*73 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45334,18625,46084,19375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +font "courier,9,0" +) +xt "42834,18400,44334,19300" +st "cIn" +ju 2 +blo "44334,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,16500,14300" +st "cIn : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*74 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 237,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33917,18625,34667,19375" +) +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 195,0 +va (VaSet +font "courier,9,0" +) +xt "35667,18400,37667,19300" +st "cOut" +blo "35667,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14200,16500,15100" +st "cOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 5 +suid 2005,0 +) +) +) +*75 (CptPort +uid 199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 238,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35625,14250,36375,15000" +) +tg (CPTG +uid 201,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 202,0 +va (VaSet +font "courier,9,0" +) +xt "35800,15000,36300,15900" +st "a" +ju 2 +blo "36300,15700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 203,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15000,23500,15900" +st "a : IN signed (bitNb-1 downto 0) ;" +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(bitNb-1 downto 0)" +o 6 +suid 2006,0 +) +) +) +*76 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 205,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,14250,44375,15000" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "courier,9,0" +) +xt "43800,15000,44300,15900" +st "b" +ju 2 +blo "44300,15700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15800,22500,16700" +st "b : IN signed (bitNb-1 downto 0)" +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(bitNb-1 downto 0)" +o 7 +suid 2007,0 +) +) +) +] +shape (Alu +uid 236,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,15000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "41600,22800,51100,23700" +st "PipelinedOperators" +blo "41600,23500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "41600,23700,48600,24600" +st "pipelineAdder" +blo "41600,24400" +) +) +gi *77 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "42000,26600,52500,30200" +st "Generic Declarations + +bitNb positive +stageNb positive +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "" +) +(GiElement +name "stageNb" +type "positive" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*78 (Grouping +uid 16,0 +optionalChildren [ +*79 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*84 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *89 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*91 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "96,43,1381,888" +viewArea "-1100,-1100,80640,44125" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *92 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *93 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,3000,10900" +st "Ports:" +blo "0,10700" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,16600,2500,17500" +st "User:" +blo "0,17300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 286,0 +activeModelName "Symbol" +) diff --git a/10-PipelinedOperators/PipelinedOperators/hds/pipeline@counter/symbol.sb b/10-PipelinedOperators/PipelinedOperators/hds/pipeline@counter/symbol.sb new file mode 100644 index 0000000..593b289 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators/hds/pipeline@counter/symbol.sb @@ -0,0 +1,1547 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2007,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 159,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 160,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +uid 162,0 +) +*5 (RefLabelRowHdr +) +*6 (TitleRowHdr +) +*7 (FilterRowHdr +) +*8 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*9 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*10 (GroupColHdr +tm "GroupColHdrMgr" +) +*11 (NameColHdr +tm "NameColHdrMgr" +) +*12 (ModeColHdr +tm "ModeColHdrMgr" +) +*13 (TypeColHdr +tm "TypeColHdrMgr" +) +*14 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*15 (InitColHdr +tm "InitColHdrMgr" +) +*16 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 163,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 100,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 103,0 +) +*20 (MRCItem +litem &6 +pos 1 +dimension 23 +uid 105,0 +) +*21 (MRCItem +litem &7 +pos 2 +hidden 1 +dimension 20 +uid 107,0 +) +*22 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 126,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 127,0 +) +*24 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 129,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*25 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 109,0 +) +*26 (MRCItem +litem &10 +pos 1 +dimension 50 +uid 113,0 +) +*27 (MRCItem +litem &11 +pos 2 +dimension 100 +uid 115,0 +) +*28 (MRCItem +litem &12 +pos 3 +dimension 50 +uid 117,0 +) +*29 (MRCItem +litem &13 +pos 4 +dimension 100 +uid 119,0 +) +*30 (MRCItem +litem &14 +pos 5 +dimension 100 +uid 121,0 +) +*31 (MRCItem +litem &15 +pos 6 +dimension 50 +uid 123,0 +) +*32 (MRCItem +litem &16 +pos 7 +dimension 80 +uid 125,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 99,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 165,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "bitNb" +type "positive" +value "" +) +uid 155,0 +) +*46 (LogGeneric +generic (GiElement +name "stageNb" +type "positive" +value "" +) +uid 262,0 +) +] +) +pdm (PhysicalDM +uid 166,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &33 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*49 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 134,0 +) +*50 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 136,0 +) +*51 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 138,0 +) +*52 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 156,0 +) +*53 (MRCItem +litem &46 +pos 1 +dimension 20 +uid 263,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 132,0 +optionalChildren [ +*54 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 140,0 +) +*55 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 144,0 +) +*56 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 146,0 +) +*57 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 148,0 +) +*58 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 150,0 +) +*59 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 152,0 +) +*60 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 154,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 164,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@counter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@counter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@counter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipelineCounter" +) +(vvPair +variable "date" +value "03/11/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/11/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "08:50:00" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "pipelineCounter" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipeline@counter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/PipelinedOperators/Prefs/../PipelinedOperators/hds/pipelineCounter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "PipelinedOperators" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:50:00" +) +(vvPair +variable "unit" +value "pipelineCounter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 57,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,18625,48750,19375" +) +tg (CPTG +uid 59,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,9,0" +) +xt "43000,18550,47000,19450" +st "countOut" +ju 2 +blo "47000,19250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 61,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10800,26000,11700" +st "countOut : OUT unsigned (bitNb-1 downto 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 88,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,18625,32000,19375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "33000,18400,35500,19300" +st "clock" +blo "33000,19100" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11700,18000,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*64 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,20625,32000,21375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "33000,20550,35500,21450" +st "reset" +blo "33000,21250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12600,17000,13500" +st "reset : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 312,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,15000,48000,23000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32600,22800,42100,23700" +st "PipelinedOperators" +blo "32600,23500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32600,23700,40600,24600" +st "pipelineCounter" +blo "32600,24400" +) +) +gi *65 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,26400,42500,30000" +st "Generic Declarations + +bitNb positive +stageNb positive +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "" +) +(GiElement +name "stageNb" +type "positive" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*66 (Grouping +uid 16,0 +optionalChildren [ +*67 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*72 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*73 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *77 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*79 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "80,51,1197,899" +viewArea "-1100,-1100,73592,47038" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *80 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *81 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,6500,9900" +st "Declarations" +blo "0,9700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,9900,3000,10800" +st "Ports:" +blo "0,10600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13500,2500,14400" +st "User:" +blo "0,14200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,7500,9900" +st "Internal User:" +blo "0,9700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14400,2000,14400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 335,0 +activeModelName "Symbol" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hdl/parallelAdder_tester_test.vhd b/10-PipelinedOperators/PipelinedOperators_test/hdl/parallelAdder_tester_test.vhd new file mode 100644 index 0000000..ce32375 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hdl/parallelAdder_tester_test.vhd @@ -0,0 +1,48 @@ +ARCHITECTURE test OF parallelAdder_tester IS + + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + signal sReset: std_uLogic := '1'; + + constant aMax: signed(a'range) := (a'high => '0', others => '1'); + constant aIncr: signed(a'range) := shift_right(aMax, 4)+1; + constant bIncr: signed(b'range) := shift_right(aMax, 4)+1; + signal a_int, b_int, sum_int: signed(a'range); + +BEGIN + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + sReset <= '1', '0' after 2*clockPeriod; + + ------------------------------------------------------------------------------ + -- test sequence + process + begin + a_int <= (a_int'high => '1', others => '0'); + b_int <= (b_int'high => '1', others => '0'); + wait until sReset = '0'; + -- data values + while a_int < aMax-aIncr loop + a_int <= a_int + aIncr; + b_int <= b_int + bIncr; + wait until rising_edge(sClock); + assert sum = a_int + b_int + report "sum is wrong !" + severity error; + end loop; + -- stop simulation + assert false + report cr & cr & + "End of Simulation" & + cr + severity failure; + wait; + end process; + + cIn <= '0'; + a <= a_int; + b <= b_int; + sum_int <= a_int + b_int; + +END ARCHITECTURE test; diff --git a/10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineAdder_tester_test.vhd b/10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineAdder_tester_test.vhd new file mode 100644 index 0000000..2388559 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineAdder_tester_test.vhd @@ -0,0 +1,68 @@ +ARCHITECTURE test OF pipelineAdder_tester IS + + constant clockFrequency: real := 66.0E6; + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + signal sReset: std_uLogic := '1'; + + constant pipeDelay: positive := 4; + constant aMax: signed(a'range) := (a'high => '0', others => '1'); + constant aIncr: signed(a'range) := shift_right(aMax, 3)+1 + 32; + constant bIncr: signed(b'range) := shift_right(aMax, 3)+1 + 32; + signal a_int, b_int, sumNoPipe: signed(a'range); + + type sumArrayType is array(1 to stageNb-1) of signed(sumNoPipe'range); + signal sumArray : sumArrayType := (others => (others => '0')); + +BEGIN + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + sReset <= '1', '0' after 2*clockPeriod; + reset <= sReset; + + ------------------------------------------------------------------------------ + -- test sequence + process + begin + a_int <= (a_int'high => '1', others => '0'); + b_int <= (b_int'high => '1', others => '0'); + wait until sReset = '0'; + -- data values + while a_int < aMax-aIncr loop + a_int <= a_int + aIncr; + b_int <= b_int + bIncr; + wait until rising_edge(sClock); + end loop; + -- stop simulation + for index in 1 to pipeDelay loop + wait until rising_edge(sClock); + end loop; + assert false + report cr & cr & + "End of Simulation" & + cr + severity failure; + wait; + end process; + + cIn <= '0'; + a <= a_int; + b <= b_int; + sumNoPipe <= a_int + b_int; + + ------------------------------------------------------------------------------ + -- delay sum + process(sClock) + begin + if rising_edge(sClock) then + sumArray(1) <= sumNoPipe; + sumArray(2 to sumArray'length) <= sumArray(1 to sumArray'length-1); + assert sum = sumArray(sumArray'length-1) + report "sum is wrong !" + severity error; + end if; + end process; + +END ARCHITECTURE test; diff --git a/10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineCounter_tester_test.vhd b/10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineCounter_tester_test.vhd new file mode 100644 index 0000000..b6f992b --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hdl/pipelineCounter_tester_test.vhd @@ -0,0 +1,24 @@ +-- +-- VHDL Architecture PipelinedOperators_test.PipelineCounter_tester.test +-- +-- Created: +-- by - zas.UNKNOWN (ZELL) +-- at - 16:00:38 02/20/2020 +-- +-- using Mentor Graphics HDL Designer(TM) 2019.2 (Build 5) +-- +ARCHITECTURE test OF PipelineCounter_tester IS + + constant clockFrequency: real := 66.0E6; + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal sClock: std_uLogic := '1'; + +BEGIN + ------------------------------------------------------------------------------ + -- clock and reset + sClock <= not sClock after clockPeriod/2; + clock <= transport sClock after clockPeriod*9/10; + reset <= '1', '0' after 2*clockPeriod; + +END ARCHITECTURE test; + diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_parallelAdder_tester_test.vhd._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_parallelAdder_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_parallelAdder_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_struct.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tester_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tester_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_paralleladder_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineAdder_tester_test.vhd._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineAdder_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineAdder_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineCounter_tester_test.vhd._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineCounter_tester_test.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineCounter_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_struct.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tester_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tester_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelineadder_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_struct.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tester_entity.vhg._fpf b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tester_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/.hdlsidedata/_pipelinecounter_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/@d@a@c_tester_1/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/@d@a@c_tester_1/interface new file mode 100644 index 0000000..b372831 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/@d@a@c_tester_1/interface @@ -0,0 +1,1035 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\@d@a@c_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\@d@a@c_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\@d@a@c_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\DAC_tester" +) +(vvPair +variable "date" +value "01/30/06" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "30" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE0787" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "month" +value "Jan" +) +(vvPair +variable "month_long" +value "January" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\@d@a@c_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\DAC_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "12:48:31" +) +(vvPair +variable "unit" +value "DAC_tester" +) +(vvPair +variable "user" +value "userE" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2006" +) +(vvPair +variable "yy" +value "06" +) +] +) +uid 71,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 178,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,5250,24375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 179,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 180,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "23400,7000,24600,9700" +st "clock" +ju 2 +blo "24400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 181,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62000,4400" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 183,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "82625,5250,83375,6000" +) +n "lowpassOut" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 185,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "82400,7000,83600,24900" +st "lowpassOut : (signalBitNb-1:0)" +ju 2 +blo "83400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 186,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,73500,2800" +st "lowpassOut : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*4 (CptPort +uid 187,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 188,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19625,5250,20375,6000" +) +n "parallelIn" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +m 1 +o 4 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 189,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 190,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "19400,7000,20600,23800" +st "parallelIn : (signalBitNb-1:0)" +ju 2 +blo "20400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 191,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "parallelIn : OUT unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*5 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,5250,26375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 195,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "25400,7000,26600,9600" +st "reset" +ju 2 +blo "26400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "reset : OUT std_ulogic +" +) +) +*6 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53625,5250,54375,6000" +) +n "serialOut" +t "std_ulogic" +o 5 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 200,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "53400,7000,54600,11700" +st "serialOut" +ju 2 +blo "54400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 201,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,62000,3600" +st "serialOut : IN std_ulogic ; +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,90000,14000" +) +oxt "15000,6000,66000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "48900,8800,56100,10000" +st "Curves_test" +blo "48900,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "48900,10000,55900,11200" +st "DAC_tester" +blo "48900,11000" +) +) +gi *7 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "27500,6000,41000,8400" +st "Generic Declarations + +signalBitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*8 (Grouping +uid 16,0 +optionalChildren [ +*9 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,45500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*14 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*17 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48700,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *19 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*20 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*21 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "DAC_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *22 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *23 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,6000,44000,7000" +st "User:" +blo "42000,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7000,44000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 201,0 +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/@pipeline@counter_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/@pipeline@counter_tester/interface new file mode 100644 index 0000000..fddb104 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/@pipeline@counter_tester/interface @@ -0,0 +1,1492 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 74,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 7,0 +) +) +uid 261,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 2 +suid 8,0 +) +) +uid 263,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 9,0 +) +) +uid 265,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 87,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 89,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 90,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 91,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 92,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 262,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 264,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 266,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 93,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 94,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 95,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 96,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 97,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 98,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 99,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 100,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 101,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 88,0 +vaOverrides [ +] +) +] +) +uid 73,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "counterBitNb" +type "integer" +value "" +) +uid 152,0 +) +*46 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 221,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *48 (MRCItem +litem &33 +pos 2 +dimension 20 +) +uid 117,0 +optionalChildren [ +*49 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 118,0 +) +*50 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 119,0 +) +*51 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*52 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 153,0 +) +*53 (MRCItem +litem &46 +pos 1 +dimension 20 +uid 222,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*54 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 122,0 +) +*55 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 123,0 +) +*56 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 124,0 +) +*57 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 125,0 +) +*58 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 126,0 +) +*59 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 127,0 +) +*60 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 128,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\@pipeline@counter_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\@pipeline@counter_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\@pipeline@counter_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\PipelineCounter_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "PipelineCounter_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:21:00" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "PipelineCounter_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\@pipeline@counter_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\PipelineCounter_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "15:21:00" +) +(vvPair +variable "unit" +value "PipelineCounter_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 72,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 247,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,5250,24375,6000" +) +tg (CPTG +uid 248,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 249,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "23300,7000,24700,10800" +st "clock" +ju 2 +blo "24500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 250,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61000,4000" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 7,0 +) +) +) +*63 (CptPort +uid 251,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 252,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "47625,5250,48375,6000" +) +tg (CPTG +uid 253,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 254,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "47300,7000,48700,13600" +st "countOut" +ju 2 +blo "48500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 255,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,73000,3200" +st "countOut : IN unsigned (counterBitNb-1 downto 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 2 +suid 8,0 +) +) +) +*64 (CptPort +uid 256,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 257,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,5250,26375,6000" +) +tg (CPTG +uid 258,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 259,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "25300,7000,26700,11100" +st "reset" +ju 2 +blo "26500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 260,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,60000,4800" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,58000,13000" +) +oxt "15000,6000,58000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "29450,8300,43550,9500" +st "PipelinedOperators_test" +blo "29450,9300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "29450,9500,42850,10700" +st "PipelineCounter_tester" +blo "29450,10500" +) +) +gi *65 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "7000,5500,21000,8700" +st "Generic Declarations + +counterBitNb integer +clockFrequency real " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "integer" +value "" +) +(GiElement +name "clockFrequency" +type "real" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*66 (Grouping +uid 16,0 +optionalChildren [ +*67 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,50000,48000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "31200,50000,42600,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,46000,52000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "48200,46000,51200,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,48000,48000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "31200,48000,41200,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,48000,31000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,48000,29300,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,47000,68000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "48200,47200,57600,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,46000,68000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "52200,46000,53800,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,46000,48000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "32350,46400,42650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,49000,31000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,49000,29300,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,50000,31000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,50000,29900,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,49000,48000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "31200,49000,40700,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "27000,46000,68000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *77 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*79 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "86,260,1103,950" +viewArea "-500,-500,70510,47560" +cachedDiagramExtent "0,0,73000,51000" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PipelinedOperators_test" +entityName "pipelineCounter_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *80 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *81 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4800,45200,6000" +st "User:" +blo "42000,5800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,44000,6000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 266,0 +activeModelName "Symbol:GEN" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tb._epf b/10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tb._epf new file mode 100644 index 0000000..f844456 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom parallel@adder_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 0 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tester._epf b/10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tester._epf new file mode 100644 index 0000000..d3edd4f --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/_paralleladder_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom parallelAdder_tester_test.vhd diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tb._epf b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tb._epf new file mode 100644 index 0000000..598ecd8 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom pipeline@adder_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tester._epf b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tester._epf new file mode 100644 index 0000000..af4309e --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelineadder_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom pipelineAdder_tester_test.vhd diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tb._epf b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tb._epf new file mode 100644 index 0000000..19636be --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom pipeline@counter_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tester._epf b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tester._epf new file mode 100644 index 0000000..cf9322b --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/_pipelinecounter_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom pipelineCounter_tester_test.vhd diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/beamer@periph@blanking_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/beamer@periph@blanking_tester/interface new file mode 100644 index 0000000..49eb239 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/beamer@periph@blanking_tester/interface @@ -0,0 +1,1408 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\beamerPeriphBlanking_tester" +) +(vvPair +variable "date" +value "04/24/08" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "24" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE1635" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\beamer@periph@blanking_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\beamerPeriphBlanking_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "13:33:53" +) +(vvPair +variable "unit" +value "beamerPeriphBlanking_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +m 1 +o 11 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,22200" +st "addr : (addressBitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,73500,6000" +st "addr : OUT unsigned (addressBitNb-1 DOWNTO 0) ; +" +) +) +*3 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 6 +d 0 +s 0 +sf 1 +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "40400,7000,41600,9700" +st "clock" +ju 2 +blo "41400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,61500,6800" +st "clock : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +n "cs" +t "std_ulogic" +m 1 +o 3 +r 7 +d 0 +s 0 +sf 1 +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "36400,7000,37600,8200" +st "cs" +ju 2 +blo "37400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,61500,7600" +st "cs : OUT std_ulogic ; +" +) +) +*5 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +m 1 +o 10 +r 8 +d 0 +s 0 +sf 1 +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "24400,7000,25600,21500" +st "dataIn : (dataBitNb-1:0)" +ju 2 +blo "25400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,76500,8400" +st "dataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +) +*6 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "26400,7000,27600,22300" +st "dataOut : (dataBitNb-1:0)" +ju 2 +blo "27400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,76000,2800" +st "dataOut : IN std_logic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +) +*7 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78625,5250,79375,6000" +) +n "outX" +t "std_ulogic" +o 8 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "78400,7000,79600,9300" +st "outX" +ju 2 +blo "79400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,61500,3600" +st "outX : IN std_ulogic ; +" +) +) +*8 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76625,5250,77375,6000" +) +n "outY" +t "std_ulogic" +o 7 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "76400,7000,77600,9300" +st "outY" +ju 2 +blo "77400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,61500,4400" +st "outY : IN std_ulogic ; +" +) +) +*9 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74625,5250,75375,6000" +) +n "outZ" +t "std_ulogic" +o 15 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "74400,7000,75600,9300" +st "outZ" +ju 2 +blo "75400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,61500,5200" +st "outZ : IN std_ulogic ; +" +) +) +*10 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "rd" +t "std_ulogic" +m 1 +o 6 +r 9 +d 0 +s 0 +sf 1 +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 94,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,8000" +st "rd" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,61500,9200" +st "rd : OUT std_ulogic ; +" +) +) +*11 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 10 +d 0 +s 0 +sf 1 +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 99,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "42400,7000,43600,9600" +st "reset" +ju 2 +blo "43400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,61500,10000" +st "reset : OUT std_ulogic ; +" +) +) +*12 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "70625,5250,71375,6000" +) +n "selSinCos" +t "std_ulogic" +m 1 +o 14 +r 11 +d 0 +s 0 +sf 1 +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 104,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "70400,7000,71600,12100" +st "selSinCos" +ju 2 +blo "71400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,61500,10800" +st "selSinCos : OUT std_ulogic ; +" +) +) +*13 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +n "wrH" +t "std_ulogic" +m 1 +o 5 +r 12 +d 0 +s 0 +sf 1 +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 109,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "32400,7000,33600,8900" +st "wrH" +ju 2 +blo "33400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,61500,11600" +st "wrH : OUT std_ulogic ; +" +) +) +*14 (CptPort +uid 111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 112,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +n "wrL" +t "std_ulogic" +m 1 +o 4 +r 13 +d 0 +s 0 +sf 1 +tg (CPTG +uid 113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 114,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "34400,7000,35600,8700" +st "wrL" +ju 2 +blo "35400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 115,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11600,60500,12400" +st "wrL : OUT std_ulogic +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,87000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "42650,8800,49850,10000" +st "Curves_test" +blo "42650,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "42650,10000,59350,11200" +st "beamerPeriphBlanking_tester" +blo "42650,11000" +) +) +gi *15 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,6000,40000,9200" +st "Generic Declarations + +dataBitNb positive 16 +addressBitNb positive 24 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*16 (Grouping +uid 16,0 +optionalChildren [ +*17 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*19 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*20 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*21 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*22 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*23 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*24 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*25 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*26 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52100,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *27 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*28 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*29 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "beamerPeriphBlanking_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *30 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *31 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,12400,44000,13400" +st "User:" +blo "42000,13200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13400,44000,13400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 115,0 +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/struct.bd b/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/struct.bd new file mode 100644 index 0000000..4e1760f --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/struct.bd @@ -0,0 +1,2791 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "pipelinedOperators_test" +duName "parallelAdder_tester" +elements [ +(GiElement +name "adderBitNb" +type "positive" +value "adderBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 2178,0 +) +(Instance +name "I_DUT" +duLibraryName "pipelinedOperators" +duName "parallelAdder" +elements [ +(GiElement +name "bitNb" +type "positive" +value "adderBitNb" +) +] +mwi 0 +uid 2425,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallelAdder_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "parallelAdder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:19:47" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "parallelAdder_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallelAdder_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:19:47" +) +(vvPair +variable "unit" +value "parallelAdder_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 2178,0 +shape (Rectangle +uid 2179,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "19000,29000,59000,37000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2180,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 2181,0 +va (VaSet +) +xt "18850,37200,30850,38100" +st "pipelinedOperators_test" +blo "18850,37900" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 2182,0 +va (VaSet +) +xt "18850,38400,29350,39300" +st "parallelAdder_tester" +blo "18850,39100" +tm "BlkNameMgr" +) +*15 (Text +uid 2183,0 +va (VaSet +) +xt "18850,39600,22850,40500" +st "I_tester" +blo "18850,40300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2184,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2185,0 +text (MLText +uid 2186,0 +va (VaSet +) +xt "19000,41000,45200,43400" +st "adderBitNb = adderBitNb ( positive ) +clockFrequency = clockFrequency ( real ) +" +) +header "" +) +elements [ +(GiElement +name "adderBitNb" +type "positive" +value "adderBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*16 (Net +uid 2240,0 +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 20,0 +) +declText (MLText +uid 2241,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14800,13500,15800" +st "SIGNAL cOut : std_ulogic +" +) +) +*17 (Net +uid 2248,0 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 21,0 +) +declText (MLText +uid 2249,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13800,13200,14800" +st "SIGNAL cIn : std_ulogic +" +) +) +*18 (Net +uid 2256,0 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +declText (MLText +uid 2257,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12800,23100,13800" +st "SIGNAL b : signed(adderBitNb-1 DOWNTO 0) +" +) +) +*19 (Net +uid 2264,0 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 23,0 +) +declText (MLText +uid 2265,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11800,23100,12800" +st "SIGNAL a : signed(adderBitNb-1 DOWNTO 0) +" +) +) +*20 (Net +uid 2284,0 +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 5 +suid 24,0 +) +declText (MLText +uid 2285,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15800,23700,16800" +st "SIGNAL sum : signed(adderBitNb-1 DOWNTO 0) +" +) +) +*21 (SaComponent +uid 2425,0 +optionalChildren [ +*22 (CptPort +uid 2405,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2406,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,21000,37375,21750" +) +tg (CPTG +uid 2407,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2408,0 +va (VaSet +) +xt "36000,19800,37500,20700" +st "sum" +blo "36000,20500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sum" +t "signed" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*23 (CptPort +uid 2409,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2410,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42334,16625,43084,17375" +) +tg (CPTG +uid 2411,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2412,0 +va (VaSet +) +xt "39834,16400,41334,17300" +st "cIn" +ju 2 +blo "41334,17100" +) +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*24 (CptPort +uid 2413,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2414,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30917,16625,31667,17375" +) +tg (CPTG +uid 2415,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2416,0 +va (VaSet +) +xt "32667,16400,34667,17300" +st "cOut" +blo "32667,17100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 3 +suid 2005,0 +) +) +) +*25 (CptPort +uid 2417,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2418,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,12250,33375,13000" +) +tg (CPTG +uid 2419,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2420,0 +va (VaSet +) +xt "32800,13000,33300,13900" +st "a" +ju 2 +blo "33300,13700" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(bitNb-1 downto 0)" +o 4 +suid 2006,0 +) +) +) +*26 (CptPort +uid 2421,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2422,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,12250,41375,13000" +) +tg (CPTG +uid 2423,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2424,0 +va (VaSet +) +xt "40800,13000,41300,13900" +st "b" +ju 2 +blo "41300,13700" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(bitNb-1 downto 0)" +o 5 +suid 2007,0 +) +) +) +] +shape (Alu +uid 2426,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "29000,13000,45000,21000" +) +oxt "32000,15000,48000,23000" +ttg (MlTextGroup +uid 2427,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*27 (Text +uid 2428,0 +va (VaSet +font "Verdana,9,1" +) +xt "38600,20800,48100,21700" +st "pipelinedOperators" +blo "38600,21500" +tm "BdLibraryNameMgr" +) +*28 (Text +uid 2429,0 +va (VaSet +font "Verdana,9,1" +) +xt "38600,22000,45600,22900" +st "parallelAdder" +blo "38600,22700" +tm "CptNameMgr" +) +*29 (Text +uid 2430,0 +va (VaSet +font "Verdana,9,1" +) +xt "38600,23200,41100,24100" +st "I_DUT" +blo "38600,23900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2431,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2432,0 +text (MLText +uid 2433,0 +va (VaSet +font "Verdana,8,0" +) +xt "39000,24600,54600,25600" +st "bitNb = adderBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "adderBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*30 (Wire +uid 2242,0 +shape (OrthoPolyLine +uid 2243,0 +va (VaSet +vasetType 3 +) +xt "27000,17000,30917,29000" +pts [ +"30917,17000" +"27000,17000" +"27000,29000" +] +) +start &24 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2246,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2247,0 +va (VaSet +font "Verdana,12,0" +) +xt "25917,15600,29617,17000" +st "cOut" +blo "25917,16800" +tm "WireNameMgr" +) +) +on &16 +) +*31 (Wire +uid 2250,0 +shape (OrthoPolyLine +uid 2251,0 +va (VaSet +vasetType 3 +) +xt "43084,17000,47000,29000" +pts [ +"43084,17000" +"47000,17000" +"47000,29000" +] +) +start &23 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2254,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2255,0 +va (VaSet +font "Verdana,12,0" +) +xt "45084,15600,47784,17000" +st "cIn" +blo "45084,16800" +tm "WireNameMgr" +) +) +on &17 +) +*32 (Wire +uid 2258,0 +shape (OrthoPolyLine +uid 2259,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41000,9000,49000,29000" +pts [ +"41000,12250" +"41000,9000" +"49000,9000" +"49000,29000" +] +) +start &26 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2262,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2263,0 +va (VaSet +font "Verdana,12,0" +) +xt "39500,9350,41100,10750" +st "b" +blo "39500,10550" +tm "WireNameMgr" +) +) +on &18 +) +*33 (Wire +uid 2266,0 +shape (OrthoPolyLine +uid 2267,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "33000,7000,51000,29000" +pts [ +"33000,12250" +"33000,7000" +"51000,7000" +"51000,29000" +] +) +start &25 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2270,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2271,0 +va (VaSet +font "Verdana,12,0" +) +xt "31500,9350,33100,10750" +st "a" +blo "31500,10550" +tm "WireNameMgr" +) +) +on &19 +) +*34 (Wire +uid 2286,0 +shape (OrthoPolyLine +uid 2287,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "37000,21750,37000,29000" +pts [ +"37000,21750" +"37000,29000" +] +) +start &22 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2290,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2291,0 +va (VaSet +font "Verdana,12,0" +) +xt "34000,25600,37400,27000" +st "sum" +blo "34000,26800" +tm "WireNameMgr" +) +) +on &20 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *35 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*37 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*38 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*39 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*40 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*41 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*42 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*43 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*44 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1065,-1065,93672,50408" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 2631,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*46 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*47 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*49 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*50 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*52 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*53 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*55 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*56 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*58 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*59 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*61 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*63 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*65 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5200,6500,6100" +st "Declarations" +blo "0,5900" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6100,3000,7000" +st "Ports:" +blo "0,6800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7000,4500,7900" +st "Pre User:" +blo "0,7700" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,7900,22100,10900" +st "constant adderBitNb: positive := 8; +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,10900,8500,11800" +st "Diagram Signals:" +blo "0,11600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5200,5500,6100" +st "Post User:" +blo "0,5900" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5200,0,5200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 24,0 +usingSuid 1 +emptyRow *66 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*67 (RefLabelRowHdr +) +*68 (TitleRowHdr +) +*69 (FilterRowHdr +) +*70 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*71 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*72 (GroupColHdr +tm "GroupColHdrMgr" +) +*73 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*74 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*75 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*76 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*77 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*78 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*79 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 20,0 +) +) +uid 2276,0 +) +*80 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 21,0 +) +) +uid 2278,0 +) +*81 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +) +uid 2280,0 +) +*82 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 23,0 +) +) +uid 2282,0 +) +*83 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 5 +suid 24,0 +) +) +uid 2292,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*84 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *85 (MRCItem +litem &66 +pos 5 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*86 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 1337,0 +) +*87 (MRCItem +litem &68 +pos 1 +dimension 23 +uid 1338,0 +) +*88 (MRCItem +litem &69 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*89 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 2277,0 +) +*90 (MRCItem +litem &80 +pos 1 +dimension 20 +uid 2279,0 +) +*91 (MRCItem +litem &81 +pos 2 +dimension 20 +uid 2281,0 +) +*92 (MRCItem +litem &82 +pos 3 +dimension 20 +uid 2283,0 +) +*93 (MRCItem +litem &83 +pos 4 +dimension 20 +uid 2293,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*94 (MRCItem +litem &70 +pos 0 +dimension 20 +uid 1341,0 +) +*95 (MRCItem +litem &72 +pos 1 +dimension 50 +uid 1342,0 +) +*96 (MRCItem +litem &73 +pos 2 +dimension 100 +uid 1343,0 +) +*97 (MRCItem +litem &74 +pos 3 +dimension 50 +uid 1344,0 +) +*98 (MRCItem +litem &75 +pos 4 +dimension 100 +uid 1345,0 +) +*99 (MRCItem +litem &76 +pos 5 +dimension 100 +uid 1346,0 +) +*100 (MRCItem +litem &77 +pos 6 +dimension 50 +uid 1347,0 +) +*101 (MRCItem +litem &78 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *102 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*103 (RefLabelRowHdr +) +*104 (TitleRowHdr +) +*105 (FilterRowHdr +) +*106 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*107 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*108 (GroupColHdr +tm "GroupColHdrMgr" +) +*109 (NameColHdr +tm "GenericNameColHdrMgr" +) +*110 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*111 (InitColHdr +tm "GenericValueColHdrMgr" +) +*112 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*113 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*114 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *115 (MRCItem +litem &102 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*116 (MRCItem +litem &103 +pos 0 +dimension 20 +uid 1365,0 +) +*117 (MRCItem +litem &104 +pos 1 +dimension 23 +uid 1366,0 +) +*118 (MRCItem +litem &105 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*119 (MRCItem +litem &106 +pos 0 +dimension 20 +uid 1369,0 +) +*120 (MRCItem +litem &108 +pos 1 +dimension 50 +uid 1370,0 +) +*121 (MRCItem +litem &109 +pos 2 +dimension 100 +uid 1371,0 +) +*122 (MRCItem +litem &110 +pos 3 +dimension 100 +uid 1372,0 +) +*123 (MRCItem +litem &111 +pos 4 +dimension 50 +uid 1373,0 +) +*124 (MRCItem +litem &112 +pos 5 +dimension 50 +uid 1374,0 +) +*125 (MRCItem +litem &113 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/symbol.sb b/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/symbol.sb new file mode 100644 index 0000000..ac0be72 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tb/symbol.sb @@ -0,0 +1,1216 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallelAdder_tb" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "entity_name" +value "parallelAdder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:11:08" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "parallelAdder_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallelAdder_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:11:08" +) +(vvPair +variable "unit" +value "parallelAdder_tb" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,36700,16000" +st "PipelinedOperators_test" +blo "22600,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,32200,17200" +st "parallelAdder_tb" +blo "22600,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,2000,44400,3000" +st "User:" +blo "42000,2800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3000,44000,3000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 109,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tester/interface new file mode 100644 index 0000000..1fcd6f6 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/parallel@adder_tester/interface @@ -0,0 +1,1346 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 25,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 56,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 21,0 +) +) +uid 383,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +) +uid 385,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 23,0 +) +) +uid 387,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 24,0 +) +) +uid 389,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 5 +suid 25,0 +) +) +uid 391,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 69,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 71,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 72,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 73,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 74,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 384,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 386,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 388,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 390,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 392,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 75,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 76,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 77,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 78,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 79,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 80,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 81,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 82,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 83,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 70,0 +vaOverrides [ +] +) +] +) +uid 55,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 85,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "adderBitNb" +type "positive" +value "32" +) +uid 134,0 +) +*50 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 333,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 97,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 99,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 100,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 101,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 102,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 135,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 334,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 103,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 104,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 105,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 106,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 107,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 108,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 109,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 110,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 98,0 +vaOverrides [ +] +) +] +) +uid 84,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallelAdder_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "parallelAdder_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:19:47" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "pipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "parallelAdder_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallel@adder_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\parallelAdder_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "15:19:47" +) +(vvPair +variable "unit" +value "parallelAdder_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 54,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 358,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 359,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46625,5250,47375,6000" +) +tg (CPTG +uid 360,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 361,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "46300,7000,47700,8600" +st "a" +ju 2 +blo "47500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 362,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3400,69000,4200" +st "a : OUT signed (adderBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 21,0 +) +) +) +*67 (CptPort +uid 363,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 364,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44625,5250,45375,6000" +) +tg (CPTG +uid 365,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 366,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "44300,7000,45700,8600" +st "b" +ju 2 +blo "45500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 367,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4200,69000,5000" +st "b : OUT signed (adderBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +) +) +*68 (CptPort +uid 368,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 369,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +tg (CPTG +uid 370,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 371,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "42300,7000,43700,9700" +st "cIn" +ju 2 +blo "43500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 372,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5000,58000,5800" +st "cIn : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 23,0 +) +) +) +*69 (CptPort +uid 373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 374,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 376,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10700" +st "cOut" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 377,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,1800,59000,2600" +st "cOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 24,0 +) +) +) +*70 (CptPort +uid 378,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 379,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 380,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 381,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "32300,7000,33700,10400" +st "sum" +ju 2 +blo "33500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 382,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2600,69000,3400" +st "sum : IN signed (adderBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 5 +suid 25,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,55000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "28450,9000,41550,10000" +st "pipelinedOperators_test" +blo "28450,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "28450,10000,39650,11000" +st "parallelAdder_tester" +blo "28450,10800" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "11000,6000,25400,10000" +st "Generic Declarations + +adderBitNb positive 32 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "adderBitNb" +type "positive" +value "32" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *72 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 17,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*74 (MLText +uid 18,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "72,45,1089,735" +viewArea "-500,-500,71299,48094" +cachedDiagramExtent "0,0,69000,14000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PipelinedOperators_test" +entityName "parallelAdder_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *75 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *76 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,5800,44500,6700" +st "User:" +blo "42000,6500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,6700,44000,6700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 392,0 +activeModelName "Symbol:GEN" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/pc_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/pc_tester/interface new file mode 100644 index 0000000..1e51dfb --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/pc_tester/interface @@ -0,0 +1,1502 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 10 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 74,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 10,0 +) +) +uid 303,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 2 +suid 11,0 +) +) +uid 305,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 12,0 +) +) +uid 307,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 87,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 89,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 90,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 91,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 92,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 304,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 306,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 308,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 93,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 94,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 95,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 96,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 97,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 98,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 99,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 100,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 101,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 88,0 +vaOverrides [ +] +) +] +) +uid 73,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "32" +) +uid 152,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *47 (MRCItem +litem &33 +pos 1 +dimension 20 +) +uid 117,0 +optionalChildren [ +*48 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 118,0 +) +*49 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 119,0 +) +*50 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*51 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 153,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*52 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 122,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 123,0 +) +*54 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 124,0 +) +*55 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 125,0 +) +*56 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 126,0 +) +*57 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 127,0 +) +*58 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 128,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tester" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineCounter_tester" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:11:08" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "pipelineCounter_tester" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineCounter_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "17:11:08" +) +(vvPair +variable "unit" +value "pipelineCounter_tester" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "Vhdl2002LangMgr" +uid 72,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 288,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 289,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 290,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 291,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10800" +st "clock" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 292,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2600,61000,3400" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 10,0 +) +) +) +*61 (CptPort +uid 293,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 294,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46625,5250,47375,6000" +) +tg (CPTG +uid 295,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 296,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "46300,7000,47700,13600" +st "countOut" +ju 2 +blo "47500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 297,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,1800,73000,2600" +st "countOut : IN unsigned (counterBitNb-1 downto 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 2 +suid 11,0 +) +) +) +*62 (CptPort +uid 298,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 299,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 300,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 301,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,11100" +st "reset" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 302,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3400,60000,4200" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 12,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,55000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "28450,9050,41550,10050" +st "PipelinedOperators_test" +blo "28450,9850" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "28450,10050,40950,11050" +st "pipelineCounter_tester" +blo "28450,10850" +) +) +gi *63 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "8000,6000,19900,9000" +st "Generic Declarations + +counterBitNb positive 32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*64 (Grouping +uid 16,0 +optionalChildren [ +*65 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,50000,45000,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,46000,52900,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,48000,44700,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,48000,30800,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "49200,47200,60800,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "53200,46000,61700,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "33350,46400,43650,47600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,49000,30900,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "28200,50000,31600,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Verdana,8,0" +) +xt "32200,49000,43600,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *75 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*77 (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "0,900,13600,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "57,32,1072,722" +viewArea "-500,-500,83100,45260" +cachedDiagramExtent "0,0,71500,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PipelinedOperators_test" +entityName "pipelineCounter_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *78 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 10 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *79 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,4200,44500,5100" +st "User:" +blo "42000,4900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,5100,44000,5100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 308,0 +activeModelName "Symbol:GEN" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/struct.bd b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/struct.bd new file mode 100644 index 0000000..3ecf5eb --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/struct.bd @@ -0,0 +1,3025 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "pipelinedOperators_test" +duName "pipelineAdder_tester" +elements [ +(GiElement +name "adderBitNb" +type "positive" +value "adderBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 2178,0 +) +(Instance +name "I_DUT" +duLibraryName "pipelinedOperators" +duName "pipelineAdder" +elements [ +(GiElement +name "bitNb" +type "positive" +value "adderBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +mwi 0 +uid 2359,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineAdder_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineAdder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:20:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "pipelineAdder_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineAdder_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:20:22" +) +(vvPair +variable "unit" +value "pipelineAdder_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 2178,0 +shape (Rectangle +uid 2179,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "16000,30000,60000,38000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2180,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 2181,0 +va (VaSet +) +xt "15850,38200,27850,39100" +st "pipelinedOperators_test" +blo "15850,38900" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 2182,0 +va (VaSet +) +xt "15850,39400,26350,40300" +st "pipelineAdder_tester" +blo "15850,40100" +tm "BlkNameMgr" +) +*15 (Text +uid 2183,0 +va (VaSet +) +xt "15850,40600,19850,41500" +st "I_tester" +blo "15850,41300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2184,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2185,0 +text (MLText +uid 2186,0 +va (VaSet +) +xt "16000,42000,42500,45600" +st "adderBitNb = adderBitNb ( positive ) +stageNb = pipelineStageNb ( positive ) +clockFrequency = clockFrequency ( real ) +" +) +header "" +) +elements [ +(GiElement +name "adderBitNb" +type "positive" +value "adderBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*16 (Net +uid 2224,0 +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 18,0 +) +declText (MLText +uid 2225,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18200,13700,19200" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 2232,0 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 19,0 +) +declText (MLText +uid 2233,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17200,13700,18200" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 2240,0 +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 20,0 +) +declText (MLText +uid 2241,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16200,13800,17200" +st "SIGNAL cOut : std_ulogic" +) +) +*19 (Net +uid 2248,0 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 21,0 +) +declText (MLText +uid 2249,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15200,13500,16200" +st "SIGNAL cIn : std_ulogic" +) +) +*20 (Net +uid 2256,0 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +declText (MLText +uid 2257,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14200,23400,15200" +st "SIGNAL b : signed(adderBitNb-1 DOWNTO 0)" +) +) +*21 (Net +uid 2264,0 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 23,0 +) +declText (MLText +uid 2265,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13200,23400,14200" +st "SIGNAL a : signed(adderBitNb-1 DOWNTO 0)" +) +) +*22 (Net +uid 2284,0 +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 7 +suid 24,0 +) +declText (MLText +uid 2285,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,19200,24000,20200" +st "SIGNAL sum : signed(adderBitNb-1 DOWNTO 0)" +) +) +*23 (SaComponent +uid 2359,0 +optionalChildren [ +*24 (CptPort +uid 2331,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2332,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37625,22000,38375,22750" +) +tg (CPTG +uid 2333,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2334,0 +va (VaSet +) +xt "37000,20800,38500,21700" +st "sum" +blo "37000,21500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sum" +t "signed" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*25 (CptPort +uid 2335,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2336,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 2337,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2338,0 +va (VaSet +) +xt "35000,19400,37500,20300" +st "clock" +blo "35000,20100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*26 (CptPort +uid 2339,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2340,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33917,20625,34667,21375" +) +tg (CPTG +uid 2341,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2342,0 +va (VaSet +) +xt "35667,20400,38167,21300" +st "reset" +blo "35667,21100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*27 (CptPort +uid 2343,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2344,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43334,17625,44084,18375" +) +tg (CPTG +uid 2345,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2346,0 +va (VaSet +) +xt "40834,17400,42334,18300" +st "cIn" +ju 2 +blo "42334,18100" +) +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*28 (CptPort +uid 2347,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2348,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31917,17625,32667,18375" +) +tg (CPTG +uid 2349,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2350,0 +va (VaSet +) +xt "33667,17400,35667,18300" +st "cOut" +blo "33667,18100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 5 +suid 2005,0 +) +) +) +*29 (CptPort +uid 2351,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2352,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33625,13250,34375,14000" +) +tg (CPTG +uid 2353,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2354,0 +va (VaSet +) +xt "33800,14000,34300,14900" +st "a" +ju 2 +blo "34300,14700" +) +) +thePort (LogicalPort +decl (Decl +n "a" +t "signed" +b "(bitNb-1 downto 0)" +o 6 +suid 2006,0 +) +) +) +*30 (CptPort +uid 2355,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2356,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41625,13250,42375,14000" +) +tg (CPTG +uid 2357,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2358,0 +va (VaSet +) +xt "41800,14000,42300,14900" +st "b" +ju 2 +blo "42300,14700" +) +) +thePort (LogicalPort +decl (Decl +n "b" +t "signed" +b "(bitNb-1 downto 0)" +o 7 +suid 2007,0 +) +) +) +] +shape (Alu +uid 2360,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "30000,14000,46000,22000" +) +oxt "32000,15000,48000,23000" +ttg (MlTextGroup +uid 2361,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*31 (Text +uid 2362,0 +va (VaSet +font "Verdana,9,1" +) +xt "39600,21800,49100,22700" +st "pipelinedOperators" +blo "39600,22500" +tm "BdLibraryNameMgr" +) +*32 (Text +uid 2363,0 +va (VaSet +font "Verdana,9,1" +) +xt "39600,23000,46600,23900" +st "pipelineAdder" +blo "39600,23700" +tm "CptNameMgr" +) +*33 (Text +uid 2364,0 +va (VaSet +font "Verdana,9,1" +) +xt "39600,24200,42100,25100" +st "I_DUT" +blo "39600,24900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2365,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2366,0 +text (MLText +uid 2367,0 +va (VaSet +font "Verdana,8,0" +) +xt "40000,25600,59400,27600" +st "bitNb = adderBitNb ( positive ) +stageNb = pipelineStageNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "adderBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*34 (Wire +uid 2226,0 +shape (OrthoPolyLine +uid 2227,0 +va (VaSet +vasetType 3 +) +xt "30000,21000,33917,30000" +pts [ +"33917,21000" +"30000,21000" +"30000,30000" +] +) +start &26 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2230,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2231,0 +va (VaSet +font "Verdana,12,0" +) +xt "28917,19600,33017,21000" +st "reset" +blo "28917,20800" +tm "WireNameMgr" +) +) +on &16 +) +*35 (Wire +uid 2234,0 +shape (OrthoPolyLine +uid 2235,0 +va (VaSet +vasetType 3 +) +xt "28000,20000,33250,30000" +pts [ +"33250,20000" +"28000,20000" +"28000,30000" +] +) +start &25 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2238,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2239,0 +va (VaSet +font "Verdana,12,0" +) +xt "28250,18600,32050,20000" +st "clock" +blo "28250,19800" +tm "WireNameMgr" +) +) +on &17 +) +*36 (Wire +uid 2242,0 +shape (OrthoPolyLine +uid 2243,0 +va (VaSet +vasetType 3 +) +xt "24000,18000,31917,30000" +pts [ +"31917,18000" +"24000,18000" +"24000,30000" +] +) +start &28 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2246,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2247,0 +va (VaSet +font "Verdana,12,0" +) +xt "26917,16600,30617,18000" +st "cOut" +blo "26917,17800" +tm "WireNameMgr" +) +) +on &18 +) +*37 (Wire +uid 2250,0 +shape (OrthoPolyLine +uid 2251,0 +va (VaSet +vasetType 3 +) +xt "44084,18000,48000,30000" +pts [ +"44084,18000" +"48000,18000" +"48000,30000" +] +) +start &27 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2254,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2255,0 +va (VaSet +font "Verdana,12,0" +) +xt "46084,16600,48784,18000" +st "cIn" +blo "46084,17800" +tm "WireNameMgr" +) +) +on &19 +) +*38 (Wire +uid 2258,0 +shape (OrthoPolyLine +uid 2259,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "42000,10000,50000,30000" +pts [ +"42000,13250" +"42000,10000" +"50000,10000" +"50000,30000" +] +) +start &30 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2262,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2263,0 +va (VaSet +font "Verdana,12,0" +) +xt "40500,10350,42100,11750" +st "b" +blo "40500,11550" +tm "WireNameMgr" +) +) +on &20 +) +*39 (Wire +uid 2266,0 +shape (OrthoPolyLine +uid 2267,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "34000,8000,52000,30000" +pts [ +"34000,13250" +"34000,8000" +"52000,8000" +"52000,30000" +] +) +start &29 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2270,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2271,0 +va (VaSet +font "Verdana,12,0" +) +xt "32500,10350,34100,11750" +st "a" +blo "32500,11550" +tm "WireNameMgr" +) +) +on &21 +) +*40 (Wire +uid 2286,0 +shape (OrthoPolyLine +uid 2287,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "38000,22750,38000,30000" +pts [ +"38000,22750" +"38000,30000" +] +) +start &24 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2290,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2291,0 +va (VaSet +font "Verdana,12,0" +) +xt "35000,26600,37100,27900" +st "sum" +blo "35000,27600" +tm "WireNameMgr" +) +) +on &22 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *41 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*43 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*45 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*46 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*47 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*48 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*49 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*50 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1064,-1064,93573,50355" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 2663,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*52 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*53 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*55 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*56 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*58 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*59 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*61 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*62 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*64 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*65 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*67 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*69 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*71 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5600,6500,6500" +st "Declarations" +blo "0,6300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6500,3000,7400" +st "Ports:" +blo "0,7200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7400,4500,8300" +st "Pre User:" +blo "0,8100" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,8300,22100,12300" +st "constant adderBitNb: positive := 32; +constant pipelineStageNb: positive := 4; +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,12300,8500,13200" +st "Diagram Signals:" +blo "0,13000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5600,5500,6500" +st "Post User:" +blo "0,6300" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5600,0,5600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 24,0 +usingSuid 1 +emptyRow *72 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*73 (RefLabelRowHdr +) +*74 (TitleRowHdr +) +*75 (FilterRowHdr +) +*76 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*77 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*78 (GroupColHdr +tm "GroupColHdrMgr" +) +*79 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*80 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*81 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*82 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*83 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*84 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*85 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 18,0 +) +) +uid 2272,0 +) +*86 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 19,0 +) +) +uid 2274,0 +) +*87 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 20,0 +) +) +uid 2276,0 +) +*88 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 21,0 +) +) +uid 2278,0 +) +*89 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +) +uid 2280,0 +) +*90 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 23,0 +) +) +uid 2282,0 +) +*91 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 7 +suid 24,0 +) +) +uid 2292,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*92 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *93 (MRCItem +litem &72 +pos 7 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*94 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 1337,0 +) +*95 (MRCItem +litem &74 +pos 1 +dimension 23 +uid 1338,0 +) +*96 (MRCItem +litem &75 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*97 (MRCItem +litem &85 +pos 0 +dimension 20 +uid 2273,0 +) +*98 (MRCItem +litem &86 +pos 1 +dimension 20 +uid 2275,0 +) +*99 (MRCItem +litem &87 +pos 2 +dimension 20 +uid 2277,0 +) +*100 (MRCItem +litem &88 +pos 3 +dimension 20 +uid 2279,0 +) +*101 (MRCItem +litem &89 +pos 4 +dimension 20 +uid 2281,0 +) +*102 (MRCItem +litem &90 +pos 5 +dimension 20 +uid 2283,0 +) +*103 (MRCItem +litem &91 +pos 6 +dimension 20 +uid 2293,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*104 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 1341,0 +) +*105 (MRCItem +litem &78 +pos 1 +dimension 50 +uid 1342,0 +) +*106 (MRCItem +litem &79 +pos 2 +dimension 100 +uid 1343,0 +) +*107 (MRCItem +litem &80 +pos 3 +dimension 50 +uid 1344,0 +) +*108 (MRCItem +litem &81 +pos 4 +dimension 100 +uid 1345,0 +) +*109 (MRCItem +litem &82 +pos 5 +dimension 100 +uid 1346,0 +) +*110 (MRCItem +litem &83 +pos 6 +dimension 50 +uid 1347,0 +) +*111 (MRCItem +litem &84 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *112 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*113 (RefLabelRowHdr +) +*114 (TitleRowHdr +) +*115 (FilterRowHdr +) +*116 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*117 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*118 (GroupColHdr +tm "GroupColHdrMgr" +) +*119 (NameColHdr +tm "GenericNameColHdrMgr" +) +*120 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*121 (InitColHdr +tm "GenericValueColHdrMgr" +) +*122 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*123 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*124 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *125 (MRCItem +litem &112 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*126 (MRCItem +litem &113 +pos 0 +dimension 20 +uid 1365,0 +) +*127 (MRCItem +litem &114 +pos 1 +dimension 23 +uid 1366,0 +) +*128 (MRCItem +litem &115 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*129 (MRCItem +litem &116 +pos 0 +dimension 20 +uid 1369,0 +) +*130 (MRCItem +litem &118 +pos 1 +dimension 50 +uid 1370,0 +) +*131 (MRCItem +litem &119 +pos 2 +dimension 100 +uid 1371,0 +) +*132 (MRCItem +litem &120 +pos 3 +dimension 100 +uid 1372,0 +) +*133 (MRCItem +litem &121 +pos 4 +dimension 50 +uid 1373,0 +) +*134 (MRCItem +litem &122 +pos 5 +dimension 50 +uid 1374,0 +) +*135 (MRCItem +litem &123 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/symbol.sb b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/symbol.sb new file mode 100644 index 0000000..b00baa6 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tb/symbol.sb @@ -0,0 +1,1216 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineAdder_tb" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "entity_name" +value "pipelineAdder_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:11:08" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "pipelineAdder_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineAdder_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:11:08" +) +(vvPair +variable "unit" +value "pipelineAdder_tb" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,36700,16000" +st "PipelinedOperators_test" +blo "22600,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,32400,17200" +st "pipelineAdder_tb" +blo "22600,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,2000,44400,3000" +st "User:" +blo "42000,2800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3000,44000,3000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 109,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tester/interface new file mode 100644 index 0000000..86cc1ad --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@adder_tester/interface @@ -0,0 +1,1497 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 55,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 21,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 49,0 +) +) +uid 706,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 50,0 +) +) +uid 708,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 51,0 +) +) +uid 710,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 52,0 +) +) +uid 712,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 53,0 +) +) +uid 714,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 54,0 +) +) +uid 716,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 7 +suid 55,0 +) +) +uid 718,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 34,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 36,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 37,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 38,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 39,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 707,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 709,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 711,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 713,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 715,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 717,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 719,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 40,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 41,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 42,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 43,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 44,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 45,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 46,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 47,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 48,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 35,0 +vaOverrides [ +] +) +] +) +uid 20,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 50,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "adderBitNb" +type "positive" +value "32" +) +uid 99,0 +) +*54 (LogGeneric +generic (GiElement +name "stageNb" +type "positive" +value "4" +) +uid 405,0 +) +*55 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +uid 646,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 62,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &41 +pos 3 +dimension 20 +) +uid 64,0 +optionalChildren [ +*58 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 65,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 66,0 +) +*60 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 67,0 +) +*61 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 100,0 +) +*62 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 406,0 +) +*63 (MRCItem +litem &55 +pos 2 +dimension 20 +uid 647,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 68,0 +optionalChildren [ +*64 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 69,0 +) +*65 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 70,0 +) +*66 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 71,0 +) +*67 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 72,0 +) +*68 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 73,0 +) +*69 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 74,0 +) +*70 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 75,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 63,0 +vaOverrides [ +] +) +] +) +uid 49,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineAdder_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineAdder_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:20:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "pipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "pipelineAdder_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@adder_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineAdder_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "15:20:22" +) +(vvPair +variable "unit" +value "pipelineAdder_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 19,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 672,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 673,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 674,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "50300,7000,51700,8600" +st "a" +ju 2 +blo "51500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 675,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3400,69500,4200" +st "a : OUT signed (adderBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "a" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 1 +suid 49,0 +) +) +) +*73 (CptPort +uid 676,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 677,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48625,5250,49375,6000" +) +tg (CPTG +uid 678,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 679,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "48300,7000,49700,8600" +st "b" +ju 2 +blo "49500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 680,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4200,69500,5000" +st "b : OUT signed (adderBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "b" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 2 +suid 50,0 +) +) +) +*74 (CptPort +uid 681,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 682,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46625,5250,47375,6000" +) +tg (CPTG +uid 683,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 684,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "46300,7000,47700,9700" +st "cIn" +ju 2 +blo "47500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 685,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5000,59500,5800" +st "cIn : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 3 +suid 51,0 +) +) +) +*75 (CptPort +uid 686,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 687,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 688,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 689,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,10800" +st "clock" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 690,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5800,59500,6600" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 52,0 +) +) +) +*76 (CptPort +uid 691,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 692,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 693,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 694,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10700" +st "cOut" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 695,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,1800,59500,2600" +st "cOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 4 +suid 53,0 +) +) +) +*77 (CptPort +uid 696,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 697,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 698,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 699,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,11100" +st "reset" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 700,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6600,58500,7400" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 54,0 +) +) +) +*78 (CptPort +uid 701,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 702,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 703,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 704,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "36300,7000,37700,10400" +st "sum" +ju 2 +blo "37500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 705,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2600,69500,3400" +st "sum : IN signed (adderBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "sum" +t "signed" +b "(adderBitNb-1 DOWNTO 0)" +o 7 +suid 55,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +oxt "15000,6000,78000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "30450,9000,43550,10000" +st "pipelinedOperators_test" +blo "30450,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "30450,10000,41950,11000" +st "pipelineAdder_tester" +blo "30450,10800" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "13000,6000,27400,11000" +st "Generic Declarations + +adderBitNb positive 32 +stageNb positive 4 +clockFrequency real 60.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "adderBitNb" +type "positive" +value "32" +) +(GiElement +name "stageNb" +type "positive" +value "4" +) +(GiElement +name "clockFrequency" +type "real" +value "60.0E6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 17,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*82 (MLText +uid 18,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "177,106,1194,796" +viewArea "-500,-500,76822,51832" +cachedDiagramExtent "0,0,69500,14000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PipelinedOperators_test" +entityName "pipelineAdder_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,7400,44500,8300" +st "User:" +blo "42000,8100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,8300,44000,8300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 719,0 +activeModelName "Symbol:GEN" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/struct.bd b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/struct.bd new file mode 100644 index 0000000..1e4ae6f --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/struct.bd @@ -0,0 +1,2568 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_DUT" +duLibraryName "PipelinedOperators" +duName "pipelineCounter" +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +mwi 0 +uid 2719,0 +) +(Instance +name "I_tester" +duLibraryName "PipelinedOperators_test" +duName "PipelineCounter_tester" +elements [ +(GiElement +name "counterBitNb" +type "integer" +value "counterBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 2970,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineCounter_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:21:02" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "pipelineCounter_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineCounter_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:21:02" +) +(vvPair +variable "unit" +value "pipelineCounter_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 153,0 +optionalChildren [ +*1 (Grouping +uid 110,0 +optionalChildren [ +*2 (CommentText +uid 112,0 +shape (Rectangle +uid 113,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 114,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 115,0 +shape (Rectangle +uid 116,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 117,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 118,0 +shape (Rectangle +uid 119,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 120,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 121,0 +shape (Rectangle +uid 122,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 123,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 124,0 +shape (Rectangle +uid 125,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 126,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 127,0 +shape (Rectangle +uid 128,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 129,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 130,0 +shape (Rectangle +uid 131,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 132,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 133,0 +shape (Rectangle +uid 134,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 135,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 136,0 +shape (Rectangle +uid 137,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 138,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 139,0 +shape (Rectangle +uid 140,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 141,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 111,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 2648,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 25,0 +) +declText (MLText +uid 2649,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15200,14600,16200" +st "SIGNAL reset : std_ulogic" +) +) +*13 (Net +uid 2656,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 26,0 +) +declText (MLText +uid 2657,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13200,14600,14200" +st "SIGNAL clock : std_ulogic" +) +) +*14 (SaComponent +uid 2719,0 +optionalChildren [ +*15 (CptPort +uid 2707,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2708,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46000,17625,46750,18375" +) +tg (CPTG +uid 2709,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2710,0 +va (VaSet +) +xt "41000,17550,45000,18450" +st "countOut" +ju 2 +blo "45000,18250" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "countOut" +t "unsigned" +b "(bitNb-1 downto 0)" +o 1 +suid 1,0 +) +) +) +*16 (CptPort +uid 2711,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2712,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29250,17625,30000,18375" +) +tg (CPTG +uid 2713,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2714,0 +va (VaSet +) +xt "31000,17400,33500,18300" +st "clock" +blo "31000,18100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*17 (CptPort +uid 2715,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2716,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29250,19625,30000,20375" +) +tg (CPTG +uid 2717,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2718,0 +va (VaSet +) +xt "31000,19550,33500,20450" +st "reset" +blo "31000,20250" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 2720,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "30000,14000,46000,22000" +) +oxt "32000,15000,48000,23000" +ttg (MlTextGroup +uid 2721,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*18 (Text +uid 2722,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,22800,40100,23700" +st "PipelinedOperators" +blo "30600,23500" +tm "BdLibraryNameMgr" +) +*19 (Text +uid 2723,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,23700,38600,24600" +st "pipelineCounter" +blo "30600,24400" +tm "CptNameMgr" +) +*20 (Text +uid 2724,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,24600,33100,25500" +st "I_DUT" +blo "30600,25300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2725,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2726,0 +text (MLText +uid 2727,0 +va (VaSet +font "Verdana,8,0" +) +xt "30000,25400,49400,27400" +st "bitNb = counterBitNb ( positive ) +stageNb = pipelineStageNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "stageNb" +type "positive" +value "pipelineStageNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*21 (Net +uid 2728,0 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 2 +suid 28,0 +) +declText (MLText +uid 2729,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14200,26300,15200" +st "SIGNAL countOut : unsigned(counterBitNb-1 downto 0)" +) +) +*22 (Blk +uid 2970,0 +shape (Rectangle +uid 2971,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "17000,30000,60000,37000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2972,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 2973,0 +va (VaSet +) +xt "17800,37200,32200,38400" +st "PipelinedOperators_test" +blo "17800,38200" +tm "BdLibraryNameMgr" +) +*24 (Text +uid 2974,0 +va (VaSet +) +xt "17800,38400,31500,39600" +st "PipelineCounter_tester" +blo "17800,39400" +tm "BlkNameMgr" +) +*25 (Text +uid 2975,0 +va (VaSet +) +xt "17800,39600,22600,40800" +st "I_tester" +blo "17800,40600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2976,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2977,0 +text (MLText +uid 2978,0 +va (VaSet +isHidden 1 +) +xt "17800,43200,43700,45600" +st "counterBitNb = counterBitNb ( integer ) +clockFrequency = clockFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "integer" +value "counterBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +) +*26 (Wire +uid 2650,0 +shape (OrthoPolyLine +uid 2651,0 +va (VaSet +vasetType 3 +) +xt "28000,20000,29250,30000" +pts [ +"29250,20000" +"28000,20000" +"28000,30000" +] +) +start &17 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2654,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2655,0 +va (VaSet +font "Verdana,12,0" +) +xt "24250,18700,27750,20000" +st "reset" +blo "24250,19700" +tm "WireNameMgr" +) +) +on &12 +) +*27 (Wire +uid 2658,0 +shape (OrthoPolyLine +uid 2659,0 +va (VaSet +vasetType 3 +) +xt "26000,18000,29250,30000" +pts [ +"29250,18000" +"26000,18000" +"26000,30000" +] +) +start &16 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2662,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2663,0 +va (VaSet +font "Verdana,12,0" +) +xt "24250,16700,27750,18000" +st "clock" +blo "24250,17700" +tm "WireNameMgr" +) +) +on &13 +) +*28 (Wire +uid 2730,0 +shape (OrthoPolyLine +uid 2731,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "46750,18000,50000,30000" +pts [ +"46750,18000" +"50000,18000" +"50000,30000" +] +) +start &15 +end &22 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2735,0 +va (VaSet +font "Verdana,12,0" +) +xt "48750,16700,54350,18000" +st "countOut" +blo "48750,17700" +tm "WireNameMgr" +) +) +on &21 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *29 (PackageList +uid 142,0 +stg "VerticalLayoutStrategy" +textVec [ +*30 (Text +uid 143,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*31 (MLText +uid 144,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 145,0 +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*33 (Text +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*34 (MLText +uid 148,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*35 (Text +uid 149,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*36 (MLText +uid 150,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*37 (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*38 (MLText +uid 152,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1064,-1064,93622,50381" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 3007,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*40 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*41 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*43 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*44 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*46 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*47 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*49 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*50 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*52 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*53 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*55 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*57 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*59 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5600,6500,6500" +st "Declarations" +blo "0,6300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6500,3000,7400" +st "Ports:" +blo "0,7200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7400,4500,8300" +st "Pre User:" +blo "0,8100" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,8300,22100,12300" +st "constant counterBitNb: positive := 20; +constant pipelineStageNb: positive := 5; +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,12300,8500,13200" +st "Diagram Signals:" +blo "0,13000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5600,5500,6500" +st "Post User:" +blo "0,6300" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5600,0,5600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 28,0 +usingSuid 1 +emptyRow *60 (LEmptyRow +) +uid 1321,0 +optionalChildren [ +*61 (RefLabelRowHdr +) +*62 (TitleRowHdr +) +*63 (FilterRowHdr +) +*64 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*65 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*66 (GroupColHdr +tm "GroupColHdrMgr" +) +*67 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*68 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*69 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*70 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*71 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*72 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*73 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 25,0 +) +) +uid 2672,0 +) +*74 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 26,0 +) +) +uid 2674,0 +) +*75 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "countOut" +t "unsigned" +b "(counterBitNb-1 downto 0)" +o 2 +suid 28,0 +) +) +uid 2736,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1334,0 +optionalChildren [ +*76 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *77 (MRCItem +litem &60 +pos 3 +dimension 20 +) +uid 1336,0 +optionalChildren [ +*78 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 1337,0 +) +*79 (MRCItem +litem &62 +pos 1 +dimension 23 +uid 1338,0 +) +*80 (MRCItem +litem &63 +pos 2 +hidden 1 +dimension 20 +uid 1339,0 +) +*81 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 2673,0 +) +*82 (MRCItem +litem &74 +pos 1 +dimension 20 +uid 2675,0 +) +*83 (MRCItem +litem &75 +pos 2 +dimension 20 +uid 2737,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1340,0 +optionalChildren [ +*84 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 1341,0 +) +*85 (MRCItem +litem &66 +pos 1 +dimension 50 +uid 1342,0 +) +*86 (MRCItem +litem &67 +pos 2 +dimension 100 +uid 1343,0 +) +*87 (MRCItem +litem &68 +pos 3 +dimension 50 +uid 1344,0 +) +*88 (MRCItem +litem &69 +pos 4 +dimension 100 +uid 1345,0 +) +*89 (MRCItem +litem &70 +pos 5 +dimension 100 +uid 1346,0 +) +*90 (MRCItem +litem &71 +pos 6 +dimension 50 +uid 1347,0 +) +*91 (MRCItem +litem &72 +pos 7 +dimension 80 +uid 1348,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1335,0 +vaOverrides [ +] +) +] +) +uid 1320,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *92 (LEmptyRow +) +uid 1350,0 +optionalChildren [ +*93 (RefLabelRowHdr +) +*94 (TitleRowHdr +) +*95 (FilterRowHdr +) +*96 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*97 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*98 (GroupColHdr +tm "GroupColHdrMgr" +) +*99 (NameColHdr +tm "GenericNameColHdrMgr" +) +*100 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*101 (InitColHdr +tm "GenericValueColHdrMgr" +) +*102 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*103 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 1362,0 +optionalChildren [ +*104 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *105 (MRCItem +litem &92 +pos 0 +dimension 20 +) +uid 1364,0 +optionalChildren [ +*106 (MRCItem +litem &93 +pos 0 +dimension 20 +uid 1365,0 +) +*107 (MRCItem +litem &94 +pos 1 +dimension 23 +uid 1366,0 +) +*108 (MRCItem +litem &95 +pos 2 +hidden 1 +dimension 20 +uid 1367,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1368,0 +optionalChildren [ +*109 (MRCItem +litem &96 +pos 0 +dimension 20 +uid 1369,0 +) +*110 (MRCItem +litem &98 +pos 1 +dimension 50 +uid 1370,0 +) +*111 (MRCItem +litem &99 +pos 2 +dimension 100 +uid 1371,0 +) +*112 (MRCItem +litem &100 +pos 3 +dimension 100 +uid 1372,0 +) +*113 (MRCItem +litem &101 +pos 4 +dimension 50 +uid 1373,0 +) +*114 (MRCItem +litem &102 +pos 5 +dimension 50 +uid 1374,0 +) +*115 (MRCItem +litem &103 +pos 6 +dimension 80 +uid 1375,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1363,0 +vaOverrides [ +] +) +] +) +uid 1349,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/symbol.sb b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/symbol.sb new file mode 100644 index 0000000..5cd8928 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/pipeline@counter_tb/symbol.sb @@ -0,0 +1,1243 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 105,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 106,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 53,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 56,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 58,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 60,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 54,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 62,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 66,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 68,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 70,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 72,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 76,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 78,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 52,0 +vaOverrides [ +] +) +] +) +uid 104,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 108,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 109,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 80,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 83,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 85,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 87,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 81,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 89,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 93,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 95,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 97,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 99,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 101,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 79,0 +vaOverrides [ +] +) +] +) +uid 107,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineCounter_tb" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "pipelineCounter_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:11:08" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PipelinedOperators_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Projects\\Biquad\\Development\\Tools\\VHDL\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/PipelinedOperators_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "pipelineCounter_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipeline@counter_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\..\\PipelinedOperators_test\\hds\\pipelineCounter_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:11:08" +) +(vvPair +variable "unit" +value "pipelineCounter_tb" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,36700,16000" +st "PipelinedOperators_test" +blo "22600,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,33300,17200" +st "pipelineCounter_tb" +blo "22600,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,10900,3000" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1800,45000,2800" +st "User:" +blo "42000,2600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "44000,2800,44000,2800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 132,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/sine@gen_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/sine@gen_tester/interface new file mode 100644 index 0000000..2f7045f --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/sine@gen_tester/interface @@ -0,0 +1,1182 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\sine@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\sineGen_tester" +) +(vvPair +variable "date" +value "04/01/08" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2636" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\sine@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\sineGen_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "12:48:44" +) +(vvPair +variable "unit" +value "sineGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +uid 61,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 163,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 5 +d 0 +s 0 +sf 1 +tg (CPTG +uid 164,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 165,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "28400,7000,29600,9700" +st "clock" +ju 2 +blo "29400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 166,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62000,6000" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 167,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 168,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 6 +d 0 +s 0 +sf 1 +tg (CPTG +uid 169,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 170,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,9600" +st "reset" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 171,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62000,6800" +st "reset : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 172,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 173,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +n "sawtooth" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 7 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 174,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 175,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "60400,7000,61600,23500" +st "sawtooth : (signalBitNb-1:0)" +ju 2 +blo "61400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 176,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,73500,2800" +st "sawtooth : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*5 (CptPort +uid 177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 178,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +n "shiftPhase" +t "std_ulogic" +m 1 +o 3 +r 7 +d 0 +s 0 +sf 1 +tg (CPTG +uid 179,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 180,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "24400,7000,25600,13700" +st "shiftPhase" +ju 2 +blo "25400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 181,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,62000,7600" +st "shiftPhase : OUT std_ulogic ; +" +) +) +*6 (CptPort +uid 182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 183,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +n "sine" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 4 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 185,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "54400,7000,55600,21100" +st "sine : (signalBitNb-1:0)" +ju 2 +blo "55400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 186,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,73500,3600" +st "sine : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*7 (CptPort +uid 187,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 188,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +n "square" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 6 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 189,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 190,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "58400,7000,59600,22400" +st "square : (signalBitNb-1:0)" +ju 2 +blo "59400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 191,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,73500,4400" +st "square : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +*8 (CptPort +uid 192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 193,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "step" +t "unsigned" +b "(phaseBitNb-1 DOWNTO 0)" +m 1 +o 8 +r 8 +d 0 +s 0 +sf 1 +tg (CPTG +uid 194,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 195,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,21200" +st "step : (phaseBitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,72000,8400" +st "step : OUT unsigned (phaseBitNb-1 DOWNTO 0) +" +) +) +*9 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +n "triangle" +t "unsigned" +b "(signalBitNb-1 DOWNTO 0)" +o 5 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 200,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "56400,7000,57600,22800" +st "triangle : (signalBitNb-1:0)" +ju 2 +blo "57400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 201,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,73500,5200" +st "triangle : IN unsigned (signalBitNb-1 DOWNTO 0) ; +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,69000,14000" +) +oxt "15000,6000,61000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,8800,44800,10000" +st "Curves_test" +blo "37600,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,10000,46400,11200" +st "sineGen_tester" +blo "37600,11000" +) +) +gi *10 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,6000,30500,9200" +st "Generic Declarations + +phaseBitNb positive 16 +signalBitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "phaseBitNb" +type "positive" +value "16" +) +(GiElement +name "signalBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*11 (Grouping +uid 16,0 +optionalChildren [ +*12 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,44500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*17 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*18 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*19 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*20 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*21 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,49800,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *22 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*24 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "sineGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *25 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *26 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,8400,44000,9400" +st "User:" +blo "42000,9200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9400,44000,9400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 201,0 +) diff --git a/10-PipelinedOperators/PipelinedOperators_test/hds/waveform@gen_tester/interface b/10-PipelinedOperators/PipelinedOperators_test/hds/waveform@gen_tester/interface new file mode 100644 index 0000000..c5124f5 --- /dev/null +++ b/10-PipelinedOperators/PipelinedOperators_test/hds/waveform@gen_tester/interface @@ -0,0 +1,988 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +packageRefs [ +(PackageRef +library "ieee" +unitName "std_logic_1164" +itemName "all" +) +(PackageRef +library "ieee" +unitName "numeric_std" +itemName "all" +) +] +) +version "15.1" +appVersion "2002.1a (Build 22)" +model (Symbol +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Users\\ELN_labs\\VHDL_gen" +) +(vvPair +variable "SideDataDesignDir" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "U:\\SEm_curves\\Test" +) +(vvPair +variable "appl" +value "HDL Designer - Pro" +) +(vvPair +variable "d" +value "U:\\SEm_curves\\Test\\waveform@gen_tester" +) +(vvPair +variable "d_logical" +value "U:\\SEm_curves\\Test\\waveformGen_tester" +) +(vvPair +variable "date" +value "06/09/08" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "09" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE1647" +) +(vvPair +variable "library" +value "Curves_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "month" +value "Jun" +) +(vvPair +variable "month_long" +value "June" +) +(vvPair +variable "p" +value "U:\\SEm_curves\\Test\\waveform@gen_tester\\interface" +) +(vvPair +variable "p_logical" +value "U:\\SEm_curves\\Test\\waveformGen_tester\\interface" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "time" +value "17:30:05" +) +(vvPair +variable "unit" +value "waveformGen_tester" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2002.1a (Build 22)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2008" +) +(vvPair +variable "yy" +value "08" +) +] +) +uid 66,0 +optionalChildren [ +*1 (SymbolBody +uid 8,0 +optionalChildren [ +*2 (CptPort +uid 107,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 108,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +n "clock" +t "std_ulogic" +m 1 +o 3 +r 1 +d 0 +s 0 +sf 1 +tg (CPTG +uid 109,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 110,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "28400,7000,29600,9700" +st "clock" +ju 2 +blo "29400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 111,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,59500,2800" +st "clock : OUT std_ulogic ; +" +) +) +*3 (CptPort +uid 112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 113,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +n "en" +t "std_ulogic" +m 1 +o 4 +r 2 +d 0 +s 0 +sf 1 +tg (CPTG +uid 114,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 115,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "26400,7000,27600,8200" +st "en" +ju 2 +blo "27400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 116,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,59500,3600" +st "en : OUT std_ulogic ; +" +) +) +*4 (CptPort +uid 117,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 118,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +n "reset" +t "std_ulogic" +m 1 +o 2 +r 3 +d 0 +s 0 +sf 1 +tg (CPTG +uid 119,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 120,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "30400,7000,31600,9600" +st "reset" +ju 2 +blo "31400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 121,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,59500,4400" +st "reset : OUT std_ulogic ; +" +) +) +*5 (CptPort +uid 122,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 123,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +n "step" +t "unsigned" +b "(bitNb-1 DOWNTO 0)" +m 1 +o 3 +r 4 +d 0 +s 0 +sf 1 +tg (CPTG +uid 124,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 125,0 +ro 270 +va (VaSet +font "Verdana,9,0" +) +xt "22400,7000,23600,17400" +st "step : (bitNb-1:0)" +ju 2 +blo "23400,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 126,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,67000,5200" +st "step : OUT unsigned (bitNb-1 DOWNTO 0) +" +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,66000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "35050,8800,42250,10000" +st "Curves_test" +blo "35050,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "35050,10000,46950,11200" +st "waveformGen_tester" +blo "35050,11000" +) +) +gi *6 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,6000,27500,8400" +st "Generic Declarations + +bitNb positive 16 +" +) +header "Generic Declarations" +) +elements [ +(GiElement +name "bitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +*7 (Grouping +uid 16,0 +optionalChildren [ +*8 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,45500,49000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,55800,45000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,33900,47000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*13 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,33900,48000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34500,49000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*17 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51900,48000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +LanguageMgr "VhdlLangMgr" +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *18 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*20 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,11300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +windowSize "0,0,895,750" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "Courier New,9,0" +) +xt "200,200,2200,1400" +st " +Text" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentViewRef (DesignUnitViewRef +libraryName "Curves_test" +duName "waveformGen_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *21 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,1800,1950" +st "In0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +m 3 +o 0 +r 0 +d 0 +s 0 +sf 1 +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,9,0" +) +xt "0,750,3600,1950" +st "Buffer0" +blo "0,1750" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +) +DeclarativeBlock *22 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44300,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,5200,44000,6200" +st "User:" +blo "42000,6000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6200,44000,6200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/10-PipelinedOperators/Prefs/hds.hdp b/10-PipelinedOperators/Prefs/hds.hdp new file mode 100644 index 0000000..e8e0234 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds.hdp @@ -0,0 +1,28 @@ +[Concat] +Board = $HDS_PROJECT_DIR/../Board/concat +[ModelSim] +Board = $SCRATCH_DIR/Board +Lattice = $SCRATCH_DIR/Lattice +PipelinedOperators = $SCRATCH_DIR/PipelinedOperators +PipelinedOperators_test = $SCRATCH_DIR/PipelinedOperators_test +[hdl] +Board = $HDS_PROJECT_DIR/../Board/hdl +ieee = $HDS_HOME/hdl_libs/ieee/hdl +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hdl +PipelinedOperators = $HDS_PROJECT_DIR/../PipelinedOperators/hdl +PipelinedOperators_test = $HDS_PROJECT_DIR/../PipelinedOperators_test/hdl +std = $HDS_HOME/hdl_libs/std/hdl +[hds] +Board = $HDS_PROJECT_DIR/../Board/hds +ieee = $HDS_HOME/hdl_libs/ieee/hds +Lattice = $HDS_PROJECT_DIR/../../Libs/Lattice/hds +PipelinedOperators = $HDS_PROJECT_DIR/../PipelinedOperators/hds +PipelinedOperators_test = $HDS_PROJECT_DIR/../PipelinedOperators_test/hds +std = $HDS_HOME/hdl_libs/std/hds +[hds_settings] +design_root = Board.pipelineCounter_ebs3(struct)pipeline@counter_ebs3/struct.bd +[library_type] +ieee = standard +std = standard +[shared] +others = $HDS_TEAM_HOME/shared.hdp diff --git a/10-PipelinedOperators/Prefs/hds_team/shared.hdp b/10-PipelinedOperators/Prefs/hds_team/shared.hdp new file mode 100644 index 0000000..41c9387 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/shared.hdp @@ -0,0 +1,23 @@ +[hds_settings] +version = 1 +project_description = The standard HDS shared project +[hds] +ieee = $HDS_HOME/hdl_libs/ieee/hds +std = $HDS_HOME/hdl_libs/std/hds +synopsys = $HDS_HOME/hdl_libs/synopsys/hds +verilog = $HDS_HOME/hdl_libs/verilog/hds +vital2000 = $HDS_HOME/hdl_libs/vital2000/hds + +[hdl] +ieee = $HDS_HOME/hdl_libs/ieee/hdl +std = $HDS_HOME/hdl_libs/std/hdl +synopsys = $HDS_HOME/hdl_libs/synopsys/hdl +verilog = $HDS_HOME/hdl_libs/verilog/hdl +vital2000 = $HDS_HOME/hdl_libs/vital2000/hdl + +[library_type] +ieee = standard +std = standard +synopsys = standard +verilog = standard +vital2000 = standard diff --git a/10-PipelinedOperators/Prefs/hds_team/v2018.1/hds_team_prefs b/10-PipelinedOperators/Prefs/hds_team/v2018.1/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/v2018.1/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/10-PipelinedOperators/Prefs/hds_team/v2018.1/title_block.tmpl b/10-PipelinedOperators/Prefs/hds_team/v2018.1/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/v2018.1/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/10-PipelinedOperators/Prefs/hds_team/v2019.2/hds_team_prefs b/10-PipelinedOperators/Prefs/hds_team/v2019.2/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/v2019.2/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/10-PipelinedOperators/Prefs/hds_team/v2019.2/title_block.tmpl b/10-PipelinedOperators/Prefs/hds_team/v2019.2/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/v2019.2/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/10-PipelinedOperators/Prefs/hds_team/v2019.3/hds_team_prefs b/10-PipelinedOperators/Prefs/hds_team/v2019.3/hds_team_prefs new file mode 100644 index 0000000..6eeab5f --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/v2019.3/hds_team_prefs @@ -0,0 +1,55 @@ +version "8.0" +RenoirTeamPreferences [ +(BaseTeamPreferences +version "1.1" +verConcat 0 +ttDGProps [ +] +fcDGProps [ +] +smDGProps [ +] +asmDGProps [ +] +bdDGProps [ +] +syDGProps [ +] +) +(VersionControlTeamPreferences +version "1.1" +VMPlugin "" +VMRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMRcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hds_vm" +VMRcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/%(library)/hdl_vm" +VMCvsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCvsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMCVSmkIIHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMCVSmkIIHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository" +VMVssHdsRepository "$/hds_scratch/hds_repository/%(library)/hds_vm" +VMVssHdlRepository "$/hds_scratch/hds_repository/%(library)/hdl_vm" +VMDsHdsRepository "sync://:/hds_scratch/hds_repository/hds_vm" +VMDsHdlRepository "sync://:/hds_scratch/hds_repository/hdl_vm" +VMPvcsHdsRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hds_vm" +VMPvcsHdlRepository "$HDS_HOME/examples/hds_scratch/hds_repository/hdl_vm" +VMSvnHdlRepository "" +VMDefaultView 1 +VMCurrentDesignHierarchyOnly 0 +VMUserData 1 +VMGeneratedHDL 0 +VMVerboseMode 0 +VMAlwaysEmpty 0 +VMSetTZ 1 +VMSymbol 1 +VMCurrentDesignHierarchy 0 +VMMultipleRepositoryMode 0 +VMSnapshotViewMode 0 +backupNameClashes 1 +clearCaseMaster 0 +) +(CustomizeTeamPreferences +version "1.1" +FileTypes [ +] +) +] diff --git a/10-PipelinedOperators/Prefs/hds_team/v2019.3/title_block.tmpl b/10-PipelinedOperators/Prefs/hds_team/v2019.3/title_block.tmpl new file mode 100644 index 0000000..12ef16a --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_team/v2019.3/title_block.tmpl @@ -0,0 +1,273 @@ +version "4.1" +TitleBlockTemplateRegistrar (TitleBlockTemplate +TitleBlock (Grouping +optionalChildren [ +*1 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,70000,35000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,70000,27100,71000" +st " +by %user on %dd %month %year" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*2 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,66000,39000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,66000,37800,67000" +st " +Project:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,68000,35000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,68000,27800,69000" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,68000,18000,69000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,68000,15900,69000" +st " +Title:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,67000,55000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "35200,67200,44000,68200" +st " +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*6 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "39000,66000,55000,67000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "39200,66000,48900,67000" +st "%project_name" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,66000,35000,68000" +) +text (MLText +va (VaSet +fg "32768,0,0" +) +xt "19950,66350,29050,67650" +st " +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,69000,18000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,69000,15900,70000" +st " +Path:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,70000,18000,71000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "14200,70000,16500,71000" +st " +Edited:" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +shape (Rectangle +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,69000,35000,70000" +) +text (MLText +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "18200,69000,25400,70000" +st " +%library/%unit/%view" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "14000,66000,55000,71000" +) +) +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/hds_user_prefs b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/hds_user_prefs new file mode 100644 index 0000000..437abb4 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/hds_user_prefs @@ -0,0 +1,6094 @@ +version "49.1" +SaPreferences [ +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Atom" +second "atom %(p):%(l)" +) +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl %(p):%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Sublime" +second "subl '%(p)':%(l)" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Builtin" +win32DefaultViewer "Builtin" +unixDefaultEditor "Sublime" +unixDefaultViewer "Builtin" +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 3 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"StdTabWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"BdTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "/tmp" +projectPaths [ +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/ElN_cursor.hdp" +"/home/francois/Favorites/ElN_local/Labs/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SVN/ElN_cursor/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs_SI/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/ElN/Labs/ElN_labs/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/04-Lissajous/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/Labs/SEm_labs/10-PipelinedOperators/Prefs/hds.hdp" +"/home/francois/Documents/HEVs/SEm/SEm_labs/10-PipelinedOperators/Prefs/hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +defaultUserLibRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.std_logic_arith.all; +" +defaultVerilogPackages "" +defaultFont "courier,10,0" +tableFont "courier,10,0" +pageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +pageSizes [ +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER/title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "courier,8,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER/remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +(pair +first "task_ModelSimPath" +second "/usr/opt/Modelsim/modeltech/bin" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"\"USER:Xilinx Project Navigator\"" +] +tasksMenubarOrder [ +"USER:Generate" +"\"USER:ModelSim Flow\"" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +"\"USER:Prepare for Synthesis\"" +] +taskPreferences [ +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" \"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Microsemi Libero\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis\" \"USER:Quartus Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SystemVerilog Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Update Project\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "899x918-9+51" +diagramBrowserTabNo 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(graphical_source_author).%(graphical_source_group) (%(graphical_source_host)) +// at - %(graphical_source_time) %(graphical_source_date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "courier,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "courier,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +font "courier,8,0" +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +font "courier,8,0" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "courier,8,1" +) +caseExpressionVaSet (VaSet +font "courier,8,0" +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "courier,8,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "courier,8,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "courier,8,1" +) +signalStatValueVaSet (VaSet +font "courier,8,0" +) +declLabelVaSet (VaSet +font "courier,8,1" +) +declValueVaSet (VaSet +font "courier,8,0" +) +stmtLabelVaSet (VaSet +font "courier,8,1" +) +stmtValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_logic" +vhdlBusType "std_logic_vector" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "courier,8,1" +) +cptFontVaSet (VaSet +font "courier,8,1" +) +signalFontVaSet (VaSet +font "courier,8,0" +) +bundleFontVaSet (VaSet +font "courier,8,0" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +hdlTextFontVaSet (VaSet +font "courier,8,1" +) +embeddedTextVaSet (VaSet +font "courier,8,0" +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "courier,8,1" +) +genericAssocFontVaSet (VaSet +font "courier,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +font "courier,8,0" +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +font "courier,8,0" +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "courier,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "courier,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "courier,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "courier,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "courier,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "courier,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "courier,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "courier,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "courier,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +actionBoxActionsVaSet (VaSet +font "courier,8,0" +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "courier,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +decisionBoxConditionVaSet (VaSet +font "courier,8,0" +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "courier,8,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +waitBoxConditionVaSet (VaSet +font "courier,8,0" +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "courier,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startLoopLabelVaSet (VaSet +font "courier,8,1" +) +startLoopConditionVaSet (VaSet +font "courier,8,0" +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "courier,8,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +font "courier,8,0" +) +startCaseLabelVaSet (VaSet +font "courier,8,1" +) +startCaseExpressionVaSet (VaSet +font "courier,8,0" +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "courier,8,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "courier,8,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +processDeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +processDeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +sensitivityListBlockLabelVaSet (VaSet +font "courier,8,1" +) +sensitivityListBlockValueVaSet (VaSet +font "courier,8,0" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "COR_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Lissajous_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "PipelinedOperators" +showingHierarchy 0 +openLibs [ +"PipelinedOperators" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "PipelinedOperators_test" +showingHierarchy 0 +openLibs [ +"PipelinedOperators_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"Requirements" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 59 +) +] +displayHierarchy 0 +xPos 19 +yPos 151 +width 1066 +height 937 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 280 +showUnixHiddenFiles 0 +componentBrowserXpos 59 +componentBrowserYpos 18 +componentBrowserWidth 413 +componentBrowserHeight 846 +componentBrowserLibraryNames [ +"PHA" +"gates" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +font "courier,8,0" +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +font "courier,8,0" +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +font "courier,8,0" +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +font "courier,8,0" +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "courier,10,1" +) +stateEncodingVaSet (VaSet +font "courier,8,1" +) +stateActionsVaSet (VaSet +font "courier,8,0" +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "courier,8,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "courier,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "courier,8,1" +) +junctionSymbolVaSet (VaSet +font "courier,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "courier,8,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "courier,10,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +font "courier,8,0" +) +tBlockActionsVaSet (VaSet +font "courier,8,0" +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +font "courier,8,0" +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "courier,8,1" +) +localDeclValueVaSet (VaSet +font "courier,8,0" +) +processDeclLabelVaSet (VaSet +font "courier,8,1" +) +processDeclValueVaSet (VaSet +font "courier,8,0" +) +globalActionsLabelVaSet (VaSet +font "courier,8,1" +) +globalActionsValueVaSet (VaSet +font "courier,8,0" +) +stateRegBlkLabelVaSet (VaSet +font "courier,8,1" +) +stateRegBlkValueVaSet (VaSet +font "courier,8,0" +) +signalsGenStatusVaSet (VaSet +font "courier,8,1" +) +signalsGenStatusValueVaSet (VaSet +font "courier,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "courier,8,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +font "courier,8,0" +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "courier,8,1" +) +packageListFontVaSet (VaSet +font "courier,8,0" +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "courier,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "courier,8,1" +) +CompDirValueVaSet (VaSet +font "courier,8,0" +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "courier,8,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "courier,8,1" +) +cptPortFontVaSet (VaSet +font "courier,8,0" +) +genericInterfaceFontVaSet (VaSet +font "courier,8,0" +) +portRowVaSet (VaSet +vasetType 4 +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "std_logic_vector" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "courier,8,1" +) +DeclarativeBlockValueVaSet (VaSet +font "courier,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "courier,8,0" +) +order 0 +editSignalScope 4 +) +] diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk new file mode 100644 index 0000000..0b7cc38 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..7a023d8 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/pipelineCounter.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..4eeef16 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..6cd6247 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,114 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "/usr/opt/HDS/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update Project" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilinx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$SYNTHESIS_BASE_DIR/../../Scripts/update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR/$DESIGN_NAME.vhd $CONCAT_DIR/$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"/usr/bin/perl" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME/resources/bitmaps/tools/tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes Xilinx ISE Synthesis Tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"$SYNTHESIS_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$SYNTHESIS_HOME/bin/lin64/ise" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"exePath" +"/usr/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user-linux/v2019.3/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/hds_user_prefs b/10-PipelinedOperators/Prefs/hds_user/v2018.1/hds_user_prefs new file mode 100644 index 0000000..9186cf1 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/hds_user_prefs @@ -0,0 +1,6831 @@ +version "48.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "FinePrint" +pageSizes [ +(PageSizeInfo +name "Letter" +width 783 +height 1013 +) +(PageSizeInfo +name "Letter Small" +type 2 +width 783 +height 1013 +) +(PageSizeInfo +name "Tabloid" +type 3 +width 1013 +height 1566 +) +(PageSizeInfo +name "Ledger" +type 4 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Statement" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "Executive" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "A3" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A4 Small" +type 10 +width 761 +height 1077 +) +(PageSizeInfo +name "A5" +type 11 +width 536 +height 761 +) +(PageSizeInfo +name "B4 (JIS)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 (JIS)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "Folio" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "Quarto" +type 15 +width 780 +height 997 +) +(PageSizeInfo +name "10x14" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "11x17" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Note" +type 18 +width 783 +height 1013 +) +(PageSizeInfo +name "Envelope #9" +type 19 +width 357 +height 817 +) +(PageSizeInfo +name "Envelope #10" +type 20 +width 379 +height 875 +) +(PageSizeInfo +name "Envelope #11" +type 21 +width 414 +height 956 +) +(PageSizeInfo +name "Envelope #12" +type 22 +width 437 +height 1013 +) +(PageSizeInfo +name "Envelope #14" +type 23 +width 460 +height 1059 +) +(PageSizeInfo +name "C size sheet" +type 24 +width 1566 +height 2027 +) +(PageSizeInfo +name "D size sheet" +type 25 +width 2027 +height 3133 +) +(PageSizeInfo +name "E size sheet" +type 26 +width 3133 +height 4055 +) +(PageSizeInfo +name "Envelope DL" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Envelope C5" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "Envelope C3" +type 29 +width 1175 +height 1661 +) +(PageSizeInfo +name "Envelope C4" +type 30 +width 830 +height 1175 +) +(PageSizeInfo +name "Envelope C6" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Envelope C65" +type 32 +width 413 +height 830 +) +(PageSizeInfo +name "Envelope B4" +type 33 +width 907 +height 1280 +) +(PageSizeInfo +name "Envelope B5" +type 34 +width 638 +height 907 +) +(PageSizeInfo +name "Envelope B6" +type 35 +width 453 +height 638 +) +(PageSizeInfo +name "Envelope Italy" +type 36 +width 399 +height 834 +) +(PageSizeInfo +name "Envelope Monarch" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "6 3/4 Envelope" +type 38 +width 333 +height 599 +) +(PageSizeInfo +name "US Std Fanfold" +type 39 +width 1013 +height 1370 +) +(PageSizeInfo +name "German Std Fanfold" +type 40 +width 783 +height 1105 +) +(PageSizeInfo +name "German Legal Fanfold" +type 41 +width 783 +height 1198 +) +(PageSizeInfo +name "B4 (ISO)" +type 42 +width 907 +height 1280 +) +(PageSizeInfo +name "Japanese Postcard" +type 43 +width 362 +height 536 +) +(PageSizeInfo +name "9x11" +type 44 +width 829 +height 1013 +) +(PageSizeInfo +name "10x11" +type 45 +width 921 +height 1013 +) +(PageSizeInfo +name "11x15" +type 46 +width 1013 +height 1382 +) +(PageSizeInfo +name "Envelope Invite" +type 47 +width 798 +height 798 +) +(PageSizeInfo +name "Letter Extra" +type 50 +width 875 +height 1105 +) +(PageSizeInfo +name "Legal Extra" +type 51 +width 875 +height 1382 +) +(PageSizeInfo +name "Tabloid Extra" +type 52 +width 1077 +height 1658 +) +(PageSizeInfo +name "A4 Extra" +type 53 +width 854 +height 1169 +) +(PageSizeInfo +name "Letter Transverse" +type 54 +width 783 +height 1013 +) +(PageSizeInfo +name "A4 Transverse" +type 55 +width 761 +height 1077 +) +(PageSizeInfo +name "Letter Extra Transverse" +type 56 +width 875 +height 1105 +) +(PageSizeInfo +name "SuperA/SuperA/A4" +type 57 +width 823 +height 1291 +) +(PageSizeInfo +name "SuperB/SuperB/A3" +type 58 +width 1106 +height 1767 +) +(PageSizeInfo +name "Letter Plus" +type 59 +width 783 +height 1169 +) +(PageSizeInfo +name "A4 Plus" +type 60 +width 761 +height 1197 +) +(PageSizeInfo +name "A5 Transverse" +type 61 +width 536 +height 761 +) +(PageSizeInfo +name "B5 (JIS) Transverse" +type 62 +width 660 +height 932 +) +(PageSizeInfo +name "A3 Extra" +type 63 +width 1168 +height 1614 +) +(PageSizeInfo +name "A5 Extra" +type 64 +width 631 +height 852 +) +(PageSizeInfo +name "B5 (ISO) Extra" +type 65 +width 729 +height 1001 +) +(PageSizeInfo +name "A2" +type 66 +width 1523 +height 2155 +) +(PageSizeInfo +name "A3 Transverse" +type 67 +width 1077 +height 1523 +) +(PageSizeInfo +name "A3 Extra Transverse" +type 68 +width 1168 +height 1614 +) +(PageSizeInfo +name "FinePrint 2 Seiten Letter" +type 257 +width 783 +height 1210 +) +(PageSizeInfo +type 256 +width 0 +height 0 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "600x867+1228+98" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 297 +yPos 173 +width 1070 +height 838 +activeSidePanelTab 2 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos 569 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"ADD" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/generate.tsk b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..4490ea2 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/modelsim_simulate.tsk @@ -0,0 +1,96 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR\\IND.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2018.1/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/hds_user_prefs b/10-PipelinedOperators/Prefs/hds_user/v2019.2/hds_user_prefs new file mode 100644 index 0000000..5228a7c --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/hds_user_prefs @@ -0,0 +1,6870 @@ +version "49.1" +SaPreferences [ +(CustomizeUserPreferences +version "1.0" +FileTypes [ +(FileTypeState +Extension "c" +Description "C Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\c_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "cpp" +Description "C++ Source File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cpp_source.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "Generate" +Tool "USER:C/C++ Wrapper Generator" +Arguments "" +) +] +) +(FileTypeState +Extension "xdb" +Description "Mentor Graphics Binary Synthesis File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xdb.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "None" +Arguments "" +) +] +) +(FileTypeState +Extension "sdf" +Description "Standard Delay Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mif" +Description "Memory Initialization File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\mif.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "hex" +Description "HEX-Format File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\hex.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdc" +Description "Synopsys Design Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ctr" +Description "Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdc.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rep" +Description "Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "log" +Description "Log File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad" +Description "Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "dly" +Description "Delay Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "syr" +Description "Xilinx Synthesis Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "par" +Description "Xilinx Place and Route Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "twr" +Description "Xilinx Static Timing Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "drc" +Description "Xilinx Design Rule Checking Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bgn" +Description "Xilinx Bitstream Generation Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "mrp" +Description "Xilinx Mapping Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pad_txt" +Description "Xilinx Pad Report" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncf" +Description "Xilinx Netlist Constraint File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xcf" +Description "Xilinx Synthesis Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pcf" +Description "Xilinx Place and Route Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ucf" +Description "Xilinx User Constraints File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ncd" +Description "Xilinx Floorplanner File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\ncd.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bld" +Description "Xilinx NGDBuild Log" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\log.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "bit" +Description "Xilinx Bit File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "bin" +Description "Xilinx Binary Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbt" +Description "Xilinx ASCII Configuration File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "jed" +Description "Xilinx Jedec Bit Map File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\placeroute.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "ngc" +Description "Xilinx Netlist File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\synthesis.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "npl" +Description "Xilinx ISE Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xilinx_projnav.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psp" +Description "Precision Synthesis Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\precision.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qpf" +Description "Quartus Project File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\altera_quartus.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "qsf" +Description "Quartus Settings and Assigments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "qws" +Description "Quartus Workspace" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "args" +Description "Quartus Arguments" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_synthesis.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "rpt" +Description "Quartus Report File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "summary" +Description "Quartus Summary File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\rep.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "eqn" +Description "Quartus Equation File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pin" +Description "Quartus Pin Information File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "vqm" +Description "Quartus Verilog Mapping File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\vqm.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sdo" +Description "Standard Delay File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\sdf.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xrf" +Description "Cross Reference File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\text.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "sof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "pof" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "rbf" +Description "Quartus Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ttf" +Description "Quartus Text Tabular Format Programming File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\quartus_programmer.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "pdf" +Description "Adobe Acrobat Pdf" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pdf.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "doc" +Description "Microsoft Word Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\word.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "xls" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "tsv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "csv" +Description "Microsoft Excel Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "ppt" +Description "Microsoft PowerPoint Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\powerpoint.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "vsd" +Description "Microsoft Visio Document" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\visio.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "htm" +Description "HTM File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "html" +Description "HTML File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\web.bmp" +DefaultAction "" +Actions [ +] +) +(FileTypeState +Extension "psl" +Description "Property Specification Language File" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\psl.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "xlsm" +Description "Excel macro-enabled spreadsheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\excel.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "rcf" +Description "RA control file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\RaCtrlFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "New" +Tool "" +Arguments "" +) +(ActionState +Name "Open" +Tool "" +Arguments "" +) +(ActionState +Name "View" +Tool "" +Arguments "" +) +] +) +(FileTypeState +Extension "js" +Description "Javascript" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jsFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "xml" +Description "xml file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "ipxact" +Description "IP-XACT file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\xmlFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "css" +Description "HTML style sheet" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\cssFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "gif" +Description "GIF image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\gifFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "jpg" +Description "JPG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\jpgFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "png" +Description "PNG image" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\pngFile.bmp" +DefaultAction "Open" +Actions [ +] +) +(FileTypeState +Extension "svap" +Description "SVAssistant project file" +Bitmap "$HDS_HOME\\resources\\bitmaps\\types\\svapFile.bmp" +DefaultAction "Open" +Actions [ +(ActionState +Name "Open" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +(ActionState +Name "View" +Tool "USER:SVAssistant Flow" +Arguments "project %(p)" +) +] +) +] +) +(BasePreferences +version "1.1" +textFileExtensions [ +"txt" +"ini" +"tcl" +"dcs" +"edn" +"edf" +"edif" +] +textViewPrintingCommands [ +(pair +first "Enscript" +second "$HDS_HOME/resources/misc/printText.pl \"%(p)\" -printer %(P) --copies %(copies) -orientation %(orientation) -paper %(paper) -dest %(destination)" +) +] +win32ExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "Windows Bitmap BMP" +second "$HDS_HOME/resources/misc/export_tgc.pl bmp \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsEnhancedMetaFile EMF" +second "$HDS_HOME/resources/misc/export_tgc.pl emf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixExportCmdMappings [ +(pair +first "CGM Binary" +second "$HDS_HOME/resources/misc/export_tgc.pl cgm \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "FrameMaker MIF" +second "$HDS_HOME/resources/misc/export_tgc.pl mif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "GIF" +second "$HDS_HOME/resources/misc/export_tgc.pl gif \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "TIFF" +second "$HDS_HOME/resources/misc/export_tgc.pl tiff \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +(pair +first "WindowsMetaFile WMF" +second "$HDS_HOME/resources/misc/export_tgc.pl wmf \"%(psfile_p)\" \"%(temp_d)\" %(library) %(unit) %(view)" +) +] +unixEditorCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)'" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "Emacs (using server)" +second "emacsclient +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)'" +) +(pair +first "XEmacs" +second "xemacs +%(l) '%(p)'" +) +(pair +first "XEmacs (using server)" +second "gnuclient +%(l) '%(p)'" +) +(pair +first "XTerm with Editor" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e \"${EDITOR:-vi}\" '%(f)'" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi +%(l) '%(f)'" +) +] +unixViewerCmdMappings [ +(pair +first "Dtpad" +second "dtpad '%(p)' -viewonly" +) +(pair +first "Emacs" +second "emacs +%(l) '%(p)'" +) +(pair +first "NEdit" +second "nedit -read +%(l) '%(p)'" +) +(pair +first "NEdit (using server)" +second "nc -noask -read +%(l) '%(p)'" +) +(pair +first "Textedit" +second "textedit '%(p)' -read_only" +) +(pair +first "vi" +second "cd '%(d)'; xterm -T '%(p)' -n '%(f)' -e vi -R +%(l) '%(f)'" +) +] +win32EditorCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "Emacs (using server)" +second "gnuclientw.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l)" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\"" +) +(pair +first "WinEdit" +second "WinEdit.exe \"%(p)\" -# %(l)" +) +(pair +first "Wordpad" +second "wordpad.exe \"%(p)\"" +) +] +win32ViewerCmdMappings [ +(pair +first "Emacs" +second "runemacs.exe +%(l) \"%(p)\"" +) +(pair +first "HDL Turbo Writer" +second "TWriter.exe \"%(p)\" -XBufSetReadOnly -G%(l)" +) +(pair +first "Notepad" +second "notepad.exe \"%(p)\"" +) +(pair +first "Notepad++" +second "notepad++.exe \"%(p)\" -n%(l) -ro" +) +(pair +first "Sublime Text" +second "sublime_text.exe \"%(p)\" -n%(l)" +) +(pair +first "Textpad 3.2" +second "txtpad32.exe -r \"%(p)(%(l))\"" +) +(pair +first "Textpad 4.0" +second "textpad.exe -r \"%(p)(%(l))\"" +) +(pair +first "UltraEdit" +second "uedit32.exe \"%(p)/%(l)\" /r" +) +] +defaultTextPrintingCmd "Enscript" +win32DefaultEditor "Notepad++" +win32DefaultViewer "Notepad++" +unixDefaultEditor "Builtin" +unixDefaultViewer "Builtin" +defaultLanguage 11 +defaultVhdlDialect 11 +defaultVerilogDialect 5 +verilogSearchPath "" +syscUserIncPath "" +cppIncPath "" +printerCmdString "lp -c" +tabWidth 4 +vhdlEntityExtension "vhd" +vhdlArchitectureExtensions [ +"vhd" +"vhdl" +"vho" +"vhg" +] +verilogArchitectureExtensions [ +"v" +"vlg" +"verilog" +"vo" +"sv" +"svh" +] +verilogDefaultSaveName "untitled" +vhdlDefaultSaveName "untitled" +toolbarVisibility [ +"BdWindow:FormatText" +"SymbolWindow:FormatText" +"AsmWindow:FormatText" +"FcWindow:FormatText" +"StdWindow:FormatText" +"BdWindow:CommentGraphics" +"SymbolWindow:CommentGraphics" +"AsmWindow:CommentGraphics" +"StdWindow:CommentGraphics" +"FcWindow:CommentGraphics" +"BdWindow:Appearance" +"SymbolWindow:Appearance" +"AsmWindow:Appearance" +"StdWindow:Appearance" +"FcWindow:Appearance" +"FcWindow:Appearance" +"FcTabWindow:Appearance" +"AsmTabWindow:Appearance" +"TtTabWindow:Appearance" +"BdWindow:ArrangeObject" +"SymbolWindow:ArrangeObject" +"AsmWindow:ArrangeObject" +"StdWindow:ArrangeObject" +"FcWindow:ArrangeObject" +] +seperateElseBegincheck 1 +ASICDesigner 1 +FPGADesigner 1 +AlteraLibraries 1 +XilinxLibraries 1 +userDefinedSimulatorTasks [ +] +userDefinedSynthesisTasks [ +] +measurementUnits 1 +simulator "ModelSim 5.1" +tempDirectory "$TEMP" +projectPaths [ +"hds.hdp" +"D:\\Labs\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\Users\\oliver.gubler\\eda\\VHDL\\labs\\ELN_cursor\\Prefs\\hds.hdp" +"R:\\SYND\\Ele_2131\\ELN\\Labs\\Cursor\\ELN_cursor\\Prefs\\hds.hdp" +"C:\\work\\git\\Education\\Projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\projects\\Cursor_trial\\Prefs\\cursor.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\eln_labs.hdp" +"C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\01-WaveformGenerator\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\10-PipelinedOperators\\Prefs\\hds.hdp" +"C:\\work\\repo\\edu\\sem\\labo\\solution\\sem_labs\\10-PipelinedOperators\\Prefs\\hds.hdp" +"C:\\work\\edu\\sem\\labo\\sem_labs\\10-PipelinedOperators\\Prefs\\hds.hdp" +"C:\\dev\\sem-labs\\10-PipelinedOperators\\Prefs\\hds.hdp" +] +libMappingsRootDir "" +teamLibMappingsRootDir "" +projectSetupRootDir "" +defaultPackages "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +defaultVerilogPackages "" +defaultFont "Verdana,9,0" +tableFont "Tahoma,10,0" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +printerName "\\\\vmenpprint1.hevs.ch\\VS-FOLLOWME-PRN" +pageSizes [ +(PageSizeInfo +name "12\" x 18\"" +type 512 +width 1106 +height 1658 +) +(PageSizeInfo +name "11\" x 17\"" +type 17 +width 1013 +height 1566 +) +(PageSizeInfo +name "Legal (8,5\" x 14\")" +type 5 +width 783 +height 1290 +) +(PageSizeInfo +name "Letter (8,5\" x 11\")" +width 783 +height 1013 +) +(PageSizeInfo +name "Executive (7,25\"x10,5\")" +type 7 +width 667 +height 967 +) +(PageSizeInfo +name "5,5\" x 8,5\"" +type 6 +width 506 +height 783 +) +(PageSizeInfo +name "A3 (297 x 420 mm)" +type 8 +width 1077 +height 1523 +) +(PageSizeInfo +name "A4 (210 x 297 mm)" +type 9 +width 761 +height 1077 +) +(PageSizeInfo +name "A5 (148 x 210 mm)" +type 11 +width 538 +height 761 +) +(PageSizeInfo +name "A6 (105 x 148 mm)" +type 70 +width 380 +height 538 +) +(PageSizeInfo +name "B4 JIS (257 x 364 mm)" +type 12 +width 932 +height 1320 +) +(PageSizeInfo +name "B5 JIS (182 x 257 mm)" +type 13 +width 660 +height 932 +) +(PageSizeInfo +name "B6 JIS (128 x 182 mm)" +type 88 +width 464 +height 660 +) +(PageSizeInfo +name "8\" x 13\"" +type 518 +width 737 +height 1198 +) +(PageSizeInfo +name "8,25\" x 13\"" +type 519 +width 760 +height 1198 +) +(PageSizeInfo +name "8,5\" x 13\"" +type 14 +width 783 +height 1198 +) +(PageSizeInfo +name "8.5\" x 13.4\"" +type 551 +width 783 +height 1235 +) +(PageSizeInfo +name "Com10 Env.(4,125\"x9,5\")" +type 20 +width 380 +height 875 +) +(PageSizeInfo +name "Env.Monar.(3,875\"x7,5\")" +type 37 +width 357 +height 691 +) +(PageSizeInfo +name "Env. DL (110 x 220 mm)" +type 27 +width 399 +height 798 +) +(PageSizeInfo +name "Env. C6 (114 x 162 mm)" +type 31 +width 413 +height 587 +) +(PageSizeInfo +name "Env. C5 (162 x 229 mm)" +type 28 +width 587 +height 830 +) +(PageSizeInfo +name "8K (267 x 390 mm)" +type 520 +width 968 +height 1415 +) +(PageSizeInfo +name "16K (195 x 267 mm)" +type 521 +width 707 +height 968 +) +(PageSizeInfo +name "8,25\" x 14\"" +type 522 +width 760 +height 1290 +) +(PageSizeInfo +name "11\" x 14\"" +type 524 +width 1013 +height 1290 +) +(PageSizeInfo +name "13\" x 19,2\"" +type 525 +width 1198 +height 1769 +) +(PageSizeInfo +name "13\" x 19\"" +type 526 +width 1198 +height 1751 +) +(PageSizeInfo +name "12,6\" x 19,2\"" +type 527 +width 1161 +height 1769 +) +(PageSizeInfo +name "12,6\" x 18,5\"" +type 528 +width 1161 +height 1704 +) +(PageSizeInfo +name "13\" x 18\"" +type 529 +width 1198 +height 1658 +) +(PageSizeInfo +name "10\" x 14\"" +type 16 +width 921 +height 1290 +) +(PageSizeInfo +name "10\" x 15\"" +type 546 +width 921 +height 1382 +) +(PageSizeInfo +name "11\" x 15\"" +type 539 +width 1013 +height 1382 +) +(PageSizeInfo +name "SRA3 (320 x 450 mm)" +type 530 +width 1161 +height 1632 +) +(PageSizeInfo +name "SRA4 (225 x 320 mm)" +type 531 +width 816 +height 1161 +) +(PageSizeInfo +name "Format papier personnalisé" +type 256 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size1(215,9 x 279,4 mm)" +type 257 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size2(215,9 x 279,4 mm)" +type 258 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size3(215,9 x 279,4 mm)" +type 259 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size4(215,9 x 279,4 mm)" +type 260 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size5(215,9 x 279,4 mm)" +type 261 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size6(215,9 x 279,4 mm)" +type 262 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size7(215,9 x 279,4 mm)" +type 263 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size8(215,9 x 279,4 mm)" +type 264 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size9(215,9 x 279,4 mm)" +type 265 +width 783 +height 1013 +) +(PageSizeInfo +name "Custom Paper Size10(215,9 x 279,4 mm)" +type 266 +width 783 +height 1013 +) +] +exportPageSetupInfo (PageSetupInfo +ptrCmd "FrameMaker MIF" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +exportHTMLPrintHierInfo (PrintHierInfo +includeViewTypes [ +] +) +customPaperSizeInfo [ +] +exportImageSizeInfo [ +(StringtoTwoInts +name "A4 (134mm x 110mm)" +width 379 +height 313 +) +(StringtoTwoInts +name "A4 (134mm x 221mm)" +width 379 +height 626 +) +(StringtoTwoInts +name "Letter (5.5\" x 4\")" +width 396 +height 288 +) +(StringtoTwoInts +name "Letter (5.5\" x 8\")" +width 396 +height 576 +) +] +titleBlockPath "$HDS_TEAM_VER\\title_block.tmpl" +win32CustomColours (win32CustomColours +color0 16777215 +color1 16777215 +color2 16777215 +color3 16777215 +color4 16777215 +color5 16777215 +color6 16777215 +color7 16777215 +color8 16777215 +color9 16777215 +color10 16777215 +color11 16777215 +color12 16777215 +color13 16777215 +color14 16777215 +color15 16777215 +) +userFileNames 1 +commentGraphicShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +) +pageConnTextVaSet (VaSet +fg "0,0,50000" +font "Verdana,9,1" +) +teamPrefsPath "" +remoteSimPath "$HDS_TEAM_VER\\remote" +mwMVL4 1 +mwVerilogUseSynthesisPragmas 0 +mwVhdlUseBusSlicesChkBox 0 +mwVerilogUseBusSlicesChkBox 0 +vmCheckInDesc "" +userVariables [ +(pair +first "concat_file" +second "concatenated" +) +] +defaultCategoryTemplates [ +1 +"architecture.vhd" +] +defaultCategoryTemplatesPrefs [ +1 +0 +] +tasksOrder [ +"USER:Generate" +"USER:ModelSim Compile" +"USER:ModelSim Simulate" +"USER:ModelSim Flow" +"USER:Prepare for Synthesis" +"USER:Xilinx Project Navigator" +"USER:Diamond Project Navigator" +] +tasksToolbarOrder [ +"\"USER:ModelSim Flow\"" +"\"USER:Prepare for Synthesis\"" +"USER:Generate" +] +tasksMenubarOrder [ +"\"USER:ModelSim Flow\"" +"USER:Generate" +] +tasksShortcutbarOrder [ +"Setup DesignChecker" +"\"USER:ModelSim Compile\"" +"\"USER:ModelSim Flow\"" +"\"USER:ModelSim Simulate\"" +"USER:Generate" +] +taskPreferences [ +(TaskPref +taskName "\"TEAM:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"TEAM:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Actel Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera MegaWizard\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Altera SOPC Builder\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Batch Programming\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:C/C++ Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Copy Of Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:DesignChecker Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" \"USER:Diamond Project IDE\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Diamond Project Navigator\" USER:Update.ldf" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Library Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:FPGA Technology Setup\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" \"USER:I/O Design\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:I/O Design Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Lattice Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:LeonardoSpectrum Flow\" USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" \"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:ModelSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" \"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Precision Synthesis\" \"USER:Precision Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Concatenate HDL\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" \"USER:Trim libraries\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Prepare for Synthesis\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" \"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus II Synthesis\" \"USER:Quartus II Synthesis Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Prime Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Programmer\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" \"USER:Quartus Synthesis\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Quartus Synthesis Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Compile\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" \"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:QuestaSim Simulate\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Register Assistant\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SPIRIT Wrapper Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "0" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:SVAssistant Flow\" USER:SVAssistant" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Trim librairies\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx CORE Generator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Impact\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Import\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Place and Route\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Platform Studio\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Copy Of Update.xise\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" \"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project Navigator\" USER:Update.xise" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Project navigator\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" \"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Synthesis Tool\" \"USER:XST Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" \"USER:Xilinx Vivado\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "\"USER:Xilinx Vivado Flow\" USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "TEAM:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:DesignChecker" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:Generate" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "2" +) +(pair +first "onPulldownMenu" +second "true" +) +(pair +first "onShortcutBar" +second "true" +) +(pair +first "onToolbar" +second "true" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Prepare Data\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "1" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +(TaskPref +taskName "USER:LeonardoSpectrum \"USER:LeonardoSpectrum Synthesis Invoke\"" +taskPrefStringMap [ +(pair +first "enabled" +second "" +) +(pair +first "hierLevel" +second "3" +) +(pair +first "onPulldownMenu" +second "" +) +(pair +first "onShortcutBar" +second "" +) +(pair +first "onToolbar" +second "" +) +] +) +] +mwParamsVisibility (mwParamsVisibilityOptions +) +autoPopupExprBuilder 0 +showExprBldrHint 0 +searchStrings [ +] +hdlWorkspaceLocation "" +hdsWorkspaceLocation "" +relativeLibraryRootDir "" +vmLabelLatestDontAskAgain 0 +vmLabelWorkspaceDontAskAgain 0 +logWindowGeometry "613x682+1114+208" +diagramBrowserTabNo 0 +showInsertPortHint 0 +showContentFirstTime 0 +) +(GenerationPreferences +automaticTypeConversion 0 +genPackages 1 +genDependants 0 +verilogSpecViewHeaderString "// Module %(library).%(unit).%(view) +// +// Created: +// by - %(user).%(group) (%(host)) +// at - %(time) %(date) +// +// Generated by Mentor Graphics' HDL Designer(TM) %(version) +// +%(moduleBody) +// ### Please start your Verilog code here ### + +endmodule" +vhdlGenExt "vhg" +vhdlConfigsName "%(unit)_%(view)_config" +vhdlConfigsFileNameTemplate "%(config)" +vhdlConfigsNameTemplate "%(unit)_%(view)_config" +separateEntity 1 +VHDLEndFrames 0 +) +(CompilationPreferences +) +(DMPreferences +version "1.1" +) +(AsmPreferences +version "1.1" +defaultSaveName "asm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +interruptShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +stateBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 1 +) +stateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +stateBoxMinimumSize "8000,2000" +stateBoxDefaultSize "8000,4000" +compStateBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 1 +) +compStateBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compStateBoxMinimumSize "8000,2000" +compStateBoxDefaultSize "8000,4000" +waitTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,10,1" +) +sBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +sBlockActionsVaSet (VaSet +) +priorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineWidth 1 +) +priorityNameVaSet (VaSet +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "49152,49152,49152" +lineWidth 1 +) +actionBoxActionsVaSet (VaSet +) +actionBoxMinimumSize "8000,2000" +actionBoxDefaultSize "8000,4000" +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "32768,32768,32768" +lineWidth 1 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +compActionBoxMinimumSize "8000,2000" +compActionBoxDefaultSize "8000,4000" +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +decisionBoxMinimumSize "8000,2000" +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startPointMinimumSize "6000,2000" +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 1 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointMinimumSize "6000,2000" +linkShapeVaSet (VaSet +vasetType 1 +fg "0,32896,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +caseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +caseLabelVaSet (VaSet +font "Verdana,9,1" +) +caseExpressionVaSet (VaSet +) +caseMinimumSize "14000,4000" +caseDefaultSize "28000,4000" +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +endCaseMinimumSize "8000,4000" +ifDecodeShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +ifDecodeLabelVaSet (VaSet +font "Verdana,9,1" +) +ifDecodeMinimumSize "14000,4000" +ifDecodeDefaultSize "28000,4000" +endIfShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 1 +) +endIfLabelVaSet (VaSet +font "Verdana,9,1" +) +endIfDecodeMinimumSize "8000,4000" +branchPortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +branchPortNameVaSet (VaSet +font "Verdana,9,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +flowConnectSize "1000,1000" +signalStatLabelVaSet (VaSet +font "Verdana,9,1" +) +signalStatValueVaSet (VaSet +font "Courier New,8,0" +) +declLabelVaSet (VaSet +font "Verdana,9,1" +) +declValueVaSet (VaSet +) +stmtLabelVaSet (VaSet +font "Verdana,9,1" +) +stmtValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +) +(BdPreferences +version "1.1" +defaultSaveName "struct" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +hdlTextName "eb1" +signalName "sig0" +busName "dbus0" +vhdlSignalType "std_ulogic" +vhdlBusType "unsigned" +vhdlConstraintType 0 +vhdlBounds "(15 DOWNTO 0)" +verilogType "wire" +verilogLeftBound "15" +verilogRightBound "0" +bundleName "bundle0" +instanceName "U_0" +globalConnectorName "G" +showAttributes 0 +syntaxChecked 1 +useSymbolAttributes 1 +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declaration" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +showVhdlSignalName 1 +showVhdlTypeConstraint 1 +showVhdlTypeFields 0 +showVhdlInitValue 0 +showVhdlSignalDeclSameLine 1 +vhdlConstraintFullForm 0 +showVlogSignalName 1 +showVlogTypeConstraint 1 +showVlogTypeFields 0 +showVlogDelay 0 +showVlogSignalDeclSameLine 1 +showVlog2kSignalName 1 +showVlog2kTypeConstraint 1 +showVlog2kTypeFields 0 +showVlog2kDelay 0 +showVlog2kSignalDeclSameLine 1 +showVlog2kValue 0 +showVlog2kSigned 0 +showVhdlPortName 1 +showVhdlPortTypeConstraint 0 +showVhdlPortTypeFields 0 +showVhdlPortInitValue 0 +showVhdlPortDeclSameLine 1 +vhdlPortConstraintFullForm 0 +showVlogPortName 1 +showVlogPortTypeConstraint 0 +showVlogPortTypeFields 0 +showVlogPortDelay 0 +showVlogPortDeclSameLine 1 +showVlog2kPortName 1 +showVlog2kPortTypeConstraint 0 +showVlog2kPortTypeFields 0 +showVlog2kPortDelay 0 +showVlog2kPortDeclSameLine 1 +showVlog2kPortValue 0 +showVlog2kPortSigned 0 +connectorShape 2 +blockVaSet (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +blockPortVaSet (VaSet +vasetType 1 +) +blockPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +hdlTextVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ripperVaSet (VaSet +vasetType 1 +) +portIoVaSet (VaSet +vasetType 1 +fg "0,0,32768" +) +portIoBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +danglingDotShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "65535,0,0" +) +signalVaSet (VaSet +vasetType 3 +) +busVaSet (VaSet +vasetType 3 +lineWidth 2 +) +bundleVaSet (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +blockFontVaSet (VaSet +font "Verdana,9,1" +) +cptFontVaSet (VaSet +font "Verdana,9,1" +) +signalFontVaSet (VaSet +) +bundleFontVaSet (VaSet +) +cptPortFontVaSet (VaSet +) +hdlTextFontVaSet (VaSet +font "Verdana,9,1" +) +embeddedTextVaSet (VaSet +) +embeddedTextShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +globalConnectorFontVaSet (VaSet +font "Verdana,9,1" +) +genericAssocFontVaSet (VaSet +font "Courier New,8,0" +) +portMapFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +portMapNameVaSet (VaSet +) +genFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +blkFrameVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +frameTxtVaSet (VaSet +) +foreignCptVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +order 0 +archDeclarativeBlockLabelText "Declarations" +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +blockCellsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +) +componentCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +modulewareCellsVaSet (VaSet +vasetType 4 +bg "0,65535,65535" +font "Tahoma,10,1" +) +ipCellsVaSet (VaSet +vasetType 4 +bg "45055,65535,30000" +font "Tahoma,10,1" +) +embeddedBlockCellsVaSet (VaSet +vasetType 4 +bg "65535,65535,37120" +font "Tahoma,10,1" +) +expressionRowVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +sliceRowsVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,1" +alignment 0 +) +bundleRowsVaSet (VaSet +vasetType 4 +bg "65280,65280,46080" +font "Tahoma,10,1" +alignment 0 +) +propColumnVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +) +groupColumnVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +interfaceColumnVaSet (VaSet +vasetType 4 +bg "59904,39936,65280" +font "Tahoma,10,1" +) +frameColumnVaSet (VaSet +vasetType 4 +fg "65535,65535,65535" +bg "0,0,65535" +font "Tahoma,10,1" +alignment 0 +) +propRowVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,1" +alignment 0 +) +groupRowVaSet (VaSet +vasetType 4 +bg "62965,57054,46003" +font "Tahoma,10,1" +alignment 0 +) +netRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +) +(FcPreferences +version "1.1" +defaultSaveName "flow" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +actionBoxShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +actionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +actionBoxActionsVaSet (VaSet +) +compActionBoxShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineWidth 2 +) +compActionBoxNameVaSet (VaSet +font "Verdana,10,1" +) +decisionBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +decisionBoxNameVaSet (VaSet +fg "0,32768,49152" +) +decisionBoxConditionVaSet (VaSet +) +decisionBoxLabelVaSet (VaSet +fg "32768,0,0" +font "Verdana,9,1" +) +waitBoxShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +waitBoxNameVaSet (VaSet +fg "0,32768,49152" +) +waitBoxConditionVaSet (VaSet +) +startPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +startPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +endPointShapeVaSet (VaSet +vasetType 1 +fg "49152,0,49152" +lineWidth 2 +) +endPointLabelVaSet (VaSet +fg "65535,65535,65535" +font "Verdana,10,1" +) +startLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +startLoopNameVaSet (VaSet +fg "0,32768,49152" +) +startLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startLoopConditionVaSet (VaSet +) +endLoopShapeVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +endLoopLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +startCaseNameVaSet (VaSet +fg "0,32768,49152" +) +startCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +startCaseExpressionVaSet (VaSet +) +endCaseShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,37120" +lineWidth 2 +) +endCaseLabelVaSet (VaSet +font "Verdana,9,1" +) +casePortShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +fillStyle 12 +) +casePortNameVaSet (VaSet +font "Verdana,12,1" +) +flowShapeVaSet (VaSet +vasetType 3 +) +flowJoinVaSet (VaSet +vasetType 1 +) +flowConnectShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +fillStyle 12 +) +archDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archDeclarativeBlockValueVaSet (VaSet +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +processDeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclarativeBlockValueVaSet (VaSet +) +sensitivityListBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +sensitivityListBlockValueVaSet (VaSet +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Local Declarations (Verilog)" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Sensitivity List" +status 1 +) +] +) +(HdmBrowserPreferences +version "1.1" +ViewpointsPresent_V2 1 +Viewpoints_V2 [ +(Viewpoint_v2 +name "Default Viewpoint" +masterDefault 1 +TreeListVPDatas [ +(TreeListVPData +theList "" +columns [ +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Language" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +width 140 +) +(TreeListVPData_Column +name "Extends" +width 100 +) +(TreeListVPData_Column +name "Size" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Version Management" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Lockers" +displayName "VM Lockers" +width 85 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +(TreeListVPData_Column +name "Version Management Versions" +displayName "VM Versions" +width 85 +) +(TreeListVPData_Column +name "Version Management Labels" +displayName "VM Labels" +width 85 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Versions" +width -1 +alignment 0 +) +(SmartTableVPData_Column +name "Version Management Labels" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "HDL Files" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(Files),C(DesignUnits),C(LogicalObjects)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "Logical Objects" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "H(A(C(LogicalObjects),C(Files),C(DesignUnits)),A(C(DesignHierarchy)))" +) +(Viewpoint_v2 +name "All Views" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits)),A(C(Files))),H(A(C(DesignHierarchy)),A(C(LogicalObjects))))" +) +(Viewpoint_v2 +name "Requirements" +TreeListVPDatas [ +(TreeListVPData +theList "Design Units" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Language" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +ShowSymbols 1 +accessRights 2 +) +(TreeListVPData +theList "HDL Files" +columns [ +(TreeListVPData_Column +name "Type" +displayName "" +width 140 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Size" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Time Stamp" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +(TreeListVPData +theList "Hierarchy" +columns [ +(TreeListVPData_Column +name "Design Unit Name" +displayName "" +width 150 +) +(TreeListVPData_Column +name "Extends" +displayName "" +width 100 +) +(TreeListVPData_Column +name "Name" +displayName "" +width 250 +) +(TreeListVPData_Column +name "Library" +displayName "" +width 120 +) +] +filterString "" +accessRights 2 +) +] +SmartTableVPDatas [ +(SmartTableVPData +theList "Logical Objects" +columns [ +(SmartTableVPData_Column +name "Parse Error" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Top Marker" +width 22 +alignment 0 +) +(SmartTableVPData_Column +name "Type" +width 140 +alignment 0 +) +(SmartTableVPData_Column +name "Don't Touch Indicator" +width 20 +alignment 0 +) +(SmartTableVPData_Column +name "Name" +width 250 +alignment 0 +) +(SmartTableVPData_Column +name "Extends" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Language" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Size" +width 100 +alignment 0 +) +(SmartTableVPData_Column +name "Time Stamp" +width 120 +alignment 0 +) +(SmartTableVPData_Column +name "Requirement References" +width -1 +alignment 0 +) +] +filterNames [ +"Architectures and Modules" +"Configurations" +"Entities" +"Files" +"Packages" +"SV Classes" +"SV Interfaces" +"SV Packages" +"SV Program Blocks" +] +filterString "" +filterColumn "" +matchCase 0 +matchWholeWordOnly 0 +regularExpression 1 +groupNames [ +] +disableFilters 1 +) +] +layoutExpression "V(H(A(C(DesignUnits),C(LogicalObjects)),A(C(Files))),A(C(DesignHierarchy)))" +) +] +WorkTabs [ +(WorkTab +name "Cursor" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor" +primaryName "cursorCircuit" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Cursor_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Cursor_test" +primaryName "cursor_tb" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +(DeclHierarchy +libName "Board" +primaryName "FPGA_cursor" +secondaryName "" +) +] +activeViewpointIdx 0 +) +(WorkTab +name "LCD" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "WaveformGenerator_test" +showingHierarchy 0 +openLibs [ +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "Board" +showingHierarchy 0 +openLibs [ +"Board" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "PipelinedOperators" +showingHierarchy 0 +openLibs [ +"PipelinedOperators" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +(WorkTab +name "PipelinedOperators_test" +showingHierarchy 0 +openLibs [ +"PipelinedOperators_test" +] +declHierarchy [ +] +activeViewpointIdx 0 +) +] +ViewpointsOnOutlookBar [ +"Requirements" +"Default Viewpoint" +"Version Management" +"HDL Files" +"Logical Objects" +"All Views" +] +lastActiveViewpoint "Default Viewpoint" +expandedTemplateNodes [ +] +taskTemplatePage 0 +SplitterClientPrefs [ +"mainSplitter" +(SplitterPreference +hidden 0 +expand 0 +size 180 +) +] +displayHierarchy 0 +xPos 0 +yPos 0 +width 1936 +height 1056 +activeSidePanelTab 2 +activeLibraryTab 1 +sidePanelSize 278 +showUnixHiddenFiles 0 +componentBrowserXpos -1351 +componentBrowserYpos 300 +componentBrowserWidth 300 +componentBrowserHeight 340 +componentBrowserLibraryNames [ +"Board" +] +) +(SmPreferences +version "1.1" +defaultSaveName "fsm" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 0 +gridSnapping 0 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "26368,26368,26368" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +visibilityPrefs [ +(StringToBool +display "Architecture Declarations (VHDL)" +status 1 +) +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Concurrent Statements" +status 1 +) +(StringToBool +display "Global Actions" +status 1 +) +(StringToBool +display "Module Declarations (Verilog)" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +(StringToBool +display "Process Declarations (VHDL)" +status 1 +) +(StringToBool +display "Signal Status" +status 1 +) +(StringToBool +display "State Register Statements" +status 1 +) +] +clockNameVaSet (VaSet +) +clockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +resetNameVaSet (VaSet +) +resetShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +enableNameVaSet (VaSet +) +enableShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +) +ccondNameVaSet (VaSet +) +ccondShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +recoveryShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +stateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +stateNameVaSet (VaSet +font "Verdana,12,1" +) +stateEncodingVaSet (VaSet +font "Verdana,9,1" +) +stateActionsVaSet (VaSet +) +stateActionShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +stateCaseVaSet (VaSet +font "Verdana,9,1" +) +cStateShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +cStateNameVaSet (VaSet +font "Verdana,10,1" +) +junctionShapeVaSet (VaSet +vasetType 1 +fg "59904,39936,65280" +) +junctionNameVaSet (VaSet +font "Verdana,9,1" +) +junctionSymbolVaSet (VaSet +font "Verdana,10,1" +) +entryPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +interruptPointShapeVaSet (VaSet +vasetType 1 +fg "65535,0,0" +) +linkShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +linkNameVaSet (VaSet +font "Verdana,9,1" +) +exitPointShapeVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +) +wStateShapeVaSet (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +wStateTextVaSet (VaSet +fg "0,0,32768" +font "Verdana,12,1" +) +tBlockShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +tBlockLineVaSet (VaSet +vasetType 3 +) +tBlockConditionVaSet (VaSet +) +tBlockActionsVaSet (VaSet +) +tPriorityRadius 40 +tPriorityPadding 100 +tPriorityShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +tPriorityNameVaSet (VaSet +) +transitionShapeVaSet (VaSet +vasetType 3 +) +localDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +localDeclValueVaSet (VaSet +font "Courier New,8,0" +) +processDeclLabelVaSet (VaSet +font "Verdana,9,1" +) +processDeclValueVaSet (VaSet +font "Courier New,8,0" +) +globalActionsLabelVaSet (VaSet +font "Verdana,9,1" +) +globalActionsValueVaSet (VaSet +) +stateRegBlkLabelVaSet (VaSet +font "Verdana,9,1" +) +stateRegBlkValueVaSet (VaSet +) +signalsGenStatusVaSet (VaSet +font "Verdana,9,1" +) +signalsGenStatusValueVaSet (VaSet +font "Courier New,8,0" +) +archConcurrentStatementBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +archConcurrentStatementBlockValueVaSet (VaSet +) +outputSignalStatus 1 +internalSignalStatus 2 +showPropsDlgMsg 1 +) +(H2gPreferences +filesAdded [ +] +h2gFileListHistory [ +] +libraryNames [ +] +librarySearchPath [ +] +embeddedSM 1 +searchLibraries [ +] +) +(TtPreferences +version "1.1" +defaultSaveName "tbl" +gridVisible 0 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +) +CompDirValueVaSet (VaSet +) +defaultPanelName "" +textVaSet (VaSet +) +highlightVaSet (VaSet +vasetType 0 +fg "65535,0,0" +bg "65535,0,0" +) +inputExpressionVaSet (VaSet +vasetType 0 +fg "39936,56832,65280" +bg "39936,56832,65280" +) +inputColumnVaSet (VaSet +vasetType 0 +fg "0,65535,65535" +bg "0,65535,65535" +) +outputExpressionVaSet (VaSet +vasetType 0 +fg "65535,65535,37120" +bg "65535,65535,37120" +) +outputColumnVaSet (VaSet +vasetType 0 +fg "65280,65280,46080" +bg "65280,65280,46080" +) +) +(AnimPreferences +version "1.1" +startTime 0,0 +trailLength 2147483647 +markEvalOnly 0 +currentVaSet (VaSet +vasetType 1 +fg "65535,0,0" +lineColor "65535,0,0" +) +previousVaSet (VaSet +vasetType 1 +fg "65535,65535,0" +lineColor "65535,65535,0" +) +evalVaSet (VaSet +vasetType 1 +fg "45055,65535,30000" +lineColor "45055,65535,30000" +) +visitedVaSet (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "29952,39936,65280" +) +unvisitedVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +) +probeRadix 0 +) +(SymbolPreferences +version "1.1" +defaultSaveName "" +packageListLabelVaSet (VaSet +font "Verdana,9,1" +) +packageListFontVaSet (VaSet +) +commentTextFontVaSet (VaSet +fg "0,0,32768" +) +commentTextShapeVaSet (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +requirementTextFontVaSet (VaSet +fg "0,0,32768" +font "arial,8,0" +) +gridVisible 1 +gridSnapping 1 +gridHorizSpacing 1000 +gridVertSpacing 1000 +gridHorizShown 1 +gridVertShown 1 +gridColor "65535,0,0" +diagramBackground "65535,65535,65535" +CompDirLabelVaSet (VaSet +font "Verdana,9,1" +) +CompDirValueVaSet (VaSet +) +defaultPanelName "Panel0" +panelShapeVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +panelTextVaSet (VaSet +font "Verdana,9,1" +) +bodyVaSet (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +cptPortVaSet (VaSet +vasetType 1 +fg "0,65535,0" +) +cptPortBufferVaSet (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +bodyFontVaSet (VaSet +font "Verdana,9,1" +) +cptPortFontVaSet (VaSet +font "Verdana,12,0" +) +genericInterfaceFontVaSet (VaSet +font "Courier New,8,0" +) +portRowVaSet (VaSet +vasetType 4 +font "Tahoma,10,0" +) +groupRowVaSet (VaSet +vasetType 4 +bg "39936,56832,65280" +font "Tahoma,10,0" +) +headCellVaSet (VaSet +vasetType 4 +bg "49152,49152,49152" +font "Tahoma,10,0" +) +gridVaSet (VaSet +vasetType 4 +fg "49152,49152,49152" +bg "0,49152,49152" +font "Tahoma,10,0" +) +propColVaSet (VaSet +vasetType 4 +bg "0,49152,49152" +font "Tahoma,10,0" +) +visibilityPrefs [ +(StringToBool +display "Compiler Directives (Verilog)" +status 1 +) +(StringToBool +display "Declarations" +status 1 +) +(StringToBool +display "Package List (VHDL)" +status 1 +) +] +cptPortInName "In0" +cptPortOutName "Out0" +cptPortInOutName "InOut0" +cptPortBufferName "Buffer0" +groupName "Group0" +cptPortVhdlType "unsigned" +cptPortVerilogType "wire" +cptPortVhdlBounds "(15 DOWNTO 0)" +cptPortVerilogLb "15" +cptPortVerilogRb "0" +cptPortVhdlConstraintType 0 +DeclarativeBlockLabelText "Declarations" +DeclarativeBlockLabelVaSet (VaSet +font "Verdana,9,1" +) +DeclarativeBlockValueVaSet (VaSet +font "Courier New,8,0" +) +DeclarativeBlockPortVaSet (VaSet +font "Courier New,8,0" +) +order 0 +editSignalScope 4 +showUpdateWhereUsedPrompt 0 +) +] diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk new file mode 100644 index 0000000..43e7dbe --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/diamond_project_navigator.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Diamond Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Diamond synthesis Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.ldf" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Diamond project .prjx file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_diamond.pl $DESIGN_NAME.ldf $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.lpf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$DIAMOND_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Diamond Project IDE" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_lattice.bmp" +hasBitmap 1 +tooltip "Invokes the Lattice Diamond tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\start_diamond.pl $DESIGN_NAME.ldf" +"captureOutput" +"1" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$LIBERO_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/generate.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/generate.tsk new file mode 100644 index 0000000..215aac5 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/generate.tsk @@ -0,0 +1,41 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 2 +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk new file mode 100644 index 0000000..687aa77 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_compile.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Compile" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_compile.bmp" +hasBitmap 1 +tooltip "Runs ModelSim compilation" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"ModelSimCompiler" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"64bit" +"0" +"compAlways" +"0" +"covSwitch" +"" +"coverNoSub" +"" +"dontAskAgain" +"0" +"enableMFCU" +"1" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"logFile" +"" +"logicalLib" +"1" +"mapAllLib" +"0" +"mapQuartusIPs" +"1" +"masterCov" +"0" +"peSe" +"EE" +"prevOnly" +"0" +"quartusSimDir" +"$HDS_PROJECT_DIR/QuartusIPSimLibs" +"replayScriptPath" +"" +"saveReplayScript" +"0" +"server" +"" +"showCmd" +"0" +"transcript" +"1" +"useFlatLibrary" +"0" +"useRemote" +"0" +"useShortName" +"0" +"vhdlSwitches" +" -nologo" +"vlogSwitches" +" -nologo" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk new file mode 100644 index 0000000..35db922 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_flow.tsk @@ -0,0 +1,83 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "ModelSim Flow" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim.bmp" +hasBitmap 1 +tooltip "Generate and run entire ModelSim flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +(preferedMap +preferedEnum 0 +preferedSetting "$MODELSIM_HOME" +) +(preferedMap +preferedEnum 2 +preferedSetting "ModelSim" +) +] +onShortcutBar 1 +onPulldownMenu 1 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTaskRef +TaskName "Generate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:Generate" +) +(HDSTaskRef +TaskName "ModelSim Compile" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +reffedTaskName "USER:ModelSim Compile" +) +(HDSTaskRef +TaskName "ModelSim Simulate" +bitmap "" +hasBitmap 1 +tooltip "" +taskSettings [ +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +reffedTaskName "USER:ModelSim Simulate" +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk new file mode 100644 index 0000000..7a023d8 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/modelsim_simulate.tsk @@ -0,0 +1,98 @@ +version "1.1" +HDSTool (HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "ModelSim Simulate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_modelsim_invoke.bmp" +hasBitmap 1 +tooltip "Invokes the ModelSim Simulator" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"1" +"runMethod" +"gui" +"runnableObject" +"ModelSimSimulator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"Arguments" +"" +"Arguments1" +"do controller.do" +"Arguments2" +"controller.do" +"Communication" +"1" +"DelaySelection" +"typ" +"GlitchGeneration" +"1" +"InitCmd" +"$SIMULATION_DIR/pipelineCounter.do" +"LogFile" +"" +"RemoteHost" +"" +"Resolution" +"ps" +"SdfDelay" +"typ" +"SdfMultiSrcDelay" +"latest" +"SdfReduce" +"0" +"SdfWarnings" +"1" +"TimingChecks" +"1" +"UseBatch" +"0" +"UseCLI" +"0" +"UseGUI" +"1" +"VitalVersion" +"95" +"autoNames" +"1" +"coverage" +"0" +"excludePSL" +"0" +"exepath" +"$MODELSIM_HOME" +"minimumSimSetting" +"0" +"saveReplayScript" +"0" +"useCustomSimDir" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 1 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk new file mode 100644 index 0000000..afac4f8 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/prepare_for_synthesis.tsk @@ -0,0 +1,162 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Prepare for Synthesis" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_synthesis.bmp" +hasBitmap 1 +tooltip "generates a single file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 1 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Generate" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_generate.bmp" +hasBitmap 1 +tooltip "Performs generation of graphics files" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Generator" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Concatenate HDL" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools/tool_concatenate.bmp" +hasBitmap 1 +tooltip "Appends all HDL files together" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"" +"captureOutput" +"0" +"customPrompt" +"" +"initialDir" +"" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"Concatenation" +"runnableObjectType" +"tcl_plugin" +"useViewSpecific" +"1" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"outputFileNameRoot" +"%(concat_file)" +"outputVerilogFileExtension" +"v" +"outputVhdlFileExtension" +"vhd" +"place" +"0" +"specifyDir" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Trim libraries" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "comment out library declarations for singles file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +".\\..\\..\\Scripts\\trimLibs.pl %(concat_file).vhd $DESIGN_NAME.vhd" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$CONCAT_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk new file mode 100644 index 0000000..0ea6209 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/tasks/xilinx_project_navigator.tsk @@ -0,0 +1,163 @@ +version "1.1" +HDSFlow (HDSFlow +TaskName "Xilinx Project Navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Xilinx Flow" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"flowSettingsDlg" +"" +"taskInvocationScript" +"" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 1 +subTasks [ +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Update.xise" +bitmap "tool_default_tool.bmp" +hasBitmap 1 +tooltip "Update file references in the Xilnx project .xise file" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$CONCAT_DIR\\..\\..\\Scripts\\update_ise.pl $DESIGN_NAME.xise $CONCAT_DIR\\$DESIGN_NAME.vhd $CONCAT_DIR\\$DESIGN_NAME.ucf" +"captureOutput" +"1" +"customPrompt" +"" +"initialDir" +"$ISE_WORK_DIR" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$HDS_HOME\\resources\\perl\\bin\\perl.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +(HDSTool +hasAssociatedFileExt 0 +associatedFileExt "" +TaskName "Xilinx Project navigator" +bitmap "$HDS_HOME\\resources\\bitmaps\\tools\\tool_xilinx_synthesis.bmp" +hasBitmap 1 +tooltip "Invokes the Xilinx ISE tool" +taskSettings [ +"InternalTaskSetting" +(SettingsMap +settingsMap [ +"additionalToolArgs" +"$DESIGN_NAME.xise" +"captureOutput" +"0" +"customPrompt" +"" +"descriptiveName" +"FPGA Technology Setup Plugin" +"initialDir" +"$ISE_WORK_DIR" +"isHierarchical" +"0" +"needsSave" +"0" +"pluginInfo" +"FPGA Technology Setup Plug-in v2.0 +For additional information, exceptions, compatibility issues and updates, visit SupportNet." +"pluginVersion" +"2.0" +"promptForRunSettings" +"0" +"runMethod" +"gui" +"runnableObject" +"$ISE_HOME\\bin\\nt64\\ise.exe" +"runnableObjectType" +"executable" +"useViewSpecific" +"0" +] +) +"TaskSetting" +(SettingsMap +settingsMap [ +"InputFile" +"U:/ELN_board/Board/concat/cursor.vhd" +"RunFromPlugin" +"False" +"RunInteractiveFromPlugIn" +"True" +"createAsciiFile" +"False" +"createBinaryFile" +"False" +"createFiles" +"True" +"createScriptFile" +"False" +"device" +"xc2vp7" +"edifngcPath" +"U:/ELN_board/Board/concat/cursor.vhd" +"effortLevel" +"Standard" +"family" +"virtex2p" +"familyName" +"virtex2p" +"netlist" +"other" +"netlistDefaultView" +"True" +"package" +"fg456" +"simulationModelLanguage" +"Modelsim_VHDL" +"speed" +"-7" +"synthTool" +"Xilinx XST" +"ucfPath" +"" +"vendor" +"xilinx" +] +) +] +PreferedTasks [ +] +onShortcutBar 0 +onPulldownMenu 0 +onToolbar 0 +enabled 1 +hierDepth 3 +) +] +) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt new file mode 100644 index 0000000..8e54448 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/text_files/new_document.txt @@ -0,0 +1,13 @@ +FILE_NAMING_RULE: new_document.txt +DESCRIPTION_START +This is the default template used for the creation of Text Document files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +# +# Created: +# by - %(user).%(group) (%(host)) +# at - %(time) %(date) +# +# using Mentor Graphics HDL Designer(TM) %(version) +# + diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd new file mode 100644 index 0000000..faf9041 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_architecture/architecture.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Architecture files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(architecture) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd new file mode 100644 index 0000000..ba6941d --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_combined/combined.vhd @@ -0,0 +1,17 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name).vhd +DESCRIPTION_START +This is the default template used for the creation of combined VHDL Architecture and Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Architecture %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) +-- +%(architecture) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd new file mode 100644 index 0000000..302dffe --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_configuration/configuration.vhd @@ -0,0 +1,19 @@ +FILE_NAMING_RULE: %(entity_name)_%(arch_name)_config.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Configuration files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Configuration %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +CONFIGURATION %(entity_name)_config OF %(entity_name) IS + FOR %(arch_name) + END FOR; +END %(entity_name)_config; + diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd new file mode 100644 index 0000000..272950c --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_entity/entity.vhd @@ -0,0 +1,15 @@ +FILE_NAMING_RULE: %(entity_name)_entity.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Entity files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Entity %(library).%(unit).%(view) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +%(entity) diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd new file mode 100644 index 0000000..0f95d5d --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_body/package_body.vhd @@ -0,0 +1,16 @@ +FILE_NAMING_RULE: %(entity_name)_pkg_body.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Body files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Body %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +PACKAGE BODY %(entity_name) IS +END %(entity_name); diff --git a/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd new file mode 100644 index 0000000..d4257e1 --- /dev/null +++ b/10-PipelinedOperators/Prefs/hds_user/v2019.2/templates/vhdl_package_header/package_header.vhd @@ -0,0 +1,18 @@ +FILE_NAMING_RULE: %(entity_name)_pkg.vhd +DESCRIPTION_START +This is the default template used for the creation of VHDL Package Header files. +Template supplied by Mentor Graphics. +DESCRIPTION_END +-- +-- VHDL Package Header %(library).%(unit) +-- +-- Created: +-- by - %(user).%(group) (%(host)) +-- at - %(time) %(date) +-- +-- using Mentor Graphics HDL Designer(TM) %(version) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +PACKAGE %(entity_name) IS +END %(entity_name); diff --git a/10-PipelinedOperators/Scripts/cleanGenerated.bash b/10-PipelinedOperators/Scripts/cleanGenerated.bash new file mode 100755 index 0000000..ca088c6 --- /dev/null +++ b/10-PipelinedOperators/Scripts/cleanGenerated.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +#================================================================================ +# cleanGenerated.bash - Clean intermediate files form folder +# +base_directory="$(dirname "$(readlink -f "$0")")" +pushd $base_directory +base_directory="$base_directory/.." + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#------------------------------------------------------------------------------- +# Remove generated and cache files +# +find $base_directory -type f -name '.cache.dat' | xargs -r rm -v +find $base_directory -type f -name '*.bak' | xargs -r rm -v +find $base_directory -type f -name '*.lck' | xargs -r rm -v +find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v +find $base_directory -type f -name 'default_view' | xargs -r rm -v +find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v +find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v +find $base_directory -type f -name '*.vhg' | xargs -r rm -v +find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v +find $base_directory -type d -name '.xrf' | xargs -r rm -Rv + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd diff --git a/10-PipelinedOperators/Scripts/cleanGenerated.bat b/10-PipelinedOperators/Scripts/cleanGenerated.bat new file mode 100644 index 0000000..0084edb --- /dev/null +++ b/10-PipelinedOperators/Scripts/cleanGenerated.bat @@ -0,0 +1,42 @@ +::============================================================================== +:: cleanGenerated.bat +:: Clean intermediate files from folder +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR="--------------------------------------------------------------------------------" + set INDENT=" " + + echo %SEPARATOR% + echo "-- %~nx0 Started!" + echo. +::------------------------------------------------------------------------------ +:: Delete intermediate files +:: +set base_directory="%cmd_location:"=%.." + +echo "Delete intermediate files in: %base_directory%" +del /f /s /a %base_directory%\*cache.dat +del /f /s /a %base_directory%\*.bak +del /f /s /a %base_directory%\*.lck +del /f /s /a %base_directory%\*.vhd.info +del /f /s /a %base_directory%\default_view +del /f /s /a %base_directory%\*_entity.vhd +del /f /s /a %base_directory%\*_struct.vhd +del /f /s /a %base_directory%\*_fsm.vhd +del /f /s /a %base_directory%\*.vhg +del /f /s /a %base_directory%\*.DS_Store + +echo "Delete intermediate directories in: %base_directory%" +for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" + +:end + echo. + echo "-- %~nx0 Finished!" + echo %SEPARATOR% + popd + endlocal + goto:eof \ No newline at end of file diff --git a/10-PipelinedOperators/Scripts/cleanScratch.bat b/10-PipelinedOperators/Scripts/cleanScratch.bat new file mode 100644 index 0000000..098bf97 --- /dev/null +++ b/10-PipelinedOperators/Scripts/cleanScratch.bat @@ -0,0 +1,39 @@ +::============================================================================== +:: cleanScratch.bat +:: Clean scratch directory +:: +:start + @echo off + setlocal + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +if "%SCRATCH_DIR%" == "" ( + set SCRATCH_DIR=C:\temp\eda\ +) + +echo Delete scratch directory %SCRATCH_DIR% +if exist %SCRATCH_DIR% ( + echo Scratch directory found, deleting! + rmdir /S /Q "%SCRATCH_DIR%" +) else ( + echo Scratch directory not found! +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof \ No newline at end of file diff --git a/10-PipelinedOperators/Scripts/generateSSHKey.bash b/10-PipelinedOperators/Scripts/generateSSHKey.bash new file mode 100644 index 0000000..c906a16 --- /dev/null +++ b/10-PipelinedOperators/Scripts/generateSSHKey.bash @@ -0,0 +1,42 @@ +#!/bin/bash + +#============================================================================== +# generates an SSH key under default user location ~/.ssh/ +# and add the public key to the clipboard +# +# the email could be given when calling the script or be prompted later + +email='' +filename=$(hostname) +user=$(whoami) + +usage='Usage: generateSSH.bash [-e email]' + +# handle options +while getopts 'e:v' flag; do + case "${flag}" in + e) email=${OPTARG};; + esac +done + +# if the mail is not given, prompt it +if [ -z "$email" ] +then + echo -n "Please enter your mail: " + read email +fi +# generates the key-couple +# cat /dev/zero create an empty file to be filled by the key +# then ssh-keygen is called with: +# -q to call it silently (no verbose) +# -N with empty string to set no-password +# -t to specify the type of key +# -C to set the user mail +cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename + +# then copy the public key into the clipboard +clip < ~/.ssh/${filename}.pub + +# print output for user +echo -e "\nThe keyfiles are generated under ~/.ssh/" +echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." \ No newline at end of file diff --git a/10-PipelinedOperators/Scripts/hdlDesigner.bash b/10-PipelinedOperators/Scripts/hdlDesigner.bash new file mode 100755 index 0000000..4b54b46 --- /dev/null +++ b/10-PipelinedOperators/Scripts/hdlDesigner.bash @@ -0,0 +1,154 @@ +#!/bin/bash + +#================================================================================ +# hdl_designer.bash - Starts HDL designer +# +base_directory="$(dirname "$(readlink -f "$0")")" +base_directory="$base_directory/.." +pushd $base_directory + +SEPARATOR='--------------------------------------------------------------------------------' +INDENT=' ' + +echo "$SEPARATOR" +echo "-- ${0##*/} Started!" +echo "" + +#-------------------------------------------------------------------------------- +# Parse command line options +# +command_switches='n:d:p:m:i:u:t:s:c:y:vh' +usage='Usage: hdl_designer.bash [-v] [-h]' +usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" + # set name and base directory +design_name=`basename $0 .bash` +design_directory=`dirname ${BASH_SOURCE[0]}` + +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + esac +done + # continue with preferences directory +prefs_directory="$design_directory/Prefs" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) design_name=$OPTARG;; + d ) design_directory=$OPTARG;; + p ) prefs_directory=$OPTARG;; + esac +done + # finish with other parameters +library_matchings="$design_name.hdp" +library_matchings='hds.hdp' +simulation_directory="$design_directory/Simulation" +user_prefs_directory="$prefs_directory/hds_user-linux" +team_prefs_directory="$prefs_directory/hds_team" +scratch_directory='/tmp/eda/' +synthesis_subdirectory="Board/ise" +concat_directory="$design_directory/Board/concat" + +OPTIND=1 +while getopts $command_switches options; do + case $options in + n ) ;; + d ) ;; + m ) library_matchings=$OPTARG;; + i ) simulation_directory=$OPTARG;; + u ) user_prefs_directory=$OPTARG;; + t ) team_prefs_directory=$OPTARG;; + s ) scratch_directory=$OPTARG;; + c ) concat_directory=$OPTARG;; + y ) synthesis_subdirectory=$OPTARG;; + v ) verbose=1;; + h ) echo -e $usage + exit 1;; + * ) echo -e $usage + exit 1;; + esac +done + +design_directory=`realpath $design_directory` +library_matchings=`realpath $prefs_directory/$library_matchings` +simulation_directory=`realpath $simulation_directory` +user_prefs_directory=`realpath $user_prefs_directory` +team_prefs_directory=`realpath $team_prefs_directory` +concat_directory=`realpath $concat_directory` +mkdir -p $scratch_directory +scratch_directory=`realpath $scratch_directory` + +#================================================================================ +# Main script +# + +#------------------------------------------------------------------------------- +# System environment variables +# +export HDS_HOME=/usr/opt/HDS +export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ +export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE +export LC_ALL=C +export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin +export MGLS_HOME=/usr/opt/HDS/license/mgls + +#------------------------------------------------------------------------------- +# Project environment variables +# +export DESIGN_NAME=$design_name +export HDS_LIBS=$library_matchings +export HDS_USER_HOME="$user_prefs_directory" +export HDS_TEAM_HOME=$team_prefs_directory +export SIMULATION_DIR=$simulation_directory +export SCRATCH_DIR=$scratch_directory +export CONCAT_DIR=$concat_directory +export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` +export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory + +#------------------------------------------------------------------------------- +# Display info +# +if [ -n "$verbose" ] ; then + echo "Environment variables:" + echo "${INDENT}Design name is $DESIGN_NAME" + echo "${INDENT}Lib matchings file is $HDS_LIBS" + echo "${INDENT}Simulation directory is $SIMULATION_DIR" + echo "${INDENT}User prefs directory is $HDS_USER_HOME" + echo "${INDENT}Team prefs directory is $HDS_TEAM_HOME" + echo "${INDENT}Scratch directory is $SCRATCH_DIR" + echo "${INDENT}Concat directory is $CONCAT_DIR" + echo "${INDENT}HDS location is $HDS_HOME" + echo "${INDENT}Modelsim location is $MODELSIM_HOME" + echo "${INDENT}Synthesis app location is $SYNTHESIS_HOME" + echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" + echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" +fi + +#------------------------------------------------------------------------------- +# Copy synthesis data to scratch +# +if true; then + echo "Copying" + echo "${INDENT}$SYNTHESIS_BASE_DIR" + echo "${INDENT}-> $SYNTHESIS_WORK_DIR" +fi +if [ -e "$SYNTHESIS_BASE_DIR" ]; then + rm -Rf $SYNTHESIS_WORK_DIR + mkdir -p $SYNTHESIS_WORK_DIR + cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ +fi + +#------------------------------------------------------------------------------- +# Launch application +# +hdl_designer & + +#------------------------------------------------------------------------------- +# Exit +# +echo "" +echo "-- ${0##*/} Finished!" +echo "$SEPARATOR" +popd \ No newline at end of file diff --git a/10-PipelinedOperators/Scripts/hdlDesigner.bat b/10-PipelinedOperators/Scripts/hdlDesigner.bat new file mode 100644 index 0000000..2a612a6 --- /dev/null +++ b/10-PipelinedOperators/Scripts/hdlDesigner.bat @@ -0,0 +1,301 @@ +::============================================================================== +:: hdl_designer.bash - Starts HDL designer +:: +:start + setlocal EnableExtensions EnableDelayedExpansion + set cmd_location=%~dp0 + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +:: ----------------------------------------------------------------------------- +:: Define default environment variables +IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" +IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" +IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" +IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" +IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" +IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" +IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" +:: +::remove trailing backslash +if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% + +set design_name=%~n0 +set hpd_name=hds + +if "%ISE_VERSION%"== "" ( + set ISE_VERSION=14.7 +) +set prefs_directory="%design_directory:"=%\Prefs" +set library_matchings="%hpd_name%.hdp" +set simulation_directory="%design_directory:"=%\Simulation" +set user_prefs_directory="%prefs_directory:"=%\hds_user" +set team_prefs_directory="%prefs_directory:"=%\hds_team" +if "%SCRATCH_DIR%" == "" ( + set scratch_directory=C:\temp\eda\%username% +) else ( + set scratch_directory=%SCRATCH_DIR% +) + +set synthesis_subdirectory="" +if %REQUIRE_ISE% == 1 ( + set synthesis_subdirectory="Board\ise" +) +if %REQUIRE_LIBERO% == 1 ( + set synthesis_subdirectory="Board\libero" +) +if %REQUIRE_DIAMOND% == 1 ( + set synthesis_subdirectory="Board\diamond" +) +if %REQUIRE_ICECUBE2% == 1 ( + set synthesis_subdirectory="Board\icecube2" +) +set concat_directory="%design_directory:"=%\Board\concat" + +::------------------------------------------------------------------------------ +:: Parse command line options +:: +:parse +set usage1="Usage: hdl_designer.bat [-v] [-h]" +set usage2=" [-n designName] [-d designDirectory]" +set usage3=" [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" +set usage4=" [-s scratchDirectory] [-c concatDirectory]" +set usage5=" [-y synthesisDirectory] [-m library_matchings]" + +echo Search Commandline Parameters +:parseloop +if not "%1"=="" ( + if "%1"=="-v" ( + set VERBOSE=1 + echo %INDENT:"=%verbose enabled + shift + ) + if "%1"=="-h" ( + goto :HELP + shift + ) + if "%1"=="-n" ( + set design_name=%2 + echo %INDENT:"=%design_name=!design_name:"=! + shift & shift + ) + if "%1"=="-d" ( + set design_directory=%2 + echo %INDENT:"=%design_directory=!design_directory:"=! + shift & shift + ) + if "%1"=="-p" ( + set prefs_directory=%2 + echo %INDENT:"=%prefs_directory=!prefs_directory:"=! + shift & shift + ) + if "%1"=="-u" ( + set user_prefs_directory=%2 + echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% + shift & shift + ) + if "%1"=="-t" ( + set team_prefs_directory=%2 + echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% + shift & shift + ) + if "%1"=="-s" ( + set scratch_directory=%2 + echo %INDENT:"=%scratch_directory=%scratch_directory:"=% + shift & shift + ) + if "%1"=="-c" ( + set concat_directory=%2 + echo "%INDENT:"=%concat_directory=%concat_directory:"=% " + shift & shift + ) + if "%1"=="-y" ( + set synthesis_subdirectory=%2 + echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% + shift & shift + ) + if "%1"=="-m" ( + set set library_matchings="%2.hdp" + echo %INDENT:"=%library_matchings=%library_matchings:"=% + shift & shift + ) + goto :parseloop +) +echo. + +:: Setting all concurrent variables +set prefs_directory="!design_directory:"=!\Prefs" +set user_prefs_directory="!prefs_directory:"=!\hds_user" +set team_prefs_directory="!prefs_directory:"=!\hds_team" +set library_matchings=!prefs_directory:"=!\!library_matchings:"=! +set simulation_directory="!design_directory:"=!\Simulation" +set concat_directory="!design_directory:"=!\Board\concat" + +:: Getting realpath +:: TODO + +:: create scratch dir +if not exist "%scratch_directory%" ( + mkdir "%scratch_directory:"=%" +) + +::================================================================================ +:: Main script +:: +echo. +call "./searchPaths.bat" + +::------------------------------------------------------------------------------ +:: Project environment variables +:: +set DESIGN_NAME=%design_name:"=% +set HDS_LIBS=%library_matchings:"=% +set HDS_USER_HOME=%user_prefs_directory:"=% +set HDS_TEAM_HOME=%team_prefs_directory:"=% +set SIMULATION_DIR=%simulation_directory:"=% +:: Changing Slashed (Needed for Modelsim) +set SIMULATION_DIR=%SIMULATION_DIR:\=/% +set SCRATCH_DIR=%scratch_directory:"=% +set CONCAT_DIR=%concat_directory:"=% +set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% +set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% + +::------------------------------------------------------------------------------ +:: Display info +:: +if !VERBOSE! == 1 ( + echo Program Parameters + echo %INDENT:"=%DESIGN_NAME is %DESIGN_NAME:"=% + echo %INDENT:"=%HEI_LIBS_DIR is %HEI_LIBS_DIR:"=% + echo %INDENT:"=%HDS_LIBS is %HDS_LIBS:"=% + echo %INDENT:"=%SIMULATION_DIR is %SIMULATION_DIR:"=% + echo %INDENT:"=%HDS_USER_HOME is %HDS_USER_HOME:"=% + echo %INDENT:"=%HDS_TEAM_HOME is %HDS_TEAM_HOME:"=% + echo %INDENT:"=%SCRATCH_DIR is %SCRATCH_DIR:"=% + echo %INDENT:"=%CONCAT_DIR is %CONCAT_DIR:"=% + if %REQUIRE_HDS% == 1 ( + echo %INDENT:"=%HDS_HOME is %HDS_HOME:"=% + ) + if %REQUIRE_MODELSIM% == 1 ( + echo %INDENT:"=%MODELSIM_HOME is %MODELSIM_HOME:"=% + ) + if %REQUIRE_ISE% == 1 ( + echo %INDENT:"=%ISE_HOME is %ISE_HOME:"=% + echo %INDENT:"=%ISE_BASE_DIR is %ISE_BASE_DIR:"=% + echo %INDENT:"=%ISE_WORK_DIR is %ISE_WORK_DIR:"=% + ) + if %REQUIRE_LIBERO% == 1 ( + echo %INDENT:"=%LIBERO_HOME is %LIBERO_HOME:"=% + echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% + echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% + ) + if %REQUIRE_DIAMOND% == 1 ( + echo %INDENT:"=%DIAMOND_HOME is %DIAMOND_HOME:"=% + echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% + echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% + ) + if %REQUIRE_ICECUBE2% == 1 ( + echo %INDENT:"=%ICECUBE2_HOME is %ICECUBE2_HOME:"=% + echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% + echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% + ) + echo. +) + +::------------------------------------------------------------------------------ +:: Delete scratch directory +:: +echo. +call "./cleanScratch.bat" + +::------------------------------------------------------------------------------ +:: Copy synthesis data to scratch directory +:: +if %REQUIRE_ISE% == 1 ( + if exist %ISE_BASE_DIR% ( + echo %ISE_BASE_DIR:"=% + echo -> %ISE_WORK_DIR:"=% + if exist %ISE_WORK_DIR% ( + rmdir /S /Q "%ISE_WORK_DIR%" + ) + mkdir "%ISE_WORK_DIR%" + xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" + ) +) + +if %REQUIRE_LIBERO% == 1 ( + if exist %LIBERO_BASE_DIR% ( + echo %LIBERO_BASE_DIR:"=% + echo -> %LIBERO_BASE_DIR:"=% + if exist %LIBERO_WORK_DIR% ( + rmdir /S /Q "%LIBERO_WORK_DIR%" + ) + mkdir "%LIBERO_WORK_DIR%" + xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" + ) +) + +if %REQUIRE_DIAMOND% == 1 ( + if exist %DIAMOND_BASE_DIR% ( + echo %DIAMOND_BASE_DIR:"=% + echo -> %DIAMOND_BASE_DIR:"=% + if exist %DIAMOND_WORK_DIR% ( + rmdir /S /Q "%DIAMOND_WORK_DIR%" + ) + mkdir "%DIAMOND_WORK_DIR%" + xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" + ) +) + +if %REQUIRE_ICECUBE2% == 1 ( + if exist %ICECUBE2_BASE_DIR% ( + echo %ICECUBE2_BASE_DIR:"=% + echo -> %ICECUBE2_BASE_DIR:"=% + if exist %ICECUBE2_WORK_DIR% ( + rmdir /S /Q "%ICECUBE2_WORK_DIR%" + ) + mkdir "%ICECUBE2_WORK_DIR%" + xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" + ) +) + +::------------------------------------------------------------------------------ +:: Launch application +:: +echo -- Launching program +::echo %INDENT:"=%Waiting until programs finished... +::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe +%windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe +::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + endlocal + goto:eof + +::------------------------------------------------------------------------------ +:: Helper Functions +:: +:HELP + echo. + echo %usage1:"=% + echo %usage2:"=% + echo %usage3:"=% + echo %usage4:"=% + echo %usage5:"=% + echo.&pause&goto:eof diff --git a/10-PipelinedOperators/Scripts/searchPaths.bat b/10-PipelinedOperators/Scripts/searchPaths.bat new file mode 100644 index 0000000..9b37b1b --- /dev/null +++ b/10-PipelinedOperators/Scripts/searchPaths.bat @@ -0,0 +1,209 @@ +::============================================================================== +:: search_paths.bat - Search for Libraries and HDL Tools +:: + +:start + @echo off + set cmd_location="%~dp0" + pushd %cmd_location% + set SEPARATOR=-------------------------------------------------------------------------------- + set INDENT=" " + + echo %SEPARATOR% + echo -- %~nx0 Started! + echo. + +echo Search HEI Library +::------------------------------------------------------------------------------ +:: Search HEI library directory +:: +if !REQUIRE_LIBS! == 1 ( + if "%HEI_LIBS_DIR%" == "" ( + set HEI_LIBS_DIR=%design_directory:"=!%\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check at folder one level above project folder, as used on svn for boards libraries + set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for ET labs + set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + :: check on server, as used for SI labs + set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries + if not exist !HEI_LIBS_DIR!\ ( + echo "ERROR: No valid libraries found: please verify your project setup." + pause&goto:end + ) + ) + ) + ) + ) + ) + if exist !HEI_LIBS_DIR!\ ( + echo %INDENT:"=%Found HEI_LIBS_DIR at !HEI_LIBS_DIR:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. + pause&goto:eof + ) +) + + +echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 +::------------------------------------------------------------------------------ +:: Search HDL Designer directory +:: +if !REQUIRE_HDS! == 1 ( + if "%HDS_HOME%" == "" ( + set HDS_HOME=C:\eda\MentorGraphics\HDS + if not exist !HDS_HOME!\ ( + set HDS_HOME=C:\tools\eda\HDS + if not exist !HDS_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !HDS_HOME! ( + echo %INDENT:"=%Found HDL-Designer at !HDS_HOME! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Modelsim directory +:: +if !REQUIRE_MODELSIM! == 1 ( + if "%MODELSIM_HOME%" == "" ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 + if not exist !MODELSIM_HOME!\ ( + set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 + if not exist !MODELSIM_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause&goto:eof + ) + ) + ) + ) + ) + if exist !MODELSIM_HOME! ( + echo %INDENT:"=%Found ModelSim at !MODELSIM_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Xilinx ISE directory +:: + +if !REQUIRE_ISE! == 1 ( + if "%ISE_HOME%" == "" ( + set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE + if not exist !ISE_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !ISE_HOME! ( + echo %INDENT:"=%Found ISE at !ISE_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. + pause&goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Microsemi Libero directory +:: +if %REQUIRE_LIBERO% == 1 ( + if "%LIBERO_HOME%" == "" ( + set LIBERO_HOME=C:\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + set LIBERO_HOME=C:\tools\eda\Microsemi\Libero + if not exist !LIBERO_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause&goto:eof + ) + ) + ) + if exist !LIBERO_HOME! ( + echo %INDENT:"=%Found Libero at !LIBERO_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice Diamond directory +:: +if %REQUIRE_DIAMOND% == 1 ( + if "%DIAMOND_HOME%" == "" ( + set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + set DIAMOND_HOME=C:\lscc\diamond\3.12 + if not exist !DIAMOND_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !DIAMOND_HOME! ( + echo %INDENT:"=%Found Diamond at !DIAMOND_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. + pause + goto:eof + ) +) + +::------------------------------------------------------------------------------ +:: Search Lattice IceCube2 directory +:: +if %REQUIRE_ICECUBE2% == 1 ( + if "%ICECUBE2_HOME%" == "" ( + set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 + if not exist !ICECUBE2_HOME!\ ( + echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. + pause&goto:eof + ) + ) + ) + ) + if exist !ICECUBE2_HOME! ( + echo %INDENT:"=%Found IceCube2 at !ICECUBE2_HOME:"=! + ) else ( + echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. + pause + goto:eof + ) +) + +:end + echo. + echo -- %~nx0 Finished! + echo %SEPARATOR% + echo. && echo. + popd + goto:eof \ No newline at end of file diff --git a/10-PipelinedOperators/Scripts/trimLibs.pl b/10-PipelinedOperators/Scripts/trimLibs.pl new file mode 100644 index 0000000..76d8d36 --- /dev/null +++ b/10-PipelinedOperators/Scripts/trimLibs.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# trimLibs +# Comment regular libraries in an concatenated file +# Help Parameter : +# Parameter : trimlibs.pl +# ------------------------------------------------------------------------------ +# Authors: +# cof: [François Corthay](francois.corthay@hevs.ch) +# guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +# zas: [Silvan Zahno](silvan.zahno@hevs.ch) +# gal: [Laurent Gauch] +# ama: [Amand Axel](axel.amand@hevs.ch) +# ------------------------------------------------------------------------------ +# Changelog: +# 2023.05.16 : ama +# * Add: ice40 libs support +# 2023.02.01 : ama +# * Add: ECP5U libs support +# 2019.08.23 : cof +# * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines +# * Seen problems in ELN_Kart +# 2019.06.11 : zas +# * Comment "For All .... work."" instead all "For All" lines +# * Allow Outputfilename as Env var or as Script parameter +# 2015-08-25 : guo +# * added unisim to the list of excluded libraries +# 2015-05-08 : guo +# * added verbosity debug +# * changed this header +# * minor comment modifications +# 2013-08-13 : zas guo +# Handle error if environment variable not found, character'pos('$') -> ') +# was found as env var, added exception +# 2013-06-13 : cof zas guo +# Remove comments from testline +# 2013-01-09 : cof -- +# * Bugfix: no carriage return on commented "use" statements +# * Bugfix: more precise targeting of "library" statement +# * Bugfix: "Library" test after "use" test +# 2012-04-27 : zas +# * Bugfix: on feature added in version 2011-06-10 +# 2012-02-02 : zas +# * Write the output into a new file with the name defined in the +# * $DESIGN_NAME variable +# 2012-01-23 : zas +# * Replaces $env_var_name by the value of the found environmemnt variable. +# * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file +# * placed in the Simulation Directory +# 2011-06-10 : zas +# Replaces +# library xxx;use xxx.yyy.all; +# with +# --library xxx; +# use work.yyy.all; +# 2005...2011 : cof +# Improvements +# 2005-01-29 : gal +# initlial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; +$hdlInFileSpec = $ARGV[0]; +if (defined $ARGV[1]) { + $hdlOutFileSpec = $ARGV[1]; +} +else { + $hdlOutFileSpec = 'trimmed.vhd'; +} + +$verbose = 1; +$debug = 0; + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $hdlOutFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + + # remove all comment for the test + my $testline = $line; + $testline =~ s/--.*//; + + # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 + if ($testline =~ m/use\s.*\.all\s*;/i) { + if ( not($testline =~ m/\bieee\./i) and + not($testline =~ m/\bstd\./i) and + not($testline =~ m/\bunisim\./i) and + not($testline =~ m/\becp5u\./i) and + not($testline =~ m/ice40.*\./i)) { + # if there is any char before "use" except \s, insert new line \n + if ( ($testline =~ m/[^\s]\s*use/i) ) { + $line =~ s/use\s+.*?\./\nuse work./i; + if ($debug == 1) { + print "TEST0099: ", $testline, "\n" + } + } + else { + $line =~ s/use\s+.*?\./use work./i; + if ($debug == 1) { + print "TEST0105: ", $testline, "\n" + } + } + } + } + + # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 + if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { + if ( not($testline =~ m/ieee/i) and + not($testline =~ m/std/i) and + not($testline =~ m/unisim/i) and + not($testline =~ m/ecp5u/i) and + not($testline =~ m/ice40/i)) { + $line = '-- ' . $line; + } + } + + # Comment "FOR xxxx : yyy USE ENTITY zzz; + if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { + $line = '-- ' . $line; + } + + # Search for $Env_Var_Names and replace them by the value of the env_var + if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { + $envvar = $1; + $envvar =~ s/^.//; + eval { + $line =~ s/\$$envvar/$ENV{$envvar}/; + }; + if ($@) { + print ("WARNING: Environment Variable not found: $envvar \n") + } + + } + + print tempFile ("$line\n"); +} + +close(tempFile); +close(HDLFile); + +#------------------------------------------------------------------------------- +# delete original file and rename temporary file +# +unlink($hdlOutFileSpec); +rename($tempFileSpec, $hdlOutFileSpec); + +if ($verbose == 1) { + print "$separator\n"; +} + +#if ($verbose == 1) { +# print $indent, "Hit any to continue"; +# $dummy = ; +#} diff --git a/10-PipelinedOperators/Scripts/update_ise.pl b/10-PipelinedOperators/Scripts/update_ise.pl new file mode 100644 index 0000000..1ce5756 --- /dev/null +++ b/10-PipelinedOperators/Scripts/update_ise.pl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# ------------------------------------------------------------------------------ +# update_ise +# replace ucf and vhd filelocation and name in the Xilinx xise project file +# Help Parameter : +# Parameter : update_ise.pl +# ------------------------------------------------------------------------------ +# Changelog: +# 2019-06-12 : zas +# * All parameters given with agruments instead of env variables +# 2015-05-26 : guo +# * update to environment from HELS v.15.0526 +# 2012-05-27 : cof +# * Initial release +# ------------------------------------------------------------------------------ + +$separator = '-' x 79; +$indent = ' ' x 2; + +$iseFileSpec = $ARGV[0]; +$vhdlFileSpec = $ARGV[1]; +$ucfFileSpec = $ARGV[2]; + +$verbose = 1; + +if ($verbose == 1) { + print "Script Parameters:\n"; + print " * iseFileSpec: $iseFileSpec\n"; + print " * vhdlFileSpec: $vhdlFileSpec\n"; + print " * ucfFileSpec: $ucfFileSpec\n"; +} + + +#------------------------------------------------------------------------------- +# program I/O files +# +$tempFileSpec = $iseFileSpec . '.tmp'; + +if ($verbose == 1) { + print "\n$separator\n"; + print "Updating file specifications in $iseFileSpec\n"; + print $indent, "temporary file spec: $tempFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# read original file, edit and save to temporary file +# +my $line; + +open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!"; +open(tempFile, ">$tempFileSpec"); +while (chop($line = )) { + # replace VHDL files + if ($line =~ m/FILE_VHDL/i) { + $line =~ s/ '0'); + for index in hSel'range loop + mask := to_unsigned(ahbMemoryLocation(index).addressMask, mask'length); + if (hAddr and mask) = ahbMemoryLocation(index).baseAddress then + hSel(index) <= '1'; + end if; + end loop; + end process decodeAddress; + +END ARCHITECTURE RTL; diff --git a/Libs/AhbLite/hdl/ahbLite_pkg.vhd b/Libs/AhbLite/hdl/ahbLite_pkg.vhd new file mode 100644 index 0000000..363bdb8 --- /dev/null +++ b/Libs/AhbLite/hdl/ahbLite_pkg.vhd @@ -0,0 +1,59 @@ +LIBRARY ieee; + USE ieee.std_logic_1164.all; + +PACKAGE ahbLite IS + ------------------------------------------------------------------------------ + -- bus components sizes + constant ahbAddressBitNb : positive := 16; + constant ahbDataBitNb : positive := 16; + constant ahbSlaveNb : positive := 16; + + constant ahbTransBitNb : positive := 2; + constant ahbSizeBitNb : positive := 1; + constant ahbBurstBitNb : positive := 3; + constant ahbProtBitNb : positive := 4; + + ------------------------------------------------------------------------------ + -- bus data vector type + subtype ahbDataType is std_logic_vector(ahbDataBitNb-1 downto 0); + type ahbDataVector is array(1 to ahbSlaveNb) of ahbDataType; + + ------------------------------------------------------------------------------ + -- address decoder + type ahbMemoryLocationType is + record + baseAddress: natural; + addressMask: natural; + end record; + type ahbMemoryLocationVector is array(1 to ahbSlaveNb) of ahbMemoryLocationType; + + ------------------------------------------------------------------------------ + -- bus signals + subtype transferType is std_ulogic_vector(ahbTransBitNb-1 downto 0); + constant transIdle : transferType := "00"; + constant transBusy : transferType := "01"; + constant transNonSeq: transferType := "10"; + constant transSeq : transferType := "11"; + + subtype transferSizeType is std_ulogic_vector(ahbSizeBitNb-1 downto 0); + constant size8 : transferSizeType := "0"; + constant size16 : transferSizeType := "1"; + + subtype burstType is std_ulogic_vector(ahbBurstBitNb-1 downto 0); + constant burstSingle : burstType := "000"; + constant burstIncr : burstType := "001"; + constant burstWrap4 : burstType := "010"; + constant burstIncr4 : burstType := "011"; + constant burstWrap8 : burstType := "100"; + constant burstIncr8 : burstType := "101"; + constant burstWrap16 : burstType := "110"; + constant burstIncr16 : burstType := "111"; + + subtype protectionType is std_ulogic_vector(ahbProtBitNb-1 downto 0); + constant protDefault : protectionType := "0011"; + + ------------------------------------------------------------------------------ + -- log2 + function addressBitNb (addressNb : natural) return natural; + +END ahbLite; diff --git a/Libs/AhbLite/hdl/ahbLite_pkg_body.vhd b/Libs/AhbLite/hdl/ahbLite_pkg_body.vhd new file mode 100644 index 0000000..ecba504 --- /dev/null +++ b/Libs/AhbLite/hdl/ahbLite_pkg_body.vhd @@ -0,0 +1,15 @@ +PACKAGE BODY ahbLite IS + + function addressBitNb (addressNb : natural) return natural is + variable powerOfTwo, bitNb : natural; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo <= addressNb loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end addressBitNb; + +END ahbLite; diff --git a/Libs/AhbLite/hdl/ahbMasterInterface_RTL.vhd b/Libs/AhbLite/hdl/ahbMasterInterface_RTL.vhd new file mode 100644 index 0000000..4658305 --- /dev/null +++ b/Libs/AhbLite/hdl/ahbMasterInterface_RTL.vhd @@ -0,0 +1,70 @@ +ARCHITECTURE RTL OF ahbMasterInterface IS + + signal addressReg: unsigned(pAddress'range); + signal newAddress: std_ulogic; + signal writeReg: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + hReset_n <= not reset; + hClk <= clock; + + ------------------------------------------------------------------------------ + -- address and controls + newAddress <= pReadStrobe or pWriteStrobe; + + storeAddress: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + elsif rising_edge(clock) then + if newAddress = '1' then + addressReg <= pAddress; + end if; + end if; + end process storeAddress; + + hAddr <= pAddress when newAddress = '1' + else addressReg; + + storeWrite: process(reset, clock) + begin + if reset = '1' then + writeReg <= '0'; + elsif rising_edge(clock) then + if newAddress = '1' then + writeReg <= pWriteStrobe; + end if; + end if; + end process storeWrite; + + hWrite <= pWriteStrobe when newAddress = '1' + else writeReg; + + hTrans <= transNonSeq when newAddress = '1' + else transIdle; + + hSize <= size16; + hBurst <= burstSingle; + hProt <= protDefault; + hMastLock <= '0'; + + ------------------------------------------------------------------------------ + -- data out + delayData: process(reset, clock) + begin + if reset = '1' then + hWData <= (others => '0'); + elsif rising_edge(clock) then + if pWriteStrobe = '1' then + hWData <= pDataOut; + end if; + end if; + end process delayData; + + ------------------------------------------------------------------------------ + -- data in + pDataIn <= hRData; + +END ARCHITECTURE RTL; diff --git a/Libs/AhbLite/hdl/ahbMultiplexor_RTL.vhd b/Libs/AhbLite/hdl/ahbMultiplexor_RTL.vhd new file mode 100644 index 0000000..75eeec5 --- /dev/null +++ b/Libs/AhbLite/hdl/ahbMultiplexor_RTL.vhd @@ -0,0 +1,18 @@ +ARCHITECTURE RTL OF ahbMultiplexor IS +BEGIN + + multiplexData: process(hSel, hRDataV, hReadyV, hRespV) + begin + hRData <= (others => '0'); + hReady <= '1'; + hResp <= '0'; + for index in hSel'range loop + if hSel(index) = '1' then + hRData <= std_ulogic_vector(hRDataV(index)); + hReady <= hReadyV(index); + hResp <= hRespV(index); + end if; + end loop; + end process multiplexData; + +END ARCHITECTURE RTL; diff --git a/Libs/AhbLite/hdl/ahbMuxConnector_RTL.vhd b/Libs/AhbLite/hdl/ahbMuxConnector_RTL.vhd new file mode 100644 index 0000000..2436719 --- /dev/null +++ b/Libs/AhbLite/hdl/ahbMuxConnector_RTL.vhd @@ -0,0 +1,14 @@ +ARCHITECTURE RTL OF ahbMuxConnector IS +BEGIN + + hSel <= hSelV(index); + + hRDataV(index) <= std_logic_vector(hRData); + hReadyV(index) <= hReady; + hRespV(index) <= hResp; + + hRDataV <= (others => (others => 'Z')); + hReadyV <= (others => 'Z'); + hRespV <= (others => 'Z'); + +END ARCHITECTURE RTL; diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbDecoder_RTL.vhd._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbDecoder_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbDecoder_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg.vhd._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg.vhd._fpf new file mode 100644 index 0000000..19d6635 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2002 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg_body.vhd._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg_body.vhd._fpf new file mode 100644 index 0000000..19d6635 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbLite_pkg_body.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2002 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbMasterInterface_RTL.vhd._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbMasterInterface_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbMasterInterface_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbMultiplexor_RTL.vhd._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbMultiplexor_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbMultiplexor_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbMuxConnector_RTL.vhd._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbMuxConnector_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbMuxConnector_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbdecoder_entity.vhg._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbdecoder_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbdecoder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbmasterinterface_entity.vhg._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbmasterinterface_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbmasterinterface_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbmultiplexor_entity.vhg._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbmultiplexor_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbmultiplexor_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/.hdlsidedata/_ahbmuxconnector_entity.vhg._fpf b/Libs/AhbLite/hds/.hdlsidedata/_ahbmuxconnector_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/AhbLite/hds/.hdlsidedata/_ahbmuxconnector_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite/hds/_ahbdecoder._epf b/Libs/AhbLite/hds/_ahbdecoder._epf new file mode 100644 index 0000000..0281ad5 --- /dev/null +++ b/Libs/AhbLite/hds/_ahbdecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom ahbDecoder_RTL.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/AhbLite/hds/_ahbmasterinterface._epf b/Libs/AhbLite/hds/_ahbmasterinterface._epf new file mode 100644 index 0000000..55f5c53 --- /dev/null +++ b/Libs/AhbLite/hds/_ahbmasterinterface._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom ahbMasterInterface_RTL.vhd diff --git a/Libs/AhbLite/hds/_ahbmultiplexor._epf b/Libs/AhbLite/hds/_ahbmultiplexor._epf new file mode 100644 index 0000000..518a2f8 --- /dev/null +++ b/Libs/AhbLite/hds/_ahbmultiplexor._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom ahbMultiplexor_RTL.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/AhbLite/hds/_ahbmuxconnector._epf b/Libs/AhbLite/hds/_ahbmuxconnector._epf new file mode 100644 index 0000000..fbb037a --- /dev/null +++ b/Libs/AhbLite/hds/_ahbmuxconnector._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom ahbMuxConnector_RTL.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/AhbLite/hds/ahb@decoder/symbol.sb b/Libs/AhbLite/hds/ahb@decoder/symbol.sb new file mode 100644 index 0000000..53abeba --- /dev/null +++ b/Libs/AhbLite/hds/ahb@decoder/symbol.sb @@ -0,0 +1,1448 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2064,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "(1 to ahbSlaveNb)" +o 2 +suid 2053,0 +) +) +uid 2526,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 254,0 +optionalChildren [ +*18 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*19 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*20 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*21 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*22 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2527,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*23 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*25 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*26 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*27 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*28 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*29 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*30 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "ahbMemoryLocation" +type "ahbMemoryLocationVector" +value "" +) +uid 2744,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*44 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *45 (MRCItem +litem &31 +pos 1 +dimension 20 +) +uid 293,0 +optionalChildren [ +*46 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 296,0 +) +*47 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 298,0 +) +*48 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*49 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 2745,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*50 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 302,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 306,0 +) +*52 (MRCItem +litem &38 +pos 2 +dimension 199 +uid 308,0 +) +*53 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 310,0 +) +*54 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 312,0 +) +*55 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 314,0 +) +*56 (MRCItem +litem &42 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds\\ahb@decoder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds\\ahb@decoder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds\\ahb@decoder" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds\\ahbDecoder" +) +(vvPair +variable "date" +value "14.04.2014" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "14" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/AhbLite/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbDecoder" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds\\ahb@decoder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\Cansat\\StudentVersion\\AhbLite\\hds\\ahbDecoder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:56:48" +) +(vvPair +variable "unit" +value "ahbDecoder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2014" +) +(vvPair +variable "yy" +value "14" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2651,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,17625,39000,18375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "40000,17300,44500,18700" +st "hAddr" +blo "40000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,32000,12600" +st "hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*59 (CptPort +uid 2464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2465,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,17625,55750,18375" +) +tg (CPTG +uid 2466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Verdana,12,0" +) +xt "50500,17300,54000,18700" +st "hSel" +ju 2 +blo "54000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2468,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,29000,13400" +st "hSel : OUT std_ulogic_vector (1 to ahbSlaveNb)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "(1 to ahbSlaveNb)" +o 2 +suid 2053,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,14000,55000,22000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "39100,21700,42000,22700" +st "AhbLite" +blo "39100,22500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "39100,22700,44000,23700" +st "ahbDecoder" +blo "39100,23500" +) +) +gi *60 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,10,0" +) +xt "39000,24400,67800,28000" +st "Generic Declarations + +ahbMemoryLocation ahbMemoryLocationVector " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "ahbMemoryLocation" +type "ahbMemoryLocationVector" +value "" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*61 (Grouping +uid 136,0 +optionalChildren [ +*62 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,46200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*67 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46700,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*72 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"39000,23000" +"55000,23000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "39000,23000,55000,23000" +) +oxt "47000,44000,63000,44000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *73 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +uid 103,0 +va (VaSet +font "arial,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*75 (MLText +uid 104,0 +va (VaSet +font "Verdana,10,0" +) +xt "0,1200,18600,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1419,895" +viewArea "-1100,-1100,74710,50630" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *76 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *77 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,9400,8600,10600" +st "Declarations" +blo "0,10400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,10600,4200,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,13400,3700,14600" +st "User:" +blo "0,14400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "0,9400,9400,10600" +st "Internal User:" +blo "0,10400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14600,2000,14600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2768,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/AhbLite/hds/ahb@master@interface/symbol.sb b/Libs/AhbLite/hds/ahb@master@interface/symbol.sb new file mode 100644 index 0000000..6aaf911 --- /dev/null +++ b/Libs/AhbLite/hds/ahb@master@interface/symbol.sb @@ -0,0 +1,2594 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2064,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +) +uid 322,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 324,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "pReadStrobe" +t "std_uLogic" +o 7 +suid 2024,0 +) +) +uid 496,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "pWriteStrobe" +t "std_uLogic" +o 9 +suid 2026,0 +) +) +uid 500,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "pAddress" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2039,0 +) +) +uid 1168,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "pDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2040,0 +) +) +uid 1170,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "pDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 2050,0 +) +) +uid 2048,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 11 +suid 2051,0 +) +) +uid 2524,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 19 +suid 2053,0 +) +) +uid 2526,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 2054,0 +) +) +uid 2528,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 20 +suid 2055,0 +) +) +uid 2530,0 +) +*25 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 17 +suid 2056,0 +) +) +uid 2532,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 12 +suid 2057,0 +) +) +uid 2534,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 15 +suid 2058,0 +) +) +uid 2536,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 18 +suid 2059,0 +) +) +uid 2538,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 14 +suid 2060,0 +) +) +uid 2540,0 +) +*30 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 2061,0 +) +) +uid 2542,0 +) +*31 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +suid 2062,0 +) +) +uid 2544,0 +) +*32 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 13 +suid 2063,0 +) +) +uid 2546,0 +) +*33 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 16 +suid 2064,0 +) +) +uid 2548,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*34 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *35 (MRCItem +litem &1 +pos 20 +dimension 20 +) +uid 254,0 +optionalChildren [ +*36 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 257,0 +) +*37 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 259,0 +) +*38 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*39 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 281,0 +) +*40 (MRCItem +litem &3 +pos 5 +dimension 20 +uid 283,0 +) +*41 (MRCItem +litem &16 +pos 0 +dimension 20 +uid 497,0 +) +*42 (MRCItem +litem &17 +pos 1 +dimension 20 +uid 501,0 +) +*43 (MRCItem +litem &18 +pos 3 +dimension 20 +uid 1169,0 +) +*44 (MRCItem +litem &19 +pos 4 +dimension 20 +uid 1171,0 +) +*45 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2049,0 +) +*46 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2525,0 +) +*47 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2527,0 +) +*48 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 2529,0 +) +*49 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2531,0 +) +*50 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 2533,0 +) +*51 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 2535,0 +) +*52 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 2537,0 +) +*53 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 2539,0 +) +*54 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 2541,0 +) +*55 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 2543,0 +) +*56 (MRCItem +litem &31 +pos 17 +dimension 20 +uid 2545,0 +) +*57 (MRCItem +litem &32 +pos 18 +dimension 20 +uid 2547,0 +) +*58 (MRCItem +litem &33 +pos 19 +dimension 20 +uid 2549,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*59 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 263,0 +) +*60 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 267,0 +) +*61 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 269,0 +) +*62 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 271,0 +) +*63 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 273,0 +) +*64 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 275,0 +) +*65 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 277,0 +) +*66 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *67 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*68 (RefLabelRowHdr +) +*69 (TitleRowHdr +) +*70 (FilterRowHdr +) +*71 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*72 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*73 (GroupColHdr +tm "GroupColHdrMgr" +) +*74 (NameColHdr +tm "GenericNameColHdrMgr" +) +*75 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*76 (InitColHdr +tm "GenericValueColHdrMgr" +) +*77 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*78 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*79 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *80 (MRCItem +litem &67 +pos 0 +dimension 20 +) +uid 293,0 +optionalChildren [ +*81 (MRCItem +litem &68 +pos 0 +dimension 20 +uid 296,0 +) +*82 (MRCItem +litem &69 +pos 1 +dimension 23 +uid 298,0 +) +*83 (MRCItem +litem &70 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*84 (MRCItem +litem &71 +pos 0 +dimension 20 +uid 302,0 +) +*85 (MRCItem +litem &73 +pos 1 +dimension 50 +uid 306,0 +) +*86 (MRCItem +litem &74 +pos 2 +dimension 199 +uid 308,0 +) +*87 (MRCItem +litem &75 +pos 3 +dimension 100 +uid 310,0 +) +*88 (MRCItem +litem &76 +pos 4 +dimension 50 +uid 312,0 +) +*89 (MRCItem +litem &77 +pos 5 +dimension 50 +uid 314,0 +) +*90 (MRCItem +litem &78 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@master@interface\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@master@interface\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@master@interface" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahbMasterInterface" +) +(vvPair +variable "date" +value "07.06.2013" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbMasterInterface" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/AhbLite/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "module_name" +value "ahbMasterInterface" +) +(vvPair +variable "month" +value "juin" +) +(vvPair +variable "month_long" +value "juin" +) +(vvPair +variable "p" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@master@interface\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahbMasterInterface\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "16:13:19" +) +(vvPair +variable "unit" +value "ahbMasterInterface" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2013" +) +(vvPair +variable "yy" +value "13" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*91 (SymbolBody +uid 8,0 +optionalChildren [ +*92 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 53,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,37625,47000,38375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,37300,51800,38700" +st "clock" +blo "48000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,21000,12600" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*93 (CptPort +uid 248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 249,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,39625,47000,40375" +) +tg (CPTG +uid 250,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 251,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,39300,52100,40700" +st "reset" +blo "48000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 252,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18200,21000,19000" +st "reset : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +) +) +*94 (CptPort +uid 469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2573,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,21625,47000,22375" +) +tg (CPTG +uid 471,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 472,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,21300,57800,22700" +st "pReadStrobe" +blo "48000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16600,21000,17400" +st "pReadStrobe : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "pReadStrobe" +t "std_uLogic" +o 7 +suid 2024,0 +) +) +) +*95 (CptPort +uid 479,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2574,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,23625,47000,24375" +) +tg (CPTG +uid 481,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 482,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,23300,58000,24700" +st "pWriteStrobe" +blo "48000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 483,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17400,21000,18200" +st "pWriteStrobe : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "pWriteStrobe" +t "std_uLogic" +o 9 +suid 2026,0 +) +) +) +*96 (CptPort +uid 2003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2575,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,15625,47000,16375" +) +tg (CPTG +uid 2005,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2006,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,15300,54700,16700" +st "pAddress" +blo "48000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2007,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15000,35500,15800" +st "pAddress : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "pAddress" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2039,0 +) +) +) +*97 (CptPort +uid 2008,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2576,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,17625,47000,18375" +) +tg (CPTG +uid 2010,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2011,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,17300,54900,18700" +st "pDataOut" +blo "48000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2012,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15800,37500,16600" +st "pDataOut : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "pDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2040,0 +) +) +) +*98 (CptPort +uid 2043,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2577,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,19625,47000,20375" +) +tg (CPTG +uid 2045,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2046,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,19300,53900,20700" +st "pDataIn" +blo "48000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2047,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,27000,36500,27800" +st "pDataIn : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "pDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 2050,0 +) +) +) +*99 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2578,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,15625,63750,16375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "57500,15300,62000,16700" +st "hAddr" +ju 2 +blo "62000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19000,35500,19800" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 11 +suid 2051,0 +) +) +) +*100 (CptPort +uid 2464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2465,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,17625,63750,18375" +) +tg (CPTG +uid 2466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Verdana,12,0" +) +xt "56100,17300,62000,18700" +st "hWData" +ju 2 +blo "62000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2468,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,25400,37500,26200" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 19 +suid 2053,0 +) +) +) +*101 (CptPort +uid 2469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2579,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,31625,63750,32375" +) +tg (CPTG +uid 2471,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2472,0 +va (VaSet +font "Verdana,12,0" +) +xt "56600,31300,62000,32700" +st "hRData" +ju 2 +blo "62000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,37500,13400" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +suid 2054,0 +) +) +) +*102 (CptPort +uid 2474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2580,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,21625,63750,22375" +) +tg (CPTG +uid 2476,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2477,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,21300,62000,22700" +st "hWrite" +ju 2 +blo "62000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2478,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,26200,21000,27000" +st "hWrite : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 20 +suid 2055,0 +) +) +) +*103 (CptPort +uid 2479,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2480,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,23625,63750,24375" +) +tg (CPTG +uid 2481,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2482,0 +va (VaSet +font "Verdana,12,0" +) +xt "57800,23300,62000,24700" +st "hSize" +ju 2 +blo "62000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2483,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,23800,37500,24600" +st "hSize : OUT std_ulogic_vector (ahbSizeBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 17 +suid 2056,0 +) +) +) +*104 (CptPort +uid 2484,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2485,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,25625,63750,26375" +) +tg (CPTG +uid 2486,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2487,0 +va (VaSet +font "Verdana,12,0" +) +xt "57100,25300,62000,26700" +st "hBurst" +ju 2 +blo "62000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2488,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19800,38000,20600" +st "hBurst : OUT std_ulogic_vector (ahbBurstBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 12 +suid 2057,0 +) +) +) +*105 (CptPort +uid 2489,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2490,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,27625,63750,28375" +) +tg (CPTG +uid 2491,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2492,0 +va (VaSet +font "Verdana,12,0" +) +xt "57800,27300,62000,28700" +st "hProt" +ju 2 +blo "62000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2493,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,22200,37500,23000" +st "hProt : OUT std_ulogic_vector (ahbProtBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 15 +suid 2058,0 +) +) +) +*106 (CptPort +uid 2494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2495,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,19625,63750,20375" +) +tg (CPTG +uid 2496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2497,0 +va (VaSet +font "Verdana,12,0" +) +xt "56900,19300,62000,20700" +st "hTrans" +ju 2 +blo "62000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2498,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,24600,38000,25400" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 18 +suid 2059,0 +) +) +) +*107 (CptPort +uid 2499,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2500,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,29625,63750,30375" +) +tg (CPTG +uid 2501,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2502,0 +va (VaSet +font "Verdana,12,0" +) +xt "54600,29300,62000,30700" +st "hMastLock" +ju 2 +blo "62000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2503,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21400,21000,22200" +st "hMastLock : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 14 +suid 2060,0 +) +) +) +*108 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2581,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,33625,63750,34375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "56500,33300,62000,34700" +st "hReady" +ju 2 +blo "62000,34500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13400,21000,14200" +st "hReady : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +suid 2061,0 +) +) +) +*109 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2510,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,35625,63750,36375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "Verdana,12,0" +) +xt "57300,35300,62000,36700" +st "hResp" +ju 2 +blo "62000,36500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14200,21000,15000" +st "hResp : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +suid 2062,0 +) +) +) +*110 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2515,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,37625,63750,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Verdana,12,0" +) +xt "58500,37300,62000,38700" +st "hClk" +ju 2 +blo "62000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,20600,21000,21400" +st "hClk : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 13 +suid 2063,0 +) +) +) +*111 (CptPort +uid 2519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,39625,63750,40375" +) +tg (CPTG +uid 2521,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2522,0 +va (VaSet +font "Verdana,12,0" +) +xt "55200,39300,62000,40700" +st "hReset_n" +ju 2 +blo "62000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2523,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,23000,21000,23800" +st "hReset_n : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 16 +suid 2064,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,12000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,50000,42700" +st "AhbLite" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,54400,43700" +st "ahbMasterInterface" +blo "47100,43500" +) +) +gi *112 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,10,0" +) +xt "47000,44400,60800,45600" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*113 (Grouping +uid 136,0 +optionalChildren [ +*114 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,71200,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*115 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*116 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,71200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*117 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,59300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*118 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*119 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,92300,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*120 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "64150,61500,70850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*121 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,59300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*122 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,59900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*123 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,74100,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*124 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *125 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*126 (Text +uid 103,0 +va (VaSet +font "arial,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*127 (MLText +uid 104,0 +va (VaSet +font "Verdana,10,0" +) +xt "0,1200,18600,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; +" +tm "PackageList" +) +] +) +windowSize "117,42,1413,895" +viewArea "-1500,-1500,99738,67966" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *128 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *129 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,9400,8600,10600" +st "Declarations" +blo "0,10400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,10600,4200,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,27800,3700,29000" +st "User:" +blo "0,28800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "0,9400,9400,10600" +st "Internal User:" +blo "0,10400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,29000,2000,29000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2627,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/AhbLite/hds/ahb@multiplexor/symbol.sb b/Libs/AhbLite/hds/ahb@multiplexor/symbol.sb new file mode 100644 index 0000000..be383a2 --- /dev/null +++ b/Libs/AhbLite/hds/ahb@multiplexor/symbol.sb @@ -0,0 +1,1750 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2067,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +suid 2054,0 +) +) +uid 2528,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +uid 2542,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +uid 2544,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2065,0 +) +) +uid 2643,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +suid 2066,0 +) +) +uid 2645,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +suid 2067,0 +) +) +uid 2647,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 254,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2529,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2543,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2545,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2644,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2646,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2648,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *54 (MRCItem +litem &41 +pos 0 +dimension 20 +) +uid 293,0 +optionalChildren [ +*55 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 296,0 +) +*56 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 298,0 +) +*57 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*58 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 302,0 +) +*59 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 306,0 +) +*60 (MRCItem +litem &48 +pos 2 +dimension 199 +uid 308,0 +) +*61 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 310,0 +) +*62 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 312,0 +) +*63 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 314,0 +) +*64 (MRCItem +litem &52 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@multiplexor\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@multiplexor\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@multiplexor" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahbMultiplexor" +) +(vvPair +variable "date" +value "07.06.2013" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbMultiplexor" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/AhbLite/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "module_name" +value "ahbMultiplexor" +) +(vvPair +variable "month" +value "juin" +) +(vvPair +variable "month_long" +value "juin" +) +(vvPair +variable "p" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@multiplexor\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahbMultiplexor\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:09:06" +) +(vvPair +variable "unit" +value "ahbMultiplexor" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2013" +) +(vvPair +variable "yy" +value "13" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2672,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,12625,56750,13375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "51500,12300,55000,13700" +st "hSel" +ju 2 +blo "55000,13500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14200,32000,15000" +st "hSel : IN std_ulogic_vector ( 1 TO ahbSlaveNb ) ; +" +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +suid 2051,0 +) +) +) +*67 (CptPort +uid 2469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2579,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,16625,56750,17375" +) +tg (CPTG +uid 2471,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2472,0 +va (VaSet +font "Verdana,12,0" +) +xt "48800,16300,55000,17700" +st "hRDataV" +ju 2 +blo "55000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,20000,12600" +st "hRDataV : IN ahbDataVector ; +" +) +thePort (LogicalPort +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +suid 2054,0 +) +) +) +*68 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2673,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,18625,40000,19375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,18300,46500,19700" +st "hReady" +blo "41000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15800,18500,16600" +st "hReady : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*69 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2698,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,20625,40000,21375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,20300,45700,21700" +st "hResp" +blo "41000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16600,17500,17400" +st "hResp : OUT std_uLogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +) +*70 (CptPort +uid 2628,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2674,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 2630,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2631,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,16300,46400,17700" +st "hRData" +blo "41000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2632,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15000,35000,15800" +st "hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2065,0 +) +) +) +*71 (CptPort +uid 2633,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2634,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,18625,56750,19375" +) +tg (CPTG +uid 2635,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2636,0 +va (VaSet +font "Verdana,12,0" +) +xt "48700,18300,55000,19700" +st "hReadyV" +ju 2 +blo "55000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2637,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,30500,13400" +st "hReadyV : IN std_logic_vector (1 to ahbSlaveNb) ; +" +) +thePort (LogicalPort +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +suid 2066,0 +) +) +) +*72 (CptPort +uid 2638,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2639,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,20625,56750,21375" +) +tg (CPTG +uid 2640,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2641,0 +va (VaSet +font "Verdana,12,0" +) +xt "49500,20300,55000,21700" +st "hRespV" +ju 2 +blo "55000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2642,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13400,30500,14200" +st "hRespV : IN std_logic_vector (1 to ahbSlaveNb) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +suid 2067,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,9000,56000,25000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "40100,24700,43000,25700" +st "AhbLite" +blo "40100,25500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "40100,25700,45800,26700" +st "ahbMultiplexor" +blo "40100,26500" +) +) +gi *73 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,10,0" +) +xt "40000,27400,53800,28600" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*74 (Grouping +uid 136,0 +optionalChildren [ +*75 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,46200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*78 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*80 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47500,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*85 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"40000,27000" +"56000,27000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "40000,27000,56000,27000" +) +oxt "47000,44000,63000,44000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 103,0 +va (VaSet +font "arial,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*88 (MLText +uid 104,0 +va (VaSet +font "Verdana,10,0" +) +xt "0,1200,18600,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1419,895" +viewArea "-1100,-1100,74710,50630" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,9400,8600,10600" +st "Declarations" +blo "0,10400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,10600,4200,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,17400,3700,18600" +st "User:" +blo "0,18400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "0,9400,9400,10600" +st "Internal User:" +blo "0,10400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18600,2000,18600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2790,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/AhbLite/hds/ahb@mux@connector/symbol.sb b/Libs/AhbLite/hds/ahb@mux@connector/symbol.sb new file mode 100644 index 0000000..6180f27 --- /dev/null +++ b/Libs/AhbLite/hds/ahb@mux@connector/symbol.sb @@ -0,0 +1,1835 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2068,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +suid 2054,0 +) +) +uid 2528,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +uid 2542,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +uid 2544,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2065,0 +) +) +uid 2643,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +suid 2066,0 +) +) +uid 2645,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +suid 2067,0 +) +) +uid 2647,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 2068,0 +) +) +uid 2796,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 254,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2529,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2543,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2545,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2644,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2646,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2648,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2797,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "index" +type "positive" +value "1" +) +uid 2798,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &43 +pos 1 +dimension 20 +) +uid 293,0 +optionalChildren [ +*58 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 296,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 298,0 +) +*60 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*61 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 2799,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*62 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 302,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 306,0 +) +*64 (MRCItem +litem &50 +pos 2 +dimension 199 +uid 308,0 +) +*65 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 310,0 +) +*66 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 312,0 +) +*67 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 314,0 +) +*68 (MRCItem +litem &54 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@mux@connector\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@mux@connector\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@mux@connector" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahbMuxConnector" +) +(vvPair +variable "date" +value "07.06.2013" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbMuxConnector" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/AhbLite/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "module_name" +value "ahbMuxConnector" +) +(vvPair +variable "month" +value "juin" +) +(vvPair +variable "month_long" +value "juin" +) +(vvPair +variable "p" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahb@mux@connector\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\Cansat\\..\\Libs\\AhbLite\\hds\\ahbMuxConnector\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:07:55" +) +(vvPair +variable "unit" +value "ahbMuxConnector" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2013" +) +(vvPair +variable "yy" +value "13" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2672,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,14625,40000,15375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,14300,45300,15700" +st "hSelV" +blo "41000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14200,32000,15000" +st "hSelV : IN std_ulogic_vector ( 1 TO ahbSlaveNb ) ; +" +) +thePort (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +suid 2051,0 +) +) +) +*71 (CptPort +uid 2469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2823,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 2471,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2472,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,16300,47200,17700" +st "hRDataV" +blo "41000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15000,20000,15800" +st "hRDataV : OUT ahbDataVector ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +suid 2054,0 +) +) +) +*72 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2824,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,18625,56750,19375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "49500,18300,55000,19700" +st "hReady" +ju 2 +blo "55000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,18500,13400" +st "hReady : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*73 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2825,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,20625,56750,21375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "Verdana,12,0" +) +xt "50300,20300,55000,21700" +st "hResp" +ju 2 +blo "55000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13400,18500,14200" +st "hResp : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +) +*74 (CptPort +uid 2628,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2826,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,16625,56750,17375" +) +tg (CPTG +uid 2630,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2631,0 +va (VaSet +font "Verdana,12,0" +) +xt "49600,16300,55000,17700" +st "hRData" +ju 2 +blo "55000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2632,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,35000,12600" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2065,0 +) +) +) +*75 (CptPort +uid 2633,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2827,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,18625,40000,19375" +) +tg (CPTG +uid 2635,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2636,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,18300,47300,19700" +st "hReadyV" +blo "41000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2637,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15800,30500,16600" +st "hReadyV : OUT std_logic_vector (1 to ahbSlaveNb) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +suid 2066,0 +) +) +) +*76 (CptPort +uid 2638,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2828,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,20625,40000,21375" +) +tg (CPTG +uid 2640,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2641,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,20300,46500,21700" +st "hRespV" +blo "41000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2642,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16600,30500,17400" +st "hRespV : OUT std_logic_vector (1 to ahbSlaveNb) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +suid 2067,0 +) +) +) +*77 (CptPort +uid 2791,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2829,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,14625,56750,15375" +) +tg (CPTG +uid 2793,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2794,0 +va (VaSet +font "Verdana,12,0" +) +xt "51500,14300,55000,15700" +st "hSel" +ju 2 +blo "55000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2795,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17400,17500,18200" +st "hSel : OUT std_uLogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 2068,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,11000,56000,25000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "40100,24700,43000,25700" +st "AhbLite" +blo "40100,25500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "40100,25700,47000,26700" +st "ahbMuxConnector" +blo "40100,26500" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,10,0" +) +xt "40000,27400,53800,31000" +st "Generic Declarations + +index positive 1 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "index" +type "positive" +value "1" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 136,0 +optionalChildren [ +*80 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,46200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,62400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*85 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,67300,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "39150,44500,45850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,48700,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*90 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"40000,27000" +"56000,27000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "40000,27000,56000,27000" +) +oxt "47000,44000,63000,44000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 103,0 +va (VaSet +font "arial,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*93 (MLText +uid 104,0 +va (VaSet +font "Verdana,10,0" +) +xt "0,1200,18600,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1420,895" +viewArea "-1100,-1100,74780,50630" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,9400,8600,10600" +st "Declarations" +blo "0,10400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,10600,4200,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,18200,3700,19400" +st "User:" +blo "0,19200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "0,9400,9400,10600" +st "Internal User:" +blo "0,10400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19400,2000,19400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2829,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/AhbLite_test/doc/AMBA_AHB-Lite_spec.pdf b/Libs/AhbLite_test/doc/AMBA_AHB-Lite_spec.pdf new file mode 100644 index 0000000000000000000000000000000000000000..99e720c536af981b0e8d8ecca5a9922d5890ebd3 GIT binary patch literal 551055 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

      =fu{=Qek=%U7d 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

      vk&)!@k9H%UPfu^zcJJ>)Xl($JB*@=` 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�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
    2. P#`_f44B8#ea{DQi#1F@_g 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

      R(HGpc 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 literal 0 HcmV?d00001 diff --git a/Libs/AhbLite_test/hdl/ahbLite_tester_test.vhd b/Libs/AhbLite_test/hdl/ahbLite_tester_test.vhd new file mode 100644 index 0000000..4bf43cd --- /dev/null +++ b/Libs/AhbLite_test/hdl/ahbLite_tester_test.vhd @@ -0,0 +1,145 @@ +ARCHITECTURE test OF ahbLite_tester IS + -- reset and clock + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + -- register access + signal registerAddress: natural; + signal registerData: integer; + signal registerWrite: std_uLogic; + signal registerRead: std_uLogic; + -- AHB lite registers + signal addressReg: unsigned(hAddr'range); + signal writeReg: std_uLogic; + signal selPeriph1Reg: std_uLogic; + signal selPeriph2Reg: std_uLogic; + signal hSel: std_uLogic; + constant registerNb: positive := 2*periph2BaseAddress; + subtype registerType is std_uLogic_vector(hWdata'range); + type registerArrayType is array (registerNb-1 downto 0) of registerType; + signal registerArray: registerArrayType; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 4*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9.0/10.0; + + + ------------------------------------------------------------------------------ + -- test sequence + testSequence: process + begin + registerAddress <= 0; + registerData <= 0; + registerWrite <= '0'; + registerRead <= '0'; + wait for 100 ns; + -- write periph1 register 0 + registerAddress <= 0; + registerData <= 1; + registerWrite <= '1', '0' after clockPeriod; + wait for 8*clockPeriod; + -- write periph1 register 1 + registerAddress <= 1; + registerData <= 2; + registerWrite <= '1', '0' after clockPeriod; + wait for 8*clockPeriod; + -- write periph2 register 0 + registerAddress <= periph2BaseAddress; + registerData <= periph2BaseAddress + 1; + registerWrite <= '1', '0' after clockPeriod; + wait for 2*clockPeriod; + -- write periph2 register 1 + registerAddress <= periph2BaseAddress + 1; + registerData <= periph2BaseAddress + 2; + registerWrite <= '1', '0' after clockPeriod; + wait for 8*clockPeriod; + -- read periph1 register 0 + registerAddress <= 0; + registerRead <= '1', '0' after clockPeriod; + wait for 8*clockPeriod; + -- read periph2 register 0 + registerAddress <= periph2BaseAddress; + registerRead <= '1', '0' after clockPeriod; + wait for 8*clockPeriod; + + wait; + end process testSequence; + + --============================================================================ + -- microprocessor bus access + busAccess: process + variable writeAccess: boolean; + begin + upAddress <= (others => '-'); + upDataOut <= (others => '-'); + upReadStrobe <= '0'; + upWriteStrobe <= '0'; + -- wait for transaction + wait on registerWrite, registerRead; + if not(hReset_n) = '0' then + writeAccess := false; + if rising_edge(registerWrite) then + writeAccess := true; + end if; + -- single-cycle bus access + wait until rising_edge(clock_int); + upAddress <= to_unsigned(registerAddress, hAddr'length); + if writeAccess then + upWriteStrobe <= '1'; + upDataOut <= std_uLogic_vector(to_signed(registerData, upDataOut'length)); + else + upReadStrobe <= '1'; + end if; + wait until rising_edge(clock_int); + end if; + end process; + + --============================================================================ + -- AHB bus access + hSel <= hSelPeriph1 or hSelPeriph2; + -- address and controls + storeControls: process(hReset_n, hClk) + begin + if not(hReset_n) = '1' then + addressReg <= (others => '0'); + writeReg <= '0'; + selPeriph1Reg <= '0'; + selPeriph2Reg <= '0'; + elsif rising_edge(hClk) then + writeReg <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addressReg <= hAddr; + writeReg <= hWrite; + selPeriph1Reg <= hSelPeriph1; + selPeriph2Reg <= hSelPeriph2; + end if; + end if; + end process storeControls; + -- write registers + storeRegisters: process(hReset_n, hClk) + begin + if not(hReset_n) = '1' then + registerArray <= (others => (others => '0')); + elsif rising_edge(hClk) then + if writeReg = '1' then + registerArray(to_integer(addressReg)) <= hWData; + end if; + end if; + end process storeRegisters; + -- read egisters + hRDataPeriph1 <= registerArray(to_integer(addressReg)) + when addressReg < periph2BaseAddress + else (others => '-'); + hReadyPeriph1 <= '1'; -- no wait state + hRespPeriph1 <= '0'; -- data OK + + hRDataPeriph2 <= registerArray(to_integer(addressReg)) + when addressReg >= periph2BaseAddress + else (others => '-'); + hReadyPeriph2 <= '1'; -- no wait state + hRespPeriph2 <= '0'; -- data OK + +END ARCHITECTURE test; diff --git a/Libs/AhbLite_test/hds/.hdlsidedata/_ahbLite_tester_test.vhd._fpf b/Libs/AhbLite_test/hds/.hdlsidedata/_ahbLite_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/AhbLite_test/hds/.hdlsidedata/_ahbLite_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/AhbLite_test/hds/_ahblite_tb._epf b/Libs/AhbLite_test/hds/_ahblite_tb._epf new file mode 100644 index 0000000..afa58fb --- /dev/null +++ b/Libs/AhbLite_test/hds/_ahblite_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom ahb@lite_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/AhbLite_test/hds/_ahblite_tester._epf b/Libs/AhbLite_test/hds/_ahblite_tester._epf new file mode 100644 index 0000000..27cb4f7 --- /dev/null +++ b/Libs/AhbLite_test/hds/_ahblite_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom ahbLite_tester_test.vhd diff --git a/Libs/AhbLite_test/hds/ahb@lite_tb/struct.bd b/Libs/AhbLite_test/hds/ahb@lite_tb/struct.bd new file mode 100644 index 0000000..ceb3707 --- /dev/null +++ b/Libs/AhbLite_test/hds/ahb@lite_tb/struct.bd @@ -0,0 +1,7355 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_mst" +duLibraryName "AhbLite" +duName "ahbMasterInterface" +elements [ +] +mwi 0 +uid 12494,0 +) +(Instance +name "I_mux" +duLibraryName "AhbLite" +duName "ahbMultiplexor" +elements [ +] +mwi 0 +uid 12583,0 +) +(Instance +name "I_dec" +duLibraryName "AhbLite" +duName "ahbDecoder" +elements [ +(GiElement +name "ahbMemoryLocation" +type "ahbMemoryLocationVector" +value "ahbMemoryLocation" +) +] +mwi 0 +uid 12620,0 +) +(Instance +name "I_connT" +duLibraryName "AhbLite" +duName "ahbMuxConnector" +elements [ +(GiElement +name "index" +type "positive" +value "periph1Index" +) +] +mwi 0 +uid 12637,0 +) +(Instance +name "I_connAdc" +duLibraryName "AhbLite" +duName "ahbMuxConnector" +elements [ +(GiElement +name "index" +type "positive" +value "periph2Index" +) +] +mwi 0 +uid 12678,0 +) +(Instance +name "I_tester" +duLibraryName "AhbLite_test" +duName "ahbLite_tester" +elements [ +(GiElement +name "periph2BaseAddress" +type "natural" +value "16#10#" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 13243,0 +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahbLite_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbLite_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:16:10" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLite_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbLite_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahbLite_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:16:10" +) +(vvPair +variable "unit" +value "ahbLite_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "173000,121000,192000,123000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "173200,121400,188600,122600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "141000,121000,167000,123000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "148250,121250,159750,122750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "146000,127000,167000,129000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "146200,127400,164000,128600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "167000,121000,173000,123000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "167200,121400,171900,122600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "146000,123000,167000,125000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "146200,123400,161400,124600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "141000,123000,146000,125000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "141200,123400,144600,124600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "141000,125000,146000,127000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "141200,125400,144600,126600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "167000,123000,192000,129000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "167200,123200,181300,124400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "146000,125000,167000,127000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "146200,125400,163900,126600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "141000,127000,146000,129000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "141200,127400,145500,128600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "141000,121000,192000,129000" +) +oxt "13000,22000,64000,30000" +) +*12 (SaComponent +uid 12494,0 +optionalChildren [ +*13 (CptPort +uid 12503,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12504,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,63625,61000,64375" +) +tg (CPTG +uid 12505,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12506,0 +va (VaSet +) +xt "62000,63400,65400,64600" +st "clock" +blo "62000,64400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*14 (CptPort +uid 12507,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12508,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,65625,61000,66375" +) +tg (CPTG +uid 12509,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12510,0 +va (VaSet +) +xt "62000,65400,65300,66600" +st "reset" +blo "62000,66400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +) +) +) +*15 (CptPort +uid 12511,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12512,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,47625,61000,48375" +) +tg (CPTG +uid 12513,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12514,0 +va (VaSet +) +xt "62000,47400,69800,48600" +st "pReadStrobe" +blo "62000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "pReadStrobe" +t "std_uLogic" +o 7 +) +) +) +*16 (CptPort +uid 12515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,49625,61000,50375" +) +tg (CPTG +uid 12517,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12518,0 +va (VaSet +) +xt "62000,49400,69900,50600" +st "pWriteStrobe" +blo "62000,50400" +) +) +thePort (LogicalPort +decl (Decl +n "pWriteStrobe" +t "std_uLogic" +o 9 +) +) +) +*17 (CptPort +uid 12519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12520,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,41625,61000,42375" +) +tg (CPTG +uid 12521,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12522,0 +va (VaSet +) +xt "62000,41400,67500,42600" +st "pAddress" +blo "62000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "pAddress" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 2 +) +) +) +*18 (CptPort +uid 12523,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12524,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,43625,61000,44375" +) +tg (CPTG +uid 12525,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12526,0 +va (VaSet +) +xt "62000,43400,67600,44600" +st "pDataOut" +blo "62000,44400" +) +) +thePort (LogicalPort +decl (Decl +n "pDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +*19 (CptPort +uid 12527,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12528,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,45625,61000,46375" +) +tg (CPTG +uid 12529,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12530,0 +va (VaSet +) +xt "62000,45400,66800,46600" +st "pDataIn" +blo "62000,46400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "pDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +) +) +) +*20 (CptPort +uid 12531,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12532,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,41625,77750,42375" +) +tg (CPTG +uid 12533,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12534,0 +va (VaSet +) +xt "72300,41400,76000,42600" +st "hAddr" +ju 2 +blo "76000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 11 +) +) +) +*21 (CptPort +uid 12535,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12536,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,43625,77750,44375" +) +tg (CPTG +uid 12537,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12538,0 +va (VaSet +) +xt "71400,43400,76000,44600" +st "hWData" +ju 2 +blo "76000,44400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 19 +) +) +) +*22 (CptPort +uid 12539,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12540,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,57625,77750,58375" +) +tg (CPTG +uid 12541,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12542,0 +va (VaSet +) +xt "71600,57400,76000,58600" +st "hRData" +ju 2 +blo "76000,58400" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 4 +) +) +) +*23 (CptPort +uid 12543,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12544,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,47625,77750,48375" +) +tg (CPTG +uid 12545,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12546,0 +va (VaSet +) +xt "72100,47400,76000,48600" +st "hWrite" +ju 2 +blo "76000,48400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 20 +) +) +) +*24 (CptPort +uid 12547,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12548,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,49625,77750,50375" +) +tg (CPTG +uid 12549,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12550,0 +va (VaSet +) +xt "72600,49400,76000,50600" +st "hSize" +ju 2 +blo "76000,50400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 17 +) +) +) +*25 (CptPort +uid 12551,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12552,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,51625,77750,52375" +) +tg (CPTG +uid 12553,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12554,0 +va (VaSet +) +xt "72000,51400,76000,52600" +st "hBurst" +ju 2 +blo "76000,52400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 12 +) +) +) +*26 (CptPort +uid 12555,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12556,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,53625,77750,54375" +) +tg (CPTG +uid 12557,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12558,0 +va (VaSet +) +xt "72600,53400,76000,54600" +st "hProt" +ju 2 +blo "76000,54400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 15 +) +) +) +*27 (CptPort +uid 12559,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12560,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,45625,77750,46375" +) +tg (CPTG +uid 12561,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12562,0 +va (VaSet +) +xt "71800,45400,76000,46600" +st "hTrans" +ju 2 +blo "76000,46400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 18 +) +) +) +*28 (CptPort +uid 12563,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12564,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,55625,77750,56375" +) +tg (CPTG +uid 12565,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12566,0 +va (VaSet +) +xt "69800,55400,76000,56600" +st "hMastLock" +ju 2 +blo "76000,56400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 14 +) +) +) +*29 (CptPort +uid 12567,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12568,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,59625,77750,60375" +) +tg (CPTG +uid 12569,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12570,0 +va (VaSet +) +xt "71600,59400,76000,60600" +st "hReady" +ju 2 +blo "76000,60400" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 5 +) +) +) +*30 (CptPort +uid 12571,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12572,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,61625,77750,62375" +) +tg (CPTG +uid 12573,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12574,0 +va (VaSet +) +xt "72200,61400,76000,62600" +st "hResp" +ju 2 +blo "76000,62400" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +) +) +) +*31 (CptPort +uid 12575,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12576,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,63625,77750,64375" +) +tg (CPTG +uid 12577,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12578,0 +va (VaSet +) +xt "73000,63400,76000,64600" +st "hClk" +ju 2 +blo "76000,64400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 13 +) +) +) +*32 (CptPort +uid 12579,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12580,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,65625,77750,66375" +) +tg (CPTG +uid 12581,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12582,0 +va (VaSet +) +xt "70600,65400,76000,66600" +st "hReset_n" +ju 2 +blo "76000,66400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 16 +) +) +) +] +shape (Rectangle +uid 12495,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "61000,38000,77000,68000" +) +oxt "47000,12000,63000,42000" +ttg (MlTextGroup +uid 12496,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 12497,0 +va (VaSet +font "Verdana,10,0" +) +xt "61100,67700,65900,68900" +st "AhbLite" +blo "61100,68700" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 12498,0 +va (VaSet +font "Verdana,10,0" +) +xt "61100,68900,73300,70100" +st "ahbMasterInterface" +blo "61100,69900" +tm "CptNameMgr" +) +*35 (Text +uid 12499,0 +va (VaSet +font "Verdana,10,0" +) +xt "61100,70100,65000,71300" +st "I_mst" +blo "61100,71100" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12500,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12501,0 +text (MLText +uid 12502,0 +va (VaSet +font "Courier New,8,0" +) +xt "61000,70400,61000,70400" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 13469,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "61250,66250,62750,67750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*36 (SaComponent +uid 12583,0 +optionalChildren [ +*37 (CptPort +uid 12592,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12593,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,77625,117750,78375" +) +tg (CPTG +uid 12594,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12595,0 +va (VaSet +) +xt "113100,77400,116000,78600" +st "hSel" +ju 2 +blo "116000,78400" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*38 (CptPort +uid 12596,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12597,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,81625,117750,82375" +) +tg (CPTG +uid 12598,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12599,0 +va (VaSet +) +xt "110800,81400,116000,82600" +st "hRDataV" +ju 2 +blo "116000,82400" +) +) +thePort (LogicalPort +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*39 (CptPort +uid 12600,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12601,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,83625,101000,84375" +) +tg (CPTG +uid 12602,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12603,0 +va (VaSet +) +xt "102000,83400,106400,84600" +st "hReady" +blo "102000,84400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*40 (CptPort +uid 12604,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12605,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,85625,101000,86375" +) +tg (CPTG +uid 12606,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12607,0 +va (VaSet +) +xt "102000,85400,105800,86600" +st "hResp" +blo "102000,86400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*41 (CptPort +uid 12608,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12609,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,81625,101000,82375" +) +tg (CPTG +uid 12610,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12611,0 +va (VaSet +) +xt "102000,81400,106400,82600" +st "hRData" +blo "102000,82400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*42 (CptPort +uid 12612,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12613,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,83625,117750,84375" +) +tg (CPTG +uid 12614,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12615,0 +va (VaSet +) +xt "110800,83400,116000,84600" +st "hReadyV" +ju 2 +blo "116000,84400" +) +) +thePort (LogicalPort +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*43 (CptPort +uid 12616,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12617,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,85625,117750,86375" +) +tg (CPTG +uid 12618,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12619,0 +va (VaSet +) +xt "111400,85400,116000,86600" +st "hRespV" +ju 2 +blo "116000,86400" +) +) +thePort (LogicalPort +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +] +shape (Rectangle +uid 12584,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "101000,74000,117000,90000" +) +oxt "40000,9000,56000,25000" +ttg (MlTextGroup +uid 12585,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 12586,0 +va (VaSet +font "Verdana,10,0" +) +xt "101100,89700,105900,90900" +st "AhbLite" +blo "101100,90700" +tm "BdLibraryNameMgr" +) +*45 (Text +uid 12587,0 +va (VaSet +font "Verdana,10,0" +) +xt "101100,90900,110700,92100" +st "ahbMultiplexor" +blo "101100,91900" +tm "CptNameMgr" +) +*46 (Text +uid 12588,0 +va (VaSet +font "Verdana,10,0" +) +xt "101100,92100,105400,93300" +st "I_mux" +blo "101100,93100" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12589,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12590,0 +text (MLText +uid 12591,0 +va (VaSet +font "Courier New,8,0" +) +xt "101000,92400,101000,92400" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 13470,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "101250,88250,102750,89750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*47 (SaComponent +uid 12620,0 +optionalChildren [ +*48 (CptPort +uid 12629,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12630,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100250,61625,101000,62375" +) +tg (CPTG +uid 12631,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12632,0 +va (VaSet +) +xt "102000,61400,105700,62600" +st "hAddr" +blo "102000,62400" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +) +) +) +*49 (CptPort +uid 12633,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12634,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,61625,117750,62375" +) +tg (CPTG +uid 12635,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12636,0 +va (VaSet +) +xt "113100,61400,116000,62600" +st "hSel" +ju 2 +blo "116000,62400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_ulogic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +] +shape (Rectangle +uid 12621,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "101000,58000,117000,66000" +) +oxt "39000,14000,55000,22000" +ttg (MlTextGroup +uid 12622,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +uid 12623,0 +va (VaSet +font "Verdana,10,0" +) +xt "101100,65700,105900,66900" +st "AhbLite" +blo "101100,66700" +tm "BdLibraryNameMgr" +) +*51 (Text +uid 12624,0 +va (VaSet +font "Verdana,10,0" +) +xt "101100,66900,109100,68100" +st "ahbDecoder" +blo "101100,67900" +tm "CptNameMgr" +) +*52 (Text +uid 12625,0 +va (VaSet +font "Verdana,10,0" +) +xt "101100,68100,104800,69300" +st "I_dec" +blo "101100,69100" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12626,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12627,0 +text (MLText +uid 12628,0 +va (VaSet +font "Courier New,8,0" +) +xt "101000,68800,138000,69600" +st "ahbMemoryLocation = ahbMemoryLocation ( ahbMemoryLocationVector ) " +) +header "" +) +elements [ +(GiElement +name "ahbMemoryLocation" +type "ahbMemoryLocationVector" +value "ahbMemoryLocation" +) +] +) +viewicon (ZoomableIcon +uid 13471,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "101250,64250,102750,65750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*53 (SaComponent +uid 12637,0 +optionalChildren [ +*54 (CptPort +uid 12646,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12647,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,53625,133000,54375" +) +tg (CPTG +uid 12648,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12649,0 +va (VaSet +) +xt "134000,53400,137700,54600" +st "hSelV" +blo "134000,54400" +) +) +thePort (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*55 (CptPort +uid 12650,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12651,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,55625,133000,56375" +) +tg (CPTG +uid 12652,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12653,0 +va (VaSet +) +xt "134000,55400,139200,56600" +st "hRDataV" +blo "134000,56400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*56 (CptPort +uid 12654,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12655,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,57625,149750,58375" +) +tg (CPTG +uid 12656,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12657,0 +va (VaSet +) +xt "143600,57400,148000,58600" +st "hReady" +ju 2 +blo "148000,58400" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*57 (CptPort +uid 12658,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12659,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,59625,149750,60375" +) +tg (CPTG +uid 12660,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12661,0 +va (VaSet +) +xt "144200,59400,148000,60600" +st "hResp" +ju 2 +blo "148000,60400" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*58 (CptPort +uid 12662,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12663,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,55625,149750,56375" +) +tg (CPTG +uid 12664,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12665,0 +va (VaSet +) +xt "143600,55400,148000,56600" +st "hRData" +ju 2 +blo "148000,56400" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*59 (CptPort +uid 12666,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12667,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,57625,133000,58375" +) +tg (CPTG +uid 12668,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12669,0 +va (VaSet +) +xt "134000,57400,139200,58600" +st "hReadyV" +blo "134000,58400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*60 (CptPort +uid 12670,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12671,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,59625,133000,60375" +) +tg (CPTG +uid 12672,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12673,0 +va (VaSet +) +xt "134000,59400,138600,60600" +st "hRespV" +blo "134000,60400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +*61 (CptPort +uid 12674,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12675,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,53625,149750,54375" +) +tg (CPTG +uid 12676,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12677,0 +va (VaSet +) +xt "145100,53400,148000,54600" +st "hSel" +ju 2 +blo "148000,54400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +) +) +) +] +shape (Rectangle +uid 12638,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "133000,50000,149000,64000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 12639,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 12640,0 +va (VaSet +font "Verdana,10,0" +) +xt "133100,63700,137900,64900" +st "AhbLite" +blo "133100,64700" +tm "BdLibraryNameMgr" +) +*63 (Text +uid 12641,0 +va (VaSet +font "Verdana,10,0" +) +xt "133100,64900,144500,66100" +st "ahbMuxConnector" +blo "133100,65900" +tm "CptNameMgr" +) +*64 (Text +uid 12642,0 +va (VaSet +font "Verdana,10,0" +) +xt "133100,66100,138200,67300" +st "I_connT" +blo "133100,67100" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12643,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12644,0 +text (MLText +uid 12645,0 +va (VaSet +font "Courier New,8,0" +) +xt "133000,66800,153500,67600" +st "index = periph1Index ( positive ) " +) +header "" +) +elements [ +(GiElement +name "index" +type "positive" +value "periph1Index" +) +] +) +viewicon (ZoomableIcon +uid 13472,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "133250,62250,134750,63750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*65 (SaComponent +uid 12678,0 +optionalChildren [ +*66 (CptPort +uid 12687,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12688,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,87625,133000,88375" +) +tg (CPTG +uid 12689,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12690,0 +va (VaSet +) +xt "134000,87400,137700,88600" +st "hSelV" +blo "134000,88400" +) +) +thePort (LogicalPort +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "( 1 TO ahbSlaveNb )" +o 5 +) +) +) +*67 (CptPort +uid 12691,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12692,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,89625,133000,90375" +) +tg (CPTG +uid 12693,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12694,0 +va (VaSet +) +xt "134000,89400,139200,90600" +st "hRDataV" +blo "134000,90400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 1 +) +) +) +*68 (CptPort +uid 12695,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12696,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,91625,149750,92375" +) +tg (CPTG +uid 12697,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12698,0 +va (VaSet +) +xt "143600,91400,148000,92600" +st "hReady" +ju 2 +blo "148000,92400" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +) +) +) +*69 (CptPort +uid 12699,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12700,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,93625,149750,94375" +) +tg (CPTG +uid 12701,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12702,0 +va (VaSet +) +xt "144200,93400,148000,94600" +st "hResp" +ju 2 +blo "148000,94400" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +) +) +) +*70 (CptPort +uid 12703,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12704,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,89625,149750,90375" +) +tg (CPTG +uid 12705,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12706,0 +va (VaSet +) +xt "143600,89400,148000,90600" +st "hRData" +ju 2 +blo "148000,90400" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*71 (CptPort +uid 12707,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12708,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,91625,133000,92375" +) +tg (CPTG +uid 12709,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12710,0 +va (VaSet +) +xt "134000,91400,139200,92600" +st "hReadyV" +blo "134000,92400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 2 +) +) +) +*72 (CptPort +uid 12711,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12712,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132250,93625,133000,94375" +) +tg (CPTG +uid 12713,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12714,0 +va (VaSet +) +xt "134000,93400,138600,94600" +st "hRespV" +blo "134000,94400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 to ahbSlaveNb)" +o 4 +) +) +) +*73 (CptPort +uid 12715,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12716,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "149000,87625,149750,88375" +) +tg (CPTG +uid 12717,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12718,0 +va (VaSet +) +xt "145100,87400,148000,88600" +st "hSel" +ju 2 +blo "148000,88400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +) +) +) +] +shape (Rectangle +uid 12679,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "133000,84000,149000,98000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 12680,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +uid 12681,0 +va (VaSet +font "Verdana,10,0" +) +xt "133100,97700,137900,98900" +st "AhbLite" +blo "133100,98700" +tm "BdLibraryNameMgr" +) +*75 (Text +uid 12682,0 +va (VaSet +font "Verdana,10,0" +) +xt "133100,98900,144500,100100" +st "ahbMuxConnector" +blo "133100,99900" +tm "CptNameMgr" +) +*76 (Text +uid 12683,0 +va (VaSet +font "Verdana,10,0" +) +xt "133100,100100,139400,101300" +st "I_connAdc" +blo "133100,101100" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12684,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12685,0 +text (MLText +uid 12686,0 +va (VaSet +font "Courier New,8,0" +) +xt "133000,100800,153500,101600" +st "index = periph2Index ( positive ) " +) +header "" +) +elements [ +(GiElement +name "index" +type "positive" +value "periph2Index" +) +] +) +viewicon (ZoomableIcon +uid 13473,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "133250,96250,134750,97750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*77 (Net +uid 13077,0 +decl (Decl +n "reset" +t "std_ulogic" +o 27 +suid 107,0 +) +declText (MLText +uid 13078,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,200,44000,1400" +st "SIGNAL reset : std_ulogic" +) +) +*78 (Net +uid 13079,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 108,0 +) +declText (MLText +uid 13080,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,-2200,44000,-1000" +st "SIGNAL clock : std_ulogic" +) +) +*79 (Net +uid 13081,0 +decl (Decl +n "upAddress" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 28 +suid 109,0 +) +declText (MLText +uid 13082,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,163800,57500,165000" +st "SIGNAL upAddress : unsigned(ahbAddressBitNb-1 DOWNTO 0)" +) +) +*80 (Net +uid 13083,0 +decl (Decl +n "upDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 30 +suid 110,0 +) +declText (MLText +uid 13084,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,165400,60500,166600" +st "SIGNAL upDataOut : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*81 (Net +uid 13085,0 +decl (Decl +n "upDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 29 +suid 111,0 +) +declText (MLText +uid 13086,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,164600,60500,165800" +st "SIGNAL upDataIn : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*82 (Net +uid 13087,0 +decl (Decl +n "upReadStrobe" +t "std_uLogic" +o 31 +suid 112,0 +) +declText (MLText +uid 13088,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,166200,44000,167400" +st "SIGNAL upReadStrobe : std_uLogic" +) +) +*83 (Net +uid 13089,0 +decl (Decl +n "upWriteStrobe" +t "std_uLogic" +o 32 +suid 113,0 +) +declText (MLText +uid 13090,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,167000,44000,168200" +st "SIGNAL upWriteStrobe : std_uLogic" +) +) +*84 (Net +uid 13091,0 +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 2 +suid 114,0 +) +declText (MLText +uid 13092,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,105400,57500,106600" +st "SIGNAL hAddr : unsigned(ahbAddressBitNb-1 DOWNTO 0)" +) +) +*85 (Net +uid 13093,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 25 +suid 115,0 +) +declText (MLText +uid 13094,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,149400,60500,150600" +st "SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*86 (Net +uid 13095,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 7 +suid 116,0 +) +declText (MLText +uid 13096,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,109400,60500,110600" +st "SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*87 (Net +uid 13097,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 24 +suid 117,0 +) +declText (MLText +uid 13098,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,148600,61000,149800" +st "SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0)" +) +) +*88 (Net +uid 13099,0 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 23 +suid 118,0 +) +declText (MLText +uid 13100,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,147800,60500,149000" +st "SIGNAL hSize : std_ulogic_vector(ahbSizeBitNb-1 DOWNTO 0)" +) +) +*89 (Net +uid 13101,0 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 3 +suid 119,0 +) +declText (MLText +uid 13102,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,106200,61000,107400" +st "SIGNAL hBurst : std_ulogic_vector(ahbBurstBitNb-1 DOWNTO 0)" +) +) +*90 (Net +uid 13103,0 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 6 +suid 120,0 +) +declText (MLText +uid 13104,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,108600,60500,109800" +st "SIGNAL hProt : std_ulogic_vector(ahbProtBitNb-1 DOWNTO 0)" +) +) +*91 (Net +uid 13105,0 +decl (Decl +n "hWrite" +t "std_uLogic" +o 26 +suid 121,0 +) +declText (MLText +uid 13106,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,150200,44000,151400" +st "SIGNAL hWrite : std_uLogic" +) +) +*92 (Net +uid 13107,0 +decl (Decl +n "hReady" +t "std_uLogic" +o 11 +suid 122,0 +) +declText (MLText +uid 13108,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,119000,44000,120200" +st "SIGNAL hReady : std_uLogic" +) +) +*93 (Net +uid 13109,0 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 5 +suid 123,0 +) +declText (MLText +uid 13110,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,107800,44000,109000" +st "SIGNAL hMastLock : std_uLogic" +) +) +*94 (Net +uid 13111,0 +decl (Decl +n "hResp" +t "std_uLogic" +o 16 +suid 124,0 +) +declText (MLText +uid 13112,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,129400,44000,130600" +st "SIGNAL hResp : std_uLogic" +) +) +*95 (Net +uid 13113,0 +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 125,0 +) +declText (MLText +uid 13114,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,107000,44000,108200" +st "SIGNAL hClk : std_uLogic" +) +) +*96 (Net +uid 13115,0 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 15 +suid 126,0 +) +declText (MLText +uid 13116,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,128600,44000,129800" +st "SIGNAL hReset_n : std_uLogic" +) +) +*97 (Net +uid 13117,0 +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "(1 TO ahbSlaveNb)" +o 22 +suid 127,0 +) +declText (MLText +uid 13118,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,147000,56500,148200" +st "SIGNAL hSelV : std_ulogic_vector(1 TO ahbSlaveNb)" +) +) +*98 (Net +uid 13119,0 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 10 +suid 128,0 +) +declText (MLText +uid 13120,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,118200,45500,119400" +st "SIGNAL hRDataV : ahbDataVector" +) +) +*99 (Net +uid 13121,0 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 14 +suid 129,0 +) +declText (MLText +uid 13122,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,127800,56000,129000" +st "SIGNAL hReadyV : std_logic_vector(1 TO ahbSlaveNb)" +) +) +*100 (Net +uid 13123,0 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 19 +suid 130,0 +) +declText (MLText +uid 13124,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "26000,138200,56000,139400" +st "SIGNAL hRespV : std_logic_vector(1 TO ahbSlaveNb)" +) +) +*101 (Blk +uid 13243,0 +shape (Rectangle +uid 13244,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "37000,106000,185000,114000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 13245,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +uid 13246,0 +va (VaSet +font "Verdana,12,0" +) +xt "36900,113900,46500,115300" +st "AhbLite_test" +blo "36900,115100" +tm "BdLibraryNameMgr" +) +*103 (Text +uid 13247,0 +va (VaSet +font "Verdana,12,0" +) +xt "36900,115300,47800,116700" +st "ahbLite_tester" +blo "36900,116500" +tm "BlkNameMgr" +) +*104 (Text +uid 13248,0 +va (VaSet +font "Verdana,12,0" +) +xt "36900,116700,42800,118100" +st "I_tester" +blo "36900,117900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 13249,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 13250,0 +text (MLText +uid 13251,0 +va (VaSet +font "Courier New,8,0" +) +xt "37000,119200,65000,120800" +st "periph2BaseAddress = 16#10# ( natural ) +clockFrequency = clockFrequency ( real ) +" +) +header "" +) +elements [ +(GiElement +name "periph2BaseAddress" +type "natural" +value "16#10#" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +viewicon (ZoomableIcon +uid 13474,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "37250,112250,38750,113750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*105 (Net +uid 13414,0 +decl (Decl +n "hSelPeriph1" +t "std_uLogic" +o 20 +suid 142,0 +) +declText (MLText +uid 13415,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,18000,1200" +st "SIGNAL hSelPeriph1 : std_uLogic" +) +) +*106 (Net +uid 13416,0 +decl (Decl +n "hRDataPeriph1" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 8 +suid 143,0 +) +declText (MLText +uid 13417,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,34500,1200" +st "SIGNAL hRDataPeriph1 : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*107 (Net +uid 13418,0 +decl (Decl +n "hReadyPeriph1" +t "std_uLogic" +o 12 +suid 144,0 +) +declText (MLText +uid 13419,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,18000,1200" +st "SIGNAL hReadyPeriph1 : std_uLogic" +) +) +*108 (Net +uid 13420,0 +decl (Decl +n "hRespPeriph1" +t "std_uLogic" +o 17 +suid 145,0 +) +declText (MLText +uid 13421,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,18000,1200" +st "SIGNAL hRespPeriph1 : std_uLogic" +) +) +*109 (Net +uid 13422,0 +decl (Decl +n "hSelPeriph2" +t "std_uLogic" +o 21 +suid 146,0 +) +declText (MLText +uid 13423,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,18000,1200" +st "SIGNAL hSelPeriph2 : std_uLogic" +) +) +*110 (Net +uid 13424,0 +decl (Decl +n "hRDataPeriph2" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 147,0 +) +declText (MLText +uid 13425,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,34500,1200" +st "SIGNAL hRDataPeriph2 : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*111 (Net +uid 13426,0 +decl (Decl +n "hReadyPeriph2" +t "std_uLogic" +o 13 +suid 148,0 +) +declText (MLText +uid 13427,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,18000,1200" +st "SIGNAL hReadyPeriph2 : std_uLogic" +) +) +*112 (Net +uid 13428,0 +decl (Decl +n "hRespPeriph2" +t "std_uLogic" +o 18 +suid 149,0 +) +declText (MLText +uid 13429,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,18000,1200" +st "SIGNAL hRespPeriph2 : std_uLogic" +) +) +*113 (Wire +uid 12719,0 +optionalChildren [ +*114 (BdJunction +uid 12725,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12726,0 +va (VaSet +vasetType 1 +) +xt "92600,41600,93400,42400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12720,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,42000,157000,106000" +pts [ +"77750,42000" +"157000,42000" +"157000,106000" +] +) +start &20 +end &101 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12723,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12724,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,40600,84500,42000" +st "hAddr" +blo "80000,41800" +tm "WireNameMgr" +) +) +on &84 +) +*115 (Wire +uid 12735,0 +shape (OrthoPolyLine +uid 12736,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "93000,42003,100250,62000" +pts [ +"93000,42003" +"93000,62000" +"100250,62000" +] +) +start &114 +end &48 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12737,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12738,0 +va (VaSet +font "Verdana,12,0" +) +xt "94250,60600,98750,62000" +st "hAddr" +blo "94250,61800" +tm "WireNameMgr" +) +) +on &84 +) +*116 (Wire +uid 12751,0 +shape (OrthoPolyLine +uid 12752,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,44000,155000,106000" +pts [ +"77750,44000" +"155000,44000" +"155000,106000" +] +) +start &21 +end &101 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12755,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12756,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,42600,85900,44000" +st "hWData" +blo "80000,43800" +tm "WireNameMgr" +) +) +on &85 +) +*117 (Wire +uid 12777,0 +shape (OrthoPolyLine +uid 12778,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,46000,153000,106000" +pts [ +"77750,46000" +"153000,46000" +"153000,106000" +] +) +start &27 +end &101 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12781,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12782,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,44600,85100,46000" +st "hTrans" +blo "80000,45800" +tm "WireNameMgr" +) +) +on &87 +) +*118 (Wire +uid 12803,0 +shape (OrthoPolyLine +uid 12804,0 +va (VaSet +vasetType 3 +) +xt "77750,48000,151000,106000" +pts [ +"77750,48000" +"151000,48000" +"151000,106000" +] +) +start &23 +end &101 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12807,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12808,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,46600,85000,48000" +st "hWrite" +blo "80000,47800" +tm "WireNameMgr" +) +) +on &91 +) +*119 (Wire +uid 12829,0 +optionalChildren [ +*120 (BdJunction +uid 12833,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12834,0 +va (VaSet +vasetType 1 +) +xt "122600,61600,123400,62400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12830,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,54000,132250,62000" +pts [ +"117750,62000" +"123000,62000" +"123000,54000" +"132250,54000" +] +) +start &49 +end &54 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12831,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12832,0 +va (VaSet +font "Verdana,12,0" +) +xt "118000,60600,122300,62000" +st "hSelV" +blo "118000,61800" +tm "WireNameMgr" +) +) +on &97 +) +*121 (Wire +uid 12835,0 +optionalChildren [ +*122 (BdJunction +uid 12839,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12840,0 +va (VaSet +vasetType 1 +) +xt "122600,77600,123400,78400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12836,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,62000,123000,78000" +pts [ +"123000,62000" +"123000,78000" +"117750,78000" +] +) +start &120 +end &37 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12837,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12838,0 +va (VaSet +font "Verdana,12,0" +) +xt "118000,76600,122300,78000" +st "hSelV" +blo "118000,77800" +tm "WireNameMgr" +) +) +on &97 +) +*123 (Wire +uid 12841,0 +optionalChildren [ +*124 (BdJunction +uid 12847,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12848,0 +va (VaSet +vasetType 1 +) +xt "122600,87600,123400,88400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12842,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123000,78000,123000,102000" +pts [ +"123000,78000" +"123000,102000" +] +) +start &122 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12845,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12846,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "121600,97000,123000,101300" +st "hSelV" +blo "122800,101300" +tm "WireNameMgr" +) +) +on &97 +) +*125 (Wire +uid 12853,0 +shape (OrthoPolyLine +uid 12854,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "123000,88000,132250,88000" +pts [ +"132250,88000" +"123000,88000" +] +) +start &66 +end &124 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12855,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12856,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "127250,86600,131550,88000" +st "hSelV" +blo "127250,87800" +tm "WireNameMgr" +) +) +on &97 +) +*126 (Wire +uid 12857,0 +optionalChildren [ +*127 (BdJunction +uid 12861,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12862,0 +va (VaSet +vasetType 1 +) +xt "124600,81600,125400,82400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12858,0 +va (VaSet +vasetType 3 +) +xt "117750,56000,132250,82000" +pts [ +"117750,82000" +"125000,82000" +"125000,56000" +"132250,56000" +] +) +start &38 +end &55 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12859,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12860,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,80600,125950,82000" +st "hRDataV" +blo "119750,81800" +tm "WireNameMgr" +) +) +on &98 +) +*128 (Wire +uid 12863,0 +optionalChildren [ +*129 (BdJunction +uid 12869,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12870,0 +va (VaSet +vasetType 1 +) +xt "124600,89600,125400,90400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12864,0 +va (VaSet +vasetType 3 +) +xt "125000,82000,125000,102000" +pts [ +"125000,82000" +"125000,102000" +] +) +start &127 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12867,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12868,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "123600,95000,125000,101200" +st "hRDataV" +blo "124800,101200" +tm "WireNameMgr" +) +) +on &98 +) +*130 (Wire +uid 12875,0 +shape (OrthoPolyLine +uid 12876,0 +va (VaSet +vasetType 3 +) +xt "125000,90000,132250,90000" +pts [ +"132250,90000" +"125000,90000" +] +) +start &67 +end &129 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12877,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12878,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "125250,88600,131450,90000" +st "hRDataV" +blo "125250,89800" +tm "WireNameMgr" +) +) +on &98 +) +*131 (Wire +uid 12879,0 +optionalChildren [ +*132 (BdJunction +uid 12883,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12884,0 +va (VaSet +vasetType 1 +) +xt "126600,83600,127400,84400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12880,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,58000,132250,84000" +pts [ +"117750,84000" +"127000,84000" +"127000,58000" +"132250,58000" +] +) +start &42 +end &59 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12881,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12882,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,82600,126050,84000" +st "hReadyV" +blo "119750,83800" +tm "WireNameMgr" +) +) +on &99 +) +*133 (Wire +uid 12885,0 +optionalChildren [ +*134 (BdJunction +uid 12891,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12892,0 +va (VaSet +vasetType 1 +) +xt "126600,91600,127400,92400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12886,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "127000,84000,127000,102000" +pts [ +"127000,84000" +"127000,102000" +] +) +start &132 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12889,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12890,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "125600,95000,127000,101300" +st "hReadyV" +blo "126800,101300" +tm "WireNameMgr" +) +) +on &99 +) +*135 (Wire +uid 12897,0 +shape (OrthoPolyLine +uid 12898,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "127000,92000,132250,92000" +pts [ +"132250,92000" +"127000,92000" +] +) +start &71 +end &134 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12899,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12900,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "125250,90600,131550,92000" +st "hReadyV" +blo "125250,91800" +tm "WireNameMgr" +) +) +on &99 +) +*136 (Wire +uid 12901,0 +optionalChildren [ +*137 (BdJunction +uid 12905,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12906,0 +va (VaSet +vasetType 1 +) +xt "128600,85600,129400,86400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12902,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,60000,132250,86000" +pts [ +"117750,86000" +"129000,86000" +"129000,60000" +"132250,60000" +] +) +start &43 +end &60 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12903,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12904,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,84600,125250,86000" +st "hRespV" +blo "119750,85800" +tm "WireNameMgr" +) +) +on &100 +) +*138 (Wire +uid 12907,0 +optionalChildren [ +*139 (BdJunction +uid 12913,0 +ps "OnConnectorStrategy" +shape (Circle +uid 12914,0 +va (VaSet +vasetType 1 +) +xt "128600,93600,129400,94400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 12908,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "129000,86000,129000,102000" +pts [ +"129000,86000" +"129000,102000" +] +) +start &137 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12912,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "127600,95000,129000,100500" +st "hRespV" +blo "128800,100500" +tm "WireNameMgr" +) +) +on &100 +) +*140 (Wire +uid 12919,0 +shape (OrthoPolyLine +uid 12920,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "129000,94000,132250,94000" +pts [ +"132250,94000" +"129000,94000" +] +) +start &72 +end &139 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12921,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12922,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "125250,92600,130750,94000" +st "hRespV" +blo "125250,93800" +tm "WireNameMgr" +) +) +on &100 +) +*141 (Wire +uid 12923,0 +shape (OrthoPolyLine +uid 12924,0 +va (VaSet +vasetType 3 +) +xt "59000,66000,60250,106000" +pts [ +"59000,106000" +"59000,66000" +"60250,66000" +] +) +start &101 +end &14 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12927,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12928,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,64600,60100,66000" +st "reset" +blo "56000,65800" +tm "WireNameMgr" +) +) +on &77 +) +*142 (Wire +uid 12929,0 +shape (OrthoPolyLine +uid 12930,0 +va (VaSet +vasetType 3 +) +xt "57000,64000,60250,106000" +pts [ +"57000,106000" +"57000,64000" +"60250,64000" +] +) +start &101 +end &13 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12933,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12934,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,62600,59800,64000" +st "clock" +blo "56000,63800" +tm "WireNameMgr" +) +) +on &78 +) +*143 (Wire +uid 12935,0 +shape (OrthoPolyLine +uid 12936,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "45000,42000,60250,106000" +pts [ +"45000,106000" +"45000,42000" +"60250,42000" +] +) +start &101 +end &17 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12939,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12940,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,40600,58500,42000" +st "upAddress" +blo "51000,41800" +tm "WireNameMgr" +) +) +on &79 +) +*144 (Wire +uid 12941,0 +shape (OrthoPolyLine +uid 12942,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "47000,44000,60250,106000" +pts [ +"47000,106000" +"47000,44000" +"60250,44000" +] +) +start &101 +end &18 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12945,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12946,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,42600,58700,44000" +st "upDataOut" +blo "51000,43800" +tm "WireNameMgr" +) +) +on &80 +) +*145 (Wire +uid 12947,0 +shape (OrthoPolyLine +uid 12948,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49000,46000,60250,106000" +pts [ +"49000,106000" +"49000,46000" +"60250,46000" +] +) +start &101 +end &19 +sat 1 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12951,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12952,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,44600,57700,46000" +st "upDataIn" +blo "51000,45800" +tm "WireNameMgr" +) +) +on &81 +) +*146 (Wire +uid 12953,0 +shape (OrthoPolyLine +uid 12954,0 +va (VaSet +vasetType 3 +) +xt "51000,48000,60250,106000" +pts [ +"51000,106000" +"51000,48000" +"60250,48000" +] +) +start &101 +end &15 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12957,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12958,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,46600,61600,48000" +st "upReadStrobe" +blo "51000,47800" +tm "WireNameMgr" +) +) +on &82 +) +*147 (Wire +uid 12959,0 +shape (OrthoPolyLine +uid 12960,0 +va (VaSet +vasetType 3 +) +xt "53000,50000,60250,106000" +pts [ +"53000,106000" +"53000,50000" +"60250,50000" +] +) +start &101 +end &16 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12963,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12964,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,48600,61800,50000" +st "upWriteStrobe" +blo "51000,49800" +tm "WireNameMgr" +) +) +on &83 +) +*148 (Wire +uid 12965,0 +shape (OrthoPolyLine +uid 12966,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,58000,100250,82000" +pts [ +"77750,58000" +"91000,58000" +"91000,82000" +"100250,82000" +] +) +start &22 +end &41 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12967,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12968,0 +va (VaSet +font "Verdana,12,0" +) +xt "79750,56600,85150,58000" +st "hRData" +blo "79750,57800" +tm "WireNameMgr" +) +) +on &86 +) +*149 (Wire +uid 12969,0 +shape (OrthoPolyLine +uid 12970,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,50000,89000,50000" +pts [ +"77750,50000" +"89000,50000" +] +) +start &24 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12973,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12974,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,48600,84200,50000" +st "hSize" +blo "80000,49800" +tm "WireNameMgr" +) +) +on &88 +) +*150 (Wire +uid 12975,0 +shape (OrthoPolyLine +uid 12976,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,52000,89000,52000" +pts [ +"77750,52000" +"89000,52000" +] +) +start &25 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12979,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12980,0 +va (VaSet +font "Verdana,12,0" +) +xt "79750,50600,84650,52000" +st "hBurst" +blo "79750,51800" +tm "WireNameMgr" +) +) +on &89 +) +*151 (Wire +uid 12981,0 +shape (OrthoPolyLine +uid 12982,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,54000,89000,54000" +pts [ +"77750,54000" +"89000,54000" +] +) +start &26 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12985,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12986,0 +va (VaSet +font "Verdana,12,0" +) +xt "79750,52600,83950,54000" +st "hProt" +blo "79750,53800" +tm "WireNameMgr" +) +) +on &90 +) +*152 (Wire +uid 12987,0 +shape (OrthoPolyLine +uid 12988,0 +va (VaSet +vasetType 3 +) +xt "77750,60000,100250,84000" +pts [ +"77750,60000" +"89000,60000" +"89000,84000" +"100250,84000" +] +) +start &29 +end &39 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12989,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12990,0 +va (VaSet +font "Verdana,12,0" +) +xt "79750,58600,85250,60000" +st "hReady" +blo "79750,59800" +tm "WireNameMgr" +) +) +on &92 +) +*153 (Wire +uid 12991,0 +shape (OrthoPolyLine +uid 12992,0 +va (VaSet +vasetType 3 +) +xt "77750,56000,89000,56000" +pts [ +"77750,56000" +"89000,56000" +] +) +start &28 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12995,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12996,0 +va (VaSet +font "Verdana,12,0" +) +xt "79750,54600,87150,56000" +st "hMastLock" +blo "79750,55800" +tm "WireNameMgr" +) +) +on &93 +) +*154 (Wire +uid 12997,0 +shape (OrthoPolyLine +uid 12998,0 +va (VaSet +vasetType 3 +) +xt "77750,62000,100250,86000" +pts [ +"77750,62000" +"87000,62000" +"87000,86000" +"100250,86000" +] +) +start &30 +end &40 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12999,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13000,0 +va (VaSet +font "Verdana,12,0" +) +xt "79750,60600,84450,62000" +st "hResp" +blo "79750,61800" +tm "WireNameMgr" +) +) +on &94 +) +*155 (Wire +uid 13001,0 +shape (OrthoPolyLine +uid 13002,0 +va (VaSet +vasetType 3 +) +xt "77750,64000,83000,106000" +pts [ +"77750,64000" +"83000,64000" +"83000,106000" +] +) +start &31 +end &101 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13005,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13006,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,62600,83500,64000" +st "hClk" +blo "80000,63800" +tm "WireNameMgr" +) +) +on &95 +) +*156 (Wire +uid 13007,0 +shape (OrthoPolyLine +uid 13008,0 +va (VaSet +vasetType 3 +) +xt "77750,66000,81000,106000" +pts [ +"77750,66000" +"81000,66000" +"81000,106000" +] +) +start &32 +end &101 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13011,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13012,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,64600,86800,66000" +st "hReset_n" +blo "80000,65800" +tm "WireNameMgr" +) +) +on &96 +) +*157 (Wire +uid 13029,0 +shape (OrthoPolyLine +uid 13030,0 +va (VaSet +vasetType 3 +) +xt "149750,54000,177000,106000" +pts [ +"149750,54000" +"177000,54000" +"177000,106000" +] +) +start &61 +end &101 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13033,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13034,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,52600,168100,54000" +st "hSelPeriph1" +blo "159000,53800" +tm "WireNameMgr" +) +) +on &105 +) +*158 (Wire +uid 13035,0 +shape (OrthoPolyLine +uid 13036,0 +va (VaSet +vasetType 3 +) +xt "149750,60000,171000,106000" +pts [ +"171000,106000" +"171000,60000" +"149750,60000" +] +) +start &101 +end &57 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13039,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13040,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,58600,169300,60000" +st "hRespPeriph1" +blo "159000,59800" +tm "WireNameMgr" +) +) +on &108 +) +*159 (Wire +uid 13041,0 +shape (OrthoPolyLine +uid 13042,0 +va (VaSet +vasetType 3 +) +xt "149750,58000,173000,106000" +pts [ +"173000,106000" +"173000,58000" +"149750,58000" +] +) +start &101 +end &56 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13045,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13046,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,56600,170100,58000" +st "hReadyPeriph1" +blo "159000,57800" +tm "WireNameMgr" +) +) +on &107 +) +*160 (Wire +uid 13047,0 +shape (OrthoPolyLine +uid 13048,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "149750,56000,175000,106000" +pts [ +"175000,106000" +"175000,56000" +"149750,56000" +] +) +start &101 +end &58 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13051,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13052,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,54600,170000,56000" +st "hRDataPeriph1" +blo "159000,55800" +tm "WireNameMgr" +) +) +on &106 +) +*161 (Wire +uid 13053,0 +shape (OrthoPolyLine +uid 13054,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "149750,90000,165000,106000" +pts [ +"165000,106000" +"165000,90000" +"149750,90000" +] +) +start &101 +end &70 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13057,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13058,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,88600,170000,90000" +st "hRDataPeriph2" +blo "159000,89800" +tm "WireNameMgr" +) +) +on &110 +) +*162 (Wire +uid 13059,0 +shape (OrthoPolyLine +uid 13060,0 +va (VaSet +vasetType 3 +) +xt "149750,88000,167000,106000" +pts [ +"149750,88000" +"167000,88000" +"167000,106000" +] +) +start &73 +end &101 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13063,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13064,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,86600,168100,88000" +st "hSelPeriph2" +blo "159000,87800" +tm "WireNameMgr" +) +) +on &109 +) +*163 (Wire +uid 13065,0 +shape (OrthoPolyLine +uid 13066,0 +va (VaSet +vasetType 3 +) +xt "149750,94000,161000,106000" +pts [ +"161000,106000" +"161000,94000" +"149750,94000" +] +) +start &101 +end &69 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13070,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,92600,169300,94000" +st "hRespPeriph2" +blo "159000,93800" +tm "WireNameMgr" +) +) +on &112 +) +*164 (Wire +uid 13071,0 +shape (OrthoPolyLine +uid 13072,0 +va (VaSet +vasetType 3 +) +xt "149750,92000,163000,106000" +pts [ +"163000,106000" +"163000,92000" +"149750,92000" +] +) +start &101 +end &68 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13075,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13076,0 +va (VaSet +font "Verdana,12,0" +) +xt "159000,90600,170100,92000" +st "hReadyPeriph2" +blo "159000,91800" +tm "WireNameMgr" +) +) +on &111 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *165 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*166 (Text +uid 1297,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,19600,35900,20600" +st "Package List" +blo "29000,20400" +) +*167 (MLText +uid 1298,0 +va (VaSet +) +xt "29000,20600,46500,26600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*168 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*169 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*170 (MLText +uid 193,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,2800,30400,5400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*171 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*172 (MLText +uid 195,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*173 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*174 (MLText +uid 197,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "26627,17278,237179,131677" +cachedDiagramExtent "0,-2200,192000,168200" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\ipp://ipp.hevs.ch\\PREA309_HPLJP3005DN,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 45 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "29000,19000" +lastUid 13694,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "300,1000,4000,2000" +st "Panel0" +blo "300,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*175 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,2550,8000,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*176 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,3950,7300,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*177 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,5350,4800,6750" +st "U_0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*178 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,3000,4300,4200" +st "Library" +blo "-100,4000" +) +*179 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,4200,9800,5400" +st "MWComponent" +blo "-100,5200" +) +*180 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,5400,2700,6600" +st "U_0" +blo "-100,6400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*181 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,2550,4050,3750" +st "Library" +blo "-350,3550" +tm "BdLibraryNameMgr" +) +*182 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,3750,8950,4950" +st "SaComponent" +blo "-350,4750" +tm "CptNameMgr" +) +*183 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,4950,2450,6150" +st "U_0" +blo "-350,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "-600,8250,900,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*184 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,2550,3550,3750" +st "Library" +blo "-850,3550" +) +*185 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,3750,9450,4950" +st "VhdlComponent" +blo "-850,4750" +) +*186 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,4950,1950,6150" +st "U_0" +blo "-850,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*187 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,2550,2800,3750" +st "Library" +blo "-1600,3550" +) +*188 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,3750,10100,4950" +st "VerilogComponent" +blo "-1600,4750" +) +*189 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,4950,1200,6150" +st "U_0" +blo "-1600,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*190 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,3400,5250,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*191 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,4400,4150,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-750,-600,750,600" +st "G" +blo "-750,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,400,3700,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1400,1500,2600" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1200,9600,2400" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,18500,-200" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*192 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*193 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,11000,-200" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*194 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*195 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,26800,36000,27800" +st "Declarations" +blo "29000,27600" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,32400,29000" +st "Ports:" +blo "29000,28800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,27800,33800,28800" +st "Pre User:" +blo "29000,28600" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,10,0" +) +xt "31000,28800,67600,49200" +st "constant periph1Index: positive := 1; +constant periph2Index: positive := periph1Index+1; + +constant ahbMemoryLocation : ahbMemoryLocationVector := ( + periph1Index => ( + baseAddress => 16#0000#, + addressMask => 16#10000# - 16#0010# + ), + periph2Index => ( + baseAddress => 16#0010#, + addressMask => 16#10000# - 16#0002# + ), + others => ( + baseAddress => 16#FFFF#, + addressMask => 16#0000# + ) +);" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,38000,29000" +st "Diagram Signals:" +blo "29000,28800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,35000,29000" +st "Post User:" +blo "29000,28800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,10,0" +) +xt "31000,42400,31000,42400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 149,0 +usingSuid 1 +emptyRow *196 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*197 (RefLabelRowHdr +) +*198 (TitleRowHdr +) +*199 (FilterRowHdr +) +*200 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*201 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*202 (GroupColHdr +tm "GroupColHdrMgr" +) +*203 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*204 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*205 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*206 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*207 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*208 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*209 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 27 +suid 107,0 +) +) +uid 13141,0 +) +*210 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 108,0 +) +) +uid 13143,0 +) +*211 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upAddress" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 28 +suid 109,0 +) +) +uid 13145,0 +) +*212 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 30 +suid 110,0 +) +) +uid 13147,0 +) +*213 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 29 +suid 111,0 +) +) +uid 13149,0 +) +*214 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upReadStrobe" +t "std_uLogic" +o 31 +suid 112,0 +) +) +uid 13151,0 +) +*215 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "upWriteStrobe" +t "std_uLogic" +o 32 +suid 113,0 +) +) +uid 13153,0 +) +*216 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 2 +suid 114,0 +) +) +uid 13155,0 +) +*217 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 25 +suid 115,0 +) +) +uid 13157,0 +) +*218 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 7 +suid 116,0 +) +) +uid 13159,0 +) +*219 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 24 +suid 117,0 +) +) +uid 13161,0 +) +*220 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSize" +t "std_ulogic_vector" +b "(ahbSizeBitNb-1 DOWNTO 0)" +o 23 +suid 118,0 +) +) +uid 13163,0 +) +*221 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hBurst" +t "std_ulogic_vector" +b "(ahbBurstBitNb-1 DOWNTO 0)" +o 3 +suid 119,0 +) +) +uid 13165,0 +) +*222 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hProt" +t "std_ulogic_vector" +b "(ahbProtBitNb-1 DOWNTO 0)" +o 6 +suid 120,0 +) +) +uid 13167,0 +) +*223 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWrite" +t "std_uLogic" +o 26 +suid 121,0 +) +) +uid 13169,0 +) +*224 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReady" +t "std_uLogic" +o 11 +suid 122,0 +) +) +uid 13171,0 +) +*225 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hMastLock" +t "std_uLogic" +o 5 +suid 123,0 +) +) +uid 13173,0 +) +*226 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hResp" +t "std_uLogic" +o 16 +suid 124,0 +) +) +uid 13175,0 +) +*227 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 125,0 +) +) +uid 13177,0 +) +*228 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 15 +suid 126,0 +) +) +uid 13179,0 +) +*229 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelV" +t "std_ulogic_vector" +b "(1 TO ahbSlaveNb)" +o 22 +suid 127,0 +) +) +uid 13181,0 +) +*230 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataV" +t "ahbDataVector" +o 10 +suid 128,0 +) +) +uid 13183,0 +) +*231 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 14 +suid 129,0 +) +) +uid 13185,0 +) +*232 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespV" +t "std_logic_vector" +b "(1 TO ahbSlaveNb)" +o 19 +suid 130,0 +) +) +uid 13187,0 +) +*233 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelPeriph1" +t "std_uLogic" +o 20 +suid 142,0 +) +) +uid 13430,0 +) +*234 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataPeriph1" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 8 +suid 143,0 +) +) +uid 13432,0 +) +*235 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyPeriph1" +t "std_uLogic" +o 12 +suid 144,0 +) +) +uid 13434,0 +) +*236 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespPeriph1" +t "std_uLogic" +o 17 +suid 145,0 +) +) +uid 13436,0 +) +*237 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSelPeriph2" +t "std_uLogic" +o 21 +suid 146,0 +) +) +uid 13438,0 +) +*238 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRDataPeriph2" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 147,0 +) +) +uid 13440,0 +) +*239 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReadyPeriph2" +t "std_uLogic" +o 13 +suid 148,0 +) +) +uid 13442,0 +) +*240 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRespPeriph2" +t "std_uLogic" +o 18 +suid 149,0 +) +) +uid 13444,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*241 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *242 (MRCItem +litem &196 +pos 32 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*243 (MRCItem +litem &197 +pos 0 +dimension 20 +uid 3326,0 +) +*244 (MRCItem +litem &198 +pos 1 +dimension 23 +uid 3327,0 +) +*245 (MRCItem +litem &199 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*246 (MRCItem +litem &209 +pos 0 +dimension 20 +uid 13142,0 +) +*247 (MRCItem +litem &210 +pos 1 +dimension 20 +uid 13144,0 +) +*248 (MRCItem +litem &211 +pos 2 +dimension 20 +uid 13146,0 +) +*249 (MRCItem +litem &212 +pos 3 +dimension 20 +uid 13148,0 +) +*250 (MRCItem +litem &213 +pos 4 +dimension 20 +uid 13150,0 +) +*251 (MRCItem +litem &214 +pos 5 +dimension 20 +uid 13152,0 +) +*252 (MRCItem +litem &215 +pos 6 +dimension 20 +uid 13154,0 +) +*253 (MRCItem +litem &216 +pos 7 +dimension 20 +uid 13156,0 +) +*254 (MRCItem +litem &217 +pos 8 +dimension 20 +uid 13158,0 +) +*255 (MRCItem +litem &218 +pos 9 +dimension 20 +uid 13160,0 +) +*256 (MRCItem +litem &219 +pos 10 +dimension 20 +uid 13162,0 +) +*257 (MRCItem +litem &220 +pos 11 +dimension 20 +uid 13164,0 +) +*258 (MRCItem +litem &221 +pos 12 +dimension 20 +uid 13166,0 +) +*259 (MRCItem +litem &222 +pos 13 +dimension 20 +uid 13168,0 +) +*260 (MRCItem +litem &223 +pos 14 +dimension 20 +uid 13170,0 +) +*261 (MRCItem +litem &224 +pos 15 +dimension 20 +uid 13172,0 +) +*262 (MRCItem +litem &225 +pos 16 +dimension 20 +uid 13174,0 +) +*263 (MRCItem +litem &226 +pos 17 +dimension 20 +uid 13176,0 +) +*264 (MRCItem +litem &227 +pos 18 +dimension 20 +uid 13178,0 +) +*265 (MRCItem +litem &228 +pos 19 +dimension 20 +uid 13180,0 +) +*266 (MRCItem +litem &229 +pos 20 +dimension 20 +uid 13182,0 +) +*267 (MRCItem +litem &230 +pos 21 +dimension 20 +uid 13184,0 +) +*268 (MRCItem +litem &231 +pos 22 +dimension 20 +uid 13186,0 +) +*269 (MRCItem +litem &232 +pos 23 +dimension 20 +uid 13188,0 +) +*270 (MRCItem +litem &233 +pos 24 +dimension 20 +uid 13431,0 +) +*271 (MRCItem +litem &234 +pos 25 +dimension 20 +uid 13433,0 +) +*272 (MRCItem +litem &235 +pos 26 +dimension 20 +uid 13435,0 +) +*273 (MRCItem +litem &236 +pos 27 +dimension 20 +uid 13437,0 +) +*274 (MRCItem +litem &237 +pos 28 +dimension 20 +uid 13439,0 +) +*275 (MRCItem +litem &238 +pos 29 +dimension 20 +uid 13441,0 +) +*276 (MRCItem +litem &239 +pos 30 +dimension 20 +uid 13443,0 +) +*277 (MRCItem +litem &240 +pos 31 +dimension 20 +uid 13445,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*278 (MRCItem +litem &200 +pos 0 +dimension 20 +uid 3330,0 +) +*279 (MRCItem +litem &202 +pos 1 +dimension 50 +uid 3331,0 +) +*280 (MRCItem +litem &203 +pos 2 +dimension 100 +uid 3332,0 +) +*281 (MRCItem +litem &204 +pos 3 +dimension 50 +uid 3333,0 +) +*282 (MRCItem +litem &205 +pos 4 +dimension 100 +uid 3334,0 +) +*283 (MRCItem +litem &206 +pos 5 +dimension 100 +uid 3335,0 +) +*284 (MRCItem +litem &207 +pos 6 +dimension 50 +uid 3336,0 +) +*285 (MRCItem +litem &208 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *286 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*287 (RefLabelRowHdr +) +*288 (TitleRowHdr +) +*289 (FilterRowHdr +) +*290 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*291 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*292 (GroupColHdr +tm "GroupColHdrMgr" +) +*293 (NameColHdr +tm "GenericNameColHdrMgr" +) +*294 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*295 (InitColHdr +tm "GenericValueColHdrMgr" +) +*296 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*297 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*298 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *299 (MRCItem +litem &286 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*300 (MRCItem +litem &287 +pos 0 +dimension 20 +uid 3354,0 +) +*301 (MRCItem +litem &288 +pos 1 +dimension 23 +uid 3355,0 +) +*302 (MRCItem +litem &289 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*303 (MRCItem +litem &290 +pos 0 +dimension 20 +uid 3358,0 +) +*304 (MRCItem +litem &292 +pos 1 +dimension 50 +uid 3359,0 +) +*305 (MRCItem +litem &293 +pos 2 +dimension 100 +uid 3360,0 +) +*306 (MRCItem +litem &294 +pos 3 +dimension 100 +uid 3361,0 +) +*307 (MRCItem +litem &295 +pos 4 +dimension 50 +uid 3362,0 +) +*308 (MRCItem +litem &296 +pos 5 +dimension 50 +uid 3363,0 +) +*309 (MRCItem +litem &297 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/AhbLite_test/hds/ahb@lite_tb/symbol.sb b/Libs/AhbLite_test/hds/ahb@lite_tb/symbol.sb new file mode 100644 index 0000000..84c83c1 --- /dev/null +++ b/Libs/AhbLite_test/hds/ahb@lite_tb/symbol.sb @@ -0,0 +1,1258 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds\\ahb@lite_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds\\ahb@lite_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds\\ahb@lite_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds\\ahbLite_tb" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "entity_name" +value "ahbLite_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:34:52" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/AhbLite_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "ahbLite_tb" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds\\ahb@lite_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\AhbLite_test\\hds\\ahbLite_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "07:34:52" +) +(vvPair +variable "unit" +value "ahbLite_tb" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,37850,23100" +st "AhbLite_test" +blo "29950,22900" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,23100,36650,24300" +st "ahbLite_tb" +blo "29950,24100" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "32000,27600,43500,28400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41400,69600,42600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "29250,41250,40750,42750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47400,40800,48600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41400,52900,42600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43400,42400,44600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43400,25600,44600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45400,25600,46600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,62300,44400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45400,45500,46600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47400,26500,48600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "Arial,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "Arial,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,10,1" +) +xt "0,5800,3200,7000" +st "User:" +blo "0,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,7000,2000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/AhbLite_test/hds/ahb@lite_tester/interface b/Libs/AhbLite_test/hds/ahb@lite_tester/interface new file mode 100644 index 0000000..af57cd1 --- /dev/null +++ b/Libs/AhbLite_test/hds/ahb@lite_tester/interface @@ -0,0 +1,2685 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 147,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 200,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 127,0 +) +) +uid 1306,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 2 +suid 128,0 +) +) +uid 1308,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 129,0 +) +) +uid 1310,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRDataPeriph1" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 8 +suid 130,0 +) +) +uid 1312,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRDataPeriph2" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 131,0 +) +) +uid 1314,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReadyPeriph1" +t "std_uLogic" +o 12 +suid 132,0 +) +) +uid 1316,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReadyPeriph2" +t "std_uLogic" +o 13 +suid 133,0 +) +) +uid 1318,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 15 +suid 134,0 +) +) +uid 1320,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRespPeriph1" +t "std_uLogic" +o 17 +suid 135,0 +) +) +uid 1322,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hRespPeriph2" +t "std_uLogic" +o 18 +suid 136,0 +) +) +uid 1324,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "hSelPeriph1" +t "std_uLogic" +o 20 +suid 137,0 +) +) +uid 1326,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "hSelPeriph2" +t "std_uLogic" +o 21 +suid 138,0 +) +) +uid 1328,0 +) +*26 (LogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 24 +suid 139,0 +) +) +uid 1330,0 +) +*27 (LogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 25 +suid 140,0 +) +) +uid 1332,0 +) +*28 (LogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 26 +suid 141,0 +) +) +uid 1334,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 27 +suid 142,0 +) +) +uid 1336,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "upAddress" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 28 +suid 143,0 +) +) +uid 1338,0 +) +*31 (LogPort +port (LogicalPort +decl (Decl +n "upDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 29 +suid 144,0 +) +) +uid 1340,0 +) +*32 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "upDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 30 +suid 145,0 +) +) +uid 1342,0 +) +*33 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "upReadStrobe" +t "std_uLogic" +o 31 +suid 146,0 +) +) +uid 1344,0 +) +*34 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "upWriteStrobe" +t "std_uLogic" +o 32 +suid 147,0 +) +) +uid 1346,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 213,0 +optionalChildren [ +*35 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *36 (MRCItem +litem &1 +pos 21 +dimension 20 +) +uid 215,0 +optionalChildren [ +*37 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 216,0 +) +*38 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 217,0 +) +*39 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 218,0 +) +*40 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 1307,0 +) +*41 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 1309,0 +) +*42 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 1311,0 +) +*43 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 1313,0 +) +*44 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 1315,0 +) +*45 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 1317,0 +) +*46 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 1319,0 +) +*47 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 1321,0 +) +*48 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 1323,0 +) +*49 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 1325,0 +) +*50 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 1327,0 +) +*51 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 1329,0 +) +*52 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 1331,0 +) +*53 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 1333,0 +) +*54 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 1335,0 +) +*55 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 1337,0 +) +*56 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 1339,0 +) +*57 (MRCItem +litem &31 +pos 17 +dimension 20 +uid 1341,0 +) +*58 (MRCItem +litem &32 +pos 18 +dimension 20 +uid 1343,0 +) +*59 (MRCItem +litem &33 +pos 19 +dimension 20 +uid 1345,0 +) +*60 (MRCItem +litem &34 +pos 20 +dimension 20 +uid 1347,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 219,0 +optionalChildren [ +*61 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 220,0 +) +*62 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 221,0 +) +*63 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 222,0 +) +*64 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 223,0 +) +*65 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 224,0 +) +*66 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 225,0 +) +*67 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 226,0 +) +*68 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 227,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 214,0 +vaOverrides [ +] +) +] +) +uid 199,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *69 (LEmptyRow +) +uid 229,0 +optionalChildren [ +*70 (RefLabelRowHdr +) +*71 (TitleRowHdr +) +*72 (FilterRowHdr +) +*73 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*74 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*75 (GroupColHdr +tm "GroupColHdrMgr" +) +*76 (NameColHdr +tm "GenericNameColHdrMgr" +) +*77 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*78 (InitColHdr +tm "GenericValueColHdrMgr" +) +*79 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*80 (EolColHdr +tm "GenericEolColHdrMgr" +) +*81 (LogGeneric +generic (GiElement +name "periph2BaseAddress" +type "natural" +value "" +) +uid 641,0 +) +*82 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 1176,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 241,0 +optionalChildren [ +*83 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *84 (MRCItem +litem &69 +pos 2 +dimension 20 +) +uid 243,0 +optionalChildren [ +*85 (MRCItem +litem &70 +pos 0 +dimension 20 +uid 244,0 +) +*86 (MRCItem +litem &71 +pos 1 +dimension 23 +uid 245,0 +) +*87 (MRCItem +litem &72 +pos 2 +hidden 1 +dimension 20 +uid 246,0 +) +*88 (MRCItem +litem &81 +pos 0 +dimension 20 +uid 642,0 +) +*89 (MRCItem +litem &82 +pos 1 +dimension 20 +uid 1177,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 247,0 +optionalChildren [ +*90 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 248,0 +) +*91 (MRCItem +litem &75 +pos 1 +dimension 50 +uid 249,0 +) +*92 (MRCItem +litem &76 +pos 2 +dimension 100 +uid 250,0 +) +*93 (MRCItem +litem &77 +pos 3 +dimension 100 +uid 251,0 +) +*94 (MRCItem +litem &78 +pos 4 +dimension 50 +uid 252,0 +) +*95 (MRCItem +litem &79 +pos 5 +dimension 50 +uid 253,0 +) +*96 (MRCItem +litem &80 +pos 6 +dimension 80 +uid 254,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 242,0 +vaOverrides [ +] +) +] +) +uid 228,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahbLite_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbLite_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:16:10" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLite_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLite_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbLite_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahb@lite_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\..\\Libs\\AhbLite_test\\hds\\ahbLite_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "15:16:10" +) +(vvPair +variable "unit" +value "ahbLite_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 198,0 +optionalChildren [ +*97 (SymbolBody +uid 8,0 +optionalChildren [ +*98 (CptPort +uid 1201,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1202,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 1203,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1204,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "34300,7000,35700,10800" +st "clock" +ju 2 +blo "35500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1205,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,63500,10000" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 127,0 +) +) +) +*99 (CptPort +uid 1206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1207,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "134625,5250,135375,6000" +) +tg (CPTG +uid 1208,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1209,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "134300,7000,135700,11500" +st "hAddr" +ju 2 +blo "135500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1210,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,77000,2800" +st "hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 2 +suid 128,0 +) +) +) +*100 (CptPort +uid 1211,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1212,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 1213,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1214,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "60300,7000,61700,10500" +st "hClk" +ju 2 +blo "61500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1215,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,63500,3600" +st "hClk : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 129,0 +) +) +) +*101 (CptPort +uid 1216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1217,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "152625,5250,153375,6000" +) +tg (CPTG +uid 1218,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1219,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "152300,7000,153700,18000" +st "hRDataPeriph1" +ju 2 +blo "153500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1220,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,80000,10800" +st "hRDataPeriph1 : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataPeriph1" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 8 +suid 130,0 +) +) +) +*102 (CptPort +uid 1221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1222,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "142625,5250,143375,6000" +) +tg (CPTG +uid 1223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1224,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "142300,7000,143700,18000" +st "hRDataPeriph2" +ju 2 +blo "143500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1225,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,80000,11600" +st "hRDataPeriph2 : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRDataPeriph2" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 131,0 +) +) +) +*103 (CptPort +uid 1226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1227,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "150625,5250,151375,6000" +) +tg (CPTG +uid 1228,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1229,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "150300,7000,151700,18100" +st "hReadyPeriph1" +ju 2 +blo "151500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1230,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11600,63500,12400" +st "hReadyPeriph1 : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyPeriph1" +t "std_uLogic" +o 12 +suid 132,0 +) +) +) +*104 (CptPort +uid 1231,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1232,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "140625,5250,141375,6000" +) +tg (CPTG +uid 1233,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1234,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "140300,7000,141700,18100" +st "hReadyPeriph2" +ju 2 +blo "141500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1235,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12400,63500,13200" +st "hReadyPeriph2 : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReadyPeriph2" +t "std_uLogic" +o 13 +suid 133,0 +) +) +) +*105 (CptPort +uid 1236,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1237,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 1238,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1239,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "58300,7000,59700,13800" +st "hReset_n" +ju 2 +blo "59500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1240,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,63500,4400" +st "hReset_n : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 15 +suid 134,0 +) +) +) +*106 (CptPort +uid 1241,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1242,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "148625,5250,149375,6000" +) +tg (CPTG +uid 1243,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1244,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "148300,7000,149700,17300" +st "hRespPeriph1" +ju 2 +blo "149500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1245,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13200,63500,14000" +st "hRespPeriph1 : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespPeriph1" +t "std_uLogic" +o 17 +suid 135,0 +) +) +) +*107 (CptPort +uid 1246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1247,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "138625,5250,139375,6000" +) +tg (CPTG +uid 1248,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1249,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "138300,7000,139700,17300" +st "hRespPeriph2" +ju 2 +blo "139500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1250,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,14000,63500,14800" +st "hRespPeriph2 : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRespPeriph2" +t "std_uLogic" +o 18 +suid 136,0 +) +) +) +*108 (CptPort +uid 1251,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1252,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "154625,5250,155375,6000" +) +tg (CPTG +uid 1253,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1254,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "154300,7000,155700,16100" +st "hSelPeriph1" +ju 2 +blo "155500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1255,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,63500,5200" +st "hSelPeriph1 : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hSelPeriph1" +t "std_uLogic" +o 20 +suid 137,0 +) +) +) +*109 (CptPort +uid 1256,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1257,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "144625,5250,145375,6000" +) +tg (CPTG +uid 1258,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1259,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "144300,7000,145700,16100" +st "hSelPeriph2" +ju 2 +blo "145500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1260,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,63500,6000" +st "hSelPeriph2 : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hSelPeriph2" +t "std_uLogic" +o 21 +suid 138,0 +) +) +) +*110 (CptPort +uid 1261,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1262,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "130625,5250,131375,6000" +) +tg (CPTG +uid 1263,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1264,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "130300,7000,131700,12100" +st "hTrans" +ju 2 +blo "131500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1265,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,80500,6800" +st "hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 24 +suid 139,0 +) +) +) +*111 (CptPort +uid 1266,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1267,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "132625,5250,133375,6000" +) +tg (CPTG +uid 1268,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1269,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "132300,7000,133700,12900" +st "hWData" +ju 2 +blo "133500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1270,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,80000,7600" +st "hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 25 +suid 140,0 +) +) +) +*112 (CptPort +uid 1271,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1272,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "128625,5250,129375,6000" +) +tg (CPTG +uid 1273,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1274,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "128300,7000,129700,12000" +st "hWrite" +ju 2 +blo "129500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1275,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,63500,8400" +st "hWrite : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 26 +suid 141,0 +) +) +) +*113 (CptPort +uid 1276,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1277,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 1278,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1279,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "36300,7000,37700,11100" +st "reset" +ju 2 +blo "37500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1280,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,14800,63500,15600" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 27 +suid 142,0 +) +) +) +*114 (CptPort +uid 1281,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1282,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 1283,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1284,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,14500" +st "upAddress" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1285,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,15600,77000,16400" +st "upAddress : OUT unsigned (ahbAddressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "upAddress" +t "unsigned" +b "(ahbAddressBitNb-1 DOWNTO 0)" +o 28 +suid 143,0 +) +) +) +*115 (CptPort +uid 1286,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1287,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 1288,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1289,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,13700" +st "upDataIn" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1290,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,80000,9200" +st "upDataIn : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "upDataIn" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 29 +suid 144,0 +) +) +) +*116 (CptPort +uid 1291,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1292,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 1293,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1294,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,14700" +st "upDataOut" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1295,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,16400,80000,17200" +st "upDataOut : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "upDataOut" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 30 +suid 145,0 +) +) +) +*117 (CptPort +uid 1296,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1297,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 1298,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1299,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,17600" +st "upReadStrobe" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1300,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,17200,63500,18000" +st "upReadStrobe : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "upReadStrobe" +t "std_uLogic" +o 31 +suid 146,0 +) +) +) +*118 (CptPort +uid 1301,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1302,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 1303,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1304,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,17800" +st "upWriteStrobe" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1305,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,18000,62500,18800" +st "upWriteStrobe : OUT std_uLogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "upWriteStrobe" +t "std_uLogic" +o 32 +suid 147,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,163000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "84650,8800,92550,10000" +st "AhbLite_test" +blo "84650,9800" +) +second (Text +uid 12,0 +va (VaSet +) +xt "84650,10000,93350,11200" +st "ahbLite_tester" +blo "84650,11000" +) +) +gi *119 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "54000,6000,70000,9200" +st "Generic Declarations + +periph2BaseAddress natural +clockFrequency real " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "periph2BaseAddress" +type "natural" +value "" +) +(GiElement +name "clockFrequency" +type "real" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*120 (Grouping +uid 16,0 +optionalChildren [ +*121 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*122 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*123 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*124 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*125 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*126 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*127 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*128 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*129 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*130 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49500,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *131 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*132 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*133 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,7000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1017,690" +viewArea "-500,-500,71299,48094" +cachedDiagramExtent "0,0,163000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "1000,1000,4500,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "AhbLite_test" +entityName "ahbLite_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,55000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "32800,15000,37200,16000" +st "" +blo "32800,15800" +) +second (Text +va (VaSet +) +xt "32800,16000,36000,17000" +st "" +blo "32800,16800" +) +) +gi *134 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *135 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "42000,18800,45000,19800" +st "User:" +blo "42000,19600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,19800,44000,19800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1347,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/AhbLite_test/hds/hds/_cordic_tb._epf b/Libs/AhbLite_test/hds/hds/_cordic_tb._epf new file mode 100644 index 0000000..21b4705 --- /dev/null +++ b/Libs/AhbLite_test/hds/hds/_cordic_tb._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom cordic_tb/struct.bd diff --git a/Libs/AhbLite_test/hds/hds/_cordic_tester._epf b/Libs/AhbLite_test/hds/hds/_cordic_tester._epf new file mode 100644 index 0000000..571444e --- /dev/null +++ b/Libs/AhbLite_test/hds/hds/_cordic_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom cordic_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/AhbLite_test/hds/hds/_motherboard_tb._epf b/Libs/AhbLite_test/hds/hds/_motherboard_tb._epf new file mode 100644 index 0000000..b97c86e --- /dev/null +++ b/Libs/AhbLite_test/hds/hds/_motherboard_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom motherboard_tb/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/AhbLite_test/hds/hds/_motherboard_tester._epf b/Libs/AhbLite_test/hds/hds/_motherboard_tester._epf new file mode 100644 index 0000000..7fb5b51 --- /dev/null +++ b/Libs/AhbLite_test/hds/hds/_motherboard_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom motherboard_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/Common/hdl/blinker_arch.vhd b/Libs/Common/hdl/blinker_arch.vhd new file mode 100644 index 0000000..3d29f7e --- /dev/null +++ b/Libs/Common/hdl/blinker_arch.vhd @@ -0,0 +1,89 @@ +-- filename: blinker.vhd +-- kind: vhdl file +-- first created: 18.06.2012 +-- created by: zas +-------------------------------------------------------------------------------- +-- History: +-- v0.1 : zas 18.06.2012 -- Initial Version +-------------------------------------------------------------------------------- +-- Description: +-- For let blinking a LED with an signal event +-- Mode = 0 (reactive on rising edge) +-- ___________________________________________ +-- input ____/ +-- ___________________ +-- output ____/ \_______________________ +-- time 0s 0.5s 1s +-- +-- _ +-- input ____/ \_________________________________________ +-- ___________________ +-- output ____/ \_______________________ +-- time 0s 0.5s 1s +---- +-- Mode = 1 (reactive on falling edge) +-- _____ +-- input \__________________________________________ +-- ___________________ +-- output ______/ \_____________________ +-- time 0s 0.5s 1s +-- +-- _ +-- input ____/ \_________________________________________ +-- ___________________ +-- output ______ / \____________________ +-- time 0s 0.5s 1s +-- +-------------------------------------------------------------------------------- +LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.NUMERIC_STD.all; + +LIBRARY Common; +USE Common.CommonLib.all; + + +ARCHITECTURE arch OF blinker IS + + constant c : integer := clockFrequency/2; -- 500ms blink + + signal cnt : unsigned(requiredBitNb(c)-1 downto 0); + signal en_delay : std_ulogic; + signal blink_int : std_ulogic; + +BEGIN + + process(reset, clock) + begin + if reset = '1' then + en_delay <= '0'; + blink_int <= '0'; + cnt <= (others => '0'); + elsif rising_edge(clock) then + en_delay <= en; + -- detect rising_edge + if mode = 0 then + if blink_int = '0' and en_delay = '0' and en = '1' then + blink_int <= '1'; + end if; + else + -- detect falling edge + if blink_int = '0' and en_delay = '1' and en = '0' then + blink_int <= '1'; + end if; + end if; + -- blink + if blink_int = '1' then + if (cnt < c) then + cnt <= cnt + 1; + else + cnt <= (others => '0'); + blink_int <= '0'; + end if; + end if; + end if; + end process; + + -- Set output + blink <= blink_int; +END ARCHITECTURE arch; diff --git a/Libs/Common/hdl/commonLib.vhd b/Libs/Common/hdl/commonLib.vhd new file mode 100644 index 0000000..223f0b5 --- /dev/null +++ b/Libs/Common/hdl/commonLib.vhd @@ -0,0 +1,68 @@ +-------------------------------------------------------------------------------- +-- Copyright 2012 HES-SO Valais Wallis (www.hevs.ch) +-------------------------------------------------------------------------------- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program IS distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- You should have received a copy of the GNU General Public License along with +-- this program. If not, see +-- ----------------------------------------------------------------------------- +-- Common Lib +-- +-- ----------------------------------------------------------------------------- +-- Authors: +-- cof: [François Corthay](francois.corthay@hevs.ch) +-- guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +-- ----------------------------------------------------------------------------- +-- Changelog: +-- 2016-06 : guo +-- added function sel +-- 2015-06 : guo +-- added counterBitNb +-- added documentation +-- ----------------------------------------------------------------------------- +library IEEE; + use IEEE.std_logic_1164.all; + use IEEE.numeric_std.all; + +PACKAGE CommonLib IS + + ------------------------------------------------------------------------------ + -- Returns the number of bits needed to represent the given val + -- Examples: + -- requiredBitNb(1) = 1 (1) + -- requiredBitNb(2) = 2 (10) + -- requiredBitNb(3) = 2 (11) + function requiredBitNb(val : integer) return integer; + + ------------------------------------------------------------------------------ + -- Returns the number of bits needed to count val times (0 to val-1) + -- Examples: + -- counterBitNb(1) = 1 (0) + -- counterBitNb(2) = 1 (0->1) + -- counterBitNb(3) = 2 (0->1->10) + function counterBitNb(val : integer) return integer; + + ------------------------------------------------------------------------------ + -- Functions to return one or the other input based on a boolean. + -- Can be used to build conditional constants. + -- Example: + -- constant bonjour_c : string := sel(ptpRole = master, "fpga20", "fpga02"); + function sel(Cond : BOOLEAN; If_True, If_False : integer) + return integer; + function sel(Cond : BOOLEAN; If_True, If_False : string) + return string; + function sel(Cond : BOOLEAN; If_True, If_False : std_ulogic_vector) + return std_ulogic_vector; + function sel(Cond : BOOLEAN; If_True, If_False : unsigned) + return unsigned; + function sel(Cond : BOOLEAN; If_True, If_False : signed) + return signed; + +END CommonLib; diff --git a/Libs/Common/hdl/commonLib_body.vhd b/Libs/Common/hdl/commonLib_body.vhd new file mode 100644 index 0000000..58a33ee --- /dev/null +++ b/Libs/Common/hdl/commonLib_body.vhd @@ -0,0 +1,105 @@ +-------------------------------------------------------------------------------- +-- Copyright 2012 HES-SO Valais Wallis (www.hevs.ch) +-------------------------------------------------------------------------------- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program IS distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- You should have received a copy of the GNU General Public License along with +-- this program. If not, see +-- ----------------------------------------------------------------------------- +-- Often used functions +-- +-- ----------------------------------------------------------------------------- +-- Authors: +-- cof: [François Corthay](francois.corthay@hevs.ch) +-- guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) +-- ----------------------------------------------------------------------------- +-- Changelog: +-- 2016-06 : guo +-- added function sel +-- 2015-06 : guo +-- added counterBitNb +-- ----------------------------------------------------------------------------- +PACKAGE BODY CommonLib IS + + function requiredBitNb (val : integer) return integer is + variable powerOfTwo, bitNb : integer; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo <= val loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end requiredBitNb; + + function counterBitNb (val : integer) return integer is + variable powerOfTwo, bitNb : integer; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo < val loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end counterBitNb; + + function sel(Cond : BOOLEAN; If_True, If_False : integer) + return integer is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : string) + return string is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : std_ulogic_vector) + return std_ulogic_vector is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : unsigned) + return unsigned is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + + function sel(Cond : BOOLEAN; If_True, If_False : signed) + return signed is + begin + if (Cond = TRUE) then + return (If_True); + else + return (If_False); + end if; + end function sel; + +END CommonLib; diff --git a/Libs/Common/hdl/debounce_rtl.vhd b/Libs/Common/hdl/debounce_rtl.vhd new file mode 100644 index 0000000..83aae18 --- /dev/null +++ b/Libs/Common/hdl/debounce_rtl.vhd @@ -0,0 +1,112 @@ +-- filename: debounced.vhd +-- kind: vhdl file +-- first created: 11.01.2024 +-- created by: boy +-------------------------------------------------------------------------------- +-- History: +-- v0.1 : boy 11.01.2024 -- Initial Version + +-------------------------------------------------------------------------------- +-- Description: +-- debounceds a button on both edges. +-- _ _ ____________________ _ _ +-- input ____/ \_/ \_/ \_/ \_/ \______ +-- _____________________________ +-- output __________________/ \____________ +-- +-------------------------------------------------------------------------------- +-- Generics: +-- g_debounceTime (time) : parameter to fix the debounce time. +-- g_minConsecutiveStateCount (integer) : The number of consecutive readings of the same state required to change the output. +-- g_clockFrequency (real) : Clock frequency of the system +-- g_activeState (std_ulogic) : The output will be reset in "inactive" state. +-------------------------------------------------------------------------------- +-- Input is read each g_debounceTime, and a constant value must appear for +-- g_minConsecutiveStateCount to be forwarded on the output. +-- To update the output, x consecutive samples needs to have +-- the exact same value. x is given with the "g_minConsecutiveStateCount" parameter +-------------------------------------------------------------------------------- +LIBRARY ieee; + USE ieee.math_real.all; +LIBRARY Common; + USE Common.CommonLib.all; + + +ARCHITECTURE rtl OF debounce IS + + -- Creates a vector of alternating 1's and 0's (0b...1010) + pure function alternating_ones_and_zeros(length : integer) return std_ulogic_vector is + variable ret_val : std_ulogic_vector(length - 1 downto 0); + BEGIN + for i in 0 to length - 1 loop + if i mod 2 = 1 then + ret_val(i) := '1'; + else + ret_val(i) := '0'; + end if; + end loop; + + return ret_val; + end function alternating_ones_and_zeros; + + -- To check if all bits are '1' + constant c_LOGICAL_HIGH_VALID: std_ulogic_vector((g_minConsecutiveStateCount-1) downto 0) := (others=>'1'); + -- To check if all bits are '0' + constant c_LOGICAL_LOW_VALID: std_ulogic_vector((g_minConsecutiveStateCount-1) downto 0) := (others=>'0'); + -- Alternating 1's and 0's for reset value + constant c_INIT_SAMPLE: std_ulogic_vector((g_minConsecutiveStateCount-1) downto 0) := alternating_ones_and_zeros(g_minConsecutiveStateCount); + -- Delay between two samplings + -- delay = (g_debounceTime * g_clockFrequency) / g_minConsecutiveStateCount - 1 + constant DELAY: positive := integer(ceil(((real(g_debounceTime / 1 ps) / 1.0e12) * g_clockFrequency) / real(g_minConsecutiveStateCount))) - 1; + + -- Holds the state of registered consecutive inputs + signal lvec_sample: std_ulogic_vector((g_minConsecutiveStateCount-1) downto 0); + -- Defines when we will sample (based on given DELAY) + signal lsig_samplePulse: std_ulogic := '0'; + -- Counter for the delay + signal lvec_count : unsigned(requiredBitNb(DELAY)-1 downto 0); + +BEGIN + + clockDivider: process(reset, clock) --Clock Divider + begin + if reset = '1' then + lvec_count <= (others => '0'); + lsig_samplePulse <= '0'; + elsif rising_edge(clock) then + if (lvec_count < DELAY) then + lvec_count <= lvec_count + 1; + lsig_samplePulse <= '0'; + else + lvec_count <= (others => '0'); + lsig_samplePulse <= '1'; + end if; + end if; + end process clockDivider; + + sampling: process(reset, clock) --Sampling Process + begin + if reset = '1' then + lvec_sample <= c_INIT_SAMPLE; + elsif rising_edge(clock) then + if lsig_samplePulse = '1' then + lvec_sample((g_minConsecutiveStateCount - 1) downto 1) <= lvec_sample((g_minConsecutiveStateCount - 2) downto 0); -- Left Shift + lvec_sample(0) <= input; + end if; + end if; + end process sampling; + + inputDebouncing: process(reset, clock) --Input Debouncing + begin + if reset = '1' then + debounced <= not g_activeState; + elsif rising_edge(clock) then + if lvec_sample = c_LOGICAL_HIGH_VALID then --Active High Constant Out + debounced <= '1'; + elsif lvec_sample = c_LOGICAL_LOW_VALID then + debounced <= '0'; + end if; + end if; + end process inputDebouncing; +END ARCHITECTURE rtl; + diff --git a/Libs/Common/hdl/debouncerULogicVector_RTL.vhd b/Libs/Common/hdl/debouncerULogicVector_RTL.vhd new file mode 100644 index 0000000..734485e --- /dev/null +++ b/Libs/Common/hdl/debouncerULogicVector_RTL.vhd @@ -0,0 +1,97 @@ +-- filename: debouncer.vhd +-- kind: vhdl file +-- first created: 05.03.2012 +-- created by: zas +-------------------------------------------------------------------------------- +-- History: +-- v0.1 : zas 05.03.2012 -- Initial Version +-- v0.2 : cof 22.01.2013 -- synchronization to clock +-------------------------------------------------------------------------------- +-- Description: +-- Debounces a button on both edges. +-- _ _ ____________________ _ _ +-- input ____/ \_/ \_/ \_/ \_/ \______ +-- _____________________________ +-- output _____/ \____________ +-- +-------------------------------------------------------------------------------- + +ARCHITECTURE rtl OF debouncerULogicVector IS + + signal inputNormal : std_ulogic_vector(input'range); + signal inputSynch, inputDelayed, inputChanged : std_ulogic; + signal debounceCounter : unsigned(counterBitNb-1 downto 0); + +BEGIN + ------------------------------------------------------------------------------ + -- adapt polarity + adaptPolarity: process(input) + begin + for index in input'range loop + inputNormal(index) <= input(index) xor invertInput; + end loop; + end process adaptPolarity; + + ------------------------------------------------------------------------------ + -- Synchronize input to clock + synchInput: process(reset, clock) + variable inputOr : std_ulogic; + begin + if reset = '1' then + inputSynch <= '0'; + elsif rising_edge(clock) then + inputOr := '0'; + for index in input'range loop + inputOr := inputOr or inputNormal(index); + end loop; + inputSynch <= inputOr; + end if; + end process synchInput; + + ------------------------------------------------------------------------------ + -- Find edge on input + delayInput: process(reset, clock) + begin + if reset = '1' then + inputDelayed <= '0'; + elsif rising_edge(clock) then + inputDelayed <= inputSynch; + end if; + end process delayInput; + + inputChanged <= '1' when inputDelayed /= inputSynch + else '0'; + + ------------------------------------------------------------------------------ + -- Debounce counter + countDeadTime: process(reset, clock) + begin + if reset = '1' then + debounceCounter <= (others => '0'); + elsif rising_edge(clock) then + if debounceCounter = 0 then + if inputChanged = '1' then + debounceCounter <= debounceCounter - 1; + end if; + else + debounceCounter <= debounceCounter - 1; + end if; + end if; + end process countDeadTime; + + ------------------------------------------------------------------------------ + -- Update output + updateOutput: process(reset, clock) + begin + if reset = '1' then + debounced <= (others => '0'); + elsif rising_edge(clock) then + if (inputChanged = '1') and (debounceCounter = 0) then + debounced <= inputNormal; + elsif debounceCounter = 1 then + debounced <= inputNormal; + end if; + end if; + end process updateOutput; + +END ARCHITECTURE rtl; diff --git a/Libs/Common/hdl/debouncer_RTL.vhd b/Libs/Common/hdl/debouncer_RTL.vhd new file mode 100644 index 0000000..a74c383 --- /dev/null +++ b/Libs/Common/hdl/debouncer_RTL.vhd @@ -0,0 +1,83 @@ +-- filename: debouncer.vhd +-- kind: vhdl file +-- first created: 05.03.2012 +-- created by: zas +-------------------------------------------------------------------------------- +-- History: +-- v0.1 : zas 05.03.2012 -- Initial Version +-- v0.2 : cof 22.01.2013 -- synchronization to clock +-- -- direct reaction on both edges +-------------------------------------------------------------------------------- +-- Description: +-- Debounces a button on both edges. +-- _ _ ____________________ _ _ +-- input ____/ \_/ \_/ \_/ \_/ \______ +-- _____________________________ +-- output _____/ \____________ +-- +-------------------------------------------------------------------------------- + +ARCHITECTURE rtl OF debouncer IS + + signal debounceCounter : unsigned(counterBitNb-1 downto 0); + signal inputSynch, inputDelayed, inputChanged : std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- Synchronize input to clock + synchInput: process(reset, clock) + begin + if reset = '1' then + inputSynch <= '0'; + elsif rising_edge(clock) then + inputSynch <= input xor invertInput; + end if; + end process synchInput; + + ------------------------------------------------------------------------------ + -- Find edge on input + delayInput: process(reset, clock) + begin + if reset = '1' then + inputDelayed <= '0'; + elsif rising_edge(clock) then + inputDelayed <= inputSynch; + end if; + end process delayInput; + + inputChanged <= '1' when inputDelayed /= inputSynch + else '0'; + + ------------------------------------------------------------------------------ + -- Debounce counter + countDeadTime: process(reset, clock) + begin + if reset = '1' then + debounceCounter <= (others => '0'); + elsif rising_edge(clock) then + if debounceCounter = 0 then + if inputChanged = '1' then + debounceCounter <= debounceCounter - 1; + end if; + else + debounceCounter <= debounceCounter - 1; + end if; + end if; + end process countDeadTime; + + ------------------------------------------------------------------------------ + -- Update output + updateOutput: process(reset, clock) + begin + if reset = '1' then + debounced <= '0'; + elsif rising_edge(clock) then + if (inputChanged = '1') and (debounceCounter = 0) then + debounced <= input; + elsif debounceCounter = 1 then + debounced <= input; + end if; + end if; + end process updateOutput; + +END ARCHITECTURE rtl; diff --git a/Libs/Common/hdl/edgeDetector_rtl.vhd b/Libs/Common/hdl/edgeDetector_rtl.vhd new file mode 100644 index 0000000..a9ae99a --- /dev/null +++ b/Libs/Common/hdl/edgeDetector_rtl.vhd @@ -0,0 +1,48 @@ +-------------------------------------------------------------------------------- +-- Copyright 2014 HES-SO Valais Wallis (www.hevs.ch) +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program IS distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- You should have received a copy of the GNU General Public License along with +-- this program. If not, see +-------------------------------------------------------------------------------- +-- EdgeDetector +-- Detect rising and falling edges of a signal. +-- +-------------------------------------------------------------------------------- +-- History: +-- v0.1 : guo 2014-04-02 -- Initial version +-- v1.0 : cof 2019-10-02 -- Updated symbol +-------------------------------------------------------------------------------- +ARCHITECTURE RTL OF edgeDetector IS + + SIGNAL pulse_delayed : std_ulogic; + SIGNAL rising_detected_s : std_ulogic; + SIGNAL falling_detected_s : std_ulogic; + +BEGIN + + -- delay pulse + reg : PROCESS (reset, clock) + BEGIN + IF reset = '1' THEN + pulse_delayed <= '0'; + ELSIF rising_edge(clock) THEN + pulse_delayed <= pulse; + END IF; + END PROCESS reg ; + + -- edge detection + rising <= '1' when (pulse = '1') and (pulse_delayed = '0') + else '0'; + falling <= '1' when (pulse = '0') and (pulse_delayed = '1') + else '0'; + +END ARCHITECTURE RTL; diff --git a/Libs/Common/hdl/rotaryToUnsigned_rtl.vhd b/Libs/Common/hdl/rotaryToUnsigned_rtl.vhd new file mode 100644 index 0000000..8f1a378 --- /dev/null +++ b/Libs/Common/hdl/rotaryToUnsigned_rtl.vhd @@ -0,0 +1,76 @@ +ARCHITECTURE rtl OF rotaryToUnsigned IS + + signal rotaryDelayed1, rotaryDelayed2, rotaryStable : unsigned(rotary'range); + signal rotary_changed : std_ulogic; + signal glitchDelayCounter : unsigned(counterBitNb-1 downto 0); + signal rotaryStableDelayed : unsigned(rotary'range); + signal numberMsbs : unsigned(number'length-rotary'length-1 downto 0); + +BEGIN + ------------------------------------------------------------------------------ + -- synchronize input and detect changes + delayRotary: process(reset, clock) + begin + if reset = '1' then + rotaryDelayed1 <= (others => '0'); + rotaryDelayed2 <= (others => '0'); + elsif rising_edge(clock) then + rotaryDelayed1 <= rotary; + rotaryDelayed2 <= rotaryDelayed1; + end if; + end process delayRotary; + + rotary_changed <= '1' when rotaryDelayed1 /= rotaryDelayed2 + else '0'; + -- count dead time + countDeadTime: process(reset, clock) + begin + if reset = '1' then + glitchDelayCounter <= (others => '1'); + elsif rising_edge(clock) then + if rotary_changed = '1' then + glitchDelayCounter <= (others => '1'); + elsif glitchDelayCounter > 0 then + glitchDelayCounter <= glitchDelayCounter - 1; + end if; + end if; + end process countDeadTime; + -- store new rotary button value + storeRotary: process(reset, clock) + begin + if reset = '1' then + rotaryStable <= (others => '0'); + elsif rising_edge(clock) then + if glitchDelayCounter = 0 then + rotaryStable <= rotaryDelayed2; + end if; + end if; + end process storeRotary; + + ------------------------------------------------------------------------------ + -- keep previous value of stablilzed rotary + delayRotaryStable: process(reset, clock) + begin + if reset = '1' then + rotaryStableDelayed <= (others => '0'); + elsif rising_edge(clock) then + rotaryStableDelayed <= rotaryStable; + end if; + end process delayRotaryStable; + -- synchronize input and detect changes + updateMsbs: process(reset, clock) + begin + if reset = '1' then + numberMsbs <= (others => '0'); + elsif rising_edge(clock) then + if (rotaryStable = 0) and (rotaryStableDelayed+1 = 0) then + numberMsbs <= numberMsbs + 1; + elsif (rotaryStable+1 = 0) and (rotaryStableDelayed = 0) then + numberMsbs <= numberMsbs - 1; + end if; + end if; + end process updateMsbs; + + number <= numberMsbs & rotaryStableDelayed; + +END ARCHITECTURE rtl; diff --git a/Libs/Common/hdl/spikeFilter_RTL.vhd b/Libs/Common/hdl/spikeFilter_RTL.vhd new file mode 100644 index 0000000..b176aa8 --- /dev/null +++ b/Libs/Common/hdl/spikeFilter_RTL.vhd @@ -0,0 +1,82 @@ +-------------------------------------------------------------------------------- +-- Description: +-- Filters short time spikes. +-- _ _ ____________________ _ _ +-- input ____/ \_/ \_/ \_/ \_/ \_________________ +-- _____________________________ +-- output ________________/ \____________ +-- +-------------------------------------------------------------------------------- + +ARCHITECTURE rtl OF spikeFilter IS + + signal filterCounter : unsigned(counterBitNb-1 downto 0); + signal inputSynch, inputDelayed, inputChanged : std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- Synchronize input to clock + synchInput: process(reset, clock) + begin + if reset = '1' then + inputSynch <= '0'; + elsif rising_edge(clock) then + inputSynch <= input xor invertInput; + end if; + end process synchInput; + + ------------------------------------------------------------------------------ + -- Find edge on input + delayInput: process(reset, clock) + begin + if reset = '1' then + inputDelayed <= '0'; + elsif rising_edge(clock) then + inputDelayed <= inputSynch; + end if; + end process delayInput; + + inputChanged <= '1' when inputDelayed /= inputSynch + else '0'; + + ------------------------------------------------------------------------------ + -- Debounce counter + countDeadTime: process(reset, clock) + begin + if reset = '1' then + filterCounter <= (others => '0'); + elsif rising_edge(clock) then + if filterCounter = 0 then + if inputChanged = '1' then + filterCounter <= filterCounter + 1; + end if; + elsif signed(filterCounter)+1 = 0 then + if inputChanged = '1' then + filterCounter <= filterCounter - 1; + end if; + else + if inputSynch = '0' then + filterCounter <= filterCounter - 1; + else + filterCounter <= filterCounter + 1; + end if; + end if; + end if; + end process countDeadTime; + + ------------------------------------------------------------------------------ + -- Update output + updateOutput: process(reset, clock) + begin + if reset = '1' then + filtered <= '0'; + elsif rising_edge(clock) then + if filterCounter = 0 then + filtered <= '0'; + elsif signed(filterCounter)+1 = 0 then + filtered <= '1'; + end if; + end if; + end process updateOutput; + +END ARCHITECTURE rtl; diff --git a/Libs/Common/hdl/toggler_RTL.vhd b/Libs/Common/hdl/toggler_RTL.vhd new file mode 100644 index 0000000..1b47128 --- /dev/null +++ b/Libs/Common/hdl/toggler_RTL.vhd @@ -0,0 +1,90 @@ +-- filename: toggler.vhd +-- kind: vhdl file +-- first created: 05.03.2012 +-- created by: zas +-------------------------------------------------------------------------------- +-- History: +-- v0.1 : cof 22.01.2013 -- Initial version +-------------------------------------------------------------------------------- +-- Description: +-- Debounces a button on both edges. +-- _ _ +-- input ____/ \__________________________/ \____________ +-- _____________________________ +-- output _____/ \____________ +-- +-- If the generic "counterBitNb" is greater than zero, a debouncer is placed on +-- the input signal. +-- +-------------------------------------------------------------------------------- + +ARCHITECTURE rtl OF toggler IS + + signal inputDebounced : std_ulogic; + signal inputDelayed, inputChangedTo1 : std_ulogic; + signal toggle_int : std_ulogic; + + COMPONENT debouncer + GENERIC ( + counterBitNb : positive := 18; + invertInput : std_ulogic := '0' + ); + PORT ( + reset : IN std_ulogic ; + clock : IN std_ulogic ; + input : IN std_ulogic ; + debounced : OUT std_ulogic + ); + END COMPONENT; + +BEGIN + ------------------------------------------------------------------------------ + -- Debounce input + useInputDirectly: if counterBitNb = 0 generate + inputDebounced <= input; + end generate useInputDirectly; + + debounceInput: if counterBitNb > 0 generate + I_debouncer : debouncer + GENERIC MAP ( + counterBitNb => counterBitNb, + invertInput => invertInput + ) + PORT MAP ( + reset => reset, + clock => clock, + input => input, + debounced => inputDebounced + ); + end generate debounceInput; + + ------------------------------------------------------------------------------ + -- Find edge on input + delayInput: process(reset, clock) + begin + if reset = '1' then + inputDelayed <= '0'; + elsif rising_edge(clock) then + inputDelayed <= inputDebounced; + end if; + end process delayInput; + + inputChangedTo1 <= '1' when (inputDebounced = '1') and (inputDelayed = '0') + else '0'; + + ------------------------------------------------------------------------------ + -- Toggle output + toggleOutput: process(reset, clock) + begin + if reset = '1' then + toggle_int <= '0'; + elsif rising_edge(clock) then + if inputChangedTo1 = '1' then + toggle_int <= not toggle_int; + end if; + end if; + end process toggleOutput; + + toggle <= toggle_int; + +END ARCHITECTURE rtl; diff --git a/Libs/Common/hds/.hdlsidedata/_blinker_arch.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_blinker_arch.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_blinker_arch.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_blinker_entity.vhg._fpf b/Libs/Common/hds/.hdlsidedata/_blinker_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_blinker_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_commonLib.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_commonLib.vhd._fpf new file mode 100644 index 0000000..2acce3d --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_commonLib.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_87 diff --git a/Libs/Common/hds/.hdlsidedata/_commonLib_body.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_commonLib_body.vhd._fpf new file mode 100644 index 0000000..2acce3d --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_commonLib_body.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_87 diff --git a/Libs/Common/hds/.hdlsidedata/_debounce_rtl.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_debounce_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_debounce_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Common/hds/.hdlsidedata/_debouncerULogicVector_RTL.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_debouncerULogicVector_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_debouncerULogicVector_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_debouncer_RTL.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_debouncer_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_debouncer_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_debouncer_entity.vhg._fpf b/Libs/Common/hds/.hdlsidedata/_debouncer_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_debouncer_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhg._fpf b/Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_debouncerulogicvector_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_edgeDetector_rtl.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_edgeDetector_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_edgeDetector_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_edgedetector_entity.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_edgedetector_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_edgedetector_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_rotaryToUnsigned_rtl.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_rotaryToUnsigned_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_rotaryToUnsigned_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_rotarytounsigned_entity.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_rotarytounsigned_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_rotarytounsigned_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_spikeFilter_RTL.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_spikeFilter_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_spikeFilter_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhg._fpf b/Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_spikefilter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_toggler_RTL.vhd._fpf b/Libs/Common/hds/.hdlsidedata/_toggler_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_toggler_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/.hdlsidedata/_toggler_entity.vhg._fpf b/Libs/Common/hds/.hdlsidedata/_toggler_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common/hds/.hdlsidedata/_toggler_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common/hds/_blinker._epf b/Libs/Common/hds/_blinker._epf new file mode 100644 index 0000000..87ea3e1 --- /dev/null +++ b/Libs/Common/hds/_blinker._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom arch +DEFAULT_FILE atom blinker_arch.vhd diff --git a/Libs/Common/hds/_debounce._epf b/Libs/Common/hds/_debounce._epf new file mode 100644 index 0000000..ec8784d --- /dev/null +++ b/Libs/Common/hds/_debounce._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom debounce_rtl.vhd diff --git a/Libs/Common/hds/_debouncer._epf b/Libs/Common/hds/_debouncer._epf new file mode 100644 index 0000000..641b0cc --- /dev/null +++ b/Libs/Common/hds/_debouncer._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom debouncer_RTL.vhd +DEFAULT_ARCHITECTURE atom rtl diff --git a/Libs/Common/hds/_edgedetector._epf b/Libs/Common/hds/_edgedetector._epf new file mode 100755 index 0000000..218e0ce --- /dev/null +++ b/Libs/Common/hds/_edgedetector._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom edgeDetector_rtl.vhd diff --git a/Libs/Common/hds/_rotarytounsigned._epf b/Libs/Common/hds/_rotarytounsigned._epf new file mode 100755 index 0000000..7c92a28 --- /dev/null +++ b/Libs/Common/hds/_rotarytounsigned._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom rotaryToUnsigned_rtl.vhd +DEFAULT_ARCHITECTURE atom rtl diff --git a/Libs/Common/hds/_toggler._epf b/Libs/Common/hds/_toggler._epf new file mode 100644 index 0000000..ee14298 --- /dev/null +++ b/Libs/Common/hds/_toggler._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom toggler_RTL.vhd +DEFAULT_ARCHITECTURE atom rtl diff --git a/Libs/Common/hds/blinker/symbol.sb b/Libs/Common/hds/blinker/symbol.sb new file mode 100644 index 0000000..887db7c --- /dev/null +++ b/Libs/Common/hds/blinker/symbol.sb @@ -0,0 +1,1557 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +(DmPackageRef +library "Common" +unitName "CommonLib" +) +] +libraryRefs [ +"ieee" +"Common" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 108,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 110,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "blink" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 112,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 133,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 109,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 111,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 113,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 134,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "clockFrequency" +type "positive" +value "106e6" +e "in Hz" +) +uid 131,0 +) +*48 (LogGeneric +generic (GiElement +name "mode" +type "integer" +value "0" +) +uid 165,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 96,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 132,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 166,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/blinker/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/blinker/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/blinker" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/blinker" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "blinker" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:32" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "blinker" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/blinker/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/blinker/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:32" +) +(vvPair +variable "unit" +value "blinker" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,9625,15000,10375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "16000,9500,18100,10500" +st "clock" +blo "16000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,58500,2900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*65 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,7625,15000,8375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "16000,7500,17200,8500" +st "en" +blo "16000,8300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,58500,3800" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2,0 +) +) +) +*66 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,7625,23750,8375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "20100,7500,22000,8500" +st "blink" +ju 2 +blo "22000,8300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,57500,5600" +st "blink : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "blink" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*67 (CptPort +uid 135,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 136,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 137,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 138,0 +va (VaSet +) +xt "16000,10500,18100,11500" +st "reset" +blo "16000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 139,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,58500,4700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,23000,13000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "15200,13000,18200,13900" +st "Common" +blo "15200,13700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "15200,13900,18700,14800" +st "blinker" +blo "15200,14600" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "15000,15600,34500,19200" +st "Generic Declarations + +clockFrequency positive 106e6 --in Hz +mode integer 0 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "positive" +value "106e6" +e "in Hz" +) +(GiElement +name "mode" +type "integer" +value "0" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,49400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*82 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17400,7000" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.NUMERIC_STD.all; + +LIBRARY Common; +USE Common.CommonLib.all;" +tm "PackageList" +) +] +) +windowSize "36,125,1057,815" +viewArea "8116,4374,35400,22781" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,5600,44500,6500" +st "User:" +blo "42000,6300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,44000,6500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 281,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/debounce/symbol.sb b/Libs/Common/hds/debounce/symbol.sb new file mode 100644 index 0000000..8f40635 --- /dev/null +++ b/Libs/Common/hds/debounce/symbol.sb @@ -0,0 +1,1586 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 108,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 110,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 112,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 114,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 109,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 111,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 113,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 115,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "g_debounceTime" +type "time" +value "10 us" +) +uid 140,0 +) +*48 (LogGeneric +generic (GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "10" +) +uid 211,0 +) +*49 (LogGeneric +generic (GiElement +name "g_clockFrequency" +type "real" +value "60.0e6" +) +uid 213,0 +) +*50 (LogGeneric +generic (GiElement +name "g_activeState" +type "std_ulogic" +value "'1'" +) +uid 238,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &35 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*53 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*54 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*55 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*56 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 141,0 +) +*57 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 212,0 +) +*58 (MRCItem +litem &49 +pos 2 +dimension 20 +uid 214,0 +) +*59 (MRCItem +litem &50 +pos 3 +dimension 20 +uid 239,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*60 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*61 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*62 (MRCItem +litem &42 +pos 2 +dimension 168 +uid 103,0 +) +*63 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*64 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*65 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*66 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds\\debounce\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds\\debounce\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds\\debounce" +) +(vvPair +variable "d_logical" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds\\debounce" +) +(vvPair +variable "date" +value "19.01.2024" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "entity_name" +value "debounce" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "19.01.2024" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "10:33:49" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Common/work" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "debounce" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds\\debounce\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common\\hds\\debounce\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "10:33:49" +) +(vvPair +variable "unit" +value "debounce" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2024" +) +(vvPair +variable "yy" +value "24" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,3625,31000,4375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "32000,3400,35400,4600" +st "clock" +blo "32000,4400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,9200,19500,10000" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*69 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,5625,31000,6375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "32000,5400,35300,6600" +st "reset" +blo "32000,6400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,10000,19500,10800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*70 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,1625,31000,2375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "32000,1400,35200,2600" +st "input" +blo "32000,2400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,10800,19500,11600" +st "input : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*71 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,1625,43750,2375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +) +xt "35900,1400,42000,2600" +st "debounced" +ju 2 +blo "42000,2400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11600,18500,12400" +st "debounced : OUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,1000,43000,9000" +) +oxt "20000,2000,30000,12000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "36300,4800,40900,5800" +st "Common" +blo "36300,5600" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "36300,5800,41400,6800" +st "debounce" +blo "36300,6600" +) +) +gi *72 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "31000,9200,56000,14000" +st "Generic Declarations + +g_debounceTime time 10 us +g_minConsecutiveStateCount positive 10 +g_clockFrequency real 60.0e6 +g_activeState std_ulogic '1' " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_debounceTime" +type "time" +value "10 us" +) +(GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "10" +) +(GiElement +name "g_clockFrequency" +type "real" +value "60.0e6" +) +(GiElement +name "g_activeState" +type "std_ulogic" +value "'1'" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +) +) +*73 (Grouping +uid 16,0 +optionalChildren [ +*74 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "6000,30000,23000,31000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "6200,30000,17900,31000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "23000,26000,27000,27000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "23200,26000,26200,27000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "6000,28000,23000,29000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "6200,28000,16200,29000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "2000,28000,6000,29000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "2200,28000,4300,29000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "23000,27000,43000,31000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "23200,27200,32600,28200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,26000,43000,27000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "27200,26000,28800,27000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "2000,26000,23000,28000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "7350,26400,17650,27600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "2000,29000,6000,30000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "2200,29000,4300,30000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "2000,30000,6000,31000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "2200,30000,4900,31000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "6000,29000,23000,30000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "6200,29000,16700,30000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "2000,26000,43000,31000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *84 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,1000,7600,2200" +st "Package List" +blo "0,2000" +) +*86 (MLText +uid 50,0 +va (VaSet +) +xt "0,2200,17500,5800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-1928,-8,8,1040" +viewArea "-16899,-3457,47814,31400" +cachedDiagramExtent "0,1000,56000,31000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *87 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *88 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,6800,7400,8000" +st "Declarations" +blo "0,7800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,8000,3700,9200" +st "Ports:" +blo "0,9000" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,12400,3200,13600" +st "User:" +blo "0,13400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "0,6800,8200,8000" +st "Internal User:" +blo "0,7800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13600,2000,13600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,6800,0,6800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 400,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/debouncer/symbol.sb b/Libs/Common/hds/debouncer/symbol.sb new file mode 100644 index 0000000..b4c91e8 --- /dev/null +++ b/Libs/Common/hds/debouncer/symbol.sb @@ -0,0 +1,1552 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 115,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 114,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "18" +) +uid 159,0 +) +*48 (LogGeneric +generic (GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +uid 267,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 96,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 160,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 268,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "debouncer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:38" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncer" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:38" +) +(vvPair +variable "unit" +value "debouncer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "41000,16500,43100,17500" +st "clock" +blo "41000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,18500,10700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,12625,40000,13375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "41000,12500,43000,13500" +st "input" +blo "41000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,18500,11600" +st "input : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,18625,40000,19375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "41000,18500,43100,19500" +st "reset" +blo "41000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,18500,12500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,12625,56750,13375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +) +xt "51000,12500,55000,13500" +st "debounced" +ju 2 +blo "55000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,17500,13400" +st "debounced : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,9000,56000,21000" +) +oxt "15000,6000,33000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "40200,21000,43200,21900" +st "Common" +blo "40200,21700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "40200,21900,44700,22800" +st "debouncer" +blo "40200,22600" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,23800,55200,27400" +st "Generic Declarations + +counterBitNb positive 18 +invertInput std_ulogic '0' " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "18" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*82 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17400,4000" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "109,49,1395,892" +viewArea "-1000,-1000,74757,48771" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7800,5400,8800" +st "Declarations" +blo "0,8600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8800,2700,9800" +st "Ports:" +blo "0,9600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13400,2500,14300" +st "User:" +blo "0,14100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7800,5800,8800" +st "Internal User:" +blo "0,8600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14300,2000,14300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7800,0,7800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 291,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/debouncer@u@logic@vector/symbol.sb b/Libs/Common/hds/debouncer@u@logic@vector/symbol.sb new file mode 100644 index 0000000..f11db1c --- /dev/null +++ b/Libs/Common/hds/debouncer@u@logic@vector/symbol.sb @@ -0,0 +1,1576 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 to inputBitNb)" +o 2 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 to inputBitNb)" +o 4 +suid 4,0 +) +) +uid 115,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 114,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "18" +) +uid 159,0 +) +*48 (LogGeneric +generic (GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +uid 267,0 +) +*49 (LogGeneric +generic (GiElement +name "inputBitNb" +type "positive" +value "8" +) +uid 292,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*52 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*53 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*54 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*55 (MRCItem +litem &47 +pos 1 +dimension 20 +uid 160,0 +) +*56 (MRCItem +litem &48 +pos 2 +dimension 20 +uid 268,0 +) +*57 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 293,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*58 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*59 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*60 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*61 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*62 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*63 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*64 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer@u@logic@vector/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer@u@logic@vector/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer@u@logic@vector" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncerULogicVector" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "debouncerULogicVector" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:38" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncerULogicVector" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncer@u@logic@vector/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/debouncerULogicVector/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:38" +) +(vvPair +variable "unit" +value "debouncerULogicVector" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "41000,16500,43100,17500" +st "clock" +blo "41000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,18500,10700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,12625,40000,13375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "41000,12500,43000,13500" +st "input" +blo "41000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,30500,11600" +st "input : IN std_ulogic_vector (1 to inputBitNb) ;" +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 to inputBitNb)" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,18625,40000,19375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "41000,18500,43100,19500" +st "reset" +blo "41000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,18500,12500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*69 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,12625,56750,13375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +) +xt "51000,12500,55000,13500" +st "debounced" +ju 2 +blo "55000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,29500,13400" +st "debounced : OUT std_ulogic_vector (1 to inputBitNb)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 to inputBitNb)" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,9000,56000,21000" +) +oxt "15000,6000,33000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "40200,21000,43200,21900" +st "Common" +blo "40200,21700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "40200,21900,51200,22800" +st "debouncerULogicVector" +blo "40200,22600" +) +) +gi *70 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,23800,55200,28300" +st "Generic Declarations + +inputBitNb positive 8 +counterBitNb positive 18 +invertInput std_ulogic '0' " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "8" +) +(GiElement +name "counterBitNb" +type "positive" +value "18" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +) +) +*71 (Grouping +uid 16,0 +optionalChildren [ +*72 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *82 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*84 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17400,4000" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "109,49,1396,892" +viewArea "-1000,-1000,74828,48771" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *85 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *86 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7800,5400,8800" +st "Declarations" +blo "0,8600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8800,2700,9800" +st "Ports:" +blo "0,9600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13400,2500,14300" +st "User:" +blo "0,14100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7800,5800,8800" +st "Internal User:" +blo "0,8600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14300,2000,14300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7800,0,7800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 316,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/edge@detector/symbol.sb b/Libs/Common/hds/edge@detector/symbol.sb new file mode 100644 index 0000000..b626737 --- /dev/null +++ b/Libs/Common/hds/edge@detector/symbol.sb @@ -0,0 +1,1647 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2005,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 191,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "pulse" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 192,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rising" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 193,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 194,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 195,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "falling" +t "std_ulogic" +o 5 +suid 2005,0 +) +) +uid 405,0 +) +] +) +pdm (PhysicalDM +uid 196,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 135,0 +optionalChildren [ +*21 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 138,0 +) +*22 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 140,0 +) +*23 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 142,0 +) +*24 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 161,0 +) +*25 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 162,0 +) +*26 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 163,0 +) +*27 (MRCItem +litem &5 +pos 1 +dimension 20 +uid 164,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 406,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 136,0 +optionalChildren [ +*29 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 144,0 +) +*30 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 148,0 +) +*31 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 150,0 +) +*32 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 152,0 +) +*33 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 154,0 +) +*34 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 156,0 +) +*35 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 158,0 +) +*36 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 160,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 134,0 +vaOverrides [ +] +) +] +) +uid 190,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 198,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 199,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &37 +pos 0 +dimension 20 +) +uid 166,0 +optionalChildren [ +*51 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 169,0 +) +*52 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 171,0 +) +*53 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 173,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 167,0 +optionalChildren [ +*54 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 175,0 +) +*55 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 179,0 +) +*56 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 181,0 +) +*57 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 183,0 +) +*58 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 185,0 +) +*59 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 187,0 +) +*60 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 189,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 197,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds/edge@detector/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds/edge@detector/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds/edge@detector" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds/edgeDetector" +) +(vvPair +variable "date" +value "10/02/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "02" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "edgeDetector" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "10/02/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "17:10:33" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\users\\syslo\\dcf\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/Common/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "edgeDetector" +) +(vvPair +variable "month" +value "Oct" +) +(vvPair +variable "month_long" +value "October" +) +(vvPair +variable "p" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds/edge@detector/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN-support/Libs/Common/hds/edgeDetector/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_ActelUserPath" +value "$HDS_PROJECT_DIR\\..\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:10:33" +) +(vvPair +variable "unit" +value "edgeDetector" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 66,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 113,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,15625,24000,16375" +) +tg (CPTG +uid 114,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 115,0 +va (VaSet +font "courier,12,0" +) +xt "25000,15300,28500,16600" +st "clock" +blo "25000,16300" +tm "CptPortNameMgr" +) +s (Text +uid 395,0 +va (VaSet +font "courier,12,0" +) +xt "25000,16600,25000,16600" +blo "25000,16600" +tm "CptPortTypeMgr" +) +) +dt (MLText +uid 116,0 +va (VaSet +font "courier,8,0" +) +xt "-9000,11600,6500,12500" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 117,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 118,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40000,11625,40750,12375" +) +tg (CPTG +uid 119,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 120,0 +va (VaSet +font "courier,12,0" +) +xt "34800,11300,39000,12600" +st "rising" +ju 2 +blo "39000,12300" +tm "CptPortNameMgr" +) +s (Text +uid 396,0 +va (VaSet +font "courier,12,0" +) +xt "39000,12600,39000,12600" +ju 2 +blo "39000,12600" +tm "CptPortTypeMgr" +) +) +dt (MLText +uid 121,0 +va (VaSet +font "courier,8,0" +) +xt "-9000,15200,5500,16100" +st "rising : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "rising" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*64 (CptPort +uid 122,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 123,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,17625,24000,18375" +) +tg (CPTG +uid 124,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 125,0 +va (VaSet +font "courier,12,0" +) +xt "25000,17300,28500,18600" +st "reset" +blo "25000,18300" +tm "CptPortNameMgr" +) +s (Text +uid 397,0 +va (VaSet +font "courier,12,0" +) +xt "25000,18600,25000,18600" +blo "25000,18600" +tm "CptPortTypeMgr" +) +) +dt (MLText +uid 126,0 +va (VaSet +font "courier,8,0" +) +xt "-9000,13400,6500,14300" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*65 (CptPort +uid 129,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,11625,24000,12375" +) +tg (CPTG +uid 131,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 132,0 +va (VaSet +font "courier,12,0" +) +xt "25000,11350,28500,12650" +st "pulse" +blo "25000,12350" +tm "CptPortNameMgr" +) +s (Text +uid 398,0 +va (VaSet +font "courier,12,0" +) +xt "25000,12650,25000,12650" +blo "25000,12650" +tm "CptPortTypeMgr" +) +) +dt (MLText +uid 133,0 +va (VaSet +font "courier,8,0" +) +xt "-9000,12500,6500,13400" +st "pulse : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "pulse" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*66 (CptPort +uid 399,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 400,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40000,13625,40750,14375" +) +tg (CPTG +uid 401,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 402,0 +va (VaSet +font "courier,12,0" +) +xt "34100,13350,39000,14650" +st "falling" +ju 2 +blo "39000,14350" +tm "CptPortNameMgr" +) +s (Text +uid 403,0 +va (VaSet +font "courier,12,0" +) +xt "39000,14650,39000,14650" +ju 2 +blo "39000,14650" +tm "CptPortTypeMgr" +) +) +dt (MLText +uid 404,0 +va (VaSet +font "courier,8,0" +) +xt "-9000,14300,6500,15200" +st "falling : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "falling" +t "std_ulogic" +o 5 +suid 2005,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32768,0" +lineWidth 2 +) +xt "24000,8000,40000,20000" +) +oxt "15000,6000,23000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "24300,20400,27900,21400" +st "Common" +blo "24300,21200" +) +second (Text +uid 12,0 +va (VaSet +) +xt "24300,21400,32100,22400" +st "edgeDetector" +blo "24300,22200" +) +) +gi *67 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +) +xt "24000,23400,36600,24400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +disp 1 +sTC 0 +sF 0 +) +portVis (PortSigDisplay +disp 1 +sTC 0 +sF 0 +) +) +*68 (Grouping +uid 223,0 +optionalChildren [ +*69 (CommentText +uid 225,0 +shape (Rectangle +uid 226,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "25000,48000,42000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 227,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "25200,48000,41400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 228,0 +shape (Rectangle +uid 229,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "42000,44000,46000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 230,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "42200,44000,45800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 231,0 +shape (Rectangle +uid 232,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "25000,46000,42000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 233,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "25200,46000,41400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 234,0 +shape (Rectangle +uid 235,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,46000,25000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 236,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "21200,46000,24800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 237,0 +shape (Rectangle +uid 238,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "42000,45000,62000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 239,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "42200,45200,55400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 240,0 +shape (Rectangle +uid 241,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "46000,44000,62000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 242,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "46200,44000,48000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 243,0 +shape (Rectangle +uid 244,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,44000,42000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 245,0 +va (VaSet +fg "32768,0,0" +) +xt "27000,44500,36000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 246,0 +shape (Rectangle +uid 247,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,47000,25000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 248,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "21200,47000,24200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 249,0 +shape (Rectangle +uid 250,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "21000,48000,25000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 251,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "21200,48000,24800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 252,0 +shape (Rectangle +uid 253,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "25000,47000,42000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 254,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "25200,47000,41400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 224,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "21000,44000,62000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *79 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 127,0 +va (VaSet +font "courier,12,1" +) +xt "-11000,0,-2200,1500" +st "Package List" +blo "-11000,1200" +) +*81 (MLText +uid 128,0 +va (VaSet +font "courier,12,0" +) +xt "-11000,1500,10700,4100" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "59,4,1688,1058" +viewArea "-12000,-1100,58300,44500" +cachedDiagramExtent "-11000,0,62000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +bg "65280,65280,65280" +lineColor "0,16384,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,16384,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32768,0" +lineWidth 2 +) +xt "15000,6000,51000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,1" +) +xt "30500,14400,35500,15900" +st "" +blo "30500,15600" +) +second (Text +va (VaSet +font "courier,12,1" +) +xt "30500,15900,33900,17400" +st "" +blo "30500,17100" +) +) +gi *82 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *83 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "-11000,9200,-3600,10400" +st "Declarations" +blo "-11000,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "-11000,10400,-7500,11600" +st "Ports:" +blo "-11000,11400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "-11000,16100,-8000,17100" +st "User:" +blo "-11000,16900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-11000,9200,-3200,10400" +st "Internal User:" +blo "-11000,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "-9000,17100,-9000,17100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-11000,9200,-11000,9200" +tm "SyDeclarativeTextMgr" +) +) +lastUid 429,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/rotary@to@unsigned/symbol.sb b/Libs/Common/hds/rotary@to@unsigned/symbol.sb new file mode 100644 index 0000000..b6c30d8 --- /dev/null +++ b/Libs/Common/hds/rotary@to@unsigned/symbol.sb @@ -0,0 +1,1602 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 10,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 1,0 +) +) +uid 158,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 4 +suid 2,0 +) +) +uid 160,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 162,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 9,0 +) +) +uid 174,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 159,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 161,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 163,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 175,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "rotaryBitNb" +type "positive" +value "4" +) +uid 225,0 +) +*48 (LogGeneric +generic (GiElement +name "outputBitNb" +type "positive" +value "8" +) +uid 227,0 +) +*49 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "10E3" +) +uid 436,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*52 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*53 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*54 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*55 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 226,0 +) +*56 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 228,0 +) +*57 (MRCItem +litem &49 +pos 2 +dimension 20 +uid 437,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*58 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*59 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*60 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*61 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*62 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*63 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*64 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds/rotary@to@unsigned/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds/rotary@to@unsigned/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds/rotary@to@unsigned" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds/rotaryToUnsigned" +) +(vvPair +variable "date" +value "11/07/19" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "entity_name" +value "rotaryToUnsigned" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "11/07/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:19:40" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR\\..\\Sinewave\\concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/Common/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "rotaryToUnsigned" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds/rotary@to@unsigned/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common/hds/rotaryToUnsigned/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_HOME\\ISE\\bin\\nt" +) +(vvPair +variable "task_ISEProjectPath" +value "$SCRATCH_DIR\\Support\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:19:40" +) +(vvPair +variable "unit" +value "rotaryToUnsigned" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42000,19625,42750,20375" +) +tg (CPTG +uid 110,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 111,0 +va (VaSet +) +xt "37400,19500,41000,20500" +st "number" +ju 2 +blo "41000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 112,0 +va (VaSet +font "courier,8,0" +) +xt "-13000,8900,13000,9800" +st "number : OUT unsigned (outputBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 1,0 +) +) +) +*67 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 114,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25250,19625,26000,20375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +) +xt "27000,19500,30600,20500" +st "rotary" +blo "27000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "-13000,9800,12000,10700" +st "rotary : IN unsigned (rotaryBitNb-1 downto 0)" +) +thePort (LogicalPort +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 4 +suid 2,0 +) +) +) +*68 (CptPort +uid 118,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25250,23625,26000,24375" +) +tg (CPTG +uid 120,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 121,0 +va (VaSet +) +xt "27000,23500,30000,24500" +st "clock" +blo "27000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 122,0 +va (VaSet +font "courier,8,0" +) +xt "-13000,7100,2000,8000" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*69 (CptPort +uid 148,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 149,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25250,25625,26000,26375" +) +tg (CPTG +uid 150,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 151,0 +va (VaSet +) +xt "27000,25500,30000,26500" +st "reset" +blo "27000,26300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 152,0 +va (VaSet +font "courier,8,0" +) +xt "-13000,8000,2000,8900" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 201,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "26000,16000,42000,28000" +) +oxt "15000,6000,33000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "26250,28000,29250,28900" +st "Common" +blo "26250,28700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "26250,28900,34750,29800" +st "rotaryToUnsigned" +blo "26250,29600" +) +) +gi *70 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "26000,30800,40500,35300" +st "Generic Declarations + +rotaryBitNb positive 4 +outputBitNb positive 8 +counterBitNb positive 10E3 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "rotaryBitNb" +type "positive" +value "4" +) +(GiElement +name "outputBitNb" +type "positive" +value "8" +) +(GiElement +name "counterBitNb" +type "positive" +value "10E3" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*71 (Grouping +uid 16,0 +optionalChildren [ +*72 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,50000,34000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "17200,50000,33400,51000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,38000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,37800,47000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,48000,34000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "17200,48000,33400,49000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "13000,48000,17000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "13200,48000,16800,49000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,54000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47200,47400,48200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "38000,46000,54000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "38200,46000,40000,47000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "13000,46000,34000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "19000,46500,28000,47500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "13000,49000,17000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "13200,49000,16200,50000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "13000,50000,17000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "13200,50000,16800,51000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "17000,49000,34000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "17200,49000,32200,50000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "13000,46000,54000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *82 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-15000,0,-8500,900" +st "Package List" +blo "-15000,700" +) +*84 (MLText +uid 50,0 +va (VaSet +) +xt "-15000,1000,3600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "93,88,1360,986" +viewArea "-16000,-1000,48728,44136" +cachedDiagramExtent "-15000,0,54000,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "-15000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *85 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *86 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-15000,5300,-8500,6200" +st "Declarations" +blo "-15000,6000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-15000,6200,-12000,7100" +st "Ports:" +blo "-15000,6900" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-15000,10700,-12500,11600" +st "User:" +blo "-15000,11400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-15000,5300,-7500,6200" +st "Internal User:" +blo "-15000,6000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "-13000,11600,-13000,11600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-15000,5300,-15000,5300" +tm "SyDeclarativeTextMgr" +) +) +lastUid 437,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/spike@filter/symbol.sb b/Libs/Common/hds/spike@filter/symbol.sb new file mode 100644 index 0000000..8dfe61a --- /dev/null +++ b/Libs/Common/hds/spike@filter/symbol.sb @@ -0,0 +1,1552 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "filtered" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 115,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 114,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "18" +) +uid 159,0 +) +*48 (LogGeneric +generic (GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +uid 267,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 96,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 160,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 268,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/spike@filter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/spike@filter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/spike@filter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/spikeFilter" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "spikeFilter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:38" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "spikeFilter" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/spike@filter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/spikeFilter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:38" +) +(vvPair +variable "unit" +value "spikeFilter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "41000,16500,43100,17500" +st "clock" +blo "41000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,18000,10700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,12625,40000,13375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "41000,12500,43000,13500" +st "input" +blo "41000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,18000,11600" +st "input : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,18625,40000,19375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "41000,18500,43100,19500" +st "reset" +blo "41000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,18000,12500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,12625,56750,13375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +) +xt "52300,12500,55000,13500" +st "filtered" +ju 2 +blo "55000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,17000,13400" +st "filtered : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "filtered" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,9000,56000,21000" +) +oxt "15000,6000,33000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "40200,21000,43200,21900" +st "Common" +blo "40200,21700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "40200,21900,46200,22800" +st "spikeFilter" +blo "40200,22600" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,23800,55200,27400" +st "Generic Declarations + +counterBitNb positive 18 +invertInput std_ulogic '0' " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "18" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*82 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17400,4000" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "109,49,1396,892" +viewArea "-1000,-1000,74828,50759" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7800,5400,8800" +st "Declarations" +blo "0,8600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8800,2700,9800" +st "Ports:" +blo "0,9600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13400,2500,14300" +st "User:" +blo "0,14100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7800,5800,8800" +st "Internal User:" +blo "0,8600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14300,2000,14300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7800,0,7800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 314,0 +activeModelName "Symbol" +) diff --git a/Libs/Common/hds/toggler/symbol.sb b/Libs/Common/hds/toggler/symbol.sb new file mode 100644 index 0000000..1029e56 --- /dev/null +++ b/Libs/Common/hds/toggler/symbol.sb @@ -0,0 +1,1552 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 115,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 114,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "counterBitNb" +type "natural" +value "18" +) +uid 159,0 +) +*48 (LogGeneric +generic (GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +uid 278,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 96,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 160,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 279,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/toggler/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/toggler/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/toggler" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/toggler" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "toggler" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:38" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "toggler" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/toggler/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common/hds/toggler/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:38" +) +(vvPair +variable "unit" +value "toggler" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,18625,43000,19375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "44000,18500,46100,19500" +st "clock" +blo "44000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9800,17000,10700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*65 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,14625,43000,15375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "44000,14500,46000,15500" +st "input" +blo "44000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,17000,11600" +st "input : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*66 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,20625,43000,21375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "44000,20500,46100,21500" +st "reset" +blo "44000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,17000,12500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*67 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,14625,59750,15375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +) +xt "55400,14500,58000,15500" +st "toggle" +ju 2 +blo "58000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,16000,13400" +st "toggle : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,11000,59000,23000" +) +oxt "15000,6000,33000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "43200,23000,46200,23900" +st "Common" +blo "43200,23700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "43200,23900,46700,24800" +st "toggler" +blo "43200,24600" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "43000,25800,58200,29400" +st "Generic Declarations + +counterBitNb natural 18 +invertInput std_ulogic '0' " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "counterBitNb" +type "natural" +value "18" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,49400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*82 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17400,4000" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all; +USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "109,49,1396,892" +viewArea "-1000,-1000,74828,48771" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7800,5400,8800" +st "Declarations" +blo "0,8600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8800,2700,9800" +st "Ports:" +blo "0,9600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13400,2500,14300" +st "User:" +blo "0,14100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7800,5800,8800" +st "Internal User:" +blo "0,8600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14300,2000,14300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7800,0,7800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 302,0 +activeModelName "Symbol" +) diff --git a/Libs/Common_test/hdl/clockGenerator_sim.vhd b/Libs/Common_test/hdl/clockGenerator_sim.vhd new file mode 100644 index 0000000..b2e94be --- /dev/null +++ b/Libs/Common_test/hdl/clockGenerator_sim.vhd @@ -0,0 +1,13 @@ +ARCHITECTURE sim OF clockGenerator IS + + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + +BEGIN + + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9.0/10.0; + +END ARCHITECTURE sim; diff --git a/Libs/Common_test/hdl/commonLib_tb_test.vhd b/Libs/Common_test/hdl/commonLib_tb_test.vhd new file mode 100644 index 0000000..40a1b77 --- /dev/null +++ b/Libs/Common_test/hdl/commonLib_tb_test.vhd @@ -0,0 +1,26 @@ +LIBRARY Common; + USE Common.commonLib.all; +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF commonLib_tb IS + constant maxPowOf2: positive := 10; + constant indent: string(1 to 2) := (others => ' '); +BEGIN + + process + variable value, bitNb: positive; + BEGIN + print("testing function " & '"' & "requiredBitNb" & '"'); + for index in 1 to maxPowOf2 loop + for offset in -1 to 1 loop + value := 2**index + offset; + bitNb := requiredBitNb(value); + print(indent & "requiredBitNb(" & sprintf("%d", value) & ") = " & sprintf("%d", bitNb)); + end loop; + print(""); + end loop; + wait; + end process; + +END ARCHITECTURE test; diff --git a/Libs/Common_test/hdl/debounce_tester_test.vhd b/Libs/Common_test/hdl/debounce_tester_test.vhd new file mode 100644 index 0000000..2d3eac1 --- /dev/null +++ b/Libs/Common_test/hdl/debounce_tester_test.vhd @@ -0,0 +1,141 @@ +-- +-- VHDL Architecture Common_test.debounce_tester.test +-- +-- Created: +-- by - remy.borgeat.UNKNOWN (WE10993) +-- at - 15:30:08 12.01.2024 +-- +-- using Mentor Graphics HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY std; + USE std.textio.ALL; + +LIBRARY ieee; + USE ieee.std_logic_textio.ALL; + USE ieee.math_real.all; + +LIBRARY Common_test; + USE Common_test.testutils.all; + +ARCHITECTURE test OF debounce_tester IS + + constant clockPeriod : time := 1.0/g_clockFrequency * 1 sec; + signal clock_int : std_ulogic := '1'; + constant DELAY: positive := integer(ceil(((real(g_debounceTime / 1 ps) / 1.0e12) * g_clockFrequency) / real(g_minConsecutiveStateCount))) - 1; + + signal testInfo : string(1 to 40) := (others => ' '); + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 3*clockPeriod; + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- input signal + process + begin + -- startup + testInfo <= pad("Init", testInfo'length); + input <= '0'; + wait until reset = '0'; + wait until clock'event and clock = '1'; + + assert (debounced = not g_activeState) + report "Startup value should be " & to_string(not g_activeState) + severity failure; + assert (debounced = g_activeState) + report "Value OK" + severity note; + + -- transition 0 to 1 + testInfo <= pad("0 to 1", testInfo'length); + input <= '1'; + wait for (g_minConsecutiveStateCount/2) * DELAY * clockPeriod; + assert (debounced = not g_activeState) + report "Value should be " & to_string(not g_activeState) + severity failure; + assert (debounced = g_activeState) + report "Value OK" + severity note; + wait for ((g_minConsecutiveStateCount/2) + 1) * DELAY * clockPeriod; + assert (debounced = g_activeState) + report "Value should be " & to_string(g_activeState) + severity failure; + assert (debounced = not g_activeState) + report "Value OK" + severity note; + wait for 100*clockPeriod; + + -- transition 1 to 0 + testInfo <= pad("1 to 0", testInfo'length); + input <= '0'; + wait for (g_minConsecutiveStateCount/2) * DELAY * clockPeriod; + assert (debounced = g_activeState) + report "Value should be " & to_string(g_activeState) + severity failure; + assert (debounced = not g_activeState) + report "Value OK" + severity note; + wait for ((g_minConsecutiveStateCount/2) + 1) * DELAY * clockPeriod; + assert (debounced = not g_activeState) + report "Value should be " & to_string(not g_activeState) + severity failure; + assert (debounced = g_activeState) + report "Value OK" + severity note; + wait for 100*clockPeriod; + + + -- 0 w. glitches + testInfo <= pad("0 glitches", testInfo'length); + input <= '0', + '1' after (g_minConsecutiveStateCount/4) * DELAY * clockPeriod, + '0' after (g_minConsecutiveStateCount/2) * DELAY * clockPeriod, + '1' after ((g_minConsecutiveStateCount/4)*3) * DELAY * clockPeriod, + '0' after (g_minConsecutiveStateCount) * DELAY * clockPeriod; + wait for 2 * (g_minConsecutiveStateCount) * DELAY * clockPeriod; + assert (debounced = not g_activeState) + report "Value should be " & to_string(not g_activeState) + severity failure; + assert (debounced = g_activeState) + report "Value OK" + severity note; + + testInfo <= pad("Back to 1", testInfo'length); + input <= '1'; + wait for g_minConsecutiveStateCount * DELAY * clockPeriod; + assert (debounced = g_activeState) + report "Value should be " & to_string(g_activeState) + severity failure; + assert (debounced = not g_activeState) + report "Value OK" + severity note; + + -- 1 w. glitches + testInfo <= pad("1 glitches", testInfo'length); + input <= '1', + '0' after (g_minConsecutiveStateCount/4) * DELAY * clockPeriod, + '1' after (g_minConsecutiveStateCount/2) * DELAY * clockPeriod, + '0' after ((g_minConsecutiveStateCount/4)*3) * DELAY * clockPeriod, + '1' after (g_minConsecutiveStateCount) * DELAY * clockPeriod; + wait for 2 * (g_minConsecutiveStateCount) * DELAY * clockPeriod; + assert (debounced = g_activeState) + report "Value should be " & to_string(g_activeState) + severity failure; + assert (debounced = not g_activeState) + report "Value OK" + severity note; + + -- end of simulation + testInfo <= pad("End", testInfo'length); + wait for 10*clockPeriod; + assert false + report "End of simulation" + severity failure; + wait; + end process; + +END ARCHITECTURE test; + diff --git a/Libs/Common_test/hdl/debouncerULogicVector_tester_RTL.vhd b/Libs/Common_test/hdl/debouncerULogicVector_tester_RTL.vhd new file mode 100644 index 0000000..bca8093 --- /dev/null +++ b/Libs/Common_test/hdl/debouncerULogicVector_tester_RTL.vhd @@ -0,0 +1,57 @@ +ARCHITECTURE RTL OF debouncerULogicVector_tester IS + + constant clockFrequency : real := 100.0E6; + constant clockPeriod : time := 1.0/clockFrequency * 1 sec; + signal clock_int : std_ulogic := '1'; + + constant longDelay : time := 2**(counterBitNb+1) * clockPeriod; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 3*clockPeriod; + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- input signal + process + begin + input <= (others => '0'); + wait for longDelay; + -- transition 0 to 1 + input(1) <= '1', + '0' after 1*clockPeriod, + '1' after 3*clockPeriod, + '0' after 5*clockPeriod, + '1' after 6*clockPeriod, + '0' after 8*clockPeriod, + '1' after 10*clockPeriod; + wait for longDelay; + -- transition to other bit + -- transition 1 to 0 + input(1) <= '0'; + wait for longDelay; + input(2) <= '1'; + wait for longDelay; + -- transition 1 to 0 + input(2) <= '0', + '1' after 1*clockPeriod, + '0' after 3*clockPeriod, + '1' after 5*clockPeriod, + '0' after 6*clockPeriod, + '1' after 8*clockPeriod, + '0' after 10*clockPeriod; + wait for longDelay; + -- short 1 pulse + input(3) <= '1', + '0' after 1*clockPeriod, + '1' after 3*clockPeriod, + '0' after 5*clockPeriod, + '1' after 6*clockPeriod, + '0' after 8*clockPeriod; + -- end of simulation + wait; + end process; + +END ARCHITECTURE RTL; diff --git a/Libs/Common_test/hdl/debouncer_tester_test.vhd b/Libs/Common_test/hdl/debouncer_tester_test.vhd new file mode 100644 index 0000000..b319ae6 --- /dev/null +++ b/Libs/Common_test/hdl/debouncer_tester_test.vhd @@ -0,0 +1,49 @@ +ARCHITECTURE test OF debouncer_tester IS + + constant clockFrequency : real := 66.0E6; + constant clockPeriod : time := 1.0/clockFrequency * 1 sec; + signal clock_int : std_ulogic := '1'; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 3*clockPeriod; + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- input signal + process + begin + input <= '0'; + wait for 10*clockPeriod; + -- transition 0 to 1 + input <= '1', + '0' after 1*clockPeriod, + '1' after 3*clockPeriod, + '0' after 5*clockPeriod, + '1' after 6*clockPeriod, + '0' after 8*clockPeriod, + '1' after 10*clockPeriod; + wait for 50*clockPeriod; + -- transition 1 to 0 + input <= '0', + '1' after 1*clockPeriod, + '0' after 3*clockPeriod, + '1' after 5*clockPeriod, + '0' after 6*clockPeriod, + '1' after 8*clockPeriod, + '0' after 10*clockPeriod; + wait for 50*clockPeriod; + -- short 1 pulse + input <= '1', + '0' after 1*clockPeriod, + '1' after 3*clockPeriod, + '0' after 5*clockPeriod, + '1' after 6*clockPeriod, + '0' after 8*clockPeriod; + -- end of simulation + wait; + end process; + +END ARCHITECTURE test; diff --git a/Libs/Common_test/hdl/requiredBitNb.txt b/Libs/Common_test/hdl/requiredBitNb.txt new file mode 100644 index 0000000..5015db3 --- /dev/null +++ b/Libs/Common_test/hdl/requiredBitNb.txt @@ -0,0 +1,40 @@ +# testing function "requiredBitNb" +# requiredBitNb(1) = 1 +# requiredBitNb(2) = 2 +# requiredBitNb(3) = 2 +# +# requiredBitNb(3) = 2 +# requiredBitNb(4) = 3 +# requiredBitNb(5) = 3 +# +# requiredBitNb(7) = 3 +# requiredBitNb(8) = 4 +# requiredBitNb(9) = 4 +# +# requiredBitNb(15) = 4 +# requiredBitNb(16) = 5 +# requiredBitNb(17) = 5 +# +# requiredBitNb(31) = 5 +# requiredBitNb(32) = 6 +# requiredBitNb(33) = 6 +# +# requiredBitNb(63) = 6 +# requiredBitNb(64) = 7 +# requiredBitNb(65) = 7 +# +# requiredBitNb(127) = 7 +# requiredBitNb(128) = 8 +# requiredBitNb(129) = 8 +# +# requiredBitNb(255) = 8 +# requiredBitNb(256) = 9 +# requiredBitNb(257) = 9 +# +# requiredBitNb(511) = 9 +# requiredBitNb(512) = 10 +# requiredBitNb(513) = 10 +# +# requiredBitNb(1023) = 10 +# requiredBitNb(1024) = 11 +# requiredBitNb(1025) = 11 \ No newline at end of file diff --git a/Libs/Common_test/hdl/rotaryToUnsigned_tester_test.vhd b/Libs/Common_test/hdl/rotaryToUnsigned_tester_test.vhd new file mode 100644 index 0000000..70a3fbf --- /dev/null +++ b/Libs/Common_test/hdl/rotaryToUnsigned_tester_test.vhd @@ -0,0 +1,47 @@ +ARCHITECTURE test OF rotaryToUnsigned_tester IS + + constant clockFrequency : real := 100.0E6; + constant clockPeriod : time := 1.0/clockFrequency * 1 sec; + signal clock_int : std_ulogic := '1'; + + constant stepPeriod : time := 100*clockPeriod; + signal rotary_int : unsigned(rotary'range); + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 3*clockPeriod; + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- input signal + turnRotary: process + begin + rotary_int <= (others => '0'); + wait for 10*stepPeriod; + -- count over max value + for index in 1 to 2**outputBitNb+2 loop + rotary_int <= rotary_int + 1; + wait for stepPeriod; + end loop; + -- count down again + for index in 1 to 2**outputBitNb+2 loop + rotary_int <= rotary_int - 1; + wait for stepPeriod; + end loop; + -- end of simulation + wait; + end process turnRotary; + + addGlitches: process + begin + wait on rotary_int; + rotary <= (others => '0'); + wait for clockPeriod; + rotary <= (others => '1'); + wait for clockPeriod; + rotary <= rotary_int; + end process addGlitches; + +END ARCHITECTURE test; diff --git a/Libs/Common_test/hdl/spikeFilter_tester_test.vhd b/Libs/Common_test/hdl/spikeFilter_tester_test.vhd new file mode 100644 index 0000000..cd5468f --- /dev/null +++ b/Libs/Common_test/hdl/spikeFilter_tester_test.vhd @@ -0,0 +1,47 @@ +ARCHITECTURE test OF spikeFilter_tester IS + + constant clockFrequency : real := 100.0E6; + constant clockPeriod : time := 1.0/clockFrequency * 1 sec; + signal clock_int : std_ulogic := '1'; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 3*clockPeriod; + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- input signal + process + begin + input <= '0'; + wait for 10*clockPeriod; + -- loop on pulse width + for pulseWidth in 1 to 10 loop + -- send positive pulses train + for index in 1 to 8 loop + input <= '1'; + wait for pulseWidth * clockPeriod; + input <= '0'; + wait for pulseWidth * clockPeriod; + end loop; + -- set input high + input <= '1'; + wait for 100*clockPeriod; + -- send negative pulses train + for index in 1 to 8 loop + input <= '0'; + wait for pulseWidth * clockPeriod; + input <= '1'; + wait for pulseWidth * clockPeriod; + end loop; + -- set input low + input <= '0'; + wait for 100*clockPeriod; + end loop; + -- end of simulation + wait; + end process; + +END ARCHITECTURE test; diff --git a/Libs/Common_test/hdl/testUtils_pkg.vhd b/Libs/Common_test/hdl/testUtils_pkg.vhd new file mode 100644 index 0000000..4d275b9 --- /dev/null +++ b/Libs/Common_test/hdl/testUtils_pkg.vhd @@ -0,0 +1,127 @@ +LIBRARY std; + USE std.textio.all; +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +PACKAGE testUtils IS + + --============================================================================ + -- console output + -- + + procedure print(value : string); + + + --============================================================================ + -- string manipulation + -- + + -- conversion to lowercase + function lc(value : string) return string; + procedure lc(value : inout line); + -- conversion to uppercase + function uc(value : string) return string; + procedure uc(value : inout line); + -- expand a string to a given length + function pad( + value : string; + string_length : natural; + fill_char : character := ' '; + right_justify : boolean := false + ) return string; + -- remove separator characters at beginning and end of line + procedure rm_side_separators( + value : inout line; + separators : in string + ); + procedure rm_side_separators( + value : inout line + ); + -- remove multiple occurences of separator characters + procedure trim_line( + value : inout line; + separators : in string + ); + + procedure trim_line( + value : inout line + ); + -- remove all occurences of separator characters + procedure rm_all_separators( + value : inout line; + separators : in string + ); + + procedure rm_all_separators( + value : inout line + ); + -- find and remove first word + procedure read_first( + value : inout line; + separators : in string; + first : out line + ); + + procedure read_first( + value : inout line; + first : out line + ); + -- find and remove last word + procedure read_last( + value : inout line; + separators : in string; + last : out line + ); + + procedure read_last( + value : inout line; + last : out line + ); + + + --============================================================================ + -- formatted string output + -- + -- format codes: + -- code integer real std_logic std_(u)logic_vector (un)signed time + -- b v v v v binary + -- c character + -- d v v v v v decimal + -- e real numbers, with power of 10 exponent + -- f v v fixed point real numbers + -- s string + -- ts v time in seconds + -- tm v time in milliseconds + -- tu v time in microseconds + -- tn v time in nanoseconds + -- tp v time in picoseconds + -- x v v v v hexadecimal + -- X v v v v hexadecimal with upper-case letters + + function sprintf(format : string; value : integer ) return string; + function sprintf(format : string; value : real ) return string; + function sprintf(format : string; value : std_logic ) return string; + function sprintf(format : string; value : std_ulogic_vector) return string; + function sprintf(format : string; value : std_logic_vector ) return string; + function sprintf(format : string; value : unsigned ) return string; + function sprintf(format : string; value : signed ) return string; + function sprintf(format : string; value : time ) return string; + + --============================================================================ + -- formatted string input + -- + subtype nibbleUlogicType is std_ulogic_vector(3 downto 0); + subtype nibbleUnsignedType is unsigned(3 downto 0); + + function sscanf(value : character) return natural; + function sscanf(value : character) return nibbleUlogicType; + function sscanf(value : character) return nibbleUnsignedType; + function sscanf(value : string ) return natural; + function sscanf(value : string ) return unsigned; + function sscanf(value : string ) return std_ulogic_vector; + function sscanf(value : string ) return time; + + procedure sscanf(value : inout line; time_val : out time); + +END testUtils; diff --git a/Libs/Common_test/hdl/testUtils_pkg_body.vhd b/Libs/Common_test/hdl/testUtils_pkg_body.vhd new file mode 100644 index 0000000..88c6205 --- /dev/null +++ b/Libs/Common_test/hdl/testUtils_pkg_body.vhd @@ -0,0 +1,924 @@ +PACKAGE BODY testUtils IS + + --============================================================================ + -- console output + -- + + procedure print(value : string) is + variable my_line : line; + begin + write(my_line, value); + writeLine(output, my_line); + deallocate(my_line); + end print; + + + --============================================================================ + -- string manipulation + -- + + ------------------------------------------------------------------------------ + -- change to lowercase + ------------------------------------------------------------------------------ + procedure lc(value: inout line) is + variable out_line: line; + begin + for index in value'range loop + if (value(index) >= 'A') and (value(index) <= 'Z') then + value(index) := character'val(character'pos(value(index)) + - character'pos('A') + + character'pos('a') + ); + end if; + end loop; + end lc; + + function lc(value: string) return string is + variable out_line: line; + begin + write(out_line, value); + lc(out_line); + return(out_line.all); + end lc; + + ------------------------------------------------------------------------------ + -- change to uppercase + ------------------------------------------------------------------------------ + procedure uc(value: inout line) is + variable out_line: line; + begin + for index in value'range loop + if (value(index) >= 'a') and (value(index) <= 'z') then + value(index) := character'val(character'pos(value(index)) + - character'pos('a') + + character'pos('A') + ); + end if; + end loop; + end uc; + + function uc(value: string) return string is + variable out_line: line; + begin + write(out_line, value); + uc(out_line); + return(out_line.all); + end uc; + + ------------------------------------------------------------------------------ + -- formatted string output: padding and justifying + ------------------------------------------------------------------------------ + function pad( + value : string; + string_length : natural; + fill_char : character := ' '; + right_justify : boolean := false + ) return string is + variable value_line : line; + variable out_line : line; + variable value_length : natural; + variable shift_sign : boolean; + begin + write(value_line, value); + value_length := value_line.all'length; + if string_length = 0 then + write(out_line, value_line.all); + elsif string_length > value_length then + if right_justify then + if (value_line.all(value_line.all'left) <= '-') and not(fill_char = ' ') then + shift_sign := true; + write(out_line, value_line.all(value_line.all'left)); + end if; + for index in 1 to string_length-value_length loop + write(out_line, fill_char); + end loop; + end if; + if shift_sign then + write(out_line, value_line.all(value_line.all'left+1 to value_line.all'right)); + else + write(out_line, value_line.all); + end if; + if not right_justify then + for index in 1 to string_length-value_length loop + write(out_line, fill_char); + end loop; + end if; + elsif string_length < value_length then + write(out_line, '#'); + write(out_line, value_line.all(value_length-string_length+2 to value_length)); + else + write(out_line, value_line.all); + end if; + deallocate(value_line); + return(out_line.all); + end pad; + + ------------------------------------------------------------------------------ + -- remove separator characters at beginning and end of line + ------------------------------------------------------------------------------ + procedure rm_side_separators( + value : inout line; + separators : in string + ) is + variable input_line : line := value; + variable found : boolean := false; + variable position : integer := 0; + begin + -- remove all separators in the beginning + position := -1; + for character_index in input_line'range loop + found := false; + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + found := true; + end if; + end loop; + if found then + position := character_index; + else + exit; + end if; + end loop; + if position > -1 then + input_line := new string'( input_line(position+1 to input_line'right) ); + end if; + + -- remove all separators in the end + position := -1; + for character_index in input_line'reverse_range loop + found := false; + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + found := true; + end if; + end loop; + if found then + position := character_index; + else + exit; + end if; + end loop; + if position > -1 then + input_line := new string'( input_line(input_line'left to position-1) ); + end if; + + value := input_line; + end; + + procedure rm_side_separators(value : inout line) is + begin + rm_side_separators(value, " :" & ht); + end; + + ------------------------------------------------------------------------------ + -- remove multiple occurences of separator characters, keeping one single + ------------------------------------------------------------------------------ + procedure trim_line( + value : inout line; + separators : in string + ) is + variable input_line: line := value; + variable output_line: line := new string'(""); + variable is_separator, was_separator : boolean := false; + begin + rm_side_separators(input_line); + for character_index in input_line'range loop + is_separator := false; + for separator_index in separators'range loop + if input_line.all(character_index) = separators(separator_index) then + is_separator := true; + end if; + end loop; + if not (is_separator and was_separator) then + write(output_line, input_line.all(character_index)); + end if; + was_separator := is_separator; + end loop; + + value := output_line; + end; + + procedure trim_line(value : inout line) is + begin + trim_line(value, " :" & ht); + end; + + ------------------------------------------------------------------------------ + -- remove all occurences of separator characters + ------------------------------------------------------------------------------ + procedure rm_all_separators( + value : inout line; + separators : in string + ) is + variable input_line : line := value; + variable is_separator : boolean := false; + begin + + -- remove separators from beginn and end of the line + -- rm_separator_be(value, separators); + + -- empty output line + value := new string'(""); + + -- find all separator symbols + for character_index in input_line'range loop + is_separator := false; + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + is_separator := true; + end if; + end loop; + if not is_separator then + write(value, input_line.all(character_index)); + end if; + end loop; + + end; + + procedure rm_all_separators(value : inout line) is + begin + rm_all_separators(value, " _." & ht); + end; + + ------------------------------------------------------------------------------ + -- read first "word" out of a line + ------------------------------------------------------------------------------ + procedure read_first( + value : inout line; + separators : in string; + first : out line + ) is + variable input_line: line; + variable position: natural := 0; + begin + input_line := value; + for character_index in input_line.all'reverse_range loop + for separator_index in separators'range loop + if input_line.all(character_index) = separators(separator_index) then + position := character_index; + end if; + end loop; + end loop; + if position > 1 then + first := new string'(input_line.all(input_line'left to position-1)); + value := new string'(input_line(position+1 to input_line'right)); + else + first := new string'(input_line.all); + value := new string'(""); + end if; + end; + + procedure read_first(value : inout line; first : out line) is + begin + read_first(value, " :" & ht, first); + end; + + ------------------------------------------------------------------------------ + -- read last "word" out of a line + ------------------------------------------------------------------------------ + procedure read_last( + value : inout line; + separators : in string; + last : out line + ) is + variable input_line: line := value; + variable position: natural := 0; + begin + for character_index in input_line'range loop + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + position := character_index; + end if; + end loop; + end loop; + if position <= input_line'right and + position > 0 then + value := new string'(input_line(input_line'left to position-1)); + last := new string'(input_line(position+1 to input_line'right)); + else + last := new string'(input_line.all); + end if; + end; + + procedure read_last(value : inout line; last : out line) is + begin + read_last(value, " :" & ht, last); + end; + + + --============================================================================ + -- formatted string output, internal functions + -- + + ------------------------------------------------------------------------------ + -- get format specification + ------------------------------------------------------------------------------ + procedure get_format_items( + format : string; + right_justify : out boolean; + add_sign : out boolean; + fill_char : out character; + total_length : out natural; + point_precision : out natural; + format_type : inout line + ) is + variable find_sign : boolean := false; + variable find_padding : boolean := false; + variable find_length : boolean := false; + variable find_precision : boolean := false; + variable find_type : boolean := false; + variable right_justify_int : boolean := true; + variable total_length_int : natural := 0; + variable point_precision_int : natural := 0; + begin + add_sign := false; + fill_char := ' '; + for index in 1 to format'length loop + if find_type then + write(format_type, format(index)); + end if; + if find_precision then + if (format(index) >= '0') and (format(index) <= '9') then + point_precision_int := 10*point_precision_int + character'pos(format(index)) - character'pos('0'); + if format(index+1) >= 'A' then + find_precision := false; + find_type := true; + end if; + end if; + end if; + if find_length then + if (format(index) >= '0') and (format(index) <= '9') then + total_length_int := 10*total_length_int + character'pos(format(index)) - character'pos('0'); + end if; + if format(index) = '.' then + find_length := false; + find_precision := true; + elsif format(index+1) >= 'A' then + find_length := false; + find_type := true; + end if; + end if; + if find_padding then + if format(index) = '0' then + if right_justify_int then + fill_char := '0'; + end if; + end if; + find_padding := false; + if format(index+1) >= 'A' then + find_type := true; + else + find_length := true; + end if; + end if; + if find_sign then + if format(index) = '-' then + right_justify_int := false; + end if; + if format(index) = '+' then + add_sign := true; + end if; + find_sign := false; + if format(index+1) <= '-' then + find_sign := true; + elsif format(index+1) = '0' then + find_padding := true; + elsif format(index+1) >= 'A' then + find_type := true; + else + find_length := true; + end if; + end if; + if format(index) = '%' then + if format(index+1) <= '-' then + find_sign := true; + elsif format(index+1) = '0' then + find_padding := true; + elsif format(index+1) >= 'A' then + find_type := true; + else + find_length := true; + end if; + end if; + end loop; + right_justify := right_justify_int; + total_length := total_length_int; + point_precision := point_precision_int; + end get_format_items; + + + ------------------------------------------------------------------------------ + -- formatted string output: converting std_ulogic to character + ------------------------------------------------------------------------------ + function to_character(value: std_ulogic) return character is + variable out_value: character; + begin + case value is + when 'U' => out_value := 'U'; + when 'X' => out_value := 'X'; + when '0' => out_value := '0'; + when '1' => out_value := '1'; + when 'Z' => out_value := 'Z'; + when 'W' => out_value := 'W'; + when 'L' => out_value := 'L'; + when 'H' => out_value := 'H'; + when '-' => out_value := '-'; + end case; + return(out_value); + end to_character; + + ------------------------------------------------------------------------------ + -- formatted string output: binary integer + ------------------------------------------------------------------------------ + function sprintf_b(value: std_ulogic_vector) return string is + variable out_line : line; + begin + for index in value'range loop + write(out_line, to_character(value(index))); + end loop; + return(out_line.all); + end sprintf_b; + + ------------------------------------------------------------------------------ + -- formatted string output: decimal integer + ------------------------------------------------------------------------------ + function sprintf_d( + right_justify : boolean; + add_sign : boolean; + fill_char : character; + string_length : natural; + value : integer + ) return string is + variable value_line : line; + begin + if add_sign and (value >= 0) then + write(value_line, '+'); + end if; + write(value_line, value); + if string_length = 0 then + return(value_line.all); + else + return(pad(value_line.all, string_length, fill_char, right_justify)); + end if; + end sprintf_d; + + ------------------------------------------------------------------------------ + -- formatted string output: fixed point real + ------------------------------------------------------------------------------ + function sprintf_f( + right_justify : boolean; + add_sign : boolean; + fill_char : character; + string_length : natural; + point_precision : natural; + value : real + ) return string is + variable point_precision_int : natural; + variable integer_part : integer; + variable decimal_part : natural; + variable value_line : line; + begin + if point_precision = 0 then + point_precision_int := 6; + else + point_precision_int := point_precision; + end if; + if value >= 0.0 then + integer_part := integer(value-0.5); + else + integer_part := - integer(-value-0.5); + end if; + decimal_part := abs(integer((value-real(integer_part))*(10.0**point_precision_int))); + if add_sign and (value >= 0.0) then + write(value_line, '+'); + end if; + write(value_line, integer_part); + write(value_line, '.'); + write(value_line, sprintf_d(true, false, '0', point_precision_int, decimal_part)); + if string_length = 0 then + return(value_line.all); + else + return(pad(value_line.all, string_length, fill_char, right_justify)); + end if; + end sprintf_f; + + ------------------------------------------------------------------------------ + -- formatted string output: hexadecimal integer + ------------------------------------------------------------------------------ + function sprintf_X( + extend_unsigned : boolean; + value : std_ulogic_vector + ) return string is + variable bit_count : positive; + variable value_line : line; + variable out_line : line; + variable nibble: string(1 to 4); + begin + bit_count := value'length; + while (bit_count mod 4) /= 0 loop + if extend_unsigned then + write(value_line, to_character('0')); + else + write(value_line, to_character(value(value'high))); + end if; + bit_count := bit_count + 1; + end loop; + write(value_line, sprintf_b(value)); + for index in value_line.all'range loop + if (index mod 4) = 0 then + nibble := value_line.all(index-3 to index); + case nibble is + when "0000" => write(out_line, 0); + when "0001" => write(out_line, 1); + when "0010" => write(out_line, 2); + when "0011" => write(out_line, 3); + when "0100" => write(out_line, 4); + when "0101" => write(out_line, 5); + when "0110" => write(out_line, 6); + when "0111" => write(out_line, 7); + when "1000" => write(out_line, 8); + when "1001" => write(out_line, 9); + when "1010" => write(out_line, 'A'); + when "1011" => write(out_line, 'B'); + when "1100" => write(out_line, 'C'); + when "1101" => write(out_line, 'D'); + when "1110" => write(out_line, 'E'); + when "1111" => write(out_line, 'F'); + when others => write(out_line, 'X'); + end case; + end if; + end loop; + return(out_line.all); + end sprintf_X; + + + --============================================================================ + -- formatted string output, interface functions + -- + + ------------------------------------------------------------------------------ + -- integer + ------------------------------------------------------------------------------ + function sprintf(format : string; value : integer) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if format_type.all = "b" then + if string_length = 0 then + string_length := 8; + end if; + return(sprintf_b(std_ulogic_vector(to_signed(value, string_length+1)(string_length-1 downto 0)))); + elsif format_type.all = "d" then + return(sprintf_d(right_justify, add_sign, fill_char, string_length, value)); + elsif format_type.all = "f" then + return(sprintf_f(right_justify, add_sign, fill_char, + string_length, point_precision, real(value))); + elsif (format_type.all = "X") or (format_type.all = "x") then + if string_length = 0 then + string_length := 8; + end if; + string_length := 4*string_length; + if format_type.all = "X" then + return(sprintf_X(false, std_ulogic_vector(to_signed(value, string_length+1)(string_length-1 downto 0)))); + else + return(lc(sprintf_X(false, std_ulogic_vector(to_signed(value, string_length+1)(string_length-1 downto 0))))); + end if; + else + return("Unhandled format type: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- real + ------------------------------------------------------------------------------ + function sprintf(format : string; value : real) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "d") or (point_precision = 0) then + return(sprintf_d(right_justify, add_sign, fill_char, + string_length, integer(value))); + elsif format_type.all = "f" then + return(sprintf_f(right_justify, add_sign, fill_char, + string_length, point_precision, value)); + else + return("Unhandled format type: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- std_logic + ------------------------------------------------------------------------------ + function sprintf(format : string; value : std_logic) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + variable logic_vector: std_logic_vector(1 to 1); + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "b") or (format_type.all = "d") or + (format_type.all = "X") or (format_type.all = "x") then + logic_vector(1) := value; + return(sprintf(format, std_ulogic_vector(logic_vector))); + else + return("Not a std_logic format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- std_ulogic_vector + ------------------------------------------------------------------------------ + function sprintf(format : string; value : std_ulogic_vector) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable bit_string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + bit_string_length, point_precision, format_type); + if format_type.all = "b" then + return(pad(sprintf_b(value), bit_string_length, fill_char, right_justify)); + elsif format_type.all = "d" then + return(sprintf_d(right_justify, add_sign, fill_char, bit_string_length, to_integer(unsigned(value)))); + elsif (format_type.all = "X") or (format_type.all = "x") then + if format_type.all = "X" then + return(pad(sprintf_X(true, value), bit_string_length, fill_char, right_justify)); + else + return(lc(pad(sprintf_X(true, value), bit_string_length, fill_char, right_justify))); + end if; + else + return("Not a std_ulogic_vector format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- std_logic_vector + ------------------------------------------------------------------------------ + function sprintf(format : string; value : std_logic_vector) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "b") or (format_type.all = "d") or + (format_type.all = "X") or (format_type.all = "x") then + return(sprintf(format, std_ulogic_vector(value))); + else + return("Not a std_logic_vector format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- unsigned + ------------------------------------------------------------------------------ + function sprintf(format : string; value : unsigned) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "b") or (format_type.all = "d") or + (format_type.all = "X") or (format_type.all = "x") then + return(sprintf(format, std_ulogic_vector(value))); + else + return("Not an unsigned format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- signed + ------------------------------------------------------------------------------ + function sprintf(format : string; value : signed) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable bit_string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + bit_string_length, point_precision, format_type); + if (fill_char = '0') and (value(value'left) = '1') then + fill_char := '1'; + end if; + if format_type.all = "b" then + return(pad(sprintf_b(std_ulogic_vector(value)), bit_string_length, fill_char, right_justify)); + elsif format_type.all = "d" then + return(sprintf_d(right_justify, add_sign, fill_char, bit_string_length, to_integer(signed(value)))); + elsif (format_type.all = "X") or (format_type.all = "x") then + if fill_char = '1' then + fill_char := 'F'; + end if; + if format_type.all = "X" then + return(pad(sprintf_X(true, std_ulogic_vector(value)), bit_string_length, fill_char, right_justify)); + else + return(lc(pad(sprintf_X(true, std_ulogic_vector(value)), bit_string_length, fill_char, right_justify))); + end if; + else + return("Not a signed format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- time + ------------------------------------------------------------------------------ + function sprintf(format : string; value : time) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + variable scaling : real; + variable base_time : time; + variable unit : string(1 to 3); + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if format_type.all(format_type.all'left) = 't' then + scaling := 10.0**point_precision; + if format_type.all = "tp" then + base_time := 1 ps; + unit := " ps"; + elsif format_type.all = "tn" then + base_time := 1 ns; + unit := " ns"; + elsif format_type.all = "tu" then + base_time := 1 us; + unit := " us"; + elsif format_type.all = "tm" then + base_time := 1 ms; + unit := " ms"; + elsif format_type.all = "ts" then + base_time := 1 sec; + unit := " s."; + else + return("Undefined time format: '" & format_type.all & "'"); + end if; + if point_precision = 0 then + return(sprintf_d(right_justify, add_sign, fill_char, + string_length, value/base_time) & unit); + else + return(sprintf_f(right_justify, add_sign, fill_char, string_length, + point_precision, real(scaling*value/base_time)/scaling) & unit); + end if; + else + return("Not a time format: '" & format_type.all & "'"); + end if; + end sprintf; + + + --============================================================================ + -- formatted string input + ------------------------------------------------------------------------------ + + ------------------------------------------------------------------------------ + -- read a nibble out of a character + ------------------------------------------------------------------------------ + function sscanf(value : character) return natural is + begin + if (value >= '0') and (value <= '9') then + return(character'pos(value) - character'pos('0')); + elsif (value >= 'a') and (value <= 'f') then + return(character'pos(value) - character'pos('a') + 10); + elsif (value >= 'A') and (value <= 'F') then + return(character'pos(value) - character'pos('A') + 10); + else + return(0); + end if; + end sscanf; + + function sscanf(value : character) return nibbleUnsignedType is + begin + return(to_unsigned(sscanf(value), nibbleUnsignedType'length)); + end sscanf; + + function sscanf(value : character) return nibbleUlogicType is + variable unsigned_value : nibbleUnsignedType; + begin + unsigned_value := sscanf(value); + return(std_ulogic_vector(unsigned_value)); + end sscanf; + + ------------------------------------------------------------------------------ + -- read an binary word out of a string + ------------------------------------------------------------------------------ + function sscanf(value : string) return natural is + variable integer_value : natural; + begin + integer_value := 0; + for index in value'left to value'right loop + integer_value := integer_value*16 + sscanf(value(index)); + end loop; + return(integer_value); + end; + + function sscanf(value : string) return unsigned is + variable unsigned_value : unsigned(4*value'length-1 downto 0); + begin + unsigned_value := to_unsigned(0,unsigned_value'length); + for index in value'left to value'right loop + unsigned_value := shift_left(unsigned_value,4) + to_unsigned(sscanf(value(index)),4); + end loop; + return(unsigned_value); + end; + + function sscanf(value : string) return std_ulogic_vector is + variable unsigned_value : unsigned(4*value'length-1 downto 0); + begin + unsigned_value := sscanf(value); + return(std_ulogic_vector(unsigned_value)); + end; + + ------------------------------------------------------------------------------ + -- read time from a string + -- time can be formated as follows: + -- "1ps" or "1 ps" or " 1 ps " or " 1ps" + -- possible time units are: hr, min, sec, ms, us, ns, ps, fs + ------------------------------------------------------------------------------ + procedure sscanf( + value : inout line; + time_val : out time + ) is + variable time_line : line := value; + variable time_base : string(1 to 3); + variable time_value : integer; + variable time_int : time; + begin + -- remove all spaces and tabs + rm_all_separators(time_line); + + -- strip time base (3 last characters) + time_base := time_line(time_line'right-2 to time_line'right); + + -- separate time value and base + if time_base(2 to 3) = "hr" then + time_int := 1 hr; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base = "min" then + time_int := 1 min; + time_value := integer'value(time_line(time_line'left to time_line'right -3)); + elsif time_base = "sec" then + time_int := 1 sec; + time_value := integer'value(time_line(time_line'left to time_line'right -3)); + elsif time_base(2 to 3) = "ms" then + time_int := 1 ms; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "us" then + time_int := 1 us; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "ns" then + time_int := 1 ns; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "ps" then + time_int := 1 ps; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "fs" then + time_int := 1 fs; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + else + time_int := 0 ps; + time_value := 1; + end if; + + -- build time from value and base + time_val := time_int * time_value; + + end; + + function sscanf(value : string) return time is + variable value_line : line; + variable time_val : time; + begin + value_line := new string'(value); + sscanf(value_line, time_val); + return(time_val); + end; + +END testUtils; diff --git a/Libs/Common_test/hdl/testUtils_tb_test.vhd b/Libs/Common_test/hdl/testUtils_tb_test.vhd new file mode 100644 index 0000000..960d138 --- /dev/null +++ b/Libs/Common_test/hdl/testUtils_tb_test.vhd @@ -0,0 +1,102 @@ +LIBRARY std; + USE std.textio.all; +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF testUtils_tb IS +BEGIN + + process + variable test_line, result_line : LINE; + begin + + print("Integers, right justified"); + print(" |" & sprintf("%6d", 12) & "| 12|"); + print(" |" & sprintf("%06d", 12) & "|000012|"); + print(" |" & sprintf("%+6d", 12) & "| +12|"); + print(" |" & sprintf("%+06d", 12) & "|+00012|"); + print(" |" & sprintf("%6d", -12) & "| -12|"); + print(" |" & sprintf("%06d", -12) & "|-00012|"); + print("Integers, left justified"); + print(" |" & sprintf("%-6d", 12) & "|12 |"); + print(" |" & sprintf("%-06d", 12) & "|12 |"); + print(" |" & sprintf("%-+6d", 12) & "|+12 |"); + print(" |" & sprintf("%-+06d", 12) & "|+12 |"); + print(" |" & sprintf("%-6d", -12) & "|-12 |"); + print(" |" & sprintf("%-06d", -12) & "|-12 |"); + print("Integers, others"); + print(" |" & sprintf("%d", 12) & "|12|"); + print(" |" & sprintf("%6tu", 12) & "|"); + print(" |" & sprintf("%6d", 123456) & "|123456|"); + print(" |" & sprintf("%6d", 12345678) & "|#45678|"); + print(" |" & sprintf("%f", 12) & "|12.000000|"); + print(" |" & sprintf("%10f", 12) & "| 12.000000|"); + print(" |" & sprintf("%8.3f", 12) & "| 12.000|"); + print(" |" & sprintf("%b", 12) & "|00001100|"); + print(" |" & sprintf("%4b", 12) & "|1100|"); + print(" |" & sprintf("%6b", 12) & "|001100|"); + print(" |" & sprintf("%X", 12) & "|0000000C|"); + print(" |" & sprintf("%4x", 12) & "|000c|"); + print(" |" & sprintf("%2X", 12) & "|0C|"); + + print(cr & "Reals, integer rounding"); + print(" |" & sprintf("%6d", 1.3) & "| 1|"); + print(" |" & sprintf("%6d", 1.5) & "| 2|"); + print(" |" & sprintf("%6d", 1.7) & "| 2|"); + print("Reals, right justified"); + print(" |" & sprintf("%8.3f", 1.03) & "| 1.030|"); + print(" |" & sprintf("%8.3f", 1.07) & "| 1.070|"); + print(" |" & sprintf("%08.3f", 1.03) & "|0001.030|"); + print(" |" & sprintf("%+08.3f", 1.03) & "|+001.030|"); + print(" |" & sprintf("%8.3f", -1.03) & "| -1.030|"); + print(" |" & sprintf("%8.3f", -1.07) & "| -1.070|"); + print("Reals, left justified"); + print(" |" & sprintf("%-8.3f", 1.3) & "|1.300 |"); + print(" |" & sprintf("%-8.3f", 1.7) & "|1.700 |"); + print(" |" & sprintf("%-08.3f", 1.3) & "|1.300 |"); + print(" |" & sprintf("%-+08.3f", 1.3) & "|+1.300 |"); + print(" |" & sprintf("%-8.3f", -1.3) & "|-1.300 |"); + print(" |" & sprintf("%-8.3f", -1.7) & "|-1.700 |"); + + print(cr & "Logic values"); + print(" |" & sprintf("%b", '0') & "|0|"); + print(" |" & sprintf("%3b", '1') & "| 1|"); + print(" |" & sprintf("%-3d", '0') & "|0 |"); + print(" |" & sprintf("%3X", '1') & "| 1|"); + + print(cr & "Logic vectors, binary"); + print(" |" & sprintf("%b", std_ulogic_vector'("1100")) & "|1100|"); + print(" |" & sprintf("%3b", std_logic_vector'("1100")) & "|#00|"); + print(" |" & sprintf("%4b", unsigned'("1100")) & "|1100|"); + print(" |" & sprintf("%8b", signed'("1100")) & "| 1100|"); + print(" |" & sprintf("%-8b", signed'("1100")) & "|1100 |"); + print(" |" & sprintf("%08b", unsigned'("1100")) & "|00001100|"); + print(" |" & sprintf("%08b", signed'("1100")) & "|11111100|"); + print("Logic vectors, hexadecimal"); + print(" |" & sprintf("%X", std_ulogic_vector'("1100101011111110")) & "|CAFE|"); + print(" |" & sprintf("%3X", std_logic_vector'("1100101011111110")) & "|#FE|"); + print(" |" & sprintf("%4x", unsigned'("1100101011111110")) & "|cafe|"); + print(" |" & sprintf("%8X", signed'("1100101011111110")) & "| CAFE|"); + print(" |" & sprintf("%02X", unsigned'("1100")) & "|0C|"); + print(" |" & sprintf("%02X", signed'("1100")) & "|FC|"); + print("Logic vectors, decimal"); + print(" |" & sprintf("%d", std_ulogic_vector'("1100")) & "|12|"); + print(" |" & sprintf("%d", unsigned'("1100")) & "|12|"); + print(" |" & sprintf("%d", signed'("1100")) & "|-4|"); + print("Logic vectors, others"); + print(" |" & sprintf("%8tu", std_ulogic_vector'("1100")) & "|"); + + print(cr & "Time"); + print(" |" & sprintf("%9tu", 1.3 us) & "| 1 us|"); + print(" |" & sprintf("%9.3tu", 1.3 us) & "| 1.300 us|"); + print(" |" & sprintf("%10tu", 1.3 us) & "| 1 us|"); + + print(cr & "Lines"); + test_line := new string'("Hello brave new world!"); + read_first(test_line, result_line); + print(" |" & result_line.all & "¦"& test_line.all & "|Hello¦brave new world!|"); + + wait; + end process; + +END ARCHITECTURE test; diff --git a/Libs/Common_test/hdl/toggler_tester_test.vhd b/Libs/Common_test/hdl/toggler_tester_test.vhd new file mode 100644 index 0000000..ba76bc0 --- /dev/null +++ b/Libs/Common_test/hdl/toggler_tester_test.vhd @@ -0,0 +1,56 @@ +ARCHITECTURE test OF toggler_tester IS + + constant clockFrequency : real := 66.0E6; + constant clockPeriod : time := 1.0/clockFrequency * 1 sec; + signal clock_int : std_ulogic := '1'; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 3*clockPeriod; + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- input signal + process + begin + input <= '0'; + wait for 10*clockPeriod; + -- transition 0 to 1 + input <= '1', + '0' after 1*clockPeriod, + '1' after 3*clockPeriod, + '0' after 5*clockPeriod, + '1' after 6*clockPeriod, + '0' after 8*clockPeriod, + '1' after 10*clockPeriod; + wait for 50*clockPeriod; + -- transition 1 to 0 + input <= '0', + '1' after 1*clockPeriod, + '0' after 3*clockPeriod, + '1' after 5*clockPeriod, + '0' after 6*clockPeriod, + '1' after 8*clockPeriod, + '0' after 10*clockPeriod; + wait for 50*clockPeriod; + -- short 1 pulse + input <= '1', + '0' after 1*clockPeriod, + '1' after 3*clockPeriod, + '0' after 5*clockPeriod, + '1' after 6*clockPeriod, + '0' after 8*clockPeriod; + wait for 50*clockPeriod; + -- further toggle commands + input <= '1', '0' after clockPeriod; + wait for 50*clockPeriod; + input <= '1', '0' after clockPeriod; + wait for 50*clockPeriod; + -- short 1 pulse + -- end of simulation + wait; + end process; + +END ARCHITECTURE test; diff --git a/Libs/Common_test/hds/.hdlsidedata/_clockGenerator_sim.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_clockGenerator_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_clockGenerator_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_commonLib_tb_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_commonLib_tb_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_commonLib_tb_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_debounce_tester_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_debounce_tester_test.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_debounce_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Common_test/hds/.hdlsidedata/_debouncerULogicVector_tester_RTL.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_debouncerULogicVector_tester_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_debouncerULogicVector_tester_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_debouncer_tester_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_debouncer_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_debouncer_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_rotaryToUnsigned_tester_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_rotaryToUnsigned_tester_test.vhd._fpf new file mode 100644 index 0000000..e69b3ef --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_rotaryToUnsigned_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_93 diff --git a/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_entity.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_struct.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tb_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tester_entity.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tester_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_rotarytounsigned_tester_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_spikeFilter_tester_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_spikeFilter_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_spikeFilter_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg.vhd._fpf new file mode 100644 index 0000000..b606e20 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2002 diff --git a/Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg_body.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg_body.vhd._fpf new file mode 100644 index 0000000..b606e20 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_testUtils_pkg_body.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2002 diff --git a/Libs/Common_test/hds/.hdlsidedata/_testUtils_tb_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_testUtils_tb_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_testUtils_tb_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/.hdlsidedata/_toggler_tester_test.vhd._fpf b/Libs/Common_test/hds/.hdlsidedata/_toggler_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Common_test/hds/.hdlsidedata/_toggler_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Common_test/hds/_clockgenerator._epf b/Libs/Common_test/hds/_clockgenerator._epf new file mode 100644 index 0000000..8b8ac62 --- /dev/null +++ b/Libs/Common_test/hds/_clockgenerator._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom clockGenerator_sim.vhd +DEFAULT_ARCHITECTURE atom sim diff --git a/Libs/Common_test/hds/_commonlib_tb._epf b/Libs/Common_test/hds/_commonlib_tb._epf new file mode 100644 index 0000000..092da9c --- /dev/null +++ b/Libs/Common_test/hds/_commonlib_tb._epf @@ -0,0 +1,3 @@ +TOP_MARKER atom 1 +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom commonLib_tb_test.vhd diff --git a/Libs/Common_test/hds/_debounce_tb._epf b/Libs/Common_test/hds/_debounce_tb._epf new file mode 100644 index 0000000..7920295 --- /dev/null +++ b/Libs/Common_test/hds/_debounce_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom debounce_tb/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_debounce_tester._epf b/Libs/Common_test/hds/_debounce_tester._epf new file mode 100644 index 0000000..456e900 --- /dev/null +++ b/Libs/Common_test/hds/_debounce_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom debounce_tester_test.vhd diff --git a/Libs/Common_test/hds/_debouncer_tb._epf b/Libs/Common_test/hds/_debouncer_tb._epf new file mode 100644 index 0000000..1c7f3f7 --- /dev/null +++ b/Libs/Common_test/hds/_debouncer_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom debouncer_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_debouncer_tester._epf b/Libs/Common_test/hds/_debouncer_tester._epf new file mode 100644 index 0000000..967ba8a --- /dev/null +++ b/Libs/Common_test/hds/_debouncer_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom debouncer_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/Common_test/hds/_debouncerulogicvector_tb._epf b/Libs/Common_test/hds/_debouncerulogicvector_tb._epf new file mode 100644 index 0000000..2101ec7 --- /dev/null +++ b/Libs/Common_test/hds/_debouncerulogicvector_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom debouncer@u@logic@vector_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_debouncerulogicvector_tester._epf b/Libs/Common_test/hds/_debouncerulogicvector_tester._epf new file mode 100644 index 0000000..89828c8 --- /dev/null +++ b/Libs/Common_test/hds/_debouncerulogicvector_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom debouncerULogicVector_tester_RTL.vhd diff --git a/Libs/Common_test/hds/_rotarytounsigned_tb._epf b/Libs/Common_test/hds/_rotarytounsigned_tb._epf new file mode 100755 index 0000000..2036a2a --- /dev/null +++ b/Libs/Common_test/hds/_rotarytounsigned_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom rotary@to@unsigned_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_rotarytounsigned_tester._epf b/Libs/Common_test/hds/_rotarytounsigned_tester._epf new file mode 100755 index 0000000..f758d03 --- /dev/null +++ b/Libs/Common_test/hds/_rotarytounsigned_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom rotaryToUnsigned_tester_test.vhd diff --git a/Libs/Common_test/hds/_spikefilter_tb._epf b/Libs/Common_test/hds/_spikefilter_tb._epf new file mode 100644 index 0000000..5050211 --- /dev/null +++ b/Libs/Common_test/hds/_spikefilter_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom spike@filter_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_testutils_tb._epf b/Libs/Common_test/hds/_testutils_tb._epf new file mode 100644 index 0000000..40137e1 --- /dev/null +++ b/Libs/Common_test/hds/_testutils_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom testUtils_tb_test.vhd +DEFAULT_ARCHITECTURE atom test +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_toggler_tb._epf b/Libs/Common_test/hds/_toggler_tb._epf new file mode 100644 index 0000000..94877cb --- /dev/null +++ b/Libs/Common_test/hds/_toggler_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom toggler_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Common_test/hds/_toggler_tester._epf b/Libs/Common_test/hds/_toggler_tester._epf new file mode 100644 index 0000000..17d8815 --- /dev/null +++ b/Libs/Common_test/hds/_toggler_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom toggler_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/Common_test/hds/clock@generator/symbol.sb b/Libs/Common_test/hds/clock@generator/symbol.sb new file mode 100644 index 0000000..6c2577f --- /dev/null +++ b/Libs/Common_test/hds/clock@generator/symbol.sb @@ -0,0 +1,1499 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2074,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_uLogic" +o 1 +suid 2063,0 +) +) +uid 2546,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_uLogic" +o 2 +suid 2064,0 +) +) +uid 2548,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 254,0 +optionalChildren [ +*18 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*19 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*20 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*21 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2547,0 +) +*22 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2549,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*23 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*25 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*26 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*27 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*28 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*29 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*30 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 3031,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*44 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *45 (MRCItem +litem &31 +pos 1 +dimension 20 +) +uid 293,0 +optionalChildren [ +*46 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 296,0 +) +*47 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 298,0 +) +*48 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*49 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 3032,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*50 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 302,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 306,0 +) +*52 (MRCItem +litem &38 +pos 2 +dimension 199 +uid 308,0 +) +*53 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 310,0 +) +*54 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 312,0 +) +*55 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 314,0 +) +*56 (MRCItem +litem &42 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/clock@generator/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/clock@generator/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/clock@generator" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/clockGenerator" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "clockGenerator" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "clockGenerator" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/clock@generator/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/clockGenerator/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "clockGenerator" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3056,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42000,19625,42750,20375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "courier,12,0" +) +xt "37200,19300,41000,20700" +st "clock" +ju 2 +blo "41000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,16500,12300" +st "clock : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_uLogic" +o 1 +suid 2063,0 +) +) +) +*59 (CptPort +uid 2519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3057,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42000,21625,42750,22375" +) +tg (CPTG +uid 2521,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2522,0 +va (VaSet +font "courier,12,0" +) +xt "36900,21300,41000,22700" +st "reset" +ju 2 +blo "41000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2523,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,15500,13200" +st "reset : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_uLogic" +o 2 +suid 2064,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "26000,18000,42000,24000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "26100,23700,33300,24700" +st "Common_test" +blo "26100,24500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "26100,24700,35100,25700" +st "clockGenerator" +blo "26100,25500" +) +) +gi *60 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "26000,28000,41000,30700" +st "Generic Declarations + +clockFrequency real 100.0E6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*61 (Grouping +uid 136,0 +optionalChildren [ +*62 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*67 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*68 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*72 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"26000,25000" +"42000,25000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "26000,25000,42000,25000" +) +oxt "47000,44000,63000,44000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *73 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +uid 103,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*75 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,18600,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1426,895" +viewArea "-1077,-1077,74593,50226" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *76 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *77 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13200,2500,14100" +st "User:" +blo "0,13900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,2000,14100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 3057,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/Common_test/hds/common@lib_tb/symbol.sb b/Libs/Common_test/hds/common@lib_tb/symbol.sb new file mode 100644 index 0000000..83a224d --- /dev/null +++ b/Libs/Common_test/hds/common@lib_tb/symbol.sb @@ -0,0 +1,1276 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/common@lib_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/common@lib_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/common@lib_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/commonLib_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "commonLib_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "commonLib_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/common@lib_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/commonLib_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modeltech_6.3g\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "c:\\eda\\modeltech_6.2c\\win32" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "commonLib_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15000,28200,15900" +st "Common_test" +blo "22200,15700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15900,28700,16800" +st "commonLib_tb" +blo "22200,16600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,62600,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 107,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/debounce_tb/struct.bd b/Libs/Common_test/hds/debounce_tb/struct.bd new file mode 100644 index 0000000..f3d8c0c --- /dev/null +++ b/Libs/Common_test/hds/debounce_tb/struct.bd @@ -0,0 +1,2411 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "Common_test" +duName "debounce_tester" +elements [ +(GiElement +name "g_debounceTime" +type "time" +value "c_debounceTime" +) +(GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "c_minConsecutiveStateCount " +) +(GiElement +name "g_clockFrequency" +type "real" +value "c_clockFrequency" +) +(GiElement +name "g_activeState" +type "std_ulogic" +value "c_activeState" +) +] +mwi 0 +uid 135,0 +) +(Instance +name "I_debouncer" +duLibraryName "Common" +duName "debounce" +elements [ +(GiElement +name "g_debounceTime" +type "time" +value "c_debounceTime" +) +(GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "c_minConsecutiveStateCount " +) +(GiElement +name "g_clockFrequency" +type "real" +value "c_clockFrequency" +) +(GiElement +name "g_activeState" +type "std_ulogic" +value "c_activeState" +) +] +mwi 0 +uid 554,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tb" +) +(vvPair +variable "date" +value "19.01.2024" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "entity_name" +value "debounce_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "19.01.2024" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "10:34:10" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Common_test/work" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "debounce_tb" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "10:34:10" +) +(vvPair +variable "unit" +value "debounce_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2024" +) +(vvPair +variable "yy" +value "24" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Blk +uid 135,0 +shape (Rectangle +uid 136,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "9000,33000,60000,43000" +) +oxt "9000,30000,60000,40000" +ttg (MlTextGroup +uid 137,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*2 (Text +uid 138,0 +va (VaSet +font "Verdana,9,1" +) +xt "28950,36200,37050,37400" +st "Common_test" +blo "28950,37200" +tm "BdLibraryNameMgr" +) +*3 (Text +uid 139,0 +va (VaSet +font "Verdana,9,1" +) +xt "28950,37400,38550,38600" +st "debounce_tester" +blo "28950,38400" +tm "BlkNameMgr" +) +*4 (Text +uid 140,0 +va (VaSet +font "Verdana,9,1" +) +xt "28950,38600,31750,39800" +st "I_tb" +blo "28950,39600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 141,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 142,0 +text (MLText +uid 143,0 +va (VaSet +font "Courier New,8,0" +) +xt "24000,44800,64000,48000" +st "g_debounceTime = c_debounceTime ( time ) +g_minConsecutiveStateCount = c_minConsecutiveStateCount ( positive ) +g_clockFrequency = c_clockFrequency ( real ) +g_activeState = c_activeState ( std_ulogic ) " +) +header "" +) +elements [ +(GiElement +name "g_debounceTime" +type "time" +value "c_debounceTime" +) +(GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "c_minConsecutiveStateCount " +) +(GiElement +name "g_clockFrequency" +type "real" +value "c_clockFrequency" +) +(GiElement +name "g_activeState" +type "std_ulogic" +value "c_activeState" +) +] +) +viewicon (ZoomableIcon +uid 144,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "9250,41250,10750,42750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*5 (Net +uid 145,0 +lang 11 +decl (Decl +n "input" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 146,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,9600,38000,10400" +st "SIGNAL input : std_ulogic" +) +) +*6 (Net +uid 153,0 +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 154,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,38000,8800" +st "SIGNAL clock : std_ulogic" +) +) +*7 (Net +uid 161,0 +lang 11 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,10400,38000,11200" +st "SIGNAL reset : std_ulogic" +) +) +*8 (Net +uid 169,0 +lang 11 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 170,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8800,38000,9600" +st "SIGNAL debounced : std_ulogic" +) +) +*9 (SaComponent +uid 554,0 +optionalChildren [ +*10 (CptPort +uid 538,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 539,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25250,18625,26000,19375" +) +tg (CPTG +uid 540,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 541,0 +va (VaSet +) +xt "27000,18400,30400,19600" +st "clock" +blo "27000,19400" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*11 (CptPort +uid 542,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 543,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25250,20625,26000,21375" +) +tg (CPTG +uid 544,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 545,0 +va (VaSet +) +xt "27000,20400,30300,21600" +st "reset" +blo "27000,21400" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*12 (CptPort +uid 546,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 547,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25250,16625,26000,17375" +) +tg (CPTG +uid 548,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 549,0 +va (VaSet +) +xt "27000,16400,30200,17600" +st "input" +blo "27000,17400" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*13 (CptPort +uid 550,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 551,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38000,16625,38750,17375" +) +tg (CPTG +uid 552,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 553,0 +va (VaSet +) +xt "30900,16400,37000,17600" +st "debounced" +ju 2 +blo "37000,17400" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 555,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "26000,16000,38000,24000" +) +oxt "31000,1000,43000,9000" +ttg (MlTextGroup +uid 556,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*14 (Text +uid 557,0 +va (VaSet +font "Verdana,8,1" +) +xt "31300,19800,35900,20800" +st "Common" +blo "31300,20600" +tm "BdLibraryNameMgr" +) +*15 (Text +uid 558,0 +va (VaSet +font "Verdana,8,1" +) +xt "31300,20800,36400,21800" +st "debounce" +blo "31300,21600" +tm "CptNameMgr" +) +*16 (Text +uid 559,0 +va (VaSet +font "Verdana,8,1" +) +xt "31300,21800,38400,22800" +st "I_debouncer" +blo "31300,22600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 560,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 561,0 +text (MLText +uid 562,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,24200,66000,27400" +st "g_debounceTime = c_debounceTime ( time ) +g_minConsecutiveStateCount = c_minConsecutiveStateCount ( positive ) +g_clockFrequency = c_clockFrequency ( real ) +g_activeState = c_activeState ( std_ulogic ) +" +) +header "" +) +elements [ +(GiElement +name "g_debounceTime" +type "time" +value "c_debounceTime" +) +(GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "c_minConsecutiveStateCount " +) +(GiElement +name "g_clockFrequency" +type "real" +value "c_clockFrequency" +) +(GiElement +name "g_activeState" +type "std_ulogic" +value "c_activeState" +) +] +) +viewicon (ZoomableIcon +uid 563,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "26250,22250,27750,23750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sIVOD 1 +) +archFileType "UNKNOWN" +) +*17 (Wire +uid 147,0 +shape (OrthoPolyLine +uid 148,0 +va (VaSet +vasetType 3 +) +xt "11000,17000,25250,33000" +pts [ +"11000,33000" +"11000,17000" +"25250,17000" +] +) +start &1 +end &12 +sat 2 +eat 32 +st 0 +sf 1 +tg (WTG +uid 151,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 152,0 +ro 270 +va (VaSet +) +xt "9800,29000,11000,32200" +st "input" +blo "10800,32200" +tm "WireNameMgr" +) +) +on &5 +) +*18 (Wire +uid 155,0 +shape (OrthoPolyLine +uid 156,0 +va (VaSet +vasetType 3 +) +xt "13000,19000,25250,33000" +pts [ +"13000,33000" +"13000,19000" +"25250,19000" +] +) +start &1 +end &10 +sat 2 +eat 32 +st 0 +sf 1 +tg (WTG +uid 159,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 160,0 +ro 270 +va (VaSet +) +xt "11800,29000,13000,32400" +st "clock" +blo "12800,32400" +tm "WireNameMgr" +) +) +on &6 +) +*19 (Wire +uid 163,0 +shape (OrthoPolyLine +uid 164,0 +va (VaSet +vasetType 3 +) +xt "14000,21000,25250,33000" +pts [ +"14000,33000" +"14000,21000" +"25250,21000" +] +) +start &1 +end &11 +sat 2 +eat 32 +st 0 +sf 1 +tg (WTG +uid 167,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 168,0 +ro 270 +va (VaSet +) +xt "12800,29000,14000,32300" +st "reset" +blo "13800,32300" +tm "WireNameMgr" +) +) +on &7 +) +*20 (Wire +uid 171,0 +shape (OrthoPolyLine +uid 172,0 +va (VaSet +vasetType 3 +) +xt "38750,17000,56000,33000" +pts [ +"38750,17000" +"56000,17000" +"56000,33000" +] +) +start &13 +end &1 +sat 32 +eat 1 +st 0 +sf 1 +tg (WTG +uid 175,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "40750,15800,46850,17000" +st "debounced" +blo "40750,16800" +tm "WireNameMgr" +) +) +on &8 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *21 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*22 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*23 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*25 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*26 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*27 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*28 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*29 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*30 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-1920,0,1,1048" +viewArea "-1000,-1000,95501,51440" +cachedDiagramExtent "0,0,66000,48000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 563,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*31 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*32 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*33 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*34 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*35 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*36 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*38 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*39 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*41 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*42 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*43 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*44 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*45 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*47 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*49 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*51 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 2 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 2 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,2400,25200,3600" +st "Pre User:" +blo "20000,3400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3600,50500,6800" +st "constant c_debounceTime : time := 10 us; +constant c_minConsecutiveStateCount : positive := 10; +constant c_clockFrequency : real := 60.0e6; +constant c_activeState : std_ulogic := '1';" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,6800,29500,8000" +st "Diagram Signals:" +blo "20000,7800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,11200,26400,12400" +st "Post User:" +blo "20000,12200" +) +postUserText (MLText +uid 8,0 +va (VaSet +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *52 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*53 (RefLabelRowHdr +) +*54 (TitleRowHdr +) +*55 (FilterRowHdr +) +*56 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*57 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*58 (GroupColHdr +tm "GroupColHdrMgr" +) +*59 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*60 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*61 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*62 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*63 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*64 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*65 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "input" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 177,0 +) +*66 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 179,0 +) +*67 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 181,0 +) +*68 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 183,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*69 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *70 (MRCItem +litem &52 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*71 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 70,0 +) +*72 (MRCItem +litem &54 +pos 1 +dimension 23 +uid 71,0 +) +*73 (MRCItem +litem &55 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*74 (MRCItem +litem &65 +pos 0 +dimension 20 +uid 178,0 +) +*75 (MRCItem +litem &66 +pos 1 +dimension 20 +uid 180,0 +) +*76 (MRCItem +litem &67 +pos 2 +dimension 20 +uid 182,0 +) +*77 (MRCItem +litem &68 +pos 3 +dimension 20 +uid 184,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*78 (MRCItem +litem &56 +pos 0 +dimension 20 +uid 74,0 +) +*79 (MRCItem +litem &58 +pos 1 +dimension 50 +uid 75,0 +) +*80 (MRCItem +litem &59 +pos 2 +dimension 100 +uid 76,0 +) +*81 (MRCItem +litem &60 +pos 3 +dimension 50 +uid 77,0 +) +*82 (MRCItem +litem &61 +pos 4 +dimension 100 +uid 78,0 +) +*83 (MRCItem +litem &62 +pos 5 +dimension 100 +uid 79,0 +) +*84 (MRCItem +litem &63 +pos 6 +dimension 50 +uid 80,0 +) +*85 (MRCItem +litem &64 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *86 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*87 (RefLabelRowHdr +) +*88 (TitleRowHdr +) +*89 (FilterRowHdr +) +*90 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*91 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*92 (GroupColHdr +tm "GroupColHdrMgr" +) +*93 (NameColHdr +tm "GenericNameColHdrMgr" +) +*94 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*95 (InitColHdr +tm "GenericValueColHdrMgr" +) +*96 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*97 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*98 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *99 (MRCItem +litem &86 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*100 (MRCItem +litem &87 +pos 0 +dimension 20 +uid 98,0 +) +*101 (MRCItem +litem &88 +pos 1 +dimension 23 +uid 99,0 +) +*102 (MRCItem +litem &89 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*103 (MRCItem +litem &90 +pos 0 +dimension 20 +uid 102,0 +) +*104 (MRCItem +litem &92 +pos 1 +dimension 50 +uid 103,0 +) +*105 (MRCItem +litem &93 +pos 2 +dimension 100 +uid 104,0 +) +*106 (MRCItem +litem &94 +pos 3 +dimension 100 +uid 105,0 +) +*107 (MRCItem +litem &95 +pos 4 +dimension 50 +uid 106,0 +) +*108 (MRCItem +litem &96 +pos 5 +dimension 50 +uid 107,0 +) +*109 (MRCItem +litem &97 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Common_test/hds/debounce_tb/symbol.sb b/Libs/Common_test/hds/debounce_tb/symbol.sb new file mode 100644 index 0000000..1f4d9a9 --- /dev/null +++ b/Libs/Common_test/hds/debounce_tb/symbol.sb @@ -0,0 +1,1215 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +vaOverrides [ +] +) +] +) +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +vaOverrides [ +] +) +] +) +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds\\debounce_tb" +) +(vvPair +variable "d_logical" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds\\debounce_tb" +) +(vvPair +variable "date" +value "12.01.2024" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "12" +) +(vvPair +variable "entity_name" +value "debounce_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "remy.borgeat" +) +(vvPair +variable "graphical_source_date" +value "12.01.2024" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE10993" +) +(vvPair +variable "graphical_source_time" +value "15:29:29" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE10993" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Common_test/work" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "debounce_tb" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\remy.borgeat\\Documents\\git\\DiD\\did-cursor\\Libs\\Prefs\\..\\Common_test\\hds\\debounce_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:29:29" +) +(vvPair +variable "unit" +value "debounce_tb" +) +(vvPair +variable "user" +value "remy.borgeat" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2024" +) +(vvPair +variable "yy" +value "24" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,34900,16000" +st "Common_test" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,34400,17200" +st "debounce_tb" +blo "26800,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,48500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,45200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,2400,45200,3600" +st "User:" +blo "42000,3400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,44000,3600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 50,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/debounce_tester/interface b/Libs/Common_test/hds/debounce_tester/interface new file mode 100644 index 0000000..f20bdc3 --- /dev/null +++ b/Libs/Common_test/hds/debounce_tester/interface @@ -0,0 +1,1600 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 20,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 17,0 +) +) +uid 409,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 18,0 +) +) +uid 411,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 1 +suid 19,0 +) +) +uid 413,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 20,0 +) +) +uid 415,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 410,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 412,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 414,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 416,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "g_debounceTime" +type "time" +value "1 ms" +) +uid 182,0 +) +*48 (LogGeneric +generic (GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "3" +) +uid 184,0 +) +*49 (LogGeneric +generic (GiElement +name "g_clockFrequency" +type "real" +value "60.0e6" +) +uid 186,0 +) +*50 (LogGeneric +generic (GiElement +name "g_activeState" +type "std_ulogic" +value "'1'" +) +uid 188,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &35 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*53 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*54 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*55 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*56 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 183,0 +) +*57 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 185,0 +) +*58 (MRCItem +litem &49 +pos 2 +dimension 20 +uid 187,0 +) +*59 (MRCItem +litem &50 +pos 3 +dimension 20 +uid 189,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*60 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*61 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*62 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*63 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*64 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*65 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*66 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tester" +) +(vvPair +variable "date" +value "19.01.2024" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "entity_name" +value "debounce_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "19.01.2024" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "08:30:58" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Common_test/work" +) +(vvPair +variable "mm" +value "01" +) +(vvPair +variable "module_name" +value "debounce_tester" +) +(vvPair +variable "month" +value "janv." +) +(vvPair +variable "month_long" +value "janvier" +) +(vvPair +variable "p" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\DiD\\eda-libs\\Prefs\\..\\Common_test\\hds\\debounce_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "08:30:58" +) +(vvPair +variable "unit" +value "debounce_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2024" +) +(vvPair +variable "yy" +value "24" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 389,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 390,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18625,5250,19375,6000" +) +tg (CPTG +uid 391,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 392,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "18300,7000,19700,10800" +st "clock" +ju 2 +blo "19500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 393,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61500,4000" +st "clock : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 17,0 +) +) +) +*69 (CptPort +uid 394,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 395,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61625,5250,62375,6000" +) +tg (CPTG +uid 396,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 397,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "61300,7000,62700,14800" +st "debounced" +ju 2 +blo "62500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 398,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,61500,3200" +st "debounced : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 18,0 +) +) +) +*70 (CptPort +uid 399,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 400,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "16625,5250,17375,6000" +) +tg (CPTG +uid 401,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 402,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "16300,7000,17700,11000" +st "input" +ju 2 +blo "17500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 403,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61500,4800" +st "input : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 1 +suid 19,0 +) +) +) +*71 (CptPort +uid 404,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 405,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19625,5250,20375,6000" +) +tg (CPTG +uid 406,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 407,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "19300,7000,20700,11100" +st "reset" +ju 2 +blo "20500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 408,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,60500,5600" +st "reset : OUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 20,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,66000,16000" +) +oxt "15000,6000,25000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "35700,9800,43800,11000" +st "Common_test" +blo "35700,10800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "35700,11000,45300,12200" +st "debounce_tester" +blo "35700,12000" +) +) +gi *72 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "11000,7000,36000,11800" +st "Generic Declarations + +g_debounceTime time 1 ms +g_minConsecutiveStateCount positive 3 +g_clockFrequency real 60.0e6 +g_activeState std_ulogic '1' +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_debounceTime" +type "time" +value "1 ms" +) +(GiElement +name "g_minConsecutiveStateCount" +type "positive" +value "3" +) +(GiElement +name "g_clockFrequency" +type "real" +value "60.0e6" +) +(GiElement +name "g_activeState" +type "std_ulogic" +value "'1'" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*73 (Grouping +uid 16,0 +optionalChildren [ +*74 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47900,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,51000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *84 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*86 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "385,161,1403,851" +viewArea "-500,-500,70600,47560" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Common_test" +entityName "debounce_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *87 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *88 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,5600,45200,6800" +st "User:" +blo "42000,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,44000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 439,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd b/Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd new file mode 100644 index 0000000..6cd630a --- /dev/null +++ b/Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd @@ -0,0 +1,2771 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "Common_test" +duName "debouncerULogicVector_tester" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "inputBitNb" +) +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +] +mwi 0 +uid 377,0 +) +(Instance +name "I_filt" +duLibraryName "Common" +duName "debouncerULogicVector" +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "inputBitNb" +) +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +mwi 0 +uid 6296,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "debouncerULogicVector_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../VerifThin_TB/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncerULogicVector_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "task_perl" +value "c:\\eda\\hds2007.1a\\resources\\perl\\bin\\perl.exe" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "debouncerULogicVector_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-1000,53000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-1000,52400,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-5000,57000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-5000,56800,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-3000,53000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-3000,52400,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-3000,36000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-3000,35800,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-4000,73000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-3800,66400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,-5000,73000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,-5000,59000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-5000,53000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,-4500,47000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-2000,36000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-2000,35200,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-1000,36000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-1000,35800,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-2000,53000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-2000,46400,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,-5000,73000,0" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 377,0 +shape (Rectangle +uid 378,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "19000,-19000,63000,-11000" +) +oxt "64000,30000,150000,40000" +ttg (MlTextGroup +uid 379,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 380,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-10500,25250,-9500" +st "Common_test" +blo "19150,-9700" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 381,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-9500,31950,-8500" +st "debouncerULogicVector_tester" +blo "19150,-8700" +tm "BlkNameMgr" +) +*15 (Text +uid 382,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-8500,20950,-7500" +st "I_tb" +blo "19150,-7700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 383,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 384,0 +text (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "19000,-7600,42000,-5800" +st "inputBitNb = inputBitNb ( positive ) +counterBitNb = counterBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "inputBitNb" +) +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +] +) +viewicon (ZoomableIcon +uid 386,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "19250,-12750,20750,-11250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 6090,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +declText (MLText +uid 6091,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-35700,17000,-34800" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 6098,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +declText (MLText +uid 6099,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-38400,17000,-37500" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 6106,0 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 3 +suid 102,0 +) +declText (MLText +uid 6107,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-36600,29000,-35700" +st "SIGNAL input : std_ulogic_vector(1 TO inputBitNb)" +) +) +*19 (Net +uid 6114,0 +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 2 +suid 103,0 +) +declText (MLText +uid 6115,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-37500,29000,-36600" +st "SIGNAL debounced : std_ulogic_vector(1 TO inputBitNb)" +) +) +*20 (SaComponent +uid 6296,0 +optionalChildren [ +*21 (CptPort +uid 6280,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6281,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-31375,35000,-30625" +) +tg (CPTG +uid 6282,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6283,0 +va (VaSet +) +xt "36000,-31500,38100,-30500" +st "clock" +blo "36000,-30700" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*22 (CptPort +uid 6284,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6285,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-35375,35000,-34625" +) +tg (CPTG +uid 6286,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6287,0 +va (VaSet +) +xt "36000,-35500,38000,-34500" +st "input" +blo "36000,-34700" +) +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 to inputBitNb)" +o 2 +suid 2,0 +) +) +) +*23 (CptPort +uid 6288,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6289,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-29375,35000,-28625" +) +tg (CPTG +uid 6290,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6291,0 +va (VaSet +) +xt "36000,-29500,38100,-28500" +st "reset" +blo "36000,-28700" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*24 (CptPort +uid 6292,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6293,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,-35375,51750,-34625" +) +tg (CPTG +uid 6294,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6295,0 +va (VaSet +) +xt "46000,-35500,50000,-34500" +st "debounced" +ju 2 +blo "50000,-34700" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 to inputBitNb)" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 6297,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,-39000,51000,-27000" +) +oxt "40000,9000,56000,21000" +ttg (MlTextGroup +uid 6298,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 6299,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-27000,39100,-26000" +st "Common" +blo "35200,-26200" +tm "BdLibraryNameMgr" +) +*26 (Text +uid 6300,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-26000,45500,-25000" +st "debouncerULogicVector" +blo "35200,-25200" +tm "CptNameMgr" +) +*27 (Text +uid 6301,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-25000,37200,-24000" +st "I_filt" +blo "35200,-24200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6302,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6303,0 +text (MLText +uid 6304,0 +va (VaSet +font "courier,8,0" +) +xt "35000,-24200,59200,-21500" +st "inputBitNb = inputBitNb ( positive ) +counterBitNb = counterBitNb ( positive ) +invertInput = '0' ( std_ulogic ) " +) +header "" +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "inputBitNb" +) +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +) +viewicon (ZoomableIcon +uid 6305,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,-28750,36750,-27250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*28 (Wire +uid 6092,0 +shape (OrthoPolyLine +uid 6093,0 +va (VaSet +vasetType 3 +) +xt "33000,-29000,34250,-19000" +pts [ +"34250,-29000" +"33000,-29000" +"33000,-19000" +] +) +start &23 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6096,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6097,0 +va (VaSet +) +xt "31250,-30000,34250,-29000" +st "reset" +blo "31250,-29200" +tm "WireNameMgr" +) +) +on &16 +) +*29 (Wire +uid 6100,0 +shape (OrthoPolyLine +uid 6101,0 +va (VaSet +vasetType 3 +) +xt "31000,-31000,34250,-19000" +pts [ +"34250,-31000" +"31000,-31000" +"31000,-19000" +] +) +start &21 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6104,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6105,0 +va (VaSet +) +xt "31250,-32000,34250,-31000" +st "clock" +blo "31250,-31200" +tm "WireNameMgr" +) +) +on &17 +) +*30 (Wire +uid 6108,0 +shape (OrthoPolyLine +uid 6109,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "27000,-35000,34250,-19000" +pts [ +"34250,-35000" +"27000,-35000" +"27000,-19000" +] +) +start &22 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 6112,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6113,0 +va (VaSet +) +xt "31250,-36000,33250,-35000" +st "input" +blo "31250,-35200" +tm "WireNameMgr" +) +) +on &18 +) +*31 (Wire +uid 6116,0 +shape (OrthoPolyLine +uid 6117,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,-35000,55000,-19000" +pts [ +"51750,-35000" +"55000,-35000" +"55000,-19000" +] +) +start &24 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 6120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6121,0 +va (VaSet +) +xt "53750,-36000,59150,-35000" +st "debounced" +blo "53750,-35200" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *32 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,-49000,5400,-48000" +st "Package List" +blo "0,-48200" +) +*34 (MLText +uid 43,0 +va (VaSet +) +xt "0,-48000,18600,-45000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*36 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*37 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*38 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*39 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "100,37,1441,900" +viewArea "-1094,-50068,78847,1302" +cachedDiagramExtent "0,-49000,73000,6000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-49000" +lastUid 6367,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*43 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*44 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,3200,6500" +st "I0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*46 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*47 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,1550,6500" +st "I0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*50 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,1900,6500" +st "I0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*52 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*53 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,1500,6500" +st "I0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*55 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*56 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1050,6500" +st "I0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*58 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*60 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,-44200,5400,-43200" +st "Declarations" +blo "0,-43400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,-43200,2700,-42200" +st "Ports:" +blo "0,-42400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,-42200,3800,-41200" +st "Pre User:" +blo "0,-41400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-41200,21500,-39400" +st "constant inputBitNb : positive := 3; +constant counterBitNb : positive := 4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,-39400,7100,-38400" +st "Diagram Signals:" +blo "0,-38600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,-44200,4700,-43200" +st "Post User:" +blo "0,-43400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,-44200,0,-44200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 103,0 +usingSuid 1 +emptyRow *63 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*71 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*72 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*73 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*74 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*75 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*76 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +) +uid 6122,0 +) +*77 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +) +uid 6124,0 +) +*78 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 3 +suid 102,0 +) +) +uid 6126,0 +) +*79 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 2 +suid 103,0 +) +) +uid 6128,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 70,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 71,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*85 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 6123,0 +) +*86 (MRCItem +litem &77 +pos 1 +dimension 20 +uid 6125,0 +) +*87 (MRCItem +litem &78 +pos 2 +dimension 20 +uid 6127,0 +) +*88 (MRCItem +litem &79 +pos 3 +dimension 20 +uid 6129,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*89 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 74,0 +) +*90 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 75,0 +) +*91 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 76,0 +) +*92 (MRCItem +litem &71 +pos 3 +dimension 50 +uid 77,0 +) +*93 (MRCItem +litem &72 +pos 4 +dimension 100 +uid 78,0 +) +*94 (MRCItem +litem &73 +pos 5 +dimension 100 +uid 79,0 +) +*95 (MRCItem +litem &74 +pos 6 +dimension 50 +uid 80,0 +) +*96 (MRCItem +litem &75 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *97 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*98 (RefLabelRowHdr +) +*99 (TitleRowHdr +) +*100 (FilterRowHdr +) +*101 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*102 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*103 (GroupColHdr +tm "GroupColHdrMgr" +) +*104 (NameColHdr +tm "GenericNameColHdrMgr" +) +*105 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*106 (InitColHdr +tm "GenericValueColHdrMgr" +) +*107 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*108 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*109 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *110 (MRCItem +litem &97 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*111 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 98,0 +) +*112 (MRCItem +litem &99 +pos 1 +dimension 23 +uid 99,0 +) +*113 (MRCItem +litem &100 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*114 (MRCItem +litem &101 +pos 0 +dimension 20 +uid 102,0 +) +*115 (MRCItem +litem &103 +pos 1 +dimension 50 +uid 103,0 +) +*116 (MRCItem +litem &104 +pos 2 +dimension 100 +uid 104,0 +) +*117 (MRCItem +litem &105 +pos 3 +dimension 100 +uid 105,0 +) +*118 (MRCItem +litem &106 +pos 4 +dimension 50 +uid 106,0 +) +*119 (MRCItem +litem &107 +pos 5 +dimension 50 +uid 107,0 +) +*120 (MRCItem +litem &108 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb b/Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb new file mode 100644 index 0000000..7ee2216 --- /dev/null +++ b/Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb @@ -0,0 +1,1278 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "debouncerULogicVector_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:50" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncerULogicVector_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modeltech_6.3g\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "c:\\eda\\modeltech_6.2c\\win32" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:50" +) +(vvPair +variable "unit" +value "debouncerULogicVector_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15000,28200,15900" +st "Common_test" +blo "22200,15700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15900,34700,16800" +st "debouncerULogicVector_tb" +blo "22200,16600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,62600,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 107,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface b/Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface new file mode 100644 index 0000000..5fdf9b1 --- /dev/null +++ b/Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface @@ -0,0 +1,1252 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 28,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 49,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 25,0 +) +) +uid 475,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 2 +suid 26,0 +) +) +uid 477,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 3 +suid 27,0 +) +) +uid 479,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 28,0 +) +) +uid 481,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 62,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 64,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 65,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 66,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 67,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 476,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 478,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 480,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 482,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 68,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 69,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 70,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 71,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 73,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 75,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 76,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 63,0 +vaOverrides [ +] +) +] +) +uid 48,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 78,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "inputBitNb" +type "positive" +value "" +) +uid 229,0 +) +*48 (LogGeneric +generic (GiElement +name "counterBitNb" +type "positive" +value "" +) +uid 305,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 90,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 92,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 93,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 94,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 95,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 230,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 306,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 97,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 98,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 99,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 100,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 101,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 102,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 91,0 +vaOverrides [ +] +) +] +) +uid 77,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "debouncerULogicVector_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncerULogicVector_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "debouncerULogicVector_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 47,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 455,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 456,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 457,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 458,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9500" +st "clock" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 459,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3300,60500,4200" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 25,0 +) +) +) +*65 (CptPort +uid 460,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 461,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 462,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 463,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "50550,7000,51450,11500" +st "debounced" +ju 2 +blo "51250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 464,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2400,72500,3300" +st "debounced : IN std_ulogic_vector (1 TO inputBitNb) ; +" +) +thePort (LogicalPort +decl (Decl +n "debounced" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 2 +suid 26,0 +) +) +) +*66 (CptPort +uid 465,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 466,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 467,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 468,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,9500" +st "input" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 469,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4200,72500,5100" +st "input : OUT std_ulogic_vector (1 TO inputBitNb) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(1 TO inputBitNb)" +o 3 +suid 27,0 +) +) +) +*67 (CptPort +uid 470,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 471,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 472,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 473,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "reset" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 474,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5100,59500,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 28,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "29750,9100,35750,10000" +st "Common_test" +blo "29750,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "29750,10000,44250,10900" +st "debouncerULogicVector_tester" +blo "29750,10700" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,9,0" +) +xt "14000,6000,26500,9600" +st "Generic Declarations + +inputBitNb positive +counterBitNb positive " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "inputBitNb" +type "positive" +value "" +) +(GiElement +name "counterBitNb" +type "positive" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *69 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 17,0 +va (VaSet +font "courier,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*71 (MLText +uid 18,0 +va (VaSet +font "courier,9,0" +) +xt "0,1200,15500,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "72,45,1089,735" +viewArea "-500,-500,71320,48820" +cachedDiagramExtent "0,0,74000,14000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Common_test" +entityName "debouncerULogicVector_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,31000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "20300,14800,25700,16000" +st "" +blo "20300,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "20300,16000,24200,17200" +st "" +blo "20300,17000" +) +) +gi *72 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,9,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *73 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,9,1" +) +xt "42000,6000,44500,6900" +st "User:" +blo "42000,6700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,9,0" +) +xt "44000,6900,44000,6900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 482,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Common_test/hds/debouncer_tb/struct.bd b/Libs/Common_test/hds/debouncer_tb/struct.bd new file mode 100644 index 0000000..6bf6f9f --- /dev/null +++ b/Libs/Common_test/hds/debouncer_tb/struct.bd @@ -0,0 +1,2714 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "Common_test" +duName "debouncer_tester" +elements [ +] +mwi 0 +uid 377,0 +) +(Instance +name "I_filt" +duLibraryName "Common" +duName "debouncer" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +] +mwi 0 +uid 6208,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "debouncer_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../VerifThin_TB/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncer_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "task_perl" +value "c:\\eda\\hds2007.1a\\resources\\perl\\bin\\perl.exe" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "debouncer_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-1000,53000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-1000,52400,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-5000,57000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-5000,56800,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-3000,53000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-3000,52400,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-3000,36000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-3000,35800,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-4000,73000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-3800,66400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,-5000,73000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,-5000,59000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-5000,53000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,-4500,47000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-2000,36000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-2000,35200,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-1000,36000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-1000,35800,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-2000,53000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-2000,51800,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,-5000,73000,0" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 377,0 +shape (Rectangle +uid 378,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "19000,-19000,63000,-11000" +) +oxt "64000,30000,150000,40000" +ttg (MlTextGroup +uid 379,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 380,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-10500,25250,-9500" +st "Common_test" +blo "19150,-9700" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 381,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-9500,26450,-8500" +st "debouncer_tester" +blo "19150,-8700" +tm "BlkNameMgr" +) +*15 (Text +uid 382,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-8500,20950,-7500" +st "I_tb" +blo "19150,-7700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 383,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 384,0 +text (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "19000,-7600,42500,-6000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 386,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "19250,-12750,20750,-11250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 6090,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +declText (MLText +uid 6091,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-36600,17000,-35700" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 6098,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +declText (MLText +uid 6099,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-39300,17000,-38400" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 6106,0 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 102,0 +) +declText (MLText +uid 6107,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-37500,17000,-36600" +st "SIGNAL input : std_ulogic" +) +) +*19 (Net +uid 6114,0 +decl (Decl +n "debounced" +t "std_ulogic" +o 2 +suid 103,0 +) +declText (MLText +uid 6115,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-38400,17000,-37500" +st "SIGNAL debounced : std_ulogic" +) +) +*20 (SaComponent +uid 6208,0 +optionalChildren [ +*21 (CptPort +uid 6192,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6193,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-31375,35000,-30625" +) +tg (CPTG +uid 6194,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6195,0 +va (VaSet +) +xt "36000,-31500,38100,-30500" +st "clock" +blo "36000,-30700" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*22 (CptPort +uid 6196,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6197,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-35375,35000,-34625" +) +tg (CPTG +uid 6198,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6199,0 +va (VaSet +) +xt "36000,-35500,38000,-34500" +st "input" +blo "36000,-34700" +) +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*23 (CptPort +uid 6200,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6201,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-29375,35000,-28625" +) +tg (CPTG +uid 6202,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6203,0 +va (VaSet +) +xt "36000,-29500,38100,-28500" +st "reset" +blo "36000,-28700" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*24 (CptPort +uid 6204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,-35375,51750,-34625" +) +tg (CPTG +uid 6206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6207,0 +va (VaSet +) +xt "46000,-35500,50000,-34500" +st "debounced" +ju 2 +blo "50000,-34700" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "debounced" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 6209,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,-39000,51000,-27000" +) +oxt "40000,9000,56000,21000" +ttg (MlTextGroup +uid 6210,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 6211,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-27000,39100,-26000" +st "Common" +blo "35200,-26200" +tm "BdLibraryNameMgr" +) +*26 (Text +uid 6212,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-26000,39600,-25000" +st "debouncer" +blo "35200,-25200" +tm "CptNameMgr" +) +*27 (Text +uid 6213,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-25000,37200,-24000" +st "I_filt" +blo "35200,-24200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6214,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6215,0 +text (MLText +uid 6216,0 +va (VaSet +font "courier,8,0" +) +xt "35000,-24200,58000,-23300" +st "counterBitNb = counterBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +] +) +viewicon (ZoomableIcon +uid 6217,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,-28750,36750,-27250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sIVOD 1 +) +archFileType "UNKNOWN" +) +*28 (Wire +uid 6092,0 +shape (OrthoPolyLine +uid 6093,0 +va (VaSet +vasetType 3 +) +xt "33000,-29000,34250,-19000" +pts [ +"34250,-29000" +"33000,-29000" +"33000,-19000" +] +) +start &23 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6096,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6097,0 +va (VaSet +) +xt "31250,-30000,34250,-29000" +st "reset" +blo "31250,-29200" +tm "WireNameMgr" +) +) +on &16 +) +*29 (Wire +uid 6100,0 +shape (OrthoPolyLine +uid 6101,0 +va (VaSet +vasetType 3 +) +xt "31000,-31000,34250,-19000" +pts [ +"34250,-31000" +"31000,-31000" +"31000,-19000" +] +) +start &21 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6104,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6105,0 +va (VaSet +) +xt "31250,-32000,34250,-31000" +st "clock" +blo "31250,-31200" +tm "WireNameMgr" +) +) +on &17 +) +*30 (Wire +uid 6108,0 +shape (OrthoPolyLine +uid 6109,0 +va (VaSet +vasetType 3 +) +xt "27000,-35000,34250,-19000" +pts [ +"34250,-35000" +"27000,-35000" +"27000,-19000" +] +) +start &22 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6112,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6113,0 +va (VaSet +) +xt "31250,-36000,33250,-35000" +st "input" +blo "31250,-35200" +tm "WireNameMgr" +) +) +on &18 +) +*31 (Wire +uid 6116,0 +shape (OrthoPolyLine +uid 6117,0 +va (VaSet +vasetType 3 +) +xt "51750,-35000,55000,-19000" +pts [ +"51750,-35000" +"55000,-35000" +"55000,-19000" +] +) +start &24 +end &12 +sat 32 +eat 1 +st 0 +sf 1 +tg (WTG +uid 6120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6121,0 +va (VaSet +) +xt "53750,-36000,59150,-35000" +st "debounced" +blo "53750,-35200" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *32 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,-49000,5400,-48000" +st "Package List" +blo "0,-48200" +) +*34 (MLText +uid 43,0 +va (VaSet +) +xt "0,-48000,18600,-45000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*36 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*37 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*38 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*39 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "101,37,1441,900" +viewArea "-1100,-50100,76249,1581" +cachedDiagramExtent "0,-49000,73000,6000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-49000" +lastUid 6279,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*43 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*44 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,3200,6500" +st "I0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*46 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*47 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,1550,6500" +st "I0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*50 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,1900,6500" +st "I0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*52 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*53 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,1500,6500" +st "I0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*55 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*56 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1050,6500" +st "I0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*58 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*60 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,-44200,5400,-43200" +st "Declarations" +blo "0,-43400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,-43200,2700,-42200" +st "Ports:" +blo "0,-42400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,-42200,3800,-41200" +st "Pre User:" +blo "0,-41400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-41200,21500,-40300" +st "constant counterBitNb : positive := 4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,-40300,7100,-39300" +st "Diagram Signals:" +blo "0,-39500" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,-44200,4700,-43200" +st "Post User:" +blo "0,-43400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,-44200,0,-44200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 103,0 +usingSuid 1 +emptyRow *63 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*71 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*72 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*73 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*74 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*75 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*76 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +) +uid 6122,0 +) +*77 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +) +uid 6124,0 +) +*78 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 102,0 +) +) +uid 6126,0 +) +*79 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "debounced" +t "std_ulogic" +o 2 +suid 103,0 +) +) +uid 6128,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 70,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 71,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*85 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 6123,0 +) +*86 (MRCItem +litem &77 +pos 1 +dimension 20 +uid 6125,0 +) +*87 (MRCItem +litem &78 +pos 2 +dimension 20 +uid 6127,0 +) +*88 (MRCItem +litem &79 +pos 3 +dimension 20 +uid 6129,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*89 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 74,0 +) +*90 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 75,0 +) +*91 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 76,0 +) +*92 (MRCItem +litem &71 +pos 3 +dimension 50 +uid 77,0 +) +*93 (MRCItem +litem &72 +pos 4 +dimension 100 +uid 78,0 +) +*94 (MRCItem +litem &73 +pos 5 +dimension 100 +uid 79,0 +) +*95 (MRCItem +litem &74 +pos 6 +dimension 50 +uid 80,0 +) +*96 (MRCItem +litem &75 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *97 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*98 (RefLabelRowHdr +) +*99 (TitleRowHdr +) +*100 (FilterRowHdr +) +*101 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*102 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*103 (GroupColHdr +tm "GroupColHdrMgr" +) +*104 (NameColHdr +tm "GenericNameColHdrMgr" +) +*105 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*106 (InitColHdr +tm "GenericValueColHdrMgr" +) +*107 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*108 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*109 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *110 (MRCItem +litem &97 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*111 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 98,0 +) +*112 (MRCItem +litem &99 +pos 1 +dimension 23 +uid 99,0 +) +*113 (MRCItem +litem &100 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*114 (MRCItem +litem &101 +pos 0 +dimension 20 +uid 102,0 +) +*115 (MRCItem +litem &103 +pos 1 +dimension 50 +uid 103,0 +) +*116 (MRCItem +litem &104 +pos 2 +dimension 100 +uid 104,0 +) +*117 (MRCItem +litem &105 +pos 3 +dimension 100 +uid 105,0 +) +*118 (MRCItem +litem &106 +pos 4 +dimension 50 +uid 106,0 +) +*119 (MRCItem +litem &107 +pos 5 +dimension 50 +uid 107,0 +) +*120 (MRCItem +litem &108 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Common_test/hds/debouncer_tb/symbol.sb b/Libs/Common_test/hds/debouncer_tb/symbol.sb new file mode 100644 index 0000000..7a17155 --- /dev/null +++ b/Libs/Common_test/hds/debouncer_tb/symbol.sb @@ -0,0 +1,1278 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "debouncer_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncer_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modeltech_6.3g\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "c:\\eda\\modeltech_6.2c\\win32" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "debouncer_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15000,28200,15900" +st "Common_test" +blo "22200,15700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15900,28700,16800" +st "debouncer_tb" +blo "22200,16600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,62600,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 107,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/debouncer_tester/interface b/Libs/Common_test/hds/debouncer_tester/interface new file mode 100644 index 0000000..4dd7ca3 --- /dev/null +++ b/Libs/Common_test/hds/debouncer_tester/interface @@ -0,0 +1,1523 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 9,0 +) +) +uid 253,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "debounced" +t "std_ulogic" +o 2 +suid 10,0 +) +) +uid 255,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 11,0 +) +) +uid 257,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 12,0 +) +) +uid 259,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 254,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 256,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 258,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 260,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 124,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 125,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 126,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 129,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 130,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 131,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 132,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 133,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 134,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "debouncer_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncer_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "debouncer_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 234,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 235,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 236,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9500" +st "clock" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 237,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,60500,3800" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 9,0 +) +) +) +*61 (CptPort +uid 238,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 239,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 240,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 241,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "50550,7000,51450,11500" +st "debounced" +ju 2 +blo "51250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 242,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,60500,2900" +st "debounced : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "debounced" +t "std_ulogic" +o 2 +suid 10,0 +) +) +) +*62 (CptPort +uid 243,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 244,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 245,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 246,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,9500" +st "input" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 247,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,60500,4700" +st "input : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 11,0 +) +) +) +*63 (CptPort +uid 248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 249,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 250,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 251,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "reset" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 252,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,59500,5600" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 12,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "32750,9100,38750,10000" +st "Common_test" +blo "32750,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "32750,10000,41250,10900" +st "debouncer_tester" +blo "32750,10700" +) +) +gi *64 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "13000,6000,23500,6900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*65 (Grouping +uid 16,0 +optionalChildren [ +*66 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *76 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*78 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Common_test" +entityName "debouncer_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *79 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *80 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,5600,44500,6500" +st "User:" +blo "42000,6300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,44000,6500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 260,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd b/Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd new file mode 100644 index 0000000..766893e --- /dev/null +++ b/Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd @@ -0,0 +1,2783 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "Common_test" +duName "rotaryToUnsigned_tester" +elements [ +(GiElement +name "rotaryBitNb" +type "positive" +value "rotaryBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "outputBitNb" +) +] +mwi 0 +uid 377,0 +) +(Instance +name "I_DUT" +duLibraryName "Common" +duName "rotaryToUnsigned" +elements [ +(GiElement +name "rotaryBitNb" +type "positive" +value "rotaryBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "outputBitNb" +) +(GiElement +name "counterBitNb" +type "positive" +value "deglitchCounterBitNb" +) +] +mwi 0 +uid 6518,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotaryToUnsigned_tb" +) +(vvPair +variable "date" +value "11/07/19" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "rotaryToUnsigned_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "11/07/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:40:36" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../VerifThin_TB/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/Common_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "rotaryToUnsigned_tb" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotaryToUnsigned_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "task_perl" +value "c:\\eda\\hds2007.1a\\resources\\perl\\bin\\perl.exe" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:40:36" +) +(vvPair +variable "unit" +value "rotaryToUnsigned_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-1000,53000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-1000,52400,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-5000,57000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-5000,56800,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-3000,53000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-3000,52400,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-3000,36000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-3000,35800,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-4000,73000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-3800,66400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,-5000,73000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,-5000,59000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-5000,53000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,-4500,47000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-2000,36000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-2000,35200,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-1000,36000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-1000,35800,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-2000,53000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-2000,46400,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,-5000,73000,0" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 377,0 +shape (Rectangle +uid 378,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "19000,-19000,63000,-11000" +) +oxt "64000,30000,150000,40000" +ttg (MlTextGroup +uid 379,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 380,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-10500,25150,-9600" +st "Common_test" +blo "19150,-9800" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 381,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-9500,31150,-8600" +st "rotaryToUnsigned_tester" +blo "19150,-8800" +tm "BlkNameMgr" +) +*15 (Text +uid 382,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-8500,20950,-7500" +st "I_tb" +blo "19150,-7700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 383,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 384,0 +text (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "19000,-7600,41000,-5800" +st "rotaryBitNb = rotaryBitNb ( positive ) +outputBitNb = outputBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "rotaryBitNb" +type "positive" +value "rotaryBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "outputBitNb" +) +] +) +viewicon (ZoomableIcon +uid 386,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "19250,-12750,20750,-11250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 6090,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +declText (MLText +uid 6091,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-35700,15500,-34800" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 6098,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +declText (MLText +uid 6099,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-37500,15500,-36600" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 6456,0 +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 3 +suid 104,0 +) +declText (MLText +uid 6457,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-34800,26500,-33900" +st "SIGNAL rotary : unsigned(rotaryBitNb-1 downto 0)" +) +) +*19 (Net +uid 6464,0 +lang 11 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 4 +suid 105,0 +) +declText (MLText +uid 6465,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-36600,26500,-35700" +st "SIGNAL number : unsigned(outputBitNb-1 DOWNTO 0)" +) +) +*20 (SaComponent +uid 6518,0 +optionalChildren [ +*21 (CptPort +uid 6502,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6503,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,-35375,51750,-34625" +) +tg (CPTG +uid 6504,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6505,0 +va (VaSet +) +xt "46400,-35500,50000,-34500" +st "number" +ju 2 +blo "50000,-34700" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 3 +suid 1,0 +) +) +) +*22 (CptPort +uid 6506,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6507,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-35375,35000,-34625" +) +tg (CPTG +uid 6508,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6509,0 +va (VaSet +) +xt "36000,-35500,39600,-34500" +st "rotary" +blo "36000,-34700" +) +) +thePort (LogicalPort +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 4 +suid 2,0 +) +) +) +*23 (CptPort +uid 6510,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6511,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-31375,35000,-30625" +) +tg (CPTG +uid 6512,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6513,0 +va (VaSet +) +xt "36000,-31500,39000,-30500" +st "clock" +blo "36000,-30700" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*24 (CptPort +uid 6514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6515,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-29375,35000,-28625" +) +tg (CPTG +uid 6516,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6517,0 +va (VaSet +) +xt "36000,-29500,39000,-28500" +st "reset" +blo "36000,-28700" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 6519,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,-39000,51000,-27000" +) +oxt "26000,16000,42000,28000" +ttg (MlTextGroup +uid 6520,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 6521,0 +va (VaSet +font "courier,8,1" +) +xt "35250,-27000,38250,-26100" +st "Common" +blo "35250,-26300" +tm "BdLibraryNameMgr" +) +*26 (Text +uid 6522,0 +va (VaSet +font "courier,8,1" +) +xt "35250,-26100,43750,-25200" +st "rotaryToUnsigned" +blo "35250,-25400" +tm "CptNameMgr" +) +*27 (Text +uid 6523,0 +va (VaSet +font "courier,8,1" +) +xt "35250,-25200,37750,-24300" +st "I_DUT" +blo "35250,-24500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6524,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6525,0 +text (MLText +uid 6526,0 +va (VaSet +font "courier,8,0" +) +xt "35000,-24200,62000,-21500" +st "rotaryBitNb = rotaryBitNb ( positive ) +outputBitNb = outputBitNb ( positive ) +counterBitNb = deglitchCounterBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "rotaryBitNb" +type "positive" +value "rotaryBitNb" +) +(GiElement +name "outputBitNb" +type "positive" +value "outputBitNb" +) +(GiElement +name "counterBitNb" +type "positive" +value "deglitchCounterBitNb" +) +] +) +viewicon (ZoomableIcon +uid 6527,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,-28750,36750,-27250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*28 (Wire +uid 6092,0 +shape (OrthoPolyLine +uid 6093,0 +va (VaSet +vasetType 3 +) +xt "33000,-29000,34250,-19000" +pts [ +"34250,-29000" +"33000,-29000" +"33000,-19000" +] +) +start &24 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6096,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6097,0 +va (VaSet +) +xt "31250,-30000,34250,-29000" +st "reset" +blo "31250,-29200" +tm "WireNameMgr" +) +) +on &16 +) +*29 (Wire +uid 6100,0 +shape (OrthoPolyLine +uid 6101,0 +va (VaSet +vasetType 3 +) +xt "31000,-31000,34250,-19000" +pts [ +"34250,-31000" +"31000,-31000" +"31000,-19000" +] +) +start &23 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6104,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6105,0 +va (VaSet +) +xt "31250,-32000,34250,-31000" +st "clock" +blo "31250,-31200" +tm "WireNameMgr" +) +) +on &17 +) +*30 (Wire +uid 6458,0 +shape (OrthoPolyLine +uid 6459,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "27000,-35000,34250,-19000" +pts [ +"34250,-35000" +"27000,-35000" +"27000,-19000" +] +) +start &22 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6462,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6463,0 +va (VaSet +) +xt "29250,-36000,32850,-35000" +st "rotary" +blo "29250,-35200" +tm "WireNameMgr" +) +) +on &18 +) +*31 (Wire +uid 6466,0 +shape (OrthoPolyLine +uid 6467,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,-35000,55000,-19000" +pts [ +"51750,-35000" +"55000,-35000" +"55000,-19000" +] +) +start &21 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6470,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6471,0 +va (VaSet +) +xt "53750,-36000,57350,-35000" +st "number" +blo "53750,-35200" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *32 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,-49000,5400,-48000" +st "Package List" +blo "0,-48200" +) +*34 (MLText +uid 43,0 +va (VaSet +) +xt "0,-48000,18600,-45000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*36 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*37 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*38 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*39 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "92,43,1433,906" +viewArea "-1096,-50068,78670,-625" +cachedDiagramExtent "0,-49000,73000,6000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-49000" +lastUid 6527,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*43 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*44 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,3200,6500" +st "I0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*46 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*47 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,1550,6500" +st "I0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*50 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,1900,6500" +st "I0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*52 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*53 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,1500,6500" +st "I0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*55 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*56 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1050,6500" +st "I0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*58 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*60 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,-44200,5400,-43200" +st "Declarations" +blo "0,-43400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,-43200,2700,-42200" +st "Ports:" +blo "0,-42400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,-42200,3800,-41200" +st "Pre User:" +blo "0,-41400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-41200,25500,-38500" +st "constant rotaryBitNb : positive := 4; +constant outputBitNb : positive := 6; +constant deglitchCounterBitNb : positive := 4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,-38500,7100,-37500" +st "Diagram Signals:" +blo "0,-37700" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,-44200,4700,-43200" +st "Post User:" +blo "0,-43400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,-44200,0,-44200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 105,0 +usingSuid 1 +emptyRow *63 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*71 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*72 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*73 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*74 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*75 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*76 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +) +uid 6122,0 +) +*77 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +) +uid 6124,0 +) +*78 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 3 +suid 104,0 +) +) +uid 6472,0 +) +*79 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 4 +suid 105,0 +) +) +uid 6474,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 70,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 71,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*85 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 6123,0 +) +*86 (MRCItem +litem &77 +pos 1 +dimension 20 +uid 6125,0 +) +*87 (MRCItem +litem &78 +pos 2 +dimension 20 +uid 6473,0 +) +*88 (MRCItem +litem &79 +pos 3 +dimension 20 +uid 6475,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*89 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 74,0 +) +*90 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 75,0 +) +*91 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 76,0 +) +*92 (MRCItem +litem &71 +pos 3 +dimension 50 +uid 77,0 +) +*93 (MRCItem +litem &72 +pos 4 +dimension 100 +uid 78,0 +) +*94 (MRCItem +litem &73 +pos 5 +dimension 100 +uid 79,0 +) +*95 (MRCItem +litem &74 +pos 6 +dimension 50 +uid 80,0 +) +*96 (MRCItem +litem &75 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *97 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*98 (RefLabelRowHdr +) +*99 (TitleRowHdr +) +*100 (FilterRowHdr +) +*101 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*102 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*103 (GroupColHdr +tm "GroupColHdrMgr" +) +*104 (NameColHdr +tm "GenericNameColHdrMgr" +) +*105 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*106 (InitColHdr +tm "GenericValueColHdrMgr" +) +*107 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*108 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*109 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *110 (MRCItem +litem &97 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*111 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 98,0 +) +*112 (MRCItem +litem &99 +pos 1 +dimension 23 +uid 99,0 +) +*113 (MRCItem +litem &100 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*114 (MRCItem +litem &101 +pos 0 +dimension 20 +uid 102,0 +) +*115 (MRCItem +litem &103 +pos 1 +dimension 50 +uid 103,0 +) +*116 (MRCItem +litem &104 +pos 2 +dimension 100 +uid 104,0 +) +*117 (MRCItem +litem &105 +pos 3 +dimension 100 +uid 105,0 +) +*118 (MRCItem +litem &106 +pos 4 +dimension 50 +uid 106,0 +) +*119 (MRCItem +litem &107 +pos 5 +dimension 50 +uid 107,0 +) +*120 (MRCItem +litem &108 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Common_test/hds/rotary@to@unsigned_tb/symbol.sb b/Libs/Common_test/hds/rotary@to@unsigned_tb/symbol.sb new file mode 100644 index 0000000..7ee2216 --- /dev/null +++ b/Libs/Common_test/hds/rotary@to@unsigned_tb/symbol.sb @@ -0,0 +1,1278 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "debouncerULogicVector_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:50" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "debouncerULogicVector_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncer@u@logic@vector_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/debouncerULogicVector_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modeltech_6.3g\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "c:\\eda\\modeltech_6.2c\\win32" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:50" +) +(vvPair +variable "unit" +value "debouncerULogicVector_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15000,28200,15900" +st "Common_test" +blo "22200,15700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15900,34700,16800" +st "debouncerULogicVector_tb" +blo "22200,16600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,62600,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 107,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/rotary@to@unsigned_tester/interface b/Libs/Common_test/hds/rotary@to@unsigned_tester/interface new file mode 100644 index 0000000..baea531 --- /dev/null +++ b/Libs/Common_test/hds/rotary@to@unsigned_tester/interface @@ -0,0 +1,1562 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 5,0 +) +) +uid 229,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 4 +suid 6,0 +) +) +uid 231,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 233,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 3 +suid 8,0 +) +) +uid 235,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 230,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 232,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 234,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 236,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "rotaryBitNb" +type "positive" +value "4" +) +uid 159,0 +) +*48 (LogGeneric +generic (GiElement +name "outputBitNb" +type "positive" +value "6" +) +uid 184,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &35 +pos 2 +dimension 20 +) +uid 124,0 +optionalChildren [ +*51 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 125,0 +) +*52 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 126,0 +) +*53 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*54 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 160,0 +) +*55 (MRCItem +litem &48 +pos 1 +dimension 20 +uid 185,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*56 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 129,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 130,0 +) +*58 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 131,0 +) +*59 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 132,0 +) +*60 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 133,0 +) +*61 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 134,0 +) +*62 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotaryToUnsigned_tester" +) +(vvPair +variable "date" +value "11/07/19" +) +(vvPair +variable "day" +value "Thu" +) +(vvPair +variable "day_long" +value "Thursday" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "entity_name" +value "rotaryToUnsigned_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "11/07/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "11:54:00" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/$DESIGN_NAME/Common_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "rotaryToUnsigned_tester" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotary@to@unsigned_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/ElN_local/Labs/ElN_support/SinewaveGenerator/Libs/Common_test/hds/rotaryToUnsigned_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:54:00" +) +(vvPair +variable "unit" +value "rotaryToUnsigned_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 210,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 211,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 212,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9500" +st "clock" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 213,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,59000,3600" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 5,0 +) +) +) +*65 (CptPort +uid 214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 215,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 216,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 217,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "50550,7000,51450,10000" +st "number" +ju 2 +blo "51250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 218,0 +va (VaSet +font "courier,8,0" +) +xt "44000,1800,70000,2700" +st "number : IN unsigned (outputBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "number" +t "unsigned" +b "(outputBitNb-1 DOWNTO 0)" +o 4 +suid 6,0 +) +) +) +*66 (CptPort +uid 219,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 220,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 221,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 222,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "reset" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 223,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3600,59000,4500" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 7,0 +) +) +) +*67 (CptPort +uid 224,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 225,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 226,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 227,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,10000" +st "rotary" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 228,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4500,69000,5400" +st "rotary : OUT unsigned (rotaryBitNb-1 downto 0) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "rotary" +t "unsigned" +b "(rotaryBitNb-1 downto 0)" +o 3 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "31000,9100,37000,10000" +st "Common_test" +blo "31000,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "31000,10000,43000,10900" +st "rotaryToUnsigned_tester" +blo "31000,10700" +) +) +gi *68 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "10000,6000,22500,9600" +st "Generic Declarations + +rotaryBitNb positive 4 +outputBitNb positive 6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "rotaryBitNb" +type "positive" +value "4" +) +(GiElement +name "outputBitNb" +type "positive" +value "6" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*69 (Grouping +uid 16,0 +optionalChildren [ +*70 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,50050,45700,50950" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,46050,53200,46950" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,48050,45700,48950" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,48050,31200,48950" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,47200,60200,48100" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "53200,46050,54700,46950" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "34000,46500,43000,47500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,49050,30700,49950" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,50050,31700,50950" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,49050,40700,49950" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*82 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,900,15500,3600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "59,12,1074,702" +viewArea "-500,-500,60484,39540" +cachedDiagramExtent "0,0,70000,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Common_test" +entityName "rotaryToUnsigned_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *83 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *84 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,5400,44500,6300" +st "User:" +blo "42000,6100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6300,44000,6300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 236,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Common_test/hds/spike@filter_tb/struct.bd b/Libs/Common_test/hds/spike@filter_tb/struct.bd new file mode 100644 index 0000000..8f67660 --- /dev/null +++ b/Libs/Common_test/hds/spike@filter_tb/struct.bd @@ -0,0 +1,2725 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "Common_test" +duName "spikeFilter_tester" +elements [ +] +mwi 0 +uid 377,0 +) +(Instance +name "I_filt" +duLibraryName "Common" +duName "spikeFilter" +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +mwi 0 +uid 6353,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spikeFilter_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "spikeFilter_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../VerifThin_TB/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "spikeFilter_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spikeFilter_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "task_perl" +value "c:\\eda\\hds2007.1a\\resources\\perl\\bin\\perl.exe" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "spikeFilter_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-1000,53000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-1000,52400,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-5000,57000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-5000,56800,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-3000,53000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-3000,52400,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-3000,36000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-3000,35800,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-4000,73000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-3800,66400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,-5000,73000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,-5000,59000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-5000,53000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,-4500,47000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-2000,36000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-2000,35200,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-1000,36000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-1000,35800,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-2000,53000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-2000,53000,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,-5000,73000,0" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 377,0 +shape (Rectangle +uid 378,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "19000,-19000,63000,-11000" +) +oxt "64000,30000,150000,40000" +ttg (MlTextGroup +uid 379,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 380,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-10500,25250,-9500" +st "Common_test" +blo "19150,-9700" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 381,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-9500,26250,-8500" +st "spikeFilter_tester" +blo "19150,-8700" +tm "BlkNameMgr" +) +*15 (Text +uid 382,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-8500,20950,-7500" +st "I_tb" +blo "19150,-7700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 383,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 384,0 +text (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "19000,-7600,42500,-6000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 386,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "19250,-12750,20750,-11250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 6090,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +declText (MLText +uid 6091,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-36600,16500,-35700" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 6098,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +declText (MLText +uid 6099,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-39300,16500,-38400" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 6106,0 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 102,0 +) +declText (MLText +uid 6107,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-37500,16500,-36600" +st "SIGNAL input : std_ulogic" +) +) +*19 (SaComponent +uid 6353,0 +optionalChildren [ +*20 (CptPort +uid 6337,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6338,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-31375,35000,-30625" +) +tg (CPTG +uid 6339,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6340,0 +va (VaSet +) +xt "36000,-31500,38100,-30500" +st "clock" +blo "36000,-30700" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*21 (CptPort +uid 6341,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6342,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-35375,35000,-34625" +) +tg (CPTG +uid 6343,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6344,0 +va (VaSet +) +xt "36000,-35500,38000,-34500" +st "input" +blo "36000,-34700" +) +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*22 (CptPort +uid 6345,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6346,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-29375,35000,-28625" +) +tg (CPTG +uid 6347,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6348,0 +va (VaSet +) +xt "36000,-29500,38100,-28500" +st "reset" +blo "36000,-28700" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*23 (CptPort +uid 6349,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6350,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,-35375,51750,-34625" +) +tg (CPTG +uid 6351,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6352,0 +va (VaSet +) +xt "47300,-35500,50000,-34500" +st "filtered" +ju 2 +blo "50000,-34700" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "filtered" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 6354,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,-39000,51000,-27000" +) +oxt "40000,9000,56000,21000" +ttg (MlTextGroup +uid 6355,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 6356,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-27000,39100,-26000" +st "Common" +blo "35200,-26200" +tm "BdLibraryNameMgr" +) +*25 (Text +uid 6357,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-26000,39800,-25000" +st "spikeFilter" +blo "35200,-25200" +tm "CptNameMgr" +) +*26 (Text +uid 6358,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-25000,37200,-24000" +st "I_filt" +blo "35200,-24200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6359,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6360,0 +text (MLText +uid 6361,0 +va (VaSet +font "courier,8,0" +) +xt "35000,-24200,59200,-22400" +st "counterBitNb = counterBitNb ( positive ) +invertInput = '0' ( std_ulogic ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "positive" +value "counterBitNb" +) +(GiElement +name "invertInput" +type "std_ulogic" +value "'0'" +) +] +) +viewicon (ZoomableIcon +uid 6362,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,-28750,36750,-27250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sIVOD 1 +) +archFileType "UNKNOWN" +) +*27 (Net +uid 6363,0 +decl (Decl +n "filtered" +t "std_ulogic" +o 2 +suid 104,0 +) +declText (MLText +uid 6364,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-38400,16500,-37500" +st "SIGNAL filtered : std_ulogic" +) +) +*28 (Wire +uid 6092,0 +shape (OrthoPolyLine +uid 6093,0 +va (VaSet +vasetType 3 +) +xt "33000,-29000,34250,-19000" +pts [ +"34250,-29000" +"33000,-29000" +"33000,-19000" +] +) +start &22 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6096,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6097,0 +va (VaSet +) +xt "31250,-30000,34250,-29000" +st "reset" +blo "31250,-29200" +tm "WireNameMgr" +) +) +on &16 +) +*29 (Wire +uid 6100,0 +shape (OrthoPolyLine +uid 6101,0 +va (VaSet +vasetType 3 +) +xt "31000,-31000,34250,-19000" +pts [ +"34250,-31000" +"31000,-31000" +"31000,-19000" +] +) +start &20 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6104,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6105,0 +va (VaSet +) +xt "31250,-32000,34250,-31000" +st "clock" +blo "31250,-31200" +tm "WireNameMgr" +) +) +on &17 +) +*30 (Wire +uid 6108,0 +shape (OrthoPolyLine +uid 6109,0 +va (VaSet +vasetType 3 +) +xt "27000,-35000,34250,-19000" +pts [ +"34250,-35000" +"27000,-35000" +"27000,-19000" +] +) +start &21 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6112,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6113,0 +va (VaSet +) +xt "31250,-36000,33250,-35000" +st "input" +blo "31250,-35200" +tm "WireNameMgr" +) +) +on &18 +) +*31 (Wire +uid 6365,0 +shape (OrthoPolyLine +uid 6366,0 +va (VaSet +vasetType 3 +) +xt "51750,-35000,55000,-19000" +pts [ +"51750,-35000" +"55000,-35000" +"55000,-19000" +] +) +start &23 +end &12 +sat 32 +eat 1 +st 0 +sf 1 +tg (WTG +uid 6369,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6370,0 +va (VaSet +) +xt "53750,-36000,58550,-35000" +st "filtered" +blo "53750,-35200" +tm "WireNameMgr" +) +) +on &27 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *32 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,-49000,5400,-48000" +st "Package List" +blo "0,-48200" +) +*34 (MLText +uid 43,0 +va (VaSet +) +xt "0,-48000,18600,-45000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*36 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*37 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*38 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*39 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "99,37,1441,900" +viewArea "-1100,-50100,76387,-351" +cachedDiagramExtent "0,-49000,73000,6000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-49000" +lastUid 6434,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*43 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*44 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,3200,6500" +st "I0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*46 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*47 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,1550,6500" +st "I0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*50 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,1900,6500" +st "I0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*52 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*53 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,1500,6500" +st "I0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*55 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*56 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1050,6500" +st "I0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*58 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*60 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,-44200,5400,-43200" +st "Declarations" +blo "0,-43400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,-43200,2700,-42200" +st "Ports:" +blo "0,-42400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,-42200,3800,-41200" +st "Pre User:" +blo "0,-41400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-41200,21500,-40300" +st "constant counterBitNb : positive := 3;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,-40300,7100,-39300" +st "Diagram Signals:" +blo "0,-39500" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,-44200,4700,-43200" +st "Post User:" +blo "0,-43400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,-44200,0,-44200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 104,0 +usingSuid 1 +emptyRow *63 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*71 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*72 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*73 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*74 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*75 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*76 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 100,0 +) +) +uid 6122,0 +) +*77 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +) +uid 6124,0 +) +*78 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 102,0 +) +) +uid 6126,0 +) +*79 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "filtered" +t "std_ulogic" +o 2 +suid 104,0 +) +) +uid 6371,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 70,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 71,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*85 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 6123,0 +) +*86 (MRCItem +litem &77 +pos 1 +dimension 20 +uid 6125,0 +) +*87 (MRCItem +litem &78 +pos 2 +dimension 20 +uid 6127,0 +) +*88 (MRCItem +litem &79 +pos 3 +dimension 20 +uid 6372,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*89 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 74,0 +) +*90 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 75,0 +) +*91 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 76,0 +) +*92 (MRCItem +litem &71 +pos 3 +dimension 50 +uid 77,0 +) +*93 (MRCItem +litem &72 +pos 4 +dimension 100 +uid 78,0 +) +*94 (MRCItem +litem &73 +pos 5 +dimension 100 +uid 79,0 +) +*95 (MRCItem +litem &74 +pos 6 +dimension 50 +uid 80,0 +) +*96 (MRCItem +litem &75 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *97 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*98 (RefLabelRowHdr +) +*99 (TitleRowHdr +) +*100 (FilterRowHdr +) +*101 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*102 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*103 (GroupColHdr +tm "GroupColHdrMgr" +) +*104 (NameColHdr +tm "GenericNameColHdrMgr" +) +*105 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*106 (InitColHdr +tm "GenericValueColHdrMgr" +) +*107 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*108 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*109 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *110 (MRCItem +litem &97 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*111 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 98,0 +) +*112 (MRCItem +litem &99 +pos 1 +dimension 23 +uid 99,0 +) +*113 (MRCItem +litem &100 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*114 (MRCItem +litem &101 +pos 0 +dimension 20 +uid 102,0 +) +*115 (MRCItem +litem &103 +pos 1 +dimension 50 +uid 103,0 +) +*116 (MRCItem +litem &104 +pos 2 +dimension 100 +uid 104,0 +) +*117 (MRCItem +litem &105 +pos 3 +dimension 100 +uid 105,0 +) +*118 (MRCItem +litem &106 +pos 4 +dimension 50 +uid 106,0 +) +*119 (MRCItem +litem &107 +pos 5 +dimension 50 +uid 107,0 +) +*120 (MRCItem +litem &108 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Common_test/hds/spike@filter_tb/symbol.sb b/Libs/Common_test/hds/spike@filter_tb/symbol.sb new file mode 100644 index 0000000..551f7ed --- /dev/null +++ b/Libs/Common_test/hds/spike@filter_tb/symbol.sb @@ -0,0 +1,1278 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spikeFilter_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "spikeFilter_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:50" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "spikeFilter_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spikeFilter_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modeltech_6.3g\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "c:\\eda\\modeltech_6.2c\\win32" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:50" +) +(vvPair +variable "unit" +value "spikeFilter_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15000,28200,15900" +st "Common_test" +blo "22200,15700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15900,29700,16800" +st "spikeFilter_tb" +blo "22200,16600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,62600,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 107,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/spike@filter_tester/interface b/Libs/Common_test/hds/spike@filter_tester/interface new file mode 100644 index 0000000..c28676a --- /dev/null +++ b/Libs/Common_test/hds/spike@filter_tester/interface @@ -0,0 +1,1206 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 16,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 49,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 13,0 +) +) +uid 272,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "filtered" +t "std_ulogic" +o 2 +suid 14,0 +) +) +uid 274,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 15,0 +) +) +uid 276,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 16,0 +) +) +uid 278,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 62,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 64,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 65,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 66,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 67,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 273,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 275,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 277,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 279,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 68,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 69,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 70,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 71,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 73,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 74,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 75,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 76,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 63,0 +vaOverrides [ +] +) +] +) +uid 48,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 78,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 90,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 92,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 93,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 94,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 95,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 97,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 98,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 99,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 100,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 101,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 103,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 91,0 +vaOverrides [ +] +) +] +) +uid 77,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spikeFilter_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "spikeFilter_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:51" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "spikeFilter_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spike@filter_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/spikeFilter_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\Board\\ise" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:43:51" +) +(vvPair +variable "unit" +value "spikeFilter_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 47,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 252,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 253,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 254,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 255,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9500" +st "clock" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 256,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3300,60000,4200" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 13,0 +) +) +) +*61 (CptPort +uid 257,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 258,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 259,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 260,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "50550,7000,51450,11000" +st "filtered" +ju 2 +blo "51250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 261,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2400,60000,3300" +st "filtered : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "filtered" +t "std_ulogic" +o 2 +suid 14,0 +) +) +) +*62 (CptPort +uid 262,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 263,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 264,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 265,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,9500" +st "input" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 266,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4200,60000,5100" +st "input : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 3 +suid 15,0 +) +) +) +*63 (CptPort +uid 267,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 268,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 269,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 270,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "reset" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 271,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5100,59000,6000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 16,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "32250,9100,38250,10000" +st "Common_test" +blo "32250,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "32250,10000,41750,10900" +st "spikeFilter_tester" +blo "32250,10700" +) +) +gi *64 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,9,0" +) +xt "14000,6000,24500,6900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *65 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +uid 17,0 +va (VaSet +font "courier,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*67 (MLText +uid 18,0 +va (VaSet +font "courier,9,0" +) +xt "0,1200,15500,3900" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Common_test" +entityName "spikeFilter_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,31000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "20300,14800,25700,16000" +st "" +blo "20300,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "20300,16000,24200,17200" +st "" +blo "20300,17000" +) +) +gi *68 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,9,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *69 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,9,1" +) +xt "42000,6000,44500,6900" +st "User:" +blo "42000,6700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,9,0" +) +xt "44000,6900,44000,6900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 279,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/test@utils_tb/symbol.sb b/Libs/Common_test/hds/test@utils_tb/symbol.sb new file mode 100644 index 0000000..d84b83f --- /dev/null +++ b/Libs/Common_test/hds/test@utils_tb/symbol.sb @@ -0,0 +1,1275 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 21,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 34,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 0 +dimension 20 +) +uid 36,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 37,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 38,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 39,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 40,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 41,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 42,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 43,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 44,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 45,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 46,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 47,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 48,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 35,0 +vaOverrides [ +] +) +] +) +uid 20,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 50,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 62,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 0 +dimension 20 +) +uid 64,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 65,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 66,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 67,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 68,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 69,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 70,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 71,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 72,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 73,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 74,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 75,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 63,0 +vaOverrides [ +] +) +] +) +uid 49,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/test@utils_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/test@utils_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/test@utils_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/testUtils_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "testUtils_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:56" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "testUtils_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/test@utils_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/testUtils_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:56" +) +(vvPair +variable "unit" +value "testUtils_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 19,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "29000,10000,47000,30000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "29200,30000,35200,30900" +st "Common_test" +blo "29200,30700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "29200,30900,35700,31800" +st "testUtils_tb" +blo "29200,31600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "29000,33200,39500,34100" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 79,0 +optionalChildren [ +*54 (CommentText +uid 81,0 +shape (Rectangle +uid 82,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 83,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 84,0 +shape (Rectangle +uid 85,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 86,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 87,0 +shape (Rectangle +uid 88,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 89,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 90,0 +shape (Rectangle +uid 91,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 92,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 93,0 +shape (Rectangle +uid 94,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 95,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 96,0 +shape (Rectangle +uid 97,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 98,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 99,0 +shape (Rectangle +uid 100,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 101,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 102,0 +shape (Rectangle +uid 103,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 104,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 105,0 +shape (Rectangle +uid 106,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 107,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,46400,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 108,0 +shape (Rectangle +uid 109,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 110,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 80,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 17,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 18,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "11,88,1387,1017" +viewArea "-1100,-1100,74105,51875" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,11000,5400,12000" +st "Declarations" +blo "0,11800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,12000,2700,13000" +st "Ports:" +blo "0,12800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13000,2500,13900" +st "User:" +blo "0,13700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,11000,5800,12000" +st "Internal User:" +blo "0,11800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13900,2000,13900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,11000,0,11000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 156,0 +activeModelName "Symbol" +) diff --git a/Libs/Common_test/hds/toggler_tb/struct.bd b/Libs/Common_test/hds/toggler_tb/struct.bd new file mode 100644 index 0000000..f12abfe --- /dev/null +++ b/Libs/Common_test/hds/toggler_tb/struct.bd @@ -0,0 +1,2714 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "Common_test" +duName "toggler_tester" +elements [ +] +mwi 0 +uid 377,0 +) +(Instance +name "I_togl" +duLibraryName "Common" +duName "toggler" +elements [ +(GiElement +name "counterBitNb" +type "natural" +value "counterBitNb" +) +] +mwi 0 +uid 6332,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "toggler_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:56" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../VerifThin_TB/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "toggler_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "task_perl" +value "c:\\eda\\hds2007.1a\\resources\\perl\\bin\\perl.exe" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:43:56" +) +(vvPair +variable "unit" +value "toggler_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-1000,53000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-1000,52400,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-5000,57000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-5000,56800,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-3000,53000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-3000,52400,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-3000,36000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-3000,35800,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,-4000,73000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,-3800,66400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,-5000,73000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,-5000,59000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-5000,53000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,-4500,47000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-2000,36000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-2000,35200,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,-1000,36000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,-1000,35800,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,-2000,53000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,-2000,50600,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,-5000,73000,0" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 377,0 +shape (Rectangle +uid 378,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "19000,-19000,63000,-11000" +) +oxt "64000,30000,150000,40000" +ttg (MlTextGroup +uid 379,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 380,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-10500,25250,-9500" +st "Common_test" +blo "19150,-9700" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 381,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-9500,25150,-8500" +st "toggler_tester" +blo "19150,-8700" +tm "BlkNameMgr" +) +*15 (Text +uid 382,0 +va (VaSet +font "courier,8,1" +) +xt "19150,-8500,20950,-7500" +st "I_tb" +blo "19150,-7700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 383,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 384,0 +text (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "19000,-7600,42500,-6000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 386,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "19250,-12750,20750,-11250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 6090,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 100,0 +) +declText (MLText +uid 6091,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-37500,15500,-36600" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 6098,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +declText (MLText +uid 6099,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-39300,15500,-38400" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 6106,0 +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 102,0 +) +declText (MLText +uid 6107,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-38400,15500,-37500" +st "SIGNAL input : std_ulogic" +) +) +*19 (Net +uid 6306,0 +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 104,0 +) +declText (MLText +uid 6307,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-36600,15500,-35700" +st "SIGNAL toggle : std_ulogic" +) +) +*20 (SaComponent +uid 6332,0 +optionalChildren [ +*21 (CptPort +uid 6316,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6317,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-31375,35000,-30625" +) +tg (CPTG +uid 6318,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6319,0 +va (VaSet +) +xt "36000,-31500,38100,-30500" +st "clock" +blo "36000,-30700" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*22 (CptPort +uid 6320,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6321,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-35375,35000,-34625" +) +tg (CPTG +uid 6322,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6323,0 +va (VaSet +) +xt "36000,-35500,38000,-34500" +st "input" +blo "36000,-34700" +) +) +thePort (LogicalPort +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*23 (CptPort +uid 6324,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6325,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,-29375,35000,-28625" +) +tg (CPTG +uid 6326,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6327,0 +va (VaSet +) +xt "36000,-29500,38100,-28500" +st "reset" +blo "36000,-28700" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*24 (CptPort +uid 6328,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6329,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,-35375,51750,-34625" +) +tg (CPTG +uid 6330,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6331,0 +va (VaSet +) +xt "47400,-35500,50000,-34500" +st "toggle" +ju 2 +blo "50000,-34700" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 6333,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,-39000,51000,-27000" +) +oxt "43000,11000,59000,23000" +ttg (MlTextGroup +uid 6334,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 6335,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-27000,39100,-26000" +st "Common" +blo "35200,-26200" +tm "BdLibraryNameMgr" +) +*26 (Text +uid 6336,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-26000,38300,-25000" +st "toggler" +blo "35200,-25200" +tm "CptNameMgr" +) +*27 (Text +uid 6337,0 +va (VaSet +font "courier,8,1" +) +xt "35200,-25000,37700,-24000" +st "I_togl" +blo "35200,-24200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6338,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6339,0 +text (MLText +uid 6340,0 +va (VaSet +font "courier,8,0" +) +xt "35000,-24200,57500,-23300" +st "counterBitNb = counterBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "counterBitNb" +type "natural" +value "counterBitNb" +) +] +) +viewicon (ZoomableIcon +uid 6341,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,-28750,36750,-27250" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sIVOD 1 +) +archFileType "UNKNOWN" +) +*28 (Wire +uid 6092,0 +shape (OrthoPolyLine +uid 6093,0 +va (VaSet +vasetType 3 +) +xt "33000,-29000,34250,-19000" +pts [ +"34250,-29000" +"33000,-29000" +"33000,-19000" +] +) +start &23 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6096,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6097,0 +va (VaSet +) +xt "31250,-30000,34250,-29000" +st "reset" +blo "31250,-29200" +tm "WireNameMgr" +) +) +on &16 +) +*29 (Wire +uid 6100,0 +shape (OrthoPolyLine +uid 6101,0 +va (VaSet +vasetType 3 +) +xt "31000,-31000,34250,-19000" +pts [ +"34250,-31000" +"31000,-31000" +"31000,-19000" +] +) +start &21 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6104,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6105,0 +va (VaSet +) +xt "31250,-32000,34250,-31000" +st "clock" +blo "31250,-31200" +tm "WireNameMgr" +) +) +on &17 +) +*30 (Wire +uid 6108,0 +shape (OrthoPolyLine +uid 6109,0 +va (VaSet +vasetType 3 +) +xt "27000,-35000,34250,-19000" +pts [ +"34250,-35000" +"27000,-35000" +"27000,-19000" +] +) +start &22 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 6112,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6113,0 +va (VaSet +) +xt "31250,-36000,34250,-35000" +st "input" +blo "31250,-35200" +tm "WireNameMgr" +) +) +on &18 +) +*31 (Wire +uid 6308,0 +shape (OrthoPolyLine +uid 6309,0 +va (VaSet +vasetType 3 +) +xt "51750,-35000,55000,-19000" +pts [ +"51750,-35000" +"55000,-35000" +"55000,-19000" +] +) +start &24 +end &12 +sat 32 +eat 1 +st 0 +sf 1 +tg (WTG +uid 6312,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6313,0 +va (VaSet +) +xt "53750,-36000,56350,-35000" +st "toggle" +blo "53750,-35200" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *32 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,-49000,5400,-48000" +st "Package List" +blo "0,-48200" +) +*34 (MLText +uid 43,0 +va (VaSet +) +xt "0,-48000,18600,-45000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*36 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*37 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*38 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*39 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "100,37,1441,900" +viewArea "-1100,-50100,76318,-351" +cachedDiagramExtent "0,-49000,73000,6000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-49000" +lastUid 6403,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*43 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*44 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,3200,6500" +st "I0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*46 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*47 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,1550,6500" +st "I0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*50 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,1900,6500" +st "I0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*52 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*53 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,1500,6500" +st "I0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*55 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*56 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1050,6500" +st "I0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*58 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*60 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*62 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,-44200,5400,-43200" +st "Declarations" +blo "0,-43400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,-43200,2700,-42200" +st "Ports:" +blo "0,-42400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,-42200,3800,-41200" +st "Pre User:" +blo "0,-41400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,-41200,21000,-40300" +st "constant counterBitNb : natural := 4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,-40300,7100,-39300" +st "Diagram Signals:" +blo "0,-39500" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,-44200,4700,-43200" +st "Post User:" +blo "0,-43400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,-44200,0,-44200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 104,0 +usingSuid 1 +emptyRow *63 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*71 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*72 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*73 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*74 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*75 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*76 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 100,0 +) +) +uid 6122,0 +) +*77 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 101,0 +) +) +uid 6124,0 +) +*78 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 102,0 +) +) +uid 6126,0 +) +*79 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 104,0 +) +) +uid 6314,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 70,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 71,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*85 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 6123,0 +) +*86 (MRCItem +litem &77 +pos 1 +dimension 20 +uid 6125,0 +) +*87 (MRCItem +litem &78 +pos 2 +dimension 20 +uid 6127,0 +) +*88 (MRCItem +litem &79 +pos 3 +dimension 20 +uid 6315,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*89 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 74,0 +) +*90 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 75,0 +) +*91 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 76,0 +) +*92 (MRCItem +litem &71 +pos 3 +dimension 50 +uid 77,0 +) +*93 (MRCItem +litem &72 +pos 4 +dimension 100 +uid 78,0 +) +*94 (MRCItem +litem &73 +pos 5 +dimension 100 +uid 79,0 +) +*95 (MRCItem +litem &74 +pos 6 +dimension 50 +uid 80,0 +) +*96 (MRCItem +litem &75 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *97 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*98 (RefLabelRowHdr +) +*99 (TitleRowHdr +) +*100 (FilterRowHdr +) +*101 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*102 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*103 (GroupColHdr +tm "GroupColHdrMgr" +) +*104 (NameColHdr +tm "GenericNameColHdrMgr" +) +*105 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*106 (InitColHdr +tm "GenericValueColHdrMgr" +) +*107 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*108 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*109 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *110 (MRCItem +litem &97 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*111 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 98,0 +) +*112 (MRCItem +litem &99 +pos 1 +dimension 23 +uid 99,0 +) +*113 (MRCItem +litem &100 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*114 (MRCItem +litem &101 +pos 0 +dimension 20 +uid 102,0 +) +*115 (MRCItem +litem &103 +pos 1 +dimension 50 +uid 103,0 +) +*116 (MRCItem +litem &104 +pos 2 +dimension 100 +uid 104,0 +) +*117 (MRCItem +litem &105 +pos 3 +dimension 100 +uid 105,0 +) +*118 (MRCItem +litem &106 +pos 4 +dimension 50 +uid 106,0 +) +*119 (MRCItem +litem &107 +pos 5 +dimension 50 +uid 107,0 +) +*120 (MRCItem +litem &108 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Common_test/hds/toggler_tb/symbol.sb b/Libs/Common_test/hds/toggler_tb/symbol.sb new file mode 100644 index 0000000..f463423 --- /dev/null +++ b/Libs/Common_test/hds/toggler_tb/symbol.sb @@ -0,0 +1,1278 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "toggler_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:56" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "toggler_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modeltech_6.3g\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "c:\\eda\\modeltech_6.2c\\win32" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:43:56" +) +(vvPair +variable "unit" +value "toggler_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15000,28200,15900" +st "Common_test" +blo "22200,15700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "22200,15900,27700,16800" +st "toggler_tb" +blo "22200,16600" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,62600,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,2000,44500,2900" +st "User:" +blo "42000,2700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,44000,2900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 107,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/hds/toggler_tester/interface b/Libs/Common_test/hds/toggler_tester/interface new file mode 100644 index 0000000..e542199 --- /dev/null +++ b/Libs/Common_test/hds/toggler_tester/interface @@ -0,0 +1,1523 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 16,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 13,0 +) +) +uid 304,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 14,0 +) +) +uid 306,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 15,0 +) +) +uid 308,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 16,0 +) +) +uid 310,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 305,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 307,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 309,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 311,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 124,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 125,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 126,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 129,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 130,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 131,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 132,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 133,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 134,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "toggler_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:43:56" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Common_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Common_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "toggler_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Common_test/hds/toggler_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:43:56" +) +(vvPair +variable "unit" +value "toggler_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 284,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 285,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 286,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 287,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9500" +st "clock" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 288,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,59000,3800" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 13,0 +) +) +) +*61 (CptPort +uid 289,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 290,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 291,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 292,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,9500" +st "input" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 293,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59000,4700" +st "input : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "input" +t "std_ulogic" +o 2 +suid 14,0 +) +) +) +*62 (CptPort +uid 294,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 295,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 296,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 297,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "reset" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 298,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,58000,5600" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 15,0 +) +) +) +*63 (CptPort +uid 299,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 300,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 301,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 302,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "50550,7000,51450,10000" +st "toggle" +ju 2 +blo "51250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 303,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,59000,2900" +st "toggle : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "toggle" +t "std_ulogic" +o 4 +suid 16,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "33250,9100,39250,10000" +st "Common_test" +blo "33250,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "33250,10000,40750,10900" +st "toggler_tester" +blo "33250,10700" +) +) +gi *64 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "13000,6000,23500,6900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*65 (Grouping +uid 16,0 +optionalChildren [ +*66 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *76 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*78 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Common_test" +entityName "toggler_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *79 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *80 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,5600,44500,6500" +st "User:" +blo "42000,6300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,44000,6500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 311,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Common_test/sim/debounce.do b/Libs/Common_test/sim/debounce.do new file mode 100644 index 0000000..bf5008c --- /dev/null +++ b/Libs/Common_test/sim/debounce.do @@ -0,0 +1,32 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate -divider {Clock and Reset} +add wave -noupdate -color Gray60 /debounce_tb/I_tb/testInfo +add wave -noupdate -color Gray50 /debounce_tb/clock +add wave -noupdate -color Gray50 /debounce_tb/reset +add wave -noupdate -divider Input +add wave -noupdate -color {Dark Orchid} /debounce_tb/input +add wave -noupdate -radix unsigned /debounce_tb/I_debouncer/DELAY +add wave -noupdate -radix unsigned /debounce_tb/I_debouncer/lvec_count +add wave -noupdate -radix binary -childformat {{/debounce_tb/I_debouncer/lvec_sample(9) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(8) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(7) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(6) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(5) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(4) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(3) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(2) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(1) -radix binary} {/debounce_tb/I_debouncer/lvec_sample(0) -radix binary}} -subitemconfig {/debounce_tb/I_debouncer/lvec_sample(9) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(8) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(7) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(6) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(5) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(4) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(3) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(2) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(1) {-radix binary} /debounce_tb/I_debouncer/lvec_sample(0) {-radix binary}} /debounce_tb/I_debouncer/lvec_sample +add wave -noupdate /debounce_tb/I_debouncer/lsig_samplePulse +add wave -noupdate -divider {Debonced input} +add wave -noupdate -color Gold /debounce_tb/debounced +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {59062638 ps} 0} +quietly wave cursor active 1 +configure wave -namecolwidth 265 +configure wave -valuecolwidth 100 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ps} {86730947 ps} diff --git a/Libs/Common_test/sim/debouncerULogicVector.do b/Libs/Common_test/sim/debouncerULogicVector.do new file mode 100644 index 0000000..dc4bdbd --- /dev/null +++ b/Libs/Common_test/sim/debouncerULogicVector.do @@ -0,0 +1,24 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /debouncerulogicvector_tb/reset +add wave -noupdate /debouncerulogicvector_tb/clock +add wave -noupdate -expand /debouncerulogicvector_tb/input +add wave -noupdate -format Analog-Step -height 30 -max 15.0 -radix unsigned /debouncerulogicvector_tb/i_filt/debouncecounter +add wave -noupdate -expand /debouncerulogicvector_tb/debounced +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {8842679128 ps} 0} +configure wave -namecolwidth 285 +configure wave -valuecolwidth 42 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1000 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ps} {2100 ns} diff --git a/Libs/Common_test/sim/rotaryToUnsigned.do b/Libs/Common_test/sim/rotaryToUnsigned.do new file mode 100644 index 0000000..36ec08a --- /dev/null +++ b/Libs/Common_test/sim/rotaryToUnsigned.do @@ -0,0 +1,26 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /rotarytounsigned_tb/reset +add wave -noupdate /rotarytounsigned_tb/clock +add wave -noupdate -format Analog-Step -height 50 -max 14.999999999999998 -radix unsigned -radixshowbase 0 /rotarytounsigned_tb/rotary +add wave -noupdate /rotarytounsigned_tb/I_DUT/glitchDelayCounter +add wave -noupdate -format Analog-Step -height 50 -max 14.999999999999998 -radix unsigned -childformat {{/rotarytounsigned_tb/I_DUT/rotaryStable(3) -radix unsigned} {/rotarytounsigned_tb/I_DUT/rotaryStable(2) -radix unsigned} {/rotarytounsigned_tb/I_DUT/rotaryStable(1) -radix unsigned} {/rotarytounsigned_tb/I_DUT/rotaryStable(0) -radix unsigned}} -radixshowbase 0 -subitemconfig {/rotarytounsigned_tb/I_DUT/rotaryStable(3) {-height 17 -radix unsigned -radixshowbase 0} /rotarytounsigned_tb/I_DUT/rotaryStable(2) {-height 17 -radix unsigned -radixshowbase 0} /rotarytounsigned_tb/I_DUT/rotaryStable(1) {-height 17 -radix unsigned -radixshowbase 0} /rotarytounsigned_tb/I_DUT/rotaryStable(0) {-height 17 -radix unsigned -radixshowbase 0}} /rotarytounsigned_tb/I_DUT/rotaryStable +add wave -noupdate -format Analog-Step -height 200 -max 63.0 -radix unsigned -radixshowbase 0 /rotarytounsigned_tb/number +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {0 ps} 0} +quietly wave cursor active 0 +configure wave -namecolwidth 243 +configure wave -valuecolwidth 40 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits ns +update +WaveRestoreZoom {0 ps} {210 us} diff --git a/Libs/Common_test/sim/spikeFilter.do b/Libs/Common_test/sim/spikeFilter.do new file mode 100644 index 0000000..be55526 --- /dev/null +++ b/Libs/Common_test/sim/spikeFilter.do @@ -0,0 +1,23 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /spikefilter_tb/reset +add wave -noupdate /spikefilter_tb/clock +add wave -noupdate /spikefilter_tb/input +add wave -noupdate /spikefilter_tb/filtered +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {3129283489 ps} 0} +configure wave -namecolwidth 285 +configure wave -valuecolwidth 42 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1000 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ps} {42 us} diff --git a/Libs/Lattice/hdl/ice40_sbIoOd_rtl.vhd b/Libs/Lattice/hdl/ice40_sbIoOd_rtl.vhd new file mode 100644 index 0000000..c7ef8f5 --- /dev/null +++ b/Libs/Lattice/hdl/ice40_sbIoOd_rtl.vhd @@ -0,0 +1,27 @@ +-- Allows to use RGB pins from ice40 FPGAs +-- as user I/Os +library sb_ice40_components_syn; + use sb_ice40_components_syn.components.all; + +ARCHITECTURE rtl OF ice40_sbIoOd IS +BEGIN + + ODInst : SB_IO_OD + generic map ( + NEG_TRIGGER => '0', -- FF's are rising edge + PIN_TYPE => "011001" -- 0110 = PIN_OUT, 01 = PIN_INPUT + ) + port map ( + DOUT1 => open, -- Output on falling edge + DOUT0 => '1', -- Output on rising edge + CLOCKENABLE => '1', -- Clock Enable common to input and output clocks + LATCHINPUTVALUE => '0', -- Not latching input value + INPUTCLK => clk, -- Clock for the input registers + DIN1 => open, -- Input on falling edge + DIN0 => rgbRd, -- Input value + OUTPUTENABLE => rgbWr, -- Output Pin Tristate/Enable control + OUTPUTCLK => clk, -- Clock for the output registers + PACKAGEPIN => rgbPin -- User’s Pin signal name + ); +END ARCHITECTURE rtl; + diff --git a/Libs/Lattice/hdl/pll_rtl.vhd b/Libs/Lattice/hdl/pll_rtl.vhd new file mode 100644 index 0000000..b8e3549 --- /dev/null +++ b/Libs/Lattice/hdl/pll_rtl.vhd @@ -0,0 +1,93 @@ +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; diff --git a/Libs/Lattice/hdl/pll_vga_Structure.vhd b/Libs/Lattice/hdl/pll_vga_Structure.vhd new file mode 100644 index 0000000..12bde4f --- /dev/null +++ b/Libs/Lattice/hdl/pll_vga_Structure.vhd @@ -0,0 +1,70 @@ +library IEEE; +use IEEE.std_logic_1164.all; +library ECP5U; +use ECP5U.components.all; + +ENTITY pll_vga IS + PORT( + clkIn100M : IN std_ulogic; + clk25MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll_vga ; + +architecture Structure of pll_vga is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOP_t: std_logic; + signal CLKFB_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "25.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "6"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of Structure : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 0, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 0, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 0, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 25, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 1, + CLKOS2_DIV=> 1, CLKOS_DIV=> 1, CLKOP_DIV=> 26, CLKFB_DIV=> 1, + CLKI_DIV=> 4, FEEDBK_PATH=> "INT_OP") + port map (CLKI=>clkIn100M, CLKFB=>CLKFB_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>scuba_vlo, ENCLKOS2=>scuba_vlo, + ENCLKOS3=>scuba_vlo, CLKOP=>CLKOP_t, CLKOS=>open, + CLKOS2=>open, CLKOS3=>open, LOCK=>pllLocked, INTLOCK=>open, + REFCLK=>REFCLK, CLKINTFB=>CLKFB_t); + + clk25MHz <= CLKOP_t; +end Structure; diff --git a/Libs/Lattice/hds/.hdlsidedata/_ice40_sbIoOd_rtl.vhd._fpf b/Libs/Lattice/hds/.hdlsidedata/_ice40_sbIoOd_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Lattice/hds/.hdlsidedata/_ice40_sbIoOd_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Lattice/hds/.hdlsidedata/_pll_rtl.vhd._fpf b/Libs/Lattice/hds/.hdlsidedata/_pll_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Lattice/hds/.hdlsidedata/_pll_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Lattice/hds/.hdlsidedata/_pll_vga_Structure.vhd._fpf b/Libs/Lattice/hds/.hdlsidedata/_pll_vga_Structure.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Lattice/hds/.hdlsidedata/_pll_vga_Structure.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Lattice/hds/_ice40_sbiood._epf b/Libs/Lattice/hds/_ice40_sbiood._epf new file mode 100644 index 0000000..223e683 --- /dev/null +++ b/Libs/Lattice/hds/_ice40_sbiood._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom ice40_sbIoOd_rtl.vhd diff --git a/Libs/Lattice/hds/_pll._epf b/Libs/Lattice/hds/_pll._epf new file mode 100644 index 0000000..c33d67a --- /dev/null +++ b/Libs/Lattice/hds/_pll._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom pll_rtl.vhd diff --git a/Libs/Lattice/hds/_pll_vga._epf b/Libs/Lattice/hds/_pll_vga._epf new file mode 100644 index 0000000..7739eee --- /dev/null +++ b/Libs/Lattice/hds/_pll_vga._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom Structure +DEFAULT_FILE atom pll_vga_Structure.vhd diff --git a/Libs/Lattice/hds/ice40_sb@io@od/symbol.sb b/Libs/Lattice/hds/ice40_sb@io@od/symbol.sb new file mode 100644 index 0000000..c9b8e59 --- /dev/null +++ b/Libs/Lattice/hds/ice40_sb@io@od/symbol.sb @@ -0,0 +1,1521 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 131,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 2 +decl (Decl +n "rgbPin" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 133,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "rgbRd" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 135,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rgbWr" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 137,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 132,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 134,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 136,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 138,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 0 +dimension 20 +) +uid 96,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds\\ice40_sb@io@od\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds\\ice40_sb@io@od\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds\\ice40_sb@io@od" +) +(vvPair +variable "d_logical" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds\\ice40_sbIoOd" +) +(vvPair +variable "date" +value "16.05.2023" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "16" +) +(vvPair +variable "entity_name" +value "ice40_sbIoOd" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "16.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:49:25" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lattice" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Lattice/work" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "ice40_sbIoOd" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds\\ice40_sb@io@od\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\axel.amand\\Desktop\\bachelor\\Libs\\Lattice\\hds\\ice40_sbIoOd\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:49:25" +) +(vvPair +variable "unit" +value "ice40_sbIoOd" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 139,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 140,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20250,15625,21000,16375" +) +tg (CPTG +uid 141,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 142,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,15300,24400,16700" +st "clk" +blo "22000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 143,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,60000,3200" +st "clk : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*61 (CptPort +uid 144,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 145,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20250,13625,21000,14375" +) +tg (CPTG +uid 146,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 147,0 +va (VaSet +font "Verdana,12,0" +) +xt "22000,13300,26800,14700" +st "rgbPin" +blo "22000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 148,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,59000,5600" +st "rgbPin : INOUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 2 +decl (Decl +n "rgbPin" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*62 (CptPort +uid 149,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,15625,32750,16375" +) +tg (CPTG +uid 151,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 152,0 +va (VaSet +font "Verdana,12,0" +) +xt "26500,15300,31000,16700" +st "rgbRd" +ju 2 +blo "31000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 153,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,60000,4800" +st "rgbRd : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "rgbRd" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*63 (CptPort +uid 154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,13625,32750,14375" +) +tg (CPTG +uid 156,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 157,0 +va (VaSet +font "Verdana,12,0" +) +xt "26300,13300,31000,14700" +st "rgbWr" +ju 2 +blo "31000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 158,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,60000,4000" +st "rgbWr : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rgbWr" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "21000,13000,32000,18000" +) +oxt "15000,6000,23000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "21000,19800,25200,21000" +st "Lattice" +blo "21000,20800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "21000,21000,29000,22200" +st "ice40_sbIoOd" +blo "21000,22000" +) +) +gi *64 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "21000,23200,32500,24000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*65 (Grouping +uid 16,0 +optionalChildren [ +*66 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,47100,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *76 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*78 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,8400" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY gates; + USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "96,54,1115,744" +viewArea "6500,4000,63452,40576" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Board" +entityName "EC5LP" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *79 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *80 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,5600,45200,6800" +st "User:" +blo "42000,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,44000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 229,0 +activeModelName "Symbol" +) diff --git a/Libs/Lattice/hds/pll/symbol.sb b/Libs/Lattice/hds/pll/symbol.sb new file mode 100644 index 0000000..9c71b62 --- /dev/null +++ b/Libs/Lattice/hds/pll/symbol.sb @@ -0,0 +1,1845 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "IEEE" +unitName "std_logic_1164" +) +(DmPackageRef +library "ECP5U" +unitName "components" +) +] +libraryRefs [ +"IEEE" +"ECP5U" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 10,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 116,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk10MHz" +t "std_ulogic" +o 8 +suid 1,0 +) +) +uid 96,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk50MHz" +t "std_ulogic" +o 7 +suid 2,0 +) +) +uid 98,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk60MHz" +t "std_ulogic" +o 5 +suid 3,0 +) +) +uid 100,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk75MHz" +t "std_ulogic" +o 6 +suid 4,0 +) +) +uid 102,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en10M" +t "std_ulogic" +o 4 +suid 6,0 +) +) +uid 106,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en50M" +t "std_ulogic" +o 3 +suid 7,0 +) +) +uid 108,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en75M" +t "std_ulogic" +o 2 +suid 8,0 +) +) +uid 110,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 112,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 10,0 +) +) +uid 200,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 131,0 +optionalChildren [ +*25 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 132,0 +) +*26 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 133,0 +) +*27 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*28 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 97,0 +) +*29 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 99,0 +) +*30 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 101,0 +) +*31 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 103,0 +) +*32 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 107,0 +) +*33 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 109,0 +) +*34 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 111,0 +) +*35 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 113,0 +) +*36 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 201,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*37 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 136,0 +) +*38 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 137,0 +) +*39 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 138,0 +) +*40 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 139,0 +) +*41 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 140,0 +) +*42 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 141,0 +) +*43 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 142,0 +) +*44 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 143,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 115,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 145,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 157,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *58 (MRCItem +litem &45 +pos 0 +dimension 20 +) +uid 159,0 +optionalChildren [ +*59 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 160,0 +) +*60 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 161,0 +) +*61 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 163,0 +optionalChildren [ +*62 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 164,0 +) +*63 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 165,0 +) +*64 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 166,0 +) +*65 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 167,0 +) +*66 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 168,0 +) +*67 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 169,0 +) +*68 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 170,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 158,0 +vaOverrides [ +] +) +] +) +uid 144,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds\\pll\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds\\pll\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds\\pll" +) +(vvPair +variable "d_logical" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds\\pll" +) +(vvPair +variable "date" +value "13.03.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "13" +) +(vvPair +variable "entity_name" +value "pll" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "13.03.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "10:10:02" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lattice" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Lattice/work" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "pll" +) +(vvPair +variable "month" +value "mars" +) +(vvPair +variable "month_long" +value "mars" +) +(vvPair +variable "p" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds\\pll\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\did-chrono\\Libs\\Lattice\\hds\\pll\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "10:10:02" +) +(vvPair +variable "unit" +value "pll" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 114,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,24625,32750,25375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "26700,24500,31000,25500" +st "clk10MHz" +ju 2 +blo "31000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,61500,8800" +st "clk10MHz : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk10MHz" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*71 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,23625,32750,24375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,8,0" +) +xt "26700,23500,31000,24500" +st "clk50MHz" +ju 2 +blo "31000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,61500,8000" +st "clk50MHz : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk50MHz" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*72 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,20625,32750,21375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,8,0" +) +xt "26700,20500,31000,21500" +st "clk60MHz" +ju 2 +blo "31000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,61500,6400" +st "clk60MHz : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk60MHz" +t "std_ulogic" +o 5 +suid 3,0 +) +) +) +*73 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,22625,32750,23375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,8,0" +) +xt "26700,22500,31000,23500" +st "clk75MHz" +ju 2 +blo "31000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,61500,7200" +st "clk75MHz : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk75MHz" +t "std_ulogic" +o 6 +suid 4,0 +) +) +) +*74 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,24625,20000,25375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,24500,24200,25500" +st "en10M" +blo "21000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61500,5600" +st "en10M : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en10M" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*75 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,23625,20000,24375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,23500,24200,24500" +st "en50M" +blo "21000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61500,4800" +st "en50M : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en50M" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*76 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,22625,20000,23375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,22500,24200,23500" +st "en75M" +blo "21000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61500,4000" +st "en75M : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en75M" +t "std_ulogic" +o 2 +suid 8,0 +) +) +) +*77 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,26625,32750,27375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +font "Verdana,8,0" +) +xt "26800,26500,31000,27500" +st "pllLocked" +ju 2 +blo "31000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,60500,9600" +st "pllLocked : OUT std_ulogic +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*78 (CptPort +uid 195,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 196,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,20625,20000,21375" +) +tg (CPTG +uid 197,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 198,0 +va (VaSet +font "Verdana,8,0" +) +xt "21000,20500,25600,21500" +st "clkIn100M" +blo "21000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 199,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,61500,3200" +st "clkIn100M : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 194,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "20000,20000,32000,28000" +) +oxt "15000,6000,44000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "20400,30000,24100,31000" +st "Lattice" +blo "20400,30800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "20400,31000,22200,32000" +st "pll" +blo "20400,31800" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "-4000,-50000,7500,-49200" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +portVis (PortSigDisplay +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,48100,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,42900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*93 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17600,6000" +st "library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all;" +tm "PackageList" +) +] +) +windowSize "174,201,1190,891" +viewArea "-3070,15023,42318,45897" +cachedDiagramExtent "-4000,-50000,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-5000,-51000" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,9600,45200,10800" +st "User:" +blo "42000,10600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,44000,10800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 224,0 +activeModelName "Symbol" +) diff --git a/Libs/Lattice/hds/pll_vga/symbol.sb b/Libs/Lattice/hds/pll_vga/symbol.sb new file mode 100644 index 0000000..0048733 --- /dev/null +++ b/Libs/Lattice/hds/pll_vga/symbol.sb @@ -0,0 +1,1449 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "IEEE" +unitName "std_logic_1164" +) +(DmPackageRef +library "ECP5U" +unitName "components" +) +] +libraryRefs [ +"IEEE" +"ECP5U" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 3,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 74,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk25MHz" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 66,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 68,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 70,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 87,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 89,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 90,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 91,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 92,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 67,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 69,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 93,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 94,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 95,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 96,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 97,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 98,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 99,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 100,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 101,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 88,0 +vaOverrides [ +] +) +] +) +uid 73,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*45 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *46 (MRCItem +litem &33 +pos 0 +dimension 20 +) +uid 117,0 +optionalChildren [ +*47 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 118,0 +) +*48 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 119,0 +) +*49 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*50 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 122,0 +) +*51 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 123,0 +) +*52 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 124,0 +) +*53 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 125,0 +) +*54 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 126,0 +) +*55 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 127,0 +) +*56 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 128,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\did-display\\Libs\\Lattice\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds\\pll_vga\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds\\pll_vga\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds\\pll_vga" +) +(vvPair +variable "d_logical" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds\\pll_vga" +) +(vvPair +variable "date" +value "03.04.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "pll_vga" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:31:31" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Lattice" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Lattice/work" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "pll_vga" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds\\pll_vga\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\did-display\\Libs\\Lattice\\hds\\pll_vga\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:31:31" +) +(vvPair +variable "unit" +value "pll_vga" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 72,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,23625,30750,24375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "22400,23300,29000,24700" +st "clk25MHz" +ju 2 +blo "29000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61500,4000" +st "clk25MHz : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk25MHz" +t "std_ulogic" +o 2 +suid 1,0 +) +) +) +*59 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,24625,15000,25375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,24300,23100,25700" +st "clkIn100M" +blo "16000,25500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,61500,3200" +st "clkIn100M : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 2,0 +) +) +) +*60 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,25625,30750,26375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "22400,25300,29000,26700" +st "pllLocked" +ju 2 +blo "29000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,60500,4800" +st "pllLocked : OUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 152,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,23000,30000,28000" +) +oxt "15000,6000,44000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "15400,29000,19600,30200" +st "Lattice" +blo "15400,30000" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "15400,30200,19600,31400" +st "pll_vga" +blo "15400,31200" +) +) +gi *61 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "-11000,-29000,500,-28200" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +portVis (PortSigDisplay +) +) +*62 (Grouping +uid 16,0 +optionalChildren [ +*63 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*64 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*65 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,44900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *73 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*75 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17000,6000" +st "library IEEE; +use IEEE.std_logic_1164.all; +library ECP5U; +use ECP5U.components.all;" +tm "PackageList" +) +] +) +windowSize "568,181,1584,871" +viewArea "12136,8572,57525,40943" +cachedDiagramExtent "-11000,-29000,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-12000,-30000" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *76 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *77 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4800,45200,6000" +st "User:" +blo "42000,5800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,44000,6000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 152,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hdl/bramBinASCIIInit_rtl.vhd b/Libs/Memory/hdl/bramBinASCIIInit_rtl.vhd new file mode 100644 index 0000000..2d90cc6 --- /dev/null +++ b/Libs/Memory/hdl/bramBinASCIIInit_rtl.vhd @@ -0,0 +1,39 @@ +USE std.textio.all; + +ARCHITECTURE rtl OF bramBinASCIIInit IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of bit_vector(dataBitNb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); + +BEGIN + -- Port A + process(clock) + begin + if clock'event and clock='1' then + if en = '1' then + if writeEn = '1' then + dataOut <= dataIn; + ramContent(to_integer(unsigned(addressIn))) := to_bitvector(dataIn,'0'); + else + dataOut <= to_stdulogicvector(ramContent(to_integer(unsigned(addressIn)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE rtl; diff --git a/Libs/Memory/hdl/bramDualportWritefirst_bhv.vhd b/Libs/Memory/hdl/bramDualportWritefirst_bhv.vhd new file mode 100644 index 0000000..09bf83a --- /dev/null +++ b/Libs/Memory/hdl/bramDualportWritefirst_bhv.vhd @@ -0,0 +1,54 @@ +USE std.textio.all; + +ARCHITECTURE bhv OF bramDualportWritefirst IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of bit_vector(dataBitNb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); + +BEGIN + -- Port A + process(clockA) + begin + if clockA'event and clockA='1' then + if enA = '1' then + if writeEnA = '1' then + dataOutA <= dataInA; + ramContent(to_integer(unsigned(addressA))) := to_bitvector(dataInA,'0'); + else + dataOutA <= to_stdulogicvector(ramContent(to_integer(unsigned(addressA)))); + end if; + end if; + end if; + end process; + + -- Port B + process(clockB) + begin + if clockB'event and clockB='1' then + if enB = '1' then +-- if writeEnB = '1' then +-- ramContent(to_integer(unsigned(addressB))) := to_bitvector(dataInB,'0'); +-- dataOutB <= dataInB; +-- else + dataOutB <= to_stdulogicvector(ramContent(to_integer(unsigned(addressB)))); +-- end if; + end if; + end if; + end process; + +END ARCHITECTURE bhv; diff --git a/Libs/Memory/hdl/bramDualport_bhv.vhd b/Libs/Memory/hdl/bramDualport_bhv.vhd new file mode 100644 index 0000000..303dec5 --- /dev/null +++ b/Libs/Memory/hdl/bramDualport_bhv.vhd @@ -0,0 +1,41 @@ +USE std.textio.all; + +ARCHITECTURE bhv OF bramDualport IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of bit_vector(dataBitNb-1 DOWNTO 0); + + -- Declare ramContent signal + shared variable ramContent: ramContentType; + +BEGIN + -- Port A + process(clockA) + begin + if clockA'event and clockA='1' then + if enA = '1' then + if writeEnA = '1' then + dataOutA <= dataInA; + ramContent(to_integer(unsigned(addressA))) := to_bitvector(dataInA,'0'); + else + dataOutA <= to_stdulogicvector(ramContent(to_integer(unsigned(addressA)))); + end if; + end if; + end if; + end process; + + -- Port B + process(clockB) + begin + if clockB'event and clockB='1' then + if enB = '1' then + if writeEnB = '1' then + ramContent(to_integer(unsigned(addressB))) := to_bitvector(dataInB,'0'); + dataOutB <= dataInB; + else + dataOutB <= to_stdulogicvector(ramContent(to_integer(unsigned(addressB)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE bhv; diff --git a/Libs/Memory/hdl/bramHexASCIIInit_rtl.vhd b/Libs/Memory/hdl/bramHexASCIIInit_rtl.vhd new file mode 100644 index 0000000..3313cfd --- /dev/null +++ b/Libs/Memory/hdl/bramHexASCIIInit_rtl.vhd @@ -0,0 +1,42 @@ +library ieee; + use std.textio.all; + use ieee.std_logic_textio.all; + +ARCHITECTURE rtl OF bramHexASCIIInit IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of std_logic_vector(dataBitNb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + HREAD(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); + +BEGIN + + -- Port A + process(clock) + begin + if clock'event and clock='1' then + if en = '1' then + if writeEn = '1' then + dataOut <= dataIn; + ramContent(to_integer(unsigned(addressIn))) := std_logic_vector(dataIn); + else + dataOut <= to_stdulogicvector(ramContent(to_integer(unsigned(addressIn)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE rtl; diff --git a/Libs/Memory/hdl/bram_actel.vhd b/Libs/Memory/hdl/bram_actel.vhd new file mode 100644 index 0000000..415edbd --- /dev/null +++ b/Libs/Memory/hdl/bram_actel.vhd @@ -0,0 +1,27 @@ +ARCHITECTURE actel OF bram IS + + subtype ramCellType is std_ulogic_vector(dataBitNb-1 DOWNTO 0); + type ramContentType is array(2**addressBitNb-1 downto 0) of ramCellType; + signal ramContent: ramContentType ; + +BEGIN + -- memory array + process(clock) + begin + if rising_edge(clock) then + if (en = '1') and (writeEn = '1') then + ramContent(to_integer(unsigned(addressIn))) <= dataIn; + end if; + end if; + end process; + -- read register + process(clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= ramContent(to_integer(unsigned(addressIn))); + end if; + end if; + end process; + +END ARCHITECTURE actel; diff --git a/Libs/Memory/hdl/bram_bhv.vhd b/Libs/Memory/hdl/bram_bhv.vhd new file mode 100644 index 0000000..b03583a --- /dev/null +++ b/Libs/Memory/hdl/bram_bhv.vhd @@ -0,0 +1,20 @@ +ARCHITECTURE bhv OF bram IS + + type ramContentType is array(2**addressBitNb-1 downto 0) of std_logic_vector(dataBitNb-1 DOWNTO 0); + shared variable ramContent: ramContentType ; + +BEGIN + + process(clock) + begin + if rising_edge(clock) then + if en = '1' then + if writeEn = '1' then + ramContent(to_integer(unsigned(addressIn))) := dataIn; + end if; + dataOut <= ramContent(to_integer(unsigned(addressIn))); + end if; + end if; + end process; + +END ARCHITECTURE bhv; diff --git a/Libs/Memory/hdl/bram_dualport_writefirst.vhd b/Libs/Memory/hdl/bram_dualport_writefirst.vhd new file mode 100644 index 0000000..8fd72bf --- /dev/null +++ b/Libs/Memory/hdl/bram_dualport_writefirst.vhd @@ -0,0 +1,55 @@ +USE std.textio.all; + +ARCHITECTURE bhv OF bramContentDualportWritefirst IS + -- Define ramContent type + type ramContentType is array(0 to (2**addr_bit_nb)-1) of bit_vector(data_bit_nb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(init_file); + +BEGIN + -- Port A + process(clockA) + begin + if clockA'event and clockA='1' then + if enA = '1' then + if writeEnA = '1' then + dataOutA <= dataInA; + ramContent(to_integer(unsigned(addressA))) := to_bitvector(dataInA,'0'); + else + dataOutA <= to_stdulogicvector(ramContent(to_integer(unsigned(addressA)))); + end if; + end if; + end if; + end process; + + -- Port B + process(clockB) + begin + if clockB'event and clockB='1' then + if enB = '1' then + if writeEnB = '1' then + ramContent(to_integer(unsigned(addressB))) := to_bitvector(dataInB,'0'); + dataOutB <= dataInB; + else + dataOutB <= to_stdulogicvector(ramContent(to_integer(unsigned(addressB)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE bhv; + diff --git a/Libs/Memory/hdl/bram_hexRead.vhd b/Libs/Memory/hdl/bram_hexRead.vhd new file mode 100644 index 0000000..f99b3c1 --- /dev/null +++ b/Libs/Memory/hdl/bram_hexRead.vhd @@ -0,0 +1,42 @@ +library ieee; + use std.textio.all; + use ieee.std_logic_textio.all; + +ARCHITECTURE hexRead OF bram IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of std_logic_vector(dataBitNb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + HREAD(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); + +BEGIN + + -- Port A + process(clock) + begin + if clock'event and clock='1' then + if en = '1' then + if writeEn = '1' then + dataOut <= dataIn; + ramContent(to_integer(unsigned(addressIn))) := std_logic_vector(dataIn); + else + dataOut <= to_stdulogicvector(ramContent(to_integer(unsigned(addressIn)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE hexRead; diff --git a/Libs/Memory/hdl/bram_withInit.vhd b/Libs/Memory/hdl/bram_withInit.vhd new file mode 100644 index 0000000..c28eab9 --- /dev/null +++ b/Libs/Memory/hdl/bram_withInit.vhd @@ -0,0 +1,39 @@ +USE std.textio.all; + +ARCHITECTURE withInit OF bram IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of bit_vector(dataBitNb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); + +BEGIN + -- Port A + process(clock) + begin + if clock'event and clock='1' then + if en = '1' then + if writeEn = '1' then + dataOut <= dataIn; + ramContent(to_integer(unsigned(addressIn))) := to_bitvector(dataIn,'0'); + else + dataOut <= to_stdulogicvector(ramContent(to_integer(unsigned(addressIn)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE withInit; diff --git a/Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd b/Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd new file mode 100644 index 0000000..9773ce4 --- /dev/null +++ b/Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd @@ -0,0 +1,73 @@ +-- ------------------------------------------------------------------------------ +-- Copyright 2013 HES-SO Valais Wallis (www.hevs.ch) +-- ------------------------------------------------------------------------------ +-- FIFO bridge with bus width adaption +-- A shift register that connects two FIFOs with different bus width. +-- Many IP blocks nowadays have FIFO or FIFO-like interfaces and often they +-- have to be connected. This block can the be used for this task, even if +-- the bus size of the two FIFO interfaces is different. +-- The Rx side bus width has to be a multiple of the Tx side bus width. +-- +-- Created on 2013-10-18 +-- +-- Author: Oliver A. Gubler (oliver.gubler@hevs.ch) +-- +-- 2014-10-06: *modify introduction text +-- +add some comment +-- *change readRx to a pulse +-- *fix bug on shift of shiftreg_s +-- 2013-10-18: +intital release +-- ------------------------------------------------------------------------------ +-- + +library Common; + use Common.CommonLib.all; + +ARCHITECTURE behavioral OF fifoBridgeRxToTxBusWidthAdaptionRxBigger IS + + signal cnt_s: unsigned(requiredBitNb(dataBitNbRx)-1 downto 0); + signal shiftreg_s: std_ulogic_vector(dataBitNbRx-1 downto 0); + signal emptyRx_s: std_ulogic; -- internal empty signal + signal writeTx_s: std_ulogic; -- internal write signal + + constant ratio_rxtx_c: positive range 1 to dataBitNbRx/dataBitNbTx:= dataBitNbRx/dataBitNbTx; + +BEGIN + + rx0: process(clock, reset) + begin + if reset = '1' then + shiftreg_s <= (others => '0'); + emptyRx_s <= '1'; + cnt_s <= (others => '0'); + writeTx_s <= '0'; + dataTx <= (others => '0'); + readRx <= '0'; + elsif rising_edge(clock) then + writeTx_s <= '0'; + readRx <= '0'; + -- fetch data + if emptyRx_s = '1' and emptyRx = '0' then + emptyRx_s <= '0'; + shiftreg_s <= dataRx; + readRx <= '1'; + end if; + -- shift data and put out + -- after each write, wait one cylce to check if full gets high + if emptyRx_s = '0' and fullTx = '0' and writeTx_s = '0' then + shiftreg_s <= shiftreg_s(dataBitNbRx-dataBitNbTx-1 downto 0) & std_ulogic_vector(to_unsigned(0,dataBitNbTx)); + dataTx <= shiftreg_s(dataBitNbRx-1 downto dataBitNbRx-dataBitNbTx); + writeTx_s <= '1'; + cnt_s <= cnt_s +1; + if cnt_s >= ratio_rxtx_c-1 then + cnt_s <= (others => '0'); + emptyRx_s <= '1'; + end if; + end if; + end if; + end process; + + writeTx <= writeTx_s; + +END ARCHITECTURE behavioral; + diff --git a/Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd b/Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd new file mode 100644 index 0000000..c6217f8 --- /dev/null +++ b/Libs/Memory/hdl/fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd @@ -0,0 +1,75 @@ +-- ------------------------------------------------------------------------------ +-- Copyright 2013 HES-SO Valais Wallis (www.hevs.ch) +-- ------------------------------------------------------------------------------ +-- FIFO bridge with bus width adaption +-- A shift register that connects two FIFOs with different bus width. +-- Many IP blocks nowadays have FIFO or FIFO-like interface. But the bus width +-- varies often. This block can the be used to adapt the bus width to your own +-- needs. +-- The Tx side bus width has to be a multiple of the Rx side bus width. +-- +-- Created on 2013-10-21 +-- +-- Version: 1.0 +-- Author: Oliver A. Gubler (oliver.gubler@hevs.ch) +-- ------------------------------------------------------------------------------ +-- + +library common; + use common.commonlib.all; + +ARCHITECTURE behavioral OF fifoBridgeRxToTxBusWidthAdaptionTxbigger IS + + constant ratio_txrx_c: positive range 1 to dataBitNbTx/dataBitNbRx:= dataBitNbTx/dataBitNbRx; + + signal cnt_s: unsigned(requiredBitNb(ratio_txrx_c-1)-1 downto 0); + signal shiftreg_s: std_ulogic_vector(dataBitNbTx-1 downto 0); + signal fullTx_s: std_ulogic; + signal emptyRx_s: std_ulogic; + +BEGIN + + rx0: process(clock, reset) + begin + if reset = '1' then + shiftreg_s <= (others => '0'); + readRx <= '1'; + emptyRx_s <= '1'; + cnt_s <= (others => '0'); + elsif rising_edge(clock) then + readRx <= NOT fullTx_s; + emptyRx_s <= '1'; + if emptyRx = '0' and fullTx_s = '0' then +-- shiftreg_s(((to_integer(cnt_s)+1)*dataBitNbRx)-1 downto to_integer(cnt_s)*dataBitNbRx) <= dataRx; + shiftreg_s <= shiftreg_s(dataBitNbTx-dataBitNbRx-1 downto 0) & dataRx; + readRx <= '1'; + cnt_s <= cnt_s +1; + if cnt_s >= ratio_txrx_c-1 then + cnt_s <= (others => '0'); + emptyRx_s <= '0'; + end if; + end if; + end if; + end process; + + tx0: process(clock, reset) + begin + if reset = '1' then + fullTx_s <= '1'; + writeTx <= '0'; + dataTx <= (others => '0'); + elsif rising_edge(clock) then + fullTx_s <= fullTx; + writeTx <= '0'; + -- no need to wait to check for full (in contrast to RxBigger) + -- because it will forcibly take several clocks to fill the shiftreg + if emptyRx_s = '0' and fullTx = '0' then + dataTx <= shiftreg_s; + writeTx <= '1'; + end if; + end if; + end process; + +END ARCHITECTURE behavioral; + + diff --git a/Libs/Memory/hdl/fifo_bram_rtl.vhd b/Libs/Memory/hdl/fifo_bram_rtl.vhd new file mode 100644 index 0000000..83336ca --- /dev/null +++ b/Libs/Memory/hdl/fifo_bram_rtl.vhd @@ -0,0 +1,165 @@ +library Common; + use Common.CommonLib.all; + +architecture RTL of FIFO_bram is + + subtype register_type is std_ulogic_vector(dataIn'high downto 0); + type memory_type is array (0 to depth-1) of register_type; + + signal writeCounter: unsigned(requiredBitNb(depth-1)-1 downto 0); + signal readCounter: unsigned(writeCounter'range); + signal memoryArray: memory_type; + + type fifoStateType is ( + sEmpty, sFull, + sRead, sWrite, sWriteFirst, + sReadWrite, sWait + ); + signal fifoState: fifoStateType; + signal emptyCondition, fullCondition, empty_int: std_ulogic; + +begin + ------------------------------------------------------------------------------ + -- read and write counters + updateWriteCounter: process(reset, clock) + begin + if reset = '1' then + writeCounter <= (others => '0'); + elsif rising_edge(clock) then + if (write = '1') and (fullCondition = '0') then + writeCounter <= writeCounter + 1; + end if; + end if; + end process updateWriteCounter; + + updateReadCounter: process(reset, clock) + begin + if reset = '1' then + readCounter <= (others => '0'); + elsif rising_edge(clock) then + if (read = '1') and (empty_int = '0') then + readCounter <= readCounter + 1; + end if; + end if; + end process updateReadCounter; + + ------------------------------------------------------------------------------ + -- memory access + writeMem: process(clock) + begin + if rising_edge(clock) then + if (write = '1') and (fullCondition = '0') then + memoryArray(to_integer(writeCounter)) <= dataIn; + end if; + end if; + end process writeMem; + + readMem: process(reset, clock) + begin + if reset = '1' then + dataOut <= (others => '0'); + elsif rising_edge(clock) then + if (read = '0') or (empty_int = '1') then + dataOut <= memoryArray(to_integer(readCounter)); + else + dataOut <= memoryArray(to_integer(readCounter+1)); + end if; + end if; + end process readMem; + + ------------------------------------------------------------------------------ + -- controls + emptyCondition <= '1' when + ( (fifoState = sRead) and (writeCounter = readCounter) ) or + (fifoState = sEmpty) + else '0'; + + fullCondition <= '1' when + ( (fifoState = sWrite) and (writeCounter = readCounter) ) or + (fifoState = sFull) + else '0'; + + + fifoControl: process(reset, clock) + begin + if reset = '1' then + fifoState <= sEmpty; + elsif rising_edge(clock) then + case fifoState is + when sEmpty => + if write = '1' then + fifoState <= sWriteFirst; + end if; + when sFull => + if (read = '1') then + fifoState <= sRead; + end if; + when sRead => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif write = '1' then + fifoState <= sWrite; + elsif emptyCondition = '1' then + fifoState <= sEmpty; + elsif read = '1' then + fifoState <= sRead; + else + fifoState <= sWait; + end if; + when sWriteFirst => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif write = '1' then + fifoState <= sWrite; + elsif read = '1' then + fifoState <= sRead; + else + fifoState <= sWait; + end if; + when sWrite => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif read = '1' then + fifoState <= sRead; + elsif fullCondition = '1' then + fifoState <= sFull; + elsif write = '1' then + fifoState <= sWrite; + else + fifoState <= sWait; + end if; + when sReadWrite => + if (read = '0') and (write = '0') then + fifoState <= sWait; + elsif (read = '1') and (write = '0') then + fifoState <= sRead; + elsif (write = '1') and (read = '0') then + fifoState <= sWrite; + end if; + when sWait => + if (read = '1') and (write = '1') then + fifoState <= sReadWrite; + elsif read = '1' then + fifoState <= sRead; + elsif write = '1' then + fifoState <= sWrite; + end if; + when others => null; + end case; + end if; + end process fifoControl; + + + full <= '1' when + (fifoState = sFull) or + (fullCondition = '1') + else '0'; + + empty_int <= '1' when + (fifoState = sEmpty) or + (fifoState = sWriteFirst) or + ( (emptyCondition = '1') and (fifoState = sRead) ) + else '0'; + empty <= empty_int; + +end RTL; diff --git a/Libs/Memory/hdl/fifo_minimal.vhd b/Libs/Memory/hdl/fifo_minimal.vhd new file mode 100644 index 0000000..915866c --- /dev/null +++ b/Libs/Memory/hdl/fifo_minimal.vhd @@ -0,0 +1,63 @@ +library Common; + use Common.CommonLib.all; + +architecture minimal of FIFO_bram is + + subtype register_type is std_ulogic_vector(dataIn'high downto 0); + type memory_type is array (0 to depth-1) of register_type; + + signal writeCounter: unsigned(requiredBitNb(depth)-1 downto 0); + signal readCounter: unsigned(writeCounter'range); + signal memoryArray : memory_type; + +begin + + updateWriteCounter: process(reset, clock) + begin + if reset = '1' then + writeCounter <= (others => '0'); + elsif rising_edge(clock) then + if write = '1' then + writeCounter <= writeCounter + 1; + end if; + end if; + end process updateWriteCounter; + + updateReadCounter: process(reset, clock) + begin + if reset = '1' then + readCounter <= (others => '0'); + elsif rising_edge(clock) then + if read = '1' then + readCounter <= readCounter + 1; + end if; + end if; + end process updateReadCounter; + + writeMem: process(clock) + begin + if rising_edge(clock) then + if write = '1' then + memoryArray(to_integer(writeCounter)) <= dataIn; + end if; + end if; + end process writeMem; + + dataOut <= memoryArray(to_integer(readCounter)); + + checkStatus: process(readCounter, writeCounter) + begin + if readCounter = writeCounter then + empty <= '1'; + else + empty <= '0'; + end if; + if writeCounter+1 = readCounter then + full <= '1'; + else + full <= '0'; + end if; + end process checkStatus; + +end minimal; + diff --git a/Libs/Memory/hdl/fifo_oneRegister_rtl.vhd b/Libs/Memory/hdl/fifo_oneRegister_rtl.vhd new file mode 100644 index 0000000..244749d --- /dev/null +++ b/Libs/Memory/hdl/fifo_oneRegister_rtl.vhd @@ -0,0 +1,37 @@ +architecture oneRegister of FIFO_oneRegister is + + signal dataRegister: std_ulogic_vector(dataIn'range); + +begin + + writeReg: process(reset, clock) + begin + if reset = '1' then + dataRegister <= (others => '0'); + elsif rising_edge(clock) then + if write = '1' then + dataRegister <= dataIn; + end if; + end if; + end process writeReg; + + dataOut <= dataRegister; + + manageFlags: process(reset, clock) + begin + if reset = '1' then + empty <= '1'; + full <= '0'; + elsif rising_edge(clock) then + if write = '1' then + empty <= '0'; + full <= '1'; + elsif read = '1' then + empty <= '1'; + full <= '0'; + end if; + end if; + end process manageFlags; + +end oneRegister; + diff --git a/Libs/Memory/hdl/fifo_pim.vhd b/Libs/Memory/hdl/fifo_pim.vhd new file mode 100644 index 0000000..81006e3 --- /dev/null +++ b/Libs/Memory/hdl/fifo_pim.vhd @@ -0,0 +1,118 @@ +library Common; + use Common.CommonLib.all; + +architecture pim of FIFO_bram is + + type mem_t is array (depth-1 downto 0) of std_ulogic_vector(dataIn'range); + subtype mem_range_r is natural range requiredBitNb(depth)-1 downto 0; + subtype ptr_range_r is natural range requiredBitNb(depth)+1-1 downto 0; + + signal mem : mem_t := (others => (others => '0')); + + signal full_int : std_logic; + signal empty_int : std_logic; + signal write_error : std_logic; + signal read_error : std_logic; + signal read_ptr : unsigned(ptr_range_r); + signal read_ptr_next : unsigned(ptr_range_r); + signal write_ptr : unsigned(ptr_range_r); + signal write_ptr_next : unsigned(ptr_range_r); + + signal used_int : unsigned(ptr_range_r); + +begin + ----------------------------------------------------------------------------- + -- Free / used + ----------------------------------------------------------------------------- + + fifo_count_proc: process(reset, clock) + begin + if reset = '1' then + used_int <= (others => '0'); + elsif rising_edge(clock) then + if write = '1' and full_int = '0' then + used_int <= used_int + 1; + end if; + if read = '1' and empty_int = '0' then + used_int <= used_int - 1; + end if; + + -- Simultaneous read/write -> no change + -- ignore full_int, since it is valid + if write = '1' and read = '1' and empty_int = '0' then + used_int <= used_int; + end if; + end if; + end process; + + + ----------------------------------------------------------------------------- + -- FIFO status + ----------------------------------------------------------------------------- + + full_int <= '1' when (write_ptr(write_ptr'left) /= read_ptr(read_ptr'left)) + and ((write_ptr(mem_range_r) = read_ptr(mem_range_r))) + else '0'; + empty_int <= '1' when (write_ptr = read_ptr) else '0'; + + full <= full_int; + empty <= empty_int; + + write_ptr_next <= write_ptr + 1; + read_ptr_next <= read_ptr + 1; + + + ----------------------------------------------------------------------------- + -- FIFO pointers + ----------------------------------------------------------------------------- + + fifo_ptr_proc: process(reset, clock) + begin + if reset = '1' then + write_ptr <= (others => '0'); + read_ptr <= (others => '0'); + write_error <= '0'; + read_error <= '0'; + elsif rising_edge(clock) then + write_error <= '0'; + read_error <= '0'; + if write = '1' then + if full_int = '0' or read = '1' then + write_ptr <= write_ptr_next; + else + write_error <= '1'; + end if; + end if; + if read = '1' then + if empty_int = '0' then + read_ptr <= read_ptr_next; + else + read_error <= '1'; + end if; + end if; + end if; + end process; + + + ----------------------------------------------------------------------------- + -- FIFO RAM + ----------------------------------------------------------------------------- + + fifo_out_proc : process(clock) + begin + if rising_edge(clock) then + dataOut <= mem(to_integer(read_ptr(mem_range_r))); + end if; + end process; + + fifo_in_proc : process(clock) + begin + if rising_edge(clock) then + if write = '1' and full_int = '0' then + mem(to_integer(write_ptr(mem_range_r))) <= dataIn; + end if; + end if; + end process; + +end pim; + diff --git a/Libs/Memory/hdl/fifo_rtl_minimal.vhd b/Libs/Memory/hdl/fifo_rtl_minimal.vhd new file mode 100644 index 0000000..6fcccc8 --- /dev/null +++ b/Libs/Memory/hdl/fifo_rtl_minimal.vhd @@ -0,0 +1,97 @@ +-- +-- VHDL Architecture Memory.fifo_minimal +-- +-- Created: +-- by - uadmin.UNKNOWN (WE3877) +-- at - 13:54:33 11.07.2012 +-- +-- using Mentor Graphics HDL Designer(TM) 2009.2 (Build 10) +-- +library Common; + use Common.CommonLib.all; + +architecture RTL_minimal of FIFO is + + subtype register_type is std_ulogic_vector(dataIn'high downto 0); + type memory_type is array (0 to depth-1) of register_type; + + signal writeCounter: unsigned(requiredBitNb(depth)-1 downto 0); + signal readCounter: unsigned(writeCounter'range); + signal memoryArray : memory_type; + +begin + + updateWriteCounter: process(reset, clock) + begin + if reset = '1' then + writeCounter <= (others => '0'); + elsif rising_edge(clock) then + if write = '1' then + writeCounter <= writeCounter + 1; + end if; + end if; + end process updateWriteCounter; + + updateReadCounter: process(reset, clock) + begin + if reset = '1' then + readCounter <= (others => '0'); + elsif rising_edge(clock) then + if read = '1' then + readCounter <= readCounter + 1; + end if; + end if; + end process updateReadCounter; + + writeMem: process(clock) + begin + if rising_edge(clock) then + if write = '1' then + memoryArray(to_integer(writeCounter)) <= dataIn; + end if; + end if; + end process writeMem; + + dataOut <= memoryArray(to_integer(readCounter)); + +-- checkStatus: process(reset, clock) +-- begin +-- if reset = '1' then +-- empty <= '1'; +-- full <= '0'; +-- elsif rising_edge(clock) then +-- if readCounter+1 = writeCounter then +-- if read = '1' then +-- empty <= '1'; +-- end if; +-- elsif writeCounter = readCounter then +-- if write = '1' then +-- empty <= '0'; +-- end if; +-- if read = '1' then +-- full <= '0'; +-- end if; +-- elsif writeCounter+1 = readCounter then +-- if write = '1' then +-- full <= '1'; +-- end if; +-- end if; +-- end if; +-- end process checkStatus; + + checkStatus: process(readCounter, writeCounter) + begin + if readCounter = writeCounter then + empty <= '1'; + else + empty <= '0'; + end if; + if writeCounter+1 = readCounter then + full <= '1'; + else + full <= '0'; + end if; + end process checkStatus; + +END ARCHITECTURE RTL_minimal; + diff --git a/Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd b/Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd new file mode 100644 index 0000000..5c20654 --- /dev/null +++ b/Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd @@ -0,0 +1,84 @@ +-- ------------------------------------------------------------------------------ +-- Copyright 2012 HES-SO Valais Wallis (www.hevs.ch) +-- ------------------------------------------------------------------------------ +-- FIFO bridge with bus width adaptation +-- A register that connects two FIFOs. +-- Many IP blocks nowadays have FIFO or FIFO-like interfaces and often they +-- have to be connected. This block can the be used for this task. +-- +-- Created on 2012 +-- +-- Author: Oliver A. Gubler (oliver.gubler@hevs.ch) +-- +-- 2016-04-01: fix bug in FWFT read when full +-- 2016-03-22: +add FirstWordFallThrough (FWFT) generic +-- 2012: +intital release +-- ------------------------------------------------------------------------------ +-- + +ARCHITECTURE RTL OF fifoBridgeRxToTx IS + + signal read1: std_ulogic; + signal read2: std_ulogic; + signal read: std_ulogic; + signal storedData: std_ulogic_vector(data1'range); + signal write: std_ulogic; + +BEGIN + + readControl: process(reset, clock) + begin + if reset = '1' then + read1 <= '0'; + read2 <= '0'; + elsif rising_edge(clock) then + if (empty1 = '0') and (full2 = '0') then + read1 <= '1'; + else + read1 <= '0'; + end if; + read2 <= read1; + end if; + end process readControl; + + read <= not empty1 and not full2 when firstWordFallThrough + else not empty1 and read1; + rd1 <= read; + + readData: process(reset, clock) + begin + if reset = '1' then + storedData <= (others => '0'); + elsif rising_edge(clock) then + if firstWordFallThrough then + storedData <= data1; + else + if read = '1' then + storedData <= data1; + end if; + end if; + end if; + end process readData; + + data2 <= storedData; + + writeControl: process(reset, clock) + begin + if reset = '1' then + write <= '0'; + elsif rising_edge(clock) then + if firstWordFallThrough then + write <= not empty1 and not full2; + else + if read = '1' then + write <= '1'; + else + write <= '0'; + end if; + end if; + end if; + end process writeControl; + + wr2 <= write; + +end RTL; diff --git a/Libs/Memory/hdl/flashController_RTL.vhd b/Libs/Memory/hdl/flashController_RTL.vhd new file mode 100644 index 0000000..f8f65c4 --- /dev/null +++ b/Libs/Memory/hdl/flashController_RTL.vhd @@ -0,0 +1,140 @@ +ARCHITECTURE RTL OF flashController IS + + signal addressReg: unsigned(flashAddr'range); + signal dataOutReg: std_ulogic_vector(flashDataOut'range); + signal dataInReg: std_ulogic_vector(flashDataIn'range); + type sequenceStateType is ( + idle, + waitForBus1, waitForBus0, + startAccess, waitAcccessEnd + ); + signal sequenceState: sequenceStateType; + signal read: std_ulogic; + signal startCounter: std_ulogic; + signal sequenceCounter: unsigned(3 downto 0); + signal endOfCount: std_ulogic; + signal readDataValid: std_ulogic; + signal flashCE: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- memory reset + memRst_n <= not '0'; + + ------------------------------------------------------------------------------ + -- address + storeAddress: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + elsif rising_edge(clock) then + if (flashRd = '1') or (flashWr = '1') then + addressReg <= shift_left(flashAddr, 1); + end if; + end if; + end process storeAddress; + + memAddress <= std_ulogic_vector(addressReg); + + ------------------------------------------------------------------------------ + -- data out + storeDataOut: process(reset, clock) + begin + if reset = '1' then + dataOutReg <= (others => '0'); + elsif rising_edge(clock) then + if flashWr = '1' then + dataOutReg <= flashDataOut; + end if; + end if; + end process storeDataOut; + + memDataOut <= flashDataOut; + + ------------------------------------------------------------------------------ + -- data in + readDataValid <= '1' when (read = '1') and (endOfCount = '1') else '0'; + + storeDataIn: process(reset, clock) + begin + if reset = '1' then + dataInReg <= (others => '0'); + elsif rising_edge(clock) then + if readDataValid = '1' then + dataInReg <= memDataIn; + end if; + end if; + end process storeDataIn; + + flashDataIn <= dataInReg when readDataValid = '0' else memDataIn; + + ------------------------------------------------------------------------------ + -- read/write sequence + busAccessFsm: process(reset, clock) + begin + if reset = '1' then + read <= '0'; + sequenceState <= idle; + elsif rising_edge(clock) then + case sequenceState is + when idle => + if flashRd = '1' then + read <= '1'; + sequenceState <= waitForBus1; + elsif flashWr = '1' then + read <= '0'; + sequenceState <= waitForBus1; + end if; + when waitForBus1 => + if memBusEn_n = '1' then + sequenceState <= waitForBus0; + end if; + when waitForBus0 => + if memBusEn_n = '0' then + sequenceState <= startAccess; + end if; + when startAccess => + sequenceState <= waitAcccessEnd; + when waitAcccessEnd => + if endOfCount = '1' then + sequenceState <= idle; + end if; + end case; + end if; + end process busAccessFsm; + + + startCounter <= '1' when sequenceState = startAccess else '0'; + endOfCount <= '1' + when ( (sequenceCounter = rdWaitState) and (read = '1') ) or + ( (sequenceCounter = wrWaitState) and (read = '0') ) + else '0'; + + countSequence: process(reset, clock) + begin + if reset = '1' then + sequenceCounter <= (others => '0'); + elsif rising_edge(clock) then + if sequenceCounter = 0 then + if startCounter = '1' then + sequenceCounter <= sequenceCounter + 1; + end if; + else + if endOfCount = '1' then + sequenceCounter <= (others => '0'); + else + sequenceCounter <= sequenceCounter + 1; + end if; + end if; + end if; + end process countSequence; + + flashCE <= '0' when sequenceCounter = 0 else '1'; + flashCE_n <= not flashCE; + memWR_n <= not '1' when (read = '0') and (flashCE = '1') and (endOfCount = '0') + else not '0'; + memOE_n <= not '1' when (read = '1') and (flashCE = '1') else not '0'; + + flashDataValid <= endOfCount; + +END ARCHITECTURE RTL; diff --git a/Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd b/Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd new file mode 100644 index 0000000..c2ba793 --- /dev/null +++ b/Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd @@ -0,0 +1,36 @@ +ARCHITECTURE RTL OF sdramControllerBuildAddress IS + + constant addressPrecharge: std_ulogic_vector(memAddress'range) + := (10=> '1', others => '-'); + constant addressModeRegU : unsigned(memAddress'range) + := resize("0" & "00" & "010" & "0" & "000", memAddress'length); + -- ll,10 = reserved, + -- 9 = '0' programmed burst length => burst length applicable for both rd and wr + -- 8,7 = Op mode = 00 => standard operation (all other states are reserved) + -- 6,5,4 = CAS latency = 010 => cas latency of 2 + -- 3 = Burst Type = '0' => Sequential (not interleaved) + -- 2,1,0 = Brust Length = 000 => brust length is 1 + constant addressModeReg : std_ulogic_vector(memAddress'range) + := std_ulogic_vector(addressModeRegU); + +BEGIN + + buildAddresses: process(ramAddr, addrSelPrecharge, addrSelModeReg, addrSelRow, addrSelCol) + begin + memBankAddress <= std_ulogic_vector(ramAddr(ramAddr'high downto ramAddr'high-memBankAddress'length+1)); + if addrSelPrecharge = '1' then + memAddress <= addressPrecharge; + elsif addrSelModeReg = '1' then + memAddress <= addressModeReg; + elsif addrSelRow = '1' then + memAddress <= std_ulogic_vector(ramAddr(rowAddressBitNb+colAddressBitNb-1 downto colAddressBitNb)); + elsif addrSelCol = '1' then + memAddress(memAddress'high downto colAddressBitNb) <= (others => '0'); + memAddress(10) <= '1'; + memAddress(colAddressBitNb-1 downto 0) <= std_ulogic_vector(ramAddr(colAddressBitNb-1 downto 0)); + else + memAddress <= (others => '-'); + end if; + end process buildAddresses; + +END ARCHITECTURE RTL; diff --git a/Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd b/Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd new file mode 100644 index 0000000..1392f04 --- /dev/null +++ b/Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd @@ -0,0 +1,48 @@ +ARCHITECTURE RTL OF sdramControllerRefreshCounter IS + + signal delayCounter: unsigned(delayCounterBitNb-1 downto 0); + signal endOfDelay: std_ulogic; + +BEGIN + + countDelay : process(reset, clock) + begin + if reset = '1' then + delayCounter <= (others => '0'); + elsif rising_edge(clock) then + if endOfDelay = '1' then + delayCounter <= to_unsigned(1, delayCounter'length); + else + delayCounter <= delayCounter + 1; + end if; + end if; + end process countDelay; + + findEndOfDelay: process(powerUpDone, delayCounter) + begin + endOfDelay <= '0'; + if powerUpDone = '0' then + if delayCounter+1 = 0 then + endOfDelay <= '1'; + end if; + else + if delayCounter+1 >= refreshPeriodNb then + endOfDelay <= '1'; + end if; + end if; + end process findEndOfDelay; + + endOfRefreshCount <= endOfDelay; + + signalRefresh: process(powerUpDone, delayCounter) + begin + selectRefresh <= '0'; + if (powerUpDone = '1') and (delayCounter < 1024) then + if (delayCounter <= 16) or (delayCounter(3 downto 0) = 0) then + selectRefresh <= '1'; + end if; + end if; + end process signalRefresh; + + +END ARCHITECTURE RTL; diff --git a/Libs/Memory/hdl/sdramControllerSR_RTL.vhd b/Libs/Memory/hdl/sdramControllerSR_RTL.vhd new file mode 100644 index 0000000..2ec5bc8 --- /dev/null +++ b/Libs/Memory/hdl/sdramControllerSR_RTL.vhd @@ -0,0 +1,18 @@ +ARCHITECTURE RTL OF sdramControllerSR IS +BEGIN + + setReset: process(reset, clock) + begin + if reset = '1' then + flag <= '0'; + elsif rising_edge(clock) then + if setFlag = '1' then + flag <= '1'; + elsif resetFlag = '1' then + flag <= '0'; + end if; + end if; + end process setReset; + +END ARCHITECTURE RTL; + diff --git a/Libs/Memory/hdl/sdramControllerSampleDataIn_RTL.vhd b/Libs/Memory/hdl/sdramControllerSampleDataIn_RTL.vhd new file mode 100644 index 0000000..29bf09f --- /dev/null +++ b/Libs/Memory/hdl/sdramControllerSampleDataIn_RTL.vhd @@ -0,0 +1,17 @@ +ARCHITECTURE RTL OF sdramControllerSampleDataIn IS +BEGIN + + sampleRamData: process(reset, clock) + begin + if reset = '1' then + ramDataIn <= (others => '0'); + elsif falling_edge(clock) then + if sampleData = '1' then + ramDataIn <= memDataIn; + end if; + end if; + end process sampleRamData; + + +END ARCHITECTURE RTL; + diff --git a/Libs/Memory/hdl/sdramControllerStoreData_RTL.vhd b/Libs/Memory/hdl/sdramControllerStoreData_RTL.vhd new file mode 100644 index 0000000..d73bad4 --- /dev/null +++ b/Libs/Memory/hdl/sdramControllerStoreData_RTL.vhd @@ -0,0 +1,14 @@ +ARCHITECTURE RTL OF sdramControllerStoreData IS +BEGIN + + storeData : process(reset, clock) + begin + if reset = '1' then + memDataOut <= (others => '0'); + elsif rising_edge(clock) then + memDataOut <= ramDataOut; + end if; + end process storeData; + +END ARCHITECTURE RTL; + diff --git a/Libs/Memory/hdl/sdramControllerTimingsShiftRegister_RTL.vhd b/Libs/Memory/hdl/sdramControllerTimingsShiftRegister_RTL.vhd new file mode 100644 index 0000000..352ef4a --- /dev/null +++ b/Libs/Memory/hdl/sdramControllerTimingsShiftRegister_RTL.vhd @@ -0,0 +1,24 @@ +ARCHITECTURE RTL OF sdramControllerTimingsShiftRegister IS + + --constant leadingZeroesNb: positive := 2; + --constant leadingZeroes: std_ulogic_vector(1 to leadingZeroesNb) := (others => '0'); + --signal shiftReg: std_ulogic_vector(1 to timerDone'high-leadingZeroesNb); + signal shiftReg: std_ulogic_vector(1 to timerDone'high); + +BEGIN + + shiftToken : process(reset, clock) + begin + if reset = '1' then + shiftReg <= (others => '0'); + elsif rising_edge(clock) then + shiftReg(1) <= timerStart; + shiftReg(2 to shiftReg'right) <= shiftReg(1 to shiftReg'right-1); + end if; + end process shiftToken; + + --timerDone <= leadingZeroes & shiftReg; + timerDone <= shiftReg; + +END ARCHITECTURE RTL; + diff --git a/Libs/Memory/hds/.hdlsidedata/_bramBinASCIIInit_rtl.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bramBinASCIIInit_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bramBinASCIIInit_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bramDualportWritefirst_bhv.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bramDualportWritefirst_bhv.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bramDualportWritefirst_bhv.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bramDualport_bhv.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bramDualport_bhv.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bramDualport_bhv.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bramHexASCIIInit_rtl.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bramHexASCIIInit_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bramHexASCIIInit_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bram_actel.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bram_actel.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bram_actel.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bram_bhv.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bram_bhv.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bram_bhv.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bram_dualport_writefirst.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bram_dualport_writefirst.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bram_dualport_writefirst.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bram_hexRead.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bram_hexRead.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bram_hexRead.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Memory/hds/.hdlsidedata/_bram_withInit.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bram_withInit.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bram_withInit.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhg._fpf b/Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhg._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhg._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_minimal.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_minimal.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_minimal.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_oneRegister_rtl.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_oneRegister_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_oneRegister_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhg._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_pim.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_pim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_pim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_rtl.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_rtl.vhd._fpf new file mode 100644 index 0000000..2acce3d --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_87 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_rtl_minimal.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_rtl_minimal.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_rtl_minimal.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhg._fpf b/Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_fifobridgerxtotx_rtl.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_fifobridgerxtotx_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_fifobridgerxtotx_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_flashController_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_flashController_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_flashController_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_sdramControllerBuildAddress_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_sdramControllerBuildAddress_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_sdramControllerBuildAddress_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_sdramControllerRefreshCounter_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_sdramControllerRefreshCounter_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_sdramControllerRefreshCounter_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_sdramControllerSR_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_sdramControllerSR_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_sdramControllerSR_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_sdramControllerSampleDataIn_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_sdramControllerSampleDataIn_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_sdramControllerSampleDataIn_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_sdramControllerStoreData_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_sdramControllerStoreData_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_sdramControllerStoreData_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/.hdlsidedata/_sdramControllerTimingsShiftRegister_RTL.vhd._fpf b/Libs/Memory/hds/.hdlsidedata/_sdramControllerTimingsShiftRegister_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory/hds/.hdlsidedata/_sdramControllerTimingsShiftRegister_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory/hds/@f@i@f@o/struct.bd b/Libs/Memory/hds/@f@i@f@o/struct.bd new file mode 100644 index 0000000..ed772dd --- /dev/null +++ b/Libs/Memory/hds/@f@i@f@o/struct.bd @@ -0,0 +1,4408 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +frameInstances [ +(FrameInstance +name "g0" +style 1 +insts [ +(Instance +name "I1" +duLibraryName "Memory" +duName "FIFO_oneRegister" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 530,0 +) +] +) +(FrameInstance +name "g1" +style 1 +insts [ +(Instance +name "I0" +duLibraryName "Memory" +duName "FIFO_bram" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "depth" +) +] +mwi 0 +uid 237,0 +) +] +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds\\@f@i@f@o\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds\\@f@i@f@o\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds\\@f@i@f@o" +) +(vvPair +variable "d_logical" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds\\FIFO" +) +(vvPair +variable "date" +value "04.04.2023" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FIFO" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "13:26:06" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Memory/work" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FIFO" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds\\@f@i@f@o\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\did-inverter\\Libs\\Memory\\hds\\FIFO\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\eda\\MentorGraphics\\ModelSim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:26:06" +) +(vvPair +variable "unit" +value "FIFO" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 148,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "35000,17625,36500,18375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "36500,18000,37000,18000" +pts [ +"36500,18000" +"37000,18000" +] +) +] +) +stc 0 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "30200,17300,34000,18700" +st "clock" +ju 2 +blo "34000,18500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +) +xt "-1000,8600,10600,9800" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "35000,9625,36500,10375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "36500,10000,37000,10000" +pts [ +"36500,10000" +"37000,10000" +] +) +] +) +stc 0 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "29000,9300,34000,10700" +st "dataIn" +ju 2 +blo "34000,10500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +) +xt "-1000,13400,28700,14600" +st "dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*5 (PortIoOut +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "85500,9625,87000,10375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "85000,10000,85500,10000" +pts [ +"85000,10000" +"85500,10000" +] +) +] +) +stc 0 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "88000,9300,94000,10700" +st "dataOut" +blo "88000,10500" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +) +xt "-1000,11000,29200,12200" +st "dataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*7 (PortIoOut +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 270 +xt "85500,11625,87000,12375" +) +(Line +uid 54,0 +sl 0 +ro 270 +xt "85000,12000,85500,12000" +pts [ +"85000,12000" +"85500,12000" +] +) +] +) +stc 0 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "88000,11300,92700,12700" +st "empty" +blo "88000,12500" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 63,0 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +) +xt "-1000,14600,11000,15800" +st "empty : std_ulogic" +) +) +*9 (PortIoOut +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 90 +xt "35000,11625,36500,12375" +) +(Line +uid 68,0 +sl 0 +ro 90 +xt "36500,12000,37000,12000" +pts [ +"37000,12000" +"36500,12000" +] +) +] +) +stc 0 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "31400,11300,34000,12700" +st "full" +ju 2 +blo "34000,12500" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 77,0 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +) +xt "-1000,15800,9700,17000" +st "full : std_ulogic" +) +) +*11 (PortIoIn +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 90 +xt "85500,13625,87000,14375" +) +(Line +uid 82,0 +sl 0 +ro 90 +xt "85000,14000,85500,14000" +pts [ +"85500,14000" +"85000,14000" +] +) +] +) +stc 0 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "88000,13300,91700,14700" +st "read" +blo "88000,14500" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 91,0 +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +) +xt "-1000,12200,10400,13400" +st "read : std_ulogic" +) +) +*13 (PortIoIn +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "35000,19625,36500,20375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "36500,20000,37000,20000" +pts [ +"36500,20000" +"37000,20000" +] +) +] +) +stc 0 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "29900,19300,34000,20700" +st "reset" +ju 2 +blo "34000,20500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 105,0 +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +) +xt "-1000,9800,10500,11000" +st "reset : std_ulogic" +) +) +*15 (PortIoIn +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "35000,13625,36500,14375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "36500,14000,37000,14000" +pts [ +"36500,14000" +"37000,14000" +] +) +] +) +stc 0 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "30000,13300,34000,14700" +st "write" +ju 2 +blo "34000,14500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 119,0 +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +) +xt "-1000,7400,10300,8600" +st "write : std_ulogic" +) +) +*17 (SaComponent +uid 237,0 +optionalChildren [ +*18 (CptPort +uid 205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,13625,53000,14375" +) +tg (CPTG +uid 207,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 208,0 +va (VaSet +font "Verdana,8,0" +) +xt "54000,13500,56500,14500" +st "write" +blo "54000,14300" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*19 (CptPort +uid 209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,17625,53000,18375" +) +tg (CPTG +uid 211,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 212,0 +va (VaSet +font "Verdana,8,0" +) +xt "54000,17500,56500,18500" +st "clock" +blo "54000,18300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*20 (CptPort +uid 213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 214,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,19625,53000,20375" +) +tg (CPTG +uid 215,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 216,0 +va (VaSet +font "Verdana,8,0" +) +xt "54000,19500,56500,20500" +st "reset" +blo "54000,20300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*21 (CptPort +uid 217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 218,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,9625,69750,10375" +) +tg (CPTG +uid 219,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 220,0 +va (VaSet +font "Verdana,8,0" +) +xt "64301,9500,68001,10500" +st "dataOut" +ju 2 +blo "68001,10300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*22 (CptPort +uid 221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 222,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,13625,69750,14375" +) +tg (CPTG +uid 223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 224,0 +va (VaSet +font "Verdana,8,0" +) +xt "65700,13500,68000,14500" +st "read" +ju 2 +blo "68000,14300" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*23 (CptPort +uid 225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,9625,53000,10375" +) +tg (CPTG +uid 227,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 228,0 +va (VaSet +font "Verdana,8,0" +) +xt "53999,9500,57099,10500" +st "dataIn" +blo "53999,10300" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*24 (CptPort +uid 229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 230,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,11625,69750,12375" +) +tg (CPTG +uid 231,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 232,0 +va (VaSet +font "Verdana,8,0" +) +xt "64900,11500,68000,12500" +st "empty" +ju 2 +blo "68000,12300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*25 (CptPort +uid 233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 234,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,11625,53000,12375" +) +tg (CPTG +uid 235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 236,0 +va (VaSet +font "Verdana,8,0" +) +xt "54000,11500,55700,12500" +st "full" +blo "54000,12300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 238,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,6000,69000,22000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 239,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*26 (Text +uid 240,0 +va (VaSet +) +xt "53600,21800,58300,23000" +st "Memory" +blo "53600,22800" +tm "BdLibraryNameMgr" +) +*27 (Text +uid 241,0 +va (VaSet +) +xt "53600,23000,60000,24200" +st "FIFO_bram" +blo "53600,24000" +tm "CptNameMgr" +) +*28 (Text +uid 242,0 +va (VaSet +) +xt "53600,24200,55500,25400" +st "I0" +blo "53600,25200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 243,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 244,0 +text (MLText +uid 245,0 +va (VaSet +) +xt "53000,25600,73600,28000" +st "dataBitNb = dataBitNb ( positive ) +depth = depth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "depth" +) +] +) +viewicon (ZoomableIcon +uid 246,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "53250,20250,54750,21750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*29 (Grouping +uid 289,0 +optionalChildren [ +*30 (CommentText +uid 291,0 +shape (Rectangle +uid 292,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,74000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 293,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65500,57200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*31 (CommentText +uid 294,0 +shape (Rectangle +uid 295,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,61000,78000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 296,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,61500,74200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*32 (CommentText +uid 297,0 +shape (Rectangle +uid 298,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,74000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 299,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63500,57200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*33 (CommentText +uid 300,0 +shape (Rectangle +uid 301,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,63000,57000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 302,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,63500,53200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*34 (CommentText +uid 303,0 +shape (Rectangle +uid 304,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,62000,94000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 305,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,62200,88300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*35 (CommentText +uid 306,0 +shape (Rectangle +uid 307,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,94000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 308,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61500,78200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*36 (CommentText +uid 309,0 +shape (Rectangle +uid 310,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,61000,74000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 311,0 +va (VaSet +fg "32768,0,0" +) +xt "58350,61400,68650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*37 (CommentText +uid 312,0 +shape (Rectangle +uid 313,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,64000,57000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 314,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,64500,53200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*38 (CommentText +uid 315,0 +shape (Rectangle +uid 316,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,65000,57000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 317,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,65500,53200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*39 (CommentText +uid 318,0 +shape (Rectangle +uid 319,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,74000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 320,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64500,57200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 290,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "53000,61000,94000,66000" +) +oxt "14000,66000,55000,71000" +) +*40 (Frame +uid 427,0 +shape (RectFrame +uid 428,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "49000,34000,73000,58000" +) +title (TextAssociate +uid 429,0 +ps "TopLeftStrategy" +text (MLText +uid 430,0 +va (VaSet +font "Verdana,8,0" +) +xt "48650,32500,62350,33500" +st "g0: IF depth <= 1 GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +uid 431,0 +ps "TopLeftStrategy" +shape (Rectangle +uid 432,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "49300,34300,50700,35700" +) +num (Text +uid 433,0 +va (VaSet +font "Verdana,8,0" +) +xt "49500,34500,50500,35500" +st "1" +blo "49500,35300" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +uid 434,0 +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 435,0 +va (VaSet +font "Verdana,8,1" +) +xt "65000,58000,75000,59000" +st "Frame Declarations" +blo "65000,58800" +) +*42 (MLText +uid 436,0 +va (VaSet +font "Verdana,8,0" +) +xt "65000,59000,65000,59000" +tm "BdFrameDeclTextMgr" +) +] +) +style 1 +) +*43 (Frame +uid 437,0 +shape (RectFrame +uid 438,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "49000,4000,73000,28000" +) +title (TextAssociate +uid 439,0 +ps "TopLeftStrategy" +text (MLText +uid 440,0 +va (VaSet +font "Verdana,8,0" +) +xt "49150,2500,62150,3500" +st "g1: IF depth > 1 GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +uid 441,0 +ps "TopLeftStrategy" +shape (Rectangle +uid 442,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "49300,4300,50700,5700" +) +num (Text +uid 443,0 +va (VaSet +font "Verdana,8,0" +) +xt "49500,4500,50500,5500" +st "2" +blo "49500,5300" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +uid 444,0 +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +uid 445,0 +va (VaSet +font "Verdana,8,1" +) +xt "65000,28000,75000,29000" +st "Frame Declarations" +blo "65000,28800" +) +*45 (MLText +uid 446,0 +va (VaSet +font "Verdana,8,0" +) +xt "65000,29000,65000,29000" +tm "BdFrameDeclTextMgr" +) +] +) +style 1 +) +*46 (SaComponent +uid 530,0 +optionalChildren [ +*47 (CptPort +uid 498,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 499,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,43625,53000,44375" +) +tg (CPTG +uid 500,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 501,0 +va (VaSet +) +xt "54000,43400,57100,44600" +st "write" +blo "54000,44400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*48 (CptPort +uid 502,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 503,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,47625,53000,48375" +) +tg (CPTG +uid 504,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 505,0 +va (VaSet +) +xt "54000,47400,57400,48600" +st "clock" +blo "54000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*49 (CptPort +uid 506,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 507,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,49625,53000,50375" +) +tg (CPTG +uid 508,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 509,0 +va (VaSet +) +xt "54000,49400,57300,50600" +st "reset" +blo "54000,50400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*50 (CptPort +uid 510,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 511,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,39625,69750,40375" +) +tg (CPTG +uid 512,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 513,0 +va (VaSet +) +xt "63201,39400,68001,40600" +st "dataOut" +ju 2 +blo "68001,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*51 (CptPort +uid 514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 515,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,43625,69750,44375" +) +tg (CPTG +uid 516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 517,0 +va (VaSet +) +xt "65100,43400,68000,44600" +st "read" +ju 2 +blo "68000,44400" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*52 (CptPort +uid 518,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 519,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,39625,53000,40375" +) +tg (CPTG +uid 520,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 521,0 +va (VaSet +) +xt "53999,39400,57999,40600" +st "dataIn" +blo "53999,40400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*53 (CptPort +uid 522,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 523,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,41625,69750,42375" +) +tg (CPTG +uid 524,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 525,0 +va (VaSet +) +xt "64200,41400,68000,42600" +st "empty" +ju 2 +blo "68000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*54 (CptPort +uid 526,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 527,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,41625,53000,42375" +) +tg (CPTG +uid 528,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 529,0 +va (VaSet +) +xt "54000,41400,56200,42600" +st "full" +blo "54000,42400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 531,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "53000,36000,69000,52000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 532,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*55 (Text +uid 533,0 +va (VaSet +) +xt "53600,51800,58300,53000" +st "Memory" +blo "53600,52800" +tm "BdLibraryNameMgr" +) +*56 (Text +uid 534,0 +va (VaSet +) +xt "53600,52800,64200,54000" +st "FIFO_oneRegister" +blo "53600,53800" +tm "CptNameMgr" +) +*57 (Text +uid 535,0 +va (VaSet +) +xt "53600,53800,55500,55000" +st "I1" +blo "53600,54800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 536,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 537,0 +text (MLText +uid 538,0 +va (VaSet +font "Verdana,8,0" +) +xt "53000,56000,69900,57000" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +viewicon (ZoomableIcon +uid 539,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "53250,50250,54750,51750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*58 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "37000,18000,52250,18000" +pts [ +"37000,18000" +"52250,18000" +] +) +start &1 +end &19 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,16600,40800,18000" +st "clock" +blo "37000,17800" +tm "WireNameMgr" +) +) +on &2 +) +*59 (Wire +uid 29,0 +optionalChildren [ +*60 (BdJunction +uid 449,0 +ps "OnConnectorStrategy" +shape (Circle +uid 450,0 +va (VaSet +vasetType 1 +) +xt "46600,9600,47400,10400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "37000,10000,52250,10000" +pts [ +"37000,10000" +"52250,10000" +] +) +start &3 +end &23 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,8600,42000,10000" +st "dataIn" +blo "37000,9800" +tm "WireNameMgr" +) +) +on &4 +) +*61 (Wire +uid 43,0 +optionalChildren [ +*62 (BdJunction +uid 447,0 +ps "OnConnectorStrategy" +shape (Circle +uid 448,0 +va (VaSet +vasetType 1 +) +xt "74600,9600,75400,10400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69750,10000,85000,10000" +pts [ +"85000,10000" +"69750,10000" +] +) +start &5 +end &21 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,8600,86000,10000" +st "dataOut" +blo "80000,9800" +tm "WireNameMgr" +) +) +on &6 +) +*63 (Wire +uid 57,0 +optionalChildren [ +*64 (BdJunction +uid 461,0 +ps "OnConnectorStrategy" +shape (Circle +uid 462,0 +va (VaSet +vasetType 1 +) +xt "76600,11600,77400,12400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +) +xt "69750,12000,85000,12000" +pts [ +"85000,12000" +"69750,12000" +] +) +start &7 +end &24 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +font "Verdana,12,0" +) +xt "81000,10600,85700,12000" +st "empty" +blo "81000,11800" +tm "WireNameMgr" +) +) +on &8 +) +*65 (Wire +uid 71,0 +optionalChildren [ +*66 (BdJunction +uid 463,0 +ps "OnConnectorStrategy" +shape (Circle +uid 464,0 +va (VaSet +vasetType 1 +) +xt "44600,11600,45400,12400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +) +xt "37000,12000,52250,12000" +pts [ +"37000,12000" +"52250,12000" +] +) +start &9 +end &25 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,10600,39600,12000" +st "full" +blo "37000,11800" +tm "WireNameMgr" +) +) +on &10 +) +*67 (Wire +uid 85,0 +optionalChildren [ +*68 (BdJunction +uid 459,0 +ps "OnConnectorStrategy" +shape (Circle +uid 460,0 +va (VaSet +vasetType 1 +) +xt "78600,13600,79400,14400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +) +xt "69750,14000,85000,14000" +pts [ +"85000,14000" +"69750,14000" +] +) +start &11 +end &22 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,12600,85700,14000" +st "read" +blo "82000,13800" +tm "WireNameMgr" +) +) +on &12 +) +*69 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +) +xt "37000,20000,52250,20000" +pts [ +"37000,20000" +"52250,20000" +] +) +start &13 +end &20 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,18600,41100,20000" +st "reset" +blo "37000,19800" +tm "WireNameMgr" +) +) +on &14 +) +*70 (Wire +uid 113,0 +optionalChildren [ +*71 (BdJunction +uid 465,0 +ps "OnConnectorStrategy" +shape (Circle +uid 466,0 +va (VaSet +vasetType 1 +) +xt "42600,13600,43400,14400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +) +xt "37000,14000,52250,14000" +pts [ +"37000,14000" +"52250,14000" +] +) +start &15 +end &18 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +font "Verdana,12,0" +) +xt "37000,12600,41000,14000" +st "write" +blo "37000,13800" +tm "WireNameMgr" +) +) +on &16 +) +*72 (Wire +uid 363,0 +shape (OrthoPolyLine +uid 364,0 +va (VaSet +vasetType 3 +) +xt "45000,50000,52250,50000" +pts [ +"45000,50000" +"52250,50000" +] +) +end &49 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 369,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 370,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,48600,49100,50000" +st "reset" +blo "45000,49800" +tm "WireNameMgr" +) +) +on &14 +) +*73 (Wire +uid 371,0 +shape (OrthoPolyLine +uid 372,0 +va (VaSet +vasetType 3 +) +xt "43000,14000,52250,44000" +pts [ +"43000,14000" +"43000,44000" +"52250,44000" +] +) +start &71 +end &47 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 377,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 378,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "48000,42600,52000,44000" +st "write" +blo "48000,43800" +tm "WireNameMgr" +) +) +on &16 +) +*74 (Wire +uid 379,0 +shape (OrthoPolyLine +uid 380,0 +va (VaSet +vasetType 3 +) +xt "45000,48000,52250,48000" +pts [ +"45000,48000" +"52250,48000" +] +) +end &48 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 385,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 386,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,46600,48800,48000" +st "clock" +blo "45000,47800" +tm "WireNameMgr" +) +) +on &2 +) +*75 (Wire +uid 387,0 +shape (OrthoPolyLine +uid 388,0 +va (VaSet +vasetType 3 +) +xt "69750,12000,77000,42000" +pts [ +"77000,12000" +"77000,42000" +"69750,42000" +] +) +start &64 +end &53 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 393,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 394,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "70000,40600,74700,42000" +st "empty" +blo "70000,41800" +tm "WireNameMgr" +) +) +on &8 +) +*76 (Wire +uid 395,0 +shape (OrthoPolyLine +uid 396,0 +va (VaSet +vasetType 3 +) +xt "45000,12000,52250,42000" +pts [ +"45000,12000" +"45000,42000" +"52250,42000" +] +) +start &66 +end &54 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 401,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 402,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "49000,40600,51600,42000" +st "full" +blo "49000,41800" +tm "WireNameMgr" +) +) +on &10 +) +*77 (Wire +uid 403,0 +shape (OrthoPolyLine +uid 404,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "47000,10000,52250,40000" +pts [ +"47000,10000" +"47000,40000" +"52250,40000" +] +) +start &60 +end &52 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 409,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 410,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "48000,38600,53000,40000" +st "dataIn" +blo "48000,39800" +tm "WireNameMgr" +) +) +on &4 +) +*78 (Wire +uid 411,0 +shape (OrthoPolyLine +uid 412,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69750,10000,75000,40000" +pts [ +"75000,10000" +"75000,40000" +"69750,40000" +] +) +start &62 +end &50 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 417,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 418,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "70000,38600,76000,40000" +st "dataOut" +blo "70000,39800" +tm "WireNameMgr" +) +) +on &6 +) +*79 (Wire +uid 419,0 +shape (OrthoPolyLine +uid 420,0 +va (VaSet +vasetType 3 +) +xt "69750,14000,79000,44000" +pts [ +"79000,14000" +"79000,44000" +"69750,44000" +] +) +start &68 +end &51 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 425,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 426,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "70000,42600,73700,44000" +st "read" +blo "70000,43800" +tm "WireNameMgr" +) +) +on &12 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *80 (PackageList +uid 137,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 138,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*82 (MLText +uid 139,0 +va (VaSet +font "Verdana,8,0" +) +xt "-3000,1000,10600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 140,0 +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 141,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*84 (Text +uid 142,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*85 (MLText +uid 143,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "20000,2000,29300,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*86 (Text +uid 144,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*87 (MLText +uid 145,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*88 (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*89 (MLText +uid 147,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-4441,-1433,123006,67813" +cachedDiagramExtent "-3000,0,94000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 647,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,5600,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +va (VaSet +) +xt "1350,3200,6650,4400" +st "" +blo "1350,4200" +tm "BdLibraryNameMgr" +) +*91 (Text +va (VaSet +) +xt "1350,4400,6150,5600" +st "" +blo "1350,5400" +tm "BlkNameMgr" +) +*92 (Text +va (VaSet +) +xt "1350,5600,3250,6800" +st "I0" +blo "1350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1350,13200,1350,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-950,0,8950,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +va (VaSet +) +xt "-450,3200,3750,4400" +st "Library" +blo "-450,4200" +) +*94 (Text +va (VaSet +) +xt "-450,4400,8450,5600" +st "MWComponent" +blo "-450,5400" +) +*95 (Text +va (VaSet +) +xt "-450,5600,1450,6800" +st "I0" +blo "-450,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7450,1200,-7450,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +va (VaSet +) +xt "-200,3200,4000,4400" +st "Library" +blo "-200,4200" +tm "BdLibraryNameMgr" +) +*97 (Text +va (VaSet +) +xt "-200,4400,8200,5600" +st "SaComponent" +blo "-200,5400" +tm "CptNameMgr" +) +*98 (Text +va (VaSet +) +xt "-200,5600,1700,6800" +st "I0" +blo "-200,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7200,1200,-7200,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-1200,0,9200,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +) +xt "-700,3200,3500,4400" +st "Library" +blo "-700,4200" +) +*100 (Text +va (VaSet +) +xt "-700,4400,8700,5600" +st "VhdlComponent" +blo "-700,5400" +) +*101 (Text +va (VaSet +) +xt "-700,5600,1200,6800" +st "I0" +blo "-700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7700,1200,-7700,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-1850,0,9850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +va (VaSet +) +xt "-1350,3200,2850,4400" +st "Library" +blo "-1350,4200" +) +*103 (Text +va (VaSet +) +xt "-1350,4400,9350,5600" +st "VerilogComponent" +blo "-1350,5400" +) +*104 (Text +va (VaSet +) +xt "-1350,5600,550,6800" +st "I0" +blo "-1350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-8350,1200,-8350,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +va (VaSet +font "Verdana,8,0" +) +xt "3000,4000,5000,5000" +st "eb1" +blo "3000,4800" +tm "HdlTextNameMgr" +) +*106 (Text +va (VaSet +font "Verdana,8,0" +) +xt "3000,5000,4000,6000" +st "1" +blo "3000,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "200,200,2500,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,8,0" +) +xt "-550,-500,550,500" +st "G" +blo "-550,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,0,3700,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,1000,1300,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "Verdana,8,0" +) +) +second (MLText +va (VaSet +font "Verdana,8,0" +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,-1100,14200,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1450,1450" +) +num (Text +va (VaSet +font "Verdana,8,0" +) +xt "250,250,1250,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +va (VaSet +font "Verdana,8,1" +) +xt "12000,20000,22000,21000" +st "Frame Declarations" +blo "12000,20800" +) +*108 (MLText +va (VaSet +font "Verdana,8,0" +) +xt "12000,21000,12000,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,-1100,8800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1450,1450" +) +num (Text +va (VaSet +font "Verdana,8,0" +) +xt "250,250,1250,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +va (VaSet +font "Verdana,8,1" +) +xt "12000,20000,22000,21000" +st "Frame Declarations" +blo "12000,20800" +) +*110 (MLText +va (VaSet +font "Verdana,8,0" +) +xt "12000,21000,12000,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,2100,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,2100,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,5400,4000,6400" +st "Declarations" +blo "-3000,6200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6400,400,7400" +st "Ports:" +blo "-3000,7200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,5400,1800,6400" +st "Pre User:" +blo "-3000,6200" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +) +xt "-3000,5400,-3000,5400" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,17000,6000,18000" +st "Diagram Signals:" +blo "-3000,17800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,5400,3000,6400" +st "Post User:" +blo "-3000,6200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-3000,5400,-3000,5400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 8,0 +usingSuid 1 +emptyRow *111 (LEmptyRow +) +uid 150,0 +optionalChildren [ +*112 (RefLabelRowHdr +) +*113 (TitleRowHdr +) +*114 (FilterRowHdr +) +*115 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*116 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*117 (GroupColHdr +tm "GroupColHdrMgr" +) +*118 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*119 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*120 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*121 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*122 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*123 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*124 (LeafLogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 8,0 +) +) +uid 121,0 +) +*125 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 123,0 +) +*126 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 7,0 +) +) +uid 125,0 +) +*127 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 127,0 +) +*128 (LeafLogPort +port (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 6,0 +) +) +uid 129,0 +) +*129 (LeafLogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 2,0 +) +) +uid 131,0 +) +*130 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 4,0 +) +) +uid 133,0 +) +*131 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 5,0 +) +) +uid 135,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 163,0 +optionalChildren [ +*132 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *133 (MRCItem +litem &111 +pos 8 +dimension 20 +) +uid 165,0 +optionalChildren [ +*134 (MRCItem +litem &112 +pos 0 +dimension 20 +uid 166,0 +) +*135 (MRCItem +litem &113 +pos 1 +dimension 23 +uid 167,0 +) +*136 (MRCItem +litem &114 +pos 2 +hidden 1 +dimension 20 +uid 168,0 +) +*137 (MRCItem +litem &124 +pos 0 +dimension 20 +uid 122,0 +) +*138 (MRCItem +litem &125 +pos 1 +dimension 20 +uid 124,0 +) +*139 (MRCItem +litem &126 +pos 2 +dimension 20 +uid 126,0 +) +*140 (MRCItem +litem &127 +pos 3 +dimension 20 +uid 128,0 +) +*141 (MRCItem +litem &128 +pos 4 +dimension 20 +uid 130,0 +) +*142 (MRCItem +litem &129 +pos 5 +dimension 20 +uid 132,0 +) +*143 (MRCItem +litem &130 +pos 6 +dimension 20 +uid 134,0 +) +*144 (MRCItem +litem &131 +pos 7 +dimension 20 +uid 136,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 169,0 +optionalChildren [ +*145 (MRCItem +litem &115 +pos 0 +dimension 20 +uid 170,0 +) +*146 (MRCItem +litem &117 +pos 1 +dimension 50 +uid 171,0 +) +*147 (MRCItem +litem &118 +pos 2 +dimension 100 +uid 172,0 +) +*148 (MRCItem +litem &119 +pos 3 +dimension 50 +uid 173,0 +) +*149 (MRCItem +litem &120 +pos 4 +dimension 100 +uid 174,0 +) +*150 (MRCItem +litem &121 +pos 5 +dimension 100 +uid 175,0 +) +*151 (MRCItem +litem &122 +pos 6 +dimension 50 +uid 176,0 +) +*152 (MRCItem +litem &123 +pos 7 +dimension 80 +uid 177,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 164,0 +vaOverrides [ +] +) +] +) +uid 149,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *153 (LEmptyRow +) +uid 179,0 +optionalChildren [ +*154 (RefLabelRowHdr +) +*155 (TitleRowHdr +) +*156 (FilterRowHdr +) +*157 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*158 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*159 (GroupColHdr +tm "GroupColHdrMgr" +) +*160 (NameColHdr +tm "GenericNameColHdrMgr" +) +*161 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*162 (InitColHdr +tm "GenericValueColHdrMgr" +) +*163 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*164 (EolColHdr +tm "GenericEolColHdrMgr" +) +*165 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 468,0 +) +*166 (LogGeneric +generic (GiElement +name "depth" +type "positive" +value "8" +) +uid 470,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 191,0 +optionalChildren [ +*167 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *168 (MRCItem +litem &153 +pos 2 +dimension 20 +) +uid 193,0 +optionalChildren [ +*169 (MRCItem +litem &154 +pos 0 +dimension 20 +uid 194,0 +) +*170 (MRCItem +litem &155 +pos 1 +dimension 23 +uid 195,0 +) +*171 (MRCItem +litem &156 +pos 2 +hidden 1 +dimension 20 +uid 196,0 +) +*172 (MRCItem +litem &165 +pos 0 +dimension 20 +uid 467,0 +) +*173 (MRCItem +litem &166 +pos 1 +dimension 20 +uid 469,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 197,0 +optionalChildren [ +*174 (MRCItem +litem &157 +pos 0 +dimension 20 +uid 198,0 +) +*175 (MRCItem +litem &159 +pos 1 +dimension 50 +uid 199,0 +) +*176 (MRCItem +litem &160 +pos 2 +dimension 100 +uid 200,0 +) +*177 (MRCItem +litem &161 +pos 3 +dimension 100 +uid 201,0 +) +*178 (MRCItem +litem &162 +pos 4 +dimension 50 +uid 202,0 +) +*179 (MRCItem +litem &163 +pos 5 +dimension 50 +uid 203,0 +) +*180 (MRCItem +litem &164 +pos 6 +dimension 80 +uid 204,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 192,0 +vaOverrides [ +] +) +] +) +uid 178,0 +type 1 +) +activeModelName "BlockDiag" +frameCount 2 +) diff --git a/Libs/Memory/hds/@f@i@f@o/symbol.sb b/Libs/Memory/hds/@f@i@f@o/symbol.sb new file mode 100644 index 0000000..c855d45 --- /dev/null +++ b/Libs/Memory/hds/@f@i@f@o/symbol.sb @@ -0,0 +1,1860 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 299,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 300,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 301,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 302,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 303,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 304,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 305,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 306,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 307,0 +) +*10 (RefLabelRowHdr +) +*11 (TitleRowHdr +) +*12 (FilterRowHdr +) +*13 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*14 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*15 (GroupColHdr +tm "GroupColHdrMgr" +) +*16 (NameColHdr +tm "NameColHdrMgr" +) +*17 (ModeColHdr +tm "ModeColHdrMgr" +) +*18 (TypeColHdr +tm "TypeColHdrMgr" +) +*19 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*20 (InitColHdr +tm "InitColHdrMgr" +) +*21 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 308,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 235,0 +optionalChildren [ +*24 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 238,0 +) +*25 (MRCItem +litem &11 +pos 1 +dimension 23 +uid 240,0 +) +*26 (MRCItem +litem &12 +pos 2 +hidden 1 +dimension 20 +uid 242,0 +) +*27 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 261,0 +) +*28 (MRCItem +litem &3 +pos 6 +dimension 20 +uid 262,0 +) +*29 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 263,0 +) +*30 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 264,0 +) +*31 (MRCItem +litem &6 +pos 7 +dimension 20 +uid 265,0 +) +*32 (MRCItem +litem &7 +pos 5 +dimension 20 +uid 266,0 +) +*33 (MRCItem +litem &8 +pos 1 +dimension 20 +uid 267,0 +) +*34 (MRCItem +litem &9 +pos 4 +dimension 20 +uid 268,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 236,0 +optionalChildren [ +*35 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 244,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 50 +uid 248,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 100 +uid 250,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 50 +uid 252,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 100 +uid 254,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 100 +uid 256,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 50 +uid 258,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 80 +uid 260,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 234,0 +vaOverrides [ +] +) +] +) +uid 298,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 310,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 427,0 +) +*56 (LogGeneric +generic (GiElement +name "depth" +type "positive" +value "8" +) +uid 429,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 311,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 270,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 273,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 275,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 277,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 428,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 430,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 271,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 279,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 283,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 285,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 287,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 289,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 291,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 293,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 269,0 +vaOverrides [ +] +) +] +) +uid 309,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds/@f@i@f@o/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds/@f@i@f@o/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds/@f@i@f@o" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds/FIFO" +) +(vvPair +variable "date" +value "10/18/21" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "18" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FIFO" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "10/18/21" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Hyperion" +) +(vvPair +variable "graphical_source_time" +value "10:55:04" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Hyperion" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/Memory/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "FIFO" +) +(vvPair +variable "month" +value "Oct" +) +(vvPair +variable "month_long" +value "October" +) +(vvPair +variable "p" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds/@f@i@f@o/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/ElN_local/ElN_inverter/Libs/Memory/hds/FIFO/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\eda\\MentorGraphics\\ModelSim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "10:55:04" +) +(vvPair +variable "unit" +value "FIFO" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2021" +) +(vvPair +variable "yy" +value "21" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +) +xt "35000,19400,38000,20400" +st "write" +blo "35000,20200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,17500,8700" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*73 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,23625,34000,24375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "35000,23400,38000,24400" +st "clock" +blo "35000,24200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,17500,9600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*74 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +) +xt "35000,25400,38000,26400" +st "reset" +blo "35000,26200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,17500,10500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*75 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,15625,50750,16375" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +va (VaSet +) +xt "44801,15400,49001,16400" +st "dataOut" +ju 2 +blo "49001,16200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,32000,11400" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*76 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 226,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,17625,50750,18375" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +va (VaSet +) +xt "46600,17400,49000,18400" +st "read" +ju 2 +blo "49000,18200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17500,12300" +st "read : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*77 (CptPort +uid 216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,15625,34000,16375" +) +tg (CPTG +uid 218,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 219,0 +va (VaSet +) +xt "34999,15400,38599,16400" +st "dataIn" +blo "34999,16200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 220,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,32000,13200" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*78 (CptPort +uid 221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,19625,50750,20375" +) +tg (CPTG +uid 223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 224,0 +va (VaSet +) +xt "46000,19400,49000,20400" +st "empty" +ju 2 +blo "49000,20200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 225,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,17500,14100" +st "empty : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*79 (CptPort +uid 229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 230,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,17625,34000,18375" +) +tg (CPTG +uid 231,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 232,0 +va (VaSet +) +xt "35000,17400,37400,18400" +st "full" +blo "35000,18200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 233,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,16500,15000" +st "full : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,12000,50000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "34600,27800,38200,28800" +st "Memory" +blo "34600,28600" +) +second (Text +uid 12,0 +va (VaSet +) +xt "34600,28800,37000,29800" +st "FIFO" +blo "34600,29600" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,32000,45500,35600" +st "Generic Declarations + +dataBitNb positive 8 +depth positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "depth" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,47600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*94 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,1000,15500,3700" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1966,67,3594,1148" +viewArea "-1100,-1100,86010,55320" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "600,1000,4800,2200" +st "Panel0" +blo "600,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "22600,14800,27900,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +) +xt "22600,16000,26500,17200" +st "" +blo "22600,17000" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,6500,6700" +st "Declarations" +blo "0,6500" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,3000,7700" +st "Ports:" +blo "0,7500" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15000,2500,15900" +st "User:" +blo "0,15700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7500,6700" +st "Internal User:" +blo "0,6500" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,2000,15900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 522,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/@f@i@f@o_bram/symbol.sb b/Libs/Memory/hds/@f@i@f@o_bram/symbol.sb new file mode 100644 index 0000000..413b3ae --- /dev/null +++ b/Libs/Memory/hds/@f@i@f@o_bram/symbol.sb @@ -0,0 +1,1848 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 299,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 300,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 301,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 302,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 303,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 304,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 305,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 306,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 307,0 +) +*10 (RefLabelRowHdr +) +*11 (TitleRowHdr +) +*12 (FilterRowHdr +) +*13 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*14 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*15 (GroupColHdr +tm "GroupColHdrMgr" +) +*16 (NameColHdr +tm "NameColHdrMgr" +) +*17 (ModeColHdr +tm "ModeColHdrMgr" +) +*18 (TypeColHdr +tm "TypeColHdrMgr" +) +*19 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*20 (InitColHdr +tm "InitColHdrMgr" +) +*21 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 308,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 235,0 +optionalChildren [ +*24 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 238,0 +) +*25 (MRCItem +litem &11 +pos 1 +dimension 23 +uid 240,0 +) +*26 (MRCItem +litem &12 +pos 2 +hidden 1 +dimension 20 +uid 242,0 +) +*27 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 261,0 +) +*28 (MRCItem +litem &3 +pos 6 +dimension 20 +uid 262,0 +) +*29 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 263,0 +) +*30 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 264,0 +) +*31 (MRCItem +litem &6 +pos 7 +dimension 20 +uid 265,0 +) +*32 (MRCItem +litem &7 +pos 5 +dimension 20 +uid 266,0 +) +*33 (MRCItem +litem &8 +pos 1 +dimension 20 +uid 267,0 +) +*34 (MRCItem +litem &9 +pos 4 +dimension 20 +uid 268,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 236,0 +optionalChildren [ +*35 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 244,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 50 +uid 248,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 100 +uid 250,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 50 +uid 252,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 100 +uid 254,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 100 +uid 256,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 50 +uid 258,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 80 +uid 260,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 234,0 +vaOverrides [ +] +) +] +) +uid 298,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 310,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 294,0 +) +*56 (LogGeneric +generic (GiElement +name "depth" +type "positive" +value "8" +) +uid 295,0 +) +] +) +pdm (PhysicalDM +uid 311,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 270,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 273,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 275,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 277,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 296,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 297,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 271,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 279,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 283,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 285,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 287,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 289,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 291,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 293,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 269,0 +vaOverrides [ +] +) +] +) +uid 309,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_bram/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_bram/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_bram" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/FIFO_bram" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FIFO_bram" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "FIFO_bram" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_bram/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/FIFO_bram/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "FIFO_bram" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +) +xt "35000,19400,38100,20600" +st "write" +blo "35000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,17500,8700" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*73 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,23625,34000,24375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "35000,23400,38400,24600" +st "clock" +blo "35000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,17500,9600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*74 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +) +xt "35000,25400,38300,26600" +st "reset" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,17500,10500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*75 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,15625,50750,16375" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +va (VaSet +) +xt "44201,15400,49001,16600" +st "dataOut" +ju 2 +blo "49001,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,32000,11400" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*76 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 226,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,19625,50750,20375" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +va (VaSet +) +xt "46100,19400,49000,20600" +st "read" +ju 2 +blo "49000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17500,12300" +st "read : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*77 (CptPort +uid 216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,15625,34000,16375" +) +tg (CPTG +uid 218,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 219,0 +va (VaSet +) +xt "34999,15400,38999,16600" +st "dataIn" +blo "34999,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 220,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,32000,13200" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*78 (CptPort +uid 221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,17625,50750,18375" +) +tg (CPTG +uid 223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 224,0 +va (VaSet +) +xt "45200,17400,49000,18600" +st "empty" +ju 2 +blo "49000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 225,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,17500,14100" +st "empty : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*79 (CptPort +uid 229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 230,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,17625,34000,18375" +) +tg (CPTG +uid 231,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 232,0 +va (VaSet +) +xt "35000,17400,37200,18600" +st "full" +blo "35000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 233,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,16500,15000" +st "full : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,12000,50000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "34600,27800,38200,28800" +st "Memory" +blo "34600,28600" +) +second (Text +uid 12,0 +va (VaSet +) +xt "34600,28800,40000,29800" +st "FIFO_bram" +blo "34600,29600" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,32000,45500,35600" +st "Generic Declarations + +dataBitNb positive 8 +depth positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "depth" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,51200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*94 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,1000,15500,3700" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "81,31,1365,900" +viewArea "-1034,-1034,74634,50619" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "600,1000,4800,2200" +st "Panel0" +blo "600,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "22600,14800,27900,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +) +xt "22600,16000,26500,17200" +st "" +blo "22600,17000" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,7000,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,3400,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15000,2500,15900" +st "User:" +blo "0,15700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7600,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,2000,15900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 403,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb b/Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb new file mode 100644 index 0000000..98aa032 --- /dev/null +++ b/Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb @@ -0,0 +1,1828 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 299,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 300,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 301,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 302,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 303,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 304,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 305,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 306,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 307,0 +) +*10 (RefLabelRowHdr +) +*11 (TitleRowHdr +) +*12 (FilterRowHdr +) +*13 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*14 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*15 (GroupColHdr +tm "GroupColHdrMgr" +) +*16 (NameColHdr +tm "NameColHdrMgr" +) +*17 (ModeColHdr +tm "ModeColHdrMgr" +) +*18 (TypeColHdr +tm "TypeColHdrMgr" +) +*19 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*20 (InitColHdr +tm "InitColHdrMgr" +) +*21 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 308,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 235,0 +optionalChildren [ +*24 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 238,0 +) +*25 (MRCItem +litem &11 +pos 1 +dimension 23 +uid 240,0 +) +*26 (MRCItem +litem &12 +pos 2 +hidden 1 +dimension 20 +uid 242,0 +) +*27 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 261,0 +) +*28 (MRCItem +litem &3 +pos 6 +dimension 20 +uid 262,0 +) +*29 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 263,0 +) +*30 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 264,0 +) +*31 (MRCItem +litem &6 +pos 7 +dimension 20 +uid 265,0 +) +*32 (MRCItem +litem &7 +pos 5 +dimension 20 +uid 266,0 +) +*33 (MRCItem +litem &8 +pos 1 +dimension 20 +uid 267,0 +) +*34 (MRCItem +litem &9 +pos 4 +dimension 20 +uid 268,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 236,0 +optionalChildren [ +*35 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 244,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 50 +uid 248,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 100 +uid 250,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 50 +uid 252,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 100 +uid 254,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 100 +uid 256,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 50 +uid 258,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 80 +uid 260,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 234,0 +vaOverrides [ +] +) +] +) +uid 298,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 310,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 294,0 +) +] +) +pdm (PhysicalDM +uid 311,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *57 (MRCItem +litem &43 +pos 1 +dimension 20 +) +uid 270,0 +optionalChildren [ +*58 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 273,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 275,0 +) +*60 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 277,0 +) +*61 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 296,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 271,0 +optionalChildren [ +*62 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 279,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 283,0 +) +*64 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 285,0 +) +*65 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 287,0 +) +*66 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 289,0 +) +*67 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 291,0 +) +*68 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 293,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 269,0 +vaOverrides [ +] +) +] +) +uid 309,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_one@register" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/FIFO_oneRegister" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FIFO_oneRegister" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "FIFO_oneRegister" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/FIFO_oneRegister/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "FIFO_oneRegister" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +) +xt "35000,19400,38100,20600" +st "write" +blo "35000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,17500,8700" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,23625,34000,24375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "35000,23400,38400,24600" +st "clock" +blo "35000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,17500,9600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +) +xt "35000,25400,38300,26600" +st "reset" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,17500,10500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*73 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,15625,50750,16375" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +va (VaSet +) +xt "44201,15400,49001,16600" +st "dataOut" +ju 2 +blo "49001,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,32000,11400" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*74 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 226,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,19625,50750,20375" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +va (VaSet +) +xt "46100,19400,49000,20600" +st "read" +ju 2 +blo "49000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17500,12300" +st "read : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*75 (CptPort +uid 216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,15625,34000,16375" +) +tg (CPTG +uid 218,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 219,0 +va (VaSet +) +xt "34999,15400,38999,16600" +st "dataIn" +blo "34999,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 220,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,32000,13200" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*76 (CptPort +uid 221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,17625,50750,18375" +) +tg (CPTG +uid 223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 224,0 +va (VaSet +) +xt "45200,17400,49000,18600" +st "empty" +ju 2 +blo "49000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 225,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,17500,14100" +st "empty : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*77 (CptPort +uid 229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 230,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,17625,34000,18375" +) +tg (CPTG +uid 231,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 232,0 +va (VaSet +) +xt "35000,17400,37200,18600" +st "full" +blo "35000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 233,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,16500,15000" +st "full : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,12000,50000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "34600,27800,38200,28800" +st "Memory" +blo "34600,28600" +) +second (Text +uid 12,0 +va (VaSet +) +xt "34600,28800,44800,29800" +st "FIFO_oneRegister" +blo "34600,29600" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,32000,45500,34700" +st "Generic Declarations + +dataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*92 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,1000,15500,3700" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "81,31,1366,900" +viewArea "-1000,-1000,74686,50617" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "600,1000,4800,2200" +st "Panel0" +blo "600,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "22600,14800,27900,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +) +xt "22600,16000,26500,17200" +st "" +blo "22600,17000" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,7000,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,3400,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15000,2500,15900" +st "User:" +blo "0,15700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7600,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,2000,15900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 426,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/_bram._epf b/Libs/Memory/hds/_bram._epf new file mode 100644 index 0000000..b06de60 --- /dev/null +++ b/Libs/Memory/hds/_bram._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom bram_actel.vhd +DEFAULT_ARCHITECTURE atom actel +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_bramBinASCIIInit._epf b/Libs/Memory/hds/_bramBinASCIIInit._epf new file mode 100644 index 0000000..6a3b66a --- /dev/null +++ b/Libs/Memory/hds/_bramBinASCIIInit._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom bramBinASCIIInit_rtl.vhd +DEFAULT_ARCHITECTURE atom actel +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_bramHexASCIIInit._epf b/Libs/Memory/hds/_bramHexASCIIInit._epf new file mode 100644 index 0000000..a010835 --- /dev/null +++ b/Libs/Memory/hds/_bramHexASCIIInit._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom bramHexASCIIInit_rtl.vhd +DEFAULT_ARCHITECTURE atom actel +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_bramdualport._epf b/Libs/Memory/hds/_bramdualport._epf new file mode 100755 index 0000000..2f03b14 --- /dev/null +++ b/Libs/Memory/hds/_bramdualport._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom bramDualport_bhv.vhd +DEFAULT_ARCHITECTURE atom bhv +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_bramdualportwritefirst._epf b/Libs/Memory/hds/_bramdualportwritefirst._epf new file mode 100644 index 0000000..72f20fb --- /dev/null +++ b/Libs/Memory/hds/_bramdualportwritefirst._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom bramDualportWritefirst_bhv.vhd +DEFAULT_ARCHITECTURE atom bhv +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_fifo._epf b/Libs/Memory/hds/_fifo._epf new file mode 100644 index 0000000..30bfe35 --- /dev/null +++ b/Libs/Memory/hds/_fifo._epf @@ -0,0 +1,3 @@ +TOP_MARKER atom 1 +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom @f@i@f@o/struct.bd diff --git a/Libs/Memory/hds/_fifo_bram._epf b/Libs/Memory/hds/_fifo_bram._epf new file mode 100644 index 0000000..0037371 --- /dev/null +++ b/Libs/Memory/hds/_fifo_bram._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom fifo_bram_rtl.vhd +DEFAULT_ARCHITECTURE atom RTL +TOP_MARKER atom 0 diff --git a/Libs/Memory/hds/_fifo_oneregister._epf b/Libs/Memory/hds/_fifo_oneregister._epf new file mode 100644 index 0000000..f095563 --- /dev/null +++ b/Libs/Memory/hds/_fifo_oneregister._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom fifo_oneRegister_rtl.vhd +DEFAULT_ARCHITECTURE atom oneRegister +TOP_MARKER atom 0 diff --git a/Libs/Memory/hds/_fifobridge._epf b/Libs/Memory/hds/_fifobridge._epf new file mode 100644 index 0000000..e35610c --- /dev/null +++ b/Libs/Memory/hds/_fifobridge._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom fifo@bridge/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_fifobridgebuswidthadaption._epf b/Libs/Memory/hds/_fifobridgebuswidthadaption._epf new file mode 100644 index 0000000..cd1cbce --- /dev/null +++ b/Libs/Memory/hds/_fifobridgebuswidthadaption._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom fifo@bridge@bus@width@adaption/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_fifobridgerxtotx._epf b/Libs/Memory/hds/_fifobridgerxtotx._epf new file mode 100644 index 0000000..93a8c4c --- /dev/null +++ b/Libs/Memory/hds/_fifobridgerxtotx._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom fifobridgerxtotx_rtl.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptionrxbigger._epf b/Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptionrxbigger._epf new file mode 100644 index 0000000..08136c5 --- /dev/null +++ b/Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptionrxbigger._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd +DEFAULT_ARCHITECTURE atom behavioral diff --git a/Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptiontxbigger._epf b/Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptiontxbigger._epf new file mode 100644 index 0000000..a4ff292 --- /dev/null +++ b/Libs/Memory/hds/_fifobridgerxtotxbuswidthadaptiontxbigger._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd +DEFAULT_ARCHITECTURE atom behavioral diff --git a/Libs/Memory/hds/_flashcontroller._epf b/Libs/Memory/hds/_flashcontroller._epf new file mode 100644 index 0000000..388eac4 --- /dev/null +++ b/Libs/Memory/hds/_flashcontroller._epf @@ -0,0 +1,3 @@ +TOP_MARKER atom 1 +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom flashController_RTL.vhd diff --git a/Libs/Memory/hds/_sdramcontroller._epf b/Libs/Memory/hds/_sdramcontroller._epf new file mode 100644 index 0000000..03cc304 --- /dev/null +++ b/Libs/Memory/hds/_sdramcontroller._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom sdram@controller/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory/hds/_sdramcontrollerbuildaddress._epf b/Libs/Memory/hds/_sdramcontrollerbuildaddress._epf new file mode 100644 index 0000000..7e31da3 --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollerbuildaddress._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom sdramControllerBuildAddress_RTL.vhd diff --git a/Libs/Memory/hds/_sdramcontrollerfsm._epf b/Libs/Memory/hds/_sdramcontrollerfsm._epf new file mode 100644 index 0000000..4c6b139 --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollerfsm._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom fsm +DEFAULT_FILE atom sdram@controller@fsm/fsm.sm diff --git a/Libs/Memory/hds/_sdramcontrollerrefreshcounter._epf b/Libs/Memory/hds/_sdramcontrollerrefreshcounter._epf new file mode 100644 index 0000000..79c67be --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollerrefreshcounter._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom sdramControllerRefreshCounter_RTL.vhd diff --git a/Libs/Memory/hds/_sdramcontrollersampledatain._epf b/Libs/Memory/hds/_sdramcontrollersampledatain._epf new file mode 100644 index 0000000..d41ad8f --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollersampledatain._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom sdramControllerSampleDataIn_RTL.vhd diff --git a/Libs/Memory/hds/_sdramcontrollersr._epf b/Libs/Memory/hds/_sdramcontrollersr._epf new file mode 100644 index 0000000..5909828 --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollersr._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom sdramControllerSR_RTL.vhd diff --git a/Libs/Memory/hds/_sdramcontrollerstoredata._epf b/Libs/Memory/hds/_sdramcontrollerstoredata._epf new file mode 100644 index 0000000..3decb83 --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollerstoredata._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom sdramControllerStoreData_RTL.vhd diff --git a/Libs/Memory/hds/_sdramcontrollertimingsshiftregister._epf b/Libs/Memory/hds/_sdramcontrollertimingsshiftregister._epf new file mode 100644 index 0000000..8547bf2 --- /dev/null +++ b/Libs/Memory/hds/_sdramcontrollertimingsshiftregister._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom sdramControllerTimingsShiftRegister_RTL.vhd diff --git a/Libs/Memory/hds/bram/symbol.sb b/Libs/Memory/hds/bram/symbol.sb new file mode 100644 index 0000000..69351fe --- /dev/null +++ b/Libs/Memory/hds/bram/symbol.sb @@ -0,0 +1,1771 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 14,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 51,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 57,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 59,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 61,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +uid 63,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 55,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 166,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 168,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 52,0 +) +*26 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 58,0 +) +*27 (MRCItem +litem &16 +pos 3 +dimension 20 +uid 60,0 +) +*28 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 62,0 +) +*29 (MRCItem +litem &18 +pos 5 +dimension 20 +uid 64,0 +) +*30 (MRCItem +litem &19 +pos 1 +dimension 20 +uid 56,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 171,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 172,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 173,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 174,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 175,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 176,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 177,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 180,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 439,0 +) +*52 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 441,0 +) +*53 (LogGeneric +generic (GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +uid 443,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 192,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *55 (MRCItem +litem &39 +pos 3 +dimension 20 +) +uid 194,0 +optionalChildren [ +*56 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 195,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 196,0 +) +*58 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 197,0 +) +*59 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 440,0 +) +*60 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 442,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 444,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 198,0 +optionalChildren [ +*62 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 199,0 +) +*63 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 200,0 +) +*64 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 201,0 +) +*65 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 202,0 +) +*66 (MRCItem +litem &48 +pos 4 +dimension 86 +uid 203,0 +) +*67 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 204,0 +) +*68 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 193,0 +vaOverrides [ +] +) +] +) +uid 179,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram" +) +(vvPair +variable "date" +value "11.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "bram" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "11.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:51:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/Libraries/Memory/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "bram" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:51:22" +) +(vvPair +variable "unit" +value "bram" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 149,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 79,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 80,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,26625,39000,27375" +) +tg (CPTG +uid 81,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 82,0 +va (VaSet +) +xt "40000,26500,43400,27700" +st "clock" +blo "40000,27500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 83,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,9200,15100,10200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,24625,39000,25375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +) +xt "40000,24500,41900,25700" +st "en" +blo "40000,25500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,10100,15000,11100" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*72 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,20625,39000,21375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +) +xt "40000,20500,44400,21700" +st "writeEn" +blo "40000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11000,15500,12000" +st "writeEn : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*73 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,14625,39000,15375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +) +xt "40000,14500,45800,15700" +st "addressIn" +blo "40000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11900,31000,12900" +st "addressIn : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*74 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +) +xt "40000,18500,44000,19700" +st "dataIn" +blo "40000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12800,29300,13800" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*75 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "40000,16500,44800,17700" +st "dataOut" +blo "40000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13700,29400,14700" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,11000,55000,29000" +) +oxt "15000,6000,33000,36000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "39200,29000,43400,30000" +st "Memory" +blo "39200,29800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "39200,30000,42100,31000" +st "bram" +blo "39200,30800" +) +) +gi *76 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "39000,32000,54400,37000" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 +initFile string \"bramInit.txt\" +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*77 (Grouping +uid 16,0 +optionalChildren [ +*78 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *88 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*90 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18100,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "108,40,1411,907" +viewArea "-1100,-1100,69850,45826" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +unixPaperWidth 595 +unixPaperHeight 842 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *91 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *92 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7400,7000,8400" +st "Declarations" +blo "0,8200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,8300,3400,9300" +st "Ports:" +blo "0,9100" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,14600,3000,15600" +st "User:" +blo "0,15400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,7400,7600,8400" +st "Internal User:" +blo "0,8200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15500,2000,15500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,7400,0,7400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 676,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/bram@Bin@ASCII@Init/symbol.sb b/Libs/Memory/hds/bram@Bin@ASCII@Init/symbol.sb new file mode 100644 index 0000000..4e5855e --- /dev/null +++ b/Libs/Memory/hds/bram@Bin@ASCII@Init/symbol.sb @@ -0,0 +1,1771 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 14,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 51,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 57,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 59,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 61,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +uid 63,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 55,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 166,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 168,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 52,0 +) +*26 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 58,0 +) +*27 (MRCItem +litem &16 +pos 3 +dimension 20 +uid 60,0 +) +*28 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 62,0 +) +*29 (MRCItem +litem &18 +pos 5 +dimension 20 +uid 64,0 +) +*30 (MRCItem +litem &19 +pos 1 +dimension 20 +uid 56,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 171,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 172,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 173,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 174,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 175,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 176,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 177,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 180,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 439,0 +) +*52 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 441,0 +) +*53 (LogGeneric +generic (GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +uid 443,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 192,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *55 (MRCItem +litem &39 +pos 3 +dimension 20 +) +uid 194,0 +optionalChildren [ +*56 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 195,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 196,0 +) +*58 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 197,0 +) +*59 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 440,0 +) +*60 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 442,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 444,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 198,0 +optionalChildren [ +*62 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 199,0 +) +*63 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 200,0 +) +*64 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 201,0 +) +*65 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 202,0 +) +*66 (MRCItem +litem &48 +pos 4 +dimension 86 +uid 203,0 +) +*67 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 204,0 +) +*68 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 193,0 +vaOverrides [ +] +) +] +) +uid 179,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Bin@ASCII@Init\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Bin@ASCII@Init\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Bin@ASCII@Init" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Bin@ASCII@Init" +) +(vvPair +variable "date" +value "11.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "bramBinASCIIInit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "11.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:51:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/Libraries/Memory/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "bramBinASCIIInit" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Bin@ASCII@Init\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Bin@ASCII@Init\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:51:22" +) +(vvPair +variable "unit" +value "bramBinASCIIInit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 149,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 79,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 80,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,26625,39000,27375" +) +tg (CPTG +uid 81,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 82,0 +va (VaSet +) +xt "40000,26500,43400,27700" +st "clock" +blo "40000,27500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 83,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,9200,15100,10200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,24625,39000,25375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +) +xt "40000,24500,41900,25700" +st "en" +blo "40000,25500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,10100,15000,11100" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*72 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,20625,39000,21375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +) +xt "40000,20500,44400,21700" +st "writeEn" +blo "40000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11000,15500,12000" +st "writeEn : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*73 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,14625,39000,15375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +) +xt "40000,14500,45800,15700" +st "addressIn" +blo "40000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11900,31000,12900" +st "addressIn : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*74 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +) +xt "40000,18500,44000,19700" +st "dataIn" +blo "40000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12800,29300,13800" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*75 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "40000,16500,44800,17700" +st "dataOut" +blo "40000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13700,29400,14700" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,11000,55000,29000" +) +oxt "15000,6000,33000,36000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "39200,29000,43400,30000" +st "Memory" +blo "39200,29800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "39200,30000,42100,31000" +st "bramBinASCIIInit" +blo "39200,30800" +) +) +gi *76 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "39000,32000,54400,37000" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 +initFile string \"bramInit.txt\" +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*77 (Grouping +uid 16,0 +optionalChildren [ +*78 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *88 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*90 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18100,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "108,40,1411,907" +viewArea "-1100,-1100,69850,45826" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +unixPaperWidth 595 +unixPaperHeight 842 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *91 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *92 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7400,7000,8400" +st "Declarations" +blo "0,8200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,8300,3400,9300" +st "Ports:" +blo "0,9100" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,14600,3000,15600" +st "User:" +blo "0,15400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,7400,7600,8400" +st "Internal User:" +blo "0,8200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15500,2000,15500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,7400,0,7400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 676,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/bram@Hex@ASCII@Init/symbol.sb b/Libs/Memory/hds/bram@Hex@ASCII@Init/symbol.sb new file mode 100644 index 0000000..0df2eff --- /dev/null +++ b/Libs/Memory/hds/bram@Hex@ASCII@Init/symbol.sb @@ -0,0 +1,1771 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 14,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 51,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 57,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 59,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 61,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +uid 63,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 55,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 166,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 168,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 52,0 +) +*26 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 58,0 +) +*27 (MRCItem +litem &16 +pos 3 +dimension 20 +uid 60,0 +) +*28 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 62,0 +) +*29 (MRCItem +litem &18 +pos 5 +dimension 20 +uid 64,0 +) +*30 (MRCItem +litem &19 +pos 1 +dimension 20 +uid 56,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 171,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 172,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 173,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 174,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 175,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 176,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 177,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 180,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 439,0 +) +*52 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 441,0 +) +*53 (LogGeneric +generic (GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +uid 443,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 192,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *55 (MRCItem +litem &39 +pos 3 +dimension 20 +) +uid 194,0 +optionalChildren [ +*56 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 195,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 196,0 +) +*58 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 197,0 +) +*59 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 440,0 +) +*60 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 442,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 444,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 198,0 +optionalChildren [ +*62 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 199,0 +) +*63 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 200,0 +) +*64 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 201,0 +) +*65 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 202,0 +) +*66 (MRCItem +litem &48 +pos 4 +dimension 86 +uid 203,0 +) +*67 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 204,0 +) +*68 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 193,0 +vaOverrides [ +] +) +] +) +uid 179,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Hex@ASCII@Init\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Hex@ASCII@Init\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Hex@ASCII@Init" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Hex@ASCII@Init" +) +(vvPair +variable "date" +value "11.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "bramHexASCIIInit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "11.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:51:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/Libraries/Memory/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "bramHexASCIIInit" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Hex@ASCII@Init\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Libs\\Memory\\hds\\bram@Hex@ASCII@Init\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEHexPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/Hex" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:51:22" +) +(vvPair +variable "unit" +value "bramHexASCIIInit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 149,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 79,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 80,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,26625,39000,27375" +) +tg (CPTG +uid 81,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 82,0 +va (VaSet +) +xt "40000,26500,43400,27700" +st "clock" +blo "40000,27500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 83,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,9200,15100,10200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,24625,39000,25375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +) +xt "40000,24500,41900,25700" +st "en" +blo "40000,25500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,10100,15000,11100" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*72 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,20625,39000,21375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +) +xt "40000,20500,44400,21700" +st "writeEn" +blo "40000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11000,15500,12000" +st "writeEn : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*73 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,14625,39000,15375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +) +xt "40000,14500,45800,15700" +st "addressIn" +blo "40000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11900,31000,12900" +st "addressIn : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*74 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +) +xt "40000,18500,44000,19700" +st "dataIn" +blo "40000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12800,29300,13800" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*75 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "40000,16500,44800,17700" +st "dataOut" +blo "40000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13700,29400,14700" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,11000,55000,29000" +) +oxt "15000,6000,33000,36000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "39200,29000,43400,30000" +st "Memory" +blo "39200,29800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "39200,30000,42100,31000" +st "bramHexASCIIInit" +blo "39200,30800" +) +) +gi *76 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "39000,32000,54400,37000" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 +initFile string \"bramInit.txt\" +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*77 (Grouping +uid 16,0 +optionalChildren [ +*78 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *88 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*90 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18100,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "108,40,1411,907" +viewArea "-1100,-1100,69850,45826" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +unixPaperWidth 595 +unixPaperHeight 842 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *91 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *92 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,7400,7000,8400" +st "Declarations" +blo "0,8200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,8300,3400,9300" +st "Ports:" +blo "0,9100" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,14600,3000,15600" +st "User:" +blo "0,15400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,7400,7600,8400" +st "Internal User:" +blo "0,8200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15500,2000,15500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,7400,0,7400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 676,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/bram@dualport/symbol.sb b/Libs/Memory/hds/bram@dualport/symbol.sb new file mode 100644 index 0000000..1ec12d5 --- /dev/null +++ b/Libs/Memory/hds/bram@dualport/symbol.sb @@ -0,0 +1,2131 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 14,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clockA" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 51,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 57,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 59,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 61,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +uid 63,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clockB" +t "std_ulogic" +o 7 +suid 8,0 +) +) +uid 65,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "enB" +t "std_ulogic" +o 8 +suid 10,0 +) +) +uid 69,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 9 +suid 11,0 +) +) +uid 71,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 12,0 +) +) +uid 73,0 +) +*23 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 13,0 +) +) +uid 75,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 14,0 +) +) +uid 77,0 +) +*25 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "enA" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 55,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 166,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 168,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 52,0 +) +*32 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 58,0 +) +*33 (MRCItem +litem &16 +pos 3 +dimension 20 +uid 60,0 +) +*34 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 62,0 +) +*35 (MRCItem +litem &18 +pos 5 +dimension 20 +uid 64,0 +) +*36 (MRCItem +litem &19 +pos 6 +dimension 20 +uid 66,0 +) +*37 (MRCItem +litem &20 +pos 7 +dimension 20 +uid 70,0 +) +*38 (MRCItem +litem &21 +pos 8 +dimension 20 +uid 72,0 +) +*39 (MRCItem +litem &22 +pos 9 +dimension 20 +uid 74,0 +) +*40 (MRCItem +litem &23 +pos 10 +dimension 20 +uid 76,0 +) +*41 (MRCItem +litem &24 +pos 11 +dimension 20 +uid 78,0 +) +*42 (MRCItem +litem &25 +pos 1 +dimension 20 +uid 56,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 171,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 172,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 173,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 174,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 175,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 176,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 177,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 180,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 439,0 +) +*64 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 441,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 192,0 +optionalChildren [ +*65 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *66 (MRCItem +litem &51 +pos 2 +dimension 20 +) +uid 194,0 +optionalChildren [ +*67 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 195,0 +) +*68 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 196,0 +) +*69 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 197,0 +) +*70 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 440,0 +) +*71 (MRCItem +litem &64 +pos 1 +dimension 20 +uid 442,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 198,0 +optionalChildren [ +*72 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 199,0 +) +*73 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 200,0 +) +*74 (MRCItem +litem &58 +pos 2 +dimension 100 +uid 201,0 +) +*75 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 202,0 +) +*76 (MRCItem +litem &60 +pos 4 +dimension 86 +uid 203,0 +) +*77 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 204,0 +) +*78 (MRCItem +litem &62 +pos 6 +dimension 80 +uid 205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 193,0 +vaOverrides [ +] +) +] +) +uid 179,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds/bram@dualport/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds/bram@dualport/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds/bram@dualport" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds/bramDualport" +) +(vvPair +variable "date" +value "12/30/22" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "30" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "bramDualport" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "12/30/22" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphrodite" +) +(vvPair +variable "graphical_source_time" +value "12:23:59" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphrodite" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Memory" +) +(vvPair +variable "mm" +value "12" +) +(vvPair +variable "module_name" +value "bramDualport" +) +(vvPair +variable "month" +value "Dec" +) +(vvPair +variable "month_long" +value "December" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds/bram@dualport/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Projects/NGRW/FPGA/Prefs/../Libs/Memory/hds/bramDualport/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "12:23:59" +) +(vvPair +variable "unit" +value "bramDualport" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 149,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 79,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 80,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,26625,39000,27375" +) +tg (CPTG +uid 81,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 82,0 +va (VaSet +) +xt "40000,26500,43600,27500" +st "clockA" +blo "40000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 83,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9200,18000,10100" +st "clockA : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clockA" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*81 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,24625,39000,25375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +) +xt "40000,24500,41800,25500" +st "enA" +blo "40000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10100,18000,11000" +st "enA : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "enA" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*82 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,20625,39000,21375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +) +xt "40000,20500,44800,21500" +st "writeEnA" +blo "40000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,18000,11900" +st "writeEnA : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*83 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,14625,39000,15375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +) +xt "40000,14500,44800,15500" +st "addressA" +blo "40000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,34000,12800" +st "addressA : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*84 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +) +xt "40000,18500,44200,19500" +st "dataInA" +blo "40000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,32500,13700" +st "dataInA : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*85 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "40000,16500,44800,17500" +st "dataOutA" +blo "40000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,32500,14600" +st "dataOutA : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +*86 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,26625,55750,27375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +) +xt "50400,26500,54000,27500" +st "clockB" +ju 2 +blo "54000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,18000,15500" +st "clockB : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clockB" +t "std_ulogic" +o 7 +suid 8,0 +) +) +) +*87 (CptPort +uid 124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 125,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,24625,55750,25375" +) +tg (CPTG +uid 126,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 127,0 +va (VaSet +) +xt "52200,24500,54000,25500" +st "enB" +ju 2 +blo "54000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 128,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,18000,16400" +st "enB : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "enB" +t "std_ulogic" +o 8 +suid 10,0 +) +) +) +*88 (CptPort +uid 129,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,20625,55750,21375" +) +tg (CPTG +uid 131,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 132,0 +va (VaSet +) +xt "49200,20500,54000,21500" +st "writeEnB" +ju 2 +blo "54000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 133,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,18000,17300" +st "writeEnB : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 9 +suid 11,0 +) +) +) +*89 (CptPort +uid 134,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 135,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,14625,55750,15375" +) +tg (CPTG +uid 136,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 137,0 +va (VaSet +) +xt "49200,14500,54000,15500" +st "addressB" +ju 2 +blo "54000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 138,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,34000,18200" +st "addressB : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 12,0 +) +) +) +*90 (CptPort +uid 139,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 140,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,18625,55750,19375" +) +tg (CPTG +uid 141,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 142,0 +va (VaSet +) +xt "49800,18500,54000,19500" +st "dataInB" +ju 2 +blo "54000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 143,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,32500,19100" +st "dataInB : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 13,0 +) +) +) +*91 (CptPort +uid 144,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 207,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,16625,55750,17375" +) +tg (CPTG +uid 146,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 147,0 +va (VaSet +) +xt "49200,16500,54000,17500" +st "dataOutB" +ju 2 +blo "54000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 148,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19100,31500,20000" +st "dataOutB : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,11000,55000,29000" +) +oxt "15000,6000,33000,36000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "39200,29000,42200,29900" +st "Memory" +blo "39200,29700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "39200,29900,45700,30800" +st "bramDualport" +blo "39200,30600" +) +) +gi *92 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "39000,32000,52000,35600" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*93 (Grouping +uid 16,0 +optionalChildren [ +*94 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,52400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *104 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*106 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,19800,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1196,524,2497,1391" +viewArea "-1100,-1100,70048,44836" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *107 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *108 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7400,6500,8300" +st "Declarations" +blo "0,8100" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8300,3000,9200" +st "Ports:" +blo "0,9000" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,20000,2500,20900" +st "User:" +blo "0,20700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7400,7500,8300" +st "Internal User:" +blo "0,8100" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20900,2000,20900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7400,0,7400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 628,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/bram@dualport@writefirst/symbol.sb b/Libs/Memory/hds/bram@dualport@writefirst/symbol.sb new file mode 100644 index 0000000..67aa8c6 --- /dev/null +++ b/Libs/Memory/hds/bram@dualport@writefirst/symbol.sb @@ -0,0 +1,2162 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 14,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clockA" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 51,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 57,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 59,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 61,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +uid 63,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clockB" +t "std_ulogic" +o 7 +suid 8,0 +) +) +uid 65,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "enB" +t "std_ulogic" +o 8 +suid 10,0 +) +) +uid 69,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 9 +suid 11,0 +) +) +uid 71,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 12,0 +) +) +uid 73,0 +) +*23 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 13,0 +) +) +uid 75,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 14,0 +) +) +uid 77,0 +) +*25 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "enA" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 55,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 166,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 168,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 52,0 +) +*32 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 58,0 +) +*33 (MRCItem +litem &16 +pos 3 +dimension 20 +uid 60,0 +) +*34 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 62,0 +) +*35 (MRCItem +litem &18 +pos 5 +dimension 20 +uid 64,0 +) +*36 (MRCItem +litem &19 +pos 6 +dimension 20 +uid 66,0 +) +*37 (MRCItem +litem &20 +pos 7 +dimension 20 +uid 70,0 +) +*38 (MRCItem +litem &21 +pos 8 +dimension 20 +uid 72,0 +) +*39 (MRCItem +litem &22 +pos 9 +dimension 20 +uid 74,0 +) +*40 (MRCItem +litem &23 +pos 10 +dimension 20 +uid 76,0 +) +*41 (MRCItem +litem &24 +pos 11 +dimension 20 +uid 78,0 +) +*42 (MRCItem +litem &25 +pos 1 +dimension 20 +uid 56,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 171,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 172,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 173,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 174,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 175,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 176,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 177,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 180,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 439,0 +) +*64 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 441,0 +) +*65 (LogGeneric +generic (GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +uid 443,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 192,0 +optionalChildren [ +*66 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *67 (MRCItem +litem &51 +pos 3 +dimension 20 +) +uid 194,0 +optionalChildren [ +*68 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 195,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 196,0 +) +*70 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 197,0 +) +*71 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 440,0 +) +*72 (MRCItem +litem &64 +pos 1 +dimension 20 +uid 442,0 +) +*73 (MRCItem +litem &65 +pos 2 +dimension 20 +uid 444,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 198,0 +optionalChildren [ +*74 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 199,0 +) +*75 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 200,0 +) +*76 (MRCItem +litem &58 +pos 2 +dimension 100 +uid 201,0 +) +*77 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 202,0 +) +*78 (MRCItem +litem &60 +pos 4 +dimension 86 +uid 203,0 +) +*79 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 204,0 +) +*80 (MRCItem +litem &62 +pos 6 +dimension 80 +uid 205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 193,0 +vaOverrides [ +] +) +] +) +uid 179,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/bram@dualport@writefirst/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/bram@dualport@writefirst/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/bram@dualport@writefirst" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/bramDualportWritefirst" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "bramDualportWritefirst" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "bramDualportWritefirst" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/bram@dualport@writefirst/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/bramDualportWritefirst/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "bramDualportWritefirst" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 149,0 +optionalChildren [ +*81 (SymbolBody +uid 8,0 +optionalChildren [ +*82 (CptPort +uid 79,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 80,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,26625,39000,27375" +) +tg (CPTG +uid 81,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 82,0 +va (VaSet +) +xt "40000,26500,43600,27500" +st "clockA" +blo "40000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 83,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9200,18000,10100" +st "clockA : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clockA" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*83 (CptPort +uid 89,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 90,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,24625,39000,25375" +) +tg (CPTG +uid 91,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 92,0 +va (VaSet +) +xt "40000,24500,41800,25500" +st "enA" +blo "40000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 93,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10100,18000,11000" +st "enA : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "enA" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*84 (CptPort +uid 94,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 95,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,20625,39000,21375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 97,0 +va (VaSet +) +xt "40000,20500,44800,21500" +st "writeEnA" +blo "40000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 98,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,18000,11900" +st "writeEnA : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*85 (CptPort +uid 99,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 100,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,14625,39000,15375" +) +tg (CPTG +uid 101,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 102,0 +va (VaSet +) +xt "40000,14500,44800,15500" +st "addressA" +blo "40000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 103,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,34000,12800" +st "addressA : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*86 (CptPort +uid 104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 107,0 +va (VaSet +) +xt "40000,18500,44200,19500" +st "dataInA" +blo "40000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 108,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,32500,13700" +st "dataInA : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*87 (CptPort +uid 109,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 206,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 111,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "40000,16500,44800,17500" +st "dataOutA" +blo "40000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 113,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,32500,14600" +st "dataOutA : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +*88 (CptPort +uid 114,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 115,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,26625,55750,27375" +) +tg (CPTG +uid 116,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 117,0 +va (VaSet +) +xt "50400,26500,54000,27500" +st "clockB" +ju 2 +blo "54000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 118,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,18000,15500" +st "clockB : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clockB" +t "std_ulogic" +o 7 +suid 8,0 +) +) +) +*89 (CptPort +uid 124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 125,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,24625,55750,25375" +) +tg (CPTG +uid 126,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 127,0 +va (VaSet +) +xt "52200,24500,54000,25500" +st "enB" +ju 2 +blo "54000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 128,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,18000,16400" +st "enB : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "enB" +t "std_ulogic" +o 8 +suid 10,0 +) +) +) +*90 (CptPort +uid 129,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 130,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,20625,55750,21375" +) +tg (CPTG +uid 131,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 132,0 +va (VaSet +) +xt "49200,20500,54000,21500" +st "writeEnB" +ju 2 +blo "54000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 133,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,18000,17300" +st "writeEnB : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 9 +suid 11,0 +) +) +) +*91 (CptPort +uid 134,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 135,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,14625,55750,15375" +) +tg (CPTG +uid 136,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 137,0 +va (VaSet +) +xt "49200,14500,54000,15500" +st "addressB" +ju 2 +blo "54000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 138,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,34000,18200" +st "addressB : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 12,0 +) +) +) +*92 (CptPort +uid 139,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 140,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,18625,55750,19375" +) +tg (CPTG +uid 141,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 142,0 +va (VaSet +) +xt "49800,18500,54000,19500" +st "dataInB" +ju 2 +blo "54000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 143,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,32500,19100" +st "dataInB : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 13,0 +) +) +) +*93 (CptPort +uid 144,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 207,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,16625,55750,17375" +) +tg (CPTG +uid 146,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 147,0 +va (VaSet +) +xt "49200,16500,54000,17500" +st "dataOutB" +ju 2 +blo "54000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 148,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19100,31500,20000" +st "dataOutB : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,11000,55000,29000" +) +oxt "15000,6000,33000,36000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "39200,29000,42200,29900" +st "Memory" +blo "39200,29700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "39200,29900,50700,30800" +st "bramDualportWritefirst" +blo "39200,30600" +) +) +gi *94 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "39000,32000,58500,36500" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 +initFile string \"bramInit.txt\" " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "initFile" +type "string" +value "\"bramInit.txt\"" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*95 (Grouping +uid 16,0 +optionalChildren [ +*96 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,66200,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*104 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*105 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *106 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*108 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,19800,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "116,36,1417,903" +viewArea "-1090,-1090,75403,50355" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *109 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *110 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7400,6500,8300" +st "Declarations" +blo "0,8100" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8300,3000,9200" +st "Ports:" +blo "0,9000" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,20000,2500,20900" +st "User:" +blo "0,20700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7400,7500,8300" +st "Internal User:" +blo "0,8100" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20900,2000,20900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7400,0,7400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 605,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/fifo@bridge/struct.bd b/Libs/Memory/hds/fifo@bridge/struct.bd new file mode 100644 index 0000000..d58d1e9 --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge/struct.bd @@ -0,0 +1,4613 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "rx1ToTx2" +duLibraryName "memory" +duName "fifoBridgeRxToTx" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +(GiElement +name "firstWordFallThrough" +type "boolean" +value "firstWordFallThrough" +e "first byte written into the FIFO immediately appears on the output" +) +] +mwi 0 +uid 1201,0 +) +(Instance +name "rx2ToTx1" +duLibraryName "memory" +duName "fifoBridgeRxToTx" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +(GiElement +name "firstWordFallThrough" +type "boolean" +value "firstWordFallThrough" +e "first byte written into the FIFO immediately appears on the output" +) +] +mwi 0 +uid 1242,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridge" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridge" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:16" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridge" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridge/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:16" +) +(vvPair +variable "unit" +value "fifoBridge" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 209,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "28000,20625,29500,21375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "29500,21000,30000,21000" +pts [ +"29500,21000" +"30000,21000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23500,20300,27000,21600" +st "clock" +ju 2 +blo "27000,21300" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,7200,10000,8100" +st "clock : std_ulogic" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "28000,22625,29500,23375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "29500,23000,30000,23000" +pts [ +"29500,23000" +"30000,23000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23500,22300,27000,23600" +st "reset" +ju 2 +blo "27000,23300" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,8100,10000,9000" +st "reset : std_ulogic" +) +) +*5 (Grouping +uid 177,0 +optionalChildren [ +*6 (CommentText +uid 179,0 +shape (Rectangle +uid 180,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,74000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 181,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,73400,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 182,0 +shape (Rectangle +uid 183,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,61000,78000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 184,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,61000,77800,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 185,0 +shape (Rectangle +uid 186,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,74000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 187,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,73400,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 188,0 +shape (Rectangle +uid 189,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,63000,57000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 190,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,63000,56800,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 191,0 +shape (Rectangle +uid 192,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,62000,94000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 193,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*11 (CommentText +uid 194,0 +shape (Rectangle +uid 195,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,94000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 196,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,93800,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*12 (CommentText +uid 197,0 +shape (Rectangle +uid 198,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,61000,74000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 199,0 +va (VaSet +fg "32768,0,0" +) +xt "59000,61500,68000,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 200,0 +shape (Rectangle +uid 201,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,64000,57000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 202,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,64000,56200,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 203,0 +shape (Rectangle +uid 204,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,65000,57000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 205,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,65000,56800,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 206,0 +shape (Rectangle +uid 207,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,74000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 208,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,72200,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 178,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "53000,61000,94000,66000" +) +oxt "14000,66000,55000,71000" +) +*16 (PortIoOut +uid 774,0 +shape (CompositeShape +uid 775,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 776,0 +sl 0 +ro 270 +xt "62500,40625,64000,41375" +) +(Line +uid 777,0 +sl 0 +ro 270 +xt "62000,41000,62500,41000" +pts [ +"62000,41000" +"62500,41000" +] +) +] +) +tg (WTG +uid 778,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 779,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "65000,40500,68500,41800" +st "txWr1" +blo "65000,41500" +tm "WireNameMgr" +) +) +) +*17 (Net +uid 786,0 +decl (Decl +n "txWr1" +t "std_ulogic" +o 13 +suid 13,0 +) +declText (MLText +uid 787,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,18000,10000,18900" +st "txWr1 : std_ulogic" +) +) +*18 (PortIoIn +uid 788,0 +shape (CompositeShape +uid 789,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 790,0 +sl 0 +ro 270 +xt "28000,12625,29500,13375" +) +(Line +uid 791,0 +sl 0 +ro 270 +xt "29500,13000,30000,13000" +pts [ +"29500,13000" +"30000,13000" +] +) +] +) +tg (WTG +uid 792,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 793,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "3900,12500,27000,13800" +st "rxData1 : (dataBitNb-1 DOWNTO 0)" +ju 2 +blo "27000,13500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 800,0 +decl (Decl +n "rxData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 14,0 +) +declText (MLText +uid 801,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,9000,24500,9900" +st "rxData1 : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*20 (PortIoOut +uid 802,0 +shape (CompositeShape +uid 803,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 804,0 +sl 0 +ro 90 +xt "28000,16625,29500,17375" +) +(Line +uid 805,0 +sl 0 +ro 90 +xt "29500,17000,30000,17000" +pts [ +"30000,17000" +"29500,17000" +] +) +] +) +tg (WTG +uid 806,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 807,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23500,16300,27000,17600" +st "rxRd1" +ju 2 +blo "27000,17300" +tm "WireNameMgr" +) +) +) +*21 (Net +uid 814,0 +decl (Decl +n "rxRd1" +t "std_ulogic" +o 9 +suid 15,0 +) +declText (MLText +uid 815,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,14400,10000,15300" +st "rxRd1 : std_ulogic" +) +) +*22 (PortIoIn +uid 816,0 +shape (CompositeShape +uid 817,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 818,0 +sl 0 +ro 90 +xt "62500,38625,64000,39375" +) +(Line +uid 819,0 +sl 0 +ro 90 +xt "62000,39000,62500,39000" +pts [ +"62500,39000" +"62000,39000" +] +) +] +) +tg (WTG +uid 820,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 821,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "65000,38300,69900,39600" +st "txFull1" +blo "65000,39300" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 828,0 +decl (Decl +n "txFull1" +t "std_ulogic" +o 7 +suid 16,0 +) +declText (MLText +uid 829,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,12600,10000,13500" +st "txFull1 : std_ulogic" +) +) +*24 (PortIoIn +uid 830,0 +shape (CompositeShape +uid 831,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 832,0 +sl 0 +ro 270 +xt "28000,14625,29500,15375" +) +(Line +uid 833,0 +sl 0 +ro 270 +xt "29500,15000,30000,15000" +pts [ +"29500,15000" +"30000,15000" +] +) +] +) +tg (WTG +uid 834,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 835,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "21400,14500,27000,15800" +st "rxEmpty1" +ju 2 +blo "27000,15500" +tm "WireNameMgr" +) +) +) +*25 (Net +uid 842,0 +decl (Decl +n "rxEmpty1" +t "std_ulogic" +o 5 +suid 17,0 +) +declText (MLText +uid 843,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,10800,10000,11700" +st "rxEmpty1 : std_ulogic" +) +) +*26 (PortIoOut +uid 844,0 +shape (CompositeShape +uid 845,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 846,0 +sl 0 +ro 270 +xt "62500,36625,64000,37375" +) +(Line +uid 847,0 +sl 0 +ro 270 +xt "62000,37000,62500,37000" +pts [ +"62000,37000" +"62500,37000" +] +) +] +) +tg (WTG +uid 848,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 849,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "65000,36500,88100,37800" +st "txData1 : (dataBitNb-1 DOWNTO 0)" +blo "65000,37500" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 856,0 +decl (Decl +n "txData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +declText (MLText +uid 857,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,16200,24500,17100" +st "txData1 : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*28 (PortIoOut +uid 858,0 +shape (CompositeShape +uid 859,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 860,0 +sl 0 +ro 90 +xt "28000,40625,29500,41375" +) +(Line +uid 861,0 +sl 0 +ro 90 +xt "29500,41000,30000,41000" +pts [ +"30000,41000" +"29500,41000" +] +) +] +) +tg (WTG +uid 862,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 863,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23500,40300,27000,41600" +st "rxRd2" +ju 2 +blo "27000,41300" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 870,0 +decl (Decl +n "rxRd2" +t "std_ulogic" +o 10 +suid 19,0 +) +declText (MLText +uid 871,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,15300,10000,16200" +st "rxRd2 : std_ulogic" +) +) +*30 (PortIoIn +uid 872,0 +shape (CompositeShape +uid 873,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 874,0 +sl 0 +ro 270 +xt "28000,36625,29500,37375" +) +(Line +uid 875,0 +sl 0 +ro 270 +xt "29500,37000,30000,37000" +pts [ +"29500,37000" +"30000,37000" +] +) +] +) +tg (WTG +uid 876,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 877,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "3900,36500,27000,37800" +st "rxData2 : (dataBitNb-1 DOWNTO 0)" +ju 2 +blo "27000,37500" +tm "WireNameMgr" +) +) +) +*31 (Net +uid 884,0 +decl (Decl +n "rxData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 20,0 +) +declText (MLText +uid 885,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,9900,24500,10800" +st "rxData2 : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*32 (PortIoOut +uid 886,0 +shape (CompositeShape +uid 887,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 888,0 +sl 0 +ro 270 +xt "62500,12625,64000,13375" +) +(Line +uid 889,0 +sl 0 +ro 270 +xt "62000,13000,62500,13000" +pts [ +"62000,13000" +"62500,13000" +] +) +] +) +tg (WTG +uid 890,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 891,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "65000,12500,88100,13800" +st "txData2 : (dataBitNb-1 DOWNTO 0)" +blo "65000,13500" +tm "WireNameMgr" +) +) +) +*33 (Net +uid 898,0 +decl (Decl +n "txData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 21,0 +) +declText (MLText +uid 899,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,17100,24500,18000" +st "txData2 : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*34 (PortIoIn +uid 900,0 +shape (CompositeShape +uid 901,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 902,0 +sl 0 +ro 90 +xt "62500,14625,64000,15375" +) +(Line +uid 903,0 +sl 0 +ro 90 +xt "62000,15000,62500,15000" +pts [ +"62500,15000" +"62000,15000" +] +) +] +) +tg (WTG +uid 904,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 905,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "65000,14300,69900,15600" +st "txFull2" +blo "65000,15300" +tm "WireNameMgr" +) +) +) +*35 (Net +uid 912,0 +decl (Decl +n "txFull2" +t "std_ulogic" +o 8 +suid 22,0 +) +declText (MLText +uid 913,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,13500,10000,14400" +st "txFull2 : std_ulogic" +) +) +*36 (PortIoIn +uid 914,0 +shape (CompositeShape +uid 915,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 916,0 +sl 0 +ro 270 +xt "28000,38625,29500,39375" +) +(Line +uid 917,0 +sl 0 +ro 270 +xt "29500,39000,30000,39000" +pts [ +"29500,39000" +"30000,39000" +] +) +] +) +tg (WTG +uid 918,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 919,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "21400,38500,27000,39800" +st "rxEmpty2" +ju 2 +blo "27000,39500" +tm "WireNameMgr" +) +) +) +*37 (Net +uid 926,0 +decl (Decl +n "rxEmpty2" +t "std_ulogic" +o 6 +suid 23,0 +) +declText (MLText +uid 927,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,11700,10000,12600" +st "rxEmpty2 : std_ulogic" +) +) +*38 (PortIoOut +uid 928,0 +shape (CompositeShape +uid 929,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 930,0 +sl 0 +ro 270 +xt "62500,16625,64000,17375" +) +(Line +uid 931,0 +sl 0 +ro 270 +xt "62000,17000,62500,17000" +pts [ +"62000,17000" +"62500,17000" +] +) +] +) +tg (WTG +uid 932,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 933,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "65000,16500,68500,17800" +st "txWr2" +blo "65000,17500" +tm "WireNameMgr" +) +) +) +*39 (Net +uid 940,0 +decl (Decl +n "txWr2" +t "std_ulogic" +o 14 +suid 24,0 +) +declText (MLText +uid 941,0 +va (VaSet +font "courier,8,0" +) +xt "-1000,18900,10000,19800" +st "txWr2 : std_ulogic" +) +) +*40 (SaComponent +uid 1201,0 +optionalChildren [ +*41 (CptPort +uid 1169,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1170,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,20625,38000,21375" +) +tg (CPTG +uid 1171,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1172,0 +va (VaSet +font "courier,9,0" +) +xt "39000,20400,41500,21300" +st "clock" +blo "39000,21100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*42 (CptPort +uid 1173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,22625,38000,23375" +) +tg (CPTG +uid 1175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1176,0 +va (VaSet +font "courier,9,0" +) +xt "39000,22400,41500,23300" +st "reset" +blo "39000,23100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*43 (CptPort +uid 1177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1178,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,12625,54750,13375" +) +tg (CPTG +uid 1179,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1180,0 +va (VaSet +font "courier,9,0" +) +xt "50500,12400,53000,13300" +st "data2" +ju 2 +blo "53000,13100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "data2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*44 (CptPort +uid 1181,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1182,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,14625,54750,15375" +) +tg (CPTG +uid 1183,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1184,0 +va (VaSet +font "courier,9,0" +) +xt "50500,14400,53000,15300" +st "full2" +ju 2 +blo "53000,15100" +) +) +thePort (LogicalPort +decl (Decl +n "full2" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*45 (CptPort +uid 1185,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1186,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,16625,54750,17375" +) +tg (CPTG +uid 1187,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1188,0 +va (VaSet +font "courier,9,0" +) +xt "51500,16400,53000,17300" +st "wr2" +ju 2 +blo "53000,17100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "wr2" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*46 (CptPort +uid 1189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1190,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,14625,38000,15375" +) +tg (CPTG +uid 1191,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1192,0 +va (VaSet +font "courier,9,0" +) +xt "39000,14400,42000,15300" +st "empty1" +blo "39000,15100" +) +) +thePort (LogicalPort +decl (Decl +n "empty1" +t "std_ulogic" +o 7 +suid 6,0 +) +) +) +*47 (CptPort +uid 1193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1194,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,12625,38000,13375" +) +tg (CPTG +uid 1195,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1196,0 +va (VaSet +font "courier,9,0" +) +xt "39000,12400,41500,13300" +st "data1" +blo "39000,13100" +) +) +thePort (LogicalPort +decl (Decl +n "data1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 7,0 +) +) +) +*48 (CptPort +uid 1197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1198,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,16625,38000,17375" +) +tg (CPTG +uid 1199,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1200,0 +va (VaSet +font "courier,9,0" +) +xt "39000,16400,40500,17300" +st "rd1" +blo "39000,17100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "rd1" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1202,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,9000,54000,25000" +) +oxt "35000,10000,51000,26000" +ttg (MlTextGroup +uid 1203,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*49 (Text +uid 1204,0 +va (VaSet +font "courier,9,1" +) +xt "38600,24800,41600,25700" +st "memory" +blo "38600,25500" +tm "BdLibraryNameMgr" +) +*50 (Text +uid 1205,0 +va (VaSet +font "courier,9,1" +) +xt "38600,26000,47100,26900" +st "fifoBridgeRxToTx" +blo "38600,26700" +tm "CptNameMgr" +) +*51 (Text +uid 1206,0 +va (VaSet +font "courier,9,1" +) +xt "38600,27200,42600,28100" +st "rx1ToTx2" +blo "38600,27900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1207,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1208,0 +text (MLText +uid 1209,0 +va (VaSet +font "courier,8,0" +) +xt "38000,28400,103000,31100" +st "dataBitNb = dataBitNb ( positive ) +fifoDepth = fifoDepth ( positive ) +firstWordFallThrough = firstWordFallThrough ( boolean ) --first byte written into the FIFO immediately appears on the output " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +(GiElement +name "firstWordFallThrough" +type "boolean" +value "firstWordFallThrough" +e "first byte written into the FIFO immediately appears on the output" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*52 (SaComponent +uid 1242,0 +optionalChildren [ +*53 (CptPort +uid 1210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1211,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,44625,38000,45375" +) +tg (CPTG +uid 1212,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1213,0 +va (VaSet +font "courier,9,0" +) +xt "39000,44400,41500,45300" +st "clock" +blo "39000,45100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*54 (CptPort +uid 1214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,46625,38000,47375" +) +tg (CPTG +uid 1216,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1217,0 +va (VaSet +font "courier,9,0" +) +xt "39000,46400,41500,47300" +st "reset" +blo "39000,47100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*55 (CptPort +uid 1218,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1219,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,36625,54750,37375" +) +tg (CPTG +uid 1220,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1221,0 +va (VaSet +font "courier,9,0" +) +xt "50500,36400,53000,37300" +st "data2" +ju 2 +blo "53000,37100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "data2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*56 (CptPort +uid 1222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1223,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,38625,54750,39375" +) +tg (CPTG +uid 1224,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1225,0 +va (VaSet +font "courier,9,0" +) +xt "50500,38400,53000,39300" +st "full2" +ju 2 +blo "53000,39100" +) +) +thePort (LogicalPort +decl (Decl +n "full2" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*57 (CptPort +uid 1226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,40625,54750,41375" +) +tg (CPTG +uid 1228,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1229,0 +va (VaSet +font "courier,9,0" +) +xt "51500,40400,53000,41300" +st "wr2" +ju 2 +blo "53000,41100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "wr2" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*58 (CptPort +uid 1230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1231,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,38625,38000,39375" +) +tg (CPTG +uid 1232,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1233,0 +va (VaSet +font "courier,9,0" +) +xt "39000,38400,42000,39300" +st "empty1" +blo "39000,39100" +) +) +thePort (LogicalPort +decl (Decl +n "empty1" +t "std_ulogic" +o 7 +suid 6,0 +) +) +) +*59 (CptPort +uid 1234,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1235,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,36625,38000,37375" +) +tg (CPTG +uid 1236,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1237,0 +va (VaSet +font "courier,9,0" +) +xt "39000,36400,41500,37300" +st "data1" +blo "39000,37100" +) +) +thePort (LogicalPort +decl (Decl +n "data1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 7,0 +) +) +) +*60 (CptPort +uid 1238,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1239,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,40625,38000,41375" +) +tg (CPTG +uid 1240,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1241,0 +va (VaSet +font "courier,9,0" +) +xt "39000,40400,40500,41300" +st "rd1" +blo "39000,41100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "rd1" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1243,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,33000,54000,49000" +) +oxt "35000,10000,51000,26000" +ttg (MlTextGroup +uid 1244,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 1245,0 +va (VaSet +font "courier,9,1" +) +xt "38600,48800,41600,49700" +st "memory" +blo "38600,49500" +tm "BdLibraryNameMgr" +) +*62 (Text +uid 1246,0 +va (VaSet +font "courier,9,1" +) +xt "38600,49700,47100,50600" +st "fifoBridgeRxToTx" +blo "38600,50400" +tm "CptNameMgr" +) +*63 (Text +uid 1247,0 +va (VaSet +font "courier,9,1" +) +xt "38600,50600,42600,51500" +st "rx2ToTx1" +blo "38600,51300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1248,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1249,0 +text (MLText +uid 1250,0 +va (VaSet +font "courier,8,0" +) +xt "38000,52400,103000,55100" +st "dataBitNb = dataBitNb ( positive ) +fifoDepth = fifoDepth ( positive ) +firstWordFallThrough = firstWordFallThrough ( boolean ) --first byte written into the FIFO immediately appears on the output " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +(GiElement +name "firstWordFallThrough" +type "boolean" +value "firstWordFallThrough" +e "first byte written into the FIFO immediately appears on the output" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*64 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "30000,21000,37250,21000" +pts [ +"30000,21000" +"37250,21000" +] +) +start &1 +end &41 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "courier,12,0" +) +xt "30000,19600,33500,20900" +st "clock" +blo "30000,20600" +tm "WireNameMgr" +) +) +on &2 +) +*65 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "30000,23000,37250,23000" +pts [ +"30000,23000" +"37250,23000" +] +) +start &3 +end &42 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "courier,12,0" +) +xt "30000,21600,33500,22900" +st "reset" +blo "30000,22600" +tm "WireNameMgr" +) +) +on &4 +) +*66 (Wire +uid 780,0 +shape (OrthoPolyLine +uid 781,0 +va (VaSet +vasetType 3 +) +xt "54750,41000,62000,41000" +pts [ +"54750,41000" +"62000,41000" +] +) +start &57 +end &16 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 785,0 +va (VaSet +font "courier,12,0" +) +xt "58000,39600,61500,40900" +st "txWr1" +blo "58000,40600" +tm "WireNameMgr" +) +) +on &17 +) +*67 (Wire +uid 794,0 +shape (OrthoPolyLine +uid 795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30000,13000,37250,13000" +pts [ +"30000,13000" +"37250,13000" +] +) +start &18 +end &47 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 799,0 +va (VaSet +font "courier,12,0" +) +xt "30000,11600,34900,12900" +st "rxData1" +blo "30000,12600" +tm "WireNameMgr" +) +) +on &19 +) +*68 (Wire +uid 808,0 +shape (OrthoPolyLine +uid 809,0 +va (VaSet +vasetType 3 +) +xt "30000,17000,37250,17000" +pts [ +"37250,17000" +"30000,17000" +] +) +start &48 +end &20 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 812,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 813,0 +va (VaSet +font "courier,12,0" +) +xt "30000,15600,33500,16900" +st "rxRd1" +blo "30000,16600" +tm "WireNameMgr" +) +) +on &21 +) +*69 (Wire +uid 822,0 +shape (OrthoPolyLine +uid 823,0 +va (VaSet +vasetType 3 +) +xt "54750,39000,62000,39000" +pts [ +"62000,39000" +"54750,39000" +] +) +start &22 +end &56 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 826,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 827,0 +va (VaSet +font "courier,12,0" +) +xt "58000,37600,62900,38900" +st "txFull1" +blo "58000,38600" +tm "WireNameMgr" +) +) +on &23 +) +*70 (Wire +uid 836,0 +shape (OrthoPolyLine +uid 837,0 +va (VaSet +vasetType 3 +) +xt "30000,15000,37250,15000" +pts [ +"30000,15000" +"37250,15000" +] +) +start &24 +end &46 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 840,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 841,0 +va (VaSet +font "courier,12,0" +) +xt "30000,13600,35600,14900" +st "rxEmpty1" +blo "30000,14600" +tm "WireNameMgr" +) +) +on &25 +) +*71 (Wire +uid 850,0 +shape (OrthoPolyLine +uid 851,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "54750,37000,62000,37000" +pts [ +"54750,37000" +"62000,37000" +] +) +start &55 +end &26 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 854,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 855,0 +va (VaSet +font "courier,12,0" +) +xt "57000,35600,61900,36900" +st "txData1" +blo "57000,36600" +tm "WireNameMgr" +) +) +on &27 +) +*72 (Wire +uid 864,0 +shape (OrthoPolyLine +uid 865,0 +va (VaSet +vasetType 3 +) +xt "30000,41000,37250,41000" +pts [ +"37250,41000" +"30000,41000" +] +) +start &60 +end &28 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 868,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 869,0 +va (VaSet +font "courier,12,0" +) +xt "30000,39600,33500,40900" +st "rxRd2" +blo "30000,40600" +tm "WireNameMgr" +) +) +on &29 +) +*73 (Wire +uid 878,0 +shape (OrthoPolyLine +uid 879,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30000,37000,37250,37000" +pts [ +"30000,37000" +"37250,37000" +] +) +start &30 +end &59 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 882,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 883,0 +va (VaSet +font "courier,12,0" +) +xt "30000,35600,34900,36900" +st "rxData2" +blo "30000,36600" +tm "WireNameMgr" +) +) +on &31 +) +*74 (Wire +uid 892,0 +shape (OrthoPolyLine +uid 893,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "54750,13000,62000,13000" +pts [ +"54750,13000" +"62000,13000" +] +) +start &43 +end &32 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 896,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 897,0 +va (VaSet +font "courier,12,0" +) +xt "57000,11600,61900,12900" +st "txData2" +blo "57000,12600" +tm "WireNameMgr" +) +) +on &33 +) +*75 (Wire +uid 906,0 +shape (OrthoPolyLine +uid 907,0 +va (VaSet +vasetType 3 +) +xt "54750,15000,62000,15000" +pts [ +"62000,15000" +"54750,15000" +] +) +start &34 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 910,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 911,0 +va (VaSet +font "courier,12,0" +) +xt "58000,13600,62900,14900" +st "txFull2" +blo "58000,14600" +tm "WireNameMgr" +) +) +on &35 +) +*76 (Wire +uid 920,0 +shape (OrthoPolyLine +uid 921,0 +va (VaSet +vasetType 3 +) +xt "30000,39000,37250,39000" +pts [ +"30000,39000" +"37250,39000" +] +) +start &36 +end &58 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 924,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 925,0 +va (VaSet +font "courier,12,0" +) +xt "30000,37600,35600,38900" +st "rxEmpty2" +blo "30000,38600" +tm "WireNameMgr" +) +) +on &37 +) +*77 (Wire +uid 934,0 +shape (OrthoPolyLine +uid 935,0 +va (VaSet +vasetType 3 +) +xt "54750,17000,62000,17000" +pts [ +"54750,17000" +"62000,17000" +] +) +start &45 +end &38 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 938,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 939,0 +va (VaSet +font "courier,12,0" +) +xt "58000,15600,61500,16900" +st "txWr2" +blo "58000,16600" +tm "WireNameMgr" +) +) +on &39 +) +*78 (Wire +uid 1099,0 +shape (OrthoPolyLine +uid 1100,0 +va (VaSet +vasetType 3 +) +xt "34000,47000,37250,47000" +pts [ +"34000,47000" +"37250,47000" +] +) +end &54 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1105,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1106,0 +va (VaSet +font "courier,12,0" +) +xt "32000,45600,35500,46900" +st "reset" +blo "32000,46600" +tm "WireNameMgr" +) +) +on &4 +) +*79 (Wire +uid 1107,0 +shape (OrthoPolyLine +uid 1108,0 +va (VaSet +vasetType 3 +) +xt "34000,45000,37250,45000" +pts [ +"34000,45000" +"37250,45000" +] +) +end &53 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1113,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1114,0 +va (VaSet +font "courier,12,0" +) +xt "32000,43600,35500,44900" +st "clock" +blo "32000,44600" +tm "WireNameMgr" +) +) +on &2 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *80 (PackageList +uid 210,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 211,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,0,3500,900" +st "Package List" +blo "-3000,700" +) +*82 (MLText +uid 212,0 +va (VaSet +) +xt "-3000,1000,15600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 213,0 +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 214,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*84 (Text +uid 215,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*85 (MLText +uid 216,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*86 (Text +uid 217,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*87 (MLText +uid 218,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*88 (Text +uid 219,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*89 (MLText +uid 220,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "367,41,1424,909" +viewArea "-4497,-1499,104998,72675" +cachedDiagramExtent "-3000,0,103000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 1358,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +va (VaSet +) +xt "2450,3500,5550,4500" +st "" +blo "2450,4300" +tm "BdLibraryNameMgr" +) +*91 (Text +va (VaSet +) +xt "2450,4500,5150,5500" +st "" +blo "2450,5300" +tm "BlkNameMgr" +) +*92 (Text +va (VaSet +) +xt "2450,5500,3050,6500" +st "I0" +blo "2450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "2450,13500,2450,13500" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*94 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*95 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*97 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*98 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*100 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*101 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*103 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*104 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*106 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5400,1000" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,10800,2000" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*108 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*110 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,5400,3500,6300" +st "Declarations" +blo "-3000,6100" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,6300,0,7200" +st "Ports:" +blo "-3000,7000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,19800,1500,20700" +st "Pre User:" +blo "-3000,20500" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "-3000,5400,-3000,5400" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,20700,5500,21600" +st "Diagram Signals:" +blo "-3000,21400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,21600,2500,22500" +st "Post User:" +blo "-3000,22300" +) +postUserText (MLText +uid 8,0 +va (VaSet +font "courier,8,0" +) +xt "-3000,5400,-3000,5400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 24,0 +usingSuid 1 +emptyRow *111 (LEmptyRow +) +uid 652,0 +optionalChildren [ +*112 (RefLabelRowHdr +) +*113 (TitleRowHdr +) +*114 (FilterRowHdr +) +*115 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*116 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*117 (GroupColHdr +tm "GroupColHdrMgr" +) +*118 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*119 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*120 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*121 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*122 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*123 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*124 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 627,0 +) +*125 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 629,0 +) +*126 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txWr1" +t "std_ulogic" +o 13 +suid 13,0 +) +) +uid 751,0 +) +*127 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 14,0 +) +) +uid 753,0 +) +*128 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "rxRd1" +t "std_ulogic" +o 9 +suid 15,0 +) +) +uid 755,0 +) +*129 (LeafLogPort +port (LogicalPort +decl (Decl +n "txFull1" +t "std_ulogic" +o 7 +suid 16,0 +) +) +uid 757,0 +) +*130 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxEmpty1" +t "std_ulogic" +o 5 +suid 17,0 +) +) +uid 759,0 +) +*131 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +) +uid 761,0 +) +*132 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "rxRd2" +t "std_ulogic" +o 10 +suid 19,0 +) +) +uid 763,0 +) +*133 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 20,0 +) +) +uid 765,0 +) +*134 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 21,0 +) +) +uid 767,0 +) +*135 (LeafLogPort +port (LogicalPort +decl (Decl +n "txFull2" +t "std_ulogic" +o 8 +suid 22,0 +) +) +uid 769,0 +) +*136 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxEmpty2" +t "std_ulogic" +o 6 +suid 23,0 +) +) +uid 771,0 +) +*137 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txWr2" +t "std_ulogic" +o 14 +suid 24,0 +) +) +uid 773,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 665,0 +optionalChildren [ +*138 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *139 (MRCItem +litem &111 +pos 14 +dimension 20 +) +uid 667,0 +optionalChildren [ +*140 (MRCItem +litem &112 +pos 0 +dimension 20 +uid 668,0 +) +*141 (MRCItem +litem &113 +pos 1 +dimension 23 +uid 669,0 +) +*142 (MRCItem +litem &114 +pos 2 +hidden 1 +dimension 20 +uid 670,0 +) +*143 (MRCItem +litem &124 +pos 0 +dimension 20 +uid 628,0 +) +*144 (MRCItem +litem &125 +pos 1 +dimension 20 +uid 630,0 +) +*145 (MRCItem +litem &126 +pos 6 +dimension 20 +uid 750,0 +) +*146 (MRCItem +litem &127 +pos 3 +dimension 20 +uid 752,0 +) +*147 (MRCItem +litem &128 +pos 5 +dimension 20 +uid 754,0 +) +*148 (MRCItem +litem &129 +pos 4 +dimension 20 +uid 756,0 +) +*149 (MRCItem +litem &130 +pos 2 +dimension 20 +uid 758,0 +) +*150 (MRCItem +litem &131 +pos 7 +dimension 20 +uid 760,0 +) +*151 (MRCItem +litem &132 +pos 8 +dimension 20 +uid 762,0 +) +*152 (MRCItem +litem &133 +pos 9 +dimension 20 +uid 764,0 +) +*153 (MRCItem +litem &134 +pos 10 +dimension 20 +uid 766,0 +) +*154 (MRCItem +litem &135 +pos 11 +dimension 20 +uid 768,0 +) +*155 (MRCItem +litem &136 +pos 12 +dimension 20 +uid 770,0 +) +*156 (MRCItem +litem &137 +pos 13 +dimension 20 +uid 772,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 671,0 +optionalChildren [ +*157 (MRCItem +litem &115 +pos 0 +dimension 20 +uid 672,0 +) +*158 (MRCItem +litem &117 +pos 1 +dimension 50 +uid 673,0 +) +*159 (MRCItem +litem &118 +pos 2 +dimension 100 +uid 674,0 +) +*160 (MRCItem +litem &119 +pos 3 +dimension 50 +uid 675,0 +) +*161 (MRCItem +litem &120 +pos 4 +dimension 100 +uid 676,0 +) +*162 (MRCItem +litem &121 +pos 5 +dimension 100 +uid 677,0 +) +*163 (MRCItem +litem &122 +pos 6 +dimension 50 +uid 678,0 +) +*164 (MRCItem +litem &123 +pos 7 +dimension 80 +uid 679,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 666,0 +vaOverrides [ +] +) +] +) +uid 651,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *165 (LEmptyRow +) +uid 681,0 +optionalChildren [ +*166 (RefLabelRowHdr +) +*167 (TitleRowHdr +) +*168 (FilterRowHdr +) +*169 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*170 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*171 (GroupColHdr +tm "GroupColHdrMgr" +) +*172 (NameColHdr +tm "GenericNameColHdrMgr" +) +*173 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*174 (InitColHdr +tm "GenericValueColHdrMgr" +) +*175 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*176 (EolColHdr +tm "GenericEolColHdrMgr" +) +*177 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 716,0 +) +*178 (LogGeneric +generic (GiElement +name "fifoDepth" +type "positive" +value "8" +) +uid 718,0 +) +*179 (LogGeneric +generic (GiElement +name "firstWordFallThrough" +type "boolean" +value "false" +e "first byte written into the FIFO immediately appears on the output" +) +uid 1428,0 +) +] +) +pdm (PhysicalDM +uid 693,0 +optionalChildren [ +*180 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *181 (MRCItem +litem &165 +pos 2 +dimension 20 +) +uid 695,0 +optionalChildren [ +*182 (MRCItem +litem &166 +pos 0 +dimension 20 +uid 696,0 +) +*183 (MRCItem +litem &167 +pos 1 +dimension 23 +uid 697,0 +) +*184 (MRCItem +litem &168 +pos 2 +hidden 1 +dimension 20 +uid 698,0 +) +*185 (MRCItem +litem &177 +pos 0 +dimension 20 +uid 715,0 +) +*186 (MRCItem +litem &178 +pos 1 +dimension 20 +uid 717,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 699,0 +optionalChildren [ +*187 (MRCItem +litem &169 +pos 0 +dimension 20 +uid 700,0 +) +*188 (MRCItem +litem &171 +pos 1 +dimension 50 +uid 701,0 +) +*189 (MRCItem +litem &172 +pos 2 +dimension 100 +uid 702,0 +) +*190 (MRCItem +litem &173 +pos 3 +dimension 100 +uid 703,0 +) +*191 (MRCItem +litem &174 +pos 4 +dimension 50 +uid 704,0 +) +*192 (MRCItem +litem &175 +pos 5 +dimension 50 +uid 705,0 +) +*193 (MRCItem +litem &176 +pos 6 +dimension 80 +uid 706,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 694,0 +vaOverrides [ +] +) +] +) +uid 680,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Memory/hds/fifo@bridge/symbol.sb b/Libs/Memory/hds/fifo@bridge/symbol.sb new file mode 100644 index 0000000..f4e8acb --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge/symbol.sb @@ -0,0 +1,2251 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2019,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 313,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 315,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txWr1" +t "std_ulogic" +o 13 +suid 12,0 +) +) +uid 316,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "rxData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 9,0 +) +) +uid 318,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rxRd1" +t "std_ulogic" +o 9 +suid 11,0 +) +) +uid 319,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "txFull1" +t "std_ulogic" +o 7 +suid 10,0 +) +) +uid 321,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "rxEmpty1" +t "std_ulogic" +o 5 +suid 8,0 +) +) +uid 322,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 323,0 +) +*9 (RefLabelRowHdr +) +*10 (TitleRowHdr +) +*11 (FilterRowHdr +) +*12 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*13 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*14 (GroupColHdr +tm "GroupColHdrMgr" +) +*15 (NameColHdr +tm "NameColHdrMgr" +) +*16 (ModeColHdr +tm "ModeColHdrMgr" +) +*17 (TypeColHdr +tm "TypeColHdrMgr" +) +*18 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*19 (InitColHdr +tm "InitColHdrMgr" +) +*20 (EolColHdr +tm "EolColHdrMgr" +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 2013,0 +) +) +uid 411,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rxRd2" +t "std_ulogic" +o 10 +suid 2014,0 +) +) +uid 413,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "rxData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 2015,0 +) +) +uid 415,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 2016,0 +) +) +uid 417,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "txFull2" +t "std_ulogic" +o 8 +suid 2017,0 +) +) +uid 419,0 +) +*26 (LogPort +port (LogicalPort +decl (Decl +n "rxEmpty2" +t "std_ulogic" +o 6 +suid 2018,0 +) +) +uid 421,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txWr2" +t "std_ulogic" +o 14 +suid 2019,0 +) +) +uid 423,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 326,0 +optionalChildren [ +*28 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *29 (MRCItem +litem &1 +pos 14 +dimension 20 +) +uid 245,0 +optionalChildren [ +*30 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 248,0 +) +*31 (MRCItem +litem &10 +pos 1 +dimension 23 +uid 250,0 +) +*32 (MRCItem +litem &11 +pos 2 +hidden 1 +dimension 20 +uid 252,0 +) +*33 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 272,0 +) +*34 (MRCItem +litem &3 +pos 6 +dimension 20 +uid 273,0 +) +*35 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 275,0 +) +*36 (MRCItem +litem &5 +pos 5 +dimension 20 +uid 276,0 +) +*37 (MRCItem +litem &6 +pos 4 +dimension 20 +uid 278,0 +) +*38 (MRCItem +litem &7 +pos 2 +dimension 20 +uid 279,0 +) +*39 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 280,0 +) +*40 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 412,0 +) +*41 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 414,0 +) +*42 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 416,0 +) +*43 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 418,0 +) +*44 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 420,0 +) +*45 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 422,0 +) +*46 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 424,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 246,0 +optionalChildren [ +*47 (MRCItem +litem &12 +pos 0 +dimension 20 +uid 254,0 +) +*48 (MRCItem +litem &14 +pos 1 +dimension 50 +uid 258,0 +) +*49 (MRCItem +litem &15 +pos 2 +dimension 100 +uid 260,0 +) +*50 (MRCItem +litem &16 +pos 3 +dimension 50 +uid 262,0 +) +*51 (MRCItem +litem &17 +pos 4 +dimension 100 +uid 264,0 +) +*52 (MRCItem +litem &18 +pos 5 +dimension 100 +uid 266,0 +) +*53 (MRCItem +litem &19 +pos 6 +dimension 50 +uid 268,0 +) +*54 (MRCItem +litem &20 +pos 7 +dimension 80 +uid 270,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 244,0 +vaOverrides [ +] +) +] +) +uid 312,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *55 (LEmptyRow +) +uid 328,0 +optionalChildren [ +*56 (RefLabelRowHdr +) +*57 (TitleRowHdr +) +*58 (FilterRowHdr +) +*59 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*60 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*61 (GroupColHdr +tm "GroupColHdrMgr" +) +*62 (NameColHdr +tm "GenericNameColHdrMgr" +) +*63 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*64 (InitColHdr +tm "GenericValueColHdrMgr" +) +*65 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*66 (EolColHdr +tm "GenericEolColHdrMgr" +) +*67 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 308,0 +) +*68 (LogGeneric +generic (GiElement +name "fifoDepth" +type "positive" +value "8" +) +uid 309,0 +) +*69 (LogGeneric +generic (GiElement +name "firstWordFallThrough" +type "boolean" +value "false" +e "first byte written into the FIFO immediately appears on the output" +) +uid 566,0 +) +] +) +pdm (PhysicalDM +uid 329,0 +optionalChildren [ +*70 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *71 (MRCItem +litem &55 +pos 2 +dimension 20 +) +uid 284,0 +optionalChildren [ +*72 (MRCItem +litem &56 +pos 0 +dimension 20 +uid 287,0 +) +*73 (MRCItem +litem &57 +pos 1 +dimension 23 +uid 289,0 +) +*74 (MRCItem +litem &58 +pos 2 +hidden 1 +dimension 20 +uid 291,0 +) +*75 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 310,0 +) +*76 (MRCItem +litem &68 +pos 1 +dimension 20 +uid 311,0 +) +*77 (MRCItem +litem &69 +pos 2 +dimension 20 +uid 565,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 285,0 +optionalChildren [ +*78 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 293,0 +) +*79 (MRCItem +litem &61 +pos 1 +dimension 50 +uid 297,0 +) +*80 (MRCItem +litem &62 +pos 2 +dimension 100 +uid 299,0 +) +*81 (MRCItem +litem &63 +pos 3 +dimension 100 +uid 301,0 +) +*82 (MRCItem +litem &64 +pos 4 +dimension 50 +uid 303,0 +) +*83 (MRCItem +litem &65 +pos 5 +dimension 50 +uid 305,0 +) +*84 (MRCItem +litem &66 +pos 6 +dimension 80 +uid 307,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 283,0 +vaOverrides [ +] +) +] +) +uid 327,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridge" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridge" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridge" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridge/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "fifoBridge" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*85 (SymbolBody +uid 8,0 +optionalChildren [ +*86 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,32625,40000,33375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +font "courier,9,0" +) +xt "41000,32400,44400,33600" +st "clock" +blo "41000,33400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,18000,8700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*87 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,34625,40000,35375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +font "courier,9,0" +) +xt "41000,34400,44300,35600" +st "reset" +blo "41000,35400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,18000,9600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*88 (CptPort +uid 215,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 216,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,6625,40000,7375" +) +tg (CPTG +uid 217,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 218,0 +va (VaSet +font "courier,9,0" +) +xt "41000,6400,46600,7600" +st "rxEmpty1" +blo "41000,7400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 219,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,18000,12300" +st "rxEmpty1 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rxEmpty1" +t "std_ulogic" +o 5 +suid 8,0 +) +) +) +*89 (CptPort +uid 220,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 448,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,4625,40000,5375" +) +tg (CPTG +uid 222,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 223,0 +va (VaSet +font "courier,9,0" +) +xt "41000,4400,45800,5600" +st "rxData1" +blo "41000,5400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 224,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,32500,10500" +st "rxData1 : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "rxData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*90 (CptPort +uid 225,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 226,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,12625,40000,13375" +) +tg (CPTG +uid 227,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 228,0 +va (VaSet +font "courier,9,0" +) +xt "41000,12400,45200,13600" +st "txFull1" +blo "41000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 229,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,18000,14100" +st "txFull1 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "txFull1" +t "std_ulogic" +o 7 +suid 10,0 +) +) +) +*91 (CptPort +uid 230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 231,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,8625,40000,9375" +) +tg (CPTG +uid 232,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 233,0 +va (VaSet +font "courier,9,0" +) +xt "41000,8400,44700,9600" +st "rxRd1" +blo "41000,9400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 234,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15000,18000,15900" +st "rxRd1 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxRd1" +t "std_ulogic" +o 9 +suid 11,0 +) +) +) +*92 (CptPort +uid 235,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 236,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,14625,40000,15375" +) +tg (CPTG +uid 237,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 238,0 +va (VaSet +font "courier,9,0" +) +xt "41000,14400,44700,15600" +st "txWr1" +blo "41000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 239,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18600,18000,19500" +st "txWr1 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txWr1" +t "std_ulogic" +o 13 +suid 12,0 +) +) +) +*93 (CptPort +uid 376,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 449,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,10625,40000,11375" +) +tg (CPTG +uid 378,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 379,0 +va (VaSet +font "courier,9,0" +) +xt "41000,10400,45800,11600" +st "txData1" +blo "41000,11400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 380,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16800,32500,17700" +st "txData1 : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txData1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 2013,0 +) +) +) +*94 (CptPort +uid 381,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 382,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,22625,40000,23375" +) +tg (CPTG +uid 383,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 384,0 +va (VaSet +font "courier,9,0" +) +xt "41000,22400,44700,23600" +st "rxRd2" +blo "41000,23400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,18000,16800" +st "rxRd2 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxRd2" +t "std_ulogic" +o 10 +suid 2014,0 +) +) +) +*95 (CptPort +uid 386,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 387,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,18625,40000,19375" +) +tg (CPTG +uid 388,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 389,0 +va (VaSet +font "courier,9,0" +) +xt "41000,18400,45800,19600" +st "rxData2" +blo "41000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 390,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,32500,11400" +st "rxData2 : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "rxData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 2015,0 +) +) +) +*96 (CptPort +uid 391,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 392,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,24625,40000,25375" +) +tg (CPTG +uid 393,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 394,0 +va (VaSet +font "courier,9,0" +) +xt "41000,24400,45800,25600" +st "txData2" +blo "41000,25400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 395,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17700,32500,18600" +st "txData2 : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txData2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 2016,0 +) +) +) +*97 (CptPort +uid 396,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 397,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,26625,40000,27375" +) +tg (CPTG +uid 398,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 399,0 +va (VaSet +font "courier,9,0" +) +xt "41000,26400,45200,27600" +st "txFull2" +blo "41000,27400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 400,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,18000,15000" +st "txFull2 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "txFull2" +t "std_ulogic" +o 8 +suid 2017,0 +) +) +) +*98 (CptPort +uid 401,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 402,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,20625,40000,21375" +) +tg (CPTG +uid 403,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 404,0 +va (VaSet +font "courier,9,0" +) +xt "41000,20400,46600,21600" +st "rxEmpty2" +blo "41000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 405,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,18000,13200" +st "rxEmpty2 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rxEmpty2" +t "std_ulogic" +o 6 +suid 2018,0 +) +) +) +*99 (CptPort +uid 406,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 407,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,28625,40000,29375" +) +tg (CPTG +uid 408,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 409,0 +va (VaSet +font "courier,9,0" +) +xt "41000,28400,44700,29600" +st "txWr2" +blo "41000,29400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 410,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19500,17000,20400" +st "txWr2 : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "txWr2" +t "std_ulogic" +o 14 +suid 2019,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,1000,56000,37000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "40600,36800,43600,37700" +st "Memory" +blo "40600,37500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "40600,37700,46100,38600" +st "fifoBridge" +blo "40600,38400" +) +) +gi *100 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,39800,93000,44300" +st "Generic Declarations + +dataBitNb positive 8 +fifoDepth positive 8 +firstWordFallThrough boolean false --first byte written into the FIFO immediately appears on the output " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "fifoDepth" +type "positive" +value "8" +) +(GiElement +name "firstWordFallThrough" +type "boolean" +value "false" +e "first byte written into the FIFO immediately appears on the output" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*101 (Grouping +uid 16,0 +optionalChildren [ +*102 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*103 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*104 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*105 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*106 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*107 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*108 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*109 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*110 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*111 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *112 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*114 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "165,83,1343,971" +viewArea "-1071,-1071,74572,59980" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *115 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *116 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,5400,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,2700,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,20400,2500,21300" +st "User:" +blo "0,21100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,5800,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,21300,2000,21300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 589,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd b/Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd new file mode 100644 index 0000000..ede687a --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd @@ -0,0 +1,3912 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +frameInstances [ +(FrameInstance +name "g_txbigger0" +style 1 +insts [ +(Instance +name "Txbigger0" +duLibraryName "Memory" +duName "fifoBridgeRxToTxBusWidthAdaptionTxbigger" +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "dataBitNbRx" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "dataBitNbTx" +) +] +mwi 0 +uid 251,0 +) +] +) +(FrameInstance +name "g_rxbigger0" +style 1 +insts [ +(Instance +name "Rxbigger0" +duLibraryName "Memory" +duName "fifoBridgeRxToTxBusWidthAdaptionRxBigger" +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "dataBitNbRx" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "dataBitNbTx" +) +] +mwi 0 +uid 241,0 +) +] +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeBusWidthAdaption" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridgeBusWidthAdaption" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_LIBS_DIR/Memory/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridgeBusWidthAdaption" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeBusWidthAdaption/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$DESIGN_SCRATCH_DIR\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "fifoBridgeBusWidthAdaption" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 184,0 +optionalChildren [ +*1 (PortIoOut +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "60500,15625,62000,16375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "60000,16000,60500,16000" +pts [ +"60000,16000" +"60500,16000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +) +xt "63000,15500,65600,16500" +st "dataTx" +blo "63000,16300" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "courier,8,0" +) +xt "22000,2000,48000,2900" +st "dataTx : std_ulogic_vector(dataBitNbTx-1 DOWNTO 0)" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "-2000,15625,-500,16375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "-500,16000,0,16000" +pts [ +"-500,16000" +"0,16000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +) +xt "-5700,15500,-3000,16500" +st "dataRx" +ju 2 +blo "-3000,16300" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "courier,8,0" +) +xt "22000,2800,48000,3700" +st "dataRx : std_ulogic_vector(dataBitNbRx-1 DOWNTO 0)" +) +) +*5 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 90 +xt "60500,17625,62000,18375" +) +(Line +uid 40,0 +sl 0 +ro 90 +xt "60000,18000,60500,18000" +pts [ +"60500,18000" +"60000,18000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +) +xt "63000,17500,65200,18500" +st "fullTx" +blo "63000,18300" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "22000,3600,32500,4500" +st "fullTx : std_ulogic" +) +) +*7 (PortIoOut +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 270 +xt "60500,19625,62000,20375" +) +(Line +uid 54,0 +sl 0 +ro 270 +xt "60000,20000,60500,20000" +pts [ +"60000,20000" +"60500,20000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +) +xt "63000,19500,65800,20500" +st "writeTx" +blo "63000,20300" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 63,0 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +font "courier,8,0" +) +xt "22000,4400,32500,5300" +st "writeTx : std_ulogic" +) +) +*9 (PortIoIn +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 270 +xt "-2000,17625,-500,18375" +) +(Line +uid 68,0 +sl 0 +ro 270 +xt "-500,18000,0,18000" +pts [ +"-500,18000" +"0,18000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +) +xt "-6200,17500,-3000,18500" +st "emptyRx" +ju 2 +blo "-3000,18300" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 77,0 +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +font "courier,8,0" +) +xt "22000,5200,32500,6100" +st "emptyRx : std_ulogic" +) +) +*11 (PortIoIn +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 270 +xt "-2000,47625,-500,48375" +) +(Line +uid 82,0 +sl 0 +ro 270 +xt "-500,48000,0,48000" +pts [ +"-500,48000" +"0,48000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "-5100,47500,-3000,48500" +st "reset" +ju 2 +blo "-3000,48300" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 91,0 +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +font "courier,8,0" +) +xt "22000,6000,32500,6900" +st "reset : std_uLogic" +) +) +*13 (PortIoOut +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 90 +xt "-2000,19625,-500,20375" +) +(Line +uid 96,0 +sl 0 +ro 90 +xt "-500,20000,0,20000" +pts [ +"0,20000" +"-500,20000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +) +xt "-5800,19500,-3000,20500" +st "readRx" +ju 2 +blo "-3000,20300" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 105,0 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "courier,8,0" +) +xt "22000,6800,32500,7700" +st "readRx : std_ulogic" +) +) +*15 (PortIoIn +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "-2000,46625,-500,47375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "-500,47000,0,47000" +pts [ +"-500,47000" +"0,47000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "-5100,46500,-3000,47500" +st "clock" +ju 2 +blo "-3000,47300" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 119,0 +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "courier,8,0" +) +xt "22000,7600,32500,8500" +st "clock : std_ulogic" +) +) +*17 (Grouping +uid 141,0 +optionalChildren [ +*18 (CommentText +uid 143,0 +shape (Rectangle +uid 144,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-3000,-1000,14000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 145,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-2800,-1000,14000,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*19 (CommentText +uid 146,0 +shape (Rectangle +uid 147,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,-5000,18000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 148,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "14200,-5000,17800,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*20 (CommentText +uid 149,0 +shape (Rectangle +uid 150,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-3000,-3000,14000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 151,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-2800,-3000,13400,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*21 (CommentText +uid 152,0 +shape (Rectangle +uid 153,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-7000,-3000,-3000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 154,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-6800,-3000,-3200,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*22 (CommentText +uid 155,0 +shape (Rectangle +uid 156,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "14000,-4000,34000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 157,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "14200,-3800,27400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*23 (CommentText +uid 158,0 +shape (Rectangle +uid 159,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "18000,-5000,34000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 160,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "18200,-5000,20000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*24 (CommentText +uid 161,0 +shape (Rectangle +uid 162,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-7000,-5000,14000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 163,0 +va (VaSet +fg "32768,0,0" +) +xt "-1000,-4500,8000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*25 (CommentText +uid 164,0 +shape (Rectangle +uid 165,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-7000,-2000,-3000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 166,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-6800,-2000,-3800,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*26 (CommentText +uid 167,0 +shape (Rectangle +uid 168,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-7000,-1000,-3000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 169,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-6800,-1000,-3200,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*27 (CommentText +uid 170,0 +shape (Rectangle +uid 171,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-3000,-2000,14000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 172,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-2800,-2000,7400,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 142,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "-7000,-5000,34000,0" +) +oxt "14000,66000,55000,71000" +) +*28 (Blk +uid 241,0 +shape (Rectangle +uid 242,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "29000,15000,37000,26000" +) +ttg (MlTextGroup +uid 243,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*29 (Text +uid 244,0 +va (VaSet +font "courier,8,1" +) +xt "29300,20500,32600,21500" +st "Memory" +blo "29300,21300" +tm "BdLibraryNameMgr" +) +*30 (Text +uid 245,0 +va (VaSet +font "courier,8,1" +) +xt "29300,21500,48400,22500" +st "fifoBridgeRxToTxBusWidthAdaptionRxBigger" +blo "29300,22300" +tm "BlkNameMgr" +) +*31 (Text +uid 246,0 +va (VaSet +font "courier,8,1" +) +xt "29300,22500,33500,23500" +st "Rxbigger0" +blo "29300,23300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 247,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 248,0 +text (MLText +uid 249,0 +va (VaSet +font "courier,8,0" +) +xt "29000,13400,51000,15200" +st "dataBitNbRx = dataBitNbRx ( positive ) +dataBitNbTx = dataBitNbTx ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "dataBitNbRx" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "dataBitNbTx" +) +] +) +viewicon (ZoomableIcon +uid 250,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "29250,24250,30750,25750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*32 (Blk +uid 251,0 +shape (Rectangle +uid 252,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "29000,33000,37000,44000" +) +oxt "29000,30000,37000,41000" +ttg (MlTextGroup +uid 253,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 254,0 +va (VaSet +font "courier,8,1" +) +xt "29300,38500,32600,39500" +st "Memory" +blo "29300,39300" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 255,0 +va (VaSet +font "courier,8,1" +) +xt "29300,39500,48200,40500" +st "fifoBridgeRxToTxBusWidthAdaptionTxbigger" +blo "29300,40300" +tm "BlkNameMgr" +) +*35 (Text +uid 256,0 +va (VaSet +font "courier,8,1" +) +xt "29300,40500,33400,41500" +st "Txbigger0" +blo "29300,41300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 257,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 258,0 +text (MLText +uid 259,0 +va (VaSet +font "courier,8,0" +) +xt "29000,31400,51000,33200" +st "dataBitNbRx = dataBitNbRx ( positive ) +dataBitNbTx = dataBitNbTx ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "dataBitNbRx" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "dataBitNbTx" +) +] +) +viewicon (ZoomableIcon +uid 260,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "29250,42250,30750,43750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*36 (Frame +uid 416,0 +shape (RectFrame +uid 417,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "5000,30000,59000,45000" +) +title (TextAssociate +uid 418,0 +ps "TopLeftStrategy" +text (MLText +uid 419,0 +va (VaSet +) +xt "5350,28500,35950,29500" +st "g_txbigger0: IF dataBitNbTx > dataBitNbRx GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +uid 420,0 +ps "TopLeftStrategy" +shape (Rectangle +uid 421,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "5400,30300,6600,31700" +) +num (Text +uid 422,0 +va (VaSet +) +xt "5600,30500,6400,31500" +st "2" +blo "5600,31300" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +uid 423,0 +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 424,0 +va (VaSet +font "courier,8,1" +) +xt "53000,45000,60900,46000" +st "Frame Declarations" +blo "53000,45800" +) +*38 (MLText +uid 425,0 +va (VaSet +) +xt "53000,46000,53000,46000" +tm "BdFrameDeclTextMgr" +) +] +) +style 1 +) +*39 (Frame +uid 426,0 +shape (RectFrame +uid 427,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "5000,13000,59000,27000" +) +title (TextAssociate +uid 428,0 +ps "TopLeftStrategy" +text (MLText +uid 429,0 +va (VaSet +) +xt "5350,11500,36550,12500" +st "g_rxbigger0: IF dataBitNbRx >= dataBitNbTx GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +uid 430,0 +ps "TopLeftStrategy" +shape (Rectangle +uid 431,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "5400,13300,6600,14700" +) +num (Text +uid 432,0 +va (VaSet +) +xt "5600,13500,6400,14500" +st "1" +blo "5600,14300" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +uid 433,0 +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 434,0 +va (VaSet +font "courier,8,1" +) +xt "53000,27000,60900,28000" +st "Frame Declarations" +blo "53000,27800" +) +*41 (MLText +uid 435,0 +va (VaSet +) +xt "53000,28000,53000,28000" +tm "BdFrameDeclTextMgr" +) +] +) +style 1 +) +*42 (Wire +uid 15,0 +optionalChildren [ +*43 (BdJunction +uid 339,0 +ps "OnConnectorStrategy" +shape (Circle +uid 340,0 +va (VaSet +vasetType 1 +) +xt "41600,15600,42400,16400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "37000,16000,60000,16000" +pts [ +"60000,16000" +"37000,16000" +] +) +start &1 +end &28 +sat 32 +eat 2 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +isHidden 1 +) +xt "46000,15000,56000,16000" +st "dataTx : (dataBitNbTx-1:0)" +blo "46000,15800" +tm "WireNameMgr" +) +) +on &2 +) +*44 (Wire +uid 29,0 +optionalChildren [ +*45 (BdJunction +uid 331,0 +ps "OnConnectorStrategy" +shape (Circle +uid 332,0 +va (VaSet +vasetType 1 +) +xt "23600,15600,24400,16400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "0,16000,29000,16000" +pts [ +"0,16000" +"29000,16000" +] +) +start &3 +end &28 +sat 32 +eat 1 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +isHidden 1 +) +xt "2000,15000,12200,16000" +st "dataRx : (dataBitNbRx-1:0)" +blo "2000,15800" +tm "WireNameMgr" +) +) +on &4 +) +*46 (Wire +uid 43,0 +optionalChildren [ +*47 (BdJunction +uid 347,0 +ps "OnConnectorStrategy" +shape (Circle +uid 348,0 +va (VaSet +vasetType 1 +) +xt "42600,17600,43400,18400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "37000,18000,60000,18000" +pts [ +"60000,18000" +"37000,18000" +] +) +start &5 +end &28 +sat 32 +eat 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +isHidden 1 +) +xt "49000,17000,51200,18000" +st "fullTx" +blo "49000,17800" +tm "WireNameMgr" +) +) +on &6 +) +*48 (Wire +uid 57,0 +optionalChildren [ +*49 (BdJunction +uid 355,0 +ps "OnConnectorStrategy" +shape (Circle +uid 356,0 +va (VaSet +vasetType 1 +) +xt "43600,19600,44400,20400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +) +xt "37000,20000,60000,20000" +pts [ +"60000,20000" +"37000,20000" +] +) +start &7 +end &28 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +isHidden 1 +) +xt "46000,19000,48800,20000" +st "writeTx" +blo "46000,19800" +tm "WireNameMgr" +) +) +on &8 +) +*50 (Wire +uid 71,0 +optionalChildren [ +*51 (BdJunction +uid 323,0 +ps "OnConnectorStrategy" +shape (Circle +uid 324,0 +va (VaSet +vasetType 1 +) +xt "22600,17600,23400,18400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +) +xt "0,18000,29000,18000" +pts [ +"0,18000" +"29000,18000" +] +) +start &9 +end &28 +sat 32 +eat 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +isHidden 1 +) +xt "2000,17000,5200,18000" +st "emptyRx" +blo "2000,17800" +tm "WireNameMgr" +) +) +on &10 +) +*52 (Wire +uid 85,0 +optionalChildren [ +*53 (BdJunction +uid 283,0 +ps "OnConnectorStrategy" +shape (Circle +uid 284,0 +va (VaSet +vasetType 1 +) +xt "26600,47600,27400,48400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +) +xt "0,48000,65000,48000" +pts [ +"0,48000" +"65000,48000" +] +) +start &11 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +isHidden 1 +) +xt "2000,47000,4100,48000" +st "reset" +blo "2000,47800" +tm "WireNameMgr" +) +) +on &12 +) +*54 (Wire +uid 99,0 +optionalChildren [ +*55 (BdJunction +uid 315,0 +ps "OnConnectorStrategy" +shape (Circle +uid 316,0 +va (VaSet +vasetType 1 +) +xt "21600,19600,22400,20400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +) +xt "0,20000,29000,20000" +pts [ +"0,20000" +"29000,20000" +] +) +start &13 +end &28 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +isHidden 1 +) +xt "19000,19000,21800,20000" +st "readRx" +blo "19000,19800" +tm "WireNameMgr" +) +) +on &14 +) +*56 (Wire +uid 113,0 +optionalChildren [ +*57 (BdJunction +uid 299,0 +ps "OnConnectorStrategy" +shape (Circle +uid 300,0 +va (VaSet +vasetType 1 +) +xt "25600,46600,26400,47400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +) +xt "0,47000,65000,47000" +pts [ +"0,47000" +"65000,47000" +] +) +start &15 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +isHidden 1 +) +xt "2000,46000,4100,47000" +st "clock" +blo "2000,46800" +tm "WireNameMgr" +) +) +on &16 +) +*58 (Wire +uid 277,0 +optionalChildren [ +*59 (BdJunction +uid 291,0 +ps "OnConnectorStrategy" +shape (Circle +uid 292,0 +va (VaSet +vasetType 1 +) +xt "26600,41600,27400,42400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 278,0 +va (VaSet +vasetType 3 +) +xt "27000,24000,29000,48000" +pts [ +"27000,48000" +"27000,24000" +"29000,24000" +] +) +start &53 +end &28 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 281,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 282,0 +va (VaSet +) +xt "26000,23000,28100,24000" +st "reset" +blo "26000,23800" +tm "WireNameMgr" +) +) +on &12 +) +*60 (Wire +uid 285,0 +shape (OrthoPolyLine +uid 286,0 +va (VaSet +vasetType 3 +) +xt "27000,42000,29000,42000" +pts [ +"27000,42000" +"29000,42000" +] +) +start &59 +end &32 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 289,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 290,0 +va (VaSet +) +xt "26000,41000,28100,42000" +st "reset" +blo "26000,41800" +tm "WireNameMgr" +) +) +on &12 +) +*61 (Wire +uid 293,0 +optionalChildren [ +*62 (BdJunction +uid 307,0 +ps "OnConnectorStrategy" +shape (Circle +uid 308,0 +va (VaSet +vasetType 1 +) +xt "25600,39600,26400,40400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 294,0 +va (VaSet +vasetType 3 +) +xt "26000,22000,29000,47000" +pts [ +"26000,47000" +"26000,22000" +"29000,22000" +] +) +start &57 +end &28 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 297,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 298,0 +va (VaSet +) +xt "26000,21000,28100,22000" +st "clock" +blo "26000,21800" +tm "WireNameMgr" +) +) +on &16 +) +*63 (Wire +uid 301,0 +shape (OrthoPolyLine +uid 302,0 +va (VaSet +vasetType 3 +) +xt "26000,40000,29000,40000" +pts [ +"26000,40000" +"29000,40000" +] +) +start &62 +end &32 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 305,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 306,0 +va (VaSet +) +xt "26000,39000,28100,40000" +st "clock" +blo "26000,39800" +tm "WireNameMgr" +) +) +on &16 +) +*64 (Wire +uid 309,0 +shape (OrthoPolyLine +uid 310,0 +va (VaSet +vasetType 3 +) +xt "22000,20000,29000,38000" +pts [ +"22000,20000" +"22000,38000" +"29000,38000" +] +) +start &55 +end &32 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 313,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 314,0 +va (VaSet +) +xt "25000,37000,27800,38000" +st "readRx" +blo "25000,37800" +tm "WireNameMgr" +) +) +on &14 +) +*65 (Wire +uid 317,0 +shape (OrthoPolyLine +uid 318,0 +va (VaSet +vasetType 3 +) +xt "23000,18000,29000,36000" +pts [ +"23000,18000" +"23000,36000" +"29000,36000" +] +) +start &51 +end &32 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 321,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 322,0 +va (VaSet +) +xt "25000,35000,28200,36000" +st "emptyRx" +blo "25000,35800" +tm "WireNameMgr" +) +) +on &10 +) +*66 (Wire +uid 325,0 +shape (OrthoPolyLine +uid 326,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "24000,16000,29000,34000" +pts [ +"24000,16000" +"24000,34000" +"29000,34000" +] +) +start &45 +end &32 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 329,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 330,0 +va (VaSet +) +xt "25000,33000,27700,34000" +st "dataRx" +blo "25000,33800" +tm "WireNameMgr" +) +) +on &4 +) +*67 (Wire +uid 333,0 +shape (OrthoPolyLine +uid 334,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "37000,16000,42000,34000" +pts [ +"42000,16000" +"42000,34000" +"37000,34000" +] +) +start &43 +end &32 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 337,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 338,0 +va (VaSet +) +xt "39000,33000,41600,34000" +st "dataTx" +blo "39000,33800" +tm "WireNameMgr" +) +) +on &2 +) +*68 (Wire +uid 341,0 +shape (OrthoPolyLine +uid 342,0 +va (VaSet +vasetType 3 +) +xt "37000,18000,43000,36000" +pts [ +"43000,18000" +"43000,36000" +"37000,36000" +] +) +start &47 +end &32 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 345,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 346,0 +va (VaSet +) +xt "39000,35000,41200,36000" +st "fullTx" +blo "39000,35800" +tm "WireNameMgr" +) +) +on &6 +) +*69 (Wire +uid 349,0 +shape (OrthoPolyLine +uid 350,0 +va (VaSet +vasetType 3 +) +xt "37000,20000,44000,38000" +pts [ +"44000,20000" +"44000,38000" +"37000,38000" +] +) +start &49 +end &32 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 353,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 354,0 +va (VaSet +) +xt "39000,37000,41800,38000" +st "writeTx" +blo "39000,37800" +tm "WireNameMgr" +) +) +on &8 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *70 (PackageList +uid 173,0 +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +uid 174,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*72 (MLText +uid 175,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 176,0 +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +uid 177,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*74 (Text +uid 178,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*75 (MLText +uid 179,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*76 (Text +uid 180,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*77 (MLText +uid 181,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*78 (Text +uid 182,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*79 (MLText +uid 183,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "54,0,1681,1050" +viewArea "-19800,-14500,85125,52625" +cachedDiagramExtent "-7000,-5000,65800,48500" +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,-49000" +lastUid 917,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*81 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*82 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*84 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*85 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*87 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*88 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*90 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*91 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*93 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*94 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*95 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*96 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*98 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*100 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "20000,0,25400,1000" +st "Declarations" +blo "20000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "20000,1000,22700,2000" +st "Ports:" +blo "20000,1800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,23800,1000" +st "Pre User:" +blo "20000,800" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "20000,8400,27100,9400" +st "Diagram Signals:" +blo "20000,9200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,24700,1000" +st "Post User:" +blo "20000,800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 8,0 +usingSuid 1 +emptyRow *101 (LEmptyRow +) +uid 186,0 +optionalChildren [ +*102 (RefLabelRowHdr +) +*103 (TitleRowHdr +) +*104 (FilterRowHdr +) +*105 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*106 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*107 (GroupColHdr +tm "GroupColHdrMgr" +) +*108 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*109 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*110 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*111 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*112 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*113 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*114 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 121,0 +) +*115 (LeafLogPort +port (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 123,0 +) +*116 (LeafLogPort +port (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 125,0 +) +*117 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 127,0 +) +*118 (LeafLogPort +port (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 129,0 +) +*119 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 6,0 +) +) +uid 131,0 +) +*120 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 133,0 +) +*121 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 135,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 199,0 +optionalChildren [ +*122 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *123 (MRCItem +litem &101 +pos 8 +dimension 20 +) +uid 201,0 +optionalChildren [ +*124 (MRCItem +litem &102 +pos 0 +dimension 20 +uid 202,0 +) +*125 (MRCItem +litem &103 +pos 1 +dimension 23 +uid 203,0 +) +*126 (MRCItem +litem &104 +pos 2 +hidden 1 +dimension 20 +uid 204,0 +) +*127 (MRCItem +litem &114 +pos 1 +dimension 20 +uid 122,0 +) +*128 (MRCItem +litem &115 +pos 2 +dimension 20 +uid 124,0 +) +*129 (MRCItem +litem &116 +pos 4 +dimension 20 +uid 126,0 +) +*130 (MRCItem +litem &117 +pos 7 +dimension 20 +uid 128,0 +) +*131 (MRCItem +litem &118 +pos 3 +dimension 20 +uid 130,0 +) +*132 (MRCItem +litem &119 +pos 6 +dimension 20 +uid 132,0 +) +*133 (MRCItem +litem &120 +pos 5 +dimension 20 +uid 134,0 +) +*134 (MRCItem +litem &121 +pos 0 +dimension 20 +uid 136,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 205,0 +optionalChildren [ +*135 (MRCItem +litem &105 +pos 0 +dimension 20 +uid 206,0 +) +*136 (MRCItem +litem &107 +pos 1 +dimension 50 +uid 207,0 +) +*137 (MRCItem +litem &108 +pos 2 +dimension 100 +uid 208,0 +) +*138 (MRCItem +litem &109 +pos 3 +dimension 50 +uid 209,0 +) +*139 (MRCItem +litem &110 +pos 4 +dimension 100 +uid 210,0 +) +*140 (MRCItem +litem &111 +pos 5 +dimension 100 +uid 211,0 +) +*141 (MRCItem +litem &112 +pos 6 +dimension 50 +uid 212,0 +) +*142 (MRCItem +litem &113 +pos 7 +dimension 80 +uid 213,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 200,0 +vaOverrides [ +] +) +] +) +uid 185,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *143 (LEmptyRow +) +uid 215,0 +optionalChildren [ +*144 (RefLabelRowHdr +) +*145 (TitleRowHdr +) +*146 (FilterRowHdr +) +*147 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*148 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*149 (GroupColHdr +tm "GroupColHdrMgr" +) +*150 (NameColHdr +tm "GenericNameColHdrMgr" +) +*151 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*152 (InitColHdr +tm "GenericValueColHdrMgr" +) +*153 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*154 (EolColHdr +tm "GenericEolColHdrMgr" +) +*155 (LogGeneric +generic (GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +uid 137,0 +) +*156 (LogGeneric +generic (GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +uid 139,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 227,0 +optionalChildren [ +*157 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *158 (MRCItem +litem &143 +pos 2 +dimension 20 +) +uid 229,0 +optionalChildren [ +*159 (MRCItem +litem &144 +pos 0 +dimension 20 +uid 230,0 +) +*160 (MRCItem +litem &145 +pos 1 +dimension 23 +uid 231,0 +) +*161 (MRCItem +litem &146 +pos 2 +hidden 1 +dimension 20 +uid 232,0 +) +*162 (MRCItem +litem &155 +pos 0 +dimension 20 +uid 138,0 +) +*163 (MRCItem +litem &156 +pos 1 +dimension 20 +uid 140,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 233,0 +optionalChildren [ +*164 (MRCItem +litem &147 +pos 0 +dimension 20 +uid 234,0 +) +*165 (MRCItem +litem &149 +pos 1 +dimension 50 +uid 235,0 +) +*166 (MRCItem +litem &150 +pos 2 +dimension 100 +uid 236,0 +) +*167 (MRCItem +litem &151 +pos 3 +dimension 100 +uid 237,0 +) +*168 (MRCItem +litem &152 +pos 4 +dimension 50 +uid 238,0 +) +*169 (MRCItem +litem &153 +pos 5 +dimension 50 +uid 239,0 +) +*170 (MRCItem +litem &154 +pos 6 +dimension 80 +uid 240,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 228,0 +vaOverrides [ +] +) +] +) +uid 214,0 +type 1 +) +activeModelName "BlockDiag" +frameCount 2 +) diff --git a/Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb b/Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb new file mode 100644 index 0000000..344ccbd --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb @@ -0,0 +1,1810 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 1,0 +) +) +uid 148,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +uid 150,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 3,0 +) +) +uid 152,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 4,0 +) +) +uid 154,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 5,0 +) +) +uid 156,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 6,0 +) +) +uid 158,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 7,0 +) +) +uid 160,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 8,0 +) +) +uid 162,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 68,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 149,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 151,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 153,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 155,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 157,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 159,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 161,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 163,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +uid 188,0 +) +*56 (LogGeneric +generic (GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +uid 190,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 96,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 97,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 98,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 189,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 191,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 101,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 102,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 103,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 104,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 105,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 106,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeBusWidthAdaption" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridgeBusWidthAdaption" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridgeBusWidthAdaption" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeBusWidthAdaption/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "fifoBridgeBusWidthAdaption" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,21625,15000,22375" +) +tg (CPTG +uid 110,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 111,0 +va (VaSet +) +xt "16000,21500,18100,22500" +st "clock" +blo "16000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 112,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,58500,9200" +st "clock : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*73 (CptPort +uid 113,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 114,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,15625,23750,16375" +) +tg (CPTG +uid 115,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 116,0 +va (VaSet +) +xt "19400,15500,22000,16500" +st "dataTx" +ju 2 +blo "22000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 117,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,75000,2900" +st "dataTx : OUT std_ulogic_vector (dataBitNbTx-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*74 (CptPort +uid 118,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 119,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,15625,15000,16375" +) +tg (CPTG +uid 120,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 121,0 +va (VaSet +) +xt "16000,15500,18700,16500" +st "dataRx" +blo "16000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 122,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,75000,3800" +st "dataRx : IN std_ulogic_vector (dataBitNbRx-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 3,0 +) +) +) +*75 (CptPort +uid 123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 124,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,17625,15000,18375" +) +tg (CPTG +uid 125,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 126,0 +va (VaSet +) +xt "16000,17500,19200,18500" +st "emptyRx" +blo "16000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 127,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,59500,6500" +st "emptyRx : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*76 (CptPort +uid 128,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 129,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,17625,23750,18375" +) +tg (CPTG +uid 130,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 131,0 +va (VaSet +) +xt "19800,17500,22000,18500" +st "fullTx" +ju 2 +blo "22000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 132,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59500,4700" +st "fullTx : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 5,0 +) +) +) +*77 (CptPort +uid 133,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 134,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,19625,15000,20375" +) +tg (CPTG +uid 135,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 136,0 +va (VaSet +) +xt "16000,19500,18800,20500" +st "readRx" +blo "16000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 137,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,59500,8300" +st "readRx : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 6,0 +) +) +) +*78 (CptPort +uid 138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 139,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,23625,15000,24375" +) +tg (CPTG +uid 140,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 141,0 +va (VaSet +) +xt "16000,23500,18100,24500" +st "reset" +blo "16000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 142,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,59500,7400" +st "reset : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 7,0 +) +) +) +*79 (CptPort +uid 143,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 144,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,19625,23750,20375" +) +tg (CPTG +uid 145,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 146,0 +va (VaSet +) +xt "19200,19500,22000,20500" +st "writeTx" +ju 2 +blo "22000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 147,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,59500,5600" +st "writeTx : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 187,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,14000,23000,26000" +) +oxt "15000,6000,33000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "15600,26000,18600,26900" +st "Memory" +blo "15600,26700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "15600,26900,29100,27800" +st "fifoBridgeBusWidthAdaption" +blo "15600,27600" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "15000,10800,27500,14400" +st "Generic Declarations + +dataBitNbRx positive 1 +dataBitNbTx positive 1 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-27000,-1000,-10000,0" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-26800,-1000,-11800,0" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-10000,-5000,-6000,-4000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-9800,-5000,-6200,-4000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-27000,-3000,-10000,-2000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-26800,-3000,-10600,-2000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-31000,-3000,-27000,-2000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-30800,-3000,-27200,-2000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-10000,-4000,10000,0" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-9800,-3800,3400,-2800" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-6000,-5000,10000,-4000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-5800,-5000,-4000,-4000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-31000,-5000,-10000,-3000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "-25000,-4500,-16000,-3500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-31000,-2000,-27000,-1000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-30800,-2000,-27800,-1000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-31000,-1000,-27000,0" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-30800,-1000,-27200,0" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "-27000,-2000,-10000,-1000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "-26800,-2000,-16600,-1000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "-31000,-5000,10000,0" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*94 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "54,0,1681,1050" +viewArea "-39700,-13800,65825,53925" +cachedDiagramExtent "-31000,-5000,76500,28000" +hasePageBreakOrigin 1 +pageBreakOrigin "-31000,-49000" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,9200,44500,10100" +st "User:" +blo "42000,9900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,44000,10100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 308,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb b/Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb new file mode 100644 index 0000000..de73111 --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb @@ -0,0 +1,1875 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2008,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 309,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "wr2" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 310,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 311,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "full2" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 312,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rd1" +t "std_ulogic" +o 8 +suid 8,0 +) +) +uid 313,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "data1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 7,0 +) +) +uid 314,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 315,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "empty1" +t "std_ulogic" +o 7 +suid 6,0 +) +) +uid 316,0 +) +*9 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "data2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 317,0 +) +*10 (RefLabelRowHdr +) +*11 (TitleRowHdr +) +*12 (FilterRowHdr +) +*13 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*14 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*15 (GroupColHdr +tm "GroupColHdrMgr" +) +*16 (NameColHdr +tm "NameColHdrMgr" +) +*17 (ModeColHdr +tm "ModeColHdrMgr" +) +*18 (TypeColHdr +tm "TypeColHdrMgr" +) +*19 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*20 (InitColHdr +tm "InitColHdrMgr" +) +*21 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 318,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 245,0 +optionalChildren [ +*24 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 248,0 +) +*25 (MRCItem +litem &11 +pos 1 +dimension 23 +uid 250,0 +) +*26 (MRCItem +litem &12 +pos 2 +hidden 1 +dimension 20 +uid 252,0 +) +*27 (MRCItem +litem &2 +pos 4 +dimension 20 +uid 271,0 +) +*28 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 272,0 +) +*29 (MRCItem +litem &4 +pos 3 +dimension 20 +uid 273,0 +) +*30 (MRCItem +litem &5 +pos 7 +dimension 20 +uid 274,0 +) +*31 (MRCItem +litem &6 +pos 5 +dimension 20 +uid 275,0 +) +*32 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 276,0 +) +*33 (MRCItem +litem &8 +pos 6 +dimension 20 +uid 277,0 +) +*34 (MRCItem +litem &9 +pos 2 +dimension 20 +uid 278,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 246,0 +optionalChildren [ +*35 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 254,0 +) +*36 (MRCItem +litem &15 +pos 1 +dimension 50 +uid 258,0 +) +*37 (MRCItem +litem &16 +pos 2 +dimension 100 +uid 260,0 +) +*38 (MRCItem +litem &17 +pos 3 +dimension 50 +uid 262,0 +) +*39 (MRCItem +litem &18 +pos 4 +dimension 100 +uid 264,0 +) +*40 (MRCItem +litem &19 +pos 5 +dimension 100 +uid 266,0 +) +*41 (MRCItem +litem &20 +pos 6 +dimension 50 +uid 268,0 +) +*42 (MRCItem +litem &21 +pos 7 +dimension 80 +uid 270,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 244,0 +vaOverrides [ +] +) +] +) +uid 308,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 304,0 +) +*56 (LogGeneric +generic (GiElement +name "fifoDepth" +type "positive" +value "8" +) +uid 305,0 +) +*57 (LogGeneric +generic (GiElement +name "firstWordFallThrough" +type "boolean" +value "false" +e "first byte written into the FIFO immediately appears on the output" +) +uid 370,0 +) +] +) +pdm (PhysicalDM +uid 321,0 +optionalChildren [ +*58 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *59 (MRCItem +litem &43 +pos 3 +dimension 20 +) +uid 280,0 +optionalChildren [ +*60 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 283,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 285,0 +) +*62 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 287,0 +) +*63 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 306,0 +) +*64 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 307,0 +) +*65 (MRCItem +litem &57 +pos 2 +dimension 20 +uid 371,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 281,0 +optionalChildren [ +*66 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 289,0 +) +*67 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 293,0 +) +*68 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 295,0 +) +*69 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 297,0 +) +*70 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 299,0 +) +*71 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 301,0 +) +*72 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 303,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 279,0 +vaOverrides [ +] +) +] +) +uid 319,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeRxToTx" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridgeRxToTx" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridgeRxToTx" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeRxToTx/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:14" +) +(vvPair +variable "unit" +value "fifoBridgeRxToTx" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,21625,35000,22375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +font "courier,9,0" +) +xt "36000,21400,39400,22600" +st "clock" +blo "36000,22400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,17000,8700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*75 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,23625,35000,24375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +font "courier,9,0" +) +xt "36000,23400,39300,24600" +st "reset" +blo "36000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,17000,9600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*76 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 322,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,13625,51750,14375" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +va (VaSet +font "courier,9,0" +) +xt "46400,13400,50000,14600" +st "data2" +ju 2 +blo "50000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,31500,10500" +st "data2 : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "data2" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*77 (CptPort +uid 198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 241,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,15625,51750,16375" +) +tg (CPTG +uid 200,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 201,0 +va (VaSet +font "courier,9,0" +) +xt "47100,15400,50000,16600" +st "full2" +ju 2 +blo "50000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 202,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,17000,11400" +st "full2 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "full2" +t "std_ulogic" +o 4 +suid 4,0 +) +) +) +*78 (CptPort +uid 208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 243,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,17625,51750,18375" +) +tg (CPTG +uid 210,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 211,0 +va (VaSet +font "courier,9,0" +) +xt "47500,17400,50000,18600" +st "wr2" +ju 2 +blo "50000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 212,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17000,12300" +st "wr2 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "wr2" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*79 (CptPort +uid 215,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 216,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,15625,35000,16375" +) +tg (CPTG +uid 217,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 218,0 +va (VaSet +font "courier,9,0" +) +xt "36000,15400,40500,16600" +st "empty1" +blo "36000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 219,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,17000,14100" +st "empty1 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "empty1" +t "std_ulogic" +o 7 +suid 6,0 +) +) +) +*80 (CptPort +uid 220,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 323,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,13625,35000,14375" +) +tg (CPTG +uid 222,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 223,0 +va (VaSet +font "courier,9,0" +) +xt "36000,13400,39600,14600" +st "data1" +blo "36000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 224,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,31500,13200" +st "data1 : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "data1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 7,0 +) +) +) +*81 (CptPort +uid 230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 231,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,17625,35000,18375" +) +tg (CPTG +uid 232,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 233,0 +va (VaSet +font "courier,9,0" +) +xt "36000,17400,38400,18600" +st "rd1" +blo "36000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 234,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,16000,15000" +st "rd1 : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "rd1" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,10000,51000,26000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "35600,25800,38600,26700" +st "Memory" +blo "35600,26500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "35600,26700,44100,27600" +st "fifoBridgeRxToTx" +blo "35600,27400" +) +) +gi *82 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "35000,28800,88000,33300" +st "Generic Declarations + +dataBitNb positive 8 +fifoDepth positive 8 +firstWordFallThrough boolean false --first byte written into the FIFO immediately appears on the output " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "fifoDepth" +type "positive" +value "8" +) +(GiElement +name "firstWordFallThrough" +type "boolean" +value "false" +e "first byte written into the FIFO immediately appears on the output" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*83 (Grouping +uid 16,0 +optionalChildren [ +*84 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*89 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *94 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*95 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*96 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-1428,42,-414,976" +viewArea "-1000,-1000,72284,71447" +cachedDiagramExtent "0,0,89500,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *97 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *98 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,5400,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,2700,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15000,2500,15900" +st "User:" +blo "0,15700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,5800,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,2000,15900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 394,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface b/Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface new file mode 100644 index 0000000..841657b --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface @@ -0,0 +1,1823 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 32,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 109,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 25,0 +) +) +uid 504,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 26,0 +) +) +uid 506,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 27,0 +) +) +uid 508,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 28,0 +) +) +uid 510,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 29,0 +) +) +uid 512,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 30,0 +) +) +uid 514,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 31,0 +) +) +uid 516,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 32,0 +) +) +uid 518,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 124,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 125,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 126,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 505,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 507,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 509,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 511,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 513,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 515,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 517,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 519,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 130,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 131,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 132,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 133,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 134,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 135,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 136,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 108,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 138,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +uid 187,0 +) +*56 (LogGeneric +generic (GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +uid 189,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 152,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 153,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 154,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 188,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 190,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 157,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 158,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 159,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 160,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 161,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 162,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 163,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 137,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeRxToTxBusWidthAdaptionRxBigger" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridgeRxToTxBusWidthAdaptionRxBigger" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_LIBS_DIR/Memory/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridgeRxToTxBusWidthAdaptionRxBigger" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@rx@bigger/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeRxToTxBusWidthAdaptionRxBigger/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$DESIGN_SCRATCH_DIR\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "fifoBridgeRxToTxBusWidthAdaptionRxBigger" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 107,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 465,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,12625,15000,13375" +) +tg (CPTG +uid 466,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 467,0 +va (VaSet +font "courier,8,0" +) +xt "16000,12550,18500,13450" +st "clock" +blo "16000,13250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 468,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,59500,2900" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 25,0 +) +) +) +*73 (CptPort +uid 469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 470,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,6625,15000,7375" +) +tg (CPTG +uid 471,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 472,0 +va (VaSet +font "courier,8,0" +) +xt "16000,6550,19000,7450" +st "dataRx" +blo "16000,7250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 473,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,75000,3800" +st "dataRx : IN std_ulogic_vector (dataBitNbRx-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 26,0 +) +) +) +*74 (CptPort +uid 474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 475,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,6625,23750,7375" +) +tg (CPTG +uid 476,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 477,0 +va (VaSet +font "courier,8,0" +) +xt "19000,6550,22000,7450" +st "dataTx" +ju 2 +blo "22000,7250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 478,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,75000,7400" +st "dataTx : OUT std_ulogic_vector (dataBitNbTx-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 27,0 +) +) +) +*75 (CptPort +uid 479,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 480,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,8625,15000,9375" +) +tg (CPTG +uid 481,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 482,0 +va (VaSet +font "courier,8,0" +) +xt "16000,8550,19500,9450" +st "emptyRx" +blo "16000,9250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 483,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59500,4700" +st "emptyRx : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*76 (CptPort +uid 484,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 485,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,8625,23750,9375" +) +tg (CPTG +uid 486,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 487,0 +va (VaSet +font "courier,8,0" +) +xt "19000,8550,22000,9450" +st "fullTx" +ju 2 +blo "22000,9250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 488,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,59500,5600" +st "fullTx : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 29,0 +) +) +) +*77 (CptPort +uid 489,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 490,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 491,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 492,0 +va (VaSet +font "courier,8,0" +) +xt "16000,10550,19000,11450" +st "readRx" +blo "16000,11250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 493,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,59500,8300" +st "readRx : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*78 (CptPort +uid 494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 495,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,14625,15000,15375" +) +tg (CPTG +uid 496,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 497,0 +va (VaSet +font "courier,8,0" +) +xt "16000,14550,18500,15450" +st "reset" +blo "16000,15250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 498,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,59500,6500" +st "reset : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 31,0 +) +) +) +*79 (CptPort +uid 499,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 500,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,10625,23750,11375" +) +tg (CPTG +uid 501,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 502,0 +va (VaSet +font "courier,8,0" +) +xt "18500,10550,22000,11450" +st "writeTx" +ju 2 +blo "22000,11250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 503,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,58500,9200" +st "writeTx : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 32,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,23000,17000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "8750,10600,11750,11500" +st "Memory" +blo "8750,11300" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "8750,11500,29250,12400" +st "fifoBridgeRxToTxBusWidthAdaptionRxBigger" +blo "8750,12200" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "-5000,7500,7500,11100" +st "Generic Declarations + +dataBitNbRx positive 1 +dataBitNbTx positive 1 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*94 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-1680,156,-663,846" +viewArea "-500,-500,71230,48370" +cachedDiagramExtent "-5000,0,76500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-6000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory" +entityName "fifoBridgeBusWidthAdaption" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,9200,44500,10100" +st "User:" +blo "42000,9900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,44000,10100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 519,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface b/Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface new file mode 100644 index 0000000..e2805d9 --- /dev/null +++ b/Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface @@ -0,0 +1,1823 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 40,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 109,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 33,0 +) +) +uid 583,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 34,0 +) +) +uid 585,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 35,0 +) +) +uid 587,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 36,0 +) +) +uid 589,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 37,0 +) +) +uid 591,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 38,0 +) +) +uid 593,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 39,0 +) +) +uid 595,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 40,0 +) +) +uid 597,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 124,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 125,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 126,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 584,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 586,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 588,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 590,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 592,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 594,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 596,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 598,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 130,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 131,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 132,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 133,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 134,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 135,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 136,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 108,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 138,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +uid 187,0 +) +*56 (LogGeneric +generic (GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +uid 189,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 152,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 153,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 154,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 188,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 190,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 157,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 158,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 159,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 160,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 161,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 162,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 163,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 137,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeRxToTxBusWidthAdaptionTxbigger" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifoBridgeRxToTxBusWidthAdaptionTxbigger" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_LIBS_DIR/Memory/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifoBridgeRxToTxBusWidthAdaptionTxbigger" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifo@bridge@rx@to@tx@bus@width@adaption@txbigger/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/fifoBridgeRxToTxBusWidthAdaptionTxbigger/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$DESIGN_SCRATCH_DIR\\$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "fifoBridgeRxToTxBusWidthAdaptionTxbigger" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 107,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 543,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 544,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,12625,15000,13375" +) +tg (CPTG +uid 545,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 546,0 +va (VaSet +font "courier,8,0" +) +xt "16000,12550,18500,13450" +st "clock" +blo "16000,13250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 547,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,59500,2900" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 8 +suid 33,0 +) +) +) +*73 (CptPort +uid 548,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 549,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,6625,15000,7375" +) +tg (CPTG +uid 550,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 551,0 +va (VaSet +font "courier,8,0" +) +xt "16000,6550,19000,7450" +st "dataRx" +blo "16000,7250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 552,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,75000,3800" +st "dataRx : IN std_ulogic_vector (dataBitNbRx-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "dataRx" +t "std_ulogic_vector" +b "(dataBitNbRx-1 DOWNTO 0)" +o 2 +suid 34,0 +) +) +) +*74 (CptPort +uid 553,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 554,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,6625,23750,7375" +) +tg (CPTG +uid 555,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 556,0 +va (VaSet +font "courier,8,0" +) +xt "19000,6550,22000,7450" +st "dataTx" +ju 2 +blo "22000,7250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 557,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,75000,7400" +st "dataTx : OUT std_ulogic_vector (dataBitNbTx-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataTx" +t "std_ulogic_vector" +b "(dataBitNbTx-1 DOWNTO 0)" +o 1 +suid 35,0 +) +) +) +*75 (CptPort +uid 558,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 559,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,8625,15000,9375" +) +tg (CPTG +uid 560,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 561,0 +va (VaSet +font "courier,8,0" +) +xt "16000,8550,19500,9450" +st "emptyRx" +blo "16000,9250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 562,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59500,4700" +st "emptyRx : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "emptyRx" +t "std_ulogic" +o 5 +suid 36,0 +) +) +) +*76 (CptPort +uid 563,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 564,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,8625,23750,9375" +) +tg (CPTG +uid 565,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 566,0 +va (VaSet +font "courier,8,0" +) +xt "19000,8550,22000,9450" +st "fullTx" +ju 2 +blo "22000,9250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 567,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,59500,5600" +st "fullTx : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "fullTx" +t "std_ulogic" +o 3 +suid 37,0 +) +) +) +*77 (CptPort +uid 568,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 569,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 570,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 571,0 +va (VaSet +font "courier,8,0" +) +xt "16000,10550,19000,11450" +st "readRx" +blo "16000,11250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 572,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,59500,8300" +st "readRx : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readRx" +t "std_ulogic" +o 7 +suid 38,0 +) +) +) +*78 (CptPort +uid 573,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 574,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,14625,15000,15375" +) +tg (CPTG +uid 575,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 576,0 +va (VaSet +font "courier,8,0" +) +xt "16000,14550,18500,15450" +st "reset" +blo "16000,15250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 577,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,59500,6500" +st "reset : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 6 +suid 39,0 +) +) +) +*79 (CptPort +uid 578,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 579,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,10625,23750,11375" +) +tg (CPTG +uid 580,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 581,0 +va (VaSet +font "courier,8,0" +) +xt "18500,10550,22000,11450" +st "writeTx" +ju 2 +blo "22000,11250" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 582,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,58500,9200" +st "writeTx : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeTx" +t "std_ulogic" +o 4 +suid 40,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,23000,17000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "8750,10600,11750,11500" +st "Memory" +blo "8750,11300" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "8750,11500,29250,12400" +st "fifoBridgeRxToTxBusWidthAdaptionTxbigger" +blo "8750,12200" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "-5000,7500,7500,11100" +st "Generic Declarations + +dataBitNbRx positive 1 +dataBitNbTx positive 1 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNbRx" +type "positive" +value "1" +) +(GiElement +name "dataBitNbTx" +type "positive" +value "1" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*94 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "200,185,1217,875" +viewArea "-500,-500,71230,48370" +cachedDiagramExtent "-5000,0,76500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-6000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory" +entityName "fifoBridgeBusWidthAdaption" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,9200,44500,10100" +st "User:" +blo "42000,9900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,44000,10100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 598,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/flash@controller/symbol.sb b/Libs/Memory/hds/flash@controller/symbol.sb new file mode 100644 index 0000000..2795c5f --- /dev/null +++ b/Libs/Memory/hds/flash@controller/symbol.sb @@ -0,0 +1,2518 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 44,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 186,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 20,0 +) +) +uid 397,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 14 +suid 21,0 +) +) +uid 399,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 22,0 +) +) +uid 401,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 23,0 +) +) +uid 403,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +uid 405,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 25,0 +) +) +uid 407,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 26,0 +) +) +uid 409,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 27,0 +) +) +uid 411,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "flashEn" +t "std_ulogic" +o 5 +suid 28,0 +) +) +uid 413,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "flashRd" +t "std_ulogic" +o 6 +suid 29,0 +) +) +uid 415,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "flashWr" +t "std_ulogic" +o 7 +suid 30,0 +) +) +uid 417,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 31,0 +) +) +uid 419,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memRst_n" +t "std_ulogic" +o 15 +suid 33,0 +) +) +uid 423,0 +) +*27 (LogPort +port (LogicalPort +decl (Decl +n "flashSTS" +t "std_ulogic" +o 16 +suid 34,0 +) +) +uid 425,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashCE_n" +t "std_ulogic" +o 9 +suid 35,0 +) +) +uid 427,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memOE_n" +t "std_ulogic" +o 17 +suid 36,0 +) +) +uid 429,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 42,0 +) +) +uid 492,0 +) +*31 (LogPort +port (LogicalPort +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 18 +suid 44,0 +) +) +uid 726,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 199,0 +optionalChildren [ +*32 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *33 (MRCItem +litem &1 +pos 18 +dimension 20 +) +uid 201,0 +optionalChildren [ +*34 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 202,0 +) +*35 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 203,0 +) +*36 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 204,0 +) +*37 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 398,0 +) +*38 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 400,0 +) +*39 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 402,0 +) +*40 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 404,0 +) +*41 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 406,0 +) +*42 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 408,0 +) +*43 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 410,0 +) +*44 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 412,0 +) +*45 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 414,0 +) +*46 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 416,0 +) +*47 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 418,0 +) +*48 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 420,0 +) +*49 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 424,0 +) +*50 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 426,0 +) +*51 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 428,0 +) +*52 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 430,0 +) +*53 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 493,0 +) +*54 (MRCItem +litem &31 +pos 17 +dimension 20 +uid 727,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 205,0 +optionalChildren [ +*55 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 206,0 +) +*56 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 207,0 +) +*57 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 208,0 +) +*58 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 209,0 +) +*59 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 210,0 +) +*60 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 211,0 +) +*61 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 212,0 +) +*62 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 213,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 200,0 +vaOverrides [ +] +) +] +) +uid 185,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *63 (LEmptyRow +) +uid 215,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "GenericNameColHdrMgr" +) +*71 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*72 (InitColHdr +tm "GenericValueColHdrMgr" +) +*73 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*74 (EolColHdr +tm "GenericEolColHdrMgr" +) +*75 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 542,0 +) +*76 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 544,0 +) +*77 (LogGeneric +generic (GiElement +name "chipAddressBitNb" +type "positive" +value "24" +) +uid 649,0 +) +*78 (LogGeneric +generic (GiElement +name "rdWaitState" +type "positive" +value "10" +e "< 66MHz * 160ns = 10.56" +) +uid 751,0 +) +*79 (LogGeneric +generic (GiElement +name "wrWaitState" +type "positive" +value "6" +e "> 66MHz * 90ns = 5.94" +) +uid 753,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 227,0 +optionalChildren [ +*80 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *81 (MRCItem +litem &63 +pos 5 +dimension 20 +) +uid 229,0 +optionalChildren [ +*82 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 230,0 +) +*83 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 231,0 +) +*84 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 232,0 +) +*85 (MRCItem +litem &75 +pos 0 +dimension 20 +uid 543,0 +) +*86 (MRCItem +litem &76 +pos 1 +dimension 20 +uid 545,0 +) +*87 (MRCItem +litem &77 +pos 2 +dimension 20 +uid 650,0 +) +*88 (MRCItem +litem &78 +pos 3 +dimension 20 +uid 752,0 +) +*89 (MRCItem +litem &79 +pos 4 +dimension 20 +uid 754,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 233,0 +optionalChildren [ +*90 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 234,0 +) +*91 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 235,0 +) +*92 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 236,0 +) +*93 (MRCItem +litem &71 +pos 3 +dimension 100 +uid 237,0 +) +*94 (MRCItem +litem &72 +pos 4 +dimension 50 +uid 238,0 +) +*95 (MRCItem +litem &73 +pos 5 +dimension 50 +uid 239,0 +) +*96 (MRCItem +litem &74 +pos 6 +dimension 157 +uid 240,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 228,0 +vaOverrides [ +] +) +] +) +uid 214,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/flash@controller/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/flash@controller/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/flash@controller" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/flashController" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "flashController" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flashController" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/flash@controller/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/flashController/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:14" +) +(vvPair +variable "unit" +value "flashController" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 184,0 +optionalChildren [ +*97 (SymbolBody +uid 8,0 +optionalChildren [ +*98 (CptPort +uid 287,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 288,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,26625,37000,27375" +) +tg (CPTG +uid 289,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 290,0 +va (VaSet +) +xt "38000,26500,40100,27500" +st "clock" +blo "38000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 291,0 +va (VaSet +font "courier,8,0" +) +xt "0,12400,19000,13300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 20,0 +) +) +) +*99 (CptPort +uid 292,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 517,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,18625,37000,19375" +) +tg (CPTG +uid 294,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 295,0 +va (VaSet +) +xt "38000,18500,43700,19500" +st "flashDataValid" +blo "38000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 296,0 +va (VaSet +font "courier,8,0" +) +xt "0,23200,19000,24100" +st "flashDataValid : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 14 +suid 21,0 +) +) +) +*100 (CptPort +uid 297,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 298,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,8625,37000,9375" +) +tg (CPTG +uid 299,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 300,0 +va (VaSet +) +xt "38000,8500,41600,9500" +st "flashAddr" +blo "38000,9300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 301,0 +va (VaSet +font "courier,8,0" +) +xt "0,13300,30500,14200" +st "flashAddr : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 22,0 +) +) +) +*101 (CptPort +uid 302,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 303,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,8625,53750,9375" +) +tg (CPTG +uid 304,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 305,0 +va (VaSet +) +xt "46800,8500,52000,9500" +st "memAddress" +ju 2 +blo "52000,9300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 306,0 +va (VaSet +font "courier,8,0" +) +xt "0,24100,38000,25000" +st "memAddress : OUT std_ulogic_vector ( chipAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 23,0 +) +) +) +*102 (CptPort +uid 307,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 308,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,12625,37000,13375" +) +tg (CPTG +uid 309,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 310,0 +va (VaSet +) +xt "38000,12500,43200,13500" +st "flashDataOut" +blo "38000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 311,0 +va (VaSet +font "courier,8,0" +) +xt "0,14200,33500,15100" +st "flashDataOut : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +) +*103 (CptPort +uid 312,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 313,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,10625,53750,11375" +) +tg (CPTG +uid 314,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 315,0 +va (VaSet +) +xt "47800,10500,52000,11500" +st "memDataIn" +ju 2 +blo "52000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 316,0 +va (VaSet +font "courier,8,0" +) +xt "0,19600,33500,20500" +st "memDataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 25,0 +) +) +) +*104 (CptPort +uid 317,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 318,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,12625,53750,13375" +) +tg (CPTG +uid 319,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 320,0 +va (VaSet +) +xt "46800,12500,52000,13500" +st "memDataOut" +ju 2 +blo "52000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 321,0 +va (VaSet +font "courier,8,0" +) +xt "0,25000,33500,25900" +st "memDataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 26,0 +) +) +) +*105 (CptPort +uid 322,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 323,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,16625,53750,17375" +) +tg (CPTG +uid 324,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 325,0 +va (VaSet +) +xt "48200,16500,52000,17500" +st "memWr_n" +ju 2 +blo "52000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 326,0 +va (VaSet +font "courier,8,0" +) +xt "0,27700,18000,28600" +st "memWr_n : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 27,0 +) +) +) +*106 (CptPort +uid 327,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 328,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,24625,37000,25375" +) +tg (CPTG +uid 329,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 330,0 +va (VaSet +) +xt "38000,24500,40900,25500" +st "flashEn" +blo "38000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 331,0 +va (VaSet +font "courier,8,0" +) +xt "0,15100,19000,16000" +st "flashEn : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "flashEn" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*107 (CptPort +uid 332,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 333,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,14625,37000,15375" +) +tg (CPTG +uid 334,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 335,0 +va (VaSet +) +xt "38000,14500,41000,15500" +st "flashRd" +blo "38000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 336,0 +va (VaSet +font "courier,8,0" +) +xt "0,16000,19000,16900" +st "flashRd : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "flashRd" +t "std_ulogic" +o 6 +suid 29,0 +) +) +) +*108 (CptPort +uid 337,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 338,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,16625,37000,17375" +) +tg (CPTG +uid 339,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 340,0 +va (VaSet +) +xt "38000,16500,41000,17500" +st "flashWr" +blo "38000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 341,0 +va (VaSet +font "courier,8,0" +) +xt "0,17800,19000,18700" +st "flashWr : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "flashWr" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*109 (CptPort +uid 342,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 343,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,28625,37000,29375" +) +tg (CPTG +uid 344,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 345,0 +va (VaSet +) +xt "38000,28500,40100,29500" +st "reset" +blo "38000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 346,0 +va (VaSet +font "courier,8,0" +) +xt "0,20500,19000,21400" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 31,0 +) +) +) +*110 (CptPort +uid 352,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 353,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,20625,53750,21375" +) +tg (CPTG +uid 354,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 355,0 +va (VaSet +) +xt "48000,20500,52000,21500" +st "memRst_n" +ju 2 +blo "52000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 356,0 +va (VaSet +font "courier,8,0" +) +xt "0,26800,19000,27700" +st "memRst_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memRst_n" +t "std_ulogic" +o 15 +suid 33,0 +) +) +) +*111 (CptPort +uid 357,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 674,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,22625,53750,23375" +) +tg (CPTG +uid 359,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 360,0 +va (VaSet +) +xt "48500,22500,52000,23500" +st "flashSTS" +ju 2 +blo "52000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 361,0 +va (VaSet +font "courier,8,0" +) +xt "0,16900,19000,17800" +st "flashSTS : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "flashSTS" +t "std_ulogic" +o 16 +suid 34,0 +) +) +) +*112 (CptPort +uid 362,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 363,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,14625,53750,15375" +) +tg (CPTG +uid 364,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 365,0 +va (VaSet +) +xt "48100,14500,52000,15500" +st "flashCE_n" +ju 2 +blo "52000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 366,0 +va (VaSet +font "courier,8,0" +) +xt "0,21400,19000,22300" +st "flashCE_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashCE_n" +t "std_ulogic" +o 9 +suid 35,0 +) +) +) +*113 (CptPort +uid 367,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 368,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,18625,53750,19375" +) +tg (CPTG +uid 369,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 370,0 +va (VaSet +) +xt "48100,18500,52000,19500" +st "memOE_n" +ju 2 +blo "52000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 371,0 +va (VaSet +font "courier,8,0" +) +xt "0,25900,19000,26800" +st "memOE_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memOE_n" +t "std_ulogic" +o 17 +suid 36,0 +) +) +) +*114 (CptPort +uid 487,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 518,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,10625,37000,11375" +) +tg (CPTG +uid 489,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 490,0 +va (VaSet +) +xt "38000,10500,42600,11500" +st "flashDataIn" +blo "38000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 491,0 +va (VaSet +font "courier,8,0" +) +xt "0,22300,33500,23200" +st "flashDataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 42,0 +) +) +) +*115 (CptPort +uid 721,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 722,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,22625,37000,23375" +) +tg (CPTG +uid 723,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 724,0 +va (VaSet +) +xt "38000,22500,43400,23500" +st "memBusEn_n" +blo "38000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 725,0 +va (VaSet +font "courier,8,0" +) +xt "0,18700,19000,19600" +st "memBusEn_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 18 +suid 44,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,5000,53000,31000" +) +oxt "15000,6000,31000,34000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "37550,31500,40550,32400" +st "Memory" +blo "37550,32200" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "37550,32400,45550,33300" +st "flashController" +blo "37550,33100" +) +) +gi *116 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "37000,35200,65000,41500" +st "Generic Declarations + +addressBitNb positive 24 +dataBitNb positive 16 +chipAddressBitNb positive 24 +rdWaitState positive 10 --< 66MHz * 160ns = 10.56 +wrWaitState positive 6 --> 66MHz * 90ns = 5.94 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "24" +) +(GiElement +name "rdWaitState" +type "positive" +value "10" +e "< 66MHz * 160ns = 10.56" +) +(GiElement +name "wrWaitState" +type "positive" +value "6" +e "> 66MHz * 90ns = 5.94" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*117 (Grouping +uid 16,0 +optionalChildren [ +*118 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,49200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*119 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*120 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*121 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*122 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*123 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*124 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*125 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*126 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*127 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,48600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *128 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*129 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*130 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "38,97,1401,992" +viewArea "-3000,-1000,73045,48580" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *131 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *132 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,10400,3400,11400" +st "Declarations" +blo "-2000,11200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,11400,700,12400" +st "Ports:" +blo "-2000,12200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,28600,500,29500" +st "User:" +blo "-2000,29300" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,10400,3800,11400" +st "Internal User:" +blo "-2000,11200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,29500,0,29500" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,10400,-2000,10400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 800,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/sdram@controller/struct.bd b/Libs/Memory/hds/sdram@controller/struct.bd new file mode 100644 index 0000000..d8adef0 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller/struct.bd @@ -0,0 +1,9775 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "U_5" +duLibraryName "memory" +duName "sdramControllerSR" +elements [ +] +mwi 0 +uid 2332,0 +) +(Instance +name "U_6" +duLibraryName "memory" +duName "sdramControllerSR" +elements [ +] +mwi 0 +uid 2398,0 +) +(Instance +name "U_2" +duLibraryName "memory" +duName "sdramControllerTimingsShiftRegister" +elements [ +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "maxDelayPeriodNb" +) +] +mwi 0 +uid 3238,0 +) +(Instance +name "U_4" +duLibraryName "memory" +duName "sdramControllerStoreData" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 3306,0 +) +(Instance +name "U_7" +duLibraryName "memory" +duName "sdramControllerSampleDataIn" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 3336,0 +) +(Instance +name "U_1" +duLibraryName "memory" +duName "sdramControllerRefreshCounter" +elements [ +(GiElement +name "delayCounterBitNb" +type "positive" +value "delayCounterBitNb" +) +(GiElement +name "refreshPeriodNb" +type "positive" +value "refreshPeriodNb" +) +] +mwi 0 +uid 3568,0 +) +(Instance +name "U_3" +duLibraryName "memory" +duName "sdramControllerBuildAddress" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "chipAddressBitNb" +) +(GiElement +name "chipBankAddressBitNb" +type "positive" +value "chipBankAddressBitNb" +) +(GiElement +name "rowAddressBitNb" +type "positive" +value "rowAddressBitNb" +) +(GiElement +name "colAddressBitNb" +type "positive" +value "colAddressBitNb" +) +] +mwi 0 +uid 3925,0 +) +(Instance +name "U_0" +duLibraryName "memory" +duName "sdramControllerFsm" +elements [ +(GiElement +name "commandBusBitNb" +type "positive" +value "commandBusBitNb" +) +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "maxDelayPeriodNb" +) +(GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +(GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +(GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +(GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +(GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +(GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +] +mwi 0 +uid 4230,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramController" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sdramController" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramController" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramController/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "sdramController" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 356,0 +optionalChildren [ +*1 (PortIoOut +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 270 +xt "162500,36625,164000,37375" +) +(Line +uid 54,0 +sl 0 +ro 270 +xt "162000,37000,162500,37000" +pts [ +"162000,37000" +"162500,37000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "165000,36300,174700,37700" +st "memAddress" +blo "165000,37500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 63,0 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,82200,26500,83100" +st "memAddress : std_ulogic_vector( chipAddressBitNb-1 DOWNTO 0 )" +) +) +*3 (PortIoIn +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 90 +xt "83500,75625,85000,76375" +) +(Line +uid 82,0 +sl 0 +ro 90 +xt "83000,76000,83500,76000" +pts [ +"83500,76000" +"83000,76000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "86000,75300,94100,76700" +st "memDataIn" +blo "86000,76500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 91,0 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,73800,22000,74700" +st "memDataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*5 (PortIoOut +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "162500,60625,164000,61375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "162000,61000,162500,61000" +pts [ +"162000,61000" +"162500,61000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "165000,60300,174900,61700" +st "memDataOut" +blo "165000,61500" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 105,0 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,84600,22000,85500" +st "memDataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*7 (PortIoOut +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "122500,82625,124000,83375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "122000,83000,122500,83000" +pts [ +"122000,83000" +"122500,83000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "125000,82300,132200,83700" +st "memWr_n" +blo "125000,83500" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 119,0 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,85800,7500,86700" +st "memWr_n : std_ulogic" +) +) +*9 (PortIoIn +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "48000,52625,49500,53375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "49500,53000,50000,53000" +pts [ +"49500,53000" +"50000,53000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "42200,52300,47000,53700" +st "ramEn" +ju 2 +blo "47000,53500" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 133,0 +decl (Decl +n "ramEn" +t "std_ulogic" +o 5 +suid 9,0 +) +declText (MLText +uid 134,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,77400,7500,78300" +st "ramEn : std_ulogic" +) +) +*11 (PortIoIn +uid 135,0 +shape (CompositeShape +uid 136,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 137,0 +sl 0 +ro 270 +xt "8000,48625,9500,49375" +) +(Line +uid 138,0 +sl 0 +ro 270 +xt "9500,49000,10000,49000" +pts [ +"9500,49000" +"10000,49000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 139,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 140,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "2200,48300,7000,49700" +st "ramRd" +ju 2 +blo "7000,49500" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 147,0 +decl (Decl +n "ramRd" +t "std_ulogic" +o 6 +suid 10,0 +) +declText (MLText +uid 148,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,78600,7500,79500" +st "ramRd : std_ulogic" +) +) +*13 (PortIoIn +uid 149,0 +shape (CompositeShape +uid 150,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 151,0 +sl 0 +ro 270 +xt "8000,26625,9500,27375" +) +(Line +uid 152,0 +sl 0 +ro 270 +xt "9500,27000,10000,27000" +pts [ +"9500,27000" +"10000,27000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 153,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 154,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "2000,26300,7000,27700" +st "ramWr" +ju 2 +blo "7000,27500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 161,0 +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 11,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,79800,7500,80700" +st "ramWr : std_ulogic" +) +) +*15 (PortIoIn +uid 163,0 +shape (CompositeShape +uid 164,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 165,0 +sl 0 +ro 270 +xt "52000,56625,53500,57375" +) +(Line +uid 166,0 +sl 0 +ro 270 +xt "53500,57000,54000,57000" +pts [ +"53500,57000" +"54000,57000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 167,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 168,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "46900,56300,51000,57700" +st "reset" +ju 2 +blo "51000,57500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 175,0 +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +declText (MLText +uid 176,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,81000,7500,81900" +st "reset : std_ulogic" +) +) +*17 (PortIoOut +uid 177,0 +shape (CompositeShape +uid 178,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 179,0 +sl 0 +ro 270 +xt "122500,80625,124000,81375" +) +(Line +uid 180,0 +sl 0 +ro 270 +xt "122000,81000,122500,81000" +pts [ +"122000,81000" +"122500,81000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 181,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 182,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "125000,80300,131300,81700" +st "sdCas_n" +blo "125000,81500" +tm "WireNameMgr" +) +) +) +*18 (Net +uid 189,0 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 15 +suid 13,0 +) +declText (MLText +uid 190,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,89400,7500,90300" +st "sdCas_n : std_ulogic" +) +) +*19 (PortIoOut +uid 191,0 +shape (CompositeShape +uid 192,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 193,0 +sl 0 +ro 270 +xt "162500,18625,164000,19375" +) +(Line +uid 194,0 +sl 0 +ro 270 +xt "162000,19000,162500,19000" +pts [ +"162000,19000" +"162500,19000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 195,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "165000,18300,169700,19700" +st "sdCke" +blo "165000,19500" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 203,0 +decl (Decl +n "sdCke" +t "std_ulogic" +o 16 +suid 14,0 +) +declText (MLText +uid 204,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,90600,7500,91500" +st "sdCke : std_ulogic" +) +) +*21 (PortIoOut +uid 205,0 +shape (CompositeShape +uid 206,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 207,0 +sl 0 +ro 270 +xt "162500,20625,164000,21375" +) +(Line +uid 208,0 +sl 0 +ro 270 +xt "162000,21000,162500,21000" +pts [ +"162000,21000" +"162500,21000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 209,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 210,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "165000,20300,169200,21700" +st "sdClk" +blo "165000,21500" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 217,0 +decl (Decl +n "sdClk" +t "std_ulogic" +o 17 +suid 15,0 +) +declText (MLText +uid 218,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,91800,7500,92700" +st "sdClk : std_ulogic" +) +) +*23 (PortIoOut +uid 219,0 +shape (CompositeShape +uid 220,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 221,0 +sl 0 +ro 270 +xt "122500,76625,124000,77375" +) +(Line +uid 222,0 +sl 0 +ro 270 +xt "122000,77000,122500,77000" +pts [ +"122000,77000" +"122500,77000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 223,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 224,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "125000,76300,130500,77700" +st "sdCs_n" +blo "125000,77500" +tm "WireNameMgr" +) +) +) +*24 (Net +uid 231,0 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 18 +suid 16,0 +) +declText (MLText +uid 232,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,93000,7500,93900" +st "sdCs_n : std_ulogic" +) +) +*25 (PortIoOut +uid 261,0 +shape (CompositeShape +uid 262,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 263,0 +sl 0 +ro 270 +xt "122500,78625,124000,79375" +) +(Line +uid 264,0 +sl 0 +ro 270 +xt "122000,79000,122500,79000" +pts [ +"122000,79000" +"122500,79000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 265,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 266,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "125000,78300,131200,79700" +st "sdRas_n" +blo "125000,79500" +tm "WireNameMgr" +) +) +) +*26 (Net +uid 273,0 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 20 +suid 19,0 +) +declText (MLText +uid 274,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,95400,7500,96300" +st "sdRas_n : std_ulogic" +) +) +*27 (Grouping +uid 313,0 +optionalChildren [ +*28 (CommentText +uid 315,0 +shape (Rectangle +uid 316,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "136000,123000,153000,124000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 317,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "136200,123000,151200,124000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*29 (CommentText +uid 318,0 +shape (Rectangle +uid 319,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "153000,119000,157000,120000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 320,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "153200,119000,156800,120000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*30 (CommentText +uid 321,0 +shape (Rectangle +uid 322,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "136000,121000,153000,122000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 323,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "136200,121000,152400,122000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*31 (CommentText +uid 324,0 +shape (Rectangle +uid 325,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "132000,121000,136000,122000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 326,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "132200,121000,135800,122000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*32 (CommentText +uid 327,0 +shape (Rectangle +uid 328,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "153000,120000,173000,124000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 329,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "153200,120200,166400,121200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*33 (CommentText +uid 330,0 +shape (Rectangle +uid 331,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "157000,119000,173000,120000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 332,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "157200,119000,159000,120000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*34 (CommentText +uid 333,0 +shape (Rectangle +uid 334,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "132000,119000,153000,121000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 335,0 +va (VaSet +fg "32768,0,0" +) +xt "138000,119500,147000,120500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*35 (CommentText +uid 336,0 +shape (Rectangle +uid 337,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "132000,122000,136000,123000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 338,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "132200,122000,135200,123000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*36 (CommentText +uid 339,0 +shape (Rectangle +uid 340,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "132000,123000,136000,124000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 341,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "132200,123000,135800,124000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*37 (CommentText +uid 342,0 +shape (Rectangle +uid 343,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "136000,122000,153000,123000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 344,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "136200,122000,150600,123000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 314,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "132000,119000,173000,124000" +) +oxt "14000,66000,55000,71000" +) +*38 (PortIoIn +uid 599,0 +shape (CompositeShape +uid 600,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 601,0 +sl 0 +ro 270 +xt "52000,54625,53500,55375" +) +(Line +uid 602,0 +sl 0 +ro 270 +xt "53500,55000,54000,55000" +pts [ +"53500,55000" +"54000,55000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 603,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 604,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "47200,54300,51000,55700" +st "clock" +ju 2 +blo "51000,55500" +tm "WireNameMgr" +) +) +) +*39 (Net +uid 611,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 23,0 +) +declText (MLText +uid 612,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,72600,7500,73500" +st "clock : std_ulogic" +) +) +*40 (PortIoOut +uid 613,0 +shape (CompositeShape +uid 614,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 615,0 +sl 0 +ro 270 +xt "82500,52625,84000,53375" +) +(Line +uid 616,0 +sl 0 +ro 270 +xt "82000,53000,82500,53000" +pts [ +"82000,53000" +"82500,53000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 617,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 618,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "85000,52300,95000,53700" +st "ramDataValid" +blo "85000,53500" +tm "WireNameMgr" +) +) +) +*41 (Net +uid 625,0 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 24,0 +) +declText (MLText +uid 626,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,88200,7500,89100" +st "ramDataValid : std_ulogic" +) +) +*42 (PortIoIn +uid 627,0 +shape (CompositeShape +uid 628,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 629,0 +sl 0 +ro 270 +xt "128000,36625,129500,37375" +) +(Line +uid 630,0 +sl 0 +ro 270 +xt "129500,37000,130000,37000" +pts [ +"129500,37000" +"130000,37000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 631,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 632,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "120900,36300,127000,37700" +st "ramAddr" +ju 2 +blo "127000,37500" +tm "WireNameMgr" +) +) +) +*43 (Net +uid 639,0 +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 25,0 +) +declText (MLText +uid 640,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,75000,19000,75900" +st "ramAddr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*44 (PortIoIn +uid 641,0 +shape (CompositeShape +uid 642,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 643,0 +sl 0 +ro 270 +xt "128000,60625,129500,61375" +) +(Line +uid 644,0 +sl 0 +ro 270 +xt "129500,61000,130000,61000" +pts [ +"129500,61000" +"130000,61000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 645,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 646,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "117700,60300,127000,61700" +st "ramDataOut" +ju 2 +blo "127000,61500" +tm "WireNameMgr" +) +) +) +*45 (Net +uid 653,0 +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 26,0 +) +declText (MLText +uid 654,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,76200,22000,77100" +st "ramDataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*46 (PortIoOut +uid 655,0 +shape (CompositeShape +uid 656,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 657,0 +sl 0 +ro 90 +xt "48000,75625,49500,76375" +) +(Line +uid 658,0 +sl 0 +ro 90 +xt "49500,76000,50000,76000" +pts [ +"50000,76000" +"49500,76000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 659,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 660,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "39500,75300,47000,76700" +st "ramDataIn" +ju 2 +blo "47000,76500" +tm "WireNameMgr" +) +) +) +*47 (Net +uid 667,0 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 27,0 +) +declText (MLText +uid 668,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,87000,22000,87900" +st "ramDataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*48 (PortIoOut +uid 1316,0 +shape (CompositeShape +uid 1317,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1318,0 +sl 0 +ro 270 +xt "122500,84625,124000,85375" +) +(Line +uid 1319,0 +sl 0 +ro 270 +xt "122000,85000,122500,85000" +pts [ +"122000,85000" +"122500,85000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1320,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1321,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "125000,84300,130100,85700" +st "sdDqm" +blo "125000,85500" +tm "WireNameMgr" +) +) +) +*49 (Net +uid 1328,0 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 28,0 +) +declText (MLText +uid 1329,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,94200,17000,95100" +st "sdDqm : std_ulogic_vector(1 DOWNTO 0)" +) +) +*50 (PortIoOut +uid 1330,0 +shape (CompositeShape +uid 1331,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1332,0 +sl 0 +ro 270 +xt "162500,38625,164000,39375" +) +(Line +uid 1333,0 +sl 0 +ro 270 +xt "162000,39000,162500,39000" +pts [ +"162000,39000" +"162500,39000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1334,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1335,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "165000,38300,177800,39700" +st "memBankAddress" +blo "165000,39500" +tm "WireNameMgr" +) +) +) +*51 (Net +uid 1342,0 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 29,0 +) +declText (MLText +uid 1343,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,83400,28500,84300" +st "memBankAddress : std_ulogic_vector( chipBankAddressBitNb-1 DOWNTO 0 )" +) +) +*52 (HdlText +uid 1607,0 +optionalChildren [ +*53 (EmbeddedText +uid 1613,0 +commentText (CommentText +uid 1614,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1615,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "138000,18000,154000,24000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1616,0 +va (VaSet +font "courier,9,0" +) +xt "138200,18200,148200,20000" +st " +sdCke <= '1'; +sdClk <= not clock; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1608,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "138000,17000,154000,25000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1609,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +uid 1610,0 +va (VaSet +font "courier,9,0" +) +xt "138150,25000,140150,26200" +st "eb1" +blo "138150,25900" +tm "HdlTextNameMgr" +) +*55 (Text +uid 1611,0 +va (VaSet +font "courier,9,0" +) +xt "138150,26200,139150,27400" +st "1" +blo "138150,27100" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 1612,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "138250,23250,139750,24750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*56 (Net +uid 1665,0 +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 28 +suid 32,0 +) +declText (MLText +uid 1666,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,112600,11000,113500" +st "SIGNAL powerUpDone : std_ulogic" +) +) +*57 (Net +uid 1681,0 +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 27 +suid 35,0 +) +declText (MLText +uid 1682,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,111400,11000,112300" +st "SIGNAL endOfRefreshCount : std_ulogic" +) +) +*58 (Net +uid 1695,0 +decl (Decl +n "commandBus" +t "std_ulogic_vector" +b "(commandBusBitNb-1 DOWNTO 0)" +o 26 +suid 37,0 +) +declText (MLText +uid 1696,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,110200,28500,111100" +st "SIGNAL commandBus : std_ulogic_vector(commandBusBitNb-1 DOWNTO 0)" +) +) +*59 (HdlText +uid 1697,0 +optionalChildren [ +*60 (EmbeddedText +uid 1703,0 +commentText (CommentText +uid 1704,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1705,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "98000,74000,114000,82000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1706,0 +va (VaSet +font "courier,9,0" +) +xt "98200,74200,114200,79600" +st " +sdCs_n <= commandBus(5); +sdRas_n <= commandBus(4); +sdCas_n <= commandBus(3); +memWr_n <= commandBus(2); +sdDqm <= commandBus(1 downto 0); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1698,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "98000,73000,114000,89000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1699,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 1700,0 +va (VaSet +font "courier,9,0" +) +xt "98150,89000,100150,90200" +st "eb2" +blo "98150,89900" +tm "HdlTextNameMgr" +) +*62 (Text +uid 1701,0 +va (VaSet +font "courier,9,0" +) +xt "98150,90200,99150,91400" +st "2" +blo "98150,91100" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 1702,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "98250,87250,99750,88750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*63 (Net +uid 1785,0 +decl (Decl +n "timerStart" +t "std_ulogic" +o 33 +suid 39,0 +) +declText (MLText +uid 1786,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,118600,11000,119500" +st "SIGNAL timerStart : std_ulogic" +) +) +*64 (Net +uid 1801,0 +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "(1 TO maxDelayPeriodNb)" +o 32 +suid 41,0 +) +declText (MLText +uid 1802,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,117400,26000,118300" +st "SIGNAL timerDone : std_ulogic_vector(1 TO maxDelayPeriodNb)" +) +) +*65 (Net +uid 1924,0 +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 24 +suid 43,0 +) +declText (MLText +uid 1925,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,107800,11000,108700" +st "SIGNAL addrSelPrecharge : std_ulogic" +) +) +*66 (Net +uid 2051,0 +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 23 +suid 44,0 +) +declText (MLText +uid 2052,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,106600,11000,107500" +st "SIGNAL addrSelModeReg : std_ulogic" +) +) +*67 (Net +uid 2266,0 +decl (Decl +n "writeRequest" +t "std_ulogic" +o 35 +suid 45,0 +) +declText (MLText +uid 2267,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,121000,11000,121900" +st "SIGNAL writeRequest : std_ulogic" +) +) +*68 (Net +uid 2276,0 +decl (Decl +n "writeAck" +t "std_ulogic" +o 34 +suid 46,0 +) +declText (MLText +uid 2277,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,119800,11000,120700" +st "SIGNAL writeAck : std_ulogic" +) +) +*69 (SaComponent +uid 2332,0 +optionalChildren [ +*70 (CptPort +uid 2312,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2313,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,32625,18000,33375" +) +tg (CPTG +uid 2314,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2315,0 +va (VaSet +) +xt "19000,32500,21100,33500" +st "clock" +blo "19000,33300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 2316,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2317,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,26625,18000,27375" +) +tg (CPTG +uid 2318,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2319,0 +va (VaSet +) +xt "19000,26500,22000,27500" +st "setFlag" +blo "19000,27300" +) +) +thePort (LogicalPort +decl (Decl +n "setFlag" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*72 (CptPort +uid 2320,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2321,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,34625,18000,35375" +) +tg (CPTG +uid 2322,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2323,0 +va (VaSet +) +xt "19000,34500,21100,35500" +st "reset" +blo "19000,35300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 3,0 +) +) +) +*73 (CptPort +uid 2324,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2325,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,28625,18000,29375" +) +tg (CPTG +uid 2326,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2327,0 +va (VaSet +) +xt "19000,28500,22700,29500" +st "resetFlag" +blo "19000,29300" +) +) +thePort (LogicalPort +decl (Decl +n "resetFlag" +t "std_ulogic" +o 7 +suid 4,0 +) +) +) +*74 (CptPort +uid 2328,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2329,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,26625,34750,27375" +) +tg (CPTG +uid 2330,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2331,0 +va (VaSet +) +xt "31300,26500,33000,27500" +st "flag" +ju 2 +blo "33000,27300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "flag" +t "std_ulogic" +o 7 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 2333,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "18000,23000,34000,37000" +) +oxt "29000,12000,45000,26000" +ttg (MlTextGroup +uid 2334,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 2335,0 +va (VaSet +font "courier,8,1" +) +xt "18000,37000,21300,38000" +st "memory" +blo "18000,37800" +tm "BdLibraryNameMgr" +) +*76 (Text +uid 2336,0 +va (VaSet +font "courier,8,1" +) +xt "18000,38000,26000,39000" +st "sdramControllerSR" +blo "18000,38800" +tm "CptNameMgr" +) +*77 (Text +uid 2337,0 +va (VaSet +font "courier,8,1" +) +xt "18000,39000,19800,40000" +st "U_5" +blo "18000,39800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2338,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2339,0 +text (MLText +uid 2340,0 +va (VaSet +font "courier,8,0" +) +xt "18000,40200,18000,40200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 2341,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "18250,35250,19750,36750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*78 (Net +uid 2366,0 +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 25 +suid 47,0 +) +declText (MLText +uid 2367,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,109000,11000,109900" +st "SIGNAL addrSelRow : std_ulogic" +) +) +*79 (Net +uid 2384,0 +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 22 +suid 48,0 +) +declText (MLText +uid 2385,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,105400,11000,106300" +st "SIGNAL addrSelCol : std_ulogic" +) +) +*80 (SaComponent +uid 2398,0 +optionalChildren [ +*81 (CptPort +uid 2408,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2409,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,54625,18000,55375" +) +tg (CPTG +uid 2410,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2411,0 +va (VaSet +) +xt "19000,54500,21100,55500" +st "clock" +blo "19000,55300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +) +*82 (CptPort +uid 2412,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2413,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,48625,18000,49375" +) +tg (CPTG +uid 2414,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2415,0 +va (VaSet +) +xt "19000,48500,22000,49500" +st "setFlag" +blo "19000,49300" +) +) +thePort (LogicalPort +decl (Decl +n "setFlag" +t "std_ulogic" +o 7 +) +) +) +*83 (CptPort +uid 2416,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2417,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,56625,18000,57375" +) +tg (CPTG +uid 2418,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2419,0 +va (VaSet +) +xt "19000,56500,21100,57500" +st "reset" +blo "19000,57300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +) +) +) +*84 (CptPort +uid 2420,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2421,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,50625,18000,51375" +) +tg (CPTG +uid 2422,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2423,0 +va (VaSet +) +xt "19000,50500,22700,51500" +st "resetFlag" +blo "19000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "resetFlag" +t "std_ulogic" +o 7 +) +) +) +*85 (CptPort +uid 2424,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2425,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,48625,34750,49375" +) +tg (CPTG +uid 2426,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2427,0 +va (VaSet +) +xt "31300,48500,33000,49500" +st "flag" +ju 2 +blo "33000,49300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "flag" +t "std_ulogic" +o 7 +) +) +) +] +shape (Rectangle +uid 2399,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "18000,45000,34000,59000" +) +oxt "29000,12000,45000,26000" +ttg (MlTextGroup +uid 2400,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 2401,0 +va (VaSet +font "courier,8,1" +) +xt "18000,59000,21300,60000" +st "memory" +blo "18000,59800" +tm "BdLibraryNameMgr" +) +*87 (Text +uid 2402,0 +va (VaSet +font "courier,8,1" +) +xt "18000,60000,26000,61000" +st "sdramControllerSR" +blo "18000,60800" +tm "CptNameMgr" +) +*88 (Text +uid 2403,0 +va (VaSet +font "courier,8,1" +) +xt "18000,61000,19800,62000" +st "U_6" +blo "18000,61800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2404,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2405,0 +text (MLText +uid 2406,0 +va (VaSet +font "courier,8,0" +) +xt "18000,62200,18000,62200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 2407,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "18250,57250,19750,58750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*89 (Net +uid 2456,0 +decl (Decl +n "readAck" +t "std_ulogic" +o 29 +suid 49,0 +) +declText (MLText +uid 2457,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,113800,11000,114700" +st "SIGNAL readAck : std_ulogic" +) +) +*90 (Net +uid 2458,0 +decl (Decl +n "readRequest" +t "std_ulogic" +o 30 +suid 50,0 +) +declText (MLText +uid 2459,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,115000,11000,115900" +st "SIGNAL readRequest : std_ulogic" +) +) +*91 (Net +uid 2516,0 +decl (Decl +n "sampleData" +t "std_ulogic" +o 31 +suid 52,0 +) +declText (MLText +uid 2517,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,116200,11000,117100" +st "SIGNAL sampleData : std_ulogic" +) +) +*92 (SaComponent +uid 3238,0 +optionalChildren [ +*93 (CptPort +uid 3222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3223,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97250,60625,98000,61375" +) +tg (CPTG +uid 3224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3225,0 +va (VaSet +) +xt "99000,60500,101100,61500" +st "clock" +blo "99000,61300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 5,0 +) +) +) +*94 (CptPort +uid 3226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97250,62625,98000,63375" +) +tg (CPTG +uid 3228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3229,0 +va (VaSet +) +xt "99000,62500,101100,63500" +st "reset" +blo "99000,63300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 6,0 +) +) +) +*95 (CptPort +uid 3230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3231,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114000,56625,114750,57375" +) +tg (CPTG +uid 3232,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3233,0 +va (VaSet +) +xt "109100,56500,113000,57500" +st "timerDone" +ju 2 +blo "113000,57300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "(1 TO maxDelayPeriodNb)" +o 25 +suid 7,0 +) +) +) +*96 (CptPort +uid 3234,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3235,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97250,56625,98000,57375" +) +tg (CPTG +uid 3236,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3237,0 +va (VaSet +) +xt "99000,56500,103100,57500" +st "timerStart" +blo "99000,57300" +) +) +thePort (LogicalPort +decl (Decl +n "timerStart" +t "std_ulogic" +o 24 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 3239,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "98000,53000,114000,65000" +) +oxt "32000,16000,48000,28000" +ttg (MlTextGroup +uid 3240,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +uid 3241,0 +va (VaSet +font "courier,8,1" +) +xt "98400,65000,101700,66000" +st "memory" +blo "98400,65800" +tm "BdLibraryNameMgr" +) +*98 (Text +uid 3242,0 +va (VaSet +font "courier,8,1" +) +xt "98400,66000,113600,67000" +st "sdramControllerTimingsShiftRegister" +blo "98400,66800" +tm "CptNameMgr" +) +*99 (Text +uid 3243,0 +va (VaSet +font "courier,8,1" +) +xt "98400,67000,100200,68000" +st "U_2" +blo "98400,67800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3244,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3245,0 +text (MLText +uid 3246,0 +va (VaSet +font "courier,8,0" +) +xt "98000,68200,125000,69100" +st "maxDelayPeriodNb = maxDelayPeriodNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "maxDelayPeriodNb" +) +] +) +viewicon (ZoomableIcon +uid 3247,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "98250,63250,99750,64750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*100 (SaComponent +uid 3306,0 +optionalChildren [ +*101 (CptPort +uid 3286,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3287,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,66625,138000,67375" +) +tg (CPTG +uid 3288,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3289,0 +va (VaSet +) +xt "139000,66500,141100,67500" +st "clock" +blo "139000,67300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 11,0 +) +) +) +*102 (CptPort +uid 3290,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3291,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "154000,60625,154750,61375" +) +tg (CPTG +uid 3292,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3293,0 +va (VaSet +) +xt "147800,60500,153000,61500" +st "memDataOut" +ju 2 +blo "153000,61300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 12,0 +) +) +) +*103 (CptPort +uid 3294,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3295,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,60625,138000,61375" +) +tg (CPTG +uid 3296,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3297,0 +va (VaSet +) +xt "139000,60500,143900,61500" +st "ramDataOut" +blo "139000,61300" +) +) +thePort (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 13,0 +) +) +) +*104 (CptPort +uid 3298,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3299,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,62625,138000,63375" +) +tg (CPTG +uid 3300,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3301,0 +va (VaSet +) +xt "139000,62500,141700,63500" +st "ramWr" +blo "139000,63300" +) +) +thePort (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 14,0 +) +) +) +*105 (CptPort +uid 3302,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3303,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,68625,138000,69375" +) +tg (CPTG +uid 3304,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3305,0 +va (VaSet +) +xt "139000,68500,141100,69500" +st "reset" +blo "139000,69300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 15,0 +) +) +) +] +shape (Rectangle +uid 3307,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "138000,57000,154000,71000" +) +oxt "40000,11000,56000,25000" +ttg (MlTextGroup +uid 3308,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +uid 3309,0 +va (VaSet +font "courier,8,1" +) +xt "138500,71000,141800,72000" +st "memory" +blo "138500,71800" +tm "BdLibraryNameMgr" +) +*107 (Text +uid 3310,0 +va (VaSet +font "courier,8,1" +) +xt "138500,72000,149500,73000" +st "sdramControllerStoreData" +blo "138500,72800" +tm "CptNameMgr" +) +*108 (Text +uid 3311,0 +va (VaSet +font "courier,8,1" +) +xt "138500,73000,140300,74000" +st "U_4" +blo "138500,73800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3312,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3313,0 +text (MLText +uid 3314,0 +va (VaSet +font "courier,8,0" +) +xt "138000,74600,158000,75500" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +viewicon (ZoomableIcon +uid 3315,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "138250,69250,139750,70750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*109 (SaComponent +uid 3336,0 +optionalChildren [ +*110 (CptPort +uid 3316,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3317,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,81625,58000,82375" +) +tg (CPTG +uid 3318,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3319,0 +va (VaSet +) +xt "59000,81500,61100,82500" +st "clock" +blo "59000,82300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 9,0 +) +) +) +*111 (CptPort +uid 3320,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3321,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,75625,74750,76375" +) +tg (CPTG +uid 3322,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3323,0 +va (VaSet +) +xt "68800,75500,73000,76500" +st "memDataIn" +ju 2 +blo "73000,76300" +) +) +thePort (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 10,0 +) +) +) +*112 (CptPort +uid 3324,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3325,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,75625,58000,76375" +) +tg (CPTG +uid 3326,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3327,0 +va (VaSet +) +xt "59000,75500,62900,76500" +st "ramDataIn" +blo "59000,76300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 11,0 +) +) +) +*113 (CptPort +uid 3328,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3329,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,83625,58000,84375" +) +tg (CPTG +uid 3330,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3331,0 +va (VaSet +) +xt "59000,83500,61100,84500" +st "reset" +blo "59000,84300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +) +) +*114 (CptPort +uid 3332,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3333,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,79625,58000,80375" +) +tg (CPTG +uid 3334,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3335,0 +va (VaSet +) +xt "59000,79500,63800,80500" +st "sampleData" +blo "59000,80300" +) +) +thePort (LogicalPort +decl (Decl +n "sampleData" +t "std_ulogic" +o 34 +suid 13,0 +) +) +) +] +shape (Rectangle +uid 3337,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "58000,72000,74000,86000" +) +oxt "38000,15000,54000,29000" +ttg (MlTextGroup +uid 3338,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +uid 3339,0 +va (VaSet +font "courier,8,1" +) +xt "58800,86000,62100,87000" +st "memory" +blo "58800,86800" +tm "BdLibraryNameMgr" +) +*116 (Text +uid 3340,0 +va (VaSet +font "courier,8,1" +) +xt "58800,87000,71200,88000" +st "sdramControllerSampleDataIn" +blo "58800,87800" +tm "CptNameMgr" +) +*117 (Text +uid 3341,0 +va (VaSet +font "courier,8,1" +) +xt "58800,88000,60600,89000" +st "U_7" +blo "58800,88800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3342,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3343,0 +text (MLText +uid 3344,0 +va (VaSet +font "courier,8,0" +) +xt "58000,89600,78000,90500" +st "dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +viewicon (ZoomableIcon +uid 3345,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "58250,84250,59750,85750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*118 (SaComponent +uid 3568,0 +optionalChildren [ +*119 (CptPort +uid 3548,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3549,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97250,40625,98000,41375" +) +tg (CPTG +uid 3550,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3551,0 +va (VaSet +) +xt "99000,40500,101100,41500" +st "clock" +blo "99000,41300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 6,0 +) +) +) +*120 (CptPort +uid 3552,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3553,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114000,36625,114750,37375" +) +tg (CPTG +uid 3554,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3555,0 +va (VaSet +) +xt "105500,36500,113000,37500" +st "endOfRefreshCount" +ju 2 +blo "113000,37300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 22 +suid 7,0 +) +) +) +*121 (CptPort +uid 3556,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3557,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97250,36625,98000,37375" +) +tg (CPTG +uid 3558,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3559,0 +va (VaSet +) +xt "99000,36500,104600,37500" +st "powerUpDone" +blo "99000,37300" +) +) +thePort (LogicalPort +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 21 +suid 8,0 +) +) +) +*122 (CptPort +uid 3560,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3561,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97250,42625,98000,43375" +) +tg (CPTG +uid 3562,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3563,0 +va (VaSet +) +xt "99000,42500,101100,43500" +st "reset" +blo "99000,43300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 9,0 +) +) +) +*123 (CptPort +uid 3564,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3565,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "114000,38625,114750,39375" +) +tg (CPTG +uid 3566,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3567,0 +va (VaSet +) +xt "107500,38500,113000,39500" +st "selectRefresh" +ju 2 +blo "113000,39300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 5 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 3569,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "98000,33000,114000,45000" +) +oxt "32000,12000,48000,24000" +ttg (MlTextGroup +uid 3570,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*124 (Text +uid 3571,0 +va (VaSet +font "courier,8,1" +) +xt "98350,45000,101650,46000" +st "memory" +blo "98350,45800" +tm "BdLibraryNameMgr" +) +*125 (Text +uid 3572,0 +va (VaSet +font "courier,8,1" +) +xt "98350,46000,111650,47000" +st "sdramControllerRefreshCounter" +blo "98350,46800" +tm "CptNameMgr" +) +*126 (Text +uid 3573,0 +va (VaSet +font "courier,8,1" +) +xt "98350,47000,100150,48000" +st "U_1" +blo "98350,47800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3574,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3575,0 +text (MLText +uid 3576,0 +va (VaSet +font "courier,8,0" +) +xt "98000,48200,126000,50000" +st "delayCounterBitNb = delayCounterBitNb ( positive ) +refreshPeriodNb = refreshPeriodNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delayCounterBitNb" +type "positive" +value "delayCounterBitNb" +) +(GiElement +name "refreshPeriodNb" +type "positive" +value "refreshPeriodNb" +) +] +) +viewicon (ZoomableIcon +uid 3577,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "98250,43250,99750,44750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*127 (Net +uid 3578,0 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 21 +suid 53,0 +) +declText (MLText +uid 3579,0 +va (VaSet +font "courier,9,0" +) +xt "-8000,96600,7500,97500" +st "selectRefresh : std_ulogic" +) +) +*128 (PortIoOut +uid 3586,0 +shape (CompositeShape +uid 3587,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 3588,0 +sl 0 +ro 270 +xt "122500,38625,124000,39375" +) +(Line +uid 3589,0 +sl 0 +ro 270 +xt "122000,39000,122500,39000" +pts [ +"122000,39000" +"122500,39000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 3590,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3591,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "125000,38300,135100,39700" +st "selectRefresh" +blo "125000,39500" +tm "WireNameMgr" +) +) +) +*129 (SaComponent +uid 3925,0 +optionalChildren [ +*130 (CptPort +uid 3897,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3898,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,44625,138000,45375" +) +tg (CPTG +uid 3899,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3900,0 +va (VaSet +) +xt "139000,44500,143600,45500" +st "addrSelCol" +blo "139000,45300" +) +) +thePort (LogicalPort +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 26 +suid 18,0 +) +) +) +*131 (CptPort +uid 3901,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3902,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,40625,138000,41375" +) +tg (CPTG +uid 3903,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3904,0 +va (VaSet +) +xt "139000,40500,145800,41500" +st "addrSelModeReg" +blo "139000,41300" +) +) +thePort (LogicalPort +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 26 +suid 19,0 +) +) +) +*132 (CptPort +uid 3905,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3906,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,38625,138000,39375" +) +tg (CPTG +uid 3907,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3908,0 +va (VaSet +) +xt "139000,38500,146000,39500" +st "addrSelPrecharge" +blo "139000,39300" +) +) +thePort (LogicalPort +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 26 +suid 20,0 +) +) +) +*133 (CptPort +uid 3909,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3910,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,42625,138000,43375" +) +tg (CPTG +uid 3911,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3912,0 +va (VaSet +) +xt "139000,42500,143900,43500" +st "addrSelRow" +blo "139000,43300" +) +) +thePort (LogicalPort +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 26 +suid 21,0 +) +) +) +*134 (CptPort +uid 3913,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3914,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "154000,36625,154750,37375" +) +tg (CPTG +uid 3915,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3916,0 +va (VaSet +) +xt "147800,36500,153000,37500" +st "memAddress" +ju 2 +blo "153000,37300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 22,0 +) +) +) +*135 (CptPort +uid 3917,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3918,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "154000,38625,154750,39375" +) +tg (CPTG +uid 3919,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3920,0 +va (VaSet +) +xt "146200,38500,153000,39500" +st "memBankAddress" +ju 2 +blo "153000,39300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 23,0 +) +) +) +*136 (CptPort +uid 3921,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3922,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "137250,36625,138000,37375" +) +tg (CPTG +uid 3923,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3924,0 +va (VaSet +) +xt "139000,36500,142300,37500" +st "ramAddr" +blo "139000,37300" +) +) +thePort (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 24,0 +) +) +) +] +shape (Rectangle +uid 3926,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "138000,33000,154000,49000" +) +oxt "34000,6000,50000,22000" +ttg (MlTextGroup +uid 3927,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*137 (Text +uid 3928,0 +va (VaSet +font "courier,8,1" +) +xt "137850,49500,141150,50500" +st "memory" +blo "137850,50300" +tm "BdLibraryNameMgr" +) +*138 (Text +uid 3929,0 +va (VaSet +font "courier,8,1" +) +xt "137850,50500,150150,51500" +st "sdramControllerBuildAddress" +blo "137850,51300" +tm "CptNameMgr" +) +*139 (Text +uid 3930,0 +va (VaSet +font "courier,8,1" +) +xt "137850,51500,139650,52500" +st "U_3" +blo "137850,52300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3931,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3932,0 +text (MLText +uid 3933,0 +va (VaSet +font "courier,8,0" +) +xt "138000,53000,169000,57500" +st "addressBitNb = addressBitNb ( positive ) +chipAddressBitNb = chipAddressBitNb ( positive ) +chipBankAddressBitNb = chipBankAddressBitNb ( positive ) +rowAddressBitNb = rowAddressBitNb ( positive ) +colAddressBitNb = colAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "chipAddressBitNb" +) +(GiElement +name "chipBankAddressBitNb" +type "positive" +value "chipBankAddressBitNb" +) +(GiElement +name "rowAddressBitNb" +type "positive" +value "rowAddressBitNb" +) +(GiElement +name "colAddressBitNb" +type "positive" +value "colAddressBitNb" +) +] +) +viewicon (ZoomableIcon +uid 3934,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "138250,47250,139750,48750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*140 (SaComponent +uid 4230,0 +optionalChildren [ +*141 (CptPort +uid 4158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,46625,74750,47375" +) +tg (CPTG +uid 4160,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4161,0 +va (VaSet +) +xt "68400,46500,73000,47500" +st "addrSelCol" +ju 2 +blo "73000,47300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 8 +suid 149,0 +) +) +) +*142 (CptPort +uid 4162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4163,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,42625,74750,43375" +) +tg (CPTG +uid 4164,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4165,0 +va (VaSet +) +xt "66200,42500,73000,43500" +st "addrSelModeReg" +ju 2 +blo "73000,43300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 9 +suid 150,0 +) +) +) +*143 (CptPort +uid 4166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4167,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,40625,74750,41375" +) +tg (CPTG +uid 4168,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4169,0 +va (VaSet +) +xt "66000,40500,73000,41500" +st "addrSelPrecharge" +ju 2 +blo "73000,41300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 10 +suid 151,0 +) +) +) +*144 (CptPort +uid 4170,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4171,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,44625,74750,45375" +) +tg (CPTG +uid 4172,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4173,0 +va (VaSet +) +xt "68100,44500,73000,45500" +st "addrSelRow" +ju 2 +blo "73000,45300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 11 +suid 152,0 +) +) +) +*145 (CptPort +uid 4174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,54625,58000,55375" +) +tg (CPTG +uid 4176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4177,0 +va (VaSet +) +xt "59000,54500,61100,55500" +st "clock" +blo "59000,55300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 153,0 +) +) +) +*146 (CptPort +uid 4178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,54625,74750,55375" +) +tg (CPTG +uid 4180,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4181,0 +va (VaSet +) +xt "67700,54500,73000,55500" +st "commandBus" +ju 2 +blo "73000,55300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "commandBus" +t "std_ulogic_vector" +b "( commandBusBitNb-1 DOWNTO 0 )" +o 12 +suid 154,0 +) +) +) +*147 (CptPort +uid 4182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4183,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,36625,58000,37375" +) +tg (CPTG +uid 4184,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4185,0 +va (VaSet +) +xt "59000,36500,66500,37500" +st "endOfRefreshCount" +blo "59000,37300" +) +) +thePort (LogicalPort +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 2 +suid 155,0 +) +) +) +*148 (CptPort +uid 4186,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4187,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,36625,74750,37375" +) +tg (CPTG +uid 4188,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4189,0 +va (VaSet +) +xt "67400,36500,73000,37500" +st "powerUpDone" +ju 2 +blo "73000,37300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 13 +suid 156,0 +) +) +) +*149 (CptPort +uid 4190,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4191,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,52625,74750,53375" +) +tg (CPTG +uid 4192,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4193,0 +va (VaSet +) +xt "67600,52500,73000,53500" +st "ramDataValid" +ju 2 +blo "73000,53300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 157,0 +) +) +) +*150 (CptPort +uid 4194,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4195,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,52625,58000,53375" +) +tg (CPTG +uid 4196,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4197,0 +va (VaSet +) +xt "59000,52500,61600,53500" +st "ramEn" +blo "59000,53300" +) +) +thePort (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 3 +suid 158,0 +) +) +) +*151 (CptPort +uid 4198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4199,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,48625,58000,49375" +) +tg (CPTG +uid 4200,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4201,0 +va (VaSet +) +xt "59000,48500,62100,49500" +st "readAck" +blo "59000,49300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readAck" +t "std_ulogic" +o 15 +suid 159,0 +) +) +) +*152 (CptPort +uid 4202,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4203,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,46625,58000,47375" +) +tg (CPTG +uid 4204,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4205,0 +va (VaSet +) +xt "59000,46500,64200,47500" +st "readRequest" +blo "59000,47300" +) +) +thePort (LogicalPort +decl (Decl +n "readRequest" +t "std_ulogic" +o 4 +suid 160,0 +) +) +) +*153 (CptPort +uid 4206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4207,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,56625,58000,57375" +) +tg (CPTG +uid 4208,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4209,0 +va (VaSet +) +xt "59000,56500,61100,57500" +st "reset" +blo "59000,57300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 161,0 +) +) +) +*154 (CptPort +uid 4210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4211,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,48625,74750,49375" +) +tg (CPTG +uid 4212,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4213,0 +va (VaSet +) +xt "68200,48500,73000,49500" +st "sampleData" +ju 2 +blo "73000,49300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleData" +t "std_ulogic" +o 16 +suid 162,0 +) +) +) +*155 (CptPort +uid 4214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,38625,58000,39375" +) +tg (CPTG +uid 4216,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4217,0 +va (VaSet +) +xt "59000,38500,62900,39500" +st "timerDone" +blo "59000,39300" +) +) +thePort (LogicalPort +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "( 1 TO maxDelayPeriodNb )" +o 6 +suid 163,0 +) +) +) +*156 (CptPort +uid 4218,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4219,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "74000,38625,74750,39375" +) +tg (CPTG +uid 4220,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4221,0 +va (VaSet +) +xt "68900,38500,73000,39500" +st "timerStart" +ju 2 +blo "73000,39300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "timerStart" +t "std_ulogic" +o 17 +suid 164,0 +) +) +) +*157 (CptPort +uid 4222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4223,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,44625,58000,45375" +) +tg (CPTG +uid 4224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4225,0 +va (VaSet +) +xt "59000,44500,62200,45500" +st "writeAck" +blo "59000,45300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeAck" +t "std_ulogic" +o 18 +suid 165,0 +) +) +) +*158 (CptPort +uid 4226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57250,42625,58000,43375" +) +tg (CPTG +uid 4228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4229,0 +va (VaSet +) +xt "59000,42500,64300,43500" +st "writeRequest" +blo "59000,43300" +) +) +thePort (LogicalPort +decl (Decl +n "writeRequest" +t "std_ulogic" +o 7 +suid 166,0 +) +) +) +] +shape (Rectangle +uid 4231,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "58000,33000,74000,59000" +) +oxt "35000,6000,51000,32000" +ttg (MlTextGroup +uid 4232,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*159 (Text +uid 4233,0 +va (VaSet +font "courier,8,1" +) +xt "58750,59000,62050,60000" +st "memory" +blo "58750,59800" +tm "BdLibraryNameMgr" +) +*160 (Text +uid 4234,0 +va (VaSet +font "courier,8,1" +) +xt "58750,60000,67250,61000" +st "sdramControllerFsm" +blo "58750,60800" +tm "CptNameMgr" +) +*161 (Text +uid 4235,0 +va (VaSet +font "courier,8,1" +) +xt "58750,61000,60550,62000" +st "U_0" +blo "58750,61800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4236,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4237,0 +text (MLText +uid 4238,0 +va (VaSet +font "courier,8,0" +) +xt "39000,62000,85000,71000" +st "commandBusBitNb = commandBusBitNb ( positive ) +maxDelayPeriodNb = maxDelayPeriodNb ( positive ) +prechargeToRefreshPeriodNb = 2 ( positive ) --66MHz * 20 ns = 1.32 +refreshDelayPeriodNb = 5 ( positive ) --66MHz * 66ns = 4.356 +loadModeToActivePeriodNb = 1 ( positive ) --1 CK +activeToWritePeriodNb = 2 ( positive ) --66MHz * 20ns = 1.32 +writeToActivePeriodNb = 3 ( positive ) --1 CK + 66MHz * 20ns = 2.32 +activeToReadPeriodNb = 2 ( positive ) --66MHz * 20ns = 1.32 +readToSamplePeriodNb = 2 ( positive ) --2 CK with latency = 2 +readToActivePeriodNb = 3 ( positive ) --1 CK + 66MHz * 20ns = 2.32 " +) +header "" +) +elements [ +(GiElement +name "commandBusBitNb" +type "positive" +value "commandBusBitNb" +) +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "maxDelayPeriodNb" +) +(GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +(GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +(GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +(GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +(GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +(GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +] +) +viewicon (ZoomableIcon +uid 4239,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "58250,57250,59750,58750" +iconName "StateMachineViewIcon.png" +iconMaskName "StateMachineViewIcon.msk" +ftype 3 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*162 (Wire +uid 57,0 +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "154750,37000,162000,37000" +pts [ +"162000,37000" +"154750,37000" +] +) +start &1 +end &134 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +font "courier,12,0" +) +xt "156000,35600,165700,37000" +st "memAddress" +blo "156000,36800" +tm "WireNameMgr" +) +) +on &2 +) +*163 (Wire +uid 85,0 +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "74750,76000,83000,76000" +pts [ +"83000,76000" +"74750,76000" +] +) +start &3 +end &111 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +font "courier,12,0" +) +xt "76000,74600,84100,76000" +st "memDataIn" +blo "76000,75800" +tm "WireNameMgr" +) +) +on &4 +) +*164 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "154750,61000,162000,61000" +pts [ +"162000,61000" +"154750,61000" +] +) +start &5 +end &102 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +font "courier,12,0" +) +xt "161000,59600,170900,61000" +st "memDataOut" +blo "161000,60800" +tm "WireNameMgr" +) +) +on &6 +) +*165 (Wire +uid 113,0 +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +) +xt "114000,83000,122000,83000" +pts [ +"122000,83000" +"114000,83000" +] +) +start &7 +end &59 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +font "courier,12,0" +) +xt "116000,81600,123200,83000" +st "memWr_n" +blo "116000,82800" +tm "WireNameMgr" +) +) +on &8 +) +*166 (Wire +uid 127,0 +shape (OrthoPolyLine +uid 128,0 +va (VaSet +vasetType 3 +) +xt "50000,53000,57250,53000" +pts [ +"50000,53000" +"57250,53000" +] +) +start &9 +end &150 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +font "courier,12,0" +) +xt "50000,51600,54800,53000" +st "ramEn" +blo "50000,52800" +tm "WireNameMgr" +) +) +on &10 +) +*167 (Wire +uid 141,0 +shape (OrthoPolyLine +uid 142,0 +va (VaSet +vasetType 3 +) +xt "10000,49000,17250,49000" +pts [ +"10000,49000" +"17250,49000" +] +) +start &11 +end &82 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 145,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 146,0 +va (VaSet +font "courier,12,0" +) +xt "10000,47600,14800,49000" +st "ramRd" +blo "10000,48800" +tm "WireNameMgr" +) +) +on &12 +) +*168 (Wire +uid 169,0 +shape (OrthoPolyLine +uid 170,0 +va (VaSet +vasetType 3 +) +xt "54000,57000,57250,57000" +pts [ +"54000,57000" +"57250,57000" +] +) +start &15 +end &153 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 173,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 174,0 +va (VaSet +font "courier,12,0" +) +xt "53000,55600,57100,57000" +st "reset" +blo "53000,56800" +tm "WireNameMgr" +) +) +on &16 +) +*169 (Wire +uid 183,0 +shape (OrthoPolyLine +uid 184,0 +va (VaSet +vasetType 3 +) +xt "114000,81000,122000,81000" +pts [ +"122000,81000" +"114000,81000" +] +) +start &17 +end &59 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 187,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 188,0 +va (VaSet +font "courier,12,0" +) +xt "117000,79600,123300,81000" +st "sdCas_n" +blo "117000,80800" +tm "WireNameMgr" +) +) +on &18 +) +*170 (Wire +uid 197,0 +shape (OrthoPolyLine +uid 198,0 +va (VaSet +vasetType 3 +) +xt "154000,19000,162000,19000" +pts [ +"162000,19000" +"154000,19000" +] +) +start &19 +end &52 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 201,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 202,0 +va (VaSet +font "courier,12,0" +) +xt "159000,17600,163700,19000" +st "sdCke" +blo "159000,18800" +tm "WireNameMgr" +) +) +on &20 +) +*171 (Wire +uid 211,0 +shape (OrthoPolyLine +uid 212,0 +va (VaSet +vasetType 3 +) +xt "154000,21000,162000,21000" +pts [ +"162000,21000" +"154000,21000" +] +) +start &21 +end &52 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 215,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 216,0 +va (VaSet +font "courier,12,0" +) +xt "159000,19600,163200,21000" +st "sdClk" +blo "159000,20800" +tm "WireNameMgr" +) +) +on &22 +) +*172 (Wire +uid 225,0 +shape (OrthoPolyLine +uid 226,0 +va (VaSet +vasetType 3 +) +xt "114000,77000,122000,77000" +pts [ +"122000,77000" +"114000,77000" +] +) +start &23 +end &59 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 229,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 230,0 +va (VaSet +font "courier,12,0" +) +xt "118000,75600,123500,77000" +st "sdCs_n" +blo "118000,76800" +tm "WireNameMgr" +) +) +on &24 +) +*173 (Wire +uid 267,0 +shape (OrthoPolyLine +uid 268,0 +va (VaSet +vasetType 3 +) +xt "114000,79000,122000,79000" +pts [ +"122000,79000" +"114000,79000" +] +) +start &25 +end &59 +sat 32 +eat 2 +st 0 +sf 1 +si 0 +tg (WTG +uid 271,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 272,0 +va (VaSet +font "courier,12,0" +) +xt "117000,77600,123200,79000" +st "sdRas_n" +blo "117000,78800" +tm "WireNameMgr" +) +) +on &26 +) +*174 (Wire +uid 605,0 +shape (OrthoPolyLine +uid 606,0 +va (VaSet +vasetType 3 +) +xt "54000,55000,57250,55000" +pts [ +"54000,55000" +"57250,55000" +] +) +start &38 +end &145 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 609,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 610,0 +va (VaSet +font "courier,12,0" +) +xt "54000,53600,57800,55000" +st "clock" +blo "54000,54800" +tm "WireNameMgr" +) +) +on &39 +) +*175 (Wire +uid 619,0 +shape (OrthoPolyLine +uid 620,0 +va (VaSet +vasetType 3 +) +xt "74750,53000,82000,53000" +pts [ +"74750,53000" +"82000,53000" +] +) +start &149 +end &40 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 623,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 624,0 +va (VaSet +font "courier,12,0" +) +xt "76000,51600,86000,53000" +st "ramDataValid" +blo "76000,52800" +tm "WireNameMgr" +) +) +on &41 +) +*176 (Wire +uid 633,0 +shape (OrthoPolyLine +uid 634,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "130000,37000,137250,37000" +pts [ +"130000,37000" +"137250,37000" +] +) +start &42 +end &136 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 637,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 638,0 +va (VaSet +font "courier,12,0" +) +xt "130000,35600,136100,37000" +st "ramAddr" +blo "130000,36800" +tm "WireNameMgr" +) +) +on &43 +) +*177 (Wire +uid 647,0 +shape (OrthoPolyLine +uid 648,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "130000,61000,137250,61000" +pts [ +"130000,61000" +"137250,61000" +] +) +start &44 +end &103 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 651,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 652,0 +va (VaSet +font "courier,12,0" +) +xt "129000,59600,138300,61000" +st "ramDataOut" +blo "129000,60800" +tm "WireNameMgr" +) +) +on &45 +) +*178 (Wire +uid 661,0 +shape (OrthoPolyLine +uid 662,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "50000,76000,57250,76000" +pts [ +"57250,76000" +"50000,76000" +] +) +start &112 +end &46 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 665,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 666,0 +va (VaSet +font "courier,12,0" +) +xt "50000,74600,57500,76000" +st "ramDataIn" +blo "50000,75800" +tm "WireNameMgr" +) +) +on &47 +) +*179 (Wire +uid 1322,0 +shape (OrthoPolyLine +uid 1323,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "114000,85000,122000,85000" +pts [ +"114000,85000" +"122000,85000" +] +) +start &59 +end &48 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1326,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1327,0 +va (VaSet +font "courier,12,0" +) +xt "117000,83600,122100,85000" +st "sdDqm" +blo "117000,84800" +tm "WireNameMgr" +) +) +on &49 +) +*180 (Wire +uid 1336,0 +shape (OrthoPolyLine +uid 1337,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "154750,39000,162000,39000" +pts [ +"154750,39000" +"162000,39000" +] +) +start &135 +end &50 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1340,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1341,0 +va (VaSet +font "courier,12,0" +) +xt "156000,37600,168800,39000" +st "memBankAddress" +blo "156000,38800" +tm "WireNameMgr" +) +) +on &51 +) +*181 (Wire +uid 1637,0 +shape (OrthoPolyLine +uid 1638,0 +va (VaSet +vasetType 3 +) +xt "94000,43000,97250,43000" +pts [ +"94000,43000" +"97250,43000" +] +) +end &122 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1643,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1644,0 +va (VaSet +font "courier,12,0" +) +xt "93000,41600,97100,43000" +st "reset" +blo "93000,42800" +tm "WireNameMgr" +) +) +on &16 +) +*182 (Wire +uid 1645,0 +shape (OrthoPolyLine +uid 1646,0 +va (VaSet +vasetType 3 +) +xt "94000,41000,97250,41000" +pts [ +"94000,41000" +"97250,41000" +] +) +end &119 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1651,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1652,0 +va (VaSet +font "courier,12,0" +) +xt "94000,39600,97800,41000" +st "clock" +blo "94000,40800" +tm "WireNameMgr" +) +) +on &39 +) +*183 (Wire +uid 1655,0 +shape (OrthoPolyLine +uid 1656,0 +va (VaSet +vasetType 3 +) +xt "74750,37000,97250,37000" +pts [ +"74750,37000" +"97250,37000" +] +) +start &148 +end &121 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1661,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1662,0 +va (VaSet +font "courier,12,0" +) +xt "76000,35600,86600,37000" +st "powerUpDone" +blo "76000,36800" +tm "WireNameMgr" +) +) +on &56 +) +*184 (Wire +uid 1671,0 +shape (OrthoPolyLine +uid 1672,0 +va (VaSet +vasetType 3 +) +xt "54000,29000,118000,37000" +pts [ +"114750,37000" +"118000,37000" +"118000,29000" +"54000,29000" +"54000,37000" +"57250,37000" +] +) +start &120 +end &147 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1677,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1678,0 +va (VaSet +font "courier,12,0" +) +xt "117000,35600,131000,37000" +st "endOfRefreshCount" +blo "117000,36800" +tm "WireNameMgr" +) +) +on &57 +) +*185 (Wire +uid 1687,0 +shape (OrthoPolyLine +uid 1688,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "74750,55000,98000,77000" +pts [ +"74750,55000" +"86000,55000" +"86000,77000" +"98000,77000" +] +) +start &146 +end &59 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1693,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1694,0 +va (VaSet +font "courier,12,0" +) +xt "88000,75600,97900,77000" +st "commandBus" +blo "88000,76800" +tm "WireNameMgr" +) +) +on &58 +) +*186 (Wire +uid 1761,0 +shape (OrthoPolyLine +uid 1762,0 +va (VaSet +vasetType 3 +) +xt "74750,39000,97250,57000" +pts [ +"74750,39000" +"90000,39000" +"90000,57000" +"97250,57000" +] +) +start &156 +end &96 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1768,0 +va (VaSet +font "courier,12,0" +) +xt "76000,37600,83900,39000" +st "timerStart" +blo "76000,38800" +tm "WireNameMgr" +) +) +on &63 +) +*187 (Wire +uid 1769,0 +shape (OrthoPolyLine +uid 1770,0 +va (VaSet +vasetType 3 +) +xt "94000,61000,97250,61000" +pts [ +"94000,61000" +"97250,61000" +] +) +end &93 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1775,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1776,0 +va (VaSet +font "courier,12,0" +) +xt "94000,59600,97800,61000" +st "clock" +blo "94000,60800" +tm "WireNameMgr" +) +) +on &39 +) +*188 (Wire +uid 1777,0 +shape (OrthoPolyLine +uid 1778,0 +va (VaSet +vasetType 3 +) +xt "94000,63000,97250,63000" +pts [ +"94000,63000" +"97250,63000" +] +) +end &94 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1783,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1784,0 +va (VaSet +font "courier,12,0" +) +xt "93000,61600,97100,63000" +st "reset" +blo "93000,62800" +tm "WireNameMgr" +) +) +on &16 +) +*189 (Wire +uid 1789,0 +shape (OrthoPolyLine +uid 1790,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52000,27000,120000,57000" +pts [ +"114750,57000" +"120000,57000" +"120000,27000" +"52000,27000" +"52000,39000" +"57250,39000" +] +) +start &95 +end &155 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1795,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1796,0 +va (VaSet +font "courier,12,0" +) +xt "117000,55600,124300,57000" +st "timerDone" +blo "117000,56800" +tm "WireNameMgr" +) +) +on &64 +) +*190 (Wire +uid 1916,0 +shape (OrthoPolyLine +uid 1917,0 +va (VaSet +vasetType 3 +) +xt "130000,39000,137250,39000" +pts [ +"130000,39000" +"137250,39000" +] +) +end &132 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1922,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1923,0 +va (VaSet +font "courier,12,0" +) +xt "127000,37600,139800,39000" +st "addrSelPrecharge" +blo "127000,38800" +tm "WireNameMgr" +) +) +on &65 +) +*191 (Wire +uid 1926,0 +shape (OrthoPolyLine +uid 1927,0 +va (VaSet +vasetType 3 +) +xt "74750,41000,82000,41000" +pts [ +"74750,41000" +"82000,41000" +] +) +start &143 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 1932,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1933,0 +va (VaSet +font "courier,12,0" +) +xt "76000,39600,88800,41000" +st "addrSelPrecharge" +blo "76000,40800" +tm "WireNameMgr" +) +) +on &65 +) +*192 (Wire +uid 2043,0 +shape (OrthoPolyLine +uid 2044,0 +va (VaSet +vasetType 3 +) +xt "74750,43000,82000,43000" +pts [ +"74750,43000" +"82000,43000" +] +) +start &142 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 2049,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2050,0 +va (VaSet +font "courier,12,0" +) +xt "76000,41600,88200,43000" +st "addrSelModeReg" +blo "76000,42800" +tm "WireNameMgr" +) +) +on &66 +) +*193 (Wire +uid 2053,0 +shape (OrthoPolyLine +uid 2054,0 +va (VaSet +vasetType 3 +) +xt "130000,41000,137250,41000" +pts [ +"130000,41000" +"137250,41000" +] +) +end &131 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2059,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2060,0 +va (VaSet +font "courier,12,0" +) +xt "127000,39600,139200,41000" +st "addrSelModeReg" +blo "127000,40800" +tm "WireNameMgr" +) +) +on &66 +) +*194 (Wire +uid 2063,0 +shape (OrthoPolyLine +uid 2064,0 +va (VaSet +vasetType 3 +) +xt "130000,63000,137250,63000" +pts [ +"130000,63000" +"137250,63000" +] +) +end &104 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2070,0 +va (VaSet +font "courier,12,0" +) +xt "131000,61600,136000,63000" +st "ramWr" +blo "131000,62800" +tm "WireNameMgr" +) +) +on &14 +) +*195 (Wire +uid 2071,0 +shape (OrthoPolyLine +uid 2072,0 +va (VaSet +vasetType 3 +) +xt "134000,67000,137250,67000" +pts [ +"134000,67000" +"137250,67000" +] +) +end &101 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2077,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2078,0 +va (VaSet +font "courier,12,0" +) +xt "134000,65600,137800,67000" +st "clock" +blo "134000,66800" +tm "WireNameMgr" +) +) +on &39 +) +*196 (Wire +uid 2079,0 +shape (OrthoPolyLine +uid 2080,0 +va (VaSet +vasetType 3 +) +xt "134000,69000,137250,69000" +pts [ +"134000,69000" +"137250,69000" +] +) +end &105 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2085,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2086,0 +va (VaSet +font "courier,12,0" +) +xt "133000,67600,137100,69000" +st "reset" +blo "133000,68800" +tm "WireNameMgr" +) +) +on &16 +) +*197 (Wire +uid 2234,0 +shape (OrthoPolyLine +uid 2235,0 +va (VaSet +vasetType 3 +) +xt "10000,27000,17250,27000" +pts [ +"10000,27000" +"17250,27000" +] +) +start &13 +end &71 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2240,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2241,0 +va (VaSet +font "courier,12,0" +) +xt "10000,25600,15000,27000" +st "ramWr" +blo "10000,26800" +tm "WireNameMgr" +) +) +on &14 +) +*198 (Wire +uid 2242,0 +shape (OrthoPolyLine +uid 2243,0 +va (VaSet +vasetType 3 +) +xt "14000,33000,17250,33000" +pts [ +"14000,33000" +"17250,33000" +] +) +end &70 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2248,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2249,0 +va (VaSet +font "courier,12,0" +) +xt "14000,31600,17800,33000" +st "clock" +blo "14000,32800" +tm "WireNameMgr" +) +) +on &39 +) +*199 (Wire +uid 2250,0 +shape (OrthoPolyLine +uid 2251,0 +va (VaSet +vasetType 3 +) +xt "14000,35000,17250,35000" +pts [ +"14000,35000" +"17250,35000" +] +) +end &72 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2256,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2257,0 +va (VaSet +font "courier,12,0" +) +xt "13000,33600,17100,35000" +st "reset" +blo "13000,34800" +tm "WireNameMgr" +) +) +on &16 +) +*200 (Wire +uid 2258,0 +shape (OrthoPolyLine +uid 2259,0 +va (VaSet +vasetType 3 +) +xt "34750,27000,42000,27000" +pts [ +"34750,27000" +"42000,27000" +] +) +start &74 +ss 0 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2264,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2265,0 +va (VaSet +font "courier,12,0" +) +xt "36000,25600,46000,27000" +st "writeRequest" +blo "36000,26800" +tm "WireNameMgr" +) +) +on &67 +) +*201 (Wire +uid 2268,0 +shape (OrthoPolyLine +uid 2269,0 +va (VaSet +vasetType 3 +) +xt "10000,29000,17250,29000" +pts [ +"17250,29000" +"10000,29000" +] +) +start &73 +ss 0 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2274,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2275,0 +va (VaSet +font "courier,12,0" +) +xt "11000,27600,17100,29000" +st "writeAck" +blo "11000,28800" +tm "WireNameMgr" +) +) +on &68 +) +*202 (Wire +uid 2342,0 +shape (OrthoPolyLine +uid 2343,0 +va (VaSet +vasetType 3 +) +xt "50000,45000,57250,45000" +pts [ +"57250,45000" +"50000,45000" +] +) +start &157 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2348,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2349,0 +va (VaSet +font "courier,12,0" +) +xt "49000,43600,55100,45000" +st "writeAck" +blo "49000,44800" +tm "WireNameMgr" +) +) +on &68 +) +*203 (Wire +uid 2350,0 +shape (OrthoPolyLine +uid 2351,0 +va (VaSet +vasetType 3 +) +xt "50000,43000,57250,43000" +pts [ +"57250,43000" +"50000,43000" +] +) +start &158 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2357,0 +va (VaSet +font "courier,12,0" +) +xt "48000,41600,58000,43000" +st "writeRequest" +blo "48000,42800" +tm "WireNameMgr" +) +) +on &67 +) +*204 (Wire +uid 2358,0 +shape (OrthoPolyLine +uid 2359,0 +va (VaSet +vasetType 3 +) +xt "74750,45000,82000,45000" +pts [ +"74750,45000" +"82000,45000" +] +) +start &144 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 2364,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2365,0 +va (VaSet +font "courier,12,0" +) +xt "76000,43600,85100,45000" +st "addrSelRow" +blo "76000,44800" +tm "WireNameMgr" +) +) +on &78 +) +*205 (Wire +uid 2368,0 +shape (OrthoPolyLine +uid 2369,0 +va (VaSet +vasetType 3 +) +xt "130000,43000,137250,43000" +pts [ +"130000,43000" +"137250,43000" +] +) +end &133 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2374,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2375,0 +va (VaSet +font "courier,12,0" +) +xt "128000,41600,137100,43000" +st "addrSelRow" +blo "128000,42800" +tm "WireNameMgr" +) +) +on &78 +) +*206 (Wire +uid 2376,0 +shape (OrthoPolyLine +uid 2377,0 +va (VaSet +vasetType 3 +) +xt "74750,47000,82000,47000" +pts [ +"74750,47000" +"82000,47000" +] +) +start &141 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 2382,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2383,0 +va (VaSet +font "courier,12,0" +) +xt "76000,45600,84400,47000" +st "addrSelCol" +blo "76000,46800" +tm "WireNameMgr" +) +) +on &79 +) +*207 (Wire +uid 2386,0 +shape (OrthoPolyLine +uid 2387,0 +va (VaSet +vasetType 3 +) +xt "130000,45000,137250,45000" +pts [ +"130000,45000" +"137250,45000" +] +) +end &130 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2393,0 +va (VaSet +font "courier,12,0" +) +xt "128000,43600,136400,45000" +st "addrSelCol" +blo "128000,44800" +tm "WireNameMgr" +) +) +on &79 +) +*208 (Wire +uid 2428,0 +shape (OrthoPolyLine +uid 2429,0 +va (VaSet +vasetType 3 +) +xt "14000,57000,17250,57000" +pts [ +"14000,57000" +"17250,57000" +] +) +end &83 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2432,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2433,0 +va (VaSet +font "courier,12,0" +) +xt "13000,55600,17100,57000" +st "reset" +blo "13000,56800" +tm "WireNameMgr" +) +) +on &16 +) +*209 (Wire +uid 2434,0 +shape (OrthoPolyLine +uid 2435,0 +va (VaSet +vasetType 3 +) +xt "14000,55000,17250,55000" +pts [ +"14000,55000" +"17250,55000" +] +) +end &81 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2439,0 +va (VaSet +font "courier,12,0" +) +xt "14000,53600,17800,55000" +st "clock" +blo "14000,54800" +tm "WireNameMgr" +) +) +on &39 +) +*210 (Wire +uid 2440,0 +shape (OrthoPolyLine +uid 2441,0 +va (VaSet +vasetType 3 +) +xt "10000,51000,17250,51000" +pts [ +"17250,51000" +"10000,51000" +] +) +start &84 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2446,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2447,0 +va (VaSet +font "courier,12,0" +) +xt "11000,49600,16800,51000" +st "readAck" +blo "11000,50800" +tm "WireNameMgr" +) +) +on &89 +) +*211 (Wire +uid 2448,0 +shape (OrthoPolyLine +uid 2449,0 +va (VaSet +vasetType 3 +) +xt "34750,49000,42000,49000" +pts [ +"34750,49000" +"42000,49000" +] +) +start &85 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2454,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2455,0 +va (VaSet +font "courier,12,0" +) +xt "36000,47600,45700,49000" +st "readRequest" +blo "36000,48800" +tm "WireNameMgr" +) +) +on &90 +) +*212 (Wire +uid 2460,0 +shape (OrthoPolyLine +uid 2461,0 +va (VaSet +vasetType 3 +) +xt "50000,47000,57250,47000" +pts [ +"57250,47000" +"50000,47000" +] +) +start &152 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2467,0 +va (VaSet +font "courier,12,0" +) +xt "49000,45600,58700,47000" +st "readRequest" +blo "49000,46800" +tm "WireNameMgr" +) +) +on &90 +) +*213 (Wire +uid 2468,0 +shape (OrthoPolyLine +uid 2469,0 +va (VaSet +vasetType 3 +) +xt "50000,49000,57250,49000" +pts [ +"57250,49000" +"50000,49000" +] +) +start &151 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2474,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2475,0 +va (VaSet +font "courier,12,0" +) +xt "49000,47600,54800,49000" +st "readAck" +blo "49000,48800" +tm "WireNameMgr" +) +) +on &89 +) +*214 (Wire +uid 2490,0 +shape (OrthoPolyLine +uid 2491,0 +va (VaSet +vasetType 3 +) +xt "54000,82000,57250,82000" +pts [ +"54000,82000" +"57250,82000" +] +) +end &110 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2496,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2497,0 +va (VaSet +font "courier,12,0" +) +xt "54000,80600,57800,82000" +st "clock" +blo "54000,81800" +tm "WireNameMgr" +) +) +on &39 +) +*215 (Wire +uid 2498,0 +shape (OrthoPolyLine +uid 2499,0 +va (VaSet +vasetType 3 +) +xt "54000,84000,57250,84000" +pts [ +"54000,84000" +"57250,84000" +] +) +end &113 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2504,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2505,0 +va (VaSet +font "courier,12,0" +) +xt "53000,82600,57100,84000" +st "reset" +blo "53000,83800" +tm "WireNameMgr" +) +) +on &16 +) +*216 (Wire +uid 2508,0 +shape (OrthoPolyLine +uid 2509,0 +va (VaSet +vasetType 3 +) +xt "74750,49000,82000,49000" +pts [ +"74750,49000" +"82000,49000" +] +) +start &154 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 2514,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2515,0 +va (VaSet +font "courier,12,0" +) +xt "76000,47600,85100,49000" +st "sampleData" +blo "76000,48800" +tm "WireNameMgr" +) +) +on &91 +) +*217 (Wire +uid 2518,0 +shape (OrthoPolyLine +uid 2519,0 +va (VaSet +vasetType 3 +) +xt "50000,80000,57250,80000" +pts [ +"57250,80000" +"50000,80000" +] +) +start &114 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 2524,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2525,0 +va (VaSet +font "courier,12,0" +) +xt "48000,78600,57100,80000" +st "sampleData" +blo "48000,79800" +tm "WireNameMgr" +) +) +on &91 +) +*218 (Wire +uid 3580,0 +shape (OrthoPolyLine +uid 3581,0 +va (VaSet +vasetType 3 +) +xt "114750,39000,122000,39000" +pts [ +"114750,39000" +"122000,39000" +] +) +start &123 +end &128 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 3584,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3585,0 +va (VaSet +font "courier,12,0" +) +xt "116750,37600,126850,39000" +st "selectRefresh" +blo "116750,38800" +tm "WireNameMgr" +) +) +on &127 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *219 (PackageList +uid 345,0 +stg "VerticalLayoutStrategy" +textVec [ +*220 (Text +uid 346,0 +va (VaSet +font "courier,8,1" +) +xt "-10000,0,-4600,1000" +st "Package List" +blo "-10000,800" +) +*221 (MLText +uid 347,0 +va (VaSet +) +xt "-10000,1000,8600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 348,0 +stg "VerticalLayoutStrategy" +textVec [ +*222 (Text +uid 349,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*223 (Text +uid 350,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*224 (MLText +uid 351,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*225 (Text +uid 352,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*226 (MLText +uid 353,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*227 (Text +uid 354,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*228 (MLText +uid 355,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "193,111,1505,984" +viewArea "-11177,81929,31991,110521" +cachedDiagramExtent "-10000,0,177800,124000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +scale 40 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-10000,0" +lastUid 4544,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*229 (Text +va (VaSet +font "courier,12,0" +) +xt "2200,3500,8700,4900" +st "" +blo "2200,4700" +tm "BdLibraryNameMgr" +) +*230 (Text +va (VaSet +font "courier,12,0" +) +xt "2200,4900,8000,6300" +st "" +blo "2200,6100" +tm "BlkNameMgr" +) +*231 (Text +va (VaSet +font "courier,12,0" +) +xt "2200,6300,5500,7700" +st "U_0" +blo "2200,7500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*232 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*233 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*234 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*235 (Text +va (VaSet +) +xt "900,3500,5300,4700" +st "Library" +blo "900,4500" +tm "BdLibraryNameMgr" +) +*236 (Text +va (VaSet +) +xt "900,4700,10200,5900" +st "SaComponent" +blo "900,5700" +tm "CptNameMgr" +) +*237 (Text +va (VaSet +) +xt "900,5900,3700,7100" +st "U_0" +blo "900,6900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*238 (Text +va (VaSet +) +xt "500,3500,4900,4700" +st "Library" +blo "500,4500" +) +*239 (Text +va (VaSet +) +xt "500,4700,10800,5900" +st "VhdlComponent" +blo "500,5700" +) +*240 (Text +va (VaSet +) +xt "500,5900,3300,7100" +st "U_0" +blo "500,6900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*241 (Text +va (VaSet +) +xt "50,3500,4450,4700" +st "Library" +blo "50,4500" +) +*242 (Text +va (VaSet +) +xt "50,4700,11750,5900" +st "VerilogComponent" +blo "50,5700" +) +*243 (Text +va (VaSet +) +xt "50,5900,2850,7100" +st "U_0" +blo "50,6900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*244 (Text +va (VaSet +font "courier,9,0" +) +xt "3150,4000,5150,5200" +st "eb1" +blo "3150,4900" +tm "HdlTextNameMgr" +) +*245 (Text +va (VaSet +font "courier,9,0" +) +xt "3150,5200,4150,6400" +st "1" +blo "3150,6100" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,9,0" +) +xt "-750,-600,750,600" +st "G" +blo "-750,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,-400,3400,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,-400,4700,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,9,0" +) +) +second (MLText +va (VaSet +font "courier,9,0" +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*246 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*247 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*248 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*249 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,9,0" +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,9,0" +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,9,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-10000,70600,-4600,71600" +st "Declarations" +blo "-10000,71400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-10000,71600,-7300,72600" +st "Ports:" +blo "-10000,72400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-10000,97800,-6200,98800" +st "Pre User:" +blo "-10000,98600" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "-8000,98800,29500,105100" +st "constant commandBusBitNb: positive := 6; +--constant maxDelayPeriodNb: positive := 5; + +-- delay counter: +-- 20120621 -- zas -- added to generics +--constant delayCounterBitNb: positive := 13; -- 66MHz * 100us = 6600 < 8K +--constant refreshPeriodNb: positive := 1031; -- 66MHz * 64ms / 4096" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "-10000,104400,-2900,105400" +st "Diagram Signals:" +blo "-10000,105200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-10000,70600,-5300,71600" +st "Post User:" +blo "-10000,71400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-10000,70600,-10000,70600" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 53,0 +usingSuid 1 +emptyRow *250 (LEmptyRow +) +uid 358,0 +optionalChildren [ +*251 (RefLabelRowHdr +) +*252 (TitleRowHdr +) +*253 (FilterRowHdr +) +*254 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*255 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*256 (GroupColHdr +tm "GroupColHdrMgr" +) +*257 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*258 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*259 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*260 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*261 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*262 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*263 (LeafLogPort +port (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 6,0 +) +) +uid 283,0 +) +*264 (LeafLogPort +port (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 5 +suid 9,0 +) +) +uid 285,0 +) +*265 (LeafLogPort +port (LogicalPort +decl (Decl +n "ramRd" +t "std_ulogic" +o 6 +suid 10,0 +) +) +uid 287,0 +) +*266 (LeafLogPort +port (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 11,0 +) +) +uid 289,0 +) +*267 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +) +uid 291,0 +) +*268 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 4,0 +) +) +uid 293,0 +) +*269 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 7,0 +) +) +uid 295,0 +) +*270 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 8,0 +) +) +uid 297,0 +) +*271 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 15 +suid 13,0 +) +) +uid 299,0 +) +*272 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sdCke" +t "std_ulogic" +o 16 +suid 14,0 +) +) +uid 301,0 +) +*273 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sdClk" +t "std_ulogic" +o 17 +suid 15,0 +) +) +uid 303,0 +) +*274 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 18 +suid 16,0 +) +) +uid 305,0 +) +*275 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 20 +suid 19,0 +) +) +uid 311,0 +) +*276 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 23,0 +) +) +uid 590,0 +) +*277 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 24,0 +) +) +uid 592,0 +) +*278 (LeafLogPort +port (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 25,0 +) +) +uid 594,0 +) +*279 (LeafLogPort +port (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 26,0 +) +) +uid 596,0 +) +*280 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 27,0 +) +) +uid 598,0 +) +*281 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 28,0 +) +) +uid 1313,0 +) +*282 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 29,0 +) +) +uid 1315,0 +) +*283 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 28 +suid 32,0 +) +) +uid 1667,0 +) +*284 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 27 +suid 35,0 +) +) +uid 1683,0 +) +*285 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "commandBus" +t "std_ulogic_vector" +b "(commandBusBitNb-1 DOWNTO 0)" +o 26 +suid 37,0 +) +) +uid 1707,0 +) +*286 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "timerStart" +t "std_ulogic" +o 33 +suid 39,0 +) +) +uid 1797,0 +) +*287 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "(1 TO maxDelayPeriodNb)" +o 32 +suid 41,0 +) +) +uid 1803,0 +) +*288 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 24 +suid 43,0 +) +) +uid 1934,0 +) +*289 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 23 +suid 44,0 +) +) +uid 2061,0 +) +*290 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "writeRequest" +t "std_ulogic" +o 35 +suid 45,0 +) +) +uid 2278,0 +) +*291 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "writeAck" +t "std_ulogic" +o 34 +suid 46,0 +) +) +uid 2280,0 +) +*292 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 25 +suid 47,0 +) +) +uid 2394,0 +) +*293 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 22 +suid 48,0 +) +) +uid 2396,0 +) +*294 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "readAck" +t "std_ulogic" +o 29 +suid 49,0 +) +) +uid 2476,0 +) +*295 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "readRequest" +t "std_ulogic" +o 30 +suid 50,0 +) +) +uid 2478,0 +) +*296 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sampleData" +t "std_ulogic" +o 31 +suid 52,0 +) +) +uid 2526,0 +) +*297 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 21 +suid 53,0 +) +) +uid 3592,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 371,0 +optionalChildren [ +*298 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *299 (MRCItem +litem &250 +pos 35 +dimension 20 +) +uid 373,0 +optionalChildren [ +*300 (MRCItem +litem &251 +pos 0 +dimension 20 +uid 374,0 +) +*301 (MRCItem +litem &252 +pos 1 +dimension 23 +uid 375,0 +) +*302 (MRCItem +litem &253 +pos 2 +hidden 1 +dimension 20 +uid 376,0 +) +*303 (MRCItem +litem &263 +pos 5 +dimension 20 +uid 284,0 +) +*304 (MRCItem +litem &264 +pos 8 +dimension 20 +uid 286,0 +) +*305 (MRCItem +litem &265 +pos 9 +dimension 20 +uid 288,0 +) +*306 (MRCItem +litem &266 +pos 10 +dimension 20 +uid 290,0 +) +*307 (MRCItem +litem &267 +pos 11 +dimension 20 +uid 292,0 +) +*308 (MRCItem +litem &268 +pos 3 +dimension 20 +uid 294,0 +) +*309 (MRCItem +litem &269 +pos 6 +dimension 20 +uid 296,0 +) +*310 (MRCItem +litem &270 +pos 7 +dimension 20 +uid 298,0 +) +*311 (MRCItem +litem &271 +pos 12 +dimension 20 +uid 300,0 +) +*312 (MRCItem +litem &272 +pos 13 +dimension 20 +uid 302,0 +) +*313 (MRCItem +litem &273 +pos 14 +dimension 20 +uid 304,0 +) +*314 (MRCItem +litem &274 +pos 15 +dimension 20 +uid 306,0 +) +*315 (MRCItem +litem &275 +pos 17 +dimension 20 +uid 312,0 +) +*316 (MRCItem +litem &276 +pos 0 +dimension 20 +uid 589,0 +) +*317 (MRCItem +litem &277 +pos 1 +dimension 20 +uid 591,0 +) +*318 (MRCItem +litem &278 +pos 2 +dimension 20 +uid 593,0 +) +*319 (MRCItem +litem &279 +pos 4 +dimension 20 +uid 595,0 +) +*320 (MRCItem +litem &280 +pos 18 +dimension 20 +uid 597,0 +) +*321 (MRCItem +litem &281 +pos 16 +dimension 20 +uid 1312,0 +) +*322 (MRCItem +litem &282 +pos 19 +dimension 20 +uid 1314,0 +) +*323 (MRCItem +litem &283 +pos 21 +dimension 20 +uid 1668,0 +) +*324 (MRCItem +litem &284 +pos 22 +dimension 20 +uid 1684,0 +) +*325 (MRCItem +litem &285 +pos 23 +dimension 20 +uid 1708,0 +) +*326 (MRCItem +litem &286 +pos 24 +dimension 20 +uid 1798,0 +) +*327 (MRCItem +litem &287 +pos 25 +dimension 20 +uid 1804,0 +) +*328 (MRCItem +litem &288 +pos 26 +dimension 20 +uid 1935,0 +) +*329 (MRCItem +litem &289 +pos 27 +dimension 20 +uid 2062,0 +) +*330 (MRCItem +litem &290 +pos 28 +dimension 20 +uid 2279,0 +) +*331 (MRCItem +litem &291 +pos 29 +dimension 20 +uid 2281,0 +) +*332 (MRCItem +litem &292 +pos 30 +dimension 20 +uid 2395,0 +) +*333 (MRCItem +litem &293 +pos 31 +dimension 20 +uid 2397,0 +) +*334 (MRCItem +litem &294 +pos 32 +dimension 20 +uid 2477,0 +) +*335 (MRCItem +litem &295 +pos 33 +dimension 20 +uid 2479,0 +) +*336 (MRCItem +litem &296 +pos 34 +dimension 20 +uid 2527,0 +) +*337 (MRCItem +litem &297 +pos 20 +dimension 20 +uid 3593,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 377,0 +optionalChildren [ +*338 (MRCItem +litem &254 +pos 0 +dimension 20 +uid 378,0 +) +*339 (MRCItem +litem &256 +pos 1 +dimension 50 +uid 379,0 +) +*340 (MRCItem +litem &257 +pos 2 +dimension 100 +uid 380,0 +) +*341 (MRCItem +litem &258 +pos 3 +dimension 50 +uid 381,0 +) +*342 (MRCItem +litem &259 +pos 4 +dimension 100 +uid 382,0 +) +*343 (MRCItem +litem &260 +pos 5 +dimension 100 +uid 383,0 +) +*344 (MRCItem +litem &261 +pos 6 +dimension 50 +uid 384,0 +) +*345 (MRCItem +litem &262 +pos 7 +dimension 80 +uid 385,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 372,0 +vaOverrides [ +] +) +] +) +uid 357,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *346 (LEmptyRow +) +uid 387,0 +optionalChildren [ +*347 (RefLabelRowHdr +) +*348 (TitleRowHdr +) +*349 (FilterRowHdr +) +*350 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*351 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*352 (GroupColHdr +tm "GroupColHdrMgr" +) +*353 (NameColHdr +tm "GenericNameColHdrMgr" +) +*354 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*355 (InitColHdr +tm "GenericValueColHdrMgr" +) +*356 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*357 (EolColHdr +tm "GenericEolColHdrMgr" +) +*358 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 852,0 +) +*359 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 854,0 +) +*360 (LogGeneric +generic (GiElement +name "chipAddressBitNb" +type "positive" +value "12" +) +uid 1038,0 +) +*361 (LogGeneric +generic (GiElement +name "chipBankAddressBitNb" +type "positive" +value "2" +) +uid 1444,0 +) +*362 (LogGeneric +generic (GiElement +name "rowAddressBitNb" +type "positive" +value "12" +) +uid 3935,0 +) +*363 (LogGeneric +generic (GiElement +name "colAddressBitNb" +type "positive" +value "9" +) +uid 3937,0 +) +*364 (LogGeneric +generic (GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 4122,0 +) +*365 (LogGeneric +generic (GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 4124,0 +) +*366 (LogGeneric +generic (GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +uid 4126,0 +) +*367 (LogGeneric +generic (GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +uid 4128,0 +) +*368 (LogGeneric +generic (GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 4130,0 +) +*369 (LogGeneric +generic (GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +uid 4132,0 +) +*370 (LogGeneric +generic (GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +uid 4134,0 +) +*371 (LogGeneric +generic (GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 4136,0 +) +*372 (LogGeneric +generic (GiElement +name "delayCounterbitNb" +type "positive" +value "13" +e "66MHz * 100us = 6600 < 8K" +) +uid 4138,0 +) +*373 (LogGeneric +generic (GiElement +name "refreshPeriodNb" +type "positive" +value "1031" +e "66MHz * 64ms / 4096" +) +uid 4140,0 +) +*374 (LogGeneric +generic (GiElement +name "maxDelayPeriodNb" +type "positive" +value "5" +e "66MHz*66ns = 4.356" +) +uid 4341,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 399,0 +optionalChildren [ +*375 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *376 (MRCItem +litem &346 +pos 17 +dimension 20 +) +uid 401,0 +optionalChildren [ +*377 (MRCItem +litem &347 +pos 0 +dimension 20 +uid 402,0 +) +*378 (MRCItem +litem &348 +pos 1 +dimension 23 +uid 403,0 +) +*379 (MRCItem +litem &349 +pos 2 +hidden 1 +dimension 20 +uid 404,0 +) +*380 (MRCItem +litem &358 +pos 0 +dimension 20 +uid 851,0 +) +*381 (MRCItem +litem &359 +pos 1 +dimension 20 +uid 853,0 +) +*382 (MRCItem +litem &360 +pos 2 +dimension 20 +uid 1037,0 +) +*383 (MRCItem +litem &361 +pos 3 +dimension 20 +uid 1443,0 +) +*384 (MRCItem +litem &362 +pos 4 +dimension 20 +uid 3936,0 +) +*385 (MRCItem +litem &363 +pos 5 +dimension 20 +uid 3938,0 +) +*386 (MRCItem +litem &364 +pos 6 +dimension 20 +uid 4123,0 +) +*387 (MRCItem +litem &365 +pos 7 +dimension 20 +uid 4125,0 +) +*388 (MRCItem +litem &366 +pos 8 +dimension 20 +uid 4127,0 +) +*389 (MRCItem +litem &367 +pos 9 +dimension 20 +uid 4129,0 +) +*390 (MRCItem +litem &368 +pos 10 +dimension 20 +uid 4131,0 +) +*391 (MRCItem +litem &369 +pos 11 +dimension 20 +uid 4133,0 +) +*392 (MRCItem +litem &370 +pos 12 +dimension 20 +uid 4135,0 +) +*393 (MRCItem +litem &371 +pos 13 +dimension 20 +uid 4137,0 +) +*394 (MRCItem +litem &372 +pos 14 +dimension 20 +uid 4139,0 +) +*395 (MRCItem +litem &373 +pos 15 +dimension 20 +uid 4141,0 +) +*396 (MRCItem +litem &374 +pos 16 +dimension 20 +uid 4342,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 405,0 +optionalChildren [ +*397 (MRCItem +litem &350 +pos 0 +dimension 20 +uid 406,0 +) +*398 (MRCItem +litem &352 +pos 1 +dimension 50 +uid 407,0 +) +*399 (MRCItem +litem &353 +pos 2 +dimension 222 +uid 408,0 +) +*400 (MRCItem +litem &354 +pos 3 +dimension 100 +uid 409,0 +) +*401 (MRCItem +litem &355 +pos 4 +dimension 50 +uid 410,0 +) +*402 (MRCItem +litem &356 +pos 5 +dimension 50 +uid 411,0 +) +*403 (MRCItem +litem &357 +pos 6 +dimension 256 +uid 412,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 400,0 +vaOverrides [ +] +) +] +) +uid 386,0 +type 1 +) +activeModelName "BlockDiag:GEN" +) diff --git a/Libs/Memory/hds/sdram@controller/symbol.sb b/Libs/Memory/hds/sdram@controller/symbol.sb new file mode 100644 index 0000000..0ae9d39 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller/symbol.sb @@ -0,0 +1,2973 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 44,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 186,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 20,0 +) +) +uid 397,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 21,0 +) +) +uid 399,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 22,0 +) +) +uid 401,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 23,0 +) +) +uid 403,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +uid 405,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 25,0 +) +) +uid 407,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 26,0 +) +) +uid 409,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 27,0 +) +) +uid 411,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 5 +suid 28,0 +) +) +uid 413,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "ramRd" +t "std_ulogic" +o 6 +suid 29,0 +) +) +uid 415,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 30,0 +) +) +uid 417,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 31,0 +) +) +uid 419,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 15 +suid 32,0 +) +) +uid 421,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sdCke" +t "std_ulogic" +o 16 +suid 33,0 +) +) +uid 423,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sdClk" +t "std_ulogic" +o 17 +suid 34,0 +) +) +uid 425,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 18 +suid 35,0 +) +) +uid 427,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 36,0 +) +) +uid 429,0 +) +*31 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 20 +suid 38,0 +) +) +uid 433,0 +) +*32 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 42,0 +) +) +uid 492,0 +) +*33 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 43,0 +) +) +uid 553,0 +) +*34 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 21 +suid 44,0 +) +) +uid 650,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 199,0 +optionalChildren [ +*35 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *36 (MRCItem +litem &1 +pos 21 +dimension 20 +) +uid 201,0 +optionalChildren [ +*37 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 202,0 +) +*38 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 203,0 +) +*39 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 204,0 +) +*40 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 398,0 +) +*41 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 400,0 +) +*42 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 402,0 +) +*43 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 404,0 +) +*44 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 406,0 +) +*45 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 408,0 +) +*46 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 410,0 +) +*47 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 412,0 +) +*48 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 414,0 +) +*49 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 416,0 +) +*50 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 418,0 +) +*51 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 420,0 +) +*52 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 422,0 +) +*53 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 424,0 +) +*54 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 426,0 +) +*55 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 428,0 +) +*56 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 430,0 +) +*57 (MRCItem +litem &31 +pos 17 +dimension 20 +uid 434,0 +) +*58 (MRCItem +litem &32 +pos 18 +dimension 20 +uid 493,0 +) +*59 (MRCItem +litem &33 +pos 19 +dimension 20 +uid 554,0 +) +*60 (MRCItem +litem &34 +pos 20 +dimension 20 +uid 649,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 205,0 +optionalChildren [ +*61 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 206,0 +) +*62 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 207,0 +) +*63 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 208,0 +) +*64 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 209,0 +) +*65 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 210,0 +) +*66 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 211,0 +) +*67 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 212,0 +) +*68 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 213,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 200,0 +vaOverrides [ +] +) +] +) +uid 185,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *69 (LEmptyRow +) +uid 215,0 +optionalChildren [ +*70 (RefLabelRowHdr +) +*71 (TitleRowHdr +) +*72 (FilterRowHdr +) +*73 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*74 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*75 (GroupColHdr +tm "GroupColHdrMgr" +) +*76 (NameColHdr +tm "GenericNameColHdrMgr" +) +*77 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*78 (InitColHdr +tm "GenericValueColHdrMgr" +) +*79 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*80 (EolColHdr +tm "GenericEolColHdrMgr" +) +*81 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 542,0 +) +*82 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 544,0 +) +*83 (LogGeneric +generic (GiElement +name "chipAddressBitNb" +type "positive" +value "12" +) +uid 546,0 +) +*84 (LogGeneric +generic (GiElement +name "chipBankAddressBitNb" +type "positive" +value "2" +) +uid 555,0 +) +*85 (LogGeneric +generic (GiElement +name "rowAddressBitNb" +type "positive" +value "12" +) +uid 726,0 +) +*86 (LogGeneric +generic (GiElement +name "colAddressBitNb" +type "positive" +value "9" +) +uid 728,0 +) +*87 (LogGeneric +generic (GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 753,0 +) +*88 (LogGeneric +generic (GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 755,0 +) +*89 (LogGeneric +generic (GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +uid 757,0 +) +*90 (LogGeneric +generic (GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +uid 759,0 +) +*91 (LogGeneric +generic (GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 761,0 +) +*92 (LogGeneric +generic (GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +uid 763,0 +) +*93 (LogGeneric +generic (GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +uid 765,0 +) +*94 (LogGeneric +generic (GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 767,0 +) +*95 (LogGeneric +generic (GiElement +name "delayCounterbitNb" +type "positive" +value "13" +e "66MHz * 100us = 6600 < 8K" +) +uid 769,0 +) +*96 (LogGeneric +generic (GiElement +name "refreshPeriodNb" +type "positive" +value "1031" +e "66MHz * 64ms / 4096" +) +uid 771,0 +) +*97 (LogGeneric +generic (GiElement +name "maxDelayPeriodNb" +type "positive" +value "5" +e "66MHz*66ns = 4.356" +) +uid 796,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 227,0 +optionalChildren [ +*98 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *99 (MRCItem +litem &69 +pos 4 +dimension 20 +) +uid 229,0 +optionalChildren [ +*100 (MRCItem +litem &70 +pos 0 +dimension 20 +uid 230,0 +) +*101 (MRCItem +litem &71 +pos 1 +dimension 23 +uid 231,0 +) +*102 (MRCItem +litem &72 +pos 2 +hidden 1 +dimension 20 +uid 232,0 +) +*103 (MRCItem +litem &81 +pos 0 +dimension 20 +uid 543,0 +) +*104 (MRCItem +litem &82 +pos 1 +dimension 20 +uid 545,0 +) +*105 (MRCItem +litem &83 +pos 2 +dimension 20 +uid 547,0 +) +*106 (MRCItem +litem &84 +pos 3 +dimension 20 +uid 556,0 +) +*107 (MRCItem +litem &85 +pos 4 +dimension 20 +uid 725,0 +) +*108 (MRCItem +litem &86 +pos 5 +dimension 20 +uid 727,0 +) +*109 (MRCItem +litem &87 +pos 6 +dimension 20 +uid 752,0 +) +*110 (MRCItem +litem &88 +pos 7 +dimension 20 +uid 754,0 +) +*111 (MRCItem +litem &89 +pos 8 +dimension 20 +uid 756,0 +) +*112 (MRCItem +litem &90 +pos 9 +dimension 20 +uid 758,0 +) +*113 (MRCItem +litem &91 +pos 10 +dimension 20 +uid 760,0 +) +*114 (MRCItem +litem &92 +pos 11 +dimension 20 +uid 762,0 +) +*115 (MRCItem +litem &93 +pos 12 +dimension 20 +uid 764,0 +) +*116 (MRCItem +litem &94 +pos 13 +dimension 20 +uid 766,0 +) +*117 (MRCItem +litem &95 +pos 14 +dimension 20 +uid 768,0 +) +*118 (MRCItem +litem &96 +pos 15 +dimension 20 +uid 770,0 +) +*119 (MRCItem +litem &97 +pos 16 +dimension 20 +uid 795,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 233,0 +optionalChildren [ +*120 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 234,0 +) +*121 (MRCItem +litem &75 +pos 1 +dimension 50 +uid 235,0 +) +*122 (MRCItem +litem &76 +pos 2 +dimension 100 +uid 236,0 +) +*123 (MRCItem +litem &77 +pos 3 +dimension 100 +uid 237,0 +) +*124 (MRCItem +litem &78 +pos 4 +dimension 50 +uid 238,0 +) +*125 (MRCItem +litem &79 +pos 5 +dimension 50 +uid 239,0 +) +*126 (MRCItem +litem &80 +pos 6 +dimension 80 +uid 240,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 228,0 +vaOverrides [ +] +) +] +) +uid 214,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramController" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sdramController" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramController" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramController/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:14" +) +(vvPair +variable "unit" +value "sdramController" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 184,0 +optionalChildren [ +*127 (SymbolBody +uid 8,0 +optionalChildren [ +*128 (CptPort +uid 287,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 288,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,29625,42000,30375" +) +tg (CPTG +uid 289,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 290,0 +va (VaSet +) +xt "43000,29500,45100,30500" +st "clock" +blo "43000,30300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 291,0 +va (VaSet +font "courier,8,0" +) +xt "0,12400,19000,13300" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 20,0 +) +) +) +*129 (CptPort +uid 292,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 517,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,15625,42000,16375" +) +tg (CPTG +uid 294,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 295,0 +va (VaSet +) +xt "43000,15500,48400,16500" +st "ramDataValid" +blo "43000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 296,0 +va (VaSet +font "courier,8,0" +) +xt "0,24100,19000,25000" +st "ramDataValid : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 21,0 +) +) +) +*130 (CptPort +uid 297,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 298,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,5625,42000,6375" +) +tg (CPTG +uid 299,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 300,0 +va (VaSet +) +xt "43000,5500,46300,6500" +st "ramAddr" +blo "43000,6300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 301,0 +va (VaSet +font "courier,8,0" +) +xt "0,14200,30500,15100" +st "ramAddr : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 22,0 +) +) +) +*131 (CptPort +uid 302,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 303,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,5625,58750,6375" +) +tg (CPTG +uid 304,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 305,0 +va (VaSet +) +xt "51800,5500,57000,6500" +st "memAddress" +ju 2 +blo "57000,6300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 306,0 +va (VaSet +font "courier,8,0" +) +xt "0,19600,38000,20500" +st "memAddress : OUT std_ulogic_vector ( chipAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 23,0 +) +) +) +*132 (CptPort +uid 307,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 308,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,9625,42000,10375" +) +tg (CPTG +uid 309,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 310,0 +va (VaSet +) +xt "43000,9500,47900,10500" +st "ramDataOut" +blo "43000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 311,0 +va (VaSet +font "courier,8,0" +) +xt "0,15100,33500,16000" +st "ramDataOut : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +) +*133 (CptPort +uid 312,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 313,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,9625,58750,10375" +) +tg (CPTG +uid 314,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 315,0 +va (VaSet +) +xt "52800,9500,57000,10500" +st "memDataIn" +ju 2 +blo "57000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 316,0 +va (VaSet +font "courier,8,0" +) +xt "0,13300,33500,14200" +st "memDataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 25,0 +) +) +) +*134 (CptPort +uid 317,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 318,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,11625,58750,12375" +) +tg (CPTG +uid 319,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 320,0 +va (VaSet +) +xt "51800,11500,57000,12500" +st "memDataOut" +ju 2 +blo "57000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 321,0 +va (VaSet +font "courier,8,0" +) +xt "0,21400,33500,22300" +st "memDataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 26,0 +) +) +) +*135 (CptPort +uid 322,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 323,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,19625,58750,20375" +) +tg (CPTG +uid 324,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 325,0 +va (VaSet +) +xt "53200,19500,57000,20500" +st "memWr_n" +ju 2 +blo "57000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 326,0 +va (VaSet +font "courier,8,0" +) +xt "0,22300,19000,23200" +st "memWr_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 27,0 +) +) +) +*136 (CptPort +uid 327,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 328,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,27625,42000,28375" +) +tg (CPTG +uid 329,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 330,0 +va (VaSet +) +xt "43000,27500,45600,28500" +st "ramEn" +blo "43000,28300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 331,0 +va (VaSet +font "courier,8,0" +) +xt "0,16000,19000,16900" +st "ramEn : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*137 (CptPort +uid 332,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 333,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,11625,42000,12375" +) +tg (CPTG +uid 334,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 335,0 +va (VaSet +) +xt "43000,11500,45700,12500" +st "ramRd" +blo "43000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 336,0 +va (VaSet +font "courier,8,0" +) +xt "0,16900,19000,17800" +st "ramRd : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "ramRd" +t "std_ulogic" +o 6 +suid 29,0 +) +) +) +*138 (CptPort +uid 337,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 338,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,13625,42000,14375" +) +tg (CPTG +uid 339,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 340,0 +va (VaSet +) +xt "43000,13500,45700,14500" +st "ramWr" +blo "43000,14300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 341,0 +va (VaSet +font "courier,8,0" +) +xt "0,17800,19000,18700" +st "ramWr : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*139 (CptPort +uid 342,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 343,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,31625,42000,32375" +) +tg (CPTG +uid 344,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 345,0 +va (VaSet +) +xt "43000,31500,45100,32500" +st "reset" +blo "43000,32300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 346,0 +va (VaSet +font "courier,8,0" +) +xt "0,18700,19000,19600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 31,0 +) +) +) +*140 (CptPort +uid 347,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 348,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,17625,58750,18375" +) +tg (CPTG +uid 349,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 350,0 +va (VaSet +) +xt "53600,17500,57000,18500" +st "sdCas_n" +ju 2 +blo "57000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 351,0 +va (VaSet +font "courier,8,0" +) +xt "0,25000,19000,25900" +st "sdCas_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 15 +suid 32,0 +) +) +) +*141 (CptPort +uid 352,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 353,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,23625,58750,24375" +) +tg (CPTG +uid 354,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 355,0 +va (VaSet +) +xt "54500,23500,57000,24500" +st "sdCke" +ju 2 +blo "57000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 356,0 +va (VaSet +font "courier,8,0" +) +xt "0,25900,19000,26800" +st "sdCke : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdCke" +t "std_ulogic" +o 16 +suid 33,0 +) +) +) +*142 (CptPort +uid 357,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 358,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,25625,58750,26375" +) +tg (CPTG +uid 359,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 360,0 +va (VaSet +) +xt "54700,25500,57000,26500" +st "sdClk" +ju 2 +blo "57000,26300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 361,0 +va (VaSet +font "courier,8,0" +) +xt "0,26800,19000,27700" +st "sdClk : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdClk" +t "std_ulogic" +o 17 +suid 34,0 +) +) +) +*143 (CptPort +uid 362,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 363,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,13625,58750,14375" +) +tg (CPTG +uid 364,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 365,0 +va (VaSet +) +xt "54000,13500,57000,14500" +st "sdCs_n" +ju 2 +blo "57000,14300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 366,0 +va (VaSet +font "courier,8,0" +) +xt "0,27700,19000,28600" +st "sdCs_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 18 +suid 35,0 +) +) +) +*144 (CptPort +uid 367,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 368,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,21625,58750,22375" +) +tg (CPTG +uid 369,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 370,0 +va (VaSet +) +xt "54100,21500,57000,22500" +st "sdDqm" +ju 2 +blo "57000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 371,0 +va (VaSet +font "courier,8,0" +) +xt "0,28600,28500,29500" +st "sdDqm : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 36,0 +) +) +) +*145 (CptPort +uid 377,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 378,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,15625,58750,16375" +) +tg (CPTG +uid 379,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 380,0 +va (VaSet +) +xt "53600,15500,57000,16500" +st "sdRas_n" +ju 2 +blo "57000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 381,0 +va (VaSet +font "courier,8,0" +) +xt "0,29500,19000,30400" +st "sdRas_n : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 20 +suid 38,0 +) +) +) +*146 (CptPort +uid 487,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 518,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,7625,42000,8375" +) +tg (CPTG +uid 489,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 490,0 +va (VaSet +) +xt "43000,7500,46900,8500" +st "ramDataIn" +blo "43000,8300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 491,0 +va (VaSet +font "courier,8,0" +) +xt "0,23200,33500,24100" +st "ramDataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 42,0 +) +) +) +*147 (CptPort +uid 548,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 549,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,7625,58750,8375" +) +tg (CPTG +uid 550,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 551,0 +va (VaSet +) +xt "50200,7500,57000,8500" +st "memBankAddress" +ju 2 +blo "57000,8300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 552,0 +va (VaSet +font "courier,8,0" +) +xt "0,20500,40000,21400" +st "memBankAddress : OUT std_ulogic_vector ( chipBankAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 43,0 +) +) +) +*148 (CptPort +uid 651,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 652,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58000,29625,58750,30375" +) +tg (CPTG +uid 653,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 654,0 +va (VaSet +) +xt "51500,29500,57000,30500" +st "selectRefresh" +ju 2 +blo "57000,30300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 655,0 +va (VaSet +font "courier,8,0" +) +xt "0,30400,18000,31300" +st "selectRefresh : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 21 +suid 44,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,2000,58000,34000" +) +oxt "15000,6000,31000,34000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "42550,34500,45550,35400" +st "Memory" +blo "42550,35200" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "42550,35400,50550,36300" +st "sdramController" +blo "42550,36100" +) +) +gi *149 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "42000,38200,77500,55300" +st "Generic Declarations + +addressBitNb positive 24 +dataBitNb positive 16 +chipAddressBitNb positive 12 +chipBankAddressBitNb positive 2 +rowAddressBitNb positive 12 +colAddressBitNb positive 9 +activeToReadPeriodNb positive 2 --66MHz * 20ns = 1.32 +activeToWritePeriodNb positive 2 --66MHz * 20ns = 1.32 +loadModeToActivePeriodNb positive 1 --1 CK +prechargeToRefreshPeriodNb positive 2 --66MHz * 20 ns = 1.32 +readToActivePeriodNb positive 3 --1 CK + 66MHz * 20ns = 2.32 +readToSamplePeriodNb positive 2 --2 CK with latency = 2 +refreshDelayPeriodNb positive 5 --66MHz * 66ns = 4.356 +writeToActivePeriodNb positive 3 --1 CK + 66MHz * 20ns = 2.32 +delayCounterbitNb positive 13 --66MHz * 100us = 6600 < 8K +refreshPeriodNb positive 1031 --66MHz * 64ms / 4096 +maxDelayPeriodNb positive 5 --66MHz*66ns = 4.356 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "12" +) +(GiElement +name "chipBankAddressBitNb" +type "positive" +value "2" +) +(GiElement +name "rowAddressBitNb" +type "positive" +value "12" +) +(GiElement +name "colAddressBitNb" +type "positive" +value "9" +) +(GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +(GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +(GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +(GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +(GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +(GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +(GiElement +name "delayCounterbitNb" +type "positive" +value "13" +e "66MHz * 100us = 6600 < 8K" +) +(GiElement +name "refreshPeriodNb" +type "positive" +value "1031" +e "66MHz * 64ms / 4096" +) +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "5" +e "66MHz*66ns = 4.356" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*150 (Grouping +uid 16,0 +optionalChildren [ +*151 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,49200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*152 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*153 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*154 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*155 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*156 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*157 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*158 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*159 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*160 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,48600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *161 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*162 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*163 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "13,42,1372,937" +viewArea "-3000,-1000,73380,51327" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *164 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *165 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,10400,3400,11400" +st "Declarations" +blo "-2000,11200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,11400,700,12400" +st "Ports:" +blo "-2000,12200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,31300,500,32200" +st "User:" +blo "-2000,32000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,10400,3800,11400" +st "Internal User:" +blo "-2000,11200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,32200,0,32200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,10400,-2000,10400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 819,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/sdram@controller@build@address/symbol.sb b/Libs/Memory/hds/sdram@controller@build@address/symbol.sb new file mode 100644 index 0000000..5e8a713 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@build@address/symbol.sb @@ -0,0 +1,1823 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 24,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 26 +suid 18,0 +) +) +uid 360,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 26 +suid 19,0 +) +) +uid 362,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 26 +suid 20,0 +) +) +uid 364,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 26 +suid 21,0 +) +) +uid 366,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 22,0 +) +) +uid 368,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 23,0 +) +) +uid 370,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 24,0 +) +) +uid 372,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 96,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 361,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 363,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 365,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 367,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 369,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 371,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 373,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 159,0 +) +*54 (LogGeneric +generic (GiElement +name "chipAddressBitNb" +type "positive" +value "12" +) +uid 161,0 +) +*55 (LogGeneric +generic (GiElement +name "chipBankAddressBitNb" +type "positive" +value "2" +) +uid 163,0 +) +*56 (LogGeneric +generic (GiElement +name "rowAddressBitNb" +type "positive" +value "12" +) +uid 420,0 +) +*57 (LogGeneric +generic (GiElement +name "colAddressBitNb" +type "positive" +value "2" +) +uid 422,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*58 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *59 (MRCItem +litem &41 +pos 5 +dimension 20 +) +uid 124,0 +optionalChildren [ +*60 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 125,0 +) +*61 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 126,0 +) +*62 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*63 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 160,0 +) +*64 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 162,0 +) +*65 (MRCItem +litem &55 +pos 2 +dimension 20 +uid 164,0 +) +*66 (MRCItem +litem &56 +pos 3 +dimension 20 +uid 421,0 +) +*67 (MRCItem +litem &57 +pos 4 +dimension 20 +uid 423,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*68 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 129,0 +) +*69 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 130,0 +) +*70 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 131,0 +) +*71 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 132,0 +) +*72 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 133,0 +) +*73 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 134,0 +) +*74 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@build@address/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@build@address/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@build@address" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerBuildAddress" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sdramControllerBuildAddress" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerBuildAddress" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@build@address/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerBuildAddress/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:14" +) +(vvPair +variable "unit" +value "sdramControllerBuildAddress" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 325,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 326,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,17625,34000,18375" +) +tg (CPTG +uid 327,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 328,0 +va (VaSet +) +xt "35000,17500,39600,18500" +st "addrSelCol" +blo "35000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 329,0 +va (VaSet +font "courier,8,0" +) +xt "0,30400,20000,31300" +st "addrSelCol : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 26 +suid 18,0 +) +) +) +*77 (CptPort +uid 330,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 331,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,13625,34000,14375" +) +tg (CPTG +uid 332,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 333,0 +va (VaSet +) +xt "35000,13500,41800,14500" +st "addrSelModeReg" +blo "35000,14300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 334,0 +va (VaSet +font "courier,8,0" +) +xt "0,31300,20000,32200" +st "addrSelModeReg : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 26 +suid 19,0 +) +) +) +*78 (CptPort +uid 335,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 336,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,11625,34000,12375" +) +tg (CPTG +uid 337,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 338,0 +va (VaSet +) +xt "35000,11500,42000,12500" +st "addrSelPrecharge" +blo "35000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 339,0 +va (VaSet +font "courier,8,0" +) +xt "0,32200,20000,33100" +st "addrSelPrecharge : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 26 +suid 20,0 +) +) +) +*79 (CptPort +uid 340,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 341,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,15625,34000,16375" +) +tg (CPTG +uid 342,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 343,0 +va (VaSet +) +xt "35000,15500,39900,16500" +st "addrSelRow" +blo "35000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 344,0 +va (VaSet +font "courier,8,0" +) +xt "0,33100,20000,34000" +st "addrSelRow : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 26 +suid 21,0 +) +) +) +*80 (CptPort +uid 345,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 346,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,9625,50750,10375" +) +tg (CPTG +uid 347,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 348,0 +va (VaSet +) +xt "43800,9500,49000,10500" +st "memAddress" +ju 2 +blo "49000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 349,0 +va (VaSet +font "courier,8,0" +) +xt "0,34900,39000,35800" +st "memAddress : OUT std_ulogic_vector ( chipAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 22,0 +) +) +) +*81 (CptPort +uid 350,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 351,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,11625,50750,12375" +) +tg (CPTG +uid 352,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 353,0 +va (VaSet +) +xt "42200,11500,49000,12500" +st "memBankAddress" +ju 2 +blo "49000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 354,0 +va (VaSet +font "courier,8,0" +) +xt "0,35800,40000,36700" +st "memBankAddress : OUT std_ulogic_vector ( chipBankAddressBitNb-1 DOWNTO 0 )" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 23,0 +) +) +) +*82 (CptPort +uid 355,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 356,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,9625,34000,10375" +) +tg (CPTG +uid 357,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 358,0 +va (VaSet +) +xt "35000,9500,38300,10500" +st "ramAddr" +blo "35000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 359,0 +va (VaSet +font "courier,8,0" +) +xt "0,34000,31500,34900" +st "ramAddr : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 24,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,6000,50000,22000" +) +oxt "15000,6000,31000,23000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "33850,22500,36850,23400" +st "Memory" +blo "33850,23200" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "33850,23400,47850,24300" +st "sdramControllerBuildAddress" +blo "33850,24100" +) +) +gi *83 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,26000,51500,32300" +st "Generic Declarations + +addressBitNb positive 24 +chipAddressBitNb positive 12 +chipBankAddressBitNb positive 2 +rowAddressBitNb positive 12 +colAddressBitNb positive 2 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "12" +) +(GiElement +name "chipBankAddressBitNb" +type "positive" +value "2" +) +(GiElement +name "rowAddressBitNb" +type "positive" +value "12" +) +(GiElement +name "colAddressBitNb" +type "positive" +value "2" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*84 (Grouping +uid 16,0 +optionalChildren [ +*85 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,49200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,44400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *95 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*96 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*97 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "11,45,1386,982" +viewArea "-3100,-1100,72602,50512" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *98 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *99 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,28400,3400,29400" +st "Declarations" +blo "-2000,29200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,29400,700,30400" +st "Ports:" +blo "-2000,30200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,36700,500,37600" +st "User:" +blo "-2000,37400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,28400,3800,29400" +st "Internal User:" +blo "-2000,29200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,37600,0,37600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,28400,-2000,28400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 446,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory/hds/sdram@controller@fsm/fsm.sm b/Libs/Memory/hds/sdram@controller@fsm/fsm.sm new file mode 100644 index 0000000..d559982 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@fsm/fsm.sm @@ -0,0 +1,11074 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +machine (Machine +name "csm" +children [ +(Machine +name "csm" +children [ +] +stateSignalName "current_state" +) +] +) +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (StateMachine +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm/fsm.sm.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm/fsm.sm.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "fsm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerFsm" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sdramControllerFsm" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "fsm.sm" +) +(vvPair +variable "f_logical" +value "fsm.sm" +) +(vvPair +variable "f_noext" +value "fsm" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:15" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerFsm" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm/fsm.sm" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerFsm/fsm.sm" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sm" +) +(vvPair +variable "this_file" +value "fsm" +) +(vvPair +variable "this_file_logical" +value "fsm" +) +(vvPair +variable "time" +value "13:45:15" +) +(vvPair +variable "unit" +value "sdramControllerFsm" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "fsm" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +uid 156,0 +optionalChildren [ +*1 (ConcurrentSM +uid 1,0 +topDiagram (StateDiagram +LanguageMgr "None" +uid 2,0 +optionalChildren [ +*2 (State +uid 39,0 +shape (Circle +uid 40,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "6000,24000,14000,32000" +radius 4000 +) +name (Text +uid 41,0 +va (VaSet +font "courier,10,1" +) +xt "7500,27400,12500,28600" +st "powerUp" +ju 0 +blo "10000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 42,0 +ps "CenterOffsetStrategy" +text (Text +uid 43,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "10100,28300,13700,29500" +st "wait 2" +blo "10100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 44,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "10000,29000,10000,29000" +blo "10000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 47,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 48,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "7900,29400,16100,30600" +) +autoResize 1 +tline (Line +uid 49,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "8000,29300,16000,29300" +pts [ +"8000,29300" +"16000,29300" +] +) +bline (Line +uid 50,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "8000,28650,16000,28650" +pts [ +"8000,28650" +"16000,28650" +] +) +ttri (Triangle +uid 51,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "7550,28925,7900,29275" +) +btri (Triangle +uid 52,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "7550,26625,7900,26975" +) +entryActions (MLText +uid 53,0 +va (VaSet +) +xt "8000,29100,8000,29100" +tm "Actions" +) +inActions (MLText +uid 54,0 +va (VaSet +) +xt "8000,29500,20000,30500" +st "powerUpDone <= '0';" +tm "Actions" +) +exitActions (MLText +uid 55,0 +va (VaSet +) +xt "8000,26800,8000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 45,0 +ps "CenterOffsetStrategy" +text (MLText +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "8400,29000,13900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*3 (SmClockPoint +uid 56,0 +shape (CompositeShape +uid 57,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +uid 58,0 +sl 0 +ro 270 +xt "3250,10500,5500,11500" +) +(OrthoPolyLine +uid 59,0 +sl 0 +ro 270 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "4150,10700,4749,11300" +pts [ +"4150,10700" +"4449,10700" +"4449,11300" +"4749,11300" +] +) +(Arc2D +pts [ +"3759,11153" +"3504,10847" +"3759,10847" +] +uid 60,0 +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "3431,10800,3759,11199" +) +] +) +name (TextAssociate +uid 61,0 +ps "CenterOffsetStrategy" +text (Text +uid 62,0 +va (VaSet +font "courier,8,0" +) +xt "650,10500,2750,11500" +st "clock" +ju 2 +blo "2750,11300" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +uid 63,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 64,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "5500,10450,15200,11550" +) +autoResize 1 +cond (MLText +uid 65,0 +va (VaSet +font "courier,8,0" +) +xt "5600,10550,15100,11450" +st "rising_edge(clock)" +tm "SmControlConditionMgr" +) +) +edge 2 +) +*4 (SmResetPoint +uid 66,0 +shape (CompositeShape +uid 67,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +uid 68,0 +sl 0 +ro 270 +xt "3250,14500,5500,15500" +) +(OrthoPolyLine +uid 69,0 +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "4150,14700,4749,15300" +pts [ +"4749,14700" +"4449,14700" +"4449,15300" +"4150,15300" +] +) +(Line +uid 70,0 +sl 0 +ro 270 +xt "3499,14825,3599,14875" +pts [ +"3499,14875" +"3599,14825" +] +) +(Line +uid 71,0 +sl 0 +ro 270 +xt "3499,14825,3499,15175" +pts [ +"3499,15175" +"3499,14825" +] +) +(Circle +uid 72,0 +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,0" +) +xt "4299,14850,4599,15150" +radius 150 +) +] +) +cond (SmControlCondition +uid 78,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 79,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1650,12950,8050,14050" +) +autoResize 1 +cond (MLText +uid 80,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "1750,13050,7950,13950" +st "reset = '1'" +tm "SmControlConditionMgr" +) +) +prio (TransitionPriority +uid 75,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 76,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "5500,14219,7062,15781" +radius 781 +) +pr (Text +uid 77,0 +va (VaSet +isHidden 1 +) +xt "5881,14500,6681,15500" +st "1" +ju 0 +blo "6281,15300" +tm "TransitionPriority" +) +padding "100,100" +) +name (TextAssociate +uid 73,0 +ps "CenterOffsetStrategy" +text (Text +uid 74,0 +va (VaSet +font "courier,8,0" +) +xt "1150,14500,3250,15500" +st "reset" +ju 2 +blo "3250,15300" +tm "SmControlSignalNameMgr" +) +) +actions (TextAssociate +uid 81,0 +ps "CenterOffsetStrategy" +text (MLText +uid 82,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "11125,19125,18125,20025" +st "< Automatic >" +tm "Actions" +) +) +level 1 +) +*5 (Link +uid 83,0 +shape (CompositeShape +uid 84,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 85,0 +sl 0 +ro 270 +xt "13500,14500,15750,15500" +) +(Line +uid 86,0 +sl 0 +ro 270 +xt "13000,15000,13500,15000" +pts [ +"13000,15000" +"13500,15000" +] +) +] +) +name (TextAssociate +uid 87,0 +ps "CenterOffsetStrategy" +text (Text +uid 88,0 +va (VaSet +font "courier,8,1" +) +xt "16250,14500,19950,15500" +st "powerUp" +blo "16250,15300" +tm "LinkName" +) +) +) +*6 (SmRecoveryStatePoint +uid 89,0 +shape (CompositeShape +uid 90,0 +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Circle +uid 91,0 +sl 0 +xt "3250,12100,5050,13900" +radius 900 +) +(Line +uid 92,0 +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "3724,12574,4576,13426" +pts [ +"3724,13426" +"4576,12574" +] +) +(Line +uid 93,0 +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "3724,12574,4576,13426" +pts [ +"4576,13426" +"3724,12574" +] +) +] +) +) +*7 (Link +uid 94,0 +shape (CompositeShape +uid 95,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 96,0 +sl 0 +ro 270 +xt "13500,12500,15750,13500" +) +(Line +uid 97,0 +sl 0 +ro 270 +xt "13000,13000,13500,13000" +pts [ +"13000,13000" +"13500,13000" +] +) +] +) +name (TextAssociate +uid 98,0 +ps "CenterOffsetStrategy" +text (Text +uid 99,0 +va (VaSet +font "courier,8,1" +) +xt "16250,12500,19950,13500" +st "powerUp" +blo "16250,13300" +tm "LinkName" +) +) +) +*8 (Grouping +uid 120,0 +optionalChildren [ +*9 (CommentText +uid 122,0 +shape (Rectangle +uid 123,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,96000,127000,97000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 124,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,96000,125200,97000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 125,0 +shape (Rectangle +uid 126,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,92000,131000,93000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 127,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,92000,130800,93000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 128,0 +shape (Rectangle +uid 129,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,94000,127000,95000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 130,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,94000,126400,95000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*12 (CommentText +uid 131,0 +shape (Rectangle +uid 132,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,94000,110000,95000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 133,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,94000,109800,95000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*13 (CommentText +uid 134,0 +shape (Rectangle +uid 135,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "127000,93000,147000,97000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 136,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "127200,93200,140400,94200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*14 (CommentText +uid 137,0 +shape (Rectangle +uid 138,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "131000,92000,147000,93000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 139,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "131200,92000,133000,93000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 140,0 +shape (Rectangle +uid 141,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,92000,127000,94000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 142,0 +va (VaSet +fg "32768,0,0" +) +xt "112000,92500,121000,93500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 143,0 +shape (Rectangle +uid 144,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,95000,110000,96000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 145,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,95000,109200,96000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*17 (CommentText +uid 146,0 +shape (Rectangle +uid 147,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "106000,96000,110000,97000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 148,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "106200,96000,109800,97000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*18 (CommentText +uid 149,0 +shape (Rectangle +uid 150,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "110000,95000,127000,96000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 151,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "110200,95000,126400,96000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 121,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "106000,92000,147000,97000" +) +oxt "14000,66000,55000,71000" +) +*19 (State +uid 229,0 +shape (Circle +uid 230,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "22000,24000,30000,32000" +radius 4000 +) +name (Text +uid 231,0 +va (VaSet +font "courier,10,1" +) +xt "23050,27400,28950,28600" +st "initialize1" +ju 0 +blo "26000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 232,0 +ps "CenterOffsetStrategy" +text (Text +uid 233,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "26100,28300,29700,29500" +st "wait 2" +blo "26100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 234,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "26000,29000,26000,29000" +blo "26000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 237,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 238,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "23500,28400,34500,31600" +) +autoResize 1 +tline (Line +uid 239,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23600,28300,34400,28300" +pts [ +"23600,28300" +"34400,28300" +] +) +bline (Line +uid 240,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23600,29150,34400,29150" +pts [ +"23600,29150" +"34400,29150" +] +) +ttri (Triangle +uid 241,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23150,27925,23500,28275" +) +btri (Triangle +uid 242,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23150,26625,23500,26975" +) +entryActions (MLText +uid 243,0 +va (VaSet +) +xt "23600,28100,23600,28100" +tm "Actions" +) +inActions (MLText +uid 244,0 +va (VaSet +) +xt "23600,28500,38600,31500" +st "commandBus <= precharge; +addrSelPrecharge <= '1'; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 245,0 +va (VaSet +) +xt "25000,26800,25000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 235,0 +ps "CenterOffsetStrategy" +text (MLText +uid 236,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "24400,29000,29900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*20 (State +uid 285,0 +shape (Circle +uid 286,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "38000,24000,46000,32000" +radius 4000 +) +name (Text +uid 287,0 +va (VaSet +font "courier,10,1" +) +xt "39050,27400,44950,28600" +st "initialize2" +ju 0 +blo "42000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 288,0 +ps "CenterOffsetStrategy" +text (Text +uid 289,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "42100,28300,45700,29500" +st "wait 2" +blo "42100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 290,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,29000,42000,29000" +blo "42000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 293,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 294,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "43900,29900,44100,30100" +) +autoResize 1 +tline (Line +uid 295,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,29300,48850,29300" +pts [ +"39150,29300" +"48850,29300" +] +) +bline (Line +uid 296,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,28650,48850,28650" +pts [ +"39150,28650" +"48850,28650" +] +) +ttri (Triangle +uid 297,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,28925,39900,29275" +) +btri (Triangle +uid 298,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,26625,39900,26975" +) +entryActions (MLText +uid 299,0 +va (VaSet +) +xt "39150,29100,39150,29100" +tm "Actions" +) +inActions (MLText +uid 300,0 +va (VaSet +) +xt "39150,29500,48850,30500" +tm "Actions" +) +exitActions (MLText +uid 301,0 +va (VaSet +) +xt "40000,26800,40000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 291,0 +ps "CenterOffsetStrategy" +text (MLText +uid 292,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "40400,29000,45900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*21 (State +uid 334,0 +shape (Circle +uid 335,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "54000,24000,62000,32000" +radius 4000 +) +name (Text +uid 336,0 +va (VaSet +font "courier,10,1" +) +xt "55050,27400,60950,28600" +st "initialize3" +ju 0 +blo "58000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 337,0 +ps "CenterOffsetStrategy" +text (Text +uid 338,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "58100,28300,61700,29500" +st "wait 2" +blo "58100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 339,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "58000,29000,58000,29000" +blo "58000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 342,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 343,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "56200,28900,67800,31100" +) +autoResize 1 +tline (Line +uid 344,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56300,28800,67700,28800" +pts [ +"56300,28800" +"67700,28800" +] +) +bline (Line +uid 345,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56300,28900,67700,28900" +pts [ +"56300,28900" +"67700,28900" +] +) +ttri (Triangle +uid 346,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "55850,28425,56200,28775" +) +btri (Triangle +uid 347,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "55850,26625,56200,26975" +) +entryActions (MLText +uid 348,0 +va (VaSet +) +xt "56300,28600,56300,28600" +tm "Actions" +) +inActions (MLText +uid 349,0 +va (VaSet +) +xt "56300,29000,72500,31000" +st "commandBus <= autoRefresh; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 350,0 +va (VaSet +) +xt "58000,26800,58000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 340,0 +ps "CenterOffsetStrategy" +text (MLText +uid 341,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "56400,29000,61900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*22 (State +uid 361,0 +shape (Circle +uid 362,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "70000,24000,78000,32000" +radius 4000 +) +name (Text +uid 363,0 +va (VaSet +font "courier,10,1" +) +xt "71050,27400,76950,28600" +st "initialize4" +ju 0 +blo "74000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 364,0 +ps "CenterOffsetStrategy" +text (Text +uid 365,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "74100,28300,77700,29500" +st "wait 2" +blo "74100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 366,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "74000,29000,74000,29000" +blo "74000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 369,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 370,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "77900,29900,78100,30100" +) +autoResize 1 +tline (Line +uid 371,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,28800,84300,28800" +pts [ +"71700,28800" +"84300,28800" +] +) +bline (Line +uid 372,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,28900,84300,28900" +pts [ +"71700,28900" +"84300,28900" +] +) +ttri (Triangle +uid 373,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,28425,73900,28775" +) +btri (Triangle +uid 374,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,26625,73900,26975" +) +entryActions (MLText +uid 375,0 +va (VaSet +) +xt "71700,28600,71700,28600" +tm "Actions" +) +inActions (MLText +uid 376,0 +va (VaSet +) +xt "71700,29000,84300,31000" +tm "Actions" +) +exitActions (MLText +uid 377,0 +va (VaSet +) +xt "74000,26800,74000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 367,0 +ps "CenterOffsetStrategy" +text (MLText +uid 368,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "72400,29000,77900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*23 (State +uid 378,0 +shape (Circle +uid 379,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "86000,24000,94000,32000" +radius 4000 +) +name (Text +uid 380,0 +va (VaSet +font "courier,10,1" +) +xt "87050,27400,92950,28600" +st "initialize5" +ju 0 +blo "90000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 381,0 +ps "CenterOffsetStrategy" +text (Text +uid 382,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "90100,28300,93700,29500" +st "wait 2" +blo "90100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 383,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "90000,29000,90000,29000" +blo "90000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 386,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 387,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "88200,28900,99800,31100" +) +autoResize 1 +tline (Line +uid 388,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "88300,28800,99700,28800" +pts [ +"88300,28800" +"99700,28800" +] +) +bline (Line +uid 389,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "88300,28900,99700,28900" +pts [ +"88300,28900" +"99700,28900" +] +) +ttri (Triangle +uid 390,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87850,28425,88200,28775" +) +btri (Triangle +uid 391,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87850,26625,88200,26975" +) +entryActions (MLText +uid 392,0 +va (VaSet +) +xt "88300,28600,88300,28600" +tm "Actions" +) +inActions (MLText +uid 393,0 +va (VaSet +) +xt "88300,29000,104500,31000" +st "commandBus <= autoRefresh; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 394,0 +va (VaSet +) +xt "90000,26800,90000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 384,0 +ps "CenterOffsetStrategy" +text (MLText +uid 385,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "88400,29000,93900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*24 (State +uid 415,0 +shape (Circle +uid 416,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "102000,24000,110000,32000" +radius 4000 +) +name (Text +uid 417,0 +va (VaSet +font "courier,10,1" +) +xt "103050,27400,108950,28600" +st "initialize6" +ju 0 +blo "106000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 418,0 +ps "CenterOffsetStrategy" +text (Text +uid 419,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "106100,28300,109700,29500" +st "wait 2" +blo "106100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 420,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "106000,29000,106000,29000" +blo "106000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 423,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 424,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "109900,29900,110100,30100" +) +autoResize 1 +tline (Line +uid 425,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "103700,28800,116300,28800" +pts [ +"103700,28800" +"116300,28800" +] +) +bline (Line +uid 426,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "103700,28900,116300,28900" +pts [ +"103700,28900" +"116300,28900" +] +) +ttri (Triangle +uid 427,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "105550,28425,105900,28775" +) +btri (Triangle +uid 428,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "105550,26625,105900,26975" +) +entryActions (MLText +uid 429,0 +va (VaSet +) +xt "103700,28600,103700,28600" +tm "Actions" +) +inActions (MLText +uid 430,0 +va (VaSet +) +xt "103700,29000,116300,31000" +tm "Actions" +) +exitActions (MLText +uid 431,0 +va (VaSet +) +xt "106000,26800,106000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 421,0 +ps "CenterOffsetStrategy" +text (MLText +uid 422,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "104400,29000,109900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*25 (State +uid 502,0 +shape (Circle +uid 503,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "118000,24000,126000,32000" +radius 4000 +) +name (Text +uid 504,0 +va (VaSet +font "courier,10,1" +) +xt "119050,27400,124950,28600" +st "initialize7" +ju 0 +blo "122000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 505,0 +ps "CenterOffsetStrategy" +text (Text +uid 506,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "122100,28300,125700,29500" +st "wait 2" +blo "122100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 507,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "122000,29000,122000,29000" +blo "122000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 510,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 511,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "119850,28400,132150,31600" +) +autoResize 1 +tline (Line +uid 512,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "119950,28300,132050,28300" +pts [ +"119950,28300" +"132050,28300" +] +) +bline (Line +uid 513,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "119950,29150,132050,29150" +pts [ +"119950,29150" +"132050,29150" +] +) +ttri (Triangle +uid 514,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "119500,27925,119850,28275" +) +btri (Triangle +uid 515,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "119500,26625,119850,26975" +) +entryActions (MLText +uid 516,0 +va (VaSet +) +xt "119950,28100,119950,28100" +tm "Actions" +) +inActions (MLText +uid 517,0 +va (VaSet +) +xt "119950,28500,136150,31500" +st "commandBus <= loadModeReg; +timerStart <= '1'; +addrSelModeReg <= '1';" +tm "Actions" +) +exitActions (MLText +uid 518,0 +va (VaSet +) +xt "122000,26800,122000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 508,0 +ps "CenterOffsetStrategy" +text (MLText +uid 509,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "120400,29000,125900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*26 (State +uid 531,0 +shape (Circle +uid 532,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "134000,24000,142000,32000" +radius 4000 +) +name (Text +uid 533,0 +va (VaSet +font "courier,10,1" +) +xt "135050,27400,140950,28600" +st "initialize8" +ju 0 +blo "138000,28400" +tm "ONodeName" +) +wait (TextAssociate +uid 534,0 +ps "CenterOffsetStrategy" +text (Text +uid 535,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "138100,28300,141700,29500" +st "wait 2" +blo "138100,29300" +tm "SmWaitText" +) +) +encoding (Text +uid 536,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "138000,29000,138000,29000" +blo "138000,29000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 539,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 540,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "141900,29900,142100,30100" +) +autoResize 1 +tline (Line +uid 541,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "135700,28800,148300,28800" +pts [ +"135700,28800" +"148300,28800" +] +) +bline (Line +uid 542,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "135700,28900,148300,28900" +pts [ +"135700,28900" +"148300,28900" +] +) +ttri (Triangle +uid 543,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "137550,28425,137900,28775" +) +btri (Triangle +uid 544,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "137550,26625,137900,26975" +) +entryActions (MLText +uid 545,0 +va (VaSet +) +xt "135700,28600,135700,28600" +tm "Actions" +) +inActions (MLText +uid 546,0 +va (VaSet +) +xt "135700,29000,148300,31000" +tm "Actions" +) +exitActions (MLText +uid 547,0 +va (VaSet +) +xt "138000,26800,138000,26800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 537,0 +ps "CenterOffsetStrategy" +text (MLText +uid 538,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "136400,29000,141900,29900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*27 (State +uid 558,0 +shape (Circle +uid 559,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "6000,40000,14000,48000" +radius 4000 +) +name (Text +uid 560,0 +va (VaSet +font "courier,10,1" +) +xt "8800,43400,11200,44600" +st "idle" +ju 0 +blo "10000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 561,0 +ps "CenterOffsetStrategy" +text (Text +uid 562,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "10100,44300,13700,45500" +st "wait 2" +blo "10100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 563,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "10000,45000,10000,45000" +blo "10000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 566,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 567,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "11900,45900,12100,46100" +) +autoResize 1 +tline (Line +uid 568,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "8000,45300,16000,45300" +pts [ +"8000,45300" +"16000,45300" +] +) +bline (Line +uid 569,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "8000,44650,16000,44650" +pts [ +"8000,44650" +"16000,44650" +] +) +ttri (Triangle +uid 570,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "7550,44925,7900,45275" +) +btri (Triangle +uid 571,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "7550,42625,7900,42975" +) +entryActions (MLText +uid 572,0 +va (VaSet +) +xt "8000,45100,8000,45100" +tm "Actions" +) +inActions (MLText +uid 573,0 +va (VaSet +) +xt "8000,45500,16000,46500" +tm "Actions" +) +exitActions (MLText +uid 574,0 +va (VaSet +) +xt "8000,42800,8000,42800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 564,0 +ps "CenterOffsetStrategy" +text (MLText +uid 565,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "8400,45000,13900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*28 (Junction +uid 575,0 +shape (Diamond +uid 576,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "8350,34350,11650,37650" +) +symbol (Text +uid 577,0 +va (VaSet +font "courier,10,1" +) +xt "9350,35400,10650,36600" +st "&" +ju 0 +blo "10000,36400" +) +name (TextAssociate +uid 578,0 +ps "CenterOffsetStrategy" +text (Text +uid 579,0 +va (VaSet +font "courier,8,1" +) +xt "11500,36500,11500,36500" +blo "11500,36500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 580,0 +ps "CenterOffsetStrategy" +text (MLText +uid 581,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "7650,37500,13150,38400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*29 (Junction +uid 592,0 +shape (Diamond +uid 593,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "136350,34350,139650,37650" +) +symbol (Text +uid 594,0 +va (VaSet +font "courier,10,1" +) +xt "137350,35400,138650,36600" +st "&" +ju 0 +blo "138000,36400" +) +name (TextAssociate +uid 595,0 +ps "CenterOffsetStrategy" +text (Text +uid 596,0 +va (VaSet +font "courier,8,1" +) +xt "139500,36500,139500,36500" +blo "139500,36500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 597,0 +ps "CenterOffsetStrategy" +text (MLText +uid 598,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "135650,37500,141150,38400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*30 (State +uid 629,0 +shape (Circle +uid 630,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "22000,40000,30000,48000" +radius 4000 +) +name (Text +uid 631,0 +va (VaSet +font "courier,10,1" +) +xt "23650,43400,28350,44600" +st "refresh1" +ju 0 +blo "26000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 632,0 +ps "CenterOffsetStrategy" +text (Text +uid 633,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "26100,44300,29700,45500" +st "wait 2" +blo "26100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 634,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "26000,45000,26000,45000" +blo "26000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 637,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 638,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "23500,45400,34500,48600" +) +autoResize 1 +tline (Line +uid 639,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23600,45300,34400,45300" +pts [ +"23600,45300" +"34400,45300" +] +) +bline (Line +uid 640,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23600,46150,34400,46150" +pts [ +"23600,46150" +"34400,46150" +] +) +ttri (Triangle +uid 641,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23150,44925,23500,45275" +) +btri (Triangle +uid 642,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23150,43625,23500,43975" +) +entryActions (MLText +uid 643,0 +va (VaSet +) +xt "23600,45100,23600,45100" +tm "Actions" +) +inActions (MLText +uid 644,0 +va (VaSet +) +xt "23600,45500,38600,48500" +st "commandBus <= precharge; +addrSelPrecharge <= '1'; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 645,0 +va (VaSet +) +xt "25000,43800,25000,43800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 635,0 +ps "CenterOffsetStrategy" +text (MLText +uid 636,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "24400,45000,29900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*31 (State +uid 656,0 +shape (Circle +uid 657,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "38000,40000,46000,48000" +radius 4000 +) +name (Text +uid 658,0 +va (VaSet +font "courier,10,1" +) +xt "39650,43400,44350,44600" +st "refresh2" +ju 0 +blo "42000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 659,0 +ps "CenterOffsetStrategy" +text (Text +uid 660,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "42100,44300,45700,45500" +st "wait 2" +blo "42100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 661,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,45000,42000,45000" +blo "42000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 664,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 665,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "43900,45900,44100,46100" +) +autoResize 1 +tline (Line +uid 666,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,45300,48850,45300" +pts [ +"39150,45300" +"48850,45300" +] +) +bline (Line +uid 667,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,44650,48850,44650" +pts [ +"39150,44650" +"48850,44650" +] +) +ttri (Triangle +uid 668,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,44925,39900,45275" +) +btri (Triangle +uid 669,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,42625,39900,42975" +) +entryActions (MLText +uid 670,0 +va (VaSet +) +xt "39150,45100,39150,45100" +tm "Actions" +) +inActions (MLText +uid 671,0 +va (VaSet +) +xt "39150,45500,48850,46500" +tm "Actions" +) +exitActions (MLText +uid 672,0 +va (VaSet +) +xt "40000,42800,40000,42800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 662,0 +ps "CenterOffsetStrategy" +text (MLText +uid 663,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "40400,45000,45900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*32 (State +uid 673,0 +shape (Circle +uid 674,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "54000,40000,62000,48000" +radius 4000 +) +name (Text +uid 675,0 +va (VaSet +font "courier,10,1" +) +xt "55650,43400,60350,44600" +st "refresh3" +ju 0 +blo "58000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 676,0 +ps "CenterOffsetStrategy" +text (Text +uid 677,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "58100,44300,61700,45500" +st "wait 2" +blo "58100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 678,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "58000,45000,58000,45000" +blo "58000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 681,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 682,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "56200,44900,67800,47100" +) +autoResize 1 +tline (Line +uid 683,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56300,44800,67700,44800" +pts [ +"56300,44800" +"67700,44800" +] +) +bline (Line +uid 684,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56300,44900,67700,44900" +pts [ +"56300,44900" +"67700,44900" +] +) +ttri (Triangle +uid 685,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "55850,44425,56200,44775" +) +btri (Triangle +uid 686,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "55850,42625,56200,42975" +) +entryActions (MLText +uid 687,0 +va (VaSet +) +xt "56300,44600,56300,44600" +tm "Actions" +) +inActions (MLText +uid 688,0 +va (VaSet +) +xt "56300,45000,72500,47000" +st "commandBus <= autoRefresh; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 689,0 +va (VaSet +) +xt "58000,42800,58000,42800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 679,0 +ps "CenterOffsetStrategy" +text (MLText +uid 680,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "56400,45000,61900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*33 (State +uid 690,0 +shape (Circle +uid 691,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "70000,40000,78000,48000" +radius 4000 +) +name (Text +uid 692,0 +va (VaSet +font "courier,10,1" +) +xt "71650,43400,76350,44600" +st "refresh4" +ju 0 +blo "74000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 693,0 +ps "CenterOffsetStrategy" +text (Text +uid 694,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "74100,44300,77700,45500" +st "wait 2" +blo "74100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 695,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "74000,45000,74000,45000" +blo "74000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 698,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 699,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "77900,45900,78100,46100" +) +autoResize 1 +tline (Line +uid 700,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,44800,84300,44800" +pts [ +"71700,44800" +"84300,44800" +] +) +bline (Line +uid 701,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,44900,84300,44900" +pts [ +"71700,44900" +"84300,44900" +] +) +ttri (Triangle +uid 702,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,44425,73900,44775" +) +btri (Triangle +uid 703,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,42625,73900,42975" +) +entryActions (MLText +uid 704,0 +va (VaSet +) +xt "71700,44600,71700,44600" +tm "Actions" +) +inActions (MLText +uid 705,0 +va (VaSet +) +xt "71700,45000,84300,47000" +tm "Actions" +) +exitActions (MLText +uid 706,0 +va (VaSet +) +xt "74000,42800,74000,42800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 696,0 +ps "CenterOffsetStrategy" +text (MLText +uid 697,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "72400,45000,77900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*34 (State +uid 707,0 +shape (Circle +uid 708,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "86000,40000,94000,48000" +radius 4000 +) +name (Text +uid 709,0 +va (VaSet +font "courier,10,1" +) +xt "87650,43400,92350,44600" +st "refresh5" +ju 0 +blo "90000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 710,0 +ps "CenterOffsetStrategy" +text (Text +uid 711,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "90100,44300,93700,45500" +st "wait 2" +blo "90100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 712,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "90000,45000,90000,45000" +blo "90000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 715,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 716,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "88200,44900,99800,47100" +) +autoResize 1 +tline (Line +uid 717,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "88300,44800,99700,44800" +pts [ +"88300,44800" +"99700,44800" +] +) +bline (Line +uid 718,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "88300,44900,99700,44900" +pts [ +"88300,44900" +"99700,44900" +] +) +ttri (Triangle +uid 719,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87850,44425,88200,44775" +) +btri (Triangle +uid 720,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87850,42625,88200,42975" +) +entryActions (MLText +uid 721,0 +va (VaSet +) +xt "88300,44600,88300,44600" +tm "Actions" +) +inActions (MLText +uid 722,0 +va (VaSet +) +xt "88300,45000,104500,47000" +st "commandBus <= autoRefresh; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 723,0 +va (VaSet +) +xt "90000,42800,90000,42800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 713,0 +ps "CenterOffsetStrategy" +text (MLText +uid 714,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "88400,45000,93900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*35 (State +uid 724,0 +shape (Circle +uid 725,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "102000,40000,110000,48000" +radius 4000 +) +name (Text +uid 726,0 +va (VaSet +font "courier,10,1" +) +xt "102750,43400,109250,44600" +st "initialize13" +ju 0 +blo "106000,44400" +tm "ONodeName" +) +wait (TextAssociate +uid 727,0 +ps "CenterOffsetStrategy" +text (Text +uid 728,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "106100,44300,109700,45500" +st "wait 2" +blo "106100,45300" +tm "SmWaitText" +) +) +encoding (Text +uid 729,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "106000,45000,106000,45000" +blo "106000,45000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 732,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 733,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "109900,45900,110100,46100" +) +autoResize 1 +tline (Line +uid 734,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "103700,44800,116300,44800" +pts [ +"103700,44800" +"116300,44800" +] +) +bline (Line +uid 735,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "103700,44900,116300,44900" +pts [ +"103700,44900" +"116300,44900" +] +) +ttri (Triangle +uid 736,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "105550,44425,105900,44775" +) +btri (Triangle +uid 737,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "105550,42625,105900,42975" +) +entryActions (MLText +uid 738,0 +va (VaSet +) +xt "103700,44600,103700,44600" +tm "Actions" +) +inActions (MLText +uid 739,0 +va (VaSet +) +xt "103700,45000,116300,47000" +tm "Actions" +) +exitActions (MLText +uid 740,0 +va (VaSet +) +xt "106000,42800,106000,42800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 730,0 +ps "CenterOffsetStrategy" +text (MLText +uid 731,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "104400,45000,109900,45900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*36 (Junction +uid 791,0 +shape (Diamond +uid 792,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "112350,34350,115650,37650" +) +symbol (Text +uid 793,0 +va (VaSet +font "courier,10,1" +) +xt "113350,35400,114650,36600" +st "&" +ju 0 +blo "114000,36400" +) +name (TextAssociate +uid 794,0 +ps "CenterOffsetStrategy" +text (Text +uid 795,0 +va (VaSet +font "courier,8,1" +) +xt "115500,36500,115500,36500" +blo "115500,36500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 796,0 +ps "CenterOffsetStrategy" +text (MLText +uid 797,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "111650,37500,117150,38400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*37 (Junction +uid 798,0 +shape (Diamond +uid 799,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "112350,42350,115650,45650" +) +symbol (Text +uid 800,0 +va (VaSet +font "courier,10,1" +) +xt "113350,43400,114650,44600" +st "&" +ju 0 +blo "114000,44400" +) +name (TextAssociate +uid 801,0 +ps "CenterOffsetStrategy" +text (Text +uid 802,0 +va (VaSet +font "courier,8,1" +) +xt "115500,44500,115500,44500" +blo "115500,44500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 803,0 +ps "CenterOffsetStrategy" +text (MLText +uid 804,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "111650,45500,117150,46400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*38 (State +uid 870,0 +shape (Circle +uid 871,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "22000,56000,30000,64000" +radius 4000 +) +name (Text +uid 872,0 +va (VaSet +font "courier,10,1" +) +xt "24150,59400,27850,60600" +st "write1" +ju 0 +blo "26000,60400" +tm "ONodeName" +) +wait (TextAssociate +uid 873,0 +ps "CenterOffsetStrategy" +text (Text +uid 874,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "26100,60300,29700,61500" +st "wait 2" +blo "26100,61300" +tm "SmWaitText" +) +) +encoding (Text +uid 875,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "26000,61000,26000,61000" +blo "26000,61000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 878,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 879,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "24300,60900,33700,65100" +) +autoResize 1 +tline (Line +uid 880,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "24400,60800,33600,60800" +pts [ +"24400,60800" +"33600,60800" +] +) +bline (Line +uid 881,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "24400,62400,33600,62400" +pts [ +"24400,62400" +"33600,62400" +] +) +ttri (Triangle +uid 882,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23950,60425,24300,60775" +) +btri (Triangle +uid 883,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23950,59625,24300,59975" +) +entryActions (MLText +uid 884,0 +va (VaSet +) +xt "24400,60600,24400,60600" +tm "Actions" +) +inActions (MLText +uid 885,0 +va (VaSet +) +xt "24400,61000,37600,65000" +st "commandBus <= active; +writeAck <= '1'; +addrSelRow <= '1'; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 886,0 +va (VaSet +) +xt "25000,59800,25000,59800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 876,0 +ps "CenterOffsetStrategy" +text (MLText +uid 877,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "24400,61000,29900,61900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*39 (State +uid 887,0 +shape (Circle +uid 888,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "38000,56000,46000,64000" +radius 4000 +) +name (Text +uid 889,0 +va (VaSet +font "courier,10,1" +) +xt "40150,59400,43850,60600" +st "write2" +ju 0 +blo "42000,60400" +tm "ONodeName" +) +wait (TextAssociate +uid 890,0 +ps "CenterOffsetStrategy" +text (Text +uid 891,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "42100,60300,45700,61500" +st "wait 2" +blo "42100,61300" +tm "SmWaitText" +) +) +encoding (Text +uid 892,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,61000,42000,61000" +blo "42000,61000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 895,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 896,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "43900,61900,44100,62100" +) +autoResize 1 +tline (Line +uid 897,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,61300,48850,61300" +pts [ +"39150,61300" +"48850,61300" +] +) +bline (Line +uid 898,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,60650,48850,60650" +pts [ +"39150,60650" +"48850,60650" +] +) +ttri (Triangle +uid 899,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,60925,39900,61275" +) +btri (Triangle +uid 900,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,58625,39900,58975" +) +entryActions (MLText +uid 901,0 +va (VaSet +) +xt "39150,61100,39150,61100" +tm "Actions" +) +inActions (MLText +uid 902,0 +va (VaSet +) +xt "39150,61500,48850,62500" +tm "Actions" +) +exitActions (MLText +uid 903,0 +va (VaSet +) +xt "40000,58800,40000,58800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 893,0 +ps "CenterOffsetStrategy" +text (MLText +uid 894,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "40400,61000,45900,61900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*40 (State +uid 904,0 +shape (Circle +uid 905,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "54000,56000,62000,64000" +radius 4000 +) +name (Text +uid 906,0 +va (VaSet +font "courier,10,1" +) +xt "56150,59400,59850,60600" +st "write3" +ju 0 +blo "58000,60400" +tm "ONodeName" +) +wait (TextAssociate +uid 907,0 +ps "CenterOffsetStrategy" +text (Text +uid 908,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "58100,60300,61700,61500" +st "wait 2" +blo "58100,61300" +tm "SmWaitText" +) +) +encoding (Text +uid 909,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "58000,61000,58000,61000" +blo "58000,61000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 912,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 913,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "56450,60400,65550,63600" +) +autoResize 1 +tline (Line +uid 914,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56550,60300,65450,60300" +pts [ +"56550,60300" +"65450,60300" +] +) +bline (Line +uid 915,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56550,61150,65450,61150" +pts [ +"56550,61150" +"65450,61150" +] +) +ttri (Triangle +uid 916,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56100,59925,56450,60275" +) +btri (Triangle +uid 917,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56100,58625,56450,58975" +) +entryActions (MLText +uid 918,0 +va (VaSet +) +xt "56550,60100,56550,60100" +tm "Actions" +) +inActions (MLText +uid 919,0 +va (VaSet +) +xt "56550,60500,69150,63500" +st "commandBus <= write; +addrSelCol <= '1'; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 920,0 +va (VaSet +) +xt "57000,58800,57000,58800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 910,0 +ps "CenterOffsetStrategy" +text (MLText +uid 911,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "56400,61000,61900,61900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*41 (State +uid 921,0 +shape (Circle +uid 922,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "70000,56000,78000,64000" +radius 4000 +) +name (Text +uid 923,0 +va (VaSet +font "courier,10,1" +) +xt "72150,59400,75850,60600" +st "write4" +ju 0 +blo "74000,60400" +tm "ONodeName" +) +wait (TextAssociate +uid 924,0 +ps "CenterOffsetStrategy" +text (Text +uid 925,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "74100,60300,77700,61500" +st "wait 2" +blo "74100,61300" +tm "SmWaitText" +) +) +encoding (Text +uid 926,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "74000,61000,74000,61000" +blo "74000,61000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 929,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 930,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "77900,61900,78100,62100" +) +autoResize 1 +tline (Line +uid 931,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,60800,84300,60800" +pts [ +"71700,60800" +"84300,60800" +] +) +bline (Line +uid 932,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,60900,84300,60900" +pts [ +"71700,60900" +"84300,60900" +] +) +ttri (Triangle +uid 933,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,60425,73900,60775" +) +btri (Triangle +uid 934,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,58625,73900,58975" +) +entryActions (MLText +uid 935,0 +va (VaSet +) +xt "71700,60600,71700,60600" +tm "Actions" +) +inActions (MLText +uid 936,0 +va (VaSet +) +xt "71700,61000,84300,63000" +tm "Actions" +) +exitActions (MLText +uid 937,0 +va (VaSet +) +xt "74000,58800,74000,58800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 927,0 +ps "CenterOffsetStrategy" +text (MLText +uid 928,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "72400,61000,77900,61900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*42 (Junction +uid 978,0 +shape (Diamond +uid 979,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "8350,58350,11650,61650" +) +symbol (Text +uid 980,0 +va (VaSet +font "courier,10,1" +) +xt "9350,59400,10650,60600" +st "&" +ju 0 +blo "10000,60400" +) +name (TextAssociate +uid 981,0 +ps "CenterOffsetStrategy" +text (Text +uid 982,0 +va (VaSet +font "courier,8,1" +) +xt "11500,60500,11500,60500" +blo "11500,60500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 983,0 +ps "CenterOffsetStrategy" +text (MLText +uid 984,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "7650,61500,13150,62400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*43 (Junction +uid 999,0 +shape (Diamond +uid 1000,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "112350,58350,115650,61650" +) +symbol (Text +uid 1001,0 +va (VaSet +font "courier,10,1" +) +xt "113350,59400,114650,60600" +st "&" +ju 0 +blo "114000,60400" +) +name (TextAssociate +uid 1002,0 +ps "CenterOffsetStrategy" +text (Text +uid 1003,0 +va (VaSet +font "courier,8,1" +) +xt "115500,60500,115500,60500" +blo "115500,60500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 1004,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1005,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "111650,61500,117150,62400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*44 (State +uid 1026,0 +shape (Circle +uid 1027,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "22000,72000,30000,80000" +radius 4000 +) +name (Text +uid 1028,0 +va (VaSet +font "courier,10,1" +) +xt "24300,75400,27700,76600" +st "read1" +ju 0 +blo "26000,76400" +tm "ONodeName" +) +wait (TextAssociate +uid 1029,0 +ps "CenterOffsetStrategy" +text (Text +uid 1030,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "26100,76300,29700,77500" +st "wait 2" +blo "26100,77300" +tm "SmWaitText" +) +) +encoding (Text +uid 1031,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "26000,77000,26000,77000" +blo "26000,77000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1034,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1035,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "24300,76900,33700,81100" +) +autoResize 1 +tline (Line +uid 1036,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "24400,76800,33600,76800" +pts [ +"24400,76800" +"33600,76800" +] +) +bline (Line +uid 1037,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "24400,78400,33600,78400" +pts [ +"24400,78400" +"33600,78400" +] +) +ttri (Triangle +uid 1038,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23950,76425,24300,76775" +) +btri (Triangle +uid 1039,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "23950,75625,24300,75975" +) +entryActions (MLText +uid 1040,0 +va (VaSet +) +xt "24400,76600,24400,76600" +tm "Actions" +) +inActions (MLText +uid 1041,0 +va (VaSet +) +xt "24400,77000,37600,81000" +st "commandBus <= active; +readAck <= '1'; +addrSelRow <= '1'; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 1042,0 +va (VaSet +) +xt "25000,75800,25000,75800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1032,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1033,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "24400,77000,29900,77900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*45 (State +uid 1043,0 +shape (Circle +uid 1044,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "38000,72000,46000,80000" +radius 4000 +) +name (Text +uid 1045,0 +va (VaSet +font "courier,10,1" +) +xt "40300,75400,43700,76600" +st "read2" +ju 0 +blo "42000,76400" +tm "ONodeName" +) +wait (TextAssociate +uid 1046,0 +ps "CenterOffsetStrategy" +text (Text +uid 1047,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "42100,76300,45700,77500" +st "wait 2" +blo "42100,77300" +tm "SmWaitText" +) +) +encoding (Text +uid 1048,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,77000,42000,77000" +blo "42000,77000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1051,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1052,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "43900,77900,44100,78100" +) +autoResize 1 +tline (Line +uid 1053,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,77300,48850,77300" +pts [ +"39150,77300" +"48850,77300" +] +) +bline (Line +uid 1054,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "39150,76650,48850,76650" +pts [ +"39150,76650" +"48850,76650" +] +) +ttri (Triangle +uid 1055,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,76925,39900,77275" +) +btri (Triangle +uid 1056,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "39550,74625,39900,74975" +) +entryActions (MLText +uid 1057,0 +va (VaSet +) +xt "39150,77100,39150,77100" +tm "Actions" +) +inActions (MLText +uid 1058,0 +va (VaSet +) +xt "39150,77500,48850,78500" +tm "Actions" +) +exitActions (MLText +uid 1059,0 +va (VaSet +) +xt "40000,74800,40000,74800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1049,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1050,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "40400,77000,45900,77900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*46 (State +uid 1060,0 +shape (Circle +uid 1061,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "54000,72000,62000,80000" +radius 4000 +) +name (Text +uid 1062,0 +va (VaSet +font "courier,10,1" +) +xt "56300,75400,59700,76600" +st "read3" +ju 0 +blo "58000,76400" +tm "ONodeName" +) +wait (TextAssociate +uid 1063,0 +ps "CenterOffsetStrategy" +text (Text +uid 1064,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "58100,76300,61700,77500" +st "wait 2" +blo "58100,77300" +tm "SmWaitText" +) +) +encoding (Text +uid 1065,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "58000,77000,58000,77000" +blo "58000,77000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1068,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1069,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "56700,76400,65300,79600" +) +autoResize 1 +tline (Line +uid 1070,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56800,76300,65200,76300" +pts [ +"56800,76300" +"65200,76300" +] +) +bline (Line +uid 1071,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56800,77150,65200,77150" +pts [ +"56800,77150" +"65200,77150" +] +) +ttri (Triangle +uid 1072,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56350,75925,56700,76275" +) +btri (Triangle +uid 1073,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "56350,74625,56700,74975" +) +entryActions (MLText +uid 1074,0 +va (VaSet +) +xt "56800,76100,56800,76100" +tm "Actions" +) +inActions (MLText +uid 1075,0 +va (VaSet +) +xt "56800,76500,68800,79500" +st "commandBus <= read; +addrSelCol <= '1'; +timerStart <= '1';" +tm "Actions" +) +exitActions (MLText +uid 1076,0 +va (VaSet +) +xt "57000,74800,57000,74800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1066,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1067,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "56400,77000,61900,77900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*47 (State +uid 1077,0 +shape (Circle +uid 1078,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "70000,72000,78000,80000" +radius 4000 +) +name (Text +uid 1079,0 +va (VaSet +font "courier,10,1" +) +xt "72300,75400,75700,76600" +st "read4" +ju 0 +blo "74000,76400" +tm "ONodeName" +) +wait (TextAssociate +uid 1080,0 +ps "CenterOffsetStrategy" +text (Text +uid 1081,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "74100,76300,77700,77500" +st "wait 2" +blo "74100,77300" +tm "SmWaitText" +) +) +encoding (Text +uid 1082,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "74000,77000,74000,77000" +blo "74000,77000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1085,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1086,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "77900,77900,78100,78100" +) +autoResize 1 +tline (Line +uid 1087,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,76800,84300,76800" +pts [ +"71700,76800" +"84300,76800" +] +) +bline (Line +uid 1088,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "71700,76900,84300,76900" +pts [ +"71700,76900" +"84300,76900" +] +) +ttri (Triangle +uid 1089,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,76425,73900,76775" +) +btri (Triangle +uid 1090,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "73550,74625,73900,74975" +) +entryActions (MLText +uid 1091,0 +va (VaSet +) +xt "71700,76600,71700,76600" +tm "Actions" +) +inActions (MLText +uid 1092,0 +va (VaSet +) +xt "71700,77000,84300,79000" +tm "Actions" +) +exitActions (MLText +uid 1093,0 +va (VaSet +) +xt "74000,74800,74000,74800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1083,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1084,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "72400,77000,77900,77900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*48 (Junction +uid 1094,0 +shape (Diamond +uid 1095,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "112350,74350,115650,77650" +) +symbol (Text +uid 1096,0 +va (VaSet +font "courier,10,1" +) +xt "113350,75400,114650,76600" +st "&" +ju 0 +blo "114000,76400" +) +name (TextAssociate +uid 1097,0 +ps "CenterOffsetStrategy" +text (Text +uid 1098,0 +va (VaSet +font "courier,8,1" +) +xt "115500,76500,115500,76500" +blo "115500,76500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 1099,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1100,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "111650,77500,117150,78400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*49 (Junction +uid 1151,0 +shape (Diamond +uid 1152,0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "8350,74350,11650,77650" +) +symbol (Text +uid 1153,0 +va (VaSet +font "courier,10,1" +) +xt "9350,75400,10650,76600" +st "&" +ju 0 +blo "10000,76400" +) +name (TextAssociate +uid 1154,0 +ps "CenterOffsetStrategy" +text (Text +uid 1155,0 +va (VaSet +font "courier,8,1" +) +xt "11500,76500,11500,76500" +blo "11500,76500" +tm "JunctionName" +) +) +caseExpr (TextAssociate +uid 1156,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1157,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "7650,77500,13150,78400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*50 (State +uid 1217,0 +shape (Circle +uid 1218,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "86000,72000,94000,80000" +radius 4000 +) +name (Text +uid 1219,0 +va (VaSet +font "courier,10,1" +) +xt "88300,75400,91700,76600" +st "read5" +ju 0 +blo "90000,76400" +tm "ONodeName" +) +wait (TextAssociate +uid 1220,0 +ps "CenterOffsetStrategy" +text (Text +uid 1221,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "90100,76300,93700,77500" +st "wait 2" +blo "90100,77300" +tm "SmWaitText" +) +) +encoding (Text +uid 1222,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "90000,77000,90000,77000" +blo "90000,77000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1225,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1226,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "87800,76900,96200,79100" +) +autoResize 1 +tline (Line +uid 1227,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87900,76800,96100,76800" +pts [ +"87900,76800" +"96100,76800" +] +) +bline (Line +uid 1228,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87900,76900,96100,76900" +pts [ +"87900,76900" +"96100,76900" +] +) +ttri (Triangle +uid 1229,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87450,76425,87800,76775" +) +btri (Triangle +uid 1230,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "87450,74625,87800,74975" +) +entryActions (MLText +uid 1231,0 +va (VaSet +) +xt "87900,76600,87900,76600" +tm "Actions" +) +inActions (MLText +uid 1232,0 +va (VaSet +) +xt "87900,77000,100500,79000" +st "sampleData <= '1'; +ramDataValid <= '1';" +tm "Actions" +) +exitActions (MLText +uid 1233,0 +va (VaSet +) +xt "88000,74800,88000,74800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1223,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1224,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "88400,77000,93900,77900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*51 (State +uid 1234,0 +shape (Circle +uid 1235,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "102000,72000,110000,80000" +radius 4000 +) +name (Text +uid 1236,0 +va (VaSet +font "courier,10,1" +) +xt "104300,75400,107700,76600" +st "read6" +ju 0 +blo "106000,76400" +tm "ONodeName" +) +wait (TextAssociate +uid 1237,0 +ps "CenterOffsetStrategy" +text (Text +uid 1238,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "106100,76300,109700,77500" +st "wait 2" +blo "106100,77300" +tm "SmWaitText" +) +) +encoding (Text +uid 1239,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "106000,77000,106000,77000" +blo "106000,77000" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 1242,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1243,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "109900,77900,110100,78100" +) +autoResize 1 +tline (Line +uid 1244,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "103700,76800,116300,76800" +pts [ +"103700,76800" +"116300,76800" +] +) +bline (Line +uid 1245,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth 2 +) +xt "103700,76900,116300,76900" +pts [ +"103700,76900" +"116300,76900" +] +) +ttri (Triangle +uid 1246,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "105550,76425,105900,76775" +) +btri (Triangle +uid 1247,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "105550,74625,105900,74975" +) +entryActions (MLText +uid 1248,0 +va (VaSet +) +xt "103700,76600,103700,76600" +tm "Actions" +) +inActions (MLText +uid 1249,0 +va (VaSet +) +xt "103700,77000,116300,79000" +tm "Actions" +) +exitActions (MLText +uid 1250,0 +va (VaSet +) +xt "106000,74800,106000,74800" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 1240,0 +ps "CenterOffsetStrategy" +text (MLText +uid 1241,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "104400,77000,109900,77900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*52 (Transition +uid 100,0 +shape (Spline +uid 101,0 +va (VaSet +vasetType 3 +) +xt "5500,15000,13000,15000" +pts [ +"5500,15000" +"13000,15000" +] +) +start &4 +end &5 +ss 0 +es 0 +cond "reset = '1'" +tb (TransitionBlock +uid 102,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 103,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "7250,14000,15450,16000" +) +autoResize 1 +lineShape (Line +uid 104,0 +va (VaSet +vasetType 3 +) +xt "7750,15400,14950,15400" +pts [ +"7750,15400" +"14950,15400" +] +) +condition (MLText +uid 105,0 +va (VaSet +) +xt "7750,14000,14950,15000" +st "reset = '1'" +tm "Condition" +) +actions (MLText +uid 106,0 +va (VaSet +isHidden 1 +) +xt "7150,15800,15550,16800" +st "< Automatic >" +tm "Actions" +) +) +tp (TransitionPriority +uid 107,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 108,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "5469,14219,7031,15781" +radius 781 +) +pr (Text +uid 109,0 +va (VaSet +isHidden 1 +) +xt "5850,14500,6650,15500" +st "1" +ju 0 +blo "6250,15300" +tm "TransitionPriority" +) +padding "100,100" +) +) +*53 (Transition +uid 110,0 +shape (Spline +uid 111,0 +va (VaSet +vasetType 3 +) +xt "5050,13000,13000,13000" +pts [ +"5050,13000" +"13000,13000" +] +) +start &6 +end &7 +ss 0 +es 0 +tb (TransitionBlock +uid 112,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 113,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "6825,12495,11225,13505" +) +autoResize 1 +lineShape (Line +uid 114,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "9025,13900,9025,13900" +pts [ +"9025,13900" +"9025,13900" +] +) +condition (MLText +uid 115,0 +va (VaSet +) +xt "7325,12500,10725,13500" +tm "Condition" +) +actions (MLText +uid 116,0 +va (VaSet +) +xt "9025,13900,9025,13900" +tm "Actions" +) +) +tp (TransitionPriority +uid 117,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 118,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "5064,12219,6626,13781" +radius 781 +) +pr (Text +uid 119,0 +va (VaSet +isHidden 1 +) +xt "5445,12500,6245,13500" +st "1" +ju 0 +blo "5845,13300" +tm "TransitionPriority" +) +padding "100,100" +) +) +*54 (Transition +uid 246,0 +shape (Spline +uid 247,0 +va (VaSet +vasetType 3 +) +xt "14000,27968,22000,27970" +pts [ +"14000,27970" +"22000,27968" +] +arrow 1 +) +start &2 +end &19 +cond "endOfRefreshCount = '1'" +tb (TransitionBlock +uid 248,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 249,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "11700,24550,22300,26550" +) +autoResize 1 +lineShape (Line +uid 250,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "12200,26450,21800,26450" +pts [ +"12200,26450" +"21800,26450" +] +) +condition (MLText +uid 251,0 +va (VaSet +) +xt "12200,25050,26600,26050" +st "endOfRefreshCount = '1'" +tm "Condition" +) +actions (MLText +uid 252,0 +va (VaSet +) +xt "12200,26450,21800,27450" +tm "Actions" +) +) +tp (TransitionPriority +uid 253,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 254,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "14019,27188,15581,28750" +radius 781 +) +pr (Text +uid 255,0 +va (VaSet +isHidden 1 +) +xt "14400,27469,15200,28469" +st "1" +ju 0 +blo "14800,28269" +tm "TransitionPriority" +) +padding "100,100" +) +) +*55 (Transition +uid 312,0 +shape (Spline +uid 313,0 +va (VaSet +vasetType 3 +) +xt "30000,28035,38000,28036" +pts [ +"30000,28035" +"38000,28036" +] +arrow 1 +) +start &19 +end &20 +tb (TransitionBlock +uid 314,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 315,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "33500,28031,37900,29041" +) +autoResize 1 +lineShape (Line +uid 316,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "35700,29436,35700,29436" +pts [ +"35700,29436" +"35700,29436" +] +) +condition (MLText +uid 317,0 +va (VaSet +) +xt "34000,28036,37400,29036" +tm "Condition" +) +actions (MLText +uid 318,0 +va (VaSet +) +xt "35700,29436,35700,29436" +tm "Actions" +) +) +tp (TransitionPriority +uid 319,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 320,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "30019,27254,31581,28816" +radius 781 +) +pr (Text +uid 321,0 +va (VaSet +isHidden 1 +) +xt "30400,27535,31200,28535" +st "1" +ju 0 +blo "30800,28335" +tm "TransitionPriority" +) +padding "100,100" +) +) +*56 (Transition +uid 351,0 +shape (Spline +uid 352,0 +va (VaSet +vasetType 3 +) +xt "46000,27955,54000,27955" +pts [ +"46000,27955" +"54000,27955" +] +arrow 1 +) +start &20 +end &21 +cond "unsigned(timerDone(1 to prechargeToRefreshPeriodNb)) = 0" +tb (TransitionBlock +uid 353,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 354,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "41950,25000,65350,27000" +) +autoResize 1 +lineShape (Line +uid 355,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "44150,26900,44150,26900" +pts [ +"44150,26900" +"44150,26900" +] +) +condition (MLText +uid 356,0 +va (VaSet +) +xt "42450,25500,76650,26500" +st "unsigned(timerDone(1 to prechargeToRefreshPeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 357,0 +va (VaSet +) +xt "53650,26900,53650,26900" +tm "Actions" +) +) +tp (TransitionPriority +uid 358,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 359,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "46019,27174,47581,28736" +radius 781 +) +pr (Text +uid 360,0 +va (VaSet +isHidden 1 +) +xt "46400,27455,47200,28455" +st "1" +ju 0 +blo "46800,28255" +tm "TransitionPriority" +) +padding "100,100" +) +) +*57 (Transition +uid 395,0 +shape (Spline +uid 396,0 +va (VaSet +vasetType 3 +) +xt "62000,28002,70000,28006" +pts [ +"62000,28006" +"70000,28002" +] +arrow 1 +) +start &21 +end &22 +es 0 +tb (TransitionBlock +uid 397,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 398,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "65500,27999,69900,29009" +) +autoResize 1 +lineShape (Line +uid 399,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "67700,29404,67700,29404" +pts [ +"67700,29404" +"67700,29404" +] +) +condition (MLText +uid 400,0 +va (VaSet +) +xt "66000,28004,69400,29004" +tm "Condition" +) +actions (MLText +uid 401,0 +va (VaSet +) +xt "67700,29404,67700,29404" +tm "Actions" +) +) +tp (TransitionPriority +uid 402,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 403,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "62019,27224,63581,28786" +radius 781 +) +pr (Text +uid 404,0 +va (VaSet +isHidden 1 +) +xt "62400,27505,63200,28505" +st "1" +ju 0 +blo "62800,28305" +tm "TransitionPriority" +) +padding "100,100" +) +) +*58 (Transition +uid 405,0 +shape (Spline +uid 406,0 +va (VaSet +vasetType 3 +) +xt "78000,27984,86000,27985" +pts [ +"78000,27984" +"86000,27985" +] +arrow 1 +) +start &22 +end &23 +cond "unsigned(timerDone(1 to refreshDelayPeriodNb)) = 0" +tb (TransitionBlock +uid 407,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 408,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "74350,25000,94950,27000" +) +autoResize 1 +lineShape (Line +uid 409,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "76550,26900,76550,26900" +pts [ +"76550,26900" +"76550,26900" +] +) +condition (MLText +uid 410,0 +va (VaSet +) +xt "74850,25500,105450,26500" +st "unsigned(timerDone(1 to refreshDelayPeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 411,0 +va (VaSet +) +xt "84650,26900,84650,26900" +tm "Actions" +) +) +tp (TransitionPriority +uid 412,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 413,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "78019,27203,79581,28765" +radius 781 +) +pr (Text +uid 414,0 +va (VaSet +isHidden 1 +) +xt "78400,27484,79200,28484" +st "1" +ju 0 +blo "78800,28284" +tm "TransitionPriority" +) +padding "100,100" +) +) +*59 (Transition +uid 432,0 +shape (Spline +uid 433,0 +va (VaSet +vasetType 3 +) +xt "94000,28006,102000,28006" +pts [ +"94000,28006" +"102000,28006" +] +arrow 1 +) +start &23 +end &24 +tb (TransitionBlock +uid 434,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 435,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "97500,28001,101900,29011" +) +autoResize 1 +lineShape (Line +uid 436,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "99700,29406,99700,29406" +pts [ +"99700,29406" +"99700,29406" +] +) +condition (MLText +uid 437,0 +va (VaSet +) +xt "98000,28006,101400,29006" +tm "Condition" +) +actions (MLText +uid 438,0 +va (VaSet +) +xt "99700,29406,99700,29406" +tm "Actions" +) +) +tp (TransitionPriority +uid 439,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 440,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "94019,27225,95581,28787" +radius 781 +) +pr (Text +uid 441,0 +va (VaSet +isHidden 1 +) +xt "94400,27506,95200,28506" +st "1" +ju 0 +blo "94800,28306" +tm "TransitionPriority" +) +padding "100,100" +) +) +*60 (Transition +uid 519,0 +shape (Spline +uid 520,0 +va (VaSet +vasetType 3 +) +xt "110000,27969,118000,27975" +pts [ +"110000,27975" +"118000,27969" +] +arrow 1 +) +start &24 +end &25 +cond "unsigned(timerDone(1 to refreshDelayPeriodNb)) = 0" +tb (TransitionBlock +uid 521,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 522,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "106350,25000,126950,27000" +) +autoResize 1 +lineShape (Line +uid 523,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "108550,26900,108550,26900" +pts [ +"108550,26900" +"108550,26900" +] +) +condition (MLText +uid 524,0 +va (VaSet +) +xt "106850,25500,137450,26500" +st "unsigned(timerDone(1 to refreshDelayPeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 525,0 +va (VaSet +) +xt "116650,26900,116650,26900" +tm "Actions" +) +) +tp (TransitionPriority +uid 526,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 527,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "110019,27193,111581,28755" +radius 781 +) +pr (Text +uid 528,0 +va (VaSet +isHidden 1 +) +xt "110400,27474,111200,28474" +st "1" +ju 0 +blo "110800,28274" +tm "TransitionPriority" +) +padding "100,100" +) +) +*61 (Transition +uid 548,0 +shape (Spline +uid 549,0 +va (VaSet +vasetType 3 +) +xt "126000,28011,134000,28013" +pts [ +"126000,28011" +"134000,28013" +] +arrow 1 +) +start &25 +end &26 +tb (TransitionBlock +uid 550,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 551,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "129500,28007,133900,29017" +) +autoResize 1 +lineShape (Line +uid 552,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "131700,29412,131700,29412" +pts [ +"131700,29412" +"131700,29412" +] +) +condition (MLText +uid 553,0 +va (VaSet +) +xt "130000,28012,133400,29012" +tm "Condition" +) +actions (MLText +uid 554,0 +va (VaSet +) +xt "131700,29412,131700,29412" +tm "Actions" +) +) +tp (TransitionPriority +uid 555,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 556,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "126019,27230,127581,28792" +radius 781 +) +pr (Text +uid 557,0 +va (VaSet +isHidden 1 +) +xt "126400,27511,127200,28511" +st "1" +ju 0 +blo "126800,28311" +tm "TransitionPriority" +) +padding "100,100" +) +) +*62 (Transition +uid 582,0 +shape (Spline +uid 583,0 +va (VaSet +vasetType 3 +) +xt "9964,37622,9972,40000" +pts [ +"9972,37622" +"9964,40000" +] +arrow 1 +) +start &28 +end &27 +tb (TransitionBlock +uid 584,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 585,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "9468,38806,13868,39816" +) +autoResize 1 +lineShape (Line +uid 586,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "11668,40211,11668,40211" +pts [ +"11668,40211" +"11668,40211" +] +) +condition (MLText +uid 587,0 +va (VaSet +) +xt "9968,38811,13368,39811" +tm "Condition" +) +actions (MLText +uid 588,0 +va (VaSet +) +xt "11668,40211,11668,40211" +tm "Actions" +) +) +tp (TransitionPriority +uid 589,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 590,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "9190,37078,10752,38640" +radius 781 +) +pr (Text +uid 591,0 +va (VaSet +isHidden 1 +) +xt "9571,37359,10371,38359" +st "1" +ju 0 +blo "9971,38159" +tm "TransitionPriority" +) +padding "100,100" +) +) +*63 (Transition +uid 599,0 +shape (Spline +uid 600,0 +va (VaSet +vasetType 3 +) +xt "138008,32000,138019,34358" +pts [ +"138019,32000" +"138008,34358" +] +arrow 1 +) +start &26 +end &29 +es 0 +tb (TransitionBlock +uid 601,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 602,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "116400,33495,138900,34505" +) +autoResize 1 +lineShape (Line +uid 603,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "118600,34900,118600,34900" +pts [ +"118600,34900" +"118600,34900" +] +) +condition (MLText +uid 604,0 +va (VaSet +) +xt "116900,33500,138400,34500" +tm "Condition" +) +actions (MLText +uid 605,0 +va (VaSet +) +xt "127650,34900,127650,34900" +tm "Actions" +) +) +tp (TransitionPriority +uid 606,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 607,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "137236,31454,138798,33016" +radius 781 +) +pr (Text +uid 608,0 +va (VaSet +isHidden 1 +) +xt "137617,31735,138417,32735" +st "1" +ju 0 +blo "138017,32535" +tm "TransitionPriority" +) +padding "100,100" +) +) +*64 (Transition +uid 619,0 +shape (Spline +uid 620,0 +va (VaSet +vasetType 3 +) +xt "115626,35976,136366,35984" +pts [ +"136366,35984" +"115626,35976" +] +arrow 1 +) +start &29 +end &36 +tb (TransitionBlock +uid 621,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 622,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "125496,35975,129896,36985" +) +autoResize 1 +lineShape (Line +uid 623,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "127696,37380,127696,37380" +pts [ +"127696,37380" +"127696,37380" +] +) +condition (MLText +uid 624,0 +va (VaSet +) +xt "125996,35980,129396,36980" +tm "Condition" +) +actions (MLText +uid 625,0 +va (VaSet +) +xt "127696,37380,127696,37380" +tm "Actions" +) +) +tp (TransitionPriority +uid 626,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 627,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "133511,35202,135073,36764" +radius 781 +) +pr (Text +uid 628,0 +va (VaSet +isHidden 1 +) +xt "133892,35483,134692,36483" +st "1" +ju 0 +blo "134292,36283" +tm "TransitionPriority" +) +padding "100,100" +) +) +*65 (Transition +uid 646,0 +shape (Spline +uid 647,0 +va (VaSet +vasetType 3 +) +xt "14000,44000,22000,44000" +pts [ +"14000,44000" +"22000,44000" +] +arrow 1 +) +start &27 +end &30 +cond "endOfRefreshCount = '1'" +tb (TransitionBlock +uid 648,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 649,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "12700,41000,23300,43000" +) +autoResize 1 +lineShape (Line +uid 650,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "14900,42900,14900,42900" +pts [ +"14900,42900" +"14900,42900" +] +) +condition (MLText +uid 651,0 +va (VaSet +) +xt "13200,41500,27600,42500" +st "endOfRefreshCount = '1'" +tm "Condition" +) +actions (MLText +uid 652,0 +va (VaSet +) +xt "18000,42900,18000,42900" +tm "Actions" +) +) +tp (TransitionPriority +uid 653,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 654,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "14019,43219,15581,44781" +radius 781 +) +pr (Text +uid 655,0 +va (VaSet +) +xt "14400,43500,15200,44500" +st "1" +ju 0 +blo "14800,44300" +tm "TransitionPriority" +) +padding "100,100" +) +) +*66 (Transition +uid 741,0 +shape (Spline +uid 742,0 +va (VaSet +vasetType 3 +) +xt "46000,43955,54000,43955" +pts [ +"46000,43955" +"54000,43955" +] +arrow 1 +) +start &31 +end &32 +cond "unsigned(timerDone(1 to prechargeToRefreshPeriodNb)) = 0" +tb (TransitionBlock +uid 743,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 744,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "41950,41000,65350,43000" +) +autoResize 1 +lineShape (Line +uid 745,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "44150,42900,44150,42900" +pts [ +"44150,42900" +"44150,42900" +] +) +condition (MLText +uid 746,0 +va (VaSet +) +xt "42450,41500,76650,42500" +st "unsigned(timerDone(1 to prechargeToRefreshPeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 747,0 +va (VaSet +) +xt "53650,42900,53650,42900" +tm "Actions" +) +) +tp (TransitionPriority +uid 748,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 749,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "46019,43174,47581,44736" +radius 781 +) +pr (Text +uid 750,0 +va (VaSet +isHidden 1 +) +xt "46400,43455,47200,44455" +st "1" +ju 0 +blo "46800,44255" +tm "TransitionPriority" +) +padding "100,100" +) +) +*67 (Transition +uid 751,0 +shape (Spline +uid 752,0 +va (VaSet +vasetType 3 +) +xt "62000,44002,70000,44006" +pts [ +"62000,44006" +"70000,44002" +] +arrow 1 +) +start &32 +end &33 +es 0 +tb (TransitionBlock +uid 753,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 754,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "65500,43999,69900,45009" +) +autoResize 1 +lineShape (Line +uid 755,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "67700,45404,67700,45404" +pts [ +"67700,45404" +"67700,45404" +] +) +condition (MLText +uid 756,0 +va (VaSet +) +xt "66000,44004,69400,45004" +tm "Condition" +) +actions (MLText +uid 757,0 +va (VaSet +) +xt "67700,45404,67700,45404" +tm "Actions" +) +) +tp (TransitionPriority +uid 758,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 759,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "62019,43224,63581,44786" +radius 781 +) +pr (Text +uid 760,0 +va (VaSet +isHidden 1 +) +xt "62400,43505,63200,44505" +st "1" +ju 0 +blo "62800,44305" +tm "TransitionPriority" +) +padding "100,100" +) +) +*68 (Transition +uid 761,0 +shape (Spline +uid 762,0 +va (VaSet +vasetType 3 +) +xt "78000,43984,86000,43985" +pts [ +"78000,43984" +"86000,43985" +] +arrow 1 +) +start &33 +end &34 +cond "unsigned(timerDone(1 to refreshDelayPeriodNb)) = 0" +tb (TransitionBlock +uid 763,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 764,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "74350,41000,94950,43000" +) +autoResize 1 +lineShape (Line +uid 765,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "76550,42900,76550,42900" +pts [ +"76550,42900" +"76550,42900" +] +) +condition (MLText +uid 766,0 +va (VaSet +) +xt "74850,41500,105450,42500" +st "unsigned(timerDone(1 to refreshDelayPeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 767,0 +va (VaSet +) +xt "84650,42900,84650,42900" +tm "Actions" +) +) +tp (TransitionPriority +uid 768,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 769,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "78019,43203,79581,44765" +radius 781 +) +pr (Text +uid 770,0 +va (VaSet +isHidden 1 +) +xt "78400,43484,79200,44484" +st "1" +ju 0 +blo "78800,44284" +tm "TransitionPriority" +) +padding "100,100" +) +) +*69 (Transition +uid 771,0 +shape (Spline +uid 772,0 +va (VaSet +vasetType 3 +) +xt "94000,44006,102000,44006" +pts [ +"94000,44006" +"102000,44006" +] +arrow 1 +) +start &34 +end &35 +tb (TransitionBlock +uid 773,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 774,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "97500,44001,101900,45011" +) +autoResize 1 +lineShape (Line +uid 775,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "99700,45406,99700,45406" +pts [ +"99700,45406" +"99700,45406" +] +) +condition (MLText +uid 776,0 +va (VaSet +) +xt "98000,44006,101400,45006" +tm "Condition" +) +actions (MLText +uid 777,0 +va (VaSet +) +xt "99700,45406,99700,45406" +tm "Actions" +) +) +tp (TransitionPriority +uid 778,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 779,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "94019,43225,95581,44787" +radius 781 +) +pr (Text +uid 780,0 +va (VaSet +isHidden 1 +) +xt "94400,43506,95200,44506" +st "1" +ju 0 +blo "94800,44306" +tm "TransitionPriority" +) +padding "100,100" +) +) +*70 (Transition +uid 781,0 +shape (Spline +uid 782,0 +va (VaSet +vasetType 3 +) +xt "30000,44004,38000,44014" +pts [ +"30000,44014" +"38000,44004" +] +arrow 1 +) +start &30 +end &31 +es 0 +tb (TransitionBlock +uid 783,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 784,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "33500,44004,37900,45014" +) +autoResize 1 +lineShape (Line +uid 785,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "35700,45409,35700,45409" +pts [ +"35700,45409" +"35700,45409" +] +) +condition (MLText +uid 786,0 +va (VaSet +) +xt "34000,44009,37400,45009" +tm "Condition" +) +actions (MLText +uid 787,0 +va (VaSet +) +xt "35700,45409,35700,45409" +tm "Actions" +) +) +tp (TransitionPriority +uid 788,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 789,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "30019,43232,31581,44794" +radius 781 +) +pr (Text +uid 790,0 +va (VaSet +isHidden 1 +) +xt "30400,43513,31200,44513" +st "1" +ju 0 +blo "30800,44313" +tm "TransitionPriority" +) +padding "100,100" +) +) +*71 (Transition +uid 805,0 +shape (Spline +uid 806,0 +va (VaSet +vasetType 3 +) +xt "11626,35973,112377,35976" +pts [ +"112377,35973" +"11626,35976" +] +arrow 1 +) +start &36 +end &28 +tb (TransitionBlock +uid 807,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 808,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "61501,35970,65901,36980" +) +autoResize 1 +lineShape (Line +uid 809,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "63701,37375,63701,37375" +pts [ +"63701,37375" +"63701,37375" +] +) +condition (MLText +uid 810,0 +va (VaSet +) +xt "62001,35975,65401,36975" +tm "Condition" +) +actions (MLText +uid 811,0 +va (VaSet +) +xt "63701,37375,63701,37375" +tm "Actions" +) +) +tp (TransitionPriority +uid 812,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 813,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "101521,35192,103083,36754" +radius 781 +) +pr (Text +uid 814,0 +va (VaSet +isHidden 1 +) +xt "101902,35473,102702,36473" +st "1" +ju 0 +blo "102302,36273" +tm "TransitionPriority" +) +padding "100,100" +) +) +*72 (Transition +uid 815,0 +shape (Spline +uid 816,0 +va (VaSet +vasetType 3 +) +xt "110000,43971,112376,43974" +pts [ +"110000,43971" +"112376,43974" +] +arrow 1 +) +start &35 +end &37 +cond "unsigned(timerDone(1 to refreshDelayPeriodNb-1)) = 0" +tb (TransitionBlock +uid 817,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 818,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "107350,41000,128650,43000" +) +autoResize 1 +lineShape (Line +uid 819,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "109550,42900,109550,42900" +pts [ +"109550,42900" +"109550,42900" +] +) +condition (MLText +uid 820,0 +va (VaSet +) +xt "107850,41500,139650,42500" +st "unsigned(timerDone(1 to refreshDelayPeriodNb-1)) = 0" +tm "Condition" +) +actions (MLText +uid 821,0 +va (VaSet +) +xt "118000,42900,118000,42900" +tm "Actions" +) +) +tp (TransitionPriority +uid 822,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 823,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "109456,43190,111018,44752" +radius 781 +) +pr (Text +uid 824,0 +va (VaSet +isHidden 1 +) +xt "109837,43471,110637,44471" +st "1" +ju 0 +blo "110237,44271" +tm "TransitionPriority" +) +padding "100,100" +) +) +*73 (Transition +uid 825,0 +shape (Spline +uid 826,0 +va (VaSet +vasetType 3 +) +xt "114015,37635,114025,42375" +pts [ +"114025,42375" +"114015,37635" +] +arrow 1 +) +start &37 +end &36 +tb (TransitionBlock +uid 827,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 828,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "113520,40000,117920,41010" +) +autoResize 1 +lineShape (Line +uid 829,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "115720,41405,115720,41405" +pts [ +"115720,41405" +"115720,41405" +] +) +condition (MLText +uid 830,0 +va (VaSet +) +xt "114020,40005,117420,41005" +tm "Condition" +) +actions (MLText +uid 831,0 +va (VaSet +) +xt "115720,41405,115720,41405" +tm "Actions" +) +) +tp (TransitionPriority +uid 832,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 833,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "113243,41120,114805,42682" +radius 781 +) +pr (Text +uid 834,0 +va (VaSet +isHidden 1 +) +xt "113624,41401,114424,42401" +st "1" +ju 0 +blo "114024,42201" +tm "TransitionPriority" +) +padding "100,100" +) +) +*74 (Transition +uid 938,0 +shape (Spline +uid 939,0 +va (VaSet +vasetType 3 +) +xt "62000,60002,70000,60006" +pts [ +"62000,60006" +"70000,60002" +] +arrow 1 +) +start &40 +end &41 +es 0 +tb (TransitionBlock +uid 940,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 941,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "65500,59999,69900,61009" +) +autoResize 1 +lineShape (Line +uid 942,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "67700,61404,67700,61404" +pts [ +"67700,61404" +"67700,61404" +] +) +condition (MLText +uid 943,0 +va (VaSet +) +xt "66000,60004,69400,61004" +tm "Condition" +) +actions (MLText +uid 944,0 +va (VaSet +) +xt "67700,61404,67700,61404" +tm "Actions" +) +) +tp (TransitionPriority +uid 945,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 946,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "62019,59224,63581,60786" +radius 781 +) +pr (Text +uid 947,0 +va (VaSet +isHidden 1 +) +xt "62400,59505,63200,60505" +st "1" +ju 0 +blo "62800,60305" +tm "TransitionPriority" +) +padding "100,100" +) +) +*75 (Transition +uid 948,0 +shape (Spline +uid 949,0 +va (VaSet +vasetType 3 +) +xt "46000,59955,54000,59955" +pts [ +"46000,59955" +"54000,59955" +] +arrow 1 +) +start &39 +end &40 +cond "unsigned(timerDone(1 to activeToWritePeriodNb)) = 0" +tb (TransitionBlock +uid 950,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 951,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "41950,57000,62850,59000" +) +autoResize 1 +lineShape (Line +uid 952,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "44150,58900,44150,58900" +pts [ +"44150,58900" +"44150,58900" +] +) +condition (MLText +uid 953,0 +va (VaSet +) +xt "42450,57500,73650,58500" +st "unsigned(timerDone(1 to activeToWritePeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 954,0 +va (VaSet +) +xt "52400,58900,52400,58900" +tm "Actions" +) +) +tp (TransitionPriority +uid 955,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 956,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "46019,59174,47581,60736" +radius 781 +) +pr (Text +uid 957,0 +va (VaSet +isHidden 1 +) +xt "46400,59455,47200,60455" +st "1" +ju 0 +blo "46800,60255" +tm "TransitionPriority" +) +padding "100,100" +) +) +*76 (Transition +uid 958,0 +shape (Spline +uid 959,0 +va (VaSet +vasetType 3 +) +xt "30000,59975,38000,59992" +pts [ +"30000,59975" +"38000,59992" +] +arrow 1 +) +start &38 +end &39 +es 0 +tb (TransitionBlock +uid 960,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 961,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "33500,59979,37900,60989" +) +autoResize 1 +lineShape (Line +uid 962,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "35700,61384,35700,61384" +pts [ +"35700,61384" +"35700,61384" +] +) +condition (MLText +uid 963,0 +va (VaSet +) +xt "34000,59984,37400,60984" +tm "Condition" +) +actions (MLText +uid 964,0 +va (VaSet +) +xt "35700,61384,35700,61384" +tm "Actions" +) +) +tp (TransitionPriority +uid 965,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 966,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "30019,59195,31581,60757" +radius 781 +) +pr (Text +uid 967,0 +va (VaSet +isHidden 1 +) +xt "30400,59476,31200,60476" +st "1" +ju 0 +blo "30800,60276" +tm "TransitionPriority" +) +padding "100,100" +) +) +*77 (Transition +uid 968,0 +shape (Spline +uid 969,0 +va (VaSet +vasetType 3 +) +xt "11626,59973,22000,59976" +pts [ +"11626,59976" +"22000,59973" +] +arrow 1 +) +start &42 +end &38 +cond "(ramEn = '1') and (writeRequest = '1')" +tb (TransitionBlock +uid 970,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 971,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "12938,56847,28038,58847" +) +autoResize 1 +lineShape (Line +uid 972,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "15138,58747,15138,58747" +pts [ +"15138,58747" +"15138,58747" +] +) +condition (MLText +uid 973,0 +va (VaSet +) +xt "13438,57347,36838,58347" +st "(ramEn = '1') and (writeRequest = '1')" +tm "Condition" +) +actions (MLText +uid 974,0 +va (VaSet +) +xt "20488,58747,20488,58747" +tm "Actions" +) +) +tp (TransitionPriority +uid 975,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 976,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "11882,59194,13444,60756" +radius 781 +) +pr (Text +uid 977,0 +va (VaSet +) +xt "12263,59475,13063,60475" +st "1" +ju 0 +blo "12663,60275" +tm "TransitionPriority" +) +padding "100,100" +) +) +*78 (Transition +uid 985,0 +shape (Spline +uid 986,0 +va (VaSet +vasetType 3 +) +xt "10008,48000,10009,58358" +pts [ +"10009,48000" +"10008,58358" +] +arrow 1 +) +start &27 +end &42 +tb (TransitionBlock +uid 987,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 988,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "9508,53174,13908,54184" +) +autoResize 1 +lineShape (Line +uid 989,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "11708,54579,11708,54579" +pts [ +"11708,54579" +"11708,54579" +] +) +condition (MLText +uid 990,0 +va (VaSet +) +xt "10008,53179,13408,54179" +tm "Condition" +) +actions (MLText +uid 991,0 +va (VaSet +) +xt "11708,54579,11708,54579" +tm "Actions" +) +) +tp (TransitionPriority +uid 992,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 993,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "9227,48254,10789,49816" +radius 781 +) +pr (Text +uid 994,0 +va (VaSet +) +xt "9608,48535,10408,49535" +st "2" +ju 0 +blo "10008,49335" +tm "TransitionPriority" +) +padding "100,100" +) +) +*79 (Transition +uid 1006,0 +shape (Spline +uid 1007,0 +va (VaSet +vasetType 3 +) +xt "78000,60013,112363,60014" +pts [ +"78000,60014" +"112363,60013" +] +arrow 1 +) +start &41 +end &43 +cond "unsigned(timerDone(1 to writeToActivePeriodNb)) = 0" +tb (TransitionBlock +uid 1008,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1009,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "78250,57000,99050,59000" +) +autoResize 1 +lineShape (Line +uid 1010,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "80450,58900,80450,58900" +pts [ +"80450,58900" +"80450,58900" +] +) +condition (MLText +uid 1011,0 +va (VaSet +) +xt "78750,57500,109950,58500" +st "unsigned(timerDone(1 to writeToActivePeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 1012,0 +va (VaSet +) +xt "88650,58900,88650,58900" +tm "Actions" +) +) +tp (TransitionPriority +uid 1013,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1014,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "80655,59232,82217,60794" +radius 781 +) +pr (Text +uid 1015,0 +va (VaSet +isHidden 1 +) +xt "81036,59513,81836,60513" +st "1" +ju 0 +blo "81436,60313" +tm "TransitionPriority" +) +padding "100,100" +) +) +*80 (Transition +uid 1016,0 +shape (Spline +uid 1017,0 +va (VaSet +vasetType 3 +) +xt "114010,45640,114015,58365" +pts [ +"114015,58365" +"114010,45640" +] +arrow 1 +) +start &43 +end &37 +tb (TransitionBlock +uid 1018,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1019,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "113512,51997,117912,53007" +) +autoResize 1 +lineShape (Line +uid 1020,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "115712,53402,115712,53402" +pts [ +"115712,53402" +"115712,53402" +] +) +condition (MLText +uid 1021,0 +va (VaSet +) +xt "114012,52002,117412,53002" +tm "Condition" +) +actions (MLText +uid 1022,0 +va (VaSet +) +xt "115712,53402,115712,53402" +tm "Actions" +) +) +tp (TransitionPriority +uid 1023,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1024,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "113233,56312,114795,57874" +radius 781 +) +pr (Text +uid 1025,0 +va (VaSet +isHidden 1 +) +xt "113614,56593,114414,57593" +st "1" +ju 0 +blo "114014,57393" +tm "TransitionPriority" +) +padding "100,100" +) +) +*81 (Transition +uid 1101,0 +shape (Spline +uid 1102,0 +va (VaSet +vasetType 3 +) +xt "62000,76002,70000,76006" +pts [ +"62000,76006" +"70000,76002" +] +arrow 1 +) +start &46 +end &47 +es 0 +tb (TransitionBlock +uid 1103,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1104,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "65500,75999,69900,77009" +) +autoResize 1 +lineShape (Line +uid 1105,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "67700,77404,67700,77404" +pts [ +"67700,77404" +"67700,77404" +] +) +condition (MLText +uid 1106,0 +va (VaSet +) +xt "66000,76004,69400,77004" +tm "Condition" +) +actions (MLText +uid 1107,0 +va (VaSet +) +xt "67700,77404,67700,77404" +tm "Actions" +) +) +tp (TransitionPriority +uid 1108,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1109,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "62019,75224,63581,76786" +radius 781 +) +pr (Text +uid 1110,0 +va (VaSet +isHidden 1 +) +xt "62400,75505,63200,76505" +st "1" +ju 0 +blo "62800,76305" +tm "TransitionPriority" +) +padding "100,100" +) +) +*82 (Transition +uid 1111,0 +shape (Spline +uid 1112,0 +va (VaSet +vasetType 3 +) +xt "46000,75955,54000,75955" +pts [ +"46000,75955" +"54000,75955" +] +arrow 1 +) +start &45 +end &46 +cond "unsigned(timerDone(1 to activeToReadPeriodNb)) = 0" +tb (TransitionBlock +uid 1113,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1114,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "41950,73000,62850,75000" +) +autoResize 1 +lineShape (Line +uid 1115,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "44150,74900,44150,74900" +pts [ +"44150,74900" +"44150,74900" +] +) +condition (MLText +uid 1116,0 +va (VaSet +) +xt "42450,73500,73050,74500" +st "unsigned(timerDone(1 to activeToReadPeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 1117,0 +va (VaSet +) +xt "52400,74900,52400,74900" +tm "Actions" +) +) +tp (TransitionPriority +uid 1118,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1119,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "46019,75174,47581,76736" +radius 781 +) +pr (Text +uid 1120,0 +va (VaSet +isHidden 1 +) +xt "46400,75455,47200,76455" +st "1" +ju 0 +blo "46800,76255" +tm "TransitionPriority" +) +padding "100,100" +) +) +*83 (Transition +uid 1121,0 +shape (Spline +uid 1122,0 +va (VaSet +vasetType 3 +) +xt "30000,76004,38000,76014" +pts [ +"30000,76014" +"38000,76004" +] +arrow 1 +) +start &44 +end &45 +es 0 +tb (TransitionBlock +uid 1123,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1124,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "33500,76004,37900,77014" +) +autoResize 1 +lineShape (Line +uid 1125,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "35700,77409,35700,77409" +pts [ +"35700,77409" +"35700,77409" +] +) +condition (MLText +uid 1126,0 +va (VaSet +) +xt "34000,76009,37400,77009" +tm "Condition" +) +actions (MLText +uid 1127,0 +va (VaSet +) +xt "35700,77409,35700,77409" +tm "Actions" +) +) +tp (TransitionPriority +uid 1128,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1129,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "30019,75232,31581,76794" +radius 781 +) +pr (Text +uid 1130,0 +va (VaSet +isHidden 1 +) +xt "30400,75513,31200,76513" +st "1" +ju 0 +blo "30800,76313" +tm "TransitionPriority" +) +padding "100,100" +) +) +*84 (Transition +uid 1131,0 +shape (Spline +uid 1132,0 +va (VaSet +vasetType 3 +) +xt "78000,75970,86000,75973" +pts [ +"78000,75973" +"86000,75970" +] +arrow 1 +) +start &47 +end &50 +cond "unsigned(timerDone(1 to readToSamplePeriodNb)) = 0" +tb (TransitionBlock +uid 1133,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1134,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "73650,73000,94850,75000" +) +autoResize 1 +lineShape (Line +uid 1135,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "75850,74900,75850,74900" +pts [ +"75850,74900" +"75850,74900" +] +) +condition (MLText +uid 1136,0 +va (VaSet +) +xt "74150,73500,104750,74500" +st "unsigned(timerDone(1 to readToSamplePeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 1137,0 +va (VaSet +) +xt "84250,74900,84250,74900" +tm "Actions" +) +) +tp (TransitionPriority +uid 1138,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1139,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "78019,75191,79581,76753" +radius 781 +) +pr (Text +uid 1140,0 +va (VaSet +isHidden 1 +) +xt "78400,75472,79200,76472" +st "1" +ju 0 +blo "78800,76272" +tm "TransitionPriority" +) +padding "100,100" +) +) +*85 (Transition +uid 1141,0 +shape (Spline +uid 1142,0 +va (VaSet +vasetType 3 +) +xt "114016,61634,114016,74366" +pts [ +"114016,74366" +"114016,61634" +] +arrow 1 +) +start &48 +end &43 +tb (TransitionBlock +uid 1143,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1144,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "113516,67995,117916,69005" +) +autoResize 1 +lineShape (Line +uid 1145,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "115716,69400,115716,69400" +pts [ +"115716,69400" +"115716,69400" +] +) +condition (MLText +uid 1146,0 +va (VaSet +) +xt "114016,68000,117416,69000" +tm "Condition" +) +actions (MLText +uid 1147,0 +va (VaSet +) +xt "115716,69400,115716,69400" +tm "Actions" +) +) +tp (TransitionPriority +uid 1148,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1149,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "113235,72312,114797,73874" +radius 781 +) +pr (Text +uid 1150,0 +va (VaSet +isHidden 1 +) +xt "113616,72593,114416,73593" +st "1" +ju 0 +blo "114016,73393" +tm "TransitionPriority" +) +padding "100,100" +) +) +*86 (Transition +uid 1158,0 +shape (Spline +uid 1159,0 +va (VaSet +vasetType 3 +) +xt "10015,61635,10015,74365" +pts [ +"10015,61635" +"10015,74365" +] +arrow 1 +) +start &42 +end &49 +tb (TransitionBlock +uid 1160,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1161,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "9515,67995,13915,69005" +) +autoResize 1 +lineShape (Line +uid 1162,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "11715,69400,11715,69400" +pts [ +"11715,69400" +"11715,69400" +] +) +condition (MLText +uid 1163,0 +va (VaSet +) +xt "10015,68000,13415,69000" +tm "Condition" +) +actions (MLText +uid 1164,0 +va (VaSet +) +xt "11715,69400,11715,69400" +tm "Actions" +) +) +tp (TransitionPriority +uid 1165,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1166,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "9234,62127,10796,63689" +radius 781 +) +pr (Text +uid 1167,0 +va (VaSet +) +xt "9615,62408,10415,63408" +st "2" +ju 0 +blo "10015,63208" +tm "TransitionPriority" +) +padding "100,100" +) +) +*87 (Transition +uid 1168,0 +shape (Spline +uid 1169,0 +va (VaSet +vasetType 3 +) +xt "11643,76006,22000,76007" +pts [ +"11643,76007" +"22000,76006" +] +arrow 1 +) +start &49 +end &44 +cond "(ramEn = '1') and (readRequest = '1')" +tb (TransitionBlock +uid 1170,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1171,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "12500,73000,27500,75000" +) +autoResize 1 +lineShape (Line +uid 1172,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "14700,74900,14700,74900" +pts [ +"14700,74900" +"14700,74900" +] +) +condition (MLText +uid 1173,0 +va (VaSet +) +xt "13000,73500,35800,74500" +st "(ramEn = '1') and (readRequest = '1')" +tm "Condition" +) +actions (MLText +uid 1174,0 +va (VaSet +) +xt "20000,74900,20000,74900" +tm "Actions" +) +) +tp (TransitionPriority +uid 1175,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1176,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "11897,75225,13459,76787" +radius 781 +) +pr (Text +uid 1177,0 +va (VaSet +isHidden 1 +) +xt "12278,75506,13078,76506" +st "1" +ju 0 +blo "12678,76306" +tm "TransitionPriority" +) +padding "100,100" +) +) +*88 (Transition +uid 1251,0 +shape (Spline +uid 1252,0 +va (VaSet +vasetType 3 +) +xt "94000,76002,102000,76006" +pts [ +"94000,76006" +"102000,76002" +] +arrow 1 +) +start &50 +end &51 +es 0 +tb (TransitionBlock +uid 1253,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1254,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "97500,75999,101900,77009" +) +autoResize 1 +lineShape (Line +uid 1255,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "99700,77404,99700,77404" +pts [ +"99700,77404" +"99700,77404" +] +) +condition (MLText +uid 1256,0 +va (VaSet +) +xt "98000,76004,101400,77004" +tm "Condition" +) +actions (MLText +uid 1257,0 +va (VaSet +) +xt "99700,77404,99700,77404" +tm "Actions" +) +) +tp (TransitionPriority +uid 1258,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1259,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "94019,75224,95581,76786" +radius 781 +) +pr (Text +uid 1260,0 +va (VaSet +isHidden 1 +) +xt "94400,75505,95200,76505" +st "1" +ju 0 +blo "94800,76305" +tm "TransitionPriority" +) +padding "100,100" +) +) +*89 (Transition +uid 1261,0 +shape (Spline +uid 1262,0 +va (VaSet +vasetType 3 +) +xt "110000,76014,112364,76015" +pts [ +"110000,76015" +"112364,76014" +] +arrow 1 +) +start &51 +end &48 +cond "unsigned(timerDone(1 to readToActivePeriodNb)) = 0" +tb (TransitionBlock +uid 1263,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1264,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "109650,73000,130350,75000" +) +autoResize 1 +lineShape (Line +uid 1265,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "111850,74900,111850,74900" +pts [ +"111850,74900" +"111850,74900" +] +) +condition (MLText +uid 1266,0 +va (VaSet +) +xt "110150,73500,140750,74500" +st "unsigned(timerDone(1 to readToActivePeriodNb)) = 0" +tm "Condition" +) +actions (MLText +uid 1267,0 +va (VaSet +) +xt "120000,74900,120000,74900" +tm "Actions" +) +) +tp (TransitionPriority +uid 1268,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 1269,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "109455,75233,111017,76795" +radius 781 +) +pr (Text +uid 1270,0 +va (VaSet +isHidden 1 +) +xt "109836,75514,110636,76514" +st "1" +ju 0 +blo "110236,76314" +tm "TransitionPriority" +) +padding "100,100" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 27,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 28,0 +va (VaSet +font "courier,8,1" +) +xt "0,-2000,5400,-1000" +st "Package List" +blo "0,-1200" +) +*92 (MLText +uid 29,0 +va (VaSet +) +xt "0,-1000,18600,2000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "SmPackageListTextMgr" +) +] +) +compDirBlock (MlTextGroup +uid 30,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 31,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*94 (Text +uid 32,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*95 (MLText +uid 33,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "SmCompilerDirectivesTextMgr" +) +*96 (Text +uid 34,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*97 (MLText +uid 35,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "SmCompilerDirectivesTextMgr" +) +*98 (Text +uid 36,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*99 (MLText +uid 37,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "SmCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,24,1681,1050" +viewArea "11603,-6620,90646,42285" +cachedDiagramExtent "0,-2000,148300,97000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,-2000" +isTopLevel 1 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +localPreDecl *100 (SmLocalDecl +uid 1648,0 +stg "VerticalLayoutStrategy" +first (Text +uid 1649,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,0,13000,900" +st "Architecture Declarations" +blo "0,700" +) +second (MLText +uid 1650,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,900,0,900" +tm "LocalDeclTextMgr" +) +declType 1 +) +localDecl *101 (SmLocalDecl +uid 3,0 +stg "VerticalLayoutStrategy" +first (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "40000,-1400,53000,-500" +st "Architecture Declarations" +blo "40000,-700" +) +second (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "40000,-400,79500,18500" +st "-- 20120621 -- zas -- added to generics +--constant prechargeToRefreshPeriodNb: positive := 2; -- 66MHz * 20 ns = 1.32 +--constant refreshDelayPeriodNb: positive := 5; -- 66MHz * 66ns = 4.356 +--constant loadModeToActivePeriodNb: positive := 1; -- 1 CK +--constant activeToWritePeriodNb: positive := 2; -- 66MHz * 20ns = 1.32 +--constant writeToActivePeriodNb: positive := 3; -- 1 CK + 66MHz * 20ns = 2.32 +--constant activeToReadPeriodNb: positive := 2; -- 66MHz * 20ns = 1.32 +--constant readToSamplePeriodNb: positive := 2; -- 2 CK with latency = 2 +--constant readToActivePeriodNb: positive := 3; -- 1 CK + 66MHz * 20ns = 2.32 + +subtype commandBusType is std_ulogic_vector(commandBusBitNb-1 downto 0); +-- bits: 5 = cs, 4 = ras, 3 = cas, 2 = we, 1 = dqm(1), 0 = dqm(0) +constant inhibit : commandBusType := \"1-----\"; +constant nop : commandBusType := \"0111--\"; +constant active : commandBusType := \"0011--\"; +constant read : commandBusType := \"010100\"; +constant write : commandBusType := \"010000\"; +constant burstTerminate : commandBusType := \"0110--\"; +constant precharge : commandBusType := \"0010--\"; +constant autoRefresh : commandBusType := \"0001--\"; +constant loadModeReg : commandBusType := \"0000--\";" +tm "LocalDeclTextMgr" +) +declType 2 +) +localPostDecl *102 (SmLocalDecl +uid 1651,0 +stg "VerticalLayoutStrategy" +first (Text +uid 1652,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,0,13000,900" +st "Architecture Declarations" +blo "0,700" +) +second (MLText +uid 1653,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,900,0,900" +tm "LocalDeclTextMgr" +) +declType 3 +) +processDecl *103 (SmProcessDecl +uid 6,0 +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +uid 7,0 +va (VaSet +font "courier,8,1" +) +xt "126000,-1000,134900,0" +st "Process Declarations" +blo "126000,-200" +) +*105 (Text +uid 8,0 +va (VaSet +font "courier,8,1" +) +xt "126000,0,133200,1000" +st "Clocked Process:" +blo "126000,800" +) +*106 (MLText +uid 9,0 +va (VaSet +font "courier,8,0" +) +xt "126000,-1000,126000,-1000" +tm "ProcessDeclTextMgr" +) +*107 (Text +uid 10,0 +va (VaSet +font "courier,8,1" +) +xt "126000,1000,132900,2000" +st "Output Process:" +blo "126000,1800" +) +*108 (MLText +uid 11,0 +va (VaSet +font "courier,8,0" +) +xt "126000,2000,126000,2000" +tm "ProcessDeclTextMgr" +) +] +associable 1 +) +defaultActions *109 (MlTextGroup +uid 12,0 +stg "VerticalLayoutStrategy" +textVec [ +*110 (Text +uid 13,0 +va (VaSet +font "courier,8,1" +) +xt "18000,-1000,24200,0" +st "Global Actions" +blo "18000,-200" +) +*111 (Text +uid 14,0 +va (VaSet +font "courier,8,1" +) +xt "18000,0,23300,1000" +st "Pre Actions:" +blo "18000,800" +) +*112 (MLText +uid 15,0 +va (VaSet +) +xt "18000,-1000,18000,-1000" +tm "Actions" +) +*113 (Text +uid 16,0 +va (VaSet +font "courier,8,1" +) +xt "18000,1000,23800,2000" +st "Post Actions:" +blo "18000,1800" +) +*114 (MLText +uid 17,0 +va (VaSet +) +xt "18000,2000,23600,3000" +tm "Actions" +) +] +associable 1 +) +archConcurrentStatementBlock *115 (BiTextGroup +uid 18,0 +stg "VerticalLayoutStrategy" +first (Text +uid 19,0 +va (VaSet +font "courier,8,1" +) +xt "27200,-1000,37100,0" +st "Concurrent Statements" +blo "27200,-200" +) +second (MLText +uid 20,0 +va (VaSet +) +xt "27200,0,52500,19000" +tm "ArchConcStmtTextMgr" +) +associable 1 +) +signalsGenStatus *116 (SmSignalGenStatus +uid 24,0 +stg "VerticalLayoutStrategy" +first (Text +uid 25,0 +va (VaSet +font "courier,8,1" +) +xt "85000,-1000,90700,0" +st "Signal Status" +blo "85000,-200" +) +second (MLText +uid 26,0 +va (VaSet +font "courier,8,0" +) +xt "85000,0,110200,10800" +st "SIGNAL MODE DEFAULT RESET SCHEME +powerUpDone OUT '1' COMB +commandBus OUT nop COMB +timerStart OUT '0' COMB +addrSelPrecharge OUT '0' COMB +addrSelModeReg OUT '0' COMB +writeAck OUT '0' COMB +addrSelCol OUT '0' COMB +addrSelRow OUT '0' COMB +readAck OUT '0' COMB +ramDataValid OUT '0' COMB +sampleData OUT '0' COMB +" +tm "SmSignalsGenStatusTextMgr" +) +) +stateRegBlock *117 (BiTextGroup +uid 21,0 +stg "VerticalLayoutStrategy" +first (Text +uid 22,0 +va (VaSet +font "courier,8,1" +) +xt "113000,-1000,123800,0" +st "State Register Statements" +blo "113000,-200" +) +second (MLText +uid 23,0 +va (VaSet +) +xt "113000,0,113000,0" +tm "Actions" +) +associable 1 +) +) +genChar (SmGenChar +uid 38,0 +nextStateClocking 0 +) +encoding (Encoding +scheme 3 +encodingStyles [ +(pair +scheme 0 +style 0 +) +(pair +scheme 1 +style 1 +) +(pair +scheme 2 +style 0 +) +(pair +scheme 3 +style 0 +) +(pair +scheme 4 +style 0 +) +(pair +scheme 5 +style 0 +) +] +otherValues [ +(pair +scheme 0 +otherValue "" +) +(pair +scheme 1 +otherValue "" +) +(pair +scheme 2 +otherValue "" +) +(pair +scheme 3 +otherValue "" +) +(pair +scheme 4 +otherValue "" +) +(pair +scheme 5 +otherValue "" +) +] +attribute 0 +synSafe 0 +outputEncodedLocals 0 +useVerilogParameterRange 0 +radix 0 +) +stateOrder [ +&2 +&19 +&20 +&21 +&22 +&23 +&24 +&25 +&26 +&27 +&30 +&31 +&32 +&33 +&34 +&35 +&38 +&39 +&40 +&41 +&44 +&45 +&46 +&47 +&50 +&51 +] +name "csm" +) +] +lastUid 1653,0 +commonDM (CommonDM +ldm (LogicalDM +emptyRow *118 (LEmptyRow +) +uid 158,0 +optionalChildren [ +*119 (RefLabelRowHdr +) +*120 (TitleRowHdr +) +*121 (FilterRowHdr +) +*122 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*123 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*124 (GroupColHdr +tm "GroupColHdrMgr" +) +*125 (NameColHdr +tm "SmNameColHdrMgr" +) +*126 (ModeColHdr +tm "SmModeColHdrMgr" +) +*127 (TypeColHdr +tm "SmTypeColHdrMgr" +) +*128 (BoundsColHdr +tm "SmBoundsColHdrMgr" +) +*129 (InitColHdr +tm "SmInitColHdrMgr" +) +*130 (ColumnHdr +tm "SmCategoryColHdrMgr" +) +*131 (ColumnHdr +tm "SmAssignColHdrMgr" +) +*132 (ColumnHdr +tm "SmExprColHdrMgr" +) +*133 (ColumnHdr +tm "SmSchemeColHdrMgr" +) +*134 (ColumnHdr +tm "SmDefValColHdrMgr" +) +*135 (ColumnHdr +tm "SmRstValColHdrMgr" +) +*136 (EolColHdr +tm "SmEolColHdrMgr" +) +*137 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +) +) +uid 152,0 +cat 3 +expr "rising_edge(clock)" +) +*138 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +) +) +uid 154,0 +cat 9 +expr "reset = '1'" +) +*139 (LeafLogPort +port (LogicalPort +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 2 +) +) +uid 226,0 +ass "" +) +*140 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 13 +) +) +uid 228,0 +scheme 0 +defVal "'1'" +) +*141 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "commandBus" +t "std_ulogic_vector" +b "( commandBusBitNb-1 DOWNTO 0 )" +o 12 +) +) +uid 323,0 +scheme 0 +defVal "nop" +) +*142 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "timerStart" +t "std_ulogic" +o 17 +) +) +uid 331,0 +scheme 0 +defVal "'0'" +) +*143 (LeafLogPort +port (LogicalPort +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "( 1 TO maxDelayPeriodNb )" +o 6 +) +) +uid 333,0 +ass "" +) +*144 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 10 +) +) +uid 472,0 +scheme 0 +defVal "'0'" +) +*145 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 9 +) +) +uid 530,0 +scheme 0 +defVal "'0'" +) +*146 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "writeAck" +t "std_ulogic" +o 18 +) +) +uid 867,0 +scheme 0 +defVal "'0'" +) +*147 (LeafLogPort +port (LogicalPort +decl (Decl +n "writeRequest" +t "std_ulogic" +o 7 +) +) +uid 869,0 +ass "" +) +*148 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 8 +) +) +uid 996,0 +scheme 0 +defVal "'0'" +) +*149 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 11 +) +) +uid 998,0 +scheme 0 +defVal "'0'" +) +*150 (LeafLogPort +port (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 3 +) +) +uid 1179,0 +ass "" +) +*151 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "readAck" +t "std_ulogic" +o 15 +) +) +uid 1181,0 +scheme 0 +defVal "'0'" +) +*152 (LeafLogPort +port (LogicalPort +decl (Decl +n "readRequest" +t "std_ulogic" +o 4 +) +) +uid 1183,0 +) +*153 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +) +) +uid 1185,0 +scheme 0 +defVal "'0'" +) +*154 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "sampleData" +t "std_ulogic" +o 16 +) +) +uid 1187,0 +scheme 0 +defVal "'0'" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 177,0 +optionalChildren [ +*155 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *156 (MRCItem +litem &118 +pos 18 +dimension 20 +) +uid 179,0 +optionalChildren [ +*157 (MRCItem +litem &119 +pos 0 +dimension 20 +uid 180,0 +) +*158 (MRCItem +litem &120 +pos 1 +dimension 23 +uid 181,0 +) +*159 (MRCItem +litem &121 +pos 2 +hidden 1 +dimension 20 +uid 182,0 +) +*160 (MRCItem +litem &137 +pos 4 +dimension 20 +uid 153,0 +) +*161 (MRCItem +litem &138 +pos 12 +dimension 20 +uid 155,0 +) +*162 (MRCItem +litem &139 +pos 6 +dimension 20 +uid 225,0 +) +*163 (MRCItem +litem &140 +pos 7 +dimension 20 +uid 227,0 +) +*164 (MRCItem +litem &141 +pos 5 +dimension 20 +uid 322,0 +) +*165 (MRCItem +litem &142 +pos 15 +dimension 20 +uid 330,0 +) +*166 (MRCItem +litem &143 +pos 14 +dimension 20 +uid 332,0 +) +*167 (MRCItem +litem &144 +pos 2 +dimension 20 +uid 471,0 +) +*168 (MRCItem +litem &145 +pos 1 +dimension 20 +uid 529,0 +) +*169 (MRCItem +litem &146 +pos 16 +dimension 20 +uid 866,0 +) +*170 (MRCItem +litem &147 +pos 17 +dimension 20 +uid 868,0 +) +*171 (MRCItem +litem &148 +pos 0 +dimension 20 +uid 995,0 +) +*172 (MRCItem +litem &149 +pos 3 +dimension 20 +uid 997,0 +) +*173 (MRCItem +litem &150 +pos 9 +dimension 20 +uid 1178,0 +) +*174 (MRCItem +litem &151 +pos 10 +dimension 20 +uid 1180,0 +) +*175 (MRCItem +litem &152 +pos 11 +dimension 20 +uid 1182,0 +) +*176 (MRCItem +litem &153 +pos 8 +dimension 20 +uid 1184,0 +) +*177 (MRCItem +litem &154 +pos 13 +dimension 20 +uid 1186,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 183,0 +optionalChildren [ +*178 (MRCItem +litem &122 +pos 0 +dimension 20 +uid 184,0 +) +*179 (MRCItem +litem &124 +pos 1 +dimension 50 +uid 185,0 +) +*180 (MRCItem +litem &125 +pos 2 +dimension 156 +uid 186,0 +) +*181 (MRCItem +litem &126 +pos 3 +dimension 50 +uid 187,0 +) +*182 (MRCItem +litem &127 +pos 4 +dimension 80 +uid 188,0 +) +*183 (MRCItem +litem &128 +pos 5 +dimension 191 +uid 189,0 +) +*184 (MRCItem +litem &129 +pos 6 +dimension 40 +uid 190,0 +) +*185 (MRCItem +litem &130 +pos 7 +dimension 100 +uid 191,0 +) +*186 (MRCItem +litem &131 +pos 8 +dimension 60 +uid 192,0 +) +*187 (MRCItem +litem &132 +pos 9 +dimension 130 +uid 193,0 +) +*188 (MRCItem +litem &133 +pos 10 +dimension 56 +uid 194,0 +) +*189 (MRCItem +litem &134 +pos 11 +dimension 50 +uid 195,0 +) +*190 (MRCItem +litem &135 +pos 12 +dimension 50 +uid 196,0 +) +*191 (MRCItem +litem &136 +pos 13 +dimension 80 +uid 197,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 178,0 +vaOverrides [ +] +) +] +) +uid 157,0 +) +cdmCsm &1 +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *192 (LEmptyRow +) +uid 199,0 +optionalChildren [ +*193 (RefLabelRowHdr +) +*194 (TitleRowHdr +) +*195 (FilterRowHdr +) +*196 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*197 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*198 (GroupColHdr +tm "GroupColHdrMgr" +) +*199 (NameColHdr +tm "GenericNameColHdrMgr" +) +*200 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*201 (InitColHdr +tm "GenericValueColHdrMgr" +) +*202 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*203 (EolColHdr +tm "GenericEolColHdrMgr" +) +*204 (LogGeneric +generic (GiElement +name "commandBusBitNb" +type "positive" +value "6" +) +uid 1301,0 +) +*205 (LogGeneric +generic (GiElement +name "maxDelayPeriodNb" +type "positive" +value "10" +) +uid 1361,0 +) +*206 (LogGeneric +generic (GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +uid 1507,0 +) +*207 (LogGeneric +generic (GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +uid 1547,0 +) +*208 (LogGeneric +generic (GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +uid 1549,0 +) +*209 (LogGeneric +generic (GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 1551,0 +) +*210 (LogGeneric +generic (GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 1553,0 +) +*211 (LogGeneric +generic (GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 1555,0 +) +*212 (LogGeneric +generic (GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +uid 1557,0 +) +*213 (LogGeneric +generic (GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 1559,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 211,0 +optionalChildren [ +*214 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *215 (MRCItem +litem &192 +pos 10 +dimension 20 +) +uid 213,0 +optionalChildren [ +*216 (MRCItem +litem &193 +pos 0 +dimension 20 +uid 214,0 +) +*217 (MRCItem +litem &194 +pos 1 +dimension 23 +uid 215,0 +) +*218 (MRCItem +litem &195 +pos 2 +hidden 1 +dimension 20 +uid 216,0 +) +*219 (MRCItem +litem &204 +pos 0 +dimension 20 +uid 1300,0 +) +*220 (MRCItem +litem &205 +pos 1 +dimension 20 +uid 1360,0 +) +*221 (MRCItem +litem &206 +pos 2 +dimension 20 +uid 1508,0 +) +*222 (MRCItem +litem &207 +pos 3 +dimension 20 +uid 1548,0 +) +*223 (MRCItem +litem &208 +pos 4 +dimension 20 +uid 1550,0 +) +*224 (MRCItem +litem &209 +pos 5 +dimension 20 +uid 1552,0 +) +*225 (MRCItem +litem &210 +pos 6 +dimension 20 +uid 1554,0 +) +*226 (MRCItem +litem &211 +pos 7 +dimension 20 +uid 1556,0 +) +*227 (MRCItem +litem &212 +pos 8 +dimension 20 +uid 1558,0 +) +*228 (MRCItem +litem &213 +pos 9 +dimension 20 +uid 1560,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 217,0 +optionalChildren [ +*229 (MRCItem +litem &196 +pos 0 +dimension 20 +uid 218,0 +) +*230 (MRCItem +litem &198 +pos 1 +dimension 50 +uid 219,0 +) +*231 (MRCItem +litem &199 +pos 2 +dimension 311 +uid 220,0 +) +*232 (MRCItem +litem &200 +pos 3 +dimension 183 +uid 221,0 +) +*233 (MRCItem +litem &201 +pos 4 +dimension 54 +uid 222,0 +) +*234 (MRCItem +litem &202 +pos 5 +dimension 50 +uid 223,0 +) +*235 (MRCItem +litem &203 +pos 6 +dimension 349 +uid 224,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 212,0 +vaOverrides [ +] +) +] +) +uid 198,0 +type 1 +) +signalSuffix "_int" +clockSuffix "_cld" +defaultState (State +shape (Circle +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "-3000,-3000,3000,3000" +radius 3000 +) +name (Text +va (VaSet +font "courier,10,1" +) +xt "0,0,1800,1200" +st "s0" +ju 0 +blo "900,1000" +tm "ONodeName" +) +wait (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "1000,900,4600,2100" +st "wait 2" +blo "1000,1900" +tm "SmWaitText" +) +) +encoding (Text +va (VaSet +font "courier,8,1" +) +blo "0,0" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3900,3100,4100,3300" +) +autoResize 1 +tline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +pts [ +"0,0" +"0,0" +] +) +bline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +pts [ +"0,0" +"0,0" +] +) +ttri (Triangle +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "-450,-175,-100,175" +) +btri (Triangle +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "-450,-175,-100,175" +) +entryActions (MLText +va (VaSet +) +tm "Actions" +) +inActions (MLText +va (VaSet +) +tm "Actions" +) +exitActions (MLText +va (VaSet +) +tm "Actions" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-1600,1000,3900,1900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +defaultWaitState (State +shape (CircleInOctagon +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +xt "-529,-529,6529,6529" +) +name (Text +va (VaSet +font "courier,10,1" +) +xt "0,0,1800,1200" +st "s0" +ju 0 +blo "900,1000" +tm "ONodeName" +) +wait (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +isHidden 1 +fg "0,0,32768" +font "courier,10,1" +) +xt "1000,900,4600,2100" +st "wait 2" +blo "1000,1900" +tm "SmWaitText" +) +) +encoding (Text +va (VaSet +font "courier,8,1" +) +blo "0,0" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "8900,6100,9100,6300" +) +autoResize 1 +tline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "5000,3000,5000,3000" +pts [ +"5000,3000" +"5000,3000" +] +) +bline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "5000,3000,5000,3000" +pts [ +"5000,3000" +"5000,3000" +] +) +ttri (Triangle +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "4550,2825,4900,3175" +) +btri (Triangle +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "4550,2825,4900,3175" +) +entryActions (MLText +va (VaSet +isHidden 1 +) +xt "5000,3000,5000,3000" +tm "Actions" +) +inActions (MLText +va (VaSet +isHidden 1 +) +xt "5000,3000,5000,3000" +tm "Actions" +) +exitActions (MLText +va (VaSet +isHidden 1 +) +xt "5000,3000,5000,3000" +tm "Actions" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-1600,1000,3900,1900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +isWait 1 +) +defaultCompositeState (CompositeState +shape (TripleCircle +va (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "-3000,-3000,3000,3000" +radius 3000 +) +name (Text +va (VaSet +font "courier,10,1" +) +xt "-900,-600,900,600" +st "s0" +ju 0 +blo "0,400" +tm "ONodeName" +) +childDiagram &0 +) +defaultJunction (Junction +shape (Diamond +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "-1150,-1150,2150,2150" +) +symbol (Text +va (VaSet +font "courier,10,1" +) +xt "-150,-100,1150,1100" +st "&" +ju 0 +blo "500,900" +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "2000,1000,2000,1000" +blo "2000,1000" +tm "JunctionName" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-1850,2000,3650,2900" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +defaultEntryPoint (EntryPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "29952,39936,65280" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-875,875,1375,1875" +) +(Line +sl 0 +ro 270 +xt "1375,1375,1875,1375" +pts [ +"1375,1375" +"1875,1375" +] +) +] +) +) +defaultInterruptPoint (InterruptPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-875,875,1375,1875" +) +(Line +sl 0 +ro 270 +xt "1375,1375,1875,1375" +pts [ +"1375,1375" +"1875,1375" +] +) +(CustomPolygon +pts [ +"-625,1600" +"-625,1300" +"25,1425" +"-75,1150" +"1025,1350" +"200,1350" +"375,1600" +] +sl 0 +ro 270 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "65535,0,0" +lineColor "65535,65535,0" +) +xt "-625,1150,1025,1600" +) +] +) +) +defaultLink (Link +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-375,875,1875,1875" +) +(Line +sl 0 +ro 270 +xt "-875,1375,-375,1375" +pts [ +"-875,1375" +"-375,1375" +] +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "2375,875,4375,1875" +st "Link" +blo "2375,1675" +tm "LinkName" +) +) +) +defaultExitPoint (ExitPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "29952,39936,65280" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-375,875,1875,1875" +) +(Line +sl 0 +ro 270 +xt "-875,1375,-375,1375" +pts [ +"-875,1375" +"-375,1375" +] +) +] +) +) +defaultTransition (Transition +shape (Spline +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +arrow 1 +) +ss 0 +es 0 +cond "condition" +tb (TransitionBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-500,-500,3900,1500" +) +autoResize 1 +lineShape (Line +va (VaSet +vasetType 3 +isHidden 1 +) +xt "1700,1400,1700,1400" +pts [ +"1700,1400" +"1700,1400" +] +) +condition (MLText +va (VaSet +) +xt "0,0,5400,1000" +st "condition" +tm "Condition" +) +actions (MLText +va (VaSet +) +xt "1700,1800,1700,1800" +tm "Actions" +) +) +tp (TransitionPriority +ps "PercentageFromStartStrategy" +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-781,-781,781,781" +radius 781 +) +pr (Text +va (VaSet +) +xt "-400,-500,400,500" +st "1" +ju 0 +blo "0,300" +tm "TransitionPriority" +) +padding "100,100" +) +) +defaultClk (SmClockPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"275,1425" +"574,1425" +"574,825" +"874,825" +] +) +(Arc2D +pts [ +"-116,1278" +"-371,972" +"-116,972" +] +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-441,926,-116,1323" +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "courier,8,0" +) +xt "-2425,625,-1125,1625" +st "clk" +ju 2 +blo "-1125,1425" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1625,525,8225,1725" +) +autoResize 1 +cond (MLText +va (VaSet +font "courier,8,0" +) +xt "1725,625,10225,1525" +st "rising_edge(clk)" +tm "SmControlConditionMgr" +) +) +edge 4 +) +defaultEnable (SmEnablePoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"874,1425" +"574,1425" +"574,825" +"275,825" +] +) +(Arc2D +pts [ +"-130,1263" +"-415,1064" +"-76,1064" +] +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-425,943,-76,1304" +) +(Line +sl 0 +ro 270 +xt "-415,1064,-106,1064" +pts [ +"-415,1064" +"-106,1064" +] +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "courier,8,0" +) +xt "-3725,625,-1125,1625" +st "enable" +ju 2 +blo "-1125,1425" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1625,525,3825,1725" +) +autoResize 1 +cond (MLText +va (VaSet +font "courier,8,0" +) +xt "1725,625,3725,1525" +st "cond" +tm "SmControlConditionMgr" +) +) +) +defaultRst (SmResetPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"874,825" +"574,825" +"574,1425" +"275,1425" +] +) +(Line +sl 0 +ro 270 +xt "-376,950,-276,1000" +pts [ +"-376,1000" +"-276,950" +] +) +(Line +sl 0 +ro 270 +xt "-376,950,-376,1300" +pts [ +"-376,1300" +"-376,950" +] +) +(Circle +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,0" +) +xt "424,975,724,1275" +radius 150 +) +] +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "-1125,-975,2075,225" +) +autoResize 1 +cond (MLText +va (VaSet +font "courier,8,0" +) +xt "-1025,-875,3675,25" +st "rst = '1'" +tm "SmControlConditionMgr" +) +) +prio (TransitionPriority +ps "PercentageFromStartStrategy" +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "1625,344,3187,1906" +radius 781 +) +pr (Text +va (VaSet +) +xt "2006,625,2806,1625" +st "1" +ju 0 +blo "2406,1425" +tm "TransitionPriority" +) +padding "100,100" +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "courier,8,0" +) +xt "-1925,625,-625,1625" +st "rst" +ju 2 +blo "-625,1425" +tm "SmControlSignalNameMgr" +) +) +actions (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "4750,2625,11750,3525" +st "< Automatic >" +tm "Actions" +) +) +level 1 +) +defaultRecStatePt (SmRecoveryStatePoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Circle +sl 0 +xt "-900,-900,900,900" +radius 900 +) +(Line +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-426,-426,426,426" +pts [ +"-426,426" +"426,-426" +] +) +(Line +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-426,-426,426,426" +pts [ +"426,426" +"-426,-426" +] +) +] +) +) +activeModelName "StateMachine" +LanguageMgr "Vhdl2008LangMgr" +) diff --git a/Libs/Memory/hds/sdram@controller@fsm/symbol.sb b/Libs/Memory/hds/sdram@controller@fsm/symbol.sb new file mode 100644 index 0000000..c6ef56d --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@fsm/symbol.sb @@ -0,0 +1,2624 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 166,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 67,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 8 +suid 149,0 +) +) +uid 2660,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 9 +suid 150,0 +) +) +uid 2662,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 10 +suid 151,0 +) +) +uid 2664,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 11 +suid 152,0 +) +) +uid 2666,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 153,0 +) +) +uid 2668,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "commandBus" +t "std_ulogic_vector" +b "( commandBusBitNb-1 DOWNTO 0 )" +o 12 +suid 154,0 +) +) +uid 2670,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 2 +suid 155,0 +) +) +uid 2672,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 13 +suid 156,0 +) +) +uid 2674,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 157,0 +) +) +uid 2676,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 3 +suid 158,0 +) +) +uid 2678,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readAck" +t "std_ulogic" +o 15 +suid 159,0 +) +) +uid 2680,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "readRequest" +t "std_ulogic" +o 4 +suid 160,0 +) +) +uid 2682,0 +) +*26 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 161,0 +) +) +uid 2684,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "sampleData" +t "std_ulogic" +o 16 +suid 162,0 +) +) +uid 2686,0 +) +*28 (LogPort +port (LogicalPort +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "( 1 TO maxDelayPeriodNb )" +o 6 +suid 163,0 +) +) +uid 2688,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "timerStart" +t "std_ulogic" +o 17 +suid 164,0 +) +) +uid 2690,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeAck" +t "std_ulogic" +o 18 +suid 165,0 +) +) +uid 2692,0 +) +*31 (LogPort +port (LogicalPort +decl (Decl +n "writeRequest" +t "std_ulogic" +o 7 +suid 166,0 +) +) +uid 2694,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 80,0 +optionalChildren [ +*32 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *33 (MRCItem +litem &1 +pos 18 +dimension 20 +) +uid 82,0 +optionalChildren [ +*34 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 83,0 +) +*35 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 84,0 +) +*36 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 85,0 +) +*37 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2661,0 +) +*38 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2663,0 +) +*39 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2665,0 +) +*40 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2667,0 +) +*41 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2669,0 +) +*42 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2671,0 +) +*43 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2673,0 +) +*44 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2675,0 +) +*45 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2677,0 +) +*46 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 2679,0 +) +*47 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2681,0 +) +*48 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 2683,0 +) +*49 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 2685,0 +) +*50 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 2687,0 +) +*51 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 2689,0 +) +*52 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 2691,0 +) +*53 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 2693,0 +) +*54 (MRCItem +litem &31 +pos 17 +dimension 20 +uid 2695,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 86,0 +optionalChildren [ +*55 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 87,0 +) +*56 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 88,0 +) +*57 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 89,0 +) +*58 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 90,0 +) +*59 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 91,0 +) +*60 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 92,0 +) +*61 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 93,0 +) +*62 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 94,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 66,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *63 (LEmptyRow +) +uid 96,0 +optionalChildren [ +*64 (RefLabelRowHdr +) +*65 (TitleRowHdr +) +*66 (FilterRowHdr +) +*67 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*68 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*69 (GroupColHdr +tm "GroupColHdrMgr" +) +*70 (NameColHdr +tm "GenericNameColHdrMgr" +) +*71 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*72 (InitColHdr +tm "GenericValueColHdrMgr" +) +*73 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*74 (EolColHdr +tm "GenericEolColHdrMgr" +) +*75 (LogGeneric +generic (GiElement +name "commandBusBitNb" +type "positive" +value "6" +) +uid 2788,0 +) +*76 (LogGeneric +generic (GiElement +name "maxDelayPeriodNb" +type "positive" +value "10" +) +uid 2836,0 +) +*77 (LogGeneric +generic (GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +uid 2931,0 +) +*78 (LogGeneric +generic (GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +uid 2933,0 +) +*79 (LogGeneric +generic (GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +uid 2935,0 +) +*80 (LogGeneric +generic (GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 2937,0 +) +*81 (LogGeneric +generic (GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 2939,0 +) +*82 (LogGeneric +generic (GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +uid 2941,0 +) +*83 (LogGeneric +generic (GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +uid 2943,0 +) +*84 (LogGeneric +generic (GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +uid 2945,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*85 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *86 (MRCItem +litem &63 +pos 2 +dimension 20 +) +uid 110,0 +optionalChildren [ +*87 (MRCItem +litem &64 +pos 0 +dimension 20 +uid 111,0 +) +*88 (MRCItem +litem &65 +pos 1 +dimension 23 +uid 112,0 +) +*89 (MRCItem +litem &66 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*90 (MRCItem +litem &75 +pos 0 +dimension 20 +uid 2789,0 +) +*91 (MRCItem +litem &76 +pos 1 +dimension 20 +uid 2837,0 +) +*92 (MRCItem +litem &77 +pos 2 +dimension 20 +uid 2930,0 +) +*93 (MRCItem +litem &78 +pos 3 +dimension 20 +uid 2932,0 +) +*94 (MRCItem +litem &79 +pos 4 +dimension 20 +uid 2934,0 +) +*95 (MRCItem +litem &80 +pos 5 +dimension 20 +uid 2936,0 +) +*96 (MRCItem +litem &81 +pos 6 +dimension 20 +uid 2938,0 +) +*97 (MRCItem +litem &82 +pos 7 +dimension 20 +uid 2940,0 +) +*98 (MRCItem +litem &83 +pos 8 +dimension 20 +uid 2942,0 +) +*99 (MRCItem +litem &84 +pos 9 +dimension 20 +uid 2944,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*100 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 115,0 +) +*101 (MRCItem +litem &69 +pos 1 +dimension 50 +uid 116,0 +) +*102 (MRCItem +litem &70 +pos 2 +dimension 100 +uid 117,0 +) +*103 (MRCItem +litem &71 +pos 3 +dimension 100 +uid 118,0 +) +*104 (MRCItem +litem &72 +pos 4 +dimension 50 +uid 119,0 +) +*105 (MRCItem +litem &73 +pos 5 +dimension 50 +uid 120,0 +) +*106 (MRCItem +litem &74 +pos 6 +dimension 80 +uid 121,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 95,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerFsm" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "sdramControllerFsm" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerFsm" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@fsm/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerFsm/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:14" +) +(vvPair +variable "unit" +value "sdramControllerFsm" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 65,0 +optionalChildren [ +*107 (SymbolBody +uid 8,0 +optionalChildren [ +*108 (CptPort +uid 2570,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2571,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,19625,51750,20375" +) +tg (CPTG +uid 2572,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2573,0 +va (VaSet +) +xt "45400,19500,50000,20500" +st "addrSelCol" +ju 2 +blo "50000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2574,0 +va (VaSet +font "courier,8,0" +) +xt "0,16900,20500,17800" +st "addrSelCol : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelCol" +t "std_ulogic" +o 8 +suid 149,0 +) +) +) +*109 (CptPort +uid 2575,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2576,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,15625,51750,16375" +) +tg (CPTG +uid 2577,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2578,0 +va (VaSet +) +xt "43200,15500,50000,16500" +st "addrSelModeReg" +ju 2 +blo "50000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2579,0 +va (VaSet +font "courier,8,0" +) +xt "0,17800,20500,18700" +st "addrSelModeReg : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelModeReg" +t "std_ulogic" +o 9 +suid 150,0 +) +) +) +*110 (CptPort +uid 2580,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2581,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,13625,51750,14375" +) +tg (CPTG +uid 2582,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2583,0 +va (VaSet +) +xt "43000,13500,50000,14500" +st "addrSelPrecharge" +ju 2 +blo "50000,14300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2584,0 +va (VaSet +font "courier,8,0" +) +xt "0,18700,20500,19600" +st "addrSelPrecharge : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelPrecharge" +t "std_ulogic" +o 10 +suid 151,0 +) +) +) +*111 (CptPort +uid 2585,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2586,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,17625,51750,18375" +) +tg (CPTG +uid 2587,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2588,0 +va (VaSet +) +xt "45100,17500,50000,18500" +st "addrSelRow" +ju 2 +blo "50000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2589,0 +va (VaSet +font "courier,8,0" +) +xt "0,19600,20500,20500" +st "addrSelRow : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrSelRow" +t "std_ulogic" +o 11 +suid 152,0 +) +) +) +*112 (CptPort +uid 2590,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2591,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,27625,35000,28375" +) +tg (CPTG +uid 2592,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2593,0 +va (VaSet +) +xt "36000,27500,38100,28500" +st "clock" +blo "36000,28300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2594,0 +va (VaSet +font "courier,8,0" +) +xt "0,10600,20500,11500" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 153,0 +) +) +) +*113 (CptPort +uid 2595,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2596,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,27625,51750,28375" +) +tg (CPTG +uid 2597,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2598,0 +va (VaSet +) +xt "44700,27500,50000,28500" +st "commandBus" +ju 2 +blo "50000,28300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2599,0 +va (VaSet +font "courier,8,0" +) +xt "0,20500,39000,21400" +st "commandBus : OUT std_ulogic_vector ( commandBusBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "commandBus" +t "std_ulogic_vector" +b "( commandBusBitNb-1 DOWNTO 0 )" +o 12 +suid 154,0 +) +) +) +*114 (CptPort +uid 2600,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2601,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,9625,35000,10375" +) +tg (CPTG +uid 2602,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2603,0 +va (VaSet +) +xt "36000,9500,43500,10500" +st "endOfRefreshCount" +blo "36000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2604,0 +va (VaSet +font "courier,8,0" +) +xt "0,11500,20500,12400" +st "endOfRefreshCount : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 2 +suid 155,0 +) +) +) +*115 (CptPort +uid 2605,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2606,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,9625,51750,10375" +) +tg (CPTG +uid 2607,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2608,0 +va (VaSet +) +xt "44400,9500,50000,10500" +st "powerUpDone" +ju 2 +blo "50000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2609,0 +va (VaSet +font "courier,8,0" +) +xt "0,21400,20500,22300" +st "powerUpDone : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 13 +suid 156,0 +) +) +) +*116 (CptPort +uid 2610,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2611,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,25625,51750,26375" +) +tg (CPTG +uid 2612,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2613,0 +va (VaSet +) +xt "44600,25500,50000,26500" +st "ramDataValid" +ju 2 +blo "50000,26300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2614,0 +va (VaSet +font "courier,8,0" +) +xt "0,22300,20500,23200" +st "ramDataValid : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 157,0 +) +) +) +*117 (CptPort +uid 2615,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2616,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,25625,35000,26375" +) +tg (CPTG +uid 2617,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2618,0 +va (VaSet +) +xt "36000,25500,38600,26500" +st "ramEn" +blo "36000,26300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2619,0 +va (VaSet +font "courier,8,0" +) +xt "0,12400,20500,13300" +st "ramEn : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 3 +suid 158,0 +) +) +) +*118 (CptPort +uid 2620,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2621,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,21625,35000,22375" +) +tg (CPTG +uid 2622,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2623,0 +va (VaSet +) +xt "36000,21500,39100,22500" +st "readAck" +blo "36000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2624,0 +va (VaSet +font "courier,8,0" +) +xt "0,23200,20500,24100" +st "readAck : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readAck" +t "std_ulogic" +o 15 +suid 159,0 +) +) +) +*119 (CptPort +uid 2625,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2626,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,19625,35000,20375" +) +tg (CPTG +uid 2627,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2628,0 +va (VaSet +) +xt "36000,19500,41200,20500" +st "readRequest" +blo "36000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2629,0 +va (VaSet +font "courier,8,0" +) +xt "0,13300,20500,14200" +st "readRequest : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "readRequest" +t "std_ulogic" +o 4 +suid 160,0 +) +) +) +*120 (CptPort +uid 2630,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2631,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,29625,35000,30375" +) +tg (CPTG +uid 2632,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2633,0 +va (VaSet +) +xt "36000,29500,38100,30500" +st "reset" +blo "36000,30300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2634,0 +va (VaSet +font "courier,8,0" +) +xt "0,14200,20500,15100" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 161,0 +) +) +) +*121 (CptPort +uid 2635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2636,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,21625,51750,22375" +) +tg (CPTG +uid 2637,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2638,0 +va (VaSet +) +xt "45200,21500,50000,22500" +st "sampleData" +ju 2 +blo "50000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2639,0 +va (VaSet +font "courier,8,0" +) +xt "0,24100,20500,25000" +st "sampleData : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "sampleData" +t "std_ulogic" +o 16 +suid 162,0 +) +) +) +*122 (CptPort +uid 2640,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2641,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,11625,35000,12375" +) +tg (CPTG +uid 2642,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2643,0 +va (VaSet +) +xt "36000,11500,39900,12500" +st "timerDone" +blo "36000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2644,0 +va (VaSet +font "courier,8,0" +) +xt "0,15100,36500,16000" +st "timerDone : IN std_ulogic_vector ( 1 TO maxDelayPeriodNb ) ;" +) +thePort (LogicalPort +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "( 1 TO maxDelayPeriodNb )" +o 6 +suid 163,0 +) +) +) +*123 (CptPort +uid 2645,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2646,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,11625,51750,12375" +) +tg (CPTG +uid 2647,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2648,0 +va (VaSet +) +xt "45900,11500,50000,12500" +st "timerStart" +ju 2 +blo "50000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2649,0 +va (VaSet +font "courier,8,0" +) +xt "0,25000,20500,25900" +st "timerStart : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "timerStart" +t "std_ulogic" +o 17 +suid 164,0 +) +) +) +*124 (CptPort +uid 2650,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2651,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,17625,35000,18375" +) +tg (CPTG +uid 2652,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2653,0 +va (VaSet +) +xt "36000,17500,39200,18500" +st "writeAck" +blo "36000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2654,0 +va (VaSet +font "courier,8,0" +) +xt "0,25900,19500,26800" +st "writeAck : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeAck" +t "std_ulogic" +o 18 +suid 165,0 +) +) +) +*125 (CptPort +uid 2655,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2656,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,15625,35000,16375" +) +tg (CPTG +uid 2657,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2658,0 +va (VaSet +) +xt "36000,15500,41300,16500" +st "writeRequest" +blo "36000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2659,0 +va (VaSet +font "courier,8,0" +) +xt "0,16000,20500,16900" +st "writeRequest : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "writeRequest" +t "std_ulogic" +o 7 +suid 166,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,6000,51000,32000" +) +oxt "15000,6000,31000,30000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "35750,32000,38750,32900" +st "Memory" +blo "35750,32700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "35750,32900,45250,33800" +st "sdramControllerFsm" +blo "35750,33600" +) +) +gi *126 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "35000,35200,69500,46000" +st "Generic Declarations + +commandBusBitNb positive 6 +maxDelayPeriodNb positive 10 +prechargeToRefreshPeriodNb positive 2 --66MHz * 20 ns = 1.32 +refreshDelayPeriodNb positive 5 --66MHz * 66ns = 4.356 +loadModeToActivePeriodNb positive 1 --1 CK +activeToWritePeriodNb positive 2 --66MHz * 20ns = 1.32 +writeToActivePeriodNb positive 3 --1 CK + 66MHz * 20ns = 2.32 +activeToReadPeriodNb positive 2 --66MHz * 20ns = 1.32 +readToSamplePeriodNb positive 2 --2 CK with latency = 2 +readToActivePeriodNb positive 3 --1 CK + 66MHz * 20ns = 2.32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "commandBusBitNb" +type "positive" +value "6" +) +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "10" +) +(GiElement +name "prechargeToRefreshPeriodNb" +type "positive" +value "2" +e "66MHz * 20 ns = 1.32" +) +(GiElement +name "refreshDelayPeriodNb" +type "positive" +value "5" +e "66MHz * 66ns = 4.356" +) +(GiElement +name "loadModeToActivePeriodNb" +type "positive" +value "1" +e "1 CK" +) +(GiElement +name "activeToWritePeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "writeToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +(GiElement +name "activeToReadPeriodNb" +type "positive" +value "2" +e "66MHz * 20ns = 1.32" +) +(GiElement +name "readToSamplePeriodNb" +type "positive" +value "2" +e "2 CK with latency = 2" +) +(GiElement +name "readToActivePeriodNb" +type "positive" +value "3" +e "1 CK + 66MHz * 20ns = 2.32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*127 (Grouping +uid 16,0 +optionalChildren [ +*128 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,49200,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*129 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*130 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*131 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*132 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*133 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*134 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*135 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*136 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*137 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,50400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *138 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*140 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "8,47,1393,955" +viewArea "-3100,-1100,72690,50510" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *141 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *142 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,8600,3400,9600" +st "Declarations" +blo "-2000,9400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,9600,700,10600" +st "Ports:" +blo "-2000,10400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,26800,500,27700" +st "User:" +blo "-2000,27500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,8600,3800,9600" +st "Internal User:" +blo "-2000,9400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,27700,0,27700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,8600,-2000,8600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2968,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb b/Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb new file mode 100644 index 0000000..8b2807a --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb @@ -0,0 +1,1625 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 10,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 67,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 6,0 +) +) +uid 209,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 22 +suid 7,0 +) +) +uid 211,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 21 +suid 8,0 +) +) +uid 213,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 9,0 +) +) +uid 215,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 5 +suid 10,0 +) +) +uid 295,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 80,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 82,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 83,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 84,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 85,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 210,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 212,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 214,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 216,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 296,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 86,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 87,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 88,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 89,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 90,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 91,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 92,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 93,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 94,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 66,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 96,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "delayCounterBitNb" +type "positive" +value "12" +) +uid 240,0 +) +*50 (LogGeneric +generic (GiElement +name "refreshPeriodNb" +type "positive" +value "1024" +) +uid 242,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 110,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 111,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 112,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 241,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 243,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 115,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 116,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 117,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 118,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 119,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 120,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 121,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 95,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@refresh@counter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerRefreshCounter" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramControllerRefreshCounter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:13" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerRefreshCounter" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerRefreshCounter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:13" +) +(vvPair +variable "unit" +value "sdramControllerRefreshCounter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 65,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 190,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 191,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 192,0 +va (VaSet +) +xt "33000,19500,35100,20500" +st "clock" +blo "33000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 193,0 +va (VaSet +font "courier,8,0" +) +xt "0,11800,20500,12700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 6,0 +) +) +) +*67 (CptPort +uid 194,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 195,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,15625,48750,16375" +) +tg (CPTG +uid 196,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 197,0 +va (VaSet +) +xt "39500,15500,47000,16500" +st "endOfRefreshCount" +ju 2 +blo "47000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 198,0 +va (VaSet +font "courier,8,0" +) +xt "0,14500,20500,15400" +st "endOfRefreshCount : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "endOfRefreshCount" +t "std_ulogic" +o 22 +suid 7,0 +) +) +) +*68 (CptPort +uid 199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 200,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,15625,32000,16375" +) +tg (CPTG +uid 201,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 202,0 +va (VaSet +) +xt "33000,15500,38600,16500" +st "powerUpDone" +blo "33000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 203,0 +va (VaSet +font "courier,8,0" +) +xt "0,12700,20500,13600" +st "powerUpDone : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "powerUpDone" +t "std_ulogic" +o 21 +suid 8,0 +) +) +) +*69 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,21625,32000,22375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +) +xt "33000,21500,35100,22500" +st "reset" +blo "33000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "0,13600,20500,14500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 9,0 +) +) +) +*70 (CptPort +uid 290,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 291,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,17625,48750,18375" +) +tg (CPTG +uid 292,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 293,0 +va (VaSet +) +xt "41500,17500,47000,18500" +st "selectRefresh" +ju 2 +blo "47000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 294,0 +va (VaSet +font "courier,8,0" +) +xt "0,15400,19500,16300" +st "selectRefresh : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 5 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,12000,48000,24000" +) +oxt "15000,6000,31000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "32350,24000,35350,24900" +st "Memory" +blo "32350,24700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "32350,24900,47350,25800" +st "sdramControllerRefreshCounter" +blo "32350,25600" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,27200,49000,30800" +st "Generic Declarations + +delayCounterBitNb positive 12 +refreshPeriodNb positive 1024 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "delayCounterBitNb" +type "positive" +value "12" +) +(GiElement +name "refreshPeriodNb" +type "positive" +value "1024" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,48000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,44400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "27,64,1389,970" +viewArea "-3100,-1100,72338,51172" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,9800,3400,10800" +st "Declarations" +blo "-2000,10600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,10800,700,11800" +st "Ports:" +blo "-2000,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,16300,500,17200" +st "User:" +blo "-2000,17000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,9800,3800,10800" +st "Internal User:" +blo "-2000,10600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,17200,0,17200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,9800,-2000,9800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 319,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/sdram@controller@s@r/symbol.sb b/Libs/Memory/hds/sdram@controller@s@r/symbol.sb new file mode 100644 index 0000000..8735202 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@s@r/symbol.sb @@ -0,0 +1,1581 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 76,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "setFlag" +t "std_ulogic" +o 7 +suid 2,0 +) +) +uid 78,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 3,0 +) +) +uid 80,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "resetFlag" +t "std_ulogic" +o 7 +suid 4,0 +) +) +uid 82,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flag" +t "std_ulogic" +o 7 +suid 5,0 +) +) +uid 84,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 77,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 79,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 81,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 83,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 85,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*49 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *50 (MRCItem +litem &37 +pos 0 +dimension 20 +) +uid 131,0 +optionalChildren [ +*51 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*52 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*53 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*54 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*55 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*56 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*57 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*58 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*59 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*60 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@s@r/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@s@r/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@s@r" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerSR" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramControllerSR" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:13" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerSR" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@s@r/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerSR/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Board\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:13" +) +(vvPair +variable "unit" +value "sdramControllerSR" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28250,21625,29000,22375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "30000,21500,32100,22500" +st "clock" +blo "30000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "courier,8,0" +) +xt "0,8000,16500,8900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28250,15625,29000,16375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "30000,15500,33000,16500" +st "setFlag" +blo "30000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "courier,8,0" +) +xt "0,10700,16500,11600" +st "setFlag : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "setFlag" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*64 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28250,23625,29000,24375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "30000,23500,32100,24500" +st "reset" +blo "30000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "courier,8,0" +) +xt "0,8900,16500,9800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 3,0 +) +) +) +*65 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28250,17625,29000,18375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "30000,17500,33700,18500" +st "resetFlag" +blo "30000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "courier,8,0" +) +xt "0,9800,16500,10700" +st "resetFlag : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "resetFlag" +t "std_ulogic" +o 7 +suid 4,0 +) +) +) +*66 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45000,15625,45750,16375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "42300,15500,44000,16500" +st "flag" +ju 2 +blo "44000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "courier,8,0" +) +xt "0,11600,15500,12500" +st "flag : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "flag" +t "std_ulogic" +o 7 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "29000,12000,45000,26000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "29000,26000,32000,26900" +st "Memory" +blo "29000,26700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "29000,26900,38000,27800" +st "sdramControllerSR" +blo "29000,27600" +) +) +gi *67 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "29000,29200,39500,30100" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*68 (Grouping +uid 16,0 +optionalChildren [ +*69 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,48600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,49800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *79 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*81 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-1,40,1385,946" +viewArea "-3080,-1069,72539,50251" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *82 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *83 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,6000,3400,7000" +st "Declarations" +blo "-2000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,7000,700,8000" +st "Ports:" +blo "-2000,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,12500,500,13400" +st "User:" +blo "-2000,13200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,6000,3800,7000" +st "Internal User:" +blo "-2000,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,13400,0,13400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,6000,-2000,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 188,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb b/Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb new file mode 100644 index 0000000..bda3c0d --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb @@ -0,0 +1,1606 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 13,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 9,0 +) +) +uid 237,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 10,0 +) +) +uid 239,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 11,0 +) +) +uid 241,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +) +uid 243,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "sampleData" +t "std_ulogic" +o 34 +suid 13,0 +) +) +uid 245,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 96,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 238,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 240,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 242,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 244,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 246,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 159,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 124,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 125,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 126,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 160,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 129,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 130,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 131,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 132,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 133,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 134,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@sample@data@in" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerSampleDataIn" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramControllerSampleDataIn" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:13" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerSampleDataIn" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerSampleDataIn/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Board\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:13" +) +(vvPair +variable "unit" +value "sdramControllerSampleDataIn" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 212,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 213,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,24625,38000,25375" +) +tg (CPTG +uid 214,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 215,0 +va (VaSet +) +xt "39000,24500,41100,25500" +st "clock" +blo "39000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 216,0 +va (VaSet +font "courier,8,0" +) +xt "0,9000,17000,9900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 9,0 +) +) +) +*65 (CptPort +uid 217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 218,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,18625,54750,19375" +) +tg (CPTG +uid 219,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 220,0 +va (VaSet +) +xt "48800,18500,53000,19500" +st "memDataIn" +ju 2 +blo "53000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 221,0 +va (VaSet +font "courier,8,0" +) +xt "0,9900,31500,10800" +st "memDataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 10,0 +) +) +) +*66 (CptPort +uid 222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 223,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,18625,38000,19375" +) +tg (CPTG +uid 224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 225,0 +va (VaSet +) +xt "39000,18500,42900,19500" +st "ramDataIn" +blo "39000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 226,0 +va (VaSet +font "courier,8,0" +) +xt "0,12600,30500,13500" +st "ramDataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 11,0 +) +) +) +*67 (CptPort +uid 227,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 229,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 230,0 +va (VaSet +) +xt "39000,26500,41100,27500" +st "reset" +blo "39000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 231,0 +va (VaSet +font "courier,8,0" +) +xt "0,10800,17000,11700" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 12,0 +) +) +) +*68 (CptPort +uid 232,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 233,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,22625,38000,23375" +) +tg (CPTG +uid 234,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 235,0 +va (VaSet +) +xt "39000,22500,43800,23500" +st "sampleData" +blo "39000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 236,0 +va (VaSet +font "courier,8,0" +) +xt "0,11700,17000,12600" +st "sampleData : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "sampleData" +t "std_ulogic" +o 34 +suid 13,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,15000,54000,29000" +) +oxt "15000,6000,31000,18000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "38800,29000,41800,29900" +st "Memory" +blo "38800,29700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "38800,29900,52800,30800" +st "sdramControllerSampleDataIn" +blo "38800,30600" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,32600,50000,35300" +st "Generic Declarations + +dataBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,48600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,44400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "7,87,1401,1002" +viewArea "-3063,-1063,72646,50548" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,7000,3400,8000" +st "Declarations" +blo "-2000,7800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,8000,700,9000" +st "Ports:" +blo "-2000,8800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,13500,500,14400" +st "User:" +blo "-2000,14200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,7000,3800,8000" +st "Internal User:" +blo "-2000,7800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,14400,0,14400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,7000,-2000,7000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 292,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/sdram@controller@store@data/symbol.sb b/Libs/Memory/hds/sdram@controller@store@data/symbol.sb new file mode 100644 index 0000000..3f4be58 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@store@data/symbol.sb @@ -0,0 +1,1606 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 15,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 11,0 +) +) +uid 251,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 12,0 +) +) +uid 253,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 13,0 +) +) +uid 255,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 14,0 +) +) +uid 257,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 15,0 +) +) +uid 259,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 252,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 254,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 256,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 258,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 260,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 166,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 167,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@store@data/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@store@data/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@store@data" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerStoreData" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramControllerStoreData" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:13" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerStoreData" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@store@data/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerStoreData/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Board\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:13" +) +(vvPair +variable "unit" +value "sdramControllerStoreData" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,20625,40000,21375" +) +tg (CPTG +uid 228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 229,0 +va (VaSet +) +xt "41000,20500,43100,21500" +st "clock" +blo "41000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 230,0 +va (VaSet +font "courier,8,0" +) +xt "0,9000,17000,9900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 11,0 +) +) +) +*65 (CptPort +uid 231,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 232,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,14625,56750,15375" +) +tg (CPTG +uid 233,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 234,0 +va (VaSet +) +xt "49800,14500,55000,15500" +st "memDataOut" +ju 2 +blo "55000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 235,0 +va (VaSet +font "courier,8,0" +) +xt "0,12600,30500,13500" +st "memDataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 12,0 +) +) +) +*66 (CptPort +uid 236,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 237,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,14625,40000,15375" +) +tg (CPTG +uid 238,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 239,0 +va (VaSet +) +xt "41000,14500,45900,15500" +st "ramDataOut" +blo "41000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 240,0 +va (VaSet +font "courier,8,0" +) +xt "0,9900,31500,10800" +st "ramDataOut : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 13,0 +) +) +) +*67 (CptPort +uid 241,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 242,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,16625,40000,17375" +) +tg (CPTG +uid 243,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 244,0 +va (VaSet +) +xt "41000,16500,43700,17500" +st "ramWr" +blo "41000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 245,0 +va (VaSet +font "courier,8,0" +) +xt "0,10800,17000,11700" +st "ramWr : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 14,0 +) +) +) +*68 (CptPort +uid 246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 247,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,22625,40000,23375" +) +tg (CPTG +uid 248,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 249,0 +va (VaSet +) +xt "41000,22500,43100,23500" +st "reset" +blo "41000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 250,0 +va (VaSet +font "courier,8,0" +) +xt "0,11700,17000,12600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 15,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,11000,56000,25000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "40500,25000,43500,25900" +st "Memory" +blo "40500,25700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "40500,25900,53000,26800" +st "sdramControllerStoreData" +blo "40500,26600" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,28600,51500,31300" +st "Generic Declarations + +dataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,48600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,44400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2,62,1390,960" +viewArea "-3082,-1069,73504,50294" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,7000,3400,8000" +st "Declarations" +blo "-2000,7800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,8000,700,9000" +st "Ports:" +blo "-2000,8800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,13500,500,14400" +st "User:" +blo "-2000,14200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,7000,3800,8000" +st "Internal User:" +blo "-2000,7800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,14400,0,14400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,7000,-2000,7000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 306,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb b/Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb new file mode 100644 index 0000000..e699856 --- /dev/null +++ b/Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb @@ -0,0 +1,1544 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 5,0 +) +) +uid 179,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 6,0 +) +) +uid 181,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "(1 TO maxDelayPeriodNb)" +o 25 +suid 7,0 +) +) +uid 183,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "timerStart" +t "std_ulogic" +o 24 +suid 8,0 +) +) +uid 185,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 180,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 182,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 184,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 186,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "maxDelayPeriodNb" +type "positive" +value "10" +) +uid 210,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 124,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 125,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 126,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 211,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 129,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 130,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 131,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 132,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 133,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 134,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@timings@shift@register" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerTimingsShiftRegister" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramControllerTimingsShiftRegister" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:13" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramControllerTimingsShiftRegister" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory/hds/sdramControllerTimingsShiftRegister/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Board\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:13" +) +(vvPair +variable "unit" +value "sdramControllerTimingsShiftRegister" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 159,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 160,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,23625,32000,24375" +) +tg (CPTG +uid 161,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 162,0 +va (VaSet +) +xt "33000,23500,35100,24500" +st "clock" +blo "33000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 163,0 +va (VaSet +font "courier,8,0" +) +xt "0,18800,17000,19700" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 5,0 +) +) +) +*63 (CptPort +uid 164,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 165,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,25625,32000,26375" +) +tg (CPTG +uid 166,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 167,0 +va (VaSet +) +xt "33000,25500,35100,26500" +st "reset" +blo "33000,26300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 168,0 +va (VaSet +font "courier,8,0" +) +xt "0,19700,17000,20600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 6,0 +) +) +) +*64 (CptPort +uid 169,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 170,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48000,19625,48750,20375" +) +tg (CPTG +uid 171,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 172,0 +va (VaSet +) +xt "43100,19500,47000,20500" +st "timerDone" +ju 2 +blo "47000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 173,0 +va (VaSet +font "courier,8,0" +) +xt "0,21500,31000,22400" +st "timerDone : OUT std_ulogic_vector (1 TO maxDelayPeriodNb)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "timerDone" +t "std_ulogic_vector" +b "(1 TO maxDelayPeriodNb)" +o 25 +suid 7,0 +) +) +) +*65 (CptPort +uid 174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31250,19625,32000,20375" +) +tg (CPTG +uid 176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 177,0 +va (VaSet +) +xt "33000,19500,37100,20500" +st "timerStart" +blo "33000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 178,0 +va (VaSet +font "courier,8,0" +) +xt "0,20600,17000,21500" +st "timerStart : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "timerStart" +t "std_ulogic" +o 24 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32000,16000,48000,28000" +) +oxt "15000,6000,31000,18000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "32400,28000,35400,28900" +st "Memory" +blo "32400,28700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "32400,28900,50400,29800" +st "sdramControllerTimingsShiftRegister" +blo "32400,29600" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "32000,31200,47500,33900" +st "Generic Declarations + +maxDelayPeriodNb positive 10 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "maxDelayPeriodNb" +type "positive" +value "10" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,48600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,44400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "5,46,1391,1000" +viewArea "-3084,-1070,72630,53429" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "memory" +entityName "sdramController" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,16800,3400,17800" +st "Declarations" +blo "-2000,17600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,17800,700,18800" +st "Ports:" +blo "-2000,18600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,22400,500,23300" +st "User:" +blo "-2000,23100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,16800,3800,17800" +st "Internal User:" +blo "-2000,17600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,23300,0,23300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,16800,-2000,16800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 234,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory_test/hdl/Flash_behav.vhd b/Libs/Memory_test/hdl/Flash_behav.vhd new file mode 100644 index 0000000..3400d3a --- /dev/null +++ b/Libs/Memory_test/hdl/Flash_behav.vhd @@ -0,0 +1,528 @@ +use std.textio.all; + +ARCHITECTURE behav OF flash_28F128J3A IS + -- controls + signal chipSelect : std_ulogic; + signal writePulse : std_ulogic; + signal writePulseDelayed : std_ulogic; + signal memoryCommand : unsigned(7 downto 0); + signal wordProgramBusy : std_ulogic := '0'; + signal blockEraseBusy : std_ulogic := '0'; + signal busy : std_ulogic; + signal readPulseCs : std_ulogic := '0'; + signal readPulseOe : std_ulogic := '0'; + signal readPulse : std_ulogic; + + signal memoryAddressDebug : unsigned(A'range); + + type state_type is ( + READ_ARRAY, + READ_ID_CODES, + READ_QUERY, + READ_STATUS, + WRITE_BUFFER, + WORD_PROGRAM_1, + WORD_PROGRAM_2, + BLOCK_ERASE_1, + BLOCK_ERASE_2, + CONFIG, + PROG_LOCK_BITS, + PROG_PROT, + BOTCH_LOCK,-- + BOTCH_LOCK_ERS_SUSP,-- + LOCK_DONE, + PROG_LOCK_BITS_ERS_SUSP,-- + LOCK_DONE_ERS_SUSP, + PROT_PROG_BUSY,-- + PROT_PROG_DONE,-- + WORD_PROGRAM_1_ERS_SUSP,-- + PROG_BUSY,-- + PROG_BUSY_ERS_SUSP,-- + READ_STATUS_PROG_SUSP,-- + READ_ARRAY_PROG_SUSP,-- + READ_CONFIG_PROG_SUSP,-- + READ_QUERY_PROG_SUSP,-- + PROGRAM_DONE,-- + PROGRAM_DONE_ERS_SUSP,-- + BOTCH_ERS,-- + ERASE_BUSY,-- + READ_STATUS_ERS_SUSP,-- + READ_ARRAY_ERS_SUSP,-- + READ_CONFIG_ERS_SUSP,-- + READ_QUERY_ERS_SUSP,-- + ERASE_DONE-- + ); + + signal currentState : state_type; + signal nextState : state_type; + -- storage + constant blockLength : positive:= 16#10000#; -- 64 Kword blocks + constant memoryLength: positive := 2**(A'length-1); +-- constant memoryLength : positive := 2*blockLength; + subtype memoryWord is std_ulogic_vector(DQ'range); + type memoryArray is array(0 to memoryLength-1) of memoryWord; + signal memoryDataWord : memoryWord; + +BEGIN + + --############################################################################ + -- Controls + ------------------------------------------------------------------------------ + + chipSelect <= ( (not CE(2)) and (not CE(1)) and (not CE(0)) ) or + ( CE(2) and ( (not CE(1)) or (not CE(0)) ) ); + writePulse <= chipSelect and not(WE_n); + writePulseDelayed <= writePulse after 1 ns; + + memoryCommand <= unsigned(DQ(memoryCommand'range)); + + process(chipSelect) + begin + if rising_edge(chipSelect) then + readPulseCs <= '1' after T_R3; + elsif falling_edge(chipSelect) then + readPulseCs <= '0' after T_R8; + end if; + end process; + + process(OE_n) + begin + if falling_edge(OE_n) then + readPulseOe <= '1' after T_R7; + elsif rising_edge(OE_n) then + readPulseOe <= '0' after T_R9; + end if; + end process; + + readPulse <= readPulseCs and readPulseOe; + + ------------------------------------------------------------------------------ + -- Programming delays + ------------------------------------------------------------------------------ + + wordProgramBusy <= '1', '0' after T_W16_program when currentState = WORD_PROGRAM_2; + blockEraseBusy <= '1', '0' after T_W16_erase when currentState = BLOCK_ERASE_2; + busy <= wordProgramBusy or blockEraseBusy; + + + ------------------------------------------------------------------------------ + -- FSM: find next state + ------------------------------------------------------------------------------ + -- Table 4 p. 12 + process(writePulse, busy) + begin + case currentState is + when READ_ARRAY | READ_ID_CODES | READ_QUERY | READ_STATUS => + case to_integer(memoryCommand) is + when 16#FF# => nextState <= READ_ARRAY; + when 16#90# => nextState <= READ_ID_CODES; + when 16#98# => nextState <= READ_QUERY; + when 16#70# => nextState <= READ_STATUS; + when 16#E8# => nextState <= WRITE_BUFFER; + when 16#10# | 16#40# => nextState <= WORD_PROGRAM_1; + when 16#20# => nextState <= BLOCK_ERASE_1; + when 16#B8# => nextState <= CONFIG; + when 16#60# => nextState <= PROG_LOCK_BITS; + when 16#C0# => nextState <= PROG_PROT; + when others => nextState <= READ_ARRAY; + end case; + + when WORD_PROGRAM_1 => + nextState <= WORD_PROGRAM_2; + + when WORD_PROGRAM_2 => + nextState <= READ_ARRAY; + + when BLOCK_ERASE_1 => + if to_integer(memoryCommand) = 16#D0# then + nextState <= BLOCK_ERASE_2; + else + nextState <= READ_ARRAY; + end if; + + when BLOCK_ERASE_2 => + nextState <= READ_ARRAY; + +-- WHEN PROG_LOCK_BITS => +-- IF rising_edge(WENeg) THEN +-- -- SECOND CYCLE CHECK +-- IF data=16#D0# OR data=16#01# OR data=16#2F# THEN +-- nextState<=READ_ARRAY; +-- ELSE +-- nextState <= BOTCH_LOCK; +-- END IF; +-- END IF; +-- +-- WHEN PROG_LOCK_BITS_ERS_SUSP => +-- IF rising_edge(WENeg) THEN +-- IF data=16#D0# OR data=16#01# OR data=16#2F# THEN +-- nextState<=READ_ARRAY_ERS_SUSP; +-- ELSE +-- nextState <= BOTCH_LOCK_ERS_SUSP; +-- END IF; +-- END IF; +-- +-- +-- WHEN LOCK_DONE => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1; +-- WHEN 16#20# => nextState <= BLOCK_ERASE_1; +-- WHEN 16#70# => nextState <= READ_STATUS; +-- WHEN 16#90# => nextState <= READ_CONFIG; +-- WHEN 16#98# => nextState <= READ_QUERY; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS; +-- WHEN 16#C0# => nextState <= PROG_PROT; +-- WHEN OTHERS => nextState <= READ_ARRAY; +-- END CASE; +-- END IF; +-- +-- WHEN LOCK_DONE_ERS_SUSP => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1_ERS_SUSP; +-- WHEN 16#70# => nextState <= READ_STATUS_ERS_SUSP; +-- WHEN 16#90# => nextState <= READ_CONFIG_ERS_SUSP; +-- WHEN 16#98# => nextState <= READ_QUERY_ERS_SUSP; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS_ERS_SUSP; +-- WHEN 16#D0# => nextState <= ERASE_BUSY; +-- WHEN OTHERS => nextState <= READ_ARRAY_ERS_SUSP; +-- END CASE; +-- END IF; +-- +-- WHEN BOTCH_LOCK => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1; +-- WHEN 16#20# => nextState <= BLOCK_ERASE_1; +-- WHEN 16#70# => nextState <= READ_STATUS; +-- WHEN 16#90# => nextState <= READ_CONFIG; +-- WHEN 16#98# => nextState <= READ_QUERY; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS; +-- WHEN 16#C0# => nextState <= PROG_PROT; +-- WHEN OTHERS => nextState <= READ_ARRAY; +-- END CASE; +-- END IF; +-- +-- WHEN BOTCH_LOCK_ERS_SUSP => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => +-- nextState <= WORD_PROGRAM_1_ERS_SUSP; +-- WHEN 16#70# => nextState <= READ_STATUS_ERS_SUSP; +-- WHEN 16#90# => nextState <= READ_CONFIG_ERS_SUSP; +-- WHEN 16#98# => nextState <= READ_QUERY_ERS_SUSP; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS_ERS_SUSP; +-- WHEN OTHERS => nextState <= READ_ARRAY_ERS_SUSP; +-- END CASE; +-- END IF; +-- +-- +-- WHEN BOTCH_ERS => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => +-- nextState <= WORD_PROGRAM_1; +-- WHEN 16#20# => nextState <=BLOCK_ERASE_1; +-- WHEN 16#70# => nextState <= READ_STATUS; +-- WHEN 16#90# => nextState <= READ_CONFIG; +-- WHEN 16#98# => nextState <= READ_QUERY; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS; +-- WHEN 16#C0# => nextState <= PROG_PROT; +-- WHEN OTHERS => nextState <= READ_ARRAY; +-- END CASE; +-- END IF; +-- +-- +-- WHEN PROG_PROT => +-- IF rising_edge(WENeg) THEN +-- nextState <= PROT_PROG_BUSY; +-- END IF; +-- +-- WHEN PROT_PROG_BUSY => +-- IF S_Reg(7)='1' THEN +-- nextState <= PROT_PROG_DONE; +-- ELSE +-- nextState <= PROT_PROG_BUSY; +-- END IF; +-- +-- WHEN PROT_PROG_DONE => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1; +-- WHEN 16#20# => nextState <= BLOCK_ERASE_1; +-- WHEN 16#70# => nextState <= READ_STATUS; +-- WHEN 16#90# => nextState <= READ_CONFIG; +-- WHEN 16#98# => nextState <= READ_QUERY; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS; +-- WHEN 16#C0# => nextState <= PROG_PROT; +-- WHEN OTHERS => nextState <= READ_ARRAY; +-- END CASE; +-- END IF; +-- +-- WHEN WORD_PROGRAM_1 => +-- IF rising_edge(WENeg) THEN +-- nextState <= PROG_BUSY; +-- END IF; +-- +-- WHEN WORD_PROGRAM_1_ERS_SUSP => +-- IF rising_edge(WENeg) THEN +-- nextState <= PROG_BUSY_ERS_SUSP; +-- END IF; +-- +-- WHEN PROG_BUSY => +-- IF WDone THEN +-- nextState<=PROGRAM_DONE; +-- ELSIF rising_edge(WENeg) THEN +-- IF data= 16#B0# THEN +-- nextState <= READ_STATUS_PROG_SUSP; +-- ELSE +-- nextState <= PROG_BUSY; +-- END IF; +-- END IF; +-- +-- WHEN PROG_BUSY_ERS_SUSP => +-- IF WDone THEN +-- nextState<=PROGRAM_DONE_ERS_SUSP; +-- ELSIF rising_edge(WENeg) THEN +-- nextState <= PROG_BUSY_ERS_SUSP; +-- END IF; +-- +-- WHEN READ_STATUS_PROG_SUSP | READ_ARRAY_PROG_SUSP | +-- READ_CONFIG_PROG_SUSP | READ_QUERY_PROG_SUSP => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- --WHEN 16#D0# => nextState <= READ_ARRAY_PROG_SUSP; +-- WHEN 16#D0# => nextState <= PROG_BUSY; +-- WHEN 16#B0# | 16#70# => nextState <= READ_STATUS_PROG_SUSP; +-- WHEN 16#90# => nextState <= READ_CONFIG_PROG_SUSP; +-- WHEN 16#98# => nextState <= READ_QUERY_PROG_SUSP; +-- WHEN OTHERS => nextState <= READ_ARRAY_PROG_SUSP; +-- END CASE; +-- END IF; +-- +-- WHEN PROGRAM_DONE => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1; +-- WHEN 16#20# => nextState <= BLOCK_ERASE_1; +-- WHEN 16#70# => nextState <= READ_STATUS; +-- WHEN 16#90# => nextState <= READ_CONFIG; +-- WHEN 16#98# => nextState <= READ_QUERY; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS; +-- WHEN 16#C0# => nextState <= PROG_PROT; +-- WHEN OTHERS => nextState <= READ_ARRAY; +-- END CASE; +-- END IF; +-- +-- WHEN PROGRAM_DONE_ERS_SUSP => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1_ERS_SUSP; +-- WHEN 16#B0# | 16#70# => nextState <= READ_STATUS_ERS_SUSP; +-- WHEN 16#D0# => nextState <= ERASE_BUSY; +-- WHEN 16#90# => nextState <= READ_CONFIG_ERS_SUSP; +-- WHEN 16#98# => nextState <= READ_QUERY_ERS_SUSP; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS_ERS_SUSP; +-- WHEN OTHERS => nextState <= READ_ARRAY_ERS_SUSP; +-- END CASE; +-- END IF; +-- +-- +-- WHEN ERASE_BUSY => +-- IF rising_edge(WENeg) AND data= 16#B0# THEN +-- nextState <= READ_STATUS_ERS_SUSP; +-- ELSIF EDone AND ECount=31 THEN +-- nextState<=ERASE_DONE; +-- ELSE +-- nextState <= ERASE_BUSY; +-- END IF; +-- +-- WHEN READ_STATUS_ERS_SUSP | READ_ARRAY_ERS_SUSP | +-- READ_CONFIG_ERS_SUSP | READ_QUERY_ERS_SUSP => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <=WORD_PROGRAM_1_ERS_SUSP; +-- WHEN 16#B0# | 16#70# | 16#80# => +-- nextState<= READ_STATUS_ERS_SUSP; +-- WHEN 16#D0# => nextState <= ERASE_BUSY; +-- WHEN 16#90# => nextState <= READ_CONFIG_ERS_SUSP; +-- WHEN 16#98# => nextState <= READ_QUERY_ERS_SUSP; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS_ERS_SUSP; +-- WHEN OTHERS => nextState <= READ_ARRAY_ERS_SUSP; +-- END CASE; +-- END IF; +-- +-- WHEN ERASE_DONE => +-- IF rising_edge(WENeg) THEN +-- CASE data IS +-- WHEN 16#10# | 16#40# => nextState <= WORD_PROGRAM_1; +-- WHEN 16#20# => nextState <= BLOCK_ERASE_1; +-- WHEN 16#70# => nextState <= READ_STATUS; +-- WHEN 16#90# => nextState <= READ_CONFIG; +-- WHEN 16#98# => nextState <= READ_QUERY; +-- WHEN 16#60# => nextState <= PROG_LOCK_BITS; +-- WHEN 16#C0# => nextState <= PROG_PROT; +-- WHEN OTHERS => nextState <= READ_ARRAY; +-- END CASE; +-- END IF; + +when others => nextState <= READ_ARRAY; + + end case; + end process; + + + ------------------------------------------------------------------------------ + -- FSM: update state + ------------------------------------------------------------------------------ + process(RP_N, writePulseDelayed, busy) + begin + if RP_n = '0' then + currentState <= READ_ARRAY; + elsif falling_edge(writePulseDelayed) then + currentState <= nextState; + elsif falling_edge(busy) then + currentState <= nextState; + end if; + end process; + + + ------------------------------------------------------------------------------ + -- STS + ------------------------------------------------------------------------------ + process + begin + STS <= '1'; + wait on busy; + if rising_edge(busy) then + STS <= '0' after T_W13; + wait until falling_edge(busy); + end if; + end process; + + + --############################################################################ + -- Storage + ------------------------------------------------------------------------------ + process(writePulse, A) + variable memContent : memoryArray; -- much faster than using a signal + variable loadMemFromFile : boolean := true; + file memoryFile : text open read_mode is fileSpec; + variable srecLine : line; + variable srecChar : character; + variable srecType : natural; + variable srecAddrLength : natural; + variable srecWordAscii : string(8 downto 1); + variable srecLength : natural; + variable srecAddress : natural; + variable memoryAddress : natural; + variable srecData : natural; + + function readNumber(hexString: string) return natural is + variable currentCharPos: natural; + variable intValue: natural; + variable accValue: natural; + begin + accValue := 0; + for index in hexString'range loop + currentCharPos := character'pos(hexString(index)); + if currentCharPos <= character'pos('9') then + intValue := currentCharPos - character'pos('0'); + else + intValue := currentCharPos - character'pos('A') + 10; + end if; + accValue := accValue * 16 + intValue; + end loop; + return accValue; + end readNumber; + + begin + if loadMemFromFile then + -- only happens at simulation start + while not endfile(memoryFile) loop + readline(memoryFile, srecLine); + --report "-> " & srecLine.all; + -- trim leading whitespaces + while (not (srecLine'length=0)) and (srecLine(srecLine'left) = ' ') loop + read(srecLine, srecChar); + end loop; + -- get record type + if srecLine'length > 0 then + read(srecLine, srecChar); + if (srecChar = 'S') or (srecChar = 's') then + read(srecLine, srecChar); + srecType := character'pos(srecChar) - character'pos('0'); + --report "-> srec type: " & integer'image(srecType); + srecAddrLength := srecType + 1; + if (srecType >= 1) and (srecType <= 3) then + -- get record length + srecWordAscii := (others => '0'); + read(srecLine, srecWordAscii(2)); + read(srecLine, srecWordAscii(1)); + srecLength := readNumber(srecWordAscii); + -- get record base address + srecWordAscii := (others => '0'); + for index in 2*(srecAddrLength) downto 1 loop + read(srecLine, srecWordAscii(index)); + end loop; + srecAddress := readNumber(srecWordAscii); + memoryAddress := srecAddress/2; + -- get record data + for index1 in 1 to (srecLength - srecAddrLength - 1) / 2 loop + srecWordAscii := (others => '0'); + for index2 in 4 downto 1 loop + read(srecLine, srecWordAscii(index2)); + end loop; + srecData := readNumber(srecWordAscii); + if memoryAddress < memoryLength then + memContent(memoryAddress) := std_ulogic_vector(to_unsigned(srecData, memoryWord'length)); + end if; + memoryAddress := memoryAddress + 1; + end loop; + end if; + end if; + end if; + end loop; + loadMemFromFile := false; + else + -- normal functionality + if falling_edge(writePulse) then + -- program a word + if currentState = WORD_PROGRAM_1 then + memoryAddress := to_integer(A(A'high downto 1)); +memoryAddressDebug <= to_unsigned(memoryAddress, memoryAddressDebug'length); + memContent(memoryAddress) := std_ulogic_vector(DQ); + -- erase a block + elsif currentState = BLOCK_ERASE_1 then + memoryAddress := to_integer(A and not(to_unsigned(blockLength-1, A'length))); + for index in 0 to blockLength-1 loop + if memoryAddress < memoryLength then + memContent(memoryAddress) := (others => '1'); + memoryAddress := memoryAddress + 1; + end if; + end loop; + end if; + end if; + -- update readout data + if A'event then + memoryAddress := to_integer(A(A'high downto 1)); +memoryAddressDebug <= to_unsigned(memoryAddress, memoryAddressDebug'length); + memoryDataWord <= memContent(memoryAddress) after T_R2; + end if; + end if; + end process; + + process(memoryDataWord, readPulse) + begin + if readPulse = '1' then + DQ <= std_logic_vector(memoryDataWord); + else + DQ <= (others => 'Z'); + end if; + end process; + + + +END ARCHITECTURE behav; + diff --git a/Libs/Memory_test/hdl/bram_tester_test.vhd b/Libs/Memory_test/hdl/bram_tester_test.vhd new file mode 100644 index 0000000..36c3016 --- /dev/null +++ b/Libs/Memory_test/hdl/bram_tester_test.vhd @@ -0,0 +1,83 @@ +ARCHITECTURE test OF bram_tester IS + + constant clockFrequencyA: real := 66.0E6; + constant clockFrequencyB: real := 20.0E6; + constant clockPeriodA: time := (1.0/clockFrequencyA) * 1 sec; + constant clockPeriodB: time := (1.0/clockFrequencyB) * 1 sec; + signal clockA_int: std_uLogic := '1'; + signal clockB_int: std_uLogic := '1'; + + signal addressA_int: natural; + signal dataA_int: integer; + + signal addressB_int: natural; + signal dataB_int: integer; + +BEGIN + ------------------------------------------------------------------------------ + -- clocks + clockA_int <= not clockA_int after clockPeriodA/2; + clockA <= transport clockA_int after clockPeriodA*9/10; + + clockB_int <= not clockB_int after clockPeriodB/2; + clockB <= transport clockB_int after clockPeriodB*9/10; + + ------------------------------------------------------------------------------ + -- test sequence + portA: process + begin + enA <= '0'; + writeEnA <= '0'; + addressA_int <= 0; + dataA_int <= 0; + -- read initial BRAM data + wait for 5*clockPeriodA; + addressA_int <= 40; + enA <= '1'; + wait for clockPeriodA; + enA <= '0'; + -- write data on port A + wait for 10*clockPeriodA; + addressA_int <= 10; + dataA_int <= 5; + enA <= '1'; + writeEnA <= '1'; + wait for clockPeriodA; + enA <= '0'; + writeEnA <= '0'; + + wait; + end process portA; + + addressA <= std_ulogic_vector(to_unsigned(addressA_int, addressA'length)); + dataInA <= std_ulogic_vector(to_signed(dataA_int, dataInA'length)); + + portB: process + begin + enB <= '0'; + writeEnB <= '0'; + addressB_int <= 0; + dataB_int <= 0; + -- write data on port B + wait for 10*clockPeriodB; + addressB_int <= 20; + dataB_int <= 10; + enB <= '1'; + writeEnB <= '1'; + wait for clockPeriodB; + enB <= '0'; + writeEnB <= '0'; + -- read data written on port A + wait for 2*clockPeriodB; + addressB_int <= 10; + enB <= '1'; + wait for clockPeriodB; + enB <= '0'; + + wait; + end process portB; + + addressB <= std_ulogic_vector(to_unsigned(addressB_int, addressB'length)); + dataInB <= std_ulogic_vector(to_signed(dataB_int, dataInB'length)); + +END ARCHITECTURE test; diff --git a/Libs/Memory_test/hdl/fifo_tester_test.vhd b/Libs/Memory_test/hdl/fifo_tester_test.vhd new file mode 100644 index 0000000..388de8a --- /dev/null +++ b/Libs/Memory_test/hdl/fifo_tester_test.vhd @@ -0,0 +1,339 @@ +--LIBRARY std; +-- USE std.textio.ALL; +LIBRARY COMMON_TEST; + USE COMMON_TEST.testUtils.all; + +ARCHITECTURE test OF fifo_tester IS + + constant clockFrequency: real := 66.0E6; + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_ulogic := '1'; + + constant testInterval: time := 10*clockPeriod; + signal dataIn_int: integer; + signal read_int: std_ulogic; + signal dataOffset: integer; + + signal dataValid: std_ulogic; + signal dataRead: integer; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- test sequence + process + variable readIndex: integer; + begin + write <= '0'; + read_int <= '0'; + dataOffset <= -16#10#; + wait for 5*clockPeriod; + print( + lf & lf & lf & + "----------------------------------------------------------------" & lf & + "Starting testbench" & lf & + lf & lf + ); + + --.......................................................................... + -- full write / read after end of write + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", full FIFO write direclty followed by full read" & + lf & lf + ); + -- write FIFO + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + write <= '1'; + for index in 0 to fifoDepth-1 loop + dataIn_int <= dataOffset + index; + wait for clockPeriod; + end loop; + write <= '0'; + -- read FIFO + read_int <= '1'; + readIndex := 0; + while empty = '0' loop + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + readIndex := readIndex + 1; + wait until rising_edge(clock_int); + end loop; + read_int <= '0'; + + --.......................................................................... + -- full write / read after some time + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", full FIFO write and delay before read" & + lf & lf + ); + -- write FIFO + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + write <= '1'; + for index in 0 to fifoDepth-1 loop + dataIn_int <= dataOffset + index; + wait for clockPeriod; + end loop; + write <= '0'; + -- wait before read + wait for 4*clockPeriod; + -- read FIFO + read_int <= '1'; + readIndex := 0; + while empty = '0' loop + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + readIndex := readIndex + 1; + wait until rising_edge(clock_int); + end loop; + read_int <= '0'; + + --.......................................................................... + -- write / read direct + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", full FIFO write with asynchronous direct read" & + lf & lf + ); + -- write FIFO + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + write <= '1', '0' after 8*clockPeriod; + dataIn_int <= dataOffset + 16#00#, + dataOffset + 16#01# after 1*clockPeriod, + dataOffset + 16#02# after 2*clockPeriod, + dataOffset + 16#03# after 3*clockPeriod, + dataOffset + 16#04# after 4*clockPeriod, + dataOffset + 16#05# after 5*clockPeriod, + dataOffset + 16#06# after 6*clockPeriod, + dataOffset + 16#07# after 7*clockPeriod; + -- read FIFO + wait until empty = '0'; + read_int <= '1'; + readIndex := -1; + while empty = '0' loop + if readIndex >= 0 then + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + end if; + readIndex := readIndex + 1; + wait until rising_edge(clock_int); + end loop; + read_int <= '0'; + + --.......................................................................... + -- write / read direct with clock period delay + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", full FIFO write with synchronous direct read" & + lf & lf + ); + -- write FIFO + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + write <= '1', '0' after 8*clockPeriod; + dataIn_int <= dataOffset + 16#00#, + dataOffset + 16#01# after 1*clockPeriod, + dataOffset + 16#02# after 2*clockPeriod, + dataOffset + 16#03# after 3*clockPeriod, + dataOffset + 16#04# after 4*clockPeriod, + dataOffset + 16#05# after 5*clockPeriod, + dataOffset + 16#06# after 6*clockPeriod, + dataOffset + 16#07# after 7*clockPeriod; + -- read FIFO + wait until empty = '0'; + wait until rising_edge(clock_int); + read_int <= '1'; + readIndex := 0; + while empty = '0' loop + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + readIndex := readIndex + 1; + wait until rising_edge(clock_int); + end loop; + read_int <= '0'; + + --.......................................................................... + -- slow read sets FIFO full + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", slow reading sets FIFO full and requires waiting before writing on" & + lf & lf + ); + -- prepare slow FIFO reading + wait until rising_edge(clock_int); + wait for 2*clockPeriod; + read_int <= '1' after 4*clockPeriod, + '0' after 5*clockPeriod, + '1' after 14*clockPeriod, + '0' after 15*clockPeriod, + '1' after 24*clockPeriod, + '0' after 25*clockPeriod, + '1' after 34*clockPeriod, + '0' after 35*clockPeriod, + '1' after 44*clockPeriod, + '0' after (45+2*fifoDepth-5)*clockPeriod; + -- write 2*FIFO depth + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + for index in 0 to 2*fifoDepth-1 loop + dataIn_int <= dataOffset + index; + if full = '1' then + wait until full = '0'; + wait for clockPeriod/8; + end if; + write <= '1'; + wait until rising_edge(clock_int); + write <= '0'; + end loop; + + --.......................................................................... + -- write over full + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", attempt to write after FIFO full" & + lf & lf + ); + -- write FIFO + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + write <= '1'; + for index in 0 to fifoDepth+3 loop + dataIn_int <= dataOffset + index; + wait for clockPeriod; + end loop; + write <= '0'; + + --.......................................................................... + -- read FIFO once too much + print( + "At time " & sprintf("%9.3tu", now) & + ", attempt to read after FIFO empty" & + lf & lf + ); + read_int <= '1'; + wait for clockPeriod; + wait until empty = '1'; + wait for clockPeriod; + read_int <= '0'; + -- read when empty + wait until rising_edge(clock_int); + wait for 2*clockPeriod; + read_int <= '1'; + wait for 2*clockPeriod; + read_int <= '0'; + + --.......................................................................... + -- read constantly + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", reading FIFO constantly (data valid when empty = '0')" & + lf & lf + ); + + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + read_int <= '1'; + wait for 2*clockPeriod; + wait until rising_edge(clock_int); + readIndex := -1; + write <= '1'; + for index in 0 to fifoDepth-1 loop + if empty = '0' then + readIndex := readIndex + 1; + end if; + if (readIndex >= 0) and (empty = '0') then + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + end if; + dataIn_int <= dataOffset + index; + wait until rising_edge(clock_int); + end loop; + write <= '0'; + + wait until empty = '1'; + wait for 2*clockPeriod; + read_int <= '0'; + + --.......................................................................... + -- full write / read with breaks + wait for testInterval; + print( + "At time " & sprintf("%9.3tu", now) & + ", reading FIFO with breaks" & + lf & lf + ); + -- write FIFO + dataOffset <= dataOffset + 16#10#; + wait until rising_edge(clock_int); + write <= '1'; + for index in 0 to fifoDepth-1 loop + dataIn_int <= dataOffset + index; + wait for clockPeriod; + end loop; + write <= '0'; + -- wait before read + wait for 2*clockPeriod; + -- read FIFO + wait until rising_edge(clock_int); + readIndex := 0; + for index in 0 to fifoDepth/4-1 loop + read_int <= '1'; + for rdIndex in 1 to 2 loop + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + readIndex := readIndex + 1; + wait until rising_edge(clock_int); + end loop; + read_int <= '0'; + wait for 2*clockPeriod; + end loop; + read_int <= '1'; + while empty = '0' loop + assert unsigned(dataOut) = dataOffset + readIndex + report "FIFO readback error" + severity error; + readIndex := readIndex + 1; + wait until rising_edge(clock_int); + end loop; + read_int <= '0'; + --.......................................................................... + -- end of tests + wait for testInterval; + assert false + report "END SIMULATION" + severity failure; + wait; + end process; + + dataIn <= std_ulogic_vector(to_signed(dataIn_int, dataIn'length)); + read <= read_int; + + dataValid <= '1' when (read_int = '1') and (empty = '0') + else '0'; + dataRead <= to_integer(signed(dataOut)) when dataValid = '1' + else 0; + +END ARCHITECTURE test; diff --git a/Libs/Memory_test/hdl/flashController_tester_test.vhd b/Libs/Memory_test/hdl/flashController_tester_test.vhd new file mode 100644 index 0000000..77157e6 --- /dev/null +++ b/Libs/Memory_test/hdl/flashController_tester_test.vhd @@ -0,0 +1,88 @@ +LIBRARY BoardTester_test; + USE BoardTester_test.testUtils.all; + +ARCHITECTURE test OF flashController_tester IS + + constant clockFrequency: real := 66.0E6; + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + + signal flashAddr_int: natural := 0; + signal flashDataOut_int: natural := 0; + + signal refreshEn: std_uLogic := '0'; + + constant separator : string(1 to 80) := (others => '-'); + constant indent : string(1 to 2) := (others => ' '); + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- flash access + process + begin + flashRd <= '0'; + flashWr <= '0'; + flashEn <= '1'; + wait for 1 us; + print(cr & separator); + -- erase block 0 + print(sprintf("%tu", now) & ": Erasing block 0"); + flashAddr_int <= 16#10000#; + flashDataOut_int <= 16#0020#; + flashWr <= '1', '0' after clockPeriod; + wait until falling_edge(flashDataValid); + wait for clockPeriod/10; + flashDataOut_int <= 16#00D0#; + flashWr <= '1', '0' after clockPeriod; + wait for 2 us; + -- program word + print(sprintf("%tu", now) & ": Writing data into Flash"); + flashAddr_int <= 16#0000#; + flashDataOut_int <= 16#0040#; + flashWr <= '1', '0' after clockPeriod; + wait until falling_edge(flashDataValid); + wait for clockPeriod/10; + flashAddr_int <= 16#0010#; + flashDataOut_int <= 16#CAFE#; + flashWr <= '1', '0' after clockPeriod; + wait for 2 us; + -- read word + print(sprintf("%tu", now) & ": Reading data from Flash"); + flashAddr_int <= 16#0000#; + flashRd <= '1', '0' after clockPeriod; + wait for 1 us; + -- read word + print(sprintf("%tu", now) & ": Reading data from Flash"); + flashAddr_int <= 16#000F#; + flashRd <= '1', '0' after clockPeriod; + wait for 500 ns; + flashAddr_int <= 16#0010#; + flashRd <= '1', '0' after clockPeriod; + wait for 500 ns; + flashAddr_int <= 16#0011#; + flashRd <= '1', '0' after clockPeriod; + wait for 500 ns; + + wait; + end process; + + ------------------------------------------------------------------------------ + -- address and data + flashAddr <= to_unsigned(flashAddr_int, flashAddr'length); + flashDataOut <= std_ulogic_vector(to_unsigned(flashDataOut_int, flashDataOut'length)); + + ------------------------------------------------------------------------------ + -- memory bus hold + refreshEn <= '1' after 15*clockPeriod when refreshEn = '0' + else '0' after clockPeriod; + memBusEn_n <= refreshEn; + +END ARCHITECTURE test; + diff --git a/Libs/Memory_test/hdl/flash_tester_test.vhd b/Libs/Memory_test/hdl/flash_tester_test.vhd new file mode 100644 index 0000000..023ea1a --- /dev/null +++ b/Libs/Memory_test/hdl/flash_tester_test.vhd @@ -0,0 +1,102 @@ +LIBRARY BoardTester_test; + USE BoardTester_test.testUtils.all; + +ARCHITECTURE test OF flash_tester IS + + constant T_W2: time := 0 ns; + constant T_W3: time := 70 ns; + constant T_W4: time := 50 ns; + constant T_W5: time := 55 ns; + constant T_W6: time := 10 ns; + constant T_R3: time := 120 ns; + + signal addr: natural; + signal data: integer; + + signal writeFlash: std_ulogic := '0'; + signal readFlash: std_ulogic := '0'; + + constant separator : string(1 to 80) := (others => '-'); + constant indent : string(1 to 2) := (others => ' '); + +BEGIN + + ------------------------------------------------------------------------------ + -- Test + ------------------------------------------------------------------------------ + process + begin + RP_n <= '1'; + wait for 1 us; + print(cr & separator); + -- erase block 0 + print(sprintf("%tu", now) & ": Erasing block 0"); + addr <= 16#10000#; + data <= 16#20#; + writeFlash <= '1', '0' after 1 ns; + wait for 100 ns; + data <= 16#D0#; + writeFlash <= '1', '0' after 1 ns; + wait for 2 us; + -- program word + print(sprintf("%tu", now) & ": Writing data into Flash"); + addr <= 16#0000#; + data <= 16#0040#; + writeFlash <= '1', '0' after 1 ns; + wait for 100 ns; + addr <= 16#0010#; + data <= 16#CAFE#; + writeFlash <= '1', '0' after 1 ns; + wait for 2 us; + -- read word + print(sprintf("%tu", now) & ": Reading data from Flash"); + addr <= 16#0000#; + readFlash <= '1', '0' after 1 ns; + wait for 500 ns; + -- read word + print(sprintf("%tu", now) & ": Reading data from Flash"); + addr <= 16#0010#; + readFlash <= '1', '0' after 1 ns; + wait for 500 ns; + + wait; + end process; + + ------------------------------------------------------------------------------ + -- Board connections + ------------------------------------------------------------------------------ + CE(2 downto 1) <= (others => '0'); + BYTE_n <= '1'; + + + ------------------------------------------------------------------------------ + -- Write access + ------------------------------------------------------------------------------ + process + begin + CE(0) <= '1'; + WE_N <= '1'; + OE_N <= '1'; + DQ <= (others => 'Z'); + wait on writeFlash, readFlash; + if rising_edge(writeFlash) then + A <= to_unsigned(addr, A'length) after T_W3 - T_W5; + DQ <= std_logic_vector(to_unsigned(data, DQ'length)) after T_W3 - T_W4; + CE(0) <= '0'; + wait for T_W2; + WE_N <= '0'; + wait for T_W3; + WE_N <= '1'; + wait for T_W6; +-- CE(0) <= '1'; + elsif rising_edge(readFlash) then + OE_N <= '0'; + A <= to_unsigned(addr, A'length); + CE(0) <= '0'; + wait for T_R3 + 10 ns; +-- CE(0) <= '1'; + end if; + end process; + +END ARCHITECTURE test; + diff --git a/Libs/Memory_test/hdl/mti_pkg_pkg.vhd b/Libs/Memory_test/hdl/mti_pkg_pkg.vhd new file mode 100644 index 0000000..a83599d --- /dev/null +++ b/Libs/Memory_test/hdl/mti_pkg_pkg.vhd @@ -0,0 +1,18 @@ +LIBRARY ieee; + USE ieee.std_logic_1164.ALL; + USE std.textio.all; + +PACKAGE mti_pkg IS + + FUNCTION To_StdLogic (s : BIT) RETURN STD_LOGIC; + FUNCTION TO_INTEGER (input : STD_LOGIC) RETURN INTEGER; + FUNCTION TO_INTEGER (input : BIT_VECTOR) RETURN INTEGER; + FUNCTION TO_INTEGER (input : STD_LOGIC_VECTOR) RETURN INTEGER; + FUNCTION TO_INTEGER (input : STD_ULOGIC_VECTOR) RETURN INTEGER; + PROCEDURE TO_BITVECTOR (VARIABLE input : IN INTEGER; VARIABLE output : OUT BIT_VECTOR); + + function conv_std_logic_vector(i : integer; w : integer) return std_logic_vector; + procedure hexread(L : inout line; value:out bit_vector); + procedure hexread(L : inout line; value:out std_logic_vector); + +END mti_pkg; diff --git a/Libs/Memory_test/hdl/mti_pkg_pkg_body.vhd b/Libs/Memory_test/hdl/mti_pkg_pkg_body.vhd new file mode 100644 index 0000000..422a4ab --- /dev/null +++ b/Libs/Memory_test/hdl/mti_pkg_pkg_body.vhd @@ -0,0 +1,234 @@ +LIBRARY ieee; + USE ieee.numeric_std.all; + +PACKAGE BODY mti_pkg IS + + -- Convert BIT to STD_LOGIC + FUNCTION To_StdLogic (s : BIT) RETURN STD_LOGIC IS + BEGIN + CASE s IS + WHEN '0' => RETURN ('0'); + WHEN '1' => RETURN ('1'); + WHEN OTHERS => RETURN ('0'); + END CASE; + END; + + -- Convert STD_LOGIC to INTEGER + FUNCTION TO_INTEGER (input : STD_LOGIC) RETURN INTEGER IS + VARIABLE result : INTEGER := 0; + VARIABLE weight : INTEGER := 1; + BEGIN + IF input = '1' THEN + result := weight; + ELSE + result := 0; -- if unknowns, default to logic 0 + END IF; + RETURN result; + END TO_INTEGER; + + -- Convert BIT_VECTOR to INTEGER + FUNCTION TO_INTEGER (input : BIT_VECTOR) RETURN INTEGER IS + VARIABLE result : INTEGER := 0; + VARIABLE weight : INTEGER := 1; + BEGIN + FOR i IN input'LOW TO input'HIGH LOOP + IF input(i) = '1' THEN + result := result + weight; + ELSE + result := result + 0; -- if unknowns, default to logic 0 + END IF; + weight := weight * 2; + END LOOP; + RETURN result; + END TO_INTEGER; + + -- Convert STD_LOGIC_VECTOR to INTEGER + FUNCTION TO_INTEGER (input : STD_LOGIC_VECTOR) RETURN INTEGER IS + VARIABLE result : INTEGER := 0; + VARIABLE weight : INTEGER := 1; + BEGIN + FOR i IN input'LOW TO input'HIGH LOOP + IF input(i) = '1' THEN + result := result + weight; + ELSE + result := result + 0; -- if unknowns, default to logic 0 + END IF; + weight := weight * 2; + END LOOP; + RETURN result; + END TO_INTEGER; + + -- Convert STD_ULOGIC_VECTOR to INTEGER + FUNCTION TO_INTEGER (input : STD_ULOGIC_VECTOR) RETURN INTEGER IS + VARIABLE result : INTEGER := 0; + VARIABLE weight : INTEGER := 1; + BEGIN + FOR i IN input'LOW TO input'HIGH LOOP + IF input(i) = '1' THEN + result := result + weight; + ELSE + result := result + 0; -- if unknowns, default to logic 0 + END IF; + weight := weight * 2; + END LOOP; + RETURN result; + END TO_INTEGER; + + -- Conver INTEGER to BIT_VECTOR + PROCEDURE TO_BITVECTOR (VARIABLE input : IN INTEGER; VARIABLE output : OUT BIT_VECTOR) IS + VARIABLE work,offset,outputlen,j : INTEGER := 0; + BEGIN + --length of vector + IF output'LENGTH > 32 THEN --' + outputlen := 32; + offset := output'LENGTH - 32; --' + IF input >= 0 THEN + FOR i IN offset-1 DOWNTO 0 LOOP + output(output'HIGH - i) := '0'; --' + END LOOP; + ELSE + FOR i IN offset-1 DOWNTO 0 LOOP + output(output'HIGH - i) := '1'; --' + END LOOP; + END IF; + ELSE + outputlen := output'LENGTH; --' + END IF; + --positive value + IF (input >= 0) THEN + work := input; + j := outputlen - 1; + FOR i IN 1 to 32 LOOP + IF j >= 0 then + IF (work MOD 2) = 0 THEN + output(output'HIGH-j-offset) := '0'; --' + ELSE + output(output'HIGH-j-offset) := '1'; --' + END IF; + END IF; + work := work / 2; + j := j - 1; + END LOOP; + IF outputlen = 32 THEN + output(output'HIGH) := '0'; --' + END IF; + --negative value + ELSE + work := (-input) - 1; + j := outputlen - 1; + FOR i IN 1 TO 32 LOOP + IF j>= 0 THEN + IF (work MOD 2) = 0 THEN + output(output'HIGH-j-offset) := '1'; --' + ELSE + output(output'HIGH-j-offset) := '0'; --' + END IF; + END IF; + work := work / 2; + j := j - 1; + END LOOP; + IF outputlen = 32 THEN + output(output'HIGH) := '1'; --' + END IF; + END IF; + END TO_BITVECTOR; + + + function conv_std_logic_vector(i : integer; w : integer) return std_logic_vector is + variable tmp : std_logic_vector(w-1 downto 0); + begin + tmp := std_logic_vector(to_unsigned(i, w)); + return(tmp); + end; + + procedure char2hex(C: character; result: out bit_vector(3 downto 0); + good: out boolean; report_error: in boolean) is + begin + good := true; + case C is + when '0' => result := x"0"; + when '1' => result := x"1"; + when '2' => result := X"2"; + when '3' => result := X"3"; + when '4' => result := X"4"; + when '5' => result := X"5"; + when '6' => result := X"6"; + when '7' => result := X"7"; + when '8' => result := X"8"; + when '9' => result := X"9"; + when 'A' => result := X"A"; + when 'B' => result := X"B"; + when 'C' => result := X"C"; + when 'D' => result := X"D"; + when 'E' => result := X"E"; + when 'F' => result := X"F"; + + when 'a' => result := X"A"; + when 'b' => result := X"B"; + when 'c' => result := X"C"; + when 'd' => result := X"D"; + when 'e' => result := X"E"; + when 'f' => result := X"F"; + when others => + if report_error then + assert false report + "hexread error: read a '" & C & "', expected a hex character (0-F)."; + end if; + good := false; + end case; + end; + + procedure hexread(L:inout line; value:out bit_vector) is + variable OK: boolean; + variable C: character; + constant NE: integer := value'length/4; --' + variable BV: bit_vector(0 to value'length-1); --' + variable S: string(1 to NE-1); + begin + if value'length mod 4 /= 0 then --' + assert false report + "hexread Error: Trying to read vector " & + "with an odd (non multiple of 4) length"; + return; + end if; + + loop -- skip white space + read(L,C); + exit when ((C /= ' ') and (C /= CR) and (C /= HT)); + end loop; + + char2hex(C, BV(0 to 3), OK, false); + if not OK then + return; + end if; + + read(L, S, OK); +-- if not OK then +-- assert false report "hexread Error: Failed to read the STRING"; +-- return; +-- end if; + + for I in 1 to NE-1 loop + char2hex(S(I), BV(4*I to 4*I+3), OK, false); + if not OK then + return; + end if; + end loop; + value := BV; + end hexread; + + procedure hexread(L:inout line; value:out std_ulogic_vector) is + variable tmp: bit_vector(value'length-1 downto 0); --' + begin + hexread(L, tmp); + value := TO_X01(tmp); + end hexread; + + procedure hexread(L:inout line; value:out std_logic_vector) is + variable tmp: std_ulogic_vector(value'length-1 downto 0); --' + begin + hexread(L, tmp); + value := std_logic_vector(tmp); + end hexread; + +END mti_pkg; diff --git a/Libs/Memory_test/hdl/sdramController_tester_test.vhd b/Libs/Memory_test/hdl/sdramController_tester_test.vhd new file mode 100644 index 0000000..317fb6d --- /dev/null +++ b/Libs/Memory_test/hdl/sdramController_tester_test.vhd @@ -0,0 +1,82 @@ +ARCHITECTURE test OF sdramController_tester IS + + constant clockFrequency: real := 66.0E6; + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + + signal ramAddr_int: natural := 0; + signal ramDataOut_int: natural := 0; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- test sequence + process + begin + ramRd <= '0'; + ramWr <= '0'; + ramEn <= '1'; + -- wait for SDRAM ready + wait for 154.3 us - now; + -- write AAAA at address 000010 + ramAddr_int <= 16#000010#; + ramDataOut_int <= 16#AAAA#; + ramWr <= '1', '0' after clockPeriod; + -- wait for SDRAM ready + wait for 164.5 us - now; + -- write AAAA at address 000011 + ramAddr_int <= 16#000011#; + ramDataOut_int <= 16#BBBD#; + ramWr <= '1', '0' after clockPeriod; + -- wait for SDRAM ready + wait for 196.1 us - now; + -- read back from address 000010 + ramAddr_int <= 16#000010#; + ramRd <= '1', '0' after clockPeriod; +-- -- wait for SDRAM ready +-- wait for 130 us; +-- -- write AAAA at address 000010 +-- ramAddr_int <= 16#000010#; +-- ramDataOut_int <= 16#AAAA#; +-- ramWr <= '1', '0' after clockPeriod; +-- -- read back from same address +-- wait for 10*clockPeriod; +-- ramRd <= '1', '0' after clockPeriod; +-- -- wait for a refresh +-- wait for 140.3 us - now; +-- -- write 5555 at address 600010 +-- ramAddr_int <= 16#600020#; +-- ramDataOut_int <= 16#5555#; +-- ramWr <= '1', '0' after clockPeriod; +-- -- read back from same address +-- wait for 1*clockPeriod; +-- ramRd <= '1', '0' after clockPeriod; +-- -- read back from address 600010 +-- addr_from_up_int <= 16#600010#; +-- mem_read <= '1', '0' after clockPeriod; +-- wait for 10*clockPeriod; +-- -- wait for 3 refresh periods +-- wait until falling_edge(dram_busy); +-- wait until falling_edge(dram_busy); +-- wait until falling_edge(dram_busy); +-- -- read back from address 000010 +-- addr_from_up_int <= 16#000010#; +-- mem_read <= '1', '0' after clockPeriod; +-- wait for 10*clockPeriod; + -- end of tests + wait; + end process; + + ------------------------------------------------------------------------------ + -- address and data + ramAddr <= to_unsigned(ramAddr_int, ramAddr'length); + ramDataOut <= std_ulogic_vector(to_unsigned(ramDataOut_int, ramDataOut'length)); + +END ARCHITECTURE test; + diff --git a/Libs/Memory_test/hdl/sdram_mt48lc16m16a2_sim.vhd b/Libs/Memory_test/hdl/sdram_mt48lc16m16a2_sim.vhd new file mode 100644 index 0000000..a31c3fd --- /dev/null +++ b/Libs/Memory_test/hdl/sdram_mt48lc16m16a2_sim.vhd @@ -0,0 +1,1363 @@ +----------------------------------------------------------------------------------------- +-- +-- File Name: MT48LC16M16A2.VHD +-- Version: 0.0g +-- Date: June 29th, 2000 +-- Model: Behavioral +-- Simulator: Model Technology (PC version 5.3 PE) +-- +-- Dependencies: None +-- +-- Author: Son P. Huynh +-- Email: sphuynh@micron.com +-- Phone: (208) 368-3825 +-- Company: Micron Technology, Inc. +-- Part Number: MT48LC16M16A2 (4Mb x 16 x 4 Banks) +-- +-- Description: Micron 256Mb SDRAM +-- +-- Limitation: - Doesn't check for 4096-cycle refresh --' +-- +-- Note: - Set simulator resolution to "ps" accuracy +-- +-- Disclaimer: THESE DESIGNS ARE PROVIDED "AS IS" WITH NO WARRANTY +-- WHATSOEVER AND MICRON SPECIFICALLY DISCLAIMS ANY +-- IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR +-- A PARTICULAR PURPOSE, OR AGAINST INFRINGEMENT. +-- +-- Copyright (c) 1998 Micron Semiconductor Products, Inc. +-- All rights researved +-- +-- Rev Author Phone Date Changes +-- ---- ---------------------------- ---------- ------------------------------------- +-- 0.0g Son Huynh 208-368-3825 06/29/2000 Add Load/Dump memory array +-- Micron Technology Inc. Modify tWR + tRAS timing check +-- +-- 0.0f Son Huynh 208-368-3825 07/08/1999 Fix tWR = 1 Clk + 7.5 ns (Auto) +-- Micron Technology Inc. Fix tWR = 15 ns (Manual) +-- Fix tRP (Autoprecharge to AutoRefresh) +-- +-- 0.0c Son P. Huynh 208-368-3825 04/08/1999 Fix tWR + tRP in Write with AP +-- Micron Technology Inc. Fix tRC check in Load Mode Register +-- +-- 0.0b Son P. Huynh 208-368-3825 01/06/1998 Derive from 64Mb SDRAM model +-- Micron Technology Inc. +-- +----------------------------------------------------------------------------------------- + +--LIBRARY STD; +-- use std.textio.all; +--LIBRARY IEEE; +-- USE IEEE.STD_LOGIC_1164.ALL; +--LIBRARY WORK; +-- USE WORK.MTI_PKG.ALL; +LIBRARY memory_test; + USE memory_test.mti_pkg.all; + +--library grlib; +--use grlib.stdlib.all; +--library gaisler; +--use gaisler.sim.all; + +--ENTITY mt48lc16m16a2 IS +-- GENERIC ( +-- -- Timing Parameters for -75 (PC133) and CAS Latency = 2 +-- tAC : TIME := 6.0 ns; +-- tHZ : TIME := 7.0 ns; +-- tOH : TIME := 2.7 ns; +-- tMRD : INTEGER := 2; -- 2 Clk Cycles +-- tRAS : TIME := 44.0 ns; +-- tRC : TIME := 66.0 ns; +-- tRCD : TIME := 20.0 ns; +-- tRP : TIME := 20.0 ns; +-- tRRD : TIME := 15.0 ns; +-- tWRa : TIME := 7.5 ns; -- A2 Version - Auto precharge mode only (1 Clk + 7.5 ns) +-- tWRp : TIME := 15.0 ns; -- A2 Version - Precharge mode only (15 ns) +-- +-- tAH : TIME := 0.8 ns; +-- tAS : TIME := 1.5 ns; +-- tCH : TIME := 2.5 ns; +-- tCL : TIME := 2.5 ns; +-- tCK : TIME := 10.0 ns; +-- tDH : TIME := 0.8 ns; +-- tDS : TIME := 1.5 ns; +-- tCKH : TIME := 0.8 ns; +-- tCKS : TIME := 1.5 ns; +-- tCMH : TIME := 0.8 ns; +-- tCMS : TIME := 1.5 ns; +-- +-- addr_bits : INTEGER := 13; +-- data_bits : INTEGER := 16; +-- col_bits : INTEGER := 9; +-- index : INTEGER := 0; +-- fname : string := "sdram.srec" -- File to read from +-- ); +-- PORT ( +-- Dq : INOUT STD_LOGIC_VECTOR (data_bits - 1 DOWNTO 0) := (OTHERS => 'Z'); +-- Addr : IN STD_LOGIC_VECTOR (addr_bits - 1 DOWNTO 0) := (OTHERS => '0'); +-- Ba : IN STD_LOGIC_VECTOR := "00"; +-- Clk : IN STD_LOGIC := '0'; +-- Cke : IN STD_LOGIC := '1'; +-- Cs_n : IN STD_LOGIC := '1'; +-- Ras_n : IN STD_LOGIC := '1'; +-- Cas_n : IN STD_LOGIC := '1'; +-- We_n : IN STD_LOGIC := '1'; +-- Dqm : IN STD_LOGIC_VECTOR (1 DOWNTO 0) := "00" +-- ); +--END mt48lc16m16a2; + +ARCHITECTURE sim OF sdram_mt48lc16m16a2 IS + + TYPE State IS (ACT, A_REF, BST, LMR, NOP, PRECH, READ, READ_A, WRITE, WRITE_A, LOAD_FILE, DUMP_FILE); + TYPE Array4xI IS ARRAY (3 DOWNTO 0) OF INTEGER; + TYPE Array4xT IS ARRAY (3 DOWNTO 0) OF TIME; + TYPE Array4xB IS ARRAY (3 DOWNTO 0) OF BIT; + TYPE Array4x2BV IS ARRAY (3 DOWNTO 0) OF BIT_VECTOR (1 DOWNTO 0); + TYPE Array4xCBV IS ARRAY (4 DOWNTO 0) OF BIT_VECTOR (Col_bits - 1 DOWNTO 0); + TYPE Array_state IS ARRAY (4 DOWNTO 0) OF State; + SIGNAL Operation : State := NOP; + SIGNAL Mode_reg : BIT_VECTOR (addr_bits - 1 DOWNTO 0) := (OTHERS => '0'); + SIGNAL Active_enable, Aref_enable, Burst_term : BIT := '0'; + SIGNAL Mode_reg_enable, Prech_enable, Read_enable, Write_enable : BIT := '0'; + SIGNAL Burst_length_1, Burst_length_2, Burst_length_4, Burst_length_8 : BIT := '0'; + SIGNAL Cas_latency_2, Cas_latency_3 : BIT := '0'; + SIGNAL Ras_in, Cas_in, We_in : BIT := '0'; + SIGNAL Write_burst_mode : BIT := '0'; + SIGNAL RAS_clk, Sys_clk, CkeZ : BIT := '0'; + + -- Checking internal wires + SIGNAL Pre_chk : BIT_VECTOR (3 DOWNTO 0) := "0000"; + SIGNAL Act_chk : BIT_VECTOR (3 DOWNTO 0) := "0000"; + SIGNAL Dq_in_chk, Dq_out_chk : BIT := '0'; + SIGNAL Bank_chk : BIT_VECTOR (1 DOWNTO 0) := "00"; + SIGNAL Row_chk : BIT_VECTOR (addr_bits - 1 DOWNTO 0) := (OTHERS => '0'); + SIGNAL Col_chk : BIT_VECTOR (col_bits - 1 DOWNTO 0) := (OTHERS => '0'); + +BEGIN + -- CS# Decode + WITH Cs_n SELECT + Cas_in <= TO_BIT (Cas_n, '1') WHEN '0', + '1' WHEN '1', + '1' WHEN OTHERS; + WITH Cs_n SELECT + Ras_in <= TO_BIT (Ras_n, '1') WHEN '0', + '1' WHEN '1', + '1' WHEN OTHERS; + WITH Cs_n SELECT + We_in <= TO_BIT (We_n, '1') WHEN '0', + '1' WHEN '1', + '1' WHEN OTHERS; + + -- Commands Decode + Active_enable <= NOT(Ras_in) AND Cas_in AND We_in; + Aref_enable <= NOT(Ras_in) AND NOT(Cas_in) AND We_in; + Burst_term <= Ras_in AND Cas_in AND NOT(We_in); + Mode_reg_enable <= NOT(Ras_in) AND NOT(Cas_in) AND NOT(We_in); + Prech_enable <= NOT(Ras_in) AND Cas_in AND NOT(We_in); + Read_enable <= Ras_in AND NOT(Cas_in) AND We_in; + Write_enable <= Ras_in AND NOT(Cas_in) AND NOT(We_in); + + -- Burst Length Decode + Burst_length_1 <= NOT(Mode_reg(2)) AND NOT(Mode_reg(1)) AND NOT(Mode_reg(0)); + Burst_length_2 <= NOT(Mode_reg(2)) AND NOT(Mode_reg(1)) AND Mode_reg(0); + Burst_length_4 <= NOT(Mode_reg(2)) AND Mode_reg(1) AND NOT(Mode_reg(0)); + Burst_length_8 <= NOT(Mode_reg(2)) AND Mode_reg(1) AND Mode_reg(0); + + -- CAS Latency Decode + Cas_latency_2 <= NOT(Mode_reg(6)) AND Mode_reg(5) AND NOT(Mode_reg(4)); + Cas_latency_3 <= NOT(Mode_reg(6)) AND Mode_reg(5) AND Mode_reg(4); + + -- Write Burst Mode + Write_burst_mode <= Mode_reg(9); + + -- RAS Clock for checking tWR and tRP + PROCESS + variable Clk0, Clk1 : integer := 0; + begin + RAS_clk <= '1'; + wait for 0.5 ns; + RAS_clk <= '0'; + wait for 0.5 ns; + if Clk0 > 100 or Clk1 > 100 then + wait; + else + if Clk = '1' and Cke = '1' then + Clk0 := 0; + Clk1 := Clk1 + 1; + elsif Clk = '0' and Cke = '1' then + Clk0 := Clk0 + 1; + Clk1 := 0; + end if; + end if; + END PROCESS; + + -- System Clock + int_clk : PROCESS (Clk) + begin + IF Clk'LAST_VALUE = '0' AND Clk = '1' THEN --' + CkeZ <= TO_BIT(Cke, '1'); + END IF; + Sys_clk <= CkeZ AND TO_BIT(Clk, '0'); + END PROCESS; + + state_register : PROCESS + -- NOTE: The extra bits in RAM_TYPE is for checking memory access. A logic 1 means + -- the location is in use. This will be checked when doing memory DUMP. + TYPE ram_type IS ARRAY (2**col_bits - 1 DOWNTO 0) OF BIT_VECTOR (data_bits DOWNTO 0); + TYPE ram_pntr IS ACCESS ram_type; + TYPE ram_stor IS ARRAY (2**addr_bits - 1 DOWNTO 0) OF ram_pntr; + VARIABLE Bank0 : ram_stor; + VARIABLE Bank1 : ram_stor; + VARIABLE Bank2 : ram_stor; + VARIABLE Bank3 : ram_stor; + VARIABLE Row_index, Col_index : INTEGER := 0; + VARIABLE Dq_temp : BIT_VECTOR (data_bits DOWNTO 0) := (OTHERS => '0'); + + VARIABLE Col_addr : Array4xCBV; + VARIABLE Bank_addr : Array4x2BV; + VARIABLE Dqm_reg0, Dqm_reg1 : BIT_VECTOR (1 DOWNTO 0) := "00"; + + VARIABLE Bank, Previous_bank : BIT_VECTOR (1 DOWNTO 0) := "00"; + VARIABLE B0_row_addr, B1_row_addr, B2_row_addr, B3_row_addr : BIT_VECTOR (addr_bits - 1 DOWNTO 0) := (OTHERS => '0'); + VARIABLE Col_brst : BIT_VECTOR (col_bits - 1 DOWNTO 0) := (OTHERS => '0'); + VARIABLE Row : BIT_VECTOR (addr_bits - 1 DOWNTO 0) := (OTHERS => '0'); + VARIABLE Col : BIT_VECTOR (col_bits - 1 DOWNTO 0) := (OTHERS => '0'); + VARIABLE Burst_counter : INTEGER := 0; + + VARIABLE Command : Array_state; + VARIABLE Bank_precharge : Array4x2BV; + VARIABLE A10_precharge : Array4xB := ('0' & '0' & '0' & '0'); + VARIABLE Auto_precharge : Array4xB := ('0' & '0' & '0' & '0'); + VARIABLE Read_precharge : Array4xB := ('0' & '0' & '0' & '0'); + VARIABLE Write_precharge : Array4xB := ('0' & '0' & '0' & '0'); + VARIABLE RW_interrupt_read : Array4xB := ('0' & '0' & '0' & '0'); + VARIABLE RW_interrupt_write : Array4xB := ('0' & '0' & '0' & '0'); + VARIABLE RW_interrupt_bank : BIT_VECTOR (1 DOWNTO 0) := "00"; + VARIABLE Count_time : Array4xT := (0 ns & 0 ns & 0 ns & 0 ns); + VARIABLE Count_precharge : Array4xI := (0 & 0 & 0 & 0); + + VARIABLE Data_in_enable, Data_out_enable : BIT := '0'; + VARIABLE Pc_b0, Pc_b1, Pc_b2, Pc_b3 : BIT := '0'; + VARIABLE Act_b0, Act_b1, Act_b2, Act_b3 : BIT := '0'; + + -- Timing Check + VARIABLE MRD_chk : INTEGER := 0; + VARIABLE WR_counter : Array4xI := (0 & 0 & 0 & 0); + VARIABLE WR_time : Array4xT := (0 ns & 0 ns & 0 ns & 0 ns); + VARIABLE WR_chkp : Array4xT := (0 ns & 0 ns & 0 ns & 0 ns); + VARIABLE RC_chk, RRD_chk : TIME := 0 ns; + VARIABLE RAS_chk0, RAS_chk1, RAS_chk2, RAS_chk3 : TIME := 0 ns; + VARIABLE RCD_chk0, RCD_chk1, RCD_chk2, RCD_chk3 : TIME := 0 ns; + VARIABLE RP_chk0, RP_chk1, RP_chk2, RP_chk3 : TIME := 0 ns; + + -- Load and Dumb variables + FILE file_load : TEXT open read_mode is fname; -- Data load + FILE file_dump : TEXT open write_mode is "dumpdata.txt"; -- Data dump + VARIABLE bank_load : bit_vector ( 1 DOWNTO 0); + VARIABLE rows_load : BIT_VECTOR (12 DOWNTO 0); + VARIABLE cols_load : BIT_VECTOR ( 8 DOWNTO 0); + VARIABLE data_load : BIT_VECTOR (15 DOWNTO 0); + VARIABLE i, j : INTEGER; + VARIABLE good_load : BOOLEAN; + VARIABLE l : LINE; + variable load : std_logic := '1'; + variable dump : std_logic := '0'; + variable ch : character; + variable rectype : bit_vector(3 downto 0); + variable recaddr : bit_vector(31 downto 0); + variable reclen : bit_vector(7 downto 0); + variable recdata : bit_vector(0 to 16*8-1); + + -- Initialize empty rows + PROCEDURE Init_mem (Bank : bit_vector (1 DOWNTO 0); Row_index : INTEGER) IS + VARIABLE i, j : INTEGER := 0; + BEGIN + IF Bank = "00" THEN + IF Bank0 (Row_index) = NULL THEN -- Check to see if row empty + Bank0 (Row_index) := NEW ram_type; -- Open new row for access + FOR i IN (2**col_bits - 1) DOWNTO 0 LOOP -- Filled row with zeros + FOR j IN (data_bits) DOWNTO 0 LOOP + Bank0 (Row_index) (i) (j) := '0'; + END LOOP; + END LOOP; + END IF; + ELSIF Bank = "01" THEN + IF Bank1 (Row_index) = NULL THEN + Bank1 (Row_index) := NEW ram_type; + FOR i IN (2**col_bits - 1) DOWNTO 0 LOOP + FOR j IN (data_bits) DOWNTO 0 LOOP + Bank1 (Row_index) (i) (j) := '0'; + END LOOP; + END LOOP; + END IF; + ELSIF Bank = "10" THEN + IF Bank2 (Row_index) = NULL THEN + Bank2 (Row_index) := NEW ram_type; + FOR i IN (2**col_bits - 1) DOWNTO 0 LOOP + FOR j IN (data_bits) DOWNTO 0 LOOP + Bank2 (Row_index) (i) (j) := '0'; + END LOOP; + END LOOP; + END IF; + ELSIF Bank = "11" THEN + IF Bank3 (Row_index) = NULL THEN + Bank3 (Row_index) := NEW ram_type; + FOR i IN (2**col_bits - 1) DOWNTO 0 LOOP + FOR j IN (data_bits) DOWNTO 0 LOOP + Bank3 (Row_index) (i) (j) := '0'; + END LOOP; + END LOOP; + END IF; + END IF; + END; + + -- Burst Counter + PROCEDURE Burst_decode IS + VARIABLE Col_int : INTEGER := 0; + VARIABLE Col_vec, Col_temp : BIT_VECTOR (col_bits - 1 DOWNTO 0) := (OTHERS => '0'); + BEGIN + -- Advance Burst Counter + Burst_counter := Burst_counter + 1; + + -- Burst Type + IF Mode_reg (3) = '0' THEN + Col_int := TO_INTEGER(Col); + Col_int := Col_int + 1; + TO_BITVECTOR (Col_int, Col_temp); + ELSIF Mode_reg (3) = '1' THEN + TO_BITVECTOR (Burst_counter, Col_vec); + Col_temp (2) := Col_vec (2) XOR Col_brst (2); + Col_temp (1) := Col_vec (1) XOR Col_brst (1); + Col_temp (0) := Col_vec (0) XOR Col_brst (0); + END IF; + + -- Burst Length + IF Burst_length_2 = '1' THEN + Col (0) := Col_temp (0); + ELSIF Burst_length_4 = '1' THEN + Col (1 DOWNTO 0) := Col_temp (1 DOWNTO 0); + ELSIF Burst_length_8 = '1' THEN + Col (2 DOWNTO 0) := Col_temp (2 DOWNTO 0); + ELSE + Col := Col_temp; + END IF; + + -- Burst Read Single Write + IF Write_burst_mode = '1' AND Data_in_enable = '1' THEN + Data_in_enable := '0'; + END IF; + + -- Data counter + IF Burst_length_1 = '1' THEN + IF Burst_counter >= 1 THEN + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + ELSIF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + ELSIF Burst_length_2 = '1' THEN + IF Burst_counter >= 2 THEN + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + ELSIF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + ELSIF Burst_length_4 = '1' THEN + IF Burst_counter >= 4 THEN + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + ELSIF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + ELSIF Burst_length_8 = '1' THEN + IF Burst_counter >= 8 THEN + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + ELSIF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + END IF; + END; + + BEGIN + WAIT ON Sys_clk, RAS_clk; + IF Sys_clk'event AND Sys_clk = '1' AND Load = '0' AND Dump = '0' THEN --' + -- Internal Command Pipeline + Command(0) := Command(1); + Command(1) := Command(2); + Command(2) := Command(3); + Command(3) := NOP; + + Col_addr(0) := Col_addr(1); + Col_addr(1) := Col_addr(2); + Col_addr(2) := Col_addr(3); + Col_addr(3) := (OTHERS => '0'); + + Bank_addr(0) := Bank_addr(1); + Bank_addr(1) := Bank_addr(2); + Bank_addr(2) := Bank_addr(3); + Bank_addr(3) := "00"; + + Bank_precharge(0) := Bank_precharge(1); + Bank_precharge(1) := Bank_precharge(2); + Bank_precharge(2) := Bank_precharge(3); + Bank_precharge(3) := "00"; + + A10_precharge(0) := A10_precharge(1); + A10_precharge(1) := A10_precharge(2); + A10_precharge(2) := A10_precharge(3); + A10_precharge(3) := '0'; + + -- Operation Decode (Optional for showing current command on posedge clock / debug feature) + IF Active_enable = '1' THEN + Operation <= ACT; + ELSIF Aref_enable = '1' THEN + Operation <= A_REF; + ELSIF Burst_term = '1' THEN + Operation <= BST; + ELSIF Mode_reg_enable = '1' THEN + Operation <= LMR; + ELSIF Prech_enable = '1' THEN + Operation <= PRECH; + ELSIF Read_enable = '1' THEN + IF Addr(10) = '0' THEN + Operation <= READ; + ELSE + Operation <= READ_A; + END IF; + ELSIF Write_enable = '1' THEN + IF Addr(10) = '0' THEN + Operation <= WRITE; + ELSE + Operation <= WRITE_A; + END IF; + ELSE + Operation <= NOP; + END IF; + + -- Dqm pipeline for Read + Dqm_reg0 := Dqm_reg1; + Dqm_reg1 := TO_BITVECTOR(Dqm); + + -- Read or Write with Auto Precharge Counter + IF Auto_precharge (0) = '1' THEN + Count_precharge (0) := Count_precharge (0) + 1; + END IF; + IF Auto_precharge (1) = '1' THEN + Count_precharge (1) := Count_precharge (1) + 1; + END IF; + IF Auto_precharge (2) = '1' THEN + Count_precharge (2) := Count_precharge (2) + 1; + END IF; + IF Auto_precharge (3) = '1' THEN + Count_precharge (3) := Count_precharge (3) + 1; + END IF; + + -- Auto Precharge Timer for tWR + if (Burst_length_1 = '1' OR Write_burst_mode = '1') then + if (Count_precharge(0) = 1) then + Count_time(0) := NOW; + end if; + if (Count_precharge(1) = 1) then + Count_time(1) := NOW; + end if; + if (Count_precharge(2) = 1) then + Count_time(2) := NOW; + end if; + if (Count_precharge(3) = 1) then + Count_time(3) := NOW; + end if; + elsif (Burst_length_2 = '1') then + if (Count_precharge(0) = 2) then + Count_time(0) := NOW; + end if; + if (Count_precharge(1) = 2) then + Count_time(1) := NOW; + end if; + if (Count_precharge(2) = 2) then + Count_time(2) := NOW; + end if; + if (Count_precharge(3) = 2) then + Count_time(3) := NOW; + end if; + elsif (Burst_length_4 = '1') then + if (Count_precharge(0) = 4) then + Count_time(0) := NOW; + end if; + if (Count_precharge(1) = 4) then + Count_time(1) := NOW; + end if; + if (Count_precharge(2) = 4) then + Count_time(2) := NOW; + end if; + if (Count_precharge(3) = 4) then + Count_time(3) := NOW; + end if; + elsif (Burst_length_8 = '1') then + if (Count_precharge(0) = 8) then + Count_time(0) := NOW; + end if; + if (Count_precharge(1) = 8) then + Count_time(1) := NOW; + end if; + if (Count_precharge(2) = 8) then + Count_time(2) := NOW; + end if; + if (Count_precharge(3) = 8) then + Count_time(3) := NOW; + end if; + end if; + + -- tMRD Counter + MRD_chk := MRD_chk + 1; + + -- tWR Counter + WR_counter(0) := WR_counter(0) + 1; + WR_counter(1) := WR_counter(1) + 1; + WR_counter(2) := WR_counter(2) + 1; + WR_counter(3) := WR_counter(3) + 1; + + + -- Auto Refresh + IF Aref_enable = '1' THEN + -- Auto Refresh to Auto Refresh + ASSERT (NOW - RC_chk >= tRC) + REPORT "tRC violation during Auto Refresh" + SEVERITY WARNING; + -- Precharge to Auto Refresh + ASSERT (NOW - RP_chk0 >= tRP OR NOW - RP_chk1 >= tRP OR NOW - RP_chk2 >= tRP OR NOW - RP_chk3 >= tRP) + REPORT "tRP violation during Auto Refresh" + SEVERITY WARNING; + -- All banks must be idle before refresh + IF (Pc_b3 ='0' OR Pc_b2 = '0' OR Pc_b1 ='0' OR Pc_b0 = '0') THEN + ASSERT (FALSE) + REPORT "All banks must be Precharge before Auto Refresh" + SEVERITY WARNING; + END IF; + -- Record current tRC time + RC_chk := NOW; + END IF; + + -- Load Mode Register + IF Mode_reg_enable = '1' THEN + Mode_reg <= TO_BITVECTOR (Addr); + IF (Pc_b3 ='0' OR Pc_b2 = '0' OR Pc_b1 ='0' OR Pc_b0 = '0') THEN + ASSERT (FALSE) + REPORT "All bank must be Precharge before Load Mode Register" + SEVERITY WARNING; + END IF; + -- REF to LMR + ASSERT (NOW - RC_chk >= tRC) + REPORT "tRC violation during Load Mode Register" + SEVERITY WARNING; + -- LMR to LMR + ASSERT (MRD_chk >= tMRD) + REPORT "tMRD violation during Load Mode Register" + SEVERITY WARNING; + -- Record current tMRD time + MRD_chk := 0; + END IF; + + -- Active Block (latch Bank and Row Address) + IF Active_enable = '1' THEN + IF Ba = "00" AND Pc_b0 = '1' THEN + Act_b0 := '1'; + Pc_b0 := '0'; + B0_row_addr := TO_BITVECTOR (Addr); + RCD_chk0 := NOW; + RAS_chk0 := NOW; + -- Precharge to Active Bank 0 + ASSERT (NOW - RP_chk0 >= tRP) + REPORT "tRP violation during Activate Bank 0" + SEVERITY WARNING; + ELSIF Ba = "01" AND Pc_b1 = '1' THEN + Act_b1 := '1'; + Pc_b1 := '0'; + B1_row_addr := TO_BITVECTOR (Addr); + RCD_chk1 := NOW; + RAS_chk1 := NOW; + -- Precharge to Active Bank 1 + ASSERT (NOW - RP_chk1 >= tRP) + REPORT "tRP violation during Activate Bank 1" + SEVERITY WARNING; + ELSIF Ba = "10" AND Pc_b2 = '1' THEN + Act_b2 := '1'; + Pc_b2 := '0'; + B2_row_addr := TO_BITVECTOR (Addr); + RCD_chk2 := NOW; + RAS_chk2 := NOW; + -- Precharge to Active Bank 2 + ASSERT (NOW - RP_chk2 >= tRP) + REPORT "tRP violation during Activate Bank 2" + SEVERITY WARNING; + ELSIF Ba = "11" AND Pc_b3 = '1' THEN + Act_b3 := '1'; + Pc_b3 := '0'; + B3_row_addr := TO_BITVECTOR (Addr); + RCD_chk3 := NOW; + RAS_chk3 := NOW; + -- Precharge to Active Bank 3 + ASSERT (NOW - RP_chk3 >= tRP) + REPORT "tRP violation during Activate Bank 3" + SEVERITY WARNING; + ELSIF Ba = "00" AND Pc_b0 = '0' THEN + ASSERT (FALSE) + REPORT "Bank 0 is not Precharged" + SEVERITY WARNING; + ELSIF Ba = "01" AND Pc_b1 = '0' THEN + ASSERT (FALSE) + REPORT "Bank 1 is not Precharged" + SEVERITY WARNING; + ELSIF Ba = "10" AND Pc_b2 = '0' THEN + ASSERT (FALSE) + REPORT "Bank 2 is not Precharged" + SEVERITY WARNING; + ELSIF Ba = "11" AND Pc_b3 = '0' THEN + ASSERT (FALSE) + REPORT "Bank 3 is not Precharged" + SEVERITY WARNING; + END IF; + -- Active Bank A to Active Bank B + IF ((Previous_bank /= TO_BITVECTOR (Ba)) AND (NOW - RRD_chk < tRRD)) THEN + ASSERT (FALSE) + REPORT "tRRD violation during Activate" + SEVERITY WARNING; + END IF; + -- LMR to ACT + ASSERT (MRD_chk >= tMRD) + REPORT "tMRD violation during Activate" + SEVERITY WARNING; + -- AutoRefresh to Activate + ASSERT (NOW - RC_chk >= tRC) + REPORT "tRC violation during Activate" + SEVERITY WARNING; + -- Record variable for checking violation + RRD_chk := NOW; + Previous_bank := TO_BITVECTOR (Ba); + END IF; + + -- Precharge Block + IF Prech_enable = '1' THEN + IF Addr(10) = '1' THEN + Pc_b0 := '1'; + Pc_b1 := '1'; + Pc_b2 := '1'; + Pc_b3 := '1'; + Act_b0 := '0'; + Act_b1 := '0'; + Act_b2 := '0'; + Act_b3 := '0'; + RP_chk0 := NOW; + RP_chk1 := NOW; + RP_chk2 := NOW; + RP_chk3 := NOW; + -- Activate to Precharge all banks + ASSERT ((NOW - RAS_chk0 >= tRAS) OR (NOW - RAS_chk1 >= tRAS)) + REPORT "tRAS violation during Precharge all banks" + SEVERITY WARNING; + -- tWR violation check for Write + IF ((NOW - WR_chkp(0) < tWRp) OR (NOW - WR_chkp(1) < tWRp) OR + (NOW - WR_chkp(2) < tWRp) OR (NOW - WR_chkp(3) < tWRp)) THEN + ASSERT (FALSE) + REPORT "tWR violation during Precharge ALL banks" + SEVERITY WARNING; + END IF; + ELSIF Addr(10) = '0' THEN + IF Ba = "00" THEN + Pc_b0 := '1'; + Act_b0 := '0'; + RP_chk0 := NOW; + -- Activate to Precharge bank 0 + ASSERT (NOW - RAS_chk0 >= tRAS) + REPORT "tRAS violation during Precharge bank 0" + SEVERITY WARNING; + ELSIF Ba = "01" THEN + Pc_b1 := '1'; + Act_b1 := '0'; + RP_chk1 := NOW; + -- Activate to Precharge bank 1 + ASSERT (NOW - RAS_chk1 >= tRAS) + REPORT "tRAS violation during Precharge bank 1" + SEVERITY WARNING; + ELSIF Ba = "10" THEN + Pc_b2 := '1'; + Act_b2 := '0'; + RP_chk2 := NOW; + -- Activate to Precharge bank 2 + ASSERT (NOW - RAS_chk2 >= tRAS) + REPORT "tRAS violation during Precharge bank 2" + SEVERITY WARNING; + ELSIF Ba = "11" THEN + Pc_b3 := '1'; + Act_b3 := '0'; + RP_chk3 := NOW; + -- Activate to Precharge bank 3 + ASSERT (NOW - RAS_chk3 >= tRAS) + REPORT "tRAS violation during Precharge bank 3" + SEVERITY WARNING; + END IF; + -- tWR violation check for Write + ASSERT (NOW - WR_chkp(TO_INTEGER(Ba)) >= tWRp) + REPORT "tWR violation during Precharge" + SEVERITY WARNING; + END IF; + -- Terminate a Write Immediately (if same bank or all banks) + IF (Data_in_enable = '1' AND (Bank = TO_BITVECTOR(Ba) OR Addr(10) = '1')) THEN + Data_in_enable := '0'; + END IF; + -- Precharge Command Pipeline for READ + IF CAS_latency_3 = '1' THEN + Command(2) := PRECH; + Bank_precharge(2) := TO_BITVECTOR (Ba); + A10_precharge(2) := TO_BIT(Addr(10)); + ELSIF CAS_latency_2 = '1' THEN + Command(1) := PRECH; + Bank_precharge(1) := TO_BITVECTOR (Ba); + A10_precharge(1) := TO_BIT(Addr(10)); + END IF; + END IF; + + -- Burst Terminate + IF Burst_term = '1' THEN + -- Terminate a Write immediately + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + END IF; + -- Terminate a Read depend on CAS Latency + IF CAS_latency_3 = '1' THEN + Command(2) := BST; + ELSIF CAS_latency_2 = '1' THEN + Command(1) := BST; + END IF; + END IF; + + -- Read, Write, Column Latch + IF Read_enable = '1' OR Write_enable = '1' THEN + -- Check to see if bank is open (ACT) for Read or Write + IF ((Ba="00" AND Pc_b0='1') OR (Ba="01" AND Pc_b1='1') OR (Ba="10" AND Pc_b2='1') OR (Ba="11" AND Pc_b3='1')) THEN + ASSERT (FALSE) + REPORT "Cannot Read or Write - Bank is not Activated" + SEVERITY WARNING; + END IF; + -- Activate to Read or Write + IF Ba = "00" THEN + ASSERT (NOW - RCD_chk0 >= tRCD) + REPORT "tRCD violation during Read or Write to Bank 0" + SEVERITY WARNING; + ELSIF Ba = "01" THEN + ASSERT (NOW - RCD_chk1 >= tRCD) + REPORT "tRCD violation during Read or Write to Bank 1" + SEVERITY WARNING; + ELSIF Ba = "10" THEN + ASSERT (NOW - RCD_chk2 >= tRCD) + REPORT "tRCD violation during Read or Write to Bank 2" + SEVERITY WARNING; + ELSIF Ba = "11" THEN + ASSERT (NOW - RCD_chk3 >= tRCD) + REPORT "tRCD violation during Read or Write to Bank 3" + SEVERITY WARNING; + END IF; + + -- Read Command + IF Read_enable = '1' THEN + -- CAS Latency Pipeline + IF Cas_latency_3 = '1' THEN + IF Addr(10) = '1' THEN + Command(2) := READ_A; + ELSE + Command(2) := READ; + END IF; + Col_addr (2) := TO_BITVECTOR (Addr(col_bits - 1 DOWNTO 0)); + Bank_addr (2) := TO_BITVECTOR (Ba); + ELSIF Cas_latency_2 = '1' THEN + IF Addr(10) = '1' THEN + Command(1) := READ_A; + ELSE + Command(1) := READ; + END IF; + Col_addr (1) := TO_BITVECTOR (Addr(col_bits - 1 DOWNTO 0)); + Bank_addr (1) := TO_BITVECTOR (Ba); + END IF; + + -- Read intterupt a Write (terminate Write immediately) + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + END IF; + + -- Write Command + ELSIF Write_enable = '1' THEN + IF Addr(10) = '1' THEN + Command(0) := WRITE_A; + ELSE + Command(0) := WRITE; + END IF; + Col_addr (0) := TO_BITVECTOR (Addr(col_bits - 1 DOWNTO 0)); + Bank_addr (0) := TO_BITVECTOR (Ba); + + -- Write intterupt a Write (terminate Write immediately) + IF Data_in_enable = '1' THEN + Data_in_enable := '0'; + END IF; + + -- Write interrupt a Read (terminate Read immediately) + IF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + + -- Interrupt a Write with Auto Precharge + IF Auto_precharge(TO_INTEGER(RW_Interrupt_Bank)) = '1' AND Write_precharge(TO_INTEGER(RW_Interrupt_Bank)) = '1' THEN + RW_interrupt_write(TO_INTEGER(RW_Interrupt_Bank)) := '1'; + END IF; + + -- Interrupt a Read with Auto Precharge + IF Auto_precharge(TO_INTEGER(RW_Interrupt_Bank)) = '1' AND Read_precharge(TO_INTEGER(RW_Interrupt_Bank)) = '1' THEN + RW_interrupt_read(TO_INTEGER(RW_Interrupt_Bank)) := '1'; + END IF; + + -- Read or Write with Auto Precharge + IF Addr(10) = '1' THEN + Auto_precharge (TO_INTEGER(Ba)) := '1'; + Count_precharge (TO_INTEGER(Ba)) := 0; + RW_Interrupt_Bank := TO_BitVector(Ba); + IF Read_enable = '1' THEN + Read_precharge (TO_INTEGER(Ba)) := '1'; + ELSIF Write_enable = '1' THEN + Write_precharge (TO_INTEGER(Ba)) := '1'; + END IF; + END IF; + END IF; + + -- Read with AutoPrecharge Calculation + -- The device start internal precharge when: + -- 1. BL/2 cycles after command + -- and 2. Meet tRAS requirement + -- or 3. Interrupt by a Read or Write (with or without Auto Precharge) + IF ((Auto_precharge(0) = '1') AND (Read_precharge(0) = '1')) THEN + IF (((NOW - RAS_chk0 >= tRAS) AND + ((Burst_length_1 = '1' AND Count_precharge(0) >= 1) OR + (Burst_length_2 = '1' AND Count_precharge(0) >= 2) OR + (Burst_length_4 = '1' AND Count_precharge(0) >= 4) OR + (Burst_length_8 = '1' AND Count_precharge(0) >= 8))) OR + (RW_interrupt_read(0) = '1')) THEN + Pc_b0 := '1'; + Act_b0 := '0'; + RP_chk0 := NOW; + Auto_precharge(0) := '0'; + Read_precharge(0) := '0'; + RW_interrupt_read(0) := '0'; + END IF; + END IF; + IF ((Auto_precharge(1) = '1') AND (Read_precharge(1) = '1')) THEN + IF (((NOW - RAS_chk1 >= tRAS) AND + ((Burst_length_1 = '1' AND Count_precharge(1) >= 1) OR + (Burst_length_2 = '1' AND Count_precharge(1) >= 2) OR + (Burst_length_4 = '1' AND Count_precharge(1) >= 4) OR + (Burst_length_8 = '1' AND Count_precharge(1) >= 8))) OR + (RW_interrupt_read(1) = '1')) THEN + Pc_b1 := '1'; + Act_b1 := '0'; + RP_chk1 := NOW; + Auto_precharge(1) := '0'; + Read_precharge(1) := '0'; + RW_interrupt_read(1) := '0'; + END IF; + END IF; + IF ((Auto_precharge(2) = '1') AND (Read_precharge(2) = '1')) THEN + IF (((NOW - RAS_chk2 >= tRAS) AND + ((Burst_length_1 = '1' AND Count_precharge(2) >= 1) OR + (Burst_length_2 = '1' AND Count_precharge(2) >= 2) OR + (Burst_length_4 = '1' AND Count_precharge(2) >= 4) OR + (Burst_length_8 = '1' AND Count_precharge(2) >= 8))) OR + (RW_interrupt_read(2) = '1')) THEN + Pc_b2 := '1'; + Act_b2 := '0'; + RP_chk2 := NOW; + Auto_precharge(2) := '0'; + Read_precharge(2) := '0'; + RW_interrupt_read(2) := '0'; + END IF; + END IF; + IF ((Auto_precharge(3) = '1') AND (Read_precharge(3) = '1')) THEN + IF (((NOW - RAS_chk3 >= tRAS) AND + ((Burst_length_1 = '1' AND Count_precharge(3) >= 1) OR + (Burst_length_2 = '1' AND Count_precharge(3) >= 2) OR + (Burst_length_4 = '1' AND Count_precharge(3) >= 4) OR + (Burst_length_8 = '1' AND Count_precharge(3) >= 8))) OR + (RW_interrupt_read(3) = '1')) THEN + Pc_b3 := '1'; + Act_b3 := '0'; + RP_chk3 := NOW; + Auto_precharge(3) := '0'; + Read_precharge(3) := '0'; + RW_interrupt_read(3) := '0'; + END IF; + END IF; + + -- Internal Precharge or Bst + IF Command(0) = PRECH THEN -- PRECH terminate a read if same bank or all banks + IF Bank_precharge(0) = Bank OR A10_precharge(0) = '1' THEN + IF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + ELSIF Command(0) = BST THEN -- BST terminate a read regardless of bank + IF Data_out_enable = '1' THEN + Data_out_enable := '0'; + END IF; + END IF; + + IF Data_out_enable = '0' THEN + Dq <= TRANSPORT (OTHERS => 'Z') AFTER tOH; + END IF; + + -- Detect Read or Write Command + IF Command(0) = READ OR Command(0) = READ_A THEN + Bank := Bank_addr (0); + Col := Col_addr (0); + Col_brst := Col_addr (0); + IF Bank_addr (0) = "00" THEN + Row := B0_row_addr; + ELSIF Bank_addr (0) = "01" THEN + Row := B1_row_addr; + ELSIF Bank_addr (0) = "10" THEN + Row := B2_row_addr; + ELSE + Row := B3_row_addr; + END IF; + Burst_counter := 0; + Data_in_enable := '0'; + Data_out_enable := '1'; + ELSIF Command(0) = WRITE OR Command(0) = WRITE_A THEN + Bank := Bank_addr(0); + Col := Col_addr(0); + Col_brst := Col_addr(0); + IF Bank_addr (0) = "00" THEN + Row := B0_row_addr; + ELSIF Bank_addr (0) = "01" THEN + Row := B1_row_addr; + ELSIF Bank_addr (0) = "10" THEN + Row := B2_row_addr; + ELSE + Row := B3_row_addr; + END IF; + Burst_counter := 0; + Data_in_enable := '1'; + Data_out_enable := '0'; + END IF; + + -- DQ (Driver / Receiver) + Row_index := TO_INTEGER (Row); + Col_index := TO_INTEGER (Col); + IF Data_in_enable = '1' THEN + IF Dqm /= "11" THEN + Init_mem (Bank, Row_index); + IF Bank = "00" THEN + Dq_temp := Bank0 (Row_index) (Col_index); + IF Dqm = "01" THEN + Dq_temp (15 DOWNTO 8) := TO_BITVECTOR (Dq (15 DOWNTO 8)); + ELSIF Dqm = "10" THEN + Dq_temp (7 DOWNTO 0) := TO_BITVECTOR (Dq (7 DOWNTO 0)); + ELSE + Dq_temp (15 DOWNTO 0) := TO_BITVECTOR (Dq (15 DOWNTO 0)); + END IF; + Bank0 (Row_index) (Col_index) := ('1' & Dq_temp(data_bits - 1 DOWNTO 0)); + ELSIF Bank = "01" THEN + Dq_temp := Bank1 (Row_index) (Col_index); + IF Dqm = "01" THEN + Dq_temp (15 DOWNTO 8) := TO_BITVECTOR (Dq (15 DOWNTO 8)); + ELSIF Dqm = "10" THEN + Dq_temp (7 DOWNTO 0) := TO_BITVECTOR (Dq (7 DOWNTO 0)); + ELSE + Dq_temp (15 DOWNTO 0) := TO_BITVECTOR (Dq (15 DOWNTO 0)); + END IF; + Bank1 (Row_index) (Col_index) := ('1' & Dq_temp(data_bits - 1 DOWNTO 0)); + ELSIF Bank = "10" THEN + Dq_temp := Bank2 (Row_index) (Col_index); + IF Dqm = "01" THEN + Dq_temp (15 DOWNTO 8) := TO_BITVECTOR (Dq (15 DOWNTO 8)); + ELSIF Dqm = "10" THEN + Dq_temp (7 DOWNTO 0) := TO_BITVECTOR (Dq (7 DOWNTO 0)); + ELSE + Dq_temp (15 DOWNTO 0) := TO_BITVECTOR (Dq (15 DOWNTO 0)); + END IF; + Bank2 (Row_index) (Col_index) := ('1' & Dq_temp(data_bits - 1 DOWNTO 0)); + ELSIF Bank = "11" THEN + Dq_temp := Bank3 (Row_index) (Col_index); + IF Dqm = "01" THEN + Dq_temp (15 DOWNTO 8) := TO_BITVECTOR (Dq (15 DOWNTO 8)); + ELSIF Dqm = "10" THEN + Dq_temp (7 DOWNTO 0) := TO_BITVECTOR (Dq (7 DOWNTO 0)); + ELSE + Dq_temp (15 DOWNTO 0) := TO_BITVECTOR (Dq (15 DOWNTO 0)); + END IF; + Bank3 (Row_index) (Col_index) := ('1' & Dq_temp(data_bits - 1 DOWNTO 0)); + END IF; + WR_chkp(TO_INTEGER(Bank)) := NOW; + WR_counter(TO_INTEGER(Bank)) := 0; + END IF; + Burst_decode; + ELSIF Data_out_enable = '1' THEN + IF Dqm_reg0 /= "11" THEN + Init_mem (Bank, Row_index); + IF Bank = "00" THEN + Dq_temp := Bank0 (Row_index) (Col_index); + IF Dqm_reg0 = "00" THEN + Dq (15 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 0)) AFTER tAC; + ELSIF Dqm_reg0 = "01" THEN + Dq (15 DOWNTO 8) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 8)) AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + ELSIF Dqm_reg0 = "10" THEN + Dq (15 DOWNTO 8) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (7 DOWNTO 0)) AFTER tAC; + END IF; + ELSIF Bank = "01" THEN + Dq_temp := Bank1 (Row_index) (Col_index); + IF Dqm_reg0 = "00" THEN + Dq (15 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 0)) AFTER tAC; + ELSIF Dqm_reg0 = "01" THEN + Dq (15 DOWNTO 8) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 8)) AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + ELSIF Dqm_reg0 = "10" THEN + Dq (15 DOWNTO 8) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (7 DOWNTO 0)) AFTER tAC; + END IF; + ELSIF Bank = "10" THEN + Dq_temp := Bank2 (Row_index) (Col_index); + IF Dqm_reg0 = "00" THEN + Dq (15 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 0)) AFTER tAC; + ELSIF Dqm_reg0 = "01" THEN + Dq (15 DOWNTO 8) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 8)) AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + ELSIF Dqm_reg0 = "10" THEN + Dq (15 DOWNTO 8) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (7 DOWNTO 0)) AFTER tAC; + END IF; + ELSIF Bank = "11" THEN + Dq_temp := Bank3 (Row_index) (Col_index); + IF Dqm_reg0 = "00" THEN + Dq (15 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 0)) AFTER tAC; + ELSIF Dqm_reg0 = "01" THEN + Dq (15 DOWNTO 8) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (15 DOWNTO 8)) AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + ELSIF Dqm_reg0 = "10" THEN + Dq (15 DOWNTO 8) <= TRANSPORT (OTHERS => 'Z') AFTER tAC; + Dq (7 DOWNTO 0) <= TRANSPORT TO_STDLOGICVECTOR (Dq_temp (7 DOWNTO 0)) AFTER tAC; + END IF; + END IF; + ELSE + Dq <= TRANSPORT (OTHERS => 'Z') AFTER tHZ; + END IF; + Burst_decode; + END IF; + ELSIF Sys_clk'event AND Sys_clk = '1' AND Load = '1' AND Dump = '0' THEN --' + Operation <= LOAD_FILE; + load := '0'; +-- ASSERT (FALSE) REPORT "Reading memory array from file. This operation may take several minutes. Please wait..." +-- SEVERITY NOTE; + WHILE NOT endfile(file_load) LOOP + readline(file_load, l); + read(l, ch); + if (ch /= 'S') or (ch /= 's') then + hexread(l, rectype); + hexread(l, reclen); + recaddr := (others => '0'); + case rectype is + when "0001" => + hexread(l, recaddr(15 downto 0)); + when "0010" => + hexread(l, recaddr(23 downto 0)); + when "0011" => + hexread(l, recaddr); + recaddr(31 downto 24) := (others => '0'); + when others => next; + end case; + if true then + hexread(l, recdata); + Bank_Load := recaddr(25 downto 24); + Rows_Load := recaddr(23 downto 11); + Cols_Load := recaddr(10 downto 2); + Init_Mem (Bank_Load, To_Integer(Rows_Load)); + + IF Bank_Load = "00" THEN + for i in 0 to 3 loop + Bank0 (To_Integer(Rows_Load)) (To_Integer(Cols_Load)+i) := ('1' & recdata(i*32+index to i*32+index+15)); + end loop; + ELSIF Bank_Load = "01" THEN + for i in 0 to 3 loop + Bank1 (To_Integer(Rows_Load)) (To_Integer(Cols_Load)+i) := ('1' & recdata(i*32+index to i*32+index+15)); + end loop; + ELSIF Bank_Load = "10" THEN + for i in 0 to 3 loop + Bank2 (To_Integer(Rows_Load)) (To_Integer(Cols_Load)+i) := ('1' & recdata(i*32+index to i*32+index+15)); + end loop; + ELSIF Bank_Load = "11" THEN + for i in 0 to 3 loop + Bank3 (To_Integer(Rows_Load)) (To_Integer(Cols_Load)+i) := ('1' & recdata(i*32+index to i*32+index+15)); + end loop; + END IF; + + END IF; + END IF; + END LOOP; + ELSIF Sys_clk'event AND Sys_clk = '1' AND Load = '0' AND Dump = '1' THEN --' + Operation <= DUMP_FILE; + ASSERT (FALSE) REPORT "Writing memory array to file. This operation may take several minutes. Please wait..." + SEVERITY NOTE; + WRITE (l, string'("# Micron Technology, Inc. (FILE DUMP / MEMORY DUMP)")); --' + WRITELINE (file_dump, l); + WRITE (l, string'("# BA ROWS COLS DQ")); --' + WRITELINE (file_dump, l); + WRITE (l, string'("# -- ------------- --------- ----------------")); --' + WRITELINE (file_dump, l); + -- Dumping Bank 0 + FOR i IN 0 TO 2**addr_bits -1 LOOP + -- Check if ROW is NULL + IF Bank0 (i) /= NULL THEN + For j IN 0 TO 2**col_bits - 1 LOOP + -- Check if COL is NULL + NEXT WHEN Bank0 (i) (j) (data_bits) = '0'; + WRITE (l, string'("00"), right, 4); --' + WRITE (l, To_BitVector(Conv_Std_Logic_Vector(i, addr_bits)), right, addr_bits+1); + WRITE (l, To_BitVector(Conv_std_Logic_Vector(j, col_bits)), right, col_bits+1); + WRITE (l, Bank0 (i) (j) (data_bits -1 DOWNTO 0), right, data_bits+1); + WRITELINE (file_dump, l); + END LOOP; + END IF; + END LOOP; + -- Dumping Bank 1 + FOR i IN 0 TO 2**addr_bits -1 LOOP + -- Check if ROW is NULL + IF Bank1 (i) /= NULL THEN + For j IN 0 TO 2**col_bits - 1 LOOP + -- Check if COL is NULL + NEXT WHEN Bank1 (i) (j) (data_bits) = '0'; + WRITE (l, string'("01"), right, 4); --' + WRITE (l, To_BitVector(Conv_Std_Logic_Vector(i, addr_bits)), right, addr_bits+1); + WRITE (l, To_BitVector(Conv_std_Logic_Vector(j, col_bits)), right, col_bits+1); + WRITE (l, Bank1 (i) (j) (data_bits -1 DOWNTO 0), right, data_bits+1); + WRITELINE (file_dump, l); + END LOOP; + END IF; + END LOOP; + -- Dumping Bank 2 + FOR i IN 0 TO 2**addr_bits -1 LOOP + -- Check if ROW is NULL + IF Bank2 (i) /= NULL THEN + For j IN 0 TO 2**col_bits - 1 LOOP + -- Check if COL is NULL + NEXT WHEN Bank2 (i) (j) (data_bits) = '0'; + WRITE (l, string'("10"), right, 4); --' + WRITE (l, To_BitVector(Conv_Std_Logic_Vector(i, addr_bits)), right, addr_bits+1); + WRITE (l, To_BitVector(Conv_std_Logic_Vector(j, col_bits)), right, col_bits+1); + WRITE (l, Bank2 (i) (j) (data_bits -1 DOWNTO 0), right, data_bits+1); + WRITELINE (file_dump, l); + END LOOP; + END IF; + END LOOP; + -- Dumping Bank 3 + FOR i IN 0 TO 2**addr_bits -1 LOOP + -- Check if ROW is NULL + IF Bank3 (i) /= NULL THEN + For j IN 0 TO 2**col_bits - 1 LOOP + -- Check if COL is NULL + NEXT WHEN Bank3 (i) (j) (data_bits) = '0'; + WRITE (l, string'("11"), right, 4); --' + WRITE (l, To_BitVector(Conv_Std_Logic_Vector(i, addr_bits)), right, addr_bits+1); + WRITE (l, To_BitVector(Conv_std_Logic_Vector(j, col_bits)), right, col_bits+1); + WRITE (l, Bank3 (i) (j) (data_bits -1 DOWNTO 0), right, data_bits+1); + WRITELINE (file_dump, l); + END LOOP; + END IF; + END LOOP; + END IF; + + -- Write with AutoPrecharge Calculation + -- The device start internal precharge when: + -- 1. tWR cycles after command + -- and 2. Meet tRAS requirement + -- or 3. Interrupt by a Read or Write (with or without Auto Precharge) + IF ((Auto_precharge(0) = '1') AND (Write_precharge(0) = '1')) THEN + IF (((NOW - RAS_chk0 >= tRAS) AND + (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(0) >= 1 AND NOW - Count_time(0) >= tWRa) OR + (Burst_length_2 = '1' AND Count_precharge(0) >= 2 AND NOW - Count_time(0) >= tWRa) OR + (Burst_length_4 = '1' AND Count_precharge(0) >= 4 AND NOW - Count_time(0) >= tWRa) OR + (Burst_length_8 = '1' AND Count_precharge(0) >= 8 AND NOW - Count_time(0) >= tWRa))) OR + (RW_interrupt_write(0) = '1' AND WR_counter(0) >= 1 AND NOW - WR_time(0) >= tWRa)) THEN + Auto_precharge(0) := '0'; + Write_precharge(0) := '0'; + RW_interrupt_write(0) := '0'; + Pc_b0 := '1'; + Act_b0 := '0'; + RP_chk0 := NOW; + ASSERT FALSE REPORT "Start Internal Precharge Bank 0" SEVERITY NOTE; + END IF; + END IF; + IF ((Auto_precharge(1) = '1') AND (Write_precharge(1) = '1')) THEN + IF (((NOW - RAS_chk1 >= tRAS) AND + (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(1) >= 1 AND NOW - Count_time(1) >= tWRa) OR + (Burst_length_2 = '1' AND Count_precharge(1) >= 2 AND NOW - Count_time(1) >= tWRa) OR + (Burst_length_4 = '1' AND Count_precharge(1) >= 4 AND NOW - Count_time(1) >= tWRa) OR + (Burst_length_8 = '1' AND Count_precharge(1) >= 8 AND NOW - Count_time(1) >= tWRa))) OR + (RW_interrupt_write(1) = '1' AND WR_counter(1) >= 1 AND NOW - WR_time(1) >= tWRa)) THEN + Auto_precharge(1) := '0'; + Write_precharge(1) := '0'; + RW_interrupt_write(1) := '0'; + Pc_b1 := '1'; + Act_b1 := '0'; + RP_chk1 := NOW; + END IF; + END IF; + IF ((Auto_precharge(2) = '1') AND (Write_precharge(2) = '1')) THEN + IF (((NOW - RAS_chk2 >= tRAS) AND + (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(2) >= 1 AND NOW - Count_time(2) >= tWRa) OR + (Burst_length_2 = '1' AND Count_precharge(2) >= 2 AND NOW - Count_time(2) >= tWRa) OR + (Burst_length_4 = '1' AND Count_precharge(2) >= 4 AND NOW - Count_time(2) >= tWRa) OR + (Burst_length_8 = '1' AND Count_precharge(2) >= 8 AND NOW - Count_time(2) >= tWRa))) OR + (RW_interrupt_write(2) = '1' AND WR_counter(2) >= 1 AND NOW - WR_time(2) >= tWRa)) THEN + Auto_precharge(2) := '0'; + Write_precharge(2) := '0'; + RW_interrupt_write(2) := '0'; + Pc_b2 := '1'; + Act_b2 := '0'; + RP_chk2 := NOW; + END IF; + END IF; + IF ((Auto_precharge(3) = '1') AND (Write_precharge(3) = '1')) THEN + IF (((NOW - RAS_chk3 >= tRAS) AND + (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(3) >= 1 AND NOW - Count_time(3) >= tWRa) OR + (Burst_length_2 = '1' AND Count_precharge(3) >= 2 AND NOW - Count_time(3) >= tWRa) OR + (Burst_length_4 = '1' AND Count_precharge(3) >= 4 AND NOW - Count_time(3) >= tWRa) OR + (Burst_length_8 = '1' AND Count_precharge(3) >= 8 AND NOW - Count_time(3) >= tWRa))) OR + (RW_interrupt_write(0) = '1' AND WR_counter(0) >= 1 AND NOW - WR_time(3) >= tWRa)) THEN + Auto_precharge(3) := '0'; + Write_precharge(3) := '0'; + RW_interrupt_write(3) := '0'; + Pc_b3 := '1'; + Act_b3 := '0'; + RP_chk3 := NOW; + END IF; + END IF; + + -- Checking internal wires (Optional for debug purpose) + Pre_chk (0) <= Pc_b0; + Pre_chk (1) <= Pc_b1; + Pre_chk (2) <= Pc_b2; + Pre_chk (3) <= Pc_b3; + Act_chk (0) <= Act_b0; + Act_chk (1) <= Act_b1; + Act_chk (2) <= Act_b2; + Act_chk (3) <= Act_b3; + Dq_in_chk <= Data_in_enable; + Dq_out_chk <= Data_out_enable; + Bank_chk <= Bank; + Row_chk <= Row; + Col_chk <= Col; + END PROCESS; + + + -- Clock timing checks +-- Clock_check : PROCESS +-- VARIABLE Clk_low, Clk_high : TIME := 0 ns; +-- BEGIN +-- WAIT ON Clk; +-- IF (Clk = '1' AND NOW >= 10 ns) THEN +-- ASSERT (NOW - Clk_low >= tCL) +-- REPORT "tCL violation" +-- SEVERITY WARNING; +-- ASSERT (NOW - Clk_high >= tCK) +-- REPORT "tCK violation" +-- SEVERITY WARNING; +-- Clk_high := NOW; +-- ELSIF (Clk = '0' AND NOW /= 0 ns) THEN +-- ASSERT (NOW - Clk_high >= tCH) +-- REPORT "tCH violation" +-- SEVERITY WARNING; +-- Clk_low := NOW; +-- END IF; +-- END PROCESS; + + -- Setup timing checks + Setup_check : PROCESS + BEGIN + wait; + WAIT ON Clk; + IF Clk = '1' THEN + ASSERT(Cke'LAST_EVENT >= tCKS) --' + REPORT "CKE Setup time violation -- tCKS" + SEVERITY WARNING; + ASSERT(Cs_n'LAST_EVENT >= tCMS) --' + REPORT "CS# Setup time violation -- tCMS" + SEVERITY WARNING; + ASSERT(Cas_n'LAST_EVENT >= tCMS) --' + REPORT "CAS# Setup time violation -- tCMS" + SEVERITY WARNING; + ASSERT(Ras_n'LAST_EVENT >= tCMS) --' + REPORT "RAS# Setup time violation -- tCMS" + SEVERITY WARNING; + ASSERT(We_n'LAST_EVENT >= tCMS) --' + REPORT "WE# Setup time violation -- tCMS" + SEVERITY WARNING; + ASSERT(Dqm'LAST_EVENT >= tCMS) --' + REPORT "Dqm Setup time violation -- tCMS" + SEVERITY WARNING; + ASSERT(Addr'LAST_EVENT >= tAS) --' + REPORT "ADDR Setup time violation -- tAS" + SEVERITY WARNING; + ASSERT(Ba'LAST_EVENT >= tAS) --' + REPORT "BA Setup time violation -- tAS" + SEVERITY WARNING; + ASSERT(Dq'LAST_EVENT >= tDS) --' + REPORT "Dq Setup time violation -- tDS" + SEVERITY WARNING; + END IF; + END PROCESS; + + -- Hold timing checks + Hold_check : PROCESS + BEGIN + wait; + WAIT ON Clk'DELAYED (tCKH), Clk'DELAYED (tCMH), Clk'DELAYED (tAH), Clk'DELAYED (tDH); + IF Clk'DELAYED (tCKH) = '1' THEN --' + ASSERT(Cke'LAST_EVENT > tCKH) --' + REPORT "CKE Hold time violation -- tCKH" + SEVERITY WARNING; + END IF; + IF Clk'DELAYED (tCMH) = '1' THEN --' + ASSERT(Cs_n'LAST_EVENT > tCMH) --' + REPORT "CS# Hold time violation -- tCMH" + SEVERITY WARNING; + ASSERT(Cas_n'LAST_EVENT > tCMH) --' + REPORT "CAS# Hold time violation -- tCMH" + SEVERITY WARNING; + ASSERT(Ras_n'LAST_EVENT > tCMH) --' + REPORT "RAS# Hold time violation -- tCMH" + SEVERITY WARNING; + ASSERT(We_n'LAST_EVENT > tCMH) --' + REPORT "WE# Hold time violation -- tCMH" + SEVERITY WARNING; + ASSERT(Dqm'LAST_EVENT > tCMH) --' + REPORT "Dqm Hold time violation -- tCMH" + SEVERITY WARNING; + END IF; + IF Clk'DELAYED (tAH) = '1' THEN --' + ASSERT(Addr'LAST_EVENT > tAH) --' + REPORT "ADDR Hold time violation -- tAH" + SEVERITY WARNING; + ASSERT(Ba'LAST_EVENT > tAH) --' + REPORT "BA Hold time violation -- tAH" + SEVERITY WARNING; + END IF; + IF Clk'DELAYED (tDH) = '1' THEN --' + ASSERT(Dq'LAST_EVENT > tDH) --' + REPORT "Dq Hold time violation -- tDH" + SEVERITY WARNING; + END IF; + END PROCESS; + +END ARCHITECTURE sim; + diff --git a/Libs/Memory_test/hds/.hdlsidedata/_Flash_behav.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_Flash_behav.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_Flash_behav.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_bram_tester_test.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_bram_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_bram_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_fifo_tester_test.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_fifo_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_fifo_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_flashController_tester_test.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_flashController_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_flashController_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_flash_tester_test.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_flash_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_flash_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg.vhd._fpf new file mode 100644 index 0000000..5732f99 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_93 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg_body.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg_body.vhd._fpf new file mode 100644 index 0000000..5732f99 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_mti_pkg_pkg_body.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_93 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_sdramController_tester_test.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_sdramController_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_sdramController_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/.hdlsidedata/_sdram_mt48lc16m16a2_sim.vhd._fpf b/Libs/Memory_test/hds/.hdlsidedata/_sdram_mt48lc16m16a2_sim.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/Memory_test/hds/.hdlsidedata/_sdram_mt48lc16m16a2_sim.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/Memory_test/hds/_bram_tb._epf b/Libs/Memory_test/hds/_bram_tb._epf new file mode 100644 index 0000000..174551f --- /dev/null +++ b/Libs/Memory_test/hds/_bram_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom bram_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory_test/hds/_bram_tester._epf b/Libs/Memory_test/hds/_bram_tester._epf new file mode 100644 index 0000000..559360f --- /dev/null +++ b/Libs/Memory_test/hds/_bram_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom bram_tester_test.vhd diff --git a/Libs/Memory_test/hds/_fifo_tb._epf b/Libs/Memory_test/hds/_fifo_tb._epf new file mode 100644 index 0000000..1b086f1 --- /dev/null +++ b/Libs/Memory_test/hds/_fifo_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom fifo_tb/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/Memory_test/hds/_flash_28f128j3a._epf b/Libs/Memory_test/hds/_flash_28f128j3a._epf new file mode 100644 index 0000000..ef7aef2 --- /dev/null +++ b/Libs/Memory_test/hds/_flash_28f128j3a._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom Flash_behav.vhd +DEFAULT_ARCHITECTURE atom behav diff --git a/Libs/Memory_test/hds/_flash_tb._epf b/Libs/Memory_test/hds/_flash_tb._epf new file mode 100644 index 0000000..99c6d2b --- /dev/null +++ b/Libs/Memory_test/hds/_flash_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom flash_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory_test/hds/_flash_tester._epf b/Libs/Memory_test/hds/_flash_tester._epf new file mode 100644 index 0000000..a7aa7e2 --- /dev/null +++ b/Libs/Memory_test/hds/_flash_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom flash_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/Memory_test/hds/_flashcontroller_tb._epf b/Libs/Memory_test/hds/_flashcontroller_tb._epf new file mode 100644 index 0000000..3f59750 --- /dev/null +++ b/Libs/Memory_test/hds/_flashcontroller_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom flash@controller_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory_test/hds/_flashcontroller_tester._epf b/Libs/Memory_test/hds/_flashcontroller_tester._epf new file mode 100644 index 0000000..d81ef79 --- /dev/null +++ b/Libs/Memory_test/hds/_flashcontroller_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom flashController_tester_test.vhd diff --git a/Libs/Memory_test/hds/_sdramcontroller_tb._epf b/Libs/Memory_test/hds/_sdramcontroller_tb._epf new file mode 100644 index 0000000..318858b --- /dev/null +++ b/Libs/Memory_test/hds/_sdramcontroller_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom sdram@controller_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/Memory_test/hds/_sdramcontroller_tester._epf b/Libs/Memory_test/hds/_sdramcontroller_tester._epf new file mode 100644 index 0000000..cd1908b --- /dev/null +++ b/Libs/Memory_test/hds/_sdramcontroller_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom sdramController_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/Memory_test/hds/bram_tb/struct.bd b/Libs/Memory_test/hds/bram_tb/struct.bd new file mode 100644 index 0000000..cc5de3c --- /dev/null +++ b/Libs/Memory_test/hds/bram_tb/struct.bd @@ -0,0 +1,3661 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I1" +duLibraryName "memory_test" +duName "bram_tester" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I0" +duLibraryName "memory" +duName "bramDualportWritefirst" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "initFile" +type "string" +value "\"U:/ELN_board/Simulation/bramInit.txt\"" +) +] +mwi 0 +uid 5605,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "bram_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "bram_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "bram_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,77000,91000,79000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,77500,87800,78500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,77000,66000,79000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "47750,77350,58250,78650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,83000,66000,85000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,83500,61400,84500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,77000,72000,79000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,77500,71000,78500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,79000,66000,81000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,79500,61400,80500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,79000,45000,81000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,79500,43800,80500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,81000,45000,83000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,81500,43200,82500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,79000,91000,85000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,79200,79400,80200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,81000,66000,83000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,81500,61400,82500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,83000,45000,85000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,83500,44400,84500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "40000,77000,91000,85000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "11000,58000,71000,66000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "courier,12,1" +) +xt "11600,65900,22200,67300" +st "memory_test" +blo "11600,67100" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "courier,12,1" +) +xt "11600,67300,21600,68700" +st "bram_tester" +blo "11600,68500" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "courier,12,1" +) +xt "11600,68700,14000,70100" +st "I1" +blo "11600,69900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "courier,9,0" +) +xt "11000,70800,34000,72600" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +) +*16 (Net +uid 5380,0 +lang 11 +decl (Decl +n "clockA" +t "std_ulogic" +o 3 +suid 55,0 +) +declText (MLText +uid 5381,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14500,900" +st "SIGNAL clockA : std_ulogic +" +) +) +*17 (Net +uid 5388,0 +lang 11 +decl (Decl +n "enA" +t "std_ulogic" +o 9 +suid 56,0 +) +declText (MLText +uid 5389,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14500,900" +st "SIGNAL enA : std_ulogic +" +) +) +*18 (Net +uid 5396,0 +lang 11 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 11 +suid 57,0 +) +declText (MLText +uid 5397,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14500,900" +st "SIGNAL writeEnA : std_ulogic +" +) +) +*19 (Net +uid 5440,0 +lang 11 +decl (Decl +n "clockB" +t "std_ulogic" +o 4 +suid 61,0 +) +declText (MLText +uid 5441,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14500,900" +st "SIGNAL clockB : std_ulogic +" +) +) +*20 (Net +uid 5448,0 +lang 11 +decl (Decl +n "enB" +t "std_ulogic" +o 10 +suid 62,0 +) +declText (MLText +uid 5449,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14500,900" +st "SIGNAL enB : std_ulogic +" +) +) +*21 (Net +uid 5456,0 +lang 11 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 12 +suid 63,0 +) +declText (MLText +uid 5457,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14500,900" +st "SIGNAL writeEnB : std_ulogic +" +) +) +*22 (SaComponent +uid 5605,0 +optionalChildren [ +*23 (CptPort +uid 5557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,47625,33000,48375" +) +tg (CPTG +uid 5559,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5560,0 +va (VaSet +) +xt "34000,47500,36600,48500" +st "clockA" +blo "34000,48300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "clockA" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*24 (CptPort +uid 5561,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5562,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,45625,33000,46375" +) +tg (CPTG +uid 5563,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5564,0 +va (VaSet +) +xt "34000,45500,35700,46500" +st "enA" +blo "34000,46300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "enA" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*25 (CptPort +uid 5565,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5566,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,41625,33000,42375" +) +tg (CPTG +uid 5567,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5568,0 +va (VaSet +) +xt "34000,41500,37400,42500" +st "writeEnA" +blo "34000,42300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*26 (CptPort +uid 5569,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5570,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,35625,33000,36375" +) +tg (CPTG +uid 5571,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5572,0 +va (VaSet +) +xt "34000,35500,37600,36500" +st "addressA" +blo "34000,36300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*27 (CptPort +uid 5573,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5574,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,39625,33000,40375" +) +tg (CPTG +uid 5575,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5576,0 +va (VaSet +) +xt "34000,39500,36900,40500" +st "dataInA" +blo "34000,40300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*28 (CptPort +uid 5577,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5578,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32250,37625,33000,38375" +) +tg (CPTG +uid 5579,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5580,0 +va (VaSet +) +xt "34000,37500,37500,38500" +st "dataOutA" +blo "34000,38300" +) +) +thePort (LogicalPort +lang 10 +m 1 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +*29 (CptPort +uid 5581,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5582,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,47625,49750,48375" +) +tg (CPTG +uid 5583,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5584,0 +va (VaSet +) +xt "45400,47500,48000,48500" +st "clockB" +ju 2 +blo "48000,48300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "clockB" +t "std_ulogic" +o 7 +suid 8,0 +) +) +) +*30 (CptPort +uid 5585,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5586,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,45625,49750,46375" +) +tg (CPTG +uid 5587,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5588,0 +va (VaSet +) +xt "46300,45500,48000,46500" +st "enB" +ju 2 +blo "48000,46300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "enB" +t "std_ulogic" +o 8 +suid 10,0 +) +) +) +*31 (CptPort +uid 5589,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5590,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,41625,49750,42375" +) +tg (CPTG +uid 5591,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5592,0 +va (VaSet +) +xt "44600,41500,48000,42500" +st "writeEnB" +ju 2 +blo "48000,42300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 9 +suid 11,0 +) +) +) +*32 (CptPort +uid 5593,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5594,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,35625,49750,36375" +) +tg (CPTG +uid 5595,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5596,0 +va (VaSet +) +xt "44400,35500,48000,36500" +st "addressB" +ju 2 +blo "48000,36300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 12,0 +) +) +) +*33 (CptPort +uid 5597,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5598,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,39625,49750,40375" +) +tg (CPTG +uid 5599,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5600,0 +va (VaSet +) +xt "45100,39500,48000,40500" +st "dataInB" +ju 2 +blo "48000,40300" +) +) +thePort (LogicalPort +lang 10 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 13,0 +) +) +) +*34 (CptPort +uid 5601,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5602,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49000,37625,49750,38375" +) +tg (CPTG +uid 5603,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5604,0 +va (VaSet +) +xt "44500,37500,48000,38500" +st "dataOutB" +ju 2 +blo "48000,38300" +) +) +thePort (LogicalPort +lang 10 +m 1 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 5606,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "33000,32000,49000,50000" +) +oxt "39000,11000,55000,29000" +ttg (MlTextGroup +uid 5607,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 5608,0 +va (VaSet +font "courier,8,1" +) +xt "33200,50000,36500,51000" +st "memory" +blo "33200,50800" +tm "BdLibraryNameMgr" +) +*36 (Text +uid 5609,0 +va (VaSet +font "courier,8,1" +) +xt "33200,51000,43200,52000" +st "bramDualportWritefirst" +blo "33200,51800" +tm "CptNameMgr" +) +*37 (Text +uid 5610,0 +va (VaSet +font "courier,8,1" +) +xt "33200,52000,34200,53000" +st "I0" +blo "33200,52800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5611,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5612,0 +text (MLText +uid 5613,0 +va (VaSet +font "courier,8,0" +) +xt "33000,53000,69000,55700" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) +initFile = \"U:/ELN_board/Simulation/bramInit.txt\" ( string ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "initFile" +type "string" +value "\"U:/ELN_board/Simulation/bramInit.txt\"" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*38 (Net +uid 5614,0 +lang 11 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 67,0 +) +declText (MLText +uid 5615,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,29000,900" +st "SIGNAL dataInB : std_ulogic_vector(dataBitNb-1 DOWNTO 0) +" +) +) +*39 (Net +uid 5622,0 +lang 11 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 68,0 +) +declText (MLText +uid 5623,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,29000,900" +st "SIGNAL dataOutB : std_ulogic_vector(dataBitNb-1 DOWNTO 0) +" +) +) +*40 (Net +uid 5630,0 +lang 11 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 69,0 +) +declText (MLText +uid 5631,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,30500,900" +st "SIGNAL addressB : std_ulogic_vector(addressBitNb-1 DOWNTO 0) +" +) +) +*41 (Net +uid 5638,0 +lang 11 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 70,0 +) +declText (MLText +uid 5639,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,29000,900" +st "SIGNAL dataInA : std_ulogic_vector(dataBitNb-1 DOWNTO 0) +" +) +) +*42 (Net +uid 5646,0 +lang 11 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 7 +suid 71,0 +) +declText (MLText +uid 5647,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,29000,900" +st "SIGNAL dataOutA : std_ulogic_vector(dataBitNb-1 DOWNTO 0) +" +) +) +*43 (Net +uid 5654,0 +lang 11 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 72,0 +) +declText (MLText +uid 5655,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,30500,900" +st "SIGNAL addressA : std_ulogic_vector(addressBitNb-1 DOWNTO 0) +" +) +) +*44 (Wire +uid 5382,0 +shape (OrthoPolyLine +uid 5383,0 +va (VaSet +vasetType 3 +) +xt "31000,48000,32250,58000" +pts [ +"32250,48000" +"31000,48000" +"31000,58000" +] +) +start &23 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5386,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5387,0 +va (VaSet +font "courier,12,0" +) +xt "26250,46600,30450,47900" +st "clockA" +blo "26250,47600" +tm "WireNameMgr" +) +) +on &16 +) +*45 (Wire +uid 5390,0 +shape (OrthoPolyLine +uid 5391,0 +va (VaSet +vasetType 3 +) +xt "29000,46000,32250,58000" +pts [ +"32250,46000" +"29000,46000" +"29000,58000" +] +) +start &24 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5394,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5395,0 +va (VaSet +font "courier,12,0" +) +xt "28250,44600,30350,45900" +st "enA" +blo "28250,45600" +tm "WireNameMgr" +) +) +on &17 +) +*46 (Wire +uid 5398,0 +shape (OrthoPolyLine +uid 5399,0 +va (VaSet +vasetType 3 +) +xt "25000,42000,32250,58000" +pts [ +"32250,42000" +"25000,42000" +"25000,58000" +] +) +start &25 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5403,0 +va (VaSet +font "courier,12,0" +) +xt "25250,40600,30850,41900" +st "writeEnA" +blo "25250,41600" +tm "WireNameMgr" +) +) +on &18 +) +*47 (Wire +uid 5442,0 +shape (OrthoPolyLine +uid 5443,0 +va (VaSet +vasetType 3 +) +xt "49750,48000,51000,58000" +pts [ +"49750,48000" +"51000,48000" +"51000,58000" +] +) +start &29 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5446,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5447,0 +va (VaSet +font "courier,12,0" +) +xt "51750,46600,55950,47900" +st "clockB" +blo "51750,47600" +tm "WireNameMgr" +) +) +on &19 +) +*48 (Wire +uid 5450,0 +shape (OrthoPolyLine +uid 5451,0 +va (VaSet +vasetType 3 +) +xt "49750,46000,53000,58000" +pts [ +"49750,46000" +"53000,46000" +"53000,58000" +] +) +start &30 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5454,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5455,0 +va (VaSet +font "courier,12,0" +) +xt "51750,44600,53850,45900" +st "enB" +blo "51750,45600" +tm "WireNameMgr" +) +) +on &20 +) +*49 (Wire +uid 5458,0 +shape (OrthoPolyLine +uid 5459,0 +va (VaSet +vasetType 3 +) +xt "49750,42000,57000,58000" +pts [ +"49750,42000" +"57000,42000" +"57000,58000" +] +) +start &31 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5462,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5463,0 +va (VaSet +font "courier,12,0" +) +xt "51750,40600,57350,41900" +st "writeEnB" +blo "51750,41600" +tm "WireNameMgr" +) +) +on &21 +) +*50 (Wire +uid 5616,0 +shape (OrthoPolyLine +uid 5617,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49750,40000,59000,58000" +pts [ +"49750,40000" +"59000,40000" +"59000,58000" +] +) +start &33 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5620,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5621,0 +va (VaSet +font "courier,12,0" +) +xt "51750,38600,56650,39900" +st "dataInB" +blo "51750,39600" +tm "WireNameMgr" +) +) +on &38 +) +*51 (Wire +uid 5624,0 +shape (OrthoPolyLine +uid 5625,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49750,38000,61000,58000" +pts [ +"49750,38000" +"61000,38000" +"61000,58000" +] +) +start &34 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5628,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5629,0 +va (VaSet +font "courier,12,0" +) +xt "51750,36600,57350,37900" +st "dataOutB" +blo "51750,37600" +tm "WireNameMgr" +) +) +on &39 +) +*52 (Wire +uid 5632,0 +shape (OrthoPolyLine +uid 5633,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49750,36000,63000,58000" +pts [ +"49750,36000" +"63000,36000" +"63000,58000" +] +) +start &32 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5636,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5637,0 +va (VaSet +font "courier,12,0" +) +xt "51750,34600,57350,35900" +st "addressB" +blo "51750,35600" +tm "WireNameMgr" +) +) +on &40 +) +*53 (Wire +uid 5640,0 +shape (OrthoPolyLine +uid 5641,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23000,40000,32250,58000" +pts [ +"32250,40000" +"23000,40000" +"23000,58000" +] +) +start &27 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5644,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5645,0 +va (VaSet +font "courier,12,0" +) +xt "25250,38600,30150,39900" +st "dataInA" +blo "25250,39600" +tm "WireNameMgr" +) +) +on &41 +) +*54 (Wire +uid 5648,0 +shape (OrthoPolyLine +uid 5649,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "21000,38000,32250,58000" +pts [ +"32250,38000" +"21000,38000" +"21000,58000" +] +) +start &28 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5652,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5653,0 +va (VaSet +font "courier,12,0" +) +xt "24250,36600,29850,37900" +st "dataOutA" +blo "24250,37600" +tm "WireNameMgr" +) +) +on &42 +) +*55 (Wire +uid 5656,0 +shape (OrthoPolyLine +uid 5657,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,36000,32250,58000" +pts [ +"32250,36000" +"19000,36000" +"19000,58000" +] +) +start &26 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 5660,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5661,0 +va (VaSet +font "courier,12,0" +) +xt "24250,34600,29850,35900" +st "addressA" +blo "24250,35600" +tm "WireNameMgr" +) +) +on &43 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *56 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 1297,0 +va (VaSet +font "courier,12,0" +) +xt "-7000,19600,2500,21000" +st "Package List" +blo "-7000,20800" +) +*58 (MLText +uid 1298,0 +va (VaSet +) +xt "-7000,21000,11600,24000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*60 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*61 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*62 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*63 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*64 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*65 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "7,31,1392,967" +viewArea "-8439,18143,93001,87220" +cachedDiagramExtent "-7000,0,91000,85000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +scale 75 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 5767,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*67 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*68 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*70 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*71 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*73 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*74 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*76 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*77 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*79 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*80 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*82 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,1400,2700" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,12,0" +) +xt "0,0,6300,1300" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,12600,2700" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,17400,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*84 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,10800,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*86 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,25800,1600,27000" +st "Declarations" +blo "-7000,26800" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27000,-2800,28200" +st "Ports:" +blo "-7000,28000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,27000,-1000,28200" +st "Pre User:" +blo "-7000,28000" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,28200,19000,30200" +st "constant addressBitNb : positive := 12; +constant dataBitNb : positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27000,4000,28200" +st "Diagram Signals:" +blo "-7000,28000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27000,300,28200" +st "Post User:" +blo "-7000,28000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-5000,41400,-5000,41400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 72,0 +usingSuid 1 +emptyRow *87 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*88 (RefLabelRowHdr +) +*89 (TitleRowHdr +) +*90 (FilterRowHdr +) +*91 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*92 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*93 (GroupColHdr +tm "GroupColHdrMgr" +) +*94 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*95 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*96 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*97 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*98 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*99 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*100 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "clockA" +t "std_ulogic" +o 3 +suid 55,0 +) +) +uid 5428,0 +) +*101 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "enA" +t "std_ulogic" +o 9 +suid 56,0 +) +) +uid 5430,0 +) +*102 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 11 +suid 57,0 +) +) +uid 5432,0 +) +*103 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "clockB" +t "std_ulogic" +o 4 +suid 61,0 +) +) +uid 5488,0 +) +*104 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "enB" +t "std_ulogic" +o 10 +suid 62,0 +) +) +uid 5490,0 +) +*105 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 12 +suid 63,0 +) +) +uid 5492,0 +) +*106 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 67,0 +) +) +uid 5662,0 +) +*107 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 68,0 +) +) +uid 5664,0 +) +*108 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 69,0 +) +) +uid 5666,0 +) +*109 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 70,0 +) +) +uid 5668,0 +) +*110 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 7 +suid 71,0 +) +) +uid 5670,0 +) +*111 (LeafLogPort +port (LogicalPort +lang 10 +m 4 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 72,0 +) +) +uid 5672,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*112 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *113 (MRCItem +litem &87 +pos 12 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*114 (MRCItem +litem &88 +pos 0 +dimension 20 +uid 3326,0 +) +*115 (MRCItem +litem &89 +pos 1 +dimension 23 +uid 3327,0 +) +*116 (MRCItem +litem &90 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*117 (MRCItem +litem &100 +pos 0 +dimension 20 +uid 5429,0 +) +*118 (MRCItem +litem &101 +pos 1 +dimension 20 +uid 5431,0 +) +*119 (MRCItem +litem &102 +pos 2 +dimension 20 +uid 5433,0 +) +*120 (MRCItem +litem &103 +pos 3 +dimension 20 +uid 5489,0 +) +*121 (MRCItem +litem &104 +pos 4 +dimension 20 +uid 5491,0 +) +*122 (MRCItem +litem &105 +pos 5 +dimension 20 +uid 5493,0 +) +*123 (MRCItem +litem &106 +pos 6 +dimension 20 +uid 5663,0 +) +*124 (MRCItem +litem &107 +pos 7 +dimension 20 +uid 5665,0 +) +*125 (MRCItem +litem &108 +pos 8 +dimension 20 +uid 5667,0 +) +*126 (MRCItem +litem &109 +pos 9 +dimension 20 +uid 5669,0 +) +*127 (MRCItem +litem &110 +pos 10 +dimension 20 +uid 5671,0 +) +*128 (MRCItem +litem &111 +pos 11 +dimension 20 +uid 5673,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*129 (MRCItem +litem &91 +pos 0 +dimension 20 +uid 3330,0 +) +*130 (MRCItem +litem &93 +pos 1 +dimension 50 +uid 3331,0 +) +*131 (MRCItem +litem &94 +pos 2 +dimension 100 +uid 3332,0 +) +*132 (MRCItem +litem &95 +pos 3 +dimension 50 +uid 3333,0 +) +*133 (MRCItem +litem &96 +pos 4 +dimension 100 +uid 3334,0 +) +*134 (MRCItem +litem &97 +pos 5 +dimension 100 +uid 3335,0 +) +*135 (MRCItem +litem &98 +pos 6 +dimension 50 +uid 3336,0 +) +*136 (MRCItem +litem &99 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *137 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*138 (RefLabelRowHdr +) +*139 (TitleRowHdr +) +*140 (FilterRowHdr +) +*141 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*142 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*143 (GroupColHdr +tm "GroupColHdrMgr" +) +*144 (NameColHdr +tm "GenericNameColHdrMgr" +) +*145 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*146 (InitColHdr +tm "GenericValueColHdrMgr" +) +*147 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*148 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*149 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *150 (MRCItem +litem &137 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*151 (MRCItem +litem &138 +pos 0 +dimension 20 +uid 3354,0 +) +*152 (MRCItem +litem &139 +pos 1 +dimension 23 +uid 3355,0 +) +*153 (MRCItem +litem &140 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*154 (MRCItem +litem &141 +pos 0 +dimension 20 +uid 3358,0 +) +*155 (MRCItem +litem &143 +pos 1 +dimension 50 +uid 3359,0 +) +*156 (MRCItem +litem &144 +pos 2 +dimension 100 +uid 3360,0 +) +*157 (MRCItem +litem &145 +pos 3 +dimension 100 +uid 3361,0 +) +*158 (MRCItem +litem &146 +pos 4 +dimension 50 +uid 3362,0 +) +*159 (MRCItem +litem &147 +pos 5 +dimension 50 +uid 3363,0 +) +*160 (MRCItem +litem &148 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Memory_test/hds/bram_tb/symbol.sb b/Libs/Memory_test/hds/bram_tb/symbol.sb new file mode 100644 index 0000000..abf403b --- /dev/null +++ b/Libs/Memory_test/hds/bram_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "bram_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "bram_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "bram_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,37150,22900" +st "Memory_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,34150,23900" +st "bram_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,43400,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/Memory_test/hds/bram_tester/interface b/Libs/Memory_test/hds/bram_tester/interface new file mode 100644 index 0000000..a2dd414 --- /dev/null +++ b/Libs/Memory_test/hds/bram_tester/interface @@ -0,0 +1,2134 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 60,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 137,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 49,0 +) +) +uid 646,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 50,0 +) +) +uid 648,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clockA" +t "std_ulogic" +o 3 +suid 51,0 +) +) +uid 650,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clockB" +t "std_ulogic" +o 4 +suid 52,0 +) +) +uid 652,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 53,0 +) +) +uid 654,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 54,0 +) +) +uid 656,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 7 +suid 55,0 +) +) +uid 658,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 56,0 +) +) +uid 660,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "enA" +t "std_ulogic" +o 9 +suid 57,0 +) +) +uid 662,0 +) +*23 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "enB" +t "std_ulogic" +o 10 +suid 58,0 +) +) +uid 664,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 11 +suid 59,0 +) +) +uid 666,0 +) +*25 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 12 +suid 60,0 +) +) +uid 668,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 152,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 153,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 154,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 647,0 +) +*32 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 649,0 +) +*33 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 651,0 +) +*34 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 653,0 +) +*35 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 655,0 +) +*36 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 657,0 +) +*37 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 659,0 +) +*38 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 661,0 +) +*39 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 663,0 +) +*40 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 665,0 +) +*41 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 667,0 +) +*42 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 669,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 157,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 158,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 159,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 160,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 161,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 162,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 163,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 164,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 136,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 166,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 215,0 +) +*64 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 217,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 178,0 +optionalChildren [ +*65 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *66 (MRCItem +litem &51 +pos 2 +dimension 20 +) +uid 180,0 +optionalChildren [ +*67 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 181,0 +) +*68 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 182,0 +) +*69 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 183,0 +) +*70 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 216,0 +) +*71 (MRCItem +litem &64 +pos 1 +dimension 20 +uid 218,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 184,0 +optionalChildren [ +*72 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 185,0 +) +*73 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 186,0 +) +*74 (MRCItem +litem &58 +pos 2 +dimension 100 +uid 187,0 +) +*75 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 188,0 +) +*76 (MRCItem +litem &60 +pos 4 +dimension 50 +uid 189,0 +) +*77 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 190,0 +) +*78 (MRCItem +litem &62 +pos 6 +dimension 80 +uid 191,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 179,0 +vaOverrides [ +] +) +] +) +uid 165,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "bram_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "bram_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/bram_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "bram_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 135,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 586,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 587,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 588,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 589,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,11000" +st "addressA" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 590,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,76000,4700" +st "addressA : OUT std_ulogic_vector (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "addressA" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 49,0 +) +) +) +*81 (CptPort +uid 591,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 592,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66625,5250,67375,6000" +) +tg (CPTG +uid 593,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 594,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "66550,7000,67450,11000" +st "addressB" +ju 2 +blo "67250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 595,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,76000,5600" +st "addressB : OUT std_ulogic_vector (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "addressB" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +suid 50,0 +) +) +) +*82 (CptPort +uid 596,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 597,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 598,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 599,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "34550,7000,35450,10000" +st "clockA" +ju 2 +blo "35250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 600,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,60000,6500" +st "clockA : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clockA" +t "std_ulogic" +o 3 +suid 51,0 +) +) +) +*83 (CptPort +uid 601,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 602,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 603,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 604,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "54550,7000,55450,10000" +st "clockB" +ju 2 +blo "55250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 605,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,60000,7400" +st "clockB : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clockB" +t "std_ulogic" +o 4 +suid 52,0 +) +) +) +*84 (CptPort +uid 606,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 607,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 608,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 609,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,10500" +st "dataInA" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 610,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,74500,8300" +st "dataInA : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataInA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 53,0 +) +) +) +*85 (CptPort +uid 611,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 612,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62625,5250,63375,6000" +) +tg (CPTG +uid 613,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 614,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "62550,7000,63450,10500" +st "dataInB" +ju 2 +blo "63250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 615,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,74500,9200" +st "dataInB : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataInB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 54,0 +) +) +) +*86 (CptPort +uid 616,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 617,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 618,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 619,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,11000" +st "dataOutA" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 620,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,74500,2900" +st "dataOutA : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataOutA" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 7 +suid 55,0 +) +) +) +*87 (CptPort +uid 621,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 622,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64625,5250,65375,6000" +) +tg (CPTG +uid 623,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 624,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "64550,7000,65450,11000" +st "dataOutB" +ju 2 +blo "65250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 625,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,74500,3800" +st "dataOutB : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataOutB" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 56,0 +) +) +) +*88 (CptPort +uid 626,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 627,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 628,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 629,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "32550,7000,33450,8500" +st "enA" +ju 2 +blo "33250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 630,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9200,60000,10100" +st "enA : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "enA" +t "std_ulogic" +o 9 +suid 57,0 +) +) +) +*89 (CptPort +uid 631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 632,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 633,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 634,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "56550,7000,57450,8500" +st "enB" +ju 2 +blo "57250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 635,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,60000,11000" +st "enB : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "enB" +t "std_ulogic" +o 10 +suid 58,0 +) +) +) +*90 (CptPort +uid 636,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 637,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 638,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 639,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,11000" +st "writeEnA" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 640,0 +va (VaSet +font "courier,8,0" +) +xt "44000,11000,60000,11900" +st "writeEnA : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "writeEnA" +t "std_ulogic" +o 11 +suid 59,0 +) +) +) +*91 (CptPort +uid 641,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 642,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 643,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 644,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "60550,7000,61450,11000" +st "writeEnB" +ju 2 +blo "61250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 645,0 +va (VaSet +font "courier,8,0" +) +xt "44000,11900,59000,12800" +st "writeEnB : OUT std_ulogic +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "writeEnB" +t "std_ulogic" +o 12 +suid 60,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,75000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "42000,9100,48000,10000" +st "memory_test" +blo "42000,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "42000,10000,48000,10900" +st "bram_tester" +blo "42000,10700" +) +) +gi *92 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "21000,6000,34000,9600" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*93 (Grouping +uid 16,0 +optionalChildren [ +*94 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *104 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*105 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*106 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1016,690" +viewArea "-500,-500,71230,48820" +cachedDiagramExtent "0,0,77000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory_test" +entityName "bram_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *107 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *108 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,12800,44500,13700" +st "User:" +blo "42000,13500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,13700,44000,13700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 669,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory_test/hds/fifo_tb/struct.bd b/Libs/Memory_test/hds/fifo_tb/struct.bd new file mode 100644 index 0000000..f02d952 --- /dev/null +++ b/Libs/Memory_test/hds/fifo_tb/struct.bd @@ -0,0 +1,3219 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "Memory_test" +duName "fifo_tester" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I_DUT" +duLibraryName "Memory" +duName "FIFO" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "fifoDepth" +) +] +mwi 0 +uid 5921,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifo_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifo_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "fifo_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,77000,91000,79000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,77500,87800,78500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,77000,66000,79000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "47750,77350,58250,78650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,83000,66000,85000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,83500,61400,84500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,77000,72000,79000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,77500,71000,78500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,79000,66000,81000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,79500,61400,80500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,79000,45000,81000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,79500,43800,80500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,81000,45000,83000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,81500,43200,82500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,79000,91000,85000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,79200,79400,80200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,81000,66000,83000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,81500,61400,82500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,83000,45000,85000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,83500,44400,84500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "40000,77000,91000,85000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "15000,58000,67000,66000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +) +xt "15600,65900,23600,67100" +st "Memory_test" +blo "15600,66900" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +) +xt "15600,67100,22100,68300" +st "fifo_tester" +blo "15600,68100" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +) +xt "15600,68300,20400,69500" +st "I_tester" +blo "15600,69300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +) +xt "15000,70600,39000,72600" +st "dataBitNb = dataBitNb ( positive ) +fifoDepth = fifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +] +) +viewicon (ZoomableIcon +uid 5954,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "15250,64250,16750,65750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 5809,0 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 73,0 +) +declText (MLText +uid 5810,0 +va (VaSet +isHidden 1 +) +xt "0,0,16800,1000" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 5817,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 74,0 +) +declText (MLText +uid 5818,0 +va (VaSet +isHidden 1 +) +xt "0,0,16800,1000" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 5825,0 +decl (Decl +n "write" +t "std_ulogic" +o 8 +suid 75,0 +) +declText (MLText +uid 5826,0 +va (VaSet +isHidden 1 +) +xt "0,0,16800,1000" +st "SIGNAL write : std_ulogic" +) +) +*19 (Net +uid 5833,0 +decl (Decl +n "full" +t "std_ulogic" +o 5 +suid 76,0 +) +declText (MLText +uid 5834,0 +va (VaSet +isHidden 1 +) +xt "0,0,16800,1000" +st "SIGNAL full : std_ulogic" +) +) +*20 (Net +uid 5841,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 77,0 +) +declText (MLText +uid 5842,0 +va (VaSet +isHidden 1 +) +xt "0,0,34200,1000" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*21 (Net +uid 5849,0 +decl (Decl +n "read" +t "std_ulogic" +o 6 +suid 78,0 +) +declText (MLText +uid 5850,0 +va (VaSet +isHidden 1 +) +xt "0,0,16800,1000" +st "SIGNAL read : std_ulogic" +) +) +*22 (Net +uid 5857,0 +decl (Decl +n "empty" +t "std_ulogic" +o 4 +suid 79,0 +) +declText (MLText +uid 5858,0 +va (VaSet +isHidden 1 +) +xt "0,0,16800,1000" +st "SIGNAL empty : std_ulogic" +) +) +*23 (Net +uid 5865,0 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 80,0 +) +declText (MLText +uid 5866,0 +va (VaSet +isHidden 1 +) +xt "0,0,34200,1000" +st "SIGNAL dataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*24 (SaComponent +uid 5921,0 +optionalChildren [ +*25 (CptPort +uid 5889,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5890,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,41625,35000,42375" +) +tg (CPTG +uid 5891,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5892,0 +va (VaSet +) +xt "36000,41400,39100,42600" +st "write" +blo "36000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*26 (CptPort +uid 5893,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5894,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,45625,35000,46375" +) +tg (CPTG +uid 5895,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5896,0 +va (VaSet +) +xt "36000,45400,39400,46600" +st "clock" +blo "36000,46400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*27 (CptPort +uid 5897,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5898,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,47625,35000,48375" +) +tg (CPTG +uid 5899,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5900,0 +va (VaSet +) +xt "36000,47400,39300,48600" +st "reset" +blo "36000,48400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*28 (CptPort +uid 5901,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5902,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,37625,51750,38375" +) +tg (CPTG +uid 5903,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5904,0 +va (VaSet +) +xt "45201,37400,50001,38600" +st "dataOut" +ju 2 +blo "50001,38400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*29 (CptPort +uid 5905,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5906,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,41625,51750,42375" +) +tg (CPTG +uid 5907,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5908,0 +va (VaSet +) +xt "47100,41400,50000,42600" +st "read" +ju 2 +blo "50000,42400" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*30 (CptPort +uid 5909,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5910,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,37625,35000,38375" +) +tg (CPTG +uid 5911,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5912,0 +va (VaSet +) +xt "35999,37400,39999,38600" +st "dataIn" +blo "35999,38400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*31 (CptPort +uid 5913,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5914,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,39625,51750,40375" +) +tg (CPTG +uid 5915,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5916,0 +va (VaSet +) +xt "46200,39400,50000,40600" +st "empty" +ju 2 +blo "50000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*32 (CptPort +uid 5917,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5918,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,39625,35000,40375" +) +tg (CPTG +uid 5919,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5920,0 +va (VaSet +) +xt "36000,39400,38200,40600" +st "full" +blo "36000,40400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 5922,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,34000,51000,50000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 5923,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 5924,0 +va (VaSet +) +xt "35600,49800,40300,51000" +st "Memory" +blo "35600,50800" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 5925,0 +va (VaSet +) +xt "35600,51000,38900,52200" +st "FIFO" +blo "35600,52000" +tm "CptNameMgr" +) +*35 (Text +uid 5926,0 +va (VaSet +) +xt "35600,52200,39700,53400" +st "I_DUT" +blo "35600,53200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5927,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5928,0 +text (MLText +uid 5929,0 +va (VaSet +font "courier,8,0" +) +xt "35000,54000,55000,55800" +st "dataBitNb = dataBitNb ( positive ) +depth = fifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "fifoDepth" +) +] +) +viewicon (ZoomableIcon +uid 5930,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,48250,36750,49750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*36 (Wire +uid 5811,0 +shape (OrthoPolyLine +uid 5812,0 +va (VaSet +vasetType 3 +) +xt "33000,48000,34250,58000" +pts [ +"34250,48000" +"33000,48000" +"33000,58000" +] +) +start &27 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5815,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5816,0 +va (VaSet +font "courier,12,0" +) +xt "29250,46600,32750,47900" +st "reset" +blo "29250,47600" +tm "WireNameMgr" +) +) +on &16 +) +*37 (Wire +uid 5819,0 +shape (OrthoPolyLine +uid 5820,0 +va (VaSet +vasetType 3 +) +xt "31000,46000,34250,58000" +pts [ +"34250,46000" +"31000,46000" +"31000,58000" +] +) +start &26 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5823,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5824,0 +va (VaSet +font "courier,12,0" +) +xt "29250,44600,32750,45900" +st "clock" +blo "29250,45600" +tm "WireNameMgr" +) +) +on &17 +) +*38 (Wire +uid 5827,0 +shape (OrthoPolyLine +uid 5828,0 +va (VaSet +vasetType 3 +) +xt "27000,42000,34250,58000" +pts [ +"34250,42000" +"27000,42000" +"27000,58000" +] +) +start &25 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5831,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5832,0 +va (VaSet +font "courier,12,0" +) +xt "29250,40600,32750,41900" +st "write" +blo "29250,41600" +tm "WireNameMgr" +) +) +on &18 +) +*39 (Wire +uid 5835,0 +shape (OrthoPolyLine +uid 5836,0 +va (VaSet +vasetType 3 +) +xt "25000,40000,34250,58000" +pts [ +"34250,40000" +"25000,40000" +"25000,58000" +] +) +start &32 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5840,0 +va (VaSet +font "courier,12,0" +) +xt "30250,38600,33050,39900" +st "full" +blo "30250,39600" +tm "WireNameMgr" +) +) +on &19 +) +*40 (Wire +uid 5843,0 +shape (OrthoPolyLine +uid 5844,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23000,38000,34250,58000" +pts [ +"34250,38000" +"23000,38000" +"23000,58000" +] +) +start &30 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5847,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5848,0 +va (VaSet +font "courier,12,0" +) +xt "28250,36600,32450,37900" +st "dataIn" +blo "28250,37600" +tm "WireNameMgr" +) +) +on &20 +) +*41 (Wire +uid 5851,0 +shape (OrthoPolyLine +uid 5852,0 +va (VaSet +vasetType 3 +) +xt "51750,42000,55000,58000" +pts [ +"51750,42000" +"55000,42000" +"55000,58000" +] +) +start &29 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5855,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5856,0 +va (VaSet +font "courier,12,0" +) +xt "53750,40600,57450,42000" +st "read" +blo "53750,41800" +tm "WireNameMgr" +) +) +on &21 +) +*42 (Wire +uid 5859,0 +shape (OrthoPolyLine +uid 5860,0 +va (VaSet +vasetType 3 +) +xt "51750,40000,57000,58000" +pts [ +"51750,40000" +"57000,40000" +"57000,58000" +] +) +start &31 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5863,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5864,0 +va (VaSet +font "courier,12,0" +) +xt "53750,38600,57250,39900" +st "empty" +blo "53750,39600" +tm "WireNameMgr" +) +) +on &22 +) +*43 (Wire +uid 5867,0 +shape (OrthoPolyLine +uid 5868,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,38000,59000,58000" +pts [ +"51750,38000" +"59000,38000" +"59000,58000" +] +) +start &28 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5871,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5872,0 +va (VaSet +font "courier,12,0" +) +xt "53750,36600,58650,37900" +st "dataOut" +blo "53750,37600" +tm "WireNameMgr" +) +) +on &23 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *44 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 1297,0 +va (VaSet +font "courier,8,1" +) +xt "-7000,19600,-1600,20600" +st "Package List" +blo "-7000,20400" +) +*46 (MLText +uid 1298,0 +va (VaSet +font "courier,8,0" +) +xt "-7000,20600,8500,23300" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*48 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*49 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*50 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*51 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*52 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*53 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "118,40,1394,908" +viewArea "10133,25086,76534,68615" +cachedDiagramExtent "-7000,0,91000,85000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +scale 75 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 6048,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "-150,900,4450,2100" +st "Panel0" +blo "-150,1900" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "1500,2550,6800,3750" +st "" +blo "1500,3550" +tm "BdLibraryNameMgr" +) +*55 (Text +va (VaSet +) +xt "1500,3750,6300,4950" +st "" +blo "1500,4750" +tm "BlkNameMgr" +) +*56 (Text +va (VaSet +) +xt "1500,4950,3400,6150" +st "I0" +blo "1500,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*58 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*59 (Text +va (VaSet +) +xt "-100,5000,1800,6200" +st "I0" +blo "-100,6000" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*61 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*62 (Text +va (VaSet +) +xt "-350,4550,1550,5750" +st "I0" +blo "-350,5550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "-600,8250,900,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*64 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*65 (Text +va (VaSet +) +xt "-850,4550,1050,5750" +st "I0" +blo "-850,5550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*67 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*68 (Text +va (VaSet +) +xt "-1600,4550,300,5750" +st "I0" +blo "-1600,5550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +font "courier,8,0" +) +xt "2950,3400,4950,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*70 (Text +va (VaSet +font "courier,8,0" +) +xt "2950,4400,3950,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,0" +) +xt "-550,-500,550,500" +st "G" +blo "-550,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "courier,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "courier,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "courier,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "courier,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,0" +) +xt "0,400,3700,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,8,0" +) +xt "0,1400,1000,2300" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,8,0" +) +xt "0,0,4500,900" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,8,0" +) +xt "0,1000,9000,1900" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2150,-1300,16650,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +font "courier,8,0" +) +xt "50,400,1050,1400" +st "1" +blo "50,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +va (VaSet +font "courier,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*72 (MLText +va (VaSet +font "courier,8,0" +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +font "courier,8,0" +) +xt "1100,-1300,10100,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +font "courier,8,0" +) +xt "50,400,1050,1400" +st "1" +blo "50,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +va (VaSet +font "courier,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*74 (MLText +va (VaSet +font "courier,8,0" +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,2100,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,2100,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-7000,25800,0,26800" +st "Declarations" +blo "-7000,26600" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-7000,27000,-3600,28000" +st "Ports:" +blo "-7000,27800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-7000,26800,-2200,27800" +st "Pre User:" +blo "-7000,27600" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,27800,16600,29800" +st "constant dataBitNb : positive := 8; +constant fifoDepth: positive := 8;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-7000,27000,2000,28000" +st "Diagram Signals:" +blo "-7000,27800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-7000,27000,-1000,28000" +st "Post User:" +blo "-7000,27800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-5000,41400,-5000,41400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 80,0 +usingSuid 1 +emptyRow *75 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*76 (RefLabelRowHdr +) +*77 (TitleRowHdr +) +*78 (FilterRowHdr +) +*79 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*80 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*81 (GroupColHdr +tm "GroupColHdrMgr" +) +*82 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*83 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*84 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*85 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*86 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*87 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*88 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 73,0 +) +) +uid 5873,0 +) +*89 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 74,0 +) +) +uid 5875,0 +) +*90 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "write" +t "std_ulogic" +o 8 +suid 75,0 +) +) +uid 5877,0 +) +*91 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "full" +t "std_ulogic" +o 5 +suid 76,0 +) +) +uid 5879,0 +) +*92 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 77,0 +) +) +uid 5881,0 +) +*93 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "read" +t "std_ulogic" +o 6 +suid 78,0 +) +) +uid 5883,0 +) +*94 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "empty" +t "std_ulogic" +o 4 +suid 79,0 +) +) +uid 5885,0 +) +*95 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 80,0 +) +) +uid 5887,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*96 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *97 (MRCItem +litem &75 +pos 8 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*98 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 3326,0 +) +*99 (MRCItem +litem &77 +pos 1 +dimension 23 +uid 3327,0 +) +*100 (MRCItem +litem &78 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*101 (MRCItem +litem &88 +pos 0 +dimension 20 +uid 5874,0 +) +*102 (MRCItem +litem &89 +pos 1 +dimension 20 +uid 5876,0 +) +*103 (MRCItem +litem &90 +pos 2 +dimension 20 +uid 5878,0 +) +*104 (MRCItem +litem &91 +pos 3 +dimension 20 +uid 5880,0 +) +*105 (MRCItem +litem &92 +pos 4 +dimension 20 +uid 5882,0 +) +*106 (MRCItem +litem &93 +pos 5 +dimension 20 +uid 5884,0 +) +*107 (MRCItem +litem &94 +pos 6 +dimension 20 +uid 5886,0 +) +*108 (MRCItem +litem &95 +pos 7 +dimension 20 +uid 5888,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*109 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 3330,0 +) +*110 (MRCItem +litem &81 +pos 1 +dimension 50 +uid 3331,0 +) +*111 (MRCItem +litem &82 +pos 2 +dimension 100 +uid 3332,0 +) +*112 (MRCItem +litem &83 +pos 3 +dimension 50 +uid 3333,0 +) +*113 (MRCItem +litem &84 +pos 4 +dimension 100 +uid 3334,0 +) +*114 (MRCItem +litem &85 +pos 5 +dimension 100 +uid 3335,0 +) +*115 (MRCItem +litem &86 +pos 6 +dimension 50 +uid 3336,0 +) +*116 (MRCItem +litem &87 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *117 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*118 (RefLabelRowHdr +) +*119 (TitleRowHdr +) +*120 (FilterRowHdr +) +*121 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*122 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*123 (GroupColHdr +tm "GroupColHdrMgr" +) +*124 (NameColHdr +tm "GenericNameColHdrMgr" +) +*125 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*126 (InitColHdr +tm "GenericValueColHdrMgr" +) +*127 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*128 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*129 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *130 (MRCItem +litem &117 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*131 (MRCItem +litem &118 +pos 0 +dimension 20 +uid 3354,0 +) +*132 (MRCItem +litem &119 +pos 1 +dimension 23 +uid 3355,0 +) +*133 (MRCItem +litem &120 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*134 (MRCItem +litem &121 +pos 0 +dimension 20 +uid 3358,0 +) +*135 (MRCItem +litem &123 +pos 1 +dimension 50 +uid 3359,0 +) +*136 (MRCItem +litem &124 +pos 2 +dimension 100 +uid 3360,0 +) +*137 (MRCItem +litem &125 +pos 3 +dimension 100 +uid 3361,0 +) +*138 (MRCItem +litem &126 +pos 4 +dimension 50 +uid 3362,0 +) +*139 (MRCItem +litem &127 +pos 5 +dimension 50 +uid 3363,0 +) +*140 (MRCItem +litem &128 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Memory_test/hds/fifo_tb/struct.bd.info/msimSimulationReplay.sh b/Libs/Memory_test/hds/fifo_tb/struct.bd.info/msimSimulationReplay.sh new file mode 100644 index 0000000..c211a82 --- /dev/null +++ b/Libs/Memory_test/hds/fifo_tb/struct.bd.info/msimSimulationReplay.sh @@ -0,0 +1,3 @@ +# Script to replay the last simulation run +cd $HDS_PROJECT_DIR\..\Memory_test\work +"C:/eda/mentor/questasim64_10.1b/win64/vsim" -f hds_args.tmp diff --git a/Libs/Memory_test/hds/fifo_tb/symbol.sb b/Libs/Memory_test/hds/fifo_tb/symbol.sb new file mode 100644 index 0000000..33e507e --- /dev/null +++ b/Libs/Memory_test/hds/fifo_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "fifo_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifo_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "fifo_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,37150,22900" +st "Memory_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,34150,23900" +st "fifo_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,43400,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/Memory_test/hds/fifo_tester/interface b/Libs/Memory_test/hds/fifo_tester/interface new file mode 100644 index 0000000..ef84e64 --- /dev/null +++ b/Libs/Memory_test/hds/fifo_tester/interface @@ -0,0 +1,1504 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 32,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 77,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 25,0 +) +) +uid 403,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 26,0 +) +) +uid 405,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 27,0 +) +) +uid 407,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "empty" +t "std_ulogic" +o 4 +suid 28,0 +) +) +uid 409,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "full" +t "std_ulogic" +o 5 +suid 29,0 +) +) +uid 411,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "read" +t "std_ulogic" +o 6 +suid 30,0 +) +) +uid 413,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 31,0 +) +) +uid 415,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "write" +t "std_ulogic" +o 8 +suid 32,0 +) +) +uid 417,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 90,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 92,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 93,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 94,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 95,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 404,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 406,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 408,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 410,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 412,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 414,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 416,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 418,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 96,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 97,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 98,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 99,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 100,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 101,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 102,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 103,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 104,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 91,0 +vaOverrides [ +] +) +] +) +uid 76,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 106,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 155,0 +) +*56 (LogGeneric +generic (GiElement +name "fifoDepth" +type "positive" +value "64" +) +uid 157,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 118,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 120,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 121,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 122,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 123,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 156,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 158,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 124,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 125,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 126,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 127,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 128,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 129,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 130,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 131,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 119,0 +vaOverrides [ +] +) +] +) +uid 105,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "fifo_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "fifo_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/fifo_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "fifo_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 75,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 363,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 364,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 365,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 366,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,9500" +st "clock" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 367,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,59500,5600" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 25,0 +) +) +) +*73 (CptPort +uid 368,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 369,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 370,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 371,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,10000" +st "dataIn" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 372,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,74000,6500" +st "dataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 26,0 +) +) +) +*74 (CptPort +uid 373,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 374,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 375,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 376,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "58550,7000,59450,10500" +st "dataOut" +ju 2 +blo "59250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 377,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,74000,2900" +st "dataOut : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 27,0 +) +) +) +*75 (CptPort +uid 378,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 379,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 380,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 381,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "56550,7000,57450,9500" +st "empty" +ju 2 +blo "57250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 382,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,59500,3800" +st "empty : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "empty" +t "std_ulogic" +o 4 +suid 28,0 +) +) +) +*76 (CptPort +uid 383,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 384,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 385,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 386,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,9000" +st "full" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 387,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59500,4700" +st "full : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "full" +t "std_ulogic" +o 5 +suid 29,0 +) +) +) +*77 (CptPort +uid 388,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 389,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 390,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 391,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "54550,7000,55450,9000" +st "read" +ju 2 +blo "55250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 392,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,59500,7400" +st "read : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "read" +t "std_ulogic" +o 6 +suid 30,0 +) +) +) +*78 (CptPort +uid 393,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 394,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 395,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 396,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "32550,7000,33450,9500" +st "reset" +ju 2 +blo "33250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 397,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,59500,8300" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 7 +suid 31,0 +) +) +) +*79 (CptPort +uid 398,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 399,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 400,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 401,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9500" +st "write" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 402,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,58500,9200" +st "write : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "write" +t "std_ulogic" +o 8 +suid 32,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,67000,14000" +) +oxt "15000,6000,75000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "37400,9000,44600,10000" +st "Memory_test" +blo "37400,9800" +) +second (Text +uid 12,0 +va (VaSet +) +xt "37400,10000,44600,11000" +st "fifo_tester" +blo "37400,10800" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "13000,6000,25000,9600" +st "Generic Declarations + +dataBitNb positive 8 +fifoDepth positive 64 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "fifoDepth" +type "positive" +value "64" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *81 (PackageList +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 17,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*83 (MLText +uid 18,0 +va (VaSet +font "courier,8,0" +) +xt "0,1000,15500,3700" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "191,89,1207,779" +viewArea "-500,-500,71230,48820" +cachedDiagramExtent "0,0,75000,14000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,5200,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory_test" +entityName "fifo_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,41000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "25350,14800,30650,16000" +st "" +blo "25350,15800" +) +second (Text +va (VaSet +) +xt "25350,16000,29250,17200" +st "" +blo "25350,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,49000,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,45400,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,9200,44500,10100" +st "User:" +blo "42000,9900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49600,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,44000,10100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 418,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory_test/hds/flash@controller_tb/struct.bd b/Libs/Memory_test/hds/flash@controller_tb/struct.bd new file mode 100644 index 0000000..dd2db17 --- /dev/null +++ b/Libs/Memory_test/hds/flash@controller_tb/struct.bd @@ -0,0 +1,5566 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I1" +duLibraryName "memory_test" +duName "flashController_tester" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I0" +duLibraryName "memory" +duName "flashController" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 7294,0 +) +(Instance +name "I2" +duLibraryName "memory_test" +duName "flash_28F128J3A" +elements [ +(GiElement +name "fileSpec" +type "string" +value "\"U:\\ELN_board\\Simulation\\flash.srec\"" +) +(GiElement +name "T_W13" +type "time" +value "500 ns" +) +(GiElement +name "T_W16_program" +type "time" +value "1 us" +) +(GiElement +name "T_W16_erase" +type "time" +value "1.5 us" +) +(GiElement +name "T_R2" +type "time" +value "120 ns" +) +(GiElement +name "T_R3" +type "time" +value "120 ns" +) +(GiElement +name "T_R7" +type "time" +value "0 ns" +) +(GiElement +name "T_R8" +type "time" +value "55 ns" +) +(GiElement +name "T_R9" +type "time" +value "15 ns" +) +] +mwi 0 +uid 7440,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flashController_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flashController_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flashController_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flashController_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "flashController_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "121000,110000,140000,112000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "121200,110500,136800,111500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,110000,115000,112000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "96750,110350,107250,111650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "94000,116000,115000,118000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "94200,116500,110400,117500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "115000,110000,121000,112000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "115200,110500,120000,111500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "94000,112000,115000,114000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "94200,112500,110400,113500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,112000,94000,114000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,112500,92800,113500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,114000,94000,116000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,114500,92200,115500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "115000,112000,140000,118000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "115200,112200,128400,113200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "94000,114000,115000,116000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "94200,114500,113400,115500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,116000,94000,118000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,116500,93400,117500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "89000,110000,140000,118000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "16000,87000,110000,95000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "courier,12,1" +) +xt "16600,94900,27200,96300" +st "memory_test" +blo "16600,96100" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "courier,12,1" +) +xt "16600,96300,33900,97700" +st "flashController_tester" +blo "16600,97500" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "courier,12,1" +) +xt "16600,97700,19000,99100" +st "I1" +blo "16600,98900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "courier,9,0" +) +xt "16000,99600,39000,101400" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +) +*16 (Net +uid 5550,0 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 55,0 +) +declText (MLText +uid 5551,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,400,17500,1300" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 5558,0 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 56,0 +) +declText (MLText +uid 5559,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,400,17500,1300" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 5919,0 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 66,0 +) +declText (MLText +uid 5920,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-14000,6800,18000,7700" +st "SIGNAL memDataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*19 (Net +uid 5927,0 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 18 +suid 67,0 +) +declText (MLText +uid 5928,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-14000,6800,18000,7700" +st "SIGNAL memDataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*20 (Net +uid 6010,0 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 22 +suid 71,0 +) +declText (MLText +uid 6011,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-14000,6800,3500,7700" +st "SIGNAL memWr_n : std_ulogic" +) +) +*21 (Net +uid 6048,0 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 75,0 +) +declText (MLText +uid 6049,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-14000,6800,17500,7700" +st "SIGNAL DQ : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*22 (HdlText +uid 6058,0 +optionalChildren [ +*23 (EmbeddedText +uid 6063,0 +commentText (CommentText +uid 6064,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6065,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "94000,58000,110000,66000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6066,0 +va (VaSet +font "courier,9,0" +) +xt "94200,58200,110200,65400" +st " +memDataIn <= std_ulogic_vector(DQ); +DQ <= std_logic_vector(memDataOut) when (memWr_n = '0') or (memWrDelayed_n = '0') + else (others => 'Z'); + +delayMemWr: process(reset, clock) +begin + if reset = '1' then + memWrDelayed_n <= '0'; + elsif rising_edge(clock) then + memWrDelayed_n <= memWr_n; + end if; +end process delayMemWr; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 6059,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "94000,57000,110000,67000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6060,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 6061,0 +va (VaSet +) +xt "94400,67000,95600,68000" +st "eb1" +blo "94400,67800" +tm "HdlTextNameMgr" +) +*25 (Text +uid 6062,0 +va (VaSet +) +xt "94400,68000,94800,69000" +st "1" +blo "94400,68800" +tm "HdlTextNumberMgr" +) +] +) +) +*26 (Net +uid 6768,0 +decl (Decl +n "flashCE_n" +t "std_ulogic" +o 7 +suid 79,0 +) +declText (MLText +uid 6769,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-112000,6600,-94500,7500" +st "SIGNAL flashCE_n : std_ulogic" +) +) +*27 (Net +uid 6780,0 +decl (Decl +n "memOE_n" +t "std_ulogic" +o 19 +suid 81,0 +) +declText (MLText +uid 6781,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-112000,6600,-94500,7500" +st "SIGNAL memOE_n : std_ulogic" +) +) +*28 (Net +uid 6798,0 +decl (Decl +n "flashSTS" +t "std_ulogic" +o 13 +suid 83,0 +) +declText (MLText +uid 6799,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-112000,6600,-94500,7500" +st "SIGNAL flashSTS : std_ulogic" +) +) +*29 (Net +uid 6804,0 +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 2 +suid 84,0 +) +declText (MLText +uid 6805,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-112000,6600,-94500,7500" +st "SIGNAL BYTE_n : std_ulogic" +) +) +*30 (Net +uid 6812,0 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 15 +suid 85,0 +) +declText (MLText +uid 6813,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-112000,6600,-78500,7500" +st "SIGNAL memAddress : std_ulogic_vector(addressBitNb-1 DOWNTO 0)" +) +) +*31 (HdlText +uid 6818,0 +optionalChildren [ +*32 (EmbeddedText +uid 6823,0 +commentText (CommentText +uid 6824,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6825,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "54000,34000,70000,44000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6826,0 +va (VaSet +font "courier,9,0" +) +xt "54200,34200,67700,38700" +st " +A <= unsigned(memAddress); + +CE <= \"00\" & flashCE_n; + +BYTE_n <= '1'; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 6819,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "54000,33000,70000,45000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6820,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 6821,0 +va (VaSet +) +xt "54400,45000,56000,46000" +st "eb2" +blo "54400,45800" +tm "HdlTextNameMgr" +) +*34 (Text +uid 6822,0 +va (VaSet +) +xt "54400,46000,55200,47000" +st "2" +blo "54400,46800" +tm "HdlTextNumberMgr" +) +] +) +) +*35 (Net +uid 6843,0 +decl (Decl +n "flashEn" +t "std_ulogic" +o 11 +suid 86,0 +) +declText (MLText +uid 6844,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL flashEn : std_ulogic" +) +) +*36 (Net +uid 6922,0 +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 10 +suid 87,0 +) +declText (MLText +uid 6923,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL flashDataValid : std_ulogic" +) +) +*37 (Net +uid 6930,0 +decl (Decl +n "flashRd" +t "std_ulogic" +o 12 +suid 88,0 +) +declText (MLText +uid 6931,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL flashRd : std_ulogic" +) +) +*38 (Net +uid 6938,0 +decl (Decl +n "flashWr" +t "std_ulogic" +o 14 +suid 89,0 +) +declText (MLText +uid 6939,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL flashWr : std_ulogic" +) +) +*39 (Net +uid 6946,0 +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +suid 90,0 +) +declText (MLText +uid 6947,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,32000,900" +st "SIGNAL flashDataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*40 (Net +uid 6954,0 +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 91,0 +) +declText (MLText +uid 6955,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,32000,900" +st "SIGNAL flashDataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*41 (Net +uid 6962,0 +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 92,0 +) +declText (MLText +uid 6963,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,29000,900" +st "SIGNAL flashAddr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*42 (Net +uid 6984,0 +decl (Decl +n "A" +t "unsigned" +b "(23 DOWNTO 0)" +o 1 +suid 93,0 +) +declText (MLText +uid 6985,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,23000,900" +st "SIGNAL A : unsigned(23 DOWNTO 0)" +) +) +*43 (Net +uid 6994,0 +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 94,0 +) +declText (MLText +uid 6995,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,27000,900" +st "SIGNAL CE : std_ulogic_vector(2 DOWNTO 0)" +) +) +*44 (Net +uid 7044,0 +decl (Decl +n "memWrDelayed_n" +t "std_ulogic" +o 21 +suid 95,0 +) +declText (MLText +uid 7045,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL memWrDelayed_n : std_ulogic" +) +) +*45 (Net +uid 7125,0 +decl (Decl +n "memRst_n" +t "std_ulogic" +o 20 +suid 96,0 +) +declText (MLText +uid 7126,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL memRst_n : std_ulogic" +) +) +*46 (SaComponent +uid 7294,0 +optionalChildren [ +*47 (CptPort +uid 7222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7223,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,74625,46000,75375" +) +tg (CPTG +uid 7224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7225,0 +va (VaSet +) +xt "47000,74500,49100,75500" +st "clock" +blo "47000,75300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 20,0 +) +) +) +*48 (CptPort +uid 7226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7227,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,66625,46000,67375" +) +tg (CPTG +uid 7228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7229,0 +va (VaSet +) +xt "47000,66500,52700,67500" +st "flashDataValid" +blo "47000,67300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 14 +suid 21,0 +) +) +) +*49 (CptPort +uid 7230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7231,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,56625,46000,57375" +) +tg (CPTG +uid 7232,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7233,0 +va (VaSet +) +xt "47000,56500,50600,57500" +st "flashAddr" +blo "47000,57300" +) +) +thePort (LogicalPort +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 22,0 +) +) +) +*50 (CptPort +uid 7234,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7235,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,56625,62750,57375" +) +tg (CPTG +uid 7236,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7237,0 +va (VaSet +) +xt "55800,56500,61000,57500" +st "memAddress" +ju 2 +blo "61000,57300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 23,0 +) +) +) +*51 (CptPort +uid 7238,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7239,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,60625,46000,61375" +) +tg (CPTG +uid 7240,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7241,0 +va (VaSet +) +xt "47000,60500,52200,61500" +st "flashDataOut" +blo "47000,61300" +) +) +thePort (LogicalPort +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +) +*52 (CptPort +uid 7242,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7243,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,58625,62750,59375" +) +tg (CPTG +uid 7244,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7245,0 +va (VaSet +) +xt "56800,58500,61000,59500" +st "memDataIn" +ju 2 +blo "61000,59300" +) +) +thePort (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 25,0 +) +) +) +*53 (CptPort +uid 7246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7247,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,60625,62750,61375" +) +tg (CPTG +uid 7248,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7249,0 +va (VaSet +) +xt "55800,60500,61000,61500" +st "memDataOut" +ju 2 +blo "61000,61300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 26,0 +) +) +) +*54 (CptPort +uid 7250,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7251,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,64625,62750,65375" +) +tg (CPTG +uid 7252,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7253,0 +va (VaSet +) +xt "57200,64500,61000,65500" +st "memWr_n" +ju 2 +blo "61000,65300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 27,0 +) +) +) +*55 (CptPort +uid 7254,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7255,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,72625,46000,73375" +) +tg (CPTG +uid 7256,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7257,0 +va (VaSet +) +xt "47000,72500,49900,73500" +st "flashEn" +blo "47000,73300" +) +) +thePort (LogicalPort +decl (Decl +n "flashEn" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*56 (CptPort +uid 7258,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7259,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,62625,46000,63375" +) +tg (CPTG +uid 7260,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7261,0 +va (VaSet +) +xt "47000,62500,50000,63500" +st "flashRd" +blo "47000,63300" +) +) +thePort (LogicalPort +decl (Decl +n "flashRd" +t "std_ulogic" +o 6 +suid 29,0 +) +) +) +*57 (CptPort +uid 7262,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7263,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,64625,46000,65375" +) +tg (CPTG +uid 7264,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7265,0 +va (VaSet +) +xt "47000,64500,50000,65500" +st "flashWr" +blo "47000,65300" +) +) +thePort (LogicalPort +decl (Decl +n "flashWr" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*58 (CptPort +uid 7266,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7267,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,76625,46000,77375" +) +tg (CPTG +uid 7268,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7269,0 +va (VaSet +) +xt "47000,76500,49100,77500" +st "reset" +blo "47000,77300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 31,0 +) +) +) +*59 (CptPort +uid 7270,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7271,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,68625,62750,69375" +) +tg (CPTG +uid 7272,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7273,0 +va (VaSet +) +xt "57000,68500,61000,69500" +st "memRst_n" +ju 2 +blo "61000,69300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memRst_n" +t "std_ulogic" +o 15 +suid 33,0 +) +) +) +*60 (CptPort +uid 7274,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7275,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,70625,62750,71375" +) +tg (CPTG +uid 7276,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7277,0 +va (VaSet +) +xt "57500,70500,61000,71500" +st "flashSTS" +ju 2 +blo "61000,71300" +) +) +thePort (LogicalPort +decl (Decl +n "flashSTS" +t "std_ulogic" +o 16 +suid 34,0 +) +) +) +*61 (CptPort +uid 7278,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7279,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,62625,62750,63375" +) +tg (CPTG +uid 7280,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7281,0 +va (VaSet +) +xt "57100,62500,61000,63500" +st "flashCE_n" +ju 2 +blo "61000,63300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashCE_n" +t "std_ulogic" +o 9 +suid 35,0 +) +) +) +*62 (CptPort +uid 7282,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7283,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,66625,62750,67375" +) +tg (CPTG +uid 7284,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7285,0 +va (VaSet +) +xt "57100,66500,61000,67500" +st "memOE_n" +ju 2 +blo "61000,67300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memOE_n" +t "std_ulogic" +o 17 +suid 36,0 +) +) +) +*63 (CptPort +uid 7286,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7287,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,58625,46000,59375" +) +tg (CPTG +uid 7288,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7289,0 +va (VaSet +) +xt "47000,58500,51600,59500" +st "flashDataIn" +blo "47000,59300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 42,0 +) +) +) +*64 (CptPort +uid 7290,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7291,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,70625,46000,71375" +) +tg (CPTG +uid 7292,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7293,0 +va (VaSet +) +xt "47000,70500,52400,71500" +st "memBusEn_n" +blo "47000,71300" +) +) +thePort (LogicalPort +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 18 +suid 44,0 +) +) +) +] +shape (Rectangle +uid 7295,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "46000,53000,62000,79000" +) +oxt "37000,5000,53000,31000" +ttg (MlTextGroup +uid 7296,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 7297,0 +va (VaSet +font "courier,8,1" +) +xt "46550,79500,49850,80500" +st "memory" +blo "46550,80300" +tm "BdLibraryNameMgr" +) +*66 (Text +uid 7298,0 +va (VaSet +font "courier,8,1" +) +xt "46550,80500,52950,81500" +st "flashController" +blo "46550,81300" +tm "CptNameMgr" +) +*67 (Text +uid 7299,0 +va (VaSet +font "courier,8,1" +) +xt "46550,81500,47550,82500" +st "I0" +blo "46550,82300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7300,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7301,0 +text (MLText +uid 7302,0 +va (VaSet +font "courier,8,0" +) +xt "46000,83200,71000,85900" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) +chipAddressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "addressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*68 (Net +uid 7303,0 +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 16 +suid 97,0 +) +declText (MLText +uid 7304,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL memBusEn_n : std_ulogic" +) +) +*69 (SaComponent +uid 7440,0 +optionalChildren [ +*70 (CptPort +uid 7408,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7409,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,60625,78000,61375" +) +tg (CPTG +uid 7410,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7411,0 +va (VaSet +) +xt "79000,60500,79900,61500" +st "A" +blo "79000,61300" +) +) +thePort (LogicalPort +decl (Decl +n "A" +t "unsigned" +b "(23 DOWNTO 0)" +o 45 +suid 1,0 +) +) +) +*71 (CptPort +uid 7412,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7413,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,68625,78000,69375" +) +tg (CPTG +uid 7414,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7415,0 +va (VaSet +) +xt "79000,68500,82200,69500" +st "BYTE_n" +blo "79000,69300" +) +) +thePort (LogicalPort +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 48 +suid 2,0 +) +) +) +*72 (CptPort +uid 7416,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7417,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,62625,78000,63375" +) +tg (CPTG +uid 7418,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7419,0 +va (VaSet +) +xt "79000,62500,80500,63500" +st "CE" +blo "79000,63300" +) +) +thePort (LogicalPort +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 45 +suid 3,0 +) +) +) +*73 (CptPort +uid 7420,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 7421,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86000,60625,86750,61375" +) +tg (CPTG +uid 7422,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7423,0 +va (VaSet +) +xt "83400,60500,85000,61500" +st "DQ" +ju 2 +blo "85000,61300" +) +) +thePort (LogicalPort +m 2 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 45 +suid 4,0 +) +) +) +*74 (CptPort +uid 7424,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7425,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,66625,78000,67375" +) +tg (CPTG +uid 7426,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7427,0 +va (VaSet +) +xt "79000,66500,81300,67500" +st "OE_n" +blo "79000,67300" +) +) +thePort (LogicalPort +decl (Decl +n "OE_n" +t "std_ulogic" +o 48 +suid 5,0 +) +) +) +*75 (CptPort +uid 7428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7429,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,72625,78000,73375" +) +tg (CPTG +uid 7430,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7431,0 +va (VaSet +) +xt "79000,72500,81300,73500" +st "RP_n" +blo "79000,73300" +) +) +thePort (LogicalPort +decl (Decl +n "RP_n" +t "std_ulogic" +o 48 +suid 6,0 +) +) +) +*76 (CptPort +uid 7432,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7433,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86000,62625,86750,63375" +) +tg (CPTG +uid 7434,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7435,0 +va (VaSet +) +xt "83100,62500,85000,63500" +st "STS" +ju 2 +blo "85000,63300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "STS" +t "std_ulogic" +o 48 +suid 7,0 +) +) +) +*77 (CptPort +uid 7436,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7437,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,64625,78000,65375" +) +tg (CPTG +uid 7438,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7439,0 +va (VaSet +) +xt "79000,64500,81400,65500" +st "WE_n" +blo "79000,65300" +) +) +thePort (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 48 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 7441,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,57000,86000,75000" +) +oxt "35000,13000,43000,31000" +ttg (MlTextGroup +uid 7442,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +uid 7443,0 +va (VaSet +font "courier,8,1" +) +xt "77800,75000,83300,76000" +st "memory_test" +blo "77800,75800" +tm "BdLibraryNameMgr" +) +*79 (Text +uid 7444,0 +va (VaSet +font "courier,8,1" +) +xt "77800,76000,84600,77000" +st "flash_28F128J3A" +blo "77800,76800" +tm "CptNameMgr" +) +*80 (Text +uid 7445,0 +va (VaSet +font "courier,8,1" +) +xt "77800,77000,78800,78000" +st "I2" +blo "77800,77800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7446,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7447,0 +text (MLText +uid 7448,0 +va (VaSet +font "courier,8,0" +) +xt "78000,78600,112500,86700" +st "fileSpec = \"U:\\ELN_board\\Simulation\\flash.srec\" ( string ) +T_W13 = 500 ns ( time ) +T_W16_program = 1 us ( time ) +T_W16_erase = 1.5 us ( time ) +T_R2 = 120 ns ( time ) +T_R3 = 120 ns ( time ) +T_R7 = 0 ns ( time ) +T_R8 = 55 ns ( time ) +T_R9 = 15 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "fileSpec" +type "string" +value "\"U:\\ELN_board\\Simulation\\flash.srec\"" +) +(GiElement +name "T_W13" +type "time" +value "500 ns" +) +(GiElement +name "T_W16_program" +type "time" +value "1 us" +) +(GiElement +name "T_W16_erase" +type "time" +value "1.5 us" +) +(GiElement +name "T_R2" +type "time" +value "120 ns" +) +(GiElement +name "T_R3" +type "time" +value "120 ns" +) +(GiElement +name "T_R7" +type "time" +value "0 ns" +) +(GiElement +name "T_R8" +type "time" +value "55 ns" +) +(GiElement +name "T_R9" +type "time" +value "15 ns" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*81 (Wire +uid 5552,0 +shape (OrthoPolyLine +uid 5553,0 +va (VaSet +vasetType 3 +) +xt "44000,77000,45250,87000" +pts [ +"45250,77000" +"44000,77000" +"44000,87000" +] +) +start &58 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5556,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5557,0 +va (VaSet +font "courier,12,0" +) +xt "40250,75600,43750,76900" +st "reset" +blo "40250,76600" +tm "WireNameMgr" +) +) +on &16 +) +*82 (Wire +uid 5560,0 +shape (OrthoPolyLine +uid 5561,0 +va (VaSet +vasetType 3 +) +xt "42000,75000,45250,87000" +pts [ +"45250,75000" +"42000,75000" +"42000,87000" +] +) +start &47 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5564,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5565,0 +va (VaSet +font "courier,12,0" +) +xt "40250,73600,43750,74900" +st "clock" +blo "40250,74600" +tm "WireNameMgr" +) +) +on &17 +) +*83 (Wire +uid 5568,0 +shape (OrthoPolyLine +uid 5569,0 +va (VaSet +vasetType 3 +) +xt "40000,73000,45250,87000" +pts [ +"45250,73000" +"40000,73000" +"40000,87000" +] +) +start &55 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5572,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5573,0 +va (VaSet +font "courier,12,0" +) +xt "39250,71600,44150,72900" +st "flashEn" +blo "39250,72600" +tm "WireNameMgr" +) +) +on &35 +) +*84 (Wire +uid 5921,0 +shape (OrthoPolyLine +uid 5922,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62750,59000,66000,59000" +pts [ +"62750,59000" +"66000,59000" +] +) +start &52 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5926,0 +va (VaSet +font "courier,12,0" +) +xt "64750,57600,71050,58900" +st "memDataIn" +blo "64750,58600" +tm "WireNameMgr" +) +) +on &18 +) +*85 (Wire +uid 5929,0 +shape (OrthoPolyLine +uid 5930,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62750,61000,66000,61000" +pts [ +"62750,61000" +"66000,61000" +] +) +start &53 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5933,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5934,0 +va (VaSet +font "courier,12,0" +) +xt "64750,59600,72450,60900" +st "memDataOut" +blo "64750,60600" +tm "WireNameMgr" +) +) +on &19 +) +*86 (Wire +uid 6050,0 +shape (OrthoPolyLine +uid 6051,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "86750,61000,94000,61000" +pts [ +"86750,61000" +"94000,61000" +] +) +start &73 +end &22 +sat 32 +eat 4 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6054,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6055,0 +va (VaSet +font "courier,12,0" +) +xt "88750,59600,90150,60900" +st "DQ" +blo "88750,60600" +tm "WireNameMgr" +) +) +on &21 +) +*87 (Wire +uid 6114,0 +shape (OrthoPolyLine +uid 6115,0 +va (VaSet +vasetType 3 +) +xt "90000,63000,94000,63000" +pts [ +"90000,63000" +"94000,63000" +] +) +end &22 +sat 16 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6121,0 +va (VaSet +font "courier,12,0" +) +xt "87000,61600,91900,62900" +st "memWr_n" +blo "87000,62600" +tm "WireNameMgr" +) +) +on &20 +) +*88 (Wire +uid 6122,0 +shape (OrthoPolyLine +uid 6123,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,61000,114000,61000" +pts [ +"110000,61000" +"114000,61000" +] +) +start &22 +sat 2 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6128,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6129,0 +va (VaSet +font "courier,12,0" +) +xt "112750,59600,119050,60900" +st "memDataIn" +blo "112750,60600" +tm "WireNameMgr" +) +) +on &18 +) +*89 (Wire +uid 6130,0 +shape (OrthoPolyLine +uid 6131,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,63000,114000,63000" +pts [ +"110000,63000" +"114000,63000" +] +) +start &22 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6136,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6137,0 +va (VaSet +font "courier,12,0" +) +xt "112750,61600,120450,62900" +st "memDataOut" +blo "112750,62600" +tm "WireNameMgr" +) +) +on &19 +) +*90 (Wire +uid 6770,0 +shape (OrthoPolyLine +uid 6771,0 +va (VaSet +vasetType 3 +) +xt "62750,63000,66000,63000" +pts [ +"62750,63000" +"66000,63000" +] +) +start &61 +sat 32 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 6772,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6773,0 +va (VaSet +font "courier,12,0" +) +xt "64750,61600,71050,62900" +st "flashCE_n" +blo "64750,62600" +tm "WireNameMgr" +) +) +on &26 +) +*91 (Wire +uid 6776,0 +shape (OrthoPolyLine +uid 6777,0 +va (VaSet +vasetType 3 +) +xt "62750,65000,77250,65000" +pts [ +"62750,65000" +"77250,65000" +] +) +start &54 +end &77 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6778,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6779,0 +va (VaSet +font "courier,12,0" +) +xt "64750,63600,69650,64900" +st "memWr_n" +blo "64750,64600" +tm "WireNameMgr" +) +) +on &20 +) +*92 (Wire +uid 6782,0 +shape (OrthoPolyLine +uid 6783,0 +va (VaSet +vasetType 3 +) +xt "62750,67000,77250,67000" +pts [ +"62750,67000" +"77250,67000" +] +) +start &62 +end &74 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6784,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6785,0 +va (VaSet +font "courier,12,0" +) +xt "64750,65600,69650,66900" +st "memOE_n" +blo "64750,66600" +tm "WireNameMgr" +) +) +on &27 +) +*93 (Wire +uid 6794,0 +shape (OrthoPolyLine +uid 6795,0 +va (VaSet +vasetType 3 +) +xt "62750,69000,77250,73000" +pts [ +"62750,69000" +"70000,69000" +"70000,73000" +"77250,73000" +] +) +start &59 +end &75 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6796,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6797,0 +va (VaSet +font "courier,12,0" +) +xt "64750,67600,70350,68900" +st "memRst_n" +blo "64750,68600" +tm "WireNameMgr" +) +) +on &45 +) +*94 (Wire +uid 6800,0 +shape (OrthoPolyLine +uid 6801,0 +va (VaSet +vasetType 3 +) +xt "62750,63000,88000,79000" +pts [ +"62750,71000" +"68000,71000" +"68000,79000" +"88000,79000" +"88000,63000" +"86750,63000" +] +) +start &60 +end &76 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6802,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6803,0 +va (VaSet +font "courier,12,0" +) +xt "64750,69600,70350,70900" +st "flashSTS" +blo "64750,70600" +tm "WireNameMgr" +) +) +on &28 +) +*95 (Wire +uid 6806,0 +shape (OrthoPolyLine +uid 6807,0 +va (VaSet +vasetType 3 +) +xt "74000,69000,77250,69000" +pts [ +"77250,69000" +"74000,69000" +] +) +start &71 +sat 32 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 6810,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6811,0 +va (VaSet +font "courier,12,0" +) +xt "72000,67600,76200,68900" +st "BYTE_n" +blo "72000,68600" +tm "WireNameMgr" +) +) +on &29 +) +*96 (Wire +uid 6814,0 +shape (OrthoPolyLine +uid 6815,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "62750,57000,66000,57000" +pts [ +"62750,57000" +"66000,57000" +] +) +start &50 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6816,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6817,0 +va (VaSet +font "courier,12,0" +) +xt "64750,55600,72450,56900" +st "memAddress" +blo "64750,56600" +tm "WireNameMgr" +) +) +on &30 +) +*97 (Wire +uid 6827,0 +shape (OrthoPolyLine +uid 6828,0 +va (VaSet +vasetType 3 +) +xt "70000,41000,74000,41000" +pts [ +"70000,41000" +"74000,41000" +] +) +start &31 +sat 2 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 6833,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6834,0 +va (VaSet +font "courier,12,0" +) +xt "72000,39600,76200,40900" +st "BYTE_n" +blo "72000,40600" +tm "WireNameMgr" +) +) +on &29 +) +*98 (Wire +uid 6924,0 +shape (OrthoPolyLine +uid 6925,0 +va (VaSet +vasetType 3 +) +xt "34000,67000,45250,87000" +pts [ +"45250,67000" +"34000,67000" +"34000,87000" +] +) +start &48 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6928,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6929,0 +va (VaSet +font "courier,12,0" +) +xt "34000,65600,44500,66900" +st "flashDataValid" +blo "34000,66600" +tm "WireNameMgr" +) +) +on &36 +) +*99 (Wire +uid 6932,0 +shape (OrthoPolyLine +uid 6933,0 +va (VaSet +vasetType 3 +) +xt "30000,63000,45250,87000" +pts [ +"45250,63000" +"30000,63000" +"30000,87000" +] +) +start &56 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 6936,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6937,0 +va (VaSet +font "courier,12,0" +) +xt "38000,61600,42900,62900" +st "flashRd" +blo "38000,62600" +tm "WireNameMgr" +) +) +on &37 +) +*100 (Wire +uid 6940,0 +shape (OrthoPolyLine +uid 6941,0 +va (VaSet +vasetType 3 +) +xt "32000,65000,45250,87000" +pts [ +"45250,65000" +"32000,65000" +"32000,87000" +] +) +start &57 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 6944,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6945,0 +va (VaSet +font "courier,12,0" +) +xt "38250,63600,43150,64900" +st "flashWr" +blo "38250,64600" +tm "WireNameMgr" +) +) +on &38 +) +*101 (Wire +uid 6948,0 +shape (OrthoPolyLine +uid 6949,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "28000,61000,45250,87000" +pts [ +"45250,61000" +"28000,61000" +"28000,87000" +] +) +start &51 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6952,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6953,0 +va (VaSet +font "courier,12,0" +) +xt "34250,59600,43350,60900" +st "flashDataOut" +blo "34250,60600" +tm "WireNameMgr" +) +) +on &39 +) +*102 (Wire +uid 6956,0 +shape (OrthoPolyLine +uid 6957,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "26000,59000,45250,87000" +pts [ +"45250,59000" +"26000,59000" +"26000,87000" +] +) +start &63 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6960,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6961,0 +va (VaSet +font "courier,12,0" +) +xt "35250,57600,43650,58900" +st "flashDataIn" +blo "35250,58600" +tm "WireNameMgr" +) +) +on &40 +) +*103 (Wire +uid 6964,0 +shape (OrthoPolyLine +uid 6965,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "24000,57000,45250,87000" +pts [ +"45250,57000" +"24000,57000" +"24000,87000" +] +) +start &49 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6968,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6969,0 +va (VaSet +font "courier,12,0" +) +xt "37250,55600,43550,56900" +st "flashAddr" +blo "37250,56600" +tm "WireNameMgr" +) +) +on &41 +) +*104 (Wire +uid 6986,0 +shape (OrthoPolyLine +uid 6987,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "74000,61000,77250,61000" +pts [ +"77250,61000" +"74000,61000" +] +) +start &70 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6990,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6991,0 +va (VaSet +font "courier,12,0" +) +xt "74250,59600,74950,60900" +st "A" +blo "74250,60600" +tm "WireNameMgr" +) +) +on &42 +) +*105 (Wire +uid 6996,0 +shape (OrthoPolyLine +uid 6997,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "74000,63000,77250,63000" +pts [ +"77250,63000" +"74000,63000" +] +) +start &72 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7000,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7001,0 +va (VaSet +font "courier,12,0" +) +xt "73250,61600,74650,62900" +st "CE" +blo "73250,62600" +tm "WireNameMgr" +) +) +on &43 +) +*106 (Wire +uid 7002,0 +shape (OrthoPolyLine +uid 7003,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "50000,37000,54000,37000" +pts [ +"54000,37000" +"50000,37000" +] +) +start &31 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7008,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7009,0 +va (VaSet +font "courier,12,0" +) +xt "45000,35600,52700,36900" +st "memAddress" +blo "45000,36600" +tm "WireNameMgr" +) +) +on &30 +) +*107 (Wire +uid 7010,0 +shape (OrthoPolyLine +uid 7011,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,37000,74250,37000" +pts [ +"74250,37000" +"70000,37000" +] +) +end &31 +sat 16 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7016,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7017,0 +va (VaSet +font "courier,12,0" +) +xt "72000,35600,72700,36900" +st "A" +blo "72000,36600" +tm "WireNameMgr" +) +) +on &42 +) +*108 (Wire +uid 7018,0 +shape (OrthoPolyLine +uid 7019,0 +va (VaSet +vasetType 3 +) +xt "50000,39000,54000,39000" +pts [ +"54000,39000" +"50000,39000" +] +) +start &31 +sat 1 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 7024,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7025,0 +va (VaSet +font "courier,12,0" +) +xt "47000,37600,53300,38900" +st "flashCE_n" +blo "47000,38600" +tm "WireNameMgr" +) +) +on &26 +) +*109 (Wire +uid 7026,0 +shape (OrthoPolyLine +uid 7027,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,39000,74000,39000" +pts [ +"70000,39000" +"74000,39000" +] +) +start &31 +sat 2 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7032,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7033,0 +va (VaSet +font "courier,12,0" +) +xt "72000,37600,73400,38900" +st "CE" +blo "72000,38600" +tm "WireNameMgr" +) +) +on &43 +) +*110 (Wire +uid 7036,0 +shape (OrthoPolyLine +uid 7037,0 +va (VaSet +vasetType 3 +) +xt "102000,67000,102000,69000" +pts [ +"102000,69000" +"102000,67000" +] +) +end &22 +sat 16 +eat 4 +stc 0 +st 0 +si 0 +tg (WTG +uid 7042,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7043,0 +va (VaSet +font "courier,12,0" +) +xt "99000,67600,109500,68900" +st "memWrDelayed_n" +blo "99000,68600" +tm "WireNameMgr" +) +) +on &44 +) +*111 (Wire +uid 7305,0 +shape (OrthoPolyLine +uid 7306,0 +va (VaSet +vasetType 3 +) +xt "38000,71000,45250,87000" +pts [ +"45250,71000" +"38000,71000" +"38000,87000" +] +) +start &64 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 7309,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7310,0 +va (VaSet +font "courier,12,0" +) +xt "36000,69600,43700,70900" +st "memBusEn_n" +blo "36000,70600" +tm "WireNameMgr" +) +) +on &68 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *112 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 1297,0 +va (VaSet +font "courier,12,0" +) +xt "-7000,19600,2500,21000" +st "Package List" +blo "-7000,20800" +) +*114 (MLText +uid 1298,0 +va (VaSet +) +xt "-7000,21000,11600,24000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*116 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*117 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*118 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*119 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*120 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*121 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "7,31,1388,937" +viewArea "-9065,17500,147962,124527" +cachedDiagramExtent "-112000,0,140000,118000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 7638,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*123 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*124 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*126 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*127 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*128 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*129 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*130 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*132 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*133 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*134 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*135 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*136 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*137 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*138 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,1400,2700" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,12,0" +) +xt "0,0,6300,1300" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,12600,2700" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,17400,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*140 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,10800,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*142 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,26200,1600,27400" +st "Declarations" +blo "-7000,27200" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27400,-2800,28600" +st "Ports:" +blo "-7000,28400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,27400,-1000,28600" +st "Pre User:" +blo "-7000,28400" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,28600,18400,30600" +st "constant addressBitNb: positive := 24; +constant dataBitNb: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27400,4000,28600" +st "Diagram Signals:" +blo "-7000,28400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27400,300,28600" +st "Post User:" +blo "-7000,28400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-5000,41800,-5000,41800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 97,0 +usingSuid 1 +emptyRow *143 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*144 (RefLabelRowHdr +) +*145 (TitleRowHdr +) +*146 (FilterRowHdr +) +*147 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*148 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*149 (GroupColHdr +tm "GroupColHdrMgr" +) +*150 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*151 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*152 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*153 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*154 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*155 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*156 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 55,0 +) +) +uid 5622,0 +) +*157 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 56,0 +) +) +uid 5624,0 +) +*158 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 66,0 +) +) +uid 5939,0 +) +*159 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 18 +suid 67,0 +) +) +uid 5941,0 +) +*160 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 22 +suid 71,0 +) +) +uid 6040,0 +) +*161 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 75,0 +) +) +uid 6056,0 +) +*162 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashCE_n" +t "std_ulogic" +o 7 +suid 79,0 +) +) +uid 6786,0 +) +*163 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memOE_n" +t "std_ulogic" +o 19 +suid 81,0 +) +) +uid 6790,0 +) +*164 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashSTS" +t "std_ulogic" +o 13 +suid 83,0 +) +) +uid 6837,0 +) +*165 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 2 +suid 84,0 +) +) +uid 6839,0 +) +*166 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 15 +suid 85,0 +) +) +uid 6841,0 +) +*167 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashEn" +t "std_ulogic" +o 11 +suid 86,0 +) +) +uid 6970,0 +) +*168 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 10 +suid 87,0 +) +) +uid 6972,0 +) +*169 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashRd" +t "std_ulogic" +o 12 +suid 88,0 +) +) +uid 6974,0 +) +*170 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashWr" +t "std_ulogic" +o 14 +suid 89,0 +) +) +uid 6976,0 +) +*171 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +suid 90,0 +) +) +uid 6978,0 +) +*172 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 91,0 +) +) +uid 6980,0 +) +*173 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 92,0 +) +) +uid 6982,0 +) +*174 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "A" +t "unsigned" +b "(23 DOWNTO 0)" +o 1 +suid 93,0 +) +) +uid 6992,0 +) +*175 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 94,0 +) +) +uid 7034,0 +) +*176 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWrDelayed_n" +t "std_ulogic" +o 21 +suid 95,0 +) +) +uid 7046,0 +) +*177 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memRst_n" +t "std_ulogic" +o 20 +suid 96,0 +) +) +uid 7127,0 +) +*178 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 16 +suid 97,0 +) +) +uid 7311,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*179 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *180 (MRCItem +litem &143 +pos 23 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*181 (MRCItem +litem &144 +pos 0 +dimension 20 +uid 3326,0 +) +*182 (MRCItem +litem &145 +pos 1 +dimension 23 +uid 3327,0 +) +*183 (MRCItem +litem &146 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*184 (MRCItem +litem &156 +pos 0 +dimension 20 +uid 5623,0 +) +*185 (MRCItem +litem &157 +pos 1 +dimension 20 +uid 5625,0 +) +*186 (MRCItem +litem &158 +pos 2 +dimension 20 +uid 5940,0 +) +*187 (MRCItem +litem &159 +pos 3 +dimension 20 +uid 5942,0 +) +*188 (MRCItem +litem &160 +pos 4 +dimension 20 +uid 6041,0 +) +*189 (MRCItem +litem &161 +pos 5 +dimension 20 +uid 6057,0 +) +*190 (MRCItem +litem &162 +pos 6 +dimension 20 +uid 6787,0 +) +*191 (MRCItem +litem &163 +pos 7 +dimension 20 +uid 6791,0 +) +*192 (MRCItem +litem &164 +pos 8 +dimension 20 +uid 6838,0 +) +*193 (MRCItem +litem &165 +pos 9 +dimension 20 +uid 6840,0 +) +*194 (MRCItem +litem &166 +pos 10 +dimension 20 +uid 6842,0 +) +*195 (MRCItem +litem &167 +pos 11 +dimension 20 +uid 6971,0 +) +*196 (MRCItem +litem &168 +pos 12 +dimension 20 +uid 6973,0 +) +*197 (MRCItem +litem &169 +pos 13 +dimension 20 +uid 6975,0 +) +*198 (MRCItem +litem &170 +pos 14 +dimension 20 +uid 6977,0 +) +*199 (MRCItem +litem &171 +pos 15 +dimension 20 +uid 6979,0 +) +*200 (MRCItem +litem &172 +pos 16 +dimension 20 +uid 6981,0 +) +*201 (MRCItem +litem &173 +pos 17 +dimension 20 +uid 6983,0 +) +*202 (MRCItem +litem &174 +pos 18 +dimension 20 +uid 6993,0 +) +*203 (MRCItem +litem &175 +pos 19 +dimension 20 +uid 7035,0 +) +*204 (MRCItem +litem &176 +pos 20 +dimension 20 +uid 7047,0 +) +*205 (MRCItem +litem &177 +pos 21 +dimension 20 +uid 7128,0 +) +*206 (MRCItem +litem &178 +pos 22 +dimension 20 +uid 7312,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*207 (MRCItem +litem &147 +pos 0 +dimension 20 +uid 3330,0 +) +*208 (MRCItem +litem &149 +pos 1 +dimension 50 +uid 3331,0 +) +*209 (MRCItem +litem &150 +pos 2 +dimension 100 +uid 3332,0 +) +*210 (MRCItem +litem &151 +pos 3 +dimension 50 +uid 3333,0 +) +*211 (MRCItem +litem &152 +pos 4 +dimension 100 +uid 3334,0 +) +*212 (MRCItem +litem &153 +pos 5 +dimension 100 +uid 3335,0 +) +*213 (MRCItem +litem &154 +pos 6 +dimension 50 +uid 3336,0 +) +*214 (MRCItem +litem &155 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *215 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*216 (RefLabelRowHdr +) +*217 (TitleRowHdr +) +*218 (FilterRowHdr +) +*219 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*220 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*221 (GroupColHdr +tm "GroupColHdrMgr" +) +*222 (NameColHdr +tm "GenericNameColHdrMgr" +) +*223 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*224 (InitColHdr +tm "GenericValueColHdrMgr" +) +*225 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*226 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*227 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *228 (MRCItem +litem &215 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*229 (MRCItem +litem &216 +pos 0 +dimension 20 +uid 3354,0 +) +*230 (MRCItem +litem &217 +pos 1 +dimension 23 +uid 3355,0 +) +*231 (MRCItem +litem &218 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*232 (MRCItem +litem &219 +pos 0 +dimension 20 +uid 3358,0 +) +*233 (MRCItem +litem &221 +pos 1 +dimension 50 +uid 3359,0 +) +*234 (MRCItem +litem &222 +pos 2 +dimension 100 +uid 3360,0 +) +*235 (MRCItem +litem &223 +pos 3 +dimension 100 +uid 3361,0 +) +*236 (MRCItem +litem &224 +pos 4 +dimension 50 +uid 3362,0 +) +*237 (MRCItem +litem &225 +pos 5 +dimension 50 +uid 3363,0 +) +*238 (MRCItem +litem &226 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Memory_test/hds/flash@controller_tb/symbol.sb b/Libs/Memory_test/hds/flash@controller_tb/symbol.sb new file mode 100644 index 0000000..fc3c891 --- /dev/null +++ b/Libs/Memory_test/hds/flash@controller_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flashController_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flashController_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:27" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flashController_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flashController_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:27" +) +(vvPair +variable "unit" +value "flashController_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,37150,22900" +st "Memory_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,41350,23900" +st "flashController_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,46400,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/Memory_test/hds/flash@controller_tester/interface b/Libs/Memory_test/hds/flash@controller_tester/interface new file mode 100644 index 0000000..3f5511b --- /dev/null +++ b/Libs/Memory_test/hds/flash@controller_tester/interface @@ -0,0 +1,1973 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 48,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 116,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 39,0 +) +) +uid 566,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 40,0 +) +) +uid 568,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 41,0 +) +) +uid 570,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +suid 42,0 +) +) +uid 572,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 10 +suid 43,0 +) +) +uid 574,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashEn" +t "std_ulogic" +o 11 +suid 44,0 +) +) +uid 576,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashRd" +t "std_ulogic" +o 12 +suid 45,0 +) +) +uid 578,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "flashWr" +t "std_ulogic" +o 14 +suid 46,0 +) +) +uid 580,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 16 +suid 47,0 +) +) +uid 582,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 48,0 +) +) +uid 584,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 131,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 132,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 133,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 567,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 569,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 571,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 573,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 575,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 577,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 579,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 581,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 583,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 585,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 136,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 137,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 138,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 139,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 140,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 141,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 142,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 143,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 115,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 145,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 280,0 +) +*60 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 282,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 157,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *62 (MRCItem +litem &47 +pos 2 +dimension 20 +) +uid 159,0 +optionalChildren [ +*63 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 160,0 +) +*64 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 161,0 +) +*65 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +*66 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 281,0 +) +*67 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 283,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 163,0 +optionalChildren [ +*68 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 164,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 165,0 +) +*70 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 166,0 +) +*71 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 167,0 +) +*72 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 168,0 +) +*73 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 169,0 +) +*74 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 170,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 158,0 +vaOverrides [ +] +) +] +) +uid 144,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flashController_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flashController_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flashController_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash@controller_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flashController_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "flashController_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 114,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 516,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 517,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +tg (CPTG +uid 518,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 519,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "40550,7000,41450,9500" +st "clock" +ju 2 +blo "41250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 520,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,63000,4700" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 39,0 +) +) +) +*77 (CptPort +uid 521,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 522,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 523,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 524,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,11500" +st "flashAddr" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 525,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,74500,5600" +st "flashAddr : OUT unsigned (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 6 +suid 40,0 +) +) +) +*78 (CptPort +uid 526,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 527,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 528,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 529,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,13000" +st "flashDataIn" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 530,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,77500,2900" +st "flashDataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "flashDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 41,0 +) +) +) +*79 (CptPort +uid 531,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 532,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 533,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 534,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,13500" +st "flashDataOut" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 535,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,77500,6500" +st "flashDataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 9 +suid 42,0 +) +) +) +*80 (CptPort +uid 536,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 537,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 538,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 539,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "32550,7000,33450,14500" +st "flashDataValid" +ju 2 +blo "33250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 540,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,63000,3800" +st "flashDataValid : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "flashDataValid" +t "std_ulogic" +o 10 +suid 43,0 +) +) +) +*81 (CptPort +uid 541,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 542,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38625,5250,39375,6000" +) +tg (CPTG +uid 543,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 544,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "38550,7000,39450,10500" +st "flashEn" +ju 2 +blo "39250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 545,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,63000,7400" +st "flashEn : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashEn" +t "std_ulogic" +o 11 +suid 44,0 +) +) +) +*82 (CptPort +uid 546,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 547,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 548,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 549,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,10500" +st "flashRd" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 550,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,63000,8300" +st "flashRd : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashRd" +t "std_ulogic" +o 12 +suid 45,0 +) +) +) +*83 (CptPort +uid 551,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 552,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 553,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 554,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,10500" +st "flashWr" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 555,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,63000,9200" +st "flashWr : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "flashWr" +t "std_ulogic" +o 14 +suid 46,0 +) +) +) +*84 (CptPort +uid 556,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 557,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 558,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 559,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "36550,7000,37450,12500" +st "memBusEn_n" +ju 2 +blo "37250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 560,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9200,63000,10100" +st "memBusEn_n : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "memBusEn_n" +t "std_ulogic" +o 16 +suid 47,0 +) +) +) +*85 (CptPort +uid 561,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 562,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +tg (CPTG +uid 563,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 564,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "42550,7000,43450,9500" +st "reset" +ju 2 +blo "43250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 565,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,62000,11000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 48,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,109000,14000" +) +oxt "15000,6000,107000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "56250,9100,62250,10000" +st "memory_test" +blo "56250,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "56250,10000,67750,10900" +st "flashController_tester" +blo "56250,10700" +) +) +gi *86 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "38000,6000,51500,9600" +st "Generic Declarations + +addressBitNb positive 24 +dataBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*87 (Grouping +uid 16,0 +optionalChildren [ +*88 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "70,52,1086,742" +viewArea "-500,-500,71230,48820" +cachedDiagramExtent "0,0,107000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory_test" +entityName "flashController_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,11000,44500,11900" +st "User:" +blo "42000,11700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,11900,44000,11900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 585,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb b/Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb new file mode 100644 index 0000000..e1e799f --- /dev/null +++ b/Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb @@ -0,0 +1,1951 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 109,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "A" +t "unsigned" +b "(23 DOWNTO 0)" +o 45 +suid 1,0 +) +) +uid 91,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 48 +suid 2,0 +) +) +uid 93,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 45 +suid 3,0 +) +) +uid 95,0 +) +*17 (LogPort +port (LogicalPort +m 2 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 45 +suid 4,0 +) +) +uid 97,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "OE_n" +t "std_ulogic" +o 48 +suid 5,0 +) +) +uid 99,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "RP_n" +t "std_ulogic" +o 48 +suid 6,0 +) +) +uid 101,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "STS" +t "std_ulogic" +o 48 +suid 7,0 +) +) +uid 103,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 48 +suid 8,0 +) +) +uid 105,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 124,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 125,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 126,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 92,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 94,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 96,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 98,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 100,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 102,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 104,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 106,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 130,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 131,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 132,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 133,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 134,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 135,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 136,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 108,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 138,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "fileSpec" +type "string" +value "\"flash.srec\"" +) +uid 233,0 +) +*56 (LogGeneric +generic (GiElement +name "T_W13" +type "time" +value "500 ns" +) +uid 258,0 +) +*57 (LogGeneric +generic (GiElement +name "T_W16_program" +type "time" +value "630 us" +) +uid 260,0 +) +*58 (LogGeneric +generic (GiElement +name "T_W16_erase" +type "time" +value "5 sec" +) +uid 262,0 +) +*59 (LogGeneric +generic (GiElement +name "T_R2" +type "time" +value "120 ns" +) +uid 264,0 +) +*60 (LogGeneric +generic (GiElement +name "T_R3" +type "time" +value "120 ns" +) +uid 266,0 +) +*61 (LogGeneric +generic (GiElement +name "T_R7" +type "time" +value "0 ns" +) +uid 268,0 +) +*62 (LogGeneric +generic (GiElement +name "T_R8" +type "time" +value "55 ns" +) +uid 270,0 +) +*63 (LogGeneric +generic (GiElement +name "T_R9" +type "time" +value "15 ns" +) +uid 272,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*64 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *65 (MRCItem +litem &43 +pos 9 +dimension 20 +) +uid 152,0 +optionalChildren [ +*66 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 153,0 +) +*67 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 154,0 +) +*68 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*69 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 234,0 +) +*70 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 259,0 +) +*71 (MRCItem +litem &57 +pos 2 +dimension 20 +uid 261,0 +) +*72 (MRCItem +litem &58 +pos 3 +dimension 20 +uid 263,0 +) +*73 (MRCItem +litem &59 +pos 4 +dimension 20 +uid 265,0 +) +*74 (MRCItem +litem &60 +pos 5 +dimension 20 +uid 267,0 +) +*75 (MRCItem +litem &61 +pos 6 +dimension 20 +uid 269,0 +) +*76 (MRCItem +litem &62 +pos 7 +dimension 20 +uid 271,0 +) +*77 (MRCItem +litem &63 +pos 8 +dimension 20 +uid 273,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*78 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 157,0 +) +*79 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 158,0 +) +*80 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 159,0 +) +*81 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 160,0 +) +*82 (MRCItem +litem &52 +pos 4 +dimension 77 +uid 161,0 +) +*83 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 162,0 +) +*84 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 163,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 137,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_28@f128@j3@a" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_28F128J3A" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flash_28F128J3A" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:27" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flash_28F128J3A" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_28@f128@j3@a/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_28F128J3A/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:27" +) +(vvPair +variable "unit" +value "flash_28F128J3A" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 107,0 +optionalChildren [ +*85 (SymbolBody +uid 8,0 +optionalChildren [ +*86 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,16625,35000,17375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "36000,16500,36900,17500" +st "A" +blo "36000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,7600,16500,8500" +st "A : IN unsigned (23 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "A" +t "unsigned" +b "(23 DOWNTO 0)" +o 45 +suid 1,0 +) +) +) +*87 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,24625,35000,25375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "36000,24500,39200,25500" +st "BYTE_n" +blo "36000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,8500,11000,9400" +st "BYTE_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 48 +suid 2,0 +) +) +) +*88 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,18625,35000,19375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "36000,18500,37500,19500" +st "CE" +blo "36000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,9400,20500,10300" +st "CE : IN std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 45 +suid 3,0 +) +) +) +*89 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,16625,43750,17375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "40400,16500,42000,17500" +st "DQ" +ju 2 +blo "42000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,13900,19500,14800" +st "DQ : INOUT std_logic_vector (15 DOWNTO 0)" +) +thePort (LogicalPort +m 2 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 45 +suid 4,0 +) +) +) +*90 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,22625,35000,23375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "36000,22500,38300,23500" +st "OE_n" +blo "36000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,10300,11000,11200" +st "OE_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "OE_n" +t "std_ulogic" +o 48 +suid 5,0 +) +) +) +*91 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,28625,35000,29375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +) +xt "36000,28500,38300,29500" +st "RP_n" +blo "36000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,11200,11000,12100" +st "RP_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RP_n" +t "std_ulogic" +o 48 +suid 6,0 +) +) +) +*92 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43000,18625,43750,19375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "40100,18500,42000,19500" +st "STS" +ju 2 +blo "42000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,13000,11000,13900" +st "STS : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "STS" +t "std_ulogic" +o 48 +suid 7,0 +) +) +) +*93 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34250,20625,35000,21375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +) +xt "36000,20500,38400,21500" +st "WE_n" +blo "36000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,12100,11000,13000" +st "WE_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 48 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,13000,43000,31000" +) +oxt "15000,6000,23000,22000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "34800,31000,40800,31900" +st "Memory_test" +blo "34800,31700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "34800,31900,42800,32800" +st "flash_28F128J3A" +blo "34800,32600" +) +) +gi *94 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "35000,34600,53000,44500" +st "Generic Declarations + +fileSpec string \"flash.srec\" +T_W13 time 500 ns +T_W16_program time 630 us +T_W16_erase time 5 sec +T_R2 time 120 ns +T_R3 time 120 ns +T_R7 time 0 ns +T_R8 time 55 ns +T_R9 time 15 ns " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "fileSpec" +type "string" +value "\"flash.srec\"" +) +(GiElement +name "T_W13" +type "time" +value "500 ns" +) +(GiElement +name "T_W16_program" +type "time" +value "630 us" +) +(GiElement +name "T_W16_erase" +type "time" +value "5 sec" +) +(GiElement +name "T_R2" +type "time" +value "120 ns" +) +(GiElement +name "T_R3" +type "time" +value "120 ns" +) +(GiElement +name "T_R7" +type "time" +value "0 ns" +) +(GiElement +name "T_R8" +type "time" +value "55 ns" +) +(GiElement +name "T_R9" +type "time" +value "15 ns" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*95 (Grouping +uid 16,0 +optionalChildren [ +*96 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,47000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,44000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "47000,44000,51000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "47200,44000,50800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,47000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,46400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,46000,30000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "26200,46000,29800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "47000,45000,67000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "47200,45200,60400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,67000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,53000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,44000,47000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "32000,44500,41000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,47000,30000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "26200,47000,29200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*104 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,48000,30000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "26200,48000,29800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*105 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,47000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,40400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "26000,44000,67000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *106 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,0,-600,1000" +st "Package List" +blo "-6000,800" +) +*108 (MLText +uid 50,0 +va (VaSet +) +xt "-6000,1000,12600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "41,38,1302,971" +viewArea "-7100,-1100,68966,56643" +cachedDiagramExtent "-6000,0,67000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-6000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *109 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *110 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,5600,-600,6600" +st "Declarations" +blo "-6000,6400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,6600,-3300,7600" +st "Ports:" +blo "-6000,7400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,14800,-3500,15700" +st "User:" +blo "-6000,15500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-6000,5600,-200,6600" +st "Internal User:" +blo "-6000,6400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,15700,-4000,15700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-6000,5600,-6000,5600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 296,0 +activeModelName "Symbol" +) diff --git a/Libs/Memory_test/hds/flash_tb/struct.bd b/Libs/Memory_test/hds/flash_tb/struct.bd new file mode 100644 index 0000000..7681750 --- /dev/null +++ b/Libs/Memory_test/hds/flash_tb/struct.bd @@ -0,0 +1,3224 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I1" +duLibraryName "memory_test" +duName "flash_tester" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I0" +duLibraryName "memory_test" +duName "flash_28F128J3A" +elements [ +(GiElement +name "fileSpec" +type "string" +value "\"U:\\ELN_board\\Simulation\\flash.srec\"" +) +(GiElement +name "T_W13" +type "time" +value "500 ns" +) +(GiElement +name "T_W16_program" +type "time" +value "1 us" +) +(GiElement +name "T_W16_erase" +type "time" +value "1.5 us" +) +(GiElement +name "T_R2" +type "time" +value "120 ns" +) +(GiElement +name "T_R3" +type "time" +value "120 ns" +) +(GiElement +name "T_R7" +type "time" +value "0 ns" +) +(GiElement +name "T_R8" +type "time" +value "55 ns" +) +(GiElement +name "T_R9" +type "time" +value "15 ns" +) +] +mwi 0 +uid 5435,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flash_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flash_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "flash_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,77000,91000,79000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,77500,87800,78500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,77000,66000,79000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "47750,77350,58250,78650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,83000,66000,85000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,83500,61400,84500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,77000,72000,79000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,77500,71000,78500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,79000,66000,81000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,79500,61400,80500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,79000,45000,81000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,79500,43800,80500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,81000,45000,83000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,81500,43200,82500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,79000,91000,85000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "66200,79200,79400,80200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,81000,66000,83000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "45200,81500,62000,82500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "40000,83000,45000,85000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "40200,83500,44400,84500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "40000,77000,91000,85000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "24000,57000,68000,65000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "courier,12,1" +) +xt "24600,64900,35200,66300" +st "memory_test" +blo "24600,66100" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "courier,12,1" +) +xt "24600,66300,34400,67700" +st "flash_tester" +blo "24600,67500" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "courier,12,1" +) +xt "24600,67700,27000,69100" +st "I1" +blo "24600,68900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "courier,9,0" +) +xt "24000,69800,47000,71600" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +) +*16 (Net +uid 5007,0 +decl (Decl +n "RP_n" +t "std_ulogic" +o 6 +suid 47,0 +) +declText (MLText +uid 5008,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL RP_n : std_ulogic" +) +) +*17 (Net +uid 5015,0 +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 2 +suid 48,0 +) +declText (MLText +uid 5016,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL BYTE_n : std_ulogic" +) +) +*18 (Net +uid 5023,0 +decl (Decl +n "OE_n" +t "std_ulogic" +o 5 +suid 49,0 +) +declText (MLText +uid 5024,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL OE_n : std_ulogic" +) +) +*19 (Net +uid 5031,0 +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 50,0 +) +declText (MLText +uid 5032,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL WE_n : std_ulogic" +) +) +*20 (Net +uid 5039,0 +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 51,0 +) +declText (MLText +uid 5040,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,23000,900" +st "SIGNAL CE : std_ulogic_vector(2 DOWNTO 0)" +) +) +*21 (Net +uid 5047,0 +decl (Decl +n "A" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 52,0 +) +declText (MLText +uid 5048,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,25000,900" +st "SIGNAL A : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*22 (Net +uid 5055,0 +decl (Decl +n "STS" +t "std_ulogic" +o 7 +suid 53,0 +) +declText (MLText +uid 5056,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL STS : std_ulogic" +) +) +*23 (Net +uid 5063,0 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 54,0 +) +declText (MLText +uid 5064,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,27500,900" +st "SIGNAL DQ : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*24 (SaComponent +uid 5435,0 +optionalChildren [ +*25 (CptPort +uid 5403,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5404,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,34625,46000,35375" +) +tg (CPTG +uid 5405,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5406,0 +va (VaSet +) +xt "47000,34500,47900,35500" +st "A" +blo "47000,35300" +) +) +thePort (LogicalPort +decl (Decl +n "A" +t "unsigned" +b "(23 DOWNTO 0)" +o 45 +suid 1,0 +) +) +) +*26 (CptPort +uid 5407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5408,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,42625,46000,43375" +) +tg (CPTG +uid 5409,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5410,0 +va (VaSet +) +xt "47000,42500,50200,43500" +st "BYTE_n" +blo "47000,43300" +) +) +thePort (LogicalPort +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 48 +suid 2,0 +) +) +) +*27 (CptPort +uid 5411,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5412,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,36625,46000,37375" +) +tg (CPTG +uid 5413,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5414,0 +va (VaSet +) +xt "47000,36500,48500,37500" +st "CE" +blo "47000,37300" +) +) +thePort (LogicalPort +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 45 +suid 3,0 +) +) +) +*28 (CptPort +uid 5415,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 5416,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,34625,54750,35375" +) +tg (CPTG +uid 5417,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5418,0 +va (VaSet +) +xt "51400,34500,53000,35500" +st "DQ" +ju 2 +blo "53000,35300" +) +) +thePort (LogicalPort +m 2 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 45 +suid 4,0 +) +) +) +*29 (CptPort +uid 5419,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5420,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,40625,46000,41375" +) +tg (CPTG +uid 5421,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5422,0 +va (VaSet +) +xt "47000,40500,49300,41500" +st "OE_n" +blo "47000,41300" +) +) +thePort (LogicalPort +decl (Decl +n "OE_n" +t "std_ulogic" +o 48 +suid 5,0 +) +) +) +*30 (CptPort +uid 5423,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5424,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,46625,46000,47375" +) +tg (CPTG +uid 5425,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5426,0 +va (VaSet +) +xt "47000,46500,49300,47500" +st "RP_n" +blo "47000,47300" +) +) +thePort (LogicalPort +decl (Decl +n "RP_n" +t "std_ulogic" +o 48 +suid 6,0 +) +) +) +*31 (CptPort +uid 5427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5428,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,36625,54750,37375" +) +tg (CPTG +uid 5429,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5430,0 +va (VaSet +) +xt "51100,36500,53000,37500" +st "STS" +ju 2 +blo "53000,37300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "STS" +t "std_ulogic" +o 48 +suid 7,0 +) +) +) +*32 (CptPort +uid 5431,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5432,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,38625,46000,39375" +) +tg (CPTG +uid 5433,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5434,0 +va (VaSet +) +xt "47000,38500,49400,39500" +st "WE_n" +blo "47000,39300" +) +) +thePort (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 48 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 5436,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "46000,31000,54000,49000" +) +oxt "35000,13000,43000,31000" +ttg (MlTextGroup +uid 5437,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 5438,0 +va (VaSet +font "courier,8,1" +) +xt "45800,49000,51300,50000" +st "memory_test" +blo "45800,49800" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 5439,0 +va (VaSet +font "courier,8,1" +) +xt "45800,50000,52600,51000" +st "flash_28F128J3A" +blo "45800,50800" +tm "CptNameMgr" +) +*35 (Text +uid 5440,0 +va (VaSet +font "courier,8,1" +) +xt "45800,51000,46800,52000" +st "I0" +blo "45800,51800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5441,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5442,0 +text (MLText +uid 5443,0 +va (VaSet +font "courier,8,0" +) +xt "46000,52600,80500,60700" +st "fileSpec = \"U:\\ELN_board\\Simulation\\flash.srec\" ( string ) +T_W13 = 500 ns ( time ) +T_W16_program = 1 us ( time ) +T_W16_erase = 1.5 us ( time ) +T_R2 = 120 ns ( time ) +T_R3 = 120 ns ( time ) +T_R7 = 0 ns ( time ) +T_R8 = 55 ns ( time ) +T_R9 = 15 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "fileSpec" +type "string" +value "\"U:\\ELN_board\\Simulation\\flash.srec\"" +) +(GiElement +name "T_W13" +type "time" +value "500 ns" +) +(GiElement +name "T_W16_program" +type "time" +value "1 us" +) +(GiElement +name "T_W16_erase" +type "time" +value "1.5 us" +) +(GiElement +name "T_R2" +type "time" +value "120 ns" +) +(GiElement +name "T_R3" +type "time" +value "120 ns" +) +(GiElement +name "T_R7" +type "time" +value "0 ns" +) +(GiElement +name "T_R8" +type "time" +value "55 ns" +) +(GiElement +name "T_R9" +type "time" +value "15 ns" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*36 (Wire +uid 5009,0 +shape (OrthoPolyLine +uid 5010,0 +va (VaSet +vasetType 3 +) +xt "44000,47000,45250,57000" +pts [ +"45250,47000" +"44000,47000" +"44000,57000" +] +) +start &30 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5013,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5014,0 +va (VaSet +font "courier,12,0" +) +xt "40250,45600,43050,46900" +st "RP_n" +blo "40250,46600" +tm "WireNameMgr" +) +) +on &16 +) +*37 (Wire +uid 5017,0 +shape (OrthoPolyLine +uid 5018,0 +va (VaSet +vasetType 3 +) +xt "40000,43000,45250,57000" +pts [ +"45250,43000" +"40000,43000" +"40000,57000" +] +) +start &26 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5021,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5022,0 +va (VaSet +font "courier,12,0" +) +xt "39250,41600,44650,43000" +st "BYTE_n" +blo "39250,42800" +tm "WireNameMgr" +) +) +on &17 +) +*38 (Wire +uid 5025,0 +shape (OrthoPolyLine +uid 5026,0 +va (VaSet +vasetType 3 +) +xt "38000,41000,45250,57000" +pts [ +"45250,41000" +"38000,41000" +"38000,57000" +] +) +start &29 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5029,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5030,0 +va (VaSet +font "courier,12,0" +) +xt "40250,39600,43050,40900" +st "OE_n" +blo "40250,40600" +tm "WireNameMgr" +) +) +on &18 +) +*39 (Wire +uid 5033,0 +shape (OrthoPolyLine +uid 5034,0 +va (VaSet +vasetType 3 +) +xt "36000,39000,45250,57000" +pts [ +"45250,39000" +"36000,39000" +"36000,57000" +] +) +start &32 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5037,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5038,0 +va (VaSet +font "courier,12,0" +) +xt "39250,37600,42050,38900" +st "WE_n" +blo "39250,38600" +tm "WireNameMgr" +) +) +on &19 +) +*40 (Wire +uid 5041,0 +shape (OrthoPolyLine +uid 5042,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "34000,37000,45250,57000" +pts [ +"45250,37000" +"34000,37000" +"34000,57000" +] +) +start &27 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5045,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5046,0 +va (VaSet +font "courier,12,0" +) +xt "41250,35600,42650,36900" +st "CE" +blo "41250,36600" +tm "WireNameMgr" +) +) +on &20 +) +*41 (Wire +uid 5049,0 +shape (OrthoPolyLine +uid 5050,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "32000,35000,45250,57000" +pts [ +"45250,35000" +"32000,35000" +"32000,57000" +] +) +start &25 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5053,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5054,0 +va (VaSet +font "courier,12,0" +) +xt "42250,33600,42950,34900" +st "A" +blo "42250,34600" +tm "WireNameMgr" +) +) +on &21 +) +*42 (Wire +uid 5057,0 +shape (OrthoPolyLine +uid 5058,0 +va (VaSet +vasetType 3 +) +xt "54750,37000,58000,57000" +pts [ +"54750,37000" +"58000,37000" +"58000,57000" +] +) +start &31 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5061,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5062,0 +va (VaSet +font "courier,12,0" +) +xt "56750,35600,59850,37000" +st "STS" +blo "56750,36800" +tm "WireNameMgr" +) +) +on &22 +) +*43 (Wire +uid 5065,0 +shape (OrthoPolyLine +uid 5066,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "54750,35000,60000,57000" +pts [ +"54750,35000" +"60000,35000" +"60000,57000" +] +) +start &28 +end &12 +sat 32 +eat 4 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5069,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5070,0 +va (VaSet +font "courier,12,0" +) +xt "56750,33600,58150,34900" +st "DQ" +blo "56750,34600" +tm "WireNameMgr" +) +) +on &23 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *44 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 1297,0 +va (VaSet +font "courier,12,0" +) +xt "-7000,19600,2500,21000" +st "Package List" +blo "-7000,20800" +) +*46 (MLText +uid 1298,0 +va (VaSet +) +xt "-7000,21000,11600,24000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*48 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*49 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*50 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*51 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*52 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*53 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "7,31,1370,1010" +viewArea "-8500,18100,93316,92593" +cachedDiagramExtent "-7000,0,91000,85000" +pageSetupInfo (PageSetupInfo +ptrCmd "Generic PostScript Printer,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +scale 75 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 5521,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*55 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*56 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*58 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*59 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*61 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*62 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*64 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*65 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*67 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*68 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*70 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,1400,2700" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,12,0" +) +xt "0,0,6300,1300" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,12600,2700" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,17400,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*72 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,10800,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*74 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,25800,1600,27000" +st "Declarations" +blo "-7000,26800" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27000,-2800,28200" +st "Ports:" +blo "-7000,28000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,27000,-1000,28200" +st "Pre User:" +blo "-7000,28000" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,28200,18400,30200" +st "constant addressBitNb: positive := 24; +constant dataBitNb: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27000,4000,28200" +st "Diagram Signals:" +blo "-7000,28000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,27000,300,28200" +st "Post User:" +blo "-7000,28000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-5000,41400,-5000,41400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 54,0 +usingSuid 1 +emptyRow *75 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*76 (RefLabelRowHdr +) +*77 (TitleRowHdr +) +*78 (FilterRowHdr +) +*79 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*80 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*81 (GroupColHdr +tm "GroupColHdrMgr" +) +*82 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*83 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*84 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*85 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*86 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*87 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*88 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RP_n" +t "std_ulogic" +o 6 +suid 47,0 +) +) +uid 5071,0 +) +*89 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 2 +suid 48,0 +) +) +uid 5073,0 +) +*90 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "OE_n" +t "std_ulogic" +o 5 +suid 49,0 +) +) +uid 5075,0 +) +*91 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 50,0 +) +) +uid 5077,0 +) +*92 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 51,0 +) +) +uid 5079,0 +) +*93 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "A" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 52,0 +) +) +uid 5081,0 +) +*94 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "STS" +t "std_ulogic" +o 7 +suid 53,0 +) +) +uid 5083,0 +) +*95 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 54,0 +) +) +uid 5085,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*96 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *97 (MRCItem +litem &75 +pos 8 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*98 (MRCItem +litem &76 +pos 0 +dimension 20 +uid 3326,0 +) +*99 (MRCItem +litem &77 +pos 1 +dimension 23 +uid 3327,0 +) +*100 (MRCItem +litem &78 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*101 (MRCItem +litem &88 +pos 0 +dimension 20 +uid 5072,0 +) +*102 (MRCItem +litem &89 +pos 1 +dimension 20 +uid 5074,0 +) +*103 (MRCItem +litem &90 +pos 2 +dimension 20 +uid 5076,0 +) +*104 (MRCItem +litem &91 +pos 3 +dimension 20 +uid 5078,0 +) +*105 (MRCItem +litem &92 +pos 4 +dimension 20 +uid 5080,0 +) +*106 (MRCItem +litem &93 +pos 5 +dimension 20 +uid 5082,0 +) +*107 (MRCItem +litem &94 +pos 6 +dimension 20 +uid 5084,0 +) +*108 (MRCItem +litem &95 +pos 7 +dimension 20 +uid 5086,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*109 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 3330,0 +) +*110 (MRCItem +litem &81 +pos 1 +dimension 50 +uid 3331,0 +) +*111 (MRCItem +litem &82 +pos 2 +dimension 100 +uid 3332,0 +) +*112 (MRCItem +litem &83 +pos 3 +dimension 50 +uid 3333,0 +) +*113 (MRCItem +litem &84 +pos 4 +dimension 100 +uid 3334,0 +) +*114 (MRCItem +litem &85 +pos 5 +dimension 100 +uid 3335,0 +) +*115 (MRCItem +litem &86 +pos 6 +dimension 50 +uid 3336,0 +) +*116 (MRCItem +litem &87 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *117 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*118 (RefLabelRowHdr +) +*119 (TitleRowHdr +) +*120 (FilterRowHdr +) +*121 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*122 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*123 (GroupColHdr +tm "GroupColHdrMgr" +) +*124 (NameColHdr +tm "GenericNameColHdrMgr" +) +*125 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*126 (InitColHdr +tm "GenericValueColHdrMgr" +) +*127 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*128 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*129 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *130 (MRCItem +litem &117 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*131 (MRCItem +litem &118 +pos 0 +dimension 20 +uid 3354,0 +) +*132 (MRCItem +litem &119 +pos 1 +dimension 23 +uid 3355,0 +) +*133 (MRCItem +litem &120 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*134 (MRCItem +litem &121 +pos 0 +dimension 20 +uid 3358,0 +) +*135 (MRCItem +litem &123 +pos 1 +dimension 50 +uid 3359,0 +) +*136 (MRCItem +litem &124 +pos 2 +dimension 100 +uid 3360,0 +) +*137 (MRCItem +litem &125 +pos 3 +dimension 100 +uid 3361,0 +) +*138 (MRCItem +litem &126 +pos 4 +dimension 50 +uid 3362,0 +) +*139 (MRCItem +litem &127 +pos 5 +dimension 50 +uid 3363,0 +) +*140 (MRCItem +litem &128 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Memory_test/hds/flash_tb/symbol.sb b/Libs/Memory_test/hds/flash_tb/symbol.sb new file mode 100644 index 0000000..526b626 --- /dev/null +++ b/Libs/Memory_test/hds/flash_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flash_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:27" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flash_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:27" +) +(vvPair +variable "unit" +value "flash_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,37150,22900" +st "Memory_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,34750,23900" +st "flash_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,44000,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/Memory_test/hds/flash_tester/interface b/Libs/Memory_test/hds/flash_tester/interface new file mode 100644 index 0000000..278989e --- /dev/null +++ b/Libs/Memory_test/hds/flash_tester/interface @@ -0,0 +1,1841 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 32,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 109,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "A" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 25,0 +) +) +uid 458,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 2 +suid 26,0 +) +) +uid 460,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 27,0 +) +) +uid 462,0 +) +*17 (LogPort +port (LogicalPort +m 2 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 28,0 +) +) +uid 464,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "OE_n" +t "std_ulogic" +o 5 +suid 29,0 +) +) +uid 466,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RP_n" +t "std_ulogic" +o 6 +suid 30,0 +) +) +uid 468,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "STS" +t "std_ulogic" +o 7 +suid 31,0 +) +) +uid 470,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 32,0 +) +) +uid 472,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 124,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 125,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 126,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 459,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 461,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 463,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 465,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 467,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 469,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 471,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 473,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 130,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 131,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 132,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 133,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 134,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 135,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 136,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 108,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 138,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 210,0 +) +*56 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 212,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 152,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 153,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 154,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 211,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 213,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 157,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 158,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 159,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 160,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 161,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 162,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 163,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 137,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "flash_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "flash_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/flash_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:28" +) +(vvPair +variable "unit" +value "flash_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 107,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 418,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 419,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 420,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 421,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,7500" +st "A" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 422,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,70500,3800" +st "A : OUT unsigned (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "A" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 25,0 +) +) +) +*73 (CptPort +uid 423,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 424,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 425,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 426,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,10000" +st "BYTE_n" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 427,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59000,4700" +st "BYTE_n : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "BYTE_n" +t "std_ulogic" +o 2 +suid 26,0 +) +) +) +*74 (CptPort +uid 428,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 429,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 430,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 431,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,8000" +st "CE" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 432,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,68500,5600" +st "CE : OUT std_ulogic_vector (2 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "CE" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 27,0 +) +) +) +*75 (CptPort +uid 433,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 434,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,5250,51375,6000" +) +tg (CPTG +uid 435,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 436,0 +va (VaSet +font "courier,8,0" +) +xt "52000,6000,53000,6900" +st "DQ" +blo "52000,6700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 437,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,72000,9200" +st "DQ : INOUT std_logic_vector (dataBitNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 2 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 28,0 +) +) +) +*76 (CptPort +uid 438,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 439,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 440,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 441,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9000" +st "OE_n" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 442,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,59000,6500" +st "OE_n : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "OE_n" +t "std_ulogic" +o 5 +suid 29,0 +) +) +) +*77 (CptPort +uid 443,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 444,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 445,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 446,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "34550,7000,35450,9000" +st "RP_n" +ju 2 +blo "35250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 447,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,59000,7400" +st "RP_n : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RP_n" +t "std_ulogic" +o 6 +suid 30,0 +) +) +) +*78 (CptPort +uid 448,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 449,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48625,5250,49375,6000" +) +tg (CPTG +uid 450,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 451,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "48550,7000,49450,8500" +st "STS" +ju 2 +blo "49250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 452,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,59000,2900" +st "STS : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "STS" +t "std_ulogic" +o 7 +suid 31,0 +) +) +) +*79 (CptPort +uid 453,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 454,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 455,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 456,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9000" +st "WE_n" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 457,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,59000,8300" +st "WE_n : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 32,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,59000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "33750,9100,39750,10000" +st "memory_test" +blo "33750,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "33750,10000,40250,10900" +st "flash_tester" +blo "33750,10700" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "13000,6000,26500,9600" +st "Generic Declarations + +addressBitNb positive 24 +dataBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*94 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,10,1016,690" +viewArea "-500,-500,71230,47920" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory_test" +entityName "flash_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,9200,44500,10100" +st "User:" +blo "42000,9900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,44000,10100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 473,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/Memory_test/hds/sdram@controller_tb/struct.bd b/Libs/Memory_test/hds/sdram@controller_tb/struct.bd new file mode 100644 index 0000000..c8d3137 --- /dev/null +++ b/Libs/Memory_test/hds/sdram@controller_tb/struct.bd @@ -0,0 +1,6053 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I1" +duLibraryName "memory_test" +duName "sdramController_tester" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I2" +duLibraryName "memory_test" +duName "sdram_mt48lc16m16a2" +elements [ +(GiElement +name "addr_bits" +type "integer" +value "rowAddressBitNb" +) +(GiElement +name "data_bits" +type "integer" +value "dataBitNb" +) +(GiElement +name "col_bits" +type "integer" +value "colAddressBitNb" +) +(GiElement +name "index" +type "integer" +value "0" +) +(GiElement +name "fname" +type "string" +value "\"U:\\ELN_board\\Simulation\\sdram.srec\"" +) +(GiElement +name "tAC" +type "time" +value "6 ns" +) +(GiElement +name "tHZ" +type "time" +value "7 ns" +) +(GiElement +name "tOH" +type "time" +value "2.7 ns" +) +(GiElement +name "tMRD" +type "integer" +value "2" +) +(GiElement +name "tRAS" +type "time" +value "44 ns" +) +(GiElement +name "tRC" +type "time" +value "66 ns" +) +(GiElement +name "tRCD" +type "time" +value "20 ns" +) +(GiElement +name "tRP" +type "time" +value "20 ns" +) +(GiElement +name "tRRD" +type "time" +value "15 ns" +) +(GiElement +name "tWRa" +type "time" +value "7.5 ns" +) +(GiElement +name "tWRp" +type "time" +value "15 ns" +) +(GiElement +name "tAH" +type "time" +value "0.8 ns" +) +(GiElement +name "tAS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCH" +type "time" +value "2.5 ns" +) +(GiElement +name "tCL" +type "time" +value "2.5 ns" +) +(GiElement +name "tCK" +type "time" +value "10 ns" +) +(GiElement +name "tDH" +type "time" +value "0.8 ns" +) +(GiElement +name "tDS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCKH" +type "time" +value "0.8 ns" +) +(GiElement +name "tCKS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCMH" +type "time" +value "0.8 ns" +) +(GiElement +name "tCMS" +type "time" +value "1.5 ns" +) +] +mwi 0 +uid 5983,0 +) +(Instance +name "I0" +duLibraryName "memory" +duName "sdramController" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "rowAddressBitNb" +) +(GiElement +name "chipBankAddressBitNb" +type "positive" +value "bankAddressBitNb" +) +] +mwi 0 +uid 6647,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdramController_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramController_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:34" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramController_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdramController_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:45:34" +) +(vvPair +variable "unit" +value "sdramController_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,85000,102000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,85500,98800,86500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,85000,77000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "58750,85350,69250,86650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,91000,77000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,91500,72400,92500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,85000,83000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,85500,82000,86500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,87000,77000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,87500,72400,88500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,87000,56000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,87500,54800,88500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,89000,56000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,89500,54200,90500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,87000,102000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,87200,90400,88200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,89000,77000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,89500,75400,90500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,91000,56000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,91500,55400,92500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "51000,85000,102000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "-3000,67000,81000,75000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "courier,12,1" +) +xt "-2400,74900,8200,76300" +st "memory_test" +blo "-2400,76100" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "courier,12,1" +) +xt "-2400,76300,15800,77700" +st "sdramController_tester" +blo "-2400,77500" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "courier,12,1" +) +xt "-2400,77700,0,79100" +st "I1" +blo "-2400,78900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "courier,9,0" +) +xt "-3000,79800,20000,81600" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +) +*16 (Net +uid 5550,0 +decl (Decl +n "reset" +t "std_ulogic" +o 17 +suid 55,0 +) +declText (MLText +uid 5551,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,129500,-5300" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 5558,0 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 56,0 +) +declText (MLText +uid 5559,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,129500,-5300" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 5566,0 +decl (Decl +n "ramEn" +t "std_ulogic" +o 14 +suid 57,0 +) +declText (MLText +uid 5567,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,129500,-5300" +st "SIGNAL ramEn : std_ulogic" +) +) +*19 (Net +uid 5574,0 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 13 +suid 58,0 +) +declText (MLText +uid 5575,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,129500,-5300" +st "SIGNAL ramDataValid : std_ulogic" +) +) +*20 (Net +uid 5582,0 +decl (Decl +n "ramWr" +t "std_ulogic" +o 16 +suid 59,0 +) +declText (MLText +uid 5583,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,129500,-5300" +st "SIGNAL ramWr : std_ulogic" +) +) +*21 (Net +uid 5590,0 +decl (Decl +n "ramRd" +t "std_ulogic" +o 15 +suid 60,0 +) +declText (MLText +uid 5591,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,129500,-5300" +st "SIGNAL ramRd : std_ulogic" +) +) +*22 (Net +uid 5598,0 +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 61,0 +) +declText (MLText +uid 5599,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,144000,-5300" +st "SIGNAL ramDataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*23 (Net +uid 5606,0 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 62,0 +) +declText (MLText +uid 5607,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,144000,-5300" +st "SIGNAL ramDataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*24 (Net +uid 5614,0 +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 63,0 +) +declText (MLText +uid 5615,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "112000,-6200,141000,-5300" +st "SIGNAL ramAddr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 5907,0 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "(rowAddressBitNb-1 DOWNTO 0)" +o 5 +suid 64,0 +) +declText (MLText +uid 5908,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,133000,1100" +st "SIGNAL memAddress : std_ulogic_vector(rowAddressBitNb-1 DOWNTO 0)" +) +) +*26 (Net +uid 5913,0 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "(bankAddressBitNb-1 DOWNTO 0)" +o 6 +suid 65,0 +) +declText (MLText +uid 5914,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,133500,1100" +st "SIGNAL memBankAddress : std_ulogic_vector(bankAddressBitNb-1 DOWNTO 0)" +) +) +*27 (Net +uid 5919,0 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 66,0 +) +declText (MLText +uid 5920,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,130000,1100" +st "SIGNAL memDataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*28 (Net +uid 5927,0 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 67,0 +) +declText (MLText +uid 5928,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,130000,1100" +st "SIGNAL memDataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*29 (SaComponent +uid 5983,0 +optionalChildren [ +*30 (CptPort +uid 5943,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5944,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,33625,57000,34375" +) +tg (CPTG +uid 5945,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5946,0 +va (VaSet +) +xt "58000,33500,59900,34500" +st "addr" +blo "58000,34300" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "std_ulogic_vector" +b "( addr_bits-1 DOWNTO 0 )" +o 9 +suid 22,0 +) +) +) +*31 (CptPort +uid 5947,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5948,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,35625,57000,36375" +) +tg (CPTG +uid 5949,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5950,0 +va (VaSet +) +xt "58000,35500,59300,36500" +st "Ba" +blo "58000,36300" +) +) +thePort (LogicalPort +decl (Decl +n "Ba" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 1 +suid 23,0 +i "\"00\"" +) +) +) +*32 (CptPort +uid 5951,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5952,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,41625,57000,42375" +) +tg (CPTG +uid 5953,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5954,0 +va (VaSet +) +xt "58000,41500,60600,42500" +st "Cas_n" +blo "58000,42300" +) +) +thePort (LogicalPort +decl (Decl +n "Cas_n" +t "std_ulogic" +o 2 +suid 24,0 +) +) +) +*33 (CptPort +uid 5955,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5956,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,47625,57000,48375" +) +tg (CPTG +uid 5957,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5958,0 +va (VaSet +) +xt "58000,47500,59700,48500" +st "Cke" +blo "58000,48300" +) +) +thePort (LogicalPort +decl (Decl +n "Cke" +t "std_ulogic" +o 3 +suid 25,0 +) +) +) +*34 (CptPort +uid 5959,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5960,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,49625,57000,50375" +) +tg (CPTG +uid 5961,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5962,0 +va (VaSet +) +xt "58000,49500,59500,50500" +st "Clk" +blo "58000,50300" +) +) +thePort (LogicalPort +decl (Decl +n "Clk" +t "std_ulogic" +o 4 +suid 26,0 +) +) +) +*35 (CptPort +uid 5963,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5964,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,37625,57000,38375" +) +tg (CPTG +uid 5965,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5966,0 +va (VaSet +) +xt "58000,37500,60200,38500" +st "Cs_n" +blo "58000,38300" +) +) +thePort (LogicalPort +decl (Decl +n "Cs_n" +t "std_ulogic" +o 5 +suid 27,0 +) +) +) +*36 (CptPort +uid 5967,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 5968,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,33625,65750,34375" +) +tg (CPTG +uid 5969,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5970,0 +va (VaSet +) +xt "62500,33500,64000,34500" +st "Dq" +ju 2 +blo "64000,34300" +) +) +thePort (LogicalPort +m 2 +decl (Decl +n "Dq" +t "std_logic_vector" +b "( data_bits-1 DOWNTO 0 )" +o 10 +suid 28,0 +) +) +) +*37 (CptPort +uid 5971,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5972,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,45625,57000,46375" +) +tg (CPTG +uid 5973,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5974,0 +va (VaSet +) +xt "58000,45500,60100,46500" +st "Dqm" +blo "58000,46300" +) +) +thePort (LogicalPort +decl (Decl +n "Dqm" +t "std_ulogic_vector" +b "( 1 DOWNTO 0 )" +o 6 +suid 29,0 +i "\"00\"" +) +) +) +*38 (CptPort +uid 5975,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5976,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,39625,57000,40375" +) +tg (CPTG +uid 5977,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5978,0 +va (VaSet +) +xt "58000,39500,60600,40500" +st "Ras_n" +blo "58000,40300" +) +) +thePort (LogicalPort +decl (Decl +n "Ras_n" +t "std_ulogic" +o 7 +suid 31,0 +) +) +) +*39 (CptPort +uid 5979,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5980,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56250,43625,57000,44375" +) +tg (CPTG +uid 5981,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5982,0 +va (VaSet +) +xt "58000,43500,60400,44500" +st "WE_n" +blo "58000,44300" +) +) +thePort (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 32,0 +) +) +) +] +shape (Rectangle +uid 5984,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,30000,65000,52000" +) +oxt "31000,7000,39000,29000" +ttg (MlTextGroup +uid 5985,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 5986,0 +va (VaSet +font "courier,8,1" +) +xt "57500,52000,63000,53000" +st "memory_test" +blo "57500,52800" +tm "BdLibraryNameMgr" +) +*41 (Text +uid 5987,0 +va (VaSet +font "courier,8,1" +) +xt "57500,53000,66500,54000" +st "sdram_mt48lc16m16a2" +blo "57500,53800" +tm "CptNameMgr" +) +*42 (Text +uid 5988,0 +va (VaSet +font "courier,8,1" +) +xt "57500,54000,58500,55000" +st "I2" +blo "57500,54800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5989,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5990,0 +text (MLText +uid 5991,0 +va (VaSet +font "courier,8,0" +) +xt "66000,40400,99000,64700" +st "addr_bits = rowAddressBitNb ( integer ) +data_bits = dataBitNb ( integer ) +col_bits = colAddressBitNb ( integer ) +index = 0 ( integer ) +fname = \"U:\\ELN_board\\Simulation\\sdram.srec\" ( string ) +tAC = 6 ns ( time ) +tHZ = 7 ns ( time ) +tOH = 2.7 ns ( time ) +tMRD = 2 ( integer ) +tRAS = 44 ns ( time ) +tRC = 66 ns ( time ) +tRCD = 20 ns ( time ) +tRP = 20 ns ( time ) +tRRD = 15 ns ( time ) +tWRa = 7.5 ns ( time ) +tWRp = 15 ns ( time ) +tAH = 0.8 ns ( time ) +tAS = 1.5 ns ( time ) +tCH = 2.5 ns ( time ) +tCL = 2.5 ns ( time ) +tCK = 10 ns ( time ) +tDH = 0.8 ns ( time ) +tDS = 1.5 ns ( time ) +tCKH = 0.8 ns ( time ) +tCKS = 1.5 ns ( time ) +tCMH = 0.8 ns ( time ) +tCMS = 1.5 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "addr_bits" +type "integer" +value "rowAddressBitNb" +) +(GiElement +name "data_bits" +type "integer" +value "dataBitNb" +) +(GiElement +name "col_bits" +type "integer" +value "colAddressBitNb" +) +(GiElement +name "index" +type "integer" +value "0" +) +(GiElement +name "fname" +type "string" +value "\"U:\\ELN_board\\Simulation\\sdram.srec\"" +) +(GiElement +name "tAC" +type "time" +value "6 ns" +) +(GiElement +name "tHZ" +type "time" +value "7 ns" +) +(GiElement +name "tOH" +type "time" +value "2.7 ns" +) +(GiElement +name "tMRD" +type "integer" +value "2" +) +(GiElement +name "tRAS" +type "time" +value "44 ns" +) +(GiElement +name "tRC" +type "time" +value "66 ns" +) +(GiElement +name "tRCD" +type "time" +value "20 ns" +) +(GiElement +name "tRP" +type "time" +value "20 ns" +) +(GiElement +name "tRRD" +type "time" +value "15 ns" +) +(GiElement +name "tWRa" +type "time" +value "7.5 ns" +) +(GiElement +name "tWRp" +type "time" +value "15 ns" +) +(GiElement +name "tAH" +type "time" +value "0.8 ns" +) +(GiElement +name "tAS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCH" +type "time" +value "2.5 ns" +) +(GiElement +name "tCL" +type "time" +value "2.5 ns" +) +(GiElement +name "tCK" +type "time" +value "10 ns" +) +(GiElement +name "tDH" +type "time" +value "0.8 ns" +) +(GiElement +name "tDS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCKH" +type "time" +value "0.8 ns" +) +(GiElement +name "tCKS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCMH" +type "time" +value "0.8 ns" +) +(GiElement +name "tCMS" +type "time" +value "1.5 ns" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*43 (Net +uid 5992,0 +decl (Decl +n "sdClk" +t "std_ulogic" +o 20 +suid 68,0 +) +declText (MLText +uid 5993,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,115500,1100" +st "SIGNAL sdClk : std_ulogic" +) +) +*44 (Net +uid 5998,0 +decl (Decl +n "sdCke" +t "std_ulogic" +o 19 +suid 69,0 +) +declText (MLText +uid 5999,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,115500,1100" +st "SIGNAL sdCke : std_ulogic" +) +) +*45 (Net +uid 6004,0 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "( 1 DOWNTO 0 )" +o 22 +suid 70,0 +) +declText (MLText +uid 6005,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,126000,1100" +st "SIGNAL sdDqm : std_ulogic_vector( 1 DOWNTO 0 )" +) +) +*46 (Net +uid 6010,0 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 9 +suid 71,0 +) +declText (MLText +uid 6011,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,115500,1100" +st "SIGNAL memWr_n : std_ulogic" +) +) +*47 (Net +uid 6016,0 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 18 +suid 72,0 +) +declText (MLText +uid 6017,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,115500,1100" +st "SIGNAL sdCas_n : std_ulogic" +) +) +*48 (Net +uid 6022,0 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 23 +suid 73,0 +) +declText (MLText +uid 6023,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,115500,1100" +st "SIGNAL sdRas_n : std_ulogic" +) +) +*49 (Net +uid 6028,0 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 21 +suid 74,0 +) +declText (MLText +uid 6029,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,115500,1100" +st "SIGNAL sdCs_n : std_ulogic" +) +) +*50 (Net +uid 6048,0 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 75,0 +) +declText (MLText +uid 6049,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,129500,1100" +st "SIGNAL DQ : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*51 (HdlText +uid 6058,0 +optionalChildren [ +*52 (EmbeddedText +uid 6063,0 +commentText (CommentText +uid 6064,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6065,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "73000,31000,89000,39000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6066,0 +va (VaSet +font "courier,9,0" +) +xt "73200,31200,89200,35700" +st " +memDataIn <= std_ulogic_vector(DQ); +DQ <= std_logic_vector(memDataOut) when memWr_n = '0' + else (others => 'Z'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 6059,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "73000,30000,89000,40000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6060,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 6061,0 +va (VaSet +) +xt "73400,40000,74600,41000" +st "eb1" +blo "73400,40800" +tm "HdlTextNameMgr" +) +*54 (Text +uid 6062,0 +va (VaSet +) +xt "73400,41000,73800,42000" +st "1" +blo "73400,41800" +tm "HdlTextNumberMgr" +) +] +) +) +*55 (HdlText +uid 6138,0 +optionalChildren [ +*56 (EmbeddedText +uid 6143,0 +commentText (CommentText +uid 6144,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 6145,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "128000,62000,170000,86000" +) +oxt "0,0,18000,5000" +text (MLText +uid 6146,0 +va (VaSet +font "courier,9,0" +) +xt "128200,62200,168200,79300" +st " +commandBus <= (sdCs_n, sdRas_n, sdCas_n, memWr_n, sdDqm(1), sdDqm(0)); + + ----------------------------------------------------------------------------- + -- debug information + commandDecode: process(commandBus) + begin + case commandBus is + when inhibit => commandString <= \"inhibit \"; + when nop => commandString <= \"nop \"; + when active => commandString <= \"active \"; + when read => commandString <= \"read \"; + when write => commandString <= \"write \"; + when burstTerminate => commandString <= \"burstTerminate \"; + when precharge => commandString <= \"precharge \"; + when autoRefresh => commandString <= \"autoRefresh \"; + when loadModeReg => commandString <= \"loadModeReg \"; + when others => commandString <= \"XXXXXXXXXXXXXXXX\"; + end case; + end process commandDecode; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 24000 +visibleWidth 42000 +) +) +) +] +shape (Rectangle +uid 6139,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "128000,61000,170000,87000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 6140,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 6141,0 +va (VaSet +) +xt "128200,87000,129800,88000" +st "eb2" +blo "128200,87800" +tm "HdlTextNameMgr" +) +*58 (Text +uid 6142,0 +va (VaSet +) +xt "128200,88000,129000,89000" +st "2" +blo "128200,88800" +tm "HdlTextNumberMgr" +) +] +) +) +*59 (Net +uid 6195,0 +decl (Decl +n "commandBus" +t "commandBusType" +o 3 +suid 76,0 +) +declText (MLText +uid 6196,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,117500,1100" +st "SIGNAL commandBus : commandBusType" +) +) +*60 (Net +uid 6207,0 +decl (Decl +n "commandString" +t "string" +b "(1 TO 16)" +o 4 +suid 78,0 +) +declText (MLText +uid 6208,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "98000,200,118000,1100" +st "SIGNAL commandString : string(1 TO 16)" +) +) +*61 (SaComponent +uid 6647,0 +optionalChildren [ +*62 (CptPort +uid 6563,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6564,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,53625,25000,54375" +) +tg (CPTG +uid 6565,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6566,0 +va (VaSet +) +xt "26000,53500,28100,54500" +st "clock" +blo "26000,54300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 20,0 +) +) +) +*63 (CptPort +uid 6567,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6568,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,39625,25000,40375" +) +tg (CPTG +uid 6569,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6570,0 +va (VaSet +) +xt "26000,39500,31400,40500" +st "ramDataValid" +blo "26000,40300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 14 +suid 21,0 +) +) +) +*64 (CptPort +uid 6571,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6572,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,29625,25000,30375" +) +tg (CPTG +uid 6573,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6574,0 +va (VaSet +) +xt "26000,29500,29300,30500" +st "ramAddr" +blo "26000,30300" +) +) +thePort (LogicalPort +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 3 +suid 22,0 +) +) +) +*65 (CptPort +uid 6575,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6576,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,29625,41750,30375" +) +tg (CPTG +uid 6577,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6578,0 +va (VaSet +) +xt "34800,29500,40000,30500" +st "memAddress" +ju 2 +blo "40000,30300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "( chipAddressBitNb-1 DOWNTO 0 )" +o 9 +suid 23,0 +) +) +) +*66 (CptPort +uid 6579,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6580,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,33625,25000,34375" +) +tg (CPTG +uid 6581,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6582,0 +va (VaSet +) +xt "26000,33500,30900,34500" +st "ramDataOut" +blo "26000,34300" +) +) +thePort (LogicalPort +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +) +*67 (CptPort +uid 6583,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6584,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,33625,41750,34375" +) +tg (CPTG +uid 6585,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6586,0 +va (VaSet +) +xt "35800,33500,40000,34500" +st "memDataIn" +ju 2 +blo "40000,34300" +) +) +thePort (LogicalPort +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 25,0 +) +) +) +*68 (CptPort +uid 6587,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6588,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,35625,41750,36375" +) +tg (CPTG +uid 6589,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6590,0 +va (VaSet +) +xt "34800,35500,40000,36500" +st "memDataOut" +ju 2 +blo "40000,36300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 26,0 +) +) +) +*69 (CptPort +uid 6591,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6592,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,43625,41750,44375" +) +tg (CPTG +uid 6593,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6594,0 +va (VaSet +) +xt "36200,43500,40000,44500" +st "memWr_n" +ju 2 +blo "40000,44300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 12 +suid 27,0 +) +) +) +*70 (CptPort +uid 6595,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6596,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,51625,25000,52375" +) +tg (CPTG +uid 6597,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6598,0 +va (VaSet +) +xt "26000,51500,28600,52500" +st "ramEn" +blo "26000,52300" +) +) +thePort (LogicalPort +decl (Decl +n "ramEn" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*71 (CptPort +uid 6599,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6600,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,35625,25000,36375" +) +tg (CPTG +uid 6601,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6602,0 +va (VaSet +) +xt "26000,35500,28700,36500" +st "ramRd" +blo "26000,36300" +) +) +thePort (LogicalPort +decl (Decl +n "ramRd" +t "std_ulogic" +o 6 +suid 29,0 +) +) +) +*72 (CptPort +uid 6603,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6604,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,37625,25000,38375" +) +tg (CPTG +uid 6605,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6606,0 +va (VaSet +) +xt "26000,37500,28700,38500" +st "ramWr" +blo "26000,38300" +) +) +thePort (LogicalPort +decl (Decl +n "ramWr" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*73 (CptPort +uid 6607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6608,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,55625,25000,56375" +) +tg (CPTG +uid 6609,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6610,0 +va (VaSet +) +xt "26000,55500,28100,56500" +st "reset" +blo "26000,56300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 31,0 +) +) +) +*74 (CptPort +uid 6611,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6612,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,41625,41750,42375" +) +tg (CPTG +uid 6613,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6614,0 +va (VaSet +) +xt "36600,41500,40000,42500" +st "sdCas_n" +ju 2 +blo "40000,42300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 15 +suid 32,0 +) +) +) +*75 (CptPort +uid 6615,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6616,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,47625,41750,48375" +) +tg (CPTG +uid 6617,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6618,0 +va (VaSet +) +xt "37500,47500,40000,48500" +st "sdCke" +ju 2 +blo "40000,48300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdCke" +t "std_ulogic" +o 16 +suid 33,0 +) +) +) +*76 (CptPort +uid 6619,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6620,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,49625,41750,50375" +) +tg (CPTG +uid 6621,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6622,0 +va (VaSet +) +xt "37700,49500,40000,50500" +st "sdClk" +ju 2 +blo "40000,50300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdClk" +t "std_ulogic" +o 17 +suid 34,0 +) +) +) +*77 (CptPort +uid 6623,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6624,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,37625,41750,38375" +) +tg (CPTG +uid 6625,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6626,0 +va (VaSet +) +xt "37000,37500,40000,38500" +st "sdCs_n" +ju 2 +blo "40000,38300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 18 +suid 35,0 +) +) +) +*78 (CptPort +uid 6627,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6628,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,45625,41750,46375" +) +tg (CPTG +uid 6629,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6630,0 +va (VaSet +) +xt "37100,45500,40000,46500" +st "sdDqm" +ju 2 +blo "40000,46300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 36,0 +) +) +) +*79 (CptPort +uid 6631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6632,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,39625,41750,40375" +) +tg (CPTG +uid 6633,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6634,0 +va (VaSet +) +xt "36600,39500,40000,40500" +st "sdRas_n" +ju 2 +blo "40000,40300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 20 +suid 38,0 +) +) +) +*80 (CptPort +uid 6635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6636,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,31625,25000,32375" +) +tg (CPTG +uid 6637,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6638,0 +va (VaSet +) +xt "26000,31500,29900,32500" +st "ramDataIn" +blo "26000,32300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 13 +suid 42,0 +) +) +) +*81 (CptPort +uid 6639,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6640,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,31625,41750,32375" +) +tg (CPTG +uid 6641,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6642,0 +va (VaSet +) +xt "33200,31500,40000,32500" +st "memBankAddress" +ju 2 +blo "40000,32300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "( chipBankAddressBitNb-1 DOWNTO 0 )" +o 10 +suid 43,0 +) +) +) +*82 (CptPort +uid 6643,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6644,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,53625,41750,54375" +) +tg (CPTG +uid 6645,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6646,0 +va (VaSet +) +xt "34500,53500,40000,54500" +st "selectRefresh" +ju 2 +blo "40000,54300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 21 +suid 44,0 +) +) +) +] +shape (Rectangle +uid 6648,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "25000,26000,41000,58000" +) +oxt "42000,2000,58000,34000" +ttg (MlTextGroup +uid 6649,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +uid 6650,0 +va (VaSet +font "courier,8,1" +) +xt "25550,58500,28850,59500" +st "memory" +blo "25550,59300" +tm "BdLibraryNameMgr" +) +*84 (Text +uid 6651,0 +va (VaSet +font "courier,8,1" +) +xt "25550,59500,32450,60500" +st "sdramController" +blo "25550,60300" +tm "CptNameMgr" +) +*85 (Text +uid 6652,0 +va (VaSet +font "courier,8,1" +) +xt "25550,60500,26550,61500" +st "I0" +blo "25550,61300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6653,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6654,0 +text (MLText +uid 6655,0 +va (VaSet +font "courier,8,0" +) +xt "25000,62200,54000,65800" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) +chipAddressBitNb = rowAddressBitNb ( positive ) +chipBankAddressBitNb = bankAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "chipAddressBitNb" +type "positive" +value "rowAddressBitNb" +) +(GiElement +name "chipBankAddressBitNb" +type "positive" +value "bankAddressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*86 (Net +uid 6656,0 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 24 +suid 79,0 +) +declText (MLText +uid 6657,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,17500,900" +st "SIGNAL selectRefresh : std_ulogic" +) +) +*87 (Wire +uid 5552,0 +shape (OrthoPolyLine +uid 5553,0 +va (VaSet +vasetType 3 +) +xt "23000,56000,24250,67000" +pts [ +"24250,56000" +"23000,56000" +"23000,67000" +] +) +start &73 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5556,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5557,0 +va (VaSet +font "courier,12,0" +) +xt "19250,54600,22750,55900" +st "reset" +blo "19250,55600" +tm "WireNameMgr" +) +) +on &16 +) +*88 (Wire +uid 5560,0 +shape (OrthoPolyLine +uid 5561,0 +va (VaSet +vasetType 3 +) +xt "21000,54000,24250,67000" +pts [ +"24250,54000" +"21000,54000" +"21000,67000" +] +) +start &62 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5564,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5565,0 +va (VaSet +font "courier,12,0" +) +xt "19250,52600,23050,54000" +st "clock" +blo "19250,53800" +tm "WireNameMgr" +) +) +on &17 +) +*89 (Wire +uid 5568,0 +shape (OrthoPolyLine +uid 5569,0 +va (VaSet +vasetType 3 +) +xt "19000,52000,24250,67000" +pts [ +"24250,52000" +"19000,52000" +"19000,67000" +] +) +start &70 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5572,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5573,0 +va (VaSet +font "courier,12,0" +) +xt "18250,50600,21750,51900" +st "ramEn" +blo "18250,51600" +tm "WireNameMgr" +) +) +on &18 +) +*90 (Wire +uid 5576,0 +shape (OrthoPolyLine +uid 5577,0 +va (VaSet +vasetType 3 +) +xt "15000,40000,24250,67000" +pts [ +"24250,40000" +"15000,40000" +"15000,67000" +] +) +start &63 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5580,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5581,0 +va (VaSet +font "courier,12,0" +) +xt "13250,38600,22350,39900" +st "ramDataValid" +blo "13250,39600" +tm "WireNameMgr" +) +) +on &19 +) +*91 (Wire +uid 5584,0 +shape (OrthoPolyLine +uid 5585,0 +va (VaSet +vasetType 3 +) +xt "13000,38000,24250,67000" +pts [ +"24250,38000" +"13000,38000" +"13000,67000" +] +) +start &72 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5588,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5589,0 +va (VaSet +font "courier,12,0" +) +xt "18250,36600,21750,37900" +st "ramWr" +blo "18250,37600" +tm "WireNameMgr" +) +) +on &20 +) +*92 (Wire +uid 5592,0 +shape (OrthoPolyLine +uid 5593,0 +va (VaSet +vasetType 3 +) +xt "11000,36000,24250,67000" +pts [ +"24250,36000" +"11000,36000" +"11000,67000" +] +) +start &71 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 5596,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5597,0 +va (VaSet +font "courier,12,0" +) +xt "18250,34600,21750,35900" +st "ramRd" +blo "18250,35600" +tm "WireNameMgr" +) +) +on &21 +) +*93 (Wire +uid 5600,0 +shape (OrthoPolyLine +uid 5601,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "9000,34000,24250,67000" +pts [ +"24250,34000" +"9000,34000" +"9000,67000" +] +) +start &66 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5604,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5605,0 +va (VaSet +font "courier,12,0" +) +xt "14250,32600,21950,33900" +st "ramDataOut" +blo "14250,33600" +tm "WireNameMgr" +) +) +on &22 +) +*94 (Wire +uid 5608,0 +shape (OrthoPolyLine +uid 5609,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "7000,32000,24250,67000" +pts [ +"24250,32000" +"7000,32000" +"7000,67000" +] +) +start &80 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5612,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5613,0 +va (VaSet +font "courier,12,0" +) +xt "15250,30600,21550,31900" +st "ramDataIn" +blo "15250,31600" +tm "WireNameMgr" +) +) +on &23 +) +*95 (Wire +uid 5616,0 +shape (OrthoPolyLine +uid 5617,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "5000,30000,24250,67000" +pts [ +"24250,30000" +"5000,30000" +"5000,67000" +] +) +start &64 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5620,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5621,0 +va (VaSet +font "courier,12,0" +) +xt "17250,28600,22150,29900" +st "ramAddr" +blo "17250,29600" +tm "WireNameMgr" +) +) +on &24 +) +*96 (Wire +uid 5909,0 +shape (OrthoPolyLine +uid 5910,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,30000,56250,34000" +pts [ +"41750,30000" +"54000,30000" +"54000,34000" +"56250,34000" +] +) +start &65 +end &30 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5911,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5912,0 +va (VaSet +font "courier,12,0" +) +xt "43750,28600,51450,29900" +st "memAddress" +blo "43750,29600" +tm "WireNameMgr" +) +) +on &25 +) +*97 (Wire +uid 5915,0 +shape (OrthoPolyLine +uid 5916,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,32000,56250,36000" +pts [ +"41750,32000" +"53000,32000" +"53000,36000" +"56250,36000" +] +) +start &81 +end &31 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5917,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5918,0 +va (VaSet +font "courier,12,0" +) +xt "43000,30600,53500,31900" +st "memBankAddress" +blo "43000,31600" +tm "WireNameMgr" +) +) +on &26 +) +*98 (Wire +uid 5921,0 +shape (OrthoPolyLine +uid 5922,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,34000,45000,34000" +pts [ +"41750,34000" +"45000,34000" +] +) +start &67 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5926,0 +va (VaSet +font "courier,12,0" +) +xt "43750,32600,50050,33900" +st "memDataIn" +blo "43750,33600" +tm "WireNameMgr" +) +) +on &27 +) +*99 (Wire +uid 5929,0 +shape (OrthoPolyLine +uid 5930,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,36000,45000,36000" +pts [ +"41750,36000" +"45000,36000" +] +) +start &68 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5933,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5934,0 +va (VaSet +font "courier,12,0" +) +xt "43750,34600,51450,35900" +st "memDataOut" +blo "43750,35600" +tm "WireNameMgr" +) +) +on &28 +) +*100 (Wire +uid 5994,0 +shape (OrthoPolyLine +uid 5995,0 +va (VaSet +vasetType 3 +) +xt "41750,50000,56250,50000" +pts [ +"41750,50000" +"56250,50000" +] +) +start &76 +end &34 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 5996,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5997,0 +va (VaSet +font "courier,12,0" +) +xt "43750,48600,47250,49900" +st "sdClk" +blo "43750,49600" +tm "WireNameMgr" +) +) +on &43 +) +*101 (Wire +uid 6000,0 +shape (OrthoPolyLine +uid 6001,0 +va (VaSet +vasetType 3 +) +xt "41750,48000,56250,48000" +pts [ +"41750,48000" +"56250,48000" +] +) +start &75 +end &33 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6002,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6003,0 +va (VaSet +font "courier,12,0" +) +xt "43750,46600,47250,47900" +st "sdCke" +blo "43750,47600" +tm "WireNameMgr" +) +) +on &44 +) +*102 (Wire +uid 6006,0 +shape (OrthoPolyLine +uid 6007,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,46000,56250,46000" +pts [ +"41750,46000" +"56250,46000" +] +) +start &78 +end &37 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6008,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6009,0 +va (VaSet +font "courier,12,0" +) +xt "43750,44600,47250,45900" +st "sdDqm" +blo "43750,45600" +tm "WireNameMgr" +) +) +on &45 +) +*103 (Wire +uid 6012,0 +shape (OrthoPolyLine +uid 6013,0 +va (VaSet +vasetType 3 +) +xt "41750,44000,56250,44000" +pts [ +"41750,44000" +"56250,44000" +] +) +start &69 +end &39 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6014,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6015,0 +va (VaSet +font "courier,12,0" +) +xt "43750,42600,48650,43900" +st "memWr_n" +blo "43750,43600" +tm "WireNameMgr" +) +) +on &46 +) +*104 (Wire +uid 6018,0 +shape (OrthoPolyLine +uid 6019,0 +va (VaSet +vasetType 3 +) +xt "41750,42000,56250,42000" +pts [ +"41750,42000" +"56250,42000" +] +) +start &74 +end &32 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6020,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6021,0 +va (VaSet +font "courier,12,0" +) +xt "43750,40600,50050,42000" +st "sdCas_n" +blo "43750,41800" +tm "WireNameMgr" +) +) +on &47 +) +*105 (Wire +uid 6024,0 +shape (OrthoPolyLine +uid 6025,0 +va (VaSet +vasetType 3 +) +xt "41750,40000,56250,40000" +pts [ +"41750,40000" +"56250,40000" +] +) +start &79 +end &38 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6026,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6027,0 +va (VaSet +font "courier,12,0" +) +xt "43750,38600,48650,39900" +st "sdRas_n" +blo "43750,39600" +tm "WireNameMgr" +) +) +on &48 +) +*106 (Wire +uid 6030,0 +shape (OrthoPolyLine +uid 6031,0 +va (VaSet +vasetType 3 +) +xt "41750,38000,56250,38000" +pts [ +"41750,38000" +"56250,38000" +] +) +start &77 +end &35 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 6032,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6033,0 +va (VaSet +font "courier,12,0" +) +xt "43750,36600,47950,37900" +st "sdCs_n" +blo "43750,37600" +tm "WireNameMgr" +) +) +on &49 +) +*107 (Wire +uid 6050,0 +shape (OrthoPolyLine +uid 6051,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "65750,34000,73000,34000" +pts [ +"65750,34000" +"73000,34000" +] +) +start &36 +end &51 +sat 32 +eat 4 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6054,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6055,0 +va (VaSet +font "courier,12,0" +) +xt "67750,32600,69150,33900" +st "DQ" +blo "67750,33600" +tm "WireNameMgr" +) +) +on &50 +) +*108 (Wire +uid 6114,0 +shape (OrthoPolyLine +uid 6115,0 +va (VaSet +vasetType 3 +) +xt "69000,36000,73000,36000" +pts [ +"69000,36000" +"73000,36000" +] +) +end &51 +sat 16 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6121,0 +va (VaSet +font "courier,12,0" +) +xt "66000,34600,70900,35900" +st "memWr_n" +blo "66000,35600" +tm "WireNameMgr" +) +) +on &46 +) +*109 (Wire +uid 6122,0 +shape (OrthoPolyLine +uid 6123,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "89000,34000,93000,34000" +pts [ +"89000,34000" +"93000,34000" +] +) +start &51 +sat 2 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6128,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6129,0 +va (VaSet +font "courier,12,0" +) +xt "91750,32600,98050,33900" +st "memDataIn" +blo "91750,33600" +tm "WireNameMgr" +) +) +on &27 +) +*110 (Wire +uid 6130,0 +shape (OrthoPolyLine +uid 6131,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "89000,36000,93000,36000" +pts [ +"89000,36000" +"93000,36000" +] +) +start &51 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6136,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6137,0 +va (VaSet +font "courier,12,0" +) +xt "91750,34600,99450,35900" +st "memDataOut" +blo "91750,35600" +tm "WireNameMgr" +) +) +on &28 +) +*111 (Wire +uid 6147,0 +shape (OrthoPolyLine +uid 6148,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "112000,72000,128000,72000" +pts [ +"112000,72000" +"128000,72000" +] +) +end &55 +sat 16 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6153,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6154,0 +va (VaSet +font "courier,12,0" +) +xt "113750,70600,117250,71900" +st "sdDqm" +blo "113750,71600" +tm "WireNameMgr" +) +) +on &45 +) +*112 (Wire +uid 6155,0 +shape (OrthoPolyLine +uid 6156,0 +va (VaSet +vasetType 3 +) +xt "112000,70000,128000,70000" +pts [ +"112000,70000" +"128000,70000" +] +) +end &55 +sat 16 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6161,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6162,0 +va (VaSet +font "courier,12,0" +) +xt "113750,68600,118650,69900" +st "memWr_n" +blo "113750,69600" +tm "WireNameMgr" +) +) +on &46 +) +*113 (Wire +uid 6163,0 +shape (OrthoPolyLine +uid 6164,0 +va (VaSet +vasetType 3 +) +xt "112000,68000,128000,68000" +pts [ +"112000,68000" +"128000,68000" +] +) +end &55 +sat 16 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6169,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6170,0 +va (VaSet +font "courier,12,0" +) +xt "113750,66600,120050,68000" +st "sdCas_n" +blo "113750,67800" +tm "WireNameMgr" +) +) +on &47 +) +*114 (Wire +uid 6171,0 +shape (OrthoPolyLine +uid 6172,0 +va (VaSet +vasetType 3 +) +xt "112000,66000,128000,66000" +pts [ +"112000,66000" +"128000,66000" +] +) +end &55 +sat 16 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6177,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6178,0 +va (VaSet +font "courier,12,0" +) +xt "113750,64600,118650,65900" +st "sdRas_n" +blo "113750,65600" +tm "WireNameMgr" +) +) +on &48 +) +*115 (Wire +uid 6179,0 +shape (OrthoPolyLine +uid 6180,0 +va (VaSet +vasetType 3 +) +xt "112000,64000,128000,64000" +pts [ +"112000,64000" +"128000,64000" +] +) +end &55 +sat 16 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6185,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6186,0 +va (VaSet +font "courier,12,0" +) +xt "113750,62600,117950,63900" +st "sdCs_n" +blo "113750,63600" +tm "WireNameMgr" +) +) +on &49 +) +*116 (Wire +uid 6187,0 +shape (OrthoPolyLine +uid 6188,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "112000,76000,128000,76000" +pts [ +"112000,76000" +"128000,76000" +] +) +end &55 +sat 16 +eat 4 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6193,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6194,0 +va (VaSet +font "courier,12,0" +) +xt "113750,74600,121450,75900" +st "commandBus" +blo "113750,75600" +tm "WireNameMgr" +) +) +on &59 +) +*117 (Wire +uid 6199,0 +shape (OrthoPolyLine +uid 6200,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "112000,78000,128000,78000" +pts [ +"112000,78000" +"128000,78000" +] +) +end &55 +sat 16 +eat 4 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6205,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6206,0 +va (VaSet +font "courier,12,0" +) +xt "114000,76600,123800,77900" +st "commandString" +blo "114000,77600" +tm "WireNameMgr" +) +) +on &60 +) +*118 (Wire +uid 6658,0 +shape (OrthoPolyLine +uid 6659,0 +va (VaSet +vasetType 3 +) +xt "41750,54000,45000,67000" +pts [ +"41750,54000" +"45000,54000" +"45000,67000" +] +) +start &82 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 6662,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6663,0 +va (VaSet +font "courier,12,0" +) +xt "43750,52600,53850,54000" +st "selectRefresh" +blo "43750,53800" +tm "WireNameMgr" +) +) +on &86 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *119 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +uid 1297,0 +va (VaSet +font "courier,12,0" +) +xt "-7000,19600,2500,21000" +st "Package List" +blo "-7000,20800" +) +*121 (MLText +uid 1298,0 +va (VaSet +) +xt "-7000,21000,11600,24000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*123 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*124 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*125 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*126 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*127 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*128 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "7,31,1372,964" +viewArea "-6900,19000,103116,94936" +cachedDiagramExtent "-7000,-6200,170000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 6843,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*129 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*130 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*131 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*132 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*133 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*134 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*135 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*136 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*137 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*138 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*139 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*140 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*142 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*143 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*144 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*145 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,1400,2700" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,12,0" +) +xt "0,0,6300,1300" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,12600,2700" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,17400,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*147 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,10800,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*148 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*149 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "105000,19600,113600,20800" +st "Declarations" +blo "105000,20600" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "105000,20800,109200,22000" +st "Ports:" +blo "105000,21800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "105000,20800,111000,22000" +st "Pre User:" +blo "105000,21800" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "107000,22000,160400,39000" +st "constant colAddressBitNb: positive := 9; +constant rowAddressBitNb: positive := 12; +constant bankAddressBitNb: positive := 2; +constant addressBitNb: positive := colAddressBitNb + rowAddressBitNb + bankAddressBitNb; +constant dataBitNb: positive := 16; + +subtype commandBusType is std_ulogic_vector(5 downto 0); +-- bits: 5 = cs, 4 = ras, 3 = cas, 2 = we, 1 = dqm(1), 0 = dqm(0) +constant inhibit : commandBusType := \"1-----\"; +constant nop : commandBusType := \"0111--\"; +constant active : commandBusType := \"0011--\"; +constant read : commandBusType := \"010100\"; +constant write : commandBusType := \"010000\"; +constant burstTerminate : commandBusType := \"0110--\"; +constant precharge : commandBusType := \"0010--\"; +constant autoRefresh : commandBusType := \"0001--\"; +constant loadModeReg : commandBusType := \"0000--\";" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "105000,20800,116000,22000" +st "Diagram Signals:" +blo "105000,21800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "105000,20800,112300,22000" +st "Post User:" +blo "105000,21800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "107000,35200,107000,35200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 79,0 +usingSuid 1 +emptyRow *150 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*151 (RefLabelRowHdr +) +*152 (TitleRowHdr +) +*153 (FilterRowHdr +) +*154 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*155 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*156 (GroupColHdr +tm "GroupColHdrMgr" +) +*157 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*158 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*159 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*160 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*161 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*162 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*163 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 17 +suid 55,0 +) +) +uid 5622,0 +) +*164 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 56,0 +) +) +uid 5624,0 +) +*165 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramEn" +t "std_ulogic" +o 14 +suid 57,0 +) +) +uid 5626,0 +) +*166 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 13 +suid 58,0 +) +) +uid 5628,0 +) +*167 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramWr" +t "std_ulogic" +o 16 +suid 59,0 +) +) +uid 5630,0 +) +*168 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramRd" +t "std_ulogic" +o 15 +suid 60,0 +) +) +uid 5632,0 +) +*169 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 61,0 +) +) +uid 5634,0 +) +*170 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 62,0 +) +) +uid 5636,0 +) +*171 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 63,0 +) +) +uid 5638,0 +) +*172 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memAddress" +t "std_ulogic_vector" +b "(rowAddressBitNb-1 DOWNTO 0)" +o 5 +suid 64,0 +) +) +uid 5935,0 +) +*173 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memBankAddress" +t "std_ulogic_vector" +b "(bankAddressBitNb-1 DOWNTO 0)" +o 6 +suid 65,0 +) +) +uid 5937,0 +) +*174 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 66,0 +) +) +uid 5939,0 +) +*175 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 67,0 +) +) +uid 5941,0 +) +*176 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sdClk" +t "std_ulogic" +o 20 +suid 68,0 +) +) +uid 6034,0 +) +*177 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sdCke" +t "std_ulogic" +o 19 +suid 69,0 +) +) +uid 6036,0 +) +*178 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sdDqm" +t "std_ulogic_vector" +b "( 1 DOWNTO 0 )" +o 22 +suid 70,0 +) +) +uid 6038,0 +) +*179 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "memWr_n" +t "std_ulogic" +o 9 +suid 71,0 +) +) +uid 6040,0 +) +*180 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sdCas_n" +t "std_ulogic" +o 18 +suid 72,0 +) +) +uid 6042,0 +) +*181 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sdRas_n" +t "std_ulogic" +o 23 +suid 73,0 +) +) +uid 6044,0 +) +*182 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "sdCs_n" +t "std_ulogic" +o 21 +suid 74,0 +) +) +uid 6046,0 +) +*183 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "DQ" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 75,0 +) +) +uid 6056,0 +) +*184 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "commandBus" +t "commandBusType" +o 3 +suid 76,0 +) +) +uid 6209,0 +) +*185 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "commandString" +t "string" +b "(1 TO 16)" +o 4 +suid 78,0 +) +) +uid 6211,0 +) +*186 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 24 +suid 79,0 +) +) +uid 6664,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*187 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *188 (MRCItem +litem &150 +pos 24 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*189 (MRCItem +litem &151 +pos 0 +dimension 20 +uid 3326,0 +) +*190 (MRCItem +litem &152 +pos 1 +dimension 23 +uid 3327,0 +) +*191 (MRCItem +litem &153 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*192 (MRCItem +litem &163 +pos 0 +dimension 20 +uid 5623,0 +) +*193 (MRCItem +litem &164 +pos 1 +dimension 20 +uid 5625,0 +) +*194 (MRCItem +litem &165 +pos 2 +dimension 20 +uid 5627,0 +) +*195 (MRCItem +litem &166 +pos 3 +dimension 20 +uid 5629,0 +) +*196 (MRCItem +litem &167 +pos 4 +dimension 20 +uid 5631,0 +) +*197 (MRCItem +litem &168 +pos 5 +dimension 20 +uid 5633,0 +) +*198 (MRCItem +litem &169 +pos 6 +dimension 20 +uid 5635,0 +) +*199 (MRCItem +litem &170 +pos 7 +dimension 20 +uid 5637,0 +) +*200 (MRCItem +litem &171 +pos 8 +dimension 20 +uid 5639,0 +) +*201 (MRCItem +litem &172 +pos 9 +dimension 20 +uid 5936,0 +) +*202 (MRCItem +litem &173 +pos 10 +dimension 20 +uid 5938,0 +) +*203 (MRCItem +litem &174 +pos 11 +dimension 20 +uid 5940,0 +) +*204 (MRCItem +litem &175 +pos 12 +dimension 20 +uid 5942,0 +) +*205 (MRCItem +litem &176 +pos 13 +dimension 20 +uid 6035,0 +) +*206 (MRCItem +litem &177 +pos 14 +dimension 20 +uid 6037,0 +) +*207 (MRCItem +litem &178 +pos 15 +dimension 20 +uid 6039,0 +) +*208 (MRCItem +litem &179 +pos 16 +dimension 20 +uid 6041,0 +) +*209 (MRCItem +litem &180 +pos 17 +dimension 20 +uid 6043,0 +) +*210 (MRCItem +litem &181 +pos 18 +dimension 20 +uid 6045,0 +) +*211 (MRCItem +litem &182 +pos 19 +dimension 20 +uid 6047,0 +) +*212 (MRCItem +litem &183 +pos 20 +dimension 20 +uid 6057,0 +) +*213 (MRCItem +litem &184 +pos 21 +dimension 20 +uid 6210,0 +) +*214 (MRCItem +litem &185 +pos 22 +dimension 20 +uid 6212,0 +) +*215 (MRCItem +litem &186 +pos 23 +dimension 20 +uid 6665,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*216 (MRCItem +litem &154 +pos 0 +dimension 20 +uid 3330,0 +) +*217 (MRCItem +litem &156 +pos 1 +dimension 50 +uid 3331,0 +) +*218 (MRCItem +litem &157 +pos 2 +dimension 100 +uid 3332,0 +) +*219 (MRCItem +litem &158 +pos 3 +dimension 50 +uid 3333,0 +) +*220 (MRCItem +litem &159 +pos 4 +dimension 100 +uid 3334,0 +) +*221 (MRCItem +litem &160 +pos 5 +dimension 100 +uid 3335,0 +) +*222 (MRCItem +litem &161 +pos 6 +dimension 50 +uid 3336,0 +) +*223 (MRCItem +litem &162 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *224 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*225 (RefLabelRowHdr +) +*226 (TitleRowHdr +) +*227 (FilterRowHdr +) +*228 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*229 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*230 (GroupColHdr +tm "GroupColHdrMgr" +) +*231 (NameColHdr +tm "GenericNameColHdrMgr" +) +*232 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*233 (InitColHdr +tm "GenericValueColHdrMgr" +) +*234 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*235 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*236 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *237 (MRCItem +litem &224 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*238 (MRCItem +litem &225 +pos 0 +dimension 20 +uid 3354,0 +) +*239 (MRCItem +litem &226 +pos 1 +dimension 23 +uid 3355,0 +) +*240 (MRCItem +litem &227 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*241 (MRCItem +litem &228 +pos 0 +dimension 20 +uid 3358,0 +) +*242 (MRCItem +litem &230 +pos 1 +dimension 50 +uid 3359,0 +) +*243 (MRCItem +litem &231 +pos 2 +dimension 100 +uid 3360,0 +) +*244 (MRCItem +litem &232 +pos 3 +dimension 100 +uid 3361,0 +) +*245 (MRCItem +litem &233 +pos 4 +dimension 50 +uid 3362,0 +) +*246 (MRCItem +litem &234 +pos 5 +dimension 50 +uid 3363,0 +) +*247 (MRCItem +litem &235 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/Memory_test/hds/sdram@controller_tb/symbol.sb b/Libs/Memory_test/hds/sdram@controller_tb/symbol.sb new file mode 100644 index 0000000..cb1c853 --- /dev/null +++ b/Libs/Memory_test/hds/sdram@controller_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdramController_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramController_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:34" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramController_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdramController_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:34" +) +(vvPair +variable "unit" +value "sdramController_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,37150,22900" +st "Memory_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,41350,23900" +st "sdramController_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,46400,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/Memory_test/hds/sdram@controller_tester/interface b/Libs/Memory_test/hds/sdram@controller_tester/interface new file mode 100644 index 0000000..17c0ae7 --- /dev/null +++ b/Libs/Memory_test/hds/sdram@controller_tester/interface @@ -0,0 +1,1971 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 57,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 116,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 48,0 +) +) +uid 652,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 49,0 +) +) +uid 654,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 50,0 +) +) +uid 656,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 51,0 +) +) +uid 658,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 13 +suid 52,0 +) +) +uid 660,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramEn" +t "std_ulogic" +o 14 +suid 53,0 +) +) +uid 662,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramRd" +t "std_ulogic" +o 15 +suid 54,0 +) +) +uid 664,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "ramWr" +t "std_ulogic" +o 16 +suid 55,0 +) +) +uid 666,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 17 +suid 56,0 +) +) +uid 668,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 24 +suid 57,0 +) +) +uid 670,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 131,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 132,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 133,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 653,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 655,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 657,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 659,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 661,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 663,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 665,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 667,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 669,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 671,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 136,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 137,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 138,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 139,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 140,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 141,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 142,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 143,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 115,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 145,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "24" +) +uid 194,0 +) +*60 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "16" +) +uid 196,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 157,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *62 (MRCItem +litem &47 +pos 3 +dimension 20 +) +uid 159,0 +optionalChildren [ +*63 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 160,0 +) +*64 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 161,0 +) +*65 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +*66 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 195,0 +) +*67 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 197,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 163,0 +optionalChildren [ +*68 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 164,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 165,0 +) +*70 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 166,0 +) +*71 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 167,0 +) +*72 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 168,0 +) +*73 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 169,0 +) +*74 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 170,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 158,0 +vaOverrides [ +] +) +] +) +uid 144,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdramController_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdramController_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:34" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdramController_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram@controller_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdramController_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:45:34" +) +(vvPair +variable "unit" +value "sdramController_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 114,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 602,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 603,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38625,5250,39375,6000" +) +tg (CPTG +uid 604,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 605,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "38550,7000,39450,9500" +st "clock" +ju 2 +blo "39250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 606,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,62500,5600" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 48,0 +) +) +) +*77 (CptPort +uid 607,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 608,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 609,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 610,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,10500" +st "ramAddr" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 611,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,74000,6500" +st "ramAddr : OUT unsigned (addressBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramAddr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 10 +suid 49,0 +) +) +) +*78 (CptPort +uid 612,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 613,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 614,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 615,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,11500" +st "ramDataIn" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 616,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,77000,2900" +st "ramDataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "ramDataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +suid 50,0 +) +) +) +*79 (CptPort +uid 617,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 618,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 619,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 620,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,12500" +st "ramDataOut" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 621,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,77000,7400" +st "ramDataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramDataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 51,0 +) +) +) +*80 (CptPort +uid 622,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 623,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 624,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 625,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "32550,7000,33450,13500" +st "ramDataValid" +ju 2 +blo "33250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 626,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,62500,3800" +st "ramDataValid : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "ramDataValid" +t "std_ulogic" +o 13 +suid 52,0 +) +) +) +*81 (CptPort +uid 627,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 628,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 629,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 630,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "36550,7000,37450,9500" +st "ramEn" +ju 2 +blo "37250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 631,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,62500,8300" +st "ramEn : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramEn" +t "std_ulogic" +o 14 +suid 53,0 +) +) +) +*82 (CptPort +uid 632,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 633,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 634,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 635,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "ramRd" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 636,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,62500,9200" +st "ramRd : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramRd" +t "std_ulogic" +o 15 +suid 54,0 +) +) +) +*83 (CptPort +uid 637,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 638,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 639,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 640,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,9500" +st "ramWr" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 641,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9200,62500,10100" +st "ramWr : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "ramWr" +t "std_ulogic" +o 16 +suid 55,0 +) +) +) +*84 (CptPort +uid 642,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 643,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +tg (CPTG +uid 644,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 645,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "40550,7000,41450,9500" +st "reset" +ju 2 +blo "41250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 646,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,61500,11000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 17 +suid 56,0 +) +) +) +*85 (CptPort +uid 647,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 648,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62625,5250,63375,6000" +) +tg (CPTG +uid 649,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 650,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "62550,7000,63450,14000" +st "selectRefresh" +ju 2 +blo "63250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 651,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,62500,4700" +st "selectRefresh : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "selectRefresh" +t "std_ulogic" +o 24 +suid 57,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,99000,14000" +) +oxt "15000,6000,96000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "51250,9100,57250,10000" +st "memory_test" +blo "51250,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "51250,10000,62750,10900" +st "sdramController_tester" +blo "51250,10700" +) +) +gi *86 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "33000,6000,46500,9600" +st "Generic Declarations + +addressBitNb positive 24 +dataBitNb positive 16 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "24" +) +(GiElement +name "dataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*87 (Grouping +uid 16,0 +optionalChildren [ +*88 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "Memory_test" +entityName "sdramController_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,11000,44500,11900" +st "User:" +blo "42000,11700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,11900,44000,11900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 671,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb b/Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb new file mode 100644 index 0000000..961dc42 --- /dev/null +++ b/Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb @@ -0,0 +1,2448 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "std" +unitName "textio" +) +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +(DmPackageRef +library "memory_test" +unitName "mti_pkg" +) +] +libraryRefs [ +"STD" +"ieee" +"memory_test" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 32,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 74,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "addr" +t "std_ulogic_vector" +b "( addr_bits-1 DOWNTO 0 )" +o 9 +suid 22,0 +) +) +uid 379,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "Ba" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 1 +suid 23,0 +i "\"00\"" +) +) +uid 381,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "Cas_n" +t "std_ulogic" +o 2 +suid 24,0 +) +) +uid 383,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "Cke" +t "std_ulogic" +o 3 +suid 25,0 +) +) +uid 385,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "Clk" +t "std_ulogic" +o 4 +suid 26,0 +) +) +uid 387,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "Cs_n" +t "std_ulogic" +o 5 +suid 27,0 +) +) +uid 389,0 +) +*20 (LogPort +port (LogicalPort +m 2 +decl (Decl +n "Dq" +t "std_logic_vector" +b "( data_bits-1 DOWNTO 0 )" +o 10 +suid 28,0 +) +) +uid 391,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "Dqm" +t "std_ulogic_vector" +b "( 1 DOWNTO 0 )" +o 6 +suid 29,0 +i "\"00\"" +) +) +uid 393,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "Ras_n" +t "std_ulogic" +o 7 +suid 31,0 +) +) +uid 397,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 32,0 +) +) +uid 399,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 87,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 89,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 90,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 91,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 92,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 380,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 382,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 384,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 386,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 388,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 390,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 392,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 394,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 398,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 400,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 93,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 94,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 95,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 96,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 97,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 98,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 99,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 100,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 101,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 88,0 +vaOverrides [ +] +) +] +) +uid 73,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "addr_bits" +type "integer" +value "13" +) +uid 447,0 +) +*60 (LogGeneric +generic (GiElement +name "data_bits" +type "integer" +value "16" +) +uid 449,0 +) +*61 (LogGeneric +generic (GiElement +name "col_bits" +type "integer" +value "9" +) +uid 451,0 +) +*62 (LogGeneric +generic (GiElement +name "index" +type "integer" +value "0" +) +uid 453,0 +) +*63 (LogGeneric +generic (GiElement +name "fname" +type "string" +value "\"sdram.srec\"" +) +uid 455,0 +) +*64 (LogGeneric +generic (GiElement +name "tAC" +type "time" +value "6 ns" +) +uid 457,0 +) +*65 (LogGeneric +generic (GiElement +name "tHZ" +type "time" +value "7 ns" +) +uid 459,0 +) +*66 (LogGeneric +generic (GiElement +name "tOH" +type "time" +value "2.7 ns" +) +uid 461,0 +) +*67 (LogGeneric +generic (GiElement +name "tMRD" +type "integer" +value "2" +) +uid 463,0 +) +*68 (LogGeneric +generic (GiElement +name "tRAS" +type "time" +value "44 ns" +) +uid 465,0 +) +*69 (LogGeneric +generic (GiElement +name "tRC" +type "time" +value "66 ns" +) +uid 467,0 +) +*70 (LogGeneric +generic (GiElement +name "tRCD" +type "time" +value "20 ns" +) +uid 469,0 +) +*71 (LogGeneric +generic (GiElement +name "tRP" +type "time" +value "20 ns" +) +uid 471,0 +) +*72 (LogGeneric +generic (GiElement +name "tRRD" +type "time" +value "15 ns" +) +uid 473,0 +) +*73 (LogGeneric +generic (GiElement +name "tWRa" +type "time" +value "7.5 ns" +) +uid 475,0 +) +*74 (LogGeneric +generic (GiElement +name "tWRp" +type "time" +value "15 ns" +) +uid 477,0 +) +*75 (LogGeneric +generic (GiElement +name "tAH" +type "time" +value "0.8 ns" +) +uid 479,0 +) +*76 (LogGeneric +generic (GiElement +name "tAS" +type "time" +value "1.5 ns" +) +uid 481,0 +) +*77 (LogGeneric +generic (GiElement +name "tCH" +type "time" +value "2.5 ns" +) +uid 483,0 +) +*78 (LogGeneric +generic (GiElement +name "tCL" +type "time" +value "2.5 ns" +) +uid 485,0 +) +*79 (LogGeneric +generic (GiElement +name "tCK" +type "time" +value "10 ns" +) +uid 487,0 +) +*80 (LogGeneric +generic (GiElement +name "tDH" +type "time" +value "0.8 ns" +) +uid 489,0 +) +*81 (LogGeneric +generic (GiElement +name "tDS" +type "time" +value "1.5 ns" +) +uid 491,0 +) +*82 (LogGeneric +generic (GiElement +name "tCKH" +type "time" +value "0.8 ns" +) +uid 493,0 +) +*83 (LogGeneric +generic (GiElement +name "tCKS" +type "time" +value "1.5 ns" +) +uid 495,0 +) +*84 (LogGeneric +generic (GiElement +name "tCMH" +type "time" +value "0.8 ns" +) +uid 497,0 +) +*85 (LogGeneric +generic (GiElement +name "tCMS" +type "time" +value "1.5 ns" +) +uid 499,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*86 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *87 (MRCItem +litem &47 +pos 27 +dimension 20 +) +uid 117,0 +optionalChildren [ +*88 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 118,0 +) +*89 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 119,0 +) +*90 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*91 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 448,0 +) +*92 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 450,0 +) +*93 (MRCItem +litem &61 +pos 2 +dimension 20 +uid 452,0 +) +*94 (MRCItem +litem &62 +pos 3 +dimension 20 +uid 454,0 +) +*95 (MRCItem +litem &63 +pos 4 +dimension 20 +uid 456,0 +) +*96 (MRCItem +litem &64 +pos 5 +dimension 20 +uid 458,0 +) +*97 (MRCItem +litem &65 +pos 6 +dimension 20 +uid 460,0 +) +*98 (MRCItem +litem &66 +pos 7 +dimension 20 +uid 462,0 +) +*99 (MRCItem +litem &67 +pos 8 +dimension 20 +uid 464,0 +) +*100 (MRCItem +litem &68 +pos 9 +dimension 20 +uid 466,0 +) +*101 (MRCItem +litem &69 +pos 10 +dimension 20 +uid 468,0 +) +*102 (MRCItem +litem &70 +pos 11 +dimension 20 +uid 470,0 +) +*103 (MRCItem +litem &71 +pos 12 +dimension 20 +uid 472,0 +) +*104 (MRCItem +litem &72 +pos 13 +dimension 20 +uid 474,0 +) +*105 (MRCItem +litem &73 +pos 14 +dimension 20 +uid 476,0 +) +*106 (MRCItem +litem &74 +pos 15 +dimension 20 +uid 478,0 +) +*107 (MRCItem +litem &75 +pos 16 +dimension 20 +uid 480,0 +) +*108 (MRCItem +litem &76 +pos 17 +dimension 20 +uid 482,0 +) +*109 (MRCItem +litem &77 +pos 18 +dimension 20 +uid 484,0 +) +*110 (MRCItem +litem &78 +pos 19 +dimension 20 +uid 486,0 +) +*111 (MRCItem +litem &79 +pos 20 +dimension 20 +uid 488,0 +) +*112 (MRCItem +litem &80 +pos 21 +dimension 20 +uid 490,0 +) +*113 (MRCItem +litem &81 +pos 22 +dimension 20 +uid 492,0 +) +*114 (MRCItem +litem &82 +pos 23 +dimension 20 +uid 494,0 +) +*115 (MRCItem +litem &83 +pos 24 +dimension 20 +uid 496,0 +) +*116 (MRCItem +litem &84 +pos 25 +dimension 20 +uid 498,0 +) +*117 (MRCItem +litem &85 +pos 26 +dimension 20 +uid 500,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*118 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 122,0 +) +*119 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 123,0 +) +*120 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 124,0 +) +*121 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 125,0 +) +*122 (MRCItem +litem &56 +pos 4 +dimension 166 +uid 126,0 +) +*123 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 127,0 +) +*124 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 128,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram_mt48lc16m16a2" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram_mt48lc16m16a2" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "sdram_mt48lc16m16a2" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:34" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Memory_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/Memory_test/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "sdram_mt48lc16m16a2" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/Memory_test/hds/sdram_mt48lc16m16a2/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Board\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:34" +) +(vvPair +variable "unit" +value "sdram_mt48lc16m16a2" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 72,0 +optionalChildren [ +*125 (SymbolBody +uid 8,0 +optionalChildren [ +*126 (CptPort +uid 324,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 325,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,10625,31000,11375" +) +tg (CPTG +uid 326,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 327,0 +va (VaSet +) +xt "32000,10500,33900,11500" +st "addr" +blo "32000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 328,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,22400,26000,23300" +st "addr : IN std_ulogic_vector ( addr_bits-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "addr" +t "std_ulogic_vector" +b "( addr_bits-1 DOWNTO 0 )" +o 9 +suid 22,0 +) +) +) +*127 (CptPort +uid 329,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 330,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,12625,31000,13375" +) +tg (CPTG +uid 331,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 332,0 +va (VaSet +) +xt "32000,12500,33300,13500" +st "Ba" +blo "32000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 333,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,15200,25000,16100" +st "Ba : IN std_ulogic_vector (1 DOWNTO 0) := \"00\" ;" +) +thePort (LogicalPort +decl (Decl +n "Ba" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 1 +suid 23,0 +i "\"00\"" +) +) +) +*128 (CptPort +uid 334,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 335,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,18625,31000,19375" +) +tg (CPTG +uid 336,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 337,0 +va (VaSet +) +xt "32000,18500,34600,19500" +st "Cas_n" +blo "32000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 338,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,16100,10500,17000" +st "Cas_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "Cas_n" +t "std_ulogic" +o 2 +suid 24,0 +) +) +) +*129 (CptPort +uid 339,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 340,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,24625,31000,25375" +) +tg (CPTG +uid 341,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 342,0 +va (VaSet +) +xt "32000,24500,33700,25500" +st "Cke" +blo "32000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 343,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,17000,10500,17900" +st "Cke : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "Cke" +t "std_ulogic" +o 3 +suid 25,0 +) +) +) +*130 (CptPort +uid 344,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 345,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,26625,31000,27375" +) +tg (CPTG +uid 346,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 347,0 +va (VaSet +) +xt "32000,26500,33500,27500" +st "Clk" +blo "32000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 348,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,17900,10500,18800" +st "Clk : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "Clk" +t "std_ulogic" +o 4 +suid 26,0 +) +) +) +*131 (CptPort +uid 349,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 350,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,14625,31000,15375" +) +tg (CPTG +uid 351,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 352,0 +va (VaSet +) +xt "32000,14500,34200,15500" +st "Cs_n" +blo "32000,15300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 353,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,18800,10500,19700" +st "Cs_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "Cs_n" +t "std_ulogic" +o 5 +suid 27,0 +) +) +) +*132 (CptPort +uid 354,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 355,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39000,10625,39750,11375" +) +tg (CPTG +uid 356,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 357,0 +va (VaSet +) +xt "36500,10500,38000,11500" +st "Dq" +ju 2 +blo "38000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 358,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,23300,24500,24200" +st "Dq : INOUT std_logic_vector ( data_bits-1 DOWNTO 0 )" +) +thePort (LogicalPort +m 2 +decl (Decl +n "Dq" +t "std_logic_vector" +b "( data_bits-1 DOWNTO 0 )" +o 10 +suid 28,0 +) +) +) +*133 (CptPort +uid 359,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 360,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,22625,31000,23375" +) +tg (CPTG +uid 361,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 362,0 +va (VaSet +) +xt "32000,22500,34100,23500" +st "Dqm" +blo "32000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 363,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,19700,25000,20600" +st "Dqm : IN std_ulogic_vector ( 1 DOWNTO 0 ) := \"00\" ;" +) +thePort (LogicalPort +decl (Decl +n "Dqm" +t "std_ulogic_vector" +b "( 1 DOWNTO 0 )" +o 6 +suid 29,0 +i "\"00\"" +) +) +) +*134 (CptPort +uid 369,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 370,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,16625,31000,17375" +) +tg (CPTG +uid 371,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 372,0 +va (VaSet +) +xt "32000,16500,34600,17500" +st "Ras_n" +blo "32000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 373,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,20600,10500,21500" +st "Ras_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "Ras_n" +t "std_ulogic" +o 7 +suid 31,0 +) +) +) +*135 (CptPort +uid 374,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 375,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30250,20625,31000,21375" +) +tg (CPTG +uid 376,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 377,0 +va (VaSet +) +xt "32000,20500,34400,21500" +st "WE_n" +blo "32000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 378,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,21500,10500,22400" +st "WE_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "WE_n" +t "std_ulogic" +o 8 +suid 32,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,7000,39000,29000" +) +oxt "15000,6000,23000,22000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "31500,29000,37500,29900" +st "Memory_test" +blo "31500,29700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "31500,29900,41500,30800" +st "sdram_mt48lc16m16a2" +blo "31500,30600" +) +) +gi *136 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "40000,12800,56500,38900" +st "Generic Declarations + +addr_bits integer 13 +data_bits integer 16 +col_bits integer 9 +index integer 0 +fname string \"sdram.srec\" +tAC time 6 ns +tHZ time 7 ns +tOH time 2.7 ns +tMRD integer 2 +tRAS time 44 ns +tRC time 66 ns +tRCD time 20 ns +tRP time 20 ns +tRRD time 15 ns +tWRa time 7.5 ns +tWRp time 15 ns +tAH time 0.8 ns +tAS time 1.5 ns +tCH time 2.5 ns +tCL time 2.5 ns +tCK time 10 ns +tDH time 0.8 ns +tDS time 1.5 ns +tCKH time 0.8 ns +tCKS time 1.5 ns +tCMH time 0.8 ns +tCMS time 1.5 ns " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addr_bits" +type "integer" +value "13" +) +(GiElement +name "data_bits" +type "integer" +value "16" +) +(GiElement +name "col_bits" +type "integer" +value "9" +) +(GiElement +name "index" +type "integer" +value "0" +) +(GiElement +name "fname" +type "string" +value "\"sdram.srec\"" +) +(GiElement +name "tAC" +type "time" +value "6 ns" +) +(GiElement +name "tHZ" +type "time" +value "7 ns" +) +(GiElement +name "tOH" +type "time" +value "2.7 ns" +) +(GiElement +name "tMRD" +type "integer" +value "2" +) +(GiElement +name "tRAS" +type "time" +value "44 ns" +) +(GiElement +name "tRC" +type "time" +value "66 ns" +) +(GiElement +name "tRCD" +type "time" +value "20 ns" +) +(GiElement +name "tRP" +type "time" +value "20 ns" +) +(GiElement +name "tRRD" +type "time" +value "15 ns" +) +(GiElement +name "tWRa" +type "time" +value "7.5 ns" +) +(GiElement +name "tWRp" +type "time" +value "15 ns" +) +(GiElement +name "tAH" +type "time" +value "0.8 ns" +) +(GiElement +name "tAS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCH" +type "time" +value "2.5 ns" +) +(GiElement +name "tCL" +type "time" +value "2.5 ns" +) +(GiElement +name "tCK" +type "time" +value "10 ns" +) +(GiElement +name "tDH" +type "time" +value "0.8 ns" +) +(GiElement +name "tDS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCKH" +type "time" +value "0.8 ns" +) +(GiElement +name "tCKS" +type "time" +value "1.5 ns" +) +(GiElement +name "tCMH" +type "time" +value "0.8 ns" +) +(GiElement +name "tCMS" +type "time" +value "1.5 ns" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*137 (Grouping +uid 16,0 +optionalChildren [ +*138 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,47000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,44600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*139 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "47000,44000,51000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "47200,44000,50800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*140 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,47000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,46400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*141 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,46000,30000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "26200,46000,29800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*142 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "47000,45000,67000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "47200,45200,60400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*143 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,67000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,53000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*144 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,44000,47000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "32000,44500,41000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*145 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,47000,30000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "26200,47000,29200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*146 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "26000,48000,30000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "26200,48000,29800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*147 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,47000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,40400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "26000,44000,67000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *148 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*149 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,0,-600,1000" +st "Package List" +blo "-6000,800" +) +*150 (MLText +uid 50,0 +va (VaSet +) +xt "-6000,1000,12600,8000" +st "LIBRARY STD; + USE std.textio.all; +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all; +LIBRARY memory_test; + USE memory_test.mti_pkg.all;" +tm "PackageList" +) +] +) +windowSize "70,52,1376,905" +viewArea "-7100,-1100,68990,50630" +cachedDiagramExtent "-6000,0,67000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-6000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *151 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *152 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,13200,-600,14200" +st "Declarations" +blo "-6000,14000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,14200,-3300,15200" +st "Ports:" +blo "-6000,15000" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-6000,24200,-3500,25100" +st "User:" +blo "-6000,24900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-6000,13200,-200,14200" +st "Internal User:" +blo "-6000,14000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "-4000,25100,-4000,25100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-6000,13200,-6000,13200" +tm "SyDeclarativeTextMgr" +) +) +lastUid 661,0 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hdl/aluBOpSelector_RTL.vhd b/Libs/NanoBlaze/hdl/aluBOpSelector_RTL.vhd new file mode 100644 index 0000000..29ffaad --- /dev/null +++ b/Libs/NanoBlaze/hdl/aluBOpSelector_RTL.vhd @@ -0,0 +1,24 @@ +ARCHITECTURE RTL OF aluBOpSelector IS +BEGIN + + selectDataSource: process( + registerFileSel, registerFileIn, + scratchpadSel, spadIn, + portInSel, portIn, + instrDataSel, instrData + ) + begin + if registerFileSel = '1' then + opB <= registerFileIn; + elsif scratchpadSel = '1' then + opB <= spadIn; + elsif portInSel = '1' then + opB <= portIn; + elsif instrDataSel = '1' then + opB <= instrData; + else + opB <= (others => '-'); + end if; + end process selectDataSource; + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/alu_RTL.vhd b/Libs/NanoBlaze/hdl/alu_RTL.vhd new file mode 100644 index 0000000..4d4ac8c --- /dev/null +++ b/Libs/NanoBlaze/hdl/alu_RTL.vhd @@ -0,0 +1,113 @@ +ARCHITECTURE RTL OF alu IS + + signal aluCodeInt: unsigned(aluCode'range); + signal aArith: signed(opA'high+1 downto 0); + signal bArith: signed(opA'high+1 downto 0); + signal cInArith: signed(1 downto 0); + signal cInShift: std_ulogic; + signal yArith: signed(aluOut'high+1 downto 0); + signal aluOutInt: signed(aluOut'range); + +BEGIN + ------------------------------------------------------------------------------ + -- clear aluCode don't care LSB for shifts + aluCodeInt(aluCode'high downto 1) <= unsigned(aluCode(aluCode'high downto 1)); + + cleanupLsb: process(aluCode) + begin + if aluCode(aluCode'high) = '1' then + aluCodeInt(0) <= '0'; + else + aluCodeInt(0) <= aluCode(0); + end if; + end process cleanupLsb; + + ------------------------------------------------------------------------------ + -- values for arithmetic operations + aArith <= signed(resize(unsigned(opA), aArith'length)); + bArith <= signed(resize(unsigned(opB), bArith'length)); + cInArith <= (0 => cIn, others => '0'); + + process(aluCode, cIn, opA) + begin + case aluCode(2 downto 1) is + when "00" => cInShift <= cIn; + when "01" => cInShift <= opA(opA'high); + when "10" => cInShift <= opA(opA'low); + when "11" => cInShift <= aluCode(0); + when others => cInShift <= '-'; + end case; + end process; + + ------------------------------------------------------------------------------ + -- alu operations + aluOperation: process( + aluCodeInt, + opA, opB, + aArith, bArith, cInArith, + cInShift, + yArith, aluOutInt + ) + variable xorAcc: std_ulogic; + begin + yArith <= (others => '-'); + cOut <= '-'; + aluOutInt <= (others => '-'); + case to_integer(aluCodeInt) is + when 0 => -- LOAD sX, kk + aluOutInt <= opB; + when 2 => -- INPUT sX, pp + aluOutInt <= opB; + when 3 => -- FETCH sX, ss + aluOutInt <= opB; + when 5 => -- AND sX, kk + aluOutInt <= opA and opB; + cOut <= '0'; + when 6 => -- OR sX, kk + aluOutInt <= opA or opB; + cOut <= '0'; + when 7 => -- XOR sX, kk + aluOutInt <= opA xor opB; + cOut <= '0'; + when 9 => -- TEST sX, kk + aluOutInt <= opA and opB; + xorAcc := '0'; + for index in aluOutInt'range loop + xorAcc := xorAcc xor aluOutInt(index); + end loop; + cOut <= xorAcc; + when 10 => -- COMPARE sX, kk + yArith <= aArith - bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 12 => -- ADD sX, kk + yArith <= aArith + bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 13 => -- ADDCY sX, kk + yArith <= (aArith + bArith) + cInArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 14 => -- SUB sX, kk + yArith <= aArith - bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 15 => -- SUBCY sX, kk + yArith <= (aArith - bArith) - cInArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 16 to 23 => -- SL sX + aluOutInt <= opA(opA'high-1 downto 0) & cInShift; + cOut <= opA(opA'high); + when 24 to 31 => -- SR sX + aluOutInt <= cInShift & opA(opA'high downto 1); + cOut <= opA(0); + when others => + aluOutInt <= (others => '-'); + end case; + end process aluOperation; + + aluOut <= aluOutInt; + zero <= '1' when aluOutInt = 0 else '0'; + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/branchStack_RTL.vhd b/Libs/NanoBlaze/hdl/branchStack_RTL.vhd new file mode 100644 index 0000000..0a76765 --- /dev/null +++ b/Libs/NanoBlaze/hdl/branchStack_RTL.vhd @@ -0,0 +1,40 @@ +ARCHITECTURE RTL OF branchStack IS + + subtype progCounterType is unsigned(progCounter'range); + type progCounterArrayType is array (0 to 2**stackPointerBitNb) of progCounterType; + signal progCounterArray : progCounterArrayType; + + signal writePointer : unsigned(stackPointerBitNb-1 downto 0); + signal readPointer : unsigned(stackPointerBitNb-1 downto 0); + +BEGIN + ------------------------------------------------------------------------------ + -- stack pointers + updateStackPointer: process(reset, clock) + begin + if reset = '1' then + writePointer <= (others => '0'); + elsif rising_edge(clock) then + if storePC = '1' then + writePointer <= writePointer + 1; + elsif prevPC = '1' then + writePointer <= writePointer - 1; + end if; + end if; + end process updateStackPointer; + + readPointer <= writePointer - 1; + + ------------------------------------------------------------------------------ + -- program counters stack + updateStack: process(reset, clock) + begin + if rising_edge(clock) then + if storePc = '1' then + progCounterArray(to_integer(writePointer)) <= progCounter; + end if; + storedProgCounter <= progCounterArray(to_integer(readPointer)); + end if; + end process updateStack; + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/controller_RTL.vhd b/Libs/NanoBlaze/hdl/controller_RTL.vhd new file mode 100644 index 0000000..fa8bc5c --- /dev/null +++ b/Libs/NanoBlaze/hdl/controller_RTL.vhd @@ -0,0 +1,236 @@ +ARCHITECTURE RTL OF controller IS + + signal en1, enInt: std_ulogic; + + constant opCodeLength : integer := 5; + subtype opCodeType is std_ulogic_vector(opCodeLength-1 downto 0); + constant opLoad : opCodeType := "00000"; + constant opInput : opCodeType := "00010"; + constant opFetch : opCodeType := "00011"; + constant opAnd : opCodeType := "00101"; + constant opOr : opCodeType := "00110"; + constant opXor : opCodeType := "00111"; + constant opTest : opCodeType := "01001"; + constant opComp : opCodeType := "01010"; + constant opAdd : opCodeType := "01100"; + constant opAddCy : opCodeType := "01101"; + constant opSub : opCodeType := "01110"; + constant opSubCy : opCodeType := "01111"; + constant opShRot : opCodeType := "10000"; + constant opRet : opCodeType := "10101"; + constant opOutput: opCodeType := "10110"; + constant opStore : opCodeType := "10111"; + constant opCall : opCodeType := "11000"; + constant opJump : opCodeType := "11010"; + constant opIntF : opCodeType := "11110"; + + constant branchConditionLength : integer := 3; + subtype branchConditionType is std_ulogic_vector(branchConditionLength-1 downto 0); + constant brAw : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + signal aluOpSel: std_ulogic; + signal regWriteEn: std_ulogic; + + signal flagsEn, flagsEnable: std_ulogic; + signal carrySaved: std_ulogic; + signal zeroSaved: std_ulogic; + + signal branchEnable1, branchEnable: std_ulogic; + signal discardOpCode: std_ulogic; + + signal updateIntFlag: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- Enable signal + buildEnable: process(reset, clock) + begin + if reset = '1' then + en1 <= '0'; + elsif rising_edge(clock) then + en1 <= '1'; + end if; + end process buildEnable; + + enInt <= en1 and en; -- don't enable very first instruction twice + + ------------------------------------------------------------------------------ + -- ALU controls + selectdataSource: process(opCode) + begin + aluOpSel <= '0'; + portInSel <= '0'; + scratchpadSel <= '0'; + case opCode(opCodeLength-1 downto 0) is + when opLoad => aluOpSel <= '1'; + when opInput => portInSel <= '1'; + when opFetch => scratchpadSel <= '1'; + when opAnd => aluOpSel <= '1'; + when opOr => aluOpSel <= '1'; + when opXor => aluOpSel <= '1'; + when opTest => aluOpSel <= '1'; + when opComp => aluOpSel <= '1'; + when opAdd => aluOpSel <= '1'; + when opAddCy => aluOpSel <= '1'; + when opSub => aluOpSel <= '1'; + when opSubCy => aluOpSel <= '1'; + when opShRot => aluOpSel <= '1'; + when others => aluOpSel <= '-'; + portInSel <= '-'; + scratchpadSel <= '-'; + end case; + end process selectdataSource; + + registerFileSel <= aluOpSel and twoRegInstr; + instrDataSel <= aluOpSel and (not twoRegInstr); + + regWriteEn <= enInt and (not discardOpCode); + + regWriteTable: process(opCode, regWriteEn) + begin + case opCode(opCodeLength-1 downto 0) is + when opLoad => regWrite <= regWriteEn; + when opInput => regWrite <= regWriteEn; + when opFetch => regWrite <= regWriteEn; + when opAnd => regWrite <= regWriteEn; + when opOr => regWrite <= regWriteEn; + when opXor => regWrite <= regWriteEn; + when opAdd => regWrite <= regWriteEn; + when opAddCy => regWrite <= regWriteEn; + when opSub => regWrite <= regWriteEn; + when opSubCy => regWrite <= regWriteEn; + when opShRot => regWrite <= regWriteEn; + when others => regWrite <= '0'; + end case; + end process regWriteTable; + + ------------------------------------------------------------------------------ + -- I/O controls + readStrobe <= enInt when (opCode = opInput) and (discardOpCode = '0') + else '0'; + writeStrobe <= enInt when (opCode = opOutput) and (discardOpCode = '0') + else '0'; + + ------------------------------------------------------------------------------ + -- scratchpad controls + scratchpadWrite <= '1' when opCode = opStore else '0'; + + ------------------------------------------------------------------------------ + -- Carry logic + flagsEn <= enInt and (not branchEnable); + + flagsEnableTable: process(opCode, flagsEn) + begin + case opCode(opCodeLength-1 downto 0) is + when opAnd => flagsEnable <= flagsEn; + when opOr => flagsEnable <= flagsEn; + when opXor => flagsEnable <= flagsEn; + when opTest => flagsEnable <= flagsEn; + when opComp => flagsEnable <= flagsEn; + when opAdd => flagsEnable <= flagsEn; + when opAddCy => flagsEnable <= flagsEn; + when opSub => flagsEnable <= flagsEn; + when opSubCy => flagsEnable <= flagsEn; + when opShRot => flagsEnable <= flagsEn; + when others => flagsEnable <= '0'; + end case; + end process flagsEnableTable; + + saveCarries: process(reset, clock) + begin + if reset = '1' then + carrySaved <= '0'; + zeroSaved <= '0'; + elsif rising_edge(clock) then + if flagsEnable = '1' then + carrySaved <= cOut; + zeroSaved <= zero; + end if; + end if; + end process saveCarries; + + cIn <= carrySaved; + + ------------------------------------------------------------------------------ + -- Program counter controls + checkBranchCondition: process(branchCond, zeroSaved, carrySaved) + begin + case branchCond(branchConditionLength-1 downto 0) is + when brAw => branchEnable1 <= '1'; + when brZ => branchEnable1 <= zeroSaved; + when brNZ => branchEnable1 <= not zeroSaved; + when brC => branchEnable1 <= carrySaved; + when brNC => branchEnable1 <= not carrySaved; + when others => branchEnable1 <= '-'; + end case; + end process checkBranchCondition; + + branchEnableTable: process(opCode, branchEnable1, discardOpCode) + begin + if discardOpCode = '0' then + case opCode(opCodeLength-1 downto 0) is + when opRet => branchEnable <= branchEnable1; + when opCall => branchEnable <= branchEnable1; + when opJump => branchEnable <= branchEnable1; + when others => branchEnable <= '0'; + end case; + else + branchEnable <= '0'; + end if; + end process branchEnableTable; + + progCounterControlTable: process(opCode, enInt, branchEnable) + begin + incPC <= enInt; + loadInstrAddress <= '0'; + loadStoredPC <= '0'; + case opCode(opCodeLength-1 downto 0) is + when opRet => incPC <= not branchEnable; + loadStoredPC <= enInt and branchEnable; + when opCall => incPC <= not branchEnable; + loadInstrAddress <= enInt and branchEnable; + when opJump => incPC <= not branchEnable; + loadInstrAddress <= enInt and branchEnable; + when others => null; + end case; + end process progCounterControlTable; + + -- If a branch condition is met, the next operation has to be discarded. + -- This is due to the synchronous operation of the program ROM: the + -- instructions are provided one clock period after the program counter. + -- so while the branch operation is processed, the next instruction is + -- already being fetched. + delayBranchEnable: process(reset, clock) + begin + if reset = '1' then + discardOpCode <= '0'; + elsif rising_edge(clock) then + discardOpCode <= branchEnable; + end if; + end process delayBranchEnable; + + ------------------------------------------------------------------------------ + -- Stack pointer controls + pcStackControlTable: process(discardOpCode, opCode, enInt) + begin + storePC <= '0'; + prevPC <= '0'; + if discardOpCode = '0' then + case opCode(opCodeLength-1 downto 0) is + when opRet => prevPC <= enInt; + when opCall => storePC <= enInt; + when others => null; + end case; + end if; + end process pcStackControlTable; + + + ------------------------------------------------------------------------------ + -- interrupt control + updateIntFlag <= '1' when opCode = opIntF else '0'; + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/instructionDecoder_RTL.vhd b/Libs/NanoBlaze/hdl/instructionDecoder_RTL.vhd new file mode 100644 index 0000000..7c7203b --- /dev/null +++ b/Libs/NanoBlaze/hdl/instructionDecoder_RTL.vhd @@ -0,0 +1,56 @@ +ARCHITECTURE RTL OF instructionDecoder IS + + constant opCodeIndexH : integer := instruction'high; + constant opCodeIndexL : integer := opCodeIndexH - opCodeBitNb + 1; + + constant twoRegInstrIndex : integer := opCodeIndexL - 1; + constant ioAddrIndexed : integer := twoRegInstrIndex; + + constant addrAIndexH : integer := twoRegInstrIndex - 1; + constant addrAIndexL : integer := addrAIndexH - registerAddressBitNb + 1; + + constant immediateDataIndexH : integer := registerBitNb-1; + constant immediateDataIndexL : integer := 0; + constant addrBIndexH : integer := addrAIndexL - 1; + constant addrBIndexL : integer := addrBIndexH - registerAddressBitNb + 1; + + constant aluCodeIndexH : integer := opCodeIndexH; + constant aluCodeIndexL : integer := aluCodeIndexH - aluCodeBitNb + 1; + + constant portAddressH : integer := registerBitNb-1; + constant portAddressL : integer := portAddressH-portAddressBitNb+1; + constant spadAddressH : integer := registerBitNb-1; + constant spadAddressL : integer := spadAddressH-spadAddressBitNb+1; + + constant branchCondH : integer := opCodeIndexL-1; + constant branchCondL : integer := branchCondH-branchCondBitNb+1; + +BEGIN + ------------------------------------------------------------------------------ + -- ALU control + aluCode <= + instruction(aluCodeIndexH downto aluCodeIndexL) + when instruction(aluCodeIndexH) = '0' else + '1' & instruction(aluCodeBitNb-2 downto 0); + opCode <= instruction(opCodeIndexH downto opCodeIndexL); + twoRegInstr <= instruction(twoRegInstrIndex); + addrA <= unsigned(instruction(addrAIndexH downto addrAIndexL)); + addrB <= unsigned(instruction(addrBIndexH downto addrBIndexL)); + instrData <= signed(instruction(immediateDataIndexH downto immediateDataIndexL)); + + ------------------------------------------------------------------------------ + -- I/O control + portIndexedSel <= instruction(ioAddrIndexed); + portAddress <= unsigned(instruction(portAddressH downto portAddressL)); + + ------------------------------------------------------------------------------ + -- scratchpad control + spadIndexedSel <= instruction(ioAddrIndexed); + spadAddress <= unsigned(instruction(spadAddressH downto spadAddressL)); + + ------------------------------------------------------------------------------ + -- branch control + branchCond <= instruction(branchCondH downto branchCondL); + instrAddress <= unsigned(instruction(instrAddress'range)); + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/nanoAsm.pl b/Libs/NanoBlaze/hdl/nanoAsm.pl new file mode 100644 index 0000000..c80bcf7 --- /dev/null +++ b/Libs/NanoBlaze/hdl/nanoAsm.pl @@ -0,0 +1,565 @@ +#!/usr/bin/env perl + +my $indent = ' ' x 2; +my $separator = '-' x 80; + +################################################################################ +# Input arguments +# +use Getopt::Std; +my %opts; +getopts('hva:d:r:kz', \%opts); + +die("\n". + "Usage: $0 [options] fileSpec\n". + "\n". + "Options:\n". + "${indent}-h display this help message\n". + "${indent}-v verbose\n". + "${indent}-a bitNb the number of program address bits\n". + "${indent}-d bitNb the number of data bits\n". + "${indent}-r bitNb the number of register address bits\n". + "${indent}-k keep source comments in VHDL code\n". + "${indent}-z zero don't care bits in VHDL ROM code\n". + "\n". + "Assemble code to VHDL for the nanoBlaze processor.\n". + "\n". + "More information with: perldoc $0\n". + "\n". + "" + ) if ($opts{h}); + +my $verbose = $opts{v}; +my $keepComments = $opts{k}; +my $zeroDontCares = $opts{z}; +my $addressBitNb = $opts{a} || 10; +my $registerBitNb = $opts{d} || 8; +my $registerAddressBitNb = $opts{r} || 4; + +my $asmFileSpec = $ARGV[0] || 'nanoTest.asm'; +my $outFileSpec = $ARGV[1] || 'rom_mapped.vhd'; + +#------------------------------------------------------------------------------- +# System constants +# +my $binaryOpCodeLength = 6; +my $binaryBranchLength = 5; +my $binaryBranchConditionLength = 3; + +my $opCodeBaseLength = 10; +my $vhdlAddressLength = 14; + +#------------------------------------------------------------------------------- +# Derived values +# + # file specs +my $baseFileSpec = $asmFileSpec; +$baseFileSpec =~ s/\..*//i; +my $asm1FileSpec = "$baseFileSpec.asm1"; # formatted assembly code +my $asm2FileSpec = "$baseFileSpec.asm2"; # code with addresses replaced +my $vhdlFileSpec = "$baseFileSpec.vhd"; + # instruction length +my $binaryOperationInstructionLength = + $binaryOpCodeLength + + $registerAddressBitNb + + $registerBitNb; +my $binaryBranchInstructionLength = + $binaryBranchLength + + $binaryBranchConditionLength + + $addressBitNb; +my $binaryInstructionLength = $binaryOperationInstructionLength; +if ($binaryBranchInstructionLength > $binaryInstructionLength) { + $binaryInstructionLength = $binaryBranchInstructionLength +} + # assembler string lengths +my $registerCharNb = int( ($registerBitNb-1)/4 ) + 1; +my $addressCharNb = int( ($addressBitNb-1)/4 ) + 1; + # vhdl string lengths +my $vhdlOpCodeLength = $binaryOpCodeLength + 4; +my $opCodeTotalLength = 22 + $registerCharNb; +my $vhdlOperand1Length = $registerAddressBitNb + 3; +my $vhdlOperand2Length = $registerBitNb + 4; +if ($addressBitNb + 3 > $vhdlOperand2Length) { + $vhdlOperand2Length = $addressBitNb + 3 +} +my $vhdlTotalLength = $vhdlOpCodeLength; +$vhdlTotalLength = $vhdlTotalLength + $vhdlOperand1Length + $vhdlOperand2Length; +$vhdlTotalLength = $vhdlTotalLength + 2*2; # '& ' +$vhdlTotalLength = $vhdlTotalLength + 1; # ',' + +#------------------------------------------------------------------------------- +# System variables +# +my %constants = (); +my %addresses = (); + +################################################################################ +# Functions +# + +#------------------------------------------------------------------------------- +# Find constant from "CONSTANT" statement +# +sub findNewConstant { + my ($codeLine) = @_; + + $codeLine =~ s/CONSTANT\s+//; + my ($name, $value) = split(/,\s*/, $codeLine); + $value = hex($value); + + return ($name, $value); +} + +#------------------------------------------------------------------------------- +# Find address from "ADDRESS" statement +# +sub findNewAddress { + my ($codeLine) = @_; + + $codeLine =~ s/ADDRESS\s*//; + my $address = hex($codeLine); + + return $address; +} + +#------------------------------------------------------------------------------- +# Format opcodes +# +sub prettyPrint { + my ($codeLine) = @_; + + my ($opcode, $arguments) = split(/ /, $codeLine, 2); + $opcode = $opcode . ' ' x ($opCodeBaseLength - length($opcode)); + $arguments =~ s/,*\s+/, /; + $codeLine = $opcode . $arguments; + + return $codeLine; +} + +#------------------------------------------------------------------------------- +# Format to binary +# +sub toBinary { + my ($operand, $bitNb) = @_; + + #$operand = sprintf("%0${bitNb}b", $operand); + + my $hexCharNb = int($bitNb/4) + 1; + $operand = sprintf("%0${hexCharNb}X", $operand); + $operand =~ s/0/0000/g; + $operand =~ s/1/0001/g; + $operand =~ s/2/0010/g; + $operand =~ s/3/0011/g; + $operand =~ s/4/0100/g; + $operand =~ s/5/0101/g; + $operand =~ s/6/0110/g; + $operand =~ s/7/0111/g; + $operand =~ s/8/1000/g; + $operand =~ s/9/1001/g; + $operand =~ s/A/1010/g; + $operand =~ s/B/1011/g; + $operand =~ s/C/1100/g; + $operand =~ s/D/1101/g; + $operand =~ s/E/1110/g; + $operand =~ s/F/1111/g; + $operand = substr($operand, length($operand)-$bitNb, $bitNb); + + return $operand; +} + +################################################################################ +# Program start +# + +#------------------------------------------------------------------------------- +# Display information +# +if ($verbose > 0) { + print "$separator\n"; + print "Assembling $asmFileSpec to $vhdlFileSpec\n"; +} + +#------------------------------------------------------------------------------- +# Calculate adresses, store address labels +# +if ($verbose > 0) { + print "${indent}Pass 1: from $asmFileSpec to $asm1FileSpec\n"; +} + +my $romAddress = 0; +open(asmFile, "<$asmFileSpec") or die "Unable to open file, $!"; +open(asm1File, ">$asm1FileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); + # split code and comment + my ($codeLine, $comment) = split(/;/, $line, 2); + # handle address label + if ($codeLine =~ m/:/) { + (my $label, $codeLine) = split(/:/, $codeLine); + $label =~ s/\s*//; + print asm1File "; _${label}_:\n"; + $addresses{$label} = sprintf("%0${addressCharNb}X", $romAddress); + } + # cleanup code + $codeLine =~ s/\s+/ /g; + $codeLine =~ s/\A\s//; + $codeLine =~ s/\s\Z//; + $codeLine =~ s/\s,/,/; + if ($codeLine) { + # handle ADDRESS declaration + if ($codeLine =~ m/ADDRESS/) { + $romAddress = findNewAddress($codeLine); + } + # handle CONSTANT declaration + elsif ($codeLine =~ m/CONSTANT/) { + ($name, $value) = findNewConstant($codeLine); + $constants{$name} = sprintf("%0${registerCharNb}X", $value); + } + # print cleaned-up code + else { + $codeLine = prettyPrint($codeLine); + print asm1File sprintf("%0${addressCharNb}X", $romAddress), ": $codeLine"; + if ($comment) { + print asm1File " ;$comment"; + } + print asm1File "\n"; + $romAddress = $romAddress + 1; + } + } + else { + print asm1File ";$comment\n"; + } +} +close(asmFile); +close(asm1File); + +#------------------------------------------------------------------------------- +# Replace constant values and address labels +# +if ($verbose > 0) { + print "${indent}Pass 2: from $asm1FileSpec to $asm2FileSpec\n"; +} + +open(asm2File, ">$asm2FileSpec") or die "Unable to open file, $!"; +open(asm1File, "<$asm1FileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); + # split code and comment + my ($opcode, $comment) = split(/;/, $line, 2); + if ( ($line =~ m/;/) and ($comment eq '') ) { + $comment = ' '; + } + # cleanup code + $opcode =~ s/\s+\Z//; + # replace constants + foreach my $name (keys %constants) { + $opcode =~ s/$name/$constants{$name}/g; + } + # replace addresses + foreach my $label (keys %addresses) { + $opcode =~ s/$label/$addresses{$label}/g; + } + # cleanup code + $opcode = uc($opcode); + $opcode =~ s/\sS([0-9A-F])/ s$1/g; + # print cleaned-up code + if ($comment) { + if ($opcode) { + $opcode = $opcode . ' ' x ($opCodeTotalLength - length($opcode)); + } + $comment =~ s/\s+\Z//; + print asm2File "$opcode;$comment\n"; + } + else { + print asm2File "$opcode\n"; + } +} +close(asm1File); +close(asm2File); + +#------------------------------------------------------------------------------- +# Write VHDL ROM code +# +if ($verbose > 0) { + print "${indent}Pass 3: from $asm2FileSpec to $vhdlFileSpec\n"; +} +open(vhdlFile, ">$vhdlFileSpec") or die "Unable to open file, $!"; +print vhdlFile < '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( +DONE +open(asm2File, "<$asm2FileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); + # split code and comment + my ($opcode, $comment) = split(/;/, $line, 2); + if ( ($line =~ m/;/) and ($comment eq '') ) { + $comment = ' '; + } + # addresses to VHDL + my $address; + if ($opcode) { + ($address, $opcode) = split(/:\s+/, $opcode, 2); + $address = '16#' . $address . '# =>'; + $address = ' ' x ($vhdlAddressLength - length($address)) . $address; + } + # opcode to VHDL + if ($opcode) { + if ($comment eq '') { + $comment = ' ' . $opcode; + } + else { + $comment = ' ' . $opcode . ';' . $comment; + } + # replace NOP + $opcode =~ s/\ANOP/LOAD s0, s0/; + # split opcodes and operands + $opcode =~ s/\s+/ /; + $opcode =~ s/\s+\Z//; + ($opcode, my $operand1, my $operand2) = split(/\s/, $opcode); + $operand1 =~ s/,//; + $operand1 =~ s/S/s/; + $operand2 =~ s/S/s/; + if ( ($opcode =~ m/\ASL/) or ($opcode =~ m/\ASR/) ) { + $operand2 = substr($opcode, 0, 3); + $opcode = 'SHIFT'; + } + if ( ($opcode =~ m/\ARL/) or ($opcode =~ m/\ARR/) ) { + $operand2 = substr($opcode, 0, 2); + $opcode = 'ROT'; + } + if ( ($opcode eq 'JUMP') or ($opcode eq 'CALL') or ($opcode eq 'RETURN') ) { + unless ($operand2) { + unless ($opcode eq 'RETURN') { + $operand2 = $operand1; + } + $operand1 = 'AW'; # AlWays + } + } + #........................................................................... + # opcodes to VHDL + $opcode =~ s/LOAD/opLoadC/; + $opcode =~ s/AND/opAndC/; + $opcode =~ s/XOR/opXorC/; + $opcode =~ s/ADDCY/opAddCyC/; + $opcode =~ s/SUBCY/opSubCyC/; + $opcode =~ s/ADD/opAddC/; + $opcode =~ s/SUB/opSubC/; + $opcode =~ s/SHIFT/opShRot/; + $opcode =~ s/ROT/opShRot/; + $opcode =~ s/COMPARE/opCompC/; + $opcode =~ s/TEST/opTestC/; + $opcode =~ s/FETCH/opFetchC/; + $opcode =~ s/STORE/opStoreC/; + $opcode =~ s/OR/opOrC/; + $opcode =~ s/INPUT/opInputC/; + $opcode =~ s/OUTPUT/opOutputC/; + $opcode =~ s/JUMP/brJump/; + $opcode =~ s/CALL/brCall/; + $opcode =~ s/RETURN/brRet/; + if ($operand2 =~ m/s[0-9A-F]/) { + $opcode =~ s/C\Z/R/; + } + $opcode = $opcode . ' ' x ($vhdlOpCodeLength - length($opcode)) . '& '; + #........................................................................... + # register as first operand + if ($operand1 =~ m/s[0-9A-F]/) { + $operand1 =~ s/\As//; + $operand1 = '"' . toBinary($operand1, $registerAddressBitNb) . '"'; + } + # test condition + $operand1 =~ s/NC/brNC/; + $operand1 =~ s/NZ/brNZ/; + $operand1 =~ s/\AC/brC/; + $operand1 =~ s/\AZ/brZ/; + $operand1 =~ s/AW/brDo/; + if ($opcode =~ m/brRet/) { + $operand2 = 0; + } + if ($operand2 eq '') { + $operand1 = $operand1 . ','; + } + $operand1 = $operand1 . ' ' x ($vhdlOperand1Length - length($operand1)); + unless ($operand2 eq '') { + $operand1 = $operand1 . '& '; + } +#print "|$opcode| |$operand1| |$operand2|\n"; + #........................................................................... + # register as second operand + $operand2 =~ s/\A\((.*)\)\Z/$1/; + if ($operand2 =~ m/s[0-9A-F]/) { + $operand2 =~ s/\As//; + $operand2 = toBinary($operand2, $registerAddressBitNb); + if ($registerBitNb > $registerAddressBitNb) { + $operand2 = $operand2 . '-' x ($registerBitNb - $registerAddressBitNb); + if ($zeroDontCares) { + $operand2 =~ s/\-/0/g; + } + } + } + # address as second operand + elsif ($opcode =~ m/\Abr/) { + my $fill = ''; + if ($binaryBranchInstructionLength < $binaryInstructionLength) { + $fill = '-' x ($binaryInstructionLength - $binaryBranchInstructionLength); + if ($zeroDontCares) { + $fill =~ s/\-/0/g; + } + } + if ( ($opcode =~ m/Ret/) ) { + $operand2 = $fill . '-' x $addressBitNb; + } + else { + $operand2 = $fill . toBinary(hex($operand2), $addressBitNb); + } + } + # shift and rotate operators + elsif ($opcode =~ m/opShRot/) { + $operand2 =~ s/SL0/shRotL & shRotLd0/; + $operand2 =~ s/SL1/shRotL & shRotLd1/; + $operand2 =~ s/SLX/shRotL & shRotLdL/; + $operand2 =~ s/SLA/shRotL & shRotLdC/; + $operand2 =~ s/SR0/shRotR & shRotLd0/; + $operand2 =~ s/SR1/shRotR & shRotLd1/; + $operand2 =~ s/SRX/shRotR & shRotLdM/; + $operand2 =~ s/SRA/shRotR & shRotLdC/; + $operand2 =~ s/RL/shRotL & shRotLdH/; + $operand2 =~ s/RR/shRotR & shRotLdL/; + } + # constant as second operand + else { + $operand2 = toBinary(hex($operand2), $registerBitNb); + if ($registerAddressBitNb > $registerBitNb) { + $operand2 = '-' x ($registerAddressBitNb - $registerBitNb) . $operand2; + } + } + unless ($opcode =~ m/opShRot/) { + $operand2 = '"' . $operand2 . '"'; + } + # add separator at end + if ($operand2) { + $operand2 = $operand2 . ','; + } + #........................................................................... + # concatenate opcode and operands + $opcode = $opcode . $operand1 . $operand2; + } + else { + $address = ' ' x $vhdlAddressLength; + } + # print VHDL code + if ($keepComments == 0) { + if ($opcode) { + print vhdlFile "$address $opcode\n"; + } + } + else { + $opcode = $opcode . ' ' x ($vhdlTotalLength - length($opcode)); + if ($comment) { + $comment =~ s/\s+\Z//; + print vhdlFile "$address $opcode--$comment\n"; + } + else { + print vhdlFile "$address $opcode\n"; + } + } +} +close(asm2File); +print vhdlFile < (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; +DONE +close(vhdlFile); + +#------------------------------------------------------------------------------- +# Delete original file and copy VHDL file +# +if ($verbose > 0) { + print "Copying $vhdlFileSpec to $outFileSpec\n"; +} + +use File::Copy; +unlink($outFileSpec); +copy($vhdlFileSpec, $outFileSpec) or die "File cannot be copied."; +#rename($vhdlFileSpec, $outFileSpec); + +if ($verbose > 0) { + print "$separator\n"; +} diff --git a/Libs/NanoBlaze/hdl/nanoPascal.pl b/Libs/NanoBlaze/hdl/nanoPascal.pl new file mode 100644 index 0000000..833836a --- /dev/null +++ b/Libs/NanoBlaze/hdl/nanoPascal.pl @@ -0,0 +1,1198 @@ +#!/usr/bin/perl + +my $indent = ' ' x 2; +my $separator = '-' x 80; + +################################################################################ +# Input arguments +# +use Getopt::Std; +my %opts; +getopts('hva:d:r:kc', \%opts); + +die("\n". + "Usage: $0 [options] fileSpec\n". + "\n". + "Options:\n". + "${indent}-h display this help message\n". + "${indent}-v verbose\n". + "${indent}-a bitNb the number of program address bits\n". + "${indent}-d bitNb the number of data bits\n". + "${indent}-r bitNb the number of register address bits\n". + "${indent}-k keep intermediate files\n". + "${indent}-c clean temporary work files\n". + "\n". + "Compiles a Pascal program to assembler code for the nanoBlaze processor.\n". + "\n". + "More information with: perldoc $0\n". + "\n". + "" + ) if ($opts{h}); + +my $verbose = $opts{v}; +my $keepIntermediateFiles= $opts{k}; +my $cleanTempFiles = $opts{c}; +my $addressBitNb = $opts{a} || 10; +my $registerBitNb = $opts{d} || 8; +my $registerAddressBitNb = $opts{r} || 4; + +my $pascalFileSpec = $ARGV[0] || 'nanoTest.pas'; +my $asmFileSpec = $ARGV[1] || 'nanoTest.asm'; + +#------------------------------------------------------------------------------- +# System constants +# +my $mainProgram = 'mainProgram'; +my $wordHexCharNb = 4; +my $firstRegister = 2; # reserve 2 registers for internal calculations +my $functionReturnRegister = 's0'; +my $conditionRegister = 's1'; +my $memoryAccessRegister = 's1'; +my $partialOperationRegister = 's1'; + +#------------------------------------------------------------------------------- +# Derived values +# + # file specs +my $baseFileSpec = $pascalFileSpec; +$baseFileSpec =~ s/\..*//i; +my $temp1FileSpec = "$baseFileSpec.tmp1"; +my $temp2FileSpec = "$baseFileSpec.tmp2"; +my $registersFileSpec = "${baseFileSpec}_registers.txt"; # register assignments +my $asm1FileSpec = "$baseFileSpec.asm1"; + +#------------------------------------------------------------------------------- +# Assembler file formatting constants +# +my $asmFirstIndent = ' ' x 24; +my $asmLineLength = 80; +my $commentStart = $asmFirstIndent . ';'; +my $separator1 = fillString($commentStart, '=', $asmLineLength); +my $separator2 = fillString($commentStart, '-', $asmLineLength); +my $opcodeLength = 10; +my $firstArgumentLength = 6; +my $constantMaxLength = 8; + +#------------------------------------------------------------------------------- +# System variables +# +my $currentPass = 0; +my %constants = (); +my %variables = (); +my %registers = (); +my @routines = (); + +################################################################################ +# Functions +# + +#------------------------------------------------------------------------------- +# Swap temporary filespecs from one pass to the other +# +sub swapTempFileSpecs { + my ($inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec) = @_; + # swap to tmp1 -> tmp2 + if ($outputFileSpec eq $temp1FileSpec) { + $inputFileSpec = $temp1FileSpec; + $outputFileSpec = $temp2FileSpec; + } + # swap to tmp2 -> tmp2 + else { + $inputFileSpec = $temp2FileSpec; + $outputFileSpec = $temp1FileSpec; + } + + return ($inputFileSpec, $outputFileSpec); +} + +#------------------------------------------------------------------------------- +# Fill string to a fixed length with a given character +# +sub fillString { + my ($string, $character, $length) = @_; + # fill string + $string .= $character x ($length - length($string)); + + return ($string); +} + +#------------------------------------------------------------------------------- +# Assign registers to all variables +# +sub buildConstants { + my ($mainProgram, %constants) = @_; + # loop on routines + foreach my $subroutine (keys(%constants)) { +#print "$subroutine:\n"; + # build array + $constants{$subroutine} =~ s/\s*\;\Z//; + $constants{$subroutine} =~ s/\s*=\s*/=/g; + my @procedureConstants = split(/\;/, $constants{$subroutine}); + # build hash + my %procedureConstants; + for my $index (0 .. $#procedureConstants) { + my ($name, $value) = split(/\=/, $procedureConstants[$index]); +#print "$name: $value\n"; + $value =~ s/\$([0-9A-Fa-f]+)/0x$1/g; + foreach my $alreadyDeclared (keys(%procedureConstants)) { + $value =~ s/$alreadyDeclared/($procedureConstants{$alreadyDeclared})/g; + } + $value = eval($value); + $procedureConstants{$name} = $value; +#print " $name = $procedureConstants{$name}\n"; + } + $constants{$subroutine} = \%procedureConstants; + } + # convert to hexadecimal + foreach my $subroutine (keys(%constants)) { + my $replacement_ref = $constants{$subroutine}; + foreach my $name (keys(%$replacement_ref)) { + my $value = $$replacement_ref{$name}; + $value = '$' . sprintf('%X', $value); + $$replacement_ref{$name} = $value; + } + } + foreach my $subroutine (keys(%constants)) { + $line =~ s/$name/$$replacement_ref{$name}/g; + } + + return (%constants); +} + +#------------------------------------------------------------------------------- +# Assign registers to variables within a routine +# +sub assignRegistersToRoutine { + my ($startIndex, $variables) = @_; + # build array + $variables =~ s/\;\Z//; + my @variables = split(/\;/, $variables); + # loop on variables + my $registerIndex = $startIndex; + for my $index (0 .. $#variables) { + $variables[$index] =~ s/word/s$registerIndex/; + $variables[$index] =~ s/uint8/s$registerIndex/; + $registerIndex = $registerIndex + 1; +#print " $variables[$index]\n"; + } + # assign registers to main program + + return ($registerIndex-1, join(';', @variables)); +} + +#------------------------------------------------------------------------------- +# Assign registers to all variables +# +sub assignRegisters { + my ($mainProgram, $firstRegister, %variables) = @_; + # loop on routines + my $registerMaxNb = 0; + foreach my $subroutine (keys(%variables)) { + # remove spaces + $variables{$subroutine} =~ s/\s*\:\s*/:/g; + $variables{$subroutine} =~ s/\s*\,\s*/,/g; + # distribute type definitions + my $type; + do { + $variables{$subroutine} =~ s/\,(.*?)\:(.*?)\;/:$2;$1:$2;/; + $type = $2; + } while ($type ne ''); + # assign registers to routine internal variables + if ($subroutine ne $mainProgram) { +#print "$subroutine:\n"; + my ($registerNb, $routineVariables) = assignRegistersToRoutine( + $firstRegister, + $variables{$subroutine} + ); + if ($registerNb > $registerMaxNb) { + $registerMaxNb = $registerNb; + } + $variables{$subroutine} = $routineVariables; +#print " $variables{$subroutine}\n"; + } + } + # assign registers to main program +#print "$mainProgram:\n"; + my ($registerNb, $routineVariables) = assignRegistersToRoutine( + $registerMaxNb + 1, + $variables{$mainProgram} + ); + $variables{$mainProgram} = $routineVariables; +#print " $variables{$mainProgram}\n"; + # build hash of hashes + foreach my $subroutine (keys(%variables)) { + my @registers = split(/\;/, $variables{$subroutine}); + my %assignedRegisters; + foreach my $variable (@registers) { + my ($var, $register) = split(/\:/, $variable); + $assignedRegisters{$var} = $register; + } + $variables{$subroutine} = \%assignedRegisters; + } + return (%variables); +} + +#------------------------------------------------------------------------------- +# Translate Pascal second operand to assembler source operand if possible +# +sub translateArgument { + my ($pascalOperand, $wordHexCharNb) = @_; + my $assemblerOperand = ''; + # register + if ($pascalOperand =~ m/\As(\d+)\Z/) { + $assemblerOperand = "s$1"; + } + # decimal numeric constant + elsif ($pascalOperand =~ m/\A(\d+)\Z/) { + $assemblerOperand = sprintf("%0${wordHexCharNb}X", $pascalOperand); + } + # hexadecimal numeric constant + elsif ($pascalOperand =~ m/\A\$([0-9A-Fa-f]+)\Z/) { + $assemblerOperand = sprintf("%0${wordHexCharNb}X", hex($1)); + } + # declared constant + else { + foreach my $routine (keys(%constants)) { + my $constants_ref = $constants{$routine}; + foreach my $constant (sort(keys(%$constants_ref))) { + if ($pascalOperand eq $constant) { + $assemblerOperand = $pascalOperand; + } + } + } + } + + return ($assemblerOperand); +} + +#------------------------------------------------------------------------------- +# Format assignment in ters of space characters +# +sub formatAssignment { + my ($assignment) = @_; + # unary operators + $assignment =~ s/\A\s*\-\s*/0 - /g; + # arithmetic operations + $assignment =~ s/\s*\+\s*/ + /g; + $assignment =~ s/\s*\-\s*/ - /g; + $assignment =~ s/\s*\*\s*/ * /g; + $assignment =~ s/\s*\/\s*/ \/ /g; + # logic operations + $assignment =~ s/\s+and\s+/ and /ig; + $assignment =~ s/\s+or\s+/ or /ig; + $assignment =~ s/\s+xor\s+/ xor /ig; + $assignment =~ s/\s+shl\s+/ shl /ig; + $assignment =~ s/\s+shr\s+/ shr /ig; + # parenthesis + $assignment =~ s/\(\s+/(/g; + $assignment =~ s/\s+\)/)/g; + $assignment =~ s/\s*\[\s+/[/g; + $assignment =~ s/\s+\]/]/g; + + return ($assignment); +} + +#------------------------------------------------------------------------------- +# Extract first argument of an assignment +# +sub extractFirsrtArgument { + my ($assignment) = @_; + my $operator = ''; + my $restOfAssignment = ''; + # starts with parenthesis + if ($assignment =~ m/\A\(/) { + my $index = 0; + my $level = 0; + my @characters = split(//, $assignment); + foreach my $character (@characters) { + if ($character eq '(') {$level = $level+1}; + if ($character eq '[') {$level = $level+1}; + if ($character eq ']') {$level = $level-1}; + if ($character eq ')') {$level = $level-1}; + if ($level == 0) { + last; + } + $index = $index+1; + } + $firstArgument = substr($assignment, 0, $index+1); + $restOfAssignment = substr($assignment, $index+1); + } + # to first whitespace + else { + my $index = 0; + my $level = 0; + my @characters = split(//, $assignment); + foreach my $character (@characters) { + if ($character eq '(') {$level = $level+1}; + if ($character eq '[') {$level = $level+1}; + if ($character eq ']') {$level = $level-1}; + if ($character eq ')') {$level = $level-1}; + if ( ($character eq ' ') and ($level == 0) ) { + last; + } + $index = $index+1; + } + $firstArgument = substr($assignment, 0, $index); + $restOfAssignment = substr($assignment, $index); + } + $restOfAssignment =~ s/\A //; +#print "|$firstArgument|$restOfAssignment|\n"; + # extract operator + if ($restOfAssignment ne '') { + ($operator, $restOfAssignment) = split(/ /, $restOfAssignment, 2); + } + + return ($firstArgument, $operator, $restOfAssignment); +} + +#------------------------------------------------------------------------------- +# Build expression out of argument and operator list +# +sub buildExpression { + my ($arguments_ref, $operators_ref) = @_; + my @arguments = @$arguments_ref; + my @operators = @$operators_ref; + # loop on list elements + my $expression = $arguments[0]; +#print "0: $expression\n"; + for my $index (1 .. $#arguments) { +#print "$index: $operators[$index] $arguments[$index]\n"; + $expression .= " $operators[$index] $arguments[$index]"; + } + return ($expression); +} + +#------------------------------------------------------------------------------- +# Expand operation to 2 lines +# +sub expandTwo { + my ($destinationRegister, $arguments_ref, $operators_ref) = @_; + my @arguments = @$arguments_ref; + my @operators = @$operators_ref; + my $line = ''; +#print " -> "; +#for my $index (0..scalar(@arguments)-1) { print "$operators[$index] $arguments[$index] ";} +#print "\n"; + # last argument is constant + my $lastArgument = $arguments[$#arguments]; + my $lastOperator = $operators[$#operators]; + my $isDeclaredConstant = 0; + foreach my $routine (keys(%constants)) { + my $constants_ref = $constants{$routine}; + foreach my $constant (sort(keys(%$constants_ref))) { + if ($lastArgument eq $constant) { + $isDeclaredConstant = 1; + } + } + } + if ( + ($lastArgument =~ m/\A\d+\Z/) or + ($lastArgument =~ m/\A\$[0-9A-Fa-f]+\Z/) or + ($isDeclaredConstant) + ) { + pop(@arguments); + pop(@operators); + my $firstArgument = buildExpression(\@arguments, \@operators); + if ($destinationRegister ne $firstArgument) { + $line = "$destinationRegister := $firstArgument;\n"; + } + $line .= "$destinationRegister := $destinationRegister $lastOperator $lastArgument;"; +#print "$line\n"; + } + # last argument is compund + elsif ($lastArgument =~ m/\A\((.+)\)\Z/) { + my $firstArgument = $1; + pop(@arguments); + pop(@operators); + $lastArgument = buildExpression(\@arguments, \@operators); + if ($firstArgument =~ m/ $destinationRegister /) { + $line = "$partialOperationRegister := $firstArgument;\n"; + $line .= "$destinationRegister := $destinationRegister $lastOperator $partialOperationRegister;"; + } + else { + $line = "$destinationRegister := $firstArgument;\n"; + $line .= "$destinationRegister := $destinationRegister $lastOperator $lastArgument;"; + } +#print "$line\n"; + } + + return ($line); +} + +#------------------------------------------------------------------------------- +# Expand assignment to multiple lines +# +sub expandAssignment { + my ($destinationRegister, $assignment) = @_; + # format assignment for treatment + $assignment = formatAssignment($assignment); + # default result + my $line = "$destinationRegister := $assignment;"; +#print "\n$line\n"; + # don't modify simple assignments and function calls + my $source = translateArgument($assignment, $wordHexCharNb); + my @arguments = (); + my @operators = (''); + if ( ($source eq '') and ($assignment !~ m/\Acall\s/) ){ + # analyse assignment +#print "\n $destinationRegister := $assignment\n"; + my $done = 0; + do { + my ($firstArgument, $operator, $restOfAssignment) = extractFirsrtArgument($assignment); +#print " $firstArgument $operator $restOfAssignment\n"; + if ($operator eq '') { + push(@arguments, $firstArgument); + $done = 1; + } + else { + push(@arguments, $firstArgument); + push(@operators, $operator); + $assignment = $restOfAssignment; + } + } until $done == 1; +#print " -> " . join(', ', @arguments) . "\n"; + # expand to 2 lines + my $newLine = expandTwo($destinationRegister, \@arguments, \@operators); + # modify code line + if ($newLine ne '') { + $line = $newLine; + } + } + + return ($line); +} + +################################################################################ +# Program start +# + +#------------------------------------------------------------------------------- +# Display information +# +if ($verbose > 0) { + print "$separator\n"; + print "Compiling $pascalFileSpec to $asmFileSpec\n"; +} + +# ============================================================================== +# Rewrite file for easier parsing +# +$currentPass = $currentPass + 1; +my $inputFileSpec = $pascalFileSpec; +my $outputFileSpec = $temp1FileSpec; +if ($verbose > 0) { + print "${indent}Pass $currentPass: placing line ends\n"; +} + # read input file +my $singleLine = ''; +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); +#print "$line\n"; + # remove leading and trailing spaces + $line =~ s/\A\s+//; + $line =~ s/\s+\Z//; + # remove single line comments + $line =~ s/\{.*?\}//g; + # write to single line string + if ($line ne '') { + $singleLine .= "$line "; + } +} +close(inputFile); + # remove extra spaces +$singleLine =~ s/\s+/ /g; +$singleLine =~ s/\s\Z//; + # split constructs into multiple lines +$singleLine =~ s/\s*;\s*/;\n/g; +$singleLine =~ s/\sconst\s/\nconst\n/g; +$singleLine =~ s/\svar\s/\nvar\n/g; +$singleLine =~ s/\sprocedure\s+/\nprocedure /g; +$singleLine =~ s/\sfunction\s+/\nfunction /g; +$singleLine =~ s/\sbegin\s/\nbegin\n/g; +$singleLine =~ s/\send\s*;\s/\nend;\n/g; +$singleLine =~ s/\selse\s/\nelse\n/g; +$singleLine =~ s/\srepeat\s/\nrepeat\n/g; +$singleLine =~ s/\sif\s/\nif /g; +$singleLine =~ s/\suntil\s/\nuntil /g; +$singleLine =~ s/\sfor\s/\nfor /g; +$singleLine =~ s/\swhile\s/\nwhile /g; +$singleLine =~ s/\sthen\s/ then\n/g; +$singleLine =~ s/\sdo\s/ do\n/g; + # take away new lines within parenthesis +my $parameters; +do { + $singleLine =~ s/\(([^\)]*?)\n([^\)]*?)\)/($1 $2)/m; + $parameters = $2; +#if ($parameters ne '') { print "--> $1 $parameters\n"; } +} while ($parameters ne ''); + # add begin/end to single-line blocks +my $singleLineBlock; +do { + $singleLine =~ s/\nif (.*?) then\n(?!begin)(.*?)\;/\nif $1 then\nbegin\n$2;\nend;/; + $singleLineBlock = $2; +#print "if $1 then begin $2; end;\n"; +} while ($singleLineBlock ne ''); +do { + $singleLine =~ s/\nfor (.*?) do\n(?!begin)(.*?)\;/\nfor $1 do\nbegin\n$2;\nend;/; + $singleLineBlock = $2; +} while ($singleLineBlock ne ''); + + # remove comments, part 1 +$singleLine =~ s/\s*\{\s*/\n{/g; +$singleLine =~ s/\s*\}\s*/}\n/g; + # write to output file +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +print(outputFile "$singleLine\n"); +close(outputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +# ============================================================================== +# Finish removing comments +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: removing comments\n"; +} + # read input file +my $commentOut = 0; +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); + # remove comments, part 2 + if ($line =~ m/\{/) { $commentOut = 1; } + if ( ($commentOut == 0) and ($line ne '') ) { + print(outputFile "$line\n"); + } + if ($line =~ m/\}/) { $commentOut = 0; } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +# ============================================================================== +# Get constants and variables, indent code +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: finding constants and variables\n"; +} +my $currentLevel = 0; +my $currentRoutine; +my $startOfProgramDeclatation = ''; +my $isStartOfProgramDeclatation = 1; +my $isConstantsDeclatation = 0; +my $isVariablesDeclatation = 0; +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); +#print "$line\n"; + # find program name + if ($line =~ m/\A\s*program\s+(.*)\s*;/i) { + $mainProgram = $1; +#print "Program name is |$mainProgram|\n"; + $currentRoutine = $mainProgram; + @routines = ($currentRoutine); + } + # find current function name + if ($line =~ m/\A(procedure|function)(\s|\Z)/i) { + $currentRoutine = $line; + $currentRoutine =~ s/\Aprocedure//i; + $currentRoutine =~ s/\Afunction//i; + $currentRoutine =~ s/\A\s+//; + $currentRoutine =~ s/;.*//; + $currentRoutine =~ s/\s*:.*//; + $currentRoutine =~ s/\(.*//; + push(@routines, $currentRoutine); + print(outputFile "\n"); +#print "$currentRoutine\n"; + $isStartOfProgramDeclatation = 0; + $isVariablesDeclatation = 0; + $isConstantsDeclatation = 0; + } + # find begin/end level + if ($line eq 'begin') { + $currentLevel = $currentLevel + 1; +#print "-> $currentLevel\n"; + if ( ($currentLevel == 1) and ($currentRoutine eq $mainProgram) ) { +#print "$currentRoutine\n"; + $isStartOfProgramDeclatation = 0; + print(outputFile "\n$startOfProgramDeclatation"); + } + $isVariablesDeclatation = 0; + $isConstantsDeclatation = 0; + } + if ($line eq 'end;') { + $currentLevel = $currentLevel - 1; +#print "-> $currentLevel\n"; + if ($currentLevel == 0) { + $currentRoutine = $mainProgram; + } + } + # find constants + if ($isConstantsDeclatation) { + if ($line ne 'var') { +#print "-> $line\n"; + $constants{$currentRoutine} .= $line; + } + } + if ($line eq 'const') { + $isConstantsDeclatation = 1; + $isVariablesDeclatation = 0; + } + # find variables + if ($isVariablesDeclatation) { +#print "-> $line\n"; + $variables{$currentRoutine} .= $line; + } + if ($line eq 'var') { + $isVariablesDeclatation = 1; + $isConstantsDeclatation = 0; + } + # determine indent level + my $indentLevel = $currentLevel; + if ($line eq 'begin') { $indentLevel = $indentLevel - 1; } + if ($isConstantsDeclatation) { $indentLevel = $indentLevel + 2; } + if ($isVariablesDeclatation) { $indentLevel = $indentLevel + 2; } + if ($line eq 'const') { $indentLevel = $indentLevel - 1; } + if ($line eq 'var') { $indentLevel = $indentLevel - 1; } + if ($line eq 'end.') { $indentLevel = $indentLevel - 1; } + # write to output file + my $indentedLine = ($indent x $indentLevel) . $line; + $indentedLine = sprintf('%2d: ', $indentLevel) . $indentedLine; + if ($isStartOfProgramDeclatation == 0) { + print(outputFile "$indentedLine\n"); + } else { + $startOfProgramDeclatation .= "$indentedLine\n"; + } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +# ------------------------------------------------------------------------------ +# Process constant declarations +# +%constants = buildConstants($mainProgram, %constants); + +# ------------------------------------------------------------------------------ +# Assign registers to variables +# +if ($verbose > 0) { + print $indent x 2 . "Writing registers assignments in \"$registersFileSpec\"\n"; +} +%variables = assignRegisters($mainProgram, $firstRegister, %variables); +open(registersFile, ">$registersFileSpec") or die "Unable to open file, $!"; +foreach my $subroutine (keys(%variables)) { + print(registersFile "$subroutine\n"); + my $registers_ref = $variables{$subroutine}; + my %registers = reverse(%$registers_ref); + foreach my $register (sort(keys(%registers))) { + print(registersFile "${indent}$register:$registers{$register}\n"); + } +} +close(registersFile); + +# ============================================================================== +# Process constants and variables and functions +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: replacing constants and variables\n"; +} + # build main program variables hash +my $variables_ref = $variables{$mainProgram}; +%mainProgramVariables = %$variables_ref; + # loop on program code +my $currentRoutine; +my %localVariables; +my $printLine = 1; +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; + # write constants at beginning of file +foreach my $routine (keys(%constants)) { + my $replacement_ref = $constants{$routine}; + foreach my $constant (sort(keys(%$replacement_ref))) { + print(outputFile "const $constant = $$replacement_ref{$constant};\n"); + } +} +while(my $line = ) { + chomp($line); +#print "$line\n"; + # strip line nb and leading spaces + my $strippedLine = $line; + $strippedLine =~ s/\A\s*\d*\:*\s*//; +#print "$strippedLine\n"; + # find current function name + if ( + ($strippedLine =~ m/\Aprocedure /i) or + ($strippedLine =~ m/\Afunction /i) or + ($strippedLine =~ m/\Aprogram /i) + ) { + $currentRoutine = $strippedLine; + $currentRoutine =~ s/\A\S+\s+//; + $currentRoutine =~ s/\(.*//; + $currentRoutine =~ s/\;//; +#print "$currentRoutine\n"; + # build current variables hash + my $variables_ref = $variables{$currentRoutine}; + %localVariables = %$variables_ref; + } + # cut out constant and variable declarations of the program + if ($strippedLine =~ m/\Aconst\Z/) { + $printLine = 0; + } + if ($strippedLine =~ m/\Avar\Z/) { + $printLine = 0; + } + if ($strippedLine eq 'begin') { + $printLine = 1; + } + # replace variables + foreach my $variable (keys(%localVariables)) { + $line =~ s/$variable/$localVariables{$variable}/g; + } + foreach my $variable (keys(%mainProgramVariables)) { + $line =~ s/$variable/$mainProgramVariables{$variable}/g; + } + # write output + if ($printLine) { + print(outputFile "$line\n"); + } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +# ============================================================================== +# Label subroutines and loops +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: labelling subroutines and loops\n"; +} + # loop on program code +my $previousWasElse = 0; +my $labelcount = 0; +my $blockKind; +my @labels; +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); +#print "$line\n"; + # get current level + my $currentLevel = $line; + $currentLevel =~ s/\A\s*(\d*)\:.*/$1/; + # strip level depth and leading spaces + $line =~ s/\A\s*\d*\:\s*//; +#print "$line\n"; + # remove "begin" statements + $line =~ s/\Abegin\Z//; + # assign labels to block statements + if ($line =~ m/\Aif /) { + if (not $previousWasElse) { + $labelcount = $labelcount + 1; + $labels[$currentLevel] = sprintf('if%02d', $labelcount); + } + $line = $labels[$currentLevel] . ': ' . $line; + } + if ($line =~ m/\Afor /) { + $labelcount = $labelcount + 1; + $labels[$currentLevel] = sprintf('for%02d', $labelcount); + $line = $labels[$currentLevel] . ': ' . $line; + } + if ($line =~ m/\Awhile /) { + $labelcount = $labelcount + 1; + $labels[$currentLevel] = sprintf('while%02d', $labelcount); + $line = $labels[$currentLevel] . ': ' . $line; + } + # assign labels to end of block statements + if ($line =~ m/\Aend\s*[;\.]/) { + if ($currentLevel == 0) { + $line = 'return;'; + } else { + $line = 'end ' . $labels[$currentLevel] . ';'; + } + } + # specify procedure calls + for my $routine (@routines) { + $line =~ s/$routine\s*\:\=\s*/$functionReturnRegister := /g; + $line =~ s/$routine([ \(\;])/call $routine$1/g; + } + $line =~ s/\A(program|procedure|function) call /$1 /g; + # store "previous line was else" + $previousWasElse = 0; + if ($line =~ m/\Aelse\Z/) { + $previousWasElse = 1; + } + # write output + if ($line ne '') { + if ($line =~ m/(program|procedure|function) /) { + print(outputFile "\n"); + } + my $indentedLine = ($indent x $currentLevel) . $line; + $indentedLine = sprintf('%2d: ', $currentLevel) . $indentedLine; + print(outputFile "$indentedLine\n"); + } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +# ============================================================================== +# Break compound operations +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: breaking compound operations\n"; +} + # loop on program code +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); +#print "$line\n"; + # get current level + my $currentLevel = $line; + $currentLevel =~ s/\A\s*(\d*)\:.*/$1/; + # strip level depth and leading spaces + $line =~ s/\A\s*\d*\:\s*//; +#print "$line\n"; + # check assignments + if ($line =~ m/s(\d+)\s*\:\=\s*(.+)\s*\;/) { + my $destinationRegister = "s$1"; + my $assignment = $2; + $line = expandAssignment($destinationRegister, $assignment); + } + # write output + if ($line ne '') { + my $indentedLine = ($indent x $currentLevel) . $line; + $indentedLine = sprintf('%2d: ', $currentLevel) . $indentedLine; + print(outputFile "$indentedLine\n"); + } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + + +# ============================================================================== +# Assembler file: constants, subroutines, memory access +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: writing assembler for constants, subroutines, mem and nop\n"; +} +foreach my $routine (keys(%constants)) { + my $constants_ref = $constants{$routine}; + foreach my $constant (sort(keys(%$constants_ref))) { + my $length = length($constant); + if ($length > $constantMaxLength) { $constantMaxLength = $length; } + } +} + # assembler code header +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +print(outputFile "$separator1\n"); +print(outputFile "$commentStart $mainProgram\n"); +print(outputFile "$separator1\n"); +print(outputFile "\n"); + # loop on program code +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); +#print "$line\n"; + # strip level depth and leading spaces + $line =~ s/\A\s*\d*\:\s*//; +#print "$line\n"; + # replace constants + if ($line =~ m/\Aconst (.*?)\s*\=\s*\$(.*?)\;/) { + my $constantName = fillString("$1,", ' ', $constantMaxLength+1); + my $constantValue = sprintf("%0${wordHexCharNb}X", hex($2)); + $line = "$asmFirstIndent CONSTANT $constantName $constantValue"; + } + # replace subroutines start + if ($line =~ m/\A(program|procedure|function) (.*?)\s*[\;\(]/) { + my $routineKind = $1; + my $routineName = $2; + print(outputFile "\n"); + print(outputFile "$separator2\n"); + print(outputFile "$commentStart $routineKind $routineName\n"); + print(outputFile "$separator2\n"); + print(outputFile ' ' x (length($asmFirstIndent) - length($routineName) - 2) . "$routineName: NOP\n"); + $line = ''; + } + # replace subroutines return + $line =~ s/\Areturn\;/${asmFirstIndent}RETURN/; + # replace subroutine calls with arguments + if ($line =~ m/call (.*?)\s*\((.*?)\s*\)\s*\;/) { + my $routineName = $1; + my $routineArguments = $2; + $routineArguments =~ s/var //g; + $routineArguments =~ s/\;/,/g; + $argumentText = 'argument'; + if($routineArguments =~ m/\,/) { + $argumentText .= 's'; + } + print( + outputFile + "$asmFirstIndent" + . fillString('CALL', ' ', $opcodeLength) + . "$routineName ; $argumentText: $routineArguments\n" + ); + if ($line =~ m/\A(.*?)\s*\:\=\s* call/) { + $returnRegister = $1; + $line = "$returnRegister := s0;\n"; + } else { + $line = ''; + } + } + # replace subroutine calls without arguments + if ($line =~ m/\Acall (.*?)\;/) { + $line = $asmFirstIndent . fillString('CALL', ' ', $opcodeLength) . $1; + } + # memory write + if ($line =~ m/mem\[(.+?)\]\s*\:\=\s*(.+)\s*\;/) { + my $opcode = fillString('OUTPUT', ' ', $opcodeLength); + $line = "$memoryAccessRegister := $1;"; + $line .= "\n${asmFirstIndent}${opcode}$2, ($memoryAccessRegister)"; + } + # memory read + if ($line =~ m/\s*(.+)\s*\:\=\s*mem\[(.+?)\]\s*\;/) { + my $opcode = fillString('INPUT', ' ', $opcodeLength); + $line = "$memoryAccessRegister := $2;"; + $line .= "\n${asmFirstIndent}${opcode}$memoryAccessRegister, ($memoryAccessRegister)" x 2; + $line .= "\n$1 := $memoryAccessRegister;"; + } + # NOP + if ($line =~ m/\s*noOperation\s*\;/) { + $line = "${asmFirstIndent}NOP"; + } + # write output + if ($line ne '') { + print(outputFile "$line\n"); + } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +# ============================================================================== +# Assembler file: register transfers +# +$currentPass = $currentPass + 1; +($inputFileSpec, $outputFileSpec) = swapTempFileSpecs( + $inputFileSpec, $outputFileSpec, $temp1FileSpec, $temp2FileSpec +); +if ($verbose > 0) { + print "${indent}Pass $currentPass: writing assembler for load, add, and sub\n"; +} + # loop on program code +open(inputFile, "<$inputFileSpec") or die "Unable to open file, $!"; +open(outputFile, ">$outputFileSpec") or die "Unable to open file, $!"; +while(my $line = ) { + chomp($line); +#print "$line\n"; + # LOAD + if ($line =~ m/s(\d+)\s*\:\=\s*(.+)\s*\;/) { + my $destinationRegister = fillString("s$1,", ' ', $firstArgumentLength); + my $source = translateArgument($2, $wordHexCharNb); + my $opcode = fillString('LOAD', ' ', $opcodeLength); + if ($source ne '') { + $line = "${asmFirstIndent}${opcode}${destinationRegister}$source"; + } + } + # ADD + if ($line =~ m/s(\d+)\s*\:\=\s*s(\d+)\s*\+\s*(.+)\s*\;/) { + if ($1 eq $2) { + my $destinationRegister = fillString("s$1,", ' ', $firstArgumentLength); + my $source = translateArgument($3, $wordHexCharNb); + my $opcode = fillString('ADD', ' ', $opcodeLength); + if ($source ne '') { + $line = "${asmFirstIndent}${opcode}${destinationRegister}$source"; + } + } + } + # SUB + if ($line =~ m/s(\d+)\s*\:\=\s*s(\d+)\s*\-\s*(.+)\s*\;/) { + if ($1 eq $2) { + my $destinationRegister = fillString("s$1,", ' ', $firstArgumentLength); + my $source = translateArgument($3, $wordHexCharNb); + my $opcode = fillString('SUB', ' ', $opcodeLength); + if ($source ne '') { + $line = "${asmFirstIndent}${opcode}${destinationRegister}$source"; + } + } + } + # AND + if ($line =~ m/s(\d+)\s*\:\=\s*s(\d+)\s*and\s*(.+)\s*\;/i) { + if ($1 eq $2) { + my $destinationRegister = fillString("s$1,", ' ', $firstArgumentLength); + my $source = translateArgument($3, $wordHexCharNb); + my $opcode = fillString('AND', ' ', $opcodeLength); + if ($source ne '') { + $line = "${asmFirstIndent}${opcode}${destinationRegister}$source"; + } + } + } + # OR + if ($line =~ m/s(\d+)\s*\:\=\s*s(\d+)\s*or\s*(.+)\s*\;/i) { + if ($1 eq $2) { + my $destinationRegister = fillString("s$1,", ' ', $firstArgumentLength); + my $source = translateArgument($3, $wordHexCharNb); + my $opcode = fillString('OR', ' ', $opcodeLength); + if ($source ne '') { + $line = "${asmFirstIndent}${opcode}${destinationRegister}$source"; + } + } + } + # write output + if ($line ne '') { + print(outputFile "$line\n"); + } +} +close(outputFile); +close(inputFile); + # keep intermediate file +if ($keepIntermediateFiles) { + my $textfile = "$baseFileSpec$currentPass.txt"; + use File::Copy; + unlink($textfile); + copy($outputFileSpec, $textfile) or die "File cannot be copied."; +} + +################################################################################ +# Documentation (access it with: perldoc ) +# +__END__ + +=head1 NAME + +nanoPascal.pl - Transforms a Pascal program into assembler code + +=head1 SYNOPSIS + +nanoPascal.pl [options] + +=head1 DESCRIPTION + +This is a simple parser which translates Pascal expressions into their assembler +code equivalents for the nanoBlaze processor. +The process doesn't optimize the code. +The expressions which couldn't be translated into assembler are left as Pascal +for the user to translate manually. + +=head1 OPTIONS + +=over 8 + +=item B<-h> + +Display a help message. + +=item B<-v> + +Be verbose. + +=item B<-k> + +Makes a copy of the intermediate files between the passes. + +=item B<-c> + +Cleans the temporary work files at the end of the process. + +Specify a username in the bridge's whitelist. + +=back + +=head1 Limitations + +There is currently no Pascal syntax error detection. + +The script doesn't distinguish between constants having the same name within +different procedures or functions. +This can be corrected in future versions. + +Procedure and function calls basically don't support passing parameters. +This would require a stack mechanism. +The only possible way to pass parameters is to declare global variables +and use these as parameters for the procedure and function calls. + +The Pascal C construct is either followed by a C +block or a single expression. +The script only handles single-line expressions. +Other more complex expressions (like a nested c need a +C structure. + +=head1 AUTHOR + +Francois Corthay, HEVs + +=head1 VERSION + +1.1, 2014 + +=cut diff --git a/Libs/NanoBlaze/hdl/nanoTest.asm b/Libs/NanoBlaze/hdl/nanoTest.asm new file mode 100644 index 0000000..2e9784b --- /dev/null +++ b/Libs/NanoBlaze/hdl/nanoTest.asm @@ -0,0 +1,342 @@ + ;=============================================================== + ; nanoTest.asm + ; Used for checking the NanoBlaze instruction set + ;=============================================================== + ; 1) Test logical operations with direct values + ;--------------------------------------------------------------- + LOAD s7, 01 + CONSTANT testPattern, 0F + ;--------------------------------------------------------------- + ; Test "LOAD", "AND" + ;--------------------------------------------------------------- + LOAD s0, testPattern + AND s0, 33 + COMPARE s0, 03 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "OR" + ;--------------------------------------------------------------- + LOAD s1, testPattern + OR s1, 33 + COMPARE s1, 3F + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "XOR" + ;--------------------------------------------------------------- + LOAD s2, testPattern + XOR s2, 33 + COMPARE s2, 3C + JUMP NZ, error + ;=============================================================== + ; 2) Test logical operations with registers + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "LOAD" + ;--------------------------------------------------------------- + LOAD s0, 33 + LOAD s3, s0 + COMPARE s3, 33 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "AND" + ;--------------------------------------------------------------- + LOAD s0, 0F + AND s0, s3 + COMPARE s0, 03 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "OR" + ;--------------------------------------------------------------- + LOAD s1, 0F + OR s1, s3 + COMPARE s1, 3F + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "XOR" + ;--------------------------------------------------------------- + LOAD s2, 0F + XOR s2, s3 + COMPARE s2, 3C + JUMP NZ, error + ;=============================================================== + ; 3) Test arithmetic operations with constants + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "ADD" and "ADDCY" + ;--------------------------------------------------------------- + LOAD s0, 0F + ADD s0, 31 ; 40 + ADDCY s0, F0 ; 130 + ADDCY s0, F0 ; 121 + ADD s0, 0F ; 30 + COMPARE s0, 30 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "SUB" and "SUBCY" + ;--------------------------------------------------------------- + LOAD s1, 0F + SUB s1, 0C ; 03 + SUBCY s1, F0 ; 113 + SUBCY s1, F0 ; 22 + SUB s1, 01 ; 21 + COMPARE s1, 21 + JUMP NZ, error + ;=============================================================== + ; 4) Test arithmetic operations with registers + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "ADD" and "ADDCY" + ;--------------------------------------------------------------- + LOAD s0, 0F + LOAD s1, 31 + LOAD s2, F0 + LOAD s3, 0F + ADD s0, s1 ; 40 + ADDCY s0, s2 ; 130 + ADDCY s0, s2 ; 121 + ADD s0, s3 ; 30 + COMPARE s0, 30 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "SUB" and "SUBCY" + ;--------------------------------------------------------------- + LOAD s1, 0F + LOAD s0, 0C + LOAD s2, F0 + LOAD s3, 01 + SUB s1, s0 ; 03 + SUBCY s1, s2 ; 113 + SUBCY s1, s2 ; 22 + SUB s1, s3 ; 21 + COMPARE s1, 21 + JUMP NZ, error + ;=============================================================== + ; 5) Test shifts + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test shift right + ;--------------------------------------------------------------- + LOAD s0, 0F ; 0F + SR0 s0 ; 07 + SRX s0 ; 03 + SR1 s0 ; 81 + SRX s0 ; C0, C=1 + SRA s0 ; E0, C=0 + SRA s0 ; 70 + COMPARE s0, 70 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test shift left + ;--------------------------------------------------------------- + LOAD s1, F0 ; FO + SL0 s1 ; E0 + SLX s1 ; C0 + SL1 s1 ; 81 + SLX s1 ; 03, C=1 + SLA s1 ; 07, C=0 + SLA s1 ; 0E + COMPARE s1, 0E + JUMP NZ, error + ;=============================================================== + ; 6) Test comparison operators + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "COMPARE" + ;--------------------------------------------------------------- + LOAD s0, 0F + COMPARE s0, F0 ; A < B => C=1 + JUMP NC, error + COMPARE s0, F0 ; A < B => Z=0 + JUMP Z, error + COMPARE s0, s0 ; A = B => Z=1 + JUMP NZ, error + COMPARE s0, 08 ; A > B => C=0 + JUMP C, error + COMPARE s0, 08 ; A > B => Z=0 + JUMP Z, error + ;--------------------------------------------------------------- + ; Test "TEST" + ;--------------------------------------------------------------- + LOAD s0, 0F + TEST s0, F0 ; AND is 00 => Z=1 + JUMP NZ, error + TEST s0, FF ; AND is 0F => Z=0 + JUMP Z, error + ;=============================================================== + ; 7) Test INPUT and OUTPUT operators + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "INPUT" and "OUTPUT" direct + ; + ; The testbench should invert the word written at address FC. + ;--------------------------------------------------------------- + LOAD s0, AA + OUTPUT s0, FC + INPUT s1, FC + COMPARE s1, 55 + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "INPUT" and "OUTPUT" indexed + ;--------------------------------------------------------------- + LOAD s0, CC + LOAD s2, FC + OUTPUT s0, (s2) + INPUT s1, (s2) + COMPARE s1, 33 + JUMP NZ, error + ;=============================================================== + ; 8) Test STORE and FETCH operators + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "STORE" and "FETCH" direct + ;--------------------------------------------------------------- + LOAD s0, 0F + STORE s0, 03 + FETCH s1, 03 + COMPARE s1, 0F + JUMP NZ, error + ;--------------------------------------------------------------- + ; Test "STORE" and "FETCH" indexed + ;--------------------------------------------------------------- + LOAD s0, F0 + LOAD s2, 04 + STORE s0, (s2) + FETCH s1, (s2) + COMPARE s1, F0 + JUMP NZ, error + ;=============================================================== + ; 9) Test JUMP instructions + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; Test "JUMP NC" + ;--------------------------------------------------------------- + LOAD s0, F0 + ADD s0, 00 ; s0=F0, C=0, Z=0 + JUMP NC, continue1 + JUMP error + ;--------------------------------------------------------------- + ; Test "JUMP NZ" + ;--------------------------------------------------------------- + continue1: ADD s0, 00 ; s0=F0, C=0, Z=0 + JUMP NZ, continue2 + JUMP error + ;--------------------------------------------------------------- + ; Test "JUMP C" + ;--------------------------------------------------------------- + continue2: ADD s0, F0 ; s0=E0, C=1, Z=0 + JUMP C, continue3 + JUMP error + ;--------------------------------------------------------------- + ; Test "JUMP Z" + ;--------------------------------------------------------------- + continue3: SUB s0, E0 ; s0=00, C=0, Z=1 + JUMP Z, continue4 + JUMP error + continue4: NOP + ;=============================================================== + ; 10) Test call instructions + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; define subroutine + ;--------------------------------------------------------------- + JUMP continue5 + subRetDo: ADD s0, 01 + RETURN + JUMP error + ;--------------------------------------------------------------- + ; Test "CALL" + ;--------------------------------------------------------------- + continue5: LOAD s0, 00 + LOAD s1, F0 + CALL subRetDo ; s0=01 + ;--------------------------------------------------------------- + ; Test "CALL NC" + ;--------------------------------------------------------------- + ADD s1, 00 ; s1=F0, C=0, Z=0 + CALL NC, subRetDo ; s0=02 + ;--------------------------------------------------------------- + ; Test "CALL NZ" + ;--------------------------------------------------------------- + ADD s1, 00 ; s1=F0, C=0, Z=0 + CALL NZ, subRetDo ; s0=03 + ;--------------------------------------------------------------- + ; Test "CALL C" + ;--------------------------------------------------------------- + ADD s1, F0 ; s0=E0, C=1, Z=0 + CALL C, subRetDo ; s0=04 + ;--------------------------------------------------------------- + ; Test "CALL Z" + ;--------------------------------------------------------------- + SUB s1, E0 ; s0=00, C=0, Z=1 + CALL Z, subRetDo ; s0=05 + COMPARE s0, 05 + jump nz, error + ;=============================================================== + ; 11) Test call return instructions + ;--------------------------------------------------------------- + ADD s7, 01 + ;--------------------------------------------------------------- + ; define subroutines + ;--------------------------------------------------------------- + JUMP continue6 + subRetNC: ADD s0, 01 + RETURN NC + JUMP error + subRetNZ: ADD s0, 01 + RETURN NZ + JUMP error + subRetC: ADD s0, 01 + RETURN C + JUMP error + subRetZ: ADD s0, 01 + RETURN Z + JUMP error + ;--------------------------------------------------------------- + ; Test "RETURN NC" + ;--------------------------------------------------------------- + continue6: LOAD s0, 00 ; increment will give C=0, Z=0 + CALL NC, subRetNC + ;--------------------------------------------------------------- + ; Test "RETURN NZ" + ;--------------------------------------------------------------- + LOAD s0, 00 ; increment will give C=0, Z=0 + CALL NZ, subRetNZ + ;--------------------------------------------------------------- + ; Test "RETURN C" + ;--------------------------------------------------------------- + LOAD s0, FF ; increment will give C=1, Z=1 + CALL C, subRetC + ;--------------------------------------------------------------- + ; Test "RETURN Z" + ;--------------------------------------------------------------- + LOAD s0, FF ; increment will give C=1, Z=1 + CALL Z, subRetZ + ;=============================================================== + ; End of tests + ; + ; The testbench should react if value 1 is written to address 00. + ;--------------------------------------------------------------- + LOAD s0, 01 + OUTPUT s0, 00 + JUMP endOfMemory + ;=============================================================== + ; Assert error + ; + ; The testbench should react if value 0 is written to address 00. + ;--------------------------------------------------------------- +ADDRESS 3FD + error: LOAD s0, 00 + OUTPUT s0, 00 + ;=============================================================== + ; End of instruction memory + ;--------------------------------------------------------------- + endOfMemory: JUMP endOfMemory diff --git a/Libs/NanoBlaze/hdl/nanoTest.pas b/Libs/NanoBlaze/hdl/nanoTest.pas new file mode 100644 index 0000000..eb6592e --- /dev/null +++ b/Libs/NanoBlaze/hdl/nanoTest.pas @@ -0,0 +1,368 @@ +{ + beamer.pas + + The beamer controller polls the UART to get commands and provides the + corresponding replies. +} + +program BeamerControl; + +{==============================================================================} +{ Constants } +{==============================================================================} + const + clockFrequency = 66E6; + gpioBaseAddress = $0000; + gpioDataOffset = $0000; + gpioEnableOffset = $0001; + uartBaseAddress = $0010; + uartBaudOffset = $0002; + uartStatusOffset = $0001; + uartDataReady = $0001; + uartSending = $0002; + uartBaudRate = 1E6; + uartBaudCount = clockFrequency / uartBaudRate; + uartPollDelay = uartBaudCount / 2; + uartTimeout = 10; + commandHeader = $AA; + commandNack = $00; + commandWriteMem = $03; + commandReadMem = $04; + commandWriteLength = 4; + commandReadLength = 2; + beamerBaseAddress = $0020; + beamerCtlOffset = $0000; + beamerSpeedOffset = $0001; + beamerCtlInit = $0401; + beamerSpeedInit = $0004; + commStIdle = $0000; + commStGetPacketId = $0001; + commStGetCommandId = $0002; + commStGetDataLength = $0003; + commStGetData = $0004; + commStGetChecksum = $0005; + commStExecuteCommand = $0006; + commStSendHeader = $0007; + commStSendPacketId = $0008; + commStSendCommandId = $0009; + commStSendDataLength = $000A; + commStSendData = $000B; + commStSendChecksum = $000C; + +{==============================================================================} +{ Variables } +{==============================================================================} + var + communicationState : word; + uartByte: uint8; + +{==============================================================================} +{ Procedures and functions } +{==============================================================================} + + {============================================================================} + { Register-level functions } + {============================================================================} + + {----------------------------------------------------------------------------} + { Registers initializations } + {----------------------------------------------------------------------------} + procedure initRegisters; + const + gpioValue = $AA; + gpioEnablemask = $0F; + begin + { initialize GPIO } + mem[gpioBaseAddress+gpioDataOffset] := gpioValue; + mem[gpioBaseAddress+gpioEnableOffset] := gpioEnablemask; + { initialize UART } + mem[uartBaseAddress+uartBaudOffset] := uartBaudCount; + { initialize beamer peripheral } + mem[beamerBaseAddress+beamerCtlOffset] := beamerCtlInit; + mem[beamerBaseAddress+beamerSpeedOffset] := beamerSpeedInit; + end; + + {----------------------------------------------------------------------------} + { Get byte from serial port with timeout } + {----------------------------------------------------------------------------} + function getSerialPortByte(var uartByte: uint8) : word; + var + dataReady: uint8; + pollCount: word; + begin + { poll until data byte available or timeout occured} + pollCount := uartPollDelay; + dataReady := 0; + while dataReady = 0 do + begin + { read status register } + dataReady := mem[uartBaseAddress+uartStatusOffset] and uartDataReady; + { spend time in order not to overcharge the AHB bus } + if dataReady = 0 then + begin + { check for timeout } + pollCount := pollCount -1; + if pollCount = 0 then + dataReady := $FF; + { spend time in order not to overcharge the system bus } + for index := 1 to uartPollDelay do + noOperation; + end; + end; + { function return } + if dataReady = $FF then + { return timeout } + getSerialPortByte := 1; + else + { read data register and return it } + begin + uartByte := mem[uartBaseAddress]; + getSerialPortByte := 0; + end; + end; + + {----------------------------------------------------------------------------} + { Send byte to serial port with timeout } + {----------------------------------------------------------------------------} + function sendSerialPort(var uartByte : uint8) : word; + var + dataReady: uint8; + statusByte: uint8; + pollCount: word; + begin + { poll until ready to send } + pollCount := uartPollDelay; + statusByte := mem[uartBaseAddress+uartStatusOffset] and uartSending; + while statusByte = 0 do + begin + { check for timeout } + pollCount := pollCount -1; + if pollCount = 0 then + dataReady := $FF; + { spend time in order not to overcharge the system bus } + for index := 1 to uartPollDelay do + noOperation; + { read status register } + statusByte := mem[uartBaseAddress+uartStatusOffset] and uartSending; + end; + { function return } + if dataReady = $FF then + { return timeout } + sendSerialPort := 1; + else + { write data register and return it } + begin + mem[uartBaseAddress] := uartByte; + sendSerialPort := 0; + end; + end; + + {============================================================================} + { Communication state machine } + {============================================================================} + procedure updateStateMachine( + var communicationState : word; + var uartByte: uint8 + ); + var + communicationNextState : word; + uartStatus: word; + packetId, commandId : uint8; + checksum : uint8; + dataLength, dataCount, data1, data2, data3, data4 : uint8; + memAddress, memData : word; + begin + { idle } + if communicationState = commStIdle then + begin + uartStatus := getSerialPortByte(var uartByte: uint8); + if (uartStatus = 0) and (uartByte = commandHeader) then + begin + checksum := uartByte; + communicationNextState := commStGetPacketId; + end; + end; + { get packet id } + else if communicationState = commStGetPacketId then + begin + uartStatus := getSerialPortByte(var uartByte: uint8); + if uartStatus = 0 then + begin + packetId := uartByte; + checksum := checksum + uartByte; + communicationNextState := commStGetCommandId; + end; + end; + { get command id } + else if communicationState = commStGetCommandId then + begin + uartStatus := getSerialPortByte(var uartByte: uint8); + if uartStatus = 0 then + begin + commandId := uartByte; + checksum := checksum + uartByte; + communicationNextState := commStGetDataLength; + end; + end; + { get data length } + else if communicationState = commStGetDataLength then + begin + uartStatus := getSerialPortByte(var uartByte: uint8); + if uartStatus = 0 then + begin + dataLength := uartByte; + checksum := checksum + uartByte; + dataCount := dataLength; + communicationNextState := commStGetData; + end; + end; + { get data } + else if communicationState = commStGetData then + begin + uartStatus := getSerialPortByte(var uartByte: uint8); + if uartStatus = 0 then + begin + data1 := data2; + data2 := data3; + data3 := data4; + data4 := uartByte; + checksum := checksum + uartByte; + dataCount := dataCount-1; + if dataCount = 0 then + communicationNextState := commStGetChecksum; + end; + end; + { get checksum } + else if communicationState = commStGetChecksum then + begin + uartStatus := getSerialPortByte(var uartByte: uint8); + if uartStatus = 0 then + begin + if uartByte = checksum then + communicationState := commStExecuteCommand; + else + begin + commandId := commandNack; + dataLength := 0; + communicationNextState := commStSendHeader; + end; + end; + end; + { execute command } + else if communicationState = commStExecuteCommand then +begin + if (commandId = commandWriteMem) and (dataLength = commandWriteLength) then + begin + memAddress := data1 + (data2 shl 8); + memData := data3 + (data4 shl 8); + mem[memAddress] := memData; + dataLength := 0; + communicationNextState := commStSendHeader; + end; + else if (commandId = commandReadMem) and (dataLength = commandReadLength) then + begin + memAddress := data3 + (data4 shl 8); + memData := mem[memAddress]; + dataLength := 2; + data1 := memData and $00FF; + data2 := memData shr 8; + communicationNextState := commStSendHeader; + end; + else + begin + commandId := commandNack; + dataLength := 0; + communicationNextState := commStSendHeader; + end; +end; + { send header } + else if communicationState = commStSendHeader then + begin + uartByte := commandHeader; + uartStatus := sendSerialPort(var uartByte: uint8); + if uartStatus = 0 then + begin + checksum := uartByte; + communicationNextState := commStSendPacketId; + end; + end; + { send packet id } + else if communicationState = commStSendPacketId then + begin + uartByte := packetId; + uartStatus := sendSerialPort(var uartByte: uint8); + if uartStatus = 0 then + begin + checksum := checksum + uartByte; + communicationNextState := commStSendCommandId; + end; + end; + { send command id } + else if communicationState = commStSendCommandId then + begin + uartByte := commandId; + uartStatus := sendSerialPort(var uartByte: uint8); + if uartStatus = 0 then + begin + checksum := checksum + uartByte; + communicationNextState := commStSendDataLength; + end; + end; + { send data length } + else if communicationState = commStSendDataLength then + begin + uartByte := dataLength; + dataCount := dataLength; + uartStatus := sendSerialPort(var uartByte: uint8); + if uartStatus = 0 then + begin + checksum := checksum + uartByte; + communicationNextState := commStSendData; + end; + end; + { send data } + else if communicationState = commStSendData then + begin + if dataCount > 0 then + begin + uartByte := data1; + data2 := data1; + data3 := data2; + data4 := data3; + uartStatus := sendSerialPort(var uartByte: uint8); + if uartStatus = 0 then + begin + checksum := checksum + uartByte; + dataCount := dataCount-1; + end; + end; + else + communicationNextState := commStSendChecksum; + end; + { send checksum } + else if communicationState = commStSendChecksum then + begin + uartByte := checksum and $00FF; + uartStatus := sendSerialPort(var uartByte: uint8); + if uartStatus = 0 then + communicationNextState := commStIdle; + end; + { update state } + communicationState := communicationNextState; + end; + +{==============================================================================} +{ Main program } +{==============================================================================} +begin + { initialize SoC registers } + initRegisters; + { initialize communication state machine } + communicationState := commStIdle; + { main loop } + while true do begin + { update communication state machine } + updateStateMachine(var communicationState : word; var uartByte : uint8); + { check for timeout } + end; +end. diff --git a/Libs/NanoBlaze/hdl/nanoTest.vhd b/Libs/NanoBlaze/hdl/nanoTest.vhd new file mode 100644 index 0000000..f018830 --- /dev/null +++ b/Libs/NanoBlaze/hdl/nanoTest.vhd @@ -0,0 +1,431 @@ +ARCHITECTURE mapped OF programRom IS + + subtype opCodeType is std_ulogic_vector(5 downto 0); + constant opLoadC : opCodeType := "000000"; + constant opLoadR : opCodeType := "000001"; + constant opInputC : opCodeType := "000100"; + constant opInputR : opCodeType := "000101"; + constant opFetchC : opCodeType := "000110"; + constant opFetchR : opCodeType := "000111"; + constant opAndC : opCodeType := "001010"; + constant opAndR : opCodeType := "001011"; + constant opOrC : opCodeType := "001100"; + constant opOrR : opCodeType := "001101"; + constant opXorC : opCodeType := "001110"; + constant opXorR : opCodeType := "001111"; + constant opTestC : opCodeType := "010010"; + constant opTestR : opCodeType := "010011"; + constant opCompC : opCodeType := "010100"; + constant opCompR : opCodeType := "010101"; + constant opAddC : opCodeType := "011000"; + constant opAddR : opCodeType := "011001"; + constant opAddCyC : opCodeType := "011010"; + constant opAddCyR : opCodeType := "011011"; + constant opSubC : opCodeType := "011100"; + constant opSubR : opCodeType := "011101"; + constant opSubCyC : opCodeType := "011110"; + constant opSubCyR : opCodeType := "011111"; + constant opShRot : opCodeType := "100000"; + constant opOutputC : opCodeType := "101100"; + constant opOutputR : opCodeType := "101101"; + constant opStoreC : opCodeType := "101110"; + constant opStoreR : opCodeType := "101111"; + + subtype shRotCinType is std_ulogic_vector(2 downto 0); + constant shRotLdC : shRotCinType := "00-"; + constant shRotLdM : shRotCinType := "01-"; + constant shRotLdL : shRotCinType := "10-"; + constant shRotLd0 : shRotCinType := "110"; + constant shRotLd1 : shRotCinType := "111"; + + constant registerAddressBitNb : positive := 4; + constant shRotPadLength : positive + := dataOut'length - opCodeType'length - registerAddressBitNb + - 1 - shRotCinType'length; + subtype shRotDirType is std_ulogic_vector(1+shRotPadLength-1 downto 0); + constant shRotL : shRotDirType := (0 => '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + --=============================================================== + -- 1) Test logical operations with direct values + ----------------------------------------------------------------- + 16#000# => opLoadC & "0111" & "00000001", -- LOAD s7, 01 + ----------------------------------------------------------------- + -- Test "LOAD", "AND" + ----------------------------------------------------------------- + 16#001# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#002# => opAndC & "0000" & "00110011", -- AND s0, 33 + 16#003# => opCompC & "0000" & "00000011", -- COMPARE s0, 03 + 16#004# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "OR" + ----------------------------------------------------------------- + 16#005# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#006# => opOrC & "0001" & "00110011", -- OR s1, 33 + 16#007# => opCompC & "0001" & "00111111", -- COMPARE s1, 3F + 16#008# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "XOR" + ----------------------------------------------------------------- + 16#009# => opLoadC & "0010" & "00001111", -- LOAD s2, 0F + 16#00A# => opXorC & "0010" & "00110011", -- XOR s2, 33 + 16#00B# => opCompC & "0010" & "00111100", -- COMPARE s2, 3C + 16#00C# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 2) Test logical operations with registers + ----------------------------------------------------------------- + 16#00D# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "LOAD" + ----------------------------------------------------------------- + 16#00E# => opLoadC & "0000" & "00110011", -- LOAD s0, 33 + 16#00F# => opLoadR & "0011" & "0000----", -- LOAD s3, s0 + 16#010# => opCompC & "0011" & "00110011", -- COMPARE s3, 33 + 16#011# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "AND" + ----------------------------------------------------------------- + 16#012# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#013# => opAndR & "0000" & "0011----", -- AND s0, s3 + 16#014# => opCompC & "0000" & "00000011", -- COMPARE s0, 03 + 16#015# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "OR" + ----------------------------------------------------------------- + 16#016# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#017# => opOrR & "0001" & "0011----", -- OR s1, s3 + 16#018# => opCompC & "0001" & "00111111", -- COMPARE s1, 3F + 16#019# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "XOR" + ----------------------------------------------------------------- + 16#01A# => opLoadC & "0010" & "00001111", -- LOAD s2, 0F + 16#01B# => opXorR & "0010" & "0011----", -- XOR s2, s3 + 16#01C# => opCompC & "0010" & "00111100", -- COMPARE s2, 3C + 16#01D# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 3) Test arithmetic operations with constants + ----------------------------------------------------------------- + 16#01E# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "ADD" and "ADDCY" + ----------------------------------------------------------------- + 16#01F# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#020# => opAddC & "0000" & "00110001", -- ADD s0, 31 ; 40 + 16#021# => opAddCyC & "0000" & "11110000", -- ADDCY s0, F0 ; 130 + 16#022# => opAddCyC & "0000" & "11110000", -- ADDCY s0, F0 ; 121 + 16#023# => opAddC & "0000" & "00001111", -- ADD s0, 0F ; 30 + 16#024# => opCompC & "0000" & "00110000", -- COMPARE s0, 30 + 16#025# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "SUB" and "SUBCY" + ----------------------------------------------------------------- + 16#026# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#027# => opSubC & "0001" & "00001100", -- SUB s1, 0C ; 03 + 16#028# => opSubCyC & "0001" & "11110000", -- SUBCY s1, F0 ; 113 + 16#029# => opSubCyC & "0001" & "11110000", -- SUBCY s1, F0 ; 22 + 16#02A# => opSubC & "0001" & "00000001", -- SUB s1, 01 ; 21 + 16#02B# => opCompC & "0001" & "00100001", -- COMPARE s1, 21 + 16#02C# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 4) Test arithmetic operations with registers + ----------------------------------------------------------------- + 16#02D# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "ADD" and "ADDCY" + ----------------------------------------------------------------- + 16#02E# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#02F# => opLoadC & "0001" & "00110001", -- LOAD s1, 31 + 16#030# => opLoadC & "0010" & "11110000", -- LOAD s2, F0 + 16#031# => opLoadC & "0011" & "00001111", -- LOAD s3, 0F + 16#032# => opAddR & "0000" & "0001----", -- ADD s0, s1 ; 40 + 16#033# => opAddCyR & "0000" & "0010----", -- ADDCY s0, s2 ; 130 + 16#034# => opAddCyR & "0000" & "0010----", -- ADDCY s0, s2 ; 121 + 16#035# => opAddR & "0000" & "0011----", -- ADD s0, s3 ; 30 + 16#036# => opCompC & "0000" & "00110000", -- COMPARE s0, 30 + 16#037# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "SUB" and "SUBCY" + ----------------------------------------------------------------- + 16#038# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#039# => opLoadC & "0000" & "00001100", -- LOAD s0, 0C + 16#03A# => opLoadC & "0010" & "11110000", -- LOAD s2, F0 + 16#03B# => opLoadC & "0011" & "00000001", -- LOAD s3, 01 + 16#03C# => opSubR & "0001" & "0000----", -- SUB s1, s0 ; 03 + 16#03D# => opSubCyR & "0001" & "0010----", -- SUBCY s1, s2 ; 113 + 16#03E# => opSubCyR & "0001" & "0010----", -- SUBCY s1, s2 ; 22 + 16#03F# => opSubR & "0001" & "0011----", -- SUB s1, s3 ; 21 + 16#040# => opCompC & "0001" & "00100001", -- COMPARE s1, 21 + 16#041# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 5) Test shifts + ----------------------------------------------------------------- + 16#042# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test shift right + ----------------------------------------------------------------- + 16#043# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F ; 0F + 16#044# => opShRot & "0000" & shRotR & shRotLd0,-- SR0 s0 ; 07 + 16#045# => opShRot & "0000" & shRotR & shRotLdM,-- SRX s0 ; 03 + 16#046# => opShRot & "0000" & shRotR & shRotLd1,-- SR1 s0 ; 81 + 16#047# => opShRot & "0000" & shRotR & shRotLdM,-- SRX s0 ; C0, C=1 + 16#048# => opShRot & "0000" & shRotR & shRotLdC,-- SRA s0 ; E0, C=0 + 16#049# => opShRot & "0000" & shRotR & shRotLdC,-- SRA s0 ; 70 + 16#04A# => opCompC & "0000" & "01110000", -- COMPARE s0, 70 + 16#04B# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test shift left + ----------------------------------------------------------------- + 16#04C# => opLoadC & "0001" & "11110000", -- LOAD s1, F0 ; FO + 16#04D# => opShRot & "0001" & shRotL & shRotLd0,-- SL0 s1 ; E0 + 16#04E# => opShRot & "0001" & shRotL & shRotLdL,-- SLX s1 ; C0 + 16#04F# => opShRot & "0001" & shRotL & shRotLd1,-- SL1 s1 ; 81 + 16#050# => opShRot & "0001" & shRotL & shRotLdL,-- SLX s1 ; 03, C=1 + 16#051# => opShRot & "0001" & shRotL & shRotLdC,-- SLA s1 ; 07, C=0 + 16#052# => opShRot & "0001" & shRotL & shRotLdC,-- SLA s1 ; 0E + 16#053# => opCompC & "0001" & "00001110", -- COMPARE s1, 0E + 16#054# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 6) Test comparison operators + ----------------------------------------------------------------- + 16#055# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "COMPARE" + ----------------------------------------------------------------- + 16#056# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#057# => opCompC & "0000" & "11110000", -- COMPARE s0, F0 ; A < B => C=1 + 16#058# => brJump & brNC & "1111111101", -- JUMP NC, 3FD + 16#059# => opCompC & "0000" & "11110000", -- COMPARE s0, F0 ; A < B => Z=0 + 16#05A# => brJump & brZ & "1111111101", -- JUMP Z, 3FD + 16#05B# => opCompR & "0000" & "0000----", -- COMPARE s0, s0 ; A = B => Z=1 + 16#05C# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + 16#05D# => opCompC & "0000" & "00001000", -- COMPARE s0, 08 ; A > B => C=0 + 16#05E# => brJump & brC & "1111111101", -- JUMP C, 3FD + 16#05F# => opCompC & "0000" & "00001000", -- COMPARE s0, 08 ; A > B => Z=0 + 16#060# => brJump & brZ & "1111111101", -- JUMP Z, 3FD + ----------------------------------------------------------------- + -- Test "TEST" + ----------------------------------------------------------------- + 16#061# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#062# => opTestC & "0000" & "11110000", -- TEST s0, F0 ; AND is 00 => Z=1 + 16#063# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + 16#064# => opTestC & "0000" & "11111111", -- TEST s0, FF ; AND is 0F => Z=0 + 16#065# => brJump & brZ & "1111111101", -- JUMP Z, 3FD + --=============================================================== + -- 7) Test INPUT and OUTPUT operators + ----------------------------------------------------------------- + 16#066# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "INPUT" and "OUTPUT" direct + -- + -- The testbench should invert the word written at address FC. + ----------------------------------------------------------------- + 16#067# => opLoadC & "0000" & "10101010", -- LOAD s0, AA + 16#068# => opOutputC & "0000" & "11111100", -- OUTPUT s0, FC + 16#069# => opInputC & "0001" & "11111100", -- INPUT s1, FC + 16#06A# => opCompC & "0001" & "01010101", -- COMPARE s1, 55 + 16#06B# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "INPUT" and "OUTPUT" indexed + ----------------------------------------------------------------- + 16#06C# => opLoadC & "0000" & "11001100", -- LOAD s0, CC + 16#06D# => opLoadC & "0010" & "11111100", -- LOAD s2, FC + 16#06E# => opOutputR & "0000" & "0010----", -- OUTPUT s0, (S2) + 16#06F# => opInputR & "0001" & "0010----", -- INPUT s1, (S2) + 16#070# => opCompC & "0001" & "00110011", -- COMPARE s1, 33 + 16#071# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 8) Test STORE and FETCH operators + ----------------------------------------------------------------- + 16#072# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "STORE" and "FETCH" direct + ----------------------------------------------------------------- + 16#073# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#074# => opStoreC & "0000" & "00000011", -- STORE s0, 03 + 16#075# => opFetchC & "0001" & "00000011", -- FETCH s1, 03 + 16#076# => opCompC & "0001" & "00001111", -- COMPARE s1, 0F + 16#077# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "STORE" and "FETCH" indexed + ----------------------------------------------------------------- + 16#078# => opLoadC & "0000" & "11110000", -- LOAD s0, F0 + 16#079# => opLoadC & "0010" & "00000100", -- LOAD s2, 04 + 16#07A# => opStoreR & "0000" & "0010----", -- STORE s0, (S2) + 16#07B# => opFetchR & "0001" & "0010----", -- FETCH s1, (S2) + 16#07C# => opCompC & "0001" & "11110000", -- COMPARE s1, F0 + 16#07D# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 9) Test JUMP instructions + ----------------------------------------------------------------- + 16#07E# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "JUMP NC" + ----------------------------------------------------------------- + 16#07F# => opLoadC & "0000" & "11110000", -- LOAD s0, F0 + 16#080# => opAddC & "0000" & "00000000", -- ADD s0, 00 ; s0=F0, C=0, Z=0 + 16#081# => brJump & brNC & "0010000011", -- JUMP NC, 083 + 16#082# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "JUMP NZ" + ----------------------------------------------------------------- + -- _continue1_: + 16#083# => opAddC & "0000" & "00000000", -- ADD s0, 00 ; s0=F0, C=0, Z=0 + 16#084# => brJump & brNZ & "0010000110", -- JUMP NZ, 086 + 16#085# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "JUMP C" + ----------------------------------------------------------------- + -- _continue2_: + 16#086# => opAddC & "0000" & "11110000", -- ADD s0, F0 ; s0=E0, C=1, Z=0 + 16#087# => brJump & brC & "0010001001", -- JUMP C, 089 + 16#088# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "JUMP Z" + ----------------------------------------------------------------- + -- _continue3_: + 16#089# => opSubC & "0000" & "11100000", -- SUB s0, E0 ; s0=00, C=0, Z=1 + 16#08A# => brJump & brZ & "0010001100", -- JUMP Z, 08C + 16#08B# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _continue4_: + 16#08C# => opLoadR & "0000" & "0000----", -- NOP + --=============================================================== + -- 10) Test call instructions + ----------------------------------------------------------------- + 16#08D# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- define subroutine + ----------------------------------------------------------------- + 16#08E# => brJump & brDo & "0010010010", -- JUMP 092 + -- _subRetDo_: + 16#08F# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#090# => brRet & brDo & "----------", -- RETURN + 16#091# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "CALL" + ----------------------------------------------------------------- + -- _continue5_: + 16#092# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 + 16#093# => opLoadC & "0001" & "11110000", -- LOAD s1, F0 + 16#094# => brCall & brDo & "0010001111", -- CALL 08F ; s0=01 + ----------------------------------------------------------------- + -- Test "CALL NC" + ----------------------------------------------------------------- + 16#095# => opAddC & "0001" & "00000000", -- ADD s1, 00 ; s1=F0, C=0, Z=0 + 16#096# => brCall & brNC & "0010001111", -- CALL NC, 08F ; s0=02 + ----------------------------------------------------------------- + -- Test "CALL NZ" + ----------------------------------------------------------------- + 16#097# => opAddC & "0001" & "00000000", -- ADD s1, 00 ; s1=F0, C=0, Z=0 + 16#098# => brCall & brNZ & "0010001111", -- CALL NZ, 08F ; s0=03 + ----------------------------------------------------------------- + -- Test "CALL C" + ----------------------------------------------------------------- + 16#099# => opAddC & "0001" & "11110000", -- ADD s1, F0 ; s0=E0, C=1, Z=0 + 16#09A# => brCall & brC & "0010001111", -- CALL C, 08F ; s0=04 + ----------------------------------------------------------------- + -- Test "CALL Z" + ----------------------------------------------------------------- + 16#09B# => opSubC & "0001" & "11100000", -- SUB s1, E0 ; s0=00, C=0, Z=1 + 16#09C# => brCall & brZ & "0010001111", -- CALL Z, 08F ; s0=05 + 16#09D# => opCompC & "0000" & "00000101", -- COMPARE s0, 05 + 16#09E# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 11) Test call return instructions + ----------------------------------------------------------------- + 16#09F# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- define subroutines + ----------------------------------------------------------------- + 16#0A0# => brJump & brDo & "0010101101", -- JUMP 0AD + -- _subRetNC_: + 16#0A1# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0A2# => brRet & brDo & "----------", -- RETURN NC + 16#0A3# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _subRetNZ_: + 16#0A4# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0A5# => brRet & brDo & "----------", -- RETURN NZ + 16#0A6# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _subRetC_: + 16#0A7# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0A8# => brRet & brDo & "----------", -- RETURN C + 16#0A9# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _subRetZ_: + 16#0AA# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0AB# => brRet & brDo & "----------", -- RETURN Z + 16#0AC# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "RETURN NC" + ----------------------------------------------------------------- + -- _continue6_: + 16#0AD# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 ; increment will give C=0, Z=0 + 16#0AE# => brCall & brNC & "0010100001", -- CALL NC, 0A1 + ----------------------------------------------------------------- + -- Test "RETURN NZ" + ----------------------------------------------------------------- + 16#0AF# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 ; increment will give C=0, Z=0 + 16#0B0# => brCall & brNZ & "0010100100", -- CALL NZ, 0A4 + ----------------------------------------------------------------- + -- Test "RETURN C" + ----------------------------------------------------------------- + 16#0B1# => opLoadC & "0000" & "11111111", -- LOAD s0, FF ; increment will give C=1, Z=1 + 16#0B2# => brCall & brC & "0010100111", -- CALL C, 0A7 + ----------------------------------------------------------------- + -- Test "RETURN Z" + ----------------------------------------------------------------- + 16#0B3# => opLoadC & "0000" & "11111111", -- LOAD s0, FF ; increment will give C=1, Z=1 + 16#0B4# => brCall & brZ & "0010101010", -- CALL Z, 0AA + --=============================================================== + -- End of tests + -- + -- The testbench should react if value 1 is written to address 00. + ----------------------------------------------------------------- + 16#0B5# => opLoadC & "0000" & "00000001", -- LOAD s0, 01 + 16#0B6# => opOutputC & "0000" & "00000000", -- OUTPUT s0, 00 + 16#0B7# => brJump & brDo & "1111111111", -- JUMP 3FF + --=============================================================== + -- Assert error + -- + -- The testbench should react if value 0 is written to address 00. + ----------------------------------------------------------------- + -- _error_: + 16#3FD# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 + 16#3FE# => opOutputC & "0000" & "00000000", -- OUTPUT s0, 00 + --=============================================================== + -- End of instruction memory + ----------------------------------------------------------------- + -- _endOfMemory_: + 16#3FF# => brJump & brDo & "1111111111", -- JUMP 3FF + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; diff --git a/Libs/NanoBlaze/hdl/programCounter_RTL.vhd b/Libs/NanoBlaze/hdl/programCounter_RTL.vhd new file mode 100644 index 0000000..d2c2312 --- /dev/null +++ b/Libs/NanoBlaze/hdl/programCounter_RTL.vhd @@ -0,0 +1,24 @@ +ARCHITECTURE RTL OF programCounter IS + + signal pCounter: unsigned(progCounter'range); + +BEGIN + + updateProgramCounter: process(reset, clock) + begin + if reset = '1' then + pCounter <= (others => '0'); + elsif rising_edge(clock) then + if incPC = '1' then + pCounter <= pCounter + 1; + elsif loadInstrAddress = '1' then + pCounter <= instrAddress; + elsif loadStoredPC = '1' then + pCounter <= storedProgCounter; + end if; + end if; + end process updateProgramCounter; + + progCounter <= pCounter; + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/registerFile_RTL.vhd b/Libs/NanoBlaze/hdl/registerFile_RTL.vhd new file mode 100644 index 0000000..961b26c --- /dev/null +++ b/Libs/NanoBlaze/hdl/registerFile_RTL.vhd @@ -0,0 +1,26 @@ +ARCHITECTURE RTL OF registerFile IS + + subtype registerType is signed(registersIn'range); + type registerArrayType is array (0 to 2**registerAddressBitNb-1) of registerType; + signal registerArray : registerArrayType; + +BEGIN + ------------------------------------------------------------------------------ + -- write to registers + updateRegister: process(reset, clock) + begin + if reset = '1' then + registerArray <= (others => (others => '0')); + elsif rising_edge(clock) then + if regWrite = '1' then + registerArray(to_integer(addrA)) <= registersIn; + end if; + end if; + end process updateRegister; + + ------------------------------------------------------------------------------ + -- read from registers + opA <= registerArray(to_integer(addrA)); + opB <= registerArray(to_integer(addrB)); + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hdl/rom_empty.vhd b/Libs/NanoBlaze/hdl/rom_empty.vhd new file mode 100644 index 0000000..07d5f76 --- /dev/null +++ b/Libs/NanoBlaze/hdl/rom_empty.vhd @@ -0,0 +1,21 @@ +ARCHITECTURE empty OF programRom IS + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= (others => '0'); + end if; + end if; + end process; + +END ARCHITECTURE empty; diff --git a/Libs/NanoBlaze/hdl/rom_mapped.vhd b/Libs/NanoBlaze/hdl/rom_mapped.vhd new file mode 100644 index 0000000..f018830 --- /dev/null +++ b/Libs/NanoBlaze/hdl/rom_mapped.vhd @@ -0,0 +1,431 @@ +ARCHITECTURE mapped OF programRom IS + + subtype opCodeType is std_ulogic_vector(5 downto 0); + constant opLoadC : opCodeType := "000000"; + constant opLoadR : opCodeType := "000001"; + constant opInputC : opCodeType := "000100"; + constant opInputR : opCodeType := "000101"; + constant opFetchC : opCodeType := "000110"; + constant opFetchR : opCodeType := "000111"; + constant opAndC : opCodeType := "001010"; + constant opAndR : opCodeType := "001011"; + constant opOrC : opCodeType := "001100"; + constant opOrR : opCodeType := "001101"; + constant opXorC : opCodeType := "001110"; + constant opXorR : opCodeType := "001111"; + constant opTestC : opCodeType := "010010"; + constant opTestR : opCodeType := "010011"; + constant opCompC : opCodeType := "010100"; + constant opCompR : opCodeType := "010101"; + constant opAddC : opCodeType := "011000"; + constant opAddR : opCodeType := "011001"; + constant opAddCyC : opCodeType := "011010"; + constant opAddCyR : opCodeType := "011011"; + constant opSubC : opCodeType := "011100"; + constant opSubR : opCodeType := "011101"; + constant opSubCyC : opCodeType := "011110"; + constant opSubCyR : opCodeType := "011111"; + constant opShRot : opCodeType := "100000"; + constant opOutputC : opCodeType := "101100"; + constant opOutputR : opCodeType := "101101"; + constant opStoreC : opCodeType := "101110"; + constant opStoreR : opCodeType := "101111"; + + subtype shRotCinType is std_ulogic_vector(2 downto 0); + constant shRotLdC : shRotCinType := "00-"; + constant shRotLdM : shRotCinType := "01-"; + constant shRotLdL : shRotCinType := "10-"; + constant shRotLd0 : shRotCinType := "110"; + constant shRotLd1 : shRotCinType := "111"; + + constant registerAddressBitNb : positive := 4; + constant shRotPadLength : positive + := dataOut'length - opCodeType'length - registerAddressBitNb + - 1 - shRotCinType'length; + subtype shRotDirType is std_ulogic_vector(1+shRotPadLength-1 downto 0); + constant shRotL : shRotDirType := (0 => '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + --=============================================================== + -- 1) Test logical operations with direct values + ----------------------------------------------------------------- + 16#000# => opLoadC & "0111" & "00000001", -- LOAD s7, 01 + ----------------------------------------------------------------- + -- Test "LOAD", "AND" + ----------------------------------------------------------------- + 16#001# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#002# => opAndC & "0000" & "00110011", -- AND s0, 33 + 16#003# => opCompC & "0000" & "00000011", -- COMPARE s0, 03 + 16#004# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "OR" + ----------------------------------------------------------------- + 16#005# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#006# => opOrC & "0001" & "00110011", -- OR s1, 33 + 16#007# => opCompC & "0001" & "00111111", -- COMPARE s1, 3F + 16#008# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "XOR" + ----------------------------------------------------------------- + 16#009# => opLoadC & "0010" & "00001111", -- LOAD s2, 0F + 16#00A# => opXorC & "0010" & "00110011", -- XOR s2, 33 + 16#00B# => opCompC & "0010" & "00111100", -- COMPARE s2, 3C + 16#00C# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 2) Test logical operations with registers + ----------------------------------------------------------------- + 16#00D# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "LOAD" + ----------------------------------------------------------------- + 16#00E# => opLoadC & "0000" & "00110011", -- LOAD s0, 33 + 16#00F# => opLoadR & "0011" & "0000----", -- LOAD s3, s0 + 16#010# => opCompC & "0011" & "00110011", -- COMPARE s3, 33 + 16#011# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "AND" + ----------------------------------------------------------------- + 16#012# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#013# => opAndR & "0000" & "0011----", -- AND s0, s3 + 16#014# => opCompC & "0000" & "00000011", -- COMPARE s0, 03 + 16#015# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "OR" + ----------------------------------------------------------------- + 16#016# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#017# => opOrR & "0001" & "0011----", -- OR s1, s3 + 16#018# => opCompC & "0001" & "00111111", -- COMPARE s1, 3F + 16#019# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "XOR" + ----------------------------------------------------------------- + 16#01A# => opLoadC & "0010" & "00001111", -- LOAD s2, 0F + 16#01B# => opXorR & "0010" & "0011----", -- XOR s2, s3 + 16#01C# => opCompC & "0010" & "00111100", -- COMPARE s2, 3C + 16#01D# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 3) Test arithmetic operations with constants + ----------------------------------------------------------------- + 16#01E# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "ADD" and "ADDCY" + ----------------------------------------------------------------- + 16#01F# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#020# => opAddC & "0000" & "00110001", -- ADD s0, 31 ; 40 + 16#021# => opAddCyC & "0000" & "11110000", -- ADDCY s0, F0 ; 130 + 16#022# => opAddCyC & "0000" & "11110000", -- ADDCY s0, F0 ; 121 + 16#023# => opAddC & "0000" & "00001111", -- ADD s0, 0F ; 30 + 16#024# => opCompC & "0000" & "00110000", -- COMPARE s0, 30 + 16#025# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "SUB" and "SUBCY" + ----------------------------------------------------------------- + 16#026# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#027# => opSubC & "0001" & "00001100", -- SUB s1, 0C ; 03 + 16#028# => opSubCyC & "0001" & "11110000", -- SUBCY s1, F0 ; 113 + 16#029# => opSubCyC & "0001" & "11110000", -- SUBCY s1, F0 ; 22 + 16#02A# => opSubC & "0001" & "00000001", -- SUB s1, 01 ; 21 + 16#02B# => opCompC & "0001" & "00100001", -- COMPARE s1, 21 + 16#02C# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 4) Test arithmetic operations with registers + ----------------------------------------------------------------- + 16#02D# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "ADD" and "ADDCY" + ----------------------------------------------------------------- + 16#02E# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#02F# => opLoadC & "0001" & "00110001", -- LOAD s1, 31 + 16#030# => opLoadC & "0010" & "11110000", -- LOAD s2, F0 + 16#031# => opLoadC & "0011" & "00001111", -- LOAD s3, 0F + 16#032# => opAddR & "0000" & "0001----", -- ADD s0, s1 ; 40 + 16#033# => opAddCyR & "0000" & "0010----", -- ADDCY s0, s2 ; 130 + 16#034# => opAddCyR & "0000" & "0010----", -- ADDCY s0, s2 ; 121 + 16#035# => opAddR & "0000" & "0011----", -- ADD s0, s3 ; 30 + 16#036# => opCompC & "0000" & "00110000", -- COMPARE s0, 30 + 16#037# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "SUB" and "SUBCY" + ----------------------------------------------------------------- + 16#038# => opLoadC & "0001" & "00001111", -- LOAD s1, 0F + 16#039# => opLoadC & "0000" & "00001100", -- LOAD s0, 0C + 16#03A# => opLoadC & "0010" & "11110000", -- LOAD s2, F0 + 16#03B# => opLoadC & "0011" & "00000001", -- LOAD s3, 01 + 16#03C# => opSubR & "0001" & "0000----", -- SUB s1, s0 ; 03 + 16#03D# => opSubCyR & "0001" & "0010----", -- SUBCY s1, s2 ; 113 + 16#03E# => opSubCyR & "0001" & "0010----", -- SUBCY s1, s2 ; 22 + 16#03F# => opSubR & "0001" & "0011----", -- SUB s1, s3 ; 21 + 16#040# => opCompC & "0001" & "00100001", -- COMPARE s1, 21 + 16#041# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 5) Test shifts + ----------------------------------------------------------------- + 16#042# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test shift right + ----------------------------------------------------------------- + 16#043# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F ; 0F + 16#044# => opShRot & "0000" & shRotR & shRotLd0,-- SR0 s0 ; 07 + 16#045# => opShRot & "0000" & shRotR & shRotLdM,-- SRX s0 ; 03 + 16#046# => opShRot & "0000" & shRotR & shRotLd1,-- SR1 s0 ; 81 + 16#047# => opShRot & "0000" & shRotR & shRotLdM,-- SRX s0 ; C0, C=1 + 16#048# => opShRot & "0000" & shRotR & shRotLdC,-- SRA s0 ; E0, C=0 + 16#049# => opShRot & "0000" & shRotR & shRotLdC,-- SRA s0 ; 70 + 16#04A# => opCompC & "0000" & "01110000", -- COMPARE s0, 70 + 16#04B# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test shift left + ----------------------------------------------------------------- + 16#04C# => opLoadC & "0001" & "11110000", -- LOAD s1, F0 ; FO + 16#04D# => opShRot & "0001" & shRotL & shRotLd0,-- SL0 s1 ; E0 + 16#04E# => opShRot & "0001" & shRotL & shRotLdL,-- SLX s1 ; C0 + 16#04F# => opShRot & "0001" & shRotL & shRotLd1,-- SL1 s1 ; 81 + 16#050# => opShRot & "0001" & shRotL & shRotLdL,-- SLX s1 ; 03, C=1 + 16#051# => opShRot & "0001" & shRotL & shRotLdC,-- SLA s1 ; 07, C=0 + 16#052# => opShRot & "0001" & shRotL & shRotLdC,-- SLA s1 ; 0E + 16#053# => opCompC & "0001" & "00001110", -- COMPARE s1, 0E + 16#054# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 6) Test comparison operators + ----------------------------------------------------------------- + 16#055# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "COMPARE" + ----------------------------------------------------------------- + 16#056# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#057# => opCompC & "0000" & "11110000", -- COMPARE s0, F0 ; A < B => C=1 + 16#058# => brJump & brNC & "1111111101", -- JUMP NC, 3FD + 16#059# => opCompC & "0000" & "11110000", -- COMPARE s0, F0 ; A < B => Z=0 + 16#05A# => brJump & brZ & "1111111101", -- JUMP Z, 3FD + 16#05B# => opCompR & "0000" & "0000----", -- COMPARE s0, s0 ; A = B => Z=1 + 16#05C# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + 16#05D# => opCompC & "0000" & "00001000", -- COMPARE s0, 08 ; A > B => C=0 + 16#05E# => brJump & brC & "1111111101", -- JUMP C, 3FD + 16#05F# => opCompC & "0000" & "00001000", -- COMPARE s0, 08 ; A > B => Z=0 + 16#060# => brJump & brZ & "1111111101", -- JUMP Z, 3FD + ----------------------------------------------------------------- + -- Test "TEST" + ----------------------------------------------------------------- + 16#061# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#062# => opTestC & "0000" & "11110000", -- TEST s0, F0 ; AND is 00 => Z=1 + 16#063# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + 16#064# => opTestC & "0000" & "11111111", -- TEST s0, FF ; AND is 0F => Z=0 + 16#065# => brJump & brZ & "1111111101", -- JUMP Z, 3FD + --=============================================================== + -- 7) Test INPUT and OUTPUT operators + ----------------------------------------------------------------- + 16#066# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "INPUT" and "OUTPUT" direct + -- + -- The testbench should invert the word written at address FC. + ----------------------------------------------------------------- + 16#067# => opLoadC & "0000" & "10101010", -- LOAD s0, AA + 16#068# => opOutputC & "0000" & "11111100", -- OUTPUT s0, FC + 16#069# => opInputC & "0001" & "11111100", -- INPUT s1, FC + 16#06A# => opCompC & "0001" & "01010101", -- COMPARE s1, 55 + 16#06B# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "INPUT" and "OUTPUT" indexed + ----------------------------------------------------------------- + 16#06C# => opLoadC & "0000" & "11001100", -- LOAD s0, CC + 16#06D# => opLoadC & "0010" & "11111100", -- LOAD s2, FC + 16#06E# => opOutputR & "0000" & "0010----", -- OUTPUT s0, (S2) + 16#06F# => opInputR & "0001" & "0010----", -- INPUT s1, (S2) + 16#070# => opCompC & "0001" & "00110011", -- COMPARE s1, 33 + 16#071# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 8) Test STORE and FETCH operators + ----------------------------------------------------------------- + 16#072# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "STORE" and "FETCH" direct + ----------------------------------------------------------------- + 16#073# => opLoadC & "0000" & "00001111", -- LOAD s0, 0F + 16#074# => opStoreC & "0000" & "00000011", -- STORE s0, 03 + 16#075# => opFetchC & "0001" & "00000011", -- FETCH s1, 03 + 16#076# => opCompC & "0001" & "00001111", -- COMPARE s1, 0F + 16#077# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + ----------------------------------------------------------------- + -- Test "STORE" and "FETCH" indexed + ----------------------------------------------------------------- + 16#078# => opLoadC & "0000" & "11110000", -- LOAD s0, F0 + 16#079# => opLoadC & "0010" & "00000100", -- LOAD s2, 04 + 16#07A# => opStoreR & "0000" & "0010----", -- STORE s0, (S2) + 16#07B# => opFetchR & "0001" & "0010----", -- FETCH s1, (S2) + 16#07C# => opCompC & "0001" & "11110000", -- COMPARE s1, F0 + 16#07D# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 9) Test JUMP instructions + ----------------------------------------------------------------- + 16#07E# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- Test "JUMP NC" + ----------------------------------------------------------------- + 16#07F# => opLoadC & "0000" & "11110000", -- LOAD s0, F0 + 16#080# => opAddC & "0000" & "00000000", -- ADD s0, 00 ; s0=F0, C=0, Z=0 + 16#081# => brJump & brNC & "0010000011", -- JUMP NC, 083 + 16#082# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "JUMP NZ" + ----------------------------------------------------------------- + -- _continue1_: + 16#083# => opAddC & "0000" & "00000000", -- ADD s0, 00 ; s0=F0, C=0, Z=0 + 16#084# => brJump & brNZ & "0010000110", -- JUMP NZ, 086 + 16#085# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "JUMP C" + ----------------------------------------------------------------- + -- _continue2_: + 16#086# => opAddC & "0000" & "11110000", -- ADD s0, F0 ; s0=E0, C=1, Z=0 + 16#087# => brJump & brC & "0010001001", -- JUMP C, 089 + 16#088# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "JUMP Z" + ----------------------------------------------------------------- + -- _continue3_: + 16#089# => opSubC & "0000" & "11100000", -- SUB s0, E0 ; s0=00, C=0, Z=1 + 16#08A# => brJump & brZ & "0010001100", -- JUMP Z, 08C + 16#08B# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _continue4_: + 16#08C# => opLoadR & "0000" & "0000----", -- NOP + --=============================================================== + -- 10) Test call instructions + ----------------------------------------------------------------- + 16#08D# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- define subroutine + ----------------------------------------------------------------- + 16#08E# => brJump & brDo & "0010010010", -- JUMP 092 + -- _subRetDo_: + 16#08F# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#090# => brRet & brDo & "----------", -- RETURN + 16#091# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "CALL" + ----------------------------------------------------------------- + -- _continue5_: + 16#092# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 + 16#093# => opLoadC & "0001" & "11110000", -- LOAD s1, F0 + 16#094# => brCall & brDo & "0010001111", -- CALL 08F ; s0=01 + ----------------------------------------------------------------- + -- Test "CALL NC" + ----------------------------------------------------------------- + 16#095# => opAddC & "0001" & "00000000", -- ADD s1, 00 ; s1=F0, C=0, Z=0 + 16#096# => brCall & brNC & "0010001111", -- CALL NC, 08F ; s0=02 + ----------------------------------------------------------------- + -- Test "CALL NZ" + ----------------------------------------------------------------- + 16#097# => opAddC & "0001" & "00000000", -- ADD s1, 00 ; s1=F0, C=0, Z=0 + 16#098# => brCall & brNZ & "0010001111", -- CALL NZ, 08F ; s0=03 + ----------------------------------------------------------------- + -- Test "CALL C" + ----------------------------------------------------------------- + 16#099# => opAddC & "0001" & "11110000", -- ADD s1, F0 ; s0=E0, C=1, Z=0 + 16#09A# => brCall & brC & "0010001111", -- CALL C, 08F ; s0=04 + ----------------------------------------------------------------- + -- Test "CALL Z" + ----------------------------------------------------------------- + 16#09B# => opSubC & "0001" & "11100000", -- SUB s1, E0 ; s0=00, C=0, Z=1 + 16#09C# => brCall & brZ & "0010001111", -- CALL Z, 08F ; s0=05 + 16#09D# => opCompC & "0000" & "00000101", -- COMPARE s0, 05 + 16#09E# => brJump & brNZ & "1111111101", -- JUMP NZ, 3FD + --=============================================================== + -- 11) Test call return instructions + ----------------------------------------------------------------- + 16#09F# => opAddC & "0111" & "00000001", -- ADD s7, 01 + ----------------------------------------------------------------- + -- define subroutines + ----------------------------------------------------------------- + 16#0A0# => brJump & brDo & "0010101101", -- JUMP 0AD + -- _subRetNC_: + 16#0A1# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0A2# => brRet & brDo & "----------", -- RETURN NC + 16#0A3# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _subRetNZ_: + 16#0A4# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0A5# => brRet & brDo & "----------", -- RETURN NZ + 16#0A6# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _subRetC_: + 16#0A7# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0A8# => brRet & brDo & "----------", -- RETURN C + 16#0A9# => brJump & brDo & "1111111101", -- JUMP 3FD + -- _subRetZ_: + 16#0AA# => opAddC & "0000" & "00000001", -- ADD s0, 01 + 16#0AB# => brRet & brDo & "----------", -- RETURN Z + 16#0AC# => brJump & brDo & "1111111101", -- JUMP 3FD + ----------------------------------------------------------------- + -- Test "RETURN NC" + ----------------------------------------------------------------- + -- _continue6_: + 16#0AD# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 ; increment will give C=0, Z=0 + 16#0AE# => brCall & brNC & "0010100001", -- CALL NC, 0A1 + ----------------------------------------------------------------- + -- Test "RETURN NZ" + ----------------------------------------------------------------- + 16#0AF# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 ; increment will give C=0, Z=0 + 16#0B0# => brCall & brNZ & "0010100100", -- CALL NZ, 0A4 + ----------------------------------------------------------------- + -- Test "RETURN C" + ----------------------------------------------------------------- + 16#0B1# => opLoadC & "0000" & "11111111", -- LOAD s0, FF ; increment will give C=1, Z=1 + 16#0B2# => brCall & brC & "0010100111", -- CALL C, 0A7 + ----------------------------------------------------------------- + -- Test "RETURN Z" + ----------------------------------------------------------------- + 16#0B3# => opLoadC & "0000" & "11111111", -- LOAD s0, FF ; increment will give C=1, Z=1 + 16#0B4# => brCall & brZ & "0010101010", -- CALL Z, 0AA + --=============================================================== + -- End of tests + -- + -- The testbench should react if value 1 is written to address 00. + ----------------------------------------------------------------- + 16#0B5# => opLoadC & "0000" & "00000001", -- LOAD s0, 01 + 16#0B6# => opOutputC & "0000" & "00000000", -- OUTPUT s0, 00 + 16#0B7# => brJump & brDo & "1111111111", -- JUMP 3FF + --=============================================================== + -- Assert error + -- + -- The testbench should react if value 0 is written to address 00. + ----------------------------------------------------------------- + -- _error_: + 16#3FD# => opLoadC & "0000" & "00000000", -- LOAD s0, 00 + 16#3FE# => opOutputC & "0000" & "00000000", -- OUTPUT s0, 00 + --=============================================================== + -- End of instruction memory + ----------------------------------------------------------------- + -- _endOfMemory_: + 16#3FF# => brJump & brDo & "1111111111", -- JUMP 3FF + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; diff --git a/Libs/NanoBlaze/hdl/scratchpad_RTL.vhd b/Libs/NanoBlaze/hdl/scratchpad_RTL.vhd new file mode 100644 index 0000000..7557a00 --- /dev/null +++ b/Libs/NanoBlaze/hdl/scratchpad_RTL.vhd @@ -0,0 +1,21 @@ +ARCHITECTURE RTL OF scratchpad IS + + subtype memoryWordType is signed(dataOut'range); + type memoryArrayType is array (0 to 2**addr'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType; + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if write = '1' then + memoryArray(to_integer(addr)) <= dataIn; + end if; + end if; + end process; + + dataOut <= memoryArray(to_integer(addr)); + +END ARCHITECTURE RTL; diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_aluBOpSelector_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_aluBOpSelector_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_aluBOpSelector_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_alu_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_alu_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_alu_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_alu_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_alu_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_alu_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_struct.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_aluandregs_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_alubopselector_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_alubopselector_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_alubopselector_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_branchStack_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_branchStack_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_branchStack_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_branchstack_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_branchstack_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_branchstack_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_controller_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_controller_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_controller_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_controller_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_controller_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_controller_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_instructionDecoder_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_instructionDecoder_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_instructionDecoder_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_instructiondecoder_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_instructiondecoder_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_instructiondecoder_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_nanoTest.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoTest.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoTest.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_struct.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoblaze_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_struct.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_nanoprocessor_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_programCounter_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_programCounter_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_programCounter_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_programcounter_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_programcounter_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_programcounter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_programrom_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_programrom_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_programrom_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_registerFile_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_registerFile_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_registerFile_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_registerfile_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_registerfile_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_registerfile_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_rom_empty.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_rom_empty.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_rom_empty.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_rom_mapped.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_rom_mapped.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_rom_mapped.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_RTL.vhd._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_RTL.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_RTL.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_entity.vhg._fpf b/Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/NanoBlaze/hds/.hdlsidedata/_scratchpad_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze/hds/_alu._epf b/Libs/NanoBlaze/hds/_alu._epf new file mode 100644 index 0000000..903076b --- /dev/null +++ b/Libs/NanoBlaze/hds/_alu._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom alu_RTL.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/NanoBlaze/hds/_aluandregs._epf b/Libs/NanoBlaze/hds/_aluandregs._epf new file mode 100644 index 0000000..442021e --- /dev/null +++ b/Libs/NanoBlaze/hds/_aluandregs._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom alu@and@regs/struct.bd diff --git a/Libs/NanoBlaze/hds/_alubopselector._epf b/Libs/NanoBlaze/hds/_alubopselector._epf new file mode 100644 index 0000000..8fd9406 --- /dev/null +++ b/Libs/NanoBlaze/hds/_alubopselector._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom aluBOpSelector_RTL.vhd diff --git a/Libs/NanoBlaze/hds/_branchstack._epf b/Libs/NanoBlaze/hds/_branchstack._epf new file mode 100644 index 0000000..4f1ef8e --- /dev/null +++ b/Libs/NanoBlaze/hds/_branchstack._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom branchStack_RTL.vhd diff --git a/Libs/NanoBlaze/hds/_controller._epf b/Libs/NanoBlaze/hds/_controller._epf new file mode 100644 index 0000000..4d80bb2 --- /dev/null +++ b/Libs/NanoBlaze/hds/_controller._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom controller_RTL.vhd diff --git a/Libs/NanoBlaze/hds/_instructiondecoder._epf b/Libs/NanoBlaze/hds/_instructiondecoder._epf new file mode 100644 index 0000000..bc9ab74 --- /dev/null +++ b/Libs/NanoBlaze/hds/_instructiondecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom instructionDecoder_RTL.vhd diff --git a/Libs/NanoBlaze/hds/_nanoblaze._epf b/Libs/NanoBlaze/hds/_nanoblaze._epf new file mode 100644 index 0000000..943becd --- /dev/null +++ b/Libs/NanoBlaze/hds/_nanoblaze._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom nano@blaze/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/NanoBlaze/hds/_nanoprocessor._epf b/Libs/NanoBlaze/hds/_nanoprocessor._epf new file mode 100644 index 0000000..1028fa8 --- /dev/null +++ b/Libs/NanoBlaze/hds/_nanoprocessor._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom nano@processor/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/Libs/NanoBlaze/hds/_programcounter._epf b/Libs/NanoBlaze/hds/_programcounter._epf new file mode 100644 index 0000000..bb4bfe1 --- /dev/null +++ b/Libs/NanoBlaze/hds/_programcounter._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom programCounter_RTL.vhd diff --git a/Libs/NanoBlaze/hds/_programrom._epf b/Libs/NanoBlaze/hds/_programrom._epf new file mode 100644 index 0000000..04f9d0f --- /dev/null +++ b/Libs/NanoBlaze/hds/_programrom._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom rom_mapped.vhd +DEFAULT_ARCHITECTURE atom mapped diff --git a/Libs/NanoBlaze/hds/_registerfile._epf b/Libs/NanoBlaze/hds/_registerfile._epf new file mode 100644 index 0000000..a085908 --- /dev/null +++ b/Libs/NanoBlaze/hds/_registerfile._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom registerFile_RTL.vhd diff --git a/Libs/NanoBlaze/hds/_scratchpad._epf b/Libs/NanoBlaze/hds/_scratchpad._epf new file mode 100644 index 0000000..faf93aa --- /dev/null +++ b/Libs/NanoBlaze/hds/_scratchpad._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom RTL +DEFAULT_FILE atom scratchpad_RTL.vhd diff --git a/Libs/NanoBlaze/hds/alu/symbol.sb b/Libs/NanoBlaze/hds/alu/symbol.sb new file mode 100644 index 0000000..59d74d6 --- /dev/null +++ b/Libs/NanoBlaze/hds/alu/symbol.sb @@ -0,0 +1,1715 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 20,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 172,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "opA" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 1 +suid 3,0 +) +) +uid 140,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 2 +suid 8,0 +) +) +uid 150,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 3 +suid 11,0 +) +) +uid 156,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 4 +suid 13,0 +) +) +uid 160,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "opB" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 18,0 +) +) +uid 335,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "aluOut" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 6 +suid 19,0 +) +) +uid 337,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 20,0 +) +) +uid 393,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 185,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 187,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 188,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 189,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 190,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 141,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 151,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 157,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 161,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 336,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 338,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 394,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 191,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 192,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 193,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 194,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 195,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 196,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 197,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 198,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 199,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 186,0 +vaOverrides [ +] +) +] +) +uid 171,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 201,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +uid 250,0 +) +*54 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 252,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 213,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *56 (MRCItem +litem &41 +pos 2 +dimension 20 +) +uid 215,0 +optionalChildren [ +*57 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 216,0 +) +*58 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 217,0 +) +*59 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 218,0 +) +*60 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 251,0 +) +*61 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 253,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 219,0 +optionalChildren [ +*62 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 220,0 +) +*63 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 221,0 +) +*64 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 222,0 +) +*65 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 223,0 +) +*66 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 224,0 +) +*67 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 225,0 +) +*68 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 226,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 214,0 +vaOverrides [ +] +) +] +) +uid 200,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu" +) +(vvPair +variable "date" +value "02.09.2010" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "02" +) +(vvPair +variable "entity_name" +value "alu" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3471" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PicoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Board/PicoBlaze/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "alu" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "16:23:43" +) +(vvPair +variable "unit" +value "alu" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 170,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,12250,35375,13000" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "34000,13000,35700,14000" +st "opA" +blo "34000,13800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15000,27000,15800" +st "opA : IN signed ( dataBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "opA" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 1 +suid 3,0 +) +) +) +*71 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43801,18625,44551,19375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +) +xt "41401,18500,42801,19500" +st "cIn" +ju 2 +blo "42801,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,14200,16500,15000" +st "cIn : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 2 +suid 8,0 +) +) +) +*72 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33450,18625,34200,19375" +) +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 104,0 +va (VaSet +) +xt "35200,18500,37200,19500" +st "cOut" +blo "35200,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17400,16500,18200" +st "cOut : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 3 +suid 11,0 +) +) +) +*73 (CptPort +uid 111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 363,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44867,16625,45617,17375" +) +tg (CPTG +uid 113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 114,0 +va (VaSet +) +xt "41800,16500,45000,17500" +st "aluCode" +ju 2 +blo "45000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 115,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13400,34000,14200" +st "aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 4 +suid 13,0 +) +) +) +*74 (CptPort +uid 325,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 326,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,12250,43375,13000" +) +tg (CPTG +uid 327,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 328,0 +va (VaSet +) +xt "42000,13000,43700,14000" +st "opB" +blo "42000,13800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 329,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15800,27000,16600" +st "opB : IN signed ( dataBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "opB" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 18,0 +) +) +) +*75 (CptPort +uid 330,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 364,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38625,23000,39375,23750" +) +tg (CPTG +uid 332,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 333,0 +va (VaSet +) +xt "38000,22000,40600,23000" +st "aluOut" +blo "38000,22800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 334,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16600,27000,17400" +st "aluOut : OUT signed ( dataBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "aluOut" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 6 +suid 19,0 +) +) +) +*76 (CptPort +uid 388,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 389,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32384,16625,33134,17375" +) +tg (CPTG +uid 390,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 391,0 +va (VaSet +) +xt "34134,16500,36034,17500" +st "zero" +blo "34134,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 392,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,18200,15500,19000" +st "zero : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 20,0 +) +) +) +] +shape (Alu +uid 362,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,13000,47000,23000" +) +oxt "15000,6000,31000,32000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "40950,23000,44950,24000" +st "PicoBlaze" +blo "40950,23800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "40950,24000,42450,25000" +st "alu" +blo "40950,24800" +) +) +gi *77 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "41000,26000,55000,29200" +st "Generic Declarations + +aluCodeBitNb positive 5 +dataBitNb positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*78 (Grouping +uid 16,0 +optionalChildren [ +*79 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,42900,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,44200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,32300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,60400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,56800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37150,44500,43850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,32300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,32900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,43000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *89 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*91 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,26,1281,865" +viewArea "-3000,-1000,72402,50475" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *92 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *93 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,11400,3400,12400" +st "Declarations" +blo "-2000,12200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,12400,700,13400" +st "Ports:" +blo "-2000,13200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,19000,400,20000" +st "User:" +blo "-2000,19800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,11400,3800,12400" +st "Internal User:" +blo "-2000,12200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20000,0,20000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,11400,-2000,11400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 394,0 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/alu@and@regs/struct.bd b/Libs/NanoBlaze/hds/alu@and@regs/struct.bd new file mode 100644 index 0000000..669bf27 --- /dev/null +++ b/Libs/NanoBlaze/hds/alu@and@regs/struct.bd @@ -0,0 +1,6384 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_bSel" +duLibraryName "NanoBlaze" +duName "aluBOpSelector" +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +] +mwi 0 +uid 1828,0 +) +(Instance +name "I_regs" +duLibraryName "NanoBlaze" +duName "registerFile" +elements [ +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "registerBitNb" +) +] +mwi 0 +uid 1870,0 +) +(Instance +name "I_ALU" +duLibraryName "NanoBlaze" +duName "alu" +elements [ +(GiElement +name "aluCodeBitNb" +type "positive" +value "aluCodeBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "registerBitNb" +) +] +mwi 0 +uid 1908,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\aluAndRegs" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "aluAndRegs" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:44" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "aluAndRegs" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\aluAndRegs\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "07:38:44" +) +(vvPair +variable "unit" +value "aluAndRegs" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 356,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "67000,54625,68500,55375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "68500,55000,69000,55000" +pts [ +"68500,55000" +"69000,55000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "61500,54300,66000,55700" +st "addrA" +ju 2 +blo "66000,55500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,8400,20500,9600" +st "addrA : unsigned( registerAddressBitNb-1 DOWNTO 0 )" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "67000,56625,68500,57375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "68500,57000,69000,57000" +pts [ +"68500,57000" +"69000,57000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "61500,56300,66000,57700" +st "addrB" +ju 2 +blo "66000,57500" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,9600,20500,10800" +st "addrB : unsigned( registerAddressBitNb-1 DOWNTO 0 )" +) +) +*5 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 90 +xt "53500,54625,55000,55375" +) +(Line +uid 40,0 +sl 0 +ro 90 +xt "53000,55000,53500,55000" +pts [ +"53500,55000" +"53000,55000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "56000,54300,62000,55700" +st "aluCode" +blo "56000,55500" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 3 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,10800,21000,12000" +st "aluCode : std_ulogic_vector( aluCodeBitNb-1 DOWNTO 0 )" +) +) +*7 (PortIoIn +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 90 +xt "53500,56625,55000,57375" +) +(Line +uid 54,0 +sl 0 +ro 90 +xt "53000,57000,53500,57000" +pts [ +"53500,57000" +"53000,57000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "56000,56300,58700,57700" +st "cIn" +blo "56000,57500" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 63,0 +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,12000,3500,13200" +st "cIn : std_ulogic" +) +) +*9 (PortIoIn +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 270 +xt "67000,62625,68500,63375" +) +(Line +uid 68,0 +sl 0 +ro 270 +xt "68500,63000,69000,63000" +pts [ +"68500,63000" +"69000,63000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "62200,62300,66000,63700" +st "clock" +ju 2 +blo "66000,63500" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 77,0 +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,13200,3500,14400" +st "clock : std_ulogic" +) +) +*11 (PortIoOut +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 90 +xt "19000,56625,20500,57375" +) +(Line +uid 82,0 +sl 0 +ro 90 +xt "20500,57000,21000,57000" +pts [ +"21000,57000" +"20500,57000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "14300,56300,18000,57700" +st "cOut" +ju 2 +blo "18000,57500" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 91,0 +decl (Decl +n "cOut" +t "std_ulogic" +o 15 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,25200,3500,26400" +st "cOut : std_ulogic" +) +) +*13 (PortIoIn +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "43000,24625,44500,25375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "44500,25000,45000,25000" +pts [ +"44500,25000" +"45000,25000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "35400,24300,42000,25700" +st "instrData" +ju 2 +blo "42000,25500" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 105,0 +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,14400,16000,15600" +st "instrData : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*15 (PortIoIn +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "43000,26625,44500,27375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "44500,27000,45000,27000" +pts [ +"44500,27000" +"45000,27000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "32700,26300,42000,27700" +st "instrDataSel" +ju 2 +blo "42000,27500" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 119,0 +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,15600,3500,16800" +st "instrDataSel : std_ulogic" +) +) +*17 (PortIoOut +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "121500,32625,123000,33375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "121000,33000,121500,33000" +pts [ +"121000,33000" +"121500,33000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "124000,32300,130300,33700" +st "portAddr" +blo "124000,33500" +tm "WireNameMgr" +) +) +) +*18 (Net +uid 133,0 +decl (Decl +n "portAddr" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 16 +suid 9,0 +) +declText (MLText +uid 134,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,26400,17500,27600" +st "portAddr : unsigned(portAddressBitNb-1 DOWNTO 0)" +) +) +*19 (PortIoIn +uid 135,0 +shape (CompositeShape +uid 136,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 137,0 +sl 0 +ro 90 +xt "77500,24625,79000,25375" +) +(Line +uid 138,0 +sl 0 +ro 90 +xt "77000,25000,77500,25000" +pts [ +"77500,25000" +"77000,25000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 139,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 140,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,24300,84700,25700" +st "portIn" +blo "80000,25500" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 147,0 +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 10,0 +) +declText (MLText +uid 148,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,16800,16000,18000" +st "portIn : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*21 (PortIoIn +uid 149,0 +shape (CompositeShape +uid 150,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 151,0 +sl 0 +ro 90 +xt "77500,26625,79000,27375" +) +(Line +uid 152,0 +sl 0 +ro 90 +xt "77000,27000,77500,27000" +pts [ +"77500,27000" +"77000,27000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 153,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 154,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,26300,86600,27700" +st "portInSel" +blo "80000,27500" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 161,0 +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 11,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,18000,3500,19200" +st "portInSel : std_ulogic" +) +) +*23 (PortIoOut +uid 163,0 +shape (CompositeShape +uid 164,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 165,0 +sl 0 +ro 270 +xt "121500,46625,123000,47375" +) +(Line +uid 166,0 +sl 0 +ro 270 +xt "121000,47000,121500,47000" +pts [ +"121000,47000" +"121500,47000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 167,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 168,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "124000,46300,129700,47700" +st "portOut" +blo "124000,47500" +tm "WireNameMgr" +) +) +) +*24 (Net +uid 175,0 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 17 +suid 12,0 +) +declText (MLText +uid 176,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,27600,16000,28800" +st "portOut : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*25 (PortIoIn +uid 177,0 +shape (CompositeShape +uid 178,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 179,0 +sl 0 +ro 90 +xt "77500,38625,79000,39375" +) +(Line +uid 180,0 +sl 0 +ro 90 +xt "77000,39000,77500,39000" +pts [ +"77500,39000" +"77000,39000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 181,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 182,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,38300,90500,39700" +st "registerFileSel" +blo "80000,39500" +tm "WireNameMgr" +) +) +) +*26 (Net +uid 189,0 +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 13,0 +) +declText (MLText +uid 190,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,20400,3500,21600" +st "registerFileSel : std_ulogic" +) +) +*27 (PortIoIn +uid 191,0 +shape (CompositeShape +uid 192,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 193,0 +sl 0 +ro 270 +xt "67000,64625,68500,65375" +) +(Line +uid 194,0 +sl 0 +ro 270 +xt "68500,65000,69000,65000" +pts [ +"68500,65000" +"69000,65000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 195,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 196,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "61900,64300,66000,65700" +st "reset" +ju 2 +blo "66000,65500" +tm "WireNameMgr" +) +) +) +*28 (Net +uid 203,0 +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 14,0 +) +declText (MLText +uid 204,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,21600,3500,22800" +st "reset : std_ulogic" +) +) +*29 (PortIoIn +uid 205,0 +shape (CompositeShape +uid 206,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 207,0 +sl 0 +ro 90 +xt "77500,32625,79000,33375" +) +(Line +uid 208,0 +sl 0 +ro 90 +xt "77000,33000,77500,33000" +pts [ +"77500,33000" +"77000,33000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 209,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 210,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,32300,90400,33700" +st "scratchpadSel" +blo "80000,33500" +tm "WireNameMgr" +) +) +) +*30 (Net +uid 217,0 +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 15,0 +) +declText (MLText +uid 218,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,22800,3500,24000" +st "scratchpadSel : std_ulogic" +) +) +*31 (PortIoIn +uid 233,0 +shape (CompositeShape +uid 234,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 235,0 +sl 0 +ro 90 +xt "77500,30625,79000,31375" +) +(Line +uid 236,0 +sl 0 +ro 90 +xt "77000,31000,77500,31000" +pts [ +"77500,31000" +"77000,31000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 237,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 238,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,30300,85200,31700" +st "spadIn" +blo "80000,31500" +tm "WireNameMgr" +) +) +) +*32 (Net +uid 245,0 +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 17,0 +) +declText (MLText +uid 246,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,24000,16000,25200" +st "spadIn : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*33 (PortIoOut +uid 247,0 +shape (CompositeShape +uid 248,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 249,0 +sl 0 +ro 270 +xt "121500,48625,123000,49375" +) +(Line +uid 250,0 +sl 0 +ro 270 +xt "121000,49000,121500,49000" +pts [ +"121000,49000" +"121500,49000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 251,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "124000,48300,130200,49700" +st "spadOut" +blo "124000,49500" +tm "WireNameMgr" +) +) +) +*34 (Net +uid 259,0 +decl (Decl +n "spadOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 19 +suid 18,0 +) +declText (MLText +uid 260,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,30000,16000,31200" +st "spadOut : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*35 (PortIoOut +uid 261,0 +shape (CompositeShape +uid 262,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 263,0 +sl 0 +ro 90 +xt "19000,54625,20500,55375" +) +(Line +uid 264,0 +sl 0 +ro 90 +xt "20500,55000,21000,55000" +pts [ +"21000,55000" +"20500,55000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 265,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 266,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "14400,54300,18000,55700" +st "zero" +ju 2 +blo "18000,55500" +tm "WireNameMgr" +) +) +) +*36 (Net +uid 273,0 +decl (Decl +n "zero" +t "std_ulogic" +o 20 +suid 19,0 +) +declText (MLText +uid 274,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,31200,3500,32400" +st "zero : std_ulogic" +) +) +*37 (Grouping +uid 313,0 +optionalChildren [ +*38 (CommentText +uid 315,0 +shape (Rectangle +uid 316,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "96000,98000,113000,99000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 317,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "96200,98500,96200,98500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*39 (CommentText +uid 318,0 +shape (Rectangle +uid 319,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,94000,117000,95000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 320,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,94500,113200,94500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*40 (CommentText +uid 321,0 +shape (Rectangle +uid 322,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "96000,96000,113000,97000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 323,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "96200,96500,96200,96500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*41 (CommentText +uid 324,0 +shape (Rectangle +uid 325,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,96000,96000,97000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 326,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,96500,92200,96500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*42 (CommentText +uid 327,0 +shape (Rectangle +uid 328,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,95000,133000,99000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 329,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,95200,127300,96400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*43 (CommentText +uid 330,0 +shape (Rectangle +uid 331,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "117000,94000,133000,95000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 332,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "117200,94500,117200,94500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*44 (CommentText +uid 333,0 +shape (Rectangle +uid 334,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,94000,113000,96000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 335,0 +va (VaSet +fg "32768,0,0" +) +xt "97350,94400,107650,95600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*45 (CommentText +uid 336,0 +shape (Rectangle +uid 337,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,97000,96000,98000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 338,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,97500,92200,97500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*46 (CommentText +uid 339,0 +shape (Rectangle +uid 340,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,98000,96000,99000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 341,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,98500,92200,98500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*47 (CommentText +uid 342,0 +shape (Rectangle +uid 343,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "96000,97000,113000,98000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 344,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "96200,97500,96200,97500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 314,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "92000,94000,133000,99000" +) +oxt "14000,66000,55000,71000" +) +*48 (PortIoIn +uid 699,0 +shape (CompositeShape +uid 700,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 701,0 +sl 0 +ro 270 +xt "67000,58625,68500,59375" +) +(Line +uid 702,0 +sl 0 +ro 270 +xt "68500,59000,69000,59000" +pts [ +"68500,59000" +"69000,59000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 703,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 704,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "59700,58500,66000,59900" +st "regWrite" +ju 2 +blo "66000,59700" +tm "WireNameMgr" +) +) +) +*49 (Net +uid 711,0 +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 20,0 +) +declText (MLText +uid 712,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,19200,3500,20400" +st "regWrite : std_ulogic" +) +) +*50 (Net +uid 879,0 +decl (Decl +n "opA" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 22 +suid 21,0 +) +declText (MLText +uid 880,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,34600,18500,35800" +st "SIGNAL opA : signed(registerBitNb-1 DOWNTO 0)" +) +) +*51 (Net +uid 887,0 +decl (Decl +n "opB" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 23 +suid 22,0 +) +declText (MLText +uid 888,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,35800,18500,37000" +st "SIGNAL opB : signed(registerBitNb-1 DOWNTO 0)" +) +) +*52 (Net +uid 970,0 +decl (Decl +n "aluOut" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 21 +suid 23,0 +) +declText (MLText +uid 971,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,33400,18500,34600" +st "SIGNAL aluOut : signed(registerBitNb-1 DOWNTO 0)" +) +) +*53 (Net +uid 1269,0 +decl (Decl +n "registerFileIn" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 24 +suid 25,0 +) +declText (MLText +uid 1270,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,37000,18500,38200" +st "SIGNAL registerFileIn : signed(registerBitNb-1 DOWNTO 0)" +) +) +*54 (HdlText +uid 1431,0 +optionalChildren [ +*55 (EmbeddedText +uid 1437,0 +commentText (CommentText +uid 1438,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1439,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "101000,44000,113000,52000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1440,0 +va (VaSet +) +xt "101200,44200,111300,46600" +st " +portOut <= opA; +spadOut <= opA; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 12000 +) +) +) +] +shape (Rectangle +uid 1432,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "101000,43000,113000,53000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1433,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +uid 1434,0 +va (VaSet +font "Arial,8,1" +) +xt "101150,53000,102850,54000" +st "eb1" +blo "101150,53800" +tm "HdlTextNameMgr" +) +*57 (Text +uid 1435,0 +va (VaSet +font "Arial,8,1" +) +xt "101150,54000,101950,55000" +st "1" +blo "101150,54800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 1436,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "101250,51250,102750,52750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*58 (HdlText +uid 1441,0 +optionalChildren [ +*59 (EmbeddedText +uid 1447,0 +commentText (CommentText +uid 1448,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1449,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "101000,30000,113000,38000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1450,0 +va (VaSet +) +xt "101200,30200,112600,37400" +st " +portAddr <= resize(unsigned(registerFileIn), portAddressBitNb); +scratchpadAddr <= resize(unsigned(registerFileIn), scratchpadAddressBitNb); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 12000 +) +) +) +] +shape (Rectangle +uid 1442,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "101000,29000,113000,39000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1443,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 1444,0 +va (VaSet +font "Arial,8,1" +) +xt "101150,39000,102850,40000" +st "eb2" +blo "101150,39800" +tm "HdlTextNameMgr" +) +*61 (Text +uid 1445,0 +va (VaSet +font "Arial,8,1" +) +xt "101150,40000,101950,41000" +st "2" +blo "101150,40800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 1446,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "101250,37250,102750,38750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*62 (PortIoOut +uid 1494,0 +shape (CompositeShape +uid 1495,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1496,0 +sl 0 +ro 270 +xt "121500,34625,123000,35375" +) +(Line +uid 1497,0 +sl 0 +ro 270 +xt "121000,35000,121500,35000" +pts [ +"121000,35000" +"121500,35000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1498,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1499,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "122000,35300,133400,36700" +st "scratchpadAddr" +blo "122000,36500" +tm "WireNameMgr" +) +) +) +*63 (Net +uid 1506,0 +decl (Decl +n "scratchpadAddr" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 18 +suid 26,0 +) +declText (MLText +uid 1507,0 +va (VaSet +font "Courier New,9,0" +) +xt "-12000,28800,20500,30000" +st "scratchpadAddr : unsigned(scratchpadAddressBitNb-1 DOWNTO 0)" +) +) +*64 (SaComponent +uid 1828,0 +optionalChildren [ +*65 (CptPort +uid 1792,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1793,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,24625,53000,25375" +) +tg (CPTG +uid 1794,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1795,0 +va (VaSet +) +xt "54000,24500,57500,25500" +st "instrData" +blo "54000,25300" +) +) +thePort (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 1,0 +) +) +) +*66 (CptPort +uid 1796,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1797,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,26625,53000,27375" +) +tg (CPTG +uid 1798,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1799,0 +va (VaSet +) +xt "54000,26500,59000,27500" +st "instrDataSel" +blo "54000,27300" +) +) +thePort (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*67 (CptPort +uid 1800,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1801,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,30625,53000,31375" +) +tg (CPTG +uid 1802,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1803,0 +va (VaSet +) +xt "54000,30500,55700,31500" +st "opB" +blo "54000,31300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "opB" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 22 +suid 3,0 +) +) +) +*68 (CptPort +uid 1804,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1805,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,24625,69750,25375" +) +tg (CPTG +uid 1806,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1807,0 +va (VaSet +) +xt "65700,24500,68000,25500" +st "portIn" +ju 2 +blo "68000,25300" +) +) +thePort (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 4,0 +) +) +) +*69 (CptPort +uid 1808,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1809,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,26625,69750,27375" +) +tg (CPTG +uid 1810,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1811,0 +va (VaSet +) +xt "64600,26500,68000,27500" +st "portInSel" +ju 2 +blo "68000,27300" +) +) +thePort (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 5,0 +) +) +) +*70 (CptPort +uid 1812,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1813,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,36625,69750,37375" +) +tg (CPTG +uid 1814,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1815,0 +va (VaSet +) +xt "62600,36500,68000,37500" +st "registerFileIn" +ju 2 +blo "68000,37300" +) +) +thePort (LogicalPort +decl (Decl +n "registerFileIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 23 +suid 6,0 +) +) +) +*71 (CptPort +uid 1816,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1817,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,38625,69750,39375" +) +tg (CPTG +uid 1818,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1819,0 +va (VaSet +) +xt "62100,38500,68000,39500" +st "registerFileSel" +ju 2 +blo "68000,39300" +) +) +thePort (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 7,0 +) +) +) +*72 (CptPort +uid 1820,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1821,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,32625,69750,33375" +) +tg (CPTG +uid 1822,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1823,0 +va (VaSet +) +xt "62400,32500,68000,33500" +st "scratchpadSel" +ju 2 +blo "68000,33300" +) +) +thePort (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 8,0 +) +) +) +*73 (CptPort +uid 1824,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1825,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,30625,69750,31375" +) +tg (CPTG +uid 1826,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1827,0 +va (VaSet +) +xt "65400,30500,68000,31500" +st "spadIn" +ju 2 +blo "68000,31300" +) +) +thePort (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 1829,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "53000,21000,69000,43000" +) +oxt "39000,13000,55000,35000" +ttg (MlTextGroup +uid 1830,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +uid 1831,0 +va (VaSet +font "Arial,8,1" +) +xt "53700,43000,58100,44000" +st "NanoBlaze" +blo "53700,43800" +tm "BdLibraryNameMgr" +) +*75 (Text +uid 1832,0 +va (VaSet +font "Arial,8,1" +) +xt "53700,44000,60300,45000" +st "aluBOpSelector" +blo "53700,44800" +tm "CptNameMgr" +) +*76 (Text +uid 1833,0 +va (VaSet +font "Arial,8,1" +) +xt "53700,45000,56300,46000" +st "I_bSel" +blo "53700,45800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1834,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1835,0 +text (MLText +uid 1836,0 +va (VaSet +font "Courier New,8,0" +) +xt "53000,46200,78500,47000" +st "registerBitNb = registerBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +] +) +viewicon (ZoomableIcon +uid 1837,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "53250,41250,54750,42750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*77 (SaComponent +uid 1870,0 +optionalChildren [ +*78 (CptPort +uid 1838,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1839,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76250,54625,77000,55375" +) +tg (CPTG +uid 1840,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1841,0 +va (VaSet +) +xt "78000,54500,80400,55500" +st "addrA" +blo "78000,55300" +) +) +thePort (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +) +*79 (CptPort +uid 1842,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1843,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76250,56625,77000,57375" +) +tg (CPTG +uid 1844,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1845,0 +va (VaSet +) +xt "78000,56500,80400,57500" +st "addrB" +blo "78000,57300" +) +) +thePort (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2,0 +) +) +) +*80 (CptPort +uid 1846,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1847,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84625,67000,85375,67750" +) +tg (CPTG +uid 1848,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1849,0 +va (VaSet +) +xt "84000,65000,88500,66000" +st "registersIn" +blo "84000,65800" +) +) +thePort (LogicalPort +decl (Decl +n "registersIn" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 22 +suid 3,0 +) +) +) +*81 (CptPort +uid 1850,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1851,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76250,62625,77000,63375" +) +tg (CPTG +uid 1852,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1853,0 +va (VaSet +) +xt "78000,62500,80100,63500" +st "clock" +blo "78000,63300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*82 (CptPort +uid 1854,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1855,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80625,50250,81375,51000" +) +tg (CPTG +uid 1856,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1857,0 +va (VaSet +) +xt "80000,52000,81700,53000" +st "opA" +ju 2 +blo "81700,52800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "opA" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 21 +suid 5,0 +) +) +) +*83 (CptPort +uid 1858,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1859,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88625,50250,89375,51000" +) +tg (CPTG +uid 1860,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1861,0 +va (VaSet +) +xt "88000,52000,89700,53000" +st "opB" +ju 2 +blo "89700,52800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "opB" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 22 +suid 6,0 +) +) +) +*84 (CptPort +uid 1862,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1863,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76250,58625,77000,59375" +) +tg (CPTG +uid 1864,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1865,0 +va (VaSet +) +xt "78000,58500,81400,59500" +st "regWrite" +blo "78000,59300" +) +) +thePort (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 7,0 +) +) +) +*85 (CptPort +uid 1866,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1867,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76250,64625,77000,65375" +) +tg (CPTG +uid 1868,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1869,0 +va (VaSet +) +xt "78000,64500,80100,65500" +st "reset" +blo "78000,65300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1871,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "77000,51000,93000,67000" +) +oxt "39000,13000,55000,29000" +ttg (MlTextGroup +uid 1872,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 1873,0 +va (VaSet +font "Arial,8,1" +) +xt "77550,67000,81950,68000" +st "NanoBlaze" +blo "77550,67800" +tm "BdLibraryNameMgr" +) +*87 (Text +uid 1874,0 +va (VaSet +font "Arial,8,1" +) +xt "77550,68000,82450,69000" +st "registerFile" +blo "77550,68800" +tm "CptNameMgr" +) +*88 (Text +uid 1875,0 +va (VaSet +font "Arial,8,1" +) +xt "77550,69000,80150,70000" +st "I_regs" +blo "77550,69800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1876,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1877,0 +text (MLText +uid 1878,0 +va (VaSet +font "Courier New,8,0" +) +xt "77000,70200,109500,71800" +st "registerAddressBitNb = registerAddressBitNb ( positive ) +dataBitNb = registerBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "registerBitNb" +) +] +) +viewicon (ZoomableIcon +uid 1879,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "77250,65250,78750,66750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*89 (SaComponent +uid 1908,0 +optionalChildren [ +*90 (CptPort +uid 1880,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1881,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,50250,33375,51000" +) +tg (CPTG +uid 1882,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1883,0 +va (VaSet +) +xt "32000,51000,33700,52000" +st "opA" +blo "32000,51800" +) +) +thePort (LogicalPort +decl (Decl +n "opA" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 1 +suid 3,0 +) +) +) +*91 (CptPort +uid 1884,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1885,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41801,56625,42551,57375" +) +tg (CPTG +uid 1886,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1887,0 +va (VaSet +) +xt "39401,56500,40801,57500" +st "cIn" +ju 2 +blo "40801,57300" +) +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 2 +suid 8,0 +) +) +) +*92 (CptPort +uid 1888,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1889,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31450,56625,32200,57375" +) +tg (CPTG +uid 1890,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1891,0 +va (VaSet +) +xt "33200,56500,35200,57500" +st "cOut" +blo "33200,57300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 3 +suid 11,0 +) +) +) +*93 (CptPort +uid 1892,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1893,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42867,54625,43617,55375" +) +tg (CPTG +uid 1894,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1895,0 +va (VaSet +) +xt "39800,54500,43000,55500" +st "aluCode" +ju 2 +blo "43000,55300" +) +) +thePort (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 4 +suid 13,0 +) +) +) +*94 (CptPort +uid 1896,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1897,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,50250,41375,51000" +) +tg (CPTG +uid 1898,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1899,0 +va (VaSet +) +xt "40000,51000,41700,52000" +st "opB" +blo "40000,51800" +) +) +thePort (LogicalPort +decl (Decl +n "opB" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 18,0 +) +) +) +*95 (CptPort +uid 1900,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1901,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,61000,37375,61750" +) +tg (CPTG +uid 1902,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1903,0 +va (VaSet +) +xt "36000,60000,38600,61000" +st "aluOut" +blo "36000,60800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "aluOut" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 6 +suid 19,0 +) +) +) +*96 (CptPort +uid 1904,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1905,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30384,54625,31134,55375" +) +tg (CPTG +uid 1906,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1907,0 +va (VaSet +) +xt "32134,54500,34034,55500" +st "zero" +blo "32134,55300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 20,0 +) +) +) +] +shape (Alu +uid 1909,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "29000,51000,45000,61000" +) +oxt "31000,13000,47000,23000" +ttg (MlTextGroup +uid 1910,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +uid 1911,0 +va (VaSet +font "Arial,8,1" +) +xt "38950,61000,43350,62000" +st "NanoBlaze" +blo "38950,61800" +tm "BdLibraryNameMgr" +) +*98 (Text +uid 1912,0 +va (VaSet +font "Arial,8,1" +) +xt "38950,62000,40450,63000" +st "alu" +blo "38950,62800" +tm "CptNameMgr" +) +*99 (Text +uid 1913,0 +va (VaSet +font "Arial,8,1" +) +xt "38950,63000,41550,64000" +st "I_ALU" +blo "38950,63800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1914,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1915,0 +text (MLText +uid 1916,0 +va (VaSet +font "Courier New,8,0" +) +xt "39000,64000,64000,65600" +st "aluCodeBitNb = aluCodeBitNb ( positive ) +dataBitNb = registerBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "aluCodeBitNb" +type "positive" +value "aluCodeBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "registerBitNb" +) +] +) +viewicon (ZoomableIcon +uid 1917,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "29250,59250,30750,60750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*100 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69000,55000,76250,55000" +pts [ +"69000,55000" +"76250,55000" +] +) +start &1 +end &78 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,53600,74500,55000" +st "addrA" +blo "70000,54800" +tm "WireNameMgr" +) +) +on &2 +) +*101 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69000,57000,76250,57000" +pts [ +"69000,57000" +"76250,57000" +] +) +start &3 +end &79 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,55600,74500,57000" +st "addrB" +blo "70000,56800" +tm "WireNameMgr" +) +) +on &4 +) +*102 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "43617,55000,53000,55000" +pts [ +"53000,55000" +"43617,55000" +] +) +start &5 +end &93 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,53600,54000,55000" +st "aluCode" +blo "48000,54800" +tm "WireNameMgr" +) +) +on &6 +) +*103 (Wire +uid 57,0 +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +) +xt "42551,57000,53000,57000" +pts [ +"53000,57000" +"42551,57000" +] +) +start &7 +end &91 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +font "Verdana,12,0" +) +xt "51000,55600,53700,57000" +st "cIn" +blo "51000,56800" +tm "WireNameMgr" +) +) +on &8 +) +*104 (Wire +uid 71,0 +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +) +xt "69000,63000,76250,63000" +pts [ +"69000,63000" +"76250,63000" +] +) +start &9 +end &81 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,61600,74800,63000" +st "clock" +blo "71000,62800" +tm "WireNameMgr" +) +) +on &10 +) +*105 (Wire +uid 85,0 +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +) +xt "21000,57000,31450,57000" +pts [ +"21000,57000" +"31450,57000" +] +) +start &11 +end &92 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,55600,24700,57000" +st "cOut" +blo "21000,56800" +tm "WireNameMgr" +) +) +on &12 +) +*106 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "45000,25000,52250,25000" +pts [ +"45000,25000" +"52250,25000" +] +) +start &13 +end &65 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +font "Verdana,12,0" +) +xt "45000,23600,51600,25000" +st "instrData" +blo "45000,24800" +tm "WireNameMgr" +) +) +on &14 +) +*107 (Wire +uid 113,0 +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +) +xt "45000,27000,52250,27000" +pts [ +"45000,27000" +"52250,27000" +] +) +start &15 +end &66 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,25600,53300,27000" +st "instrDataSel" +blo "44000,26800" +tm "WireNameMgr" +) +) +on &16 +) +*108 (Wire +uid 127,0 +shape (OrthoPolyLine +uid 128,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "113000,33000,121000,33000" +pts [ +"121000,33000" +"113000,33000" +] +) +start &17 +end &58 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +font "Verdana,12,0" +) +xt "116000,31600,122300,33000" +st "portAddr" +blo "116000,32800" +tm "WireNameMgr" +) +) +on &18 +) +*109 (Wire +uid 141,0 +shape (OrthoPolyLine +uid 142,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69750,25000,77000,25000" +pts [ +"77000,25000" +"69750,25000" +] +) +start &19 +end &68 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 145,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 146,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,23600,78700,25000" +st "portIn" +blo "74000,24800" +tm "WireNameMgr" +) +) +on &20 +) +*110 (Wire +uid 155,0 +shape (OrthoPolyLine +uid 156,0 +va (VaSet +vasetType 3 +) +xt "69750,27000,77000,27000" +pts [ +"77000,27000" +"69750,27000" +] +) +start &21 +end &69 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 159,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 160,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,25600,78600,27000" +st "portInSel" +blo "72000,26800" +tm "WireNameMgr" +) +) +on &22 +) +*111 (Wire +uid 169,0 +shape (OrthoPolyLine +uid 170,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "113000,47000,121000,47000" +pts [ +"121000,47000" +"117000,47000" +"113000,47000" +] +) +start &23 +end &54 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 173,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 174,0 +va (VaSet +font "Verdana,12,0" +) +xt "117000,45600,122700,47000" +st "portOut" +blo "117000,46800" +tm "WireNameMgr" +) +) +on &24 +) +*112 (Wire +uid 183,0 +shape (OrthoPolyLine +uid 184,0 +va (VaSet +vasetType 3 +) +xt "69750,39000,77000,39000" +pts [ +"77000,39000" +"69750,39000" +] +) +start &25 +end &71 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 187,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 188,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,37600,80500,39000" +st "registerFileSel" +blo "70000,38800" +tm "WireNameMgr" +) +) +on &26 +) +*113 (Wire +uid 197,0 +shape (OrthoPolyLine +uid 198,0 +va (VaSet +vasetType 3 +) +xt "69000,65000,76250,65000" +pts [ +"69000,65000" +"76250,65000" +] +) +start &27 +end &85 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 201,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 202,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,63600,74100,65000" +st "reset" +blo "70000,64800" +tm "WireNameMgr" +) +) +on &28 +) +*114 (Wire +uid 211,0 +shape (OrthoPolyLine +uid 212,0 +va (VaSet +vasetType 3 +) +xt "69750,33000,77000,33000" +pts [ +"77000,33000" +"69750,33000" +] +) +start &29 +end &72 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 215,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 216,0 +va (VaSet +font "Verdana,12,0" +) +xt "70000,31600,80400,33000" +st "scratchpadSel" +blo "70000,32800" +tm "WireNameMgr" +) +) +on &30 +) +*115 (Wire +uid 239,0 +shape (OrthoPolyLine +uid 240,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69750,31000,77000,31000" +pts [ +"77000,31000" +"69750,31000" +] +) +start &31 +end &73 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 243,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 244,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,29600,78200,31000" +st "spadIn" +blo "73000,30800" +tm "WireNameMgr" +) +) +on &32 +) +*116 (Wire +uid 253,0 +shape (OrthoPolyLine +uid 254,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "113000,49000,121000,49000" +pts [ +"121000,49000" +"117000,49000" +"113000,49000" +] +) +start &33 +end &54 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 257,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 258,0 +va (VaSet +font "Verdana,12,0" +) +xt "117000,47600,123200,49000" +st "spadOut" +blo "117000,48800" +tm "WireNameMgr" +) +) +on &34 +) +*117 (Wire +uid 267,0 +shape (OrthoPolyLine +uid 268,0 +va (VaSet +vasetType 3 +) +xt "21000,55000,30384,55000" +pts [ +"21000,55000" +"30384,55000" +] +) +start &35 +end &96 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 271,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 272,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,53600,24600,55000" +st "zero" +blo "21000,54800" +tm "WireNameMgr" +) +) +on &36 +) +*118 (Wire +uid 705,0 +shape (OrthoPolyLine +uid 706,0 +va (VaSet +vasetType 3 +) +xt "69000,59000,76250,59000" +pts [ +"69000,59000" +"76250,59000" +] +) +start &48 +end &84 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 709,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 710,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,57600,75300,59000" +st "regWrite" +blo "69000,58800" +tm "WireNameMgr" +) +) +on &49 +) +*119 (Wire +uid 881,0 +optionalChildren [ +*120 (BdJunction +uid 1429,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1430,0 +va (VaSet +vasetType 1 +) +xt "80600,46600,81400,47400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 882,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "33000,47000,81000,50250" +pts [ +"33000,50250" +"33000,47000" +"81000,47000" +"81000,50250" +] +) +start &90 +end &82 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 885,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 886,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "31600,46250,33000,49450" +st "opA" +blo "32800,49450" +tm "WireNameMgr" +) +) +on &50 +) +*121 (Wire +uid 889,0 +shape (OrthoPolyLine +uid 890,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41000,31000,52250,50250" +pts [ +"41000,50250" +"41000,31000" +"52250,31000" +] +) +start &94 +end &67 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 893,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 894,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "39600,46250,41000,49450" +st "opB" +blo "40800,49450" +tm "WireNameMgr" +) +) +on &51 +) +*122 (Wire +uid 972,0 +shape (OrthoPolyLine +uid 973,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "37000,61750,85000,71000" +pts [ +"37000,61750" +"37000,71000" +"85000,71000" +"85000,67750" +] +) +start &95 +end &80 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 976,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 977,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "35600,63750,37000,68750" +st "aluOut" +blo "36800,68750" +tm "WireNameMgr" +) +) +on &52 +) +*123 (Wire +uid 1263,0 +optionalChildren [ +*124 (BdJunction +uid 1457,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1458,0 +va (VaSet +vasetType 1 +) +xt "88600,36600,89400,37400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1264,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69750,37000,89000,50250" +pts [ +"89000,50250" +"89000,37000" +"69750,37000" +] +) +start &83 +end &70 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 1267,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1268,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,35600,81900,37000" +st "registerFileIn" +blo "72000,36800" +tm "WireNameMgr" +) +) +on &53 +) +*125 (Wire +uid 1423,0 +shape (OrthoPolyLine +uid 1424,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "81000,47000,101000,47000" +pts [ +"81000,47000" +"101000,47000" +] +) +start &120 +end &54 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1427,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1428,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,45600,100200,47000" +st "opA" +blo "97000,46800" +tm "WireNameMgr" +) +) +on &50 +) +*126 (Wire +uid 1451,0 +shape (OrthoPolyLine +uid 1452,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "89000,35000,101000,37000" +pts [ +"89000,37000" +"89000,35000" +"101000,35000" +] +) +start &124 +end &58 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1455,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1456,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,33600,98900,35000" +st "registerFileIn" +blo "89000,34800" +tm "WireNameMgr" +) +) +on &53 +) +*127 (Wire +uid 1500,0 +shape (OrthoPolyLine +uid 1501,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "113000,35000,121000,35000" +pts [ +"113000,35000" +"121000,35000" +] +) +start &58 +end &62 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1504,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1505,0 +va (VaSet +font "Verdana,12,0" +) +xt "113000,33600,124400,35000" +st "scratchpadAddr" +blo "113000,34800" +tm "WireNameMgr" +) +) +on &63 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *128 (PackageList +uid 345,0 +stg "VerticalLayoutStrategy" +textVec [ +*129 (Text +uid 346,0 +va (VaSet +font "arial,8,1" +) +xt "-14000,0,-8600,1000" +st "Package List" +blo "-14000,800" +) +*130 (MLText +uid 347,0 +va (VaSet +) +xt "-14000,1000,3500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 348,0 +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +uid 349,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*132 (Text +uid 350,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*133 (MLText +uid 351,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*134 (Text +uid 352,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*135 (MLText +uid 353,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*136 (Text +uid 354,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*137 (MLText +uid 355,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "148,33,1411,899" +viewArea "-16102,-2119,135916,103304" +cachedDiagramExtent "-14000,0,133400,99000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-14000,0" +lastUid 2057,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*138 (Text +va (VaSet +font "Verdana,12,0" +) +xt "750,2900,7250,4300" +st "" +blo "750,4100" +tm "BdLibraryNameMgr" +) +*139 (Text +va (VaSet +font "Verdana,12,0" +) +xt "750,4300,6550,5700" +st "" +blo "750,5500" +tm "BlkNameMgr" +) +*140 (Text +va (VaSet +font "Verdana,12,0" +) +xt "750,5700,4050,7100" +st "U_0" +blo "750,6900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "750,12900,750,12900" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1450,0,9450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*141 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-950,3200,3450,4400" +st "Library" +blo "-950,4200" +) +*142 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-950,4400,8950,5600" +st "MWComponent" +blo "-950,5400" +) +*143 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-950,5600,1850,6800" +st "U_0" +blo "-950,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7950,1200,-7950,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*144 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-650,3200,3750,4400" +st "Library" +blo "-650,4200" +tm "BdLibraryNameMgr" +) +*145 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-650,4400,8650,5600" +st "SaComponent" +blo "-650,5400" +tm "CptNameMgr" +) +*146 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-650,5600,2150,6800" +st "U_0" +blo "-650,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7650,1200,-7650,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*147 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1150,3200,3250,4400" +st "Library" +blo "-1150,4200" +) +*148 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1150,4400,9150,5600" +st "VhdlComponent" +blo "-1150,5400" +) +*149 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1150,5600,1650,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2350,0,10350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*150 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1850,3200,2550,4400" +st "Library" +blo "-1850,4200" +) +*151 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1850,4400,9850,5600" +st "VerilogComponent" +blo "-1850,5400" +) +*152 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1850,5600,950,6800" +st "U_0" +blo "-1850,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8850,1200,-8850,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*153 (Text +va (VaSet +font "Arial,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*154 (Text +va (VaSet +font "Arial,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-750,-600,750,600" +st "G" +blo "-750,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*155 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*156 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*157 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*158 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,9,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-14000,6400,-8600,7400" +st "Declarations" +blo "-14000,7200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-14000,7400,-11300,8400" +st "Ports:" +blo "-14000,8200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-14000,6400,-10200,7400" +st "Pre User:" +blo "-14000,7200" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-14000,6400,-14000,6400" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "-14000,32400,-6900,33400" +st "Diagram Signals:" +blo "-14000,33200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-14000,6400,-9300,7400" +st "Post User:" +blo "-14000,7200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-14000,6400,-14000,6400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 26,0 +usingSuid 1 +emptyRow *159 (LEmptyRow +) +uid 358,0 +optionalChildren [ +*160 (RefLabelRowHdr +) +*161 (TitleRowHdr +) +*162 (FilterRowHdr +) +*163 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*164 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*165 (GroupColHdr +tm "GroupColHdrMgr" +) +*166 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*167 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*168 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*169 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*170 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*171 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*172 (LeafLogPort +port (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +uid 275,0 +) +*173 (LeafLogPort +port (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2,0 +) +) +uid 277,0 +) +*174 (LeafLogPort +port (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 3 +suid 3,0 +) +) +uid 279,0 +) +*175 (LeafLogPort +port (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 281,0 +) +*176 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 283,0 +) +*177 (LeafLogPort +port (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 7,0 +) +) +uid 285,0 +) +*178 (LeafLogPort +port (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 8,0 +) +) +uid 287,0 +) +*179 (LeafLogPort +port (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 10,0 +) +) +uid 289,0 +) +*180 (LeafLogPort +port (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 11,0 +) +) +uid 291,0 +) +*181 (LeafLogPort +port (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 13,0 +) +) +uid 293,0 +) +*182 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 14,0 +) +) +uid 295,0 +) +*183 (LeafLogPort +port (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 15,0 +) +) +uid 297,0 +) +*184 (LeafLogPort +port (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 17,0 +) +) +uid 299,0 +) +*185 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 15 +suid 6,0 +) +) +uid 301,0 +) +*186 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "portAddr" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 16 +suid 9,0 +) +) +uid 303,0 +) +*187 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 17 +suid 12,0 +) +) +uid 305,0 +) +*188 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "spadOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 19 +suid 18,0 +) +) +uid 309,0 +) +*189 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 20 +suid 19,0 +) +) +uid 311,0 +) +*190 (LeafLogPort +port (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 20,0 +) +) +uid 698,0 +) +*191 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "opA" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 22 +suid 21,0 +) +) +uid 895,0 +) +*192 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "opB" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 23 +suid 22,0 +) +) +uid 897,0 +) +*193 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aluOut" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 21 +suid 23,0 +) +) +uid 978,0 +) +*194 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "registerFileIn" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 24 +suid 25,0 +) +) +uid 1271,0 +) +*195 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "scratchpadAddr" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 18 +suid 26,0 +) +) +uid 1493,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 371,0 +optionalChildren [ +*196 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *197 (MRCItem +litem &159 +pos 24 +dimension 20 +) +uid 373,0 +optionalChildren [ +*198 (MRCItem +litem &160 +pos 0 +dimension 20 +uid 374,0 +) +*199 (MRCItem +litem &161 +pos 1 +dimension 23 +uid 375,0 +) +*200 (MRCItem +litem &162 +pos 2 +hidden 1 +dimension 20 +uid 376,0 +) +*201 (MRCItem +litem &172 +pos 0 +dimension 20 +uid 276,0 +) +*202 (MRCItem +litem &173 +pos 1 +dimension 20 +uid 278,0 +) +*203 (MRCItem +litem &174 +pos 2 +dimension 20 +uid 280,0 +) +*204 (MRCItem +litem &175 +pos 3 +dimension 20 +uid 282,0 +) +*205 (MRCItem +litem &176 +pos 4 +dimension 20 +uid 284,0 +) +*206 (MRCItem +litem &177 +pos 5 +dimension 20 +uid 286,0 +) +*207 (MRCItem +litem &178 +pos 6 +dimension 20 +uid 288,0 +) +*208 (MRCItem +litem &179 +pos 7 +dimension 20 +uid 290,0 +) +*209 (MRCItem +litem &180 +pos 8 +dimension 20 +uid 292,0 +) +*210 (MRCItem +litem &181 +pos 9 +dimension 20 +uid 294,0 +) +*211 (MRCItem +litem &182 +pos 10 +dimension 20 +uid 296,0 +) +*212 (MRCItem +litem &183 +pos 11 +dimension 20 +uid 298,0 +) +*213 (MRCItem +litem &184 +pos 12 +dimension 20 +uid 300,0 +) +*214 (MRCItem +litem &185 +pos 13 +dimension 20 +uid 302,0 +) +*215 (MRCItem +litem &186 +pos 14 +dimension 20 +uid 304,0 +) +*216 (MRCItem +litem &187 +pos 15 +dimension 20 +uid 306,0 +) +*217 (MRCItem +litem &188 +pos 16 +dimension 20 +uid 310,0 +) +*218 (MRCItem +litem &189 +pos 17 +dimension 20 +uid 312,0 +) +*219 (MRCItem +litem &190 +pos 18 +dimension 20 +uid 697,0 +) +*220 (MRCItem +litem &191 +pos 20 +dimension 20 +uid 896,0 +) +*221 (MRCItem +litem &192 +pos 21 +dimension 20 +uid 898,0 +) +*222 (MRCItem +litem &193 +pos 22 +dimension 20 +uid 979,0 +) +*223 (MRCItem +litem &194 +pos 23 +dimension 20 +uid 1272,0 +) +*224 (MRCItem +litem &195 +pos 19 +dimension 20 +uid 1492,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 377,0 +optionalChildren [ +*225 (MRCItem +litem &163 +pos 0 +dimension 20 +uid 378,0 +) +*226 (MRCItem +litem &165 +pos 1 +dimension 50 +uid 379,0 +) +*227 (MRCItem +litem &166 +pos 2 +dimension 100 +uid 380,0 +) +*228 (MRCItem +litem &167 +pos 3 +dimension 50 +uid 381,0 +) +*229 (MRCItem +litem &168 +pos 4 +dimension 100 +uid 382,0 +) +*230 (MRCItem +litem &169 +pos 5 +dimension 100 +uid 383,0 +) +*231 (MRCItem +litem &170 +pos 6 +dimension 50 +uid 384,0 +) +*232 (MRCItem +litem &171 +pos 7 +dimension 80 +uid 385,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 372,0 +vaOverrides [ +] +) +] +) +uid 357,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *233 (LEmptyRow +) +uid 387,0 +optionalChildren [ +*234 (RefLabelRowHdr +) +*235 (TitleRowHdr +) +*236 (FilterRowHdr +) +*237 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*238 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*239 (GroupColHdr +tm "GroupColHdrMgr" +) +*240 (NameColHdr +tm "GenericNameColHdrMgr" +) +*241 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*242 (InitColHdr +tm "GenericValueColHdrMgr" +) +*243 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*244 (EolColHdr +tm "GenericEolColHdrMgr" +) +*245 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 570,0 +) +*246 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 572,0 +) +*247 (LogGeneric +generic (GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +uid 574,0 +) +*248 (LogGeneric +generic (GiElement +name "scratchpadAddressBitNb" +type "natural" +value "4" +) +uid 1579,0 +) +*249 (LogGeneric +generic (GiElement +name "portAddressBitNb" +type "positive" +value "8" +) +uid 1651,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 399,0 +optionalChildren [ +*250 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *251 (MRCItem +litem &233 +pos 5 +dimension 20 +) +uid 401,0 +optionalChildren [ +*252 (MRCItem +litem &234 +pos 0 +dimension 20 +uid 402,0 +) +*253 (MRCItem +litem &235 +pos 1 +dimension 23 +uid 403,0 +) +*254 (MRCItem +litem &236 +pos 2 +hidden 1 +dimension 20 +uid 404,0 +) +*255 (MRCItem +litem &245 +pos 0 +dimension 20 +uid 569,0 +) +*256 (MRCItem +litem &246 +pos 1 +dimension 20 +uid 571,0 +) +*257 (MRCItem +litem &247 +pos 2 +dimension 20 +uid 573,0 +) +*258 (MRCItem +litem &248 +pos 4 +dimension 20 +uid 1578,0 +) +*259 (MRCItem +litem &249 +pos 3 +dimension 20 +uid 1650,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 405,0 +optionalChildren [ +*260 (MRCItem +litem &237 +pos 0 +dimension 20 +uid 406,0 +) +*261 (MRCItem +litem &239 +pos 1 +dimension 50 +uid 407,0 +) +*262 (MRCItem +litem &240 +pos 2 +dimension 100 +uid 408,0 +) +*263 (MRCItem +litem &241 +pos 3 +dimension 100 +uid 409,0 +) +*264 (MRCItem +litem &242 +pos 4 +dimension 50 +uid 410,0 +) +*265 (MRCItem +litem &243 +pos 5 +dimension 50 +uid 411,0 +) +*266 (MRCItem +litem &244 +pos 6 +dimension 80 +uid 412,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 400,0 +vaOverrides [ +] +) +] +) +uid 386,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/NanoBlaze/hds/alu@and@regs/symbol.sb b/Libs/NanoBlaze/hds/alu@and@regs/symbol.sb new file mode 100644 index 0000000..fa515f9 --- /dev/null +++ b/Libs/NanoBlaze/hds/alu@and@regs/symbol.sb @@ -0,0 +1,2652 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 24,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 1,0 +) +) +uid 76,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 3 +suid 2,0 +) +) +uid 78,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 3,0 +) +) +uid 80,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 4,0 +) +) +uid 82,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "portAddr" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 16 +suid 5,0 +) +) +uid 84,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 9,0 +) +) +uid 415,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 10,0 +) +) +uid 417,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 11,0 +) +) +uid 419,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 12,0 +) +) +uid 451,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 13,0 +) +) +uid 453,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 14,0 +) +) +uid 455,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 15,0 +) +) +uid 457,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 15 +suid 16,0 +) +) +uid 459,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 20 +suid 17,0 +) +) +uid 461,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 17 +suid 18,0 +) +) +uid 468,0 +) +*29 (LogPort +port (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 19,0 +) +) +uid 499,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "spadOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 19 +suid 20,0 +) +) +uid 540,0 +) +*31 (LogPort +port (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 21,0 +) +) +uid 542,0 +) +*32 (LogPort +port (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 23,0 +) +) +uid 626,0 +) +*33 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "scratchpadAddr" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 18 +suid 24,0 +) +) +uid 679,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*34 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *35 (MRCItem +litem &1 +pos 20 +dimension 20 +) +uid 103,0 +optionalChildren [ +*36 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*37 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*38 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*39 (MRCItem +litem &14 +pos 4 +dimension 20 +uid 77,0 +) +*40 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 79,0 +) +*41 (MRCItem +litem &16 +pos 8 +dimension 20 +uid 81,0 +) +*42 (MRCItem +litem &17 +pos 10 +dimension 20 +uid 83,0 +) +*43 (MRCItem +litem &18 +pos 14 +dimension 20 +uid 85,0 +) +*44 (MRCItem +litem &19 +pos 0 +dimension 20 +uid 416,0 +) +*45 (MRCItem +litem &20 +pos 1 +dimension 20 +uid 418,0 +) +*46 (MRCItem +litem &21 +pos 5 +dimension 20 +uid 420,0 +) +*47 (MRCItem +litem &22 +pos 6 +dimension 20 +uid 452,0 +) +*48 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 454,0 +) +*49 (MRCItem +litem &24 +pos 11 +dimension 20 +uid 456,0 +) +*50 (MRCItem +litem &25 +pos 3 +dimension 20 +uid 458,0 +) +*51 (MRCItem +litem &26 +pos 13 +dimension 20 +uid 460,0 +) +*52 (MRCItem +litem &27 +pos 17 +dimension 20 +uid 462,0 +) +*53 (MRCItem +litem &28 +pos 15 +dimension 20 +uid 469,0 +) +*54 (MRCItem +litem &29 +pos 7 +dimension 20 +uid 500,0 +) +*55 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 541,0 +) +*56 (MRCItem +litem &31 +pos 12 +dimension 20 +uid 543,0 +) +*57 (MRCItem +litem &32 +pos 18 +dimension 20 +uid 627,0 +) +*58 (MRCItem +litem &33 +pos 19 +dimension 20 +uid 680,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*59 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*60 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*61 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*62 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*63 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*64 (MRCItem +litem &11 +pos 5 +dimension 250 +uid 113,0 +) +*65 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*66 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *67 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*68 (RefLabelRowHdr +) +*69 (TitleRowHdr +) +*70 (FilterRowHdr +) +*71 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*72 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*73 (GroupColHdr +tm "GroupColHdrMgr" +) +*74 (NameColHdr +tm "GenericNameColHdrMgr" +) +*75 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*76 (InitColHdr +tm "GenericValueColHdrMgr" +) +*77 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*78 (EolColHdr +tm "GenericEolColHdrMgr" +) +*79 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 592,0 +) +*80 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 594,0 +) +*81 (LogGeneric +generic (GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +uid 596,0 +) +*82 (LogGeneric +generic (GiElement +name "scratchpadAddressBitNb" +type "natural" +value "4" +) +uid 727,0 +) +*83 (LogGeneric +generic (GiElement +name "portAddressBitNb" +type "positive" +value "8" +) +uid 775,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*84 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *85 (MRCItem +litem &67 +pos 5 +dimension 20 +) +uid 131,0 +optionalChildren [ +*86 (MRCItem +litem &68 +pos 0 +dimension 20 +uid 132,0 +) +*87 (MRCItem +litem &69 +pos 1 +dimension 23 +uid 133,0 +) +*88 (MRCItem +litem &70 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*89 (MRCItem +litem &79 +pos 0 +dimension 20 +uid 593,0 +) +*90 (MRCItem +litem &80 +pos 1 +dimension 20 +uid 595,0 +) +*91 (MRCItem +litem &81 +pos 2 +dimension 20 +uid 597,0 +) +*92 (MRCItem +litem &82 +pos 4 +dimension 20 +uid 728,0 +) +*93 (MRCItem +litem &83 +pos 3 +dimension 20 +uid 776,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*94 (MRCItem +litem &71 +pos 0 +dimension 20 +uid 136,0 +) +*95 (MRCItem +litem &73 +pos 1 +dimension 50 +uid 137,0 +) +*96 (MRCItem +litem &74 +pos 2 +dimension 233 +uid 138,0 +) +*97 (MRCItem +litem &75 +pos 3 +dimension 100 +uid 139,0 +) +*98 (MRCItem +litem &76 +pos 4 +dimension 50 +uid 140,0 +) +*99 (MRCItem +litem &77 +pos 5 +dimension 50 +uid 141,0 +) +*100 (MRCItem +litem &78 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\aluAndRegs" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "aluAndRegs" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "aluAndRegs" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\alu@and@regs\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\aluAndRegs\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "07:38:43" +) +(vvPair +variable "unit" +value "aluAndRegs" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*101 (SymbolBody +uid 8,0 +optionalChildren [ +*102 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,36625,41000,37375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "42000,36500,44100,37500" +st "clock" +blo "42000,37300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11200,20500,12000" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 1,0 +) +) +) +*103 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44625,12250,45375,13000" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "43300,14000,46500,15000" +st "aluCode" +blo "43300,14800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9600,38000,10400" +st "aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 3 +suid 2,0 +) +) +) +*104 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,20625,41000,21375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "42000,20500,45400,21500" +st "portInSel" +blo "42000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,14400,20500,15200" +st "portInSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 3,0 +) +) +) +*105 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,38625,41000,39375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "42000,38500,44100,39500" +st "reset" +blo "42000,39300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16800,20500,17600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 4,0 +) +) +) +*106 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,18625,65750,19375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "60700,18500,64000,19500" +st "portAddr" +ju 2 +blo "64000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20000,34500,20800" +st "portAddr : OUT unsigned (portAddressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "portAddr" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 16 +suid 5,0 +) +) +) +*107 (CptPort +uid 400,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 401,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48625,12250,49375,13000" +) +tg (CPTG +uid 402,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 403,0 +va (VaSet +) +xt "48200,14000,50600,15000" +st "addrA" +blo "48200,14800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 404,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8000,37500,8800" +st "addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 9,0 +) +) +) +*108 (CptPort +uid 405,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 406,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,12250,53375,13000" +) +tg (CPTG +uid 407,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 408,0 +va (VaSet +) +xt "52400,14000,54800,15000" +st "addrB" +blo "52400,14800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 409,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8800,37500,9600" +st "addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 10,0 +) +) +) +*109 (CptPort +uid 410,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 411,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,12250,61375,13000" +) +tg (CPTG +uid 412,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 413,0 +va (VaSet +) +xt "59300,14000,62800,15000" +st "instrData" +blo "59300,14800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 414,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,33000,12800" +st "instrData : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 11,0 +) +) +) +*110 (CptPort +uid 421,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 422,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,18625,41000,19375" +) +tg (CPTG +uid 423,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 424,0 +va (VaSet +) +xt "42000,18500,47000,19500" +st "instrDataSel" +blo "42000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 425,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12800,20500,13600" +st "instrDataSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 12,0 +) +) +) +*111 (CptPort +uid 426,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 427,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,16625,41000,17375" +) +tg (CPTG +uid 428,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 429,0 +va (VaSet +) +xt "42000,16500,47900,17500" +st "registerFileSel" +blo "42000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 430,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16000,20500,16800" +st "registerFileSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 13,0 +) +) +) +*112 (CptPort +uid 431,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 432,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,22625,41000,23375" +) +tg (CPTG +uid 433,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 434,0 +va (VaSet +) +xt "42000,22500,47600,23500" +st "scratchpadSel" +blo "42000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 435,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17600,20500,18400" +st "scratchpadSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 14,0 +) +) +) +*113 (CptPort +uid 436,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 437,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,28625,41000,29375" +) +tg (CPTG +uid 438,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 439,0 +va (VaSet +) +xt "42000,28500,43400,29500" +st "cIn" +blo "42000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 440,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10400,20500,11200" +st "cIn : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 15,0 +) +) +) +*114 (CptPort +uid 441,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 493,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,30625,41000,31375" +) +tg (CPTG +uid 443,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 444,0 +va (VaSet +) +xt "42000,30500,44000,31500" +st "cOut" +blo "42000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 445,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,19200,20500,20000" +st "cOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 15 +suid 16,0 +) +) +) +*115 (CptPort +uid 446,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 447,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,32625,41000,33375" +) +tg (CPTG +uid 448,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 449,0 +va (VaSet +) +xt "42000,32500,43900,33500" +st "zero" +blo "42000,33300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 450,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,23200,19500,24000" +st "zero : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 20 +suid 17,0 +) +) +) +*116 (CptPort +uid 463,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 464,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,20625,65750,21375" +) +tg (CPTG +uid 465,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 466,0 +va (VaSet +) +xt "61100,20500,64000,21500" +st "portOut" +ju 2 +blo "64000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 467,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20800,33000,21600" +st "portOut : OUT signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 17 +suid 18,0 +) +) +) +*117 (CptPort +uid 494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 524,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,22625,65750,23375" +) +tg (CPTG +uid 496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 497,0 +va (VaSet +) +xt "61700,22500,64000,23500" +st "portIn" +ju 2 +blo "64000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 498,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13600,33000,14400" +st "portIn : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 19,0 +) +) +) +*118 (CptPort +uid 525,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 526,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,41000,57375,41750" +) +tg (CPTG +uid 527,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 528,0 +va (VaSet +) +xt "56000,39000,59200,40000" +st "spadOut" +blo "56000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 529,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,22400,33000,23200" +st "spadOut : OUT signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "spadOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 19 +suid 20,0 +) +) +) +*119 (CptPort +uid 530,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 531,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,41000,61375,41750" +) +tg (CPTG +uid 532,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 533,0 +va (VaSet +) +xt "60000,39000,62600,40000" +st "spadIn" +blo "60000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 534,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,18400,33000,19200" +st "spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 21,0 +) +) +) +*120 (CptPort +uid 621,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 622,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,24625,41000,25375" +) +tg (CPTG +uid 623,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 624,0 +va (VaSet +) +xt "42000,24500,45400,25500" +st "regWrite" +blo "42000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 625,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15200,20500,16000" +st "regWrite : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 23,0 +) +) +) +*121 (CptPort +uid 674,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 675,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,26625,65750,27375" +) +tg (CPTG +uid 676,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 677,0 +va (VaSet +) +xt "57900,26500,64000,27500" +st "scratchpadAddr" +ju 2 +blo "64000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 678,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,21600,37500,22400" +st "scratchpadAddr : OUT unsigned (scratchpadAddressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "scratchpadAddr" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 18 +suid 24,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "41000,13000,65000,41000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,41000,46000,42000" +st "NanoBlaze" +blo "41600,41800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,42000,46900,43000" +st "aluAndRegs" +blo "41600,42800" +) +) +gi *122 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "41000,44200,60000,49800" +st "Generic Declarations + +registerBitNb positive 8 +registerAddressBitNb positive 4 +aluCodeBitNb positive 5 +portAddressBitNb positive 8 +scratchpadAddressBitNb natural 4 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "8" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +(GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "portAddressBitNb" +type "positive" +value "8" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "4" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*123 (Grouping +uid 16,0 +optionalChildren [ +*124 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,75000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65500,58200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*125 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,61000,79000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,61500,75200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*126 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,75000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63500,58200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*127 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,63000,58000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,63500,54200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*128 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,62000,95000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,62200,89300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*129 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,95000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61500,79200,61500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*130 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,61000,75000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "59350,61400,69650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*131 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,64000,58000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,64500,54200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*132 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,65000,58000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,65500,54200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*133 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,75000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64500,58200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "54000,61000,95000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *134 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*135 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*136 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,15500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,43,1287,900" +viewArea "-3400,-1400,96992,65810" +cachedDiagramExtent "-2000,0,95000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *137 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *138 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,6000,3400,7000" +st "Declarations" +blo "-2000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7000,700,8000" +st "Ports:" +blo "-2000,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,24000,400,25000" +st "User:" +blo "-2000,24800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,6000,3800,7000" +st "Internal User:" +blo "-2000,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,25000,0,25000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,6000,-2000,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 845,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/alu@b@op@selector/symbol.sb b/Libs/NanoBlaze/hds/alu@b@op@selector/symbol.sb new file mode 100644 index 0000000..b56adbf --- /dev/null +++ b/Libs/NanoBlaze/hds/alu@b@op@selector/symbol.sb @@ -0,0 +1,1809 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 116,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 1,0 +) +) +uid 96,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 2,0 +) +) +uid 98,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "opB" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 22 +suid 3,0 +) +) +uid 100,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 4,0 +) +) +uid 102,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 5,0 +) +) +uid 104,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "registerFileIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 23 +suid 6,0 +) +) +uid 106,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 7,0 +) +) +uid 108,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 8,0 +) +) +uid 110,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 9,0 +) +) +uid 112,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 131,0 +optionalChildren [ +*25 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 132,0 +) +*26 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 133,0 +) +*27 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*28 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 97,0 +) +*29 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 99,0 +) +*30 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 101,0 +) +*31 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 103,0 +) +*32 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 105,0 +) +*33 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 107,0 +) +*34 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 109,0 +) +*35 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 111,0 +) +*36 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 113,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*37 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 136,0 +) +*38 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 137,0 +) +*39 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 138,0 +) +*40 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 139,0 +) +*41 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 140,0 +) +*42 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 141,0 +) +*43 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 142,0 +) +*44 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 143,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 115,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 145,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 194,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 157,0 +optionalChildren [ +*58 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *59 (MRCItem +litem &45 +pos 1 +dimension 20 +) +uid 159,0 +optionalChildren [ +*60 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 160,0 +) +*61 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 161,0 +) +*62 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +*63 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 195,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 163,0 +optionalChildren [ +*64 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 164,0 +) +*65 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 165,0 +) +*66 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 166,0 +) +*67 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 167,0 +) +*68 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 168,0 +) +*69 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 169,0 +) +*70 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 170,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 158,0 +vaOverrides [ +] +) +] +) +uid 144,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu@b@op@selector\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu@b@op@selector\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu@b@op@selector" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\aluBOpSelector" +) +(vvPair +variable "date" +value "09.09.2010" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "09" +) +(vvPair +variable "entity_name" +value "aluBOpSelector" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3472" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PicoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Board/PicoBlaze/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "aluBOpSelector" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\alu@b@op@selector\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\aluBOpSelector\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:27:58" +) +(vvPair +variable "unit" +value "aluBOpSelector" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 114,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "40000,16500,43500,17500" +st "instrData" +blo "40000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8800,33000,9600" +st "instrData : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 1,0 +) +) +) +*73 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "40000,18500,45000,19500" +st "instrDataSel" +blo "40000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9600,20500,10400" +st "instrDataSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*74 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,22625,39000,23375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "40000,22500,41700,23500" +st "opB" +blo "40000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15200,31000,16000" +st "opB : OUT signed (registerBitNb-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "opB" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 22 +suid 3,0 +) +) +) +*75 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,16625,55750,17375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "51700,16500,54000,17500" +st "portIn" +ju 2 +blo "54000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10400,33000,11200" +st "portIn : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 4,0 +) +) +) +*76 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,18625,55750,19375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "50600,18500,54000,19500" +st "portInSel" +ju 2 +blo "54000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11200,20500,12000" +st "portInSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 5,0 +) +) +) +*77 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,28625,55750,29375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +) +xt "48600,28500,54000,29500" +st "registerFileIn" +ju 2 +blo "54000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,33000,12800" +st "registerFileIn : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "registerFileIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 23 +suid 6,0 +) +) +) +*78 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,30625,55750,31375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "48100,30500,54000,31500" +st "registerFileSel" +ju 2 +blo "54000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12800,20500,13600" +st "registerFileSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 7,0 +) +) +) +*79 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,24625,55750,25375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +) +xt "48400,24500,54000,25500" +st "scratchpadSel" +ju 2 +blo "54000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13600,20500,14400" +st "scratchpadSel : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 8,0 +) +) +) +*80 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "55000,22625,55750,23375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +) +xt "51400,22500,54000,23500" +st "spadIn" +ju 2 +blo "54000,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,14400,33000,15200" +st "spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,13000,55000,35000" +) +oxt "15000,6000,31000,28000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "39700,35000,43700,36000" +st "PicoBlaze" +blo "39700,35800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "39700,36000,46300,37000" +st "aluBOpSelector" +blo "39700,36800" +) +) +gi *81 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "39000,38200,53500,40600" +st "Generic Declarations + +registerBitNb positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*82 (Grouping +uid 16,0 +optionalChildren [ +*83 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,42900,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,44200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,32300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,60400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,56800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37150,44500,43850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,32300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,32900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,46800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *93 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*95 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "1,53,1275,892" +viewArea "-3064,-1045,72676,51004" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PicoBlaze" +entityName "aluAndRegs" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *96 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *97 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,6800,3400,7800" +st "Declarations" +blo "-2000,7600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7800,700,8800" +st "Ports:" +blo "-2000,8600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,16000,400,17000" +st "User:" +blo "-2000,16800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,6800,3800,7800" +st "Internal User:" +blo "-2000,7600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17000,0,17000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,6800,-2000,6800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 195,0 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/branch@stack/symbol.sb b/Libs/NanoBlaze/hds/branch@stack/symbol.sb new file mode 100644 index 0000000..4e77723 --- /dev/null +++ b/Libs/NanoBlaze/hds/branch@stack/symbol.sb @@ -0,0 +1,1665 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 31,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 17,0 +) +) +uid 461,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 3 +suid 18,0 +) +) +uid 468,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 6 +suid 24,0 +) +) +uid 658,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 28,0 +) +) +uid 761,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "prevPC" +t "std_ulogic" +o 2 +suid 29,0 +) +) +uid 763,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "storePC" +t "std_ulogic" +o 5 +suid 31,0 +) +) +uid 767,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 103,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*25 (MRCItem +litem &14 +pos 1 +dimension 20 +uid 462,0 +) +*26 (MRCItem +litem &15 +pos 0 +dimension 20 +uid 469,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 659,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 762,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 764,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 768,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 660,0 +) +*52 (LogGeneric +generic (GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +uid 817,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *54 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*55 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 132,0 +) +*56 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 133,0 +) +*57 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*58 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 661,0 +) +*59 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 818,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*60 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 136,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 137,0 +) +*62 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 138,0 +) +*63 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 139,0 +) +*64 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 140,0 +) +*65 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 141,0 +) +*66 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\branch@stack\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\branch@stack\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\branch@stack" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\branchStack" +) +(vvPair +variable "date" +value "16.09.2010" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "16" +) +(vvPair +variable "entity_name" +value "branchStack" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3195" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "nanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/NanoBlaze/NanoBlaze/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "branchStack" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\branch@stack\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\branchStack\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "16:00:18" +) +(vvPair +variable "unit" +value "branchStack" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 86,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 446,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 739,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,36625,41000,37375" +) +tg (CPTG +uid 448,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 449,0 +va (VaSet +) +xt "42000,36500,44100,37500" +st "clock" +blo "42000,37300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 450,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8000,22000,8800" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 17,0 +) +) +) +*69 (CptPort +uid 463,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 815,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,30625,65750,31375" +) +tg (CPTG +uid 465,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 466,0 +va (VaSet +) +xt "58900,30500,64000,31500" +st "progCounter" +ju 2 +blo "64000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 467,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9600,38000,10400" +st "progCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 3 +suid 18,0 +) +) +) +*70 (CptPort +uid 653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 816,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,41000,53375,41750" +) +tg (CPTG +uid 655,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 656,0 +va (VaSet +) +xt "50000,39000,57300,40000" +st "storedProgCounter" +blo "50000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 657,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,37000,12800" +st "storedProgCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 6 +suid 24,0 +) +) +) +*71 (CptPort +uid 741,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 742,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,38625,41000,39375" +) +tg (CPTG +uid 743,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 744,0 +va (VaSet +) +xt "42000,38500,44100,39500" +st "reset" +blo "42000,39300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 745,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10400,22000,11200" +st "reset : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 28,0 +) +) +) +*72 (CptPort +uid 746,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 747,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,30625,41000,31375" +) +tg (CPTG +uid 748,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 749,0 +va (VaSet +) +xt "42000,30500,44900,31500" +st "prevPC" +blo "42000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 750,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8800,22000,9600" +st "prevPC : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "prevPC" +t "std_ulogic" +o 2 +suid 29,0 +) +) +) +*73 (CptPort +uid 756,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 757,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,32625,41000,33375" +) +tg (CPTG +uid 758,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 759,0 +va (VaSet +) +xt "42000,32500,45200,33500" +st "storePC" +blo "42000,33300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 760,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11200,22000,12000" +st "storePC : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "storePC" +t "std_ulogic" +o 5 +suid 31,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "41000,27000,65000,41000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,41000,45900,42000" +st "nanoBlaze" +blo "41600,41800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,42000,47000,43000" +st "branchStack" +blo "41600,42800" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "41000,44200,59000,47400" +st "Generic Declarations + +programCounterBitNb positive 10 +stackPointerBitNb positive 5 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,75000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65000,66900,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,61000,79000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,61000,78200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,75000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63000,68200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,63000,58000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,63000,56300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,62000,95000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,62200,84400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,95000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61000,80800,62000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,61000,75000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "61150,61500,67850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,64000,58000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,64000,56300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,65000,58000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,65000,56900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,75000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64000,69700,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "54000,61000,95000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*88 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,51,1283,908" +viewArea "-3400,-1400,97680,69185" +cachedDiagramExtent "-2000,0,95000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,6000,3400,7000" +st "Declarations" +blo "-2000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7000,700,8000" +st "Ports:" +blo "-2000,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,12800,400,13800" +st "User:" +blo "-2000,13600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,6000,3800,7000" +st "Internal User:" +blo "-2000,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13800,0,13800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,6000,-2000,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 841,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/controller/symbol.sb b/Libs/NanoBlaze/hds/controller/symbol.sb new file mode 100644 index 0000000..45b8377 --- /dev/null +++ b/Libs/NanoBlaze/hds/controller/symbol.sb @@ -0,0 +1,2892 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 26,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 221,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "( branchCondBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +uid 171,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 10 +suid 2,0 +) +) +uid 173,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 175,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 177,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "prevPC" +t "std_ulogic" +o 11 +suid 5,0 +) +) +uid 179,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 6,0 +) +) +uid 181,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "incPC" +t "std_ulogic" +o 12 +suid 7,0 +) +) +uid 183,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 13 +suid 8,0 +) +) +uid 185,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 9,0 +) +) +uid 187,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 14 +suid 10,0 +) +) +uid 189,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 6 +suid 11,0 +) +) +uid 191,0 +) +*25 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 15 +suid 12,0 +) +) +uid 193,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 16 +suid 13,0 +) +) +uid 195,0 +) +*27 (LogPort +port (LogicalPort +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "(opCodeBitNb-1 DOWNTO 0)" +o 7 +suid 14,0 +) +) +uid 197,0 +) +*28 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "portInSel" +t "std_ulogic" +o 17 +suid 15,0 +) +) +uid 199,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 18 +suid 16,0 +) +) +uid 201,0 +) +*30 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 20 +suid 17,0 +) +) +uid 203,0 +) +*31 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 18,0 +) +) +uid 205,0 +) +*32 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 21 +suid 19,0 +) +) +uid 207,0 +) +*33 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "scratchpadWrite" +t "std_ulogic" +o 22 +suid 20,0 +) +) +uid 209,0 +) +*34 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "storePC" +t "std_ulogic" +o 23 +suid 21,0 +) +) +uid 211,0 +) +*35 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 24 +suid 23,0 +) +) +uid 215,0 +) +*36 (LogPort +port (LogicalPort +decl (Decl +n "zero" +t "std_ulogic" +o 9 +suid 24,0 +) +) +uid 217,0 +) +*37 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "regWrite" +t "std_ulogic" +o 19 +suid 25,0 +) +) +uid 331,0 +) +*38 (LogPort +port (LogicalPort +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 25 +suid 26,0 +) +) +uid 432,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 234,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &1 +pos 25 +dimension 20 +) +uid 236,0 +optionalChildren [ +*41 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 237,0 +) +*42 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 238,0 +) +*43 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 239,0 +) +*44 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 172,0 +) +*45 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 174,0 +) +*46 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 176,0 +) +*47 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 178,0 +) +*48 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 180,0 +) +*49 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 182,0 +) +*50 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 184,0 +) +*51 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 186,0 +) +*52 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 188,0 +) +*53 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 190,0 +) +*54 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 192,0 +) +*55 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 194,0 +) +*56 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 196,0 +) +*57 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 198,0 +) +*58 (MRCItem +litem &28 +pos 14 +dimension 20 +uid 200,0 +) +*59 (MRCItem +litem &29 +pos 15 +dimension 20 +uid 202,0 +) +*60 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 204,0 +) +*61 (MRCItem +litem &31 +pos 17 +dimension 20 +uid 206,0 +) +*62 (MRCItem +litem &32 +pos 18 +dimension 20 +uid 208,0 +) +*63 (MRCItem +litem &33 +pos 19 +dimension 20 +uid 210,0 +) +*64 (MRCItem +litem &34 +pos 20 +dimension 20 +uid 212,0 +) +*65 (MRCItem +litem &35 +pos 21 +dimension 20 +uid 216,0 +) +*66 (MRCItem +litem &36 +pos 22 +dimension 20 +uid 218,0 +) +*67 (MRCItem +litem &37 +pos 23 +dimension 20 +uid 332,0 +) +*68 (MRCItem +litem &38 +pos 24 +dimension 20 +uid 433,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 240,0 +optionalChildren [ +*69 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 241,0 +) +*70 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 242,0 +) +*71 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 243,0 +) +*72 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 244,0 +) +*73 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 245,0 +) +*74 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 246,0 +) +*75 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 247,0 +) +*76 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 248,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 235,0 +vaOverrides [ +] +) +] +) +uid 220,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *77 (LEmptyRow +) +uid 250,0 +optionalChildren [ +*78 (RefLabelRowHdr +) +*79 (TitleRowHdr +) +*80 (FilterRowHdr +) +*81 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*82 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*83 (GroupColHdr +tm "GroupColHdrMgr" +) +*84 (NameColHdr +tm "GenericNameColHdrMgr" +) +*85 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*86 (InitColHdr +tm "GenericValueColHdrMgr" +) +*87 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*88 (EolColHdr +tm "GenericEolColHdrMgr" +) +*89 (LogGeneric +generic (GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +uid 299,0 +) +*90 (LogGeneric +generic (GiElement +name "branchCondBitNb" +type "positive" +value "3" +) +uid 301,0 +) +*91 (LogGeneric +generic (GiElement +name "opCodeBitNb" +type "positive" +value "5" +) +uid 356,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 262,0 +optionalChildren [ +*92 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *93 (MRCItem +litem &77 +pos 3 +dimension 20 +) +uid 264,0 +optionalChildren [ +*94 (MRCItem +litem &78 +pos 0 +dimension 20 +uid 265,0 +) +*95 (MRCItem +litem &79 +pos 1 +dimension 23 +uid 266,0 +) +*96 (MRCItem +litem &80 +pos 2 +hidden 1 +dimension 20 +uid 267,0 +) +*97 (MRCItem +litem &89 +pos 0 +dimension 20 +uid 300,0 +) +*98 (MRCItem +litem &90 +pos 1 +dimension 20 +uid 302,0 +) +*99 (MRCItem +litem &91 +pos 2 +dimension 20 +uid 357,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 268,0 +optionalChildren [ +*100 (MRCItem +litem &81 +pos 0 +dimension 20 +uid 269,0 +) +*101 (MRCItem +litem &83 +pos 1 +dimension 50 +uid 270,0 +) +*102 (MRCItem +litem &84 +pos 2 +dimension 100 +uid 271,0 +) +*103 (MRCItem +litem &85 +pos 3 +dimension 100 +uid 272,0 +) +*104 (MRCItem +litem &86 +pos 4 +dimension 50 +uid 273,0 +) +*105 (MRCItem +litem &87 +pos 5 +dimension 50 +uid 274,0 +) +*106 (MRCItem +litem &88 +pos 6 +dimension 80 +uid 275,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 263,0 +vaOverrides [ +] +) +] +) +uid 249,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\controller\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\controller\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\controller" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\controller" +) +(vvPair +variable "date" +value "16.09.2010" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "16" +) +(vvPair +variable "entity_name" +value "controller" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3195" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/NanoBlaze/NanoBlaze/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "controller" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\controller\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\controller\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:59:43" +) +(vvPair +variable "unit" +value "controller" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 219,0 +optionalChildren [ +*107 (SymbolBody +uid 8,0 +optionalChildren [ +*108 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,57625,62750,58375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "56100,57500,61000,58500" +st "branchCond" +ju 2 +blo "61000,58300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11800,40000,12600" +st "branchCond : IN std_ulogic_vector ( branchCondBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "( branchCondBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +) +*109 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,95625,62750,96375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "59600,95500,61000,96500" +st "cIn" +ju 2 +blo "61000,96300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,19800,21000,20600" +st "cIn : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 10 +suid 2,0 +) +) +) +*110 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,122625,46000,123375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "47000,122500,49100,123500" +st "clock" +blo "47000,123300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13400,21000,14200" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*111 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,97625,62750,98375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "59000,97500,61000,98500" +st "cOut" +ju 2 +blo "61000,98300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12600,21000,13400" +st "cOut : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*112 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,9625,62750,10375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "58100,9500,61000,10500" +st "prevPC" +ju 2 +blo "61000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,25400,21000,26200" +st "prevPC : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "prevPC" +t "std_ulogic" +o 11 +suid 5,0 +) +) +) +*113 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,120625,46000,121375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +) +xt "47000,120500,48200,121500" +st "en" +blo "47000,121300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,14200,21000,15000" +st "en : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*114 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,31625,62750,32375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "58500,31500,61000,32500" +st "incPC" +ju 2 +blo "61000,32300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20600,21000,21400" +st "incPC : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "incPC" +t "std_ulogic" +o 12 +suid 7,0 +) +) +) +*115 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,85625,62750,86375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +) +xt "56000,85500,61000,86500" +st "instrDataSel" +ju 2 +blo "61000,86300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,21400,21000,22200" +st "instrDataSel : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 13 +suid 8,0 +) +) +) +*116 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,9625,46000,10375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +) +xt "47000,9500,48200,10500" +st "int" +blo "47000,10300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15000,21000,15800" +st "int : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 9,0 +) +) +) +*117 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,11625,46000,12375" +) +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 99,0 +va (VaSet +) +xt "47000,11500,49400,12500" +st "intAck" +blo "47000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,22200,21000,23000" +st "intAck : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 14 +suid 10,0 +) +) +) +*118 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,55625,62750,56375" +) +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 104,0 +va (VaSet +) +xt "58000,55500,61000,56500" +st "intCode" +ju 2 +blo "61000,56300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15800,38500,16600" +st "intCode : IN std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 6 +suid 11,0 +) +) +) +*119 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,33625,62750,34375" +) +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 109,0 +va (VaSet +) +xt "54500,33500,61000,34500" +st "loadInstrAddress" +ju 2 +blo "61000,34300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,23000,21000,23800" +st "loadInstrAddress : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 15 +suid 12,0 +) +) +) +*120 (CptPort +uid 111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 112,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,35625,62750,36375" +) +tg (CPTG +uid 113,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 114,0 +va (VaSet +) +xt "55500,35500,61000,36500" +st "loadStoredPC" +ju 2 +blo "61000,36300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 115,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,23800,21000,24600" +st "loadStoredPC : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 16 +suid 13,0 +) +) +) +*121 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,61625,62750,62375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +) +xt "58000,61500,61000,62500" +st "opCode" +ju 2 +blo "61000,62300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16600,37000,17400" +st "opCode : IN std_ulogic_vector (opCodeBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "(opCodeBitNb-1 DOWNTO 0)" +o 7 +suid 14,0 +) +) +) +*122 (CptPort +uid 121,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 122,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,87625,62750,88375" +) +tg (CPTG +uid 123,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 124,0 +va (VaSet +) +xt "57600,87500,61000,88500" +st "portInSel" +ju 2 +blo "61000,88300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 125,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,24600,21000,25400" +st "portInSel : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "portInSel" +t "std_ulogic" +o 17 +suid 15,0 +) +) +) +*123 (CptPort +uid 126,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 127,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,73625,62750,74375" +) +tg (CPTG +uid 128,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 129,0 +va (VaSet +) +xt "56500,73500,61000,74500" +st "readStrobe" +ju 2 +blo "61000,74300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 130,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,26200,21000,27000" +st "readStrobe : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 18 +suid 16,0 +) +) +) +*124 (CptPort +uid 131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,83625,62750,84375" +) +tg (CPTG +uid 133,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 134,0 +va (VaSet +) +xt "55100,83500,61000,84500" +st "registerFileSel" +ju 2 +blo "61000,84300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 135,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,27800,21000,28600" +st "registerFileSel : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 20 +suid 17,0 +) +) +) +*125 (CptPort +uid 136,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 137,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45250,124625,46000,125375" +) +tg (CPTG +uid 138,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 139,0 +va (VaSet +) +xt "47000,124500,49100,125500" +st "reset" +blo "47000,125300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 140,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17400,21000,18200" +st "reset : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 18,0 +) +) +) +*126 (CptPort +uid 141,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 142,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,89625,62750,90375" +) +tg (CPTG +uid 143,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 144,0 +va (VaSet +) +xt "55400,89500,61000,90500" +st "scratchpadSel" +ju 2 +blo "61000,90300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 145,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,28600,21000,29400" +st "scratchpadSel : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 21 +suid 19,0 +) +) +) +*127 (CptPort +uid 146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,119625,62750,120375" +) +tg (CPTG +uid 148,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 149,0 +va (VaSet +) +xt "54700,119500,61000,120500" +st "scratchpadWrite" +ju 2 +blo "61000,120300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 150,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,29400,21000,30200" +st "scratchpadWrite : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "scratchpadWrite" +t "std_ulogic" +o 22 +suid 20,0 +) +) +) +*128 (CptPort +uid 151,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 152,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,11625,62750,12375" +) +tg (CPTG +uid 153,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 154,0 +va (VaSet +) +xt "57800,11500,61000,12500" +st "storePC" +ju 2 +blo "61000,12300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 155,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,30200,21000,31000" +st "storePC : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "storePC" +t "std_ulogic" +o 23 +suid 21,0 +) +) +) +*129 (CptPort +uid 161,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 162,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,75625,62750,76375" +) +tg (CPTG +uid 163,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 164,0 +va (VaSet +) +xt "56400,75500,61000,76500" +st "writeStrobe" +ju 2 +blo "61000,76300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 165,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,31000,20000,31800" +st "writeStrobe : OUT std_uLogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 24 +suid 23,0 +) +) +) +*130 (CptPort +uid 166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 167,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,99625,62750,100375" +) +tg (CPTG +uid 168,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 169,0 +va (VaSet +) +xt "59100,99500,61000,100500" +st "zero" +ju 2 +blo "61000,100300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 170,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,19000,21000,19800" +st "zero : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "zero" +t "std_ulogic" +o 9 +suid 24,0 +) +) +) +*131 (CptPort +uid 326,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 327,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,91625,62750,92375" +) +tg (CPTG +uid 328,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 329,0 +va (VaSet +) +xt "57600,91500,61000,92500" +st "regWrite" +ju 2 +blo "61000,92300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 330,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,27000,21000,27800" +st "regWrite : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "regWrite" +t "std_ulogic" +o 19 +suid 25,0 +) +) +) +*132 (CptPort +uid 427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 428,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,63625,62750,64375" +) +tg (CPTG +uid 429,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 430,0 +va (VaSet +) +xt "56100,63500,61000,64500" +st "twoRegInstr" +ju 2 +blo "61000,64300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 431,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,18200,21000,19000" +st "twoRegInstr : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 25 +suid 26,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "46000,6000,62000,128000" +) +oxt "15000,6000,31000,128000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "46800,128000,51200,129000" +st "NanoBlaze" +blo "46800,128800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "46800,129000,51200,130000" +st "controller" +blo "46800,129800" +) +) +gi *133 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "46000,131200,61500,135200" +st "Generic Declarations + +intCodeBitNb positive 5 +branchCondBitNb positive 3 +opCodeBitNb positive 5 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "branchCondBitNb" +type "positive" +value "3" +) +(GiElement +name "opCodeBitNb" +type "positive" +value "5" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*134 (Grouping +uid 16,0 +optionalChildren [ +*135 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "60000,145000,77000,146000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "60200,145000,68900,146000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*136 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,141000,81000,142000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,141000,80200,142000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*137 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "60000,143000,77000,144000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "60200,143000,70200,144000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*138 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,143000,60000,144000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,143000,58300,144000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*139 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,142000,97000,146000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,142200,86400,143200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*140 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "81000,141000,97000,142000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "81200,141000,82800,142000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*141 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,141000,77000,143000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "63150,141500,69850,142500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*142 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,144000,60000,145000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,144000,58300,145000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*143 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,145000,60000,146000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,145000,58900,146000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*144 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "60000,144000,77000,145000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "60200,144000,71000,145000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "56000,141000,97000,146000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *145 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*147 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "64,51,1011,990" +viewArea "31900,-10856,93052,58444" +cachedDiagramExtent "-2000,0,97000,146000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +landscape 0 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PicoBlaze" +entityName "picoProcessor" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *148 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *149 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,9800,3400,10800" +st "Declarations" +blo "-2000,10600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,10800,700,11800" +st "Ports:" +blo "-2000,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,31800,400,32800" +st "User:" +blo "-2000,32600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,9800,3800,10800" +st "Internal User:" +blo "-2000,10600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,32800,0,32800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,9800,-2000,9800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 525,0 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/instruction@decoder/symbol.sb b/Libs/NanoBlaze/hds/instruction@decoder/symbol.sb new file mode 100644 index 0000000..e99131c --- /dev/null +++ b/Libs/NanoBlaze/hds/instruction@decoder/symbol.sb @@ -0,0 +1,2357 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 4 +suid 2,0 +) +) +uid 78,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "portIndexedSel" +t "std_ulogic" +o 6 +suid 5,0 +) +) +uid 84,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 9,0 +) +) +uid 415,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 10,0 +) +) +uid 417,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 11,0 +) +) +uid 419,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "( opCodeBitNb-1 DOWNTO 0 )" +o 10 +suid 16,0 +) +) +uid 459,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "portAddress" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +) +uid 468,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "( instructionBitNb-1 DOWNTO 0 )" +o 1 +suid 19,0 +) +) +uid 499,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 7 +suid 24,0 +) +) +uid 658,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "(branchCondBitNb-1 DOWNTO 0)" +o 5 +suid 25,0 +) +) +uid 674,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 9 +suid 26,0 +) +) +uid 676,0 +) +*25 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "spadAddress" +t "unsigned" +b "( spadAddressBitNb-1 DOWNTO 0 )" +o 12 +suid 28,0 +) +) +uid 746,0 +) +*26 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "spadIndexedSel" +t "std_ulogic" +o 13 +suid 29,0 +) +) +uid 799,0 +) +*27 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 14 +suid 30,0 +) +) +uid 900,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*28 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *29 (MRCItem +litem &1 +pos 14 +dimension 20 +) +uid 103,0 +optionalChildren [ +*30 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*31 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*32 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*33 (MRCItem +litem &14 +pos 2 +dimension 20 +uid 79,0 +) +*34 (MRCItem +litem &15 +pos 6 +dimension 20 +uid 85,0 +) +*35 (MRCItem +litem &16 +pos 0 +dimension 20 +uid 416,0 +) +*36 (MRCItem +litem &17 +pos 1 +dimension 20 +uid 418,0 +) +*37 (MRCItem +litem &18 +pos 3 +dimension 20 +uid 420,0 +) +*38 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 460,0 +) +*39 (MRCItem +litem &20 +pos 7 +dimension 20 +uid 469,0 +) +*40 (MRCItem +litem &21 +pos 4 +dimension 20 +uid 500,0 +) +*41 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 659,0 +) +*42 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 675,0 +) +*43 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 677,0 +) +*44 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 747,0 +) +*45 (MRCItem +litem &26 +pos 12 +dimension 20 +uid 800,0 +) +*46 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 901,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*47 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*48 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*49 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*50 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*51 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*52 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*53 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*54 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *55 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*56 (RefLabelRowHdr +) +*57 (TitleRowHdr +) +*58 (FilterRowHdr +) +*59 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*60 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*61 (GroupColHdr +tm "GroupColHdrMgr" +) +*62 (NameColHdr +tm "GenericNameColHdrMgr" +) +*63 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*64 (InitColHdr +tm "GenericValueColHdrMgr" +) +*65 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*66 (EolColHdr +tm "GenericEolColHdrMgr" +) +*67 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 592,0 +) +*68 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 594,0 +) +*69 (LogGeneric +generic (GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +uid 596,0 +) +*70 (LogGeneric +generic (GiElement +name "instructionBitNb" +type "positive" +value "18" +) +uid 651,0 +) +*71 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 660,0 +) +*72 (LogGeneric +generic (GiElement +name "opCodeBitNb" +type "positive" +value "5" +) +uid 662,0 +) +*73 (LogGeneric +generic (GiElement +name "branchCondBitNb" +type "positive" +value "3" +) +uid 678,0 +) +*74 (LogGeneric +generic (GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +uid 680,0 +) +*75 (LogGeneric +generic (GiElement +name "spadAddressBitNb" +type "natural" +value "4" +) +uid 739,0 +) +*76 (LogGeneric +generic (GiElement +name "portAddressBitNb" +type "positive" +value "8" +) +uid 824,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*77 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *78 (MRCItem +litem &55 +pos 10 +dimension 20 +) +uid 131,0 +optionalChildren [ +*79 (MRCItem +litem &56 +pos 0 +dimension 20 +uid 132,0 +) +*80 (MRCItem +litem &57 +pos 1 +dimension 23 +uid 133,0 +) +*81 (MRCItem +litem &58 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*82 (MRCItem +litem &67 +pos 0 +dimension 20 +uid 593,0 +) +*83 (MRCItem +litem &68 +pos 1 +dimension 20 +uid 595,0 +) +*84 (MRCItem +litem &69 +pos 2 +dimension 20 +uid 597,0 +) +*85 (MRCItem +litem &70 +pos 3 +dimension 20 +uid 652,0 +) +*86 (MRCItem +litem &71 +pos 4 +dimension 20 +uid 661,0 +) +*87 (MRCItem +litem &72 +pos 5 +dimension 20 +uid 663,0 +) +*88 (MRCItem +litem &73 +pos 6 +dimension 20 +uid 679,0 +) +*89 (MRCItem +litem &74 +pos 7 +dimension 20 +uid 681,0 +) +*90 (MRCItem +litem &75 +pos 8 +dimension 20 +uid 740,0 +) +*91 (MRCItem +litem &76 +pos 9 +dimension 20 +uid 825,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*92 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 136,0 +) +*93 (MRCItem +litem &61 +pos 1 +dimension 50 +uid 137,0 +) +*94 (MRCItem +litem &62 +pos 2 +dimension 100 +uid 138,0 +) +*95 (MRCItem +litem &63 +pos 3 +dimension 100 +uid 139,0 +) +*96 (MRCItem +litem &64 +pos 4 +dimension 50 +uid 140,0 +) +*97 (MRCItem +litem &65 +pos 5 +dimension 50 +uid 141,0 +) +*98 (MRCItem +litem &66 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\instruction@decoder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\instruction@decoder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\instruction@decoder" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\instructionDecoder" +) +(vvPair +variable "date" +value "05.03.2015" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "05" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "instructionDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SEm/NanoBlaze/work" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "instructionDecoder" +) +(vvPair +variable "month" +value "mars" +) +(vvPair +variable "month_long" +value "mars" +) +(vvPair +variable "p" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\instruction@decoder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\instructionDecoder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-beamer" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:25:24" +) +(vvPair +variable "unit" +value "instructionDecoder" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2015" +) +(vvPair +variable "yy" +value "15" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 86,0 +optionalChildren [ +*99 (SymbolBody +uid 8,0 +optionalChildren [ +*100 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 705,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44625,41000,45375,41750" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "43000,39000,46200,40000" +st "aluCode" +blo "43000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10400,37500,11200" +st "aluCode : OUT std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 4 +suid 2,0 +) +) +) +*101 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,30625,65750,31375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "58300,30500,64000,31500" +st "portIndexedSel" +ju 2 +blo "64000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16000,20000,16800" +st "portIndexedSel : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "portIndexedSel" +t "std_ulogic" +o 6 +suid 5,0 +) +) +) +*102 (CptPort +uid 400,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 706,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "48625,41000,49375,41750" +) +tg (CPTG +uid 402,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 403,0 +va (VaSet +) +xt "48000,39000,50400,40000" +st "addrA" +blo "48000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 404,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8800,37000,9600" +st "addrA : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 9,0 +) +) +) +*103 (CptPort +uid 405,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 707,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,41000,53375,41750" +) +tg (CPTG +uid 407,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 408,0 +va (VaSet +) +xt "52000,39000,54400,40000" +st "addrB" +blo "52000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 409,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9600,37000,10400" +st "addrB : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 10,0 +) +) +) +*104 (CptPort +uid 410,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 708,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,41000,61375,41750" +) +tg (CPTG +uid 412,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 413,0 +va (VaSet +) +xt "59000,39000,62500,40000" +st "instrData" +blo "59000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 414,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12800,32500,13600" +st "instrData : OUT signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 11,0 +) +) +) +*105 (CptPort +uid 441,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 493,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,34625,41000,35375" +) +tg (CPTG +uid 443,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 444,0 +va (VaSet +) +xt "42000,34500,45000,35500" +st "opCode" +blo "42000,35300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 445,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,14400,37000,15200" +st "opCode : OUT std_ulogic_vector ( opCodeBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "( opCodeBitNb-1 DOWNTO 0 )" +o 10 +suid 16,0 +) +) +) +*106 (CptPort +uid 463,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 464,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,32625,65750,33375" +) +tg (CPTG +uid 465,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 466,0 +va (VaSet +) +xt "59100,32500,64000,33500" +st "portAddress" +ju 2 +blo "64000,33300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 467,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15200,34000,16000" +st "portAddress : OUT unsigned (portAddressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "portAddress" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +) +) +*107 (CptPort +uid 494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 524,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,28625,65750,29375" +) +tg (CPTG +uid 496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 497,0 +va (VaSet +) +xt "59700,28500,64000,29500" +st "instruction" +ju 2 +blo "64000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 498,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8000,39500,8800" +st "instruction : IN std_ulogic_vector ( instructionBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "( instructionBitNb-1 DOWNTO 0 )" +o 1 +suid 19,0 +) +) +) +*108 (CptPort +uid 653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 654,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,24250,53375,25000" +) +tg (CPTG +uid 655,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 656,0 +va (VaSet +) +xt "50000,26000,55100,27000" +st "instrAddress" +blo "50000,26800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 657,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,36500,12800" +st "instrAddress : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 7 +suid 24,0 +) +) +) +*109 (CptPort +uid 664,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 665,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,30625,41000,31375" +) +tg (CPTG +uid 666,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 667,0 +va (VaSet +) +xt "42000,30500,46900,31500" +st "branchCond" +blo "42000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 668,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11200,38000,12000" +st "branchCond : OUT std_ulogic_vector (branchCondBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "(branchCondBitNb-1 DOWNTO 0)" +o 5 +suid 25,0 +) +) +) +*110 (CptPort +uid 669,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 670,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,28625,41000,29375" +) +tg (CPTG +uid 671,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 672,0 +va (VaSet +) +xt "42000,28500,45000,29500" +st "intCode" +blo "42000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 673,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13600,37500,14400" +st "intCode : OUT std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 9 +suid 26,0 +) +) +) +*111 (CptPort +uid 741,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 742,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,36625,65750,37375" +) +tg (CPTG +uid 743,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 744,0 +va (VaSet +) +xt "58800,36500,64000,37500" +st "spadAddress" +ju 2 +blo "64000,37300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 745,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16800,35000,17600" +st "spadAddress : OUT unsigned ( spadAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "spadAddress" +t "unsigned" +b "( spadAddressBitNb-1 DOWNTO 0 )" +o 12 +suid 28,0 +) +) +) +*112 (CptPort +uid 794,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 795,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,34625,65750,35375" +) +tg (CPTG +uid 796,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 797,0 +va (VaSet +) +xt "58000,34500,64000,35500" +st "spadIndexedSel" +ju 2 +blo "64000,35300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 798,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17600,20000,18400" +st "spadIndexedSel : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "spadIndexedSel" +t "std_ulogic" +o 13 +suid 29,0 +) +) +) +*113 (CptPort +uid 895,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 896,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,36625,41000,37375" +) +tg (CPTG +uid 897,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 898,0 +va (VaSet +) +xt "42000,36500,46900,37500" +st "twoRegInstr" +blo "42000,37300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 899,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,18400,19000,19200" +st "twoRegInstr : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 14 +suid 30,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "41000,25000,65000,41000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,41000,46000,42000" +st "NanoBlaze" +blo "41600,41800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,42000,49600,43000" +st "instructionDecoder" +blo "41600,42800" +) +) +gi *114 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "41000,44200,59500,53800" +st "Generic Declarations + +registerBitNb positive 8 +registerAddressBitNb positive 4 +aluCodeBitNb positive 5 +instructionBitNb positive 18 +programCounterBitNb positive 10 +opCodeBitNb positive 5 +branchCondBitNb positive 3 +intCodeBitNb positive 5 +spadAddressBitNb natural 4 +portAddressBitNb positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "8" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +(GiElement +name "aluCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "instructionBitNb" +type "positive" +value "18" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +(GiElement +name "opCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "branchCondBitNb" +type "positive" +value "3" +) +(GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "spadAddressBitNb" +type "natural" +value "4" +) +(GiElement +name "portAddressBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*115 (Grouping +uid 16,0 +optionalChildren [ +*116 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,75000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65000,66900,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*117 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,61000,79000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,61000,78200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*118 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,75000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63000,68200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*119 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,63000,58000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,63000,56300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*120 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,62000,95000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,62200,84400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*121 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,95000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61000,80800,62000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*122 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,61000,75000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "61150,61500,67850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*123 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,64000,58000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,64000,56300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*124 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,65000,58000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,65000,56900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*125 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,75000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64000,72200,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "54000,61000,95000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *126 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*127 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*128 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,43,1287,900" +viewArea "-3400,-1400,96992,65810" +cachedDiagramExtent "-2000,0,95000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *129 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *130 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,6000,3400,7000" +st "Declarations" +blo "-2000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7000,700,8000" +st "Ports:" +blo "-2000,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,19200,400,20200" +st "User:" +blo "-2000,20000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,6000,3800,7000" +st "Internal User:" +blo "-2000,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20200,0,20200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,6000,-2000,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 924,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/nano@blaze/struct.bd b/Libs/NanoBlaze/hds/nano@blaze/struct.bd new file mode 100644 index 0000000..019fe91 --- /dev/null +++ b/Libs/NanoBlaze/hds/nano@blaze/struct.bd @@ -0,0 +1,4701 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_rom" +duLibraryName "NanoBlaze" +duName "programRom" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "instructionBitNb" +) +] +mwi 0 +uid 19000,0 +) +(Instance +name "I_up" +duLibraryName "NanoBlaze" +duName "nanoProcessor" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +(GiElement +name "instructionBitNb" +type "positive" +value "instructionBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +mwi 0 +uid 19225,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoBlaze" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "nanoBlaze" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoBlaze" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoBlaze\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "07:38:43" +) +(vvPair +variable "unit" +value "nanoBlaze" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 812,0 +optionalChildren [ +*2 (CommentText +uid 814,0 +shape (Rectangle +uid 815,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "114000,54000,133000,56000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 816,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "114200,54400,129600,55600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 817,0 +shape (Rectangle +uid 818,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,54000,108000,56000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 819,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "89250,54250,100750,55750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 820,0 +shape (Rectangle +uid 821,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,60000,108000,62000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 822,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,60400,103300,61600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 823,0 +shape (Rectangle +uid 824,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "108000,54000,114000,56000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 825,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "108200,54400,112900,55600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 826,0 +shape (Rectangle +uid 827,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,56000,108000,58000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 828,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,56400,102400,57600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 829,0 +shape (Rectangle +uid 830,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,56000,87000,58000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 831,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,56400,85600,57600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 832,0 +shape (Rectangle +uid 833,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,58000,87000,60000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 834,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,58400,85600,59600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 835,0 +shape (Rectangle +uid 836,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "108000,56000,133000,62000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 837,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "108200,56200,122300,57400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 838,0 +shape (Rectangle +uid 839,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,58000,108000,60000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 840,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,58400,97100,59600" +st " + +%library/%unit/%view + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 841,0 +shape (Rectangle +uid 842,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,60000,87000,62000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 843,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,60400,86500,61600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 813,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "82000,54000,133000,62000" +) +oxt "13000,22000,64000,30000" +) +*12 (Net +uid 3306,0 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 7,0 +) +declText (MLText +uid 3307,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-1200,41000,-400" +st "reset : std_ulogic" +) +) +*13 (PortIoIn +uid 7091,0 +shape (CompositeShape +uid 7092,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 7093,0 +sl 0 +ro 270 +xt "45000,36625,46500,37375" +) +(Line +uid 7094,0 +sl 0 +ro 270 +xt "46500,37000,47000,37000" +pts [ +"46500,37000" +"47000,37000" +] +) +] +) +tg (WTG +uid 7095,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7096,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "39900,36300,44000,37700" +st "reset" +ju 2 +blo "44000,37500" +tm "WireNameMgr" +) +s (Text +uid 7097,0 +va (VaSet +font "Verdana,12,0" +) +xt "39900,37700,39900,37700" +ju 2 +blo "39900,37700" +tm "SignalTypeMgr" +) +) +) +*14 (PortIoOut +uid 16414,0 +shape (CompositeShape +uid 16415,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16416,0 +sl 0 +ro 270 +xt "79500,32625,81000,33375" +) +(Line +uid 16417,0 +sl 0 +ro 270 +xt "79000,33000,79500,33000" +pts [ +"79000,33000" +"79500,33000" +] +) +] +) +tg (WTG +uid 16418,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16419,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "82000,32500,90700,33900" +st "readStrobe" +blo "82000,33700" +tm "WireNameMgr" +) +s (Text +uid 16420,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,33900,82000,33900" +blo "82000,33900" +tm "SignalTypeMgr" +) +) +) +*15 (Net +uid 16427,0 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 9 +suid 155,0 +) +declText (MLText +uid 16428,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,2000,41000,2800" +st "readStrobe : std_uLogic" +) +) +*16 (PortIoOut +uid 16429,0 +shape (CompositeShape +uid 16430,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16431,0 +sl 0 +ro 270 +xt "79500,34625,81000,35375" +) +(Line +uid 16432,0 +sl 0 +ro 270 +xt "79000,35000,79500,35000" +pts [ +"79000,35000" +"79500,35000" +] +) +] +) +tg (WTG +uid 16433,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16434,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "82000,34500,91000,35900" +st "writeStrobe" +blo "82000,35700" +tm "WireNameMgr" +) +s (Text +uid 16435,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,35900,82000,35900" +blo "82000,35900" +tm "SignalTypeMgr" +) +) +) +*17 (Net +uid 16442,0 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 156,0 +) +declText (MLText +uid 16443,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,2800,41000,3600" +st "writeStrobe : std_uLogic" +) +) +*18 (PortIoOut +uid 16474,0 +shape (CompositeShape +uid 16475,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16476,0 +sl 0 +ro 270 +xt "79500,26625,81000,27375" +) +(Line +uid 16477,0 +sl 0 +ro 270 +xt "79000,27000,79500,27000" +pts [ +"79000,27000" +"79500,27000" +] +) +] +) +tg (WTG +uid 16478,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16479,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "82000,26500,113400,27900" +st "dataAddress : ( addressBitNb-1 DOWNTO 0 )" +blo "82000,27700" +tm "WireNameMgr" +) +s (Text +uid 16480,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,27900,82000,27900" +blo "82000,27900" +tm "SignalTypeMgr" +) +) +) +*19 (Net +uid 16487,0 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 6 +suid 159,0 +) +declText (MLText +uid 16488,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-400,54000,400" +st "dataAddress : unsigned( addressBitNb-1 DOWNTO 0 )" +) +) +*20 (PortIoOut +uid 16489,0 +shape (CompositeShape +uid 16490,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16491,0 +sl 0 +ro 270 +xt "79500,28625,81000,29375" +) +(Line +uid 16492,0 +sl 0 +ro 270 +xt "79000,29000,79500,29000" +pts [ +"79000,29000" +"79500,29000" +] +) +] +) +tg (WTG +uid 16493,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16494,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "82000,28500,108800,29900" +st "dataOut : (registerBitNb-1 DOWNTO 0)" +blo "82000,29700" +tm "WireNameMgr" +) +s (Text +uid 16495,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,29900,82000,29900" +blo "82000,29900" +tm "SignalTypeMgr" +) +) +) +*21 (Net +uid 16502,0 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 7 +suid 160,0 +) +declText (MLText +uid 16503,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,400,58000,1200" +st "dataOut : std_ulogic_vector(registerBitNb-1 DOWNTO 0)" +) +) +*22 (PortIoOut +uid 16504,0 +shape (CompositeShape +uid 16505,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16506,0 +sl 0 +ro 90 +xt "45000,22625,46500,23375" +) +(Line +uid 16507,0 +sl 0 +ro 90 +xt "46500,23000,47000,23000" +pts [ +"47000,23000" +"46500,23000" +] +) +] +) +tg (WTG +uid 16508,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16509,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "39500,22300,44000,23700" +st "intAck" +ju 2 +blo "44000,23500" +tm "WireNameMgr" +) +s (Text +uid 16510,0 +va (VaSet +font "Verdana,12,0" +) +xt "39500,23700,39500,23700" +ju 2 +blo "39500,23700" +tm "SignalTypeMgr" +) +) +) +*23 (Net +uid 16517,0 +decl (Decl +n "intAck" +t "std_ulogic" +o 8 +suid 161,0 +) +declText (MLText +uid 16518,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,1200,41000,2000" +st "intAck : std_ulogic" +) +) +*24 (PortIoIn +uid 16853,0 +shape (CompositeShape +uid 16854,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16855,0 +sl 0 +ro 270 +xt "45000,34625,46500,35375" +) +(Line +uid 16856,0 +sl 0 +ro 270 +xt "46500,35000,47000,35000" +pts [ +"46500,35000" +"47000,35000" +] +) +] +) +tg (WTG +uid 16857,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16858,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "40200,34500,44000,35900" +st "clock" +ju 2 +blo "44000,35700" +tm "WireNameMgr" +) +s (Text +uid 16859,0 +va (VaSet +font "Verdana,12,0" +) +xt "40200,35900,40200,35900" +ju 2 +blo "40200,35900" +tm "SignalTypeMgr" +) +) +) +*25 (Net +uid 16866,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 163,0 +) +declText (MLText +uid 16867,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-4400,41000,-3600" +st "clock : std_ulogic" +) +) +*26 (PortIoIn +uid 16868,0 +shape (CompositeShape +uid 16869,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16870,0 +sl 0 +ro 90 +xt "79500,30625,81000,31375" +) +(Line +uid 16871,0 +sl 0 +ro 90 +xt "79000,31000,79500,31000" +pts [ +"79500,31000" +"79000,31000" +] +) +] +) +tg (WTG +uid 16872,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16873,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "82000,30300,107800,31700" +st "dataIn : (registerBitNb-1 DOWNTO 0)" +blo "82000,31500" +tm "WireNameMgr" +) +s (Text +uid 16874,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,31700,82000,31700" +blo "82000,31700" +tm "SignalTypeMgr" +) +) +) +*27 (Net +uid 16881,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 164,0 +) +declText (MLText +uid 16882,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-3600,58000,-2800" +st "dataIn : std_ulogic_vector(registerBitNb-1 DOWNTO 0)" +) +) +*28 (PortIoIn +uid 16883,0 +shape (CompositeShape +uid 16884,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16885,0 +sl 0 +ro 270 +xt "45000,32625,46500,33375" +) +(Line +uid 16886,0 +sl 0 +ro 270 +xt "46500,33000,47000,33000" +pts [ +"46500,33000" +"47000,33000" +] +) +] +) +tg (WTG +uid 16887,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16888,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "41600,32500,44000,33900" +st "en" +ju 2 +blo "44000,33700" +tm "WireNameMgr" +) +s (Text +uid 16889,0 +va (VaSet +font "Verdana,12,0" +) +xt "41600,33900,41600,33900" +ju 2 +blo "41600,33900" +tm "SignalTypeMgr" +) +) +) +*29 (Net +uid 16896,0 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 165,0 +) +declText (MLText +uid 16897,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-2800,41000,-2000" +st "en : std_ulogic" +) +) +*30 (PortIoIn +uid 16898,0 +shape (CompositeShape +uid 16899,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16900,0 +sl 0 +ro 270 +xt "45000,20625,46500,21375" +) +(Line +uid 16901,0 +sl 0 +ro 270 +xt "46500,21000,47000,21000" +pts [ +"46500,21000" +"47000,21000" +] +) +] +) +tg (WTG +uid 16902,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16903,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "41600,20500,44000,21900" +st "int" +ju 2 +blo "44000,21700" +tm "WireNameMgr" +) +s (Text +uid 16904,0 +va (VaSet +font "Verdana,12,0" +) +xt "41600,21900,41600,21900" +ju 2 +blo "41600,21900" +tm "SignalTypeMgr" +) +) +) +*31 (Net +uid 16911,0 +decl (Decl +n "int" +t "std_uLogic" +o 4 +suid 166,0 +) +declText (MLText +uid 16912,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-2000,41000,-1200" +st "int : std_uLogic" +) +) +*32 (Net +uid 17771,0 +decl (Decl +n "programCounter" +t "unsigned" +b "(programCounterBitNb-1 DOWNTO 0)" +o 13 +suid 182,0 +) +declText (MLText +uid 17772,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,8400,60000,9200" +st "SIGNAL programCounter : unsigned(programCounterBitNb-1 DOWNTO 0)" +) +) +*33 (Net +uid 17779,0 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 11 +suid 183,0 +) +declText (MLText +uid 17780,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,6800,63000,7600" +st "SIGNAL instruction : std_ulogic_vector(instructionBitNb-1 DOWNTO 0)" +) +) +*34 (Net +uid 18127,0 +decl (Decl +n "logic1" +t "std_ulogic" +o 12 +suid 187,0 +) +declText (MLText +uid 18128,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,7600,44500,8400" +st "SIGNAL logic1 : std_ulogic" +) +) +*35 (HdlText +uid 18129,0 +optionalChildren [ +*36 (EmbeddedText +uid 18163,0 +commentText (CommentText +uid 18164,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 18165,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "80000,6000,96000,8000" +) +oxt "0,0,18000,5000" +text (MLText +uid 18166,0 +va (VaSet +) +xt "80200,6200,88400,7400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 18130,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "80000,5000,96000,9000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 18131,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 18132,0 +va (VaSet +) +xt "80400,9000,81600,10000" +st "eb1" +blo "80400,9800" +tm "HdlTextNameMgr" +) +*38 (Text +uid 18133,0 +va (VaSet +) +xt "80400,10000,80800,11000" +st "1" +blo "80400,10800" +tm "HdlTextNumberMgr" +) +] +) +) +*39 (SaComponent +uid 19000,0 +optionalChildren [ +*40 (CptPort +uid 18980,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18981,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94250,20625,95000,21375" +) +tg (CPTG +uid 18982,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18983,0 +va (VaSet +) +xt "96000,20500,99100,21500" +st "address" +blo "96000,21300" +) +) +thePort (LogicalPort +decl (Decl +n "address" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*41 (CptPort +uid 18984,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18985,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94250,26625,95000,27375" +) +tg (CPTG +uid 18986,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18987,0 +va (VaSet +) +xt "96000,26500,98100,27500" +st "clock" +blo "96000,27300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*42 (CptPort +uid 18988,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18989,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "111000,20625,111750,21375" +) +tg (CPTG +uid 18990,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 18991,0 +va (VaSet +) +xt "107000,20500,110000,21500" +st "dataOut" +ju 2 +blo "110000,21300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 3,0 +) +) +) +*43 (CptPort +uid 18992,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18993,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94250,24625,95000,25375" +) +tg (CPTG +uid 18994,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18995,0 +va (VaSet +) +xt "96000,24500,97200,25500" +st "en" +blo "96000,25300" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*44 (CptPort +uid 18996,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 18997,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94250,28625,95000,29375" +) +tg (CPTG +uid 18998,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 18999,0 +va (VaSet +) +xt "96000,28500,98100,29500" +st "reset" +blo "96000,29300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 19001,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "95000,17000,111000,31000" +) +oxt "25000,17000,41000,31000" +ttg (MlTextGroup +uid 19002,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 19003,0 +va (VaSet +font "Arial,8,1" +) +xt "95500,31000,99900,32000" +st "NanoBlaze" +blo "95500,31800" +tm "BdLibraryNameMgr" +) +*46 (Text +uid 19004,0 +va (VaSet +font "Arial,8,1" +) +xt "95500,32000,101300,33000" +st "programRom" +blo "95500,32800" +tm "CptNameMgr" +) +*47 (Text +uid 19005,0 +va (VaSet +font "Arial,8,1" +) +xt "95500,33000,98000,34000" +st "I_rom" +blo "95500,33800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 19006,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 19007,0 +text (MLText +uid 19008,0 +va (VaSet +font "Courier New,8,0" +) +xt "95000,34200,123000,35800" +st "addressBitNb = programCounterBitNb ( positive ) +dataBitNb = instructionBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "instructionBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*48 (SaComponent +uid 19225,0 +optionalChildren [ +*49 (CptPort +uid 19177,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19178,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,34625,55000,35375" +) +tg (CPTG +uid 19179,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19180,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,34300,59800,35700" +st "clock" +blo "56000,35500" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*50 (CptPort +uid 19181,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19182,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,36625,55000,37375" +) +tg (CPTG +uid 19183,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19184,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,36300,60100,37700" +st "reset" +blo "56000,37500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 12,0 +) +) +) +*51 (CptPort +uid 19185,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19186,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,32625,71750,33375" +) +tg (CPTG +uid 19187,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19188,0 +va (VaSet +font "Verdana,12,0" +) +xt "61300,32300,70000,33700" +st "readStrobe" +ju 2 +blo "70000,33500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 11 +suid 2024,0 +) +) +) +*52 (CptPort +uid 19189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19190,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,34625,71750,35375" +) +tg (CPTG +uid 19191,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19192,0 +va (VaSet +font "Verdana,12,0" +) +xt "61000,34300,70000,35700" +st "writeStrobe" +ju 2 +blo "70000,35500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 12 +suid 2026,0 +) +) +) +*53 (CptPort +uid 19193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19194,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,32625,55000,33375" +) +tg (CPTG +uid 19195,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19196,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,32300,58400,33700" +st "en" +blo "56000,33500" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +) +*54 (CptPort +uid 19197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19198,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,22625,55000,23375" +) +tg (CPTG +uid 19199,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19200,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,22300,60500,23700" +st "intAck" +blo "56000,23500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 9 +suid 2042,0 +) +) +) +*55 (CptPort +uid 19201,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19202,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,20625,55000,21375" +) +tg (CPTG +uid 19203,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19204,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,20300,58400,21700" +st "int" +blo "56000,21500" +) +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 2028,0 +) +) +) +*56 (CptPort +uid 19205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,26625,71750,27375" +) +tg (CPTG +uid 19207,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19208,0 +va (VaSet +font "Verdana,12,0" +) +xt "60400,26300,70000,27700" +st "dataAddress" +ju 2 +blo "70000,27500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 2039,0 +) +) +) +*57 (CptPort +uid 19209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,28625,71750,29375" +) +tg (CPTG +uid 19211,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19212,0 +va (VaSet +font "Verdana,12,0" +) +xt "64000,28300,70000,29700" +st "dataOut" +ju 2 +blo "70000,29500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 8 +suid 2040,0 +) +) +) +*58 (CptPort +uid 19213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19214,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,30625,71750,31375" +) +tg (CPTG +uid 19215,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19216,0 +va (VaSet +font "Verdana,12,0" +) +xt "65000,30300,70000,31700" +st "dataIn" +ju 2 +blo "70000,31500" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +) +*59 (CptPort +uid 19217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19218,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,22625,71750,23375" +) +tg (CPTG +uid 19219,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19220,0 +va (VaSet +font "Verdana,12,0" +) +xt "61800,22300,70000,23700" +st "instruction" +ju 2 +blo "70000,23500" +) +) +thePort (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 4 +suid 2052,0 +) +) +) +*60 (CptPort +uid 19221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 19222,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71000,20625,71750,21375" +) +tg (CPTG +uid 19223,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 19224,0 +va (VaSet +font "Verdana,12,0" +) +xt "60400,20300,70000,21700" +st "progCounter" +ju 2 +blo "70000,21500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 10 +suid 2053,0 +) +) +) +] +shape (Rectangle +uid 19226,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "55000,17000,71000,39000" +) +oxt "47000,10000,63000,32000" +ttg (MlTextGroup +uid 19227,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 19228,0 +va (VaSet +) +xt "55100,38700,59200,39700" +st "NanoBlaze" +blo "55100,39500" +tm "BdLibraryNameMgr" +) +*62 (Text +uid 19229,0 +va (VaSet +) +xt "55100,39700,61000,40700" +st "nanoProcessor" +blo "55100,40500" +tm "CptNameMgr" +) +*63 (Text +uid 19230,0 +va (VaSet +) +xt "55100,40700,56900,41700" +st "I_up" +blo "55100,41500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 19231,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 19232,0 +text (MLText +uid 19233,0 +va (VaSet +font "Courier New,10,0" +) +xt "55000,41400,96400,49800" +st "addressBitNb = addressBitNb ( positive ) +registerBitNb = registerBitNb ( positive ) +registerAddressBitNb = registerAddressBitNb ( positive ) +programCounterBitNb = programCounterBitNb ( positive ) +stackPointerBitNb = stackPointerBitNb ( positive ) +instructionBitNb = instructionBitNb ( positive ) +scratchpadAddressBitNb = scratchpadAddressBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +(GiElement +name "instructionBitNb" +type "positive" +value "instructionBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*64 (Wire +uid 6763,0 +shape (OrthoPolyLine +uid 6764,0 +va (VaSet +vasetType 3 +) +xt "47000,37000,54250,37000" +pts [ +"47000,37000" +"54250,37000" +] +) +start &13 +end &50 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 6767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6768,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,35600,51100,37000" +st "reset" +blo "47000,36800" +tm "WireNameMgr" +) +) +on &12 +) +*65 (Wire +uid 16421,0 +shape (OrthoPolyLine +uid 16422,0 +va (VaSet +vasetType 3 +) +xt "71750,33000,79000,33000" +pts [ +"71750,33000" +"79000,33000" +] +) +start &51 +end &14 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16425,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16426,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,31600,80700,33000" +st "readStrobe" +blo "72000,32800" +tm "WireNameMgr" +) +) +on &15 +) +*66 (Wire +uid 16436,0 +shape (OrthoPolyLine +uid 16437,0 +va (VaSet +vasetType 3 +) +xt "71750,35000,79000,35000" +pts [ +"71750,35000" +"79000,35000" +] +) +start &52 +end &16 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16440,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16441,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,33600,81000,35000" +st "writeStrobe" +blo "72000,34800" +tm "WireNameMgr" +) +) +on &17 +) +*67 (Wire +uid 16481,0 +shape (OrthoPolyLine +uid 16482,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71750,27000,79000,27000" +pts [ +"71750,27000" +"79000,27000" +] +) +start &56 +end &18 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16485,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16486,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,25600,81600,27000" +st "dataAddress" +blo "72000,26800" +tm "WireNameMgr" +) +) +on &19 +) +*68 (Wire +uid 16496,0 +shape (OrthoPolyLine +uid 16497,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71750,29000,79000,29000" +pts [ +"71750,29000" +"79000,29000" +] +) +start &57 +end &20 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16500,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16501,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,27600,80000,29000" +st "dataOut" +blo "74000,28800" +tm "WireNameMgr" +) +) +on &21 +) +*69 (Wire +uid 16511,0 +shape (OrthoPolyLine +uid 16512,0 +va (VaSet +vasetType 3 +) +xt "47000,23000,54250,23000" +pts [ +"54250,23000" +"47000,23000" +] +) +start &54 +end &22 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16515,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16516,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,21600,51500,23000" +st "intAck" +blo "47000,22800" +tm "WireNameMgr" +) +) +on &23 +) +*70 (Wire +uid 16860,0 +shape (OrthoPolyLine +uid 16861,0 +va (VaSet +vasetType 3 +) +xt "47000,35000,54250,35000" +pts [ +"47000,35000" +"54250,35000" +] +) +start &24 +end &49 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16864,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16865,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,33600,50800,35000" +st "clock" +blo "47000,34800" +tm "WireNameMgr" +) +) +on &25 +) +*71 (Wire +uid 16875,0 +shape (OrthoPolyLine +uid 16876,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71750,31000,79000,31000" +pts [ +"79000,31000" +"71750,31000" +] +) +start &26 +end &58 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16879,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16880,0 +va (VaSet +font "Verdana,12,0" +) +xt "75000,29600,80000,31000" +st "dataIn" +blo "75000,30800" +tm "WireNameMgr" +) +) +on &27 +) +*72 (Wire +uid 16890,0 +shape (OrthoPolyLine +uid 16891,0 +va (VaSet +vasetType 3 +) +xt "47000,33000,54250,33000" +pts [ +"47000,33000" +"54250,33000" +] +) +start &28 +end &53 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16894,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16895,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,31600,49400,33000" +st "en" +blo "47000,32800" +tm "WireNameMgr" +) +) +on &29 +) +*73 (Wire +uid 16905,0 +shape (OrthoPolyLine +uid 16906,0 +va (VaSet +vasetType 3 +) +xt "47000,21000,54250,21000" +pts [ +"47000,21000" +"54250,21000" +] +) +start &30 +end &55 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16909,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16910,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,19600,49400,21000" +st "int" +blo "47000,20800" +tm "WireNameMgr" +) +) +on &31 +) +*74 (Wire +uid 17773,0 +shape (OrthoPolyLine +uid 17774,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71750,21000,94250,21000" +pts [ +"71750,21000" +"94250,21000" +] +) +start &60 +end &40 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17777,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17778,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,19600,85000,21000" +st "programCounter" +blo "73000,20800" +tm "WireNameMgr" +) +) +on &32 +) +*75 (Wire +uid 17781,0 +shape (OrthoPolyLine +uid 17782,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "71750,13000,115000,23000" +pts [ +"71750,23000" +"87000,23000" +"87000,13000" +"115000,13000" +"115000,21000" +"111750,21000" +] +) +start &59 +end &42 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 17785,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17786,0 +va (VaSet +font "Verdana,12,0" +) +xt "73750,21600,81950,23000" +st "instruction" +blo "73750,22800" +tm "WireNameMgr" +) +) +on &33 +) +*76 (Wire +uid 17911,0 +shape (OrthoPolyLine +uid 17912,0 +va (VaSet +vasetType 3 +) +xt "91000,29000,94250,29000" +pts [ +"91000,29000" +"94250,29000" +] +) +end &44 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 17917,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17918,0 +va (VaSet +font "Verdana,12,0" +) +xt "90000,27600,94100,29000" +st "reset" +blo "90000,28800" +tm "WireNameMgr" +) +) +on &12 +) +*77 (Wire +uid 17919,0 +shape (OrthoPolyLine +uid 17920,0 +va (VaSet +vasetType 3 +) +xt "91000,27000,94250,27000" +pts [ +"91000,27000" +"94250,27000" +] +) +end &41 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17925,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17926,0 +va (VaSet +font "Verdana,12,0" +) +xt "90000,25600,93800,27000" +st "clock" +blo "90000,26800" +tm "WireNameMgr" +) +) +on &25 +) +*78 (Wire +uid 18121,0 +shape (OrthoPolyLine +uid 18122,0 +va (VaSet +vasetType 3 +) +xt "91000,25000,94250,25000" +pts [ +"94250,25000" +"91000,25000" +] +) +start &43 +sat 32 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 18125,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18126,0 +va (VaSet +font "Verdana,12,0" +) +xt "90250,23600,94650,25000" +st "logic1" +blo "90250,24800" +tm "WireNameMgr" +) +) +on &34 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *79 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 573,0 +va (VaSet +font "arial,8,1" +) +xt "24000,-12000,29400,-11000" +st "Package List" +blo "24000,-11200" +) +*81 (MLText +uid 574,0 +va (VaSet +) +xt "24000,-11000,41500,-7400" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*83 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*84 (MLText +uid 48,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,2800,30400,5400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*85 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*86 (MLText +uid 50,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*87 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*88 (MLText +uid 52,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "136,35,1420,897" +viewArea "22400,-13600,135698,65974" +cachedDiagramExtent "20000,-12000,133000,62000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA203_HPLJ2430DTN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "24000,-12000" +lastUid 19291,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +va (VaSet +) +xt "2100,3000,6700,4200" +st "" +blo "2100,4000" +tm "BdLibraryNameMgr" +) +*90 (Text +va (VaSet +) +xt "2100,4200,6200,5400" +st "" +blo "2100,5200" +tm "BlkNameMgr" +) +*91 (Text +va (VaSet +) +xt "2100,5400,3300,6600" +st "I0" +blo "2100,6400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "2100,13000,2100,13000" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*93 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*94 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*95 (Text +va (VaSet +) +xt "900,3000,3200,4000" +st "Library" +blo "900,3800" +tm "BdLibraryNameMgr" +) +*96 (Text +va (VaSet +) +xt "900,4000,6400,5000" +st "SaComponent" +blo "900,4800" +tm "CptNameMgr" +) +*97 (Text +va (VaSet +) +xt "900,5000,1500,6000" +st "I0" +blo "900,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6100,1000,-6100,1000" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-100,0,8100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +va (VaSet +) +xt "400,3000,2700,4000" +st "Library" +blo "400,3800" +) +*99 (Text +va (VaSet +) +xt "400,4000,6500,5000" +st "VhdlComponent" +blo "400,4800" +) +*100 (Text +va (VaSet +) +xt "400,5000,1000,6000" +st "I0" +blo "400,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6600,1000,-6600,1000" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*101 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*102 (Text +va (VaSet +) +xt "-100,4000,7000,5000" +st "VerilogComponent" +blo "-100,4800" +) +*103 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +va (VaSet +) +xt "3300,3700,4500,4700" +st "eb1" +blo "3300,4500" +tm "HdlTextNameMgr" +) +*105 (Text +va (VaSet +) +xt "3300,4700,3700,5700" +st "1" +blo "3300,5500" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-350,-600,250,400" +st "G" +blo "-350,200" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1650" +) +num (Text +va (VaSet +) +xt "300,250,700,1250" +st "1" +blo "300,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*106 (Text +va (VaSet +font "Arial,8,1" +) +xt "13200,20000,21100,21000" +st "Frame Declarations" +blo "13200,20800" +) +*107 (MLText +va (VaSet +) +xt "13200,21000,13200,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1650" +) +num (Text +va (VaSet +) +xt "300,250,700,1250" +st "1" +blo "300,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*108 (Text +va (VaSet +font "Arial,8,1" +) +xt "13200,20000,21100,21000" +st "Frame Declarations" +blo "13200,20800" +) +*109 (MLText +va (VaSet +) +xt "13200,21000,13200,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,-6400,29400,-5400" +st "Declarations" +blo "24000,-5600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,-5400,26700,-4400" +st "Ports:" +blo "24000,-4600" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,3600,27800,4600" +st "Pre User:" +blo "24000,4400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,9,0" +) +xt "26000,4600,49000,5800" +st "constant instructionBitNb: positive := 18;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,5800,31100,6800" +st "Diagram Signals:" +blo "24000,6600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,9200,28700,10200" +st "Post User:" +blo "24000,10000" +) +postUserText (MLText +uid 8,0 +va (VaSet +) +xt "24000,-6400,24000,-6400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 188,0 +usingSuid 1 +emptyRow *110 (LEmptyRow +) +uid 5534,0 +optionalChildren [ +*111 (RefLabelRowHdr +) +*112 (TitleRowHdr +) +*113 (FilterRowHdr +) +*114 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*115 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*116 (GroupColHdr +tm "GroupColHdrMgr" +) +*117 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*118 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*119 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*120 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*121 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*122 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*123 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 7,0 +) +) +uid 5491,0 +) +*124 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 9 +suid 155,0 +) +) +uid 16384,0 +) +*125 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 156,0 +) +) +uid 16386,0 +) +*126 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 6 +suid 159,0 +) +) +uid 16392,0 +) +*127 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 7 +suid 160,0 +) +) +uid 16394,0 +) +*128 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 8 +suid 161,0 +) +) +uid 16396,0 +) +*129 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 163,0 +) +) +uid 16913,0 +) +*130 (LeafLogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 164,0 +) +) +uid 16915,0 +) +*131 (LeafLogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 165,0 +) +) +uid 16917,0 +) +*132 (LeafLogPort +port (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 4 +suid 166,0 +) +) +uid 16919,0 +) +*133 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "programCounter" +t "unsigned" +b "(programCounterBitNb-1 DOWNTO 0)" +o 13 +suid 182,0 +) +) +uid 17787,0 +) +*134 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 11 +suid 183,0 +) +) +uid 17789,0 +) +*135 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_ulogic" +o 12 +suid 187,0 +) +) +uid 18167,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 5547,0 +optionalChildren [ +*136 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *137 (MRCItem +litem &110 +pos 13 +dimension 20 +) +uid 5549,0 +optionalChildren [ +*138 (MRCItem +litem &111 +pos 0 +dimension 20 +uid 5550,0 +) +*139 (MRCItem +litem &112 +pos 1 +dimension 23 +uid 5551,0 +) +*140 (MRCItem +litem &113 +pos 2 +hidden 1 +dimension 20 +uid 5552,0 +) +*141 (MRCItem +litem &123 +pos 2 +dimension 20 +uid 5492,0 +) +*142 (MRCItem +litem &124 +pos 0 +dimension 20 +uid 16383,0 +) +*143 (MRCItem +litem &125 +pos 1 +dimension 20 +uid 16385,0 +) +*144 (MRCItem +litem &126 +pos 3 +dimension 20 +uid 16391,0 +) +*145 (MRCItem +litem &127 +pos 4 +dimension 20 +uid 16393,0 +) +*146 (MRCItem +litem &128 +pos 5 +dimension 20 +uid 16395,0 +) +*147 (MRCItem +litem &129 +pos 6 +dimension 20 +uid 16914,0 +) +*148 (MRCItem +litem &130 +pos 7 +dimension 20 +uid 16916,0 +) +*149 (MRCItem +litem &131 +pos 8 +dimension 20 +uid 16918,0 +) +*150 (MRCItem +litem &132 +pos 9 +dimension 20 +uid 16920,0 +) +*151 (MRCItem +litem &133 +pos 10 +dimension 20 +uid 17788,0 +) +*152 (MRCItem +litem &134 +pos 11 +dimension 20 +uid 17790,0 +) +*153 (MRCItem +litem &135 +pos 12 +dimension 20 +uid 18168,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 5553,0 +optionalChildren [ +*154 (MRCItem +litem &114 +pos 0 +dimension 20 +uid 5554,0 +) +*155 (MRCItem +litem &116 +pos 1 +dimension 50 +uid 5555,0 +) +*156 (MRCItem +litem &117 +pos 2 +dimension 100 +uid 5556,0 +) +*157 (MRCItem +litem &118 +pos 3 +dimension 50 +uid 5557,0 +) +*158 (MRCItem +litem &119 +pos 4 +dimension 100 +uid 5558,0 +) +*159 (MRCItem +litem &120 +pos 5 +dimension 100 +uid 5559,0 +) +*160 (MRCItem +litem &121 +pos 6 +dimension 50 +uid 5560,0 +) +*161 (MRCItem +litem &122 +pos 7 +dimension 80 +uid 5561,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 5548,0 +vaOverrides [ +] +) +] +) +uid 5533,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *162 (LEmptyRow +) +uid 5563,0 +optionalChildren [ +*163 (RefLabelRowHdr +) +*164 (TitleRowHdr +) +*165 (FilterRowHdr +) +*166 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*167 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*168 (GroupColHdr +tm "GroupColHdrMgr" +) +*169 (NameColHdr +tm "GenericNameColHdrMgr" +) +*170 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*171 (InitColHdr +tm "GenericValueColHdrMgr" +) +*172 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*173 (EolColHdr +tm "GenericEolColHdrMgr" +) +*174 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 16169,0 +) +*175 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 16171,0 +) +*176 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 18313,0 +) +*177 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 18346,0 +) +*178 (LogGeneric +generic (GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +uid 18735,0 +) +*179 (LogGeneric +generic (GiElement +name "scratchpadAddressBitNb" +type "natural" +value "6" +) +uid 18868,0 +) +] +) +pdm (PhysicalDM +uid 5575,0 +optionalChildren [ +*180 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *181 (MRCItem +litem &162 +pos 6 +dimension 20 +) +uid 5577,0 +optionalChildren [ +*182 (MRCItem +litem &163 +pos 0 +dimension 20 +uid 5578,0 +) +*183 (MRCItem +litem &164 +pos 1 +dimension 23 +uid 5579,0 +) +*184 (MRCItem +litem &165 +pos 2 +hidden 1 +dimension 20 +uid 5580,0 +) +*185 (MRCItem +litem &174 +pos 0 +dimension 20 +uid 16168,0 +) +*186 (MRCItem +litem &175 +pos 1 +dimension 20 +uid 16170,0 +) +*187 (MRCItem +litem &176 +pos 4 +dimension 20 +uid 18312,0 +) +*188 (MRCItem +litem &177 +pos 2 +dimension 20 +uid 18345,0 +) +*189 (MRCItem +litem &178 +pos 3 +dimension 20 +uid 18734,0 +) +*190 (MRCItem +litem &179 +pos 5 +dimension 20 +uid 18867,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 5581,0 +optionalChildren [ +*191 (MRCItem +litem &166 +pos 0 +dimension 20 +uid 5582,0 +) +*192 (MRCItem +litem &168 +pos 1 +dimension 50 +uid 5583,0 +) +*193 (MRCItem +litem &169 +pos 2 +dimension 100 +uid 5584,0 +) +*194 (MRCItem +litem &170 +pos 3 +dimension 100 +uid 5585,0 +) +*195 (MRCItem +litem &171 +pos 4 +dimension 50 +uid 5586,0 +) +*196 (MRCItem +litem &172 +pos 5 +dimension 50 +uid 5587,0 +) +*197 (MRCItem +litem &173 +pos 6 +dimension 80 +uid 5588,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 5576,0 +vaOverrides [ +] +) +] +) +uid 5562,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/NanoBlaze/hds/nano@blaze/symbol.sb b/Libs/NanoBlaze/hds/nano@blaze/symbol.sb new file mode 100644 index 0000000..fd4b07a --- /dev/null +++ b/Libs/NanoBlaze/hds/nano@blaze/symbol.sb @@ -0,0 +1,2081 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2050,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 12,0 +) +) +uid 322,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 324,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 9 +suid 2024,0 +) +) +uid 496,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 2026,0 +) +) +uid 500,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +uid 532,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 4 +suid 2028,0 +) +) +uid 534,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 6 +suid 2039,0 +) +) +uid 1168,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 7 +suid 2040,0 +) +) +uid 1170,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 8 +suid 2042,0 +) +) +uid 1174,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +uid 2048,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 254,0 +optionalChildren [ +*26 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 257,0 +) +*27 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 259,0 +) +*28 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*29 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 281,0 +) +*30 (MRCItem +litem &3 +pos 6 +dimension 20 +uid 283,0 +) +*31 (MRCItem +litem &16 +pos 0 +dimension 20 +uid 497,0 +) +*32 (MRCItem +litem &17 +pos 1 +dimension 20 +uid 501,0 +) +*33 (MRCItem +litem &18 +pos 8 +dimension 20 +uid 533,0 +) +*34 (MRCItem +litem &19 +pos 9 +dimension 20 +uid 535,0 +) +*35 (MRCItem +litem &20 +pos 3 +dimension 20 +uid 1169,0 +) +*36 (MRCItem +litem &21 +pos 4 +dimension 20 +uid 1171,0 +) +*37 (MRCItem +litem &22 +pos 5 +dimension 20 +uid 1175,0 +) +*38 (MRCItem +litem &23 +pos 7 +dimension 20 +uid 2049,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*39 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 263,0 +) +*40 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 267,0 +) +*41 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 269,0 +) +*42 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 271,0 +) +*43 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 273,0 +) +*44 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 275,0 +) +*45 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 277,0 +) +*46 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 1507,0 +) +*60 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 1509,0 +) +*61 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 2258,0 +) +*62 (LogGeneric +generic (GiElement +name "scratchpadAddressBitNb" +type "natural" +value "6" +) +uid 2283,0 +) +*63 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 2308,0 +) +*64 (LogGeneric +generic (GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +uid 2381,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*65 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *66 (MRCItem +litem &47 +pos 6 +dimension 20 +) +uid 293,0 +optionalChildren [ +*67 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 296,0 +) +*68 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 298,0 +) +*69 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*70 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 1508,0 +) +*71 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 1510,0 +) +*72 (MRCItem +litem &61 +pos 4 +dimension 20 +uid 2259,0 +) +*73 (MRCItem +litem &62 +pos 5 +dimension 20 +uid 2284,0 +) +*74 (MRCItem +litem &63 +pos 2 +dimension 20 +uid 2309,0 +) +*75 (MRCItem +litem &64 +pos 3 +dimension 20 +uid 2382,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*76 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 302,0 +) +*77 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 306,0 +) +*78 (MRCItem +litem &54 +pos 2 +dimension 199 +uid 308,0 +) +*79 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 310,0 +) +*80 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 312,0 +) +*81 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 314,0 +) +*82 (MRCItem +litem &58 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoBlaze" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "nanoBlaze" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoBlaze" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@blaze\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoBlaze\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "07:38:43" +) +(vvPair +variable "unit" +value "nanoBlaze" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*83 (SymbolBody +uid 8,0 +optionalChildren [ +*84 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 53,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,27625,47000,28375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,27300,51800,28700" +st "clock" +blo "48000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,20500,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*85 (CptPort +uid 248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 249,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,29625,47000,30375" +) +tg (CPTG +uid 250,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 251,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,29300,52100,30700" +st "reset" +blo "48000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 252,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15000,20500,15800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 12,0 +) +) +) +*86 (CptPort +uid 469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 600,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,25625,63750,26375" +) +tg (CPTG +uid 471,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 472,0 +va (VaSet +font "Verdana,12,0" +) +xt "53300,25300,62000,26700" +st "readStrobe" +ju 2 +blo "62000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18200,20500,19000" +st "readStrobe : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 9 +suid 2024,0 +) +) +) +*87 (CptPort +uid 479,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 480,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,27625,63750,28375" +) +tg (CPTG +uid 481,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 482,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,27300,62000,28700" +st "writeStrobe" +ju 2 +blo "62000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 483,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19000,19500,19800" +st "writeStrobe : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 2026,0 +) +) +) +*88 (CptPort +uid 502,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 503,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,25625,47000,26375" +) +tg (CPTG +uid 504,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 505,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,25300,50400,26700" +st "en" +blo "48000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 506,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13400,20500,14200" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +) +*89 (CptPort +uid 1163,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1164,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,21625,47000,22375" +) +tg (CPTG +uid 1165,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1166,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,21300,52500,22700" +st "intAck" +blo "48000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1167,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17400,20500,18200" +st "intAck : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 8 +suid 2042,0 +) +) +) +*90 (CptPort +uid 1998,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1999,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,19625,47000,20375" +) +tg (CPTG +uid 2000,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2001,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,19300,50400,20700" +st "int" +blo "48000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2002,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14200,20500,15000" +st "int : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 4 +suid 2028,0 +) +) +) +*91 (CptPort +uid 2003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2004,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,19625,63750,20375" +) +tg (CPTG +uid 2005,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2006,0 +va (VaSet +font "Verdana,12,0" +) +xt "52400,19300,62000,20700" +st "dataAddress" +ju 2 +blo "62000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2007,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15800,33500,16600" +st "dataAddress : OUT unsigned ( addressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 6 +suid 2039,0 +) +) +) +*92 (CptPort +uid 2008,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2009,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,21625,63750,22375" +) +tg (CPTG +uid 2010,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2011,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,21300,62000,22700" +st "dataOut" +ju 2 +blo "62000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2012,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16600,37500,17400" +st "dataOut : OUT std_ulogic_vector (registerBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 7 +suid 2040,0 +) +) +) +*93 (CptPort +uid 2043,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2073,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,23625,63750,24375" +) +tg (CPTG +uid 2045,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2046,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,23300,62000,24700" +st "dataIn" +ju 2 +blo "62000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2047,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,37500,13400" +st "dataIn : IN std_ulogic_vector (registerBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,16000,63000,32000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,31700,53100,32900" +st "NanoBlaze" +blo "47100,32700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,32900,52900,34100" +st "nanoBlaze" +blo "47100,33900" +) +) +gi *94 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,10,0" +) +xt "47000,34400,70400,44000" +st "Generic Declarations + +addressBitNb positive 8 +registerBitNb positive 8 +programCounterBitNb positive 10 +stackPointerBitNb positive 5 +registerAddressBitNb positive 4 +scratchpadAddressBitNb natural 6 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "registerBitNb" +type "positive" +value "8" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "6" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*95 (Grouping +uid 136,0 +optionalChildren [ +*96 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65500,61200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61500,78200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*98 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63500,61200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*99 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63500,57200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*100 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,92300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*101 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61500,82200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*102 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "62350,61400,72650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*103 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64500,57200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*104 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65500,57200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*105 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64500,61200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *106 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +uid 103,0 +va (VaSet +font "arial,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*108 (MLText +uid 104,0 +va (VaSet +font "Verdana,10,0" +) +xt "0,1200,18600,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "117,42,1411,895" +viewArea "-1465,-1465,100023,68302" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32200,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31300,16700" +st "" +blo "29100,16500" +) +) +gi *109 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *110 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,9400,8600,10600" +st "Declarations" +blo "0,10400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,10600,4200,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,19800,3700,21000" +st "User:" +blo "0,20800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "0,9400,9400,10600" +st "Internal User:" +blo "0,10400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21000,2000,21000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2497,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/nano@processor/struct.bd b/Libs/NanoBlaze/hds/nano@processor/struct.bd new file mode 100644 index 0000000..4ed69a3 --- /dev/null +++ b/Libs/NanoBlaze/hds/nano@processor/struct.bd @@ -0,0 +1,10945 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_PC" +duLibraryName "nanoBlaze" +duName "programCounter" +elements [ +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +] +mwi 0 +uid 21353,0 +) +(Instance +name "I_ctrl" +duLibraryName "NanoBlaze" +duName "controller" +elements [ +(GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "branchCondBitNb" +type "positive" +value "branchCondBitNb" +) +(GiElement +name "opCodeBitNb" +type "positive" +value "opCodeBitNb" +) +] +mwi 0 +uid 22103,0 +) +(Instance +name "I_BR" +duLibraryName "nanoBlaze" +duName "branchStack" +elements [ +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +] +mwi 0 +uid 22136,0 +) +(Instance +name "I_alu" +duLibraryName "NanoBlaze" +duName "aluAndRegs" +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "aluCodeBitNb" +type "positive" +value "aluCodeBitNb" +) +(GiElement +name "portAddressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +mwi 0 +uid 22621,0 +) +(Instance +name "I_instr" +duLibraryName "NanoBlaze" +duName "instructionDecoder" +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "aluCodeBitNb" +type "positive" +value "aluCodeBitNb" +) +(GiElement +name "instructionBitNb" +type "positive" +value "instructionBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "opCodeBitNb" +type "positive" +value "opCodeBitNb" +) +(GiElement +name "branchCondBitNb" +type "positive" +value "branchCondBitNb" +) +(GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "spadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +(GiElement +name "portAddressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 22782,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb3" +number "3" +) +(EmbeddedInstance +name "eb4" +number "4" +) +] +frameInstances [ +(FrameInstance +name "g_scratchpad" +style 1 +insts [ +(Instance +name "I_sPad" +duLibraryName "NanoBlaze" +duName "scratchpad" +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "spadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +mwi 0 +uid 22654,0 +) +] +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoProcessor" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "nanoProcessor" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoProcessor" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoProcessor\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "07:38:43" +) +(vvPair +variable "unit" +value "nanoProcessor" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 812,0 +optionalChildren [ +*2 (CommentText +uid 814,0 +shape (Rectangle +uid 815,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "156000,202000,175000,204000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 816,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "156200,202400,171600,203600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 817,0 +shape (Rectangle +uid 818,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,202000,150000,204000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 819,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "131250,202250,142750,203750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 820,0 +shape (Rectangle +uid 821,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "129000,208000,150000,210000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 822,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "129200,208400,147600,209600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 823,0 +shape (Rectangle +uid 824,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "150000,202000,156000,204000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 825,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "150200,202400,154900,203600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 826,0 +shape (Rectangle +uid 827,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "129000,204000,150000,206000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 828,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "129200,204400,144400,205600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 829,0 +shape (Rectangle +uid 830,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,204000,129000,206000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 831,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,204400,127600,205600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 832,0 +shape (Rectangle +uid 833,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,206000,129000,208000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 834,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,206400,127600,207600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 835,0 +shape (Rectangle +uid 836,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "150000,204000,175000,210000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 837,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "150200,204200,164300,205400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 838,0 +shape (Rectangle +uid 839,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "129000,206000,150000,208000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 840,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "129200,206400,139100,207600" +st " + +%library/%unit/%view + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 841,0 +shape (Rectangle +uid 842,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,208000,129000,210000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 843,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,208400,128500,209600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 813,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "124000,202000,175000,210000" +) +oxt "13000,22000,64000,30000" +) +*12 (Net +uid 3306,0 +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 7,0 +) +declText (MLText +uid 3307,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,3600,42500,4400" +st "reset : std_ulogic" +) +) +*13 (PortIoIn +uid 7091,0 +shape (CompositeShape +uid 7092,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 7093,0 +sl 0 +ro 270 +xt "51000,165625,52500,166375" +) +(Line +uid 7094,0 +sl 0 +ro 270 +xt "52500,166000,53000,166000" +pts [ +"52500,166000" +"53000,166000" +] +) +] +) +tg (WTG +uid 7095,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7096,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45900,165300,50000,166700" +st "reset" +ju 2 +blo "50000,166500" +tm "WireNameMgr" +) +s (Text +uid 7097,0 +va (VaSet +font "Verdana,12,0" +) +xt "45900,166700,45900,166700" +ju 2 +blo "45900,166700" +tm "SignalTypeMgr" +) +) +) +*14 (PortIoOut +uid 16414,0 +shape (CompositeShape +uid 16415,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16416,0 +sl 0 +ro 270 +xt "157500,114625,159000,115375" +) +(Line +uid 16417,0 +sl 0 +ro 270 +xt "157000,115000,157500,115000" +pts [ +"157000,115000" +"157500,115000" +] +) +] +) +tg (WTG +uid 16418,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16419,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,114500,168700,115900" +st "readStrobe" +blo "160000,115700" +tm "WireNameMgr" +) +s (Text +uid 16420,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,115900,160000,115900" +blo "160000,115900" +tm "SignalTypeMgr" +) +) +) +*15 (Net +uid 16427,0 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 11 +suid 155,0 +) +declText (MLText +uid 16428,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,7600,42500,8400" +st "readStrobe : std_uLogic" +) +) +*16 (PortIoOut +uid 16429,0 +shape (CompositeShape +uid 16430,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16431,0 +sl 0 +ro 270 +xt "157500,116625,159000,117375" +) +(Line +uid 16432,0 +sl 0 +ro 270 +xt "157000,117000,157500,117000" +pts [ +"157000,117000" +"157500,117000" +] +) +] +) +tg (WTG +uid 16433,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16434,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,116500,169000,117900" +st "writeStrobe" +blo "160000,117700" +tm "WireNameMgr" +) +s (Text +uid 16435,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,117900,160000,117900" +blo "160000,117900" +tm "SignalTypeMgr" +) +) +) +*17 (Net +uid 16442,0 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 12 +suid 156,0 +) +declText (MLText +uid 16443,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,8400,42500,9200" +st "writeStrobe : std_uLogic" +) +) +*18 (PortIoOut +uid 16474,0 +shape (CompositeShape +uid 16475,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16476,0 +sl 0 +ro 270 +xt "157500,104625,159000,105375" +) +(Line +uid 16477,0 +sl 0 +ro 270 +xt "157000,105000,157500,105000" +pts [ +"157000,105000" +"157500,105000" +] +) +] +) +tg (WTG +uid 16478,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16479,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,104500,189800,105900" +st "dataAddress : (addressBitNb-1 DOWNTO 0)" +blo "160000,105700" +tm "WireNameMgr" +) +s (Text +uid 16480,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,105900,160000,105900" +blo "160000,105900" +tm "SignalTypeMgr" +) +) +) +*19 (Net +uid 16487,0 +decl (Decl +n "dataAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 159,0 +) +declText (MLText +uid 16488,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,4400,54500,5200" +st "dataAddress : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*20 (PortIoOut +uid 16489,0 +shape (CompositeShape +uid 16490,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16491,0 +sl 0 +ro 270 +xt "157500,128625,159000,129375" +) +(Line +uid 16492,0 +sl 0 +ro 270 +xt "157000,129000,157500,129000" +pts [ +"157000,129000" +"157500,129000" +] +) +] +) +tg (WTG +uid 16493,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16494,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,128500,186800,129900" +st "dataOut : (registerBitNb-1 DOWNTO 0)" +blo "160000,129700" +tm "WireNameMgr" +) +s (Text +uid 16495,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,129900,160000,129900" +blo "160000,129900" +tm "SignalTypeMgr" +) +) +) +*21 (Net +uid 16502,0 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 8 +suid 160,0 +) +declText (MLText +uid 16503,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,5200,59500,6000" +st "dataOut : std_ulogic_vector(registerBitNb-1 DOWNTO 0)" +) +) +*22 (PortIoOut +uid 16504,0 +shape (CompositeShape +uid 16505,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16506,0 +sl 0 +ro 90 +xt "51000,52625,52500,53375" +) +(Line +uid 16507,0 +sl 0 +ro 90 +xt "52500,53000,53000,53000" +pts [ +"53000,53000" +"52500,53000" +] +) +] +) +tg (WTG +uid 16508,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16509,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45500,52300,50000,53700" +st "intAck" +ju 2 +blo "50000,53500" +tm "WireNameMgr" +) +s (Text +uid 16510,0 +va (VaSet +font "Verdana,12,0" +) +xt "45500,53700,45500,53700" +ju 2 +blo "45500,53700" +tm "SignalTypeMgr" +) +) +) +*23 (Net +uid 16517,0 +decl (Decl +n "intAck" +t "std_ulogic" +o 9 +suid 161,0 +) +declText (MLText +uid 16518,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,6000,42500,6800" +st "intAck : std_ulogic" +) +) +*24 (PortIoIn +uid 16853,0 +shape (CompositeShape +uid 16854,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16855,0 +sl 0 +ro 270 +xt "51000,163625,52500,164375" +) +(Line +uid 16856,0 +sl 0 +ro 270 +xt "52500,164000,53000,164000" +pts [ +"52500,164000" +"53000,164000" +] +) +] +) +tg (WTG +uid 16857,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16858,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "46200,163500,50000,164900" +st "clock" +ju 2 +blo "50000,164700" +tm "WireNameMgr" +) +s (Text +uid 16859,0 +va (VaSet +font "Verdana,12,0" +) +xt "46200,164900,46200,164900" +ju 2 +blo "46200,164900" +tm "SignalTypeMgr" +) +) +) +*25 (Net +uid 16866,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 163,0 +) +declText (MLText +uid 16867,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-400,42500,400" +st "clock : std_ulogic" +) +) +*26 (PortIoIn +uid 16868,0 +shape (CompositeShape +uid 16869,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16870,0 +sl 0 +ro 90 +xt "157500,130625,159000,131375" +) +(Line +uid 16871,0 +sl 0 +ro 90 +xt "157000,131000,157500,131000" +pts [ +"157500,131000" +"157000,131000" +] +) +] +) +tg (WTG +uid 16872,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16873,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,130300,185800,131700" +st "dataIn : (registerBitNb-1 DOWNTO 0)" +blo "160000,131500" +tm "WireNameMgr" +) +s (Text +uid 16874,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,131700,160000,131700" +blo "160000,131700" +tm "SignalTypeMgr" +) +) +) +*27 (Net +uid 16881,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 164,0 +) +declText (MLText +uid 16882,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,400,59500,1200" +st "dataIn : std_ulogic_vector(registerBitNb-1 DOWNTO 0)" +) +) +*28 (PortIoIn +uid 16883,0 +shape (CompositeShape +uid 16884,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16885,0 +sl 0 +ro 270 +xt "51000,161625,52500,162375" +) +(Line +uid 16886,0 +sl 0 +ro 270 +xt "52500,162000,53000,162000" +pts [ +"52500,162000" +"53000,162000" +] +) +] +) +tg (WTG +uid 16887,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16888,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "47600,161500,50000,162900" +st "en" +ju 2 +blo "50000,162700" +tm "WireNameMgr" +) +s (Text +uid 16889,0 +va (VaSet +font "Verdana,12,0" +) +xt "47600,162900,47600,162900" +ju 2 +blo "47600,162900" +tm "SignalTypeMgr" +) +) +) +*29 (Net +uid 16896,0 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 165,0 +) +declText (MLText +uid 16897,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,1200,42500,2000" +st "en : std_ulogic" +) +) +*30 (PortIoIn +uid 16898,0 +shape (CompositeShape +uid 16899,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 16900,0 +sl 0 +ro 270 +xt "51000,50625,52500,51375" +) +(Line +uid 16901,0 +sl 0 +ro 270 +xt "52500,51000,53000,51000" +pts [ +"52500,51000" +"53000,51000" +] +) +] +) +tg (WTG +uid 16902,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16903,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "47600,50500,50000,51900" +st "int" +ju 2 +blo "50000,51700" +tm "WireNameMgr" +) +s (Text +uid 16904,0 +va (VaSet +font "Verdana,12,0" +) +xt "47600,51900,47600,51900" +ju 2 +blo "47600,51900" +tm "SignalTypeMgr" +) +) +) +*31 (Net +uid 16911,0 +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 166,0 +) +declText (MLText +uid 16912,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,2800,42500,3600" +st "int : std_uLogic" +) +) +*32 (Net +uid 17292,0 +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 36 +suid 167,0 +) +declText (MLText +uid 17293,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,34400,46000,35200" +st "SIGNAL registerFileSel : std_ulogic" +) +) +*33 (Net +uid 17300,0 +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 22 +suid 168,0 +) +declText (MLText +uid 17301,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,23200,46000,24000" +st "SIGNAL instrDataSel : std_ulogic" +) +) +*34 (Net +uid 17308,0 +decl (Decl +n "portInSel" +t "std_ulogic" +o 29 +suid 169,0 +) +declText (MLText +uid 17309,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,28800,46000,29600" +st "SIGNAL portInSel : std_ulogic" +) +) +*35 (Net +uid 17316,0 +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 37 +suid 170,0 +) +declText (MLText +uid 17317,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,35200,46000,36000" +st "SIGNAL scratchpadSel : std_ulogic" +) +) +*36 (Net +uid 17324,0 +decl (Decl +n "cIn" +t "std_ulogic" +o 17 +suid 171,0 +) +declText (MLText +uid 17325,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,19200,46000,20000" +st "SIGNAL cIn : std_ulogic" +) +) +*37 (Net +uid 17332,0 +decl (Decl +n "cOut" +t "std_ulogic" +o 18 +suid 172,0 +) +declText (MLText +uid 17333,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,20000,46000,20800" +st "SIGNAL cOut : std_ulogic" +) +) +*38 (Net +uid 17340,0 +decl (Decl +n "zero" +t "std_ulogic" +o 48 +suid 173,0 +) +declText (MLText +uid 17341,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,44000,46000,44800" +st "SIGNAL zero : std_ulogic" +) +) +*39 (Net +uid 17579,0 +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 24 +suid 174,0 +) +declText (MLText +uid 17580,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,24800,63500,25600" +st "SIGNAL intCode : std_ulogic_vector( intCodeBitNb-1 DOWNTO 0 )" +) +) +*40 (Net +uid 17595,0 +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "( opCodeBitNb-1 DOWNTO 0 )" +o 27 +suid 176,0 +) +declText (MLText +uid 17596,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,27200,63000,28000" +st "SIGNAL opCode : std_ulogic_vector( opCodeBitNb-1 DOWNTO 0 )" +) +) +*41 (Net +uid 17603,0 +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 15 +suid 177,0 +) +declText (MLText +uid 17604,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,17600,63500,18400" +st "SIGNAL aluCode : std_ulogic_vector( aluCodeBitNb-1 DOWNTO 0 )" +) +) +*42 (Net +uid 17609,0 +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 13 +suid 178,0 +) +declText (MLText +uid 17610,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,16000,63000,16800" +st "SIGNAL addrA : unsigned( registerAddressBitNb-1 DOWNTO 0 )" +) +) +*43 (Net +uid 17615,0 +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 14 +suid 179,0 +) +declText (MLText +uid 17616,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,16800,63000,17600" +st "SIGNAL addrB : unsigned( registerAddressBitNb-1 DOWNTO 0 )" +) +) +*44 (Net +uid 17621,0 +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 21 +suid 180,0 +) +declText (MLText +uid 17622,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,22400,58500,23200" +st "SIGNAL instrData : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*45 (PortIoOut +uid 17844,0 +shape (CompositeShape +uid 17845,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 17846,0 +sl 0 +ro 270 +xt "157500,72625,159000,73375" +) +(Line +uid 17847,0 +sl 0 +ro 270 +xt "157000,73000,157500,73000" +pts [ +"157000,73000" +"157500,73000" +] +) +] +) +tg (WTG +uid 17848,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17849,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,72500,196700,73900" +st "progCounter : ( programCounterBitNb-1 DOWNTO 0 )" +blo "160000,73700" +tm "WireNameMgr" +) +s (Text +uid 17850,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,73900,160000,73900" +blo "160000,73900" +tm "SignalTypeMgr" +) +) +) +*46 (PortIoIn +uid 17859,0 +shape (CompositeShape +uid 17860,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 17861,0 +sl 0 +ro 90 +xt "157500,96625,159000,97375" +) +(Line +uid 17862,0 +sl 0 +ro 90 +xt "157000,97000,157500,97000" +pts [ +"157500,97000" +"157000,97000" +] +) +] +) +tg (WTG +uid 17863,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17864,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "160000,96300,190700,97700" +st "instruction : (instructionBitNb-1 DOWNTO 0)" +blo "160000,97500" +tm "WireNameMgr" +) +s (Text +uid 17865,0 +va (VaSet +font "Verdana,12,0" +) +xt "160000,97700,160000,97700" +blo "160000,97700" +tm "SignalTypeMgr" +) +) +) +*47 (Net +uid 17872,0 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 4 +suid 183,0 +) +declText (MLText +uid 17873,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,2000,61000,2800" +st "instruction : std_ulogic_vector(instructionBitNb-1 DOWNTO 0)" +) +) +*48 (Net +uid 18051,0 +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 20 +suid 184,0 +) +declText (MLText +uid 18052,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,21600,62500,22400" +st "SIGNAL instrAddress : unsigned( programCounterBitNb-1 DOWNTO 0 )" +) +) +*49 (Net +uid 18057,0 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 10 +suid 185,0 +) +declText (MLText +uid 18058,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,6800,59000,7600" +st "progCounter : unsigned( programCounterBitNb-1 DOWNTO 0 )" +) +) +*50 (Net +uid 18205,0 +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 26 +suid 186,0 +) +declText (MLText +uid 18206,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,26400,46000,27200" +st "SIGNAL loadStoredPC : std_ulogic" +) +) +*51 (Net +uid 18213,0 +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 25 +suid 187,0 +) +declText (MLText +uid 18214,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,25600,46000,26400" +st "SIGNAL loadInstrAddress : std_ulogic" +) +) +*52 (Net +uid 18221,0 +decl (Decl +n "incPC" +t "std_ulogic" +o 19 +suid 188,0 +) +declText (MLText +uid 18222,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,20800,46000,21600" +st "SIGNAL incPC : std_ulogic" +) +) +*53 (Net +uid 18274,0 +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 46 +suid 189,0 +) +declText (MLText +uid 18275,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,42400,62500,43200" +st "SIGNAL storedProgCounter : unsigned( programCounterBitNb-1 DOWNTO 0 )" +) +) +*54 (Net +uid 18288,0 +decl (Decl +n "storePC" +t "std_ulogic" +o 45 +suid 191,0 +) +declText (MLText +uid 18289,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,41600,46000,42400" +st "SIGNAL storePC : std_ulogic" +) +) +*55 (HdlText +uid 18573,0 +optionalChildren [ +*56 (EmbeddedText +uid 18602,0 +commentText (CommentText +uid 18603,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 18604,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "133000,102000,149000,110000" +) +oxt "0,0,18000,5000" +text (MLText +uid 18605,0 +va (VaSet +) +xt "133200,102200,148300,107000" +st " +dataAddress <= portInstrAddress when portIndexedSel = '0' else portRegAddress; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 18574,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "133000,101000,149000,111000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 18575,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 18576,0 +va (VaSet +) +xt "133400,111000,134600,112000" +st "eb1" +blo "133400,111800" +tm "HdlTextNameMgr" +) +*58 (Text +uid 18577,0 +va (VaSet +) +xt "133400,112000,133800,113000" +st "1" +blo "133400,112800" +tm "HdlTextNumberMgr" +) +] +) +) +*59 (Net +uid 18630,0 +decl (Decl +n "scratchpadWrite" +t "std_ulogic" +o 38 +suid 200,0 +) +declText (MLText +uid 18631,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,36000,46000,36800" +st "SIGNAL scratchpadWrite : std_ulogic" +) +) +*60 (Net +uid 18872,0 +decl (Decl +n "regWrite" +t "std_ulogic" +o 35 +suid 203,0 +) +declText (MLText +uid 18873,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,33600,46000,34400" +st "SIGNAL regWrite : std_ulogic" +) +) +*61 (HdlText +uid 18991,0 +optionalChildren [ +*62 (EmbeddedText +uid 18996,0 +commentText (CommentText +uid 18997,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 18998,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "133000,126000,149000,134000" +) +oxt "0,0,18000,5000" +text (MLText +uid 18999,0 +va (VaSet +) +xt "133200,126200,149000,131000" +st " +dataOut <= std_ulogic_vector(portOut); +portIn <= signed(dataIn); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 18992,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "133000,125000,149000,135000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 18993,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +uid 18994,0 +va (VaSet +) +xt "133400,135000,135000,136000" +st "eb2" +blo "133400,135800" +tm "HdlTextNameMgr" +) +*64 (Text +uid 18995,0 +va (VaSet +) +xt "133400,136000,134200,137000" +st "2" +blo "133400,136800" +tm "HdlTextNumberMgr" +) +] +) +) +*65 (Net +uid 19000,0 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 32 +suid 204,0 +) +declText (MLText +uid 19001,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,31200,58500,32000" +st "SIGNAL portOut : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*66 (Net +uid 19008,0 +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 28 +suid 205,0 +) +declText (MLText +uid 19009,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,28000,58500,28800" +st "SIGNAL portIn : signed( registerBitNb-1 DOWNTO 0 )" +) +) +*67 (Net +uid 19792,0 +decl (Decl +n "spadIn" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 40 +suid 207,0 +) +declText (MLText +uid 19793,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,37600,57500,38400" +st "SIGNAL spadIn : signed(registerBitNb-1 DOWNTO 0)" +) +) +*68 (Net +uid 19794,0 +decl (Decl +n "spadOut" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 43 +suid 208,0 +) +declText (MLText +uid 19795,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,40000,57500,40800" +st "SIGNAL spadOut : signed(registerBitNb-1 DOWNTO 0)" +) +) +*69 (Net +uid 19800,0 +decl (Decl +n "portIndexedSel" +t "std_ulogic" +o 30 +suid 209,0 +) +declText (MLText +uid 19801,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,29600,46000,30400" +st "SIGNAL portIndexedSel : std_ulogic" +) +) +*70 (Net +uid 19804,0 +decl (Decl +n "portInstrAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 31 +suid 210,0 +) +declText (MLText +uid 19805,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,30400,58000,31200" +st "SIGNAL portInstrAddress : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*71 (Net +uid 19812,0 +decl (Decl +n "spadInstrAddress" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 42 +suid 212,0 +) +declText (MLText +uid 19813,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,39200,63000,40000" +st "SIGNAL spadInstrAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0)" +) +) +*72 (Net +uid 19966,0 +decl (Decl +n "spadIndexedSel" +t "std_ulogic" +o 41 +suid 213,0 +) +declText (MLText +uid 19967,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,38400,46000,39200" +st "SIGNAL spadIndexedSel : std_ulogic" +) +) +*73 (HdlText +uid 19974,0 +optionalChildren [ +*74 (EmbeddedText +uid 19979,0 +commentText (CommentText +uid 19980,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 19981,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "133000,144000,149000,152000" +) +oxt "0,0,18000,5000" +text (MLText +uid 19982,0 +va (VaSet +) +xt "133200,144200,148700,149000" +st " +spadAddress <= spadInstrAddress when spadIndexedSel = '0' else spadRegAddress; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 8000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 19975,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "133000,143000,149000,153000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 19976,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 19977,0 +va (VaSet +) +xt "133400,153000,135000,154000" +st "eb3" +blo "133400,153800" +tm "HdlTextNameMgr" +) +*76 (Text +uid 19978,0 +va (VaSet +) +xt "133400,154000,134200,155000" +st "3" +blo "133400,154800" +tm "HdlTextNumberMgr" +) +] +) +) +*77 (Net +uid 20003,0 +decl (Decl +n "spadRegAddress" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 44 +suid 216,0 +) +declText (MLText +uid 20004,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,40800,63000,41600" +st "SIGNAL spadRegAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0)" +) +) +*78 (Net +uid 20017,0 +decl (Decl +n "portRegAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 33 +suid 218,0 +) +declText (MLText +uid 20018,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,32000,58000,32800" +st "SIGNAL portRegAddress : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*79 (Net +uid 20262,0 +decl (Decl +n "spadAddress" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 39 +suid 219,0 +) +declText (MLText +uid 20263,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,36800,63000,37600" +st "SIGNAL spadAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0)" +) +) +*80 (SaComponent +uid 21353,0 +optionalChildren [ +*81 (CptPort +uid 21321,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21322,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,80625,93000,81375" +) +tg (CPTG +uid 21323,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21324,0 +va (VaSet +) +xt "94000,80500,96100,81500" +st "clock" +blo "94000,81300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 17,0 +) +) +) +*82 (CptPort +uid 21325,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21326,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,72625,117750,73375" +) +tg (CPTG +uid 21327,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21328,0 +va (VaSet +) +xt "110900,72500,116000,73500" +st "progCounter" +ju 2 +blo "116000,73300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 2 +suid 18,0 +) +) +) +*83 (CptPort +uid 21329,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21330,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "104625,68250,105375,69000" +) +tg (CPTG +uid 21331,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 21332,0 +va (VaSet +) +xt "99800,70000,107100,71000" +st "storedProgCounter" +ju 2 +blo "107100,70800" +) +) +thePort (LogicalPort +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 1 +suid 24,0 +) +) +) +*84 (CptPort +uid 21333,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21334,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "104625,85000,105375,85750" +) +tg (CPTG +uid 21335,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21336,0 +va (VaSet +) +xt "101000,83000,106100,84000" +st "instrAddress" +blo "101000,83800" +) +) +thePort (LogicalPort +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 4 +suid 27,0 +) +) +) +*85 (CptPort +uid 21337,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21338,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,82625,93000,83375" +) +tg (CPTG +uid 21339,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21340,0 +va (VaSet +) +xt "94000,82500,96100,83500" +st "reset" +blo "94000,83300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*86 (CptPort +uid 21341,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21342,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,72625,93000,73375" +) +tg (CPTG +uid 21343,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21344,0 +va (VaSet +) +xt "94000,72500,96500,73500" +st "incPC" +blo "94000,73300" +) +) +thePort (LogicalPort +decl (Decl +n "incPC" +t "std_ulogic" +o 6 +suid 29,0 +) +) +) +*87 (CptPort +uid 21345,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21346,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,74625,93000,75375" +) +tg (CPTG +uid 21347,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21348,0 +va (VaSet +) +xt "94000,74500,100500,75500" +st "loadInstrAddress" +blo "94000,75300" +) +) +thePort (LogicalPort +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*88 (CptPort +uid 21349,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 21350,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,76625,93000,77375" +) +tg (CPTG +uid 21351,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 21352,0 +va (VaSet +) +xt "94000,76500,99500,77500" +st "loadStoredPC" +blo "94000,77300" +) +) +thePort (LogicalPort +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 8 +suid 31,0 +) +) +) +] +shape (Rectangle +uid 21354,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,69000,117000,85000" +) +oxt "41000,25000,65000,41000" +ttg (MlTextGroup +uid 21355,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 21356,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,85000,97900,86000" +st "nanoBlaze" +blo "93600,85800" +tm "BdLibraryNameMgr" +) +*90 (Text +uid 21357,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,86000,100700,87000" +st "programCounter" +blo "93600,86800" +tm "CptNameMgr" +) +*91 (Text +uid 21358,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,87000,95700,88000" +st "I_PC" +blo "93600,87800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 21359,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 21360,0 +text (MLText +uid 21361,0 +va (VaSet +font "Courier New,8,0" +) +xt "93000,88200,124500,89000" +st "programCounterBitNb = programCounterBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*92 (Net +uid 21553,0 +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "(branchCondBitNb-1 DOWNTO 0)" +o 16 +suid 220,0 +) +declText (MLText +uid 21554,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,18400,64000,19200" +st "SIGNAL branchCond : std_ulogic_vector(branchCondBitNb-1 DOWNTO 0)" +) +) +*93 (Net +uid 21555,0 +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 47 +suid 221,0 +) +declText (MLText +uid 21556,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,43200,46000,44000" +st "SIGNAL twoRegInstr : std_ulogic" +) +) +*94 (SaComponent +uid 22103,0 +optionalChildren [ +*95 (CptPort +uid 22003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22004,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,98625,77750,99375" +) +tg (CPTG +uid 22005,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22006,0 +va (VaSet +) +xt "71100,98500,76000,99500" +st "branchCond" +ju 2 +blo "76000,99300" +) +) +thePort (LogicalPort +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "( branchCondBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +) +*96 (CptPort +uid 22007,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22008,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,136625,77750,137375" +) +tg (CPTG +uid 22009,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22010,0 +va (VaSet +) +xt "74600,136500,76000,137500" +st "cIn" +ju 2 +blo "76000,137300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cIn" +t "std_ulogic" +o 10 +suid 2,0 +) +) +) +*97 (CptPort +uid 22011,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22012,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,163625,61000,164375" +) +tg (CPTG +uid 22013,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22014,0 +va (VaSet +) +xt "62000,163500,64100,164500" +st "clock" +blo "62000,164300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*98 (CptPort +uid 22015,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22016,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,138625,77750,139375" +) +tg (CPTG +uid 22017,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22018,0 +va (VaSet +) +xt "74000,138500,76000,139500" +st "cOut" +ju 2 +blo "76000,139300" +) +) +thePort (LogicalPort +decl (Decl +n "cOut" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*99 (CptPort +uid 22019,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22020,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,50625,77750,51375" +) +tg (CPTG +uid 22021,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22022,0 +va (VaSet +) +xt "73100,50500,76000,51500" +st "prevPC" +ju 2 +blo "76000,51300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "prevPC" +t "std_ulogic" +o 11 +suid 5,0 +) +) +) +*100 (CptPort +uid 22023,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22024,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,161625,61000,162375" +) +tg (CPTG +uid 22025,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22026,0 +va (VaSet +) +xt "62000,161500,63200,162500" +st "en" +blo "62000,162300" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*101 (CptPort +uid 22027,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22028,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,72625,77750,73375" +) +tg (CPTG +uid 22029,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22030,0 +va (VaSet +) +xt "73500,72500,76000,73500" +st "incPC" +ju 2 +blo "76000,73300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "incPC" +t "std_ulogic" +o 12 +suid 7,0 +) +) +) +*102 (CptPort +uid 22031,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22032,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,126625,77750,127375" +) +tg (CPTG +uid 22033,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22034,0 +va (VaSet +) +xt "71000,126500,76000,127500" +st "instrDataSel" +ju 2 +blo "76000,127300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 13 +suid 8,0 +) +) +) +*103 (CptPort +uid 22035,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22036,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,50625,61000,51375" +) +tg (CPTG +uid 22037,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22038,0 +va (VaSet +) +xt "62000,50500,63200,51500" +st "int" +blo "62000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 9,0 +) +) +) +*104 (CptPort +uid 22039,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22040,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,52625,61000,53375" +) +tg (CPTG +uid 22041,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22042,0 +va (VaSet +) +xt "62000,52500,64400,53500" +st "intAck" +blo "62000,53300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 14 +suid 10,0 +) +) +) +*105 (CptPort +uid 22043,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22044,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,96625,77750,97375" +) +tg (CPTG +uid 22045,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22046,0 +va (VaSet +) +xt "73000,96500,76000,97500" +st "intCode" +ju 2 +blo "76000,97300" +) +) +thePort (LogicalPort +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 6 +suid 11,0 +) +) +) +*106 (CptPort +uid 22047,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22048,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,74625,77750,75375" +) +tg (CPTG +uid 22049,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22050,0 +va (VaSet +) +xt "69500,74500,76000,75500" +st "loadInstrAddress" +ju 2 +blo "76000,75300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 15 +suid 12,0 +) +) +) +*107 (CptPort +uid 22051,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22052,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,76625,77750,77375" +) +tg (CPTG +uid 22053,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22054,0 +va (VaSet +) +xt "70500,76500,76000,77500" +st "loadStoredPC" +ju 2 +blo "76000,77300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 16 +suid 13,0 +) +) +) +*108 (CptPort +uid 22055,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22056,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,102625,77750,103375" +) +tg (CPTG +uid 22057,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22058,0 +va (VaSet +) +xt "73000,102500,76000,103500" +st "opCode" +ju 2 +blo "76000,103300" +) +) +thePort (LogicalPort +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "(opCodeBitNb-1 DOWNTO 0)" +o 7 +suid 14,0 +) +) +) +*109 (CptPort +uid 22059,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22060,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,128625,77750,129375" +) +tg (CPTG +uid 22061,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22062,0 +va (VaSet +) +xt "72600,128500,76000,129500" +st "portInSel" +ju 2 +blo "76000,129300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "portInSel" +t "std_ulogic" +o 17 +suid 15,0 +) +) +) +*110 (CptPort +uid 22063,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22064,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,114625,77750,115375" +) +tg (CPTG +uid 22065,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22066,0 +va (VaSet +) +xt "71500,114500,76000,115500" +st "readStrobe" +ju 2 +blo "76000,115300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 18 +suid 16,0 +) +) +) +*111 (CptPort +uid 22067,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22068,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,124625,77750,125375" +) +tg (CPTG +uid 22069,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22070,0 +va (VaSet +) +xt "70100,124500,76000,125500" +st "registerFileSel" +ju 2 +blo "76000,125300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 20 +suid 17,0 +) +) +) +*112 (CptPort +uid 22071,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22072,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60250,165625,61000,166375" +) +tg (CPTG +uid 22073,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22074,0 +va (VaSet +) +xt "62000,165500,64100,166500" +st "reset" +blo "62000,166300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 18,0 +) +) +) +*113 (CptPort +uid 22075,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22076,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,130625,77750,131375" +) +tg (CPTG +uid 22077,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22078,0 +va (VaSet +) +xt "70400,130500,76000,131500" +st "scratchpadSel" +ju 2 +blo "76000,131300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 21 +suid 19,0 +) +) +) +*114 (CptPort +uid 22079,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22080,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,160625,77750,161375" +) +tg (CPTG +uid 22081,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22082,0 +va (VaSet +) +xt "69700,160500,76000,161500" +st "scratchpadWrite" +ju 2 +blo "76000,161300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "scratchpadWrite" +t "std_ulogic" +o 22 +suid 20,0 +) +) +) +*115 (CptPort +uid 22083,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22084,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,52625,77750,53375" +) +tg (CPTG +uid 22085,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22086,0 +va (VaSet +) +xt "72800,52500,76000,53500" +st "storePC" +ju 2 +blo "76000,53300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "storePC" +t "std_ulogic" +o 23 +suid 21,0 +) +) +) +*116 (CptPort +uid 22087,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22088,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,116625,77750,117375" +) +tg (CPTG +uid 22089,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22090,0 +va (VaSet +) +xt "71400,116500,76000,117500" +st "writeStrobe" +ju 2 +blo "76000,117300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 24 +suid 23,0 +) +) +) +*117 (CptPort +uid 22091,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22092,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,140625,77750,141375" +) +tg (CPTG +uid 22093,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22094,0 +va (VaSet +) +xt "74100,140500,76000,141500" +st "zero" +ju 2 +blo "76000,141300" +) +) +thePort (LogicalPort +decl (Decl +n "zero" +t "std_ulogic" +o 9 +suid 24,0 +) +) +) +*118 (CptPort +uid 22095,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22096,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,132625,77750,133375" +) +tg (CPTG +uid 22097,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22098,0 +va (VaSet +) +xt "72600,132500,76000,133500" +st "regWrite" +ju 2 +blo "76000,133300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "regWrite" +t "std_ulogic" +o 19 +suid 25,0 +) +) +) +*119 (CptPort +uid 22099,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22100,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77000,104625,77750,105375" +) +tg (CPTG +uid 22101,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22102,0 +va (VaSet +) +xt "71100,104500,76000,105500" +st "twoRegInstr" +ju 2 +blo "76000,105300" +) +) +thePort (LogicalPort +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 25 +suid 26,0 +) +) +) +] +shape (Rectangle +uid 22104,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "61000,47000,77000,169000" +) +oxt "46000,6000,62000,128000" +ttg (MlTextGroup +uid 22105,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +uid 22106,0 +va (VaSet +font "Arial,8,1" +) +xt "61800,169000,66200,170000" +st "NanoBlaze" +blo "61800,169800" +tm "BdLibraryNameMgr" +) +*121 (Text +uid 22107,0 +va (VaSet +font "Arial,8,1" +) +xt "61800,170000,66200,171000" +st "controller" +blo "61800,170800" +tm "CptNameMgr" +) +*122 (Text +uid 22108,0 +va (VaSet +font "Arial,8,1" +) +xt "61800,171000,64000,172000" +st "I_ctrl" +blo "61800,171800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 22109,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 22110,0 +text (MLText +uid 22111,0 +va (VaSet +font "Courier New,8,0" +) +xt "61000,172200,88500,174600" +st "intCodeBitNb = 5 ( positive ) +branchCondBitNb = branchCondBitNb ( positive ) +opCodeBitNb = opCodeBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "branchCondBitNb" +type "positive" +value "branchCondBitNb" +) +(GiElement +name "opCodeBitNb" +type "positive" +value "opCodeBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*123 (SaComponent +uid 22136,0 +optionalChildren [ +*124 (CptPort +uid 22112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22113,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,56625,93000,57375" +) +tg (CPTG +uid 22114,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22115,0 +va (VaSet +) +xt "94000,56500,96100,57500" +st "clock" +blo "94000,57300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 17,0 +) +) +) +*125 (CptPort +uid 22116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22117,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,50625,117750,51375" +) +tg (CPTG +uid 22118,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22119,0 +va (VaSet +) +xt "110900,50500,116000,51500" +st "progCounter" +ju 2 +blo "116000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 3 +suid 18,0 +) +) +) +*126 (CptPort +uid 22120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22121,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "104625,61000,105375,61750" +) +tg (CPTG +uid 22122,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22123,0 +va (VaSet +) +xt "102000,59000,109300,60000" +st "storedProgCounter" +blo "102000,59800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 6 +suid 24,0 +) +) +) +*127 (CptPort +uid 22124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22125,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,58625,93000,59375" +) +tg (CPTG +uid 22126,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22127,0 +va (VaSet +) +xt "94000,58500,96100,59500" +st "reset" +blo "94000,59300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 28,0 +) +) +) +*128 (CptPort +uid 22128,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22129,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,50625,93000,51375" +) +tg (CPTG +uid 22130,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22131,0 +va (VaSet +) +xt "94000,50500,96900,51500" +st "prevPC" +blo "94000,51300" +) +) +thePort (LogicalPort +decl (Decl +n "prevPC" +t "std_ulogic" +o 2 +suid 29,0 +) +) +) +*129 (CptPort +uid 22132,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22133,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,52625,93000,53375" +) +tg (CPTG +uid 22134,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22135,0 +va (VaSet +) +xt "94000,52500,97200,53500" +st "storePC" +blo "94000,53300" +) +) +thePort (LogicalPort +decl (Decl +n "storePC" +t "std_ulogic" +o 5 +suid 31,0 +) +) +) +] +shape (Rectangle +uid 22137,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,47000,117000,61000" +) +oxt "41000,27000,65000,41000" +ttg (MlTextGroup +uid 22138,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*130 (Text +uid 22139,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,61000,97900,62000" +st "nanoBlaze" +blo "93600,61800" +tm "BdLibraryNameMgr" +) +*131 (Text +uid 22140,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,62000,99000,63000" +st "branchStack" +blo "93600,62800" +tm "CptNameMgr" +) +*132 (Text +uid 22141,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,63000,95800,64000" +st "I_BR" +blo "93600,63800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 22142,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 22143,0 +text (MLText +uid 22144,0 +va (VaSet +font "Courier New,8,0" +) +xt "93000,64200,124500,65800" +st "programCounterBitNb = programCounterBitNb ( positive ) +stackPointerBitNb = stackPointerBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*133 (Net +uid 22145,0 +decl (Decl +n "prevPC" +t "std_ulogic" +o 34 +suid 222,0 +) +declText (MLText +uid 22146,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,32800,46000,33600" +st "SIGNAL prevPC : std_ulogic" +) +) +*134 (Frame +uid 22468,0 +shape (RectFrame +uid 22469,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "87000,155000,119000,174000" +) +title (TextAssociate +uid 22470,0 +ps "TopLeftStrategy" +text (MLText +uid 22471,0 +va (VaSet +) +xt "87350,153500,119850,154700" +st "g_scratchpad: IF scratchpadAddressBitNb > 0 GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +uid 22472,0 +ps "TopLeftStrategy" +shape (Rectangle +uid 22473,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "87500,155200,88500,156800" +) +num (Text +uid 22474,0 +va (VaSet +) +xt "87800,155500,88200,156500" +st "1" +blo "87800,156300" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +uid 22475,0 +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*135 (Text +uid 22476,0 +va (VaSet +font "Arial,8,1" +) +xt "113000,174000,120900,175000" +st "Frame Declarations" +blo "113000,174800" +) +*136 (MLText +uid 22477,0 +va (VaSet +) +xt "113000,175000,113000,175000" +tm "BdFrameDeclTextMgr" +) +] +) +style 1 +) +*137 (SaComponent +uid 22621,0 +optionalChildren [ +*138 (CptPort +uid 22541,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22542,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,144625,93000,145375" +) +tg (CPTG +uid 22543,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22544,0 +va (VaSet +) +xt "94000,144500,96100,145500" +st "clock" +blo "94000,145300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 1,0 +) +) +) +*139 (CptPort +uid 22545,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22546,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "96625,120250,97375,121000" +) +tg (CPTG +uid 22547,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22548,0 +va (VaSet +) +xt "95300,122000,98500,123000" +st "aluCode" +blo "95300,122800" +) +) +thePort (LogicalPort +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 3 +suid 2,0 +) +) +) +*140 (CptPort +uid 22549,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22550,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,128625,93000,129375" +) +tg (CPTG +uid 22551,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22552,0 +va (VaSet +) +xt "94000,128500,97400,129500" +st "portInSel" +blo "94000,129300" +) +) +thePort (LogicalPort +decl (Decl +n "portInSel" +t "std_ulogic" +o 9 +suid 3,0 +) +) +) +*141 (CptPort +uid 22553,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22554,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,146625,93000,147375" +) +tg (CPTG +uid 22555,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22556,0 +va (VaSet +) +xt "94000,146500,96100,147500" +st "reset" +blo "94000,147300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 4,0 +) +) +) +*142 (CptPort +uid 22557,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22558,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,126625,117750,127375" +) +tg (CPTG +uid 22559,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22560,0 +va (VaSet +) +xt "112700,126500,116000,127500" +st "portAddr" +ju 2 +blo "116000,127300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "portAddr" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 16 +suid 5,0 +) +) +) +*143 (CptPort +uid 22561,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22562,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100625,120250,101375,121000" +) +tg (CPTG +uid 22563,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22564,0 +va (VaSet +) +xt "100200,122000,102600,123000" +st "addrA" +blo "100200,122800" +) +) +thePort (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 9,0 +) +) +) +*144 (CptPort +uid 22565,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22566,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "104625,120250,105375,121000" +) +tg (CPTG +uid 22567,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22568,0 +va (VaSet +) +xt "104400,122000,106800,123000" +st "addrB" +blo "104400,122800" +) +) +thePort (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 10,0 +) +) +) +*145 (CptPort +uid 22569,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22570,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "112625,120250,113375,121000" +) +tg (CPTG +uid 22571,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22572,0 +va (VaSet +) +xt "111300,122000,114800,123000" +st "instrData" +blo "111300,122800" +) +) +thePort (LogicalPort +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 11,0 +) +) +) +*146 (CptPort +uid 22573,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22574,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,126625,93000,127375" +) +tg (CPTG +uid 22575,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22576,0 +va (VaSet +) +xt "94000,126500,99000,127500" +st "instrDataSel" +blo "94000,127300" +) +) +thePort (LogicalPort +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 7 +suid 12,0 +) +) +) +*147 (CptPort +uid 22577,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22578,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,124625,93000,125375" +) +tg (CPTG +uid 22579,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22580,0 +va (VaSet +) +xt "94000,124500,99900,125500" +st "registerFileSel" +blo "94000,125300" +) +) +thePort (LogicalPort +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 11 +suid 13,0 +) +) +) +*148 (CptPort +uid 22581,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22582,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,130625,93000,131375" +) +tg (CPTG +uid 22583,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22584,0 +va (VaSet +) +xt "94000,130500,99600,131500" +st "scratchpadSel" +blo "94000,131300" +) +) +thePort (LogicalPort +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 13 +suid 14,0 +) +) +) +*149 (CptPort +uid 22585,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22586,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,136625,93000,137375" +) +tg (CPTG +uid 22587,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22588,0 +va (VaSet +) +xt "94000,136500,95400,137500" +st "cIn" +blo "94000,137300" +) +) +thePort (LogicalPort +decl (Decl +n "cIn" +t "std_ulogic" +o 4 +suid 15,0 +) +) +) +*150 (CptPort +uid 22589,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22590,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,138625,93000,139375" +) +tg (CPTG +uid 22591,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22592,0 +va (VaSet +) +xt "94000,138500,96000,139500" +st "cOut" +blo "94000,139300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "cOut" +t "std_ulogic" +o 15 +suid 16,0 +) +) +) +*151 (CptPort +uid 22593,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22594,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,140625,93000,141375" +) +tg (CPTG +uid 22595,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22596,0 +va (VaSet +) +xt "94000,140500,95900,141500" +st "zero" +blo "94000,141300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 20 +suid 17,0 +) +) +) +*152 (CptPort +uid 22597,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22598,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,128625,117750,129375" +) +tg (CPTG +uid 22599,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22600,0 +va (VaSet +) +xt "113100,128500,116000,129500" +st "portOut" +ju 2 +blo "116000,129300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 17 +suid 18,0 +) +) +) +*153 (CptPort +uid 22601,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22602,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,130625,117750,131375" +) +tg (CPTG +uid 22603,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22604,0 +va (VaSet +) +xt "113700,130500,116000,131500" +st "portIn" +ju 2 +blo "116000,131300" +) +) +thePort (LogicalPort +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 19,0 +) +) +) +*154 (CptPort +uid 22605,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22606,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "108625,149000,109375,149750" +) +tg (CPTG +uid 22607,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22608,0 +va (VaSet +) +xt "108000,147000,111200,148000" +st "spadOut" +blo "108000,147800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "spadOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 19 +suid 20,0 +) +) +) +*155 (CptPort +uid 22609,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22610,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "112625,149000,113375,149750" +) +tg (CPTG +uid 22611,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22612,0 +va (VaSet +) +xt "112000,147000,114600,148000" +st "spadIn" +blo "112000,147800" +) +) +thePort (LogicalPort +decl (Decl +n "spadIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 14 +suid 21,0 +) +) +) +*156 (CptPort +uid 22613,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22614,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,132625,93000,133375" +) +tg (CPTG +uid 22615,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22616,0 +va (VaSet +) +xt "94000,132500,97400,133500" +st "regWrite" +blo "94000,133300" +) +) +thePort (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 23,0 +) +) +) +*157 (CptPort +uid 22617,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22618,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,134625,117750,135375" +) +tg (CPTG +uid 22619,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22620,0 +va (VaSet +) +xt "109900,134500,116000,135500" +st "scratchpadAddr" +ju 2 +blo "116000,135300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "scratchpadAddr" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 18 +suid 24,0 +) +) +) +] +shape (Rectangle +uid 22622,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,121000,117000,149000" +) +oxt "41000,13000,65000,41000" +ttg (MlTextGroup +uid 22623,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*158 (Text +uid 22624,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,149000,98000,150000" +st "NanoBlaze" +blo "93600,149800" +tm "BdLibraryNameMgr" +) +*159 (Text +uid 22625,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,150000,98900,151000" +st "aluAndRegs" +blo "93600,150800" +tm "CptNameMgr" +) +*160 (Text +uid 22626,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,151000,95700,152000" +st "I_alu" +blo "93600,151800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 22627,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 22628,0 +text (MLText +uid 22629,0 +va (VaSet +font "Courier New,8,0" +) +xt "93000,152200,127500,156200" +st "registerBitNb = registerBitNb ( positive ) +registerAddressBitNb = registerAddressBitNb ( positive ) +aluCodeBitNb = aluCodeBitNb ( positive ) +portAddressBitNb = addressBitNb ( positive ) +scratchpadAddressBitNb = scratchpadAddressBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "aluCodeBitNb" +type "positive" +value "aluCodeBitNb" +) +(GiElement +name "portAddressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*161 (SaComponent +uid 22654,0 +optionalChildren [ +*162 (CptPort +uid 22630,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22631,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,164625,93000,165375" +) +tg (CPTG +uid 22632,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22633,0 +va (VaSet +) +xt "94000,164500,96100,165500" +st "clock" +blo "94000,165300" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*163 (CptPort +uid 22634,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22635,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,166625,93000,167375" +) +tg (CPTG +uid 22636,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22637,0 +va (VaSet +) +xt "94000,166500,96100,167500" +st "reset" +blo "94000,167300" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*164 (CptPort +uid 22638,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22639,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "112625,156250,113375,157000" +) +tg (CPTG +uid 22640,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22641,0 +va (VaSet +) +xt "112000,158000,115000,159000" +st "dataOut" +blo "112000,158800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 20,0 +) +) +) +*165 (CptPort +uid 22642,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22643,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "108625,156250,109375,157000" +) +tg (CPTG +uid 22644,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22645,0 +va (VaSet +) +xt "108000,158000,110400,159000" +st "dataIn" +blo "108000,158800" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 5 +suid 21,0 +) +) +) +*166 (CptPort +uid 22646,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22647,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,160625,117750,161375" +) +tg (CPTG +uid 22648,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22649,0 +va (VaSet +) +xt "114100,160500,116000,161500" +st "addr" +ju 2 +blo "116000,161300" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "( spadAddressBitNb-1 DOWNTO 0 )" +o 4 +suid 22,0 +) +) +) +*167 (CptPort +uid 22650,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22651,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,160625,93000,161375" +) +tg (CPTG +uid 22652,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22653,0 +va (VaSet +) +xt "94000,160500,96000,161500" +st "write" +blo "94000,161300" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 3 +suid 23,0 +) +) +) +] +shape (Rectangle +uid 22655,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,157000,117000,169000" +) +oxt "38000,25000,62000,37000" +ttg (MlTextGroup +uid 22656,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*168 (Text +uid 22657,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,169000,98000,170000" +st "NanoBlaze" +blo "93600,169800" +tm "BdLibraryNameMgr" +) +*169 (Text +uid 22658,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,170000,98500,171000" +st "scratchpad" +blo "93600,170800" +tm "CptNameMgr" +) +*170 (Text +uid 22659,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,171000,96400,172000" +st "I_sPad" +blo "93600,171800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 22660,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 22661,0 +text (MLText +uid 22662,0 +va (VaSet +font "Courier New,8,0" +) +xt "93000,172200,124500,173800" +st "registerBitNb = registerBitNb ( positive ) +spadAddressBitNb = scratchpadAddressBitNb ( natural ) " +) +header "" +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "spadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*171 (SaComponent +uid 22782,0 +optionalChildren [ +*172 (CptPort +uid 22726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22727,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "96625,109000,97375,109750" +) +tg (CPTG +uid 22728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22729,0 +va (VaSet +) +xt "95000,107000,98200,108000" +st "aluCode" +blo "95000,107800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 4 +suid 2,0 +) +) +) +*173 (CptPort +uid 22730,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22731,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,98625,117750,99375" +) +tg (CPTG +uid 22732,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22733,0 +va (VaSet +) +xt "110300,98500,116000,99500" +st "portIndexedSel" +ju 2 +blo "116000,99300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "portIndexedSel" +t "std_ulogic" +o 6 +suid 5,0 +) +) +) +*174 (CptPort +uid 22734,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22735,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "100625,109000,101375,109750" +) +tg (CPTG +uid 22736,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22737,0 +va (VaSet +) +xt "100000,107000,102400,108000" +st "addrA" +blo "100000,107800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 9,0 +) +) +) +*175 (CptPort +uid 22738,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22739,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "104625,109000,105375,109750" +) +tg (CPTG +uid 22740,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22741,0 +va (VaSet +) +xt "104000,107000,106400,108000" +st "addrB" +blo "104000,107800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 10,0 +) +) +) +*176 (CptPort +uid 22742,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22743,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "112625,109000,113375,109750" +) +tg (CPTG +uid 22744,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22745,0 +va (VaSet +) +xt "111000,107000,114500,108000" +st "instrData" +blo "111000,107800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 8 +suid 11,0 +) +) +) +*177 (CptPort +uid 22746,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22747,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,102625,93000,103375" +) +tg (CPTG +uid 22748,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22749,0 +va (VaSet +) +xt "94000,102500,97000,103500" +st "opCode" +blo "94000,103300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "( opCodeBitNb-1 DOWNTO 0 )" +o 10 +suid 16,0 +) +) +) +*178 (CptPort +uid 22750,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22751,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,100625,117750,101375" +) +tg (CPTG +uid 22752,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22753,0 +va (VaSet +) +xt "111100,100500,116000,101500" +st "portAddress" +ju 2 +blo "116000,101300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "portAddress" +t "unsigned" +b "(portAddressBitNb-1 DOWNTO 0)" +o 11 +suid 18,0 +) +) +) +*179 (CptPort +uid 22754,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22755,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,96625,117750,97375" +) +tg (CPTG +uid 22756,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22757,0 +va (VaSet +) +xt "111700,96500,116000,97500" +st "instruction" +ju 2 +blo "116000,97300" +) +) +thePort (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "( instructionBitNb-1 DOWNTO 0 )" +o 1 +suid 19,0 +) +) +) +*180 (CptPort +uid 22758,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22759,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "104625,92250,105375,93000" +) +tg (CPTG +uid 22760,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22761,0 +va (VaSet +) +xt "102000,94000,107100,95000" +st "instrAddress" +blo "102000,94800" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 7 +suid 24,0 +) +) +) +*181 (CptPort +uid 22762,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22763,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,98625,93000,99375" +) +tg (CPTG +uid 22764,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22765,0 +va (VaSet +) +xt "94000,98500,98900,99500" +st "branchCond" +blo "94000,99300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "(branchCondBitNb-1 DOWNTO 0)" +o 5 +suid 25,0 +) +) +) +*182 (CptPort +uid 22766,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22767,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,96625,93000,97375" +) +tg (CPTG +uid 22768,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22769,0 +va (VaSet +) +xt "94000,96500,97000,97500" +st "intCode" +blo "94000,97300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 9 +suid 26,0 +) +) +) +*183 (CptPort +uid 22770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22771,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,104625,117750,105375" +) +tg (CPTG +uid 22772,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22773,0 +va (VaSet +) +xt "110800,104500,116000,105500" +st "spadAddress" +ju 2 +blo "116000,105300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "spadAddress" +t "unsigned" +b "( spadAddressBitNb-1 DOWNTO 0 )" +o 12 +suid 28,0 +) +) +) +*184 (CptPort +uid 22774,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22775,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "117000,102625,117750,103375" +) +tg (CPTG +uid 22776,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 22777,0 +va (VaSet +) +xt "110000,102500,116000,103500" +st "spadIndexedSel" +ju 2 +blo "116000,103300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "spadIndexedSel" +t "std_ulogic" +o 13 +suid 29,0 +) +) +) +*185 (CptPort +uid 22778,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 22779,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92250,104625,93000,105375" +) +tg (CPTG +uid 22780,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 22781,0 +va (VaSet +) +xt "94000,104500,98900,105500" +st "twoRegInstr" +blo "94000,105300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 14 +suid 30,0 +) +) +) +] +shape (Rectangle +uid 22783,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,93000,117000,109000" +) +oxt "41000,25000,65000,41000" +ttg (MlTextGroup +uid 22784,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*186 (Text +uid 22785,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,109000,98000,110000" +st "NanoBlaze" +blo "93600,109800" +tm "BdLibraryNameMgr" +) +*187 (Text +uid 22786,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,110000,101600,111000" +st "instructionDecoder" +blo "93600,110800" +tm "CptNameMgr" +) +*188 (Text +uid 22787,0 +va (VaSet +font "Arial,8,1" +) +xt "93600,111000,96300,112000" +st "I_instr" +blo "93600,111800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 22788,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 22789,0 +text (MLText +uid 22790,0 +va (VaSet +font "Courier New,8,0" +) +xt "93000,112200,126500,120200" +st "registerBitNb = registerBitNb ( positive ) +registerAddressBitNb = registerAddressBitNb ( positive ) +aluCodeBitNb = aluCodeBitNb ( positive ) +instructionBitNb = instructionBitNb ( positive ) +programCounterBitNb = programCounterBitNb ( positive ) +opCodeBitNb = opCodeBitNb ( positive ) +branchCondBitNb = branchCondBitNb ( positive ) +intCodeBitNb = 5 ( positive ) +spadAddressBitNb = scratchpadAddressBitNb ( natural ) +portAddressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "registerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "aluCodeBitNb" +type "positive" +value "aluCodeBitNb" +) +(GiElement +name "instructionBitNb" +type "positive" +value "instructionBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "opCodeBitNb" +type "positive" +value "opCodeBitNb" +) +(GiElement +name "branchCondBitNb" +type "positive" +value "branchCondBitNb" +) +(GiElement +name "intCodeBitNb" +type "positive" +value "5" +) +(GiElement +name "spadAddressBitNb" +type "natural" +value "scratchpadAddressBitNb" +) +(GiElement +name "portAddressBitNb" +type "positive" +value "addressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*189 (HdlText +uid 22854,0 +optionalChildren [ +*190 (EmbeddedText +uid 22859,0 +commentText (CommentText +uid 22860,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 22861,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "132000,-5000,156000,9000" +) +oxt "0,0,18000,5000" +text (MLText +uid 22862,0 +va (VaSet +) +xt "132200,-4800,156100,8400" +st " +-- pragma translate_off + +process(instruction) + + constant bitsPerHexDigit : positive := 4; + + function pad(inString : string; outLength : positive) return string is + variable outString : string(1 to outLength); + begin + outString := (others => ' '); + outString(inString'range) := inString; + return outString; + end function pad; + + function hexDigitNb(bitNb : positive) return positive is + begin + return (bitNb-1)/bitsPerHexDigit+1; + end function hexDigitNb; + + function to01(nineValued : unsigned) return unsigned is + variable twoValued : unsigned(nineValued'range); + begin + twoValued := (others => '0'); + for index in nineValued'range loop + if (nineValued(index) = '1') or (nineValued(index) = 'H') then + twoValued(index) := '1'; + end if; + end loop; + return twoValued; + end function to01; + + variable opCode : unsigned(1+opCodeBitNb-1 downto 0); + variable destRegister : unsigned(registerAddressBitNb-1 downto 0); + variable destRegisterString : string(1 to 1+hexDigitNb(registerAddressBitNb)); + variable sourceRegister : unsigned(registerAddressBitNb-1 downto 0); + variable sourceRegisterString : string(1 to 1+hexDigitNb(registerAddressBitNb)); + variable sourceConstant : unsigned(registerBitNb-1 downto 0); + variable sourceConstantString : string(1 to hexDigitNb(registerBitNb)); + variable branchAddress : unsigned(programCounterBitNb-1 downto 0); + variable branchAddressString : string(1 to hexDigitNb(programCounterBitNb)); + variable branchKind : unsigned(1 downto 0); + variable shRotCin : unsigned(2 downto 0); + variable shRotDir: std_ulogic; + + function toHexDigit(binary : unsigned(bitsPerHexDigit-1 downto 0)) return character is + begin + if binary <= 9 then + return character'val(character'pos('0') + to_integer(to01(binary))); + else + return character'val(character'pos('A') + to_integer(to01(binary)) - 10); + end if; + end function toHexDigit; + + function toHexString(binary : unsigned) return string is + variable hexString : string(1 to hexDigitNb(binary'length)); + begin + for index in hexString'high-1 downto 0 loop + hexString(hexString'high-index) := toHexDigit( + resize(shift_right(binary, bitsPerHexDigit*index), bitsPerHexDigit) + ); + end loop; + return hexString; + end function toHexString; + +begin + + opCode := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length), + opCode'length + ); + destRegister := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-destRegister'length), + destRegister'length + ); + destRegisterString := 's' & toHexDigit(destRegister); + sourceRegister := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-destRegister'length-sourceRegister'length), + sourceRegister'length + ); + sourceRegisterString := 's' & toHexDigit(sourceRegister); + sourceConstant := resize(unsigned(instruction), sourceConstant'length); + sourceConstantString := toHexString(sourceConstant); + branchKind := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-branchKind'length), + branchKind'length + ); + branchAddress := resize(unsigned(instruction), branchAddress'length); + branchAddressString := toHexString(branchAddress); + shRotCin := resize(shift_right(unsigned(instruction), 1), shRotCin'length); + shRotDir := instruction(0); + + case opCode is + when \"000000\" => instrString <= pad(\"LOAD \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"000001\" => instrString <= pad(\"LOAD \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"000100\" => instrString <= pad(\"INPUT \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"000101\" => instrString <= pad(\"INPUT \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"000110\" => instrString <= pad(\"FETCH \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"000111\" => instrString <= pad(\"FETCH \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"001010\" => instrString <= pad(\"AND \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"001011\" => instrString <= pad(\"AND \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"001100\" => instrString <= pad(\"OR \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"001101\" => instrString <= pad(\"OR \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"001110\" => instrString <= pad(\"XOR \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"001111\" => instrString <= pad(\"XOR \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"010010\" => instrString <= pad(\"TEST \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"010011\" => instrString <= pad(\"TEST \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"010100\" => instrString <= pad(\"COMP \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"010101\" => instrString <= pad(\"COMP \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"011000\" => instrString <= pad(\"ADD \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"011001\" => instrString <= pad(\"ADD \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"011010\" => instrString <= pad(\"ADDCY \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"011011\" => instrString <= pad(\"ADDCY \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"011100\" => instrString <= pad(\"SUB \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"011101\" => instrString <= pad(\"SUB \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"011110\" => instrString <= pad(\"SUBCY \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"011111\" => instrString <= pad(\"SUBCY \" & destRegisterString & \" \" & sourceRegisterString, instrString'length); + when \"100000\" => + case shRotCin is + when \"000\" => instrString <= pad(\"SLA \" & destRegisterString, instrString'length); + when \"001\" => instrString <= pad(\"RL \" & destRegisterString, instrString'length); + when \"010\" => instrString <= pad(\"SLX \" & destRegisterString, instrString'length); + when \"011\" => + case shRotDir is + when '0' => instrString <= pad(\"SL0 \" & destRegisterString, instrString'length); + when '1' => instrString <= pad(\"SL1 \" & destRegisterString, instrString'length); + when others => instrString <= pad(\"--------\", instrString'length); + end case; + when \"100\" => instrString <= pad(\"SRA \" & destRegisterString, instrString'length); + when \"101\" => instrString <= pad(\"SRX \" & destRegisterString, instrString'length); + when \"110\" => instrString <= pad(\"RR \" & destRegisterString, instrString'length); + when \"111\" => + case shRotDir is + when '0' => instrString <= pad(\"SR0 \" & destRegisterString, instrString'length); + when '1' => instrString <= pad(\"SR1 \" & destRegisterString, instrString'length); + when others => instrString <= pad(\"--------\", instrString'length); + end case; + when others => instrString <= pad(\"--------\", instrString'length); + end case; + when \"101100\" => instrString <= pad(\"OUTPUT \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"101101\" => instrString <= pad(\"OUTPUT \" & destRegisterString & \" (\" & sourceRegisterString & \")\", instrString'length); + when \"101110\" => instrString <= pad(\"STORE \" & destRegisterString & \" \" & sourceConstantString, instrString'length); + when \"101111\" => instrString <= pad(\"STORE \" & destRegisterString & \" (\" & sourceRegisterString & \")\", instrString'length); + when \"101010\" => instrString <= pad(\"RET\", instrString'length); + when \"101011\" => + case branchKind is + when \"00\" => instrString <= pad(\"RET Z\", instrString'length); + when \"01\" => instrString <= pad(\"RET NZ\", instrString'length); + when \"10\" => instrString <= pad(\"RET C\", instrString'length); + when \"11\" => instrString <= pad(\"RET NC\", instrString'length); + when others => instrString <= pad(\"--------\", instrString'length); + end case; + when \"110000\" => instrString <= pad(\"CALL \" & branchAddressString, instrString'length); + when \"110001\" => + case branchKind is + when \"00\" => instrString <= pad(\"CALL Z \" & branchAddressString, instrString'length); + when \"01\" => instrString <= pad(\"CALL NZ \" & branchAddressString, instrString'length); + when \"10\" => instrString <= pad(\"CALL C \" & branchAddressString, instrString'length); + when \"11\" => instrString <= pad(\"CALL NC \" & branchAddressString, instrString'length); + when others => instrString <= pad(\"--------\", instrString'length); + end case; + when \"110100\" => instrString <= pad(\"JUMP \" & branchAddressString, instrString'length); + when \"110101\" => + case branchKind is + when \"00\" => instrString <= pad(\"JUMP Z \" & branchAddressString, instrString'length); + when \"01\" => instrString <= pad(\"JUMP NZ \" & branchAddressString, instrString'length); + when \"10\" => instrString <= pad(\"JUMP C \" & branchAddressString, instrString'length); + when \"11\" => instrString <= pad(\"JUMP NC \" & branchAddressString, instrString'length); + when others => instrString <= pad(\"--------\", instrString'length); + end case; + when others => instrString <= pad(\"--------\", instrString'length); + end case; + +end process; + +-- pragma translate_on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 24000 +) +) +) +] +shape (Rectangle +uid 22855,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "132000,-6000,156000,10000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 22856,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*191 (Text +uid 22857,0 +va (VaSet +) +xt "132400,10000,134000,11000" +st "eb4" +blo "132400,10800" +tm "HdlTextNameMgr" +) +*192 (Text +uid 22858,0 +va (VaSet +) +xt "132400,11000,133200,12000" +st "4" +blo "132400,11800" +tm "HdlTextNumberMgr" +) +] +) +) +*193 (Net +uid 22879,0 +decl (Decl +n "instrString" +t "string" +b "(1 TO 16)" +o 23 +suid 223,0 +) +declText (MLText +uid 22880,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,24000,49000,24800" +st "SIGNAL instrString : string(1 TO 16)" +) +) +*194 (Wire +uid 6763,0 +shape (OrthoPolyLine +uid 6764,0 +va (VaSet +vasetType 3 +) +xt "53000,166000,60250,166000" +pts [ +"53000,166000" +"60250,166000" +] +) +start &13 +end &112 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 6767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6768,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,164600,57100,166000" +st "reset" +blo "53000,165800" +tm "WireNameMgr" +) +) +on &12 +) +*195 (Wire +uid 16421,0 +shape (OrthoPolyLine +uid 16422,0 +va (VaSet +vasetType 3 +) +xt "77750,115000,157000,115000" +pts [ +"77750,115000" +"157000,115000" +] +) +start &110 +end &14 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16425,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16426,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,113600,158700,115000" +st "readStrobe" +blo "150000,114800" +tm "WireNameMgr" +) +) +on &15 +) +*196 (Wire +uid 16436,0 +shape (OrthoPolyLine +uid 16437,0 +va (VaSet +vasetType 3 +) +xt "77750,117000,157000,117000" +pts [ +"77750,117000" +"157000,117000" +] +) +start &116 +end &16 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16440,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16441,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,115600,159000,117000" +st "writeStrobe" +blo "150000,116800" +tm "WireNameMgr" +) +) +on &17 +) +*197 (Wire +uid 16481,0 +shape (OrthoPolyLine +uid 16482,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "149000,105000,157000,105000" +pts [ +"149000,105000" +"157000,105000" +] +) +start &55 +end &18 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16485,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16486,0 +va (VaSet +font "Verdana,12,0" +) +xt "150000,103600,159600,105000" +st "dataAddress" +blo "150000,104800" +tm "WireNameMgr" +) +) +on &19 +) +*198 (Wire +uid 16496,0 +shape (OrthoPolyLine +uid 16497,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "149000,129000,157000,129000" +pts [ +"149000,129000" +"157000,129000" +] +) +start &61 +end &20 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16500,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16501,0 +va (VaSet +font "Verdana,12,0" +) +xt "152000,127600,158000,129000" +st "dataOut" +blo "152000,128800" +tm "WireNameMgr" +) +) +on &21 +) +*199 (Wire +uid 16511,0 +shape (OrthoPolyLine +uid 16512,0 +va (VaSet +vasetType 3 +) +xt "53000,53000,60250,53000" +pts [ +"60250,53000" +"53000,53000" +] +) +start &104 +end &22 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16515,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16516,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,51600,57500,53000" +st "intAck" +blo "53000,52800" +tm "WireNameMgr" +) +) +on &23 +) +*200 (Wire +uid 16860,0 +shape (OrthoPolyLine +uid 16861,0 +va (VaSet +vasetType 3 +) +xt "53000,164000,60250,164000" +pts [ +"53000,164000" +"60250,164000" +] +) +start &24 +end &97 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16864,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16865,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,162600,56800,164000" +st "clock" +blo "53000,163800" +tm "WireNameMgr" +) +) +on &25 +) +*201 (Wire +uid 16875,0 +shape (OrthoPolyLine +uid 16876,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "149000,131000,157000,131000" +pts [ +"157000,131000" +"149000,131000" +] +) +start &26 +end &61 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16879,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16880,0 +va (VaSet +font "Verdana,12,0" +) +xt "153000,129600,158000,131000" +st "dataIn" +blo "153000,130800" +tm "WireNameMgr" +) +) +on &27 +) +*202 (Wire +uid 16890,0 +shape (OrthoPolyLine +uid 16891,0 +va (VaSet +vasetType 3 +) +xt "53000,162000,60250,162000" +pts [ +"53000,162000" +"60250,162000" +] +) +start &28 +end &100 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16894,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16895,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,160600,55400,162000" +st "en" +blo "53000,161800" +tm "WireNameMgr" +) +) +on &29 +) +*203 (Wire +uid 16905,0 +shape (OrthoPolyLine +uid 16906,0 +va (VaSet +vasetType 3 +) +xt "53000,51000,60250,51000" +pts [ +"53000,51000" +"60250,51000" +] +) +start &30 +end &103 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 16909,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 16910,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,49600,55400,51000" +st "int" +blo "53000,50800" +tm "WireNameMgr" +) +) +on &31 +) +*204 (Wire +uid 17294,0 +shape (OrthoPolyLine +uid 17295,0 +va (VaSet +vasetType 3 +) +xt "77750,125000,92250,125000" +pts [ +"92250,125000" +"77750,125000" +] +) +start &147 +end &111 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17298,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17299,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,123600,90500,125000" +st "registerFileSel" +blo "80000,124800" +tm "WireNameMgr" +) +) +on &32 +) +*205 (Wire +uid 17302,0 +shape (OrthoPolyLine +uid 17303,0 +va (VaSet +vasetType 3 +) +xt "77750,127000,92250,127000" +pts [ +"92250,127000" +"77750,127000" +] +) +start &146 +end &102 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17306,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17307,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,125600,89300,127000" +st "instrDataSel" +blo "80000,126800" +tm "WireNameMgr" +) +) +on &33 +) +*206 (Wire +uid 17310,0 +shape (OrthoPolyLine +uid 17311,0 +va (VaSet +vasetType 3 +) +xt "77750,129000,92250,129000" +pts [ +"92250,129000" +"77750,129000" +] +) +start &140 +end &109 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17314,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17315,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,127600,86600,129000" +st "portInSel" +blo "80000,128800" +tm "WireNameMgr" +) +) +on &34 +) +*207 (Wire +uid 17318,0 +shape (OrthoPolyLine +uid 17319,0 +va (VaSet +vasetType 3 +) +xt "77750,131000,92250,131000" +pts [ +"92250,131000" +"77750,131000" +] +) +start &148 +end &113 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17322,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17323,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,129600,90400,131000" +st "scratchpadSel" +blo "80000,130800" +tm "WireNameMgr" +) +) +on &35 +) +*208 (Wire +uid 17326,0 +shape (OrthoPolyLine +uid 17327,0 +va (VaSet +vasetType 3 +) +xt "77750,137000,92250,137000" +pts [ +"92250,137000" +"77750,137000" +] +) +start &149 +end &96 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17330,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17331,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,135600,82700,137000" +st "cIn" +blo "80000,136800" +tm "WireNameMgr" +) +) +on &36 +) +*209 (Wire +uid 17334,0 +shape (OrthoPolyLine +uid 17335,0 +va (VaSet +vasetType 3 +) +xt "77750,139000,92250,139000" +pts [ +"92250,139000" +"77750,139000" +] +) +start &150 +end &98 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17338,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17339,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,137600,83700,139000" +st "cOut" +blo "80000,138800" +tm "WireNameMgr" +) +) +on &37 +) +*210 (Wire +uid 17342,0 +shape (OrthoPolyLine +uid 17343,0 +va (VaSet +vasetType 3 +) +xt "77750,141000,92250,141000" +pts [ +"92250,141000" +"77750,141000" +] +) +start &151 +end &117 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 17346,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17347,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,139600,83600,141000" +st "zero" +blo "80000,140800" +tm "WireNameMgr" +) +) +on &38 +) +*211 (Wire +uid 17348,0 +shape (OrthoPolyLine +uid 17349,0 +va (VaSet +vasetType 3 +) +xt "89000,147000,92250,147000" +pts [ +"89000,147000" +"92250,147000" +] +) +end &141 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 17354,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17355,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,145600,92100,147000" +st "reset" +blo "88000,146800" +tm "WireNameMgr" +) +) +on &12 +) +*212 (Wire +uid 17356,0 +shape (OrthoPolyLine +uid 17357,0 +va (VaSet +vasetType 3 +) +xt "89000,145000,92250,145000" +pts [ +"89000,145000" +"92250,145000" +] +) +end &138 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17362,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17363,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,143600,91800,145000" +st "clock" +blo "88000,144800" +tm "WireNameMgr" +) +) +on &25 +) +*213 (Wire +uid 17581,0 +shape (OrthoPolyLine +uid 17582,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,97000,92250,97000" +pts [ +"92250,97000" +"77750,97000" +] +) +start &182 +end &105 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17585,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17586,0 +va (VaSet +font "Verdana,12,0" +) +xt "85250,95600,90950,97000" +st "intCode" +blo "85250,96800" +tm "WireNameMgr" +) +) +on &39 +) +*214 (Wire +uid 17589,0 +shape (OrthoPolyLine +uid 17590,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,99000,92250,99000" +pts [ +"92250,99000" +"77750,99000" +] +) +start &181 +end &95 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17594,0 +va (VaSet +font "Verdana,12,0" +) +xt "82250,97600,91450,99000" +st "branchCond" +blo "82250,98800" +tm "WireNameMgr" +) +) +on &92 +) +*215 (Wire +uid 17597,0 +shape (OrthoPolyLine +uid 17598,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77750,103000,92250,103000" +pts [ +"92250,103000" +"77750,103000" +] +) +start &177 +end &108 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17601,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17602,0 +va (VaSet +font "Verdana,12,0" +) +xt "85250,101600,90950,103000" +st "opCode" +blo "85250,102800" +tm "WireNameMgr" +) +) +on &40 +) +*216 (Wire +uid 17605,0 +shape (OrthoPolyLine +uid 17606,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "97000,109750,97000,120250" +pts [ +"97000,109750" +"97000,120250" +] +) +start &172 +end &139 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17607,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17608,0 +va (VaSet +font "Verdana,12,0" +) +xt "92000,118600,98000,120000" +st "aluCode" +blo "92000,119800" +tm "WireNameMgr" +) +) +on &41 +) +*217 (Wire +uid 17611,0 +shape (OrthoPolyLine +uid 17612,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "101000,109750,101000,120250" +pts [ +"101000,109750" +"101000,120250" +] +) +start &174 +end &143 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17613,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17614,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,110600,105500,112000" +st "addrA" +blo "101000,111800" +tm "WireNameMgr" +) +) +on &42 +) +*218 (Wire +uid 17617,0 +shape (OrthoPolyLine +uid 17618,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "105000,109750,105000,120250" +pts [ +"105000,109750" +"105000,120250" +] +) +start &175 +end &144 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17619,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17620,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,110600,109500,112000" +st "addrB" +blo "105000,111800" +tm "WireNameMgr" +) +) +on &43 +) +*219 (Wire +uid 17623,0 +shape (OrthoPolyLine +uid 17624,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "113000,109750,113000,120250" +pts [ +"113000,109750" +"113000,120250" +] +) +start &176 +end &145 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 17625,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17626,0 +va (VaSet +font "Verdana,12,0" +) +xt "114000,110600,120600,112000" +st "instrData" +blo "114000,111800" +tm "WireNameMgr" +) +) +on &44 +) +*220 (Wire +uid 17851,0 +optionalChildren [ +*221 (BdJunction +uid 18272,0 +ps "OnConnectorStrategy" +shape (Circle +uid 18273,0 +va (VaSet +vasetType 1 +) +xt "124600,72600,125400,73400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 17852,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,73000,157000,73000" +pts [ +"117750,73000" +"157000,73000" +] +) +start &82 +end &45 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17855,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17856,0 +va (VaSet +font "Verdana,12,0" +) +xt "149000,71600,158600,73000" +st "progCounter" +blo "149000,72800" +tm "WireNameMgr" +) +) +on &49 +) +*222 (Wire +uid 17866,0 +shape (OrthoPolyLine +uid 17867,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,97000,157000,97000" +pts [ +"157000,97000" +"117750,97000" +] +) +start &46 +end &179 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 17870,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 17871,0 +va (VaSet +font "Verdana,12,0" +) +xt "151000,95600,159200,97000" +st "instruction" +blo "151000,96800" +tm "WireNameMgr" +) +) +on &47 +) +*223 (Wire +uid 18053,0 +shape (OrthoPolyLine +uid 18054,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "105000,85750,105000,92250" +pts [ +"105000,92250" +"105000,85750" +] +) +start &180 +end &84 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18055,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18056,0 +va (VaSet +font "Verdana,12,0" +) +xt "106000,90600,115500,92000" +st "instrAddress" +blo "106000,91800" +tm "WireNameMgr" +) +) +on &48 +) +*224 (Wire +uid 18189,0 +shape (OrthoPolyLine +uid 18190,0 +va (VaSet +vasetType 3 +) +xt "89000,83000,92250,83000" +pts [ +"89000,83000" +"92250,83000" +] +) +end &85 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 18195,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18196,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,81600,92100,83000" +st "reset" +blo "88000,82800" +tm "WireNameMgr" +) +) +on &12 +) +*225 (Wire +uid 18197,0 +shape (OrthoPolyLine +uid 18198,0 +va (VaSet +vasetType 3 +) +xt "89000,81000,92250,81000" +pts [ +"89000,81000" +"92250,81000" +] +) +end &81 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18203,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18204,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,79600,91800,81000" +st "clock" +blo "88000,80800" +tm "WireNameMgr" +) +) +on &25 +) +*226 (Wire +uid 18207,0 +shape (OrthoPolyLine +uid 18208,0 +va (VaSet +vasetType 3 +) +xt "77750,77000,92250,77000" +pts [ +"92250,77000" +"77750,77000" +] +) +start &88 +end &107 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 18211,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18212,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,75600,90200,77000" +st "loadStoredPC" +blo "80000,76800" +tm "WireNameMgr" +) +) +on &50 +) +*227 (Wire +uid 18215,0 +shape (OrthoPolyLine +uid 18216,0 +va (VaSet +vasetType 3 +) +xt "77750,75000,92250,75000" +pts [ +"92250,75000" +"77750,75000" +] +) +start &87 +end &106 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 18219,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18220,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,73600,91400,75000" +st "loadInstrAddress" +blo "79000,74800" +tm "WireNameMgr" +) +) +on &51 +) +*228 (Wire +uid 18223,0 +shape (OrthoPolyLine +uid 18224,0 +va (VaSet +vasetType 3 +) +xt "77750,73000,92250,73000" +pts [ +"92250,73000" +"77750,73000" +] +) +start &86 +end &101 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 18227,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18228,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,71600,84200,73000" +st "incPC" +blo "80000,72800" +tm "WireNameMgr" +) +) +on &52 +) +*229 (Wire +uid 18268,0 +shape (OrthoPolyLine +uid 18269,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,51000,125000,73000" +pts [ +"125000,73000" +"125000,51000" +"117750,51000" +] +) +start &221 +end &125 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18270,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18271,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,49600,129350,51000" +st "progCounter" +blo "119750,50800" +tm "WireNameMgr" +) +) +on &49 +) +*230 (Wire +uid 18276,0 +shape (OrthoPolyLine +uid 18277,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "105000,61750,105000,68250" +pts [ +"105000,61750" +"105000,68250" +] +) +start &126 +end &83 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18278,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18279,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,62600,118700,64000" +st "storedProgCounter" +blo "105000,63800" +tm "WireNameMgr" +) +) +on &53 +) +*231 (Wire +uid 18290,0 +shape (OrthoPolyLine +uid 18291,0 +va (VaSet +vasetType 3 +) +xt "77750,53000,92250,53000" +pts [ +"92250,53000" +"77750,53000" +] +) +start &129 +end &115 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 18294,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18295,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,51600,85800,53000" +st "storePC" +blo "80000,52800" +tm "WireNameMgr" +) +) +on &54 +) +*232 (Wire +uid 18296,0 +shape (OrthoPolyLine +uid 18297,0 +va (VaSet +vasetType 3 +) +xt "89000,59000,92250,59000" +pts [ +"89000,59000" +"92250,59000" +] +) +end &127 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 18302,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18303,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,57600,92100,59000" +st "reset" +blo "88000,58800" +tm "WireNameMgr" +) +) +on &12 +) +*233 (Wire +uid 18304,0 +shape (OrthoPolyLine +uid 18305,0 +va (VaSet +vasetType 3 +) +xt "89000,57000,92250,57000" +pts [ +"89000,57000" +"92250,57000" +] +) +end &124 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18310,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18311,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,55600,91800,57000" +st "clock" +blo "88000,56800" +tm "WireNameMgr" +) +) +on &25 +) +*234 (Wire +uid 18565,0 +shape (OrthoPolyLine +uid 18566,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,101000,133000,105000" +pts [ +"117750,101000" +"129000,101000" +"129000,105000" +"133000,105000" +] +) +start &178 +end &55 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18569,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18570,0 +va (VaSet +font "Verdana,12,0" +) +xt "120000,99600,132300,101000" +st "portInstrAddress" +blo "120000,100800" +tm "WireNameMgr" +) +) +on &70 +) +*235 (Wire +uid 18580,0 +shape (OrthoPolyLine +uid 18581,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,107000,133000,127000" +pts [ +"117750,127000" +"129000,127000" +"129000,107000" +"133000,107000" +] +) +start &142 +end &55 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18584,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18585,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,125600,131450,127000" +st "portRegAddress" +blo "119750,126800" +tm "WireNameMgr" +) +) +on &78 +) +*236 (Wire +uid 18596,0 +shape (OrthoPolyLine +uid 18597,0 +va (VaSet +vasetType 3 +) +xt "117750,99000,141000,101000" +pts [ +"117750,99000" +"141000,99000" +"141000,101000" +] +) +start &173 +end &55 +sat 32 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18600,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18601,0 +va (VaSet +font "Verdana,12,0" +) +xt "132000,97600,143300,99000" +st "portIndexedSel" +blo "132000,98800" +tm "WireNameMgr" +) +) +on &69 +) +*237 (Wire +uid 18610,0 +shape (OrthoPolyLine +uid 18611,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,105000,133000,147000" +pts [ +"117750,105000" +"123000,105000" +"123000,147000" +"133000,147000" +] +) +start &183 +end &73 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18612,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18613,0 +va (VaSet +font "Verdana,12,0" +) +xt "123000,145600,135800,147000" +st "spadInstrAddress" +blo "123000,146800" +tm "WireNameMgr" +) +) +on &71 +) +*238 (Wire +uid 18614,0 +shape (OrthoPolyLine +uid 18615,0 +va (VaSet +vasetType 3 +) +xt "89000,167000,92250,167000" +pts [ +"89000,167000" +"92250,167000" +] +) +end &163 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 18620,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18621,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,165600,92100,167000" +st "reset" +blo "88000,166800" +tm "WireNameMgr" +) +) +on &12 +) +*239 (Wire +uid 18622,0 +shape (OrthoPolyLine +uid 18623,0 +va (VaSet +vasetType 3 +) +xt "89000,165000,92250,165000" +pts [ +"89000,165000" +"92250,165000" +] +) +end &162 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 18628,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18629,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,163600,91800,165000" +st "clock" +blo "88000,164800" +tm "WireNameMgr" +) +) +on &25 +) +*240 (Wire +uid 18632,0 +shape (OrthoPolyLine +uid 18633,0 +va (VaSet +vasetType 3 +) +xt "77750,161000,92250,161000" +pts [ +"92250,161000" +"77750,161000" +] +) +start &167 +end &114 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 18636,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18637,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,159600,90900,161000" +st "scratchpadWrite" +blo "79000,160800" +tm "WireNameMgr" +) +) +on &59 +) +*241 (Wire +uid 18640,0 +shape (OrthoPolyLine +uid 18641,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "113000,149750,113000,156250" +pts [ +"113000,156250" +"113000,149750" +] +) +start &164 +end &155 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18642,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18643,0 +va (VaSet +font "Verdana,12,0" +) +xt "113000,154600,118200,156000" +st "spadIn" +blo "113000,155800" +tm "WireNameMgr" +) +) +on &67 +) +*242 (Wire +uid 18646,0 +shape (OrthoPolyLine +uid 18647,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "109000,149750,109000,156250" +pts [ +"109000,156250" +"109000,149750" +] +) +start &165 +end &154 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 18648,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18649,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,154600,111200,156000" +st "spadOut" +blo "105000,155800" +tm "WireNameMgr" +) +) +on &68 +) +*243 (Wire +uid 18874,0 +shape (OrthoPolyLine +uid 18875,0 +va (VaSet +vasetType 3 +) +xt "77750,133000,92250,133000" +pts [ +"92250,133000" +"77750,133000" +] +) +start &156 +end &118 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 18878,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 18879,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,131600,86300,133000" +st "regWrite" +blo "80000,132800" +tm "WireNameMgr" +) +) +on &60 +) +*244 (Wire +uid 19002,0 +shape (OrthoPolyLine +uid 19003,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,129000,133000,129000" +pts [ +"117750,129000" +"133000,129000" +] +) +start &152 +end &61 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 19006,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19007,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,127600,125450,129000" +st "portOut" +blo "119750,128800" +tm "WireNameMgr" +) +) +on &65 +) +*245 (Wire +uid 19010,0 +shape (OrthoPolyLine +uid 19011,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,131000,133000,131000" +pts [ +"117750,131000" +"133000,131000" +] +) +start &153 +end &61 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 19014,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19015,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,129600,124450,131000" +st "portIn" +blo "119750,130800" +tm "WireNameMgr" +) +) +on &66 +) +*246 (Wire +uid 19968,0 +shape (OrthoPolyLine +uid 19969,0 +va (VaSet +vasetType 3 +) +xt "117750,103000,141000,143000" +pts [ +"117750,103000" +"125000,103000" +"125000,141000" +"141000,141000" +"141000,143000" +] +) +start &184 +end &73 +sat 32 +eat 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 19972,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 19973,0 +va (VaSet +font "Verdana,12,0" +) +xt "131000,139600,142800,141000" +st "spadIndexedSel" +blo "131000,140800" +tm "WireNameMgr" +) +) +on &72 +) +*247 (Wire +uid 19997,0 +shape (OrthoPolyLine +uid 19998,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,135000,133000,149000" +pts [ +"117750,135000" +"121000,135000" +"121000,149000" +"133000,149000" +] +) +start &157 +end &73 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 20001,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20002,0 +va (VaSet +font "Verdana,12,0" +) +xt "123000,147600,135200,149000" +st "spadRegAddress" +blo "123000,148800" +tm "WireNameMgr" +) +) +on &77 +) +*248 (Wire +uid 20009,0 +shape (OrthoPolyLine +uid 20010,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "117750,147000,153000,161000" +pts [ +"117750,161000" +"153000,161000" +"153000,147000" +"149000,147000" +] +) +start &166 +end &73 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 20013,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20014,0 +va (VaSet +font "Verdana,12,0" +) +xt "119750,159600,129550,161000" +st "spadAddress" +blo "119750,160800" +tm "WireNameMgr" +) +) +on &79 +) +*249 (Wire +uid 21557,0 +shape (OrthoPolyLine +uid 21558,0 +va (VaSet +vasetType 3 +) +xt "77750,105000,92250,105000" +pts [ +"92250,105000" +"77750,105000" +] +) +start &185 +end &119 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 21561,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 21562,0 +va (VaSet +font "Verdana,12,0" +) +xt "82250,103600,91650,105000" +st "twoRegInstr" +blo "82250,104800" +tm "WireNameMgr" +) +) +on &93 +) +*250 (Wire +uid 22147,0 +shape (OrthoPolyLine +uid 22148,0 +va (VaSet +vasetType 3 +) +xt "77750,51000,92250,51000" +pts [ +"77750,51000" +"92250,51000" +] +) +start &99 +end &128 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 22149,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 22150,0 +va (VaSet +font "Verdana,12,0" +) +xt "80000,49600,85300,51000" +st "prevPC" +blo "80000,50800" +tm "WireNameMgr" +) +) +on &133 +) +*251 (Wire +uid 22871,0 +shape (OrthoPolyLine +uid 22872,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "156000,-2000,164000,-2000" +pts [ +"164000,-2000" +"156000,-2000" +] +) +end &189 +sat 16 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 22877,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 22878,0 +va (VaSet +font "Verdana,12,0" +) +xt "158000,-3400,166100,-2000" +st "instrString" +blo "158000,-2200" +tm "WireNameMgr" +) +) +on &193 +) +*252 (Wire +uid 22899,0 +shape (OrthoPolyLine +uid 22900,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "124000,-2000,132000,-2000" +pts [ +"132000,-2000" +"124000,-2000" +] +) +start &189 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 22905,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 22906,0 +va (VaSet +font "Verdana,12,0" +) +xt "123000,-3400,131200,-2000" +st "instruction" +blo "123000,-2200" +tm "WireNameMgr" +) +) +on &47 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *253 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*254 (Text +uid 573,0 +va (VaSet +font "arial,8,1" +) +xt "24000,-12000,29400,-11000" +st "Package List" +blo "24000,-11200" +) +*255 (MLText +uid 574,0 +va (VaSet +) +xt "24000,-11000,41500,-7400" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*256 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*257 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*258 (MLText +uid 48,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,2800,30400,5400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*259 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*260 (MLText +uid 50,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*261 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*262 (MLText +uid 52,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "142,31,1438,897" +viewArea "57030,92615,161856,163083" +cachedDiagramExtent "20000,-12000,196700,210000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA203_HPLJ2430DTN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +landscape 0 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 33 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "24000,-12000" +lastUid 23261,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*263 (Text +va (VaSet +) +xt "2100,3000,6700,4200" +st "" +blo "2100,4000" +tm "BdLibraryNameMgr" +) +*264 (Text +va (VaSet +) +xt "2100,4200,6200,5400" +st "" +blo "2100,5200" +tm "BlkNameMgr" +) +*265 (Text +va (VaSet +) +xt "2100,5400,3300,6600" +st "I0" +blo "2100,6400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "2100,13000,2100,13000" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*266 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*267 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*268 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*269 (Text +va (VaSet +) +xt "900,3000,3200,4000" +st "Library" +blo "900,3800" +tm "BdLibraryNameMgr" +) +*270 (Text +va (VaSet +) +xt "900,4000,6400,5000" +st "SaComponent" +blo "900,4800" +tm "CptNameMgr" +) +*271 (Text +va (VaSet +) +xt "900,5000,1500,6000" +st "I0" +blo "900,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6100,1000,-6100,1000" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-100,0,8100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*272 (Text +va (VaSet +) +xt "400,3000,2700,4000" +st "Library" +blo "400,3800" +) +*273 (Text +va (VaSet +) +xt "400,4000,6500,5000" +st "VhdlComponent" +blo "400,4800" +) +*274 (Text +va (VaSet +) +xt "400,5000,1000,6000" +st "I0" +blo "400,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6600,1000,-6600,1000" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*275 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*276 (Text +va (VaSet +) +xt "-100,4000,7000,5000" +st "VerilogComponent" +blo "-100,4800" +) +*277 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*278 (Text +va (VaSet +) +xt "3300,3700,4500,4700" +st "eb1" +blo "3300,4500" +tm "HdlTextNameMgr" +) +*279 (Text +va (VaSet +) +xt "3300,4700,3700,5700" +st "1" +blo "3300,5500" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-350,-600,250,400" +st "G" +blo "-350,200" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1650" +) +num (Text +va (VaSet +) +xt "300,250,700,1250" +st "1" +blo "300,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*280 (Text +va (VaSet +font "Arial,8,1" +) +xt "13200,20000,21100,21000" +st "Frame Declarations" +blo "13200,20800" +) +*281 (MLText +va (VaSet +) +xt "13200,21000,13200,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1650" +) +num (Text +va (VaSet +) +xt "300,250,700,1250" +st "1" +blo "300,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*282 (Text +va (VaSet +font "Arial,8,1" +) +xt "13200,20000,21100,21000" +st "Frame Declarations" +blo "13200,20800" +) +*283 (MLText +va (VaSet +) +xt "13200,21000,13200,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,-2400,29400,-1400" +st "Declarations" +blo "24000,-1600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,-1400,26700,-400" +st "Ports:" +blo "24000,-600" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,9200,27800,10200" +st "Pre User:" +blo "24000,10000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,9,0" +) +xt "26000,10200,48000,15000" +st "constant aluCodeBitNb: positive := 5; +constant opCodeBitNb: positive := 5; +constant branchCondBitNb: positive := 3; +constant intCodeBitNb: positive := 5;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,15000,31100,16000" +st "Diagram Signals:" +blo "24000,15800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +font "Arial,8,1" +) +xt "24000,44800,28700,45800" +st "Post User:" +blo "24000,45600" +) +postUserText (MLText +uid 8,0 +va (VaSet +) +xt "24000,-2400,24000,-2400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 223,0 +usingSuid 1 +emptyRow *284 (LEmptyRow +) +uid 5534,0 +optionalChildren [ +*285 (RefLabelRowHdr +) +*286 (TitleRowHdr +) +*287 (FilterRowHdr +) +*288 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*289 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*290 (GroupColHdr +tm "GroupColHdrMgr" +) +*291 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*292 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*293 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*294 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*295 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*296 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*297 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 7,0 +) +) +uid 5491,0 +) +*298 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 11 +suid 155,0 +) +) +uid 16384,0 +) +*299 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 12 +suid 156,0 +) +) +uid 16386,0 +) +*300 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 159,0 +) +) +uid 16392,0 +) +*301 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 8 +suid 160,0 +) +) +uid 16394,0 +) +*302 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 9 +suid 161,0 +) +) +uid 16396,0 +) +*303 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 163,0 +) +) +uid 16913,0 +) +*304 (LeafLogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 164,0 +) +) +uid 16915,0 +) +*305 (LeafLogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 165,0 +) +) +uid 16917,0 +) +*306 (LeafLogPort +port (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 166,0 +) +) +uid 16919,0 +) +*307 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "registerFileSel" +t "std_ulogic" +o 36 +suid 167,0 +) +) +uid 17364,0 +) +*308 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "instrDataSel" +t "std_ulogic" +o 22 +suid 168,0 +) +) +uid 17366,0 +) +*309 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "portInSel" +t "std_ulogic" +o 29 +suid 169,0 +) +) +uid 17368,0 +) +*310 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "scratchpadSel" +t "std_ulogic" +o 37 +suid 170,0 +) +) +uid 17370,0 +) +*311 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cIn" +t "std_ulogic" +o 17 +suid 171,0 +) +) +uid 17372,0 +) +*312 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cOut" +t "std_ulogic" +o 18 +suid 172,0 +) +) +uid 17374,0 +) +*313 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "zero" +t "std_ulogic" +o 48 +suid 173,0 +) +) +uid 17376,0 +) +*314 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "intCode" +t "std_ulogic_vector" +b "( intCodeBitNb-1 DOWNTO 0 )" +o 24 +suid 174,0 +) +) +uid 17635,0 +) +*315 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "opCode" +t "std_ulogic_vector" +b "( opCodeBitNb-1 DOWNTO 0 )" +o 27 +suid 176,0 +) +) +uid 17639,0 +) +*316 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "aluCode" +t "std_ulogic_vector" +b "( aluCodeBitNb-1 DOWNTO 0 )" +o 15 +suid 177,0 +) +) +uid 17641,0 +) +*317 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 13 +suid 178,0 +) +) +uid 17643,0 +) +*318 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 14 +suid 179,0 +) +) +uid 17645,0 +) +*319 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "instrData" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 21 +suid 180,0 +) +) +uid 17647,0 +) +*320 (LeafLogPort +port (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 4 +suid 183,0 +) +) +uid 17843,0 +) +*321 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 20 +suid 184,0 +) +) +uid 18059,0 +) +*322 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 10 +suid 185,0 +) +) +uid 18061,0 +) +*323 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 26 +suid 186,0 +) +) +uid 18229,0 +) +*324 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 25 +suid 187,0 +) +) +uid 18231,0 +) +*325 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "incPC" +t "std_ulogic" +o 19 +suid 188,0 +) +) +uid 18233,0 +) +*326 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 46 +suid 189,0 +) +) +uid 18312,0 +) +*327 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "storePC" +t "std_ulogic" +o 45 +suid 191,0 +) +) +uid 18316,0 +) +*328 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "scratchpadWrite" +t "std_ulogic" +o 38 +suid 200,0 +) +) +uid 18656,0 +) +*329 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "regWrite" +t "std_ulogic" +o 35 +suid 203,0 +) +) +uid 18989,0 +) +*330 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "portOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 32 +suid 204,0 +) +) +uid 19016,0 +) +*331 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "portIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 28 +suid 205,0 +) +) +uid 19018,0 +) +*332 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "spadIn" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 40 +suid 207,0 +) +) +uid 19796,0 +) +*333 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "spadOut" +t "signed" +b "(registerBitNb-1 DOWNTO 0)" +o 43 +suid 208,0 +) +) +uid 19798,0 +) +*334 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "portIndexedSel" +t "std_ulogic" +o 30 +suid 209,0 +) +) +uid 19802,0 +) +*335 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "portInstrAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 31 +suid 210,0 +) +) +uid 19808,0 +) +*336 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "spadInstrAddress" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 42 +suid 212,0 +) +) +uid 19903,0 +) +*337 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "spadIndexedSel" +t "std_ulogic" +o 41 +suid 213,0 +) +) +uid 19993,0 +) +*338 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "spadRegAddress" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 44 +suid 216,0 +) +) +uid 20005,0 +) +*339 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "portRegAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 33 +suid 218,0 +) +) +uid 20019,0 +) +*340 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "spadAddress" +t "unsigned" +b "(scratchpadAddressBitNb-1 DOWNTO 0)" +o 39 +suid 219,0 +) +) +uid 20264,0 +) +*341 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "branchCond" +t "std_ulogic_vector" +b "(branchCondBitNb-1 DOWNTO 0)" +o 16 +suid 220,0 +) +) +uid 21672,0 +) +*342 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "twoRegInstr" +t "std_ulogic" +o 47 +suid 221,0 +) +) +uid 21674,0 +) +*343 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "prevPC" +t "std_ulogic" +o 34 +suid 222,0 +) +) +uid 22151,0 +) +*344 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "instrString" +t "string" +b "(1 TO 16)" +o 23 +suid 223,0 +) +) +uid 22897,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 5547,0 +optionalChildren [ +*345 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *346 (MRCItem +litem &284 +pos 48 +dimension 20 +) +uid 5549,0 +optionalChildren [ +*347 (MRCItem +litem &285 +pos 0 +dimension 20 +uid 5550,0 +) +*348 (MRCItem +litem &286 +pos 1 +dimension 23 +uid 5551,0 +) +*349 (MRCItem +litem &287 +pos 2 +hidden 1 +dimension 20 +uid 5552,0 +) +*350 (MRCItem +litem &297 +pos 2 +dimension 20 +uid 5492,0 +) +*351 (MRCItem +litem &298 +pos 0 +dimension 20 +uid 16383,0 +) +*352 (MRCItem +litem &299 +pos 1 +dimension 20 +uid 16385,0 +) +*353 (MRCItem +litem &300 +pos 3 +dimension 20 +uid 16391,0 +) +*354 (MRCItem +litem &301 +pos 4 +dimension 20 +uid 16393,0 +) +*355 (MRCItem +litem &302 +pos 5 +dimension 20 +uid 16395,0 +) +*356 (MRCItem +litem &303 +pos 6 +dimension 20 +uid 16914,0 +) +*357 (MRCItem +litem &304 +pos 7 +dimension 20 +uid 16916,0 +) +*358 (MRCItem +litem &305 +pos 8 +dimension 20 +uid 16918,0 +) +*359 (MRCItem +litem &306 +pos 9 +dimension 20 +uid 16920,0 +) +*360 (MRCItem +litem &307 +pos 12 +dimension 20 +uid 17365,0 +) +*361 (MRCItem +litem &308 +pos 13 +dimension 20 +uid 17367,0 +) +*362 (MRCItem +litem &309 +pos 14 +dimension 20 +uid 17369,0 +) +*363 (MRCItem +litem &310 +pos 15 +dimension 20 +uid 17371,0 +) +*364 (MRCItem +litem &311 +pos 16 +dimension 20 +uid 17373,0 +) +*365 (MRCItem +litem &312 +pos 17 +dimension 20 +uid 17375,0 +) +*366 (MRCItem +litem &313 +pos 18 +dimension 20 +uid 17377,0 +) +*367 (MRCItem +litem &314 +pos 19 +dimension 20 +uid 17636,0 +) +*368 (MRCItem +litem &315 +pos 20 +dimension 20 +uid 17640,0 +) +*369 (MRCItem +litem &316 +pos 21 +dimension 20 +uid 17642,0 +) +*370 (MRCItem +litem &317 +pos 22 +dimension 20 +uid 17644,0 +) +*371 (MRCItem +litem &318 +pos 23 +dimension 20 +uid 17646,0 +) +*372 (MRCItem +litem &319 +pos 24 +dimension 20 +uid 17648,0 +) +*373 (MRCItem +litem &320 +pos 10 +dimension 20 +uid 17842,0 +) +*374 (MRCItem +litem &321 +pos 25 +dimension 20 +uid 18060,0 +) +*375 (MRCItem +litem &322 +pos 11 +dimension 20 +uid 18062,0 +) +*376 (MRCItem +litem &323 +pos 26 +dimension 20 +uid 18230,0 +) +*377 (MRCItem +litem &324 +pos 27 +dimension 20 +uid 18232,0 +) +*378 (MRCItem +litem &325 +pos 28 +dimension 20 +uid 18234,0 +) +*379 (MRCItem +litem &326 +pos 29 +dimension 20 +uid 18313,0 +) +*380 (MRCItem +litem &327 +pos 30 +dimension 20 +uid 18317,0 +) +*381 (MRCItem +litem &328 +pos 31 +dimension 20 +uid 18657,0 +) +*382 (MRCItem +litem &329 +pos 32 +dimension 20 +uid 18990,0 +) +*383 (MRCItem +litem &330 +pos 33 +dimension 20 +uid 19017,0 +) +*384 (MRCItem +litem &331 +pos 34 +dimension 20 +uid 19019,0 +) +*385 (MRCItem +litem &332 +pos 35 +dimension 20 +uid 19797,0 +) +*386 (MRCItem +litem &333 +pos 36 +dimension 20 +uid 19799,0 +) +*387 (MRCItem +litem &334 +pos 37 +dimension 20 +uid 19803,0 +) +*388 (MRCItem +litem &335 +pos 38 +dimension 20 +uid 19809,0 +) +*389 (MRCItem +litem &336 +pos 39 +dimension 20 +uid 19904,0 +) +*390 (MRCItem +litem &337 +pos 40 +dimension 20 +uid 19994,0 +) +*391 (MRCItem +litem &338 +pos 41 +dimension 20 +uid 20006,0 +) +*392 (MRCItem +litem &339 +pos 42 +dimension 20 +uid 20020,0 +) +*393 (MRCItem +litem &340 +pos 43 +dimension 20 +uid 20265,0 +) +*394 (MRCItem +litem &341 +pos 44 +dimension 20 +uid 21673,0 +) +*395 (MRCItem +litem &342 +pos 45 +dimension 20 +uid 21675,0 +) +*396 (MRCItem +litem &343 +pos 46 +dimension 20 +uid 22152,0 +) +*397 (MRCItem +litem &344 +pos 47 +dimension 20 +uid 22898,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 5553,0 +optionalChildren [ +*398 (MRCItem +litem &288 +pos 0 +dimension 20 +uid 5554,0 +) +*399 (MRCItem +litem &290 +pos 1 +dimension 50 +uid 5555,0 +) +*400 (MRCItem +litem &291 +pos 2 +dimension 100 +uid 5556,0 +) +*401 (MRCItem +litem &292 +pos 3 +dimension 50 +uid 5557,0 +) +*402 (MRCItem +litem &293 +pos 4 +dimension 100 +uid 5558,0 +) +*403 (MRCItem +litem &294 +pos 5 +dimension 100 +uid 5559,0 +) +*404 (MRCItem +litem &295 +pos 6 +dimension 50 +uid 5560,0 +) +*405 (MRCItem +litem &296 +pos 7 +dimension 80 +uid 5561,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 5548,0 +vaOverrides [ +] +) +] +) +uid 5533,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *406 (LEmptyRow +) +uid 5563,0 +optionalChildren [ +*407 (RefLabelRowHdr +) +*408 (TitleRowHdr +) +*409 (FilterRowHdr +) +*410 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*411 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*412 (GroupColHdr +tm "GroupColHdrMgr" +) +*413 (NameColHdr +tm "GenericNameColHdrMgr" +) +*414 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*415 (InitColHdr +tm "GenericValueColHdrMgr" +) +*416 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*417 (EolColHdr +tm "GenericEolColHdrMgr" +) +*418 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 16169,0 +) +*419 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 16171,0 +) +*420 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 17875,0 +) +*421 (LogGeneric +generic (GiElement +name "instructionBitNb" +type "positive" +value "18" +) +uid 17877,0 +) +*422 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 19295,0 +) +*423 (LogGeneric +generic (GiElement +name "scratchpadAddressBitNb" +type "natural" +value "4" +) +uid 19407,0 +) +*424 (LogGeneric +generic (GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +uid 21424,0 +) +] +) +pdm (PhysicalDM +uid 5575,0 +optionalChildren [ +*425 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *426 (MRCItem +litem &406 +pos 7 +dimension 20 +) +uid 5577,0 +optionalChildren [ +*427 (MRCItem +litem &407 +pos 0 +dimension 20 +uid 5578,0 +) +*428 (MRCItem +litem &408 +pos 1 +dimension 23 +uid 5579,0 +) +*429 (MRCItem +litem &409 +pos 2 +hidden 1 +dimension 20 +uid 5580,0 +) +*430 (MRCItem +litem &418 +pos 0 +dimension 20 +uid 16168,0 +) +*431 (MRCItem +litem &419 +pos 1 +dimension 20 +uid 16170,0 +) +*432 (MRCItem +litem &420 +pos 3 +dimension 20 +uid 17874,0 +) +*433 (MRCItem +litem &421 +pos 5 +dimension 20 +uid 17876,0 +) +*434 (MRCItem +litem &422 +pos 2 +dimension 20 +uid 19294,0 +) +*435 (MRCItem +litem &423 +pos 6 +dimension 20 +uid 19406,0 +) +*436 (MRCItem +litem &424 +pos 4 +dimension 20 +uid 21423,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 5581,0 +optionalChildren [ +*437 (MRCItem +litem &410 +pos 0 +dimension 20 +uid 5582,0 +) +*438 (MRCItem +litem &412 +pos 1 +dimension 50 +uid 5583,0 +) +*439 (MRCItem +litem &413 +pos 2 +dimension 100 +uid 5584,0 +) +*440 (MRCItem +litem &414 +pos 3 +dimension 100 +uid 5585,0 +) +*441 (MRCItem +litem &415 +pos 4 +dimension 50 +uid 5586,0 +) +*442 (MRCItem +litem &416 +pos 5 +dimension 50 +uid 5587,0 +) +*443 (MRCItem +litem &417 +pos 6 +dimension 80 +uid 5588,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 5576,0 +vaOverrides [ +] +) +] +) +uid 5562,0 +type 1 +) +activeModelName "BlockDiag" +frameCount 1 +) diff --git a/Libs/NanoBlaze/hds/nano@processor/symbol.sb b/Libs/NanoBlaze/hds/nano@processor/symbol.sb new file mode 100644 index 0000000..9ec8fb6 --- /dev/null +++ b/Libs/NanoBlaze/hds/nano@processor/symbol.sb @@ -0,0 +1,2223 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2053,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 12,0 +) +) +uid 322,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 324,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 11 +suid 2024,0 +) +) +uid 496,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 12 +suid 2026,0 +) +) +uid 500,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +uid 532,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 2028,0 +) +) +uid 534,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 2039,0 +) +) +uid 1168,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 8 +suid 2040,0 +) +) +uid 1170,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 9 +suid 2042,0 +) +) +uid 1174,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +uid 2048,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 4 +suid 2052,0 +) +) +uid 2274,0 +) +*25 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 10 +suid 2053,0 +) +) +uid 2324,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 254,0 +optionalChildren [ +*28 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 257,0 +) +*29 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 259,0 +) +*30 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*31 (MRCItem +litem &2 +pos 2 +dimension 20 +uid 281,0 +) +*32 (MRCItem +litem &3 +pos 6 +dimension 20 +uid 283,0 +) +*33 (MRCItem +litem &16 +pos 0 +dimension 20 +uid 497,0 +) +*34 (MRCItem +litem &17 +pos 1 +dimension 20 +uid 501,0 +) +*35 (MRCItem +litem &18 +pos 8 +dimension 20 +uid 533,0 +) +*36 (MRCItem +litem &19 +pos 9 +dimension 20 +uid 535,0 +) +*37 (MRCItem +litem &20 +pos 3 +dimension 20 +uid 1169,0 +) +*38 (MRCItem +litem &21 +pos 4 +dimension 20 +uid 1171,0 +) +*39 (MRCItem +litem &22 +pos 5 +dimension 20 +uid 1175,0 +) +*40 (MRCItem +litem &23 +pos 7 +dimension 20 +uid 2049,0 +) +*41 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2275,0 +) +*42 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 2323,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*43 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 263,0 +) +*44 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 267,0 +) +*45 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 269,0 +) +*46 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 271,0 +) +*47 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 273,0 +) +*48 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 275,0 +) +*49 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 277,0 +) +*50 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 1507,0 +) +*64 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 1509,0 +) +*65 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 2258,0 +) +*66 (LogGeneric +generic (GiElement +name "instructionBitNb" +type "positive" +value "18" +) +uid 2260,0 +) +*67 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 2422,0 +) +*68 (LogGeneric +generic (GiElement +name "scratchpadAddressBitNb" +type "natural" +value "4" +) +uid 2447,0 +) +*69 (LogGeneric +generic (GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +uid 2520,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*70 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *71 (MRCItem +litem &51 +pos 7 +dimension 20 +) +uid 293,0 +optionalChildren [ +*72 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 296,0 +) +*73 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 298,0 +) +*74 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*75 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 1508,0 +) +*76 (MRCItem +litem &64 +pos 1 +dimension 20 +uid 1510,0 +) +*77 (MRCItem +litem &65 +pos 3 +dimension 20 +uid 2259,0 +) +*78 (MRCItem +litem &66 +pos 5 +dimension 20 +uid 2261,0 +) +*79 (MRCItem +litem &67 +pos 2 +dimension 20 +uid 2423,0 +) +*80 (MRCItem +litem &68 +pos 6 +dimension 20 +uid 2448,0 +) +*81 (MRCItem +litem &69 +pos 4 +dimension 20 +uid 2521,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*82 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 302,0 +) +*83 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 306,0 +) +*84 (MRCItem +litem &58 +pos 2 +dimension 199 +uid 308,0 +) +*85 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 310,0 +) +*86 (MRCItem +litem &60 +pos 4 +dimension 50 +uid 312,0 +) +*87 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 314,0 +) +*88 (MRCItem +litem &62 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoProcessor" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "nanoProcessor" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoProcessor" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nano@processor\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze\\hds\\nanoProcessor\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "07:38:43" +) +(vvPair +variable "unit" +value "nanoProcessor" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*89 (SymbolBody +uid 8,0 +optionalChildren [ +*90 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 53,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,27625,47000,28375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,27300,51800,28700" +st "clock" +blo "48000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11800,20500,12600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*91 (CptPort +uid 248,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 249,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,29625,47000,30375" +) +tg (CPTG +uid 250,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 251,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,29300,52100,30700" +st "reset" +blo "48000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 252,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15800,20500,16600" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 12,0 +) +) +) +*92 (CptPort +uid 469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 600,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,25625,63750,26375" +) +tg (CPTG +uid 471,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 472,0 +va (VaSet +font "Verdana,12,0" +) +xt "53300,25300,62000,26700" +st "readStrobe" +ju 2 +blo "62000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19800,20500,20600" +st "readStrobe : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 11 +suid 2024,0 +) +) +) +*93 (CptPort +uid 479,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 480,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,27625,63750,28375" +) +tg (CPTG +uid 481,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 482,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,27300,62000,28700" +st "writeStrobe" +ju 2 +blo "62000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 483,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,20600,19500,21400" +st "writeStrobe : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 12 +suid 2026,0 +) +) +) +*94 (CptPort +uid 502,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 503,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,25625,47000,26375" +) +tg (CPTG +uid 504,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 505,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,25300,50400,26700" +st "en" +blo "48000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 506,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13400,20500,14200" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +) +*95 (CptPort +uid 1163,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1164,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,15625,47000,16375" +) +tg (CPTG +uid 1165,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1166,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,15300,52500,16700" +st "intAck" +blo "48000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1167,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18200,20500,19000" +st "intAck : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 9 +suid 2042,0 +) +) +) +*96 (CptPort +uid 1998,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1999,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,13625,47000,14375" +) +tg (CPTG +uid 2000,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2001,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,13300,50400,14700" +st "int" +blo "48000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2002,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15000,20500,15800" +st "int : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 5 +suid 2028,0 +) +) +) +*97 (CptPort +uid 2003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2004,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,19625,63750,20375" +) +tg (CPTG +uid 2005,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2006,0 +va (VaSet +font "Verdana,12,0" +) +xt "52400,19300,62000,20700" +st "dataAddress" +ju 2 +blo "62000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2007,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16600,32500,17400" +st "dataAddress : OUT unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 7 +suid 2039,0 +) +) +) +*98 (CptPort +uid 2008,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2009,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,21625,63750,22375" +) +tg (CPTG +uid 2010,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2011,0 +va (VaSet +font "Verdana,12,0" +) +xt "56000,21300,62000,22700" +st "dataOut" +ju 2 +blo "62000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2012,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17400,37500,18200" +st "dataOut : OUT std_ulogic_vector (registerBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 8 +suid 2040,0 +) +) +) +*99 (CptPort +uid 2043,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2073,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,23625,63750,24375" +) +tg (CPTG +uid 2045,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2046,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,23300,62000,24700" +st "dataIn" +ju 2 +blo "62000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2047,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12600,37500,13400" +st "dataIn : IN std_ulogic_vector (registerBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +) +*100 (CptPort +uid 2267,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2299,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,15625,63750,16375" +) +tg (CPTG +uid 2269,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2270,0 +va (VaSet +font "Verdana,12,0" +) +xt "53800,15300,62000,16700" +st "instruction" +ju 2 +blo "62000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2271,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14200,39000,15000" +st "instruction : IN std_ulogic_vector (instructionBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(instructionBitNb-1 DOWNTO 0)" +o 4 +suid 2052,0 +) +) +) +*101 (CptPort +uid 2325,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2326,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,13625,63750,14375" +) +tg (CPTG +uid 2327,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2328,0 +va (VaSet +font "Verdana,12,0" +) +xt "52400,13300,62000,14700" +st "progCounter" +ju 2 +blo "62000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2329,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19000,37000,19800" +st "progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 10 +suid 2053,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,10000,63000,32000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,31700,53100,32900" +st "NanoBlaze" +blo "47100,32700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,32900,56000,34100" +st "nanoProcessor" +blo "47100,33900" +) +) +gi *102 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,10,0" +) +xt "47000,34400,70400,45200" +st "Generic Declarations + +addressBitNb positive 8 +registerBitNb positive 8 +registerAddressBitNb positive 4 +programCounterBitNb positive 10 +stackPointerBitNb positive 5 +instructionBitNb positive 18 +scratchpadAddressBitNb natural 4 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "registerBitNb" +type "positive" +value "8" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "5" +) +(GiElement +name "instructionBitNb" +type "positive" +value "18" +) +(GiElement +name "scratchpadAddressBitNb" +type "natural" +value "4" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*103 (Grouping +uid 136,0 +optionalChildren [ +*104 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65500,61200,65500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*105 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61500,78200,61500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*106 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63500,61200,63500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*107 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63500,57200,63500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*108 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,92300,63400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*109 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61500,82200,61500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*110 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "62350,61400,72650,62600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*111 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64500,57200,64500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*112 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65500,57200,65500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*113 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64500,61200,64500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *114 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*115 (Text +uid 103,0 +va (VaSet +font "arial,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*116 (MLText +uid 104,0 +va (VaSet +font "Verdana,10,0" +) +xt "0,1200,18600,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "130,29,1416,900" +viewArea "-1400,-1400,101032,68584" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32200,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31300,16700" +st "" +blo "29100,16500" +) +) +gi *117 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *118 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,9400,8600,10600" +st "Declarations" +blo "0,10400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,10600,4200,11800" +st "Ports:" +blo "0,11600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "0,21400,3700,22600" +st "User:" +blo "0,22400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "0,9400,9400,10600" +st "Internal User:" +blo "0,10400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,22600,2000,22600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 2590,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/program@counter/symbol.sb b/Libs/NanoBlaze/hds/program@counter/symbol.sb new file mode 100644 index 0000000..9836ab9 --- /dev/null +++ b/Libs/NanoBlaze/hds/program@counter/symbol.sb @@ -0,0 +1,1762 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 31,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 17,0 +) +) +uid 461,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 2 +suid 18,0 +) +) +uid 468,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 1 +suid 24,0 +) +) +uid 658,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 4 +suid 27,0 +) +) +uid 714,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 28,0 +) +) +uid 761,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "incPC" +t "std_ulogic" +o 6 +suid 29,0 +) +) +uid 763,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 7 +suid 30,0 +) +) +uid 765,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 8 +suid 31,0 +) +) +uid 767,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 103,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*27 (MRCItem +litem &14 +pos 1 +dimension 20 +uid 462,0 +) +*28 (MRCItem +litem &15 +pos 0 +dimension 20 +uid 469,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 659,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 715,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 762,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 764,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 766,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 768,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +uid 660,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &43 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*58 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 132,0 +) +*59 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 133,0 +) +*60 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*61 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 661,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*62 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 136,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 137,0 +) +*64 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 138,0 +) +*65 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 139,0 +) +*66 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 140,0 +) +*67 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 141,0 +) +*68 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\program@counter\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\program@counter\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\program@counter" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\programCounter" +) +(vvPair +variable "date" +value "16.09.2010" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "16" +) +(vvPair +variable "entity_name" +value "programCounter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3195" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "nanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/NanoBlaze/NanoBlaze/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "programCounter" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\program@counter\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\NanoBlaze\\Circuit\\Prefs\\..\\NanoBlaze\\hds\\programCounter\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "10:47:20" +) +(vvPair +variable "unit" +value "programCounter" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 86,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 446,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 739,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,36625,41000,37375" +) +tg (CPTG +uid 448,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 449,0 +va (VaSet +) +xt "42000,36500,44100,37500" +st "clock" +blo "42000,37300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 450,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8000,22000,8800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 17,0 +) +) +) +*71 (CptPort +uid 463,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 464,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,28625,65750,29375" +) +tg (CPTG +uid 465,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 466,0 +va (VaSet +) +xt "58900,28500,64000,29500" +st "progCounter" +ju 2 +blo "64000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 467,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13600,37000,14400" +st "progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 )" +) +thePort (LogicalPort +m 1 +decl (Decl +n "progCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 2 +suid 18,0 +) +) +) +*72 (CptPort +uid 653,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 740,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,24250,53375,25000" +) +tg (CPTG +uid 655,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 656,0 +va (VaSet +) +xt "47800,26000,55100,27000" +st "storedProgCounter" +ju 2 +blo "55100,26800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 657,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12800,38000,13600" +st "storedProgCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "storedProgCounter" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 1 +suid 24,0 +) +) +) +*73 (CptPort +uid 709,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 710,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,41000,53375,41750" +) +tg (CPTG +uid 711,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 712,0 +va (VaSet +) +xt "49000,39000,54100,40000" +st "instrAddress" +blo "49000,39800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 713,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9600,38000,10400" +st "instrAddress : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "instrAddress" +t "unsigned" +b "( programCounterBitNb-1 DOWNTO 0 )" +o 4 +suid 27,0 +) +) +) +*74 (CptPort +uid 741,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 742,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,38625,41000,39375" +) +tg (CPTG +uid 743,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 744,0 +va (VaSet +) +xt "42000,38500,44100,39500" +st "reset" +blo "42000,39300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 745,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,22000,12800" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 28,0 +) +) +) +*75 (CptPort +uid 746,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 747,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,28625,41000,29375" +) +tg (CPTG +uid 748,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 749,0 +va (VaSet +) +xt "42000,28500,44500,29500" +st "incPC" +blo "42000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 750,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8800,22000,9600" +st "incPC : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "incPC" +t "std_ulogic" +o 6 +suid 29,0 +) +) +) +*76 (CptPort +uid 751,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 752,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,30625,41000,31375" +) +tg (CPTG +uid 753,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 754,0 +va (VaSet +) +xt "42000,30500,48500,31500" +st "loadInstrAddress" +blo "42000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 755,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10400,22000,11200" +st "loadInstrAddress : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "loadInstrAddress" +t "std_ulogic" +o 7 +suid 30,0 +) +) +) +*77 (CptPort +uid 756,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 757,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,32625,41000,33375" +) +tg (CPTG +uid 758,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 759,0 +va (VaSet +) +xt "42000,32500,47500,33500" +st "loadStoredPC" +blo "42000,33300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 760,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11200,22000,12000" +st "loadStoredPC : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "loadStoredPC" +t "std_ulogic" +o 8 +suid 31,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "41000,25000,65000,41000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,41000,45900,42000" +st "nanoBlaze" +blo "41600,41800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "41600,42000,48700,43000" +st "programCounter" +blo "41600,42800" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "41000,44200,59000,46600" +st "Generic Declarations + +programCounterBitNb positive 10 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "programCounterBitNb" +type "positive" +value "10" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,75000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65000,66900,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,61000,79000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,61000,78200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,75000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63000,68200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,63000,58000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,63000,56300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,62000,95000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,62200,84400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,95000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61000,80800,62000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,61000,75000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "61150,61500,67850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,64000,58000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,64000,56300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,65000,58000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,65000,56900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,75000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64000,71200,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "54000,61000,95000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*92 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,51,1282,908" +viewArea "-3400,-1400,97585,69185" +cachedDiagramExtent "-2000,0,95000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,6000,3400,7000" +st "Declarations" +blo "-2000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7000,700,8000" +st "Ports:" +blo "-2000,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,14400,400,15400" +st "User:" +blo "-2000,15200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,6000,3800,7000" +st "Internal User:" +blo "-2000,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15400,0,15400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,6000,-2000,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 791,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/program@rom/symbol.sb b/Libs/NanoBlaze/hds/program@rom/symbol.sb new file mode 100644 index 0000000..368e642 --- /dev/null +++ b/Libs/NanoBlaze/hds/program@rom/symbol.sb @@ -0,0 +1,1578 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 6,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 95,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "address" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 81,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 83,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 3,0 +) +) +uid 85,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 87,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 89,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 110,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 111,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 112,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 82,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 84,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 86,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 88,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 90,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 115,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 116,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 117,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 118,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 120,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 121,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 122,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 94,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 124,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 196,0 +) +*50 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 198,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 138,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 139,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 140,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 197,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 199,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 143,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 144,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 145,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 146,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 147,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 148,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 149,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 123,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds\\rom\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds\\rom\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds\\rom" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds\\rom" +) +(vvPair +variable "date" +value "03.09.2010" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "rom" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3471" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "memory" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Board/Memory/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "rom" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds\\rom\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\Memory\\hds\\rom\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:17:51" +) +(vvPair +variable "unit" +value "rom" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 93,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,20625,25000,21375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "26000,20500,29100,21500" +st "address" +blo "26000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,2200,46500,3000" +st "address : IN unsigned (addressBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "address" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,26625,25000,27375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "26000,26500,28100,27500" +st "clock" +blo "26000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,3000,34500,3800" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,20625,41750,21375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "37000,20500,40000,21500" +st "dataOut" +ju 2 +blo "40000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,5400,49500,6200" +st "dataOut : OUT std_ulogic_vector ( dataBitNb-1 DOWNTO 0 )" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "( dataBitNb-1 DOWNTO 0 )" +o 5 +suid 3,0 +) +) +) +*69 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,24625,25000,25375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "26000,24500,27200,25500" +st "en" +blo "26000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,3800,34500,4600" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*70 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,28625,25000,29375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "26000,28500,28100,29500" +st "reset" +blo "26000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,4600,34500,5400" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "25000,17000,41000,31000" +) +oxt "15000,6000,32000,22000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "25500,31000,28800,32000" +st "memory" +blo "25500,31800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "25500,32000,27400,33000" +st "rom" +blo "25500,32800" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "25000,34200,39000,37400" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,48000,52000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "35200,48000,43900,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,44000,56000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "52200,44000,55200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,46000,52000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "35200,46000,45200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,46000,35000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "31200,46000,33300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,45000,72000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "52200,45200,61400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,44000,72000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,44000,57800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,44000,52000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38150,44500,44850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,47000,35000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "31200,47000,33300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "31000,48000,35000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "31200,48000,33900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "35000,47000,52000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "35200,47000,42600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "31000,44000,72000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-1000,0,4400,1000" +st "Package List" +blo "-1000,800" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "-1000,1000,10300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "6,79,1266,910" +viewArea "-2000,-1100,73993,51241" +cachedDiagramExtent "-1000,0,72000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-1000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "16000,200,21400,1200" +st "Declarations" +blo "16000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "16000,1200,18700,2200" +st "Ports:" +blo "16000,2000" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "16000,6200,18400,7200" +st "User:" +blo "16000,7000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "16000,200,21800,1200" +st "Internal User:" +blo "16000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,7200,18000,7200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "16000,200,16000,200" +tm "SyDeclarativeTextMgr" +) +) +lastUid 245,0 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/register@file/symbol.sb b/Libs/NanoBlaze/hds/register@file/symbol.sb new file mode 100644 index 0000000..3c6a15c --- /dev/null +++ b/Libs/NanoBlaze/hds/register@file/symbol.sb @@ -0,0 +1,1772 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2007.1a (Build 13)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 109,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +uid 91,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2,0 +) +) +uid 93,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "registersIn" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 22 +suid 3,0 +) +) +uid 95,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 4,0 +) +) +uid 97,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "opA" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 21 +suid 5,0 +) +) +uid 99,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "opB" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 22 +suid 6,0 +) +) +uid 101,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 7,0 +) +) +uid 103,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 8,0 +) +) +uid 105,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*22 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *23 (MRCItem +litem &1 +pos 8 +dimension 20 +) +uid 124,0 +optionalChildren [ +*24 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 125,0 +) +*25 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 126,0 +) +*26 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*27 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 92,0 +) +*28 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 94,0 +) +*29 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 96,0 +) +*30 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 98,0 +) +*31 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 100,0 +) +*32 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 102,0 +) +*33 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 104,0 +) +*34 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 106,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*35 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 129,0 +) +*36 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 130,0 +) +*37 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 131,0 +) +*38 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 132,0 +) +*39 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 133,0 +) +*40 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 134,0 +) +*41 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 135,0 +) +*42 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 136,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 108,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *43 (LEmptyRow +) +uid 138,0 +optionalChildren [ +*44 (RefLabelRowHdr +) +*45 (TitleRowHdr +) +*46 (FilterRowHdr +) +*47 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*48 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*49 (GroupColHdr +tm "GroupColHdrMgr" +) +*50 (NameColHdr +tm "GenericNameColHdrMgr" +) +*51 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*52 (InitColHdr +tm "GenericValueColHdrMgr" +) +*53 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*54 (EolColHdr +tm "GenericEolColHdrMgr" +) +*55 (LogGeneric +generic (GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +uid 187,0 +) +*56 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 189,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*57 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *58 (MRCItem +litem &43 +pos 2 +dimension 20 +) +uid 152,0 +optionalChildren [ +*59 (MRCItem +litem &44 +pos 0 +dimension 20 +uid 153,0 +) +*60 (MRCItem +litem &45 +pos 1 +dimension 23 +uid 154,0 +) +*61 (MRCItem +litem &46 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*62 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 188,0 +) +*63 (MRCItem +litem &56 +pos 1 +dimension 20 +uid 190,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*64 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 157,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 50 +uid 158,0 +) +*66 (MRCItem +litem &50 +pos 2 +dimension 100 +uid 159,0 +) +*67 (MRCItem +litem &51 +pos 3 +dimension 100 +uid 160,0 +) +*68 (MRCItem +litem &52 +pos 4 +dimension 50 +uid 161,0 +) +*69 (MRCItem +litem &53 +pos 5 +dimension 50 +uid 162,0 +) +*70 (MRCItem +litem &54 +pos 6 +dimension 80 +uid 163,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 137,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\register@file\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\register@file\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "boardTester" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\register@file" +) +(vvPair +variable "d_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\registerFile" +) +(vvPair +variable "date" +value "09.09.2010" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "09" +) +(vvPair +variable "entity_name" +value "registerFile" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3472" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "PicoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "D:/Labs/ElN/Board/PicoBlaze/work" +) +(vvPair +variable "mm" +value "09" +) +(vvPair +variable "module_name" +value "registerFile" +) +(vvPair +variable "month" +value "sept." +) +(vvPair +variable "month_long" +value "septembre" +) +(vvPair +variable "p" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\register@file\\symbol.sb" +) +(vvPair +variable "p_logical" +value "I:\\Filiere\\Cours\\Bachelor\\225_SEm\\COURS_COF\\PicoBlaze\\Circuit\\Prefs\\..\\PicoBlaze\\hds\\registerFile\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:24:00" +) +(vvPair +variable "unit" +value "registerFile" +) +(vvPair +variable "user" +value "cof" +) +(vvPair +variable "version" +value "2007.1a (Build 13)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2010" +) +(vvPair +variable "yy" +value "10" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 107,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,16625,39000,17375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "40000,16500,42400,17500" +st "addrA" +blo "40000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17600,35500,18400" +st "addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "addrA" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 1,0 +) +) +) +*73 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,18625,39000,19375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "40000,18500,42400,19500" +st "addrB" +blo "40000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,18400,35500,19200" +st "addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "addrB" +t "unsigned" +b "( registerAddressBitNb-1 DOWNTO 0 )" +o 2 +suid 2,0 +) +) +) +*74 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46625,29000,47375,29750" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "46000,27000,50500,28000" +st "registersIn" +blo "46000,27800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20800,29000,21600" +st "registersIn : IN signed ( dataBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "registersIn" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 22 +suid 3,0 +) +) +) +*75 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,24625,39000,25375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "40000,24500,42100,25500" +st "clock" +blo "40000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,19200,18500,20000" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*76 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,12250,43375,13000" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "42000,14000,43700,15000" +st "opA" +ju 2 +blo "43700,14800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,22400,29000,23200" +st "opA : OUT signed ( dataBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "opA" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 21 +suid 5,0 +) +) +) +*77 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50625,12250,51375,13000" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +) +xt "50000,14000,51700,15000" +st "opB" +ju 2 +blo "51700,14800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,23200,28000,24000" +st "opB : OUT signed ( dataBitNb-1 DOWNTO 0 ) +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "opB" +t "signed" +b "( dataBitNb-1 DOWNTO 0 )" +o 22 +suid 6,0 +) +) +) +*78 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,20625,39000,21375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "40000,20500,43400,21500" +st "regWrite" +blo "40000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20000,18500,20800" +st "regWrite : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "regWrite" +t "std_ulogic" +o 10 +suid 7,0 +) +) +) +*79 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,26625,39000,27375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +) +xt "40000,26500,42100,27500" +st "reset" +blo "40000,27300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,21600,18500,22400" +st "reset : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 12 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,13000,55000,29000" +) +oxt "15000,6000,31000,22000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "39550,29000,43550,30000" +st "PicoBlaze" +blo "39550,29800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "39550,30000,44450,31000" +st "registerFile" +blo "39550,30800" +) +) +gi *80 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "39000,32200,57000,35400" +st "Generic Declarations + +registerAddressBitNb positive 4 +dataBitNb positive 8 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "registerAddressBitNb" +type "positive" +value "4" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*81 (Grouping +uid 16,0 +optionalChildren [ +*82 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,42900,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,44200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,32300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,60400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,56800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37150,44500,43850,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,32300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,32900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,45500,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *92 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*93 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*94 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,51,1278,982" +viewArea "-3100,-1000,72089,57007" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "PicoBlaze" +entityName "aluAndRegs" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *95 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *96 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,15600,3400,16600" +st "Declarations" +blo "-2000,16400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,16600,700,17600" +st "Ports:" +blo "-2000,17400" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,24000,400,25000" +st "User:" +blo "-2000,24800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,15600,3800,16600" +st "Internal User:" +blo "-2000,16400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,25000,0,25000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,15600,-2000,15600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 213,0 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze/hds/scratchpad/symbol.sb b/Libs/NanoBlaze/hds/scratchpad/symbol.sb new file mode 100644 index 0000000..282df2c --- /dev/null +++ b/Libs/NanoBlaze/hds/scratchpad/symbol.sb @@ -0,0 +1,1673 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 23,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 76,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 82,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 20,0 +) +) +uid 540,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 5 +suid 21,0 +) +) +uid 542,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "( spadAddressBitNb-1 DOWNTO 0 )" +o 4 +suid 22,0 +) +) +uid 544,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 3 +suid 23,0 +) +) +uid 626,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 103,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 77,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 83,0 +) +*27 (MRCItem +litem &16 +pos 4 +dimension 20 +uid 541,0 +) +*28 (MRCItem +litem &17 +pos 2 +dimension 20 +uid 543,0 +) +*29 (MRCItem +litem &18 +pos 3 +dimension 20 +uid 545,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 627,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "registerBitNb" +type "positive" +value "8" +) +uid 592,0 +) +*52 (LogGeneric +generic (GiElement +name "spadAddressBitNb" +type "natural" +value "4" +) +uid 594,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *54 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*55 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 132,0 +) +*56 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 133,0 +) +*57 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*58 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 593,0 +) +*59 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 595,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*60 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 136,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 137,0 +) +*62 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 138,0 +) +*63 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 139,0 +) +*64 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 140,0 +) +*65 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 141,0 +) +*66 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\scratchpad\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\scratchpad\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\scratchpad" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\scratchpad" +) +(vvPair +variable "date" +value "05.03.2015" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "05" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "scratchpad" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../PicoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/SEm/NanoBlaze/work" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "scratchpad" +) +(vvPair +variable "month" +value "mars" +) +(vvPair +variable "month_long" +value "mars" +) +(vvPair +variable "p" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\scratchpad\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\NanoBlaze\\hds\\scratchpad\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-beamer" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:23:16" +) +(vvPair +variable "unit" +value "scratchpad" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2015" +) +(vvPair +variable "yy" +value "15" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 86,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,32625,38000,33375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "39000,32500,41100,33500" +st "clock" +blo "39000,33300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8800,16500,9600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*69 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,34625,38000,35375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "39000,34500,41100,35500" +st "reset" +blo "39000,35300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10400,16500,11200" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*70 (CptPort +uid 525,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 674,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57625,24250,58375,25000" +) +tg (CPTG +uid 527,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 528,0 +va (VaSet +) +xt "57000,26000,60000,27000" +st "dataOut" +blo "57000,26800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 529,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,28000,12800" +st "dataOut : OUT signed ( registerBitNb-1 DOWNTO 0 )" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 6 +suid 20,0 +) +) +) +*71 (CptPort +uid 530,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 531,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53625,24250,54375,25000" +) +tg (CPTG +uid 532,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 533,0 +va (VaSet +) +xt "53000,26000,55400,27000" +st "dataIn" +blo "53000,26800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 534,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9600,29000,10400" +st "dataIn : IN signed ( registerBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "signed" +b "( registerBitNb-1 DOWNTO 0 )" +o 5 +suid 21,0 +) +) +) +*72 (CptPort +uid 535,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 675,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,28625,62750,29375" +) +tg (CPTG +uid 537,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 538,0 +va (VaSet +) +xt "59100,28500,61000,29500" +st "addr" +ju 2 +blo "61000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 539,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,8000,31500,8800" +st "addr : IN unsigned ( spadAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "( spadAddressBitNb-1 DOWNTO 0 )" +o 4 +suid 22,0 +) +) +) +*73 (CptPort +uid 621,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 622,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,28625,38000,29375" +) +tg (CPTG +uid 623,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 624,0 +va (VaSet +) +xt "39000,28500,41000,29500" +st "write" +blo "39000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 625,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11200,16500,12000" +st "write : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 3 +suid 23,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,25000,62000,37000" +) +oxt "15000,6000,31000,20000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "38600,37000,43000,38000" +st "NanoBlaze" +blo "38600,37800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "38600,38000,43500,39000" +st "scratchpad" +blo "38600,38800" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "38000,40200,54000,43400" +st "Generic Declarations + +registerBitNb positive 8 +spadAddressBitNb natural 4 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "registerBitNb" +type "positive" +value "8" +) +(GiElement +name "spadAddressBitNb" +type "natural" +value "4" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,65000,75000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,65000,66900,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,61000,79000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,61000,78200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,63000,75000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,63000,68200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,63000,58000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,63000,56300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "75000,62000,95000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "75200,62200,84400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "79000,61000,95000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "79200,61000,80800,62000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,61000,75000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "61150,61500,67850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,64000,58000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,64000,56300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,65000,58000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,65000,56900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "58000,64000,75000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "58200,64000,69500,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "54000,61000,95000,66000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*88 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,9300,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,43,1284,900" +viewArea "-3400,-1400,97775,66525" +cachedDiagramExtent "-2000,0,95000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,6000,3400,7000" +st "Declarations" +blo "-2000,6800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7000,700,8000" +st "Ports:" +blo "-2000,7800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,12800,400,13800" +st "User:" +blo "-2000,13600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,6000,3800,7000" +st "Internal User:" +blo "-2000,6800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13800,0,13800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,6000,-2000,6000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 767,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/NanoBlaze_test/hdl/nanoBlaze_tester_test.vhd b/Libs/NanoBlaze_test/hdl/nanoBlaze_tester_test.vhd new file mode 100644 index 0000000..bf7109c --- /dev/null +++ b/Libs/NanoBlaze_test/hdl/nanoBlaze_tester_test.vhd @@ -0,0 +1,59 @@ +ARCHITECTURE test OF nanoBlaze_tester IS + + constant clockFrequency: real := 100.0E6; + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + + signal dataReg: std_ulogic_vector(dataOut'range); + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9.0/10.0; + + ------------------------------------------------------------------------------ + -- enable + en <= '1'; + + ------------------------------------------------------------------------------ + -- data + storeData: process(clock_int) + begin + if rising_edge(clock_int) then + if writeStrobe = '1' then + dataReg <= dataOut; + end if; + end if; + end process storeData; + + dataIn <= not dataReg; + + ------------------------------------------------------------------------------ + -- error checking + checkBus: process(clock_int) + begin + if rising_edge(clock_int) then + if writeStrobe = '1' then + if (dataAddress = 0) and (unsigned(dataOut) = 0) then + assert false + report "Testbench reports error (output value 0 at address 0)" + severity failure; + end if; + if (dataAddress = 0) and (unsigned(dataOut) = 1) then + assert false + report + cr & cr & + "--------------------------------------------------------------------------------" & cr & + "Testbench reports successful end of simulation (output value 1 at address 0)" & cr & + "--------------------------------------------------------------------------------" & cr & + cr + severity failure; + end if; + end if; + end if; + end process checkBus; + +END ARCHITECTURE test; diff --git a/Libs/NanoBlaze_test/hds/.hdlsidedata/_nanoBlaze_tester_test.vhd._fpf b/Libs/NanoBlaze_test/hds/.hdlsidedata/_nanoBlaze_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/NanoBlaze_test/hds/.hdlsidedata/_nanoBlaze_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/NanoBlaze_test/hds/_nanoblaze_tb._epf b/Libs/NanoBlaze_test/hds/_nanoblaze_tb._epf new file mode 100644 index 0000000..fab63fb --- /dev/null +++ b/Libs/NanoBlaze_test/hds/_nanoblaze_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom nano@blaze_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/NanoBlaze_test/hds/_nanoblaze_tester._epf b/Libs/NanoBlaze_test/hds/_nanoblaze_tester._epf new file mode 100644 index 0000000..c0b8b2d --- /dev/null +++ b/Libs/NanoBlaze_test/hds/_nanoblaze_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom nanoBlaze_tester_test.vhd diff --git a/Libs/NanoBlaze_test/hds/hds/_cordic_tb._epf b/Libs/NanoBlaze_test/hds/hds/_cordic_tb._epf new file mode 100644 index 0000000..21b4705 --- /dev/null +++ b/Libs/NanoBlaze_test/hds/hds/_cordic_tb._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom cordic_tb/struct.bd diff --git a/Libs/NanoBlaze_test/hds/hds/_cordic_tester._epf b/Libs/NanoBlaze_test/hds/hds/_cordic_tester._epf new file mode 100644 index 0000000..571444e --- /dev/null +++ b/Libs/NanoBlaze_test/hds/hds/_cordic_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom cordic_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/NanoBlaze_test/hds/hds/_motherboard_tb._epf b/Libs/NanoBlaze_test/hds/hds/_motherboard_tb._epf new file mode 100644 index 0000000..b97c86e --- /dev/null +++ b/Libs/NanoBlaze_test/hds/hds/_motherboard_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom motherboard_tb/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/NanoBlaze_test/hds/hds/_motherboard_tester._epf b/Libs/NanoBlaze_test/hds/hds/_motherboard_tester._epf new file mode 100644 index 0000000..7fb5b51 --- /dev/null +++ b/Libs/NanoBlaze_test/hds/hds/_motherboard_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom motherboard_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/NanoBlaze_test/hds/nano@blaze_tb/struct.bd b/Libs/NanoBlaze_test/hds/nano@blaze_tb/struct.bd new file mode 100644 index 0000000..e53ee7e --- /dev/null +++ b/Libs/NanoBlaze_test/hds/nano@blaze_tb/struct.bd @@ -0,0 +1,3457 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tb" +duLibraryName "NanoBlaze_test" +duName "nanoBlaze_tester" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I_DUT" +duLibraryName "NanoBlaze" +duName "nanoBlaze" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "registerBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "positive" +value "scratchpadAddressBitNb" +) +] +mwi 0 +uid 12041,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nanoBlaze_tb" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "nanoBlaze_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:51" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoBlaze_tb" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nanoBlaze_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "07:38:51" +) +(vvPair +variable "unit" +value "nanoBlaze_tb" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "119000,85000,138000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "119200,85400,134600,86600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,85000,113000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "94250,85250,105750,86750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,91000,113000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,91400,110600,92600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,85000,119000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,85400,117900,86600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,87000,113000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,87400,107400,88600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,87000,92000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,87400,90600,88600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,89000,92000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,89400,90600,90600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,87000,138000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,87200,127300,88400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,89000,113000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,89400,112700,90600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,91000,92000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,91400,91500,92600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "87000,85000,138000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "58000,63000,114000,71000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "Verdana,12,1" +) +xt "58600,70900,70800,72300" +st "NanoBlaze_test" +blo "58600,72100" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "Verdana,12,1" +) +xt "58600,72300,72000,73700" +st "nanoBlaze_tester" +blo "58600,73500" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "Verdana,12,1" +) +xt "58600,73700,62300,75100" +st "I_tb" +blo "58600,74900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "Courier New,9,0" +) +xt "58000,75600,82500,78000" +st "addressBitNb = addressBitNb ( positive ) +dataBitNb = dataBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +] +) +) +*16 (Net +uid 11079,0 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 87,0 +) +declText (MLText +uid 11080,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 11087,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 88,0 +) +declText (MLText +uid 11088,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 11095,0 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 89,0 +) +declText (MLText +uid 11096,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL en : std_ulogic" +) +) +*19 (Net +uid 11103,0 +decl (Decl +n "intAck" +t "std_ulogic" +o 7 +suid 90,0 +) +declText (MLText +uid 11104,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL intAck : std_ulogic" +) +) +*20 (Net +uid 11111,0 +decl (Decl +n "int" +t "std_uLogic" +o 6 +suid 91,0 +) +declText (MLText +uid 11112,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL int : std_uLogic" +) +) +*21 (Net +uid 11119,0 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 92,0 +) +declText (MLText +uid 11120,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL writeStrobe : std_uLogic" +) +) +*22 (Net +uid 11127,0 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 8 +suid 93,0 +) +declText (MLText +uid 11128,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,0,8200" +st "SIGNAL readStrobe : std_uLogic" +) +) +*23 (Net +uid 11135,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 94,0 +) +declText (MLText +uid 11136,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,15000,8200" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*24 (Net +uid 11143,0 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 95,0 +) +declText (MLText +uid 11144,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,15000,8200" +st "SIGNAL dataOut : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*25 (Net +uid 11151,0 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 2 +suid 96,0 +) +declText (MLText +uid 11152,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-17000,7400,13000,8200" +st "SIGNAL dataAddress : unsigned( addressBitNb-1 DOWNTO 0 )" +) +) +*26 (SaComponent +uid 12041,0 +optionalChildren [ +*27 (CptPort +uid 12001,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12002,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,49625,78000,50375" +) +tg (CPTG +uid 12003,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12004,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,49300,82800,50700" +st "clock" +blo "79000,50500" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*28 (CptPort +uid 12005,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12006,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,51625,78000,52375" +) +tg (CPTG +uid 12007,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12008,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,51300,83100,52700" +st "reset" +blo "79000,52500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 12,0 +) +) +) +*29 (CptPort +uid 12009,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12010,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,47625,94750,48375" +) +tg (CPTG +uid 12011,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12012,0 +va (VaSet +font "Verdana,12,0" +) +xt "84300,47300,93000,48700" +st "readStrobe" +ju 2 +blo "93000,48500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 9 +suid 2024,0 +) +) +) +*30 (CptPort +uid 12013,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12014,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,49625,94750,50375" +) +tg (CPTG +uid 12015,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12016,0 +va (VaSet +font "Verdana,12,0" +) +xt "84000,49300,93000,50700" +st "writeStrobe" +ju 2 +blo "93000,50500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 2026,0 +) +) +) +*31 (CptPort +uid 12017,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12018,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,47625,78000,48375" +) +tg (CPTG +uid 12019,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12020,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,47300,81400,48700" +st "en" +blo "79000,48500" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 2027,0 +) +) +) +*32 (CptPort +uid 12021,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12022,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,43625,78000,44375" +) +tg (CPTG +uid 12023,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12024,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,43300,83500,44700" +st "intAck" +blo "79000,44500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "intAck" +t "std_ulogic" +o 8 +suid 2042,0 +) +) +) +*33 (CptPort +uid 12025,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12026,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "77250,41625,78000,42375" +) +tg (CPTG +uid 12027,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 12028,0 +va (VaSet +font "Verdana,12,0" +) +xt "79000,41300,81400,42700" +st "int" +blo "79000,42500" +) +) +thePort (LogicalPort +decl (Decl +n "int" +t "std_uLogic" +o 4 +suid 2028,0 +) +) +) +*34 (CptPort +uid 12029,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12030,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,41625,94750,42375" +) +tg (CPTG +uid 12031,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12032,0 +va (VaSet +font "Verdana,12,0" +) +xt "83400,41300,93000,42700" +st "dataAddress" +ju 2 +blo "93000,42500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 6 +suid 2039,0 +) +) +) +*35 (CptPort +uid 12033,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12034,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,43625,94750,44375" +) +tg (CPTG +uid 12035,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12036,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,43300,93000,44700" +st "dataOut" +ju 2 +blo "93000,44500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 7 +suid 2040,0 +) +) +) +*36 (CptPort +uid 12037,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 12038,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94000,45625,94750,46375" +) +tg (CPTG +uid 12039,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 12040,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,45300,93000,46700" +st "dataIn" +ju 2 +blo "93000,46500" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(registerBitNb-1 DOWNTO 0)" +o 2 +suid 2050,0 +) +) +) +] +shape (Rectangle +uid 12042,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "78000,38000,94000,54000" +) +oxt "47000,16000,63000,32000" +ttg (MlTextGroup +uid 12043,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 12044,0 +va (VaSet +) +xt "78100,53700,82200,54700" +st "NanoBlaze" +blo "78100,54500" +tm "BdLibraryNameMgr" +) +*38 (Text +uid 12045,0 +va (VaSet +) +xt "78100,54700,82000,55700" +st "nanoBlaze" +blo "78100,55500" +tm "CptNameMgr" +) +*39 (Text +uid 12046,0 +va (VaSet +) +xt "78100,55700,80800,56700" +st "I_DUT" +blo "78100,56500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12047,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12048,0 +text (MLText +uid 12049,0 +va (VaSet +font "Courier New,10,0" +) +xt "78000,56400,119400,63600" +st "addressBitNb = addressBitNb ( positive ) +registerBitNb = dataBitNb ( positive ) +programCounterBitNb = programCounterBitNb ( positive ) +stackPointerBitNb = stackPointerBitNb ( positive ) +registerAddressBitNb = registerAddressBitNb ( positive ) +scratchpadAddressBitNb = scratchpadAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +(GiElement +name "registerBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "programCounterBitNb" +type "positive" +value "programCounterBitNb" +) +(GiElement +name "stackPointerBitNb" +type "positive" +value "stackPointerBitNb" +) +(GiElement +name "registerAddressBitNb" +type "positive" +value "registerAddressBitNb" +) +(GiElement +name "scratchpadAddressBitNb" +type "positive" +value "scratchpadAddressBitNb" +) +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*40 (Wire +uid 11081,0 +shape (OrthoPolyLine +uid 11082,0 +va (VaSet +vasetType 3 +) +xt "76000,52000,77250,63000" +pts [ +"77250,52000" +"76000,52000" +"76000,63000" +] +) +start &28 +end &12 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11085,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11086,0 +va (VaSet +font "Verdana,12,0" +) +xt "72250,50600,76350,52000" +st "reset" +blo "72250,51800" +tm "WireNameMgr" +) +) +on &16 +) +*41 (Wire +uid 11089,0 +shape (OrthoPolyLine +uid 11090,0 +va (VaSet +vasetType 3 +) +xt "74000,50000,77250,63000" +pts [ +"77250,50000" +"74000,50000" +"74000,63000" +] +) +start &27 +end &12 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11093,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11094,0 +va (VaSet +font "Verdana,12,0" +) +xt "72250,48600,76050,50000" +st "clock" +blo "72250,49800" +tm "WireNameMgr" +) +) +on &17 +) +*42 (Wire +uid 11097,0 +shape (OrthoPolyLine +uid 11098,0 +va (VaSet +vasetType 3 +) +xt "72000,48000,77250,63000" +pts [ +"77250,48000" +"72000,48000" +"72000,63000" +] +) +start &31 +end &12 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11101,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11102,0 +va (VaSet +font "Verdana,12,0" +) +xt "74250,46600,76650,48000" +st "en" +blo "74250,47800" +tm "WireNameMgr" +) +) +on &18 +) +*43 (Wire +uid 11105,0 +shape (OrthoPolyLine +uid 11106,0 +va (VaSet +vasetType 3 +) +xt "68000,44000,77250,63000" +pts [ +"77250,44000" +"68000,44000" +"68000,63000" +] +) +start &32 +end &12 +sat 32 +eat 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11109,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11110,0 +va (VaSet +font "Verdana,12,0" +) +xt "71250,42600,75750,44000" +st "intAck" +blo "71250,43800" +tm "WireNameMgr" +) +) +on &19 +) +*44 (Wire +uid 11113,0 +shape (OrthoPolyLine +uid 11114,0 +va (VaSet +vasetType 3 +) +xt "66000,42000,77250,63000" +pts [ +"77250,42000" +"66000,42000" +"66000,63000" +] +) +start &33 +end &12 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11118,0 +va (VaSet +font "Verdana,12,0" +) +xt "74250,40600,76650,42000" +st "int" +blo "74250,41800" +tm "WireNameMgr" +) +) +on &20 +) +*45 (Wire +uid 11121,0 +shape (OrthoPolyLine +uid 11122,0 +va (VaSet +vasetType 3 +) +xt "94750,50000,98000,63000" +pts [ +"94750,50000" +"98000,50000" +"98000,63000" +] +) +start &30 +end &12 +sat 32 +eat 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11125,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11126,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,48600,105750,50000" +st "writeStrobe" +blo "96750,49800" +tm "WireNameMgr" +) +) +on &21 +) +*46 (Wire +uid 11129,0 +shape (OrthoPolyLine +uid 11130,0 +va (VaSet +vasetType 3 +) +xt "94750,48000,100000,63000" +pts [ +"94750,48000" +"100000,48000" +"100000,63000" +] +) +start &29 +end &12 +sat 32 +eat 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11133,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11134,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,46600,105450,48000" +st "readStrobe" +blo "96750,47800" +tm "WireNameMgr" +) +) +on &22 +) +*47 (Wire +uid 11137,0 +shape (OrthoPolyLine +uid 11138,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,46000,102000,63000" +pts [ +"94750,46000" +"102000,46000" +"102000,63000" +] +) +start &36 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11141,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11142,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,44600,101750,46000" +st "dataIn" +blo "96750,45800" +tm "WireNameMgr" +) +) +on &23 +) +*48 (Wire +uid 11145,0 +shape (OrthoPolyLine +uid 11146,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,44000,104000,63000" +pts [ +"94750,44000" +"104000,44000" +"104000,63000" +] +) +start &35 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11149,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11150,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,42600,102750,44000" +st "dataOut" +blo "96750,43800" +tm "WireNameMgr" +) +) +on &24 +) +*49 (Wire +uid 11153,0 +shape (OrthoPolyLine +uid 11154,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "94750,42000,106000,63000" +pts [ +"94750,42000" +"106000,42000" +"106000,63000" +] +) +start &34 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 11157,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 11158,0 +va (VaSet +font "Verdana,12,0" +) +xt "96750,40600,106350,42000" +st "dataAddress" +blo "96750,41800" +tm "WireNameMgr" +) +) +on &25 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *50 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 1297,0 +va (VaSet +font "Verdana,12,0" +) +xt "29000,19600,38500,21000" +st "Package List" +blo "29000,20800" +) +*52 (MLText +uid 1298,0 +va (VaSet +) +xt "29000,21000,46500,24600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*54 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*55 (MLText +uid 193,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,2800,30400,5400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*56 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*57 (MLText +uid 195,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*58 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*59 (MLText +uid 197,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "139,43,1424,898" +viewArea "27413,18070,140243,96501" +cachedDiagramExtent "-17000,0,138000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "29000,19000" +lastUid 12178,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +font "Verdana,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*61 (Text +va (VaSet +font "Verdana,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*62 (Text +va (VaSet +font "Verdana,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*64 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*65 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*67 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*68 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*70 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*71 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*73 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*74 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*76 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "Courier New,9,0" +) +xt "200,200,2700,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "Verdana,12,0" +) +xt "0,1400,1800,2800" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "Verdana,12,0" +) +xt "0,0,5900,1400" +st "Auto list" +) +second (MLText +va (VaSet +font "Verdana,12,0" +) +xt "0,1400,11800,2800" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,18500,-200" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*78 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,11000,-200" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*80 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,10,1" +) +xt "29000,26800,37600,28000" +st "Declarations" +blo "29000,27800" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "29000,28000,33200,29200" +st "Ports:" +blo "29000,29000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,10,1" +) +xt "29000,28000,35000,29200" +st "Pre User:" +blo "29000,29000" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,10,0" +) +xt "31000,29200,61600,37600" +st "constant addressBitNb: positive := 8; +constant dataBitNb: positive := 8; +constant programCounterBitNb: positive := 10; +constant stackPointerBitNb: positive := 5; +constant registerAddressBitNb: positive := 4; +constant portAddressBitNb: positive := 8; +constant scratchpadAddressBitNb: positive := 4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "29000,28000,40000,29200" +st "Diagram Signals:" +blo "29000,29000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,10,1" +) +xt "29000,28000,36300,29200" +st "Post User:" +blo "29000,29000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,10,0" +) +xt "31000,42400,31000,42400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 96,0 +usingSuid 1 +emptyRow *81 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*82 (RefLabelRowHdr +) +*83 (TitleRowHdr +) +*84 (FilterRowHdr +) +*85 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*86 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*87 (GroupColHdr +tm "GroupColHdrMgr" +) +*88 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*89 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*90 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*91 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*92 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*93 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*94 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 87,0 +) +) +uid 11159,0 +) +*95 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 88,0 +) +) +uid 11161,0 +) +*96 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 89,0 +) +) +uid 11163,0 +) +*97 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "intAck" +t "std_ulogic" +o 7 +suid 90,0 +) +) +uid 11165,0 +) +*98 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "int" +t "std_uLogic" +o 6 +suid 91,0 +) +) +uid 11167,0 +) +*99 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 92,0 +) +) +uid 11169,0 +) +*100 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "readStrobe" +t "std_uLogic" +o 8 +suid 93,0 +) +) +uid 11171,0 +) +*101 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 94,0 +) +) +uid 11173,0 +) +*102 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 95,0 +) +) +uid 11175,0 +) +*103 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 2 +suid 96,0 +) +) +uid 11177,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*104 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *105 (MRCItem +litem &81 +pos 10 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*106 (MRCItem +litem &82 +pos 0 +dimension 20 +uid 3326,0 +) +*107 (MRCItem +litem &83 +pos 1 +dimension 23 +uid 3327,0 +) +*108 (MRCItem +litem &84 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*109 (MRCItem +litem &94 +pos 0 +dimension 20 +uid 11160,0 +) +*110 (MRCItem +litem &95 +pos 1 +dimension 20 +uid 11162,0 +) +*111 (MRCItem +litem &96 +pos 2 +dimension 20 +uid 11164,0 +) +*112 (MRCItem +litem &97 +pos 3 +dimension 20 +uid 11166,0 +) +*113 (MRCItem +litem &98 +pos 4 +dimension 20 +uid 11168,0 +) +*114 (MRCItem +litem &99 +pos 5 +dimension 20 +uid 11170,0 +) +*115 (MRCItem +litem &100 +pos 6 +dimension 20 +uid 11172,0 +) +*116 (MRCItem +litem &101 +pos 7 +dimension 20 +uid 11174,0 +) +*117 (MRCItem +litem &102 +pos 8 +dimension 20 +uid 11176,0 +) +*118 (MRCItem +litem &103 +pos 9 +dimension 20 +uid 11178,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*119 (MRCItem +litem &85 +pos 0 +dimension 20 +uid 3330,0 +) +*120 (MRCItem +litem &87 +pos 1 +dimension 50 +uid 3331,0 +) +*121 (MRCItem +litem &88 +pos 2 +dimension 100 +uid 3332,0 +) +*122 (MRCItem +litem &89 +pos 3 +dimension 50 +uid 3333,0 +) +*123 (MRCItem +litem &90 +pos 4 +dimension 100 +uid 3334,0 +) +*124 (MRCItem +litem &91 +pos 5 +dimension 100 +uid 3335,0 +) +*125 (MRCItem +litem &92 +pos 6 +dimension 50 +uid 3336,0 +) +*126 (MRCItem +litem &93 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *127 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*128 (RefLabelRowHdr +) +*129 (TitleRowHdr +) +*130 (FilterRowHdr +) +*131 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*132 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*133 (GroupColHdr +tm "GroupColHdrMgr" +) +*134 (NameColHdr +tm "GenericNameColHdrMgr" +) +*135 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*136 (InitColHdr +tm "GenericValueColHdrMgr" +) +*137 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*138 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*139 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *140 (MRCItem +litem &127 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*141 (MRCItem +litem &128 +pos 0 +dimension 20 +uid 3354,0 +) +*142 (MRCItem +litem &129 +pos 1 +dimension 23 +uid 3355,0 +) +*143 (MRCItem +litem &130 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*144 (MRCItem +litem &131 +pos 0 +dimension 20 +uid 3358,0 +) +*145 (MRCItem +litem &133 +pos 1 +dimension 50 +uid 3359,0 +) +*146 (MRCItem +litem &134 +pos 2 +dimension 100 +uid 3360,0 +) +*147 (MRCItem +litem &135 +pos 3 +dimension 100 +uid 3361,0 +) +*148 (MRCItem +litem &136 +pos 4 +dimension 50 +uid 3362,0 +) +*149 (MRCItem +litem &137 +pos 5 +dimension 50 +uid 3363,0 +) +*150 (MRCItem +litem &138 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/NanoBlaze_test/hds/nano@blaze_tb/symbol.sb b/Libs/NanoBlaze_test/hds/nano@blaze_tb/symbol.sb new file mode 100644 index 0000000..d19e6e0 --- /dev/null +++ b/Libs/NanoBlaze_test/hds/nano@blaze_tb/symbol.sb @@ -0,0 +1,1258 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nanoBlaze_tb" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "entity_name" +value "nanoBlaze_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:50" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoBlaze_tb" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nanoBlaze_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "07:38:50" +) +(vvPair +variable "unit" +value "nanoBlaze_tb" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,39250,23100" +st "NanoBlaze_test" +blo "29950,22900" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,23100,38050,24300" +st "nanoBlaze_tb" +blo "29950,24100" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "32000,27600,43500,28400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41400,69600,42600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "29250,41250,40750,42750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47400,40800,48600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41400,52900,42600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43400,42400,44600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43400,25600,44600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45400,25600,46600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,62300,44400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45400,44700,46600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47400,26500,48600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "Arial,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "Arial,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,10,1" +) +xt "0,5800,3200,7000" +st "User:" +blo "0,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,7000,2000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/NanoBlaze_test/hds/nano@blaze_tester/interface b/Libs/NanoBlaze_test/hds/nano@blaze_tester/interface new file mode 100644 index 0000000..024798c --- /dev/null +++ b/Libs/NanoBlaze_test/hds/nano@blaze_tester/interface @@ -0,0 +1,1980 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 123,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 21,0 +) +) +uid 394,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 2 +suid 22,0 +) +) +uid 396,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 23,0 +) +) +uid 398,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +uid 400,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 25,0 +) +) +uid 402,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "int" +t "std_uLogic" +o 6 +suid 26,0 +) +) +uid 404,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "intAck" +t "std_ulogic" +o 7 +suid 27,0 +) +) +uid 406,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "readStrobe" +t "std_uLogic" +o 8 +suid 28,0 +) +) +uid 408,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 29,0 +) +) +uid 410,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 30,0 +) +) +uid 412,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 138,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 139,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 140,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 395,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 397,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 399,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 401,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 403,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 405,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 407,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 409,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 411,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 413,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 143,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 144,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 145,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 146,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 147,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 148,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 149,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 150,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 122,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 152,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "addressBitNb" +type "positive" +value "8" +) +uid 201,0 +) +*60 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 203,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *62 (MRCItem +litem &47 +pos 2 +dimension 20 +) +uid 166,0 +optionalChildren [ +*63 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 167,0 +) +*64 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 168,0 +) +*65 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*66 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 202,0 +) +*67 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 204,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*68 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 171,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 172,0 +) +*70 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 173,0 +) +*71 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 174,0 +) +*72 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 175,0 +) +*73 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 176,0 +) +*74 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 177,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 151,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "nanoTest.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tester" +) +(vvPair +variable "d_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nanoBlaze_tester" +) +(vvPair +variable "date" +value "11.11.2019" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "nanoBlaze_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "silvan.zahno" +) +(vvPair +variable "graphical_source_date" +value "11.11.2019" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE6996" +) +(vvPair +variable "graphical_source_time" +value "07:38:51" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE6996" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "NanoBlaze_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/ElN/Libraries/NanoBlaze_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "nanoBlaze_tester" +) +(vvPair +variable "month" +value "Nov" +) +(vvPair +variable "month_long" +value "November" +) +(vvPair +variable "p" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nano@blaze_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\work\\git\\Education\\eln\\labo\\solution\\eln_labs\\Libs\\NanoBlaze_test\\hds\\nanoBlaze_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "07:38:51" +) +(vvPair +variable "unit" +value "nanoBlaze_tester" +) +(vvPair +variable "user" +value "silvan.zahno" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 121,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 344,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 345,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 346,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 347,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,10800" +st "clock" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 348,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,62500,6800" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 21,0 +) +) +) +*77 (CptPort +uid 349,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 350,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62625,5250,63375,6000" +) +tg (CPTG +uid 351,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 352,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "62300,7000,63700,16600" +st "dataAddress" +ju 2 +blo "63500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 353,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,75500,2800" +st "dataAddress : IN unsigned ( addressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +decl (Decl +n "dataAddress" +t "unsigned" +b "( addressBitNb-1 DOWNTO 0 )" +o 2 +suid 22,0 +) +) +) +*78 (CptPort +uid 354,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 355,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "58625,5250,59375,6000" +) +tg (CPTG +uid 356,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 357,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "58300,7000,59700,12000" +st "dataIn" +ju 2 +blo "59500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 358,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,77500,7600" +st "dataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 23,0 +) +) +) +*79 (CptPort +uid 359,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 360,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 361,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 362,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "60300,7000,61700,13000" +st "dataOut" +ju 2 +blo "61500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 363,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,77500,3600" +st "dataOut : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 24,0 +) +) +) +*80 (CptPort +uid 364,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 365,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 366,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 367,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,9400" +st "en" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 368,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,62500,8400" +st "en : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 25,0 +) +) +) +*81 (CptPort +uid 369,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 370,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 371,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 372,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,9400" +st "int" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 373,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,62500,9200" +st "int : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "int" +t "std_uLogic" +o 6 +suid 26,0 +) +) +) +*82 (CptPort +uid 374,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 375,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 376,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 377,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,11500" +st "intAck" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 378,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,62500,4400" +st "intAck : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "intAck" +t "std_ulogic" +o 7 +suid 27,0 +) +) +) +*83 (CptPort +uid 379,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 380,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 381,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 382,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "56300,7000,57700,15700" +st "readStrobe" +ju 2 +blo "57500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 383,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,62500,5200" +st "readStrobe : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "readStrobe" +t "std_uLogic" +o 8 +suid 28,0 +) +) +) +*84 (CptPort +uid 384,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 385,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 386,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 387,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "32300,7000,33700,11100" +st "reset" +ju 2 +blo "33500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 388,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,61500,10000" +st "reset : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 9 +suid 29,0 +) +) +) +*85 (CptPort +uid 389,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 390,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 391,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 392,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "54300,7000,55700,16000" +st "writeStrobe" +ju 2 +blo "55500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 393,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,62500,6000" +st "writeStrobe : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "writeStrobe" +t "std_uLogic" +o 10 +suid 30,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,71000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "39400,9000,46000,10000" +st "NanoBlaze_test" +blo "39400,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "39400,10000,46600,11000" +st "nanoBlaze_tester" +blo "39400,10800" +) +) +gi *86 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "19000,6000,33000,9200" +st "Generic Declarations + +addressBitNb positive 8 +dataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "8" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*87 (Grouping +uid 16,0 +optionalChildren [ +*88 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "58,57,1074,737" +viewArea "-500,-500,85450,47920" +cachedDiagramExtent "0,0,77500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "NanoBlaze_test" +entityName "nanoBlaze_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,10000,44400,11000" +st "User:" +blo "42000,10800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11000,44000,11000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 413,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/NanoBlaze_test/sim/nanoBlaze.do b/Libs/NanoBlaze_test/sim/nanoBlaze.do new file mode 100644 index 0000000..1044918 --- /dev/null +++ b/Libs/NanoBlaze_test/sim/nanoBlaze.do @@ -0,0 +1,74 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /nanoblaze_tb/reset +add wave -noupdate /nanoblaze_tb/clock +add wave -noupdate /nanoblaze_tb/en +add wave -noupdate -divider Program +add wave -noupdate -format Analog-Step -height 30 -max 100.0 -radix hexadecimal /nanoblaze_tb/i_dut/programcounter +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/programcounter +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/instruction +add wave -noupdate /nanoblaze_tb/i_dut/i_up/instrstring +add wave -noupdate -divider Controller +add wave -noupdate /nanoblaze_tb/i_dut/i_up/opcode +add wave -noupdate /nanoblaze_tb/i_dut/i_up/tworeginstr +add wave -noupdate /nanoblaze_tb/i_dut/i_up/instrdatasel +add wave -noupdate /nanoblaze_tb/i_dut/i_up/registerfilesel +add wave -noupdate /nanoblaze_tb/i_dut/i_up/portinsel +add wave -noupdate /nanoblaze_tb/i_dut/i_up/scratchpadsel +add wave -noupdate /nanoblaze_tb/i_dut/i_up/regwrite +add wave -noupdate /nanoblaze_tb/i_dut/i_up/scratchpadwrite +add wave -noupdate -divider ALU +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/instrdata +add wave -noupdate /nanoblaze_tb/i_dut/i_up/alucode +add wave -noupdate -radix unsigned /nanoblaze_tb/i_dut/i_up/addra +add wave -noupdate -radix unsigned /nanoblaze_tb/i_dut/i_up/addrb +add wave -noupdate /nanoblaze_tb/i_dut/i_up/cin +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/i_alu/opa +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/i_alu/opb +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/i_alu/aluout +add wave -noupdate /nanoblaze_tb/i_dut/i_up/cout +add wave -noupdate /nanoblaze_tb/i_dut/i_up/zero +add wave -noupdate -divider {Register file} +add wave -noupdate -radix hexadecimal -subitemconfig {/nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(0) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(1) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(2) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(3) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(4) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(5) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(6) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(7) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(8) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(9) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(10) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(11) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(12) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(13) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(14) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray(15) {-radix hexadecimal}} /nanoblaze_tb/i_dut/i_up/i_alu/i_regs/registerarray +add wave -noupdate -divider I/O +add wave -noupdate -radix hexadecimal -subitemconfig {/nanoblaze_tb/dataaddress(7) {-radix hexadecimal} /nanoblaze_tb/dataaddress(6) {-radix hexadecimal} /nanoblaze_tb/dataaddress(5) {-radix hexadecimal} /nanoblaze_tb/dataaddress(4) {-radix hexadecimal} /nanoblaze_tb/dataaddress(3) {-radix hexadecimal} /nanoblaze_tb/dataaddress(2) {-radix hexadecimal} /nanoblaze_tb/dataaddress(1) {-radix hexadecimal} /nanoblaze_tb/dataaddress(0) {-radix hexadecimal}} /nanoblaze_tb/dataaddress +add wave -noupdate /nanoblaze_tb/readstrobe +add wave -noupdate /nanoblaze_tb/writestrobe +add wave -noupdate -radix hexadecimal /nanoblaze_tb/datain +add wave -noupdate -radix hexadecimal /nanoblaze_tb/dataout +add wave -noupdate -divider Scratchpad +add wave -noupdate -radix hexadecimal -subitemconfig {/nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(0) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(1) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(2) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(3) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(4) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(5) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(6) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(7) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(8) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(9) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(10) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(11) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(12) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(13) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(14) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray(15) {-radix hexadecimal}} /nanoblaze_tb/i_dut/i_up/g_scratchpad/i_spad/memoryarray +add wave -noupdate -divider Branch +add wave -noupdate /nanoblaze_tb/i_dut/i_up/branchcond +add wave -noupdate /nanoblaze_tb/i_dut/i_up/incpc +add wave -noupdate /nanoblaze_tb/i_dut/i_up/loadinstraddress +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/instraddress +add wave -noupdate /nanoblaze_tb/i_dut/i_up/loadstoredpc +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/storedprogcounter +add wave -noupdate /nanoblaze_tb/i_dut/i_up/progcounter +add wave -noupdate -divider Stack +add wave -noupdate /nanoblaze_tb/i_dut/i_up/storepc +add wave -noupdate /nanoblaze_tb/i_dut/i_up/prevpc +add wave -noupdate /nanoblaze_tb/i_dut/i_up/progcounter +add wave -noupdate -radix hexadecimal -subitemconfig {/nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(0) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(1) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(2) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(3) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(4) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(5) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(6) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(7) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(8) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(9) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(10) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(11) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(12) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(13) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(14) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(15) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(16) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(17) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(18) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(19) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(20) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(21) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(22) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(23) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(24) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(25) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(26) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(27) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(28) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(29) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(30) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(31) {-radix hexadecimal} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray(32) {-radix hexadecimal}} /nanoblaze_tb/i_dut/i_up/i_br/progcounterarray +add wave -noupdate -radix hexadecimal /nanoblaze_tb/i_dut/i_up/storedprogcounter +add wave -noupdate -divider Interrupts +add wave -noupdate /nanoblaze_tb/int +add wave -noupdate /nanoblaze_tb/intack +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {923600 ps} 0} +configure wave -namecolwidth 260 +configure wave -valuecolwidth 73 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1000 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ps} {1050 ns} diff --git a/Libs/RS232/hdl/cmdRs232Mux_RTL.vhd b/Libs/RS232/hdl/cmdRs232Mux_RTL.vhd new file mode 100644 index 0000000..b29ab7b --- /dev/null +++ b/Libs/RS232/hdl/cmdRs232Mux_RTL.vhd @@ -0,0 +1,24 @@ +ARCHITECTURE RTL OF rs232Mux IS + + signal passThrough: std_ulogic; + +BEGIN + + passThrough <= not selOther; + + multiplexer: process(passThrough, txData, txFullF, TxWr, otherData, otherWr) + begin + if passThrough = '1' then + txDataF <= txData; + txWrF <= TxWr; + txFull <= txFullF; + otherFull <= '1'; + else + txDataF <= otherData; + txWrF <= otherWr; + otherFull <= txFullF; + txFull <= '1'; + end if; + end process multiplexer; + +END ARCHITECTURE RTL; diff --git a/Libs/RS232/hdl/serialPortReceiver_rtl.vhd b/Libs/RS232/hdl/serialPortReceiver_rtl.vhd new file mode 100644 index 0000000..2ea6a27 --- /dev/null +++ b/Libs/RS232/hdl/serialPortReceiver_rtl.vhd @@ -0,0 +1,151 @@ +--===========================================================================-- +-- Design units : CoCa.serialPortReceiver.rtl +-- +-- File name : serialPortReceiver_rtl.vhd +-- +-- Purpose : Decode data from UART into words +-- +-- Input : serial line data +-- +-- Output : +-- dataOut : word of data +-- dataValid : active when a new word of data is available +-- +-- +-- Limitations : +-- +-- +-- +-- Errors: : None known +-- +-- Library : Common +-- +-- Dependencies : None +-- +-- Author : +-- Haute école d'ingénierie (HEI/HES-SO) +-- Institut systèmes industriels (ISI) +-- Rue de l'industrie 23 +-- 1950 Sion +-- Switzerland (CH) +-- +-- Simulator : Mentor ModelSim V10.7c +------------------------------------------------ +-- Revision list +-- Version Author Date Changes +-- +-- V1.0 04.04.2022 - First version +--===========================================================================-- + +library Common; + use Common.CommonLib.all; + +architecture RTL of serialPortReceiver is + + signal dividerCounter: unsigned(requiredBitNb(baudRateDivide-1)-1 downto 0); + signal dividerCounterReset: std_uLogic; + signal rxDelayed: std_uLogic; + signal dividerCounterSynchronize: std_uLogic; + signal rxSample: std_uLogic; + signal rxShiftReg: std_ulogic_vector(dataBitNb-1 downto 0); + signal rxReceiving: std_uLogic; + signal rxDataValid: std_uLogic; + signal rxCounter: unsigned(requiredBitNb(dataBitNb)-1 downto 0); + +begin + + divide: process(reset, clock) + begin + if reset = '1' then + dividerCounter <= (others => '0'); + elsif rising_edge(clock) then + if dividerCounterSynchronize = '1' then + dividerCounter <= to_unsigned(baudRateDivide/2, dividerCounter'length); + elsif dividerCounterReset = '1' then + dividerCounter <= (others => '0'); + else + dividerCounter <= dividerCounter + 1; + end if; + end if; + end process divide; + + endOfCount: process(dividerCounter) + begin + if dividerCounter = baudRateDivide-1 then + dividerCounterReset <= '1'; + else + dividerCounterReset <= '0'; + end if; + end process endOfCount; + + delayRx: process(reset, clock) + begin + if reset = '1' then + rxDelayed <= '0'; + elsif rising_edge(clock) then + rxDelayed <= RxD; + end if; + end process delayRx; + + rxSynchronize: process(RxD, rxDelayed) + begin + if RxD /= rxDelayed then + dividerCounterSynchronize <= '1'; + else + dividerCounterSynchronize <= '0'; + end if; + end process rxSynchronize; + + rxSample <= dividerCounterReset and not dividerCounterSynchronize; + + shiftReg: process(reset, clock) + begin + if reset = '1' then + rxShiftReg <= (others => '0'); + elsif rising_edge(clock) then + if rxSample = '1' then + rxShiftReg(rxShiftReg'high-1 downto 0) <= rxShiftReg(rxShiftReg'high downto 1); + rxShiftReg(rxShiftReg'high) <= RxD; + end if; + end if; + end process shiftReg; + + detectReceive: process(reset, clock) + begin + if reset = '1' then + rxReceiving <= '0'; + rxDataValid <= '0'; + elsif rising_edge(clock) then + if rxSample = '1' then + if rxCounter = dataBitNb-1 then + rxDataValid <= '1'; + elsif RxD = '0' then + rxReceiving <= '1'; + end if; + elsif rxDataValid = '1' then + rxReceiving <= '0'; + rxDataValid <= '0'; + end if; + end if; + end process detectReceive; + + countRxBitNb: process(reset, clock) + begin + if reset = '1' then + rxCounter <= (others => '0'); + elsif rising_edge(clock) then + if rxSample = '1' then + if rxReceiving = '1' then + rxCounter <= rxCounter + 1; + else + rxCounter <= (others => '0'); + end if; + end if; + end if; + end process countRxBitNb; + + dataOut <= rxShiftReg; + dataValid <= rxDataValid; + +end RTL; + diff --git a/Libs/RS232/hdl/serialPortTransmitter_rtl.vhd b/Libs/RS232/hdl/serialPortTransmitter_rtl.vhd new file mode 100644 index 0000000..b85cd6f --- /dev/null +++ b/Libs/RS232/hdl/serialPortTransmitter_rtl.vhd @@ -0,0 +1,127 @@ +--===========================================================================-- +-- Design units : CoCa.serialPortTransmitter.rtl +-- +-- File name : serialPortTransmitter.vhd +-- +-- Purpose : Transmit a 8 bit data word over a serial line +-- add start and stop bits +-- +-- Parameters : dataBitNb : number of data bits +-- stopBitNb : number of stop bits +-- +-- +-- +-- Errors: : None known +-- +-- Library : Common +-- +-- Dependencies : None +-- +-- Author : +-- Haute ecole d'ingenierie (HEI/HES-SO) +-- Institut systemes industriels (ISI) +-- Rue de l'industrie 23 +-- 1950 Sion +-- Switzerland (CH) +-- +-- Simulator : Mentor ModelSim V10.7c +------------------------------------------------ +-- Revision list +-- Version Author Date Changes +-- +-- V1.0 04.04.2022 - First version +--===========================================================================-- + +library Common; + use Common.CommonLib.all; + +architecture RTL of serialPortTransmitter is + + signal dividerCounter: unsigned(requiredBitNb(baudRateDivide)-1 downto 0); + signal dividerCounterReset: std_uLogic; + signal txData: unsigned(dataBitNb-1 downto 0); + signal send1: std_uLogic; + signal txShiftEnable: std_uLogic; + signal txShiftReg: unsigned(dataBitNb+stopBitNb downto 0); + signal txSendingByte: std_uLogic; + signal txSendingByteAndStop: std_uLogic; + +begin + + divide: process(reset, clock) + begin + if reset = '1' then + dividerCounter <= (others => '0'); + elsif rising_edge(clock) then + if dividerCounterReset = '1' then + dividerCounter <= to_unsigned(1, dividerCounter'length); + else + dividerCounter <= dividerCounter + 1; + end if; + end if; + end process divide; + + endOfCount: process(dividerCounter, send1) + begin + if dividerCounter = baudRateDivide then + dividerCounterReset <= '1'; + elsif send1 = '1' then + dividerCounterReset <= '1'; + else + dividerCounterReset <= '0'; + end if; + end process endOfCount; + + txShiftEnable <= dividerCounterReset; + + storeData: process(reset, clock) + begin + if reset = '1' then + txData <= (others => '1'); + elsif rising_edge(clock) then + if send = '1' then + txData <= unsigned(dataIn); + end if; + end if; + end process storeData; + + delaySend: process(reset, clock) + begin + if reset = '1' then + send1 <= '0'; + elsif rising_edge(clock) then + send1 <= send; + end if; + end process delaySend; + + shiftReg: process(reset, clock) + begin + if reset = '1' then + txShiftReg <= (others => '1'); + elsif rising_edge(clock) then + if txShiftEnable = '1' then + if send1 = '1' then + txShiftReg <= (others => '1'); -- stop bits + txShiftReg(0) <= '0'; -- start bit + txShiftReg(txData'high+1 downto 1) <= txData; -- data + txShiftReg(txShiftReg'high) <= '0'; -- end flag + else + txShiftReg <= shift_right(txShiftReg, 1); + txShiftReg(txShiftReg'high) <= '1'; + end if; + end if; + end if; + end process shiftReg; + + txSendingByte <= '1' when + (txShiftReg(txShiftReg'high downto 1) /= (txShiftReg'high downto 1 => '1')) + else '0'; + + txSendingByteAndStop <= '1' when + txShiftReg /= (txShiftReg'high downto 0 => '1') + else '0'; + + TxD <= txShiftReg(0) when txSendingByte = '1' else '1'; + busy <= txSendingByteAndStop or send1 or send; + +end RTL; diff --git a/Libs/RS232/hds/.hdlsidedata/_cmdRs232Mux_RTL.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_cmdRs232Mux_RTL.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_cmdRs232Mux_RTL.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialPortReceiver_rtl.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_serialPortReceiver_rtl.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialPortReceiver_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialPortTransmitter_rtl.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_serialPortTransmitter_rtl.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialPortTransmitter_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialportfifo_entity.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_serialportfifo_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialportfifo_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialportfifo_struct.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_serialportfifo_struct.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialportfifo_struct.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhg._fpf b/Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialportreceiver_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhd._fpf b/Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhd._fpf new file mode 100755 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhg._fpf b/Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232/hds/.hdlsidedata/_serialporttransmitter_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232/hds/_rs232mux._epf b/Libs/RS232/hds/_rs232mux._epf new file mode 100644 index 0000000..798e692 --- /dev/null +++ b/Libs/RS232/hds/_rs232mux._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom cmdRs232Mux_RTL.vhd +DEFAULT_ARCHITECTURE atom RTL +TOP_MARKER atom 1 diff --git a/Libs/RS232/hds/_serialportfifo._epf b/Libs/RS232/hds/_serialportfifo._epf new file mode 100644 index 0000000..313265a --- /dev/null +++ b/Libs/RS232/hds/_serialportfifo._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom serial@port@f@i@f@o/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/RS232/hds/_serialportreceiver._epf b/Libs/RS232/hds/_serialportreceiver._epf new file mode 100755 index 0000000..38845ed --- /dev/null +++ b/Libs/RS232/hds/_serialportreceiver._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom serialPortReceiver_rtl.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/RS232/hds/_serialporttransmitter._epf b/Libs/RS232/hds/_serialporttransmitter._epf new file mode 100755 index 0000000..c6d4f61 --- /dev/null +++ b/Libs/RS232/hds/_serialporttransmitter._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom serialPortTransmitter_rtl.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/RS232/hds/rs232@mux/symbol.sb b/Libs/RS232/hds/rs232@mux/symbol.sb new file mode 100644 index 0000000..3259f40 --- /dev/null +++ b/Libs/RS232/hds/rs232@mux/symbol.sb @@ -0,0 +1,1920 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 10,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "selOther" +t "std_ulogic" +o 18 +suid 1,0 +) +) +uid 86,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(rs232DataBitNb-1 DOWNTO 0)" +o 8 +suid 2,0 +) +) +uid 88,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txDataF" +t "std_ulogic_vector" +b "(rs232DataBitNb-1 DOWNTO 0)" +o 14 +suid 3,0 +) +) +uid 90,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txFull" +t "std_ulogic" +o 15 +suid 4,0 +) +) +uid 92,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "txFullF" +t "std_ulogic" +o 9 +suid 5,0 +) +) +uid 94,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 6,0 +) +) +uid 96,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txWrF" +t "std_ulogic" +o 16 +suid 7,0 +) +) +uid 98,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "otherData" +t "std_ulogic_vector" +b "(rs232DataBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +uid 238,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "otherWr" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 240,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "otherFull" +t "std_ulogic" +o 10 +suid 10,0 +) +) +uid 316,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 117,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 118,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 119,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 87,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 89,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 91,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 93,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 95,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 97,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 99,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 239,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 241,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 317,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 122,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 123,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 124,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 125,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 126,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 127,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 128,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 101,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 131,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "rs232DataBitNb" +type "positive" +value "8" +) +uid 180,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*60 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *61 (MRCItem +litem &47 +pos 1 +dimension 20 +) +uid 145,0 +optionalChildren [ +*62 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 146,0 +) +*63 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 147,0 +) +*64 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*65 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 181,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*66 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 150,0 +) +*67 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 151,0 +) +*68 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 152,0 +) +*69 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 153,0 +) +*70 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 154,0 +) +*71 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 155,0 +) +*72 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 156,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 130,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/rs232@mux/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/rs232@mux/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/rs232@mux" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/rs232Mux" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "rs232Mux" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "rs232Mux" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/rs232@mux/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/rs232Mux/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\Board\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:49" +) +(vvPair +variable "unit" +value "rs232Mux" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 100,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,24625,41000,25375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +) +xt "42000,24500,45300,25500" +st "selOther" +blo "42000,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "courier,8,0" +) +xt "0,9600,16500,10500" +st "selOther : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selOther" +t "std_ulogic" +o 18 +suid 1,0 +) +) +) +*75 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,8625,41000,9375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +) +xt "42000,8500,44500,9500" +st "txData" +blo "42000,9300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "courier,8,0" +) +xt "0,10500,33500,11400" +st "txData : IN std_ulogic_vector (rs232DataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(rs232DataBitNb-1 DOWNTO 0)" +o 8 +suid 2,0 +) +) +) +*76 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57000,8625,57750,9375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +) +xt "53000,8500,56000,9500" +st "txDataF" +ju 2 +blo "56000,9300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "courier,8,0" +) +xt "0,14100,33500,15000" +st "txDataF : OUT std_ulogic_vector (rs232DataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txDataF" +t "std_ulogic_vector" +b "(rs232DataBitNb-1 DOWNTO 0)" +o 14 +suid 3,0 +) +) +) +*77 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,10625,41000,11375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +) +xt "42000,10500,44200,11500" +st "txFull" +blo "42000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "courier,8,0" +) +xt "0,15000,16500,15900" +st "txFull : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txFull" +t "std_ulogic" +o 15 +suid 4,0 +) +) +) +*78 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57000,10625,57750,11375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +) +xt "53300,10500,56000,11500" +st "txFullF" +ju 2 +blo "56000,11300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "courier,8,0" +) +xt "0,11400,16500,12300" +st "txFullF : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "txFullF" +t "std_ulogic" +o 9 +suid 5,0 +) +) +) +*79 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,12625,41000,13375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +) +xt "42000,12500,43900,13500" +st "txWr" +blo "42000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "courier,8,0" +) +xt "0,12300,16500,13200" +st "txWr : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 6,0 +) +) +) +*80 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57000,12625,57750,13375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "53600,12500,56000,13500" +st "txWrF" +ju 2 +blo "56000,13300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "courier,8,0" +) +xt "0,15900,15500,16800" +st "txWrF : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "txWrF" +t "std_ulogic" +o 16 +suid 7,0 +) +) +) +*81 (CptPort +uid 228,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 229,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,16625,41000,17375" +) +tg (CPTG +uid 230,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 231,0 +va (VaSet +) +xt "42000,16500,45700,17500" +st "otherData" +blo "42000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 232,0 +va (VaSet +font "courier,8,0" +) +xt "0,7800,33500,8700" +st "otherData : IN std_ulogic_vector (rs232DataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "otherData" +t "std_ulogic_vector" +b "(rs232DataBitNb-1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +) +*82 (CptPort +uid 233,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 234,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,20625,41000,21375" +) +tg (CPTG +uid 235,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 236,0 +va (VaSet +) +xt "42000,20500,45100,21500" +st "otherWr" +blo "42000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 237,0 +va (VaSet +font "courier,8,0" +) +xt "0,8700,16500,9600" +st "otherWr : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "otherWr" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*83 (CptPort +uid 311,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 312,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40250,18625,41000,19375" +) +tg (CPTG +uid 313,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 314,0 +va (VaSet +) +xt "42000,18500,45400,19500" +st "otherFull" +blo "42000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 315,0 +va (VaSet +font "courier,8,0" +) +xt "0,13200,16500,14100" +st "otherFull : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "otherFull" +t "std_ulogic" +o 10 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "41000,5000,57000,29000" +) +oxt "15000,6000,31000,25000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "40900,29500,43400,30400" +st "RS232" +blo "40900,30200" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "40900,30400,44900,31300" +st "rs232Mux" +blo "40900,31100" +) +) +gi *84 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "41000,32600,55000,35300" +st "Generic Declarations + +rs232DataBitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "rs232DataBitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*85 (Grouping +uid 16,0 +optionalChildren [ +*86 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,48600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,47400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *96 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*97 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*98 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "70,52,1367,923" +viewArea "-3100,-1100,72360,51890" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *99 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *100 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,5800,3400,6800" +st "Declarations" +blo "-2000,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,6800,700,7800" +st "Ports:" +blo "-2000,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,16800,500,17700" +st "User:" +blo "-2000,17500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,5800,3800,6800" +st "Internal User:" +blo "-2000,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,17700,0,17700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,5800,-2000,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 340,0 +activeModelName "Symbol" +) diff --git a/Libs/RS232/hds/serial@port@f@i@f@o/struct.bd b/Libs/RS232/hds/serial@port@f@i@f@o/struct.bd new file mode 100644 index 0000000..fae7621 --- /dev/null +++ b/Libs/RS232/hds/serial@port@f@i@f@o/struct.bd @@ -0,0 +1,5465 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +itemName "ALL" +) +] +instances [ +(Instance +name "I_rx" +duLibraryName "RS232" +duName "serialPortReceiver" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "baudRateDivide" +) +] +mwi 0 +uid 1663,0 +) +(Instance +name "I_tx" +duLibraryName "RS232" +duName "serialPortTransmitter" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "baudRateDivide" +) +] +mwi 0 +uid 1696,0 +) +(Instance +name "I_rxFifo" +duLibraryName "memory" +duName "FIFO" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "rxFifoDepth" +) +] +mwi 0 +uid 1778,0 +) +(Instance +name "I_txFifo" +duLibraryName "memory" +duName "FIFO" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "txFifoDepth" +) +] +mwi 0 +uid 1819,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds\\serial@port@f@i@f@o\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds\\serial@port@f@i@f@o\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds\\serial@port@f@i@f@o" +) +(vvPair +variable "d_logical" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds\\serialPortFIFO" +) +(vvPair +variable "date" +value "04.04.2023" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "serialPortFIFO" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "13:25:55" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libraries/RS232/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "serialPortFIFO" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds\\serial@port@f@i@f@o\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\did-inverter\\Libs\\RS232\\hds\\serialPortFIFO\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:25:55" +) +(vvPair +variable "unit" +value "serialPortFIFO" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 41,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,73000,91000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,73500,74200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "91000,69000,95000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "91200,69500,91200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,71000,91000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,71500,74200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,71000,74000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,71500,70200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "91000,70000,111000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "91200,70200,105300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "95000,69000,111000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "95200,69500,95200,69500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,69000,91000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "75350,69400,85650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,72000,74000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,72500,70200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,73000,74000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "70200,73500,70200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,72000,91000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,72500,74200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "70000,69000,111000,74000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 53,0 +shape (CompositeShape +uid 54,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 55,0 +sl 0 +ro 270 +xt "15000,28625,16500,29375" +) +(Line +uid 56,0 +sl 0 +ro 270 +xt "16500,29000,17000,29000" +pts [ +"16500,29000" +"17000,29000" +] +) +] +) +tg (WTG +uid 57,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 58,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "10200,28300,14000,29700" +st "clock" +ju 2 +blo "14000,29500" +tm "WireNameMgr" +) +) +) +*13 (Net +uid 65,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +declText (MLText +uid 66,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,8700,12300,9700" +st "clock : std_ulogic" +) +) +*14 (PortIoIn +uid 95,0 +shape (CompositeShape +uid 96,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 97,0 +sl 0 +ro 270 +xt "15000,30625,16500,31375" +) +(Line +uid 98,0 +sl 0 +ro 270 +xt "16500,31000,17000,31000" +pts [ +"16500,31000" +"17000,31000" +] +) +] +) +tg (WTG +uid 99,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 100,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "9900,30300,14000,31700" +st "reset" +ju 2 +blo "14000,31500" +tm "WireNameMgr" +) +) +) +*15 (Net +uid 107,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 108,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,9500,12300,10500" +st "reset : std_ulogic" +) +) +*16 (PortIoIn +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "15000,24625,16500,25375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "16500,25000,17000,25000" +pts [ +"16500,25000" +"17000,25000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "10800,24300,14000,25700" +st "RxD" +ju 2 +blo "14000,25500" +tm "WireNameMgr" +) +) +) +*17 (Net +uid 121,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 5,0 +) +declText (MLText +uid 122,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,7100,12600,8100" +st "RxD : std_ulogic" +) +) +*18 (PortIoOut +uid 137,0 +shape (CompositeShape +uid 138,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 139,0 +sl 0 +ro 90 +xt "15000,46625,16500,47375" +) +(Line +uid 140,0 +sl 0 +ro 90 +xt "16500,47000,17000,47000" +pts [ +"17000,47000" +"16500,47000" +] +) +] +) +tg (WTG +uid 141,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 142,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "10900,46300,14000,47700" +st "TxD" +ju 2 +blo "14000,47500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 149,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 7,0 +) +declText (MLText +uid 150,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,7900,12500,8900" +st "TxD : std_ulogic" +) +) +*20 (Net +uid 670,0 +decl (Decl +n "txFifoEmpty" +t "std_ulogic" +o 14 +suid 16,0 +) +declText (MLText +uid 671,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18500,16600,19500" +st "SIGNAL txFifoEmpty : std_ulogic" +) +) +*21 (Net +uid 763,0 +decl (Decl +n "txBusy" +t "std_ulogic" +o 16 +suid 18,0 +) +declText (MLText +uid 764,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,20100,15900,21100" +st "SIGNAL txBusy : std_ulogic" +) +) +*22 (Net +uid 773,0 +decl (Decl +n "txSend" +t "std_ulogic" +o 11 +suid 19,0 +) +declText (MLText +uid 774,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16100,16000,17100" +st "SIGNAL txSend : std_ulogic" +) +) +*23 (PortIoOut +uid 1370,0 +shape (CompositeShape +uid 1371,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1372,0 +sl 0 +ro 270 +xt "77500,28625,79000,29375" +) +(Line +uid 1373,0 +sl 0 +ro 270 +xt "77000,29000,77500,29000" +pts [ +"77000,29000" +"77500,29000" +] +) +] +) +tg (WTG +uid 1374,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1375,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,28500,85900,29900" +st "rxEmpty" +blo "80000,29700" +tm "WireNameMgr" +) +) +) +*24 (Net +uid 1382,0 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 5 +suid 20,0 +) +declText (MLText +uid 1383,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,10300,13100,11300" +st "rxEmpty : std_ulogic" +) +) +*25 (PortIoIn +uid 1384,0 +shape (CompositeShape +uid 1385,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1386,0 +sl 0 +ro 90 +xt "77500,26625,79000,27375" +) +(Line +uid 1387,0 +sl 0 +ro 90 +xt "77000,27000,77500,27000" +pts [ +"77500,27000" +"77000,27000" +] +) +] +) +tg (WTG +uid 1388,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1389,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,26300,83600,27700" +st "rxRd" +blo "80000,27500" +tm "WireNameMgr" +) +) +) +*26 (Net +uid 1396,0 +decl (Decl +n "rxRd" +t "std_ulogic" +o 6 +suid 21,0 +) +declText (MLText +uid 1397,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11100,12500,12100" +st "rxRd : std_ulogic" +) +) +*27 (Net +uid 1398,0 +decl (Decl +n "rxWord" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 22,0 +) +declText (MLText +uid 1399,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16900,30000,17900" +st "SIGNAL rxWord : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*28 (Net +uid 1400,0 +decl (Decl +n "txWord" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 15 +suid 23,0 +) +declText (MLText +uid 1401,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,19300,30000,20300" +st "SIGNAL txWord : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*29 (Net +uid 1402,0 +decl (Decl +n "rxWordValid" +t "std_ulogic" +o 13 +suid 24,0 +) +declText (MLText +uid 1403,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17700,16500,18700" +st "SIGNAL rxWordValid : std_ulogic" +) +) +*30 (HdlText +uid 1410,0 +optionalChildren [ +*31 (EmbeddedText +uid 1415,0 +commentText (CommentText +uid 1416,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1417,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "53000,52000,69000,66000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1418,0 +va (VaSet +) +xt "53200,52200,68500,65400" +st " +process(reset, clock) + begin + if reset = '1' then + txSend <= '0'; + elsif rising_edge(clock) then + if ( (txFifoEmpty = '0') and (txBusy = '0') ) then + txSend <= '1'; + else + txSend <= '0'; + end if; + end if; + end process; + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 14000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1411,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "53000,51000,69000,67000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1412,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 1413,0 +va (VaSet +) +xt "53400,67000,56000,68200" +st "eb1" +blo "53400,68000" +tm "HdlTextNameMgr" +) +*33 (Text +uid 1414,0 +va (VaSet +) +xt "53400,68000,54800,69200" +st "1" +blo "53400,69000" +tm "HdlTextNumberMgr" +) +] +) +) +*34 (PortIoOut +uid 1431,0 +shape (CompositeShape +uid 1432,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1433,0 +sl 0 +ro 270 +xt "105500,64625,107000,65375" +) +(Line +uid 1434,0 +sl 0 +ro 270 +xt "105000,65000,105500,65000" +pts [ +"105000,65000" +"105500,65000" +] +) +] +) +tg (WTG +uid 1435,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1436,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "108000,64300,112100,65700" +st "txFull" +blo "108000,65500" +tm "WireNameMgr" +) +) +) +*35 (Net +uid 1443,0 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 25,0 +) +declText (MLText +uid 1444,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13500,12200,14500" +st "txFull : std_ulogic" +) +) +*36 (PortIoIn +uid 1445,0 +shape (CompositeShape +uid 1446,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1447,0 +sl 0 +ro 90 +xt "105500,48625,107000,49375" +) +(Line +uid 1448,0 +sl 0 +ro 90 +xt "105000,49000,105500,49000" +pts [ +"105500,49000" +"105000,49000" +] +) +] +) +tg (WTG +uid 1449,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1450,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "108000,48300,111800,49700" +st "txWr" +blo "108000,49500" +tm "WireNameMgr" +) +) +) +*37 (Net +uid 1457,0 +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 26,0 +) +declText (MLText +uid 1458,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14300,12500,15300" +st "txWr : std_ulogic" +) +) +*38 (PortIoOut +uid 1459,0 +shape (CompositeShape +uid 1460,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1461,0 +sl 0 +ro 270 +xt "77500,24625,79000,25375" +) +(Line +uid 1462,0 +sl 0 +ro 270 +xt "77000,25000,77500,25000" +pts [ +"77000,25000" +"77500,25000" +] +) +] +) +tg (WTG +uid 1463,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1464,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "80000,24300,103800,25700" +st "rxData : (dataBitNb-1 DOWNTO 0)" +blo "80000,25500" +tm "WireNameMgr" +) +) +) +*39 (Net +uid 1465,0 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 27,0 +) +declText (MLText +uid 1466,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11900,26600,12900" +st "rxData : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*40 (Net +uid 1469,0 +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 28,0 +) +declText (MLText +uid 1470,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12700,26600,13700" +st "txData : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*41 (PortIoIn +uid 1471,0 +shape (CompositeShape +uid 1472,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1473,0 +sl 0 +ro 90 +xt "105500,46625,107000,47375" +) +(Line +uid 1474,0 +sl 0 +ro 90 +xt "105000,47000,105500,47000" +pts [ +"105500,47000" +"105000,47000" +] +) +] +) +tg (WTG +uid 1475,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1476,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "108000,46500,131800,47900" +st "txData : (dataBitNb-1 DOWNTO 0)" +blo "108000,47700" +tm "WireNameMgr" +) +) +) +*42 (SaComponent +uid 1663,0 +optionalChildren [ +*43 (CptPort +uid 1643,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1644,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,24625,25000,25375" +) +tg (CPTG +uid 1645,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1646,0 +va (VaSet +) +xt "26000,24400,28800,25600" +st "RxD" +blo "26000,25400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*44 (CptPort +uid 1647,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1648,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,28625,25000,29375" +) +tg (CPTG +uid 1649,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1650,0 +va (VaSet +) +xt "26000,28400,29400,29600" +st "clock" +blo "26000,29400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*45 (CptPort +uid 1651,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1652,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,30625,25000,31375" +) +tg (CPTG +uid 1653,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1654,0 +va (VaSet +) +xt "26000,30400,29300,31600" +st "reset" +blo "26000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*46 (CptPort +uid 1655,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1656,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,24625,41750,25375" +) +tg (CPTG +uid 1657,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1658,0 +va (VaSet +) +xt "35201,24400,40001,25600" +st "dataOut" +ju 2 +blo "40001,25400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*47 (CptPort +uid 1659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1660,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,26625,41750,27375" +) +tg (CPTG +uid 1661,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1662,0 +va (VaSet +) +xt "34500,26400,40000,27600" +st "dataValid" +ju 2 +blo "40000,27400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 1664,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "25000,21000,41000,33000" +) +oxt "34000,16000,50000,28000" +ttg (MlTextGroup +uid 1665,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 1666,0 +va (VaSet +font "Verdana,9,1" +) +xt "25600,32800,29300,34000" +st "RS232" +blo "25600,33800" +tm "BdLibraryNameMgr" +) +*49 (Text +uid 1667,0 +va (VaSet +font "Verdana,9,1" +) +xt "25600,34000,36000,35200" +st "serialPortReceiver" +blo "25600,35000" +tm "CptNameMgr" +) +*50 (Text +uid 1668,0 +va (VaSet +font "Verdana,9,1" +) +xt "25600,35200,28300,36400" +st "I_rx" +blo "25600,36200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1669,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1670,0 +text (MLText +uid 1671,0 +va (VaSet +font "Verdana,8,0" +) +xt "25000,36400,47400,38400" +st "dataBitNb = dataBitNb ( positive ) +baudRateDivide = baudRateDivide ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "baudRateDivide" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*51 (SaComponent +uid 1696,0 +optionalChildren [ +*52 (CptPort +uid 1672,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1673,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24250,46625,25000,47375" +) +tg (CPTG +uid 1674,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1675,0 +va (VaSet +) +xt "26000,46400,28800,47600" +st "TxD" +blo "26000,47400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*53 (CptPort +uid 1676,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1677,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,54625,41750,55375" +) +tg (CPTG +uid 1678,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1679,0 +va (VaSet +) +xt "36600,54400,40000,55600" +st "clock" +ju 2 +blo "40000,55400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*54 (CptPort +uid 1680,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1681,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,56625,41750,57375" +) +tg (CPTG +uid 1682,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1683,0 +va (VaSet +) +xt "36700,56400,40000,57600" +st "reset" +ju 2 +blo "40000,57400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*55 (CptPort +uid 1684,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1685,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,46625,41750,47375" +) +tg (CPTG +uid 1686,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1687,0 +va (VaSet +) +xt "36001,46400,40001,47600" +st "dataIn" +ju 2 +blo "40001,47400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*56 (CptPort +uid 1688,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1689,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,48625,41750,49375" +) +tg (CPTG +uid 1690,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1691,0 +va (VaSet +) +xt "36900,48400,40000,49600" +st "send" +ju 2 +blo "40000,49400" +) +) +thePort (LogicalPort +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*57 (CptPort +uid 1692,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1693,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41000,50625,41750,51375" +) +tg (CPTG +uid 1694,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1695,0 +va (VaSet +) +xt "36900,50400,40000,51600" +st "busy" +ju 2 +blo "40000,51400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "busy" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 1697,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "25000,43000,41000,59000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 1698,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +uid 1699,0 +va (VaSet +font "Verdana,9,1" +) +xt "25600,58800,29300,60000" +st "RS232" +blo "25600,59800" +tm "BdLibraryNameMgr" +) +*59 (Text +uid 1700,0 +va (VaSet +font "Verdana,9,1" +) +xt "25600,60000,38200,61200" +st "serialPortTransmitter" +blo "25600,61000" +tm "CptNameMgr" +) +*60 (Text +uid 1701,0 +va (VaSet +font "Verdana,9,1" +) +xt "25600,61200,28400,62400" +st "I_tx" +blo "25600,62200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1702,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1703,0 +text (MLText +uid 1704,0 +va (VaSet +font "Verdana,8,0" +) +xt "25000,62400,47400,64400" +st "dataBitNb = dataBitNb ( positive ) +baudRateDivide = baudRateDivide ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "baudRateDivide" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*61 (SaComponent +uid 1778,0 +optionalChildren [ +*62 (CptPort +uid 1746,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1747,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,26625,53000,27375" +) +tg (CPTG +uid 1748,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1749,0 +va (VaSet +) +xt "54000,26400,57100,27600" +st "write" +blo "54000,27400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*63 (CptPort +uid 1750,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1751,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,30625,53000,31375" +) +tg (CPTG +uid 1752,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1753,0 +va (VaSet +) +xt "54000,30400,57400,31600" +st "clock" +blo "54000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*64 (CptPort +uid 1754,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1755,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,32625,53000,33375" +) +tg (CPTG +uid 1756,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1757,0 +va (VaSet +) +xt "54000,32400,57300,33600" +st "reset" +blo "54000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*65 (CptPort +uid 1758,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1759,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,24625,69750,25375" +) +tg (CPTG +uid 1760,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1761,0 +va (VaSet +) +xt "63201,24400,68001,25600" +st "dataOut" +ju 2 +blo "68001,25400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*66 (CptPort +uid 1762,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1763,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,26625,69750,27375" +) +tg (CPTG +uid 1764,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1765,0 +va (VaSet +) +xt "65100,26400,68000,27600" +st "read" +ju 2 +blo "68000,27400" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*67 (CptPort +uid 1766,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1767,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,24625,53000,25375" +) +tg (CPTG +uid 1768,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1769,0 +va (VaSet +) +xt "53999,24400,57999,25600" +st "dataIn" +blo "53999,25400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*68 (CptPort +uid 1770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1771,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,28625,69750,29375" +) +tg (CPTG +uid 1772,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1773,0 +va (VaSet +) +xt "64200,28400,68000,29600" +st "empty" +ju 2 +blo "68000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*69 (CptPort +uid 1774,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1775,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "69000,30625,69750,31375" +) +tg (CPTG +uid 1776,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1777,0 +va (VaSet +) +xt "65800,30400,68000,31600" +st "full" +ju 2 +blo "68000,31400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1779,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "53000,21000,69000,35000" +) +oxt "34000,14000,50000,28000" +ttg (MlTextGroup +uid 1780,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 1781,0 +va (VaSet +font "Verdana,9,1" +) +xt "53600,34800,58200,36000" +st "memory" +blo "53600,35800" +tm "BdLibraryNameMgr" +) +*71 (Text +uid 1782,0 +va (VaSet +font "Verdana,9,1" +) +xt "53600,36000,56700,37200" +st "FIFO" +blo "53600,37000" +tm "CptNameMgr" +) +*72 (Text +uid 1783,0 +va (VaSet +font "Verdana,9,1" +) +xt "53600,37200,58300,38400" +st "I_rxFifo" +blo "53600,38200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1784,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1785,0 +text (MLText +uid 1786,0 +va (VaSet +font "Verdana,8,0" +) +xt "53000,38400,71000,40400" +st "dataBitNb = dataBitNb ( positive ) +depth = rxFifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "rxFifoDepth" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*73 (SaComponent +uid 1819,0 +optionalChildren [ +*74 (CptPort +uid 1787,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1788,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97000,48625,97750,49375" +) +tg (CPTG +uid 1789,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1790,0 +va (VaSet +) +xt "92900,48400,96000,49600" +st "write" +ju 2 +blo "96000,49400" +) +) +thePort (LogicalPort +decl (Decl +n "write" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*75 (CptPort +uid 1791,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1792,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97000,52625,97750,53375" +) +tg (CPTG +uid 1793,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1794,0 +va (VaSet +) +xt "92600,52400,96000,53600" +st "clock" +ju 2 +blo "96000,53400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*76 (CptPort +uid 1795,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1796,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97000,54625,97750,55375" +) +tg (CPTG +uid 1797,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1798,0 +va (VaSet +) +xt "92700,54400,96000,55600" +st "reset" +ju 2 +blo "96000,55400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*77 (CptPort +uid 1799,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1800,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,46625,81000,47375" +) +tg (CPTG +uid 1801,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1802,0 +va (VaSet +) +xt "81999,46400,86799,47600" +st "dataOut" +blo "81999,47400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*78 (CptPort +uid 1803,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1804,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,48625,81000,49375" +) +tg (CPTG +uid 1805,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1806,0 +va (VaSet +) +xt "82000,48400,84900,49600" +st "read" +blo "82000,49400" +) +) +thePort (LogicalPort +decl (Decl +n "read" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*79 (CptPort +uid 1807,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1808,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "97000,46625,97750,47375" +) +tg (CPTG +uid 1809,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1810,0 +va (VaSet +) +xt "92001,46400,96001,47600" +st "dataIn" +ju 2 +blo "96001,47400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +) +*80 (CptPort +uid 1811,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1812,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,50625,81000,51375" +) +tg (CPTG +uid 1813,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1814,0 +va (VaSet +) +xt "82000,50400,85800,51600" +st "empty" +blo "82000,51400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "empty" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*81 (CptPort +uid 1815,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1816,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,52625,81000,53375" +) +tg (CPTG +uid 1817,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1818,0 +va (VaSet +) +xt "82000,52400,84200,53600" +st "full" +blo "82000,53400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "full" +t "std_ulogic" +o 8 +suid 8,0 +) +) +) +] +shape (Rectangle +uid 1820,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "81000,43000,97000,57000" +) +oxt "34000,14000,50000,28000" +ttg (MlTextGroup +uid 1821,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 1822,0 +va (VaSet +font "Verdana,9,1" +) +xt "81600,56800,86200,58000" +st "memory" +blo "81600,57800" +tm "BdLibraryNameMgr" +) +*83 (Text +uid 1823,0 +va (VaSet +font "Verdana,9,1" +) +xt "81600,58000,84700,59200" +st "FIFO" +blo "81600,59000" +tm "CptNameMgr" +) +*84 (Text +uid 1824,0 +va (VaSet +font "Verdana,9,1" +) +xt "81600,59200,86400,60400" +st "I_txFifo" +blo "81600,60200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1825,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1826,0 +text (MLText +uid 1827,0 +va (VaSet +font "Verdana,8,0" +) +xt "81000,60400,99000,62400" +st "dataBitNb = dataBitNb ( positive ) +depth = txFifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "depth" +type "positive" +value "txFifoDepth" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*85 (Wire +uid 59,0 +shape (OrthoPolyLine +uid 60,0 +va (VaSet +vasetType 3 +) +xt "17000,29000,24250,29000" +pts [ +"17000,29000" +"24250,29000" +] +) +start &12 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 63,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,27600,22800,29000" +st "clock" +blo "19000,28800" +tm "WireNameMgr" +) +) +on &13 +) +*86 (Wire +uid 101,0 +shape (OrthoPolyLine +uid 102,0 +va (VaSet +vasetType 3 +) +xt "17000,31000,24250,31000" +pts [ +"17000,31000" +"24250,31000" +] +) +start &14 +end &45 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 105,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 106,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,29600,23100,31000" +st "reset" +blo "19000,30800" +tm "WireNameMgr" +) +) +on &15 +) +*87 (Wire +uid 115,0 +shape (OrthoPolyLine +uid 116,0 +va (VaSet +vasetType 3 +) +xt "17000,25000,24250,25000" +pts [ +"17000,25000" +"24250,25000" +] +) +start &16 +end &43 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 119,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,23600,22200,25000" +st "RxD" +blo "19000,24800" +tm "WireNameMgr" +) +) +on &17 +) +*88 (Wire +uid 143,0 +shape (OrthoPolyLine +uid 144,0 +va (VaSet +vasetType 3 +) +xt "17000,47000,24250,47000" +pts [ +"24250,47000" +"17000,47000" +] +) +start &52 +end &18 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 147,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 148,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,44600,23100,46000" +st "TxD" +blo "20000,45800" +tm "WireNameMgr" +) +) +on &19 +) +*89 (Wire +uid 230,0 +shape (OrthoPolyLine +uid 231,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,25000,52250,25000" +pts [ +"41750,25000" +"52250,25000" +] +) +start &46 +end &67 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 234,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 235,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,23600,48400,25000" +st "rxWord" +blo "43000,24800" +tm "WireNameMgr" +) +) +on &27 +) +*90 (Wire +uid 240,0 +shape (OrthoPolyLine +uid 241,0 +va (VaSet +vasetType 3 +) +xt "41750,27000,52250,27000" +pts [ +"41750,27000" +"52250,27000" +] +) +start &47 +end &62 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 244,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 245,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,25600,52200,27000" +st "rxWordValid" +blo "43000,26800" +tm "WireNameMgr" +) +) +on &29 +) +*91 (Wire +uid 374,0 +shape (OrthoPolyLine +uid 375,0 +va (VaSet +vasetType 3 +) +xt "49000,33000,52250,33000" +pts [ +"49000,33000" +"52250,33000" +] +) +end &64 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 381,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,31600,52100,33000" +st "reset" +blo "48000,32800" +tm "WireNameMgr" +) +) +on &15 +) +*92 (Wire +uid 382,0 +shape (OrthoPolyLine +uid 383,0 +va (VaSet +vasetType 3 +) +xt "49000,31000,52250,31000" +pts [ +"49000,31000" +"52250,31000" +] +) +end &63 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 388,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 389,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,29600,51800,31000" +st "clock" +blo "48000,30800" +tm "WireNameMgr" +) +) +on &13 +) +*93 (Wire +uid 444,0 +shape (OrthoPolyLine +uid 445,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69750,25000,77000,25000" +pts [ +"69750,25000" +"77000,25000" +] +) +start &65 +end &38 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 448,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 449,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,23600,77000,25000" +st "rxData" +blo "72000,24800" +tm "WireNameMgr" +) +) +on &39 +) +*94 (Wire +uid 601,0 +shape (OrthoPolyLine +uid 602,0 +va (VaSet +vasetType 3 +) +xt "97750,55000,101000,55000" +pts [ +"101000,55000" +"97750,55000" +] +) +end &76 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 607,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 608,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,53600,103100,55000" +st "reset" +blo "99000,54800" +tm "WireNameMgr" +) +) +on &15 +) +*95 (Wire +uid 609,0 +shape (OrthoPolyLine +uid 610,0 +va (VaSet +vasetType 3 +) +xt "97750,53000,101000,53000" +pts [ +"101000,53000" +"97750,53000" +] +) +end &75 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 615,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 616,0 +va (VaSet +font "Verdana,12,0" +) +xt "99000,51600,102800,53000" +st "clock" +blo "99000,52800" +tm "WireNameMgr" +) +) +on &13 +) +*96 (Wire +uid 654,0 +shape (OrthoPolyLine +uid 655,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "97750,47000,105000,47000" +pts [ +"97750,47000" +"105000,47000" +] +) +start &79 +end &41 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 658,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 659,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,45600,106000,47000" +st "txData" +blo "101000,46800" +tm "WireNameMgr" +) +) +on &40 +) +*97 (Wire +uid 664,0 +shape (OrthoPolyLine +uid 665,0 +va (VaSet +vasetType 3 +) +xt "69000,51000,80250,55000" +pts [ +"80250,51000" +"73000,51000" +"73000,55000" +"69000,55000" +] +) +start &80 +end &30 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 668,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 669,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,49600,79900,51000" +st "txFifoEmpty" +blo "71000,50800" +tm "WireNameMgr" +) +) +on &20 +) +*98 (Wire +uid 674,0 +shape (OrthoPolyLine +uid 675,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "41750,47000,80250,47000" +pts [ +"80250,47000" +"41750,47000" +] +) +start &77 +end &55 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 678,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 679,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,45600,79400,47000" +st "txWord" +blo "74000,46800" +tm "WireNameMgr" +) +) +on &28 +) +*99 (Wire +uid 739,0 +shape (OrthoPolyLine +uid 740,0 +va (VaSet +vasetType 3 +) +xt "41750,57000,45000,57000" +pts [ +"45000,57000" +"41750,57000" +] +) +end &54 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 745,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 746,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,55600,47100,57000" +st "reset" +blo "43000,56800" +tm "WireNameMgr" +) +) +on &15 +) +*100 (Wire +uid 747,0 +shape (OrthoPolyLine +uid 748,0 +va (VaSet +vasetType 3 +) +xt "41750,55000,45000,55000" +pts [ +"45000,55000" +"41750,55000" +] +) +end &53 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 753,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 754,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,53600,46800,55000" +st "clock" +blo "43000,54800" +tm "WireNameMgr" +) +) +on &13 +) +*101 (Wire +uid 757,0 +shape (OrthoPolyLine +uid 758,0 +va (VaSet +vasetType 3 +) +xt "41750,51000,53000,57000" +pts [ +"41750,51000" +"49000,51000" +"49000,57000" +"53000,57000" +] +) +start &57 +end &30 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 761,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 762,0 +va (VaSet +font "Verdana,12,0" +) +xt "43750,49600,48750,51000" +st "txBusy" +blo "43750,50800" +tm "WireNameMgr" +) +) +on &21 +) +*102 (Wire +uid 765,0 +optionalChildren [ +*103 (BdJunction +uid 1425,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1426,0 +va (VaSet +vasetType 1 +) +xt "50600,48600,51400,49400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 766,0 +va (VaSet +vasetType 3 +) +xt "41750,49000,80250,49000" +pts [ +"80250,49000" +"41750,49000" +] +) +start &78 +end &56 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 771,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 772,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,47600,48200,49000" +st "txSend" +blo "43000,48800" +tm "WireNameMgr" +) +) +on &22 +) +*104 (Wire +uid 1376,0 +shape (OrthoPolyLine +uid 1377,0 +va (VaSet +vasetType 3 +) +xt "69750,29000,77000,29000" +pts [ +"69750,29000" +"77000,29000" +] +) +start &68 +end &23 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1381,0 +va (VaSet +font "Verdana,12,0" +) +xt "71000,27600,76900,29000" +st "rxEmpty" +blo "71000,28800" +tm "WireNameMgr" +) +) +on &24 +) +*105 (Wire +uid 1390,0 +shape (OrthoPolyLine +uid 1391,0 +va (VaSet +vasetType 3 +) +xt "69750,27000,77000,27000" +pts [ +"77000,27000" +"69750,27000" +] +) +start &25 +end &66 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1394,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1395,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,25600,76600,27000" +st "rxRd" +blo "73000,26800" +tm "WireNameMgr" +) +) +on &26 +) +*106 (Wire +uid 1419,0 +shape (OrthoPolyLine +uid 1420,0 +va (VaSet +vasetType 3 +) +xt "51000,49000,53000,55000" +pts [ +"51000,49000" +"51000,55000" +"53000,55000" +] +) +start &103 +end &30 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1423,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1424,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "47000,50600,52200,52000" +st "txSend" +blo "47000,51800" +tm "WireNameMgr" +) +) +on &22 +) +*107 (Wire +uid 1437,0 +shape (OrthoPolyLine +uid 1438,0 +va (VaSet +vasetType 3 +) +xt "75000,53000,105000,65000" +pts [ +"80250,53000" +"75000,53000" +"75000,65000" +"105000,65000" +] +) +start &81 +end &34 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1441,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1442,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,63600,105100,65000" +st "txFull" +blo "101000,64800" +tm "WireNameMgr" +) +) +on &35 +) +*108 (Wire +uid 1451,0 +shape (OrthoPolyLine +uid 1452,0 +va (VaSet +vasetType 3 +) +xt "97750,49000,105000,49000" +pts [ +"105000,49000" +"97750,49000" +] +) +start &36 +end &74 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1455,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1456,0 +va (VaSet +font "Verdana,12,0" +) +xt "102000,47600,105800,49000" +st "txWr" +blo "102000,48800" +tm "WireNameMgr" +) +) +on &37 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *109 (PackageList +uid 42,0 +stg "VerticalLayoutStrategy" +textVec [ +*110 (Text +uid 43,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,0,6900,1000" +st "Package List" +blo "0,800" +) +*111 (MLText +uid 44,0 +va (VaSet +) +xt "0,1000,17500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 45,0 +stg "VerticalLayoutStrategy" +textVec [ +*112 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*113 (Text +uid 47,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*114 (MLText +uid 48,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*115 (Text +uid 49,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*116 (MLText +uid 50,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*117 (Text +uid 51,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*118 (MLText +uid 52,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1604,-1604,141072,75916" +cachedDiagramExtent "0,0,131800,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 2312,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*119 (Text +va (VaSet +) +xt "2450,3500,5550,4500" +st "" +blo "2450,4300" +tm "BdLibraryNameMgr" +) +*120 (Text +va (VaSet +) +xt "2450,4500,5150,5500" +st "" +blo "2450,5300" +tm "BlkNameMgr" +) +*121 (Text +va (VaSet +) +xt "2450,5500,3050,6500" +st "I0" +blo "2450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "2450,13500,2450,13500" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*123 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*124 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*126 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*127 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*128 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*129 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*130 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*132 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*133 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*134 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*135 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*136 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*137 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*138 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*139 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,5100,7000,6100" +st "Declarations" +blo "0,5900" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,6100,3400,7100" +st "Ports:" +blo "0,6900" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5100,4800,6100" +st "Pre User:" +blo "0,5900" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5100,0,5100" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "0,15100,9000,16100" +st "Diagram Signals:" +blo "0,15900" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "0,5100,6000,6100" +st "Post User:" +blo "0,5900" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "0,5100,0,5100" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 28,0 +usingSuid 1 +emptyRow *140 (LEmptyRow +) +uid 1151,0 +optionalChildren [ +*141 (RefLabelRowHdr +) +*142 (TitleRowHdr +) +*143 (FilterRowHdr +) +*144 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*145 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*146 (GroupColHdr +tm "GroupColHdrMgr" +) +*147 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*148 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*149 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*150 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*151 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*152 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*153 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 1112,0 +) +*154 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 1118,0 +) +*155 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 5,0 +) +) +uid 1120,0 +) +*156 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 7,0 +) +) +uid 1124,0 +) +*157 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txFifoEmpty" +t "std_ulogic" +o 14 +suid 16,0 +) +) +uid 1142,0 +) +*158 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txBusy" +t "std_ulogic" +o 16 +suid 18,0 +) +) +uid 1146,0 +) +*159 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txSend" +t "std_ulogic" +o 11 +suid 19,0 +) +) +uid 1148,0 +) +*160 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 5 +suid 20,0 +) +) +uid 1367,0 +) +*161 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxRd" +t "std_ulogic" +o 6 +suid 21,0 +) +) +uid 1369,0 +) +*162 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxWord" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 12 +suid 22,0 +) +) +uid 1404,0 +) +*163 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txWord" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 15 +suid 23,0 +) +) +uid 1406,0 +) +*164 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxWordValid" +t "std_ulogic" +o 13 +suid 24,0 +) +) +uid 1408,0 +) +*165 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 25,0 +) +) +uid 1428,0 +) +*166 (LeafLogPort +port (LogicalPort +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 26,0 +) +) +uid 1430,0 +) +*167 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 27,0 +) +) +uid 1467,0 +) +*168 (LeafLogPort +port (LogicalPort +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 28,0 +) +) +uid 1477,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1164,0 +optionalChildren [ +*169 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *170 (MRCItem +litem &140 +pos 16 +dimension 20 +) +uid 1166,0 +optionalChildren [ +*171 (MRCItem +litem &141 +pos 0 +dimension 20 +uid 1167,0 +) +*172 (MRCItem +litem &142 +pos 1 +dimension 23 +uid 1168,0 +) +*173 (MRCItem +litem &143 +pos 2 +hidden 1 +dimension 20 +uid 1169,0 +) +*174 (MRCItem +litem &153 +pos 0 +dimension 20 +uid 1113,0 +) +*175 (MRCItem +litem &154 +pos 2 +dimension 20 +uid 1119,0 +) +*176 (MRCItem +litem &155 +pos 3 +dimension 20 +uid 1121,0 +) +*177 (MRCItem +litem &156 +pos 5 +dimension 20 +uid 1125,0 +) +*178 (MRCItem +litem &157 +pos 10 +dimension 20 +uid 1143,0 +) +*179 (MRCItem +litem &158 +pos 11 +dimension 20 +uid 1147,0 +) +*180 (MRCItem +litem &159 +pos 12 +dimension 20 +uid 1149,0 +) +*181 (MRCItem +litem &160 +pos 4 +dimension 20 +uid 1366,0 +) +*182 (MRCItem +litem &161 +pos 1 +dimension 20 +uid 1368,0 +) +*183 (MRCItem +litem &162 +pos 13 +dimension 20 +uid 1405,0 +) +*184 (MRCItem +litem &163 +pos 14 +dimension 20 +uid 1407,0 +) +*185 (MRCItem +litem &164 +pos 15 +dimension 20 +uid 1409,0 +) +*186 (MRCItem +litem &165 +pos 6 +dimension 20 +uid 1427,0 +) +*187 (MRCItem +litem &166 +pos 7 +dimension 20 +uid 1429,0 +) +*188 (MRCItem +litem &167 +pos 8 +dimension 20 +uid 1468,0 +) +*189 (MRCItem +litem &168 +pos 9 +dimension 20 +uid 1478,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1170,0 +optionalChildren [ +*190 (MRCItem +litem &144 +pos 0 +dimension 20 +uid 1171,0 +) +*191 (MRCItem +litem &146 +pos 1 +dimension 50 +uid 1172,0 +) +*192 (MRCItem +litem &147 +pos 2 +dimension 100 +uid 1173,0 +) +*193 (MRCItem +litem &148 +pos 3 +dimension 50 +uid 1174,0 +) +*194 (MRCItem +litem &149 +pos 4 +dimension 100 +uid 1175,0 +) +*195 (MRCItem +litem &150 +pos 5 +dimension 100 +uid 1176,0 +) +*196 (MRCItem +litem &151 +pos 6 +dimension 50 +uid 1177,0 +) +*197 (MRCItem +litem &152 +pos 7 +dimension 80 +uid 1178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1165,0 +vaOverrides [ +] +) +] +) +uid 1150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *198 (LEmptyRow +) +uid 1180,0 +optionalChildren [ +*199 (RefLabelRowHdr +) +*200 (TitleRowHdr +) +*201 (FilterRowHdr +) +*202 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*203 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*204 (GroupColHdr +tm "GroupColHdrMgr" +) +*205 (NameColHdr +tm "GenericNameColHdrMgr" +) +*206 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*207 (InitColHdr +tm "GenericValueColHdrMgr" +) +*208 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*209 (EolColHdr +tm "GenericEolColHdrMgr" +) +*210 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 1243,0 +) +*211 (LogGeneric +generic (GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +uid 1247,0 +) +*212 (LogGeneric +generic (GiElement +name "txFifoDepth" +type "positive" +value "8" +) +uid 2075,0 +) +*213 (LogGeneric +generic (GiElement +name "rxFifoDepth" +type "positive" +value "8" +) +uid 2077,0 +) +] +) +pdm (PhysicalDM +uid 1192,0 +optionalChildren [ +*214 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *215 (MRCItem +litem &198 +pos 4 +dimension 20 +) +uid 1194,0 +optionalChildren [ +*216 (MRCItem +litem &199 +pos 0 +dimension 20 +uid 1195,0 +) +*217 (MRCItem +litem &200 +pos 1 +dimension 23 +uid 1196,0 +) +*218 (MRCItem +litem &201 +pos 2 +hidden 1 +dimension 20 +uid 1197,0 +) +*219 (MRCItem +litem &210 +pos 1 +dimension 20 +uid 1242,0 +) +*220 (MRCItem +litem &211 +pos 0 +dimension 20 +uid 1246,0 +) +*221 (MRCItem +litem &212 +pos 2 +dimension 20 +uid 2074,0 +) +*222 (MRCItem +litem &213 +pos 3 +dimension 20 +uid 2076,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 1198,0 +optionalChildren [ +*223 (MRCItem +litem &202 +pos 0 +dimension 20 +uid 1199,0 +) +*224 (MRCItem +litem &204 +pos 1 +dimension 50 +uid 1200,0 +) +*225 (MRCItem +litem &205 +pos 2 +dimension 100 +uid 1201,0 +) +*226 (MRCItem +litem &206 +pos 3 +dimension 100 +uid 1202,0 +) +*227 (MRCItem +litem &207 +pos 4 +dimension 50 +uid 1203,0 +) +*228 (MRCItem +litem &208 +pos 5 +dimension 50 +uid 1204,0 +) +*229 (MRCItem +litem &209 +pos 6 +dimension 80 +uid 1205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1193,0 +vaOverrides [ +] +) +] +) +uid 1179,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb b/Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb new file mode 100644 index 0000000..0f5ab75 --- /dev/null +++ b/Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb @@ -0,0 +1,2015 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2012,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 283,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +uid 284,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 5 +suid 6,0 +) +) +uid 285,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "rxRd" +t "std_ulogic" +o 6 +suid 8,0 +) +) +uid 286,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 7,0 +) +) +uid 287,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 288,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 3,0 +) +) +uid 289,0 +) +*8 (LogPort +port (LogicalPort +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 9,0 +) +) +uid 291,0 +) +*9 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 292,0 +) +*10 (RefLabelRowHdr +) +*11 (TitleRowHdr +) +*12 (FilterRowHdr +) +*13 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*14 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*15 (GroupColHdr +tm "GroupColHdrMgr" +) +*16 (NameColHdr +tm "NameColHdrMgr" +) +*17 (ModeColHdr +tm "ModeColHdrMgr" +) +*18 (TypeColHdr +tm "TypeColHdrMgr" +) +*19 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*20 (InitColHdr +tm "InitColHdrMgr" +) +*21 (EolColHdr +tm "EolColHdrMgr" +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 2011,0 +) +) +uid 367,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 2012,0 +) +) +uid 374,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 293,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 216,0 +optionalChildren [ +*26 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 219,0 +) +*27 (MRCItem +litem &11 +pos 1 +dimension 23 +uid 221,0 +) +*28 (MRCItem +litem &12 +pos 2 +hidden 1 +dimension 20 +uid 223,0 +) +*29 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 242,0 +) +*30 (MRCItem +litem &3 +pos 4 +dimension 20 +uid 243,0 +) +*31 (MRCItem +litem &4 +pos 1 +dimension 20 +uid 244,0 +) +*32 (MRCItem +litem &5 +pos 6 +dimension 20 +uid 245,0 +) +*33 (MRCItem +litem &6 +pos 5 +dimension 20 +uid 246,0 +) +*34 (MRCItem +litem &7 +pos 2 +dimension 20 +uid 247,0 +) +*35 (MRCItem +litem &8 +pos 7 +dimension 20 +uid 249,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 20 +uid 250,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 366,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 373,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 217,0 +optionalChildren [ +*39 (MRCItem +litem &13 +pos 0 +dimension 20 +uid 225,0 +) +*40 (MRCItem +litem &15 +pos 1 +dimension 50 +uid 229,0 +) +*41 (MRCItem +litem &16 +pos 2 +dimension 100 +uid 231,0 +) +*42 (MRCItem +litem &17 +pos 3 +dimension 50 +uid 233,0 +) +*43 (MRCItem +litem &18 +pos 4 +dimension 100 +uid 235,0 +) +*44 (MRCItem +litem &19 +pos 5 +dimension 100 +uid 237,0 +) +*45 (MRCItem +litem &20 +pos 6 +dimension 50 +uid 239,0 +) +*46 (MRCItem +litem &21 +pos 7 +dimension 80 +uid 241,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 215,0 +vaOverrides [ +] +) +] +) +uid 282,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 295,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 276,0 +) +*60 (LogGeneric +generic (GiElement +name "txFifoDepth" +type "positive" +value "8" +) +uid 277,0 +) +*61 (LogGeneric +generic (GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +uid 278,0 +) +*62 (LogGeneric +generic (GiElement +name "rxFifoDepth" +type "positive" +value "8" +) +uid 472,0 +) +] +) +pdm (PhysicalDM +uid 296,0 +optionalChildren [ +*63 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *64 (MRCItem +litem &47 +pos 4 +dimension 20 +) +uid 252,0 +optionalChildren [ +*65 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 255,0 +) +*66 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 257,0 +) +*67 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 259,0 +) +*68 (MRCItem +litem &59 +pos 1 +dimension 20 +uid 279,0 +) +*69 (MRCItem +litem &60 +pos 2 +dimension 20 +uid 280,0 +) +*70 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 281,0 +) +*71 (MRCItem +litem &62 +pos 3 +dimension 20 +uid 473,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 253,0 +optionalChildren [ +*72 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 261,0 +) +*73 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 265,0 +) +*74 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 267,0 +) +*75 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 269,0 +) +*76 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 271,0 +) +*77 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 273,0 +) +*78 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 275,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 251,0 +vaOverrides [ +] +) +] +) +uid 294,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@f@i@f@o" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serialPortFIFO" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "serialPortFIFO" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:49" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../Demo/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortFIFO" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@f@i@f@o/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serialPortFIFO/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ActelPath" +value "$ACTEL_HOME" +) +(vvPair +variable "task_ActelProjectPath" +value "$SCRATCH_DIR\\$DESIGN_NAME\\$ACTEL_WORK_DIR" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEPath" +value "$SCRATCH_DIR\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:49" +) +(vvPair +variable "unit" +value "serialPortFIFO" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,13625,34000,14375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +) +xt "35000,13400,37800,14600" +st "RxD" +blo "35000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,17500,8700" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*81 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,23625,34000,24375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "35000,23400,38400,24600" +st "clock" +blo "35000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,17500,10500" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +) +*82 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +) +xt "35000,25400,38300,26600" +st "reset" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,17500,11400" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*83 (CptPort +uid 183,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 184,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 185,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 186,0 +va (VaSet +) +xt "35000,19400,37800,20600" +st "TxD" +blo "35000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 187,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,17500,9600" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*84 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 194,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,15625,50750,16375" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +va (VaSet +) +xt "44100,15400,49000,16600" +st "rxEmpty" +ju 2 +blo "49000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17500,12300" +st "rxEmpty : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*85 (CptPort +uid 198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 199,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,21625,50750,22375" +) +tg (CPTG +uid 200,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 201,0 +va (VaSet +) +xt "45500,21400,49000,22600" +st "txFull" +ju 2 +blo "49000,22400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 202,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15000,17500,15900" +st "txFull : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 7,0 +) +) +) +*86 (CptPort +uid 203,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 213,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,17625,50750,18375" +) +tg (CPTG +uid 205,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 206,0 +va (VaSet +) +xt "46000,17400,49000,18600" +st "rxRd" +ju 2 +blo "49000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 207,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,17500,13200" +st "rxRd : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rxRd" +t "std_ulogic" +o 6 +suid 8,0 +) +) +) +*87 (CptPort +uid 208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 214,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,23625,50750,24375" +) +tg (CPTG +uid 210,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 211,0 +va (VaSet +) +xt "46000,23400,49000,24600" +st "txWr" +ju 2 +blo "49000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 212,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,16500,16800" +st "txWr : IN std_ulogic " +) +thePort (LogicalPort +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 9,0 +) +) +) +*88 (CptPort +uid 368,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 369,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,13625,50750,14375" +) +tg (CPTG +uid 370,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 371,0 +va (VaSet +) +xt "34400,13400,49000,14600" +st "rxData : (dataBitNb-1:0)" +ju 2 +blo "49000,14400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 372,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,32000,14100" +st "rxData : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 2011,0 +) +) +) +*89 (CptPort +uid 375,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 376,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,19625,50750,20375" +) +tg (CPTG +uid 377,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 378,0 +va (VaSet +) +xt "34400,19400,49000,20600" +st "txData : (dataBitNb-1:0)" +ju 2 +blo "49000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 379,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,32000,15000" +st "txData : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 2012,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,10000,50000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "34600,27800,37600,28800" +st "RS232" +blo "34600,28600" +) +second (Text +uid 12,0 +va (VaSet +) +xt "34600,28800,43600,29800" +st "serialPortFIFO" +blo "34600,29600" +) +) +gi *90 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,32000,49500,37400" +st "Generic Declarations + +baudRateDivide positive 2083 +dataBitNb positive 8 +txFifoDepth positive 8 +rxFifoDepth positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "txFifoDepth" +type "positive" +value "8" +) +(GiElement +name "rxFifoDepth" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*91 (Grouping +uid 16,0 +optionalChildren [ +*92 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*97 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*98 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*99 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*100 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*101 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,53000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *102 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*104 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,1000,15500,3700" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "51,52,1356,900" +viewArea "-1100,-1100,74920,48320" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "600,1000,4800,2200" +st "Panel0" +blo "600,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "22600,14800,27900,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +) +xt "22600,16000,26500,17200" +st "" +blo "22600,17000" +) +) +gi *105 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *106 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,7000,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,3400,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,16800,2500,17700" +st "User:" +blo "0,17500" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,7600,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17700,2000,17700" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 496,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RS232/hds/serial@port@receiver/symbol.sb b/Libs/RS232/hds/serial@port@receiver/symbol.sb new file mode 100644 index 0000000..e973d9d --- /dev/null +++ b/Libs/RS232/hds/serial@port@receiver/symbol.sb @@ -0,0 +1,1644 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2005,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 278,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 279,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 280,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 281,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 282,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 283,0 +) +*7 (RefLabelRowHdr +) +*8 (TitleRowHdr +) +*9 (FilterRowHdr +) +*10 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*11 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*12 (GroupColHdr +tm "GroupColHdrMgr" +) +*13 (NameColHdr +tm "NameColHdrMgr" +) +*14 (ModeColHdr +tm "ModeColHdrMgr" +) +*15 (TypeColHdr +tm "TypeColHdrMgr" +) +*16 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*17 (InitColHdr +tm "InitColHdrMgr" +) +*18 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 284,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 217,0 +optionalChildren [ +*21 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 220,0 +) +*22 (MRCItem +litem &8 +pos 1 +dimension 23 +uid 222,0 +) +*23 (MRCItem +litem &9 +pos 2 +hidden 1 +dimension 20 +uid 224,0 +) +*24 (MRCItem +litem &2 +pos 3 +dimension 20 +uid 243,0 +) +*25 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 244,0 +) +*26 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 245,0 +) +*27 (MRCItem +litem &5 +pos 4 +dimension 20 +uid 246,0 +) +*28 (MRCItem +litem &6 +pos 1 +dimension 20 +uid 247,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 218,0 +optionalChildren [ +*29 (MRCItem +litem &10 +pos 0 +dimension 20 +uid 226,0 +) +*30 (MRCItem +litem &12 +pos 1 +dimension 50 +uid 230,0 +) +*31 (MRCItem +litem &13 +pos 2 +dimension 100 +uid 232,0 +) +*32 (MRCItem +litem &14 +pos 3 +dimension 50 +uid 234,0 +) +*33 (MRCItem +litem &15 +pos 4 +dimension 100 +uid 236,0 +) +*34 (MRCItem +litem &16 +pos 5 +dimension 100 +uid 238,0 +) +*35 (MRCItem +litem &17 +pos 6 +dimension 50 +uid 240,0 +) +*36 (MRCItem +litem &18 +pos 7 +dimension 80 +uid 242,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 216,0 +vaOverrides [ +] +) +] +) +uid 277,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 286,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 273,0 +) +*50 (LogGeneric +generic (GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +uid 274,0 +) +] +) +pdm (PhysicalDM +uid 287,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 3 +dimension 20 +) +uid 249,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 252,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 254,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 256,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 275,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 276,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 250,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 258,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 262,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 264,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 266,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 268,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 270,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 272,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 248,0 +vaOverrides [ +] +) +] +) +uid 285,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@receiver/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@receiver/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@receiver" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serialPortReceiver" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "serialPortReceiver" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:45:48" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortReceiver" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serial@port@receiver/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232/hds/serialPortReceiver/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:45:48" +) +(vvPair +variable "unit" +value "serialPortReceiver" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +font "courier,9,0" +) +xt "35000,19400,37800,20600" +st "RxD" +blo "35000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,18500,8700" +st "RxD : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,23625,34000,24375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +font "courier,9,0" +) +xt "35000,23400,38400,24600" +st "clock" +blo "35000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,18500,9600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*68 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +font "courier,9,0" +) +xt "35000,25400,38300,26600" +st "reset" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,18500,10500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*69 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,19625,50750,20375" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 191,0 +va (VaSet +font "courier,9,0" +) +xt "44201,19400,49001,20600" +st "dataOut" +ju 2 +blo "49001,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,33000,11400" +st "dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*70 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 194,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,21625,50750,22375" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 196,0 +va (VaSet +font "courier,9,0" +) +xt "43500,21400,49000,22600" +st "dataValid" +ju 2 +blo "49000,22400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17500,12300" +st "dataValid : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,16000,50000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "34600,27800,37100,28700" +st "RS232" +blo "34600,28500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "34600,28700,44100,29600" +st "serialPortReceiver" +blo "34600,29400" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,30800,49500,34400" +st "Generic Declarations + +dataBitNb positive 8 +baudRateDivide positive 2083 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,50000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "43,23,938,764" +viewArea "-1920,-940,75120,50630" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,5400,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,2700,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,12300,2500,13200" +st "User:" +blo "0,13000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,5800,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,2000,13200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 310,0 +) diff --git a/Libs/RS232/hds/serial@port@transmitter/symbol.sb b/Libs/RS232/hds/serial@port@transmitter/symbol.sb new file mode 100644 index 0000000..c9512ae --- /dev/null +++ b/Libs/RS232/hds/serial@port@transmitter/symbol.sb @@ -0,0 +1,1726 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +ordering 1 +suid 2006,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 284,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "busy" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 285,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 286,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 287,0 +) +*5 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 288,0 +) +*6 (LogPort +port (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 289,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 290,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 291,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 222,0 +optionalChildren [ +*22 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 225,0 +) +*23 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 227,0 +) +*24 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 229,0 +) +*25 (MRCItem +litem &2 +pos 5 +dimension 20 +uid 248,0 +) +*26 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 249,0 +) +*27 (MRCItem +litem &4 +pos 1 +dimension 20 +uid 250,0 +) +*28 (MRCItem +litem &5 +pos 2 +dimension 20 +uid 251,0 +) +*29 (MRCItem +litem &6 +pos 3 +dimension 20 +uid 252,0 +) +*30 (MRCItem +litem &7 +pos 4 +dimension 20 +uid 253,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 223,0 +optionalChildren [ +*31 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 231,0 +) +*32 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 235,0 +) +*33 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 237,0 +) +*34 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 239,0 +) +*35 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 241,0 +) +*36 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 243,0 +) +*37 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 245,0 +) +*38 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 247,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 221,0 +vaOverrides [ +] +) +] +) +uid 283,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 293,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 279,0 +) +*52 (LogGeneric +generic (GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +uid 280,0 +) +*53 (LogGeneric +generic (GiElement +name "stopBitNb" +type "positive" +value "1" +) +uid 345,0 +) +] +) +pdm (PhysicalDM +uid 294,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *55 (MRCItem +litem &39 +pos 3 +dimension 20 +) +uid 255,0 +optionalChildren [ +*56 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 258,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 260,0 +) +*58 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 262,0 +) +*59 (MRCItem +litem &51 +pos 1 +dimension 20 +uid 281,0 +) +*60 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 282,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 346,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 256,0 +optionalChildren [ +*62 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 264,0 +) +*63 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 268,0 +) +*64 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 270,0 +) +*65 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 272,0 +) +*66 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 274,0 +) +*67 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 276,0 +) +*68 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 278,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 254,0 +vaOverrides [ +] +) +] +) +uid 292,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds/serial@port@transmitter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds/serial@port@transmitter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds/serial@port@transmitter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds/serialPortTransmitter" +) +(vvPair +variable "date" +value "08/07/23" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "entity_name" +value "serialPortTransmitter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/07/23" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Hyperion" +) +(vvPair +variable "graphical_source_time" +value "13:21:39" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Hyperion" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232" +) +(vvPair +variable "library_downstream_SpyGlass" +value "D:\\Users\\FCo HEVs\\Projets\\OCT\\Technique\\VHDL\\Synthesis" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortTransmitter" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds/serial@port@transmitter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232/hds/serialPortTransmitter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:21:39" +) +(vvPair +variable "unit" +value "serialPortTransmitter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 295,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "50000,15625,50750,16375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +font "courier,9,0" +) +xt "46200,15400,49000,16600" +st "TxD" +ju 2 +blo "49000,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "courier,8,0" +) +xt "2000,7800,17000,8700" +st "TxD : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*71 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,23625,34000,24375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +font "courier,9,0" +) +xt "35000,23400,38400,24600" +st "clock" +blo "35000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "courier,8,0" +) +xt "2000,8700,17000,9600" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*72 (CptPort +uid 178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 181,0 +va (VaSet +font "courier,9,0" +) +xt "35000,25400,38300,26600" +st "reset" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 182,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9600,17000,10500" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*73 (CptPort +uid 188,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 296,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,15625,34000,16375" +) +tg (CPTG +uid 190,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 191,0 +va (VaSet +font "courier,9,0" +) +xt "34999,15400,38999,16600" +st "dataIn" +blo "34999,16400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 192,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10500,31500,11400" +st "dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*74 (CptPort +uid 193,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 297,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,17625,34000,18375" +) +tg (CPTG +uid 195,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 196,0 +va (VaSet +font "courier,9,0" +) +xt "35000,17400,38100,18600" +st "send" +blo "35000,18400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 197,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,17000,12300" +st "send : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*75 (CptPort +uid 216,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 298,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,19625,34000,20375" +) +tg (CPTG +uid 218,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 219,0 +va (VaSet +font "courier,9,0" +) +xt "35000,19400,38100,20600" +st "busy" +blo "35000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 220,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,16000,13200" +st "busy : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "busy" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,12000,50000,28000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "34600,27800,37100,28700" +st "RS232" +blo "34600,28500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "34600,28700,45600,29600" +st "serialPortTransmitter" +blo "34600,29400" +) +) +gi *76 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,30800,49500,35300" +st "Generic Declarations + +baudRateDivide positive 2083 +dataBitNb positive 8 +stopBitNb positive 1 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "baudRateDivide" +type "positive" +value "2083" +) +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "stopBitNb" +type "positive" +value "1" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*77 (Grouping +uid 16,0 +optionalChildren [ +*78 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*79 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*80 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*81 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*82 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*83 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*84 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*85 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*86 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*87 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *88 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*90 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "412,1239,1307,1980" +viewArea "-1900,-900,58580,50400" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *91 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *92 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,5800,5400,6800" +st "Declarations" +blo "0,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,6800,2700,7800" +st "Ports:" +blo "0,7600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,13200,2500,14100" +st "User:" +blo "0,13900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,5800,5800,6800" +st "Internal User:" +blo "0,6600" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,2000,14100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,5800,0,5800" +tm "SyDeclarativeTextMgr" +) +) +lastUid 346,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RS232_test/hdl/serialPortFIFO_tester_test.vhd b/Libs/RS232_test/hdl/serialPortFIFO_tester_test.vhd new file mode 100644 index 0000000..bbcaf84 --- /dev/null +++ b/Libs/RS232_test/hdl/serialPortFIFO_tester_test.vhd @@ -0,0 +1,211 @@ +ARCHITECTURE test OF serialPortFIFO_tester IS + -- reset and clock + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + -- RS232 speed + constant rs232Frequency: real := baudRate; + constant rs232Period: time := (1.0/rs232Frequency) * 1 sec; + constant rs232WriteInterval: time := 10*rs232Period; + -- RS232 Rx test + signal rs232OutString : string(1 to 32); + signal rs232SendOutString: std_uLogic; + signal rs232SendOutDone: std_uLogic; + signal rs232OutByte: character; + signal rs232SendOutByte: std_uLogic; + signal rs232OutByteReturned: std_ulogic_vector(rxData'range); + -- RS232 Tx test + signal rs232InString : string(1 to 32); + signal rs232SendInString: std_uLogic; + signal rs232SendInDone: std_uLogic; + signal rs232InByte: character; + signal rs232InByteReturned: character; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- RS232 Rx test + process + begin + rs232SendOutString <= '0'; + wait for 4*rs232Period; + + rs232OutString <= "test 1 "; + rs232SendOutString <= '1', '0' after 1 ns; + wait until rs232SendOutDone = '1'; + wait for rs232WriteInterval; + + rs232OutString <= "test 2 "; + rs232SendOutString <= '1', '0' after 1 ns; + wait until rs232SendOutDone = '1'; + wait for rs232WriteInterval; + + rs232OutString <= "test 3 "; + rs232SendOutString <= '1', '0' after 1 ns; + wait until rs232SendOutDone = '1'; + wait for rs232WriteInterval; + + rs232OutString <= "test 4 "; + rs232SendOutString <= '1', '0' after 1 ns; + wait until rs232SendOutDone = '1'; + wait for rs232WriteInterval; + + wait; + end process; + + readRxFifo: process + begin + rxRd <= '0'; + wait until falling_edge(rxEmpty); + rxRd <= '1'; + wait for clockPeriod; + rs232OutByteReturned <= rxData; + end process readRxFifo; + + + ------------------------------------------------------------------------------ + -- RS232 Tx test + process + begin + rs232SendInString <= '0'; + wait for 4*rs232Period; + + rs232InString <= "hello 1 "; + rs232SendInString <= '1', '0' after 1 ns; + wait until rs232SendInDone = '1'; + wait for rs232WriteInterval; + + rs232InString <= "hello 2 "; + rs232SendInString <= '1', '0' after 1 ns; + wait until rs232SendInDone = '1'; + wait for rs232WriteInterval; + + rs232InString <= "hello 3 "; + rs232SendInString <= '1', '0' after 1 ns; + wait until rs232SendInDone = '1'; + wait for rs232WriteInterval; + + rs232InString <= "hello 4 "; + rs232SendInString <= '1', '0' after 1 ns; + wait until rs232SendInDone = '1'; + wait for rs232WriteInterval; + + wait; + end process; + + --============================================================================ + -- RS232 send + rsSendSerialString: process + constant rs232BytePeriod : time := 15*rs232Period; + variable commandRight: natural; + begin + + rs232SendOutByte <= '0'; + rs232SendOutDone <= '0'; + + wait until rising_edge(rs232SendOutString); + + commandRight := rs232OutString'right; + while rs232OutString(commandRight) = ' ' loop + commandRight := commandRight-1; + end loop; + + for index in rs232OutString'left to commandRight loop + rs232OutByte <= rs232OutString(index); + rs232SendOutByte <= '1', '0' after 1 ns; + wait for rs232BytePeriod; + end loop; + + rs232OutByte <= cr; + rs232SendOutByte <= '1', '0' after 1 ns; + wait for rs232BytePeriod; + + rs232SendOutDone <= '1'; + wait for 1 ns; + + end process rsSendSerialString; + + rsSendSerialByte: process + variable txData: unsigned(7 downto 0); + begin + RxD <= '1'; + + wait until rising_edge(rs232SendOutByte); + txData := to_unsigned(character'pos(rs232OutByte), txData'length); + + RxD <= '0'; + wait for rs232Period; + + for index in txData'reverse_range loop + RxD <= txData(index); + wait for rs232Period; + end loop; + + end process rsSendSerialByte; + + rsSendParallelString: process + variable commandRight: natural; + begin + + rs232SendInDone <= '0'; + txWr <= '0'; + + wait until rising_edge(rs232SendInString); + + commandRight := rs232OutString'right; + while rs232InString(commandRight) = ' ' loop + commandRight := commandRight-1; + end loop; + + wait until rising_edge(clock_int); + for index in rs232InString'left to commandRight loop + wait until rising_edge(clock_int); + while txFull = '1' loop + txWr <= '0'; + wait until rising_edge(clock_int); + end loop; + rs232InByte <= rs232InString(index); + txWr <= '1'; + end loop; + wait until rising_edge(clock_int); + + while txFull = '1' loop + txWr <= '0'; + wait until rising_edge(clock_int); + end loop; + rs232InByte <= cr; + txWr <= '1'; + wait until rising_edge(clock_int); + txWr <= '0'; + + rs232SendInDone <= '1'; + wait for 1 ns; + + end process rsSendParallelString; + + txData <= std_ulogic_vector(to_unsigned(character'pos(rs232InByte), txData'length)); + + ------------------------------------------------------------------------------ + -- RS232 receive + rsReceiveByte: process + variable rxData: unsigned(7 downto 0); + begin + wait until falling_edge(TxD); + + wait for 1.5 * rs232Period; + + for index in rxData'reverse_range loop + rxData(index) := TxD; + wait for rs232Period; + end loop; + + rs232InByteReturned <= character'val(to_integer(rxData)); + + end process rsReceiveByte; + +END ARCHITECTURE test; diff --git a/Libs/RS232_test/hdl/serialPortTransmitter_tester_test.vhd b/Libs/RS232_test/hdl/serialPortTransmitter_tester_test.vhd new file mode 100644 index 0000000..a145049 --- /dev/null +++ b/Libs/RS232_test/hdl/serialPortTransmitter_tester_test.vhd @@ -0,0 +1,42 @@ +-- restart -f ; run 34 ms + +ARCHITECTURE test OF serialPortTransmitter_tester IS + -- reset and clock + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + -- Tx test + constant rs232Frequency: real := baudRate; + constant rs232Period: time := (1.0/rs232Frequency) * 1 sec; + constant rs232WriteInterval: time := 20*rs232Period; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- Tx test + process + begin + + dataIn <= (others => '0'); + send <= '0'; + wait for rs232Period; + + for index in 0 to 2**dataBitNb-1 loop + dataIn <= std_ulogic_vector(to_unsigned(index, dataIn'length)); + wait until rising_edge(clock_int); + send <= '1'; + wait until rising_edge(clock_int); + send <= '0'; + wait for rs232WriteInterval; + end loop; + + wait; + + end process; + +END ARCHITECTURE test; diff --git a/Libs/RS232_test/hdl/uvmRs232Driver_sim.vhd b/Libs/RS232_test/hdl/uvmRs232Driver_sim.vhd new file mode 100644 index 0000000..d3de233 --- /dev/null +++ b/Libs/RS232_test/hdl/uvmRs232Driver_sim.vhd @@ -0,0 +1,129 @@ +LIBRARY std; + USE std.TEXTIO.all; +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE RTL OF uvmRs232Driver IS + -- parameters + signal baudRate_int: real; + signal baudPeriod, characterPeriod: time; + constant uartDataBitNb: positive := 9; + constant maxStringLength: positive := driverTransaction'length; + -- Tx signals + signal outString : string(1 to maxStringLength); + signal sendString: std_uLogic := '0'; + signal outChar: character; + signal sendChar: std_ulogic := '0'; + signal sendParity, parityInit: std_ulogic := '0'; + -- debug + signal outChar_debug: unsigned(uartDataBitNb-1 downto 0); + + +BEGIN + ------------------------------------------------------------------------------ + -- interpret transaction + interpretTransaction: process + variable myLine : line; + variable commandPart : line; + variable baudRate_nat : natural; + file dataFile : text; + variable dataLine : line; + begin + wait on driverTransaction; + write(myLine, driverTransaction); + rm_side_separators(myLine); + read_first(myLine, commandPart); + if commandPart.all = "uart_baud" then + read(myLine, baudRate_nat); + baudRate_int <= real(baudRate_nat); + elsif commandPart.all = "uart_parity" then + sendParity <= '0'; + parityInit <= '0'; + if myLine.all = "even" then + sendParity <= '1'; + elsif myLine.all = "odd" then + sendParity <= '1'; + parityInit <= '1'; + end if; + elsif commandPart.all = "uart_send" then + outString <= pad(myLine.all, outString'length); + sendString <= '1', '0' after 1 ns; + elsif commandPart.all = "uart_send_file" then + file_open(dataFile, "$SIMULATION_DIR/" & myLine.all, read_mode); + while not endFile(dataFile) loop + readLine(dataFile, dataLine); +--print(dataLine.all); + outString <= pad(dataLine.all, outString'length); + sendString <= '1', '0' after 1 ns; + wait for (dataLine'length+8) * characterPeriod; + end loop; + file_close(dataFile); + end if; + deallocate(myLine); + end process interpretTransaction; + + baudRate <= baudRate_int; + baudPeriod <= 1.0/baudRate_int * 1 sec; + characterPeriod <= 15*baudPeriod; + + --============================================================================ + -- send string on RxD line + uartSendString: process + variable outStringRight: natural; + begin + -- wait for command + sendChar <= '0'; + wait until rising_edge(sendString); + -- find string length + outStringRight := outString'right; + while outString(outStringRight) = ' ' loop + outStringRight := outStringRight-1; + end loop; + -- send characters + for index in outString'left to outStringRight loop + outChar <= outString(index); +--print(sprintf("%2X", character'pos(outChar))); + sendChar <= '1', '0' after 1 ns; + wait for characterPeriod; + end loop; + -- send carriage return + outChar <= cr; + sendChar <= '1', '0' after 1 ns; + wait for characterPeriod; + + end process uartSendString; + + ------------------------------------------------------------------------------ + -- send character on RxD line + uartSendChar: process + variable outChar_unsigned: unsigned(uartDataBitNb-1 downto 0); + begin + -- wait for trigger + RxD <= '1'; + wait until rising_edge(sendChar); + -- transform char to bit vector + outChar_unsigned := to_unsigned( + character'pos(outChar), + outChar_unsigned'length + ); + outChar_unsigned(outChar_unsigned'high) := '1'; + if sendParity = '1' then + outChar_unsigned(outChar_unsigned'high) := parityInit; + for index in uartDataBitNb-2 downto 0 loop + outChar_unsigned(outChar_unsigned'high) + := outChar_unsigned(outChar_unsigned'high) + xor outChar_unsigned(index); + end loop; + end if; + outChar_debug <= outChar_unsigned; + -- send start bit + RxD <= '0'; + wait for baudPeriod; + -- send data bits + for index in outChar_unsigned'reverse_range loop + RxD <= outChar_unsigned(index); + wait for baudPeriod; + end loop; + end process uartSendChar; + +END ARCHITECTURE RTL; diff --git a/Libs/RS232_test/hdl/uvmRs232Monitor_sim.vhd b/Libs/RS232_test/hdl/uvmRs232Monitor_sim.vhd new file mode 100644 index 0000000..f0c217f --- /dev/null +++ b/Libs/RS232_test/hdl/uvmRs232Monitor_sim.vhd @@ -0,0 +1,79 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE RTL OF uvmRs232Monitor IS + + constant uartDataBitNb: positive := 8; + signal baudPeriod: time; + signal rxWord, txWord: natural; + signal startup, rxReceived, txReceived: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + baudPeriod <= 1.0/baudRate * 1 sec; + + ------------------------------------------------------------------------------ + -- receive RxD + receiveRxD: process + variable rxData: unsigned(uartDataBitNb-1 downto 0); + begin + rxReceived <= '0'; + -- start bit + wait until falling_edge(RxD); + wait for 1.5 * baudPeriod; + -- data bits + for index in rxData'reverse_range loop + rxData(index) := RxD; + wait for baudPeriod; + end loop; + -- store information + rxWord <= to_integer(rxData); + rxReceived <= '1'; + wait for 0 ns; + end process receiveRxD; + + ------------------------------------------------------------------------------ + -- receive RxD + receiveTxD: process + variable txData: unsigned(uartDataBitNb-1 downto 0); + begin + txReceived <= '0'; + -- start bit + wait until falling_edge(TxD); + wait for 1.5 * baudPeriod; + -- data bits + for index in txData'reverse_range loop + txData(index) := TxD; + wait for baudPeriod; + end loop; + -- store information + txWord <= to_integer(txData); + txReceived <= '1'; + wait for 0 ns; + end process receiveTxD; + + --============================================================================ + -- monitor acesses + startup <= '1', '0' after 1 ns; + + reportBusAccess: process(startup, rxReceived, txReceived) + begin + if startup = '1' then + monitorTransaction <= pad( + "idle", + monitorTransaction'length + ); + elsif rising_edge(rxReceived) then + monitorTransaction <= pad( + reportStart & " sent " & sprintf("%02X", rxWord), + monitorTransaction'length + ); + elsif rising_edge(txReceived) then + monitorTransaction <= pad( + reportStart & " received " & sprintf("%02X", txWord), + monitorTransaction'length + ); + end if; + end process reportBusAccess; + +END ARCHITECTURE RTL; diff --git a/Libs/RS232_test/hdl/uvmRs232_tester_test.vhd b/Libs/RS232_test/hdl/uvmRs232_tester_test.vhd new file mode 100644 index 0000000..4457cc9 --- /dev/null +++ b/Libs/RS232_test/hdl/uvmRs232_tester_test.vhd @@ -0,0 +1,92 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE test OF uvmRs232_tester IS + -- reset and clock + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + -- RS232 speed + constant rs232Period: time := (1.0/rs232BaudRate) * 1 sec; + -- RS232 Rx + signal rs232RxChar : character := ' '; + -- RS232 Tx + signal rs232TxString : string(1 to 32); + signal rs232SendString: std_uLogic; + signal rs232SendDone: std_uLogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= '1', '0' after 2*clockPeriod; + + clock_int <= not clock_int after clockPeriod/2; + clock <= transport clock_int after clockPeriod*9/10; + + ------------------------------------------------------------------------------ + -- Tx sequence + txSequence : process + begin + rs232SendString <= '0'; + rs232TxString <= (others => ' '); + wait for 500 us; + -- send 'Hi' + rs232TxString <= pad("Hi", rs232TxString'length); + rs232SendString <= '1', '0' after 1 ns; + wait until rs232SendDone = '1'; + -- end of transmission + wait; + end process txSequence; + + --============================================================================ + -- RS232 Rx + storeRxByte: process(clock_int) + begin + if rising_edge(clock_int) then + if dataValid = '1' then + rs232RxChar <= character'val(to_integer(unsigned(dataOut))); + end if; + end if; + end process storeRxByte; + + ------------------------------------------------------------------------------ + -- RS232 Tx + rsSendString: process + constant rs232CharPeriod : time := 15*rs232Period; + variable outStringRight: natural; + variable outchar: character; + begin + -- wait for command + send <= '0'; + dataIn <= (others => '0'); + rs232SendDone <= '0'; + wait until rising_edge(rs232SendString); + -- find string length + outStringRight := rs232TxString'right; + while rs232TxString(outStringRight) = ' ' loop + outStringRight := outStringRight-1; + end loop; + -- send characters + for index in rs232TxString'left to outStringRight loop + outchar := rs232TxString(index); + dataIn <= std_ulogic_vector(to_unsigned( + character'pos(outchar), dataIn'length + )); + wait until rising_edge(clock_int); + send <= '1', '0' after clockPeriod; + wait for rs232CharPeriod; + end loop; + -- send carriage return + outchar := cr; + dataIn <= std_ulogic_vector(to_unsigned( + character'pos(outchar), dataIn'length + )); + wait until rising_edge(clock_int); + send <= '1', '0' after clockPeriod; + wait for rs232CharPeriod; + -- signal end of sending + rs232SendDone <= '1'; + wait for 1 ns; + + end process rsSendString; + +END ARCHITECTURE test; diff --git a/Libs/RS232_test/hds/.hdlsidedata/_serialPortFIFO_tester_test.vhd._fpf b/Libs/RS232_test/hds/.hdlsidedata/_serialPortFIFO_tester_test.vhd._fpf new file mode 100644 index 0000000..80b1639 --- /dev/null +++ b/Libs/RS232_test/hds/.hdlsidedata/_serialPortFIFO_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +INCLUDE list { + DEFAULT atom 1 +} +DIALECT atom VHDL_2008 diff --git a/Libs/RS232_test/hds/.hdlsidedata/_serialPortTransmitter_tester_test.vhd._fpf b/Libs/RS232_test/hds/.hdlsidedata/_serialPortTransmitter_tester_test.vhd._fpf new file mode 100755 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RS232_test/hds/.hdlsidedata/_serialPortTransmitter_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Driver_sim.vhd._fpf b/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Driver_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Driver_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Monitor_sim.vhd._fpf b/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Monitor_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232Monitor_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232_tester_test.vhd._fpf b/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232_tester_test.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RS232_test/hds/.hdlsidedata/_uvmRs232_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RS232_test/hds/_serialportfifo_tb._epf b/Libs/RS232_test/hds/_serialportfifo_tb._epf new file mode 100644 index 0000000..8e1dd6d --- /dev/null +++ b/Libs/RS232_test/hds/_serialportfifo_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom serial@port@f@i@f@o_tb/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/RS232_test/hds/_serialportfifo_tester._epf b/Libs/RS232_test/hds/_serialportfifo_tester._epf new file mode 100644 index 0000000..9cfc040 --- /dev/null +++ b/Libs/RS232_test/hds/_serialportfifo_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom serialPortFIFO_tester_test.vhd diff --git a/Libs/RS232_test/hds/_serialporttransmitter_tb._epf b/Libs/RS232_test/hds/_serialporttransmitter_tb._epf new file mode 100755 index 0000000..69fb538 --- /dev/null +++ b/Libs/RS232_test/hds/_serialporttransmitter_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom serial@port@transmitter_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/RS232_test/hds/_serialporttransmitter_tester._epf b/Libs/RS232_test/hds/_serialporttransmitter_tester._epf new file mode 100755 index 0000000..9cb3368 --- /dev/null +++ b/Libs/RS232_test/hds/_serialporttransmitter_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom serialPortTransmitter_tester_test.vhd diff --git a/Libs/RS232_test/hds/_uvmrs232_tb._epf b/Libs/RS232_test/hds/_uvmrs232_tb._epf new file mode 100644 index 0000000..52115b7 --- /dev/null +++ b/Libs/RS232_test/hds/_uvmrs232_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom uvm@rs232_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/RS232_test/hds/_uvmrs232_tester._epf b/Libs/RS232_test/hds/_uvmrs232_tester._epf new file mode 100644 index 0000000..c4afa6f --- /dev/null +++ b/Libs/RS232_test/hds/_uvmrs232_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom uvmRs232_tester_test.vhd diff --git a/Libs/RS232_test/hds/_uvmrs232agenthw._epf b/Libs/RS232_test/hds/_uvmrs232agenthw._epf new file mode 100644 index 0000000..afd781a --- /dev/null +++ b/Libs/RS232_test/hds/_uvmrs232agenthw._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom uvm@rs232@agent@hw/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/Libs/RS232_test/hds/_uvmrs232driver._epf b/Libs/RS232_test/hds/_uvmrs232driver._epf new file mode 100644 index 0000000..62531b0 --- /dev/null +++ b/Libs/RS232_test/hds/_uvmrs232driver._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom uvmRs232Driver_sim.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/RS232_test/hds/_uvmrs232monitor._epf b/Libs/RS232_test/hds/_uvmrs232monitor._epf new file mode 100644 index 0000000..04878e4 --- /dev/null +++ b/Libs/RS232_test/hds/_uvmrs232monitor._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom uvmRs232Monitor_sim.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd b/Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd new file mode 100644 index 0000000..0250bc8 --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd @@ -0,0 +1,3430 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I1" +duLibraryName "RS232_test" +duName "serialPortFIFO_tester" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "baudRate" +type "real" +value "baudRate" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I0" +duLibraryName "RS232" +duName "serialPortFIFO" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/baudRate)" +) +] +mwi 0 +uid 6734,0 +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "serialPortFIFO_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:46:02" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortFIFO_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "13:46:02" +) +(vvPair +variable "unit" +value "serialPortFIFO_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,85000,102000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,85500,98800,86500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,85000,77000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "58750,85350,69250,86650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,91000,77000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,91500,72400,92500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,85000,83000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,85500,82000,86500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,87000,77000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,87500,72400,88500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,87000,56000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,87500,54800,88500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,89000,56000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,89500,54200,90500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,87000,102000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,87200,90400,88200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,89000,77000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,89500,74200,90500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,91000,56000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,91500,55400,92500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "51000,85000,102000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "22000,67000,80000,75000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "courier,12,1" +) +xt "22600,74900,32300,76300" +st "RS232_test" +blo "22600,76100" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "courier,12,1" +) +xt "22600,76300,39900,77700" +st "serialPortFIFO_tester" +blo "22600,77500" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "courier,12,1" +) +xt "22600,77700,25000,79100" +st "I1" +blo "22600,78900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "courier,9,0" +) +xt "23000,79600,48000,82300" +st "dataBitNb = dataBitNb ( positive ) +clockFrequency = clockFrequency ( real ) +baudRate = baudRate ( real ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "baudRate" +type "real" +value "baudRate" +) +] +) +) +*16 (SaComponent +uid 6734,0 +optionalChildren [ +*17 (CptPort +uid 6694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,46625,40000,47375" +) +tg (CPTG +uid 6696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6697,0 +va (VaSet +font "courier,9,0" +) +xt "41000,46400,43800,47600" +st "RxD" +blo "41000,47400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*18 (CptPort +uid 6698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6699,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,56625,40000,57375" +) +tg (CPTG +uid 6700,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6701,0 +va (VaSet +font "courier,9,0" +) +xt "41000,56400,44400,57600" +st "clock" +blo "41000,57400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 2,0 +) +) +) +*19 (CptPort +uid 6702,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6703,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,58625,40000,59375" +) +tg (CPTG +uid 6704,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6705,0 +va (VaSet +font "courier,9,0" +) +xt "41000,58400,44300,59600" +st "reset" +blo "41000,59400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*20 (CptPort +uid 6706,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6707,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,52625,40000,53375" +) +tg (CPTG +uid 6708,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6709,0 +va (VaSet +font "courier,9,0" +) +xt "41000,52400,43800,53600" +st "TxD" +blo "41000,53400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*21 (CptPort +uid 6710,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6711,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,48625,56750,49375" +) +tg (CPTG +uid 6712,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6713,0 +va (VaSet +font "courier,9,0" +) +xt "50100,48400,55000,49600" +st "rxEmpty" +ju 2 +blo "55000,49400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 5 +suid 6,0 +) +) +) +*22 (CptPort +uid 6714,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6715,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,54625,56750,55375" +) +tg (CPTG +uid 6716,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6717,0 +va (VaSet +font "courier,9,0" +) +xt "51500,54400,55000,55600" +st "txFull" +ju 2 +blo "55000,55400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 7,0 +) +) +) +*23 (CptPort +uid 6718,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6719,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,50625,56750,51375" +) +tg (CPTG +uid 6720,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6721,0 +va (VaSet +font "courier,9,0" +) +xt "52000,50400,55000,51600" +st "rxRd" +ju 2 +blo "55000,51400" +) +) +thePort (LogicalPort +decl (Decl +n "rxRd" +t "std_ulogic" +o 6 +suid 8,0 +) +) +) +*24 (CptPort +uid 6722,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6723,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,56625,56750,57375" +) +tg (CPTG +uid 6724,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6725,0 +va (VaSet +font "courier,9,0" +) +xt "52000,56400,55000,57600" +st "txWr" +ju 2 +blo "55000,57400" +) +) +thePort (LogicalPort +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 9,0 +) +) +) +*25 (CptPort +uid 6726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6727,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,46625,56750,47375" +) +tg (CPTG +uid 6728,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6729,0 +va (VaSet +font "courier,9,0" +) +xt "50900,46400,55000,47600" +st "rxData" +ju 2 +blo "55000,47400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 7 +suid 2011,0 +) +) +) +*26 (CptPort +uid 6730,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6731,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,52625,56750,53375" +) +tg (CPTG +uid 6732,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6733,0 +va (VaSet +font "courier,9,0" +) +xt "50900,52400,55000,53600" +st "txData" +ju 2 +blo "55000,53400" +) +) +thePort (LogicalPort +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 2012,0 +) +) +) +] +shape (Rectangle +uid 6735,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,43000,56000,61000" +) +oxt "40000,10000,56000,28000" +ttg (MlTextGroup +uid 6736,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*27 (Text +uid 6737,0 +va (VaSet +font "courier,9,1" +) +xt "40600,60800,44300,62000" +st "RS232" +blo "40600,61800" +tm "BdLibraryNameMgr" +) +*28 (Text +uid 6738,0 +va (VaSet +font "courier,9,1" +) +xt "40600,62000,49200,63200" +st "serialPortFIFO" +blo "40600,63000" +tm "CptNameMgr" +) +*29 (Text +uid 6739,0 +va (VaSet +font "courier,9,1" +) +xt "40600,63200,42300,64400" +st "I0" +blo "40600,64200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6740,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6741,0 +text (MLText +uid 6742,0 +va (VaSet +font "courier,8,0" +) +xt "40000,64600,74000,67300" +st "dataBitNb = dataBitNb ( positive ) +fifoDepth = fifoDepth ( positive ) +baudRateDivide = integer(clockFrequency/baudRate) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "fifoDepth" +type "positive" +value "fifoDepth" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/baudRate)" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*30 (Net +uid 6743,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 86,0 +) +declText (MLText +uid 6744,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL reset : std_ulogic" +) +) +*31 (Net +uid 6751,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 87,0 +) +declText (MLText +uid 6752,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL clock : std_ulogic" +) +) +*32 (Net +uid 6759,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 88,0 +) +declText (MLText +uid 6760,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL TxD : std_ulogic" +) +) +*33 (Net +uid 6767,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 89,0 +) +declText (MLText +uid 6768,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL RxD : std_ulogic" +) +) +*34 (Net +uid 6775,0 +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 90,0 +) +declText (MLText +uid 6776,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL txWr : std_ulogic" +) +) +*35 (Net +uid 6783,0 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 91,0 +) +declText (MLText +uid 6784,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL txFull : std_ulogic" +) +) +*36 (Net +uid 6791,0 +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 92,0 +) +declText (MLText +uid 6792,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,28500,900" +st "SIGNAL txData : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*37 (Net +uid 6799,0 +decl (Decl +n "rxRd" +t "std_ulogic" +o 7 +suid 93,0 +) +declText (MLText +uid 6800,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL rxRd : std_ulogic" +) +) +*38 (Net +uid 6807,0 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 6 +suid 94,0 +) +declText (MLText +uid 6808,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,14000,900" +st "SIGNAL rxEmpty : std_ulogic" +) +) +*39 (Net +uid 6815,0 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 95,0 +) +declText (MLText +uid 6816,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,28500,900" +st "SIGNAL rxData : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*40 (Wire +uid 6745,0 +shape (OrthoPolyLine +uid 6746,0 +va (VaSet +vasetType 3 +) +xt "38000,59000,39250,67000" +pts [ +"39250,59000" +"38000,59000" +"38000,67000" +] +) +start &19 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6749,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6750,0 +va (VaSet +font "courier,12,0" +) +xt "34250,57600,37750,58900" +st "reset" +blo "34250,58600" +tm "WireNameMgr" +) +) +on &30 +) +*41 (Wire +uid 6753,0 +shape (OrthoPolyLine +uid 6754,0 +va (VaSet +vasetType 3 +) +xt "36000,57000,39250,67000" +pts [ +"39250,57000" +"36000,57000" +"36000,67000" +] +) +start &18 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6757,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6758,0 +va (VaSet +font "courier,12,0" +) +xt "34250,55600,37750,56900" +st "clock" +blo "34250,56600" +tm "WireNameMgr" +) +) +on &31 +) +*42 (Wire +uid 6761,0 +shape (OrthoPolyLine +uid 6762,0 +va (VaSet +vasetType 3 +) +xt "32000,53000,39250,67000" +pts [ +"39250,53000" +"32000,53000" +"32000,67000" +] +) +start &20 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6765,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6766,0 +va (VaSet +font "courier,12,0" +) +xt "35250,51600,37350,52900" +st "TxD" +blo "35250,52600" +tm "WireNameMgr" +) +) +on &32 +) +*43 (Wire +uid 6769,0 +shape (OrthoPolyLine +uid 6770,0 +va (VaSet +vasetType 3 +) +xt "30000,47000,39250,67000" +pts [ +"39250,47000" +"30000,47000" +"30000,67000" +] +) +start &17 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6773,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6774,0 +va (VaSet +font "courier,12,0" +) +xt "35250,45600,37350,46900" +st "RxD" +blo "35250,46600" +tm "WireNameMgr" +) +) +on &33 +) +*44 (Wire +uid 6777,0 +shape (OrthoPolyLine +uid 6778,0 +va (VaSet +vasetType 3 +) +xt "56750,57000,60000,67000" +pts [ +"56750,57000" +"60000,57000" +"60000,67000" +] +) +start &24 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6781,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6782,0 +va (VaSet +font "courier,12,0" +) +xt "58750,55600,61550,56900" +st "txWr" +blo "58750,56600" +tm "WireNameMgr" +) +) +on &34 +) +*45 (Wire +uid 6785,0 +shape (OrthoPolyLine +uid 6786,0 +va (VaSet +vasetType 3 +) +xt "56750,55000,62000,67000" +pts [ +"56750,55000" +"62000,55000" +"62000,67000" +] +) +start &22 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6789,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6790,0 +va (VaSet +font "courier,12,0" +) +xt "58750,53600,62950,54900" +st "txFull" +blo "58750,54600" +tm "WireNameMgr" +) +) +on &35 +) +*46 (Wire +uid 6793,0 +shape (OrthoPolyLine +uid 6794,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "56750,53000,64000,67000" +pts [ +"56750,53000" +"64000,53000" +"64000,67000" +] +) +start &26 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6797,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6798,0 +va (VaSet +font "courier,12,0" +) +xt "58750,51600,62950,52900" +st "txData" +blo "58750,52600" +tm "WireNameMgr" +) +) +on &36 +) +*47 (Wire +uid 6801,0 +shape (OrthoPolyLine +uid 6802,0 +va (VaSet +vasetType 3 +) +xt "56750,51000,68000,67000" +pts [ +"56750,51000" +"68000,51000" +"68000,67000" +] +) +start &23 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6805,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6806,0 +va (VaSet +font "courier,12,0" +) +xt "58750,49600,61550,50900" +st "rxRd" +blo "58750,50600" +tm "WireNameMgr" +) +) +on &37 +) +*48 (Wire +uid 6809,0 +shape (OrthoPolyLine +uid 6810,0 +va (VaSet +vasetType 3 +) +xt "56750,49000,70000,67000" +pts [ +"56750,49000" +"70000,49000" +"70000,67000" +] +) +start &21 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6813,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6814,0 +va (VaSet +font "courier,12,0" +) +xt "58750,47600,63650,48900" +st "rxEmpty" +blo "58750,48600" +tm "WireNameMgr" +) +) +on &38 +) +*49 (Wire +uid 6817,0 +shape (OrthoPolyLine +uid 6818,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "56750,47000,72000,67000" +pts [ +"56750,47000" +"72000,47000" +"72000,67000" +] +) +start &25 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6821,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6822,0 +va (VaSet +font "courier,12,0" +) +xt "58750,45600,62950,46900" +st "rxData" +blo "58750,46600" +tm "WireNameMgr" +) +) +on &39 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *50 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 1297,0 +va (VaSet +font "courier,12,0" +) +xt "-7000,19600,2500,21000" +st "Package List" +blo "-7000,20800" +) +*52 (MLText +uid 1298,0 +va (VaSet +) +xt "-7000,21000,11600,24000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*54 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*55 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*56 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*57 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*58 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*59 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "54,-8,1688,1058" +viewArea "-8576,18017,106655,94974" +cachedDiagramExtent "-7000,0,102000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 7057,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*61 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*62 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*64 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*65 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*67 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*68 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*70 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*71 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*73 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*74 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*76 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,1400,2700" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,12,0" +) +xt "0,0,6300,1300" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,12600,2700" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,17400,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*78 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,10800,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*80 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,25200,1600,26400" +st "Declarations" +blo "-7000,26200" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,26400,-2800,27600" +st "Ports:" +blo "-7000,27400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,26400,-1000,27600" +st "Pre User:" +blo "-7000,27400" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,27600,19600,31600" +st "constant clockFrequency: real := 66.0E6; +constant baudRate: real := 16.0*9600.0; +constant dataBitNb: positive := 8; +constant fifoDepth: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,26400,4000,27600" +st "Diagram Signals:" +blo "-7000,27400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,26400,300,27600" +st "Post User:" +blo "-7000,27400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-5000,40800,-5000,40800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 95,0 +usingSuid 1 +emptyRow *81 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*82 (RefLabelRowHdr +) +*83 (TitleRowHdr +) +*84 (FilterRowHdr +) +*85 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*86 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*87 (GroupColHdr +tm "GroupColHdrMgr" +) +*88 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*89 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*90 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*91 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*92 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*93 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*94 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 86,0 +) +) +uid 6823,0 +) +*95 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 87,0 +) +) +uid 6825,0 +) +*96 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 88,0 +) +) +uid 6827,0 +) +*97 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 89,0 +) +) +uid 6829,0 +) +*98 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 90,0 +) +) +uid 6831,0 +) +*99 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 91,0 +) +) +uid 6833,0 +) +*100 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 92,0 +) +) +uid 6835,0 +) +*101 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxRd" +t "std_ulogic" +o 7 +suid 93,0 +) +) +uid 6837,0 +) +*102 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 6 +suid 94,0 +) +) +uid 6839,0 +) +*103 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 95,0 +) +) +uid 6841,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*104 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *105 (MRCItem +litem &81 +pos 10 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*106 (MRCItem +litem &82 +pos 0 +dimension 20 +uid 3326,0 +) +*107 (MRCItem +litem &83 +pos 1 +dimension 23 +uid 3327,0 +) +*108 (MRCItem +litem &84 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*109 (MRCItem +litem &94 +pos 0 +dimension 20 +uid 6824,0 +) +*110 (MRCItem +litem &95 +pos 1 +dimension 20 +uid 6826,0 +) +*111 (MRCItem +litem &96 +pos 2 +dimension 20 +uid 6828,0 +) +*112 (MRCItem +litem &97 +pos 3 +dimension 20 +uid 6830,0 +) +*113 (MRCItem +litem &98 +pos 4 +dimension 20 +uid 6832,0 +) +*114 (MRCItem +litem &99 +pos 5 +dimension 20 +uid 6834,0 +) +*115 (MRCItem +litem &100 +pos 6 +dimension 20 +uid 6836,0 +) +*116 (MRCItem +litem &101 +pos 7 +dimension 20 +uid 6838,0 +) +*117 (MRCItem +litem &102 +pos 8 +dimension 20 +uid 6840,0 +) +*118 (MRCItem +litem &103 +pos 9 +dimension 20 +uid 6842,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*119 (MRCItem +litem &85 +pos 0 +dimension 20 +uid 3330,0 +) +*120 (MRCItem +litem &87 +pos 1 +dimension 50 +uid 3331,0 +) +*121 (MRCItem +litem &88 +pos 2 +dimension 100 +uid 3332,0 +) +*122 (MRCItem +litem &89 +pos 3 +dimension 50 +uid 3333,0 +) +*123 (MRCItem +litem &90 +pos 4 +dimension 100 +uid 3334,0 +) +*124 (MRCItem +litem &91 +pos 5 +dimension 100 +uid 3335,0 +) +*125 (MRCItem +litem &92 +pos 6 +dimension 50 +uid 3336,0 +) +*126 (MRCItem +litem &93 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *127 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*128 (RefLabelRowHdr +) +*129 (TitleRowHdr +) +*130 (FilterRowHdr +) +*131 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*132 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*133 (GroupColHdr +tm "GroupColHdrMgr" +) +*134 (NameColHdr +tm "GenericNameColHdrMgr" +) +*135 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*136 (InitColHdr +tm "GenericValueColHdrMgr" +) +*137 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*138 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*139 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *140 (MRCItem +litem &127 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*141 (MRCItem +litem &128 +pos 0 +dimension 20 +uid 3354,0 +) +*142 (MRCItem +litem &129 +pos 1 +dimension 23 +uid 3355,0 +) +*143 (MRCItem +litem &130 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*144 (MRCItem +litem &131 +pos 0 +dimension 20 +uid 3358,0 +) +*145 (MRCItem +litem &133 +pos 1 +dimension 50 +uid 3359,0 +) +*146 (MRCItem +litem &134 +pos 2 +dimension 100 +uid 3360,0 +) +*147 (MRCItem +litem &135 +pos 3 +dimension 100 +uid 3361,0 +) +*148 (MRCItem +litem &136 +pos 4 +dimension 50 +uid 3362,0 +) +*149 (MRCItem +litem &137 +pos 5 +dimension 50 +uid 3363,0 +) +*150 (MRCItem +litem &138 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb b/Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb new file mode 100644 index 0000000..08bef15 --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "serialPortFIFO_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:46:02" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortFIFO_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:46:02" +) +(vvPair +variable "unit" +value "serialPortFIFO_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,36550,22900" +st "RS232_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,40750,23900" +st "serialPortFIFO_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,45200,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface b/Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface new file mode 100644 index 0000000..ce5a3bc --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface @@ -0,0 +1,1988 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 123,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 21,0 +) +) +uid 396,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 22,0 +) +) +uid 398,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 23,0 +) +) +uid 400,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 24,0 +) +) +uid 402,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 6 +suid 25,0 +) +) +uid 404,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "rxRd" +t "std_ulogic" +o 7 +suid 26,0 +) +) +uid 406,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 27,0 +) +) +uid 408,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 28,0 +) +) +uid 410,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 29,0 +) +) +uid 412,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 30,0 +) +) +uid 414,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 10 +dimension 20 +) +uid 138,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 139,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 140,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 397,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 399,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 401,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 403,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 405,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 407,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 409,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 411,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 413,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 415,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 143,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 144,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 145,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 146,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 147,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 148,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 149,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 150,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 122,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 152,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "8" +) +uid 201,0 +) +*60 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "66.0E6" +) +uid 203,0 +) +*61 (LogGeneric +generic (GiElement +name "baudRate" +type "real" +value "9600.0" +) +uid 205,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*62 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *63 (MRCItem +litem &47 +pos 3 +dimension 20 +) +uid 166,0 +optionalChildren [ +*64 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 167,0 +) +*65 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 168,0 +) +*66 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*67 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 202,0 +) +*68 (MRCItem +litem &60 +pos 1 +dimension 20 +uid 204,0 +) +*69 (MRCItem +litem &61 +pos 2 +dimension 20 +uid 206,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*70 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 171,0 +) +*71 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 172,0 +) +*72 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 173,0 +) +*73 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 174,0 +) +*74 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 175,0 +) +*75 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 176,0 +) +*76 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 177,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 151,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tester" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "serialPortFIFO_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:46:02" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortFIFO_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_ISEPath" +value "D:\\Labs\\ElN\\BoardTester\\Board\\ise" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "C:\\EDA\\Modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:46:02" +) +(vvPair +variable "unit" +value "serialPortFIFO_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 121,0 +optionalChildren [ +*77 (SymbolBody +uid 8,0 +optionalChildren [ +*78 (CptPort +uid 346,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 347,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 348,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 349,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "28550,7000,29450,9500" +st "clock" +ju 2 +blo "29250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 350,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6500,59500,7400" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 21,0 +) +) +) +*79 (CptPort +uid 351,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 352,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 353,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 354,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,9500" +st "reset" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 355,0 +va (VaSet +font "courier,8,0" +) +xt "44000,7400,59500,8300" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 22,0 +) +) +) +*80 (CptPort +uid 356,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 357,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 358,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 359,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,8500" +st "RxD" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 360,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5600,59500,6500" +st "RxD : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 23,0 +) +) +) +*81 (CptPort +uid 361,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 362,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64625,5250,65375,6000" +) +tg (CPTG +uid 363,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 364,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "64550,7000,65450,10000" +st "rxData" +ju 2 +blo "65250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 365,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2900,74000,3800" +st "rxData : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "rxData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 24,0 +) +) +) +*82 (CptPort +uid 366,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 367,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62625,5250,63375,6000" +) +tg (CPTG +uid 368,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 369,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "62550,7000,63450,10500" +st "rxEmpty" +ju 2 +blo "63250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 370,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3800,59500,4700" +st "rxEmpty : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "rxEmpty" +t "std_ulogic" +o 6 +suid 25,0 +) +) +) +*83 (CptPort +uid 371,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 372,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,5250,61375,6000" +) +tg (CPTG +uid 373,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 374,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "60550,7000,61450,9000" +st "rxRd" +ju 2 +blo "61250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 375,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8300,59500,9200" +st "rxRd : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "rxRd" +t "std_ulogic" +o 7 +suid 26,0 +) +) +) +*84 (CptPort +uid 376,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 377,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 378,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 379,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,8500" +st "TxD" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 380,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2000,59500,2900" +st "TxD : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 27,0 +) +) +) +*85 (CptPort +uid 381,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 382,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56625,5250,57375,6000" +) +tg (CPTG +uid 383,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 384,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "56550,7000,57450,10000" +st "txData" +ju 2 +blo "57250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 385,0 +va (VaSet +font "courier,8,0" +) +xt "44000,9200,74000,10100" +st "txData : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txData" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 8 +suid 28,0 +) +) +) +*86 (CptPort +uid 386,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 387,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 388,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 389,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "54550,7000,55450,10000" +st "txFull" +ju 2 +blo "55250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 390,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4700,59500,5600" +st "txFull : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "txFull" +t "std_ulogic" +o 9 +suid 29,0 +) +) +) +*87 (CptPort +uid 391,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 392,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52625,5250,53375,6000" +) +tg (CPTG +uid 393,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 394,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "52550,7000,53450,9000" +st "txWr" +ju 2 +blo "53250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 395,0 +va (VaSet +font "courier,8,0" +) +xt "44000,10100,58500,11000" +st "txWr : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txWr" +t "std_ulogic" +o 10 +suid 30,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,73000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "38500,9100,44000,10000" +st "RS232_test" +blo "38500,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "38500,10000,49500,10900" +st "serialPortFIFO_tester" +blo "38500,10700" +) +) +gi *88 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "20000,6000,36500,10500" +st "Generic Declarations + +dataBitNb positive 8 +clockFrequency real 66.0E6 +baudRate real 9600.0 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "8" +) +(GiElement +name "clockFrequency" +type "real" +value "66.0E6" +) +(GiElement +name "baudRate" +type "real" +value "9600.0" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*89 (Grouping +uid 16,0 +optionalChildren [ +*90 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,52400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,59000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,46400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *100 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*101 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*102 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "30,73,1194,622" +viewArea "-500,-500,84550,36130" +cachedDiagramExtent "0,0,75500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "RS232_test" +entityName "serialPortFIFO_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *103 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *104 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,11000,44500,11900" +st "User:" +blo "42000,11700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,11900,44000,11900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 415,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RS232_test/hds/serial@port@transmitter_tb/_struct.bd._fpf b/Libs/RS232_test/hds/serial@port@transmitter_tb/_struct.bd._fpf new file mode 100755 index 0000000..f9fd1de --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@transmitter_tb/_struct.bd._fpf @@ -0,0 +1,9 @@ +ARCHITECTURES list { + {serialporttransmitter_tb struct} list { + TASK_SETTINGS list { + PLUGIN_SETTINGS list { + ModelSimSimulator atom {TaskSetting Arguments {} TaskSetting Communication 1 TaskSetting DelaySelection typ TaskSetting GlitchGeneration 1 TaskSetting InitCmd {$SIMULATION_DIR/serialPortTransmitter.do} TaskSetting LogFile {} TaskSetting RemoteHost {} TaskSetting Resolution ps TaskSetting SdfDelay typ TaskSetting SdfMultiSrcDelay latest TaskSetting SdfReduce 0 TaskSetting SdfWarnings 1 TaskSetting TimingChecks 1 TaskSetting UseBatch 0 TaskSetting UseCLI 0 TaskSetting UseGUI 1 TaskSetting VitalVersion 95 TaskSetting autoNames 1 TaskSetting coverage 0 TaskSetting excludePSL 0 TaskSetting exepath %task_ModelSimPath TaskSetting minimumSimSetting 0 TaskSetting saveReplayScript 0 TaskSetting useCustomSimDir 0} + } + } + } +} diff --git a/Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd b/Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd new file mode 100644 index 0000000..c23de7a --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd @@ -0,0 +1,2995 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "RS232_test" +duName "serialPortTransmitter_tester" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "baudRate" +type "real" +value "baudRate" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "stopBitNb" +type "positive" +value "stopBitNb" +) +] +mwi 0 +uid 1774,0 +) +(Instance +name "I_DUT" +duLibraryName "RS232" +duName "serialPortTransmitter" +elements [ +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/baudRate)" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "stopBitNb" +type "positive" +value "stopBitNb" +) +] +mwi 0 +uid 7225,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.3 (Build 4)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serialPortTransmitter_tb" +) +(vvPair +variable "date" +value "08/07/23" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "serialPortTransmitter_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/07/23" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Hyperion" +) +(vvPair +variable "graphical_source_time" +value "15:47:43" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Hyperion" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortTransmitter_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serialPortTransmitter_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:47:43" +) +(vvPair +variable "unit" +value "serialPortTransmitter_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "83000,85000,102000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "83200,85500,98800,86500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,85000,77000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "58750,85350,69250,86650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,91000,77000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,91500,72400,92500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,85000,83000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,85500,82000,86500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,87000,77000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,87500,72400,88500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,87000,56000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,87500,54800,88500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,89000,56000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,89500,54200,90500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "77000,87000,102000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "77200,87200,90400,88200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "56000,89000,77000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "56200,89500,66400,90500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,91000,56000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,91500,55400,92500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "51000,85000,102000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Blk +uid 1774,0 +shape (Rectangle +uid 1775,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "20000,67000,68000,75000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1776,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1777,0 +va (VaSet +font "courier,12,1" +) +xt "20600,74900,28300,76200" +st "RS232_test" +blo "20600,75900" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1778,0 +va (VaSet +font "courier,12,1" +) +xt "20600,76200,40900,77500" +st "serialPortTransmitter_tester" +blo "20600,77200" +tm "BlkNameMgr" +) +*15 (Text +uid 1779,0 +va (VaSet +font "courier,12,1" +) +xt "20600,77500,26200,78800" +st "I_tester" +blo "20600,78500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1780,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1781,0 +text (MLText +uid 1782,0 +va (VaSet +font "courier,9,0" +) +xt "20000,79300,45000,82900" +st "clockFrequency = clockFrequency ( real ) +baudRate = baudRate ( real ) +dataBitNb = dataBitNb ( positive ) +stopBitNb = stopBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "baudRate" +type "real" +value "baudRate" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "stopBitNb" +type "positive" +value "stopBitNb" +) +] +) +) +*16 (Net +uid 6743,0 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 86,0 +) +declText (MLText +uid 6744,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 6751,0 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 87,0 +) +declText (MLText +uid 6752,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL clock : std_ulogic" +) +) +*18 (Net +uid 6759,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 88,0 +) +declText (MLText +uid 6760,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL TxD : std_ulogic" +) +) +*19 (Net +uid 7177,0 +decl (Decl +n "busy" +t "std_ulogic" +o 4 +suid 96,0 +) +declText (MLText +uid 7178,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL busy : std_ulogic" +) +) +*20 (Net +uid 7185,0 +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 97,0 +) +declText (MLText +uid 7186,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,13500,900" +st "SIGNAL send : std_ulogic" +) +) +*21 (Net +uid 7193,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 98,0 +) +declText (MLText +uid 7194,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,0,28000,900" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*22 (SaComponent +uid 7225,0 +optionalChildren [ +*23 (CptPort +uid 7201,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7202,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,46625,56750,47375" +) +tg (CPTG +uid 7203,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7204,0 +va (VaSet +font "courier,9,0" +) +xt "53500,46400,55000,47300" +st "TxD" +ju 2 +blo "55000,47100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*24 (CptPort +uid 7205,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7206,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,54625,40000,55375" +) +tg (CPTG +uid 7207,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7208,0 +va (VaSet +font "courier,9,0" +) +xt "41000,54400,43500,55300" +st "clock" +blo "41000,55100" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*25 (CptPort +uid 7209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,56625,40000,57375" +) +tg (CPTG +uid 7211,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7212,0 +va (VaSet +font "courier,9,0" +) +xt "41000,56400,43500,57300" +st "reset" +blo "41000,57100" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*26 (CptPort +uid 7213,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7214,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,46625,40000,47375" +) +tg (CPTG +uid 7215,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7216,0 +va (VaSet +font "courier,9,0" +) +xt "40999,46400,43999,47300" +st "dataIn" +blo "40999,47100" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*27 (CptPort +uid 7217,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7218,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,48625,40000,49375" +) +tg (CPTG +uid 7219,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7220,0 +va (VaSet +font "courier,9,0" +) +xt "41000,48400,43000,49300" +st "send" +blo "41000,49100" +) +) +thePort (LogicalPort +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*28 (CptPort +uid 7221,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7222,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "39250,50625,40000,51375" +) +tg (CPTG +uid 7223,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7224,0 +va (VaSet +font "courier,9,0" +) +xt "41000,50400,43000,51300" +st "busy" +blo "41000,51100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "busy" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 7226,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "40000,43000,56000,59000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 7227,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*29 (Text +uid 7228,0 +va (VaSet +font "courier,9,1" +) +xt "40600,58800,43100,59700" +st "RS232" +blo "40600,59500" +tm "BdLibraryNameMgr" +) +*30 (Text +uid 7229,0 +va (VaSet +font "courier,9,1" +) +xt "40600,59700,51600,60600" +st "serialPortTransmitter" +blo "40600,60400" +tm "CptNameMgr" +) +*31 (Text +uid 7230,0 +va (VaSet +font "courier,9,1" +) +xt "40600,60600,43100,61500" +st "I_DUT" +blo "40600,61300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7231,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7232,0 +text (MLText +uid 7233,0 +va (VaSet +font "courier,8,0" +) +xt "40000,61800,74000,64500" +st "baudRateDivide = integer(clockFrequency/baudRate) ( positive ) +dataBitNb = dataBitNb ( positive ) +stopBitNb = stopBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/baudRate)" +) +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "stopBitNb" +type "positive" +value "stopBitNb" +) +] +) +ordering 1 +connectByName 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*32 (Wire +uid 6745,0 +shape (OrthoPolyLine +uid 6746,0 +va (VaSet +vasetType 3 +) +xt "38000,57000,39250,67000" +pts [ +"39250,57000" +"38000,57000" +"38000,67000" +] +) +start &25 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6749,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6750,0 +va (VaSet +font "courier,12,0" +) +xt "34250,55600,37750,56900" +st "reset" +blo "34250,56600" +tm "WireNameMgr" +) +) +on &16 +) +*33 (Wire +uid 6753,0 +shape (OrthoPolyLine +uid 6754,0 +va (VaSet +vasetType 3 +) +xt "36000,55000,39250,67000" +pts [ +"39250,55000" +"36000,55000" +"36000,67000" +] +) +start &24 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6757,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6758,0 +va (VaSet +font "courier,12,0" +) +xt "34250,53600,37750,54900" +st "clock" +blo "34250,54600" +tm "WireNameMgr" +) +) +on &17 +) +*34 (Wire +uid 6761,0 +shape (OrthoPolyLine +uid 6762,0 +va (VaSet +vasetType 3 +) +xt "56750,47000,60000,67000" +pts [ +"56750,47000" +"60000,47000" +"60000,67000" +] +) +start &23 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 6765,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 6766,0 +va (VaSet +font "courier,12,0" +) +xt "58000,45700,60100,47000" +st "TxD" +blo "58000,46700" +tm "WireNameMgr" +) +) +on &18 +) +*35 (Wire +uid 7179,0 +shape (OrthoPolyLine +uid 7180,0 +va (VaSet +vasetType 3 +) +xt "32000,51000,39250,67000" +pts [ +"39250,51000" +"32000,51000" +"32000,67000" +] +) +start &28 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7183,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7184,0 +va (VaSet +font "courier,12,0" +) +xt "35250,49700,38050,51000" +st "busy" +blo "35250,50700" +tm "WireNameMgr" +) +) +on &19 +) +*36 (Wire +uid 7187,0 +shape (OrthoPolyLine +uid 7188,0 +va (VaSet +vasetType 3 +) +xt "30000,49000,39250,67000" +pts [ +"39250,49000" +"30000,49000" +"30000,67000" +] +) +start &27 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7191,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7192,0 +va (VaSet +font "courier,12,0" +) +xt "35250,47700,38050,49000" +st "send" +blo "35250,48700" +tm "WireNameMgr" +) +) +on &20 +) +*37 (Wire +uid 7195,0 +shape (OrthoPolyLine +uid 7196,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "28000,47000,39250,67000" +pts [ +"39250,47000" +"28000,47000" +"28000,67000" +] +) +start &26 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7199,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7200,0 +va (VaSet +font "courier,12,0" +) +xt "34250,45700,38450,47000" +st "dataIn" +blo "34250,46700" +tm "WireNameMgr" +) +) +on &21 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *38 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 1297,0 +va (VaSet +font "courier,12,0" +) +xt "-7000,19600,2500,21000" +st "Package List" +blo "-7000,20800" +) +*40 (MLText +uid 1298,0 +va (VaSet +) +xt "-7000,21000,11600,24000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*42 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*43 (MLText +uid 193,0 +va (VaSet +isHidden 1 +) +xt "20000,2800,32000,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*44 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*45 (MLText +uid 195,0 +va (VaSet +isHidden 1 +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*46 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*47 (MLText +uid 197,0 +va (VaSet +isHidden 1 +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "102,1158,1352,2093" +viewArea "-8635,18017,104239,99128" +cachedDiagramExtent "-7000,0,102000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,19000" +lastUid 7274,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +) +xt "1000,1000,3300,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,2550,7900,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*49 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,3950,7000,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*50 (Text +va (VaSet +font "courier,12,1" +) +xt "1500,5350,3000,6750" +st "I0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +va (VaSet +) +xt "-100,3000,2200,4000" +st "Library" +blo "-100,3800" +) +*52 (Text +va (VaSet +) +xt "-100,4000,5900,5000" +st "MWComponent" +blo "-100,4800" +) +*53 (Text +va (VaSet +) +xt "-100,5000,500,6000" +st "I0" +blo "-100,5800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +va (VaSet +) +xt "-350,2550,1950,3550" +st "Library" +blo "-350,3350" +tm "BdLibraryNameMgr" +) +*55 (Text +va (VaSet +) +xt "-350,3550,5150,4550" +st "SaComponent" +blo "-350,4350" +tm "CptNameMgr" +) +*56 (Text +va (VaSet +) +xt "-350,4550,250,5550" +st "I0" +blo "-350,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +va (VaSet +) +xt "-850,2550,1450,3550" +st "Library" +blo "-850,3350" +) +*58 (Text +va (VaSet +) +xt "-850,3550,5250,4550" +st "VhdlComponent" +blo "-850,4350" +) +*59 (Text +va (VaSet +) +xt "-850,4550,-250,5550" +st "I0" +blo "-850,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +va (VaSet +) +xt "-1600,2550,700,3550" +st "Library" +blo "-1600,3350" +) +*61 (Text +va (VaSet +) +xt "-1600,3550,5500,4550" +st "VerilogComponent" +blo "-1600,4350" +) +*62 (Text +va (VaSet +) +xt "-1600,4550,-1000,5550" +st "I0" +blo "-1600,5350" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,9,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +) +xt "2950,3400,4150,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*64 (Text +va (VaSet +) +xt "2950,4400,3350,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "SignalTypeMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +s (Text +va (VaSet +) +xt "3000,500,3000,500" +blo "3000,500" +tm "SignalTypeMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineStyle 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,5100,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,1400,2700" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +font "courier,12,0" +) +xt "0,0,6300,1300" +st "Auto list" +) +second (MLText +va (VaSet +font "courier,12,0" +) +xt "0,1400,12600,2700" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,17400,-400" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*66 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,10800,-400" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "200,300,600,1300" +st "1" +blo "200,1100" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +va (VaSet +font "courier,9,1" +) +xt "11800,20000,22600,21200" +st "Frame Declarations" +blo "11800,21000" +) +*68 (MLText +va (VaSet +) +xt "11800,21200,11800,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,750,2600,2150" +st "Port" +blo "0,1950" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,25200,1600,26400" +st "Declarations" +blo "-7000,26200" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,26400,-2800,27600" +st "Ports:" +blo "-7000,27400" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "-7000,26400,-1000,27600" +st "Pre User:" +blo "-7000,27400" +) +preUserText (MLText +uid 5,0 +va (VaSet +) +xt "-5000,27600,19600,31600" +st "constant clockFrequency: real := 66.0E6; +constant baudRate: real := 16.0*9600.0; +constant dataBitNb: positive := 8; +constant stopBitNb: positive := 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,26400,4000,27600" +st "Diagram Signals:" +blo "-7000,27400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "-7000,26400,300,27600" +st "Post User:" +blo "-7000,27400" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +) +xt "-5000,40800,-5000,40800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 98,0 +usingSuid 1 +emptyRow *69 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*70 (RefLabelRowHdr +) +*71 (TitleRowHdr +) +*72 (FilterRowHdr +) +*73 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*74 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*75 (GroupColHdr +tm "GroupColHdrMgr" +) +*76 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*77 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*78 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*79 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*80 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*81 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*82 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 86,0 +) +) +uid 6823,0 +) +*83 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 87,0 +) +) +uid 6825,0 +) +*84 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 88,0 +) +) +uid 6827,0 +) +*85 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "busy" +t "std_ulogic" +o 4 +suid 96,0 +) +) +uid 7234,0 +) +*86 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 97,0 +) +) +uid 7236,0 +) +*87 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 98,0 +) +) +uid 7238,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*88 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *89 (MRCItem +litem &69 +pos 6 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*90 (MRCItem +litem &70 +pos 0 +dimension 20 +uid 3326,0 +) +*91 (MRCItem +litem &71 +pos 1 +dimension 23 +uid 3327,0 +) +*92 (MRCItem +litem &72 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*93 (MRCItem +litem &82 +pos 0 +dimension 20 +uid 6824,0 +) +*94 (MRCItem +litem &83 +pos 1 +dimension 20 +uid 6826,0 +) +*95 (MRCItem +litem &84 +pos 2 +dimension 20 +uid 6828,0 +) +*96 (MRCItem +litem &85 +pos 3 +dimension 20 +uid 7235,0 +) +*97 (MRCItem +litem &86 +pos 4 +dimension 20 +uid 7237,0 +) +*98 (MRCItem +litem &87 +pos 5 +dimension 20 +uid 7239,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*99 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 3330,0 +) +*100 (MRCItem +litem &75 +pos 1 +dimension 50 +uid 3331,0 +) +*101 (MRCItem +litem &76 +pos 2 +dimension 100 +uid 3332,0 +) +*102 (MRCItem +litem &77 +pos 3 +dimension 50 +uid 3333,0 +) +*103 (MRCItem +litem &78 +pos 4 +dimension 100 +uid 3334,0 +) +*104 (MRCItem +litem &79 +pos 5 +dimension 100 +uid 3335,0 +) +*105 (MRCItem +litem &80 +pos 6 +dimension 50 +uid 3336,0 +) +*106 (MRCItem +litem &81 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *107 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*108 (RefLabelRowHdr +) +*109 (TitleRowHdr +) +*110 (FilterRowHdr +) +*111 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*112 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*113 (GroupColHdr +tm "GroupColHdrMgr" +) +*114 (NameColHdr +tm "GenericNameColHdrMgr" +) +*115 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*116 (InitColHdr +tm "GenericValueColHdrMgr" +) +*117 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*118 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*119 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *120 (MRCItem +litem &107 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*121 (MRCItem +litem &108 +pos 0 +dimension 20 +uid 3354,0 +) +*122 (MRCItem +litem &109 +pos 1 +dimension 23 +uid 3355,0 +) +*123 (MRCItem +litem &110 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*124 (MRCItem +litem &111 +pos 0 +dimension 20 +uid 3358,0 +) +*125 (MRCItem +litem &113 +pos 1 +dimension 50 +uid 3359,0 +) +*126 (MRCItem +litem &114 +pos 2 +dimension 100 +uid 3360,0 +) +*127 (MRCItem +litem &115 +pos 3 +dimension 100 +uid 3361,0 +) +*128 (MRCItem +litem &116 +pos 4 +dimension 50 +uid 3362,0 +) +*129 (MRCItem +litem &117 +pos 5 +dimension 50 +uid 3363,0 +) +*130 (MRCItem +litem &118 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RS232_test/hds/serial@port@transmitter_tb/symbol.sb b/Libs/RS232_test/hds/serial@port@transmitter_tb/symbol.sb new file mode 100644 index 0000000..08bef15 --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@transmitter_tb/symbol.sb @@ -0,0 +1,1256 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tb" +) +(vvPair +variable "date" +value "08/28/19" +) +(vvPair +variable "day" +value "Wed" +) +(vvPair +variable "day_long" +value "Wednesday" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "serialPortFIFO_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/28/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:46:02" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/RS232/work" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortFIFO_tb" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serial@port@f@i@f@o_tb/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Kart/eln_kart/04-Controller/../Libs/RS232_test/hds/serialPortFIFO_tb/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:46:02" +) +(vvPair +variable "unit" +value "serialPortFIFO_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,36550,22900" +st "RS232_test" +blo "29950,22700" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,22900,40750,23900" +st "serialPortFIFO_tb" +blo "29950,23700" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,27600,42500,28500" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41500,69800,42500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "courier,12,1" +) +xt "29750,41350,40250,42650" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47500,41000,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41500,53000,42500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43500,43400,44500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43500,25800,44500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45500,25200,46500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,61400,44200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45500,45200,46500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47500,26400,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "courier,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "courier,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,5800,3000,6800" +st "User:" +blo "0,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,6800,2000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/Libs/RS232_test/hds/serial@port@transmitter_tester/interface b/Libs/RS232_test/hds/serial@port@transmitter_tester/interface new file mode 100644 index 0000000..4f28779 --- /dev/null +++ b/Libs/RS232_test/hds/serial@port@transmitter_tester/interface @@ -0,0 +1,1755 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 95,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "busy" +t "std_ulogic" +o 4 +suid 7,0 +) +) +uid 234,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 8,0 +) +) +uid 236,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +uid 238,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 10,0 +) +) +uid 240,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 11,0 +) +) +uid 242,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 12,0 +) +) +uid 244,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 110,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 111,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 112,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 235,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 237,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 239,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 241,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 243,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 245,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 115,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 116,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 117,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 118,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 120,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 121,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 122,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 94,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 124,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 173,0 +) +*52 (LogGeneric +generic (GiElement +name "baudRate" +type "real" +value "" +) +uid 175,0 +) +*53 (LogGeneric +generic (GiElement +name "dataBitNb" +type "positive" +value "" +) +uid 177,0 +) +*54 (LogGeneric +generic (GiElement +name "stopBitNb" +type "positive" +value "" +) +uid 179,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *56 (MRCItem +litem &39 +pos 4 +dimension 20 +) +uid 138,0 +optionalChildren [ +*57 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 139,0 +) +*58 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 140,0 +) +*59 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*60 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 174,0 +) +*61 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 176,0 +) +*62 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 178,0 +) +*63 (MRCItem +litem &54 +pos 3 +dimension 20 +uid 180,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*64 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 143,0 +) +*65 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 144,0 +) +*66 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 145,0 +) +*67 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 146,0 +) +*68 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 147,0 +) +*69 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 148,0 +) +*70 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 149,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 123,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tester/interface.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tester/interface.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tester" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serialPortTransmitter_tester" +) +(vvPair +variable "date" +value "08/07/23" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "entity_name" +value "serialPortTransmitter_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "08/07/23" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Hyperion" +) +(vvPair +variable "graphical_source_time" +value "13:24:28" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Hyperion" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "08" +) +(vvPair +variable "module_name" +value "serialPortTransmitter_tester" +) +(vvPair +variable "month" +value "Aug" +) +(vvPair +variable "month_long" +value "August" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serial@port@transmitter_tester/interface" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Projets/Comet_Camera/FPGA/Prefs/../Libs/RS232_test/hds/serialPortTransmitter_tester/interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:24:28" +) +(vvPair +variable "unit" +value "serialPortTransmitter_tester" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 93,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 205,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 207,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "26550,7000,27450,9000" +st "busy" +ju 2 +blo "27250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "courier,8,0" +) +xt "44000,2700,59000,3600" +st "busy : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "busy" +t "std_ulogic" +o 4 +suid 7,0 +) +) +) +*73 (CptPort +uid 209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 210,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 211,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 212,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "30550,7000,31450,9500" +st "clock" +ju 2 +blo "31250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 213,0 +va (VaSet +font "courier,8,0" +) +xt "44000,3600,59000,4500" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 3 +suid 8,0 +) +) +) +*74 (CptPort +uid 214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 215,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 216,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 217,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "22550,7000,23450,10000" +st "dataIn" +ju 2 +blo "23250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 218,0 +va (VaSet +font "courier,8,0" +) +xt "44000,4500,73500,5400" +st "dataIn : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +) +*75 (CptPort +uid 219,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 220,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 221,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 222,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "32550,7000,33450,9500" +st "reset" +ju 2 +blo "33250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 223,0 +va (VaSet +font "courier,8,0" +) +xt "44000,5400,59000,6300" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 4 +suid 10,0 +) +) +) +*76 (CptPort +uid 224,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 225,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 226,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 227,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "24550,7000,25450,9000" +st "send" +ju 2 +blo "25250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 228,0 +va (VaSet +font "courier,8,0" +) +xt "44000,6300,58000,7200" +st "send : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 11,0 +) +) +) +*77 (CptPort +uid 229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 230,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,5250,55375,6000" +) +tg (CPTG +uid 231,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 232,0 +ro 270 +va (VaSet +font "courier,8,0" +) +xt "54550,7000,55450,8500" +st "TxD" +ju 2 +blo "55250,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 233,0 +va (VaSet +font "courier,8,0" +) +xt "44000,1800,59000,2700" +st "TxD : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 12,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,63000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,8,1" +) +xt "31750,9100,37250,10000" +st "RS232_test" +blo "31750,9800" +) +second (Text +uid 12,0 +va (VaSet +font "courier,8,1" +) +xt "31750,10000,46250,10900" +st "serialPortTransmitter_tester" +blo "31750,10700" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "12000,6000,25500,11400" +st "Generic Declarations + +clockFrequency real +baudRate real +dataBitNb positive +stopBitNb positive " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "" +) +(GiElement +name "baudRate" +type "real" +value "" +) +(GiElement +name "dataBitNb" +type "positive" +value "" +) +(GiElement +name "stopBitNb" +type "positive" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,50000,49000,51000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,50050,45700,50950" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,46000,53000,47000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,46050,53200,46950" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,49000,49000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,48050,45700,48950" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,48000,32000,49000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,48050,31200,48950" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,47000,69000,51000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "49200,47200,60200,48100" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,46000,69000,47000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "53200,46050,54700,46950" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,46000,49000,48000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "34000,46500,43000,47500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,49000,32000,50000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,49050,30700,49950" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "28000,50000,32000,51000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "28200,50050,31700,50950" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,49000,49000,50000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "courier,8,0" +) +xt "32200,49050,40700,49950" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "28000,46000,69000,51000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*92 (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "0,900,15500,3600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "652,1292,1667,1982" +viewArea "-500,-500,70780,46210" +cachedDiagramExtent "0,0,73500,51000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,4000,1900" +st "Panel0" +blo "1000,1700" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "RS232_test" +entityName "serialPortTransmitter_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,39000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "24750,15100,29250,16000" +st "" +blo "24750,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "24750,16000,27750,16900" +st "" +blo "24750,16700" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "42000,0,48500,900" +st "Declarations" +blo "42000,700" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "42000,900,45000,1800" +st "Ports:" +blo "42000,1600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "42000,7200,44500,8100" +st "User:" +blo "42000,7900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "42000,0,49500,900" +st "Internal User:" +blo "42000,700" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "44000,8100,44000,8100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 245,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd b/Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd new file mode 100644 index 0000000..5b6ffb3 --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd @@ -0,0 +1,3407 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +instances [ +(Instance +name "I_file2trans" +duLibraryName "UVM" +duName "driverControl" +elements [ +(GiElement +name "driverFileSpec" +type "string" +value "driverFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "driverVerbosity" +) +] +mwi 0 +uid 1172,0 +) +(Instance +name "U_trans2File" +duLibraryName "UVM" +duName "monitorSupervision" +elements [ +(GiElement +name "monitorFileSpec" +type "string" +value "monitorFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "monitorVerbosity" +) +] +mwi 0 +uid 1186,0 +) +(Instance +name "I_mon" +duLibraryName "RS232_test" +duName "uvmRs232Monitor" +elements [ +] +mwi 0 +uid 1321,0 +) +(Instance +name "I_driv" +duLibraryName "RS232_test" +duName "uvmRs232Driver" +elements [ +] +mwi 0 +uid 1486,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.3 (Build 4)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@agent@hw" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvmRs232AgentHw" +) +(vvPair +variable "date" +value "03/01/22" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmRs232AgentHw" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/01/22" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphrodite" +) +(vvPair +variable "graphical_source_time" +value "08:51:20" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphrodite" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "uvmRs232AgentHw" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@agent@hw/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvmRs232AgentHw/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "08:51:20" +) +(vvPair +variable "unit" +value "uvmRs232AgentHw" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,73000,89000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,73000,88400,74000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,69000,93000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,69000,92800,70000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,71000,89000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,71000,88400,72000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,71000,72000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,71000,71800,72000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,70000,109000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,70200,102400,71200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "93000,69000,109000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "93200,69000,95000,70000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,69000,89000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "74000,69500,83000,70500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,72000,72000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,72000,71200,73000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,73000,72000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,73000,71800,74000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,72000,89000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,72000,89000,73000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "68000,69000,109000,74000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 455,0 +decl (Decl +n "driverTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 4 +suid 9,0 +) +declText (MLText +uid 456,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,33000,15500" +st "SIGNAL driverTransaction : string(1 TO ahbTransactionLength)" +) +) +*13 (Net +uid 461,0 +decl (Decl +n "monitorTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 5 +suid 10,0 +) +declText (MLText +uid 462,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,33000,16400" +st "SIGNAL monitorTransaction : string(1 TO ahbTransactionLength)" +) +) +*14 (Net +uid 1040,0 +decl (Decl +n "baudRate" +t "real" +o 3 +suid 17,0 +) +declText (MLText +uid 1041,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,18500,14600" +st "SIGNAL baudRate : real" +) +) +*15 (Net +uid 1092,0 +decl (Decl +n "TxD" +t "std_uLogic" +o 1 +suid 19,0 +) +declText (MLText +uid 1093,0 +va (VaSet +font "courier,8,0" +) +xt "2000,9200,18000,10100" +st "TxD : std_uLogic" +) +) +*16 (PortIoIn +uid 1094,0 +shape (CompositeShape +uid 1095,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1096,0 +sl 0 +ro 90 +xt "92500,35625,94000,36375" +) +(Line +uid 1097,0 +sl 0 +ro 90 +xt "92000,36000,92500,36000" +pts [ +"92500,36000" +"92000,36000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1098,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1099,0 +va (VaSet +isHidden 1 +) +xt "95000,35500,96800,36500" +st "TxD" +blo "95000,36300" +tm "WireNameMgr" +) +) +) +*17 (PortIoOut +uid 1100,0 +shape (CompositeShape +uid 1101,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1102,0 +sl 0 +ro 270 +xt "92500,17625,94000,18375" +) +(Line +uid 1103,0 +sl 0 +ro 270 +xt "92000,18000,92500,18000" +pts [ +"92000,18000" +"92500,18000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1104,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1105,0 +va (VaSet +isHidden 1 +) +xt "95000,17500,96800,18500" +st "RxD" +blo "95000,18300" +tm "WireNameMgr" +) +) +) +*18 (Net +uid 1106,0 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 20,0 +) +declText (MLText +uid 1107,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10100,18000,11000" +st "RxD : std_uLogic" +) +) +*19 (SaComponent +uid 1172,0 +optionalChildren [ +*20 (CptPort +uid 1168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,17625,52750,18375" +) +tg (CPTG +uid 1170,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1171,0 +va (VaSet +font "courier,12,0" +) +xt "38400,17300,51000,18600" +st "driverTransaction" +ju 2 +blo "51000,18300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "driverTransaction" +t "string" +o 1 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 1173,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,14000,52000,22000" +) +oxt "29000,12000,45000,20000" +ttg (MlTextGroup +uid 1174,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*21 (Text +uid 1175,0 +va (VaSet +) +xt "36100,21700,37900,22700" +st "UVM" +blo "36100,22500" +tm "BdLibraryNameMgr" +) +*22 (Text +uid 1176,0 +va (VaSet +) +xt "36100,22700,44500,23700" +st "driverControl" +blo "36100,23500" +tm "CptNameMgr" +) +*23 (Text +uid 1177,0 +va (VaSet +) +xt "36100,23700,43900,24700" +st "I_file2trans" +blo "36100,24500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1178,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1179,0 +text (MLText +uid 1180,0 +va (VaSet +font "courier,8,0" +) +xt "36000,26000,61000,27800" +st "driverFileSpec = driverFileSpec ( string ) +verbosity = driverVerbosity ( natural ) " +) +header "" +) +elements [ +(GiElement +name "driverFileSpec" +type "string" +value "driverFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "driverVerbosity" +) +] +) +viewicon (ZoomableIcon +uid 1181,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "36250,20250,37750,21750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*24 (SaComponent +uid 1186,0 +optionalChildren [ +*25 (CptPort +uid 1182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1183,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,33625,52750,34375" +) +tg (CPTG +uid 1184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1185,0 +va (VaSet +font "courier,12,0" +) +xt "37700,33300,51000,34600" +st "monitorTransaction" +ju 2 +blo "51000,34300" +) +) +thePort (LogicalPort +decl (Decl +n "monitorTransaction" +t "string" +o 1 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 1187,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,30000,52000,38000" +) +oxt "29000,12000,45000,20000" +ttg (MlTextGroup +uid 1188,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*26 (Text +uid 1189,0 +va (VaSet +) +xt "36100,37700,37900,38700" +st "UVM" +blo "36100,38500" +tm "BdLibraryNameMgr" +) +*27 (Text +uid 1190,0 +va (VaSet +) +xt "36100,38700,47500,39700" +st "monitorSupervision" +blo "36100,39500" +tm "CptNameMgr" +) +*28 (Text +uid 1191,0 +va (VaSet +) +xt "36100,39700,43900,40700" +st "U_trans2File" +blo "36100,40500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1192,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1193,0 +text (MLText +uid 1194,0 +va (VaSet +font "courier,8,0" +) +xt "36000,42000,62000,43800" +st "monitorFileSpec = monitorFileSpec ( string ) +verbosity = monitorVerbosity ( natural ) " +) +header "" +) +elements [ +(GiElement +name "monitorFileSpec" +type "string" +value "monitorFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "monitorVerbosity" +) +] +) +viewicon (ZoomableIcon +uid 1195,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "36250,36250,37750,37750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*29 (SaComponent +uid 1321,0 +optionalChildren [ +*30 (CptPort +uid 1305,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1306,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,33625,84750,34375" +) +tg (CPTG +uid 1307,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1308,0 +va (VaSet +font "courier,12,0" +) +xt "80900,33300,83000,34600" +st "RxD" +ju 2 +blo "83000,34300" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_uLogic" +o 1 +suid 2061,0 +) +) +) +*31 (CptPort +uid 1309,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1310,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,35625,84750,36375" +) +tg (CPTG +uid 1311,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1312,0 +va (VaSet +font "courier,12,0" +) +xt "80900,35300,83000,36600" +st "TxD" +ju 2 +blo "83000,36300" +) +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 2 +suid 2062,0 +) +) +) +*32 (CptPort +uid 1313,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1314,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,33625,68000,34375" +) +tg (CPTG +uid 1315,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1316,0 +va (VaSet +font "courier,12,0" +) +xt "69000,33300,82300,34600" +st "monitorTransaction" +blo "69000,34300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "monitorTransaction" +t "string" +o 3 +suid 2071,0 +) +) +) +*33 (CptPort +uid 1317,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1318,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75625,29250,76375,30000" +) +tg (CPTG +uid 1319,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1320,0 +va (VaSet +font "courier,12,0" +) +xt "73000,31000,78600,32300" +st "baudRate" +ju 2 +blo "78600,32000" +) +) +thePort (LogicalPort +decl (Decl +n "baudRate" +t "real" +o 4 +suid 2075,0 +) +) +) +] +shape (Rectangle +uid 1322,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,30000,84000,40000" +) +oxt "47000,32000,63000,42000" +ttg (MlTextGroup +uid 1323,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*34 (Text +uid 1324,0 +va (VaSet +) +xt "68100,39700,74700,40700" +st "RS232_test" +blo "68100,40500" +tm "BdLibraryNameMgr" +) +*35 (Text +uid 1325,0 +va (VaSet +) +xt "68100,40700,77700,41700" +st "uvmRs232Monitor" +blo "68100,41500" +tm "CptNameMgr" +) +*36 (Text +uid 1326,0 +va (VaSet +) +xt "68100,41700,71100,42700" +st "I_mon" +blo "68100,42500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1327,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1328,0 +text (MLText +uid 1329,0 +va (VaSet +font "courier,8,0" +) +xt "68000,44000,68000,44000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 1330,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,38250,69750,39750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*37 (SaComponent +uid 1486,0 +optionalChildren [ +*38 (CptPort +uid 1474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1475,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,17625,84750,18375" +) +tg (CPTG +uid 1476,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1477,0 +va (VaSet +font "courier,12,0" +) +xt "80900,17300,83000,18600" +st "RxD" +ju 2 +blo "83000,18300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 2063,0 +) +) +) +*39 (CptPort +uid 1478,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1479,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,17625,68000,18375" +) +tg (CPTG +uid 1480,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1481,0 +va (VaSet +font "courier,12,0" +) +xt "69000,17300,81600,18600" +st "driverTransaction" +blo "69000,18300" +) +) +thePort (LogicalPort +decl (Decl +n "driverTransaction" +t "string" +o 1 +suid 2071,0 +) +) +) +*40 (CptPort +uid 1482,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1483,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75625,22000,76375,22750" +) +tg (CPTG +uid 1484,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1485,0 +va (VaSet +font "courier,12,0" +) +xt "73000,19600,78600,20900" +st "baudRate" +blo "73000,20600" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "baudRate" +t "real" +o 3 +suid 2075,0 +) +) +) +] +shape (Rectangle +uid 1487,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,14000,84000,22000" +) +oxt "47000,34000,63000,42000" +ttg (MlTextGroup +uid 1488,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 1489,0 +va (VaSet +) +xt "68100,21700,74700,22700" +st "RS232_test" +blo "68100,22500" +tm "BdLibraryNameMgr" +) +*42 (Text +uid 1490,0 +va (VaSet +) +xt "68100,22700,77100,23700" +st "uvmRs232Driver" +blo "68100,23500" +tm "CptNameMgr" +) +*43 (Text +uid 1491,0 +va (VaSet +) +xt "68100,23700,71700,24700" +st "I_driv" +blo "68100,24500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1492,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1493,0 +text (MLText +uid 1494,0 +va (VaSet +font "courier,8,0" +) +xt "68000,26000,68000,26000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 1495,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,20250,69750,21750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*44 (Wire +uid 457,0 +shape (OrthoPolyLine +uid 458,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,18000,67250,18000" +pts [ +"52750,18000" +"67250,18000" +] +) +start &20 +end &39 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 459,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 460,0 +va (VaSet +font "courier,12,0" +) +xt "54000,16600,66600,17900" +st "driverTransaction" +blo "54000,17600" +tm "WireNameMgr" +) +) +on &12 +) +*45 (Wire +uid 463,0 +shape (OrthoPolyLine +uid 464,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,34000,67250,34000" +pts [ +"52750,34000" +"67250,34000" +] +) +start &25 +end &32 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 465,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 466,0 +va (VaSet +font "courier,12,0" +) +xt "54000,32600,67300,33900" +st "monitorTransaction" +blo "54000,33600" +tm "WireNameMgr" +) +) +on &13 +) +*46 (Wire +uid 727,0 +optionalChildren [ +*47 (BdJunction +uid 982,0 +ps "OnConnectorStrategy" +shape (Circle +uid 983,0 +va (VaSet +vasetType 1 +) +xt "87600,17600,88400,18400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 728,0 +va (VaSet +vasetType 3 +) +xt "84750,18000,92000,18000" +pts [ +"84750,18000" +"92000,18000" +] +) +start &38 +end &17 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 731,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 732,0 +va (VaSet +font "courier,12,0" +) +xt "90000,16600,92100,17900" +st "RxD" +blo "90000,17600" +tm "WireNameMgr" +) +) +on &18 +) +*48 (Wire +uid 741,0 +shape (OrthoPolyLine +uid 742,0 +va (VaSet +vasetType 3 +) +xt "84750,36000,92000,36000" +pts [ +"92000,36000" +"84750,36000" +] +) +start &16 +end &31 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 745,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 746,0 +va (VaSet +font "courier,12,0" +) +xt "90000,34600,92100,35900" +st "TxD" +blo "90000,35600" +tm "WireNameMgr" +) +) +on &15 +) +*49 (Wire +uid 978,0 +shape (OrthoPolyLine +uid 979,0 +va (VaSet +vasetType 3 +) +xt "84750,18000,88000,34000" +pts [ +"88000,18000" +"88000,34000" +"84750,34000" +] +) +start &47 +end &30 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 980,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 981,0 +va (VaSet +) +xt "86750,33000,88550,34000" +st "RxD" +blo "86750,33800" +tm "WireNameMgr" +) +) +on &18 +) +*50 (Wire +uid 1042,0 +shape (OrthoPolyLine +uid 1043,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "76000,22750,76000,29250" +pts [ +"76000,22750" +"76000,29250" +] +) +start &40 +end &33 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 1044,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1045,0 +ro 270 +va (VaSet +) +xt "74800,23550,75800,28350" +st "baudRate" +blo "75600,28350" +tm "WireNameMgr" +) +) +on &14 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *51 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*52 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*53 (MLText +uid 43,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*55 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*56 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*57 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*58 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*59 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*60 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "4142,560,5406,1407" +viewArea "-1500,-1500,88026,56808" +cachedDiagramExtent "0,0,109000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1541,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*62 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*63 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*65 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*66 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*68 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*69 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*71 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*72 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*74 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*75 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*77 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*79 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*81 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7400,6500,8300" +st "Declarations" +blo "0,8100" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8300,3000,9200" +st "Ports:" +blo "0,9000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,11000,4500,11900" +st "Pre User:" +blo "0,11700" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,25500,12800" +st "constant ahbTransactionLength: positive := 16;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,12800,8500,13700" +st "Diagram Signals:" +blo "0,13500" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7400,5500,8300" +st "Post User:" +blo "0,8100" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7400,0,7400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 21,0 +usingSuid 1 +emptyRow *82 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*83 (RefLabelRowHdr +) +*84 (TitleRowHdr +) +*85 (FilterRowHdr +) +*86 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*87 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*88 (GroupColHdr +tm "GroupColHdrMgr" +) +*89 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*90 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*91 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*92 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*93 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*94 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*95 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "driverTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 4 +suid 9,0 +) +) +uid 467,0 +) +*96 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "monitorTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 5 +suid 10,0 +) +) +uid 469,0 +) +*97 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "baudRate" +t "real" +o 3 +suid 17,0 +) +) +uid 1046,0 +) +*98 (LeafLogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 1 +suid 19,0 +) +) +uid 1108,0 +) +*99 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 20,0 +) +) +uid 1110,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*100 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *101 (MRCItem +litem &82 +pos 5 +dimension 20 +) +uid 69,0 +optionalChildren [ +*102 (MRCItem +litem &83 +pos 0 +dimension 20 +uid 70,0 +) +*103 (MRCItem +litem &84 +pos 1 +dimension 23 +uid 71,0 +) +*104 (MRCItem +litem &85 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*105 (MRCItem +litem &95 +pos 2 +dimension 20 +uid 468,0 +) +*106 (MRCItem +litem &96 +pos 3 +dimension 20 +uid 470,0 +) +*107 (MRCItem +litem &97 +pos 4 +dimension 20 +uid 1047,0 +) +*108 (MRCItem +litem &98 +pos 0 +dimension 20 +uid 1109,0 +) +*109 (MRCItem +litem &99 +pos 1 +dimension 20 +uid 1111,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*110 (MRCItem +litem &86 +pos 0 +dimension 20 +uid 74,0 +) +*111 (MRCItem +litem &88 +pos 1 +dimension 50 +uid 75,0 +) +*112 (MRCItem +litem &89 +pos 2 +dimension 100 +uid 76,0 +) +*113 (MRCItem +litem &90 +pos 3 +dimension 50 +uid 77,0 +) +*114 (MRCItem +litem &91 +pos 4 +dimension 100 +uid 78,0 +) +*115 (MRCItem +litem &92 +pos 5 +dimension 100 +uid 79,0 +) +*116 (MRCItem +litem &93 +pos 6 +dimension 50 +uid 80,0 +) +*117 (MRCItem +litem &94 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *118 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*119 (RefLabelRowHdr +) +*120 (TitleRowHdr +) +*121 (FilterRowHdr +) +*122 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*123 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*124 (GroupColHdr +tm "GroupColHdrMgr" +) +*125 (NameColHdr +tm "GenericNameColHdrMgr" +) +*126 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*127 (InitColHdr +tm "GenericValueColHdrMgr" +) +*128 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*129 (EolColHdr +tm "GenericEolColHdrMgr" +) +*130 (LogGeneric +generic (GiElement +name "driverVerbosity" +type "integer" +value "" +) +uid 629,0 +) +*131 (LogGeneric +generic (GiElement +name "monitorVerbosity" +type "integer" +value "" +) +uid 631,0 +) +*132 (LogGeneric +generic (GiElement +name "driverFileSpec" +type "string" +value "" +) +uid 633,0 +) +*133 (LogGeneric +generic (GiElement +name "monitorFileSpec" +type "string" +value "" +) +uid 635,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*134 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *135 (MRCItem +litem &118 +pos 4 +dimension 20 +) +uid 97,0 +optionalChildren [ +*136 (MRCItem +litem &119 +pos 0 +dimension 20 +uid 98,0 +) +*137 (MRCItem +litem &120 +pos 1 +dimension 23 +uid 99,0 +) +*138 (MRCItem +litem &121 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*139 (MRCItem +litem &130 +pos 0 +dimension 20 +uid 628,0 +) +*140 (MRCItem +litem &131 +pos 2 +dimension 20 +uid 630,0 +) +*141 (MRCItem +litem &132 +pos 1 +dimension 20 +uid 632,0 +) +*142 (MRCItem +litem &133 +pos 3 +dimension 20 +uid 634,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*143 (MRCItem +litem &122 +pos 0 +dimension 20 +uid 102,0 +) +*144 (MRCItem +litem &124 +pos 1 +dimension 50 +uid 103,0 +) +*145 (MRCItem +litem &125 +pos 2 +dimension 100 +uid 104,0 +) +*146 (MRCItem +litem &126 +pos 3 +dimension 100 +uid 105,0 +) +*147 (MRCItem +litem &127 +pos 4 +dimension 50 +uid 106,0 +) +*148 (MRCItem +litem &128 +pos 5 +dimension 50 +uid 107,0 +) +*149 (MRCItem +litem &129 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb b/Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb new file mode 100644 index 0000000..edf91ae --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb @@ -0,0 +1,1500 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 1 +suid 21,0 +) +) +uid 436,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 24,0 +) +) +uid 442,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 68,0 +optionalChildren [ +*18 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*19 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*20 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*21 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 437,0 +) +*22 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 443,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*23 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*25 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*26 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*27 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*28 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*29 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*30 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "driverVerbosity" +type "integer" +value "" +) +uid 525,0 +) +*44 (LogGeneric +generic (GiElement +name "monitorVerbosity" +type "integer" +value "" +) +uid 527,0 +) +*45 (LogGeneric +generic (GiElement +name "driverFileSpec" +type "string" +value "" +) +uid 529,0 +) +*46 (LogGeneric +generic (GiElement +name "monitorFileSpec" +type "string" +value "" +) +uid 531,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &31 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*49 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 97,0 +) +*50 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 98,0 +) +*51 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*52 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 526,0 +) +*53 (MRCItem +litem &44 +pos 2 +dimension 20 +uid 528,0 +) +*54 (MRCItem +litem &45 +pos 1 +dimension 20 +uid 530,0 +) +*55 (MRCItem +litem &46 +pos 3 +dimension 20 +uid 532,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*56 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 101,0 +) +*57 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 103,0 +) +*59 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 104,0 +) +*60 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 105,0 +) +*61 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 106,0 +) +*62 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@agent@hw" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvmRs232AgentHw" +) +(vvPair +variable "date" +value "03/01/22" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmRs232AgentHw" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/01/22" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphrodite" +) +(vvPair +variable "graphical_source_time" +value "08:17:08" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphrodite" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "uvmRs232AgentHw" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@agent@hw/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvmRs232AgentHw/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:17:08" +) +(vvPair +variable "unit" +value "uvmRs232AgentHw" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 382,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 833,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "47000,18625,47750,19375" +) +tg (CPTG +uid 384,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 385,0 +va (VaSet +font "courier,9,0" +) +xt "43200,18400,46000,19600" +st "TxD" +ju 2 +blo "46000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 386,0 +va (VaSet +font "courier,8,0" +) +xt "0,7400,13500,8300" +st "TxD : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 1 +suid 21,0 +) +) +) +*65 (CptPort +uid 397,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 834,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "47000,20625,47750,21375" +) +tg (CPTG +uid 399,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 400,0 +va (VaSet +font "courier,9,0" +) +xt "43200,20400,46000,21600" +st "RxD" +ju 2 +blo "46000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 401,0 +va (VaSet +font "courier,8,0" +) +xt "0,8300,12500,9200" +st "RxD : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 24,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,15000,47000,25000" +) +oxt "15000,6000,27000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "30600,25000,36100,25900" +st "RS232_test" +blo "30600,25700" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "30600,25900,38600,26800" +st "uvmRs232AgentHw" +blo "30600,26600" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "31000,29200,45000,34600" +st "Generic Declarations + +driverVerbosity integer +driverFileSpec string +monitorVerbosity integer +monitorFileSpec string " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "driverVerbosity" +type "integer" +value "" +) +(GiElement +name "driverFileSpec" +type "string" +value "" +) +(GiElement +name "monitorVerbosity" +type "integer" +value "" +) +(GiElement +name "monitorFileSpec" +type "string" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48000,50400,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44000,54800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46000,50400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46000,33800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,64400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44000,57000,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "36000,44500,45000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47000,33200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48000,33800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47000,51000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,16600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "128,494,1407,1335" +viewArea "-3043,-1062,74805,50395" +cachedDiagramExtent "-2000,0,71000,49000" +pageSetupInfo (PageSetupInfo +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "courier,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "0,12000,10500,12900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,5400,3400,6400" +st "Declarations" +blo "-2000,6200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,6400,700,7400" +st "Ports:" +blo "-2000,7200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "-2000,9200,500,10100" +st "User:" +blo "-2000,9900" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "-2000,5400,3800,6400" +st "Internal User:" +blo "-2000,6200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "0,10100,0,10100" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "-2000,5400,-2000,5400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1064,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb b/Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb new file mode 100644 index 0000000..dca2d2d --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb @@ -0,0 +1,1534 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2075,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 2063,0 +) +) +uid 2546,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "driverTransaction" +t "string" +o 1 +suid 2071,0 +) +) +uid 2934,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "baudRate" +t "real" +o 3 +suid 2075,0 +) +) +uid 3143,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 254,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2547,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2935,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 3144,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*45 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *46 (MRCItem +litem &33 +pos 0 +dimension 20 +) +uid 293,0 +optionalChildren [ +*47 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 296,0 +) +*48 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 298,0 +) +*49 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*50 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 302,0 +) +*51 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 306,0 +) +*52 (MRCItem +litem &40 +pos 2 +dimension 199 +uid 308,0 +) +*53 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 310,0 +) +*54 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 312,0 +) +*55 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 314,0 +) +*56 (MRCItem +litem &44 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@driver" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvmRs232Driver" +) +(vvPair +variable "date" +value "03/01/22" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmRs232Driver" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/01/22" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphrodite" +) +(vvPair +variable "graphical_source_time" +value "08:15:36" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphrodite" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "uvmRs232Driver" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232@driver/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvmRs232Driver/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "08:15:36" +) +(vvPair +variable "unit" +value "uvmRs232Driver" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*57 (SymbolBody +uid 8,0 +optionalChildren [ +*58 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2972,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,37625,63750,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "courier,12,0" +) +xt "58800,37300,62000,38700" +st "RxD" +ju 2 +blo "62000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,22500,13200" +st "RxD : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 2063,0 +) +) +) +*59 (CptPort +uid 2912,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2976,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,37625,47000,38375" +) +tg (CPTG +uid 2914,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2915,0 +va (VaSet +font "courier,12,0" +) +xt "48000,37300,60500,38700" +st "driverTransaction" +blo "48000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2916,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,20500,12300" +st "driverTransaction : IN string ; +" +) +thePort (LogicalPort +decl (Decl +n "driverTransaction" +t "string" +o 1 +suid 2071,0 +) +) +) +*60 (CptPort +uid 3138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3139,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,42000,55375,42750" +) +tg (CPTG +uid 3140,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3141,0 +va (VaSet +font "courier,12,0" +) +xt "52000,39600,58900,41000" +st "baudRate" +blo "52000,40800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 3142,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,18500,14100" +st "baudRate : OUT real +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "baudRate" +t "real" +o 3 +suid 2075,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,34000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,53700,42700" +st "RS232_test" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,56100,43700" +st "uvmRs232Driver" +blo "47100,43500" +) +) +gi *61 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "47000,46000,57500,46900" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*62 (Grouping +uid 136,0 +optionalChildren [ +*63 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,77400,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*64 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81800,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*65 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,77400,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*66 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,60800,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*67 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,91400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*68 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,97800,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "63000,61500,72000,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,60200,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,60800,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,77400,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*73 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *74 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 103,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*76 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "109,494,1426,1347" +viewArea "-1400,-1400,95966,61790" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *77 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *78 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,14100,2500,15000" +st "User:" +blo "0,14800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15000,2000,15000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 3259,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb b/Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb new file mode 100644 index 0000000..4eae53d --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb @@ -0,0 +1,1618 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.3 (Build 4)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2075,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_uLogic" +o 1 +suid 2061,0 +) +) +uid 2542,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 2 +suid 2062,0 +) +) +uid 2544,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "monitorTransaction" +t "string" +o 3 +suid 2071,0 +) +) +uid 2934,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "baudRate" +t "real" +o 4 +suid 2075,0 +) +) +uid 3128,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 254,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2543,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2545,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2935,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 3129,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "reportStart" +type "string" +value "\"uart\"" +) +uid 3199,0 +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 293,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 296,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 298,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 3200,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 302,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 306,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 199 +uid 308,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 310,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 312,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 314,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@monitor" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvmRs232Monitor" +) +(vvPair +variable "date" +value "07/05/22" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "05" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmRs232Monitor" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "07/05/22" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphrodite" +) +(vvPair +variable "graphical_source_time" +value "10:53:31" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphrodite" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "07" +) +(vvPair +variable "module_name" +value "uvmRs232Monitor" +) +(vvPair +variable "month" +value "Jul" +) +(vvPair +variable "month_long" +value "July" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvm@rs232@monitor/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/Projects/CometCamera/FPGA/Prefs/../Libs/RS232_test/hds/uvmRs232Monitor/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "10:53:31" +) +(vvPair +variable "unit" +value "uvmRs232Monitor" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2970,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,35625,63750,36375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "courier,12,0" +) +xt "58800,35300,62000,36700" +st "RxD" +ju 2 +blo "62000,36500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11400,23000,12300" +st "RxD : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_uLogic" +o 1 +suid 2061,0 +) +) +) +*63 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2971,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,37625,63750,38375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "courier,12,0" +) +xt "58900,37300,62000,38700" +st "TxD" +ju 2 +blo "62000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12300,23000,13200" +st "TxD : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 2 +suid 2062,0 +) +) +) +*64 (CptPort +uid 2912,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3030,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,35625,47000,36375" +) +tg (CPTG +uid 2914,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2915,0 +va (VaSet +font "courier,12,0" +) +xt "48000,35300,61700,36700" +st "monitorTransaction" +blo "48000,36500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2916,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14100,20000,15000" +st "monitorTransaction : OUT string " +) +thePort (LogicalPort +m 1 +decl (Decl +n "monitorTransaction" +t "string" +o 3 +suid 2071,0 +) +) +) +*65 (CptPort +uid 3123,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3124,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,31250,55375,32000" +) +tg (CPTG +uid 3125,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3126,0 +va (VaSet +font "courier,12,0" +) +xt "51000,33000,57900,34400" +st "baudRate" +ju 2 +blo "57900,34200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 3127,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13200,20000,14100" +st "baudRate : IN real ;" +) +thePort (LogicalPort +decl (Decl +n "baudRate" +t "real" +o 4 +suid 2075,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,32000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,53700,42700" +st "RS232_test" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,56700,43700" +st "uvmRs232Monitor" +blo "47100,43500" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "47000,46000,61000,48700" +st "Generic Declarations + +reportStart string \"uart\" " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "reportStart" +type "string" +value "\"uart\"" +) +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 136,0 +optionalChildren [ +*68 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,77400,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*69 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81800,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*70 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,77400,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*71 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,60800,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*72 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,91400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*73 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,97800,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*74 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "63000,61500,72000,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*75 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,60200,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*76 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,60800,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*77 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,78000,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*78 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *79 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 103,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*81 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "4268,634,5582,1487" +viewArea "-1500,5160,110910,66540" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *82 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *83 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,15000,2500,15900" +st "User:" +blo "0,15700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15900,2000,15900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 3200,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RS232_test/hds/uvm@rs232_tb/struct.bd b/Libs/RS232_test/hds/uvm@rs232_tb/struct.bd new file mode 100644 index 0000000..5bf3b06 --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232_tb/struct.bd @@ -0,0 +1,3774 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "RS232_test" +duName "uvmRs232_tester" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "rs232BitNb" +type "positive" +value "rs232BitNb" +) +(GiElement +name "rs232BaudRate" +type "positive" +value "rs232BaudRate" +) +] +mwi 0 +uid 1426,0 +) +(Instance +name "I_Rx" +duLibraryName "RS232" +duName "serialPortReceiver" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "rs232BitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/rs232BaudRate + 0.5)" +) +] +mwi 0 +uid 1480,0 +) +(Instance +name "I_Tx" +duLibraryName "RS232" +duName "serialPortTransmitter" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "rs232BitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/rs232BaudRate + 0.5)" +) +] +mwi 0 +uid 1514,0 +) +(Instance +name "U_DUT" +duLibraryName "RS232_test" +duName "uvmRs232AgentHw" +elements [ +(GiElement +name "driverVerbosity" +type "integer" +value "uvmDriverVerbosity" +) +(GiElement +name "driverFileSpec" +type "string" +value "uvmDriverFileSpec" +) +(GiElement +name "monitorVerbosity" +type "integer" +value "uvmMonitorVerbosity" +) +(GiElement +name "monitorFileSpec" +type "string" +value "uvmMonitorFileSpec" +) +] +mwi 0 +uid 1724,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.3 (Build 4)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232_tb/struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232_tb/struct.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232_tb" +) +(vvPair +variable "d_logical" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvmRs232_tb" +) +(vvPair +variable "date" +value "03/01/22" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "01" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmRs232_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "03/01/22" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphrodite" +) +(vvPair +variable "graphical_source_time" +value "08:18:54" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphrodite" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "03" +) +(vvPair +variable "module_name" +value "uvmRs232_tb" +) +(vvPair +variable "month" +value "Mar" +) +(vvPair +variable "month_long" +value "March" +) +(vvPair +variable "p" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvm@rs232_tb/struct.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Favorites/SEm_local/SEm_labs/05-Morse/../Libs/RS232_test/hds/uvmRs232_tb/struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "/usr/opt/Modelsim/modeltech/bin" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "08:18:54" +) +(vvPair +variable "unit" +value "uvmRs232_tb" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2019.3 (Build 4)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,73000,89000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,73000,88400,74000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,69000,93000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,69000,92800,70000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,71000,89000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,71000,88400,72000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,71000,72000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,71000,71800,72000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,70000,109000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,70200,102400,71200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "93000,69000,109000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "93200,69000,95000,70000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,69000,89000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "74000,69500,83000,70500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,72000,72000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,72000,71200,73000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,73000,72000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,73000,71800,74000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,72000,89000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,72000,86600,73000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "68000,69000,109000,74000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 1426,0 +shape (Rectangle +uid 1427,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "16000,51000,100000,59000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1428,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 1429,0 +va (VaSet +font "courier,8,1" +) +xt "15700,59500,21200,60400" +st "RS232_test" +blo "15700,60200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 1430,0 +va (VaSet +font "courier,8,1" +) +xt "15700,60500,23700,61400" +st "uvmRs232_tester" +blo "15700,61200" +tm "BlkNameMgr" +) +*15 (Text +uid 1431,0 +va (VaSet +font "courier,8,1" +) +xt "15700,61500,19700,62400" +st "I_tester" +blo "15700,62200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1432,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1433,0 +text (MLText +uid 1434,0 +va (VaSet +font "courier,8,0" +) +xt "16000,63000,41000,65700" +st "clockFrequency = clockFrequency ( real ) +rs232BitNb = rs232BitNb ( positive ) +rs232BaudRate = rs232BaudRate ( positive ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +(GiElement +name "rs232BitNb" +type "positive" +value "rs232BitNb" +) +(GiElement +name "rs232BaudRate" +type "positive" +value "rs232BaudRate" +) +] +) +viewicon (ZoomableIcon +uid 1435,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "16250,57250,17750,58750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 1436,0 +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 21,0 +) +declText (MLText +uid 1437,0 +va (VaSet +font "courier,8,0" +) +xt "2000,25400,17000,26300" +st "SIGNAL reset : std_ulogic" +) +) +*17 (Net +uid 1444,0 +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 22,0 +) +declText (MLText +uid 1445,0 +va (VaSet +font "courier,8,0" +) +xt "2000,21800,17000,22700" +st "SIGNAL clock : std_ulogic" +) +) +*18 (SaComponent +uid 1480,0 +optionalChildren [ +*19 (CptPort +uid 1460,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1461,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59250,34625,60000,35375" +) +tg (CPTG +uid 1462,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1463,0 +va (VaSet +) +xt "61000,34400,62800,35400" +st "RxD" +blo "61000,35200" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*20 (CptPort +uid 1464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1465,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59250,38625,60000,39375" +) +tg (CPTG +uid 1466,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1467,0 +va (VaSet +) +xt "61000,38400,64000,39400" +st "clock" +blo "61000,39200" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*21 (CptPort +uid 1468,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1469,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59250,40625,60000,41375" +) +tg (CPTG +uid 1470,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1471,0 +va (VaSet +) +xt "61000,40400,64000,41400" +st "reset" +blo "61000,41200" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*22 (CptPort +uid 1472,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1473,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,34625,76750,35375" +) +tg (CPTG +uid 1474,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1475,0 +va (VaSet +) +xt "70801,34400,75001,35400" +st "dataOut" +ju 2 +blo "75001,35200" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*23 (CptPort +uid 1476,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1477,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,36625,76750,37375" +) +tg (CPTG +uid 1478,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1479,0 +va (VaSet +) +xt "69600,36400,75000,37400" +st "dataValid" +ju 2 +blo "75000,37200" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 1481,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "60000,31000,76000,43000" +) +oxt "34000,16000,50000,28000" +ttg (MlTextGroup +uid 1482,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 1483,0 +va (VaSet +font "courier,9,1" +) +xt "60600,42800,63100,43700" +st "RS232" +blo "60600,43500" +tm "BdLibraryNameMgr" +) +*25 (Text +uid 1484,0 +va (VaSet +font "courier,9,1" +) +xt "60600,44000,70100,44900" +st "serialPortReceiver" +blo "60600,44700" +tm "CptNameMgr" +) +*26 (Text +uid 1485,0 +va (VaSet +font "courier,9,1" +) +xt "60600,45200,62600,46100" +st "I_Rx" +blo "60600,45900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1486,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1487,0 +text (MLText +uid 1488,0 +va (VaSet +font "courier,8,0" +) +xt "60000,47000,99500,48800" +st "dataBitNb = rs232BitNb ( positive ) +baudRateDivide = integer(clockFrequency/rs232BaudRate + 0.5) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "rs232BitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/rs232BaudRate + 0.5)" +) +] +) +viewicon (ZoomableIcon +uid 1489,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "60250,41250,61750,42750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*27 (SaComponent +uid 1514,0 +optionalChildren [ +*28 (CptPort +uid 1490,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1491,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59250,11625,60000,12375" +) +tg (CPTG +uid 1492,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1493,0 +va (VaSet +) +xt "61000,11400,62800,12400" +st "TxD" +blo "61000,12200" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*29 (CptPort +uid 1494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1495,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,19625,76750,20375" +) +tg (CPTG +uid 1496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1497,0 +va (VaSet +) +xt "72000,19400,75000,20400" +st "clock" +ju 2 +blo "75000,20200" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*30 (CptPort +uid 1498,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1499,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,21625,76750,22375" +) +tg (CPTG +uid 1500,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1501,0 +va (VaSet +) +xt "72000,21400,75000,22400" +st "reset" +ju 2 +blo "75000,22200" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*31 (CptPort +uid 1502,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1503,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,11625,76750,12375" +) +tg (CPTG +uid 1504,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1505,0 +va (VaSet +) +xt "71401,11400,75001,12400" +st "dataIn" +ju 2 +blo "75001,12200" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +*32 (CptPort +uid 1506,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1507,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,13625,76750,14375" +) +tg (CPTG +uid 1508,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1509,0 +va (VaSet +) +xt "72600,13400,75000,14400" +st "send" +ju 2 +blo "75000,14200" +) +) +thePort (LogicalPort +decl (Decl +n "send" +t "std_ulogic" +o 5 +suid 5,0 +) +) +) +*33 (CptPort +uid 1510,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1511,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "76000,15625,76750,16375" +) +tg (CPTG +uid 1512,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1513,0 +va (VaSet +) +xt "72600,15400,75000,16400" +st "busy" +ju 2 +blo "75000,16200" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "busy" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +] +shape (Rectangle +uid 1515,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "60000,8000,76000,24000" +) +oxt "34000,12000,50000,28000" +ttg (MlTextGroup +uid 1516,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*34 (Text +uid 1517,0 +va (VaSet +font "courier,9,1" +) +xt "60600,23800,63100,24700" +st "RS232" +blo "60600,24500" +tm "BdLibraryNameMgr" +) +*35 (Text +uid 1518,0 +va (VaSet +font "courier,9,1" +) +xt "60600,25000,71600,25900" +st "serialPortTransmitter" +blo "60600,25700" +tm "CptNameMgr" +) +*36 (Text +uid 1519,0 +va (VaSet +font "courier,9,1" +) +xt "60600,26200,62600,27100" +st "I_Tx" +blo "60600,26900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1520,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1521,0 +text (MLText +uid 1522,0 +va (VaSet +font "courier,8,0" +) +xt "60000,28000,99500,29800" +st "dataBitNb = rs232BitNb ( positive ) +baudRateDivide = integer(clockFrequency/rs232BaudRate + 0.5) ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "rs232BitNb" +) +(GiElement +name "baudRateDivide" +type "positive" +value "integer(clockFrequency/rs232BaudRate + 0.5)" +) +] +) +viewicon (ZoomableIcon +uid 1523,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "60250,22250,61750,23750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*37 (Net +uid 1524,0 +decl (Decl +n "RxD" +t "std_uLogic" +o 1 +suid 24,0 +) +declText (MLText +uid 1525,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19100,17000,20000" +st "SIGNAL RxD : std_uLogic" +) +) +*38 (Net +uid 1530,0 +decl (Decl +n "TxD" +t "std_uLogic" +o 2 +suid 25,0 +) +declText (MLText +uid 1531,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20000,17000,20900" +st "SIGNAL TxD : std_uLogic" +) +) +*39 (Net +uid 1536,0 +decl (Decl +n "dataValid" +t "std_ulogic" +o 7 +suid 26,0 +) +declText (MLText +uid 1537,0 +va (VaSet +font "courier,8,0" +) +xt "2000,24500,17000,25400" +st "SIGNAL dataValid : std_ulogic" +) +) +*40 (Net +uid 1544,0 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 6 +suid 27,0 +) +declText (MLText +uid 1545,0 +va (VaSet +font "courier,8,0" +) +xt "2000,23600,32000,24500" +st "SIGNAL dataOut : std_ulogic_vector(rs232BitNb-1 DOWNTO 0)" +) +) +*41 (Net +uid 1552,0 +decl (Decl +n "busy" +t "std_ulogic" +o 3 +suid 28,0 +) +declText (MLText +uid 1553,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20900,17000,21800" +st "SIGNAL busy : std_ulogic" +) +) +*42 (Net +uid 1560,0 +decl (Decl +n "send" +t "std_ulogic" +o 9 +suid 29,0 +) +declText (MLText +uid 1561,0 +va (VaSet +font "courier,8,0" +) +xt "2000,26300,17000,27200" +st "SIGNAL send : std_ulogic" +) +) +*43 (Net +uid 1568,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 5 +suid 30,0 +) +declText (MLText +uid 1569,0 +va (VaSet +font "courier,8,0" +) +xt "2000,22700,32000,23600" +st "SIGNAL dataIn : std_ulogic_vector(rs232BitNb-1 DOWNTO 0)" +) +) +*44 (SaComponent +uid 1724,0 +optionalChildren [ +*45 (CptPort +uid 1716,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1717,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,32625,44750,33375" +) +tg (CPTG +uid 1718,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1719,0 +va (VaSet +font "courier,9,0" +) +xt "41500,32400,43000,33300" +st "TxD" +ju 2 +blo "43000,33100" +) +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_uLogic" +o 1 +suid 21,0 +) +) +) +*46 (CptPort +uid 1720,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1721,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,34625,44750,35375" +) +tg (CPTG +uid 1722,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1723,0 +va (VaSet +font "courier,9,0" +) +xt "41500,34400,43000,35300" +st "RxD" +ju 2 +blo "43000,35100" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_uLogic" +o 2 +suid 24,0 +) +) +) +] +shape (Rectangle +uid 1725,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "28000,29000,44000,39000" +) +oxt "31000,15000,47000,25000" +ttg (MlTextGroup +uid 1726,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +uid 1727,0 +va (VaSet +font "courier,9,1" +) +xt "27600,39000,33100,39900" +st "RS232_test" +blo "27600,39700" +tm "BdLibraryNameMgr" +) +*48 (Text +uid 1728,0 +va (VaSet +font "courier,9,1" +) +xt "27600,39900,35600,40800" +st "uvmRs232AgentHw" +blo "27600,40600" +tm "CptNameMgr" +) +*49 (Text +uid 1729,0 +va (VaSet +font "courier,9,1" +) +xt "27600,40800,30100,41700" +st "U_DUT" +blo "27600,41500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1730,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1731,0 +text (MLText +uid 1732,0 +va (VaSet +font "courier,8,0" +) +xt "28000,43200,56000,46800" +st "driverVerbosity = uvmDriverVerbosity ( integer ) +driverFileSpec = uvmDriverFileSpec ( string ) +monitorVerbosity = uvmMonitorVerbosity ( integer ) +monitorFileSpec = uvmMonitorFileSpec ( string ) " +) +header "" +) +elements [ +(GiElement +name "driverVerbosity" +type "integer" +value "uvmDriverVerbosity" +) +(GiElement +name "driverFileSpec" +type "string" +value "uvmDriverFileSpec" +) +(GiElement +name "monitorVerbosity" +type "integer" +value "uvmMonitorVerbosity" +) +(GiElement +name "monitorFileSpec" +type "string" +value "uvmMonitorFileSpec" +) +] +) +viewicon (ZoomableIcon +uid 1733,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "28250,37250,29750,38750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*50 (Wire +uid 1438,0 +shape (OrthoPolyLine +uid 1439,0 +va (VaSet +vasetType 3 +) +xt "58000,41000,59250,51000" +pts [ +"59250,41000" +"58000,41000" +"58000,51000" +] +) +start &21 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 1442,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1443,0 +va (VaSet +) +xt "55250,40000,58250,41000" +st "reset" +blo "55250,40800" +tm "WireNameMgr" +) +) +on &16 +) +*51 (Wire +uid 1446,0 +shape (OrthoPolyLine +uid 1447,0 +va (VaSet +vasetType 3 +) +xt "56000,39000,59250,51000" +pts [ +"59250,39000" +"56000,39000" +"56000,51000" +] +) +start &20 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +si 0 +tg (WTG +uid 1450,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1451,0 +va (VaSet +) +xt "55250,37800,58250,38800" +st "clock" +blo "55250,38600" +tm "WireNameMgr" +) +) +on &17 +) +*52 (Wire +uid 1526,0 +shape (OrthoPolyLine +uid 1527,0 +va (VaSet +vasetType 3 +) +xt "44750,35000,59250,35000" +pts [ +"44750,35000" +"59250,35000" +] +) +start &46 +end &19 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 1528,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1529,0 +va (VaSet +) +xt "46750,33800,48550,34800" +st "RxD" +blo "46750,34600" +tm "WireNameMgr" +) +) +on &37 +) +*53 (Wire +uid 1532,0 +shape (OrthoPolyLine +uid 1533,0 +va (VaSet +vasetType 3 +) +xt "44750,12000,59250,33000" +pts [ +"44750,33000" +"52000,33000" +"52000,12000" +"59250,12000" +] +) +start &45 +end &28 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 1534,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1535,0 +va (VaSet +) +xt "46750,31800,48550,32800" +st "TxD" +blo "46750,32600" +tm "WireNameMgr" +) +) +on &38 +) +*54 (Wire +uid 1538,0 +shape (OrthoPolyLine +uid 1539,0 +va (VaSet +vasetType 3 +) +xt "76750,37000,80000,51000" +pts [ +"76750,37000" +"80000,37000" +"80000,51000" +] +) +start &23 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1542,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1543,0 +va (VaSet +) +xt "78750,35800,84150,36800" +st "dataValid" +blo "78750,36600" +tm "WireNameMgr" +) +) +on &39 +) +*55 (Wire +uid 1546,0 +shape (OrthoPolyLine +uid 1547,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "76750,35000,82000,51000" +pts [ +"76750,35000" +"82000,35000" +"82000,51000" +] +) +start &22 +end &12 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1550,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1551,0 +va (VaSet +) +xt "78750,33800,82950,34800" +st "dataOut" +blo "78750,34600" +tm "WireNameMgr" +) +) +on &40 +) +*56 (Wire +uid 1554,0 +shape (OrthoPolyLine +uid 1555,0 +va (VaSet +vasetType 3 +) +xt "76750,16000,86000,51000" +pts [ +"76750,16000" +"86000,16000" +"86000,51000" +] +) +start &33 +end &12 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1558,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1559,0 +va (VaSet +) +xt "78750,14800,81150,15800" +st "busy" +blo "78750,15600" +tm "WireNameMgr" +) +) +on &41 +) +*57 (Wire +uid 1562,0 +shape (OrthoPolyLine +uid 1563,0 +va (VaSet +vasetType 3 +) +xt "76750,14000,88000,51000" +pts [ +"76750,14000" +"88000,14000" +"88000,51000" +] +) +start &32 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1566,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1567,0 +va (VaSet +) +xt "78750,12800,81150,13800" +st "send" +blo "78750,13600" +tm "WireNameMgr" +) +) +on &42 +) +*58 (Wire +uid 1570,0 +shape (OrthoPolyLine +uid 1571,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "76750,12000,90000,51000" +pts [ +"76750,12000" +"90000,12000" +"90000,51000" +] +) +start &31 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1574,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1575,0 +va (VaSet +) +xt "78750,10800,82350,11800" +st "dataIn" +blo "78750,11600" +tm "WireNameMgr" +) +) +on &43 +) +*59 (Wire +uid 1592,0 +shape (OrthoPolyLine +uid 1593,0 +va (VaSet +vasetType 3 +) +xt "76750,22000,80000,22000" +pts [ +"76750,22000" +"80000,22000" +] +) +start &30 +sat 32 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 1598,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1599,0 +va (VaSet +) +xt "79250,20800,82250,21800" +st "reset" +blo "79250,21600" +tm "WireNameMgr" +) +) +on &16 +) +*60 (Wire +uid 1600,0 +shape (OrthoPolyLine +uid 1601,0 +va (VaSet +vasetType 3 +) +xt "76750,20000,80000,20000" +pts [ +"76750,20000" +"80000,20000" +] +) +start &29 +sat 32 +eat 16 +stc 0 +st 0 +si 0 +tg (WTG +uid 1606,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1607,0 +va (VaSet +) +xt "79000,18800,82000,19800" +st "clock" +blo "79000,19600" +tm "WireNameMgr" +) +) +on &17 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *61 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 42,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,6500,900" +st "Package List" +blo "0,700" +) +*63 (MLText +uid 43,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,30000,900" +st "Compiler Directives" +blo "20000,700" +) +*65 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,31500,1900" +st "Pre-module directives:" +blo "20000,1700" +) +*66 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*67 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,32000,4900" +st "Post-module directives:" +blo "20000,4700" +) +*68 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*69 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,31500,5900" +st "End-module directives:" +blo "20000,5700" +) +*70 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "3281,358,4545,1205" +viewArea "-1604,-1604,122609,75955" +cachedDiagramExtent "0,0,109000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 595 +paperHeight 842 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210mm x 297mm)" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1733,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*72 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*73 (Text +va (VaSet +font "courier,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +font "courier,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*75 (Text +va (VaSet +font "courier,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*76 (Text +va (VaSet +font "courier,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +font "courier,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*78 (Text +va (VaSet +font "courier,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*79 (Text +va (VaSet +font "courier,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +va (VaSet +font "courier,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*81 (Text +va (VaSet +font "courier,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*82 (Text +va (VaSet +font "courier,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +font "courier,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*84 (Text +va (VaSet +font "courier,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*85 (Text +va (VaSet +font "courier,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "courier,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*87 (Text +va (VaSet +font "courier,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "courier,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*88 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*89 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*91 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,7400,6500,8300" +st "Declarations" +blo "0,8100" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,8300,3000,9200" +st "Ports:" +blo "0,9000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,9200,4500,10100" +st "Pre User:" +blo "0,9900" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10100,39000,18200" +st "constant clockFrequency: real := 66.0E6; + +constant rs232BaudRate: real := 115.2E3; +constant rs232BitNb: positive := 8; + +constant uvmDriverVerbosity: natural := 1; +constant uvmMonitorVerbosity: natural := 1; +constant uvmDriverFileSpec: string := \"$SIMULATION_DIR/uartDriver.txt\"; +constant uvmMonitorFileSpec: string := \"$SIMULATION_DIR/uartMonitor.txt\";" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "0,18200,8500,19100" +st "Diagram Signals:" +blo "0,18900" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,7400,5500,8300" +st "Post User:" +blo "0,8100" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,7400,0,7400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *92 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*93 (RefLabelRowHdr +) +*94 (TitleRowHdr +) +*95 (FilterRowHdr +) +*96 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*97 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*98 (GroupColHdr +tm "GroupColHdrMgr" +) +*99 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*100 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*101 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*102 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*103 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*104 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*105 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 8 +suid 21,0 +) +) +uid 1608,0 +) +*106 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "clock" +t "std_ulogic" +o 4 +suid 22,0 +) +) +uid 1610,0 +) +*107 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RxD" +t "std_uLogic" +o 1 +suid 24,0 +) +) +uid 1612,0 +) +*108 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "TxD" +t "std_uLogic" +o 2 +suid 25,0 +) +) +uid 1614,0 +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataValid" +t "std_ulogic" +o 7 +suid 26,0 +) +) +uid 1616,0 +) +*110 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 6 +suid 27,0 +) +) +uid 1618,0 +) +*111 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "busy" +t "std_ulogic" +o 3 +suid 28,0 +) +) +uid 1620,0 +) +*112 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "send" +t "std_ulogic" +o 9 +suid 29,0 +) +) +uid 1622,0 +) +*113 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 5 +suid 30,0 +) +) +uid 1624,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*114 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *115 (MRCItem +litem &92 +pos 9 +dimension 20 +) +uid 69,0 +optionalChildren [ +*116 (MRCItem +litem &93 +pos 0 +dimension 20 +uid 70,0 +) +*117 (MRCItem +litem &94 +pos 1 +dimension 23 +uid 71,0 +) +*118 (MRCItem +litem &95 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*119 (MRCItem +litem &105 +pos 0 +dimension 20 +uid 1609,0 +) +*120 (MRCItem +litem &106 +pos 1 +dimension 20 +uid 1611,0 +) +*121 (MRCItem +litem &107 +pos 2 +dimension 20 +uid 1613,0 +) +*122 (MRCItem +litem &108 +pos 3 +dimension 20 +uid 1615,0 +) +*123 (MRCItem +litem &109 +pos 4 +dimension 20 +uid 1617,0 +) +*124 (MRCItem +litem &110 +pos 5 +dimension 20 +uid 1619,0 +) +*125 (MRCItem +litem &111 +pos 6 +dimension 20 +uid 1621,0 +) +*126 (MRCItem +litem &112 +pos 7 +dimension 20 +uid 1623,0 +) +*127 (MRCItem +litem &113 +pos 8 +dimension 20 +uid 1625,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*128 (MRCItem +litem &96 +pos 0 +dimension 20 +uid 74,0 +) +*129 (MRCItem +litem &98 +pos 1 +dimension 50 +uid 75,0 +) +*130 (MRCItem +litem &99 +pos 2 +dimension 100 +uid 76,0 +) +*131 (MRCItem +litem &100 +pos 3 +dimension 50 +uid 77,0 +) +*132 (MRCItem +litem &101 +pos 4 +dimension 100 +uid 78,0 +) +*133 (MRCItem +litem &102 +pos 5 +dimension 100 +uid 79,0 +) +*134 (MRCItem +litem &103 +pos 6 +dimension 50 +uid 80,0 +) +*135 (MRCItem +litem &104 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *136 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*137 (RefLabelRowHdr +) +*138 (TitleRowHdr +) +*139 (FilterRowHdr +) +*140 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*141 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*142 (GroupColHdr +tm "GroupColHdrMgr" +) +*143 (NameColHdr +tm "GenericNameColHdrMgr" +) +*144 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*145 (InitColHdr +tm "GenericValueColHdrMgr" +) +*146 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*147 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*148 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *149 (MRCItem +litem &136 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*150 (MRCItem +litem &137 +pos 0 +dimension 20 +uid 98,0 +) +*151 (MRCItem +litem &138 +pos 1 +dimension 23 +uid 99,0 +) +*152 (MRCItem +litem &139 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*153 (MRCItem +litem &140 +pos 0 +dimension 20 +uid 102,0 +) +*154 (MRCItem +litem &142 +pos 1 +dimension 50 +uid 103,0 +) +*155 (MRCItem +litem &143 +pos 2 +dimension 100 +uid 104,0 +) +*156 (MRCItem +litem &144 +pos 3 +dimension 100 +uid 105,0 +) +*157 (MRCItem +litem &145 +pos 4 +dimension 50 +uid 106,0 +) +*158 (MRCItem +litem &146 +pos 5 +dimension 50 +uid 107,0 +) +*159 (MRCItem +litem &147 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RS232_test/hds/uvm@rs232_tb/symbol.sb b/Libs/RS232_test/hds/uvm@rs232_tb/symbol.sb new file mode 100644 index 0000000..d89f899 --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232_tb/symbol.sb @@ -0,0 +1,1274 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 0 +dimension 20 +) +uid 68,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 0 +dimension 20 +) +uid 96,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 97,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 98,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 101,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 102,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 103,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 104,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 105,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 106,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tb" +) +(vvPair +variable "d_logical" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvmRs232_tb" +) +(vvPair +variable "date" +value "02/25/2022" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "25" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmRs232_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois.corthay" +) +(vvPair +variable "graphical_source_date" +value "02/25/2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7525" +) +(vvPair +variable "graphical_source_time" +value "14:48:34" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7525" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "uvmRs232_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvmRs232_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:48:34" +) +(vvPair +variable "unit" +value "uvmRs232_tb" +) +(vvPair +variable "user" +value "francois.corthay" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "31000,15000,47000,25000" +) +oxt "15000,6000,27000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,25000,37600,26200" +st "RS232_test" +blo "30600,26000" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "30600,26200,38600,27400" +st "uvmRs232_tb" +blo "30600,27200" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Verdana,8,0" +) +xt "31000,29200,40700,30200" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48500,34200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44500,51200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46500,34200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46500,30200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,65300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44500,55200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "35350,44400,45650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47500,30200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48500,30200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47500,34200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "Verdana,8,1" +) +xt "-2000,0,4900,1000" +st "Package List" +blo "-2000,800" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,15500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "136,41,1416,882" +viewArea "-3100,-1000,72644,48320" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Verdana,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Verdana,8,0" +) +xt "0,12000,9700,13000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Verdana,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-2000,5400,5000,6400" +st "Declarations" +blo "-2000,6200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-2000,6400,1400,7400" +st "Ports:" +blo "-2000,7200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-2000,7400,1000,8400" +st "User:" +blo "-2000,8200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-2000,5400,5600,6400" +st "Internal User:" +blo "-2000,6200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "0,8400,0,8400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-2000,5400,-2000,5400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1064,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RS232_test/hds/uvm@rs232_tester/interface b/Libs/RS232_test/hds/uvm@rs232_tester/interface new file mode 100644 index 0000000..1df3719 --- /dev/null +++ b/Libs/RS232_test/hds/uvm@rs232_tester/interface @@ -0,0 +1,1770 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 35,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "busy" +t "std_ulogic" +o 7 +suid 29,0 +) +) +uid 529,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 30,0 +) +) +uid 531,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 9 +suid 31,0 +) +) +uid 533,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 6 +suid 32,0 +) +) +uid 535,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 33,0 +) +) +uid 537,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 1 +suid 34,0 +) +) +uid 539,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "send" +t "std_ulogic" +o 8 +suid 35,0 +) +) +uid 541,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 117,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 118,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 119,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 530,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 532,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 534,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 536,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 538,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 540,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 542,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 122,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 123,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 124,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 125,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 126,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 127,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 128,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 101,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 131,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "rs232BitNb" +type "positive" +value "8" +) +uid 180,0 +) +*54 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +uid 277,0 +) +*55 (LogGeneric +generic (GiElement +name "rs232BaudRate" +type "real" +value "9.6E3" +) +uid 374,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*56 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *57 (MRCItem +litem &41 +pos 3 +dimension 20 +) +uid 145,0 +optionalChildren [ +*58 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 146,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 147,0 +) +*60 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 181,0 +) +*62 (MRCItem +litem &54 +pos 0 +dimension 20 +uid 278,0 +) +*63 (MRCItem +litem &55 +pos 1 +dimension 20 +uid 375,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*64 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 150,0 +) +*65 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 151,0 +) +*66 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 152,0 +) +*67 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 153,0 +) +*68 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 154,0 +) +*69 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 155,0 +) +*70 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 156,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 130,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tester" +) +(vvPair +variable "d_logical" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvmRs232_tester" +) +(vvPair +variable "date" +value "02/25/2022" +) +(vvPair +variable "day" +value "Fri" +) +(vvPair +variable "day_long" +value "Friday" +) +(vvPair +variable "dd" +value "25" +) +(vvPair +variable "entity_name" +value "uvmRs232_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "francois.corthay" +) +(vvPair +variable "graphical_source_date" +value "02/25/2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7525" +) +(vvPair +variable "graphical_source_time" +value "14:42:40" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7525" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "RS232_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/RS232_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "uvmRs232_tester" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvm@rs232_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\Users\\francois.corthay\\Documents\\SEm_labs\\05-Morse\\..\\Libs\\RS232_test\\hds\\uvmRs232_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:42:40" +) +(vvPair +variable "unit" +value "uvmRs232_tester" +) +(vvPair +variable "user" +value "francois.corthay" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 100,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 495,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84625,5250,85375,6000" +) +tg (CPTG +uid 496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 497,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "84300,7000,85700,10800" +st "busy" +ju 2 +blo "85500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 498,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,61500,3200" +st "busy : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "busy" +t "std_ulogic" +o 7 +suid 29,0 +) +) +) +*73 (CptPort +uid 499,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 500,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 501,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 502,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,10800" +st "clock" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 503,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61500,5600" +st "clock : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 30,0 +) +) +) +*74 (CptPort +uid 504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 505,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88625,5250,89375,6000" +) +tg (CPTG +uid 506,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 507,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "88300,7000,89700,12000" +st "dataIn" +ju 2 +blo "89500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 508,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,77000,6400" +st "dataIn : OUT std_ulogic_vector (rs232BitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 9 +suid 31,0 +) +) +) +*75 (CptPort +uid 509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 510,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80625,5250,81375,6000" +) +tg (CPTG +uid 511,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 512,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "80300,7000,81700,13000" +st "dataOut" +ju 2 +blo "81500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 513,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,77000,4000" +st "dataOut : IN std_ulogic_vector (rs232BitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(rs232BitNb-1 DOWNTO 0)" +o 6 +suid 32,0 +) +) +) +*76 (CptPort +uid 514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 515,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78625,5250,79375,6000" +) +tg (CPTG +uid 516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 517,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "78300,7000,79700,13700" +st "dataValid" +ju 2 +blo "79500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 518,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61500,4800" +st "dataValid : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "dataValid" +t "std_ulogic" +o 5 +suid 33,0 +) +) +) +*77 (CptPort +uid 519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 520,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 521,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 522,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,11100" +st "reset" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 523,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,61500,7200" +st "reset : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "reset" +t "std_ulogic" +o 1 +suid 34,0 +) +) +) +*78 (CptPort +uid 524,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 525,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86625,5250,87375,6000" +) +tg (CPTG +uid 526,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 527,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "86300,7000,87700,10900" +st "send" +ju 2 +blo "87500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 528,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,60500,8000" +st "send : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "send" +t "std_ulogic" +o 8 +suid 35,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,99000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "52000,8800,59000,10000" +st "RS232_test" +blo "52000,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "52000,10000,62000,11200" +st "uvmRs232_tester" +blo "52000,11000" +) +) +gi *79 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "27500,6000,45500,10000" +st "Generic Declarations + +clockFrequency real 100.0E6 +rs232BaudRate real 9.6E3 +rs232BitNb positive 8 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "100.0E6" +) +(GiElement +name "rs232BaudRate" +type "real" +value "9.6E3" +) +(GiElement +name "rs232BitNb" +type "positive" +value "8" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*80 (Grouping +uid 16,0 +optionalChildren [ +*81 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,49100,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *91 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*93 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all;" +tm "PackageList" +) +] +) +windowSize "24,390,1043,1080" +viewArea "-500,-500,70690,47560" +cachedDiagramExtent "0,0,99000,49000" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "RS232_test" +entityName "uvmRs232_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *94 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *95 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,8000,45200,9200" +st "User:" +blo "42000,9000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,44000,9200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 542,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RS232_test/sim/serialPortTransmitter.do b/Libs/RS232_test/sim/serialPortTransmitter.do new file mode 100644 index 0000000..81ab60a --- /dev/null +++ b/Libs/RS232_test/sim/serialPortTransmitter.do @@ -0,0 +1,32 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /serialporttransmitter_tb/clock +add wave -noupdate /serialporttransmitter_tb/reset +add wave -noupdate -divider Controls +add wave -noupdate -radix hexadecimal -radixshowbase 0 /serialporttransmitter_tb/dataIn +add wave -noupdate /serialporttransmitter_tb/send +add wave -noupdate -divider Internals +add wave -noupdate /serialporttransmitter_tb/I_DUT/dividerCounterReset +add wave -noupdate /serialporttransmitter_tb/I_DUT/txSendingByte +add wave -noupdate /serialporttransmitter_tb/I_DUT/txSendingByteAndStop +add wave -noupdate -divider {Serial out} +add wave -noupdate /serialporttransmitter_tb/busy +add wave -noupdate /serialporttransmitter_tb/TxD +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {33909547739 ps} 0} +quietly wave cursor active 1 +configure wave -namecolwidth 142 +configure wave -valuecolwidth 40 +configure wave -justifyvalue left +configure wave -signalnamewidth 1 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits ms +update +WaveRestoreZoom {0 ps} {315 us} diff --git a/Libs/RS232_test/sim/uartDriver.txt b/Libs/RS232_test/sim/uartDriver.txt new file mode 100644 index 0000000..f3be4de --- /dev/null +++ b/Libs/RS232_test/sim/uartDriver.txt @@ -0,0 +1,9 @@ +at 1 us +info setting baud rate +uart_baud 115200 + +at 100 us +uart_send Hello + +wait 1 ms +uart_send world diff --git a/Libs/RS232_test/sim/uvmRs232.do b/Libs/RS232_test/sim/uvmRs232.do new file mode 100644 index 0000000..f509539 --- /dev/null +++ b/Libs/RS232_test/sim/uvmRs232.do @@ -0,0 +1,37 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate -group {Reset and clock} /uvmrs232_tb/reset +add wave -noupdate -group {Reset and clock} /uvmrs232_tb/clock +add wave -noupdate -expand -group {UART signals} /uvmrs232_tb/RxD +add wave -noupdate -expand -group {UART signals} /uvmrs232_tb/TxD +add wave -noupdate -expand -group {UART Tx} /uvmrs232_tb/I_tester/rs232TxString +add wave -noupdate -expand -group {UART Tx} /uvmrs232_tb/I_tester/rs232SendString +add wave -noupdate -expand -group {UART Tx} /uvmrs232_tb/dataIn +add wave -noupdate -expand -group {UART Tx} /uvmrs232_tb/send +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/U_DUT/I_driv/outString +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/U_DUT/I_driv/sendString +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/U_DUT/I_driv/outChar +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/U_DUT/I_driv/sendChar +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/dataOut +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/dataValid +add wave -noupdate -expand -group {UART Rx} /uvmrs232_tb/I_tester/rs232RxChar +add wave -noupdate -expand -group Transactions /uvmrs232_tb/U_DUT/driverTransaction +add wave -noupdate -expand -group Transactions /uvmrs232_tb/U_DUT/monitorTransaction +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {0 ps} 0} +quietly wave cursor active 0 +configure wave -namecolwidth 247 +configure wave -valuecolwidth 40 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits us +update +WaveRestoreZoom {0 ps} {2100 us} diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hdl/instrDecoder_rtl.vhd b/Libs/RiscV/HEIRV32/MultiCycle/hdl/instrDecoder_rtl.vhd new file mode 100644 index 0000000..64f7d5a --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hdl/instrDecoder_rtl.vhd @@ -0,0 +1,18 @@ + +ARCHITECTURE rtl OF instrDecoder IS +BEGIN + + decode : process(op) + begin + case op is + when "0000011" => immSrc <= "00"; -- lw + when "0100011" => immSrc <= "01"; -- sw + when "0110011" => immSrc <= "--"; -- R-type + when "1100011" => immSrc <= "10"; -- beq + when "0010011" => immSrc <= "00"; -- l-type ALU + when "1101111" => immSrc <= "11"; -- jal + when others => immSrc <= "--"; -- unknwon + end case; + end process decode; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hdl/instructionForwarder_rtl.vhd b/Libs/RiscV/HEIRV32/MultiCycle/hdl/instructionForwarder_rtl.vhd new file mode 100644 index 0000000..6438c9b --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hdl/instructionForwarder_rtl.vhd @@ -0,0 +1,26 @@ + +ARCHITECTURE rtl OF instructionForwarder IS + signal lvec_irMem : std_ulogic_vector(readData'range); +BEGIN + +-- forwardIR : process(rst, clk) +-- begin +-- if rst = '1' then +-- lvec_irMem <= (others => '0'); +-- elsif rising_edge(clk) then +-- if en = '1' and IRWrite = '1' then +-- lvec_irMem <= readData; +-- end if; +-- end if; +-- end process forwardIR; + + forwardIR : process(readData, irWrite) + begin + if irWrite = '1' then + lvec_irMem <= readData; + end if; + end process forwardIR; + + instruction <= lvec_irMem; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/_controlunit._epf b/Libs/RiscV/HEIRV32/MultiCycle/hds/_controlunit._epf new file mode 100644 index 0000000..d61749d --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/_controlunit._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom control@unit/struct.bd diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/_heirv32_mc._epf b/Libs/RiscV/HEIRV32/MultiCycle/hds/_heirv32_mc._epf new file mode 100644 index 0000000..ec27f95 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/_heirv32_mc._epf @@ -0,0 +1,3 @@ +TOP_MARKER atom 1 +DEFAULT_FILE atom heirv32_mc/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/_instrdecoder._epf b/Libs/RiscV/HEIRV32/MultiCycle/hds/_instrdecoder._epf new file mode 100644 index 0000000..bb7952a --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/_instrdecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom instrDecoder_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/_instructiondatamemory._epf b/Libs/RiscV/HEIRV32/MultiCycle/hds/_instructiondatamemory._epf new file mode 100644 index 0000000..d4472ca --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/_instructiondatamemory._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom instruction@data@memory/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/_instructionforwarder._epf b/Libs/RiscV/HEIRV32/MultiCycle/hds/_instructionforwarder._epf new file mode 100644 index 0000000..8c24fdd --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/_instructionforwarder._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom instructionForwarder_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/_mainfsm._epf b/Libs/RiscV/HEIRV32/MultiCycle/hds/_mainfsm._epf new file mode 100644 index 0000000..d9c4b8f --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/_mainfsm._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom fsm +DEFAULT_FILE atom main@f@s@m/fsm.sm diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/struct.bd b/Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/struct.bd new file mode 100644 index 0000000..f822d73 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/struct.bd @@ -0,0 +1,6095 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +instances [ +(Instance +name "U_0" +duLibraryName "gates" +duName "or2" +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +mwi 0 +uid 395,0 +) +(Instance +name "U_1" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +mwi 0 +uid 420,0 +) +(Instance +name "U_instrDecoder" +duLibraryName "HEIRV32_MC" +duName "instrDecoder" +elements [ +] +mwi 0 +uid 955,0 +) +(Instance +name "U_mainFSM" +duLibraryName "HEIRV32_MC" +duName "mainFSM" +elements [ +] +mwi 0 +uid 1230,0 +) +(Instance +name "U_aluDecoder" +duLibraryName "HEIRV32" +duName "aluDecoder" +elements [ +(GiElement +name "g_tDec" +type "time" +value "25 ps" +) +] +mwi 0 +uid 1415,0 +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\controlUnit" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "controlUnit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:25:25" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_MC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/MultiCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "controlUnit" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\controlUnit\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:25:25" +) +(vvPair +variable "unit" +value "controlUnit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 310,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "34000,44625,35500,45375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "35500,45000,36000,45000" +pts [ +"35500,45000" +"36000,45000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +) +xt "30800,44400,33000,45600" +st "clk" +ju 2 +blo "33000,45400" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,2400,35000,3200" +st "clk : std_ulogic +" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "33000,57625,34500,58375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "34500,58000,35000,58000" +pts [ +"34500,58000" +"35000,58000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +) +xt "28100,57400,32000,58600" +st "funct3" +ju 2 +blo "32000,58400" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4000,45000,4800" +st "funct3 : std_ulogic_vector(2 DOWNTO 0) +" +) +) +*5 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "33000,59625,34500,60375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "34500,60000,35000,60000" +pts [ +"34500,60000" +"35000,60000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +) +xt "28100,59400,32000,60600" +st "funct7" +ju 2 +blo "32000,60400" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 4 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4800,35000,5600" +st "funct7 : std_ulogic +" +) +) +*7 (PortIoIn +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 270 +xt "27000,33625,28500,34375" +) +(Line +uid 54,0 +sl 0 +ro 270 +xt "28500,34000,29000,34000" +pts [ +"28500,34000" +"29000,34000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +) +xt "24100,33400,26000,34600" +st "op" +ju 2 +blo "26000,34400" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 63,0 +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 5 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,45000,6400" +st "op : std_ulogic_vector(6 DOWNTO 0) +" +) +) +*9 (PortIoIn +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 270 +xt "34000,46625,35500,47375" +) +(Line +uid 68,0 +sl 0 +ro 270 +xt "35500,47000,36000,47000" +pts [ +"35500,47000" +"36000,47000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +) +xt "30900,46400,33000,47600" +st "rst" +ju 2 +blo "33000,47400" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 77,0 +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 6 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,35000,7200" +st "rst : std_ulogic +" +) +) +*11 (PortIoIn +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 270 +xt "34000,24625,35500,25375" +) +(Line +uid 82,0 +sl 0 +ro 270 +xt "35500,25000,36000,25000" +pts [ +"35500,25000" +"36000,25000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "30200,24400,33000,25600" +st "zero" +ju 2 +blo "33000,25400" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 91,0 +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,7200,35000,8000" +st "zero : std_ulogic +" +) +) +*13 (PortIoOut +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "56500,58625,58000,59375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "56000,59000,56500,59000" +pts [ +"56000,59000" +"56500,59000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +) +xt "59000,58400,66300,59600" +st "ALUControl" +blo "59000,59400" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 105,0 +lang 11 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 8 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,45000,8800" +st "ALUControl : std_ulogic_vector(2 DOWNTO 0) +" +) +) +*15 (PortIoOut +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "56500,44625,58000,45375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "56000,45000,56500,45000" +pts [ +"56000,45000" +"56500,45000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "59000,44400,64400,45600" +st "ALUSrcA" +blo "59000,45400" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 119,0 +lang 11 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 9 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8800,45000,9600" +st "ALUSrcA : std_ulogic_vector(1 DOWNTO 0) +" +) +) +*17 (PortIoOut +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "56500,42625,58000,43375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "56000,43000,56500,43000" +pts [ +"56000,43000" +"56500,43000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +) +xt "59000,42400,64300,43600" +st "ALUSrcB" +blo "59000,43400" +tm "WireNameMgr" +) +) +) +*18 (Net +uid 133,0 +lang 11 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 9,0 +) +declText (MLText +uid 134,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,9600,45000,10400" +st "ALUSrcB : std_ulogic_vector(1 DOWNTO 0) +" +) +) +*19 (PortIoOut +uid 135,0 +shape (CompositeShape +uid 136,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 137,0 +sl 0 +ro 270 +xt "56500,38625,58000,39375" +) +(Line +uid 138,0 +sl 0 +ro 270 +xt "56000,39000,56500,39000" +pts [ +"56000,39000" +"56500,39000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 139,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 140,0 +va (VaSet +) +xt "59000,38400,63500,39600" +st "IRWrite" +blo "59000,39400" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 147,0 +lang 11 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 11 +suid 10,0 +) +declText (MLText +uid 148,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,10400,35000,11200" +st "IRWrite : std_ulogic +" +) +) +*21 (PortIoOut +uid 149,0 +shape (CompositeShape +uid 150,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 151,0 +sl 0 +ro 270 +xt "79500,28625,81000,29375" +) +(Line +uid 152,0 +sl 0 +ro 270 +xt "79000,29000,79500,29000" +pts [ +"79000,29000" +"79500,29000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 153,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 154,0 +va (VaSet +) +xt "82000,28400,86800,29600" +st "PCWrite" +blo "82000,29400" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 161,0 +lang 11 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 12 +suid 11,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,11200,35000,12000" +st "PCWrite : std_ulogic +" +) +) +*23 (PortIoOut +uid 177,0 +shape (CompositeShape +uid 178,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 179,0 +sl 0 +ro 270 +xt "57500,69625,59000,70375" +) +(Line +uid 180,0 +sl 0 +ro 270 +xt "57000,70000,57500,70000" +pts [ +"57000,70000" +"57500,70000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 181,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 182,0 +va (VaSet +) +xt "60000,69400,64500,70600" +st "immSrc" +blo "60000,70400" +tm "WireNameMgr" +) +) +) +*24 (Net +uid 189,0 +lang 11 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 13,0 +) +declText (MLText +uid 190,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,12800,45000,13600" +st "immSrc : std_ulogic_vector(1 DOWNTO 0) +" +) +) +*25 (PortIoOut +uid 191,0 +shape (CompositeShape +uid 192,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 193,0 +sl 0 +ro 270 +xt "56500,36625,58000,37375" +) +(Line +uid 194,0 +sl 0 +ro 270 +xt "56000,37000,56500,37000" +pts [ +"56000,37000" +"56500,37000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 195,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 196,0 +va (VaSet +) +xt "59000,36400,64700,37600" +st "memWrite" +blo "59000,37400" +tm "WireNameMgr" +) +) +) +*26 (Net +uid 203,0 +lang 11 +decl (Decl +n "memWrite" +t "std_ulogic" +o 15 +suid 14,0 +) +declText (MLText +uid 204,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,13600,35000,14400" +st "memWrite : std_ulogic +" +) +) +*27 (PortIoOut +uid 205,0 +shape (CompositeShape +uid 206,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 207,0 +sl 0 +ro 270 +xt "56500,34625,58000,35375" +) +(Line +uid 208,0 +sl 0 +ro 270 +xt "56000,35000,56500,35000" +pts [ +"56000,35000" +"56500,35000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 209,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 210,0 +va (VaSet +) +xt "59000,34400,63700,35600" +st "regwrite" +blo "59000,35400" +tm "WireNameMgr" +) +) +) +*28 (Net +uid 217,0 +lang 11 +decl (Decl +n "regwrite" +t "std_ulogic" +o 16 +suid 15,0 +) +declText (MLText +uid 218,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,14400,35000,15200" +st "regwrite : std_ulogic +" +) +) +*29 (PortIoOut +uid 219,0 +shape (CompositeShape +uid 220,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 221,0 +sl 0 +ro 270 +xt "56500,40625,58000,41375" +) +(Line +uid 222,0 +sl 0 +ro 270 +xt "56000,41000,56500,41000" +pts [ +"56000,41000" +"56500,41000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 223,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 224,0 +va (VaSet +) +xt "59000,40400,64300,41600" +st "resultSrc" +blo "59000,41400" +tm "WireNameMgr" +) +) +) +*30 (Net +uid 231,0 +lang 11 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 17 +suid 16,0 +) +declText (MLText +uid 232,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,15200,45000,16000" +st "resultSrc : std_ulogic_vector(1 DOWNTO 0) +" +) +) +*31 (Grouping +uid 267,0 +optionalChildren [ +*32 (CommentText +uid 269,0 +shape (Rectangle +uid 270,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,4000,70000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 271,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,4000,64700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*33 (CommentText +uid 272,0 +shape (Rectangle +uid 273,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,0,74000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 274,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "70200,0,73200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*34 (CommentText +uid 275,0 +shape (Rectangle +uid 276,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,2000,70000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 277,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,2000,63200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*35 (CommentText +uid 278,0 +shape (Rectangle +uid 279,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,2000,53000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 280,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,2000,51300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*36 (CommentText +uid 281,0 +shape (Rectangle +uid 282,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,1000,90000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 283,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "70200,1200,79600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*37 (CommentText +uid 284,0 +shape (Rectangle +uid 285,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,0,90000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 286,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "74200,0,75800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*38 (CommentText +uid 287,0 +shape (Rectangle +uid 288,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,0,70000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 289,0 +va (VaSet +fg "32768,0,0" +) +xt "54350,400,64650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*39 (CommentText +uid 290,0 +shape (Rectangle +uid 291,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,3000,53000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 292,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,3000,51300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*40 (CommentText +uid 293,0 +shape (Rectangle +uid 294,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,4000,53000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 295,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,4000,51900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*41 (CommentText +uid 296,0 +shape (Rectangle +uid 297,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,3000,70000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 298,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,3000,65300,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 268,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "49000,0,90000,5000" +) +oxt "14000,66000,55000,71000" +) +*42 (PortIoOut +uid 369,0 +shape (CompositeShape +uid 370,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 371,0 +sl 0 +ro 270 +xt "56500,46625,58000,47375" +) +(Line +uid 372,0 +sl 0 +ro 270 +xt "56000,47000,56500,47000" +pts [ +"56000,47000" +"56500,47000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 373,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 374,0 +va (VaSet +) +xt "59000,46500,63000,47700" +st "adrSrc" +blo "59000,47500" +tm "WireNameMgr" +) +) +) +*43 (Net +uid 381,0 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 13 +suid 17,0 +) +declText (MLText +uid 382,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,12000,35000,12800" +st "adrSrc : std_uLogic +" +) +) +*44 (SaComponent +uid 395,0 +optionalChildren [ +*45 (CptPort +uid 383,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 384,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "67585,26625,68335,27375" +) +tg (CPTG +uid 385,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 386,0 +va (VaSet +isHidden 1 +) +xt "68557,26250,70857,27450" +st "in1" +blo "68557,27250" +) +s (Text +uid 405,0 +va (VaSet +isHidden 1 +) +xt "68557,27450,68557,27450" +blo "68557,27450" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*46 (CptPort +uid 387,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 388,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "67584,30625,68334,31375" +) +tg (CPTG +uid 389,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 390,0 +va (VaSet +isHidden 1 +) +xt "68557,30250,70857,31450" +st "in2" +blo "68557,31250" +) +s (Text +uid 406,0 +va (VaSet +isHidden 1 +) +xt "68557,31450,68557,31450" +blo "68557,31450" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +*47 (CptPort +uid 391,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 392,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "75000,28625,75750,29375" +) +tg (CPTG +uid 393,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 394,0 +va (VaSet +isHidden 1 +) +xt "71000,28250,74000,29450" +st "out1" +ju 2 +blo "74000,29250" +) +s (Text +uid 407,0 +va (VaSet +isHidden 1 +) +xt "74000,29450,74000,29450" +ju 2 +blo "74000,29450" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +suid 3,0 +) +) +) +] +shape (Or +uid 396,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,26000,75000,32000" +) +showPorts 0 +oxt "35000,14000,42000,20000" +ttg (MlTextGroup +uid 397,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 398,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "68600,31700,71700,32700" +st "gates" +blo "68600,32500" +tm "BdLibraryNameMgr" +) +*49 (Text +uid 399,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "68600,32700,70800,33700" +st "or2" +blo "68600,33500" +tm "CptNameMgr" +) +*50 (Text +uid 400,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "68600,32700,71100,33700" +st "U_0" +blo "68600,33500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 401,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 402,0 +text (MLText +uid 403,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "68000,34600,82100,35600" +st "delay = gateDelay ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +) +viewicon (ZoomableIcon +uid 404,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,30250,69750,31750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*51 (SaComponent +uid 420,0 +optionalChildren [ +*52 (CptPort +uid 408,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 409,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "58250,24625,59000,25375" +) +tg (CPTG +uid 410,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 411,0 +va (VaSet +isHidden 1 +) +xt "59000,24600,68500,25800" +st "in1 : std_uLogic" +blo "59000,25600" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*53 (CptPort +uid 412,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 413,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "58250,28625,59000,29375" +) +tg (CPTG +uid 414,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 415,0 +va (VaSet +isHidden 1 +) +xt "59000,28600,68500,29800" +st "in2 : std_uLogic" +blo "59000,29600" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +*54 (CptPort +uid 416,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 417,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "65950,26625,66700,27375" +) +tg (CPTG +uid 418,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 419,0 +va (VaSet +isHidden 1 +) +xt "55800,26550,66000,27750" +st "out1 : std_uLogic" +ju 2 +blo "66000,27550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +suid 3,0 +) +) +) +] +shape (And +uid 421,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "59000,24000,66000,30000" +) +showPorts 0 +oxt "31000,13000,38000,19000" +ttg (MlTextGroup +uid 422,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*55 (Text +uid 423,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "59600,29700,62700,30700" +st "gates" +blo "59600,30500" +tm "BdLibraryNameMgr" +) +*56 (Text +uid 424,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "59600,30700,62500,31700" +st "and2" +blo "59600,31500" +tm "CptNameMgr" +) +*57 (Text +uid 425,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "59600,30700,62100,31700" +st "U_1" +blo "59600,31500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 426,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 427,0 +text (MLText +uid 428,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "59000,33600,73100,34600" +st "delay = gateDelay ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +) +viewicon (ZoomableIcon +uid 429,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "59250,28250,60750,29750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*58 (Net +uid 430,0 +decl (Decl +n "out1" +t "std_uLogic" +o 21 +suid 18,0 +) +declText (MLText +uid 431,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,19600,38500,20400" +st "SIGNAL out1 : std_uLogic +" +) +) +*59 (Net +uid 444,0 +decl (Decl +n "branch" +t "std_uLogic" +o 20 +suid 20,0 +) +declText (MLText +uid 445,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,18800,38500,19600" +st "SIGNAL branch : std_uLogic +" +) +) +*60 (Net +uid 490,0 +decl (Decl +n "PCupdate" +t "std_uLogic" +o 19 +suid 23,0 +) +declText (MLText +uid 491,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,18000,38500,18800" +st "SIGNAL PCupdate : std_uLogic +" +) +) +*61 (Net +uid 619,0 +lang 11 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 25,0 +) +declText (MLText +uid 620,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,17200,48500,18000" +st "SIGNAL ALUOp : std_ulogic_vector(1 DOWNTO 0) +" +) +) +*62 (SaComponent +uid 955,0 +optionalChildren [ +*63 (CptPort +uid 947,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 948,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,69625,52750,70375" +) +tg (CPTG +uid 949,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 950,0 +va (VaSet +font "Verdana,12,0" +) +xt "45800,69300,51000,70700" +st "immSrc" +ju 2 +blo "51000,70500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 13 +suid 1,0 +) +) +) +*64 (CptPort +uid 951,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 952,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "41250,69625,42000,70375" +) +tg (CPTG +uid 953,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 954,0 +va (VaSet +font "Verdana,12,0" +) +xt "43000,69300,45400,70700" +st "op" +blo "43000,70500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 4 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 956,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "42000,68000,52000,73000" +) +oxt "20000,16000,30000,21000" +ttg (MlTextGroup +uid 957,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 958,0 +va (VaSet +font "Verdana,9,1" +) +xt "42250,73300,49850,74500" +st "HEIRV32_MC" +blo "42250,74300" +tm "BdLibraryNameMgr" +) +*66 (Text +uid 959,0 +va (VaSet +font "Verdana,9,1" +) +xt "42250,74500,49750,75700" +st "instrDecoder" +blo "42250,75500" +tm "CptNameMgr" +) +*67 (Text +uid 960,0 +va (VaSet +font "Verdana,9,1" +) +xt "42250,75700,51050,76900" +st "U_instrDecoder" +blo "42250,76700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 961,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 962,0 +text (MLText +uid 963,0 +va (VaSet +font "Courier New,8,0" +) +xt "42000,77200,42000,77200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 964,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "42250,71250,43750,72750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*68 (PortIoIn +uid 1017,0 +shape (CompositeShape +uid 1018,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1019,0 +sl 0 +ro 270 +xt "34000,42625,35500,43375" +) +(Line +uid 1020,0 +sl 0 +ro 270 +xt "35500,43000,36000,43000" +pts [ +"35500,43000" +"36000,43000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1021,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1022,0 +va (VaSet +) +xt "31100,42500,33000,43700" +st "en" +ju 2 +blo "33000,43500" +tm "WireNameMgr" +) +) +) +*69 (Net +uid 1029,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 26,0 +) +declText (MLText +uid 1030,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3200,35000,4000" +st "en : std_ulogic +" +) +) +*70 (SaComponent +uid 1230,0 +optionalChildren [ +*71 (CptPort +uid 1174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,46625,52750,47375" +) +tg (CPTG +uid 1176,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1177,0 +va (VaSet +font "Verdana,12,0" +) +xt "46200,46300,51000,47700" +st "adrSrc" +ju 2 +blo "51000,47500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 10 +suid 1,0 +) +) +) +*72 (CptPort +uid 1178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1179,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,50000,44375,50750" +) +tg (CPTG +uid 1180,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1181,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "43300,44000,44700,49000" +st "ALUOp" +blo "44500,49000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 5 +suid 2,0 +) +) +) +*73 (CptPort +uid 1182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1183,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,44625,52750,45375" +) +tg (CPTG +uid 1184,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1185,0 +va (VaSet +font "Verdana,12,0" +) +xt "45100,44300,51000,45700" +st "ALUSrcA" +ju 2 +blo "51000,45500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +) +*74 (CptPort +uid 1186,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1187,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,42625,52750,43375" +) +tg (CPTG +uid 1188,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1189,0 +va (VaSet +font "Verdana,12,0" +) +xt "45100,42300,51000,43700" +st "ALUSrcB" +ju 2 +blo "51000,43500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*75 (CptPort +uid 1190,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1191,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,30625,52750,31375" +) +tg (CPTG +uid 1192,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1193,0 +va (VaSet +font "Verdana,12,0" +) +xt "45900,30300,51000,31700" +st "branch" +ju 2 +blo "51000,31500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 11 +suid 5,0 +) +) +) +*76 (CptPort +uid 1194,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1195,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,44625,39000,45375" +) +tg (CPTG +uid 1196,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1197,0 +va (VaSet +font "Verdana,12,0" +) +xt "40000,44300,42400,45700" +st "clk" +blo "40000,45500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 6,0 +) +) +) +*77 (CptPort +uid 1198,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1199,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,38625,52750,39375" +) +tg (CPTG +uid 1200,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1201,0 +va (VaSet +font "Verdana,12,0" +) +xt "45500,38300,51000,39700" +st "IRWrite" +ju 2 +blo "51000,39500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 8 +suid 7,0 +) +) +) +*78 (CptPort +uid 1202,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1203,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,36625,52750,37375" +) +tg (CPTG +uid 1204,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1205,0 +va (VaSet +font "Verdana,12,0" +) +xt "43800,36300,51000,37700" +st "memWrite" +ju 2 +blo "51000,37500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 12 +suid 8,0 +) +) +) +*79 (CptPort +uid 1206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1207,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,33625,39000,34375" +) +tg (CPTG +uid 1208,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1209,0 +va (VaSet +font "Verdana,12,0" +) +xt "40000,33300,42400,34700" +st "op" +blo "40000,34500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*80 (CptPort +uid 1210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1211,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,32625,52750,33375" +) +tg (CPTG +uid 1212,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1213,0 +va (VaSet +font "Verdana,12,0" +) +xt "44000,32300,51000,33700" +st "PCupdate" +ju 2 +blo "51000,33500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "PCupdate" +t "std_uLogic" +o 9 +suid 10,0 +) +) +) +*81 (CptPort +uid 1214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,34625,52750,35375" +) +tg (CPTG +uid 1216,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1217,0 +va (VaSet +font "Verdana,12,0" +) +xt "44900,34300,51000,35700" +st "regwrite" +ju 2 +blo "51000,35500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 13 +suid 11,0 +) +) +) +*82 (CptPort +uid 1218,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1219,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,40625,52750,41375" +) +tg (CPTG +uid 1220,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1221,0 +va (VaSet +font "Verdana,12,0" +) +xt "44700,40300,51000,41700" +st "resultSrc" +ju 2 +blo "51000,41500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 12,0 +) +) +) +*83 (CptPort +uid 1222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1223,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,46625,39000,47375" +) +tg (CPTG +uid 1224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1225,0 +va (VaSet +font "Verdana,12,0" +) +xt "40000,46300,42500,47700" +st "rst" +blo "40000,47500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 13,0 +) +) +) +*84 (CptPort +uid 1226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38250,42625,39000,43375" +) +tg (CPTG +uid 1228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1229,0 +va (VaSet +font "Verdana,12,0" +) +xt "40000,42300,42400,43700" +st "en" +blo "40000,43500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 1231,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "39000,30000,52000,50000" +) +oxt "12000,6000,25000,26000" +ttg (MlTextGroup +uid 1232,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +uid 1233,0 +va (VaSet +font "Verdana,9,1" +) +xt "39500,25800,47100,27000" +st "HEIRV32_MC" +blo "39500,26800" +tm "BdLibraryNameMgr" +) +*86 (Text +uid 1234,0 +va (VaSet +font "Verdana,9,1" +) +xt "39500,27000,44500,28200" +st "mainFSM" +blo "39500,28000" +tm "CptNameMgr" +) +*87 (Text +uid 1235,0 +va (VaSet +font "Verdana,9,1" +) +xt "39500,28200,45800,29400" +st "U_mainFSM" +blo "39500,29200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1236,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1237,0 +text (MLText +uid 1238,0 +va (VaSet +font "Courier New,8,0" +) +xt "41000,29000,41000,29000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 1239,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "39250,48250,40750,49750" +iconName "StateMachineViewIcon.png" +iconMaskName "StateMachineViewIcon.msk" +ftype 3 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*88 (SaComponent +uid 1415,0 +optionalChildren [ +*89 (CptPort +uid 1395,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1396,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "53000,58625,53750,59375" +) +tg (CPTG +uid 1397,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1398,0 +va (VaSet +font "Verdana,12,0" +) +xt "43400,58300,52000,59700" +st "ALUControl" +ju 2 +blo "52000,59500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 1,0 +) +) +) +*90 (CptPort +uid 1399,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1400,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,53250,44375,54000" +) +tg (CPTG +uid 1401,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1402,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "43300,55000,44700,60000" +st "ALUOp" +ju 2 +blo "44500,55000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 20 +suid 2,0 +) +) +) +*91 (CptPort +uid 1403,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1404,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,57625,37000,58375" +) +tg (CPTG +uid 1405,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1406,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,57300,42700,58700" +st "funct3" +blo "38000,58500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 2 +suid 3,0 +) +) +) +*92 (CptPort +uid 1407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1408,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,59625,37000,60375" +) +tg (CPTG +uid 1409,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1410,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,59300,42700,60700" +st "funct7" +blo "38000,60500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*93 (CptPort +uid 1411,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1412,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,55625,37000,56375" +) +tg (CPTG +uid 1413,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1414,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,55300,40400,56700" +st "op" +blo "38000,56500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 1416,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,54000,53000,63000" +) +oxt "20000,12000,36000,21000" +ttg (MlTextGroup +uid 1417,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +uid 1418,0 +va (VaSet +font "Verdana,9,1" +) +xt "53650,60800,58650,62000" +st "HEIRV32" +blo "53650,61800" +tm "BdLibraryNameMgr" +) +*95 (Text +uid 1419,0 +va (VaSet +font "Verdana,9,1" +) +xt "53650,62000,60350,63200" +st "aluDecoder" +blo "53650,63000" +tm "CptNameMgr" +) +*96 (Text +uid 1420,0 +va (VaSet +font "Verdana,9,1" +) +xt "53650,63200,61650,64400" +st "U_aluDecoder" +blo "53650,64200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1421,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1422,0 +text (MLText +uid 1423,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "54000,64200,69500,65000" +st "g_tDec = 25 ps ( time ) +" +) +header "" +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "25 ps" +) +] +) +viewicon (ZoomableIcon +uid 1424,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "37250,61250,38750,62750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*97 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "36000,45000,38250,45000" +pts [ +"36000,45000" +"38250,45000" +] +) +start &1 +end &76 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +isHidden 1 +) +xt "37000,43800,39200,45000" +st "clk" +blo "37000,44800" +tm "WireNameMgr" +) +) +on &2 +) +*98 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "35000,58000,36250,58000" +pts [ +"35000,58000" +"36250,58000" +] +) +start &3 +end &91 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +isHidden 1 +) +xt "30000,56800,38200,58000" +st "funct3 : (2:0)" +blo "30000,57800" +tm "WireNameMgr" +) +) +on &4 +) +*99 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "35000,60000,36250,60000" +pts [ +"35000,60000" +"36250,60000" +] +) +start &5 +end &92 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +isHidden 1 +) +xt "35000,58800,38900,60000" +st "funct7" +blo "35000,59800" +tm "WireNameMgr" +) +) +on &6 +) +*100 (Wire +uid 57,0 +optionalChildren [ +*101 (Ripper +uid 488,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"31000,34000" +"30000,35000" +] +uid 489,0 +va (VaSet +vasetType 3 +) +xt "30000,34000,31000,35000" +) +) +] +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "29000,34000,38250,34000" +pts [ +"29000,34000" +"38250,34000" +] +) +start &7 +end &79 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +isHidden 1 +) +xt "30000,32800,36200,34000" +st "op : (6:0)" +blo "30000,33800" +tm "WireNameMgr" +) +) +on &8 +) +*102 (Wire +uid 71,0 +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +) +xt "36000,47000,38250,47000" +pts [ +"36000,47000" +"38250,47000" +] +) +start &9 +end &83 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +isHidden 1 +) +xt "37000,45800,39100,47000" +st "rst" +blo "37000,46800" +tm "WireNameMgr" +) +) +on &10 +) +*103 (Wire +uid 85,0 +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +) +xt "36000,25000,59000,25000" +pts [ +"36000,25000" +"59000,25000" +] +) +start &11 +end &52 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +isHidden 1 +) +xt "38000,23800,40800,25000" +st "zero" +blo "38000,24800" +tm "WireNameMgr" +) +) +on &12 +) +*104 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "53750,59000,56000,59000" +pts [ +"56000,59000" +"53750,59000" +] +) +start &13 +end &89 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +isHidden 1 +) +xt "54000,57800,64900,59000" +st "ALUControl : (2:0)" +blo "54000,58800" +tm "WireNameMgr" +) +) +on &14 +) +*105 (Wire +uid 113,0 +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,45000,56000,45000" +pts [ +"56000,45000" +"52750,45000" +] +) +start &15 +end &73 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +isHidden 1 +) +xt "52000,43800,61700,45000" +st "ALUSrcA : (1:0)" +blo "52000,44800" +tm "WireNameMgr" +) +) +on &16 +) +*106 (Wire +uid 127,0 +shape (OrthoPolyLine +uid 128,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,43000,56000,43000" +pts [ +"56000,43000" +"52750,43000" +] +) +start &17 +end &74 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +isHidden 1 +) +xt "52000,41800,61600,43000" +st "ALUSrcB : (1:0)" +blo "52000,42800" +tm "WireNameMgr" +) +) +on &18 +) +*107 (Wire +uid 141,0 +shape (OrthoPolyLine +uid 142,0 +va (VaSet +vasetType 3 +) +xt "52750,39000,56000,39000" +pts [ +"56000,39000" +"52750,39000" +] +) +start &19 +end &77 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 145,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 146,0 +va (VaSet +isHidden 1 +) +xt "50000,37800,54500,39000" +st "IRWrite" +blo "50000,38800" +tm "WireNameMgr" +) +) +on &20 +) +*108 (Wire +uid 155,0 +shape (OrthoPolyLine +uid 156,0 +va (VaSet +vasetType 3 +) +xt "75000,29000,79000,29000" +pts [ +"79000,29000" +"75000,29000" +] +) +start &21 +end &47 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 159,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 160,0 +va (VaSet +isHidden 1 +) +xt "78000,27800,82800,29000" +st "PCWrite" +blo "78000,28800" +tm "WireNameMgr" +) +) +on &22 +) +*109 (Wire +uid 183,0 +shape (OrthoPolyLine +uid 184,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,70000,57000,70000" +pts [ +"57000,70000" +"52750,70000" +] +) +start &23 +end &63 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 187,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 188,0 +va (VaSet +isHidden 1 +) +xt "56000,68800,64800,70000" +st "immSrc : (1:0)" +blo "56000,69800" +tm "WireNameMgr" +) +) +on &24 +) +*110 (Wire +uid 197,0 +shape (OrthoPolyLine +uid 198,0 +va (VaSet +vasetType 3 +) +xt "52750,37000,56000,37000" +pts [ +"56000,37000" +"52750,37000" +] +) +start &25 +end &78 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 201,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 202,0 +va (VaSet +isHidden 1 +) +xt "50000,35800,55700,37000" +st "memWrite" +blo "50000,36800" +tm "WireNameMgr" +) +) +on &26 +) +*111 (Wire +uid 211,0 +shape (OrthoPolyLine +uid 212,0 +va (VaSet +vasetType 3 +) +xt "52750,35000,56000,35000" +pts [ +"56000,35000" +"52750,35000" +] +) +start &27 +end &81 +ss 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 215,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 216,0 +va (VaSet +isHidden 1 +) +xt "50000,33800,54700,35000" +st "regwrite" +blo "50000,34800" +tm "WireNameMgr" +) +) +on &28 +) +*112 (Wire +uid 225,0 +shape (OrthoPolyLine +uid 226,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,41000,56000,41000" +pts [ +"56000,41000" +"52750,41000" +] +) +start &29 +end &82 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 229,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 230,0 +va (VaSet +isHidden 1 +) +xt "52000,39800,61600,41000" +st "resultSrc : (1:0)" +blo "52000,40800" +tm "WireNameMgr" +) +) +on &30 +) +*113 (Wire +uid 375,0 +shape (OrthoPolyLine +uid 376,0 +va (VaSet +vasetType 3 +) +xt "52750,47000,56000,47000" +pts [ +"52750,47000" +"56000,47000" +] +) +start &71 +end &42 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 379,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 380,0 +va (VaSet +isHidden 1 +) +xt "51000,45800,55000,47000" +st "adrSrc" +blo "51000,46800" +tm "WireNameMgr" +) +) +on &43 +) +*114 (Wire +uid 432,0 +shape (OrthoPolyLine +uid 433,0 +va (VaSet +vasetType 3 +) +xt "65950,27000,68335,27000" +pts [ +"65950,27000" +"68335,27000" +] +) +start &54 +end &45 +sat 32 +eat 32 +sf 1 +si 0 +tg (WTG +uid 434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 435,0 +va (VaSet +isHidden 1 +) +xt "65950,25800,76150,27000" +st "out1 : std_uLogic" +blo "65950,26800" +tm "WireNameMgr" +) +) +on &58 +) +*115 (Wire +uid 438,0 +shape (OrthoPolyLine +uid 439,0 +va (VaSet +vasetType 3 +) +xt "52750,29000,59000,31000" +pts [ +"59000,29000" +"55000,29000" +"55000,31000" +"52750,31000" +] +) +start &53 +end &75 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 442,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 443,0 +va (VaSet +) +xt "55000,27800,59100,29000" +st "branch" +blo "55000,28800" +tm "WireNameMgr" +) +) +on &59 +) +*116 (Wire +uid 448,0 +shape (OrthoPolyLine +uid 449,0 +va (VaSet +vasetType 3 +) +xt "52750,31000,68334,33000" +pts [ +"68334,31000" +"56000,31000" +"56000,33000" +"52750,33000" +] +) +start &46 +end &80 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 452,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 453,0 +va (VaSet +) +xt "63000,29800,68600,31000" +st "PCupdate" +blo "63000,30800" +tm "WireNameMgr" +) +s (Text +uid 549,0 +va (VaSet +isHidden 1 +) +xt "63000,31000,63000,31000" +blo "63000,31000" +tm "SignalTypeMgr" +) +) +on &60 +) +*117 (Wire +uid 482,0 +shape (OrthoPolyLine +uid 483,0 +va (VaSet +vasetType 3 +) +xt "30000,35000,36250,56000" +pts [ +"30000,35000" +"30000,56000" +"36250,56000" +] +) +start &101 +end &93 +sat 32 +eat 32 +sl "(5)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 486,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 487,0 +va (VaSet +) +xt "32000,54800,35400,56000" +st "op(5)" +blo "32000,55800" +tm "WireNameMgr" +) +) +on &8 +) +*118 (Wire +uid 611,0 +shape (OrthoPolyLine +uid 612,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "44000,50750,44000,53250" +pts [ +"44000,50750" +"44000,53250" +] +) +start &72 +end &90 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 617,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 618,0 +va (VaSet +) +xt "45000,51800,49400,53000" +st "ALUOp" +blo "45000,52800" +tm "WireNameMgr" +) +) +on &61 +) +*119 (Wire +uid 633,0 +shape (OrthoPolyLine +uid 634,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "38000,70000,41250,70000" +pts [ +"38000,70000" +"41250,70000" +] +) +end &64 +sat 16 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 639,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 640,0 +va (VaSet +) +xt "39000,68800,40900,70000" +st "op" +blo "39000,69800" +tm "WireNameMgr" +) +) +on &8 +) +*120 (Wire +uid 1023,0 +shape (OrthoPolyLine +uid 1024,0 +va (VaSet +vasetType 3 +) +xt "36000,43000,38250,43000" +pts [ +"36000,43000" +"38250,43000" +] +) +start &68 +end &84 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1027,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1028,0 +va (VaSet +isHidden 1 +) +xt "38000,41800,39900,43000" +st "en" +blo "38000,42800" +tm "WireNameMgr" +) +) +on &69 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *121 (PackageList +uid 299,0 +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +uid 300,0 +va (VaSet +font "Verdana,9,1" +) +xt "-6000,800,1600,2000" +st "Package List" +blo "-6000,1800" +) +*123 (MLText +uid 301,0 +va (VaSet +) +xt "-6000,2000,11500,8000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 302,0 +stg "VerticalLayoutStrategy" +textVec [ +*124 (Text +uid 303,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*125 (Text +uid 304,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*126 (MLText +uid 305,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*127 (Text +uid 306,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*128 (MLText +uid 307,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*129 (Text +uid 308,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*130 (MLText +uid 309,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-7400,-1500,139891,76800" +cachedDiagramExtent "-6000,0,90000,76900" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,0" +lastUid 1424,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*132 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*133 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*134 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*135 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*136 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*137 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*138 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*139 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*140 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*141 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*142 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*143 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*144 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*145 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*147 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*148 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*149 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*150 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*151 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,25200,1200" +st "Pre User:" +blo "20000,1000" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,16000,29500,17200" +st "Diagram Signals:" +blo "20000,17000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 26,0 +usingSuid 1 +emptyRow *152 (LEmptyRow +) +uid 312,0 +optionalChildren [ +*153 (RefLabelRowHdr +) +*154 (TitleRowHdr +) +*155 (FilterRowHdr +) +*156 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*157 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*158 (GroupColHdr +tm "GroupColHdrMgr" +) +*159 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*160 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*161 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*162 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*163 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*164 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*165 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 12 +suid 11,0 +) +) +uid 233,0 +) +*166 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 15 +suid 14,0 +) +) +uid 237,0 +) +*167 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 11 +suid 10,0 +) +) +uid 239,0 +) +*168 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 5 +suid 4,0 +) +) +uid 241,0 +) +*169 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 2,0 +) +) +uid 243,0 +) +*170 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 4 +suid 3,0 +) +) +uid 245,0 +) +*171 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 6,0 +) +) +uid 247,0 +) +*172 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 249,0 +) +*173 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 17 +suid 16,0 +) +) +uid 251,0 +) +*174 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 8 +suid 7,0 +) +) +uid 253,0 +) +*175 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 6 +suid 5,0 +) +) +uid 255,0 +) +*176 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 9,0 +) +) +uid 257,0 +) +*177 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 9 +suid 8,0 +) +) +uid 259,0 +) +*178 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 13,0 +) +) +uid 261,0 +) +*179 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 16 +suid 15,0 +) +) +uid 263,0 +) +*180 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 13 +suid 17,0 +) +) +uid 368,0 +) +*181 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "out1" +t "std_uLogic" +o 21 +suid 18,0 +) +) +uid 476,0 +) +*182 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "branch" +t "std_uLogic" +o 20 +suid 20,0 +) +) +uid 478,0 +) +*183 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "PCupdate" +t "std_uLogic" +o 19 +suid 23,0 +) +) +uid 492,0 +) +*184 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 25,0 +) +) +uid 621,0 +) +*185 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 26,0 +) +) +uid 1016,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 325,0 +optionalChildren [ +*186 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *187 (MRCItem +litem &152 +pos 21 +dimension 20 +) +uid 327,0 +optionalChildren [ +*188 (MRCItem +litem &153 +pos 0 +dimension 20 +uid 328,0 +) +*189 (MRCItem +litem &154 +pos 1 +dimension 23 +uid 329,0 +) +*190 (MRCItem +litem &155 +pos 2 +hidden 1 +dimension 20 +uid 330,0 +) +*191 (MRCItem +litem &165 +pos 8 +dimension 20 +uid 234,0 +) +*192 (MRCItem +litem &166 +pos 7 +dimension 20 +uid 238,0 +) +*193 (MRCItem +litem &167 +pos 6 +dimension 20 +uid 240,0 +) +*194 (MRCItem +litem &168 +pos 5 +dimension 20 +uid 242,0 +) +*195 (MRCItem +litem &169 +pos 12 +dimension 20 +uid 244,0 +) +*196 (MRCItem +litem &170 +pos 13 +dimension 20 +uid 246,0 +) +*197 (MRCItem +litem &171 +pos 11 +dimension 20 +uid 248,0 +) +*198 (MRCItem +litem &172 +pos 14 +dimension 20 +uid 250,0 +) +*199 (MRCItem +litem &173 +pos 10 +dimension 20 +uid 252,0 +) +*200 (MRCItem +litem &174 +pos 1 +dimension 20 +uid 254,0 +) +*201 (MRCItem +litem &175 +pos 15 +dimension 20 +uid 256,0 +) +*202 (MRCItem +litem &176 +pos 3 +dimension 20 +uid 258,0 +) +*203 (MRCItem +litem &177 +pos 2 +dimension 20 +uid 260,0 +) +*204 (MRCItem +litem &178 +pos 4 +dimension 20 +uid 262,0 +) +*205 (MRCItem +litem &179 +pos 9 +dimension 20 +uid 264,0 +) +*206 (MRCItem +litem &180 +pos 0 +dimension 20 +uid 367,0 +) +*207 (MRCItem +litem &181 +pos 17 +dimension 20 +uid 477,0 +) +*208 (MRCItem +litem &182 +pos 18 +dimension 20 +uid 479,0 +) +*209 (MRCItem +litem &183 +pos 19 +dimension 20 +uid 493,0 +) +*210 (MRCItem +litem &184 +pos 20 +dimension 20 +uid 622,0 +) +*211 (MRCItem +litem &185 +pos 16 +dimension 20 +uid 1015,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 331,0 +optionalChildren [ +*212 (MRCItem +litem &156 +pos 0 +dimension 20 +uid 332,0 +) +*213 (MRCItem +litem &158 +pos 1 +dimension 50 +uid 333,0 +) +*214 (MRCItem +litem &159 +pos 2 +dimension 100 +uid 334,0 +) +*215 (MRCItem +litem &160 +pos 3 +dimension 50 +uid 335,0 +) +*216 (MRCItem +litem &161 +pos 4 +dimension 100 +uid 336,0 +) +*217 (MRCItem +litem &162 +pos 5 +dimension 100 +uid 337,0 +) +*218 (MRCItem +litem &163 +pos 6 +dimension 50 +uid 338,0 +) +*219 (MRCItem +litem &164 +pos 7 +dimension 80 +uid 339,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 326,0 +vaOverrides [ +] +) +] +) +uid 311,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *220 (LEmptyRow +) +uid 341,0 +optionalChildren [ +*221 (RefLabelRowHdr +) +*222 (TitleRowHdr +) +*223 (FilterRowHdr +) +*224 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*225 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*226 (GroupColHdr +tm "GroupColHdrMgr" +) +*227 (NameColHdr +tm "GenericNameColHdrMgr" +) +*228 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*229 (InitColHdr +tm "GenericValueColHdrMgr" +) +*230 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*231 (EolColHdr +tm "GenericEolColHdrMgr" +) +*232 (LogGeneric +generic (GiElement +name "g_datawidth" +type "positive" +value "32" +) +uid 265,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 353,0 +optionalChildren [ +*233 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *234 (MRCItem +litem &220 +pos 1 +dimension 20 +) +uid 355,0 +optionalChildren [ +*235 (MRCItem +litem &221 +pos 0 +dimension 20 +uid 356,0 +) +*236 (MRCItem +litem &222 +pos 1 +dimension 23 +uid 357,0 +) +*237 (MRCItem +litem &223 +pos 2 +hidden 1 +dimension 20 +uid 358,0 +) +*238 (MRCItem +litem &232 +pos 0 +dimension 20 +uid 266,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 359,0 +optionalChildren [ +*239 (MRCItem +litem &224 +pos 0 +dimension 20 +uid 360,0 +) +*240 (MRCItem +litem &226 +pos 1 +dimension 50 +uid 361,0 +) +*241 (MRCItem +litem &227 +pos 2 +dimension 100 +uid 362,0 +) +*242 (MRCItem +litem &228 +pos 3 +dimension 100 +uid 363,0 +) +*243 (MRCItem +litem &229 +pos 4 +dimension 50 +uid 364,0 +) +*244 (MRCItem +litem &230 +pos 5 +dimension 50 +uid 365,0 +) +*245 (MRCItem +litem &231 +pos 6 +dimension 80 +uid 366,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 354,0 +vaOverrides [ +] +) +] +) +uid 340,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/symbol.sb b/Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/symbol.sb new file mode 100644 index 0000000..635163f --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/control@unit/symbol.sb @@ -0,0 +1,2439 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 18,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 137,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 8 +suid 2,0 +) +) +uid 113,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 9 +suid 3,0 +) +) +uid 115,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 4,0 +) +) +uid 117,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 5,0 +) +) +uid 119,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 121,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 11 +suid 7,0 +) +) +uid 123,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 15 +suid 8,0 +) +) +uid 125,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 12 +suid 9,0 +) +) +uid 127,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 16 +suid 10,0 +) +) +uid 129,0 +) +*23 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 17 +suid 11,0 +) +) +uid 131,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 12,0 +) +) +uid 133,0 +) +*25 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 13,0 +) +) +uid 240,0 +) +*26 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 4 +suid 14,0 +) +) +uid 242,0 +) +*27 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 15,0 +) +) +uid 254,0 +) +*28 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 6 +suid 16,0 +) +) +uid 256,0 +) +*29 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 13 +suid 17,0 +) +) +uid 388,0 +) +*30 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 18,0 +) +) +uid 440,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 150,0 +optionalChildren [ +*31 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *32 (MRCItem +litem &1 +pos 17 +dimension 20 +) +uid 152,0 +optionalChildren [ +*33 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 153,0 +) +*34 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 154,0 +) +*35 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 155,0 +) +*36 (MRCItem +litem &14 +pos 1 +dimension 20 +uid 114,0 +) +*37 (MRCItem +litem &15 +pos 2 +dimension 20 +uid 116,0 +) +*38 (MRCItem +litem &16 +pos 3 +dimension 20 +uid 118,0 +) +*39 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 120,0 +) +*40 (MRCItem +litem &18 +pos 5 +dimension 20 +uid 122,0 +) +*41 (MRCItem +litem &19 +pos 6 +dimension 20 +uid 124,0 +) +*42 (MRCItem +litem &20 +pos 7 +dimension 20 +uid 126,0 +) +*43 (MRCItem +litem &21 +pos 8 +dimension 20 +uid 128,0 +) +*44 (MRCItem +litem &22 +pos 9 +dimension 20 +uid 130,0 +) +*45 (MRCItem +litem &23 +pos 10 +dimension 20 +uid 132,0 +) +*46 (MRCItem +litem &24 +pos 11 +dimension 20 +uid 134,0 +) +*47 (MRCItem +litem &25 +pos 12 +dimension 20 +uid 241,0 +) +*48 (MRCItem +litem &26 +pos 13 +dimension 20 +uid 243,0 +) +*49 (MRCItem +litem &27 +pos 14 +dimension 20 +uid 255,0 +) +*50 (MRCItem +litem &28 +pos 15 +dimension 20 +uid 257,0 +) +*51 (MRCItem +litem &29 +pos 0 +dimension 20 +uid 387,0 +) +*52 (MRCItem +litem &30 +pos 16 +dimension 20 +uid 441,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 156,0 +optionalChildren [ +*53 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 157,0 +) +*54 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 158,0 +) +*55 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 159,0 +) +*56 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 160,0 +) +*57 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 161,0 +) +*58 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 162,0 +) +*59 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 163,0 +) +*60 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 164,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 151,0 +vaOverrides [ +] +) +] +) +uid 136,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *61 (LEmptyRow +) +uid 166,0 +optionalChildren [ +*62 (RefLabelRowHdr +) +*63 (TitleRowHdr +) +*64 (FilterRowHdr +) +*65 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*66 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*67 (GroupColHdr +tm "GroupColHdrMgr" +) +*68 (NameColHdr +tm "GenericNameColHdrMgr" +) +*69 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*70 (InitColHdr +tm "GenericValueColHdrMgr" +) +*71 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*72 (EolColHdr +tm "GenericEolColHdrMgr" +) +*73 (LogGeneric +generic (GiElement +name "g_datawidth" +type "positive" +value "32" +) +uid 215,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 178,0 +optionalChildren [ +*74 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *75 (MRCItem +litem &61 +pos 1 +dimension 20 +) +uid 180,0 +optionalChildren [ +*76 (MRCItem +litem &62 +pos 0 +dimension 20 +uid 181,0 +) +*77 (MRCItem +litem &63 +pos 1 +dimension 23 +uid 182,0 +) +*78 (MRCItem +litem &64 +pos 2 +hidden 1 +dimension 20 +uid 183,0 +) +*79 (MRCItem +litem &73 +pos 0 +dimension 20 +uid 216,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 184,0 +optionalChildren [ +*80 (MRCItem +litem &65 +pos 0 +dimension 20 +uid 185,0 +) +*81 (MRCItem +litem &67 +pos 1 +dimension 50 +uid 186,0 +) +*82 (MRCItem +litem &68 +pos 2 +dimension 100 +uid 187,0 +) +*83 (MRCItem +litem &69 +pos 3 +dimension 100 +uid 188,0 +) +*84 (MRCItem +litem &70 +pos 4 +dimension 50 +uid 189,0 +) +*85 (MRCItem +litem &71 +pos 5 +dimension 50 +uid 190,0 +) +*86 (MRCItem +litem &72 +pos 6 +dimension 80 +uid 191,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 179,0 +vaOverrides [ +] +) +] +) +uid 165,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\controlUnit" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "controlUnit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:25:37" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_MC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/MultiCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "controlUnit" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\control@unit\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\controlUnit\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:25:37" +) +(vvPair +variable "unit" +value "controlUnit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 135,0 +optionalChildren [ +*87 (SymbolBody +uid 8,0 +optionalChildren [ +*88 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19000,23625,19750,24375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "9400,23300,18000,24700" +st "ALUControl" +ju 2 +blo "18000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,72000,8800" +st "ALUControl : OUT std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 8 +suid 2,0 +) +) +) +*89 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19000,27625,19750,28375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "12100,27300,18000,28700" +st "ALUSrcA" +ju 2 +blo "18000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,72000,9600" +st "ALUSrcA : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 9 +suid 3,0 +) +) +) +*90 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19000,25625,19750,26375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,12,0" +) +xt "12100,25300,18000,26700" +st "ALUSrcB" +ju 2 +blo "18000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9600,72000,10400" +st "ALUSrcB : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 4,0 +) +) +) +*91 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19000,29625,19750,30375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,12,0" +) +xt "12800,29300,18000,30700" +st "immSrc" +ju 2 +blo "18000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12800,72000,13600" +st "immSrc : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 5,0 +) +) +) +*92 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,29625,2000,30375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,29300,5400,30700" +st "op" +blo "3000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,72000,6400" +st "op : IN std_ulogic_vector (6 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*93 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,26625,2000,27375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,26300,8500,27700" +st "IRWrite" +blo "3000,27500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10400,62000,11200" +st "IRWrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 11 +suid 7,0 +) +) +) +*94 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,24625,2000,25375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,24300,10200,25700" +st "memWrite" +blo "3000,25500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13600,62000,14400" +st "memWrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 15 +suid 8,0 +) +) +) +*95 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,20625,2000,21375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,20300,8900,21700" +st "PCWrite" +blo "3000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11200,62000,12000" +st "PCWrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 12 +suid 9,0 +) +) +) +*96 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19000,31625,19750,32375" +) +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 99,0 +va (VaSet +font "Verdana,12,0" +) +xt "11900,31300,18000,32700" +st "regwrite" +ju 2 +blo "18000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,14400,62000,15200" +st "regwrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 16 +suid 10,0 +) +) +) +*97 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19000,21625,19750,22375" +) +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 104,0 +va (VaSet +font "Verdana,12,0" +) +xt "11700,21300,18000,22700" +st "resultSrc" +ju 2 +blo "18000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,15200,71000,16000" +st "resultSrc : OUT std_ulogic_vector (1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 17 +suid 11,0 +) +) +) +*98 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "9625,37000,10375,37750" +) +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 109,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "9300,32400,10700,36000" +st "zero" +blo "10500,36000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,62000,8000" +st "zero : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 12,0 +) +) +) +*99 (CptPort +uid 244,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 245,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,31625,2000,32375" +) +tg (CPTG +uid 246,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 247,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,31300,7700,32700" +st "funct3" +blo "3000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 248,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,72000,4800" +st "funct3 : IN std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 13,0 +) +) +) +*100 (CptPort +uid 249,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 250,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,33625,2000,34375" +) +tg (CPTG +uid 251,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 252,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,33300,7700,34700" +st "funct7" +blo "3000,34500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 253,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,62000,5600" +st "funct7 : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 4 +suid 14,0 +) +) +) +*101 (CptPort +uid 258,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 259,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "5625,15250,6375,16000" +) +tg (CPTG +uid 260,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 261,0 +va (VaSet +font "Verdana,12,0" +) +xt "4550,16450,6950,17850" +st "clk" +ju 2 +blo "6950,17650" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 262,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,62000,3200" +st "clk : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 15,0 +) +) +) +*102 (CptPort +uid 263,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 264,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "9625,15250,10375,16000" +) +tg (CPTG +uid 265,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 266,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "9300,17000,10700,19500" +st "rst" +ju 2 +blo "10500,17000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 267,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,62000,7200" +st "rst : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 6 +suid 16,0 +) +) +) +*103 (CptPort +uid 389,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 390,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "1250,22625,2000,23375" +) +tg (CPTG +uid 391,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 392,0 +va (VaSet +font "Verdana,12,0" +) +xt "3000,22300,7800,23700" +st "adrSrc" +blo "3000,23500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 393,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12000,62000,12800" +st "adrSrc : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 13 +suid 17,0 +) +) +) +*104 (CptPort +uid 442,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 443,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "12625,15250,13375,16000" +) +tg (CPTG +uid 444,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 445,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "12300,17000,13700,19400" +st "en" +ju 2 +blo "13500,17000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 446,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,62000,4000" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 18,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "2000,16000,19000,37000" +) +oxt "15000,6000,23000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "12600,37800,20200,39000" +st "HEIRV32_MC" +blo "12600,38800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "12600,39000,19400,40200" +st "controlUnit" +blo "12600,40000" +) +) +gi *105 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "13000,40600,27000,43000" +st "Generic Declarations + +g_datawidth positive 32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*106 (Grouping +uid 16,0 +optionalChildren [ +*107 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*108 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*109 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*110 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*111 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*112 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*113 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*114 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*115 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*116 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,48900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*117 (CommentGraphic +uid 268,0 +shape (PolyLine2D +pts [ +"4000,16000" +"6000,20000" +] +uid 269,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "4000,16000,6000,20000" +) +oxt "16000,16000,18000,20000" +) +*118 (CommentGraphic +uid 270,0 +shape (PolyLine2D +pts [ +"6000,20000" +"8000,16000" +] +uid 271,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "6000,16000,8000,20000" +) +oxt "18000,16000,20000,20000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *119 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*121 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1021,690" +viewArea "-22200,4000,49170,49720" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *122 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *123 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,16000,45200,17200" +st "User:" +blo "42000,17000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,17200,44000,17200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 538,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/struct.bd b/Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/struct.bd new file mode 100644 index 0000000..7ce79a7 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/struct.bd @@ -0,0 +1,13169 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +instances [ +(Instance +name "U_pcMux" +duLibraryName "gates" +duName "mux2to1Unsigned" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +mwi 0 +uid 822,0 +) +(Instance +name "U_resultToUnsigned" +duLibraryName "gates" +duName "transUlogUnsigned" +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 2835,0 +) +(Instance +name "U_aluBuffer" +duLibraryName "HEIRV32" +duName "bufferStdULogEnable" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 3778,0 +) +(Instance +name "U_0" +duLibraryName "gates" +duName "transUnsignedUlog" +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 4044,0 +) +(Instance +name "U_pcBuffer" +duLibraryName "HEIRV32" +duName "bufferStdULogEnable" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 4064,0 +) +(Instance +name "U_and1" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +mwi 0 +uid 4528,0 +) +(Instance +name "U_and2" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +mwi 0 +uid 4546,0 +) +(Instance +name "U_instrDataMemory" +duLibraryName "HEIRV32_MC" +duName "instructionDataMemory" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_addrWidth" +type "positive" +value "c_bramAddrWidth" +) +(GiElement +name "g_programFile" +type "string" +value "g_programFile" +) +] +mwi 0 +uid 6827,0 +) +(Instance +name "U_instrForward" +duLibraryName "HEIRV32_MC" +duName "instructionForwarder" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 6849,0 +) +(Instance +name "U_controlUnit" +duLibraryName "HEIRV32_MC" +duName "controlUnit" +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 6931,0 +) +(Instance +name "U_pcLoadBuffer" +duLibraryName "HEIRV32" +duName "bufferUnsignedEnable" +elements [ +(GiElement +name "g_bitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tPC" +type "time" +value "35 ps" +) +] +mwi 0 +uid 7823,0 +) +(Instance +name "U_srcBSel" +duLibraryName "HEIRV32" +duName "mux4To1ULogVec" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +mwi 0 +uid 7857,0 +) +(Instance +name "U_srcASel" +duLibraryName "HEIRV32" +duName "mux4To1ULogVec" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +mwi 0 +uid 7891,0 +) +(Instance +name "U_resultSel" +duLibraryName "HEIRV32" +duName "mux4To1ULogVec" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +mwi 0 +uid 7925,0 +) +(Instance +name "U_extend" +duLibraryName "HEIRV32" +duName "extend" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tExt" +type "time" +value "35 ps" +) +] +mwi 0 +uid 8060,0 +) +(Instance +name "U_alu" +duLibraryName "HEIRV32" +duName "ALU" +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tALU" +type "time" +value "120 ps" +) +] +mwi 0 +uid 8090,0 +) +(Instance +name "U_registerFile" +duLibraryName "HEIRV32" +duName "registerFile" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_btnsNb" +type "positive" +value "g_btnsNb" +) +(GiElement +name "g_tRfRd" +type "time" +value "100 ps" +) +(GiElement +name "g_tRfWr" +type "time" +value "60 ps" +) +(GiElement +name "g_tSetup" +type "time" +value "50 ps" +) +] +mwi 0 +uid 8152,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "heirv32_mc" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:29:12" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_MC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/MultiCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_mc" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:29:12" +) +(vvPair +variable "unit" +value "heirv32_mc" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,4000,76000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,4000,70700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,0,80000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "76200,0,79200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,2000,76000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,2000,69200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,2000,59000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,2000,57300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,1000,96000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "76200,1200,85600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "80000,0,96000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "80200,0,81800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,0,76000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "60350,400,70650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,3000,59000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,3000,57300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,4000,59000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,4000,57900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,3000,76000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,3000,71600,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "55000,0,96000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 362,0 +shape (CompositeShape +uid 363,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 364,0 +sl 0 +ro 270 +xt "9000,37625,10500,38375" +) +(Line +uid 365,0 +sl 0 +ro 270 +xt "10500,38000,11000,38000" +pts [ +"10500,38000" +"11000,38000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 366,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 367,0 +va (VaSet +) +xt "5800,37400,8000,38600" +st "clk" +ju 2 +blo "8000,38400" +tm "WireNameMgr" +) +) +) +*13 (PortIoIn +uid 368,0 +shape (CompositeShape +uid 369,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 370,0 +sl 0 +ro 270 +xt "9000,39625,10500,40375" +) +(Line +uid 371,0 +sl 0 +ro 270 +xt "10500,40000,11000,40000" +pts [ +"10500,40000" +"11000,40000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 372,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 373,0 +va (VaSet +) +xt "5900,39400,8000,40600" +st "rst" +ju 2 +blo "8000,40400" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 486,0 +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 13 +suid 18,0 +) +declText (MLText +uid 487,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,16000,51500,16800" +st "SIGNAL PC : unsigned(c_dataWidth - 1 downto 0)" +) +) +*15 (Net +uid 672,0 +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 20,0 +) +declText (MLText +uid 673,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4800,35500,5600" +st "rst : std_ulogic" +) +) +*16 (Net +uid 674,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 21,0 +) +declText (MLText +uid 675,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3200,35500,4000" +st "clk : std_ulogic" +) +) +*17 (Net +uid 722,0 +lang 11 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 15 +suid 23,0 +) +declText (MLText +uid 723,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,17600,39000,18400" +st "SIGNAL PCWrite : std_ulogic" +) +) +*18 (Net +uid 796,0 +lang 11 +decl (Decl +n "PCNext" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 14 +suid 26,0 +) +declText (MLText +uid 797,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,16800,51500,17600" +st "SIGNAL PCNext : unsigned(c_dataWidth - 1 downto 0)" +) +) +*19 (SaComponent +uid 822,0 +optionalChildren [ +*20 (CptPort +uid 806,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 807,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "25250,78625,26000,79375" +) +tg (CPTG +uid 808,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 809,0 +va (VaSet +font "Verdana,8,0" +) +xt "26339,78427,28039,79427" +st "in0" +blo "26339,79227" +) +s (Text +uid 832,0 +va (VaSet +) +xt "26339,79427,26339,79427" +blo "26339,79427" +) +) +thePort (LogicalPort +decl (Decl +n "in0" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*21 (CptPort +uid 810,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 811,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "30000,79625,30750,80375" +) +tg (CPTG +uid 812,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 813,0 +va (VaSet +fg "65535,65535,65535" +font "Verdana,8,0" +) +xt "30300,78500,34000,79500" +st "muxOut" +ju 2 +blo "34000,79300" +) +s (Text +uid 833,0 +va (VaSet +) +xt "34000,79500,34000,79500" +ju 2 +blo "34000,79500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "muxOut" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 2,0 +) +) +) +*22 (CptPort +uid 814,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 815,0 +ro 180 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "28625,77750,29375,78500" +) +tg (CPTG +uid 816,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 817,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "28400,78833,29400,80433" +st "sel" +ju 2 +blo "29200,78833" +) +s (Text +uid 834,0 +ro 270 +va (VaSet +) +xt "29400,78833,29400,78833" +ju 2 +blo "29400,78833" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*23 (CptPort +uid 818,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 819,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "25250,80625,26000,81375" +) +tg (CPTG +uid 820,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 821,0 +va (VaSet +font "Verdana,8,0" +) +xt "26367,80527,28067,81527" +st "in1" +blo "26367,81327" +) +s (Text +uid 835,0 +va (VaSet +) +xt "26367,81527,26367,81527" +blo "26367,81527" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +] +shape (Mux +uid 823,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "26000,77000,30000,83000" +) +showPorts 0 +oxt "38000,2000,44000,18000" +ttg (MlTextGroup +uid 824,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*24 (Text +uid 825,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "22600,82700,25700,83700" +st "gates" +blo "22600,83500" +tm "BdLibraryNameMgr" +) +*25 (Text +uid 826,0 +va (VaSet +font "Verdana,8,1" +) +xt "22600,83700,32300,84700" +st "mux2to1Unsigned" +blo "22600,84500" +tm "CptNameMgr" +) +*26 (Text +uid 827,0 +va (VaSet +font "Verdana,8,1" +) +xt "22600,84700,27500,85700" +st "U_pcMux" +blo "22600,85500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 828,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 829,0 +text (MLText +uid 830,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "22000,86000,40500,88000" +st "dataBitNb = c_dataWidth ( positive ) +delay = gateDelay ( time ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +) +viewicon (ZoomableIcon +uid 831,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "26250,81250,27750,82750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*27 (Net +uid 858,0 +decl (Decl +n "adr" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 18 +suid 30,0 +) +declText (MLText +uid 859,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,20000,50500,20800" +st "SIGNAL adr : unsigned(c_dataWidth-1 DOWNTO 0)" +) +) +*28 (Net +uid 906,0 +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 35 +suid 33,0 +) +declText (MLText +uid 907,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,33600,55000,34400" +st "SIGNAL writeData : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*29 (Net +uid 1112,0 +lang 11 +decl (Decl +n "memWrite" +t "std_ulogic" +o 27 +suid 36,0 +) +declText (MLText +uid 1113,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,27200,39000,28000" +st "SIGNAL memWrite : std_ulogic" +) +) +*30 (Net +uid 1162,0 +lang 11 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 12 +suid 37,0 +) +declText (MLText +uid 1163,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,15200,39000,16000" +st "SIGNAL IRWrite : std_ulogic" +) +) +*31 (Net +uid 1172,0 +lang 11 +decl (Decl +n "data" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 20 +suid 38,0 +) +declText (MLText +uid 1173,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,21600,55000,22400" +st "SIGNAL data : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*32 (Net +uid 1310,0 +lang 11 +decl (Decl +n "oldPC" +t "std_ulogic_vector" +b "(c_dataWidth - 1 DOWNTO 0)" +o 28 +suid 44,0 +) +declText (MLText +uid 1311,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,28000,56000,28800" +st "SIGNAL oldPC : std_ulogic_vector(c_dataWidth - 1 DOWNTO 0)" +) +) +*33 (Net +uid 1362,0 +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 36 +suid 46,0 +) +declText (MLText +uid 1363,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,34400,39000,35200" +st "SIGNAL zero : std_ulogic" +) +) +*34 (Net +uid 1376,0 +lang 11 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 32 +suid 48,0 +) +declText (MLText +uid 1377,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,31200,49000,32000" +st "SIGNAL resultSrc : std_ulogic_vector(1 DOWNTO 0)" +) +) +*35 (Net +uid 1388,0 +lang 11 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 50,0 +) +declText (MLText +uid 1389,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,11200,49000,12000" +st "SIGNAL ALUControl : std_ulogic_vector(2 DOWNTO 0)" +) +) +*36 (Net +uid 1430,0 +lang 11 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 55,0 +) +declText (MLText +uid 1431,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,14400,49000,15200" +st "SIGNAL ALUSrcB : std_ulogic_vector(1 DOWNTO 0)" +) +) +*37 (Net +uid 1432,0 +lang 11 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 56,0 +) +declText (MLText +uid 1433,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,13600,49000,14400" +st "SIGNAL ALUSrcA : std_ulogic_vector(1 DOWNTO 0)" +) +) +*38 (Net +uid 1434,0 +lang 11 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 25 +suid 57,0 +) +declText (MLText +uid 1435,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,25600,49000,26400" +st "SIGNAL immSrc : std_ulogic_vector(1 DOWNTO 0)" +) +) +*39 (Net +uid 1436,0 +lang 11 +decl (Decl +n "regwrite" +t "std_ulogic" +o 30 +suid 58,0 +) +declText (MLText +uid 1437,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,29600,39000,30400" +st "SIGNAL regwrite : std_ulogic" +) +) +*40 (Net +uid 1662,0 +lang 11 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 26 +suid 59,0 +) +declText (MLText +uid 1663,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,26400,55000,27200" +st "SIGNAL instruction : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*41 (Net +uid 1884,0 +lang 11 +decl (Decl +n "RD1" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 17 +suid 62,0 +) +declText (MLText +uid 1885,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,19200,55000,20000" +st "SIGNAL RD1 : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*42 (Net +uid 2122,0 +lang 11 +decl (Decl +n "immExt" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 24 +suid 65,0 +) +declText (MLText +uid 2123,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,24800,55000,25600" +st "SIGNAL immExt : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*43 (HdlText +uid 2376,0 +optionalChildren [ +*44 (EmbeddedText +uid 2382,0 +commentText (CommentText +uid 2383,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 2384,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "103000,37000,137000,40000" +) +oxt "0,0,18000,5000" +text (MLText +uid 2385,0 +va (VaSet +) +xt "103200,37200,137000,39600" +st " +four_zeros <= (c_dataWidth - 1 downto 0 => '0'); +four_four <= std_ulogic_vector(to_unsigned(4, c_dataWidth)); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 3000 +visibleWidth 34000 +) +) +) +] +shape (Rectangle +uid 2377,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "103000,36000,137000,42000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2378,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 2379,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "110800,41800,113200,43000" +st "eb1" +blo "110800,42800" +tm "HdlTextNameMgr" +) +*46 (Text +uid 2380,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "110800,43000,112000,44200" +st "1" +blo "110800,44000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 2381,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "103250,40250,104750,41750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*47 (Net +uid 2450,0 +lang 11 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 33 +suid 74,0 +) +declText (MLText +uid 2451,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,32000,55000,32800" +st "SIGNAL srcA : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*48 (Net +uid 2452,0 +lang 11 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 34 +suid 75,0 +) +declText (MLText +uid 2453,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,32800,55000,33600" +st "SIGNAL srcB : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*49 (Net +uid 2595,0 +lang 11 +decl (Decl +n "ALUResult" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 9 +suid 79,0 +) +declText (MLText +uid 2596,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,12800,55000,13600" +st "SIGNAL ALUResult : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*50 (Net +uid 2763,0 +lang 11 +decl (Decl +n "ALUOut" +t "std_ulogic_vector" +b "(c_dataWidth - 1 DOWNTO 0)" +o 8 +suid 82,0 +) +declText (MLText +uid 2764,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,12000,56000,12800" +st "SIGNAL ALUOut : std_ulogic_vector(c_dataWidth - 1 DOWNTO 0)" +) +) +*51 (SaComponent +uid 2835,0 +optionalChildren [ +*52 (CptPort +uid 2827,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2828,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "33000,100625,33750,101375" +) +tg (CPTG +uid 2829,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2830,0 +va (VaSet +isHidden 1 +) +xt "30700,100100,33000,101300" +st "in1" +ju 2 +blo "33000,101100" +) +s (Text +uid 2845,0 +va (VaSet +isHidden 1 +) +xt "33000,101300,33000,101300" +ju 2 +blo "33000,101300" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*53 (CptPort +uid 2831,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2832,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "27250,100625,28000,101375" +) +tg (CPTG +uid 2833,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2834,0 +va (VaSet +isHidden 1 +) +xt "28000,100100,31000,101300" +st "out1" +blo "28000,101100" +) +s (Text +uid 2846,0 +va (VaSet +isHidden 1 +) +xt "28000,101300,28000,101300" +blo "28000,101300" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 2836,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "28000,98000,33000,104000" +) +showPorts 0 +oxt "36000,15000,41000,21000" +ttg (MlTextGroup +uid 2837,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*54 (Text +uid 2838,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "28310,103600,31410,104600" +st "gates" +blo "28310,104400" +tm "BdLibraryNameMgr" +) +*55 (Text +uid 2839,0 +va (VaSet +font "Verdana,8,1" +) +xt "28310,104600,38510,105600" +st "transUlogUnsigned" +blo "28310,105400" +tm "CptNameMgr" +) +*56 (Text +uid 2840,0 +va (VaSet +font "Verdana,8,1" +) +xt "28310,105600,39010,106600" +st "U_resultToUnsigned" +blo "28310,106400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2841,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2842,0 +text (MLText +uid 2843,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "28000,108000,46500,110000" +st "delay = gateDelay ( time ) +dataBitNb = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 2844,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "28250,102250,29750,103750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*57 (Net +uid 2853,0 +decl (Decl +n "result" +t "std_uLogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 31 +suid 84,0 +) +declText (MLText +uid 2854,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,30400,55000,31200" +st "SIGNAL result : std_uLogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*58 (Net +uid 2935,0 +decl (Decl +n "four_zeros" +t "std_ulogic_vector" +b "(c_dataWidth-1 downto 0)" +o 23 +suid 85,0 +) +declText (MLText +uid 2936,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,24000,55000,24800" +st "SIGNAL four_zeros : std_ulogic_vector(c_dataWidth-1 downto 0)" +) +) +*59 (Net +uid 2937,0 +decl (Decl +n "four_four" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 22 +suid 86,0 +) +declText (MLText +uid 2938,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,23200,55000,24000" +st "SIGNAL four_four : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*60 (Net +uid 3181,0 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 19 +suid 88,0 +) +declText (MLText +uid 3182,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,20800,39000,21600" +st "SIGNAL adrSrc : std_uLogic" +) +) +*61 (SaComponent +uid 3778,0 +optionalChildren [ +*62 (CptPort +uid 3754,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3755,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "153250,85625,154000,86375" +) +tg (CPTG +uid 3756,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3757,0 +va (VaSet +font "Verdana,8,0" +) +xt "154236,85500,155736,86500" +st "rst" +blo "154236,86300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*63 (CptPort +uid 3758,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3759,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "155625,88000,156375,88750" +) +tg (CPTG +uid 3760,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3761,0 +va (VaSet +font "Verdana,8,0" +) +xt "155342,86579,156842,87579" +st "en" +blo "155342,87379" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_uLogic" +o 2 +suid 4,0 +) +) +) +*64 (CptPort +uid 3762,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3763,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "155625,80250,156375,81000" +) +tg (CPTG +uid 3764,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3765,0 +va (VaSet +font "Verdana,8,0" +) +xt "155108,81148,156708,82148" +st "clk" +ju 2 +blo "156708,81948" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*65 (CptPort +uid 3766,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3767,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "153250,83625,154000,84375" +) +tg (CPTG +uid 3768,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3769,0 +va (VaSet +font "Verdana,8,0" +) +xt "154177,83530,155877,84530" +st "in1" +blo "154177,84330" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 2,0 +) +) +) +*66 (CptPort +uid 3770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3771,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "158000,83625,158750,84375" +) +tg (CPTG +uid 3772,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3773,0 +va (VaSet +font "Verdana,8,0" +) +xt "155612,83500,157912,84500" +st "out1" +ju 2 +blo "157912,84300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 5 +suid 1,0 +) +) +) +*67 (CommentGraphic +uid 3774,0 +shape (PolyLine2D +pts [ +"156000,83000" +"158000,81000" +] +uid 3775,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "156000,81000,158000,83000" +) +oxt "15000,20000,17000,22000" +) +*68 (CommentGraphic +uid 3776,0 +shape (PolyLine2D +pts [ +"154000,81000" +"156000,83000" +] +uid 3777,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "154000,81000,156000,83000" +) +oxt "13000,20000,15000,22000" +) +] +shape (Rectangle +uid 3779,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "154000,81000,158000,88000" +fos 1 +) +oxt "13000,20000,17000,27000" +ttg (MlTextGroup +uid 3780,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +uid 3781,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "156050,89300,161050,90500" +st "HEIRV32" +blo "156050,90300" +tm "BdLibraryNameMgr" +) +*70 (Text +uid 3782,0 +va (VaSet +font "Verdana,9,1" +) +xt "156050,90500,167950,91700" +st "bufferStdULogEnable" +blo "156050,91500" +tm "CptNameMgr" +) +*71 (Text +uid 3783,0 +va (VaSet +font "Verdana,9,1" +) +xt "156050,91700,163350,92900" +st "U_aluBuffer" +blo "156050,92700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3784,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3785,0 +text (MLText +uid 3786,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "158000,94200,181500,95000" +st "g_dataWidth = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 3787,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "154250,86250,155750,87750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*72 (SaComponent +uid 4044,0 +optionalChildren [ +*73 (CptPort +uid 4036,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4037,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "34250,65625,35000,66375" +) +tg (CPTG +uid 4038,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4039,0 +va (VaSet +isHidden 1 +) +xt "35000,65700,37300,66900" +st "in1" +blo "35000,66700" +) +s (Text +uid 4054,0 +va (VaSet +isHidden 1 +) +xt "35000,66900,35000,66900" +blo "35000,66900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*74 (CptPort +uid 4040,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4041,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40000,65625,40750,66375" +) +tg (CPTG +uid 4042,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4043,0 +va (VaSet +isHidden 1 +) +xt "37000,65700,40000,66900" +st "out1" +ju 2 +blo "40000,66700" +) +s (Text +uid 4055,0 +va (VaSet +isHidden 1 +) +xt "40000,66900,40000,66900" +ju 2 +blo "40000,66900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 4045,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "35000,63000,40000,69000" +) +showPorts 0 +oxt "36000,15000,41000,21000" +ttg (MlTextGroup +uid 4046,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 4047,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "69310,79600,72410,80600" +st "gates" +blo "69310,80400" +tm "BdLibraryNameMgr" +) +*76 (Text +uid 4048,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "69310,80800,79510,81800" +st "transUnsignedUlog" +blo "69310,81600" +tm "CptNameMgr" +) +*77 (Text +uid 4049,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "69310,80600,71810,81600" +st "U_0" +blo "69310,81400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4050,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4051,0 +text (MLText +uid 4052,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "35000,70600,53500,72600" +st "delay = gateDelay ( time ) +dataBitNb = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 4053,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "35250,67250,36750,68750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*78 (Net +uid 4062,0 +lang 11 +decl (Decl +n "PCu" +t "std_ulogic_vector" +b "(c_dataWidth - 1 downto 0)" +o 16 +suid 92,0 +) +declText (MLText +uid 4063,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,18400,56000,19200" +st "SIGNAL PCu : std_ulogic_vector(c_dataWidth - 1 downto 0)" +) +) +*79 (SaComponent +uid 4064,0 +optionalChildren [ +*80 (CptPort +uid 4074,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4075,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,67625,53000,68375" +) +tg (CPTG +uid 4076,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4077,0 +va (VaSet +font "Verdana,8,0" +) +xt "53236,67500,54736,68500" +st "rst" +blo "53236,68300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +) +) +) +*81 (CptPort +uid 4078,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4079,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,70000,55375,70750" +) +tg (CPTG +uid 4080,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4081,0 +va (VaSet +font "Verdana,8,0" +) +xt "54342,68579,55842,69579" +st "en" +blo "54342,69379" +) +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_uLogic" +o 2 +) +) +) +*82 (CptPort +uid 4082,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4083,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54625,62250,55375,63000" +) +tg (CPTG +uid 4084,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4085,0 +va (VaSet +font "Verdana,8,0" +) +xt "54108,63148,55708,64148" +st "clk" +ju 2 +blo "55708,63948" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +) +) +) +*83 (CptPort +uid 4086,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4087,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52250,65625,53000,66375" +) +tg (CPTG +uid 4088,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4089,0 +va (VaSet +font "Verdana,8,0" +) +xt "53177,65530,54877,66530" +st "in1" +blo "53177,66330" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +) +) +) +*84 (CptPort +uid 4090,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4091,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "57000,65625,57750,66375" +) +tg (CPTG +uid 4092,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4093,0 +va (VaSet +font "Verdana,8,0" +) +xt "54612,65500,56912,66500" +st "out1" +ju 2 +blo "56912,66300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 5 +) +) +) +*85 (CommentGraphic +uid 4094,0 +shape (PolyLine2D +pts [ +"55000,65000" +"57000,63000" +] +uid 4095,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "55000,63000,57000,65000" +) +oxt "15000,20000,17000,22000" +) +*86 (CommentGraphic +uid 4096,0 +shape (PolyLine2D +pts [ +"53000,63000" +"55000,65000" +] +uid 4097,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "53000,63000,55000,65000" +) +oxt "13000,20000,15000,22000" +) +] +shape (Rectangle +uid 4065,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "53000,63000,57000,70000" +fos 1 +) +oxt "13000,20000,17000,27000" +ttg (MlTextGroup +uid 4066,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 4067,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "58050,66300,63050,67500" +st "HEIRV32" +blo "58050,67300" +tm "BdLibraryNameMgr" +) +*88 (Text +uid 4068,0 +va (VaSet +font "Verdana,9,1" +) +xt "58050,67500,69950,68700" +st "bufferStdULogEnable" +blo "58050,68500" +tm "CptNameMgr" +) +*89 (Text +uid 4069,0 +va (VaSet +font "Verdana,9,1" +) +xt "58050,68700,64950,69900" +st "U_pcBuffer" +blo "58050,69700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4070,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4071,0 +text (MLText +uid 4072,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "57000,76200,80500,77000" +st "g_dataWidth = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 4073,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "53250,68250,54750,69750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*90 (Net +uid 4351,0 +lang 11 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 93,0 +) +declText (MLText +uid 4352,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,46000,6400" +st "dbg_leds : std_ulogic_vector(31 DOWNTO 0)" +) +) +*91 (PortIoOut +uid 4365,0 +shape (CompositeShape +uid 4366,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4367,0 +sl 0 +ro 270 +xt "173500,13625,175000,14375" +) +(Line +uid 4368,0 +sl 0 +ro 270 +xt "173000,14000,173500,14000" +pts [ +"173000,14000" +"173500,14000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 4369,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4370,0 +va (VaSet +) +xt "176000,13400,181200,14600" +st "dbg_leds" +blo "176000,14400" +tm "WireNameMgr" +) +) +) +*92 (HdlText +uid 4373,0 +optionalChildren [ +*93 (EmbeddedText +uid 4478,0 +commentText (CommentText +uid 4479,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4480,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "118000,10000,170000,26000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4481,0 +va (VaSet +) +xt "118200,10200,170100,22200" +st " + + +dbg_leds(7 downto 0) <= std_ulogic_vector(adr(9 downto 2)); -- no need to read LSBs since does +4 each time + +dbg_leds(15 downto 8) <= std_ulogic_vector(instruction(7 downto 0)); + +dbg_leds(23 downto 16) <= std_ulogic_vector(ALUControl & \"000\" & resultSrc); + +dbg_leds(31 downto 24) <= std_ulogic_vector(regwrite & immSrc & '0' & ALUSrcB & ALUSrcA); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 16000 +visibleWidth 52000 +) +) +) +] +shape (Rectangle +uid 4374,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "118000,9000,170000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4375,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +uid 4376,0 +va (VaSet +font "Verdana,9,1" +) +xt "127800,28800,130200,30000" +st "eb2" +blo "127800,29800" +tm "HdlTextNameMgr" +) +*95 (Text +uid 4377,0 +va (VaSet +font "Verdana,9,1" +) +xt "127800,30000,129000,31200" +st "2" +blo "127800,31000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 4378,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "118250,26250,119750,27750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*96 (PortIoIn +uid 4490,0 +shape (CompositeShape +uid 4491,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4492,0 +sl 0 +ro 270 +xt "9000,41625,10500,42375" +) +(Line +uid 4493,0 +sl 0 +ro 270 +xt "10500,42000,11000,42000" +pts [ +"10500,42000" +"11000,42000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 4494,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4495,0 +va (VaSet +) +xt "6100,41400,8000,42600" +st "en" +ju 2 +blo "8000,42400" +tm "WireNameMgr" +) +) +) +*97 (Net +uid 4496,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 97,0 +) +declText (MLText +uid 4497,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4000,35500,4800" +st "en : std_ulogic" +) +) +*98 (SaComponent +uid 4528,0 +optionalChildren [ +*99 (CptPort +uid 4516,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4517,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "14625,88000,15375,88750" +) +tg (CPTG +uid 4518,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4519,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "14600,78500,15800,88000" +st "in1 : std_uLogic" +blo "15600,88000" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*100 (CptPort +uid 4520,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4521,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "16625,88000,17375,88750" +) +tg (CPTG +uid 4522,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4523,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "16600,78500,17800,88000" +st "in2 : std_uLogic" +blo "17600,88000" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +*101 (CptPort +uid 4524,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4525,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "15625,84300,16375,85050" +) +tg (CPTG +uid 4526,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4527,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "15550,85000,16750,95200" +st "out1 : std_uLogic" +ju 2 +blo "16550,85000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +suid 3,0 +) +) +) +] +shape (And +uid 4529,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "14000,85000,18000,88000" +) +showPorts 0 +oxt "31000,13000,38000,19000" +ttg (MlTextGroup +uid 4530,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +uid 4531,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "15100,89200,18200,90200" +st "gates" +blo "15100,90000" +tm "BdLibraryNameMgr" +) +*103 (Text +uid 4532,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "15100,90200,18000,91200" +st "and2" +blo "15100,91000" +tm "CptNameMgr" +) +*104 (Text +uid 4533,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "15100,90200,19300,91200" +st "U_and1" +blo "15100,91000" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4534,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4535,0 +text (MLText +uid 4536,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "14500,93100,28600,94100" +st "delay = gateDelay ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +) +viewicon (ZoomableIcon +uid 4537,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "14250,86250,15750,87750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*105 (Net +uid 4538,0 +decl (Decl +n "out1" +t "std_uLogic" +o 29 +suid 98,0 +) +declText (MLText +uid 4539,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,28800,39000,29600" +st "SIGNAL out1 : std_uLogic" +) +) +*106 (SaComponent +uid 4546,0 +optionalChildren [ +*107 (CptPort +uid 4556,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4557,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55625,75000,56375,75750" +) +tg (CPTG +uid 4558,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4559,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "49600,65500,50800,75000" +st "in1 : std_uLogic" +blo "50600,75000" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*108 (CptPort +uid 4560,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4561,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "53625,75000,54375,75750" +) +tg (CPTG +uid 4562,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4563,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "47600,65500,48800,75000" +st "in2 : std_uLogic" +blo "48600,75000" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*109 (CptPort +uid 4564,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4565,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "54625,71300,55375,72050" +) +tg (CPTG +uid 4566,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4567,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "48550,72000,49750,82200" +st "out1 : std_uLogic" +ju 2 +blo "49550,72000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (And +uid 4547,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "53000,72000,57000,75000" +) +showPorts 0 +oxt "31000,13000,38000,19000" +ttg (MlTextGroup +uid 4548,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*110 (Text +uid 4549,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "54100,76200,57200,77200" +st "gates" +blo "54100,77000" +tm "BdLibraryNameMgr" +) +*111 (Text +uid 4550,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "54100,77200,57000,78200" +st "and2" +blo "54100,78000" +tm "CptNameMgr" +) +*112 (Text +uid 4551,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "54100,77200,58300,78200" +st "U_and2" +blo "54100,78000" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4552,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4553,0 +text (MLText +uid 4554,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "53500,80100,67600,81100" +st "delay = gateDelay ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "gateDelay" +) +] +) +viewicon (ZoomableIcon +uid 4555,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "53250,73250,54750,74750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*113 (Net +uid 4586,0 +decl (Decl +n "en1" +t "std_uLogic" +o 21 +suid 100,0 +) +declText (MLText +uid 4587,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,22400,39000,23200" +st "SIGNAL en1 : std_uLogic" +) +) +*114 (Net +uid 5835,0 +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 101,0 +) +declText (MLText +uid 5836,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,2400,50000,3200" +st "btns : std_ulogic_vector(g_btnsNb-1 DOWNTO 0)" +) +) +*115 (PortIoIn +uid 5841,0 +shape (CompositeShape +uid 5842,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5843,0 +sl 0 +ro 180 +xt "72625,109500,73375,111000" +) +(Line +uid 5844,0 +sl 0 +ro 180 +xt "73000,109000,73000,109500" +pts [ +"73000,109500" +"73000,109000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 5845,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5846,0 +ro 90 +va (VaSet +) +xt "72400,112000,73600,114900" +st "btns" +blo "72600,112000" +tm "WireNameMgr" +) +) +) +*116 (Net +uid 5847,0 +lang 11 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 102,0 +) +declText (MLText +uid 5848,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,51500,7200" +st "leds : std_ulogic_vector(g_dataWidth-1 DOWNTO 0)" +) +) +*117 (PortIoOut +uid 5853,0 +shape (CompositeShape +uid 5854,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5855,0 +sl 0 +xt "74625,109500,75375,111000" +) +(Line +uid 5856,0 +sl 0 +xt "75000,109000,75000,109500" +pts [ +"75000,109000" +"75000,109500" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 5857,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5858,0 +ro 90 +va (VaSet +) +xt "74400,112000,75600,114800" +st "leds" +blo "74600,112000" +tm "WireNameMgr" +) +) +) +*118 (SaComponent +uid 6827,0 +optionalChildren [ +*119 (CptPort +uid 6799,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6800,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,79625,37000,80375" +) +tg (CPTG +uid 6801,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6802,0 +va (VaSet +font "Verdana,8,0" +) +xt "38000,79500,41600,80500" +st "address" +blo "38000,80300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "address" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 27,0 +) +) +) +*120 (CptPort +uid 6803,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6804,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "38625,77250,39375,78000" +) +tg (CPTG +uid 6805,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6806,0 +va (VaSet +font "Verdana,8,0" +) +xt "38480,78000,40080,79000" +st "clk" +blo "38480,78800" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 28,0 +) +) +) +*121 (CptPort +uid 6807,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6808,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51000,80625,51750,81375" +) +tg (CPTG +uid 6809,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6810,0 +va (VaSet +font "Verdana,8,0" +) +xt "45800,80500,50000,81500" +st "readData" +ju 2 +blo "50000,81300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 29,0 +) +) +) +*122 (CptPort +uid 6811,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6812,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36250,81625,37000,82375" +) +tg (CPTG +uid 6813,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6814,0 +va (VaSet +font "Verdana,8,0" +) +xt "38000,81500,42400,82500" +st "writeData" +blo "38000,82300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 31,0 +) +) +) +*123 (CptPort +uid 6815,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6816,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "43625,77250,44375,78000" +) +tg (CPTG +uid 6817,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6818,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "43500,78000,44500,83700" +st "writeEnable" +ju 2 +blo "44300,78000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnable" +t "std_ulogic" +o 5 +suid 32,0 +) +) +) +*124 (CptPort +uid 6819,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6820,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45625,77250,46375,78000" +) +tg (CPTG +uid 6821,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6822,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "45500,79000,46500,80500" +st "en" +ju 2 +blo "46300,79000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 38,0 +) +) +) +*125 (CommentGraphic +uid 6823,0 +shape (PolyLine2D +pts [ +"38000,78000" +"39000,80000" +] +uid 6824,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "38000,78000,39000,80000" +) +oxt "20000,15000,21000,17000" +) +*126 (CommentGraphic +uid 6825,0 +shape (PolyLine2D +pts [ +"40000,78000" +"39000,80000" +] +uid 6826,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "39000,78000,40000,80000" +) +oxt "21000,15000,22000,17000" +) +] +shape (Rectangle +uid 6828,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "37000,78000,51000,85000" +fos 1 +) +oxt "19000,15000,33000,22000" +ttg (MlTextGroup +uid 6829,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*127 (Text +uid 6830,0 +va (VaSet +font "Verdana,9,1" +) +xt "36750,85800,44350,87000" +st "HEIRV32_MC" +blo "36750,86800" +tm "BdLibraryNameMgr" +) +*128 (Text +uid 6831,0 +va (VaSet +font "Verdana,9,1" +) +xt "36750,87000,50250,88200" +st "instructionDataMemory" +blo "36750,88000" +tm "CptNameMgr" +) +*129 (Text +uid 6832,0 +va (VaSet +font "Verdana,9,1" +) +xt "36750,88200,47850,89400" +st "U_instrDataMemory" +blo "36750,89200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6833,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6834,0 +text (MLText +uid 6835,0 +va (VaSet +font "Courier New,8,0" +) +xt "32000,90600,58500,93000" +st "g_dataWidth = c_dataWidth ( positive ) +g_addrWidth = c_bramAddrWidth ( positive ) +g_programFile = g_programFile ( string ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_addrWidth" +type "positive" +value "c_bramAddrWidth" +) +(GiElement +name "g_programFile" +type "string" +value "g_programFile" +) +] +) +viewicon (ZoomableIcon +uid 6836,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "37250,83250,38750,84750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*130 (SaComponent +uid 6849,0 +optionalChildren [ +*131 (CptPort +uid 6837,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6838,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "65000,84625,65750,85375" +) +tg (CPTG +uid 6839,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6840,0 +va (VaSet +font "Verdana,8,0" +) +xt "58900,84500,64000,85500" +st "instruction" +ju 2 +blo "64000,85300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 1,0 +) +) +) +*132 (CptPort +uid 6841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6842,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60625,79250,61375,80000" +) +tg (CPTG +uid 6843,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6844,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "60500,81000,61500,84100" +st "irWrite" +ju 2 +blo "61300,81000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "irWrite" +t "std_ulogic" +o 1 +suid 2,0 +) +) +) +*133 (CptPort +uid 6845,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6846,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54250,80625,55000,81375" +) +tg (CPTG +uid 6847,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6848,0 +va (VaSet +font "Verdana,8,0" +) +xt "56000,80500,60200,81500" +st "readData" +blo "56000,81300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 6850,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "55000,80000,65000,86000" +) +oxt "27000,15000,37000,21000" +ttg (MlTextGroup +uid 6851,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*134 (Text +uid 6852,0 +va (VaSet +font "Verdana,9,1" +) +xt "54850,86800,62450,88000" +st "HEIRV32_MC" +blo "54850,87800" +tm "BdLibraryNameMgr" +) +*135 (Text +uid 6853,0 +va (VaSet +font "Verdana,9,1" +) +xt "54850,88000,67150,89200" +st "instructionForwarder" +blo "54850,89000" +tm "CptNameMgr" +) +*136 (Text +uid 6854,0 +va (VaSet +font "Verdana,9,1" +) +xt "54850,89200,63750,90400" +st "U_instrForward" +blo "54850,90200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6855,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6856,0 +text (MLText +uid 6857,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "55000,91600,78500,92400" +st "g_dataWidth = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 6858,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "55250,84250,56750,85750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*137 (SaComponent +uid 6931,0 +optionalChildren [ +*138 (CptPort +uid 6859,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6860,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,45625,98750,46375" +) +tg (CPTG +uid 6861,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6862,0 +va (VaSet +font "Verdana,12,0" +) +xt "88400,45300,97000,46700" +st "ALUControl" +ju 2 +blo "97000,46500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 8 +suid 2,0 +) +) +) +*139 (CptPort +uid 6863,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6864,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,49625,98750,50375" +) +tg (CPTG +uid 6865,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6866,0 +va (VaSet +font "Verdana,12,0" +) +xt "91100,49300,97000,50700" +st "ALUSrcA" +ju 2 +blo "97000,50500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 9 +suid 3,0 +) +) +) +*140 (CptPort +uid 6867,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6868,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,47625,98750,48375" +) +tg (CPTG +uid 6869,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6870,0 +va (VaSet +font "Verdana,12,0" +) +xt "91100,47300,97000,48700" +st "ALUSrcB" +ju 2 +blo "97000,48500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 4,0 +) +) +) +*141 (CptPort +uid 6871,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6872,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,51625,98750,52375" +) +tg (CPTG +uid 6873,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6874,0 +va (VaSet +font "Verdana,12,0" +) +xt "91800,51300,97000,52700" +st "immSrc" +ju 2 +blo "97000,52500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 5,0 +) +) +) +*142 (CptPort +uid 6875,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6876,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,51625,81000,52375" +) +tg (CPTG +uid 6877,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6878,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,51300,84400,52700" +st "op" +blo "82000,52500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*143 (CptPort +uid 6879,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6880,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,48625,81000,49375" +) +tg (CPTG +uid 6881,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6882,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,48300,87500,49700" +st "IRWrite" +blo "82000,49500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 11 +suid 7,0 +) +) +) +*144 (CptPort +uid 6883,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6884,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,46625,81000,47375" +) +tg (CPTG +uid 6885,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6886,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,46300,89200,47700" +st "memWrite" +blo "82000,47500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 15 +suid 8,0 +) +) +) +*145 (CptPort +uid 6887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6888,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,42625,81000,43375" +) +tg (CPTG +uid 6889,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6890,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,42300,87900,43700" +st "PCWrite" +blo "82000,43500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 12 +suid 9,0 +) +) +) +*146 (CptPort +uid 6891,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6892,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,53625,98750,54375" +) +tg (CPTG +uid 6893,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6894,0 +va (VaSet +font "Verdana,12,0" +) +xt "90900,53300,97000,54700" +st "regwrite" +ju 2 +blo "97000,54500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 16 +suid 10,0 +) +) +) +*147 (CptPort +uid 6895,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6896,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,43625,98750,44375" +) +tg (CPTG +uid 6897,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6898,0 +va (VaSet +font "Verdana,12,0" +) +xt "90700,43300,97000,44700" +st "resultSrc" +ju 2 +blo "97000,44500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 17 +suid 11,0 +) +) +) +*148 (CptPort +uid 6899,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6900,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88625,59000,89375,59750" +) +tg (CPTG +uid 6901,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6902,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "88300,54400,89700,58000" +st "zero" +blo "89500,58000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 7 +suid 12,0 +) +) +) +*149 (CptPort +uid 6903,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6904,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,53625,81000,54375" +) +tg (CPTG +uid 6905,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6906,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,53300,86700,54700" +st "funct3" +blo "82000,54500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 3 +suid 13,0 +) +) +) +*150 (CptPort +uid 6907,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6908,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,55625,81000,56375" +) +tg (CPTG +uid 6909,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6910,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,55300,86700,56700" +st "funct7" +blo "82000,56500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 4 +suid 14,0 +) +) +) +*151 (CptPort +uid 6911,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6912,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84625,37250,85375,38000" +) +tg (CPTG +uid 6913,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6914,0 +va (VaSet +font "Verdana,12,0" +) +xt "83550,38450,85950,39850" +st "clk" +ju 2 +blo "85950,39650" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 15,0 +) +) +) +*152 (CptPort +uid 6915,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6916,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88625,37250,89375,38000" +) +tg (CPTG +uid 6917,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6918,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "88300,39000,89700,41500" +st "rst" +ju 2 +blo "89500,39000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 6 +suid 16,0 +) +) +) +*153 (CptPort +uid 6919,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6920,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "80250,44625,81000,45375" +) +tg (CPTG +uid 6921,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 6922,0 +va (VaSet +font "Verdana,12,0" +) +xt "82000,44300,86800,45700" +st "adrSrc" +blo "82000,45500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 13 +suid 17,0 +) +) +) +*154 (CptPort +uid 6923,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 6924,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91625,37250,92375,38000" +) +tg (CPTG +uid 6925,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 6926,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "91300,39000,92700,41400" +st "en" +ju 2 +blo "92500,39000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 18,0 +) +) +) +*155 (CommentGraphic +uid 6927,0 +shape (PolyLine2D +pts [ +"83000,38000" +"85000,42000" +] +uid 6928,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "83000,38000,85000,42000" +) +oxt "4000,16000,6000,20000" +) +*156 (CommentGraphic +uid 6929,0 +shape (PolyLine2D +pts [ +"85000,42000" +"87000,38000" +] +uid 6930,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "85000,38000,87000,42000" +) +oxt "6000,16000,8000,20000" +) +] +shape (Rectangle +uid 6932,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "81000,38000,98000,59000" +fos 1 +) +oxt "2000,16000,19000,37000" +ttg (MlTextGroup +uid 6933,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*157 (Text +uid 6934,0 +va (VaSet +font "Verdana,9,1" +) +xt "76600,59800,84200,61000" +st "HEIRV32_MC" +blo "76600,60800" +tm "BdLibraryNameMgr" +) +*158 (Text +uid 6935,0 +va (VaSet +font "Verdana,9,1" +) +xt "76600,61000,83400,62200" +st "controlUnit" +blo "76600,62000" +tm "CptNameMgr" +) +*159 (Text +uid 6936,0 +va (VaSet +font "Verdana,9,1" +) +xt "76600,62200,84700,63400" +st "U_controlUnit" +blo "76600,63200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 6937,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 6938,0 +text (MLText +uid 6939,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "92000,62600,115500,63400" +st "g_datawidth = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 6940,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "81250,57250,82750,58750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*160 (SaComponent +uid 7823,0 +optionalChildren [ +*161 (CptPort +uid 7799,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7800,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15625,75250,16375,76000" +) +tg (CPTG +uid 7801,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7802,0 +va (VaSet +font "Verdana,8,0" +) +xt "15184,76000,16784,77000" +st "clk" +blo "15184,76800" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*162 (CptPort +uid 7803,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7804,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18000,78625,18750,79375" +) +tg (CPTG +uid 7805,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7806,0 +va (VaSet +font "Verdana,8,0" +) +xt "15436,78454,17736,79454" +st "out1" +ju 2 +blo "17736,79254" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +) +*163 (CptPort +uid 7807,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7808,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "13250,78625,14000,79375" +) +tg (CPTG +uid 7809,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7810,0 +va (VaSet +font "Verdana,8,0" +) +xt "14310,78500,16010,79500" +st "in1" +blo "14310,79300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +) +*164 (CptPort +uid 7811,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7812,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15625,83000,16375,83750" +) +tg (CPTG +uid 7813,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7814,0 +va (VaSet +font "Verdana,8,0" +) +xt "15414,82000,16914,83000" +st "en" +blo "15414,82800" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*165 (CptPort +uid 7815,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7816,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "13250,80625,14000,81375" +) +tg (CPTG +uid 7817,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7818,0 +va (VaSet +font "Verdana,8,0" +) +xt "14264,80500,15764,81500" +st "rst" +blo "14264,81300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*166 (CommentGraphic +uid 7819,0 +shape (PolyLine2D +pts [ +"14000,76000" +"16000,78000" +] +uid 7820,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "14000,76000,16000,78000" +) +oxt "22000,13000,24000,15000" +) +*167 (CommentGraphic +uid 7821,0 +shape (PolyLine2D +pts [ +"16000,78000" +"18000,76000" +] +uid 7822,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "16000,76000,18000,78000" +) +oxt "24000,13000,26000,15000" +) +] +shape (Rectangle +uid 7824,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "14000,76000,18000,83000" +fos 1 +) +oxt "22000,13000,26000,20000" +ttg (MlTextGroup +uid 7825,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*168 (Text +uid 7826,0 +va (VaSet +font "Verdana,8,1" +) +xt "10600,91800,15200,92800" +st "HEIRV32" +blo "10600,92600" +tm "BdLibraryNameMgr" +) +*169 (Text +uid 7827,0 +va (VaSet +font "Verdana,8,1" +) +xt "10600,92800,22500,93800" +st "bufferUnsignedEnable" +blo "10600,93600" +tm "CptNameMgr" +) +*170 (Text +uid 7828,0 +va (VaSet +font "Verdana,8,1" +) +xt "10600,93800,19100,94800" +st "U_pcLoadBuffer" +blo "10600,94600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7829,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7830,0 +text (MLText +uid 7831,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "12000,86600,33000,88200" +st "g_bitNb = c_dataWidth ( positive ) +g_tPC = 35 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_bitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tPC" +type "time" +value "35 ps" +) +] +) +viewicon (ZoomableIcon +uid 7832,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "14250,81250,15750,82750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*171 (SaComponent +uid 7857,0 +optionalChildren [ +*172 (CptPort +uid 7833,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7834,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "127625,86749,128375,87499" +) +tg (CPTG +uid 7835,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7836,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "127500,88000,128500,89600" +st "sel" +ju 2 +blo "128300,88000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "sel" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 1,0 +) +) +) +*173 (CptPort +uid 7837,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7838,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,92625,125000,93375" +) +tg (CPTG +uid 7839,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7840,0 +va (VaSet +font "Verdana,8,0" +) +xt "125000,92500,126700,93500" +st "in4" +blo "125000,93300" +) +) +thePort (LogicalPort +decl (Decl +n "in4" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 23 +suid 2,0 +) +) +) +*174 (CptPort +uid 7841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7842,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,88625,125000,89375" +) +tg (CPTG +uid 7843,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7844,0 +va (VaSet +font "Verdana,8,0" +) +xt "125000,88500,126700,89500" +st "in2" +blo "125000,89300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in2" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 13 +suid 3,0 +) +) +) +*175 (CptPort +uid 7845,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7846,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,86625,125000,87375" +) +tg (CPTG +uid 7847,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7848,0 +va (VaSet +font "Verdana,8,0" +) +xt "125000,86500,126700,87500" +st "in1" +blo "125000,87300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*176 (CptPort +uid 7849,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7850,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "124250,90625,125000,91375" +) +tg (CPTG +uid 7851,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7852,0 +va (VaSet +font "Verdana,8,0" +) +xt "125000,90500,126700,91500" +st "in3" +blo "125000,91300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in3" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 21 +suid 5,0 +) +) +) +*177 (CptPort +uid 7853,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7854,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "129000,89625,129750,90375" +) +tg (CPTG +uid 7855,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7856,0 +va (VaSet +font "Verdana,8,0" +) +xt "126700,89500,129000,90500" +st "out1" +ju 2 +blo "129000,90300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 25 +suid 6,0 +) +) +) +] +shape (Mux +uid 7858,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "125000,85000,129000,95000" +) +oxt "20000,14000,24000,24000" +ttg (MlTextGroup +uid 7859,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*178 (Text +uid 7860,0 +va (VaSet +font "Verdana,9,1" +) +xt "119000,94800,124000,96000" +st "HEIRV32" +blo "119000,95800" +tm "BdLibraryNameMgr" +) +*179 (Text +uid 7861,0 +va (VaSet +font "Verdana,9,1" +) +xt "119000,96000,129000,97200" +st "mux4To1ULogVec" +blo "119000,97000" +tm "CptNameMgr" +) +*180 (Text +uid 7862,0 +va (VaSet +font "Verdana,9,1" +) +xt "119000,97200,124500,98400" +st "U_srcBSel" +blo "119000,98200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7863,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7864,0 +text (MLText +uid 7865,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "123000,99600,146500,101200" +st "g_dataWidth = c_dataWidth ( positive ) +g_tMux = 30 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +) +viewicon (ZoomableIcon +uid 7866,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "125250,93250,126750,94750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*181 (SaComponent +uid 7891,0 +optionalChildren [ +*182 (CptPort +uid 7867,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7868,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "123625,71749,124375,72499" +) +tg (CPTG +uid 7869,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7870,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "123500,73000,124500,74600" +st "sel" +ju 2 +blo "124300,73000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "sel" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 1,0 +) +) +) +*183 (CptPort +uid 7871,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7872,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "120250,77625,121000,78375" +) +tg (CPTG +uid 7873,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7874,0 +va (VaSet +font "Verdana,8,0" +) +xt "121000,77500,122700,78500" +st "in4" +blo "121000,78300" +) +) +thePort (LogicalPort +decl (Decl +n "in4" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 23 +suid 2,0 +) +) +) +*184 (CptPort +uid 7875,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7876,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "120250,73625,121000,74375" +) +tg (CPTG +uid 7877,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7878,0 +va (VaSet +font "Verdana,8,0" +) +xt "121000,73500,122700,74500" +st "in2" +blo "121000,74300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in2" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 13 +suid 3,0 +) +) +) +*185 (CptPort +uid 7879,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7880,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "120250,71625,121000,72375" +) +tg (CPTG +uid 7881,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7882,0 +va (VaSet +font "Verdana,8,0" +) +xt "121000,71500,122700,72500" +st "in1" +blo "121000,72300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*186 (CptPort +uid 7883,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7884,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "120250,75625,121000,76375" +) +tg (CPTG +uid 7885,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7886,0 +va (VaSet +font "Verdana,8,0" +) +xt "121000,75500,122700,76500" +st "in3" +blo "121000,76300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in3" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 21 +suid 5,0 +) +) +) +*187 (CptPort +uid 7887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7888,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "125000,74625,125750,75375" +) +tg (CPTG +uid 7889,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7890,0 +va (VaSet +font "Verdana,8,0" +) +xt "122700,74500,125000,75500" +st "out1" +ju 2 +blo "125000,75300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 25 +suid 6,0 +) +) +) +] +shape (Mux +uid 7892,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "121000,70000,125000,80000" +) +oxt "20000,14000,24000,24000" +ttg (MlTextGroup +uid 7893,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*188 (Text +uid 7894,0 +va (VaSet +font "Verdana,9,1" +) +xt "115000,79800,120000,81000" +st "HEIRV32" +blo "115000,80800" +tm "BdLibraryNameMgr" +) +*189 (Text +uid 7895,0 +va (VaSet +font "Verdana,9,1" +) +xt "115000,81000,125000,82200" +st "mux4To1ULogVec" +blo "115000,82000" +tm "CptNameMgr" +) +*190 (Text +uid 7896,0 +va (VaSet +font "Verdana,9,1" +) +xt "115000,82200,120600,83400" +st "U_srcASel" +blo "115000,83200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7897,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7898,0 +text (MLText +uid 7899,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "119000,84600,142500,86200" +st "g_dataWidth = c_dataWidth ( positive ) +g_tMux = 30 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +) +viewicon (ZoomableIcon +uid 7900,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "121250,78250,122750,79750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*191 (SaComponent +uid 7925,0 +optionalChildren [ +*192 (CptPort +uid 7901,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7902,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "178625,83749,179375,84499" +) +tg (CPTG +uid 7903,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7904,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "178500,85000,179500,86600" +st "sel" +ju 2 +blo "179300,85000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "sel" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 1,0 +) +) +) +*193 (CptPort +uid 7905,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7906,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "175250,89625,176000,90375" +) +tg (CPTG +uid 7907,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7908,0 +va (VaSet +font "Verdana,8,0" +) +xt "176000,89500,177700,90500" +st "in4" +blo "176000,90300" +) +) +thePort (LogicalPort +decl (Decl +n "in4" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 23 +suid 2,0 +) +) +) +*194 (CptPort +uid 7909,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7910,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "175250,85625,176000,86375" +) +tg (CPTG +uid 7911,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7912,0 +va (VaSet +font "Verdana,8,0" +) +xt "176000,85500,177700,86500" +st "in2" +blo "176000,86300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in2" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 13 +suid 3,0 +) +) +) +*195 (CptPort +uid 7913,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7914,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "175250,83625,176000,84375" +) +tg (CPTG +uid 7915,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7916,0 +va (VaSet +font "Verdana,8,0" +) +xt "176000,83500,177700,84500" +st "in1" +blo "176000,84300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*196 (CptPort +uid 7917,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7918,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "175250,87625,176000,88375" +) +tg (CPTG +uid 7919,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7920,0 +va (VaSet +font "Verdana,8,0" +) +xt "176000,87500,177700,88500" +st "in3" +blo "176000,88300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in3" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 21 +suid 5,0 +) +) +) +*197 (CptPort +uid 7921,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7922,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "180000,86625,180750,87375" +) +tg (CPTG +uid 7923,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7924,0 +va (VaSet +font "Verdana,8,0" +) +xt "177700,86500,180000,87500" +st "out1" +ju 2 +blo "180000,87300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 25 +suid 6,0 +) +) +) +] +shape (Mux +uid 7926,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "176000,82000,180000,92000" +) +oxt "20000,14000,24000,24000" +ttg (MlTextGroup +uid 7927,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*198 (Text +uid 7928,0 +va (VaSet +font "Verdana,9,1" +) +xt "170000,91800,175000,93000" +st "HEIRV32" +blo "170000,92800" +tm "BdLibraryNameMgr" +) +*199 (Text +uid 7929,0 +va (VaSet +font "Verdana,9,1" +) +xt "170000,93000,180000,94200" +st "mux4To1ULogVec" +blo "170000,94000" +tm "CptNameMgr" +) +*200 (Text +uid 7930,0 +va (VaSet +font "Verdana,9,1" +) +xt "170000,94200,176900,95400" +st "U_resultSel" +blo "170000,95200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7931,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7932,0 +text (MLText +uid 7933,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "174000,96600,197500,98200" +st "g_dataWidth = c_dataWidth ( positive ) +g_tMux = 30 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +) +viewicon (ZoomableIcon +uid 7934,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "176250,90250,177750,91750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*201 (SaComponent +uid 8060,0 +optionalChildren [ +*202 (CptPort +uid 8044,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8045,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "105000,92625,105750,93375" +) +tg (CPTG +uid 8046,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8047,0 +va (VaSet +font "Verdana,12,0" +) +xt "97200,92300,104000,93700" +st "extended" +ju 2 +blo "104000,93500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "extended" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 1,0 +) +) +) +*203 (CptPort +uid 8048,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8049,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "89250,92625,90000,93375" +) +tg (CPTG +uid 8050,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8051,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,92300,95000,93700" +st "input" +blo "91000,93500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(31 DOWNTO 7)" +o 1 +suid 2,0 +) +) +) +*204 (CptPort +uid 8052,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8053,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "105000,89625,105750,90375" +) +tg (CPTG +uid 8054,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8055,0 +va (VaSet +font "Verdana,12,0" +) +xt "101400,89300,104000,90700" +st "src" +ju 2 +blo "104000,90500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "src" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*205 (CommentGraphic +uid 8056,0 +shape (CustomPolygon +pts [ +"90000,92000" +"105000,92000" +"105000,95000" +"90000,95000" +"90000,92000" +] +uid 8057,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "90000,92000,105000,95000" +) +oxt "16000,13000,31000,16000" +) +*206 (CommentGraphic +uid 8058,0 +shape (CustomPolygon +pts [ +"90001,95000" +"90001,92000" +"104999,89000" +"104999,95000" +"90001,95000" +] +uid 8059,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "26368,26368,26368" +) +xt "90001,89000,104999,95000" +) +oxt "16001,10000,30999,16000" +) +] +shape (Rectangle +uid 8061,0 +va (VaSet +vasetType 1 +transparent 1 +lineColor "26368,26368,26368" +lineStyle 2 +) +xt "90000,89000,105000,95000" +fos 1 +) +oxt "16000,10000,31000,16000" +ttg (MlTextGroup +uid 8062,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*207 (Text +uid 8063,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "105500,92300,110500,93500" +st "HEIRV32" +blo "105500,93300" +tm "BdLibraryNameMgr" +) +*208 (Text +uid 8064,0 +va (VaSet +font "Verdana,9,1" +) +xt "105500,93500,109600,94700" +st "extend" +blo "105500,94500" +tm "CptNameMgr" +) +*209 (Text +uid 8065,0 +va (VaSet +font "Verdana,9,1" +) +xt "105500,94700,110900,95900" +st "U_extend" +blo "105500,95700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8066,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8067,0 +text (MLText +uid 8068,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "89000,99800,112500,101400" +st "g_dataWidth = c_dataWidth ( positive ) +g_tExt = 35 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tExt" +type "time" +value "35 ps" +) +] +) +viewicon (ZoomableIcon +uid 8069,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "90250,93250,91750,94750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*210 (SaComponent +uid 8090,0 +optionalChildren [ +*211 (CptPort +uid 8070,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8071,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "140625,77027,141375,77777" +) +tg (CPTG +uid 8072,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8073,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "140300,78777,141700,81477" +st "ctrl" +ju 2 +blo "141500,78777" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "ctrl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 6,0 +) +) +) +*212 (CptPort +uid 8074,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8075,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "145000,83625,145750,84375" +) +tg (CPTG +uid 8076,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8077,0 +va (VaSet +font "Verdana,12,0" +) +xt "141200,83300,144000,84700" +st "res" +ju 2 +blo "144000,84500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "res" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +) +*213 (CptPort +uid 8078,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8079,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "135250,77625,136000,78375" +) +tg (CPTG +uid 8080,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8081,0 +va (VaSet +font "Verdana,12,0" +) +xt "137000,77300,140400,78700" +st "srcA" +blo "137000,78500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 8,0 +) +) +) +*214 (CptPort +uid 8082,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8083,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "135250,86625,136000,87375" +) +tg (CPTG +uid 8084,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8085,0 +va (VaSet +font "Verdana,12,0" +) +xt "137000,86300,140400,87700" +st "srcB" +blo "137000,87500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*215 (CptPort +uid 8086,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8087,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "145000,81625,145750,82375" +) +tg (CPTG +uid 8088,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8089,0 +va (VaSet +font "Verdana,12,0" +) +xt "140400,81300,144000,82700" +st "zero" +ju 2 +blo "144000,82500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 5 +suid 10,0 +) +) +) +] +shape (Alu +uid 8091,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "136000,75000,145000,90000" +) +oxt "15000,9000,24000,24000" +ttg (MlTextGroup +uid 8092,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*216 (Text +uid 8093,0 +va (VaSet +font "Verdana,9,1" +) +xt "141500,88300,146500,89500" +st "HEIRV32" +blo "141500,89300" +tm "BdLibraryNameMgr" +) +*217 (Text +uid 8094,0 +va (VaSet +font "Verdana,9,1" +) +xt "141500,89500,144200,90700" +st "ALU" +blo "141500,90500" +tm "CptNameMgr" +) +*218 (Text +uid 8095,0 +va (VaSet +font "Verdana,9,1" +) +xt "141500,90700,144900,91900" +st "U_alu" +blo "141500,91700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8096,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8097,0 +text (MLText +uid 8098,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "136000,93600,159500,95200" +st "g_datawidth = c_dataWidth ( positive ) +g_tALU = 120 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tALU" +type "time" +value "120 ps" +) +] +) +viewicon (ZoomableIcon +uid 8099,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "136250,88250,137750,89750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*219 (SaComponent +uid 8152,0 +optionalChildren [ +*220 (CptPort +uid 8100,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8101,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "92625,70250,93375,71000" +) +tg (CPTG +uid 8102,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8103,0 +va (VaSet +font "Verdana,12,0" +) +xt "91424,71345,93824,72745" +st "clk" +ju 2 +blo "93824,72545" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 1,0 +) +) +) +*221 (CptPort +uid 8104,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8105,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "89250,75625,90000,76375" +) +tg (CPTG +uid 8106,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8107,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,75300,95500,76700" +st "addr1" +blo "91000,76500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr1" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*222 (CptPort +uid 8108,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8109,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "89250,82625,90000,83375" +) +tg (CPTG +uid 8110,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8111,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,82300,98000,83700" +st "writeData" +blo "91000,83500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*223 (CptPort +uid 8112,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8113,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "107000,75625,107750,76375" +) +tg (CPTG +uid 8114,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8115,0 +va (VaSet +font "Verdana,12,0" +) +xt "102700,75300,106000,76700" +st "RD1" +ju 2 +blo "106000,76500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +) +*224 (CptPort +uid 8116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8117,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "107000,79625,107750,80375" +) +tg (CPTG +uid 8118,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8119,0 +va (VaSet +font "Verdana,12,0" +) +xt "102700,79300,106000,80700" +st "RD2" +ju 2 +blo "106000,80500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD2" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 9 +suid 5,0 +) +) +) +*225 (CptPort +uid 8120,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8121,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "99625,70250,100375,71000" +) +tg (CPTG +uid 8122,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8123,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "99300,72000,100700,81900" +st "writeEnable3" +ju 2 +blo "100500,72000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnable3" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*226 (CptPort +uid 8124,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8125,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95625,70250,96375,71000" +) +tg (CPTG +uid 8126,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8127,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "95300,72000,96700,74500" +st "rst" +ju 2 +blo "96500,72000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*227 (CptPort +uid 8128,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8129,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "89250,77625,90000,78375" +) +tg (CPTG +uid 8130,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8131,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,77300,95500,78700" +st "addr2" +blo "91000,78500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr2" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 2 +suid 8,0 +) +) +) +*228 (CptPort +uid 8132,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8133,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "89250,79625,90000,80375" +) +tg (CPTG +uid 8134,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8135,0 +va (VaSet +font "Verdana,12,0" +) +xt "91000,79300,95500,80700" +st "addr3" +blo "91000,80500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr3" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*229 (CptPort +uid 8136,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8137,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "102625,70250,103375,71000" +) +tg (CPTG +uid 8138,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8139,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "102300,72000,103700,74400" +st "en" +ju 2 +blo "103500,72000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 10 +suid 10,0 +) +) +) +*230 (CptPort +uid 8140,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8141,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "101625,85000,102375,85750" +) +tg (CPTG +uid 8142,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8143,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "101300,80400,102700,84000" +st "btns" +blo "102500,84000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +) +*231 (CptPort +uid 8144,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8145,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "103625,85000,104375,85750" +) +tg (CPTG +uid 8146,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8147,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "103300,80600,104700,84000" +st "leds" +blo "104500,84000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 12 +suid 12,0 +) +) +) +*232 (CommentGraphic +uid 8148,0 +shape (PolyLine2D +pts [ +"91000,71000" +"93000,74000" +] +uid 8149,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "91000,71000,93000,74000" +) +oxt "17000,21000,19000,24000" +) +*233 (CommentGraphic +uid 8150,0 +shape (PolyLine2D +pts [ +"93000,74000" +"95000,71000" +] +uid 8151,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "93000,71000,95000,74000" +) +oxt "19000,21000,21000,24000" +) +] +shape (Rectangle +uid 8153,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "90000,71000,107000,85000" +fos 1 +) +oxt "16000,21000,33000,35000" +ttg (MlTextGroup +uid 8154,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*234 (Text +uid 8155,0 +va (VaSet +font "Verdana,9,1" +) +xt "80050,69300,85050,70500" +st "HEIRV32" +blo "80050,70300" +tm "BdLibraryNameMgr" +) +*235 (Text +uid 8156,0 +va (VaSet +font "Verdana,9,1" +) +xt "80050,70500,86950,71700" +st "registerFile" +blo "80050,71500" +tm "CptNameMgr" +) +*236 (Text +uid 8157,0 +va (VaSet +font "Verdana,9,1" +) +xt "80050,71700,88250,72900" +st "U_registerFile" +blo "80050,72700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8158,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8159,0 +text (MLText +uid 8160,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "91000,88600,114500,92600" +st "g_dataWidth = c_dataWidth ( positive ) +g_btnsNb = g_btnsNb ( positive ) +g_tRfRd = 100 ps ( time ) +g_tRfWr = 60 ps ( time ) +g_tSetup = 50 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_btnsNb" +type "positive" +value "g_btnsNb" +) +(GiElement +name "g_tRfRd" +type "time" +value "100 ps" +) +(GiElement +name "g_tRfWr" +type "time" +value "60 ps" +) +(GiElement +name "g_tSetup" +type "time" +value "50 ps" +) +] +) +viewicon (ZoomableIcon +uid 8161,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "90250,83250,91750,84750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*237 (Wire +uid 342,0 +shape (OrthoPolyLine +uid 343,0 +va (VaSet +vasetType 3 +) +xt "11000,38000,14000,38000" +pts [ +"11000,38000" +"14000,38000" +] +) +start &12 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 348,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 349,0 +va (VaSet +isHidden 1 +) +xt "13000,36800,15200,38000" +st "clk" +blo "13000,37800" +tm "WireNameMgr" +) +) +on &16 +) +*238 (Wire +uid 350,0 +shape (OrthoPolyLine +uid 351,0 +va (VaSet +vasetType 3 +) +xt "11000,40000,14000,40000" +pts [ +"11000,40000" +"14000,40000" +] +) +start &13 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +isHidden 1 +) +xt "13000,38800,15100,40000" +st "rst" +blo "13000,39800" +tm "WireNameMgr" +) +) +on &15 +) +*239 (Wire +uid 396,0 +shape (OrthoPolyLine +uid 397,0 +va (VaSet +vasetType 3 +) +xt "16000,74000,16000,75250" +pts [ +"16000,74000" +"16000,75250" +] +) +end &161 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +) +xt "15059,72035,17259,73235" +st "clk" +blo "15059,73035" +tm "WireNameMgr" +) +) +on &16 +) +*240 (Wire +uid 426,0 +shape (OrthoPolyLine +uid 427,0 +va (VaSet +vasetType 3 +) +xt "10000,81000,13250,81000" +pts [ +"10000,81000" +"13250,81000" +] +) +end &165 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 432,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 433,0 +va (VaSet +) +xt "11000,79800,13100,81000" +st "rst" +blo "11000,80800" +tm "WireNameMgr" +) +) +on &15 +) +*241 (Wire +uid 716,0 +shape (OrthoPolyLine +uid 717,0 +va (VaSet +vasetType 3 +) +xt "17000,43000,80250,90000" +pts [ +"17000,88000" +"17000,90000" +"20000,90000" +"20000,43000" +"80250,43000" +] +) +start &100 +end &145 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 720,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 721,0 +va (VaSet +) +xt "17000,89800,21800,91000" +st "PCWrite" +blo "17000,90800" +tm "WireNameMgr" +) +) +on &17 +) +*242 (Wire +uid 782,0 +optionalChildren [ +*243 (BdJunction +uid 4060,0 +ps "OnConnectorStrategy" +shape (Circle +uid 4061,0 +va (VaSet +vasetType 1 +) +xt "21600,78600,22400,79400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 783,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "18750,79000,26000,79000" +pts [ +"18750,79000" +"26000,79000" +] +) +start &162 +end &20 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 786,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 787,0 +va (VaSet +) +xt "24000,77800,26200,79000" +st "PC" +blo "24000,78800" +tm "WireNameMgr" +) +) +on &14 +) +*244 (Wire +uid 790,0 +optionalChildren [ +*245 (BdJunction +uid 804,0 +ps "OnConnectorStrategy" +shape (Circle +uid 805,0 +va (VaSet +vasetType 1 +) +xt "21600,100600,22400,101400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 791,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "8000,79000,28000,101000" +pts [ +"13250,79000" +"8000,79000" +"8000,101000" +"28000,101000" +] +) +start &163 +end &53 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 794,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 795,0 +va (VaSet +) +xt "9000,77800,13600,79000" +st "PCNext" +blo "9000,78800" +tm "WireNameMgr" +) +) +on &18 +) +*246 (Wire +uid 798,0 +shape (OrthoPolyLine +uid 799,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,81000,26000,101000" +pts [ +"22000,101000" +"22000,81000" +"26000,81000" +] +) +start &245 +end &23 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 802,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 803,0 +va (VaSet +) +xt "22000,79800,26600,81000" +st "PCNext" +blo "22000,80800" +tm "WireNameMgr" +) +) +on &18 +) +*247 (Wire +uid 838,0 +shape (OrthoPolyLine +uid 839,0 +va (VaSet +vasetType 3 +) +xt "29000,45000,80250,78500" +pts [ +"29000,78500" +"29000,45000" +"80250,45000" +] +) +start &22 +end &153 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 842,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 843,0 +ro 270 +va (VaSet +) +xt "27800,73000,29000,77000" +st "adrSrc" +blo "28800,77000" +tm "WireNameMgr" +) +s (Text +uid 2894,0 +ro 270 +va (VaSet +) +xt "29000,77000,29000,77000" +blo "29100,77100" +tm "SignalTypeMgr" +) +) +on &60 +) +*248 (Wire +uid 852,0 +shape (OrthoPolyLine +uid 853,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30000,80000,36250,80000" +pts [ +"30000,80000" +"36250,80000" +] +) +start &21 +end &119 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 856,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 857,0 +va (VaSet +) +xt "33000,78800,35300,80000" +st "adr" +blo "33000,79800" +tm "WireNameMgr" +) +s (Text +uid 2895,0 +va (VaSet +) +xt "33000,80000,33000,80000" +blo "33000,80000" +tm "SignalTypeMgr" +) +) +on &27 +) +*249 (Wire +uid 872,0 +shape (OrthoPolyLine +uid 873,0 +va (VaSet +vasetType 3 +) +xt "39000,75000,39000,77250" +pts [ +"39000,75000" +"39000,77250" +] +) +end &120 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 878,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 879,0 +va (VaSet +) +xt "38000,72800,40200,74000" +st "clk" +blo "38000,73800" +tm "WireNameMgr" +) +) +on &16 +) +*250 (Wire +uid 880,0 +optionalChildren [ +*251 (BdJunction +uid 3596,0 +ps "OnConnectorStrategy" +shape (Circle +uid 3597,0 +va (VaSet +vasetType 1 +) +xt "52600,80600,53400,81400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 881,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "51750,81000,175250,99000" +pts [ +"51750,81000" +"53000,81000" +"53000,99000" +"168000,99000" +"168000,86000" +"175250,86000" +] +) +start &121 +end &194 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 886,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 887,0 +va (VaSet +) +xt "172000,84800,174900,86000" +st "data" +blo "172000,85800" +tm "WireNameMgr" +) +) +on &31 +) +*252 (Wire +uid 898,0 +optionalChildren [ +*253 (BdJunction +uid 2430,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2431,0 +va (VaSet +vasetType 1 +) +xt "111600,86600,112400,87400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 899,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "31000,80000,112000,97000" +pts [ +"107750,80000" +"112000,80000" +"112000,97000" +"31000,97000" +"31000,82000" +"36250,82000" +] +) +start &224 +end &122 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 904,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 905,0 +va (VaSet +) +xt "31000,80800,36500,82000" +st "writeData" +blo "31000,81800" +tm "WireNameMgr" +) +) +on &28 +) +*254 (Wire +uid 1106,0 +shape (OrthoPolyLine +uid 1107,0 +va (VaSet +vasetType 3 +) +xt "44000,47000,80250,77250" +pts [ +"44000,77250" +"44000,47000" +"80250,47000" +] +) +start &123 +end &144 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 1110,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1111,0 +ro 270 +va (VaSet +) +xt "42800,70300,44000,76000" +st "memWrite" +blo "43800,76000" +tm "WireNameMgr" +) +) +on &29 +) +*255 (Wire +uid 1164,0 +optionalChildren [ +*256 (BdJunction +uid 4578,0 +ps "OnConnectorStrategy" +shape (Circle +uid 4579,0 +va (VaSet +vasetType 1 +) +xt "53600,76600,54400,77400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1165,0 +va (VaSet +vasetType 3 +) +xt "47000,49000,80250,79250" +pts [ +"61000,79250" +"61000,77000" +"47000,77000" +"47000,49000" +"80250,49000" +] +) +start &132 +end &143 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 1168,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1169,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "59800,73250,61000,77750" +st "IRWrite" +blo "60800,77750" +tm "WireNameMgr" +) +) +on &30 +) +*257 (Wire +uid 1274,0 +optionalChildren [ +*258 (BdJunction +uid 2374,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2375,0 +va (VaSet +vasetType 1 +) +xt "48600,65600,49400,66400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1275,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "40000,66000,52250,66000" +pts [ +"40000,66000" +"52250,66000" +] +) +start &74 +end &83 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1276,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1277,0 +va (VaSet +) +xt "50000,64800,52800,66000" +st "PCu" +blo "50000,65800" +tm "WireNameMgr" +) +) +on &78 +) +*259 (Wire +uid 1286,0 +shape (OrthoPolyLine +uid 1287,0 +va (VaSet +vasetType 3 +) +xt "49000,68000,52250,68000" +pts [ +"49000,68000" +"52250,68000" +] +) +end &80 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1292,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1293,0 +va (VaSet +) +xt "50000,66800,52100,68000" +st "rst" +blo "50000,67800" +tm "WireNameMgr" +) +) +on &15 +) +*260 (Wire +uid 1294,0 +shape (OrthoPolyLine +uid 1295,0 +va (VaSet +vasetType 3 +) +xt "55000,61000,55000,62250" +pts [ +"55000,61000" +"55000,62250" +] +) +end &82 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1300,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1301,0 +va (VaSet +) +xt "54059,59035,56259,60235" +st "clk" +blo "54059,60035" +tm "WireNameMgr" +) +) +on &16 +) +*261 (Wire +uid 1304,0 +shape (OrthoPolyLine +uid 1305,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "57750,66000,120250,74000" +pts [ +"57750,66000" +"112000,66000" +"112000,74000" +"120250,74000" +] +) +start &84 +end &184 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 1308,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1309,0 +va (VaSet +) +xt "115000,72800,118700,74000" +st "oldPC" +blo "115000,73800" +tm "WireNameMgr" +) +) +on &32 +) +*262 (Wire +uid 1314,0 +optionalChildren [ +*263 (Ripper +uid 1328,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"66999,51050" +"67999,52050" +] +uid 1329,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66999,51050,67999,52050" +) +) +*264 (Ripper +uid 1339,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"66999,53000" +"67999,54000" +] +uid 1340,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66999,53000,67999,54000" +) +) +*265 (Ripper +uid 1350,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"66999,55000" +"67999,56000" +] +uid 1351,0 +va (VaSet +vasetType 3 +) +xt "66999,55000,67999,56000" +) +) +*266 (BdJunction +uid 1800,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1801,0 +va (VaSet +vasetType 1 +) +xt "66600,84600,67400,85400" +radius 400 +) +) +*267 (Ripper +uid 1816,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"66999,77000" +"67999,78000" +] +uid 1817,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66999,77000,67999,78000" +) +) +*268 (Ripper +uid 1824,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"66999,79000" +"67999,80000" +] +uid 1825,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66999,79000,67999,80000" +) +) +*269 (Ripper +uid 1834,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"66999,75000" +"67999,76000" +] +uid 1835,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "66999,75000,67999,76000" +) +) +] +shape (OrthoPolyLine +uid 1315,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "65750,50000,67000,85000" +pts [ +"65750,85000" +"67000,85000" +"67000,50000" +] +) +start &131 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1318,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1319,0 +va (VaSet +isHidden 1 +) +xt "67000,83800,73800,85000" +st "instruction" +blo "67000,84800" +tm "WireNameMgr" +) +) +on &40 +) +*270 (Wire +uid 1322,0 +shape (OrthoPolyLine +uid 1323,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68005,52000,80250,52050" +pts [ +"68005,52050" +"74000,52050" +"74000,52000" +"80250,52000" +] +) +start &263 +end &142 +sat 32 +eat 32 +sty 1 +sl "(6 DOWNTO 0)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1326,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1327,0 +va (VaSet +) +xt "71000,50800,80400,52000" +st "instruction(6:0)" +blo "71000,51800" +tm "WireNameMgr" +) +) +on &40 +) +*271 (Wire +uid 1333,0 +shape (OrthoPolyLine +uid 1334,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68005,54000,80250,54000" +pts [ +"68005,54000" +"80250,54000" +] +) +start &264 +end &149 +sat 32 +eat 32 +sty 1 +sl "(14 DOWNTO 12)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1337,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1338,0 +va (VaSet +) +xt "71000,52800,81800,54000" +st "instruction(14:12)" +blo "71000,53800" +tm "WireNameMgr" +) +) +on &40 +) +*272 (Wire +uid 1344,0 +shape (OrthoPolyLine +uid 1345,0 +va (VaSet +vasetType 3 +) +xt "68005,56000,80250,56000" +pts [ +"68005,56000" +"80250,56000" +] +) +start &265 +end &150 +sat 32 +eat 32 +sl "(30)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1348,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1349,0 +va (VaSet +) +xt "71000,54800,80000,56000" +st "instruction(30)" +blo "71000,55800" +tm "WireNameMgr" +) +) +on &40 +) +*273 (Wire +uid 1354,0 +shape (OrthoPolyLine +uid 1355,0 +va (VaSet +vasetType 3 +) +xt "89000,59750,147000,82000" +pts [ +"145750,82000" +"147000,82000" +"147000,61000" +"89000,61000" +"89000,59750" +] +) +start &215 +end &148 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1360,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1361,0 +ro 270 +va (VaSet +) +xt "145800,78200,147000,81000" +st "zero" +blo "146800,81000" +tm "WireNameMgr" +) +) +on &33 +) +*274 (Wire +uid 1368,0 +shape (OrthoPolyLine +uid 1369,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,44000,179000,83749" +pts [ +"98750,44000" +"179000,44000" +"179000,83749" +] +) +start &147 +end &192 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1374,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1375,0 +ro 270 +va (VaSet +) +xt "177800,75700,179000,81000" +st "resultSrc" +blo "178800,81000" +tm "WireNameMgr" +) +) +on &34 +) +*275 (Wire +uid 1380,0 +shape (OrthoPolyLine +uid 1381,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,46000,141000,77027" +pts [ +"98750,46000" +"141000,46000" +"141000,77027" +] +) +start &138 +end &211 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1386,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1387,0 +ro 270 +va (VaSet +) +xt "139800,67700,141000,75000" +st "ALUControl" +blo "140800,75000" +tm "WireNameMgr" +) +) +on &35 +) +*276 (Wire +uid 1392,0 +shape (OrthoPolyLine +uid 1393,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,48000,128000,86749" +pts [ +"98750,48000" +"128000,48000" +"128000,86749" +] +) +start &140 +end &172 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1399,0 +ro 270 +va (VaSet +) +xt "126800,79700,128000,85000" +st "ALUSrcB" +blo "127800,85000" +tm "WireNameMgr" +) +) +on &36 +) +*277 (Wire +uid 1402,0 +shape (OrthoPolyLine +uid 1403,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,50000,124000,71749" +pts [ +"98750,50000" +"124000,50000" +"124000,71749" +] +) +start &139 +end &182 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1408,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1409,0 +ro 270 +va (VaSet +) +xt "122800,63600,124000,69000" +st "ALUSrcA" +blo "123800,69000" +tm "WireNameMgr" +) +) +on &37 +) +*278 (Wire +uid 1412,0 +shape (OrthoPolyLine +uid 1413,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,52000,108000,90000" +pts [ +"98750,52000" +"108000,52000" +"108000,90000" +"105750,90000" +] +) +start &141 +end &204 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1419,0 +va (VaSet +) +xt "100750,50800,105250,52000" +st "immSrc" +blo "100750,51800" +tm "WireNameMgr" +) +) +on &38 +) +*279 (Wire +uid 1666,0 +shape (OrthoPolyLine +uid 1667,0 +va (VaSet +vasetType 3 +) +xt "85000,36000,85000,37250" +pts [ +"85000,36000" +"85000,37250" +] +) +end &151 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1672,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1673,0 +va (VaSet +) +xt "84059,34035,86259,35235" +st "clk" +blo "84059,35035" +tm "WireNameMgr" +) +) +on &16 +) +*280 (Wire +uid 1674,0 +shape (OrthoPolyLine +uid 1675,0 +va (VaSet +vasetType 3 +) +xt "89000,36000,89000,37250" +pts [ +"89000,36000" +"89000,37250" +] +) +end &152 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1680,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1681,0 +va (VaSet +) +xt "88000,33800,90100,35000" +st "rst" +blo "88000,34800" +tm "WireNameMgr" +) +) +on &15 +) +*281 (Wire +uid 1794,0 +optionalChildren [ +*282 (Ripper +uid 1832,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,92000" +"68000,93000" +] +uid 1833,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,92000,68000,93000" +) +) +] +shape (OrthoPolyLine +uid 1795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,85000,67000,94000" +pts [ +"67000,85000" +"67000,94000" +] +) +start &266 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1799,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "65800,83000,67000,89800" +st "instruction" +blo "66800,89800" +tm "WireNameMgr" +) +) +on &40 +) +*283 (Wire +uid 1802,0 +shape (OrthoPolyLine +uid 1803,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68006,76000,89250,76000" +pts [ +"68006,76000" +"89250,76000" +] +) +start &269 +end &221 +sat 32 +eat 32 +sty 1 +sl "(19 DOWNTO 15)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1806,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1807,0 +va (VaSet +) +xt "79000,74800,89800,76000" +st "instruction(19:15)" +blo "79000,75800" +tm "WireNameMgr" +) +) +on &40 +) +*284 (Wire +uid 1810,0 +shape (OrthoPolyLine +uid 1811,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68007,78000,89250,78000" +pts [ +"68007,78000" +"89250,78000" +] +) +start &267 +end &227 +sat 32 +eat 32 +sty 1 +sl "(24 DOWNTO 20)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1814,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1815,0 +va (VaSet +) +xt "79000,76800,89800,78000" +st "instruction(24:20)" +blo "79000,77800" +tm "WireNameMgr" +) +) +on &40 +) +*285 (Wire +uid 1818,0 +shape (OrthoPolyLine +uid 1819,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68007,80000,89250,80000" +pts [ +"68007,80000" +"89250,80000" +] +) +start &268 +end &228 +sat 32 +eat 32 +sty 1 +sl "(11 DOWNTO 7)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1822,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1823,0 +va (VaSet +) +xt "79000,78800,89100,80000" +st "instruction(11:7)" +blo "79000,79800" +tm "WireNameMgr" +) +) +on &40 +) +*286 (Wire +uid 1826,0 +shape (OrthoPolyLine +uid 1827,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,93000,89250,93000" +pts [ +"68000,93000" +"89250,93000" +] +) +start &282 +end &203 +sat 32 +eat 32 +sty 1 +sl "(31 DOWNTO 7)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1830,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1831,0 +va (VaSet +) +xt "80000,91800,90100,93000" +st "instruction(31:7)" +blo "80000,92800" +tm "WireNameMgr" +) +) +on &40 +) +*287 (Wire +uid 1836,0 +shape (OrthoPolyLine +uid 1837,0 +va (VaSet +vasetType 3 +) +xt "93000,69000,93000,70250" +pts [ +"93000,69000" +"93000,70250" +] +) +end &220 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1842,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1843,0 +va (VaSet +) +xt "92059,67035,94259,68235" +st "clk" +blo "92059,68035" +tm "WireNameMgr" +) +) +on &16 +) +*288 (Wire +uid 1844,0 +shape (OrthoPolyLine +uid 1845,0 +va (VaSet +vasetType 3 +) +xt "96000,69000,96000,70250" +pts [ +"96000,69000" +"96000,70250" +] +) +end &226 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1850,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1851,0 +va (VaSet +) +xt "95000,67041,97100,68241" +st "rst" +blo "95000,68041" +tm "WireNameMgr" +) +) +on &15 +) +*289 (Wire +uid 1854,0 +shape (OrthoPolyLine +uid 1855,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107750,76000,120250,76000" +pts [ +"107750,76000" +"120250,76000" +] +) +start &223 +end &186 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1860,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1861,0 +va (VaSet +) +xt "115000,74800,117900,76000" +st "RD1" +blo "115000,75800" +tm "WireNameMgr" +) +) +on &41 +) +*290 (Wire +uid 2096,0 +shape (OrthoPolyLine +uid 2097,0 +va (VaSet +vasetType 3 +) +xt "98750,54000,100000,70250" +pts [ +"98750,54000" +"100000,54000" +"100000,70250" +] +) +start &146 +end &225 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2098,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2099,0 +ro 270 +va (VaSet +) +xt "98800,65300,100000,70000" +st "regwrite" +blo "99800,70000" +tm "WireNameMgr" +) +) +on &39 +) +*291 (Wire +uid 2114,0 +shape (OrthoPolyLine +uid 2115,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "105750,89000,124250,93000" +pts [ +"105750,93000" +"114000,93000" +"114000,89000" +"124250,89000" +] +) +start &202 +end &174 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2121,0 +va (VaSet +) +xt "119000,87800,123500,89000" +st "immExt" +blo "119000,88800" +tm "WireNameMgr" +) +) +on &42 +) +*292 (Wire +uid 2370,0 +shape (OrthoPolyLine +uid 2371,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49000,58000,120250,72000" +pts [ +"49000,66000" +"49000,58000" +"61000,58000" +"61000,64000" +"114000,64000" +"114000,72000" +"120250,72000" +] +) +start &258 +end &185 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2372,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2373,0 +va (VaSet +) +xt "115000,70800,117800,72000" +st "PCu" +blo "115000,71800" +tm "WireNameMgr" +) +) +on &78 +) +*293 (Wire +uid 2388,0 +shape (OrthoPolyLine +uid 2389,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "114000,78000,120250,78000" +pts [ +"120250,78000" +"114000,78000" +] +) +start &183 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2392,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2393,0 +va (VaSet +) +xt "115000,76800,121600,78000" +st "four_zeros" +blo "115000,77800" +tm "WireNameMgr" +) +s (Text +uid 2918,0 +va (VaSet +) +xt "115000,78000,115000,78000" +blo "115000,78000" +tm "SignalTypeMgr" +) +) +on &58 +) +*294 (Wire +uid 2400,0 +shape (OrthoPolyLine +uid 2401,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "118000,93000,124250,93000" +pts [ +"124250,93000" +"118000,93000" +] +) +start &173 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2404,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2405,0 +va (VaSet +) +xt "119000,91800,125600,93000" +st "four_zeros" +blo "119000,92800" +tm "WireNameMgr" +) +s (Text +uid 2921,0 +va (VaSet +) +xt "119000,93000,119000,93000" +blo "119000,93000" +tm "SignalTypeMgr" +) +) +on &58 +) +*295 (Wire +uid 2418,0 +shape (OrthoPolyLine +uid 2419,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "118000,91000,124250,91000" +pts [ +"124250,91000" +"118000,91000" +] +) +start &176 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2422,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2423,0 +va (VaSet +) +xt "119000,89800,124100,91000" +st "four_four" +blo "119000,90800" +tm "WireNameMgr" +) +s (Text +uid 2924,0 +va (VaSet +) +xt "119000,91000,119000,91000" +blo "119000,91000" +tm "SignalTypeMgr" +) +) +on &59 +) +*296 (Wire +uid 2426,0 +shape (OrthoPolyLine +uid 2427,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "112000,87000,124250,87000" +pts [ +"124250,87000" +"112000,87000" +] +) +start &175 +end &253 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2428,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2429,0 +va (VaSet +) +xt "119000,85800,124500,87000" +st "writeData" +blo "119000,86800" +tm "WireNameMgr" +) +) +on &28 +) +*297 (Wire +uid 2436,0 +shape (OrthoPolyLine +uid 2437,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "125750,75000,135250,78000" +pts [ +"125750,75000" +"134000,75000" +"134000,78000" +"135250,78000" +] +) +start &187 +end &213 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2440,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2441,0 +va (VaSet +) +xt "131000,73800,134100,75000" +st "srcA" +blo "131000,74800" +tm "WireNameMgr" +) +s (Text +uid 2925,0 +va (VaSet +) +xt "131000,75000,131000,75000" +blo "131000,75000" +tm "SignalTypeMgr" +) +) +on &47 +) +*298 (Wire +uid 2444,0 +shape (OrthoPolyLine +uid 2445,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "129750,87000,135250,90000" +pts [ +"129750,90000" +"134000,90000" +"134000,87000" +"135250,87000" +] +) +start &177 +end &214 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2448,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2449,0 +va (VaSet +) +xt "131000,88800,134000,90000" +st "srcB" +blo "131000,89800" +tm "WireNameMgr" +) +s (Text +uid 2926,0 +va (VaSet +) +xt "131000,90000,131000,90000" +blo "131000,90000" +tm "SignalTypeMgr" +) +) +on &48 +) +*299 (Wire +uid 2586,0 +shape (OrthoPolyLine +uid 2587,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "169000,90000,175250,90000" +pts [ +"175250,90000" +"169000,90000" +] +) +start &193 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2592,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2593,0 +va (VaSet +) +xt "170000,88800,176600,90000" +st "four_zeros" +blo "170000,89800" +tm "WireNameMgr" +) +s (Text +uid 2594,0 +va (VaSet +) +xt "170000,90000,170000,90000" +blo "170000,90000" +tm "SignalTypeMgr" +) +) +on &58 +) +*300 (Wire +uid 2724,0 +shape (OrthoPolyLine +uid 2725,0 +va (VaSet +vasetType 3 +) +xt "156000,79000,156000,80250" +pts [ +"156000,79000" +"156000,80250" +] +) +end &64 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2728,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2729,0 +va (VaSet +) +xt "155059,77035,157259,78235" +st "clk" +blo "155059,78035" +tm "WireNameMgr" +) +) +on &16 +) +*301 (Wire +uid 2730,0 +shape (OrthoPolyLine +uid 2731,0 +va (VaSet +vasetType 3 +) +xt "150000,86000,153250,86000" +pts [ +"150000,86000" +"153250,86000" +] +) +end &62 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 2734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2735,0 +va (VaSet +) +xt "151000,84800,153100,86000" +st "rst" +blo "151000,85800" +tm "WireNameMgr" +) +) +on &15 +) +*302 (Wire +uid 2759,0 +shape (OrthoPolyLine +uid 2760,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "158750,84000,175250,84000" +pts [ +"158750,84000" +"175250,84000" +] +) +start &66 +end &195 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 2761,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2762,0 +va (VaSet +) +xt "171000,82800,175800,84000" +st "ALUOut" +blo "171000,83800" +tm "WireNameMgr" +) +) +on &50 +) +*303 (Wire +uid 2765,0 +optionalChildren [ +*304 (BdJunction +uid 3752,0 +ps "OnConnectorStrategy" +shape (Circle +uid 3753,0 +va (VaSet +vasetType 1 +) +xt "151600,83600,152400,84400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 2766,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "152000,76000,175250,88000" +pts [ +"175250,88000" +"161000,88000" +"161000,76000" +"152000,76000" +"152000,84000" +"153250,84000" +] +) +start &196 +end &65 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2767,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2768,0 +va (VaSet +) +xt "170000,86800,176100,88000" +st "ALUResult" +blo "170000,87800" +tm "WireNameMgr" +) +) +on &49 +) +*305 (Wire +uid 2849,0 +optionalChildren [ +*306 (BdJunction +uid 2859,0 +ps "OnConnectorStrategy" +shape (Circle +uid 2860,0 +va (VaSet +vasetType 1 +) +xt "69600,100600,70400,101400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 2850,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "33000,87000,183000,101000" +pts [ +"33000,101000" +"183000,101000" +"183000,87000" +"180750,87000" +] +) +start &52 +end &197 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2851,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2852,0 +va (VaSet +isHidden 1 +) +xt "35000,99800,38600,101000" +st "result" +blo "35000,100800" +tm "WireNameMgr" +) +s (Text +uid 2934,0 +va (VaSet +isHidden 1 +) +xt "35000,101000,35000,101000" +blo "35000,101000" +tm "SignalTypeMgr" +) +) +on &57 +) +*307 (Wire +uid 2855,0 +shape (OrthoPolyLine +uid 2856,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "70000,83000,89250,101000" +pts [ +"89250,83000" +"70000,83000" +"70000,101000" +] +) +start &222 +end &306 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2857,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2858,0 +va (VaSet +) +xt "84250,81800,87850,83000" +st "result" +blo "84250,82800" +tm "WireNameMgr" +) +) +on &57 +) +*308 (Wire +uid 3592,0 +shape (OrthoPolyLine +uid 3593,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "53000,81000,54250,81000" +pts [ +"53000,81000" +"54250,81000" +] +) +start &251 +end &133 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3594,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3595,0 +va (VaSet +isHidden 1 +) +xt "50250,79800,53150,81000" +st "data" +blo "50250,80800" +tm "WireNameMgr" +) +) +on &31 +) +*309 (Wire +uid 3748,0 +shape (OrthoPolyLine +uid 3749,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "145750,84000,152000,84000" +pts [ +"152000,84000" +"145750,84000" +] +) +start &304 +end &212 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3751,0 +va (VaSet +) +xt "146000,82800,152100,84000" +st "ALUResult" +blo "146000,83800" +tm "WireNameMgr" +) +) +on &49 +) +*310 (Wire +uid 4056,0 +shape (OrthoPolyLine +uid 4057,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "22000,66000,35000,79000" +pts [ +"22000,79000" +"22000,66000" +"35000,66000" +] +) +start &243 +end &73 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4058,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4059,0 +va (VaSet +) +xt "32000,64800,34200,66000" +st "PC" +blo "32000,65800" +tm "WireNameMgr" +) +) +on &14 +) +*311 (Wire +uid 4353,0 +shape (OrthoPolyLine +uid 4354,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "170000,14000,173000,14000" +pts [ +"173000,14000" +"170000,14000" +] +) +start &91 +end &92 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4357,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4358,0 +va (VaSet +isHidden 1 +) +xt "175000,12800,180200,14000" +st "dbg_leds" +blo "175000,13800" +tm "WireNameMgr" +) +) +on &90 +) +*312 (Wire +uid 4387,0 +shape (OrthoPolyLine +uid 4388,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,11000,118000,11000" +pts [ +"110000,11000" +"118000,11000" +] +) +end &92 +sat 16 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 4393,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4394,0 +va (VaSet +) +xt "115000,9800,117300,11000" +st "adr" +blo "115000,10800" +tm "WireNameMgr" +) +s (Text +uid 4395,0 +va (VaSet +) +xt "115000,11000,115000,11000" +blo "115000,11000" +tm "SignalTypeMgr" +) +) +on &27 +) +*313 (Wire +uid 4396,0 +shape (OrthoPolyLine +uid 4397,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,13000,118000,13000" +pts [ +"110000,13000" +"118000,13000" +] +) +end &92 +sat 16 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4403,0 +va (VaSet +) +xt "111000,11800,117800,13000" +st "instruction" +blo "111000,12800" +tm "WireNameMgr" +) +) +on &40 +) +*314 (Wire +uid 4420,0 +shape (OrthoPolyLine +uid 4421,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,15000,118000,15000" +pts [ +"118000,15000" +"110000,15000" +] +) +start &92 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4426,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4427,0 +va (VaSet +) +xt "112000,13800,117300,15000" +st "resultSrc" +blo "112000,14800" +tm "WireNameMgr" +) +) +on &34 +) +*315 (Wire +uid 4428,0 +shape (OrthoPolyLine +uid 4429,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,17000,118000,17000" +pts [ +"118000,17000" +"110000,17000" +] +) +start &92 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4434,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4435,0 +va (VaSet +) +xt "112000,15800,119300,17000" +st "ALUControl" +blo "112000,16800" +tm "WireNameMgr" +) +) +on &35 +) +*316 (Wire +uid 4436,0 +shape (OrthoPolyLine +uid 4437,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,19000,118000,19000" +pts [ +"118000,19000" +"110000,19000" +] +) +start &92 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4442,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4443,0 +va (VaSet +) +xt "112000,17800,117400,19000" +st "ALUSrcA" +blo "112000,18800" +tm "WireNameMgr" +) +) +on &37 +) +*317 (Wire +uid 4444,0 +shape (OrthoPolyLine +uid 4445,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,21000,118000,21000" +pts [ +"118000,21000" +"110000,21000" +] +) +start &92 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4450,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4451,0 +va (VaSet +) +xt "112000,19800,117300,21000" +st "ALUSrcB" +blo "112000,20800" +tm "WireNameMgr" +) +) +on &36 +) +*318 (Wire +uid 4452,0 +shape (OrthoPolyLine +uid 4453,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "110000,23000,118000,23000" +pts [ +"118000,23000" +"110000,23000" +] +) +start &92 +sat 1 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4458,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4459,0 +va (VaSet +) +xt "112000,21800,116500,23000" +st "immSrc" +blo "112000,22800" +tm "WireNameMgr" +) +) +on &38 +) +*319 (Wire +uid 4470,0 +shape (OrthoPolyLine +uid 4471,0 +va (VaSet +vasetType 3 +) +xt "110000,25000,118000,25000" +pts [ +"110000,25000" +"118000,25000" +] +) +end &92 +sat 16 +eat 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 4476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4477,0 +va (VaSet +) +xt "112000,23800,116700,25000" +st "regwrite" +blo "112000,24800" +tm "WireNameMgr" +) +) +on &39 +) +*320 (Wire +uid 4484,0 +shape (OrthoPolyLine +uid 4485,0 +va (VaSet +vasetType 3 +) +xt "11000,42000,14000,42000" +pts [ +"11000,42000" +"13000,42000" +"14000,42000" +] +) +start &96 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4488,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4489,0 +va (VaSet +isHidden 1 +) +xt "11000,39800,12900,41000" +st "en" +blo "11000,40800" +tm "WireNameMgr" +) +) +on &97 +) +*321 (Wire +uid 4498,0 +shape (OrthoPolyLine +uid 4499,0 +va (VaSet +vasetType 3 +) +xt "153000,88750,156000,90000" +pts [ +"153000,90000" +"156000,90000" +"156000,88750" +] +) +end &63 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4504,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4505,0 +va (VaSet +) +xt "154000,88800,155900,90000" +st "en" +blo "154000,89800" +tm "WireNameMgr" +) +) +on &97 +) +*322 (Wire +uid 4508,0 +shape (OrthoPolyLine +uid 4509,0 +va (VaSet +vasetType 3 +) +xt "12000,88000,15000,90000" +pts [ +"12000,90000" +"15000,90000" +"15000,88000" +] +) +end &99 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4514,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4515,0 +va (VaSet +) +xt "13000,88800,14900,90000" +st "en" +blo "13000,89800" +tm "WireNameMgr" +) +) +on &97 +) +*323 (Wire +uid 4540,0 +shape (OrthoPolyLine +uid 4541,0 +va (VaSet +vasetType 3 +) +xt "16000,83750,16000,85050" +pts [ +"16000,85050" +"16000,83750" +] +) +start &101 +end &164 +sat 32 +eat 32 +sf 1 +si 0 +tg (WTG +uid 4542,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4543,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "14800,73850,16000,84050" +st "out1 : std_uLogic" +blo "15800,84050" +tm "WireNameMgr" +) +) +on &105 +) +*324 (Wire +uid 4568,0 +shape (OrthoPolyLine +uid 4569,0 +va (VaSet +vasetType 3 +) +xt "56000,75000,59000,76000" +pts [ +"59000,76000" +"56000,76000" +"56000,75000" +] +) +end &107 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4572,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4573,0 +va (VaSet +) +xt "57000,74800,58900,76000" +st "en" +blo "57000,75800" +tm "WireNameMgr" +) +) +on &97 +) +*325 (Wire +uid 4574,0 +shape (OrthoPolyLine +uid 4575,0 +va (VaSet +vasetType 3 +) +xt "54000,75000,54000,77000" +pts [ +"54000,77000" +"54000,75000" +] +) +start &256 +end &108 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4576,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4577,0 +va (VaSet +) +xt "49000,75800,53500,77000" +st "IRWrite" +blo "49000,76800" +tm "WireNameMgr" +) +) +on &30 +) +*326 (Wire +uid 4588,0 +shape (OrthoPolyLine +uid 4589,0 +va (VaSet +vasetType 3 +) +xt "55000,70750,55000,72050" +pts [ +"55000,70750" +"55000,72050" +] +) +start &81 +end &109 +sat 32 +eat 32 +stc 0 +st 0 +si 0 +tg (WTG +uid 4590,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4591,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "56800,70400,58000,73000" +st "en1" +blo "57800,73000" +tm "WireNameMgr" +) +) +on &113 +) +*327 (Wire +uid 4666,0 +shape (OrthoPolyLine +uid 4667,0 +va (VaSet +vasetType 3 +) +xt "46000,75000,46000,77250" +pts [ +"46000,75000" +"46000,77250" +] +) +end &124 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4672,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4673,0 +va (VaSet +) +xt "45155,72800,47055,74000" +st "en" +blo "45155,73800" +tm "WireNameMgr" +) +) +on &97 +) +*328 (Wire +uid 4728,0 +shape (OrthoPolyLine +uid 4729,0 +va (VaSet +vasetType 3 +) +xt "103000,69000,103000,70250" +pts [ +"103000,69000" +"103000,70250" +] +) +end &229 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4735,0 +va (VaSet +) +xt "102155,66800,104055,68000" +st "en" +blo "102155,67800" +tm "WireNameMgr" +) +) +on &97 +) +*329 (Wire +uid 4818,0 +shape (OrthoPolyLine +uid 4819,0 +va (VaSet +vasetType 3 +) +xt "92000,36000,92000,37250" +pts [ +"92000,36000" +"92000,37250" +] +) +end &154 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4824,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4825,0 +va (VaSet +) +xt "91155,33800,93055,35000" +st "en" +blo "91155,34800" +tm "WireNameMgr" +) +) +on &97 +) +*330 (Wire +uid 5837,0 +shape (OrthoPolyLine +uid 5838,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "73000,85750,102000,109000" +pts [ +"102000,85750" +"102000,86000" +"73000,86000" +"73000,109000" +] +) +start &230 +end &115 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5840,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "100800,87750,102000,90650" +st "btns" +blo "101800,90650" +tm "WireNameMgr" +) +) +on &114 +) +*331 (Wire +uid 5849,0 +shape (OrthoPolyLine +uid 5850,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "75000,85750,104000,109000" +pts [ +"104000,85750" +"104000,87000" +"75000,87000" +"75000,109000" +] +) +start &231 +end &117 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5851,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5852,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "102800,87750,104000,90550" +st "leds" +blo "103800,90550" +tm "WireNameMgr" +) +) +on &116 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *332 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*333 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*334 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*335 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*336 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*337 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*338 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*339 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*340 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*341 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-2689,-2817,225117,117222" +cachedDiagramExtent "0,0,197500,114900" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 8379,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*342 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*343 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*344 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*345 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*346 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*347 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*348 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*349 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*350 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*351 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*352 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*353 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*354 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*355 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*356 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*357 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*358 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*359 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*360 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*361 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*362 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,7200,25200,8400" +st "Pre User:" +blo "20000,8200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8400,47500,10000" +st "constant c_dataWidth : positive := g_dataWidth; +constant c_bramAddrWidth : positive := 10;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,10000,29500,11200" +st "Diagram Signals:" +blo "20000,11000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 102,0 +usingSuid 1 +emptyRow *363 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*364 (RefLabelRowHdr +) +*365 (TitleRowHdr +) +*366 (FilterRowHdr +) +*367 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*368 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*369 (GroupColHdr +tm "GroupColHdrMgr" +) +*370 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*371 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*372 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*373 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*374 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*375 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*376 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PC" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 13 +suid 18,0 +) +) +uid 490,0 +) +*377 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 20,0 +) +) +uid 676,0 +) +*378 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 21,0 +) +) +uid 678,0 +) +*379 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PCWrite" +t "std_ulogic" +o 15 +suid 23,0 +) +) +uid 758,0 +) +*380 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PCNext" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 14 +suid 26,0 +) +) +uid 846,0 +) +*381 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "adr" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 18 +suid 30,0 +) +) +uid 860,0 +) +*382 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 35 +suid 33,0 +) +) +uid 922,0 +) +*383 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "memWrite" +t "std_ulogic" +o 27 +suid 36,0 +) +) +uid 1114,0 +) +*384 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 12 +suid 37,0 +) +) +uid 1170,0 +) +*385 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "data" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 20 +suid 38,0 +) +) +uid 1174,0 +) +*386 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "oldPC" +t "std_ulogic_vector" +b "(c_dataWidth - 1 DOWNTO 0)" +o 28 +suid 44,0 +) +) +uid 1312,0 +) +*387 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "zero" +t "std_ulogic" +o 36 +suid 46,0 +) +) +uid 1364,0 +) +*388 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 32 +suid 48,0 +) +) +uid 1438,0 +) +*389 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 50,0 +) +) +uid 1440,0 +) +*390 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 55,0 +) +) +uid 1442,0 +) +*391 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 10 +suid 56,0 +) +) +uid 1444,0 +) +*392 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 25 +suid 57,0 +) +) +uid 1446,0 +) +*393 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "regwrite" +t "std_ulogic" +o 30 +suid 58,0 +) +) +uid 1448,0 +) +*394 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 26 +suid 59,0 +) +) +uid 1664,0 +) +*395 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "RD1" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 17 +suid 62,0 +) +) +uid 1888,0 +) +*396 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "immExt" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 24 +suid 65,0 +) +) +uid 2124,0 +) +*397 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 33 +suid 74,0 +) +) +uid 2454,0 +) +*398 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 34 +suid 75,0 +) +) +uid 2456,0 +) +*399 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUResult" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 9 +suid 79,0 +) +) +uid 2771,0 +) +*400 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUOut" +t "std_ulogic_vector" +b "(c_dataWidth - 1 DOWNTO 0)" +o 8 +suid 82,0 +) +) +uid 2775,0 +) +*401 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "result" +t "std_uLogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 31 +suid 84,0 +) +) +uid 2861,0 +) +*402 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "four_zeros" +t "std_ulogic_vector" +b "(c_dataWidth-1 downto 0)" +o 23 +suid 85,0 +) +) +uid 2939,0 +) +*403 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "four_four" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 22 +suid 86,0 +) +) +uid 2941,0 +) +*404 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 19 +suid 88,0 +) +) +uid 3183,0 +) +*405 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PCu" +t "std_ulogic_vector" +b "(c_dataWidth - 1 downto 0)" +o 16 +suid 92,0 +) +) +uid 4098,0 +) +*406 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 93,0 +) +) +uid 4371,0 +) +*407 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 97,0 +) +) +uid 4506,0 +) +*408 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "out1" +t "std_uLogic" +o 29 +suid 98,0 +) +) +uid 4544,0 +) +*409 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "en1" +t "std_uLogic" +o 21 +suid 100,0 +) +) +uid 4592,0 +) +*410 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 101,0 +) +) +uid 5859,0 +) +*411 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 102,0 +) +) +uid 5861,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*412 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *413 (MRCItem +litem &363 +pos 36 +dimension 20 +) +uid 69,0 +optionalChildren [ +*414 (MRCItem +litem &364 +pos 0 +dimension 20 +uid 70,0 +) +*415 (MRCItem +litem &365 +pos 1 +dimension 23 +uid 71,0 +) +*416 (MRCItem +litem &366 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*417 (MRCItem +litem &376 +pos 6 +dimension 20 +uid 491,0 +) +*418 (MRCItem +litem &377 +pos 0 +dimension 20 +uid 677,0 +) +*419 (MRCItem +litem &378 +pos 1 +dimension 20 +uid 679,0 +) +*420 (MRCItem +litem &379 +pos 7 +dimension 20 +uid 759,0 +) +*421 (MRCItem +litem &380 +pos 8 +dimension 20 +uid 847,0 +) +*422 (MRCItem +litem &381 +pos 9 +dimension 20 +uid 861,0 +) +*423 (MRCItem +litem &382 +pos 10 +dimension 20 +uid 923,0 +) +*424 (MRCItem +litem &383 +pos 11 +dimension 20 +uid 1115,0 +) +*425 (MRCItem +litem &384 +pos 12 +dimension 20 +uid 1171,0 +) +*426 (MRCItem +litem &385 +pos 13 +dimension 20 +uid 1175,0 +) +*427 (MRCItem +litem &386 +pos 14 +dimension 20 +uid 1313,0 +) +*428 (MRCItem +litem &387 +pos 15 +dimension 20 +uid 1365,0 +) +*429 (MRCItem +litem &388 +pos 16 +dimension 20 +uid 1439,0 +) +*430 (MRCItem +litem &389 +pos 17 +dimension 20 +uid 1441,0 +) +*431 (MRCItem +litem &390 +pos 18 +dimension 20 +uid 1443,0 +) +*432 (MRCItem +litem &391 +pos 19 +dimension 20 +uid 1445,0 +) +*433 (MRCItem +litem &392 +pos 20 +dimension 20 +uid 1447,0 +) +*434 (MRCItem +litem &393 +pos 21 +dimension 20 +uid 1449,0 +) +*435 (MRCItem +litem &394 +pos 22 +dimension 20 +uid 1665,0 +) +*436 (MRCItem +litem &395 +pos 23 +dimension 20 +uid 1889,0 +) +*437 (MRCItem +litem &396 +pos 24 +dimension 20 +uid 2125,0 +) +*438 (MRCItem +litem &397 +pos 25 +dimension 20 +uid 2455,0 +) +*439 (MRCItem +litem &398 +pos 26 +dimension 20 +uid 2457,0 +) +*440 (MRCItem +litem &399 +pos 27 +dimension 20 +uid 2772,0 +) +*441 (MRCItem +litem &400 +pos 28 +dimension 20 +uid 2776,0 +) +*442 (MRCItem +litem &401 +pos 29 +dimension 20 +uid 2862,0 +) +*443 (MRCItem +litem &402 +pos 30 +dimension 20 +uid 2940,0 +) +*444 (MRCItem +litem &403 +pos 31 +dimension 20 +uid 2942,0 +) +*445 (MRCItem +litem &404 +pos 32 +dimension 20 +uid 3184,0 +) +*446 (MRCItem +litem &405 +pos 33 +dimension 20 +uid 4099,0 +) +*447 (MRCItem +litem &406 +pos 2 +dimension 20 +uid 4372,0 +) +*448 (MRCItem +litem &407 +pos 3 +dimension 20 +uid 4507,0 +) +*449 (MRCItem +litem &408 +pos 34 +dimension 20 +uid 4545,0 +) +*450 (MRCItem +litem &409 +pos 35 +dimension 20 +uid 4593,0 +) +*451 (MRCItem +litem &410 +pos 4 +dimension 20 +uid 5860,0 +) +*452 (MRCItem +litem &411 +pos 5 +dimension 20 +uid 5862,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*453 (MRCItem +litem &367 +pos 0 +dimension 20 +uid 74,0 +) +*454 (MRCItem +litem &369 +pos 1 +dimension 50 +uid 75,0 +) +*455 (MRCItem +litem &370 +pos 2 +dimension 100 +uid 76,0 +) +*456 (MRCItem +litem &371 +pos 3 +dimension 50 +uid 77,0 +) +*457 (MRCItem +litem &372 +pos 4 +dimension 100 +uid 78,0 +) +*458 (MRCItem +litem &373 +pos 5 +dimension 100 +uid 79,0 +) +*459 (MRCItem +litem &374 +pos 6 +dimension 50 +uid 80,0 +) +*460 (MRCItem +litem &375 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *461 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*462 (RefLabelRowHdr +) +*463 (TitleRowHdr +) +*464 (FilterRowHdr +) +*465 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*466 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*467 (GroupColHdr +tm "GroupColHdrMgr" +) +*468 (NameColHdr +tm "GenericNameColHdrMgr" +) +*469 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*470 (InitColHdr +tm "GenericValueColHdrMgr" +) +*471 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*472 (EolColHdr +tm "GenericEolColHdrMgr" +) +*473 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code.txt\"" +) +uid 5660,0 +) +*474 (LogGeneric +generic (GiElement +name "g_btnsNb" +type "positive" +value "2" +) +uid 5833,0 +) +*475 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 6190,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*476 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *477 (MRCItem +litem &461 +pos 3 +dimension 20 +) +uid 97,0 +optionalChildren [ +*478 (MRCItem +litem &462 +pos 0 +dimension 20 +uid 98,0 +) +*479 (MRCItem +litem &463 +pos 1 +dimension 23 +uid 99,0 +) +*480 (MRCItem +litem &464 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*481 (MRCItem +litem &473 +pos 0 +dimension 20 +uid 5661,0 +) +*482 (MRCItem +litem &474 +pos 1 +dimension 20 +uid 5834,0 +) +*483 (MRCItem +litem &475 +pos 2 +dimension 20 +uid 6191,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*484 (MRCItem +litem &465 +pos 0 +dimension 20 +uid 102,0 +) +*485 (MRCItem +litem &467 +pos 1 +dimension 50 +uid 103,0 +) +*486 (MRCItem +litem &468 +pos 2 +dimension 100 +uid 104,0 +) +*487 (MRCItem +litem &469 +pos 3 +dimension 100 +uid 105,0 +) +*488 (MRCItem +litem &470 +pos 4 +dimension 50 +uid 106,0 +) +*489 (MRCItem +litem &471 +pos 5 +dimension 50 +uid 107,0 +) +*490 (MRCItem +litem &472 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/symbol.sb b/Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/symbol.sb new file mode 100644 index 0000000..e172a28 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/heirv32_mc/symbol.sb @@ -0,0 +1,1718 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 3,0 +) +) +uid 468,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 470,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 3870,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 7,0 +) +) +uid 4130,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 8,0 +) +) +uid 4762,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +uid 4764,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 68,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 467,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 469,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 3869,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 4129,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 4761,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 4763,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code.txt\"" +) +uid 4689,0 +) +*52 (LogGeneric +generic (GiElement +name "g_btnsNb" +type "positive" +value "2" +) +uid 4737,0 +) +*53 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 4914,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *55 (MRCItem +litem &39 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*56 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 97,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 98,0 +) +*58 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*59 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 4688,0 +) +*60 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 4736,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 4913,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*62 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 101,0 +) +*63 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 102,0 +) +*64 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 103,0 +) +*65 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 104,0 +) +*66 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 105,0 +) +*67 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 106,0 +) +*68 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "heirv32_mc" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:26:13" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_MC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/MultiCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_mc" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\heirv32_mc\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:26:13" +) +(vvPair +variable "unit" +value "heirv32_mc" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 471,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 472,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,27625,19000,28375" +) +tg (CPTG +uid 473,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 474,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,27300,22500,28700" +st "rst" +blo "20000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 475,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61000,5600" +st "rst : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*71 (CptPort +uid 476,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 477,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,29625,19000,30375" +) +tg (CPTG +uid 478,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 479,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,29300,22400,30700" +st "clk" +blo "20000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 480,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61000,4000" +st "clk : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*72 (CptPort +uid 3871,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3872,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35000,25625,35750,26375" +) +tg (CPTG +uid 3873,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3874,0 +va (VaSet +font "Verdana,12,0" +) +xt "27400,25300,34000,26700" +st "dbg_leds" +ju 2 +blo "34000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 3875,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,71500,6400" +st "dbg_leds : OUT std_ulogic_vector (31 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*73 (CptPort +uid 4131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,25625,19000,26375" +) +tg (CPTG +uid 4133,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4134,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,25300,22400,26700" +st "en" +blo "20000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 4135,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61000,4800" +st "en : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*74 (CptPort +uid 4765,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4766,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,33000,24375,33750" +) +tg (CPTG +uid 4767,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4768,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "23300,28400,24700,32000" +st "btns" +blo "24500,32000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 4769,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,75500,3200" +st "btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 8,0 +) +) +) +*75 (CptPort +uid 4770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4771,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,33000,26375,33750" +) +tg (CPTG +uid 4772,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4773,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "25300,28600,26700,32000" +st "leds" +blo "26500,32000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 4774,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,76000,7200" +st "leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "19000,25000,35000,33000" +) +oxt "15000,6000,44000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,28800,35400,30000" +st "HEIRV32_MC" +blo "27800,29800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,30000,34700,31200" +st "heirv32_mc" +blo "27800,31000" +) +) +gi *76 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "19000,34800,46500,38800" +st "Generic Declarations + +g_programFile string \"$SIMULATION_DIR/code.txt\" +g_btnsNb positive 2 +g_dataWidth positive 32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "2" +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*77 (Grouping +uid 16,0 +optionalChildren [ +*78 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49000,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *88 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*90 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "359,164,1381,854" +viewArea "11800,22200,41178,40996" +cachedDiagramExtent "0,0,76000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *91 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *92 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,7200,45200,8400" +st "User:" +blo "42000,8200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,44000,8400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 5006,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/instr@decoder/symbol.sb b/Libs/RiscV/HEIRV32/MultiCycle/hds/instr@decoder/symbol.sb new file mode 100644 index 0000000..1a8ebfd --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/instr@decoder/symbol.sb @@ -0,0 +1,1395 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 67,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 13 +suid 1,0 +) +) +uid 61,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 4 +suid 2,0 +) +) +uid 63,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 80,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 82,0 +optionalChildren [ +*18 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 83,0 +) +*19 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 84,0 +) +*20 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 85,0 +) +*21 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 62,0 +) +*22 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 64,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 86,0 +optionalChildren [ +*23 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 87,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 88,0 +) +*25 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 89,0 +) +*26 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 90,0 +) +*27 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 91,0 +) +*28 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 92,0 +) +*29 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 93,0 +) +*30 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 94,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 66,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 96,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +uid 110,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 111,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 112,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 115,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 116,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 117,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 118,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 119,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 120,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 121,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 95,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instr@decoder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instr@decoder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instr@decoder" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instrDecoder" +) +(vvPair +variable "date" +value "04.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "instrDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:47:22" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "instrDecoder" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instr@decoder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instrDecoder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:47:22" +) +(vvPair +variable "unit" +value "instrDecoder" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 65,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,17625,30750,18375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "23800,17300,29000,18700" +st "immSrc" +ju 2 +blo "29000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,69000,4000" +st "immSrc : OUT std_ulogic_vector (1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 13 +suid 1,0 +) +) +) +*57 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,17625,20000,18375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,17300,23400,18700" +st "op" +blo "21000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,70000,3200" +st "op : IN std_ulogic_vector (6 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 4 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "20000,16000,30000,21000" +) +oxt "15000,6000,23000,13000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "20250,21300,25250,22500" +st "HEIRV32" +blo "20250,22300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "20250,22500,27750,23700" +st "instrDecoder" +blo "20250,23500" +) +) +gi *58 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "20000,25200,31500,26000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*59 (Grouping +uid 16,0 +optionalChildren [ +*60 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*64 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*65 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,47900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *70 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*72 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "-1920,-449,-904,241" +viewArea "-7677,4548,37712,33809" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "controlUnit" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *73 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *74 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4000,45200,5200" +st "User:" +blo "42000,5000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,44000,5200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 144,0 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/struct.bd b/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/struct.bd new file mode 100644 index 0000000..a36d476 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/struct.bd @@ -0,0 +1,3458 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +instances [ +(Instance +name "U_bram" +duLibraryName "Memory" +duName "bram" +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "g_addrWidth" +) +(GiElement +name "dataBitNb" +type "positive" +value "g_dataWidth" +) +(GiElement +name "initFile" +type "string" +value "g_programFile" +) +] +mwi 0 +uid 1279,0 +) +(Instance +name "U_bramAddrReducer" +duLibraryName "HEIRV32" +duName "bramAddrReducer" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "g_dataWidth" +) +(GiElement +name "g_addrWidth" +type "positive" +value "g_addrWidth" +) +] +mwi 0 +uid 1350,0 +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\instruction@data@memory\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\instruction@data@memory\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\instruction@data@memory" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\instructionDataMemory" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "instructionDataMemory" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "16:12:32" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_MC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/MultiCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "instructionDataMemory" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\instruction@data@memory\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\MultiCycle\\hds\\instructionDataMemory\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "16:12:32" +) +(vvPair +variable "unit" +value "instructionDataMemory" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,4000,74000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,4000,68500,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,0,78000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "74200,0,77200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,2000,74000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,2000,67200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,2000,57000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,2000,55300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,1000,94000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "74200,1200,83600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,0,94000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "78200,0,79800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,0,74000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "58350,400,68650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,3000,57000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,3000,55300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,4000,57000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,4000,55900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,3000,74000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,3000,73600,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "53000,0,94000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (Net +uid 167,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 1,0 +) +declText (MLText +uid 168,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3200,35500,4000" +st "clk : std_ulogic" +) +) +*13 (Net +uid 195,0 +lang 11 +decl (Decl +n "address" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 3,0 +) +declText (MLText +uid 196,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,2400,47000,3200" +st "address : unsigned(g_dataWidth-1 DOWNTO 0)" +) +) +*14 (Net +uid 209,0 +lang 11 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 4,0 +) +declText (MLText +uid 210,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,51500,7200" +st "readData : std_ulogic_vector(g_dataWidth-1 DOWNTO 0)" +) +) +*15 (PortIoIn +uid 246,0 +shape (CompositeShape +uid 247,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 248,0 +sl 0 +ro 270 +xt "41000,31625,42500,32375" +) +(Line +uid 249,0 +sl 0 +ro 270 +xt "42500,32000,43000,32000" +pts [ +"42500,32000" +"43000,32000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 250,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 251,0 +va (VaSet +) +xt "37800,31500,40000,32700" +st "clk" +ju 2 +blo "40000,32500" +tm "WireNameMgr" +) +) +) +*16 (PortIoIn +uid 270,0 +shape (CompositeShape +uid 271,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 272,0 +sl 0 +ro 270 +xt "19000,19625,20500,20375" +) +(Line +uid 273,0 +sl 0 +ro 270 +xt "20500,20000,21000,20000" +pts [ +"20500,20000" +"21000,20000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 274,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 275,0 +va (VaSet +) +xt "13300,19500,18000,20700" +st "address" +ju 2 +blo "18000,20500" +tm "WireNameMgr" +) +) +) +*17 (PortIoOut +uid 282,0 +shape (CompositeShape +uid 283,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 284,0 +sl 0 +ro 270 +xt "63500,19625,65000,20375" +) +(Line +uid 285,0 +sl 0 +ro 270 +xt "63000,20000,63500,20000" +pts [ +"63000,20000" +"63500,20000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 286,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 287,0 +va (VaSet +) +xt "66000,19500,71300,20700" +st "readData" +blo "66000,20500" +tm "WireNameMgr" +) +) +) +*18 (PortIoIn +uid 294,0 +shape (CompositeShape +uid 295,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 296,0 +sl 0 +ro 270 +xt "41000,25625,42500,26375" +) +(Line +uid 297,0 +sl 0 +ro 270 +xt "42500,26000,43000,26000" +pts [ +"42500,26000" +"43000,26000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 298,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 299,0 +va (VaSet +) +xt "32800,25500,40000,26700" +st "writeEnable" +ju 2 +blo "40000,26500" +tm "WireNameMgr" +) +) +) +*19 (Net +uid 306,0 +lang 11 +decl (Decl +n "writeEnable" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 307,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,35500,6400" +st "writeEnable : std_ulogic" +) +) +*20 (PortIoIn +uid 308,0 +shape (CompositeShape +uid 309,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 310,0 +sl 0 +ro 270 +xt "41000,23625,42500,24375" +) +(Line +uid 311,0 +sl 0 +ro 270 +xt "42500,24000,43000,24000" +pts [ +"42500,24000" +"43000,24000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 312,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 313,0 +va (VaSet +) +xt "34500,23500,40000,24700" +st "writeData" +ju 2 +blo "40000,24500" +tm "WireNameMgr" +) +) +) +*21 (Net +uid 320,0 +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 6,0 +) +declText (MLText +uid 321,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4800,51500,5600" +st "writeData : std_ulogic_vector(g_dataWidth-1 DOWNTO 0)" +) +) +*22 (Net +uid 1166,0 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_addrWidth-1 DOWNTO 0)" +o 7 +suid 15,0 +) +declText (MLText +uid 1167,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8400,55000,9200" +st "SIGNAL out1 : std_ulogic_vector(g_addrWidth-1 DOWNTO 0)" +) +) +*23 (SaComponent +uid 1279,0 +optionalChildren [ +*24 (CptPort +uid 1255,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1256,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,31625,45000,32375" +) +tg (CPTG +uid 1257,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1258,0 +va (VaSet +) +xt "46000,31500,49400,32700" +st "clock" +blo "46000,32500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*25 (CptPort +uid 1259,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1260,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,29625,45000,30375" +) +tg (CPTG +uid 1261,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1262,0 +va (VaSet +) +xt "46000,29500,47900,30700" +st "en" +blo "46000,30500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 3,0 +) +) +) +*26 (CptPort +uid 1263,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1264,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,25625,45000,26375" +) +tg (CPTG +uid 1265,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1266,0 +va (VaSet +) +xt "46000,25500,50400,26700" +st "writeEn" +blo "46000,26500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*27 (CptPort +uid 1267,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1268,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,19625,45000,20375" +) +tg (CPTG +uid 1269,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1270,0 +va (VaSet +) +xt "46000,19500,51800,20700" +st "addressIn" +blo "46000,20500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addressIn" +t "std_ulogic_vector" +b "(addressBitNb-1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +) +*28 (CptPort +uid 1271,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1272,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44250,23625,45000,24375" +) +tg (CPTG +uid 1273,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1274,0 +va (VaSet +) +xt "46000,23500,50000,24700" +st "dataIn" +blo "46000,24500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*29 (CptPort +uid 1275,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1276,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "61000,19625,61750,20375" +) +tg (CPTG +uid 1277,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1278,0 +va (VaSet +) +xt "55200,19500,60000,20700" +st "dataOut" +ju 2 +blo "60000,20500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dataOut" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +posAdd 0 +o 6 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 1280,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,16000,61000,34000" +) +oxt "39000,11000,55000,29000" +ttg (MlTextGroup +uid 1281,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*30 (Text +uid 1282,0 +va (VaSet +font "Verdana,8,1" +) +xt "45200,34000,49400,35000" +st "Memory" +blo "45200,34800" +tm "BdLibraryNameMgr" +) +*31 (Text +uid 1283,0 +va (VaSet +font "Verdana,8,1" +) +xt "45200,35000,48100,36000" +st "bram" +blo "45200,35800" +tm "CptNameMgr" +) +*32 (Text +uid 1284,0 +va (VaSet +font "Verdana,8,1" +) +xt "45200,36000,49400,37000" +st "U_bram" +blo "45200,36800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1285,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1286,0 +text (MLText +uid 1287,0 +va (VaSet +font "Verdana,8,0" +) +xt "45000,37000,65500,40000" +st "addressBitNb = g_addrWidth ( positive ) +dataBitNb = g_dataWidth ( positive ) +initFile = g_programFile ( string ) " +) +header "" +) +elements [ +(GiElement +name "addressBitNb" +type "positive" +value "g_addrWidth" +) +(GiElement +name "dataBitNb" +type "positive" +value "g_dataWidth" +) +(GiElement +name "initFile" +type "string" +value "g_programFile" +) +] +) +viewicon (ZoomableIcon +uid 1288,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "45250,32250,46750,33750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*33 (SaComponent +uid 1350,0 +optionalChildren [ +*34 (CptPort +uid 1342,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1343,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,19625,23000,20375" +) +tg (CPTG +uid 1344,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1345,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,19300,29000,20700" +st "addrIn" +blo "24000,20500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addrIn" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*35 (CptPort +uid 1346,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1347,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36000,19625,36750,20375" +) +tg (CPTG +uid 1348,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1349,0 +va (VaSet +font "Verdana,12,0" +) +xt "29000,19300,35000,20700" +st "addrOut" +ju 2 +blo "35000,20500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrOut" +t "std_ulogic_vector" +b "(g_addrWidth-1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 1351,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,19000,36000,23000" +) +oxt "15000,10000,28000,14000" +ttg (MlTextGroup +uid 1352,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*36 (Text +uid 1353,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "21450,22800,26450,24000" +st "HEIRV32" +blo "21450,23800" +tm "BdLibraryNameMgr" +) +*37 (Text +uid 1354,0 +va (VaSet +font "Verdana,9,1" +) +xt "21450,24000,31550,25200" +st "bramAddrReducer" +blo "21450,25000" +tm "CptNameMgr" +) +*38 (Text +uid 1355,0 +va (VaSet +font "Verdana,9,1" +) +xt "21450,25200,32850,26400" +st "U_bramAddrReducer" +blo "21450,26200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1356,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1357,0 +text (MLText +uid 1358,0 +va (VaSet +font "Courier New,8,0" +) +xt "13000,26400,36500,28000" +st "g_dataWidth = g_dataWidth ( positive ) +g_addrWidth = g_addrWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "g_dataWidth" +) +(GiElement +name "g_addrWidth" +type "positive" +value "g_addrWidth" +) +] +) +viewicon (ZoomableIcon +uid 1359,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "23250,21250,24750,22750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*39 (PortIoIn +uid 1454,0 +shape (CompositeShape +uid 1455,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1456,0 +sl 0 +ro 270 +xt "41000,29625,42500,30375" +) +(Line +uid 1457,0 +sl 0 +ro 270 +xt "42500,30000,43000,30000" +pts [ +"42500,30000" +"43000,30000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 1458,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1459,0 +va (VaSet +) +xt "38100,29500,40000,30700" +st "en" +ju 2 +blo "40000,30500" +tm "WireNameMgr" +) +) +) +*40 (Net +uid 1466,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 16,0 +) +declText (MLText +uid 1467,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4000,35500,4800" +st "en : std_ulogic" +) +) +*41 (Wire +uid 252,0 +shape (OrthoPolyLine +uid 253,0 +va (VaSet +vasetType 3 +) +xt "43000,32000,44250,32000" +pts [ +"43000,32000" +"44250,32000" +] +) +start &15 +end &24 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 256,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 257,0 +va (VaSet +isHidden 1 +) +xt "45000,30800,47200,32000" +st "clk" +blo "45000,31800" +tm "WireNameMgr" +) +) +on &12 +) +*42 (Wire +uid 276,0 +shape (OrthoPolyLine +uid 277,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "21000,20000,22250,20000" +pts [ +"21000,20000" +"22250,20000" +] +) +start &16 +end &34 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 280,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 281,0 +va (VaSet +isHidden 1 +) +xt "13000,18800,29400,20000" +st "address : (g_dataWidth-1:0)" +blo "13000,19800" +tm "WireNameMgr" +) +) +on &13 +) +*43 (Wire +uid 288,0 +shape (OrthoPolyLine +uid 289,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "61750,20000,63000,20000" +pts [ +"61750,20000" +"63000,20000" +] +) +start &29 +end &17 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 292,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 293,0 +va (VaSet +isHidden 1 +) +xt "55000,18800,72000,20000" +st "readData : (g_dataWidth-1:0)" +blo "55000,19800" +tm "WireNameMgr" +) +) +on &14 +) +*44 (Wire +uid 300,0 +shape (OrthoPolyLine +uid 301,0 +va (VaSet +vasetType 3 +) +xt "43000,26000,44250,26000" +pts [ +"43000,26000" +"44250,26000" +] +) +start &18 +end &26 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 304,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 305,0 +va (VaSet +isHidden 1 +) +xt "44000,24800,51200,26000" +st "writeEnable" +blo "44000,25800" +tm "WireNameMgr" +) +) +on &19 +) +*45 (Wire +uid 314,0 +shape (OrthoPolyLine +uid 315,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "43000,24000,44250,24000" +pts [ +"43000,24000" +"44250,24000" +] +) +start &20 +end &28 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 318,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 319,0 +va (VaSet +isHidden 1 +) +xt "36000,22800,53200,24000" +st "writeData : (g_dataWidth-1:0)" +blo "36000,23800" +tm "WireNameMgr" +) +) +on &21 +) +*46 (Wire +uid 1168,0 +shape (OrthoPolyLine +uid 1169,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "36750,20000,44250,20000" +pts [ +"36750,20000" +"44250,20000" +] +) +start &35 +end &27 +ss 0 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 1170,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1171,0 +va (VaSet +isHidden 1 +) +xt "40000,18800,43000,20000" +st "out1" +blo "40000,19800" +tm "WireNameMgr" +) +s (Text +uid 1197,0 +va (VaSet +isHidden 1 +) +xt "40000,20000,40000,20000" +blo "40000,20000" +tm "SignalTypeMgr" +) +) +on &22 +) +*47 (Wire +uid 1460,0 +shape (OrthoPolyLine +uid 1461,0 +va (VaSet +vasetType 3 +) +xt "43000,30000,44250,30000" +pts [ +"43000,30000" +"44250,30000" +] +) +start &39 +end &25 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1464,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1465,0 +va (VaSet +isHidden 1 +) +xt "45000,28800,46900,30000" +st "en" +blo "45000,29800" +tm "WireNameMgr" +) +) +on &40 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *48 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*49 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*50 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*51 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*52 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*53 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*54 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*55 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*56 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*57 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-1394,-1505,95895,51823" +cachedDiagramExtent "0,0,94000,40000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1611,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*59 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*60 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*62 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*63 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*65 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*66 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*68 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*69 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*71 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*72 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*73 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*74 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*76 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*78 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,25200,1200" +st "Pre User:" +blo "20000,1000" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,7200,29500,8400" +st "Diagram Signals:" +blo "20000,8200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 16,0 +usingSuid 1 +emptyRow *79 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*80 (RefLabelRowHdr +) +*81 (TitleRowHdr +) +*82 (FilterRowHdr +) +*83 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*84 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*85 (GroupColHdr +tm "GroupColHdrMgr" +) +*86 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*87 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*88 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*89 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*90 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*91 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*92 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 1,0 +) +) +uid 147,0 +scheme 0 +) +*93 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "address" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 3,0 +) +) +uid 151,0 +scheme 0 +) +*94 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 4,0 +) +) +uid 153,0 +scheme 0 +) +*95 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnable" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 242,0 +scheme 0 +) +*96 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 6,0 +) +) +uid 244,0 +scheme 0 +) +*97 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_addrWidth-1 DOWNTO 0)" +o 7 +suid 15,0 +) +) +uid 1172,0 +) +*98 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 16,0 +) +) +uid 1453,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*99 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *100 (MRCItem +litem &79 +pos 7 +dimension 20 +) +uid 69,0 +optionalChildren [ +*101 (MRCItem +litem &80 +pos 0 +dimension 20 +uid 70,0 +) +*102 (MRCItem +litem &81 +pos 1 +dimension 23 +uid 71,0 +) +*103 (MRCItem +litem &82 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*104 (MRCItem +litem &92 +pos 0 +dimension 20 +uid 148,0 +) +*105 (MRCItem +litem &93 +pos 1 +dimension 20 +uid 152,0 +) +*106 (MRCItem +litem &94 +pos 2 +dimension 20 +uid 154,0 +) +*107 (MRCItem +litem &95 +pos 3 +dimension 20 +uid 243,0 +) +*108 (MRCItem +litem &96 +pos 4 +dimension 20 +uid 245,0 +) +*109 (MRCItem +litem &97 +pos 6 +dimension 20 +uid 1173,0 +) +*110 (MRCItem +litem &98 +pos 5 +dimension 20 +uid 1452,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*111 (MRCItem +litem &83 +pos 0 +dimension 20 +uid 74,0 +) +*112 (MRCItem +litem &85 +pos 1 +dimension 50 +uid 75,0 +) +*113 (MRCItem +litem &86 +pos 2 +dimension 100 +uid 76,0 +) +*114 (MRCItem +litem &87 +pos 3 +dimension 50 +uid 77,0 +) +*115 (MRCItem +litem &88 +pos 4 +dimension 100 +uid 78,0 +) +*116 (MRCItem +litem &89 +pos 5 +dimension 100 +uid 79,0 +) +*117 (MRCItem +litem &90 +pos 6 +dimension 50 +uid 80,0 +) +*118 (MRCItem +litem &91 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *119 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*120 (RefLabelRowHdr +) +*121 (TitleRowHdr +) +*122 (FilterRowHdr +) +*123 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*124 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*125 (GroupColHdr +tm "GroupColHdrMgr" +) +*126 (NameColHdr +tm "GenericNameColHdrMgr" +) +*127 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*128 (InitColHdr +tm "GenericValueColHdrMgr" +) +*129 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*130 (EolColHdr +tm "GenericEolColHdrMgr" +) +*131 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 109,0 +) +*132 (LogGeneric +generic (GiElement +name "g_addrWidth" +type "positive" +value "10" +) +uid 1313,0 +) +*133 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"\"" +) +uid 1564,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*134 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *135 (MRCItem +litem &119 +pos 3 +dimension 20 +) +uid 97,0 +optionalChildren [ +*136 (MRCItem +litem &120 +pos 0 +dimension 20 +uid 98,0 +) +*137 (MRCItem +litem &121 +pos 1 +dimension 23 +uid 99,0 +) +*138 (MRCItem +litem &122 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*139 (MRCItem +litem &131 +pos 0 +dimension 20 +uid 110,0 +) +*140 (MRCItem +litem &132 +pos 1 +dimension 20 +uid 1312,0 +) +*141 (MRCItem +litem &133 +pos 2 +dimension 20 +uid 1565,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*142 (MRCItem +litem &123 +pos 0 +dimension 20 +uid 102,0 +) +*143 (MRCItem +litem &125 +pos 1 +dimension 50 +uid 103,0 +) +*144 (MRCItem +litem &126 +pos 2 +dimension 100 +uid 104,0 +) +*145 (MRCItem +litem &127 +pos 3 +dimension 100 +uid 105,0 +) +*146 (MRCItem +litem &128 +pos 4 +dimension 50 +uid 106,0 +) +*147 (MRCItem +litem &129 +pos 5 +dimension 50 +uid 107,0 +) +*148 (MRCItem +litem &130 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/symbol.sb b/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/symbol.sb new file mode 100644 index 0000000..63d17e8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@data@memory/symbol.sb @@ -0,0 +1,1756 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 38,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "address" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 27,0 +) +) +uid 535,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 28,0 +) +) +uid 537,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 29,0 +) +) +uid 539,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 31,0 +) +) +uid 543,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnable" +t "std_ulogic" +o 5 +suid 32,0 +) +) +uid 545,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 38,0 +) +) +uid 1328,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 68,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*25 (MRCItem +litem &14 +pos 1 +dimension 20 +uid 536,0 +) +*26 (MRCItem +litem &15 +pos 0 +dimension 20 +uid 538,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 540,0 +) +*28 (MRCItem +litem &17 +pos 4 +dimension 20 +uid 544,0 +) +*29 (MRCItem +litem &18 +pos 3 +dimension 20 +uid 546,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 1329,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 548,0 +) +*52 (LogGeneric +generic (GiElement +name "g_addrWidth" +type "positive" +value "10" +) +uid 1273,0 +) +*53 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"\"" +) +uid 1382,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*54 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *55 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 96,0 +optionalChildren [ +*56 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 97,0 +) +*57 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 98,0 +) +*58 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*59 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 547,0 +) +*60 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 1274,0 +) +*61 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 1381,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*62 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 101,0 +) +*63 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 102,0 +) +*64 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 103,0 +) +*65 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 104,0 +) +*66 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 105,0 +) +*67 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 106,0 +) +*68 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@data@memory\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@data@memory\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@data@memory" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instructionDataMemory" +) +(vvPair +variable "date" +value "18.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "18" +) +(vvPair +variable "entity_name" +value "instructionDataMemory" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "18.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "18:08:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "instructionDataMemory" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@data@memory\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instructionDataMemory\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "18:08:43" +) +(vvPair +variable "unit" +value "instructionDataMemory" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*69 (SymbolBody +uid 8,0 +optionalChildren [ +*70 (CptPort +uid 505,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 506,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,16625,19000,17375" +) +tg (CPTG +uid 507,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 508,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,16500,23600,17500" +st "address" +blo "20000,17300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 509,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,74000,3200" +st "address : IN unsigned (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "address" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 27,0 +) +) +) +*71 (CptPort +uid 510,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 511,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20625,14250,21375,15000" +) +tg (CPTG +uid 512,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 513,0 +va (VaSet +font "Verdana,8,0" +) +xt "20480,15000,22080,16000" +st "clk" +blo "20480,15800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 514,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,62500,4000" +st "clk : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 28,0 +) +) +) +*72 (CptPort +uid 515,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 516,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33000,17625,33750,18375" +) +tg (CPTG +uid 517,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 518,0 +va (VaSet +font "Verdana,8,0" +) +xt "27800,17500,32000,18500" +st "readData" +ju 2 +blo "32000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 519,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,77500,7200" +st "readData : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 29,0 +) +) +) +*73 (CptPort +uid 525,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 526,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,18625,19000,19375" +) +tg (CPTG +uid 527,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 528,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,18500,24400,19500" +st "writeData" +blo "20000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 529,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,78500,5600" +st "writeData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 31,0 +) +) +) +*74 (CptPort +uid 530,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 531,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,14250,26375,15000" +) +tg (CPTG +uid 532,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 533,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "25500,15000,26500,20700" +st "writeEnable" +ju 2 +blo "26300,15000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 534,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,62500,6400" +st "writeEnable : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnable" +t "std_ulogic" +o 5 +suid 32,0 +) +) +) +*75 (CptPort +uid 1330,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1331,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "27625,14250,28375,15000" +) +tg (CPTG +uid 1332,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1333,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "27500,16000,28500,17500" +st "en" +ju 2 +blo "28300,16000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1334,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,62500,4800" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 38,0 +) +) +) +*76 (CommentGraphic +uid 1408,0 +shape (PolyLine2D +pts [ +"20000,15000" +"21000,17000" +] +uid 1409,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "20000,15000,21000,17000" +) +) +*77 (CommentGraphic +uid 1410,0 +shape (PolyLine2D +pts [ +"22000,15000" +"21000,17000" +] +uid 1411,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "21000,15000,22000,17000" +) +) +] +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "19000,15000,33000,22000" +fos 1 +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "18750,22800,23750,24000" +st "HEIRV32" +blo "18750,23800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "18750,24000,32250,25200" +st "instructionDataMemory" +blo "18750,25000" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "19000,26600,34000,30600" +st "Generic Declarations + +g_dataWidth positive 32 +g_addrWidth positive 10 +g_programFile string \"\" " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_addrWidth" +type "positive" +value "10" +) +(GiElement +name "g_programFile" +type "string" +value "\"\"" +) +] +) +sed 1 +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,51500,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*92 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "0,24,1921,1080" +viewArea "5100,10200,67741,43500" +cachedDiagramExtent "0,0,78500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-15000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,7200,45200,8400" +st "User:" +blo "42000,8200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,44000,8400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1411,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@forwarder/symbol.sb b/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@forwarder/symbol.sb new file mode 100644 index 0000000..45d740c --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/instruction@forwarder/symbol.sb @@ -0,0 +1,1488 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 8,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 74,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 1,0 +) +) +uid 66,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "irWrite" +t "std_ulogic" +o 1 +suid 2,0 +) +) +uid 68,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 3,0 +) +) +uid 70,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 87,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 89,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 90,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 91,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 92,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 67,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 69,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 93,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 94,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 95,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 96,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 97,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 98,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 99,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 100,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 101,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 88,0 +vaOverrides [ +] +) +] +) +uid 73,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 152,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*46 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *47 (MRCItem +litem &33 +pos 1 +dimension 20 +) +uid 117,0 +optionalChildren [ +*48 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 118,0 +) +*49 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 119,0 +) +*50 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*51 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 153,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*52 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 122,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 123,0 +) +*54 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 124,0 +) +*55 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 125,0 +) +*56 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 126,0 +) +*57 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 127,0 +) +*58 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 128,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@forwarder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@forwarder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@forwarder" +) +(vvPair +variable "d_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instructionForwarder" +) +(vvPair +variable "date" +value "18.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "18" +) +(vvPair +variable "entity_name" +value "instructionForwarder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "18.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE2332101" +) +(vvPair +variable "graphical_source_time" +value "16:10:50" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2332101" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "instructionForwarder" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instruction@forwarder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\instructionForwarder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "16:10:50" +) +(vvPair +variable "unit" +value "instructionForwarder" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 72,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37000,19625,37750,20375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "30900,19500,36000,20500" +st "instruction" +ju 2 +blo "36000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,77500,4800" +st "instruction : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 1,0 +) +) +) +*61 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,14250,33375,15000" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "32500,16000,33500,19100" +st "irWrite" +ju 2 +blo "33300,16000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,62500,3200" +st "irWrite : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "irWrite" +t "std_ulogic" +o 1 +suid 2,0 +) +) +) +*62 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26250,15625,27000,16375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,8,0" +) +xt "28000,15500,32200,16500" +st "readData" +blo "28000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,78500,4000" +st "readData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "27000,15000,37000,21000" +) +oxt "15000,6000,23000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26850,21800,31850,23000" +st "HEIRV32" +blo "26850,22800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26850,23000,39150,24200" +st "instructionForwarder" +blo "26850,24000" +) +) +gi *63 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "27000,26600,41000,29000" +st "Generic Declarations + +g_dataWidth positive 32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*64 (Grouping +uid 16,0 +optionalChildren [ +*65 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *75 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*77 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "569,52,1592,742" +viewArea "-3000,-700,54240,35876" +cachedDiagramExtent "0,0,78500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "instructionDataMemory" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *78 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *79 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4800,45200,6000" +st "User:" +blo "42000,5800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,44000,6000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 349,0 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/fsm.sm b/Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/fsm.sm new file mode 100644 index 0000000..e80a982 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/fsm.sm @@ -0,0 +1,6751 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +machine (Machine +name "csm" +children [ +(Machine +name "csm" +children [ +] +stateSignalName "current_state" +) +] +) +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (StateMachine +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m\\fsm.sm.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m\\fsm.sm.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "fsm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mainFSM" +) +(vvPair +variable "date" +value "24.10.2022" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "24" +) +(vvPair +variable "entity_name" +value "mainFSM" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "fsm.sm" +) +(vvPair +variable "f_logical" +value "fsm.sm" +) +(vvPair +variable "f_noext" +value "fsm" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "24.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:37:29" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "mainFSM" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m\\fsm.sm" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mainFSM\\fsm.sm" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sm" +) +(vvPair +variable "this_file" +value "fsm" +) +(vvPair +variable "this_file_logical" +value "fsm" +) +(vvPair +variable "time" +value "15:37:29" +) +(vvPair +variable "unit" +value "mainFSM" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "fsm" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +uid 182,0 +optionalChildren [ +*1 (ConcurrentSM +uid 1,0 +topDiagram (StateDiagram +LanguageMgr "None" +uid 2,0 +optionalChildren [ +*2 (State +uid 43,0 +shape (Circle +uid 772,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "39997,13150,51403,24556" +radius 5703 +) +name (Text +uid 45,0 +va (VaSet +font "Verdana,12,1" +) +xt "42200,18153,49200,19553" +st "s0_Fetch" +ju 0 +blo "45700,19353" +tm "ONodeName" +) +wait (TextAssociate +uid 46,0 +ps "CenterOffsetStrategy" +text (Text +uid 47,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "45450,19053,50550,20453" +st "wait 2" +blo "45450,20253" +tm "SmWaitText" +) +) +encoding (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "45700,19953,45700,19953" +blo "45700,19953" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 51,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 52,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "52237,14959,63637,23559" +) +autoResize 1 +tline (Line +uid 53,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52337,14859,63537,14859" +pts [ +"52337,14859" +"63537,14859" +] +) +bline (Line +uid 54,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52337,19659,63537,19659" +pts [ +"52337,19659" +"63537,19659" +] +) +ttri (Triangle +uid 55,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "51887,14484,52237,14834" +) +btri (Triangle +uid 56,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "51887,15684,52237,16034" +) +entryActions (MLText +uid 57,0 +va (VaSet +) +xt "52337,14659,52337,14659" +tm "Actions" +) +inActions (MLText +uid 58,0 +va (VaSet +) +xt "52337,15059,63537,23459" +st "adrSrc <= '0' ; +IRWrite <= '1' ; +ALUSrcA <= \"00\" ; +ALUSrcB <= \"10\" ; +ALUOp <= \"00\" ; +resultSrc <= \"10\" ; +PCupdate <= '1' ;" +tm "Actions" +) +exitActions (MLText +uid 59,0 +va (VaSet +) +xt "53937,15859,53937,15859" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 49,0 +ps "CenterOffsetStrategy" +text (MLText +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "43600,20053,50300,21253" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*3 (SmClockPoint +uid 60,0 +shape (CompositeShape +uid 61,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +uid 62,0 +sl 0 +ro 270 +xt "-5238,16314,-2988,17314" +) +(OrthoPolyLine +uid 63,0 +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "-4338,16514,-3739,17114" +pts [ +"-4338,17114" +"-4039,17114" +"-4039,16514" +"-3739,16514" +] +) +(Arc2D +pts [ +"-4729,16967" +"-4984,16661" +"-4729,16661" +] +uid 64,0 +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-5054,16615,-4729,17012" +) +] +) +name (TextAssociate +uid 65,0 +ps "CenterOffsetStrategy" +text (Text +uid 66,0 +va (VaSet +) +xt "-7938,16314,-5738,17514" +st "clk" +ju 2 +blo "-5738,17314" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +uid 67,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 68,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "-1574,16114,13326,17514" +) +autoResize 1 +cond (MLText +uid 69,0 +va (VaSet +) +xt "-1474,16214,13226,17414" +st "clk'EVENT AND clk = '1'" +tm "SmControlConditionMgr" +) +) +) +*4 (SmResetPoint +uid 70,0 +shape (CompositeShape +uid 71,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +uid 72,0 +sl 0 +ro 270 +xt "-5238,25314,-2988,26314" +) +(OrthoPolyLine +uid 73,0 +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "-4338,25514,-3739,26114" +pts [ +"-3739,25514" +"-4039,25514" +"-4039,26114" +"-4338,26114" +] +) +(Line +uid 74,0 +sl 0 +ro 270 +xt "-4989,25639,-4889,25689" +pts [ +"-4989,25689" +"-4889,25639" +] +) +(Line +uid 75,0 +sl 0 +ro 270 +xt "-4989,25639,-4989,25989" +pts [ +"-4989,25989" +"-4989,25639" +] +) +(Circle +uid 76,0 +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,0" +) +xt "-4189,25664,-3889,25964" +radius 150 +) +] +) +cond (SmControlCondition +uid 82,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 83,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "-5238,23514,-338,24914" +) +autoResize 1 +cond (MLText +uid 84,0 +va (VaSet +isHidden 1 +) +xt "-5138,23614,-438,24814" +st "rst = '1'" +tm "SmControlConditionMgr" +) +) +prio (TransitionPriority +uid 79,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 80,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-2988,24751,-862,26877" +radius 1063 +) +pr (Text +uid 81,0 +va (VaSet +isHidden 1 +) +xt "-2625,25214,-1225,26414" +st "1" +ju 0 +blo "-1925,26214" +tm "TransitionPriority" +) +padding "100,100" +) +name (TextAssociate +uid 77,0 +ps "CenterOffsetStrategy" +text (Text +uid 78,0 +va (VaSet +) +xt "-7338,25214,-5238,26414" +st "rst" +ju 2 +blo "-5238,26214" +tm "SmControlSignalNameMgr" +) +) +actions (TextAssociate +uid 85,0 +ps "CenterOffsetStrategy" +text (MLText +uid 86,0 +va (VaSet +isHidden 1 +) +xt "2637,29939,11237,31139" +st "< Automatic >" +tm "Actions" +) +) +level 1 +) +*5 (Link +uid 87,0 +shape (CompositeShape +uid 88,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 89,0 +sl 0 +ro 270 +xt "8512,25314,10762,26314" +) +(Line +uid 90,0 +sl 0 +ro 270 +xt "8012,25814,8512,25814" +pts [ +"8012,25814" +"8512,25814" +] +) +] +) +name (TextAssociate +uid 91,0 +ps "CenterOffsetStrategy" +text (Text +uid 92,0 +va (VaSet +font "Verdana,9,1" +) +xt "11262,25314,16362,26514" +st "s0_Fetch" +blo "11262,26314" +tm "LinkName" +) +) +) +*6 (SmRecoveryStatePoint +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Circle +uid 95,0 +sl 0 +xt "-5238,19914,-3438,21714" +radius 900 +) +(Line +uid 96,0 +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-4764,20388,-3912,21240" +pts [ +"-4764,21240" +"-3912,20388" +] +) +(Line +uid 97,0 +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-4764,20388,-3912,21240" +pts [ +"-3912,21240" +"-4764,20388" +] +) +] +) +) +*7 (Link +uid 98,0 +shape (CompositeShape +uid 99,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 100,0 +sl 0 +ro 270 +xt "8512,20314,10762,21314" +) +(Line +uid 101,0 +sl 0 +ro 270 +xt "8012,20814,8512,20814" +pts [ +"8012,20814" +"8512,20814" +] +) +] +) +name (TextAssociate +uid 102,0 +ps "CenterOffsetStrategy" +text (Text +uid 103,0 +va (VaSet +font "Verdana,9,1" +) +xt "11262,20314,16362,21514" +st "s0_Fetch" +blo "11262,21314" +tm "LinkName" +) +) +) +*8 (Grouping +uid 124,0 +optionalChildren [ +*9 (CommentText +uid 126,0 +shape (Rectangle +uid 127,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "94050,1990,111050,2990" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 128,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "94250,1990,105550,2990" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 129,0 +shape (Rectangle +uid 130,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "111050,-2010,115050,-1010" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 131,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "111250,-2010,114250,-1010" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 132,0 +shape (Rectangle +uid 133,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "94050,-10,111050,990" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 134,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "94250,-10,104250,990" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*12 (CommentText +uid 135,0 +shape (Rectangle +uid 136,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90050,-10,94050,990" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 137,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "90250,-10,92350,990" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*13 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "111050,-1010,131050,2990" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "111250,-810,120650,190" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*14 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "115050,-2010,131050,-1010" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "115250,-2010,116850,-1010" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90050,-2010,111050,-10" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 146,0 +va (VaSet +fg "32768,0,0" +) +xt "95400,-1610,105700,-410" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90050,990,94050,1990" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "90250,990,92350,1990" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*17 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "90050,1990,94050,2990" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "90250,1990,92950,2990" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*18 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "94050,990,111050,1990" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "94250,990,103350,1990" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 125,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "90050,-2010,131050,2990" +) +oxt "14000,66000,55000,71000" +) +*19 (State +uid 285,0 +shape (Circle +uid 286,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "40111,29283,51517,40689" +radius 5703 +) +name (Text +uid 287,0 +va (VaSet +font "Verdana,12,1" +) +xt "41664,34286,49964,35686" +st "s1_Decode" +ju 0 +blo "45814,35486" +tm "ONodeName" +) +wait (TextAssociate +uid 288,0 +ps "CenterOffsetStrategy" +text (Text +uid 289,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "45564,35186,50664,36586" +st "wait 2" +blo "45564,36386" +tm "SmWaitText" +) +) +encoding (Text +uid 290,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "45814,36086,45814,36086" +blo "45814,36086" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 293,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 294,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "51978,30612,63378,34412" +) +autoResize 1 +tline (Line +uid 295,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52078,30512,63278,30512" +pts [ +"52078,30512" +"63278,30512" +] +) +bline (Line +uid 296,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52078,31712,63278,31712" +pts [ +"52078,31712" +"63278,31712" +] +) +ttri (Triangle +uid 297,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "51628,30137,51978,30487" +) +btri (Triangle +uid 298,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "51628,28937,51978,29287" +) +entryActions (MLText +uid 299,0 +va (VaSet +) +xt "52078,30312,52078,30312" +tm "Actions" +) +inActions (MLText +uid 300,0 +va (VaSet +) +xt "52078,30712,63278,34312" +st "ALUSrcA <= \"01\" ; +ALUSrcB <= \"01\" ; +ALUOp <= \"00\" ;" +tm "Actions" +) +exitActions (MLText +uid 301,0 +va (VaSet +) +xt "53678,29112,53678,29112" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 291,0 +ps "CenterOffsetStrategy" +text (MLText +uid 292,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "43714,36186,50414,37386" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*20 (State +uid 356,0 +shape (Circle +uid 357,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "-8849,48214,2557,59620" +radius 5703 +) +name (Text +uid 358,0 +va (VaSet +font "Verdana,12,1" +) +xt "-7546,53217,1254,54617" +st "s2_MemAdr" +ju 0 +blo "-3146,54417" +tm "ONodeName" +) +wait (TextAssociate +uid 359,0 +ps "CenterOffsetStrategy" +text (Text +uid 360,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "-3396,54117,1704,55517" +st "wait 2" +blo "-3396,55317" +tm "SmWaitText" +) +) +encoding (Text +uid 361,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-3146,55017,-3146,55017" +blo "-3146,55017" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 364,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 365,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "3391,52423,14791,56223" +) +autoResize 1 +tline (Line +uid 366,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3491,52323,14691,52323" +pts [ +"3491,52323" +"14691,52323" +] +) +bline (Line +uid 367,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3491,53523,14691,53523" +pts [ +"3491,53523" +"14691,53523" +] +) +ttri (Triangle +uid 368,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3041,51948,3391,52298" +) +btri (Triangle +uid 369,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3041,50748,3391,51098" +) +entryActions (MLText +uid 370,0 +va (VaSet +) +xt "3491,52123,3491,52123" +tm "Actions" +) +inActions (MLText +uid 371,0 +va (VaSet +) +xt "3491,52523,14691,56123" +st "ALUSrcA <= \"10\" ; +ALUSrcB <= \"01\" ; +ALUOp <= \"00\" ;" +tm "Actions" +) +exitActions (MLText +uid 372,0 +va (VaSet +) +xt "5091,50923,5091,50923" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 362,0 +ps "CenterOffsetStrategy" +text (MLText +uid 363,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-5246,55117,1454,56317" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*21 (State +uid 373,0 +shape (Circle +uid 374,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "15174,48213,26822,59861" +radius 5824 +) +name (Text +uid 375,0 +va (VaSet +font "Verdana,12,1" +) +xt "15798,53337,26198,54737" +st "s6_ExecuteR" +ju 0 +blo "20998,54537" +tm "ONodeName" +) +wait (TextAssociate +uid 376,0 +ps "CenterOffsetStrategy" +text (Text +uid 377,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "20748,54237,25848,55637" +st "wait 2" +blo "20748,55437" +tm "SmWaitText" +) +) +encoding (Text +uid 378,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20998,55137,20998,55137" +blo "20998,55137" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 381,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 382,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "27535,52543,38935,56343" +) +autoResize 1 +tline (Line +uid 383,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27635,52443,38835,52443" +pts [ +"27635,52443" +"38835,52443" +] +) +bline (Line +uid 384,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27635,53643,38835,53643" +pts [ +"27635,53643" +"38835,53643" +] +) +ttri (Triangle +uid 385,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27185,52068,27535,52418" +) +btri (Triangle +uid 386,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27185,50868,27535,51218" +) +entryActions (MLText +uid 387,0 +va (VaSet +) +xt "27635,52243,27635,52243" +tm "Actions" +) +inActions (MLText +uid 388,0 +va (VaSet +) +xt "27635,52643,38835,56243" +st "ALUSrcA <= \"10\" ; +ALUSrcB <= \"00\" ; +ALUOp <= \"10\" ;" +tm "Actions" +) +exitActions (MLText +uid 389,0 +va (VaSet +) +xt "29235,51043,29235,51043" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 379,0 +ps "CenterOffsetStrategy" +text (MLText +uid 380,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "18898,55237,25598,56437" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*22 (State +uid 390,0 +shape (Circle +uid 391,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "40255,48478,51661,59884" +radius 5703 +) +name (Text +uid 392,0 +va (VaSet +font "Verdana,12,1" +) +xt "40908,53481,51008,54881" +st "s8_ExecuteI" +ju 0 +blo "45958,54681" +tm "ONodeName" +) +wait (TextAssociate +uid 393,0 +ps "CenterOffsetStrategy" +text (Text +uid 394,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "45708,54381,50808,55781" +st "wait 2" +blo "45708,55581" +tm "SmWaitText" +) +) +encoding (Text +uid 395,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "45958,55281,45958,55281" +blo "45958,55281" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 398,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 399,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "52495,52687,63895,56487" +) +autoResize 1 +tline (Line +uid 400,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52595,52587,63795,52587" +pts [ +"52595,52587" +"63795,52587" +] +) +bline (Line +uid 401,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52595,53787,63795,53787" +pts [ +"52595,53787" +"63795,53787" +] +) +ttri (Triangle +uid 402,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52145,52212,52495,52562" +) +btri (Triangle +uid 403,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "52145,51012,52495,51362" +) +entryActions (MLText +uid 404,0 +va (VaSet +) +xt "52595,52387,52595,52387" +tm "Actions" +) +inActions (MLText +uid 405,0 +va (VaSet +) +xt "52595,52787,63795,56387" +st "ALUSrcA <= \"10\" ; +ALUSrcB <= \"01\" ; +ALUOp <= \"10\" ;" +tm "Actions" +) +exitActions (MLText +uid 406,0 +va (VaSet +) +xt "54195,51187,54195,51187" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 396,0 +ps "CenterOffsetStrategy" +text (MLText +uid 397,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "43858,55381,50558,56581" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*23 (State +uid 407,0 +shape (Circle +uid 408,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "65119,48694,76525,60100" +radius 5703 +) +name (Text +uid 409,0 +va (VaSet +font "Verdana,12,1" +) +xt "67922,53697,73722,55097" +st "s9_JAL" +ju 0 +blo "70822,54897" +tm "ONodeName" +) +wait (TextAssociate +uid 410,0 +ps "CenterOffsetStrategy" +text (Text +uid 411,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "70572,54597,75672,55997" +st "wait 2" +blo "70572,55797" +tm "SmWaitText" +) +) +encoding (Text +uid 412,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "70822,55497,70822,55497" +blo "70822,55497" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 415,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 416,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "77359,51703,88759,57903" +) +autoResize 1 +tline (Line +uid 417,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "77459,51603,88659,51603" +pts [ +"77459,51603" +"88659,51603" +] +) +bline (Line +uid 418,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "77459,54603,88659,54603" +pts [ +"77459,54603" +"88659,54603" +] +) +ttri (Triangle +uid 419,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "77009,51228,77359,51578" +) +btri (Triangle +uid 420,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "77009,51228,77359,51578" +) +entryActions (MLText +uid 421,0 +va (VaSet +) +xt "77459,51403,77459,51403" +tm "Actions" +) +inActions (MLText +uid 422,0 +va (VaSet +) +xt "77459,51803,88659,57803" +st "ALUSrcA <= \"01\" ; +ALUSrcB <= \"10\" ; +ALUOp <= \"00\" ; +resultSrc <= \"00\" ; +PCupdate <= '1' ;" +tm "Actions" +) +exitActions (MLText +uid 423,0 +va (VaSet +) +xt "79059,51403,79059,51403" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 413,0 +ps "CenterOffsetStrategy" +text (MLText +uid 414,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "68722,55597,75422,56797" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*24 (State +uid 424,0 +shape (Circle +uid 425,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "89284,48762,100690,60168" +radius 5703 +) +name (Text +uid 426,0 +va (VaSet +font "Verdana,12,1" +) +xt "91437,53765,98537,55165" +st "s10_BEQ" +ju 0 +blo "94987,54965" +tm "ONodeName" +) +wait (TextAssociate +uid 427,0 +ps "CenterOffsetStrategy" +text (Text +uid 428,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "94737,54665,99837,56065" +st "wait 2" +blo "94737,55865" +tm "SmWaitText" +) +) +encoding (Text +uid 429,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "94987,55565,94987,55565" +blo "94987,55565" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 432,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 433,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "101524,51771,112924,57971" +) +autoResize 1 +tline (Line +uid 434,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "101624,51671,112824,51671" +pts [ +"101624,51671" +"112824,51671" +] +) +bline (Line +uid 435,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "101624,54671,112824,54671" +pts [ +"101624,54671" +"112824,54671" +] +) +ttri (Triangle +uid 436,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "101174,51296,101524,51646" +) +btri (Triangle +uid 437,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "101174,51296,101524,51646" +) +entryActions (MLText +uid 438,0 +va (VaSet +) +xt "101624,51471,101624,51471" +tm "Actions" +) +inActions (MLText +uid 439,0 +va (VaSet +) +xt "101624,51871,112824,57871" +st "ALUSrcA <= \"10\" ; +ALUSrcB <= \"00\" ; +ALUOp <= \"01\" ; +resultSrc <= \"00\" ; +branch <= '1' ;" +tm "Actions" +) +exitActions (MLText +uid 440,0 +va (VaSet +) +xt "103224,51471,103224,51471" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 430,0 +ps "CenterOffsetStrategy" +text (MLText +uid 431,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "92887,55665,99587,56865" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*25 (CommentText +uid 451,0 +shape (Rectangle +uid 452,0 +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "5155,35565,8155,37565" +) +oxt "0,0,15000,5000" +text (MLText +uid 453,0 +va (VaSet +fg "0,0,32768" +) +xt "5355,35765,7055,36965" +st " +lw +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 2600 +) +) +*26 (CommentText +uid 454,0 +shape (Rectangle +uid 455,0 +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "14829,35185,17829,37185" +) +oxt "0,0,15000,5000" +text (MLText +uid 456,0 +va (VaSet +fg "0,0,32768" +) +xt "15029,35385,17029,36585" +st " +sw +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 2600 +) +) +*27 (CommentText +uid 467,0 +shape (Rectangle +uid 468,0 +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "29246,44582,34246,46582" +) +oxt "0,0,15000,5000" +text (MLText +uid 469,0 +va (VaSet +fg "0,0,32768" +) +xt "29446,44782,33546,45982" +st " +R-type +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +) +*28 (CommentText +uid 480,0 +shape (Rectangle +uid 481,0 +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "47750,46310,55750,48310" +) +oxt "0,0,15000,5000" +text (MLText +uid 482,0 +va (VaSet +fg "0,0,32768" +) +xt "47950,46510,55050,47710" +st " +I-type ALU +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 7600 +) +) +*29 (CommentText +uid 493,0 +shape (Rectangle +uid 494,0 +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "67766,43718,70766,45718" +) +oxt "0,0,15000,5000" +text (MLText +uid 495,0 +va (VaSet +fg "0,0,32768" +) +xt "67966,43918,69866,45118" +st " +jal +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 2600 +) +) +*30 (CommentText +uid 506,0 +shape (Rectangle +uid 507,0 +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "87998,39830,90998,41830" +) +oxt "0,0,15000,5000" +text (MLText +uid 508,0 +va (VaSet +fg "0,0,32768" +) +xt "88198,40030,90698,41230" +st " +beq +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 2600 +) +) +*31 (State +uid 536,0 +shape (Circle +uid 537,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "-9546,67294,2396,79236" +radius 5971 +) +name (Text +uid 538,0 +va (VaSet +font "Verdana,12,1" +) +xt "-8925,72565,1775,73965" +st "s3_MemRead" +ju 0 +blo "-3575,73765" +tm "ONodeName" +) +wait (TextAssociate +uid 539,0 +ps "CenterOffsetStrategy" +text (Text +uid 540,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "-3825,73465,1275,74865" +st "wait 2" +blo "-3825,74665" +tm "SmWaitText" +) +) +encoding (Text +uid 541,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-3575,74365,-3575,74365" +blo "-3575,74365" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 544,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 545,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "3012,72371,14312,74971" +) +autoResize 1 +tline (Line +uid 546,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3112,72271,14212,72271" +pts [ +"3112,72271" +"14212,72271" +] +) +bline (Line +uid 547,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3112,72571,14212,72571" +pts [ +"3112,72571" +"14212,72571" +] +) +ttri (Triangle +uid 548,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "2662,71896,3012,72246" +) +btri (Triangle +uid 549,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "2662,70096,3012,70446" +) +entryActions (MLText +uid 550,0 +va (VaSet +) +xt "3112,72071,3112,72071" +tm "Actions" +) +inActions (MLText +uid 551,0 +va (VaSet +) +xt "3112,72471,14212,74871" +st "adrSrc <= '1' ; +resultSrc <= \"00\" ;" +tm "Actions" +) +exitActions (MLText +uid 552,0 +va (VaSet +) +xt "4662,70271,4662,70271" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 542,0 +ps "CenterOffsetStrategy" +text (MLText +uid 543,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-5675,74465,1025,75665" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*32 (State +uid 553,0 +shape (Circle +uid 554,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "-9152,84238,2254,95644" +radius 5703 +) +name (Text +uid 555,0 +va (VaSet +font "Verdana,12,1" +) +xt "-7849,89241,951,90641" +st "s4_MemWB" +ju 0 +blo "-3449,90441" +tm "ONodeName" +) +wait (TextAssociate +uid 556,0 +ps "CenterOffsetStrategy" +text (Text +uid 557,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "-3699,90141,1401,91541" +st "wait 2" +blo "-3699,91341" +tm "SmWaitText" +) +) +encoding (Text +uid 558,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-3449,91041,-3449,91041" +blo "-3449,91041" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 561,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 562,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "3138,89047,14438,91647" +) +autoResize 1 +tline (Line +uid 563,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3238,88947,14338,88947" +pts [ +"3238,88947" +"14338,88947" +] +) +bline (Line +uid 564,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3238,89247,14338,89247" +pts [ +"3238,89247" +"14338,89247" +] +) +ttri (Triangle +uid 565,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "2788,88572,3138,88922" +) +btri (Triangle +uid 566,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "2788,86772,3138,87122" +) +entryActions (MLText +uid 567,0 +va (VaSet +) +xt "3238,88747,3238,88747" +tm "Actions" +) +inActions (MLText +uid 568,0 +va (VaSet +) +xt "3238,89147,14338,91547" +st "resultSrc <= \"01\" ; +regwrite <= '1' ;" +tm "Actions" +) +exitActions (MLText +uid 569,0 +va (VaSet +) +xt "4788,86947,4788,86947" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 559,0 +ps "CenterOffsetStrategy" +text (MLText +uid 560,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-5549,91141,1151,92341" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*33 (State +uid 570,0 +shape (Circle +uid 571,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "14970,83798,27304,96132" +radius 6167 +) +name (Text +uid 572,0 +va (VaSet +font "Verdana,12,1" +) +xt "15587,89265,26687,90665" +st "s5_MemWrite" +ju 0 +blo "21137,90465" +tm "ONodeName" +) +wait (TextAssociate +uid 573,0 +ps "CenterOffsetStrategy" +text (Text +uid 574,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "20887,90165,25987,91565" +st "wait 2" +blo "20887,91365" +tm "SmWaitText" +) +) +encoding (Text +uid 575,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "21137,91065,21137,91065" +blo "21137,91065" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 578,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 579,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "27724,88471,39024,92271" +) +autoResize 1 +tline (Line +uid 580,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27824,88371,38924,88371" +pts [ +"27824,88371" +"38924,88371" +] +) +bline (Line +uid 581,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27824,89571,38924,89571" +pts [ +"27824,89571" +"38924,89571" +] +) +ttri (Triangle +uid 582,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27374,87996,27724,88346" +) +btri (Triangle +uid 583,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "27374,86796,27724,87146" +) +entryActions (MLText +uid 584,0 +va (VaSet +) +xt "27824,88171,27824,88171" +tm "Actions" +) +inActions (MLText +uid 585,0 +va (VaSet +) +xt "27824,88571,38924,92171" +st "adrSrc <= '1' ; +resultSrc <= \"00\" ; +memWrite <= '1' ;" +tm "Actions" +) +exitActions (MLText +uid 586,0 +va (VaSet +) +xt "29374,86971,29374,86971" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 576,0 +ps "CenterOffsetStrategy" +text (MLText +uid 577,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "19037,91165,25737,92365" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*34 (State +uid 587,0 +shape (Circle +uid 588,0 +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "41172,84375,52578,95781" +radius 5703 +) +name (Text +uid 589,0 +va (VaSet +font "Verdana,12,1" +) +xt "42675,89378,51075,90778" +st "s7_ALUWB" +ju 0 +blo "46875,90578" +tm "ONodeName" +) +wait (TextAssociate +uid 590,0 +ps "CenterOffsetStrategy" +text (Text +uid 591,0 +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "46625,90278,51725,91678" +st "wait 2" +blo "46625,91478" +tm "SmWaitText" +) +) +encoding (Text +uid 592,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "46875,91178,46875,91178" +blo "46875,91178" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +uid 595,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 596,0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +fillStyle 1 +) +xt "53462,89184,64762,91784" +) +autoResize 1 +tline (Line +uid 597,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "53562,89084,64662,89084" +pts [ +"53562,89084" +"64662,89084" +] +) +bline (Line +uid 598,0 +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "53562,89384,64662,89384" +pts [ +"53562,89384" +"64662,89384" +] +) +ttri (Triangle +uid 599,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "53112,88709,53462,89059" +) +btri (Triangle +uid 600,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "53112,86909,53462,87259" +) +entryActions (MLText +uid 601,0 +va (VaSet +) +xt "53562,88884,53562,88884" +tm "Actions" +) +inActions (MLText +uid 602,0 +va (VaSet +) +xt "53562,89284,64662,91684" +st "resultSrc <= \"00\" ; +regwrite <= '1' ;" +tm "Actions" +) +exitActions (MLText +uid 603,0 +va (VaSet +) +xt "55112,87084,55112,87084" +tm "Actions" +) +) +caseExpr (TextAssociate +uid 593,0 +ps "CenterOffsetStrategy" +text (MLText +uid 594,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "44775,91278,51475,92478" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +*35 (Link +uid 681,0 +shape (CompositeShape +uid 682,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 683,0 +sl 0 +ro 270 +xt "108001,94171,110251,95171" +) +(Line +uid 684,0 +sl 0 +ro 270 +xt "107501,94671,108001,94671" +pts [ +"107501,94671" +"108001,94671" +] +) +] +) +name (TextAssociate +uid 685,0 +ps "CenterOffsetStrategy" +text (Text +uid 686,0 +va (VaSet +font "Verdana,9,1" +) +xt "110751,94171,115851,95371" +st "s0_Fetch" +blo "110751,95171" +tm "LinkName" +) +) +) +*36 (Link +uid 727,0 +shape (CompositeShape +uid 728,0 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +uid 729,0 +sl 0 +ro 90 +xt "-12336,41365,-10086,42365" +) +(Line +uid 730,0 +sl 0 +ro 90 +xt "-10086,41865,-9586,41865" +pts [ +"-9586,41865" +"-10086,41865" +] +) +] +) +name (TextAssociate +uid 731,0 +ps "CenterOffsetStrategy" +text (Text +uid 732,0 +va (VaSet +font "Verdana,9,1" +) +xt "-17811,41253,-12711,42453" +st "s0_Fetch" +blo "-17811,42253" +tm "LinkName" +) +) +) +*37 (Transition +uid 104,0 +shape (Spline +uid 105,0 +va (VaSet +vasetType 3 +) +xt "-2988,25814,8012,25814" +pts [ +"-2988,25814" +"8012,25814" +] +) +start &4 +end &5 +ss 0 +es 0 +cond "rst = '1'" +tb (TransitionBlock +uid 106,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 107,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-338,24714,5362,26914" +) +autoResize 1 +lineShape (Line +uid 108,0 +va (VaSet +vasetType 3 +) +xt "162,26314,4862,26314" +pts [ +"162,26314" +"4862,26314" +] +) +condition (MLText +uid 109,0 +va (VaSet +) +xt "162,24714,4862,25914" +st "rst = '1'" +tm "Condition" +) +actions (MLText +uid 110,0 +va (VaSet +isHidden 1 +) +xt "-1788,26714,6812,27914" +st "< Automatic >" +tm "Actions" +) +) +tp (TransitionPriority +uid 111,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 112,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-2951,24751,-825,26877" +radius 1063 +) +pr (Text +uid 113,0 +va (VaSet +isHidden 1 +) +xt "-2588,25214,-1188,26414" +st "1" +ju 0 +blo "-1888,26214" +tm "TransitionPriority" +) +padding "100,100" +) +) +*38 (Transition +uid 114,0 +shape (Spline +uid 115,0 +va (VaSet +vasetType 3 +) +xt "-3438,20814,8012,20814" +pts [ +"-3438,20814" +"8012,20814" +] +) +start &6 +end &7 +ss 0 +es 0 +tb (TransitionBlock +uid 116,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 117,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-863,20309,5437,21319" +) +autoResize 1 +lineShape (Line +uid 118,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "2287,21814,2287,21814" +pts [ +"2287,21814" +"2287,21814" +] +) +condition (MLText +uid 119,0 +va (VaSet +) +xt "-363,20214,4937,21414" +tm "Condition" +) +actions (MLText +uid 120,0 +va (VaSet +) +xt "2287,21814,2287,21814" +tm "Actions" +) +) +tp (TransitionPriority +uid 121,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 122,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-3356,19751,-1230,21877" +radius 1063 +) +pr (Text +uid 123,0 +va (VaSet +isHidden 1 +) +xt "-2993,20214,-1593,21414" +st "1" +ju 0 +blo "-2293,21214" +tm "TransitionPriority" +) +padding "100,100" +) +) +*39 (Transition +uid 312,0 +shape (Spline +uid 313,0 +va (VaSet +vasetType 3 +) +xt "45740,24556,45774,29283" +pts [ +"45740,24556" +"45774,29283" +] +arrow 1 +) +start &2 +end &19 +ss 0 +es 0 +cond "en = '1'" +tb (TransitionBlock +uid 314,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 315,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "43862,25606,49362,27806" +) +autoResize 1 +lineShape (Line +uid 316,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "47012,27706,47012,27706" +pts [ +"47012,27706" +"47012,27706" +] +) +condition (MLText +uid 317,0 +va (VaSet +) +xt "44362,26106,48862,27306" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 318,0 +va (VaSet +) +xt "46612,27706,46612,27706" +tm "Actions" +) +) +tp (TransitionPriority +uid 319,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 320,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "44680,23965,46806,26091" +radius 1063 +) +pr (Text +uid 321,0 +va (VaSet +isHidden 1 +) +xt "45043,24428,46443,25628" +st "1" +ju 0 +blo "45743,25428" +tm "TransitionPriority" +) +padding "100,100" +) +) +*40 (Transition +uid 441,0 +shape (Spline +uid 442,0 +va (VaSet +vasetType 3 +) +xt "-938,36027,40207,48659" +pts [ +"40207,36027" +"14702,38822" +"-938,48659" +] +arrow 1 +) +start &19 +end &20 +cond "(op = \"0000011\" OR op = \"0100011\") AND en = '1'" +tb (TransitionBlock +uid 443,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 444,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "612,38061,31012,40261" +) +autoResize 1 +lineShape (Line +uid 445,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "3762,40161,3762,40161" +pts [ +"3762,40161" +"3762,40161" +] +) +condition (MLText +uid 446,0 +va (VaSet +) +xt "1112,38561,30512,39761" +st "(op = \"0000011\" OR op = \"0100011\") AND en = '1'" +tm "Condition" +) +actions (MLText +uid 447,0 +va (VaSet +) +xt "15812,40161,15812,40161" +tm "Actions" +) +) +tp (TransitionPriority +uid 448,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 449,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "34726,35277,36852,37403" +radius 1063 +) +pr (Text +uid 450,0 +va (VaSet +) +xt "35089,35740,36489,36940" +st "1" +ju 0 +blo "35789,36740" +tm "TransitionPriority" +) +padding "100,100" +) +) +*41 (Transition +uid 457,0 +shape (Spline +uid 458,0 +va (VaSet +vasetType 3 +) +xt "22255,38105,41040,48350" +pts [ +"41040,38105" +"26798,44294" +"22255,48350" +] +arrow 1 +) +start &19 +end &21 +cond "op = \"0110011\" AND en = '1'" +tb (TransitionBlock +uid 459,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 460,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "21031,42254,39331,44454" +) +autoResize 1 +lineShape (Line +uid 461,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "24181,44354,24181,44354" +pts [ +"24181,44354" +"24181,44354" +] +) +condition (MLText +uid 462,0 +va (VaSet +) +xt "21531,42754,38831,43954" +st "op = \"0110011\" AND en = '1'" +tm "Condition" +) +actions (MLText +uid 463,0 +va (VaSet +) +xt "30181,44354,30181,44354" +tm "Actions" +) +) +tp (TransitionPriority +uid 464,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 465,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "37977,37878,40103,40004" +radius 1063 +) +pr (Text +uid 466,0 +va (VaSet +) +xt "38340,38341,39740,39541" +st "2" +ju 0 +blo "39040,39341" +tm "TransitionPriority" +) +padding "100,100" +) +) +*42 (Transition +uid 470,0 +shape (Spline +uid 471,0 +va (VaSet +vasetType 3 +) +xt "45857,40689,45916,48478" +pts [ +"45857,40689" +"45916,48478" +] +arrow 1 +) +start &19 +end &22 +ss 0 +es 0 +cond "op = \"0010011\" AND en = '1'" +tb (TransitionBlock +uid 472,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 473,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "39589,43508,57889,45708" +) +autoResize 1 +lineShape (Line +uid 474,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "42739,45608,42739,45608" +pts [ +"42739,45608" +"42739,45608" +] +) +condition (MLText +uid 475,0 +va (VaSet +) +xt "40089,44008,57389,45208" +st "op = \"0010011\" AND en = '1'" +tm "Condition" +) +actions (MLText +uid 476,0 +va (VaSet +) +xt "48739,45608,48739,45608" +tm "Actions" +) +) +tp (TransitionPriority +uid 477,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 478,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "44799,40404,46925,42530" +radius 1063 +) +pr (Text +uid 479,0 +va (VaSet +) +xt "45162,40867,46562,42067" +st "3" +ju 0 +blo "45862,41867" +tm "TransitionPriority" +) +padding "100,100" +) +) +*43 (Transition +uid 483,0 +shape (Spline +uid 484,0 +va (VaSet +vasetType 3 +) +xt "50111,38735,70122,48737" +pts [ +"50111,38735" +"60926,41342" +"70122,48737" +] +arrow 1 +) +start &19 +end &23 +cond "op = \"1101111\" AND en = '1'" +tb (TransitionBlock +uid 485,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 486,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "58283,41219,76583,43419" +) +autoResize 1 +lineShape (Line +uid 487,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "61433,43319,61433,43319" +pts [ +"61433,43319" +"61433,43319" +] +) +condition (MLText +uid 488,0 +va (VaSet +) +xt "58783,41719,76083,42919" +st "op = \"1101111\" AND en = '1'" +tm "Condition" +) +actions (MLText +uid 489,0 +va (VaSet +) +xt "67433,43319,67433,43319" +tm "Actions" +) +) +tp (TransitionPriority +uid 490,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 491,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "51311,38073,53437,40199" +radius 1063 +) +pr (Text +uid 492,0 +va (VaSet +) +xt "51674,38536,53074,39736" +st "4" +ju 0 +blo "52374,39536" +tm "TransitionPriority" +) +padding "100,100" +) +) +*44 (Transition +uid 496,0 +shape (Spline +uid 497,0 +va (VaSet +vasetType 3 +) +xt "51363,36232,93305,49015" +pts [ +"51363,36301" +"79070,37598" +"93305,49015" +] +arrow 1 +) +start &19 +end &24 +cond "op = \"1100011\" AND en = '1'" +tb (TransitionBlock +uid 498,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 499,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "76245,37214,94545,39414" +) +autoResize 1 +lineShape (Line +uid 500,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "79395,39314,79395,39314" +pts [ +"79395,39314" +"79395,39314" +] +) +condition (MLText +uid 501,0 +va (VaSet +) +xt "76745,37714,94045,38914" +st "op = \"1100011\" AND en = '1'" +tm "Condition" +) +actions (MLText +uid 502,0 +va (VaSet +) +xt "85395,39314,85395,39314" +tm "Actions" +) +) +tp (TransitionPriority +uid 503,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 504,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "54926,35242,57052,37368" +radius 1063 +) +pr (Text +uid 505,0 +va (VaSet +) +xt "55289,35705,56689,36905" +st "5" +ju 0 +blo "55989,36705" +tm "TransitionPriority" +) +padding "100,100" +) +) +*45 (Transition +uid 509,0 +shape (Spline +uid 510,0 +va (VaSet +vasetType 3 +) +xt "37370,19357,41118,31751" +pts [ +"41118,31751" +"38606,29966" +"37382,25502" +"38102,21254" +"40020,19357" +] +arrow 1 +) +start &19 +end &2 +cond "en = '1'" +tb (TransitionBlock +uid 511,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 512,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "35254,25002,40754,27202" +) +autoResize 1 +lineShape (Line +uid 513,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "38404,27102,38404,27102" +pts [ +"38404,27102" +"38404,27102" +] +) +condition (MLText +uid 514,0 +va (VaSet +) +xt "35754,25502,40254,26702" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 515,0 +va (VaSet +) +xt "38004,27102,38004,27102" +tm "Actions" +) +) +tp (TransitionPriority +uid 516,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 517,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "38741,29995,40867,32121" +radius 1063 +) +pr (Text +uid 518,0 +va (VaSet +) +xt "39104,30458,40504,31658" +st "6" +ju 0 +blo "39804,31458" +tm "TransitionPriority" +) +padding "100,100" +) +) +*46 (Transition +uid 604,0 +shape (Spline +uid 605,0 +va (VaSet +vasetType 3 +) +xt "24087,58974,41855,87371" +pts [ +"24087,58974" +"41855,87371" +] +arrow 1 +) +start &21 +end &34 +ss 0 +cond "en = '1'" +tb (TransitionBlock +uid 606,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 607,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "29215,69068,34715,71268" +) +autoResize 1 +lineShape (Line +uid 608,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "32365,71168,32365,71168" +pts [ +"32365,71168" +"32365,71168" +] +) +condition (MLText +uid 609,0 +va (VaSet +) +xt "29715,69568,34215,70768" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 610,0 +va (VaSet +) +xt "31965,71168,31965,71168" +tm "Actions" +) +) +tp (TransitionPriority +uid 611,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 612,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "24800,60750,26926,62876" +radius 1063 +) +pr (Text +uid 613,0 +va (VaSet +isHidden 1 +) +xt "25163,61213,26563,62413" +st "1" +ju 0 +blo "25863,62213" +tm "TransitionPriority" +) +padding "100,100" +) +) +*47 (Transition +uid 614,0 +shape (Spline +uid 615,0 +va (VaSet +vasetType 3 +) +xt "46335,59871,46730,84377" +pts [ +"46335,59871" +"46730,84377" +] +arrow 1 +) +start &22 +end &34 +cond "en = '1'" +tb (TransitionBlock +uid 616,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 617,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "43591,68949,49091,71149" +) +autoResize 1 +lineShape (Line +uid 618,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "46741,71049,46741,71049" +pts [ +"46741,71049" +"46741,71049" +] +) +condition (MLText +uid 619,0 +va (VaSet +) +xt "44091,69449,48591,70649" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 620,0 +va (VaSet +) +xt "46341,71049,46341,71049" +tm "Actions" +) +) +tp (TransitionPriority +uid 621,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 622,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "45311,61257,47437,63383" +radius 1063 +) +pr (Text +uid 623,0 +va (VaSet +isHidden 1 +) +xt "45674,61720,47074,62920" +st "1" +ju 0 +blo "46374,62720" +tm "TransitionPriority" +) +padding "100,100" +) +) +*48 (Transition +uid 624,0 +shape (Spline +uid 625,0 +va (VaSet +vasetType 3 +) +xt "51860,60089,70479,87309" +pts [ +"70479,60089" +"51860,87309" +] +arrow 1 +) +start &23 +end &34 +cond "en = '1'" +tb (TransitionBlock +uid 626,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 627,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "60552,69594,66052,71794" +) +autoResize 1 +lineShape (Line +uid 628,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "63702,71694,63702,71694" +pts [ +"63702,71694" +"63702,71694" +] +) +condition (MLText +uid 629,0 +va (VaSet +) +xt "61052,70094,65552,71294" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 630,0 +va (VaSet +) +xt "63302,71694,63302,71694" +tm "Actions" +) +) +tp (TransitionPriority +uid 631,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 632,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "67554,61747,69680,63873" +radius 1063 +) +pr (Text +uid 633,0 +va (VaSet +isHidden 1 +) +xt "67917,62210,69317,63410" +st "1" +ju 0 +blo "68617,63210" +tm "TransitionPriority" +) +padding "100,100" +) +) +*49 (Transition +uid 634,0 +shape (Spline +uid 635,0 +va (VaSet +vasetType 3 +) +xt "-3530,79236,-3492,84238" +pts [ +"-3530,79236" +"-3492,84238" +] +arrow 1 +) +start &31 +end &32 +ss 0 +es 0 +cond "en = '1'" +tb (TransitionBlock +uid 636,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 637,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-6104,80423,-604,82623" +) +autoResize 1 +lineShape (Line +uid 638,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "-2954,82523,-2954,82523" +pts [ +"-2954,82523" +"-2954,82523" +] +) +condition (MLText +uid 639,0 +va (VaSet +) +xt "-5604,80923,-1104,82123" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 640,0 +va (VaSet +) +xt "-3354,82523,-3354,82523" +tm "Actions" +) +) +tp (TransitionPriority +uid 641,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 642,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-4589,78673,-2463,80799" +radius 1063 +) +pr (Text +uid 643,0 +va (VaSet +isHidden 1 +) +xt "-4226,79136,-2826,80336" +st "1" +ju 0 +blo "-3526,80136" +tm "TransitionPriority" +) +padding "100,100" +) +) +*50 (Transition +uid 644,0 +shape (Spline +uid 645,0 +va (VaSet +vasetType 3 +) +xt "-3443,59618,-3272,67296" +pts [ +"-3272,59618" +"-3443,67296" +] +arrow 1 +) +start &20 +end &31 +ss 0 +es 0 +cond "op = \"0000011\" AND en = '1'" +tb (TransitionBlock +uid 646,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 647,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-11404,63186,6896,65386" +) +autoResize 1 +lineShape (Line +uid 648,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "-8254,65286,-8254,65286" +pts [ +"-8254,65286" +"-8254,65286" +] +) +condition (MLText +uid 649,0 +va (VaSet +) +xt "-10904,63686,6396,64886" +st "op = \"0000011\" AND en = '1'" +tm "Condition" +) +actions (MLText +uid 650,0 +va (VaSet +) +xt "-2254,65286,-2254,65286" +tm "Actions" +) +) +tp (TransitionPriority +uid 651,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 652,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-4352,59321,-2226,61447" +radius 1063 +) +pr (Text +uid 653,0 +va (VaSet +) +xt "-3989,59784,-2589,60984" +st "1" +ju 0 +blo "-3289,60784" +tm "TransitionPriority" +) +padding "100,100" +) +) +*51 (Transition +uid 654,0 +shape (Spline +uid 655,0 +va (VaSet +vasetType 3 +) +xt "705,58124,20550,83826" +pts [ +"705,58124" +"15476,70146" +"20550,83826" +] +arrow 1 +) +start &20 +end &33 +cond "op = \"0100011\" AND en = '1'" +tb (TransitionBlock +uid 656,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 657,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "7651,68963,25951,71163" +) +autoResize 1 +lineShape (Line +uid 658,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "10801,71063,10801,71063" +pts [ +"10801,71063" +"10801,71063" +] +) +condition (MLText +uid 659,0 +va (VaSet +) +xt "8151,69463,25451,70663" +st "op = \"0100011\" AND en = '1'" +tm "Condition" +) +actions (MLText +uid 660,0 +va (VaSet +) +xt "16801,71063,16801,71063" +tm "Actions" +) +) +tp (TransitionPriority +uid 661,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 662,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "2361,59066,4487,61192" +radius 1063 +) +pr (Text +uid 663,0 +va (VaSet +) +xt "2724,59529,4124,60729" +st "2" +ju 0 +blo "3424,60529" +tm "TransitionPriority" +) +padding "100,100" +) +) +*52 (Transition +uid 687,0 +shape (Spline +uid 688,0 +va (VaSet +vasetType 3 +) +xt "50279,94654,107501,94671" +pts [ +"50279,94654" +"107501,94671" +] +) +start &34 +end &35 +es 0 +cond "en = '1'" +tb (TransitionBlock +uid 689,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 690,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "64757,93449,70257,95649" +) +autoResize 1 +lineShape (Line +uid 691,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "67907,95549,67907,95549" +pts [ +"67907,95549" +"67907,95549" +] +) +condition (MLText +uid 692,0 +va (VaSet +) +xt "65257,93949,69757,95149" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 693,0 +va (VaSet +) +xt "67507,95549,67507,95549" +tm "Actions" +) +) +tp (TransitionPriority +uid 694,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 695,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "54938,93592,57064,95718" +radius 1063 +) +pr (Text +uid 696,0 +va (VaSet +isHidden 1 +) +xt "55301,94055,56701,95255" +st "1" +ju 0 +blo "56001,95055" +tm "TransitionPriority" +) +padding "100,100" +) +) +*53 (Transition +uid 697,0 +shape (Spline +uid 698,0 +va (VaSet +vasetType 3 +) +xt "95129,60166,107501,94671" +pts [ +"95129,60166" +"97039,90171" +"107501,94671" +] +) +start &24 +end &35 +es 0 +cond "en = '1'" +tb (TransitionBlock +uid 699,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 700,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "92702,70834,98202,73034" +) +autoResize 1 +lineShape (Line +uid 701,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "95852,72934,95852,72934" +pts [ +"95852,72934" +"95852,72934" +] +) +condition (MLText +uid 702,0 +va (VaSet +) +xt "93202,71334,97702,72534" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 703,0 +va (VaSet +) +xt "95452,72934,95452,72934" +tm "Actions" +) +) +tp (TransitionPriority +uid 704,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 705,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "94184,63343,96310,65469" +radius 1063 +) +pr (Text +uid 706,0 +va (VaSet +isHidden 1 +) +xt "94547,63806,95947,65006" +st "1" +ju 0 +blo "95247,64806" +tm "TransitionPriority" +) +padding "100,100" +) +) +*54 (Transition +uid 707,0 +shape (Spline +uid 708,0 +va (VaSet +vasetType 3 +) +xt "22913,94671,107501,97278" +pts [ +"22913,95871" +"47089,97259" +"107501,94671" +] +) +start &33 +end &35 +cond "en = '1'" +tb (TransitionBlock +uid 709,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 710,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "44496,96526,49996,98726" +) +autoResize 1 +lineShape (Line +uid 711,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "47646,98626,47646,98626" +pts [ +"47646,98626" +"47646,98626" +] +) +condition (MLText +uid 712,0 +va (VaSet +) +xt "44996,97026,49496,98226" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 713,0 +va (VaSet +) +xt "47246,98626,47246,98626" +tm "Actions" +) +) +tp (TransitionPriority +uid 714,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 715,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "30279,95673,32405,97799" +radius 1063 +) +pr (Text +uid 716,0 +va (VaSet +isHidden 1 +) +xt "30642,96136,32042,97336" +st "1" +ju 0 +blo "31342,97136" +tm "TransitionPriority" +) +padding "100,100" +) +) +*55 (Transition +uid 717,0 +shape (Spline +uid 718,0 +va (VaSet +vasetType 3 +) +xt "-3301,94671,107501,99287" +pts [ +"-3301,95642" +"46076,99284" +"107501,94671" +] +) +start &32 +end &35 +cond "en = '1'" +tb (TransitionBlock +uid 719,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 720,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "37785,98202,43285,100402" +) +autoResize 1 +lineShape (Line +uid 721,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "40935,100302,40935,100302" +pts [ +"40935,100302" +"40935,100302" +] +) +condition (MLText +uid 722,0 +va (VaSet +) +xt "38285,98702,42785,99902" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 723,0 +va (VaSet +) +xt "40535,100302,40535,100302" +tm "Actions" +) +) +tp (TransitionPriority +uid 724,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 725,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "6696,95690,8822,97816" +radius 1063 +) +pr (Text +uid 726,0 +va (VaSet +isHidden 1 +) +xt "7059,96153,8459,97353" +st "1" +ju 0 +blo "7759,97153" +tm "TransitionPriority" +) +padding "100,100" +) +) +*56 (Transition +uid 733,0 +shape (Spline +uid 734,0 +va (VaSet +vasetType 3 +) +xt "-9586,41865,-6248,49132" +pts [ +"-6248,49132" +"-9586,41865" +] +) +start &20 +end &36 +ss 0 +es 0 +cond "en = '1'" +tb (TransitionBlock +uid 735,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 736,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-10277,44533,-4777,46733" +) +autoResize 1 +lineShape (Line +uid 737,0 +va (VaSet +vasetType 3 +isHidden 1 +) +xt "-7127,46633,-7127,46633" +pts [ +"-7127,46633" +"-7127,46633" +] +) +condition (MLText +uid 738,0 +va (VaSet +) +xt "-9777,45033,-5277,46233" +st "en = '1'" +tm "Condition" +) +actions (MLText +uid 739,0 +va (VaSet +) +xt "-7527,46633,-7527,46633" +tm "Actions" +) +) +tp (TransitionPriority +uid 740,0 +ps "PercentageFromStartStrategy" +shape (Circle +uid 741,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-7644,47342,-5518,49468" +radius 1063 +) +pr (Text +uid 742,0 +va (VaSet +) +xt "-7281,47805,-5881,49005" +st "3" +ju 0 +blo "-6581,48805" +tm "TransitionPriority" +) +padding "100,100" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 0 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *57 (PackageList +uid 31,0 +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +uid 32,0 +va (VaSet +font "Verdana,9,1" +) +xt "-232,3465,7368,4665" +st "Package List" +blo "-232,4465" +) +*59 (MLText +uid 33,0 +va (VaSet +) +xt "-232,4665,17268,10665" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "SmPackageListTextMgr" +) +] +) +compDirBlock (MlTextGroup +uid 34,0 +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 35,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*61 (Text +uid 36,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*62 (MLText +uid 37,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "SmCompilerDirectivesTextMgr" +) +*63 (Text +uid 38,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*64 (MLText +uid 39,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "SmCompilerDirectivesTextMgr" +) +*65 (Text +uid 40,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*66 (MLText +uid 41,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "SmCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-19978,-4329,177488,102960" +cachedDiagramExtent "-17811,-2010,131050,100402" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-73000,-51000" +isTopLevel 1 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +localDecl *67 (SmLocalDecl +uid 3,0 +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,-1000,42400,200" +st "Architecture Declarations" +blo "27800,0" +) +*69 (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "27800,-1000,27800,-1000" +tm "LocalDeclTextMgr" +) +*70 (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,200,33000,1400" +st "Pre Decls" +blo "27800,1200" +) +*71 (MLText +uid 7,0 +va (VaSet +font "Courier New,8,0" +) +xt "27800,-1000,27800,-1000" +tm "LocalDeclTextMgr" +) +*72 (Text +uid 8,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,1400,34200,2600" +st "Post Decls" +blo "27800,2400" +) +*73 (MLText +uid 9,0 +va (VaSet +font "Courier New,8,0" +) +xt "27800,2600,27800,2600" +tm "LocalDeclTextMgr" +) +] +) +processDecl *74 (SmProcessDecl +uid 10,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "74500,-1000,86600,200" +st "Process Declarations" +blo "74500,0" +) +*76 (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "74500,200,84000,1400" +st "Clocked Process:" +blo "74500,1200" +) +*77 (MLText +uid 13,0 +va (VaSet +font "Courier New,8,0" +) +xt "74500,-1000,74500,-1000" +tm "ProcessDeclTextMgr" +) +*78 (Text +uid 14,0 +va (VaSet +font "Verdana,9,1" +) +xt "74500,1400,83800,2600" +st "Output Process:" +blo "74500,2400" +) +*79 (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "74500,2600,74500,2600" +tm "ProcessDeclTextMgr" +) +] +associable 1 +) +defaultActions *80 (MlTextGroup +uid 16,0 +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +uid 17,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,-1000,8400,200" +st "Global Actions" +blo "0,0" +) +*82 (Text +uid 18,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,200,7400,1400" +st "Pre Actions:" +blo "0,1200" +) +*83 (MLText +uid 19,0 +va (VaSet +) +xt "0,-1000,0,-1000" +tm "Actions" +) +*84 (Text +uid 20,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,1400,8000,2600" +st "Post Actions:" +blo "0,2400" +) +*85 (MLText +uid 21,0 +va (VaSet +) +xt "0,2600,0,2600" +tm "Actions" +) +] +associable 1 +) +archConcurrentStatementBlock *86 (BiTextGroup +uid 22,0 +stg "VerticalLayoutStrategy" +first (Text +uid 23,0 +va (VaSet +font "Verdana,9,1" +) +xt "11400,-1000,24800,200" +st "Concurrent Statements" +blo "11400,0" +) +second (MLText +uid 24,0 +va (VaSet +) +xt "11400,200,11400,200" +tm "ArchConcStmtTextMgr" +) +associable 1 +) +signalsGenStatus *87 (SmSignalGenStatus +uid 28,0 +stg "VerticalLayoutStrategy" +first (Text +uid 29,0 +va (VaSet +font "Verdana,9,1" +) +xt "45400,-1000,53200,200" +st "Signal Status" +blo "45400,0" +) +second (MLText +uid 30,0 +va (VaSet +font "Courier New,8,0" +) +xt "45400,200,72900,9000" +st "SIGNAL MODE DEFAULT RESET SCHEME COMMENT +ALUOp OUT \"00\" COMB +ALUSrcA OUT \"00\" COMB +ALUSrcB OUT \"00\" COMB +IRWrite OUT '0' COMB +PCupdate OUT '0' COMB +adrSrc OUT '0' COMB +branch OUT '0' COMB +memWrite OUT '0' COMB +regwrite OUT '0' COMB +resultSrc OUT \"00\" COMB +" +tm "SmSignalsGenStatusTextMgr" +) +) +stateRegBlock *88 (BiTextGroup +uid 25,0 +stg "VerticalLayoutStrategy" +first (Text +uid 26,0 +va (VaSet +font "Verdana,9,1" +) +xt "56200,-1000,71500,200" +st "State Register Statements" +blo "56200,0" +) +second (MLText +uid 27,0 +va (VaSet +) +xt "56200,200,56200,200" +tm "Actions" +) +associable 1 +) +) +genChar (SmGenChar +uid 42,0 +nextStateClocking 0 +) +encoding (Encoding +scheme 3 +encodingStyles [ +(pair +scheme 0 +style 0 +) +(pair +scheme 1 +style 1 +) +(pair +scheme 2 +style 0 +) +(pair +scheme 3 +style 0 +) +(pair +scheme 4 +style 0 +) +(pair +scheme 5 +style 0 +) +] +otherValues [ +(pair +scheme 0 +otherValue "" +) +(pair +scheme 1 +otherValue "" +) +(pair +scheme 2 +otherValue "" +) +(pair +scheme 3 +otherValue "" +) +(pair +scheme 4 +otherValue "" +) +(pair +scheme 5 +otherValue "" +) +] +attribute 0 +synSafe 0 +outputEncodedLocals 0 +useVerilogParameterRange 0 +radix 2 +) +stateOrder [ +&2 +&19 +&20 +&21 +&22 +&23 +&24 +&31 +&32 +&33 +&34 +] +name "csm" +) +] +lastUid 959,0 +commonDM (CommonDM +ldm (LogicalDM +emptyRow *89 (LEmptyRow +) +uid 184,0 +optionalChildren [ +*90 (RefLabelRowHdr +) +*91 (TitleRowHdr +) +*92 (FilterRowHdr +) +*93 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*94 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*95 (GroupColHdr +tm "GroupColHdrMgr" +) +*96 (NameColHdr +tm "SmNameColHdrMgr" +) +*97 (ModeColHdr +tm "SmModeColHdrMgr" +) +*98 (TypeColHdr +tm "SmTypeColHdrMgr" +) +*99 (BoundsColHdr +tm "SmBoundsColHdrMgr" +) +*100 (InitColHdr +tm "SmInitColHdrMgr" +) +*101 (ColumnHdr +tm "SmCategoryColHdrMgr" +) +*102 (ColumnHdr +tm "SmAssignColHdrMgr" +) +*103 (ColumnHdr +tm "SmExprColHdrMgr" +) +*104 (ColumnHdr +tm "SmSchemeColHdrMgr" +) +*105 (ColumnHdr +tm "SmDefValColHdrMgr" +) +*106 (ColumnHdr +tm "SmRstValColHdrMgr" +) +*107 (EolColHdr +tm "SmEolColHdrMgr" +) +*108 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +) +) +uid 156,0 +cat 1 +expr "clk'EVENT AND clk = '1'" +) +*109 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +) +) +uid 158,0 +) +*110 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +) +) +uid 160,0 +cat 9 +expr "rst = '1'" +) +*111 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 5 +) +) +uid 162,0 +scheme 0 +defVal "\"00\"" +) +*112 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 6 +) +) +uid 164,0 +scheme 0 +defVal "\"00\"" +) +*113 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 7 +) +) +uid 166,0 +scheme 0 +defVal "\"00\"" +) +*114 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 8 +) +) +uid 168,0 +scheme 0 +defVal "'0'" +) +*115 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "PCupdate" +t "std_uLogic" +o 9 +) +) +uid 170,0 +scheme 0 +defVal "'0'" +) +*116 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 10 +) +) +uid 172,0 +scheme 0 +defVal "'0'" +) +*117 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 11 +) +) +uid 174,0 +scheme 0 +defVal "'0'" +) +*118 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 12 +) +) +uid 176,0 +scheme 0 +defVal "'0'" +) +*119 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 13 +) +) +uid 178,0 +scheme 0 +defVal "'0'" +) +*120 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +) +) +uid 180,0 +scheme 0 +defVal "\"00\"" +) +*121 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +) +) +uid 832,0 +ass "" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 203,0 +optionalChildren [ +*122 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *123 (MRCItem +litem &89 +pos 14 +dimension 20 +) +uid 205,0 +optionalChildren [ +*124 (MRCItem +litem &90 +pos 0 +dimension 20 +uid 206,0 +) +*125 (MRCItem +litem &91 +pos 1 +dimension 23 +uid 207,0 +) +*126 (MRCItem +litem &92 +pos 2 +hidden 1 +dimension 20 +uid 208,0 +) +*127 (MRCItem +litem &108 +pos 0 +dimension 20 +uid 157,0 +) +*128 (MRCItem +litem &109 +pos 1 +dimension 20 +uid 159,0 +) +*129 (MRCItem +litem &110 +pos 2 +dimension 20 +uid 161,0 +) +*130 (MRCItem +litem &111 +pos 3 +dimension 20 +uid 163,0 +) +*131 (MRCItem +litem &112 +pos 4 +dimension 20 +uid 165,0 +) +*132 (MRCItem +litem &113 +pos 5 +dimension 20 +uid 167,0 +) +*133 (MRCItem +litem &114 +pos 6 +dimension 20 +uid 169,0 +) +*134 (MRCItem +litem &115 +pos 7 +dimension 20 +uid 171,0 +) +*135 (MRCItem +litem &116 +pos 8 +dimension 20 +uid 173,0 +) +*136 (MRCItem +litem &117 +pos 9 +dimension 20 +uid 175,0 +) +*137 (MRCItem +litem &118 +pos 10 +dimension 20 +uid 177,0 +) +*138 (MRCItem +litem &119 +pos 11 +dimension 20 +uid 179,0 +) +*139 (MRCItem +litem &120 +pos 12 +dimension 20 +uid 181,0 +) +*140 (MRCItem +litem &121 +pos 13 +dimension 20 +uid 831,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 209,0 +optionalChildren [ +*141 (MRCItem +litem &93 +pos 0 +dimension 20 +uid 210,0 +) +*142 (MRCItem +litem &95 +pos 1 +dimension 50 +uid 211,0 +) +*143 (MRCItem +litem &96 +pos 2 +dimension 70 +uid 212,0 +) +*144 (MRCItem +litem &97 +pos 3 +dimension 50 +uid 213,0 +) +*145 (MRCItem +litem &98 +pos 4 +dimension 80 +uid 214,0 +) +*146 (MRCItem +litem &99 +pos 5 +dimension 80 +uid 215,0 +) +*147 (MRCItem +litem &100 +pos 6 +dimension 40 +uid 216,0 +) +*148 (MRCItem +litem &101 +pos 7 +dimension 100 +uid 217,0 +) +*149 (MRCItem +litem &102 +pos 8 +dimension 60 +uid 218,0 +) +*150 (MRCItem +litem &103 +pos 9 +dimension 130 +uid 219,0 +) +*151 (MRCItem +litem &104 +pos 10 +dimension 56 +uid 220,0 +) +*152 (MRCItem +litem &105 +pos 11 +dimension 50 +uid 221,0 +) +*153 (MRCItem +litem &106 +pos 12 +dimension 50 +uid 222,0 +) +*154 (MRCItem +litem &107 +pos 13 +dimension 80 +uid 223,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 204,0 +vaOverrides [ +] +) +] +) +uid 183,0 +) +cdmCsm &1 +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *155 (LEmptyRow +) +uid 225,0 +optionalChildren [ +*156 (RefLabelRowHdr +) +*157 (TitleRowHdr +) +*158 (FilterRowHdr +) +*159 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*160 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*161 (GroupColHdr +tm "GroupColHdrMgr" +) +*162 (NameColHdr +tm "GenericNameColHdrMgr" +) +*163 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*164 (InitColHdr +tm "GenericValueColHdrMgr" +) +*165 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*166 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 237,0 +optionalChildren [ +*167 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *168 (MRCItem +litem &155 +pos 0 +dimension 20 +) +uid 239,0 +optionalChildren [ +*169 (MRCItem +litem &156 +pos 0 +dimension 20 +uid 240,0 +) +*170 (MRCItem +litem &157 +pos 1 +dimension 23 +uid 241,0 +) +*171 (MRCItem +litem &158 +pos 2 +hidden 1 +dimension 20 +uid 242,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 243,0 +optionalChildren [ +*172 (MRCItem +litem &159 +pos 0 +dimension 20 +uid 244,0 +) +*173 (MRCItem +litem &161 +pos 1 +dimension 50 +uid 245,0 +) +*174 (MRCItem +litem &162 +pos 2 +dimension 100 +uid 246,0 +) +*175 (MRCItem +litem &163 +pos 3 +dimension 100 +uid 247,0 +) +*176 (MRCItem +litem &164 +pos 4 +dimension 50 +uid 248,0 +) +*177 (MRCItem +litem &165 +pos 5 +dimension 50 +uid 249,0 +) +*178 (MRCItem +litem &166 +pos 6 +dimension 80 +uid 250,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 238,0 +vaOverrides [ +] +) +] +) +uid 224,0 +type 1 +) +signalSuffix "_int" +clockSuffix "_cld" +defaultState (State +shape (Circle +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "0,32768,49152" +lineWidth 2 +) +xt "-3551,-3551,3551,3551" +radius 3551 +) +name (Text +va (VaSet +font "Verdana,12,1" +) +xt "0,0,2500,1400" +st "s0" +ju 0 +blo "1250,1200" +tm "ONodeName" +) +wait (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "1000,900,6100,2300" +st "wait 2" +blo "1000,2100" +tm "SmWaitText" +) +) +encoding (Text +va (VaSet +font "Verdana,9,1" +) +blo "0,0" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "3900,3300,4100,3500" +) +autoResize 1 +tline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +pts [ +"0,0" +"0,0" +] +) +bline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +pts [ +"0,0" +"0,0" +] +) +ttri (Triangle +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "-450,-175,-100,175" +) +btri (Triangle +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "-450,-175,-100,175" +) +entryActions (MLText +va (VaSet +) +tm "Actions" +) +inActions (MLText +va (VaSet +) +tm "Actions" +) +exitActions (MLText +va (VaSet +) +tm "Actions" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-2100,1200,4600,2400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +defaultWaitState (State +shape (CircleInOctagon +va (VaSet +vasetType 1 +fg "0,65535,65535" +lineColor "26368,26368,26368" +lineWidth 2 +) +xt "-529,-529,6529,6529" +) +name (Text +va (VaSet +font "Verdana,12,1" +) +xt "0,0,2500,1400" +st "s0" +ju 0 +blo "1250,1200" +tm "ONodeName" +) +wait (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +isHidden 1 +fg "0,0,32768" +font "Verdana,12,1" +) +xt "1000,900,6100,2300" +st "wait 2" +blo "1000,2100" +tm "SmWaitText" +) +) +encoding (Text +va (VaSet +font "Verdana,9,1" +) +blo "0,0" +tm "SmEncodingMgr" +) +actionBlk (SmStateActionsBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "8900,6300,9100,6500" +) +autoResize 1 +tline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "5000,3000,5000,3000" +pts [ +"5000,3000" +"5000,3000" +] +) +bline (Line +va (VaSet +vasetType 3 +isHidden 1 +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "5000,3000,5000,3000" +pts [ +"5000,3000" +"5000,3000" +] +) +ttri (Triangle +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "4550,2825,4900,3175" +) +btri (Triangle +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,32768,49152" +bg "0,0,0" +lineColor "39936,56832,65280" +lineWidth -1 +) +xt "4550,2825,4900,3175" +) +entryActions (MLText +va (VaSet +) +xt "5000,3000,5000,3000" +tm "Actions" +) +inActions (MLText +va (VaSet +) +xt "5000,3000,5000,3000" +tm "Actions" +) +exitActions (MLText +va (VaSet +) +xt "5000,3000,5000,3000" +tm "Actions" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-2100,1200,4600,2400" +st "CASE: expr" +tm "SmCaseExpr" +) +) +isWait 1 +) +defaultCompositeState (CompositeState +shape (TripleCircle +va (VaSet +vasetType 1 +fg "29952,39936,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "-3000,-3000,3000,3000" +radius 3000 +) +name (Text +va (VaSet +font "Verdana,10,1" +) +xt "-1000,-600,1000,600" +st "s0" +ju 0 +blo "0,400" +tm "ONodeName" +) +childDiagram &0 +) +defaultJunction (Junction +shape (Diamond +va (VaSet +vasetType 1 +fg "59904,39936,65280" +) +xt "-1300,-1300,2300,2300" +) +symbol (Text +va (VaSet +font "Verdana,10,1" +) +xt "-300,-100,1300,1100" +st "&" +ju 0 +blo "500,900" +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "2000,1000,2000,1000" +blo "2000,1000" +tm "JunctionName" +) +) +caseExpr (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "-2550,2000,4150,3200" +st "CASE: expr" +tm "SmCaseExpr" +) +) +) +defaultEntryPoint (EntryPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "29952,39936,65280" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-875,875,1375,1875" +) +(Line +sl 0 +ro 270 +xt "1375,1375,1875,1375" +pts [ +"1375,1375" +"1875,1375" +] +) +] +) +) +defaultInterruptPoint (InterruptPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-875,875,1375,1875" +) +(Line +sl 0 +ro 270 +xt "1375,1375,1875,1375" +pts [ +"1375,1375" +"1875,1375" +] +) +(CustomPolygon +pts [ +"-625,1600" +"-625,1300" +"25,1425" +"-75,1150" +"1025,1350" +"200,1350" +"375,1600" +] +sl 0 +ro 270 +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "65535,0,0" +lineColor "65535,65535,0" +) +xt "-625,1150,1025,1600" +) +] +) +) +defaultLink (Link +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +bg "0,0,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-375,875,1875,1875" +) +(Line +sl 0 +ro 270 +xt "-875,1375,-375,1375" +pts [ +"-875,1375" +"-375,1375" +] +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "2375,875,5075,2075" +st "Link" +blo "2375,1875" +tm "LinkName" +) +) +) +defaultExitPoint (ExitPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "29952,39936,65280" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-375,875,1875,1875" +) +(Line +sl 0 +ro 270 +xt "-875,1375,-375,1375" +pts [ +"-875,1375" +"-375,1375" +] +) +] +) +) +defaultTransition (Transition +shape (Spline +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +arrow 1 +) +ss 0 +es 0 +cond "condition" +tb (TransitionBlock +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +lineColor "0,32768,49152" +) +xt "-500,-500,5800,1700" +) +autoResize 1 +lineShape (Line +va (VaSet +vasetType 3 +isHidden 1 +) +xt "2650,1600,2650,1600" +pts [ +"2650,1600" +"2650,1600" +] +) +condition (MLText +va (VaSet +) +xt "0,0,5300,1200" +st "condition" +tm "Condition" +) +actions (MLText +va (VaSet +) +xt "2650,2000,2650,2000" +tm "Actions" +) +) +tp (TransitionPriority +ps "PercentageFromStartStrategy" +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "-1063,-1063,1063,1063" +radius 1063 +) +pr (Text +va (VaSet +) +xt "-700,-600,700,600" +st "1" +ju 0 +blo "0,400" +tm "TransitionPriority" +) +padding "100,100" +) +) +defaultClk (SmClockPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"275,1425" +"574,1425" +"574,825" +"874,825" +] +) +(Arc2D +pts [ +"-116,1278" +"-371,972" +"-116,972" +] +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-441,926,-116,1323" +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +) +xt "-3325,625,-1125,1825" +st "clk" +ju 2 +blo "-1125,1625" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1625,425,4925,1825" +) +autoResize 1 +cond (MLText +va (VaSet +) +xt "1725,525,4825,1725" +st "cond" +tm "SmControlConditionMgr" +) +) +) +defaultEnable (SmEnablePoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"874,1425" +"574,1425" +"574,825" +"275,825" +] +) +(Arc2D +pts [ +"-130,1263" +"-415,1064" +"-76,1064" +] +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +transparent 1 +) +xt "-425,943,-76,1304" +) +(Line +sl 0 +ro 270 +xt "-415,1064,-106,1064" +pts [ +"-415,1064" +"-106,1064" +] +) +] +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +) +xt "-5125,625,-1125,1825" +st "enable" +ju 2 +blo "-1125,1625" +tm "SmControlSignalNameMgr" +) +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "1625,425,4925,1825" +) +autoResize 1 +cond (MLText +va (VaSet +) +xt "1725,525,4825,1725" +st "cond" +tm "SmControlConditionMgr" +) +) +) +defaultRst (SmResetPoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-625,625,1625,1625" +) +(OrthoPolyLine +sl 0 +ro 270 +va (VaSet +vasetType 3 +) +xt "275,825,874,1425" +pts [ +"874,1425" +"574,1425" +"574,825" +"275,825" +] +) +(Line +sl 0 +ro 270 +xt "-376,950,-276,1000" +pts [ +"-376,1000" +"-276,950" +] +) +(Line +sl 0 +ro 270 +xt "-376,950,-376,1300" +pts [ +"-376,1300" +"-376,950" +] +) +(Circle +layer 10 +sl 0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "65535,65535,0" +) +xt "424,975,724,1275" +radius 150 +) +] +) +cond (SmControlCondition +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,32768,49152" +) +xt "-625,-1175,2675,225" +) +autoResize 1 +cond (MLText +va (VaSet +) +xt "-525,-1075,2575,125" +st "cond" +tm "SmControlConditionMgr" +) +) +prio (TransitionPriority +ps "PercentageFromStartStrategy" +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "1625,62,3751,2188" +radius 1063 +) +pr (Text +va (VaSet +) +xt "1988,525,3388,1725" +st "1" +ju 0 +blo "2688,1525" +tm "TransitionPriority" +) +padding "100,100" +) +name (TextAssociate +ps "CenterOffsetStrategy" +text (Text +va (VaSet +) +xt "-2725,525,-625,1725" +st "rst" +ju 2 +blo "-625,1525" +tm "SmControlSignalNameMgr" +) +) +actions (TextAssociate +ps "CenterOffsetStrategy" +text (MLText +va (VaSet +isHidden 1 +) +xt "4750,2625,13350,3825" +st "< Automatic >" +tm "Actions" +) +) +) +defaultRecStatePt (SmRecoveryStatePoint +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,0,0" +) +optionalChildren [ +(Circle +sl 0 +xt "-900,-900,900,900" +radius 900 +) +(Line +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-426,-426,426,426" +pts [ +"-426,426" +"426,-426" +] +) +(Line +sl 0 +va (VaSet +vasetType 3 +lineColor "65535,65535,0" +lineWidth 1 +) +xt "-426,-426,426,426" +pts [ +"426,426" +"-426,-426" +] +) +] +) +) +activeModelName "StateMachine" +LanguageMgr "Vhdl2008LangMgr" +) diff --git a/Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/symbol.sb b/Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/symbol.sb new file mode 100644 index 0000000..0063884 --- /dev/null +++ b/Libs/RiscV/HEIRV32/MultiCycle/hds/main@f@s@m/symbol.sb @@ -0,0 +1,2194 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 14,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 144,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 10 +suid 1,0 +) +) +uid 116,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 5 +suid 2,0 +) +) +uid 118,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +uid 120,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +uid 122,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 11 +suid 5,0 +) +) +uid 124,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 6,0 +) +) +uid 126,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 8 +suid 7,0 +) +) +uid 128,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 12 +suid 8,0 +) +) +uid 130,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 9,0 +) +) +uid 132,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "PCupdate" +t "std_uLogic" +o 9 +suid 10,0 +) +) +uid 134,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 13 +suid 11,0 +) +) +uid 136,0 +) +*25 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 12,0 +) +) +uid 138,0 +) +*26 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 13,0 +) +) +uid 140,0 +) +*27 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 14,0 +) +) +uid 337,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 157,0 +optionalChildren [ +*28 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *29 (MRCItem +litem &1 +pos 14 +dimension 20 +) +uid 159,0 +optionalChildren [ +*30 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 160,0 +) +*31 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 161,0 +) +*32 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +*33 (MRCItem +litem &14 +pos 8 +dimension 20 +uid 117,0 +) +*34 (MRCItem +litem &15 +pos 3 +dimension 20 +uid 119,0 +) +*35 (MRCItem +litem &16 +pos 4 +dimension 20 +uid 121,0 +) +*36 (MRCItem +litem &17 +pos 5 +dimension 20 +uid 123,0 +) +*37 (MRCItem +litem &18 +pos 9 +dimension 20 +uid 125,0 +) +*38 (MRCItem +litem &19 +pos 0 +dimension 20 +uid 127,0 +) +*39 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 129,0 +) +*40 (MRCItem +litem &21 +pos 10 +dimension 20 +uid 131,0 +) +*41 (MRCItem +litem &22 +pos 1 +dimension 20 +uid 133,0 +) +*42 (MRCItem +litem &23 +pos 7 +dimension 20 +uid 135,0 +) +*43 (MRCItem +litem &24 +pos 11 +dimension 20 +uid 137,0 +) +*44 (MRCItem +litem &25 +pos 12 +dimension 20 +uid 139,0 +) +*45 (MRCItem +litem &26 +pos 2 +dimension 20 +uid 141,0 +) +*46 (MRCItem +litem &27 +pos 13 +dimension 20 +uid 338,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 163,0 +optionalChildren [ +*47 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 164,0 +) +*48 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 165,0 +) +*49 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 166,0 +) +*50 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 167,0 +) +*51 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 168,0 +) +*52 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 169,0 +) +*53 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 170,0 +) +*54 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 171,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 158,0 +vaOverrides [ +] +) +] +) +uid 143,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *55 (LEmptyRow +) +uid 173,0 +optionalChildren [ +*56 (RefLabelRowHdr +) +*57 (TitleRowHdr +) +*58 (FilterRowHdr +) +*59 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*60 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*61 (GroupColHdr +tm "GroupColHdrMgr" +) +*62 (NameColHdr +tm "GenericNameColHdrMgr" +) +*63 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*64 (InitColHdr +tm "GenericValueColHdrMgr" +) +*65 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*66 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 185,0 +optionalChildren [ +*67 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *68 (MRCItem +litem &55 +pos 0 +dimension 20 +) +uid 187,0 +optionalChildren [ +*69 (MRCItem +litem &56 +pos 0 +dimension 20 +uid 188,0 +) +*70 (MRCItem +litem &57 +pos 1 +dimension 23 +uid 189,0 +) +*71 (MRCItem +litem &58 +pos 2 +hidden 1 +dimension 20 +uid 190,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 191,0 +optionalChildren [ +*72 (MRCItem +litem &59 +pos 0 +dimension 20 +uid 192,0 +) +*73 (MRCItem +litem &61 +pos 1 +dimension 50 +uid 193,0 +) +*74 (MRCItem +litem &62 +pos 2 +dimension 100 +uid 194,0 +) +*75 (MRCItem +litem &63 +pos 3 +dimension 100 +uid 195,0 +) +*76 (MRCItem +litem &64 +pos 4 +dimension 50 +uid 196,0 +) +*77 (MRCItem +litem &65 +pos 5 +dimension 50 +uid 197,0 +) +*78 (MRCItem +litem &66 +pos 6 +dimension 80 +uid 198,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 186,0 +vaOverrides [ +] +) +] +) +uid 172,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m" +) +(vvPair +variable "d_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mainFSM" +) +(vvPair +variable "date" +value "18.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "18" +) +(vvPair +variable "entity_name" +value "mainFSM" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "18.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE2332101" +) +(vvPair +variable "graphical_source_time" +value "09:29:07" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2332101" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "mainFSM" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\main@f@s@m\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mainFSM\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "09:29:07" +) +(vvPair +variable "unit" +value "mainFSM" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 142,0 +optionalChildren [ +*79 (SymbolBody +uid 8,0 +optionalChildren [ +*80 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,22625,25750,23375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "19200,22300,24000,23700" +st "adrSrc" +ju 2 +blo "24000,23500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9600,61500,10400" +st "adrSrc : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "adrSrc" +t "std_uLogic" +o 10 +suid 1,0 +) +) +) +*81 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "16625,26000,17375,26750" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "16300,20000,17700,25000" +st "ALUOp" +blo "17500,25000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,71500,6400" +st "ALUOp : OUT std_ulogic_vector (1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 5 +suid 2,0 +) +) +) +*82 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,20625,25750,21375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "18100,20300,24000,21700" +st "ALUSrcA" +ju 2 +blo "24000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,71500,7200" +st "ALUSrcA : OUT std_ulogic_vector (1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcA" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +) +*83 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,18625,25750,19375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,12,0" +) +xt "18100,18300,24000,19700" +st "ALUSrcB" +ju 2 +blo "24000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,71500,8000" +st "ALUSrcB : OUT std_ulogic_vector (1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrcB" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*84 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,6625,25750,7375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,12,0" +) +xt "18900,6300,24000,7700" +st "branch" +ju 2 +blo "24000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10400,61500,11200" +st "branch : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 11 +suid 5,0 +) +) +) +*85 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "11250,20625,12000,21375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "Verdana,12,0" +) +xt "13000,20300,15400,21700" +st "clk" +blo "13000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,61500,3200" +st "clk : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 6,0 +) +) +) +*86 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,14625,25750,15375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +font "Verdana,12,0" +) +xt "18500,14300,24000,15700" +st "IRWrite" +ju 2 +blo "24000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,61500,8800" +st "IRWrite : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "IRWrite" +t "std_ulogic" +o 8 +suid 7,0 +) +) +) +*87 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,12625,25750,13375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +font "Verdana,12,0" +) +xt "16800,12300,24000,13700" +st "memWrite" +ju 2 +blo "24000,13500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11200,61500,12000" +st "memWrite : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 12 +suid 8,0 +) +) +) +*88 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "11250,9625,12000,10375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +font "Verdana,12,0" +) +xt "13000,9300,15400,10700" +st "op" +blo "13000,10500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,71500,4800" +st "op : IN std_ulogic_vector (6 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*89 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,8625,25750,9375" +) +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 99,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,8300,24000,9700" +st "PCupdate" +ju 2 +blo "24000,9500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,61500,9600" +st "PCupdate : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "PCupdate" +t "std_uLogic" +o 9 +suid 10,0 +) +) +) +*90 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,10625,25750,11375" +) +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 104,0 +va (VaSet +font "Verdana,12,0" +) +xt "17900,10300,24000,11700" +st "regwrite" +ju 2 +blo "24000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12000,61500,12800" +st "regwrite : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 13 +suid 11,0 +) +) +) +*91 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25000,16625,25750,17375" +) +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 109,0 +va (VaSet +font "Verdana,12,0" +) +xt "17700,16300,24000,17700" +st "resultSrc" +ju 2 +blo "24000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12800,70500,13600" +st "resultSrc : OUT std_ulogic_vector (1 DOWNTO 0) +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 14 +suid 12,0 +) +) +) +*92 (CptPort +uid 111,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 112,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "11250,22625,12000,23375" +) +tg (CPTG +uid 113,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 114,0 +va (VaSet +font "Verdana,12,0" +) +xt "13000,22300,15500,23700" +st "rst" +blo "13000,23500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 115,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61500,5600" +st "rst : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 13,0 +) +) +) +*93 (CptPort +uid 339,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 340,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "11250,18625,12000,19375" +) +tg (CPTG +uid 341,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 342,0 +va (VaSet +font "Verdana,12,0" +) +xt "13000,18300,15400,19700" +st "en" +blo "13000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 343,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61500,4000" +st "en : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 2 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "12000,6000,25000,26000" +) +oxt "15000,6000,23000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "14500,800,19500,2000" +st "HEIRV32" +blo "14500,1800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "14500,2000,19500,3200" +st "mainFSM" +blo "14500,3000" +) +) +gi *94 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "14000,4200,25500,5000" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*95 (Grouping +uid 16,0 +optionalChildren [ +*96 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*104 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*105 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,46900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *106 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*108 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1017,690" +viewArea "-11900,-400,33862,29064" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *109 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *110 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,13600,45200,14800" +st "User:" +blo "42000,14600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,14800,44000,14800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 366,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hdl/dataMemory_rtl.vhd b/Libs/RiscV/HEIRV32/SingleCycle/hdl/dataMemory_rtl.vhd new file mode 100644 index 0000000..7db5dc7 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hdl/dataMemory_rtl.vhd @@ -0,0 +1,32 @@ + +ARCHITECTURE rtl OF dataMemory IS + + -- Bank of data + type t_dataBank is array (0 to (2**g_memoryNbBits)-1) of + std_ulogic_vector(g_dataWidth-1 downto 0); + -- A bank of data + signal larr_data: t_dataBank; + +BEGIN + + process(rst, clk) + begin + if rst = '1' then + larr_data <= (others => (others => '0')) after g_tMemWr; + elsif rising_edge(clk) then + if en = '1' and writeEn = '1' then + -- skip the two last bits (since we do only +4) + larr_data(to_integer(unsigned( + address(g_memoryNbBits+1 downto 2) + ))) <= writeData after (g_tMemWr + g_tSetup); + end if; + end if; + end process; + + -- Comb. read + -- skip the two last bits (since we do only +4) + readData <= larr_data(to_integer(unsigned( + address(g_memoryNbBits+1 downto 2) + ))) after g_tMemRd; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_bin.vhd b/Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_bin.vhd new file mode 100644 index 0000000..be4dcc9 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_bin.vhd @@ -0,0 +1,34 @@ +USE std.textio.all; + +ARCHITECTURE bin OF instrMemory IS + + -- Instructions type + type t_instrBank is array (g_memoryNbBits-1 downto 0) of + std_ulogic_vector(g_dataWidth-1 downto 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return t_instrBank is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : t_instrBank; + begin + for i in t_instrBank'range loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Program + constant larr_instr : t_instrBank := ReadRamContentFromFile(g_programFile); + +BEGIN + + -- Comb. read + process(PC) + begin + -- skip the two last bits (since we do only +4) + instruction <= larr_instr(to_integer(PC(g_memoryNbBits+1 downto 2))); + end process; + +END ARCHITECTURE bin; diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_hex.vhd b/Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_hex.vhd new file mode 100644 index 0000000..269f7fe --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hdl/instrMemory_hex.vhd @@ -0,0 +1,36 @@ +library ieee; + use std.textio.all; + use ieee.std_logic_textio.all; + +ARCHITECTURE hex OF instrMemory IS + + -- Instructions type + type t_instrBank is array (0 to (2**g_memoryNbBits)-1) of + std_ulogic_vector(g_dataWidth-1 downto 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return t_instrBank is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : t_instrBank; + begin + for i in t_instrBank'range loop + readline(ramContentFile, ramContentFileLine); + HREAD(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Program + constant larr_instr : t_instrBank := ReadRamContentFromFile(g_programFile); + +BEGIN + + -- Comb. read + process(PC) + begin + -- skip the two last bits (since we do only +4) + instruction <= larr_instr(to_integer(PC(g_memoryNbBits+1 downto 2))) after g_tMemRd; + end process; + +END ARCHITECTURE hex; diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hdl/mainDecoder_rtl.vhd b/Libs/RiscV/HEIRV32/SingleCycle/hdl/mainDecoder_rtl.vhd new file mode 100644 index 0000000..36ca583 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hdl/mainDecoder_rtl.vhd @@ -0,0 +1,24 @@ + +ARCHITECTURE rtl OF mainDecoder IS + + signal lvec_controls : std_ulogic_vector(10 downto 0); + +BEGIN + + process(op) + begin + case op is + when "0000011" => lvec_controls <= "10010010000"; -- lw + when "0100011" => lvec_controls <= "00111000000"; -- sw + when "0110011" => lvec_controls <= "1--00000100"; -- R-type + when "1100011" => lvec_controls <= "01000001010"; -- beq + when "0010011" => lvec_controls <= "10010000100"; -- I-type ALU + when "1101111" => lvec_controls <= "11100100001"; -- jal + when others => lvec_controls <= "-----------"; -- not valid + end case; + end process; + + (regwrite, immSrc(1), immSrc(0), ALUSrc, memWrite, resultSrc(1), resultSrc(0), + branch, ALUOp(1), ALUOp(0), jump) <= lvec_controls after g_tDec; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_controlunit_masterversion.vhg._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_controlunit_masterversion.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_controlunit_masterversion.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_dataMemory_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_dataMemory_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_dataMemory_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_bin.vhd._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_bin.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_bin.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_hex.vhd._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_hex.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_hex.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_instrMemory_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_mainDecoder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_mainDecoder_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_mainDecoder_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_rtl_instrMemory.vhd._fpf b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_rtl_instrMemory.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/.hdlsidedata/_rtl_instrMemory.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/_bin._epf b/Libs/RiscV/HEIRV32/SingleCycle/hds/_bin._epf new file mode 100644 index 0000000..d9dd11a --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/_bin._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom rtl_instrMemory.vhd +DEFAULT_ARCHITECTURE atom instrMemory diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/_controlunit._epf b/Libs/RiscV/HEIRV32/SingleCycle/hds/_controlunit._epf new file mode 100644 index 0000000..81ce754 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/_controlunit._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom masterVersion +DEFAULT_FILE atom control@unit/master@version.bd diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/_datamemory._epf b/Libs/RiscV/HEIRV32/SingleCycle/hds/_datamemory._epf new file mode 100644 index 0000000..c6adbf3 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/_datamemory._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom dataMemory_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/_heirv32_sc._epf b/Libs/RiscV/HEIRV32/SingleCycle/hds/_heirv32_sc._epf new file mode 100644 index 0000000..fda94d1 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/_heirv32_sc._epf @@ -0,0 +1,3 @@ +TOP_MARKER atom 1 +DEFAULT_FILE atom heirv32_sc/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/_instrmemory._epf b/Libs/RiscV/HEIRV32/SingleCycle/hds/_instrmemory._epf new file mode 100644 index 0000000..66e01ad --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/_instrmemory._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom hex +DEFAULT_FILE atom instrMemory_hex.vhd diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/_maindecoder._epf b/Libs/RiscV/HEIRV32/SingleCycle/hds/_maindecoder._epf new file mode 100644 index 0000000..64bd71c --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/_maindecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom mainDecoder_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/bin/interface b/Libs/RiscV/HEIRV32/SingleCycle/hds/bin/interface new file mode 100644 index 0000000..d645f6c --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/bin/interface @@ -0,0 +1,1329 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 1,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 60,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 32 +suid 1,0 +) +) +uid 56,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 73,0 +optionalChildren [ +*15 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *16 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 75,0 +optionalChildren [ +*17 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 76,0 +) +*18 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 77,0 +) +*19 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 78,0 +) +*20 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 57,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 79,0 +optionalChildren [ +*21 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 80,0 +) +*22 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 81,0 +) +*23 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 82,0 +) +*24 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 83,0 +) +*25 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 84,0 +) +*26 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 85,0 +) +*27 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 86,0 +) +*28 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 87,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 74,0 +vaOverrides [ +] +) +] +) +uid 59,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *29 (LEmptyRow +) +uid 89,0 +optionalChildren [ +*30 (RefLabelRowHdr +) +*31 (TitleRowHdr +) +*32 (FilterRowHdr +) +*33 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*34 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*35 (GroupColHdr +tm "GroupColHdrMgr" +) +*36 (NameColHdr +tm "GenericNameColHdrMgr" +) +*37 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*38 (InitColHdr +tm "GenericValueColHdrMgr" +) +*39 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*40 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*41 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *42 (MRCItem +litem &29 +pos 3 +dimension 20 +) +uid 103,0 +optionalChildren [ +*43 (MRCItem +litem &30 +pos 0 +dimension 20 +uid 104,0 +) +*44 (MRCItem +litem &31 +pos 1 +dimension 23 +uid 105,0 +) +*45 (MRCItem +litem &32 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*46 (MRCItem +litem &33 +pos 0 +dimension 20 +uid 108,0 +) +*47 (MRCItem +litem &35 +pos 1 +dimension 50 +uid 109,0 +) +*48 (MRCItem +litem &36 +pos 2 +dimension 100 +uid 110,0 +) +*49 (MRCItem +litem &37 +pos 3 +dimension 100 +uid 111,0 +) +*50 (MRCItem +litem &38 +pos 4 +dimension 50 +uid 112,0 +) +*51 (MRCItem +litem &39 +pos 5 +dimension 50 +uid 113,0 +) +*52 (MRCItem +litem &40 +pos 6 +dimension 80 +uid 114,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 88,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\rtl\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\rtl\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\rtl" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\rtl" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "rtl" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "13:14:50" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "rtl" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\rtl\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\rtl\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "13:14:50" +) +(vvPair +variable "unit" +value "rtl" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 58,0 +optionalChildren [ +*53 (SymbolBody +uid 8,0 +optionalChildren [ +*54 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,10300,18500,11700" +st "PC" +blo "16000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,67500,3200" +st "PC : IN unsigned (g_bitNb - 1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 32 +suid 1,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,23000,16000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "15300,9800,22700,11000" +st "HEIRV32_SC" +blo "15300,10800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "15300,11000,17100,12200" +st "rtl" +blo "15300,12000" +) +) +gi *55 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "-10500,7000,1000,7800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*56 (Grouping +uid 16,0 +optionalChildren [ +*57 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*64 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*65 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,46100,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *67 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*69 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_SC" +entityName "heirv32_sc" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *70 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *71 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,3200,45200,4400" +st "User:" +blo "42000,4200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,44000,4400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 114,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/master@version.bd b/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/master@version.bd new file mode 100644 index 0000000..62e6ff5 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/master@version.bd @@ -0,0 +1,4969 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +instances [ +(Instance +name "U_1" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +] +mwi 0 +uid 645,0 +) +(Instance +name "U_0" +duLibraryName "gates" +duName "or2" +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +] +mwi 0 +uid 667,0 +) +(Instance +name "U_mainDecoder" +duLibraryName "HEIRV32_SC" +duName "mainDecoder" +elements [ +(GiElement +name "g_tDec" +type "time" +value "g_tDec" +) +] +mwi 0 +uid 1321,0 +) +(Instance +name "U_aluDecoder" +duLibraryName "HEIRV32" +duName "aluDecoder" +elements [ +(GiElement +name "g_tDec" +type "time" +value "g_tDec" +) +] +mwi 0 +uid 1351,0 +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\master@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\master@version.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "masterVersion" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\controlUnit" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "controlUnit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "master@version.bd" +) +(vvPair +variable "f_logical" +value "masterVersion.bd" +) +(vvPair +variable "f_noext" +value "master@version" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:25:12" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "controlUnit" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\master@version.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\controlUnit\\masterVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "master@version" +) +(vvPair +variable "this_file_logical" +value "masterVersion" +) +(vvPair +variable "time" +value "11:25:12" +) +(vvPair +variable "unit" +value "controlUnit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "masterVersion" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 276,0 +optionalChildren [ +*1 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "40500,41625,42000,42375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "40000,42000,40500,42000" +pts [ +"40000,42000" +"40500,42000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +) +xt "43000,41400,47600,42600" +st "ALUSrc" +blo "43000,42400" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 35,0 +lang 11 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,35000,7200" +st "ALUSrc : std_uLogic" +) +) +*3 (PortIoOut +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "40500,43625,42000,44375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "40000,44000,40500,44000" +pts [ +"40000,44000" +"40500,44000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +) +xt "43000,43400,47500,44600" +st "immSrc" +blo "43000,44400" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 105,0 +lang 11 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,45000,8800" +st "immSrc : std_ulogic_vector(1 DOWNTO 0)" +) +) +*5 (PortIoOut +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "40500,39625,42000,40375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "40000,40000,40500,40000" +pts [ +"40000,40000" +"40500,40000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "43000,39400,48700,40600" +st "memWrite" +blo "43000,40400" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 119,0 +lang 11 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8800,35000,9600" +st "memWrite : std_ulogic" +) +) +*7 (PortIoOut +uid 135,0 +shape (CompositeShape +uid 136,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 137,0 +sl 0 +ro 270 +xt "56500,30625,58000,31375" +) +(Line +uid 138,0 +sl 0 +ro 270 +xt "56000,31000,56500,31000" +pts [ +"56000,31000" +"56500,31000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 139,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 140,0 +va (VaSet +) +xt "59000,30400,62900,31600" +st "PCSrc" +blo "59000,31400" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 147,0 +lang 11 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 10,0 +) +declText (MLText +uid 148,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,7200,35000,8000" +st "PCSrc : std_uLogic" +) +) +*9 (PortIoOut +uid 149,0 +shape (CompositeShape +uid 150,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 151,0 +sl 0 +ro 270 +xt "40500,45625,42000,46375" +) +(Line +uid 152,0 +sl 0 +ro 270 +xt "40000,46000,40500,46000" +pts [ +"40000,46000" +"40500,46000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 153,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 154,0 +va (VaSet +) +xt "43000,45400,47700,46600" +st "regwrite" +blo "43000,46400" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 161,0 +lang 11 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 11,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,9600,35000,10400" +st "regwrite : std_ulogic" +) +) +*11 (PortIoOut +uid 163,0 +shape (CompositeShape +uid 164,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 165,0 +sl 0 +ro 270 +xt "40500,37625,42000,38375" +) +(Line +uid 166,0 +sl 0 +ro 270 +xt "40000,38000,40500,38000" +pts [ +"40000,38000" +"40500,38000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 167,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 168,0 +va (VaSet +) +xt "43000,37400,48300,38600" +st "resultSrc" +blo "43000,38400" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 175,0 +lang 11 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 11 +suid 12,0 +) +declText (MLText +uid 176,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,10400,45000,11200" +st "resultSrc : std_ulogic_vector(1 downto 0)" +) +) +*13 (Grouping +uid 233,0 +optionalChildren [ +*14 (CommentText +uid 235,0 +shape (Rectangle +uid 236,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,4000,70000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 237,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,4000,64700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*15 (CommentText +uid 238,0 +shape (Rectangle +uid 239,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,0,74000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 240,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "70200,0,73200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*16 (CommentText +uid 241,0 +shape (Rectangle +uid 242,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,2000,70000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 243,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,2000,63200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*17 (CommentText +uid 244,0 +shape (Rectangle +uid 245,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,2000,53000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 246,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,2000,51300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*18 (CommentText +uid 247,0 +shape (Rectangle +uid 248,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,1000,90000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 249,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "70200,1200,79600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*19 (CommentText +uid 250,0 +shape (Rectangle +uid 251,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,0,90000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 252,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "74200,0,75800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*20 (CommentText +uid 253,0 +shape (Rectangle +uid 254,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,0,70000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 255,0 +va (VaSet +fg "32768,0,0" +) +xt "54350,400,64650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*21 (CommentText +uid 256,0 +shape (Rectangle +uid 257,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,3000,53000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 258,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,3000,51300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*22 (CommentText +uid 259,0 +shape (Rectangle +uid 260,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,4000,53000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 261,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,4000,51900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*23 (CommentText +uid 262,0 +shape (Rectangle +uid 263,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,3000,70000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 264,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,3000,68200,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 234,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "49000,0,90000,5000" +) +oxt "14000,66000,55000,71000" +) +*24 (PortIoIn +uid 435,0 +shape (CompositeShape +uid 436,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 437,0 +sl 0 +ro 270 +xt "4000,35625,5500,36375" +) +(Line +uid 438,0 +sl 0 +ro 270 +xt "5500,36000,6000,36000" +pts [ +"5500,36000" +"6000,36000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 439,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 440,0 +va (VaSet +) +xt "1100,35400,3000,36600" +st "op" +ju 2 +blo "3000,36400" +tm "WireNameMgr" +) +) +) +*25 (PortIoIn +uid 441,0 +shape (CompositeShape +uid 442,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 443,0 +sl 0 +ro 270 +xt "10000,59625,11500,60375" +) +(Line +uid 444,0 +sl 0 +ro 270 +xt "11500,60000,12000,60000" +pts [ +"11500,60000" +"12000,60000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 445,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 446,0 +va (VaSet +) +xt "5100,59400,9000,60600" +st "funct3" +ju 2 +blo "9000,60400" +tm "WireNameMgr" +) +) +) +*26 (PortIoIn +uid 447,0 +shape (CompositeShape +uid 448,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 449,0 +sl 0 +ro 270 +xt "10000,61625,11500,62375" +) +(Line +uid 450,0 +sl 0 +ro 270 +xt "11500,62000,12000,62000" +pts [ +"11500,62000" +"12000,62000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 451,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 452,0 +va (VaSet +) +xt "5100,61400,9000,62600" +st "funct7" +ju 2 +blo "9000,62400" +tm "WireNameMgr" +) +) +) +*27 (PortIoIn +uid 465,0 +shape (CompositeShape +uid 466,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 467,0 +sl 0 +ro 270 +xt "4000,26625,5500,27375" +) +(Line +uid 468,0 +sl 0 +ro 270 +xt "5500,27000,6000,27000" +pts [ +"5500,27000" +"6000,27000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 469,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 470,0 +va (VaSet +) +xt "200,26400,3000,27600" +st "zero" +ju 2 +blo "3000,27400" +tm "WireNameMgr" +) +) +) +*28 (PortIoOut +uid 609,0 +shape (CompositeShape +uid 610,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 611,0 +sl 0 +ro 270 +xt "33500,60625,35000,61375" +) +(Line +uid 612,0 +sl 0 +ro 270 +xt "33000,61000,33500,61000" +pts [ +"33000,61000" +"33500,61000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 613,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 614,0 +va (VaSet +) +xt "36000,60400,43300,61600" +st "ALUControl" +blo "36000,61400" +tm "WireNameMgr" +) +) +) +*29 (SaComponent +uid 645,0 +optionalChildren [ +*30 (CptPort +uid 655,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 656,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "35250,26625,36000,27375" +) +tg (CPTG +uid 657,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 658,0 +va (VaSet +isHidden 1 +) +xt "36000,26600,45500,27800" +st "in1 : std_uLogic" +blo "36000,27600" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*31 (CptPort +uid 659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 660,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "35250,30625,36000,31375" +) +tg (CPTG +uid 661,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 662,0 +va (VaSet +isHidden 1 +) +xt "36000,30600,45500,31800" +st "in2 : std_uLogic" +blo "36000,31600" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*32 (CptPort +uid 663,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 664,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42950,28625,43700,29375" +) +tg (CPTG +uid 665,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 666,0 +va (VaSet +isHidden 1 +) +xt "32800,28550,43000,29750" +st "out1 : std_uLogic" +ju 2 +blo "43000,29550" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (And +uid 646,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,26000,43000,32000" +) +showPorts 0 +oxt "31000,13000,38000,19000" +ttg (MlTextGroup +uid 647,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 648,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "36600,31700,39700,32700" +st "gates" +blo "36600,32500" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 649,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "36600,32700,39500,33700" +st "and2" +blo "36600,33500" +tm "CptNameMgr" +) +*35 (Text +uid 650,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "36600,32700,39100,33700" +st "U_1" +blo "36600,33500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 651,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 652,0 +text (MLText +uid 653,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "36000,35600,47700,36600" +st "delay = 0 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +] +) +viewicon (ZoomableIcon +uid 654,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "36250,30250,37750,31750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*36 (SaComponent +uid 667,0 +optionalChildren [ +*37 (CptPort +uid 677,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 678,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44585,28625,45335,29375" +) +tg (CPTG +uid 679,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 680,0 +va (VaSet +isHidden 1 +) +xt "45557,28250,47857,29450" +st "in1" +blo "45557,29250" +) +s (Text +uid 681,0 +va (VaSet +isHidden 1 +) +xt "45557,29450,45557,29450" +blo "45557,29450" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*38 (CptPort +uid 682,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 683,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44584,32625,45334,33375" +) +tg (CPTG +uid 684,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 685,0 +va (VaSet +isHidden 1 +) +xt "45557,32250,47857,33450" +st "in2" +blo "45557,33250" +) +s (Text +uid 686,0 +va (VaSet +isHidden 1 +) +xt "45557,33450,45557,33450" +blo "45557,33450" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*39 (CptPort +uid 687,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 688,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "52000,30625,52750,31375" +) +tg (CPTG +uid 689,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 690,0 +va (VaSet +isHidden 1 +) +xt "48000,30250,51000,31450" +st "out1" +ju 2 +blo "51000,31250" +) +s (Text +uid 691,0 +va (VaSet +isHidden 1 +) +xt "51000,31450,51000,31450" +ju 2 +blo "51000,31450" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (Or +uid 668,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,28000,52000,34000" +) +showPorts 0 +oxt "35000,14000,42000,20000" +ttg (MlTextGroup +uid 669,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 670,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "45600,33700,48700,34700" +st "gates" +blo "45600,34500" +tm "BdLibraryNameMgr" +) +*41 (Text +uid 671,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "45600,34700,47800,35700" +st "or2" +blo "45600,35500" +tm "CptNameMgr" +) +*42 (Text +uid 672,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "45600,34700,48100,35700" +st "U_0" +blo "45600,35500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 673,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 674,0 +text (MLText +uid 675,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "45000,36600,56700,37600" +st "delay = 0 ps ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +] +) +viewicon (ZoomableIcon +uid 676,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "45250,32250,46750,33750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*43 (Net +uid 827,0 +decl (Decl +n "branch" +t "std_uLogic" +o 13 +suid 31,0 +) +declText (MLText +uid 828,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,13200,38500,14000" +st "SIGNAL branch : std_uLogic" +) +) +*44 (Net +uid 833,0 +decl (Decl +n "out1" +t "std_uLogic" +o 15 +suid 34,0 +) +declText (MLText +uid 834,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,14800,38500,15600" +st "SIGNAL out1 : std_uLogic" +) +) +*45 (Net +uid 835,0 +lang 11 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 12 +suid 35,0 +) +declText (MLText +uid 836,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,12400,48500,13200" +st "SIGNAL ALUOp : std_ulogic_vector(1 DOWNTO 0)" +) +) +*46 (Net +uid 837,0 +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 36,0 +) +declText (MLText +uid 838,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4800,35000,5600" +st "zero : std_ulogic" +) +) +*47 (Net +uid 839,0 +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 37,0 +) +declText (MLText +uid 840,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4000,45000,4800" +st "op : std_ulogic_vector(6 DOWNTO 0)" +) +) +*48 (Net +uid 847,0 +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 41,0 +) +declText (MLText +uid 848,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,2400,45000,3200" +st "funct3 : std_ulogic_vector(2 DOWNTO 0)" +) +) +*49 (Net +uid 849,0 +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 42,0 +) +declText (MLText +uid 850,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3200,35000,4000" +st "funct7 : std_ulogic" +) +) +*50 (Net +uid 851,0 +lang 11 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 43,0 +) +declText (MLText +uid 852,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,45000,6400" +st "ALUControl : std_ulogic_vector(2 DOWNTO 0)" +) +) +*51 (Net +uid 883,0 +decl (Decl +n "jump" +t "std_uLogic" +o 14 +suid 44,0 +) +declText (MLText +uid 884,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,14000,38500,14800" +st "SIGNAL jump : std_uLogic" +) +) +*52 (SaComponent +uid 1321,0 +optionalChildren [ +*53 (CptPort +uid 1285,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1286,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20625,50000,21375,50750" +) +tg (CPTG +uid 1287,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1288,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "20300,44000,21700,49000" +st "ALUOp" +blo "21500,49000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 12 +suid 1,0 +) +) +) +*54 (CptPort +uid 1289,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1290,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,41625,30750,42375" +) +tg (CPTG +uid 1291,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1292,0 +va (VaSet +font "Verdana,12,0" +) +xt "23900,41300,29000,42700" +st "ALUSrc" +ju 2 +blo "29000,42500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +) +*55 (CptPort +uid 1293,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1294,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,32625,30750,33375" +) +tg (CPTG +uid 1295,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1296,0 +va (VaSet +font "Verdana,12,0" +) +xt "23900,32300,29000,33700" +st "branch" +ju 2 +blo "29000,33500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 13 +suid 3,0 +) +) +) +*56 (CptPort +uid 1297,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1298,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,43625,30750,44375" +) +tg (CPTG +uid 1299,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1300,0 +va (VaSet +font "Verdana,12,0" +) +xt "23800,43300,29000,44700" +st "immSrc" +ju 2 +blo "29000,44500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +) +*57 (CptPort +uid 1301,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1302,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,34625,30750,35375" +) +tg (CPTG +uid 1303,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1304,0 +va (VaSet +font "Verdana,12,0" +) +xt "25100,34300,29000,35700" +st "jump" +ju 2 +blo "29000,35500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "jump" +t "std_uLogic" +o 14 +suid 5,0 +) +) +) +*58 (CptPort +uid 1305,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1306,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,39625,30750,40375" +) +tg (CPTG +uid 1307,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1308,0 +va (VaSet +font "Verdana,12,0" +) +xt "21800,39300,29000,40700" +st "memWrite" +ju 2 +blo "29000,40500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 6,0 +) +) +) +*59 (CptPort +uid 1309,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1310,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,35625,15000,36375" +) +tg (CPTG +uid 1311,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1312,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,35300,18400,36700" +st "op" +blo "16000,36500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 7,0 +) +) +) +*60 (CptPort +uid 1313,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1314,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,45625,30750,46375" +) +tg (CPTG +uid 1315,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1316,0 +va (VaSet +font "Verdana,12,0" +) +xt "22900,45300,29000,46700" +st "regwrite" +ju 2 +blo "29000,46500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 8,0 +) +) +) +*61 (CptPort +uid 1317,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1318,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,37625,30750,38375" +) +tg (CPTG +uid 1319,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1320,0 +va (VaSet +font "Verdana,12,0" +) +xt "22700,37300,29000,38700" +st "resultSrc" +ju 2 +blo "29000,38500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 1322,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,31000,30000,50000" +) +oxt "15000,6000,30000,25000" +ttg (MlTextGroup +uid 1323,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 1324,0 +va (VaSet +font "Verdana,9,1" +) +xt "28700,50300,36100,51500" +st "HEIRV32_SC" +blo "28700,51300" +tm "BdLibraryNameMgr" +) +*63 (Text +uid 1325,0 +va (VaSet +font "Verdana,9,1" +) +xt "28700,51500,36300,52700" +st "mainDecoder" +blo "28700,52500" +tm "CptNameMgr" +) +*64 (Text +uid 1326,0 +va (VaSet +font "Verdana,9,1" +) +xt "28700,52700,37600,53900" +st "U_mainDecoder" +blo "28700,53700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1327,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1328,0 +text (MLText +uid 1329,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "29000,55200,45000,56000" +st "g_tDec = g_tDec ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "g_tDec" +) +] +) +viewicon (ZoomableIcon +uid 1330,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "15250,48250,16750,49750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*65 (SaComponent +uid 1351,0 +optionalChildren [ +*66 (CptPort +uid 1331,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1332,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,60625,30750,61375" +) +tg (CPTG +uid 1333,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1334,0 +va (VaSet +font "Verdana,12,0" +) +xt "20400,60300,29000,61700" +st "ALUControl" +ju 2 +blo "29000,61500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 1,0 +) +) +) +*67 (CptPort +uid 1335,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1336,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20625,55250,21375,56000" +) +tg (CPTG +uid 1337,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1338,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "20300,57000,21700,62000" +st "ALUOp" +ju 2 +blo "21500,57000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 20 +suid 2,0 +) +) +) +*68 (CptPort +uid 1339,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1340,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "13250,59625,14000,60375" +) +tg (CPTG +uid 1341,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1342,0 +va (VaSet +font "Verdana,12,0" +) +xt "15000,59300,19700,60700" +st "funct3" +blo "15000,60500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 2 +suid 3,0 +) +) +) +*69 (CptPort +uid 1343,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1344,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "13250,61625,14000,62375" +) +tg (CPTG +uid 1345,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1346,0 +va (VaSet +font "Verdana,12,0" +) +xt "15000,61300,19700,62700" +st "funct7" +blo "15000,62500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*70 (CptPort +uid 1347,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1348,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "13250,57625,14000,58375" +) +tg (CPTG +uid 1349,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1350,0 +va (VaSet +font "Verdana,12,0" +) +xt "15000,57300,17400,58700" +st "op" +blo "15000,58500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 1352,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "14000,56000,30000,65000" +) +oxt "20000,12000,36000,21000" +ttg (MlTextGroup +uid 1353,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*71 (Text +uid 1354,0 +va (VaSet +font "Verdana,9,1" +) +xt "30650,62800,35650,64000" +st "HEIRV32" +blo "30650,63800" +tm "BdLibraryNameMgr" +) +*72 (Text +uid 1355,0 +va (VaSet +font "Verdana,9,1" +) +xt "30650,64000,37350,65200" +st "aluDecoder" +blo "30650,65000" +tm "CptNameMgr" +) +*73 (Text +uid 1356,0 +va (VaSet +font "Verdana,9,1" +) +xt "30650,65200,38650,66400" +st "U_aluDecoder" +blo "30650,66200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1357,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1358,0 +text (MLText +uid 1359,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "31000,66200,47000,67000" +st "g_tDec = g_tDec ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "g_tDec" +) +] +) +viewicon (ZoomableIcon +uid 1360,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "14250,63250,15750,64750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*74 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "30750,42000,40000,42000" +pts [ +"40000,42000" +"30750,42000" +] +) +start &1 +end &54 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +isHidden 1 +) +xt "39000,40800,43600,42000" +st "ALUSrc" +blo "39000,41800" +tm "WireNameMgr" +) +) +on &2 +) +*75 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30750,44000,40000,44000" +pts [ +"40000,44000" +"30750,44000" +] +) +start &3 +end &56 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +isHidden 1 +) +xt "39000,42800,47800,44000" +st "immSrc : (1:0)" +blo "39000,43800" +tm "WireNameMgr" +) +) +on &4 +) +*76 (Wire +uid 113,0 +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +) +xt "30750,40000,40000,40000" +pts [ +"40000,40000" +"30750,40000" +] +) +start &5 +end &58 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +isHidden 1 +) +xt "39000,38800,44700,40000" +st "memWrite" +blo "39000,39800" +tm "WireNameMgr" +) +) +on &6 +) +*77 (Wire +uid 141,0 +shape (OrthoPolyLine +uid 142,0 +va (VaSet +vasetType 3 +) +xt "52000,31000,56000,31000" +pts [ +"56000,31000" +"52000,31000" +] +) +start &7 +end &39 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 145,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 146,0 +va (VaSet +isHidden 1 +) +xt "55000,29800,58900,31000" +st "PCSrc" +blo "55000,30800" +tm "WireNameMgr" +) +) +on &8 +) +*78 (Wire +uid 155,0 +shape (OrthoPolyLine +uid 156,0 +va (VaSet +vasetType 3 +) +xt "30750,46000,40000,46000" +pts [ +"40000,46000" +"30750,46000" +] +) +start &9 +end &60 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 159,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 160,0 +va (VaSet +isHidden 1 +) +xt "39000,44800,43700,46000" +st "regwrite" +blo "39000,45800" +tm "WireNameMgr" +) +) +on &10 +) +*79 (Wire +uid 169,0 +shape (OrthoPolyLine +uid 170,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30750,38000,40000,38000" +pts [ +"40000,38000" +"30750,38000" +] +) +start &11 +end &61 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 173,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 174,0 +va (VaSet +isHidden 1 +) +xt "39000,36800,48600,38000" +st "resultSrc : (1:0)" +blo "39000,37800" +tm "WireNameMgr" +) +) +on &12 +) +*80 (Wire +uid 698,0 +optionalChildren [ +*81 (Ripper +uid 702,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"8000,36000" +"7000,37000" +] +uid 703,0 +va (VaSet +vasetType 3 +) +xt "7000,36000,8000,37000" +) +) +] +shape (OrthoPolyLine +uid 699,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "6000,36000,14250,36000" +pts [ +"6000,36000" +"14250,36000" +] +) +start &24 +end &59 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 700,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 701,0 +va (VaSet +isHidden 1 +) +xt "7000,34800,13200,36000" +st "op : (6:0)" +blo "7000,35800" +tm "WireNameMgr" +) +) +on &47 +) +*82 (Wire +uid 704,0 +shape (OrthoPolyLine +uid 705,0 +va (VaSet +vasetType 3 +) +xt "7000,37000,13250,58000" +pts [ +"7000,37000" +"7000,58000" +"13250,58000" +] +) +start &81 +end &70 +sat 32 +eat 32 +sl "(5)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 706,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 707,0 +va (VaSet +) +xt "9000,56800,12400,58000" +st "op(5)" +blo "9000,57800" +tm "WireNameMgr" +) +) +on &47 +) +*83 (Wire +uid 732,0 +shape (OrthoPolyLine +uid 733,0 +va (VaSet +vasetType 3 +) +xt "12000,62000,13250,62000" +pts [ +"12000,62000" +"13250,62000" +] +) +start &26 +end &69 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 735,0 +va (VaSet +isHidden 1 +) +xt "12000,60800,15900,62000" +st "funct7" +blo "12000,61800" +tm "WireNameMgr" +) +) +on &49 +) +*84 (Wire +uid 740,0 +shape (OrthoPolyLine +uid 741,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "12000,60000,13250,60000" +pts [ +"12000,60000" +"13250,60000" +] +) +start &25 +end &68 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 742,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 743,0 +va (VaSet +isHidden 1 +) +xt "7000,58800,15200,60000" +st "funct3 : (2:0)" +blo "7000,59800" +tm "WireNameMgr" +) +) +on &48 +) +*85 (Wire +uid 748,0 +shape (OrthoPolyLine +uid 749,0 +va (VaSet +vasetType 3 +) +xt "42950,29000,45335,29000" +pts [ +"42950,29000" +"45335,29000" +] +) +start &32 +end &37 +sat 32 +eat 32 +sf 1 +si 0 +tg (WTG +uid 750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 751,0 +va (VaSet +isHidden 1 +) +xt "42950,27800,53150,29000" +st "out1 : std_uLogic" +blo "42950,28800" +tm "WireNameMgr" +) +) +on &44 +) +*86 (Wire +uid 752,0 +shape (OrthoPolyLine +uid 753,0 +va (VaSet +vasetType 3 +) +xt "6000,27000,36000,27000" +pts [ +"6000,27000" +"36000,27000" +] +) +start &27 +end &30 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 754,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 755,0 +va (VaSet +isHidden 1 +) +xt "8000,25800,10800,27000" +st "zero" +blo "8000,26800" +tm "WireNameMgr" +) +) +on &46 +) +*87 (Wire +uid 764,0 +shape (OrthoPolyLine +uid 765,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30750,61000,33000,61000" +pts [ +"33000,61000" +"30750,61000" +] +) +start &28 +end &66 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 766,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 767,0 +va (VaSet +isHidden 1 +) +xt "31000,59800,41900,61000" +st "ALUControl : (2:0)" +blo "31000,60800" +tm "WireNameMgr" +) +) +on &50 +) +*88 (Wire +uid 782,0 +shape (OrthoPolyLine +uid 783,0 +va (VaSet +vasetType 3 +) +xt "30750,33000,45334,35000" +pts [ +"45334,33000" +"33000,33000" +"33000,35000" +"30750,35000" +] +) +start &38 +end &57 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 784,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 785,0 +va (VaSet +) +xt "42000,31800,45100,33000" +st "jump" +blo "42000,32800" +tm "WireNameMgr" +) +s (Text +uid 786,0 +va (VaSet +isHidden 1 +) +xt "42000,33000,42000,33000" +blo "42000,33000" +tm "SignalTypeMgr" +) +) +on &51 +) +*89 (Wire +uid 787,0 +shape (OrthoPolyLine +uid 788,0 +va (VaSet +vasetType 3 +) +xt "30750,31000,36000,33000" +pts [ +"36000,31000" +"32000,31000" +"32000,33000" +"30750,33000" +] +) +start &31 +end &55 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 789,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 790,0 +va (VaSet +) +xt "32000,29800,36100,31000" +st "branch" +blo "32000,30800" +tm "WireNameMgr" +) +) +on &43 +) +*90 (Wire +uid 791,0 +shape (OrthoPolyLine +uid 792,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "21000,50750,21000,55250" +pts [ +"21000,50750" +"21000,55250" +] +) +start &53 +end &67 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 793,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 794,0 +va (VaSet +) +xt "22000,52800,26400,54000" +st "ALUOp" +blo "22000,53800" +tm "WireNameMgr" +) +) +on &45 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *91 (PackageList +uid 265,0 +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +uid 266,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*93 (MLText +uid 267,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 268,0 +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +uid 269,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*95 (Text +uid 270,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*96 (MLText +uid 271,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*97 (Text +uid 272,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*98 (MLText +uid 273,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*99 (Text +uid 274,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*100 (MLText +uid 275,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-1332,-1406,129204,67987" +cachedDiagramExtent "0,0,90000,67000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,0" +lastUid 1360,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*101 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*102 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*103 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*104 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*105 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*106 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*108 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*109 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*110 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*111 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*112 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*114 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*115 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*116 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*117 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*118 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*119 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*121 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,25200,1200" +st "Pre User:" +blo "20000,1000" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,11200,29500,12400" +st "Diagram Signals:" +blo "20000,12200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 44,0 +usingSuid 1 +emptyRow *122 (LEmptyRow +) +uid 278,0 +optionalChildren [ +*123 (RefLabelRowHdr +) +*124 (TitleRowHdr +) +*125 (FilterRowHdr +) +*126 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*127 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*128 (GroupColHdr +tm "GroupColHdrMgr" +) +*129 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*130 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*131 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*132 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*133 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*134 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*135 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +uid 217,0 +) +*136 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 10,0 +) +) +uid 219,0 +) +*137 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +uid 221,0 +) +*138 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 8,0 +) +) +uid 223,0 +) +*139 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 11,0 +) +) +uid 225,0 +) +*140 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 11 +suid 12,0 +) +) +uid 227,0 +) +*141 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "branch" +t "std_uLogic" +o 13 +suid 31,0 +) +) +uid 861,0 +) +*142 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "out1" +t "std_uLogic" +o 15 +suid 34,0 +) +) +uid 863,0 +) +*143 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 12 +suid 35,0 +) +) +uid 865,0 +) +*144 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 36,0 +) +) +uid 867,0 +) +*145 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 37,0 +) +) +uid 869,0 +) +*146 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 41,0 +) +) +uid 877,0 +) +*147 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 42,0 +) +) +uid 879,0 +) +*148 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 43,0 +) +) +uid 881,0 +) +*149 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "jump" +t "std_uLogic" +o 14 +suid 44,0 +) +) +uid 895,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 291,0 +optionalChildren [ +*150 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *151 (MRCItem +litem &122 +pos 15 +dimension 20 +) +uid 293,0 +optionalChildren [ +*152 (MRCItem +litem &123 +pos 0 +dimension 20 +uid 294,0 +) +*153 (MRCItem +litem &124 +pos 1 +dimension 23 +uid 295,0 +) +*154 (MRCItem +litem &125 +pos 2 +hidden 1 +dimension 20 +uid 296,0 +) +*155 (MRCItem +litem &135 +pos 0 +dimension 20 +uid 218,0 +) +*156 (MRCItem +litem &136 +pos 1 +dimension 20 +uid 220,0 +) +*157 (MRCItem +litem &137 +pos 2 +dimension 20 +uid 222,0 +) +*158 (MRCItem +litem &138 +pos 3 +dimension 20 +uid 224,0 +) +*159 (MRCItem +litem &139 +pos 4 +dimension 20 +uid 226,0 +) +*160 (MRCItem +litem &140 +pos 5 +dimension 20 +uid 228,0 +) +*161 (MRCItem +litem &141 +pos 11 +dimension 20 +uid 862,0 +) +*162 (MRCItem +litem &142 +pos 12 +dimension 20 +uid 864,0 +) +*163 (MRCItem +litem &143 +pos 13 +dimension 20 +uid 866,0 +) +*164 (MRCItem +litem &144 +pos 6 +dimension 20 +uid 868,0 +) +*165 (MRCItem +litem &145 +pos 7 +dimension 20 +uid 870,0 +) +*166 (MRCItem +litem &146 +pos 8 +dimension 20 +uid 878,0 +) +*167 (MRCItem +litem &147 +pos 9 +dimension 20 +uid 880,0 +) +*168 (MRCItem +litem &148 +pos 10 +dimension 20 +uid 882,0 +) +*169 (MRCItem +litem &149 +pos 14 +dimension 20 +uid 896,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 297,0 +optionalChildren [ +*170 (MRCItem +litem &126 +pos 0 +dimension 20 +uid 298,0 +) +*171 (MRCItem +litem &128 +pos 1 +dimension 50 +uid 299,0 +) +*172 (MRCItem +litem &129 +pos 2 +dimension 100 +uid 300,0 +) +*173 (MRCItem +litem &130 +pos 3 +dimension 50 +uid 301,0 +) +*174 (MRCItem +litem &131 +pos 4 +dimension 100 +uid 302,0 +) +*175 (MRCItem +litem &132 +pos 5 +dimension 100 +uid 303,0 +) +*176 (MRCItem +litem &133 +pos 6 +dimension 50 +uid 304,0 +) +*177 (MRCItem +litem &134 +pos 7 +dimension 80 +uid 305,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 277,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *178 (LEmptyRow +) +uid 307,0 +optionalChildren [ +*179 (RefLabelRowHdr +) +*180 (TitleRowHdr +) +*181 (FilterRowHdr +) +*182 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*183 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*184 (GroupColHdr +tm "GroupColHdrMgr" +) +*185 (NameColHdr +tm "GenericNameColHdrMgr" +) +*186 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*187 (InitColHdr +tm "GenericValueColHdrMgr" +) +*188 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*189 (EolColHdr +tm "GenericEolColHdrMgr" +) +*190 (LogGeneric +generic (GiElement +name "g_tDec" +type "time" +value "25 ps" +) +uid 1261,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 319,0 +optionalChildren [ +*191 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *192 (MRCItem +litem &178 +pos 1 +dimension 20 +) +uid 321,0 +optionalChildren [ +*193 (MRCItem +litem &179 +pos 0 +dimension 20 +uid 322,0 +) +*194 (MRCItem +litem &180 +pos 1 +dimension 23 +uid 323,0 +) +*195 (MRCItem +litem &181 +pos 2 +hidden 1 +dimension 20 +uid 324,0 +) +*196 (MRCItem +litem &190 +pos 0 +dimension 20 +uid 1260,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 325,0 +optionalChildren [ +*197 (MRCItem +litem &182 +pos 0 +dimension 20 +uid 326,0 +) +*198 (MRCItem +litem &184 +pos 1 +dimension 50 +uid 327,0 +) +*199 (MRCItem +litem &185 +pos 2 +dimension 100 +uid 328,0 +) +*200 (MRCItem +litem &186 +pos 3 +dimension 100 +uid 329,0 +) +*201 (MRCItem +litem &187 +pos 4 +dimension 50 +uid 330,0 +) +*202 (MRCItem +litem &188 +pos 5 +dimension 50 +uid 331,0 +) +*203 (MRCItem +litem &189 +pos 6 +dimension 80 +uid 332,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 320,0 +vaOverrides [ +] +) +] +) +uid 306,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/students@version.bd b/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/students@version.bd new file mode 100644 index 0000000..07c31a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/students@version.bd @@ -0,0 +1,3368 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\students@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\students@version.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "studentsVersion" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\controlUnit" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "controlUnit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "students@version.bd" +) +(vvPair +variable "f_logical" +value "studentsVersion.bd" +) +(vvPair +variable "f_noext" +value "students@version" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:53:54" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "controlUnit" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\students@version.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\controlUnit\\studentsVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "students@version" +) +(vvPair +variable "this_file_logical" +value "studentsVersion" +) +(vvPair +variable "time" +value "14:53:54" +) +(vvPair +variable "unit" +value "controlUnit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "studentsVersion" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 228,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "1000,36625,2500,37375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "2500,37000,3000,37000" +pts [ +"2500,37000" +"3000,37000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +) +xt "-3900,36400,0,37600" +st "funct3" +ju 2 +blo "0,37400" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,2400,45000,3200" +st "funct3 : std_ulogic_vector(2 DOWNTO 0)" +) +) +*3 (PortIoIn +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "1000,40625,2500,41375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "2500,41000,3000,41000" +pts [ +"2500,41000" +"3000,41000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +) +xt "-3900,40400,0,41600" +st "funct7" +ju 2 +blo "0,41400" +tm "WireNameMgr" +) +) +) +*4 (Net +uid 35,0 +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 36,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3200,35000,4000" +st "funct7 : std_ulogic" +) +) +*5 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "1000,44625,2500,45375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "2500,45000,3000,45000" +pts [ +"2500,45000" +"3000,45000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +) +xt "-1900,44400,0,45600" +st "op" +ju 2 +blo "0,45400" +tm "WireNameMgr" +) +) +) +*6 (Net +uid 49,0 +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 3,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4000,45000,4800" +st "op : std_ulogic_vector(6 DOWNTO 0)" +) +) +*7 (PortIoIn +uid 51,0 +shape (CompositeShape +uid 52,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 53,0 +sl 0 +ro 270 +xt "1000,48625,2500,49375" +) +(Line +uid 54,0 +sl 0 +ro 270 +xt "2500,49000,3000,49000" +pts [ +"2500,49000" +"3000,49000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 55,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 56,0 +va (VaSet +) +xt "-2800,48400,0,49600" +st "zero" +ju 2 +blo "0,49400" +tm "WireNameMgr" +) +) +) +*8 (Net +uid 63,0 +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 64,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4800,35000,5600" +st "zero : std_ulogic" +) +) +*9 (PortIoOut +uid 65,0 +shape (CompositeShape +uid 66,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 67,0 +sl 0 +ro 270 +xt "87500,31625,89000,32375" +) +(Line +uid 68,0 +sl 0 +ro 270 +xt "87000,32000,87500,32000" +pts [ +"87000,32000" +"87500,32000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 69,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 70,0 +va (VaSet +) +xt "90000,31400,97300,32600" +st "ALUControl" +blo "90000,32400" +tm "WireNameMgr" +) +) +) +*10 (Net +uid 77,0 +lang 11 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 5,0 +) +declText (MLText +uid 78,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,45000,6400" +st "ALUControl : std_ulogic_vector(2 DOWNTO 0)" +) +) +*11 (PortIoOut +uid 79,0 +shape (CompositeShape +uid 80,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 81,0 +sl 0 +ro 270 +xt "87500,35625,89000,36375" +) +(Line +uid 82,0 +sl 0 +ro 270 +xt "87000,36000,87500,36000" +pts [ +"87000,36000" +"87500,36000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 83,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 84,0 +va (VaSet +) +xt "90000,35400,94600,36600" +st "ALUSrc" +blo "90000,36400" +tm "WireNameMgr" +) +) +) +*12 (Net +uid 91,0 +lang 11 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 6,0 +) +declText (MLText +uid 92,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,35000,7200" +st "ALUSrc : std_uLogic" +) +) +*13 (PortIoOut +uid 93,0 +shape (CompositeShape +uid 94,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 95,0 +sl 0 +ro 270 +xt "87500,39625,89000,40375" +) +(Line +uid 96,0 +sl 0 +ro 270 +xt "87000,40000,87500,40000" +pts [ +"87000,40000" +"87500,40000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 97,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 98,0 +va (VaSet +) +xt "90000,39400,93900,40600" +st "PCSrc" +blo "90000,40400" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 105,0 +lang 11 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 7,0 +) +declText (MLText +uid 106,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,7200,35000,8000" +st "PCSrc : std_uLogic" +) +) +*15 (PortIoOut +uid 107,0 +shape (CompositeShape +uid 108,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 109,0 +sl 0 +ro 270 +xt "87500,43625,89000,44375" +) +(Line +uid 110,0 +sl 0 +ro 270 +xt "87000,44000,87500,44000" +pts [ +"87000,44000" +"87500,44000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 111,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 112,0 +va (VaSet +) +xt "90000,43400,94500,44600" +st "immSrc" +blo "90000,44400" +tm "WireNameMgr" +) +) +) +*16 (Net +uid 119,0 +lang 11 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 8,0 +) +declText (MLText +uid 120,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,45000,8800" +st "immSrc : std_ulogic_vector(1 DOWNTO 0)" +) +) +*17 (PortIoOut +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "87500,47625,89000,48375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "87000,48000,87500,48000" +pts [ +"87000,48000" +"87500,48000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +) +xt "90000,47400,95700,48600" +st "memWrite" +blo "90000,48400" +tm "WireNameMgr" +) +) +) +*18 (Net +uid 133,0 +lang 11 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 9,0 +) +declText (MLText +uid 134,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8800,35000,9600" +st "memWrite : std_ulogic" +) +) +*19 (PortIoOut +uid 135,0 +shape (CompositeShape +uid 136,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 137,0 +sl 0 +ro 270 +xt "87500,51625,89000,52375" +) +(Line +uid 138,0 +sl 0 +ro 270 +xt "87000,52000,87500,52000" +pts [ +"87000,52000" +"87500,52000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 139,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 140,0 +va (VaSet +) +xt "90000,51400,94700,52600" +st "regwrite" +blo "90000,52400" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 147,0 +lang 11 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 10,0 +) +declText (MLText +uid 148,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,9600,35000,10400" +st "regwrite : std_ulogic" +) +) +*21 (PortIoOut +uid 149,0 +shape (CompositeShape +uid 150,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 151,0 +sl 0 +ro 270 +xt "87500,55625,89000,56375" +) +(Line +uid 152,0 +sl 0 +ro 270 +xt "87000,56000,87500,56000" +pts [ +"87000,56000" +"87500,56000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 153,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 154,0 +va (VaSet +) +xt "90000,55400,95300,56600" +st "resultSrc" +blo "90000,56400" +tm "WireNameMgr" +) +) +) +*22 (Net +uid 161,0 +lang 11 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 11,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,10400,45000,11200" +st "resultSrc : std_ulogic_vector(1 DOWNTO 0)" +) +) +*23 (Grouping +uid 185,0 +optionalChildren [ +*24 (CommentText +uid 187,0 +shape (Rectangle +uid 188,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,4000,74000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 189,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,4000,68700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*25 (CommentText +uid 190,0 +shape (Rectangle +uid 191,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,0,78000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 192,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "74200,0,77200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*26 (CommentText +uid 193,0 +shape (Rectangle +uid 194,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,2000,74000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 195,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,2000,67200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*27 (CommentText +uid 196,0 +shape (Rectangle +uid 197,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,2000,57000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 198,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,2000,55300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*28 (CommentText +uid 199,0 +shape (Rectangle +uid 200,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,1000,94000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 201,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "74200,1200,83600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*29 (CommentText +uid 202,0 +shape (Rectangle +uid 203,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,0,94000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 204,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "78200,0,79800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*30 (CommentText +uid 205,0 +shape (Rectangle +uid 206,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,0,74000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 207,0 +va (VaSet +fg "32768,0,0" +) +xt "58350,400,68650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*31 (CommentText +uid 208,0 +shape (Rectangle +uid 209,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,3000,57000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 210,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,3000,55300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*32 (CommentText +uid 211,0 +shape (Rectangle +uid 212,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,4000,57000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 213,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,4000,55900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*33 (CommentText +uid 214,0 +shape (Rectangle +uid 215,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,3000,74000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 216,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,3000,72600,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 186,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "53000,0,94000,5000" +) +oxt "14000,66000,55000,71000" +) +*34 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "3000,37000,13000,37000" +pts [ +"3000,37000" +"13000,37000" +] +) +start &1 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +isHidden 1 +) +xt "5000,35800,13200,37000" +st "funct3 : (2:0)" +blo "5000,36800" +tm "WireNameMgr" +) +) +on &2 +) +*35 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "3000,41000,13000,41000" +pts [ +"3000,41000" +"13000,41000" +] +) +start &3 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +isHidden 1 +) +xt "5000,39800,8900,41000" +st "funct7" +blo "5000,40800" +tm "WireNameMgr" +) +) +on &4 +) +*36 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "3000,45000,13000,45000" +pts [ +"3000,45000" +"13000,45000" +] +) +start &5 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +isHidden 1 +) +xt "5000,43800,11200,45000" +st "op : (6:0)" +blo "5000,44800" +tm "WireNameMgr" +) +) +on &6 +) +*37 (Wire +uid 57,0 +shape (OrthoPolyLine +uid 58,0 +va (VaSet +vasetType 3 +) +xt "3000,49000,13000,49000" +pts [ +"3000,49000" +"13000,49000" +] +) +start &7 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 61,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 62,0 +va (VaSet +isHidden 1 +) +xt "5000,47800,7800,49000" +st "zero" +blo "5000,48800" +tm "WireNameMgr" +) +) +on &8 +) +*38 (Wire +uid 71,0 +shape (OrthoPolyLine +uid 72,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77000,32000,87000,32000" +pts [ +"87000,32000" +"77000,32000" +] +) +start &9 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 75,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 76,0 +va (VaSet +isHidden 1 +) +xt "86000,30800,96900,32000" +st "ALUControl : (2:0)" +blo "86000,31800" +tm "WireNameMgr" +) +) +on &10 +) +*39 (Wire +uid 85,0 +shape (OrthoPolyLine +uid 86,0 +va (VaSet +vasetType 3 +) +xt "77000,36000,87000,36000" +pts [ +"87000,36000" +"77000,36000" +] +) +start &11 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 89,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 90,0 +va (VaSet +isHidden 1 +) +xt "86000,34800,90600,36000" +st "ALUSrc" +blo "86000,35800" +tm "WireNameMgr" +) +) +on &12 +) +*40 (Wire +uid 99,0 +shape (OrthoPolyLine +uid 100,0 +va (VaSet +vasetType 3 +) +xt "77000,40000,87000,40000" +pts [ +"87000,40000" +"77000,40000" +] +) +start &13 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 103,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 104,0 +va (VaSet +isHidden 1 +) +xt "86000,38800,89900,40000" +st "PCSrc" +blo "86000,39800" +tm "WireNameMgr" +) +) +on &14 +) +*41 (Wire +uid 113,0 +shape (OrthoPolyLine +uid 114,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77000,44000,87000,44000" +pts [ +"87000,44000" +"77000,44000" +] +) +start &15 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 117,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 118,0 +va (VaSet +isHidden 1 +) +xt "86000,42800,94800,44000" +st "immSrc : (1:0)" +blo "86000,43800" +tm "WireNameMgr" +) +) +on &16 +) +*42 (Wire +uid 127,0 +shape (OrthoPolyLine +uid 128,0 +va (VaSet +vasetType 3 +) +xt "77000,48000,87000,48000" +pts [ +"87000,48000" +"77000,48000" +] +) +start &17 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 131,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +isHidden 1 +) +xt "86000,46800,91700,48000" +st "memWrite" +blo "86000,47800" +tm "WireNameMgr" +) +) +on &18 +) +*43 (Wire +uid 141,0 +shape (OrthoPolyLine +uid 142,0 +va (VaSet +vasetType 3 +) +xt "77000,52000,87000,52000" +pts [ +"87000,52000" +"77000,52000" +] +) +start &19 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 145,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 146,0 +va (VaSet +isHidden 1 +) +xt "86000,50800,90700,52000" +st "regwrite" +blo "86000,51800" +tm "WireNameMgr" +) +) +on &20 +) +*44 (Wire +uid 155,0 +shape (OrthoPolyLine +uid 156,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77000,56000,87000,56000" +pts [ +"87000,56000" +"77000,56000" +] +) +start &21 +sat 32 +eat 16 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +uid 159,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 160,0 +va (VaSet +isHidden 1 +) +xt "86000,54800,95600,56000" +st "resultSrc : (1:0)" +blo "86000,55800" +tm "WireNameMgr" +) +) +on &22 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *45 (PackageList +uid 217,0 +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +uid 218,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*47 (MLText +uid 219,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 220,0 +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 221,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*49 (Text +uid 222,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*50 (MLText +uid 223,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*51 (Text +uid 224,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*52 (MLText +uid 225,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*53 (Text +uid 226,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*54 (MLText +uid 227,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-5384,-1609,105872,58839" +cachedDiagramExtent "-3900,0,97300,56600" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-7000,0" +lastUid 284,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*55 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*56 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*57 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*58 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*59 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*60 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*62 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*63 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*65 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*66 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*68 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*69 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*71 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*73 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*74 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*75 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,25200,1200" +st "Pre User:" +blo "20000,1000" +) +preUserText (MLText +uid 5,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,11200,29500,12400" +st "Diagram Signals:" +blo "20000,12200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 11,0 +usingSuid 1 +emptyRow *76 (LEmptyRow +) +uid 230,0 +optionalChildren [ +*77 (RefLabelRowHdr +) +*78 (TitleRowHdr +) +*79 (FilterRowHdr +) +*80 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*81 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*82 (GroupColHdr +tm "GroupColHdrMgr" +) +*83 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*84 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*85 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*86 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*87 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*88 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*89 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 163,0 +) +*90 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 165,0 +) +*91 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 167,0 +) +*92 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 169,0 +) +*93 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 5,0 +) +) +uid 171,0 +) +*94 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 6,0 +) +) +uid 173,0 +) +*95 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 7,0 +) +) +uid 175,0 +) +*96 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 8,0 +) +) +uid 177,0 +) +*97 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 9,0 +) +) +uid 179,0 +) +*98 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 10,0 +) +) +uid 181,0 +) +*99 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +uid 183,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 243,0 +optionalChildren [ +*100 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *101 (MRCItem +litem &76 +pos 11 +dimension 20 +) +uid 245,0 +optionalChildren [ +*102 (MRCItem +litem &77 +pos 0 +dimension 20 +uid 246,0 +) +*103 (MRCItem +litem &78 +pos 1 +dimension 23 +uid 247,0 +) +*104 (MRCItem +litem &79 +pos 2 +hidden 1 +dimension 20 +uid 248,0 +) +*105 (MRCItem +litem &89 +pos 0 +dimension 20 +uid 164,0 +) +*106 (MRCItem +litem &90 +pos 1 +dimension 20 +uid 166,0 +) +*107 (MRCItem +litem &91 +pos 2 +dimension 20 +uid 168,0 +) +*108 (MRCItem +litem &92 +pos 3 +dimension 20 +uid 170,0 +) +*109 (MRCItem +litem &93 +pos 4 +dimension 20 +uid 172,0 +) +*110 (MRCItem +litem &94 +pos 5 +dimension 20 +uid 174,0 +) +*111 (MRCItem +litem &95 +pos 6 +dimension 20 +uid 176,0 +) +*112 (MRCItem +litem &96 +pos 7 +dimension 20 +uid 178,0 +) +*113 (MRCItem +litem &97 +pos 8 +dimension 20 +uid 180,0 +) +*114 (MRCItem +litem &98 +pos 9 +dimension 20 +uid 182,0 +) +*115 (MRCItem +litem &99 +pos 10 +dimension 20 +uid 184,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 249,0 +optionalChildren [ +*116 (MRCItem +litem &80 +pos 0 +dimension 20 +uid 250,0 +) +*117 (MRCItem +litem &82 +pos 1 +dimension 50 +uid 251,0 +) +*118 (MRCItem +litem &83 +pos 2 +dimension 100 +uid 252,0 +) +*119 (MRCItem +litem &84 +pos 3 +dimension 50 +uid 253,0 +) +*120 (MRCItem +litem &85 +pos 4 +dimension 100 +uid 254,0 +) +*121 (MRCItem +litem &86 +pos 5 +dimension 100 +uid 255,0 +) +*122 (MRCItem +litem &87 +pos 6 +dimension 50 +uid 256,0 +) +*123 (MRCItem +litem &88 +pos 7 +dimension 80 +uid 257,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 244,0 +vaOverrides [ +] +) +] +) +uid 229,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *124 (LEmptyRow +) +uid 259,0 +optionalChildren [ +*125 (RefLabelRowHdr +) +*126 (TitleRowHdr +) +*127 (FilterRowHdr +) +*128 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*129 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*130 (GroupColHdr +tm "GroupColHdrMgr" +) +*131 (NameColHdr +tm "GenericNameColHdrMgr" +) +*132 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*133 (InitColHdr +tm "GenericValueColHdrMgr" +) +*134 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*135 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 271,0 +optionalChildren [ +*136 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *137 (MRCItem +litem &124 +pos 0 +dimension 20 +) +uid 273,0 +optionalChildren [ +*138 (MRCItem +litem &125 +pos 0 +dimension 20 +uid 274,0 +) +*139 (MRCItem +litem &126 +pos 1 +dimension 23 +uid 275,0 +) +*140 (MRCItem +litem &127 +pos 2 +hidden 1 +dimension 20 +uid 276,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 277,0 +optionalChildren [ +*141 (MRCItem +litem &128 +pos 0 +dimension 20 +uid 278,0 +) +*142 (MRCItem +litem &130 +pos 1 +dimension 50 +uid 279,0 +) +*143 (MRCItem +litem &131 +pos 2 +dimension 100 +uid 280,0 +) +*144 (MRCItem +litem &132 +pos 3 +dimension 100 +uid 281,0 +) +*145 (MRCItem +litem &133 +pos 4 +dimension 50 +uid 282,0 +) +*146 (MRCItem +litem &134 +pos 5 +dimension 50 +uid 283,0 +) +*147 (MRCItem +litem &135 +pos 6 +dimension 80 +uid 284,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 272,0 +vaOverrides [ +] +) +] +) +uid 258,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/symbol.sb b/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/symbol.sb new file mode 100644 index 0000000..9a61122 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/control@unit/symbol.sb @@ -0,0 +1,2014 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 15,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 151,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 1,0 +) +) +uid 121,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +uid 123,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 5,0 +) +) +uid 129,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 6,0 +) +) +uid 131,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +uid 133,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 8,0 +) +) +uid 135,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 9,0 +) +) +uid 137,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 10,0 +) +) +uid 139,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 11,0 +) +) +uid 141,0 +) +*23 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 11 +suid 12,0 +) +) +uid 143,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 14,0 +) +) +uid 147,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 166,0 +optionalChildren [ +*27 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 167,0 +) +*28 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 168,0 +) +*29 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*30 (MRCItem +litem &14 +pos 10 +dimension 20 +uid 122,0 +) +*31 (MRCItem +litem &15 +pos 0 +dimension 20 +uid 124,0 +) +*32 (MRCItem +litem &16 +pos 8 +dimension 20 +uid 130,0 +) +*33 (MRCItem +litem &17 +pos 9 +dimension 20 +uid 132,0 +) +*34 (MRCItem +litem &18 +pos 2 +dimension 20 +uid 134,0 +) +*35 (MRCItem +litem &19 +pos 3 +dimension 20 +uid 136,0 +) +*36 (MRCItem +litem &20 +pos 7 +dimension 20 +uid 138,0 +) +*37 (MRCItem +litem &21 +pos 1 +dimension 20 +uid 140,0 +) +*38 (MRCItem +litem &22 +pos 4 +dimension 20 +uid 142,0 +) +*39 (MRCItem +litem &23 +pos 5 +dimension 20 +uid 144,0 +) +*40 (MRCItem +litem &24 +pos 6 +dimension 20 +uid 148,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*41 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 171,0 +) +*42 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 172,0 +) +*43 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 173,0 +) +*44 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 174,0 +) +*45 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 175,0 +) +*46 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 176,0 +) +*47 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 177,0 +) +*48 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 178,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 150,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 180,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +*61 (LogGeneric +generic (GiElement +name "g_tDec" +type "time" +value "25 ps" +) +uid 586,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 192,0 +optionalChildren [ +*62 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *63 (MRCItem +litem &49 +pos 1 +dimension 20 +) +uid 194,0 +optionalChildren [ +*64 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 195,0 +) +*65 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 196,0 +) +*66 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 197,0 +) +*67 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 587,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 198,0 +optionalChildren [ +*68 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 199,0 +) +*69 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 200,0 +) +*70 (MRCItem +litem &56 +pos 2 +dimension 100 +uid 201,0 +) +*71 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 202,0 +) +*72 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 203,0 +) +*73 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 204,0 +) +*74 (MRCItem +litem &60 +pos 6 +dimension 80 +uid 205,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 193,0 +vaOverrides [ +] +) +] +) +uid 179,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\controlUnit" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "controlUnit" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:20:59" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "controlUnit" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\control@unit\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\controlUnit\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:20:59" +) +(vvPair +variable "unit" +value "controlUnit" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 149,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,27625,32750,28375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "25600,27500,31000,28500" +st "ALUControl" +ju 2 +blo "31000,28300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,72000,6400" +st "ALUControl : OUT std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 1,0 +) +) +) +*77 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,29625,32750,30375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,8,0" +) +xt "27800,29500,31000,30500" +st "ALUSrc" +ju 2 +blo "31000,30300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,62000,7200" +st "ALUSrc : OUT std_uLogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +) +*78 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,32625,16000,33375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,8,0" +) +xt "17000,32500,20000,33500" +st "funct3" +blo "17000,33300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,72000,3200" +st "funct3 : IN std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 5,0 +) +) +) +*79 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,34625,16000,35375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "Verdana,8,0" +) +xt "17000,34500,20000,35500" +st "funct7" +blo "17000,35300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,62000,4000" +st "funct7 : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 6,0 +) +) +) +*80 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,31625,32750,32375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +font "Verdana,8,0" +) +xt "27500,31500,31000,32500" +st "immSrc" +ju 2 +blo "31000,32300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,72000,8800" +st "immSrc : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*81 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,25625,32750,26375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +font "Verdana,8,0" +) +xt "26300,25500,31000,26500" +st "memWrite" +ju 2 +blo "31000,26300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,62000,9600" +st "memWrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 8,0 +) +) +) +*82 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,30625,16000,31375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +font "Verdana,8,0" +) +xt "17000,30500,18500,31500" +st "op" +blo "17000,31300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,72000,4800" +st "op : IN std_ulogic_vector (6 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*83 (CptPort +uid 96,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 97,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,23625,16000,24375" +) +tg (CPTG +uid 98,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 99,0 +va (VaSet +font "Verdana,8,0" +) +xt "17000,23500,19800,24500" +st "PCSrc" +blo "17000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 100,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,62000,8000" +st "PCSrc : OUT std_uLogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 10,0 +) +) +) +*84 (CptPort +uid 101,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 102,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,38000,26375,38750" +) +tg (CPTG +uid 103,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 104,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "25500,33200,26500,37000" +st "regwrite" +blo "26300,37000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 105,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9600,62000,10400" +st "regwrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 11,0 +) +) +) +*85 (CptPort +uid 106,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 107,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,23625,32750,24375" +) +tg (CPTG +uid 108,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 109,0 +va (VaSet +font "Verdana,8,0" +) +xt "27100,23500,31000,24500" +st "resultSrc" +ju 2 +blo "31000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 110,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10400,71000,11200" +st "resultSrc : OUT std_ulogic_vector (1 downto 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 11 +suid 12,0 +) +) +) +*86 (CptPort +uid 116,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 117,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32000,35625,32750,36375" +) +tg (CPTG +uid 118,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 119,0 +va (VaSet +font "Verdana,8,0" +) +xt "28800,35500,31000,36500" +st "zero" +ju 2 +blo "31000,36300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 120,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,62000,5600" +st "zero : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 344,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "16000,23000,32000,38000" +) +oxt "15000,6000,28000,28000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "15800,38800,23200,40000" +st "HEIRV32_SC" +blo "15800,39800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "15800,40000,22600,41200" +st "controlUnit" +blo "15800,41000" +) +) +gi *87 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,42200,27500,44600" +st "Generic Declarations + +g_tDec time 25 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "25 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*88 (Grouping +uid 16,0 +optionalChildren [ +*89 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,48700,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *99 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*100 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*101 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "-8,-8,1928,1048" +viewArea "11300,5100,74496,38400" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-9000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_SC" +entityName "heirv32_sc" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *102 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *103 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,11200,45200,12400" +st "User:" +blo "42000,12200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12400,44000,12400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 587,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/data@memory/symbol.sb b/Libs/RiscV/HEIRV32/SingleCycle/hds/data@memory/symbol.sb new file mode 100644 index 0000000..9dd996e --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/data@memory/symbol.sb @@ -0,0 +1,1860 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 7,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "address" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 30 +suid 1,0 +) +) +uid 86,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 88,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 90,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 29 +suid 4,0 +) +) +uid 92,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 32 +suid 5,0 +) +) +uid 94,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 6,0 +) +) +uid 96,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 31 +suid 7,0 +) +) +uid 98,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*21 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *22 (MRCItem +litem &1 +pos 7 +dimension 20 +) +uid 117,0 +optionalChildren [ +*23 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 118,0 +) +*24 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 119,0 +) +*25 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*26 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 87,0 +) +*27 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 89,0 +) +*28 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 91,0 +) +*29 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 93,0 +) +*30 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 95,0 +) +*31 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 97,0 +) +*32 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*33 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 122,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 123,0 +) +*35 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 124,0 +) +*36 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 125,0 +) +*37 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 126,0 +) +*38 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 127,0 +) +*39 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 128,0 +) +*40 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 101,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *41 (LEmptyRow +) +uid 131,0 +optionalChildren [ +*42 (RefLabelRowHdr +) +*43 (TitleRowHdr +) +*44 (FilterRowHdr +) +*45 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*46 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*47 (GroupColHdr +tm "GroupColHdrMgr" +) +*48 (NameColHdr +tm "GenericNameColHdrMgr" +) +*49 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*50 (InitColHdr +tm "GenericValueColHdrMgr" +) +*51 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*52 (EolColHdr +tm "GenericEolColHdrMgr" +) +*53 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 180,0 +) +*54 (LogGeneric +generic (GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +uid 209,0 +) +*55 (LogGeneric +generic (GiElement +name "g_tMemWr" +type "time" +value "60 ps" +) +uid 280,0 +) +*56 (LogGeneric +generic (GiElement +name "g_tMemRd" +type "time" +value "200 ps" +) +uid 282,0 +) +*57 (LogGeneric +generic (GiElement +name "g_tSetup" +type "time" +value "50 ps" +) +uid 284,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*58 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *59 (MRCItem +litem &41 +pos 5 +dimension 20 +) +uid 145,0 +optionalChildren [ +*60 (MRCItem +litem &42 +pos 0 +dimension 20 +uid 146,0 +) +*61 (MRCItem +litem &43 +pos 1 +dimension 23 +uid 147,0 +) +*62 (MRCItem +litem &44 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*63 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 181,0 +) +*64 (MRCItem +litem &54 +pos 1 +dimension 20 +uid 210,0 +) +*65 (MRCItem +litem &55 +pos 2 +dimension 20 +uid 281,0 +) +*66 (MRCItem +litem &56 +pos 3 +dimension 20 +uid 283,0 +) +*67 (MRCItem +litem &57 +pos 4 +dimension 20 +uid 285,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*68 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 150,0 +) +*69 (MRCItem +litem &47 +pos 1 +dimension 50 +uid 151,0 +) +*70 (MRCItem +litem &48 +pos 2 +dimension 100 +uid 152,0 +) +*71 (MRCItem +litem &49 +pos 3 +dimension 100 +uid 153,0 +) +*72 (MRCItem +litem &50 +pos 4 +dimension 50 +uid 154,0 +) +*73 (MRCItem +litem &51 +pos 5 +dimension 50 +uid 155,0 +) +*74 (MRCItem +litem &52 +pos 6 +dimension 80 +uid 156,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 130,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\data@memory\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\data@memory\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\data@memory" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\dataMemory" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "dataMemory" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "12:10:26" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "dataMemory" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\data@memory\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\dataMemory\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "12:10:26" +) +(vvPair +variable "unit" +value "dataMemory" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 100,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "16250,20625,17000,21375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "18000,20500,21600,21500" +st "address" +blo "18000,21300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,77500,3200" +st "address : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "address" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 30 +suid 1,0 +) +) +) +*77 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18625,13250,19375,14000" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "18453,14307,19453,15907" +st "clk" +ju 2 +blo "19253,14307" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61500,4000" +st "clk : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*78 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,13250,24375,14000" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "23500,15000,24500,16500" +st "en" +ju 2 +blo "24300,15000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61500,4800" +st "en : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*79 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "16250,17625,17000,18375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,8,0" +) +xt "18000,17500,21500,18500" +st "writeEn" +blo "18000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,61500,7200" +st "writeEn : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 29 +suid 4,0 +) +) +) +*80 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26000,23625,26750,24375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,8,0" +) +xt "20800,23500,25000,24500" +st "readData" +ju 2 +blo "25000,24300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,76500,8000" +st "readData : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 32 +suid 5,0 +) +) +) +*81 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20625,13250,21375,14000" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "20500,15000,21500,16500" +st "rst" +ju 2 +blo "21300,15000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61500,5600" +st "rst : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*82 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "16250,28625,17000,29375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +font "Verdana,8,0" +) +xt "18000,28500,22400,29500" +st "writeData" +blo "18000,29300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,77500,6400" +st "writeData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 31 +suid 7,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "17000,14000,26000,32000" +) +oxt "15000,6000,23000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "17300,32800,24700,34000" +st "HEIRV32_SC" +blo "17300,33800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "17300,34000,24700,35200" +st "dataMemory" +blo "17300,35000" +) +) +gi *83 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,36600,34500,42200" +st "Generic Declarations + +g_dataWidth positive 32 +g_memoryNbBits positive 7 +g_tMemWr time 60 ps +g_tMemRd time 200 ps +g_tSetup time 50 ps " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +(GiElement +name "g_tMemWr" +type "time" +value "60 ps" +) +(GiElement +name "g_tMemRd" +type "time" +value "200 ps" +) +(GiElement +name "g_tSetup" +type "time" +value "50 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*84 (Grouping +uid 16,0 +optionalChildren [ +*85 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49300,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*95 (CommentGraphic +uid 182,0 +shape (PolyLine2D +pts [ +"18000,14000" +"19000,16000" +] +uid 183,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "18000,14000,19000,16000" +) +) +*96 (CommentGraphic +uid 184,0 +shape (PolyLine2D +pts [ +"20000,14000" +"19000,16000" +] +uid 185,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "19000,14000,20000,16000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *97 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*98 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*99 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "1920,0,3841,1056" +viewArea "200,8100,62841,41400" +cachedDiagramExtent "0,0,77500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_SC" +entityName "heirv32_sc" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *100 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *101 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,8000,45200,9200" +st "User:" +blo "42000,9000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,44000,9200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 308,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/struct.bd b/Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/struct.bd new file mode 100644 index 0000000..050c290 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/struct.bd @@ -0,0 +1,12244 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +instances [ +(Instance +name "U_pcMux" +duLibraryName "gates" +duName "mux2to1Unsigned" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tMux" +) +] +mwi 0 +uid 822,0 +) +(Instance +name "U_PCAdder" +duLibraryName "operators" +duName "addUnsigned" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tAdd" +) +] +mwi 0 +uid 7205,0 +) +(Instance +name "U_beqAdder" +duLibraryName "operators" +duName "addUnsigned" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tAdd" +) +] +mwi 0 +uid 7299,0 +) +(Instance +name "U_muxSrcB" +duLibraryName "gates" +duName "mux2to1ULogicVector" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tMux" +) +] +mwi 0 +uid 7354,0 +) +(Instance +name "U_immextToUnsigned" +duLibraryName "gates" +duName "transUlogUnsigned" +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 7384,0 +) +(Instance +name "U_0" +duLibraryName "gates" +duName "transUnsignedUlog" +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +mwi 0 +uid 8891,0 +) +(Instance +name "U_extend" +duLibraryName "HEIRV32" +duName "extend" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tExt" +type "time" +value "c_tExt" +) +] +mwi 0 +uid 9502,0 +) +(Instance +name "U_pcBuffer" +duLibraryName "HEIRV32" +duName "bufferUnsignedEnable" +elements [ +(GiElement +name "g_bitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tPC" +type "time" +value "c_tPC" +) +] +mwi 0 +uid 9536,0 +) +(Instance +name "U_muxData" +duLibraryName "HEIRV32" +duName "mux4To1ULogVec" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "c_tMux" +) +] +mwi 0 +uid 9604,0 +) +(Instance +name "U_alu" +duLibraryName "HEIRV32" +duName "ALU" +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tALU" +type "time" +value "c_tALU" +) +] +mwi 0 +uid 9676,0 +) +(Instance +name "U_registerFile" +duLibraryName "HEIRV32" +duName "registerFile" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_btnsNb" +type "positive" +value "g_btnsNb" +) +(GiElement +name "g_tRfRd" +type "time" +value "c_tRfRd" +) +(GiElement +name "g_tRfWr" +type "time" +value "c_tRfWr" +) +(GiElement +name "g_tSetup" +type "time" +value "c_tSetup" +) +] +mwi 0 +uid 9738,0 +) +(Instance +name "U_controlUnit" +duLibraryName "HEIRV32_SC" +duName "controlUnit" +elements [ +(GiElement +name "g_tDec" +type "time" +value "c_tDec" +) +] +mwi 0 +uid 9792,0 +) +(Instance +name "U_instrMemory" +duLibraryName "HEIRV32_SC" +duName "instrMemory" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "g_memoryNbBits" +) +(GiElement +name "g_programFile" +type "string" +value "g_programFile" +) +(GiElement +name "g_tMemRd" +type "time" +value "c_tMemRd" +) +] +mwi 0 +uid 9810,0 +) +(Instance +name "U_dataMemory" +duLibraryName "HEIRV32_SC" +duName "dataMemory" +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "g_memoryNbBits" +) +(GiElement +name "g_tMemWr" +type "time" +value "c_tMemWr" +) +(GiElement +name "g_tMemRd" +type "time" +value "c_tMemRd" +) +(GiElement +name "g_tSetup" +type "time" +value "c_tSetup" +) +] +mwi 0 +uid 9909,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc" +) +(vvPair +variable "date" +value "07.11.2022" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "07" +) +(vvPair +variable "entity_name" +value "heirv32_sc" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "07.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:01:53" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_sc" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:01:53" +) +(vvPair +variable "unit" +value "heirv32_sc" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,4000,76000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,4000,70700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,0,80000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "76200,0,79200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,2000,76000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,2000,69200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,2000,59000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,2000,57300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,1000,96000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "76200,1200,85600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "80000,0,96000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "80200,0,81800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,0,76000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "60350,400,70650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,3000,59000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,3000,57300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,4000,59000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,4000,57900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "59000,3000,76000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "59200,3000,71100,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "55000,0,96000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 362,0 +shape (CompositeShape +uid 363,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 364,0 +sl 0 +ro 270 +xt "9000,37625,10500,38375" +) +(Line +uid 365,0 +sl 0 +ro 270 +xt "10500,38000,11000,38000" +pts [ +"10500,38000" +"11000,38000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 366,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 367,0 +va (VaSet +) +xt "5800,37400,8000,38600" +st "clk" +ju 2 +blo "8000,38400" +tm "WireNameMgr" +) +) +) +*13 (PortIoIn +uid 368,0 +shape (CompositeShape +uid 369,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 370,0 +sl 0 +ro 270 +xt "9000,39625,10500,40375" +) +(Line +uid 371,0 +sl 0 +ro 270 +xt "10500,40000,11000,40000" +pts [ +"10500,40000" +"11000,40000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 372,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 373,0 +va (VaSet +) +xt "5900,39400,8000,40600" +st "rst" +ju 2 +blo "8000,40400" +tm "WireNameMgr" +) +) +) +*14 (Net +uid 672,0 +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 20,0 +) +declText (MLText +uid 673,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4800,37500,5600" +st "rst : std_ulogic" +) +) +*15 (Net +uid 674,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 21,0 +) +declText (MLText +uid 675,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3200,37500,4000" +st "clk : std_ulogic" +) +) +*16 (SaComponent +uid 822,0 +optionalChildren [ +*17 (CptPort +uid 806,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 807,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "19250,78625,20000,79375" +) +tg (CPTG +uid 808,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 809,0 +va (VaSet +font "Verdana,8,0" +) +xt "20339,78427,22039,79427" +st "in0" +blo "20339,79227" +) +s (Text +uid 832,0 +va (VaSet +) +xt "20339,79427,20339,79427" +blo "20339,79427" +) +) +thePort (LogicalPort +decl (Decl +n "in0" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*18 (CptPort +uid 810,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 811,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "24000,79625,24750,80375" +) +tg (CPTG +uid 812,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 813,0 +va (VaSet +fg "65535,65535,65535" +font "Verdana,8,0" +) +xt "24300,78500,28000,79500" +st "muxOut" +ju 2 +blo "28000,79300" +) +s (Text +uid 833,0 +va (VaSet +) +xt "28000,79500,28000,79500" +ju 2 +blo "28000,79500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "muxOut" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 2,0 +) +) +) +*19 (CptPort +uid 814,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 815,0 +ro 180 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "22625,77750,23375,78500" +) +tg (CPTG +uid 816,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 817,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "22400,78833,23400,80433" +st "sel" +ju 2 +blo "23200,78833" +) +s (Text +uid 834,0 +ro 270 +va (VaSet +) +xt "23400,78833,23400,78833" +ju 2 +blo "23400,78833" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*20 (CptPort +uid 818,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 819,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "19250,80625,20000,81375" +) +tg (CPTG +uid 820,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 821,0 +va (VaSet +font "Verdana,8,0" +) +xt "20367,80527,22067,81527" +st "in1" +blo "20367,81327" +) +s (Text +uid 835,0 +va (VaSet +) +xt "20367,81527,20367,81527" +blo "20367,81527" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +] +shape (Mux +uid 823,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "20000,77000,24000,83000" +) +showPorts 0 +oxt "38000,2000,44000,18000" +ttg (MlTextGroup +uid 824,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*21 (Text +uid 825,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "16600,82700,19700,83700" +st "gates" +blo "16600,83500" +tm "BdLibraryNameMgr" +) +*22 (Text +uid 826,0 +va (VaSet +font "Verdana,8,1" +) +xt "16600,83700,26300,84700" +st "mux2to1Unsigned" +blo "16600,84500" +tm "CptNameMgr" +) +*23 (Text +uid 827,0 +va (VaSet +font "Verdana,8,1" +) +xt "16600,84700,21500,85700" +st "U_pcMux" +blo "16600,85500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 828,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 829,0 +text (MLText +uid 830,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "16000,86000,34500,88000" +st "dataBitNb = c_dataWidth ( positive ) +delay = c_tMux ( time ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tMux" +) +] +) +viewicon (ZoomableIcon +uid 831,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "20250,81250,21750,82750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*24 (Net +uid 1362,0 +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 30 +suid 46,0 +) +declText (MLText +uid 1363,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,39200,41000,40000" +st "SIGNAL zero : std_ulogic" +) +) +*25 (Net +uid 1376,0 +lang 11 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 26 +suid 48,0 +) +declText (MLText +uid 1377,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,36000,51000,36800" +st "SIGNAL resultSrc : std_ulogic_vector(1 downto 0)" +) +) +*26 (Net +uid 1388,0 +lang 11 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 50,0 +) +declText (MLText +uid 1389,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,20800,51000,21600" +st "SIGNAL ALUControl : std_ulogic_vector(2 DOWNTO 0)" +) +) +*27 (Net +uid 1434,0 +lang 11 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 57,0 +) +declText (MLText +uid 1435,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,30400,51000,31200" +st "SIGNAL immSrc : std_ulogic_vector(1 DOWNTO 0)" +) +) +*28 (Net +uid 1436,0 +lang 11 +decl (Decl +n "regwrite" +t "std_ulogic" +o 24 +suid 58,0 +) +declText (MLText +uid 1437,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,34400,41000,35200" +st "SIGNAL regwrite : std_ulogic" +) +) +*29 (Net +uid 1662,0 +lang 11 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 20 +suid 59,0 +) +declText (MLText +uid 1663,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,31200,57000,32000" +st "SIGNAL instruction : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*30 (Net +uid 2122,0 +lang 11 +decl (Decl +n "immExt" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 18 +suid 65,0 +) +declText (MLText +uid 2123,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,29600,57000,30400" +st "SIGNAL immExt : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*31 (Net +uid 2450,0 +lang 11 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 27 +suid 74,0 +) +declText (MLText +uid 2451,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,36800,57000,37600" +st "SIGNAL srcA : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*32 (Net +uid 2452,0 +lang 11 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 28 +suid 75,0 +) +declText (MLText +uid 2453,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,37600,57000,38400" +st "SIGNAL srcB : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*33 (Net +uid 2595,0 +lang 11 +decl (Decl +n "ALUResult" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 8 +suid 79,0 +) +declText (MLText +uid 2596,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,21600,57000,22400" +st "SIGNAL ALUResult : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*34 (Net +uid 4351,0 +lang 11 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 93,0 +) +declText (MLText +uid 4352,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,48000,6400" +st "dbg_leds : std_ulogic_vector(31 DOWNTO 0)" +) +) +*35 (PortIoOut +uid 4365,0 +shape (CompositeShape +uid 4366,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4367,0 +sl 0 +ro 270 +xt "173500,13625,175000,14375" +) +(Line +uid 4368,0 +sl 0 +ro 270 +xt "173000,14000,173500,14000" +pts [ +"173000,14000" +"173500,14000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 4369,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4370,0 +va (VaSet +) +xt "176000,13400,181200,14600" +st "dbg_leds" +blo "176000,14400" +tm "WireNameMgr" +) +) +) +*36 (HdlText +uid 4373,0 +optionalChildren [ +*37 (EmbeddedText +uid 4478,0 +commentText (CommentText +uid 4479,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 4480,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "118000,10000,170000,26000" +) +oxt "0,0,18000,5000" +text (MLText +uid 4481,0 +va (VaSet +) +xt "118200,10200,170000,24600" +st " + + +dbg_leds(7 downto 0) <= std_ulogic_vector(PC(9 downto 2)); -- no need to read LSBs since does +4 each time + +dbg_leds(14 downto 8) <= instruction(6 downto 0); -- op + +dbg_leds(17 downto 15) <= instruction(14 downto 12); -- funct3 + +dbg_leds(18) <= instruction(30); -- funct7 + +dbg_leds(31 downto 19) <= (others => '0'); -- not used + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 16000 +visibleWidth 52000 +) +) +) +] +shape (Rectangle +uid 4374,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "118000,9000,170000,28000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 4375,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*38 (Text +uid 4376,0 +va (VaSet +font "Verdana,9,1" +) +xt "127800,28800,130200,30000" +st "eb2" +blo "127800,29800" +tm "HdlTextNameMgr" +) +*39 (Text +uid 4377,0 +va (VaSet +font "Verdana,9,1" +) +xt "127800,30000,129000,31200" +st "2" +blo "127800,31000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 4378,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "118250,26250,119750,27750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*40 (PortIoIn +uid 4490,0 +shape (CompositeShape +uid 4491,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 4492,0 +sl 0 +ro 270 +xt "9000,41625,10500,42375" +) +(Line +uid 4493,0 +sl 0 +ro 270 +xt "10500,42000,11000,42000" +pts [ +"10500,42000" +"11000,42000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 4494,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4495,0 +va (VaSet +) +xt "6100,41400,8000,42600" +st "en" +ju 2 +blo "8000,42400" +tm "WireNameMgr" +) +) +) +*41 (Net +uid 4496,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 97,0 +) +declText (MLText +uid 4497,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,4000,37500,4800" +st "en : std_ulogic" +) +) +*42 (Net +uid 5835,0 +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 101,0 +) +declText (MLText +uid 5836,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,2400,52000,3200" +st "btns : std_ulogic_vector(g_btnsNb-1 DOWNTO 0)" +) +) +*43 (PortIoIn +uid 5841,0 +shape (CompositeShape +uid 5842,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5843,0 +sl 0 +ro 270 +xt "89000,87625,90500,88375" +) +(Line +uid 5844,0 +sl 0 +ro 270 +xt "90500,88000,91000,88000" +pts [ +"90500,88000" +"91000,88000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 5845,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5846,0 +va (VaSet +) +xt "85100,87400,88000,88600" +st "btns" +ju 2 +blo "88000,88400" +tm "WireNameMgr" +) +) +) +*44 (Net +uid 5847,0 +lang 11 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 102,0 +) +declText (MLText +uid 5848,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,53500,7200" +st "leds : std_ulogic_vector(g_dataWidth-1 DOWNTO 0)" +) +) +*45 (PortIoOut +uid 5853,0 +shape (CompositeShape +uid 5854,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 5855,0 +sl 0 +ro 90 +xt "89000,88625,90500,89375" +) +(Line +uid 5856,0 +sl 0 +ro 90 +xt "90500,89000,91000,89000" +pts [ +"91000,89000" +"90500,89000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 5857,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5858,0 +va (VaSet +) +xt "85200,88400,88000,89600" +st "leds" +ju 2 +blo "88000,89400" +tm "WireNameMgr" +) +) +) +*46 (Net +uid 7050,0 +lang 11 +decl (Decl +n "PCTarget" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 15 +suid 103,0 +) +declText (MLText +uid 7051,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,27200,53500,28000" +st "SIGNAL PCTarget : unsigned(c_dataWidth - 1 downto 0)" +) +) +*47 (Net +uid 7052,0 +lang 11 +decl (Decl +n "PCPlus4" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 12 +suid 104,0 +) +declText (MLText +uid 7053,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,24800,53500,25600" +st "SIGNAL PCPlus4 : unsigned(c_dataWidth - 1 downto 0)" +) +) +*48 (Net +uid 7054,0 +decl (Decl +n "PCNext" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 11 +suid 105,0 +) +declText (MLText +uid 7055,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,24000,52500,24800" +st "SIGNAL PCNext : unsigned(c_dataWidth-1 DOWNTO 0)" +) +) +*49 (Net +uid 7170,0 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 14 +suid 107,0 +) +declText (MLText +uid 7171,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,26400,41000,27200" +st "SIGNAL PCSrc : std_uLogic" +) +) +*50 (Net +uid 7180,0 +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(c_dataWidth - 1 DOWNTO 0)" +o 10 +suid 109,0 +) +declText (MLText +uid 7181,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,23200,53500,24000" +st "SIGNAL PC : unsigned(c_dataWidth - 1 DOWNTO 0)" +) +) +*51 (SaComponent +uid 7205,0 +optionalChildren [ +*52 (CptPort +uid 7190,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7191,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40250,86625,41000,87375" +) +tg (CPTG +uid 7192,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7193,0 +va (VaSet +) +xt "41000,86400,43300,87600" +st "in1" +blo "41000,87400" +) +s (Text +uid 7194,0 +va (VaSet +) +xt "41000,87600,41000,87600" +blo "41000,87600" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*53 (CptPort +uid 7195,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7196,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "46000,88625,46750,89375" +) +tg (CPTG +uid 7197,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7198,0 +va (VaSet +) +xt "43000,88400,46000,89600" +st "out1" +ju 2 +blo "46000,89400" +) +s (Text +uid 7199,0 +va (VaSet +) +xt "46000,89600,46000,89600" +ju 2 +blo "46000,89600" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +*54 (CptPort +uid 7200,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7201,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "40250,90625,41000,91375" +) +tg (CPTG +uid 7202,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7203,0 +va (VaSet +) +xt "41000,90400,43300,91600" +st "in2" +blo "41000,91400" +) +s (Text +uid 7204,0 +va (VaSet +) +xt "41000,91600,41000,91600" +blo "41000,91600" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 2003,0 +) +) +) +] +shape (Alu +uid 7206,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "41000,85000,46000,93000" +) +showPorts 0 +oxt "35000,16000,40000,24000" +ttg (MlTextGroup +uid 7207,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*55 (Text +uid 7208,0 +va (VaSet +font "Arial,8,1" +) +xt "34910,91700,38910,92700" +st "operators" +blo "34910,92500" +tm "BdLibraryNameMgr" +) +*56 (Text +uid 7209,0 +va (VaSet +font "Arial,8,1" +) +xt "34910,92700,40710,93700" +st "addUnsigned" +blo "34910,93500" +tm "CptNameMgr" +) +*57 (Text +uid 7210,0 +va (VaSet +font "Arial,8,1" +) +xt "34910,93700,39610,94700" +st "U_PCAdder" +blo "34910,94500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7211,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7212,0 +text (MLText +uid 7213,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "41000,95800,63500,97400" +st "dataBitNb = c_dataWidth ( positive ) +delay = c_tAdd ( time ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tAdd" +) +] +) +viewicon (ZoomableIcon +uid 7214,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "41250,91250,42750,92750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*58 (SaComponent +uid 7299,0 +optionalChildren [ +*59 (CptPort +uid 7309,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7310,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "125250,91625,126000,92375" +) +tg (CPTG +uid 7311,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7312,0 +va (VaSet +) +xt "126000,91400,128300,92600" +st "in1" +blo "126000,92400" +) +s (Text +uid 7313,0 +va (VaSet +) +xt "126000,92600,126000,92600" +blo "126000,92600" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*60 (CptPort +uid 7314,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7315,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "131000,93625,131750,94375" +) +tg (CPTG +uid 7316,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7317,0 +va (VaSet +) +xt "128000,93400,131000,94600" +st "out1" +ju 2 +blo "131000,94400" +) +s (Text +uid 7318,0 +va (VaSet +) +xt "131000,94600,131000,94600" +ju 2 +blo "131000,94600" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*61 (CptPort +uid 7319,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7320,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "125250,95625,126000,96375" +) +tg (CPTG +uid 7321,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7322,0 +va (VaSet +) +xt "126000,95400,128300,96600" +st "in2" +blo "126000,96400" +) +s (Text +uid 7323,0 +va (VaSet +) +xt "126000,96600,126000,96600" +blo "126000,96600" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +) +) +) +] +shape (Alu +uid 7300,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "126000,90000,131000,98000" +) +showPorts 0 +oxt "35000,16000,40000,24000" +ttg (MlTextGroup +uid 7301,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*62 (Text +uid 7302,0 +va (VaSet +font "Arial,8,1" +) +xt "126910,97700,130910,98700" +st "operators" +blo "126910,98500" +tm "BdLibraryNameMgr" +) +*63 (Text +uid 7303,0 +va (VaSet +font "Arial,8,1" +) +xt "126910,98700,132710,99700" +st "addUnsigned" +blo "126910,99500" +tm "CptNameMgr" +) +*64 (Text +uid 7304,0 +va (VaSet +font "Arial,8,1" +) +xt "126910,99700,132310,100700" +st "U_beqAdder" +blo "126910,100500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7305,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7306,0 +text (MLText +uid 7307,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "126000,100800,148500,102400" +st "dataBitNb = c_dataWidth ( positive ) +delay = c_tAdd ( time ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tAdd" +) +] +) +viewicon (ZoomableIcon +uid 7308,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "126250,96250,127750,97750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*65 (SaComponent +uid 7354,0 +optionalChildren [ +*66 (CptPort +uid 7338,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7339,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "113250,79625,114000,80375" +) +tg (CPTG +uid 7340,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7341,0 +va (VaSet +) +xt "114275,79400,116575,80600" +st "in0" +blo "114275,80400" +) +s (Text +uid 7364,0 +va (VaSet +) +xt "114275,80600,114275,80600" +blo "114275,80600" +) +) +thePort (LogicalPort +decl (Decl +n "in0" +t "std_uLogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*67 (CptPort +uid 7342,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7343,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "118000,80625,118750,81375" +) +tg (CPTG +uid 7344,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7345,0 +va (VaSet +fg "0,65535,0" +font "Verdana,8,0" +) +xt "114300,80500,118000,81500" +st "muxOut" +ju 2 +blo "118000,81300" +) +s (Text +uid 7365,0 +va (VaSet +) +xt "118000,81500,118000,81500" +ju 2 +blo "118000,81500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "muxOut" +t "std_uLogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 3 +suid 2,0 +) +) +) +*68 (CptPort +uid 7346,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7347,0 +ro 180 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "116625,78750,117375,79500" +) +tg (CPTG +uid 7348,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7349,0 +ro 270 +va (VaSet +) +xt "116400,80000,117600,82200" +st "sel" +ju 2 +blo "117400,80000" +) +s (Text +uid 7366,0 +ro 270 +va (VaSet +) +xt "117600,80000,117600,80000" +ju 2 +blo "117600,80000" +) +) +thePort (LogicalPort +decl (Decl +n "sel" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*69 (CptPort +uid 7350,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7351,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "113250,81625,114000,82375" +) +tg (CPTG +uid 7352,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7353,0 +va (VaSet +) +xt "114279,81093,116579,82293" +st "in1" +blo "114279,82093" +) +s (Text +uid 7367,0 +va (VaSet +) +xt "114279,82293,114279,82293" +blo "114279,82293" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +) +] +shape (Mux +uid 7355,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "114000,78000,118000,84000" +) +showPorts 0 +oxt "42000,-11000,48000,5000" +ttg (MlTextGroup +uid 7356,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*70 (Text +uid 7357,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "115600,82700,118700,83700" +st "gates" +blo "115600,83500" +tm "BdLibraryNameMgr" +) +*71 (Text +uid 7358,0 +va (VaSet +font "Verdana,8,1" +) +xt "115600,83700,127100,84700" +st "mux2to1ULogicVector" +blo "115600,84500" +tm "CptNameMgr" +) +*72 (Text +uid 7359,0 +va (VaSet +font "Verdana,8,1" +) +xt "115600,84700,121500,85700" +st "U_muxSrcB" +blo "115600,85500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7360,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7361,0 +text (MLText +uid 7362,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "119000,87800,137500,89800" +st "dataBitNb = c_dataWidth ( positive ) +delay = c_tMux ( time ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "delay" +type "time" +value "c_tMux" +) +] +) +viewicon (ZoomableIcon +uid 7363,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "114250,82250,115750,83750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*73 (Net +uid 7374,0 +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 29 +suid 113,0 +) +declText (MLText +uid 7375,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,38400,57000,39200" +st "SIGNAL writeData : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*74 (SaComponent +uid 7384,0 +optionalChildren [ +*75 (CptPort +uid 7394,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7395,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "115250,96625,116000,97375" +) +tg (CPTG +uid 7396,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7397,0 +va (VaSet +isHidden 1 +) +xt "116000,96700,118300,97900" +st "in1" +blo "116000,97700" +) +s (Text +uid 7398,0 +va (VaSet +isHidden 1 +) +xt "116000,97900,116000,97900" +blo "116000,97900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +) +) +) +*76 (CptPort +uid 7399,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 7400,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "121000,96625,121750,97375" +) +tg (CPTG +uid 7401,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 7402,0 +va (VaSet +isHidden 1 +) +xt "118000,96700,121000,97900" +st "out1" +ju 2 +blo "121000,97700" +) +s (Text +uid 7403,0 +va (VaSet +isHidden 1 +) +xt "121000,97900,121000,97900" +ju 2 +blo "121000,97900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +) +) +) +] +shape (Buf +uid 7385,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "116000,94000,121000,100000" +) +showPorts 0 +oxt "36000,15000,41000,21000" +ttg (MlTextGroup +uid 7386,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 7387,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "111310,99600,114410,100600" +st "gates" +blo "111310,100400" +tm "BdLibraryNameMgr" +) +*78 (Text +uid 7388,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "111310,100600,121510,101600" +st "transUlogUnsigned" +blo "111310,101400" +tm "CptNameMgr" +) +*79 (Text +uid 7389,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "111310,100600,122610,101600" +st "U_immextToUnsigned" +blo "111310,101400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 7390,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 7391,0 +text (MLText +uid 7392,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "116000,104000,134500,106000" +st "delay = 0 ps ( time ) +dataBitNb = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 7393,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "116250,98250,117750,99750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*80 (Net +uid 7404,0 +decl (Decl +n "out1" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 22 +suid 114,0 +) +declText (MLText +uid 7405,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,32800,52500,33600" +st "SIGNAL out1 : unsigned(c_dataWidth-1 DOWNTO 0)" +) +) +*81 (Net +uid 7430,0 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 9 +suid 116,0 +) +declText (MLText +uid 7431,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,22400,41000,23200" +st "SIGNAL ALUSrc : std_uLogic" +) +) +*82 (Net +uid 7476,0 +lang 11 +decl (Decl +n "memWrite" +t "std_ulogic" +o 21 +suid 118,0 +) +declText (MLText +uid 7477,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,32000,41000,32800" +st "SIGNAL memWrite : std_ulogic" +) +) +*83 (Net +uid 7632,0 +lang 11 +decl (Decl +n "result" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 25 +suid 126,0 +) +declText (MLText +uid 7633,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,35200,57000,36000" +st "SIGNAL result : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*84 (Net +uid 8703,0 +decl (Decl +n "c_fourUnsigned" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 16 +suid 131,0 +i "to_unsigned(4, c_dataWidth)" +) +declText (MLText +uid 8704,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,28000,72500,28800" +st "SIGNAL c_fourUnsigned : unsigned(c_dataWidth-1 DOWNTO 0) := to_unsigned(4, c_dataWidth)" +) +) +*85 (Net +uid 8879,0 +decl (Decl +n "c_zeroUlogVec" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 17 +suid 135,0 +i "(others=>'0')" +) +declText (MLText +uid 8880,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,28800,65500,29600" +st "SIGNAL c_zeroUlogVec : std_ulogic_vector(c_dataWidth-1 DOWNTO 0) := (others=>'0')" +) +) +*86 (SaComponent +uid 8891,0 +optionalChildren [ +*87 (CptPort +uid 8883,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8884,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "50250,96625,51000,97375" +) +tg (CPTG +uid 8885,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8886,0 +va (VaSet +isHidden 1 +) +xt "51000,96700,53300,97900" +st "in1" +blo "51000,97700" +) +s (Text +uid 8901,0 +va (VaSet +isHidden 1 +) +xt "51000,97900,51000,97900" +blo "51000,97900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "unsigned" +b "(dataBitNb-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*88 (CptPort +uid 8887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 8888,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "56000,96625,56750,97375" +) +tg (CPTG +uid 8889,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 8890,0 +va (VaSet +isHidden 1 +) +xt "53000,96700,56000,97900" +st "out1" +ju 2 +blo "56000,97700" +) +s (Text +uid 8902,0 +va (VaSet +isHidden 1 +) +xt "56000,97900,56000,97900" +ju 2 +blo "56000,97900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 8892,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "51000,94000,56000,100000" +) +showPorts 0 +oxt "36000,15000,41000,21000" +ttg (MlTextGroup +uid 8893,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*89 (Text +uid 8894,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "85310,110600,88410,111600" +st "gates" +blo "85310,111400" +tm "BdLibraryNameMgr" +) +*90 (Text +uid 8895,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "85310,111800,95510,112800" +st "transUnsignedUlog" +blo "85310,112600" +tm "CptNameMgr" +) +*91 (Text +uid 8896,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "85310,111600,87810,112600" +st "U_0" +blo "85310,112400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 8897,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 8898,0 +text (MLText +uid 8899,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "51000,101600,69500,103600" +st "delay = 0 ps ( time ) +dataBitNb = c_dataWidth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "0 ps" +) +(GiElement +name "dataBitNb" +type "positive" +value "c_dataWidth" +) +] +) +viewicon (ZoomableIcon +uid 8900,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "51250,98250,52750,99750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*92 (Net +uid 8917,0 +decl (Decl +n "PCPlus4_UlogVec" +t "std_ulogic_vector" +b "(c_dataWidth - 1 downto 0)" +o 13 +suid 138,0 +) +declText (MLText +uid 8918,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,25600,58000,26400" +st "SIGNAL PCPlus4_UlogVec : std_ulogic_vector(c_dataWidth - 1 downto 0)" +) +) +*93 (Net +uid 9094,0 +lang 11 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 30 +suid 139,0 +) +declText (MLText +uid 9095,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,33600,57000,34400" +st "SIGNAL readData : std_ulogic_vector(c_dataWidth-1 DOWNTO 0)" +) +) +*94 (Grouping +uid 9226,0 +optionalChildren [ +*95 (CommentGraphic +uid 9216,0 +shape (Arc2D +pts [ +"82000,42000" +"94000,41000" +"98000,42000" +] +uid 9217,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "82000,40675,98000,42000" +) +) +*96 (CommentText +uid 9223,0 +shape (Rectangle +uid 9224,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "90000,39000,94000,41000" +) +text (MLText +uid 9225,0 +va (VaSet +fg "32768,0,65280" +) +xt "90200,39200,93400,40400" +st " +Tdec +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 3600 +) +) +*97 (CommentGraphic +uid 9218,0 +shape (PolyLine2D +pts [ +"97993,42006" +"99993,43006" +] +as 2 +uid 9219,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "97993,42006,99993,43006" +) +) +] +shape (GroupingShape +uid 9227,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "82000,39000,99993,43006" +) +) +*98 (CommentText +uid 9232,0 +shape (Rectangle +uid 9233,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "31000,70000,35000,72000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9234,0 +va (VaSet +fg "32768,0,65280" +) +xt "31200,70200,33800,71400" +st " +Tpc +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4000 +) +) +*99 (Grouping +uid 9237,0 +optionalChildren [ +*100 (CommentGraphic +uid 9235,0 +shape (PolyLine2D +pts [ +"33555,72570" +"33999,73000" +] +as 2 +uid 9236,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "33555,72570,33999,73000" +) +oxt "38993,72006,40993,73006" +) +*101 (CommentGraphic +uid 9230,0 +shape (Arc2D +pts [ +"30001,72566" +"32667,72096" +"33557,72566" +] +uid 9231,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "30001,71956,33557,72566" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9238,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,71994,34000,73000" +) +oxt "23000,70666,40993,73006" +) +*102 (Grouping +uid 9239,0 +optionalChildren [ +*103 (CommentGraphic +uid 9241,0 +shape (PolyLine2D +pts [ +"24333,74570" +"24999,75000" +] +as 2 +uid 9242,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "24333,74570,24999,75000" +) +oxt "38993,72006,40993,73006" +) +*104 (CommentGraphic +uid 9243,0 +shape (Arc2D +pts [ +"19001,74566" +"23000,74126" +"24335,74566" +] +uid 9244,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "19001,73986,24335,74566" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9240,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "19000,73994,25000,75000" +) +oxt "23000,70666,40993,73006" +) +*105 (CommentText +uid 9245,0 +shape (Rectangle +uid 9246,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "19000,72000,23000,74000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9247,0 +va (VaSet +fg "32768,0,65280" +) +xt "19200,72200,22700,73400" +st " +Tmux +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4000 +) +) +*106 (CommentText +uid 9248,0 +shape (Rectangle +uid 9249,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "113000,75000,117000,77000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9250,0 +va (VaSet +fg "32768,0,65280" +) +xt "113200,75200,116700,76400" +st " +Tmux +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4000 +) +) +*107 (Grouping +uid 9251,0 +optionalChildren [ +*108 (CommentGraphic +uid 9253,0 +shape (PolyLine2D +pts [ +"118333,77570" +"118999,78000" +] +as 2 +uid 9254,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "118333,77570,118999,78000" +) +oxt "38993,72006,40993,73006" +) +*109 (CommentGraphic +uid 9255,0 +shape (Arc2D +pts [ +"113001,77566" +"117000,77126" +"118335,77566" +] +uid 9256,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "113001,76986,118335,77566" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9252,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "113000,76994,119000,78000" +) +oxt "23000,70666,40993,73006" +) +*110 (CommentText +uid 9257,0 +shape (Rectangle +uid 9258,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "177000,75000,181000,77000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9259,0 +va (VaSet +fg "32768,0,65280" +) +xt "177200,75200,180700,76400" +st " +Tmux +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4000 +) +) +*111 (Grouping +uid 9260,0 +optionalChildren [ +*112 (CommentGraphic +uid 9262,0 +shape (PolyLine2D +pts [ +"182333,77570" +"182999,78000" +] +as 2 +uid 9263,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "182333,77570,182999,78000" +) +oxt "38993,72006,40993,73006" +) +*113 (CommentGraphic +uid 9264,0 +shape (Arc2D +pts [ +"177001,77566" +"181000,77126" +"182335,77566" +] +uid 9265,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "177001,76986,182335,77566" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9261,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "177000,76994,183000,78000" +) +oxt "23000,70666,40993,73006" +) +*114 (CommentText +uid 9266,0 +shape (Rectangle +uid 9267,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "160000,65000,166000,67000" +) +autoResize 1 +oxt "90000,39000,94000,41000" +text (MLText +uid 9268,0 +va (VaSet +fg "32768,0,65280" +) +xt "160200,65200,165600,66400" +st " +Tmem_rd +" +tm "CommentText" +visibleHeight 2000 +visibleWidth 6000 +) +) +*115 (Grouping +uid 9269,0 +optionalChildren [ +*116 (CommentGraphic +uid 9271,0 +shape (PolyLine2D +pts [ +"165889,67572" +"166999,68000" +] +as 2 +uid 9272,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "165889,67572,166999,68000" +) +oxt "38993,72006,40993,73006" +) +*117 (CommentGraphic +uid 9273,0 +shape (Arc2D +pts [ +"157001,67568" +"163666,67136" +"165891,67568" +] +uid 9274,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "157001,66994,165891,67568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9270,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "157000,67000,167000,68000" +) +oxt "23000,70666,40993,73006" +) +*118 (CommentText +uid 9275,0 +shape (Rectangle +uid 9276,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "54000,74000,60000,76000" +) +autoResize 1 +oxt "90000,39000,94000,41000" +text (MLText +uid 9277,0 +va (VaSet +fg "32768,0,65280" +) +xt "54200,74200,59600,75400" +st " +Tmem_rd +" +tm "CommentText" +visibleHeight 2000 +visibleWidth 6000 +) +) +*119 (Grouping +uid 9278,0 +optionalChildren [ +*120 (CommentGraphic +uid 9280,0 +shape (PolyLine2D +pts [ +"59889,76572" +"60999,77000" +] +as 2 +uid 9281,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "59889,76572,60999,77000" +) +oxt "38993,72006,40993,73006" +) +*121 (CommentGraphic +uid 9282,0 +shape (Arc2D +pts [ +"51001,76568" +"57666,76136" +"59891,76568" +] +uid 9283,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "51001,75994,59891,76568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9279,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "51000,76000,61000,77000" +) +oxt "23000,70666,40993,73006" +) +*122 (CommentText +uid 9284,0 +shape (Rectangle +uid 9285,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "128000,67000,132200,69000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9286,0 +va (VaSet +fg "32768,0,65280" +) +xt "128200,67200,131100,68400" +st " +Talu +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4200 +) +) +*123 (Grouping +uid 9287,0 +optionalChildren [ +*124 (CommentGraphic +uid 9289,0 +shape (PolyLine2D +pts [ +"135777,69572" +"136999,70000" +] +as 2 +uid 9290,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "135777,69572,136999,70000" +) +oxt "38993,72006,40993,73006" +) +*125 (CommentGraphic +uid 9291,0 +shape (Arc2D +pts [ +"126002,69568" +"133333,69141" +"135780,69568" +] +uid 9292,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "126002,69000,135780,69568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9288,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "126000,69000,137000,70000" +) +oxt "23000,70666,40993,73006" +) +*126 (CommentText +uid 9293,0 +shape (Rectangle +uid 9294,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "123000,88000,127200,90000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9295,0 +va (VaSet +fg "32768,0,65280" +) +xt "123200,88200,126400,89400" +st " +Tadd +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4200 +) +) +*127 (Grouping +uid 9296,0 +optionalChildren [ +*128 (CommentGraphic +uid 9298,0 +shape (PolyLine2D +pts [ +"131333,89572" +"131999,90000" +] +as 2 +uid 9299,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "131333,89572,131999,90000" +) +oxt "38993,72006,40993,73006" +) +*129 (CommentGraphic +uid 9300,0 +shape (Arc2D +pts [ +"126001,89568" +"130000,89141" +"131335,89568" +] +uid 9301,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "126001,89005,131335,89568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9297,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "126000,89000,132000,90000" +) +oxt "23000,70666,40993,73006" +) +*130 (CommentText +uid 9302,0 +shape (Rectangle +uid 9303,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "41000,82000,45200,84000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9304,0 +va (VaSet +fg "32768,0,65280" +) +xt "41200,82200,44400,83400" +st " +Tadd +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4200 +) +) +*131 (Grouping +uid 9305,0 +optionalChildren [ +*132 (CommentGraphic +uid 9307,0 +shape (PolyLine2D +pts [ +"45333,84572" +"45999,85000" +] +as 2 +uid 9308,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "45333,84572,45999,85000" +) +oxt "38993,72006,40993,73006" +) +*133 (CommentGraphic +uid 9309,0 +shape (Arc2D +pts [ +"40001,84568" +"44000,84141" +"45335,84568" +] +uid 9310,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "40001,84005,45335,84568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9306,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "40000,84000,46000,85000" +) +oxt "23000,70666,40993,73006" +) +*134 (Grouping +uid 9311,0 +optionalChildren [ +*135 (CommentGraphic +uid 9313,0 +shape (PolyLine2D +pts [ +"98111,100428" +"99999,100000" +] +as 2 +uid 9314,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "98111,100000,99999,100428" +) +oxt "38993,70666,40993,71666" +) +*136 (CommentGraphic +uid 9315,0 +shape (Arc2D +pts [ +"98117,100432" +"94334,100859" +"83001,100432" +] +uid 9316,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "83001,100432,98117,101000" +) +oxt "23000,71673,39000,73006" +) +] +shape (GroupingShape +uid 9312,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "83000,100000,100000,101000" +) +oxt "23000,70666,40993,73006" +) +*137 (CommentText +uid 9317,0 +shape (Rectangle +uid 9318,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "91000,101000,95000,103000" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9319,0 +va (VaSet +fg "32768,0,65280" +) +xt "91200,101200,94200,102400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4000 +) +) +*138 (Grouping +uid 9320,0 +optionalChildren [ +*139 (CommentGraphic +uid 9322,0 +shape (PolyLine2D +pts [ +"56333,93572" +"56999,94000" +] +as 2 +uid 9323,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "56333,93572,56999,94000" +) +oxt "38993,72006,40993,73006" +) +*140 (CommentGraphic +uid 9324,0 +shape (Arc2D +pts [ +"51001,93568" +"55000,93141" +"56335,93568" +] +uid 9325,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "51001,93005,56335,93568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9321,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "51000,93000,57000,94000" +) +oxt "23000,70666,40993,73006" +) +*141 (CommentText +uid 9326,0 +shape (Rectangle +uid 9327,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "53043,91504,57243,93504" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9328,0 +va (VaSet +fg "32768,0,65280" +) +xt "53243,91704,56143,92904" +st " +0 ps +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4200 +) +) +*142 (CommentText +uid 9329,0 +shape (Rectangle +uid 9330,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "118043,91504,122243,93504" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9331,0 +va (VaSet +fg "32768,0,65280" +) +xt "118243,91704,121143,92904" +st " +0 ps +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4200 +) +) +*143 (Grouping +uid 9332,0 +optionalChildren [ +*144 (CommentGraphic +uid 9334,0 +shape (PolyLine2D +pts [ +"121333,93572" +"121999,94000" +] +as 2 +uid 9335,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "121333,93572,121999,94000" +) +oxt "38993,72006,40993,73006" +) +*145 (CommentGraphic +uid 9336,0 +shape (Arc2D +pts [ +"116001,93568" +"120000,93141" +"121335,93568" +] +uid 9337,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "116001,93005,121335,93568" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9333,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "116000,93000,122000,94000" +) +oxt "23000,70666,40993,73006" +) +*146 (Grouping +uid 9344,0 +optionalChildren [ +*147 (CommentGraphic +uid 9340,0 +shape (PolyLine2D +pts [ +"152751,86649" +"151751,86649" +] +as 2 +uid 9341,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "151751,86649,152751,86649" +) +oxt "150000,94000,151000,94000" +) +*148 (CommentGraphic +uid 9338,0 +shape (Arc2D +pts [ +"151718,85575" +"154720,84777" +"152718,86575" +] +uid 9339,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "151642,83540,154751,86649" +) +oxt "149891,90891,153000,94000" +) +] +shape (GroupingShape +uid 9345,0 +layer 8 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "151642,83540,154751,86649" +) +oxt "149891,90891,153000,94000" +) +*149 (CommentText +uid 9346,0 +shape (Rectangle +uid 9347,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "151608,84371,155608,86371" +) +autoResize 1 +oxt "90000,39000,94000,41000" +text (MLText +uid 9348,0 +va (VaSet +fg "32768,0,65280" +font "Verdana,8,0" +) +xt "151808,84571,155008,85571" +st " +Tsetup +" +tm "CommentText" +visibleHeight 2000 +visibleWidth 4000 +) +) +*150 (CommentText +uid 9355,0 +shape (Rectangle +uid 9356,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "77608,80371,81608,82371" +) +autoResize 1 +oxt "90000,39000,94000,41000" +text (MLText +uid 9357,0 +va (VaSet +fg "32768,0,65280" +font "Verdana,8,0" +) +xt "77808,80571,81008,81571" +st " +Tsetup +" +tm "CommentText" +visibleHeight 2000 +visibleWidth 4000 +) +) +*151 (Grouping +uid 9358,0 +optionalChildren [ +*152 (CommentGraphic +uid 9360,0 +shape (PolyLine2D +pts [ +"78751,82649" +"77751,82649" +] +as 2 +uid 9361,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "77751,82649,78751,82649" +) +oxt "150000,94000,151000,94000" +) +*153 (CommentGraphic +uid 9362,0 +shape (Arc2D +pts [ +"77718,81575" +"80720,80777" +"78718,82575" +] +uid 9363,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "77642,79540,80751,82649" +) +oxt "149891,90891,153000,94000" +) +] +shape (GroupingShape +uid 9359,0 +layer 8 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "77642,79540,80751,82649" +) +oxt "149891,90891,153000,94000" +) +*154 (CommentText +uid 9364,0 +shape (Rectangle +uid 9365,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "151608,73371,157608,75371" +) +autoResize 1 +oxt "90000,39000,94000,41000" +text (MLText +uid 9366,0 +va (VaSet +fg "32768,0,65280" +font "Verdana,8,0" +) +xt "151808,73571,156408,74571" +st " +Tmem_wr +" +tm "CommentText" +visibleHeight 2000 +visibleWidth 6000 +) +) +*155 (Grouping +uid 9367,0 +optionalChildren [ +*156 (CommentGraphic +uid 9369,0 +shape (PolyLine2D +pts [ +"152751,75649" +"151751,75649" +] +as 2 +uid 9370,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "151751,75649,152751,75649" +) +oxt "150000,94000,151000,94000" +) +*157 (CommentGraphic +uid 9371,0 +shape (Arc2D +pts [ +"151718,74575" +"154720,73777" +"152718,75575" +] +uid 9372,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "151642,72540,154751,75649" +) +oxt "149891,90891,153000,94000" +) +] +shape (GroupingShape +uid 9368,0 +layer 8 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "151642,72540,154751,75649" +) +oxt "149891,90891,153000,94000" +) +*158 (CommentText +uid 9373,0 +shape (Rectangle +uid 9374,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "92608,67371,96608,69371" +) +autoResize 1 +oxt "90000,39000,94000,41000" +text (MLText +uid 9375,0 +va (VaSet +fg "32768,0,65280" +font "Verdana,8,0" +) +xt "92808,67571,95908,68571" +st " +Trf_wr +" +tm "CommentText" +visibleHeight 2000 +visibleWidth 4000 +) +) +*159 (Grouping +uid 9376,0 +optionalChildren [ +*160 (CommentGraphic +uid 9378,0 +shape (PolyLine2D +pts [ +"93751,69649" +"92751,69649" +] +as 2 +uid 9379,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "92751,69649,93751,69649" +) +oxt "150000,94000,151000,94000" +) +*161 (CommentGraphic +uid 9380,0 +shape (Arc2D +pts [ +"92718,68575" +"95720,67777" +"93718,69575" +] +uid 9381,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "92642,66540,95751,69649" +) +oxt "149891,90891,153000,94000" +) +] +shape (GroupingShape +uid 9377,0 +layer 8 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "92642,66540,95751,69649" +) +oxt "149891,90891,153000,94000" +) +*162 (CommentText +uid 9391,0 +shape (Rectangle +uid 9392,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "65535,65535,65535" +lineColor "65535,65535,65535" +lineWidth -1 +) +xt "87899,63302,92099,65302" +) +oxt "90000,39000,94000,41000" +text (MLText +uid 9393,0 +va (VaSet +fg "32768,0,65280" +) +xt "88099,63502,91799,64702" +st " +Trf_rd +" +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 4200 +) +) +*163 (Grouping +uid 9394,0 +optionalChildren [ +*164 (CommentGraphic +uid 9396,0 +shape (PolyLine2D +pts [ +"97999,66145" +"99999,66999" +] +as 2 +uid 9397,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "97999,66145,99999,66999" +) +oxt "38993,72006,40993,73006" +) +*165 (CommentGraphic +uid 9398,0 +shape (Arc2D +pts [ +"82001,66139" +"94000,65285" +"98005,66139" +] +uid 9399,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +lineColor "32768,0,65280" +) +xt "82001,65006,98005,66139" +) +oxt "23000,70666,39000,71999" +) +] +shape (GroupingShape +uid 9395,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "82000,65000,100000,67000" +) +oxt "23000,70666,40993,73006" +) +*166 (SaComponent +uid 9502,0 +optionalChildren [ +*167 (CptPort +uid 9486,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9487,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "99000,96625,99750,97375" +) +tg (CPTG +uid 9488,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9489,0 +va (VaSet +font "Verdana,12,0" +) +xt "91200,96300,98000,97700" +st "extended" +ju 2 +blo "98000,97500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "extended" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 1,0 +) +) +) +*168 (CptPort +uid 9490,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9491,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "83250,96625,84000,97375" +) +tg (CPTG +uid 9492,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9493,0 +va (VaSet +font "Verdana,12,0" +) +xt "85000,96300,89000,97700" +st "input" +blo "85000,97500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(31 DOWNTO 7)" +o 1 +suid 2,0 +) +) +) +*169 (CptPort +uid 9494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9495,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "99000,93625,99750,94375" +) +tg (CPTG +uid 9496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9497,0 +va (VaSet +font "Verdana,12,0" +) +xt "95400,93300,98000,94700" +st "src" +ju 2 +blo "98000,94500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "src" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +*170 (CommentGraphic +uid 9498,0 +shape (CustomPolygon +pts [ +"84000,96000" +"99000,96000" +"99000,99000" +"84000,99000" +"84000,96000" +] +uid 9499,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "84000,96000,99000,99000" +) +oxt "16000,13000,31000,16000" +) +*171 (CommentGraphic +uid 9500,0 +shape (CustomPolygon +pts [ +"84001,99000" +"84001,96000" +"98999,93000" +"98999,99000" +"84001,99000" +] +uid 9501,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "26368,26368,26368" +) +xt "84001,93000,98999,99000" +) +oxt "16001,10000,30999,16000" +) +] +shape (Rectangle +uid 9503,0 +va (VaSet +vasetType 1 +transparent 1 +lineColor "26368,26368,26368" +lineStyle 2 +) +xt "84000,93000,99000,99000" +fos 1 +) +oxt "16000,10000,31000,16000" +ttg (MlTextGroup +uid 9504,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*172 (Text +uid 9505,0 +va (VaSet +font "Verdana,9,1" +) +xt "78500,98300,83500,99500" +st "HEIRV32" +blo "78500,99300" +tm "BdLibraryNameMgr" +) +*173 (Text +uid 9506,0 +va (VaSet +font "Verdana,9,1" +) +xt "78500,99500,82600,100700" +st "extend" +blo "78500,100500" +tm "CptNameMgr" +) +*174 (Text +uid 9507,0 +va (VaSet +font "Verdana,9,1" +) +xt "78500,100700,83900,101900" +st "U_extend" +blo "78500,101700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9508,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9509,0 +text (MLText +uid 9510,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "83000,103800,106500,105400" +st "g_dataWidth = c_dataWidth ( positive ) +g_tExt = c_tExt ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tExt" +type "time" +value "c_tExt" +) +] +) +viewicon (ZoomableIcon +uid 9511,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "84250,97250,85750,98750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*175 (SaComponent +uid 9536,0 +optionalChildren [ +*176 (CptPort +uid 9512,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9513,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31625,76250,32375,77000" +) +tg (CPTG +uid 9514,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9515,0 +va (VaSet +font "Verdana,8,0" +) +xt "31184,77000,32784,78000" +st "clk" +blo "31184,77800" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*177 (CptPort +uid 9516,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9517,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,79625,34750,80375" +) +tg (CPTG +uid 9518,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9519,0 +va (VaSet +font "Verdana,8,0" +) +xt "31436,79454,33736,80454" +st "out1" +ju 2 +blo "33736,80254" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +) +*178 (CptPort +uid 9520,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9521,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29250,79625,30000,80375" +) +tg (CPTG +uid 9522,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9523,0 +va (VaSet +font "Verdana,8,0" +) +xt "30310,79500,32010,80500" +st "in1" +blo "30310,80300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +) +*179 (CptPort +uid 9524,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9525,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31625,84000,32375,84750" +) +tg (CPTG +uid 9526,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9527,0 +va (VaSet +font "Verdana,8,0" +) +xt "31414,83000,32914,84000" +st "en" +blo "31414,83800" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*180 (CptPort +uid 9528,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9529,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29250,81625,30000,82375" +) +tg (CPTG +uid 9530,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9531,0 +va (VaSet +font "Verdana,8,0" +) +xt "30264,81500,31764,82500" +st "rst" +blo "30264,82300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*181 (CommentGraphic +uid 9532,0 +shape (PolyLine2D +pts [ +"30000,77000" +"32000,79000" +] +uid 9533,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "30000,77000,32000,79000" +) +oxt "22000,13000,24000,15000" +) +*182 (CommentGraphic +uid 9534,0 +shape (PolyLine2D +pts [ +"32000,79000" +"34000,77000" +] +uid 9535,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "32000,77000,34000,79000" +) +oxt "24000,13000,26000,15000" +) +] +shape (Rectangle +uid 9537,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "30000,77000,34000,84000" +fos 1 +) +oxt "22000,13000,26000,20000" +ttg (MlTextGroup +uid 9538,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*183 (Text +uid 9539,0 +va (VaSet +font "Verdana,8,1" +) +xt "26600,85800,31200,86800" +st "HEIRV32" +blo "26600,86600" +tm "BdLibraryNameMgr" +) +*184 (Text +uid 9540,0 +va (VaSet +font "Verdana,8,1" +) +xt "26600,86800,38500,87800" +st "bufferUnsignedEnable" +blo "26600,87600" +tm "CptNameMgr" +) +*185 (Text +uid 9541,0 +va (VaSet +font "Verdana,8,1" +) +xt "26600,87800,32900,88800" +st "U_pcBuffer" +blo "26600,88600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9542,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9543,0 +text (MLText +uid 9544,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "28000,87600,49000,89200" +st "g_bitNb = c_dataWidth ( positive ) +g_tPC = c_tPC ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_bitNb" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tPC" +type "time" +value "c_tPC" +) +] +) +viewicon (ZoomableIcon +uid 9545,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "30250,82250,31750,83750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*186 (SaComponent +uid 9604,0 +optionalChildren [ +*187 (CptPort +uid 9580,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9581,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "180625,80749,181375,81499" +) +tg (CPTG +uid 9582,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9583,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "180500,82000,181500,83600" +st "sel" +ju 2 +blo "181300,82000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "sel" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 1,0 +) +) +) +*188 (CptPort +uid 9584,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9585,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177250,86625,178000,87375" +) +tg (CPTG +uid 9586,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9587,0 +va (VaSet +font "Verdana,8,0" +) +xt "178000,86500,179700,87500" +st "in4" +blo "178000,87300" +) +) +thePort (LogicalPort +decl (Decl +n "in4" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 23 +suid 2,0 +) +) +) +*189 (CptPort +uid 9588,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9589,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177250,82625,178000,83375" +) +tg (CPTG +uid 9590,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9591,0 +va (VaSet +font "Verdana,8,0" +) +xt "178000,82500,179700,83500" +st "in2" +blo "178000,83300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in2" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 13 +suid 3,0 +) +) +) +*190 (CptPort +uid 9592,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9593,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177250,80625,178000,81375" +) +tg (CPTG +uid 9594,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9595,0 +va (VaSet +font "Verdana,8,0" +) +xt "178000,80500,179700,81500" +st "in1" +blo "178000,81300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*191 (CptPort +uid 9596,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9597,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "177250,84625,178000,85375" +) +tg (CPTG +uid 9598,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9599,0 +va (VaSet +font "Verdana,8,0" +) +xt "178000,84500,179700,85500" +st "in3" +blo "178000,85300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in3" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 21 +suid 5,0 +) +) +) +*192 (CptPort +uid 9600,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9601,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "182000,83625,182750,84375" +) +tg (CPTG +uid 9602,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9603,0 +va (VaSet +font "Verdana,8,0" +) +xt "179700,83500,182000,84500" +st "out1" +ju 2 +blo "182000,84300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 25 +suid 6,0 +) +) +) +] +shape (Mux +uid 9605,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "178000,79000,182000,89000" +) +oxt "20000,14000,24000,24000" +ttg (MlTextGroup +uid 9606,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*193 (Text +uid 9607,0 +va (VaSet +font "Verdana,9,1" +) +xt "176000,90800,181000,92000" +st "HEIRV32" +blo "176000,91800" +tm "BdLibraryNameMgr" +) +*194 (Text +uid 9608,0 +va (VaSet +font "Verdana,9,1" +) +xt "176000,92000,186000,93200" +st "mux4To1ULogVec" +blo "176000,93000" +tm "CptNameMgr" +) +*195 (Text +uid 9609,0 +va (VaSet +font "Verdana,9,1" +) +xt "176000,93200,182400,94400" +st "U_muxData" +blo "176000,94200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9610,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9611,0 +text (MLText +uid 9612,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "176000,93600,199500,95200" +st "g_dataWidth = c_dataWidth ( positive ) +g_tMux = c_tMux ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tMux" +type "time" +value "c_tMux" +) +] +) +viewicon (ZoomableIcon +uid 9613,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "178250,87250,179750,88750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*196 (SaComponent +uid 9676,0 +optionalChildren [ +*197 (CptPort +uid 9656,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9657,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "130625,73027,131375,73777" +) +tg (CPTG +uid 9658,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9659,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "130300,74777,131700,77477" +st "ctrl" +ju 2 +blo "131500,74777" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "ctrl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 6,0 +) +) +) +*198 (CptPort +uid 9660,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9661,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "135000,79625,135750,80375" +) +tg (CPTG +uid 9662,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9663,0 +va (VaSet +font "Verdana,12,0" +) +xt "131200,79300,134000,80700" +st "res" +ju 2 +blo "134000,80500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "res" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +) +*199 (CptPort +uid 9664,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9665,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "125250,73625,126000,74375" +) +tg (CPTG +uid 9666,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9667,0 +va (VaSet +font "Verdana,12,0" +) +xt "127000,73300,130400,74700" +st "srcA" +blo "127000,74500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 8,0 +) +) +) +*200 (CptPort +uid 9668,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9669,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "125250,82625,126000,83375" +) +tg (CPTG +uid 9670,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9671,0 +va (VaSet +font "Verdana,12,0" +) +xt "127000,82300,130400,83700" +st "srcB" +blo "127000,83500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*201 (CptPort +uid 9672,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9673,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "135000,77625,135750,78375" +) +tg (CPTG +uid 9674,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9675,0 +va (VaSet +font "Verdana,12,0" +) +xt "130400,77300,134000,78700" +st "zero" +ju 2 +blo "134000,78500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 5 +suid 10,0 +) +) +) +] +shape (Alu +uid 9677,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "126000,71000,135000,86000" +) +oxt "15000,9000,24000,24000" +ttg (MlTextGroup +uid 9678,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*202 (Text +uid 9679,0 +va (VaSet +font "Verdana,9,1" +) +xt "133500,83300,138500,84500" +st "HEIRV32" +blo "133500,84300" +tm "BdLibraryNameMgr" +) +*203 (Text +uid 9680,0 +va (VaSet +font "Verdana,9,1" +) +xt "133500,84500,136200,85700" +st "ALU" +blo "133500,85500" +tm "CptNameMgr" +) +*204 (Text +uid 9681,0 +va (VaSet +font "Verdana,9,1" +) +xt "133500,85700,136900,86900" +st "U_alu" +blo "133500,86700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9682,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9683,0 +text (MLText +uid 9684,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "126000,89600,149500,91200" +st "g_datawidth = c_dataWidth ( positive ) +g_tALU = c_tALU ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_tALU" +type "time" +value "c_tALU" +) +] +) +viewicon (ZoomableIcon +uid 9685,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "126250,84250,127750,85750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*205 (SaComponent +uid 9738,0 +optionalChildren [ +*206 (CptPort +uid 9686,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9687,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84625,70250,85375,71000" +) +tg (CPTG +uid 9688,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9689,0 +va (VaSet +font "Verdana,12,0" +) +xt "83424,71345,85824,72745" +st "clk" +ju 2 +blo "85824,72545" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 1,0 +) +) +) +*207 (CptPort +uid 9690,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9691,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,74625,82000,75375" +) +tg (CPTG +uid 9692,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9693,0 +va (VaSet +font "Verdana,12,0" +) +xt "83000,74300,87500,75700" +st "addr1" +blo "83000,75500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr1" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*208 (CptPort +uid 9694,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9695,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,82625,82000,83375" +) +tg (CPTG +uid 9696,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9697,0 +va (VaSet +font "Verdana,12,0" +) +xt "83000,82300,90000,83700" +st "writeData" +blo "83000,83500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*209 (CptPort +uid 9698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9699,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "99000,75625,99750,76375" +) +tg (CPTG +uid 9700,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9701,0 +va (VaSet +font "Verdana,12,0" +) +xt "94700,75300,98000,76700" +st "RD1" +ju 2 +blo "98000,76500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +) +*210 (CptPort +uid 9702,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9703,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "99000,79625,99750,80375" +) +tg (CPTG +uid 9704,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9705,0 +va (VaSet +font "Verdana,12,0" +) +xt "94700,79300,98000,80700" +st "RD2" +ju 2 +blo "98000,80500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD2" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 9 +suid 5,0 +) +) +) +*211 (CptPort +uid 9706,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9707,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91625,70250,92375,71000" +) +tg (CPTG +uid 9708,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9709,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "91300,72000,92700,81900" +st "writeEnable3" +ju 2 +blo "92500,72000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnable3" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*212 (CptPort +uid 9710,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9711,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "87625,70250,88375,71000" +) +tg (CPTG +uid 9712,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9713,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "87300,72000,88700,74500" +st "rst" +ju 2 +blo "88500,72000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*213 (CptPort +uid 9714,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9715,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,76625,82000,77375" +) +tg (CPTG +uid 9716,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9717,0 +va (VaSet +font "Verdana,12,0" +) +xt "83000,76300,87500,77700" +st "addr2" +blo "83000,77500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr2" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 2 +suid 8,0 +) +) +) +*214 (CptPort +uid 9718,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9719,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,78625,82000,79375" +) +tg (CPTG +uid 9720,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9721,0 +va (VaSet +font "Verdana,12,0" +) +xt "83000,78300,87500,79700" +st "addr3" +blo "83000,79500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr3" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*215 (CptPort +uid 9722,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9723,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "94625,70250,95375,71000" +) +tg (CPTG +uid 9724,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9725,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "94300,72000,95700,74400" +st "en" +ju 2 +blo "95500,72000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 10 +suid 10,0 +) +) +) +*216 (CptPort +uid 9726,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9727,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "93625,85000,94375,85750" +) +tg (CPTG +uid 9728,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9729,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "93300,80400,94700,84000" +st "btns" +blo "94500,84000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +) +*217 (CptPort +uid 9730,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9731,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95625,85000,96375,85750" +) +tg (CPTG +uid 9732,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9733,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "95300,80600,96700,84000" +st "leds" +blo "96500,84000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 12 +suid 12,0 +) +) +) +*218 (CommentGraphic +uid 9734,0 +shape (PolyLine2D +pts [ +"83000,71000" +"85000,74000" +] +uid 9735,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "83000,71000,85000,74000" +) +oxt "17000,21000,19000,24000" +) +*219 (CommentGraphic +uid 9736,0 +shape (PolyLine2D +pts [ +"85000,74000" +"87000,71000" +] +uid 9737,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "85000,71000,87000,74000" +) +oxt "19000,21000,21000,24000" +) +] +shape (Rectangle +uid 9739,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "82000,71000,99000,85000" +fos 1 +) +oxt "16000,21000,33000,35000" +ttg (MlTextGroup +uid 9740,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*220 (Text +uid 9741,0 +va (VaSet +font "Verdana,9,1" +) +xt "78050,85300,83050,86500" +st "HEIRV32" +blo "78050,86300" +tm "BdLibraryNameMgr" +) +*221 (Text +uid 9742,0 +va (VaSet +font "Verdana,9,1" +) +xt "78050,86500,84950,87700" +st "registerFile" +blo "78050,87500" +tm "CptNameMgr" +) +*222 (Text +uid 9743,0 +va (VaSet +font "Verdana,9,1" +) +xt "78050,87700,86250,88900" +st "U_registerFile" +blo "78050,88700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9744,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9745,0 +text (MLText +uid 9746,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "83000,88600,106500,92600" +st "g_dataWidth = c_dataWidth ( positive ) +g_btnsNb = g_btnsNb ( positive ) +g_tRfRd = c_tRfRd ( time ) +g_tRfWr = c_tRfWr ( time ) +g_tSetup = c_tSetup ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_btnsNb" +type "positive" +value "g_btnsNb" +) +(GiElement +name "g_tRfRd" +type "time" +value "c_tRfRd" +) +(GiElement +name "g_tRfWr" +type "time" +value "c_tRfWr" +) +(GiElement +name "g_tSetup" +type "time" +value "c_tSetup" +) +] +) +viewicon (ZoomableIcon +uid 9747,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "82250,83250,83750,84750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*223 (SaComponent +uid 9792,0 +optionalChildren [ +*224 (CptPort +uid 9748,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9749,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,48625,98750,49375" +) +tg (CPTG +uid 9750,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9751,0 +va (VaSet +font "Verdana,8,0" +) +xt "91600,48500,97000,49500" +st "ALUControl" +ju 2 +blo "97000,49300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 5 +suid 1,0 +) +) +) +*225 (CptPort +uid 9752,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9753,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,50625,98750,51375" +) +tg (CPTG +uid 9754,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9755,0 +va (VaSet +font "Verdana,8,0" +) +xt "93800,50500,97000,51500" +st "ALUSrc" +ju 2 +blo "97000,51300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +) +*226 (CptPort +uid 9756,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9757,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,53625,82000,54375" +) +tg (CPTG +uid 9758,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9759,0 +va (VaSet +font "Verdana,8,0" +) +xt "83000,53500,86000,54500" +st "funct3" +blo "83000,54300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 5,0 +) +) +) +*227 (CptPort +uid 9760,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9761,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,55625,82000,56375" +) +tg (CPTG +uid 9762,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9763,0 +va (VaSet +font "Verdana,8,0" +) +xt "83000,55500,86000,56500" +st "funct7" +blo "83000,56300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 2 +suid 6,0 +) +) +) +*228 (CptPort +uid 9764,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9765,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,52625,98750,53375" +) +tg (CPTG +uid 9766,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9767,0 +va (VaSet +font "Verdana,8,0" +) +xt "93500,52500,97000,53500" +st "immSrc" +ju 2 +blo "97000,53300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 7,0 +) +) +) +*229 (CptPort +uid 9768,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9769,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,46625,98750,47375" +) +tg (CPTG +uid 9770,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9771,0 +va (VaSet +font "Verdana,8,0" +) +xt "92300,46500,97000,47500" +st "memWrite" +ju 2 +blo "97000,47300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 8,0 +) +) +) +*230 (CptPort +uid 9772,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9773,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,51625,82000,52375" +) +tg (CPTG +uid 9774,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9775,0 +va (VaSet +font "Verdana,8,0" +) +xt "83000,51500,84500,52500" +st "op" +blo "83000,52300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*231 (CptPort +uid 9776,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9777,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "81250,44625,82000,45375" +) +tg (CPTG +uid 9778,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9779,0 +va (VaSet +font "Verdana,8,0" +) +xt "83000,44500,85800,45500" +st "PCSrc" +blo "83000,45300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 7 +suid 10,0 +) +) +) +*232 (CptPort +uid 9780,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9781,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "91625,59000,92375,59750" +) +tg (CPTG +uid 9782,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9783,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "91500,54200,92500,58000" +st "regwrite" +blo "92300,58000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 11,0 +) +) +) +*233 (CptPort +uid 9784,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9785,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,44625,98750,45375" +) +tg (CPTG +uid 9786,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9787,0 +va (VaSet +font "Verdana,8,0" +) +xt "93100,44500,97000,45500" +st "resultSrc" +ju 2 +blo "97000,45300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 11 +suid 12,0 +) +) +) +*234 (CptPort +uid 9788,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9789,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98000,56625,98750,57375" +) +tg (CPTG +uid 9790,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9791,0 +va (VaSet +font "Verdana,8,0" +) +xt "94800,56500,97000,57500" +st "zero" +ju 2 +blo "97000,57300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "zero" +t "std_ulogic" +o 4 +suid 14,0 +) +) +) +] +shape (Rectangle +uid 9793,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "82000,44000,98000,59000" +) +oxt "16000,23000,32000,38000" +ttg (MlTextGroup +uid 9794,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*235 (Text +uid 9795,0 +va (VaSet +font "Verdana,9,1" +) +xt "81800,59800,89200,61000" +st "HEIRV32_SC" +blo "81800,60800" +tm "BdLibraryNameMgr" +) +*236 (Text +uid 9796,0 +va (VaSet +font "Verdana,9,1" +) +xt "81800,61000,88600,62200" +st "controlUnit" +blo "81800,62000" +tm "CptNameMgr" +) +*237 (Text +uid 9797,0 +va (VaSet +font "Verdana,9,1" +) +xt "81800,62200,89900,63400" +st "U_controlUnit" +blo "81800,63200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9798,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9799,0 +text (MLText +uid 9800,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "82000,63200,98000,64000" +st "g_tDec = c_tDec ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "c_tDec" +) +] +) +viewicon (ZoomableIcon +uid 9801,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "82250,57250,83750,58750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*238 (SaComponent +uid 9810,0 +optionalChildren [ +*239 (CptPort +uid 9802,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9803,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "60000,81625,60750,82375" +) +tg (CPTG +uid 9804,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9805,0 +va (VaSet +font "Verdana,12,0" +) +xt "50800,81300,59000,82700" +st "instruction" +ju 2 +blo "59000,82500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 26 +suid 3,0 +) +) +) +*240 (CptPort +uid 9806,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9807,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "51250,79625,52000,80375" +) +tg (CPTG +uid 9808,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9809,0 +va (VaSet +font "Verdana,12,0" +) +xt "53000,79300,55500,80700" +st "PC" +blo "53000,80500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(g_dataWidth - 1 DOWNTO 0)" +o 32 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9811,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "52000,78000,60000,85000" +) +oxt "18000,18000,26000,25000" +ttg (MlTextGroup +uid 9812,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*241 (Text +uid 9813,0 +va (VaSet +font "Verdana,9,1" +) +xt "52300,85800,59700,87000" +st "HEIRV32_SC" +blo "52300,86800" +tm "BdLibraryNameMgr" +) +*242 (Text +uid 9814,0 +va (VaSet +font "Verdana,9,1" +) +xt "52300,87000,59700,88200" +st "instrMemory" +blo "52300,88000" +tm "CptNameMgr" +) +*243 (Text +uid 9815,0 +va (VaSet +font "Verdana,9,1" +) +xt "52300,88200,61000,89400" +st "U_instrMemory" +blo "52300,89200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9816,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9817,0 +text (MLText +uid 9818,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "52000,89600,78500,92800" +st "g_dataWidth = c_dataWidth ( positive ) +g_memoryNbBits = g_memoryNbBits ( positive ) +g_programFile = g_programFile ( string ) +g_tMemRd = c_tMemRd ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "g_memoryNbBits" +) +(GiElement +name "g_programFile" +type "string" +value "g_programFile" +) +(GiElement +name "g_tMemRd" +type "time" +value "c_tMemRd" +) +] +) +viewicon (ZoomableIcon +uid 9819,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "52250,83250,53750,84750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*244 (SaComponent +uid 9909,0 +optionalChildren [ +*245 (CptPort +uid 9877,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9878,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,79625,157000,80375" +) +tg (CPTG +uid 9879,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9880,0 +va (VaSet +font "Verdana,8,0" +) +xt "158000,79500,161600,80500" +st "address" +blo "158000,80300" +) +) +thePort (LogicalPort +decl (Decl +n "address" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 30 +suid 1,0 +) +) +) +*246 (CptPort +uid 9881,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9882,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "158625,72250,159375,73000" +) +tg (CPTG +uid 9883,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9884,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "158453,73307,159453,74907" +st "clk" +ju 2 +blo "159253,73307" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*247 (CptPort +uid 9885,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9886,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "163625,72250,164375,73000" +) +tg (CPTG +uid 9887,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9888,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "163500,74000,164500,75500" +st "en" +ju 2 +blo "164300,74000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*248 (CptPort +uid 9889,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9890,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,76625,157000,77375" +) +tg (CPTG +uid 9891,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9892,0 +va (VaSet +font "Verdana,8,0" +) +xt "158000,76500,161500,77500" +st "writeEn" +blo "158000,77300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEn" +t "std_ulogic" +o 29 +suid 4,0 +) +) +) +*249 (CptPort +uid 9893,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9894,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "166000,82625,166750,83375" +) +tg (CPTG +uid 9895,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9896,0 +va (VaSet +font "Verdana,8,0" +) +xt "160800,82500,165000,83500" +st "readData" +ju 2 +blo "165000,83300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 32 +suid 5,0 +) +) +) +*250 (CptPort +uid 9897,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9898,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "160625,72250,161375,73000" +) +tg (CPTG +uid 9899,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 9900,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "160500,74000,161500,75500" +st "rst" +ju 2 +blo "161300,74000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*251 (CptPort +uid 9901,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 9902,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "156250,87625,157000,88375" +) +tg (CPTG +uid 9903,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 9904,0 +va (VaSet +font "Verdana,8,0" +) +xt "158000,87500,162400,88500" +st "writeData" +blo "158000,88300" +) +) +thePort (LogicalPort +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 31 +suid 7,0 +) +) +) +*252 (CommentGraphic +uid 9905,0 +shape (PolyLine2D +pts [ +"158000,73000" +"159000,75000" +] +uid 9906,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "158000,73000,159000,75000" +) +oxt "18000,14000,19000,16000" +) +*253 (CommentGraphic +uid 9907,0 +shape (PolyLine2D +pts [ +"160000,73000" +"159000,75000" +] +uid 9908,0 +layer 8 +sl 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "159000,73000,160000,75000" +) +oxt "19000,14000,20000,16000" +) +] +shape (Rectangle +uid 9910,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "157000,73000,166000,91000" +fos 1 +) +oxt "17000,14000,26000,32000" +ttg (MlTextGroup +uid 9911,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*254 (Text +uid 9912,0 +va (VaSet +font "Verdana,9,1" +) +xt "157300,91800,164700,93000" +st "HEIRV32_SC" +blo "157300,92800" +tm "BdLibraryNameMgr" +) +*255 (Text +uid 9913,0 +va (VaSet +font "Verdana,9,1" +) +xt "157300,93000,164700,94200" +st "dataMemory" +blo "157300,94000" +tm "CptNameMgr" +) +*256 (Text +uid 9914,0 +va (VaSet +font "Verdana,9,1" +) +xt "157300,94200,166000,95400" +st "U_dataMemory" +blo "157300,95200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 9915,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 9916,0 +text (MLText +uid 9917,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "157000,95600,183500,99600" +st "g_dataWidth = c_dataWidth ( positive ) +g_memoryNbBits = g_memoryNbBits ( positive ) +g_tMemWr = c_tMemWr ( time ) +g_tMemRd = c_tMemRd ( time ) +g_tSetup = c_tSetup ( time ) " +) +header "" +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "c_dataWidth" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "g_memoryNbBits" +) +(GiElement +name "g_tMemWr" +type "time" +value "c_tMemWr" +) +(GiElement +name "g_tMemRd" +type "time" +value "c_tMemRd" +) +(GiElement +name "g_tSetup" +type "time" +value "c_tSetup" +) +] +) +viewicon (ZoomableIcon +uid 9918,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "157250,89250,158750,90750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +sed 1 +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sF 0 +) +archFileType "UNKNOWN" +) +*257 (Wire +uid 342,0 +shape (OrthoPolyLine +uid 343,0 +va (VaSet +vasetType 3 +) +xt "11000,38000,14000,38000" +pts [ +"11000,38000" +"14000,38000" +] +) +start &12 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 348,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 349,0 +va (VaSet +isHidden 1 +) +xt "13000,36800,15200,38000" +st "clk" +blo "13000,37800" +tm "WireNameMgr" +) +) +on &15 +) +*258 (Wire +uid 350,0 +shape (OrthoPolyLine +uid 351,0 +va (VaSet +vasetType 3 +) +xt "11000,40000,14000,40000" +pts [ +"11000,40000" +"14000,40000" +] +) +start &13 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 356,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 357,0 +va (VaSet +isHidden 1 +) +xt "13000,38800,15100,40000" +st "rst" +blo "13000,39800" +tm "WireNameMgr" +) +) +on &14 +) +*259 (Wire +uid 782,0 +optionalChildren [ +*260 (BdJunction +uid 8907,0 +ps "OnConnectorStrategy" +shape (Circle +uid 8908,0 +va (VaSet +vasetType 1 +) +xt "47600,96600,48400,97400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 783,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "12000,79000,48000,97000" +pts [ +"46000,89000" +"48000,89000" +"48000,97000" +"12000,97000" +"12000,79000" +"20000,79000" +] +) +start &53 +end &17 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 786,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 787,0 +va (VaSet +) +xt "15000,77800,20100,79000" +st "PCPlus4" +blo "15000,78800" +tm "WireNameMgr" +) +) +on &47 +) +*261 (Wire +uid 852,0 +shape (OrthoPolyLine +uid 853,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "24000,80000,29250,80000" +pts [ +"24000,80000" +"29250,80000" +] +) +start &18 +end &178 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 856,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 857,0 +va (VaSet +) +xt "25000,78800,29600,80000" +st "PCNext" +blo "25000,79800" +tm "WireNameMgr" +) +s (Text +uid 2895,0 +va (VaSet +) +xt "25000,80000,25000,80000" +blo "25000,80000" +tm "SignalTypeMgr" +) +) +on &48 +) +*262 (Wire +uid 1322,0 +shape (OrthoPolyLine +uid 1323,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,51960,81250,52000" +pts [ +"68000,51960" +"74000,51960" +"74000,52000" +"81250,52000" +] +) +start *263 (Ripper +uid 7269,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,50960" +"68000,51960" +] +uid 7270,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,50960,68000,51960" +) +) +end &230 +sat 32 +eat 32 +sty 1 +sl "(6 DOWNTO 0)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1326,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1327,0 +va (VaSet +) +xt "70000,50800,79400,52000" +st "instruction(6:0)" +blo "70000,51800" +tm "WireNameMgr" +) +) +on &29 +) +*264 (Wire +uid 1333,0 +shape (OrthoPolyLine +uid 1334,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,54000,81250,54000" +pts [ +"68000,54000" +"81250,54000" +] +) +start *265 (Ripper +uid 7271,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,53000" +"68000,54000" +] +uid 7272,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,53000,68000,54000" +) +) +end &226 +sat 32 +eat 32 +sty 1 +sl "(14 DOWNTO 12)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1337,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1338,0 +va (VaSet +) +xt "70000,52800,80800,54000" +st "instruction(14:12)" +blo "70000,53800" +tm "WireNameMgr" +) +) +on &29 +) +*266 (Wire +uid 1344,0 +shape (OrthoPolyLine +uid 1345,0 +va (VaSet +vasetType 3 +) +xt "68000,56000,81250,56000" +pts [ +"68000,56000" +"81250,56000" +] +) +start *267 (Ripper +uid 7273,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,55000" +"68000,56000" +] +uid 7274,0 +va (VaSet +vasetType 3 +) +xt "67000,55000,68000,56000" +) +) +end &227 +sat 32 +eat 32 +sl "(30)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1348,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1349,0 +va (VaSet +) +xt "70000,54800,79000,56000" +st "instruction(30)" +blo "70000,55800" +tm "WireNameMgr" +) +) +on &29 +) +*268 (Wire +uid 1354,0 +shape (OrthoPolyLine +uid 1355,0 +va (VaSet +vasetType 3 +) +xt "98750,57000,138000,78000" +pts [ +"135750,78000" +"138000,78000" +"138000,57000" +"98750,57000" +] +) +start &201 +end &234 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1360,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1361,0 +va (VaSet +) +xt "101000,55800,103800,57000" +st "zero" +blo "101000,56800" +tm "WireNameMgr" +) +) +on &24 +) +*269 (Wire +uid 1380,0 +shape (OrthoPolyLine +uid 1381,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,49000,131000,73027" +pts [ +"98750,49000" +"131000,49000" +"131000,73027" +] +) +start &224 +end &197 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1386,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1387,0 +va (VaSet +) +xt "101000,47800,108300,49000" +st "ALUControl" +blo "101000,48800" +tm "WireNameMgr" +) +) +on &26 +) +*270 (Wire +uid 1412,0 +shape (OrthoPolyLine +uid 1413,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,53000,105000,94000" +pts [ +"98750,53000" +"105000,53000" +"105000,94000" +"99750,94000" +] +) +start &228 +end &169 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1418,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1419,0 +va (VaSet +) +xt "100750,51800,105250,53000" +st "immSrc" +blo "100750,52800" +tm "WireNameMgr" +) +) +on &27 +) +*271 (Wire +uid 1794,0 +optionalChildren [ +*272 (Ripper +uid 1832,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,96000" +"68000,97000" +] +uid 1833,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,96000,68000,97000" +) +) +&263 +&265 +&267 +*273 (BdJunction +uid 7281,0 +ps "OnConnectorStrategy" +shape (Circle +uid 7282,0 +va (VaSet +vasetType 1 +) +xt "66600,81600,67400,82400" +radius 400 +) +) +*274 (Ripper +uid 7293,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,74000" +"68000,75000" +] +uid 7294,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,74000,68000,75000" +) +) +*275 (Ripper +uid 7295,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,76000" +"68000,77000" +] +uid 7296,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,76000,68000,77000" +) +) +*276 (Ripper +uid 7297,0 +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"67000,78000" +"68000,79000" +] +uid 7298,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,78000,68000,79000" +) +) +] +shape (OrthoPolyLine +uid 1795,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,49000,67000,98000" +pts [ +"67000,49000" +"67000,98000" +] +) +sat 16 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1798,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1799,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "65800,47000,67000,53800" +st "instruction" +blo "66800,53800" +tm "WireNameMgr" +) +) +on &29 +) +*277 (Wire +uid 1802,0 +shape (OrthoPolyLine +uid 1803,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,75000,81250,75000" +pts [ +"68000,75000" +"81250,75000" +] +) +start &274 +end &207 +sat 32 +eat 32 +sty 1 +sl "(19 DOWNTO 15)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1806,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1807,0 +va (VaSet +) +xt "71000,73800,81800,75000" +st "instruction(19:15)" +blo "71000,74800" +tm "WireNameMgr" +) +) +on &29 +) +*278 (Wire +uid 1810,0 +shape (OrthoPolyLine +uid 1811,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,77000,81250,77000" +pts [ +"68000,77000" +"81250,77000" +] +) +start &275 +end &213 +sat 32 +eat 32 +sty 1 +sl "(24 DOWNTO 20)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1814,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1815,0 +va (VaSet +) +xt "71000,75800,81800,77000" +st "instruction(24:20)" +blo "71000,76800" +tm "WireNameMgr" +) +) +on &29 +) +*279 (Wire +uid 1818,0 +shape (OrthoPolyLine +uid 1819,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,79000,81250,79000" +pts [ +"68000,79000" +"81250,79000" +] +) +start &276 +end &214 +sat 32 +eat 32 +sty 1 +sl "(11 DOWNTO 7)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1822,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1823,0 +va (VaSet +) +xt "71000,77800,81100,79000" +st "instruction(11:7)" +blo "71000,78800" +tm "WireNameMgr" +) +) +on &29 +) +*280 (Wire +uid 1826,0 +shape (OrthoPolyLine +uid 1827,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "68000,97000,83250,97000" +pts [ +"68000,97000" +"83250,97000" +] +) +start &272 +end &168 +sat 32 +eat 32 +sty 1 +sl "(31 DOWNTO 7)" +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1830,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1831,0 +va (VaSet +) +xt "69000,95800,79100,97000" +st "instruction(31:7)" +blo "69000,96800" +tm "WireNameMgr" +) +) +on &29 +) +*281 (Wire +uid 1836,0 +shape (OrthoPolyLine +uid 1837,0 +va (VaSet +vasetType 3 +) +xt "85000,69000,85000,70250" +pts [ +"85000,69000" +"85000,70250" +] +) +end &206 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1842,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1843,0 +va (VaSet +) +xt "84059,67035,86259,68235" +st "clk" +blo "84059,68035" +tm "WireNameMgr" +) +) +on &15 +) +*282 (Wire +uid 1844,0 +shape (OrthoPolyLine +uid 1845,0 +va (VaSet +vasetType 3 +) +xt "88000,69000,88000,70250" +pts [ +"88000,69000" +"88000,70250" +] +) +end &212 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 1850,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1851,0 +va (VaSet +) +xt "87000,67041,89100,68241" +st "rst" +blo "87000,68041" +tm "WireNameMgr" +) +) +on &14 +) +*283 (Wire +uid 2096,0 +shape (OrthoPolyLine +uid 2097,0 +va (VaSet +vasetType 3 +) +xt "92000,59750,92000,70250" +pts [ +"92000,59750" +"92000,70250" +] +) +start &232 +end &211 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2098,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2099,0 +va (VaSet +) +xt "92000,60800,96700,62000" +st "regwrite" +blo "92000,61800" +tm "WireNameMgr" +) +) +on &28 +) +*284 (Wire +uid 2114,0 +optionalChildren [ +*285 (BdJunction +uid 7330,0 +ps "OnConnectorStrategy" +shape (Circle +uid 7331,0 +va (VaSet +vasetType 1 +) +xt "108600,96600,109400,97400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 2115,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "99750,97000,116000,97000" +pts [ +"99750,97000" +"116000,97000" +] +) +start &167 +end &75 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 2120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 2121,0 +va (VaSet +) +xt "111000,95800,115500,97000" +st "immExt" +blo "111000,96800" +tm "WireNameMgr" +) +) +on &30 +) +*286 (Wire +uid 2436,0 +shape (OrthoPolyLine +uid 2437,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "99750,74000,125250,76000" +pts [ +"99750,76000" +"108000,76000" +"108000,74000" +"125250,74000" +] +) +start &209 +end &199 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2440,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2441,0 +va (VaSet +) +xt "122000,72800,125100,74000" +st "srcA" +blo "122000,73800" +tm "WireNameMgr" +) +s (Text +uid 2925,0 +va (VaSet +) +xt "122000,74000,122000,74000" +blo "122000,74000" +tm "SignalTypeMgr" +) +) +on &31 +) +*287 (Wire +uid 2444,0 +shape (OrthoPolyLine +uid 2445,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "118000,81000,125250,83000" +pts [ +"118000,81000" +"122000,81000" +"122000,83000" +"125250,83000" +] +) +start &67 +end &200 +ss 0 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2448,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2449,0 +va (VaSet +) +xt "122255,81800,125255,83000" +st "srcB" +blo "122255,82800" +tm "WireNameMgr" +) +s (Text +uid 2926,0 +va (VaSet +) +xt "122255,83000,122255,83000" +blo "122255,83000" +tm "SignalTypeMgr" +) +) +on &32 +) +*288 (Wire +uid 2849,0 +shape (OrthoPolyLine +uid 2850,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "14000,81000,135000,107000" +pts [ +"20000,81000" +"14000,81000" +"14000,107000" +"135000,107000" +"135000,94000" +"131000,94000" +] +) +start &20 +end &60 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 2851,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2852,0 +va (VaSet +) +xt "15000,79800,20500,81000" +st "PCTarget" +blo "15000,80800" +tm "WireNameMgr" +) +s (Text +uid 2934,0 +va (VaSet +) +xt "15000,81000,15000,81000" +blo "15000,81000" +tm "SignalTypeMgr" +) +) +on &46 +) +*289 (Wire +uid 3748,0 +optionalChildren [ +*290 (BdJunction +uid 7584,0 +ps "OnConnectorStrategy" +shape (Circle +uid 7585,0 +va (VaSet +vasetType 1 +) +xt "146600,79600,147400,80400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 3749,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "135750,80000,156250,80000" +pts [ +"156250,80000" +"135750,80000" +] +) +start &245 +end &198 +ss 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3750,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3751,0 +va (VaSet +) +xt "140000,78800,146100,80000" +st "ALUResult" +blo "140000,79800" +tm "WireNameMgr" +) +) +on &33 +) +*291 (Wire +uid 4353,0 +shape (OrthoPolyLine +uid 4354,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "170000,14000,173000,14000" +pts [ +"173000,14000" +"170000,14000" +] +) +start &35 +end &36 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4357,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4358,0 +va (VaSet +isHidden 1 +) +xt "175000,12800,180200,14000" +st "dbg_leds" +blo "175000,13800" +tm "WireNameMgr" +) +) +on &34 +) +*292 (Wire +uid 4484,0 +shape (OrthoPolyLine +uid 4485,0 +va (VaSet +vasetType 3 +) +xt "11000,42000,14000,42000" +pts [ +"11000,42000" +"13000,42000" +"14000,42000" +] +) +start &40 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4488,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4489,0 +va (VaSet +isHidden 1 +) +xt "11000,39800,12900,41000" +st "en" +blo "11000,40800" +tm "WireNameMgr" +) +) +on &41 +) +*293 (Wire +uid 4728,0 +shape (OrthoPolyLine +uid 4729,0 +va (VaSet +vasetType 3 +) +xt "95000,69000,95000,70250" +pts [ +"95000,69000" +"95000,70250" +] +) +end &215 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4734,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4735,0 +va (VaSet +) +xt "94155,66800,96055,68000" +st "en" +blo "94155,67800" +tm "WireNameMgr" +) +) +on &41 +) +*294 (Wire +uid 5837,0 +shape (OrthoPolyLine +uid 5838,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91000,85750,94000,88000" +pts [ +"94000,85750" +"94000,88000" +"91000,88000" +] +) +start &216 +end &43 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5840,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "92800,88750,94000,91650" +st "btns" +blo "93800,91650" +tm "WireNameMgr" +) +) +on &42 +) +*295 (Wire +uid 5849,0 +shape (OrthoPolyLine +uid 5850,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "91000,85750,96000,89000" +pts [ +"96000,85750" +"96000,89000" +"91000,89000" +] +) +start &217 +end &45 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 5851,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5852,0 +ro 270 +va (VaSet +isHidden 1 +) +xt "94800,87750,96000,90550" +st "leds" +blo "95800,90550" +tm "WireNameMgr" +) +) +on &44 +) +*296 (Wire +uid 7104,0 +shape (OrthoPolyLine +uid 7105,0 +va (VaSet +vasetType 3 +) +xt "26000,82000,29250,82000" +pts [ +"26000,82000" +"29250,82000" +] +) +end &180 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 7108,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7109,0 +va (VaSet +) +xt "27000,80800,29100,82000" +st "rst" +blo "27000,81800" +tm "WireNameMgr" +) +) +on &14 +) +*297 (Wire +uid 7116,0 +shape (OrthoPolyLine +uid 7117,0 +va (VaSet +vasetType 3 +) +xt "32000,75000,32000,76250" +pts [ +"32000,75000" +"32000,76250" +] +) +end &176 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 7120,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7121,0 +va (VaSet +) +xt "31059,73035,33259,74235" +st "clk" +blo "31059,74035" +tm "WireNameMgr" +) +) +on &15 +) +*298 (Wire +uid 7122,0 +shape (OrthoPolyLine +uid 7123,0 +va (VaSet +vasetType 3 +) +xt "32000,84750,32000,86000" +pts [ +"32000,86000" +"32000,84750" +] +) +end &179 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7126,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7127,0 +va (VaSet +) +xt "30000,84800,31900,86000" +st "en" +blo "30000,85800" +tm "WireNameMgr" +) +) +on &41 +) +*299 (Wire +uid 7164,0 +shape (OrthoPolyLine +uid 7165,0 +va (VaSet +vasetType 3 +) +xt "23000,45000,81250,78500" +pts [ +"23000,78500" +"23000,45000" +"81250,45000" +] +) +start &19 +end &231 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7168,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7169,0 +ro 270 +va (VaSet +) +xt "21800,73800,23000,77700" +st "PCSrc" +blo "22800,77700" +tm "WireNameMgr" +) +s (Text +uid 7923,0 +ro 270 +va (VaSet +) +xt "23000,77700,23000,77700" +blo "23000,77700" +tm "SignalTypeMgr" +) +) +on &49 +) +*300 (Wire +uid 7174,0 +optionalChildren [ +*301 (BdJunction +uid 7188,0 +ps "OnConnectorStrategy" +shape (Circle +uid 7189,0 +va (VaSet +vasetType 1 +) +xt "36600,79600,37400,80400" +radius 400 +) +) +*302 (BdJunction +uid 7336,0 +ps "OnConnectorStrategy" +shape (Circle +uid 7337,0 +va (VaSet +vasetType 1 +) +xt "48600,79600,49400,80400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 7175,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "34750,80000,51250,80000" +pts [ +"34750,80000" +"51250,80000" +] +) +start &177 +end &240 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7178,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7179,0 +va (VaSet +) +xt "35000,78800,37200,80000" +st "PC" +blo "35000,79800" +tm "WireNameMgr" +) +) +on &50 +) +*303 (Wire +uid 7182,0 +shape (OrthoPolyLine +uid 7183,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "37000,80000,41000,87000" +pts [ +"37000,80000" +"37000,87000" +"41000,87000" +] +) +start &301 +end &52 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7186,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7187,0 +va (VaSet +) +xt "39000,85800,41200,87000" +st "PC" +blo "39000,86800" +tm "WireNameMgr" +) +) +on &50 +) +*304 (Wire +uid 7275,0 +shape (OrthoPolyLine +uid 7276,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60750,82000,67000,82000" +pts [ +"67000,82000" +"60750,82000" +] +) +start &273 +end &239 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7279,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7280,0 +va (VaSet +) +xt "61000,80800,67800,82000" +st "instruction" +blo "61000,81800" +tm "WireNameMgr" +) +) +on &29 +) +*305 (Wire +uid 7324,0 +shape (OrthoPolyLine +uid 7325,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "109000,82000,114000,97000" +pts [ +"109000,97000" +"109000,82000" +"114000,82000" +] +) +start &285 +end &69 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7328,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7329,0 +va (VaSet +) +xt "110000,80800,114500,82000" +st "immExt" +blo "110000,81800" +tm "WireNameMgr" +) +) +on &30 +) +*306 (Wire +uid 7332,0 +shape (OrthoPolyLine +uid 7333,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "49000,80000,126000,92000" +pts [ +"49000,80000" +"49000,91000" +"122000,91000" +"122000,92000" +"126000,92000" +] +) +start &302 +end &59 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7334,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7335,0 +va (VaSet +) +xt "123000,90800,125200,92000" +st "PC" +blo "123000,91800" +tm "WireNameMgr" +) +) +on &50 +) +*307 (Wire +uid 7370,0 +optionalChildren [ +*308 (BdJunction +uid 7382,0 +ps "OnConnectorStrategy" +shape (Circle +uid 7383,0 +va (VaSet +vasetType 1 +) +xt "106600,79600,107400,80400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 7371,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "99750,80000,114000,80000" +pts [ +"99750,80000" +"114000,80000" +] +) +start &210 +end &66 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7372,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7373,0 +va (VaSet +) +xt "109000,78800,114500,80000" +st "writeData" +blo "109000,79800" +tm "WireNameMgr" +) +) +on &73 +) +*309 (Wire +uid 7376,0 +shape (OrthoPolyLine +uid 7377,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107000,80000,156250,88000" +pts [ +"107000,80000" +"107000,88000" +"156250,88000" +] +) +start &308 +end &251 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7380,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7381,0 +va (VaSet +) +xt "140000,86800,145500,88000" +st "writeData" +blo "140000,87800" +tm "WireNameMgr" +) +) +on &73 +) +*310 (Wire +uid 7406,0 +shape (OrthoPolyLine +uid 7407,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "121000,96000,126000,97000" +pts [ +"121000,97000" +"122000,97000" +"122000,96000" +"126000,96000" +] +) +start &76 +end &61 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7408,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7409,0 +va (VaSet +isHidden 1 +) +xt "125000,94800,128000,96000" +st "out1" +blo "125000,95800" +tm "WireNameMgr" +) +s (Text +uid 7927,0 +va (VaSet +isHidden 1 +) +xt "125000,96000,125000,96000" +blo "125000,96000" +tm "SignalTypeMgr" +) +) +on &80 +) +*311 (Wire +uid 7424,0 +shape (OrthoPolyLine +uid 7425,0 +va (VaSet +vasetType 3 +) +xt "98750,51000,117000,79500" +pts [ +"117000,79500" +"117000,51000" +"98750,51000" +] +) +start &68 +end &225 +sat 32 +eat 32 +stc 0 +sf 1 +si 0 +tg (WTG +uid 7428,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 7429,0 +va (VaSet +) +xt "101000,49800,105600,51000" +st "ALUSrc" +blo "101000,50800" +tm "WireNameMgr" +) +s (Text +uid 7930,0 +va (VaSet +) +xt "101000,51000,101000,51000" +blo "103900,52700" +tm "SignalTypeMgr" +) +) +on &81 +) +*312 (Wire +uid 7432,0 +shape (OrthoPolyLine +uid 7433,0 +va (VaSet +vasetType 3 +) +xt "159000,71000,159000,72250" +pts [ +"159000,71000" +"159000,72250" +] +) +end &246 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 7438,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7439,0 +va (VaSet +) +xt "158059,69035,160259,70235" +st "clk" +blo "158059,70035" +tm "WireNameMgr" +) +) +on &15 +) +*313 (Wire +uid 7440,0 +shape (OrthoPolyLine +uid 7441,0 +va (VaSet +vasetType 3 +) +xt "161000,71000,161000,72250" +pts [ +"161000,71000" +"161000,72250" +] +) +end &250 +sat 16 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 7446,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7447,0 +va (VaSet +) +xt "160000,69041,162100,70241" +st "rst" +blo "160000,70041" +tm "WireNameMgr" +) +) +on &14 +) +*314 (Wire +uid 7448,0 +shape (OrthoPolyLine +uid 7449,0 +va (VaSet +vasetType 3 +) +xt "164000,71000,164000,72250" +pts [ +"164000,71000" +"164000,72250" +] +) +end &247 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7454,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7455,0 +va (VaSet +) +xt "163155,68800,165055,70000" +st "en" +blo "163155,69800" +tm "WireNameMgr" +) +) +on &41 +) +*315 (Wire +uid 7468,0 +shape (OrthoPolyLine +uid 7469,0 +va (VaSet +vasetType 3 +) +xt "98750,47000,156250,77000" +pts [ +"98750,47000" +"150000,47000" +"150000,77000" +"156250,77000" +] +) +start &229 +end &248 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 7474,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7475,0 +va (VaSet +) +xt "101000,45800,106700,47000" +st "memWrite" +blo "101000,46800" +tm "WireNameMgr" +) +) +on &82 +) +*316 (Wire +uid 7580,0 +shape (OrthoPolyLine +uid 7581,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "147000,63000,177250,81000" +pts [ +"147000,80000" +"147000,63000" +"173000,63000" +"173000,81000" +"177250,81000" +] +) +start &290 +end &190 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 7582,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7583,0 +va (VaSet +isHidden 1 +) +xt "173000,79800,179100,81000" +st "ALUResult" +blo "173000,80800" +tm "WireNameMgr" +) +) +on &33 +) +*317 (Wire +uid 7628,0 +shape (OrthoPolyLine +uid 7629,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "77000,83000,189000,103000" +pts [ +"81250,83000" +"77000,83000" +"77000,103000" +"189000,103000" +"189000,84000" +"182750,84000" +] +) +start &208 +end &192 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 7630,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 7631,0 +va (VaSet +) +xt "184000,82800,187600,84000" +st "result" +blo "184000,83800" +tm "WireNameMgr" +) +) +on &83 +) +*318 (Wire +uid 8697,0 +shape (OrthoPolyLine +uid 8698,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "31000,91000,41000,91000" +pts [ +"41000,91000" +"31000,91000" +] +) +start &54 +sat 32 +eat 16 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 8701,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8702,0 +va (VaSet +) +xt "32000,89800,41200,91000" +st "c_fourUnsigned" +blo "32000,90800" +tm "WireNameMgr" +) +s (Text +uid 8976,0 +va (VaSet +) +xt "32000,91000,32000,91000" +blo "32000,91000" +tm "SignalTypeMgr" +) +) +on &84 +) +*319 (Wire +uid 8715,0 +shape (OrthoPolyLine +uid 8716,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "98750,45000,181000,80749" +pts [ +"98750,45000" +"181000,45000" +"181000,80749" +] +) +start &233 +end &187 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 8717,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8718,0 +va (VaSet +) +xt "101000,43800,106300,45000" +st "resultSrc" +blo "101000,44800" +tm "WireNameMgr" +) +) +on &25 +) +*320 (Wire +uid 8815,0 +shape (OrthoPolyLine +uid 8816,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "169000,87000,177250,87000" +pts [ +"177250,87000" +"169000,87000" +] +) +start &188 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 8819,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8820,0 +va (VaSet +) +xt "170000,85800,179000,87000" +st "c_zeroUlogVec" +blo "170000,86800" +tm "WireNameMgr" +) +) +on &85 +) +*321 (Wire +uid 8903,0 +shape (OrthoPolyLine +uid 8904,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "48000,97000,51000,97000" +pts [ +"48000,97000" +"51000,97000" +] +) +start &260 +end &87 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 8905,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 8906,0 +va (VaSet +) +xt "42000,95800,47100,97000" +st "PCPlus4" +blo "42000,96800" +tm "WireNameMgr" +) +) +on &47 +) +*322 (Wire +uid 8911,0 +shape (OrthoPolyLine +uid 8912,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "56000,85000,177250,105000" +pts [ +"56000,97000" +"61000,97000" +"61000,105000" +"168000,105000" +"168000,85000" +"177250,85000" +] +) +start &88 +end &191 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 8913,0 +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 8914,0 +va (VaSet +) +xt "168000,83800,178700,85000" +st "PCPlus4_UlogVec" +blo "168000,84800" +tm "WireNameMgr" +) +s (Text +uid 8979,0 +va (VaSet +) +xt "168000,85000,168000,85000" +blo "168000,85000" +tm "SignalTypeMgr" +) +) +on &92 +) +*323 (Wire +uid 9096,0 +shape (OrthoPolyLine +uid 9097,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "166750,83000,177250,83000" +pts [ +"166750,83000" +"177250,83000" +] +) +start &249 +end &189 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +si 0 +tg (WTG +uid 9098,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 9099,0 +va (VaSet +) +xt "168750,81800,174050,83000" +st "readData" +blo "168750,82800" +tm "WireNameMgr" +) +) +on &93 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *324 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*325 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*326 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*327 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*328 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*329 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*330 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*331 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*332 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*333 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-2771,-2892,213843,111249" +cachedDiagramExtent "0,0,199500,112800" +pageSetupInfo (PageSetupInfo +ptrCmd "Adobe PDF,winspool," +fileName "Documents\\*.pdf" +toPrinter 1 +colour 1 +xMargin 48 +yMargin 48 +paperWidth 1077 +paperHeight 761 +windowsPaperWidth 1077 +windowsPaperHeight 761 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +bestFit 1 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 10032,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*334 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*335 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*336 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*337 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*338 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*339 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*340 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*341 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*342 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*343 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*344 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*345 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*346 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*347 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*348 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*349 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*350 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*351 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*352 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*353 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*354 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,7200,25200,8400" +st "Pre User:" +blo "20000,8200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8400,47500,19600" +st "constant c_dataWidth : positive := g_dataWidth; +constant c_bramAddrWidth : positive := 10; + +constant c_tPC : time := 40 ps; +constant c_tSetup : time := 50 ps; +constant c_tMux : time := 30 ps; +constant c_tALU : time := 120 ps; +constant c_tDec : time := 25 ps; +constant c_tExt : time := 35 ps; +constant c_tMemRd : time := 200 ps; +constant c_tMemWr : time := 60 ps; +constant c_tRfRd : time := 100 ps; +constant c_tRfWr : time := 60 ps; +constant c_tAdd : time := 100 ps;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,19600,29500,20800" +st "Diagram Signals:" +blo "20000,20600" +) +postUserLabel (Text +uid 7,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,40000,26400,41200" +st "Post User:" +blo "20000,41000" +) +postUserText (MLText +uid 8,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,32400,40000,33200" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 139,0 +usingSuid 1 +emptyRow *355 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*356 (RefLabelRowHdr +) +*357 (TitleRowHdr +) +*358 (FilterRowHdr +) +*359 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*360 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*361 (GroupColHdr +tm "GroupColHdrMgr" +) +*362 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*363 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*364 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*365 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*366 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*367 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*368 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 20,0 +) +) +uid 676,0 +) +*369 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 21,0 +) +) +uid 678,0 +) +*370 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "zero" +t "std_ulogic" +o 30 +suid 46,0 +) +) +uid 1364,0 +) +*371 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 downto 0)" +o 26 +suid 48,0 +) +) +uid 1438,0 +) +*372 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 50,0 +) +) +uid 1440,0 +) +*373 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 19 +suid 57,0 +) +) +uid 1446,0 +) +*374 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "regwrite" +t "std_ulogic" +o 24 +suid 58,0 +) +) +uid 1448,0 +) +*375 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 20 +suid 59,0 +) +) +uid 1664,0 +) +*376 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "immExt" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 18 +suid 65,0 +) +) +uid 2124,0 +) +*377 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 27 +suid 74,0 +) +) +uid 2454,0 +) +*378 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 28 +suid 75,0 +) +) +uid 2456,0 +) +*379 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "ALUResult" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 8 +suid 79,0 +) +) +uid 2771,0 +) +*380 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 93,0 +) +) +uid 4371,0 +) +*381 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 97,0 +) +) +uid 4506,0 +) +*382 (LeafLogPort +port (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 101,0 +) +) +uid 5859,0 +) +*383 (LeafLogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 102,0 +) +) +uid 5861,0 +) +*384 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PCTarget" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 15 +suid 103,0 +) +) +uid 7215,0 +) +*385 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PCPlus4" +t "unsigned" +b "(c_dataWidth - 1 downto 0)" +o 12 +suid 104,0 +) +) +uid 7217,0 +) +*386 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "PCNext" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 11 +suid 105,0 +) +) +uid 7219,0 +) +*387 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "PCSrc" +t "std_uLogic" +o 14 +suid 107,0 +) +) +uid 7221,0 +) +*388 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "PC" +t "unsigned" +b "(c_dataWidth - 1 DOWNTO 0)" +o 10 +suid 109,0 +) +) +uid 7223,0 +) +*389 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 29 +suid 113,0 +) +) +uid 7410,0 +) +*390 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "out1" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 22 +suid 114,0 +) +) +uid 7412,0 +) +*391 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 9 +suid 116,0 +) +) +uid 7478,0 +) +*392 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "memWrite" +t "std_ulogic" +o 21 +suid 118,0 +) +) +uid 7480,0 +) +*393 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "result" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 25 +suid 126,0 +) +) +uid 7634,0 +) +*394 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "c_fourUnsigned" +t "unsigned" +b "(c_dataWidth-1 DOWNTO 0)" +o 16 +suid 131,0 +i "to_unsigned(4, c_dataWidth)" +) +) +uid 8705,0 +) +*395 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "c_zeroUlogVec" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 17 +suid 135,0 +i "(others=>'0')" +) +) +uid 8881,0 +) +*396 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "PCPlus4_UlogVec" +t "std_ulogic_vector" +b "(c_dataWidth - 1 downto 0)" +o 13 +suid 138,0 +) +) +uid 8919,0 +) +*397 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "readData" +t "std_ulogic_vector" +b "(c_dataWidth-1 DOWNTO 0)" +o 30 +suid 139,0 +) +) +uid 9100,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*398 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *399 (MRCItem +litem &355 +pos 30 +dimension 20 +) +uid 69,0 +optionalChildren [ +*400 (MRCItem +litem &356 +pos 0 +dimension 20 +uid 70,0 +) +*401 (MRCItem +litem &357 +pos 1 +dimension 23 +uid 71,0 +) +*402 (MRCItem +litem &358 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*403 (MRCItem +litem &368 +pos 0 +dimension 20 +uid 677,0 +) +*404 (MRCItem +litem &369 +pos 1 +dimension 20 +uid 679,0 +) +*405 (MRCItem +litem &370 +pos 6 +dimension 20 +uid 1365,0 +) +*406 (MRCItem +litem &371 +pos 7 +dimension 20 +uid 1439,0 +) +*407 (MRCItem +litem &372 +pos 8 +dimension 20 +uid 1441,0 +) +*408 (MRCItem +litem &373 +pos 9 +dimension 20 +uid 1447,0 +) +*409 (MRCItem +litem &374 +pos 10 +dimension 20 +uid 1449,0 +) +*410 (MRCItem +litem &375 +pos 11 +dimension 20 +uid 1665,0 +) +*411 (MRCItem +litem &376 +pos 12 +dimension 20 +uid 2125,0 +) +*412 (MRCItem +litem &377 +pos 13 +dimension 20 +uid 2455,0 +) +*413 (MRCItem +litem &378 +pos 14 +dimension 20 +uid 2457,0 +) +*414 (MRCItem +litem &379 +pos 15 +dimension 20 +uid 2772,0 +) +*415 (MRCItem +litem &380 +pos 2 +dimension 20 +uid 4372,0 +) +*416 (MRCItem +litem &381 +pos 3 +dimension 20 +uid 4507,0 +) +*417 (MRCItem +litem &382 +pos 4 +dimension 20 +uid 5860,0 +) +*418 (MRCItem +litem &383 +pos 5 +dimension 20 +uid 5862,0 +) +*419 (MRCItem +litem &384 +pos 16 +dimension 20 +uid 7216,0 +) +*420 (MRCItem +litem &385 +pos 17 +dimension 20 +uid 7218,0 +) +*421 (MRCItem +litem &386 +pos 18 +dimension 20 +uid 7220,0 +) +*422 (MRCItem +litem &387 +pos 19 +dimension 20 +uid 7222,0 +) +*423 (MRCItem +litem &388 +pos 20 +dimension 20 +uid 7224,0 +) +*424 (MRCItem +litem &389 +pos 21 +dimension 20 +uid 7411,0 +) +*425 (MRCItem +litem &390 +pos 22 +dimension 20 +uid 7413,0 +) +*426 (MRCItem +litem &391 +pos 23 +dimension 20 +uid 7479,0 +) +*427 (MRCItem +litem &392 +pos 24 +dimension 20 +uid 7481,0 +) +*428 (MRCItem +litem &393 +pos 25 +dimension 20 +uid 7635,0 +) +*429 (MRCItem +litem &394 +pos 26 +dimension 20 +uid 8706,0 +) +*430 (MRCItem +litem &395 +pos 27 +dimension 20 +uid 8882,0 +) +*431 (MRCItem +litem &396 +pos 28 +dimension 20 +uid 8920,0 +) +*432 (MRCItem +litem &397 +pos 29 +dimension 20 +uid 9101,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*433 (MRCItem +litem &359 +pos 0 +dimension 20 +uid 74,0 +) +*434 (MRCItem +litem &361 +pos 1 +dimension 50 +uid 75,0 +) +*435 (MRCItem +litem &362 +pos 2 +dimension 100 +uid 76,0 +) +*436 (MRCItem +litem &363 +pos 3 +dimension 50 +uid 77,0 +) +*437 (MRCItem +litem &364 +pos 4 +dimension 100 +uid 78,0 +) +*438 (MRCItem +litem &365 +pos 5 +dimension 100 +uid 79,0 +) +*439 (MRCItem +litem &366 +pos 6 +dimension 50 +uid 80,0 +) +*440 (MRCItem +litem &367 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *441 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*442 (RefLabelRowHdr +) +*443 (TitleRowHdr +) +*444 (FilterRowHdr +) +*445 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*446 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*447 (GroupColHdr +tm "GroupColHdrMgr" +) +*448 (NameColHdr +tm "GenericNameColHdrMgr" +) +*449 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*450 (InitColHdr +tm "GenericValueColHdrMgr" +) +*451 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*452 (EolColHdr +tm "GenericEolColHdrMgr" +) +*453 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code.txt\"" +) +uid 5660,0 +) +*454 (LogGeneric +generic (GiElement +name "g_btnsNb" +type "positive" +value "2" +) +uid 5833,0 +) +*455 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 6190,0 +) +*456 (LogGeneric +generic (GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +uid 7812,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*457 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *458 (MRCItem +litem &441 +pos 4 +dimension 20 +) +uid 97,0 +optionalChildren [ +*459 (MRCItem +litem &442 +pos 0 +dimension 20 +uid 98,0 +) +*460 (MRCItem +litem &443 +pos 1 +dimension 23 +uid 99,0 +) +*461 (MRCItem +litem &444 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*462 (MRCItem +litem &453 +pos 0 +dimension 20 +uid 5661,0 +) +*463 (MRCItem +litem &454 +pos 1 +dimension 20 +uid 5834,0 +) +*464 (MRCItem +litem &455 +pos 2 +dimension 20 +uid 6191,0 +) +*465 (MRCItem +litem &456 +pos 3 +dimension 20 +uid 7813,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*466 (MRCItem +litem &445 +pos 0 +dimension 20 +uid 102,0 +) +*467 (MRCItem +litem &447 +pos 1 +dimension 50 +uid 103,0 +) +*468 (MRCItem +litem &448 +pos 2 +dimension 100 +uid 104,0 +) +*469 (MRCItem +litem &449 +pos 3 +dimension 100 +uid 105,0 +) +*470 (MRCItem +litem &450 +pos 4 +dimension 234 +uid 106,0 +) +*471 (MRCItem +litem &451 +pos 5 +dimension 50 +uid 107,0 +) +*472 (MRCItem +litem &452 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/symbol.sb b/Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/symbol.sb new file mode 100644 index 0000000..85fae23 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/heirv32_sc/symbol.sb @@ -0,0 +1,1732 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 3,0 +) +) +uid 468,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 4,0 +) +) +uid 470,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 6,0 +) +) +uid 3870,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 7,0 +) +) +uid 4130,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 8,0 +) +) +uid 4762,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +uid 4764,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 68,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 467,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 469,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 3869,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 4129,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 4761,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 4763,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code.txt\"" +) +uid 4689,0 +) +*52 (LogGeneric +generic (GiElement +name "g_btnsNb" +type "positive" +value "2" +) +uid 4737,0 +) +*53 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 4914,0 +) +*54 (LogGeneric +generic (GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +uid 4985,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*55 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *56 (MRCItem +litem &39 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*57 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 97,0 +) +*58 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 98,0 +) +*59 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*60 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 4688,0 +) +*61 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 4736,0 +) +*62 (MRCItem +litem &53 +pos 2 +dimension 20 +uid 4913,0 +) +*63 (MRCItem +litem &54 +pos 3 +dimension 20 +uid 4984,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*64 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 101,0 +) +*65 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 102,0 +) +*66 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 103,0 +) +*67 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 104,0 +) +*68 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 105,0 +) +*69 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 106,0 +) +*70 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "heirv32_sc" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:20:21" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_sc" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\heirv32_sc\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:20:21" +) +(vvPair +variable "unit" +value "heirv32_sc" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 471,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 472,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,27625,19000,28375" +) +tg (CPTG +uid 473,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 474,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,27300,22500,28700" +st "rst" +blo "20000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 475,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61000,5600" +st "rst : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*73 (CptPort +uid 476,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 477,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,29625,19000,30375" +) +tg (CPTG +uid 478,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 479,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,29300,22400,30700" +st "clk" +blo "20000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 480,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,61000,4000" +st "clk : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*74 (CptPort +uid 3871,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3872,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "35000,25625,35750,26375" +) +tg (CPTG +uid 3873,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3874,0 +va (VaSet +font "Verdana,12,0" +) +xt "27400,25300,34000,26700" +st "dbg_leds" +ju 2 +blo "34000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 3875,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,71500,6400" +st "dbg_leds : OUT std_ulogic_vector (31 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*75 (CptPort +uid 4131,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4132,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18250,25625,19000,26375" +) +tg (CPTG +uid 4133,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4134,0 +va (VaSet +font "Verdana,12,0" +) +xt "20000,25300,22400,26700" +st "en" +blo "20000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 4135,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61000,4800" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*76 (CptPort +uid 4765,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4766,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,33000,24375,33750" +) +tg (CPTG +uid 4767,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4768,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "23300,28400,24700,32000" +st "btns" +blo "24500,32000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 4769,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,75500,3200" +st "btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 8,0 +) +) +) +*77 (CptPort +uid 4770,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4771,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,33000,26375,33750" +) +tg (CPTG +uid 4772,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4773,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "25300,28600,26700,32000" +st "leds" +blo "26500,32000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 4774,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,76000,7200" +st "leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "19000,25000,35000,33000" +) +oxt "15000,6000,44000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,28800,35200,30000" +st "HEIRV32_SC" +blo "27800,29800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "27800,30000,34300,31200" +st "heirv32_sc" +blo "27800,31000" +) +) +gi *78 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "29000,34200,57000,39000" +st "Generic Declarations + +g_programFile string \"$SIMULATION_DIR/code.txt\" +g_btnsNb positive 2 +g_dataWidth positive 32 +g_memoryNbBits positive 7 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "2" +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +) +*79 (Grouping +uid 16,0 +optionalChildren [ +*80 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,48700,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *90 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*92 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "359,164,1381,854" +viewArea "12059,19869,48781,43364" +cachedDiagramExtent "0,0,76000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *93 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *94 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,7200,45200,8400" +st "User:" +blo "42000,8200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,44000,8400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 5031,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/instr@memory/symbol.sb b/Libs/RiscV/HEIRV32/SingleCycle/hds/instr@memory/symbol.sb new file mode 100644 index 0000000..fc98d94 --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/instr@memory/symbol.sb @@ -0,0 +1,1481 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 26 +suid 3,0 +) +) +uid 178,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(g_dataWidth - 1 DOWNTO 0)" +o 32 +suid 4,0 +) +) +uid 180,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 68,0 +optionalChildren [ +*18 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*19 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*20 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*21 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 179,0 +) +*22 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 181,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*23 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*25 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*26 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*27 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*28 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*29 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*30 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 205,0 +) +*44 (LogGeneric +generic (GiElement +name "g_memoryNbBits" +type "positive" +value "8" +) +uid 230,0 +) +*45 (LogGeneric +generic (GiElement +name "g_programFile" +type "string" +value "\"\"" +) +uid 255,0 +) +*46 (LogGeneric +generic (GiElement +name "g_tMemRd" +type "time" +value "200 ps" +) +uid 280,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *48 (MRCItem +litem &31 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*49 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 97,0 +) +*50 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 98,0 +) +*51 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*52 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 206,0 +) +*53 (MRCItem +litem &44 +pos 1 +dimension 20 +uid 231,0 +) +*54 (MRCItem +litem &45 +pos 2 +dimension 20 +uid 256,0 +) +*55 (MRCItem +litem &46 +pos 3 +dimension 20 +uid 281,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*56 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 101,0 +) +*57 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 102,0 +) +*58 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 103,0 +) +*59 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 104,0 +) +*60 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 105,0 +) +*61 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 106,0 +) +*62 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\instr@memory\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\instr@memory\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\instr@memory" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\instrMemory" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "instrMemory" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:00:46" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "instrMemory" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\instr@memory\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\instrMemory\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:00:46" +) +(vvPair +variable "unit" +value "instrMemory" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26000,21625,26750,22375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +font "Verdana,12,0" +) +xt "16800,21300,25000,22700" +st "instruction" +ju 2 +blo "25000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,77500,4000" +st "instruction : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "instruction" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 26 +suid 3,0 +) +) +) +*65 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,19625,18000,20375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,19300,21500,20700" +st "PC" +blo "19000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,75000,3200" +st "PC : IN unsigned (g_dataWidth - 1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "PC" +t "unsigned" +b "(g_dataWidth - 1 DOWNTO 0)" +o 32 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "18000,18000,26000,25000" +) +oxt "15000,6000,23000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "18300,25800,25700,27000" +st "HEIRV32_SC" +blo "18300,26800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "18300,27000,25700,28200" +st "instrMemory" +blo "18300,28000" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,29600,35500,34400" +st "Generic Declarations + +g_dataWidth positive 32 +g_memoryNbBits positive 8 +g_programFile string \"\" +g_tMemRd time 200 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "8" +) +(GiElement +name "g_programFile" +type "string" +value "\"\"" +) +(GiElement +name "g_tMemRd" +type "time" +value "200 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "0,24,1921,1080" +viewArea "-2200,-400,75678,41000" +cachedDiagramExtent "0,0,77500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_SC" +entityName "heirv32_sc" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4000,45200,5200" +st "User:" +blo "42000,5000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,44000,5200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 327,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/SingleCycle/hds/main@decoder/symbol.sb b/Libs/RiscV/HEIRV32/SingleCycle/hds/main@decoder/symbol.sb new file mode 100644 index 0000000..e9eebce --- /dev/null +++ b/Libs/RiscV/HEIRV32/SingleCycle/hds/main@decoder/symbol.sb @@ -0,0 +1,1882 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 9,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 116,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 12 +suid 1,0 +) +) +uid 96,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +uid 98,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 13 +suid 3,0 +) +) +uid 100,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +uid 102,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "jump" +t "std_uLogic" +o 14 +suid 5,0 +) +) +uid 104,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 6,0 +) +) +uid 106,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 7,0 +) +) +uid 108,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 8,0 +) +) +uid 110,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 9,0 +) +) +uid 112,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*23 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *24 (MRCItem +litem &1 +pos 9 +dimension 20 +) +uid 131,0 +optionalChildren [ +*25 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 132,0 +) +*26 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 133,0 +) +*27 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*28 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 97,0 +) +*29 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 99,0 +) +*30 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 101,0 +) +*31 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 103,0 +) +*32 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 105,0 +) +*33 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 107,0 +) +*34 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 109,0 +) +*35 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 111,0 +) +*36 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 113,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*37 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 136,0 +) +*38 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 137,0 +) +*39 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 138,0 +) +*40 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 139,0 +) +*41 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 140,0 +) +*42 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 141,0 +) +*43 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 142,0 +) +*44 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 143,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 115,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *45 (LEmptyRow +) +uid 145,0 +optionalChildren [ +*46 (RefLabelRowHdr +) +*47 (TitleRowHdr +) +*48 (FilterRowHdr +) +*49 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*50 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*51 (GroupColHdr +tm "GroupColHdrMgr" +) +*52 (NameColHdr +tm "GenericNameColHdrMgr" +) +*53 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*54 (InitColHdr +tm "GenericValueColHdrMgr" +) +*55 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*56 (EolColHdr +tm "GenericEolColHdrMgr" +) +*57 (LogGeneric +generic (GiElement +name "g_tDec" +type "time" +value "25 ps" +) +uid 286,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 157,0 +optionalChildren [ +*58 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *59 (MRCItem +litem &45 +pos 1 +dimension 20 +) +uid 159,0 +optionalChildren [ +*60 (MRCItem +litem &46 +pos 0 +dimension 20 +uid 160,0 +) +*61 (MRCItem +litem &47 +pos 1 +dimension 23 +uid 161,0 +) +*62 (MRCItem +litem &48 +pos 2 +hidden 1 +dimension 20 +uid 162,0 +) +*63 (MRCItem +litem &57 +pos 0 +dimension 20 +uid 287,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 163,0 +optionalChildren [ +*64 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 164,0 +) +*65 (MRCItem +litem &51 +pos 1 +dimension 50 +uid 165,0 +) +*66 (MRCItem +litem &52 +pos 2 +dimension 100 +uid 166,0 +) +*67 (MRCItem +litem &53 +pos 3 +dimension 100 +uid 167,0 +) +*68 (MRCItem +litem &54 +pos 4 +dimension 50 +uid 168,0 +) +*69 (MRCItem +litem &55 +pos 5 +dimension 50 +uid 169,0 +) +*70 (MRCItem +litem &56 +pos 6 +dimension 80 +uid 170,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 158,0 +vaOverrides [ +] +) +] +) +uid 144,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\main@decoder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\main@decoder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\main@decoder" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\mainDecoder" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "mainDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:22:56" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_SC" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/SingleCycle/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "mainDecoder" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\main@decoder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\SingleCycle\\hds\\mainDecoder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:22:56" +) +(vvPair +variable "unit" +value "mainDecoder" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 114,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "20625,25000,21375,25750" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "20300,19000,21700,24000" +st "ALUOp" +blo "21500,24000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,71500,4000" +st "ALUOp : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 12 +suid 1,0 +) +) +) +*73 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,16625,30750,17375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "23900,16300,29000,17700" +st "ALUSrc" +ju 2 +blo "29000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,61500,4800" +st "ALUSrc : OUT std_uLogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUSrc" +t "std_uLogic" +o 6 +suid 2,0 +) +) +) +*74 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,7625,30750,8375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "23900,7300,29000,8700" +st "branch" +ju 2 +blo "29000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,61500,5600" +st "branch : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "branch" +t "std_uLogic" +o 13 +suid 3,0 +) +) +) +*75 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,18625,30750,19375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,12,0" +) +xt "23800,18300,29000,19700" +st "immSrc" +ju 2 +blo "29000,19500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,71500,6400" +st "immSrc : OUT std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "immSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +) +*76 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,9625,30750,10375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,12,0" +) +xt "25100,9300,29000,10700" +st "jump" +ju 2 +blo "29000,10500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,61500,7200" +st "jump : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "jump" +t "std_uLogic" +o 14 +suid 5,0 +) +) +) +*77 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,14625,30750,15375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "Verdana,12,0" +) +xt "21800,14300,29000,15700" +st "memWrite" +ju 2 +blo "29000,15500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,61500,8000" +st "memWrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "memWrite" +t "std_ulogic" +o 9 +suid 6,0 +) +) +) +*78 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 84,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,10300,18400,11700" +st "op" +blo "16000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,71500,3200" +st "op : IN std_ulogic_vector (6 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic_vector" +b "(6 DOWNTO 0)" +o 3 +suid 7,0 +) +) +) +*79 (CptPort +uid 86,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 87,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,20625,30750,21375" +) +tg (CPTG +uid 88,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 89,0 +va (VaSet +font "Verdana,12,0" +) +xt "22900,20300,29000,21700" +st "regwrite" +ju 2 +blo "29000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,61500,8800" +st "regwrite : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "regwrite" +t "std_ulogic" +o 10 +suid 8,0 +) +) +) +*80 (CptPort +uid 91,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 92,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,12625,30750,13375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 94,0 +va (VaSet +font "Verdana,12,0" +) +xt "22700,12300,29000,13700" +st "resultSrc" +ju 2 +blo "29000,13500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 95,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,70500,9600" +st "resultSrc : OUT std_ulogic_vector (1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "resultSrc" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 11 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,30000,25000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "28700,25300,36100,26500" +st "HEIRV32_SC" +blo "28700,26300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "28700,26500,36300,27700" +st "mainDecoder" +blo "28700,27500" +) +) +gi *81 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "29000,30200,40500,32600" +st "Generic Declarations + +g_tDec time 25 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "25 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*82 (Grouping +uid 16,0 +optionalChildren [ +*83 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *93 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*95 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "2201,98,3220,788" +viewArea "-500,-500,70690,47560" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-8000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_SC" +entityName "controlUnit" +viewName "masterVersion.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *96 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *97 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,9600,45200,10800" +st "User:" +blo "42000,10600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,44000,10800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 287,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hdl/ALU_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/ALU_rtl.vhd new file mode 100644 index 0000000..82927d7 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/ALU_rtl.vhd @@ -0,0 +1,40 @@ +-- Risc-V ed. 2022 page 250 (pdf page 273) + +ARCHITECTURE rtl OF ALU IS + + signal lvec_res : std_ulogic_vector(res'range); + signal lsig_zero : std_ulogic; + +BEGIN + + lsig_zero <= '1' when lvec_res = (lvec_res'range => '0') else '0'; + zero <= lsig_zero after g_tALU; + res <= lvec_res after g_tALU; + + alu : process(srcA, srcB, ctrl) + begin + case ctrl is + when "000" => -- add + lvec_res <= std_ulogic_vector(resize( + unsigned(srcA) + unsigned(srcB), lvec_res'length + )); + when "001" => -- substract + lvec_res <= std_ulogic_vector(resize( + unsigned(srcA) - unsigned(srcB), lvec_res'length + )); + when "010" => -- AND + lvec_res <= srcA and srcB; + when "011" => -- OR + lvec_res <= srcA or srcB; + when "101" => -- SLT + if srcA < srcB then + lvec_res <= (lvec_res'high downto 1 => '0') & '1'; + else + lvec_res <= (lvec_res'high downto 1 => '0') & '0'; + end if; + when others => -- unknown + lvec_res <= (others => '-'); + end case; + end process alu; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hdl/aluDecoder_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/aluDecoder_rtl.vhd new file mode 100644 index 0000000..a380f66 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/aluDecoder_rtl.vhd @@ -0,0 +1,27 @@ + +ARCHITECTURE rtl OF aluDecoder IS + signal lsig_rTypeSub : std_ulogic; +BEGIN + lsig_rTypeSub <= funct7 and op; -- true for R-type substract + + decode : process(op, funct3, funct7, ALUOp, lsig_rTypeSub) + begin + case ALUOp is + when "00" => ALUControl <= "000" after g_tDec; -- addition + when "01" => ALUControl <= "001" after g_tDec; -- substraction + when others => + case funct3 is -- R-type or I-type + when "000" => + if lsig_rTypeSub = '1' then + ALUControl <= "001" after g_tDec; -- sub + else + ALUControl <= "000" after g_tDec; -- add, addi + end if; + when "010" => ALUControl <= "101" after g_tDec; -- slt, slti + when "110" => ALUControl <= "011" after g_tDec; -- or, ori + when "111" => ALUControl <= "010" after g_tDec; -- and, andi + when others => ALUControl <= "---" after g_tDec; -- unknown + end case; + end case; + end process decode; +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hdl/bramAddrReducer_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/bramAddrReducer_rtl.vhd new file mode 100644 index 0000000..23da467 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/bramAddrReducer_rtl.vhd @@ -0,0 +1,6 @@ + +ARCHITECTURE rtl OF bramAddrReducer IS +BEGIN + -- +2 to srr(2) the address (as it makes +4) + addrOut <= std_ulogic_vector(addrIn(addrOut'high+2 downto addrOut'low+2)); +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hdl/bufferStdULogEnable_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/bufferStdULogEnable_rtl.vhd new file mode 100644 index 0000000..f79b51b --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/bufferStdULogEnable_rtl.vhd @@ -0,0 +1,17 @@ + +ARCHITECTURE rtl OF bufferStdULogEnable IS +BEGIN + + buffering:process(rst, CLK) + begin + if rst = '1' then + out1 <= (others=>'0'); + elsif rising_edge(CLK) then + if EN = '1' then + out1 <= in1; + end if; + end if; + end process buffering; + +END ARCHITECTURE rtl; + diff --git a/Libs/RiscV/HEIRV32/hdl/bufferUnsignedEnable_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/bufferUnsignedEnable_rtl.vhd new file mode 100644 index 0000000..a7df21b --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/bufferUnsignedEnable_rtl.vhd @@ -0,0 +1,16 @@ + +ARCHITECTURE rtl OF bufferUnsignedEnable IS +BEGIN + + buffering:process(rst, CLK) + begin + if rst = '1' then + out1 <= (others=>'0') after g_tPC; + elsif rising_edge(CLK) then + if EN = '1' then + out1 <= in1 after g_tPC; + end if; + end if; + end process buffering; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hdl/extend_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/extend_rtl.vhd new file mode 100644 index 0000000..d0d2010 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/extend_rtl.vhd @@ -0,0 +1,26 @@ + +ARCHITECTURE rtl OF extend IS +BEGIN + + extend : process(input, src) + begin + case src is + when "00" => -- I-type + extended <= (12 to 31 => input(31)) & + input(31 downto 20) after g_tExt; + when "01" => -- S-types (stores) + extended <= (12 to 31 => input(31)) & + input(31 downto 25) & input(11 downto 7) after g_tExt; + when "10" => -- B-type (branches) + extended <= (12 to 31 => input(31)) & input(7) & + input(30 downto 25) & input(11 downto 8) & '0' after g_tExt; + when "11" => -- J-type (jal) + extended <= (20 to 31 => input(31)) & + input(19 downto 12) & input(20) & + input(30 downto 21) & '0' after g_tExt; + when others => -- impossible + extended <= (others => '-') after g_tExt; + end case; + end process extend; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hdl/mux4To1ULogVec_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/mux4To1ULogVec_rtl.vhd new file mode 100644 index 0000000..683819f --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/mux4To1ULogVec_rtl.vhd @@ -0,0 +1,16 @@ + +ARCHITECTURE rtl OF mux4To1ULogVec IS +BEGIN + + muxSelect: process(sel, in1, in2, in3, in4) + begin + case to_integer(unsigned(sel)) is + when 0 => out1 <= in1 after g_tMux; + when 1 => out1 <= in2 after g_tMux; + when 2 => out1 <= in3 after g_tMux; + when 3 => out1 <= in4 after g_tMux; + when others => out1 <= (others => 'X') after g_tMux; + end case; + end process muxSelect; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hdl/registerFile_rtl.vhd b/Libs/RiscV/HEIRV32/hdl/registerFile_rtl.vhd new file mode 100644 index 0000000..0ab2793 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hdl/registerFile_rtl.vhd @@ -0,0 +1,53 @@ + +ARCHITECTURE rtl OF registerFile IS + -- Bank of register + type t_registersBank is array (31 downto 0) of + std_ulogic_vector(31 downto 0); + -- A bank of registers + signal larr_registers: t_registersBank; + signal lvec_btns : std_ulogic_vector(31 downto 0); +BEGIN + -- Special regs + process(rst, clk) + begin + if rst = '1' then + lvec_btns <= (others => '0'); + elsif rising_edge(clk) then + lvec_btns <= (btns'length to g_datawidth-1 => '0') & btns; + end if; + end process; + + -- Clocked write + process(rst, clk) begin + if rst = '1' then + larr_registers <= (others => (others => '0')) after g_tRfWr; + elsif rising_edge(clk) then + if writeEnable3 = '1' and en = '1' then + larr_registers(to_integer(unsigned(addr3))) <= writeData after (g_tRfWr + g_tSetup); + end if; + end if; + end process; + + -- Comb. read + -- Addr 0 wired to 0s + process(addr1, addr2) begin + if (to_integer(unsigned(addr1)) = 0) then + RD1 <= (others => '0') after g_tRfRd; + elsif (to_integer(unsigned(addr1)) = 31) then -- buttons + RD1 <= lvec_btns after g_tRfRd; + else + RD1 <= larr_registers(to_integer(unsigned(addr1))) after g_tRfRd; + end if; + + if (to_integer(unsigned(addr2)) = 0) then + RD2 <= (others => '0') after g_tRfRd; + elsif (to_integer(unsigned(addr2)) = 31) then -- buttons + RD2 <= lvec_btns after g_tRfRd; + else + RD2 <= larr_registers(to_integer(unsigned(addr2))) after g_tRfRd; + end if; + end process; + + leds <= larr_registers(30); + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_ALU_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_ALU_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_ALU_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_aluDecoder_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bramAddrReducer_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bramAddrReducer_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bramAddrReducer_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferStdULogEnable_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferStdULogEnable_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferStdULogEnable_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferUnsignedEnable_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferUnsignedEnable_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_bufferUnsignedEnable_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_extend_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_extend_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_extend_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instrDecoder_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_instructionForwarder_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mainfsm_fsm.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mux4To1ULogVec_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mux4To1ULogVec_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_mux4To1ULogVec_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_registerFile_rtl.vhd._fpf b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_registerFile_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/.hdlsidedata/_registerFile_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32/hds/@a@l@u/symbol.sb b/Libs/RiscV/HEIRV32/hds/@a@l@u/symbol.sb new file mode 100644 index 0000000..0391d81 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/@a@l@u/symbol.sb @@ -0,0 +1,1641 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 10,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "ctrl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 6,0 +) +) +uid 214,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "res" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +uid 216,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 8,0 +) +) +uid 218,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 9,0 +) +) +uid 220,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 5 +suid 10,0 +) +) +uid 222,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 215,0 +) +*25 (MRCItem +litem &15 +pos 3 +dimension 20 +uid 217,0 +) +*26 (MRCItem +litem &16 +pos 1 +dimension 20 +uid 219,0 +) +*27 (MRCItem +litem &17 +pos 2 +dimension 20 +uid 221,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 223,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "g_datawidth" +type "positive" +value "32" +) +uid 225,0 +) +*50 (LogGeneric +generic (GiElement +name "g_tALU" +type "time" +value "120 ps" +) +uid 302,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 224,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 303,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\@a@l@u\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\@a@l@u\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\@a@l@u" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\ALU" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "ALU" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:16:47" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "ALU" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\@a@l@u\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\ALU\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:16:47" +) +(vvPair +variable "unit" +value "ALU" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 190,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19625,11027,20375,11777" +) +tg (CPTG +uid 191,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 192,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "19300,12777,20700,15477" +st "ctrl" +ju 2 +blo "20500,12777" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 193,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,69000,3200" +st "ctrl : IN std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "ctrl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 1 +suid 6,0 +) +) +) +*67 (CptPort +uid 194,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 195,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24000,17625,24750,18375" +) +tg (CPTG +uid 196,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 197,0 +va (VaSet +font "Verdana,12,0" +) +xt "20200,17300,23000,18700" +st "res" +ju 2 +blo "23000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 198,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,75000,5600" +st "res : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "res" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 4 +suid 7,0 +) +) +) +*68 (CptPort +uid 199,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 200,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,11625,15000,12375" +) +tg (CPTG +uid 201,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 202,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,11300,19400,12700" +st "srcA" +blo "16000,12500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 203,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,75000,4000" +st "srcA : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "srcA" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 8,0 +) +) +) +*69 (CptPort +uid 204,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,20625,15000,21375" +) +tg (CPTG +uid 206,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 207,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,20300,19400,21700" +st "srcB" +blo "16000,21500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 208,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,75000,4800" +st "srcB : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "srcB" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*70 (CptPort +uid 209,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 210,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24000,15625,24750,16375" +) +tg (CPTG +uid 211,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 212,0 +va (VaSet +font "Verdana,12,0" +) +xt "19400,15300,23000,16700" +st "zero" +ju 2 +blo "23000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 213,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,58000,6400" +st "zero : OUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "zero" +t "std_ulogic" +o 5 +suid 10,0 +) +) +) +] +shape (Alu +uid 278,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,9000,24000,24000" +) +oxt "15000,6000,23000,21000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "15500,24300,20500,25500" +st "HEIRV32" +blo "15500,25300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "15500,25500,18200,26700" +st "ALU" +blo "15500,26500" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "15000,27600,31000,30800" +st "Generic Declarations + +g_datawidth positive 32 +g_tALU time 120 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_datawidth" +type "positive" +value "32" +) +(GiElement +name "g_tALU" +type "time" +value "120 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,44600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "-1920,561,1,1617" +viewArea "-300,-1200,62341,32100" +cachedDiagramExtent "0,0,75000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,6400,45200,7600" +st "User:" +blo "42000,7400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,44000,7600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 303,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hds/_alu._epf b/Libs/RiscV/HEIRV32/hds/_alu._epf new file mode 100644 index 0000000..9726e36 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_alu._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom ALU_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_aludecoder._epf b/Libs/RiscV/HEIRV32/hds/_aludecoder._epf new file mode 100644 index 0000000..e3a9212 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_aludecoder._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom aluDecoder_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_bramaddrreducer._epf b/Libs/RiscV/HEIRV32/hds/_bramaddrreducer._epf new file mode 100644 index 0000000..345f4f6 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_bramaddrreducer._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom bramAddrReducer_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_bufferstdulogenable._epf b/Libs/RiscV/HEIRV32/hds/_bufferstdulogenable._epf new file mode 100644 index 0000000..ed3f160 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_bufferstdulogenable._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom bufferStdULogEnable_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_bufferunsignedenable._epf b/Libs/RiscV/HEIRV32/hds/_bufferunsignedenable._epf new file mode 100644 index 0000000..698ca42 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_bufferunsignedenable._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom bufferUnsignedEnable_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_extend._epf b/Libs/RiscV/HEIRV32/hds/_extend._epf new file mode 100644 index 0000000..f80d769 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_extend._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom extend_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_mux4to1ulogvec._epf b/Libs/RiscV/HEIRV32/hds/_mux4to1ulogvec._epf new file mode 100644 index 0000000..5cb02f7 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_mux4to1ulogvec._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom mux4To1ULogVec_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/_registerfile._epf b/Libs/RiscV/HEIRV32/hds/_registerfile._epf new file mode 100644 index 0000000..3fcd3da --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/_registerfile._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom registerFile_rtl.vhd diff --git a/Libs/RiscV/HEIRV32/hds/alu@decoder/symbol.sb b/Libs/RiscV/HEIRV32/hds/alu@decoder/symbol.sb new file mode 100644 index 0000000..bb407f0 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/alu@decoder/symbol.sb @@ -0,0 +1,1614 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 1,0 +) +) +uid 76,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 20 +suid 2,0 +) +) +uid 78,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 2 +suid 3,0 +) +) +uid 80,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 3 +suid 4,0 +) +) +uid 82,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 84,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 77,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 79,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 81,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 83,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 85,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "g_tDec" +type "time" +value "25 ps" +) +uid 189,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 190,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\alu@decoder\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\alu@decoder\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\alu@decoder" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\aluDecoder" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "aluDecoder" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:24:21" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "aluDecoder" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\alu@decoder\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\aluDecoder\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:24:21" +) +(vvPair +variable "unit" +value "aluDecoder" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36000,16625,36750,17375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "26400,16300,35000,17700" +st "ALUControl" +ju 2 +blo "35000,17500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,71000,6400" +st "ALUControl : OUT std_ulogic_vector (2 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "ALUControl" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 7 +suid 1,0 +) +) +) +*65 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,11250,27375,12000" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,13000,27700,18000" +st "ALUOp" +ju 2 +blo "27500,13000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,72000,3200" +st "ALUOp : IN std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "ALUOp" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 20 +suid 2,0 +) +) +) +*66 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,15625,20000,16375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,15300,25700,16700" +st "funct3" +blo "21000,16500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,72000,4000" +st "funct3 : IN std_ulogic_vector (2 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct3" +t "std_ulogic_vector" +b "(2 DOWNTO 0)" +o 2 +suid 3,0 +) +) +) +*67 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,17625,20000,18375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,17300,25700,18700" +st "funct7" +blo "21000,18500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,62000,4800" +st "funct7 : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "funct7" +t "std_ulogic" +o 3 +suid 4,0 +) +) +) +*68 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,13625,20000,14375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,13300,23400,14700" +st "op" +blo "21000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,62000,5600" +st "op : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "op" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "20000,12000,36000,21000" +) +oxt "15000,6000,25000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "36650,18800,41650,20000" +st "HEIRV32" +blo "36650,19800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "36650,20000,43350,21200" +st "aluDecoder" +blo "36650,21000" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "37000,22200,48500,24600" +st "Generic Declarations + +g_tDec time 25 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_tDec" +type "time" +value "25 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,47400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *81 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*82 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*83 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "284,222,1301,912" +viewArea "200,3800,45962,34772" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-10000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "controlUnit" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *84 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *85 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,6400,45200,7600" +st "User:" +blo "42000,7400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,44000,7600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 190,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hds/bram@addr@reducer/symbol.sb b/Libs/RiscV/HEIRV32/hds/bram@addr@reducer/symbol.sb new file mode 100644 index 0000000..4e49a3c --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/bram@addr@reducer/symbol.sb @@ -0,0 +1,1435 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 67,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addrIn" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +uid 61,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "addrOut" +t "std_ulogic_vector" +b "(g_addrWidth-1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +uid 63,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 80,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 82,0 +optionalChildren [ +*18 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 83,0 +) +*19 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 84,0 +) +*20 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 85,0 +) +*21 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 62,0 +) +*22 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 64,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 86,0 +optionalChildren [ +*23 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 87,0 +) +*24 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 88,0 +) +*25 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 89,0 +) +*26 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 90,0 +) +*27 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 91,0 +) +*28 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 92,0 +) +*29 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 93,0 +) +*30 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 94,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 66,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 96,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +*43 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 145,0 +) +*44 (LogGeneric +generic (GiElement +name "g_addrWidth" +type "positive" +value "10" +) +uid 147,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*45 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *46 (MRCItem +litem &31 +pos 2 +dimension 20 +) +uid 110,0 +optionalChildren [ +*47 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 111,0 +) +*48 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 112,0 +) +*49 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*50 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 146,0 +) +*51 (MRCItem +litem &44 +pos 1 +dimension 20 +uid 148,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*52 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 115,0 +) +*53 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 116,0 +) +*54 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 117,0 +) +*55 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 118,0 +) +*56 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 119,0 +) +*57 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 120,0 +) +*58 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 121,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 95,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bram@addr@reducer\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bram@addr@reducer\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bram@addr@reducer" +) +(vvPair +variable "d_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bramAddrReducer" +) +(vvPair +variable "date" +value "11.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "entity_name" +value "bramAddrReducer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "11.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE2332111" +) +(vvPair +variable "graphical_source_time" +value "16:20:19" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2332111" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "bramAddrReducer" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bram@addr@reducer\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bramAddrReducer\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "16:20:19" +) +(vvPair +variable "unit" +value "bramAddrReducer" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 65,0 +optionalChildren [ +*59 (SymbolBody +uid 8,0 +optionalChildren [ +*60 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,10300,21000,11700" +st "addrIn" +blo "16000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,72000,3200" +st "addrIn : IN unsigned (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addrIn" +t "unsigned" +b "(g_dataWidth-1 DOWNTO 0)" +o 1 +suid 1,0 +) +) +) +*61 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,10625,28750,11375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "21000,10300,27000,11700" +st "addrOut" +ju 2 +blo "27000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,75500,4000" +st "addrOut : OUT std_ulogic_vector (g_addrWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +m 1 +decl (Decl +n "addrOut" +t "std_ulogic_vector" +b "(g_addrWidth-1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,10000,28000,14000" +) +oxt "15000,6000,28000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "15450,15800,20450,17000" +st "HEIRV32" +blo "15450,16800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "15450,17000,25550,18200" +st "bramAddrReducer" +blo "15450,18000" +) +) +gi *62 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "16000,20200,30000,23400" +st "Generic Declarations + +g_dataWidth positive 32 +g_addrWidth positive 10 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_addrWidth" +type "positive" +value "10" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*63 (Grouping +uid 16,0 +optionalChildren [ +*64 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*65 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*66 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*67 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*68 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *74 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*76 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "662,232,1678,922" +viewArea "-14090,-500,56830,47560" +cachedDiagramExtent "0,0,75500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-9000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "instructionDataMemory" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *77 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *78 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4000,45200,5200" +st "User:" +blo "42000,5000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,44000,5200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 148,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hds/buffer@std@u@log@enable/symbol.sb b/Libs/RiscV/HEIRV32/hds/buffer@std@u@log@enable/symbol.sb new file mode 100644 index 0000000..9f1150d --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/buffer@std@u@log@enable/symbol.sb @@ -0,0 +1,1642 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 5 +suid 1,0 +) +) +uid 76,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 2,0 +) +) +uid 78,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 3,0 +) +) +uid 80,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "en" +t "std_uLogic" +o 2 +suid 4,0 +) +) +uid 82,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 84,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 77,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 79,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 81,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 83,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 85,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 166,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*50 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *51 (MRCItem +litem &37 +pos 1 +dimension 20 +) +uid 131,0 +optionalChildren [ +*52 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*53 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*54 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*55 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 167,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*56 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*57 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*58 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*59 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*60 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*61 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*62 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@std@u@log@enable\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@std@u@log@enable\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@std@u@log@enable" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bufferStdULogEnable" +) +(vvPair +variable "date" +value "11.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "11" +) +(vvPair +variable "entity_name" +value "bufferStdULogEnable" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "11.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:01:42" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "bufferStdULogEnable" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@std@u@log@enable\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bufferStdULogEnable\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "15:01:42" +) +(vvPair +variable "unit" +value "bufferStdULogEnable" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*63 (SymbolBody +uid 8,0 +optionalChildren [ +*64 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "12250,24625,13000,25375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,8,0" +) +xt "13236,24500,14736,25500" +st "rst" +blo "13236,25300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,59000,5600" +st "rst : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*65 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14625,27000,15375,27750" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,8,0" +) +xt "14342,25579,15842,26579" +st "en" +blo "14342,26379" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,59000,4000" +st "en : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "en" +t "std_uLogic" +o 2 +suid 4,0 +) +) +) +*66 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14625,19250,15375,20000" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,8,0" +) +xt "14108,20148,15708,21148" +st "clk" +ju 2 +blo "15708,20948" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,59000,3200" +st "clk : IN std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 1 +suid 3,0 +) +) +) +*67 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "12250,22625,13000,23375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,8,0" +) +xt "13177,22530,14877,23530" +st "in1" +blo "13177,23330" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,75000,4800" +st "in1 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 3 +suid 2,0 +) +) +) +*68 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17000,22625,17750,23375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "14612,22500,16912,23500" +st "out1" +ju 2 +blo "16912,23300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,75000,6400" +st "out1 : OUT std_ulogic_vector (g_dataWidth - 1 DOWNTO 0) +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 5 +suid 1,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "13000,20000,17000,27000" +) +oxt "15000,6000,21000,15000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "17050,29300,22050,30500" +st "HEIRV32" +blo "17050,30300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "17050,30500,28950,31700" +st "bufferStdULogEnable" +blo "17050,31500" +) +) +gi *69 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,33200,31000,35600" +st "Generic Declarations + +g_dataWidth positive 32 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*70 (Grouping +uid 16,0 +optionalChildren [ +*71 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,50600,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*81 (CommentGraphic +uid 172,0 +shape (PolyLine2D +pts [ +"15000,22000" +"17000,20000" +] +uid 173,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "15000,20000,17000,22000" +) +) +*82 (CommentGraphic +uid 174,0 +shape (PolyLine2D +pts [ +"13000,20000" +"15000,22000" +] +uid 175,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "13000,20000,15000,22000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *83 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*85 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "-1100,-234,-83,456" +viewArea "7600,17800,30481,33286" +cachedDiagramExtent "0,0,75000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-12000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *86 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *87 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,6400,45200,7600" +st "User:" +blo "42000,7400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,44000,7600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 198,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/RiscV/HEIRV32/hds/buffer@unsigned@enable/symbol.sb b/Libs/RiscV/HEIRV32/hds/buffer@unsigned@enable/symbol.sb new file mode 100644 index 0000000..e82b0e6 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/buffer@unsigned@enable/symbol.sb @@ -0,0 +1,1658 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 88,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 1,0 +) +) +uid 76,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +uid 78,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "in1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +uid 80,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 4,0 +) +) +uid 82,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +uid 84,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 101,0 +optionalChildren [ +*19 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *20 (MRCItem +litem &1 +pos 5 +dimension 20 +) +uid 103,0 +optionalChildren [ +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 104,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 105,0 +) +*23 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 106,0 +) +*24 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 77,0 +) +*25 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 79,0 +) +*26 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 81,0 +) +*27 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 83,0 +) +*28 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 85,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 107,0 +optionalChildren [ +*29 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 109,0 +) +*31 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 110,0 +) +*32 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 111,0 +) +*33 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 112,0 +) +*34 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 113,0 +) +*35 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 114,0 +) +*36 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 115,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 102,0 +vaOverrides [ +] +) +] +) +uid 87,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *37 (LEmptyRow +) +uid 117,0 +optionalChildren [ +*38 (RefLabelRowHdr +) +*39 (TitleRowHdr +) +*40 (FilterRowHdr +) +*41 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*42 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*43 (GroupColHdr +tm "GroupColHdrMgr" +) +*44 (NameColHdr +tm "GenericNameColHdrMgr" +) +*45 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*46 (InitColHdr +tm "GenericValueColHdrMgr" +) +*47 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*48 (EolColHdr +tm "GenericEolColHdrMgr" +) +*49 (LogGeneric +generic (GiElement +name "g_bitNb" +type "positive" +value "32" +) +uid 166,0 +) +*50 (LogGeneric +generic (GiElement +name "g_tPC" +type "time" +value "40 ps" +) +uid 402,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 129,0 +optionalChildren [ +*51 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *52 (MRCItem +litem &37 +pos 2 +dimension 20 +) +uid 131,0 +optionalChildren [ +*53 (MRCItem +litem &38 +pos 0 +dimension 20 +uid 132,0 +) +*54 (MRCItem +litem &39 +pos 1 +dimension 23 +uid 133,0 +) +*55 (MRCItem +litem &40 +pos 2 +hidden 1 +dimension 20 +uid 134,0 +) +*56 (MRCItem +litem &49 +pos 0 +dimension 20 +uid 167,0 +) +*57 (MRCItem +litem &50 +pos 1 +dimension 20 +uid 403,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 135,0 +optionalChildren [ +*58 (MRCItem +litem &41 +pos 0 +dimension 20 +uid 136,0 +) +*59 (MRCItem +litem &43 +pos 1 +dimension 50 +uid 137,0 +) +*60 (MRCItem +litem &44 +pos 2 +dimension 100 +uid 138,0 +) +*61 (MRCItem +litem &45 +pos 3 +dimension 100 +uid 139,0 +) +*62 (MRCItem +litem &46 +pos 4 +dimension 50 +uid 140,0 +) +*63 (MRCItem +litem &47 +pos 5 +dimension 50 +uid 141,0 +) +*64 (MRCItem +litem &48 +pos 6 +dimension 80 +uid 142,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 130,0 +vaOverrides [ +] +) +] +) +uid 116,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@unsigned@enable\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@unsigned@enable\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@unsigned@enable" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bufferUnsignedEnable" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "bufferUnsignedEnable" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:09:50" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "bufferUnsignedEnable" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\buffer@unsigned@enable\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\bufferUnsignedEnable\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:09:50" +) +(vvPair +variable "unit" +value "bufferUnsignedEnable" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*65 (SymbolBody +uid 8,0 +optionalChildren [ +*66 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,12250,24375,13000" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,8,0" +) +xt "23184,13000,24784,14000" +st "clk" +blo "23184,13800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,59000,3200" +st "clk : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 1,0 +) +) +) +*67 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26000,15625,26750,16375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,8,0" +) +xt "23436,15454,25736,16454" +st "out1" +ju 2 +blo "25736,16254" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,68500,6400" +st "out1 : OUT unsigned (g_bitNb - 1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 7 +suid 2,0 +) +) +) +*68 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21250,15625,22000,16375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,8,0" +) +xt "22310,15500,24010,16500" +st "in1" +blo "22310,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,69500,4800" +st "in1 : IN unsigned (g_bitNb - 1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "unsigned" +b "(g_bitNb - 1 DOWNTO 0)" +o 6 +suid 3,0 +) +) +) +*69 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23625,20000,24375,20750" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,8,0" +) +xt "23414,19000,24914,20000" +st "en" +blo "23414,19800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,59000,4000" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 5 +suid 4,0 +) +) +) +*70 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21250,17625,22000,18375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,8,0" +) +xt "22264,17500,23764,18500" +st "rst" +blo "22264,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,59000,5600" +st "rst : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22000,13000,26000,20000" +) +oxt "15000,6000,19000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,8,1" +) +xt "19600,21800,24200,22800" +st "HEIRV32" +blo "19600,22600" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,8,1" +) +xt "19600,22800,31500,23800" +st "bufferUnsignedEnable" +blo "19600,23600" +) +) +gi *71 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "20000,23600,33500,26800" +st "Generic Declarations + +g_bitNb positive 32 +g_tPC time 40 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_bitNb" +type "positive" +value "32" +) +(GiElement +name "g_tPC" +type "time" +value "40 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*72 (Grouping +uid 16,0 +optionalChildren [ +*73 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,50900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*83 (CommentGraphic +uid 191,0 +shape (PolyLine2D +pts [ +"22000,13000" +"24000,15000" +] +uid 192,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "22000,13000,24000,15000" +) +oxt "22000,12000,26000,15000" +) +*84 (CommentGraphic +uid 193,0 +shape (PolyLine2D +pts [ +"24000,15000" +"26000,13000" +] +uid 194,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "24000,13000,26000,15000" +) +oxt "26000,12000,30000,15000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *85 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*86 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*87 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "-8,-8,1928,1048" +viewArea "-8400,-4900,70168,36500" +cachedDiagramExtent "0,0,73000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-13000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *88 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *89 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,6400,45200,7600" +st "User:" +blo "42000,7400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,44000,7600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 426,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hds/extend/symbol.sb b/Libs/RiscV/HEIRV32/hds/extend/symbol.sb new file mode 100644 index 0000000..83ad80d --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/extend/symbol.sb @@ -0,0 +1,1550 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 3,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 67,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "extended" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 1,0 +) +) +uid 61,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(31 DOWNTO 7)" +o 1 +suid 2,0 +) +) +uid 63,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "src" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +uid 284,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 80,0 +optionalChildren [ +*17 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *18 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*19 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 83,0 +) +*20 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 84,0 +) +*21 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 85,0 +) +*22 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 62,0 +) +*23 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 64,0 +) +*24 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 285,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 86,0 +optionalChildren [ +*25 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 87,0 +) +*26 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 88,0 +) +*27 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 89,0 +) +*28 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 90,0 +) +*29 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 91,0 +) +*30 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 92,0 +) +*31 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 93,0 +) +*32 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 94,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 66,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *33 (LEmptyRow +) +uid 96,0 +optionalChildren [ +*34 (RefLabelRowHdr +) +*35 (TitleRowHdr +) +*36 (FilterRowHdr +) +*37 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*38 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*39 (GroupColHdr +tm "GroupColHdrMgr" +) +*40 (NameColHdr +tm "GenericNameColHdrMgr" +) +*41 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*42 (InitColHdr +tm "GenericValueColHdrMgr" +) +*43 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*44 (EolColHdr +tm "GenericEolColHdrMgr" +) +*45 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 145,0 +) +*46 (LogGeneric +generic (GiElement +name "g_tExt" +type "time" +value "35 ps" +) +uid 360,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *48 (MRCItem +litem &33 +pos 2 +dimension 20 +) +uid 110,0 +optionalChildren [ +*49 (MRCItem +litem &34 +pos 0 +dimension 20 +uid 111,0 +) +*50 (MRCItem +litem &35 +pos 1 +dimension 23 +uid 112,0 +) +*51 (MRCItem +litem &36 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*52 (MRCItem +litem &45 +pos 0 +dimension 20 +uid 146,0 +) +*53 (MRCItem +litem &46 +pos 1 +dimension 20 +uid 361,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*54 (MRCItem +litem &37 +pos 0 +dimension 20 +uid 115,0 +) +*55 (MRCItem +litem &39 +pos 1 +dimension 50 +uid 116,0 +) +*56 (MRCItem +litem &40 +pos 2 +dimension 100 +uid 117,0 +) +*57 (MRCItem +litem &41 +pos 3 +dimension 100 +uid 118,0 +) +*58 (MRCItem +litem &42 +pos 4 +dimension 50 +uid 119,0 +) +*59 (MRCItem +litem &43 +pos 5 +dimension 50 +uid 120,0 +) +*60 (MRCItem +litem &44 +pos 6 +dimension 80 +uid 121,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 95,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\extend\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\extend\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\extend" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\extend" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "extend" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:09:36" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "extend" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\extend\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\extend\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:09:36" +) +(vvPair +variable "unit" +value "extend" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 65,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31000,13625,31750,14375" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "23200,13300,30000,14700" +st "extended" +ju 2 +blo "30000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,76000,4800" +st "extended : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "extended" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 2 +suid 1,0 +) +) +) +*63 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,13625,16000,14375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,13300,21000,14700" +st "input" +blo "17000,14500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,71500,3200" +st "input : IN std_ulogic_vector (31 DOWNTO 7) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "input" +t "std_ulogic_vector" +b "(31 DOWNTO 7)" +o 1 +suid 2,0 +) +) +) +*64 (CommentGraphic +uid 209,0 +shape (CustomPolygon +pts [ +"16000,13000" +"31000,13000" +"31000,16000" +"16000,16000" +"16000,13000" +] +uid 210,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "16000,13000,31000,16000" +) +) +*65 (CommentGraphic +uid 159,0 +shape (CustomPolygon +pts [ +"16001,16000" +"16001,13000" +"30999,10000" +"30999,16000" +"16001,16000" +] +uid 160,0 +layer 0 +sl 0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "26368,26368,26368" +) +xt "16001,10000,30999,16000" +) +) +*66 (CptPort +uid 286,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 287,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "31000,10625,31750,11375" +) +tg (CPTG +uid 288,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 289,0 +va (VaSet +font "Verdana,12,0" +) +xt "27400,10300,30000,11700" +st "src" +ju 2 +blo "30000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 290,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,71000,4000" +st "src : IN std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "src" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 3 +suid 3,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +transparent 1 +lineColor "26368,26368,26368" +lineStyle 2 +) +xt "16000,10000,31000,16000" +fos 1 +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "15500,17300,20500,18500" +st "HEIRV32" +blo "15500,18300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "15500,18500,19600,19700" +st "extend" +blo "15500,19500" +) +) +gi *67 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "15000,20800,30500,24000" +st "Generic Declarations + +g_dataWidth positive 32 +g_tExt time 35 ps " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_tExt" +type "time" +value "35 ps" +) +] +) +sed 1 +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*68 (Grouping +uid 16,0 +optionalChildren [ +*69 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,45700,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *79 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*80 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*81 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "480,270,1505,960" +viewArea "14000,7300,37113,22786" +cachedDiagramExtent "0,0,76000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *82 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *83 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,4800,45200,6000" +st "User:" +blo "42000,5800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,44000,6000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 384,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hds/mux4@to1@u@log@vec/symbol.sb b/Libs/RiscV/HEIRV32/hds/mux4@to1@u@log@vec/symbol.sb new file mode 100644 index 0000000..1b5fe74 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/mux4@to1@u@log@vec/symbol.sb @@ -0,0 +1,1701 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 6,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 95,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "sel" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 1,0 +) +) +uid 81,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "in4" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 23 +suid 2,0 +) +) +uid 83,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "in2" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 13 +suid 3,0 +) +) +uid 85,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +uid 87,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "in3" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 21 +suid 5,0 +) +) +uid 89,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 25 +suid 6,0 +) +) +uid 91,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*20 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *21 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 110,0 +optionalChildren [ +*22 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 111,0 +) +*23 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 112,0 +) +*24 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 113,0 +) +*25 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 82,0 +) +*26 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 84,0 +) +*27 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 86,0 +) +*28 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 88,0 +) +*29 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 90,0 +) +*30 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 92,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 114,0 +optionalChildren [ +*31 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 115,0 +) +*32 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 116,0 +) +*33 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 117,0 +) +*34 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 118,0 +) +*35 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 119,0 +) +*36 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 120,0 +) +*37 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 121,0 +) +*38 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 122,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 109,0 +vaOverrides [ +] +) +] +) +uid 94,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *39 (LEmptyRow +) +uid 124,0 +optionalChildren [ +*40 (RefLabelRowHdr +) +*41 (TitleRowHdr +) +*42 (FilterRowHdr +) +*43 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*44 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*45 (GroupColHdr +tm "GroupColHdrMgr" +) +*46 (NameColHdr +tm "GenericNameColHdrMgr" +) +*47 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*48 (InitColHdr +tm "GenericValueColHdrMgr" +) +*49 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*50 (EolColHdr +tm "GenericEolColHdrMgr" +) +*51 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 173,0 +) +*52 (LogGeneric +generic (GiElement +name "g_tMux" +type "time" +value "30 ps" +) +uid 222,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*53 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *54 (MRCItem +litem &39 +pos 2 +dimension 20 +) +uid 138,0 +optionalChildren [ +*55 (MRCItem +litem &40 +pos 0 +dimension 20 +uid 139,0 +) +*56 (MRCItem +litem &41 +pos 1 +dimension 23 +uid 140,0 +) +*57 (MRCItem +litem &42 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*58 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 174,0 +) +*59 (MRCItem +litem &52 +pos 1 +dimension 20 +uid 223,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*60 (MRCItem +litem &43 +pos 0 +dimension 20 +uid 143,0 +) +*61 (MRCItem +litem &45 +pos 1 +dimension 50 +uid 144,0 +) +*62 (MRCItem +litem &46 +pos 2 +dimension 100 +uid 145,0 +) +*63 (MRCItem +litem &47 +pos 3 +dimension 100 +uid 146,0 +) +*64 (MRCItem +litem &48 +pos 4 +dimension 50 +uid 147,0 +) +*65 (MRCItem +litem &49 +pos 5 +dimension 50 +uid 148,0 +) +*66 (MRCItem +litem &50 +pos 6 +dimension 80 +uid 149,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 123,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mux4@to1@u@log@vec\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mux4@to1@u@log@vec\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mux4@to1@u@log@vec" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mux4To1ULogVec" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "mux4To1ULogVec" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:11:14" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "mux4To1ULogVec" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mux4@to1@u@log@vec\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\mux4To1ULogVec\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:11:14" +) +(vvPair +variable "unit" +value "mux4To1ULogVec" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 93,0 +optionalChildren [ +*67 (SymbolBody +uid 8,0 +optionalChildren [ +*68 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,15749,23375,16499" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +ro 270 +va (VaSet +font "Verdana,8,0" +) +xt "22500,17000,23500,18600" +st "sel" +ju 2 +blo "23300,17000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,69000,6400" +st "sel : IN std_ulogic_vector (1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "sel" +t "std_ulogic_vector" +b "(1 DOWNTO 0)" +o 18 +suid 1,0 +) +) +) +*69 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,21625,20000,22375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,21500,21700,22500" +st "in4" +blo "20000,22300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,75000,5600" +st "in4 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "in4" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 23 +suid 2,0 +) +) +) +*70 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,17625,20000,18375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,17500,21700,18500" +st "in2" +blo "20000,18300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,76000,4000" +st "in2 : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in2" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 13 +suid 3,0 +) +) +) +*71 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,15625,20000,16375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,15500,21700,16500" +st "in1" +blo "20000,16300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,76000,3200" +st "in1 : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in1" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 7 +suid 4,0 +) +) +) +*72 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19250,19625,20000,20375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,8,0" +) +xt "20000,19500,21700,20500" +st "in3" +blo "20000,20300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,75000,4800" +st "in3 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "in3" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 21 +suid 5,0 +) +) +) +*73 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24000,18625,24750,19375" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +va (VaSet +font "Verdana,8,0" +) +xt "21700,18500,24000,19500" +st "out1" +ju 2 +blo "24000,19300" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,74000,7200" +st "out1 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "out1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 25 +suid 6,0 +) +) +) +] +shape (Mux +uid 198,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "20000,14000,24000,24000" +) +oxt "15000,6000,19000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "18000,25800,23000,27000" +st "HEIRV32" +blo "18000,26800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "18000,27000,28000,28200" +st "mux4To1ULogVec" +blo "18000,28000" +) +) +gi *74 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "18000,28600,33500,31800" +st "Generic Declarations + +g_dataWidth positive 32 +g_tMux time 30 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_tMux" +type "time" +value "30 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*75 (Grouping +uid 16,0 +optionalChildren [ +*76 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*78 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*79 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*80 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*81 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*82 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*83 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*84 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,49800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *86 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*88 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "96,54,1115,744" +viewArea "7600,13000,31330,29020" +cachedDiagramExtent "0,0,76000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-13000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *89 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *90 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,7200,45200,8400" +st "User:" +blo "42000,8200" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,44000,8400" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 246,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32/hds/register@file/symbol.sb b/Libs/RiscV/HEIRV32/hds/register@file/symbol.sb new file mode 100644 index 0000000..77505e3 --- /dev/null +++ b/Libs/RiscV/HEIRV32/hds/register@file/symbol.sb @@ -0,0 +1,2190 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "gates" +unitName "gates" +) +] +libraryRefs [ +"ieee" +"gates" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 1,0 +) +) +uid 86,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addr1" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 1 +suid 2,0 +) +) +uid 88,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +uid 90,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +uid 92,0 +) +*18 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD2" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 9 +suid 5,0 +) +) +uid 94,0 +) +*19 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "writeEnable3" +t "std_ulogic" +o 6 +suid 6,0 +) +) +uid 96,0 +) +*20 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 98,0 +) +*21 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addr2" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 2 +suid 8,0 +) +) +uid 180,0 +) +*22 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "addr3" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 3 +suid 9,0 +) +) +uid 182,0 +) +*23 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 10 +suid 10,0 +) +) +uid 320,0 +) +*24 (LogPort +port (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +uid 350,0 +) +*25 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 12 +suid 12,0 +) +) +uid 361,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 115,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 117,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 118,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 119,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 120,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 87,0 +) +*32 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 89,0 +) +*33 (MRCItem +litem &16 +pos 4 +dimension 20 +uid 91,0 +) +*34 (MRCItem +litem &17 +pos 5 +dimension 20 +uid 93,0 +) +*35 (MRCItem +litem &18 +pos 6 +dimension 20 +uid 95,0 +) +*36 (MRCItem +litem &19 +pos 7 +dimension 20 +uid 97,0 +) +*37 (MRCItem +litem &20 +pos 8 +dimension 20 +uid 99,0 +) +*38 (MRCItem +litem &21 +pos 3 +dimension 20 +uid 181,0 +) +*39 (MRCItem +litem &22 +pos 2 +dimension 20 +uid 183,0 +) +*40 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 321,0 +) +*41 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 351,0 +) +*42 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 362,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 121,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 122,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 123,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 124,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 125,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 126,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 127,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 128,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 129,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 116,0 +vaOverrides [ +] +) +] +) +uid 101,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 131,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "g_dataWidth" +type "positive" +value "32" +) +uid 198,0 +) +*64 (LogGeneric +generic (GiElement +name "g_btnsNb" +type "positive" +value "2" +) +uid 352,0 +) +*65 (LogGeneric +generic (GiElement +name "g_tRfRd" +type "time" +value "100 ps" +) +uid 414,0 +) +*66 (LogGeneric +generic (GiElement +name "g_tRfWr" +type "time" +value "60 ps" +) +uid 416,0 +) +*67 (LogGeneric +generic (GiElement +name "g_tSetup" +type "time" +value "50 ps" +) +uid 418,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*68 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *69 (MRCItem +litem &51 +pos 5 +dimension 20 +) +uid 145,0 +optionalChildren [ +*70 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 146,0 +) +*71 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 147,0 +) +*72 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*73 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 199,0 +) +*74 (MRCItem +litem &64 +pos 1 +dimension 20 +uid 353,0 +) +*75 (MRCItem +litem &65 +pos 2 +dimension 20 +uid 415,0 +) +*76 (MRCItem +litem &66 +pos 3 +dimension 20 +uid 417,0 +) +*77 (MRCItem +litem &67 +pos 4 +dimension 20 +uid 419,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*78 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 150,0 +) +*79 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 151,0 +) +*80 (MRCItem +litem &58 +pos 2 +dimension 100 +uid 152,0 +) +*81 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 153,0 +) +*82 (MRCItem +litem &60 +pos 4 +dimension 50 +uid 154,0 +) +*83 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 155,0 +) +*84 (MRCItem +litem &62 +pos 6 +dimension 80 +uid 156,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 130,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\register@file\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\register@file\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\register@file" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\registerFile" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "registerFile" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:19:02" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr/RiscV/HEIRV32/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "registerFile" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\register@file\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32\\hds\\registerFile\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "11:19:02" +) +(vvPair +variable "unit" +value "registerFile" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 100,0 +optionalChildren [ +*85 (SymbolBody +uid 8,0 +optionalChildren [ +*86 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18625,20250,19375,21000" +) +tg (CPTG +uid 53,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "Verdana,12,0" +) +xt "17424,21345,19824,22745" +st "clk" +ju 2 +blo "19824,22545" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 55,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,63000,6400" +st "clk : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 1,0 +) +) +) +*87 (CptPort +uid 56,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 57,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,25625,16000,26375" +) +tg (CPTG +uid 58,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 59,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,25300,21500,26700" +st "addr1" +blo "17000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 60,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,73000,3200" +st "addr1 : IN std_ulogic_vector (4 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr1" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 1 +suid 2,0 +) +) +) +*88 (CptPort +uid 61,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 62,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,32625,16000,33375" +) +tg (CPTG +uid 63,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 64,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,32300,24000,33700" +st "writeData" +blo "17000,33500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 65,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,80000,8800" +st "writeData : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeData" +t "std_ulogic_vector" +b "(g_dataWidth - 1 DOWNTO 0)" +o 4 +suid 3,0 +) +) +) +*89 (CptPort +uid 66,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 67,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33000,25625,33750,26375" +) +tg (CPTG +uid 68,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 69,0 +va (VaSet +font "Verdana,12,0" +) +xt "28700,25300,32000,26700" +st "RD1" +ju 2 +blo "32000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 70,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9600,79000,10400" +st "RD1 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD1" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 8 +suid 4,0 +) +) +) +*90 (CptPort +uid 71,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33000,29625,33750,30375" +) +tg (CPTG +uid 73,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 74,0 +va (VaSet +font "Verdana,12,0" +) +xt "28700,29300,32000,30700" +st "RD2" +ju 2 +blo "32000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 75,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10400,79000,11200" +st "RD2 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "RD2" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 9 +suid 5,0 +) +) +) +*91 (CptPort +uid 76,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 77,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,20250,26375,21000" +) +tg (CPTG +uid 78,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 79,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "25300,22000,26700,31900" +st "writeEnable3" +ju 2 +blo "26500,22000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 80,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,63000,9600" +st "writeEnable3 : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "writeEnable3" +t "std_ulogic" +o 6 +suid 6,0 +) +) +) +*92 (CptPort +uid 81,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 82,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21625,20250,22375,21000" +) +tg (CPTG +uid 83,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 84,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "21300,22000,22700,24500" +st "rst" +ju 2 +blo "22500,22000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 85,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,63000,8000" +st "rst : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 7 +suid 7,0 +) +) +) +*93 (CptPort +uid 184,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 185,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,27625,16000,28375" +) +tg (CPTG +uid 186,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 187,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,27300,21500,28700" +st "addr2" +blo "17000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 188,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,73000,4000" +st "addr2 : IN std_ulogic_vector (4 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr2" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 2 +suid 8,0 +) +) +) +*94 (CptPort +uid 189,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 190,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15250,29625,16000,30375" +) +tg (CPTG +uid 191,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 192,0 +va (VaSet +font "Verdana,12,0" +) +xt "17000,29300,21500,30700" +st "addr3" +blo "17000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 193,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,73000,4800" +st "addr3 : IN std_ulogic_vector (4 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "addr3" +t "std_ulogic_vector" +b "(4 DOWNTO 0)" +o 3 +suid 9,0 +) +) +) +*95 (CptPort +uid 322,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 323,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,20250,29375,21000" +) +tg (CPTG +uid 324,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 325,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,22000,29700,24400" +st "en" +ju 2 +blo "29500,22000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 326,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,63000,7200" +st "en : IN std_ulogic ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 10 +suid 10,0 +) +) +) +*96 (CptPort +uid 356,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 357,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "27625,35000,28375,35750" +) +tg (CPTG +uid 358,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 359,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "27300,30400,28700,34000" +st "btns" +blo "28500,34000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 360,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,77500,5600" +st "btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 11 +suid 11,0 +) +) +) +*97 (CptPort +uid 363,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 364,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29625,35000,30375,35750" +) +tg (CPTG +uid 365,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 366,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "29300,30600,30700,34000" +st "leds" +blo "30500,34000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 367,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11200,78000,12000" +st "leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0)" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 12 +suid 12,0 +) +) +) +] +shape (Rectangle +uid 246,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "16000,21000,33000,35000" +) +oxt "16000,21000,37000,33000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "17050,35300,22050,36500" +st "HEIRV32" +blo "17050,36300" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "17050,36500,23950,37700" +st "registerFile" +blo "17050,37500" +) +) +gi *98 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "17000,38600,33000,44200" +st "Generic Declarations + +g_dataWidth positive 32 +g_btnsNb positive 2 +g_tRfRd time 100 ps +g_tRfWr time 60 ps +g_tSetup time 50 ps +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_btnsNb" +type "positive" +value "2" +) +(GiElement +name "g_tRfRd" +type "time" +value "100 ps" +) +(GiElement +name "g_tRfWr" +type "time" +value "60 ps" +) +(GiElement +name "g_tSetup" +type "time" +value "50 ps" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*99 (Grouping +uid 16,0 +optionalChildren [ +*100 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*104 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*105 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*106 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*107 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*108 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*109 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,47400,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +*110 (CommentGraphic +uid 247,0 +shape (PolyLine2D +pts [ +"17000,21000" +"19000,24000" +] +uid 248,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "17000,21000,19000,24000" +) +) +*111 (CommentGraphic +uid 249,0 +shape (PolyLine2D +pts [ +"19000,24000" +"21000,21000" +] +uid 250,0 +layer 8 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "19000,21000,21000,24000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *112 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*113 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*114 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,7200" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all;" +tm "PackageList" +) +] +) +windowSize "2037,128,3060,818" +viewArea "6000,16100,52110,47072" +cachedDiagramExtent "0,0,80000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-11000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32" +entityName "heirv32" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *115 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *116 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,12000,45200,13200" +st "User:" +blo "42000,13000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,13200,44000,13200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 419,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32_test/concat/concatenated.vhd b/Libs/RiscV/HEIRV32_test/concat/concatenated.vhd new file mode 100644 index 0000000..0df33fe --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/concat/concatenated.vhd @@ -0,0 +1,3275 @@ +-- VHDL Entity HEIRV32_test.heirv32_tb.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE2332101) +-- at - 14:52:58 18.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY heirv32_tb IS +-- Declarations + +END heirv32_tb ; + + + + + +-- VHDL Entity HEIRV32_test.universalTester.interface +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 16:01:58 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY universalTester IS + GENERIC( + c_btnsNb : positive := 2 + ); + PORT( + btns : OUT std_ulogic_vector (c_btnsNb-1 DOWNTO 0); + clk : OUT std_ulogic; + en : OUT std_ulogic; + rst : OUT std_ulogic + ); + +-- Declarations + +END universalTester ; + + + + + +LIBRARY std; + USE std.textio.all; +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +PACKAGE testUtils IS + + --============================================================================ + -- console output + -- + + procedure print(value : string); + + + --============================================================================ + -- string manipulation + -- + + -- conversion to lowercase + function lc(value : string) return string; + procedure lc(value : inout line); + -- conversion to uppercase + function uc(value : string) return string; + procedure uc(value : inout line); + -- expand a string to a given length + function pad( + value : string; + string_length : natural; + fill_char : character := ' '; + right_justify : boolean := false + ) return string; + -- remove separator characters at beginning and end of line + procedure rm_side_separators( + value : inout line; + separators : in string + ); + procedure rm_side_separators( + value : inout line + ); + -- remove multiple occurences of separator characters + procedure trim_line( + value : inout line; + separators : in string + ); + + procedure trim_line( + value : inout line + ); + -- remove all occurences of separator characters + procedure rm_all_separators( + value : inout line; + separators : in string + ); + + procedure rm_all_separators( + value : inout line + ); + -- find and remove first word + procedure read_first( + value : inout line; + separators : in string; + first : out line + ); + + procedure read_first( + value : inout line; + first : out line + ); + -- find and remove last word + procedure read_last( + value : inout line; + separators : in string; + last : out line + ); + + procedure read_last( + value : inout line; + last : out line + ); + + + --============================================================================ + -- formatted string output + -- + -- format codes: + -- code integer real std_logic std_(u)logic_vector (un)signed time + -- b v v v v binary + -- c character + -- d v v v v v decimal + -- e real numbers, with power of 10 exponent + -- f v v fixed point real numbers + -- s string + -- ts v time in seconds + -- tm v time in milliseconds + -- tu v time in microseconds + -- tn v time in nanoseconds + -- tp v time in picoseconds + -- x v v v v hexadecimal + -- X v v v v hexadecimal with upper-case letters + + function sprintf(format : string; value : integer ) return string; + function sprintf(format : string; value : real ) return string; + function sprintf(format : string; value : std_logic ) return string; + function sprintf(format : string; value : std_ulogic_vector) return string; + function sprintf(format : string; value : std_logic_vector ) return string; + function sprintf(format : string; value : unsigned ) return string; + function sprintf(format : string; value : signed ) return string; + function sprintf(format : string; value : time ) return string; + + --============================================================================ + -- formatted string input + -- + subtype nibbleUlogicType is std_ulogic_vector(3 downto 0); + subtype nibbleUnsignedType is unsigned(3 downto 0); + + function sscanf(value : character) return natural; + function sscanf(value : character) return nibbleUlogicType; + function sscanf(value : character) return nibbleUnsignedType; + function sscanf(value : string ) return natural; + function sscanf(value : string ) return unsigned; + function sscanf(value : string ) return std_ulogic_vector; + function sscanf(value : string ) return time; + + procedure sscanf(value : inout line; time_val : out time); + +END testUtils; + + + + +PACKAGE BODY testUtils IS + + --============================================================================ + -- console output + -- + + procedure print(value : string) is + variable my_line : line; + begin + write(my_line, value); + writeLine(output, my_line); + deallocate(my_line); + end print; + + + --============================================================================ + -- string manipulation + -- + + ------------------------------------------------------------------------------ + -- change to lowercase + ------------------------------------------------------------------------------ + procedure lc(value: inout line) is + variable out_line: line; + begin + for index in value'range loop + if (value(index) >= 'A') and (value(index) <= 'Z') then + value(index) := character'val(character'pos(value(index)) + - character'pos('A') + + character'pos('a') + ); + end if; + end loop; + end lc; + + function lc(value: string) return string is + variable out_line: line; + begin + write(out_line, value); + lc(out_line); + return(out_line.all); + end lc; + + ------------------------------------------------------------------------------ + -- change to uppercase + ------------------------------------------------------------------------------ + procedure uc(value: inout line) is + variable out_line: line; + begin + for index in value'range loop + if (value(index) >= 'a') and (value(index) <= 'z') then + value(index) := character'val(character'pos(value(index)) + - character'pos('a') + + character'pos('A') + ); + end if; + end loop; + end uc; + + function uc(value: string) return string is + variable out_line: line; + begin + write(out_line, value); + uc(out_line); + return(out_line.all); + end uc; + + ------------------------------------------------------------------------------ + -- formatted string output: padding and justifying + ------------------------------------------------------------------------------ + function pad( + value : string; + string_length : natural; + fill_char : character := ' '; + right_justify : boolean := false + ) return string is + variable value_line : line; + variable out_line : line; + variable value_length : natural; + variable shift_sign : boolean; + begin + write(value_line, value); + value_length := value_line.all'length; + if string_length = 0 then + write(out_line, value_line.all); + elsif string_length > value_length then + if right_justify then + if (value_line.all(value_line.all'left) <= '-') and not(fill_char = ' ') then + shift_sign := true; + write(out_line, value_line.all(value_line.all'left)); + end if; + for index in 1 to string_length-value_length loop + write(out_line, fill_char); + end loop; + end if; + if shift_sign then + write(out_line, value_line.all(value_line.all'left+1 to value_line.all'right)); + else + write(out_line, value_line.all); + end if; + if not right_justify then + for index in 1 to string_length-value_length loop + write(out_line, fill_char); + end loop; + end if; + elsif string_length < value_length then + write(out_line, '#'); + write(out_line, value_line.all(value_length-string_length+2 to value_length)); + else + write(out_line, value_line.all); + end if; + deallocate(value_line); + return(out_line.all); + end pad; + + ------------------------------------------------------------------------------ + -- remove separator characters at beginning and end of line + ------------------------------------------------------------------------------ + procedure rm_side_separators( + value : inout line; + separators : in string + ) is + variable input_line : line := value; + variable found : boolean := false; + variable position : integer := 0; + begin + -- remove all separators in the beginning + position := -1; + for character_index in input_line'range loop + found := false; + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + found := true; + end if; + end loop; + if found then + position := character_index; + else + exit; + end if; + end loop; + if position > -1 then + input_line := new string'( input_line(position+1 to input_line'right) ); + end if; + + -- remove all separators in the end + position := -1; + for character_index in input_line'reverse_range loop + found := false; + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + found := true; + end if; + end loop; + if found then + position := character_index; + else + exit; + end if; + end loop; + if position > -1 then + input_line := new string'( input_line(input_line'left to position-1) ); + end if; + + value := input_line; + end; + + procedure rm_side_separators(value : inout line) is + begin + rm_side_separators(value, " :" & ht); + end; + + ------------------------------------------------------------------------------ + -- remove multiple occurences of separator characters, keeping one single + ------------------------------------------------------------------------------ + procedure trim_line( + value : inout line; + separators : in string + ) is + variable input_line: line := value; + variable output_line: line := new string'(""); + variable is_separator, was_separator : boolean := false; + begin + rm_side_separators(input_line); + for character_index in input_line'range loop + is_separator := false; + for separator_index in separators'range loop + if input_line.all(character_index) = separators(separator_index) then + is_separator := true; + end if; + end loop; + if not (is_separator and was_separator) then + write(output_line, input_line.all(character_index)); + end if; + was_separator := is_separator; + end loop; + + value := output_line; + end; + + procedure trim_line(value : inout line) is + begin + trim_line(value, " :" & ht); + end; + + ------------------------------------------------------------------------------ + -- remove all occurences of separator characters + ------------------------------------------------------------------------------ + procedure rm_all_separators( + value : inout line; + separators : in string + ) is + variable input_line : line := value; + variable is_separator : boolean := false; + begin + + -- remove separators from beginn and end of the line + -- rm_separator_be(value, separators); + + -- empty output line + value := new string'(""); + + -- find all separator symbols + for character_index in input_line'range loop + is_separator := false; + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + is_separator := true; + end if; + end loop; + if not is_separator then + write(value, input_line.all(character_index)); + end if; + end loop; + + end; + + procedure rm_all_separators(value : inout line) is + begin + rm_all_separators(value, " _." & ht); + end; + + ------------------------------------------------------------------------------ + -- read first "word" out of a line + ------------------------------------------------------------------------------ + procedure read_first( + value : inout line; + separators : in string; + first : out line + ) is + variable input_line: line; + variable position: natural := 0; + begin + input_line := value; + for character_index in input_line.all'reverse_range loop + for separator_index in separators'range loop + if input_line.all(character_index) = separators(separator_index) then + position := character_index; + end if; + end loop; + end loop; + if position > 1 then + first := new string'(input_line.all(input_line'left to position-1)); + value := new string'(input_line(position+1 to input_line'right)); + else + first := new string'(input_line.all); + value := new string'(""); + end if; + end; + + procedure read_first(value : inout line; first : out line) is + begin + read_first(value, " :" & ht, first); + end; + + ------------------------------------------------------------------------------ + -- read last "word" out of a line + ------------------------------------------------------------------------------ + procedure read_last( + value : inout line; + separators : in string; + last : out line + ) is + variable input_line: line := value; + variable position: natural := 0; + begin + for character_index in input_line'range loop + for separator_index in separators'range loop + if input_line(character_index) = separators(separator_index) then + position := character_index; + end if; + end loop; + end loop; + if position <= input_line'right and + position > 0 then + value := new string'(input_line(input_line'left to position-1)); + last := new string'(input_line(position+1 to input_line'right)); + else + last := new string'(input_line.all); + end if; + end; + + procedure read_last(value : inout line; last : out line) is + begin + read_last(value, " :" & ht, last); + end; + + + --============================================================================ + -- formatted string output, internal functions + -- + + ------------------------------------------------------------------------------ + -- get format specification + ------------------------------------------------------------------------------ + procedure get_format_items( + format : string; + right_justify : out boolean; + add_sign : out boolean; + fill_char : out character; + total_length : out natural; + point_precision : out natural; + format_type : inout line + ) is + variable find_sign : boolean := false; + variable find_padding : boolean := false; + variable find_length : boolean := false; + variable find_precision : boolean := false; + variable find_type : boolean := false; + variable right_justify_int : boolean := true; + variable total_length_int : natural := 0; + variable point_precision_int : natural := 0; + begin + add_sign := false; + fill_char := ' '; + for index in 1 to format'length loop + if find_type then + write(format_type, format(index)); + end if; + if find_precision then + if (format(index) >= '0') and (format(index) <= '9') then + point_precision_int := 10*point_precision_int + character'pos(format(index)) - character'pos('0'); + if format(index+1) >= 'A' then + find_precision := false; + find_type := true; + end if; + end if; + end if; + if find_length then + if (format(index) >= '0') and (format(index) <= '9') then + total_length_int := 10*total_length_int + character'pos(format(index)) - character'pos('0'); + end if; + if format(index) = '.' then + find_length := false; + find_precision := true; + elsif format(index+1) >= 'A' then + find_length := false; + find_type := true; + end if; + end if; + if find_padding then + if format(index) = '0' then + if right_justify_int then + fill_char := '0'; + end if; + end if; + find_padding := false; + if format(index+1) >= 'A' then + find_type := true; + else + find_length := true; + end if; + end if; + if find_sign then + if format(index) = '-' then + right_justify_int := false; + end if; + if format(index) = '+' then + add_sign := true; + end if; + find_sign := false; + if format(index+1) <= '-' then + find_sign := true; + elsif format(index+1) = '0' then + find_padding := true; + elsif format(index+1) >= 'A' then + find_type := true; + else + find_length := true; + end if; + end if; + if format(index) = '%' then + if format(index+1) <= '-' then + find_sign := true; + elsif format(index+1) = '0' then + find_padding := true; + elsif format(index+1) >= 'A' then + find_type := true; + else + find_length := true; + end if; + end if; + end loop; + right_justify := right_justify_int; + total_length := total_length_int; + point_precision := point_precision_int; + end get_format_items; + + + ------------------------------------------------------------------------------ + -- formatted string output: converting std_ulogic to character + ------------------------------------------------------------------------------ + function to_character(value: std_ulogic) return character is + variable out_value: character; + begin + case value is + when 'U' => out_value := 'U'; + when 'X' => out_value := 'X'; + when '0' => out_value := '0'; + when '1' => out_value := '1'; + when 'Z' => out_value := 'Z'; + when 'W' => out_value := 'W'; + when 'L' => out_value := 'L'; + when 'H' => out_value := 'H'; + when '-' => out_value := '-'; + end case; + return(out_value); + end to_character; + + ------------------------------------------------------------------------------ + -- formatted string output: binary integer + ------------------------------------------------------------------------------ + function sprintf_b(value: std_ulogic_vector) return string is + variable out_line : line; + begin + for index in value'range loop + write(out_line, to_character(value(index))); + end loop; + return(out_line.all); + end sprintf_b; + + ------------------------------------------------------------------------------ + -- formatted string output: decimal integer + ------------------------------------------------------------------------------ + function sprintf_d( + right_justify : boolean; + add_sign : boolean; + fill_char : character; + string_length : natural; + value : integer + ) return string is + variable value_line : line; + begin + if add_sign and (value >= 0) then + write(value_line, '+'); + end if; + write(value_line, value); + if string_length = 0 then + return(value_line.all); + else + return(pad(value_line.all, string_length, fill_char, right_justify)); + end if; + end sprintf_d; + + ------------------------------------------------------------------------------ + -- formatted string output: fixed point real + ------------------------------------------------------------------------------ + function sprintf_f( + right_justify : boolean; + add_sign : boolean; + fill_char : character; + string_length : natural; + point_precision : natural; + value : real + ) return string is + variable point_precision_int : natural; + variable integer_part : integer; + variable decimal_part : natural; + variable value_line : line; + begin + if point_precision = 0 then + point_precision_int := 6; + else + point_precision_int := point_precision; + end if; + if value >= 0.0 then + integer_part := integer(value-0.5); + else + integer_part := - integer(-value-0.5); + end if; + decimal_part := abs(integer((value-real(integer_part))*(10.0**point_precision_int))); + if add_sign and (value >= 0.0) then + write(value_line, '+'); + end if; + write(value_line, integer_part); + write(value_line, '.'); + write(value_line, sprintf_d(true, false, '0', point_precision_int, decimal_part)); + if string_length = 0 then + return(value_line.all); + else + return(pad(value_line.all, string_length, fill_char, right_justify)); + end if; + end sprintf_f; + + ------------------------------------------------------------------------------ + -- formatted string output: hexadecimal integer + ------------------------------------------------------------------------------ + function sprintf_X( + extend_unsigned : boolean; + value : std_ulogic_vector + ) return string is + variable bit_count : positive; + variable value_line : line; + variable out_line : line; + variable nibble: string(1 to 4); + begin + bit_count := value'length; + while (bit_count mod 4) /= 0 loop + if extend_unsigned then + write(value_line, to_character('0')); + else + write(value_line, to_character(value(value'high))); + end if; + bit_count := bit_count + 1; + end loop; + write(value_line, sprintf_b(value)); + for index in value_line.all'range loop + if (index mod 4) = 0 then + nibble := value_line.all(index-3 to index); + case nibble is + when "0000" => write(out_line, 0); + when "0001" => write(out_line, 1); + when "0010" => write(out_line, 2); + when "0011" => write(out_line, 3); + when "0100" => write(out_line, 4); + when "0101" => write(out_line, 5); + when "0110" => write(out_line, 6); + when "0111" => write(out_line, 7); + when "1000" => write(out_line, 8); + when "1001" => write(out_line, 9); + when "1010" => write(out_line, 'A'); + when "1011" => write(out_line, 'B'); + when "1100" => write(out_line, 'C'); + when "1101" => write(out_line, 'D'); + when "1110" => write(out_line, 'E'); + when "1111" => write(out_line, 'F'); + when others => write(out_line, 'X'); + end case; + end if; + end loop; + return(out_line.all); + end sprintf_X; + + + --============================================================================ + -- formatted string output, interface functions + -- + + ------------------------------------------------------------------------------ + -- integer + ------------------------------------------------------------------------------ + function sprintf(format : string; value : integer) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if format_type.all = "b" then + if string_length = 0 then + string_length := 8; + end if; + return(sprintf_b(std_ulogic_vector(to_signed(value, string_length+1)(string_length-1 downto 0)))); + elsif format_type.all = "d" then + return(sprintf_d(right_justify, add_sign, fill_char, string_length, value)); + elsif format_type.all = "f" then + return(sprintf_f(right_justify, add_sign, fill_char, + string_length, point_precision, real(value))); + elsif (format_type.all = "X") or (format_type.all = "x") then + if string_length = 0 then + string_length := 8; + end if; + string_length := 4*string_length; + if format_type.all = "X" then + return(sprintf_X(false, std_ulogic_vector(to_signed(value, string_length+1)(string_length-1 downto 0)))); + else + return(lc(sprintf_X(false, std_ulogic_vector(to_signed(value, string_length+1)(string_length-1 downto 0))))); + end if; + else + return("Unhandled format type: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- real + ------------------------------------------------------------------------------ + function sprintf(format : string; value : real) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "d") or (point_precision = 0) then + return(sprintf_d(right_justify, add_sign, fill_char, + string_length, integer(value))); + elsif format_type.all = "f" then + return(sprintf_f(right_justify, add_sign, fill_char, + string_length, point_precision, value)); + else + return("Unhandled format type: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- std_logic + ------------------------------------------------------------------------------ + function sprintf(format : string; value : std_logic) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + variable logic_vector: std_logic_vector(1 to 1); + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "b") or (format_type.all = "d") or + (format_type.all = "X") or (format_type.all = "x") then + logic_vector(1) := value; + return(sprintf(format, std_ulogic_vector(logic_vector))); + else + return("Not a std_logic format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- std_ulogic_vector + ------------------------------------------------------------------------------ + function sprintf(format : string; value : std_ulogic_vector) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable bit_string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + bit_string_length, point_precision, format_type); + if format_type.all = "b" then + return(pad(sprintf_b(value), bit_string_length, fill_char, right_justify)); + elsif format_type.all = "d" then + return(sprintf_d(right_justify, add_sign, fill_char, bit_string_length, to_integer(unsigned(value)))); + elsif (format_type.all = "X") or (format_type.all = "x") then + if format_type.all = "X" then + return(pad(sprintf_X(true, value), bit_string_length, fill_char, right_justify)); + else + return(lc(pad(sprintf_X(true, value), bit_string_length, fill_char, right_justify))); + end if; + else + return("Not a std_ulogic_vector format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- std_logic_vector + ------------------------------------------------------------------------------ + function sprintf(format : string; value : std_logic_vector) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "b") or (format_type.all = "d") or + (format_type.all = "X") or (format_type.all = "x") then + return(sprintf(format, std_ulogic_vector(value))); + else + return("Not a std_logic_vector format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- unsigned + ------------------------------------------------------------------------------ + function sprintf(format : string; value : unsigned) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if (format_type.all = "b") or (format_type.all = "d") or + (format_type.all = "X") or (format_type.all = "x") then + return(sprintf(format, std_ulogic_vector(value))); + else + return("Not an unsigned format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- signed + ------------------------------------------------------------------------------ + function sprintf(format : string; value : signed) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable bit_string_length : natural; + variable point_precision : natural; + variable format_type : line; + begin + get_format_items(format, right_justify, add_sign, fill_char, + bit_string_length, point_precision, format_type); + if (fill_char = '0') and (value(value'left) = '1') then + fill_char := '1'; + end if; + if format_type.all = "b" then + return(pad(sprintf_b(std_ulogic_vector(value)), bit_string_length, fill_char, right_justify)); + elsif format_type.all = "d" then + return(sprintf_d(right_justify, add_sign, fill_char, bit_string_length, to_integer(signed(value)))); + elsif (format_type.all = "X") or (format_type.all = "x") then + if fill_char = '1' then + fill_char := 'F'; + end if; + if format_type.all = "X" then + return(pad(sprintf_X(true, std_ulogic_vector(value)), bit_string_length, fill_char, right_justify)); + else + return(lc(pad(sprintf_X(true, std_ulogic_vector(value)), bit_string_length, fill_char, right_justify))); + end if; + else + return("Not a signed format: '" & format_type.all & "'"); + end if; + end sprintf; + + ------------------------------------------------------------------------------ + -- time + ------------------------------------------------------------------------------ + function sprintf(format : string; value : time) return string is + variable right_justify : boolean; + variable add_sign : boolean; + variable fill_char : character; + variable string_length : natural; + variable point_precision : natural; + variable format_type : line; + variable scaling : real; + variable base_time : time; + variable unit : string(1 to 3); + begin + get_format_items(format, right_justify, add_sign, fill_char, + string_length, point_precision, format_type); + if format_type.all(format_type.all'left) = 't' then + scaling := 10.0**point_precision; + if format_type.all = "tp" then + base_time := 1 ps; + unit := " ps"; + elsif format_type.all = "tn" then + base_time := 1 ns; + unit := " ns"; + elsif format_type.all = "tu" then + base_time := 1 us; + unit := " us"; + elsif format_type.all = "tm" then + base_time := 1 ms; + unit := " ms"; + elsif format_type.all = "ts" then + base_time := 1 sec; + unit := " s."; + else + return("Undefined time format: '" & format_type.all & "'"); + end if; + if point_precision = 0 then + return(sprintf_d(right_justify, add_sign, fill_char, + string_length, value/base_time) & unit); + else + return(sprintf_f(right_justify, add_sign, fill_char, string_length, + point_precision, real(scaling*value/base_time)/scaling) & unit); + end if; + else + return("Not a time format: '" & format_type.all & "'"); + end if; + end sprintf; + + + --============================================================================ + -- formatted string input + ------------------------------------------------------------------------------ + + ------------------------------------------------------------------------------ + -- read a nibble out of a character + ------------------------------------------------------------------------------ + function sscanf(value : character) return natural is + begin + if (value >= '0') and (value <= '9') then + return(character'pos(value) - character'pos('0')); + elsif (value >= 'a') and (value <= 'f') then + return(character'pos(value) - character'pos('a') + 10); + elsif (value >= 'A') and (value <= 'F') then + return(character'pos(value) - character'pos('A') + 10); + else + return(0); + end if; + end sscanf; + + function sscanf(value : character) return nibbleUnsignedType is + begin + return(to_unsigned(sscanf(value), nibbleUnsignedType'length)); + end sscanf; + + function sscanf(value : character) return nibbleUlogicType is + variable unsigned_value : nibbleUnsignedType; + begin + unsigned_value := sscanf(value); + return(std_ulogic_vector(unsigned_value)); + end sscanf; + + ------------------------------------------------------------------------------ + -- read an binary word out of a string + ------------------------------------------------------------------------------ + function sscanf(value : string) return natural is + variable integer_value : natural; + begin + integer_value := 0; + for index in value'left to value'right loop + integer_value := integer_value*16 + sscanf(value(index)); + end loop; + return(integer_value); + end; + + function sscanf(value : string) return unsigned is + variable unsigned_value : unsigned(4*value'length-1 downto 0); + begin + unsigned_value := to_unsigned(0,unsigned_value'length); + for index in value'left to value'right loop + unsigned_value := shift_left(unsigned_value,4) + to_unsigned(sscanf(value(index)),4); + end loop; + return(unsigned_value); + end; + + function sscanf(value : string) return std_ulogic_vector is + variable unsigned_value : unsigned(4*value'length-1 downto 0); + begin + unsigned_value := sscanf(value); + return(std_ulogic_vector(unsigned_value)); + end; + + ------------------------------------------------------------------------------ + -- read time from a string + -- time can be formated as follows: + -- "1ps" or "1 ps" or " 1 ps " or " 1ps" + -- possible time units are: hr, min, sec, ms, us, ns, ps, fs + ------------------------------------------------------------------------------ + procedure sscanf( + value : inout line; + time_val : out time + ) is + variable time_line : line := value; + variable time_base : string(1 to 3); + variable time_value : integer; + variable time_int : time; + begin + -- remove all spaces and tabs + rm_all_separators(time_line); + + -- strip time base (3 last characters) + time_base := time_line(time_line'right-2 to time_line'right); + + -- separate time value and base + if time_base(2 to 3) = "hr" then + time_int := 1 hr; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base = "min" then + time_int := 1 min; + time_value := integer'value(time_line(time_line'left to time_line'right -3)); + elsif time_base = "sec" then + time_int := 1 sec; + time_value := integer'value(time_line(time_line'left to time_line'right -3)); + elsif time_base(2 to 3) = "ms" then + time_int := 1 ms; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "us" then + time_int := 1 us; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "ns" then + time_int := 1 ns; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "ps" then + time_int := 1 ps; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + elsif time_base(2 to 3) = "fs" then + time_int := 1 fs; + time_value := integer'value(time_line(time_line'left to time_line'right -2)); + else + time_int := 0 ps; + time_value := 1; + end if; + + -- build time from value and base + time_val := time_int * time_value; + + end; + + function sscanf(value : string) return time is + variable value_line : line; + variable time_val : time; + begin + value_line := new string'(value); + sscanf(value_line, time_val); + return(time_val); + end; + +END testUtils; + + + + +LIBRARY std; + USE std.textio.ALL; + +LIBRARY ieee; + USE ieee.std_logic_textio.ALL; + +LIBRARY Common_test; + USE Common_test.testutils.all; + +ARCHITECTURE test OF universalTester IS + + constant clockPeriod : time := 1.0/66E6 * 1 sec; + signal sClock : std_uLogic := '1'; + signal sReset : std_uLogic ; + + signal testInfo : string(1 to 40) := (others => ' '); + +BEGIN + + ------------------------------------------------------------------------------ + -- reset and clock + sReset <= '1', '0' after 3.5*clockPeriod; + rst <= sReset; + + sClock <= not sClock after clockPeriod/2; + clk <= transport sClock after 0.9*clockPeriod; + + btns <= (others => '1'), (others=>'0') after 4.15 us; + + process + -- Wait list + -- 3 clk for beq + -- 4 clk for others + -- 5 clk for lw + begin + en <= '0'; + + testInfo <= pad("Wait reset", testInfo'length); + wait until rst = '0'; + + while true loop + en <= '1'; + + testInfo <= pad("Running", testInfo'length); + wait; + + end loop; + end process; + +END ARCHITECTURE test; + + + + + +-- VHDL Entity HEIRV32.heirv32.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 10:23:07 21.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY heirv32 IS + GENERIC( + g_programFile : string := "$SIMULATION_DIR/code.txt"; + g_btnsNb : positive := 2; + g_dataWidth : positive := 32 + ); + PORT( + btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0); + clk : IN std_ulogic; + en : IN std_ulogic; + rst : IN std_ulogic; + dbg_leds : OUT std_ulogic_vector (31 DOWNTO 0); + leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + +-- Declarations + +END heirv32 ; + + + + + +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +PACKAGE gates IS + +-- constant gateDelay: time := 1 ns; + constant gateDelay: time := 0.1 ns; + +END gates; + + + + +-- VHDL Entity gates.transUnsignedUlog.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 14:35:04 11.09.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; + USE gates.gates.all; + +ENTITY transUnsignedUlog IS + GENERIC( + delay : time := gateDelay; + dataBitNb : positive := 8 + ); + PORT( + in1 : IN unsigned (dataBitNb-1 DOWNTO 0); + out1 : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END transUnsignedUlog ; + + + + + +ARCHITECTURE sim OF transUnsignedUlog IS +BEGIN + out1 <= std_ulogic_vector(in1) after delay; +END ARCHITECTURE sim; + + + + +-- VHDL Entity HEIRV32.ALU.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 13:26:28 11.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY ALU IS + GENERIC( + g_datawidth : positive := 32 + ); + PORT( + ctrl : IN std_ulogic_vector (2 DOWNTO 0); + srcA : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + srcB : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + res : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + zero : OUT std_ulogic + ); + +-- Declarations + +END ALU ; + + + + + +-- Risc-V ed. 2022 page 250 (pdf page 273) + +ARCHITECTURE rtl OF ALU IS + + signal lvec_res : std_ulogic_vector(res'range); + +BEGIN + + zero <= '1' when lvec_res = (lvec_res'range => '0') else '0'; + res <= lvec_res; + + alu : process(srcA, srcB, ctrl) + begin + case ctrl is + when "000" => -- add + lvec_res <= std_ulogic_vector(resize( + unsigned(srcA) + unsigned(srcB), lvec_res'length + )); + when "001" => -- substract + lvec_res <= std_ulogic_vector(resize( + unsigned(srcA) - unsigned(srcB), lvec_res'length + )); + when "010" => -- AND + lvec_res <= srcA and srcB; + when "011" => -- OR + lvec_res <= srcA or srcB; + when "101" => -- SLT + if srcA < srcB then + lvec_res <= (lvec_res'high downto 1 => '0') & '1'; + else + lvec_res <= (lvec_res'high downto 1 => '0') & '0'; + end if; + when others => -- unknown + lvec_res <= (others => '-'); + end case; + end process alu; + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity HEIRV32.bufferStdULogEnable.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:01:42 11.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY bufferStdULogEnable IS + GENERIC( + g_dataWidth : positive := 32 + ); + PORT( + clk : IN std_ulogic; + en : IN std_uLogic; + in1 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + rst : IN std_ulogic; + out1 : OUT std_ulogic_vector (g_dataWidth - 1 DOWNTO 0) + ); + +-- Declarations + +END bufferStdULogEnable ; + + + + + + +ARCHITECTURE rtl OF bufferStdULogEnable IS +BEGIN + + buffering:process(rst, CLK) + begin + if rst = '1' then + out1 <= (others=>'0'); + elsif rising_edge(CLK) then + if EN = '1' then + out1 <= in1; + end if; + end if; + end process buffering; + +END ARCHITECTURE rtl; + + + + + +-- VHDL Entity gates.and2.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 14:34:52 11.09.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; +LIBRARY gates; + USE gates.gates.all; + +ENTITY and2 IS + GENERIC( + delay : time := gateDelay + ); + PORT( + in1 : IN std_uLogic; + in2 : IN std_uLogic; + out1 : OUT std_uLogic + ); + +-- Declarations + +END and2 ; + + + + + +ARCHITECTURE sim OF and2 IS +BEGIN + out1 <= in1 and in2 after delay; +END ARCHITECTURE sim; + + + + +-- VHDL Entity HEIRV32.controlUnit.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:37:23 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY controlUnit IS + GENERIC( + g_datawidth : positive := 32 + ); + PORT( + clk : IN std_ulogic; + en : IN std_ulogic; + funct3 : IN std_ulogic_vector (2 DOWNTO 0); + funct7 : IN std_ulogic; + op : IN std_ulogic_vector (6 DOWNTO 0); + rst : IN std_ulogic; + zero : IN std_ulogic; + ALUControl : OUT std_ulogic_vector (2 DOWNTO 0); + ALUSrcA : OUT std_ulogic_vector (1 DOWNTO 0); + ALUSrcB : OUT std_ulogic_vector (1 DOWNTO 0); + IRWrite : OUT std_ulogic; + PCWrite : OUT std_ulogic; + adrSrc : OUT std_uLogic; + immSrc : OUT std_ulogic_vector (1 DOWNTO 0); + memWrite : OUT std_ulogic; + regwrite : OUT std_ulogic; + resultSrc : OUT std_ulogic_vector (1 DOWNTO 0) + ); + +-- Declarations + +END controlUnit ; + + + + + +-- VHDL Entity gates.or2.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 14:35:09 11.09.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; +LIBRARY gates; + USE gates.gates.all; + +ENTITY or2 IS + GENERIC( + delay : time := gateDelay + ); + PORT( + in1 : IN std_uLogic; + in2 : IN std_uLogic; + out1 : OUT std_uLogic + ); + +-- Declarations + +END or2 ; + + + + + +ARCHITECTURE sim OF or2 IS +BEGIN + out1 <= in1 or in2 after delay; +END ARCHITECTURE sim; + + + + +-- VHDL Entity HEIRV32.aluDecoder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:46:03 04.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY aluDecoder IS + PORT( + ALUOp : IN std_ulogic_vector (1 DOWNTO 0); + funct3 : IN std_ulogic_vector (2 DOWNTO 0); + funct7 : IN std_ulogic; + op : IN std_ulogic; + ALUControl : OUT std_ulogic_vector (2 DOWNTO 0) + ); + +-- Declarations + +END aluDecoder ; + + + + + + +ARCHITECTURE rtl OF aluDecoder IS + signal lsig_rTypeSub : std_ulogic; +BEGIN + lsig_rTypeSub <= funct7 and op; -- true for R-type substract + + decode : process(op, funct3, funct7, ALUOp, lsig_rTypeSub) + begin + case ALUOp is + when "00" => ALUControl <= "000"; -- addition + when "01" => ALUControl <= "001"; -- substraction + when others => + case funct3 is -- R-type or I-type + when "000" => + if lsig_rTypeSub = '1' then + ALUControl <= "001"; -- sub + else + ALUControl <= "000"; -- add, addi + end if; + when "010" => ALUControl <= "101"; -- slt, slti + when "110" => ALUControl <= "011"; -- or, ori + when "111" => ALUControl <= "010"; -- and, andi + when others => ALUControl <= "---"; -- unknown + end case; + end case; + end process decode; +END ARCHITECTURE rtl; + + + + +-- VHDL Entity HEIRV32.instrDecoder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:47:22 04.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY instrDecoder IS + PORT( + op : IN std_ulogic_vector (6 DOWNTO 0); + immSrc : OUT std_ulogic_vector (1 DOWNTO 0) + ); + +-- Declarations + +END instrDecoder ; + + + + + + +ARCHITECTURE rtl OF instrDecoder IS +BEGIN + + decode : process(op) + begin + case op is + when "0000011" => immSrc <= "00"; -- lw + when "0100011" => immSrc <= "01"; -- sw + when "0110011" => immSrc <= "--"; -- R-type + when "1100011" => immSrc <= "10"; -- beq + when "0010011" => immSrc <= "00"; -- l-type ALU + when "1101111" => immSrc <= "11"; -- jal + when others => immSrc <= "--"; -- unknwon + end case; + end process decode; + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity HEIRV32.mainFSM.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE2332101) +-- at - 09:29:07 18.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY mainFSM IS + PORT( + clk : IN std_ulogic; + en : IN std_ulogic; + op : IN std_ulogic_vector (6 DOWNTO 0); + rst : IN std_ulogic; + ALUOp : OUT std_ulogic_vector (1 DOWNTO 0); + ALUSrcA : OUT std_ulogic_vector (1 DOWNTO 0); + ALUSrcB : OUT std_ulogic_vector (1 DOWNTO 0); + IRWrite : OUT std_ulogic; + PCupdate : OUT std_uLogic; + adrSrc : OUT std_uLogic; + branch : OUT std_uLogic; + memWrite : OUT std_ulogic; + regwrite : OUT std_ulogic; + resultSrc : OUT std_ulogic_vector (1 DOWNTO 0) + ); + +-- Declarations + +END mainFSM ; + + + + + +-- +-- VHDL Architecture HEIRV32.mainFSM.fsm +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:37:29 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ARCHITECTURE fsm OF mainFSM IS + + TYPE STATE_TYPE IS ( + s0_Fetch, + s1_Decode, + s2_MemAdr, + s6_ExecuteR, + s8_ExecuteI, + s9_JAL, + s10_BEQ, + s3_MemRead, + s4_MemWB, + s5_MemWrite, + s7_ALUWB + ); + + -- Declare current and next state signals + SIGNAL current_state : STATE_TYPE; + SIGNAL next_state : STATE_TYPE; + +BEGIN + + ----------------------------------------------------------------- + clocked_proc : PROCESS ( + clk, + rst + ) + ----------------------------------------------------------------- + BEGIN + IF (rst = '1') THEN + current_state <= s0_Fetch; + ELSIF (clk'EVENT AND clk = '1') THEN + current_state <= next_state; + END IF; + END PROCESS clocked_proc; + + ----------------------------------------------------------------- + nextstate_proc : PROCESS ( + current_state, + en, + op + ) + ----------------------------------------------------------------- + BEGIN + CASE current_state IS + WHEN s0_Fetch => + IF (en = '1') THEN + next_state <= s1_Decode; + ELSE + next_state <= s0_Fetch; + END IF; + WHEN s1_Decode => + IF ((op = "0000011" OR op = "0100011") AND en = '1') THEN + next_state <= s2_MemAdr; + ELSIF (op = "0110011" AND en = '1') THEN + next_state <= s6_ExecuteR; + ELSIF (op = "0010011" AND en = '1') THEN + next_state <= s8_ExecuteI; + ELSIF (op = "1101111" AND en = '1') THEN + next_state <= s9_JAL; + ELSIF (op = "1100011" AND en = '1') THEN + next_state <= s10_BEQ; + ELSIF (en = '1') THEN + next_state <= s0_Fetch; + ELSE + next_state <= s1_Decode; + END IF; + WHEN s2_MemAdr => + IF (op = "0000011" AND en = '1') THEN + next_state <= s3_MemRead; + ELSIF (op = "0100011" AND en = '1') THEN + next_state <= s5_MemWrite; + ELSIF (en = '1') THEN + next_state <= s0_Fetch; + ELSE + next_state <= s2_MemAdr; + END IF; + WHEN s6_ExecuteR => + IF (en = '1') THEN + next_state <= s7_ALUWB; + ELSE + next_state <= s6_ExecuteR; + END IF; + WHEN s8_ExecuteI => + IF (en = '1') THEN + next_state <= s7_ALUWB; + ELSE + next_state <= s8_ExecuteI; + END IF; + WHEN s9_JAL => + IF (en = '1') THEN + next_state <= s7_ALUWB; + ELSE + next_state <= s9_JAL; + END IF; + WHEN s10_BEQ => + IF (en = '1') THEN + next_state <= s0_Fetch; + ELSE + next_state <= s10_BEQ; + END IF; + WHEN s3_MemRead => + IF (en = '1') THEN + next_state <= s4_MemWB; + ELSE + next_state <= s3_MemRead; + END IF; + WHEN s4_MemWB => + IF (en = '1') THEN + next_state <= s0_Fetch; + ELSE + next_state <= s4_MemWB; + END IF; + WHEN s5_MemWrite => + IF (en = '1') THEN + next_state <= s0_Fetch; + ELSE + next_state <= s5_MemWrite; + END IF; + WHEN s7_ALUWB => + IF (en = '1') THEN + next_state <= s0_Fetch; + ELSE + next_state <= s7_ALUWB; + END IF; + WHEN OTHERS => + next_state <= s0_Fetch; + END CASE; + END PROCESS nextstate_proc; + + ----------------------------------------------------------------- + output_proc : PROCESS ( + current_state + ) + ----------------------------------------------------------------- + BEGIN + -- Default Assignment + ALUOp <= "00"; + ALUSrcA <= "00"; + ALUSrcB <= "00"; + IRWrite <= '0'; + PCupdate <= '0'; + adrSrc <= '0'; + branch <= '0'; + memWrite <= '0'; + regwrite <= '0'; + resultSrc <= "00"; + + -- Combined Actions + CASE current_state IS + WHEN s0_Fetch => + adrSrc <= '0' ; + IRWrite <= '1' ; + ALUSrcA <= "00" ; + ALUSrcB <= "10" ; + ALUOp <= "00" ; + resultSrc <= "10" ; + PCupdate <= '1' ; + WHEN s1_Decode => + ALUSrcA <= "01" ; + ALUSrcB <= "01" ; + ALUOp <= "00" ; + WHEN s2_MemAdr => + ALUSrcA <= "10" ; + ALUSrcB <= "01" ; + ALUOp <= "00" ; + WHEN s6_ExecuteR => + ALUSrcA <= "10" ; + ALUSrcB <= "00" ; + ALUOp <= "10" ; + WHEN s8_ExecuteI => + ALUSrcA <= "10" ; + ALUSrcB <= "01" ; + ALUOp <= "10" ; + WHEN s9_JAL => + ALUSrcA <= "01" ; + ALUSrcB <= "10" ; + ALUOp <= "00" ; + resultSrc <= "00" ; + PCupdate <= '1' ; + WHEN s10_BEQ => + ALUSrcA <= "10" ; + ALUSrcB <= "00" ; + ALUOp <= "01" ; + resultSrc <= "00" ; + branch <= '1' ; + WHEN s3_MemRead => + adrSrc <= '1' ; + resultSrc <= "00" ; + WHEN s4_MemWB => + resultSrc <= "01" ; + regwrite <= '1' ; + WHEN s5_MemWrite => + adrSrc <= '1' ; + resultSrc <= "00" ; + memWrite <= '1' ; + WHEN s7_ALUWB => + resultSrc <= "00" ; + regwrite <= '1' ; + WHEN OTHERS => + NULL; + END CASE; + END PROCESS output_proc; + +END fsm; + + + + +-- +-- VHDL Architecture HEIRV32.controlUnit.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:37:23 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +LIBRARY HEIRV32; + +ARCHITECTURE struct OF controlUnit IS + + -- Architecture declarations + + -- Internal signal declarations + SIGNAL ALUOp : std_ulogic_vector(1 DOWNTO 0); + SIGNAL PCupdate : std_uLogic; + SIGNAL branch : std_uLogic; + SIGNAL out1 : std_uLogic; + + + -- Component Declarations + COMPONENT and2 + GENERIC ( + delay : time := gateDelay + ); + PORT ( + in1 : IN std_uLogic ; + in2 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT or2 + GENERIC ( + delay : time := gateDelay + ); + PORT ( + in1 : IN std_uLogic ; + in2 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT aluDecoder + PORT ( + ALUOp : IN std_ulogic_vector (1 DOWNTO 0); + funct3 : IN std_ulogic_vector (2 DOWNTO 0); + funct7 : IN std_ulogic ; + op : IN std_ulogic ; + ALUControl : OUT std_ulogic_vector (2 DOWNTO 0) + ); + END COMPONENT; + COMPONENT instrDecoder + PORT ( + op : IN std_ulogic_vector (6 DOWNTO 0); + immSrc : OUT std_ulogic_vector (1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT mainFSM + PORT ( + clk : IN std_ulogic ; + en : IN std_ulogic ; + op : IN std_ulogic_vector (6 DOWNTO 0); + rst : IN std_ulogic ; + ALUOp : OUT std_ulogic_vector (1 DOWNTO 0); + ALUSrcA : OUT std_ulogic_vector (1 DOWNTO 0); + ALUSrcB : OUT std_ulogic_vector (1 DOWNTO 0); + IRWrite : OUT std_ulogic ; + PCupdate : OUT std_uLogic ; + adrSrc : OUT std_uLogic ; + branch : OUT std_uLogic ; + memWrite : OUT std_ulogic ; + regwrite : OUT std_ulogic ; + resultSrc : OUT std_ulogic_vector (1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : aluDecoder USE ENTITY HEIRV32.aluDecoder; + FOR ALL : and2 USE ENTITY gates.and2; + FOR ALL : instrDecoder USE ENTITY HEIRV32.instrDecoder; + FOR ALL : mainFSM USE ENTITY HEIRV32.mainFSM; + FOR ALL : or2 USE ENTITY gates.or2; + -- pragma synthesis_on + + +BEGIN + + -- Instance port mappings. + U_1 : and2 + GENERIC MAP ( + delay => gateDelay + ) + PORT MAP ( + in1 => zero, + in2 => branch, + out1 => out1 + ); + U_0 : or2 + GENERIC MAP ( + delay => gateDelay + ) + PORT MAP ( + in1 => out1, + in2 => PCupdate, + out1 => PCWrite + ); + U_2 : aluDecoder + PORT MAP ( + ALUOp => ALUOp, + funct3 => funct3, + funct7 => funct7, + op => op(5), + ALUControl => ALUControl + ); + U_4 : instrDecoder + PORT MAP ( + op => op, + immSrc => immSrc + ); + U_mainFSM : mainFSM + PORT MAP ( + clk => clk, + en => en, + op => op, + rst => rst, + ALUOp => ALUOp, + ALUSrcA => ALUSrcA, + ALUSrcB => ALUSrcB, + IRWrite => IRWrite, + PCupdate => PCupdate, + adrSrc => adrSrc, + branch => branch, + memWrite => memWrite, + regwrite => regwrite, + resultSrc => resultSrc + ); + +END struct; + + + + +-- VHDL Entity HEIRV32.extend.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE2332101) +-- at - 12:47:32 18.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY extend IS + GENERIC( + g_dataWidth : positive := 32 + ); + PORT( + input : IN std_ulogic_vector (31 DOWNTO 7); + src : IN std_ulogic_vector (1 DOWNTO 0); + extended : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + +-- Declarations + +END extend ; + + + + + + +ARCHITECTURE rtl OF extend IS +BEGIN + + extend : process(input, src) + begin + case src is + when "00" => -- I-type + extended <= (12 to 31 => input(31)) & + input(31 downto 20); + when "01" => -- S-types (stores) + extended <= (12 to 31 => input(31)) & + input(31 downto 25) & input(11 downto 7); + when "10" => -- B-type (branches) + extended <= (12 to 31 => input(31)) & input(7) & + input(30 downto 25) & input(11 downto 8) & '0'; + when "11" => -- J-type (jal) + extended <= (20 to 31 => input(31)) & + input(19 downto 12) & input(20) & + input(30 downto 21) & '0'; + when others => -- impossible + extended <= (others => '-'); + end case; + end process extend; + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity HEIRV32.instructionDataMemory.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 18:08:43 18.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY instructionDataMemory IS + GENERIC( + g_dataWidth : positive := 32; + g_addrWidth : positive := 10; + g_programFile : string := "" + ); + PORT( + address : IN unsigned (g_dataWidth-1 DOWNTO 0); + clk : IN std_ulogic; + en : IN std_ulogic; + writeData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + writeEnable : IN std_ulogic; + readData : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + +-- Declarations + +END instructionDataMemory ; + + + + + +-- VHDL Entity Memory.bram.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:51:22 11.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY bram IS + GENERIC( + addressBitNb : positive := 8; + dataBitNb : positive := 8; + initFile : string := "bramInit.txt" + ); + PORT( + clock : IN std_ulogic; + en : IN std_ulogic; + writeEn : IN std_ulogic; + addressIn : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0); + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END bram ; + + + + + +library ieee; + use std.textio.all; + use ieee.std_logic_textio.all; + +ARCHITECTURE hexRead OF bram IS + -- Define ramContent type + type ramContentType is array(0 to (2**addressBitNb)-1) of std_logic_vector(dataBitNb-1 DOWNTO 0); + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is + FILE ramContentFile : text is in ramContentFilenAme; + variable ramContentFileLine : line; + variable ramContent : ramContentType; + begin + for i in ramContentType'range loop + readline(ramContentFile, ramContentFileLine); + HREAD(ramContentFileLine, ramContent(i)); + end loop; + return ramContent; + end function; + + -- Declare ramContent signal + shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); + +BEGIN + + -- Port A + process(clock) + begin + if clock'event and clock='1' then + if en = '1' then + if writeEn = '1' then + dataOut <= dataIn; + ramContent(to_integer(unsigned(addressIn))) := std_logic_vector(dataIn); + else + dataOut <= to_stdulogicvector(ramContent(to_integer(unsigned(addressIn)))); + end if; + end if; + end if; + end process; + +END ARCHITECTURE hexRead; + + + + +-- VHDL Entity HEIRV32.bramAddrReducer.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE2332111) +-- at - 16:20:19 11.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY bramAddrReducer IS + GENERIC( + g_dataWidth : positive := 32; + g_addrWidth : positive := 10 + ); + PORT( + addrIn : IN unsigned (g_dataWidth-1 DOWNTO 0); + addrOut : OUT std_ulogic_vector (g_addrWidth-1 DOWNTO 0) + ); + +-- Declarations + +END bramAddrReducer ; + + + + + + +ARCHITECTURE rtl OF bramAddrReducer IS +BEGIN + -- +2 to srr(2) the address (as it makes +4) + addrOut <= std_ulogic_vector(addrIn(addrOut'high+2 downto addrOut'low+2)); +END ARCHITECTURE rtl; + + + + +-- +-- VHDL Architecture HEIRV32.instructionDataMemory.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:38:02 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +LIBRARY HEIRV32; +LIBRARY Memory; + +ARCHITECTURE struct OF instructionDataMemory IS + + -- Architecture declarations + + -- Internal signal declarations + SIGNAL out1 : std_ulogic_vector(g_addrWidth-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT bramAddrReducer + GENERIC ( + g_dataWidth : positive := 32; + g_addrWidth : positive := 10 + ); + PORT ( + addrIn : IN unsigned (g_dataWidth-1 DOWNTO 0); + addrOut : OUT std_ulogic_vector (g_addrWidth-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT bram + GENERIC ( + addressBitNb : positive := 8; + dataBitNb : positive := 8; + initFile : string := "bramInit.txt" + ); + PORT ( + clock : IN std_ulogic ; + en : IN std_ulogic ; + writeEn : IN std_ulogic ; + addressIn : IN std_ulogic_vector (addressBitNb-1 DOWNTO 0); + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : bram USE ENTITY Memory.bram; + FOR ALL : bramAddrReducer USE ENTITY HEIRV32.bramAddrReducer; + -- pragma synthesis_on + + +BEGIN + + -- Instance port mappings. + U_bramAddrReducer : bramAddrReducer + GENERIC MAP ( + g_dataWidth => g_dataWidth, + g_addrWidth => g_addrWidth + ) + PORT MAP ( + addrIn => address, + addrOut => out1 + ); + U_bram : bram + GENERIC MAP ( + addressBitNb => g_addrWidth, + dataBitNb => g_dataWidth, + initFile => g_programFile + ) + PORT MAP ( + clock => clk, + en => en, + writeEn => writeEnable, + addressIn => out1, + dataIn => writeData, + dataOut => readData + ); + +END struct; + + + + +-- VHDL Entity HEIRV32.instructionForwarder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE2332101) +-- at - 16:10:50 18.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY instructionForwarder IS + GENERIC( + g_dataWidth : positive := 32 + ); + PORT( + irWrite : IN std_ulogic; + readData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + instruction : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + +-- Declarations + +END instructionForwarder ; + + + + + + +ARCHITECTURE rtl OF instructionForwarder IS + signal lvec_irMem : std_ulogic_vector(readData'range); +BEGIN + +-- forwardIR : process(rst, clk) +-- begin +-- if rst = '1' then +-- lvec_irMem <= (others => '0'); +-- elsif rising_edge(clk) then +-- if en = '1' and IRWrite = '1' then +-- lvec_irMem <= readData; +-- end if; +-- end if; +-- end process forwardIR; + + forwardIR : process(readData, irWrite) + begin + if irWrite = '1' then + lvec_irMem <= readData; + end if; + end process forwardIR; + + instruction <= lvec_irMem; + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity HEIRV32.bufferUnsignedEnable.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 13:59:57 27.09.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY bufferUnsignedEnable IS + GENERIC( + g_bitNb : positive := 32 + ); + PORT( + clk : IN std_ulogic; + en : IN std_ulogic; + in1 : IN unsigned (g_bitNb - 1 DOWNTO 0); + rst : IN std_ulogic; + out1 : OUT unsigned (g_bitNb - 1 DOWNTO 0) + ); + +-- Declarations + +END bufferUnsignedEnable ; + + + + + + +ARCHITECTURE rtl OF bufferUnsignedEnable IS +BEGIN + + buffering:process(rst, CLK) + begin + if rst = '1' then + out1 <= (others=>'0'); + elsif rising_edge(CLK) then + if EN = '1' then + out1 <= in1; + end if; + end if; + end process buffering; + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity gates.mux2to1Unsigned.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 14:35:12 11.09.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; + USE gates.gates.all; + +ENTITY mux2to1Unsigned IS + GENERIC( + dataBitNb : positive := 8; + delay : time := gateDelay + ); + PORT( + in0 : IN unsigned (dataBitNb-1 DOWNTO 0); + in1 : IN unsigned (dataBitNb-1 DOWNTO 0); + sel : IN std_uLogic; + muxOut : OUT unsigned (dataBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END mux2to1Unsigned ; + + + + + +ARCHITECTURE sim OF mux2to1Unsigned IS + + signal selInt: std_ulogic; + +BEGIN + + selInt <= to_X01(sel); + + muxSelect: process(selInt, in0, in1) + begin + if selInt = '0' then + muxOut <= in0 after delay; + elsif selInt = '1' then + muxOut <= in1 after delay; + elsif in0 = in1 then + muxOut <= in0 after delay; + else + muxOut <= (others => 'X') after delay; + end if; + end process muxSelect; + +END ARCHITECTURE sim; + + + + +-- VHDL Entity HEIRV32.registerFile.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 10:23:24 21.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY registerFile IS + GENERIC( + g_dataWidth : positive := 32; + g_btnsNb : positive := 2 + ); + PORT( + addr1 : IN std_ulogic_vector (4 DOWNTO 0); + addr2 : IN std_ulogic_vector (4 DOWNTO 0); + addr3 : IN std_ulogic_vector (4 DOWNTO 0); + btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0); + clk : IN std_ulogic; + en : IN std_ulogic; + rst : IN std_ulogic; + writeData : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0); + writeEnable3 : IN std_ulogic; + RD1 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + RD2 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + +-- Declarations + +END registerFile ; + + + + + + +ARCHITECTURE rtl OF registerFile IS + -- Bank of register + type t_registersBank is array (31 downto 0) of + std_ulogic_vector(31 downto 0); + -- A bank of registers + signal larr_registers: t_registersBank; +BEGIN + + -- Clocked write + process(rst, clk) begin + if rst = '1' then + larr_registers <= (others => (others => '0')); + elsif rising_edge(clk) then + if writeEnable3 = '1' and en = '1' then + larr_registers(to_integer(unsigned(addr3))) <= writeData; + end if; + end if; + end process; + + -- Comb. read + -- Addr 0 wired to 0s + process(addr1, addr2) begin + if (to_integer(unsigned(addr1)) = 0) then + RD1 <= (others => '0'); + elsif (to_integer(unsigned(addr1)) = 31) then -- buttons + RD1 <= (btns'length to g_datawidth-1 => '0') & btns; + else + RD1 <= larr_registers(to_integer(unsigned(addr1))); + end if; + + if (to_integer(unsigned(addr2)) = 0) then + RD2 <= (others => '0'); + elsif (to_integer(unsigned(addr2)) = 31) then -- buttons + RD2 <= (btns'length to g_datawidth-1 => '0') & btns; + else + RD2 <= larr_registers(to_integer(unsigned(addr2))); + end if; + end process; + + leds <= larr_registers(30); + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity HEIRV32.mux4To1ULogVec.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:23:48 11.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +ENTITY mux4To1ULogVec IS + GENERIC( + g_dataWidth : positive := 32 + ); + PORT( + in1 : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0); + in2 : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0); + in3 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + in4 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + sel : IN std_ulogic_vector (1 DOWNTO 0); + out1 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + +-- Declarations + +END mux4To1ULogVec ; + + + + + + +ARCHITECTURE rtl OF mux4To1ULogVec IS +BEGIN + + muxSelect: process(sel, in1, in2, in3, in4) + begin + case to_integer(unsigned(sel)) is + when 0 => out1 <= in1; + when 1 => out1 <= in2; + when 2 => out1 <= in3; + when 3 => out1 <= in4; + when others => out1 <= (others => 'X'); + end case; + end process muxSelect; + +END ARCHITECTURE rtl; + + + + +-- VHDL Entity gates.transUlogUnsigned.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 14:35:05 11.09.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; + USE gates.gates.all; + +ENTITY transUlogUnsigned IS + GENERIC( + delay : time := gateDelay; + dataBitNb : positive := 8 + ); + PORT( + in1 : IN std_uLogic_vector (dataBitNb-1 DOWNTO 0); + out1 : OUT unsigned (dataBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END transUlogUnsigned ; + + + + + +ARCHITECTURE sim OF transUlogUnsigned IS +BEGIN + out1 <= unsigned(in1) after delay; +END ARCHITECTURE sim; + + + + +-- +-- VHDL Architecture HEIRV32.heirv32.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 17:45:34 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY gates; +USE gates.gates.all; + +LIBRARY HEIRV32; + +ARCHITECTURE struct OF heirv32 IS + + -- Architecture declarations + constant c_dataWidth : positive := g_dataWidth; + constant c_bramAddrWidth : positive := 10; + + -- Internal signal declarations + SIGNAL ALUControl : std_ulogic_vector(2 DOWNTO 0); + SIGNAL ALUOut : std_ulogic_vector(c_dataWidth - 1 DOWNTO 0); + SIGNAL ALUResult : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL ALUSrcA : std_ulogic_vector(1 DOWNTO 0); + SIGNAL ALUSrcB : std_ulogic_vector(1 DOWNTO 0); + SIGNAL IRWrite : std_ulogic; + SIGNAL PC : unsigned(c_dataWidth - 1 DOWNTO 0); + SIGNAL PCNext : unsigned(c_dataWidth - 1 DOWNTO 0); + SIGNAL PCWrite : std_ulogic; + SIGNAL PCu : std_ulogic_vector(c_dataWidth - 1 DOWNTO 0); + SIGNAL RD1 : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL adr : unsigned(c_dataWidth-1 DOWNTO 0); + SIGNAL adrSrc : std_uLogic; + SIGNAL data : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL en1 : std_uLogic; + SIGNAL four_four : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL four_zeros : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL immExt : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL immSrc : std_ulogic_vector(1 DOWNTO 0); + SIGNAL instruction : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL memWrite : std_ulogic; + SIGNAL oldPC : std_ulogic_vector(c_dataWidth - 1 DOWNTO 0); + SIGNAL out1 : std_uLogic; + SIGNAL regwrite : std_ulogic; + SIGNAL result : std_uLogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL resultSrc : std_ulogic_vector(1 DOWNTO 0); + SIGNAL srcA : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL srcB : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL writeData : std_ulogic_vector(c_dataWidth-1 DOWNTO 0); + SIGNAL zero : std_ulogic; + + + -- Component Declarations + COMPONENT and2 + GENERIC ( + delay : time := gateDelay + ); + PORT ( + in1 : IN std_uLogic ; + in2 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT mux2to1Unsigned + GENERIC ( + dataBitNb : positive := 8; + delay : time := gateDelay + ); + PORT ( + in0 : IN unsigned (dataBitNb-1 DOWNTO 0); + in1 : IN unsigned (dataBitNb-1 DOWNTO 0); + sel : IN std_uLogic ; + muxOut : OUT unsigned (dataBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT transUlogUnsigned + GENERIC ( + delay : time := gateDelay; + dataBitNb : positive := 8 + ); + PORT ( + in1 : IN std_uLogic_vector (dataBitNb-1 DOWNTO 0); + out1 : OUT unsigned (dataBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT transUnsignedUlog + GENERIC ( + delay : time := gateDelay; + dataBitNb : positive := 8 + ); + PORT ( + in1 : IN unsigned (dataBitNb-1 DOWNTO 0); + out1 : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT ALU + GENERIC ( + g_datawidth : positive := 32 + ); + PORT ( + ctrl : IN std_ulogic_vector (2 DOWNTO 0); + srcA : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + srcB : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + res : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + zero : OUT std_ulogic + ); + END COMPONENT; + COMPONENT bufferStdULogEnable + GENERIC ( + g_dataWidth : positive := 32 + ); + PORT ( + clk : IN std_ulogic ; + en : IN std_uLogic ; + in1 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + rst : IN std_ulogic ; + out1 : OUT std_ulogic_vector (g_dataWidth - 1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT bufferUnsignedEnable + GENERIC ( + g_bitNb : positive := 32 + ); + PORT ( + clk : IN std_ulogic ; + en : IN std_ulogic ; + in1 : IN unsigned (g_bitNb - 1 DOWNTO 0); + rst : IN std_ulogic ; + out1 : OUT unsigned (g_bitNb - 1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT controlUnit + GENERIC ( + g_datawidth : positive := 32 + ); + PORT ( + clk : IN std_ulogic ; + en : IN std_ulogic ; + funct3 : IN std_ulogic_vector (2 DOWNTO 0); + funct7 : IN std_ulogic ; + op : IN std_ulogic_vector (6 DOWNTO 0); + rst : IN std_ulogic ; + zero : IN std_ulogic ; + ALUControl : OUT std_ulogic_vector (2 DOWNTO 0); + ALUSrcA : OUT std_ulogic_vector (1 DOWNTO 0); + ALUSrcB : OUT std_ulogic_vector (1 DOWNTO 0); + IRWrite : OUT std_ulogic ; + PCWrite : OUT std_ulogic ; + adrSrc : OUT std_uLogic ; + immSrc : OUT std_ulogic_vector (1 DOWNTO 0); + memWrite : OUT std_ulogic ; + regwrite : OUT std_ulogic ; + resultSrc : OUT std_ulogic_vector (1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT extend + GENERIC ( + g_dataWidth : positive := 32 + ); + PORT ( + input : IN std_ulogic_vector (31 DOWNTO 7); + src : IN std_ulogic_vector (1 DOWNTO 0); + extended : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT instructionDataMemory + GENERIC ( + g_dataWidth : positive := 32; + g_addrWidth : positive := 10; + g_programFile : string := "" + ); + PORT ( + address : IN unsigned (g_dataWidth-1 DOWNTO 0); + clk : IN std_ulogic ; + en : IN std_ulogic ; + writeData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + writeEnable : IN std_ulogic ; + readData : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT instructionForwarder + GENERIC ( + g_dataWidth : positive := 32 + ); + PORT ( + irWrite : IN std_ulogic ; + readData : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + instruction : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT mux4To1ULogVec + GENERIC ( + g_dataWidth : positive := 32 + ); + PORT ( + in1 : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0); + in2 : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0); + in3 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + in4 : IN std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + sel : IN std_ulogic_vector (1 DOWNTO 0); + out1 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT registerFile + GENERIC ( + g_dataWidth : positive := 32; + g_btnsNb : positive := 2 + ); + PORT ( + addr1 : IN std_ulogic_vector (4 DOWNTO 0); + addr2 : IN std_ulogic_vector (4 DOWNTO 0); + addr3 : IN std_ulogic_vector (4 DOWNTO 0); + btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0); + clk : IN std_ulogic ; + en : IN std_ulogic ; + rst : IN std_ulogic ; + writeData : IN std_ulogic_vector (g_dataWidth - 1 DOWNTO 0); + writeEnable3 : IN std_ulogic ; + RD1 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + RD2 : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0); + leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : ALU USE ENTITY HEIRV32.ALU; + FOR ALL : and2 USE ENTITY gates.and2; + FOR ALL : bufferStdULogEnable USE ENTITY HEIRV32.bufferStdULogEnable; + FOR ALL : bufferUnsignedEnable USE ENTITY HEIRV32.bufferUnsignedEnable; + FOR ALL : controlUnit USE ENTITY HEIRV32.controlUnit; + FOR ALL : extend USE ENTITY HEIRV32.extend; + FOR ALL : instructionDataMemory USE ENTITY HEIRV32.instructionDataMemory; + FOR ALL : instructionForwarder USE ENTITY HEIRV32.instructionForwarder; + FOR ALL : mux2to1Unsigned USE ENTITY gates.mux2to1Unsigned; + FOR ALL : mux4To1ULogVec USE ENTITY HEIRV32.mux4To1ULogVec; + FOR ALL : registerFile USE ENTITY HEIRV32.registerFile; + FOR ALL : transUlogUnsigned USE ENTITY gates.transUlogUnsigned; + FOR ALL : transUnsignedUlog USE ENTITY gates.transUnsignedUlog; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + four_zeros <= (c_dataWidth - 1 downto 0 => '0'); + four_four <= std_ulogic_vector(to_unsigned(4, c_dataWidth)); + + -- HDL Embedded Text Block 2 eb2 + + + dbg_leds(7 downto 0) <= std_ulogic_vector(adr(9 downto 2)); -- no need to read LSBs since does +4 each time + + dbg_leds(15 downto 8) <= std_ulogic_vector(instruction(7 downto 0)); + + dbg_leds(23 downto 16) <= std_ulogic_vector(ALUControl & "000" & resultSrc); + + dbg_leds(31 downto 24) <= std_ulogic_vector(regwrite & immSrc & '0' & ALUSrcB & ALUSrcA); + + + -- Instance port mappings. + U_and1 : and2 + GENERIC MAP ( + delay => gateDelay + ) + PORT MAP ( + in1 => en, + in2 => PCWrite, + out1 => out1 + ); + U_and2 : and2 + GENERIC MAP ( + delay => gateDelay + ) + PORT MAP ( + in1 => en, + in2 => IRWrite, + out1 => en1 + ); + U_pcMux : mux2to1Unsigned + GENERIC MAP ( + dataBitNb => c_dataWidth, + delay => gateDelay + ) + PORT MAP ( + in0 => PC, + in1 => PCNext, + sel => adrSrc, + muxOut => adr + ); + U_resultToUnsigned : transUlogUnsigned + GENERIC MAP ( + delay => gateDelay, + dataBitNb => c_dataWidth + ) + PORT MAP ( + in1 => result, + out1 => PCNext + ); + U_0 : transUnsignedUlog + GENERIC MAP ( + delay => gateDelay, + dataBitNb => c_dataWidth + ) + PORT MAP ( + in1 => PC, + out1 => PCu + ); + U_alu : ALU + GENERIC MAP ( + g_datawidth => c_dataWidth + ) + PORT MAP ( + ctrl => ALUControl, + srcA => srcA, + srcB => srcB, + res => ALUResult, + zero => zero + ); + U_aluBuffer : bufferStdULogEnable + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + clk => clk, + en => en, + in1 => ALUResult, + rst => rst, + out1 => ALUOut + ); + U_pcBuffer : bufferStdULogEnable + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + clk => clk, + en => en1, + in1 => PCu, + rst => rst, + out1 => oldPC + ); + U_pcLoadBuffer : bufferUnsignedEnable + GENERIC MAP ( + g_bitNb => c_dataWidth + ) + PORT MAP ( + clk => clk, + en => out1, + in1 => PCNext, + rst => rst, + out1 => PC + ); + U_controlUnit : controlUnit + GENERIC MAP ( + g_datawidth => c_dataWidth + ) + PORT MAP ( + clk => clk, + en => en, + funct3 => instruction(14 DOWNTO 12), + funct7 => instruction(30), + op => instruction(6 DOWNTO 0), + rst => rst, + zero => zero, + ALUControl => ALUControl, + ALUSrcA => ALUSrcA, + ALUSrcB => ALUSrcB, + IRWrite => IRWrite, + PCWrite => PCWrite, + adrSrc => adrSrc, + immSrc => immSrc, + memWrite => memWrite, + regwrite => regwrite, + resultSrc => resultSrc + ); + U_extend : extend + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + input => instruction(31 DOWNTO 7), + src => immSrc, + extended => immExt + ); + U_instrDataMemory : instructionDataMemory + GENERIC MAP ( + g_dataWidth => c_dataWidth, + g_addrWidth => c_bramAddrWidth, + g_programFile => g_programFile + ) + PORT MAP ( + address => adr, + clk => clk, + en => en, + writeData => writeData, + writeEnable => memWrite, + readData => data + ); + U_instrForward : instructionForwarder + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + irWrite => IRWrite, + readData => data, + instruction => instruction + ); + U_resultSel : mux4To1ULogVec + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + in1 => ALUOut, + in2 => data, + in3 => ALUResult, + in4 => four_zeros, + sel => resultSrc, + out1 => result + ); + U_srcASel : mux4To1ULogVec + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + in1 => PCu, + in2 => oldPC, + in3 => RD1, + in4 => four_zeros, + sel => ALUSrcA, + out1 => srcA + ); + U_srcBSel : mux4To1ULogVec + GENERIC MAP ( + g_dataWidth => c_dataWidth + ) + PORT MAP ( + in1 => writeData, + in2 => immExt, + in3 => four_four, + in4 => four_zeros, + sel => ALUSrcB, + out1 => srcB + ); + U_registerFile : registerFile + GENERIC MAP ( + g_dataWidth => c_dataWidth, + g_btnsNb => g_btnsNb + ) + PORT MAP ( + addr1 => instruction(19 DOWNTO 15), + addr2 => instruction(24 DOWNTO 20), + addr3 => instruction(11 DOWNTO 7), + btns => btns, + clk => clk, + en => en, + rst => rst, + writeData => result, + writeEnable3 => regwrite, + RD1 => RD1, + RD2 => writeData, + leds => leds + ); + +END struct; + + + + +-- +-- VHDL Architecture HEIRV32_test.heirv32_tb.universal +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 16:01:58 24.10.2022 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY HEIRV32; +LIBRARY HEIRV32_test; + +ARCHITECTURE universal OF heirv32_tb IS + + -- Architecture declarations + constant c_btnsNb : positive := 4; + + -- Internal signal declarations + SIGNAL btns : std_ulogic_vector(c_btnsNb-1 DOWNTO 0); + SIGNAL clk : std_ulogic; + SIGNAL en : std_ulogic; + SIGNAL rst : std_ulogic; + + + -- Component Declarations + COMPONENT heirv32 + GENERIC ( + g_programFile : string := "$SIMULATION_DIR/code.txt"; + g_btnsNb : positive := 2; + g_dataWidth : positive := 32 + ); + PORT ( + btns : IN std_ulogic_vector (g_btnsNb-1 DOWNTO 0); + clk : IN std_ulogic ; + en : IN std_ulogic ; + rst : IN std_ulogic ; + dbg_leds : OUT std_ulogic_vector (31 DOWNTO 0); + leds : OUT std_ulogic_vector (g_dataWidth-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT universalTester + GENERIC ( + c_btnsNb : positive := 2 + ); + PORT ( + btns : OUT std_ulogic_vector (c_btnsNb-1 DOWNTO 0); + clk : OUT std_ulogic ; + en : OUT std_ulogic ; + rst : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : heirv32 USE ENTITY HEIRV32.heirv32; + FOR ALL : universalTester USE ENTITY HEIRV32_test.universalTester; + -- pragma synthesis_on + + +BEGIN + + -- Instance port mappings. + U_1 : heirv32 + GENERIC MAP ( + g_programFile => "$SIMULATION_DIR/code_bram.txt", + g_btnsNb => c_btnsNb, + g_dataWidth => 32 + ) + PORT MAP ( + btns => btns, + clk => clk, + en => en, + rst => rst, + dbg_leds => OPEN, + leds => OPEN + ); + U_0 : universalTester + GENERIC MAP ( + c_btnsNb => c_btnsNb + ) + PORT MAP ( + btns => btns, + clk => clk, + en => en, + rst => rst + ); + +END universal; + + + + diff --git a/Libs/RiscV/HEIRV32_test/hdl/heirv32_mc_tester_test.vhd b/Libs/RiscV/HEIRV32_test/hdl/heirv32_mc_tester_test.vhd new file mode 100644 index 0000000..92dc4f8 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hdl/heirv32_mc_tester_test.vhd @@ -0,0 +1,118 @@ +LIBRARY std; + USE std.textio.ALL; + +LIBRARY ieee; + USE ieee.std_logic_textio.ALL; + +LIBRARY Common_test; + USE Common_test.testutils.all; + +ARCHITECTURE test OF heirv32_mc_tester IS + + constant clockPeriod : time := 1.0/66E6 * 1 sec; + signal sClock : std_uLogic := '1'; + signal sReset : std_uLogic ; + + signal testInfo : string(1 to 40) := (others => ' '); + +BEGIN + + ------------------------------------------------------------------------------ + -- reset and clock + sReset <= '1', '0' after 3.5*clockPeriod; + rst <= sReset; + + sClock <= not sClock after clockPeriod/2; + clk <= transport sClock after 0.9*clockPeriod; + + btns <= (others => '0'); + + process + -- Wait list + -- 3 clk for beq + -- 4 clk for others + -- 5 clk for lw + begin + en <= '0'; + + testInfo <= pad("Wait reset", testInfo'length); + wait until rst = '0'; + + while true loop + en <= '1'; + + testInfo <= pad("Addi, addr. 00", testInfo'length); + wait until clk'event and clk = '1'; + wait for 3*clockPeriod; + + testInfo <= pad("Addi, addr. 04", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Addi, addr. 08", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Or, addr. 0C", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("And, addr. 10", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Add, addr. 14", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Beq, addr. 18", testInfo'length); + wait for 3*clockPeriod; + + testInfo <= pad("Slt, addr. 1C", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Beq, addr. 20", testInfo'length); + wait for 3*clockPeriod; + + --testInfo <= pad("Addi, addr. 24", testInfo'length); + --wait for 4*clockPeriod; + + testInfo <= pad("Slt, addr. 28", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Add, addr. 2C", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Sub, addr. 30", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Sw, addr. 34", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Lw, addr. 38", testInfo'length); + wait for 5*clockPeriod; + + testInfo <= pad("Add, addr. 3C", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Jal, addr. 40", testInfo'length); + wait for 4*clockPeriod; + + --testInfo <= pad("Addi, addr. 44", testInfo'length); + --wait for 4*clockPeriod; + + testInfo <= pad("Add, addr. 48", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Sw, addr.4C", testInfo'length); + wait for 4*clockPeriod; + + testInfo <= pad("Beq, addr. 50", testInfo'length); + wait for 2.8*clockPeriod; + + en <= '0'; + testInfo <= pad("Wait a bit, program should restart", testInfo'length); + wait for 9.2*clockPeriod; + testInfo <= pad("PC should go to 0 on clock", testInfo'length); + en <= '1'; + wait until clk'event and clk = '1'; + + end loop; + end process; + +END ARCHITECTURE test; diff --git a/Libs/RiscV/HEIRV32_test/hdl/heirv32_sc_tester_rtl.vhd b/Libs/RiscV/HEIRV32_test/hdl/heirv32_sc_tester_rtl.vhd new file mode 100644 index 0000000..1404d6b --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hdl/heirv32_sc_tester_rtl.vhd @@ -0,0 +1,116 @@ +LIBRARY std; + USE std.textio.ALL; + +LIBRARY ieee; + USE ieee.std_logic_textio.ALL; + +LIBRARY Common_test; + USE Common_test.testutils.all; + +ARCHITECTURE rtl OF heirv32_sc_tester IS + + constant clockPeriod : time := 1.0/66E6 * 1 sec; + signal sClock : std_uLogic := '1'; + signal sReset : std_uLogic ; + + signal testInfo : string(1 to 40) := (others => ' '); + +BEGIN + + ------------------------------------------------------------------------------ + -- reset and clock + sReset <= '1', '0' after 3.5*clockPeriod; + rst <= sReset; + + sClock <= not sClock after clockPeriod/2; + clk <= transport sClock after 0.9*clockPeriod; + + btns <= (others => '0'); + + process + -- Wait list + -- 1 for all + begin + en <= '0'; + + testInfo <= pad("Wait reset", testInfo'length); + wait until rst = '0'; + + while true loop + en <= '1'; + + testInfo <= pad("Addi, addr. 00", testInfo'length); + wait until clk'event and clk = '1'; + wait for clockPeriod; + + testInfo <= pad("Addi, addr. 04", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Addi, addr. 08", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Or, addr. 0C", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("And, addr. 10", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Add, addr. 14", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Beq, addr. 18", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Slt, addr. 1C", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Beq, addr. 20", testInfo'length); + wait for clockPeriod; + + --testInfo <= pad("Addi, addr. 24", testInfo'length); + --wait for clockPeriod; + + testInfo <= pad("Slt, addr. 28", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Add, addr. 2C", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Sub, addr. 30", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Sw, addr. 34", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Lw, addr. 38", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Add, addr. 3C", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Jal, addr. 40", testInfo'length); + wait for clockPeriod; + + --testInfo <= pad("Addi, addr. 44", testInfo'length); + --wait for clockPeriod; + + testInfo <= pad("Add, addr. 48", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Sw, addr.4C", testInfo'length); + wait for clockPeriod; + + testInfo <= pad("Beq, addr. 50", testInfo'length); + wait for 0.8*clockPeriod; + + en <= '0'; + testInfo <= pad("Wait a bit, PC should be 0", testInfo'length); + wait for 9.2*clockPeriod; + testInfo <= pad("Enabling system", testInfo'length); + en <= '1'; + wait until clk'event and clk = '1'; + + end loop; + end process; + +END ARCHITECTURE rtl; diff --git a/Libs/RiscV/HEIRV32_test/hdl/universalTester_test.vhd b/Libs/RiscV/HEIRV32_test/hdl/universalTester_test.vhd new file mode 100644 index 0000000..a651c16 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hdl/universalTester_test.vhd @@ -0,0 +1,51 @@ +LIBRARY std; + USE std.textio.ALL; + +LIBRARY ieee; + USE ieee.std_logic_textio.ALL; + +LIBRARY Common_test; + USE Common_test.testutils.all; + +ARCHITECTURE test OF universalTester IS + + constant clockPeriod : time := 1.0/66E6 * 1 sec; + signal sClock : std_uLogic := '1'; + signal sReset : std_uLogic ; + + signal testInfo : string(1 to 40) := (others => ' '); + +BEGIN + + ------------------------------------------------------------------------------ + -- reset and clock + sReset <= '1', '0' after 3.5*clockPeriod; + rst <= sReset; + + sClock <= not sClock after clockPeriod/2; + clk <= transport sClock after 0.9*clockPeriod; + + btns <= (others => '1'), (others=>'0') after 4.15 us; + + process + -- Wait list + -- 3 clk for beq + -- 4 clk for others + -- 5 clk for lw + begin + en <= '0'; + + testInfo <= pad("Wait reset", testInfo'length); + wait until rst = '0'; + + while true loop + en <= '1'; + + testInfo <= pad("Running", testInfo'length); + wait; + + end loop; + end process; + +END ARCHITECTURE test; + diff --git a/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_mc_tester_test.vhd._fpf b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_mc_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_mc_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_rtl.vhd._fpf b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_rtl.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_rtl.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_test.vhd._fpf b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_test.vhd._fpf new file mode 100644 index 0000000..e69b3ef --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_sc_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_93 diff --git a/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tb_universal.vhg._fpf b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tb_universal.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tb_universal.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tester_test.vhd._fpf b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tester_test.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_heirv32_tester_test.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_universalTester_test.vhd._fpf b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_universalTester_test.vhd._fpf new file mode 100644 index 0000000..0df95a8 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/.hdlsidedata/_universalTester_test.vhd._fpf @@ -0,0 +1,4 @@ +DIALECT atom VHDL_2008 +INCLUDE list { + DEFAULT atom 1 +} diff --git a/Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tb._epf b/Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tb._epf new file mode 100644 index 0000000..aa9a45f --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom heirv32_mc_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tester._epf b/Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tester._epf new file mode 100644 index 0000000..3d43654 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/_heirv32_mc_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom heirv32_mc_tester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tb._epf b/Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tb._epf new file mode 100644 index 0000000..e9fa4c5 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom heirv32_sc_tb/struct.bd +TOP_MARKER atom 1 diff --git a/Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tester._epf b/Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tester._epf new file mode 100644 index 0000000..3e6ffce --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/_heirv32_sc_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom rtl +DEFAULT_FILE atom heirv32_sc_tester_rtl.vhd diff --git a/Libs/RiscV/HEIRV32_test/hds/_universaltester._epf b/Libs/RiscV/HEIRV32_test/hds/_universaltester._epf new file mode 100644 index 0000000..943475d --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/_universaltester._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom universalTester_test.vhd +DEFAULT_ARCHITECTURE atom test diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/struct.bd b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/struct.bd new file mode 100644 index 0000000..0682904 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/struct.bd @@ -0,0 +1,2807 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "U_tester" +duLibraryName "HEIRV32_test" +duName "heirv32_mc_tester" +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "c_btnsNb" +) +] +mwi 0 +uid 132,0 +) +(Instance +name "U_heirv32" +duLibraryName "HEIRV32_MC" +duName "heirv32_mc" +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code_sim_bram.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "c_btnsNb " +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +mwi 0 +uid 842,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "heirv32_mc_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:37:43" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_mc_tb" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:37:43" +) +(vvPair +variable "unit" +value "heirv32_mc_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,4000,66000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,4000,60700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,0,70000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "66200,0,69200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,2000,66000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,2000,59200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,2000,49000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "45200,2000,47300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "66000,1000,86000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "66200,1200,75600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "70000,0,86000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "70200,0,71800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,0,66000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "50350,400,60650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,3000,49000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "45200,3000,47300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "45000,4000,49000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "45200,4000,47900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "49000,3000,66000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "49200,3000,62500,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "45000,0,86000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 132,0 +shape (Rectangle +uid 133,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "15000,29000,62000,39000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 134,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 135,0 +va (VaSet +font "Verdana,9,1" +) +xt "16850,32200,25150,33400" +st "HEIRV32_test" +blo "16850,33200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 136,0 +va (VaSet +font "Verdana,9,1" +) +xt "16850,33400,27450,34600" +st "heirv32_mc_tester" +blo "16850,34400" +tm "BlkNameMgr" +) +*15 (Text +uid 137,0 +va (VaSet +font "Verdana,9,1" +) +xt "16850,34600,21850,35800" +st "U_tester" +blo "16850,35600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 138,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 139,0 +text (MLText +uid 140,0 +va (VaSet +font "Courier New,8,0" +) +xt "16850,42200,36850,43000" +st "c_btnsNb = c_btnsNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "c_btnsNb" +) +] +) +viewicon (ZoomableIcon +uid 141,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "15250,37250,16750,38750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 176,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 177,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,35500,7200" +st "SIGNAL clk : std_ulogic" +) +) +*17 (Net +uid 184,0 +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 185,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,35500,8800" +st "SIGNAL rst : std_ulogic" +) +) +*18 (Net +uid 192,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 193,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,7200,35500,8000" +st "SIGNAL en : std_ulogic" +) +) +*19 (Net +uid 424,0 +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb -1 DOWNTO 0)" +o 4 +suid 5,0 +) +declText (MLText +uid 425,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,50500,6400" +st "SIGNAL btns : std_ulogic_vector(c_btnsNb -1 DOWNTO 0)" +) +) +*20 (SaComponent +uid 842,0 +optionalChildren [ +*21 (CptPort +uid 818,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 819,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,18625,24000,19375" +) +tg (CPTG +uid 820,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 821,0 +va (VaSet +font "Verdana,12,0" +) +xt "25000,18300,27500,19700" +st "rst" +blo "25000,19500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*22 (CptPort +uid 822,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 823,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,20625,24000,21375" +) +tg (CPTG +uid 824,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 825,0 +va (VaSet +font "Verdana,12,0" +) +xt "25000,20300,27400,21700" +st "clk" +blo "25000,21500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*23 (CptPort +uid 826,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 827,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40000,16625,40750,17375" +) +tg (CPTG +uid 828,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 829,0 +va (VaSet +font "Verdana,12,0" +) +xt "32400,16300,39000,17700" +st "dbg_leds" +ju 2 +blo "39000,17500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*24 (CptPort +uid 830,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 831,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,16625,24000,17375" +) +tg (CPTG +uid 832,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 833,0 +va (VaSet +font "Verdana,12,0" +) +xt "25000,16300,27400,17700" +st "en" +blo "25000,17500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*25 (CptPort +uid 834,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 835,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,24000,29375,24750" +) +tg (CPTG +uid 836,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 837,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,19400,29700,23000" +st "btns" +blo "29500,23000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 8,0 +) +) +) +*26 (CptPort +uid 838,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 839,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,24000,31375,24750" +) +tg (CPTG +uid 840,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 841,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,19600,31700,23000" +st "leds" +blo "31500,23000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 843,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,16000,40000,24000" +) +oxt "19000,25000,35000,33000" +ttg (MlTextGroup +uid 844,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*27 (Text +uid 845,0 +va (VaSet +font "Verdana,9,1" +) +xt "32800,19800,40400,21000" +st "HEIRV32_MC" +blo "32800,20800" +tm "BdLibraryNameMgr" +) +*28 (Text +uid 846,0 +va (VaSet +font "Verdana,9,1" +) +xt "32800,21000,39700,22200" +st "heirv32_mc" +blo "32800,22000" +tm "CptNameMgr" +) +*29 (Text +uid 847,0 +va (VaSet +font "Verdana,9,1" +) +xt "32800,22200,38400,23400" +st "U_heirv32" +blo "32800,23200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 848,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 849,0 +text (MLText +uid 850,0 +va (VaSet +font "Courier New,8,0" +) +xt "35000,25600,71500,28000" +st "g_programFile = \"$SIMULATION_DIR/code_sim_bram.txt\" ( string ) +g_btnsNb = c_btnsNb ( positive ) +g_dataWidth = 32 ( positive ) +" +) +header "" +) +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code_sim_bram.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "c_btnsNb " +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +) +viewicon (ZoomableIcon +uid 851,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "24250,22250,25750,23750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*30 (Wire +uid 178,0 +shape (OrthoPolyLine +uid 179,0 +va (VaSet +vasetType 3 +) +xt "20000,21000,23250,29000" +pts [ +"23250,21000" +"20000,21000" +"20000,29000" +] +) +start &22 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 182,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 183,0 +va (VaSet +) +xt "20250,19800,22450,21000" +st "clk" +blo "20250,20800" +tm "WireNameMgr" +) +) +on &16 +) +*31 (Wire +uid 186,0 +shape (OrthoPolyLine +uid 187,0 +va (VaSet +vasetType 3 +) +xt "18000,19000,23250,29000" +pts [ +"23250,19000" +"18000,19000" +"18000,29000" +] +) +start &21 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 190,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 191,0 +va (VaSet +) +xt "20250,17800,22350,19000" +st "rst" +blo "20250,18800" +tm "WireNameMgr" +) +) +on &17 +) +*32 (Wire +uid 194,0 +shape (OrthoPolyLine +uid 195,0 +va (VaSet +vasetType 3 +) +xt "16000,17000,23250,29000" +pts [ +"23250,17000" +"16000,17000" +"16000,29000" +] +) +start &24 +end &12 +sat 32 +eat 2 +st 0 +sf 1 +tg (WTG +uid 198,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 199,0 +va (VaSet +) +xt "20250,15800,22150,17000" +st "en" +blo "20250,16800" +tm "WireNameMgr" +) +) +on &18 +) +*33 (Wire +uid 426,0 +shape (OrthoPolyLine +uid 427,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "29000,24750,29000,29000" +pts [ +"29000,24750" +"29000,29000" +] +) +start &25 +end &12 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 430,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 431,0 +ro 270 +va (VaSet +) +xt "27800,25100,29000,28000" +st "btns" +blo "28800,28000" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *34 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*36 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*38 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*39 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*42 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*43 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-1300,-1400,88429,46300" +cachedDiagramExtent "0,0,86000,43000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 882,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*45 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*46 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*48 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*49 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*51 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*52 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*54 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*55 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*57 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*58 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*60 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*62 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*64 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,2400,25200,3600" +st "Pre User:" +blo "20000,3400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3600,40500,4400" +st "constant c_btnsNb : positive := 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,4400,29500,5600" +st "Diagram Signals:" +blo "20000,5400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 5,0 +usingSuid 1 +emptyRow *65 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*66 (RefLabelRowHdr +) +*67 (TitleRowHdr +) +*68 (FilterRowHdr +) +*69 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*70 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*71 (GroupColHdr +tm "GroupColHdrMgr" +) +*72 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*73 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*74 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*75 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*76 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*77 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*78 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 202,0 +) +*79 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "rst" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 204,0 +) +*80 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 206,0 +) +*81 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb -1 DOWNTO 0)" +o 4 +suid 5,0 +) +) +uid 432,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*82 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *83 (MRCItem +litem &65 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*84 (MRCItem +litem &66 +pos 0 +dimension 20 +uid 70,0 +) +*85 (MRCItem +litem &67 +pos 1 +dimension 23 +uid 71,0 +) +*86 (MRCItem +litem &68 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*87 (MRCItem +litem &78 +pos 0 +dimension 20 +uid 203,0 +) +*88 (MRCItem +litem &79 +pos 1 +dimension 20 +uid 205,0 +) +*89 (MRCItem +litem &80 +pos 2 +dimension 20 +uid 207,0 +) +*90 (MRCItem +litem &81 +pos 3 +dimension 20 +uid 433,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*91 (MRCItem +litem &69 +pos 0 +dimension 20 +uid 74,0 +) +*92 (MRCItem +litem &71 +pos 1 +dimension 50 +uid 75,0 +) +*93 (MRCItem +litem &72 +pos 2 +dimension 100 +uid 76,0 +) +*94 (MRCItem +litem &73 +pos 3 +dimension 50 +uid 77,0 +) +*95 (MRCItem +litem &74 +pos 4 +dimension 100 +uid 78,0 +) +*96 (MRCItem +litem &75 +pos 5 +dimension 100 +uid 79,0 +) +*97 (MRCItem +litem &76 +pos 6 +dimension 50 +uid 80,0 +) +*98 (MRCItem +litem &77 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *99 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*100 (RefLabelRowHdr +) +*101 (TitleRowHdr +) +*102 (FilterRowHdr +) +*103 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*104 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*105 (GroupColHdr +tm "GroupColHdrMgr" +) +*106 (NameColHdr +tm "GenericNameColHdrMgr" +) +*107 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*108 (InitColHdr +tm "GenericValueColHdrMgr" +) +*109 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*110 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*111 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *112 (MRCItem +litem &99 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*113 (MRCItem +litem &100 +pos 0 +dimension 20 +uid 98,0 +) +*114 (MRCItem +litem &101 +pos 1 +dimension 23 +uid 99,0 +) +*115 (MRCItem +litem &102 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*116 (MRCItem +litem &103 +pos 0 +dimension 20 +uid 102,0 +) +*117 (MRCItem +litem &105 +pos 1 +dimension 50 +uid 103,0 +) +*118 (MRCItem +litem &106 +pos 2 +dimension 100 +uid 104,0 +) +*119 (MRCItem +litem &107 +pos 3 +dimension 100 +uid 105,0 +) +*120 (MRCItem +litem &108 +pos 4 +dimension 50 +uid 106,0 +) +*121 (MRCItem +litem &109 +pos 5 +dimension 50 +uid 107,0 +) +*122 (MRCItem +litem &110 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/symbol.sb b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/symbol.sb new file mode 100644 index 0000000..bba87aa --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/symbol.sb @@ -0,0 +1,1215 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +vaOverrides [ +] +) +] +) +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +vaOverrides [ +] +) +] +) +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tb" +) +(vvPair +variable "d_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tb" +) +(vvPair +variable "date" +value "18.10.2022" +) +(vvPair +variable "day" +value "mar." +) +(vvPair +variable "day_long" +value "mardi" +) +(vvPair +variable "dd" +value "18" +) +(vvPair +variable "entity_name" +value "heirv32_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "18.10.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE2332101" +) +(vvPair +variable "graphical_source_time" +value "14:52:58" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE2332101" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "10" +) +(vvPair +variable "module_name" +value "heirv32_tb" +) +(vvPair +variable "month" +value "oct." +) +(vvPair +variable "month_long" +value "octobre" +) +(vvPair +variable "p" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\Users\\axel.amand\\Desktop\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:52:58" +) +(vvPair +variable "unit" +value "heirv32_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,35100,16000" +st "HEIRV32_test" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,33400,17200" +st "heirv32_tb" +blo "26800,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,45200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,2400,45200,3600" +st "User:" +blo "42000,3400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,44000,3600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 50,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/universal.bd b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/universal.bd new file mode 100644 index 0000000..c3c5d45 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tb/universal.bd @@ -0,0 +1,2802 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "U_1" +duLibraryName "HEIRV32" +duName "heirv32" +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code_sim_bram.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "c_btnsNb" +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +mwi 0 +uid 213,0 +) +(Instance +name "U_0" +duLibraryName "HEIRV32_test" +duName "universalTester" +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "c_btnsNb" +) +] +mwi 0 +uid 247,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\universal.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\universal.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "universal" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "heirv32_mc_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "universal.bd" +) +(vvPair +variable "f_logical" +value "universal.bd" +) +(vvPair +variable "f_noext" +value "universal" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:34:02" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_mc_tb" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\universal.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_mc_tb\\universal.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "universal" +) +(vvPair +variable "this_file_logical" +value "universal" +) +(vvPair +variable "time" +value "11:34:02" +) +(vvPair +variable "unit" +value "heirv32_mc_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "universal" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,4000,69000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "52200,4000,63700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,0,73000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "69200,0,72200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,2000,69000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "52200,2000,62200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,2000,52000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "48200,2000,50300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "69000,1000,89000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "69200,1200,78600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "73000,0,89000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "73200,0,74800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,0,69000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "53350,400,63650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,3000,52000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "48200,3000,50300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,4000,52000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "48200,4000,50900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "52000,3000,69000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "52200,3000,66700,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "48000,0,89000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (SaComponent +uid 213,0 +optionalChildren [ +*13 (CptPort +uid 223,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 224,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,19625,23000,20375" +) +tg (CPTG +uid 225,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 226,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,19300,26500,20700" +st "rst" +blo "24000,20500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +) +) +) +*14 (CptPort +uid 227,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 228,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,21625,23000,22375" +) +tg (CPTG +uid 229,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 230,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,21300,26400,22700" +st "clk" +blo "24000,22500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +) +) +) +*15 (CptPort +uid 231,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 232,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37000,17625,37750,18375" +) +tg (CPTG +uid 233,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 234,0 +va (VaSet +font "Verdana,12,0" +) +xt "29400,17300,36000,18700" +st "dbg_leds" +ju 2 +blo "36000,18500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +) +) +) +*16 (CptPort +uid 235,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 236,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,17625,23000,18375" +) +tg (CPTG +uid 237,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 238,0 +va (VaSet +font "Verdana,12,0" +) +xt "24000,17300,26400,18700" +st "en" +blo "24000,18500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +) +) +) +*17 (CptPort +uid 239,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 240,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "27625,25000,28375,25750" +) +tg (CPTG +uid 241,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 242,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "27300,20400,28700,24000" +st "btns" +blo "28500,24000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +) +) +) +*18 (CptPort +uid 243,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 244,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29625,25000,30375,25750" +) +tg (CPTG +uid 245,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 246,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "29300,20600,30700,24000" +st "leds" +blo "30500,24000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +) +) +) +] +shape (Rectangle +uid 214,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,17000,37000,25000" +) +oxt "19000,25000,33000,33000" +ttg (MlTextGroup +uid 215,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 216,0 +va (VaSet +font "Verdana,9,1" +) +xt "31800,20800,36800,22000" +st "HEIRV32" +blo "31800,21800" +tm "BdLibraryNameMgr" +) +*20 (Text +uid 217,0 +va (VaSet +font "Verdana,9,1" +) +xt "31800,22000,36100,23200" +st "heirv32" +blo "31800,23000" +tm "CptNameMgr" +) +*21 (Text +uid 218,0 +va (VaSet +font "Verdana,9,1" +) +xt "31800,23200,34300,24400" +st "U_1" +blo "31800,24200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 219,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 220,0 +text (MLText +uid 221,0 +va (VaSet +font "Courier New,8,0" +) +xt "32000,26600,68500,29000" +st "g_programFile = \"$SIMULATION_DIR/code_sim_bram.txt\" ( string ) +g_btnsNb = c_btnsNb ( positive ) +g_dataWidth = 32 ( positive ) " +) +header "" +) +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code_sim_bram.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "c_btnsNb" +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +] +) +viewicon (ZoomableIcon +uid 222,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "23250,23250,24750,24750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*22 (Blk +uid 247,0 +shape (Rectangle +uid 248,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "14000,34000,68000,44000" +) +ttg (MlTextGroup +uid 249,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 250,0 +va (VaSet +font "Verdana,9,1" +) +xt "15850,36200,24150,37400" +st "HEIRV32_test" +blo "15850,37200" +tm "BdLibraryNameMgr" +) +*24 (Text +uid 251,0 +va (VaSet +font "Verdana,9,1" +) +xt "15850,37400,24750,38600" +st "universalTester" +blo "15850,38400" +tm "BlkNameMgr" +) +*25 (Text +uid 252,0 +va (VaSet +font "Verdana,9,1" +) +xt "15850,38600,18350,39800" +st "U_0" +blo "15850,39600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 253,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 254,0 +text (MLText +uid 255,0 +va (VaSet +font "Courier New,8,0" +) +xt "10850,47200,30850,48000" +st "c_btnsNb = c_btnsNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "c_btnsNb" +) +] +) +viewicon (ZoomableIcon +uid 256,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "14250,42250,15750,43750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*26 (Net +uid 293,0 +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 1 +suid 7,0 +) +declText (MLText +uid 294,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,35500,8800" +st "SIGNAL rst : std_ulogic" +) +) +*27 (Net +uid 299,0 +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 10,0 +) +declText (MLText +uid 300,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,50000,6400" +st "SIGNAL btns : std_ulogic_vector(c_btnsNb-1 DOWNTO 0)" +) +) +*28 (Net +uid 301,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 11,0 +) +declText (MLText +uid 302,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,35500,7200" +st "SIGNAL clk : std_ulogic" +) +) +*29 (Net +uid 303,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 12,0 +) +declText (MLText +uid 304,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,7200,35500,8000" +st "SIGNAL en : std_ulogic" +) +) +*30 (Wire +uid 257,0 +shape (OrthoPolyLine +uid 258,0 +va (VaSet +vasetType 3 +) +xt "16000,18000,22250,34000" +pts [ +"22250,18000" +"16000,18000" +"16000,34000" +] +) +start &16 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 261,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 262,0 +va (VaSet +) +xt "19250,16800,21150,18000" +st "en" +blo "19250,17800" +tm "WireNameMgr" +) +) +on &29 +) +*31 (Wire +uid 263,0 +shape (OrthoPolyLine +uid 264,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "28000,25750,28000,34000" +pts [ +"28000,25750" +"28000,34000" +] +) +start &17 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 267,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 268,0 +ro 270 +va (VaSet +) +xt "26800,27750,28000,30650" +st "btns" +blo "27800,30650" +tm "WireNameMgr" +) +) +on &27 +) +*32 (Wire +uid 269,0 +shape (OrthoPolyLine +uid 270,0 +va (VaSet +vasetType 3 +) +xt "18000,22000,22250,34000" +pts [ +"22250,22000" +"18000,22000" +"18000,34000" +] +) +start &14 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 273,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 274,0 +va (VaSet +) +xt "19250,20800,21450,22000" +st "clk" +blo "19250,21800" +tm "WireNameMgr" +) +) +on &28 +) +*33 (Wire +uid 275,0 +shape (OrthoPolyLine +uid 276,0 +va (VaSet +vasetType 3 +) +xt "17000,20000,22250,34000" +pts [ +"22250,20000" +"17000,20000" +"17000,34000" +] +) +start &13 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 279,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 280,0 +va (VaSet +) +xt "19250,18800,21350,20000" +st "rst" +blo "19250,19800" +tm "WireNameMgr" +) +) +on &26 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *34 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*36 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*38 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*39 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*42 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*43 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "1920,0,3841,1056" +viewArea "-1300,-1400,91815,48100" +cachedDiagramExtent "0,0,89000,48000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 444,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*45 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*46 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*48 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*49 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*51 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*52 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*54 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*55 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*57 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*58 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*60 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*62 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*64 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,2400,25200,3600" +st "Pre User:" +blo "20000,3400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3600,40500,4400" +st "constant c_btnsNb : positive := 4;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,4400,29500,5600" +st "Diagram Signals:" +blo "20000,5400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,26400,1200" +st "Post User:" +blo "20000,1000" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *65 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*66 (RefLabelRowHdr +) +*67 (TitleRowHdr +) +*68 (FilterRowHdr +) +*69 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*70 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*71 (GroupColHdr +tm "GroupColHdrMgr" +) +*72 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*73 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*74 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*75 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*76 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*77 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*78 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "rst" +t "std_ulogic" +o 1 +suid 7,0 +) +) +uid 305,0 +) +*79 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 10,0 +) +) +uid 311,0 +) +*80 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 11,0 +) +) +uid 313,0 +) +*81 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 12,0 +) +) +uid 315,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*82 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *83 (MRCItem +litem &65 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*84 (MRCItem +litem &66 +pos 0 +dimension 20 +uid 70,0 +) +*85 (MRCItem +litem &67 +pos 1 +dimension 23 +uid 71,0 +) +*86 (MRCItem +litem &68 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*87 (MRCItem +litem &78 +pos 0 +dimension 20 +uid 306,0 +) +*88 (MRCItem +litem &79 +pos 1 +dimension 20 +uid 312,0 +) +*89 (MRCItem +litem &80 +pos 2 +dimension 20 +uid 314,0 +) +*90 (MRCItem +litem &81 +pos 3 +dimension 20 +uid 316,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*91 (MRCItem +litem &69 +pos 0 +dimension 20 +uid 74,0 +) +*92 (MRCItem +litem &71 +pos 1 +dimension 50 +uid 75,0 +) +*93 (MRCItem +litem &72 +pos 2 +dimension 100 +uid 76,0 +) +*94 (MRCItem +litem &73 +pos 3 +dimension 50 +uid 77,0 +) +*95 (MRCItem +litem &74 +pos 4 +dimension 100 +uid 78,0 +) +*96 (MRCItem +litem &75 +pos 5 +dimension 100 +uid 79,0 +) +*97 (MRCItem +litem &76 +pos 6 +dimension 50 +uid 80,0 +) +*98 (MRCItem +litem &77 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *99 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*100 (RefLabelRowHdr +) +*101 (TitleRowHdr +) +*102 (FilterRowHdr +) +*103 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*104 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*105 (GroupColHdr +tm "GroupColHdrMgr" +) +*106 (NameColHdr +tm "GenericNameColHdrMgr" +) +*107 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*108 (InitColHdr +tm "GenericValueColHdrMgr" +) +*109 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*110 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*111 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *112 (MRCItem +litem &99 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*113 (MRCItem +litem &100 +pos 0 +dimension 20 +uid 98,0 +) +*114 (MRCItem +litem &101 +pos 1 +dimension 23 +uid 99,0 +) +*115 (MRCItem +litem &102 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*116 (MRCItem +litem &103 +pos 0 +dimension 20 +uid 102,0 +) +*117 (MRCItem +litem &105 +pos 1 +dimension 50 +uid 103,0 +) +*118 (MRCItem +litem &106 +pos 2 +dimension 100 +uid 104,0 +) +*119 (MRCItem +litem &107 +pos 3 +dimension 100 +uid 105,0 +) +*120 (MRCItem +litem &108 +pos 4 +dimension 50 +uid 106,0 +) +*121 (MRCItem +litem &109 +pos 5 +dimension 50 +uid 107,0 +) +*122 (MRCItem +litem &110 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tester/interface b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tester/interface new file mode 100644 index 0000000..db2088a --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_mc_tester/interface @@ -0,0 +1,1545 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 20,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb -1 DOWNTO 0)" +o 4 +suid 17,0 +) +) +uid 403,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 18,0 +) +) +uid 405,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 19,0 +) +) +uid 407,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "rst" +t "std_ulogic" +o 3 +suid 20,0 +) +) +uid 409,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 404,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 406,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 408,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 410,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "c_btnsNb" +type "positive" +value "2" +) +uid 233,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 96,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 234,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tester" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "heirv32_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:27:04" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_tester" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:27:04" +) +(vvPair +variable "unit" +value "heirv32_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 383,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 384,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 385,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 386,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,10600" +st "btns" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 387,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,74000,3200" +st "btns : OUT std_ulogic_vector (c_btnsNb -1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb -1 DOWNTO 0)" +o 4 +suid 17,0 +) +) +) +*63 (CptPort +uid 388,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 389,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19625,5250,20375,6000" +) +tg (CPTG +uid 390,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 391,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "19300,7000,20700,9400" +st "clk" +ju 2 +blo "20500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 392,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,59000,4000" +st "clk : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 18,0 +) +) +) +*64 (CptPort +uid 393,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 394,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15625,5250,16375,6000" +) +tg (CPTG +uid 395,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 396,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "15300,7000,16700,9400" +st "en" +ju 2 +blo "16500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 397,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,59000,4800" +st "en : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 4 +suid 19,0 +) +) +) +*65 (CptPort +uid 398,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 399,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17625,5250,18375,6000" +) +tg (CPTG +uid 400,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 401,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "17300,7000,18700,9500" +st "rst" +ju 2 +blo "18500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 402,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,58000,5600" +st "rst : OUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "rst" +t "std_ulogic" +o 3 +suid 20,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,62000,16000" +) +oxt "15000,6000,48000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "34200,9800,42500,11000" +st "HEIRV32_test" +blo "34200,10800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "34200,11000,42800,12200" +st "heirv32_tester" +blo "34200,12000" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "9000,7000,21000,9400" +st "Generic Declarations + +c_btnsNb positive 2 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "2" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,50300,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "96,54,1113,744" +viewArea "-500,-500,70510,47560" +cachedDiagramExtent "0,0,74000,49000" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_test" +entityName "heirv32_mc_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,5600,45200,6800" +st "User:" +blo "42000,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,44000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 433,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/struct.bd b/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/struct.bd new file mode 100644 index 0000000..6403e6d --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/struct.bd @@ -0,0 +1,2820 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "U_tester" +duLibraryName "HEIRV32_test" +duName "heirv32_sc_tester" +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "c_btnsNb" +) +] +mwi 0 +uid 143,0 +) +(Instance +name "U_heirv32" +duLibraryName "HEIRV32_SC" +duName "heirv32_sc" +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code_sim_bram.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "c_btnsNb" +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +] +mwi 0 +uid 248,0 +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb" +) +(vvPair +variable "date" +value "04.11.2022" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "04" +) +(vvPair +variable "entity_name" +value "heirv32_sc_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "04.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:37:15" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_sc_tb" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "11:37:15" +) +(vvPair +variable "unit" +value "heirv32_sc_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,4000,72000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,4000,66700,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,0,76000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "72200,0,75200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,2000,72000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,2000,65200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,2000,55000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "51200,2000,53300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,1000,92000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "72200,1200,81600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "76000,0,92000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "76200,0,77800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,0,72000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "56350,400,66650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,3000,55000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "51200,3000,53300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,4000,55000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "51200,4000,53900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,3000,72000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "55200,3000,68200,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "51000,0,92000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (Blk +uid 143,0 +shape (Rectangle +uid 144,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "7000,30000,58000,40000" +) +ttg (MlTextGroup +uid 145,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*13 (Text +uid 146,0 +va (VaSet +font "Verdana,9,1" +) +xt "7850,33200,16150,34400" +st "HEIRV32_test" +blo "7850,34200" +tm "BdLibraryNameMgr" +) +*14 (Text +uid 147,0 +va (VaSet +font "Verdana,9,1" +) +xt "7850,34400,18050,35600" +st "heirv32_sc_tester" +blo "7850,35400" +tm "BlkNameMgr" +) +*15 (Text +uid 148,0 +va (VaSet +font "Verdana,9,1" +) +xt "7850,35600,12850,36800" +st "U_tester" +blo "7850,36600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 149,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 150,0 +text (MLText +uid 151,0 +va (VaSet +font "Courier New,8,0" +) +xt "7850,43200,27850,44000" +st "c_btnsNb = c_btnsNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "c_btnsNb" +) +] +) +viewicon (ZoomableIcon +uid 152,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "7250,38250,8750,39750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*16 (Net +uid 153,0 +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 154,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,7200,35500,8000" +st "SIGNAL en : std_ulogic" +) +) +*17 (Net +uid 161,0 +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 162,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,8000,35500,8800" +st "SIGNAL rst : std_ulogic" +) +) +*18 (Net +uid 169,0 +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 170,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,6400,35500,7200" +st "SIGNAL clk : std_ulogic" +) +) +*19 (Net +uid 177,0 +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +declText (MLText +uid 178,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,5600,50000,6400" +st "SIGNAL btns : std_ulogic_vector(c_btnsNb-1 DOWNTO 0)" +) +) +*20 (SaComponent +uid 248,0 +optionalChildren [ +*21 (CptPort +uid 224,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 225,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,18625,18000,19375" +) +tg (CPTG +uid 226,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 227,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,18300,21500,19700" +st "rst" +blo "19000,19500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "rst" +t "std_ulogic" +o 4 +suid 3,0 +) +) +) +*22 (CptPort +uid 228,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 229,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,20625,18000,21375" +) +tg (CPTG +uid 230,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 231,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,20300,21400,21700" +st "clk" +blo "19000,21500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clk" +t "std_ulogic" +o 2 +suid 4,0 +) +) +) +*23 (CptPort +uid 232,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 233,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34000,16625,34750,17375" +) +tg (CPTG +uid 234,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 235,0 +va (VaSet +font "Verdana,12,0" +) +xt "26400,16300,33000,17700" +st "dbg_leds" +ju 2 +blo "33000,17500" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "dbg_leds" +t "std_ulogic_vector" +b "(31 DOWNTO 0)" +o 5 +suid 6,0 +) +) +) +*24 (CptPort +uid 236,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 237,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17250,16625,18000,17375" +) +tg (CPTG +uid 238,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 239,0 +va (VaSet +font "Verdana,12,0" +) +xt "19000,16300,21400,17700" +st "en" +blo "19000,17500" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*25 (CptPort +uid 240,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 241,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,24000,23375,24750" +) +tg (CPTG +uid 242,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 243,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,19400,23700,23000" +st "btns" +blo "23500,23000" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(g_btnsNb-1 DOWNTO 0)" +o 1 +suid 8,0 +) +) +) +*26 (CptPort +uid 244,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 245,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,24000,25375,24750" +) +tg (CPTG +uid 246,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 247,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,19600,25700,23000" +st "leds" +blo "25500,23000" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "leds" +t "std_ulogic_vector" +b "(g_dataWidth-1 DOWNTO 0)" +o 6 +suid 9,0 +) +) +) +] +shape (Rectangle +uid 249,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "18000,16000,34000,24000" +) +oxt "19000,25000,35000,33000" +ttg (MlTextGroup +uid 250,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*27 (Text +uid 251,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,19800,34200,21000" +st "HEIRV32_SC" +blo "26800,20800" +tm "BdLibraryNameMgr" +) +*28 (Text +uid 252,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,21000,33300,22200" +st "heirv32_sc" +blo "26800,22000" +tm "CptNameMgr" +) +*29 (Text +uid 253,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,22200,32400,23400" +st "U_heirv32" +blo "26800,23200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 254,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 255,0 +text (MLText +uid 256,0 +va (VaSet +font "Courier New,8,0" +) +xt "28000,25200,65000,28400" +st "g_programFile = \"$SIMULATION_DIR/code_sim_bram.txt\" ( string ) +g_btnsNb = c_btnsNb ( positive ) +g_dataWidth = 32 ( positive ) +g_memoryNbBits = 7 ( positive ) +" +) +header "" +) +elements [ +(GiElement +name "g_programFile" +type "string" +value "\"$SIMULATION_DIR/code_sim_bram.txt\"" +) +(GiElement +name "g_btnsNb" +type "positive" +value "c_btnsNb" +) +(GiElement +name "g_dataWidth" +type "positive" +value "32" +) +(GiElement +name "g_memoryNbBits" +type "positive" +value "7" +) +] +) +viewicon (ZoomableIcon +uid 257,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "18250,22250,19750,23750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*30 (Wire +uid 155,0 +shape (OrthoPolyLine +uid 156,0 +va (VaSet +vasetType 3 +) +xt "8000,17000,17250,30000" +pts [ +"17250,17000" +"8000,17000" +"8000,30000" +] +) +start &24 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 159,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 160,0 +va (VaSet +) +xt "14250,15800,16150,17000" +st "en" +blo "14250,16800" +tm "WireNameMgr" +) +) +on &16 +) +*31 (Wire +uid 163,0 +shape (OrthoPolyLine +uid 164,0 +va (VaSet +vasetType 3 +) +xt "10000,19000,17250,30000" +pts [ +"17250,19000" +"10000,19000" +"10000,30000" +] +) +start &21 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 167,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 168,0 +va (VaSet +) +xt "14250,17800,16350,19000" +st "rst" +blo "14250,18800" +tm "WireNameMgr" +) +) +on &17 +) +*32 (Wire +uid 171,0 +shape (OrthoPolyLine +uid 172,0 +va (VaSet +vasetType 3 +) +xt "12000,21000,17250,30000" +pts [ +"17250,21000" +"12000,21000" +"12000,30000" +] +) +start &22 +end &12 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +tg (WTG +uid 175,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 176,0 +va (VaSet +) +xt "14250,19800,16450,21000" +st "clk" +blo "14250,20800" +tm "WireNameMgr" +) +) +on &18 +) +*33 (Wire +uid 179,0 +shape (OrthoPolyLine +uid 180,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "23000,24750,23000,30000" +pts [ +"23000,30000" +"23000,24750" +] +) +start &12 +end &25 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +tg (WTG +uid 183,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 184,0 +ro 270 +va (VaSet +) +xt "21800,26100,23000,29000" +st "btns" +blo "22800,29000" +tm "WireNameMgr" +) +) +on &19 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *34 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*35 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*36 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*37 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*38 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*39 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*40 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*41 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*42 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*43 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,24,1921,1080" +viewArea "-1400,-1500,93408,48900" +cachedDiagramExtent "0,0,92000,44000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 350,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*44 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*45 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*46 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*47 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*48 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*49 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*50 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*51 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*52 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*54 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*55 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*56 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*57 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*58 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*60 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*62 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*63 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*64 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,0,27400,1200" +st "Declarations" +blo "20000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,1200,23700,2400" +st "Ports:" +blo "20000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,2400,25200,3600" +st "Pre User:" +blo "20000,3400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "22000,3600,40500,4400" +st "constant c_btnsNb : positive := 2;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "20000,4400,29500,5600" +st "Diagram Signals:" +blo "20000,5400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,8800,26400,10000" +st "Post User:" +blo "20000,9800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "20000,0,20000,0" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 4,0 +usingSuid 1 +emptyRow *65 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*66 (RefLabelRowHdr +) +*67 (TitleRowHdr +) +*68 (FilterRowHdr +) +*69 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*70 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*71 (GroupColHdr +tm "GroupColHdrMgr" +) +*72 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*73 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*74 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*75 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*76 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*77 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*78 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 185,0 +) +*79 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "rst" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 187,0 +) +*80 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 189,0 +) +*81 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 4,0 +) +) +uid 191,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*82 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *83 (MRCItem +litem &65 +pos 4 +dimension 20 +) +uid 69,0 +optionalChildren [ +*84 (MRCItem +litem &66 +pos 0 +dimension 20 +uid 70,0 +) +*85 (MRCItem +litem &67 +pos 1 +dimension 23 +uid 71,0 +) +*86 (MRCItem +litem &68 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*87 (MRCItem +litem &78 +pos 0 +dimension 20 +uid 186,0 +) +*88 (MRCItem +litem &79 +pos 1 +dimension 20 +uid 188,0 +) +*89 (MRCItem +litem &80 +pos 2 +dimension 20 +uid 190,0 +) +*90 (MRCItem +litem &81 +pos 3 +dimension 20 +uid 192,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*91 (MRCItem +litem &69 +pos 0 +dimension 20 +uid 74,0 +) +*92 (MRCItem +litem &71 +pos 1 +dimension 50 +uid 75,0 +) +*93 (MRCItem +litem &72 +pos 2 +dimension 100 +uid 76,0 +) +*94 (MRCItem +litem &73 +pos 3 +dimension 50 +uid 77,0 +) +*95 (MRCItem +litem &74 +pos 4 +dimension 100 +uid 78,0 +) +*96 (MRCItem +litem &75 +pos 5 +dimension 100 +uid 79,0 +) +*97 (MRCItem +litem &76 +pos 6 +dimension 50 +uid 80,0 +) +*98 (MRCItem +litem &77 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *99 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*100 (RefLabelRowHdr +) +*101 (TitleRowHdr +) +*102 (FilterRowHdr +) +*103 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*104 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*105 (GroupColHdr +tm "GroupColHdrMgr" +) +*106 (NameColHdr +tm "GenericNameColHdrMgr" +) +*107 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*108 (InitColHdr +tm "GenericValueColHdrMgr" +) +*109 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*110 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*111 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *112 (MRCItem +litem &99 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*113 (MRCItem +litem &100 +pos 0 +dimension 20 +uid 98,0 +) +*114 (MRCItem +litem &101 +pos 1 +dimension 23 +uid 99,0 +) +*115 (MRCItem +litem &102 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*116 (MRCItem +litem &103 +pos 0 +dimension 20 +uid 102,0 +) +*117 (MRCItem +litem &105 +pos 1 +dimension 50 +uid 103,0 +) +*118 (MRCItem +litem &106 +pos 2 +dimension 100 +uid 104,0 +) +*119 (MRCItem +litem &107 +pos 3 +dimension 100 +uid 105,0 +) +*120 (MRCItem +litem &108 +pos 4 +dimension 50 +uid 106,0 +) +*121 (MRCItem +litem &109 +pos 5 +dimension 50 +uid 107,0 +) +*122 (MRCItem +litem &110 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/symbol.sb b/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/symbol.sb new file mode 100644 index 0000000..6f6233c --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tb/symbol.sb @@ -0,0 +1,1219 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +usingSuid 1 +emptyRow *1 (LEmptyRow +) +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +vaOverrides [ +] +) +] +) +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +vaOverrides [ +] +) +] +) +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "heirv32_sc_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "12:01:00" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_sc_tb" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "12:01:00" +) +(vvPair +variable "unit" +value "heirv32_sc_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,35100,16000" +st "HEIRV32_test" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,35000,17200" +st "heirv32_sc_tb" +blo "26800,17000" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,45200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*66 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,2400,45200,3600" +st "User:" +blo "42000,3400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,44000,3600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 50,0 +activeModelName "Symbol:CDM" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tester/interface b/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tester/interface new file mode 100644 index 0000000..7ac2ca3 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/heirv32_sc_tester/interface @@ -0,0 +1,1549 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 81,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 9,0 +) +) +uid 255,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 10,0 +) +) +uid 257,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 11,0 +) +) +uid 259,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "rst" +t "std_ulogic" +o 2 +suid 12,0 +) +) +uid 261,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 97,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 98,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 256,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 258,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 260,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 262,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 101,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 102,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 103,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 104,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 105,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 106,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 107,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 108,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 80,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "c_btnsNb" +type "positive" +value "2" +) +uid 210,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 122,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 124,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 125,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 126,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 127,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 211,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 128,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 129,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 130,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 131,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 132,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 133,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 134,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 135,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 123,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tester" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "heirv32_sc_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "12:07:48" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "heirv32_sc_tester" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\heirv32_sc_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "12:07:48" +) +(vvPair +variable "unit" +value "heirv32_sc_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 79,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 235,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 236,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 237,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 238,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,10600" +st "btns" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 239,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,73500,3200" +st "btns : OUT std_ulogic_vector (c_btnsNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 9,0 +) +) +) +*63 (CptPort +uid 240,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 241,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "19625,5250,20375,6000" +) +tg (CPTG +uid 242,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 243,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "19300,7000,20700,9400" +st "clk" +ju 2 +blo "20500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 244,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,59000,4000" +st "clk : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk" +t "std_ulogic" +o 3 +suid 10,0 +) +) +) +*64 (CptPort +uid 245,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 246,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15625,5250,16375,6000" +) +tg (CPTG +uid 247,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 248,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "15300,7000,16700,9400" +st "en" +ju 2 +blo "16500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 249,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,59000,4800" +st "en : OUT std_ulogic ; +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 1 +suid 11,0 +) +) +) +*65 (CptPort +uid 250,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 251,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17625,5250,18375,6000" +) +tg (CPTG +uid 252,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 253,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "17300,7000,18700,9500" +st "rst" +ju 2 +blo "18500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 254,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,58000,5600" +st "rst : OUT std_ulogic +" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "rst" +t "std_ulogic" +o 2 +suid 12,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,66000,16000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "35400,9800,43700,11000" +st "HEIRV32_test" +blo "35400,10800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "35400,11000,45600,12200" +st "heirv32_sc_tester" +blo "35400,12000" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "11000,7000,23000,9400" +st "Generic Declarations + +c_btnsNb positive 2 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "2" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47700,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,51900,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "2231,111,3247,801" +viewArea "-500,-500,70420,47560" +cachedDiagramExtent "0,0,73500,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_test" +entityName "heirv32_sc_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,5600,45200,6800" +st "User:" +blo "42000,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,44000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 262,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/HEIRV32_test/hds/universal@tester/interface b/Libs/RiscV/HEIRV32_test/hds/universal@tester/interface new file mode 100644 index 0000000..dbc3429 --- /dev/null +++ b/Libs/RiscV/HEIRV32_test/hds/universal@tester/interface @@ -0,0 +1,1545 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 26,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 23,0 +) +) +uid 422,0 +) +*15 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 24,0 +) +) +uid 424,0 +) +*16 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 25,0 +) +) +uid 426,0 +) +*17 (LogPort +port (LogicalPort +lang 11 +m 1 +decl (Decl +n "rst" +t "std_ulogic" +o 1 +suid 26,0 +) +) +uid 428,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 6 +dimension 20 +) +uid 68,0 +optionalChildren [ +*20 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*21 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*22 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*23 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 423,0 +) +*24 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 425,0 +) +*25 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 427,0 +) +*26 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 429,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*27 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*28 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*29 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*30 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*31 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*32 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*33 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*34 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +*47 (LogGeneric +generic (GiElement +name "c_btnsNb" +type "positive" +value "2" +) +uid 261,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*48 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *49 (MRCItem +litem &35 +pos 1 +dimension 20 +) +uid 96,0 +optionalChildren [ +*50 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 97,0 +) +*51 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 98,0 +) +*52 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*53 (MRCItem +litem &47 +pos 0 +dimension 20 +uid 262,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*54 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 101,0 +) +*55 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 102,0 +) +*56 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 103,0 +) +*57 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 104,0 +) +*58 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 105,0 +) +*59 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 106,0 +) +*60 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\universal@tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\universal@tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\universal@tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\universalTester" +) +(vvPair +variable "date" +value "03.11.2022" +) +(vvPair +variable "day" +value "jeu." +) +(vvPair +variable "day_long" +value "jeudi" +) +(vvPair +variable "dd" +value "03" +) +(vvPair +variable "entity_name" +value "universalTester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "03.11.2022" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "11:27:04" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "HEIRV32_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../RiscV/HEIRV32_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/CAr//RiscV_test/HEIRV32_test/work" +) +(vvPair +variable "mm" +value "11" +) +(vvPair +variable "module_name" +value "universalTester" +) +(vvPair +variable "month" +value "nov." +) +(vvPair +variable "month_long" +value "novembre" +) +(vvPair +variable "p" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\universal@tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\car-labs\\hdl\\Prefs\\..\\RiscV\\HEIRV32_test\\hds\\universalTester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "11:27:04" +) +(vvPair +variable "unit" +value "universalTester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2022" +) +(vvPair +variable "yy" +value "22" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*61 (SymbolBody +uid 8,0 +optionalChildren [ +*62 (CptPort +uid 402,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 403,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 404,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 405,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,10600" +st "btns" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 406,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,73500,3200" +st "btns : OUT std_ulogic_vector (c_btnsNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "btns" +t "std_ulogic_vector" +b "(c_btnsNb-1 DOWNTO 0)" +o 4 +suid 23,0 +) +) +) +*63 (CptPort +uid 407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 408,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "18625,5250,19375,6000" +) +tg (CPTG +uid 409,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 410,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "18300,7000,19700,9400" +st "clk" +ju 2 +blo "19500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 411,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,59000,4000" +st "clk : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk" +t "std_ulogic" +o 5 +suid 24,0 +) +) +) +*64 (CptPort +uid 412,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 413,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "16625,5250,17375,6000" +) +tg (CPTG +uid 414,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 415,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "16300,7000,17700,9400" +st "en" +ju 2 +blo "17500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 416,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,59000,4800" +st "en : OUT std_ulogic ;" +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "en" +t "std_ulogic" +o 6 +suid 25,0 +) +) +) +*65 (CptPort +uid 417,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 418,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "17625,5250,18375,6000" +) +tg (CPTG +uid 419,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 420,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "17300,7000,18700,9500" +st "rst" +ju 2 +blo "18500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 421,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,58000,5600" +st "rst : OUT std_ulogic " +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "rst" +t "std_ulogic" +o 1 +suid 26,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,69000,16000" +) +oxt "15000,6000,73000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "37550,9800,45850,11000" +st "HEIRV32_test" +blo "37550,10800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "37550,11000,46450,12200" +st "universalTester" +blo "37550,12000" +) +) +gi *66 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "12500,7000,24500,9400" +st "Generic Declarations + +c_btnsNb positive 2 " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "c_btnsNb" +type "positive" +value "2" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*67 (Grouping +uid 16,0 +optionalChildren [ +*68 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47500,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*69 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*70 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*71 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*72 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*73 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*74 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*75 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*76 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*77 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,50800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *78 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*79 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*80 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "96,54,1112,744" +viewArea "-500,-500,70420,47560" +cachedDiagramExtent "0,0,73000,49000" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "HEIRV32_test" +entityName "heirv32_mc_tb" +viewName "universal.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *81 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *82 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,5600,45200,6800" +st "User:" +blo "42000,6600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,44000,6800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 452,0 +activeModelName "Symbol:GEN" +) diff --git a/Libs/RiscV/NEORV32/LICENSE b/Libs/RiscV/NEORV32/LICENSE new file mode 100644 index 0000000..26fbfed --- /dev/null +++ b/Libs/RiscV/NEORV32/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2021, Stephan Nolting +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Libs/RiscV/NEORV32/README.md b/Libs/RiscV/NEORV32/README.md new file mode 100644 index 0000000..9b4e82f --- /dev/null +++ b/Libs/RiscV/NEORV32/README.md @@ -0,0 +1,335 @@ +[![NEORV32](https://raw.githubusercontent.com/stnolting/neorv32/master/docs/figures/neorv32_logo_dark.png)](https://github.com/stnolting/neorv32) + +# The NEORV32 RISC-V Processor + +[![datasheet (pdf)](https://img.shields.io/badge/data%20sheet-PDF-ffbd00?longCache=true&style=flat-square&logo=asciidoctor)](https://github.com/stnolting/neorv32/releases/tag/nightly) +[![datasheet (html)](https://img.shields.io/badge/-HTML-ffbd00?longCache=true&style=flat-square)](https://stnolting.github.io/neorv32) +[![userguide (pdf)](https://img.shields.io/badge/user%20guide-PDF-ffbd00?longCache=true&style=flat-square&logo=asciidoctor)](https://github.com/stnolting/neorv32/releases/tag/nightly) +[![userguide (html)](https://img.shields.io/badge/-HTML-ffbd00?longCache=true&style=flat-square)](https://stnolting.github.io/neorv32/ug) +[![doxygen](https://img.shields.io/badge/doxygen-HTML-ffbd00?longCache=true&style=flat-square&logo=Doxygen)](https://stnolting.github.io/neorv32/sw/files.html) +[![Gitter](https://img.shields.io/badge/Chat-on%20gitter-4db797.svg?longCache=true&style=flat-square&logo=gitter&logoColor=e8ecef)](https://gitter.im/neorv32/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +1. [Overview](#1-Overview) + * [Key Features](#Project-Key-Features) + * [Status](#status) +2. [Processor/SoC Features](#2-NEORV32-Processor-Features) + * [FPGA Implementation Results](#FPGA-Implementation-Results---Processor) +3. [CPU Features](#3-NEORV32-CPU-Features) + * [Available ISA Extensions](#Available-ISA-Extensions) + * [FPGA Implementation Results](#FPGA-Implementation-Results---CPU) + * [Performance](#Performance) +4. [Software Framework & Tooling](#4-Software-Framework-and-Tooling) +5. [**Getting Started**](#5-Getting-Started) :rocket: + + + +## 1. Overview + +![neorv32 Overview](https://raw.githubusercontent.com/stnolting/neorv32/master/docs/figures/neorv32_processor.png) + +The NEORV32 Processor is a **customizable microcontroller-like system on chip (SoC)** that is based on the RISC-V NEORV32 CPU. +The project is intended as auxiliary processor in larger SoC designs or as *ready-to-go* stand-alone +custom microcontroller that even fits into a Lattice iCE40 UltraPlus 5k low-power FPGA running at 24 MHz. + +Special focus is paid on **execution safety** to provide defined and predictable behavior at any time. +Therefore, the CPU ensures that all memory access are acknowledged and no invalid/malformed instructions +are executed. Whenever an unexpected situation occurs the application code is informed via precise and resumable hardware exceptions. + +:thinking: Want to know more? Check out the [project's rationale](https://stnolting.github.io/neorv32/#_rationale). + +:books: For detailed information take a look at the [NEORV32 documentation](https://stnolting.github.io/neorv32/) (online at GitHub-pages). + +:label: The project's change log is available in [`CHANGELOG.md`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md). +To see the changes between _official releases_ visit the project's [release page](https://github.com/stnolting/neorv32/releases). + +:package: [Exemplary setups](https://github.com/stnolting/neorv32/tree/master/setups) targeting +various FPGA boards and toolchains to get you started. + +:kite: Supported by upstream [Zephyr OS](https://docs.zephyrproject.org/latest/boards/riscv/neorv32/doc/index.html) and FreeRTOS. + +:bulb: Feel free to open a [new issue](https://github.com/stnolting/neorv32/issues) or start a +[new discussion](https://github.com/stnolting/neorv32/discussions) if you have questions, comments, ideas or if something is +not working as expected. Or have a chat on our [gitter channel](https://gitter.im/neorv32/community). +See how to [contribute](https://github.com/stnolting/neorv32/blob/master/CONTRIBUTING.md). + +:rocket: Check out the [quick links below](#5-Getting-Started) or directly jump to the +[*User Guide*](https://stnolting.github.io/neorv32/ug/) to get started +setting up your NEORV32 setup! + + +### Project Key Features + +- [x] all-in-one package: [CPU](#3-NEORV32-CPU-Features) plus [SoC](#2-NEORV32-Processor-Features) plus [Software Framework & Tooling](#4-Software-Framework-and-Tooling) +- [x] completely described in behavioral, platform-independent VHDL - no primitives, macros, etc. +- [x] be as small as possible while being as RISC-V-compliant as possible +- [x] from zero to *printf("hello world!");* - completely open source and documented +- [x] easy to use even for FPGA/RISC-V starters – intended to work *out of the box* + + +### Status + +[![release](https://img.shields.io/github/v/release/stnolting/neorv32?longCache=true&style=flat-square&logo=GitHub)](https://github.com/stnolting/neorv32/releases) +[![GitHub Pages](https://img.shields.io/website.svg?label=stnolting.github.io%2Fneorv32&longCache=true&style=flat-square&url=http%3A%2F%2Fstnolting.github.io%2Fneorv32%2Findex.html&logo=GitHub)](https://stnolting.github.io/neorv32) +[![Documentation](https://img.shields.io/github/workflow/status/stnolting/neorv32/Documentation/master?longCache=true&style=flat-square&label=Documentation&logo=Github%20Actions&logoColor=fff)](https://github.com/stnolting/neorv32/actions?query=workflow%3ADocumentation) +\ +[![riscv-arch-test](https://img.shields.io/github/workflow/status/stnolting/neorv32/riscv-arch-test/master?longCache=true&style=flat-square&label=riscv-arch-test&logo=Github%20Actions&logoColor=fff)](https://github.com/stnolting/neorv32/actions?query=workflow%3Ariscv-arch-test) +[![Processor](https://img.shields.io/github/workflow/status/stnolting/neorv32/Processor/master?longCache=true&style=flat-square&label=Processor&logo=Github%20Actions&logoColor=fff)](https://github.com/stnolting/neorv32/actions?query=workflow%3AProcessor) +[![Implementation](https://img.shields.io/github/workflow/status/stnolting/neorv32/Implementation/master?longCache=true&style=flat-square&label=Implementation&logo=Github%20Actions&logoColor=fff)](https://github.com/stnolting/neorv32/actions?query=workflow%3AImplementation) +[![Windows](https://img.shields.io/github/workflow/status/stnolting/neorv32/Windows/master?longCache=true&style=flat-square&label=Windows&logo=Github%20Actions&logoColor=fff)](https://github.com/stnolting/neorv32/actions?query=workflow%3AWindows) + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + +## 2. NEORV32 Processor Features + +The NEORV32 Processor (top entity: [`rtl/core/neorv32_top.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/core/neorv32_top.vhd)) +provides a full-featured SoC build around the NEORV32 CPU. It is highly configurable via generics +to allow a flexible customization according to your needs. Note that all modules listed below are _optional_. + +**Memory** + +* processor-internal data and instruction memories ([DMEM](https://stnolting.github.io/neorv32/#_data_memory_dmem) / +[IMEM](https://stnolting.github.io/neorv32/#_instruction_memory_imem)) & +cache ([iCACHE](https://stnolting.github.io/neorv32/#_processor_internal_instruction_cache_icache)) +* bootloader ([BOOTLDROM](https://stnolting.github.io/neorv32/#_bootloader_rom_bootrom)) with serial user interface + * allows booting application code via UART or from external SPI flash + +**Timers** + +* machine system timer, 64-bit ([MTIME](https://stnolting.github.io/neorv32/#_machine_system_timer_mtime)), RISC-V spec. compatible +* general purpose 32-bit timer ([GPTMR](https://stnolting.github.io/neorv32/#_general_purpose_timer_gptmr)) +* watchdog timer ([WDT](https://stnolting.github.io/neorv32/#_watchdog_timer_wdt)) + +**Input/Output** + +* standard serial interfaces +([UART](https://stnolting.github.io/neorv32/#_primary_universal_asynchronous_receiver_and_transmitter_uart0), +[SPI](https://stnolting.github.io/neorv32/#_serial_peripheral_interface_controller_spi), +[TWI / I²C](https://stnolting.github.io/neorv32/#_two_wire_serial_interface_controller_twi)) +* general purpose [GPIO](https://stnolting.github.io/neorv32/#_general_purpose_input_and_output_port_gpio) and +[PWM](https://stnolting.github.io/neorv32/#_pulse_width_modulation_controller_pwm) +* smart LED interface ([NEOLED](https://stnolting.github.io/neorv32/#_smart_led_interface_neoled)) to directly drive _NeoPixel(TM)_ LEDs + +**SoC Connectivity** + +* 32-bit external bus interface, Wishbone b4 compatible +([WISHBONE](https://stnolting.github.io/neorv32/#_processor_external_memory_interface_wishbone_axi4_lite)) + * [wrapper](https://github.com/stnolting/neorv32/blob/master/rtl/system_integration/neorv32_SystemTop_axi4lite.vhd) for AXI4-Lite master interface + * [wrapper](https://github.com/stnolting/neorv32/blob/master/rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd) for Avalon-MM master interface +* 32-bit stream link interface with up to 8 independent RX and TX links +([SLINK](https://stnolting.github.io/neorv32/#_stream_link_interface_slink)) + * AXI4-Stream compatible +* external interrupt controller with up to 32 channels +([XIRQ](https://stnolting.github.io/neorv32/#_external_interrupt_controller_xirq)) +* custom functions subsystem ([CFS](https://stnolting.github.io/neorv32/#_custom_functions_subsystem_cfs)) +for tightly-coupled custom co-processor extensions + +**Advanced** + +* _true random_ number generator ([TRNG](https://stnolting.github.io/neorv32/#_true_random_number_generator_trng)) +* on-chip debugger ([OCD](https://stnolting.github.io/neorv32/#_on_chip_debugger_ocd)) accessible via JTAG interface - implementing +the [*Minimal RISC-V Debug Specification Version 0.13.2*](https://github.com/riscv/riscv-debug-spec) +and compatible with *OpenOCD* and *gdb* +* bus keeper to monitor the CPU's bus transactions ([BUSKEEPER](https://stnolting.github.io/neorv32/#_internal_bus_monitor_buskeeper)) + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + +### FPGA Implementation Results - Processor + +The hardware resources used by a specific processor setup is defined by the implemented CPU extensions, +the configuration of the peripheral modules and some "glue logic". +Section [_FPGA Implementation Results - Processor Modules_](https://stnolting.github.io/neorv32/#_processor_modules) +of the online datasheet shows the resource utilization of each optional processor module to allow an +estimation of the actual setup's hardware requirements. + +The [`setups`](https://github.com/stnolting/neorv32/tree/master/setups) folder provides exemplary FPGA +setups targeting various FPGA boards and toolchains. These setups also provide resource utilization reports for different +SoC configurations. The latest utilization reports for those setups can be found in the report of the +[Implementation Workflow](https://github.com/stnolting/neorv32/actions/workflows/Implementation.yml). + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + + +## 3. NEORV32 CPU Features + +The CPU (top entity: [`rtl/core/neorv32_cpu.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/core/neorv32_cpu.vhd)) +implements the RISC-V 32-bit `rv32` ISA with optional extensions (see below). It is compatible to subsets of the +*Unprivileged ISA Specification* [(Version 2.2)](https://github.com/stnolting/neorv32/blob/master/docs/references/riscv-spec.pdf) +and the *Privileged Architecture Specification* [(Version 1.12-draft)](https://github.com/stnolting/neorv32/blob/master/docs/references/riscv-privileged.pdf). +Compatibility is checked by passing the [official RISC-V architecture tests](https://github.com/riscv/riscv-arch-test) +(see [`sim/README`](sim/README.md)). + +The core is a little-endian Von-Neumann machine implemented as multi-cycle architecture. +However, the CPU's _front end_ (instruction fetch) and _back end_ (instruction execution) can work independently to increase performance. +Currently, three privilege levels (`machine` and optional `user` and `debug_mode`) are supported. The CPU implements all three standard RISC-V machine +interrupts (`MTI`, `MEI`, `MSI`) plus 16 _fast interrupt requests_ as custom extensions. +It also supports **all** standard RISC-V exceptions (instruction/load/store misaligned address & bus access fault, illegal +instruction, breakpoint, environment calls). + +:books: In-depth detailed information regarding the CPU can be found in the +[_Data Sheet: NEORV32 Central Processing Unit_](https://stnolting.github.io/neorv32/#_neorv32_central_processing_unit_cpu). + + +### Available ISA Extensions + +Currently, the following _optional_ RISC-V-compatible ISA extensions are implemented (linked to the according +documentation section). Note that the `X` extension is always enabled. + +**RV32 +[[`I`](https://stnolting.github.io/neorv32/#_i_base_integer_isa)/ +[`E`](https://stnolting.github.io/neorv32/#_e_embedded_cpu)] +[[`A`](https://stnolting.github.io/neorv32/#_a_atomic_memory_access)] +[[`B`](https://stnolting.github.io/neorv32/#_b_bit_manipulation_operations)] +[[`C`](https://stnolting.github.io/neorv32/#_c_compressed_instructions)] +[[`M`](https://stnolting.github.io/neorv32/#_m_integer_multiplication_and_division)] +[[`U`](https://stnolting.github.io/neorv32/#_u_less_privileged_user_mode)] +[[`X`](https://stnolting.github.io/neorv32/#_x_neorv32_specific_custom_extensions)] +[[`Zfinx`](https://stnolting.github.io/neorv32/#_zfinx_single_precision_floating_point_operations)] +[[`Zicsr`](https://stnolting.github.io/neorv32/#_zicsr_control_and_status_register_access_privileged_architecture)] +[[`Zicntr`](https://stnolting.github.io/neorv32/#_zicntr_cpu_base_counters)] +[[`Zihpm`](https://stnolting.github.io/neorv32/#_zihpm_hardware_performance_monitors)] +[[`Zifencei`](https://stnolting.github.io/neorv32/#_zifencei_instruction_stream_synchronization)] +[[`Zmmul`](https://stnolting.github.io/neorv32/#_zmmul_integer_multiplication)] +[[`PMP`](https://stnolting.github.io/neorv32/#_pmp_physical_memory_protection)] +[[`DEBUG`](https://stnolting.github.io/neorv32/#_cpu_debug_mode)]** + +:warning: The `B`, `Zfinx` and `Zmmul` RISC-V extensions are frozen but not officially ratified yet. Hence, there is no +upstream gcc support. To circumvent this, the NEORV32 software framework provides _intrinsic libraries_ for these extensions. + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + +### FPGA Implementation Results - CPU + +Implementation results for _exemplary_ CPU configuration generated for an **Intel Cyclone IV EP4CE22F17C6N FPGA** +using **Intel Quartus Prime Lite 20.1** ("balanced implementation, Slow 1200mV 0C Model"). + +| CPU Configuration (version [1.5.7.10](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md)) | LEs | FFs | Memory bits | DSPs (9-bit) | f_max | +|:------------------------|:----:|:----:|:----:|:-:|:-------:| +| `rv32i` | 806 | 359 | 1024 | 0 | 125 MHz | +| `rv32i_Zicsr_Zicntr` | 1729 | 813 | 1024 | 0 | 124 MHz | +| `rv32imac_Zicsr_Zicntr` | 2511 | 1074 | 1024 | 0 | 124 MHz | + +:information_source: An incremental list of CPU extension's hardware utilization can found in the +[_Data Sheet: FPGA Implementation Results - CPU_](https://stnolting.github.io/neorv32/#_cpu). + +:information_source: The CPU and SoC provide advanced options to optimize for performance, area or energy. +See [_User Guide: Application-Specific Processor Configuration_](https://stnolting.github.io/neorv32/ug/#_application_specific_processor_configuration) +for more information. + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + +### Performance + +The NEORV32 CPU is based on a two-stages pipeline architecture (fetch and execute). +The average CPI (cycles per instruction) depends on the instruction mix of a specific applications and also on the +available CPU extensions. + +The following table shows the performance results (scores and average CPI) for _exemplary_ CPU configurations executing +2000 iterations of the [CoreMark](https://github.com/stnolting/neorv32/blob/master/sw/example/coremark) CPU benchmark. + +| CPU Configuration (version [1.5.7.10](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md)) | CoreMark Score | CoreMarks/MHz | Average CPI | +|:------------------------------------------------|:-----:|:----------:|:--------:| +| _small_ (`rv32i_Zicsr`) | 33.89 | **0.3389** | **4.04** | +| _medium_ (`rv32imc_Zicsr`) | 62.50 | **0.6250** | **5.34** | +| _performance_ (`rv32imc_Zicsr` + perf. options) | 95.23 | **0.9523** | **3.54** | + +:information_source: More information regarding the CPU performance can be found in the +[_Data Sheet: CPU Performance_](https://stnolting.github.io/neorv32/#_cpu_performance). + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + + +## 4. Software Framework and Tooling + +* [core libraries](https://github.com/stnolting/neorv32/tree/master/sw/lib) for high-level usage of the provided functions and peripherals +* application compilation based on GNU makefiles +* gcc-based toolchain ([pre-compiled toolchains available](https://github.com/stnolting/riscv-gcc-prebuilt)) +* [SVD file](https://github.com/stnolting/neorv32/tree/master/sw/svd) for advanced debugging and IDE integration +* bootloader with UART interface console +* runtime environment for handling traps +* several [example programs](https://github.com/stnolting/neorv32/tree/master/sw/example) to get started including CoreMark, FreeRTOS and Conway's Game of Life +* doxygen-based documentation, available on [GitHub pages](https://stnolting.github.io/neorv32/sw/files.html) +* supports implementation using open source tooling (GHDL, Yosys and nextpnr; in the future: "Verilog-to-Routing") - both, software and hardware can be +developed and debugged with open source tooling +* [continuous integration](https://github.com/stnolting/neorv32/actions) is available for: + * allowing users to see the expected execution/output of the tools + * ensuring specification compliance + * catching regressions + * providing ready-to-use and up-to-date bitstreams and documentation + +:books: Want to know more? Check out [_Data Sheet: Software Framework_](https://stnolting.github.io/neorv32/#_software_framework). + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + + +## 5. Getting Started + +This overview provides some *quick links* to the most important sections of the +[online Data Sheet](https://stnolting.github.io/neorv32) and the +[online User Guide](https://stnolting.github.io/neorv32/ug). + +### :electric_plug: Hardware Overview + +* [Rationale](https://stnolting.github.io/neorv32/#_rationale) - NEORV32: why, how come, what for + +* [NEORV32 Processor](https://stnolting.github.io/neorv32/#_neorv32_processor_soc) - the SoC + * [Top Entity - Signals](https://stnolting.github.io/neorv32/#_processor_top_entity_signals) - how to connect to the processor + * [Top Entity - Generics](https://stnolting.github.io/neorv32/#_processor_top_entity_generics) - configuration options + * [Address Space](https://stnolting.github.io/neorv32/#_address_space) - memory layout and boot configuration + * [SoC Modules](https://stnolting.github.io/neorv32/#_processor_internal_modules) - available peripheral modules and memories + * [On-Chip Debugger](https://stnolting.github.io/neorv32/#_on_chip_debugger_ocd) - online & in-system debugging of the processor via JTAG + +* [NEORV32 CPU](https://stnolting.github.io/neorv32/#_neorv32_central_processing_unit_cpu) - the CPU + * [RISC-V compatibility](https://stnolting.github.io/neorv32/#_risc_v_compatibility) - what is compatible to the specs. and what is not + * [Full Virtualization](https://stnolting.github.io/neorv32/#_full_virtualization) - hardware execution safety + * [ISA and Extensions](https://stnolting.github.io/neorv32/#_instruction_sets_and_extensions) - available RISC-V ISA extensions + * [CSRs](https://stnolting.github.io/neorv32/#_control_and_status_registers_csrs) - control and status registers + * [Traps](https://stnolting.github.io/neorv32/#_traps_exceptions_and_interrupts) - interrupts and exceptions + +### :floppy_disk: Software Overview + +* [Example Programs](https://github.com/stnolting/neorv32/tree/master/sw/example) - test program execution on your setup +* [Core Libraries](https://stnolting.github.io/neorv32/#_core_libraries) - high-level functions for accessing the processor's peripherals + * [Software Framework Documentation](https://stnolting.github.io/neorv32/sw/files.html) - `doxygen`-based documentation +* [Application Makefiles](https://stnolting.github.io/neorv32/#_application_makefile) - turning your application into an executable +* [Bootloader](https://stnolting.github.io/neorv32/#_bootloader) - the build-in NEORV32 bootloader + +### :rocket: User Guide + +* [Toolchain Setup](https://stnolting.github.io/neorv32/ug/#_software_toolchain_setup) - install and setup RISC-V gcc +* [General Hardware Setup](https://stnolting.github.io/neorv32/ug/#_general_hardware_setup) - setup a new NEORV32 EDA project +* [General Software Setup](https://stnolting.github.io/neorv32/ug/#_general_software_framework_setup) - configure the software framework +* [Application Compilation](https://stnolting.github.io/neorv32/ug/#_application_program_compilation) - compile an application using `make` +* [Upload via Bootloader](https://stnolting.github.io/neorv32/ug/#_uploading_and_starting_of_a_binary_executable_image_via_uart) - upload and execute executables +* [Application-Specific Processor Configuration](https://stnolting.github.io/neorv32/ug/#_application_specific_processor_configuration) - tailor the processor to your needs +* [Adding Custom Hardware Modules](https://stnolting.github.io/neorv32/ug/#_adding_custom_hardware_modules) - add _your_ custom hardware +* [Debugging via the On-Chip Debugger](https://stnolting.github.io/neorv32/ug/#_debugging_using_the_on_chip_debugger) - step through code *online* and *in-system* +* [Simulation](https://stnolting.github.io/neorv32/ug/#_simulating_the_processor) - simulate the whole SoC + * [Hello World!](https://stnolting.github.io/neorv32/ug/index.html#_hello_world) - run a quick _"hello world"_ simulation + +### :copyright: Legal + +[![license](https://img.shields.io/github/license/stnolting/neorv32?longCache=true&style=flat-square)](https://github.com/stnolting/neorv32/blob/master/LICENSE) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5018888.svg)](https://doi.org/10.5281/zenodo.5018888) + +* [Overview](https://stnolting.github.io/neorv32/#_legal) - license, disclaimer, limitation of liability for external links, proprietary notice, ... +* [Citing](https://stnolting.github.io/neorv32/#_citing) - citing information +* [Impressum](https://github.com/stnolting/neorv32/blob/master/docs/impressum.md) - imprint + +[[back to top](#The-NEORV32-RISC-V-Processor)] + + + +## Acknowledgements + +**A big shout-out goes to the community and all the [contributors](https://github.com/stnolting/neorv32/graphs/contributors), who helped improving this project! :heart:** + +[RISC-V](https://riscv.org/) - Instruction Sets Want To Be Free! + +Continuous integration provided by [:octocat: GitHub Actions](https://github.com/features/actions) and powered by [GHDL](https://github.com/ghdl/ghdl). diff --git a/Libs/RiscV/NEORV32/docs/NEORV32.pdf b/Libs/RiscV/NEORV32/docs/NEORV32.pdf new file mode 100644 index 0000000000000000000000000000000000000000..91f8906760cad72761b9a2dad4e4d840f2467fdf GIT binary patch literal 5710675 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

      ?Om5_*;%+E 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 z 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

      t2#G|DqS<|z>8$IJp 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

      }KJaYZw^s&S&DqlQ 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�FDa$b5j`@NaG)nx#evScu zYVoL=^|k5KL%aCS2_hTfLV5eM>7;;81VpwFz_*hfqvaj2aG1L8Gp5`wfi_n^O}ydFB%q$N3|XWwmXZk^)RwiFKpyRR zv%k^IGhX^c$)=EEOh+-xt0#ZBfC*LjF}hG-%(iD^&pbXSFc~h2-D8>~As~tOlmBIt zy#UV!$xnR?g8A)${?+R%zfBx+>0yK{tS(>ERSI?QnD^BD)?>eVkGw+GJdJiHdZ}T( z*$T&$&$%9%HoeQz+MKTBTf_frZp1Ep-<+-S2L?B`GdQj~LUHmP4Wtyz$e!~xhk?jM z+;t>;cJ8u)X|6K%Q$ach#0W1|6vJQbNJb4^3tlZ3Y5-Z7vtbP+$u0*F8W26#ec-;J zL~}T(7c@1W5pVL%XWF|Rv2)|#2=)9WYDG9XKm+&Y$GTa>^)+6ib_C2NKo?3|TieSu zT$neHzFp{sQl=2YkG+qA=2y)A6oVwmIjgFs?Rn~_BJ9t$hIeTX5`CMAHTzRx@6^=|QTfi1AAo*qN5jAP#l!s>0Q1Ol z-`OpNzoT!A$)QLg$YCPzUo0T+;h3l7xqRJKwv!9hCV>KJ99tLu`y{6=sj!Ir5vD!{ z4wH)I8;#ztw`+D^aZ*nG)Z#(u8Ok#o8genH6Se;7i#}8jJTrpPNF4%)Ms^!azCD~A zq{!I;j&~(Wzo8ZiPru8PL>J)<+DvHHzQTZYT}hd-_U%hA`b11kumg1S6>M*=Y#Q2m zV@E(>)Yl((%|{pzOgnNpnX{^g4MpV z31{1PLj%TvvHN}>ho7RRdG15xqJE#R2dsu-xY7 zRS5fp$;clPhu?85lBDNGu{zp06+9d-c$lBRQHEc(bzo@pZ_pD>eJ;cndEn<~x!WU# zd`%Sj2OUvfjwDx+*FQ3UVOJMtx4<5sGbkRQ>PPMJsRb!(*g=`QCz{%Wk=-aBb6R{B zg9iohn8`g6!eYeb`+j%EaQu5h&82Za#y-Hzw5R>oPpaT*a=`#9pu&!Ja)sN)HHgk! zZrJVNd^4MN++7sI3%jXbSIn5WfH-<`+LSfeExGG1GUz$)R&H@Z(|Df z>A&$%RetFZvHZ=JqHX^r#BR5$YdKQv9<3}V2~(5Xj5dg8L?0ohI2^KnDfd2-H-x88 z&E>Af8YCrQt?(WgFKDh<>d7w7j$DL!>KG#>aiO*gRSOwkN;3{*L4c|Gu25bSoe`+Ew3VEVa*&2o9l^ud0TzQ20XN~&o$84814(e;HofaRuA zJ2Mt&WVtH{1l%TirazoD$i8$|skH`05g7_ zouFPImC&*A1WH6F$KW3O#`aQjTJ#sg-FPtzTwaZyOyXmPDVU^B}_Dbz;Rtz5R z>Jh8*7{`C(n%PU_-(7orLfmEPfbpWL0|R^bVgDvfPjpW!U&JXDhxWQC+Eu^&EwWN$ zFaH{DDL3n?IqMFcS4pk=#m_C5RcpQT)mSg%1Cxfri%E=#Yg9907Qx7uwk2{3IM;>@ z(;xX}_jD(PY~E%Rw+$3LkS%yTSf!YJZkZ_FuiM|to?|MU{T41G93-L9`PnUq)yT!W3Y4JxJQhK@UXDMS>5G=- zYn*hIq_)g;s?ScYdGsS-^T{Lyrir%uEL(uar~SKNX35fL!4<-Rf4S| zk?U4V>nG_}TNIp@1VW@$8cSG<#d$wW>Z3WS==IJPQYEIa_P>)LDJ7x3dK1i>VtXGp z!0cM#nPAe;s^}3C-B?CDl0L=ckJUe3?wfWfAgOAyh&0rB<9lYie{H#ZdZ7|AJ~frp z`p0cww~ZUq`u98CS{n^r7dEw^)mrN&xzN*Ismip!?736fa?~df*t zA}MYQVM1ROheg^AFJhQVV8}3&KjIQ#*r=bXFMWkU0$Os07)(9qIr& zXG5YqzCzb7wPbogO5>~@7Xh83GrKC82c3+hSpm6sLsS^Q*SOFoPBBNjvDHi;u zLntC#)6U*?;Iq|zB=ewDFe)g(;Zn2_w=INIoomo$kKjlb3^c@G+(>$BF+;=mFp!F6 z{!qV!ygx{UVQ45G9%g3#q5B^*Ky5?x`bRo<+L0UBSuC~wZ5o1bvS5fGL2%eE%goAl z_w^bOt3fHv0RGf)Xv38AAyLdgc1&hbpB1^hvfFBV3meUPJRuY~fd}rc>~Cx4#;0PH zyoc0C#;{~~NZ8r}4ugh)epPDKqxxqY$wY{7YYiaSL+87J3mmDj%NJK7)yL^8gmHtY z5O-x7rxzO7ctkybE+Cft%;|F^a+z9?C$9DVw}&M;1P~j3t{ICC9P0(*SG(WoMF#TU z`b ztax~bgwq=#dW?3OAs3ng(q+{})aGe4~d8hE8d^rQ11J3Jd21A11u@6S!T zvw$K(y7);G;!bQqluMRC%bb?o@}~R!rThI@X|m9d43c`(=?a02K)_Nw{lBAtT@+g* zf`>lK-!SYOHj+F_;|SMZE`m}r`$JFwju5aSkLC1cumdu0-?R_Nv01n4^y$x?o;iRN zUIWQW`%m&MC~w2R2@U?)#t;-422t4Oj{<1M=n^nNAjhqN2-f)x{w-327WDS%Bc}*a z$|XHD+%!QITUZdK4LZ&A9q9^ywa6GU_?7@om?%2M@=N$bbeKSIDWsg@W|o*j9r36v zB|v>*>ZqX5XHL4(KNfp0xPZZ)>vX9dfKL`H`CALNv<%9?>%$(~t6{l)d7EVgiunQr za<{^ud-LMh@*1QJ)`G&oXT~ZTF!&`eiZ6Cpl+H&iWhfxcXxMp_fp*5{hxmSIe%_$a&vQ%o7^`* zChX13X3xx)wVt&ey`E0jojwA<18YUhLpWg>iX)L&y8J*D(FASPdYn#Hc?~={Ygraw z3ROzEp%ij%LAxQ70i1wTItj2542t&A{%VD-n*au%bu+=4E*nM1H@9jLP^v>$k;t{| za3*Ql)S2qiJ4+vX+9lV;zIl2Cr%baa9}x2Uzmb%|x(}CeM^ij? z@?s;~*oix!p_X9`Th))d^^+Vr)Kjq+)!vVU9d(l%J~7w|X7(B`Ss5Aaovzg3qUF=- z`b71oQE)sI7GtB0tgldWERixjl$*B{1S79tNqyf{37e>FZf`rx!R_MJ=G1X>4?V0%!I1v8|SnmNqJBHPCJmRx8;3F1~YsOv92%!`Kub znqZ7=Gusa@c_Z#aUT_zBEzVu+7}92_BdN4jRKQmg-r~@6yD`<1<`Hdh!me2SytLr# zjy-n+rYrZF6$iu_r_$!Gh~<608)NNaT$-Yy5AL^_DvUL9tffB7jH#93rF5wuYD$FU z3lRhikXh+wKdtx^#&~`o=#y5uvD}TCWIrJ&DpBAS*Mj^B_A3>zm|LWsFwT7Y=4QQ? zd+M^Te4<&j4(a1<-Keo{Sv%WTFKaY-9^;8(P;t7`VAFivwxi|z;WzM2DSN?MX_uQV z;l};)khqHwJ1JkE7@WOhpA=d|c@tsm0g6&Nm3={{iWU|;5V?gxUO2DIr8 ziMRbq%r<#UsA5Q9#b%F!hi(~SFCO`hlfu=astx_K<{T0p9`9To;Zq!;krY?&$XqFL zN(HF6;y5LG`ja6}&}5Tb79mMS&io7VO{K?{g>-yYr?toNTqgki`6~w2`@x2G!~LY< zpVv!SfvCIi%G*l}(@>gs@=+HaTQW@s57@R%g}bbz2yd7vdV7H}rS#?_zr+Ikj-L3S zQ?kk}QN^`VFfs~iQen+M;+BEQn@>a^`v}~U=Iy}e-DKxUMIP;d#h%*oNVDOQ&Og<9 zdg)Sz1WP=M!Vhro5M*&;nN71XN0BH%ZYo(6Yi}u-yt_c+M>wXZ0K66eVg%;Bl&VHr za-d*p)&5@M0=~ed*L+fRl)9-PrntY;Aj6OnO7&U6{Z+9rYi~BYcve-YAk)RxSbeBR z7HM`N{&_ z=CrFKV738V9p_&cZIr5g%29^!OGDQ=XU$u@-=&R~5sK6#xXOiJlsRYIq~~XawVA6! z;1*jJP+k@uHzcHug#Yu$K*ZjiR^X^q6{&rb<56dXVm8ZKyoQ`aTWL&8rThe$1#57s zn{w++dyKJ};jEVb-N>IB^Sb(ex{eY)L-K&hvg8_h2Or(PL9b=xzj`EIy;?moyb8?( zytDf7A)v{^6q#J1d&b|i(iwPrEIG4|pJd2@rj1$m(( zBB8e%Ih!Pd(OatMb%>5k%)cj-%>y&uJGs9vykARVjgM6Aj|nc2f(5uu!0?WfZPnM6 zyjG?s!N6b=;rWRfaBlzuv;FD{FL1B+FX{vg%w3RW0jLNZW#bERL>3yu*vlf4SwAXx zgTo{LSD59$>HdFcHTnOwya#B(|G?xDtlq-QYoi@dPpkuRNB$##**VRJNF(p{Ffldt zR#(#SB7idh63phSA3H0HH1!3RVU3OPXGB}&6I=SGNA30Qi;(t=|I}%Z$0}W=RRH&o z1aSWs)+B5Ft0IlwTW~tl=m7T*1rYSS9txvwKgl9ai9SZPd$hoG+oA0l?8t^&Ue4P- z?sPuxxHg|A0XEx&JmU7}`@YS)h;}k>#F-MWbAYg&`dfP(hCG|eV(gtAZftXAU#Y2tF=S4t2nE~*!xA-5AqCO{rNIZ)1 zXVUB&BwACsmNp%C{}D#6m}I>zRC({&Bp{yPx~yN#E68@-&PoEj@VGM8y)P7A^nHvn z6=&lAQGiO@Gl~%po4xG=3d*If_l1?xCDorftG{Ls-T{H+kxc?h!TR5tWD6Qs#`Y}) zn`p^@nz;MA1-O@gVpcf%_P;j&^qYIVh`@~2tpP0Vfd6q5|NS!fU*N#IGN6(3$!A}; z?d$Y<`L2fE_utA@zQ-P(-aQAZ!3pkmX>A?mB2!Oc(9bFfY8VOkSGLuI*G8XJK zsJ=S`5gzZ0E3FnwbVs5RCNix?-Vcgw;-8KvfyVJUvWeph*Cw1V0k_MdtBm$4NC@rv zhx6@Azm3P*TK)l5paj(Xh3FrbO|Mz4#LR8LT{B&J7Cj!Z=GJ--ke33|L3)xkz%7JR zgA_47v#j6XUm(PHydyXXbe-+Wi3w?wxORGty+8;L`p(DPIweFQL{V+A>H`x%MR}wz zQNJJT0GwFN=BKT;A^nPq_ORR4%fswbT=Xfx;mtPO!6n=fk!t~Q9AS~9%fDvl611BG z+-8NmtBZzExasXh0C_CH?GLZaXYB%QA(d#cKNHW9`OvOpYzfVu?19s$;FT`} zDlL$HE&RW-`2v-}xdt%W%P50lu9O4fBz2dEfp4!jQ$XYgAK*|QM!3`KJ;e3r3V0|$ zt~6nLuD@Rw9)0prHh8Z3QJYg8nYRy|K-OSxVUiAX(LYzzl@jalY$M|x)U)Bg$M!O& ztS?P>(@d z0q%U~Ijp`P_ukO(Je*MI`pQK0%N!K5rS1HmkqNXU73+L(Y`*AzNC=?5dpuw4&aK6q zN2{A4IAsdd99qZG5?|GHX(^tVnPN(;k9$xE3idzV{qWC+&4p*q&R`1I`MsE)-rt_? zUf@%`b}OccT%lV-PigoFGpNTohS6ga?vsDIlbt`?`2$w8gXBp|$`Q7|<3zTBU#TOB-HU)w!oT{} zxS43{aWZv|E$vk4YRI52>+5XTF|##$$3-n2mBkp(n^K#j5uEPA3&NDRn;VC>%jdfj zz$%x{0v-$p*2Tr;VzaC1!yE8S7BJwx=c-5=uKvFoT|l)GsQGjbw|u= z62uq%p9>P)F@r!%9VZQ~Y|~MUCH$Sab(wWS6OxFW_vAXw%JVUxE(>V;;a$tPwzf6^ zXim?}q_cv?p)#~jb$Uev&YVXwY)1Buz%lF<{H?Z>FB$@by$cL&S$sZ;1P8mjyW88_ zz^uCC6xs;H6htl6K?4LepU?ZP%C5;4kVQ;##Q_<47y6&(^~_m;g)v^~P0g1$Z(G1` zdQ_gTs|?ZJbr>lvDk&+6iPE5cMCjvgNr$Nj zNZRu)T*L3=a8Y1^ipwFKLry?n-j z0F3w78(BMwfh+aZR%znQ8gFD3SHoxFb;p!N0t9>8c28Zy_9C(Ns}5{z>KE{uVv*>c za8guQ;gAgr^tY)bAr5CR&n5nruCA=s5aIUUi+mnwO&~RA zYJVQrV4#fI4TIVSPr?|~Pq>{5d`0eX4QJhAB*hYqIEJsk0!$3n4iY#F>)uF9)8;Tr ztCJI?6qo@iEtb(y}mE0a$QqYi+G{^wr`9fxhx-&>u@$*uD1~ zpa#oovS@LU&}p6ah2%pQqx_`)q-C=yEU)9cCP8w?`k9_tA?J6=nCZomuqq8a6QNz+ zZ2IpnoId9@nT?GWomHCXq>Jtr^!C&GpL+(H?|?40c!ju4<9XN#Fvk|!eg8Alo7 zAmk0^ROvsGaB>_|^s>fE(~81$D9LS6fs}A{ccK!~on|+-0IxAkN((7DkdJ+=c@y zVsJ>S6;jxW8uLVaX(#rxOuh74)GT+C!O$MeoM2%aisBnU*JH$3^@KG@e#ZaFU+-o>F zX6rp0(R>lBmUI`XD!gjwOkE&0;pPbPQV(sCl2wTWkFy|JgexKH$UbPXJ6cWS*SKkL z=Y1D^XzlR~^PSeI=MUz#a|b-Uq#g}r>Z07fGxog%_B`j_`Zz4R>g$olyS<)dwJ}N_ zjjA85n*RM*Yend(gwU^;K#<@2NJBnH!2ld>`K3|lV;9^O*dNID%g`UsuE{-a>s;-9 z>*)Tp6xX_n1n$fS50d2SbY7=*oei|)YP7O?5a8uo|3Tj3*fJQq?0@fPLqfnFXFDms zm6?MEKh9uBY6;uFqPsboPBr+`TPq?QQapQv9K1Ft z92-?JTgHQ5q?E4+0oIL1G_!UNd}Lue%NLaaMd-^EoF|(1-~dkQ5mP6SAPl)#^oJsK z1oKx5+pDsJK&CZL=(iB)B7F@|>2+Ed=}xlY*S!AK>)Bd^duD8GtgMXs zW_}m)o*B>KeYL*Mp=Bprgcg0q99jB)1JX^2wpASq&djeHU-BJHRz0g4 z61soPHD-p|nzu&^o=gSih)c?z9F7ReQ`19q{Jvq-s%g-lG7dLT+{j4n<)a>pBRN+W zhh~`#4;9=frTS`SI60gRZNe6`$SpQ}FpTz_btJnO!w=_I&2lH&hW0GCYfVjl7e!>M z^}BM_e0s}Yo~EY>GTn>Dxr=IPDVJf4eetwko3pwefc8TSes14!BjdaVM!Wum_i@l| zO{DiIDbiI%$p8s~PwK3VO+Xh1_XkhxF)Z_1>T~54f;5))cZw`` z!fo!I^p=(`WqZpvN@?KT>{gv`xRV?P9#{9IY12fJ%|rHc1g{Hmvd%>H$mEA#JJmuO zx0OX1_ox>qmlpLxQPzt|zsQ%hH@Qi8UOS!^X157UCLa5=Upb&yu~E<-RQgn4?(30z zOa0QbA2Xe$Wyd0n!Z)lRx`vkHjsj_`VNlelk6svmRwElx^gO4$HkkXbmkS`Oy)yCY z7WcN6_q3$z8>w(lGQ&F!khgSS*qqr2wDmwS0Gffp>sRor4#y~o1Y&fL5zQ#Ww%O0^ zF2!pgKSMudV>rblXS7WLnA}3Tg97TFSuIr@o$wy!4R@+C#T=Ljr3mp$?!(WhB!!SX z%-X6!>TQ_eRz19QV#qI2ag~|){gxN2!OqU_J!+nuOiKewQ^)NkF7rod1{??N5LXM^ zQT^@!UV;&3jlXnuH=tc8jNXGnv(}?;7kKobRB9k4#XYuU1%X#Ymldb|=>GXiFAU4Z zG~=`6>2J)$=4yLAU#pN<_>RNEjAS>z5tdG_3K5z5%uyS#xgTFoFyoRptjVJirywE) zGNIl=#?&UEjOvY<6Pd^a)Yg@FepbhlL^YY1p}rUB>y}G=52^P!U~!HP)RIm~1hKew}|tQtZU!71Dk5n|W`oLao3bH(Lx<^2PI^$oGB(NR4cs!`bL6 z%xR}85w4yf*RF5mhrfj_ppKKt276?@Fk3`Ti+PM=c~IP|k1W}C^YRoK#}u^)Ns?DX z+-_V4R`Y3^`im5GIGru)y|~^ z{QM8o-5tW?*kBB<8*M*dK+kPKX#A9&ymyO}z7x`UdfAKNChoJ4o2gj`PiEbxh8!-swqh(Il$UjtT;nVFckla>8S8}`*0 zB9NkCUPl=2R?4zJT1!M>N|F=vl8Z-ET&@-vcy?K=Wn5&x>>y|Ushz@6>cHvW+ zd{tj!{%gYEW1&#J05#}fE2&d>lX*a6zP>7yYnGNO;GoEzqm?LCledAUjBnfJU*Mwa zU`*1L(3O>I1)P+l0_2Xgdgy7+o>Vqj2av6*?leYu_vy6JRNE#C`tY0Kavm`#7|?rG>#5)w(jNaJZ0-*`FPhB#?bZWz~eu-oi-Db9%x zP@*DhDi-x<6*b!R9{>^2GbuxJ6x+(->gWqpJ&xKN3CQfg`kB=i8XPvL`JNi<1peq$ zV!WFnhqd=iFlUt_`#A-PKmtV87;8kMrqiYRN7QYc_@^_zA%q%+r?4(VgCb`fBdDPxzDl=s{V3xo5C{{5Y~xxF3!k7w8~F-WIRx9~Xlafge6{89?2zR5c2 zWTtzYb#=@-H>>to5gOD5TyB1XVt0RMy4hg9`6+lQ>J12sPQ^X`j40|04_OG^6F91C zc236|!hD#N)im~L>({Sy>Wd0Jia#o;@=c~ZCDN0k2Cbs(m|>Os!@&8gonW=5`v!WR z>ZTvb48vT?$VQ5CY{*xvYb}>4$-;-yY+Gxl(6+Y1DUVRZL)IoZ_fzdVE83 z4Q?AlZ#t=I+blDQewTV;B%3G!^1^)`N4bI~mnK&1pA5XU6GrzI^ywX8uA$55(T=RV z;}a0}y=5XqK_;emo6Hs=IKObKx7gFx zoh3zF+*5E4>kaa7llzU}9nzcNx8a9BOxH+yxnoMZgua~#vRQX#>D{ZF$@T*>mf%92q%th2Cc4zPA3Bs(0~w z#4!B;p|L%fuHEo1OFKNCXy;JNFb9(T@1<7~9BEO=nDe_CM+Xv(kzJDS$q1`bSq@&s z?>J9%i)5QPcVxhMf8n?mA;$f{i0f1KOHXbHgnBZXrio!H@r=W*baf;8hZU<5ihjrF zzk}qUCD)}MTkvZzfzfGqs!;E2*Dj&JhZ`r@lwuH)?6GGBqxiLFJ~0Cd1goZGOBxBO zLpYLt72Hb;ry4hVD!jN@gum`cGjHdQsJ?Y6We8pe!Qp^TQ5Bj78RQj zcRl=b1Gx465$Ry#Cv*9jxPW z7-Evu7f`hTFehgJYWM=`!7g}td0AUq3w;JGp)oWGd%=JC2N6I;;@rS%cewxKF;ZS1 zuM7|bWR}i{)bIOiB7OkZ4Mr3|!~vmse*Seej_N!EQkf8>*?f+0o-JcPm#>S zD`(D@84zHeRm=<>O$ito85m&cf0#Ks z$QjuS+F04zSQ}Y85^%uM3))!P*elrT82~2~GIBOEFcP)bbAttr4QvdJ2s9W77`0&O zrHrgifYUH@fH;_7=|#*e9gXY>H0VVv^&E}I(IeQ~RGXqB( zdjdw*|GJU`0nn!ZhjutwSp&uYTFT3-1$@K)R~NXZpLQT6(}*km^`NUB|F+CN!>fBi z)QL?Sn)I!)ZeAA3=&1Nxl0f(5^_0PFNCs&uJav2Js%%n9k)={gad@l7g5RrKv&IVV z$1m9m^QRkxVvUty4alyA(H9{ch?4eD&dXn+VLSG|DJ>W2zsF0*Pd~h<%i3(RHrXA@ zWJC-N4V?x@fcRG-Fb4R(|Cg`vl$~`umA|gYLt4Id0leq13^#hlqr06GU_L2o$XkMlsDRf{1F%zY7{$j-fv z$_#IKr?Oj(XqBtMlJ92<0e;7c3v4BV0*1-FiTztMwQV8=6x7I_?DwqaJHE$nU}@jp zchcomQy7FD7>x9bU&l!w^DZ8x?40yq^9hWI(npqly~i+7AIu3z@5-6%QE-a2GGk`V zY=IvSjT%Pc{73<7KazQ@xS%a1lgi;PP1d*Y4`__RMs=GQJ{LOQH#`|iP*^dAF`<%- z6}BPLXqe9!E=}gr-|wS7_q}+^+^K|cAc2)98_OmRYe3xX#`|s2X~-|2qeM)Xa_K)ts|$dL&~XVRu9AY98F)2vu{^JHP@#o4(tpg5{J~j-jsJxd^m+p_?8jjdr9(nSVoh; zGGlsX+ORWx(Tdov@(n-h?hMck!!tOHksrt7lzGTwLeiaT9(qPZHfPD1usRWkn^sqK zPnV0Hucs0+#{aI9D@Et0U0)x5%8xOIODy?IwQ}f4uCW$@S71**iuq8rQnki#j@z&O|J1JZu(A_5WO~$F=DO35;|>ZqR@c7^bbf8p(Tx3 zv^mW|grb+JM_aHtb>1@9v@i5cig8gvtn-|EUP&7i$r22lLL8PWI` z5FR^{livyG#bk6Ryr?g8NZ{+JA!w;_p)tC_a{hOm3SEnJ%qY~s!E6n7g1CtcJCvO% zC3_?yvUSBq<=NWx>PBNa^hP}cI@bQz1Zyczv_02!`Q`~{1?d~Ej`OdH0ulV~?8;Nv zdC*2gb#%xvHYfINVI=7EX*^r{GEcj6O<$Ini&BE|1IW*kMB&}F<`6sds(vo;wcps}v_8iAH>vZj|E?y8_8r$MQ>!m4Bmp;_OZNZDsq zD$0w5XG-gtj<6HP`I*WO45gxG?d3|UKkoLowwn5GGCO25zm*}i(j6{t`@!g}I#B2D z-Ac{ut*77h+FdzerZ$!95K^?3E+%rSIXJ34oa}$iT>jQJiL~NT5pn4Hpv94Q!wi}P zh7YDm2)qY&{rq?HDVj(3N*9VhVoP4J9&}QIX#tx4)Y2s^9en|Hut{9WS>}3yIf8yW z0Xa>c1>&MA)2?j361`eM)ZhzCcJ#f8S!k3Sq|Mu+yH#+4QmwNy;`bB035IlSRJVyO zh5d2#vcy^2Wn}`#MHrz@EUKJj<_a+~J!!t)q@Dgb^Q1LY#m@4W(n6U(HWRGc4WNlU z%-S1E(t}lQ8s0D^h90$zjC#=~^b%lR%O1MPwJ&oz?88YCLe&W~!vbmTP@pK+cK^Z? zCw)H%`$9-b!$b^^`yt^^77VfyE($b4&=#Ckv5eN5!U-EIuSnT}Q%4j&AtFr?HgX1s zi!lc|>R%OG;*fEAMgu@@?e7CVP*t!^-bV?WO%AP0e}WQ#1{)JUQ^?$)9gco-Tk)&^ zMLXj#tu6*Z(>qgf4Cxq1r7qDtw+=)9M2(rUIWOzw;+e9)Dhq7Z;)+DT;UQ8;V%ce5E)>oXQW>)TsMH*ONAn1)_L&>pnNn?4h`E zR)(?Z?n+68qY&6j?m92L)5-b zae?UNW^h-v!!e2(EF*$5+8ibh)%lB<`KyF_&j^e!Cdbv0rDb%)mhJA5ci3t0YO}bq zj2IU)X^l~Q2V4C{Wc*V$M0A<*bS3pJ9%)lC?R3E>!tf!Q8Zxp&cpfw>e_M)~2obA-UbDz$lh8iAcF0<9WVTde5-~kfM1JY{9^TkHE0hLm?Dk%$yh%tc74c_Ebr){jrdH@H z4bsYzA(gO(qW(5*lqePX`}i~!Zml%!&L@8dB7-S$ktyM1@PU_dheOw>H=P5o&HLdg zYANffR_CRUZ^dqzb`dI?Me;i6*-m|ZE9cQE1KNTNl8gAaD;ej6E+61bT4Mf8au@i0 zVqHM#XKqfib8aQopk(fNKjN&S2olFtg4BE{v)Pa;!#9qI2K7l6yK;9;mlO=;+$E8; z65a+%#dV7s0n*}-#7pN_WR!$J^pn4=qxsharSYG3keH6mI>A{$|GF)*foscabK1>z z$#Dn^C&w;Y?pMjDj0g{sK;$!uW@TI5Av|B}=b9i`2~MMDAteL!;bwSpZQ{?&(}&@- zn*6J(sj*jep$mphry(No%UPkvck`I&5naK(mwwZRy%M6d9y@Pm=+M&82+11-ez;T& z?08yIHQTQN7Emz?P|op9dqaXr)@_dOzVoaFt&W78x^JoMp26e3E58wwJ}|rPmtEQo zt2#f_G48M`%~qIIkG4G; z9lPj-uYd}#hH-JO3Tn8~r|vDfS-1$Xa6I_Z40Tc1a{a~Y{r>(8jNTP2eGM=i`TW;E zsnYC_N)Zd)^nG*TF}PLIkCWW{US|4X9m@8MZWhhBztsV+G6?l(S0B%qtU!-B%bE)qvQKz=O*v*&I5P;+J5iKkx%JXiAD6O97?GaZ{M~%N~&A5LZvTKe(sjSu&S`)jK9}ZYH8pT zlw)gB*{y^X1Kz{5Yxbmg-cnxB^a(3Pe1H_vk3luu>EzE*bHj1C*;gYOg6QVqJUjTE zyf~2_=vSvbzl}k$H_ms-9w1>gGWx7=*Ubm#=Z8tj5YMWg%f;IUKbRq+E>bbP*xycE zQB&$U%RzIFOw#=}>rMijfbY#ktrsclrXzT-#r7+%$_1C$TWWAC_I?mYzR~p|`}>s5 zTLOq^Qd#Qq$NCdVu#Db!EoGC33)~OBL;G2f^hdkBk4|-<{&>eDPc#NJuir9uzua2GL(1mE%dS$~Wf;%4d9Ye{KExa>QL`&@GL!17?081JESih8c-O!Mp-gAKMGKm^adioPE-{f3NDT3_?U9ez z^QLLi2Zb7OVe7%%<|dr|K}Y;@pbDzBx9`;Y(R%X3q(&%)(<-iO1UNv<1W-#5n z^OW+kr^Df|0`hcGWmcIYRl&d!2lOnZl0<>`0gdQEts zeAai?D#g*TWlMjDJqaVmlrPy=pIl=KBc#o8t4%Ws66}p?PzIx1Ga{3Qy^HB|eZ%56 zQ8eK8zG$d8tUT)Js2<8q@Lt>-b%Y_4?`$??%C#ZA+B@%}yrAe%nzm+edE)99Wip4|LbVJ$9W7Bg zID1FI(Eze%B}832oC%G1qH@8_gVidJhR8xlWQ5m6Y z#~u5*7d4TWd>%)qj(PNXzTWL#tb1EdQk~1yS$GF2v<5r36@3HfB!Y0G&0&;HuE+R%8=n`@S^``6p`s2vA!&WSneBQa9)G=dk{_owJ;f{R*?qdQI*JYd4 zj(rLZ4Qibi2`DXV-!ZjDm$W`)Ft}PjomK+x<`g0b)HZImbKPz~a?X%%ABkuLX+@TO zJyJNA>bzg~RrZUlws*t`76`s?JVn0|YNE2WIz0?)q-r!YTDH@CKbZI zRZ~WJ)@i|RN=DZ@UDS^LHeNn}No@q{yP>P$?%sNI*g76k+GaC%Tx9A%-jw=hPH+rq zqwgbjZODZtV2nkvaA0j!Vg2d4GQER)V=tCc-d`Q_EUHfqpRlmBrm$IrOcOT{KHGY* zRxN$|nSv0fFxAw(`7vO(S zEWN6Q{#-68!zcS>_xM)_--R?ePwp4f*NR0EnaO6ces}6NyC-Aips|Wmzs$4>n0x+u z)e9(rvUI6mvwKvd84|`?aQlkaj~i;i`4VgytO7|p zCy#@^>-^HX*XC%_pIMG`cLq@dwL z1C}6y8OfjiZ_p9N>jB{QbsrU3$21<%y@9iDcv&#zU9RG@>QYMw>KGqqYO!5=cauTn z0n0ME8V6s2G~F{%HcGbq@en|NRx1s1kl<*`134ikW_+H!oURK>nS*t4zz9l#DVO@6 z{j7s4>S8I2-R}X*?%TR`;CBW;_6VBOX|vG=FsL9C1m+=0CX2_sChz^veL8y$gffil z6M8a`QEsyZ$Mo7y3FP=LJjuk&Z6V(F#-tOzGXSVY^K+#xEv}sI9e~3};W7~~pZ2G| z=@1tpPo9_S8EfNsE?%m1m3zarcfQ;DCg_Fww}Hk-whUZ+-tha%T+Lf^2yT3tto0COXKrNID zJ>IABMbr;JmD;5x)`1Y4jUXff(o$exHB_QHspBGiE+a8VAivhAKu)iWDfq>}+p~*~ zLK}PgC1q~3ZHrNs>p!3s#hBrtDjbOje1VR15mJ1EDoU%iVq_r^7M-_NnjD7%o>wf5 zToa8vZ&jMt7N~Fe2MEJ5WjsbuolNH)6Ua4#_OB_x+9^M7qg->Jon9pxftP=bRKm!H zpTG6<^r@VqE<*125zY`_9movI?!a~H!*R2{ufIg`U2uU{B$}zGQ@pUEEIs^4!%U3> zIlm6BScBctun9Ikq*BdKZ0!?q2A!^1tI;O_ViK?$B@r8YYRr^%sT(!I%%xDsgcRKl zHf^hxkq`4HVE+s?pAFf$at@gw z-iV!WqRa@-Y!hnN9hw8L?_(kKF`RR$Au_Kl9&V^AUeL#XRGT@?9Y^bRXz)H2onZ87mMCoThj>KBzInY0+-Hi`}0r0c$uc(3OZA7{F{kQ zTWEAzK$G7_{8apPyk?sp&APnR{VQ{;Rml<;)(fXVihPFe@L)@%Fk840-~SoJN10$A z;#KV5m-ei_3)j_G%auZmj?de**6LWByAQ@Q+NZDUMiMW7j4}*K5snJ&L)u&$(Cfc+ zTQ^VGlr{tbOVY;%>fBPw>TeIxiT0zSpQ7NIgGK)Ox7IP>uUo5}W?78Rl&YSzzL=!K z1X7^J;5Sb+coA+%h&VetJGtVO2OAGw1ud|K431FaAN=y?7?%!+t~@Ek%0sR!+qUU{ zC!H4|W~VJ)QMTnXT#AdHcUIq=XCHDhIu4NXLK?4K;&I1C5(XN!2OpSlc2%8n+rFp& zb)xZ*{p>+i$ra2?gFk+xH5O*jM20m=)1Uk_OL9IaPrHg8k7UxbiT(Tza>)WMnSrbl z=>dC1LtK=-V%H!Iwuq48lfvq1+d=qoO}1HM`QVc!^*`9$vE_yM8{2N(x z6x;8G>WaoqG*)!YM(1Q$`*FKv`dFqpiO0X}33O$t{~juD|B3BR>VxMq@K9rf5B2Fu3oVqoshHyLx=v$|QE^R2Uv%?5pE3Rx5^CzO?N_ zCJ(jGp-kS!-V5^QK~6Yjl%ueZT(iGBfhGAJCosx0l^wR_% zqHD~{rS^ya!F;D$m-oj955vD``PAO`IVs`Q_XkA?z80IEl3tDN((ccUdc8@%tTOr` zWx|-IK)cG^)MT*mTklx1~=@&r(jwk-!0 z(%N5J!%nor2~MyWHCdEwC;TtRRZnr=)vlt8Bq)wG zW`fH(f{xf@kR)eJ_b5rl(wx6AId3ju(c#Z{s7jHE3?8-3ucABNS??Z|bMA7%t?vS4 zeEIJ9pBg>*g#5qb7q%46_mcfUEBGRf)fcl{(v2ryr1;~ruSH z^(%tzodpE*#UJ-&v|K~w8B|daK6*1qL@UTM`er$NDKJ0mk`$v!BA9WIw)oeC`|0JKrr40|-fyhjWj+ZnBMdx!RUcwa3&^3hsCaf2=9W^5= zyzo)F!5O)1jkrl3vIZ)aZb~Wk4`qv-Be0v`H*cYYN{b!wNa`Z54Eh?me<)E5Qs+t7 z<3)>xvm%+K!Uo|Hb%cwQ&H;K{4UhRQTUNI+`Vfyc+ou+48`iqHIX^R(-9h1qZ0s{V z^faafxw?#GXx;gQ5u<8Qn{y;59<15=jHa%YeF5#Z9>e711Nu!#m zL9i#eosDoosy9N|!<$g<9}VWOjp01IDH!2K40`ISX5A7G{7WUK^eOyZ5Wo%C{)e#f zEA!eu7~nr0e%!@Xbv7!LLNsIfXi2gR)f)f~X4i_#0vNT>EC>zBVB{!%Bsvm@Y3H$+ z-+Jy3=FJh+DZQW>SB_%X^Ra%SN_&F7nuDzr?u?egGjZkSw~r+B<`3p7J7i>IAvuH^ zA`=}3=*c0){rOE?7+M>Vk^k(d>bQbPD#_fCS!q(9O;Ez6q%L3ZqG-lfvQFZLSk0s- zgU9!J5~lNdw^#J>SN0=|iz<$?(x5?zGyccGg)SafQ(-)IccSaB1VFQ zkzLO?G2W_^Oq`t*sMxpCvCwUs#ORe*4+62pLtTVErA+rn0+p3ALRqTB+`i&6SL%``sxsMl zh+xN-oln#C?88MW9%dNC;a=DTB@=3c@&vdAd9pE8>+-Pr(Ofu}LQ%j71bvM$1Yu#$ z+M73DXcy$*k@(V`8ONgdC|s$MgXU^?b;D6NoYxeWFa5(yk76vQDCC)q83GMCs1g#k zL1i>QdT~6*9qOLl6k7d}yhGKaa28j?ECCCN3Ik|}_)hO2Exy-zN7QMiUfd6DTtag} zGkACR8+U0+65QzJ#sK6$(_ge?oxE{YoXNu+K*kLf6yMWTvoqFXnX55EUzph7EamLu z5JltaxTymN8CMf)EBLG8LIhNn0`b8=?w!6ZGS~ERc!wU*}7;scqDvz$! zD>(2_D9TV9#!XP}f^3!SW}oERU+&CZrY&7cM&vDAM2V;RI|JgV^~723xv&t|zMAEU zw5{ODRkFx@?w#=o;n3-N5 zg|^`6mZ(B-pRitfRF$g|a!BOQ zXALU_^tvghYCV6wis}`zoRfjIAE^}1{Z)el!gstWNV@)NFyq)d(S=#9R}Z@qdJgWS zisk}Lge2PJ8xRdY|60`UId^?4yx&9|b4PLcB<^WB74gi%o2M}tl?yr2xM45kBFEOI zm0C+x|JqtnUos`YwwVbdOc{5C1?#-u1E3Raw1+GkB5*@KRJ}4qwySJ3(fa-&9K5RJ zHrQLN;p-Bbij`WX`?_Q7wM;3*!HQ%$_v~;V&lN95@`&mLX>%(YKPvj|xlK5R=_vlv z#%*NR+r^!d0SO?mY-^gw2#su$gf*+{;8mXEypeG?b6wC&6C|3+D*MUcGC{POC1G~7 zxDWcRy~W_ColPiQY#R69DB{q~(PWHyW%I6ZFauTZjoNrVo8=jbfPb%$=4Vhkl87#0 zDIG9_@R>m?kZRSwt_w7t?B^$~)lvpa2$Lzwvkx)SV)EH;oPJDmN1kel)?!)uWUsh# zC-BAD!AYk%x?Qq5t@OpXC(eIdP}hh_6tP6g`t3BY^Tj2!M4T{u*O2N@&sT$C>qalJ zUH;?NE+1Y?lVAvbmP}FfCdk1<7+F+tK_2(W8PEnA>C*F^gl&3ZV4;jVOIaL`w z#O2o?;WE}c*8mh&aw?=R>o-HX`y=;{@rn{x z0dXV_aIu=>w7V2Hqohr+<&nWInn=T7c4t&~1m=r2Clb}}D-E?f%M6G8Wm60{M5Rmq z#OZ}6ci0S=ubk4<++v-Rukdl(Y;;qV%1672aXO=ckE843BCGg{)BJ7F8e|Ns@He21 z#)WUx$kEoZ8<|eOs%B>+cLSyOwV8lT9_*^c^2l*eJN$X0R&#A)82&Gu#$Y^0s+g;0 z%hZKdt<>K+l+UhXbe)o%yHo?8X8)$Lmxn}VK49&@_hE!$PB7ZBK%UfQio`54;xNh> zS|uT7(h=j)uZjzHBukWiN;A#;QqhXyS9;v5zdIZ2TAD*(8iJ?z?AlUFkByg_zD3dY z=alZ!bP}hfMbse~M%YI4f06di-;q3j+~{UwV`6UXY;0_7+qO2gZQHhO+qUgwW8e9F zpFiN9=iXoXoH;$Gx~99PtLmk z8@TR1btjEg0()|D1f5D$Df{huVIRza4-}-J=*=m_98n~%Bs|0?Rmo~Vm#VEnMq=_88S* zH7L=Z2uu(2GdxC{9fX4Uix=UV4>Bdzs{<#kReR@SFJ|eHq2>i}@mC#(n7I1s;&2S* z;xG+0bjgwls}5+3ZL-!>JZz@28GFUq!3Cwd`57#_loJX&-)Zy7^~g_XFmFZvUU-7b(UgRFB7N~Fw-?~^6+ai+M_*Q z^fx)>y{KRyPiV8!>dv_|dPYDeYLe$L&!X4K{nHpkMlKn9iQ03VdZbTBPL0_bj=pUm z!=j6b81*zWl*tVvPxjgskkS%VY23jmtDsKnZJVf>6x{0QwSO?|v}=Ecm` zN+3a+-~_Bjyw)ujy`{TML+Pg>T6VS^^?xt{cF0R@K3KlREj}EFe?YCv*t_mM9jb-} zlY{@HI$afl^`EUm?XgJ6z+@M@jO@trx-I$ZfQ3qqcEF5n?*Yoa<+pEpAV=Azy(;YX zUGqUTxC2RetyCav*%JEH`UV!(LPG{CH@WPBQA-J!L=fl6FqO7-zdnoO&&F5t{W zj!-QHSHH*qkk3b5%`4@HS}0|4b*R}W_T6k5hKpITd?7P0xws|frX?XlIJ$(5J(|l! z>#?ZLVBeTs`ol$fuScInp1@*>xD6k-)El@t9wbbH?uFff)-Nkvrw>w?oxPnu)HM1^ z0&q+gX|4n@B}qfDSiwX&hnQ(p9U_P=|Julo6RxQcbA}ktUOwFeQbjJ!Z2gmIE?Xee z7113ilW`PcX%tWxv`K2$BlgtE1yXM)r}0Tsn&QsFO8j}1eE=1N384JmY^hN^IGFka zWvoA)y{QUIFjAz2S`*TdWx^Kj@&938ue6byXgCw&Zwj5 zcy7n(6p`t7dttP%_gps5_XixPTq8%=ngV%wdhS<^dZJxnUXPryk`0b_i+uvg;dGf#?7FvS{b03k-|&!a}knYV^66eg`xKv9^PGa;9)Bc|z@0JWmt^ zgBmbz&uss_wA5sWRN!8H-(Kfaefs%hp(W)f6oT6q{CuoC-iEC0X2sGvaSXze$bd){ zE4_{wWpPtQT8R*#O{OvAQGFV1pGL%dK(}(?{6~e>{YEQ- zTF0upr>O&>nHqX6+d^eC-7F zr^KzeIh=5#jQx*%@$!6fqJM3b0)N(oX`Nfzmt&D_KtBJNYd;zs$Z@!{1hS&kQ@!qe?#lc$_svuVkH3YH@`p7zZzAS9q$|Brg zfkfzS2`e`tkr2Hh!?ku!Ih?^QeCr!i8X!wadcE{88XKkIt(AX1UUvC(dxB(*=%~G* zN`sJ-=nU^z!B>wsl>{+ga`r?En)hbq_52IT<(^i{@P#R-lU0Tg?XPmd38@{}8Eb)|B zid$r9(rfDdhUu}zZU$?$iB8#ek&E%?5zGQ>#X`a&A_B+|Qx;|j@~|0?PN)LZ3m4`( zBaPD%^}JCz7zTynW7Ht3y5dScg$eF07p#l$WqKCl?ynme8&0x%V4GC0(?AJ+(c)q( z@lz9#`x>^B`}hA;B5D-gS6`z?@b=7aUp*W{u)|@7Gf>Eg*Q&0z-eWm9uW&M6yt`AJ z3j#)Ae^y$V!b3rXvj`#Ns|nNAAyhBP$ANTLA=^E^PvndAVLBnco+g7NY~O zMQ1cZq=0LyT|~tuD@->mT2x7^0qOY_K%4o|V9dI*Jf1Fr-Dvu$v+*DEE0N5uIW&DV zCYrf`0KN|i*>iW&eqC8n;Z0;FS?|Mx6WyIP%iZ{GnE}G)SqlKE=iOV;e17q;Fw79l zYNO-}#4`ql7ZU(f8DhQu2*nM4_D|n2cA~_C2BNQj!drwfV|1PDERuYi3^LVJy~3l1sTc)oGttk;(joY3-?7nhQqO5j3D zqp9>i0MnTQ?Hr&jBzWg0GdMU^_8Z}gl|fVB2KpRP@gNV9r*lTtLk*zC`X7q326hI* zGCSSolaO5KJMme18tAGG*`7+M9RK_>ZpJSN99A6`&#le`}fxLI|@Q7e>JHS?GVa(9dG%-eI%4v{4Q3yOZn7eVX#nK%Wk{47pWUeU`nF105hpd`LGfG9~#SDCduyA%*L@>`# zECS7vlWuDlLV>n4_L)iwfwWRB9%bHgq2okxmDk;vW60x-PYi4Rb1XqBXHuFCfLy@F zP7`W{#q1ZnQYHtb=NVef2TiYG&pD2Z64{{~RR3&^qDQ|9Bi0wZu}1EYlB2;w$gp3o zA-`_p)hr1KX{zC2iUThBL!GR^*hNAF=M#ulaS0cPF(tWG+5@~bDNGvdMTDOltw7Ye zJJYWTkNPLXC|Os*6?Zlw&AdNqRj9gSX^p^ulwaLdqn>AM8OrrK+$dU|(YnQ8`X@`e zkv_3dJ`L0En*(+T=xz=aKnXh|9xBwa=ol4XbRAKK^;%A2R>D+-jKq?A9&X zjaW;@U|q}f+}}Wk3B#x1^XT@L{MutDx{N4Vljy=}KC#F=WS*6WIF+1|Rj*E7J2I!> zNUb5Z7TuJIEXZ^-X>}I^9bJM9CWV^v`8*we|J<>zx~EZB$ev9 zIa$X0;{PNV(^Uq=_JkIaZG&t=AR<=-?)lh55 z_Dr`dH=o-hQC|mq9>Wc)&YrtTUV4KXoU_rN)lAqQ)Je)|UtqY$SD z`|O`6jLg&|AT}5N8CRkv**QI&lK~@Vfyga^&r^&ZArZ894Hft6=AoN%pt~jGbl1pH z;zD`-IhCi>K?wN+o3X2ScB+0VC@A<73T&H!g|IwXE2;?{6-ie$kkPLGQOJ;Kl{%{! zPLvWEEp+2P@%-s>l)#y$tGYtT_7_W=!s&@kOVWmA#O!FPK80WlxnmG~LWXZd&*Q@d z-+d;*djzD5c!^7d0)CtRMR6ZX?S&qg#fde}(i~%y_*}$UzPXcXB<02YU)evjEqU$C zYMApbs1y|7vMY9Sv{TJVXD#?mkLi+o@2nUw+Qy8SeG%YsYAAO6^<;h48cxVRjMJ$= zN-}WC51{huggWugP6Ds2Lf-20zACex4n z^D$%rdaigoa{OD3B&NIiwm&ty5zNptVWiO;Z5CbWTV<>{m~LW*q1Jhp*wTNY3ncVG zZK6BCP1ecyVDo>o)L5khLN!TU<< z*kjSoT^K|`N0OPD@&{i=I);@J6We?FtG$VVDhw%AwcE?-iLzM`xWAtVp{f(`A`=zQ z5~^KS!BYX{oTwzot;lk8JC-P3)~8l%U}jwev-L$kNPWs_9u*VlD&z{w@MR35z5h8K z={pq(=!CF}`R<(0Gs+W5UgAml!_NQgE+w|=6Iku+&)bV)pBhN% zM(<}Qq}N5t>oep*f$0f+VBxUUs2@YSq8tq?377=)-~g0cAaG4LLM+}PJ+-EB9fngl z&l$n64Xn1MtH)FRP356fmTD9i@*lIbAR!m+6KWDVdZ?O$P$83w!{txg{HH4W6_!I; z%u0@axtoZvbA>rZ+`Quq&lr(170Og870B|%%5@t}o@&eY`9AZC$oe{jxc!Q9Pg*%} zkz?L%{X!ItP%6^Wv+g;EW=3&;we2zez0(}I()m4~VbvVoeQvOB&dI7L*b{Ws{f%9@Z9VxhZ-I>e-A}+I*J=2~Z?;F!S zOFHFfR7|1ZE9EN|Pde8fkUHOst&y;HJUWkI8`eC$cT}#A)=vtyuKgKSSkIf!QGCcd zN!O$JK>veY>ZMVX?o(1fDK8b$6ic0b9OMX7p z_;(&K<+R$uvC*#Z|Hkj$@Ozq!Td%?8X9e>T$<#JR(W#xWL+!t69{YF(R(j)Lea%AD zuAkC{yv5z<=X=T<=^Q2N{$7|DN69hIm;`<15m{S)&5O~lg-54dXpNNZA+TvkY5)GZ zKljXhS+r%=#djz7EU^B{dASki=|6>@X$b2J(6v@x3+Ty7L=KXbiwUd1(LL|e^KiQ9 z;cH9rsFAL~Nr~%DDQy2d)TwQsk-R?oxEkxal-oMgaW1_EeU>h#PRQxR9n?hOu63nF z2)R-Hg|O~<^g9k(ko#=mZW=-#+IuE>qYMZ1ByO+f^WV;ZH1zg%U$LK&d;qbO@{fYR zXvb}D;7{$JjM!ll?0nwDz)?W_8g1grvF-l6vuwdpQ2xw!NoC^wBn~tF2Wk7`)lUIbc5$o1X|U* zV=9P)wn47nSOM)I^55N{;(Zo*@jJQBu#|q`!n0YrAmuau1Le}*u`M&GxqlUfbf-e( zmG?B|sW&x+HXc|PE%|kBYC#}-EqGT*w*YZp5cbiy6RdS?!vn-bG^|vWj}>aNGf0YyLzE* zyWet$G>G|a=izF^p7KVos>NoFLuy1$`#9HjDshkF0B~sRjl)eyYK1XQ~oZkDBJ_= zG)#^=)75jq#WSmY)u`lY_?<2DU?3;C{^I)q-}<;jfcrf~r#TZLlDIY~$>Oy1WWqgj zvFyLhOs)a=gP-ipbDCJhv5d5Y03!#Gv-PW9;gYL%{MpkPQEp}f|o<8L(ez3kAg5FK8 znmV!3xtR6h0I_Jzt-2rZTH~&-GeDdX)Y{s;C5r}7DF7mOMZcTs?^VqzoFeeHC@_hEhW)n9!UhYn*WR+S3shuEc^4R;|i zXRa#>6&)>(P!;a2Xj-u1>@lAYy4gD=$v-}bL$(U?H7wLzT*f8M=7Ry$p_uXRJBA$G zweq}Hl;Mv}gur9JqAp3W7^SvD8P=Fc-WK3Okb#~q(h2dX$r9(=R9 zR&9)P@qYAFkUVrpv{FB}#>U_4Fa%<@J|-g})Ep2gZ$w+0yfMd0SS0ntvBxVLwQopmXI`8Y>Pw zjJE~3$6q@etMP@@5M!b`2u?!prG2~Jw7GEspNT%Rur2+mo4y;$9Qs~B7?>BP7J(3& zL*-FL-{VC=BJILW#NMNho)?93mB@hxCk5U4z%A$0vz=ZJr5_vD2@Iujq)?4q2fFakRL zaze3q8+e}o++>3i2FvZ+Okc*)+u36!|AB0Kh!my(ca|z?MOmK85vIxL%nt2nvtMKH zPlTn-=!RLmNMgA+`D0P*g#{bD76pI#cLqij!c;Q_2)oO<37N0?iJiHObEqn9vm6~K zPS_8}$05v;NSV%}$8l^h@UodMHdBdGyxXW3H~W0e=o!=Bx>Q&jjM%0?aMmkms6XTRVN zg>$g_&ujj(ktRb#CzyhGLi|mH=v{@?TNQ-xNzJiIA})+GUoTf@C2X96`kX*J(9C)l z$cr{kWAJPL0(3lpElXDa^Sy$?SC`v@Y6#p0*j0=rBU9`>_ z9L!<|_3Od}JX$P-%-0y$Q9zPKo1G3C4!`#Tai9LJOeO&!jFQ2E7?^_o9ot0|Z+vkLoQ01k-hllll~Y(%AWH(~^ymj5_mW zFpX3Sk>q35fxe9xMxZlP$$)F1Bu`+ghNPgoFJJasWjrovK$t+W|M=3xmvKboQ@8gw zcfIERf%j9`_pQTyCAcR)!^BTXUkn>OSI>q~N){>aPVIS-_ z#Z)E-{`2PdNy)BY%_iw%SWW9C??Xfn%L+C_h@MLF*yOR!HWXwF+o~*=sER*N0-q^g z_QPR~`%^^DmzwJhUJjpa%;{m7`)S|3tmnV^7Ty~oE$gl%NCz331_iR~>5a*oG0!(_ zE}bCwdX9g$)pSS$ZW&f&^1rHzao21kw&Mm>tF&#X|scq;@ACg zL+rKucAP=+Sy+#r@mN>=sIVQLdFtWu>5ztcQ0$rWe0_Mgb(=Q*x^~Fn(?Cmglboq5c%nXvoD zbuccubz3dg8#h4t>d_cS?y%r~YW70li5?|L?J+T0Cjv@rgV$hfz#&TsfZ7;4HRGSU z-H(%yJ;#3e|7$VhFTAk{fDW_NdV-j?IK&iZYVx00p%!DzFRC0V_fFkuFeSRFflB!4 zaUhkWk=D!fb*c5fgRX=Fv{hiO1I~_g40nhdvz`$Yb(Z z_r{yAl0Gyn+nQG8(v09?+1T#bd+w&a0WoO{6C*#m|FvH9;szNcihJV?e-PEk*wC^z zX-`vRbpBh@-xJNI_iVTo_8r0dpJ^f#R3%cVzU4O9{LpZnZ$hstTabL48`E>4Bd;&J zLgZTXp=JeqC!NZ9YQ>qBT6W=zH;?(nFoh=+p;&1Zgo_;E#&^rq$^G~c_y#8ehgv}y zuD8OmqRBuiC7`*3{vl1haT{-}Q7{Lby`_xI4~xP&Gc#){xjVc{v4S~Jfim*H6MAd9$v4j)V?or9JeA(w-+( z)v&?m#QfUHZ{B0J5Gr8X&QmTmx!{J3?neu?Ope<0$1m!ExXabcgSa8*7FIcT9LZ0)(hv%*de>qC0x?9M{nGV#xHB|7F}$MV>{e`>v%8`Xs6zgCHibz|S!XaogcF3W532l-n5?&WG&qxqFH1)e4Q&`7T zTerbNjj-RZl^kfMwAe6hv@u*`hDh6HQG`eWXByF&r!t~D{W554Y+aq#Y+jM0qJ5ZZ zQCIApt;LjyoSd!XqDS!-X+p^S#ZFQFESaW_Nr8nDIp5jNO67HkHO z`iY%i5*~WA=d_-dFygR{F!MROq1$-j$p=2>np39+UjFlvBcVViLx&&J;Ka{S+-x6p zpOp+E!Ag;TmLop}rFLR>w=Ba9WTIB#IzSDy1>&VC!0lEc%brF3c*a~%iL%A2tlG4C zF<9I!nih8|I5`F*2~^Z&+)Rcev79Op?!{&{zB zD@d{VL{;k>4zV+oqjWbLy5-!ow>_{gd+I3G@XR0fJ8$>@Io(npxmIIlHSdThs&R`9r zkm8L$BK?L+qy96uJGUrcE4%mi$i&;;oeG~BT_EbW9+0NQ$j(#=4Xj0ExY z`1Y@nfz;c{F8(TYhhE$1bK9iFup$X3y<599H^dz;ln6G)h? zrCXg{F)|VeesbUiywFT8*RM54V(_8oXZi{oKoW*p{Pd*l#9#dr+gd~PhlQ|<^f29& zcT$}*T7OgtDyY2p^*S0-U$=G3TrH_y1RR?J1pgf8o}}Aqg@V=CB8FVSjo*mG*sDIe ztg`+&^L{ft7_=RQ^aNHEDXz|LN11ii<9E{0gmjGHfsm;RmZ8y+rOh|+ilgp^AJ zs|fiY;`jDa3CtG3iM{`fPJbuSlJvn9r1t6kMo%<%m;7$25XD7bqf^=+}eqwIiz)d$ysn<&Jk2 z3vk#1LSC9|16sTmV!Ur*I|>UJ>#i0Gn#gzaube8ep3M!y#pp%5${52Ms$e){p=zbY z+TniQCruo+Z}}JL_P4YR;@js!*a$smKaL zt}{potmQ#BB#i^O+N*1%@-%8wRB%+ymPAVtNp)~DSp3Q(xS+PahC$f~T2%S5Y@Be7 zJ_Yrkwc&ug2k%Sq@wbbt%f5)1r6rbS_PY5%L$hBdyZCL!#%Qa>fz=aKbE%2W>ZBtU zSYh|W#Sc~K9uO`{cX#f}dApV7#q>Fw1!`;36mT4PUP=Z+1`4oI{K2}91*vGU&JmQG zWrj60VQmI575}9H5e)l~e z<6D&|`6mjRv1U(#B{qgUoG2MgL$*+t4i9XOzeE=+@@U59*~u~rtePWd&Bz3b5T}Bp zCXtBw>tdrd=m!3*G+9xrp$4F5cO=u4EI6OXS;_r^O~QCALs2V`3KA<7oygX`aW9Q) zbX2*pQ?y-?8idxSgww9Hkek*@o-S&an+&ZH!$}g*Y(>6x8A7dOyb4)^xni7n2pBPe zS(kdCp0z#7?+d`{qC*d)Qb}J;OB+c3&-k!?pYwIr_FhJNAp6S)}E~H*WqO;<-c4AK%TA6_62}2wc3Ths+tWS(JaO4D0)~hh_esv>aLYA z{1s75K7L*g#2>uZgeC(}R0LZfiI@ge~j%i9BIVx9&@T=N$&oMACwlj5E)!)u= z3NLcz!Bg}p%>96QFS9|wVulBhnZjY%FA*8-3NdR%_9$N(YvlXO)puv7{RjN&bB_nL z2zwld3J8{Tnzf@c|0{ow$Y8aw)Dg1uNKt5`Vd<_8$b>|ljmgPUzZG-t%p zQS#FLIwD`&(=bF%Do~n_MjOwmf*4b5t&$@)ASYFicI+9y*82X?Mg?N2#bVL*5SOMi zUaB>z>!=XrK}OBfgrhZ1nL|aT@6-4dh?(rb>t!-e$5r!bj}p@c3dqxTkcHdGrpCT3 zfKmg3+w`Mbk-~dc%89TWb+aX(jZ}d6K2XEmT|3LyZ(bF&g@HB~0UL3s#v}Z{6QTrD zfvfk8#K~@+z|WW_WdE)cC z6ai)i7)fwQ(GWZWxos^|#epKwkdwF-_LHaqOv5?}ov~6RcioucsS`C1^3L*5W1KY6e03{BD|p;^#Cwg2?KK$?n1(qdd(qAIJ|T>WTem`cs;xvAxd%1s6u zu(xH#6ok5uB%~)&Zc_Nn`1esy^C3Z{I&3&+@}2EC1s!G(OZ6 zF##lN@|Y@fI$=HeX!T`L5ldzK6IR3s&MhHm4QxC3mH>v35a2y2&to}%XC@;~myU4^ zu-9wgsI>uvpsTUI6~pWAlp^o>s+3=?H|3F9CSd(XGfc5JQp0=sTQRp2k6cPF*-$87 zKr1j{KSEl-$?{7=t)I^z=RyRe*GANY6VtYgUjB!;FYdXA7TVhDwWK29bl)tnBb1@x zsZfK6&0JQOv5kG1{qYTkehjId0n9z^=tNDs95>p$ulWM|wjSF>m+zae7RY+Q(XL*l zB55Kw;#Yh4Twwx`4s(WV6Sq*P8R60pp9Lx)8Pk6+4yf1T0GOEmgY3_tVtLnz7n90X z$cu%AzGsJb^xl3W2gPcUf!8-fq-ukxlSHe-GlX7JhNC-~m;e#`<3{A9xbR>TO^fvk zwmep4lv;`D*oZn&A?PheFZ^G|0wK8i!;Xo}Fu`f?|IuI)9eyU@)>+iOIIi>NH6T{8 zh(geRc}_(ai^3+qIvab)(`hst8_=!>FPy=xcO|DazFlqii~k#joXGfJik8GE$;vLw zLPhic_@DWsMR<@^$^e4lB!ydk(lKQ8bG7(nT(g6MyMEj3%{Z;E|2Y`5jC#F(DmI;)c-p$OS<6B{|Hj7aldm_eHlMSTtj%A7xUQKT4hEq^n zwhg8?L+QE(w zrQ%A|FSk^9-)n^XaH=!O4+g$6yAxaQJ72HZ@+V~pzOBTu<}fGHJ{}%i+SZYEs|Z~G zzUSD5OS$m{8sZYY6G2Stn=&(b*f}SO`&?MwFz*nwLaHRbqT6KpGqXd|GQvgx z*pbxI?nITIXIqlKKC&i={Oxpw-*uII<0WhV+xAOL3z3Gn+qg4D!`P+dt%Kk3m>a{T}{ti6Q6?G!;dk+72eyEo)^1RQnfIiCwNnY zsq68=vISUgv7(sz?>%oZH1G!MDNWwf2D@|TVcsdBrvuuW4*J^hLX>tDN$wXKGYv(u z(rf}X<9PvNgK5`OUG81=i>oh;*?Ni>)%U5KkJZcapx`h%;RfoMHRZI{uE^!;CRq9X zCg&2~iFt(fas(hC#TYRZm;IP%>U9x80I&P9(!*Gx5vM51mK#Nn8rXJ^AHrQ@dd|512IR4gFgk_w;A!7hK1Gbei z4Hsc3gRc8gRy1*|_&Y=0O`kC40n3EVxSoo2Az!XNR98nLwT#>Zpkk_y>(KvFVT;u- z%Ximm*>~A*!<&$;S-&pGZrMl`2qP)-PsI$b8V!UNSw3Z(3heF>Dgo7^ZZ0RYcz|8H ziYk=#!&=qOgMUaHAW!Y9bY`${=%}LY=^?aSLbQmT+>L)JxAdZ*M9#1b3)yb{1PldH zr=$2(CUBEFD6wf2kYczrNh@vrCTs`A$Y`lgz}?i>6fffr_d?31c890z$_q^}LT$^o zTnxd4`}%&`h7e0WqC(`x;E_aBuSfx9^!9bOZSH4fWX-mcs#IT&9%I%2LT6Y~ixARd zTFL{) zGNJDJOOYV-S3TB=C@jd4CVwr~0UwUzZi2DeQLgeXtk!BfNhQX)-*3cv==Udu=TriI zzzBpD5}Chwg`yGv_Sxf;{RIWyy*aQFUl%?Ex_z;!=iicwQ_O;2dvRs1kS>Cl>r#oI zTrQl%59{?bVjW#Nkb~oHqVK-~8Xd?>Qeo5XpzCJ`1)?AIW@<5a*;l1x+PiEJt=*_8+MH8K}s4K;mZA3!pD6Im9GmPs=J$0?nYtm{%hr zZ6(?9qq)PrLMIXDnPJpN#h9n_U#exB&W-F9W)YX)6Om~V-P{dj)5an+;ayFwvcl9o z9gprE7&s8${TJmOPmS`!Kj|fpO6;!#*&Y^!YRqx;VXYoZGt_aBUZZRhTT6T7FVNvRrYzo-;!b8~a!Nci{>- zmLt1-MZ_jep<)bht~?je&T1e|0Amq&vrAxC%v&rt%vtsFDoj1S^$=so1L6A%%Tv_m zCh1uv-ao&8O1roOriV5~Q5{e~HFlM)pR|@o$(Lm=5Ygi>c@TA-MGUnk4M6b4=4|7x zwhwB%3l9w(K7ZrPgh)+WQYv>TnDEYRp?9oN41j#^JCQ}5-L^y6$0q3XM({7)XjE7n}Qbe~Q z;c&4unWToYObI>nkZWuIPlX9DtCf0=`-~QD?rbDh=!8r-+|%cUMmAr50@$uEX6ceo zn{aT10A^`zknw4fC{DMf7Rj!HZ79q2qYU#9i|ZzMU9HF3 zsnU&_^^d3dB|jP3u_tQhhL$zph}~N)WUPl>YOBQKQ{BpNsWl)ZkS}^NnP%zF;P?%& znwN5PbF)D5pkIdv1t`B3j_lTHdgAV)$-2YgU)0HuN30dOVIS;~v|9iRy}#mBU}SPf z)Aui4xL|h~aL6yy+YsD3V|AL?N3E8d{6o75VawEA*23SM$(U$RFsUq9evAi!L#++u zXJO>a5_I{dDHo4bpZ}TePG4R+yVBZ}oh59~UBjYw$*}ig>%>UR(DBJet;P|AEq#~+}&E6f!%=CP@zhY4$ zAm{hef>E*OB|4Q9Wi2#&*(vZ-&u52=h^$O6|Rz-RgdH?;jkm90!z@LyfZ&9x-%%3jE zFm-pc!svO^d6E1+GDe#>VWYw*_xGIry`ns@!U4&d1O>_%bt?vK`iCLyJ-IMBV@q}c z2Jud!WF10(k1>C+mnLbs&{5nF9WKlSmD>St2mJ5mT_?eYosAo`o*`Q?Yy6KzM|#Y{ z#!8K1S9JMncLk`Aqa2N=G>~vUbc~g_F82o$gke-`-h&_0fLS~FK$P2 zd@c99r@m`VZF0 z$kL2xBmLHxVk9HEr*p_0yZiRZ0ilMYo5-0|Y}&u90ahVOdwvFkr~W)`_go)$x%e%x ze9str_ul_@<6%mW)X=_>W*AK8kZOdrP#?)0!2q#1Xor|=juhcLD)8diS0eq$cnY1t zJ*Bn|kyFQ!D#TWnZO!12>rooTg%4`ihL<%&8Vmhql!{EJtC8j$2lWgZ=m1yx?$sqV zHQR8kXkgeGzlxE(Q4c&EW<$rf8wnvrcK7@}P|QaQj!#?BF$&+A-rF1ayA z(z}J!N0Apj+^8p}P_Y>xLQ0?Tjao6GQME>&Agno<8a+dChDmN`vVN^N;+rY=5=5_| zz4b>w$;jSYknY7n%E9=6D{6Ot(AM0^U$lJTDpGHKPGp6mW2=j@A^JS;)ah9wIy#+V z5}wdF$e0SkBcK>`iAguNn^|iR77()$Lf~GIrd9K~Zu>U;cnBT%Vz)S6zA&=lti#_0 zxs}RTLJF2o6SUC`GXT~XtCajpSlv#oB=yz=+o6=ox|jvBMOC}9$v%?KU`F0&_?Uuq zGpO`mhmj7}9-4j+gW$x)WMtS0n&w&RvRf2K{{@aqUK5`ViIi-)J5)S=;BQ7K3f(m& zc$RRv4_1+Jk$6h2lJ1ZlIIf>?A_QhKQLiM{QWb*12#1{>ZNHa+-PH^+Ezu1k`0Z`P zqn^UdayZUg^@?gdEy2!!VY&>eZ%L89AT)n5K=5>7KKb{+)BLc{n^y2iRaHOt2pw50 zc`z%>OdS^BFCQEz*~zVMz!E1SQ&AEx1sJKQG@nkDl<(nmFS#2OHex+M@SU=AJC4Zre3bKemVu&}xz7x}r*qLl zfQpFE9VNa0Hi7y>dM3&LqlyHc*t-Ixmq- zRm0@ZFNEh(9da$hFVckgj{!0>9LL&k}C|Y_5RH$_` zD9{(mK244s)(!K2e~y>^XYXm-p`IJO@0S4_%fnM#4hz{!62Pk?Ck9=Jh#rLtjX#mB zU;!-dpQ6b{4t0CUMLoJWL}ACo)e-(HSmTT5R9sGEhe*+JaV2jF;u96FWD_a0Qvh2r zno{ez6)lq1mbsBQS#FqB+yzE%t*KocT3B)8l!b*|yH*8R<;k6#tNy-S$1T>4$=lS9 zeOZ5%1ljD_+-9ub^`mIPD}23PdlqifyT#lZA%^$_{lY3Vzz+j$tL;XE^JJ8$6^)@4 z+rfZDvN~@^JkF!7l|u)C<^}x0YB6}Y6E9-QH-q~Em$eWZm7BI`l))4HlN6mg zri2v<-(Y)jHH{t^F3W0Jbs1sCN=?N28xg)sXPb3*pnuWUEn;9Y@hB4?9o85M&a1D- znsYK(6Q^ece&~CW?@Ri|LoCbVZ)fbHC&x_Gu9)!Br>_Z2&Ww5AtYcb2avu(|p)x88 zXE|Bf62$a36%&LabJjJni}e;t=1f(RFQ*6tQ3{uHHkxxFHiR~7G!FZ4P-gMl7ul3h zzq*gD?H{t`O~r;#&jV;@$KsQLx&kP*I6Dvdbx31FwyBF!o{U87bfke_b%>|_7*S@m zaP}=980>9|Bh1Tq>|ecEnesf36bJXnwJV`jBE85Ao-S{SV~r6#7MIWd%3{TDV2TwE#o-lffT#v#%hn-(sf7S5+@@8<_`oxk z{^No~x%z*Ydk=W3|Nd_rp^Qkf*AY?nS>{1yhqCwPkeyAE%FKv}%tR=m%m`(Lk{zj# z5ZQar|NC>)_gh_E_jTRB`?~J?-{WyQ=d)k0=lk_~zQ+4~oMYJFFE1lGQ8INkhJC}b z3M1kCREY+O{FMT+<4+N9&a_jliYlyurPg*^gMTO9!pf+K+Oq5P@uIQ4x?Zoj|ah7Gx zcT4BNPts(6S&}B(ZL7DBt8rO7r>Rv%&!zA7?S7%cIE=_>D?R^#jH&>&vVr9K=}!Y$ zXO5|J=0@5RCG<&7p<)koH#Z&a&I}=|7x>cZc_kDjd*9H~z-4;Suzq;ICeFI9=zLuKdZ5d7eA@%`wDm*Y@q9h-z(RJ}VuwULZk`0W`lXP- znpydTS1Mi#w)Z@1?aq&!j@o>OnY2`)_(F%TsR{Ot1yD5d%_(HRB>wcel{&lP0cIvn z7;(BWZMNNZFx2A=2A0xwUc`I4~T8M>q%ZdP5ENZsXdEg zv3#+$@+IDwtNk5`_NOYT2SMtOl6+h1F}E7R=H$bUdG(%8*jUsOp>x4xY9fqHR~a6g z*dA(fBw*BGEZd5+V4iB2Im7$mW@3O?W`2feo4Pit+1P5Ql`f)7j;^JX?B--#q55N! z{8Jgt2}Dk1G3v)7Ys?be$COcACr~6T11GZ{=~GxHC(!!diZ4#d3lMR8LM3wiUDBhK zkUkQ3E~zm_vY`}@@dcZ@Br6MQi9%avN*hY>#|%-ijVG|(#8=Kl)Ut9oWJ;b;5Vg3h zq5JB=>jNZ9Zqn*eW#zb8 z@E4NYj(c!a+NF91sZp|l8&fYirIQ!c>fP5=YPnR5c9Ia%xz{P{J%mwVpJhkHxN_y? zDmUKvY^iVNr+z%X{6hb@pfGzrDx3Rdsa->0luSS0>@uD16XR!h>+HFDLz&VOF%)${ zkIH-Ex>rJJpP|;+6oUB)>vP{CSfzMK^%*&$q8fUrIiLbY)i4}$Np?u`Sd=NOsV&KgP)kRG83 zo7buK!#L5eVwomg4Dw9_{SJLNTOCzzPPC(8agyk%4A$$$fT-C)n$U24JWT@GQ&sL!9!l@3^ztJ5ElV~JpJ+8CbY0TR3`MQ~PL?S+;8onIK z&EwWRcx%j;!Wh5EHL8bJb2@g^Ti&8ur0r7hQ=jn6eb;pPg|;KDq1e36+A49tnKI<3 z(J4;_9u5hG+YbB`Zjv`UGL*O{@h@AGC9ZW^oZ=o;(K0r0{Z>dN_5efH5}E<;KNBve z+T}vXLPNR28mHicL0N;jUGd8pLdnFK>(o{qxxq~;7cR&a3X8obtx9x@EHAab)znkK z)XIsmx%iRrn06igMa#}dyQf_YlIiYeoSjsET9Pb6q*bqf|DkaN7oUr-2Lr9V>O@xg z`=@-8oE0?<>y>J6J|0<|?KaBL0Kb66X6=5*I&i zEQ*&bg1=l6ko08W>9ysXSxAKtTW%uPfp{$|A4=+%m++s{aj~*qAe1=5ReL1+{g~>h zuvcbwk!Gj*I}LrJQkpUDZq>)tuhlg=t!Vj8ofIdC(|Atzyr^|5gP22ia5g9Sx~hQ) zoiHmaYi|V0q1Xf0VmA%?_U3qbB0KA^V;`n5_dS0)l^@IQg?;G!`dXl>3?(O3#Bdt;bX@9be#0!og@aHMpW7JMiQeqf$=zbi^ ze&M>O?d`MmmXEmdi_-6w4=j-Tai8YK9NlS|!LuNF$9vGtr(by6=~|Riw$$Nj4?mfO z@}r(GmD#>SQe5qh-Bq3PLL0(Ssd+;0qv#P2bU4*wO5N;U5pXT?CnSA9v=pR}sJ?GM zmHN_dyuUdtMO+A*ZabwzaxJ~+IK>wiH(8&4<||a&je<_uyC&t!ndVX4p)7eHM}{m` z%{U~_Ed-yWzu1}}a8S68CTdVE;(FhJ!o%ECM#RtVQTER&V9R`+&wEwUj-)>@+`ZF% z#=bv&=h1?nRNGfZmr_w`o!PzRyAGKzcc%~U&0l!Yjqfu}EYYFjF4DlPVU*>KUsB9K zZ`1R7Mzeq>AhLLk0w6oFA5**TQW>v+zo?@sr3KRC#(=TX1e6wG2cDm84@`Osa zQ)M>dCEae6^9NbKNr{(aFXz0;WEMXVnPjKGF-b7ucmh)~*=rN2UcCF#Tjuk|g{>Ra zI|?QXBRi&jZI3X|CC3YXSWCXZ)EQk1aC^*voKv(^>>)7J@|Pu ztxQ5RYR25YPWCg8=6f5p3VEY@!_xt#&eH9>xq~Yb3rjQpA(hOTk}L+X@+)b6gEoHe zbHUf2o-Ox!iK<224W1#PPJ8ol#AUvA&{-PZ1GhNpQnub#tF>^b$7glhcKvI6mh|%6 zQ~xWhQ4#qh)K_!2Eo82Bg=88X@W#93!xe41W52p&xF&70=P|aFc6H)m)J!V%N@H0i z&jtUcCaGoo9i~d=oF?VQx4kxq#i`f5c<{;_2Ug$hP3_G(rr}Gkyf^(k8jA5G_QyPG zimY|M=hydbCvE=325;K(X$&iwNrHDj=k~*=;a|wAXOyDqMhXjzq65H{!|m>??jX`TTRJy%QC{k}QTPJ~bHv z2dni$_-K*Q#bkOImhl_>tl2Ag*v%fPkHG z^;8$dqo&O~Ob5@3>G6bT1*o3LQc66qwo+>mw3tQl2{fOw%*t}bMmCR_7ovJ8?^@(h zn#p;m2)sA_C|h-!?v4+1${X{Cb+Y98Ny80c$7|D#j&R9;c;vY;+oeBkajF*2^u5)# zj~HMpdI=gXcy8W<073mzH~8Zj>bo6gNO|ilfsPs`7GH*jTv|V53Bl!WN!Hfsow}@l zTkj-OD^|VywcJOu@pi$EhM4JS-E)y&hlUFMrY||)YWdJj5_|SW^3=}Jy~q%ckJc_M zjbEHnWV=fqy*-gXp%$ad^X+SU1De3_$#ha%Kt*0<6sOjdgu+rYw>d{nh%3hk zF)y`}$8egY7r}0EeB_aL!IV%o9=H*Ao_xL2wJ$YMtWiU0Dv^aN{PB}?etL%O?Zs%6 z=gVVtI*+8Y!JvfCk*9CB?LIsq|z0q*2WYf0yTXUR0R>B! zxe68tJhKuD$hA1wDB^d^-;zCNrhOpWGQuDK(L#&Fkiw8knYWd-j6Q9fzG}$a;}!M| zOimr6LjUnH(vULhEvL~dZ9^t#sTME$1#Fsr9BRIWU-6=~DAVaEU66w} zMgBZ}SL&Dk9Cp|(1M?YnKYN<<@8qV>frOeeiJL}QonuQmT;iZIS>>?#=x7|aP;a%o zb$$FoeHkXN4J@>%zuQa7rgLHN z#cFSKVE71gV~2Y93uATF6$oc|3-kJ-KcVz?{M&W`kvWZ}wGjeWF3O=-*6D{RzFd9$ zT$G$$GKiT_HxARq!8OrhzlQ%Iy-*n-r zgtSqZF<-awurH>Z?3twJ#SPNuly3K0s^(U5HeAa)PTabh;c!90;WIVm>QJ|d60*t` zDOmUFBNJbL2z3H}YfiQy7iDmxc;^WZw`oK zc=HM}J1SGf$8;YqGawYBYrS=Z`qPr$l+y<*X?VRZ(x;dIHo`ZeTFZ0bnNV?%Xn2lt zy}2+&Jz=qxX2^*CHOW_FpXGMQgL1_9f}hcNUOj())Ik{45|zUpTBsCkiyn4k{wz1* zCER{Cmx}#;0?Wr!LUY2e$t}%Uqp;abONXr(ZlUX&0?5g}I)0Hm8#VP|tl34R-4%29 z1d5H4NzVFRxUWbZ=TPf8ijKNDi_lLoWPwi&_`_Ek!shjl3Cph=6~CA)R9=?G+cDiu zHZ6F513uV!Nmx2BLTjdwiVWU6A!}>wO9ILjOOzBvo^sn&!XP~D&Zw|x2|89}k=%%{ zKI^+wm(cF$N>=J5M@;5b<61-!kvW;i-MUBTpR1!(ZrYsv7Tc9TRNrw?=-p;nOH0R+ zl2a>@`CVEo7t4HTuGzcFnozo15wQ`=kevc_!=CWv?W6;2CpWWIuPJY4| z!n8ji9uNV;h#75(m6tglo@6_C|MI|jJHkV6SZ;fDcug=zTMJCq zem;GBo+O#TPT@?hnV!p}YfE}>RK3*b)T-@KmZBKZvBHrHjjxoQ5AcT})f+keAYVY+g)0N8alY z$4JJ+8+VB}XcZ1m@<~~wm}&E&X(rma2rYDNzgfp@{7VkEc1*8QPK#qzQ+}2!-6gLu znp2E%Ri2M*F23S#6S0+`*K~Med@(bjGidVhXjdARyN>e$-K}$P-pO&~8u93c_ngVf zG2k&h*K0eOp904I>N0kDqi^cX77DC&Ii=rjq%=1$)X+gSS9xJG-CRc+yP~VgD^y|b zTD@_n-{3Ie6_UQ*r-mM{-uch_dC-C1kEvN9yk6{>er*{;6vJBU;7P?;8+3q-)r^^E z^DMQ!J51%pm*cezc9)Bjr|5jeAKXagvG&F!w}x3q9veM!Ywb0wvQ;^w{i6xmpzt`F z>po9%W@OM?<|j%A%9=?Hml*gN%z;nuz0 z-WQX-pO*&1ZLZ!mQKnn+5}X(rD`OoUU-P=!(64=5y?&-7)+70omFHT1lIGS*Xt58; zgJ3q)n8?A(BeGuQD+=O~*~T?e=b7oaWaHL+NzbLc9jVhwG24?HuV^~KcBs?E-UfZ% z-q^*y=40pkpiic?&FZ}`Lh>&<+zaWYw5goo8MbR+k~&a!o@=W|NS*F64V#R^tGKQP!Vh8m(H^VwzR@Pg*K>FYo71ME4L}j@mYwuXyohr_z(hM_88|G^EH(@@_LT){MeN)TX zPV4`kn7kXafP ztO4!z$nEwDp0#Lm=*zxcVUMKJSxw!8d#$SE zUs38Kx|~*c-H4iD95mup>#t2nFKOP@{?gj5R@zZRWZ+&HuXwB+)R&aO%IKSkvmX>6 z*wt8CdK}V?(v(~pR4Yh_$F{s3JVjrXXd`&v4&FllVvLTo!uU(;9by5v6CYyi?nFZR z(;%8UYy9F^$q0vQ;tWV3vU-O4`@3S&a*|4KtZolEl3w&OoITXM8c0cJ;QOe@k)Jb~ zRsPZ8fier82!vsIA12fN`Xc$=)E;w(nta}h&;Xcth7B^Jl>CNhwsYwFxTVqRa8Trn zkY70bWzO$Q7o!gPn`ebyuUvHM2#MJdWBF0O@_Q6DT+{;SZUL&~F3g-^{%2zLJJwQa zDV8|{wIq)f+>Fwf)KMCbpZUMme@wilM4yANjVYbk%s=Z!e1OsD?4^__noU{ux!Vk! z2}K`krrm|tw!Si?_cR}+4(T+fu)8F0Zk6<`c?uQOOis4Jmmg5^tv143wDfk_gwBYA zmoTH$DJ@A-zv3xz?Y#(;cv)!@A1|*5(^mNKoY^NY&xm5S84szNxf^dhTnZ#wN<3qS z*2aveJ!5Sn9sJjxZq;~e*_=_7=PoSdI>&iBr^cu|w1#EvvZ|y3XFdzf<=r!12&O6? zlMx|(lIyCJQTO>o+)cDD7ao|D6*t#b9M?G`V_@bKY?8)9cY5jC=|Ou`qO{SHv10EG zM*6zdhltv9={^ba)@@lzell$mSjT3ed))Mi^}r2{>mE8@p%+5G?V(Oj&pu8AcuGBE6^+Bov-`<>zlV&TJlnZ>G@v4m((}>Dk{>XcW&8?Pu{z{I^(`@Gd8OE zK*eQq(z*2kcMqMHW9z53hgmUe>{qRB&Rs4X!XMm48Si{(7d@VGv1w%E*yl~3TZb$+ z7uotXhdXqVyI=V)vC@BXNzs`u9~%nZ%ALD0|70rc#fbJgHwyE4opy^)dcM;~_g0hs z#&qAkjNEThUn>yp!xiGZQ$xEQ2fx*Ov|D(WD`XEj4R^B6ri3s&VPIe)$ZYnItIu-w zYSkT_SEGy8eQPR-w--ydH*0Eit*N!)t!{$KoZrOY{VD%7E>Vh!Nw%Gahs8D%JmNbU zY?dr1mC3U|IL2D8=|=<}>COuJ6pQEw-$_*LB|U ztWfh?-<3Y6ySKGg*K$+=+xp<(;O4{eN$x$2RmzjkEB#D^#!Kt5d&-hVy*<94-yp`k z%ZFaBb4yL$Yas7kNcil#s-To`Wq8WJ(_&#)^x~R76UOP}dlG6X>FqmH9!+?kF+$l-wDxM9 zf`o|2}aiiVyi|3LM+E054g7=my$j+1~2rq-CwTz%2=2+a>jJUv}!^5 z%nY+0=MQ-mqQ$#qe(sPr7%s)>ihX-BfE6Ay|pnF{Wvf02pcZ;#` zM4D1$yU%XUp2v0!@z+A8JUgy~m)NAeU2bEG&D|vU+KTxqVZE|0wRQTpQ=9m^ribg~ zWe+)w^ANO?=ae7PxjdBD{gIEiE&m(m$w!}wb`}>>ulQ8W>5to{6ev9v z!Ji@|AAle4 z&|}KfLV!jatEUqPs+e%CldSi1OAg@4Q_x6I&V?^|d zITZmX8QstEadt4pZQQ>>Gb7LG@QEey371|4<@SlIG^}NW)f7)Jcgf7_h0vHEuWiiH z4+(Yk>O9q@HB>_{ZauTjQjeDvN_F;wfHk*{cFkndac=&Q+NHMx^k@sU45`{NK2hDU z50#2y+iMAtp%NvVUi8K8-R@YPIn$v+Net#$r1IVA(JREfuNn794$`9oujy`7JvnA4 z?#xyvnRlBocUP0-UE>>T#<=xUdB@EvKQRjLIF> zFfSTBL@n8Yx%x%e?$RTT?W*vv;wE2@oZA#hdwSv^dDuZpRx9%!!MmbNJKyeMvC9k- zj4V`SC%KQLq){pfGvify&wn`{yV1;8>fkjxG_;WEk|Sh(Nyjuk^~|j{?W)gSivc4Q zQ6&qb^jI8b)L4}a_Yc(m*#zTj5k zdb>{(_6%Jsr;6sqLqnP(o5F;0uJyJZtSzyNT@Ktnnqp|~`s$thd&2rpGR=Mb!WHn8 zgcyyi*8GuYvFHmd50x?OWbmg|`P4q%-bNBSt<31Om);E#b$DIk%C}At1{EJAGtYEU zeTMi%^g6TaD@HO1uASw7p8ZbuEy1xfS02S;`FtW3a9L( z$Yh-vI~Jv(7*<4wb@?o{SgILPvZM=z)VV8FWj}!ZyTMio4QQ6(cYr9jZnAzt0h<`eObXf1J zipD@QN_U;O)U<~fs2P#FYD&%@Gy}q%y^_g#eiKePb-sY}wHi??*dC!N(`AUY7L;C5Qp&)xq#=_+Mx0OXHnoysklO`T* z$p&xTPC601J}j+SGsv6WBOJwJ{KTnajNe%C^d4;N<7dNrwL`ZvFSy$YM;36y?I&R~ zH%dtjPt#&P-7%#uiPs&%^1rgQLLa4b#JpeqY@S@-Olz@3=gpkWT1F+k^hVdeHH!x2 zcIMo%E7#a~ed~{`C()H$3Js50GX6Fm9J|cM(qC8<_27AhGuhFn&utq;OKiz5D$+Zd zOJu*3(F#xRqTjxm+#=iI$yq*RJu8b}d9(sU8bUf&$kNv=oh`h{KwBt4@XRZRUSlFm zdL`Y=hbc<9Xw<2Xxfz?7>h&zCtaXG-MtfdYU@+9<>BsEz>bD2l+>QBbPi+n*^br~o zc#zi-*vi%GYRM$~Yf41gE@}`yd@fRySzF}fajwi&Mx7H*FK64;oJGZ|Iq7BPncUOlbOQi4xnlB5?$eVuMKd6@TEQ*2*P z3-VvhVynz+JYd5y?>68%U)X>*XP#I7c?8+P97$nmhT=F(Ei+jVVgK@cJtd-`mh$4M z+c_4qvYE_GOP236uI1QE97433QIe*M5^J>(y5Gq~-nyiMKw386J?|_u!o+{5!My52 z9Q+JvVY-@6ro?@U7yT`#7tI9H#`{Lz4}E({z56=KG|A=o!KsYsOt)7h z5BU_^BCj*I@UkS_l^(%wG_yDvaLuP?E#1~eaon4)x8PeVPez|nu-9xQ6O-eO>;vx# z5%Cd1c1lWppT<}YMiW>n@R>%An+#o{qn(tMQ7Z{jbtrPaF+Dt7b&_PgyFy=Us z;9D4<04vIeTJ=O_>oY~zOK(_f{*mybrxs3#r-Q<;jB;?PcZke?@-vO$5z7(FBOfw#S*h}{!s=h0w`{A`o53F_q+T}*2ne36 zptz{OD-n$E@-6?lvq)taUQ>xYjFW7(Q7)b8))`IfBaI@5s1q05A7{N1iaPStT;-M_ z`vX1ImFQ>hDX67VZ}eI77Mo{@fd$qE^>tUS+j+l9M3{gAPO55srismGMPzq5WN_<= znO~5R<~g%j#3-!$kpw+MK&H}W(uot?8WZZ3c+-vv>|_6ihB|SL?^0Zp%%jIg&-xwhw&%gfVgee2AM+eq z&M~qtp@(NqJ03fd5K@1R4c23!sUmNgO+TCcyi(#qcF$Z%0gbpAIfIQ|{%9_>JX8 ziD;cHJpz;c=*g3kMkm*O?2TZ?rI#JFp3A6Z-_V%pBb=!<1Es>smZL(bXdzuQHyeM; zO9wsGD#lKP-Mg7%G=#5p-}i~-gT<8NO}Nescf6w{=^8G zW&G-vx~A}?9LZXbZ2AL>PAPb%Ca1PAt0U3YtR9_RpiRp{fI;x356cA3;`cKH!LQY5 zSdKk8c1dIMrMS97eRmfBqSs7miU>xSu{D$RML%czZ2f$#T%%)G-J=V7kxXp*XZwe7cry9ol_#5Q8FyhbvM0scXdl9Sgm0F7 zPX5##m&u%x?lXL=><*J|a9<>kNTT`mnpKNPJICFsdd zJoN01y_?p`!wnM0Ro(fj!+S=w5*4>7jBhJErnN{eq&7buaE(7sFe@DPWd>o&^E6#B z@Aet9B~G6z%)GA2-ok@5$;?|Cm@nhOkIa``TK&C>r0U|;PtrQ`Pq3mmDFpM1=N3mXZYn{7xspMr;8p1C7IX&+mbbV4izH;u_>$R=XO8*%f`hc z>Qi>_YK2BCilw(r$8BFc)z|N0sC=dyF*%>XZZ@N z@v$R*TvJ7v?-bjaDr#iThKCQmPkS|DJ-p(4{hQQ$hrt@m(s3=f^_z%vrr!Ixt5b7A zu~SE05Yea6be{{;>rsixP^7=4dE1hszey&h0Wso`zo(rrsUVMrrK!4Ii+EH<7@0GI zXUw$(=l685?hMdZPf0d?UKj=AC?hUHTh=B-Pva9%_Pwy5D;toZps5rpYod?#yg+&4 zGikhBlcXs4`mwR&*QAk*4N*hCDn>&(t_*rttgQ98CpyfHkLmUhajlJv`GjXVACt0U z^Yzv%Q4b@}X|2lAieI)E*YoVMOrc8c{k9$`SM#{}O5a`CcivZc(zooqd+Y5P{LI-+ z-yh1zdz~avl=x(8B`GZ0lU?S$09ASAV!X{WQpHp5#S^80&z(JH5=lHq33X#x^+HsP z^*;^-cf;>(X!K#d><1na&wixpMmi~2UzbgL%0T|^QAT%-e9R`?+uG+Cw*kEIIJsgj zm)aLzztR5Bu63kW(A;kcI}U_~JJ9A}>zMm!xiGYsyX#YdHw4qEtX0x)9JgI8&P+E{ zxWZhJlTI0dy6<|duPfamrmVTW_-m{glKjvquT@@8qVdUV`R6sg;N7o>rnv!lZ3Sl@H66eG@5 z_0<%RJ-&q4tF{kyjVg`VPl_V}55|_$n(5 zi>$P4?oi0d(i}9;;4TS_3oH>)wstsob;3Nt_C&`)XQa$48J_Su7E(s85*G4}7~iC{ z`Xo$Y@)wa!V~#7?rA*f^I=o9J{7A#q99MvC<)p8>xx@aoq=1$1i394qR#U{~m~2_; zLU;&V%Tp}HXjp#7ta&rW)lkYht`*^CwK_omCW z_vxL|%sZkrlAkTciWC+`*iTgOlt<1rEYcuqd|JU$qg-?>mpy}p7;g<%2_lUF6My`O z0O1`;PVRb++VR;epA&5Pth9yv4!X#pqw_H4FZ%NS2iPz6a)rK%PrQ9Z(dOpLHvK6j zco?52Q^Kw5p4Nrt<^%Z(o(z$PQ@2X94Eb3AZ}5rh8>>D9EZFY)t8K$akjVSB)K>Be@)fKFuZ$Q~TlK_9x_A-Z z0v(b}EJ*sSZ_{0v58=>im|>k{G1jPCGj?1@k6j>5Czeb;MDSL>QQP0lO`iFNg$w)P z7hi?t;&kelPG6`vL3B`=1AMjp&^xDQA>xh>bl1bwl%WhvXS*m84A@7t+ zJxu218C=AL>1zs#x+M}{P7X1~F0u~qlE_Fm2eK~HG;Th2lnMuT?I|!euRG&9&{S%0 z)8%SP;sr}-yKky+_u7?1BWDSH&Wl}&FxULb^2VhwfdQRq7~@6QPA{BxIm{06aC(p# z*6qVhR90%oCh_<(y`kHorAz~81z=Qu$h!*_R&y~H*Fz^=wKaS`rG6?}QoAc@Fi0{f zYNa6~^fdOZz2>UJbBeQ1@gpUYkPuF4Yu=!Pt`Bu2i|uZl4exkDC1drDkFe`a z@EzCB1ZE@@TrRxt+I(eo=H@%-5*ml;LH+iysqeA5?q-y$sLm z`J~kO1H{&}0nMl6vUu47&ec9wqq0;%-ke(X_}F|Sj6zZ5&)XMPxHn#TV_aOk8&ue#Vd;DjC0EN^WDUf-e^kEI{H@W5OvB{ z`35o5t;mcUj7_H=b6%@lyDvNBI@nncS5bz&4IKwxBn@)rV`>h4OZJ3qrUM?u6s3!C z7~Nf~@h{I#_ckKwi$vZg8jlTQJLl!(mT*m6eLJCY;EKgFMVoKr**4Qc*SZ= zZ9#vWZ*xaszuPG34NfxsiRPW7GAki@pBl%AqLQyY+-1JvEz^89TzYNuLe*9U@rVnJ zg9H)2bo~7b-)v&TE%7%^KJ%3n3=I*m1S>RF*ltJ!hmbeFbLEi4Sg578$thfVb!MRQ z@yUgxH|XJWNpE;}o7mP%yskD`Z>B!@X0kE+Aga0>?lXvtro$Zn+mTZzq;&z=>f}LZ!7b~B#|p4ol{?I_SQp0I!rehoOh9Fl+t_X z>hi4X;Oljux|n8+;!=4zLn-N7wnVzV?l!oSoBL|b|HakSO4BCkIotJ_WeI=m+mWRY zN1vTgxuG1R8-strH5Na!sbIR`Sg=- z*R_B3U&$Suk1s7Eymw%|b+YN+mi%t1NqoPNgEG=*mG{}J*CV6B%Sx2s+rt0hf0lRG z_wb+CzIGtRI$627yJF29p-;{hcBCjY3MK@DK4CC0!L!b;R#;b0#mSa|sI*RIzokCl%DdTDrpw5u$Jbq%Z;rg9{@C(4q(t z7!rjL5D^xJ!{8z!0;0kQ5pX*#+;wN1oSfZBrKJ8A0sUPBLljCFeAIvm>ggMR4{(&Q zfG85&%*n&S!T9g1(My<))K3sa296iMk*wLfc<#6 zSvviER7Ufcqna}3NlD=XC?TXUOv{Uu^sE*sN>l)Wf{BPA1%yPvPAgJDdAInGI2*ba+zDKT z1tKA#bD$@H_aAo`!#x=x0*Q%52%*69z`4*JETxQLTIWdRv`9$-B0`Y%(A$p}1k8`m z&^rX<4@jZ+-?zU5iA2MZzX6FB5kQFj0Z0t^lL*#8R8b%n5-o&=l=%lmA@LESxcxvq z5ugZ8O)*GmaK11A4F%Kz_dp1PZImz^Y{S7P2qvJW2ol@@f>0D30cZbqJ z+59m$G~qxnFdF;#{^y1I+Y3=}0W|zi#sda+e~_UewF1~!Kt>`g^0!xk!34$u&=rCP z9e0*B5L*lw4RBkWp9tg3$O;9#2N)J~7vM?I*+4a5RKT4f{2{}Gd=rhp{-x^AuJI>V zA$1`|iHQn`{^d_dAvDkg4cliI;G_a@Q8cJiNd=XVNSLfMsrtWmF8~W%3@HE^I}9a+ z5)g%pA@&Iha1~5UKuiS3P#6@Xp~!ccg^&oy^U*>;1M43y0g)HN3PKFh5FGizJNr!W zPZ9XH^>+c0E5Oj#5O|G`keDsZ;~Tn~cTAE+MvgQ5QcDUpA~QwW4T zh-V>t1o#UBPRH32E;v9oh1-ITk$1a5v~Y zh@^ny{Tg0?MS}+-|0{%!LLx+V*vuf4^H^YdVyK~rvjcBT=XBz z36Pes$RF_eJG=mF#BhNIgeDwLki`EEBG$qn%>B6H@34tO87%?_HUd%*C>g==n+T4< z0AE1-hqGAp&mj}S2(lfB0e<4P{~$Wxxxi5N^Qs@thCmC5iv0l{)W6gp$O%~!6bT^< z+RuN4A)ebu1m|Ht>GT~1a215@&#^&R46q+`ABg1vuY(lim-~RRfxHl8N#Hr(t?xf? zJrJLNXCRPW!hs$Aqf7mi$Ly;QvLQ?0U?2kH!1$h2LawwgGT8fTz5``XIJbk~!5IO_ zo`7;7xIxJ!4!V6n|K$Kch6Et{?rb=D{{4{n?}h|~7$D`JLjqh>L_iq+Z-fM(pMV&s zaQ34r`rix*2oO*az#xCIQeaU6Aa4D`fEZ%XLO9xnL+J&;0}HSOWc>rjeaZ)C;A#SZ z^1lwbPy%lSToy{>amgNTTp@!+g2Dkf^6$nAxi@b7{#;FP901+KjG`|Cd z78OAMAsB!%35sF3z_f3;K%IRv!_`Ajh4S5le=#Xsg#=s`0_D58T7z8Xw}@v2VT7v& zpwj2Nb3^aorXZ-|vVMRm4kbtgDA0=hL&VWLjsai0YJkj7~&^Tpgi_Rp^ZUV zp;5q;tx)LyJoSPI{nPNEg^(Z%75Y_{U#lL7CvhPgGR6ONWrz?EgTsGMvk(Yj0kJ;> zN<$1F1z_}G+#r&Hq8nt+Rye~4vHU0M`Lo{uN3;gFu*A6<fSIKU3I$-mCsjuRtG80QHAx zjsX=3q$CjOugCwZ${wT`P5CR+cJ2?4!^ASqk_N#gv)KDb&-WCIO0TPY)+2a1SQolA# zp$^}V*AGRIXfz;A5z&9D3Dg?;_tU{2w};;U*h~c2?Kex{Xh4MDM-SH@1D~NjEY#Ql zeP`@`g98Qs2{RDZ|7uSGlz!?Jp)7@eK2Ze9g+ZI>Z|D3!h6)gwsPJE8{#^y6kN{}) z{VARN(P4nn6Q~dMTc!gQAis3ma9*>YhXY#yEdD2Teoz){=w{$TkU)qak>Z?X z9KadhZ-|PB3W$io;6Fi%{yA;HY5W}^v^B^vaj81^g#63L|6>*IuacorA_5?Z_*=67 zaC03@QvB6x_-N_3r^!_p6K<)%;St#uNZ5+5H z6Ec&(3m6m@%yV0#p-3twAR>xJz%YP7kRVSG0%wb&P^kaL|E=Wn56=I;W(6n(g-U9G1MDZseqjPow1CM71k|hAZ+q_dqM%|1ha1}Z zH`%eEu_G#s`pXypkCP@KB?3$<{4V9s_JKi~|J%=ldX0b2W$y#@_cp|qaAKC1%jL80Fpt{!J$4FsPUjS z7H**j6brzdzBR731tkz7xX1$PXIyXWuRHBGk)dV=RChtkLqNmgr)KbfLRH|QpwjuX zqM(AsDFB*x;9VH^|Gy8kIy682hZSBTKP{KqUxKA(Zi6KiR5N$QI=REZWIRlRR8SRb zWov%c*?WKW7aB;35QTy84Cdy*(k&TR=S%uFjU4Sg`s`P)$}ICa8t=c83WnIRf3zet(zw z{;mWxkOz0eUADh?3lyA?*76X;B7h&^HlTzFR8RXGP(T#fKLQq(3F=+2u!GjRK~IKO zXrRzwEeCX!5}+O2DmvU}Gz?@Hxc%RQ2LkZHPdkt>uw(xb;I7b(aqHpSV1_7R+{3`} z{ks|evPKSi*pD@D`-Avhpr2Oc;dCbzRK(iaTy%$_#Dqu%b#1M{>Nrs$@bRpzyPF!; zRmR!zlCu*u@S5ae^}N)T36Ssz2n+V%8i{}F}E>2Z6Ulb^H@qVF8zw;3D+mi z?-Ql;ZHf>{H{iMa4FPuip)`&%`HnB+SG$+^C%75iqPo{a-K3C5#{1_9uGdU|EY9a= z$Ag*SCs+?ucx+#_zWlD^UX#F_PehNgz8=pdNq^XAM~>9N^W=~0CmXplbZM`Z9x1?U zVSjHt>fu;*`AgFax=u?R0pO6kwhO}lcE`)8@B85ktR$2St_Ty4v-C!U#$ z`DEdd4x1?1c)`X}?a*F$X4-VQiJ(9&41%ocFq3fR!-vK0Jr4})KWxh=>Y9<5p4)mY zh4w3IEAZFUm_JNu#xQ*quh7of*~Y8t)UKeZr%;*lgVNFKR`HXL$)euQI*mT7bDJwu z`TUfpyC5V(nyAaGnhIx)+YOA5D0&)e7(N;I=%&V)(gYOZ>k;9T)i4iqC6QI66;vF< zV-a{Ok=Qqy(vyX!Xm>~t4{qLD&+cQ~Hufc&cr|*+ej?c~Y2aJ(Nj%P@1hl7B);q{w zAf_~5IKHPPz6ORGAmMjvMu(0N=EDvEec-FR?0Asr%{l2g)d~6`+FrVY1%%Lb-rU0| zwqR>KCZ)B~BIQH((?oz7)=)@C0*;C zx*wnbJ2Fp5utQ8`qa-&dTnqwDOthLRpJZB|K-3CwX&XrS1HbzdT zquo|+7x#HGkL-&Ct2dq-S}EUOq?0aEo%CkAb@LtA`EZkGd4ck*5hH&lO#0nx-+RfaCYxV5v5dYh zOV`nYGjyiei_eDu3~&4P>{)G}ngJ`jH!`|0qe8U6<% zEQ@%?64MFd`0G~V^extpB>GyoiK*YfcalY`yIraV)4W>4k2zUQoFjeD)VUo{U3jl9 z#bPGut^fGVnUb0qHLVQUB4`YvUHO^wgIaa`GH;K@gxq^%LEYfqV8TVSuB^$^;1xVJ zq^uSnZynDs%N7^g73XT3cX>M4r+P$rgg0*BQQ)#vhpPIzwN%vmO7^R_()^xm+`69s zdec_@nA&PTY2V$qiZ+5hKGvsX^|pm_J4~}{Et)hqzX9Jb5HxveS%Gb@Dx3ZoUMe^u zzxqX_a5AXq?1wNo)#!m{jXcCnTC{Cl!zY4##q_-UN7+WRVkCn!#v1(BQoC-dX=S35 zDe3v7b4jQl#O2|Yl-xCaDqM6jNmIr0i%xdt!IwvNPCi(P)|c_j$rj;Q3gP#3wdMn! zxpmoP2|qQAjbGD=M{nbU>?pqoZ))r5#EAu)!I8MrOAjf0{gtVzUzDzT7GlH3v{Xrm zHuQ(<8m!CtowbS|V!Xdylv3w?bd%k+Ig)5w%6?!ZD+V2Zb0XT%{Tsawy*`XrzgW3c zK#fb!Yvtg*Cnsk*GsXwTuNXGJ%;|X$-kNiT_l8R`&-CTm;5+b!XEOXBo|#>{Mr0F>>u`?hec(L(uw%!_-)Ka>L&66v6YFEUwsLu&2&oQ+>Jjq0wW%l?8 z-FYfma@stbP2fcv+a5NCb=fJ-K}X4H%$D5B!qUUCFODYP*jBkb-cq@g)6!f=-`kmP z5*m}7RvA=ntD*2^YJ5vhjuCbGrPaA72F^qcrF4gT)2^2;=Z2P8BTo#@2Z{3XGYCGr z-HY8WP444ilm?{xOh&=wYM_9A<=cJ^)Kp!=tfoNvrTdp%`$yKIqQ*1DlJxVQ4tw)t zOdr2@r-?f(h)VOe>&$cg$x-vpkTJTnqUGI%$H=K8_6=OBPSHkw#ccE$@KDcJ7w+WRU)0Cu1%4yluut#?a9#K8}AkVXLJpYi^&c%qhUIg@Pl#>-@ z;jGQKmj)y4*hrUQ)ho*lt*IPDU#+vID5*Uj4#5d7(y-(wrYHS>l>KE;9ADHu3J>nC z!8N!9cS&$U2<{HS-5o-33m!ap@WB%tg1ZElArRbMhJoAs{?AkOzPIXD-TMVTbkFJT zbI#s-?X}nLZdN3CP(k0WxYvlh^kcEoTCL!36U88S?_Y0qVKAI!WDdDBb;3z!;FHR5tg(XKTBrxbyG(qnKWFq5-x}C&~ z)IJpIat9x{xPGYXYG1U@S4XAJQl6hS9-Ig)>r27X!g!rfOhe8=N5!nE7G)_IBcF&d zUjF7a1IUH*#gLaDS2@g~`h@QU7#0hCEz(*224jsD`ril~hF_v%T<~JmnD4G@q*{2a z#{h0^Gc@t7-F`|6CW)lq5vI(NZxkh-UUiumhymecutFQU=J0(!_!z1#=f_O%-Po4f z7Q#&9=8f;)DFdtfgi5mD2jh==vVY%o6I87bXDigIy^^shyu&X=?U>k)790zd{Z+WZ z==5|}I7RgSI+_2RxQh2s{`424Jqjorh`?a}Izd6%7>#exKzt2;xqSl*6lX8Uou|GBDRn>r5X6qKt$>&1%QSWaPjSv&AhND?b}+sF z2-)yWBFUb)!}wFiOWwiTpXjiaA#G_iNL09nc~CDb|P3fTEQck$6? z$ZKp%DGbA#Bmay>OfqE$x+U&1k<<5o+#0y##fRe<+PG-zp;~c ztN5hU5$R6%DUJ~EWm2V8Ny*@|jUE6NCZi7Yz(*-Q4)i38>pu<&=-Ew^p~POK*!B9@ zJ6cy}I*c*JNNkpTHwo%!wLI>x+bZYAK}Ybsa0Tz_nL~WDg3sa)?;29K^pgO%kbpxx zVqFx%Nd6~ga{-9XbyL#<;;gqrnfyIV`lgV9er+HSM$9hJ$sMJubdz6} z#Hq-4F*8}6fj-8y9w+I7crv4&gcU$Mm1u{$8V!cu-DHQ5eW=uGxK|&xf z$!^K z=_h&R{3%BfKn?_Ot24xH3mQ?rA(u~oi+-n^-cc3DX%nv*9hG3`iL zw1__ZL5%LX$}%)bc&QCw!}@u_5*EP`F4M6Jule>ylN&=N?)ndq)qd%fhMCk1p4AIK z{!=PWwt}O5eOdfnLjayt{U(s*+tx^hb);%y6uq-Q-mIJtX7d0~o`-dmSsINqU#$BM zauW>ZCTb9vnVz;Fu&}6iZ@CV^F-Tcq75m6N&K!J}a&sMef-}{5jm!>m@25AtzvU`M zh$Kj)fKyaLyQV=@0P*3$128%?(AzgBv!>Y8^X+$fN_Ym;7j#XE?_&4!fDl!v?Qw%0 zh$JA>sKLJ-N)&lGJ!Zgs0#JRr_3KXwMq3~q0f7t~Kg7?4!|wu!83fuZPAmCZN2C7o zD-fk6i=FmYt#G)qcQ41jZcQt_YVgRy?vEaMh1o33N-QWRmOm$$=gj|9HC9tT`)sD*)$-?#2-9KcDpU>udMaQgOnhOJ z$X`*_$-|TF@F`dRI-k^wNWYI!Mopj^pEaK`dvHkkgWHcDco+QqNnQt+iSJK(UC*<- zkU%%+J5|zFnCW&Klij3&kr!w%irHxYeIhIxd4EAUvpyz@IH7|5B~{WBqf+fMHgbMa zdWuLUr#5y;n~XFfrIEg>{OLg#UiFE2W|?yP@u5lE%)WoD!Z_yK^A}ZTF5JNT#m zCMd!t=2E7uWYAugGYM8p#TU?UTsRs`;SHNi4ymm?BR$)Uz9&1c3_2w^6`0&38^vJ= z)ty?JkN?@AR&4%q=TlnZB){j)m6Ec`{Znrx^7Uj~py#!K6{9k%tb|Yt`E61J`;FJhjf~@Qz)A6ZJ;2w-pNjl&0(ujz!F1aL(KQMDS9S2t zdzI&|D?O-5b&~T4^6c{zMqL$oPW5k~&gpIR@8R&$iLt^<^CoH5FA>Sd_n+A;@9bJue}M6yEMpYt;| zlrEoZTe8dhxbWVhFPbn+V$s`fd?yTwJ$EeZ(|R)&9-?$Jn>xpFU1IJ0tDM{99yiT> zepArc_mCTUYj1LLJHo|eZA~Wbx#8TVIstt$xawW%lDt3paymi1b?LkQa5ydbbnIj7 zrGK3?;HyzXD%qN$2N~V_S3{`G^U%DS-Mg$I!NP+Qf?UJh6m`!98! z2KjvEDeT!bws8tRFF`=5JY4E3ir85b_9W$~I5;(Ncz~7t#&A;?%c~9ibz0HXrkZER zQ{9J)mYZ;_e{5367t>#^63@YV)Eke}iE9KW1*9-8In7?r%3YEkce?b@7I`PR+IG$d z)&0zjX~y3qr=Ode?^~YAcS5Oknwk&hzVP$6Je$t7IXg(s6pCi!g(i4)$39a%JRbE@ zKb>21om4zMRzaMN!T15!qk*xfdq=lk1tqYuO7D3JXTFO*!DqjJ;VRIT&sgPv9eAry zPnY@2uc-sRu_X{z&-H;{?XP`8?jfY|&_q%QFEKd`ul|5qulJ)w#r0|wv3)Ce>ouuf zTas_1F$oWGSP0UF*e+)y?B02B2?iI~Y9!33W4+Va(JG-SR_Z)iBbR=3?(t{#>SVga z+xvG5l@W7yU75yeLELpl7xjW(|BfVu-!YfGF1M2Mb;3`v+g8`W8uEpeq2tOe=(^^& z;7c83@Jc+vrF+BdqB%>^W7XAfAU|`$5b*HppkiJ8X13OUAHQ0YKPAbbbs76cd>q=* zR&xMpyBrtu+I-}-^6wR>rn=u;tra|WwmWf<&U?Iu<8>n6yeyf@mP)ETH?&{CG;#9s zYm?l-L4-e#j= zoYUu(bi4g2fAT6LC9|}lH9zAx=&rm={o`4w&yEVEfb$5E@$dKus>HHiB{0cg*x%D< z&EKW${-%$~{)5V7fnX}=QUX)(uN0M>>+u53cIo>}WbzAjb+JsNz(%>HD_~PhE}WEl zp6l2Bg0z}HIKJbg{>E>v;1py2r2A1#CpG9UEbVlrvNYJeex~_xfg|Ph)q?K`V7Gw7 z(h3A;2iLa8J>TDtFR1PfQoWcoj!uVx$LI!{g@0}Ewna?zbF<58Naxyn7S;z-mi?<9 zd|5uaFzxNHL0p`3uRMtH)q+{*8F5zJl|A#os?)wk!^m(LG_TVUt3qKsl0LtfxtMZK zx}MdJDQ`PU`7d>9PM|B#olX8utxpG>$n3R|*k_3lNeTX5yyiR(i2HNmQ}0P|@Lw&- zz&m|KdQ;fS?CIm+0nTEd$@9Mlq}lhRwwqhOu^{cxIas8KpHNAeZ`UOkeZHYs=t2O)L1FyNDZo75gKo@e;_$SrhI`QFeht95*$)gN* zkhbdn*;(B{^wz^iz&o~8@<_{}z$p)#0&Ef`K!H&V>?&slLZ@=7CdkT{c}XVt_$nus zTC6jupAIv6OWBf`7L`a@SbraC$=`Ju&0IhDM_((}I*0}w6{Ecy>uQ1i8_eeiLj^yK z1z+WHc@CfTvlu0<9$h^PUXF~_s>9hN4N{h^x6euipWKkmm1`X2LJU0_1|@tQB4Zc1P_KDd&@1Y^ zJ+AxJ6Xs!`9o%E#oY58V@fTwLLc>K}um6)(aZ)R@ahNOwwZq?Qf2F~Gv8Y|X^;-c%p-(+Y#GR}jmCG1GqCBhFWywT5ffYcb^hNUBL1Sh~Ae%TDc= zY2N0dIw$o(nQTi+U$cpV!ig`;|SXy%O|O|916?`mw7rxP6bz%m4A|9Ae@#Cut}N zHuzDiI)3gh>34E^rE|ZU^zK6GspG4+!}Ba8Azxu=PpKuyv%5Cv$}_#D@gwl@sbBYi zcO0mv8%g!%x}P;T^|<yWdSn4>&d3hhrz6V zRmWie!Mc#bQ&nTHhuhA;xuH?fL8ry@ztOw%fttbEm&rVI=uB(wGb|{We>$g&+EGYn z`F{(VIh+DEG^Z*qW_A`*1-2hPops!*$WC7ue2O@HFqt=THoDNdojgif$y}fKBPe+u zd#k!2Saz?D9Py#;5{eMOJxO|fIH#o-(kb3n8iDMppn4eu&6me~^=Q6 z!Xq;`%Obw(ZrqqPkFZK7+jZru;=)af>n&^1XB7uR?J7=r1{;!sH3qB2%e)@@DozXr zJo#fr&<(+YgzjZ2roYp^j*qpS$cG%UwX46OvqW9ucfrmJKeUy6HN+s9zT3e8&&xHh za>t|k6FXsm-)T1rYMUr=>oX%e$$OKWzHx0AER0wj7H+L1s$V7n$tiGktB>ot z06O_RDZz?QJ`(!YdMSAQEUnU_qA~XKK9CNXQrH0y)_(02n-g{q;Y7rlQ3tclwL$_P zCvn=fZ!V;(Uv~k);CZFDa?v;7_&7Abq^4)yLX?yORQBVZW|6{4dgQ5+UA>Xz|^>^S0@K1-=ihK`vKU%Mm7`JA7XBkKY@s( z*D(t9w>MdAl$>FkVP2uo8o!IA^0w3Y@Q1yns#sZ zfzS@V`bdft!VvoUZOAtU({B+}zg|r~|2qW8VAJP3TbrkKRmlByX<&VskA@h)wLYJ< z4Azfg3-C3s)^9v74*LcAdE8$<1oQln*}D#SuBl8HKeM6_6Ae&X@i;VkzU^7pID(iV z2|q(CS0W-RG8md(_s(lS;{-po)N`O{1m-b!1~EhV`I_g$2Vi8P?a%=&K`iRk>6IfO z+^uvqT>lO%yB{-ZyL022y;>HT^B6x%1F8_*i(}TfvWvkczqa;Gf`^`t=lgeWQL?f` zD{B2bCw(3uuP2_$3I^l{1o2)9QD4Z|L2aU1-hX@YH9Oi48K8n(qOizYWAT6W4z5%& zc#w9pDTGV81`kIyiF5Ck*s_MF!qCvA2wnNWSU@CLUj3V zDJjYsu!#$g?aR_t7snv!AnW{x&_LdN{QyT3Glq&w701C3dC!k`zoMM32>r}uPTv8p z-ur2LB&Yy`Fwfr3Vn4=Eux3*7J(-PSD?G>^$a;l9NU{DIuzO9gb;}>u@*Jl_?SL)x z0y(=qE8$p@xNW9e*lBatv+=E(|05UqWBlO-2}z>WEkbBQk8tpLcH(A-I*ZW8Zr9`1 z*OFV4@$7Xms{Q#|ET8)>XV?QjjILus^@#aYA_(HcnkH0dZ9Guqop_j8DQJTP`bh*3 zTDO*T*8>}wD9X!i-#Go zed%XIdqk`zQlM}SK-Mh20!jZG!Tw9?N=YAQZ|m__CDZ~P_7RgLb`^)oCtHUxoAUrJ zai#YUI9<^Z|K;=fD2w;Vap_`}qblC{qOc9Flb_J(J7c` z-vLBHfyYxO^J}d|3Eh`@>p=cju=b0tZ4;CV4a|B=H+!?AQXlmPaF_$>i# zNXi{7bbAs8YjF-5c)Io}{skc$m?2sU+_+NJIZZ8L1A!F8fDjld?6)ISb?E%eSN2=?e!Pu5n_#fAu3a)J_m+g{@}E)&V`__ z3cyUgQB>StjsB27DMH=Ojux`Lyd2oHTfg#134_0XjShh1-n}46$Q#TXqCB{|*$`_ZA5yYmOnyCk?GMAVr|COrvdFn~{qa zT*J8an?7v1fwbyc(NWSkP?o%`DI88gUkD%6XEzY{D&R+f_#g_UP!cujMxPHD!lEu4qk2xB8QF^$72mV3oE4P1sIn+6lG2y`LVgM^?Nkl|6Q?kG`e7L;W zak%7UOERNj&_NaVfLeEfB9>ao*;tw@oUiB4X&_b$Pox7904n>Y5+k}lK@_@$zkdDt z`E&6=9Rvc@0;|lG^`K2!T-2#g5dzX6gB~48seo#OmWk8bhS4-If?2P2?#3J=xjn?V z)2k5;evzOv0M1a^pT)R5=fZC}b@3)MVmDMKA{tr2L&?`(n z^o0hHR?KkV54X6Ya}6@*z%ZyUrGHSjC9sN44M8x! zxqTpgZEqLr33tt}ujiRVmi~kH-&x&S%tq&u&$Ec4d|y87M#RGx!d8Hc0ir4RgmfOPmWcG9 zF99a#^$UXv2I(Wit^OyL_&+oDKL=bmFoTgmrbNI~gD^J!NrSxq<68lPMVGZ_{QH0HRJvjCp&@g!fXm|~4Z`h4Bo}b70rWP)$VGk!Tc^nj zhq-SoBIf#|scK|VK_V^;pr~O$a03hK`eH~#BySQ<25c0M@6ot4ejZUJQ5$IWt?UUh zr`e<$00WI6j}*dO4QQTj9WU+!0{w1J){Eq|Kb0;VHZ_|HEX>b)HP@Zroo{)1dV1um z6c_Wm@4UCiAZ7uc@?{@~Fl%XQf@3Nh8ynebeinMy8f#|^DLw{0pL2EI-EAeVtgJ9v zHxtploDIEv#PVOu)v_#Q;Q>#3isgMkQkd1IJe$^nrmXt zcUm=AX|5A(_%t5lgqCi)0@|udMv#IB_H#GI|jvSIlJMR5-}qVljgYF%|a=;QAw{W z=7Ss%XcGl+TYl{oij_sJKWP61voSGQ1CKiU?%F`CQnBZOdrs~h!Q8@vAnIl-CkQn7 zk_Z`(@8&m%wy5M$G@D09GAZe(gXLnpD_boydxBZ&fNPAIzR@;Ok}M=r$rcFcLk)`c z&O-pX5CiTg@~^brMRki()vX_Q3h+*bGtOhRy*;5Wk8+>i+(saf8sMm0NaqQ4g~<)=VsU-r{*1hDT+ zm_K5Nql3PVz4+N;JE&I}TJ#QkmOwnj=Rmy~pX`(}EwG#dLHq;`B=rKFuhY2<2A1#a z?Cer4>NWnE(?*|sIkxIYo&_e-kd&e~)pJZeZ@a~8OD^XD1%&&bbOg-JR}76IVvC81 zS(HW78@xmz;lQtDU`9gF+b&hvjL&CPP_@jRC0X|*p+GSoCO28gH9dz%GnXWc=&S zFAl!&bSb=e4zSHK-%_}DAw7BN-z+o&bCcJg5PKk+E%pM|wZ2yO?%G4l&*prypG4mJ zo0wjcym0=|3Zk--604x2`otKqkl&R}iU|S;1bktQ6BI%Z#Q21#PnMSN+fQ1V^Nh8$ z`VUG(I5PwGhYC~U1soQ;pT{SL%@*j2@0ZZRQoDVu(&h=Q$G*{Gqjz~8YP*uE>(i?m zJ?aI>Qiz9N!|_7WaLgU;$OdmXsj!5p*)2$!#xxVa0abSp{{Cr!%cHEeT;${{EgH*F-m|dcd5`oKh9sj z*j^?#p9L5E9`LmD>eVjzOk|2gZz8yt9Mm+cm(1evZ;(Rm2YX`ncy|oq=1Utm6@FMh@O}5iN>zE-0ftgxcUY_ivUgbNO8Py+PJMin8rYRUmdhB3k%hF}dn({`m#PTej z;d==jA@L;O=&I?&uv!b)v!x!jtdZwnwMDuD(3mQbNn9MZj7HFITnj`~aC&-r7b2HA zB`V^l$vj6-SGtgpZFrz04qGbx#(NW{AQOoU=v%3n>*%9aUxAB#oUY8QQ}D^bbZaMg z;P*Z7+IDsai**(a4fR!=31PXy?w@v1r~yxGisX)ve(*S80O{pa5;lmFm!h|iJFiyw zgsLmoLbcUoKG5Reo|4j|Zg$I!6ikkSP2qFD(Zj;BH$jTk1qnXeN=&2@A9?beCyoLF zwg|8fLF{#AzawsLyjr&|@8uH7(lRovJ)*zU z2$F4Zh0fdu-F17tx;?Rwyj z4p?_60x({!xMu|bNw7SOe!Bd%bmWk&Oq6{3SyCc<^9dgG69Hgi3L~Y>-~XMu;Ro={6n=g;x1XH>Iq=cQ&9K(%)qjwR0u8iU zURCv;0&dQ===~BkkazA$0r{}#aBF;#F&2m>3GfAmKib<3Gk>tMva+*af~4?Y>XNj7 zbl^b$Wjc-{BO{s!#40k3#2_j27xa!^!j>y7s@8ynTjWVw%08G%$G9khRH2@R`7OOI2`X4q~*tjWf z@ugxNj@URz2}TJ?QP|4Az;;p{aq92;Gq3HF(pHiu3N@+cSfVdXtl;9P>2v%k-p5&@ z>B=>e=Ekq*K_imp$|vZv37`@7V2L9$dobWPLPOFt>Ckm6?jDhG=t{>veMyqtmw)5% zTrnj>%B3%!bLAaDN-cX!_Vx3-7IxcGo7`dHIS(^jiTBnCp2LzfZdFT*VekV5X^uUwy z3SK+F_Ly{05TFx+oev)w(p3^~Pj`P(l_jG;n1%=c*^q(#B`VaFEk?pHV4xpG6qIHv zczFP^xSYmf{mWwaAg#qWc!dV#N!z4cjvkkLlV8P>=}cw4-{w#Bfk*kQl=%Z8+@0z! zC=4P0{caNv>_KclABqe&s*kEmIfkX%ye1e|OSlS$MpN^Wk0unO>L%B{DSVmz*g0n} z&0LO{@1Ml(%bPXnOc`W_kLKp*)4{!Emx7biOF-|LAf1_9CW-2XTf1#ttYy6TZYDnf{WBnnQvEiM}N$_XC@nnwD?aHDr*SX9MhSt{421q5JBs-smzxXP3y$BCg%YnO?| zV7b2fdpgski;IiY)C7qr+s=75KPt+ZL*0nl{_M{f!*GUwW==$X1-v2Aa7+_BO4yUS z$#N7rKsY1%_mb{M?s*CjbN0Wlx$J?HU_DARgEO4z@#;fSA{{^Nu$_61+B z^uEe1*=N_gXJ4A>t5yo;c-W3MkC!tpJ$%U=J+{vgUmJRvIy@BsjLg>>kmXFf#Nh+E~G|!yz+x}^i%E4%x4kA{ujgNBLj_7(ltA3bn z!QJ?;o(bcfGb)tlAAXq@g91q68@ua+<5NvMn~Qm9%9>3kY%7)FOzk^UZ`5EC%Ga&` zMCO~tb5^gh-LAqM{=_yl{6p7`wl4NkI-C|dcDPxMtmff9WuO$R;zSBryFQwq zVr;Vb;Yaev^wsHpLI3jSSC&fmTbji_wL`CQ!T967;|i79!f5AVGIFe(&hWU#6)hb7 zTX_N==l;5fqD#rF!SqP81?p2=sTHc$<2gYL)f-wzL);F)dp zvs+m6gy+V0$pW~^DZXNozvQtZe8Dd!iJvSWb7HNg@u#GzYzs`5c7`##EjA)|d_##* z&}sXHbxm>$?4BuqQk%#e3Mok|!Tg|U^u33(zf?w@zQpZBu7rLcK0Sf7K}SY4(I$-d z_EsAIe}AXa&9i7+@K_PY9QrDM-1J?{c?glk{q>3}zGw=zRk8wMcL+oLSKx?Gm>t7dtTi=q0c7=)l4VM)cD|ztdDogp3v~2Bs!#F44)xN$xfq^eUnOsllxZz!@ACS+ag>87>wo< zX(?PXUWDz`Ik03L{x{-tkwDevZUc!>o|&m`KNRLYx>NkvXP>=DgUa{(PE~WbwNW)| z${Fa(xNy>KluCC4gxoTjaWLgd3j{W>)y!Dr`Zw87)n8sqv;9Plz8zVflVv&Hd*hj# z?*Iv)_*I|R(%(p8+4vo4W&eOI%NH@zO`~UL*C~k(M;BA&MI^f@qwwkwP@yjc>b-3> zJ2_?ksVjwtXAi08gC%Vbq!)Xt8RUUr$hCXN00u0d1OJSV@Y&+f~I@ zwT^hdM%IolJK{o0-tn6%_Rvn~sh)x1V&m~DsKKa=*&IDjTKaIY=_x?tlR7sM(Ld|@ zWp;i4#gLM!aCI!*#>Y+hmg#qmizvJCzW4DHc=BmYhBQkOrsbtZZWAaAJ$8tpl&ym6u($dmOii^P!?y6t!eyEWB0TA2ShZ8^}W&rf8 zt(A+eOryj$eXmP;yTlSI78A|e_2_q<{!t6})TDpMa+kLL-qzM3)8iS&AzQW8ULUVI zk6?7fQ;Vs)DKj7Huo{&RA?YXFZdY+teyHbWzV=V=V6$>7&CYz1+th&^oEnLPLK#NO zK1b#0wSua(L}v={!Rx2DvCh<9ID%?VKZ}E{CmQR~kb#+*(EFnP;~{3vdcl9bm6$fx zkX<-h?R|uflA;}4tT`?@!{_nuStWOU8~s?pweH81b!Y9Zu_KC=7D=vv)H}6qk?k#G zdYm{y`rY+seKrz}0d{Ec)V#M(a)*sf@ zt8@aFYCa;DCy#@t0tcywdR zR2}pXUKVh(xdSVRe7Jnmy7%-GFV~(W=$|8OE_6H9Q|Cr<@2$sPO3Axu9||?cyLzHS zd$8pk`J%Yt`({bqJG~-gW%9PZ2b~O zV!%h}t$UZ+>qa+2!adR)`nY5;Zm|GDU15piW&Vw;CcmbQJk62g65CI!d$Hh28fH7h zS5yIOdO|BYUmxibQC(zvOzx#H_Y%D8wYrmGngngee;qt@fM(oXrq*ccI?84_4sECK zO@9Weh|!S|Ahq}0hQEx4Mm(KPymW|0rB=hI``qD@qukdVU*2E1xzEnbh>;ph*TDxp zhwtpPwu*>+2D3P3^%g+)=Qp#QdALG|j0>?~y}7O5QeM zrFB^Wjm~Wj8{O^g?FkU-Me&^IW`8A}tF5Be)`tL%l;WgfMz+pcJTQpPY9*w9^!LqS z`|2tly_}_`rLMLRw}G<#;d+NZP%PjGmvE|M>}%c?)HRW0XeO?sd@U&G4U`T7AFdQt zRpndVI3JGo2#P0Nj~46n^z`cG`zI+uG<4?IL~Xxkv??YAE%!bavt=kMt5AwqMosRf ze4bW9k6?ZJ;b_q6pvityGcD=~@DWCB9@33&@tj7jhHpHWD=V$@c|aj7mM9CW?P4MU zx>}@B)ac{BzP{?r>MH`8(GHq2H#OV4ySxAX=^7DpzX~i3gkB{b>9}s=&dMlc(^bRR>D1veq}#vH5Ll*laoR0x~yLo`=hGK!1Xv$LP^sN5LvV z)tcZ$({~m)n)cFWzTj@TL5%9x*s4nC`jV?Lxws<|Cg*>cSAsU@Pr2I}(>mnK%gfV& znj#~|-EfSxc7tg85xLl0p!!Pfc;XvrP_K|Nq@%paf+DzWj+o(z!V(l#g`*qb!=S)A zA9NBQpG)E(94HaXlU^N^g|LWzOldt~9b~vt+q7owsRznI93)bZyIpn1seFrpC?+b| z^|&?}p*CZ8YvB$08FiCTI^P(^^q@o8dI6MWhu1Bz;TGesw@im4xL@)5c}(VsSF;lJ zsX96y*Q~WM_A_zn305TtEmtpW-TJ_@Q2Fx*gLK)ZrnB;AsH!$gJY*%69cFgEdm^$h zGm{#AG}S7P`%zJ0?v0LtVTCh?IGr0Rt*<&ZJp78^F7;?SA|hg~hfDXBtD67KQF(3c z0@wQ9bWuY?!|yIkHj0W9n)3Kvr^vb`poxG++JO|zVAzb=O=?iWHe3fdwW%{a`b8M! zX*<2LnsPd)QHLM@TIQQTKSjmpyQzqHauN>xz7vgBKUmX(rE=++$LzQu+rkSgUv2ep zwV%2RFy9r;&I??$)fw|t!}dxPi0nlaBw(AB5)NJbX32*ZpC0&|uy^QAS6o`!tPNd1 zEuvJ*D5JfY<~)G{fy3Y4a0enBPW`@lHl*NKO{eAJhtX1i*xsIX?9YRXeZ0u%vfTQ< zxw#2as?up&(??EWHJw(Az@{@7P!AfmM`Ax&oGwDuMT-crO64(SAyD7P;Ci1Yrk7I> zaMD?kk=(E{_ki7`a9%~n!!nPiy@JR-EgI9%qH<#-B&k$QxY*|}K|bf3Wja;gMPo_0 zN}-$X{UNelzn5~eCM9>}aYZ-@iHR>>_a3jbG{~yGQqr#ZH>&2C+lV%Z#C~HXnuOSJ;Ijc1L|CFckR2lzkDWpu2Vsa z%bTFaPvi-QUnyl{dfUw-{kJdLBjwA7D2iCa#^^(bCIl4B?-1fmm8JV6FJx`OQcT@i zh^-(y+dfrw^-1S1YxqWv88y16$K~N(PU0%h&eA5ZAIxu6W#o()T!NxWYD`MQUD>c zyMu4sMnu{pSvKt{xNvNWZ~`WPZJ~lsANDC@Tdwkbn6B+C z6pk%b*=j-II-aYMiM67Q)9(A7?kLX*2MXEy5j5N&>OttEHEr?57WZR~zLvVWo?hlR z_%KwsQNAkt*c+6a%EHdhJjQCR3~X!s*q3@>r78bFBVBV0{-rjYDUseOTar&JuGGc% z{MivM-=OzPHG9{iW8WllZ%0Z31}5Hr>3i4BL%ouvBl+BJS!G`Cve`GHl6~iRUvKqS z2hUK*0Pmot8!5G;)^dsfBN=y6j!nCY8C|d55-t0Om~$=*nqPT+GXHCJC5^lgB%r2Y zl{H-?S69^_x)?O5f9{kmwxlrX{kNp?(-wUyIJ|)1^(-qZOFYB) z5a_l)wUSNr`d2&^KiQzrri@0JcsCshdmV`g+#eRXxePki-GKgiy}R3cL!=Tm0V>2} zheq_EIaUH4xUW8Dm9-2Wo+vusr+x?HI4}N8%Afg@RP)8D?NN#9NI57K-udSgbyaAs zvKWK{A7IJeW1P0et`$%gUAE&O90%fMQZ1X^v0kaFA%Z36Qc%)>XEh8-Z0HV(;nHhO zU5g=MH=XspWyxz%GV%F)y%olFO4%?A@%Fa29kX0Z>Wao{i0vZe#Hiq(na#qw6 zZpUWVk4|`RR6`|Cx_s;nLktqm95G*>=L2KPzHE$rH35ougWn~4qAN@;JZOf{_!Dj7 zkLZn-m4;NiKYx+#=E+>#8reXCv--_9r6O$Drf}ribXLI-`u34;kG8frPLFJ-JMpj{slt*bG!m_Xc^Nd)_O?sw_MdOaRI& zXKDi)lT?QfS)nQ<X4wXrM}KQR&6~Z`daVZYCRXeZkhogX){DfVA}GzkdGwxd#bJI}LsF z;G-uB%T>Y3b1Xc+uH5gw^A z2s*X9LiOlE$!8cF4^QmBu)MNT&57D4+Xmqhwu68`C}u_eeEj@>X*QLDx}E_9^6y8i z$Re|8o%gYWMbR8m=uaV%M@z~^XHZBO_%waCOcfAH=mU|RIr zXZy+Q>S_Q!#1Dik$ZI`e`5PAeILu^ya8SjG{VhUbcGh}=LL%T>VCR*zfe~Gi10i^^ zO-_C@3$|eFDv)(+fBaZF|_@}0&O>?x=6iHLk3L31o_{LPRAdtR} z@v~0>m(ZM3G^+0RktayDsc?XQ2yh<`WMG4|1S1-1>xvfHZ)xb+y;c%iwie^ z-UGSHi?;dvL3H8!V;XAJ>x59%z}i-O)QjX~^-Nug%R~s)&0v``&ZfKSQ9?f2!dMxW zsXrtEGmIAu9D({oC8Ufu?sT4USt^2K))F*je*=jT(HR0WW^ zE~~`kVpc-z=8&wPw<@1Pd-6oP*1o{3!du>mi0qrxFSU_1dnN`G{h*Rwlu^>5mrp3R zkQY-%N0W_AMu6TnU@Tv#Qot#vOq?WTW%(_2W7|-Bz&*Tud>l%87l~bWs9d3aR!GkZ zB4rA)7{YD=c9Tv#rE=FK2OCA7yoSas1QOf@RMOA`_ik`>1u7^W#+`%S0dE;nzqq_a z!6Xf#uMwTv6>{kgk$mqFjH8PGB%N^%g;59GnHd@7E-pp_Qt2p78lNPM^*t8R&r{AopAO0vv@cBpb~QVR zO|30JpzKxMQ?J%-UVW-#=-MCh7*MH%bpB2h`IxE#F18u&;c6)`^2U{ujqTE}LqBoZ zeYb@i_Tj|iJ;zJAqTEob%RRf=i!)b3_p$wAXXn#0eq&G}2_YdSC$oZ#9_?RjE$^>D zSqrJzq$Dx|4?bf*If>S`1$hEH`K?J&0XcP)p~l>g-3zC zyGOa@Ob@|4qZ;_kh+lo>yxZP8vg#_~ri=lLsB0AhCDj21KV18U9HNFk+VH(H_zrXf zES`U;R|$17=)KK|{@PEX82&m|1lify$2o>eCqSk}v_8RtD}@2PvFOhcuC*0=n_k)I z!Az)?!^-@C8xcmZ;uF;J_dxukwuT11M5Fa2)w!BiQFJ|{!&_5OGl^LUxpcvn`|7U3 zSA;ho=WdSCg7Hkt8c>%~-xSH;9xcsQs7F^+RM=!|f5;c}bps$H@29b$i3#GeS-Ey; z(tox9Yykpos(40_T-3?~AObNCKIZr80(3zY{iH%J8wuX)X1BJxdL4eAGL^XbPSwlH z%SLV9%6404t>sulc}&ei>vmSOR*K33YR`V!`dk|P9pN2(=}9HiVn-&`hg18tn!)i& zokZB?lkvPFoD#8LXNY7O=OO_?380ZlB^-puqbvYWLg-r8{!X@DleVJbaNPdvmd1Kt zkKUIPc>_tu)yBUg2ay7XB41vQmj?V_yuAfb9bvR4h`YOlaB+8ccXubaOK|t#?(XjH z?(V@YxF;bv1lZ1dZ+2$3W@~F|YqyG`Zujl~{I|P*Ir5$FIK=dm1IUtsX34OrFk-rb z`1`LWj~Zf;HQ}!T*#dGvHZVjRin`|NdQhY{`0kx7RYhMk1%}btj6`xfDQ_ z{aIOzePF5OvA%BMn$jf6hA_f;vom)1gXWTPJ{@zQ68OzHJoW18Djb*TGxmro77+>z z%BPB){8=?!-6^)TCN>;x2yi<7%>~@B1*XWi*N4X19Cyf-DE%xc1ov-Aqm@!mWns^`dQLiv+PX5W*X1Wi_U2m2UYI2@Gm(lg8Qm>Xys8m2>=!HHln& z07J$U^uZN)1l>z3eOvOvzA%Roi)#)6hqtTf6tpCXkwi?JX|68CqGX{&{1Toc`^?-V zOEq(gd>`ymu4fIzwsh@ie&D1MMnlfy^=u{8U5fJEhx0y z#bT-EDC!qMCSVK>N<^#sWCxOgj3i9Q?#_V)GcA~-@gS3E=1iqnd(Wkj3G14n<{(`| z@Z6Kb)r6tDG7lbDs=zd*DC+(x;Tl$pVm#^Y1F*{268aIm#&|UWtbM#>2KuRm3}ZbM zf^t$=h)@Z^LO;sqGX_7*iFT>!jGkmEU-!3ZrN40ML-oj{sqq(6dUz0oh?VQTIXG55+PuBG;E_t`JNF@e=pTYW$ zZv+>jXsDiTe?5-(qInAGp|+Y#qOe1_Tuv%z3TA|=>G1TtF+WBj4^33yfP>lO`*l9ZN5kWI2Jz4jioI)^M*(MVzvE#X|}Fil;*$_4#vj8 z(bUxJd*8IZGoPz2UUzid$N}^{jji@ul)k&S`Ee_-X%eGRTtWj604G`Fr(7OQD%B0k zcb&E)8GhM5G54tiyAjFK3_F28r5LF~lgxUyELF(0OTKc>qQNC~&dxX*YlooqbChck zSXr@EtM5irIxU^on776vadh8rsnCTP*C!)L^B^LS(J10&2}S5!r@0VQ%v~I=2VT+g zk%tp@e!!g8O+zEf6PU_Ex`n0CJ}PXFXgc@^n}wgPWtK-XcDduJ0C(X{|ItvW`vc!j=#qak=s zoaLpWPR=&(O!FUXJM#a+=l3t#7*_4rk_GeUFAh31V;Tn(Du)#6p-CmeMM&&uB8ULEJ#5Vg(TUhb^~J@64` zr@~x3J}sJKbk2v@wk$uCW6G-=x{RC(<7|Lkhkj`kmskKzNo{~@|WPHHj2C@l;O8vn1v&YR`v5a zBxoQv^chvDXI+@Uj^x;y}sm-T!~@`iKaGHl=TPU$wB-_8pS|gj^I_f zO&L_68GtMW^HwLDqes4>lZ4PDQSCdTcK%%NCb!-V1@;i6_|phq%K;Mp(hPIdD}Wa> zmVQBch?yHIWH9*Ll_9>u2u27l1bu3PCp9t8BNNZz0{rB^-6Q~D>qxjLGzc(RcdQr* z2%S_MZx+)lT+g4Wkr2UpLSwdFt7~l|H-eY){Rspu7G&-dh}+V;u;w4SJs;V*It*#_ z+aIM7!(6e+1jUP@VeQw1+Qm*6NAj^u7`Ec%9sDp0o&Wks!vNa;6|3=-+!=S)n{6$L zb*J^A>$0s%=_WzleZ^q-wz&H!u1}vl5X;%-)#UT{#XDL>1_Q$wXlunq)AH{J2&leU z`VGj!G*y(`IwpOim6_0Z@`nnPzB#1xOSW5Y7~C8ZK8Tb;+X`d2gv7C>3N{<|Km~42 zxMbv4ED*#)l!Hh^3&@<$WE&q!I%}ZcF4!fVyg>%jg8&nsx)++cQ~I@V?rb){D}7Q` zQSo&|$#ohcEq4zqf~)-MGnkQ*Nld{nG%feK1>zjdQscK z*i+}dF`7QobmS+9Dzk9Z?0_>(cjok!8(nP-Y4V%qw(AXIFrxrhw0#DWyU~M}u>^80 zLqo<_Cx=s43LSr(LeHw&kc&5vP1Bd0iZ-Y~?TBz~_fLa`BYx}S7ac6H^o(^^PfJ`9WzW*yABGBQ&cVIa;&Wj2h1+l>K|XVQ8XFVDej&a9#rvO6($sv^W6fS1AqcB1KknV9^>1M=A-EgP1hITZsvg~O==Gw}FX z_rYKyEx&@k*yVuT`~!qnHStK zyhBB!0;X4Ek*T(iPxopuUJ`6g=`AGK8YFZCF_2k+d6p9tio$5bkSk07Px3!R$q#3| zLm1EvAaAB{GkZOCxH|Z-!Xf9(4;oDikaa@M$e2bn_7w~=TX~0j@f877r|gJCv@S8l zY}MC&Q{9}&(LmmPK-j+x!Aba)t}l1_i@IEh$df3PzOSIysB;Bc{U@XZb$#DwCT4U9 z%_dCLDBYQ;^QxJY|+A<0?-50qUTrH=Ic{>EGOS(OuT|Y+|`hZ4% zDHXQZxQQH58>w{hx(Qx3FZ&7d?PM#&9JD`CWGmDg0{hwA++10P`B9Sxn4D$d_?MR#z;0}BYikNniG=3;9nDtR_#Y(79pL#O1B!SoB_r35 zd6>s1(Woj*?^BEA;_(8Jkc2u=rJ1EA;KCU>y$#LBPWlWyD!JRX*z+&BKW$q9o?vAF zxkmTuKc?me1Q*4Xl;q^-@YvzP@ufNME{g!G95{Qm2W-~1(~$0AfvHzbtaFx@Iqh9o zMnN&(SMxHFul!5yweR@yST#Q(0K|JO&39Le!+_faNb;lTX8)oWrgW>@@WbS@5{T_u z^sH|&aI~wvyu7sV1tAI0=yAG38ux?&g21L*@4vfPIcym*{Hg=lOP_C=gQc*5$Ri3v zLJKoBJl_98ivm*O=vM<<6|-rMfs6{UuQ}YSMkJ!K-;!<~p>-LEEahpQvi z-GLJl1_;Jl{Y8K=vczT7Uw>cgZ+dkZ4tEM#P@p>GXMpBq&dQ5Ro!dxv+qG}OmP zX4|;02*AjJ0j>f>!^z~&LMV3IOLUZNOD(V^19+_90g7a>OzwxlEbI~?iH~zh3$`Rj z^|fiLIfTVbk=4KD9Q|_`F+KlMgTID9p)4D1Z4%{qwiLy$BB?-$1HjLJ$q9-BS#C5d z`0GR=L~RGMLO0Z3M6vu<(5t|b^u@%6fdJyh>_rpzFyJ3w-_p>~FbATk@@Rfkj}05r z8`TC674M?*)}%3|0p8-hYr}OzVFx>ty>%kT1WTP8);HSet5xRJ%UO9XH5W&U`(l@c zfJt6~YfHz$!GT%Vo3^vp@0kC`t+Ee3((BoG<-x1HQrZIxTV>4TBdzcE5HQ+n8In+3 zongu72`2@N-L#Cgu-f8%*Wal8>q`MAvZ7oZR}`z)T2DofpSA39bT;aU&ouy%Gp+td zd7A^EVKnSskX-_Bf3XI}0c_zMusZQl1b)pF^eHTjGJ-)F8JUl)koAPTv(h7|^# zF819^*5Dy4CnpvqExV}DV-^)Jfq_M+(-a?VU}8l- z=`@PTfzQ7i>{`?}9|;Pg*>XN^IqG0je8Q$-{S5$~9tyT{DT1=02IBd3oL%U zGv9qa8UW6gE`Zx7GWzEy0N%MGres&{DMhyfu$2NN#}Ug_xuaE-qP+agUCAoNlCv3t z2EIUWGJ%pn2aX|#=)@Wx$ZJ!xnBf!)E;c3%VlS3*yOcKA?@)Fn8FC*_9jPL6x zP_vnAR9DSNaZe1^G37)C_d#>o+vu~0C>`s~2ETRbHW>^wo!m}|hN+Jit^xc|Q#f_F z%3UF$1o2y>YQsacf|g)OyhYi>XrAbzY+79my_)6csF*8~{XJ7xH3NbGYu7^^wFig| z%;%gcgAIK$Dn6h6QthguvO{QakV1W9`XB94B~6m;ay%cUr)>Z{r$o6s8&gr{4rrsj+8I^ zQagp}!J21|=AgenRShSi$$k}Nr^}*4WmfgJO2{Z(bqZ#CkDVbs$RXaaA`7E>})K!tCTq? zqW)Q<+Z_E!XnI@YTa&<4Vm4bBo_A)o!wq1N09NRFFKeMxH8(}w#jIJ_r;D={6|ahK zO(x5(Srexv=`zis0prCcUdWn&6A}P-P2qcDPXh@gbX@jD{l26U34qs3^O}Fe*3YUf zmXNbSld3IkGMP#(c;98$^>)@3U_-rI01`$wa<0y6OsoNi({wr$Znr_SL}~F8kWFV+ z4!g8;rqg3T?TL)jJ1{gPx*@KKHw7iJTqZNPd)9)+8Gj+}Ep`_A+fxL!mX>DG#!79~ zNJZtmv&IlmNu_-+*Q-y6b*_H#?7J*oR4`ACs#e+ve(3v3R86M@w|-IQ>@%cAnibQ7 z3#iu=`rw}(elJCi#KG{{$+kgGTYmzvw!_Hj)4#3gIDhBRZe&{u**Hm0VuQA6s1fgs zdXU-l0wHIqja%>BhMtz6*(c{jwaVoqCU=NfeQ~L7ovBlTD zUNOZUm+v2lXDmzV1UWjfdqyBj%Hjmc6-|gCM+(kh9a2;}ay6TzJQRBw>Z{-2V=N}q zL$-*GfjrVg>8CF2n|4efFqwn2JrprkS+s7Bh zEVf@gdu+LnLi4wM^F8mG6UDvr{4wqdZudus#1-3#yooM{bKo2VA_fA_2d^h}zO#p| zLPY%jGU^4HY7BZme+#i^iy@;~O1Idl7ayvXp;X&9MA*ce@|ZEJ8W< z-AH=oE`Vz{yNxoW5fLPbci&&GX&C4fFjx^S{|K_v4f$r&5EYRxxAx}@$*==79NvWP z7P>F>h*|`<89Kq-3Wrgj;#ey}tXZ#Ps*qa`*5p}R&-9X$%}ZayW;w5WLhYD~$1&!x z8kUZ7K}Tejeh(C92$1{eLA74a;;WL&=CWKgHfb!C zdX4MBb97fQef=%8p-j4!r#={L?qv3H*fq`{1ud77aF|v6y?gEUPk9AY)?_<;Dr*I} zH*_w#USj3N_nJ`Iu6#dj*~nFu;>E#3F=rHXR8-e?nQqcrSC4evhMXjKaf+pYhU3T; z+M=Q{{j%CxhV+JZ z70_}^?XB$|?(TVXqfMewM}xev1e>e%Lh4N^R-auZ$&FkQ)1WWdk(mMAriBD+yT>|t zF3)-zzBs>fyVcEp57`xTuy?WlCM(z zQo?Qtp|kpW5Jvpbh^ys&VG|T$ZkV=zfd4PwwGyE%BkJD6 zR{R$kjY-jdb9{xw=vJ^M2vk85qAN zpG479R$Motes-jBmQ0&lQ+i}S69wd-+(eN;BcJCnZ)dMIO@DMT=&h9!I_LKANv3lg z@xqfgdM#7(q%p0@n7SaXPTZCXD20TCXrJ^-q4fTnn@dMmoh}&4U|JDdikyniLigX* zL`oM%s>4ym9`@_?S@=T`(gN`NqA)hLi5j_&LXp7z28{T&{Y)DVr7Mx?dEw_eCjsZ4 za{S!ad@9$`(n1pavI=$u+{E%i;*o9Ywcyx*L@XB<7Y$pwC`*O|rLkv==8MNJj%l04 zi>i7{W~W#Q;4#d1bKhFi^S|obsN2>^G{@%b@ZC&VB+3@lC~IFJe-lQ}45gbA8A{t; ziY{-D9wQ*i|D)knAyr@CU33&F9jvhebNOq`SN57hR4&taeB~+8^Si8i#IaB%nKf#i z0i7w3=3YS?-y|9+swyp_f=xq%F{(}0;Xn9## zL)qQko%p$n9Yx~U&`r*sVIyse9yE1Blen2?q4?^KOm1ptDW3^X&q(3J?4G+=e&nSB zy%IX%wfiW36#w%Otl={5#hw1czIZ=>wJ8!*?#=4$dOcpsG_ekYb7u}UL#wv9$Xv9} z+GaPl-ru-Rk?c=vyJU5YmsWaq2hi)^xG#VGlHyt*zPE6{+D!eS3DC)KpDv^?dBF=r z6(aY%I`kM~=Vs>_Qs9}+{KZqMnmaqX^%`FxMlaPkmNieb$(1h{nEJe&rGd(7YZ&Zn zd8wDEl7E^oknVJqEscD<`sas>h$iu5P0lc6WJ z{*SNYt8NybMHJCBD@0LT9X)^5uPrEl=;g=9DHL)_*9m?fBwjS5sVE++1zD zFiOu@4p(S8qRFm_t%7YnN1>}7>Qd+CZHXrqw%YUakDU~(A>8;*1k4c@iEF3$(#1x* z5(n?e>B?|89lr#gxSQbE?Xz!+^v@xeJjjqfPYSt(cdES^k@+ZsTT02wSz5d$s}!7B zuL$P}7WAsdgx9_o#1nHo=$6%VcN`#ph#Z9{v=fDS{VOPNr-_W_WLW)lM!mFxQylRK)lXn#h-B zMg(tad|K3Hqqt3$Aq~&1rXhB1ueQ$cdtU`x5@UiH_(k#DDDjh?{{Fqqqn~e;pB%+_ zZJHH-A(HSE_A;}xhs*l)K{(;V5%dDds$DUa;4kfliF% z#TFkp;8ou&=$%A{3e29HQ{0GjD?LIT8a}9hN^N^OdmtkhrO+WN-6QLaqU|8}n1 z;A+h&&FWqf?&(`C!%WpFn>=|6d>XN3XA>FPH0PkcG2G&q+4%D znud!{az^Gmxql{LU*7 zhHU>KI0);|DAebXR5#4THl4aq7E2A}KRLcK9;lkNvI)9Gxc?3@jE(J`saB}ISW#mwy~)Tn zG1G7(KM&<91&S6bYi{@oesMq-wF&F&ioa(|QhqO2)2*~RM z7R|{?8LJwzSFs5bV-pk7OU48VFlfzQHbJjnXCG;nJBUf(Y%a6yV|qt@+e`XC%l+17I0q@?ekURJZJ_u9wk=uYZB z{2zA!_*4gM=yz;POw2v~ZcYIK2Gr>{3(*UNEUwEek6kY*+zD9C7{Qn5%f~&gwi4^Q z#-K0LHVM9k;H)p>`RO00!f$;qIZU(6&)w;>N;WGw`5Sq*)C~^L@lXsOQ zwFd2Pql;?3uqjZ4cFA4hB-EC+6LM|ZyZFzqJHM(a3)#M_GUplK)j_5-91-!TJBP z&LqqKex1qdT=+mTjogm_wwXnw;hE{LvlCz|p9c_lQ?b#%8UZ$dyM%V4ST{u1bXP;} z3*AtWEr$Lmq=GKLa*#S%L_q?3#Y83n+Ba$2;qYsXJa(v4_)wN}X^)AIbD* z>)R^J>5}=siwcCRTs%h{5p^d;^8aiFw}C^e<`(l^J&!{P9<+noLn4&WcITh9L)RV; z`@GnTbO%CIPQ8=#Ggz@mJ=qKY$6+4dtG!4x`d`ih1K}WbbD3AAz1mqrf5HVuKzP&F zKA>Z~tB~*TfT(6ZzcBFkolB?yYN$$Z1Sk=kg>wb?@R4PIy#XXefqY9bkD?P2A}d>7XE6UNQ-B=~wV4eEwV|l~Z$;uofj3!FoP-)wQZ?S^X!*>LGaDTAv#om#wNw*Th(qf)qDeH2K&Q8Ue~0 zTLxOSQl1jCvA~9G5+PJHZB3E`AR$l;;_YE(4Nc9(NgKlwwQ;K z4Q`t=@xu_1a>h^?z)bdpC`zcNMI$XIvA7>0Ddzm^*MJ)A8J4vOE38iMhunL9*%Jz7 zjjpbMnw`KX71`9TQIk;CybuMibEYCt8G=76rCsxF1jCh(okb?F?sQn=m7QG9Rm67{ zs?jN11r%Xv_4gxE`!1t0UZN4*Wz@vU`ADP=OpaKfAohCEC5%O4v1ysa91CuV*ZaDB z9U*81xr|&w2a9O?ce$tOÝQRH@i0CCDlGe=jvYcYo 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

      A_>Im?9gwex$uTv)~` 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

      *3f!6Yc;=;Z(r5=y?^+-{=S|mSENTm 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 `HMZqy^_=S<#rY^AW1S| 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�L&&YSQ_7V% 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 z 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

      40~T|gFPd?8H@xAF98@fisnjIWdy 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

      G5|h>vXiUI}|vOn;j^RM_x)}a5Dtyb^0K^ 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�_7Z%e_ z-LP@81beG`ff!!`;-c}=T*ZHYcLRH&UJ(^J@#G2qgA0;Vei@9hYNwyHuYXBLx!rHd z6)EnhralkReCuw4dg|AVhx-tZd_^vP`W=VkCdo^C@B)J|aQ!Znj`GW3jIn9IU#T+V z_~G&M^QYted;LrCSJDsC*!a&h=fpx^45L^&=R|gROf!+qK<)u48y3y`!@qs^r{lx3 z#R|zRQ8Kvw&P~XeG%{mvX)Od(Q4w862-yYxA0camGfkghs@Sjc9FaX7ZsB!i2H5@% zIOfT&ZodGVA0 z>RDV$fZSo;_jjtNMq@;#noGa7IAA4x6iAWvFwd-$ID&J|+i1vS58C;{J-Me2JTW6>r91Uz6eqr#MiCrrgQ5@B|oQOC9V3;kcT!y9w%a>X2xFBTRQFt=Xn2mpVGe4V3u8*Wb42Vcs&|n$)JI7B7Neffq;M zp#$ky186Y&gU6G%DjPg|eo82JNrY3-9lksO5XaAG&>kp?H-&Ogsx zalZq{U2;2bR&pC+RNr>TW?al)x@SH3^dV%SKzSD~Bcx#|_o~@@KivFa-9CjN_s5;_ zBu)J#fbZ|_74bAt$x3|JlKPqhGpal$O0AJWlo&&-V=O1h!yoaB zr#Z6R%iW3yIRTdm4PT`&uNh2ccQfGhb`6V9xWCu~hopjAf%Hc#Bf6K4Z&~Z$uUUtB z-kI?GyDxy>uP`6}3U_4b;YT(Qn;g}!*Wtf*cL(?<+#m4oR|xP=Si$4JK+e^(@$c>q z@K4zN2)|n)z&~LH2S3b5^Ut~X_jd>QCtxqY?^g)$Pgudjzb)`B%*B7@?hf!zz+Qyk ztq|a!u!4tQXI`NH33ogCuiV|2!0%R=4?oioNTr=Af2i@+-Iu`cR+tTcNeKiqUuVMa z@4f(jzruX@@vY&FoeRIa`x5xw3iIJtO2lmbE#2Lh!0%R=4?hlBT2DFrPmo@Ye@l0F zfPcdMLH_s^0{jzJaPp@(Apd96zrQ=cKS6#4`27k2{s}91_^}Ew5@ymr?n2#t3H)w_ z`S7D$Gb4R2{O;~c;CCy`ho6q36vNGh-`#x){BDK$@T(nA;NJ<<=lB-`MR#8UzguB8 z{A#AOo6W!e?hD}eE6j(VRJX%y{-u^ecV7a(TVX!@^nfmA^Dmk2y89CN-3s&JCmE6y z#hLu8AQE?90>4{f1pJ|kWIA!e&!3Qw#~lY-(nxVHk#Wg2_PM)EnsX9mI6I%gFXOE8 zxQx3@mKhC91uS9Bf?%jzX>ka~wEm}C9G07qp=e1wf%jIzh7Kf|EHsZM1B0KWN+Rm2uCeHD@X%8#fnR)26Oy~&tXI0aMXBi}8iYVdDzIQ= ze@=px;f6CQR=}k$`w@py!5OM3F%ZjI_aImF3unW02U4 z)tvRU@XpzXkpa|~vQG=Pjvp;j258@}<2IyGJ^Y5f2yVS-Qa#@!-0o+Kr~#Z@O|Zm; z0(ygBnM(iRJ`PD^fN(vF1FRLh*Fcaic{jP@XiR*MWXt_hw3;M~pU0%=!>_)k2Ve;|FZDBL&v~>r&15A_vVDulZ z=P*DfWKk_K&AURDE(|?_zEAR6ktGH`QrAjS�|QqMH)J7+$?a6JFIR5G|LArMdRy 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Ȑ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

      k%7A|Ip-2GraENRJH{2Po}-t#ji- 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 b(=Oe5b!piuA)LbIcMKBd%2n3CT*ChgC`Rf-e= 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

      W(4|7gmNVYRq^kXnQgq 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%0A4G5BS%up1P&>m2$+?Z)%XTtwL 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˜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

      mNa3X-ER)`-uXXXJx!b9!Hwz4ytM-V++)emV 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/Mo%7fgaM3=kUNku6$4=io9y2*&>gowY&>_x#Yu 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 literal 0 HcmV?d00001 diff --git a/Libs/RiscV/NEORV32/hdl/.gitkeep b/Libs/RiscV/NEORV32/hdl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Libs/RiscV/NEORV32/hds/.gitkeep b/Libs/RiscV/NEORV32/hds/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Libs/RiscV/NEORV32/rtl/README.md b/Libs/RiscV/NEORV32/rtl/README.md new file mode 100644 index 0000000..33e41ac --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/README.md @@ -0,0 +1,34 @@ +## VHDL Source Folders + + +### [`core`](https://github.com/stnolting/neorv32/tree/master/rtl/core) + +This folder contains the core VHDL files for the NEORV32 CPU and the NEORV32 Processor. +When creating a new synthesis/simulation project make sure that all `*.vhd` files from this folder are added to a +*new design library* called `neorv32`. + +:warning: The sub-folder [`core/mem`](https://github.com/stnolting/neorv32/tree/master/rtl/core/mem) +contains the _platform-agnostic_ VHDL architectures of the processor-internal memories. +You can _replace_ inclusion of these files by platform-optimized memory architectures. + + +### [`processor_templates`](https://github.com/stnolting/neorv32/tree/master/rtl/processor_templates`) + +Contains pre-configured "SoC" templates that instantiate the processor's top entity from `core`. +These templates can be instantiated directly within a FPGA-specific board wrapper. + + +### [`system_integration`](https://github.com/stnolting/neorv32/tree/master/rtl/system_integration`) + +Top entities in this folder provide the same peripheral/IO signals and configuration generics as the default +processor top entity from `core`, but feature a different interface type. +For example: an **AXI4-Lite**-compatible bus interface instead of the default Wishbone bus interface +or a top entity with _resolved_ port signal types. + + +### [`test_setups`](https://github.com/stnolting/neorv32/tree/master/rtl/test_setups`) + +Minimal test setups (FPGA- and board-independent) for the processor. See the +[README](https://github.com/stnolting/neorv32/tree/master/rtl/test_setups) +in that folder for more information. Note that these test setups are used in the +[NEORV32 USer Guide](https://stnolting.github.io/neorv32/ug). diff --git a/Libs/RiscV/NEORV32/rtl/core/mem/README.md b/Libs/RiscV/NEORV32/rtl/core/mem/README.md new file mode 100644 index 0000000..588d5b6 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/mem/README.md @@ -0,0 +1,14 @@ +# Processor Memory Source Files + +This folder provides the architecture-only VHDL sources for the processor-internal memories +(instruction memory "IMEM", data memory "DMEM"). Different implementations are available - but +only **one** version of each (IMEM and DMEM) has to be added as actual source files. + +For the first implementation the `*.default.vhd` files should be selected. The HDL style for describing +memories used by these files has proven **platform-independence** across several FPGA architectures and toolchains. + +If synthesis fails to infer actual block RAM resources from these default files, try the legacy `*.cyclone2.vhd` files, which +provide a different HDL style. These files are intended for legacy support of older Intel/Altera Quartus versions (13.0 and older). However, +these files do **not** use platform-specific macros or primitives - so they might also work for other FPGAs and toolchains. + +:warning: Make sure to add the selected files from this folder also to the `neorv32` design library. diff --git a/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.cyclone2.vhd b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.cyclone2.vhd new file mode 100644 index 0000000..de18bd7 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.cyclone2.vhd @@ -0,0 +1,130 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal data memory (DMEM) >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +architecture neorv32_dmem_rtl of neorv32_dmem is + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(DMEM_SIZE); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal addr : std_ulogic_vector(index_size_f(DMEM_SIZE/4)-1 downto 0); + signal addr_ff : std_ulogic_vector(index_size_f(DMEM_SIZE/4)-1 downto 0); + + -- -------------------------------------------------------------------------------------------------------------- -- + -- The memory (RAM) is built from 4 individual byte-wide memories b0..b3, since some synthesis tools have -- + -- problems with 32-bit memories that provide dedicated byte-enable signals AND/OR with multi-dimensional arrays. -- + -- -------------------------------------------------------------------------------------------------------------- -- + + -- RAM - not initialized at all -- + signal mem_ram_b0 : mem8_t(0 to DMEM_SIZE/4-1); + signal mem_ram_b1 : mem8_t(0 to DMEM_SIZE/4-1); + signal mem_ram_b2 : mem8_t(0 to DMEM_SIZE/4-1); + signal mem_ram_b3 : mem8_t(0 to DMEM_SIZE/4-1); + + -- read data -- + signal mem_ram_b0_rd, mem_ram_b1_rd, mem_ram_b2_rd, mem_ram_b3_rd : std_ulogic_vector(7 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using CYCLONE-2-optimized HDL style DMEM." severity note; + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal DMEM (RAM, " & natural'image(DMEM_SIZE) & " bytes)." severity note; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = DMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(index_size_f(DMEM_SIZE/4)+1 downto 2); -- word aligned + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + addr_ff <= addr; + if (acc_en = '1') then -- reduce switching activity when not accessed + if (wren_i = '1') and (ben_i(0) = '1') then -- byte 0 + mem_ram_b0(to_integer(unsigned(addr))) <= data_i(07 downto 00); + end if; + if (wren_i = '1') and (ben_i(1) = '1') then -- byte 1 + mem_ram_b1(to_integer(unsigned(addr))) <= data_i(15 downto 08); + end if; + if (wren_i = '1') and (ben_i(2) = '1') then -- byte 2 + mem_ram_b2(to_integer(unsigned(addr))) <= data_i(23 downto 16); + end if; + if (wren_i = '1') and (ben_i(3) = '1') then -- byte 3 + mem_ram_b3(to_integer(unsigned(addr))) <= data_i(31 downto 24); + end if; + end if; + end if; + end process mem_access; + + -- sync(!) read - alternative HDL style -- + mem_ram_b0_rd <= mem_ram_b0(to_integer(unsigned(addr_ff))); + mem_ram_b1_rd <= mem_ram_b1(to_integer(unsigned(addr_ff))); + mem_ram_b2_rd <= mem_ram_b2(to_integer(unsigned(addr_ff))); + mem_ram_b3_rd <= mem_ram_b3(to_integer(unsigned(addr_ff))); + + + -- Bus Feedback --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + bus_feedback: process(clk_i) + begin + if rising_edge(clk_i) then + rden <= acc_en and rden_i; + ack_o <= acc_en and (rden_i or wren_i); + end if; + end process bus_feedback; + + -- pack -- + rdata <= mem_ram_b3_rd & mem_ram_b2_rd & mem_ram_b1_rd & mem_ram_b0_rd; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_dmem_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.default.vhd b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.default.vhd new file mode 100644 index 0000000..99b7762 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_dmem.default.vhd @@ -0,0 +1,132 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal data memory (DMEM) >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +architecture neorv32_dmem_rtl of neorv32_dmem is + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(DMEM_SIZE); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal addr : std_ulogic_vector(index_size_f(DMEM_SIZE/4)-1 downto 0); + + -- -------------------------------------------------------------------------------------------------------------- -- + -- The memory (RAM) is built from 4 individual byte-wide memories b0..b3, since some synthesis tools have -- + -- problems with 32-bit memories that provide dedicated byte-enable signals AND/OR with multi-dimensional arrays. -- + -- -------------------------------------------------------------------------------------------------------------- -- + + -- RAM - not initialized at all -- + signal mem_ram_b0 : mem8_t(0 to DMEM_SIZE/4-1); + signal mem_ram_b1 : mem8_t(0 to DMEM_SIZE/4-1); + signal mem_ram_b2 : mem8_t(0 to DMEM_SIZE/4-1); + signal mem_ram_b3 : mem8_t(0 to DMEM_SIZE/4-1); + + -- read data -- + signal mem_ram_b0_rd, mem_ram_b1_rd, mem_ram_b2_rd, mem_ram_b3_rd : std_ulogic_vector(7 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using DEFAULT platform-agnostic DMEM." severity note; + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal DMEM (RAM, " & natural'image(DMEM_SIZE) & " bytes)." severity note; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = DMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(index_size_f(DMEM_SIZE/4)+1 downto 2); -- word aligned + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- this RAM style should not require "no_rw_check" attributes as the read-after-write behavior + -- is intended to be defined implicitly via the if-WRITE-else-READ construct + if (acc_en = '1') then -- reduce switching activity when not accessed + if (wren_i = '1') and (ben_i(0) = '1') then -- byte 0 + mem_ram_b0(to_integer(unsigned(addr))) <= data_i(07 downto 00); + else + mem_ram_b0_rd <= mem_ram_b0(to_integer(unsigned(addr))); + end if; + if (wren_i = '1') and (ben_i(1) = '1') then -- byte 1 + mem_ram_b1(to_integer(unsigned(addr))) <= data_i(15 downto 08); + else + mem_ram_b1_rd <= mem_ram_b1(to_integer(unsigned(addr))); + end if; + if (wren_i = '1') and (ben_i(2) = '1') then -- byte 2 + mem_ram_b2(to_integer(unsigned(addr))) <= data_i(23 downto 16); + else + mem_ram_b2_rd <= mem_ram_b2(to_integer(unsigned(addr))); + end if; + if (wren_i = '1') and (ben_i(3) = '1') then -- byte 3 + mem_ram_b3(to_integer(unsigned(addr))) <= data_i(31 downto 24); + else + mem_ram_b3_rd <= mem_ram_b3(to_integer(unsigned(addr))); + end if; + end if; + end if; + end process mem_access; + + + -- Bus Feedback --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + bus_feedback: process(clk_i) + begin + if rising_edge(clk_i) then + rden <= acc_en and rden_i; + ack_o <= acc_en and (rden_i or wren_i); + end if; + end process bus_feedback; + + -- pack -- + rdata <= mem_ram_b3_rd & mem_ram_b2_rd & mem_ram_b1_rd & mem_ram_b0_rd; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_dmem_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.cyclone2.vhd b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.cyclone2.vhd new file mode 100644 index 0000000..2200e32 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.cyclone2.vhd @@ -0,0 +1,176 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal instruction memory (IMEM) >> # +-- # ********************************************************************************************* # +-- # This memory optionally includes the in-place executable image of the application. See the # +-- # processor's documentary to get more information. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_application_image.all; -- this file is generated by the image generator + +architecture neorv32_imem_rtl of neorv32_imem is + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(IMEM_SIZE); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal addr : std_ulogic_vector(index_size_f(IMEM_SIZE/4)-1 downto 0); + signal addr_ff : std_ulogic_vector(index_size_f(IMEM_SIZE/4)-1 downto 0); + + -- --------------------------- -- + -- IMEM as pre-initialized ROM -- + -- --------------------------- -- + + -- application (image) size in bytes -- + constant imem_app_size_c : natural := (application_init_image'length)*4; + + -- ROM - initialized with executable code -- + constant mem_rom : mem32_t(0 to IMEM_SIZE/4-1) := mem32_init_f(application_init_image, IMEM_SIZE/4); + + -- read data -- + signal mem_rom_rd : std_ulogic_vector(31 downto 0); + + -- -------------------------------------------------------------------------------------------------------------- -- + -- The memory (RAM) is built from 4 individual byte-wide memories b0..b3, since some synthesis tools have -- + -- problems with 32-bit memories that provide dedicated byte-enable signals AND/OR with multi-dimensional arrays. -- + -- -------------------------------------------------------------------------------------------------------------- -- + + -- RAM - not initialized at all -- + signal mem_ram_b0 : mem8_t(0 to IMEM_SIZE/4-1); + signal mem_ram_b1 : mem8_t(0 to IMEM_SIZE/4-1); + signal mem_ram_b2 : mem8_t(0 to IMEM_SIZE/4-1); + signal mem_ram_b3 : mem8_t(0 to IMEM_SIZE/4-1); + + -- read data -- + signal mem_b0_rd, mem_b1_rd, mem_b2_rd, mem_b3_rd : std_ulogic_vector(7 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using CYCLONE-2-optimized HDL style IMEM." severity note; + assert not (IMEM_AS_IROM = true) report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal IMEM as ROM (" & natural'image(IMEM_SIZE) & + " bytes), pre-initialized with application (" & natural'image(imem_app_size_c) & " bytes)." severity note; + -- + assert not (IMEM_AS_IROM = false) report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal IMEM as blank RAM (" & natural'image(IMEM_SIZE) & + " bytes)." severity note; + -- + assert not ((IMEM_AS_IROM = true) and (imem_app_size_c > IMEM_SIZE)) report "NEORV32 PROCESSOR CONFIG ERROR: Application (image = " & natural'image(imem_app_size_c) & + " bytes) does not fit into processor-internal IMEM (ROM = " & natural'image(IMEM_SIZE) & " bytes)!" severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = IMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(index_size_f(IMEM_SIZE/4)+1 downto 2); -- word aligned + + + -- Implement IMEM as pre-initialized ROM -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_rom: + if (IMEM_AS_IROM = true) generate + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + if (acc_en = '1') then -- reduce switching activity when not accessed + mem_rom_rd <= mem_rom(to_integer(unsigned(addr))); + end if; + end if; + end process mem_access; + -- read data -- + rdata <= mem_rom_rd; + end generate; + + + -- Implement IMEM as not-initialized RAM -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_ram: + if (IMEM_AS_IROM = false) generate + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + addr_ff <= addr; + if (acc_en = '1') then -- reduce switching activity when not accessed + if (wren_i = '1') and (ben_i(0) = '1') then -- byte 0 + mem_ram_b0(to_integer(unsigned(addr))) <= data_i(07 downto 00); + end if; + if (wren_i = '1') and (ben_i(1) = '1') then -- byte 1 + mem_ram_b1(to_integer(unsigned(addr))) <= data_i(15 downto 08); + end if; + if (wren_i = '1') and (ben_i(2) = '1') then -- byte 2 + mem_ram_b2(to_integer(unsigned(addr))) <= data_i(23 downto 16); + end if; + if (wren_i = '1') and (ben_i(3) = '1') then -- byte 3 + mem_ram_b3(to_integer(unsigned(addr))) <= data_i(31 downto 24); + end if; + end if; + end if; + end process mem_access; + -- sync(!) read - alternative HDL style -- + mem_b0_rd <= mem_ram_b0(to_integer(unsigned(addr_ff))); + mem_b1_rd <= mem_ram_b1(to_integer(unsigned(addr_ff))); + mem_b2_rd <= mem_ram_b2(to_integer(unsigned(addr_ff))); + mem_b3_rd <= mem_ram_b3(to_integer(unsigned(addr_ff))); + -- pack -- + rdata <= mem_b3_rd & mem_b2_rd & mem_b1_rd & mem_b0_rd; + end generate; + + + -- Bus Feedback --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + bus_feedback: process(clk_i) + begin + if rising_edge(clk_i) then + rden <= acc_en and rden_i; + if (IMEM_AS_IROM = true) then + ack_o <= acc_en and rden_i; + else + ack_o <= acc_en and (rden_i or wren_i); + end if; + end if; + end process bus_feedback; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_imem_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.default.vhd b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.default.vhd new file mode 100644 index 0000000..d0c924d --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/mem/neorv32_imem.default.vhd @@ -0,0 +1,179 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal instruction memory (IMEM) >> # +-- # ********************************************************************************************* # +-- # This memory optionally includes the in-place executable image of the application. See the # +-- # processor's documentary to get more information. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_application_image.all; -- this file is generated by the image generator + +architecture neorv32_imem_rtl of neorv32_imem is + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(IMEM_SIZE); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal addr : std_ulogic_vector(index_size_f(IMEM_SIZE/4)-1 downto 0); + + -- --------------------------- -- + -- IMEM as pre-initialized ROM -- + -- --------------------------- -- + + -- application (image) size in bytes -- + constant imem_app_size_c : natural := (application_init_image'length)*4; + + -- ROM - initialized with executable code -- + constant mem_rom : mem32_t(0 to IMEM_SIZE/4-1) := mem32_init_f(application_init_image, IMEM_SIZE/4); + + -- read data -- + signal mem_rom_rd : std_ulogic_vector(31 downto 0); + + -- -------------------------------------------------------------------------------------------------------------- -- + -- The memory (RAM) is built from 4 individual byte-wide memories b0..b3, since some synthesis tools have -- + -- problems with 32-bit memories that provide dedicated byte-enable signals AND/OR with multi-dimensional arrays. -- + -- -------------------------------------------------------------------------------------------------------------- -- + + -- RAM - not initialized at all -- + signal mem_ram_b0 : mem8_t(0 to IMEM_SIZE/4-1); + signal mem_ram_b1 : mem8_t(0 to IMEM_SIZE/4-1); + signal mem_ram_b2 : mem8_t(0 to IMEM_SIZE/4-1); + signal mem_ram_b3 : mem8_t(0 to IMEM_SIZE/4-1); + + -- read data -- + signal mem_b0_rd, mem_b1_rd, mem_b2_rd, mem_b3_rd : std_ulogic_vector(7 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using DEFAULT platform-agnostic IMEM." severity note; + assert not (IMEM_AS_IROM = true) report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal IMEM as ROM (" & natural'image(IMEM_SIZE) & + " bytes), pre-initialized with application (" & natural'image(imem_app_size_c) & " bytes)." severity note; + -- + assert not (IMEM_AS_IROM = false) report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal IMEM as blank RAM (" & natural'image(IMEM_SIZE) & + " bytes)." severity note; + -- + assert not ((IMEM_AS_IROM = true) and (imem_app_size_c > IMEM_SIZE)) report "NEORV32 PROCESSOR CONFIG ERROR: Application (image = " & natural'image(imem_app_size_c) & + " bytes) does not fit into processor-internal IMEM (ROM = " & natural'image(IMEM_SIZE) & " bytes)!" severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = IMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(index_size_f(IMEM_SIZE/4)+1 downto 2); -- word aligned + + + -- Implement IMEM as pre-initialized ROM -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_rom: + if (IMEM_AS_IROM = true) generate + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + if (acc_en = '1') then -- reduce switching activity when not accessed + mem_rom_rd <= mem_rom(to_integer(unsigned(addr))); + end if; + end if; + end process mem_access; + -- read data -- + rdata <= mem_rom_rd; + end generate; + + + -- Implement IMEM as not-initialized RAM -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_ram: + if (IMEM_AS_IROM = false) generate + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- this RAM style should not require "no_rw_check" attributes as the read-after-write behavior + -- is intended to be defined implicitly via the if-WRITE-else-READ construct + if (acc_en = '1') then -- reduce switching activity when not accessed + if (wren_i = '1') and (ben_i(0) = '1') then -- byte 0 + mem_ram_b0(to_integer(unsigned(addr))) <= data_i(07 downto 00); + else + mem_b0_rd <= mem_ram_b0(to_integer(unsigned(addr))); + end if; + if (wren_i = '1') and (ben_i(1) = '1') then -- byte 1 + mem_ram_b1(to_integer(unsigned(addr))) <= data_i(15 downto 08); + else + mem_b1_rd <= mem_ram_b1(to_integer(unsigned(addr))); + end if; + if (wren_i = '1') and (ben_i(2) = '1') then -- byte 2 + mem_ram_b2(to_integer(unsigned(addr))) <= data_i(23 downto 16); + else + mem_b2_rd <= mem_ram_b2(to_integer(unsigned(addr))); + end if; + if (wren_i = '1') and (ben_i(3) = '1') then -- byte 3 + mem_ram_b3(to_integer(unsigned(addr))) <= data_i(31 downto 24); + else + mem_b3_rd <= mem_ram_b3(to_integer(unsigned(addr))); + end if; + end if; + end if; + end process mem_access; + -- read data -- + rdata <= mem_b3_rd & mem_b2_rd & mem_b1_rd & mem_b0_rd; + end generate; + + + -- Bus Feedback --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + bus_feedback: process(clk_i) + begin + if rising_edge(clk_i) then + rden <= acc_en and rden_i; + if (IMEM_AS_IROM = true) then + ack_o <= acc_en and rden_i; + else + ack_o <= acc_en and (rden_i or wren_i); + end if; + end if; + end process bus_feedback; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_imem_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_application_image.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_application_image.vhd new file mode 100644 index 0000000..34b35ad --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_application_image.vhd @@ -0,0 +1,883 @@ +-- The NEORV32 RISC-V Processor, https://github.com/stnolting/neorv32 +-- Auto-generated memory init file (for APPLICATION) from source file +-- Size: 3468 bytes + +library ieee; +use ieee.std_logic_1164.all; + +library neorv32; +use neorv32.neorv32_package.all; + +package neorv32_application_image is + + constant application_init_image : mem32_t := ( + 00000000 => x"00000037", + 00000001 => x"80002117", + 00000002 => x"ff810113", + 00000003 => x"80000197", + 00000004 => x"7f418193", + 00000005 => x"00000517", + 00000006 => x"12050513", + 00000007 => x"30551073", + 00000008 => x"34151073", + 00000009 => x"30001073", + 00000010 => x"30401073", + 00000011 => x"30601073", + 00000012 => x"ffa00593", + 00000013 => x"32059073", + 00000014 => x"b0001073", + 00000015 => x"b8001073", + 00000016 => x"b0201073", + 00000017 => x"b8201073", + 00000018 => x"00000093", + 00000019 => x"00000213", + 00000020 => x"00000293", + 00000021 => x"00000313", + 00000022 => x"00000393", + 00000023 => x"00000713", + 00000024 => x"00000793", + 00000025 => x"00000813", + 00000026 => x"00000893", + 00000027 => x"00000913", + 00000028 => x"00000993", + 00000029 => x"00000a13", + 00000030 => x"00000a93", + 00000031 => x"00000b13", + 00000032 => x"00000b93", + 00000033 => x"00000c13", + 00000034 => x"00000c93", + 00000035 => x"00000d13", + 00000036 => x"00000d93", + 00000037 => x"00000e13", + 00000038 => x"00000e93", + 00000039 => x"00000f13", + 00000040 => x"00000f93", + 00000041 => x"00000417", + 00000042 => x"d5c40413", + 00000043 => x"00000497", + 00000044 => x"f5448493", + 00000045 => x"00042023", + 00000046 => x"00440413", + 00000047 => x"fe941ce3", + 00000048 => x"80000597", + 00000049 => x"f4058593", + 00000050 => x"87418613", + 00000051 => x"00c5d863", + 00000052 => x"00058023", + 00000053 => x"00158593", + 00000054 => x"ff5ff06f", + 00000055 => x"00001597", + 00000056 => x"cb058593", + 00000057 => x"80000617", + 00000058 => x"f1c60613", + 00000059 => x"80000697", + 00000060 => x"f1468693", + 00000061 => x"00d65c63", + 00000062 => x"00058703", + 00000063 => x"00e60023", + 00000064 => x"00158593", + 00000065 => x"00160613", + 00000066 => x"fedff06f", + 00000067 => x"00000513", + 00000068 => x"00000593", + 00000069 => x"06c000ef", + 00000070 => x"34051073", + 00000071 => x"00000093", + 00000072 => x"00008463", + 00000073 => x"000080e7", + 00000074 => x"30047073", + 00000075 => x"10500073", + 00000076 => x"ffdff06f", + 00000077 => x"ff810113", + 00000078 => x"00812023", + 00000079 => x"00912223", + 00000080 => x"34202473", + 00000081 => x"02044663", + 00000082 => x"34102473", + 00000083 => x"00041483", + 00000084 => x"0034f493", + 00000085 => x"00240413", + 00000086 => x"34141073", + 00000087 => x"00300413", + 00000088 => x"00941863", + 00000089 => x"34102473", + 00000090 => x"00240413", + 00000091 => x"34141073", + 00000092 => x"00012403", + 00000093 => x"00412483", + 00000094 => x"00810113", + 00000095 => x"30200073", + 00000096 => x"00005537", + 00000097 => x"ff010113", + 00000098 => x"00000613", + 00000099 => x"00000593", + 00000100 => x"b0050513", + 00000101 => x"00112623", + 00000102 => x"088000ef", + 00000103 => x"780000ef", + 00000104 => x"00050c63", + 00000105 => x"730000ef", + 00000106 => x"00001537", + 00000107 => x"ac850513", + 00000108 => x"134000ef", + 00000109 => x"020000ef", + 00000110 => x"00001537", + 00000111 => x"aa450513", + 00000112 => x"124000ef", + 00000113 => x"00c12083", + 00000114 => x"00100513", + 00000115 => x"01010113", + 00000116 => x"00008067", + 00000117 => x"ff010113", + 00000118 => x"00000513", + 00000119 => x"00000593", + 00000120 => x"00112623", + 00000121 => x"00812423", + 00000122 => x"744000ef", + 00000123 => x"00000513", + 00000124 => x"00150413", + 00000125 => x"00000593", + 00000126 => x"0ff57513", + 00000127 => x"730000ef", + 00000128 => x"0c800513", + 00000129 => x"164000ef", + 00000130 => x"00040513", + 00000131 => x"fe5ff06f", + 00000132 => x"fe802503", + 00000133 => x"01255513", + 00000134 => x"00157513", + 00000135 => x"00008067", + 00000136 => x"ff010113", + 00000137 => x"00812423", + 00000138 => x"00912223", + 00000139 => x"00112623", + 00000140 => x"fa002023", + 00000141 => x"fe002783", + 00000142 => x"00058413", + 00000143 => x"00151593", + 00000144 => x"00078513", + 00000145 => x"00060493", + 00000146 => x"7b0000ef", + 00000147 => x"01051513", + 00000148 => x"000017b7", + 00000149 => x"01055513", + 00000150 => x"00000713", + 00000151 => x"ffe78793", + 00000152 => x"04a7e463", + 00000153 => x"0034f793", + 00000154 => x"00347413", + 00000155 => x"fff50513", + 00000156 => x"01479793", + 00000157 => x"01641413", + 00000158 => x"00f567b3", + 00000159 => x"0087e7b3", + 00000160 => x"01871713", + 00000161 => x"00c12083", + 00000162 => x"00812403", + 00000163 => x"00e7e7b3", + 00000164 => x"10000737", + 00000165 => x"00e7e7b3", + 00000166 => x"faf02023", + 00000167 => x"00412483", + 00000168 => x"01010113", + 00000169 => x"00008067", + 00000170 => x"ffe70693", + 00000171 => x"0fd6f693", + 00000172 => x"00069a63", + 00000173 => x"00355513", + 00000174 => x"00170713", + 00000175 => x"0ff77713", + 00000176 => x"fa1ff06f", + 00000177 => x"00155513", + 00000178 => x"ff1ff06f", + 00000179 => x"00040737", + 00000180 => x"fa002783", + 00000181 => x"00e7f7b3", + 00000182 => x"fe079ce3", + 00000183 => x"faa02223", + 00000184 => x"00008067", + 00000185 => x"ff010113", + 00000186 => x"00812423", + 00000187 => x"01212023", + 00000188 => x"00112623", + 00000189 => x"00912223", + 00000190 => x"00050413", + 00000191 => x"00a00913", + 00000192 => x"00044483", + 00000193 => x"00140413", + 00000194 => x"00049e63", + 00000195 => x"00c12083", + 00000196 => x"00812403", + 00000197 => x"00412483", + 00000198 => x"00012903", + 00000199 => x"01010113", + 00000200 => x"00008067", + 00000201 => x"01249663", + 00000202 => x"00d00513", + 00000203 => x"fa1ff0ef", + 00000204 => x"00048513", + 00000205 => x"f99ff0ef", + 00000206 => x"fc9ff06f", + 00000207 => x"ff010113", + 00000208 => x"c81026f3", + 00000209 => x"c0102773", + 00000210 => x"c81027f3", + 00000211 => x"fed79ae3", + 00000212 => x"00e12023", + 00000213 => x"00f12223", + 00000214 => x"00012503", + 00000215 => x"00412583", + 00000216 => x"01010113", + 00000217 => x"00008067", + 00000218 => x"fd010113", + 00000219 => x"00a12623", + 00000220 => x"fe002503", + 00000221 => x"3e800593", + 00000222 => x"02112623", + 00000223 => x"02812423", + 00000224 => x"02912223", + 00000225 => x"03212023", + 00000226 => x"01312e23", + 00000227 => x"66c000ef", + 00000228 => x"00c12603", + 00000229 => x"00000693", + 00000230 => x"00000593", + 00000231 => x"5c4000ef", + 00000232 => x"00050413", + 00000233 => x"00058993", + 00000234 => x"f95ff0ef", + 00000235 => x"00058913", + 00000236 => x"00050493", + 00000237 => x"f89ff0ef", + 00000238 => x"00b96663", + 00000239 => x"05259263", + 00000240 => x"04a4f063", + 00000241 => x"008484b3", + 00000242 => x"0084b433", + 00000243 => x"01390933", + 00000244 => x"01240433", + 00000245 => x"f69ff0ef", + 00000246 => x"fe85eee3", + 00000247 => x"00b41463", + 00000248 => x"fe956ae3", + 00000249 => x"02c12083", + 00000250 => x"02812403", + 00000251 => x"02412483", + 00000252 => x"02012903", + 00000253 => x"01c12983", + 00000254 => x"03010113", + 00000255 => x"00008067", + 00000256 => x"01c99913", + 00000257 => x"00445413", + 00000258 => x"00896433", + 00000259 => x"00040a63", + 00000260 => x"00040863", + 00000261 => x"fff40413", + 00000262 => x"00000013", + 00000263 => x"ff1ff06f", + 00000264 => x"fc5ff06f", + 00000265 => x"00000000", + 00000266 => x"00000000", + 00000267 => x"00000000", + 00000268 => x"fc010113", + 00000269 => x"02112e23", + 00000270 => x"02512c23", + 00000271 => x"02612a23", + 00000272 => x"02712823", + 00000273 => x"02a12623", + 00000274 => x"02b12423", + 00000275 => x"02c12223", + 00000276 => x"02d12023", + 00000277 => x"00e12e23", + 00000278 => x"00f12c23", + 00000279 => x"01012a23", + 00000280 => x"01112823", + 00000281 => x"01c12623", + 00000282 => x"01d12423", + 00000283 => x"01e12223", + 00000284 => x"01f12023", + 00000285 => x"34102773", + 00000286 => x"34071073", + 00000287 => x"342027f3", + 00000288 => x"0807c863", + 00000289 => x"00071683", + 00000290 => x"00300593", + 00000291 => x"0036f693", + 00000292 => x"00270613", + 00000293 => x"00b69463", + 00000294 => x"00470613", + 00000295 => x"34161073", + 00000296 => x"00b00713", + 00000297 => x"04f77a63", + 00000298 => x"6ac00793", + 00000299 => x"000780e7", + 00000300 => x"03c12083", + 00000301 => x"03812283", + 00000302 => x"03412303", + 00000303 => x"03012383", + 00000304 => x"02c12503", + 00000305 => x"02812583", + 00000306 => x"02412603", + 00000307 => x"02012683", + 00000308 => x"01c12703", + 00000309 => x"01812783", + 00000310 => x"01412803", + 00000311 => x"01012883", + 00000312 => x"00c12e03", + 00000313 => x"00812e83", + 00000314 => x"00412f03", + 00000315 => x"00012f83", + 00000316 => x"04010113", + 00000317 => x"30200073", + 00000318 => x"00001737", + 00000319 => x"00279793", + 00000320 => x"ae470713", + 00000321 => x"00e787b3", + 00000322 => x"0007a783", + 00000323 => x"00078067", + 00000324 => x"80000737", + 00000325 => x"ffd74713", + 00000326 => x"00e787b3", + 00000327 => x"01c00713", + 00000328 => x"f8f764e3", + 00000329 => x"00001737", + 00000330 => x"00279793", + 00000331 => x"b1470713", + 00000332 => x"00e787b3", + 00000333 => x"0007a783", + 00000334 => x"00078067", + 00000335 => x"800007b7", + 00000336 => x"0007a783", + 00000337 => x"f69ff06f", + 00000338 => x"800007b7", + 00000339 => x"0047a783", + 00000340 => x"f5dff06f", + 00000341 => x"800007b7", + 00000342 => x"0087a783", + 00000343 => x"f51ff06f", + 00000344 => x"800007b7", + 00000345 => x"00c7a783", + 00000346 => x"f45ff06f", + 00000347 => x"8101a783", + 00000348 => x"f3dff06f", + 00000349 => x"8141a783", + 00000350 => x"f35ff06f", + 00000351 => x"8181a783", + 00000352 => x"f2dff06f", + 00000353 => x"81c1a783", + 00000354 => x"f25ff06f", + 00000355 => x"8201a783", + 00000356 => x"f1dff06f", + 00000357 => x"8241a783", + 00000358 => x"f15ff06f", + 00000359 => x"8281a783", + 00000360 => x"f0dff06f", + 00000361 => x"82c1a783", + 00000362 => x"f05ff06f", + 00000363 => x"8301a783", + 00000364 => x"efdff06f", + 00000365 => x"8341a783", + 00000366 => x"ef5ff06f", + 00000367 => x"8381a783", + 00000368 => x"eedff06f", + 00000369 => x"83c1a783", + 00000370 => x"ee5ff06f", + 00000371 => x"8401a783", + 00000372 => x"eddff06f", + 00000373 => x"8441a783", + 00000374 => x"ed5ff06f", + 00000375 => x"8481a783", + 00000376 => x"ecdff06f", + 00000377 => x"84c1a783", + 00000378 => x"ec5ff06f", + 00000379 => x"8501a783", + 00000380 => x"ebdff06f", + 00000381 => x"8541a783", + 00000382 => x"eb5ff06f", + 00000383 => x"8581a783", + 00000384 => x"eadff06f", + 00000385 => x"85c1a783", + 00000386 => x"ea5ff06f", + 00000387 => x"8601a783", + 00000388 => x"e9dff06f", + 00000389 => x"8641a783", + 00000390 => x"e95ff06f", + 00000391 => x"8681a783", + 00000392 => x"e8dff06f", + 00000393 => x"86c1a783", + 00000394 => x"e85ff06f", + 00000395 => x"8701a783", + 00000396 => x"e7dff06f", + 00000397 => x"00000000", + 00000398 => x"00000000", + 00000399 => x"fe010113", + 00000400 => x"01212823", + 00000401 => x"00050913", + 00000402 => x"00001537", + 00000403 => x"00912a23", + 00000404 => x"b8850513", + 00000405 => x"000014b7", + 00000406 => x"00812c23", + 00000407 => x"01312623", + 00000408 => x"00112e23", + 00000409 => x"01c00413", + 00000410 => x"c7dff0ef", + 00000411 => x"d7c48493", + 00000412 => x"ffc00993", + 00000413 => x"008957b3", + 00000414 => x"00f7f793", + 00000415 => x"00f487b3", + 00000416 => x"0007c503", + 00000417 => x"ffc40413", + 00000418 => x"c45ff0ef", + 00000419 => x"ff3414e3", + 00000420 => x"01c12083", + 00000421 => x"01812403", + 00000422 => x"01412483", + 00000423 => x"01012903", + 00000424 => x"00c12983", + 00000425 => x"02010113", + 00000426 => x"00008067", + 00000427 => x"ff010113", + 00000428 => x"00112623", + 00000429 => x"00812423", + 00000430 => x"00912223", + 00000431 => x"b55ff0ef", + 00000432 => x"1c050863", + 00000433 => x"00001537", + 00000434 => x"b8c50513", + 00000435 => x"c19ff0ef", + 00000436 => x"34202473", + 00000437 => x"00900713", + 00000438 => x"00f47793", + 00000439 => x"03078493", + 00000440 => x"00f77463", + 00000441 => x"05778493", + 00000442 => x"00b00793", + 00000443 => x"0087ee63", + 00000444 => x"00001737", + 00000445 => x"00241793", + 00000446 => x"d4c70713", + 00000447 => x"00e787b3", + 00000448 => x"0007a783", + 00000449 => x"00078067", + 00000450 => x"800007b7", + 00000451 => x"00b78713", + 00000452 => x"14e40e63", + 00000453 => x"02876a63", + 00000454 => x"00378713", + 00000455 => x"12e40c63", + 00000456 => x"00778793", + 00000457 => x"12f40e63", + 00000458 => x"00001537", + 00000459 => x"cec50513", + 00000460 => x"bb5ff0ef", + 00000461 => x"00040513", + 00000462 => x"f05ff0ef", + 00000463 => x"00100793", + 00000464 => x"08f40c63", + 00000465 => x"0280006f", + 00000466 => x"ff07c793", + 00000467 => x"00f407b3", + 00000468 => x"00f00713", + 00000469 => x"fcf76ae3", + 00000470 => x"00001537", + 00000471 => x"cdc50513", + 00000472 => x"b85ff0ef", + 00000473 => x"00048513", + 00000474 => x"b65ff0ef", + 00000475 => x"ffd47413", + 00000476 => x"00500793", + 00000477 => x"06f40263", + 00000478 => x"00001537", + 00000479 => x"d3050513", + 00000480 => x"b65ff0ef", + 00000481 => x"34002573", + 00000482 => x"eb5ff0ef", + 00000483 => x"00001537", + 00000484 => x"d3850513", + 00000485 => x"b51ff0ef", + 00000486 => x"34302573", + 00000487 => x"ea1ff0ef", + 00000488 => x"00812403", + 00000489 => x"00c12083", + 00000490 => x"00412483", + 00000491 => x"00001537", + 00000492 => x"d4450513", + 00000493 => x"01010113", + 00000494 => x"b2dff06f", + 00000495 => x"00001537", + 00000496 => x"b9450513", + 00000497 => x"b21ff0ef", + 00000498 => x"fb1ff06f", + 00000499 => x"00001537", + 00000500 => x"bb450513", + 00000501 => x"b11ff0ef", + 00000502 => x"f7c02783", + 00000503 => x"0a07d463", + 00000504 => x"0017f793", + 00000505 => x"08078a63", + 00000506 => x"00001537", + 00000507 => x"d0450513", + 00000508 => x"fd5ff06f", + 00000509 => x"00001537", + 00000510 => x"bd050513", + 00000511 => x"fc9ff06f", + 00000512 => x"00001537", + 00000513 => x"be450513", + 00000514 => x"fbdff06f", + 00000515 => x"00001537", + 00000516 => x"bf050513", + 00000517 => x"fb1ff06f", + 00000518 => x"00001537", + 00000519 => x"c0850513", + 00000520 => x"fb5ff06f", + 00000521 => x"00001537", + 00000522 => x"c1c50513", + 00000523 => x"f99ff06f", + 00000524 => x"00001537", + 00000525 => x"c3850513", + 00000526 => x"f9dff06f", + 00000527 => x"00001537", + 00000528 => x"c4c50513", + 00000529 => x"f81ff06f", + 00000530 => x"00001537", + 00000531 => x"c6c50513", + 00000532 => x"f75ff06f", + 00000533 => x"00001537", + 00000534 => x"c8c50513", + 00000535 => x"f69ff06f", + 00000536 => x"00001537", + 00000537 => x"ca850513", + 00000538 => x"f5dff06f", + 00000539 => x"00001537", + 00000540 => x"cc050513", + 00000541 => x"f51ff06f", + 00000542 => x"00001537", + 00000543 => x"d1450513", + 00000544 => x"f45ff06f", + 00000545 => x"00001537", + 00000546 => x"d2450513", + 00000547 => x"f39ff06f", + 00000548 => x"00c12083", + 00000549 => x"00812403", + 00000550 => x"00412483", + 00000551 => x"01010113", + 00000552 => x"00008067", + 00000553 => x"01f00793", + 00000554 => x"02a7e263", + 00000555 => x"800007b7", + 00000556 => x"00078793", + 00000557 => x"00251513", + 00000558 => x"00a78533", + 00000559 => x"6ac00793", + 00000560 => x"00f52023", + 00000561 => x"00000513", + 00000562 => x"00008067", + 00000563 => x"00100513", + 00000564 => x"00008067", + 00000565 => x"ff010113", + 00000566 => x"00112623", + 00000567 => x"00812423", + 00000568 => x"00912223", + 00000569 => x"43000793", + 00000570 => x"30579073", + 00000571 => x"00000413", + 00000572 => x"01d00493", + 00000573 => x"00040513", + 00000574 => x"00140413", + 00000575 => x"0ff47413", + 00000576 => x"fa5ff0ef", + 00000577 => x"fe9418e3", + 00000578 => x"00c12083", + 00000579 => x"00812403", + 00000580 => x"00412483", + 00000581 => x"01010113", + 00000582 => x"00008067", + 00000583 => x"fe802503", + 00000584 => x"01055513", + 00000585 => x"00157513", + 00000586 => x"00008067", + 00000587 => x"fc000793", + 00000588 => x"00a7a423", + 00000589 => x"00b7a623", + 00000590 => x"00008067", + 00000591 => x"00050613", + 00000592 => x"00000513", + 00000593 => x"0015f693", + 00000594 => x"00068463", + 00000595 => x"00c50533", + 00000596 => x"0015d593", + 00000597 => x"00161613", + 00000598 => x"fe0596e3", + 00000599 => x"00008067", + 00000600 => x"00050313", + 00000601 => x"ff010113", + 00000602 => x"00060513", + 00000603 => x"00068893", + 00000604 => x"00112623", + 00000605 => x"00030613", + 00000606 => x"00050693", + 00000607 => x"00000713", + 00000608 => x"00000793", + 00000609 => x"00000813", + 00000610 => x"0016fe13", + 00000611 => x"00171e93", + 00000612 => x"000e0c63", + 00000613 => x"01060e33", + 00000614 => x"010e3833", + 00000615 => x"00e787b3", + 00000616 => x"00f807b3", + 00000617 => x"000e0813", + 00000618 => x"01f65713", + 00000619 => x"0016d693", + 00000620 => x"00eee733", + 00000621 => x"00161613", + 00000622 => x"fc0698e3", + 00000623 => x"00058663", + 00000624 => x"f7dff0ef", + 00000625 => x"00a787b3", + 00000626 => x"00088a63", + 00000627 => x"00030513", + 00000628 => x"00088593", + 00000629 => x"f69ff0ef", + 00000630 => x"00f507b3", + 00000631 => x"00c12083", + 00000632 => x"00080513", + 00000633 => x"00078593", + 00000634 => x"01010113", + 00000635 => x"00008067", + 00000636 => x"06054063", + 00000637 => x"0605c663", + 00000638 => x"00058613", + 00000639 => x"00050593", + 00000640 => x"fff00513", + 00000641 => x"02060c63", + 00000642 => x"00100693", + 00000643 => x"00b67a63", + 00000644 => x"00c05863", + 00000645 => x"00161613", + 00000646 => x"00169693", + 00000647 => x"feb66ae3", + 00000648 => x"00000513", + 00000649 => x"00c5e663", + 00000650 => x"40c585b3", + 00000651 => x"00d56533", + 00000652 => x"0016d693", + 00000653 => x"00165613", + 00000654 => x"fe0696e3", + 00000655 => x"00008067", + 00000656 => x"00008293", + 00000657 => x"fb5ff0ef", + 00000658 => x"00058513", + 00000659 => x"00028067", + 00000660 => x"40a00533", + 00000661 => x"00b04863", + 00000662 => x"40b005b3", + 00000663 => x"f9dff06f", + 00000664 => x"40b005b3", + 00000665 => x"00008293", + 00000666 => x"f91ff0ef", + 00000667 => x"40a00533", + 00000668 => x"00028067", + 00000669 => x"00008293", + 00000670 => x"0005ca63", + 00000671 => x"00054c63", + 00000672 => x"f79ff0ef", + 00000673 => x"00058513", + 00000674 => x"00028067", + 00000675 => x"40b005b3", + 00000676 => x"fe0558e3", + 00000677 => x"40a00533", + 00000678 => x"f61ff0ef", + 00000679 => x"40b00533", + 00000680 => x"00028067", + 00000681 => x"6f727245", + 00000682 => x"4e202172", + 00000683 => x"5047206f", + 00000684 => x"75204f49", + 00000685 => x"2074696e", + 00000686 => x"746e7973", + 00000687 => x"69736568", + 00000688 => x"2164657a", + 00000689 => x"0000000a", + 00000690 => x"6e696c42", + 00000691 => x"676e696b", + 00000692 => x"44454c20", + 00000693 => x"6d656420", + 00000694 => x"7270206f", + 00000695 => x"6172676f", + 00000696 => x"00000a6d", + 00000697 => x"0000053c", + 00000698 => x"00000548", + 00000699 => x"00000554", + 00000700 => x"00000560", + 00000701 => x"0000056c", + 00000702 => x"00000574", + 00000703 => x"0000057c", + 00000704 => x"00000584", + 00000705 => x"0000058c", + 00000706 => x"000004a8", + 00000707 => x"000004a8", + 00000708 => x"00000594", + 00000709 => x"0000059c", + 00000710 => x"000004a8", + 00000711 => x"000004a8", + 00000712 => x"000004a8", + 00000713 => x"000005a4", + 00000714 => x"000004a8", + 00000715 => x"000004a8", + 00000716 => x"000004a8", + 00000717 => x"000005ac", + 00000718 => x"000004a8", + 00000719 => x"000004a8", + 00000720 => x"000004a8", + 00000721 => x"000004a8", + 00000722 => x"000005b4", + 00000723 => x"000005bc", + 00000724 => x"000005c4", + 00000725 => x"000005cc", + 00000726 => x"000005d4", + 00000727 => x"000005dc", + 00000728 => x"000005e4", + 00000729 => x"000005ec", + 00000730 => x"000005f4", + 00000731 => x"000005fc", + 00000732 => x"00000604", + 00000733 => x"0000060c", + 00000734 => x"00000614", + 00000735 => x"0000061c", + 00000736 => x"00000624", + 00000737 => x"0000062c", + 00000738 => x"00007830", + 00000739 => x"4554523c", + 00000740 => x"0000203e", + 00000741 => x"74736e49", + 00000742 => x"74637572", + 00000743 => x"206e6f69", + 00000744 => x"72646461", + 00000745 => x"20737365", + 00000746 => x"6173696d", + 00000747 => x"6e67696c", + 00000748 => x"00006465", + 00000749 => x"74736e49", + 00000750 => x"74637572", + 00000751 => x"206e6f69", + 00000752 => x"65636361", + 00000753 => x"66207373", + 00000754 => x"746c7561", + 00000755 => x"00000000", + 00000756 => x"656c6c49", + 00000757 => x"206c6167", + 00000758 => x"74736e69", + 00000759 => x"74637572", + 00000760 => x"006e6f69", + 00000761 => x"61657242", + 00000762 => x"696f706b", + 00000763 => x"0000746e", + 00000764 => x"64616f4c", + 00000765 => x"64646120", + 00000766 => x"73736572", + 00000767 => x"73696d20", + 00000768 => x"67696c61", + 00000769 => x"0064656e", + 00000770 => x"64616f4c", + 00000771 => x"63636120", + 00000772 => x"20737365", + 00000773 => x"6c756166", + 00000774 => x"00000074", + 00000775 => x"726f7453", + 00000776 => x"64612065", + 00000777 => x"73657264", + 00000778 => x"696d2073", + 00000779 => x"696c6173", + 00000780 => x"64656e67", + 00000781 => x"00000000", + 00000782 => x"726f7453", + 00000783 => x"63612065", + 00000784 => x"73736563", + 00000785 => x"75616620", + 00000786 => x"0000746c", + 00000787 => x"69766e45", + 00000788 => x"6d6e6f72", + 00000789 => x"20746e65", + 00000790 => x"6c6c6163", + 00000791 => x"6f726620", + 00000792 => x"2d55206d", + 00000793 => x"65646f6d", + 00000794 => x"00000000", + 00000795 => x"69766e45", + 00000796 => x"6d6e6f72", + 00000797 => x"20746e65", + 00000798 => x"6c6c6163", + 00000799 => x"6f726620", + 00000800 => x"2d4d206d", + 00000801 => x"65646f6d", + 00000802 => x"00000000", + 00000803 => x"6863614d", + 00000804 => x"20656e69", + 00000805 => x"74666f73", + 00000806 => x"65726177", + 00000807 => x"746e6920", + 00000808 => x"75727265", + 00000809 => x"00007470", + 00000810 => x"6863614d", + 00000811 => x"20656e69", + 00000812 => x"656d6974", + 00000813 => x"6e692072", + 00000814 => x"72726574", + 00000815 => x"00747075", + 00000816 => x"6863614d", + 00000817 => x"20656e69", + 00000818 => x"65747865", + 00000819 => x"6c616e72", + 00000820 => x"746e6920", + 00000821 => x"75727265", + 00000822 => x"00007470", + 00000823 => x"74736146", + 00000824 => x"746e6920", + 00000825 => x"75727265", + 00000826 => x"00207470", + 00000827 => x"6e6b6e55", + 00000828 => x"206e776f", + 00000829 => x"70617274", + 00000830 => x"75616320", + 00000831 => x"203a6573", + 00000832 => x"00000000", + 00000833 => x"49545b20", + 00000834 => x"554f454d", + 00000835 => x"52455f54", + 00000836 => x"00005d52", + 00000837 => x"45445b20", + 00000838 => x"45434956", + 00000839 => x"5252455f", + 00000840 => x"0000005d", + 00000841 => x"4d505b20", + 00000842 => x"52455f50", + 00000843 => x"00005d52", + 00000844 => x"50204020", + 00000845 => x"00003d43", + 00000846 => x"544d202c", + 00000847 => x"3d4c4156", + 00000848 => x"00000000", + 00000849 => x"522f3c20", + 00000850 => x"003e4554", + 00000851 => x"000007bc", + 00000852 => x"000007cc", + 00000853 => x"000007f4", + 00000854 => x"00000800", + 00000855 => x"0000080c", + 00000856 => x"00000818", + 00000857 => x"00000824", + 00000858 => x"00000830", + 00000859 => x"0000083c", + 00000860 => x"00000728", + 00000861 => x"00000728", + 00000862 => x"00000848", + 00000863 => x"33323130", + 00000864 => x"37363534", + 00000865 => x"42413938", + 00000866 => x"46454443" + ); + +end neorv32_application_image; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_boot_rom.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_boot_rom.vhd new file mode 100644 index 0000000..f80f20b --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_boot_rom.vhd @@ -0,0 +1,106 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal bootloader ROM (BOOTROM) >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2020, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_bootloader_image.all; -- this file is generated by the image generator + +entity neorv32_boot_rom is + generic ( + BOOTROM_BASE : std_ulogic_vector(31 downto 0) -- boot ROM base address + ); + port ( + clk_i : in std_ulogic; -- global clock line + rden_i : in std_ulogic; -- read enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); +end neorv32_boot_rom; + +architecture neorv32_boot_rom_rtl of neorv32_boot_rom is + + -- determine required ROM size in bytes (expand to next power of two) -- + constant boot_rom_size_index_c : natural := index_size_f((bootloader_init_image'length)); -- address with (32-bit entries) + constant boot_rom_size_c : natural := (2**boot_rom_size_index_c)*4; -- size in bytes + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(boot_rom_max_size_c); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rden : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal addr : std_ulogic_vector(boot_rom_size_index_c-1 downto 0); + + -- ROM - initialized with executable code -- + constant mem_rom : mem32_t(0 to boot_rom_size_c/4-1) := mem32_init_f(bootloader_init_image, boot_rom_size_c/4); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Implementing internal bootloader ROM (" & natural'image(boot_rom_size_c) & " bytes)." severity note; + assert not (boot_rom_size_c > boot_rom_max_size_c) report "NEORV32 PROCESSOR CONFIG ERROR! Boot ROM size out of range! Max "& natural'image(boot_rom_max_size_c) & " bytes." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = BOOTROM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(boot_rom_size_index_c+1 downto 2); -- word aligned + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_file_access: process(clk_i) + begin + if rising_edge(clk_i) then + rden <= rden_i and acc_en; + if (acc_en = '1') then -- reduce switching activity when not accessed + rdata <= mem_rom(to_integer(unsigned(addr))); + end if; + end if; + end process mem_file_access; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + ack_o <= rden; + + +end neorv32_boot_rom_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_bootloader_image.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_bootloader_image.vhd new file mode 100644 index 0000000..f199802 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_bootloader_image.vhd @@ -0,0 +1,1026 @@ +-- The NEORV32 RISC-V Processor, https://github.com/stnolting/neorv32 +-- Auto-generated memory init file (for BOOTLOADER) from source file +-- Size: 4040 bytes + +library ieee; +use ieee.std_logic_1164.all; + +library neorv32; +use neorv32.neorv32_package.all; + +package neorv32_bootloader_image is + + constant bootloader_init_image : mem32_t := ( + 00000000 => x"00000037", + 00000001 => x"80010117", + 00000002 => x"1f810113", + 00000003 => x"80010197", + 00000004 => x"7f418193", + 00000005 => x"00000517", + 00000006 => x"0d450513", + 00000007 => x"30551073", + 00000008 => x"34151073", + 00000009 => x"30001073", + 00000010 => x"30401073", + 00000011 => x"30601073", + 00000012 => x"ffa00593", + 00000013 => x"32059073", + 00000014 => x"b0001073", + 00000015 => x"b8001073", + 00000016 => x"b0201073", + 00000017 => x"b8201073", + 00000018 => x"00000093", + 00000019 => x"00000213", + 00000020 => x"00000293", + 00000021 => x"00000313", + 00000022 => x"00000393", + 00000023 => x"00000713", + 00000024 => x"00000793", + 00000025 => x"00010417", + 00000026 => x"d9c40413", + 00000027 => x"00010497", + 00000028 => x"f9448493", + 00000029 => x"00042023", + 00000030 => x"00440413", + 00000031 => x"fe941ce3", + 00000032 => x"80010597", + 00000033 => x"f8058593", + 00000034 => x"80818613", + 00000035 => x"00c5d863", + 00000036 => x"00058023", + 00000037 => x"00158593", + 00000038 => x"ff5ff06f", + 00000039 => x"00001597", + 00000040 => x"f2c58593", + 00000041 => x"80010617", + 00000042 => x"f5c60613", + 00000043 => x"80010697", + 00000044 => x"f5468693", + 00000045 => x"00d65c63", + 00000046 => x"00058703", + 00000047 => x"00e60023", + 00000048 => x"00158593", + 00000049 => x"00160613", + 00000050 => x"fedff06f", + 00000051 => x"00000513", + 00000052 => x"00000593", + 00000053 => x"060000ef", + 00000054 => x"34051073", + 00000055 => x"30047073", + 00000056 => x"10500073", + 00000057 => x"ffdff06f", + 00000058 => x"ff810113", + 00000059 => x"00812023", + 00000060 => x"00912223", + 00000061 => x"34202473", + 00000062 => x"02044663", + 00000063 => x"34102473", + 00000064 => x"00041483", + 00000065 => x"0034f493", + 00000066 => x"00240413", + 00000067 => x"34141073", + 00000068 => x"00300413", + 00000069 => x"00941863", + 00000070 => x"34102473", + 00000071 => x"00240413", + 00000072 => x"34141073", + 00000073 => x"00012403", + 00000074 => x"00412483", + 00000075 => x"00810113", + 00000076 => x"30200073", + 00000077 => x"fd010113", + 00000078 => x"02912223", + 00000079 => x"800004b7", + 00000080 => x"00048793", + 00000081 => x"02112623", + 00000082 => x"02812423", + 00000083 => x"03212023", + 00000084 => x"01312e23", + 00000085 => x"01412c23", + 00000086 => x"01512a23", + 00000087 => x"01612823", + 00000088 => x"01712623", + 00000089 => x"01812423", + 00000090 => x"01912223", + 00000091 => x"0007a023", + 00000092 => x"8001a223", + 00000093 => x"ffff07b7", + 00000094 => x"4ac78793", + 00000095 => x"30579073", + 00000096 => x"00000693", + 00000097 => x"00000613", + 00000098 => x"00000593", + 00000099 => x"00200513", + 00000100 => x"369000ef", + 00000101 => x"3fd000ef", + 00000102 => x"00048493", + 00000103 => x"00050863", + 00000104 => x"00100513", + 00000105 => x"00000593", + 00000106 => x"429000ef", + 00000107 => x"00005537", + 00000108 => x"00000613", + 00000109 => x"00000593", + 00000110 => x"b0050513", + 00000111 => x"1d9000ef", + 00000112 => x"19d000ef", + 00000113 => x"02050663", + 00000114 => x"305000ef", + 00000115 => x"fe002783", + 00000116 => x"0027d793", + 00000117 => x"00a78533", + 00000118 => x"00f537b3", + 00000119 => x"00b785b3", + 00000120 => x"18d000ef", + 00000121 => x"08000793", + 00000122 => x"30479073", + 00000123 => x"30046073", + 00000124 => x"ffff1537", + 00000125 => x"ef850513", + 00000126 => x"27d000ef", + 00000127 => x"f1302573", + 00000128 => x"23c000ef", + 00000129 => x"ffff1537", + 00000130 => x"f3050513", + 00000131 => x"269000ef", + 00000132 => x"fe002503", + 00000133 => x"228000ef", + 00000134 => x"ffff1537", + 00000135 => x"f3850513", + 00000136 => x"255000ef", + 00000137 => x"30102573", + 00000138 => x"214000ef", + 00000139 => x"ffff1537", + 00000140 => x"f4050513", + 00000141 => x"241000ef", + 00000142 => x"fe402503", + 00000143 => x"ffff1437", + 00000144 => x"1fc000ef", + 00000145 => x"ffff1537", + 00000146 => x"f4850513", + 00000147 => x"229000ef", + 00000148 => x"fe802503", + 00000149 => x"1e8000ef", + 00000150 => x"ffff1537", + 00000151 => x"f5050513", + 00000152 => x"215000ef", + 00000153 => x"ff802503", + 00000154 => x"1d4000ef", + 00000155 => x"f5840513", + 00000156 => x"205000ef", + 00000157 => x"ff002503", + 00000158 => x"1c4000ef", + 00000159 => x"ffff1537", + 00000160 => x"f6450513", + 00000161 => x"1f1000ef", + 00000162 => x"ffc02503", + 00000163 => x"1b0000ef", + 00000164 => x"f5840513", + 00000165 => x"1e1000ef", + 00000166 => x"ff402503", + 00000167 => x"1a0000ef", + 00000168 => x"0bd000ef", + 00000169 => x"06050663", + 00000170 => x"ffff1537", + 00000171 => x"f6c50513", + 00000172 => x"1c5000ef", + 00000173 => x"219000ef", + 00000174 => x"fe002403", + 00000175 => x"00341413", + 00000176 => x"00a40933", + 00000177 => x"00893433", + 00000178 => x"00b40433", + 00000179 => x"0b9000ef", + 00000180 => x"02051663", + 00000181 => x"1f9000ef", + 00000182 => x"fe85eae3", + 00000183 => x"00b41463", + 00000184 => x"ff2566e3", + 00000185 => x"00100513", + 00000186 => x"4c8000ef", + 00000187 => x"ffff1537", + 00000188 => x"f9450513", + 00000189 => x"181000ef", + 00000190 => x"0d4000ef", + 00000191 => x"16d000ef", + 00000192 => x"fc050ae3", + 00000193 => x"ffff1537", + 00000194 => x"f9850513", + 00000195 => x"169000ef", + 00000196 => x"0b0000ef", + 00000197 => x"ffff19b7", + 00000198 => x"ffff1a37", + 00000199 => x"07200a93", + 00000200 => x"06800b13", + 00000201 => x"07500b93", + 00000202 => x"07300c13", + 00000203 => x"ffff1937", + 00000204 => x"ffff1cb7", + 00000205 => x"fa498513", + 00000206 => x"13d000ef", + 00000207 => x"11d000ef", + 00000208 => x"00050413", + 00000209 => x"0e1000ef", + 00000210 => x"f94a0513", + 00000211 => x"129000ef", + 00000212 => x"0ed000ef", + 00000213 => x"fe051ee3", + 00000214 => x"01541863", + 00000215 => x"ffff02b7", + 00000216 => x"00028067", + 00000217 => x"fd1ff06f", + 00000218 => x"01641663", + 00000219 => x"054000ef", + 00000220 => x"fc5ff06f", + 00000221 => x"01741663", + 00000222 => x"438000ef", + 00000223 => x"fb9ff06f", + 00000224 => x"01841663", + 00000225 => x"65c000ef", + 00000226 => x"fadff06f", + 00000227 => x"06c00793", + 00000228 => x"00f41663", + 00000229 => x"00100513", + 00000230 => x"fe1ff06f", + 00000231 => x"06500793", + 00000232 => x"00f41c63", + 00000233 => x"0004a783", + 00000234 => x"f40798e3", + 00000235 => x"ea0c8513", + 00000236 => x"0c5000ef", + 00000237 => x"f81ff06f", + 00000238 => x"fac90513", + 00000239 => x"ff5ff06f", + 00000240 => x"ffff1537", + 00000241 => x"de050513", + 00000242 => x"0ad0006f", + 00000243 => x"ff010113", + 00000244 => x"00112623", + 00000245 => x"30047073", + 00000246 => x"ffff1537", + 00000247 => x"e4450513", + 00000248 => x"095000ef", + 00000249 => x"059000ef", + 00000250 => x"fe051ee3", + 00000251 => x"ff002783", + 00000252 => x"00078067", + 00000253 => x"0000006f", + 00000254 => x"ff010113", + 00000255 => x"00812423", + 00000256 => x"00050413", + 00000257 => x"ffff1537", + 00000258 => x"e5450513", + 00000259 => x"00112623", + 00000260 => x"065000ef", + 00000261 => x"03040513", + 00000262 => x"0ff57513", + 00000263 => x"009000ef", + 00000264 => x"30047073", + 00000265 => x"16d000ef", + 00000266 => x"00050863", + 00000267 => x"00100513", + 00000268 => x"00000593", + 00000269 => x"19d000ef", + 00000270 => x"0000006f", + 00000271 => x"fe010113", + 00000272 => x"01212823", + 00000273 => x"00050913", + 00000274 => x"ffff1537", + 00000275 => x"00912a23", + 00000276 => x"e6050513", + 00000277 => x"ffff14b7", + 00000278 => x"00812c23", + 00000279 => x"01312623", + 00000280 => x"00112e23", + 00000281 => x"01c00413", + 00000282 => x"00d000ef", + 00000283 => x"fb848493", + 00000284 => x"ffc00993", + 00000285 => x"008957b3", + 00000286 => x"00f7f793", + 00000287 => x"00f487b3", + 00000288 => x"0007c503", + 00000289 => x"ffc40413", + 00000290 => x"79c000ef", + 00000291 => x"ff3414e3", + 00000292 => x"01c12083", + 00000293 => x"01812403", + 00000294 => x"01412483", + 00000295 => x"01012903", + 00000296 => x"00c12983", + 00000297 => x"02010113", + 00000298 => x"00008067", + 00000299 => x"fb010113", + 00000300 => x"04112623", + 00000301 => x"04512423", + 00000302 => x"04612223", + 00000303 => x"04712023", + 00000304 => x"02812e23", + 00000305 => x"02912c23", + 00000306 => x"02a12a23", + 00000307 => x"02b12823", + 00000308 => x"02c12623", + 00000309 => x"02d12423", + 00000310 => x"02e12223", + 00000311 => x"02f12023", + 00000312 => x"01012e23", + 00000313 => x"01112c23", + 00000314 => x"01c12a23", + 00000315 => x"01d12823", + 00000316 => x"01e12623", + 00000317 => x"01f12423", + 00000318 => x"342024f3", + 00000319 => x"800007b7", + 00000320 => x"00778793", + 00000321 => x"08f49463", + 00000322 => x"089000ef", + 00000323 => x"00050663", + 00000324 => x"00000513", + 00000325 => x"08d000ef", + 00000326 => x"644000ef", + 00000327 => x"02050063", + 00000328 => x"7ac000ef", + 00000329 => x"fe002783", + 00000330 => x"0027d793", + 00000331 => x"00a78533", + 00000332 => x"00f537b3", + 00000333 => x"00b785b3", + 00000334 => x"634000ef", + 00000335 => x"03c12403", + 00000336 => x"04c12083", + 00000337 => x"04812283", + 00000338 => x"04412303", + 00000339 => x"04012383", + 00000340 => x"03812483", + 00000341 => x"03412503", + 00000342 => x"03012583", + 00000343 => x"02c12603", + 00000344 => x"02812683", + 00000345 => x"02412703", + 00000346 => x"02012783", + 00000347 => x"01c12803", + 00000348 => x"01812883", + 00000349 => x"01412e03", + 00000350 => x"01012e83", + 00000351 => x"00c12f03", + 00000352 => x"00812f83", + 00000353 => x"05010113", + 00000354 => x"30200073", + 00000355 => x"00700793", + 00000356 => x"00f49a63", + 00000357 => x"8041a783", + 00000358 => x"00078663", + 00000359 => x"00100513", + 00000360 => x"e59ff0ef", + 00000361 => x"34102473", + 00000362 => x"5dc000ef", + 00000363 => x"04050263", + 00000364 => x"ffff1537", + 00000365 => x"e6450513", + 00000366 => x"6bc000ef", + 00000367 => x"00048513", + 00000368 => x"e7dff0ef", + 00000369 => x"02000513", + 00000370 => x"65c000ef", + 00000371 => x"00040513", + 00000372 => x"e6dff0ef", + 00000373 => x"02000513", + 00000374 => x"64c000ef", + 00000375 => x"34302573", + 00000376 => x"e5dff0ef", + 00000377 => x"ffff1537", + 00000378 => x"e6c50513", + 00000379 => x"688000ef", + 00000380 => x"00440413", + 00000381 => x"34141073", + 00000382 => x"f45ff06f", + 00000383 => x"ff010113", + 00000384 => x"00000513", + 00000385 => x"00112623", + 00000386 => x"00812423", + 00000387 => x"72c000ef", + 00000388 => x"09e00513", + 00000389 => x"768000ef", + 00000390 => x"00000513", + 00000391 => x"760000ef", + 00000392 => x"00050413", + 00000393 => x"00000513", + 00000394 => x"730000ef", + 00000395 => x"00c12083", + 00000396 => x"0ff47513", + 00000397 => x"00812403", + 00000398 => x"01010113", + 00000399 => x"00008067", + 00000400 => x"ff010113", + 00000401 => x"00112623", + 00000402 => x"00812423", + 00000403 => x"00000513", + 00000404 => x"6e8000ef", + 00000405 => x"00500513", + 00000406 => x"724000ef", + 00000407 => x"00000513", + 00000408 => x"71c000ef", + 00000409 => x"00050413", + 00000410 => x"00147413", + 00000411 => x"00000513", + 00000412 => x"6e8000ef", + 00000413 => x"fc041ce3", + 00000414 => x"00c12083", + 00000415 => x"00812403", + 00000416 => x"01010113", + 00000417 => x"00008067", + 00000418 => x"ff010113", + 00000419 => x"00000513", + 00000420 => x"00112623", + 00000421 => x"6a4000ef", + 00000422 => x"00600513", + 00000423 => x"6e0000ef", + 00000424 => x"00c12083", + 00000425 => x"00000513", + 00000426 => x"01010113", + 00000427 => x"6ac0006f", + 00000428 => x"ff010113", + 00000429 => x"00812423", + 00000430 => x"00050413", + 00000431 => x"01055513", + 00000432 => x"0ff57513", + 00000433 => x"00112623", + 00000434 => x"6b4000ef", + 00000435 => x"00845513", + 00000436 => x"0ff57513", + 00000437 => x"6a8000ef", + 00000438 => x"0ff47513", + 00000439 => x"00812403", + 00000440 => x"00c12083", + 00000441 => x"01010113", + 00000442 => x"6940006f", + 00000443 => x"ff010113", + 00000444 => x"00812423", + 00000445 => x"00050413", + 00000446 => x"00000513", + 00000447 => x"00112623", + 00000448 => x"638000ef", + 00000449 => x"00300513", + 00000450 => x"674000ef", + 00000451 => x"00040513", + 00000452 => x"fa1ff0ef", + 00000453 => x"00000513", + 00000454 => x"664000ef", + 00000455 => x"00050413", + 00000456 => x"00000513", + 00000457 => x"634000ef", + 00000458 => x"00c12083", + 00000459 => x"0ff47513", + 00000460 => x"00812403", + 00000461 => x"01010113", + 00000462 => x"00008067", + 00000463 => x"fd010113", + 00000464 => x"02812423", + 00000465 => x"02912223", + 00000466 => x"03212023", + 00000467 => x"01312e23", + 00000468 => x"02112623", + 00000469 => x"00050993", + 00000470 => x"00058493", + 00000471 => x"00c10913", + 00000472 => x"00358413", + 00000473 => x"04099063", + 00000474 => x"4f0000ef", + 00000475 => x"00a90023", + 00000476 => x"fff40793", + 00000477 => x"00190913", + 00000478 => x"02849263", + 00000479 => x"02c12083", + 00000480 => x"02812403", + 00000481 => x"00c12503", + 00000482 => x"02412483", + 00000483 => x"02012903", + 00000484 => x"01c12983", + 00000485 => x"03010113", + 00000486 => x"00008067", + 00000487 => x"00078413", + 00000488 => x"fc5ff06f", + 00000489 => x"00040513", + 00000490 => x"f45ff0ef", + 00000491 => x"fc1ff06f", + 00000492 => x"fd010113", + 00000493 => x"01412c23", + 00000494 => x"02812423", + 00000495 => x"80418793", + 00000496 => x"02112623", + 00000497 => x"02912223", + 00000498 => x"03212023", + 00000499 => x"01312e23", + 00000500 => x"01512a23", + 00000501 => x"01612823", + 00000502 => x"01712623", + 00000503 => x"01812423", + 00000504 => x"00100713", + 00000505 => x"00e7a023", + 00000506 => x"00050413", + 00000507 => x"80418a13", + 00000508 => x"02051863", + 00000509 => x"ffff1537", + 00000510 => x"e7050513", + 00000511 => x"478000ef", + 00000512 => x"080005b7", + 00000513 => x"00040513", + 00000514 => x"f35ff0ef", + 00000515 => x"4788d7b7", + 00000516 => x"afe78793", + 00000517 => x"02f50463", + 00000518 => x"00000513", + 00000519 => x"01c0006f", + 00000520 => x"ffff1537", + 00000521 => x"e9050513", + 00000522 => x"44c000ef", + 00000523 => x"dd1ff0ef", + 00000524 => x"fc0518e3", + 00000525 => x"00300513", + 00000526 => x"bc1ff0ef", + 00000527 => x"080009b7", + 00000528 => x"00498593", + 00000529 => x"00040513", + 00000530 => x"ef5ff0ef", + 00000531 => x"00050a93", + 00000532 => x"00898593", + 00000533 => x"00040513", + 00000534 => x"ee5ff0ef", + 00000535 => x"ff002c03", + 00000536 => x"00050b13", + 00000537 => x"ffcafb93", + 00000538 => x"00000913", + 00000539 => x"00000493", + 00000540 => x"00c98993", + 00000541 => x"013905b3", + 00000542 => x"052b9c63", + 00000543 => x"016484b3", + 00000544 => x"00200513", + 00000545 => x"fa049ae3", + 00000546 => x"ffff1537", + 00000547 => x"e9c50513", + 00000548 => x"3e4000ef", + 00000549 => x"02c12083", + 00000550 => x"02812403", + 00000551 => x"800007b7", + 00000552 => x"0157a023", + 00000553 => x"000a2023", + 00000554 => x"02412483", + 00000555 => x"02012903", + 00000556 => x"01c12983", + 00000557 => x"01812a03", + 00000558 => x"01412a83", + 00000559 => x"01012b03", + 00000560 => x"00c12b83", + 00000561 => x"00812c03", + 00000562 => x"03010113", + 00000563 => x"00008067", + 00000564 => x"00040513", + 00000565 => x"e69ff0ef", + 00000566 => x"012c07b3", + 00000567 => x"00a484b3", + 00000568 => x"00a7a023", + 00000569 => x"00490913", + 00000570 => x"f8dff06f", + 00000571 => x"ff010113", + 00000572 => x"00112623", + 00000573 => x"00812423", + 00000574 => x"00912223", + 00000575 => x"00058413", + 00000576 => x"00050493", + 00000577 => x"d85ff0ef", + 00000578 => x"00000513", + 00000579 => x"42c000ef", + 00000580 => x"00200513", + 00000581 => x"468000ef", + 00000582 => x"00048513", + 00000583 => x"d95ff0ef", + 00000584 => x"00040513", + 00000585 => x"458000ef", + 00000586 => x"00000513", + 00000587 => x"42c000ef", + 00000588 => x"00812403", + 00000589 => x"00c12083", + 00000590 => x"00412483", + 00000591 => x"01010113", + 00000592 => x"d01ff06f", + 00000593 => x"fe010113", + 00000594 => x"00812c23", + 00000595 => x"00912a23", + 00000596 => x"01212823", + 00000597 => x"00112e23", + 00000598 => x"00050413", + 00000599 => x"00b12623", + 00000600 => x"00c10913", + 00000601 => x"00350493", + 00000602 => x"00094583", + 00000603 => x"00048513", + 00000604 => x"00190913", + 00000605 => x"f79ff0ef", + 00000606 => x"00048793", + 00000607 => x"fff48493", + 00000608 => x"fef414e3", + 00000609 => x"01c12083", + 00000610 => x"01812403", + 00000611 => x"01412483", + 00000612 => x"01012903", + 00000613 => x"02010113", + 00000614 => x"00008067", + 00000615 => x"ff010113", + 00000616 => x"00112623", + 00000617 => x"00812423", + 00000618 => x"00050413", + 00000619 => x"cddff0ef", + 00000620 => x"00000513", + 00000621 => x"384000ef", + 00000622 => x"0d800513", + 00000623 => x"3c0000ef", + 00000624 => x"00040513", + 00000625 => x"cedff0ef", + 00000626 => x"00000513", + 00000627 => x"38c000ef", + 00000628 => x"00812403", + 00000629 => x"00c12083", + 00000630 => x"01010113", + 00000631 => x"c65ff06f", + 00000632 => x"fe010113", + 00000633 => x"800007b7", + 00000634 => x"00812c23", + 00000635 => x"0007a403", + 00000636 => x"00112e23", + 00000637 => x"00912a23", + 00000638 => x"01212823", + 00000639 => x"01312623", + 00000640 => x"01412423", + 00000641 => x"01512223", + 00000642 => x"02041863", + 00000643 => x"ffff1537", + 00000644 => x"ea050513", + 00000645 => x"01812403", + 00000646 => x"01c12083", + 00000647 => x"01412483", + 00000648 => x"01012903", + 00000649 => x"00c12983", + 00000650 => x"00812a03", + 00000651 => x"00412a83", + 00000652 => x"02010113", + 00000653 => x"2400006f", + 00000654 => x"ffff1537", + 00000655 => x"ebc50513", + 00000656 => x"234000ef", + 00000657 => x"00040513", + 00000658 => x"9f5ff0ef", + 00000659 => x"ffff1537", + 00000660 => x"ec450513", + 00000661 => x"220000ef", + 00000662 => x"08000537", + 00000663 => x"9e1ff0ef", + 00000664 => x"ffff1537", + 00000665 => x"edc50513", + 00000666 => x"20c000ef", + 00000667 => x"1ec000ef", + 00000668 => x"00050493", + 00000669 => x"1b0000ef", + 00000670 => x"07900793", + 00000671 => x"0af49e63", + 00000672 => x"b7dff0ef", + 00000673 => x"00051663", + 00000674 => x"00300513", + 00000675 => x"96dff0ef", + 00000676 => x"ffff1537", + 00000677 => x"ee850513", + 00000678 => x"01045493", + 00000679 => x"1d8000ef", + 00000680 => x"00148493", + 00000681 => x"08000937", + 00000682 => x"fff00993", + 00000683 => x"00010a37", + 00000684 => x"fff48493", + 00000685 => x"07349063", + 00000686 => x"4788d5b7", + 00000687 => x"afe58593", + 00000688 => x"08000537", + 00000689 => x"e81ff0ef", + 00000690 => x"08000537", + 00000691 => x"00040593", + 00000692 => x"00450513", + 00000693 => x"e71ff0ef", + 00000694 => x"ff002a03", + 00000695 => x"080009b7", + 00000696 => x"ffc47413", + 00000697 => x"00000493", + 00000698 => x"00000913", + 00000699 => x"00c98a93", + 00000700 => x"01548533", + 00000701 => x"009a07b3", + 00000702 => x"02849663", + 00000703 => x"00898513", + 00000704 => x"412005b3", + 00000705 => x"e41ff0ef", + 00000706 => x"ffff1537", + 00000707 => x"e9c50513", + 00000708 => x"f05ff06f", + 00000709 => x"00090513", + 00000710 => x"e85ff0ef", + 00000711 => x"01490933", + 00000712 => x"f91ff06f", + 00000713 => x"0007a583", + 00000714 => x"00448493", + 00000715 => x"00b90933", + 00000716 => x"e15ff0ef", + 00000717 => x"fbdff06f", + 00000718 => x"01c12083", + 00000719 => x"01812403", + 00000720 => x"01412483", + 00000721 => x"01012903", + 00000722 => x"00c12983", + 00000723 => x"00812a03", + 00000724 => x"00412a83", + 00000725 => x"02010113", + 00000726 => x"00008067", + 00000727 => x"fe802503", + 00000728 => x"01155513", + 00000729 => x"00157513", + 00000730 => x"00008067", + 00000731 => x"f9000793", + 00000732 => x"fff00713", + 00000733 => x"00e7a423", + 00000734 => x"00b7a623", + 00000735 => x"00a7a423", + 00000736 => x"00008067", + 00000737 => x"fe802503", + 00000738 => x"01255513", + 00000739 => x"00157513", + 00000740 => x"00008067", + 00000741 => x"fa002023", + 00000742 => x"fe002703", + 00000743 => x"00151513", + 00000744 => x"00000793", + 00000745 => x"04a77463", + 00000746 => x"000016b7", + 00000747 => x"00000713", + 00000748 => x"ffe68693", + 00000749 => x"04f6e663", + 00000750 => x"00367613", + 00000751 => x"0035f593", + 00000752 => x"fff78793", + 00000753 => x"01461613", + 00000754 => x"00c7e7b3", + 00000755 => x"01659593", + 00000756 => x"01871713", + 00000757 => x"00b7e7b3", + 00000758 => x"00e7e7b3", + 00000759 => x"10000737", + 00000760 => x"00e7e7b3", + 00000761 => x"faf02023", + 00000762 => x"00008067", + 00000763 => x"00178793", + 00000764 => x"01079793", + 00000765 => x"40a70733", + 00000766 => x"0107d793", + 00000767 => x"fa9ff06f", + 00000768 => x"ffe70513", + 00000769 => x"0fd57513", + 00000770 => x"00051a63", + 00000771 => x"0037d793", + 00000772 => x"00170713", + 00000773 => x"0ff77713", + 00000774 => x"f9dff06f", + 00000775 => x"0017d793", + 00000776 => x"ff1ff06f", + 00000777 => x"00040737", + 00000778 => x"fa002783", + 00000779 => x"00e7f7b3", + 00000780 => x"fe079ce3", + 00000781 => x"faa02223", + 00000782 => x"00008067", + 00000783 => x"fa002783", + 00000784 => x"00100513", + 00000785 => x"0007c863", + 00000786 => x"0107d513", + 00000787 => x"00154513", + 00000788 => x"00157513", + 00000789 => x"00008067", + 00000790 => x"fa402503", + 00000791 => x"fe055ee3", + 00000792 => x"0ff57513", + 00000793 => x"00008067", + 00000794 => x"fa402503", + 00000795 => x"01f55513", + 00000796 => x"00008067", + 00000797 => x"ff010113", + 00000798 => x"00812423", + 00000799 => x"01212023", + 00000800 => x"00112623", + 00000801 => x"00912223", + 00000802 => x"00050413", + 00000803 => x"00a00913", + 00000804 => x"00044483", + 00000805 => x"00140413", + 00000806 => x"00049e63", + 00000807 => x"00c12083", + 00000808 => x"00812403", + 00000809 => x"00412483", + 00000810 => x"00012903", + 00000811 => x"01010113", + 00000812 => x"00008067", + 00000813 => x"01249663", + 00000814 => x"00d00513", + 00000815 => x"f69ff0ef", + 00000816 => x"00048513", + 00000817 => x"f61ff0ef", + 00000818 => x"fc9ff06f", + 00000819 => x"ff010113", + 00000820 => x"c81026f3", + 00000821 => x"c0102773", + 00000822 => x"c81027f3", + 00000823 => x"fed79ae3", + 00000824 => x"00e12023", + 00000825 => x"00f12223", + 00000826 => x"00012503", + 00000827 => x"00412583", + 00000828 => x"01010113", + 00000829 => x"00008067", + 00000830 => x"00757513", + 00000831 => x"0036f793", + 00000832 => x"00167613", + 00000833 => x"00a51513", + 00000834 => x"00d79793", + 00000835 => x"0015f593", + 00000836 => x"00f567b3", + 00000837 => x"00f61613", + 00000838 => x"00c7e7b3", + 00000839 => x"00959593", + 00000840 => x"fa800713", + 00000841 => x"00b7e7b3", + 00000842 => x"00072023", + 00000843 => x"1007e793", + 00000844 => x"00f72023", + 00000845 => x"00008067", + 00000846 => x"fa800713", + 00000847 => x"00072683", + 00000848 => x"00757793", + 00000849 => x"00100513", + 00000850 => x"00f51533", + 00000851 => x"00d56533", + 00000852 => x"00a72023", + 00000853 => x"00008067", + 00000854 => x"fa800713", + 00000855 => x"00072683", + 00000856 => x"00757513", + 00000857 => x"00100793", + 00000858 => x"00a797b3", + 00000859 => x"fff7c793", + 00000860 => x"00d7f7b3", + 00000861 => x"00f72023", + 00000862 => x"00008067", + 00000863 => x"faa02623", + 00000864 => x"fa802783", + 00000865 => x"fe07cee3", + 00000866 => x"fac02503", + 00000867 => x"00008067", + 00000868 => x"fe802503", + 00000869 => x"01055513", + 00000870 => x"00157513", + 00000871 => x"00008067", + 00000872 => x"00100793", + 00000873 => x"01f00713", + 00000874 => x"00a797b3", + 00000875 => x"00a74a63", + 00000876 => x"fc802703", + 00000877 => x"00f747b3", + 00000878 => x"fcf02423", + 00000879 => x"00008067", + 00000880 => x"fcc02703", + 00000881 => x"00f747b3", + 00000882 => x"fcf02623", + 00000883 => x"00008067", + 00000884 => x"fc000793", + 00000885 => x"00a7a423", + 00000886 => x"00b7a623", + 00000887 => x"00008067", + 00000888 => x"69617641", + 00000889 => x"6c62616c", + 00000890 => x"4d432065", + 00000891 => x"0a3a7344", + 00000892 => x"203a6820", + 00000893 => x"706c6548", + 00000894 => x"3a72200a", + 00000895 => x"73655220", + 00000896 => x"74726174", + 00000897 => x"3a75200a", + 00000898 => x"6c705520", + 00000899 => x"0a64616f", + 00000900 => x"203a7320", + 00000901 => x"726f7453", + 00000902 => x"6f742065", + 00000903 => x"616c6620", + 00000904 => x"200a6873", + 00000905 => x"4c203a6c", + 00000906 => x"2064616f", + 00000907 => x"6d6f7266", + 00000908 => x"616c6620", + 00000909 => x"200a6873", + 00000910 => x"45203a65", + 00000911 => x"75636578", + 00000912 => x"00006574", + 00000913 => x"746f6f42", + 00000914 => x"2e676e69", + 00000915 => x"0a0a2e2e", + 00000916 => x"00000000", + 00000917 => x"52450a07", + 00000918 => x"5f524f52", + 00000919 => x"00000000", + 00000920 => x"00007830", + 00000921 => x"52455b0a", + 00000922 => x"00002052", + 00000923 => x"00000a5d", + 00000924 => x"69617741", + 00000925 => x"676e6974", + 00000926 => x"6f656e20", + 00000927 => x"32337672", + 00000928 => x"6578655f", + 00000929 => x"6e69622e", + 00000930 => x"202e2e2e", + 00000931 => x"00000000", + 00000932 => x"64616f4c", + 00000933 => x"2e676e69", + 00000934 => x"00202e2e", + 00000935 => x"00004b4f", + 00000936 => x"65206f4e", + 00000937 => x"75636578", + 00000938 => x"6c626174", + 00000939 => x"76612065", + 00000940 => x"616c6961", + 00000941 => x"2e656c62", + 00000942 => x"00000000", + 00000943 => x"74697257", + 00000944 => x"00002065", + 00000945 => x"74796220", + 00000946 => x"74207365", + 00000947 => x"5053206f", + 00000948 => x"6c662049", + 00000949 => x"20687361", + 00000950 => x"00783040", + 00000951 => x"7928203f", + 00000952 => x"20296e2f", + 00000953 => x"00000000", + 00000954 => x"616c460a", + 00000955 => x"6e696873", + 00000956 => x"2e2e2e67", + 00000957 => x"00000020", + 00000958 => x"3c0a0a0a", + 00000959 => x"454e203c", + 00000960 => x"3356524f", + 00000961 => x"6f422032", + 00000962 => x"6f6c746f", + 00000963 => x"72656461", + 00000964 => x"0a3e3e20", + 00000965 => x"444c420a", + 00000966 => x"4e203a56", + 00000967 => x"3220766f", + 00000968 => x"30322038", + 00000969 => x"480a3132", + 00000970 => x"203a5657", + 00000971 => x"00000020", + 00000972 => x"4b4c430a", + 00000973 => x"0020203a", + 00000974 => x"53494d0a", + 00000975 => x"00203a41", + 00000976 => x"5550430a", + 00000977 => x"0020203a", + 00000978 => x"434f530a", + 00000979 => x"0020203a", + 00000980 => x"454d490a", + 00000981 => x"00203a4d", + 00000982 => x"74796220", + 00000983 => x"40207365", + 00000984 => x"00000000", + 00000985 => x"454d440a", + 00000986 => x"00203a4d", + 00000987 => x"75410a0a", + 00000988 => x"6f626f74", + 00000989 => x"6920746f", + 00000990 => x"7338206e", + 00000991 => x"7250202e", + 00000992 => x"20737365", + 00000993 => x"2079656b", + 00000994 => x"61206f74", + 00000995 => x"74726f62", + 00000996 => x"00000a2e", + 00000997 => x"0000000a", + 00000998 => x"726f6241", + 00000999 => x"2e646574", + 00001000 => x"00000a0a", + 00001001 => x"444d430a", + 00001002 => x"00203e3a", + 00001003 => x"61766e49", + 00001004 => x"2064696c", + 00001005 => x"00444d43", + 00001006 => x"33323130", + 00001007 => x"37363534", + 00001008 => x"62613938", + 00001009 => x"66656463" + ); + +end neorv32_bootloader_image; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_bus_keeper.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_bus_keeper.vhd new file mode 100644 index 0000000..17d27df --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_bus_keeper.vhd @@ -0,0 +1,180 @@ +-- ################################################################################################# +-- # << NEORV32 - Bus Keeper (BUSKEEPER) >> # +-- # ********************************************************************************************* # +-- # This unit monitors the processor-internal bus. If the accessed module does not respond within # +-- # the defined number of cycles (VHDL package: max_proc_int_response_time_c) or issues an ERROR # +-- # conditions the BUS KEEPER asserts the error signal to inform the CPU. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_bus_keeper is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset, low-active, async + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + err_o : out std_ulogic; -- transfer error + -- bus monitoring -- + bus_addr_i : in std_ulogic_vector(31 downto 0); -- address + bus_rden_i : in std_ulogic; -- read enable + bus_wren_i : in std_ulogic; -- write enable + bus_ack_i : in std_ulogic; -- transfer acknowledge from bus system + bus_err_i : in std_ulogic; -- transfer error from bus system + bus_tmo_i : in std_ulogic; -- transfer timeout (external interface) + bus_ext_i : in std_ulogic -- external bus access + ); +end neorv32_bus_keeper; + +architecture neorv32_bus_keeper_rtl of neorv32_bus_keeper is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(buskeeper_size_c); -- low address boundary bit + + -- Control register -- + constant ctrl_err_type_c : natural := 0; -- r/-: error type: 0=device error, 1=access timeout + constant ctrl_err_flag_c : natural := 31; -- r/c: bus error encountered, sticky; cleared by writing zero + + -- sticky error flags -- + signal err_flag : std_ulogic; + signal err_type : std_ulogic; + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- controller -- + type control_t is record + pending : std_ulogic; + timeout : std_ulogic_vector(index_size_f(max_proc_int_response_time_c) downto 0); + err_type : std_ulogic; + bus_err : std_ulogic; + end record; + signal control : control_t; + +begin + + -- Sanity Check -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (max_proc_int_response_time_c < 2) report "NEORV32 PROCESSOR CONFIG ERROR! Processor-internal bus timeout has to >= 2." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = buskeeper_base_c(hi_abb_c downto lo_abb_c)) else '0'; + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- bus handshake -- + ack_o <= wren or rden; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + data_o(ctrl_err_type_c) <= err_type; + data_o(ctrl_err_flag_c) <= err_flag; + end if; + -- + if (control.bus_err = '1') then -- sticky error flag + err_flag <= '1'; + err_type <= control.err_type; + elsif ((wren or rden) = '1') then -- clear on or read or write + err_flag <= '0'; + err_type <= '0'; + end if; + end if; + end process rw_access; + + + -- Keeper --------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + keeper_control: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + control.pending <= '0'; + control.bus_err <= '0'; + control.err_type <= def_rst_val_c; + control.timeout <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- defaults -- + control.bus_err <= '0'; + + -- access monitor: IDLE -- + if (control.pending = '0') then + control.timeout <= std_ulogic_vector(to_unsigned(max_proc_int_response_time_c, index_size_f(max_proc_int_response_time_c)+1)); + if (bus_rden_i = '1') or (bus_wren_i = '1') then + control.pending <= '1'; + end if; + -- access monitor: PENDING -- + else + control.timeout <= std_ulogic_vector(unsigned(control.timeout) - 1); -- countdown timer + if (bus_err_i = '1') then -- error termination by bus system + control.err_type <= '0'; -- device error + control.bus_err <= '1'; + control.pending <= '0'; + elsif ((or_reduce_f(control.timeout) = '0') and (bus_ext_i = '0')) or -- internal access timeout + (bus_tmo_i = '1') then -- external access timeout + control.err_type <= '1'; -- timeout error + control.bus_err <= '1'; + control.pending <= '0'; + elsif (bus_ack_i = '1') then -- normal termination by bus system + control.err_type <= '0'; -- don't care + control.bus_err <= '0'; + control.pending <= '0'; + end if; + end if; + end if; + end process keeper_control; + + -- signal bus error to CPU -- + err_o <= control.bus_err; + + +end neorv32_bus_keeper_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_busswitch.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_busswitch.vhd new file mode 100644 index 0000000..7868b41 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_busswitch.vhd @@ -0,0 +1,273 @@ +-- ################################################################################################# +-- # << NEORV32 - Bus Switch >> # +-- # ********************************************************************************************* # +-- # Allows to access a single peripheral bus ("p_bus") by two controller busses. Controller port # +-- # A ("ca_bus") has priority over controller port B ("cb_bus"). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_busswitch is + generic ( + PORT_CA_READ_ONLY : boolean; -- set if controller port A is read-only + PORT_CB_READ_ONLY : boolean -- set if controller port B is read-only + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + -- controller interface a -- + ca_bus_addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + ca_bus_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + ca_bus_wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + ca_bus_ben_i : in std_ulogic_vector(03 downto 0); -- byte enable + ca_bus_we_i : in std_ulogic; -- write enable + ca_bus_re_i : in std_ulogic; -- read enable + ca_bus_lock_i : in std_ulogic; -- exclusive access request + ca_bus_ack_o : out std_ulogic; -- bus transfer acknowledge + ca_bus_err_o : out std_ulogic; -- bus transfer error + -- controller interface b -- + cb_bus_addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + cb_bus_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + cb_bus_wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + cb_bus_ben_i : in std_ulogic_vector(03 downto 0); -- byte enable + cb_bus_we_i : in std_ulogic; -- write enable + cb_bus_re_i : in std_ulogic; -- read enable + cb_bus_lock_i : in std_ulogic; -- exclusive access request + cb_bus_ack_o : out std_ulogic; -- bus transfer acknowledge + cb_bus_err_o : out std_ulogic; -- bus transfer error + -- peripheral bus -- + p_bus_src_o : out std_ulogic; -- access source: 0 = A, 1 = B + p_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + p_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + p_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + p_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + p_bus_we_o : out std_ulogic; -- write enable + p_bus_re_o : out std_ulogic; -- read enable + p_bus_lock_o : out std_ulogic; -- exclusive access request + p_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + p_bus_err_i : in std_ulogic -- bus transfer error + ); +end neorv32_busswitch; + +architecture neorv32_busswitch_rtl of neorv32_busswitch is + + -- access requests -- + signal ca_rd_req_buf, ca_wr_req_buf : std_ulogic; + signal cb_rd_req_buf, cb_wr_req_buf : std_ulogic; + signal ca_req_current, ca_req_buffered : std_ulogic; + signal cb_req_current, cb_req_buffered : std_ulogic; + + -- internal bus lines -- + signal ca_bus_ack, cb_bus_ack : std_ulogic; + signal ca_bus_err, cb_bus_err : std_ulogic; + signal p_bus_we, p_bus_re : std_ulogic; + + -- access arbiter -- + type arbiter_state_t is (IDLE, BUSY, RETIRE, BUSY_SWITCHED, RETIRE_SWITCHED); + type arbiter_t is record + state : arbiter_state_t; + state_nxt : arbiter_state_t; + bus_sel : std_ulogic; + re_trig : std_ulogic; + we_trig : std_ulogic; + end record; + signal arbiter : arbiter_t; + +begin + + -- Access Buffer -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + access_buffer: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ca_rd_req_buf <= '0'; + ca_wr_req_buf <= '0'; + cb_rd_req_buf <= '0'; + cb_wr_req_buf <= '0'; + elsif rising_edge(clk_i) then + + -- controller A requests -- + if (ca_rd_req_buf = '0') and (ca_wr_req_buf = '0') then -- idle + ca_rd_req_buf <= ca_bus_re_i; + ca_wr_req_buf <= ca_bus_we_i; + elsif (ca_bus_err = '1') or -- error termination + (ca_bus_ack = '1') then -- normal termination + ca_rd_req_buf <= '0'; + ca_wr_req_buf <= '0'; + end if; + + -- controller B requests -- + if (cb_rd_req_buf = '0') and (cb_wr_req_buf = '0') then + cb_rd_req_buf <= cb_bus_re_i; + cb_wr_req_buf <= cb_bus_we_i; + elsif (cb_bus_err = '1') or -- error termination + (cb_bus_ack = '1') then -- normal termination + cb_rd_req_buf <= '0'; + cb_wr_req_buf <= '0'; + end if; + + end if; + end process access_buffer; + + -- any current requests? -- + ca_req_current <= (ca_bus_re_i or ca_bus_we_i) when (PORT_CA_READ_ONLY = false) else ca_bus_re_i; + cb_req_current <= (cb_bus_re_i or cb_bus_we_i) when (PORT_CB_READ_ONLY = false) else cb_bus_re_i; + + -- any buffered requests? -- + ca_req_buffered <= (ca_rd_req_buf or ca_wr_req_buf) when (PORT_CA_READ_ONLY = false) else ca_rd_req_buf; + cb_req_buffered <= (cb_rd_req_buf or cb_wr_req_buf) when (PORT_CB_READ_ONLY = false) else cb_rd_req_buf; + + + -- Access Arbiter Sync -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + arbiter_sync: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + arbiter.state <= IDLE; + elsif rising_edge(clk_i) then + arbiter.state <= arbiter.state_nxt; + end if; + end process arbiter_sync; + + + -- Peripheral Bus Arbiter ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + arbiter_comb: process(arbiter, ca_req_current, cb_req_current, ca_req_buffered, cb_req_buffered, + ca_rd_req_buf, ca_wr_req_buf, cb_rd_req_buf, cb_wr_req_buf, p_bus_ack_i, p_bus_err_i) + begin + -- arbiter defaults -- + arbiter.state_nxt <= arbiter.state; + arbiter.bus_sel <= '0'; + arbiter.we_trig <= '0'; + arbiter.re_trig <= '0'; + + -- state machine -- + case arbiter.state is + + when IDLE => -- Controller a has full bus access + -- ------------------------------------------------------------ + p_bus_src_o <= '0'; -- access from port A + if (ca_req_current = '1') then -- current request? + arbiter.bus_sel <= '0'; + arbiter.state_nxt <= BUSY; + elsif (ca_req_buffered = '1') then -- buffered request? + arbiter.bus_sel <= '0'; + arbiter.state_nxt <= RETIRE; + elsif (cb_req_current = '1') then -- current request from controller b? + arbiter.bus_sel <= '1'; + arbiter.state_nxt <= BUSY_SWITCHED; + elsif (cb_req_buffered = '1') then -- buffered request from controller b? + arbiter.bus_sel <= '1'; + arbiter.state_nxt <= RETIRE_SWITCHED; + end if; + + when BUSY => -- transaction in progress + -- ------------------------------------------------------------ + p_bus_src_o <= '0'; -- access from port A + arbiter.bus_sel <= '0'; + if (p_bus_err_i = '1') or -- error termination + (p_bus_ack_i = '1') then -- normal termination + arbiter.state_nxt <= IDLE; + end if; + + when RETIRE => -- retire pending access + -- ------------------------------------------------------------ + p_bus_src_o <= '0'; -- access from port A + arbiter.bus_sel <= '0'; + if (PORT_CA_READ_ONLY = false) then + arbiter.we_trig <= ca_wr_req_buf; + end if; + arbiter.re_trig <= ca_rd_req_buf; + arbiter.state_nxt <= BUSY; + + when BUSY_SWITCHED => -- switched transaction in progress + -- ------------------------------------------------------------ + p_bus_src_o <= '1'; -- access from port B + arbiter.bus_sel <= '1'; + if (p_bus_err_i = '1') or -- error termination + (p_bus_ack_i = '1') then -- normal termination + if (ca_req_buffered = '1') or (ca_req_current = '1') then -- any request from A? + arbiter.state_nxt <= RETIRE; + else + arbiter.state_nxt <= IDLE; + end if; + end if; + + when RETIRE_SWITCHED => -- retire pending switched access + -- ------------------------------------------------------------ + p_bus_src_o <= '1'; -- access from port B + arbiter.bus_sel <= '1'; + if (PORT_CB_READ_ONLY = false) then + arbiter.we_trig <= cb_wr_req_buf; + end if; + arbiter.re_trig <= cb_rd_req_buf; + arbiter.state_nxt <= BUSY_SWITCHED; + + end case; + end process arbiter_comb; + + + -- Peripheral Bus Switch ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + p_bus_addr_o <= ca_bus_addr_i when (arbiter.bus_sel = '0') else cb_bus_addr_i; + p_bus_wdata_o <= cb_bus_wdata_i when (PORT_CA_READ_ONLY = true) else ca_bus_wdata_i when (PORT_CB_READ_ONLY = true) else + ca_bus_wdata_i when (arbiter.bus_sel = '0') else cb_bus_wdata_i; + p_bus_ben_o <= cb_bus_ben_i when (PORT_CA_READ_ONLY = true) else ca_bus_ben_i when (PORT_CB_READ_ONLY = true) else + ca_bus_ben_i when (arbiter.bus_sel = '0') else cb_bus_ben_i; + p_bus_we <= ca_bus_we_i when (arbiter.bus_sel = '0') else cb_bus_we_i; + p_bus_re <= ca_bus_re_i when (arbiter.bus_sel = '0') else cb_bus_re_i; + p_bus_we_o <= (p_bus_we or arbiter.we_trig); + p_bus_re_o <= (p_bus_re or arbiter.re_trig); + p_bus_lock_o <= ca_bus_lock_i or cb_bus_lock_i; + + ca_bus_rdata_o <= p_bus_rdata_i; + cb_bus_rdata_o <= p_bus_rdata_i; + + ca_bus_ack <= p_bus_ack_i and (not arbiter.bus_sel); + cb_bus_ack <= p_bus_ack_i and ( arbiter.bus_sel); + ca_bus_ack_o <= ca_bus_ack; + cb_bus_ack_o <= cb_bus_ack; + + ca_bus_err <= p_bus_err_i and (not arbiter.bus_sel); + cb_bus_err <= p_bus_err_i and ( arbiter.bus_sel); + ca_bus_err_o <= ca_bus_err; + cb_bus_err_o <= cb_bus_err; + + +end neorv32_busswitch_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cfs.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cfs.vhd new file mode 100644 index 0000000..66dd758 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cfs.vhd @@ -0,0 +1,257 @@ +-- ################################################################################################# +-- # << NEORV32 - Custom Functions Subsystem (CFS) >> # +-- # ********************************************************************************************* # +-- # For tightly-coupled custom co-processors. Provides 32x32-bit memory-mapped registers. # +-- # This is just an "example/illustration template". Modify this file to implement your own # +-- # custom design logic. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cfs is + generic ( + CFS_CONFIG : std_ulogic_vector(31 downto 0); -- custom CFS configuration generic + CFS_IN_SIZE : positive; -- size of CFS input conduit in bits + CFS_OUT_SIZE : positive -- size of CFS output conduit in bits + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active, use as async + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- word write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + err_o : out std_ulogic; -- transfer error + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); -- "clock" inputs + -- interrupt -- + irq_o : out std_ulogic; -- interrupt request + -- custom io (conduits) -- + cfs_in_i : in std_ulogic_vector(CFS_IN_SIZE-1 downto 0); -- custom inputs + cfs_out_o : out std_ulogic_vector(CFS_OUT_SIZE-1 downto 0) -- custom outputs + ); +end neorv32_cfs; + +architecture neorv32_cfs_rtl of neorv32_cfs is + + -- IO space: module base address (DO NOT MODIFY!) -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(cfs_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- default CFS interface registers -- + type cfs_regs_t is array (0 to 3) of std_ulogic_vector(31 downto 0); -- just implement 4 registers for this example + signal cfs_reg_wr : cfs_regs_t; -- interface registers for WRITE accesses + signal cfs_reg_rd : cfs_regs_t; -- interface registers for READ accesses + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- These assignments are required to check if the CFS is accessed at all. + -- DO NOT MODIFY this unless you really know what you are doing. + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = cfs_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= cfs_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; -- full 32-bit word write enable + rden <= acc_en and rden_i; -- the read access is always a full 32-bit word wide; if required, the byte/half-word select/masking is done in the CPU + + -- NOTE: Do not modify the CFS base address or the CFS' occupied address space as this might cause access + -- collisions with other modules. + + -- This module provides an ERROR signal to signal a faulty access operation to the CPU. + -- It can be used to indicate an invalid access (for example to an unused CFS register address) or to signal + -- a faulty state (like "not operational yet"). The error signal can be checked be checked by the applications + -- "bus access fault" exception handler (provided by the system's BUSKEEPER module). + -- This signal may only be set when the module is actually accessed! Tie to zero if not explicitly used. + err_o <= '0'; + + + -- CFS Generics --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- In its default version, the CFS provides the configuration generics. single generic: + -- CFS_IN_SIZE configures the size (in bits) of the CFS input conduit cfs_in_i + -- CFS_OUT_SIZE configures the size (in bits) of the CFS output conduit cfs_out_o + -- CFS_CONFIG is a blank 32-bit generic. It is intended as a "generic conduit" to propagate custom configuration flags from the top entity down to this entiy. + + + -- CFS IOs -------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- By default, the CFS provides two IO signals (cfs_in_i and cfs_out_o) that are available at the processor top entity. + -- These are intended as "conduits" to propagate custom signals this entity <=> processor top entity. + + cfs_out_o <= (others => '0'); -- not used for this minimal example + + + -- Reset System --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- The CFS can be reset using the global rstn_i signal. This signal should be used as asynchronous reset and is active-low. + -- Note that rstn_i can be asserted by an external reset and also by a watchdog-cause reset. + -- + -- Most default peripheral devices of the NEORV32 do NOT use a dedicated reset at all. Instead, these units are reset by writing ZERO + -- to a specific "control register" located right at the beginning of the device's address space (so this register is cleared at first). + -- The crt0 start-up code write ZERO to every single address in the processor's IO space - including the CFS. + -- Make sure that this clearing does not cause any unintended actions in the CFS. + + + -- Clock System --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- The processor top unit implements a clock generator providing 8 "derived clocks" + -- Actually, these signals should not be used as direct clock signals, but as *clock enable* signals. + -- clkgen_i is always synchronous to the main system clock (clk_i). + -- + -- The following clock divider rates are available: + -- clkgen_i(clk_div2_c) -> MAIN_CLK/2 + -- clkgen_i(clk_div4_c) -> MAIN_CLK/4 + -- clkgen_i(clk_div8_c) -> MAIN_CLK/8 + -- clkgen_i(clk_div64_c) -> MAIN_CLK/64 + -- clkgen_i(clk_div128_c) -> MAIN_CLK/128 + -- clkgen_i(clk_div1024_c) -> MAIN_CLK/1024 + -- clkgen_i(clk_div2048_c) -> MAIN_CLK/2048 + -- clkgen_i(clk_div4096_c) -> MAIN_CLK/4096 + -- + -- For instance, if you want to drive a clock process at MAIN_CLK/8 clock speed you can use the following construct: + -- + -- if (rstn_i = '0') then -- async and low-active reset (if required at all) + -- ... + -- elsif rising_edge(clk_i) then -- always use the main clock for all clock processes! + -- if (clkgen_i(clk_div8_c) = '1') then -- the div8 "clock" is actually a clock enable + -- ... + -- end if; + -- end if; + -- + -- The clkgen_i input clocks are available when at least one IO/peripheral device (for example the SPI) requires the clocks generated by the + -- clock generator. The CFS can enable the clock generator by itself by setting the clkgen_en_o signal high. + -- The CFS cannot ensure to deactivate the clock generator by setting the clkgen_en_o signal low as other peripherals might still keep the generator activated. + -- Make sure to deactivate the CFS's clkgen_en_o if no clocks are required in here to reduce dynamic power consumption. + + clkgen_en_o <= '0'; -- not used for this minimal example + + + -- Interrupt ------------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- The CFS features a single interrupt signal, which is connected to the CPU's "fast interrupt" channel 1. + -- The interrupt is triggered by a one-shot rising edge. After triggering, the interrupt appears as "pending" in the CPU's mie register + -- ready to trigger execution of the according interrupt handler. The interrupt request signal should be triggered + -- whenever an interrupt condition is fulfilled. It is the task of the application to programmer to enable/clear the CFS interrupt + -- using the CPU's mie and mip registers when reuqired. + + irq_o <= '0'; -- not used for this minimal example + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Here we are reading/writing from/to the interface registers of the module. Please note that the peripheral/IO + -- modules of the NEORV32 can only be written in full word mode (32-bit). Any other write access (half-word or byte) + -- will trigger a store bus access fault exception. + -- + -- The CFS provides up to 32 memory-mapped 32-bit interface register. For instance, these could be used to provide + -- a for global control of the unit, a for reading/writing from/to a data FIFO, a + -- for issuing commands and a for status information. + -- + -- Following the interface protocol, each read or write access has to be acknowledged in the following cycle using the ack_o signal (or even later + -- if the module needs additional time; the maximum latency until an unacknowledged access will trigger a bus exception is defined via the package's + -- global "bus_timeout_c" constant). If no ACK is generated at all, the bus access will time out and cause a bus access fault exception. + + -- Host access: Read and write access to the interface registers + bus transfer acknowledge. + -- This example only implements four physical r/w register (the four lowest CF register). The remaining addresses of the CFS are not + -- associated with any writable or readable register - an access to those is simply ignored but still acknowledged. + + host_access: process(clk_i) + begin + if rising_edge(clk_i) then -- synchronous interface for reads and writes + -- transfer/access acknowledge -- + ack_o <= rden or wren; -- default: required for the CPU to check the CFS is answering a bus read OR write request; all r/w accesses (to any cfs_reg) will succeed +-- ack_o <= rden; -- use this construct if your CFS is read-only +-- ack_o <= wren; -- use this construct if your CFS is write-only +-- ack_o <= ... -- or define the ACK by yourself (example: some registers are read-only, some others can only be written, ...) + + -- write access -- + if (wren = '1') then -- word-wide write-access only! + if (addr = cfs_reg0_addr_c) then -- make sure to use the internal "addr" signal for the read/write interface + cfs_reg_wr(0) <= data_i; -- for example: control register + end if; + if (addr = cfs_reg1_addr_c) then + cfs_reg_wr(1) <= data_i; -- for example: data in/out fifo + end if; + if (addr = cfs_reg2_addr_c) then + cfs_reg_wr(2) <= data_i; -- for example: command fifo + end if; + if (addr = cfs_reg3_addr_c) then + cfs_reg_wr(3) <= data_i; -- for example: status register + end if; + end if; + + -- read access -- + data_o <= (others => '0'); -- the output has to be zero if there is no actual read access + if (rden = '1') then -- the read access is always a full 32-bit word wide; if required, the byte/half-word select/masking is done in the CPU + case addr is -- make sure to use the internal 'addr' signal for the read/write interface + when cfs_reg0_addr_c => data_o <= cfs_reg_rd(0); + when cfs_reg1_addr_c => data_o <= cfs_reg_rd(1); + when cfs_reg2_addr_c => data_o <= cfs_reg_rd(2); + when cfs_reg3_addr_c => data_o <= cfs_reg_rd(3); + when others => data_o <= (others => '0'); -- the remaining registers are not implemented and will read as zero + end case; + end if; + end if; + end process host_access; + + + -- CFS Function Core ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- This is where the actual functionality can be implemented. + -- In this example we are just implementing four r/w registers that invert any value written to them. + + cfs_core: process(cfs_reg_wr) + begin + cfs_reg_rd(0) <= not cfs_reg_wr(0); -- just invert the written value + cfs_reg_rd(1) <= not cfs_reg_wr(1); + cfs_reg_rd(2) <= not cfs_reg_wr(2); + cfs_reg_rd(3) <= not cfs_reg_wr(3); + end process cfs_core; + + +end neorv32_cfs_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu.vhd new file mode 100644 index 0000000..b36dfd2 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu.vhd @@ -0,0 +1,444 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU Top Entity >> # +-- # ********************************************************************************************* # +-- # NEORV32 CPU: # +-- # * neorv32_cpu.vhd - CPU top entity # +-- # * neorv32_cpu_alu.vhd - Arithmetic/logic unit # +-- # * neorv32_cpu_cp_bitmanip.vhd - Bit-manipulation co-processor # +-- # * neorv32_cpu_cp_fpu.vhd - Single-precision FPU co-processor # +-- # * neorv32_cpu_cp_muldiv.vhd - Integer multiplier/divider co-processor # +-- # * neorv32_cpu_cp_shifter.vhd - Base ISA shifter unit # +-- # * neorv32_cpu_bus.vhd - Instruction and data bus interface unit # +-- # * neorv32_cpu_control.vhd - CPU control and CSR system # +-- # * neorv32_cpu_decompressor.vhd - Compressed instructions decoder # +-- # * neorv32_cpu_regfile.vhd - Data register file # +-- # * neorv32_package.vhd - Main CPU & Processor package file # +-- # # +-- # Check out the CPU's online documentation for more information: # +-- # HQ: https://github.com/stnolting/neorv32 # +-- # Data Sheet: https://stnolting.github.io/neorv32 # +-- # User Guide: https://stnolting.github.io/neorv32/ug # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu is + generic ( + -- General -- + HW_THREAD_ID : natural; -- hardware thread id (32-bit) + CPU_BOOT_ADDR : std_ulogic_vector(31 downto 0); -- cpu boot address + CPU_DEBUG_ADDR : std_ulogic_vector(31 downto 0); -- cpu debug mode start address + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean; -- implement muld/div extension? + CPU_EXTENSION_RISCV_U : boolean; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG : boolean; -- implement CPU debug mode? + -- Extension Options -- + FAST_MUL_EN : boolean; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural; -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural -- total size of HPM counters (0..64) + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + sleep_o : out std_ulogic; -- cpu is in sleep mode when set + debug_o : out std_ulogic; -- cpu is in debug mode when set + -- instruction bus interface -- + i_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + i_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + i_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + i_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + i_bus_we_o : out std_ulogic; -- write enable + i_bus_re_o : out std_ulogic; -- read enable + i_bus_lock_o : out std_ulogic; -- exclusive access request + i_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + i_bus_err_i : in std_ulogic; -- bus transfer error + i_bus_fence_o : out std_ulogic; -- executed FENCEI operation + i_bus_priv_o : out std_ulogic_vector(1 downto 0); -- privilege level + -- data bus interface -- + d_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + d_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + d_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + d_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + d_bus_we_o : out std_ulogic; -- write enable + d_bus_re_o : out std_ulogic; -- read enable + d_bus_lock_o : out std_ulogic; -- exclusive access request + d_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + d_bus_err_i : in std_ulogic; -- bus transfer error + d_bus_fence_o : out std_ulogic; -- executed FENCE operation + d_bus_priv_o : out std_ulogic_vector(1 downto 0); -- privilege level + -- system time input from MTIME -- + time_i : in std_ulogic_vector(63 downto 0); -- current system time + -- interrupts (risc-v compliant) -- + msw_irq_i : in std_ulogic;-- machine software interrupt + mext_irq_i : in std_ulogic;-- machine external interrupt + mtime_irq_i : in std_ulogic;-- machine timer interrupt + -- fast interrupts (custom) -- + firq_i : in std_ulogic_vector(15 downto 0); + -- debug mode (halt) request -- + db_halt_req_i : in std_ulogic + ); +end neorv32_cpu; + +architecture neorv32_cpu_rtl of neorv32_cpu is + + -- local signals -- + signal ctrl : std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + signal comparator : std_ulogic_vector(1 downto 0); -- comparator result + signal imm : std_ulogic_vector(data_width_c-1 downto 0); -- immediate + signal instr : std_ulogic_vector(data_width_c-1 downto 0); -- new instruction + signal rs1, rs2 : std_ulogic_vector(data_width_c-1 downto 0); -- source registers + signal alu_res : std_ulogic_vector(data_width_c-1 downto 0); -- alu result + signal alu_add : std_ulogic_vector(data_width_c-1 downto 0); -- alu address result + signal mem_rdata : std_ulogic_vector(data_width_c-1 downto 0); -- memory read data + signal alu_idone : std_ulogic; -- iterative alu operation done + signal bus_i_wait : std_ulogic; -- wait for current bus instruction fetch + signal bus_d_wait : std_ulogic; -- wait for current bus data access + signal csr_rdata : std_ulogic_vector(data_width_c-1 downto 0); -- csr read data + signal mar : std_ulogic_vector(data_width_c-1 downto 0); -- current memory address register + signal ma_instr : std_ulogic; -- misaligned instruction address + signal ma_load : std_ulogic; -- misaligned load data address + signal ma_store : std_ulogic; -- misaligned store data address + signal excl_state : std_ulogic; -- atomic/exclusive access lock status + signal be_instr : std_ulogic; -- bus error on instruction access + signal be_load : std_ulogic; -- bus error on load data access + signal be_store : std_ulogic; -- bus error on store data access + signal fetch_pc : std_ulogic_vector(data_width_c-1 downto 0); -- pc for instruction fetch + signal curr_pc : std_ulogic_vector(data_width_c-1 downto 0); -- current pc (for current executed instruction) + signal next_pc : std_ulogic_vector(data_width_c-1 downto 0); -- next pc (for next executed instruction) + signal fpu_flags : std_ulogic_vector(4 downto 0); -- FPU exception flags + + -- pmp interface -- + signal pmp_addr : pmp_addr_if_t; + signal pmp_ctrl : pmp_ctrl_if_t; + +begin + + -- CPU ISA Configuration --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report + "NEORV32 CPU ISA Configuration (MARCH): " & + cond_sel_string_f(CPU_EXTENSION_RISCV_E, "RV32E", "RV32I") & + cond_sel_string_f(CPU_EXTENSION_RISCV_M, "M", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_A, "A", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_C, "C", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_B, "B", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_U, "U", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_Zicsr, "_Zicsr", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_Zicntr, "_Zicntr", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_Zihpm, "_Zihpm", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_Zifencei, "_Zifencei", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_Zfinx, "_Zfinx", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_Zmmul, "_Zmmul", "") & + cond_sel_string_f(CPU_EXTENSION_RISCV_DEBUG, "_Debug", "") & + "" + severity note; + + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- hardware reset notifier -- + assert not (dedicated_reset_c = false) report "NEORV32 CPU CONFIG NOTE: Implementing NO dedicated hardware reset for uncritical registers (default, might reduce area). Set package constant = TRUE to configure a DEFINED reset value for all CPU registers." severity note; + assert not (dedicated_reset_c = true) report "NEORV32 CPU CONFIG NOTE: Implementing defined hardware reset for uncritical registers (non-default, reset-to-zero, might increase area)." severity note; + assert not ((def_rst_val_c /= '-') and (def_rst_val_c /= '0')) report "NEORV32 CPU CONFIG ERROR! Invalid configuration of package constant (has to be '-' or '0')." severity error; + + -- CSR system -- + assert not (CPU_EXTENSION_RISCV_Zicsr = false) report "NEORV32 CPU CONFIG WARNING! No exception/interrupt/trap/privileged features available when = false." severity warning; + + -- CPU counters (cycle and instret) -- + assert not ((CPU_EXTENSION_RISCV_Zicntr = true) and ((CPU_CNT_WIDTH < 0) or (CPU_CNT_WIDTH > 64))) report "NEORV32 CPU CONFIG ERROR! Invalid configuration. Has to be 0..64." severity error; + assert not ((CPU_EXTENSION_RISCV_Zicntr = true) and (CPU_CNT_WIDTH < 64)) report "NEORV32 CPU CONFIG WARNING! Implementing CPU and CSRs with reduced size (" & integer'image(CPU_CNT_WIDTH) & "-bit instead of 64-bit). This is not RISC-V compliant and might have unintended SW side effects." severity warning; + + -- U-extension requires Zicsr extension -- + assert not ((CPU_EXTENSION_RISCV_Zicsr = false) and (CPU_EXTENSION_RISCV_U = true)) report "NEORV32 CPU CONFIG ERROR! User mode requires extension to be enabled." severity error; + + -- Instruction prefetch buffer size -- + assert not (is_power_of_two_f(CPU_IPB_ENTRIES) = false) report "NEORV32 CPU CONFIG ERROR! Number of entries in instruction prefetch buffer has to be a power of two." severity error; + + -- Co-processor timeout counter (for debugging only) -- + assert not (cp_timeout_en_c = true) report "NEORV32 CPU CONFIG WARNING! Co-processor timeout counter enabled. This should be used for debugging/simulation only." severity warning; + + -- PMP regions check -- + assert not (PMP_NUM_REGIONS > 64) report "NEORV32 CPU CONFIG ERROR! Number of PMP regions out of valid range (0..64)." severity error; + -- PMP granularity -- + assert not ((is_power_of_two_f(PMP_MIN_GRANULARITY) = false) and (PMP_NUM_REGIONS > 0)) report "NEORV32 CPU CONFIG ERROR! has to be a power of two." severity error; + assert not ((PMP_MIN_GRANULARITY < 8) and (PMP_NUM_REGIONS > 0)) report "NEORV32 CPU CONFIG ERROR! has to be >= 8 bytes." severity error; + assert not ((CPU_EXTENSION_RISCV_Zicsr = false) and (PMP_NUM_REGIONS > 0)) report "NEORV32 CPU CONFIG ERROR! Physical memory protection (PMP) requires extension to be enabled." severity error; + + -- HPM counters check -- + assert not ((CPU_EXTENSION_RISCV_Zihpm = true) and (HPM_NUM_CNTS > 29)) report "NEORV32 CPU CONFIG ERROR! Number of HPM counters out of valid range (0..29)." severity error; + assert not ((CPU_EXTENSION_RISCV_Zihpm = true) and ((HPM_CNT_WIDTH < 0) or (HPM_CNT_WIDTH > 64))) report "NEORV32 CPU CONFIG ERROR! HPM counter width has to be 0..64 bit." severity error; + assert not ((CPU_EXTENSION_RISCV_Zicsr = false) and (CPU_EXTENSION_RISCV_Zihpm = true)) report "NEORV32 CPU CONFIG ERROR! Hardware performance monitors extension requires extension to be enabled." severity error; + + -- Mul-extension -- + assert not ((CPU_EXTENSION_RISCV_Zmmul = true) and (CPU_EXTENSION_RISCV_M = true)) report "NEORV32 CPU CONFIG ERROR! and extensions cannot co-exist!" severity error; + + -- Debug mode -- + assert not ((CPU_EXTENSION_RISCV_DEBUG = true) and (CPU_EXTENSION_RISCV_Zicsr = false)) report "NEORV32 CPU CONFIG ERROR! Debug mode requires extension to be enabled." severity error; + assert not ((CPU_EXTENSION_RISCV_DEBUG = true) and (CPU_EXTENSION_RISCV_Zifencei = false)) report "NEORV32 CPU CONFIG ERROR! Debug mode requires extension to be enabled." severity error; + + -- fast multiplication option -- + assert not (FAST_MUL_EN = true) report "NEORV32 CPU CONFIG NOTE: set. Trying to use DSP blocks for base ISA multiplications." severity note; + + -- fast shift option -- + assert not (FAST_SHIFT_EN = true) report "NEORV32 CPU CONFIG NOTE: set. Implementing full-parallel logic / barrel shifters." severity note; + + + -- Control Unit --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_control_inst: neorv32_cpu_control + generic map ( + -- General -- + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id + CPU_BOOT_ADDR => CPU_BOOT_ADDR, -- cpu boot address + CPU_DEBUG_ADDR => CPU_DEBUG_ADDR, -- cpu debug mode start address + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement mul/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => CPU_EXTENSION_RISCV_Zicntr, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => CPU_EXTENSION_RISCV_Zihpm, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul => CPU_EXTENSION_RISCV_Zmmul, -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG => CPU_EXTENSION_RISCV_DEBUG, -- implement CPU debug mode? + -- Extension Options -- + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES => CPU_IPB_ENTRIES, -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH -- total size of HPM counters + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_o => ctrl, -- main control bus + -- status input -- + alu_idone_i => alu_idone, -- ALU iterative operation done + bus_i_wait_i => bus_i_wait, -- wait for bus + bus_d_wait_i => bus_d_wait, -- wait for bus + excl_state_i => excl_state, -- atomic/exclusive access lock status + -- data input -- + instr_i => instr, -- instruction + cmp_i => comparator, -- comparator status + alu_add_i => alu_add, -- ALU address result + rs1_i => rs1, -- rf source 1 + -- data output -- + imm_o => imm, -- immediate + fetch_pc_o => fetch_pc, -- PC for instruction fetch + curr_pc_o => curr_pc, -- current PC (corresponding to current instruction) + next_pc_o => next_pc, -- next PC (corresponding to next instruction) + csr_rdata_o => csr_rdata, -- CSR read data + -- FPU interface -- + fpu_flags_i => fpu_flags, -- exception flags + -- debug mode (halt) request -- + db_halt_req_i => db_halt_req_i, + -- interrupts (risc-v compliant) -- + msw_irq_i => msw_irq_i, -- machine software interrupt + mext_irq_i => mext_irq_i, -- machine external interrupt + mtime_irq_i => mtime_irq_i, -- machine timer interrupt + -- fast interrupts (custom) -- + firq_i => firq_i, -- fast interrupt trigger + -- system time input from MTIME -- + time_i => time_i, -- current system time + -- physical memory protection -- + pmp_addr_o => pmp_addr, -- addresses + pmp_ctrl_o => pmp_ctrl, -- configs + -- bus access exceptions -- + mar_i => mar, -- memory address register + ma_instr_i => ma_instr, -- misaligned instruction address + ma_load_i => ma_load, -- misaligned load data address + ma_store_i => ma_store, -- misaligned store data address + be_instr_i => be_instr, -- bus error on instruction access + be_load_i => be_load, -- bus error on load data access + be_store_i => be_store -- bus error on store data access + ); + + -- CPU is sleeping? -- + sleep_o <= ctrl(ctrl_sleep_c); -- set when CPU is sleeping (after WFI) + + -- CPU is in debug mode? -- + debug_o <= ctrl(ctrl_debug_running_c); + + + -- Register File -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_regfile_inst: neorv32_cpu_regfile + generic map ( + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E -- implement embedded RF extension? + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + ctrl_i => ctrl, -- main control bus + -- data input -- + mem_i => mem_rdata, -- memory read data + alu_i => alu_res, -- ALU result + -- data output -- + rs1_o => rs1, -- operand 1 + rs2_o => rs2 -- operand 2 + ); + + + -- ALU ------------------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_alu_inst: neorv32_cpu_alu + generic map ( + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement mul/div extension? + CPU_EXTENSION_RISCV_Zmmul => CPU_EXTENSION_RISCV_Zmmul, -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT reg!) + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN -- use barrel shifter for shift operations + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_i => ctrl, -- main control bus + -- data input -- + rs1_i => rs1, -- rf source 1 + rs2_i => rs2, -- rf source 2 + pc_i => curr_pc, -- current PC + pc2_i => next_pc, -- next PC + imm_i => imm, -- immediate + csr_i => csr_rdata, -- CSR read data + -- data output -- + cmp_o => comparator, -- comparator status + res_o => alu_res, -- ALU result + add_o => alu_add, -- address computation result + fpu_flags_o => fpu_flags, -- FPU exception flags + -- status -- + idone_o => alu_idone -- iterative processing units done? + ); + + + -- Bus Interface Unit --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_bus_inst: neorv32_cpu_bus + generic map ( + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_i => ctrl, -- main control bus + -- cpu instruction fetch interface -- + fetch_pc_i => fetch_pc, -- PC for instruction fetch + instr_o => instr, -- instruction + i_wait_o => bus_i_wait, -- wait for fetch to complete + -- + ma_instr_o => ma_instr, -- misaligned instruction address + be_instr_o => be_instr, -- bus error on instruction access + -- cpu data access interface -- + addr_i => alu_add, -- ALU.add result -> access address + wdata_i => rs2, -- write data + rdata_o => mem_rdata, -- read data + mar_o => mar, -- current memory address register + d_wait_o => bus_d_wait, -- wait for access to complete + -- + excl_state_o => excl_state, -- atomic/exclusive access status + ma_load_o => ma_load, -- misaligned load data address + ma_store_o => ma_store, -- misaligned store data address + be_load_o => be_load, -- bus error on load data access + be_store_o => be_store, -- bus error on store data access + -- physical memory protection -- + pmp_addr_i => pmp_addr, -- addresses + pmp_ctrl_i => pmp_ctrl, -- configurations + -- instruction bus -- + i_bus_addr_o => i_bus_addr_o, -- bus access address + i_bus_rdata_i => i_bus_rdata_i, -- bus read data + i_bus_wdata_o => i_bus_wdata_o, -- bus write data + i_bus_ben_o => i_bus_ben_o, -- byte enable + i_bus_we_o => i_bus_we_o, -- write enable + i_bus_re_o => i_bus_re_o, -- read enable + i_bus_lock_o => i_bus_lock_o, -- exclusive access request + i_bus_ack_i => i_bus_ack_i, -- bus transfer acknowledge + i_bus_err_i => i_bus_err_i, -- bus transfer error + i_bus_fence_o => i_bus_fence_o, -- fence operation + -- data bus -- + d_bus_addr_o => d_bus_addr_o, -- bus access address + d_bus_rdata_i => d_bus_rdata_i, -- bus read data + d_bus_wdata_o => d_bus_wdata_o, -- bus write data + d_bus_ben_o => d_bus_ben_o, -- byte enable + d_bus_we_o => d_bus_we_o, -- write enable + d_bus_re_o => d_bus_re_o, -- read enable + d_bus_lock_o => d_bus_lock_o, -- exclusive access request + d_bus_ack_i => d_bus_ack_i, -- bus transfer acknowledge + d_bus_err_i => d_bus_err_i, -- bus transfer error + d_bus_fence_o => d_bus_fence_o -- fence operation + ); + + -- current privilege level -- + i_bus_priv_o <= ctrl(ctrl_priv_lvl_msb_c downto ctrl_priv_lvl_lsb_c); + d_bus_priv_o <= ctrl(ctrl_priv_lvl_msb_c downto ctrl_priv_lvl_lsb_c); + + +end neorv32_cpu_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_alu.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_alu.vhd new file mode 100644 index 0000000..9226653 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_alu.vhd @@ -0,0 +1,349 @@ +-- ################################################################################################# +-- # << NEORV32 - Arithmetical/Logical Unit >> # +-- # ********************************************************************************************* # +-- # Main data and address ALU and co-processor interface/arbiter. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_alu is + generic ( + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_B : boolean; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_M : boolean; -- implement mul/div extension? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + -- Extension Options -- + FAST_MUL_EN : boolean; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean -- use barrel shifter for shift operations + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- data input -- + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + pc_i : in std_ulogic_vector(data_width_c-1 downto 0); -- current PC + pc2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- next PC + imm_i : in std_ulogic_vector(data_width_c-1 downto 0); -- immediate + csr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- CSR read data + -- data output -- + cmp_o : out std_ulogic_vector(1 downto 0); -- comparator status + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- ALU result + add_o : out std_ulogic_vector(data_width_c-1 downto 0); -- address computation result + fpu_flags_o : out std_ulogic_vector(4 downto 0); -- FPU exception flags + -- status -- + idone_o : out std_ulogic -- iterative processing units done? + ); +end neorv32_cpu_alu; + +architecture neorv32_cpu_cpu_rtl of neorv32_cpu_alu is + + -- comparator -- + signal cmp_opx : std_ulogic_vector(data_width_c downto 0); + signal cmp_opy : std_ulogic_vector(data_width_c downto 0); + signal cmp : std_ulogic_vector(1 downto 0); -- comparator status + + -- operands -- + signal opa, opb : std_ulogic_vector(data_width_c-1 downto 0); + + -- results -- + signal addsub_res : std_ulogic_vector(data_width_c downto 0); + signal alu_res : std_ulogic_vector(data_width_c-1 downto 0); + signal cp_res : std_ulogic_vector(data_width_c-1 downto 0); + + -- co-processor arbiter and interface -- + type cp_ctrl_t is record + cmd : std_ulogic; + cmd_ff : std_ulogic; + start : std_ulogic; + busy : std_ulogic; + timeout : std_ulogic_vector(9 downto 0); + end record; + signal cp_ctrl : cp_ctrl_t; + + -- co-processor interface -- + signal cp_start : std_ulogic_vector(3 downto 0); -- trigger co-processor i + signal cp_valid : std_ulogic_vector(3 downto 0); -- co-processor i done + signal cp_result : cp_data_if_t; -- co-processor result + +begin + + -- Comparator Unit (for conditional branches) --------------------------------------------- + -- ------------------------------------------------------------------------------------------- + cmp_opx <= (rs1_i(rs1_i'left) and (not ctrl_i(ctrl_alu_unsigned_c))) & rs1_i; + cmp_opy <= (rs2_i(rs2_i'left) and (not ctrl_i(ctrl_alu_unsigned_c))) & rs2_i; + + cmp(cmp_equal_c) <= '1' when (rs1_i = rs2_i) else '0'; + cmp(cmp_less_c) <= '1' when (signed(cmp_opx) < signed(cmp_opy)) else '0'; + cmp_o <= cmp; + + + -- ALU Input Operand Mux ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + opa <= pc_i when (ctrl_i(ctrl_alu_opa_mux_c) = '1') else rs1_i; -- operand a (first ALU input operand), only required for arithmetic ops + opb <= imm_i when (ctrl_i(ctrl_alu_opb_mux_c) = '1') else rs2_i; -- operand b (second ALU input operand) + + + -- Binary Adder/Subtracter ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + binary_arithmetic_core: process(ctrl_i, opa, opb) + variable cin_v : std_ulogic_vector(0 downto 0); + variable op_a_v : std_ulogic_vector(data_width_c downto 0); + variable op_b_v : std_ulogic_vector(data_width_c downto 0); + variable op_y_v : std_ulogic_vector(data_width_c downto 0); + variable res_v : std_ulogic_vector(data_width_c downto 0); + begin + -- operand sign-extension -- + op_a_v := (opa(opa'left) and (not ctrl_i(ctrl_alu_unsigned_c))) & opa; + op_b_v := (opb(opb'left) and (not ctrl_i(ctrl_alu_unsigned_c))) & opb; + -- add/sub(slt) select -- + if (ctrl_i(ctrl_alu_op0_c) = '1') then -- subtraction + op_y_v := not op_b_v; + cin_v(0) := '1'; + else -- addition + op_y_v := op_b_v; + cin_v(0) := '0'; + end if; + -- adder core -- + addsub_res <= std_ulogic_vector(unsigned(op_a_v) + unsigned(op_y_v) + unsigned(cin_v(0 downto 0))); + end process binary_arithmetic_core; + + -- direct output of adder result -- + add_o <= addsub_res(data_width_c-1 downto 0); + + + -- ALU Operation Select ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + alu_core: process(ctrl_i, addsub_res, rs1_i, opb) + begin + case ctrl_i(ctrl_alu_op2_c downto ctrl_alu_op0_c) is + when alu_op_add_c => alu_res <= addsub_res(data_width_c-1 downto 0); -- (default) + when alu_op_sub_c => alu_res <= addsub_res(data_width_c-1 downto 0); +-- when alu_op_mova_c => alu_res <= rs1_i; -- FIXME + when alu_op_slt_c => alu_res <= (others => '0'); alu_res(0) <= addsub_res(addsub_res'left); -- => carry/borrow + when alu_op_movb_c => alu_res <= opb; + when alu_op_xor_c => alu_res <= rs1_i xor opb; -- only rs1 required for logic ops (opa would also contain pc) + when alu_op_or_c => alu_res <= rs1_i or opb; + when alu_op_and_c => alu_res <= rs1_i and opb; + when others => alu_res <= addsub_res(data_width_c-1 downto 0); + end case; + end process alu_core; + + -- ALU Function Select -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + alu_function_mux: process(ctrl_i, alu_res, pc2_i, csr_i, cp_res) + begin + case ctrl_i(ctrl_alu_func1_c downto ctrl_alu_func0_c) is + when alu_func_core_c => res_o <= alu_res; -- (default) + when alu_func_nxpc_c => res_o <= pc2_i; + when alu_func_csrr_c => res_o <= csr_i; + when alu_func_copro_c => res_o <= cp_res; + when others => res_o <= alu_res; -- undefined + end case; + end process alu_function_mux; + + + -- ************************************************************************************************************************** + -- Co-Processors + -- ************************************************************************************************************************** + + -- Co-Processor Arbiter ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Interface: + -- Co-processor "valid" signal has to be asserted (for one cycle) one cycle before asserting output data + -- Co-processor "output data" has to be always zero unless co-processor was explicitly triggered + cp_arbiter: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + cp_ctrl.cmd_ff <= '0'; + cp_ctrl.busy <= '0'; + cp_ctrl.timeout <= (others => '0'); + elsif rising_edge(clk_i) then + cp_ctrl.cmd_ff <= cp_ctrl.cmd; + -- timeout counter -- + if (cp_ctrl.start = '1') then + cp_ctrl.busy <= '1'; + elsif (or_reduce_f(cp_valid) = '1') then + cp_ctrl.busy <= '0'; + end if; + if (cp_ctrl.busy = '1') and (cp_timeout_en_c = true) then + cp_ctrl.timeout <= std_ulogic_vector(unsigned(cp_ctrl.timeout) + 1); + else + cp_ctrl.timeout <= (others => '0'); + end if; + if (cp_ctrl.timeout(cp_ctrl.timeout'left) = '1') and (cp_timeout_en_c = true) then -- timeout + assert false report "NEORV32 CPU CO-PROCESSOR TIMEOUT ERROR!" severity warning; + end if; + end if; + end process cp_arbiter; + + -- is co-processor operation? -- + cp_ctrl.cmd <= '1' when (ctrl_i(ctrl_alu_func1_c downto ctrl_alu_func0_c) = alu_func_copro_c) else '0'; + cp_ctrl.start <= '1' when (cp_ctrl.cmd = '1') and (cp_ctrl.cmd_ff = '0') else '0'; + + -- co-processor select / star trigger -- + cp_start(0) <= '1' when (cp_ctrl.start = '1') and (ctrl_i(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) = "00") else '0'; + cp_start(1) <= '1' when (cp_ctrl.start = '1') and (ctrl_i(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) = "01") else '0'; + cp_start(2) <= '1' when (cp_ctrl.start = '1') and (ctrl_i(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) = "10") else '0'; + cp_start(3) <= '1' when (cp_ctrl.start = '1') and (ctrl_i(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) = "11") else '0'; + + -- co-processor operation done? -- + idone_o <= or_reduce_f(cp_valid); + + -- co-processor result - only the *actually selected* co-processor may output data != 0 -- + cp_res <= cp_result(0) or cp_result(1) or cp_result(2) or cp_result(3); + + + -- Co-Processor 0: Shifter (CPU Core ISA) -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_cp_shifter_inst: neorv32_cpu_cp_shifter + generic map ( + FAST_SHIFT_EN => FAST_SHIFT_EN -- use barrel shifter for shift operations + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_i => ctrl_i, -- main control bus + start_i => cp_start(0), -- trigger operation + -- data input -- + rs1_i => rs1_i, -- rf source 1 + shamt_i => opb(index_size_f(data_width_c)-1 downto 0), -- shift amount + -- result and status -- + res_o => cp_result(0), -- operation result + valid_o => cp_valid(0) -- data output valid + ); + + + -- Co-Processor 1: Integer Multiplication/Division ('M' Extension) ------------------------ + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_cp_muldiv_inst_true: + if (CPU_EXTENSION_RISCV_M = true) or (CPU_EXTENSION_RISCV_Zmmul = true) generate + neorv32_cpu_cp_muldiv_inst: neorv32_cpu_cp_muldiv + generic map ( + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for faster multiplication + DIVISION_EN => CPU_EXTENSION_RISCV_M -- implement divider hardware + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_i => ctrl_i, -- main control bus + start_i => cp_start(1), -- trigger operation + -- data input -- + rs1_i => rs1_i, -- rf source 1 + rs2_i => rs2_i, -- rf source 2 + -- result and status -- + res_o => cp_result(1), -- operation result + valid_o => cp_valid(1) -- data output valid + ); + end generate; + + neorv32_cpu_cp_muldiv_inst_false: + if (CPU_EXTENSION_RISCV_M = false) and (CPU_EXTENSION_RISCV_Zmmul = false) generate + cp_result(1) <= (others => '0'); + cp_valid(1) <= cp_start(1); -- to make sure CPU does not get stalled if there is an accidental access + end generate; + + + -- Co-Processor 2: Bit-Manipulation Unit ('B' Extension) ---------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_cp_bitmanip_inst_true: + if (CPU_EXTENSION_RISCV_B = true) generate + neorv32_cpu_cp_bitmanip_inst: neorv32_cpu_cp_bitmanip + generic map ( + FAST_SHIFT_EN => FAST_SHIFT_EN -- use barrel shifter for shift operations + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_i => ctrl_i, -- main control bus + start_i => cp_start(2), -- trigger operation + -- data input -- + cmp_i => cmp, -- comparator status + rs1_i => rs1_i, -- rf source 1 + rs2_i => rs2_i, -- rf source 2 + shamt_i => opb(index_size_f(data_width_c)-1 downto 0), -- shift amount + -- result and status -- + res_o => cp_result(2), -- operation result + valid_o => cp_valid(2) -- data output valid + ); + end generate; + + neorv32_cpu_cp_bitmanip_inst_false: + if (CPU_EXTENSION_RISCV_B = false) generate + cp_result(2) <= (others => '0'); + cp_valid(2) <= cp_start(2); -- to make sure CPU does not get stalled if there is an accidental access + end generate; + + + -- Co-Processor 3: Single-Precision Floating-Point Unit ('Zfinx' Extension) --------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_cp_fpu_inst_true: + if (CPU_EXTENSION_RISCV_Zfinx = true) generate + neorv32_cpu_cp_fpu_inst: neorv32_cpu_cp_fpu + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + ctrl_i => ctrl_i, -- main control bus + start_i => cp_start(3), -- trigger operation + -- data input -- + cmp_i => cmp, -- comparator status + rs1_i => rs1_i, -- rf source 1 + rs2_i => rs2_i, -- rf source 2 + -- result and status -- + res_o => cp_result(3), -- operation result + fflags_o => fpu_flags_o, -- exception flags + valid_o => cp_valid(3) -- data output valid + ); + end generate; + + neorv32_cpu_cp_fpu_inst_false: + if (CPU_EXTENSION_RISCV_Zfinx = false) generate + cp_result(3) <= (others => '0'); + fpu_flags_o <= (others => '0'); + cp_valid(3) <= cp_start(3); -- to make sure CPU does not get stalled if there is an accidental access + end generate; + + +end neorv32_cpu_cpu_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_bus.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_bus.vhd new file mode 100644 index 0000000..56713c8 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_bus.vhd @@ -0,0 +1,509 @@ +-- ################################################################################################# +-- # << NEORV32 - Bus Interface Unit >> # +-- # ********************************************************************************************* # +-- # Instruction and data bus interfaces and physical memory protection (PMP). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_bus is + generic ( + CPU_EXTENSION_RISCV_A : boolean; -- implement atomic extension? + CPU_EXTENSION_RISCV_C : boolean; -- implement compressed extension? + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic := '0'; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- cpu instruction fetch interface -- + fetch_pc_i : in std_ulogic_vector(data_width_c-1 downto 0); -- PC for instruction fetch + instr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- instruction + i_wait_o : out std_ulogic; -- wait for fetch to complete + -- + ma_instr_o : out std_ulogic; -- misaligned instruction address + be_instr_o : out std_ulogic; -- bus error on instruction access + -- cpu data access interface -- + addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- ALU result -> access address + wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- write data + rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- read data + mar_o : out std_ulogic_vector(data_width_c-1 downto 0); -- current memory address register + d_wait_o : out std_ulogic; -- wait for access to complete + -- + excl_state_o : out std_ulogic; -- atomic/exclusive access status + ma_load_o : out std_ulogic; -- misaligned load data address + ma_store_o : out std_ulogic; -- misaligned store data address + be_load_o : out std_ulogic; -- bus error on load data access + be_store_o : out std_ulogic; -- bus error on store data access + -- physical memory protection -- + pmp_addr_i : in pmp_addr_if_t; -- addresses + pmp_ctrl_i : in pmp_ctrl_if_t; -- configs + -- instruction bus -- + i_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + i_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + i_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + i_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + i_bus_we_o : out std_ulogic; -- write enable + i_bus_re_o : out std_ulogic; -- read enable + i_bus_lock_o : out std_ulogic; -- exclusive access request + i_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + i_bus_err_i : in std_ulogic; -- bus transfer error + i_bus_fence_o : out std_ulogic; -- fence operation + -- data bus -- + d_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + d_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + d_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + d_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + d_bus_we_o : out std_ulogic; -- write enable + d_bus_re_o : out std_ulogic; -- read enable + d_bus_lock_o : out std_ulogic; -- exclusive access request + d_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + d_bus_err_i : in std_ulogic; -- bus transfer error + d_bus_fence_o : out std_ulogic -- fence operation + ); +end neorv32_cpu_bus; + +architecture neorv32_cpu_bus_rtl of neorv32_cpu_bus is + + -- PMP modes -- + constant pmp_off_mode_c : std_ulogic_vector(1 downto 0) := "00"; -- null region (disabled) +--constant pmp_tor_mode_c : std_ulogic_vector(1 downto 0) := "01"; -- top of range +--constant pmp_na4_mode_c : std_ulogic_vector(1 downto 0) := "10"; -- naturally aligned four-byte region + constant pmp_napot_mode_c : std_ulogic_vector(1 downto 0) := "11"; -- naturally aligned power-of-two region (>= 8 bytes) + + -- PMP granularity -- + constant pmp_g_c : natural := index_size_f(PMP_MIN_GRANULARITY); + + -- PMP configuration register bits -- + constant pmp_cfg_r_c : natural := 0; -- read permit + constant pmp_cfg_w_c : natural := 1; -- write permit + constant pmp_cfg_x_c : natural := 2; -- execute permit + constant pmp_cfg_al_c : natural := 3; -- mode bit low + constant pmp_cfg_ah_c : natural := 4; -- mode bit high + -- + constant pmp_cfg_l_c : natural := 7; -- locked entry + + -- data interface registers -- + signal mar, mdo, mdi : std_ulogic_vector(data_width_c-1 downto 0); + + -- data access -- + signal d_bus_wdata : std_ulogic_vector(data_width_c-1 downto 0); -- write data + signal d_bus_rdata : std_ulogic_vector(data_width_c-1 downto 0); -- read data + signal rdata_align : std_ulogic_vector(data_width_c-1 downto 0); -- read-data alignment + signal d_bus_ben : std_ulogic_vector(3 downto 0); -- write data byte enable + + -- misaligned access? -- + signal d_misaligned, i_misaligned : std_ulogic; + + -- bus arbiter -- + type bus_arbiter_t is record + rd_req : std_ulogic; -- read access in progress + wr_req : std_ulogic; -- write access in progress + err_align : std_ulogic; -- alignment error + err_bus : std_ulogic; -- bus access error + end record; + signal i_arbiter, d_arbiter : bus_arbiter_t; + + -- atomic/exclusive access - reservation controller -- + signal exclusive_lock : std_ulogic; + signal exclusive_lock_status : std_ulogic_vector(data_width_c-1 downto 0); -- read data + + -- physical memory protection -- + type pmp_addr_t is array (0 to PMP_NUM_REGIONS-1) of std_ulogic_vector(data_width_c-1 downto 0); + type pmp_t is record + addr_mask : pmp_addr_t; + region_base : pmp_addr_t; -- region config base address + region_i_addr : pmp_addr_t; -- masked instruction access base address for comparator + region_d_addr : pmp_addr_t; -- masked data access base address for comparator + i_match : std_ulogic_vector(PMP_NUM_REGIONS-1 downto 0); -- region match for instruction interface + d_match : std_ulogic_vector(PMP_NUM_REGIONS-1 downto 0); -- region match for data interface + if_fault : std_ulogic_vector(PMP_NUM_REGIONS-1 downto 0); -- region access fault for fetch operation + ld_fault : std_ulogic_vector(PMP_NUM_REGIONS-1 downto 0); -- region access fault for load operation + st_fault : std_ulogic_vector(PMP_NUM_REGIONS-1 downto 0); -- region access fault for store operation + end record; + signal pmp : pmp_t; + + -- memory control signal buffer (when using PMP) -- + signal d_bus_we, d_bus_we_buf : std_ulogic; + signal d_bus_re, d_bus_re_buf : std_ulogic; + signal i_bus_re, i_bus_re_buf : std_ulogic; + + -- pmp faults anyone? -- + signal if_pmp_fault : std_ulogic; -- pmp instruction access fault + signal ld_pmp_fault : std_ulogic; -- pmp load access fault + signal st_pmp_fault : std_ulogic; -- pmp store access fault + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (PMP_NUM_REGIONS > pmp_num_regions_critical_c) report "NEORV32 CPU CONFIG WARNING! Number of implemented PMP regions (PMP_NUM_REGIONS = " & + integer'image(PMP_NUM_REGIONS) & ") beyond critical limit (pmp_num_regions_critical_c = " & integer'image(pmp_num_regions_critical_c) & + "). Inserting another register stage (that will increase memory latency by +1 cycle)." severity warning; + + + -- Data Interface: Access Address --------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_adr_reg: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + mar <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (ctrl_i(ctrl_bus_mo_we_c) = '1') then + mar <= addr_i; + end if; + end if; + end process mem_adr_reg; + + -- read-back for exception controller -- + mar_o <= mar; + + -- alignment check -- + misaligned_d_check: process(mar, ctrl_i) + begin + -- check data access -- + d_misaligned <= '0'; -- default + case ctrl_i(ctrl_bus_size_msb_c downto ctrl_bus_size_lsb_c) is -- data size + when "00" => -- byte + d_misaligned <= '0'; + when "01" => -- half-word + if (mar(0) /= '0') then + d_misaligned <= '1'; + end if; + when others => -- word + if (mar(1 downto 0) /= "00") then + d_misaligned <= '1'; + end if; + end case; + end process misaligned_d_check; + + + -- Data Interface: Write Data ------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_do_reg: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + mdo <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (ctrl_i(ctrl_bus_mo_we_c) = '1') then + mdo <= wdata_i; -- memory data output register (MDO) + end if; + end if; + end process mem_do_reg; + + -- byte enable and output data alignment -- + byte_enable: process(mar, mdo, ctrl_i) + begin + case ctrl_i(ctrl_bus_size_msb_c downto ctrl_bus_size_lsb_c) is -- data size + when "00" => -- byte + d_bus_wdata(07 downto 00) <= mdo(07 downto 00); + d_bus_wdata(15 downto 08) <= mdo(07 downto 00); + d_bus_wdata(23 downto 16) <= mdo(07 downto 00); + d_bus_wdata(31 downto 24) <= mdo(07 downto 00); + case mar(1 downto 0) is + when "00" => d_bus_ben <= "0001"; + when "01" => d_bus_ben <= "0010"; + when "10" => d_bus_ben <= "0100"; + when others => d_bus_ben <= "1000"; + end case; + when "01" => -- half-word + d_bus_wdata(31 downto 16) <= mdo(15 downto 00); + d_bus_wdata(15 downto 00) <= mdo(15 downto 00); + if (mar(1) = '0') then + d_bus_ben <= "0011"; -- low half-word + else + d_bus_ben <= "1100"; -- high half-word + end if; + when others => -- word + d_bus_wdata <= mdo; + d_bus_ben <= "1111"; -- full word + end case; + end process byte_enable; + + + -- Data Interface: Read Data -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_di_reg: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + mdi <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (ctrl_i(ctrl_bus_mi_we_c) = '1') then + mdi <= d_bus_rdata; -- memory data input register (MDI) + end if; + end if; + end process mem_di_reg; + + -- input data alignment and sign extension -- + read_align: process(mdi, mar, ctrl_i) + variable byte_in_v : std_ulogic_vector(07 downto 0); + variable hword_in_v : std_ulogic_vector(15 downto 0); + begin + -- sub-word input -- + case mar(1 downto 0) is + when "00" => byte_in_v := mdi(07 downto 00); hword_in_v := mdi(15 downto 00); -- byte 0 / half-word 0 + when "01" => byte_in_v := mdi(15 downto 08); hword_in_v := mdi(15 downto 00); -- byte 1 / half-word 0 + when "10" => byte_in_v := mdi(23 downto 16); hword_in_v := mdi(31 downto 16); -- byte 2 / half-word 1 + when others => byte_in_v := mdi(31 downto 24); hword_in_v := mdi(31 downto 16); -- byte 3 / half-word 1 + end case; + -- actual data size -- + case ctrl_i(ctrl_bus_size_msb_c downto ctrl_bus_size_lsb_c) is + when "00" => -- byte + rdata_align(31 downto 08) <= (others => ((not ctrl_i(ctrl_bus_unsigned_c)) and byte_in_v(7))); -- sign extension + rdata_align(07 downto 00) <= byte_in_v; + when "01" => -- half-word + rdata_align(31 downto 16) <= (others => ((not ctrl_i(ctrl_bus_unsigned_c)) and hword_in_v(15))); -- sign extension + rdata_align(15 downto 00) <= hword_in_v; -- high half-word + when others => -- word + rdata_align <= mdi; -- full word + end case; + end process read_align; + + -- insert exclusive lock status for SC operations only -- + rdata_o <= exclusive_lock_status when (CPU_EXTENSION_RISCV_A = true) and (ctrl_i(ctrl_bus_ch_lock_c) = '1') else rdata_align; + + + -- Data Access Arbiter -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + data_access_arbiter: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + d_arbiter.wr_req <= '0'; + d_arbiter.rd_req <= '0'; + d_arbiter.err_align <= '0'; + d_arbiter.err_bus <= '0'; + elsif rising_edge(clk_i) then + -- data access request -- + if (d_arbiter.wr_req = '0') and (d_arbiter.rd_req = '0') then -- idle + d_arbiter.wr_req <= ctrl_i(ctrl_bus_wr_c); + d_arbiter.rd_req <= ctrl_i(ctrl_bus_rd_c); + d_arbiter.err_align <= d_misaligned; + d_arbiter.err_bus <= '0'; + else -- in progress + d_arbiter.err_align <= (d_arbiter.err_align or d_misaligned) and (not ctrl_i(ctrl_bus_derr_ack_c)); + d_arbiter.err_bus <= (d_arbiter.err_bus or d_bus_err_i or (st_pmp_fault and d_arbiter.wr_req) or (ld_pmp_fault and d_arbiter.rd_req)) and + (not ctrl_i(ctrl_bus_derr_ack_c)); + if (d_bus_ack_i = '1') or (ctrl_i(ctrl_bus_derr_ack_c) = '1') then -- wait for normal termination / CPU abort + d_arbiter.wr_req <= '0'; + d_arbiter.rd_req <= '0'; + end if; + end if; + end if; + end process data_access_arbiter; + + -- wait for bus transaction to finish -- + d_wait_o <= (d_arbiter.wr_req or d_arbiter.rd_req) and (not d_bus_ack_i); + + -- output data access error to controller -- + ma_load_o <= d_arbiter.rd_req and d_arbiter.err_align; + be_load_o <= d_arbiter.rd_req and d_arbiter.err_bus; + ma_store_o <= d_arbiter.wr_req and d_arbiter.err_align; + be_store_o <= d_arbiter.wr_req and d_arbiter.err_bus; + + -- data bus (read/write)-- + d_bus_addr_o <= mar; + d_bus_wdata_o <= d_bus_wdata; + d_bus_ben_o <= d_bus_ben; + d_bus_we <= ctrl_i(ctrl_bus_wr_c) and (not d_misaligned) and (not st_pmp_fault); -- no actual write when misaligned or PMP fault + d_bus_re <= ctrl_i(ctrl_bus_rd_c) and (not d_misaligned) and (not ld_pmp_fault); -- no actual read when misaligned or PMP fault + d_bus_we_o <= d_bus_we_buf when (PMP_NUM_REGIONS > pmp_num_regions_critical_c) else d_bus_we; + d_bus_re_o <= d_bus_re_buf when (PMP_NUM_REGIONS > pmp_num_regions_critical_c) else d_bus_re; + d_bus_fence_o <= ctrl_i(ctrl_bus_fence_c); + d_bus_rdata <= d_bus_rdata_i; + + -- additional register stage for control signals if using PMP_NUM_REGIONS > pmp_num_regions_critical_c -- + pmp_dbus_buffer: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + d_bus_we_buf <= '0'; + d_bus_re_buf <= '0'; + elsif rising_edge(clk_i) then + d_bus_we_buf <= d_bus_we; + d_bus_re_buf <= d_bus_re; + end if; + end process pmp_dbus_buffer; + + + -- Reservation Controller (LR/SC [A extension]) ------------------------------------------- + -- ------------------------------------------------------------------------------------------- + exclusive_access_controller: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + exclusive_lock <= '0'; + elsif rising_edge(clk_i) then + if (CPU_EXTENSION_RISCV_A = true) then + if (ctrl_i(ctrl_trap_c) = '1') or (ctrl_i(ctrl_bus_de_lock_c) = '1') then -- remove lock if entering a trap or executing a non-load-reservate memory access + exclusive_lock <= '0'; + elsif (ctrl_i(ctrl_bus_lock_c) = '1') then -- set new lock + exclusive_lock <= '1'; + end if; + else + exclusive_lock <= '0'; + end if; + end if; + end process exclusive_access_controller; + + -- lock status for SC operation -- + exclusive_lock_status(data_width_c-1 downto 1) <= (others => '0'); + exclusive_lock_status(0) <= not exclusive_lock; + + -- output reservation status to control unit (to check if SC should write at all) -- + excl_state_o <= exclusive_lock; + + -- output to memory system -- + i_bus_lock_o <= '0'; -- instruction fetches cannot be locked + d_bus_lock_o <= exclusive_lock; + + + -- Instruction Fetch Arbiter -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ifetch_arbiter: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + i_arbiter.rd_req <= '0'; + i_arbiter.err_align <= '0'; + i_arbiter.err_bus <= '0'; + elsif rising_edge(clk_i) then + -- instruction fetch request -- + if (i_arbiter.rd_req = '0') then -- idle + i_arbiter.rd_req <= ctrl_i(ctrl_bus_if_c); + i_arbiter.err_align <= i_misaligned; + i_arbiter.err_bus <= '0'; + else -- in progres + i_arbiter.err_align <= (i_arbiter.err_align or i_misaligned) and (not ctrl_i(ctrl_bus_ierr_ack_c)); + i_arbiter.err_bus <= (i_arbiter.err_bus or i_bus_err_i or if_pmp_fault) and (not ctrl_i(ctrl_bus_ierr_ack_c)); + if (i_bus_ack_i = '1') or (ctrl_i(ctrl_bus_ierr_ack_c) = '1') then -- wait for normal termination / CPU abort + i_arbiter.rd_req <= '0'; + end if; + end if; + end if; + end process ifetch_arbiter; + + i_arbiter.wr_req <= '0'; -- instruction fetch is read-only + + -- wait for bus transaction to finish -- + i_wait_o <= i_arbiter.rd_req and (not i_bus_ack_i); + + -- output instruction fetch error to controller -- + ma_instr_o <= i_arbiter.err_align; + be_instr_o <= i_arbiter.err_bus; + + -- instruction bus (read-only) -- + i_bus_addr_o <= fetch_pc_i(data_width_c-1 downto 2) & "00"; -- instruction access is always 4-byte aligned (even for compressed instructions) + i_bus_wdata_o <= (others => '0'); -- instruction fetch is read-only + i_bus_ben_o <= (others => '0'); + i_bus_we_o <= '0'; + i_bus_re <= ctrl_i(ctrl_bus_if_c) and (not i_misaligned) and (not if_pmp_fault); -- no actual read when misaligned or PMP fault + i_bus_re_o <= i_bus_re_buf when (PMP_NUM_REGIONS > pmp_num_regions_critical_c) else i_bus_re; + i_bus_fence_o <= ctrl_i(ctrl_bus_fencei_c); + instr_o <= i_bus_rdata_i; + + -- check instruction access address alignment -- + i_misaligned <= '0' when (CPU_EXTENSION_RISCV_C = true) else -- no alignment exceptions possible when using C-extension + '1' when (fetch_pc_i(1) = '1') else '0'; -- 32-bit accesses only + + -- additional register stage for control signals if using PMP_NUM_REGIONS > pmp_num_regions_critical_c -- + pmp_ibus_buffer: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + i_bus_re_buf <= '0'; + elsif rising_edge(clk_i) then + i_bus_re_buf <= i_bus_re; + end if; + end process pmp_ibus_buffer; + + + -- Physical Memory Protection (PMP) ------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- compute address masks (ITERATIVE!!!) -- + pmp_masks: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + pmp.addr_mask <= (others => (others => def_rst_val_c)); + elsif rising_edge(clk_i) then -- address mask computation (not the actual address check!) has a latency of max +32 cycles + for r in 0 to PMP_NUM_REGIONS-1 loop -- iterate over all regions + pmp.addr_mask(r) <= (others => '0'); + for i in pmp_g_c to data_width_c-1 loop + pmp.addr_mask(r)(i) <= pmp.addr_mask(r)(i-1) or (not pmp_addr_i(r)(i-1)); + end loop; -- i + end loop; -- r + end if; + end process pmp_masks; + + + -- address access check -- + pmp_address_check: + for r in 0 to PMP_NUM_REGIONS-1 generate -- iterate over all regions + pmp.region_i_addr(r) <= fetch_pc_i and pmp.addr_mask(r); + pmp.region_d_addr(r) <= mar and pmp.addr_mask(r); + pmp.region_base(r) <= pmp_addr_i(r)(data_width_c+1 downto 2) and pmp.addr_mask(r); + -- + pmp.i_match(r) <= '1' when (pmp.region_i_addr(r)(data_width_c-1 downto pmp_g_c) = pmp.region_base(r)(data_width_c-1 downto pmp_g_c)) else '0'; + pmp.d_match(r) <= '1' when (pmp.region_d_addr(r)(data_width_c-1 downto pmp_g_c) = pmp.region_base(r)(data_width_c-1 downto pmp_g_c)) else '0'; + end generate; -- r + + + -- check access type and region's permissions -- + pmp_check_permission: process(pmp, pmp_ctrl_i, ctrl_i) + begin + for r in 0 to PMP_NUM_REGIONS-1 loop -- iterate over all regions + if ((ctrl_i(ctrl_priv_lvl_msb_c downto ctrl_priv_lvl_lsb_c) = priv_mode_u_c) or (pmp_ctrl_i(r)(pmp_cfg_l_c) = '1')) and -- user privilege level or locked pmp entry -> enforce permissions also for machine mode + (pmp_ctrl_i(r)(pmp_cfg_ah_c downto pmp_cfg_al_c) /= pmp_off_mode_c) and -- active entry + (ctrl_i(ctrl_debug_running_c) = '0') then -- disable PMP checks when in debug mode + pmp.if_fault(r) <= pmp.i_match(r) and (not pmp_ctrl_i(r)(pmp_cfg_x_c)); -- fetch access match no execute permission + pmp.ld_fault(r) <= pmp.d_match(r) and (not pmp_ctrl_i(r)(pmp_cfg_r_c)); -- load access match no read permission + pmp.st_fault(r) <= pmp.d_match(r) and (not pmp_ctrl_i(r)(pmp_cfg_w_c)); -- store access match no write permission + else + pmp.if_fault(r) <= '0'; + pmp.ld_fault(r) <= '0'; + pmp.st_fault(r) <= '0'; + end if; + end loop; -- r + end process pmp_check_permission; + + + -- final PMP access fault signals -- + if_pmp_fault <= or_reduce_f(pmp.if_fault) when (PMP_NUM_REGIONS > 0) else '0'; + ld_pmp_fault <= or_reduce_f(pmp.ld_fault) when (PMP_NUM_REGIONS > 0) else '0'; + st_pmp_fault <= or_reduce_f(pmp.st_fault) when (PMP_NUM_REGIONS > 0) else '0'; + + +end neorv32_cpu_bus_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_control.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_control.vhd new file mode 100644 index 0000000..efea013 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_control.vhd @@ -0,0 +1,2835 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU Control >> # +-- # ********************************************************************************************* # +-- # CPU operation is split into a fetch engine (responsible for fetching instruction data), an # +-- # issue engine (for recoding compressed instructions and for constructing 32-bit instruction # +-- # words) and an execute engine (responsible for actually executing the instructions), a trap # +-- # handling controller and the RISC-V status and control register set (CSRs) including the # +-- # hardware performance monitor counters. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_control is + generic ( + -- General -- + HW_THREAD_ID : natural; -- hardware thread id (32-bit) + CPU_BOOT_ADDR : std_ulogic_vector(31 downto 0); -- cpu boot address + CPU_DEBUG_ADDR : std_ulogic_vector(31 downto 0); -- cpu debug mode start address + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG : boolean; -- implement CPU debug mode? + -- Extension Options -- + CPU_CNT_WIDTH : natural; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural; -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural -- total size of HPM counters (0..64) + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_o : out std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- status input -- + alu_idone_i : in std_ulogic; -- ALU iterative operation done + bus_i_wait_i : in std_ulogic; -- wait for bus + bus_d_wait_i : in std_ulogic; -- wait for bus + excl_state_i : in std_ulogic; -- atomic/exclusive access lock status + -- data input -- + instr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- instruction + cmp_i : in std_ulogic_vector(1 downto 0); -- comparator status + alu_add_i : in std_ulogic_vector(data_width_c-1 downto 0); -- ALU address result + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + -- data output -- + imm_o : out std_ulogic_vector(data_width_c-1 downto 0); -- immediate + fetch_pc_o : out std_ulogic_vector(data_width_c-1 downto 0); -- PC for instruction fetch + curr_pc_o : out std_ulogic_vector(data_width_c-1 downto 0); -- current PC (corresponding to current instruction) + next_pc_o : out std_ulogic_vector(data_width_c-1 downto 0); -- next PC (corresponding to next instruction) + csr_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- CSR read data + -- FPU interface -- + fpu_flags_i : in std_ulogic_vector(04 downto 0); -- exception flags + -- debug mode (halt) request -- + db_halt_req_i : in std_ulogic; + -- interrupts (risc-v compliant) -- + msw_irq_i : in std_ulogic; -- machine software interrupt + mext_irq_i : in std_ulogic; -- machine external interrupt + mtime_irq_i : in std_ulogic; -- machine timer interrupt + -- fast interrupts (custom) -- + firq_i : in std_ulogic_vector(15 downto 0); + -- system time input from MTIME -- + time_i : in std_ulogic_vector(63 downto 0); -- current system time + -- physical memory protection -- + pmp_addr_o : out pmp_addr_if_t; -- addresses + pmp_ctrl_o : out pmp_ctrl_if_t; -- configs + -- bus access exceptions -- + mar_i : in std_ulogic_vector(data_width_c-1 downto 0); -- memory address register + ma_instr_i : in std_ulogic; -- misaligned instruction address + ma_load_i : in std_ulogic; -- misaligned load data address + ma_store_i : in std_ulogic; -- misaligned store data address + be_instr_i : in std_ulogic; -- bus error on instruction access + be_load_i : in std_ulogic; -- bus error on load data access + be_store_i : in std_ulogic -- bus error on store data access + ); +end neorv32_cpu_control; + +architecture neorv32_cpu_control_rtl of neorv32_cpu_control is + + -- CPU core counter ([m]cycle, [m]instret) width - high/low parts -- + constant cpu_cnt_lo_width_c : natural := natural(cond_sel_int_f(boolean(CPU_CNT_WIDTH < 32), CPU_CNT_WIDTH, 32)); + constant cpu_cnt_hi_width_c : natural := natural(cond_sel_int_f(boolean(CPU_CNT_WIDTH > 32), CPU_CNT_WIDTH-32, 0)); + + -- HPM counter width - high/low parts -- + constant hpm_cnt_lo_width_c : natural := natural(cond_sel_int_f(boolean(HPM_CNT_WIDTH < 32), HPM_CNT_WIDTH, 32)); + constant hpm_cnt_hi_width_c : natural := natural(cond_sel_int_f(boolean(HPM_CNT_WIDTH > 32), HPM_CNT_WIDTH-32, 0)); + + -- instruction fetch engine -- + type fetch_engine_state_t is (IFETCH_REQUEST, IFETCH_ISSUE); + type fetch_engine_t is record + state : fetch_engine_state_t; + state_nxt : fetch_engine_state_t; + state_prev : fetch_engine_state_t; + restart : std_ulogic; + restart_nxt : std_ulogic; + pc : std_ulogic_vector(data_width_c-1 downto 0); + pc_nxt : std_ulogic_vector(data_width_c-1 downto 0); + reset : std_ulogic; + bus_err_ack : std_ulogic; + end record; + signal fetch_engine : fetch_engine_t; + + -- instruction prefetch buffer (FIFO) interface -- + type ipb_t is record + wdata : std_ulogic_vector(2+31 downto 0); -- write status (bus_error, align_error) + 32-bit instruction data + we : std_ulogic; -- trigger write + free : std_ulogic; -- free entry available? + clear : std_ulogic; -- clear all entries + -- + rdata : std_ulogic_vector(2+31 downto 0); -- read data: status (bus_error, align_error) + 32-bit instruction data + re : std_ulogic; -- read enable + avail : std_ulogic; -- data available? + end record; + signal ipb : ipb_t; + + -- pre-decoder -- + signal ci_instr16 : std_ulogic_vector(15 downto 0); + signal ci_instr32 : std_ulogic_vector(31 downto 0); + signal ci_illegal : std_ulogic; + + -- instruction issue engine -- + type issue_engine_state_t is (ISSUE_ACTIVE, ISSUE_REALIGN); + type issue_engine_t is record + state : issue_engine_state_t; + state_nxt : issue_engine_state_t; + align : std_ulogic; + align_nxt : std_ulogic; + buf : std_ulogic_vector(2+15 downto 0); + buf_nxt : std_ulogic_vector(2+15 downto 0); + end record; + signal issue_engine : issue_engine_t; + + -- instruction issue interface -- + type cmd_issue_t is record + data : std_ulogic_vector(35 downto 0); -- 4-bit status + 32-bit instruction + valid : std_ulogic; -- data word is valid when set + end record; + signal cmd_issue : cmd_issue_t; + + -- instruction decoding helper logic -- + type decode_aux_t is record + is_atomic_lr : std_ulogic; + is_atomic_sc : std_ulogic; + is_float_op : std_ulogic; + sys_env_cmd : std_ulogic_vector(11 downto 0); + is_m_mul : std_ulogic; + is_m_div : std_ulogic; + is_bitmanip_imm : std_ulogic; + is_bitmanip_reg : std_ulogic; + rs1_zero : std_ulogic; + rs2_zero : std_ulogic; + rd_zero : std_ulogic; + end record; + signal decode_aux : decode_aux_t; + + -- instruction execution engine -- + type execute_engine_state_t is (SYS_WAIT, DISPATCH, TRAP_ENTER, TRAP_EXIT, TRAP_EXECUTE, EXECUTE, ALU_WAIT, + BRANCH, LOADSTORE_0, LOADSTORE_1, LOADSTORE_2, SYS_ENV, CSR_ACCESS); + type execute_engine_t is record + state : execute_engine_state_t; + state_nxt : execute_engine_state_t; + state_prev : execute_engine_state_t; + -- + i_reg : std_ulogic_vector(31 downto 0); + i_reg_nxt : std_ulogic_vector(31 downto 0); + i_reg_last : std_ulogic_vector(31 downto 0); -- last executed instruction + -- + is_ci : std_ulogic; -- current instruction is de-compressed instruction + is_ci_nxt : std_ulogic; + is_ici : std_ulogic; -- current instruction is illegal de-compressed instruction + is_ici_nxt : std_ulogic; + -- + branch_taken : std_ulogic; -- branch condition fulfilled + pc : std_ulogic_vector(data_width_c-1 downto 0); -- actual PC, corresponding to current executed instruction + pc_mux_sel : std_ulogic; -- source select for PC update + pc_we : std_ulogic; -- PC update enabled + next_pc : std_ulogic_vector(data_width_c-1 downto 0); -- next PC, corresponding to next instruction to be executed + next_pc_inc : std_ulogic_vector(data_width_c-1 downto 0); -- increment to get next PC + last_pc : std_ulogic_vector(data_width_c-1 downto 0); -- PC of last executed instruction + -- + sleep : std_ulogic; -- CPU in sleep mode + sleep_nxt : std_ulogic; + branched : std_ulogic; -- instruction fetch was reset + branched_nxt : std_ulogic; + end record; + signal execute_engine : execute_engine_t; + + -- trap controller -- + type trap_ctrl_t is record + exc_buf : std_ulogic_vector(exception_width_c-1 downto 0); + exc_fire : std_ulogic; -- set if there is a valid source in the exception buffer + irq_buf : std_ulogic_vector(interrupt_width_c-1 downto 0); + irq_fire : std_ulogic; -- set if there is a valid source in the interrupt buffer + exc_ack : std_ulogic; -- acknowledge all exceptions + cause : std_ulogic_vector(6 downto 0); -- trap ID for mcause CSR + cause_nxt : std_ulogic_vector(6 downto 0); + db_irq_fire : std_ulogic; -- set if there is a valid IRQ source in the "enter debug mode" trap buffer + db_irq_en : std_ulogic; -- set if IRQs are allowed in debug mode + -- + env_start : std_ulogic; -- start trap handler env + env_start_ack : std_ulogic; -- start of trap handler acknowledged + env_end : std_ulogic; -- end trap handler env + -- + instr_be : std_ulogic; -- instruction fetch bus error + instr_ma : std_ulogic; -- instruction fetch misaligned address + instr_il : std_ulogic; -- illegal instruction + env_call : std_ulogic; + break_point : std_ulogic; + end record; + signal trap_ctrl : trap_ctrl_t; + + -- CPU main control bus -- + signal ctrl_nxt, ctrl : std_ulogic_vector(ctrl_width_c-1 downto 0); + + -- fast instruction fetch access -- + signal bus_fast_ir : std_ulogic; + + -- RISC-V control and status registers (CSRs) -- + type pmp_ctrl_t is array (0 to PMP_NUM_REGIONS-1) of std_ulogic_vector(7 downto 0); + type pmp_addr_t is array (0 to PMP_NUM_REGIONS-1) of std_ulogic_vector(data_width_c-1 downto 0); + type pmp_ctrl_rd_t is array (0 to 63) of std_ulogic_vector(7 downto 0); + type mhpmevent_t is array (0 to HPM_NUM_CNTS-1) of std_ulogic_vector(hpmcnt_event_size_c-1 downto 0); + type mhpmcnt_t is array (0 to HPM_NUM_CNTS-1) of std_ulogic_vector(31 downto 0); + type mhpmcnt_nxt_t is array (0 to HPM_NUM_CNTS-1) of std_ulogic_vector(32 downto 0); + type mhpmcnt_ovfl_t is array (0 to HPM_NUM_CNTS-1) of std_ulogic_vector(0 downto 0); + type mhpmcnt_rd_t is array (0 to 29) of std_ulogic_vector(31 downto 0); + type csr_t is record + addr : std_ulogic_vector(11 downto 0); -- csr address + we : std_ulogic; -- csr write enable + we_nxt : std_ulogic; + wdata : std_ulogic_vector(data_width_c-1 downto 0); -- csr write data + rdata : std_ulogic_vector(data_width_c-1 downto 0); -- csr read data + -- + mstatus_mie : std_ulogic; -- mstatus.MIE: global IRQ enable (R/W) + mstatus_mpie : std_ulogic; -- mstatus.MPIE: previous global IRQ enable (R/W) + mstatus_mpp : std_ulogic_vector(1 downto 0); -- mstatus.MPP: machine previous privilege mode + -- + mie_msie : std_ulogic; -- mie.MSIE: machine software interrupt enable (R/W) + mie_meie : std_ulogic; -- mie.MEIE: machine external interrupt enable (R/W) + mie_mtie : std_ulogic; -- mie.MEIE: machine timer interrupt enable (R/W) + mie_firqe : std_ulogic_vector(15 downto 0); -- mie.firq*e: fast interrupt enabled (R/W) + -- + mip_clr : std_ulogic_vector(15 downto 0); -- clear pending FIRQ + -- + mcounteren_cy : std_ulogic; -- mcounteren.cy: allow cycle[h] access from user-mode + mcounteren_tm : std_ulogic; -- mcounteren.tm: allow time[h] access from user-mode + mcounteren_ir : std_ulogic; -- mcounteren.ir: allow instret[h] access from user-mode + -- + mcountinhibit_cy : std_ulogic; -- mcounterinhibit.cy: enable auto-increment for [m]cycle[h] + mcountinhibit_ir : std_ulogic; -- mcounterinhibit.ir: enable auto-increment for [m]instret[h] + mcountinhibit_hpm : std_ulogic_vector(HPM_NUM_CNTS-1 downto 0); -- mcounterinhibit.hpm3: enable auto-increment for mhpmcounterx[h] + -- + privilege : std_ulogic_vector(1 downto 0); -- hart's current privilege mode + privilege_rd : std_ulogic_vector(1 downto 0); -- hart's current privilege mode (effective) + priv_m_mode : std_ulogic; -- CPU in M-mode + priv_u_mode : std_ulogic; -- CPU in u-mode + -- + mepc : std_ulogic_vector(data_width_c-1 downto 0); -- mepc: machine exception pc (R/W) + mcause : std_ulogic_vector(5 downto 0); -- mcause: machine trap cause (R/W) + mtvec : std_ulogic_vector(data_width_c-1 downto 0); -- mtvec: machine trap-handler base address (R/W), bit 1:0 == 00 + mtval : std_ulogic_vector(data_width_c-1 downto 0); -- mtval: machine bad address or instruction (R/W) + -- + mhpmevent : mhpmevent_t; -- mhpmevent*: machine performance-monitoring event selector (R/W) + -- + mscratch : std_ulogic_vector(data_width_c-1 downto 0); -- mscratch: scratch register (R/W) + -- + mcycle : std_ulogic_vector(31 downto 0); -- mcycle (R/W) + mcycle_nxt : std_ulogic_vector(32 downto 0); + mcycle_ovfl : std_ulogic_vector(00 downto 0); -- counter low-to-high-word overflow + mcycleh : std_ulogic_vector(31 downto 0); -- mcycleh (R/W) + minstret : std_ulogic_vector(31 downto 0); -- minstret (R/W) + minstret_nxt : std_ulogic_vector(32 downto 0); + minstret_ovfl : std_ulogic_vector(00 downto 0); -- counter low-to-high-word overflow + minstreth : std_ulogic_vector(31 downto 0); -- minstreth (R/W) + -- + mhpmcounter : mhpmcnt_t; -- mhpmcounter* (R/W), plus carry bit + mhpmcounter_nxt : mhpmcnt_nxt_t; + mhpmcounter_ovfl : mhpmcnt_ovfl_t; -- counter low-to-high-word overflow + mhpmcounterh : mhpmcnt_t; -- mhpmcounter*h (R/W) + mhpmcounter_rd : mhpmcnt_rd_t; -- mhpmcounter* (R/W): actual read data + mhpmcounterh_rd : mhpmcnt_rd_t; -- mhpmcounter*h (R/W): actual read data + -- + pmpcfg : pmp_ctrl_t; -- physical memory protection - configuration registers + pmpcfg_rd : pmp_ctrl_rd_t; -- physical memory protection - actual read data + pmpaddr : pmp_addr_t; -- physical memory protection - address registers + -- + frm : std_ulogic_vector(02 downto 0); -- frm (R/W): FPU rounding mode + fflags : std_ulogic_vector(04 downto 0); -- fflags (R/W): FPU exception flags + -- + dcsr_ebreakm : std_ulogic; -- dcsr.ebreakm (R/W): behavior of ebreak instruction on m-mode + dcsr_ebreaku : std_ulogic; -- dcsr.ebreaku (R/W): behavior of ebreak instruction on u-mode + dcsr_step : std_ulogic; -- dcsr.step (R/W): single-step mode + dcsr_prv : std_ulogic_vector(01 downto 0); -- dcsr.prv (R/W): current privilege level when entering debug mode + dcsr_cause : std_ulogic_vector(02 downto 0); -- dcsr.cause (R/-): why was debug mode entered + dcsr_rd : std_ulogic_vector(data_width_c-1 downto 0); -- dcsr (R/(W)): debug mode control and status register + dpc : std_ulogic_vector(data_width_c-1 downto 0); -- dpc (R/W): debug mode program counter + dscratch0 : std_ulogic_vector(data_width_c-1 downto 0); -- dscratch0 (R/W): debug mode scratch register 0 + end record; + signal csr : csr_t; + + -- debug mode controller -- + type debug_ctrl_state_t is (DEBUG_OFFLINE, DEBUG_PENDING, DEBUG_ONLINE, DEBUG_EXIT); + type debug_ctrl_t is record + state : debug_ctrl_state_t; + -- decoded state -- + running : std_ulogic; -- debug mode active + pending : std_ulogic; -- waiting to start debug mode + -- entering triggers -- + trig_break : std_ulogic; -- ebreak instruction + trig_halt : std_ulogic; -- external request + trig_step : std_ulogic; -- single-stepping mode + -- leave debug mode -- + dret : std_ulogic; -- executed DRET instruction + -- misc -- + ext_halt_req : std_ulogic; + end record; + signal debug_ctrl : debug_ctrl_t; + + -- (hpm) counter events -- + signal cnt_event : std_ulogic_vector(hpmcnt_event_size_c-1 downto 0); + signal hpmcnt_trigger : std_ulogic_vector(HPM_NUM_CNTS-1 downto 0); + + -- illegal instruction check -- + signal illegal_opcode_lsbs : std_ulogic; -- opcode != rv32 + signal illegal_instruction : std_ulogic; + signal illegal_register : std_ulogic; -- illegal register (>x15) - E-extension + signal illegal_compressed : std_ulogic; -- illegal compressed instruction - C-extension + + -- access (privilege) check -- + signal csr_acc_valid : std_ulogic; -- valid CSR access (implemented and valid access rights) + +begin + +-- **************************************************************************************************************************** +-- Instruction Fetch (always fetch 32-bit-aligned 32-bit chunks of data) +-- **************************************************************************************************************************** + + -- Fetch Engine FSM Sync ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + fetch_engine_fsm_sync: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + fetch_engine.state <= IFETCH_REQUEST; + fetch_engine.state_prev <= IFETCH_REQUEST; + fetch_engine.restart <= '1'; + fetch_engine.pc <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + fetch_engine.state <= fetch_engine.state_nxt; + fetch_engine.state_prev <= fetch_engine.state; + fetch_engine.restart <= fetch_engine.restart_nxt; + if (fetch_engine.restart = '1') then + fetch_engine.pc <= execute_engine.pc(data_width_c-1 downto 1) & '0'; -- initialize with "real" application PC + else + fetch_engine.pc <= fetch_engine.pc_nxt; + end if; + end if; + end process fetch_engine_fsm_sync; + + -- PC output -- + fetch_pc_o <= fetch_engine.pc(data_width_c-1 downto 1) & '0'; -- half-word aligned + + + -- Fetch Engine FSM Comb ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + fetch_engine_fsm_comb: process(fetch_engine, execute_engine, ipb, instr_i, bus_i_wait_i, be_instr_i, ma_instr_i) + begin + -- arbiter defaults -- + bus_fast_ir <= '0'; + fetch_engine.state_nxt <= fetch_engine.state; + fetch_engine.pc_nxt <= fetch_engine.pc; + fetch_engine.bus_err_ack <= '0'; + fetch_engine.restart_nxt <= fetch_engine.restart or fetch_engine.reset; + + -- instruction prefetch buffer interface -- + ipb.we <= '0'; + ipb.wdata <= be_instr_i & ma_instr_i & instr_i(31 downto 0); -- store exception info and instruction word + ipb.clear <= fetch_engine.restart; + + -- state machine -- + case fetch_engine.state is + + when IFETCH_REQUEST => -- request new 32-bit-aligned instruction word + -- ------------------------------------------------------------ + if (ipb.free = '1') and (fetch_engine.restart = '0') then -- free entry in buffer AND no reset request? + bus_fast_ir <= '1'; -- fast instruction fetch request + fetch_engine.state_nxt <= IFETCH_ISSUE; + end if; + if (fetch_engine.restart = '1') then -- reset request? + fetch_engine.restart_nxt <= '0'; + end if; + + when IFETCH_ISSUE => -- store instruction data to prefetch buffer + -- ------------------------------------------------------------ + fetch_engine.bus_err_ack <= be_instr_i or ma_instr_i; -- ACK bus/alignment errors + if (bus_i_wait_i = '0') or (be_instr_i = '1') or (ma_instr_i = '1') then -- wait for bus response + fetch_engine.pc_nxt <= std_ulogic_vector(unsigned(fetch_engine.pc) + 4); + ipb.we <= not fetch_engine.restart; -- write to IPB if not being reset + if (fetch_engine.restart = '1') then -- reset request? + fetch_engine.restart_nxt <= '0'; + end if; + fetch_engine.state_nxt <= IFETCH_REQUEST; + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + fetch_engine.state_nxt <= IFETCH_REQUEST; + + end case; + end process fetch_engine_fsm_comb; + + +-- **************************************************************************************************************************** +-- Instruction Prefetch Buffer +-- **************************************************************************************************************************** + + -- Instruction Prefetch Buffer (FIFO) ----------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + instr_prefetch_buffer: neorv32_fifo + generic map ( + FIFO_DEPTH => CPU_IPB_ENTRIES, -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH => ipb.wdata'length, -- size of data elements in fifo + FIFO_RSYNC => false, -- we NEED to read data asynchronously + FIFO_SAFE => false -- no safe access required (ensured by FIFO-external control) + ) + port map ( + -- control -- + clk_i => clk_i, -- clock, rising edge + rstn_i => '1', -- async reset, low-active + clear_i => ipb.clear, -- sync reset, high-active + level_o => open, + half_o => open, + -- write port -- + wdata_i => ipb.wdata, -- write data + we_i => ipb.we, -- write enable + free_o => ipb.free, -- at least one entry is free when set + -- read port -- + re_i => ipb.re, -- read enable + rdata_o => ipb.rdata, -- read data + avail_o => ipb.avail -- data available when set + ); + + +-- **************************************************************************************************************************** +-- Instruction Issue (recoding of compressed instructions and 32-bit instruction word construction) +-- **************************************************************************************************************************** + + -- Issue Engine FSM Sync ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + issue_engine_fsm_sync: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + issue_engine.state <= ISSUE_ACTIVE; + issue_engine.align <= CPU_BOOT_ADDR(1); -- 32- or 16-bit boundary + issue_engine.buf <= (others => '0'); + elsif rising_edge(clk_i) then + if (ipb.clear = '1') then + if (CPU_EXTENSION_RISCV_C = true) and (execute_engine.pc(1) = '1') then -- branch to unaligned address? + issue_engine.state <= ISSUE_REALIGN; + issue_engine.align <= '1'; -- aligned on 16-bit boundary + else + issue_engine.state <= issue_engine.state_nxt; + issue_engine.align <= '0'; -- always aligned on 32-bit boundaries + end if; + else + issue_engine.state <= issue_engine.state_nxt; + issue_engine.align <= issue_engine.align_nxt; + end if; + issue_engine.buf <= issue_engine.buf_nxt; + end if; + end process issue_engine_fsm_sync; + + + -- Issue Engine FSM Comb ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + issue_engine_fsm_comb: process(issue_engine, ipb, execute_engine, ci_illegal, ci_instr32) + begin + -- arbiter defaults -- + issue_engine.state_nxt <= issue_engine.state; + issue_engine.align_nxt <= issue_engine.align; + issue_engine.buf_nxt <= issue_engine.buf; + + -- instruction prefetch buffer interface defaults -- + ipb.re <= '0'; + + -- instruction issue interface defaults -- + -- cmd_issue.data = & & & <32-bit_instruction_word> + cmd_issue.data <= '0' & ipb.rdata(33 downto 32) & '0' & ipb.rdata(31 downto 0); + cmd_issue.valid <= '0'; + + -- state machine -- + case issue_engine.state is + + when ISSUE_ACTIVE => -- issue instruction if available + -- ------------------------------------------------------------ + if (ipb.avail = '1') then -- instructions available? + + if (issue_engine.align = '0') or (CPU_EXTENSION_RISCV_C = false) then -- begin check in LOW instruction half-word + if (execute_engine.state = DISPATCH) then -- ready to issue new command? + cmd_issue.valid <= '1'; + issue_engine.buf_nxt <= ipb.rdata(33 downto 32) & ipb.rdata(31 downto 16); -- store high half-word - we might need it for an unaligned uncompressed instruction + if (ipb.rdata(1 downto 0) = "11") or (CPU_EXTENSION_RISCV_C = false) then -- uncompressed and "aligned" + ipb.re <= '1'; + cmd_issue.data <= '0' & ipb.rdata(33 downto 32) & '0' & ipb.rdata(31 downto 0); + else -- compressed + ipb.re <= '1'; + cmd_issue.data <= ci_illegal & ipb.rdata(33 downto 32) & '1' & ci_instr32; + issue_engine.align_nxt <= '1'; + end if; + end if; + + else -- begin check in HIGH instruction half-word + if (execute_engine.state = DISPATCH) then -- ready to issue new command? + cmd_issue.valid <= '1'; + issue_engine.buf_nxt <= ipb.rdata(33 downto 32) & ipb.rdata(31 downto 16); -- store high half-word - we might need it for an unaligned uncompressed instruction + if (issue_engine.buf(1 downto 0) = "11") then -- uncompressed and "unaligned" + ipb.re <= '1'; + cmd_issue.data <= '0' & (ipb.rdata(33 downto 32) or issue_engine.buf(17 downto 16)) & '0' & (ipb.rdata(15 downto 0) & issue_engine.buf(15 downto 0)); + else -- compressed + -- do not read from ipb here! + cmd_issue.data <= ci_illegal & ipb.rdata(33 downto 32) & '1' & ci_instr32; + issue_engine.align_nxt <= '0'; + end if; + end if; + end if; + end if; + + when ISSUE_REALIGN => -- re-align input fifos after a branch to an unaligned address + -- ------------------------------------------------------------ + issue_engine.buf_nxt <= ipb.rdata(33 downto 32) & ipb.rdata(31 downto 16); + if (ipb.avail = '1') then -- instructions available? + ipb.re <= '1'; + issue_engine.state_nxt <= ISSUE_ACTIVE; + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + issue_engine.state_nxt <= ISSUE_ACTIVE; + + end case; + end process issue_engine_fsm_comb; + + -- 16-bit instructions: half-word select -- + ci_instr16 <= ipb.rdata(15 downto 0) when (issue_engine.align = '0') else issue_engine.buf(15 downto 0); + + + -- Compressed Instructions Recoding ------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_decompressor_inst_true: + if (CPU_EXTENSION_RISCV_C = true) generate + neorv32_cpu_decompressor_inst: neorv32_cpu_decompressor + port map ( + -- instruction input -- + ci_instr16_i => ci_instr16, -- compressed instruction input + -- instruction output -- + ci_illegal_o => ci_illegal, -- is an illegal compressed instruction + ci_instr32_o => ci_instr32 -- 32-bit decompressed instruction + ); + end generate; + + neorv32_cpu_decompressor_inst_false: + if (CPU_EXTENSION_RISCV_C = false) generate + ci_instr32 <= (others => '0'); + ci_illegal <= '0'; + end generate; + + +-- **************************************************************************************************************************** +-- Instruction Execution +-- **************************************************************************************************************************** + + -- Immediate Generator -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imm_gen: process(rstn_i, clk_i) + variable opcode_v : std_ulogic_vector(6 downto 0); + begin + if (rstn_i = '0') then + imm_o <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- default: I-immediate: ALU-immediate, loads, jump-and-link with registers + imm_o(31 downto 11) <= (others => execute_engine.i_reg(31)); -- sign extension + imm_o(10 downto 05) <= execute_engine.i_reg(30 downto 25); + imm_o(04 downto 01) <= execute_engine.i_reg(24 downto 21); + imm_o(00) <= execute_engine.i_reg(20); + + opcode_v := execute_engine.i_reg(instr_opcode_msb_c downto instr_opcode_lsb_c+2) & "11"; + case opcode_v is -- save some bits here, the two LSBs are always "11" for rv32 + when opcode_store_c => -- S-immediate: store + imm_o(31 downto 11) <= (others => execute_engine.i_reg(31)); -- sign extension + imm_o(10 downto 05) <= execute_engine.i_reg(30 downto 25); + imm_o(04 downto 01) <= execute_engine.i_reg(11 downto 08); + imm_o(00) <= execute_engine.i_reg(07); + when opcode_branch_c => -- B-immediate: conditional branches + imm_o(31 downto 12) <= (others => execute_engine.i_reg(31)); -- sign extension + imm_o(11) <= execute_engine.i_reg(07); + imm_o(10 downto 05) <= execute_engine.i_reg(30 downto 25); + imm_o(04 downto 01) <= execute_engine.i_reg(11 downto 08); + imm_o(00) <= '0'; + when opcode_lui_c | opcode_auipc_c => -- U-immediate: lui, auipc + imm_o(31 downto 20) <= execute_engine.i_reg(31 downto 20); + imm_o(19 downto 12) <= execute_engine.i_reg(19 downto 12); + imm_o(11 downto 00) <= (others => '0'); + when opcode_jal_c => -- J-immediate: unconditional jumps + imm_o(31 downto 20) <= (others => execute_engine.i_reg(31)); -- sign extension + imm_o(19 downto 12) <= execute_engine.i_reg(19 downto 12); + imm_o(11) <= execute_engine.i_reg(20); + imm_o(10 downto 05) <= execute_engine.i_reg(30 downto 25); + imm_o(04 downto 01) <= execute_engine.i_reg(24 downto 21); + imm_o(00) <= '0'; + when opcode_atomic_c => -- atomic memory access and everything else + if (CPU_EXTENSION_RISCV_A = true) then + imm_o <= (others => '0'); -- effective address is addr = reg + 0 = reg + else + NULL; -- use default + end if; + when others => -- I-immediate + NULL; -- use default + end case; + end if; + end process imm_gen; + + + -- Branch Condition Check ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + branch_check: process(execute_engine.i_reg, cmp_i) + begin + case execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) is + when funct3_beq_c => -- branch if equal + execute_engine.branch_taken <= cmp_i(cmp_equal_c); + when funct3_bne_c => -- branch if not equal + execute_engine.branch_taken <= not cmp_i(cmp_equal_c); + when funct3_blt_c | funct3_bltu_c => -- branch if less (signed/unsigned) + execute_engine.branch_taken <= cmp_i(cmp_less_c); + when funct3_bge_c | funct3_bgeu_c => -- branch if greater or equal (signed/unsigned) + execute_engine.branch_taken <= not cmp_i(cmp_less_c); + when others => -- invalid + execute_engine.branch_taken <= '0'; + end case; + end process branch_check; + + + -- Execute Engine FSM Sync ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + execute_engine_fsm_sync: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + -- registers that DO require a specific reset state -- + execute_engine.pc <= CPU_BOOT_ADDR(data_width_c-1 downto 2) & "00"; -- 32-bit aligned! + execute_engine.state <= SYS_WAIT; + execute_engine.sleep <= '0'; + execute_engine.branched <= '1'; -- reset is a branch from "somewhere" + -- no dedicated RESET required -- + execute_engine.state_prev <= SYS_WAIT; -- actual reset value is not relevant + execute_engine.i_reg <= (others => def_rst_val_c); + execute_engine.is_ci <= def_rst_val_c; + execute_engine.is_ici <= def_rst_val_c; + execute_engine.last_pc <= (others => def_rst_val_c); + execute_engine.i_reg_last <= (others => def_rst_val_c); + execute_engine.next_pc <= (others => def_rst_val_c); + ctrl <= (others => def_rst_val_c); + ctrl(ctrl_bus_rd_c) <= '0'; + ctrl(ctrl_bus_wr_c) <= '0'; + elsif rising_edge(clk_i) then + -- PC update -- + if (execute_engine.pc_we = '1') then + if (execute_engine.pc_mux_sel = '0') then + execute_engine.pc <= execute_engine.next_pc(data_width_c-1 downto 1) & '0'; -- normal (linear) increment OR trap enter/exit + else + execute_engine.pc <= alu_add_i(data_width_c-1 downto 1) & '0'; -- jump/taken_branch + end if; + end if; + + execute_engine.state <= execute_engine.state_nxt; + execute_engine.state_prev <= execute_engine.state; + execute_engine.sleep <= execute_engine.sleep_nxt; + execute_engine.branched <= execute_engine.branched_nxt; + execute_engine.i_reg <= execute_engine.i_reg_nxt; + execute_engine.is_ci <= execute_engine.is_ci_nxt; + execute_engine.is_ici <= execute_engine.is_ici_nxt; + + -- PC & IR of "last executed" instruction for trap handling -- + if (execute_engine.state = EXECUTE) then + execute_engine.last_pc <= execute_engine.pc; + execute_engine.i_reg_last <= execute_engine.i_reg; + end if; + + -- next PC -- + case execute_engine.state is + when TRAP_ENTER => -- ENTERING trap environment + if (CPU_EXTENSION_RISCV_DEBUG = false) then -- normal trapping + execute_engine.next_pc <= csr.mtvec(data_width_c-1 downto 1) & '0'; -- trap enter + else -- DEBUG MODE enabled + if (trap_ctrl.cause(5) = '1') then -- trap cause: debug mode (re-)entry + execute_engine.next_pc <= CPU_DEBUG_ADDR; -- debug mode enter; start at "parking loop" + elsif (debug_ctrl.running = '1') then -- any other exception INSIDE debug mode + execute_engine.next_pc <= std_ulogic_vector(unsigned(CPU_DEBUG_ADDR) + 4); -- execute at "parking loop" + else -- normal trapping + execute_engine.next_pc <= csr.mtvec(data_width_c-1 downto 1) & '0'; -- trap enter + end if; + end if; + when TRAP_EXIT => -- LEAVING trap environment + if (CPU_EXTENSION_RISCV_DEBUG = false) or (debug_ctrl.running = '0') then -- normal end of trap + execute_engine.next_pc <= csr.mepc(data_width_c-1 downto 1) & '0'; -- trap exit + else -- DEBUG MODE exiting + execute_engine.next_pc <= csr.dpc(data_width_c-1 downto 1) & '0'; -- debug mode exit + end if; + when EXECUTE => -- NORMAL pc increment + execute_engine.next_pc <= std_ulogic_vector(unsigned(execute_engine.pc) + unsigned(execute_engine.next_pc_inc)); -- next linear PC + when others => + NULL; + end case; + + -- main control bus -- + ctrl <= ctrl_nxt; + end if; + end process execute_engine_fsm_sync; + + + -- PC increment for next linear instruction (+2 for compressed instr., +4 otherwise) -- + execute_engine.next_pc_inc <= x"00000004" when ((execute_engine.is_ci = '0') or (CPU_EXTENSION_RISCV_C = false)) else x"00000002"; + + -- PC output -- + curr_pc_o <= execute_engine.pc(data_width_c-1 downto 1) & '0'; -- current PC for ALU ops + next_pc_o <= execute_engine.next_pc(data_width_c-1 downto 1) & '0'; -- next PC for ALU ops + + -- CSR access address -- + csr.addr <= execute_engine.i_reg(instr_csr_id_msb_c downto instr_csr_id_lsb_c); + + + -- CPU Control Bus Output ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ctrl_output: process(ctrl, fetch_engine, trap_ctrl, bus_fast_ir, execute_engine, csr, debug_ctrl) + begin + -- signals from execute engine -- + ctrl_o <= ctrl; + -- prevent commits if illegal instruction -- + ctrl_o(ctrl_rf_wb_en_c) <= ctrl(ctrl_rf_wb_en_c) and (not trap_ctrl.exc_buf(exception_iillegal_c)); + ctrl_o(ctrl_bus_rd_c) <= ctrl(ctrl_bus_rd_c) and (not trap_ctrl.exc_buf(exception_iillegal_c)); + ctrl_o(ctrl_bus_wr_c) <= ctrl(ctrl_bus_wr_c) and (not trap_ctrl.exc_buf(exception_iillegal_c)); + -- current privilege level -- + ctrl_o(ctrl_priv_lvl_msb_c downto ctrl_priv_lvl_lsb_c) <= csr.privilege_rd; + -- register addresses -- + ctrl_o(ctrl_rf_rs1_adr4_c downto ctrl_rf_rs1_adr0_c) <= execute_engine.i_reg(instr_rs1_msb_c downto instr_rs1_lsb_c); + ctrl_o(ctrl_rf_rs2_adr4_c downto ctrl_rf_rs2_adr0_c) <= execute_engine.i_reg(instr_rs2_msb_c downto instr_rs2_lsb_c); + ctrl_o(ctrl_rf_rd_adr4_c downto ctrl_rf_rd_adr0_c) <= execute_engine.i_reg(instr_rd_msb_c downto instr_rd_lsb_c); + -- fast bus access requests -- + ctrl_o(ctrl_bus_if_c) <= bus_fast_ir; + -- bus error control -- + ctrl_o(ctrl_bus_ierr_ack_c) <= fetch_engine.bus_err_ack; -- instruction fetch bus access error ACK + ctrl_o(ctrl_bus_derr_ack_c) <= trap_ctrl.env_start_ack; -- data access bus error access ACK + -- memory access size / sign -- + ctrl_o(ctrl_bus_unsigned_c) <= execute_engine.i_reg(instr_funct3_msb_c); -- unsigned LOAD (LBU, LHU) + ctrl_o(ctrl_bus_size_msb_c downto ctrl_bus_size_lsb_c) <= execute_engine.i_reg(instr_funct3_lsb_c+1 downto instr_funct3_lsb_c); -- mem transfer size + -- alu.shifter -- + ctrl_o(ctrl_alu_shift_dir_c) <= execute_engine.i_reg(instr_funct3_msb_c); -- shift direction (left/right) + ctrl_o(ctrl_alu_shift_ar_c) <= execute_engine.i_reg(30); -- is arithmetic shift + -- instruction's function blocks (for co-processors) -- + ctrl_o(ctrl_ir_opcode7_6_c downto ctrl_ir_opcode7_0_c) <= execute_engine.i_reg(instr_opcode_msb_c downto instr_opcode_lsb_c); + ctrl_o(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_0_c) <= execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c); + ctrl_o(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_0_c) <= execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c); + -- cpu status -- + ctrl_o(ctrl_sleep_c) <= execute_engine.sleep; -- cpu is in sleep mode + ctrl_o(ctrl_trap_c) <= trap_ctrl.env_start_ack; -- cpu is starting a trap handler + ctrl_o(ctrl_debug_running_c) <= debug_ctrl.running; -- cpu is currently in debug mode + -- FPU rounding mode -- + ctrl_o(ctrl_alu_frm2_c downto ctrl_alu_frm0_c) <= csr.frm; + end process ctrl_output; + + + -- Decoding Helper Logic ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + decode_helper: process(execute_engine) + variable sys_env_cmd_mask_v : std_ulogic_vector(11 downto 0); + begin + -- defaults -- + decode_aux.is_atomic_lr <= '0'; + decode_aux.is_atomic_sc <= '0'; + decode_aux.is_float_op <= '0'; + decode_aux.is_m_mul <= '0'; + decode_aux.is_m_div <= '0'; + decode_aux.is_bitmanip_imm <= '0'; + decode_aux.is_bitmanip_reg <= '0'; + decode_aux.rs1_zero <= '0'; + decode_aux.rs2_zero <= '0'; + decode_aux.rd_zero <= '0'; + + -- is atomic load-reservate/store-conditional? -- + if (CPU_EXTENSION_RISCV_A = true) and (execute_engine.i_reg(instr_opcode_lsb_c+2) = '1') then -- valid atomic sub-opcode + decode_aux.is_atomic_lr <= not execute_engine.i_reg(instr_funct5_lsb_c); + decode_aux.is_atomic_sc <= execute_engine.i_reg(instr_funct5_lsb_c); + end if; + + -- is BITMANIP instruction? -- + -- pretty complex as we have to extract this from the ALU/ALUI instruction space -- + -- immediate operation -- + if ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0110000") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "001") and + ( + (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "00000") or -- CLZ + (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "00001") or -- CTZ + (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "00010") or -- CPOP + (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "00100") or -- SEXT.B + (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "00101") -- SEXT.H + ) + ) or + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0110000") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "101")) or -- RORI + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0010100") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "101") and (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "00111")) or -- ORCB + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0110100") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "101") and (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c) = "11000")) then -- REV8 + decode_aux.is_bitmanip_imm <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_B); -- BITMANIP implemented at all? + end if; + -- register operation -- + if ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0110000") and (execute_engine.i_reg(instr_funct3_msb_c-1 downto instr_funct3_lsb_c) = "01")) or -- ROR / ROL + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0000101") and (execute_engine.i_reg(instr_funct3_msb_c) = '1')) or -- MIN[U] / MAX[U] + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0000100") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "100")) or -- ZEXTH + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0100000") and + ( + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "111") or -- ANDN + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "110") or -- ORN + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "100") -- XORN + ) + ) or + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0010000") and + ( + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "010") or -- SH1ADD + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "100") or -- SH2ADD + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "110") -- SH3ADD + ) + ) then + decode_aux.is_bitmanip_reg <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_B); -- BITMANIP implemented at all? + end if; + + -- floating-point operations (Zfinx) -- + if ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+3) = "0000")) or -- FADD.S / FSUB.S + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "00010")) or -- FMUL.S + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "11100") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "001")) or -- FCLASS.S + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "00100") and (execute_engine.i_reg(instr_funct3_msb_c) = '0')) or -- FSGNJ[N/X].S + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "00101") and (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_msb_c-1) = "00")) or -- FMIN.S / FMAX.S + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "10100") and (execute_engine.i_reg(instr_funct3_msb_c) = '0')) or -- FEQ.S / FLT.S / FLE.S + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "11010") and (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c+1) = "0000")) or -- FCVT.S.W* + ((execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c+2) = "11000") and (execute_engine.i_reg(instr_funct12_lsb_c+4 downto instr_funct12_lsb_c+1) = "0000")) then -- FCVT.W*.S + decode_aux.is_float_op <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zfinx); -- FPU implemented at all? + end if; + + -- system/environment instructions -- + sys_env_cmd_mask_v := funct12_ecall_c or funct12_ebreak_c or funct12_mret_c or funct12_wfi_c or funct12_dret_c; -- sum-up set bits + decode_aux.sys_env_cmd <= execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) and sys_env_cmd_mask_v; -- set unused bits to always-zero + + -- integer MUL (M/Zmmul) / DIV (M) operation -- + if (execute_engine.i_reg(instr_opcode_lsb_c+5) = opcode_alu_c(5)) and + (execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0000001") then + decode_aux.is_m_mul <= (not execute_engine.i_reg(instr_funct3_msb_c)) and (bool_to_ulogic_f(CPU_EXTENSION_RISCV_M) or bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zmmul)); + decode_aux.is_m_div <= execute_engine.i_reg(instr_funct3_msb_c) and bool_to_ulogic_f(CPU_EXTENSION_RISCV_M); + end if; + + -- register address checks -- + decode_aux.rs1_zero <= not or_reduce_f(execute_engine.i_reg(instr_rs1_msb_c downto instr_rs1_lsb_c)); + decode_aux.rs2_zero <= not or_reduce_f(execute_engine.i_reg(instr_rs2_msb_c downto instr_rs2_lsb_c)); + decode_aux.rd_zero <= not or_reduce_f(execute_engine.i_reg(instr_rd_msb_c downto instr_rd_lsb_c)); + end process decode_helper; + + + -- Execute Engine FSM Comb ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + execute_engine_fsm_comb: process(execute_engine, debug_ctrl, trap_ctrl, decode_aux, fetch_engine, cmd_issue, + csr, ctrl, alu_idone_i, bus_d_wait_i, excl_state_i) + variable opcode_v : std_ulogic_vector(6 downto 0); + begin + -- arbiter defaults -- + execute_engine.state_nxt <= execute_engine.state; + execute_engine.i_reg_nxt <= execute_engine.i_reg; + execute_engine.is_ci_nxt <= execute_engine.is_ci; + execute_engine.is_ici_nxt <= '0'; + execute_engine.sleep_nxt <= execute_engine.sleep; + execute_engine.branched_nxt <= execute_engine.branched; + -- + execute_engine.pc_mux_sel <= '0'; + execute_engine.pc_we <= '0'; + + -- instruction dispatch -- + fetch_engine.reset <= '0'; + + -- trap environment control -- + trap_ctrl.env_start_ack <= '0'; + trap_ctrl.env_end <= '0'; + + -- leave debug mode -- + debug_ctrl.dret <= '0'; + + -- exception trigger -- + trap_ctrl.instr_be <= '0'; + trap_ctrl.instr_ma <= '0'; + trap_ctrl.env_call <= '0'; + trap_ctrl.break_point <= '0'; + + -- CSR access -- + csr.we_nxt <= '0'; + + -- CONTROL DEFAULTS -- + ctrl_nxt <= (others => '0'); -- default: all off + -- ALU main control -- + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_add_c; -- default ALU operation: ADD + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_core_c; -- default ALU operation: ADD + -- ALU sign control -- + if (execute_engine.i_reg(instr_opcode_lsb_c+4) = '1') then -- ALU ops + ctrl_nxt(ctrl_alu_unsigned_c) <= execute_engine.i_reg(instr_funct3_lsb_c+0); -- unsigned ALU operation? (SLTIU, SLTU) + else -- branches + ctrl_nxt(ctrl_alu_unsigned_c) <= execute_engine.i_reg(instr_funct3_lsb_c+1); -- unsigned branches? (BLTU, BGEU) + end if; + -- atomic store-conditional instruction (evaluate lock status) -- + ctrl_nxt(ctrl_bus_ch_lock_c) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_A) and decode_aux.is_atomic_sc; + + + -- state machine -- + case execute_engine.state is + + when SYS_WAIT => -- System delay cycle (to let side effects kick in) + -- ------------------------------------------------------------ + execute_engine.state_nxt <= DISPATCH; + + + when DISPATCH => -- Get new command from instruction issue engine + -- ------------------------------------------------------------ + -- PC update -- + execute_engine.pc_mux_sel <= '0'; -- linear next PC + -- IR update -- + execute_engine.is_ci_nxt <= cmd_issue.data(32); -- flag to indicate a de-compressed instruction + execute_engine.i_reg_nxt <= cmd_issue.data(31 downto 0); + -- + if (cmd_issue.valid = '1') then -- instruction available? + -- PC update -- + execute_engine.branched_nxt <= '0'; + execute_engine.pc_we <= not execute_engine.branched; -- update PC with linear next_pc if there was no actual branch + -- IR update - exceptions -- + trap_ctrl.instr_ma <= cmd_issue.data(33) and (not bool_to_ulogic_f(CPU_EXTENSION_RISCV_C)); -- misaligned instruction fetch address, if C disabled + trap_ctrl.instr_be <= cmd_issue.data(34); -- bus access fault during instruction fetch + execute_engine.is_ici_nxt <= cmd_issue.data(35); -- invalid decompressed instruction + -- any reason to go to trap state? -- + if (execute_engine.sleep = '1') or -- enter sleep state + (trap_ctrl.exc_fire = '1') or -- exception during LAST instruction (illegal instruction) + (trap_ctrl.env_start = '1') or -- pending trap (IRQ or exception) + ((cmd_issue.data(33) = '1') and (CPU_EXTENSION_RISCV_C = false)) or -- misaligned instruction fetch address, if C disabled + (cmd_issue.data(34) = '1') then -- bus access fault during instruction fetch + execute_engine.state_nxt <= TRAP_ENTER; + else + execute_engine.state_nxt <= EXECUTE; + end if; + end if; + + + when TRAP_ENTER => -- Start trap environment - get xTVEC, stay here for sleep mode + -- ------------------------------------------------------------ + if (trap_ctrl.env_start = '1') then -- trap triggered? + trap_ctrl.env_start_ack <= '1'; + execute_engine.state_nxt <= TRAP_EXECUTE; + end if; + + + when TRAP_EXIT => -- Return from trap environment - get xEPC + -- ------------------------------------------------------------ + trap_ctrl.env_end <= '1'; + execute_engine.state_nxt <= TRAP_EXECUTE; + + + when TRAP_EXECUTE => -- Process trap environment -> jump to xTVEC / return from trap environment -> jump to xEPC + -- ------------------------------------------------------------ + execute_engine.pc_mux_sel <= '0'; -- next_PC + fetch_engine.reset <= '1'; + execute_engine.pc_we <= '1'; + execute_engine.sleep_nxt <= '0'; -- disable sleep mode + execute_engine.state_nxt <= SYS_WAIT; + + + when EXECUTE => -- Decode and execute instruction (control has to be here for exactly 1 cycle in any case!) + -- ------------------------------------------------------------ + opcode_v := execute_engine.i_reg(instr_opcode_msb_c downto instr_opcode_lsb_c+2) & "11"; -- save some bits here, LSBs are always 11 for rv32 + case opcode_v is + + when opcode_alu_c | opcode_alui_c => -- (register/immediate) ALU operation + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_alu_opb_mux_c) <= not execute_engine.i_reg(instr_opcode_msb_c-1); -- use IMM as ALU.OPB for immediate operations + + -- ALU core operation -- + case execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) is -- actual ALU.logic operation (re-coding) + when funct3_subadd_c => -- ADD(I)/SUB + if ((execute_engine.i_reg(instr_opcode_msb_c-1) = '1') and (execute_engine.i_reg(instr_funct7_msb_c-1) = '1')) then -- not an immediate op and funct7.6 set => SUB + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_sub_c; + else + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_add_c; + end if; + when funct3_slt_c | funct3_sltu_c => -- SLT(I), SLTU(I) + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_slt_c; + when funct3_xor_c => -- XOR(I) + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_xor_c; + when funct3_or_c => -- OR(I) + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_or_c; + when others => -- AND(I), multi-cycle / co-processor operations + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_and_c; + end case; + + -- Check if single-cycle or multi-cycle (co-processor) operation -- + -- co-processor MULDIV operation? -- + if ((CPU_EXTENSION_RISCV_M = true) and ((decode_aux.is_m_mul = '1') or (decode_aux.is_m_div = '1'))) or -- MUL/DIV + ((CPU_EXTENSION_RISCV_Zmmul = true) and (decode_aux.is_m_mul = '1')) then -- MUL + ctrl_nxt(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) <= cp_sel_muldiv_c; -- use MULDIV CP + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_copro_c; + execute_engine.state_nxt <= ALU_WAIT; + -- co-processor BIT-MANIPULATION operation? -- + elsif (CPU_EXTENSION_RISCV_B = true) and + (((execute_engine.i_reg(instr_opcode_lsb_c+5) = opcode_alu_c(5)) and (decode_aux.is_bitmanip_reg = '1')) or -- register operation + ((execute_engine.i_reg(instr_opcode_lsb_c+5) = opcode_alui_c(5)) and (decode_aux.is_bitmanip_imm = '1'))) then -- immediate operation + ctrl_nxt(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) <= cp_sel_bitmanip_c; -- use BITMANIP CP + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_copro_c; + execute_engine.state_nxt <= ALU_WAIT; + -- co-processor SHIFT operation? -- + elsif (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sll_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sr_c) then + ctrl_nxt(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) <= cp_sel_shifter_c; -- use SHIFTER CP (only relevant for shift operations) + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_copro_c; + execute_engine.state_nxt <= ALU_WAIT; + -- ALU core operations (single-cycle) -- + else + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_core_c; + ctrl_nxt(ctrl_rf_wb_en_c) <= '1'; -- valid RF write-back + execute_engine.state_nxt <= DISPATCH; + end if; + + + when opcode_lui_c | opcode_auipc_c => -- load upper immediate / add upper immediate to PC + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_alu_opa_mux_c) <= '1'; -- ALU.OPA = PC (for AUIPC only) + ctrl_nxt(ctrl_alu_opb_mux_c) <= '1'; -- use IMM as ALU.OPB + if (execute_engine.i_reg(instr_opcode_lsb_c+5) = opcode_lui_c(5)) then -- LUI + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_movb_c; -- actual ALU operation = MOVB + else -- AUIPC + ctrl_nxt(ctrl_alu_op2_c downto ctrl_alu_op0_c) <= alu_op_add_c; -- actual ALU operation = ADD + end if; + ctrl_nxt(ctrl_rf_wb_en_c) <= '1'; -- valid RF write-back + execute_engine.state_nxt <= DISPATCH; + + + when opcode_load_c | opcode_store_c | opcode_atomic_c => -- load/store / atomic memory access + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_alu_opb_mux_c) <= '1'; -- use IMM as ALU.OPB + ctrl_nxt(ctrl_bus_mo_we_c) <= '1'; -- write to MAR and MDO (MDO only relevant for store) + execute_engine.state_nxt <= LOADSTORE_0; + + + when opcode_branch_c | opcode_jal_c | opcode_jalr_c => -- branch / jump and link (with register) + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_opcode_lsb_c+3 downto instr_opcode_lsb_c+2) = opcode_jalr_c(3 downto 2)) then -- JALR + ctrl_nxt(ctrl_alu_opa_mux_c) <= '0'; -- use RS1 as ALU.OPA (branch target address base) + else -- JAL + ctrl_nxt(ctrl_alu_opa_mux_c) <= '1'; -- use PC as ALU.OPA (branch target address base) + end if; + ctrl_nxt(ctrl_alu_opb_mux_c) <= '1'; -- use IMM as ALU.OPB (branch target address offset) + execute_engine.state_nxt <= BRANCH; + + + when opcode_fence_c => -- fence operations + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_fence_c) then -- FENCE + ctrl_nxt(ctrl_bus_fence_c) <= '1'; + execute_engine.state_nxt <= SYS_WAIT; + elsif (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_fencei_c) and (CPU_EXTENSION_RISCV_Zifencei = true) then -- FENCE.I + ctrl_nxt(ctrl_bus_fencei_c) <= '1'; + execute_engine.branched_nxt <= '1'; -- this is an actual branch + execute_engine.state_nxt <= TRAP_EXECUTE; -- use TRAP_EXECUTE to "modify" PC (PC <= PC) + else -- illegal fence instruction + execute_engine.state_nxt <= SYS_WAIT; + end if; + + + when opcode_syscsr_c => -- system/csr access + -- ------------------------------------------------------------ + if (CPU_EXTENSION_RISCV_Zicsr = true) then + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_env_c) then -- system/environment + execute_engine.state_nxt <= SYS_ENV; + else -- CSR access + execute_engine.state_nxt <= CSR_ACCESS; + end if; + else + execute_engine.state_nxt <= SYS_WAIT; + end if; + + + when opcode_fop_c => -- floating-point operations + -- ------------------------------------------------------------ + if (CPU_EXTENSION_RISCV_Zfinx = true) then + ctrl_nxt(ctrl_cp_id_msb_c downto ctrl_cp_id_lsb_c) <= cp_sel_fpu_c; -- trigger FPU CP + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_copro_c; + execute_engine.state_nxt <= ALU_WAIT; + else + execute_engine.state_nxt <= SYS_WAIT; + end if; + + + when others => -- illegal opcode + -- ------------------------------------------------------------ + execute_engine.state_nxt <= SYS_WAIT; + + end case; + + + when SYS_ENV => -- system environment operation - execution + -- ------------------------------------------------------------ + execute_engine.state_nxt <= SYS_WAIT; -- default + if (trap_ctrl.exc_buf(exception_iillegal_c) = '0') then -- no illegal instruction + case decode_aux.sys_env_cmd is -- use a simplified input here (with hardwired zeros) + when funct12_ecall_c => trap_ctrl.env_call <= '1'; -- ECALL + when funct12_ebreak_c => trap_ctrl.break_point <= '1'; -- EBREAK + when funct12_mret_c => execute_engine.state_nxt <= TRAP_EXIT; -- MRET + when funct12_dret_c => -- DRET + if (CPU_EXTENSION_RISCV_DEBUG = true) then + execute_engine.state_nxt <= TRAP_EXIT; + debug_ctrl.dret <= '1'; + else + NULL; -- executed as NOP (and raise illegal instruction exception) + end if; + when funct12_wfi_c => -- WFI + if (CPU_EXTENSION_RISCV_DEBUG = true) and + ((debug_ctrl.running = '1') or (csr.dcsr_step = '1')) then -- act as NOP when in debug-mode or during single-stepping + NULL; -- executed as NOP + else + execute_engine.sleep_nxt <= '1'; -- go to sleep mode + end if; + when others => NULL; -- undefined / execute as NOP + end case; + end if; + + + when CSR_ACCESS => -- read & write status and control register (CSR) + -- ------------------------------------------------------------ + -- CSR write access -- + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrw_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrwi_c) then -- CSRRW(I) + csr.we_nxt <= '1'; -- always write CSR + else -- CSRRS(I) / CSRRC(I) [invalid CSR instruction are already checked by the illegal instruction logic] + csr.we_nxt <= not decode_aux.rs1_zero; -- write CSR if rs1/imm is not zero + end if; + -- register file write back -- + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_csrr_c; + ctrl_nxt(ctrl_rf_wb_en_c) <= '1'; -- valid RF write-back + execute_engine.state_nxt <= DISPATCH; + + + when ALU_WAIT => -- wait for multi-cycle ALU operation (co-processor) to finish + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_copro_c; + if (alu_idone_i = '1') or (trap_ctrl.exc_buf(exception_iillegal_c) = '1') then -- completed or exception + ctrl_nxt(ctrl_rf_wb_en_c) <= '1'; -- valid RF write-back + execute_engine.state_nxt <= DISPATCH; + end if; + + + when BRANCH => -- update PC for taken branches and jumps + -- ------------------------------------------------------------ + -- get and store return address (only relevant for jump-and-link operations) -- + ctrl_nxt(ctrl_alu_func1_c downto ctrl_alu_func0_c) <= alu_func_nxpc_c; -- next PC + ctrl_nxt(ctrl_rf_wb_en_c) <= execute_engine.i_reg(instr_opcode_lsb_c+2); -- valid RF write-back? (is jump-and-link?) + -- destination address -- + execute_engine.pc_mux_sel <= '1'; -- PC <= alu.add = branch/jump destination + if (execute_engine.i_reg(instr_opcode_lsb_c+2) = '1') or (execute_engine.branch_taken = '1') then -- JAL/JALR or taken branch + -- no need to check for illegal instructions here; the branch condition evaluation circuit will not set "branch_taken" if funct3 is invalid + execute_engine.pc_we <= '1'; -- update PC + execute_engine.branched_nxt <= '1'; -- this is an actual branch + fetch_engine.reset <= '1'; -- trigger new instruction fetch from modified PC + execute_engine.state_nxt <= SYS_WAIT; + else + execute_engine.state_nxt <= DISPATCH; + end if; + + + when LOADSTORE_0 => -- trigger memory request + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_bus_lock_c) <= decode_aux.is_atomic_lr; -- atomic.LR: set lock + if (execute_engine.i_reg(instr_opcode_msb_c-1) = '0') or (decode_aux.is_atomic_lr = '1') then -- normal load or atomic load-reservate + ctrl_nxt(ctrl_bus_rd_c) <= '1'; -- read request + else -- store + if (decode_aux.is_atomic_sc = '0') or (CPU_EXTENSION_RISCV_A = false) then -- (normal) write request + ctrl_nxt(ctrl_bus_wr_c) <= '1'; + else -- evaluate lock state + ctrl_nxt(ctrl_bus_wr_c) <= excl_state_i; -- write request if lock is still ok + end if; + end if; + execute_engine.state_nxt <= LOADSTORE_1; + + + when LOADSTORE_1 => -- memory access latency + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_bus_mi_we_c) <= '1'; -- write input data to MDI (only relevant for LOADs) + execute_engine.state_nxt <= LOADSTORE_2; + + + when LOADSTORE_2 => -- wait for bus transaction to finish + -- ------------------------------------------------------------ + ctrl_nxt(ctrl_bus_mi_we_c) <= '1'; -- keep writing input data to MDI (only relevant for load (and SC.W) operations) + ctrl_nxt(ctrl_rf_in_mux_c) <= '1'; -- RF input = memory input (only relevant for LOADs) + -- wait for memory response -- + if (trap_ctrl.env_start = '1') and (trap_ctrl.cause(6 downto 5) = "00") then -- abort if SYNC EXCEPTION (from bus or illegal cmd) / no IRQs and NOT DEBUG-MODE-related + execute_engine.state_nxt <= DISPATCH; + elsif (bus_d_wait_i = '0') then -- wait for bus to finish transaction + -- data write-back -- + if (execute_engine.i_reg(instr_opcode_msb_c-1) = '0') or -- normal load + (decode_aux.is_atomic_lr = '1') or -- atomic load-reservate + (decode_aux.is_atomic_sc = '1') then -- atomic store-conditional + ctrl_nxt(ctrl_rf_wb_en_c) <= '1'; + end if; + -- remove atomic lock if this is NOT the LR.W instruction used to SET the lock -- + if (decode_aux.is_atomic_lr = '0') then -- execute and evaluate atomic store-conditional + ctrl_nxt(ctrl_bus_de_lock_c) <= '1'; + end if; + execute_engine.state_nxt <= DISPATCH; + end if; + + + when others => -- undefined + -- ------------------------------------------------------------ + execute_engine.state_nxt <= SYS_WAIT; + + end case; + end process execute_engine_fsm_comb; + + +-- **************************************************************************************************************************** +-- Invalid Instruction / CSR access check +-- **************************************************************************************************************************** + + -- CSR Access Check ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + csr_access_check: process(execute_engine.i_reg, decode_aux, csr, debug_ctrl) + variable csr_wacc_v : std_ulogic; -- actual CSR write +-- variable csr_racc_v : std_ulogic; -- actual CSR read + begin + -- is this CSR instruction really going to write to a CSR? -- + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrw_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrwi_c) then + csr_wacc_v := '1'; -- always write CSR +-- csr_racc_v := or_reduce_f(execute_engine.i_reg(instr_rd_msb_c downto instr_rd_lsb_c)); -- read if rd != 0 + else -- clear/set + csr_wacc_v := not decode_aux.rs1_zero; -- write if rs1/uimm5 != 0 +-- csr_racc_v := '1'; -- always read CSR + end if; + + -- check CSR access -- + case csr.addr is + + -- floating-point CSRs -- + when csr_fflags_c | csr_frm_c | csr_fcsr_c => + csr_acc_valid <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zfinx); -- full access for everyone if FPU implemented + + -- machine trap setup/handling & counters -- + when csr_mstatus_c | csr_mstatush_c | csr_misa_c | csr_mie_c | csr_mtvec_c | csr_mscratch_c | csr_mepc_c | csr_mcause_c | csr_mip_c | csr_mtval_c | + csr_mcycle_c | csr_mcycleh_c | csr_minstret_c | csr_minstreth_c | csr_mcountinhibit_c => + -- NOTE: MISA and MTVAL are read-only in the NEORV32 but we do not cause an exception here for compatibility. + -- Machine-level code should read-back those CSRs after writing them to realize they are read-only. + csr_acc_valid <= csr.priv_m_mode; -- M-mode only + + -- machine information registers, read-only -- + when csr_mvendorid_c | csr_marchid_c | csr_mimpid_c | csr_mhartid_c | csr_mconfigptr_c => + csr_acc_valid <= (not csr_wacc_v) and csr.priv_m_mode; -- M-mode only, read-only + + -- user-mode registers -- + when csr_mcounteren_c | csr_menvcfg_c | csr_menvcfgh_c => + csr_acc_valid <= csr.priv_m_mode and bool_to_ulogic_f(CPU_EXTENSION_RISCV_U); + + -- physical memory protection (PMP) -- + when csr_pmpaddr0_c | csr_pmpaddr1_c | csr_pmpaddr2_c | csr_pmpaddr3_c | csr_pmpaddr4_c | csr_pmpaddr5_c | csr_pmpaddr6_c | csr_pmpaddr7_c | -- address + csr_pmpaddr8_c | csr_pmpaddr9_c | csr_pmpaddr10_c | csr_pmpaddr11_c | csr_pmpaddr12_c | csr_pmpaddr13_c | csr_pmpaddr14_c | csr_pmpaddr15_c | + csr_pmpaddr16_c | csr_pmpaddr17_c | csr_pmpaddr18_c | csr_pmpaddr19_c | csr_pmpaddr20_c | csr_pmpaddr21_c | csr_pmpaddr22_c | csr_pmpaddr23_c | + csr_pmpaddr24_c | csr_pmpaddr25_c | csr_pmpaddr26_c | csr_pmpaddr27_c | csr_pmpaddr28_c | csr_pmpaddr29_c | csr_pmpaddr30_c | csr_pmpaddr31_c | + csr_pmpaddr32_c | csr_pmpaddr33_c | csr_pmpaddr34_c | csr_pmpaddr35_c | csr_pmpaddr36_c | csr_pmpaddr37_c | csr_pmpaddr38_c | csr_pmpaddr39_c | + csr_pmpaddr40_c | csr_pmpaddr41_c | csr_pmpaddr42_c | csr_pmpaddr43_c | csr_pmpaddr44_c | csr_pmpaddr45_c | csr_pmpaddr46_c | csr_pmpaddr47_c | + csr_pmpaddr48_c | csr_pmpaddr49_c | csr_pmpaddr50_c | csr_pmpaddr51_c | csr_pmpaddr52_c | csr_pmpaddr53_c | csr_pmpaddr54_c | csr_pmpaddr55_c | + csr_pmpaddr56_c | csr_pmpaddr57_c | csr_pmpaddr58_c | csr_pmpaddr59_c | csr_pmpaddr60_c | csr_pmpaddr61_c | csr_pmpaddr62_c | csr_pmpaddr63_c | + csr_pmpcfg0_c | csr_pmpcfg1_c | csr_pmpcfg2_c | csr_pmpcfg3_c | csr_pmpcfg4_c | csr_pmpcfg5_c | csr_pmpcfg6_c | csr_pmpcfg7_c | -- configuration + csr_pmpcfg8_c | csr_pmpcfg9_c | csr_pmpcfg10_c | csr_pmpcfg11_c | csr_pmpcfg12_c | csr_pmpcfg13_c | csr_pmpcfg14_c | csr_pmpcfg15_c => + csr_acc_valid <= csr.priv_m_mode and bool_to_ulogic_f(boolean(PMP_NUM_REGIONS > 0)); -- M-mode only + + -- hardware performance monitors (HPM) -- + when csr_mhpmcounter3_c | csr_mhpmcounter4_c | csr_mhpmcounter5_c | csr_mhpmcounter6_c | csr_mhpmcounter7_c | csr_mhpmcounter8_c | -- counter LOW + csr_mhpmcounter9_c | csr_mhpmcounter10_c | csr_mhpmcounter11_c | csr_mhpmcounter12_c | csr_mhpmcounter13_c | csr_mhpmcounter14_c | + csr_mhpmcounter15_c | csr_mhpmcounter16_c | csr_mhpmcounter17_c | csr_mhpmcounter18_c | csr_mhpmcounter19_c | csr_mhpmcounter20_c | + csr_mhpmcounter21_c | csr_mhpmcounter22_c | csr_mhpmcounter23_c | csr_mhpmcounter24_c | csr_mhpmcounter25_c | csr_mhpmcounter26_c | + csr_mhpmcounter27_c | csr_mhpmcounter28_c | csr_mhpmcounter29_c | csr_mhpmcounter30_c | csr_mhpmcounter31_c | + csr_mhpmcounter3h_c | csr_mhpmcounter4h_c | csr_mhpmcounter5h_c | csr_mhpmcounter6h_c | csr_mhpmcounter7h_c | csr_mhpmcounter8h_c | -- counter HIGH + csr_mhpmcounter9h_c | csr_mhpmcounter10h_c | csr_mhpmcounter11h_c | csr_mhpmcounter12h_c | csr_mhpmcounter13h_c | csr_mhpmcounter14h_c | + csr_mhpmcounter15h_c | csr_mhpmcounter16h_c | csr_mhpmcounter17h_c | csr_mhpmcounter18h_c | csr_mhpmcounter19h_c | csr_mhpmcounter20h_c | + csr_mhpmcounter21h_c | csr_mhpmcounter22h_c | csr_mhpmcounter23h_c | csr_mhpmcounter24h_c | csr_mhpmcounter25h_c | csr_mhpmcounter26h_c | + csr_mhpmcounter27h_c | csr_mhpmcounter28h_c | csr_mhpmcounter29h_c | csr_mhpmcounter30h_c | csr_mhpmcounter31h_c | + csr_mhpmevent3_c | csr_mhpmevent4_c | csr_mhpmevent5_c | csr_mhpmevent6_c | csr_mhpmevent7_c | csr_mhpmevent8_c | -- event configuration + csr_mhpmevent9_c | csr_mhpmevent10_c | csr_mhpmevent11_c | csr_mhpmevent12_c | csr_mhpmevent13_c | csr_mhpmevent14_c | + csr_mhpmevent15_c | csr_mhpmevent16_c | csr_mhpmevent17_c | csr_mhpmevent18_c | csr_mhpmevent19_c | csr_mhpmevent20_c | + csr_mhpmevent21_c | csr_mhpmevent22_c | csr_mhpmevent23_c | csr_mhpmevent24_c | csr_mhpmevent25_c | csr_mhpmevent26_c | + csr_mhpmevent27_c | csr_mhpmevent28_c | csr_mhpmevent29_c | csr_mhpmevent30_c | csr_mhpmevent31_c => + csr_acc_valid <= csr.priv_m_mode and bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zihpm); -- M-mode only + + -- user-level counters/timers (read-only) -- + when csr_cycle_c | csr_cycleh_c | csr_instret_c | csr_instreth_c | csr_time_c | csr_timeh_c => + case csr.addr(1 downto 0) is + when "00" => csr_acc_valid <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zicntr) and (not csr_wacc_v) and (csr.priv_m_mode or csr.mcounteren_cy); -- cyle[h]: M-mode, U-mode if authorized, implemented at all, read-only + when "01" => csr_acc_valid <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zicntr) and (not csr_wacc_v) and (csr.priv_m_mode or csr.mcounteren_tm); -- time[h]: M-mode, U-mode if authorized, implemented at all, read-only + when "10" => csr_acc_valid <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zicntr) and (not csr_wacc_v) and (csr.priv_m_mode or csr.mcounteren_ir); -- instret[h]: M-mode, U-mode if authorized, implemented at all read-only + when others => csr_acc_valid <= '0'; + end case; + + -- debug mode CSRs -- + when csr_dcsr_c | csr_dpc_c | csr_dscratch0_c => + csr_acc_valid <= debug_ctrl.running and bool_to_ulogic_f(CPU_EXTENSION_RISCV_DEBUG); -- access only in debug-mode + + -- undefined / not implemented -- + when others => + csr_acc_valid <= '0'; -- invalid access + end case; + end process csr_access_check; + + + -- Illegal Instruction Check -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + illegal_instruction_check: process(execute_engine, decode_aux, csr, csr_acc_valid, debug_ctrl) + variable opcode_v : std_ulogic_vector(6 downto 0); + begin + -- illegal instructions are checked in the EXECUTE state + -- the execute engine should not commit any illegal instruction + if (execute_engine.state = EXECUTE) then + -- defaults -- + illegal_instruction <= '0'; + illegal_register <= '0'; + + -- check opcode for rv32 -- + if (execute_engine.i_reg(instr_opcode_lsb_c+1 downto instr_opcode_lsb_c) = "11") then + illegal_opcode_lsbs <= '0'; + else + illegal_opcode_lsbs <= '1'; + end if; + + -- check for illegal compressed instruction -- + if (CPU_EXTENSION_RISCV_C = true) then + illegal_compressed <= execute_engine.is_ici; + else + illegal_compressed <= '0'; + end if; + + -- check instructions -- + opcode_v := execute_engine.i_reg(instr_opcode_msb_c downto instr_opcode_lsb_c+2) & "11"; -- save some bits here, LSBs are always 11 for rv32 + case opcode_v is + + when opcode_lui_c | opcode_auipc_c | opcode_jal_c => -- check sufficient LUI, UIPC, JAL (only check actual OPCODE) + -- ------------------------------------------------------------ + illegal_instruction <= '0'; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and execute_engine.i_reg(instr_rd_msb_c); + + when opcode_alu_c => -- check ALU.funct3 & ALU.funct7 + -- ------------------------------------------------------------ + if (((execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_subadd_c) or (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sr_c)) and + (execute_engine.i_reg(instr_funct7_msb_c-2 downto instr_funct7_lsb_c) = "00000") and (execute_engine.i_reg(instr_funct7_msb_c) = '0')) or + (((execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sll_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_slt_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sltu_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_xor_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_or_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_and_c)) and + (execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0000000")) then -- valid base ALUI instruction? + illegal_instruction <= '0'; + elsif ((CPU_EXTENSION_RISCV_M = true) or (CPU_EXTENSION_RISCV_Zmmul = false)) and (decode_aux.is_m_mul = '1') then -- valid MUL instruction? + illegal_instruction <= '0'; + elsif (CPU_EXTENSION_RISCV_M = true) and (decode_aux.is_m_div = '1') then -- valid DIV instruction? + illegal_instruction <= '0'; + elsif (CPU_EXTENSION_RISCV_B = true) and (decode_aux.is_bitmanip_reg = '1') then -- valid BITMANIP instruction? + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rd_msb_c) or execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rs2_msb_c)); + + when opcode_alui_c => -- check ALUI.funct7 + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_subadd_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_slt_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sltu_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_xor_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_or_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_and_c) or + ((execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sll_c) and -- shift logical left + (execute_engine.i_reg(instr_funct7_msb_c downto instr_funct7_lsb_c) = "0000000")) or + ((execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sr_c) and -- shift right + ((execute_engine.i_reg(instr_funct7_msb_c-2 downto instr_funct7_lsb_c) = "00000") and (execute_engine.i_reg(instr_funct7_msb_c) = '0'))) then -- valid base ALUI instruction? + illegal_instruction <= '0'; + elsif (CPU_EXTENSION_RISCV_B = true) and (decode_aux.is_bitmanip_imm = '1') then -- valid BITMANIP immediate instruction? + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + + when opcode_load_c => -- check LOAD.funct3 + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_lb_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_lh_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_lw_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_lbu_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_lhu_c) then + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + + when opcode_store_c => -- check STORE.funct3 + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sb_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sh_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_sw_c) then + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs2_msb_c) or execute_engine.i_reg(instr_rs1_msb_c)); + + when opcode_atomic_c => -- atomic instructions + -- ------------------------------------------------------------ + if (CPU_EXTENSION_RISCV_A = true) then + if (execute_engine.i_reg(instr_funct5_msb_c downto instr_funct5_lsb_c) = "00010") then -- LR + illegal_instruction <= '0'; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + elsif (execute_engine.i_reg(instr_funct5_msb_c downto instr_funct5_lsb_c) = "00011") then -- SC + illegal_instruction <= '0'; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rs2_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + else + illegal_instruction <= '1'; + end if; + else + illegal_instruction <= '1'; + end if; + + when opcode_branch_c => -- check BRANCH.funct3 + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_beq_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_bne_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_blt_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_bge_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_bltu_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_bgeu_c) then + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs2_msb_c) or execute_engine.i_reg(instr_rs1_msb_c)); + + when opcode_jalr_c => -- check JALR.funct3 + -- ------------------------------------------------------------ + if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "000") then + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + + when opcode_fence_c => -- check FENCE.funct3 + -- ------------------------------------------------------------ + if ((execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_fencei_c) and (CPU_EXTENSION_RISCV_Zifencei = true)) or -- FENCE.I + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_fence_c) then -- FENCE + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + + when opcode_syscsr_c => -- check system instructions + -- ------------------------------------------------------------ + -- CSR access -- + if ((execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrw_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrs_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrc_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrwi_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrsi_c) or + (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_csrrci_c)) and + (csr_acc_valid = '1') then -- valid CSR access? + illegal_instruction <= '0'; + -- illegal E-CPU register? -- + if (CPU_EXTENSION_RISCV_E = true) then + if (execute_engine.i_reg(instr_funct3_msb_c) = '0') then -- reg-reg CSR + illegal_register <= execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c); + else -- reg-imm CSR + illegal_register <= execute_engine.i_reg(instr_rd_msb_c); + end if; + end if; + -- ecall, ebreak, mret, wfi, dret -- + elsif (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = "000") and + (decode_aux.rs1_zero = '1') and (decode_aux.rd_zero = '1') and + ((execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) = funct12_ecall_c) or -- ECALL + (execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) = funct12_ebreak_c) or -- EBREAK + ((execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) = funct12_mret_c) and (csr.priv_m_mode = '1')) or -- MRET (only allowed in M-mode) + ((execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) = funct12_dret_c) and (CPU_EXTENSION_RISCV_DEBUG = true) and (debug_ctrl.running = '1')) or -- DRET (only allowed in D-mode) + (execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) = funct12_wfi_c)) then -- WFI (always allowed to execute) + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + + when opcode_fop_c => -- floating point operations - single/dual operands + -- ------------------------------------------------------------ + if (CPU_EXTENSION_RISCV_Zfinx = true) and -- F extension implemented + (execute_engine.i_reg(instr_funct7_lsb_c+1 downto instr_funct7_lsb_c) = float_single_c) and -- single-precision operations only + (decode_aux.is_float_op = '1') then -- is correct/supported floating-point instruction + illegal_instruction <= '0'; + else + illegal_instruction <= '1'; + end if; + -- illegal E-CPU register? -- + -- FIXME: rs2 is not checked! + illegal_register <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E) and (execute_engine.i_reg(instr_rs1_msb_c) or execute_engine.i_reg(instr_rd_msb_c)); + + when others => -- undefined instruction -> illegal! + -- ------------------------------------------------------------ + illegal_instruction <= '1'; + + end case; + else + illegal_opcode_lsbs <= '0'; + illegal_compressed <= '0'; + illegal_instruction <= '0'; + illegal_register <= '0'; + end if; + end process illegal_instruction_check; + + -- any illegal condition? -- + trap_ctrl.instr_il <= illegal_instruction or illegal_opcode_lsbs or illegal_register or illegal_compressed; + + +-- **************************************************************************************************************************** +-- Exception and Interrupt (= Trap) Control +-- **************************************************************************************************************************** + + -- Trap Controller ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + trap_controller: process(rstn_i, clk_i) + variable mode_m_v, mode_u_v : std_ulogic; + begin + if (rstn_i = '0') then + trap_ctrl.exc_buf <= (others => '0'); + trap_ctrl.irq_buf <= (others => '0'); + trap_ctrl.exc_ack <= '0'; + trap_ctrl.env_start <= '0'; + trap_ctrl.cause <= (others => '0'); + elsif rising_edge(clk_i) then + if (CPU_EXTENSION_RISCV_Zicsr = true) then + + -- exception queue: misaligned load/store/instruction address -- + trap_ctrl.exc_buf(exception_lalign_c) <= (trap_ctrl.exc_buf(exception_lalign_c) or ma_load_i) and (not trap_ctrl.exc_ack); + trap_ctrl.exc_buf(exception_salign_c) <= (trap_ctrl.exc_buf(exception_salign_c) or ma_store_i) and (not trap_ctrl.exc_ack); + trap_ctrl.exc_buf(exception_ialign_c) <= (trap_ctrl.exc_buf(exception_ialign_c) or trap_ctrl.instr_ma) and (not trap_ctrl.exc_ack); + + -- exception queue: load/store/instruction bus access error -- + trap_ctrl.exc_buf(exception_laccess_c) <= (trap_ctrl.exc_buf(exception_laccess_c) or be_load_i) and (not trap_ctrl.exc_ack); + trap_ctrl.exc_buf(exception_saccess_c) <= (trap_ctrl.exc_buf(exception_saccess_c) or be_store_i) and (not trap_ctrl.exc_ack); + trap_ctrl.exc_buf(exception_iaccess_c) <= (trap_ctrl.exc_buf(exception_iaccess_c) or trap_ctrl.instr_be) and (not trap_ctrl.exc_ack); + + -- exception queue: illegal instruction / environment calls -- + trap_ctrl.exc_buf(exception_m_envcall_c) <= (trap_ctrl.exc_buf(exception_m_envcall_c) or (trap_ctrl.env_call and csr.priv_m_mode)) and (not trap_ctrl.exc_ack); + trap_ctrl.exc_buf(exception_u_envcall_c) <= (trap_ctrl.exc_buf(exception_u_envcall_c) or (trap_ctrl.env_call and csr.priv_u_mode)) and (not trap_ctrl.exc_ack); + trap_ctrl.exc_buf(exception_iillegal_c) <= (trap_ctrl.exc_buf(exception_iillegal_c) or trap_ctrl.instr_il) and (not trap_ctrl.exc_ack); + + -- exception queue: break point -- + if (CPU_EXTENSION_RISCV_DEBUG = true) then + trap_ctrl.exc_buf(exception_break_c) <= (not trap_ctrl.exc_ack) and (trap_ctrl.exc_buf(exception_break_c) or + ((trap_ctrl.break_point and csr.priv_m_mode and (not csr.dcsr_ebreakm) and (not debug_ctrl.running)) or -- enable break to machine-trap-handler when in machine mode on "ebreak" + (trap_ctrl.break_point and csr.priv_u_mode and (not csr.dcsr_ebreaku) and (not debug_ctrl.running)))); -- enable break to machine-trap-handler when in user mode on "ebreak" + else + trap_ctrl.exc_buf(exception_break_c) <= (trap_ctrl.exc_buf(exception_break_c) or trap_ctrl.break_point) and (not trap_ctrl.exc_ack); + end if; + + -- exception buffer: enter debug mode -- + trap_ctrl.exc_buf(exception_db_break_c) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_DEBUG) and (trap_ctrl.exc_buf(exception_db_break_c) or debug_ctrl.trig_break) and (not trap_ctrl.exc_ack); + trap_ctrl.irq_buf(interrupt_db_halt_c) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_DEBUG) and debug_ctrl.trig_halt; + trap_ctrl.irq_buf(interrupt_db_step_c) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_DEBUG) and debug_ctrl.trig_step; + + -- interrupt buffer: machine software/external/timer interrupt -- + trap_ctrl.irq_buf(interrupt_msw_irq_c) <= csr.mie_msie and msw_irq_i; + trap_ctrl.irq_buf(interrupt_mext_irq_c) <= csr.mie_meie and mext_irq_i; + trap_ctrl.irq_buf(interrupt_mtime_irq_c) <= csr.mie_mtie and mtime_irq_i; + + -- interrupt queue: NEORV32-specific fast interrupts (FIRQ) -- + trap_ctrl.irq_buf(interrupt_firq_15_c downto interrupt_firq_0_c) <= (trap_ctrl.irq_buf(interrupt_firq_15_c downto interrupt_firq_0_c) or (csr.mie_firqe and firq_i)) and (not csr.mip_clr); + + -- trap environment control -- + if (trap_ctrl.env_start = '0') then -- no started trap handler + if (trap_ctrl.exc_fire = '1') or ((trap_ctrl.irq_fire = '1') and -- exception triggered! + ((execute_engine.state = EXECUTE) or (execute_engine.state = TRAP_ENTER))) then -- fire IRQs in EXECUTE or TRAP state only to continue execution even on permanent IRQ + trap_ctrl.cause <= trap_ctrl.cause_nxt; -- capture source ID for program (for mcause csr) + trap_ctrl.exc_ack <= '1'; -- clear exceptions (no ack mask: these have highest priority and are always evaluated first!) + trap_ctrl.env_start <= '1'; -- now execute engine can start trap handler + end if; + else -- trap waiting to get started + if (trap_ctrl.env_start_ack = '1') then -- start of trap handler acknowledged by execution engine + trap_ctrl.exc_ack <= '0'; + trap_ctrl.env_start <= '0'; + end if; + end if; + end if; + end if; + end process trap_controller; + + -- any exception/interrupt? -- + trap_ctrl.exc_fire <= or_reduce_f(trap_ctrl.exc_buf); -- exceptions/faults CANNOT be masked + trap_ctrl.irq_fire <= (or_reduce_f(trap_ctrl.irq_buf) and csr.mstatus_mie and trap_ctrl.db_irq_en) or trap_ctrl.db_irq_fire; -- interrupts CAN be masked (but not the DEBUG halt IRQ) + + -- debug mode (entry) interrupts -- + trap_ctrl.db_irq_en <= '0' when (CPU_EXTENSION_RISCV_DEBUG = true) and ((debug_ctrl.running = '1') or (csr.dcsr_step = '1')) else '1'; -- no interrupts when IN debug mode or IN single-step mode + trap_ctrl.db_irq_fire <= (trap_ctrl.irq_buf(interrupt_db_step_c) or trap_ctrl.irq_buf(interrupt_db_halt_c)) when (CPU_EXTENSION_RISCV_DEBUG = true) else '0'; -- "NMI" for debug mode entry + + + -- Trap Priority Encoder ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + trap_priority: process(trap_ctrl) + begin + -- defaults -- + trap_ctrl.cause_nxt <= (others => '0'); + + -- NOTE: Synchronous exceptions (from trap_ctrl.exc_buf) have higher priority than asynchronous + -- exceptions (from trap_ctrl.irq_buf). + + -- ---------------------------------------------------------------------------------------- + -- the following traps are caused by *synchronous* exceptions; we do not need a + -- specific acknowledge mask since only _one_ exception (the one with highest priority) + -- is allowed to kick in at once + -- ---------------------------------------------------------------------------------------- + + -- exception: 0.0 instruction address misaligned -- + if (trap_ctrl.exc_buf(exception_ialign_c) = '1') then + trap_ctrl.cause_nxt <= trap_ima_c; + + -- exception: 0.1 instruction access fault -- + elsif (trap_ctrl.exc_buf(exception_iaccess_c) = '1') then + trap_ctrl.cause_nxt <= trap_iba_c; + + -- exception: 0.2 illegal instruction -- + elsif (trap_ctrl.exc_buf(exception_iillegal_c) = '1') then + trap_ctrl.cause_nxt <= trap_iil_c; + + + -- exception: 0.11 environment call from M-mode -- + elsif (trap_ctrl.exc_buf(exception_m_envcall_c) = '1') then + trap_ctrl.cause_nxt <= trap_menv_c; + + -- exception: 0.8 environment call from U-mode -- + elsif (trap_ctrl.exc_buf(exception_u_envcall_c) = '1') then + trap_ctrl.cause_nxt <= trap_uenv_c; + + -- exception: 0.3 breakpoint -- + elsif (trap_ctrl.exc_buf(exception_break_c) = '1') then + trap_ctrl.cause_nxt <= trap_brk_c; + + + -- exception: 0.6 store address misaligned - + elsif (trap_ctrl.exc_buf(exception_salign_c) = '1') then + trap_ctrl.cause_nxt <= trap_sma_c; + + -- exception: 0.4 load address misaligned -- + elsif (trap_ctrl.exc_buf(exception_lalign_c) = '1') then + trap_ctrl.cause_nxt <= trap_lma_c; + + -- exception: 0.7 store access fault -- + elsif (trap_ctrl.exc_buf(exception_saccess_c) = '1') then + trap_ctrl.cause_nxt <= trap_sbe_c; + + -- exception: 0.5 load access fault -- + elsif (trap_ctrl.exc_buf(exception_laccess_c) = '1') then + trap_ctrl.cause_nxt <= trap_lbe_c; + + + -- ---------------------------------------------------------------------------------------- + -- (re-)enter debug mode requests; basically, these are standard traps that have some + -- special handling - they have the highest INTERRUPT priority in order to go to debug when requested + -- even if other IRQs are pending right now + -- ---------------------------------------------------------------------------------------- + + -- break instruction -- + elsif (CPU_EXTENSION_RISCV_DEBUG = true) and (trap_ctrl.exc_buf(exception_db_break_c) = '1') then + trap_ctrl.cause_nxt <= trap_db_break_c; + + -- external halt request -- + elsif (CPU_EXTENSION_RISCV_DEBUG = true) and (trap_ctrl.irq_buf(interrupt_db_halt_c) = '1') then + trap_ctrl.cause_nxt <= trap_db_halt_c; + + -- single stepping -- + elsif (CPU_EXTENSION_RISCV_DEBUG = true) and (trap_ctrl.irq_buf(interrupt_db_step_c) = '1') then + trap_ctrl.cause_nxt <= trap_db_step_c; + + + -- ---------------------------------------------------------------------------------------- + -- the following traps are caused by *asynchronous* exceptions (= interrupts) + -- ---------------------------------------------------------------------------------------- + + -- custom FAST interrupt requests -- + + -- interrupt: 1.16 fast interrupt channel 0 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_0_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq0_c; + + -- interrupt: 1.17 fast interrupt channel 1 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_1_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq1_c; + + -- interrupt: 1.18 fast interrupt channel 2 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_2_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq2_c; + + -- interrupt: 1.19 fast interrupt channel 3 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_3_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq3_c; + + -- interrupt: 1.20 fast interrupt channel 4 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_4_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq4_c; + + -- interrupt: 1.21 fast interrupt channel 5 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_5_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq5_c; + + -- interrupt: 1.22 fast interrupt channel 6 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_6_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq6_c; + + -- interrupt: 1.23 fast interrupt channel 7 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_7_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq7_c; + + -- interrupt: 1.24 fast interrupt channel 8 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_8_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq8_c; + + -- interrupt: 1.25 fast interrupt channel 9 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_9_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq9_c; + + -- interrupt: 1.26 fast interrupt channel 10 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_10_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq10_c; + + -- interrupt: 1.27 fast interrupt channel 11 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_11_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq11_c; + + -- interrupt: 1.28 fast interrupt channel 12 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_12_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq12_c; + + -- interrupt: 1.29 fast interrupt channel 13 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_13_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq13_c; + + -- interrupt: 1.30 fast interrupt channel 14 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_14_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq14_c; + + -- interrupt: 1.31 fast interrupt channel 15 -- + elsif (trap_ctrl.irq_buf(interrupt_firq_15_c) = '1') then + trap_ctrl.cause_nxt <= trap_firq15_c; + + + -- standard RISC-V interrupts -- + + -- interrupt: 1.11 machine external interrupt -- + elsif (trap_ctrl.irq_buf(interrupt_mext_irq_c) = '1') then + trap_ctrl.cause_nxt <= trap_mei_c; + + -- interrupt: 1.3 machine SW interrupt -- + elsif (trap_ctrl.irq_buf(interrupt_msw_irq_c) = '1') then + trap_ctrl.cause_nxt <= trap_msi_c; + + -- interrupt: 1.7 machine timer interrupt -- + elsif (trap_ctrl.irq_buf(interrupt_mtime_irq_c) = '1') then + trap_ctrl.cause_nxt <= trap_mti_c; + + end if; + end process trap_priority; + + +-- **************************************************************************************************************************** +-- Control and Status Registers (CSRs) +-- **************************************************************************************************************************** + + -- Control and Status Registers Write Data ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + csr_write_data: process(execute_engine.i_reg, csr.rdata, rs1_i) + variable csr_operand_v : std_ulogic_vector(data_width_c-1 downto 0); + begin + -- CSR operand source -- + if (execute_engine.i_reg(instr_funct3_msb_c) = '1') then -- immediate + csr_operand_v := (others => '0'); + csr_operand_v(4 downto 0) := execute_engine.i_reg(19 downto 15); -- uimm5 + else -- register + csr_operand_v := rs1_i; + end if; + -- tiny ALU for CSR write operations -- + case execute_engine.i_reg(instr_funct3_lsb_c+1 downto instr_funct3_lsb_c) is + when "10" => csr.wdata <= csr.rdata or csr_operand_v; -- CSRRS(I) + when "11" => csr.wdata <= csr.rdata and (not csr_operand_v); -- CSRRC(I) + when others => csr.wdata <= csr_operand_v; -- CSRRW(I) + end case; + end process csr_write_data; + + + -- Control and Status Registers - Write Access -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + csr_write_access: process(rstn_i, clk_i) + variable cause_v : std_ulogic_vector(6 downto 0); + begin + -- NOTE: If = true then evaluates to '-'. Register that reset to do + -- NOT actually have a real reset by default (def_rst_val_c = '-') and have to be explicitly initialized by software! + -- see: https://forums.xilinx.com/t5/General-Technical-Discussion/quot-Don-t-care-quot-reset-value/td-p/412845 + if (rstn_i = '0') then + csr.we <= '0'; + -- + csr.mstatus_mie <= '0'; + csr.mstatus_mpie <= '0'; + csr.mstatus_mpp <= (others => '0'); + csr.privilege <= priv_mode_m_c; -- start in MACHINE mode + csr.mie_msie <= def_rst_val_c; + csr.mie_meie <= def_rst_val_c; + csr.mie_mtie <= def_rst_val_c; + csr.mie_firqe <= (others => def_rst_val_c); + csr.mtvec <= (others => def_rst_val_c); + csr.mscratch <= x"19880704"; + csr.mepc <= (others => def_rst_val_c); + csr.mcause <= (others => def_rst_val_c); + csr.mtval <= (others => def_rst_val_c); + csr.mip_clr <= (others => def_rst_val_c); + -- + csr.pmpcfg <= (others => (others => '0')); + csr.pmpaddr <= (others => (others => def_rst_val_c)); + -- + csr.mhpmevent <= (others => (others => def_rst_val_c)); + -- + csr.mcounteren_cy <= def_rst_val_c; + csr.mcounteren_tm <= def_rst_val_c; + csr.mcounteren_ir <= def_rst_val_c; + -- + csr.mcountinhibit_cy <= def_rst_val_c; + csr.mcountinhibit_ir <= def_rst_val_c; + csr.mcountinhibit_hpm <= (others => def_rst_val_c); + -- + csr.fflags <= (others => def_rst_val_c); + csr.frm <= (others => def_rst_val_c); + -- + csr.dcsr_ebreakm <= '0'; + csr.dcsr_ebreaku <= '0'; + csr.dcsr_step <= '0'; + csr.dcsr_prv <= (others => def_rst_val_c); + csr.dcsr_cause <= (others => def_rst_val_c); + csr.dpc <= (others => def_rst_val_c); + csr.dscratch0 <= (others => def_rst_val_c); + + elsif rising_edge(clk_i) then + -- write access? -- + csr.we <= csr.we_nxt; + + -- defaults -- + csr.mip_clr <= (others => '0'); + + if (CPU_EXTENSION_RISCV_Zicsr = true) then + -- -------------------------------------------------------------------------------- + -- CSR access by application software + -- -------------------------------------------------------------------------------- + if (csr.we = '1') and (trap_ctrl.exc_buf(exception_iillegal_c) = '0') then -- manual write access and not illegal instruction + + -- user floating-point CSRs -- + -- -------------------------------------------------------------------- + if (CPU_EXTENSION_RISCV_Zfinx = true) then -- floating point CSR class + if (csr.addr(11 downto 2) = csr_class_float_c) then + if (csr.addr(1 downto 0) = "01") then -- R/W: fflags - floating-point (FPU) exception flags + csr.fflags <= csr.wdata(4 downto 0); + elsif (csr.addr(1 downto 0) = "10") then -- R/W: frm - floating-point (FPU) rounding mode + csr.frm <= csr.wdata(2 downto 0); + elsif (csr.addr(1 downto 0) = "11") then -- R/W: fcsr - floating-point (FPU) control/status (frm + fflags) + csr.frm <= csr.wdata(7 downto 5); + csr.fflags <= csr.wdata(4 downto 0); + end if; + end if; + end if; + + -- machine trap setup -- + -- -------------------------------------------------------------------- + if (csr.addr(11 downto 3) = csr_class_setup_c) then -- trap setup CSR class + -- R/W: mstatus - machine status register -- + if (csr.addr(2 downto 0) = csr_mstatus_c(2 downto 0)) then + csr.mstatus_mie <= csr.wdata(03); + csr.mstatus_mpie <= csr.wdata(07); + if (CPU_EXTENSION_RISCV_U = true) then -- user mode implemented + csr.mstatus_mpp(0) <= csr.wdata(11) or csr.wdata(12); + csr.mstatus_mpp(1) <= csr.wdata(11) or csr.wdata(12); + end if; + end if; + -- R/W: mie - machine interrupt enable register -- + if (csr.addr(2 downto 0) = csr_mie_c(2 downto 0)) then + csr.mie_msie <= csr.wdata(03); -- machine SW IRQ enable + csr.mie_mtie <= csr.wdata(07); -- machine TIMER IRQ enable + csr.mie_meie <= csr.wdata(11); -- machine EXT IRQ enable + for i in 0 to 15 loop -- fast interrupt channels 0..15 + csr.mie_firqe(i) <= csr.wdata(16+i); + end loop; -- i + end if; + -- R/W: mtvec - machine trap-handler base address (for ALL exceptions) -- + if (csr.addr(2 downto 0) = csr_mtvec_c(2 downto 0)) then + csr.mtvec <= csr.wdata(data_width_c-1 downto 2) & "00"; -- mtvec.MODE=0 + end if; + -- R/W: mcounteren - machine counter enable register -- + if (CPU_EXTENSION_RISCV_U = true) then -- this CSR is hardwired to zero if user mode is not implemented + if (csr.addr(2 downto 0) = csr_mcounteren_c(2 downto 0)) then + csr.mcounteren_cy <= csr.wdata(0); -- enable user-level access to cycle[h] + csr.mcounteren_tm <= csr.wdata(1); -- enable user-level access to time[h] + csr.mcounteren_ir <= csr.wdata(2); -- enable user-level access to instret[h] + end if; + end if; + end if; + + -- machine trap handling -- + -- -------------------------------------------------------------------- + if (csr.addr(11 downto 4) = csr_class_trap_c) then -- machine trap handling CSR class + -- R/W: mscratch - machine scratch register -- + if (csr.addr(3 downto 0) = csr_mscratch_c(3 downto 0)) then + csr.mscratch <= csr.wdata; + end if; + -- R/W: mepc - machine exception program counter -- + if (csr.addr(3 downto 0) = csr_mepc_c(3 downto 0)) then + csr.mepc <= csr.wdata; + end if; + -- R/W: mcause - machine trap cause -- + if (csr.addr(3 downto 0) = csr_mcause_c(3 downto 0)) then + csr.mcause(csr.mcause'left) <= csr.wdata(31); -- 1: async/interrupt, 0: sync/exception + csr.mcause(4 downto 0) <= csr.wdata(4 downto 0); -- identifier + end if; + -- R/W: mip - machine interrupt pending -- + if (csr.addr(3 downto 0) = csr_mip_c(3 downto 0)) then + csr.mip_clr <= csr.wdata(31 downto 16); + end if; + end if; + + -- physical memory protection: R/W: pmpcfg* - PMP configuration registers -- + -- -------------------------------------------------------------------- + if (PMP_NUM_REGIONS > 0) then + if (csr.addr(11 downto 4) = csr_class_pmpcfg_c) then -- pmp configuration CSR class + for i in 0 to PMP_NUM_REGIONS-1 loop + if (csr.addr(3 downto 0) = std_ulogic_vector(to_unsigned(i, 4))) then + if (csr.pmpcfg(i)(7) = '0') then -- unlocked pmpcfg access + csr.pmpcfg(i)(0) <= csr.wdata((i mod 4)*8+0); -- R (rights.read) + csr.pmpcfg(i)(1) <= csr.wdata((i mod 4)*8+1); -- W (rights.write) + csr.pmpcfg(i)(2) <= csr.wdata((i mod 4)*8+2); -- X (rights.execute) + csr.pmpcfg(i)(3) <= csr.wdata((i mod 4)*8+3) and csr.wdata((i mod 4)*8+4); -- A_L + csr.pmpcfg(i)(4) <= csr.wdata((i mod 4)*8+3) and csr.wdata((i mod 4)*8+4); -- A_H - NAPOT/OFF only + csr.pmpcfg(i)(5) <= '0'; -- reserved + csr.pmpcfg(i)(6) <= '0'; -- reserved + csr.pmpcfg(i)(7) <= csr.wdata((i mod 4)*8+7); -- L (locked / rights also enforced in m-mode) + end if; + end if; + end loop; -- i (PMP regions) + end if; + end if; + + -- physical memory protection: R/W: pmpaddr* - PMP address registers -- + -- -------------------------------------------------------------------- + if (PMP_NUM_REGIONS > 0) then + if (csr.addr(11 downto 4) = csr_pmpaddr0_c(11 downto 4)) or (csr.addr(11 downto 4) = csr_pmpaddr16_c(11 downto 4)) or + (csr.addr(11 downto 4) = csr_pmpaddr32_c(11 downto 4)) or (csr.addr(11 downto 4) = csr_pmpaddr48_c(11 downto 4)) then + for i in 0 to PMP_NUM_REGIONS-1 loop + if (csr.addr(6 downto 0) = std_ulogic_vector(unsigned(csr_pmpaddr0_c(6 downto 0)) + i)) and (csr.pmpcfg(i)(7) = '0') then -- unlocked pmpaddr access + csr.pmpaddr(i) <= csr.wdata; + csr.pmpaddr(i)(index_size_f(PMP_MIN_GRANULARITY)-4 downto 0) <= (others => '1'); + end if; + end loop; -- i (PMP regions) + end if; + end if; + + -- machine counter setup -- + -- -------------------------------------------------------------------- + if (csr.addr(11 downto 5) = csr_cnt_setup_c) then -- counter configuration CSR class + -- R/W: mcountinhibit - machine counter-inhibit register -- + if (csr.addr(4 downto 0) = csr_mcountinhibit_c(4 downto 0)) then + csr.mcountinhibit_cy <= csr.wdata(0); -- enable auto-increment of [m]cycle[h] counter + csr.mcountinhibit_ir <= csr.wdata(2); -- enable auto-increment of [m]instret[h] counter + if (HPM_NUM_CNTS > 0) then -- any HPMs available? + csr.mcountinhibit_hpm <= csr.wdata(csr.mcountinhibit_hpm'left+3 downto 3); -- enable auto-increment of [m]hpmcounter*[h] counter + end if; + end if; + -- R/W: mhpmevent - machine performance-monitors event selector -- + if (HPM_NUM_CNTS > 0) and (CPU_EXTENSION_RISCV_Zihpm = true) then + for i in 0 to HPM_NUM_CNTS-1 loop + if (csr.addr(4 downto 0) = std_ulogic_vector(to_unsigned(i+3, 5))) then + csr.mhpmevent(i) <= csr.wdata(csr.mhpmevent(i)'left downto 0); + end if; + csr.mhpmevent(i)(hpmcnt_event_never_c) <= '0'; -- would be used for "TIME" + end loop; -- i (CSRs) + end if; + end if; + + -- debug mode CSRs -- + -- -------------------------------------------------------------------- + if (CPU_EXTENSION_RISCV_DEBUG = true) then + if (csr.addr(11 downto 2) = csr_class_debug_c) then -- debug CSR class + -- R/W: dcsr - debug mode control and status register -- + if (csr.addr(1 downto 0) = csr_dcsr_c(1 downto 0)) then + csr.dcsr_ebreakm <= csr.wdata(15); + csr.dcsr_step <= csr.wdata(2); + if (CPU_EXTENSION_RISCV_U = true) then -- user mode implemented + csr.dcsr_ebreaku <= csr.wdata(12); + csr.dcsr_prv(0) <= csr.wdata(1) or csr.wdata(0); + csr.dcsr_prv(1) <= csr.wdata(1) or csr.wdata(0); + else -- only machine mode is available + csr.dcsr_prv <= priv_mode_m_c; + end if; + end if; + -- R/W: dpc - debug mode program counter -- + if (csr.addr(1 downto 0) = csr_dpc_c(1 downto 0)) then + csr.dpc <= csr.wdata(data_width_c-1 downto 1) & '0'; + end if; + -- R/W: dscratch0 - debug mode scratch register 0 -- + if (csr.addr(1 downto 0) = csr_dscratch0_c(1 downto 0)) then + csr.dscratch0 <= csr.wdata; + end if; + end if; + end if; + + + -- -------------------------------------------------------------------------------- + -- CSR access by hardware + -- -------------------------------------------------------------------------------- + else + + -- floating-point (FPU) exception flags -- + -- -------------------------------------------------------------------- + if (CPU_EXTENSION_RISCV_Zfinx = true) and (trap_ctrl.exc_buf(exception_iillegal_c) = '0') then -- no illegal instruction + csr.fflags <= csr.fflags or fpu_flags_i; -- accumulate flags ("accrued exception flags") + end if; + + -- mcause, mepc, mtval: write machine trap cause, PC and trap value register -- + -- -------------------------------------------------------------------- + if (trap_ctrl.env_start_ack = '1') then -- trap handler starting? + + if (CPU_EXTENSION_RISCV_DEBUG = false) or ((trap_ctrl.cause(5) = '0') and -- update mtval/mepc/mcause only when NOT ENTRY debug mode exception + (debug_ctrl.running = '0')) then -- and NOT IN debug mode + + -- trap cause ID code -- + csr.mcause(csr.mcause'left) <= trap_ctrl.cause(trap_ctrl.cause'left); -- 1: interrupt, 0: exception + csr.mcause(4 downto 0) <= trap_ctrl.cause(4 downto 0); -- identifier + + -- trap PC -- + if (trap_ctrl.cause(trap_ctrl.cause'left) = '1') then -- for INTERRUPTS (async source) + csr.mepc <= execute_engine.pc(data_width_c-1 downto 1) & '0'; -- this is the CURRENT pc = interrupted instruction + else -- for sync. EXCEPTIONS (sync source) + csr.mepc <= execute_engine.last_pc(data_width_c-1 downto 1) & '0'; -- this is the LAST pc = last executed instruction + end if; + + -- trap value -- + cause_v := trap_ctrl.cause; + cause_v(5) := '0'; -- bit 5 is always zero here (= normal trapping), so we do not need to check that again + case cause_v is + when trap_ima_c | trap_iba_c => -- misaligned instruction address OR instruction access error + csr.mtval <= execute_engine.pc(data_width_c-1 downto 1) & '0'; -- address of faulting instruction + when trap_brk_c => -- breakpoint + csr.mtval <= execute_engine.last_pc(data_width_c-1 downto 1) & '0'; -- address of breakpoint instruction + when trap_lma_c | trap_lbe_c | trap_sma_c | trap_sbe_c => -- misaligned load/store address OR load/store access error + csr.mtval <= mar_i; -- faulting data access address + when trap_iil_c => -- illegal instruction + csr.mtval <= execute_engine.i_reg_last; -- faulting instruction itself + when others => -- everything else including all interrupts + csr.mtval <= (others => '0'); + end case; + + end if; + + -- DEBUG MODE (trap) enter: write dpc and dcsr -- + -- -------------------------------------------------------------------- + if (CPU_EXTENSION_RISCV_DEBUG = true) and (trap_ctrl.cause(5) = '1') and (debug_ctrl.running = '0') then -- debug mode entry exception + + -- trap cause ID code -- + csr.dcsr_cause <= trap_ctrl.cause(2 downto 0); -- why did we enter debug mode? + -- current privilege mode when debug mode was entered -- + csr.dcsr_prv <= csr.privilege; + + -- trap PC -- + if (trap_ctrl.cause(trap_ctrl.cause'left) = '1') then -- for INTERRUPTS (async source) + csr.dpc <= execute_engine.pc(data_width_c-1 downto 1) & '0'; -- this is the CURRENT pc = interrupted instruction + else -- for sync. EXCEPTIONS (sync source) + csr.dpc <= execute_engine.last_pc(data_width_c-1 downto 1) & '0'; -- this is the LAST pc = last executed instruction + end if; + + end if; + + end if; + + -- mstatus: context switch -- + -- -------------------------------------------------------------------- + -- ENTER: trap handling starting? + if (trap_ctrl.env_start_ack = '1') then -- trap handler starting? + + if (CPU_EXTENSION_RISCV_DEBUG = false) or -- normal trapping (debug mode NOT implemented) + ((debug_ctrl.running = '0') and (trap_ctrl.cause(5) = '0')) then -- not IN debug mode and not ENTERING debug mode + csr.mstatus_mie <= '0'; -- disable interrupts + csr.mstatus_mpie <= csr.mstatus_mie; -- buffer previous mie state + if (CPU_EXTENSION_RISCV_U = true) then -- implement user mode + csr.privilege <= priv_mode_m_c; -- execute trap in machine mode + csr.mstatus_mpp <= csr.privilege; -- buffer previous privilege mode + end if; + end if; + + -- EXIT: return from exception + elsif (trap_ctrl.env_end = '1') then + if (CPU_EXTENSION_RISCV_DEBUG = true) and (debug_ctrl.running = '1') then -- return from debug mode + if (CPU_EXTENSION_RISCV_U = true) then -- implement user mode + csr.privilege <= csr.dcsr_prv; + end if; + else -- return from "normal trap" + csr.mstatus_mie <= csr.mstatus_mpie; -- restore global IRQ enable flag + csr.mstatus_mpie <= '1'; + if (CPU_EXTENSION_RISCV_U = true) then -- implement user mode + csr.privilege <= csr.mstatus_mpp; -- go back to previous privilege mode + csr.mstatus_mpp <= (others => '0'); + end if; + end if; + end if; + + end if; -- /hardware csr access + end if; + + -- -------------------------------------------------------------------------------- + -- override write access for disabled functions + -- -------------------------------------------------------------------------------- + + -- user mode disabled -- + if (CPU_EXTENSION_RISCV_U = false) then + csr.privilege <= priv_mode_m_c; + csr.mstatus_mpp <= priv_mode_m_c; + csr.mcounteren_cy <= '0'; + csr.mcounteren_tm <= '0'; + csr.mcounteren_ir <= '0'; + csr.dcsr_ebreaku <= '0'; + csr.dcsr_prv <= priv_mode_m_c; + end if; + + -- pmp disabled -- + if (PMP_NUM_REGIONS = 0) then + csr.pmpcfg <= (others => (others => '0')); + csr.pmpaddr <= (others => (others => '1')); + end if; + + -- hpms disabled -- + if (HPM_NUM_CNTS = 0) then + csr.mhpmevent <= (others => (others => '0')); + csr.mcountinhibit_hpm <= (others => '0'); + end if; + + -- cpu counters disabled -- + if (CPU_CNT_WIDTH = 0) then + csr.mcounteren_cy <= '0'; + csr.mcounteren_ir <= '0'; + csr.mcountinhibit_cy <= '0'; + csr.mcountinhibit_ir <= '0'; + end if; + + -- floating-point extension disabled -- + if (CPU_EXTENSION_RISCV_Zfinx = false) then + csr.fflags <= (others => '0'); + csr.frm <= (others => '0'); + end if; + + -- debug mode disabled -- + if (CPU_EXTENSION_RISCV_DEBUG = false) then + csr.dcsr_ebreakm <= '0'; + csr.dcsr_ebreaku <= '0'; + csr.dcsr_step <= '0'; + csr.dcsr_cause <= (others => '0'); + csr.dpc <= (others => '0'); + csr.dscratch0 <= (others => '0'); + end if; + + end if; + end process csr_write_access; + + -- decode current privilege mode -- + csr.privilege_rd <= priv_mode_m_c when (CPU_EXTENSION_RISCV_DEBUG = true) and (debug_ctrl.running = '1') else csr.privilege; -- effective privilege mode ("machine" when in debug mode) + csr.priv_m_mode <= '1' when (csr.privilege_rd = priv_mode_m_c) else '0'; + csr.priv_u_mode <= '1' when (csr.privilege_rd = priv_mode_u_c) and (CPU_EXTENSION_RISCV_U = true) else '0'; + + -- PMP configuration output to bus unit -- + pmp_output: process(csr) + begin + pmp_addr_o <= (others => (others => '0')); + pmp_ctrl_o <= (others => (others => '0')); + if (PMP_NUM_REGIONS /= 0) then + for i in 0 to PMP_NUM_REGIONS-1 loop + pmp_addr_o(i) <= csr.pmpaddr(i) & "11"; + pmp_addr_o(i)(index_size_f(PMP_MIN_GRANULARITY)-4 downto 0) <= (others => '1'); + pmp_ctrl_o(i) <= csr.pmpcfg(i); + end loop; -- i + end if; + end process pmp_output; + + -- PMP config read dummy -- + pmp_rd_dummy: process(csr) + begin + csr.pmpcfg_rd <= (others => (others => '0')); + if (PMP_NUM_REGIONS /= 0) then + for i in 0 to PMP_NUM_REGIONS-1 loop + csr.pmpcfg_rd(i) <= csr.pmpcfg(i); + end loop; -- i + end if; + end process pmp_rd_dummy; + + + -- Control and Status Registers - Counters ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + csr_counters: process(rstn_i, clk_i) + begin + -- Counter CSRs (each counter is split into two 32-bit counters - coupled via an MSB overflow FF) + if (rstn_i = '0') then + csr.mcycle <= (others => def_rst_val_c); + csr.mcycle_ovfl <= (others => def_rst_val_c); + csr.mcycleh <= (others => def_rst_val_c); + csr.minstret <= (others => def_rst_val_c); + csr.minstret_ovfl <= (others => def_rst_val_c); + csr.minstreth <= (others => def_rst_val_c); + csr.mhpmcounter <= (others => (others => def_rst_val_c)); + csr.mhpmcounter_ovfl <= (others => (others => def_rst_val_c)); + csr.mhpmcounterh <= (others => (others => def_rst_val_c)); + elsif rising_edge(clk_i) then + + -- [m]cycle -- + if (cpu_cnt_lo_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then + csr.mcycle_ovfl(0) <= csr.mcycle_nxt(csr.mcycle_nxt'left) and (not csr.mcountinhibit_cy); + if (csr.we = '1') and (csr.addr = csr_mcycle_c) then -- write access + csr.mcycle(cpu_cnt_lo_width_c-1 downto 0) <= csr.wdata(cpu_cnt_lo_width_c-1 downto 0); + elsif (csr.mcountinhibit_cy = '0') and (cnt_event(hpmcnt_event_cy_c) = '1') then -- non-inhibited automatic update + csr.mcycle(cpu_cnt_lo_width_c-1 downto 0) <= csr.mcycle_nxt(cpu_cnt_lo_width_c-1 downto 0); + end if; + else + csr.mcycle <= (others => '-'); + csr.mcycle_ovfl(0) <= '-'; + end if; + + -- [m]cycleh -- + if (cpu_cnt_hi_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then + if (csr.we = '1') and (csr.addr = csr_mcycleh_c) then -- write access + csr.mcycleh(cpu_cnt_hi_width_c-1 downto 0) <= csr.wdata(cpu_cnt_hi_width_c-1 downto 0); + else -- automatic update + csr.mcycleh(cpu_cnt_hi_width_c-1 downto 0) <= std_ulogic_vector(unsigned(csr.mcycleh(cpu_cnt_hi_width_c-1 downto 0)) + unsigned(csr.mcycle_ovfl)); + end if; + else + csr.mcycleh <= (others => '-'); + end if; + + + -- [m]instret -- + if (cpu_cnt_lo_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then + csr.minstret_ovfl(0) <= csr.minstret_nxt(csr.minstret_nxt'left) and (not csr.mcountinhibit_ir); + if (csr.we = '1') and (csr.addr = csr_minstret_c) then -- write access + csr.minstret(cpu_cnt_lo_width_c-1 downto 0) <= csr.wdata(cpu_cnt_lo_width_c-1 downto 0); + elsif (csr.mcountinhibit_ir = '0') and (cnt_event(hpmcnt_event_ir_c) = '1') then -- non-inhibited automatic update + csr.minstret(cpu_cnt_lo_width_c-1 downto 0) <= csr.minstret_nxt(cpu_cnt_lo_width_c-1 downto 0); + end if; + else + csr.minstret <= (others => '-'); + csr.minstret_ovfl(0) <= '-'; + end if; + + -- [m]instreth -- + if (cpu_cnt_hi_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then + if (csr.we = '1') and (csr.addr = csr_minstreth_c) then -- write access + csr.minstreth(cpu_cnt_hi_width_c-1 downto 0) <= csr.wdata(cpu_cnt_hi_width_c-1 downto 0); + else -- automatic update + csr.minstreth(cpu_cnt_hi_width_c-1 downto 0) <= std_ulogic_vector(unsigned(csr.minstreth(cpu_cnt_hi_width_c-1 downto 0)) + unsigned(csr.minstret_ovfl)); + end if; + else + csr.minstreth <= (others => '-'); + end if; + + + -- [machine] hardware performance monitors (counters) -- + for i in 0 to HPM_NUM_CNTS-1 loop + + -- [m]hpmcounter* -- + if (hpm_cnt_lo_width_c > 0) and (CPU_EXTENSION_RISCV_Zihpm = true) then + csr.mhpmcounter_ovfl(i)(0) <= csr.mhpmcounter_nxt(i)(csr.mhpmcounter_nxt(i)'left) and (not csr.mcountinhibit_hpm(i)); + if (csr.we = '1') and (csr.addr = std_ulogic_vector(unsigned(csr_mhpmcounter3_c) + i)) then -- write access + csr.mhpmcounter(i)(hpm_cnt_lo_width_c-1 downto 0) <= csr.wdata(hpm_cnt_lo_width_c-1 downto 0); + elsif (csr.mcountinhibit_hpm(i) = '0') and (hpmcnt_trigger(i) = '1') then -- non-inhibited automatic update + csr.mhpmcounter(i)(hpm_cnt_lo_width_c-1 downto 0) <= csr.mhpmcounter_nxt(i)(hpm_cnt_lo_width_c-1 downto 0); + end if; + else + csr.mhpmcounter(i) <= (others => '-'); + csr.mhpmcounter_ovfl(i)(0) <= '-'; + end if; + + -- [m]hpmcounter*h -- + if (hpm_cnt_hi_width_c > 0) and (CPU_EXTENSION_RISCV_Zihpm = true) then + if (csr.we = '1') and (csr.addr = std_ulogic_vector(unsigned(csr_mhpmcounter3h_c) + i)) then -- write access + csr.mhpmcounterh(i)(hpm_cnt_hi_width_c-1 downto 0) <= csr.wdata(hpm_cnt_hi_width_c-1 downto 0); + else -- automatic update + csr.mhpmcounterh(i)(hpm_cnt_hi_width_c-1 downto 0) <= std_ulogic_vector(unsigned(csr.mhpmcounterh(i)(hpm_cnt_hi_width_c-1 downto 0)) + unsigned(csr.mhpmcounter_ovfl(i))); + end if; + else + csr.mhpmcounterh(i) <= (others => '-'); + end if; + + end loop; -- i + + end if; + end process csr_counters; + + + -- mcycle & minstret increment LOW -- + csr.mcycle_nxt <= std_ulogic_vector(unsigned('0' & csr.mcycle) + 1); + csr.minstret_nxt <= std_ulogic_vector(unsigned('0' & csr.minstret) + 1); + + -- hpm counter increment LOW -- + hmp_cnt_lo_inc: + for i in 0 to HPM_NUM_CNTS-1 generate + csr.mhpmcounter_nxt(i) <= std_ulogic_vector(unsigned('0' & csr.mhpmcounter(i)) + 1); + end generate; + + + -- hpm counter read -- + hpm_rd_dummy: process(csr) + begin + csr.mhpmcounter_rd <= (others => (others => '0')); + csr.mhpmcounterh_rd <= (others => (others => '0')); + if (HPM_NUM_CNTS /= 0) and (CPU_EXTENSION_RISCV_Zihpm = true) then + for i in 0 to HPM_NUM_CNTS-1 loop + if (hpm_cnt_lo_width_c > 0) then + csr.mhpmcounter_rd(i)(hpm_cnt_lo_width_c-1 downto 0) <= csr.mhpmcounter(i)(hpm_cnt_lo_width_c-1 downto 0); + end if; + if (hpm_cnt_hi_width_c > 0) then + csr.mhpmcounterh_rd(i)(hpm_cnt_hi_width_c-1 downto 0) <= csr.mhpmcounterh(i)(hpm_cnt_hi_width_c-1 downto 0); + end if; + end loop; -- i + end if; + end process hpm_rd_dummy; + + + -- Hardware Performance Monitor - Counter Event Control ----------------------------------- + -- ------------------------------------------------------------------------------------------- + hpmcnt_ctrl: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + hpmcnt_trigger <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- enable selected triggers by ANDing actual events and according CSR configuration bits -- + -- OR everything to see if counter should increment -- + hpmcnt_trigger <= (others => '0'); -- default + if (HPM_NUM_CNTS /= 0) then + for i in 0 to HPM_NUM_CNTS-1 loop + hpmcnt_trigger(i) <= or_reduce_f(cnt_event and csr.mhpmevent(i)(cnt_event'left downto 0)); + end loop; -- i + end if; + end if; + end process hpmcnt_ctrl; + + -- counter event trigger - RISC-V-specific -- + cnt_event(hpmcnt_event_cy_c) <= not execute_engine.sleep; -- active cycle + cnt_event(hpmcnt_event_never_c) <= '0'; -- undefined (never) + cnt_event(hpmcnt_event_ir_c) <= '1' when (execute_engine.state = EXECUTE) else '0'; -- retired instruction + + -- counter event trigger - custom / NEORV32-specific -- + cnt_event(hpmcnt_event_cir_c) <= '1' when (execute_engine.state = EXECUTE) and (execute_engine.is_ci = '1') else '0'; -- retired compressed instruction + cnt_event(hpmcnt_event_wait_if_c) <= '1' when (fetch_engine.state = IFETCH_ISSUE) and (fetch_engine.state_prev = IFETCH_ISSUE) else '0'; -- instruction fetch memory wait cycle + cnt_event(hpmcnt_event_wait_ii_c) <= '1' when (execute_engine.state = DISPATCH) and (execute_engine.state_prev = DISPATCH) else '0'; -- instruction issue wait cycle + cnt_event(hpmcnt_event_wait_mc_c) <= '1' when (execute_engine.state = ALU_WAIT) else '0'; -- multi-cycle alu-operation wait cycle + + cnt_event(hpmcnt_event_load_c) <= '1' when (ctrl(ctrl_bus_rd_c) = '1') else '0'; -- load operation + cnt_event(hpmcnt_event_store_c) <= '1' when (ctrl(ctrl_bus_wr_c) = '1') else '0'; -- store operation + cnt_event(hpmcnt_event_wait_ls_c) <= '1' when (execute_engine.state = LOADSTORE_2) and (execute_engine.state_prev = LOADSTORE_2) else '0'; -- load/store memory wait cycle + + cnt_event(hpmcnt_event_jump_c) <= '1' when (execute_engine.state = BRANCH) and (execute_engine.i_reg(instr_opcode_lsb_c+2) = '1') else '0'; -- jump (unconditional) + cnt_event(hpmcnt_event_branch_c) <= '1' when (execute_engine.state = BRANCH) and (execute_engine.i_reg(instr_opcode_lsb_c+2) = '0') else '0'; -- branch (conditional, taken or not taken) + cnt_event(hpmcnt_event_tbranch_c) <= '1' when (execute_engine.state = BRANCH) and (execute_engine.i_reg(instr_opcode_lsb_c+2) = '0') and (execute_engine.branch_taken = '1') else '0'; -- taken branch (conditional) + + cnt_event(hpmcnt_event_trap_c) <= '1' when (trap_ctrl.env_start_ack = '1') else '0'; -- entered trap + cnt_event(hpmcnt_event_illegal_c) <= '1' when (trap_ctrl.env_start_ack = '1') and (trap_ctrl.cause = trap_iil_c) else '0'; -- illegal operation + + + -- Control and Status Registers - Read Access --------------------------------------------- + -- ------------------------------------------------------------------------------------------- + csr_read_access: process(rstn_i, clk_i) + variable csr_addr_v : std_ulogic_vector(11 downto 0); + begin + if rising_edge(clk_i) then + csr.rdata <= (others => '0'); -- default output + if (CPU_EXTENSION_RISCV_Zicsr = true) then + csr_addr_v(11 downto 10) := csr.addr(11 downto 10); + csr_addr_v(09 downto 08) := (others => csr.addr(8)); -- !!! WARNING: MACHINE (11) and USER (00) registers ONLY !!! + csr_addr_v(07 downto 00) := csr.addr(07 downto 00); + case csr_addr_v is + + -- floating-point CSRs -- + -- -------------------------------------------------------------------- + when csr_fflags_c => -- fflags (r/w): floating-point (FPU) exception flags + if (CPU_EXTENSION_RISCV_Zfinx = true) then csr.rdata(4 downto 0) <= csr.fflags; else NULL; end if; + when csr_frm_c => -- frm (r/w): floating-point (FPU) rounding mode + if (CPU_EXTENSION_RISCV_Zfinx = true) then csr.rdata(2 downto 0) <= csr.frm; else NULL; end if; + when csr_fcsr_c => -- fcsr (r/w): floating-point (FPU) control/status (frm + fflags) + if (CPU_EXTENSION_RISCV_Zfinx = true) then csr.rdata(7 downto 5) <= csr.frm; csr.rdata(4 downto 0) <= csr.fflags; else NULL; end if; + + -- machine trap setup -- + -- -------------------------------------------------------------------- + when csr_mstatus_c => -- mstatus (r/w): machine status register + csr.rdata(03) <= csr.mstatus_mie; -- MIE + csr.rdata(07) <= csr.mstatus_mpie; -- MPIE + csr.rdata(11) <= csr.mstatus_mpp(0); -- MPP: machine previous privilege mode low + csr.rdata(12) <= csr.mstatus_mpp(1); -- MPP: machine previous privilege mode high + when csr_misa_c => -- misa (r/-): ISA and extensions + csr.rdata(00) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_A); -- A CPU extension + csr.rdata(01) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_B); -- B CPU extension + csr.rdata(02) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_C); -- C CPU extension + csr.rdata(04) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_E); -- E CPU extension + csr.rdata(08) <= not bool_to_ulogic_f(CPU_EXTENSION_RISCV_E); -- I CPU extension (if not E) + csr.rdata(12) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_M); -- M CPU extension + csr.rdata(20) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_U); -- U CPU extension + csr.rdata(23) <= '1'; -- X CPU extension (non-std extensions) + csr.rdata(30) <= '1'; -- 32-bit architecture (MXL lo) + csr.rdata(31) <= '0'; -- 32-bit architecture (MXL hi) + when csr_mie_c => -- mie (r/w): machine interrupt-enable register + csr.rdata(03) <= csr.mie_msie; -- machine software IRQ enable + csr.rdata(07) <= csr.mie_mtie; -- machine timer IRQ enable + csr.rdata(11) <= csr.mie_meie; -- machine external IRQ enable + for i in 0 to 15 loop -- fast interrupt channels 0..15 enable + csr.rdata(16+i) <= csr.mie_firqe(i); + end loop; -- i + when csr_mtvec_c => -- mtvec (r/w): machine trap-handler base address (for ALL exceptions) + csr.rdata <= csr.mtvec(data_width_c-1 downto 2) & "00"; -- mtvec.MODE=0 + when csr_mcounteren_c => -- mcounteren (r/w): machine counter enable register + if (CPU_EXTENSION_RISCV_U = false) then -- this CSR is hardwired to zero if user mode is not implemented + NULL; + else + csr.rdata(0) <= csr.mcounteren_cy; -- enable user-level access to cycle[h] + csr.rdata(1) <= csr.mcounteren_tm; -- enable user-level access to time[h] + csr.rdata(2) <= csr.mcounteren_ir; -- enable user-level access to instret[h] + end if; + + -- machine trap handling -- + -- -------------------------------------------------------------------- + when csr_mscratch_c => -- mscratch (r/w): machine scratch register + csr.rdata <= csr.mscratch; + when csr_mepc_c => -- mepc (r/w): machine exception program counter + csr.rdata <= csr.mepc(data_width_c-1 downto 1) & '0'; + when csr_mcause_c => -- mcause (r/w): machine trap cause + csr.rdata(31) <= csr.mcause(csr.mcause'left); + csr.rdata(csr.mcause'left-1 downto 0) <= csr.mcause(csr.mcause'left-1 downto 0); + when csr_mtval_c => -- mtval (r/-): machine bad address or instruction + csr.rdata <= csr.mtval; + when csr_mip_c => -- mip (r/w): machine interrupt pending + csr.rdata(03) <= trap_ctrl.irq_buf(interrupt_msw_irq_c); + csr.rdata(07) <= trap_ctrl.irq_buf(interrupt_mtime_irq_c); + csr.rdata(11) <= trap_ctrl.irq_buf(interrupt_mext_irq_c); + for i in 0 to 15 loop -- fast interrupt channels 0..15 pending + csr.rdata(16+i) <= trap_ctrl.irq_buf(interrupt_firq_0_c+i); + end loop; -- i + + -- physical memory protection - configuration (r/w) -- + -- -------------------------------------------------------------------- + when csr_pmpcfg0_c => if (PMP_NUM_REGIONS > 00) then csr.rdata <= csr.pmpcfg_rd(03) & csr.pmpcfg_rd(02) & csr.pmpcfg_rd(01) & csr.pmpcfg_rd(00); else NULL; end if; + when csr_pmpcfg1_c => if (PMP_NUM_REGIONS > 03) then csr.rdata <= csr.pmpcfg_rd(07) & csr.pmpcfg_rd(06) & csr.pmpcfg_rd(05) & csr.pmpcfg_rd(04); else NULL; end if; + when csr_pmpcfg2_c => if (PMP_NUM_REGIONS > 07) then csr.rdata <= csr.pmpcfg_rd(11) & csr.pmpcfg_rd(10) & csr.pmpcfg_rd(09) & csr.pmpcfg_rd(08); else NULL; end if; + when csr_pmpcfg3_c => if (PMP_NUM_REGIONS > 11) then csr.rdata <= csr.pmpcfg_rd(15) & csr.pmpcfg_rd(14) & csr.pmpcfg_rd(13) & csr.pmpcfg_rd(12); else NULL; end if; + when csr_pmpcfg4_c => if (PMP_NUM_REGIONS > 15) then csr.rdata <= csr.pmpcfg_rd(19) & csr.pmpcfg_rd(18) & csr.pmpcfg_rd(17) & csr.pmpcfg_rd(16); else NULL; end if; + when csr_pmpcfg5_c => if (PMP_NUM_REGIONS > 19) then csr.rdata <= csr.pmpcfg_rd(23) & csr.pmpcfg_rd(22) & csr.pmpcfg_rd(21) & csr.pmpcfg_rd(20); else NULL; end if; + when csr_pmpcfg6_c => if (PMP_NUM_REGIONS > 23) then csr.rdata <= csr.pmpcfg_rd(27) & csr.pmpcfg_rd(26) & csr.pmpcfg_rd(25) & csr.pmpcfg_rd(24); else NULL; end if; + when csr_pmpcfg7_c => if (PMP_NUM_REGIONS > 27) then csr.rdata <= csr.pmpcfg_rd(31) & csr.pmpcfg_rd(30) & csr.pmpcfg_rd(29) & csr.pmpcfg_rd(28); else NULL; end if; + when csr_pmpcfg8_c => if (PMP_NUM_REGIONS > 31) then csr.rdata <= csr.pmpcfg_rd(35) & csr.pmpcfg_rd(34) & csr.pmpcfg_rd(33) & csr.pmpcfg_rd(32); else NULL; end if; + when csr_pmpcfg9_c => if (PMP_NUM_REGIONS > 35) then csr.rdata <= csr.pmpcfg_rd(39) & csr.pmpcfg_rd(38) & csr.pmpcfg_rd(37) & csr.pmpcfg_rd(36); else NULL; end if; + when csr_pmpcfg10_c => if (PMP_NUM_REGIONS > 39) then csr.rdata <= csr.pmpcfg_rd(43) & csr.pmpcfg_rd(42) & csr.pmpcfg_rd(41) & csr.pmpcfg_rd(40); else NULL; end if; + when csr_pmpcfg11_c => if (PMP_NUM_REGIONS > 43) then csr.rdata <= csr.pmpcfg_rd(47) & csr.pmpcfg_rd(46) & csr.pmpcfg_rd(45) & csr.pmpcfg_rd(44); else NULL; end if; + when csr_pmpcfg12_c => if (PMP_NUM_REGIONS > 47) then csr.rdata <= csr.pmpcfg_rd(51) & csr.pmpcfg_rd(50) & csr.pmpcfg_rd(49) & csr.pmpcfg_rd(48); else NULL; end if; + when csr_pmpcfg13_c => if (PMP_NUM_REGIONS > 51) then csr.rdata <= csr.pmpcfg_rd(55) & csr.pmpcfg_rd(54) & csr.pmpcfg_rd(53) & csr.pmpcfg_rd(52); else NULL; end if; + when csr_pmpcfg14_c => if (PMP_NUM_REGIONS > 55) then csr.rdata <= csr.pmpcfg_rd(59) & csr.pmpcfg_rd(58) & csr.pmpcfg_rd(57) & csr.pmpcfg_rd(56); else NULL; end if; + when csr_pmpcfg15_c => if (PMP_NUM_REGIONS > 59) then csr.rdata <= csr.pmpcfg_rd(63) & csr.pmpcfg_rd(62) & csr.pmpcfg_rd(61) & csr.pmpcfg_rd(60); else NULL; end if; + + -- physical memory protection - addresses (r/w) -- + -- -------------------------------------------------------------------- + when csr_pmpaddr0_c => if (PMP_NUM_REGIONS > 00) then csr.rdata <= csr.pmpaddr(00); else NULL; end if; + when csr_pmpaddr1_c => if (PMP_NUM_REGIONS > 01) then csr.rdata <= csr.pmpaddr(01); else NULL; end if; + when csr_pmpaddr2_c => if (PMP_NUM_REGIONS > 02) then csr.rdata <= csr.pmpaddr(02); else NULL; end if; + when csr_pmpaddr3_c => if (PMP_NUM_REGIONS > 03) then csr.rdata <= csr.pmpaddr(03); else NULL; end if; + when csr_pmpaddr4_c => if (PMP_NUM_REGIONS > 04) then csr.rdata <= csr.pmpaddr(04); else NULL; end if; + when csr_pmpaddr5_c => if (PMP_NUM_REGIONS > 05) then csr.rdata <= csr.pmpaddr(05); else NULL; end if; + when csr_pmpaddr6_c => if (PMP_NUM_REGIONS > 06) then csr.rdata <= csr.pmpaddr(06); else NULL; end if; + when csr_pmpaddr7_c => if (PMP_NUM_REGIONS > 07) then csr.rdata <= csr.pmpaddr(07); else NULL; end if; + when csr_pmpaddr8_c => if (PMP_NUM_REGIONS > 08) then csr.rdata <= csr.pmpaddr(08); else NULL; end if; + when csr_pmpaddr9_c => if (PMP_NUM_REGIONS > 09) then csr.rdata <= csr.pmpaddr(09); else NULL; end if; + when csr_pmpaddr10_c => if (PMP_NUM_REGIONS > 10) then csr.rdata <= csr.pmpaddr(10); else NULL; end if; + when csr_pmpaddr11_c => if (PMP_NUM_REGIONS > 11) then csr.rdata <= csr.pmpaddr(11); else NULL; end if; + when csr_pmpaddr12_c => if (PMP_NUM_REGIONS > 12) then csr.rdata <= csr.pmpaddr(12); else NULL; end if; + when csr_pmpaddr13_c => if (PMP_NUM_REGIONS > 13) then csr.rdata <= csr.pmpaddr(13); else NULL; end if; + when csr_pmpaddr14_c => if (PMP_NUM_REGIONS > 14) then csr.rdata <= csr.pmpaddr(14); else NULL; end if; + when csr_pmpaddr15_c => if (PMP_NUM_REGIONS > 15) then csr.rdata <= csr.pmpaddr(15); else NULL; end if; + when csr_pmpaddr16_c => if (PMP_NUM_REGIONS > 16) then csr.rdata <= csr.pmpaddr(16); else NULL; end if; + when csr_pmpaddr17_c => if (PMP_NUM_REGIONS > 17) then csr.rdata <= csr.pmpaddr(17); else NULL; end if; + when csr_pmpaddr18_c => if (PMP_NUM_REGIONS > 18) then csr.rdata <= csr.pmpaddr(18); else NULL; end if; + when csr_pmpaddr19_c => if (PMP_NUM_REGIONS > 19) then csr.rdata <= csr.pmpaddr(19); else NULL; end if; + when csr_pmpaddr20_c => if (PMP_NUM_REGIONS > 20) then csr.rdata <= csr.pmpaddr(20); else NULL; end if; + when csr_pmpaddr21_c => if (PMP_NUM_REGIONS > 21) then csr.rdata <= csr.pmpaddr(21); else NULL; end if; + when csr_pmpaddr22_c => if (PMP_NUM_REGIONS > 22) then csr.rdata <= csr.pmpaddr(22); else NULL; end if; + when csr_pmpaddr23_c => if (PMP_NUM_REGIONS > 23) then csr.rdata <= csr.pmpaddr(23); else NULL; end if; + when csr_pmpaddr24_c => if (PMP_NUM_REGIONS > 24) then csr.rdata <= csr.pmpaddr(24); else NULL; end if; + when csr_pmpaddr25_c => if (PMP_NUM_REGIONS > 25) then csr.rdata <= csr.pmpaddr(25); else NULL; end if; + when csr_pmpaddr26_c => if (PMP_NUM_REGIONS > 26) then csr.rdata <= csr.pmpaddr(26); else NULL; end if; + when csr_pmpaddr27_c => if (PMP_NUM_REGIONS > 27) then csr.rdata <= csr.pmpaddr(27); else NULL; end if; + when csr_pmpaddr28_c => if (PMP_NUM_REGIONS > 28) then csr.rdata <= csr.pmpaddr(28); else NULL; end if; + when csr_pmpaddr29_c => if (PMP_NUM_REGIONS > 29) then csr.rdata <= csr.pmpaddr(29); else NULL; end if; + when csr_pmpaddr30_c => if (PMP_NUM_REGIONS > 30) then csr.rdata <= csr.pmpaddr(30); else NULL; end if; + when csr_pmpaddr31_c => if (PMP_NUM_REGIONS > 31) then csr.rdata <= csr.pmpaddr(31); else NULL; end if; + when csr_pmpaddr32_c => if (PMP_NUM_REGIONS > 32) then csr.rdata <= csr.pmpaddr(32); else NULL; end if; + when csr_pmpaddr33_c => if (PMP_NUM_REGIONS > 33) then csr.rdata <= csr.pmpaddr(33); else NULL; end if; + when csr_pmpaddr34_c => if (PMP_NUM_REGIONS > 34) then csr.rdata <= csr.pmpaddr(34); else NULL; end if; + when csr_pmpaddr35_c => if (PMP_NUM_REGIONS > 35) then csr.rdata <= csr.pmpaddr(35); else NULL; end if; + when csr_pmpaddr36_c => if (PMP_NUM_REGIONS > 36) then csr.rdata <= csr.pmpaddr(36); else NULL; end if; + when csr_pmpaddr37_c => if (PMP_NUM_REGIONS > 37) then csr.rdata <= csr.pmpaddr(37); else NULL; end if; + when csr_pmpaddr38_c => if (PMP_NUM_REGIONS > 38) then csr.rdata <= csr.pmpaddr(38); else NULL; end if; + when csr_pmpaddr39_c => if (PMP_NUM_REGIONS > 39) then csr.rdata <= csr.pmpaddr(39); else NULL; end if; + when csr_pmpaddr40_c => if (PMP_NUM_REGIONS > 40) then csr.rdata <= csr.pmpaddr(40); else NULL; end if; + when csr_pmpaddr41_c => if (PMP_NUM_REGIONS > 41) then csr.rdata <= csr.pmpaddr(41); else NULL; end if; + when csr_pmpaddr42_c => if (PMP_NUM_REGIONS > 42) then csr.rdata <= csr.pmpaddr(42); else NULL; end if; + when csr_pmpaddr43_c => if (PMP_NUM_REGIONS > 43) then csr.rdata <= csr.pmpaddr(43); else NULL; end if; + when csr_pmpaddr44_c => if (PMP_NUM_REGIONS > 44) then csr.rdata <= csr.pmpaddr(44); else NULL; end if; + when csr_pmpaddr45_c => if (PMP_NUM_REGIONS > 45) then csr.rdata <= csr.pmpaddr(45); else NULL; end if; + when csr_pmpaddr46_c => if (PMP_NUM_REGIONS > 46) then csr.rdata <= csr.pmpaddr(46); else NULL; end if; + when csr_pmpaddr47_c => if (PMP_NUM_REGIONS > 47) then csr.rdata <= csr.pmpaddr(47); else NULL; end if; + when csr_pmpaddr48_c => if (PMP_NUM_REGIONS > 48) then csr.rdata <= csr.pmpaddr(48); else NULL; end if; + when csr_pmpaddr49_c => if (PMP_NUM_REGIONS > 49) then csr.rdata <= csr.pmpaddr(49); else NULL; end if; + when csr_pmpaddr50_c => if (PMP_NUM_REGIONS > 50) then csr.rdata <= csr.pmpaddr(50); else NULL; end if; + when csr_pmpaddr51_c => if (PMP_NUM_REGIONS > 51) then csr.rdata <= csr.pmpaddr(51); else NULL; end if; + when csr_pmpaddr52_c => if (PMP_NUM_REGIONS > 52) then csr.rdata <= csr.pmpaddr(52); else NULL; end if; + when csr_pmpaddr53_c => if (PMP_NUM_REGIONS > 53) then csr.rdata <= csr.pmpaddr(53); else NULL; end if; + when csr_pmpaddr54_c => if (PMP_NUM_REGIONS > 54) then csr.rdata <= csr.pmpaddr(54); else NULL; end if; + when csr_pmpaddr55_c => if (PMP_NUM_REGIONS > 55) then csr.rdata <= csr.pmpaddr(55); else NULL; end if; + when csr_pmpaddr56_c => if (PMP_NUM_REGIONS > 56) then csr.rdata <= csr.pmpaddr(56); else NULL; end if; + when csr_pmpaddr57_c => if (PMP_NUM_REGIONS > 57) then csr.rdata <= csr.pmpaddr(57); else NULL; end if; + when csr_pmpaddr58_c => if (PMP_NUM_REGIONS > 58) then csr.rdata <= csr.pmpaddr(58); else NULL; end if; + when csr_pmpaddr59_c => if (PMP_NUM_REGIONS > 59) then csr.rdata <= csr.pmpaddr(59); else NULL; end if; + when csr_pmpaddr60_c => if (PMP_NUM_REGIONS > 60) then csr.rdata <= csr.pmpaddr(60); else NULL; end if; + when csr_pmpaddr61_c => if (PMP_NUM_REGIONS > 61) then csr.rdata <= csr.pmpaddr(61); else NULL; end if; + when csr_pmpaddr62_c => if (PMP_NUM_REGIONS > 62) then csr.rdata <= csr.pmpaddr(62); else NULL; end if; + when csr_pmpaddr63_c => if (PMP_NUM_REGIONS > 63) then csr.rdata <= csr.pmpaddr(63); else NULL; end if; + + -- machine counter setup -- + -- -------------------------------------------------------------------- + when csr_mcountinhibit_c => -- mcountinhibit (r/w): machine counter-inhibit register + csr.rdata(0) <= csr.mcountinhibit_cy; -- enable auto-increment of [m]cycle[h] counter + csr.rdata(2) <= csr.mcountinhibit_ir; -- enable auto-increment of [m]instret[h] counter + if (HPM_NUM_CNTS > 0) then -- any HPMs available? + csr.rdata(csr.mcountinhibit_hpm'left+3 downto 3) <= csr.mcountinhibit_hpm; -- enable auto-increment of [m]hpmcounterx[h] counter + end if; + + -- machine performance-monitoring event selector (r/w) -- + -- -------------------------------------------------------------------- + when csr_mhpmevent3_c => if (HPM_NUM_CNTS > 00) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(00); else NULL; end if; + when csr_mhpmevent4_c => if (HPM_NUM_CNTS > 01) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(01); else NULL; end if; + when csr_mhpmevent5_c => if (HPM_NUM_CNTS > 02) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(02); else NULL; end if; + when csr_mhpmevent6_c => if (HPM_NUM_CNTS > 03) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(03); else NULL; end if; + when csr_mhpmevent7_c => if (HPM_NUM_CNTS > 04) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(04); else NULL; end if; + when csr_mhpmevent8_c => if (HPM_NUM_CNTS > 05) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(05); else NULL; end if; + when csr_mhpmevent9_c => if (HPM_NUM_CNTS > 06) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(06); else NULL; end if; + when csr_mhpmevent10_c => if (HPM_NUM_CNTS > 07) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(07); else NULL; end if; + when csr_mhpmevent11_c => if (HPM_NUM_CNTS > 08) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(08); else NULL; end if; + when csr_mhpmevent12_c => if (HPM_NUM_CNTS > 09) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(09); else NULL; end if; + when csr_mhpmevent13_c => if (HPM_NUM_CNTS > 10) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(10); else NULL; end if; + when csr_mhpmevent14_c => if (HPM_NUM_CNTS > 11) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(11); else NULL; end if; + when csr_mhpmevent15_c => if (HPM_NUM_CNTS > 12) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(12); else NULL; end if; + when csr_mhpmevent16_c => if (HPM_NUM_CNTS > 13) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(13); else NULL; end if; + when csr_mhpmevent17_c => if (HPM_NUM_CNTS > 14) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(14); else NULL; end if; + when csr_mhpmevent18_c => if (HPM_NUM_CNTS > 15) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(15); else NULL; end if; + when csr_mhpmevent19_c => if (HPM_NUM_CNTS > 16) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(16); else NULL; end if; + when csr_mhpmevent20_c => if (HPM_NUM_CNTS > 17) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(17); else NULL; end if; + when csr_mhpmevent21_c => if (HPM_NUM_CNTS > 18) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(18); else NULL; end if; + when csr_mhpmevent22_c => if (HPM_NUM_CNTS > 19) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(19); else NULL; end if; + when csr_mhpmevent23_c => if (HPM_NUM_CNTS > 20) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(20); else NULL; end if; + when csr_mhpmevent24_c => if (HPM_NUM_CNTS > 21) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(21); else NULL; end if; + when csr_mhpmevent25_c => if (HPM_NUM_CNTS > 22) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(22); else NULL; end if; + when csr_mhpmevent26_c => if (HPM_NUM_CNTS > 23) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(23); else NULL; end if; + when csr_mhpmevent27_c => if (HPM_NUM_CNTS > 24) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(24); else NULL; end if; + when csr_mhpmevent28_c => if (HPM_NUM_CNTS > 25) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(25); else NULL; end if; + when csr_mhpmevent29_c => if (HPM_NUM_CNTS > 26) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(26); else NULL; end if; + when csr_mhpmevent30_c => if (HPM_NUM_CNTS > 27) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(27); else NULL; end if; + when csr_mhpmevent31_c => if (HPM_NUM_CNTS > 28) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata(hpmcnt_event_size_c-1 downto 0) <= csr.mhpmevent(28); else NULL; end if; + + -- counters and timers -- + -- -------------------------------------------------------------------- + when csr_cycle_c | csr_mcycle_c => -- [m]cycle (r/w): Cycle counter LOW + if (cpu_cnt_lo_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then csr.rdata(cpu_cnt_lo_width_c-1 downto 0) <= csr.mcycle(cpu_cnt_lo_width_c-1 downto 0); else NULL; end if; + when csr_cycleh_c | csr_mcycleh_c => -- [m]cycleh (r/w): Cycle counter HIGH + if (cpu_cnt_hi_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then csr.rdata(cpu_cnt_hi_width_c-1 downto 0) <= csr.mcycleh(cpu_cnt_hi_width_c-1 downto 0); else NULL; end if; + + when csr_instret_c | csr_minstret_c => -- [m]instret (r/w): Instructions-retired counter LOW + if (cpu_cnt_lo_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then csr.rdata(cpu_cnt_lo_width_c-1 downto 0) <= csr.minstret(cpu_cnt_lo_width_c-1 downto 0); else NULL; end if; + when csr_instreth_c | csr_minstreth_c => -- [m]instreth (r/w): Instructions-retired counter HIGH + if (cpu_cnt_hi_width_c > 0) and (CPU_EXTENSION_RISCV_Zicntr = true) then csr.rdata(cpu_cnt_hi_width_c-1 downto 0) <= csr.minstreth(cpu_cnt_hi_width_c-1 downto 0); else NULL; end if; + + when csr_time_c => -- time (r/-): System time LOW (from MTIME unit) + if (CPU_EXTENSION_RISCV_Zicntr = true) then csr.rdata <= time_i(31 downto 00); else NULL; end if; + when csr_timeh_c => -- timeh (r/-): System time HIGH (from MTIME unit) + if (CPU_EXTENSION_RISCV_Zicntr = true) then csr.rdata <= time_i(63 downto 32); else NULL; end if; + + -- hardware performance counters -- + -- -------------------------------------------------------------------- + -- low word (r/w) -- + when csr_mhpmcounter3_c => if (HPM_NUM_CNTS > 00) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(00); else NULL; end if; + when csr_mhpmcounter4_c => if (HPM_NUM_CNTS > 01) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(01); else NULL; end if; + when csr_mhpmcounter5_c => if (HPM_NUM_CNTS > 02) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(02); else NULL; end if; + when csr_mhpmcounter6_c => if (HPM_NUM_CNTS > 03) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(03); else NULL; end if; + when csr_mhpmcounter7_c => if (HPM_NUM_CNTS > 04) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(04); else NULL; end if; + when csr_mhpmcounter8_c => if (HPM_NUM_CNTS > 05) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(05); else NULL; end if; + when csr_mhpmcounter9_c => if (HPM_NUM_CNTS > 06) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(06); else NULL; end if; + when csr_mhpmcounter10_c => if (HPM_NUM_CNTS > 07) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(07); else NULL; end if; + when csr_mhpmcounter11_c => if (HPM_NUM_CNTS > 08) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(08); else NULL; end if; + when csr_mhpmcounter12_c => if (HPM_NUM_CNTS > 09) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(09); else NULL; end if; + when csr_mhpmcounter13_c => if (HPM_NUM_CNTS > 10) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(10); else NULL; end if; + when csr_mhpmcounter14_c => if (HPM_NUM_CNTS > 11) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(11); else NULL; end if; + when csr_mhpmcounter15_c => if (HPM_NUM_CNTS > 12) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(12); else NULL; end if; + when csr_mhpmcounter16_c => if (HPM_NUM_CNTS > 13) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(13); else NULL; end if; + when csr_mhpmcounter17_c => if (HPM_NUM_CNTS > 14) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(14); else NULL; end if; + when csr_mhpmcounter18_c => if (HPM_NUM_CNTS > 15) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(15); else NULL; end if; + when csr_mhpmcounter19_c => if (HPM_NUM_CNTS > 16) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(16); else NULL; end if; + when csr_mhpmcounter20_c => if (HPM_NUM_CNTS > 17) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(17); else NULL; end if; + when csr_mhpmcounter21_c => if (HPM_NUM_CNTS > 18) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(18); else NULL; end if; + when csr_mhpmcounter22_c => if (HPM_NUM_CNTS > 19) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(19); else NULL; end if; + when csr_mhpmcounter23_c => if (HPM_NUM_CNTS > 20) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(20); else NULL; end if; + when csr_mhpmcounter24_c => if (HPM_NUM_CNTS > 21) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(21); else NULL; end if; + when csr_mhpmcounter25_c => if (HPM_NUM_CNTS > 22) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(22); else NULL; end if; + when csr_mhpmcounter26_c => if (HPM_NUM_CNTS > 23) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(23); else NULL; end if; + when csr_mhpmcounter27_c => if (HPM_NUM_CNTS > 24) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(24); else NULL; end if; + when csr_mhpmcounter28_c => if (HPM_NUM_CNTS > 25) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(25); else NULL; end if; + when csr_mhpmcounter29_c => if (HPM_NUM_CNTS > 26) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(26); else NULL; end if; + when csr_mhpmcounter30_c => if (HPM_NUM_CNTS > 27) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(27); else NULL; end if; + when csr_mhpmcounter31_c => if (HPM_NUM_CNTS > 28) and (CPU_EXTENSION_RISCV_Zihpm = true) then csr.rdata <= csr.mhpmcounter_rd(28); else NULL; end if; + -- high word (r/w) -- + when csr_mhpmcounter3h_c => if (HPM_NUM_CNTS > 00) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(00); else NULL; end if; + when csr_mhpmcounter4h_c => if (HPM_NUM_CNTS > 01) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(01); else NULL; end if; + when csr_mhpmcounter5h_c => if (HPM_NUM_CNTS > 02) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(02); else NULL; end if; + when csr_mhpmcounter6h_c => if (HPM_NUM_CNTS > 03) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(03); else NULL; end if; + when csr_mhpmcounter7h_c => if (HPM_NUM_CNTS > 04) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(04); else NULL; end if; + when csr_mhpmcounter8h_c => if (HPM_NUM_CNTS > 05) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(05); else NULL; end if; + when csr_mhpmcounter9h_c => if (HPM_NUM_CNTS > 06) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(06); else NULL; end if; + when csr_mhpmcounter10h_c => if (HPM_NUM_CNTS > 07) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(07); else NULL; end if; + when csr_mhpmcounter11h_c => if (HPM_NUM_CNTS > 08) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(08); else NULL; end if; + when csr_mhpmcounter12h_c => if (HPM_NUM_CNTS > 09) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(09); else NULL; end if; + when csr_mhpmcounter13h_c => if (HPM_NUM_CNTS > 10) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(10); else NULL; end if; + when csr_mhpmcounter14h_c => if (HPM_NUM_CNTS > 11) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(11); else NULL; end if; + when csr_mhpmcounter15h_c => if (HPM_NUM_CNTS > 12) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(12); else NULL; end if; + when csr_mhpmcounter16h_c => if (HPM_NUM_CNTS > 13) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(13); else NULL; end if; + when csr_mhpmcounter17h_c => if (HPM_NUM_CNTS > 14) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(14); else NULL; end if; + when csr_mhpmcounter18h_c => if (HPM_NUM_CNTS > 15) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(15); else NULL; end if; + when csr_mhpmcounter19h_c => if (HPM_NUM_CNTS > 16) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(16); else NULL; end if; + when csr_mhpmcounter20h_c => if (HPM_NUM_CNTS > 17) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(17); else NULL; end if; + when csr_mhpmcounter21h_c => if (HPM_NUM_CNTS > 18) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(18); else NULL; end if; + when csr_mhpmcounter22h_c => if (HPM_NUM_CNTS > 19) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(19); else NULL; end if; + when csr_mhpmcounter23h_c => if (HPM_NUM_CNTS > 20) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(20); else NULL; end if; + when csr_mhpmcounter24h_c => if (HPM_NUM_CNTS > 21) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(21); else NULL; end if; + when csr_mhpmcounter25h_c => if (HPM_NUM_CNTS > 22) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(22); else NULL; end if; + when csr_mhpmcounter26h_c => if (HPM_NUM_CNTS > 23) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(23); else NULL; end if; + when csr_mhpmcounter27h_c => if (HPM_NUM_CNTS > 24) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(24); else NULL; end if; + when csr_mhpmcounter28h_c => if (HPM_NUM_CNTS > 25) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(25); else NULL; end if; + when csr_mhpmcounter29h_c => if (HPM_NUM_CNTS > 26) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(26); else NULL; end if; + when csr_mhpmcounter30h_c => if (HPM_NUM_CNTS > 27) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(27); else NULL; end if; + when csr_mhpmcounter31h_c => if (HPM_NUM_CNTS > 28) and (CPU_EXTENSION_RISCV_Zihpm = true) and (hpm_cnt_hi_width_c > 0) then csr.rdata <= csr.mhpmcounterh_rd(28); else NULL; end if; + + -- machine information registers -- + -- -------------------------------------------------------------------- +-- when csr_mvendorid_c => NULL; -- mvendorid (r/-): vendor ID, implemented but always zero + when csr_marchid_c => csr.rdata(4 downto 0) <= "10011"; -- marchid (r/-): arch ID - official RISC-V open-source arch ID + when csr_mimpid_c => csr.rdata <= hw_version_c; -- mimpid (r/-): implementation ID -- NEORV32 hardware version + when csr_mhartid_c => csr.rdata <= std_ulogic_vector(to_unsigned(HW_THREAD_ID, 32)); -- mhartid (r/-): hardware thread ID +-- when csr_mconfigptr_c => NULL; -- mconfigptr (r/-): machine configuration pointer register, implemented but always zero + + -- debug mode CSRs -- + -- -------------------------------------------------------------------- + when csr_dcsr_c => if (CPU_EXTENSION_RISCV_DEBUG = true) then csr.rdata <= csr.dcsr_rd; else NULL; end if; -- dcsr (r/w): debug mode control and status + when csr_dpc_c => if (CPU_EXTENSION_RISCV_DEBUG = true) then csr.rdata <= csr.dpc; else NULL; end if; -- dpc (r/w): debug mode program counter + when csr_dscratch0_c => if (CPU_EXTENSION_RISCV_DEBUG = true) then csr.rdata <= csr.dscratch0; else NULL; end if; -- dscratch0 (r/w): debug mode scratch register 0 + + -- undefined/unavailable -- + -- -------------------------------------------------------------------- + when others => + NULL; -- not implemented, read as zero + + end case; + end if; + end if; + end process csr_read_access; + + -- CSR read data output -- + csr_rdata_o <= csr.rdata; + + + -- Debug Control -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + debug_control: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + debug_ctrl.state <= DEBUG_OFFLINE; + debug_ctrl.ext_halt_req <= '0'; + elsif rising_edge(clk_i) then + if (CPU_EXTENSION_RISCV_DEBUG = true) then + + -- external halt request (from Debug Module) -- + debug_ctrl.ext_halt_req <= db_halt_req_i; + + -- state machine -- + case debug_ctrl.state is + + when DEBUG_OFFLINE => -- not in debug mode, waiting for entering request + if (debug_ctrl.trig_halt = '1') or -- external request (from DM) + (debug_ctrl.trig_break = '1') or -- ebreak instruction + (debug_ctrl.trig_step = '1') then -- single-stepping mode + debug_ctrl.state <= DEBUG_PENDING; + end if; + + when DEBUG_PENDING => -- waiting to start debug mode + if (trap_ctrl.env_start_ack = '1') and (trap_ctrl.cause(5) = '1') then -- processing trap entry into debug mode + debug_ctrl.state <= DEBUG_ONLINE; + end if; + + when DEBUG_ONLINE => -- we are in debug mode + if (debug_ctrl.dret = '1') then -- DRET instruction + debug_ctrl.state <= DEBUG_EXIT; + end if; + + when DEBUG_EXIT => -- leaving debug mode + if (execute_engine.state = TRAP_EXECUTE) then -- processing trap exit + debug_ctrl.state <= DEBUG_OFFLINE; + end if; + + when others => -- undefined + debug_ctrl.state <= DEBUG_OFFLINE; + + end case; + else -- debug mode NOT implemented + debug_ctrl.state <= DEBUG_OFFLINE; + debug_ctrl.ext_halt_req <= '0'; + end if; + end if; + end process debug_control; + + -- state decoding -- + debug_ctrl.pending <= '1' when (debug_ctrl.state = DEBUG_PENDING) and (CPU_EXTENSION_RISCV_DEBUG = true) else '0'; + debug_ctrl.running <= '1' when ((debug_ctrl.state = DEBUG_ONLINE) or (debug_ctrl.state = DEBUG_EXIT)) and (CPU_EXTENSION_RISCV_DEBUG = true) else '0'; + + -- entry debug mode triggers -- + debug_ctrl.trig_break <= trap_ctrl.break_point and (debug_ctrl.running or -- we are in debug mode: re-enter debug mode + (csr.priv_m_mode and csr.dcsr_ebreakm and (not debug_ctrl.running)) or -- enabled goto-debug-mode in machine mode on "ebreak" + (csr.priv_u_mode and csr.dcsr_ebreaku and (not debug_ctrl.running))); -- enabled goto-debug-mode in user mode on "ebreak" + debug_ctrl.trig_halt <= debug_ctrl.ext_halt_req and (not debug_ctrl.running); -- external halt request (if not halted already) + debug_ctrl.trig_step <= csr.dcsr_step and (not debug_ctrl.running); -- single-step mode (trigger when NOT CURRENTLY in debug mode) + + + -- Debug Control and Status Register (dcsr) - Read-Back ----------------------------------- + -- ------------------------------------------------------------------------------------------- + dcsr_readback_false: + if (CPU_EXTENSION_RISCV_DEBUG = false) generate + csr.dcsr_rd <= (others => '-'); + end generate; + + dcsr_readback_true: + if (CPU_EXTENSION_RISCV_DEBUG = true) generate + csr.dcsr_rd(31 downto 28) <= "0100"; -- xdebugver: external debug support compatible to spec + csr.dcsr_rd(27 downto 16) <= (others => '0'); -- reserved + csr.dcsr_rd(15) <= csr.dcsr_ebreakm; -- ebreakm: what happens on ebreak in m-mode? (normal trap OR debug-enter) + csr.dcsr_rd(14) <= '0'; -- ebreakh: hypervisor mode not implemented + csr.dcsr_rd(13) <= '0'; -- ebreaks: supervisor mode not implemented + csr.dcsr_rd(12) <= csr.dcsr_ebreaku when (CPU_EXTENSION_RISCV_U = true) else '0'; -- ebreaku: what happens on ebreak in u-mode? (normal trap OR debug-enter) + csr.dcsr_rd(11) <= '0'; -- stepie: interrupts are disabled during single-stepping + csr.dcsr_rd(10) <= '0'; -- stopcount: counters increment as usual FIXME ??? + csr.dcsr_rd(09) <= '0'; -- stoptime: timers increment as usual + csr.dcsr_rd(08 downto 06) <= csr.dcsr_cause; -- debug mode entry cause + csr.dcsr_rd(05) <= '0'; -- reserved + csr.dcsr_rd(04) <= '0'; -- mprven: mstatus.mprv is ignored in debug mode + csr.dcsr_rd(03) <= '0'; -- nmip: pending non-maskable interrupt + csr.dcsr_rd(02) <= csr.dcsr_step; -- step: single-step mode + csr.dcsr_rd(01 downto 00) <= csr.dcsr_prv; -- prv: privilege mode when debug mode was entered + end generate; + + +end neorv32_cpu_control_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_bitmanip.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_bitmanip.vhd new file mode 100644 index 0000000..8412c5e --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_bitmanip.vhd @@ -0,0 +1,469 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU Co-Processor: Bit-Manipulation Co-Processor Unit (RISC-V "B" Extension) >> # +-- # ********************************************************************************************* # +-- # The bit manipulation unit is implemented as co-processor that has a processing latency of 1 # +-- # cycle for logic/arithmetic operations and 3+shamt (=shift amount) cycles for shift(-related) # +-- # operations. Use the FAST_SHIFT_EN option to reduce shift-related instruction's latency to a # +-- # fixed value of 3 cycles latency (using barrel shifters). # +-- # # +-- # Supported sub-extensions (Zb*): # +-- # - Zba: Address generation instructions # +-- # - Zbb: Basic bit-manipulation instructions # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_cp_bitmanip is + generic ( + FAST_SHIFT_EN : boolean -- use barrel shifter for shift operations + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + cmp_i : in std_ulogic_vector(1 downto 0); -- comparator status + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + shamt_i : in std_ulogic_vector(index_size_f(data_width_c)-1 downto 0); -- shift amount + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + valid_o : out std_ulogic -- data output valid + ); +end neorv32_cpu_cp_bitmanip; + +architecture neorv32_cpu_cp_bitmanip_rtl of neorv32_cpu_cp_bitmanip is + + -- Sub-extension configuration -- + constant zbb_en_c : boolean := true; + constant zba_en_c : boolean := true; + -- --------------------------- -- + + -- commands: Zbb - logic with negate -- + constant op_andn_c : natural := 0; + constant op_orn_c : natural := 1; + constant op_xnor_c : natural := 2; + -- commands: Zbb - count leading/trailing zero bits -- + constant op_clz_c : natural := 3; + constant op_ctz_c : natural := 4; + -- commands: Zbb - count population -- + constant op_cpop_c : natural := 5; + -- commands: Zbb - integer minimum/maximum -- + constant op_max_c : natural := 6; -- signed/unsigned + constant op_min_c : natural := 7; -- signed/unsigned + -- commands: Zbb - sign- and zero-extension -- + constant op_sextb_c : natural := 8; + constant op_sexth_c : natural := 9; + constant op_zexth_c : natural := 10; + -- commands: Zbb - bitwise rotation -- + constant op_rol_c : natural := 11; + constant op_ror_c : natural := 12; -- rori + -- commands: Zbb - or-combine -- + constant op_orcb_c : natural := 13; + -- commands: Zbb - byte-reverse -- + constant op_rev8_c : natural := 14; + -- commands: Zba - shifted add -- + constant op_sh1add_c : natural := 15; + constant op_sh2add_c : natural := 16; + constant op_sh3add_c : natural := 17; + -- + constant op_width_c : natural := 18; + + -- controller -- + type ctrl_state_t is (S_IDLE, S_START_SHIFT, S_BUSY_SHIFT); + signal ctrl_state : ctrl_state_t; + signal cmd, cmd_buf : std_ulogic_vector(op_width_c-1 downto 0); + signal valid : std_ulogic; + + -- operand buffers -- + signal rs1_reg : std_ulogic_vector(data_width_c-1 downto 0); + signal rs2_reg : std_ulogic_vector(data_width_c-1 downto 0); + signal sha_reg : std_ulogic_vector(index_size_f(data_width_c)-1 downto 0); + signal less_ff : std_ulogic; + + -- serial shifter -- + type shifter_t is record + start : std_ulogic; + run : std_ulogic; + bcnt : std_ulogic_vector(index_size_f(data_width_c) downto 0); -- bit counter + cnt : std_ulogic_vector(index_size_f(data_width_c) downto 0); -- iteration counter + cnt_max : std_ulogic_vector(index_size_f(data_width_c) downto 0); + sreg : std_ulogic_vector(data_width_c-1 downto 0); + end record; + signal shifter : shifter_t; + + -- barrel shifter -- + type bs_level_t is array (index_size_f(data_width_c) downto 0) of std_ulogic_vector(data_width_c-1 downto 0); + signal bs_level : bs_level_t; + + -- operation results -- + type res_t is array (0 to op_width_c-1) of std_ulogic_vector(data_width_c-1 downto 0); + signal res_int, res_out : res_t; + + -- shifted-add unit -- + signal adder_core : std_ulogic_vector(data_width_c-1 downto 0); + +begin + + -- Sub-Extension Configuration ------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + assert false report + "Implementing bit-manipulation (B) sub-extensions: " & + cond_sel_string_f(zbb_en_c, "Zbb", "") & + cond_sel_string_f(zba_en_c, "Zba", "") & + "" + severity note; + + + -- Instruction Decoding (One-Hot) --------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- a minimal decoding logic is used here -> just to distinguish between B.Zbb instructions + -- a more specific decoding and instruction check is done by the CPU control unit + + -- Zbb - Basic bit-manipulation instructions -- + cmd(op_andn_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "10") and (ctrl_i(ctrl_ir_funct3_1_c downto ctrl_ir_funct3_0_c) = "11") else '0'; + cmd(op_orn_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "10") and (ctrl_i(ctrl_ir_funct3_1_c downto ctrl_ir_funct3_0_c) = "10") else '0'; + cmd(op_xnor_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "10") and (ctrl_i(ctrl_ir_funct3_1_c downto ctrl_ir_funct3_0_c) = "00") else '0'; + -- + cmd(op_max_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "00") and (ctrl_i(ctrl_ir_funct12_5_c) = '1') and (ctrl_i(ctrl_ir_funct3_1_c) = '1') else '0'; + cmd(op_min_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "00") and (ctrl_i(ctrl_ir_funct12_5_c) = '1') and (ctrl_i(ctrl_ir_funct3_1_c) = '0') else '0'; + cmd(op_zexth_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "00") and (ctrl_i(ctrl_ir_funct12_5_c) = '0') else '0'; + -- + cmd(op_orcb_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "01") and (ctrl_i(ctrl_ir_funct12_7_c) = '1') else '0'; + -- + cmd(op_clz_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct12_2_c downto ctrl_ir_funct12_0_c) = "000") else '0'; + cmd(op_ctz_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct12_2_c downto ctrl_ir_funct12_0_c) = "001") else '0'; + cmd(op_cpop_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct12_2_c downto ctrl_ir_funct12_0_c) = "010") else '0'; + cmd(op_sextb_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c) = '0') and (ctrl_i(ctrl_ir_funct12_2_c downto ctrl_ir_funct12_0_c) = "100") else '0'; + cmd(op_sexth_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c) = '0') and (ctrl_i(ctrl_ir_funct12_2_c downto ctrl_ir_funct12_0_c) = "101") else '0'; + cmd(op_rol_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_0_c) = "001") and (ctrl_i(ctrl_ir_opcode7_5_c) = '1') else '0'; + cmd(op_ror_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_0_c) = "101") else '0'; + cmd(op_rev8_c) <= '1' when (zbb_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "11") and (ctrl_i(ctrl_ir_funct12_7_c) = '1') else '0'; + + -- Zba - Address generation instructions -- + cmd(op_sh1add_c) <= '1' when (zba_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "01") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_1_c) = "01") else '0'; + cmd(op_sh2add_c) <= '1' when (zba_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "01") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_1_c) = "10") else '0'; + cmd(op_sh3add_c) <= '1' when (zba_en_c = true) and (ctrl_i(ctrl_ir_funct12_10_c downto ctrl_ir_funct12_9_c) = "01") and (ctrl_i(ctrl_ir_funct12_7_c) = '0') and (ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_1_c) = "11") else '0'; + + + -- Co-Processor Controller ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + coprocessor_ctrl: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl_state <= S_IDLE; + cmd_buf <= (others => def_rst_val_c); + rs1_reg <= (others => def_rst_val_c); + rs2_reg <= (others => def_rst_val_c); + sha_reg <= (others => def_rst_val_c); + less_ff <= def_rst_val_c; + shifter.start <= '0'; + valid <= '0'; + elsif rising_edge(clk_i) then + -- defaults -- + shifter.start <= '0'; + valid <= '0'; + + -- fsm -- + case ctrl_state is + + when S_IDLE => -- wait for operation trigger + -- ------------------------------------------------------------ + if (start_i = '1') then + less_ff <= cmp_i(cmp_less_c); + cmd_buf <= cmd; + rs1_reg <= rs1_i; + rs2_reg <= rs2_i; + sha_reg <= shamt_i; + if ((cmd(op_clz_c) or cmd(op_ctz_c) or cmd(op_cpop_c) or cmd(op_ror_c) or cmd(op_rol_c)) = '1') then -- multi-cycle shift operation + if (FAST_SHIFT_EN = false) then -- default: iterative computation + shifter.start <= '1'; + ctrl_state <= S_START_SHIFT; + else -- full-parallel computation + ctrl_state <= S_BUSY_SHIFT; + end if; + else + valid <= '1'; + ctrl_state <= S_IDLE; + end if; + end if; + + when S_START_SHIFT => -- one cycle delay to start shift operation + -- ------------------------------------------------------------ + ctrl_state <= S_BUSY_SHIFT; + + when S_BUSY_SHIFT => -- wait for multi-cycle shift operation to finish + -- ------------------------------------------------------------ + if (shifter.run = '0') then + valid <= '1'; + ctrl_state <= S_IDLE; + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + ctrl_state <= S_IDLE; + + end case; + end if; + end process coprocessor_ctrl; + + + -- Shifter Function Core (iterative: small but slow) -------------------------------------- + -- ------------------------------------------------------------------------------------------- + serial_shifter: + if (FAST_SHIFT_EN = false) generate + shifter_unit: process(rstn_i, clk_i) + variable new_bit_v : std_ulogic; + begin + if (rstn_i = '0') then + shifter.cnt <= (others => def_rst_val_c); + shifter.sreg <= (others => def_rst_val_c); + shifter.cnt_max <= (others => def_rst_val_c); + shifter.bcnt <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (shifter.start = '1') then -- trigger new shift + shifter.cnt <= (others => '0'); + -- shift operand -- + if (cmd_buf(op_clz_c) = '1') or (cmd_buf(op_rol_c) = '1') then -- count LEADING zeros / rotate LEFT + shifter.sreg <= bit_rev_f(rs1_reg); -- reverse - we can only do right shifts here + else -- ctz, cpop, ror + shifter.sreg <= rs1_reg; + end if; + -- max shift amount -- + if (cmd_buf(op_cpop_c) = '1') then -- population count + shifter.cnt_max <= (others => '0'); + shifter.cnt_max(shifter.cnt_max'left) <= '1'; + else + shifter.cnt_max <= '0' & sha_reg; + end if; + shifter.bcnt <= (others => '0'); + elsif (shifter.run = '1') then -- right shifts only + new_bit_v := ((cmd_buf(op_ror_c) or cmd_buf(op_rol_c)) and shifter.sreg(0)) or (cmd_buf(op_clz_c) or cmd_buf(op_ctz_c)); + shifter.sreg <= new_bit_v & shifter.sreg(shifter.sreg'left downto 1); -- ro[r/l]/lsr(for counting) + shifter.cnt <= std_ulogic_vector(unsigned(shifter.cnt) + 1); -- iteration counter + if (shifter.sreg(0) = '1') then + shifter.bcnt <= std_ulogic_vector(unsigned(shifter.bcnt) + 1); -- bit counter + end if; + end if; + end if; + end process shifter_unit; + end generate; + + -- run control -- + serial_shifter_ctrl: + if (FAST_SHIFT_EN = false) generate + shifter_unit_ctrl: process(cmd_buf, shifter) + begin + -- keep shifting until ... -- + if (cmd_buf(op_clz_c) = '1') or (cmd_buf(op_ctz_c) = '1') then -- count leading/trailing zeros + shifter.run <= not shifter.sreg(0); + else -- population count / rotate + if (shifter.cnt = shifter.cnt_max) then + shifter.run <= '0'; + else + shifter.run <= '1'; + end if; + end if; + end process shifter_unit_ctrl; + end generate; + + + -- Shifter Function Core (parallel: fast but large) --------------------------------------- + -- ------------------------------------------------------------------------------------------- + barrel_shifter_async_sync: + if (FAST_SHIFT_EN = true) generate + shifter_unit_fast: process(rstn_i, clk_i) + variable new_bit_v : std_ulogic; + begin + if (rstn_i = '0') then + shifter.cnt <= (others => def_rst_val_c); + shifter.sreg <= (others => def_rst_val_c); + shifter.bcnt <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- population count -- + shifter.bcnt <= std_ulogic_vector(to_unsigned(popcount_f(rs1_reg), shifter.bcnt'length)); + -- count leading/trailing zeros -- + if cmd_buf(op_clz_c) = '1' then -- leading + shifter.cnt <= std_ulogic_vector(to_unsigned(leading_zeros_f(rs1_reg), shifter.cnt'length)); + else -- trailing + shifter.cnt <= std_ulogic_vector(to_unsigned(leading_zeros_f(bit_rev_f(rs1_reg)), shifter.cnt'length)); + end if; + -- barrel shifter -- + shifter.sreg <= bs_level(0); -- rol/ror[i] + end if; + end process shifter_unit_fast; + shifter.run <= '0'; -- we are done already! + end generate; + + -- barrel shifter array -- + barrel_shifter_async: + if (FAST_SHIFT_EN = true) generate + shifter_unit_async: process(rs1_reg, sha_reg, cmd_buf, bs_level) + begin + -- input level: convert left shifts to right shifts -- + if (cmd_buf(op_rol_c) = '1') then -- is left shift? + bs_level(index_size_f(data_width_c)) <= bit_rev_f(rs1_reg); -- reverse bit order of input operand + else + bs_level(index_size_f(data_width_c)) <= rs1_reg; + end if; + + -- shifter array -- + for i in index_size_f(data_width_c)-1 downto 0 loop + if (sha_reg(i) = '1') then + bs_level(i)(data_width_c-1 downto data_width_c-(2**i)) <= bs_level(i+1)((2**i)-1 downto 0); + bs_level(i)((data_width_c-(2**i))-1 downto 0) <= bs_level(i+1)(data_width_c-1 downto 2**i); + else + bs_level(i) <= bs_level(i+1); + end if; + end loop; + end process shifter_unit_async; + end generate; + + + -- Shifted-Add Core ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + shift_adder: process(rs1_reg, rs2_reg, ctrl_i) + variable opb_v : std_ulogic_vector(data_width_c-1 downto 0); + begin + case ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_1_c) is + when "01" => opb_v := rs1_reg(rs1_reg'left-1 downto 0) & '0'; -- << 1 + when "10" => opb_v := rs1_reg(rs1_reg'left-2 downto 0) & "00"; -- << 2 + when "11" => opb_v := rs1_reg(rs1_reg'left-3 downto 0) & "000"; -- << 3 + when others => opb_v := rs1_reg(rs1_reg'left-1 downto 0) & '0'; -- undefined + end case; + adder_core <= std_ulogic_vector(unsigned(rs2_reg) + unsigned(opb_v)); + end process shift_adder; + + + -- Operation Results ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- logic with negate -- + res_int(op_andn_c) <= rs1_reg and (not rs2_reg); -- logical and-not + res_int(op_orn_c) <= rs1_reg or (not rs2_reg); -- logical or-not + res_int(op_xnor_c) <= rs1_reg xor (not rs2_reg); -- logical xor-not + + -- count leading/trailing zeros -- + res_int(op_clz_c)(data_width_c-1 downto shifter.cnt'left+1) <= (others => '0'); + res_int(op_clz_c)(shifter.cnt'left downto 0) <= shifter.cnt; + res_int(op_ctz_c) <= (others => '0'); -- unused/redundant + + -- count set bits -- + res_int(op_cpop_c)(data_width_c-1 downto shifter.bcnt'left+1) <= (others => '0'); + res_int(op_cpop_c)(shifter.bcnt'left downto 0) <= shifter.bcnt; + + -- min/max select -- + res_int(op_min_c) <= rs1_reg when ((less_ff xor cmd_buf(op_max_c)) = '1') else rs2_reg; + res_int(op_max_c) <= (others => '0'); -- unused/redundant + + -- sign-extension -- + res_int(op_sextb_c)(data_width_c-1 downto 8) <= (others => rs1_reg(7)); + res_int(op_sextb_c)(7 downto 0) <= rs1_reg(7 downto 0); -- sign-extend byte + res_int(op_sexth_c)(data_width_c-1 downto 16) <= (others => rs1_reg(15)); + res_int(op_sexth_c)(15 downto 0) <= rs1_reg(15 downto 0); -- sign-extend half-word + res_int(op_zexth_c)(data_width_c-1 downto 16) <= (others => '0'); + res_int(op_zexth_c)(15 downto 0) <= rs1_reg(15 downto 0); -- zero-extend half-word + + -- rotate right/left -- + res_int(op_ror_c) <= shifter.sreg; + res_int(op_rol_c) <= bit_rev_f(shifter.sreg); -- reverse to compensate internal right-only shifts + + -- or-combine.byte -- + or_combine_gen: + for i in 0 to (data_width_c/8)-1 generate -- sub-byte loop + res_int(op_orcb_c)(i*8+7 downto i*8) <= (others => or_reduce_f(rs1_reg(i*8+7 downto i*8))); + end generate; -- i + + -- reversal.8 (byte swap) -- + res_int(op_rev8_c) <= bswap32_f(rs1_reg); + + -- address generation instructions -- + res_int(op_sh1add_c) <= adder_core; + res_int(op_sh2add_c) <= (others => '0'); -- unused/redundant + res_int(op_sh3add_c) <= (others => '0'); -- unused/redundant + + + -- Output Selector ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + res_out(op_andn_c) <= res_int(op_andn_c) when (cmd_buf(op_andn_c) = '1') else (others => '0'); + res_out(op_orn_c) <= res_int(op_orn_c) when (cmd_buf(op_orn_c) = '1') else (others => '0'); + res_out(op_xnor_c) <= res_int(op_xnor_c) when (cmd_buf(op_xnor_c) = '1') else (others => '0'); + res_out(op_clz_c) <= res_int(op_clz_c) when ((cmd_buf(op_clz_c) or cmd_buf(op_ctz_c)) = '1') else (others => '0'); + res_out(op_ctz_c) <= (others => '0'); -- unused/redundant + res_out(op_cpop_c) <= res_int(op_cpop_c) when (cmd_buf(op_cpop_c) = '1') else (others => '0'); + res_out(op_min_c) <= res_int(op_min_c) when ((cmd_buf(op_min_c) or cmd_buf(op_max_c)) = '1') else (others => '0'); + res_out(op_max_c) <= (others => '0'); -- unused/redundant + res_out(op_sextb_c) <= res_int(op_sextb_c) when (cmd_buf(op_sextb_c) = '1') else (others => '0'); + res_out(op_sexth_c) <= res_int(op_sexth_c) when (cmd_buf(op_sexth_c) = '1') else (others => '0'); + res_out(op_zexth_c) <= res_int(op_zexth_c) when (cmd_buf(op_zexth_c) = '1') else (others => '0'); + res_out(op_ror_c) <= res_int(op_ror_c) when (cmd_buf(op_ror_c) = '1') else (others => '0'); + res_out(op_rol_c) <= res_int(op_rol_c) when (cmd_buf(op_rol_c) = '1') else (others => '0'); + res_out(op_orcb_c) <= res_int(op_orcb_c) when (cmd_buf(op_orcb_c) = '1') else (others => '0'); + res_out(op_rev8_c) <= res_int(op_rev8_c) when (cmd_buf(op_rev8_c) = '1') else (others => '0'); + -- + res_out(op_sh1add_c) <= res_int(op_sh1add_c) when ((cmd_buf(op_sh1add_c) or cmd_buf(op_sh2add_c) or cmd_buf(op_sh3add_c)) = '1') else (others => '0'); + res_out(op_sh2add_c) <= (others => '0'); -- unused/redundant + res_out(op_sh3add_c) <= (others => '0'); -- unused/redundant + + + -- Output Gate ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + output_gate: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + res_o <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + res_o <= (others => '0'); + if (valid = '1') then + res_o <= res_out(op_andn_c) or res_out(op_orn_c) or res_out(op_xnor_c) or + res_out(op_clz_c) or res_out(op_cpop_c) or -- res_out(op_ctz_c) is unused here + res_out(op_min_c) or -- res_out(op_max_c) is unused here + res_out(op_sextb_c) or res_out(op_sexth_c) or res_out(op_zexth_c) or + res_out(op_ror_c) or res_out(op_rol_c) or + res_out(op_orcb_c) or res_out(op_rev8_c) or + res_out(op_sh1add_c); -- res_out(op_sh2add_c) and res_out(op_sh3add_c) are unused here + end if; + end if; + end process output_gate; + + -- valid output -- + valid_o <= valid; + + +end neorv32_cpu_cp_bitmanip_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_fpu.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_fpu.vhd new file mode 100644 index 0000000..1604207 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_fpu.vhd @@ -0,0 +1,1847 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU Co-Processor: Single-Prec. Floating Point Unit (RISC-V "Zfinx" Extension) >> # +-- # ********************************************************************************************* # +-- # The Zfinx floating-point extension uses the integer register file (x) for all FP operations. # +-- # See the official RISC-V specs (https://github.com/riscv/riscv-zfinx) for more information. # +-- # # +-- # Design Notes: # +-- # * This FPU is based on a multi-cycle architecture and is NOT suited for pipelined operations. # +-- # * The hardware design goal was SIZE (performance comes second). All shift operations are done # +-- # using an iterative approach (one bit per clock cycle, no barrel shifters!). # +-- # * Multiplication (FMUL instruction) will infer DSP blocks (if available). # +-- # * Subnormal numbers are not supported yet - they are "flushed to zero" before entering the # +-- # actual FPU core. # +-- # * Division and sqare root operations (FDIV, FSQRT) and fused multiply-accumulate operations # +-- # (F[N]MADD) are not supported yet - they will raise an illegal instruction exception. # +-- # * Rounding mode <100> ("round to nearest, ties to max magnitude") is not supported yet. # +-- # * Signaling NaNs (sNaN) will not be generated by the hardware at all. However, if inserted by # +-- # the programmer they are handled correctly. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_cp_fpu is + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + cmp_i : in std_ulogic_vector(1 downto 0); -- comparator status + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + fflags_o : out std_ulogic_vector(4 downto 0); -- exception flags + valid_o : out std_ulogic -- data output valid + ); +end neorv32_cpu_cp_fpu; + +architecture neorv32_cpu_cp_fpu_rtl of neorv32_cpu_cp_fpu is + + -- FPU core functions -- + constant op_class_c : std_ulogic_vector(2 downto 0) := "000"; + constant op_comp_c : std_ulogic_vector(2 downto 0) := "001"; + constant op_i2f_c : std_ulogic_vector(2 downto 0) := "010"; + constant op_f2i_c : std_ulogic_vector(2 downto 0) := "011"; + constant op_sgnj_c : std_ulogic_vector(2 downto 0) := "100"; + constant op_minmax_c : std_ulogic_vector(2 downto 0) := "101"; + constant op_addsub_c : std_ulogic_vector(2 downto 0) := "110"; + constant op_mul_c : std_ulogic_vector(2 downto 0) := "111"; + + -- float-to-integer unit -- + component neorv32_cpu_cp_fpu_f2i + port ( + -- control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + start_i : in std_ulogic; -- trigger operation + rmode_i : in std_ulogic_vector(02 downto 0); -- rounding mode + funct_i : in std_ulogic; -- 0=signed, 1=unsigned + -- input -- + sign_i : in std_ulogic; -- sign + exponent_i : in std_ulogic_vector(07 downto 0); -- exponent + mantissa_i : in std_ulogic_vector(22 downto 0); -- mantissa + class_i : in std_ulogic_vector(09 downto 0); -- operand class + -- output -- + result_o : out std_ulogic_vector(31 downto 0); -- integer result + flags_o : out std_ulogic_vector(04 downto 0); -- exception flags + done_o : out std_ulogic -- operation done + ); + end component; + + -- normalizer + rounding unit -- + component neorv32_cpu_cp_fpu_normalizer + port ( + -- control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + start_i : in std_ulogic; -- trigger operation + rmode_i : in std_ulogic_vector(02 downto 0); -- rounding mode + funct_i : in std_ulogic; -- operating mode (0=norm&round, 1=int-to-float) + -- input -- + sign_i : in std_ulogic; -- sign + exponent_i : in std_ulogic_vector(08 downto 0); -- extended exponent + mantissa_i : in std_ulogic_vector(47 downto 0); -- extended mantissa + integer_i : in std_ulogic_vector(31 downto 0); -- integer input + class_i : in std_ulogic_vector(09 downto 0); -- input number class + flags_i : in std_ulogic_vector(04 downto 0); -- exception flags input + -- output -- + result_o : out std_ulogic_vector(31 downto 0); -- result (float or int) + flags_o : out std_ulogic_vector(04 downto 0); -- exception flags + done_o : out std_ulogic -- operation done + ); + end component; + + -- commands (one-hot) -- + type cmd_t is record + instr_class : std_ulogic; + instr_sgnj : std_ulogic; + instr_comp : std_ulogic; + instr_i2f : std_ulogic; + instr_f2i : std_ulogic; + instr_minmax : std_ulogic; + instr_addsub : std_ulogic; + instr_mul : std_ulogic; + funct : std_ulogic_vector(2 downto 0); + end record; + signal cmd : cmd_t; + signal funct_ff : std_ulogic_vector(2 downto 0); + + -- co-processor control engine -- + type ctrl_state_t is (S_IDLE, S_BUSY); + type ctrl_engine_t is record + state : ctrl_state_t; + start : std_ulogic; + valid : std_ulogic; + end record; + signal ctrl_engine : ctrl_engine_t; + + -- floating-point operands -- + type op_data_t is array (0 to 1) of std_ulogic_vector(31 downto 0); + type op_class_t is array (0 to 1) of std_ulogic_vector(09 downto 0); + type fpu_operands_t is record + rs1 : std_ulogic_vector(31 downto 0); -- operand 1 + rs1_class : std_ulogic_vector(09 downto 0); -- operand 1 number class + rs2 : std_ulogic_vector(31 downto 0); -- operand 2 + rs2_class : std_ulogic_vector(09 downto 0); -- operand 2 number class + frm : std_ulogic_vector(02 downto 0); -- rounding mode + end record; + signal op_data : op_data_t; + signal op_class : op_class_t; + signal fpu_operands : fpu_operands_t; + + -- floating-point comparator -- + signal cmp_ff : std_ulogic_vector(01 downto 0); + signal comp_equal_ff : std_ulogic; + signal comp_less_ff : std_ulogic; + + -- functional units interface -- + type fu_interface_t is record + result : std_ulogic_vector(31 downto 0); + flags : std_ulogic_vector(04 downto 0); + start : std_ulogic; + done : std_ulogic; + end record; + signal fu_classify : fu_interface_t; + signal fu_compare : fu_interface_t; + signal fu_sign_inject : fu_interface_t; + signal fu_min_max : fu_interface_t; + signal fu_conv_f2i : fu_interface_t; + signal fu_addsub : fu_interface_t; + signal fu_mul : fu_interface_t; + signal fu_core_done : std_ulogic; -- FU operation completed + + -- integer-to-float -- + type fu_i2f_interface_t is record + result : std_ulogic_vector(31 downto 0); + sign : std_ulogic; + start : std_ulogic; + done : std_ulogic; + end record; + signal fu_conv_i2f : fu_i2f_interface_t; -- float result + + -- multiplier unit -- + type multiplier_t is record + opa : unsigned(23 downto 0); -- mantissa A plus hidden one + opb : unsigned(23 downto 0); -- mantissa B plus hidden one + buf_ff : unsigned(47 downto 0); -- product buffer + sign : std_ulogic; -- resulting sign + product : std_ulogic_vector(47 downto 0); -- product + exp_sum : std_ulogic_vector(08 downto 0); -- incl 1x overflow/underflow bit + exp_res : std_ulogic_vector(09 downto 0); -- resulting exponent incl 2x overflow/underflow bit + -- + res_class : std_ulogic_vector(09 downto 0); + flags : std_ulogic_vector(04 downto 0); -- exception flags + -- + start : std_ulogic; + latency : std_ulogic_vector(02 downto 0); -- unit latency + done : std_ulogic; + end record; + signal multiplier : multiplier_t; + + -- adder/subtractor unit -- + type addsub_t is record + -- input comparison -- + exp_comp : std_ulogic_vector(01 downto 0); -- equal & less + small_exp : std_ulogic_vector(07 downto 0); + small_man : std_ulogic_vector(23 downto 0); -- mantissa + hiden one + large_exp : std_ulogic_vector(07 downto 0); + large_man : std_ulogic_vector(23 downto 0); -- mantissa + hiden one + -- smaller mantissa alginment -- + man_sreg : std_ulogic_vector(23 downto 0); -- mantissa + hidden one + man_g_ext : std_ulogic; + man_r_ext : std_ulogic; + man_s_ext : std_ulogic; + exp_cnt : std_ulogic_vector(08 downto 0); + -- adder/subtractor stage -- + man_comp : std_ulogic; + man_s : std_ulogic_vector(26 downto 0); -- mantissa + hiden one + GRS + man_l : std_ulogic_vector(26 downto 0); -- mantissa + hiden one + GRS + add_stage : std_ulogic_vector(27 downto 0); -- adder result incl. overflow + -- result -- + res_sign : std_ulogic; + res_sum : std_ulogic_vector(27 downto 0); -- mantissa sum (+1 bit) + GRS bits (for rounding) + res_class : std_ulogic_vector(09 downto 0); + flags : std_ulogic_vector(04 downto 0); -- exception flags + -- arbitration -- + start : std_ulogic; + latency : std_ulogic_vector(04 downto 0); -- unit latency + done : std_ulogic; + end record; + signal addsub : addsub_t; + + -- normalizer interface (normalization & rounding and int-to-float) -- + type normalizer_t is record + start : std_ulogic; + mode : std_ulogic; + sign : std_ulogic; + xexp : std_ulogic_vector(08 downto 0); + xmantissa : std_ulogic_vector(47 downto 0); + result : std_ulogic_vector(31 downto 0); + class : std_ulogic_vector(09 downto 0); + flags_in : std_ulogic_vector(04 downto 0); + flags_out : std_ulogic_vector(04 downto 0); + done : std_ulogic; + end record; + signal normalizer : normalizer_t; + +begin + +-- **************************************************************************************************************************** +-- Control +-- **************************************************************************************************************************** + + -- Instruction Decoding ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- one-hot re-encoding -- + cmd.instr_class <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "11100") else '0'; + cmd.instr_comp <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "10100") else '0'; + cmd.instr_i2f <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "11010") else '0'; + cmd.instr_f2i <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "11000") else '0'; + cmd.instr_sgnj <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "00100") else '0'; + cmd.instr_minmax <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "00101") else '0'; + cmd.instr_addsub <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_8_c) = "0000") else '0'; + cmd.instr_mul <= '1' when (ctrl_i(ctrl_ir_funct12_11_c downto ctrl_ir_funct12_7_c) = "00010") else '0'; + + -- binary re-encoding -- + cmd.funct <= op_mul_c when (cmd.instr_mul = '1') else + op_addsub_c when (cmd.instr_addsub = '1') else + op_minmax_c when (cmd.instr_minmax = '1') else + op_sgnj_c when (cmd.instr_sgnj = '1') else + op_f2i_c when (cmd.instr_f2i = '1') else + op_i2f_c when (cmd.instr_i2f = '1') else + op_comp_c when (cmd.instr_comp = '1') else + op_class_c;--when (cmd.instr_class = '1') else (others => '-'); + + + -- Input Operands: Check for subnormal numbers (flush to zero) ---------------------------- + -- ------------------------------------------------------------------------------------------- + -- Subnormal numbers are not supported and are "flushed to zero"! FIXME / TODO + -- rs1 -- + op_data(0)(31) <= rs1_i(31); + op_data(0)(30 downto 23) <= rs1_i(30 downto 23); + op_data(0)(22 downto 00) <= (others => '0') when (rs1_i(30 downto 23) = "00000000") else rs1_i(22 downto 0); -- flush mantissa to zero if subnormal + -- rs2 -- + op_data(1)(31) <= rs2_i(31); + op_data(1)(30 downto 23) <= rs2_i(30 downto 23); + op_data(1)(22 downto 00) <= (others => '0') when (rs2_i(30 downto 23) = "00000000") else rs2_i(22 downto 0); -- flush mantissa to zero if subnormal + + + -- Number Classifier ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + number_classifier: process(op_data) + variable op_m_all_zero_v, op_e_all_zero_v, op_e_all_one_v : std_ulogic; + variable op_is_zero_v, op_is_inf_v, op_is_denorm_v, op_is_nan_v : std_ulogic; + begin + for i in 0 to 1 loop -- for rs1 and rs2 inputs + -- check for all-zero/all-one -- + op_m_all_zero_v := not or_reduce_f(op_data(i)(22 downto 00)); + op_e_all_zero_v := not or_reduce_f(op_data(i)(30 downto 23)); + op_e_all_one_v := and_reduce_f(op_data(i)(30 downto 23)); + + -- check special cases -- + op_is_zero_v := op_e_all_zero_v and op_m_all_zero_v; -- zero + op_is_inf_v := op_e_all_one_v and op_m_all_zero_v; -- infinity + op_is_denorm_v := '0'; -- FIXME / TODO -- op_e_all_zero_v and (not op_m_all_zero_v); -- subnormal + op_is_nan_v := op_e_all_one_v and (not op_m_all_zero_v); -- NaN + + -- actual attributes -- + op_class(i)(fp_class_neg_inf_c) <= op_data(i)(31) and op_is_inf_v; -- negative infinity + op_class(i)(fp_class_neg_norm_c) <= op_data(i)(31) and (not op_is_denorm_v) and (not op_is_nan_v) and (not op_is_inf_v) and (not op_is_zero_v); -- negative normal number + op_class(i)(fp_class_neg_denorm_c) <= op_data(i)(31) and op_is_denorm_v; -- negative subnormal number + op_class(i)(fp_class_neg_zero_c) <= op_data(i)(31) and op_is_zero_v; -- negative zero + op_class(i)(fp_class_pos_zero_c) <= (not op_data(i)(31)) and op_is_zero_v; -- positive zero + op_class(i)(fp_class_pos_denorm_c) <= (not op_data(i)(31)) and op_is_denorm_v; -- positive subnormal number + op_class(i)(fp_class_pos_norm_c) <= (not op_data(i)(31)) and (not op_is_denorm_v) and (not op_is_nan_v) and (not op_is_inf_v) and (not op_is_zero_v); -- positive normal number + op_class(i)(fp_class_pos_inf_c) <= (not op_data(i)(31)) and op_is_inf_v; -- positive infinity + op_class(i)(fp_class_snan_c) <= op_is_nan_v and (not op_data(i)(22)); -- signaling NaN + op_class(i)(fp_class_qnan_c) <= op_is_nan_v and ( op_data(i)(22)); -- quiet NaN + end loop; -- i + end process number_classifier; + + + -- Co-Processor Control Engine ------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + control_engine_fsm: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl_engine.state <= S_IDLE; + ctrl_engine.start <= '0'; + fpu_operands.frm <= (others => def_rst_val_c); + fpu_operands.rs1 <= (others => def_rst_val_c); + fpu_operands.rs1_class <= (others => def_rst_val_c); + fpu_operands.rs2 <= (others => def_rst_val_c); + fpu_operands.rs2_class <= (others => def_rst_val_c); + funct_ff <= (others => def_rst_val_c); + cmp_ff <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- arbiter defaults -- + ctrl_engine.valid <= '0'; + ctrl_engine.start <= '0'; + + -- state machine -- + case ctrl_engine.state is + + when S_IDLE => -- waiting for operation trigger + -- ------------------------------------------------------------ + funct_ff <= cmd.funct; -- actual operation to execute + cmp_ff <= cmp_i; -- main ALU comparator + -- rounding mode -- + -- TODO / FIXME "round to nearest, ties to max magnitude" (0b100) is not supported yet + if (ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_0_c) = "111") then + fpu_operands.frm <= '0' & ctrl_i(ctrl_alu_frm1_c downto ctrl_alu_frm0_c); + else + fpu_operands.frm <= '0' & ctrl_i(ctrl_ir_funct3_1_c downto ctrl_ir_funct3_0_c); + end if; + -- + if (start_i = '1') then + -- operand data -- + fpu_operands.rs1 <= op_data(0); + fpu_operands.rs1_class <= op_class(0); + fpu_operands.rs2 <= op_data(1); + fpu_operands.rs2_class <= op_class(1); + -- execute! -- + ctrl_engine.start <= '1'; + ctrl_engine.state <= S_BUSY; + end if; + + when S_BUSY => -- operation in progress (multi-cycle) + -- ----------------------------------------------------------- + if (fu_core_done = '1') then -- processing done? + ctrl_engine.valid <= '1'; + ctrl_engine.state <= S_IDLE; + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + ctrl_engine.state <= S_IDLE; + + end case; + end if; + end process control_engine_fsm; + + -- operation done / valid output -- + valid_o <= ctrl_engine.valid; + + + -- Functional Unit Interface (operation-start trigger) ------------------------------------ + -- ------------------------------------------------------------------------------------------- + fu_classify.start <= ctrl_engine.start and cmd.instr_class; + fu_compare.start <= ctrl_engine.start and cmd.instr_comp; + fu_sign_inject.start <= ctrl_engine.start and cmd.instr_sgnj; + fu_min_max.start <= ctrl_engine.start and cmd.instr_minmax; + fu_conv_i2f.start <= ctrl_engine.start and cmd.instr_i2f; + fu_conv_f2i.start <= ctrl_engine.start and cmd.instr_f2i; + fu_addsub.start <= ctrl_engine.start and cmd.instr_addsub; + fu_mul.start <= ctrl_engine.start and cmd.instr_mul; + + +-- **************************************************************************************************************************** +-- FPU Core - Functional Units +-- **************************************************************************************************************************** + + -- Number Classifier (FCLASS) ------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + fu_classify.flags <= (others => '0'); -- does not generate flags at all + fu_classify.result(31 downto 10) <= (others => '0'); + fu_classify.result(09 downto 00) <= fpu_operands.rs1_class; + fu_classify.done <= fu_classify.start; + + + -- Floating-Point Comparator -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + float_comparator: process(rstn_i, clk_i) + variable cond_v : std_ulogic_vector(1 downto 0); + begin + if (rstn_i = '0') then + comp_equal_ff <= def_rst_val_c; + comp_less_ff <= def_rst_val_c; + fu_compare.done <= def_rst_val_c; + fu_min_max.done <= def_rst_val_c; + elsif rising_edge(clk_i) then + -- equal -- + if ((fpu_operands.rs1_class(fp_class_pos_inf_c) = '1') and (fpu_operands.rs2_class(fp_class_pos_inf_c) = '1')) or -- +inf == +inf + ((fpu_operands.rs1_class(fp_class_neg_inf_c) = '1') and (fpu_operands.rs2_class(fp_class_neg_inf_c) = '1')) or -- -inf == -inf + (((fpu_operands.rs1_class(fp_class_pos_zero_c) = '1') or (fpu_operands.rs1_class(fp_class_neg_zero_c) = '1')) and + ((fpu_operands.rs2_class(fp_class_pos_zero_c) = '1') or (fpu_operands.rs2_class(fp_class_neg_zero_c) = '1'))) or -- +/-zero == +/-zero + (cmp_ff(cmp_equal_c) = '1') then -- identical in every way (comparator result from main ALU) + comp_equal_ff <= '1'; + else + comp_equal_ff <= '0'; + end if; + + -- less than -- + if ((fpu_operands.rs1_class(fp_class_pos_inf_c) = '1') and (fpu_operands.rs2_class(fp_class_pos_inf_c) = '1')) or -- +inf !< +inf + ((fpu_operands.rs1_class(fp_class_neg_inf_c) = '1') and (fpu_operands.rs2_class(fp_class_neg_inf_c) = '1')) or -- -inf !< -inf + (((fpu_operands.rs1_class(fp_class_pos_zero_c) = '1') or (fpu_operands.rs1_class(fp_class_neg_zero_c) = '1')) and + ((fpu_operands.rs2_class(fp_class_pos_zero_c) = '1') or (fpu_operands.rs2_class(fp_class_neg_zero_c) = '1'))) then -- +/-zero !< +/-zero + comp_less_ff <= '0'; + else + cond_v := fpu_operands.rs1(31) & fpu_operands.rs2(31); + case cond_v is + when "10" => comp_less_ff <= '1'; -- rs1 negative, rs2 positive + when "01" => comp_less_ff <= '0'; -- rs1 positive, rs2 negative + when "00" => comp_less_ff <= cmp_ff(cmp_less_c); -- both positive (comparator result from main ALU) + when "11" => comp_less_ff <= not cmp_ff(cmp_less_c); -- both negative (comparator result from main ALU) + when others => comp_less_ff <= '0'; -- undefined + end case; + end if; + + -- comparator latency -- + fu_compare.done <= fu_compare.start; -- for actual comparison operation + fu_min_max.done <= fu_min_max.start; -- for min/max operations + end if; + end process float_comparator; + + + -- Comparison (FEQ/FLT/FLE) --------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + float_comparison: process(fpu_operands, ctrl_i, comp_equal_ff, comp_less_ff) + variable snan_v : std_ulogic; -- at least one input is sNaN + variable qnan_v : std_ulogic; -- at least one input is qNaN + begin + -- check for NaN -- + snan_v := fpu_operands.rs1_class(fp_class_snan_c) or fpu_operands.rs2_class(fp_class_snan_c); + qnan_v := fpu_operands.rs1_class(fp_class_qnan_c) or fpu_operands.rs2_class(fp_class_qnan_c); + + -- condition evaluation -- + fu_compare.result <= (others => '0'); + case ctrl_i(ctrl_ir_funct3_1_c downto ctrl_ir_funct3_0_c) is + when "00" => -- FLE: less than or equal + fu_compare.result(0) <= (comp_less_ff or comp_equal_ff) and (not (snan_v or qnan_v)); -- result is zero if either input is NaN + when "01" => -- FLT: less than + fu_compare.result(0) <= comp_less_ff and (not (snan_v or qnan_v)); -- result is zero if either input is NaN + when "10" => -- FEQ: equal + fu_compare.result(0) <= comp_equal_ff and (not (snan_v or qnan_v)); -- result is zero if either input is NaN + when others => -- undefined + fu_compare.result(0) <= '0'; + end case; + end process float_comparison; + + -- latency -- + -- -> done in "float_comparator" + + -- exceptions -- + fu_compare.flags <= (others => '0'); -- does not generate exceptions here, but normalizer can generate exceptions + + + -- Min/Max Select (FMIN/FMAX) ------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + min_max_select: process(fpu_operands, comp_less_ff, fu_compare, ctrl_i) + variable cond_v : std_ulogic_vector(2 downto 0); + begin + -- comparison restul - check for special cases: -0 is less than +0 + if ((fpu_operands.rs1_class(fp_class_neg_zero_c) = '1') and (fpu_operands.rs2_class(fp_class_pos_zero_c) = '1')) then + cond_v(0) := ctrl_i(ctrl_ir_funct3_0_c); + elsif ((fpu_operands.rs1_class(fp_class_pos_zero_c) = '1') and (fpu_operands.rs2_class(fp_class_neg_zero_c) = '1')) then + cond_v(0) := not ctrl_i(ctrl_ir_funct3_0_c); + else -- "normal= comparison + cond_v(0) := comp_less_ff xnor ctrl_i(ctrl_ir_funct3_0_c); -- min/max select + end if; + + -- nmumber NaN check -- + cond_v(2) := fpu_operands.rs1_class(fp_class_snan_c) or fpu_operands.rs1_class(fp_class_qnan_c); + cond_v(1) := fpu_operands.rs2_class(fp_class_snan_c) or fpu_operands.rs2_class(fp_class_qnan_c); + + -- data output -- + case cond_v is + when "000" => fu_min_max.result <= fpu_operands.rs1; + when "001" => fu_min_max.result <= fpu_operands.rs2; + when "010" | "011" => fu_min_max.result <= fpu_operands.rs1; -- if one input is NaN output the non-NaN one + when "100" | "101" => fu_min_max.result <= fpu_operands.rs2; -- if one input is NaN output the non-NaN one + when others => fu_min_max.result <= fp_single_qnan_c; -- output quiet NaN if both inputs are NaN + end case; + end process min_max_select; + + -- latency -- + -- -> done in "float_comparator" + + -- exceptions -- + fu_min_max.flags <= (others => '0'); -- does not generate exceptions here, but normalizer can generate exceptions + + + -- Convert: Float to [unsigned] Integer (FCVT.S.W) ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_cp_fpu_f2i_inst: neorv32_cpu_cp_fpu_f2i + port map ( + -- control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + start_i => fu_conv_f2i.start, -- trigger operation + rmode_i => fpu_operands.frm, -- rounding mode + funct_i => ctrl_i(ctrl_ir_funct12_0_c), -- 0=signed, 1=unsigned + -- input -- + sign_i => fpu_operands.rs1(31), -- sign + exponent_i => fpu_operands.rs1(30 downto 23), -- exponent + mantissa_i => fpu_operands.rs1(22 downto 00), -- mantissa + class_i => fpu_operands.rs1_class, -- operand class + -- output -- + result_o => fu_conv_f2i.result, -- integer result + flags_o => fu_conv_f2i.flags, -- exception flags + done_o => fu_conv_f2i.done -- operation done + ); + + + -- Sign-Injection (FSGNJ) ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + sign_injector: process(ctrl_i, fpu_operands) + begin + case ctrl_i(ctrl_ir_funct3_1_c downto ctrl_ir_funct3_0_c) is + when "00" => fu_sign_inject.result(31) <= fpu_operands.rs2(31); -- FSGNJ + when "01" => fu_sign_inject.result(31) <= not fpu_operands.rs2(31); -- FSGNJN + when "10" => fu_sign_inject.result(31) <= fpu_operands.rs1(31) xor fpu_operands.rs2(31); -- FSGNJX + when others => fu_sign_inject.result(31) <= fpu_operands.rs2(31); -- undefined + end case; + fu_sign_inject.result(30 downto 0) <= fpu_operands.rs1(30 downto 0); + fu_sign_inject.flags <= (others => '0'); -- does not generate flags + end process sign_injector; + + -- latency -- + fu_sign_inject.done <= fu_sign_inject.start; + + + -- Convert: [unsigned] Integer to Float (FCVT.W.S) ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + convert_i2f: process(rstn_i, clk_i) + begin + -- this process only computes the absolute input value + -- the actual conversion is done by the normalizer + if (rstn_i = '0') then + fu_conv_i2f.result <= (others => def_rst_val_c); + fu_conv_i2f.sign <= def_rst_val_c; + elsif rising_edge(clk_i) then + if (ctrl_i(ctrl_ir_funct12_0_c) = '0') and (rs1_i(31) = '1') then -- convert signed integer + fu_conv_i2f.result <= std_ulogic_vector(0 - unsigned(rs1_i)); + fu_conv_i2f.sign <= rs1_i(31); -- original sign + else -- convert unsigned integer + fu_conv_i2f.result <= rs1_i; + fu_conv_i2f.sign <= '0'; + end if; + fu_conv_i2f.done <= fu_conv_i2f.start; -- actual conversion is done by the normalizer unit + end if; + end process convert_i2f; + + + -- Multiplier Core (FMUL) ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + multiplier_core: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + multiplier.opa <= (others => '-'); -- these might be DSP regs! + multiplier.opb <= (others => '-'); -- these might be DSP regs! + multiplier.buf_ff <= (others => '-'); -- these might be DSP regs! + multiplier.product <= (others => '-'); -- these might be DSP regs! + multiplier.sign <= def_rst_val_c; + multiplier.exp_res <= (others => def_rst_val_c); + multiplier.flags(fp_exc_of_c) <= def_rst_val_c; + multiplier.flags(fp_exc_uf_c) <= def_rst_val_c; + multiplier.flags(fp_exc_nv_c) <= def_rst_val_c; + multiplier.latency <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- multiplier core -- + if (multiplier.start = '1') then -- FIXME / TODO remove buffer? + multiplier.opa <= unsigned('1' & fpu_operands.rs1(22 downto 0)); -- append hidden one + multiplier.opb <= unsigned('1' & fpu_operands.rs2(22 downto 0)); -- append hidden one + end if; + multiplier.buf_ff <= multiplier.opa * multiplier.opb; + multiplier.product <= std_ulogic_vector(multiplier.buf_ff(47 downto 0)); -- let the register balancing do the magic here + multiplier.sign <= fpu_operands.rs1(31) xor fpu_operands.rs2(31); -- resulting sign + + -- exponent computation -- + multiplier.exp_res <= std_ulogic_vector(unsigned('0' & multiplier.exp_sum) - 127); + if (multiplier.exp_res(multiplier.exp_res'left) = '1') then -- underflow (exp_res is "negative") + multiplier.flags(fp_exc_of_c) <= '0'; + multiplier.flags(fp_exc_uf_c) <= '1'; + elsif (multiplier.exp_res(multiplier.exp_res'left-1) = '1') then -- overflow + multiplier.flags(fp_exc_of_c) <= '1'; + multiplier.flags(fp_exc_uf_c) <= '0'; + else + multiplier.flags(fp_exc_of_c) <= '0'; + multiplier.flags(fp_exc_uf_c) <= '0'; + end if; + + -- invalid operation -- + multiplier.flags(fp_exc_nv_c) <= + ((fpu_operands.rs1_class(fp_class_pos_zero_c) or fpu_operands.rs1_class(fp_class_neg_zero_c)) and + (fpu_operands.rs2_class(fp_class_pos_inf_c) or fpu_operands.rs2_class(fp_class_neg_inf_c))) or -- mul(+/-zero, +/-inf) + ((fpu_operands.rs1_class(fp_class_pos_inf_c) or fpu_operands.rs1_class(fp_class_neg_inf_c)) and + (fpu_operands.rs2_class(fp_class_pos_zero_c) or fpu_operands.rs2_class(fp_class_neg_zero_c))); -- mul(+/-inf, +/-zero) + + -- latency shift register -- + multiplier.latency <= multiplier.latency(multiplier.latency'left-1 downto 0) & multiplier.start; + end if; + end process multiplier_core; + + -- exponent sum -- + multiplier.exp_sum <= std_ulogic_vector(unsigned('0' & fpu_operands.rs1(30 downto 23)) + unsigned('0' & fpu_operands.rs2(30 downto 23))); + + -- latency -- + multiplier.start <= fu_mul.start; + multiplier.done <= multiplier.latency(multiplier.latency'left); + fu_mul.done <= multiplier.done; + + -- unused exception flags -- + multiplier.flags(fp_exc_dz_c) <= '0'; -- division by zero: not possible here + multiplier.flags(fp_exc_nx_c) <= '0'; -- inexcat: not possible here + + + -- result class -- + multiplier_class_core: process(rstn_i, clk_i) + variable a_pos_norm_v, a_neg_norm_v, b_pos_norm_v, b_neg_norm_v : std_ulogic; + variable a_pos_subn_v, a_neg_subn_v, b_pos_subn_v, b_neg_subn_v : std_ulogic; + variable a_pos_zero_v, a_neg_zero_v, b_pos_zero_v, b_neg_zero_v : std_ulogic; + variable a_pos_inf_v, a_neg_inf_v, b_pos_inf_v, b_neg_inf_v : std_ulogic; + variable a_snan_v, a_qnan_v, b_snan_v, b_qnan_v : std_ulogic; + begin + if (rstn_i = '0') then + multiplier.res_class(fp_class_pos_norm_c) <= def_rst_val_c; + multiplier.res_class(fp_class_neg_norm_c) <= def_rst_val_c; + multiplier.res_class(fp_class_pos_inf_c) <= def_rst_val_c; + multiplier.res_class(fp_class_neg_inf_c) <= def_rst_val_c; + multiplier.res_class(fp_class_pos_zero_c) <= def_rst_val_c; + multiplier.res_class(fp_class_neg_zero_c) <= def_rst_val_c; + elsif rising_edge(clk_i) then + -- minions -- + a_pos_norm_v := fpu_operands.rs1_class(fp_class_pos_norm_c); b_pos_norm_v := fpu_operands.rs2_class(fp_class_pos_norm_c); + a_neg_norm_v := fpu_operands.rs1_class(fp_class_neg_norm_c); b_neg_norm_v := fpu_operands.rs2_class(fp_class_neg_norm_c); + a_pos_subn_v := fpu_operands.rs1_class(fp_class_pos_denorm_c); b_pos_subn_v := fpu_operands.rs2_class(fp_class_pos_denorm_c); + a_neg_subn_v := fpu_operands.rs1_class(fp_class_neg_denorm_c); b_neg_subn_v := fpu_operands.rs2_class(fp_class_neg_denorm_c); + a_pos_zero_v := fpu_operands.rs1_class(fp_class_pos_zero_c); b_pos_zero_v := fpu_operands.rs2_class(fp_class_pos_zero_c); + a_neg_zero_v := fpu_operands.rs1_class(fp_class_neg_zero_c); b_neg_zero_v := fpu_operands.rs2_class(fp_class_neg_zero_c); + a_pos_inf_v := fpu_operands.rs1_class(fp_class_pos_inf_c); b_pos_inf_v := fpu_operands.rs2_class(fp_class_pos_inf_c); + a_neg_inf_v := fpu_operands.rs1_class(fp_class_neg_inf_c); b_neg_inf_v := fpu_operands.rs2_class(fp_class_neg_inf_c); + a_snan_v := fpu_operands.rs1_class(fp_class_snan_c); b_snan_v := fpu_operands.rs2_class(fp_class_snan_c); + a_qnan_v := fpu_operands.rs1_class(fp_class_qnan_c); b_qnan_v := fpu_operands.rs2_class(fp_class_qnan_c); + + -- +normal -- + multiplier.res_class(fp_class_pos_norm_c) <= + (a_pos_norm_v and b_pos_norm_v) or -- +norm * +norm + (a_neg_norm_v and b_neg_norm_v); -- -norm * -norm + -- -normal -- + multiplier.res_class(fp_class_neg_norm_c) <= + (a_pos_norm_v and b_neg_norm_v) or -- +norm * -norm + (a_neg_norm_v and b_pos_norm_v); -- -norm * +norm + + -- +infinity -- + multiplier.res_class(fp_class_pos_inf_c) <= + (a_pos_inf_v and b_pos_inf_v) or -- +inf * +inf + (a_neg_inf_v and b_neg_inf_v) or -- -inf * -inf + (a_pos_norm_v and b_pos_inf_v) or -- +norm * +inf + (a_pos_inf_v and b_pos_norm_v) or -- +inf * +norm + (a_neg_norm_v and b_neg_inf_v) or -- -norm * -inf + (a_neg_inf_v and b_neg_norm_v) or -- -inf * -norm + (a_neg_subn_v and b_neg_inf_v) or -- -denorm * -inf + (a_neg_inf_v and b_neg_subn_v); -- -inf * -denorm + -- -infinity -- + multiplier.res_class(fp_class_neg_inf_c) <= + (a_pos_inf_v and b_neg_inf_v) or -- +inf * -inf + (a_neg_inf_v and b_pos_inf_v) or -- -inf * +inf + (a_pos_norm_v and b_neg_inf_v) or -- +norm * -inf + (a_neg_inf_v and b_pos_norm_v) or -- -inf * +norm + (a_neg_norm_v and b_pos_inf_v) or -- -norm * +inf + (a_pos_inf_v and b_neg_norm_v) or -- +inf * -norm + (a_pos_subn_v and b_neg_inf_v) or -- +denorm * -inf + (a_neg_inf_v and b_pos_subn_v) or -- -inf * +de-norm + (a_neg_subn_v and b_pos_inf_v) or -- -denorm * +inf + (a_pos_inf_v and b_neg_subn_v); -- +inf * -de-norm + + -- +zero -- + multiplier.res_class(fp_class_pos_zero_c) <= + (a_pos_zero_v and b_pos_zero_v) or -- +zero * +zero + (a_pos_zero_v and b_pos_norm_v) or -- +zero * +norm + (a_pos_zero_v and b_pos_subn_v) or -- +zero * +denorm + (a_neg_zero_v and b_neg_zero_v) or -- -zero * -zero + (a_neg_zero_v and b_neg_norm_v) or -- -zero * -norm + (a_neg_zero_v and b_neg_subn_v) or -- -zero * -denorm + (a_pos_norm_v and b_pos_zero_v) or -- +norm * +zero + (a_pos_subn_v and b_pos_zero_v) or -- +denorm * +zero + (a_neg_norm_v and b_neg_zero_v) or -- -norm * -zero + (a_neg_subn_v and b_neg_zero_v); -- -denorm * -zero + + -- -zero -- + multiplier.res_class(fp_class_neg_zero_c) <= + (a_pos_zero_v and b_neg_zero_v) or -- +zero * -zero + (a_pos_zero_v and b_neg_norm_v) or -- +zero * -norm + (a_pos_zero_v and b_neg_subn_v) or -- +zero * -denorm + (a_neg_zero_v and b_pos_zero_v) or -- -zero * +zero + (a_neg_zero_v and b_pos_norm_v) or -- -zero * +norm + (a_neg_zero_v and b_pos_subn_v) or -- -zero * +denorm + (a_neg_norm_v and b_pos_zero_v) or -- -norm * +zero + (a_neg_subn_v and b_pos_zero_v) or -- -denorm * +zero + (a_pos_norm_v and b_neg_zero_v) or -- +norm * -zero + (a_pos_subn_v and b_neg_zero_v); -- +denorm * -zero + + -- sNaN -- + multiplier.res_class(fp_class_snan_c) <= (a_snan_v or b_snan_v); -- any input is sNaN + -- qNaN -- + multiplier.res_class(fp_class_qnan_c) <= + (a_snan_v or b_snan_v) or -- any input is sNaN + (a_qnan_v or b_qnan_v) or -- nay input is qNaN + ((a_pos_inf_v or a_neg_inf_v) and (b_pos_zero_v or b_neg_zero_v)) or -- +/-inf * +/-zero + ((a_pos_zero_v or a_neg_zero_v) and (b_pos_inf_v or b_neg_inf_v)); -- +/-zero * +/-inf + end if; + end process multiplier_class_core; + + -- subnormal result -- + multiplier.res_class(fp_class_pos_denorm_c) <= '0'; -- is evaluated by the normalizer + multiplier.res_class(fp_class_neg_denorm_c) <= '0'; -- is evaluated by the normalizer + + -- unused -- + fu_mul.result <= (others => '0'); + fu_mul.flags <= (others => '0'); + + + -- Adder/Subtractor Core (FADD, FSUB) ----------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + adder_subtractor_core: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + addsub.latency <= (others => def_rst_val_c); + addsub.exp_comp <= (others => def_rst_val_c); + addsub.man_sreg <= (others => def_rst_val_c); + addsub.exp_cnt <= (others => def_rst_val_c); + addsub.man_g_ext <= def_rst_val_c; + addsub.man_r_ext <= def_rst_val_c; + addsub.man_s_ext <= def_rst_val_c; + addsub.man_comp <= def_rst_val_c; + addsub.add_stage <= (others => def_rst_val_c); + addsub.res_sign <= def_rst_val_c; + addsub.flags(fp_exc_nv_c) <= def_rst_val_c; + elsif rising_edge(clk_i) then + -- arbitration / latency -- + if (ctrl_engine.state = S_IDLE) then -- hacky "reset" + addsub.latency <= (others => '0'); + else + addsub.latency(0) <= addsub.start; -- input comparator delay + if (addsub.latency(0) = '1') then + addsub.latency(1) <= '1'; + addsub.latency(2) <= '0'; + elsif (addsub.exp_cnt(7 downto 0) = addsub.large_exp) then -- radix point not yet aligned + addsub.latency(1) <= '0'; + addsub.latency(2) <= addsub.latency(1) and (not addsub.latency(0)); -- "shift done" + end if; + addsub.latency(3) <= addsub.latency(2); -- adder stage + addsub.latency(4) <= addsub.latency(3); -- final stage + end if; + + -- exponent check: find smaller number (radix-offset-only) -- + if (unsigned(fpu_operands.rs1(30 downto 23)) < unsigned(fpu_operands.rs2(30 downto 23))) then + addsub.exp_comp(0) <= '1'; -- rs1 < rs2 + else + addsub.exp_comp(0) <= '0'; -- rs1 >= rs2 + end if; + if (unsigned(fpu_operands.rs1(30 downto 23)) = unsigned(fpu_operands.rs2(30 downto 23))) then + addsub.exp_comp(1) <= '1'; -- rs1 == rs2 + else -- rs1 != rs2 + addsub.exp_comp(1) <= '0'; + end if; + + -- shift right small mantissa to align radix point -- + if (addsub.latency(0) = '1') then + if ((fpu_operands.rs1_class(fp_class_pos_zero_c) or fpu_operands.rs2_class(fp_class_pos_zero_c) or + fpu_operands.rs1_class(fp_class_neg_zero_c) or fpu_operands.rs2_class(fp_class_neg_zero_c)) = '0') then -- no input is zero + addsub.man_sreg <= addsub.small_man; + else + addsub.man_sreg <= (others => '0'); + end if; + addsub.exp_cnt <= '0' & addsub.small_exp; + addsub.man_g_ext <= '0'; + addsub.man_r_ext <= '0'; + addsub.man_s_ext <= '0'; + elsif (addsub.exp_cnt(7 downto 0) /= addsub.large_exp) then -- shift right until same magnitude + addsub.man_sreg <= '0' & addsub.man_sreg(addsub.man_sreg'left downto 1); + addsub.man_g_ext <= addsub.man_sreg(0); + addsub.man_r_ext <= addsub.man_g_ext; + addsub.man_s_ext <= addsub.man_s_ext or addsub.man_r_ext; -- sticky bit + addsub.exp_cnt <= std_ulogic_vector(unsigned(addsub.exp_cnt) + 1); + end if; + + -- mantissa check: find smaller number (magnitude-only) -- + if (unsigned(addsub.man_sreg) <= unsigned(addsub.large_man)) then + addsub.man_comp <= '1'; + else + addsub.man_comp <= '0'; + end if; + + -- actual addition/subtraction (incl. overflow) -- + if ((ctrl_i(ctrl_ir_funct12_7_c) xor (fpu_operands.rs1(31) xor fpu_operands.rs2(31))) = '0') then -- add + addsub.add_stage <= std_ulogic_vector(unsigned('0' & addsub.man_l) + unsigned('0' & addsub.man_s)); + else -- sub + addsub.add_stage <= std_ulogic_vector(unsigned('0' & addsub.man_l) - unsigned('0' & addsub.man_s)); + end if; + + -- result sign -- + if (ctrl_i(ctrl_ir_funct12_7_c) = '0') then -- add + if (fpu_operands.rs1(31) = fpu_operands.rs2(31)) then -- identical signs + addsub.res_sign <= fpu_operands.rs1(31); + else -- different signs + if (addsub.exp_comp(1) = '1') then -- exp are equal (also check relation of mantissas) + addsub.res_sign <= fpu_operands.rs1(31) xor (not addsub.man_comp); + else + addsub.res_sign <= fpu_operands.rs1(31) xor addsub.exp_comp(0); + end if; + end if; + else -- sub + if (fpu_operands.rs1(31) = fpu_operands.rs2(31)) then -- identical signs + if (addsub.exp_comp(1) = '1') then -- exp are equal (also check relation of mantissas) + addsub.res_sign <= fpu_operands.rs1(31) xor (not addsub.man_comp); + else + addsub.res_sign <= fpu_operands.rs1(31) xor addsub.exp_comp(0); + end if; + else -- different signs + addsub.res_sign <= fpu_operands.rs1(31); + end if; + end if; + + -- exception flags -- + addsub.flags(fp_exc_nv_c) <= ((fpu_operands.rs1_class(fp_class_pos_inf_c) or fpu_operands.rs1_class(fp_class_neg_inf_c)) and + (fpu_operands.rs2_class(fp_class_pos_inf_c) or fpu_operands.rs2_class(fp_class_neg_inf_c))); -- +/-inf +/- +/-inf + end if; + end process adder_subtractor_core; + + -- exceptions - unused -- + addsub.flags(fp_exc_dz_c) <= '0'; -- division by zero -> not possible + addsub.flags(fp_exc_of_c) <= '0'; -- not possible here (but may occur in normalizer) + addsub.flags(fp_exc_uf_c) <= '0'; -- not possible here (but may occur in normalizer) + addsub.flags(fp_exc_nx_c) <= '0'; -- not possible here (but may occur in normalizer) + + -- exponent check: find smaller number (magnitude-only) -- + addsub.small_exp <= fpu_operands.rs1(30 downto 23) when (addsub.exp_comp(0) = '1') else fpu_operands.rs2(30 downto 23); + addsub.large_exp <= fpu_operands.rs2(30 downto 23) when (addsub.exp_comp(0) = '1') else fpu_operands.rs1(30 downto 23); + addsub.small_man <= ('1' & fpu_operands.rs1(22 downto 00)) when (addsub.exp_comp(0) = '1') else ('1' & fpu_operands.rs2(22 downto 00)); + addsub.large_man <= ('1' & fpu_operands.rs2(22 downto 00)) when (addsub.exp_comp(0) = '1') else ('1' & fpu_operands.rs1(22 downto 00)); + + -- mantissa check: find smaller number (magnitude-only) -- + addsub.man_s <= (addsub.man_sreg & addsub.man_g_ext & addsub.man_r_ext & addsub.man_s_ext) when (addsub.man_comp = '1') else (addsub.large_man & "000"); + addsub.man_l <= (addsub.large_man & "000") when (addsub.man_comp = '1') else (addsub.man_sreg & addsub.man_g_ext & addsub.man_r_ext & addsub.man_s_ext); + + -- latency -- + addsub.start <= fu_addsub.start; + addsub.done <= addsub.latency(addsub.latency'left); + fu_addsub.done <= addsub.done; + + -- mantissa result -- + addsub.res_sum <= addsub.add_stage(27 downto 0); + + + -- result class -- + adder_subtractor_class_core: process(rstn_i, clk_i) + variable a_pos_norm_v, a_neg_norm_v, b_pos_norm_v, b_neg_norm_v : std_ulogic; + variable a_pos_subn_v, a_neg_subn_v, b_pos_subn_v, b_neg_subn_v : std_ulogic; + variable a_pos_zero_v, a_neg_zero_v, b_pos_zero_v, b_neg_zero_v : std_ulogic; + variable a_pos_inf_v, a_neg_inf_v, b_pos_inf_v, b_neg_inf_v : std_ulogic; + variable a_snan_v, a_qnan_v, b_snan_v, b_qnan_v : std_ulogic; + begin + if (rstn_i = '0') then + addsub.res_class(fp_class_pos_inf_c) <= def_rst_val_c; + addsub.res_class(fp_class_neg_inf_c) <= def_rst_val_c; + addsub.res_class(fp_class_pos_zero_c) <= def_rst_val_c; + addsub.res_class(fp_class_neg_zero_c) <= def_rst_val_c; + addsub.res_class(fp_class_qnan_c) <= def_rst_val_c; + elsif rising_edge(clk_i) then + -- minions -- + a_pos_norm_v := fpu_operands.rs1_class(fp_class_pos_norm_c); b_pos_norm_v := fpu_operands.rs2_class(fp_class_pos_norm_c); + a_neg_norm_v := fpu_operands.rs1_class(fp_class_neg_norm_c); b_neg_norm_v := fpu_operands.rs2_class(fp_class_neg_norm_c); + a_pos_subn_v := fpu_operands.rs1_class(fp_class_pos_denorm_c); b_pos_subn_v := fpu_operands.rs2_class(fp_class_pos_denorm_c); + a_neg_subn_v := fpu_operands.rs1_class(fp_class_neg_denorm_c); b_neg_subn_v := fpu_operands.rs2_class(fp_class_neg_denorm_c); + a_pos_zero_v := fpu_operands.rs1_class(fp_class_pos_zero_c); b_pos_zero_v := fpu_operands.rs2_class(fp_class_pos_zero_c); + a_neg_zero_v := fpu_operands.rs1_class(fp_class_neg_zero_c); b_neg_zero_v := fpu_operands.rs2_class(fp_class_neg_zero_c); + a_pos_inf_v := fpu_operands.rs1_class(fp_class_pos_inf_c); b_pos_inf_v := fpu_operands.rs2_class(fp_class_pos_inf_c); + a_neg_inf_v := fpu_operands.rs1_class(fp_class_neg_inf_c); b_neg_inf_v := fpu_operands.rs2_class(fp_class_neg_inf_c); + a_snan_v := fpu_operands.rs1_class(fp_class_snan_c); b_snan_v := fpu_operands.rs2_class(fp_class_snan_c); + a_qnan_v := fpu_operands.rs1_class(fp_class_qnan_c); b_qnan_v := fpu_operands.rs2_class(fp_class_qnan_c); + + if (ctrl_i(ctrl_ir_funct12_7_c) = '0') then -- addition + -- +infinity -- + addsub.res_class(fp_class_pos_inf_c) <= + (a_pos_inf_v and b_pos_inf_v) or -- +inf + +inf + (a_pos_inf_v and b_pos_zero_v) or -- +inf + +zero + (a_pos_zero_v and b_pos_inf_v) or -- +zero + +inf + (a_pos_inf_v and b_neg_zero_v) or -- +inf + -zero + (a_neg_zero_v and b_pos_inf_v) or -- -zero + +inf + -- + (a_pos_inf_v and b_pos_norm_v) or -- +inf + +norm + (a_pos_norm_v and b_pos_inf_v) or -- +norm + +inf + (a_pos_inf_v and b_pos_subn_v) or -- +inf + +denorm + (a_pos_subn_v and b_pos_inf_v) or -- +denorm + +inf + -- + (a_pos_inf_v and b_neg_norm_v) or -- +inf + -norm + (a_neg_norm_v and b_pos_inf_v) or -- -norm + +inf + (a_pos_inf_v and b_neg_subn_v) or -- +inf + -denorm + (a_neg_subn_v and b_pos_inf_v); -- -denorm + +inf + -- -infinity -- + addsub.res_class(fp_class_neg_inf_c) <= + (a_neg_inf_v and b_neg_inf_v) or -- -inf + -inf + (a_neg_inf_v and b_pos_zero_v) or -- -inf + +zero + (a_pos_zero_v and b_neg_inf_v) or -- +zero + -inf + (a_neg_inf_v and b_neg_zero_v) or -- -inf + -zero + (a_neg_zero_v and b_neg_inf_v) or -- -zero + -inf + -- + (a_neg_inf_v and b_pos_norm_v) or -- -inf + +norm + (a_pos_norm_v and b_neg_inf_v) or -- +norm + -inf + (a_neg_inf_v and b_neg_norm_v) or -- -inf + -norm + (a_neg_norm_v and b_neg_inf_v) or -- -norm + -inf + -- + (a_neg_inf_v and b_pos_subn_v) or -- -inf + +denorm + (a_pos_subn_v and b_neg_inf_v) or -- +denorm + -inf + (a_neg_inf_v and b_neg_subn_v) or -- -inf + -denorm + (a_neg_subn_v and b_neg_inf_v); -- -denorm + -inf + + -- +zero -- + addsub.res_class(fp_class_pos_zero_c) <= + (a_pos_zero_v and b_pos_zero_v) or -- +zero + +zero + (a_pos_zero_v and b_neg_zero_v) or -- +zero + -zero + (a_neg_zero_v and b_pos_zero_v); -- -zero + +zero + -- -zero -- + addsub.res_class(fp_class_neg_zero_c) <= + (a_neg_zero_v and b_neg_zero_v); -- -zero + -zero + + -- qNaN -- + addsub.res_class(fp_class_qnan_c) <= + (a_snan_v or b_snan_v) or -- any input is sNaN + (a_qnan_v or b_qnan_v) or -- any input is qNaN + (a_pos_inf_v and b_neg_inf_v) or -- +inf + -inf + (a_neg_inf_v and b_pos_inf_v); -- -inf + +inf + + else -- subtraction + -- +infinity -- + addsub.res_class(fp_class_pos_inf_c) <= + (a_pos_inf_v and b_neg_inf_v) or -- +inf - -inf + (a_pos_inf_v and b_pos_zero_v) or -- +inf - +zero + (a_pos_inf_v and b_neg_zero_v) or -- +inf - -zero + (a_pos_inf_v and b_pos_norm_v) or -- +inf - +norm + (a_pos_inf_v and b_pos_subn_v) or -- +inf - +denorm + (a_pos_inf_v and b_neg_norm_v) or -- +inf - -norm + (a_pos_inf_v and b_neg_subn_v) or -- +inf - -denorm + -- + (a_pos_zero_v and b_neg_inf_v) or -- +zero - -inf + (a_neg_zero_v and b_neg_inf_v) or -- -zero - -inf + -- + (a_pos_norm_v and b_neg_inf_v) or -- +norm - -inf + (a_pos_subn_v and b_neg_inf_v) or -- +denorm - -inf + (a_neg_norm_v and b_neg_inf_v) or -- -norm - -inf + (a_neg_subn_v and b_neg_inf_v); -- -denorm - -inf + -- -infinity -- + addsub.res_class(fp_class_neg_inf_c) <= + (a_neg_inf_v and b_pos_inf_v) or -- -inf - +inf + (a_neg_inf_v and b_pos_zero_v) or -- -inf - +zero + (a_neg_inf_v and b_neg_zero_v) or -- -inf - -zero + (a_neg_inf_v and b_pos_norm_v) or -- -inf - +norm + (a_neg_inf_v and b_pos_subn_v) or -- -inf - +denorm + (a_neg_inf_v and b_neg_norm_v) or -- -inf - -norm + (a_neg_inf_v and b_neg_subn_v) or -- -inf - -denorm + -- + (a_pos_zero_v and b_pos_inf_v) or -- +zero - +inf + (a_neg_zero_v and b_pos_inf_v) or -- -zero - +inf + -- + (a_pos_norm_v and b_pos_inf_v) or -- +norm - +inf + (a_pos_subn_v and b_pos_inf_v) or -- +denorm - +inf + (a_neg_norm_v and b_pos_inf_v) or -- -norm - +inf + (a_neg_subn_v and b_pos_inf_v); -- -denorm - +inf + + -- +zero -- + addsub.res_class(fp_class_pos_zero_c) <= + (a_pos_zero_v and b_pos_zero_v) or -- +zero - +zero + (a_pos_zero_v and b_neg_zero_v) or -- +zero - -zero + (a_neg_zero_v and b_neg_zero_v); -- -zero - -zero + -- -zero -- + addsub.res_class(fp_class_neg_zero_c) <= + (a_neg_zero_v and b_pos_zero_v); -- -zero - +zero + + -- qNaN -- + addsub.res_class(fp_class_qnan_c) <= + (a_snan_v or b_snan_v) or -- any input is sNaN + (a_qnan_v or b_qnan_v) or -- any input is qNaN + (a_pos_inf_v and b_pos_inf_v) or -- +inf - +inf + (a_neg_inf_v and b_neg_inf_v); -- -inf - -inf + end if; + + -- normal -- + addsub.res_class(fp_class_pos_norm_c) <= (a_pos_norm_v or a_neg_norm_v) and (b_pos_norm_v or b_neg_norm_v); -- +/-norm +/- +-/norm [sign is irrelevant here] + addsub.res_class(fp_class_neg_norm_c) <= (a_pos_norm_v or a_neg_norm_v) and (b_pos_norm_v or b_neg_norm_v); -- +/-norm +/- +-/norm [sign is irrelevant here] + + -- sNaN -- + addsub.res_class(fp_class_snan_c) <= (a_snan_v or b_snan_v); -- any input is sNaN + end if; + end process adder_subtractor_class_core; + + -- subnormal result -- + addsub.res_class(fp_class_pos_denorm_c) <= '0'; -- is evaluated by the normalizer + addsub.res_class(fp_class_neg_denorm_c) <= '0'; -- is evaluated by the normalizer + + -- unused -- + fu_addsub.result <= (others => '0'); + fu_addsub.flags <= (others => '0'); + + +-- **************************************************************************************************************************** +-- FPU Core - Normalize & Round +-- **************************************************************************************************************************** + + -- Normalizer Input ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + normalizer_input_select: process(funct_ff, addsub, multiplier, fu_conv_i2f) + begin + case funct_ff is + when op_addsub_c => -- addition/subtraction + normalizer.mode <= '0'; -- normalization + normalizer.sign <= addsub.res_sign; + normalizer.xexp <= addsub.exp_cnt; + normalizer.xmantissa(47 downto 23) <= addsub.res_sum(27 downto 3); + normalizer.xmantissa(22) <= addsub.res_sum(2); + normalizer.xmantissa(21) <= addsub.res_sum(1); + normalizer.xmantissa(20 downto 01) <= (others => '0'); + normalizer.xmantissa(00) <= addsub.res_sum(0); + normalizer.class <= addsub.res_class; + normalizer.flags_in <= addsub.flags; + normalizer.start <= addsub.done; + when op_mul_c => -- multiplication + normalizer.mode <= '0'; -- normalization + normalizer.sign <= multiplier.sign; + normalizer.xexp <= '0' & multiplier.exp_res(7 downto 0); + normalizer.xmantissa <= multiplier.product; + normalizer.class <= multiplier.res_class; + normalizer.flags_in <= multiplier.flags; + normalizer.start <= multiplier.done; + when others => -- op_i2f_c + normalizer.mode <= '1'; -- int_to_float + normalizer.sign <= fu_conv_i2f.sign; + normalizer.xexp <= "001111111"; -- bias = 127 + normalizer.xmantissa <= (others => '0'); -- don't care + normalizer.class <= (others => '0'); -- don't care + normalizer.flags_in <= (others => '0'); -- no flags yet + normalizer.start <= fu_conv_i2f.done; + end case; + end process normalizer_input_select; + + + -- Normalizer & Rounding Unit ------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_cp_fpu_normalizer_inst: neorv32_cpu_cp_fpu_normalizer + port map ( + -- control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + start_i => normalizer.start, -- trigger operation + rmode_i => fpu_operands.frm, -- rounding mode + funct_i => normalizer.mode, -- operation mode + -- input -- + sign_i => normalizer.sign, -- sign + exponent_i => normalizer.xexp, -- extended exponent + mantissa_i => normalizer.xmantissa, -- extended mantissa + integer_i => fu_conv_i2f.result, -- integer input + class_i => normalizer.class, -- input number class + flags_i => normalizer.flags_in, -- exception flags input + -- output -- + result_o => normalizer.result, -- result (float or int) + flags_o => normalizer.flags_out, -- exception flags + done_o => normalizer.done -- operation done + ); + + +-- **************************************************************************************************************************** +-- FPU Core - Result +-- **************************************************************************************************************************** + + -- Result Output to CPU Pipeline ---------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + output_gate: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + res_o <= (others => def_rst_val_c); + fflags_o <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (ctrl_engine.valid = '1') then + case funct_ff is + when op_class_c => + res_o <= fu_classify.result; + fflags_o <= fu_classify.flags; + when op_comp_c => + res_o <= fu_compare.result; + fflags_o <= fu_compare.flags; + when op_f2i_c => + res_o <= fu_conv_f2i.result; + fflags_o <= fu_conv_f2i.flags; + when op_sgnj_c => + res_o <= fu_sign_inject.result; + fflags_o <= fu_sign_inject.flags; + when op_minmax_c => + res_o <= fu_min_max.result; + fflags_o <= fu_min_max.flags; + when others => -- op_mul_c, op_addsub_c, op_i2f_c, ... + res_o <= normalizer.result; + fflags_o <= normalizer.flags_out; + end case; + else + res_o <= (others => '0'); + fflags_o <= (others => '0'); + end if; + end if; + end process output_gate; + + -- operation done -- + fu_core_done <= fu_compare.done or fu_classify.done or fu_sign_inject.done or fu_min_max.done or normalizer.done or fu_conv_f2i.done; + + +end neorv32_cpu_cp_fpu_rtl; + +-- ########################################################################################################################################### +-- ########################################################################################################################################### + +-- ################################################################################################# +-- # << NEORV32 - Single-Precision Floating-Point Unit: Normalizer and Rounding Unit >> # +-- # ********************************************************************************************* # +-- # This unit also performs integer-to-float conversions. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_cp_fpu_normalizer is + port ( + -- control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + start_i : in std_ulogic; -- trigger operation + rmode_i : in std_ulogic_vector(02 downto 0); -- rounding mode + funct_i : in std_ulogic; -- operating mode (0=norm&round, 1=int-to-float) + -- input -- + sign_i : in std_ulogic; -- sign + exponent_i : in std_ulogic_vector(08 downto 0); -- extended exponent + mantissa_i : in std_ulogic_vector(47 downto 0); -- extended mantissa + integer_i : in std_ulogic_vector(31 downto 0); -- integer input + class_i : in std_ulogic_vector(09 downto 0); -- input number class + flags_i : in std_ulogic_vector(04 downto 0); -- exception flags input + -- output -- + result_o : out std_ulogic_vector(31 downto 0); -- float result + flags_o : out std_ulogic_vector(04 downto 0); -- exception flags output + done_o : out std_ulogic -- operation done + ); +end neorv32_cpu_cp_fpu_normalizer; + +architecture neorv32_cpu_cp_fpu_normalizer_rtl of neorv32_cpu_cp_fpu_normalizer is + + -- controller -- + type ctrl_engine_state_t is (S_IDLE, S_PREPARE_I2F, S_CHECK_I2F, S_PREPARE_NORM, S_PREPARE_SHIFT, S_NORMALIZE_BUSY, S_ROUND, S_CHECK, S_FINALIZE); + type ctrl_t is record + state : ctrl_engine_state_t; -- current state + norm_r : std_ulogic; -- normalization round 0 or 1 + cnt : std_ulogic_vector(08 downto 0); -- interation counter/exponent (incl. overflow) + cnt_pre : std_ulogic_vector(08 downto 0); + cnt_of : std_ulogic; -- counter overflow + cnt_uf : std_ulogic; -- counter underflow + rounded : std_ulogic; -- output is rounded + res_sgn : std_ulogic; + res_exp : std_ulogic_vector(07 downto 0); + res_man : std_ulogic_vector(22 downto 0); + class : std_ulogic_vector(09 downto 0); + flags : std_ulogic_vector(04 downto 0); + end record; + signal ctrl : ctrl_t; + + -- normalization shift register -- + type sreg_t is record + done : std_ulogic; + dir : std_ulogic; -- shift direction: 0=right, 1=left + zero : std_ulogic; + upper : std_ulogic_vector(31 downto 0); + lower : std_ulogic_vector(22 downto 0); + ext_g : std_ulogic; -- guard bit + ext_r : std_ulogic; -- round bit + ext_s : std_ulogic; -- sticky bit + end record; + signal sreg : sreg_t; + + -- rounding unit -- + type round_t is record + en : std_ulogic; -- enable rounding + sub : std_ulogic; -- 0=decrement, 1=increment + output : std_ulogic_vector(24 downto 0); -- mantissa size + hidden one + 1 + end record; + signal round : round_t; + +begin + + -- Control Engine ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ctrl_engine: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl.state <= S_IDLE; + ctrl.norm_r <= def_rst_val_c; + ctrl.cnt <= (others => def_rst_val_c); + ctrl.cnt_pre <= (others => def_rst_val_c); + ctrl.cnt_of <= def_rst_val_c; + ctrl.cnt_uf <= def_rst_val_c; + ctrl.rounded <= def_rst_val_c; + ctrl.res_exp <= (others => def_rst_val_c); + ctrl.res_man <= (others => def_rst_val_c); + ctrl.res_sgn <= def_rst_val_c; + ctrl.class <= (others => def_rst_val_c); + ctrl.flags <= (others => def_rst_val_c); + -- + sreg.upper <= (others => def_rst_val_c); + sreg.lower <= (others => def_rst_val_c); + sreg.dir <= def_rst_val_c; + sreg.ext_g <= def_rst_val_c; + sreg.ext_r <= def_rst_val_c; + sreg.ext_s <= def_rst_val_c; + -- + done_o <= '0'; + elsif rising_edge(clk_i) then + -- defaults -- + ctrl.cnt_pre <= ctrl.cnt; + done_o <= '0'; + + -- exponent counter underflow/overflow -- + if ((ctrl.cnt_pre(8 downto 7) = "01") and (ctrl.cnt(8 downto 7) = "10")) then -- overflow + ctrl.cnt_of <= '1'; + elsif (ctrl.cnt_pre(8 downto 7) = "00") and (ctrl.cnt(8 downto 7) = "11") then -- underflow + ctrl.cnt_uf <= '1'; + end if; + + -- fsm -- + case ctrl.state is + + when S_IDLE => -- wait for operation trigger + -- ------------------------------------------------------------ + ctrl.norm_r <= '0'; -- start with first normalization + ctrl.rounded <= '0'; -- not rounded yet + ctrl.cnt_of <= '0'; + ctrl.cnt_uf <= '0'; + -- + if (start_i = '1') then + ctrl.cnt <= exponent_i; + ctrl.res_sgn <= sign_i; + ctrl.class <= class_i; + ctrl.flags <= flags_i; + if (funct_i = '0') then -- float -> float + ctrl.state <= S_PREPARE_NORM; + else -- integer -> float + ctrl.state <= S_PREPARE_I2F; + end if; + end if; + + when S_PREPARE_I2F => -- prepare integer-to-float conversion + -- ------------------------------------------------------------ + sreg.upper <= integer_i; + sreg.lower <= (others => '0'); + sreg.ext_g <= '0'; + sreg.ext_r <= '0'; + sreg.ext_s <= '0'; + sreg.dir <= '0'; -- shift right + ctrl.state <= S_CHECK_I2F; + + when S_CHECK_I2F => -- check if converting zero + -- ------------------------------------------------------------ + if (sreg.zero = '1') then -- all zero + ctrl.class(fp_class_pos_zero_c) <= '1'; + ctrl.state <= S_FINALIZE; + else + ctrl.state <= S_NORMALIZE_BUSY; + end if; + + when S_PREPARE_NORM => -- prepare "normal" normalization & rounding + -- ------------------------------------------------------------ + sreg.upper(31 downto 02) <= (others => '0'); + sreg.upper(01 downto 00) <= mantissa_i(47 downto 46); + sreg.lower <= mantissa_i(45 downto 23); + sreg.ext_g <= mantissa_i(22); + sreg.ext_r <= mantissa_i(21); + sreg.ext_s <= or_reduce_f(mantissa_i(20 downto 0)); + -- check for special cases -- + if ((ctrl.class(fp_class_snan_c) or ctrl.class(fp_class_qnan_c) or -- NaN + ctrl.class(fp_class_neg_zero_c) or ctrl.class(fp_class_pos_zero_c) or -- zero + ctrl.class(fp_class_neg_denorm_c) or ctrl.class(fp_class_pos_denorm_c) or -- subnormal + ctrl.class(fp_class_neg_inf_c) or ctrl.class(fp_class_pos_inf_c) or -- infinity + ctrl.flags(fp_exc_uf_c) or -- underflow + ctrl.flags(fp_exc_of_c) or -- overflow + ctrl.flags(fp_exc_nv_c)) = '1') then -- invalid + ctrl.state <= S_FINALIZE; + else + ctrl.state <= S_PREPARE_SHIFT; + end if; + + when S_PREPARE_SHIFT => -- prepare shift direction (for "normal" normalization only) + -- ------------------------------------------------------------ + if (sreg.zero = '0') then -- number < 1.0 + sreg.dir <= '0'; -- shift right + else -- number >= 1.0 + sreg.dir <= '1'; -- shift left + end if; + ctrl.state <= S_NORMALIZE_BUSY; + + when S_NORMALIZE_BUSY => -- running normalization cycle + -- ------------------------------------------------------------ + -- shift until normalized or exception -- + if (sreg.done = '1') or (ctrl.cnt_uf = '1') or (ctrl.cnt_of = '1') then + -- normalization control -- + ctrl.norm_r <= '1'; + if (ctrl.norm_r = '0') then -- first normalization cycle done + ctrl.state <= S_ROUND; + else -- second normalization cycle done + ctrl.state <= S_CHECK; + end if; + else + if (sreg.dir = '0') then -- shift right + ctrl.cnt <= std_ulogic_vector(unsigned(ctrl.cnt) + 1); + sreg.upper <= '0' & sreg.upper(sreg.upper'left downto 1); + sreg.lower <= sreg.upper(0) & sreg.lower(sreg.lower'left downto 1); + sreg.ext_g <= sreg.lower(0); + sreg.ext_r <= sreg.ext_g; + sreg.ext_s <= sreg.ext_r or sreg.ext_s; -- sticky bit + else -- shift left + ctrl.cnt <= std_ulogic_vector(unsigned(ctrl.cnt) - 1); + sreg.upper <= sreg.upper(sreg.upper'left-1 downto 0) & sreg.lower(sreg.lower'left); + sreg.lower <= sreg.lower(sreg.lower'left-1 downto 0) & sreg.ext_g; + sreg.ext_g <= sreg.ext_r; + sreg.ext_r <= sreg.ext_s; + sreg.ext_s <= sreg.ext_s; -- sticky bit + end if; + end if; + + when S_ROUND => -- rounding cycle (after first normalization) + -- ------------------------------------------------------------ + ctrl.rounded <= ctrl.rounded or round.en; + sreg.upper(31 downto 02) <= (others => '0'); + sreg.upper(01 downto 00) <= round.output(24 downto 23); + sreg.lower <= round.output(22 downto 00); + sreg.ext_g <= '0'; + sreg.ext_r <= '0'; + sreg.ext_s <= '0'; + ctrl.state <= S_PREPARE_SHIFT; + + when S_CHECK => -- check for overflow/underflow + -- ------------------------------------------------------------ + if (ctrl.cnt_uf = '1') then -- underflow + ctrl.flags(fp_exc_uf_c) <= '1'; + elsif (ctrl.cnt_of = '1') then -- overflow + ctrl.flags(fp_exc_of_c) <= '1'; + elsif (ctrl.cnt(7 downto 0) = x"00") then -- subnormal + ctrl.flags(fp_exc_uf_c) <= '1'; + elsif (ctrl.cnt(7 downto 0) = x"FF") then -- infinity + ctrl.flags(fp_exc_of_c) <= '1'; + end if; + ctrl.state <= S_FINALIZE; + + when S_FINALIZE => -- result finalization + -- ------------------------------------------------------------ + -- generate result word (the ORDER of checks is imporatant here!) -- + if (ctrl.class(fp_class_snan_c) = '1') or (ctrl.class(fp_class_qnan_c) = '1') then -- sNaN / qNaN + ctrl.res_sgn <= fp_single_qnan_c(31); + ctrl.res_exp <= fp_single_qnan_c(30 downto 23); + ctrl.res_man <= fp_single_qnan_c(22 downto 00); + elsif (ctrl.class(fp_class_neg_inf_c) = '1') or (ctrl.class(fp_class_pos_inf_c) = '1') or -- infinity + (ctrl.flags(fp_exc_of_c) = '1') then -- overflow + ctrl.res_exp <= fp_single_pos_inf_c(30 downto 23); -- keep original sign + ctrl.res_man <= fp_single_pos_inf_c(22 downto 00); + elsif (ctrl.class(fp_class_neg_zero_c) = '1') or (ctrl.class(fp_class_pos_zero_c) = '1') then -- zero + ctrl.res_sgn <= ctrl.class(fp_class_neg_zero_c); + ctrl.res_exp <= fp_single_pos_zero_c(30 downto 23); + ctrl.res_man <= fp_single_pos_zero_c(22 downto 00); + elsif (ctrl.flags(fp_exc_uf_c) = '1') or -- underflow + (sreg.zero = '1') or (ctrl.class(fp_class_neg_denorm_c) = '1') or (ctrl.class(fp_class_pos_denorm_c) = '1') then -- denormalized (flush-to-zero) + ctrl.res_exp <= fp_single_pos_zero_c(30 downto 23); -- keep original sign + ctrl.res_man <= fp_single_pos_zero_c(22 downto 00); + else -- result is ok + ctrl.res_exp <= ctrl.cnt(7 downto 0); + ctrl.res_man <= sreg.lower; + end if; + -- generate exception flags -- + ctrl.flags(fp_exc_nv_c) <= ctrl.flags(fp_exc_nv_c) or ctrl.class(fp_class_snan_c); -- invalid if input is SIGNALING NaN + ctrl.flags(fp_exc_nx_c) <= ctrl.flags(fp_exc_nx_c) or ctrl.rounded; -- inexcat if result is rounded + -- + done_o <= '1'; + ctrl.state <= S_IDLE; + + when others => -- undefined + -- ------------------------------------------------------------ + ctrl.state <= S_IDLE; + + end case; + end if; + end process ctrl_engine; + + -- stop shifting when normalized -- + sreg.done <= (not or_reduce_f(sreg.upper(sreg.upper'left downto 1))) and sreg.upper(0); -- input is zero, hidden one is set + + -- all-zero including hidden bit -- + sreg.zero <= not or_reduce_f(sreg.upper); + + -- result -- + result_o(31) <= ctrl.res_sgn; + result_o(30 downto 23) <= ctrl.res_exp; + result_o(22 downto 0) <= ctrl.res_man; + + -- exception flags -- + flags_o(fp_exc_nv_c) <= ctrl.flags(fp_exc_nv_c); -- invalid operation + flags_o(fp_exc_dz_c) <= ctrl.flags(fp_exc_dz_c); -- divide by zero + flags_o(fp_exc_of_c) <= ctrl.flags(fp_exc_of_c); -- overflow + flags_o(fp_exc_uf_c) <= ctrl.flags(fp_exc_uf_c); -- underflow + flags_o(fp_exc_nx_c) <= ctrl.flags(fp_exc_nx_c); -- inexact + + + -- Rounding ------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rounding_unit_ctrl: process(rmode_i, sreg) + begin + -- defaults -- + round.en <= '0'; + round.sub <= '0'; + -- rounding mode -- + case rmode_i(2 downto 0) is + when "000" => -- round to nearest, ties to even + if (sreg.ext_g = '0') then + round.en <= '0'; -- round down (do nothing) + else + if (sreg.ext_r = '0') and (sreg.ext_s = '0') then -- tie! + round.en <= sreg.lower(0); -- round up if LSB of mantissa is set + else + round.en <= '1'; -- round up + end if; + end if; + round.sub <= '0'; -- increment + when "001" => -- round towards zero + round.en <= '0'; -- no rounding -> just truncate + when "010" => -- round down (towards -infinity) + round.en <= sreg.ext_g or sreg.ext_r or sreg.ext_s; + round.sub <= '1'; -- decrement + when "011" => -- round up (towards +infinity) + round.en <= sreg.ext_g or sreg.ext_r or sreg.ext_s; + round.sub <= '0'; -- increment + when "100" => -- round to nearest, ties to max magnitude + round.en <= '0'; -- FIXME / TODO + when others => -- undefined + round.en <= '0'; + end case; + end process rounding_unit_ctrl; + + + -- incrementer/decrementer -- + rounding_unit_add: process(round, sreg) + variable tmp_v : std_ulogic_vector(24 downto 0); + begin + tmp_v := '0' & sreg.upper(0) & sreg.lower; + if (round.en = '1') then + if (round.sub = '0') then -- increment + round.output <= std_ulogic_vector(unsigned(tmp_v) + 1); + else -- decrement + round.output <= std_ulogic_vector(unsigned(tmp_v) - 1); + end if; + else -- do nothing + round.output <= tmp_v; + end if; + end process rounding_unit_add; + + +end neorv32_cpu_cp_fpu_normalizer_rtl; + +-- ########################################################################################################################################### +-- ########################################################################################################################################### + +-- ################################################################################################# +-- # << NEORV32 - Single-Precision Floating-Point Unit: Float-To-Int Converter >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_cp_fpu_f2i is + port ( + -- control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + start_i : in std_ulogic; -- trigger operation + rmode_i : in std_ulogic_vector(02 downto 0); -- rounding mode + funct_i : in std_ulogic; -- 0=signed, 1=unsigned + -- input -- + sign_i : in std_ulogic; -- sign + exponent_i : in std_ulogic_vector(07 downto 0); -- exponent + mantissa_i : in std_ulogic_vector(22 downto 0); -- mantissa + class_i : in std_ulogic_vector(09 downto 0); -- operand class + -- output -- + result_o : out std_ulogic_vector(31 downto 0); -- integer result + flags_o : out std_ulogic_vector(04 downto 0); -- exception flags + done_o : out std_ulogic -- operation done + ); +end neorv32_cpu_cp_fpu_f2i; + +architecture neorv32_cpu_cp_fpu_f2i_rtl of neorv32_cpu_cp_fpu_f2i is + + -- controller -- + type ctrl_engine_state_t is (S_IDLE, S_PREPARE_F2I, S_NORMALIZE_BUSY, S_ROUND, S_FINALIZE); + type ctrl_t is record + state : ctrl_engine_state_t; -- current state + unsign : std_ulogic; + cnt : std_ulogic_vector(07 downto 0); -- interation counter/exponent + sign : std_ulogic; + class : std_ulogic_vector(09 downto 0); + rounded : std_ulogic; -- output is rounded + over : std_ulogic; -- output is overflowing + under : std_ulogic; -- output in underflowing + result_tmp : std_ulogic_vector(31 downto 0); + result : std_ulogic_vector(31 downto 0); + end record; + signal ctrl : ctrl_t; + + -- conversion shift register -- + type sreg_t is record + int : std_ulogic_vector(31 downto 0); -- including hidden-zero + mant : std_ulogic_vector(22 downto 0); + ext_g : std_ulogic; -- guard bit + ext_r : std_ulogic; -- round bit + ext_s : std_ulogic; -- sticky bit + end record; + signal sreg : sreg_t; + + -- rounding unit -- + type round_t is record + en : std_ulogic; -- enable rounding + sub : std_ulogic; -- 0=decrement, 1=increment + output : std_ulogic_vector(32 downto 0); -- result + overflow + end record; + signal round : round_t; + +begin + + -- Control Engine ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ctrl_engine: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl.state <= S_IDLE; + ctrl.cnt <= (others => def_rst_val_c); + ctrl.sign <= def_rst_val_c; + ctrl.class <= (others => def_rst_val_c); + ctrl.rounded <= def_rst_val_c; + ctrl.over <= def_rst_val_c; + ctrl.under <= def_rst_val_c; + ctrl.unsign <= def_rst_val_c; + ctrl.result <= (others => def_rst_val_c); + ctrl.result_tmp <= (others => def_rst_val_c); + sreg.int <= (others => def_rst_val_c); + sreg.mant <= (others => def_rst_val_c); + sreg.ext_s <= def_rst_val_c; + done_o <= '0'; + elsif rising_edge(clk_i) then + -- defaults -- + done_o <= '0'; + + -- fsm -- + case ctrl.state is + + when S_IDLE => -- wait for operation trigger + -- ------------------------------------------------------------ + ctrl.rounded <= '0'; -- not rounded yet + ctrl.over <= '0'; -- not overflowing yet + ctrl.under <= '0'; -- not underflowing yet + ctrl.unsign <= funct_i; + sreg.ext_s <= '0'; -- init + if (start_i = '1') then + ctrl.cnt <= exponent_i; + ctrl.sign <= sign_i; + ctrl.class <= class_i; + sreg.mant <= mantissa_i; + ctrl.state <= S_PREPARE_F2I; + end if; + + when S_PREPARE_F2I => -- prepare float-to-integer conversion + -- ------------------------------------------------------------ + if (unsigned(ctrl.cnt) < 126) then -- less than 0.5 + sreg.int <= (others => '0'); + ctrl.under <= '1'; -- this is an underflow! + ctrl.cnt <= (others => '0'); + elsif (unsigned(ctrl.cnt) = 126) then -- num < 1.0 but num >= 0.5 + sreg.int <= (others => '0'); + sreg.mant <= '1' & sreg.mant(sreg.mant'left downto 1); + ctrl.cnt <= (others => '0'); + else + sreg.int <= (others => '0'); + sreg.int(0) <= '1'; -- hidden one + ctrl.cnt <= std_ulogic_vector(unsigned(ctrl.cnt) - 127); -- remove bias to get raw number of left shifts + end if; + -- check terminal cases -- + if ((ctrl.class(fp_class_neg_inf_c) or ctrl.class(fp_class_pos_inf_c) or + ctrl.class(fp_class_neg_zero_c) or ctrl.class(fp_class_pos_zero_c) or + ctrl.class(fp_class_snan_c) or ctrl.class(fp_class_qnan_c)) = '1') then + ctrl.state <= S_FINALIZE; + else + ctrl.state <= S_NORMALIZE_BUSY; + end if; + + when S_NORMALIZE_BUSY => -- running normalization cycle + -- ------------------------------------------------------------ + sreg.ext_s <= sreg.ext_s or or_reduce_f(sreg.mant(sreg.mant'left-2 downto 0)); -- sticky bit + if (or_reduce_f(ctrl.cnt(ctrl.cnt'left-1 downto 0)) = '0') then + if (ctrl.unsign = '0') then -- signed conversion + ctrl.over <= ctrl.over or sreg.int(sreg.int'left); -- update overrun flag again to check for numerical overflow into sign bit + end if; + ctrl.state <= S_ROUND; + else -- shift left + ctrl.cnt <= std_ulogic_vector(unsigned(ctrl.cnt) - 1); + sreg.int <= sreg.int(sreg.int'left-1 downto 0) & sreg.mant(sreg.mant'left); + sreg.mant <= sreg.mant(sreg.mant'left-1 downto 0) & '0'; + ctrl.over <= ctrl.over or sreg.int(sreg.int'left); + end if; + + when S_ROUND => -- rounding cycle + -- ------------------------------------------------------------ + ctrl.rounded <= ctrl.rounded or round.en; + ctrl.over <= ctrl.over or round.output(round.output'left); -- overflow after rounding + ctrl.result_tmp <= round.output(round.output'left-1 downto 0); + ctrl.state <= S_FINALIZE; + + when S_FINALIZE => -- check for corner cases and finalize result + -- ------------------------------------------------------------ + if (ctrl.unsign = '1') then -- unsigned conversion + if (ctrl.class(fp_class_snan_c) = '1') or (ctrl.class(fp_class_qnan_c) = '1') or (ctrl.class(fp_class_pos_inf_c) = '1') or -- NaN or +inf + ((ctrl.sign = '0') and (ctrl.over = '1')) then -- positive out-of-range + ctrl.result <= x"ffffffff"; + elsif (ctrl.class(fp_class_neg_zero_c) = '1') or (ctrl.class(fp_class_pos_zero_c) = '1') or (ctrl.class(fp_class_neg_inf_c) = '1') or -- subnormal zero or -inf + (ctrl.sign = '1') or (ctrl.under = '1') then -- negative out-of-range or underflow + ctrl.result <= x"00000000"; + else + ctrl.result <= ctrl.result_tmp; + end if; + + else -- signed conversion + if (ctrl.class(fp_class_snan_c) = '1') or (ctrl.class(fp_class_qnan_c) = '1') or (ctrl.class(fp_class_pos_inf_c) = '1') or -- NaN or +inf + ((ctrl.sign = '0') and (ctrl.over = '1')) then -- positive out-of-range + ctrl.result <= x"7fffffff"; + elsif (ctrl.class(fp_class_neg_zero_c) = '1') or (ctrl.class(fp_class_pos_zero_c) = '1') or (ctrl.under = '1') then -- subnormal zero or underflow + ctrl.result <= x"00000000"; + elsif (ctrl.class(fp_class_neg_inf_c) = '1') or ((ctrl.sign = '1') and (ctrl.over = '1')) then -- -inf or negative out-of-range + ctrl.result <= x"80000000"; + else -- result is ok, make sign adaption + if (ctrl.sign = '1') then + ctrl.result <= std_ulogic_vector(0 - unsigned(ctrl.result_tmp)); -- abs() + else + ctrl.result <= ctrl.result_tmp; + end if; + end if; + end if; + done_o <= '1'; + ctrl.state <= S_IDLE; + + when others => -- undefined + -- ------------------------------------------------------------ + ctrl.state <= S_IDLE; + + end case; + end if; + end process ctrl_engine; + + -- result -- + result_o <= ctrl.result; + + -- exception flags -- + flags_o(fp_exc_nv_c) <= ctrl.class(fp_class_snan_c) or ctrl.class(fp_class_qnan_c); -- invalid operation + flags_o(fp_exc_dz_c) <= '0'; -- divide by zero - not possible here + flags_o(fp_exc_of_c) <= ctrl.over or ctrl.class(fp_class_pos_inf_c) or ctrl.class(fp_class_neg_inf_c); -- overflow + flags_o(fp_exc_uf_c) <= ctrl.under; -- underflow + flags_o(fp_exc_nx_c) <= ctrl.rounded; -- inexact if result was rounded + + + -- Rounding ------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rounding_unit_ctrl: process(rmode_i, sreg) + begin + -- defaults -- + round.en <= '0'; + round.sub <= '0'; + -- rounding mode -- + case rmode_i(2 downto 0) is + when "000" => -- round to nearest, ties to even + if (sreg.ext_g = '0') then + round.en <= '0'; -- round down (do nothing) + else + if (sreg.ext_r = '0') and (sreg.ext_s = '0') then -- tie! + round.en <= sreg.int(0); -- round up if LSB of integer is set + else + round.en <= '1'; -- round up + end if; + end if; + round.sub <= '0'; -- increment + when "001" => -- round towards zero + round.en <= '0'; -- no rounding -> just truncate + when "010" => -- round down (towards -infinity) + round.en <= sreg.ext_g or sreg.ext_r or sreg.ext_s; + round.sub <= '1'; -- decrement + when "011" => -- round up (towards +infinity) + round.en <= sreg.ext_g or sreg.ext_r or sreg.ext_s; + round.sub <= '0'; -- increment + when "100" => -- round to nearest, ties to max magnitude + round.en <= '0'; -- FIXME / TODO + when others => -- undefined + round.en <= '0'; + end case; + end process rounding_unit_ctrl; + + -- rounding: guard and round bits -- + sreg.ext_g <= sreg.mant(sreg.mant'left); + sreg.ext_r <= sreg.mant(sreg.mant'left-1); + + + -- incrementer/decrementer -- + rounding_unit_add: process(round, sreg) + variable tmp_v : std_ulogic_vector(32 downto 0); -- including overflow + begin + tmp_v := '0' & sreg.int; + if (round.en = '1') then + if (round.sub = '0') then -- increment + round.output <= std_ulogic_vector(unsigned(tmp_v) + 1); + else -- decrement + round.output <= std_ulogic_vector(unsigned(tmp_v) - 1); + end if; + else -- do nothing + round.output <= tmp_v; + end if; + end process rounding_unit_add; + + +end neorv32_cpu_cp_fpu_f2i_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_muldiv.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_muldiv.vhd new file mode 100644 index 0000000..4a3904e --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_muldiv.vhd @@ -0,0 +1,343 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU Co-Processor: Integer Multiplier/Divider Unit (RISC-V "M" Extension) >> # +-- # ********************************************************************************************* # +-- # Multiplier and Divider unit. Implements the RISC-V M CPU extension. # +-- # # +-- # Multiplier core (signed/unsigned) uses classical serial algorithm. Unit latency: 31+3 cycles # +-- # Divider core (unsigned) uses classical serial algorithm. Unit latency: 32+4 cycles # +-- # # +-- # Multiplications can be mapped to DSP blocks (faster!) when FAST_MUL_EN = true. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_cp_muldiv is + generic ( + FAST_MUL_EN : boolean; -- use DSPs for faster multiplication + DIVISION_EN : boolean -- implement divider hardware + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + valid_o : out std_ulogic -- data output valid + ); +end neorv32_cpu_cp_muldiv; + +architecture neorv32_cpu_cp_muldiv_rtl of neorv32_cpu_cp_muldiv is + + -- operations -- + constant cp_op_mul_c : std_ulogic_vector(2 downto 0) := "000"; -- mul + constant cp_op_mulh_c : std_ulogic_vector(2 downto 0) := "001"; -- mulh + constant cp_op_mulhsu_c : std_ulogic_vector(2 downto 0) := "010"; -- mulhsu + constant cp_op_mulhu_c : std_ulogic_vector(2 downto 0) := "011"; -- mulhu + constant cp_op_div_c : std_ulogic_vector(2 downto 0) := "100"; -- div + constant cp_op_divu_c : std_ulogic_vector(2 downto 0) := "101"; -- divu + constant cp_op_rem_c : std_ulogic_vector(2 downto 0) := "110"; -- rem + constant cp_op_remu_c : std_ulogic_vector(2 downto 0) := "111"; -- remu + + -- controller -- + type state_t is (IDLE, DIV_PREPROCESS, PROCESSING, FINALIZE); + signal state : state_t; + signal cnt : std_ulogic_vector(4 downto 0); + signal cp_op : std_ulogic_vector(2 downto 0); -- operation to execute + signal cp_op_ff : std_ulogic_vector(2 downto 0); -- operation that was executed + signal start_div : std_ulogic; + signal start_mul : std_ulogic; + signal operation : std_ulogic; + signal div_opy : std_ulogic_vector(data_width_c-1 downto 0); + signal rs1_is_signed : std_ulogic; + signal rs2_is_signed : std_ulogic; + signal opy_is_zero : std_ulogic; + signal div_res_corr : std_ulogic; + signal out_en : std_ulogic; + + -- divider core -- + signal remainder : std_ulogic_vector(data_width_c-1 downto 0); + signal quotient : std_ulogic_vector(data_width_c-1 downto 0); + signal div_sub : std_ulogic_vector(data_width_c downto 0); + signal div_sign_comp_in : std_ulogic_vector(data_width_c-1 downto 0); + signal div_sign_comp : std_ulogic_vector(data_width_c-1 downto 0); + signal div_res : std_ulogic_vector(data_width_c-1 downto 0); + + -- multiplier core -- + signal mul_product : std_ulogic_vector(63 downto 0); + signal mul_do_add : std_ulogic_vector(data_width_c downto 0); + signal mul_sign_cycle : std_ulogic; + signal mul_p_sext : std_ulogic; + signal mul_op_x : signed(32 downto 0); -- for using DSPs + signal mul_op_y : signed(32 downto 0); -- for using DSPs + +begin + + -- Co-Processor Controller ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + coprocessor_ctrl: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + state <= IDLE; + div_opy <= (others => def_rst_val_c); + cnt <= (others => def_rst_val_c); + cp_op_ff <= (others => def_rst_val_c); + start_div <= '0'; + out_en <= '0'; + valid_o <= '0'; + div_res_corr <= def_rst_val_c; + opy_is_zero <= def_rst_val_c; + elsif rising_edge(clk_i) then + -- defaults -- + start_div <= '0'; + out_en <= '0'; + valid_o <= '0'; + + -- FSM -- + case state is + + when IDLE => + cp_op_ff <= cp_op; + cnt <= "11110"; + if (start_i = '1') then + if (operation = '1') and (DIVISION_EN = true) then -- division + start_div <= '1'; + state <= DIV_PREPROCESS; + else -- multiplication + if (FAST_MUL_EN = true) then + valid_o <= '1'; + state <= FINALIZE; + else + state <= PROCESSING; + end if; + end if; + end if; + + when DIV_PREPROCESS => + -- check relevant input signs -- + if (cp_op = cp_op_div_c) then -- result sign compensation for div? + div_res_corr <= rs1_i(rs1_i'left) xor rs2_i(rs2_i'left); + elsif (cp_op = cp_op_rem_c) then -- result sign compensation for rem? + div_res_corr <= rs1_i(rs1_i'left); + else + div_res_corr <= '0'; + end if; + -- divide by zero? -- + opy_is_zero <= not or_reduce_f(rs2_i); -- set if rs2 = 0 + -- abs(rs2) -- + if ((rs2_i(rs2_i'left) and rs2_is_signed) = '1') then -- signed division? + div_opy <= std_ulogic_vector(0 - unsigned(rs2_i)); -- make positive + else + div_opy <= rs2_i; + end if; + -- + state <= PROCESSING; + + when PROCESSING => + cnt <= std_ulogic_vector(unsigned(cnt) - 1); + if (cnt = "00000") then + valid_o <= '1'; + state <= FINALIZE; + end if; + + when FINALIZE => + out_en <= '1'; + state <= IDLE; + + when others => + state <= IDLE; + end case; + end if; + end process coprocessor_ctrl; + + -- co-processor command -- + cp_op <= ctrl_i(ctrl_ir_funct3_2_c downto ctrl_ir_funct3_0_c); + + -- operation: 0=mul, 1=div -- + operation <= '1' when (cp_op(2) = '1') else '0'; + + -- opx (rs1) signed? -- + rs1_is_signed <= '1' when (cp_op = cp_op_mulh_c) or (cp_op = cp_op_mulhsu_c) or (cp_op = cp_op_div_c) or (cp_op = cp_op_rem_c) else '0'; + + -- opy (rs2) signed? -- + rs2_is_signed <= '1' when (cp_op = cp_op_mulh_c) or (cp_op = cp_op_div_c) or (cp_op = cp_op_rem_c) else '0'; + + -- start MUL operation (do it fast!) -- + start_mul <= '1' when (state = IDLE) and (start_i = '1') and (operation = '0') else '0'; + + + -- Multiplier Core (signed/unsigned) ------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- iterative multiplication (bit-serial) -- + multiplier_core_serial: + if (FAST_MUL_EN = false) generate + multiplier_core: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + mul_product <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (start_mul = '1') then -- start new multiplication + mul_product(63 downto 32) <= (others => '0'); + mul_product(31 downto 00) <= rs2_i; + elsif (state = PROCESSING) or (state = FINALIZE) then -- processing step or sign-finalization step + mul_product(63 downto 31) <= mul_do_add(32 downto 0); + mul_product(30 downto 00) <= mul_product(31 downto 1); + end if; + end if; + end process multiplier_core; + end generate; + + -- parallel multiplication (using DSP blocks) -- + multiplier_core_dsp: + if (FAST_MUL_EN = true) generate + multiplier_core: process(clk_i) + variable tmp_v : signed(65 downto 0); + begin + if rising_edge(clk_i) then + if (start_mul = '1') then + mul_op_x <= signed((rs1_i(rs1_i'left) and rs1_is_signed) & rs1_i); + mul_op_y <= signed((rs2_i(rs2_i'left) and rs2_is_signed) & rs2_i); + end if; + tmp_v := mul_op_x * mul_op_y; + mul_product <= std_ulogic_vector(tmp_v(63 downto 0)); + --mul_buf_ff <= mul_op_x * mul_op_y; + --mul_product <= std_ulogic_vector(mul_buf_ff(63 downto 0)); -- let the register balancing do the magic here + end if; + end process multiplier_core; + end generate; + + -- do another addition (bit-serial) -- + mul_update: process(mul_product, mul_sign_cycle, mul_p_sext, rs1_is_signed, rs1_i) + begin + -- current bit of rs2_i to take care of -- + if (mul_product(0) = '1') then -- multiply with 1 + if (mul_sign_cycle = '1') then -- for signed operations only: take care of negative weighted MSB -> multiply with -1 + mul_do_add <= std_ulogic_vector(unsigned(mul_p_sext & mul_product(63 downto 32)) - unsigned((rs1_i(rs1_i'left) and rs1_is_signed) & rs1_i)); + else -- multiply with +1 + mul_do_add <= std_ulogic_vector(unsigned(mul_p_sext & mul_product(63 downto 32)) + unsigned((rs1_i(rs1_i'left) and rs1_is_signed) & rs1_i)); + end if; + else -- multiply with 0 + mul_do_add <= mul_p_sext & mul_product(63 downto 32); + end if; + end process mul_update; + + -- sign control -- + mul_sign_cycle <= rs2_is_signed when (state = FINALIZE) else '0'; + mul_p_sext <= mul_product(mul_product'left) and rs1_is_signed; + + + -- Divider Core (unsigned) ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + divider_core_serial: + if (DIVISION_EN = true) generate + divider_core: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + quotient <= (others => def_rst_val_c); + remainder <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + if (start_div = '1') then -- start new division + if ((rs1_i(rs1_i'left) and rs1_is_signed) = '1') then -- signed division? + quotient <= std_ulogic_vector(0 - unsigned(rs1_i)); -- make positive + else + quotient <= rs1_i; + end if; + remainder <= (others => '0'); + elsif (state = PROCESSING) or (state = FINALIZE) then -- running? + quotient <= quotient(30 downto 0) & (not div_sub(32)); + if (div_sub(32) = '0') then -- still overflowing + remainder <= div_sub(31 downto 0); + else -- underflow + remainder <= remainder(30 downto 0) & quotient(31); + end if; + end if; + end if; + end process divider_core; + + -- try another subtraction -- + div_sub <= std_ulogic_vector(unsigned('0' & remainder(30 downto 0) & quotient(31)) - unsigned('0' & div_opy)); + + -- result sign compensation -- + div_sign_comp_in <= quotient when (cp_op = cp_op_div_c) else remainder; + div_sign_comp <= std_ulogic_vector(0 - unsigned(div_sign_comp_in)); + div_res <= div_sign_comp when (div_res_corr = '1') and (opy_is_zero = '0') else div_sign_comp_in; + end generate; + + -- no divider -- + divider_core_serial_none: + if (DIVISION_EN = false) generate + remainder <= (others => '0'); + quotient <= (others => '0'); + div_res <= (others => '0'); + end generate; + + + -- Data Output ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + operation_result: process(out_en, cp_op_ff, mul_product, div_res, quotient, opy_is_zero, rs1_i, remainder) + begin + if (out_en = '1') then + case cp_op_ff is + when cp_op_mul_c => + res_o <= mul_product(31 downto 00); + when cp_op_mulh_c | cp_op_mulhsu_c | cp_op_mulhu_c => + res_o <= mul_product(63 downto 32); + when cp_op_div_c => + res_o <= div_res; + when cp_op_divu_c => + res_o <= quotient; + when cp_op_rem_c => + if (opy_is_zero = '0') then + res_o <= div_res; + else + res_o <= rs1_i; + end if; + when others => -- cp_op_remu_c + res_o <= remainder; + end case; + else + res_o <= (others => '0'); + end if; + end process operation_result; + + +end neorv32_cpu_cp_muldiv_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_shifter.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_shifter.vhd new file mode 100644 index 0000000..c1f0736 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_cp_shifter.vhd @@ -0,0 +1,181 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU Co-Processor: Shifter (CPU Core ISA) >> # +-- # ********************************************************************************************* # +-- # Bit-shift unit for base ISA. # +-- # FAST_SHIFT_EN = false (default): Use bit-serial shifter architecture (small but slow) # +-- # FAST_SHIFT_EN = true: Use barrel shifter architecture (large but fast) # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_cp_shifter is + generic ( + FAST_SHIFT_EN : boolean -- use barrel shifter for shift operations + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + shamt_i : in std_ulogic_vector(index_size_f(data_width_c)-1 downto 0); -- shift amount + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + valid_o : out std_ulogic -- data output valid + ); +end neorv32_cpu_cp_shifter; + +architecture neorv32_cpu_cp_shifter_rtl of neorv32_cpu_cp_shifter is + + -- serial shifter -- + type shifter_t is record + busy : std_ulogic; + busy_ff : std_ulogic; + done : std_ulogic; + cnt : std_ulogic_vector(index_size_f(data_width_c)-1 downto 0); + sreg : std_ulogic_vector(data_width_c-1 downto 0); + res : std_ulogic_vector(data_width_c-1 downto 0); + end record; + signal shifter : shifter_t; + + -- barrel shifter -- + type bs_level_t is array (index_size_f(data_width_c) downto 0) of std_ulogic_vector(data_width_c-1 downto 0); + signal bs_level : bs_level_t; + signal bs_result : std_ulogic_vector(data_width_c-1 downto 0); + +begin + + -- Iterative Shifter Core (small but slow) ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + serial_shifter_sync: + if (FAST_SHIFT_EN = false) generate + shifter_unit_sync: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + shifter.busy <= '0'; + shifter.busy_ff <= def_rst_val_c; + shifter.sreg <= (others => def_rst_val_c); + shifter.cnt <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + shifter.busy_ff <= shifter.busy; + if (start_i = '1') then + shifter.busy <= '1'; + elsif (shifter.done = '1') then + shifter.busy <= '0'; + end if; + -- + if (start_i = '1') then -- trigger new shift + shifter.sreg <= rs1_i; -- shift operand + shifter.cnt <= shamt_i; -- shift amount + elsif (or_reduce_f(shifter.cnt) = '1') then -- running shift (cnt != 0) + shifter.cnt <= std_ulogic_vector(unsigned(shifter.cnt) - 1); + if (ctrl_i(ctrl_alu_shift_dir_c) = '0') then -- SLL: shift left logical + shifter.sreg <= shifter.sreg(shifter.sreg'left-1 downto 0) & '0'; + else -- SRL: shift right logical / SRA: shift right arithmetical + shifter.sreg <= (shifter.sreg(shifter.sreg'left) and ctrl_i(ctrl_alu_shift_ar_c)) & shifter.sreg(shifter.sreg'left downto 1); + end if; + end if; + end if; + end process shifter_unit_sync; + end generate; + + -- shift control/output -- + serial_shifter_ctrl: + if (FAST_SHIFT_EN = false) generate + shifter.done <= not or_reduce_f(shifter.cnt(shifter.cnt'left downto 1)); + valid_o <= shifter.busy and shifter.done; + res_o <= shifter.sreg when (shifter.busy = '0') and (shifter.busy_ff = '1') else (others => '0'); + end generate; + + + -- Barrel Shifter Core (fast but large) --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + barrel_shifter_async: + if (FAST_SHIFT_EN = true) generate + shifter_unit_async: process(rs1_i, shamt_i, ctrl_i, bs_level) + begin + -- input level: convert left shifts to right shifts -- + if (ctrl_i(ctrl_alu_shift_dir_c) = '0') then -- is left shift? + bs_level(index_size_f(data_width_c)) <= bit_rev_f(rs1_i); -- reverse bit order of input operand + else + bs_level(index_size_f(data_width_c)) <= rs1_i; + end if; + + -- shifter array -- + for i in index_size_f(data_width_c)-1 downto 0 loop + if (shamt_i(i) = '1') then + bs_level(i)(data_width_c-1 downto data_width_c-(2**i)) <= (others => (bs_level(i+1)(data_width_c-1) and ctrl_i(ctrl_alu_shift_ar_c))); + bs_level(i)((data_width_c-(2**i))-1 downto 0) <= bs_level(i+1)(data_width_c-1 downto 2**i); + else + bs_level(i) <= bs_level(i+1); + end if; + end loop; + + -- re-convert original left shifts -- + if (ctrl_i(ctrl_alu_shift_dir_c) = '0') then + bs_result <= bit_rev_f(bs_level(0)); + else + bs_result <= bs_level(0); + end if; + end process shifter_unit_async; + end generate; + + -- output register -- + barrel_shifter_sync: + if (FAST_SHIFT_EN = true) generate + shifter_unit_sync: process(clk_i) + begin + if rising_edge(clk_i) then + res_o <= (others => '0'); + if (start_i = '1') then + res_o <= bs_result; + end if; + end if; + end process shifter_unit_sync; + end generate; + + -- shift control/output -- + barrel_shifter_ctrl: + if (FAST_SHIFT_EN = true) generate + valid_o <= start_i; + end generate; + + +end neorv32_cpu_cp_shifter_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_decompressor.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_decompressor.vhd new file mode 100644 index 0000000..3684c86 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_decompressor.vhd @@ -0,0 +1,453 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU: Compressed Instructions Decoder (RISC-V "C" Extension) >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_decompressor is + port ( + -- instruction input -- + ci_instr16_i : in std_ulogic_vector(15 downto 0); -- compressed instruction input + -- instruction output -- + ci_illegal_o : out std_ulogic; -- is an illegal compressed instruction + ci_instr32_o : out std_ulogic_vector(31 downto 0) -- 32-bit decompressed instruction + ); +end neorv32_cpu_decompressor; + +architecture neorv32_cpu_decompressor_rtl of neorv32_cpu_decompressor is + + -- compressed instruction layout -- + constant ci_opcode_lsb_c : natural := 0; + constant ci_opcode_msb_c : natural := 1; + constant ci_rd_3_lsb_c : natural := 2; + constant ci_rd_3_msb_c : natural := 4; + constant ci_rd_5_lsb_c : natural := 7; + constant ci_rd_5_msb_c : natural := 11; + constant ci_rs1_3_lsb_c : natural := 7; + constant ci_rs1_3_msb_c : natural := 9; + constant ci_rs1_5_lsb_c : natural := 7; + constant ci_rs1_5_msb_c : natural := 11; + constant ci_rs2_3_lsb_c : natural := 2; + constant ci_rs2_3_msb_c : natural := 4; + constant ci_rs2_5_lsb_c : natural := 2; + constant ci_rs2_5_msb_c : natural := 6; + constant ci_funct3_lsb_c : natural := 13; + constant ci_funct3_msb_c : natural := 15; + +begin + + -- Compressed Instruction Decoder --------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + decompressor: process(ci_instr16_i) + variable imm20_v : std_ulogic_vector(20 downto 0); + variable imm12_v : std_ulogic_vector(12 downto 0); + begin + -- defaults -- + ci_illegal_o <= '0'; + ci_instr32_o <= (others => '0'); + + -- helper: 22-bit sign-extended immediate for J/JAL -- + imm20_v := (others => ci_instr16_i(12)); -- sign extension + imm20_v(00):= '0'; + imm20_v(01):= ci_instr16_i(3); + imm20_v(02):= ci_instr16_i(4); + imm20_v(03):= ci_instr16_i(5); + imm20_v(04):= ci_instr16_i(11); + imm20_v(05):= ci_instr16_i(2); + imm20_v(06):= ci_instr16_i(7); + imm20_v(07):= ci_instr16_i(6); + imm20_v(08):= ci_instr16_i(9); + imm20_v(09):= ci_instr16_i(10); + imm20_v(10):= ci_instr16_i(8); + imm20_v(11):= ci_instr16_i(12); + + -- helper: 12-bit sign-extended immediate for branches -- + imm12_v := (others => ci_instr16_i(12)); -- sign extension + imm12_v(00):= '0'; + imm12_v(01):= ci_instr16_i(3); + imm12_v(02):= ci_instr16_i(4); + imm12_v(03):= ci_instr16_i(10); + imm12_v(04):= ci_instr16_i(11); + imm12_v(05):= ci_instr16_i(2); + imm12_v(06):= ci_instr16_i(5); + imm12_v(07):= ci_instr16_i(6); + imm12_v(08):= ci_instr16_i(12); + + -- actual decoder -- + case ci_instr16_i(ci_opcode_msb_c downto ci_opcode_lsb_c) is + + when "00" => -- C0: Register-Based Loads and Stores + case ci_instr16_i(ci_funct3_msb_c downto ci_funct3_lsb_c) is + + when "000" => -- Illegal_instruction, C.ADDI4SPN + -- ---------------------------------------------------------------------------------------------------------- + -- C.ADDI4SPN + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alui_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "00010"; -- stack pointer + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "01" & ci_instr16_i(ci_rd_3_msb_c downto ci_rd_3_lsb_c); + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_subadd_c; + ci_instr32_o(instr_imm12_msb_c downto instr_imm12_lsb_c) <= (others => '0'); -- zero extend + ci_instr32_o(instr_imm12_lsb_c + 0) <= '0'; + ci_instr32_o(instr_imm12_lsb_c + 1) <= '0'; + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(6); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(11); + ci_instr32_o(instr_imm12_lsb_c + 5) <= ci_instr16_i(12); + ci_instr32_o(instr_imm12_lsb_c + 6) <= ci_instr16_i(7); + ci_instr32_o(instr_imm12_lsb_c + 7) <= ci_instr16_i(8); + ci_instr32_o(instr_imm12_lsb_c + 8) <= ci_instr16_i(9); + ci_instr32_o(instr_imm12_lsb_c + 9) <= ci_instr16_i(10); + -- + ci_illegal_o <= not or_reduce_f(ci_instr16_i(12 downto 2)); -- 12:2 = "00000000000" is official illegal instruction + + when "010" | "011" => -- C.LW / C.FLW + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_load_c; + ci_instr32_o(21 downto 20) <= "00"; + ci_instr32_o(22) <= ci_instr16_i(6); + ci_instr32_o(23) <= ci_instr16_i(10); + ci_instr32_o(24) <= ci_instr16_i(11); + ci_instr32_o(25) <= ci_instr16_i(12); + ci_instr32_o(26) <= ci_instr16_i(5); + ci_instr32_o(31 downto 27) <= (others => '0'); + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_lw_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "01" & ci_instr16_i(ci_rs1_3_msb_c downto ci_rs1_3_lsb_c); -- x8 - x15 + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "01" & ci_instr16_i(ci_rd_3_msb_c downto ci_rd_3_lsb_c); -- x8 - x15 + if (ci_instr16_i(ci_funct3_lsb_c) = '1') then -- C.FLW + ci_illegal_o <= '1'; + end if; + + when "110" | "111" => -- C.SW / C.FSW + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_store_c; + ci_instr32_o(08 downto 07) <= "00"; + ci_instr32_o(09) <= ci_instr16_i(6); + ci_instr32_o(10) <= ci_instr16_i(10); + ci_instr32_o(11) <= ci_instr16_i(11); + ci_instr32_o(25) <= ci_instr16_i(12); + ci_instr32_o(26) <= ci_instr16_i(5); + ci_instr32_o(31 downto 27) <= (others => '0'); + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_sw_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "01" & ci_instr16_i(ci_rs1_3_msb_c downto ci_rs1_3_lsb_c); -- x8 - x15 + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= "01" & ci_instr16_i(ci_rs2_3_msb_c downto ci_rs2_3_lsb_c); -- x8 - x15 + if (ci_instr16_i(ci_funct3_lsb_c) = '1') then -- C.FSW + ci_illegal_o <= '1'; + end if; + + when others => -- undefined + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o <= (others => '-'); + ci_illegal_o <= '1'; + + end case; + + when "01" => -- C1: Control Transfer Instructions, Integer Constant-Generation Instructions + + case ci_instr16_i(ci_funct3_msb_c downto ci_funct3_lsb_c) is + when "101" => -- C.J + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_jal_c; + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "00000"; -- discard return address + ci_instr32_o(19 downto 12) <= imm20_v(19 downto 12); + ci_instr32_o(20) <= imm20_v(11); + ci_instr32_o(30 downto 21) <= imm20_v(10 downto 01); + ci_instr32_o(31) <= imm20_v(20); + + when "001" => -- C.JAL + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_jal_c; + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "00001"; -- save return address to link register + ci_instr32_o(19 downto 12) <= imm20_v(19 downto 12); + ci_instr32_o(20) <= imm20_v(11); + ci_instr32_o(30 downto 21) <= imm20_v(10 downto 01); + ci_instr32_o(31) <= imm20_v(20); + + when "110" => -- C.BEQ + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_branch_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_beq_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "01" & ci_instr16_i(ci_rs1_3_msb_c downto ci_rs1_3_lsb_c); + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= "00000"; -- x0 + ci_instr32_o(07) <= imm12_v(11); + ci_instr32_o(11 downto 08) <= imm12_v(04 downto 01); + ci_instr32_o(30 downto 25) <= imm12_v(10 downto 05); + ci_instr32_o(31) <= imm12_v(12); + + when "111" => -- C.BNEZ + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_branch_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_bne_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "01" & ci_instr16_i(ci_rs1_3_msb_c downto ci_rs1_3_lsb_c); + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= "00000"; -- x0 + ci_instr32_o(07) <= imm12_v(11); + ci_instr32_o(11 downto 08) <= imm12_v(04 downto 01); + ci_instr32_o(30 downto 25) <= imm12_v(10 downto 05); + ci_instr32_o(31) <= imm12_v(12); + + when "010" => -- C.LI + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alui_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_subadd_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "00000"; -- x0 + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_imm12_msb_c downto instr_imm12_lsb_c) <= (others => ci_instr16_i(12)); -- sign extend + ci_instr32_o(instr_imm12_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_instr32_o(instr_imm12_lsb_c + 5) <= ci_instr16_i(12); + + when "011" => -- C.LUI / C.ADDI16SP + -- ---------------------------------------------------------------------------------------------------------- + if (ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c) = "00010") then -- C.ADDI16SP + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alui_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_subadd_c; + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "00010"; -- stack pointer + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "00010"; -- stack pointer + ci_instr32_o(instr_imm12_msb_c downto instr_imm12_lsb_c) <= (others => ci_instr16_i(12)); -- sign extend + ci_instr32_o(instr_imm12_lsb_c + 0) <= '0'; + ci_instr32_o(instr_imm12_lsb_c + 1) <= '0'; + ci_instr32_o(instr_imm12_lsb_c + 2) <= '0'; + ci_instr32_o(instr_imm12_lsb_c + 3) <= '0'; + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_instr32_o(instr_imm12_lsb_c + 5) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 6) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 7) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 8) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 9) <= ci_instr16_i(12); + + else -- C.LUI + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_lui_c; + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_imm20_msb_c downto instr_imm20_lsb_c) <= (others => ci_instr16_i(12)); -- sign extend + ci_instr32_o(instr_imm20_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm20_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm20_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm20_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm20_lsb_c + 4) <= ci_instr16_i(6); + ci_instr32_o(instr_imm20_lsb_c + 5) <= ci_instr16_i(12); + end if; + if (ci_instr16_i(6 downto 2) = "00000") and (ci_instr16_i(12) = '0') then -- reserved + ci_illegal_o <= '1'; + end if; + + when "000" => -- C.NOP (rd=0) / C.ADDI + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alui_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_subadd_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= ci_instr16_i(ci_rs1_5_msb_c downto ci_rs1_5_lsb_c); + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_imm12_msb_c downto instr_imm12_lsb_c) <= (others => ci_instr16_i(12)); -- sign extend + ci_instr32_o(instr_imm12_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_instr32_o(instr_imm12_lsb_c + 5) <= ci_instr16_i(12); + + when "100" => -- C.SRLI, C.SRAI, C.ANDI, C.SUB, C.XOR, C.OR, C.AND, reserved + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "01" & ci_instr16_i(ci_rs1_3_msb_c downto ci_rs1_3_lsb_c); + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "01" & ci_instr16_i(ci_rs1_3_msb_c downto ci_rs1_3_lsb_c); + if (ci_instr16_i(11 downto 10) = "11") then -- register-register operation + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alu_c; + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= "01" & ci_instr16_i(ci_rs2_3_msb_c downto ci_rs2_3_lsb_c); + case ci_instr16_i(6 downto 5) is + when "00" => -- C.SUB + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_subadd_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0100000"; + when "01" => -- C.XOR + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_xor_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0000000"; + when "10" => -- C.OR + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_or_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0000000"; + when others => -- C.AND + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_and_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0000000"; + end case; + else -- register-immediate operation + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alui_c; + case ci_instr16_i(11 downto 10) is + when "00" => -- C.SRLI + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_sr_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0000000"; + ci_instr32_o(instr_imm12_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_illegal_o <= ci_instr16_i(12); + when "01" => -- C.SRAI + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_sr_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0100000"; + ci_instr32_o(instr_imm12_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_illegal_o <= ci_instr16_i(12); + when "10" => -- C.ANDI + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_and_c; + ci_instr32_o(instr_imm12_msb_c downto instr_imm12_lsb_c) <= (others => ci_instr16_i(12)); -- sign extend + ci_instr32_o(instr_imm12_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_instr32_o(instr_imm12_lsb_c + 5) <= ci_instr16_i(12); + when others => -- register-register operation + NULL; + end case; + end if; + if (ci_instr16_i(12 downto 10) = "111") then -- reserved / undefined + ci_illegal_o <= '1'; + end if; + + when others => -- undefined + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o <= (others => '-'); + ci_illegal_o <= '1'; + + end case; + + when "10" => -- C2: Stack-Pointer-Based Loads and Stores, Control Transfer Instructions + case ci_instr16_i(ci_funct3_msb_c downto ci_funct3_lsb_c) is + + when "000" => -- C.SLLI + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alui_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= ci_instr16_i(ci_rs1_5_msb_c downto ci_rs1_5_lsb_c); + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rs1_5_msb_c downto ci_rs1_5_lsb_c); + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_sll_c; + ci_instr32_o(instr_funct7_msb_c downto instr_funct7_lsb_c) <= "0000000"; + ci_instr32_o(instr_imm12_lsb_c + 0) <= ci_instr16_i(2); + ci_instr32_o(instr_imm12_lsb_c + 1) <= ci_instr16_i(3); + ci_instr32_o(instr_imm12_lsb_c + 2) <= ci_instr16_i(4); + ci_instr32_o(instr_imm12_lsb_c + 3) <= ci_instr16_i(5); + ci_instr32_o(instr_imm12_lsb_c + 4) <= ci_instr16_i(6); + ci_illegal_o <= ci_instr16_i(12); + + when "010" | "011" => -- C.LWSP / C.FLWSP + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_load_c; + ci_instr32_o(21 downto 20) <= "00"; + ci_instr32_o(22) <= ci_instr16_i(4); + ci_instr32_o(23) <= ci_instr16_i(5); + ci_instr32_o(24) <= ci_instr16_i(6); + ci_instr32_o(25) <= ci_instr16_i(12); + ci_instr32_o(26) <= ci_instr16_i(2); + ci_instr32_o(27) <= ci_instr16_i(3); + ci_instr32_o(31 downto 28) <= (others => '0'); + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_lw_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "00010"; -- stack pointer + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + if (ci_instr16_i(ci_funct3_lsb_c) = '1') then -- C.FLWSP + ci_illegal_o <= '1'; + end if; + + when "110" | "111" => -- C.SWSP / C.FSWSP + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_store_c; + ci_instr32_o(08 downto 07) <= "00"; + ci_instr32_o(09) <= ci_instr16_i(9); + ci_instr32_o(10) <= ci_instr16_i(10); + ci_instr32_o(11) <= ci_instr16_i(11); + ci_instr32_o(25) <= ci_instr16_i(12); + ci_instr32_o(26) <= ci_instr16_i(7); + ci_instr32_o(27) <= ci_instr16_i(8); + ci_instr32_o(31 downto 28) <= (others => '0'); + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= funct3_sw_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "00010"; -- stack pointer + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= ci_instr16_i(ci_rs2_5_msb_c downto ci_rs2_5_lsb_c); + if (ci_instr16_i(ci_funct3_lsb_c) = '1') then -- C.FSWSP + ci_illegal_o <= '1'; + end if; + + when "100" => -- C.JR, C.JALR, C.MV, C.EBREAK, C.ADD + -- ---------------------------------------------------------------------------------------------------------- + if (ci_instr16_i(12) = '0') then -- C.JR, C.MV + if (ci_instr16_i(6 downto 2) = "00000") then -- C.JR + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_jalr_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= ci_instr16_i(ci_rs1_5_msb_c downto ci_rs1_5_lsb_c); + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "00000"; -- discard return address + else -- C.MV + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alu_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= "000"; + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= "00000"; -- x0 + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= ci_instr16_i(ci_rs2_5_msb_c downto ci_rs2_5_lsb_c); + end if; + else -- C.EBREAK, C.JALR, C.ADD + if (ci_instr16_i(6 downto 2) = "00000") then -- C.EBREAK, C.JALR + if (ci_instr16_i(11 downto 7) = "00000") then -- C.EBREAK + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_syscsr_c; + ci_instr32_o(instr_funct12_msb_c downto instr_funct12_lsb_c) <= "000000000001"; + else -- C.JALR + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_jalr_c; + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= ci_instr16_i(ci_rs1_5_msb_c downto ci_rs1_5_lsb_c); + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= "00001"; -- save return address to link register + end if; + else -- C.ADD + ci_instr32_o(instr_opcode_msb_c downto instr_opcode_lsb_c) <= opcode_alu_c; + ci_instr32_o(instr_funct3_msb_c downto instr_funct3_lsb_c) <= "000"; + ci_instr32_o(instr_rd_msb_c downto instr_rd_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_rs1_msb_c downto instr_rs1_lsb_c) <= ci_instr16_i(ci_rd_5_msb_c downto ci_rd_5_lsb_c); + ci_instr32_o(instr_rs2_msb_c downto instr_rs2_lsb_c) <= ci_instr16_i(ci_rs2_5_msb_c downto ci_rs2_5_lsb_c); + end if; + end if; + + when others => -- undefined + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o <= (others => '-'); + ci_illegal_o <= '1'; + + end case; + + when others => -- not a compressed instruction + -- ---------------------------------------------------------------------------------------------------------- + ci_instr32_o <= (others => '-'); + ci_illegal_o <= '0'; + + end case; + end process decompressor; + + +end neorv32_cpu_decompressor_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_regfile.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_regfile.vhd new file mode 100644 index 0000000..c205033 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_cpu_regfile.vhd @@ -0,0 +1,135 @@ +-- ################################################################################################# +-- # << NEORV32 - CPU General Purpose Data Register File >> # +-- # ********************************************************************************************* # +-- # General purpose data register file. 32 entries (= 1024 bit) for normal mode (RV32I), # +-- # 16 entries (= 512 bit) for embedded mode (RV32E) when RISC-V "E" extension is enabled. # +-- # # +-- # Register zero (r0/x0) is a "normal" physical register that has to be initialized to zero by # +-- # the early boot code. Register zero is always set to zero when written. # +-- # # +-- # The register file uses synchronous read accesses and a *single* (multiplexed) address port # +-- # for writing and reading rd/rs1 and a single read-only port for rs2. Therefore, the whole # +-- # register file can be mapped to a single true-dual-port block RAM. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_cpu_regfile is + generic ( + CPU_EXTENSION_RISCV_E : boolean -- implement embedded RF extension? + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- data input -- + mem_i : in std_ulogic_vector(data_width_c-1 downto 0); -- memory read data + alu_i : in std_ulogic_vector(data_width_c-1 downto 0); -- ALU result + -- data output -- + rs1_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operand 1 + rs2_o : out std_ulogic_vector(data_width_c-1 downto 0) -- operand 2 + ); +end neorv32_cpu_regfile; + +architecture neorv32_cpu_regfile_rtl of neorv32_cpu_regfile is + + -- register file -- + type reg_file_t is array (31 downto 0) of std_ulogic_vector(data_width_c-1 downto 0); + type reg_file_emb_t is array (15 downto 0) of std_ulogic_vector(data_width_c-1 downto 0); + signal reg_file : reg_file_t; + signal reg_file_emb : reg_file_emb_t; + signal rf_wdata : std_ulogic_vector(data_width_c-1 downto 0); -- actual write-back data + signal rd_is_r0 : std_ulogic; -- writing to r0? + signal dst_addr : std_ulogic_vector(4 downto 0); -- destination address + signal opa_addr : std_ulogic_vector(4 downto 0); -- rs1/dst address + signal opb_addr : std_ulogic_vector(4 downto 0); -- rs2 address + signal rs1, rs2 : std_ulogic_vector(data_width_c-1 downto 0); -- read data + +begin + + -- Data Input Mux ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + input_mux: process(rd_is_r0, ctrl_i, alu_i, mem_i) + begin + if (rd_is_r0 = '1') then -- write zero if accessing x0 to "emulate" it is hardwired to zero + rf_wdata <= (others => '0'); + else + if (ctrl_i(ctrl_rf_in_mux_c) = '0') then + rf_wdata <= alu_i; + else + rf_wdata <= mem_i; + end if; + end if; + end process input_mux; + + -- check if we are writing to x0 -- + rd_is_r0 <= (not or_reduce_f(dst_addr(4 downto 0))) when (CPU_EXTENSION_RISCV_E = false) else (not or_reduce_f(dst_addr(3 downto 0))); + + + -- Register File Access ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rf_access: process(clk_i) + begin + if rising_edge(clk_i) then -- sync read and write + if (CPU_EXTENSION_RISCV_E = false) then -- normal register file with 32 entries + if (ctrl_i(ctrl_rf_wb_en_c) = '1') then + reg_file(to_integer(unsigned(opa_addr(4 downto 0)))) <= rf_wdata; + end if; + rs1 <= reg_file(to_integer(unsigned(opa_addr(4 downto 0)))); + rs2 <= reg_file(to_integer(unsigned(opb_addr(4 downto 0)))); + else -- embedded register file with 16 entries + if (ctrl_i(ctrl_rf_wb_en_c) = '1') then + reg_file_emb(to_integer(unsigned(opa_addr(3 downto 0)))) <= rf_wdata; + end if; + rs1 <= reg_file_emb(to_integer(unsigned(opa_addr(3 downto 0)))); + rs2 <= reg_file_emb(to_integer(unsigned(opb_addr(3 downto 0)))); + end if; + end if; + end process rf_access; + + -- access addresses -- + dst_addr <= ctrl_i(ctrl_rf_rd_adr4_c downto ctrl_rf_rd_adr0_c); + opa_addr <= dst_addr when (ctrl_i(ctrl_rf_wb_en_c) = '1') else ctrl_i(ctrl_rf_rs1_adr4_c downto ctrl_rf_rs1_adr0_c); -- rd/rs1 + opb_addr <= ctrl_i(ctrl_rf_rs2_adr4_c downto ctrl_rf_rs2_adr0_c); -- rs2 + + -- data output -- + rs1_o <= rs1; + rs2_o <= rs2; + + +end neorv32_cpu_regfile_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dm.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dm.vhd new file mode 100644 index 0000000..9ebbb9f --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dm.vhd @@ -0,0 +1,728 @@ +-- ################################################################################################# +-- # << NEORV32 - RISC-V-Compatible Debug Module (DM) >> # +-- # ********************************************************************************************* # +-- # Compatible to the "Minimal RISC-V External Debug Spec. Version 0.13.2" # +-- # -> "Execution-based" debugging scheme # +-- # ********************************************************************************************* # +-- # Key features: # +-- # * register access commands only # +-- # * auto-execution commands # +-- # * for a single hart only # +-- # * 2 general purpose program buffer entries # +-- # * 1 general purpose data buffer entry # +-- # # +-- # CPU access: # +-- # * ROM for "park loop" code # +-- # * program buffer # +-- # * data buffer # +-- # * control and status register # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_debug_dm is + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + -- debug module interface (DMI) -- + dmi_rstn_i : in std_ulogic; + dmi_req_valid_i : in std_ulogic; + dmi_req_ready_o : out std_ulogic; -- DMI is allowed to make new requests when set + dmi_req_addr_i : in std_ulogic_vector(06 downto 0); + dmi_req_op_i : in std_ulogic; -- 0=read, 1=write + dmi_req_data_i : in std_ulogic_vector(31 downto 0); + dmi_resp_valid_o : out std_ulogic; -- response valid when set + dmi_resp_ready_i : in std_ulogic; -- ready to receive respond + dmi_resp_data_o : out std_ulogic_vector(31 downto 0); + dmi_resp_err_o : out std_ulogic; -- 0=ok, 1=error + -- CPU bus access -- + cpu_addr_i : in std_ulogic_vector(31 downto 0); -- address + cpu_rden_i : in std_ulogic; -- read enable + cpu_wren_i : in std_ulogic; -- write enable + cpu_data_i : in std_ulogic_vector(31 downto 0); -- data in + cpu_data_o : out std_ulogic_vector(31 downto 0); -- data out + cpu_ack_o : out std_ulogic; -- transfer acknowledge + -- CPU control -- + cpu_ndmrstn_o : out std_ulogic; -- soc reset + cpu_halt_req_o : out std_ulogic -- request hart to halt (enter debug mode) + ); +end neorv32_debug_dm; + +architecture neorv32_debug_dm_rtl of neorv32_debug_dm is + + -- DM configuration -- + constant nscratch_c : std_ulogic_vector(03 downto 0) := "0001"; -- number of dscratch* registers in CPU = 1 + constant dataaccess_c : std_ulogic := '1'; -- 1: abstract data is memory-mapped, 0: abstract data is CSR-mapped + constant datasize_c : std_ulogic_vector(03 downto 0) := "0001"; -- number of data registers in memory/CSR space = 1 + constant dataaddr_c : std_ulogic_vector(11 downto 0) := dm_data_base_c(11 downto 0); -- signed base address of data registers in memory/CSR space + + -- available DMI registers -- + constant addr_data0_c : std_ulogic_vector(6 downto 0) := "000" & x"4"; + constant addr_dmcontrol_c : std_ulogic_vector(6 downto 0) := "001" & x"0"; + constant addr_dmstatus_c : std_ulogic_vector(6 downto 0) := "001" & x"1"; + constant addr_hartinfo_c : std_ulogic_vector(6 downto 0) := "001" & x"2"; + constant addr_abstractcs_c : std_ulogic_vector(6 downto 0) := "001" & x"6"; + constant addr_command_c : std_ulogic_vector(6 downto 0) := "001" & x"7"; + constant addr_abstractauto_c : std_ulogic_vector(6 downto 0) := "001" & x"8"; + constant addr_nextdm_c : std_ulogic_vector(6 downto 0) := "001" & x"d"; + constant addr_progbuf0_c : std_ulogic_vector(6 downto 0) := "010" & x"0"; + constant addr_progbuf1_c : std_ulogic_vector(6 downto 0) := "010" & x"1"; + constant addr_sbcs_c : std_ulogic_vector(6 downto 0) := "011" & x"8"; + constant addr_haltsum0_c : std_ulogic_vector(6 downto 0) := "100" & x"0"; + + -- RISC-V 32-bit instruction prototypes -- + constant instr_nop_c : std_ulogic_vector(31 downto 0) := x"00000013"; -- nop + constant instr_lw_c : std_ulogic_vector(31 downto 0) := x"00002003"; -- lw zero, 0(zero) + constant instr_sw_c : std_ulogic_vector(31 downto 0) := x"00002023"; -- sw zero, 0(zero) + constant instr_ebreak_c : std_ulogic_vector(31 downto 0) := x"00100073"; -- ebreak + + -- debug module controller -- + type dm_ctrl_state_t is (CMD_IDLE, CMD_EXE_CHECK, CMD_EXE_PREPARE, CMD_EXE_TRIGGER, CMD_EXE_BUSY, CMD_EXE_ERROR); + type dm_ctrl_t is record + -- fsm -- + state : dm_ctrl_state_t; + busy : std_ulogic; + ldsw_progbuf : std_ulogic_vector(31 downto 0); + pbuf_en : std_ulogic; + -- error flags -- + illegal_state : std_ulogic; + illegal_cmd : std_ulogic; + cmderr : std_ulogic_vector(02 downto 0); + -- hart status -- + hart_halted : std_ulogic; + hart_resume_req : std_ulogic; + hart_resume_ack : std_ulogic; + hart_reset : std_ulogic; + end record; + signal dm_ctrl : dm_ctrl_t; + + -- debug module DMI registers / access -- + type progbuf_t is array (0 to 1) of std_ulogic_vector(31 downto 0); + type dm_reg_t is record + dmcontrol_ndmreset : std_ulogic; + dmcontrol_dmactive : std_ulogic; + abstractauto_autoexecdata : std_ulogic; + abstractauto_autoexecprogbuf : std_ulogic_vector(01 downto 0); + progbuf : progbuf_t; + command : std_ulogic_vector(31 downto 0); + -- + halt_req : std_ulogic; + resume_req : std_ulogic; + reset_ack : std_ulogic; + wr_acc_err : std_ulogic; + rd_acc_err : std_ulogic; + clr_acc_err : std_ulogic; + autoexec_wr : std_ulogic; + autoexec_rd : std_ulogic; + end record; + signal dm_reg : dm_reg_t; + + -- cpu program buffer -- + type cpu_progbuf_t is array (0 to 4) of std_ulogic_vector(31 downto 0); + signal cpu_progbuf : cpu_progbuf_t; + + -- ********************************************************** + -- CPU Bus Interface + -- ********************************************************** + + -- Debug Core Interface + type dci_t is record + halt_ack : std_ulogic; -- CPU (re-)entered HALT state (single-shot) + resume_req : std_ulogic; -- DM wants the CPU to resume when set + resume_ack : std_ulogic; -- CPU starts resuming when set (single-shot) + execute_req : std_ulogic; -- DM wants CPU to execute program buffer when set + execute_ack : std_ulogic; -- CPU starts executing program buffer when set (single-shot) + exception_ack : std_ulogic; -- CPU has detected an exception (single-shot) + progbuf : std_ulogic_vector(255 downto 0); -- program buffer, 4 32-bit entries + data_we : std_ulogic; -- write abstract data + wdata : std_ulogic_vector(31 downto 0); -- abstract write data + rdata : std_ulogic_vector(31 downto 0); -- abstract read data + end record; + signal dci : dci_t; + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(dm_size_c); -- low address boundary bit + + -- status and control register - bits -- + constant sreg_halt_ack_c : natural := 0; -- -/w: CPU is halted in debug mode and waits in park loop + constant sreg_resume_req_c : natural := 1; -- r/-: DM requests CPU to resume + constant sreg_resume_ack_c : natural := 2; -- -/w: CPU starts resuming + constant sreg_execute_req_c : natural := 3; -- r/-: DM requests to execute program buffer + constant sreg_execute_ack_c : natural := 4; -- -/w: CPU starts to execute program buffer + constant sreg_exception_ack_c : natural := 5; -- -/w: CPU has detected an exception + + -- code ROM containing "park loop" -- + type code_rom_file_t is array (0 to 31) of std_ulogic_vector(31 downto 0); + constant code_rom_file : code_rom_file_t := ( + 00000000 => x"0180006f", + 00000001 => x"7b241073", + 00000002 => x"02000413", + 00000003 => x"98802023", + 00000004 => x"7b202473", + 00000005 => x"00100073", + 00000006 => x"7b241073", + 00000007 => x"00100413", + 00000008 => x"98802023", + 00000009 => x"98002403", + 00000010 => x"00847413", + 00000011 => x"02041263", + 00000012 => x"98002403", + 00000013 => x"00247413", + 00000014 => x"00041463", + 00000015 => x"fe9ff06f", + 00000016 => x"00400413", + 00000017 => x"98802023", + 00000018 => x"7b202473", + 00000019 => x"7b200073", + 00000020 => x"01000413", + 00000021 => x"98802023", + 00000022 => x"7b202473", + 00000023 => x"0000100f", + 00000024 => x"88000067", + others => x"00100073" -- ebreak + ); + + -- global access control -- + signal acc_en : std_ulogic; + signal rden : std_ulogic; + signal wren : std_ulogic; + signal maddr : std_ulogic_vector(01 downto 0); + + -- data buffer -- + signal data_buf : std_ulogic_vector(31 downto 0); + + -- program buffer access -- + type prog_buf_t is array (0 to 3) of std_ulogic_vector(31 downto 0); + signal prog_buf : prog_buf_t; + +begin + + -- Debug Module Command Controller -------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + dm_controller: process(clk_i) + begin + if rising_edge(clk_i) then + if (dm_reg.dmcontrol_dmactive = '0') or (dmi_rstn_i = '0') then -- DM reset / DM disabled + dm_ctrl.state <= CMD_IDLE; + dm_ctrl.ldsw_progbuf <= (others => '-'); + dci.execute_req <= '0'; + dm_ctrl.pbuf_en <= '-'; + -- + dm_ctrl.illegal_cmd <= '-'; + dm_ctrl.illegal_state <= '-'; + dm_ctrl.cmderr <= "000"; + -- + dm_ctrl.hart_reset <= '0'; + dm_ctrl.hart_halted <= '0'; + dm_ctrl.hart_resume_req <= '0'; + dm_ctrl.hart_resume_ack <= '0'; + else -- DM active + + -- defaults -- + dci.execute_req <= '0'; + dm_ctrl.illegal_cmd <= '0'; + dm_ctrl.illegal_state <= '0'; + + -- command execution fsm -- + case dm_ctrl.state is + + when CMD_IDLE => -- wait for new abstract command + -- ------------------------------------------------------------ + if (dmi_req_valid_i = '1') and (dmi_req_op_i = '1') then -- valid DM write access + if (dmi_req_addr_i = addr_command_c) then + if (dm_ctrl.cmderr = "000") then -- only execute if no error + dm_ctrl.state <= CMD_EXE_CHECK; + end if; + end if; + elsif (dm_reg.autoexec_rd = '1') or (dm_reg.autoexec_wr = '1') then -- auto execution trigger + dm_ctrl.state <= CMD_EXE_CHECK; + end if; + + when CMD_EXE_CHECK => -- check if command is valid / supported + -- ------------------------------------------------------------ + if (dm_reg.command(31 downto 24) = x"00") and -- cmdtype: register access + (dm_reg.command(23) = '0') and -- reserved + (dm_reg.command(22 downto 20) = "010") and -- aarsize: has to be 32-bit + (dm_reg.command(19) = '0') and -- aarpostincrement: not supported + ((dm_reg.command(17) = '0') or (dm_reg.command(15 downto 05) = "00010000000")) then -- regno: only GPRs are supported: 0x1000..0x101f if transfer is set + if (dm_ctrl.hart_halted = '1') then -- CPU is halted + dm_ctrl.state <= CMD_EXE_PREPARE; + else -- error! CPU is still running + dm_ctrl.illegal_state <= '1'; + dm_ctrl.state <= CMD_EXE_ERROR; + end if; + else -- invalid command + dm_ctrl.illegal_cmd <= '1'; + dm_ctrl.state <= CMD_EXE_ERROR; + end if; + + when CMD_EXE_PREPARE => -- setup program buffer + -- ------------------------------------------------------------ + if (dm_reg.command(17) = '1') then -- "transfer" + if (dm_reg.command(16) = '0') then -- "write" = 0 -> read from GPR + dm_ctrl.ldsw_progbuf <= instr_sw_c; + dm_ctrl.ldsw_progbuf(31 downto 25) <= dataaddr_c(11 downto 05); -- destination address + dm_ctrl.ldsw_progbuf(24 downto 20) <= dm_reg.command(4 downto 0); -- "regno" = source register + dm_ctrl.ldsw_progbuf(11 downto 07) <= dataaddr_c(04 downto 00); -- destination address + else -- "write" = 0 -> write to GPR + dm_ctrl.ldsw_progbuf <= instr_lw_c; + dm_ctrl.ldsw_progbuf(31 downto 20) <= dataaddr_c; -- source address + dm_ctrl.ldsw_progbuf(11 downto 07) <= dm_reg.command(4 downto 0); -- "regno" = destination register + end if; + else + dm_ctrl.ldsw_progbuf <= instr_nop_c; -- NOP - do nothing + end if; + -- + if (dm_reg.command(18) = '1') then -- "postexec" - execute program buffer + dm_ctrl.pbuf_en <= '1'; + else -- execute all program buffer entries as NOPs + dm_ctrl.pbuf_en <= '0'; + end if; + -- + dm_ctrl.state <= CMD_EXE_TRIGGER; + + when CMD_EXE_TRIGGER => -- request CPU to execute command + -- ------------------------------------------------------------ + dci.execute_req <= '1'; -- request execution + if (dci.execute_ack = '1') then -- CPU starts execution + dm_ctrl.state <= CMD_EXE_BUSY; + end if; + + when CMD_EXE_BUSY => -- wait for CPU to finish + -- ------------------------------------------------------------ + if (dci.halt_ack = '1') then -- CPU is parked (halted) again -> execution done + dm_ctrl.state <= CMD_IDLE; + end if; + + when CMD_EXE_ERROR => -- delay cycle for error to arrive abstracts.cmderr + -- ------------------------------------------------------------ + dm_ctrl.state <= CMD_IDLE; + + when others => -- undefined + -- ------------------------------------------------------------ + dm_ctrl.state <= CMD_IDLE; + + end case; + + + -- error flags -- + -- ------------------------------------------------------------ + if (dm_ctrl.cmderr = "000") then -- set new error + if (dm_ctrl.illegal_state = '1') then -- cannot execute since hart is not in expected state + dm_ctrl.cmderr <= "100"; + elsif (dci.exception_ack = '1') then -- exception during execution + dm_ctrl.cmderr <= "011"; + elsif (dm_ctrl.illegal_cmd = '1') then -- unsupported command + dm_ctrl.cmderr <= "010"; + elsif (dm_reg.rd_acc_err = '1') or (dm_reg.wr_acc_err = '1') then -- invalid read/write while command is executing + dm_ctrl.cmderr <= "001"; + end if; + elsif (dm_reg.clr_acc_err = '1') then -- acknowledge/clear error flags + dm_ctrl.cmderr <= "000"; + end if; + + + -- hart status -- + -- ------------------------------------------------------------ + + -- HALTED -- + if (dm_reg.dmcontrol_ndmreset = '1') then + dm_ctrl.hart_halted <= '0'; + elsif (dci.halt_ack = '1') then + dm_ctrl.hart_halted <= '1'; + elsif (dci.resume_ack = '1') then + dm_ctrl.hart_halted <= '0'; + end if; + + -- RESUME REQ -- + if (dm_reg.dmcontrol_ndmreset = '1') then + dm_ctrl.hart_resume_req <= '0'; + elsif (dm_reg.resume_req = '1') then + dm_ctrl.hart_resume_req <= '1'; + elsif (dci.resume_ack = '1') then + dm_ctrl.hart_resume_req <= '0'; + end if; + + -- RESUME ACK -- + if (dm_reg.dmcontrol_ndmreset = '1') then + dm_ctrl.hart_resume_ack <= '0'; + elsif (dci.resume_ack = '1') then + dm_ctrl.hart_resume_ack <= '1'; + elsif (dm_reg.resume_req = '1') then + dm_ctrl.hart_resume_ack <= '0'; + end if; + + -- hart has been RESET -- + if (dm_reg.dmcontrol_ndmreset = '1') then + dm_ctrl.hart_reset <= '1'; + elsif (dm_reg.reset_ack = '1') then + dm_ctrl.hart_reset <= '0'; + end if; + + end if; + end if; + end process dm_controller; + + -- controller busy flag -- + dm_ctrl.busy <= '0' when (dm_ctrl.state = CMD_IDLE) else '1'; + + + -- Debug Module Interface - Write Access -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + dmi_write_access: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + dm_reg.dmcontrol_ndmreset <= '0'; + dm_reg.dmcontrol_dmactive <= '0'; -- DM is in reset state after hardware reset + -- + dm_reg.abstractauto_autoexecdata <= '0'; + dm_reg.abstractauto_autoexecprogbuf <= "00"; + -- + dm_reg.command <= (others => '0'); + dm_reg.progbuf <= (others => instr_nop_c); + -- + dm_reg.halt_req <= '0'; + dm_reg.resume_req <= '0'; + dm_reg.reset_ack <= '0'; + dm_reg.wr_acc_err <= '0'; + dm_reg.clr_acc_err <= '0'; + dm_reg.autoexec_wr <= '0'; + elsif rising_edge(clk_i) then + + -- default -- + dm_reg.resume_req <= '0'; + dm_reg.reset_ack <= '0'; + dm_reg.wr_acc_err <= '0'; + dm_reg.clr_acc_err <= '0'; + dm_reg.autoexec_wr <= '0'; + + -- DMI access -- + if (dmi_req_valid_i = '1') and (dmi_req_op_i = '1') then -- valid DMI write request + + -- debug module control -- + if (dmi_req_addr_i = addr_dmcontrol_c) then + dm_reg.halt_req <= dmi_req_data_i(31); -- haltreq (-/w): write 1 to request halt; has to be cleared again by debugger + dm_reg.resume_req <= dmi_req_data_i(30); -- resumereq (-/w1): write 1 to request resume + dm_reg.reset_ack <= dmi_req_data_i(28); -- ackhavereset (-/w1) + dm_reg.dmcontrol_ndmreset <= dmi_req_data_i(01); -- ndmreset (r/w): soc reset + dm_reg.dmcontrol_dmactive <= dmi_req_data_i(00); -- dmactive (r/w): DM reset + end if; + + -- write abstract command -- + if (dmi_req_addr_i = addr_command_c) then + if (dm_ctrl.busy = '0') and (dm_ctrl.cmderr = "000") then -- idle and no errors yet + dm_reg.command <= dmi_req_data_i; + end if; + end if; + + -- write abstract command autoexec -- + if (dmi_req_addr_i = addr_abstractauto_c) then + if (dm_ctrl.busy = '0') then -- idle and no errors yet + dm_reg.abstractauto_autoexecdata <= dmi_req_data_i(00); + dm_reg.abstractauto_autoexecprogbuf(0) <= dmi_req_data_i(16); + dm_reg.abstractauto_autoexecprogbuf(1) <= dmi_req_data_i(17); + end if; + end if; + + -- auto execution trigger -- + if ((dmi_req_addr_i = addr_data0_c) and (dm_reg.abstractauto_autoexecdata = '1')) or + ((dmi_req_addr_i = addr_progbuf0_c) and (dm_reg.abstractauto_autoexecprogbuf(0) = '1')) or + ((dmi_req_addr_i = addr_progbuf1_c) and (dm_reg.abstractauto_autoexecprogbuf(1) = '1')) then + dm_reg.autoexec_wr <= '1'; + end if; + + -- acknowledge command error -- + if (dmi_req_addr_i = addr_abstractcs_c) then + if (dmi_req_data_i(10 downto 8) = "111") then + dm_reg.clr_acc_err <= '1'; + end if; + end if; + + -- write program buffer -- + if (dmi_req_addr_i(dmi_req_addr_i'left downto 1) = addr_progbuf0_c(dmi_req_addr_i'left downto 1)) then + if (dm_ctrl.busy = '0') then -- idle + if (dmi_req_addr_i(0) = addr_progbuf0_c(0)) then + dm_reg.progbuf(0) <= dmi_req_data_i; + else + dm_reg.progbuf(1) <= dmi_req_data_i; + end if; + end if; + end if; + + -- invalid access (while command is executing) -- + if (dm_ctrl.busy = '1') then -- busy + if (dmi_req_addr_i = addr_abstractcs_c) or + (dmi_req_addr_i = addr_command_c) or + (dmi_req_addr_i = addr_abstractauto_c) or + (dmi_req_addr_i = addr_data0_c) or + (dmi_req_addr_i = addr_progbuf0_c) or + (dmi_req_addr_i = addr_progbuf1_c) then + dm_reg.wr_acc_err <= '1'; + end if; + end if; + + end if; + end if; + end process dmi_write_access; + + + -- Direct Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- write to abstract data register -- + dci.data_we <= '1' when (dmi_req_valid_i = '1') and (dmi_req_op_i = '1') and (dmi_req_addr_i = addr_data0_c) and (dm_ctrl.busy = '0') else '0'; + dci.wdata <= dmi_req_data_i; + + -- CPU halt/resume request -- + cpu_halt_req_o <= dm_reg.halt_req and dm_reg.dmcontrol_dmactive; -- single shot + dci.resume_req <= dm_ctrl.hart_resume_req; -- permanent + + -- SoC reset -- + cpu_ndmrstn_o <= not (dm_reg.dmcontrol_ndmreset and dm_reg.dmcontrol_dmactive); + + -- build program buffer array for cpu access -- + cpu_progbuf(0) <= dm_ctrl.ldsw_progbuf; -- pseudo program buffer for GPR access + cpu_progbuf(1) <= instr_nop_c when (dm_ctrl.pbuf_en = '0') else dm_reg.progbuf(0); + cpu_progbuf(2) <= instr_nop_c when (dm_ctrl.pbuf_en = '0') else dm_reg.progbuf(1); + cpu_progbuf(3) <= instr_ebreak_c; -- implicit ebreak instruction + + -- DMI status -- + dmi_resp_err_o <= '0'; -- what can go wrong? + dmi_req_ready_o <= '1'; -- always ready for new read/write accesses + + + -- Debug Module Interface - Read Access --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + dmi_read_access: process(clk_i) + begin + if rising_edge(clk_i) then + dmi_resp_valid_o <= dmi_req_valid_i; -- DMI transfer ack + dmi_resp_data_o <= (others => '0'); -- default + dm_reg.rd_acc_err <= '0'; + dm_reg.autoexec_rd <= '0'; + + case dmi_req_addr_i is + + -- debug module status register -- + when addr_dmstatus_c => + dmi_resp_data_o(31 downto 23) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(22) <= '1'; -- impebreak (r/-): there is an implicit ebreak instruction after the visible program buffer + dmi_resp_data_o(21 downto 20) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(19) <= dm_ctrl.hart_reset; -- allhavereset (r/-): there is only one hart that can be reset + dmi_resp_data_o(18) <= dm_ctrl.hart_reset; -- anyhavereset (r/-): there is only one hart that can be reset + dmi_resp_data_o(17) <= dm_ctrl.hart_resume_ack; -- allresumeack (r/-): there is only one hart that can acknowledge resume request + dmi_resp_data_o(16) <= dm_ctrl.hart_resume_ack; -- anyresumeack (r/-): there is only one hart that can acknowledge resume request + dmi_resp_data_o(15) <= '0'; -- allnonexistent (r/-): there is only one hart that is always existent + dmi_resp_data_o(14) <= '0'; -- anynonexistent (r/-): there is only one hart that is always existent + dmi_resp_data_o(13) <= dm_reg.dmcontrol_ndmreset; -- allunavail (r/-): there is only one hart that is unavailable during reset + dmi_resp_data_o(12) <= dm_reg.dmcontrol_ndmreset; -- anyunavail (r/-): there is only one hart that is unavailable during reset + dmi_resp_data_o(11) <= not dm_ctrl.hart_halted; -- allrunning (r/-): there is only one hart that can be RUNNING or HALTED + dmi_resp_data_o(10) <= not dm_ctrl.hart_halted; -- anyrunning (r/-): there is only one hart that can be RUNNING or HALTED + dmi_resp_data_o(09) <= dm_ctrl.hart_halted; -- allhalted (r/-): there is only one hart that can be RUNNING or HALTED + dmi_resp_data_o(08) <= dm_ctrl.hart_halted; -- anyhalted (r/-): there is only one hart that can be RUNNING or HALTED + dmi_resp_data_o(07) <= '1'; -- authenticated (r/-): authentication passed since there is no authentication + dmi_resp_data_o(06) <= '0'; -- authbusy (r/-): always ready since there is no authentication + dmi_resp_data_o(05) <= '0'; -- hasresethaltreq (r/-): halt-on-reset not implemented + dmi_resp_data_o(04) <= '0'; -- confstrptrvalid (r/-): no configuration string available + dmi_resp_data_o(03 downto 00) <= "0010"; -- version (r/-): compatible to version 0.13 + + -- debug module control -- + when addr_dmcontrol_c => + dmi_resp_data_o(31) <= '0'; -- haltreq (-/w): write-only + dmi_resp_data_o(30) <= '0'; -- resumereq (-/w1): write-only + dmi_resp_data_o(29) <= '0'; -- hartreset (r/w): not supported + dmi_resp_data_o(28) <= '0'; -- ackhavereset (-/w1): write-only + dmi_resp_data_o(27) <= '0'; -- reserved (r/-) + dmi_resp_data_o(26) <= '0'; -- hasel (r/-) - there is a single currently selected hart + dmi_resp_data_o(25 downto 16) <= (others => '0'); -- hartsello (r/-) - there is only one hart + dmi_resp_data_o(15 downto 06) <= (others => '0'); -- hartselhi (r/-) - there is only one hart + dmi_resp_data_o(05 downto 04) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(03) <= '0'; -- setresethaltreq (-/w1): halt-on-reset request - halt-on-reset not implemented + dmi_resp_data_o(02) <= '0'; -- clrresethaltreq (-/w1): halt-on-reset ack - halt-on-reset not implemented + dmi_resp_data_o(01) <= dm_reg.dmcontrol_ndmreset; -- ndmreset (r/w): soc reset + dmi_resp_data_o(00) <= dm_reg.dmcontrol_dmactive; -- dmactive (r/w): DM reset + + -- hart info -- + when addr_hartinfo_c => + dmi_resp_data_o(31 downto 24) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(23 downto 20) <= nscratch_c; -- nscratch (r/-): number of dscratch CSRs + dmi_resp_data_o(19 downto 17) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(16) <= dataaccess_c; -- dataaccess (r/-): 1: data registers are memory-mapped, 0: data reisters are CSR-mapped + dmi_resp_data_o(15 downto 12) <= datasize_c; -- datasize (r/-): number data registers in memory/CSR space + dmi_resp_data_o(11 downto 00) <= dataaddr_c; -- dataaddr (r/-): data registers base address (memory/CSR) + + -- abstract control and status -- + when addr_abstractcs_c => + dmi_resp_data_o(31 downto 24) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(28 downto 24) <= "00010"; -- progbufsize (r/-): number of words in program buffer = 2 + dmi_resp_data_o(12) <= dm_ctrl.busy; -- busy (r/-): abstract command in progress (1) / idle (0) + dmi_resp_data_o(11) <= '0'; -- reserved (r/-) + dmi_resp_data_o(10 downto 08) <= dm_ctrl.cmderr; -- cmderr (r/w1c): any error during execution? + dmi_resp_data_o(07 downto 04) <= (others => '0'); -- reserved (r/-) + dmi_resp_data_o(03 downto 00) <= "0001"; -- datacount (r/-): number of implemented data registers = 1 + +-- -- abstract command (-/w) -- +-- when addr_command_c => +-- dmi_resp_data_o <= (others => '0'); -- register is write-only + + -- abstract command autoexec (r/w) -- + when addr_abstractauto_c => + dmi_resp_data_o(00) <= dm_reg.abstractauto_autoexecdata; -- autoexecdata(0): read/write access to data0 triggers execution of program buffer + dmi_resp_data_o(16) <= dm_reg.abstractauto_autoexecprogbuf(0); -- autoexecprogbuf(0): read/write access to progbuf0 triggers execution of program buffer + dmi_resp_data_o(17) <= dm_reg.abstractauto_autoexecprogbuf(1); -- autoexecprogbuf(1): read/write access to progbuf1 triggers execution of program buffer + +-- -- next debug module (r/-) -- +-- when addr_nextdm_c => +-- dmi_resp_data_o <= (others => '0'); -- this is the only DM + + -- abstract data 0 (r/w) -- + when addr_data0_c => + dmi_resp_data_o <= dci.rdata; + + -- program buffer (r/w) -- + when addr_progbuf0_c => + dmi_resp_data_o <= dm_reg.progbuf(0); -- program buffer 0 + when addr_progbuf1_c => + dmi_resp_data_o <= dm_reg.progbuf(1); -- program buffer 1 + +-- -- system bus access control and status (r/-) -- +-- when addr_sbcs_c => +-- dmi_resp_data_o <= (others => '0'); -- bus access not implemented + + -- halt summary 0 (r/-) -- + when addr_haltsum0_c => + dmi_resp_data_o(0) <= dm_ctrl.hart_halted; -- hart is halted + + -- not implemented (r/-) -- + when others => + dmi_resp_data_o <= (others => '0'); + end case; + + -- invalid read access (while command is executing) + -- ------------------------------------------------------------ + if (dmi_req_valid_i = '1') and (dmi_req_op_i = '0') then -- valid DMI read request + if (dm_ctrl.busy = '1') then -- busy + if (dmi_req_addr_i = addr_data0_c) or + (dmi_req_addr_i = addr_progbuf0_c) or + (dmi_req_addr_i = addr_progbuf1_c) then + dm_reg.rd_acc_err <= '1'; + end if; + end if; + end if; + + -- auto execution trigger -- + -- ------------------------------------------------------------ + if (dmi_req_valid_i = '1') and (dmi_req_op_i = '0') then -- valid DMI read request + if ((dmi_req_addr_i = addr_data0_c) and (dm_reg.abstractauto_autoexecdata = '1')) or + ((dmi_req_addr_i = addr_progbuf0_c) and (dm_reg.abstractauto_autoexecprogbuf(0) = '1')) or + ((dmi_req_addr_i = addr_progbuf1_c) and (dm_reg.abstractauto_autoexecprogbuf(1) = '1')) then + dm_reg.autoexec_rd <= '1'; + end if; + end if; + + end if; + end process dmi_read_access; + + + -- ************************************************************************************************************************** + -- CPU Bus Interface + -- ************************************************************************************************************************** + + -- Access Control ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (cpu_addr_i(hi_abb_c downto lo_abb_c) = dm_base_c(hi_abb_c downto lo_abb_c)) else '0'; + maddr <= cpu_addr_i(lo_abb_c-1 downto lo_abb_c-2); -- (sub-)module select address + rden <= acc_en and cpu_rden_i; + wren <= acc_en and cpu_wren_i; + + + -- Write Access --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + write_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- Data buffer -- + if (dci.data_we = '1') then -- DM write access + data_buf <= dci.wdata; + elsif (acc_en = '1') and (maddr = "10") and (wren = '1') then -- BUS write access + data_buf <= cpu_data_i; + end if; + -- Control and Status Register -- + dci.halt_ack <= '0'; -- all writable flags auto-clear + dci.resume_ack <= '0'; + dci.execute_ack <= '0'; + dci.exception_ack <= '0'; + if (acc_en = '1') and (maddr = "11") and (wren = '1') then + dci.halt_ack <= cpu_data_i(sreg_halt_ack_c); + dci.resume_ack <= cpu_data_i(sreg_resume_ack_c); + dci.execute_ack <= cpu_data_i(sreg_execute_ack_c); + dci.exception_ack <= cpu_data_i(sreg_exception_ack_c); + end if; + end if; + end process write_access; + + -- DM data buffer read access -- + dci.rdata <= data_buf; + + + -- Read Access ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + read_access: process(clk_i) + begin + if rising_edge(clk_i) then + cpu_ack_o <= rden or wren; + cpu_data_o <= (others => '0'); + if (rden = '1') then -- output gate + case maddr is -- module select + when "00" => -- code ROM + cpu_data_o <= code_rom_file(to_integer(unsigned(cpu_addr_i(6 downto 2)))); + when "01" => -- program buffer + cpu_data_o <= cpu_progbuf(to_integer(unsigned(cpu_addr_i(3 downto 2)))); + when "10" => -- data buffer + cpu_data_o <= data_buf; + when others => -- status/control register + cpu_data_o(sreg_resume_req_c) <= dci.resume_req; + cpu_data_o(sreg_execute_req_c) <= dci.execute_req; + end case; + end if; + end if; + end process read_access; + + +end neorv32_debug_dm_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dtm.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dtm.vhd new file mode 100644 index 0000000..fe86d43 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_debug_dtm.vhd @@ -0,0 +1,353 @@ +-- ################################################################################################# +-- # << NEORV32 - RISC-V Debug Transport Module (DTM) >> # +-- # ********************************************************************************************* # +-- # Provides a JTAG-compatible TAP to access the DMI register interface. # +-- # Compatible to the RISC-V debug specification. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # https://github.com/stnolting/riscv-debug-dtm (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; + +entity neorv32_debug_dtm is + generic ( + IDCODE_VERSION : std_ulogic_vector(03 downto 0); -- version + IDCODE_PARTID : std_ulogic_vector(15 downto 0); -- part number + IDCODE_MANID : std_ulogic_vector(10 downto 0) -- manufacturer id + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + -- jtag connection -- + jtag_trst_i : in std_ulogic; + jtag_tck_i : in std_ulogic; + jtag_tdi_i : in std_ulogic; + jtag_tdo_o : out std_ulogic; + jtag_tms_i : in std_ulogic; + -- debug module interface (DMI) -- + dmi_rstn_o : out std_ulogic; + dmi_req_valid_o : out std_ulogic; + dmi_req_ready_i : in std_ulogic; -- DMI is allowed to make new requests when set + dmi_req_addr_o : out std_ulogic_vector(06 downto 0); + dmi_req_op_o : out std_ulogic; -- 0=read, 1=write + dmi_req_data_o : out std_ulogic_vector(31 downto 0); + dmi_resp_valid_i : in std_ulogic; -- response valid when set + dmi_resp_ready_o : out std_ulogic; -- ready to receive respond + dmi_resp_data_i : in std_ulogic_vector(31 downto 0); + dmi_resp_err_i : in std_ulogic -- 0=ok, 1=error + ); +end neorv32_debug_dtm; + +architecture neorv32_debug_dtm_rtl of neorv32_debug_dtm is + + -- DMI Configuration (fixed!) -- + constant dmi_idle_c : std_ulogic_vector(02 downto 0) := "000"; -- no idle cycles required + constant dmi_version_c : std_ulogic_vector(03 downto 0) := "0001"; -- version (0.13) + constant dmi_abits_c : std_ulogic_vector(05 downto 0) := "000111"; -- number of DMI address bits (7) + + -- tap JTAG signal synchronizer -- + type tap_sync_t is record + -- internal -- + trst_ff : std_ulogic_vector(2 downto 0); + tck_ff : std_ulogic_vector(2 downto 0); + tdi_ff : std_ulogic_vector(2 downto 0); + tms_ff : std_ulogic_vector(2 downto 0); + -- external -- + trst : std_ulogic; + tck_rising : std_ulogic; + tck_falling : std_ulogic; + tdi : std_ulogic; + tdo : std_ulogic; + tms : std_ulogic; + end record; + signal tap_sync : tap_sync_t; + + -- tap controller - fsm -- + type tap_ctrl_state_t is (LOGIC_RESET, DR_SCAN, DR_CAPTURE, DR_SHIFT, DR_EXIT1, DR_PAUSE, DR_EXIT2, DR_UPDATE, + RUN_IDLE, IR_SCAN, IR_CAPTURE, IR_SHIFT, IR_EXIT1, IR_PAUSE, IR_EXIT2, IR_UPDATE); + type tap_ctrl_t is record + state : tap_ctrl_state_t; + state_prev : tap_ctrl_state_t; + end record; + signal tap_ctrl : tap_ctrl_t; + + -- tap registers -- + type tap_reg_t is record + ireg : std_ulogic_vector(04 downto 0); + bypass : std_ulogic; + idcode : std_ulogic_vector(31 downto 0); + dtmcs, dtmcs_nxt : std_ulogic_vector(31 downto 0); + dmi, dmi_nxt : std_ulogic_vector((7+32+2)-1 downto 0); -- 7-bit address + 32-bit data + 2-bit operation + end record; + signal tap_reg : tap_reg_t; + + -- debug module interface -- + type dmi_ctrl_state_t is (DMI_IDLE, DMI_READ_WAIT, DMI_READ, DMI_READ_BUSY, + DMI_WRITE_WAIT, DMI_WRITE, DMI_WRITE_BUSY); + type dmi_ctrl_t is record + state : dmi_ctrl_state_t; + -- + dmihardreset : std_ulogic; + dmireset : std_ulogic; + -- + err : std_ulogic; -- sticky error + rdata : std_ulogic_vector(31 downto 0); + wdata : std_ulogic_vector(31 downto 0); + addr : std_ulogic_vector(06 downto 0); + end record; + signal dmi_ctrl : dmi_ctrl_t; + +begin + + -- JTAG Signal Synchronizer --------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + tap_synchronizer: process(rstn_i, clk_i) + begin + if rising_edge(clk_i) then + tap_sync.trst_ff <= tap_sync.trst_ff(1 downto 0) & jtag_trst_i; + tap_sync.tck_ff <= tap_sync.tck_ff( 1 downto 0) & jtag_tck_i; + tap_sync.tdi_ff <= tap_sync.tdi_ff( 1 downto 0) & jtag_tdi_i; + tap_sync.tms_ff <= tap_sync.tms_ff( 1 downto 0) & jtag_tms_i; + if (tap_sync.tck_falling = '1') then -- update output data TDO on falling edge of TCK + jtag_tdo_o <= tap_sync.tdo; + end if; + end if; + end process tap_synchronizer; + + -- JTAG reset -- + tap_sync.trst <= '0' when (tap_sync.trst_ff(2 downto 1) = "00") else '1'; + + -- JTAG clock edge -- + tap_sync.tck_rising <= '1' when (tap_sync.tck_ff(2 downto 1) = "01") else '0'; + tap_sync.tck_falling <= '1' when (tap_sync.tck_ff(2 downto 1) = "10") else '0'; + + -- JTAG test mode select -- + tap_sync.tms <= tap_sync.tms_ff(2); + + -- JTAG serial data input -- + tap_sync.tdi <= tap_sync.tdi_ff(2); + + + -- Tap Control FSM ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + tap_control: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + tap_ctrl.state <= LOGIC_RESET; + tap_ctrl.state_prev <= LOGIC_RESET; + elsif rising_edge(clk_i) then + tap_ctrl.state_prev <= tap_ctrl.state; + if (tap_sync.trst = '0') then -- reset + tap_ctrl.state <= LOGIC_RESET; + elsif (tap_sync.tck_rising = '1') then -- clock pulse (evaluate TMS on the rising edge of TCK) + case tap_ctrl.state is -- JTAG state machine + when LOGIC_RESET => if (tap_sync.tms = '0') then tap_ctrl.state <= RUN_IDLE; else tap_ctrl.state <= LOGIC_RESET; end if; + when RUN_IDLE => if (tap_sync.tms = '0') then tap_ctrl.state <= RUN_IDLE; else tap_ctrl.state <= DR_SCAN; end if; + when DR_SCAN => if (tap_sync.tms = '0') then tap_ctrl.state <= DR_CAPTURE; else tap_ctrl.state <= IR_SCAN; end if; + when DR_CAPTURE => if (tap_sync.tms = '0') then tap_ctrl.state <= DR_SHIFT; else tap_ctrl.state <= DR_EXIT1; end if; + when DR_SHIFT => if (tap_sync.tms = '0') then tap_ctrl.state <= DR_SHIFT; else tap_ctrl.state <= DR_EXIT1; end if; + when DR_EXIT1 => if (tap_sync.tms = '0') then tap_ctrl.state <= DR_PAUSE; else tap_ctrl.state <= DR_UPDATE; end if; + when DR_PAUSE => if (tap_sync.tms = '0') then tap_ctrl.state <= DR_PAUSE; else tap_ctrl.state <= DR_EXIT2; end if; + when DR_EXIT2 => if (tap_sync.tms = '0') then tap_ctrl.state <= DR_SHIFT; else tap_ctrl.state <= DR_UPDATE; end if; + when DR_UPDATE => if (tap_sync.tms = '0') then tap_ctrl.state <= RUN_IDLE; else tap_ctrl.state <= DR_SCAN; end if; + when IR_SCAN => if (tap_sync.tms = '0') then tap_ctrl.state <= IR_CAPTURE; else tap_ctrl.state <= LOGIC_RESET; end if; + when IR_CAPTURE => if (tap_sync.tms = '0') then tap_ctrl.state <= IR_SHIFT; else tap_ctrl.state <= IR_EXIT1; end if; + when IR_SHIFT => if (tap_sync.tms = '0') then tap_ctrl.state <= IR_SHIFT; else tap_ctrl.state <= IR_EXIT1; end if; + when IR_EXIT1 => if (tap_sync.tms = '0') then tap_ctrl.state <= IR_PAUSE; else tap_ctrl.state <= IR_UPDATE; end if; + when IR_PAUSE => if (tap_sync.tms = '0') then tap_ctrl.state <= IR_PAUSE; else tap_ctrl.state <= IR_EXIT2; end if; + when IR_EXIT2 => if (tap_sync.tms = '0') then tap_ctrl.state <= IR_SHIFT; else tap_ctrl.state <= IR_UPDATE; end if; + when IR_UPDATE => if (tap_sync.tms = '0') then tap_ctrl.state <= RUN_IDLE; else tap_ctrl.state <= DR_SCAN; end if; + when others => tap_ctrl.state <= LOGIC_RESET; + end case; + end if; + end if; + end process tap_control; + + + -- Tap Register Access -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + reg_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- serial data input -- + if (tap_sync.tck_rising = '1') then -- clock pulse (evaluate TDI on rising edge of TCK) + + -- instruction register -- + if (tap_ctrl.state = LOGIC_RESET) or (tap_ctrl.state = IR_CAPTURE) then -- reset or preload phase + tap_reg.ireg <= "00001"; -- IDCODE + elsif (tap_ctrl.state = IR_SHIFT) then -- access phase + tap_reg.ireg <= tap_sync.tdi & tap_reg.ireg(tap_reg.ireg'left downto 1); + end if; + + -- data register -- + if (tap_ctrl.state = DR_CAPTURE) then -- preload phase + case tap_reg.ireg is + when "00001" => tap_reg.idcode <= IDCODE_VERSION & IDCODE_PARTID & IDCODE_MANID & '1'; -- IDCODE (LSB has to be always set!) + when "10000" => tap_reg.dtmcs <= tap_reg.dtmcs_nxt;-- dtmcs + when "10001" => tap_reg.dmi <= tap_reg.dmi_nxt; -- dmi + when others => tap_reg.bypass <= '0'; -- BYPASS + end case; + elsif (tap_ctrl.state = DR_SHIFT) then -- access phase + case tap_reg.ireg is + when "00001" => tap_reg.idcode <= tap_sync.tdi & tap_reg.idcode(tap_reg.idcode'left downto 1); -- IDCODE + when "10000" => tap_reg.dtmcs <= tap_sync.tdi & tap_reg.dtmcs(tap_reg.dtmcs'left downto 1); -- dtmcs + when "10001" => tap_reg.dmi <= tap_sync.tdi & tap_reg.dmi(tap_reg.dmi'left downto 1); -- dmi + when others => tap_reg.bypass <= tap_sync.tdi; -- BYPASS + end case; + end if; + end if; + + -- serial data output -- + if (tap_ctrl.state = IR_SHIFT) then + tap_sync.tdo <= tap_reg.ireg(0); + else + case tap_reg.ireg is + when "00001" => tap_sync.tdo <= tap_reg.idcode(0); -- IDCODE + when "10000" => tap_sync.tdo <= tap_reg.dtmcs(0); -- dtmcs + when "10001" => tap_sync.tdo <= tap_reg.dmi(0); -- dmi + when others => tap_sync.tdo <= tap_reg.bypass; -- BYPASS + end case; + end if; + end if; + end process reg_access; + + + -- Debug Module Interface ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + dmi_controller: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + dmi_ctrl.state <= DMI_IDLE; + dmi_ctrl.dmihardreset <= '1'; + dmi_ctrl.dmireset <= '1'; + dmi_ctrl.err <= '0'; + dmi_ctrl.rdata <= (others => '-'); + dmi_ctrl.wdata <= (others => '-'); + dmi_ctrl.addr <= (others => '-'); + elsif rising_edge(clk_i) then + + -- DMI status and control -- + dmi_ctrl.dmihardreset <= '0'; -- default + dmi_ctrl.dmireset <= '0'; -- default + if (tap_ctrl.state = DR_UPDATE) and (tap_ctrl.state_prev /= DR_UPDATE) and (tap_reg.ireg = "10000") then + dmi_ctrl.dmireset <= tap_reg.dtmcs(16); + dmi_ctrl.dmihardreset <= tap_reg.dtmcs(17); + end if; + + -- DMI interface arbiter -- + if (dmi_ctrl.dmihardreset = '1') then -- DMI hard reset + dmi_ctrl.state <= DMI_IDLE; + dmi_ctrl.err <= '0'; + else + case dmi_ctrl.state is + + when DMI_IDLE => -- waiting for new request + if (tap_ctrl.state = DR_UPDATE) and (tap_ctrl.state_prev /= DR_UPDATE) and (tap_reg.ireg = "10001") then -- update + if (tap_reg.dmi(1 downto 0) = "01") then -- read + dmi_ctrl.state <= DMI_READ_WAIT; + elsif (tap_reg.dmi(1 downto 0) = "10") then -- write + dmi_ctrl.state <= DMI_WRITE_WAIT; + end if; + dmi_ctrl.addr <= tap_reg.dmi(40 downto 34); + dmi_ctrl.wdata <= tap_reg.dmi(33 downto 02); + end if; + + + when DMI_READ_WAIT => -- wait for DMI to become ready + if (dmi_req_ready_i = '1') then + dmi_ctrl.state <= DMI_READ; + end if; + + when DMI_READ => -- start read access + dmi_ctrl.state <= DMI_READ_BUSY; + + when DMI_READ_BUSY => -- pending read access + if (dmi_resp_valid_i = '1') then + dmi_ctrl.rdata <= dmi_resp_data_i; + dmi_ctrl.err <= dmi_ctrl.err or dmi_resp_err_i; -- sticky error + dmi_ctrl.state <= DMI_IDLE; + end if; + + + when DMI_WRITE_WAIT => -- wait for DMI to become ready + if (dmi_req_ready_i = '1') then + dmi_ctrl.state <= DMI_WRITE; + end if; + + when DMI_WRITE => -- start write access + dmi_ctrl.state <= DMI_WRITE_BUSY; + + when DMI_WRITE_BUSY => -- pending write access + if (dmi_resp_valid_i = '1') then + dmi_ctrl.err <= dmi_ctrl.err or dmi_resp_err_i; -- sticky error + dmi_ctrl.state <= DMI_IDLE; + end if; + + + when others => -- undefined + dmi_ctrl.state <= DMI_IDLE; + + end case; + -- clear sticky error flag -- + if (dmi_ctrl.dmireset = '1') then + dmi_ctrl.err <= '0'; + end if; + end if; + end if; + end process dmi_controller; + + -- DTM Control and Status Register (dtmcs) -- + tap_reg.dtmcs_nxt(31 downto 18) <= (others => '0'); -- unused + tap_reg.dtmcs_nxt(17) <= '0'; -- dmihardreset, always reads as zero + tap_reg.dtmcs_nxt(16) <= '0'; -- dmireset, always reads as zero + tap_reg.dtmcs_nxt(15) <= '0'; -- unused + tap_reg.dtmcs_nxt(14 downto 12) <= dmi_idle_c; -- minimum number of idle cycles + tap_reg.dtmcs_nxt(11 downto 10) <= tap_reg.dmi_nxt(1 downto 0); -- dmistat + tap_reg.dtmcs_nxt(09 downto 04) <= dmi_abits_c; -- number of DMI address bits + tap_reg.dtmcs_nxt(03 downto 00) <= dmi_version_c; -- version + + -- DMI register read access -- + tap_reg.dmi_nxt(40 downto 34) <= dmi_ctrl.addr; -- address + tap_reg.dmi_nxt(33 downto 02) <= dmi_ctrl.rdata; -- read data + tap_reg.dmi_nxt(01 downto 00) <= "11" when (dmi_ctrl.state /= DMI_IDLE) else (dmi_ctrl.err & '0'); -- status + + -- direct DMI output -- + dmi_rstn_o <= '0' when (dmi_ctrl.dmihardreset = '1') else '1'; + dmi_req_valid_o <= '1' when (dmi_ctrl.state = DMI_READ) or (dmi_ctrl.state = DMI_WRITE) else '0'; + dmi_req_op_o <= '1' when (dmi_ctrl.state = DMI_WRITE) or (dmi_ctrl.state = DMI_WRITE_BUSY) else '0'; + dmi_resp_ready_o <= '1' when (dmi_ctrl.state = DMI_READ_BUSY) or (dmi_ctrl.state = DMI_WRITE_BUSY) else '0'; + dmi_req_addr_o <= dmi_ctrl.addr; + dmi_req_data_o <= dmi_ctrl.wdata; + + +end neorv32_debug_dtm_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_dmem.entity.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_dmem.entity.vhd new file mode 100644 index 0000000..ec0fd83 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_dmem.entity.vhd @@ -0,0 +1,54 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal data memory (DMEM) >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity neorv32_dmem is + generic ( + DMEM_BASE : std_ulogic_vector(31 downto 0); -- memory base address + DMEM_SIZE : natural -- processor-internal instruction memory size in bytes + ); + port ( + clk_i : in std_ulogic; -- global clock line + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + ben_i : in std_ulogic_vector(03 downto 0); -- byte write enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); +end neorv32_dmem; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_fifo.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_fifo.vhd new file mode 100644 index 0000000..dd8d794 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_fifo.vhd @@ -0,0 +1,188 @@ +-- ################################################################################################# +-- # << NEORV32 - General Purpose FIFO Component >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_fifo is + generic ( + FIFO_DEPTH : natural; -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH : natural; -- size of data elements in fifo + FIFO_RSYNC : boolean; -- false = async read; true = sync read + FIFO_SAFE : boolean -- true = allow read/write only if entry available + ); + port ( + -- control -- + clk_i : in std_ulogic; -- clock, rising edge + rstn_i : in std_ulogic; -- async reset, low-active + clear_i : in std_ulogic; -- sync reset, high-active + level_o : out std_ulogic_vector(index_size_f(FIFO_DEPTH) downto 0); -- fill level + half_o : out std_ulogic; -- FIFO is at least half full + -- write port -- + wdata_i : in std_ulogic_vector(FIFO_WIDTH-1 downto 0); -- write data + we_i : in std_ulogic; -- write enable + free_o : out std_ulogic; -- at least one entry is free when set + -- read port -- + re_i : in std_ulogic; -- read enable + rdata_o : out std_ulogic_vector(FIFO_WIDTH-1 downto 0); -- read data + avail_o : out std_ulogic -- data available when set + ); +end neorv32_fifo; + +architecture neorv32_fifo_rtl of neorv32_fifo is + + -- FIFO -- + type fifo_data_t is array (0 to FIFO_DEPTH-1) of std_ulogic_vector(FIFO_WIDTH-1 downto 0); + type fifo_t is record + we : std_ulogic; -- write enable + re : std_ulogic; -- read enable + w_pnt : std_ulogic_vector(index_size_f(FIFO_DEPTH) downto 0); -- write pointer + r_pnt : std_ulogic_vector(index_size_f(FIFO_DEPTH) downto 0); -- read pointer + level : std_ulogic_vector(index_size_f(FIFO_DEPTH) downto 0); -- fill count + data : fifo_data_t; -- fifo memory + datas : std_ulogic_vector(FIFO_WIDTH-1 downto 0); + match : std_ulogic; + empty : std_ulogic; + full : std_ulogic; + free : std_ulogic; + avail : std_ulogic; + end record; + signal fifo : fifo_t; + + signal level_diff : std_ulogic_vector(index_size_f(FIFO_DEPTH) downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (FIFO_DEPTH = 0) report "NEORV32 CONFIG ERROR: FIFO depth has to be > 0." severity error; + assert not (is_power_of_two_f(FIFO_DEPTH) = false) report "NEORV32 CONFIG ERROR: FIFO depth has to be a power of two." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + fifo.re <= re_i when (FIFO_SAFE = false) else (re_i and fifo.avail); -- read only if data available + fifo.we <= we_i when (FIFO_SAFE = false) else (we_i and fifo.free); -- write only if space left + + + -- FIFO Control --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + fifo_control: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + fifo.w_pnt <= (others => '0'); + fifo.r_pnt <= (others => '0'); + elsif rising_edge(clk_i) then + -- write port -- + if (clear_i = '1') then + fifo.w_pnt <= (others => '0'); + elsif (fifo.we = '1') then + fifo.w_pnt <= std_ulogic_vector(unsigned(fifo.w_pnt) + 1); + end if; + -- read port -- + if (clear_i = '1') then + fifo.r_pnt <= (others => '0'); + elsif (fifo.re = '1') then + fifo.r_pnt <= std_ulogic_vector(unsigned(fifo.r_pnt) + 1); + end if; + end if; + end process fifo_control; + + -- status -- + fifo.match <= '1' when (fifo.r_pnt(fifo.r_pnt'left-1 downto 0) = fifo.w_pnt(fifo.w_pnt'left-1 downto 0)) or (FIFO_DEPTH = 1) else '0'; + fifo.full <= '1' when (fifo.r_pnt(fifo.r_pnt'left) /= fifo.w_pnt(fifo.w_pnt'left)) and (fifo.match = '1') else '0'; + fifo.empty <= '1' when (fifo.r_pnt(fifo.r_pnt'left) = fifo.w_pnt(fifo.w_pnt'left)) and (fifo.match = '1') else '0'; + fifo.free <= not fifo.full; + fifo.avail <= not fifo.empty; + level_diff <= std_ulogic_vector(unsigned(fifo.w_pnt) - unsigned(fifo.r_pnt)); + fifo.level <= std_ulogic_vector(to_unsigned(FIFO_DEPTH, fifo.level'length)) when (fifo.full = '1') else level_diff; + + -- status output -- + level_o <= fifo.level; + free_o <= fifo.free; + avail_o <= fifo.avail; + + fifo_half_level: + if (FIFO_DEPTH > 1) generate + half_o <= level_diff(level_diff'left-1) or fifo.full; + end generate; + + fifo_half_level_simple: + if (FIFO_DEPTH = 1) generate + half_o <= fifo.full; + end generate; + + + -- FIFO Memory ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + fifo_memory_write: process(clk_i) + begin + if rising_edge(clk_i) then + if (fifo.we = '1') then + if (FIFO_DEPTH = 1) then + fifo.datas <= wdata_i; + else + fifo.data(to_integer(unsigned(fifo.w_pnt(fifo.w_pnt'left-1 downto 0)))) <= wdata_i; + end if; + end if; + end if; + end process fifo_memory_write; + + -- asynchronous read -- + fifo_read_async: + if (FIFO_RSYNC = false) generate + rdata_o <= fifo.datas when (FIFO_DEPTH = 1) else fifo.data(to_integer(unsigned(fifo.r_pnt(fifo.r_pnt'left-1 downto 0)))); + end generate; + + -- synchronous read -- + fifo_read_sync: + if (FIFO_RSYNC = true) generate + fifo_memory_read: process(clk_i) + begin + if rising_edge(clk_i) then + if (FIFO_DEPTH = 1) then + rdata_o <= fifo.datas; + else + rdata_o <= fifo.data(to_integer(unsigned(fifo.r_pnt(fifo.r_pnt'left-1 downto 0)))); + end if; + end if; + end process fifo_memory_read; + end generate; + + +end neorv32_fifo_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_gpio.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_gpio.vhd new file mode 100644 index 0000000..db6dbe3 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_gpio.vhd @@ -0,0 +1,126 @@ +-- ################################################################################################# +-- # << NEORV32 - General Purpose Parallel Input/Output Port (GPIO) >> # +-- # ********************************************************************************************* # +-- # 64-bit general purpose parallel input & output port unit. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_gpio is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- parallel io -- + gpio_o : out std_ulogic_vector(63 downto 0); + gpio_i : in std_ulogic_vector(63 downto 0) + ); +end neorv32_gpio; + +architecture neorv32_gpio_rtl of neorv32_gpio is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(gpio_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- accessible regs -- + signal din_lo, din_hi : std_ulogic_vector(31 downto 0); -- r/- + signal dout_lo, dout_hi : std_ulogic_vector(31 downto 0); -- r/w + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = gpio_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= gpio_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- bus handshake -- + ack_o <= wren or rden; + + -- write access -- + if (wren = '1') then + if (addr = gpio_out_lo_addr_c) then + dout_lo <= data_i; + end if; + if (addr = gpio_out_hi_addr_c) then + dout_hi <= data_i; + end if; + end if; + + -- input buffer -- + din_lo <= gpio_i(31 downto 00); + din_hi <= gpio_i(63 downto 32); + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + case addr(3 downto 2) is + when "00" => data_o <= din_lo; + when "01" => data_o <= din_hi; + when "10" => data_o <= dout_lo; + when others => data_o <= dout_hi; + end case; + end if; + + end if; + end process rw_access; + + -- output -- + gpio_o <= dout_hi & dout_lo; + + +end neorv32_gpio_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_gptmr.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_gptmr.vhd new file mode 100644 index 0000000..5827932 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_gptmr.vhd @@ -0,0 +1,203 @@ +-- ################################################################################################# +-- # << NEORV32 - General Purpose Timer (GPTMR) >> # +-- # ********************************************************************************************* # +-- # 32-bit timer with configurable clock prescaler. The timer fires an interrupt whenever the # +-- # counter register value reaches the programmed threshold value. The timer can operate in # +-- # single-shot mode (count until it reaches THRESHOLD and stop) or in continuous mode (count # +-- # until it reaches THRESHOLD and auto-reset). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_gptmr is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- interrupt -- + irq_o : out std_ulogic -- transmission done interrupt + ); +end neorv32_gptmr; + +architecture neorv32_gptmr_rtl of neorv32_gptmr is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(gptmr_size_c); -- low address boundary bit + + -- control register -- + constant ctrl_en_c : natural := 0; -- r/w: timer enable + constant ctrl_prsc0_c : natural := 1; -- r/w: clock prescaler select bit 0 + constant ctrl_prsc1_c : natural := 2; -- r/w: clock prescaler select bit 1 + constant ctrl_prsc2_c : natural := 3; -- r/w: clock prescaler select bit 2 + constant ctrl_mode_c : natural := 4; -- r/w: mode (0=single-shot, 1=continuous) + -- + signal ctrl : std_ulogic_vector(4 downto 0); + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- clock generator -- + signal gptmr_clk_en : std_ulogic; + + -- timer core -- + type timer_t is record + count : std_ulogic_vector(31 downto 0); -- counter register + thres : std_ulogic_vector(31 downto 0); -- threshold value + match : std_ulogic; -- count == thres + cnt_we : std_ulogic; -- write access to count + end record; + signal timer : timer_t; + + -- interrupt detector -- + signal irq_detect : std_ulogic_vector(1 downto 0); + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = gptmr_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= gptmr_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- bus access acknowledge -- + ack_o <= rden or wren; + + -- write access -- + timer.cnt_we <= '0'; + if (wren = '1') then + if (addr = gptmr_ctrl_addr_c) then -- control register + ctrl(ctrl_en_c) <= data_i(ctrl_en_c); + ctrl(ctrl_prsc0_c) <= data_i(ctrl_prsc0_c); + ctrl(ctrl_prsc1_c) <= data_i(ctrl_prsc1_c); + ctrl(ctrl_prsc2_c) <= data_i(ctrl_prsc2_c); + ctrl(ctrl_mode_c) <= data_i(ctrl_mode_c); + end if; + if (addr = gptmr_thres_addr_c) then -- threshold register + timer.thres <= data_i; + end if; + if (addr = gptmr_count_addr_c) then -- counter register + timer.cnt_we <= '1'; + end if; + end if; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + case addr(3 downto 2) is + when "00" => -- control register + data_o(ctrl_en_c) <= ctrl(ctrl_en_c); + data_o(ctrl_prsc0_c) <= ctrl(ctrl_prsc0_c); + data_o(ctrl_prsc1_c) <= ctrl(ctrl_prsc1_c); + data_o(ctrl_prsc2_c) <= ctrl(ctrl_prsc2_c); + data_o(ctrl_mode_c) <= ctrl(ctrl_mode_c); + when "01" => -- threshold register + data_o <= timer.thres; + when others => -- counter register + data_o <= timer.count; + end case; + end if; + end if; + end process rw_access; + + -- clock generator enable -- + clkgen_en_o <= ctrl(ctrl_en_c); + + -- clock select -- + gptmr_clk_en <= clkgen_i(to_integer(unsigned(ctrl(ctrl_prsc2_c downto ctrl_prsc0_c)))); + + + -- Timer Core ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + timer_core: process(clk_i) + begin + if rising_edge(clk_i) then + if (timer.cnt_we = '1') then -- write access + timer.count <= data_i; + elsif (ctrl(ctrl_en_c) = '1') and (gptmr_clk_en = '1') then -- enabled and clock tick + if (timer.match = '1') then + if (ctrl(ctrl_mode_c) = '1') then -- reset counter if continuous mode + timer.count <= (others => '0'); + end if; + else + timer.count <= std_ulogic_vector(unsigned(timer.count) + 1); + end if; + end if; + end if; + end process timer_core; + + -- counter = threshold? -- + timer.match <= '1' when (timer.count = timer.thres) else '0'; + + + -- Interrupt Generator -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + irq_generator: process(clk_i) + begin + if rising_edge(clk_i) then + if (ctrl(ctrl_en_c) = '0') then + irq_detect <= "00"; + else + irq_detect <= irq_detect(0) & timer.match; + end if; + end if; + end process irq_generator; + + -- IRQ request to CPU -- + irq_o <= '1' when (irq_detect = "01") else '0'; + + +end neorv32_gptmr_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_icache.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_icache.vhd new file mode 100644 index 0000000..61b9284 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_icache.vhd @@ -0,0 +1,589 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-Internal Instruction Cache >> # +-- # ********************************************************************************************* # +-- # Direct mapped (ICACHE_NUM_SETS = 1) or 2-way set-associative (ICACHE_NUM_SETS = 2). # +-- # Least recently used replacement policy (if ICACHE_NUM_SETS > 1). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_icache is + generic ( + ICACHE_NUM_BLOCKS : natural; -- number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural; -- block size in bytes (min 4), has to be a power of 2 + ICACHE_NUM_SETS : natural -- associativity / number of sets (1=direct_mapped), has to be a power of 2 + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + clear_i : in std_ulogic; -- cache clear + -- host controller interface -- + host_addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + host_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + host_wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + host_ben_i : in std_ulogic_vector(03 downto 0); -- byte enable + host_we_i : in std_ulogic; -- write enable + host_re_i : in std_ulogic; -- read enable + host_ack_o : out std_ulogic; -- bus transfer acknowledge + host_err_o : out std_ulogic; -- bus transfer error + -- peripheral bus interface -- + bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + bus_we_o : out std_ulogic; -- write enable + bus_re_o : out std_ulogic; -- read enable + bus_ack_i : in std_ulogic; -- bus transfer acknowledge + bus_err_i : in std_ulogic -- bus transfer error + ); +end neorv32_icache; + +architecture neorv32_icache_rtl of neorv32_icache is + + -- cache layout -- + constant cache_offset_size_c : natural := index_size_f(ICACHE_BLOCK_SIZE/4); -- offset addresses full 32-bit words + constant cache_index_size_c : natural := index_size_f(ICACHE_NUM_BLOCKS); + constant cache_tag_size_c : natural := 32 - (cache_offset_size_c + cache_index_size_c + 2); -- 2 additonal bits for byte offset + + -- cache memory -- + component neorv32_icache_memory + generic ( + ICACHE_NUM_BLOCKS : natural := 4; -- number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 16; -- block size in bytes (min 4), has to be a power of 2 + ICACHE_NUM_SETS : natural := 1 -- associativity; 0=direct-mapped, 1=2-way set-associative + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + invalidate_i : in std_ulogic; -- invalidate whole cache + -- host cache access (read-only) -- + host_addr_i : in std_ulogic_vector(31 downto 0); -- access address + host_re_i : in std_ulogic; -- read enable + host_rdata_o : out std_ulogic_vector(31 downto 0); -- read data + -- access status (1 cycle delay to access) -- + hit_o : out std_ulogic; -- hit access + -- ctrl cache access (write-only) -- + ctrl_en_i : in std_ulogic; -- control interface enable + ctrl_addr_i : in std_ulogic_vector(31 downto 0); -- access address + ctrl_we_i : in std_ulogic; -- write enable (full-word) + ctrl_wdata_i : in std_ulogic_vector(31 downto 0); -- write data + ctrl_tag_we_i : in std_ulogic; -- write tag to selected block + ctrl_valid_i : in std_ulogic; -- make selected block valid + ctrl_invalid_i : in std_ulogic -- make selected block invalid + ); + end component; + + -- cache interface -- + type cache_if_t is record + clear : std_ulogic; -- cache clear + -- + host_addr : std_ulogic_vector(31 downto 0); -- cpu access address + host_rdata : std_ulogic_vector(31 downto 0); -- cpu read data + -- + hit : std_ulogic; -- hit access + -- + ctrl_en : std_ulogic; -- control access enable + ctrl_addr : std_ulogic_vector(31 downto 0); -- control access address + ctrl_we : std_ulogic; -- control write enable + ctrl_wdata : std_ulogic_vector(31 downto 0); -- control write data + ctrl_tag_we : std_ulogic; -- control tag write enabled + ctrl_valid_we : std_ulogic; -- control valid flag set + ctrl_invalid_we : std_ulogic; -- control valid flag clear + end record; + signal cache : cache_if_t; + + -- control engine -- + type ctrl_engine_state_t is (S_IDLE, S_CACHE_CLEAR, S_CACHE_CHECK, S_CACHE_MISS, S_BUS_DOWNLOAD_REQ, S_BUS_DOWNLOAD_GET, + S_CACHE_RESYNC_0, S_CACHE_RESYNC_1, S_BUS_ERROR); + type ctrl_t is record + state : ctrl_engine_state_t; -- current state + state_nxt : ctrl_engine_state_t; -- next state + addr_reg : std_ulogic_vector(31 downto 0); -- address register for block download + addr_reg_nxt : std_ulogic_vector(31 downto 0); + -- + re_buf : std_ulogic; -- read request buffer + re_buf_nxt : std_ulogic; + -- + clear_buf : std_ulogic; -- clear request buffer + clear_buf_nxt : std_ulogic; + end record; + signal ctrl : ctrl_t; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- configuration -- + assert not (is_power_of_two_f(ICACHE_NUM_BLOCKS) = false) report "NEORV32 PROCESSOR CONFIG ERROR! i-cache number of blocks has to be a power of 2." severity error; + assert not (is_power_of_two_f(ICACHE_BLOCK_SIZE) = false) report "NEORV32 PROCESSOR CONFIG ERROR! i-cache block size has to be a power of 2." severity error; + assert not ((is_power_of_two_f(ICACHE_NUM_SETS) = false)) report "NEORV32 PROCESSOR CONFIG ERROR! i-cache associativity has to be a power of 2." severity error; + assert not (ICACHE_NUM_BLOCKS < 1) report "NEORV32 PROCESSOR CONFIG ERROR! i-cache number of blocks has to be >= 1." severity error; + assert not (ICACHE_BLOCK_SIZE < 4) report "NEORV32 PROCESSOR CONFIG ERROR! i-cache block size has to be >= 4." severity error; + assert not ((ICACHE_NUM_SETS = 0) or (ICACHE_NUM_SETS > 2)) report "NEORV32 PROCESSOR CONFIG ERROR! i-cache associativity has to be 1 (direct-mapped) or 2 (2-way set-associative)." severity error; + + + -- Control Engine FSM Sync ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- registers that REQUIRE a specific reset state -- + ctrl_engine_fsm_sync_rst: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl.state <= S_CACHE_CLEAR; + ctrl.re_buf <= '0'; + ctrl.clear_buf <= '0'; + elsif rising_edge(clk_i) then + ctrl.state <= ctrl.state_nxt; + ctrl.re_buf <= ctrl.re_buf_nxt; + ctrl.clear_buf <= ctrl.clear_buf_nxt; + end if; + end process ctrl_engine_fsm_sync_rst; + + -- registers that do not require a specific reset state -- + ctrl_engine_fsm_sync: process(clk_i) + begin + if rising_edge(clk_i) then + ctrl.addr_reg <= ctrl.addr_reg_nxt; + end if; + end process ctrl_engine_fsm_sync; + + + -- Control Engine FSM Comb ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ctrl_engine_fsm_comb: process(ctrl, cache, clear_i, host_addr_i, host_re_i, bus_rdata_i, bus_ack_i, bus_err_i) + begin + -- control defaults -- + ctrl.state_nxt <= ctrl.state; + ctrl.addr_reg_nxt <= ctrl.addr_reg; + ctrl.re_buf_nxt <= ctrl.re_buf or host_re_i; + ctrl.clear_buf_nxt <= ctrl.clear_buf or clear_i; -- buffer clear request from CPU + + -- cache defaults -- + cache.clear <= '0'; + cache.host_addr <= host_addr_i; + cache.ctrl_en <= '0'; + cache.ctrl_addr <= ctrl.addr_reg; + cache.ctrl_we <= '0'; + cache.ctrl_wdata <= bus_rdata_i; + cache.ctrl_tag_we <= '0'; + cache.ctrl_valid_we <= '0'; + cache.ctrl_invalid_we <= '0'; + + -- host interface defaults -- + host_ack_o <= '0'; + host_err_o <= '0'; + host_rdata_o <= cache.host_rdata; + + -- peripheral bus interface defaults -- + bus_addr_o <= ctrl.addr_reg; + bus_wdata_o <= (others => '0'); -- cache is read-only + bus_ben_o <= (others => '0'); -- cache is read-only + bus_we_o <= '0'; -- cache is read-only + bus_re_o <= '0'; + + -- fsm -- + case ctrl.state is + + when S_IDLE => -- wait for host access request or cache control operation + -- ------------------------------------------------------------ + if (ctrl.clear_buf = '1') then -- cache control operation? + ctrl.state_nxt <= S_CACHE_CLEAR; + elsif (host_re_i = '1') or (ctrl.re_buf = '1') then -- cache access + ctrl.re_buf_nxt <= '0'; + ctrl.state_nxt <= S_CACHE_CHECK; + end if; + + when S_CACHE_CLEAR => -- invalidate all cache entries + -- ------------------------------------------------------------ + ctrl.clear_buf_nxt <= '0'; + cache.clear <= '1'; + ctrl.state_nxt <= S_IDLE; + + when S_CACHE_CHECK => -- finalize host access if cache hit + -- ------------------------------------------------------------ + if (cache.hit = '1') then -- cache HIT + host_ack_o <= '1'; + ctrl.state_nxt <= S_IDLE; + else -- cache MISS + ctrl.state_nxt <= S_CACHE_MISS; + end if; + + when S_CACHE_MISS => -- + -- ------------------------------------------------------------ + -- compute block base address -- + ctrl.addr_reg_nxt <= host_addr_i; + ctrl.addr_reg_nxt((2+cache_offset_size_c)-1 downto 2) <= (others => '0'); -- block-aligned + ctrl.addr_reg_nxt(1 downto 0) <= "00"; -- word-aligned + -- + ctrl.state_nxt <= S_BUS_DOWNLOAD_REQ; + + when S_BUS_DOWNLOAD_REQ => -- download new cache block: request new word + -- ------------------------------------------------------------ + cache.ctrl_en <= '1'; -- we are in cache control mode + bus_re_o <= '1'; -- request new read transfer + ctrl.state_nxt <= S_BUS_DOWNLOAD_GET; + + when S_BUS_DOWNLOAD_GET => -- download new cache block: wait for bus response + -- ------------------------------------------------------------ + cache.ctrl_en <= '1'; -- we are in cache control mode + -- + if (bus_err_i = '1') then -- bus error + ctrl.state_nxt <= S_BUS_ERROR; + elsif (bus_ack_i = '1') then -- ACK = write to cache and get next word + cache.ctrl_we <= '1'; -- write to cache + if (and_reduce_f(ctrl.addr_reg((2+cache_offset_size_c)-1 downto 2)) = '1') then -- block complete? + cache.ctrl_tag_we <= '1'; -- current block is valid now + cache.ctrl_valid_we <= '1'; -- write tag of current address + ctrl.state_nxt <= S_CACHE_RESYNC_0; + else -- get next word + ctrl.addr_reg_nxt <= std_ulogic_vector(unsigned(ctrl.addr_reg) + 4); + ctrl.state_nxt <= S_BUS_DOWNLOAD_REQ; + end if; + end if; + + when S_CACHE_RESYNC_0 => -- re-sync host/cache access: cache read-latency + -- ------------------------------------------------------------ + ctrl.state_nxt <= S_CACHE_RESYNC_1; + + when S_CACHE_RESYNC_1 => -- re-sync host/cache access: finalize CPU request + -- ------------------------------------------------------------ + host_ack_o <= '1'; + ctrl.state_nxt <= S_IDLE; + + when S_BUS_ERROR => -- bus error during download + -- ------------------------------------------------------------ + host_err_o <= '1'; + ctrl.state_nxt <= S_IDLE; + + when others => -- undefined + -- ------------------------------------------------------------ + ctrl.state_nxt <= S_IDLE; + + end case; + end process ctrl_engine_fsm_comb; + + + -- Cache Memory --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_icache_memory_inst: neorv32_icache_memory + generic map ( + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- block size in bytes (min 4), has to be a power of 2 + ICACHE_NUM_SETS => ICACHE_NUM_SETS -- associativity; 0=direct-mapped, 1=2-way set-associative + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + invalidate_i => cache.clear, -- invalidate whole cache + -- host cache access (read-only) -- + host_addr_i => cache.host_addr, -- access address + host_re_i => host_re_i, -- read enable + host_rdata_o => cache.host_rdata, -- read data + -- access status (1 cycle delay to access) -- + hit_o => cache.hit, -- hit access + -- ctrl cache access (write-only) -- + ctrl_en_i => cache.ctrl_en, -- control interface enable + ctrl_addr_i => cache.ctrl_addr, -- access address + ctrl_we_i => cache.ctrl_we, -- write enable (full-word) + ctrl_wdata_i => cache.ctrl_wdata, -- write data + ctrl_tag_we_i => cache.ctrl_tag_we, -- write tag to selected block + ctrl_valid_i => cache.ctrl_valid_we, -- make selected block valid + ctrl_invalid_i => cache.ctrl_invalid_we -- make selected block invalid + ); + +end neorv32_icache_rtl; + + +-- ########################################################################################################################################### +-- ########################################################################################################################################### + + +-- ################################################################################################# +-- # << NEORV32 - Cache Memory >> # +-- # ********************************************************************************************* # +-- # Direct mapped (ICACHE_NUM_SETS = 1) or 2-way set-associative (ICACHE_NUM_SETS = 2). # +-- # Least recently used replacement policy (if ICACHE_NUM_SETS > 1). # +-- # Read-only for host, write-only for control. All output signals have one cycle latency. # +-- # # +-- # Cache sets are mapped to individual memory components - no multi-dimensional memory arrays # +-- # are used as some synthesis tools have problems to map these to actual BRAM primitives. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2020, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_icache_memory is + generic ( + ICACHE_NUM_BLOCKS : natural := 4; -- number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 16; -- block size in bytes (min 4), has to be a power of 2 + ICACHE_NUM_SETS : natural := 1 -- associativity; 1=direct-mapped, 2=2-way set-associative + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + invalidate_i : in std_ulogic; -- invalidate whole cache + -- host cache access (read-only) -- + host_addr_i : in std_ulogic_vector(31 downto 0); -- access address + host_re_i : in std_ulogic; -- read enable + host_rdata_o : out std_ulogic_vector(31 downto 0); -- read data + -- access status (1 cycle delay to access) -- + hit_o : out std_ulogic; -- hit access + -- ctrl cache access (write-only) -- + ctrl_en_i : in std_ulogic; -- control interface enable + ctrl_addr_i : in std_ulogic_vector(31 downto 0); -- access address + ctrl_we_i : in std_ulogic; -- write enable (full-word) + ctrl_wdata_i : in std_ulogic_vector(31 downto 0); -- write data + ctrl_tag_we_i : in std_ulogic; -- write tag to selected block + ctrl_valid_i : in std_ulogic; -- make selected block valid + ctrl_invalid_i : in std_ulogic -- make selected block invalid + ); +end neorv32_icache_memory; + +architecture neorv32_icache_memory_rtl of neorv32_icache_memory is + + -- cache layout -- + constant cache_offset_size_c : natural := index_size_f(ICACHE_BLOCK_SIZE/4); -- offset addresses full 32-bit words + constant cache_index_size_c : natural := index_size_f(ICACHE_NUM_BLOCKS); + constant cache_tag_size_c : natural := 32 - (cache_offset_size_c + cache_index_size_c + 2); -- 2 additonal bits for byte offset + constant cache_entries_c : natural := ICACHE_NUM_BLOCKS * (ICACHE_BLOCK_SIZE/4); -- number of 32-bit entries (per set) + + -- status flag memory -- + signal valid_flag_s0 : std_ulogic_vector(ICACHE_NUM_BLOCKS-1 downto 0); + signal valid_flag_s1 : std_ulogic_vector(ICACHE_NUM_BLOCKS-1 downto 0); + signal valid : std_ulogic_vector(1 downto 0); -- valid flag read data + + -- tag memory -- + type tag_mem_t is array (0 to ICACHE_NUM_BLOCKS-1) of std_ulogic_vector(cache_tag_size_c-1 downto 0); + signal tag_mem_s0 : tag_mem_t; + signal tag_mem_s1 : tag_mem_t; + type tag_rd_t is array (0 to 1) of std_ulogic_vector(cache_tag_size_c-1 downto 0); + signal tag : tag_rd_t; -- tag read data + + -- access status -- + signal hit : std_ulogic_vector(1 downto 0); + + -- access address decomposition -- + type acc_addr_t is record + tag : std_ulogic_vector(cache_tag_size_c-1 downto 0); + index : std_ulogic_vector(cache_index_size_c-1 downto 0); + offset : std_ulogic_vector(cache_offset_size_c-1 downto 0); + end record; + signal host_acc_addr, ctrl_acc_addr : acc_addr_t; + + -- cache data memory -- + type cache_mem_t is array (0 to cache_entries_c-1) of std_ulogic_vector(31 downto 0); + signal cache_data_memory_s0 : cache_mem_t; -- set 0 + signal cache_data_memory_s1 : cache_mem_t; -- set 1 + + -- cache data memory access -- + type cache_rdata_t is array (0 to 1) of std_ulogic_vector(31 downto 0); + signal cache_rdata : cache_rdata_t; + signal cache_index : std_ulogic_vector(cache_index_size_c-1 downto 0); + signal cache_offset : std_ulogic_vector(cache_offset_size_c-1 downto 0); + signal cache_addr : std_ulogic_vector((cache_index_size_c+cache_offset_size_c)-1 downto 0); -- index & offset + signal cache_we : std_ulogic; -- write enable (full-word) + signal set_select : std_ulogic; + + -- access history -- + type history_t is record + re_ff : std_ulogic; + last_used_set : std_ulogic_vector(ICACHE_NUM_BLOCKS-1 downto 0); + to_be_replaced : std_ulogic; + end record; + signal history : history_t; + +begin + + -- Access Address Decomposition ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + host_acc_addr.tag <= host_addr_i(31 downto 31-(cache_tag_size_c-1)); + host_acc_addr.index <= host_addr_i(31-cache_tag_size_c downto 2+cache_offset_size_c); + host_acc_addr.offset <= host_addr_i(2+(cache_offset_size_c-1) downto 2); -- discard byte offset + + ctrl_acc_addr.tag <= ctrl_addr_i(31 downto 31-(cache_tag_size_c-1)); + ctrl_acc_addr.index <= ctrl_addr_i(31-cache_tag_size_c downto 2+cache_offset_size_c); + ctrl_acc_addr.offset <= ctrl_addr_i(2+(cache_offset_size_c-1) downto 2); -- discard byte offset + + + -- Cache Access History ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + access_history: process(clk_i) + begin + if rising_edge(clk_i) then + history.re_ff <= host_re_i; + if (invalidate_i = '1') then -- invalidate whole cache + history.last_used_set <= (others => '1'); + elsif (history.re_ff = '1') and (or_reduce_f(hit) = '1') and (ctrl_en_i = '0') then -- store last accessed set that caused a hit + history.last_used_set(to_integer(unsigned(cache_index))) <= not hit(0); + end if; + history.to_be_replaced <= history.last_used_set(to_integer(unsigned(cache_index))); + end if; + end process access_history; + + -- which set is going to be replaced? -> opposite of last used set = least recently used set -- + set_select <= '0' when (ICACHE_NUM_SETS = 1) else (not history.to_be_replaced); + + + -- Status flag memory --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + status_memory: process(clk_i) + begin + if rising_edge(clk_i) then + -- write access -- + if (invalidate_i = '1') then -- invalidate whole cache + valid_flag_s0 <= (others => '0'); + valid_flag_s1 <= (others => '0'); + elsif (ctrl_en_i = '1') then + if (ctrl_invalid_i = '1') then -- make current block invalid + if (set_select = '0') then + valid_flag_s0(to_integer(unsigned(cache_index))) <= '0'; + else + valid_flag_s1(to_integer(unsigned(cache_index))) <= '0'; + end if; + elsif (ctrl_valid_i = '1') then -- make current block valid + if (set_select = '0') then + valid_flag_s0(to_integer(unsigned(cache_index))) <= '1'; + else + valid_flag_s1(to_integer(unsigned(cache_index))) <= '1'; + end if; + end if; + end if; + -- read access (sync) -- + valid(0) <= valid_flag_s0(to_integer(unsigned(cache_index))); + valid(1) <= valid_flag_s1(to_integer(unsigned(cache_index))); + end if; + end process status_memory; + + + -- Tag memory ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + tag_memory: process(clk_i) + begin + if rising_edge(clk_i) then + if (ctrl_en_i = '1') and (ctrl_tag_we_i = '1') then -- write access + if (set_select = '0') then + tag_mem_s0(to_integer(unsigned(cache_index))) <= ctrl_acc_addr.tag; + else + tag_mem_s1(to_integer(unsigned(cache_index))) <= ctrl_acc_addr.tag; + end if; + end if; + tag(0) <= tag_mem_s0(to_integer(unsigned(cache_index))); + tag(1) <= tag_mem_s1(to_integer(unsigned(cache_index))); + end if; + end process tag_memory; + + -- comparator -- + comparator: process(host_acc_addr, tag, valid) + begin + hit <= (others => '0'); + for i in 0 to ICACHE_NUM_SETS-1 loop + if (host_acc_addr.tag = tag(i)) and (valid(i) = '1') then + hit(i) <= '1'; + end if; + end loop; -- i + end process comparator; + + -- global hit -- + hit_o <= or_reduce_f(hit); + + + -- Cache Data Memory ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + cache_mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + if (cache_we = '1') then -- write access from control (full-word) + if (set_select = '0') or (ICACHE_NUM_SETS = 1) then + cache_data_memory_s0(to_integer(unsigned(cache_addr))) <= ctrl_wdata_i; + else + cache_data_memory_s1(to_integer(unsigned(cache_addr))) <= ctrl_wdata_i; + end if; + end if; + -- read access from host (full-word) -- + cache_rdata(0) <= cache_data_memory_s0(to_integer(unsigned(cache_addr))); + cache_rdata(1) <= cache_data_memory_s1(to_integer(unsigned(cache_addr))); + end if; + end process cache_mem_access; + + -- data output -- + host_rdata_o <= cache_rdata(0) when (hit(0) = '1') or (ICACHE_NUM_SETS = 1) else cache_rdata(1); + + -- cache block ram access address -- + cache_addr <= cache_index & cache_offset; + + -- cache access select -- + cache_index <= host_acc_addr.index when (ctrl_en_i = '0') else ctrl_acc_addr.index; + cache_offset <= host_acc_addr.offset when (ctrl_en_i = '0') else ctrl_acc_addr.offset; + cache_we <= '0' when (ctrl_en_i = '0') else ctrl_we_i; + + +end neorv32_icache_memory_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_imem.entity.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_imem.entity.vhd new file mode 100644 index 0000000..533a317 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_imem.entity.vhd @@ -0,0 +1,58 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal instruction memory (IMEM) >> # +-- # ********************************************************************************************* # +-- # This memory optionally includes the in-place executable image of the application. See the # +-- # processor's documentary to get more information. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity neorv32_imem is + generic ( + IMEM_BASE : std_ulogic_vector(31 downto 0); -- memory base address + IMEM_SIZE : natural; -- processor-internal instruction memory size in bytes + IMEM_AS_IROM : boolean -- implement IMEM as pre-initialized read-only memory? + ); + port ( + clk_i : in std_ulogic; -- global clock line + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + ben_i : in std_ulogic_vector(03 downto 0); -- byte write enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); +end neorv32_imem; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_mtime.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_mtime.vhd new file mode 100644 index 0000000..e503e7f --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_mtime.vhd @@ -0,0 +1,181 @@ +-- ################################################################################################# +-- # << NEORV32 - Machine System Timer (MTIME) >> # +-- # ********************************************************************************************* # +-- # Compatible to RISC-V spec's 64-bit MACHINE system timer including "mtime[h]" & "mtimecmp[h]". # +-- # Note: The 64-bit counter and compare systems are de-coupled into two 32-bit systems. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_mtime is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- time output for CPU -- + time_o : out std_ulogic_vector(63 downto 0); -- current system time + -- interrupt -- + irq_o : out std_ulogic -- interrupt request + ); +end neorv32_mtime; + +architecture neorv32_mtime_rtl of neorv32_mtime is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(mtime_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- module access enable + signal rden : std_ulogic; -- read enable + + -- time write access buffer -- + signal mtime_lo_we : std_ulogic; + signal mtime_hi_we : std_ulogic; + + -- accessible regs -- + signal mtimecmp_lo : std_ulogic_vector(31 downto 0); + signal mtimecmp_hi : std_ulogic_vector(31 downto 0); + signal mtime_lo : std_ulogic_vector(31 downto 0); + signal mtime_lo_nxt : std_ulogic_vector(32 downto 0); + signal mtime_lo_ovfl : std_ulogic_vector(00 downto 0); + signal mtime_hi : std_ulogic_vector(31 downto 0); + + -- comparators -- + signal cmp_lo_ge : std_ulogic; + signal cmp_lo_ge_ff : std_ulogic; + signal cmp_hi_eq : std_ulogic; + signal cmp_hi_gt : std_ulogic; + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = mtime_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= mtime_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Write Access --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + wr_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- mtimecmp -- + if (wren = '1') then + if (addr = mtime_cmp_lo_addr_c) then + mtimecmp_lo <= data_i; + end if; + if (addr = mtime_cmp_hi_addr_c) then + mtimecmp_hi <= data_i; + end if; + end if; + + -- mtime access buffer -- +-- wdata_buf <= data_i; -- not required, CPU wdata (=data_i) is stable until transfer is acknowledged + mtime_lo_we <= wren and bool_to_ulogic_f(boolean(addr = mtime_time_lo_addr_c)); + mtime_hi_we <= wren and bool_to_ulogic_f(boolean(addr = mtime_time_hi_addr_c)); + + -- mtime low -- + if (mtime_lo_we = '1') then -- write access + mtime_lo <= data_i; + else -- auto increment + mtime_lo <= mtime_lo_nxt(31 downto 0); + end if; + mtime_lo_ovfl(0) <= mtime_lo_nxt(32); -- overflow (carry) + + -- mtime high -- + if (mtime_hi_we = '1') then -- write access + mtime_hi <= data_i; + else -- auto increment (if mtime.low overflows) + mtime_hi <= std_ulogic_vector(unsigned(mtime_hi) + unsigned(mtime_lo_ovfl)); + end if; + end if; + end process wr_access; + + -- mtime.time_LO increment -- + mtime_lo_nxt <= std_ulogic_vector(unsigned('0' & mtime_lo) + 1); + + + -- Read Access ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rd_access: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= rden or wren; + data_o <= (others => '0'); -- default + if (rden = '1') then + case addr(3 downto 2) is + when "00" => data_o <= mtime_lo; -- mtime LOW + when "01" => data_o <= mtime_hi; -- mtime HIGH + when "10" => data_o <= mtimecmp_lo; -- mtimecmp LOW + when others => data_o <= mtimecmp_hi; -- mtimecmp HIGH + end case; + end if; + end if; + end process rd_access; + + -- system time output for cpu -- + time_o <= mtime_hi & mtime_lo; -- NOTE: low and high words are not synchronized here! + + + -- Comparator ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + cmp_sync: process(clk_i) + begin + if rising_edge(clk_i) then + cmp_lo_ge_ff <= cmp_lo_ge; -- there is one cycle delay between low (earlier) and high (later) word + irq_o <= cmp_hi_gt or (cmp_hi_eq and cmp_lo_ge_ff); + end if; + end process cmp_sync; + + -- sub-word comparators -- + cmp_lo_ge <= '1' when (unsigned(mtime_lo) >= unsigned(mtimecmp_lo)) else '0'; -- low-word: greater than or equal + cmp_hi_eq <= '1' when (unsigned(mtime_hi) = unsigned(mtimecmp_hi)) else '0'; -- high-word: equal + cmp_hi_gt <= '1' when (unsigned(mtime_hi) > unsigned(mtimecmp_hi)) else '0'; -- high-word: greater than + + +end neorv32_mtime_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_neoled.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_neoled.vhd new file mode 100644 index 0000000..7dbd016 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_neoled.vhd @@ -0,0 +1,420 @@ +-- ################################################################################################# +-- # << NEORV32 - Smart LED (WS2811/WS2812) Interface (NEOLED) >> # +-- # ********************************************************************************************* # +-- # Hardware interface for direct control of "smart LEDs" using an asynchronous serial data # +-- # line. Compatible with the WS2811 and WS2812 LEDs. # +-- # # +-- # NeoPixel-compatible, RGB (24-bit) and RGBW (32-bit) modes supported (in "parallel") # +-- # (TM) "NeoPixel" is a trademark of Adafruit Industries. # +-- # # +-- # The interface uses a programmable carrier frequency (800 KHz for the WS2812 LEDs) # +-- # configurable via the control register's clock prescaler bits (ctrl_clksel*_c) and the period # +-- # length configuration bits (ctrl_t_tot_*_c). "high-times" for sending a ZERO or a ONE bit are # +-- # configured using the ctrl_t_0h_*_c and ctrl_t_1h_*_c bits, respectively. 32-bit transfers # +-- # (for RGBW modules) and 24-bit transfers (for RGB modules) are supported via ctrl_mode__c. # +-- # # +-- # The device features a TX buffer (FIFO) with entries with configurable interrupt. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_neoled is + generic ( + FIFO_DEPTH : natural -- TX FIFO depth (1..32k, power of two) + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- interrupt -- + irq_o : out std_ulogic; -- interrupt request + -- NEOLED output -- + neoled_o : out std_ulogic -- serial async data line + ); +end neorv32_neoled; + +architecture neorv32_neoled_rtl of neorv32_neoled is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(neoled_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- Control register bits -- + constant ctrl_en_c : natural := 0; -- r/w: module enable + constant ctrl_mode_c : natural := 1; -- r/w: 0 = 24-bit RGB mode, 1 = 32-bit RGBW mode + constant ctrl_strobe_c : natural := 2; -- r/w: 0 = send normal data, 1 = send LED strobe command (RESET) on data write + -- + constant ctrl_clksel0_c : natural := 3; -- r/w: prescaler select bit 0 + constant ctrl_clksel1_c : natural := 4; -- r/w: prescaler select bit 1 + constant ctrl_clksel2_c : natural := 5; -- r/w: prescaler select bit 2 + -- + constant ctrl_bufs_0_c : natural := 6; -- r/-: log2(FIFO_DEPTH) bit 0 + constant ctrl_bufs_1_c : natural := 7; -- r/-: log2(FIFO_DEPTH) bit 1 + constant ctrl_bufs_2_c : natural := 8; -- r/-: log2(FIFO_DEPTH) bit 2 + constant ctrl_bufs_3_c : natural := 9; -- r/-: log2(FIFO_DEPTH) bit 3 + -- + constant ctrl_t_tot_0_c : natural := 10; -- r/w: pulse-clock ticks per total period bit 0 + constant ctrl_t_tot_1_c : natural := 11; -- r/w: pulse-clock ticks per total period bit 1 + constant ctrl_t_tot_2_c : natural := 12; -- r/w: pulse-clock ticks per total period bit 2 + constant ctrl_t_tot_3_c : natural := 13; -- r/w: pulse-clock ticks per total period bit 3 + constant ctrl_t_tot_4_c : natural := 14; -- r/w: pulse-clock ticks per total period bit 4 + -- + constant ctrl_t_0h_0_c : natural := 15; -- r/w: pulse-clock ticks per ZERO high-time bit 0 + constant ctrl_t_0h_1_c : natural := 16; -- r/w: pulse-clock ticks per ZERO high-time bit 1 + constant ctrl_t_0h_2_c : natural := 17; -- r/w: pulse-clock ticks per ZERO high-time bit 2 + constant ctrl_t_0h_3_c : natural := 18; -- r/w: pulse-clock ticks per ZERO high-time bit 3 + constant ctrl_t_0h_4_c : natural := 19; -- r/w: pulse-clock ticks per ZERO high-time bit 4 + -- + constant ctrl_t_1h_0_c : natural := 20; -- r/w: pulse-clock ticks per ONE high-time bit 0 + constant ctrl_t_1h_1_c : natural := 21; -- r/w: pulse-clock ticks per ONE high-time bit 1 + constant ctrl_t_1h_2_c : natural := 22; -- r/w: pulse-clock ticks per ONE high-time bit 2 + constant ctrl_t_1h_3_c : natural := 23; -- r/w: pulse-clock ticks per ONE high-time bit 3 + constant ctrl_t_1h_4_c : natural := 24; -- r/w: pulse-clock ticks per ONE high-time bit 4 + -- + constant ctrl_irq_conf_c : natural := 27; -- r/w: interrupt config: 1=IRQ when buffer is empty, 0=IRQ when buffer is half-empty + constant ctrl_tx_empty_c : natural := 28; -- r/-: TX FIFO is empty + constant ctrl_tx_half_c : natural := 29; -- r/-: TX FIFO is at least half-full + constant ctrl_tx_full_c : natural := 30; -- r/-: TX FIFO is full + constant ctrl_tx_busy_c : natural := 31; -- r/-: serial TX engine busy when set + + -- control register -- + type ctrl_t is record + enable : std_ulogic; + mode : std_ulogic; + strobe : std_ulogic; + clk_prsc : std_ulogic_vector(2 downto 0); + irq_conf : std_ulogic; + -- pulse config -- + t_total : std_ulogic_vector(4 downto 0); + t0_high : std_ulogic_vector(4 downto 0); + t1_high : std_ulogic_vector(4 downto 0); + end record; + signal ctrl : ctrl_t; + + -- transmission buffer -- + type tx_buffer_t is record + we : std_ulogic; -- write enable + re : std_ulogic; -- read enable + clear : std_ulogic; -- sync reset, high-active + wdata : std_ulogic_vector(31+2 downto 0); -- write data (excluding mode) + rdata : std_ulogic_vector(31+2 downto 0); -- read data (including mode) + avail : std_ulogic; -- data available? + free : std_ulogic; -- free entry available? + half : std_ulogic; -- half full + end record; + signal tx_buffer : tx_buffer_t; + + -- interrupt generator -- + type irq_t is record + set : std_ulogic; + buf : std_ulogic_vector(1 downto 0); + end record; + signal irq : irq_t; + + -- serial transmission engine -- + type serial_state_t is (S_IDLE, S_INIT, S_GETBIT, S_PULSE, S_STROBE); + type serial_t is record + -- state control -- + state : serial_state_t; + mode : std_ulogic; + done : std_ulogic; + busy : std_ulogic; + bit_cnt : std_ulogic_vector(5 downto 0); + -- shift register -- + sreg : std_ulogic_vector(31 downto 0); + next_bit : std_ulogic; -- next bit to send + -- pulse generator -- + pulse_clk : std_ulogic; -- pulse cycle "clock" + pulse_cnt : std_ulogic_vector(4 downto 0); + t_high : std_ulogic_vector(4 downto 0); + strobe_cnt : std_ulogic_vector(6 downto 0); + tx_out : std_ulogic; + end record; + signal serial : serial_t; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not ((is_power_of_two_f(FIFO_DEPTH) = false) or (FIFO_DEPTH < 1) or (FIFO_DEPTH > 32768)) report + "NEORV32 PROCESSOR CONFIG ERROR! Invalid buffer size configuration (1..32k)!" severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = neoled_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= neoled_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- access acknowledge -- + ack_o <= wren or rden; + + -- write access: control register -- + if (wren = '1') and (addr = neoled_ctrl_addr_c) then + ctrl.enable <= data_i(ctrl_en_c); + ctrl.mode <= data_i(ctrl_mode_c); + ctrl.strobe <= data_i(ctrl_strobe_c); + ctrl.clk_prsc <= data_i(ctrl_clksel2_c downto ctrl_clksel0_c); + ctrl.irq_conf <= data_i(ctrl_irq_conf_c); + ctrl.t_total <= data_i(ctrl_t_tot_4_c downto ctrl_t_tot_0_c); + ctrl.t0_high <= data_i(ctrl_t_0h_4_c downto ctrl_t_0h_0_c); + ctrl.t1_high <= data_i(ctrl_t_1h_4_c downto ctrl_t_1h_0_c); + end if; + + -- read access: control register -- + data_o <= (others => '0'); + if (rden = '1') then -- and (addr = neoled_ctrl_addr_c) then + data_o(ctrl_en_c) <= ctrl.enable; + data_o(ctrl_mode_c) <= ctrl.mode; + data_o(ctrl_strobe_c) <= ctrl.strobe; + data_o(ctrl_clksel2_c downto ctrl_clksel0_c) <= ctrl.clk_prsc; + data_o(ctrl_irq_conf_c) <= ctrl.irq_conf or bool_to_ulogic_f(boolean(FIFO_DEPTH = 1)); -- tie to one if FIFO_DEPTH is 1 + data_o(ctrl_bufs_3_c downto ctrl_bufs_0_c) <= std_ulogic_vector(to_unsigned(index_size_f(FIFO_DEPTH), 4)); + data_o(ctrl_t_tot_4_c downto ctrl_t_tot_0_c) <= ctrl.t_total; + data_o(ctrl_t_0h_4_c downto ctrl_t_0h_0_c) <= ctrl.t0_high; + data_o(ctrl_t_1h_4_c downto ctrl_t_1h_0_c) <= ctrl.t1_high; + -- + data_o(ctrl_tx_empty_c) <= not tx_buffer.avail; + data_o(ctrl_tx_half_c) <= tx_buffer.half; + data_o(ctrl_tx_full_c) <= not tx_buffer.free; + data_o(ctrl_tx_busy_c) <= serial.busy; + end if; + end if; + end process rw_access; + + -- enable external clock generator -- + clkgen_en_o <= ctrl.enable; + + -- FIFO write access -- + tx_buffer.we <= '1' when (wren = '1') and (addr = neoled_data_addr_c) else '0'; + tx_buffer.wdata <= ctrl.strobe & ctrl.mode & data_i; + tx_buffer.clear <= not ctrl.enable; + + + -- IRQ Generator -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + irq_select: process(ctrl, tx_buffer, serial.done) + begin + if (FIFO_DEPTH = 1) or (ctrl.irq_conf = '1') then + irq.set <= tx_buffer.free and serial.done; -- fire IRQ if FIFO is empty + else + irq.set <= not tx_buffer.half; -- fire IRQ if FIFO is less than half-full + end if; + end process irq_select; + + -- Interrupt Edge Detector -- + irq_detect: process(clk_i) + begin + if rising_edge(clk_i) then + if (ctrl.enable = '0') then + irq.buf <= "00"; + else + irq.buf <= irq.buf(0) & irq.set; + end if; + end if; + end process irq_detect; + + -- IRQ request to CPU -- + irq_o <= '1' when (irq.buf = "01") else '0'; + + + -- TX Buffer (FIFO) ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + tx_data_fifo: neorv32_fifo + generic map ( + FIFO_DEPTH => FIFO_DEPTH, -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH => 32+2, -- size of data elements in fifo + FIFO_RSYNC => true, -- sync read + FIFO_SAFE => true -- safe access + ) + port map ( + -- control -- + clk_i => clk_i, -- clock, rising edge + rstn_i => '1', -- async reset, low-active + clear_i => tx_buffer.clear, -- sync reset, high-active + level_o => open, -- fill level + half_o => tx_buffer.half, -- FIFO is at least half full + -- write port -- + wdata_i => tx_buffer.wdata, -- write data + we_i => tx_buffer.we, -- write enable + free_o => tx_buffer.free, -- at least one entry is free when set + -- read port -- + re_i => tx_buffer.re, -- read enable + rdata_o => tx_buffer.rdata, -- read data + avail_o => tx_buffer.avail -- data available when set + ); + + -- try to get new TX data -- + tx_buffer.re <= '1' when (serial.state = S_IDLE) else '0'; + + + -- Serial TX Engine ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + serial_engine: process(clk_i) + begin + if rising_edge(clk_i) then + -- clock generator -- + serial.pulse_clk <= clkgen_i(to_integer(unsigned(ctrl.clk_prsc))); + + -- defaults -- + serial.done <= '0'; + + -- FSM -- + if (ctrl.enable = '0') then -- disabled + serial.state <= S_IDLE; + else + case serial.state is + + when S_IDLE => -- waiting for new TX data + -- ------------------------------------------------------------ + serial.tx_out <= '0'; + serial.pulse_cnt <= (others => '0'); + serial.strobe_cnt <= (others => '0'); + if (tx_buffer.avail = '1') then + serial.state <= S_INIT; + end if; + + when S_INIT => -- initialize TX shift engine + -- ------------------------------------------------------------ + if (tx_buffer.rdata(33) = '0') then -- send data + if (tx_buffer.rdata(32) = '0') then -- mode = "RGB" + serial.mode <= '0'; + serial.bit_cnt <= "011000"; -- total number of bits to send: 3x8=24 + else -- mode = "RGBW" + serial.mode <= '1'; + serial.bit_cnt <= "100000"; -- total number of bits to send: 4x8=32 + end if; + serial.sreg <= tx_buffer.rdata(31 downto 00); + serial.state <= S_GETBIT; + else -- send RESET command + serial.state <= S_STROBE; + end if; + + when S_GETBIT => -- get next TX bit + -- ------------------------------------------------------------ + serial.sreg <= serial.sreg(serial.sreg'left-1 downto 0) & '0'; -- shift left by one position (MSB-first) + serial.bit_cnt <= std_ulogic_vector(unsigned(serial.bit_cnt) - 1); + serial.pulse_cnt <= (others => '0'); + if (serial.next_bit = '0') then -- send zero-bit + serial.t_high <= ctrl.t0_high; + else -- send one-bit + serial.t_high <= ctrl.t1_high; + end if; + if (serial.bit_cnt = "000000") then -- all done? + serial.tx_out <= '0'; + serial.done <= '1'; -- done sending data + serial.state <= S_IDLE; + else -- send current data MSB + serial.tx_out <= '1'; + serial.state <= S_PULSE; -- transmit single pulse + end if; + + when S_PULSE => -- send pulse with specific duty cycle + -- ------------------------------------------------------------ + -- total pulse length = ctrl.t_total + -- pulse high time = serial.t_high + if (serial.pulse_clk = '1') then + serial.pulse_cnt <= std_ulogic_vector(unsigned(serial.pulse_cnt) + 1); + -- T_high reached? -- + if (serial.pulse_cnt = serial.t_high) then + serial.tx_out <= '0'; + end if; + -- T_total reached? -- + if (serial.pulse_cnt = ctrl.t_total) then + serial.state <= S_GETBIT; -- get next bit to send + end if; + end if; + + when S_STROBE => -- strobe LED data ("RESET" command) + -- ------------------------------------------------------------ + -- wait for 127 * ctrl.t_total to _ensure_ RESET + if (serial.pulse_clk = '1') then + -- T_total reached? -- + if (serial.pulse_cnt = ctrl.t_total) then + serial.pulse_cnt <= (others => '0'); + serial.strobe_cnt <= std_ulogic_vector(unsigned(serial.strobe_cnt) + 1); + else + serial.pulse_cnt <= std_ulogic_vector(unsigned(serial.pulse_cnt) + 1); + end if; + end if; + -- number of LOW periods reached for RESET? -- + if (and_reduce_f(serial.strobe_cnt) = '1') then + serial.done <= '1'; -- done sending RESET + serial.state <= S_IDLE; + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + serial.state <= S_IDLE; + + end case; + end if; + -- serial data tx_out -- + neoled_o <= serial.tx_out and ctrl.enable; + end if; + end process serial_engine; + + -- SREG's TX data: bit 23 for RGB mode (24-bit), bit 31 for RGBW mode (32-bit) -- + serial.next_bit <= serial.sreg(23) when (serial.mode = '0') else serial.sreg(31); + + -- TX engine status -- + serial.busy <= '0' when (serial.state = S_IDLE) else '1'; + + +end neorv32_neoled_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_package.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_package.vhd new file mode 100644 index 0000000..176d099 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_package.vhd @@ -0,0 +1,2426 @@ +-- ################################################################################################# +-- # << NEORV32 - Main VHDL package file >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +package neorv32_package is + + -- Architecture Configuration ------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- address space -- + constant ispace_base_c : std_ulogic_vector(31 downto 0) := x"00000000"; -- default instruction memory address space base address + constant dspace_base_c : std_ulogic_vector(31 downto 0) := x"80000000"; -- default data memory address space base address + + -- CPU core -- + constant dedicated_reset_c : boolean := false; -- use dedicated hardware reset value for UNCRITICAL registers (FALSE=reset value is irrelevant (might simplify HW), default; TRUE=defined LOW reset value) + constant cp_timeout_en_c : boolean := false; -- auto-terminate pending co-processor operations after 256 cycles (for debugging only), default = false + + -- "critical" number of implemented PMP regions -- + -- if more PMP regions (> pmp_num_regions_critical_c) are defined, another register stage is automatically inserted into the memory interfaces + -- increasing instruction fetch & data access latency by +1 cycle but also reducing critical path length + constant pmp_num_regions_critical_c : natural := 8; -- default=8 + + -- "response time window" for processor-internal modules -- + constant max_proc_int_response_time_c : natural := 15; -- cycles after which an *unacknowledged* internal bus access will timeout and trigger a bus fault exception (min 2) + + -- jtag tap - identifier -- + constant jtag_tap_idcode_version_c : std_ulogic_vector(03 downto 0) := x"0"; -- version + constant jtag_tap_idcode_partid_c : std_ulogic_vector(15 downto 0) := x"cafe"; -- part number + constant jtag_tap_idcode_manid_c : std_ulogic_vector(10 downto 0) := "00000000000"; -- manufacturer id + + -- Architecture Constants (do not modify!) ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + constant data_width_c : natural := 32; -- native data path width - do not change! + constant hw_version_c : std_ulogic_vector(31 downto 0) := x"01060409"; -- no touchy! + constant archid_c : natural := 19; -- official NEORV32 architecture ID - hands off! + + -- Check if we're inside the Matrix ------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant is_simulation_c : boolean := false -- seems like we're on real hardware +-- pragma translate_off +-- synthesis translate_off +-- synthesis synthesis_off +-- RTL_SYNTHESIS OFF + or true -- this MIGHT be a simulation +-- RTL_SYNTHESIS ON +-- synthesis synthesis_on +-- synthesis translate_on +-- pragma translate_on + ; + + -- External Interface Types --------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + type sdata_8x32_t is array (0 to 7) of std_ulogic_vector(31 downto 0); + type sdata_8x32r_t is array (0 to 7) of std_logic_vector(31 downto 0); -- resolved type + + -- Internal Interface Types --------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + type pmp_ctrl_if_t is array (0 to 63) of std_ulogic_vector(07 downto 0); + type pmp_addr_if_t is array (0 to 63) of std_ulogic_vector(33 downto 0); + type cp_data_if_t is array (0 to 3) of std_ulogic_vector(data_width_c-1 downto 0); + + -- Internal Memory Types Configuration Types ---------------------------------------------- + -- ------------------------------------------------------------------------------------------- + type mem32_t is array (natural range <>) of std_ulogic_vector(31 downto 0); -- memory with 32-bit entries + type mem8_t is array (natural range <>) of std_ulogic_vector(07 downto 0); -- memory with 8-bit entries + + -- Helper Functions ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function index_size_f(input : natural) return natural; + function cond_sel_natural_f(cond : boolean; val_t : natural; val_f : natural) return natural; + function cond_sel_int_f(cond : boolean; val_t : integer; val_f : integer) return integer; + function cond_sel_stdulogicvector_f(cond : boolean; val_t : std_ulogic_vector; val_f : std_ulogic_vector) return std_ulogic_vector; + function cond_sel_stdulogic_f(cond : boolean; val_t : std_ulogic; val_f : std_ulogic) return std_ulogic; + function cond_sel_string_f(cond : boolean; val_t : string; val_f : string) return string; + function bool_to_ulogic_f(cond : boolean) return std_ulogic; + function or_reduce_f(a : std_ulogic_vector) return std_ulogic; + function and_reduce_f(a : std_ulogic_vector) return std_ulogic; + function xor_reduce_f(a : std_ulogic_vector) return std_ulogic; + function to_hexchar_f(input : std_ulogic_vector(3 downto 0)) return character; + function hexchar_to_stdulogicvector_f(input : character) return std_ulogic_vector; + function bit_rev_f(input : std_ulogic_vector) return std_ulogic_vector; + function is_power_of_two_f(input : natural) return boolean; + function bswap32_f(input : std_ulogic_vector) return std_ulogic_vector; + function char_to_lower_f(ch : character) return character; + function str_equal_f(str0 : string; str1 : string) return boolean; + function popcount_f(input : std_ulogic_vector) return natural; + function leading_zeros_f(input : std_ulogic_vector) return natural; + impure function mem32_init_f(init : mem32_t; depth : natural) return mem32_t; + + -- Internal (auto-generated) Configurations ----------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant def_rst_val_c : std_ulogic := cond_sel_stdulogic_f(dedicated_reset_c, '0', '-'); + + -- Processor-Internal Address Space Layout ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- Internal Instruction Memory (IMEM) and Date Memory (DMEM) -- + constant imem_base_c : std_ulogic_vector(data_width_c-1 downto 0) := ispace_base_c; -- internal instruction memory base address + constant dmem_base_c : std_ulogic_vector(data_width_c-1 downto 0) := dspace_base_c; -- internal data memory base address + --> internal data/instruction memory sizes are configured via top's generics + + -- !!! IMPORTANT: The base address of each component/module has to be aligned to the !!! + -- !!! total size of the module's occupied address space. The occupied address space !!! + -- !!! has to be a power of two (minimum 4 bytes). Address spaces must not overlap. !!! + + -- Internal Bootloader ROM -- + -- Actual bootloader size is determined during runtime via the length of the bootloader initialization image + constant boot_rom_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffff0000"; -- bootloader base address, fixed! + constant boot_rom_max_size_c : natural := 32*1024; -- max module's address space size in bytes, fixed! + + -- On-Chip Debugger: Debug Module -- + constant dm_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffff800"; -- base address, fixed! + constant dm_size_c : natural := 4*32*4; -- debug ROM address space size in bytes, fixed + constant dm_code_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffff800"; + constant dm_pbuf_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffff880"; + constant dm_data_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffff900"; + constant dm_sreg_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffff980"; + + -- IO: Peripheral Devices ("IO") Area -- + -- Control register(s) (including the device-enable) should be located at the base address of each device + constant io_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe00"; + constant io_size_c : natural := 512; -- IO address space size in bytes, fixed! + + -- Custom Functions Subsystem (CFS) -- + constant cfs_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe00"; -- base address + constant cfs_size_c : natural := 32*4; -- module's address space in bytes + constant cfs_reg0_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe00"; + constant cfs_reg1_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe04"; + constant cfs_reg2_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe08"; + constant cfs_reg3_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe0c"; + constant cfs_reg4_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe10"; + constant cfs_reg5_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe14"; + constant cfs_reg6_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe18"; + constant cfs_reg7_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe1c"; + constant cfs_reg8_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe20"; + constant cfs_reg9_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe24"; + constant cfs_reg10_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe28"; + constant cfs_reg11_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe2c"; + constant cfs_reg12_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe30"; + constant cfs_reg13_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe34"; + constant cfs_reg14_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe38"; + constant cfs_reg15_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe3c"; + constant cfs_reg16_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe40"; + constant cfs_reg17_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe44"; + constant cfs_reg18_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe48"; + constant cfs_reg19_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe4c"; + constant cfs_reg20_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe50"; + constant cfs_reg21_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe54"; + constant cfs_reg22_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe58"; + constant cfs_reg23_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe5c"; + constant cfs_reg24_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe60"; + constant cfs_reg25_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe64"; + constant cfs_reg26_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe68"; + constant cfs_reg27_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe6c"; + constant cfs_reg28_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe70"; + constant cfs_reg29_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe74"; + constant cfs_reg30_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe78"; + constant cfs_reg31_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe7c"; + + -- Pulse-Width Modulation Controller (PWM) -- + constant pwm_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe80"; -- base address + constant pwm_size_c : natural := 16*4; -- module's address space size in bytes + constant pwm_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe80"; + constant pwm_duty0_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe84"; + constant pwm_duty1_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe88"; + constant pwm_duty2_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe8c"; + constant pwm_duty3_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe90"; + constant pwm_duty4_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe94"; + constant pwm_duty5_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe98"; + constant pwm_duty6_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffe9c"; + constant pwm_duty7_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffea0"; + constant pwm_duty8_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffea4"; + constant pwm_duty9_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffea8"; + constant pwm_duty10_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffeac"; + constant pwm_duty11_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffeb0"; + constant pwm_duty12_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffeb4"; + constant pwm_duty13_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffeb8"; + constant pwm_duty14_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffebc"; + + -- Stream Link Interface (SLINK) -- + constant slink_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"fffffec0"; -- base address + constant slink_size_c : natural := 16*4; -- module's address space size in bytes + + -- reserved -- +--constant reserved_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff00"; -- base address +--constant reserved_size_c : natural := 16*4; -- module's address space size in bytes + + -- reserved -- +--constant reserved_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff40"; -- base address +--constant reserved_size_c : natural := 8*4; -- module's address space size in bytes + + -- General Purpose Timer (GPTMR) -- + constant gptmr_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff60"; -- base address + constant gptmr_size_c : natural := 4*4; -- module's address space size in bytes + constant gptmr_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff60"; + constant gptmr_thres_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff64"; + constant gptmr_count_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff68"; +--constant gptmr_reserve_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff6c"; + + -- reserved -- +--constant reserved_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff70"; -- base address +--constant reserved_size_c : natural := 2*4; -- module's address space size in bytes + + -- reserved -- +--constant reserved_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff78"; -- base address +--constant reserved_size_c : natural := 1*4; -- module's address space size in bytes + + -- Bus Access Monitor (BUSKEEPER) -- + constant buskeeper_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff7c"; -- base address + constant buskeeper_size_c : natural := 1*4; -- module's address space size in bytes + + -- External Interrupt Controller (XIRQ) -- + constant xirq_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff80"; -- base address + constant xirq_size_c : natural := 4*4; -- module's address space size in bytes + constant xirq_enable_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff80"; + constant xirq_pending_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff84"; + constant xirq_source_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff88"; +--constant xirq_reserved_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff8c"; + + -- Machine System Timer (MTIME) -- + constant mtime_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff90"; -- base address + constant mtime_size_c : natural := 4*4; -- module's address space size in bytes + constant mtime_time_lo_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff90"; + constant mtime_time_hi_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff94"; + constant mtime_cmp_lo_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff98"; + constant mtime_cmp_hi_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffff9c"; + + -- Primary Universal Asynchronous Receiver/Transmitter (UART0) -- + constant uart0_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffa0"; -- base address + constant uart0_size_c : natural := 2*4; -- module's address space size in bytes + constant uart0_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffa0"; + constant uart0_rtx_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffa4"; + + -- Serial Peripheral Interface (SPI) -- + constant spi_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffa8"; -- base address + constant spi_size_c : natural := 2*4; -- module's address space size in bytes + constant spi_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffa8"; + constant spi_rtx_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffac"; + + -- Two Wire Interface (TWI) -- + constant twi_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffb0"; -- base address + constant twi_size_c : natural := 2*4; -- module's address space size in bytes + constant twi_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffb0"; + constant twi_rtx_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffb4"; + + -- True Random Number Generator (TRNG) -- + constant trng_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffb8"; -- base address + constant trng_size_c : natural := 1*4; -- module's address space size in bytes + constant trng_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffb8"; + + -- Watch Dog Timer (WDT) -- + constant wdt_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffbc"; -- base address + constant wdt_size_c : natural := 1*4; -- module's address space size in bytes + constant wdt_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffbc"; + + -- General Purpose Input/Output Controller (GPIO) -- + constant gpio_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffc0"; -- base address + constant gpio_size_c : natural := 4*4; -- module's address space size in bytes + constant gpio_in_lo_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffc0"; + constant gpio_in_hi_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffc4"; + constant gpio_out_lo_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffc8"; + constant gpio_out_hi_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffcc"; + + -- Secondary Universal Asynchronous Receiver/Transmitter (UART1) -- + constant uart1_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffd0"; -- base address + constant uart1_size_c : natural := 2*4; -- module's address space size in bytes + constant uart1_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffd0"; + constant uart1_rtx_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffd4"; + + -- Smart LED (WS2811/WS2812) Interface (NEOLED) -- + constant neoled_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffd8"; -- base address + constant neoled_size_c : natural := 2*4; -- module's address space size in bytes + constant neoled_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffd8"; + constant neoled_data_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffdc"; + + -- System Information Memory (SYSINFO) -- + constant sysinfo_base_c : std_ulogic_vector(data_width_c-1 downto 0) := x"ffffffe0"; -- base address + constant sysinfo_size_c : natural := 8*4; -- module's address space size in bytes + + -- Main CPU Control Bus ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- register file -- + constant ctrl_rf_in_mux_c : natural := 0; -- input source select lsb (0=MEM, 1=ALU) + constant ctrl_rf_rs1_adr0_c : natural := 1; -- source register 1 address bit 0 + constant ctrl_rf_rs1_adr1_c : natural := 2; -- source register 1 address bit 1 + constant ctrl_rf_rs1_adr2_c : natural := 3; -- source register 1 address bit 2 + constant ctrl_rf_rs1_adr3_c : natural := 4; -- source register 1 address bit 3 + constant ctrl_rf_rs1_adr4_c : natural := 5; -- source register 1 address bit 4 + constant ctrl_rf_rs2_adr0_c : natural := 6; -- source register 2 address bit 0 + constant ctrl_rf_rs2_adr1_c : natural := 7; -- source register 2 address bit 1 + constant ctrl_rf_rs2_adr2_c : natural := 8; -- source register 2 address bit 2 + constant ctrl_rf_rs2_adr3_c : natural := 9; -- source register 2 address bit 3 + constant ctrl_rf_rs2_adr4_c : natural := 10; -- source register 2 address bit 4 + constant ctrl_rf_rd_adr0_c : natural := 11; -- destination register address bit 0 + constant ctrl_rf_rd_adr1_c : natural := 12; -- destination register address bit 1 + constant ctrl_rf_rd_adr2_c : natural := 13; -- destination register address bit 2 + constant ctrl_rf_rd_adr3_c : natural := 14; -- destination register address bit 3 + constant ctrl_rf_rd_adr4_c : natural := 15; -- destination register address bit 4 + constant ctrl_rf_wb_en_c : natural := 16; -- write back enable + -- alu -- + constant ctrl_alu_op0_c : natural := 17; -- ALU operation select bit 0 + constant ctrl_alu_op1_c : natural := 18; -- ALU operation select bit 1 + constant ctrl_alu_op2_c : natural := 19; -- ALU operation select bit 2 + constant ctrl_alu_func0_c : natural := 20; -- ALU function select command bit 0 + constant ctrl_alu_func1_c : natural := 21; -- ALU function select command bit 1 + constant ctrl_alu_opa_mux_c : natural := 22; -- operand A select (0=rs1, 1=PC) + constant ctrl_alu_opb_mux_c : natural := 23; -- operand B select (0=rs2, 1=IMM) + constant ctrl_alu_unsigned_c : natural := 24; -- is unsigned ALU operation + constant ctrl_alu_shift_dir_c : natural := 25; -- shift direction (0=left, 1=right) + constant ctrl_alu_shift_ar_c : natural := 26; -- is arithmetic shift + constant ctrl_alu_frm0_c : natural := 27; -- FPU rounding mode bit 0 + constant ctrl_alu_frm1_c : natural := 28; -- FPU rounding mode bit 1 + constant ctrl_alu_frm2_c : natural := 29; -- FPU rounding mode bit 2 + -- bus interface -- + constant ctrl_bus_size_lsb_c : natural := 30; -- transfer size lsb (00=byte, 01=half-word) + constant ctrl_bus_size_msb_c : natural := 31; -- transfer size msb (10=word, 11=?) + constant ctrl_bus_rd_c : natural := 32; -- read data request + constant ctrl_bus_wr_c : natural := 33; -- write data request + constant ctrl_bus_if_c : natural := 34; -- instruction fetch request + constant ctrl_bus_mo_we_c : natural := 35; -- memory address and data output register write enable + constant ctrl_bus_mi_we_c : natural := 36; -- memory data input register write enable + constant ctrl_bus_unsigned_c : natural := 37; -- is unsigned load + constant ctrl_bus_ierr_ack_c : natural := 38; -- acknowledge instruction fetch bus exceptions + constant ctrl_bus_derr_ack_c : natural := 39; -- acknowledge data access bus exceptions + constant ctrl_bus_fence_c : natural := 40; -- executed fence operation + constant ctrl_bus_fencei_c : natural := 41; -- executed fencei operation + constant ctrl_bus_lock_c : natural := 42; -- make atomic/exclusive access lock + constant ctrl_bus_de_lock_c : natural := 43; -- remove atomic/exclusive access + constant ctrl_bus_ch_lock_c : natural := 44; -- evaluate atomic/exclusive lock (SC operation) + -- co-processors -- + constant ctrl_cp_id_lsb_c : natural := 45; -- cp select ID lsb + constant ctrl_cp_id_msb_c : natural := 46; -- cp select ID msb + -- instruction's control blocks (used by cpu co-processors) -- + constant ctrl_ir_funct3_0_c : natural := 47; -- funct3 bit 0 + constant ctrl_ir_funct3_1_c : natural := 48; -- funct3 bit 1 + constant ctrl_ir_funct3_2_c : natural := 49; -- funct3 bit 2 + constant ctrl_ir_funct12_0_c : natural := 50; -- funct12 bit 0 + constant ctrl_ir_funct12_1_c : natural := 51; -- funct12 bit 1 + constant ctrl_ir_funct12_2_c : natural := 52; -- funct12 bit 2 + constant ctrl_ir_funct12_3_c : natural := 53; -- funct12 bit 3 + constant ctrl_ir_funct12_4_c : natural := 54; -- funct12 bit 4 + constant ctrl_ir_funct12_5_c : natural := 55; -- funct12 bit 5 + constant ctrl_ir_funct12_6_c : natural := 56; -- funct12 bit 6 + constant ctrl_ir_funct12_7_c : natural := 57; -- funct12 bit 7 + constant ctrl_ir_funct12_8_c : natural := 58; -- funct12 bit 8 + constant ctrl_ir_funct12_9_c : natural := 59; -- funct12 bit 9 + constant ctrl_ir_funct12_10_c : natural := 60; -- funct12 bit 10 + constant ctrl_ir_funct12_11_c : natural := 61; -- funct12 bit 11 + constant ctrl_ir_opcode7_0_c : natural := 62; -- opcode7 bit 0 + constant ctrl_ir_opcode7_1_c : natural := 63; -- opcode7 bit 1 + constant ctrl_ir_opcode7_2_c : natural := 64; -- opcode7 bit 2 + constant ctrl_ir_opcode7_3_c : natural := 65; -- opcode7 bit 3 + constant ctrl_ir_opcode7_4_c : natural := 66; -- opcode7 bit 4 + constant ctrl_ir_opcode7_5_c : natural := 67; -- opcode7 bit 5 + constant ctrl_ir_opcode7_6_c : natural := 68; -- opcode7 bit 6 + -- CPU status -- + constant ctrl_priv_lvl_lsb_c : natural := 69; -- privilege level lsb + constant ctrl_priv_lvl_msb_c : natural := 70; -- privilege level msb + constant ctrl_sleep_c : natural := 71; -- set when CPU is in sleep mode + constant ctrl_trap_c : natural := 72; -- set when CPU is entering trap execution + constant ctrl_debug_running_c : natural := 73; -- CPU is in debug mode when set + -- control bus size -- + constant ctrl_width_c : natural := 74; -- control bus size + + -- Comparator Bus ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant cmp_equal_c : natural := 0; + constant cmp_less_c : natural := 1; -- for signed and unsigned comparisons + + -- RISC-V Opcode Layout ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant instr_opcode_lsb_c : natural := 0; -- opcode bit 0 + constant instr_opcode_msb_c : natural := 6; -- opcode bit 6 + constant instr_rd_lsb_c : natural := 7; -- destination register address bit 0 + constant instr_rd_msb_c : natural := 11; -- destination register address bit 4 + constant instr_funct3_lsb_c : natural := 12; -- funct3 bit 0 + constant instr_funct3_msb_c : natural := 14; -- funct3 bit 2 + constant instr_rs1_lsb_c : natural := 15; -- source register 1 address bit 0 + constant instr_rs1_msb_c : natural := 19; -- source register 1 address bit 4 + constant instr_rs2_lsb_c : natural := 20; -- source register 2 address bit 0 + constant instr_rs2_msb_c : natural := 24; -- source register 2 address bit 4 + constant instr_funct7_lsb_c : natural := 25; -- funct7 bit 0 + constant instr_funct7_msb_c : natural := 31; -- funct7 bit 6 + constant instr_funct12_lsb_c : natural := 20; -- funct12 bit 0 + constant instr_funct12_msb_c : natural := 31; -- funct12 bit 11 + constant instr_imm12_lsb_c : natural := 20; -- immediate12 bit 0 + constant instr_imm12_msb_c : natural := 31; -- immediate12 bit 11 + constant instr_imm20_lsb_c : natural := 12; -- immediate20 bit 0 + constant instr_imm20_msb_c : natural := 31; -- immediate20 bit 21 + constant instr_csr_id_lsb_c : natural := 20; -- csr select bit 0 + constant instr_csr_id_msb_c : natural := 31; -- csr select bit 11 + constant instr_funct5_lsb_c : natural := 27; -- funct5 select bit 0 + constant instr_funct5_msb_c : natural := 31; -- funct5 select bit 4 + + -- RISC-V Opcodes ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- alu -- + constant opcode_lui_c : std_ulogic_vector(6 downto 0) := "0110111"; -- load upper immediate + constant opcode_auipc_c : std_ulogic_vector(6 downto 0) := "0010111"; -- add upper immediate to PC + constant opcode_alui_c : std_ulogic_vector(6 downto 0) := "0010011"; -- ALU operation with immediate (operation via funct3 and funct7) + constant opcode_alu_c : std_ulogic_vector(6 downto 0) := "0110011"; -- ALU operation (operation via funct3 and funct7) + -- control flow -- + constant opcode_jal_c : std_ulogic_vector(6 downto 0) := "1101111"; -- jump and link + constant opcode_jalr_c : std_ulogic_vector(6 downto 0) := "1100111"; -- jump and link with register + constant opcode_branch_c : std_ulogic_vector(6 downto 0) := "1100011"; -- branch (condition set via funct3) + -- memory access -- + constant opcode_load_c : std_ulogic_vector(6 downto 0) := "0000011"; -- load (data type via funct3) + constant opcode_store_c : std_ulogic_vector(6 downto 0) := "0100011"; -- store (data type via funct3) + -- system/csr -- + constant opcode_fence_c : std_ulogic_vector(6 downto 0) := "0001111"; -- fence / fence.i + constant opcode_syscsr_c : std_ulogic_vector(6 downto 0) := "1110011"; -- system/csr access (type via funct3) + -- atomic memory access (A) -- + constant opcode_atomic_c : std_ulogic_vector(6 downto 0) := "0101111"; -- atomic operations (A extension) + -- floating point operations (Zfinx-only) (F/D/H/Q) -- + constant opcode_fop_c : std_ulogic_vector(6 downto 0) := "1010011"; -- dual/single operand instruction + + -- RISC-V Funct3 -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- control flow -- + constant funct3_beq_c : std_ulogic_vector(2 downto 0) := "000"; -- branch if equal + constant funct3_bne_c : std_ulogic_vector(2 downto 0) := "001"; -- branch if not equal + constant funct3_blt_c : std_ulogic_vector(2 downto 0) := "100"; -- branch if less than + constant funct3_bge_c : std_ulogic_vector(2 downto 0) := "101"; -- branch if greater than or equal + constant funct3_bltu_c : std_ulogic_vector(2 downto 0) := "110"; -- branch if less than (unsigned) + constant funct3_bgeu_c : std_ulogic_vector(2 downto 0) := "111"; -- branch if greater than or equal (unsigned) + -- memory access -- + constant funct3_lb_c : std_ulogic_vector(2 downto 0) := "000"; -- load byte + constant funct3_lh_c : std_ulogic_vector(2 downto 0) := "001"; -- load half word + constant funct3_lw_c : std_ulogic_vector(2 downto 0) := "010"; -- load word + constant funct3_lbu_c : std_ulogic_vector(2 downto 0) := "100"; -- load byte (unsigned) + constant funct3_lhu_c : std_ulogic_vector(2 downto 0) := "101"; -- load half word (unsigned) + constant funct3_sb_c : std_ulogic_vector(2 downto 0) := "000"; -- store byte + constant funct3_sh_c : std_ulogic_vector(2 downto 0) := "001"; -- store half word + constant funct3_sw_c : std_ulogic_vector(2 downto 0) := "010"; -- store word + -- alu -- + constant funct3_subadd_c : std_ulogic_vector(2 downto 0) := "000"; -- sub/add via funct7 + constant funct3_sll_c : std_ulogic_vector(2 downto 0) := "001"; -- shift logical left + constant funct3_slt_c : std_ulogic_vector(2 downto 0) := "010"; -- set on less + constant funct3_sltu_c : std_ulogic_vector(2 downto 0) := "011"; -- set on less unsigned + constant funct3_xor_c : std_ulogic_vector(2 downto 0) := "100"; -- xor + constant funct3_sr_c : std_ulogic_vector(2 downto 0) := "101"; -- shift right via funct7 + constant funct3_or_c : std_ulogic_vector(2 downto 0) := "110"; -- or + constant funct3_and_c : std_ulogic_vector(2 downto 0) := "111"; -- and + -- system/csr -- + constant funct3_env_c : std_ulogic_vector(2 downto 0) := "000"; -- ecall, ebreak, mret, wfi, ... + constant funct3_csrrw_c : std_ulogic_vector(2 downto 0) := "001"; -- atomic r/w + constant funct3_csrrs_c : std_ulogic_vector(2 downto 0) := "010"; -- atomic read & set bit + constant funct3_csrrc_c : std_ulogic_vector(2 downto 0) := "011"; -- atomic read & clear bit + constant funct3_csrrwi_c : std_ulogic_vector(2 downto 0) := "101"; -- atomic r/w immediate + constant funct3_csrrsi_c : std_ulogic_vector(2 downto 0) := "110"; -- atomic read & set bit immediate + constant funct3_csrrci_c : std_ulogic_vector(2 downto 0) := "111"; -- atomic read & clear bit immediate + -- fence -- + constant funct3_fence_c : std_ulogic_vector(2 downto 0) := "000"; -- fence - order IO/memory access (->NOP) + constant funct3_fencei_c : std_ulogic_vector(2 downto 0) := "001"; -- fencei - instruction stream sync + + -- RISC-V Funct12 ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- system -- + constant funct12_ecall_c : std_ulogic_vector(11 downto 0) := x"000"; -- ECALL + constant funct12_ebreak_c : std_ulogic_vector(11 downto 0) := x"001"; -- EBREAK + constant funct12_mret_c : std_ulogic_vector(11 downto 0) := x"302"; -- MRET + constant funct12_wfi_c : std_ulogic_vector(11 downto 0) := x"105"; -- WFI + constant funct12_dret_c : std_ulogic_vector(11 downto 0) := x"7b2"; -- DRET + + -- RISC-V Funct5 -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- atomic operations -- + constant funct5_a_lr_c : std_ulogic_vector(4 downto 0) := "00010"; -- LR + constant funct5_a_sc_c : std_ulogic_vector(4 downto 0) := "00011"; -- SC + + -- RISC-V Floating-Point Stuff ------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- formats -- + constant float_single_c : std_ulogic_vector(1 downto 0) := "00"; -- single-precision (32-bit) + constant float_double_c : std_ulogic_vector(1 downto 0) := "01"; -- double-precision (64-bit) + constant float_half_c : std_ulogic_vector(1 downto 0) := "10"; -- half-precision (16-bit) + constant float_quad_c : std_ulogic_vector(1 downto 0) := "11"; -- quad-precision (128-bit) + + -- number class flags -- + constant fp_class_neg_inf_c : natural := 0; -- negative infinity + constant fp_class_neg_norm_c : natural := 1; -- negative normal number + constant fp_class_neg_denorm_c : natural := 2; -- negative subnormal number + constant fp_class_neg_zero_c : natural := 3; -- negative zero + constant fp_class_pos_zero_c : natural := 4; -- positive zero + constant fp_class_pos_denorm_c : natural := 5; -- positive subnormal number + constant fp_class_pos_norm_c : natural := 6; -- positive normal number + constant fp_class_pos_inf_c : natural := 7; -- positive infinity + constant fp_class_snan_c : natural := 8; -- signaling NaN (sNaN) + constant fp_class_qnan_c : natural := 9; -- quiet NaN (qNaN) + + -- exception flags -- + constant fp_exc_nv_c : natural := 0; -- invalid operation + constant fp_exc_dz_c : natural := 1; -- divide by zero + constant fp_exc_of_c : natural := 2; -- overflow + constant fp_exc_uf_c : natural := 3; -- underflow + constant fp_exc_nx_c : natural := 4; -- inexact + + -- special values (single-precision) -- + constant fp_single_qnan_c : std_ulogic_vector(31 downto 0) := x"7fc00000"; -- quiet NaN + constant fp_single_snan_c : std_ulogic_vector(31 downto 0) := x"7fa00000"; -- signaling NaN + constant fp_single_pos_inf_c : std_ulogic_vector(31 downto 0) := x"7f800000"; -- positive infinity + constant fp_single_neg_inf_c : std_ulogic_vector(31 downto 0) := x"ff800000"; -- negative infinity + constant fp_single_pos_zero_c : std_ulogic_vector(31 downto 0) := x"00000000"; -- positive zero + constant fp_single_neg_zero_c : std_ulogic_vector(31 downto 0) := x"80000000"; -- negative zero + + -- RISC-V CSR Addresses ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- <<< standard read/write CSRs >>> -- + -- user floating-point CSRs -- + constant csr_class_float_c : std_ulogic_vector(09 downto 0) := x"00" & "00"; -- floating point + constant csr_fflags_c : std_ulogic_vector(11 downto 0) := x"001"; + constant csr_frm_c : std_ulogic_vector(11 downto 0) := x"002"; + constant csr_fcsr_c : std_ulogic_vector(11 downto 0) := x"003"; + -- machine trap setup -- + constant csr_class_setup_c : std_ulogic_vector(08 downto 0) := x"30" & '0'; -- trap setup + constant csr_mstatus_c : std_ulogic_vector(11 downto 0) := x"300"; + constant csr_misa_c : std_ulogic_vector(11 downto 0) := x"301"; + constant csr_mie_c : std_ulogic_vector(11 downto 0) := x"304"; + constant csr_mtvec_c : std_ulogic_vector(11 downto 0) := x"305"; + constant csr_mcounteren_c : std_ulogic_vector(11 downto 0) := x"306"; + -- + constant csr_mstatush_c : std_ulogic_vector(11 downto 0) := x"310"; + -- machine configuration -- + constant csr_class_envcfg_c : std_ulogic_vector(06 downto 0) := x"3" & "000"; -- configuration + constant csr_menvcfg_c : std_ulogic_vector(11 downto 0) := x"30a"; + constant csr_menvcfgh_c : std_ulogic_vector(11 downto 0) := x"31a"; + -- machine counter setup -- + constant csr_cnt_setup_c : std_ulogic_vector(06 downto 0) := x"3" & "001"; -- counter setup + constant csr_mcountinhibit_c : std_ulogic_vector(11 downto 0) := x"320"; + constant csr_mhpmevent3_c : std_ulogic_vector(11 downto 0) := x"323"; + constant csr_mhpmevent4_c : std_ulogic_vector(11 downto 0) := x"324"; + constant csr_mhpmevent5_c : std_ulogic_vector(11 downto 0) := x"325"; + constant csr_mhpmevent6_c : std_ulogic_vector(11 downto 0) := x"326"; + constant csr_mhpmevent7_c : std_ulogic_vector(11 downto 0) := x"327"; + constant csr_mhpmevent8_c : std_ulogic_vector(11 downto 0) := x"328"; + constant csr_mhpmevent9_c : std_ulogic_vector(11 downto 0) := x"329"; + constant csr_mhpmevent10_c : std_ulogic_vector(11 downto 0) := x"32a"; + constant csr_mhpmevent11_c : std_ulogic_vector(11 downto 0) := x"32b"; + constant csr_mhpmevent12_c : std_ulogic_vector(11 downto 0) := x"32c"; + constant csr_mhpmevent13_c : std_ulogic_vector(11 downto 0) := x"32d"; + constant csr_mhpmevent14_c : std_ulogic_vector(11 downto 0) := x"32e"; + constant csr_mhpmevent15_c : std_ulogic_vector(11 downto 0) := x"32f"; + constant csr_mhpmevent16_c : std_ulogic_vector(11 downto 0) := x"330"; + constant csr_mhpmevent17_c : std_ulogic_vector(11 downto 0) := x"331"; + constant csr_mhpmevent18_c : std_ulogic_vector(11 downto 0) := x"332"; + constant csr_mhpmevent19_c : std_ulogic_vector(11 downto 0) := x"333"; + constant csr_mhpmevent20_c : std_ulogic_vector(11 downto 0) := x"334"; + constant csr_mhpmevent21_c : std_ulogic_vector(11 downto 0) := x"335"; + constant csr_mhpmevent22_c : std_ulogic_vector(11 downto 0) := x"336"; + constant csr_mhpmevent23_c : std_ulogic_vector(11 downto 0) := x"337"; + constant csr_mhpmevent24_c : std_ulogic_vector(11 downto 0) := x"338"; + constant csr_mhpmevent25_c : std_ulogic_vector(11 downto 0) := x"339"; + constant csr_mhpmevent26_c : std_ulogic_vector(11 downto 0) := x"33a"; + constant csr_mhpmevent27_c : std_ulogic_vector(11 downto 0) := x"33b"; + constant csr_mhpmevent28_c : std_ulogic_vector(11 downto 0) := x"33c"; + constant csr_mhpmevent29_c : std_ulogic_vector(11 downto 0) := x"33d"; + constant csr_mhpmevent30_c : std_ulogic_vector(11 downto 0) := x"33e"; + constant csr_mhpmevent31_c : std_ulogic_vector(11 downto 0) := x"33f"; + -- machine trap handling -- + constant csr_class_trap_c : std_ulogic_vector(07 downto 0) := x"34"; -- machine trap handling + constant csr_mscratch_c : std_ulogic_vector(11 downto 0) := x"340"; + constant csr_mepc_c : std_ulogic_vector(11 downto 0) := x"341"; + constant csr_mcause_c : std_ulogic_vector(11 downto 0) := x"342"; + constant csr_mtval_c : std_ulogic_vector(11 downto 0) := x"343"; + constant csr_mip_c : std_ulogic_vector(11 downto 0) := x"344"; + -- physical memory protection - configuration -- + constant csr_class_pmpcfg_c : std_ulogic_vector(07 downto 0) := x"3a"; -- pmp configuration + constant csr_pmpcfg0_c : std_ulogic_vector(11 downto 0) := x"3a0"; + constant csr_pmpcfg1_c : std_ulogic_vector(11 downto 0) := x"3a1"; + constant csr_pmpcfg2_c : std_ulogic_vector(11 downto 0) := x"3a2"; + constant csr_pmpcfg3_c : std_ulogic_vector(11 downto 0) := x"3a3"; + constant csr_pmpcfg4_c : std_ulogic_vector(11 downto 0) := x"3a4"; + constant csr_pmpcfg5_c : std_ulogic_vector(11 downto 0) := x"3a5"; + constant csr_pmpcfg6_c : std_ulogic_vector(11 downto 0) := x"3a6"; + constant csr_pmpcfg7_c : std_ulogic_vector(11 downto 0) := x"3a7"; + constant csr_pmpcfg8_c : std_ulogic_vector(11 downto 0) := x"3a8"; + constant csr_pmpcfg9_c : std_ulogic_vector(11 downto 0) := x"3a9"; + constant csr_pmpcfg10_c : std_ulogic_vector(11 downto 0) := x"3aa"; + constant csr_pmpcfg11_c : std_ulogic_vector(11 downto 0) := x"3ab"; + constant csr_pmpcfg12_c : std_ulogic_vector(11 downto 0) := x"3ac"; + constant csr_pmpcfg13_c : std_ulogic_vector(11 downto 0) := x"3ad"; + constant csr_pmpcfg14_c : std_ulogic_vector(11 downto 0) := x"3ae"; + constant csr_pmpcfg15_c : std_ulogic_vector(11 downto 0) := x"3af"; + -- physical memory protection - address -- + constant csr_pmpaddr0_c : std_ulogic_vector(11 downto 0) := x"3b0"; + constant csr_pmpaddr1_c : std_ulogic_vector(11 downto 0) := x"3b1"; + constant csr_pmpaddr2_c : std_ulogic_vector(11 downto 0) := x"3b2"; + constant csr_pmpaddr3_c : std_ulogic_vector(11 downto 0) := x"3b3"; + constant csr_pmpaddr4_c : std_ulogic_vector(11 downto 0) := x"3b4"; + constant csr_pmpaddr5_c : std_ulogic_vector(11 downto 0) := x"3b5"; + constant csr_pmpaddr6_c : std_ulogic_vector(11 downto 0) := x"3b6"; + constant csr_pmpaddr7_c : std_ulogic_vector(11 downto 0) := x"3b7"; + constant csr_pmpaddr8_c : std_ulogic_vector(11 downto 0) := x"3b8"; + constant csr_pmpaddr9_c : std_ulogic_vector(11 downto 0) := x"3b9"; + constant csr_pmpaddr10_c : std_ulogic_vector(11 downto 0) := x"3ba"; + constant csr_pmpaddr11_c : std_ulogic_vector(11 downto 0) := x"3bb"; + constant csr_pmpaddr12_c : std_ulogic_vector(11 downto 0) := x"3bc"; + constant csr_pmpaddr13_c : std_ulogic_vector(11 downto 0) := x"3bd"; + constant csr_pmpaddr14_c : std_ulogic_vector(11 downto 0) := x"3be"; + constant csr_pmpaddr15_c : std_ulogic_vector(11 downto 0) := x"3bf"; + constant csr_pmpaddr16_c : std_ulogic_vector(11 downto 0) := x"3c0"; + constant csr_pmpaddr17_c : std_ulogic_vector(11 downto 0) := x"3c1"; + constant csr_pmpaddr18_c : std_ulogic_vector(11 downto 0) := x"3c2"; + constant csr_pmpaddr19_c : std_ulogic_vector(11 downto 0) := x"3c3"; + constant csr_pmpaddr20_c : std_ulogic_vector(11 downto 0) := x"3c4"; + constant csr_pmpaddr21_c : std_ulogic_vector(11 downto 0) := x"3c5"; + constant csr_pmpaddr22_c : std_ulogic_vector(11 downto 0) := x"3c6"; + constant csr_pmpaddr23_c : std_ulogic_vector(11 downto 0) := x"3c7"; + constant csr_pmpaddr24_c : std_ulogic_vector(11 downto 0) := x"3c8"; + constant csr_pmpaddr25_c : std_ulogic_vector(11 downto 0) := x"3c9"; + constant csr_pmpaddr26_c : std_ulogic_vector(11 downto 0) := x"3ca"; + constant csr_pmpaddr27_c : std_ulogic_vector(11 downto 0) := x"3cb"; + constant csr_pmpaddr28_c : std_ulogic_vector(11 downto 0) := x"3cc"; + constant csr_pmpaddr29_c : std_ulogic_vector(11 downto 0) := x"3cd"; + constant csr_pmpaddr30_c : std_ulogic_vector(11 downto 0) := x"3ce"; + constant csr_pmpaddr31_c : std_ulogic_vector(11 downto 0) := x"3cf"; + constant csr_pmpaddr32_c : std_ulogic_vector(11 downto 0) := x"3d0"; + constant csr_pmpaddr33_c : std_ulogic_vector(11 downto 0) := x"3d1"; + constant csr_pmpaddr34_c : std_ulogic_vector(11 downto 0) := x"3d2"; + constant csr_pmpaddr35_c : std_ulogic_vector(11 downto 0) := x"3d3"; + constant csr_pmpaddr36_c : std_ulogic_vector(11 downto 0) := x"3d4"; + constant csr_pmpaddr37_c : std_ulogic_vector(11 downto 0) := x"3d5"; + constant csr_pmpaddr38_c : std_ulogic_vector(11 downto 0) := x"3d6"; + constant csr_pmpaddr39_c : std_ulogic_vector(11 downto 0) := x"3d7"; + constant csr_pmpaddr40_c : std_ulogic_vector(11 downto 0) := x"3d8"; + constant csr_pmpaddr41_c : std_ulogic_vector(11 downto 0) := x"3d9"; + constant csr_pmpaddr42_c : std_ulogic_vector(11 downto 0) := x"3da"; + constant csr_pmpaddr43_c : std_ulogic_vector(11 downto 0) := x"3db"; + constant csr_pmpaddr44_c : std_ulogic_vector(11 downto 0) := x"3dc"; + constant csr_pmpaddr45_c : std_ulogic_vector(11 downto 0) := x"3dd"; + constant csr_pmpaddr46_c : std_ulogic_vector(11 downto 0) := x"3de"; + constant csr_pmpaddr47_c : std_ulogic_vector(11 downto 0) := x"3df"; + constant csr_pmpaddr48_c : std_ulogic_vector(11 downto 0) := x"3e0"; + constant csr_pmpaddr49_c : std_ulogic_vector(11 downto 0) := x"3e1"; + constant csr_pmpaddr50_c : std_ulogic_vector(11 downto 0) := x"3e2"; + constant csr_pmpaddr51_c : std_ulogic_vector(11 downto 0) := x"3e3"; + constant csr_pmpaddr52_c : std_ulogic_vector(11 downto 0) := x"3e4"; + constant csr_pmpaddr53_c : std_ulogic_vector(11 downto 0) := x"3e5"; + constant csr_pmpaddr54_c : std_ulogic_vector(11 downto 0) := x"3e6"; + constant csr_pmpaddr55_c : std_ulogic_vector(11 downto 0) := x"3e7"; + constant csr_pmpaddr56_c : std_ulogic_vector(11 downto 0) := x"3e8"; + constant csr_pmpaddr57_c : std_ulogic_vector(11 downto 0) := x"3e9"; + constant csr_pmpaddr58_c : std_ulogic_vector(11 downto 0) := x"3ea"; + constant csr_pmpaddr59_c : std_ulogic_vector(11 downto 0) := x"3eb"; + constant csr_pmpaddr60_c : std_ulogic_vector(11 downto 0) := x"3ec"; + constant csr_pmpaddr61_c : std_ulogic_vector(11 downto 0) := x"3ed"; + constant csr_pmpaddr62_c : std_ulogic_vector(11 downto 0) := x"3ee"; + constant csr_pmpaddr63_c : std_ulogic_vector(11 downto 0) := x"3ef"; + -- debug mode registers -- + constant csr_class_debug_c : std_ulogic_vector(09 downto 0) := x"7b" & "00"; -- debug registers + constant csr_dcsr_c : std_ulogic_vector(11 downto 0) := x"7b0"; + constant csr_dpc_c : std_ulogic_vector(11 downto 0) := x"7b1"; + constant csr_dscratch0_c : std_ulogic_vector(11 downto 0) := x"7b2"; + -- machine counters/timers -- + constant csr_mcycle_c : std_ulogic_vector(11 downto 0) := x"b00"; + constant csr_minstret_c : std_ulogic_vector(11 downto 0) := x"b02"; + -- + constant csr_mhpmcounter3_c : std_ulogic_vector(11 downto 0) := x"b03"; + constant csr_mhpmcounter4_c : std_ulogic_vector(11 downto 0) := x"b04"; + constant csr_mhpmcounter5_c : std_ulogic_vector(11 downto 0) := x"b05"; + constant csr_mhpmcounter6_c : std_ulogic_vector(11 downto 0) := x"b06"; + constant csr_mhpmcounter7_c : std_ulogic_vector(11 downto 0) := x"b07"; + constant csr_mhpmcounter8_c : std_ulogic_vector(11 downto 0) := x"b08"; + constant csr_mhpmcounter9_c : std_ulogic_vector(11 downto 0) := x"b09"; + constant csr_mhpmcounter10_c : std_ulogic_vector(11 downto 0) := x"b0a"; + constant csr_mhpmcounter11_c : std_ulogic_vector(11 downto 0) := x"b0b"; + constant csr_mhpmcounter12_c : std_ulogic_vector(11 downto 0) := x"b0c"; + constant csr_mhpmcounter13_c : std_ulogic_vector(11 downto 0) := x"b0d"; + constant csr_mhpmcounter14_c : std_ulogic_vector(11 downto 0) := x"b0e"; + constant csr_mhpmcounter15_c : std_ulogic_vector(11 downto 0) := x"b0f"; + constant csr_mhpmcounter16_c : std_ulogic_vector(11 downto 0) := x"b10"; + constant csr_mhpmcounter17_c : std_ulogic_vector(11 downto 0) := x"b11"; + constant csr_mhpmcounter18_c : std_ulogic_vector(11 downto 0) := x"b12"; + constant csr_mhpmcounter19_c : std_ulogic_vector(11 downto 0) := x"b13"; + constant csr_mhpmcounter20_c : std_ulogic_vector(11 downto 0) := x"b14"; + constant csr_mhpmcounter21_c : std_ulogic_vector(11 downto 0) := x"b15"; + constant csr_mhpmcounter22_c : std_ulogic_vector(11 downto 0) := x"b16"; + constant csr_mhpmcounter23_c : std_ulogic_vector(11 downto 0) := x"b17"; + constant csr_mhpmcounter24_c : std_ulogic_vector(11 downto 0) := x"b18"; + constant csr_mhpmcounter25_c : std_ulogic_vector(11 downto 0) := x"b19"; + constant csr_mhpmcounter26_c : std_ulogic_vector(11 downto 0) := x"b1a"; + constant csr_mhpmcounter27_c : std_ulogic_vector(11 downto 0) := x"b1b"; + constant csr_mhpmcounter28_c : std_ulogic_vector(11 downto 0) := x"b1c"; + constant csr_mhpmcounter29_c : std_ulogic_vector(11 downto 0) := x"b1d"; + constant csr_mhpmcounter30_c : std_ulogic_vector(11 downto 0) := x"b1e"; + constant csr_mhpmcounter31_c : std_ulogic_vector(11 downto 0) := x"b1f"; + -- + constant csr_mcycleh_c : std_ulogic_vector(11 downto 0) := x"b80"; + constant csr_minstreth_c : std_ulogic_vector(11 downto 0) := x"b82"; + -- + constant csr_mhpmcounter3h_c : std_ulogic_vector(11 downto 0) := x"b83"; + constant csr_mhpmcounter4h_c : std_ulogic_vector(11 downto 0) := x"b84"; + constant csr_mhpmcounter5h_c : std_ulogic_vector(11 downto 0) := x"b85"; + constant csr_mhpmcounter6h_c : std_ulogic_vector(11 downto 0) := x"b86"; + constant csr_mhpmcounter7h_c : std_ulogic_vector(11 downto 0) := x"b87"; + constant csr_mhpmcounter8h_c : std_ulogic_vector(11 downto 0) := x"b88"; + constant csr_mhpmcounter9h_c : std_ulogic_vector(11 downto 0) := x"b89"; + constant csr_mhpmcounter10h_c : std_ulogic_vector(11 downto 0) := x"b8a"; + constant csr_mhpmcounter11h_c : std_ulogic_vector(11 downto 0) := x"b8b"; + constant csr_mhpmcounter12h_c : std_ulogic_vector(11 downto 0) := x"b8c"; + constant csr_mhpmcounter13h_c : std_ulogic_vector(11 downto 0) := x"b8d"; + constant csr_mhpmcounter14h_c : std_ulogic_vector(11 downto 0) := x"b8e"; + constant csr_mhpmcounter15h_c : std_ulogic_vector(11 downto 0) := x"b8f"; + constant csr_mhpmcounter16h_c : std_ulogic_vector(11 downto 0) := x"b90"; + constant csr_mhpmcounter17h_c : std_ulogic_vector(11 downto 0) := x"b91"; + constant csr_mhpmcounter18h_c : std_ulogic_vector(11 downto 0) := x"b92"; + constant csr_mhpmcounter19h_c : std_ulogic_vector(11 downto 0) := x"b93"; + constant csr_mhpmcounter20h_c : std_ulogic_vector(11 downto 0) := x"b94"; + constant csr_mhpmcounter21h_c : std_ulogic_vector(11 downto 0) := x"b95"; + constant csr_mhpmcounter22h_c : std_ulogic_vector(11 downto 0) := x"b96"; + constant csr_mhpmcounter23h_c : std_ulogic_vector(11 downto 0) := x"b97"; + constant csr_mhpmcounter24h_c : std_ulogic_vector(11 downto 0) := x"b98"; + constant csr_mhpmcounter25h_c : std_ulogic_vector(11 downto 0) := x"b99"; + constant csr_mhpmcounter26h_c : std_ulogic_vector(11 downto 0) := x"b9a"; + constant csr_mhpmcounter27h_c : std_ulogic_vector(11 downto 0) := x"b9b"; + constant csr_mhpmcounter28h_c : std_ulogic_vector(11 downto 0) := x"b9c"; + constant csr_mhpmcounter29h_c : std_ulogic_vector(11 downto 0) := x"b9d"; + constant csr_mhpmcounter30h_c : std_ulogic_vector(11 downto 0) := x"b9e"; + constant csr_mhpmcounter31h_c : std_ulogic_vector(11 downto 0) := x"b9f"; + + -- <<< standard read-only CSRs >>> -- + -- user counters/timers -- + constant csr_cycle_c : std_ulogic_vector(11 downto 0) := x"c00"; + constant csr_time_c : std_ulogic_vector(11 downto 0) := x"c01"; + constant csr_instret_c : std_ulogic_vector(11 downto 0) := x"c02"; + constant csr_cycleh_c : std_ulogic_vector(11 downto 0) := x"c80"; + constant csr_timeh_c : std_ulogic_vector(11 downto 0) := x"c81"; + constant csr_instreth_c : std_ulogic_vector(11 downto 0) := x"c82"; + -- machine information registers -- + constant csr_mvendorid_c : std_ulogic_vector(11 downto 0) := x"f11"; + constant csr_marchid_c : std_ulogic_vector(11 downto 0) := x"f12"; + constant csr_mimpid_c : std_ulogic_vector(11 downto 0) := x"f13"; + constant csr_mhartid_c : std_ulogic_vector(11 downto 0) := x"f14"; + constant csr_mconfigptr_c : std_ulogic_vector(11 downto 0) := x"f15"; + + -- Co-Processor IDs ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant cp_sel_shifter_c : std_ulogic_vector(1 downto 0) := "00"; -- shift operations (base ISA) + constant cp_sel_muldiv_c : std_ulogic_vector(1 downto 0) := "01"; -- multiplication/division operations ('M' extensions) + constant cp_sel_bitmanip_c : std_ulogic_vector(1 downto 0) := "10"; -- bit manipulation ('B' extensions) + constant cp_sel_fpu_c : std_ulogic_vector(1 downto 0) := "11"; -- floating-point unit ('Zfinx' extension) + + -- ALU Function Codes --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- ALU core [DO NOT CHANGE ENCODING!] -- + constant alu_op_add_c : std_ulogic_vector(2 downto 0) := "000"; -- alu_result <= A + B + constant alu_op_sub_c : std_ulogic_vector(2 downto 0) := "001"; -- alu_result <= A - B +--constant alu_op_mova_c : std_ulogic_vector(2 downto 0) := "010"; -- alu_result <= A (rs1) + constant alu_op_slt_c : std_ulogic_vector(2 downto 0) := "011"; -- alu_result <= A < B + constant alu_op_movb_c : std_ulogic_vector(2 downto 0) := "100"; -- alu_result <= B + constant alu_op_xor_c : std_ulogic_vector(2 downto 0) := "101"; -- alu_result <= A xor B + constant alu_op_or_c : std_ulogic_vector(2 downto 0) := "110"; -- alu_result <= A or B + constant alu_op_and_c : std_ulogic_vector(2 downto 0) := "111"; -- alu_result <= A and B + -- function select (actual ALU result) -- + constant alu_func_core_c : std_ulogic_vector(1 downto 0) := "00"; -- r <= alu_result + constant alu_func_nxpc_c : std_ulogic_vector(1 downto 0) := "01"; -- r <= next_PC + constant alu_func_csrr_c : std_ulogic_vector(1 downto 0) := "10"; -- r <= CSR read + constant alu_func_copro_c : std_ulogic_vector(1 downto 0) := "11"; -- r <= CP result (multi-cycle) + + -- Trap ID Codes -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- MSB: 1 = async exception (IRQ), 0 = sync exception (e.g. ebreak) + -- MSB-1: 1 = entry to debug mode, 0 = normal trapping + -- RISC-V compliant sync. exceptions -- + constant trap_ima_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00000"; -- 0.0: instruction misaligned + constant trap_iba_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00001"; -- 0.1: instruction access fault + constant trap_iil_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00010"; -- 0.2: illegal instruction + constant trap_brk_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00011"; -- 0.3: breakpoint + constant trap_lma_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00100"; -- 0.4: load address misaligned + constant trap_lbe_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00101"; -- 0.5: load access fault + constant trap_sma_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00110"; -- 0.6: store address misaligned + constant trap_sbe_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "00111"; -- 0.7: store access fault + constant trap_uenv_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "01000"; -- 0.8: environment call from u-mode + constant trap_menv_c : std_ulogic_vector(6 downto 0) := "0" & "0" & "01011"; -- 0.11: environment call from m-mode + -- RISC-V compliant interrupts (async. exceptions) -- + constant trap_msi_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "00011"; -- 1.3: machine software interrupt + constant trap_mti_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "00111"; -- 1.7: machine timer interrupt + constant trap_mei_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "01011"; -- 1.11: machine external interrupt + -- NEORV32-specific (custom) interrupts (async. exceptions) -- + constant trap_firq0_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10000"; -- 1.16: fast interrupt 0 + constant trap_firq1_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10001"; -- 1.17: fast interrupt 1 + constant trap_firq2_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10010"; -- 1.18: fast interrupt 2 + constant trap_firq3_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10011"; -- 1.19: fast interrupt 3 + constant trap_firq4_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10100"; -- 1.20: fast interrupt 4 + constant trap_firq5_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10101"; -- 1.21: fast interrupt 5 + constant trap_firq6_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10110"; -- 1.22: fast interrupt 6 + constant trap_firq7_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "10111"; -- 1.23: fast interrupt 7 + constant trap_firq8_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11000"; -- 1.24: fast interrupt 8 + constant trap_firq9_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11001"; -- 1.25: fast interrupt 9 + constant trap_firq10_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11010"; -- 1.26: fast interrupt 10 + constant trap_firq11_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11011"; -- 1.27: fast interrupt 11 + constant trap_firq12_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11100"; -- 1.28: fast interrupt 12 + constant trap_firq13_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11101"; -- 1.29: fast interrupt 13 + constant trap_firq14_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11110"; -- 1.30: fast interrupt 14 + constant trap_firq15_c : std_ulogic_vector(6 downto 0) := "1" & "0" & "11111"; -- 1.31: fast interrupt 15 + -- entering debug mode - cause -- + constant trap_db_break_c : std_ulogic_vector(6 downto 0) := "0" & "1" & "00010"; -- break instruction (sync / EXCEPTION) + constant trap_db_halt_c : std_ulogic_vector(6 downto 0) := "1" & "1" & "00011"; -- external halt request (async / IRQ) + constant trap_db_step_c : std_ulogic_vector(6 downto 0) := "1" & "1" & "00100"; -- single-stepping (async / IRQ) + + -- CPU Control Exception System ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- exception source bits -- + constant exception_iaccess_c : natural := 0; -- instruction access fault + constant exception_iillegal_c : natural := 1; -- illegal instruction + constant exception_ialign_c : natural := 2; -- instruction address misaligned + constant exception_m_envcall_c : natural := 3; -- ENV call from m-mode + constant exception_u_envcall_c : natural := 4; -- ENV call from u-mode + constant exception_break_c : natural := 5; -- breakpoint + constant exception_salign_c : natural := 6; -- store address misaligned + constant exception_lalign_c : natural := 7; -- load address misaligned + constant exception_saccess_c : natural := 8; -- store access fault + constant exception_laccess_c : natural := 9; -- load access fault + -- for debug mode only -- + constant exception_db_break_c : natural := 10; -- enter debug mode via ebreak instruction ("sync EXCEPTION") + -- + constant exception_width_c : natural := 11; -- length of this list in bits + -- interrupt source bits -- + constant interrupt_msw_irq_c : natural := 0; -- machine software interrupt + constant interrupt_mtime_irq_c : natural := 1; -- machine timer interrupt + constant interrupt_mext_irq_c : natural := 2; -- machine external interrupt + constant interrupt_firq_0_c : natural := 3; -- fast interrupt channel 0 + constant interrupt_firq_1_c : natural := 4; -- fast interrupt channel 1 + constant interrupt_firq_2_c : natural := 5; -- fast interrupt channel 2 + constant interrupt_firq_3_c : natural := 6; -- fast interrupt channel 3 + constant interrupt_firq_4_c : natural := 7; -- fast interrupt channel 4 + constant interrupt_firq_5_c : natural := 8; -- fast interrupt channel 5 + constant interrupt_firq_6_c : natural := 9; -- fast interrupt channel 6 + constant interrupt_firq_7_c : natural := 10; -- fast interrupt channel 7 + constant interrupt_firq_8_c : natural := 11; -- fast interrupt channel 8 + constant interrupt_firq_9_c : natural := 12; -- fast interrupt channel 9 + constant interrupt_firq_10_c : natural := 13; -- fast interrupt channel 10 + constant interrupt_firq_11_c : natural := 14; -- fast interrupt channel 11 + constant interrupt_firq_12_c : natural := 15; -- fast interrupt channel 12 + constant interrupt_firq_13_c : natural := 16; -- fast interrupt channel 13 + constant interrupt_firq_14_c : natural := 17; -- fast interrupt channel 14 + constant interrupt_firq_15_c : natural := 18; -- fast interrupt channel 15 + -- for debug mode only -- + constant interrupt_db_halt_c : natural := 19; -- enter debug mode via external halt request ("async IRQ") + constant interrupt_db_step_c : natural := 20; -- enter debug mode via single-stepping ("async IRQ") + -- + constant interrupt_width_c : natural := 21; -- length of this list in bits + + -- CPU Privilege Modes -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant priv_mode_m_c : std_ulogic_vector(1 downto 0) := "11"; -- machine mode + constant priv_mode_u_c : std_ulogic_vector(1 downto 0) := "00"; -- user mode + + -- HPM Event System ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + constant hpmcnt_event_cy_c : natural := 0; -- Active cycle + constant hpmcnt_event_never_c : natural := 1; -- Unused / never (actually, this would be used for TIME) + constant hpmcnt_event_ir_c : natural := 2; -- Retired instruction + constant hpmcnt_event_cir_c : natural := 3; -- Retired compressed instruction + constant hpmcnt_event_wait_if_c : natural := 4; -- Instruction fetch memory wait cycle + constant hpmcnt_event_wait_ii_c : natural := 5; -- Instruction issue wait cycle + constant hpmcnt_event_wait_mc_c : natural := 6; -- Multi-cycle ALU-operation wait cycle + constant hpmcnt_event_load_c : natural := 7; -- Load operation + constant hpmcnt_event_store_c : natural := 8; -- Store operation + constant hpmcnt_event_wait_ls_c : natural := 9; -- Load/store memory wait cycle + constant hpmcnt_event_jump_c : natural := 10; -- Unconditional jump + constant hpmcnt_event_branch_c : natural := 11; -- Conditional branch (taken or not taken) + constant hpmcnt_event_tbranch_c : natural := 12; -- Conditional taken branch + constant hpmcnt_event_trap_c : natural := 13; -- Entered trap + constant hpmcnt_event_illegal_c : natural := 14; -- Illegal instruction exception + -- + constant hpmcnt_event_size_c : natural := 15; -- length of this list + + -- Clock Generator ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + constant clk_div2_c : natural := 0; + constant clk_div4_c : natural := 1; + constant clk_div8_c : natural := 2; + constant clk_div64_c : natural := 3; + constant clk_div128_c : natural := 4; + constant clk_div1024_c : natural := 5; + constant clk_div2048_c : natural := 6; + constant clk_div4096_c : natural := 7; + + -- Component: NEORV32 Processor Top Entity ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + component neorv32_top + generic ( + -- General -- + CLOCK_FREQUENCY : natural; -- clock frequency of clk_i in Hz + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + INT_BOOTLOADER_EN : boolean := false; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean := false; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean := true; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean := false; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean := false; -- implement multiply-only M sub-extension? + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 64; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural := 2; -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + -- Internal Instruction memory (IMEM) -- + MEM_INT_IMEM_EN : boolean := false; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + -- Internal Data memory (DMEM) -- + MEM_INT_DMEM_EN : boolean := false; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 8*1024; -- size of processor-internal data memory in bytes + -- Internal Cache memory (iCACHE) -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface (WISHBONE) -- + MEM_EXT_EN : boolean := false; -- implement external memory bus interface? + MEM_EXT_TIMEOUT : natural := 255; -- cycles after a pending bus access auto-terminates (0 = disabled) + MEM_EXT_PIPE_MODE : boolean := false; -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + MEM_EXT_BIG_ENDIAN : boolean := false; -- byte order: true=big-endian, false=little-endian + MEM_EXT_ASYNC_RX : boolean := false; -- use register buffer for RX data when false + -- Stream link interface (SLINK) -- + SLINK_NUM_TX : natural := 0; -- number of TX links (0..8) + SLINK_NUM_RX : natural := 0; -- number of TX links (0..8) + SLINK_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH : natural := 0; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_ulogic_vector(31 downto 0) := x"FFFFFFFF"; -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_ulogic_vector(31 downto 0) := x"FFFFFFFF"; -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN : boolean := false; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := false; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := false; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN : boolean := false; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN : boolean := false; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := false; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 0; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := false; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean := false; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean := false; -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG : std_ulogic_vector(31 downto 0) := x"00000000"; -- custom CFS configuration generic + IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits + IO_NEOLED_EN : boolean := false; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO : natural := 1; -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN : boolean := false -- implement general purpose timer (GPTMR)? + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + -- JTAG on-chip debugger interface -- + jtag_trst_i : in std_ulogic := 'U'; -- low-active TAP reset (optional) + jtag_tck_i : in std_ulogic := 'U'; -- serial clock + jtag_tdi_i : in std_ulogic := 'U'; -- serial data input + jtag_tdo_o : out std_ulogic; -- serial data output + jtag_tms_i : in std_ulogic := 'U'; -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o : out std_ulogic_vector(02 downto 0); -- request tag + wb_adr_o : out std_ulogic_vector(31 downto 0); -- address + wb_dat_i : in std_ulogic_vector(31 downto 0) := (others => 'U'); -- read data + wb_dat_o : out std_ulogic_vector(31 downto 0); -- write data + wb_we_o : out std_ulogic; -- read/write + wb_sel_o : out std_ulogic_vector(03 downto 0); -- byte enable + wb_stb_o : out std_ulogic; -- strobe + wb_cyc_o : out std_ulogic; -- valid cycle + wb_lock_o : out std_ulogic; -- exclusive access request + wb_ack_i : in std_ulogic := 'L'; -- transfer acknowledge + wb_err_i : in std_ulogic := 'L'; -- transfer error + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o : out std_ulogic; -- indicates an executed FENCE operation + fencei_o : out std_ulogic; -- indicates an executed FENCEI operation + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o : out sdata_8x32_t; -- output data + slink_tx_val_o : out std_ulogic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- ready to send + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i : in sdata_8x32_t := (others => (others => 'U')); -- input data + slink_rx_val_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- valid input + slink_rx_rdy_o : out std_ulogic_vector(7 downto 0); -- ready to receive + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_ulogic_vector(63 downto 0); -- parallel output + gpio_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o : out std_ulogic; -- UART0 send data + uart0_rxd_i : in std_ulogic := 'U'; -- UART0 receive data + uart0_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i : in std_ulogic := 'L'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o : out std_ulogic; -- UART1 send data + uart1_rxd_i : in std_ulogic := 'U'; -- UART1 receive data + uart1_rts_o : out std_ulogic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i : in std_ulogic := 'L'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_ulogic; -- SPI serial clock + spi_sdo_o : out std_ulogic; -- controller data out, peripheral data in + spi_sdi_i : in std_ulogic := 'U'; -- controller data in, peripheral data out + spi_csn_o : out std_ulogic_vector(07 downto 0); -- SPI CS + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic := 'U'; -- twi serial data line + twi_scl_io : inout std_logic := 'U'; -- twi serial clock line + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0); -- pwm channels + -- Custom Functions Subsystem IO -- + cfs_in_i : in std_ulogic_vector(IO_CFS_IN_SIZE-1 downto 0) := (others => 'U'); -- custom CFS inputs conduit + cfs_out_o : out std_ulogic_vector(IO_CFS_OUT_SIZE-1 downto 0); -- custom CFS outputs conduit + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o : out std_ulogic; -- async serial data line + -- System time -- + mtime_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o : out std_ulogic_vector(63 downto 0); -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i : in std_ulogic_vector(XIRQ_NUM_CH-1 downto 0) := (others => 'L'); -- IRQ channels + -- CPU Interrupts -- + mtime_irq_i : in std_ulogic := 'L'; -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i : in std_ulogic := 'L'; -- machine software interrupt + mext_irq_i : in std_ulogic := 'L' -- machine external interrupt + ); + end component; + + -- Component: CPU Top Entity -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu + generic ( + -- General -- + HW_THREAD_ID : natural; -- hardware thread id (32-bit) + CPU_BOOT_ADDR : std_ulogic_vector(31 downto 0); -- cpu boot address + CPU_DEBUG_ADDR : std_ulogic_vector(31 downto 0); -- cpu debug mode start address + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG : boolean; -- implement CPU debug mode? + -- Extension Options -- + FAST_MUL_EN : boolean; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural; -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural -- total size of HPM counters (0..64) + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + sleep_o : out std_ulogic; -- cpu is in sleep mode when set + debug_o : out std_ulogic; -- cpu is in debug mode when set + -- instruction bus interface -- + i_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + i_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + i_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + i_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + i_bus_we_o : out std_ulogic; -- write enable + i_bus_re_o : out std_ulogic; -- read enable + i_bus_lock_o : out std_ulogic; -- exclusive access request + i_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + i_bus_err_i : in std_ulogic; -- bus transfer error + i_bus_fence_o : out std_ulogic; -- executed FENCEI operation + i_bus_priv_o : out std_ulogic_vector(1 downto 0); -- privilege level + -- data bus interface -- + d_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + d_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + d_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + d_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + d_bus_we_o : out std_ulogic; -- write enable + d_bus_re_o : out std_ulogic; -- read enable + d_bus_lock_o : out std_ulogic; -- exclusive access request + d_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + d_bus_err_i : in std_ulogic; -- bus transfer error + d_bus_fence_o : out std_ulogic; -- executed FENCE operation + d_bus_priv_o : out std_ulogic_vector(1 downto 0); -- privilege level + -- system time input from MTIME -- + time_i : in std_ulogic_vector(63 downto 0); -- current system time + -- interrupts (risc-v compliant) -- + msw_irq_i : in std_ulogic; -- machine software interrupt + mext_irq_i : in std_ulogic; -- machine external interrupt + mtime_irq_i : in std_ulogic; -- machine timer interrupt + -- fast interrupts (custom) -- + firq_i : in std_ulogic_vector(15 downto 0); + -- debug mode (halt) request -- + db_halt_req_i : in std_ulogic + ); + end component; + + -- Component: CPU Control ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_control + generic ( + -- General -- + HW_THREAD_ID : natural; -- hardware thread id (32-bit) + CPU_BOOT_ADDR : std_ulogic_vector(31 downto 0); -- cpu boot address + CPU_DEBUG_ADDR : std_ulogic_vector(31 downto 0); -- cpu debug mode start address + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG : boolean; -- implement CPU debug mode? + -- Extension Options -- + CPU_CNT_WIDTH : natural; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural; -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural -- total size of HPM counters (0..64) + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_o : out std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- status input -- + alu_idone_i : in std_ulogic; -- ALU iterative operation done + bus_i_wait_i : in std_ulogic; -- wait for bus + bus_d_wait_i : in std_ulogic; -- wait for bus + excl_state_i : in std_ulogic; -- atomic/exclusive access lock status + -- data input -- + instr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- instruction + cmp_i : in std_ulogic_vector(1 downto 0); -- comparator status + alu_add_i : in std_ulogic_vector(data_width_c-1 downto 0); -- ALU address result + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + -- data output -- + imm_o : out std_ulogic_vector(data_width_c-1 downto 0); -- immediate + fetch_pc_o : out std_ulogic_vector(data_width_c-1 downto 0); -- PC for instruction fetch + curr_pc_o : out std_ulogic_vector(data_width_c-1 downto 0); -- current PC (corresponding to current instruction) + next_pc_o : out std_ulogic_vector(data_width_c-1 downto 0); -- next PC (corresponding to next instruction) + csr_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- CSR read data + -- FPU interface -- + fpu_flags_i : in std_ulogic_vector(04 downto 0); -- exception flags + -- debug mode (halt) request -- + db_halt_req_i : in std_ulogic; + -- interrupts (risc-v compliant) -- + msw_irq_i : in std_ulogic; -- machine software interrupt + mext_irq_i : in std_ulogic; -- machine external interrupt + mtime_irq_i : in std_ulogic; -- machine timer interrupt + -- fast interrupts (custom) -- + firq_i : in std_ulogic_vector(15 downto 0); + -- system time input from MTIME -- + time_i : in std_ulogic_vector(63 downto 0); -- current system time + -- physical memory protection -- + pmp_addr_o : out pmp_addr_if_t; -- addresses + pmp_ctrl_o : out pmp_ctrl_if_t; -- configs + -- bus access exceptions -- + mar_i : in std_ulogic_vector(data_width_c-1 downto 0); -- memory address register + ma_instr_i : in std_ulogic; -- misaligned instruction address + ma_load_i : in std_ulogic; -- misaligned load data address + ma_store_i : in std_ulogic; -- misaligned store data address + be_instr_i : in std_ulogic; -- bus error on instruction access + be_load_i : in std_ulogic; -- bus error on load data access + be_store_i : in std_ulogic -- bus error on store data access + ); + end component; + + -- Component: CPU Register File ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_regfile + generic ( + CPU_EXTENSION_RISCV_E : boolean -- implement embedded RF extension? + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- data input -- + mem_i : in std_ulogic_vector(data_width_c-1 downto 0); -- memory read data + alu_i : in std_ulogic_vector(data_width_c-1 downto 0); -- ALU result + -- data output -- + rs1_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operand 1 + rs2_o : out std_ulogic_vector(data_width_c-1 downto 0) -- operand 2 + ); + end component; + + -- Component: CPU ALU --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_alu + generic ( + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_B : boolean; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_M : boolean; -- implement mul/div extension? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + -- Extension Options -- + FAST_MUL_EN : boolean; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean -- use barrel shifter for shift operations + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- data input -- + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + pc_i : in std_ulogic_vector(data_width_c-1 downto 0); -- current PC + pc2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- next PC + imm_i : in std_ulogic_vector(data_width_c-1 downto 0); -- immediate + csr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- CSR read data + -- data output -- + cmp_o : out std_ulogic_vector(1 downto 0); -- comparator status + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- ALU result + add_o : out std_ulogic_vector(data_width_c-1 downto 0); -- address computation result + fpu_flags_o : out std_ulogic_vector(4 downto 0); -- FPU exception flags + -- status -- + idone_o : out std_ulogic -- iterative processing units done? + ); + end component; + + -- Component: CPU Co-Processor SHIFTER ---------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_cp_shifter + generic ( + FAST_SHIFT_EN : boolean -- use barrel shifter for shift operations + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + shamt_i : in std_ulogic_vector(index_size_f(data_width_c)-1 downto 0); -- shift amount + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + valid_o : out std_ulogic -- data output valid + ); + end component; + + -- Component: CPU Co-Processor MULDIV ('M' extension) ------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_cp_muldiv + generic ( + FAST_MUL_EN : boolean; -- use DSPs for faster multiplication + DIVISION_EN : boolean -- implement divider hardware + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + valid_o : out std_ulogic -- data output valid + ); + end component; + + -- Component: CPU Co-Processor Bit-Manipulation Unit ('B' extension) ---------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_cp_bitmanip is + generic ( + FAST_SHIFT_EN : boolean -- use barrel shifter for shift operations + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + cmp_i : in std_ulogic_vector(1 downto 0); -- comparator status + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + shamt_i : in std_ulogic_vector(index_size_f(data_width_c)-1 downto 0); -- shift amount + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + valid_o : out std_ulogic -- data output valid + ); + end component; + + -- Component: CPU Co-Processor 32-bit FPU ('Zfinx' extension) ----------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_cp_fpu + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + start_i : in std_ulogic; -- trigger operation + -- data input -- + cmp_i : in std_ulogic_vector(1 downto 0); -- comparator status + rs1_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 1 + rs2_i : in std_ulogic_vector(data_width_c-1 downto 0); -- rf source 2 + -- result and status -- + res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- operation result + fflags_o : out std_ulogic_vector(4 downto 0); -- exception flags + valid_o : out std_ulogic -- data output valid + ); + end component; + + -- Component: CPU Bus Interface ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_bus + generic ( + CPU_EXTENSION_RISCV_A : boolean; -- implement atomic extension? + CPU_EXTENSION_RISCV_C : boolean; -- implement compressed extension? + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic := '0'; -- global reset, low-active, async + ctrl_i : in std_ulogic_vector(ctrl_width_c-1 downto 0); -- main control bus + -- cpu instruction fetch interface -- + fetch_pc_i : in std_ulogic_vector(data_width_c-1 downto 0); -- PC for instruction fetch + instr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- instruction + i_wait_o : out std_ulogic; -- wait for fetch to complete + -- + ma_instr_o : out std_ulogic; -- misaligned instruction address + be_instr_o : out std_ulogic; -- bus error on instruction access + -- cpu data access interface -- + addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- ALU result -> access address + wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- write data + rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- read data + mar_o : out std_ulogic_vector(data_width_c-1 downto 0); -- current memory address register + d_wait_o : out std_ulogic; -- wait for access to complete + -- + excl_state_o : out std_ulogic; -- atomic/exclusive access status + ma_load_o : out std_ulogic; -- misaligned load data address + ma_store_o : out std_ulogic; -- misaligned store data address + be_load_o : out std_ulogic; -- bus error on load data access + be_store_o : out std_ulogic; -- bus error on store data access + -- physical memory protection -- + pmp_addr_i : in pmp_addr_if_t; -- addresses + pmp_ctrl_i : in pmp_ctrl_if_t; -- configs + -- instruction bus -- + i_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + i_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + i_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + i_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + i_bus_we_o : out std_ulogic; -- write enable + i_bus_re_o : out std_ulogic; -- read enable + i_bus_lock_o : out std_ulogic; -- exclusive access request + i_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + i_bus_err_i : in std_ulogic; -- bus transfer error + i_bus_fence_o : out std_ulogic; -- fence operation + -- data bus -- + d_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + d_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + d_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + d_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + d_bus_we_o : out std_ulogic; -- write enable + d_bus_re_o : out std_ulogic; -- read enable + d_bus_lock_o : out std_ulogic; -- exclusive access request + d_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + d_bus_err_i : in std_ulogic; -- bus transfer error + d_bus_fence_o : out std_ulogic -- fence operation + ); + end component; + + -- Component: Bus Keeper ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + component neorv32_bus_keeper is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset, low-active, async + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + err_o : out std_ulogic; -- transfer error + -- bus monitoring -- + bus_addr_i : in std_ulogic_vector(31 downto 0); -- address + bus_rden_i : in std_ulogic; -- read enable + bus_wren_i : in std_ulogic; -- write enable + bus_ack_i : in std_ulogic; -- transfer acknowledge from bus system + bus_err_i : in std_ulogic; -- transfer error from bus system + bus_tmo_i : in std_ulogic; -- transfer timeout (external interface) + bus_ext_i : in std_ulogic -- external bus access + ); + end component; + + -- Component: CPU Instruction Cache ------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_icache + generic ( + ICACHE_NUM_BLOCKS : natural; -- number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural; -- block size in bytes (min 4), has to be a power of 2 + ICACHE_NUM_SETS : natural -- associativity / number of sets (1=direct_mapped), has to be a power of 2 + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + clear_i : in std_ulogic; -- cache clear + -- host controller interface -- + host_addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + host_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + host_wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + host_ben_i : in std_ulogic_vector(03 downto 0); -- byte enable + host_we_i : in std_ulogic; -- write enable + host_re_i : in std_ulogic; -- read enable + host_ack_o : out std_ulogic; -- bus transfer acknowledge + host_err_o : out std_ulogic; -- bus transfer error + -- peripheral bus interface -- + bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + bus_we_o : out std_ulogic; -- write enable + bus_re_o : out std_ulogic; -- read enable + bus_ack_i : in std_ulogic; -- bus transfer acknowledge + bus_err_i : in std_ulogic -- bus transfer error + ); + end component; + + -- Component: CPU Bus Switch -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_busswitch + generic ( + PORT_CA_READ_ONLY : boolean; -- set if controller port A is read-only + PORT_CB_READ_ONLY : boolean -- set if controller port B is read-only + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + -- controller interface a -- + ca_bus_addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + ca_bus_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + ca_bus_wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + ca_bus_ben_i : in std_ulogic_vector(03 downto 0); -- byte enable + ca_bus_we_i : in std_ulogic; -- write enable + ca_bus_re_i : in std_ulogic; -- read enable + ca_bus_lock_i : in std_ulogic; -- exclusive access request + ca_bus_ack_o : out std_ulogic; -- bus transfer acknowledge + ca_bus_err_o : out std_ulogic; -- bus transfer error + -- controller interface b -- + cb_bus_addr_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + cb_bus_rdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + cb_bus_wdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + cb_bus_ben_i : in std_ulogic_vector(03 downto 0); -- byte enable + cb_bus_we_i : in std_ulogic; -- write enable + cb_bus_re_i : in std_ulogic; -- read enable + cb_bus_lock_i : in std_ulogic; -- exclusive access request + cb_bus_ack_o : out std_ulogic; -- bus transfer acknowledge + cb_bus_err_o : out std_ulogic; -- bus transfer error + -- peripheral bus -- + p_bus_src_o : out std_ulogic; -- access source: 0 = A, 1 = B + p_bus_addr_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + p_bus_rdata_i : in std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + p_bus_wdata_o : out std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + p_bus_ben_o : out std_ulogic_vector(03 downto 0); -- byte enable + p_bus_we_o : out std_ulogic; -- write enable + p_bus_re_o : out std_ulogic; -- read enable + p_bus_lock_o : out std_ulogic; -- exclusive access request + p_bus_ack_i : in std_ulogic; -- bus transfer acknowledge + p_bus_err_i : in std_ulogic -- bus transfer error + ); + end component; + + -- Component: CPU Compressed Instructions Decompressor ------------------------------------ + -- ------------------------------------------------------------------------------------------- + component neorv32_cpu_decompressor + port ( + -- instruction input -- + ci_instr16_i : in std_ulogic_vector(15 downto 0); -- compressed instruction input + -- instruction output -- + ci_illegal_o : out std_ulogic; -- is an illegal compressed instruction + ci_instr32_o : out std_ulogic_vector(31 downto 0) -- 32-bit decompressed instruction + ); + end component; + + -- Component: Processor-internal instruction memory (IMEM) -------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_imem + generic ( + IMEM_BASE : std_ulogic_vector(31 downto 0); -- memory base address + IMEM_SIZE : natural; -- processor-internal instruction memory size in bytes + IMEM_AS_IROM : boolean -- implement IMEM as pre-initialized read-only memory? + ); + port ( + clk_i : in std_ulogic; -- global clock line + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + ben_i : in std_ulogic_vector(03 downto 0); -- byte write enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); + end component; + + -- Component: Processor-internal data memory (DMEM) --------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_dmem + generic ( + DMEM_BASE : std_ulogic_vector(31 downto 0); -- memory base address + DMEM_SIZE : natural -- processor-internal instruction memory size in bytes + ); + port ( + clk_i : in std_ulogic; -- global clock line + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + ben_i : in std_ulogic_vector(03 downto 0); -- byte write enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); + end component; + + -- Component: Processor-internal bootloader ROM (BOOTROM) --------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_boot_rom + generic ( + BOOTROM_BASE : std_ulogic_vector(31 downto 0) -- boot ROM base address + ); + port ( + clk_i : in std_ulogic; -- global clock line + rden_i : in std_ulogic; -- read enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); + end component; + + -- Component: Machine System Timer (mtime) ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + component neorv32_mtime + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- time output for CPU -- + time_o : out std_ulogic_vector(63 downto 0); -- current system time + -- interrupt -- + irq_o : out std_ulogic -- interrupt request + ); + end component; + + -- Component: General Purpose Input/Output Port (GPIO) ------------------------------------ + -- ------------------------------------------------------------------------------------------- + component neorv32_gpio + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- parallel io -- + gpio_o : out std_ulogic_vector(63 downto 0); + gpio_i : in std_ulogic_vector(63 downto 0) + ); + end component; + + -- Component: Watchdog Timer (WDT) -------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_wdt + generic ( + DEBUG_EN : boolean -- CPU debug mode implemented? + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + addr_i : in std_ulogic_vector(31 downto 0); -- address + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- CPU in debug mode? -- + cpu_debug_i : in std_ulogic; + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- timeout event -- + irq_o : out std_ulogic; -- timeout IRQ + rstn_o : out std_ulogic -- timeout reset, low_active, use it as async! + ); + end component; + + -- Component: Universal Asynchronous Receiver and Transmitter (UART) ---------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_uart + generic ( + UART_PRIMARY : boolean; -- true = primary UART (UART0), false = secondary UART (UART1) + UART_RX_FIFO : natural; -- RX fifo depth, has to be a power of two, min 1 + UART_TX_FIFO : natural -- TX fifo depth, has to be a power of two, min 1 + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- com lines -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- hardware flow control -- + uart_rts_o : out std_ulogic; -- UART.RX ready to receive ("RTR"), low-active, optional + uart_cts_i : in std_ulogic; -- UART.TX allowed to transmit, low-active, optional + -- interrupts -- + irq_rxd_o : out std_ulogic; -- uart data received interrupt + irq_txd_o : out std_ulogic -- uart transmission done interrupt + ); + end component; + + -- Component: Serial Peripheral Interface (SPI) ------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_spi + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- com lines -- + spi_sck_o : out std_ulogic; -- SPI serial clock + spi_sdo_o : out std_ulogic; -- controller data out, peripheral data in + spi_sdi_i : in std_ulogic; -- controller data in, peripheral data out + spi_csn_o : out std_ulogic_vector(07 downto 0); -- SPI CS + -- interrupt -- + irq_o : out std_ulogic -- transmission done interrupt + ); + end component; + + -- Component: Two-Wire Interface (TWI) ---------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_twi + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- com lines -- + twi_sda_io : inout std_logic; -- serial data line + twi_scl_io : inout std_logic; -- serial clock line + -- interrupt -- + irq_o : out std_ulogic -- transfer done IRQ + ); + end component; + + -- Component: Pulse-Width Modulation Controller (PWM) ------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_pwm + generic ( + NUM_CHANNELS : natural -- number of PWM channels (0..60) + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- pwm output channels -- + pwm_o : out std_ulogic_vector(NUM_CHANNELS-1 downto 0) + ); + end component; + + -- Component: True Random Number Generator (TRNG) ----------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_trng + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); + end component; + + -- Component: Wishbone Bus Gateway (WISHBONE) --------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_wishbone + generic ( + -- Internal instruction memory -- + MEM_INT_IMEM_EN : boolean; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural; -- size of processor-internal instruction memory in bytes + -- Internal data memory -- + MEM_INT_DMEM_EN : boolean; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural; -- size of processor-internal data memory in bytes + -- Interface Configuration -- + BUS_TIMEOUT : natural; -- cycles after an UNACKNOWLEDGED bus access triggers a bus fault exception + PIPE_MODE : boolean; -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + BIG_ENDIAN : boolean; -- byte order: true=big-endian, false=little-endian + ASYNC_RX : boolean -- use register buffer for RX data when false + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + -- host access -- + src_i : in std_ulogic; -- access type (0: data, 1:instruction) + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + ben_i : in std_ulogic_vector(03 downto 0); -- byte write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + lock_i : in std_ulogic; -- exclusive access request + ack_o : out std_ulogic; -- transfer acknowledge + err_o : out std_ulogic; -- transfer error + tmo_o : out std_ulogic; -- transfer timeout + priv_i : in std_ulogic_vector(01 downto 0); -- current CPU privilege level + ext_o : out std_ulogic; -- active external access + -- wishbone interface -- + wb_tag_o : out std_ulogic_vector(02 downto 0); -- request tag + wb_adr_o : out std_ulogic_vector(31 downto 0); -- address + wb_dat_i : in std_ulogic_vector(31 downto 0); -- read data + wb_dat_o : out std_ulogic_vector(31 downto 0); -- write data + wb_we_o : out std_ulogic; -- read/write + wb_sel_o : out std_ulogic_vector(03 downto 0); -- byte enable + wb_stb_o : out std_ulogic; -- strobe + wb_cyc_o : out std_ulogic; -- valid cycle + wb_lock_o : out std_ulogic; -- exclusive access request + wb_ack_i : in std_ulogic; -- transfer acknowledge + wb_err_i : in std_ulogic -- transfer error + ); + end component; + + -- Component: Custom Functions Subsystem (CFS) -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_cfs + generic ( + CFS_CONFIG : std_ulogic_vector(31 downto 0); -- custom CFS configuration generic + CFS_IN_SIZE : positive; -- size of CFS input conduit in bits + CFS_OUT_SIZE : positive -- size of CFS output conduit in bits + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active, use as async + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- word write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + err_o : out std_ulogic; -- transfer error + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); -- "clock" inputs + -- interrupt -- + irq_o : out std_ulogic; -- interrupt request + -- custom io (conduit) -- + cfs_in_i : in std_ulogic_vector(CFS_IN_SIZE-1 downto 0); -- custom inputs + cfs_out_o : out std_ulogic_vector(CFS_OUT_SIZE-1 downto 0) -- custom outputs + ); + end component; + + -- Component: Smart LED (WS2811/WS2812) Interface (NEOLED) -------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_neoled + generic ( + FIFO_DEPTH : natural -- TX FIFO depth (1..32k, power of two) + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- interrupt -- + irq_o : out std_ulogic; -- interrupt request + -- NEOLED output -- + neoled_o : out std_ulogic -- serial async data line + ); + end component; + + -- Component: Stream Link Interface (SLINK) ----------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_slink + generic ( + SLINK_NUM_TX : natural; -- number of TX links (0..8) + SLINK_NUM_RX : natural; -- number of TX links (0..8) + SLINK_TX_FIFO : natural; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural -- RX fifo depth, has to be a power of two + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- interrupt -- + irq_tx_o : out std_ulogic; -- transmission done + irq_rx_o : out std_ulogic; -- data received + -- TX stream interfaces -- + slink_tx_dat_o : out sdata_8x32_t; -- output data + slink_tx_val_o : out std_ulogic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_ulogic_vector(7 downto 0); -- ready to send + -- RX stream interfaces -- + slink_rx_dat_i : in sdata_8x32_t; -- input data + slink_rx_val_i : in std_ulogic_vector(7 downto 0); -- valid input + slink_rx_rdy_o : out std_ulogic_vector(7 downto 0) -- ready to receive + ); + end component; + + -- Component: External Interrupt Controller (XIRQ) ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_xirq + generic ( + XIRQ_NUM_CH : natural; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_ulogic_vector(31 downto 0); -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_ulogic_vector(31 downto 0) -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- external interrupt lines -- + xirq_i : in std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + -- CPU interrupt -- + cpu_irq_o : out std_ulogic + ); + end component; + + -- Component: General Purpose Timer (GPTMR) ----------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_gptmr + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- interrupt -- + irq_o : out std_ulogic -- transmission done interrupt + ); + end component; + + -- Component: System Configuration Information Memory (SYSINFO) --------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_sysinfo + generic ( + -- General -- + CLOCK_FREQUENCY : natural; -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN : boolean; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG : boolean; -- implement CPU debug mode? + -- Extension Options -- + FAST_MUL_EN : boolean; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural; -- total width of CPU cycle and instret counters (0..64) + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural; -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural; -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN : boolean; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural; -- i-cache: number of blocks (min 2), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural; -- i-cache: associativity (min 1), has to be a power 2 + -- External memory interface -- + MEM_EXT_EN : boolean; -- implement external memory bus interface? + MEM_EXT_BIG_ENDIAN : boolean; -- byte order: true=big-endian, false=little-endian + -- On-Chip Debugger -- + ON_CHIP_DEBUGGER_EN : boolean; -- implement OCD? + -- Processor peripherals -- + IO_GPIO_EN : boolean; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN : boolean; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN : boolean; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural; -- number of PWM channels to implement + IO_WDT_EN : boolean; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean; -- implement custom functions subsystem (CFS)? + IO_SLINK_EN : boolean; -- implement stream link interface? + IO_NEOLED_EN : boolean; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_XIRQ_NUM_CH : natural; -- number of external interrupt (XIRQ) channels to implement + IO_GPTMR_EN : boolean -- implement general purpose timer (GPTMR)? + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); + end component; + + -- Component: General Purpose FIFO -------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_fifo + generic ( + FIFO_DEPTH : natural; -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH : natural; -- size of data elements in fifo + FIFO_RSYNC : boolean; -- false = async read; true = sync read + FIFO_SAFE : boolean -- true = allow read/write only if entry available + ); + port ( + -- control -- + clk_i : in std_ulogic; -- clock, rising edge + rstn_i : in std_ulogic; -- async reset, low-active + clear_i : in std_ulogic; -- sync reset, high-active + level_o : out std_ulogic_vector(index_size_f(FIFO_DEPTH) downto 0); -- fill level + half_o : out std_ulogic; -- FIFO is at least half full + -- write port -- + wdata_i : in std_ulogic_vector(FIFO_WIDTH-1 downto 0); -- write data + we_i : in std_ulogic; -- write enable + free_o : out std_ulogic; -- at least one entry is free when set + -- read port -- + re_i : in std_ulogic; -- read enable + rdata_o : out std_ulogic_vector(FIFO_WIDTH-1 downto 0); -- read data + avail_o : out std_ulogic -- data available when set + ); + end component; + + -- Component: On-Chip Debugger - Debug Module (DM) ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_debug_dm + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + -- debug module interface (DMI) -- + dmi_rstn_i : in std_ulogic; + dmi_req_valid_i : in std_ulogic; + dmi_req_ready_o : out std_ulogic; -- DMI is allowed to make new requests when set + dmi_req_addr_i : in std_ulogic_vector(06 downto 0); + dmi_req_op_i : in std_ulogic; -- 0=read, 1=write + dmi_req_data_i : in std_ulogic_vector(31 downto 0); + dmi_resp_valid_o : out std_ulogic; -- response valid when set + dmi_resp_ready_i : in std_ulogic; -- ready to receive respond + dmi_resp_data_o : out std_ulogic_vector(31 downto 0); + dmi_resp_err_o : out std_ulogic; -- 0=ok, 1=error + -- CPU bus access -- + cpu_addr_i : in std_ulogic_vector(31 downto 0); -- address + cpu_rden_i : in std_ulogic; -- read enable + cpu_wren_i : in std_ulogic; -- write enable + cpu_data_i : in std_ulogic_vector(31 downto 0); -- data in + cpu_data_o : out std_ulogic_vector(31 downto 0); -- data out + cpu_ack_o : out std_ulogic; -- transfer acknowledge + -- CPU control -- + cpu_ndmrstn_o : out std_ulogic; -- soc reset + cpu_halt_req_o : out std_ulogic -- request hart to halt (enter debug mode) + ); + end component; + + -- Component: On-Chip Debugger - Debug Transport Module (DTM) ----------------------------- + -- ------------------------------------------------------------------------------------------- + component neorv32_debug_dtm + generic ( + IDCODE_VERSION : std_ulogic_vector(03 downto 0); -- version + IDCODE_PARTID : std_ulogic_vector(15 downto 0); -- part number + IDCODE_MANID : std_ulogic_vector(10 downto 0) -- manufacturer id + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + -- jtag connection -- + jtag_trst_i : in std_ulogic; + jtag_tck_i : in std_ulogic; + jtag_tdi_i : in std_ulogic; + jtag_tdo_o : out std_ulogic; + jtag_tms_i : in std_ulogic; + -- debug module interface (DMI) -- + dmi_rstn_o : out std_ulogic; + dmi_req_valid_o : out std_ulogic; + dmi_req_ready_i : in std_ulogic; -- DMI is allowed to make new requests when set + dmi_req_addr_o : out std_ulogic_vector(06 downto 0); + dmi_req_op_o : out std_ulogic; -- 0=read, 1=write + dmi_req_data_o : out std_ulogic_vector(31 downto 0); + dmi_resp_valid_i : in std_ulogic; -- response valid when set + dmi_resp_ready_o : out std_ulogic; -- ready to receive respond + dmi_resp_data_i : in std_ulogic_vector(31 downto 0); + dmi_resp_err_i : in std_ulogic -- 0=ok, 1=error + ); + end component; + +end neorv32_package; + +package body neorv32_package is + + -- Function: Minimal required number of bits to represent numbers ----------------- + -- ------------------------------------------------------------------------------------------- + function index_size_f(input : natural) return natural is + begin + for i in 0 to natural'high loop + if (2**i >= input) then + return i; + end if; + end loop; -- i + return 0; + end function index_size_f; + + -- Function: Conditional select natural --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function cond_sel_natural_f(cond : boolean; val_t : natural; val_f : natural) return natural is + begin + if (cond = true) then + return val_t; + else + return val_f; + end if; + end function cond_sel_natural_f; + + -- Function: Conditional select integer --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function cond_sel_int_f(cond : boolean; val_t : integer; val_f : integer) return integer is + begin + if (cond = true) then + return val_t; + else + return val_f; + end if; + end function cond_sel_int_f; + + -- Function: Conditional select std_ulogic_vector ----------------------------------------- + -- ------------------------------------------------------------------------------------------- + function cond_sel_stdulogicvector_f(cond : boolean; val_t : std_ulogic_vector; val_f : std_ulogic_vector) return std_ulogic_vector is + begin + if (cond = true) then + return val_t; + else + return val_f; + end if; + end function cond_sel_stdulogicvector_f; + + -- Function: Conditional select std_ulogic ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + function cond_sel_stdulogic_f(cond : boolean; val_t : std_ulogic; val_f : std_ulogic) return std_ulogic is + begin + if (cond = true) then + return val_t; + else + return val_f; + end if; + end function cond_sel_stdulogic_f; + + -- Function: Conditional select string ---------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function cond_sel_string_f(cond : boolean; val_t : string; val_f : string) return string is + begin + if (cond = true) then + return val_t; + else + return val_f; + end if; + end function cond_sel_string_f; + + -- Function: Convert bool to std_ulogic --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function bool_to_ulogic_f(cond : boolean) return std_ulogic is + begin + if (cond = true) then + return '1'; + else + return '0'; + end if; + end function bool_to_ulogic_f; + + -- Function: OR-reduce all bits ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function or_reduce_f(a : std_ulogic_vector) return std_ulogic is + variable tmp_v : std_ulogic; + begin + tmp_v := '0'; + for i in a'range loop + tmp_v := tmp_v or a(i); + end loop; -- i + return tmp_v; + end function or_reduce_f; + + -- Function: AND-reduce all bits ---------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function and_reduce_f(a : std_ulogic_vector) return std_ulogic is + variable tmp_v : std_ulogic; + begin + tmp_v := '1'; + for i in a'range loop + tmp_v := tmp_v and a(i); + end loop; -- i + return tmp_v; + end function and_reduce_f; + + -- Function: XOR-reduce all bits ---------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function xor_reduce_f(a : std_ulogic_vector) return std_ulogic is + variable tmp_v : std_ulogic; + begin + tmp_v := '0'; + for i in a'range loop + tmp_v := tmp_v xor a(i); + end loop; -- i + return tmp_v; + end function xor_reduce_f; + + -- Function: Convert std_ulogic_vector to hex char ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + function to_hexchar_f(input : std_ulogic_vector(3 downto 0)) return character is + variable output_v : character; + begin + case input is + when x"0" => output_v := '0'; + when x"1" => output_v := '1'; + when x"2" => output_v := '2'; + when x"3" => output_v := '3'; + when x"4" => output_v := '4'; + when x"5" => output_v := '5'; + when x"6" => output_v := '6'; + when x"7" => output_v := '7'; + when x"8" => output_v := '8'; + when x"9" => output_v := '9'; + when x"a" => output_v := 'a'; + when x"b" => output_v := 'b'; + when x"c" => output_v := 'c'; + when x"d" => output_v := 'd'; + when x"e" => output_v := 'e'; + when x"f" => output_v := 'f'; + when others => output_v := '?'; + end case; + return output_v; + end function to_hexchar_f; + + -- Function: Convert hex char to std_ulogic_vector ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + function hexchar_to_stdulogicvector_f(input : character) return std_ulogic_vector is + variable hex_value_v : std_ulogic_vector(3 downto 0); + begin + case input is + when '0' => hex_value_v := x"0"; + when '1' => hex_value_v := x"1"; + when '2' => hex_value_v := x"2"; + when '3' => hex_value_v := x"3"; + when '4' => hex_value_v := x"4"; + when '5' => hex_value_v := x"5"; + when '6' => hex_value_v := x"6"; + when '7' => hex_value_v := x"7"; + when '8' => hex_value_v := x"8"; + when '9' => hex_value_v := x"9"; + when 'a' | 'A' => hex_value_v := x"a"; + when 'b' | 'B' => hex_value_v := x"b"; + when 'c' | 'C' => hex_value_v := x"c"; + when 'd' | 'D' => hex_value_v := x"d"; + when 'e' | 'E' => hex_value_v := x"e"; + when 'f' | 'F' => hex_value_v := x"f"; + when others => hex_value_v := (others => 'X'); + end case; + return hex_value_v; + end function hexchar_to_stdulogicvector_f; + + -- Function: Bit reversal ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function bit_rev_f(input : std_ulogic_vector) return std_ulogic_vector is + variable output_v : std_ulogic_vector(input'range); + begin + for i in 0 to input'length-1 loop + output_v(input'length-i-1) := input(i); + end loop; -- i + return output_v; + end function bit_rev_f; + + -- Function: Test if input number is a power of two --------------------------------------- + -- ------------------------------------------------------------------------------------------- + function is_power_of_two_f(input : natural) return boolean is + begin + if (input = 1) then -- 2^0 + return true; + elsif ((input / 2) /= 0) and ((input mod 2) = 0) then + return true; + else + return false; + end if; + end function is_power_of_two_f; + + -- Function: Swap all bytes of a 32-bit word (endianness conversion) ---------------------- + -- ------------------------------------------------------------------------------------------- + function bswap32_f(input : std_ulogic_vector) return std_ulogic_vector is + variable output_v : std_ulogic_vector(input'range); + begin + output_v(07 downto 00) := input(31 downto 24); + output_v(15 downto 08) := input(23 downto 16); + output_v(23 downto 16) := input(15 downto 08); + output_v(31 downto 24) := input(07 downto 00); + return output_v; + end function bswap32_f; + + -- Function: Convert char to lowercase ---------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function char_to_lower_f(ch : character) return character is + variable res: character; + begin + case ch is + when 'A' => res := 'a'; + when 'B' => res := 'b'; + when 'C' => res := 'c'; + when 'D' => res := 'd'; + when 'E' => res := 'e'; + when 'F' => res := 'f'; + when 'G' => res := 'g'; + when 'H' => res := 'h'; + when 'I' => res := 'i'; + when 'J' => res := 'j'; + when 'K' => res := 'k'; + when 'L' => res := 'l'; + when 'M' => res := 'm'; + when 'N' => res := 'n'; + when 'O' => res := 'o'; + when 'P' => res := 'p'; + when 'Q' => res := 'q'; + when 'R' => res := 'r'; + when 'S' => res := 's'; + when 'T' => res := 't'; + when 'U' => res := 'u'; + when 'V' => res := 'v'; + when 'W' => res := 'w'; + when 'X' => res := 'x'; + when 'Y' => res := 'y'; + when 'Z' => res := 'z'; + when others => res := ch; + end case; + return res; + end function char_to_lower_f; + + -- Function: Compare strings (convert to lower case, check lengths) ----------------------- + -- ------------------------------------------------------------------------------------------- + function str_equal_f(str0 : string; str1 : string) return boolean is + variable tmp0_v : string(str0'range); + variable tmp1_v : string(str1'range); + begin + if (str0'length /= str1'length) then -- equal length? + return false; + else + -- convert to lower case -- + for i in str0'range loop + tmp0_v(i) := char_to_lower_f(str0(i)); + end loop; + for i in str1'range loop + tmp1_v(i) := char_to_lower_f(str1(i)); + end loop; + -- compare lowercase strings -- + if (tmp0_v = tmp1_v) then + return true; + else + return false; + end if; + end if; + end function str_equal_f; + + -- Function: Population count (number of set bits) ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + function popcount_f(input : std_ulogic_vector) return natural is + variable cnt_v : natural range 0 to input'length; + begin + cnt_v := 0; + for i in input'length-1 downto 0 loop + if (input(i) = '1') then + cnt_v := cnt_v + 1; + end if; + end loop; -- i + return cnt_v; + end function popcount_f; + + -- Function: Count leading zeros ---------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + function leading_zeros_f(input : std_ulogic_vector) return natural is + variable cnt_v : natural range 0 to input'length; + begin + cnt_v := 0; + for i in input'length-1 downto 0 loop + if (input(i) = '0') then + cnt_v := cnt_v + 1; + else + exit; + end if; + end loop; -- i + return cnt_v; + end function leading_zeros_f; + + -- Function: Initialize mem32_t array from another mem32_t array -------------------------- + -- ------------------------------------------------------------------------------------------- + -- impure function: returns NOT the same result every time it is evaluated with the same arguments since the source file might have changed + impure function mem32_init_f(init : mem32_t; depth : natural) return mem32_t is + variable mem_v : mem32_t(0 to depth-1); + begin + mem_v := (others => (others => '0')); -- make sure remaining memory entries are set to zero + if (init'length > depth) then + return mem_v; + end if; + for idx_v in 0 to init'length-1 loop -- init only in range of source data array + mem_v(idx_v) := init(idx_v); + end loop; -- idx_v + return mem_v; + end function mem32_init_f; + + +end neorv32_package; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_pwm.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_pwm.vhd new file mode 100644 index 0000000..f9813ab --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_pwm.vhd @@ -0,0 +1,200 @@ +-- ################################################################################################# +-- # << NEORV32 - Pulse Width Modulation Controller (PWM) >> # +-- # ********************************************************************************************* # +-- # Simple PWM controller with 8 bit resolution for the duty cycle and programmable base # +-- # frequency. The controller supports up to 60 PWM channels. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_pwm is + generic ( + NUM_CHANNELS : natural -- number of PWM channels (0..60) + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- pwm output channels -- + pwm_o : out std_ulogic_vector(NUM_CHANNELS-1 downto 0) + ); +end neorv32_pwm; + +architecture neorv32_pwm_rtl of neorv32_pwm is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(pwm_size_c); -- low address boundary bit + + -- Control register bits -- + constant ctrl_enable_c : natural := 0; -- r/w: PWM enable + constant ctrl_prsc0_bit_c : natural := 1; -- r/w: prescaler select bit 0 + constant ctrl_prsc1_bit_c : natural := 2; -- r/w: prescaler select bit 1 + constant ctrl_prsc2_bit_c : natural := 3; -- r/w: prescaler select bit 2 + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- write enable + signal rden : std_ulogic; -- read enable + + -- accessible regs -- + type pwm_ch_t is array (0 to NUM_CHANNELS-1) of std_ulogic_vector(7 downto 0); + signal pwm_ch : pwm_ch_t; -- duty cycle (r/w) + signal enable : std_ulogic; -- enable unit (r/w) + signal prsc : std_ulogic_vector(2 downto 0); -- clock prescaler (r/w) + + type pwm_ch_rd_t is array (0 to 60-1) of std_ulogic_vector(7 downto 0); + signal pwm_ch_rd : pwm_ch_rd_t; -- duty cycle read-back + + -- prescaler clock generator -- + signal prsc_tick : std_ulogic; + + -- pwm core counter -- + signal pwm_cnt : std_ulogic_vector(7 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (NUM_CHANNELS > 60) report "NEORV32 PROCESSOR CONFIG ERROR! invalid number of channels! Has to be 0..60.!" severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = pwm_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= pwm_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + rden <= acc_en and rden_i; + wren <= acc_en and wren_i; + + + -- Write access --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + wr_access: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= rden or wren; + + -- write access -- + if (wren = '1') then + -- control register -- + if (addr = pwm_ctrl_addr_c) then + enable <= data_i(ctrl_enable_c); + prsc <= data_i(ctrl_prsc2_bit_c downto ctrl_prsc0_bit_c); + end if; + -- duty cycle registers -- + for i in 0 to NUM_CHANNELS-1 loop -- channel loop + if (addr(5 downto 2) = std_ulogic_vector(to_unsigned((i/4)+1, 4))) then -- 4 channels per register; add ctrl reg offset + pwm_ch(i) <= data_i((i mod 4)*8+7 downto (i mod 4)*8+0); + end if; + end loop; + end if; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + case addr(5 downto 2) is + when x"0" => data_o(ctrl_enable_c) <= enable; data_o(ctrl_prsc2_bit_c downto ctrl_prsc0_bit_c) <= prsc; + when x"1" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(3) & pwm_ch_rd(2) & pwm_ch_rd(1) & pwm_ch_rd(0); else NULL; end if; + when x"2" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(7) & pwm_ch_rd(6) & pwm_ch_rd(5) & pwm_ch_rd(4); else NULL; end if; + when x"3" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(11) & pwm_ch_rd(10) & pwm_ch_rd(9) & pwm_ch_rd(8); else NULL; end if; + when x"4" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(15) & pwm_ch_rd(14) & pwm_ch_rd(13) & pwm_ch_rd(12); else NULL; end if; + when x"5" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(19) & pwm_ch_rd(18) & pwm_ch_rd(17) & pwm_ch_rd(16); else NULL; end if; + when x"6" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(23) & pwm_ch_rd(22) & pwm_ch_rd(21) & pwm_ch_rd(20); else NULL; end if; + when x"7" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(27) & pwm_ch_rd(26) & pwm_ch_rd(25) & pwm_ch_rd(24); else NULL; end if; + when x"8" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(31) & pwm_ch_rd(30) & pwm_ch_rd(29) & pwm_ch_rd(28); else NULL; end if; + when x"9" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(35) & pwm_ch_rd(34) & pwm_ch_rd(33) & pwm_ch_rd(32); else NULL; end if; + when x"a" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(39) & pwm_ch_rd(38) & pwm_ch_rd(37) & pwm_ch_rd(36); else NULL; end if; + when x"b" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(43) & pwm_ch_rd(42) & pwm_ch_rd(41) & pwm_ch_rd(40); else NULL; end if; + when x"c" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(47) & pwm_ch_rd(46) & pwm_ch_rd(45) & pwm_ch_rd(44); else NULL; end if; + when x"d" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(51) & pwm_ch_rd(50) & pwm_ch_rd(49) & pwm_ch_rd(48); else NULL; end if; + when x"e" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(55) & pwm_ch_rd(54) & pwm_ch_rd(53) & pwm_ch_rd(52); else NULL; end if; + when x"f" => if (NUM_CHANNELS > 0) then data_o <= pwm_ch_rd(59) & pwm_ch_rd(58) & pwm_ch_rd(57) & pwm_ch_rd(56); else NULL; end if; + when others => NULL; + end case; + end if; + end if; + end process wr_access; + + -- duty cycle read-back -- + pwm_dc_rd_gen: process(pwm_ch) + begin + pwm_ch_rd <= (others => (others => '0')); + for i in 0 to NUM_CHANNELS-1 loop + pwm_ch_rd(i) <= pwm_ch(i); + end loop; + end process pwm_dc_rd_gen; + + -- PWM clock select -- + clkgen_en_o <= enable; -- enable clock generator + prsc_tick <= clkgen_i(to_integer(unsigned(prsc))); + + + -- PWM Core ------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + pwm_core: process(clk_i) + begin + if rising_edge(clk_i) then + -- pwm base counter -- + if (enable = '0') then + pwm_cnt <= (others => '0'); + elsif (prsc_tick = '1') then + pwm_cnt <= std_ulogic_vector(unsigned(pwm_cnt) + 1); + end if; + + -- channels -- + for i in 0 to NUM_CHANNELS-1 loop + if (unsigned(pwm_cnt) >= unsigned(pwm_ch(i))) or (enable = '0') then + pwm_o(i) <= '0'; + else + pwm_o(i) <= '1'; + end if; + end loop; + end if; + end process pwm_core; + + +end neorv32_pwm_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_slink.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_slink.vhd new file mode 100644 index 0000000..af25984 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_slink.vhd @@ -0,0 +1,439 @@ +-- ################################################################################################# +-- # << NEORV32 - Stream Link Interface (SLINK) >> # +-- # ********************************************************************************************* # +-- # Up to 8 input (RX) and up to 8 output (TX) stream links are supported. Each link provides an # +-- # internal FIFO for buffering. Each stream direction provides a global interrupt to indicate # +-- # that a RX link has received new data or that a TX link has finished sending data # +-- # (if FIFO_DEPTH = 1) OR if RX/TX link FIFO has become half full (if FIFO_DEPTH > 1). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_slink is + generic ( + SLINK_NUM_TX : natural; -- number of TX links (0..8) + SLINK_NUM_RX : natural; -- number of TX links (0..8) + SLINK_TX_FIFO : natural; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural -- RX fifo depth, has to be a power of two + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- interrupt -- + irq_tx_o : out std_ulogic; -- transmission done + irq_rx_o : out std_ulogic; -- data received + -- TX stream interfaces -- + slink_tx_dat_o : out sdata_8x32_t; -- output data + slink_tx_val_o : out std_ulogic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_ulogic_vector(7 downto 0); -- ready to send + -- RX stream interfaces -- + slink_rx_dat_i : in sdata_8x32_t; -- input data + slink_rx_val_i : in std_ulogic_vector(7 downto 0); -- valid input + slink_rx_rdy_o : out std_ulogic_vector(7 downto 0) -- ready to receive + ); +end neorv32_slink; + +architecture neorv32_slink_rtl of neorv32_slink is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(slink_size_c); -- low address boundary bit + + -- control register bits -- + constant ctrl_rx_num_lsb_c : natural := 0; -- r/-: number of implemented RX links + constant ctrl_rx_num_msb_c : natural := 3; + -- + constant ctrl_tx_num_lsb_c : natural := 4; -- r/-: number of implemented TX links + constant ctrl_tx_num_msb_c : natural := 7; + -- + constant ctrl_rx_size_lsb_c : natural := 8; -- r/-: log2(RX FIFO size) + constant ctrl_rx_size_msb_c : natural := 11; + -- + constant ctrl_tx_size_lsb_c : natural := 12; -- r/-: log2(TX FIFO size) + constant ctrl_tx_size_msb_c : natural := 15; + -- + constant ctrl_en_c : natural := 31; -- r/w: global enable + + -- interrupt configuration register bits -- + constant irq_rx_en_lsb_c : natural := 0; -- r/w: enable RX interrupt for link 0..7 + constant irq_rx_en_msb_c : natural := 7; + -- + constant irq_rx_mode_lsb_c : natural := 8; -- r/w: RX IRQ mode: 0=FIFO at least half-full; 1=FIFO not empty + constant irq_rx_mode_msb_c : natural := 15; + -- + constant irq_tx_en_lsb_c : natural := 16; -- r/w: enable TX interrupt for link 0..7 + constant irq_tx_en_msb_c : natural := 23; + -- + constant irq_tx_mode_lsb_c : natural := 24; -- r/w: TX IRQ mode: 0=FIFO less than half-full; 1=FIFO not full + constant irq_tx_mode_msb_c : natural := 31; + + -- status register bits -- + constant status_rx_avail_lsb_c : natural := 0; -- r/-: set if RX link 0..7 FIFO is NOT empty + constant status_rx_avail_msb_c : natural := 7; + -- + constant status_tx_free_lsb_c : natural := 8; -- r/-: set if TX link 0..7 FIFO is NOT full + constant status_tx_free_msb_c : natural := 15; + -- + constant status_rx_half_lsb_c : natural := 16; -- r/-: set if RX link 0..7 FIFO fill-level is >= half-full + constant status_rx_half_msb_c : natural := 23; + -- + constant status_tx_half_lsb_c : natural := 24; -- r/-: set if TX link 0..7 FIFO fill-level is > half-full + constant status_tx_half_msb_c : natural := 31; + + -- bus access control -- + signal ack_read : std_ulogic; + signal ack_write : std_ulogic; + signal acc_en : std_ulogic; + signal addr : std_ulogic_vector(31 downto 0); + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- control register -- + signal enable : std_ulogic; -- global enable + + -- IRQ configuration register -- + signal irq_rx_en : std_ulogic_vector(7 downto 0); + signal irq_rx_mode : std_ulogic_vector(7 downto 0); + signal irq_tx_en : std_ulogic_vector(7 downto 0); + signal irq_tx_mode : std_ulogic_vector(7 downto 0); + + -- stream link fifo interface -- + type fifo_data_t is array (0 to 7) of std_ulogic_vector(31 downto 0); + signal rx_fifo_rdata : fifo_data_t; + signal fifo_clear : std_ulogic; + signal link_sel : std_ulogic_vector(7 downto 0); + signal tx_fifo_we : std_ulogic_vector(7 downto 0); + signal rx_fifo_re : std_ulogic_vector(7 downto 0); + signal rx_fifo_avail : std_ulogic_vector(7 downto 0); + signal tx_fifo_free : std_ulogic_vector(7 downto 0); + signal rx_fifo_half : std_ulogic_vector(7 downto 0); + signal tx_fifo_half : std_ulogic_vector(7 downto 0); + + -- interrupt generator -- + type detect_t is array (0 to 7) of std_ulogic_vector(1 downto 0); + type irq_t is record + detect : detect_t; -- rising-edge detector + trigger : std_ulogic_vector(7 downto 0); + set : std_ulogic_vector(7 downto 0); + end record; + signal rx_irq, tx_irq : irq_t; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (is_power_of_two_f(SLINK_TX_FIFO) = false) report "NEORV32 PROCESSOR CONFIG ERROR: SLINK has to be a power of two." severity error; + assert not (SLINK_TX_FIFO > 2**15) report "NEORV32 PROCESSOR CONFIG ERROR: SLINK has to be 1..32768." severity error; + -- + assert not (is_power_of_two_f(SLINK_RX_FIFO) = false) report "NEORV32 PROCESSOR CONFIG ERROR: SLINK has to be a power of two." severity error; + assert not (SLINK_RX_FIFO > 2**15) report "NEORV32 PROCESSOR CONFIG ERROR: SLINK has to be 1..32768." severity error; + -- + assert not (SLINK_NUM_RX > 8) report "NEORV32 PROCESSOR CONFIG ERROR: SLINK has to be 0..8." severity error; + assert not (SLINK_NUM_TX > 8) report "NEORV32 PROCESSOR CONFIG ERROR: SLINK has to be 0..8." severity error; + -- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Implementing " & integer'image(SLINK_NUM_RX) & " RX and " & + integer'image(SLINK_NUM_TX) & " TX stream links." severity note; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = slink_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= slink_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- write access -- + ack_write <= '0'; + if (wren = '1') then + if (addr(5) = '0') then -- control/status/irq + if (addr(4 downto 3) = "00") then -- control register + enable <= data_i(ctrl_en_c); + end if; + if (addr(4 downto 3) = "01") then -- IRQ configuration register + for i in 0 to SLINK_NUM_RX-1 loop + irq_rx_en(i) <= data_i(i + irq_rx_en_lsb_c); + irq_rx_mode(i) <= data_i(i + irq_rx_mode_lsb_c); + end loop; + for i in 0 to SLINK_NUM_TX-1 loop + irq_tx_en(i) <= data_i(i + irq_tx_en_lsb_c); + irq_tx_mode(i) <= data_i(i + irq_tx_mode_lsb_c); + end loop; + end if; + ack_write <= '1'; + else -- TX links + ack_write <= or_reduce_f(link_sel and tx_fifo_free); + end if; + end if; + + -- read access -- + data_o <= (others => '0'); + ack_read <= '0'; + if (rden = '1') then + if (addr(5) = '0') then -- control/status registers + ack_read <= '1'; + case addr(4 downto 3) is + when "00" => -- control register + data_o(ctrl_rx_num_msb_c downto ctrl_rx_num_lsb_c) <= std_ulogic_vector(to_unsigned(SLINK_NUM_RX, 4)); + data_o(ctrl_tx_num_msb_c downto ctrl_tx_num_lsb_c) <= std_ulogic_vector(to_unsigned(SLINK_NUM_TX, 4)); + data_o(ctrl_rx_size_msb_c downto ctrl_rx_size_lsb_c) <= std_ulogic_vector(to_unsigned(index_size_f(SLINK_RX_FIFO), 4)); + data_o(ctrl_tx_size_msb_c downto ctrl_tx_size_lsb_c) <= std_ulogic_vector(to_unsigned(index_size_f(SLINK_TX_FIFO), 4)); + data_o(ctrl_en_c) <= enable; + when "01" => -- IRQ configuration register + for i in 0 to SLINK_NUM_RX-1 loop + data_o(irq_rx_en_lsb_c + i) <= irq_rx_en(i); + data_o(irq_rx_mode_lsb_c + i) <= irq_rx_mode(i) or bool_to_ulogic_f(boolean(SLINK_RX_FIFO = 1)); -- tie to one if SLINK_RX_FIFO is 1 + end loop; + for i in 0 to SLINK_NUM_TX-1 loop + data_o(irq_tx_en_lsb_c + i) <= irq_tx_en(i); + data_o(irq_tx_mode_lsb_c + i) <= irq_tx_mode(i) or bool_to_ulogic_f(boolean(SLINK_TX_FIFO = 1)); -- tie to one if SLINK_TX_FIFO is 1 + end loop; + when "10" | "11" => -- fifo status register + data_o(status_rx_avail_msb_c downto status_rx_avail_lsb_c) <= rx_fifo_avail; + data_o(status_tx_free_msb_c downto status_tx_free_lsb_c) <= tx_fifo_free; + data_o(status_rx_half_msb_c downto status_rx_half_lsb_c) <= rx_fifo_half; + data_o(status_tx_half_msb_c downto status_tx_half_lsb_c) <= tx_fifo_half; + when others => + data_o <= (others => '0'); + end case; + else -- RX links + data_o <= rx_fifo_rdata(to_integer(unsigned(addr(4 downto 2)))); + ack_read <= or_reduce_f(link_sel and rx_fifo_avail); + end if; + end if; + end if; + end process rw_access; + + -- bus access acknowledge -- + ack_o <= ack_write or ack_read; + + -- link fifo reset (sync) -- + fifo_clear <= not enable; + + + -- Interrupt Generator -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- interrupt trigger type / condition -- + irq_type: process(irq_rx_mode, rx_fifo_avail, rx_fifo_half, irq_tx_mode, tx_fifo_free, tx_fifo_half, tx_fifo_we) + begin + -- RX interrupt -- + rx_irq.trigger <= (others => '0'); + for i in 0 to SLINK_NUM_RX-1 loop + if (SLINK_RX_FIFO = 1) or (irq_rx_mode(i) = '0') then + rx_irq.trigger(i) <= rx_fifo_avail(i); -- fire if any RX_FIFO is not empty (= data available) + else + rx_irq.trigger(i) <= rx_fifo_half(i); + end if; + end loop; + -- TX interrupt -- + tx_irq.trigger <= (others => '0'); + for i in 0 to SLINK_NUM_TX-1 loop + if (SLINK_TX_FIFO = 1) or (irq_tx_mode(i) = '0') then + tx_irq.trigger(i) <= tx_fifo_free(i) and tx_fifo_we(i); -- fire if any TX_FIFO is not full (= free buffer space available) + else + tx_irq.trigger(i) <= not tx_fifo_half(i); + end if; + end loop; + end process irq_type; + + -- edge detector - sync -- + irq_edge_detect_sync: process(clk_i) + begin + if rising_edge(clk_i) then + -- RX -- + for i in 0 to SLINK_NUM_RX-1 loop + if (enable = '1') and (irq_rx_en(i) = '1') then + rx_irq.detect(i) <= rx_irq.detect(i)(0) & rx_irq.trigger(i); + else + rx_irq.detect(i) <= "00"; + end if; + end loop; + -- TX -- + for i in 0 to SLINK_NUM_TX-1 loop + if (enable = '1') and (irq_tx_en(i) = '1') then + tx_irq.detect(i) <= tx_irq.detect(i)(0) & tx_irq.trigger(i); + else + tx_irq.detect(i) <= "00"; + end if; + end loop; + end if; + end process irq_edge_detect_sync; + + -- edge detector - sync -- + irq_edge_detect_comb: process(rx_irq, irq_rx_en, tx_irq, irq_tx_en) + begin + -- RX -- + rx_irq.set <= (others => '0'); + for i in 0 to SLINK_NUM_RX-1 loop + if (rx_irq.detect(i) = "01") then -- rising-edge + rx_irq.set(i) <= '1'; + end if; + end loop; + -- TX -- + tx_irq.set <= (others => '0'); + for i in 0 to SLINK_NUM_TX-1 loop + if (tx_irq.detect(i) = "01") then -- rising-edge + tx_irq.set(i) <= '1'; + end if; + end loop; + end process irq_edge_detect_comb; + + -- interrupt arbiter -- + irq_generator: process(clk_i) + begin + if rising_edge(clk_i) then + irq_rx_o <= or_reduce_f(rx_irq.set); + irq_tx_o <= or_reduce_f(tx_irq.set); + end if; + end process irq_generator; + + + -- Link Select ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + link_select: process(addr) + begin + case addr(5 downto 2) is -- MSB = data fifo access at all? + when "1000" => link_sel <= "00000001"; + when "1001" => link_sel <= "00000010"; + when "1010" => link_sel <= "00000100"; + when "1011" => link_sel <= "00001000"; + when "1100" => link_sel <= "00010000"; + when "1101" => link_sel <= "00100000"; + when "1110" => link_sel <= "01000000"; + when "1111" => link_sel <= "10000000"; + when others => link_sel <= "00000000"; + end case; + end process link_select; + + fifo_access_gen: + for i in 0 to 7 generate + tx_fifo_we(i) <= link_sel(i) and wren; + rx_fifo_re(i) <= link_sel(i) and rden; + end generate; + + + -- TX Link FIFOs -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + transmit_fifo_gen: + for i in 0 to SLINK_NUM_TX-1 generate + transmit_fifo_inst: neorv32_fifo + generic map ( + FIFO_DEPTH => SLINK_TX_FIFO, -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH => 32, -- size of data elements in fifo + FIFO_RSYNC => false, -- async read + FIFO_SAFE => true -- safe access + ) + port map ( + -- control -- + clk_i => clk_i, -- clock, rising edge + rstn_i => '1', -- async reset, low-active + clear_i => fifo_clear, -- sync reset, high-active + level_o => open, -- fill level + half_o => tx_fifo_half(i), -- FIFO is at least half full + -- write port -- + wdata_i => data_i, -- write data + we_i => tx_fifo_we(i), -- write enable + free_o => tx_fifo_free(i), -- at least one entry is free when set + -- read port -- + re_i => slink_tx_rdy_i(i), -- read enable + rdata_o => slink_tx_dat_o(i), -- read data + avail_o => slink_tx_val_o(i) -- data available when set + ); + end generate; + + -- terminate unimplemented links -- + transmit_fifo_gen_terminate: + for i in SLINK_NUM_TX to 7 generate + tx_fifo_free(i) <= '0'; + slink_tx_dat_o(i) <= (others => '0'); + slink_tx_val_o(i) <= '0'; + tx_fifo_half(i) <= '0'; + end generate; + + + -- RX Link FIFOs -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + receive_fifo_gen: + for i in 0 to SLINK_NUM_RX-1 generate + receive_fifo_inst: neorv32_fifo + generic map ( + FIFO_DEPTH => SLINK_RX_FIFO, -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH => 32, -- size of data elements in fifo + FIFO_RSYNC => false, -- async read + FIFO_SAFE => true -- safe access + ) + port map ( + -- control -- + clk_i => clk_i, -- clock, rising edge + rstn_i => '1', -- async reset, low-active + clear_i => fifo_clear, -- sync reset, high-active + level_o => open, -- fill level + half_o => rx_fifo_half(i), -- FIFO is at least half full + -- write port -- + wdata_i => slink_rx_dat_i(i), -- write data + we_i => slink_rx_val_i(i), -- write enable + free_o => slink_rx_rdy_o(i), -- at least one entry is free when set + -- read port -- + re_i => rx_fifo_re(i), -- read enable + rdata_o => rx_fifo_rdata(i), -- read data + avail_o => rx_fifo_avail(i) -- data available when set + ); + end generate; + + -- terminate unimplemented links -- + receive_fifo_gen_terminate: + for i in SLINK_NUM_RX to 7 generate + rx_fifo_avail(i) <= '0'; + slink_rx_rdy_o(i) <= '0'; + rx_fifo_rdata(i) <= (others => '0'); + rx_fifo_half(i) <= '0'; + end generate; + + +end neorv32_slink_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_spi.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_spi.vhd new file mode 100644 index 0000000..1f9e4e1 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_spi.vhd @@ -0,0 +1,287 @@ +-- ################################################################################################# +-- # << NEORV32 - Serial Peripheral Interface Controller (SPI) >> # +-- # ********************************************************************************************* # +-- # Frame format: 8/16/24/32-bit receive/transmit data, always MSB first, 2 clock modes, # +-- # 8 pre-scaled clocks (derived from system clock), 8 dedicated chip-select lines (low-active). # +-- # Interrupt: "transfer done" # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_spi is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- com lines -- + spi_sck_o : out std_ulogic; -- SPI serial clock + spi_sdo_o : out std_ulogic; -- controller data out, peripheral data in + spi_sdi_i : in std_ulogic; -- controller data in, peripheral data out + spi_csn_o : out std_ulogic_vector(07 downto 0); -- SPI CS + -- interrupt -- + irq_o : out std_ulogic -- transmission done interrupt + ); +end neorv32_spi; + +architecture neorv32_spi_rtl of neorv32_spi is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(spi_size_c); -- low address boundary bit + + -- control register -- + constant ctrl_cs0_c : natural := 0; -- r/w: spi CS 0 + constant ctrl_cs1_c : natural := 1; -- r/w: spi CS 1 + constant ctrl_cs2_c : natural := 2; -- r/w: spi CS 2 + constant ctrl_cs3_c : natural := 3; -- r/w: spi CS 3 + constant ctrl_cs4_c : natural := 4; -- r/w: spi CS 4 + constant ctrl_cs5_c : natural := 5; -- r/w: spi CS 5 + constant ctrl_cs6_c : natural := 6; -- r/w: spi CS 6 + constant ctrl_cs7_c : natural := 7; -- r/w: spi CS 7 + -- + constant ctrl_en_c : natural := 8; -- r/w: spi enable + constant ctrl_cpha_c : natural := 9; -- r/w: spi clock phase + constant ctrl_prsc0_c : natural := 10; -- r/w: spi prescaler select bit 0 + constant ctrl_prsc1_c : natural := 11; -- r/w: spi prescaler select bit 1 + constant ctrl_prsc2_c : natural := 12; -- r/w: spi prescaler select bit 2 + constant ctrl_size0_c : natural := 13; -- r/w: data size lsb (00: 8-bit, 01: 16-bit) + constant ctrl_size1_c : natural := 14; -- r/w: data size msb (10: 24-bit, 11: 32-bit) + constant ctrl_cpol_c : natural := 15; -- r/w: spi clock polarity + -- + constant ctrl_busy_c : natural := 31; -- r/-: spi transceiver is busy + -- + signal ctrl : std_ulogic_vector(15 downto 0); + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- clock generator -- + signal spi_clk_en : std_ulogic; + + -- spi transceiver -- + type rtx_engine_t is record + state : std_ulogic_vector(02 downto 0); + busy : std_ulogic; + start : std_ulogic; + sreg : std_ulogic_vector(31 downto 0); + bitcnt : std_ulogic_vector(05 downto 0); + bytecnt : std_ulogic_vector(02 downto 0); + sdi_sync : std_ulogic_vector(01 downto 0); + end record; + signal rtx_engine : rtx_engine_t; + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = spi_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= spi_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- bus access acknowledge -- + ack_o <= rden or wren; + + -- write access -- + if (wren = '1') then + if (addr = spi_ctrl_addr_c) then -- control register + ctrl(ctrl_cs0_c) <= data_i(ctrl_cs0_c); + ctrl(ctrl_cs1_c) <= data_i(ctrl_cs1_c); + ctrl(ctrl_cs2_c) <= data_i(ctrl_cs2_c); + ctrl(ctrl_cs3_c) <= data_i(ctrl_cs3_c); + ctrl(ctrl_cs4_c) <= data_i(ctrl_cs4_c); + ctrl(ctrl_cs5_c) <= data_i(ctrl_cs5_c); + ctrl(ctrl_cs6_c) <= data_i(ctrl_cs6_c); + ctrl(ctrl_cs7_c) <= data_i(ctrl_cs7_c); + -- + ctrl(ctrl_en_c) <= data_i(ctrl_en_c); + ctrl(ctrl_cpha_c) <= data_i(ctrl_cpha_c); + ctrl(ctrl_prsc0_c) <= data_i(ctrl_prsc0_c); + ctrl(ctrl_prsc1_c) <= data_i(ctrl_prsc1_c); + ctrl(ctrl_prsc2_c) <= data_i(ctrl_prsc2_c); + ctrl(ctrl_size0_c) <= data_i(ctrl_size0_c); + ctrl(ctrl_size1_c) <= data_i(ctrl_size1_c); + ctrl(ctrl_cpol_c) <= data_i(ctrl_cpol_c); + end if; + end if; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + if (addr = spi_ctrl_addr_c) then -- control register + data_o(ctrl_cs0_c) <= ctrl(ctrl_cs0_c); + data_o(ctrl_cs1_c) <= ctrl(ctrl_cs1_c); + data_o(ctrl_cs2_c) <= ctrl(ctrl_cs2_c); + data_o(ctrl_cs3_c) <= ctrl(ctrl_cs3_c); + data_o(ctrl_cs4_c) <= ctrl(ctrl_cs4_c); + data_o(ctrl_cs5_c) <= ctrl(ctrl_cs5_c); + data_o(ctrl_cs6_c) <= ctrl(ctrl_cs6_c); + data_o(ctrl_cs7_c) <= ctrl(ctrl_cs7_c); + -- + data_o(ctrl_en_c) <= ctrl(ctrl_en_c); + data_o(ctrl_cpha_c) <= ctrl(ctrl_cpha_c); + data_o(ctrl_prsc0_c) <= ctrl(ctrl_prsc0_c); + data_o(ctrl_prsc1_c) <= ctrl(ctrl_prsc1_c); + data_o(ctrl_prsc2_c) <= ctrl(ctrl_prsc2_c); + data_o(ctrl_size0_c) <= ctrl(ctrl_size0_c); + data_o(ctrl_size1_c) <= ctrl(ctrl_size1_c); + data_o(ctrl_cpol_c) <= ctrl(ctrl_cpol_c); + -- + data_o(ctrl_busy_c) <= rtx_engine.busy; + else -- data register (spi_rtx_addr_c) + data_o <= rtx_engine.sreg; + end if; + end if; + end if; + end process rw_access; + + -- direct chip-select (CS), output is low-active -- + spi_csn_o(7 downto 0) <= not ctrl(ctrl_cs7_c downto ctrl_cs0_c); + + -- trigger new SPI transmission -- + rtx_engine.start <= '1' when (wren = '1') and (addr = spi_rtx_addr_c) else '0'; + + + -- Clock Selection ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + clkgen_en_o <= ctrl(ctrl_en_c); -- clock generator enable + spi_clk_en <= clkgen_i(to_integer(unsigned(ctrl(ctrl_prsc2_c downto ctrl_prsc0_c)))); -- clock select + + + -- Transmission Data Size ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + data_size: process(ctrl) + begin + case ctrl(ctrl_size1_c downto ctrl_size0_c) is + when "00" => rtx_engine.bytecnt <= "001"; -- 1-byte mode + when "01" => rtx_engine.bytecnt <= "010"; -- 2-byte mode + when "10" => rtx_engine.bytecnt <= "011"; -- 3-byte mode + when others => rtx_engine.bytecnt <= "100"; -- 4-byte mode + end case; + end process data_size; + + + -- SPI Transceiver ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + spi_rtx_unit: process(clk_i) + begin + if rising_edge(clk_i) then + -- input (sdi) synchronizer -- + rtx_engine.sdi_sync <= rtx_engine.sdi_sync(0) & spi_sdi_i; + + -- output (sdo) buffer -- + case ctrl(ctrl_size1_c downto ctrl_size0_c) is + when "00" => spi_sdo_o <= rtx_engine.sreg(07); -- 8-bit mode + when "01" => spi_sdo_o <= rtx_engine.sreg(15); -- 16-bit mode + when "10" => spi_sdo_o <= rtx_engine.sreg(23); -- 24-bit mode + when others => spi_sdo_o <= rtx_engine.sreg(31); -- 32-bit mode + end case; + + -- defaults -- + spi_sck_o <= ctrl(ctrl_cpol_c); + irq_o <= '0'; + + -- serial engine -- + rtx_engine.state(2) <= ctrl(ctrl_en_c); + case rtx_engine.state is + + when "100" => -- enabled but idle, waiting for new transmission trigger + -- ------------------------------------------------------------ + rtx_engine.bitcnt <= (others => '0'); + if (rtx_engine.start = '1') then -- trigger new transmission + rtx_engine.sreg <= data_i; + rtx_engine.state(1 downto 0) <= "01"; + end if; + + when "101" => -- start with next new clock pulse + -- ------------------------------------------------------------ + if (spi_clk_en = '1') then + rtx_engine.state(1 downto 0) <= "10"; + end if; + + when "110" => -- first half of bit transmission + -- ------------------------------------------------------------ + spi_sck_o <= ctrl(ctrl_cpha_c) xor ctrl(ctrl_cpol_c); + if (spi_clk_en = '1') then + rtx_engine.bitcnt <= std_ulogic_vector(unsigned(rtx_engine.bitcnt) + 1); + rtx_engine.state(1 downto 0) <= "11"; + end if; + + when "111" => -- second half of bit transmission + -- ------------------------------------------------------------ + spi_sck_o <= ctrl(ctrl_cpha_c) xnor ctrl(ctrl_cpol_c); + if (spi_clk_en = '1') then + rtx_engine.sreg <= rtx_engine.sreg(30 downto 0) & rtx_engine.sdi_sync(rtx_engine.sdi_sync'left); + if (rtx_engine.bitcnt(5 downto 3) = rtx_engine.bytecnt) then -- all bits transferred? + irq_o <= '1'; -- interrupt! + rtx_engine.state(1 downto 0) <= "00"; -- transmission done + else + rtx_engine.state(1 downto 0) <= "10"; + end if; + end if; + + when others => -- "0--": SPI deactivated + -- ------------------------------------------------------------ + rtx_engine.state(1 downto 0) <= "00"; + + end case; + end if; + end process spi_rtx_unit; + + -- busy flag -- + rtx_engine.busy <= '0' when (rtx_engine.state(1 downto 0) = "00") else '1'; + + +end neorv32_spi_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_sysinfo.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_sysinfo.vhd new file mode 100644 index 0000000..a849a9c --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_sysinfo.vhd @@ -0,0 +1,227 @@ +-- ################################################################################################# +-- # << NEORV32 - System/Processor Configuration Information Memory (SYSINFO) >> # +-- # ********************************************************************************************* # +-- # This unit provides information regarding the NEORV32 processor system configuration - # +-- # mostly derived from the top's configuration generics. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_sysinfo is + generic ( + -- General -- + CLOCK_FREQUENCY : natural; -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN : boolean; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_Zfinx : boolean; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean; -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG : boolean; -- implement CPU debug mode? + -- Extension Options -- + FAST_MUL_EN : boolean; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural; -- total width of CPU cycle and instret counters (0..64) + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS : natural; -- number of regions (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural; -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural; -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN : boolean; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural; -- i-cache: number of blocks (min 2), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural; -- i-cache: associativity (min 1), has to be a power 2 + -- External memory interface -- + MEM_EXT_EN : boolean; -- implement external memory bus interface? + MEM_EXT_BIG_ENDIAN : boolean; -- byte order: true=big-endian, false=little-endian + -- On-Chip Debugger -- + ON_CHIP_DEBUGGER_EN : boolean; -- implement OCD? + -- Processor peripherals -- + IO_GPIO_EN : boolean; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN : boolean; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN : boolean; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural; -- number of PWM channels to implement + IO_WDT_EN : boolean; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean; -- implement custom functions subsystem (CFS)? + IO_SLINK_EN : boolean; -- implement stream link interface? + IO_NEOLED_EN : boolean; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_XIRQ_NUM_CH : natural; -- number of external interrupt (XIRQ) channels to implement + IO_GPTMR_EN : boolean -- implement general purpose timer (GPTMR)? + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); +end neorv32_sysinfo; + +architecture neorv32_sysinfo_rtl of neorv32_sysinfo is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(sysinfo_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal info_addr : std_ulogic_vector(02 downto 0); + + -- system information ROM -- + type info_mem_t is array (0 to 7) of std_ulogic_vector(31 downto 0); + signal sysinfo_mem : info_mem_t; + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = sysinfo_base_c(hi_abb_c downto lo_abb_c)) else '0'; + rden <= acc_en and rden_i; -- valid read access + addr <= sysinfo_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + info_addr <= addr(index_size_f(sysinfo_size_c)-1 downto 2); + + + -- Construct Info ROM --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + -- SYSINFO(0): Processor (primary) clock frequency -- + sysinfo_mem(0) <= std_ulogic_vector(to_unsigned(CLOCK_FREQUENCY, 32)); + + -- SYSINFO(1): CPU configuration -- + sysinfo_mem(1)(00) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zicsr); -- Zicsr + sysinfo_mem(1)(01) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zifencei); -- Zifencei + sysinfo_mem(1)(02) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zmmul); -- Zmmul + -- + sysinfo_mem(1)(04 downto 03) <= (others => '0'); -- reserved + -- + sysinfo_mem(1)(05) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zfinx); -- Zfinx ("F-alternative") + sysinfo_mem(1)(06) <= bool_to_ulogic_f(boolean(CPU_CNT_WIDTH /= 64)); -- reduced-size CPU counters (Zxscnt) + sysinfo_mem(1)(07) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zicntr); -- base CPU counter + sysinfo_mem(1)(08) <= bool_to_ulogic_f(boolean(PMP_NUM_REGIONS > 0)); -- PMP (physical memory protection) + sysinfo_mem(1)(09) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_Zihpm); -- HPM (hardware performance monitors) + sysinfo_mem(1)(10) <= bool_to_ulogic_f(CPU_EXTENSION_RISCV_DEBUG); -- RISC-V debug mode + -- + sysinfo_mem(1)(29 downto 11) <= (others => '0'); -- reserved + -- misc -- + sysinfo_mem(1)(30) <= bool_to_ulogic_f(FAST_MUL_EN); -- DSP-based multiplication (M extension only) + sysinfo_mem(1)(31) <= bool_to_ulogic_f(FAST_SHIFT_EN); -- parallel logic for shifts (like barrel shifters) + + -- SYSINFO(2): Implemented processor devices/features -- + -- Memory -- + sysinfo_mem(2)(00) <= bool_to_ulogic_f(INT_BOOTLOADER_EN); -- processor-internal bootloader implemented? + sysinfo_mem(2)(01) <= bool_to_ulogic_f(MEM_EXT_EN); -- external memory bus interface implemented? + sysinfo_mem(2)(02) <= bool_to_ulogic_f(MEM_INT_IMEM_EN) and bool_to_ulogic_f(boolean(MEM_INT_IMEM_SIZE > 0)); -- processor-internal instruction memory implemented? + sysinfo_mem(2)(03) <= bool_to_ulogic_f(MEM_INT_DMEM_EN) and bool_to_ulogic_f(boolean(MEM_INT_DMEM_SIZE > 0)); -- processor-internal data memory implemented? + sysinfo_mem(2)(04) <= bool_to_ulogic_f(MEM_EXT_BIG_ENDIAN); -- is external memory bus interface using BIG-endian byte-order? + sysinfo_mem(2)(05) <= bool_to_ulogic_f(ICACHE_EN); -- processor-internal instruction cache implemented? + -- + sysinfo_mem(2)(12 downto 06) <= (others => '0'); -- reserved + -- Misc -- + sysinfo_mem(2)(13) <= bool_to_ulogic_f(is_simulation_c); -- is this a simulation? + sysinfo_mem(2)(14) <= bool_to_ulogic_f(ON_CHIP_DEBUGGER_EN); -- on-chip debugger implemented? + sysinfo_mem(2)(15) <= bool_to_ulogic_f(dedicated_reset_c); -- dedicated hardware reset of all core registers? + -- IO -- + sysinfo_mem(2)(16) <= bool_to_ulogic_f(IO_GPIO_EN); -- general purpose input/output port unit (GPIO) implemented? + sysinfo_mem(2)(17) <= bool_to_ulogic_f(IO_MTIME_EN); -- machine system timer (MTIME) implemented? + sysinfo_mem(2)(18) <= bool_to_ulogic_f(IO_UART0_EN); -- primary universal asynchronous receiver/transmitter (UART0) implemented? + sysinfo_mem(2)(19) <= bool_to_ulogic_f(IO_SPI_EN); -- serial peripheral interface (SPI) implemented? + sysinfo_mem(2)(20) <= bool_to_ulogic_f(IO_TWI_EN); -- two-wire interface (TWI) implemented? + sysinfo_mem(2)(21) <= bool_to_ulogic_f(boolean(IO_PWM_NUM_CH > 0)); -- pulse-width modulation unit (PWM) implemented? + sysinfo_mem(2)(22) <= bool_to_ulogic_f(IO_WDT_EN); -- watch dog timer (WDT) implemented? + sysinfo_mem(2)(23) <= bool_to_ulogic_f(IO_CFS_EN); -- custom functions subsystem (CFS) implemented? + sysinfo_mem(2)(24) <= bool_to_ulogic_f(IO_TRNG_EN); -- true random number generator (TRNG) implemented? + sysinfo_mem(2)(25) <= bool_to_ulogic_f(IO_SLINK_EN); -- stream links (SLINK) implemented? + sysinfo_mem(2)(26) <= bool_to_ulogic_f(IO_UART1_EN); -- secondary universal asynchronous receiver/transmitter (UART1) implemented? + sysinfo_mem(2)(27) <= bool_to_ulogic_f(IO_NEOLED_EN); -- NeoPixel-compatible smart LED interface (NEOLED) implemented? + sysinfo_mem(2)(28) <= bool_to_ulogic_f(boolean(IO_XIRQ_NUM_CH > 0)); -- external interrupt controller (XIRQ) implemented? + sysinfo_mem(2)(29) <= bool_to_ulogic_f(IO_GPTMR_EN); -- general purpose timer (GPTMR) implemented? + -- + sysinfo_mem(2)(31 downto 30) <= (others => '0'); -- reserved + + -- SYSINFO(3): Cache configuration -- + sysinfo_mem(3)(03 downto 00) <= std_ulogic_vector(to_unsigned(index_size_f(ICACHE_BLOCK_SIZE), 4)) when (ICACHE_EN = true) else (others => '0'); -- i-cache: log2(block_size_in_bytes) + sysinfo_mem(3)(07 downto 04) <= std_ulogic_vector(to_unsigned(index_size_f(ICACHE_NUM_BLOCKS), 4)) when (ICACHE_EN = true) else (others => '0'); -- i-cache: log2(number_of_block) + sysinfo_mem(3)(11 downto 08) <= std_ulogic_vector(to_unsigned(index_size_f(ICACHE_ASSOCIATIVITY), 4)) when (ICACHE_EN = true) else (others => '0'); -- i-cache: log2(associativity) + sysinfo_mem(3)(15 downto 12) <= "0001" when (ICACHE_ASSOCIATIVITY > 1) and (ICACHE_EN = true) else (others => '0'); -- i-cache: replacement strategy (LRU only (yet)) + -- + sysinfo_mem(3)(19 downto 16) <= (others => '0'); -- reserved - d-cache: log2(block_size) + sysinfo_mem(3)(23 downto 20) <= (others => '0'); -- reserved - d-cache: log2(num_blocks) + sysinfo_mem(3)(27 downto 24) <= (others => '0'); -- reserved - d-cache: log2(associativity) + sysinfo_mem(3)(31 downto 28) <= (others => '0'); -- reserved - d-cache: replacement strategy + + -- SYSINFO(4): Base address of instruction memory space -- + sysinfo_mem(4) <= ispace_base_c; -- defined in neorv32_package.vhd file + + -- SYSINFO(5): Base address of data memory space -- + sysinfo_mem(5) <= dspace_base_c; -- defined in neorv32_package.vhd file + + -- SYSINFO(6): Size of IMEM in bytes -- + sysinfo_mem(6) <= std_ulogic_vector(to_unsigned(MEM_INT_IMEM_SIZE, 32)) when (MEM_INT_IMEM_EN = true) else (others => '0'); + + -- SYSINFO(7): Size of DMEM in bytes -- + sysinfo_mem(7) <= std_ulogic_vector(to_unsigned(MEM_INT_DMEM_SIZE, 32)) when (MEM_INT_DMEM_EN = true) else (others => '0'); + + + -- Read Access ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + read_access: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= rden; + data_o <= (others => '0'); + if (rden = '1') then + data_o <= sysinfo_mem(to_integer(unsigned(info_addr))); + end if; + end if; + end process read_access; + + +end neorv32_sysinfo_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_top.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_top.vhd new file mode 100644 index 0000000..868cec2 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_top.vhd @@ -0,0 +1,1563 @@ +-- ################################################################################################# +-- # << The NEORV32 RISC-V Processor - Top Entity >> # +-- # ********************************************************************************************* # +-- # Check out the processor's online documentation for more information: # +-- # HQ: https://github.com/stnolting/neorv32 # +-- # Data Sheet: https://stnolting.github.io/neorv32 # +-- # User Guide: https://stnolting.github.io/neorv32/ug # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_top is + generic ( + -- General -- + CLOCK_FREQUENCY : natural; -- clock frequency of clk_i in Hz + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + INT_BOOTLOADER_EN : boolean := false; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean := false; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean := true; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean := false; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean := false; -- implement multiply-only M sub-extension? + + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 64; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural := 2; -- entries is instruction prefetch buffer, has to be a power of 2 + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + + -- Internal Instruction memory (IMEM) -- + MEM_INT_IMEM_EN : boolean := false; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + + -- Internal Data memory (DMEM) -- + MEM_INT_DMEM_EN : boolean := false; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 8*1024; -- size of processor-internal data memory in bytes + + -- Internal Cache memory (iCACHE) -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- External memory interface (WISHBONE) -- + MEM_EXT_EN : boolean := false; -- implement external memory bus interface? + MEM_EXT_TIMEOUT : natural := 255; -- cycles after a pending bus access auto-terminates (0 = disabled) + MEM_EXT_PIPE_MODE : boolean := false; -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + MEM_EXT_BIG_ENDIAN : boolean := false; -- byte order: true=big-endian, false=little-endian + MEM_EXT_ASYNC_RX : boolean := false; -- use register buffer for RX data when false + + -- Stream link interface (SLINK) -- + SLINK_NUM_TX : natural := 0; -- number of TX links (0..8) + SLINK_NUM_RX : natural := 0; -- number of TX links (0..8) + SLINK_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two + + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH : natural := 0; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_ulogic_vector(31 downto 0) := x"ffffffff"; -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_ulogic_vector(31 downto 0) := x"ffffffff"; -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + + -- Processor peripherals -- + IO_GPIO_EN : boolean := false; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := false; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := false; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN : boolean := false; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN : boolean := false; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := false; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 0; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := false; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean := false; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean := false; -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG : std_ulogic_vector(31 downto 0) := x"00000000"; -- custom CFS configuration generic + IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits + IO_NEOLED_EN : boolean := false; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO : natural := 1; -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN : boolean := false -- implement general purpose timer (GPTMR)? + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i : in std_ulogic := 'U'; -- low-active TAP reset (optional) + jtag_tck_i : in std_ulogic := 'U'; -- serial clock + jtag_tdi_i : in std_ulogic := 'U'; -- serial data input + jtag_tdo_o : out std_ulogic; -- serial data output + jtag_tms_i : in std_ulogic := 'U'; -- mode select + + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o : out std_ulogic_vector(02 downto 0); -- request tag + wb_adr_o : out std_ulogic_vector(31 downto 0); -- address + wb_dat_i : in std_ulogic_vector(31 downto 0) := (others => 'U'); -- read data + wb_dat_o : out std_ulogic_vector(31 downto 0); -- write data + wb_we_o : out std_ulogic; -- read/write + wb_sel_o : out std_ulogic_vector(03 downto 0); -- byte enable + wb_stb_o : out std_ulogic; -- strobe + wb_cyc_o : out std_ulogic; -- valid cycle + wb_lock_o : out std_ulogic; -- exclusive access request + wb_ack_i : in std_ulogic := 'L'; -- transfer acknowledge + wb_err_i : in std_ulogic := 'L'; -- transfer error + + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o : out std_ulogic; -- indicates an executed FENCE operation + fencei_o : out std_ulogic; -- indicates an executed FENCEI operation + + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o : out sdata_8x32_t; -- output data + slink_tx_val_o : out std_ulogic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- ready to send + + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i : in sdata_8x32_t := (others => (others => 'U')); -- input data + slink_rx_val_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- valid input + slink_rx_rdy_o : out std_ulogic_vector(7 downto 0); -- ready to receive + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_ulogic_vector(63 downto 0); -- parallel output + gpio_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o : out std_ulogic; -- UART0 send data + uart0_rxd_i : in std_ulogic := 'U'; -- UART0 receive data + uart0_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i : in std_ulogic := 'L'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o : out std_ulogic; -- UART1 send data + uart1_rxd_i : in std_ulogic := 'U'; -- UART1 receive data + uart1_rts_o : out std_ulogic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i : in std_ulogic := 'L'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_ulogic; -- SPI serial clock + spi_sdo_o : out std_ulogic; -- controller data out, peripheral data in + spi_sdi_i : in std_ulogic := 'U'; -- controller data in, peripheral data out + spi_csn_o : out std_ulogic_vector(07 downto 0); -- chip-select + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic := 'U'; -- twi serial data line + twi_scl_io : inout std_logic := 'U'; -- twi serial clock line + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0); -- pwm channels + + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i : in std_ulogic_vector(IO_CFS_IN_SIZE-1 downto 0) := (others => 'U'); -- custom CFS inputs conduit + cfs_out_o : out std_ulogic_vector(IO_CFS_OUT_SIZE-1 downto 0); -- custom CFS outputs conduit + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o : out std_ulogic; -- async serial data line + + -- System time -- + mtime_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o : out std_ulogic_vector(63 downto 0); -- current system time from int. MTIME (if IO_MTIME_EN = true) + + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i : in std_ulogic_vector(XIRQ_NUM_CH-1 downto 0) := (others => 'L'); -- IRQ channels + + -- CPU interrupts -- + mtime_irq_i : in std_ulogic := 'L'; -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i : in std_ulogic := 'L'; -- machine software interrupt + mext_irq_i : in std_ulogic := 'L' -- machine external interrupt + ); +end neorv32_top; + +architecture neorv32_top_rtl of neorv32_top is + + -- CPU boot configuration -- + constant cpu_boot_addr_c : std_ulogic_vector(31 downto 0) := cond_sel_stdulogicvector_f(INT_BOOTLOADER_EN, boot_rom_base_c, ispace_base_c); + + -- alignment check for internal memories -- + constant imem_align_check_c : std_ulogic_vector(index_size_f(MEM_INT_IMEM_SIZE)-1 downto 0) := (others => '0'); + constant dmem_align_check_c : std_ulogic_vector(index_size_f(MEM_INT_DMEM_SIZE)-1 downto 0) := (others => '0'); + + -- helpers -- + constant io_slink_en_c : boolean := boolean(SLINK_NUM_RX > 0) or boolean(SLINK_NUM_TX > 0); -- implement slink at all? + + -- reset generator -- + signal rstn_gen : std_ulogic_vector(7 downto 0) := (others => '0'); -- initialize (=reset) via (for FPGAs only) + signal ext_rstn : std_ulogic; + signal sys_rstn : std_ulogic; + signal wdt_rstn : std_ulogic; + + -- clock generator -- + signal clk_div : std_ulogic_vector(11 downto 0); + signal clk_div_ff : std_ulogic_vector(11 downto 0); + signal clk_gen : std_ulogic_vector(07 downto 0); + signal clk_gen_en : std_ulogic_vector(08 downto 0); + -- + signal wdt_cg_en : std_ulogic; + signal uart0_cg_en : std_ulogic; + signal uart1_cg_en : std_ulogic; + signal spi_cg_en : std_ulogic; + signal twi_cg_en : std_ulogic; + signal pwm_cg_en : std_ulogic; + signal cfs_cg_en : std_ulogic; + signal neoled_cg_en : std_ulogic; + signal gptmr_cg_en : std_ulogic; + + -- bus interface -- + type bus_interface_t is record + addr : std_ulogic_vector(data_width_c-1 downto 0); -- bus access address + rdata : std_ulogic_vector(data_width_c-1 downto 0); -- bus read data + wdata : std_ulogic_vector(data_width_c-1 downto 0); -- bus write data + ben : std_ulogic_vector(03 downto 0); -- byte enable + we : std_ulogic; -- write enable + re : std_ulogic; -- read enable + ack : std_ulogic; -- bus transfer acknowledge + err : std_ulogic; -- bus transfer error + fence : std_ulogic; -- fence(i) instruction executed + priv : std_ulogic_vector(1 downto 0); -- current privilege level + src : std_ulogic; -- access source (1=instruction fetch, 0=data access) + lock : std_ulogic; -- exclusive access request + end record; + signal cpu_i, i_cache, cpu_d, p_bus : bus_interface_t; + + -- bus access error (from BUSKEEPER) -- + signal bus_error : std_ulogic; + + -- debug core interface (DCI) -- + signal dci_ndmrstn : std_ulogic; + signal dci_halt_req : std_ulogic; + + -- debug module interface (DMI) -- + type dmi_t is record + rstn : std_ulogic; + req_valid : std_ulogic; + req_ready : std_ulogic; -- DMI is allowed to make new requests when set + req_addr : std_ulogic_vector(06 downto 0); + req_op : std_ulogic; -- 0=read, 1=write + req_data : std_ulogic_vector(31 downto 0); + resp_valid : std_ulogic; -- response valid when set + resp_ready : std_ulogic; -- ready to receive respond + resp_data : std_ulogic_vector(31 downto 0); + resp_err : std_ulogic; -- 0=ok, 1=error + end record; + signal dmi : dmi_t; + + -- io space access -- + signal io_acc : std_ulogic; + signal io_rden : std_ulogic; + signal io_wren : std_ulogic; + + -- module response bus - entry type -- + type resp_bus_entry_t is record + rdata : std_ulogic_vector(data_width_c-1 downto 0); + ack : std_ulogic; + err : std_ulogic; + end record; + constant resp_bus_entry_terminate_c : resp_bus_entry_t := (rdata => (others => '0'), ack => '0', err => '0'); + + -- module response bus - device ID -- + type resp_bus_id_t is (RESP_BUSKEEPER, RESP_IMEM, RESP_DMEM, RESP_BOOTROM, RESP_WISHBONE, RESP_GPIO, RESP_MTIME, RESP_UART0, RESP_UART1, RESP_SPI, + RESP_TWI, RESP_PWM, RESP_WDT, RESP_TRNG, RESP_CFS, RESP_NEOLED, RESP_SYSINFO, RESP_OCD, RESP_SLINK, RESP_XIRQ, RESP_GPTMR); + + -- module response bus -- + type resp_bus_t is array (resp_bus_id_t) of resp_bus_entry_t; + signal resp_bus : resp_bus_t := (others => resp_bus_entry_terminate_c); + + -- IRQs -- + signal fast_irq : std_ulogic_vector(15 downto 0); + signal mtime_irq : std_ulogic; + signal wdt_irq : std_ulogic; + signal uart0_rxd_irq : std_ulogic; + signal uart0_txd_irq : std_ulogic; + signal uart1_rxd_irq : std_ulogic; + signal uart1_txd_irq : std_ulogic; + signal spi_irq : std_ulogic; + signal twi_irq : std_ulogic; + signal cfs_irq : std_ulogic; + signal neoled_irq : std_ulogic; + signal slink_tx_irq : std_ulogic; + signal slink_rx_irq : std_ulogic; + signal xirq_irq : std_ulogic; + signal gptmr_irq : std_ulogic; + + -- misc -- + signal mtime_time : std_ulogic_vector(63 downto 0); -- current system time from MTIME + signal ext_timeout : std_ulogic; + signal ext_access : std_ulogic; + signal debug_mode : std_ulogic; + +begin + + -- Processor IO/Peripherals Configuration ------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report + "NEORV32 PROCESSOR IO Configuration: " & + cond_sel_string_f(IO_GPIO_EN, "GPIO ", "") & + cond_sel_string_f(IO_MTIME_EN, "MTIME ", "") & + cond_sel_string_f(IO_UART0_EN, "UART0 ", "") & + cond_sel_string_f(IO_UART1_EN, "UART1 ", "") & + cond_sel_string_f(IO_SPI_EN, "SPI ", "") & + cond_sel_string_f(IO_TWI_EN, "TWI ", "") & + cond_sel_string_f(boolean(IO_PWM_NUM_CH > 0), "PWM ", "") & + cond_sel_string_f(IO_WDT_EN, "WDT ", "") & + cond_sel_string_f(IO_TRNG_EN, "TRNG ", "") & + cond_sel_string_f(IO_CFS_EN, "CFS ", "") & + cond_sel_string_f(io_slink_en_c, "SLINK ", "") & + cond_sel_string_f(IO_NEOLED_EN, "NEOLED ", "") & + cond_sel_string_f(boolean(XIRQ_NUM_CH > 0), "XIRQ ", "") & + cond_sel_string_f(IO_GPTMR_EN, "GPTMR ", "") & + "" + severity note; + + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- boot configuration -- + assert not (INT_BOOTLOADER_EN = true) report "NEORV32 PROCESSOR CONFIG NOTE: Boot configuration: Indirect boot via bootloader (processor-internal BOOTROM)." severity note; + assert not ((INT_BOOTLOADER_EN = false) and (MEM_INT_IMEM_EN = true)) report "NEORV32 PROCESSOR CONFIG NOTE: Boot configuration: Direct boot from memory (processor-internal IMEM)." severity note; + assert not ((INT_BOOTLOADER_EN = false) and (MEM_INT_IMEM_EN = false)) report "NEORV32 PROCESSOR CONFIG NOTE: Boot configuration: Direct boot from memory (processor-external (I)MEM)." severity note; + -- + assert not ((MEM_EXT_EN = false) and (MEM_INT_DMEM_EN = false)) report "NEORV32 PROCESSOR CONFIG ERROR! Core cannot fetch data without external memory interface and internal IMEM." severity error; + assert not ((MEM_EXT_EN = false) and (MEM_INT_IMEM_EN = false) and (INT_BOOTLOADER_EN = false)) report "NEORV32 PROCESSOR CONFIG ERROR! Core cannot fetch instructions without external memory interface, internal IMEM and bootloader." severity error; + + -- memory system - size -- + assert not ((MEM_INT_DMEM_EN = true) and (is_power_of_two_f(MEM_INT_IMEM_SIZE) = false)) report "NEORV32 PROCESSOR CONFIG WARNING! MEM_INT_IMEM_SIZE should be a power of 2 to allow optimal hardware mapping." severity warning; + assert not ((MEM_INT_IMEM_EN = true) and (is_power_of_two_f(MEM_INT_DMEM_SIZE) = false)) report "NEORV32 PROCESSOR CONFIG WARNING! MEM_INT_DMEM_SIZE should be a power of 2 to allow optimal hardware mapping." severity warning; + + -- memory system - alignment -- + assert not (ispace_base_c(1 downto 0) /= "00") report "NEORV32 PROCESSOR CONFIG ERROR! Instruction memory space base address must be 4-byte-aligned." severity error; + assert not (dspace_base_c(1 downto 0) /= "00") report "NEORV32 PROCESSOR CONFIG ERROR! Data memory space base address must be 4-byte-aligned." severity error; + assert not ((ispace_base_c(index_size_f(MEM_INT_IMEM_SIZE)-1 downto 0) /= imem_align_check_c) and (MEM_INT_IMEM_EN = true)) report "NEORV32 PROCESSOR CONFIG ERROR! Instruction memory space base address has to be aligned to IMEM size." severity error; + assert not ((dspace_base_c(index_size_f(MEM_INT_DMEM_SIZE)-1 downto 0) /= dmem_align_check_c) and (MEM_INT_DMEM_EN = true)) report "NEORV32 PROCESSOR CONFIG ERROR! Data memory space base address has to be aligned to DMEM size." severity error; + + -- memory system - layout warning -- + assert not (ispace_base_c /= x"00000000") report "NEORV32 PROCESSOR CONFIG WARNING! Non-default base address for instruction address space. Make sure this is sync with the software framework." severity warning; + assert not (dspace_base_c /= x"80000000") report "NEORV32 PROCESSOR CONFIG WARNING! Non-default base address for data address space. Make sure this is sync with the software framework." severity warning; + + -- memory system - the i-cache is intended to accelerate instruction fetch via the external memory interface only -- + assert not ((ICACHE_EN = true) and (MEM_EXT_EN = false)) report "NEORV32 PROCESSOR CONFIG NOTE. Implementing i-cache without having the external memory interface implemented. The i-cache is intended to accelerate instruction fetch via the external memory interface." severity note; + + -- on-chip debugger -- + assert not (ON_CHIP_DEBUGGER_EN = true) report "NEORV32 PROCESSOR CONFIG NOTE: Implementing on-chip debugger (OCD)." severity note; + + + -- Reset Generator ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + reset_generator: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + rstn_gen <= (others => '0'); + sys_rstn <= '0'; + elsif rising_edge(clk_i) then + -- keep internal reset active for at least clock cycles -- + rstn_gen <= rstn_gen(rstn_gen'left-1 downto 0) & '1'; + -- system reset: can also be triggered by watchdog and debug module -- + sys_rstn <= ext_rstn and wdt_rstn and dci_ndmrstn; + end if; + end process reset_generator; + + -- beautified external reset signal -- + ext_rstn <= rstn_gen(rstn_gen'left); + + + -- Clock Generator ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + clock_generator: process(sys_rstn, clk_i) + begin + if (sys_rstn = '0') then + clk_gen_en <= (others => '-'); + clk_div <= (others => '0'); + clk_div_ff <= (others => '-'); + clk_gen <= (others => '-'); + elsif rising_edge(clk_i) then + -- fresh clocks anyone? -- + clk_gen_en(0) <= wdt_cg_en; + clk_gen_en(1) <= uart0_cg_en; + clk_gen_en(2) <= uart1_cg_en; + clk_gen_en(3) <= spi_cg_en; + clk_gen_en(4) <= twi_cg_en; + clk_gen_en(5) <= pwm_cg_en; + clk_gen_en(6) <= cfs_cg_en; + clk_gen_en(7) <= neoled_cg_en; + clk_gen_en(8) <= gptmr_cg_en; + -- actual clock generator -- + if (or_reduce_f(clk_gen_en) = '1') then + clk_div <= std_ulogic_vector(unsigned(clk_div) + 1); + end if; + -- clock enables: rising edge detectors -- + clk_div_ff <= clk_div; + clk_gen(clk_div2_c) <= clk_div(0) and (not clk_div_ff(0)); -- CLK/2 + clk_gen(clk_div4_c) <= clk_div(1) and (not clk_div_ff(1)); -- CLK/4 + clk_gen(clk_div8_c) <= clk_div(2) and (not clk_div_ff(2)); -- CLK/8 + clk_gen(clk_div64_c) <= clk_div(5) and (not clk_div_ff(5)); -- CLK/64 + clk_gen(clk_div128_c) <= clk_div(6) and (not clk_div_ff(6)); -- CLK/128 + clk_gen(clk_div1024_c) <= clk_div(9) and (not clk_div_ff(9)); -- CLK/1024 + clk_gen(clk_div2048_c) <= clk_div(10) and (not clk_div_ff(10)); -- CLK/2048 + clk_gen(clk_div4096_c) <= clk_div(11) and (not clk_div_ff(11)); -- CLK/4096 + end if; + end process clock_generator; + + + -- CPU Core ------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cpu_inst: neorv32_cpu + generic map ( + -- General -- + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id + CPU_BOOT_ADDR => cpu_boot_addr_c, -- cpu boot address + CPU_DEBUG_ADDR => dm_base_c, -- cpu debug mode start address + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement muld/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => CPU_EXTENSION_RISCV_Zicntr, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => CPU_EXTENSION_RISCV_Zihpm, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul => CPU_EXTENSION_RISCV_Zmmul, -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG => ON_CHIP_DEBUGGER_EN, -- implement CPU debug mode? + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES => CPU_IPB_ENTRIES, -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH -- total size of HPM counters (0..64) + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => sys_rstn, -- global reset, low-active, async + sleep_o => open, -- cpu is in sleep mode when set + debug_o => debug_mode, -- cpu is in debug mode when set + -- instruction bus interface -- + i_bus_addr_o => cpu_i.addr, -- bus access address + i_bus_rdata_i => cpu_i.rdata, -- bus read data + i_bus_wdata_o => cpu_i.wdata, -- bus write data + i_bus_ben_o => cpu_i.ben, -- byte enable + i_bus_we_o => cpu_i.we, -- write enable + i_bus_re_o => cpu_i.re, -- read enable + i_bus_lock_o => cpu_i.lock, -- exclusive access request + i_bus_ack_i => cpu_i.ack, -- bus transfer acknowledge + i_bus_err_i => cpu_i.err, -- bus transfer error + i_bus_fence_o => cpu_i.fence, -- executed FENCEI operation + i_bus_priv_o => cpu_i.priv, -- privilege level + -- data bus interface -- + d_bus_addr_o => cpu_d.addr, -- bus access address + d_bus_rdata_i => cpu_d.rdata, -- bus read data + d_bus_wdata_o => cpu_d.wdata, -- bus write data + d_bus_ben_o => cpu_d.ben, -- byte enable + d_bus_we_o => cpu_d.we, -- write enable + d_bus_re_o => cpu_d.re, -- read enable + d_bus_lock_o => cpu_d.lock, -- exclusive access request + d_bus_ack_i => cpu_d.ack, -- bus transfer acknowledge + d_bus_err_i => cpu_d.err, -- bus transfer error + d_bus_fence_o => cpu_d.fence, -- executed FENCE operation + d_bus_priv_o => cpu_d.priv, -- privilege level + -- system time input from MTIME -- + time_i => mtime_time, -- current system time + -- non-maskable interrupt -- + msw_irq_i => msw_irq_i, -- machine software interrupt + mext_irq_i => mext_irq_i, -- machine external interrupt request + mtime_irq_i => mtime_irq, -- machine timer interrupt + -- fast interrupts (custom) -- + firq_i => fast_irq, -- fast interrupt trigger + -- debug mode (halt) request -- + db_halt_req_i => dci_halt_req + ); + + -- misc -- + cpu_i.src <= '1'; -- initialized but unused + cpu_d.src <= '0'; -- initialized but unused + + -- advanced memory control -- + fence_o <= cpu_d.fence; -- indicates an executed FENCE operation + fencei_o <= cpu_i.fence; -- indicates an executed FENCEI operation + + -- fast interrupt requests (FIRQs) -- + -- these signals are single-shot -- + fast_irq(00) <= wdt_irq; -- HIGHEST PRIORITY - watchdog + fast_irq(01) <= cfs_irq; -- custom functions subsystem + fast_irq(02) <= uart0_rxd_irq; -- primary UART (UART0) RX + fast_irq(03) <= uart0_txd_irq; -- primary UART (UART0) TX + fast_irq(04) <= uart1_rxd_irq; -- secondary UART (UART1) RX + fast_irq(05) <= uart1_txd_irq; -- secondary UART (UART1) TX + fast_irq(06) <= spi_irq; -- SPI + fast_irq(07) <= twi_irq; -- TWI + fast_irq(08) <= xirq_irq; -- external interrupt controller + fast_irq(09) <= neoled_irq; -- NEOLED buffer free + fast_irq(10) <= slink_rx_irq; -- SLINK RX + fast_irq(11) <= slink_tx_irq; -- SLINK TX + fast_irq(12) <= gptmr_irq; -- general purpose timer + -- + fast_irq(13) <= '0'; -- reserved + fast_irq(14) <= '0'; -- reserved + fast_irq(15) <= '0'; -- LOWEST PRIORITY - reserved + + + -- CPU Instruction Cache ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + neorv32_icache_inst_true: + if (ICACHE_EN = true) generate + neorv32_icache_inst: neorv32_icache + generic map ( + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- number of blocks (min 2), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- block size in bytes (min 4), has to be a power of 2 + ICACHE_NUM_SETS => ICACHE_ASSOCIATIVITY -- associativity / number of sets (1=direct_mapped), has to be a power of 2 + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => sys_rstn, -- global reset, low-active, async + clear_i => cpu_i.fence, -- cache clear + -- host controller interface -- + host_addr_i => cpu_i.addr, -- bus access address + host_rdata_o => cpu_i.rdata, -- bus read data + host_wdata_i => cpu_i.wdata, -- bus write data + host_ben_i => cpu_i.ben, -- byte enable + host_we_i => cpu_i.we, -- write enable + host_re_i => cpu_i.re, -- read enable + host_ack_o => cpu_i.ack, -- bus transfer acknowledge + host_err_o => cpu_i.err, -- bus transfer error + -- peripheral bus interface -- + bus_addr_o => i_cache.addr, -- bus access address + bus_rdata_i => i_cache.rdata, -- bus read data + bus_wdata_o => i_cache.wdata, -- bus write data + bus_ben_o => i_cache.ben, -- byte enable + bus_we_o => i_cache.we, -- write enable + bus_re_o => i_cache.re, -- read enable + bus_ack_i => i_cache.ack, -- bus transfer acknowledge + bus_err_i => i_cache.err -- bus transfer error + ); + end generate; + + -- TODO: do not use LOCKED instruction fetch -- + i_cache.lock <= '0'; + + neorv32_icache_inst_false: + if (ICACHE_EN = false) generate + i_cache.addr <= cpu_i.addr; + cpu_i.rdata <= i_cache.rdata; + i_cache.wdata <= cpu_i.wdata; + i_cache.ben <= cpu_i.ben; + i_cache.we <= cpu_i.we; + i_cache.re <= cpu_i.re; + cpu_i.ack <= i_cache.ack; + cpu_i.err <= i_cache.err; + end generate; + + + -- CPU Bus Switch ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_busswitch_inst: neorv32_busswitch + generic map ( + PORT_CA_READ_ONLY => false, -- set if controller port A is read-only + PORT_CB_READ_ONLY => true -- set if controller port B is read-only + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => sys_rstn, -- global reset, low-active, async + -- controller interface a -- + ca_bus_addr_i => cpu_d.addr, -- bus access address + ca_bus_rdata_o => cpu_d.rdata, -- bus read data + ca_bus_wdata_i => cpu_d.wdata, -- bus write data + ca_bus_ben_i => cpu_d.ben, -- byte enable + ca_bus_we_i => cpu_d.we, -- write enable + ca_bus_re_i => cpu_d.re, -- read enable + ca_bus_lock_i => cpu_d.lock, -- exclusive access request + ca_bus_ack_o => cpu_d.ack, -- bus transfer acknowledge + ca_bus_err_o => cpu_d.err, -- bus transfer error + -- controller interface b -- + cb_bus_addr_i => i_cache.addr, -- bus access address + cb_bus_rdata_o => i_cache.rdata, -- bus read data + cb_bus_wdata_i => i_cache.wdata, -- bus write data + cb_bus_ben_i => i_cache.ben, -- byte enable + cb_bus_we_i => i_cache.we, -- write enable + cb_bus_re_i => i_cache.re, -- read enable + cb_bus_lock_i => i_cache.lock, -- exclusive access request + cb_bus_ack_o => i_cache.ack, -- bus transfer acknowledge + cb_bus_err_o => i_cache.err, -- bus transfer error + -- peripheral bus -- + p_bus_src_o => p_bus.src, -- access source: 0 = A (data), 1 = B (instructions) + p_bus_addr_o => p_bus.addr, -- bus access address + p_bus_rdata_i => p_bus.rdata, -- bus read data + p_bus_wdata_o => p_bus.wdata, -- bus write data + p_bus_ben_o => p_bus.ben, -- byte enable + p_bus_we_o => p_bus.we, -- write enable + p_bus_re_o => p_bus.re, -- read enable + p_bus_lock_o => p_bus.lock, -- exclusive access request + p_bus_ack_i => p_bus.ack, -- bus transfer acknowledge + p_bus_err_i => bus_error -- bus transfer error + ); + + -- current CPU privilege level -- + p_bus.priv <= cpu_i.priv; -- note: cpu_i.priv == cpu_d.priv + + -- fence operation (unused) -- + p_bus.fence <= cpu_d.fence or cpu_i.fence; + + -- bus response -- + bus_response: process(resp_bus) + variable rdata_v : std_ulogic_vector(data_width_c-1 downto 0); + variable ack_v : std_ulogic; + variable err_v : std_ulogic; + begin + rdata_v := (others => '0'); + ack_v := '0'; + err_v := '0'; + for i in resp_bus'range loop + rdata_v := rdata_v or resp_bus(i).rdata; -- read data + ack_v := ack_v or resp_bus(i).ack; -- acknowledge + err_v := err_v or resp_bus(i).err; -- error + end loop; -- i + p_bus.rdata <= rdata_v; -- processor bus: CPU transfer data input + p_bus.ack <= ack_v; -- processor bus: CPU transfer ACK input + p_bus.err <= err_v; -- processor bus: CPU transfer data bus error input + end process; + + + -- Bus Keeper (BUSKEEPER) ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_bus_keeper_inst: neorv32_bus_keeper + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + rstn_i => sys_rstn, -- global reset line, low-active, use as async + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- byte write enable + data_o => resp_bus(RESP_BUSKEEPER).rdata, -- data out + ack_o => resp_bus(RESP_BUSKEEPER).ack, -- transfer acknowledge + err_o => bus_error, -- transfer error + -- bus monitoring -- + bus_addr_i => p_bus.addr, -- address + bus_rden_i => p_bus.re, -- read enable + bus_wren_i => p_bus.we, -- write enable + bus_ack_i => p_bus.ack, -- transfer acknowledge from bus system + bus_err_i => p_bus.err, -- transfer error from bus system + bus_tmo_i => ext_timeout, -- transfer timeout (external interface) + bus_ext_i => ext_access -- external bus access + ); + + -- unused, BUSKEEPER **directly** issues error to the CPU -- + resp_bus(RESP_BUSKEEPER).err <= '0'; + + + -- Processor-Internal Instruction Memory (IMEM) ------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_int_imem_inst_true: + if (MEM_INT_IMEM_EN = true) and (MEM_INT_IMEM_SIZE > 0) generate + neorv32_int_imem_inst: neorv32_imem + generic map ( + IMEM_BASE => imem_base_c, -- memory base address + IMEM_SIZE => MEM_INT_IMEM_SIZE, -- processor-internal instruction memory size in bytes + IMEM_AS_IROM => not INT_BOOTLOADER_EN -- implement IMEM as pre-initialized read-only memory? + ) + port map ( + clk_i => clk_i, -- global clock line + rden_i => p_bus.re, -- read enable + wren_i => p_bus.we, -- write enable + ben_i => p_bus.ben, -- byte write enable + addr_i => p_bus.addr, -- address + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_IMEM).rdata, -- data out + ack_o => resp_bus(RESP_IMEM).ack -- transfer acknowledge + ); + resp_bus(RESP_IMEM).err <= '0'; -- no access error possible + end generate; + + neorv32_int_imem_inst_false: + if (MEM_INT_IMEM_EN = false) or (MEM_INT_IMEM_SIZE = 0) generate + resp_bus(RESP_IMEM) <= resp_bus_entry_terminate_c; + end generate; + + + -- Processor-Internal Data Memory (DMEM) -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_int_dmem_inst_true: + if (MEM_INT_DMEM_EN = true) and (MEM_INT_DMEM_SIZE > 0) generate + neorv32_int_dmem_inst: neorv32_dmem + generic map ( + DMEM_BASE => dmem_base_c, -- memory base address + DMEM_SIZE => MEM_INT_DMEM_SIZE -- processor-internal data memory size in bytes + ) + port map ( + clk_i => clk_i, -- global clock line + rden_i => p_bus.re, -- read enable + wren_i => p_bus.we, -- write enable + ben_i => p_bus.ben, -- byte write enable + addr_i => p_bus.addr, -- address + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_DMEM).rdata, -- data out + ack_o => resp_bus(RESP_DMEM).ack -- transfer acknowledge + ); + resp_bus(RESP_DMEM).err <= '0'; -- no access error possible + end generate; + + neorv32_int_dmem_inst_false: + if (MEM_INT_DMEM_EN = false) or (MEM_INT_DMEM_SIZE = 0) generate + resp_bus(RESP_DMEM) <= resp_bus_entry_terminate_c; + end generate; + + + -- Processor-Internal Bootloader ROM (BOOTROM) -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_boot_rom_inst_true: + if (INT_BOOTLOADER_EN = true) generate + neorv32_boot_rom_inst: neorv32_boot_rom + generic map ( + BOOTROM_BASE => boot_rom_base_c -- boot ROM base address + ) + port map ( + clk_i => clk_i, -- global clock line + rden_i => p_bus.re, -- read enable + addr_i => p_bus.addr, -- address + data_o => resp_bus(RESP_BOOTROM).rdata, -- data out + ack_o => resp_bus(RESP_BOOTROM).ack -- transfer acknowledge + ); + resp_bus(RESP_BOOTROM).err <= '0'; -- no access error possible + end generate; + + neorv32_boot_rom_inst_false: + if (INT_BOOTLOADER_EN = false) generate + resp_bus(RESP_BOOTROM) <= resp_bus_entry_terminate_c; + end generate; + + + -- External Wishbone Gateway (WISHBONE) --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_wishbone_inst_true: + if (MEM_EXT_EN = true) generate + neorv32_wishbone_inst: neorv32_wishbone + generic map ( + -- Internal instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + -- Interface Configuration -- + BUS_TIMEOUT => MEM_EXT_TIMEOUT, -- cycles after an UNACKNOWLEDGED bus access triggers a bus fault exception + PIPE_MODE => MEM_EXT_PIPE_MODE, -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + BIG_ENDIAN => MEM_EXT_BIG_ENDIAN, -- byte order: true=big-endian, false=little-endian + ASYNC_RX => MEM_EXT_ASYNC_RX -- use register buffer for RX data when false + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock line + rstn_i => sys_rstn, -- global reset line, low-active + -- host access -- + src_i => p_bus.src, -- access type (0: data, 1:instruction) + addr_i => p_bus.addr, -- address + rden_i => p_bus.re, -- read enable + wren_i => p_bus.we, -- write enable + ben_i => p_bus.ben, -- byte write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_WISHBONE).rdata, -- data out + lock_i => p_bus.lock, -- exclusive access request + ack_o => resp_bus(RESP_WISHBONE).ack, -- transfer acknowledge + err_o => resp_bus(RESP_WISHBONE).err, -- transfer error + tmo_o => ext_timeout, -- transfer timeout + priv_i => p_bus.priv, -- current CPU privilege level + ext_o => ext_access, -- active external access + -- wishbone interface -- + wb_tag_o => wb_tag_o, -- request tag + wb_adr_o => wb_adr_o, -- address + wb_dat_i => wb_dat_i, -- read data + wb_dat_o => wb_dat_o, -- write data + wb_we_o => wb_we_o, -- read/write + wb_sel_o => wb_sel_o, -- byte enable + wb_stb_o => wb_stb_o, -- strobe + wb_cyc_o => wb_cyc_o, -- valid cycle + wb_lock_o => wb_lock_o, -- exclusive access request + wb_ack_i => wb_ack_i, -- transfer acknowledge + wb_err_i => wb_err_i -- transfer error + ); + end generate; + + neorv32_wishbone_inst_false: + if (MEM_EXT_EN = false) generate + resp_bus(RESP_WISHBONE) <= resp_bus_entry_terminate_c; + ext_timeout <= '0'; + ext_access <= '0'; + -- + wb_adr_o <= (others => '0'); + wb_dat_o <= (others => '0'); + wb_we_o <= '0'; + wb_sel_o <= (others => '0'); + wb_stb_o <= '0'; + wb_cyc_o <= '0'; + wb_lock_o <= '0'; + wb_tag_o <= (others => '0'); + end generate; + + + -- IO Access? ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + io_acc <= '1' when (p_bus.addr(data_width_c-1 downto index_size_f(io_size_c)) = io_base_c(data_width_c-1 downto index_size_f(io_size_c))) else '0'; + io_rden <= io_acc and p_bus.re and (not p_bus.src); -- PMA: no_execute for IO region + -- the default NEORV32 peripheral/IO devices in the IO area can only be written in word mode (reduces HW complexity) + io_wren <= io_acc and p_bus.we and and_reduce_f(p_bus.ben) and (not p_bus.src); -- PMA: write32 only, no_execute for IO region + + + -- Custom Functions Subsystem (CFS) ------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_cfs_inst_true: + if (IO_CFS_EN = true) generate + neorv32_cfs_inst: neorv32_cfs + generic map ( + CFS_CONFIG => IO_CFS_CONFIG, -- custom CFS configuration generic + CFS_IN_SIZE => IO_CFS_IN_SIZE, -- size of CFS input conduit in bits + CFS_OUT_SIZE => IO_CFS_OUT_SIZE -- size of CFS output conduit in bits + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + rstn_i => sys_rstn, -- global reset line, low-active, use as async + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- byte write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_CFS).rdata, -- data out + ack_o => resp_bus(RESP_CFS).ack, -- transfer acknowledge + err_o => resp_bus(RESP_CFS).err, -- access error + -- clock generator -- + clkgen_en_o => cfs_cg_en, -- enable clock generator + clkgen_i => clk_gen, -- "clock" inputs + -- interrupt -- + irq_o => cfs_irq, -- interrupt request + -- custom io (conduit) -- + cfs_in_i => cfs_in_i, -- custom inputs + cfs_out_o => cfs_out_o -- custom outputs + ); + end generate; + + neorv32_cfs_inst_false: + if (IO_CFS_EN = false) generate + resp_bus(RESP_CFS) <= resp_bus_entry_terminate_c; + cfs_cg_en <= '0'; + cfs_irq <= '0'; + cfs_out_o <= (others => '0'); + end generate; + + + -- General Purpose Input/Output Port (GPIO) ----------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_gpio_inst_true: + if (IO_GPIO_EN = true) generate + neorv32_gpio_inst: neorv32_gpio + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_GPIO).rdata, -- data out + ack_o => resp_bus(RESP_GPIO).ack, -- transfer acknowledge + -- parallel io -- + gpio_o => gpio_o, + gpio_i => gpio_i + ); + resp_bus(RESP_GPIO).err <= '0'; -- no access error possible + end generate; + + neorv32_gpio_inst_false: + if (IO_GPIO_EN = false) generate + resp_bus(RESP_GPIO) <= resp_bus_entry_terminate_c; + gpio_o <= (others => '0'); + end generate; + + + -- Watch Dog Timer (WDT) ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + neorv32_wdt_inst_true: + if (IO_WDT_EN = true) generate + neorv32_wdt_inst: neorv32_wdt + generic map( + DEBUG_EN => ON_CHIP_DEBUGGER_EN -- CPU debug mode implemented? + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + rstn_i => ext_rstn, -- global reset line, low-active + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + addr_i => p_bus.addr, -- address + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_WDT).rdata, -- data out + ack_o => resp_bus(RESP_WDT).ack, -- transfer acknowledge + -- CPU in debug mode? -- + cpu_debug_i => debug_mode, + -- clock generator -- + clkgen_en_o => wdt_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- timeout event -- + irq_o => wdt_irq, -- timeout IRQ + rstn_o => wdt_rstn -- timeout reset, low_active, use it as async! + ); + resp_bus(RESP_WDT).err <= '0'; -- no access error possible + end generate; + + neorv32_wdt_inst_false: + if (IO_WDT_EN = false) generate + resp_bus(RESP_WDT) <= resp_bus_entry_terminate_c; + wdt_irq <= '0'; + wdt_rstn <= '1'; + wdt_cg_en <= '0'; + end generate; + + + -- Machine System Timer (MTIME) ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_mtime_inst_true: + if (IO_MTIME_EN = true) generate + neorv32_mtime_inst: neorv32_mtime + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_MTIME).rdata, -- data out + ack_o => resp_bus(RESP_MTIME).ack, -- transfer acknowledge + -- time output for CPU -- + time_o => mtime_time, -- current system time + -- interrupt -- + irq_o => mtime_irq -- interrupt request + ); + resp_bus(RESP_MTIME).err <= '0'; -- no access error possible + end generate; + + neorv32_mtime_inst_false: + if (IO_MTIME_EN = false) generate + resp_bus(RESP_MTIME) <= resp_bus_entry_terminate_c; + mtime_time <= mtime_i; -- use external machine timer time signal + mtime_irq <= mtime_irq_i; -- use external machine timer interrupt + end generate; + + + -- system time output LO -- + mtime_sync: process(clk_i) + begin + if rising_edge(clk_i) then + -- buffer low word one clock cycle to compensate for MTIME's 1-cycle delay + -- when overflowing from low-word to high-word -> only relevant for processor-external devices + -- processor-internal devices (= the CPU) do not care about this delay offset as 64-bit MTIME.TIME + -- cannot be accessed within a single cycle + if (IO_MTIME_EN = true) then + mtime_o(31 downto 0) <= mtime_time(31 downto 0); + else + mtime_o(31 downto 0) <= (others => '0'); + end if; + end if; + end process mtime_sync; + + -- system time output HI -- + mtime_o(63 downto 32) <= mtime_time(63 downto 32) when (IO_MTIME_EN = true) else (others => '0'); + + + -- Primary Universal Asynchronous Receiver/Transmitter (UART0) ---------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_uart0_inst_true: + if (IO_UART0_EN = true) generate + neorv32_uart0_inst: neorv32_uart + generic map ( + UART_PRIMARY => true, -- true = primary UART (UART0), false = secondary UART (UART1) + UART_RX_FIFO => IO_UART0_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 + UART_TX_FIFO => IO_UART0_TX_FIFO -- TX fifo depth, has to be a power of two, min 1 + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_UART0).rdata, -- data out + ack_o => resp_bus(RESP_UART0).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => uart0_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- com lines -- + uart_txd_o => uart0_txd_o, + uart_rxd_i => uart0_rxd_i, + -- hardware flow control -- + uart_rts_o => uart0_rts_o, -- UART.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => uart0_cts_i, -- UART.TX allowed to transmit, low-active, optional + -- interrupts -- + irq_rxd_o => uart0_rxd_irq, -- uart data received interrupt + irq_txd_o => uart0_txd_irq -- uart transmission done interrupt + ); + resp_bus(RESP_UART0).err <= '0'; -- no access error possible + end generate; + + neorv32_uart0_inst_false: + if (IO_UART0_EN = false) generate + resp_bus(RESP_UART0) <= resp_bus_entry_terminate_c; + uart0_txd_o <= '0'; + uart0_rts_o <= '0'; + uart0_cg_en <= '0'; + uart0_rxd_irq <= '0'; + uart0_txd_irq <= '0'; + end generate; + + + -- Secondary Universal Asynchronous Receiver/Transmitter (UART1) -------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_uart1_inst_true: + if (IO_UART1_EN = true) generate + neorv32_uart1_inst: neorv32_uart + generic map ( + UART_PRIMARY => false, -- true = primary UART (UART0), false = secondary UART (UART1) + UART_RX_FIFO => IO_UART1_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 + UART_TX_FIFO => IO_UART1_TX_FIFO -- TX fifo depth, has to be a power of two, min 1 + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_UART1).rdata, -- data out + ack_o => resp_bus(RESP_UART1).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => uart1_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- com lines -- + uart_txd_o => uart1_txd_o, + uart_rxd_i => uart1_rxd_i, + -- hardware flow control -- + uart_rts_o => uart1_rts_o, -- UART.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => uart1_cts_i, -- UART.TX allowed to transmit, low-active, optional + -- interrupts -- + irq_rxd_o => uart1_rxd_irq, -- uart data received interrupt + irq_txd_o => uart1_txd_irq -- uart transmission done interrupt + ); + resp_bus(RESP_UART1).err <= '0'; -- no access error possible + end generate; + + neorv32_uart1_inst_false: + if (IO_UART1_EN = false) generate + resp_bus(RESP_UART1) <= resp_bus_entry_terminate_c; + uart1_txd_o <= '0'; + uart1_rts_o <= '0'; + uart1_cg_en <= '0'; + uart1_rxd_irq <= '0'; + uart1_txd_irq <= '0'; + end generate; + + + -- Serial Peripheral Interface (SPI) ------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + neorv32_spi_inst_true: + if (IO_SPI_EN = true) generate + neorv32_spi_inst: neorv32_spi + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_SPI).rdata, -- data out + ack_o => resp_bus(RESP_SPI).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => spi_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- com lines -- + spi_sck_o => spi_sck_o, -- SPI serial clock + spi_sdo_o => spi_sdo_o, -- controller data out, peripheral data in + spi_sdi_i => spi_sdi_i, -- controller data in, peripheral data out + spi_csn_o => spi_csn_o, -- SPI CS + -- interrupt -- + irq_o => spi_irq -- transmission done interrupt + ); + resp_bus(RESP_SPI).err <= '0'; -- no access error possible + end generate; + + neorv32_spi_inst_false: + if (IO_SPI_EN = false) generate + resp_bus(RESP_SPI) <= resp_bus_entry_terminate_c; + spi_sck_o <= '0'; + spi_sdo_o <= '0'; + spi_csn_o <= (others => '1'); -- CSn lines are low-active + spi_cg_en <= '0'; + spi_irq <= '0'; + end generate; + + + -- Two-Wire Interface (TWI) --------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_twi_inst_true: + if (IO_TWI_EN = true) generate + neorv32_twi_inst: neorv32_twi + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_TWI).rdata, -- data out + ack_o => resp_bus(RESP_TWI).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => twi_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- com lines -- + twi_sda_io => twi_sda_io, -- serial data line + twi_scl_io => twi_scl_io, -- serial clock line + -- interrupt -- + irq_o => twi_irq -- transfer done IRQ + ); + resp_bus(RESP_TWI).err <= '0'; -- no access error possible + end generate; + + neorv32_twi_inst_false: + if (IO_TWI_EN = false) generate + resp_bus(RESP_TWI) <= resp_bus_entry_terminate_c; + twi_sda_io <= 'Z'; + twi_scl_io <= 'Z'; + twi_cg_en <= '0'; + twi_irq <= '0'; + end generate; + + + -- Pulse-Width Modulation Controller (PWM) ------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + neorv32_pwm_inst_true: + if (IO_PWM_NUM_CH > 0) generate + neorv32_pwm_inst: neorv32_pwm + generic map ( + NUM_CHANNELS => IO_PWM_NUM_CH -- number of PWM channels (0..60) + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_PWM).rdata, -- data out + ack_o => resp_bus(RESP_PWM).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => pwm_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- pwm output channels -- + pwm_o => pwm_o + ); + resp_bus(RESP_PWM).err <= '0'; -- no access error possible + end generate; + + neorv32_pwm_inst_false: + if (IO_PWM_NUM_CH = 0) generate + resp_bus(RESP_PWM) <= resp_bus_entry_terminate_c; + pwm_cg_en <= '0'; + pwm_o <= (others => '0'); + end generate; + + + -- True Random Number Generator (TRNG) ---------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_trng_inst_true: + if (IO_TRNG_EN = true) generate + neorv32_trng_inst: neorv32_trng + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_TRNG).rdata, -- data out + ack_o => resp_bus(RESP_TRNG).ack -- transfer acknowledge + ); + resp_bus(RESP_TRNG).err <= '0'; -- no access error possible + end generate; + + neorv32_trng_inst_false: + if (IO_TRNG_EN = false) generate + resp_bus(RESP_TRNG) <= resp_bus_entry_terminate_c; + end generate; + + + -- Smart LED (WS2811/WS2812) Interface (NEOLED) ------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_neoled_inst_true: + if (IO_NEOLED_EN = true) generate + neorv32_neoled_inst: neorv32_neoled + generic map ( + FIFO_DEPTH => IO_NEOLED_TX_FIFO -- TX FIFO depth (1..32k, power of two) + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_NEOLED).rdata, -- data out + ack_o => resp_bus(RESP_NEOLED).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => neoled_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- interrupt -- + irq_o => neoled_irq, -- interrupt request + -- NEOLED output -- + neoled_o => neoled_o -- serial async data line + ); + resp_bus(RESP_NEOLED).err <= '0'; -- no access error possible + end generate; + + neorv32_neoled_inst_false: + if (IO_NEOLED_EN = false) generate + resp_bus(RESP_NEOLED) <= resp_bus_entry_terminate_c; + neoled_cg_en <= '0'; + neoled_irq <= '0'; + neoled_o <= '0'; + end generate; + + + -- Stream Link Interface (SLINK) ---------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_slink_inst_true: + if (io_slink_en_c = true) generate + neorv32_slink_inst: neorv32_slink + generic map ( + SLINK_NUM_TX => SLINK_NUM_TX, -- number of TX links (0..8) + SLINK_NUM_RX => SLINK_NUM_RX, -- number of TX links (0..8) + SLINK_TX_FIFO => SLINK_TX_FIFO, -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO => SLINK_RX_FIFO -- RX fifo depth, has to be a power of two + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_SLINK).rdata, -- data out + ack_o => resp_bus(RESP_SLINK).ack, -- transfer acknowledge + -- interrupt -- + irq_tx_o => slink_tx_irq, -- transmission done + irq_rx_o => slink_rx_irq, -- data received + -- TX stream interfaces -- + slink_tx_dat_o => slink_tx_dat_o, -- output data + slink_tx_val_o => slink_tx_val_o, -- valid output + slink_tx_rdy_i => slink_tx_rdy_i, -- ready to send + -- RX stream interfaces -- + slink_rx_dat_i => slink_rx_dat_i, -- input data + slink_rx_val_i => slink_rx_val_i, -- valid input + slink_rx_rdy_o => slink_rx_rdy_o -- ready to receive + ); + resp_bus(RESP_SLINK).err <= '0'; -- no access error possible + end generate; + + neorv32_slink_inst_false: + if (io_slink_en_c = false) generate + resp_bus(RESP_SLINK) <= resp_bus_entry_terminate_c; + slink_tx_irq <= '0'; + slink_rx_irq <= '0'; + slink_tx_dat_o <= (others => (others => '0')); + slink_tx_val_o <= (others => '0'); + slink_rx_rdy_o <= (others => '0'); + end generate; + + + -- External Interrupt Controller (XIRQ) --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_xirq_inst_true: + if (XIRQ_NUM_CH > 0) generate + neorv32_slink_inst: neorv32_xirq + generic map ( + XIRQ_NUM_CH => XIRQ_NUM_CH, -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE => XIRQ_TRIGGER_TYPE, -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY => XIRQ_TRIGGER_POLARITY -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_XIRQ).rdata, -- data out + ack_o => resp_bus(RESP_XIRQ).ack, -- transfer acknowledge + -- external interrupt lines -- + xirq_i => xirq_i, + -- CPU interrupt -- + cpu_irq_o => xirq_irq + ); + resp_bus(RESP_XIRQ).err <= '0'; -- no access error possible + end generate; + + neorv32_xirq_inst_false: + if (XIRQ_NUM_CH = 0) generate + resp_bus(RESP_XIRQ) <= resp_bus_entry_terminate_c; + xirq_irq <= '0'; + end generate; + + + -- General Purpose Timer (GPTMR) ---------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_gptmr_inst_true: + if (IO_GPTMR_EN = true) generate + neorv32_gptmr_inst: neorv32_gptmr + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + wren_i => io_wren, -- write enable + data_i => p_bus.wdata, -- data in + data_o => resp_bus(RESP_GPTMR).rdata, -- data out + ack_o => resp_bus(RESP_GPTMR).ack, -- transfer acknowledge + -- clock generator -- + clkgen_en_o => gptmr_cg_en, -- enable clock generator + clkgen_i => clk_gen, + -- interrupt -- + irq_o => gptmr_irq -- transmission done interrupt + ); + resp_bus(RESP_GPTMR).err <= '0'; -- no access error possible + end generate; + + neorv32_gptmr_inst_false: + if (IO_GPTMR_EN = false) generate + resp_bus(RESP_GPTMR) <= resp_bus_entry_terminate_c; + gptmr_cg_en <= '0'; + gptmr_irq <= '0'; + end generate; + + + -- System Configuration Information Memory (SYSINFO) -------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_sysinfo_inst: neorv32_sysinfo + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => INT_BOOTLOADER_EN, -- implement processor-internal bootloader? + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => CPU_EXTENSION_RISCV_Zicntr, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => CPU_EXTENSION_RISCV_Zihpm, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul => CPU_EXTENSION_RISCV_Zmmul, -- implement multiply-only M sub-extension? + CPU_EXTENSION_RISCV_DEBUG => ON_CHIP_DEBUGGER_EN, -- implement CPU debug mode? + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + -- Physical memory protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + -- internal Instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN => ICACHE_EN, -- implement instruction cache + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- i-cache: number of blocks (min 2), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, -- i-cache: associativity (min 1), has to be a power 2 + -- External memory interface -- + MEM_EXT_EN => MEM_EXT_EN, -- implement external memory bus interface? + MEM_EXT_BIG_ENDIAN => MEM_EXT_BIG_ENDIAN, -- byte order: true=big-endian, false=little-endian + -- On-Chip Debugger -- + ON_CHIP_DEBUGGER_EN => ON_CHIP_DEBUGGER_EN, -- implement OCD? + -- Processor peripherals -- + IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? + IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN => IO_UART1_EN, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN => IO_SPI_EN, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => IO_TWI_EN, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement + IO_WDT_EN => IO_WDT_EN, -- implement watch dog timer (WDT)? + IO_TRNG_EN => IO_TRNG_EN, -- implement true random number generator (TRNG)? + IO_CFS_EN => IO_CFS_EN, -- implement custom functions subsystem (CFS)? + IO_SLINK_EN => io_slink_en_c, -- implement stream link interface? + IO_NEOLED_EN => IO_NEOLED_EN, -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_XIRQ_NUM_CH => XIRQ_NUM_CH, -- number of external interrupt (XIRQ) channels to implement + IO_GPTMR_EN => IO_GPTMR_EN -- implement general purpose timer (GPTMR)? + ) + port map ( + -- host access -- + clk_i => clk_i, -- global clock line + addr_i => p_bus.addr, -- address + rden_i => io_rden, -- read enable + data_o => resp_bus(RESP_SYSINFO).rdata, -- data out + ack_o => resp_bus(RESP_SYSINFO).ack -- transfer acknowledge + ); + + resp_bus(RESP_SYSINFO).err <= '0'; -- no access error possible + + + -- ************************************************************************************************************************** + -- On-Chip Debugger Complex + -- ************************************************************************************************************************** + + + -- On-Chip Debugger - Debug Module (DM) --------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_neorv32_debug_dm_true: + if (ON_CHIP_DEBUGGER_EN = true) generate + neorv32_debug_dm_inst: neorv32_debug_dm + port map ( + -- global control -- + clk_i => clk_i, -- global clock line + rstn_i => ext_rstn, -- external reset, low-active + -- debug module interface (DMI) -- + dmi_rstn_i => dmi.rstn, + dmi_req_valid_i => dmi.req_valid, + dmi_req_ready_o => dmi.req_ready, + dmi_req_addr_i => dmi.req_addr, + dmi_req_op_i => dmi.req_op, + dmi_req_data_i => dmi.req_data, + dmi_resp_valid_o => dmi.resp_valid, -- response valid when set + dmi_resp_ready_i => dmi.resp_ready, -- ready to receive respond + dmi_resp_data_o => dmi.resp_data, + dmi_resp_err_o => dmi.resp_err, -- 0=ok, 1=error + -- CPU bus access -- + cpu_addr_i => p_bus.addr, -- address + cpu_rden_i => p_bus.re, -- read enable + cpu_wren_i => p_bus.we, -- write enable + cpu_data_i => p_bus.wdata, -- data in + cpu_data_o => resp_bus(RESP_OCD).rdata, -- data out + cpu_ack_o => resp_bus(RESP_OCD).ack, -- transfer acknowledge + -- CPU control -- + cpu_ndmrstn_o => dci_ndmrstn, -- soc reset + cpu_halt_req_o => dci_halt_req -- request hart to halt (enter debug mode) + ); + resp_bus(RESP_OCD).err <= '0'; -- no access error possible + end generate; + + neorv32_debug_dm_false: + if (ON_CHIP_DEBUGGER_EN = false) generate + dmi.req_ready <= '0'; + dmi.resp_valid <= '0'; + dmi.resp_data <= (others => '0'); + dmi.resp_err <= '0'; + -- + resp_bus(RESP_OCD) <= resp_bus_entry_terminate_c; + dci_ndmrstn <= '1'; + dci_halt_req <= '0'; + end generate; + + + -- On-Chip Debugger - Debug Transport Module (DTM) ---------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_neorv32_debug_dtm_true: + if (ON_CHIP_DEBUGGER_EN = true) generate + neorv32_debug_dtm_inst: neorv32_debug_dtm + generic map ( + IDCODE_VERSION => jtag_tap_idcode_version_c, -- version + IDCODE_PARTID => jtag_tap_idcode_partid_c, -- part number + IDCODE_MANID => jtag_tap_idcode_manid_c -- manufacturer id + ) + port map ( + -- global control -- + clk_i => clk_i, -- global clock line + rstn_i => ext_rstn, -- external reset, low-active + -- jtag connection -- + jtag_trst_i => jtag_trst_i, + jtag_tck_i => jtag_tck_i, + jtag_tdi_i => jtag_tdi_i, + jtag_tdo_o => jtag_tdo_o, + jtag_tms_i => jtag_tms_i, + -- debug module interface (DMI) -- + dmi_rstn_o => dmi.rstn, + dmi_req_valid_o => dmi.req_valid, + dmi_req_ready_i => dmi.req_ready, -- DMI is allowed to make new requests when set + dmi_req_addr_o => dmi.req_addr, + dmi_req_op_o => dmi.req_op, -- 0=read, 1=write + dmi_req_data_o => dmi.req_data, + dmi_resp_valid_i => dmi.resp_valid, -- response valid when set + dmi_resp_ready_o => dmi.resp_ready, -- ready to receive respond + dmi_resp_data_i => dmi.resp_data, + dmi_resp_err_i => dmi.resp_err -- 0=ok, 1=error + ); + end generate; + + neorv32_debug_dtm_false: + if (ON_CHIP_DEBUGGER_EN = false) generate + jtag_tdo_o <= jtag_tdi_i; -- feed-through + -- + dmi.rstn <= '0'; + dmi.req_valid <= '0'; + dmi.req_addr <= (others => '0'); + dmi.req_op <= '0'; + dmi.req_data <= (others => '0'); + dmi.resp_ready <= '0'; + end generate; + + +end neorv32_top_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_trng.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_trng.vhd new file mode 100644 index 0000000..0eaeb41 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_trng.vhd @@ -0,0 +1,550 @@ +-- ################################################################################################# +-- # << NEORV32 - True Random Number Generator (TRNG) >> # +-- # ********************************************************************************************* # +-- # This processor module instantiates the "neoTRNG" true random number generator. # +-- # See the neoTRNG's documentation for more information: https://github.com/stnolting/neoTRNG # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_trng is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic -- transfer acknowledge + ); +end neorv32_trng; + +architecture neorv32_trng_rtl of neorv32_trng is + + -- neoTRNG Configuration ------------------------------------------------------------------------------------------- + constant num_cells_c : natural := 3; -- total number of ring-oscillator cells + constant num_inv_start_c : natural := 3; -- number of inverters in first cell (short path), has to be odd + constant num_inv_inc_c : natural := 2; -- number of additional inverters in next cell (short path), has to be even + constant num_inv_delay_c : natural := 2; -- additional inverters to form cell's long path, has to be even + -- ----------------------------------------------------------------------------------------------------------------- + + -- control register bits -- + constant ctrl_data_lsb_c : natural := 0; -- r/-: Random data byte LSB + constant ctrl_data_msb_c : natural := 7; -- r/-: Random data byte MSB + constant ctrl_en_c : natural := 30; -- r/w: TRNG enable + constant ctrl_valid_c : natural := 31; -- r/-: Output data valid + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(trng_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal wren : std_ulogic; -- full word write enable + signal rden : std_ulogic; -- read enable + + -- Component: neoTRNG true random number generator -- + component neoTRNG + generic ( + NUM_CELLS : natural; -- total number of ring-oscillator cells + NUM_INV_START : natural; -- number of inverters in first cell (short path), has to be odd + NUM_INV_INC : natural; -- number of additional inverters in next cell (short path), has to be even + NUM_INV_DELAY : natural -- additional inverters to form cell's long path, has to be even + ); + port ( + clk_i : in std_ulogic; -- global clock line + enable_i : in std_ulogic; -- unit enable (high-active), reset unit when low + data_o : out std_ulogic_vector(7 downto 0); -- random data byte output + valid_o : out std_ulogic -- data_o is valid when set + ); + end component; + + -- TRNG interface -- + signal trng_data : std_ulogic_vector(7 downto 0); + signal trng_valid : std_ulogic; + + -- arbiter -- + signal enable : std_ulogic; + signal valid : std_ulogic; + signal rnd_reg : std_ulogic_vector(7 downto 0); + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = trng_base_c(hi_abb_c downto lo_abb_c)) else '0'; + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- host bus acknowledge -- + ack_o <= wren or rden; + + -- write access -- + if (wren = '1') then + enable <= data_i(ctrl_en_c); + end if; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + data_o(ctrl_data_msb_c downto ctrl_data_lsb_c) <= rnd_reg; + data_o(ctrl_en_c) <= enable; + data_o(ctrl_valid_c) <= valid; + end if; + + -- sample -- + if (trng_valid = '1') then + rnd_reg <= trng_data; + end if; + + -- data valid? -- + if (enable = '0') then -- disabled + valid <= '0'; + else + if (trng_valid = '1') then + valid <= '1'; + elsif (rden = '1') then + valid <= '0'; + end if; + end if; + end if; + end process rw_access; + + + -- neoTRNG -------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neoTRNG_inst: neoTRNG + generic map ( + NUM_CELLS => num_cells_c, + NUM_INV_START => num_inv_start_c, + NUM_INV_INC => num_inv_inc_c, + NUM_INV_DELAY => num_inv_delay_c + ) + port map ( + clk_i => clk_i, + enable_i => enable, + data_o => trng_data, + valid_o => trng_valid + ); + + +end neorv32_trng_rtl; + + +-- ############################################################################################################################ +-- ############################################################################################################################ + + +-- ################################################################################################# +-- # << neoTRNG - A Tiny and Platform-Independent True Random Number Generator for any FPGA >> # +-- # ********************************************************************************************* # +-- # This generator is based on entropy cells, which implement simple ring-oscillators. Each ring- # +-- # oscillator features a short and a long delay path that is dynamically selected defining the # +-- # primary oscillation frequency. The cells are cascaded so that the random data output of a # +-- # cell controls the delay path of the next cell (which has the next-larger inverter chain). # +-- # # +-- # The random data outputs of all cells are XOR-ed and de-biased using a von Neumann randomness # +-- # extractor (converting edges into bits). The resulting bit is sampled in chunks of 8 bits to # +-- # provide the final random data output. No further internal post-processing is applied. Hence, # +-- # the TRNG produces simple de-biased *RAW* data. # +-- # # +-- # The entropy cell architecture uses individually-controlled latches and inverters to create # +-- # the inverter chain in a platform-agnostic style that can be implemented for any FPGA without # +-- # requiring primitive instantiation or technology-specific attributes. # +-- # # +-- # See the neoTRNG's documentation for more information: https://github.com/stnolting/neoTRNG # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # neoTRNG - https://github.com/stnolting/neoTRNG (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity neoTRNG is + generic ( + NUM_CELLS : natural; -- total number of ring-oscillator cells + NUM_INV_START : natural; -- number of inverters in first cell (short path), has to be odd + NUM_INV_INC : natural; -- number of additional inverters in next cell (short path), has to be even + NUM_INV_DELAY : natural -- additional inverters to form cell's long path, has to be even + ); + port ( + clk_i : in std_ulogic; -- global clock line + enable_i : in std_ulogic; -- unit enable (high-active), reset unit when low + data_o : out std_ulogic_vector(7 downto 0); -- random data byte output + valid_o : out std_ulogic -- data_o is valid when set + ); +end neoTRNG; + +architecture neoTRNG_rtl of neoTRNG is + + -- Component: neoTRNG entropy cell -- + component neoTRNG_cell + generic ( + NUM_INV_S : natural; -- number of inverters in short path + NUM_INV_L : natural -- number of inverters in long path + ); + port ( + clk_i : in std_ulogic; -- system clock + select_i : in std_ulogic; -- delay select + enable_i : in std_ulogic; -- enable chain input + enable_o : out std_ulogic; -- enable chain output + data_o : out std_ulogic -- sync random bit + ); + end component; + + -- ring-oscillator array interconnect -- + type cell_array_t is record + en_in : std_ulogic_vector(NUM_CELLS-1 downto 0); + en_out : std_ulogic_vector(NUM_CELLS-1 downto 0); + rnd : std_ulogic_vector(NUM_CELLS-1 downto 0); + sel : std_ulogic_vector(NUM_CELLS-1 downto 0); + end record; + signal cell_array : cell_array_t; + + -- global cell-XOR -- + signal rnd_bit : std_ulogic; + + -- von-Neumann de-biasing -- + type debiasing_t is record + sreg : std_ulogic_vector(1 downto 0); + state : std_ulogic; -- process de-biasing every second cycle + valid : std_ulogic; -- de-biased data + data : std_ulogic; -- de-biased data valid + end record; + signal deb : debiasing_t; + + -- control unit -- + type ctrl_t is record + enable : std_ulogic; + run : std_ulogic; + cnt : std_ulogic_vector(2 downto 0); -- bit counter + sreg : std_ulogic_vector(7 downto 0); -- data shift register + end record; + signal ctrl : ctrl_t; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (NUM_CELLS < 2) report "neoTRNG config ERROR: Total number of ring-oscillator cells has to be >= 2." severity error; + assert not ((NUM_INV_START mod 2) = 0) report "neoTRNG config ERROR: Number of inverters in first cell has to be odd." severity error; + assert not ((NUM_INV_INC mod 2) /= 0) report "neoTRNG config ERROR: Inverter increment for each next cell has to be even." severity error; + assert not ((NUM_INV_DELAY mod 2) /= 0) report "neoTRNG config ERROR: Inverter increment to form long path has to be even." severity error; + + + -- Entropy Source ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neoTRNG_cell_inst: + for i in 0 to NUM_CELLS-1 generate + neoTRNG_cell_inst_i: neoTRNG_cell + generic map ( + NUM_INV_S => NUM_INV_START + (i*NUM_INV_INC), -- number of inverters in short chain + NUM_INV_L => NUM_INV_START + (i*NUM_INV_INC) + NUM_INV_DELAY -- number of inverters in long chain + ) + port map ( + clk_i => clk_i, + select_i => cell_array.sel(i), + enable_i => cell_array.en_in(i), + enable_o => cell_array.en_out(i), + data_o => cell_array.rnd(i) -- SYNC data output + ); + end generate; + + -- path select chain -- + cell_array.sel(0) <= cell_array.rnd(NUM_CELLS-1); -- use output of last cell to select path of first cell + cell_array.sel(NUM_CELLS-1 downto 1) <= cell_array.rnd(NUM_CELLS-2 downto 0); -- i+1 <= i + + -- enable chain -- + cell_array.en_in(0) <= ctrl.enable; -- start of chain + cell_array.en_in(NUM_CELLS-1 downto 1) <=cell_array.en_out(NUM_CELLS-2 downto 0); -- i+1 <= i + + + -- XOR All Cell's Outputs ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + cell_xor: process(cell_array.rnd) + variable tmp_v : std_ulogic; + begin + tmp_v := '0'; + for i in 0 to NUM_CELLS-1 loop + tmp_v := tmp_v xor cell_array.rnd(i); + end loop; -- i + rnd_bit <= tmp_v; + end process cell_xor; + + + -- John von Neumann Randomness Extractor -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + debiasing_sync: process(clk_i) + begin + if rising_edge(clk_i) then + deb.sreg <= deb.sreg(0) & rnd_bit; + -- start operation when last cell is enabled and process in every second cycle -- + deb.state <= (not deb.state) and cell_array.en_out(NUM_CELLS-1); + end if; + end process debiasing_sync; + + -- edge detector -- + debiasing_comb: process(deb) + variable tmp_v : std_ulogic_vector(2 downto 0); + begin + tmp_v := deb.state & deb.sreg(1 downto 0); -- check groups of two non-overlapping bits from the input stream + case tmp_v is + when "101" => deb.valid <= '1'; deb.data <= '0'; -- rising edge = '0' + when "110" => deb.valid <= '1'; deb.data <= '1'; -- falling edge = '1' + when others => deb.valid <= '0'; deb.data <= '-'; -- no valid data + end case; + end process debiasing_comb; + + + -- Control Unit --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + control_unit: process(clk_i) + begin + if rising_edge(clk_i) then + -- make sure enable is sync -- + ctrl.enable <= enable_i; + + -- sample chunks of 8 bit -- + if (ctrl.enable = '0') then + ctrl.cnt <= (others => '0'); + ctrl.run <= '0'; + elsif (deb.valid = '1') then -- valid random sample? + ctrl.cnt <= std_ulogic_vector(unsigned(ctrl.cnt) + 1); + ctrl.run <= '1'; + end if; + + -- sample shift register -- + if (deb.valid = '1') then + ctrl.sreg <= ctrl.sreg(ctrl.sreg'left-1 downto 0) & deb.data; + end if; + + end if; + end process control_unit; + + -- random byte output -- + data_o <= ctrl.sreg; + + -- data valid? -- + valid_o <= '1' when (ctrl.cnt = "000") and (ctrl.run = '1') else '0'; + + +end neoTRNG_rtl; + + +-- ############################################################################################################################ +-- ############################################################################################################################ + + +-- ################################################################################################# +-- # << neoTRNG - A Tiny and Platform-Independent True Random Number Generator for any FPGA >> # +-- # ********************************************************************************************* # +-- # neoTRNG Entropy Cell # +-- # # +-- # The cell consists of two ring-oscillators build from inverter chains. The short chain uses # +-- # NUM_INV_S inverters and oscillates at a "high" frequency and the long chain uses NUM_INV_L # +-- # inverters and oscillates at a "low" frequency. The select_i input selects which chain is # +-- # actually used. # +-- # # +-- # Each inverter chain is constructed as an "asynchronous" shift register. The single inverters # +-- # are connected via latches that are used to enable/disable the TRNG. Also, these latches are # +-- # used as additional delay element. By using unique enable signals for each latch, the # +-- # synthesis tool cannot "optimize" (=remove) any of the inverters out of the design making the # +-- # design platform-agnostic. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # neoTRNG - https://github.com/stnolting/neoTRNG (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; + +entity neoTRNG_cell is + generic ( + NUM_INV_S : natural; -- number of inverters in short path + NUM_INV_L : natural -- number of inverters in long path + ); + port ( + clk_i : in std_ulogic; -- system clock + select_i : in std_ulogic; -- delay select + enable_i : in std_ulogic; -- enable chain input + enable_o : out std_ulogic; -- enable chain output + data_o : out std_ulogic -- sync random bit + ); +end neoTRNG_cell; + +architecture neoTRNG_cell_rtl of neoTRNG_cell is + + signal inv_chain_s : std_ulogic_vector(NUM_INV_S-1 downto 0); -- short oscillator chain + signal inv_chain_l : std_ulogic_vector(NUM_INV_L-1 downto 0); -- long oscillator chain + signal feedback : std_ulogic; -- cell feedback/output + signal enable_sreg_s : std_ulogic_vector(NUM_INV_S-1 downto 0); -- enable shift register for short chain + signal enable_sreg_l : std_ulogic_vector(NUM_INV_L-1 downto 0); -- enable shift register for long chain + signal sync_ff : std_ulogic_vector(1 downto 0); -- output signal synchronizer + +begin + + -- Ring Oscillators ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Each cell provides a short inverter chain (high frequency) and a long oscillator chain (low frequency). + -- The select_i signals defines which chain is enabled. + -- NOTE: All signals that control a inverter-latch element have to be registered to ensure a single element + -- is mapped to a single LUT (or LUT + FF(latch-mode)). + + -- short oscillator chain -- + ring_osc_short: process(enable_i, enable_sreg_s, feedback, inv_chain_s) + begin + for i in 0 to NUM_INV_S-1 loop -- inverters in short chain + if (enable_i = '0') then -- start with a defined state (latch reset) + inv_chain_s(i) <= '0'; + elsif (enable_sreg_s(i) = '1') then + if (i = NUM_INV_S-1) then -- left-most inverter? + inv_chain_s(i) <= not feedback; + else + inv_chain_s(i) <= not inv_chain_s(i+1); + end if; + end if; + end loop; -- i + end process ring_osc_short; + + -- long oscillator chain -- + ring_osc_long: process(enable_i, enable_sreg_l, feedback, inv_chain_l) + begin + for i in 0 to NUM_INV_L-1 loop -- inverters in long chain + if (enable_i = '0') then -- start with a defined state (latch reset) + inv_chain_l(i) <= '0'; + elsif (enable_sreg_l(i) = '1') then + if (i = NUM_INV_L-1) then -- left-most inverter? + inv_chain_l(i) <= not feedback; + else + inv_chain_l(i) <= not inv_chain_l(i+1); + end if; + end if; + end loop; -- i + end process ring_osc_long; + + -- length select -- + feedback <= inv_chain_l(0) when (select_i = '0') else inv_chain_s(0); + + + -- Control -------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Using individual enable signals for each inverter from a shift register to prevent the synthesis tool + -- from removing all but one inverter (since they implement "logical identical functions" (='toggle')). + -- This makes the TRNG platform independent (since we do not need to use primitives to ensure a correct architecture). + ctrl_unit: process(clk_i) + begin + if rising_edge(clk_i) then + -- enable sreg -- + enable_sreg_s <= enable_sreg_s(enable_sreg_s'left-1 downto 0) & enable_i; + enable_sreg_l <= enable_sreg_l(enable_sreg_l'left-1 downto 0) & enable_sreg_s(enable_sreg_s'left); + -- data output sync - no metastability beyond this point -- + sync_ff <= sync_ff(0) & feedback; + end if; + end process ctrl_unit; + + -- output for "enable chain" -- + enable_o <= enable_sreg_l(enable_sreg_l'left); + + -- random data output -- + data_o <= sync_ff(1); + + +end neoTRNG_cell_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_twi.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_twi.vhd new file mode 100644 index 0000000..aee310f --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_twi.vhd @@ -0,0 +1,290 @@ +-- ################################################################################################# +-- # << NEORV32 - Two-Wire Interface Controller (TWI) >> # +-- # ********************************************************************************************* # +-- # Supports START and STOP conditions, 8 bit data + ACK/NACK transfers and clock stretching. # +-- # Supports ACKs by the controller. No multi-controller support and no peripheral mode support # +-- # yet. Interrupt: "operation done" # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_twi is + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- com lines -- + twi_sda_io : inout std_logic; -- serial data line + twi_scl_io : inout std_logic; -- serial clock line + -- interrupt -- + irq_o : out std_ulogic -- transfer done IRQ + ); +end neorv32_twi; + +architecture neorv32_twi_rtl of neorv32_twi is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(twi_size_c); -- low address boundary bit + + -- control register -- + constant ctrl_en_c : natural := 0; -- r/w: TWI enable + constant ctrl_start_c : natural := 1; -- -/w: Generate START condition + constant ctrl_stop_c : natural := 2; -- -/w: Generate STOP condition + constant ctrl_prsc0_c : natural := 3; -- r/w: CLK prsc bit 0 + constant ctrl_prsc1_c : natural := 4; -- r/w: CLK prsc bit 1 + constant ctrl_prsc2_c : natural := 5; -- r/w: CLK prsc bit 2 + constant ctrl_mack_c : natural := 6; -- r/w: generate ACK by controller for transmission + -- + constant ctrl_ack_c : natural := 30; -- r/-: Set if ACK received + constant ctrl_busy_c : natural := 31; -- r/-: Set if TWI unit is busy + -- + signal ctrl : std_ulogic_vector(6 downto 0); -- unit's control register + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- twi clocking -- + signal twi_clk : std_ulogic; + signal twi_phase_gen : std_ulogic_vector(3 downto 0); + signal twi_clk_phase : std_ulogic_vector(3 downto 0); + + -- twi clock stretching -- + signal twi_clk_halt : std_ulogic; + + -- twi transceiver core -- + signal arbiter : std_ulogic_vector(2 downto 0); + signal bitcnt : std_ulogic_vector(3 downto 0); + signal rtx_sreg : std_ulogic_vector(8 downto 0); -- main rx/tx shift reg + + -- tri-state I/O -- + signal twi_sda_in_ff : std_ulogic_vector(1 downto 0); -- SDA input sync + signal twi_scl_in_ff : std_ulogic_vector(1 downto 0); -- SCL input sync + signal twi_sda_in : std_ulogic; + signal twi_scl_in : std_ulogic; + signal twi_sda_out : std_ulogic; + signal twi_scl_out : std_ulogic; + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = twi_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= twi_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= rden or wren; + -- write access -- + if (wren = '1') then + if (addr = twi_ctrl_addr_c) then + ctrl <= data_i(ctrl'left downto 0); + end if; + end if; + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + if (addr = twi_ctrl_addr_c) then + data_o(ctrl_en_c) <= ctrl(ctrl_en_c); + data_o(ctrl_prsc0_c) <= ctrl(ctrl_prsc0_c); + data_o(ctrl_prsc1_c) <= ctrl(ctrl_prsc1_c); + data_o(ctrl_prsc2_c) <= ctrl(ctrl_prsc2_c); + data_o(ctrl_mack_c) <= ctrl(ctrl_mack_c); + -- + data_o(ctrl_ack_c) <= not rtx_sreg(0); + data_o(ctrl_busy_c) <= arbiter(1) or arbiter(0); + else -- twi_rtx_addr_c => + data_o(7 downto 0) <= rtx_sreg(8 downto 1); + end if; + end if; + end if; + end process rw_access; + + + -- Clock Generation ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- clock generator enable -- + clkgen_en_o <= ctrl(ctrl_en_c); + + -- twi clock select -- + twi_clk <= clkgen_i(to_integer(unsigned(ctrl(ctrl_prsc2_c downto ctrl_prsc0_c)))); + + -- generate four non-overlapping clock ticks at twi_clk/4 -- + clock_phase_gen: process(clk_i) + begin + if rising_edge(clk_i) then + if (arbiter(2) = '0') or (arbiter(1 downto 0) = "00") then -- offline or idle + twi_phase_gen <= "0001"; -- make sure to start with a new phase, bit 0,1,2,3 stepping + elsif (twi_clk = '1') and (twi_clk_halt = '0') then -- enabled and no clock stretching detected + twi_phase_gen <= twi_phase_gen(2 downto 0) & twi_phase_gen(3); -- rotate left + end if; + end if; + end process clock_phase_gen; + + -- TWI bus signals are set/sampled using 4 clock phases -- + twi_clk_phase(0) <= twi_phase_gen(0) and twi_clk; -- first step + twi_clk_phase(1) <= twi_phase_gen(1) and twi_clk; + twi_clk_phase(2) <= twi_phase_gen(2) and twi_clk; + twi_clk_phase(3) <= twi_phase_gen(3) and twi_clk; -- last step + + + -- TWI Transceiver ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + twi_rtx_unit: process(clk_i) + begin + if rising_edge(clk_i) then + -- input synchronizer & sampler -- + twi_sda_in_ff <= twi_sda_in_ff(0) & twi_sda_in; + twi_scl_in_ff <= twi_scl_in_ff(0) & twi_scl_in; + + -- defaults -- + irq_o <= '0'; + + -- serial engine -- + arbiter(2) <= ctrl(ctrl_en_c); -- still activated? + case arbiter is + + when "100" => -- IDLE: waiting for requests, bus might be still claimed by this controller if no STOP condition was generated + bitcnt <= (others => '0'); + if (wren = '1') then + if (addr = twi_ctrl_addr_c) then + if (data_i(ctrl_start_c) = '1') then -- issue START condition + arbiter(1 downto 0) <= "01"; + elsif (data_i(ctrl_stop_c) = '1') then -- issue STOP condition + arbiter(1 downto 0) <= "10"; + end if; + elsif (addr = twi_rtx_addr_c) then -- start a data transmission + -- one bit extra for ack, issued by controller if ctrl_mack_c is set, + -- sampled from peripheral if ctrl_mack_c is cleared + rtx_sreg <= data_i(7 downto 0) & (not ctrl(ctrl_mack_c)); + arbiter(1 downto 0) <= "11"; + end if; + end if; + + when "101" => -- START: generate START condition + if (twi_clk_phase(0) = '1') then + twi_sda_out <= '1'; + elsif (twi_clk_phase(1) = '1') then + twi_sda_out <= '0'; + end if; + -- + if (twi_clk_phase(0) = '1') then + twi_scl_out <= '1'; + elsif (twi_clk_phase(3) = '1') then + twi_scl_out <= '0'; + irq_o <= '1'; -- Interrupt! + arbiter(1 downto 0) <= "00"; -- go back to IDLE + end if; + + when "110" => -- STOP: generate STOP condition + if (twi_clk_phase(0) = '1') then + twi_sda_out <= '0'; + elsif (twi_clk_phase(3) = '1') then + twi_sda_out <= '1'; + irq_o <= '1'; -- Interrupt! + arbiter(1 downto 0) <= "00"; -- go back to IDLE + end if; + -- + if (twi_clk_phase(0) = '1') then + twi_scl_out <= '0'; + elsif (twi_clk_phase(1) = '1') then + twi_scl_out <= '1'; + end if; + + when "111" => -- TRANSMISSION: transmission in progress + if (twi_clk_phase(0) = '1') then + bitcnt <= std_ulogic_vector(unsigned(bitcnt) + 1); + twi_scl_out <= '0'; + twi_sda_out <= rtx_sreg(8); -- MSB first + elsif (twi_clk_phase(1) = '1') then -- first half + second half of valid data strobe + twi_scl_out <= '1'; + elsif (twi_clk_phase(3) = '1') then + rtx_sreg <= rtx_sreg(7 downto 0) & twi_sda_in_ff(twi_sda_in_ff'left); -- sample and shift left + twi_scl_out <= '0'; + end if; + -- + if (bitcnt = "1010") then -- 8 data bits + 1 bit for ACK + 1 tick delay + irq_o <= '1'; -- Interrupt! + arbiter(1 downto 0) <= "00"; -- go back to IDLE + end if; + + when others => -- "0--" OFFLINE: TWI deactivated + twi_sda_out <= '1'; + twi_scl_out <= '1'; + arbiter(1 downto 0) <= "00"; -- stay here, go to idle when activated + + end case; + end if; + end process twi_rtx_unit; + + + -- Clock Stretching Detector -------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- controller wants to pull SCL high, but SCL is pulled low by peripheral -- + twi_clk_halt <= '1' when (twi_scl_out = '1') and (twi_scl_in_ff(twi_scl_in_ff'left) = '0') else '0'; + + + -- Tri-State Driver ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- SDA and SCL need to be of type std_logic to be correctly resolved in simulation + twi_sda_io <= '0' when (twi_sda_out = '0') else 'Z'; + twi_scl_io <= '0' when (twi_scl_out = '0') else 'Z'; + + -- read-back -- + twi_sda_in <= std_ulogic(twi_sda_io); + twi_scl_in <= std_ulogic(twi_scl_io); + + +end neorv32_twi_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_uart.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_uart.vhd new file mode 100644 index 0000000..87daf86 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_uart.vhd @@ -0,0 +1,648 @@ +-- ################################################################################################# +-- # << NEORV32 - Universal Asynchronous Receiver and Transmitter (UART0/1) >> # +-- # ********************************************************************************************* # +-- # Frame configuration: 1 start bit, 8 bit data, parity bit (none/even/odd), 1 stop bit, # +-- # programmable BAUD rate via clock pre-scaler and 12-bit BAUD value configuration register, # +-- # optional configurable RX and TX FIFOs. # +-- # # +-- # Interrupts: Configurable RX and TX interrupt (both triggered by specific FIFO fill-levels) # +-- # # +-- # Support for RTS("RTR")/CTS hardware flow control: # +-- # * uart_rts_o = 0: RX is ready to receive a new char, enabled via CTRL.ctrl_rts_en_c # +-- # * uart_cts_i = 0: TX is allowed to send a new char, enabled via CTRL.ctrl_cts_en_c # +-- # # +-- # UART0 / UART1: # +-- # This module is used for implementing UART0 and UART1. The UART_PRIMARY generic configures the # +-- # interface register addresses and simulation outputs for UART0 (UART_PRIMARY = true) or UART1 # +-- # (UART_PRIMARY = false). # +-- # # +-- # SIMULATION MODE: # +-- # When the simulation mode is enabled (setting the ctrl.ctrl_sim_en_c bit) any write # +-- # access to the TX register will not trigger any UART activity. Instead, the written data is # +-- # output to the simulation environment. The lowest 8 bits of the written data are printed as # +-- # ASCII char to the simulator console. # +-- # This char is also stored to the file "neorv32.uartX.sim_mode.text.out" (where X = 0 for UART0 # +-- # and X = 1 for UART1). The full 32-bit write data is also stored as 8-digit hexadecimal value # +-- # to the file "neorv32.uartX.sim_mode.data.out" (where X = 0 for UART0 and X = 1 for UART1). # +-- # No interrupts are triggered when in SIMULATION MODE. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; +use std.textio.all; + +entity neorv32_uart is + generic ( + UART_PRIMARY : boolean; -- true = primary UART (UART0), false = secondary UART (UART1) + UART_RX_FIFO : natural; -- RX fifo depth, has to be a power of two, min 1 + UART_TX_FIFO : natural -- TX fifo depth, has to be a power of two, min 1 + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- com lines -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- hardware flow control -- + uart_rts_o : out std_ulogic; -- UART.RX ready to receive ("RTR"), low-active, optional + uart_cts_i : in std_ulogic; -- UART.TX allowed to transmit, low-active, optional + -- interrupts -- + irq_rxd_o : out std_ulogic; -- uart data received interrupt + irq_txd_o : out std_ulogic -- uart transmission done interrupt + ); +end neorv32_uart; + +architecture neorv32_uart_rtl of neorv32_uart is + + -- interface configuration for UART0 / UART1 -- + constant uart_id_base_c : std_ulogic_vector(data_width_c-1 downto 0) := cond_sel_stdulogicvector_f(UART_PRIMARY, uart0_base_c, uart1_base_c); + constant uart_id_size_c : natural := cond_sel_natural_f( UART_PRIMARY, uart0_size_c, uart1_size_c); + constant uart_id_ctrl_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := cond_sel_stdulogicvector_f(UART_PRIMARY, uart0_ctrl_addr_c, uart1_ctrl_addr_c); + constant uart_id_rtx_addr_c : std_ulogic_vector(data_width_c-1 downto 0) := cond_sel_stdulogicvector_f(UART_PRIMARY, uart0_rtx_addr_c, uart1_rtx_addr_c); + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(uart_id_size_c); -- low address boundary bit + + -- simulation output configuration -- + constant sim_screen_output_en_c : boolean := true; -- output lowest byte as char to simulator console when enabled + constant sim_text_output_en_c : boolean := true; -- output lowest byte as char to text file when enabled + constant sim_data_output_en_c : boolean := true; -- dump 32-bit TX word to file when enabled + constant sim_uart_text_file_c : string := cond_sel_string_f(UART_PRIMARY, "neorv32.uart0.sim_mode.text.out", "neorv32.uart1.sim_mode.text.out"); + constant sim_uart_data_file_c : string := cond_sel_string_f(UART_PRIMARY, "neorv32.uart0.sim_mode.data.out", "neorv32.uart1.sim_mode.data.out"); + + -- control register -- + signal ctrl : std_ulogic_vector(31 downto 0); + + -- control register bits -- + constant ctrl_baud00_c : natural := 0; -- r/w: baud config bit 0 + constant ctrl_baud01_c : natural := 1; -- r/w: baud config bit 1 + constant ctrl_baud02_c : natural := 2; -- r/w: baud config bit 2 + constant ctrl_baud03_c : natural := 3; -- r/w: baud config bit 3 + constant ctrl_baud04_c : natural := 4; -- r/w: baud config bit 4 + constant ctrl_baud05_c : natural := 5; -- r/w: baud config bit 5 + constant ctrl_baud06_c : natural := 6; -- r/w: baud config bit 6 + constant ctrl_baud07_c : natural := 7; -- r/w: baud config bit 7 + constant ctrl_baud08_c : natural := 8; -- r/w: baud config bit 8 + constant ctrl_baud09_c : natural := 9; -- r/w: baud config bit 9 + constant ctrl_baud10_c : natural := 10; -- r/w: baud config bit 10 + constant ctrl_baud11_c : natural := 11; -- r/w: baud config bit 11 + constant ctrl_sim_en_c : natural := 12; -- r/w: UART <> enable + constant ctrl_rx_empty_c : natural := 13; -- r/-: RX FIFO is empty + constant ctrl_rx_half_c : natural := 14; -- r/-: RX FIFO is at least half-full + constant ctrl_rx_full_c : natural := 15; -- r/-: RX FIFO is full + constant ctrl_tx_empty_c : natural := 16; -- r/-: TX FIFO is empty + constant ctrl_tx_half_c : natural := 17; -- r/-: TX FIFO is at least half-full + constant ctrl_tx_full_c : natural := 18; -- r/-: TX FIFO is full + -- ... + constant ctrl_rts_en_c : natural := 20; -- r/w: enable hardware flow control: assert rts_o if ready to receive + constant ctrl_cts_en_c : natural := 21; -- r/w: enable hardware flow control: send only if cts_i is asserted + constant ctrl_pmode0_c : natural := 22; -- r/w: Parity config (0=even; 1=odd) + constant ctrl_pmode1_c : natural := 23; -- r/w: Enable parity bit + constant ctrl_prsc0_c : natural := 24; -- r/w: baud prsc bit 0 + constant ctrl_prsc1_c : natural := 25; -- r/w: baud prsc bit 1 + constant ctrl_prsc2_c : natural := 26; -- r/w: baud prsc bit 2 + constant ctrl_cts_c : natural := 27; -- r/-: current state of CTS input + constant ctrl_en_c : natural := 28; -- r/w: UART enable + constant ctrl_rx_irq_c : natural := 29; -- r/w: RX IRQ mode: 1=FIFO at least half-full; 0=FIFO not empty + constant ctrl_tx_irq_c : natural := 30; -- r/w: TX IRQ mode: 1=FIFO less than half-full; 0=FIFO not full + constant ctrl_tx_busy_c : natural := 31; -- r/-: UART transmitter is busy + + -- data register flags -- + constant data_lsb_c : natural := 0; -- r/-: received char LSB + constant data_msb_c : natural := 7; -- r/-: received char MSB + -- ... + constant data_rx_perr_c : natural := 28; -- r/-: RX parity error + constant data_rx_ferr_c : natural := 29; -- r/-: RX frame error + constant data_rx_overr_c : natural := 30; -- r/-: RX data overrun + constant data_rx_avail_c : natural := 31; -- r/-: RX data available + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- clock generator -- + signal uart_clk : std_ulogic; + + -- numbers of bits in transmission frame -- + signal num_bits : std_ulogic_vector(3 downto 0); + + -- hardware flow-control IO buffer -- + signal uart_cts_ff : std_ulogic_vector(1 downto 0); + signal uart_rts : std_ulogic; + + -- UART transmitter -- + type tx_state_t is (S_TX_IDLE, S_TX_GET, S_TX_CHECK, S_TX_TRANSMIT, S_TX_SIM); + type tx_engine_t is record + state : tx_state_t; + busy : std_ulogic; + done : std_ulogic; + bitcnt : std_ulogic_vector(03 downto 0); + sreg : std_ulogic_vector(10 downto 0); + baud_cnt : std_ulogic_vector(11 downto 0); + cts : std_ulogic; -- allow new transmission when 1 + end record; + signal tx_engine : tx_engine_t; + + -- UART receiver -- + type rx_state_t is (S_RX_IDLE, S_RX_RECEIVE); + type rx_engine_t is record + state : rx_state_t; + done : std_ulogic; + sync : std_ulogic_vector(04 downto 0); + bitcnt : std_ulogic_vector(03 downto 0); + sreg : std_ulogic_vector(09 downto 0); + baud_cnt : std_ulogic_vector(11 downto 0); + overr : std_ulogic; + rtr : std_ulogic; -- ready to receive when 1 + end record; + signal rx_engine : rx_engine_t; + + -- TX FIFO -- + type tx_buffer_t is record + we : std_ulogic; -- write enable + re : std_ulogic; -- read enable + clear : std_ulogic; -- sync reset, high-active + wdata : std_ulogic_vector(31 downto 0); -- write data + rdata : std_ulogic_vector(31 downto 0); -- read data + avail : std_ulogic; -- data available? + free : std_ulogic; -- free entry available? + half : std_ulogic; -- half full + end record; + signal tx_buffer : tx_buffer_t; + + -- RX FIFO -- + type rx_buffer_t is record + we : std_ulogic; -- write enable + re : std_ulogic; -- read enable + clear : std_ulogic; -- sync reset, high-active + wdata : std_ulogic_vector(9 downto 0); -- write data + rdata : std_ulogic_vector(9 downto 0); -- read data + avail : std_ulogic; -- data available? + free : std_ulogic; -- free entry available? + half : std_ulogic; -- half full + end record; + signal rx_buffer : rx_buffer_t; + + -- interrupt generator -- + type irq_t is record + set : std_ulogic; + buf : std_ulogic_vector(1 downto 0); + end record; + signal rx_irq, tx_irq : irq_t; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (is_power_of_two_f(UART_RX_FIFO) = false) report "NEORV32 PROCESSOR CONFIG ERROR: UART" & + cond_sel_string_f(UART_PRIMARY, "0", "1") & " has to be a power of two." severity error; + assert not (is_power_of_two_f(UART_TX_FIFO) = false) report "NEORV32 PROCESSOR CONFIG ERROR: UART" & + cond_sel_string_f(UART_PRIMARY, "0", "1") & " has to be a power of two." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = uart_id_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= uart_id_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- bus access acknowledge -- + ack_o <= wren or rden; + + -- write access -- + if (wren = '1') then + if (addr = uart_id_ctrl_addr_c) then + ctrl <= (others => '0'); + ctrl(ctrl_baud11_c downto ctrl_baud00_c) <= data_i(ctrl_baud11_c downto ctrl_baud00_c); + ctrl(ctrl_sim_en_c) <= data_i(ctrl_sim_en_c); + ctrl(ctrl_pmode1_c downto ctrl_pmode0_c) <= data_i(ctrl_pmode1_c downto ctrl_pmode0_c); + ctrl(ctrl_prsc2_c downto ctrl_prsc0_c) <= data_i(ctrl_prsc2_c downto ctrl_prsc0_c); + ctrl(ctrl_rts_en_c) <= data_i(ctrl_rts_en_c); + ctrl(ctrl_cts_en_c) <= data_i(ctrl_cts_en_c); + ctrl(ctrl_rx_irq_c) <= data_i(ctrl_rx_irq_c); + ctrl(ctrl_tx_irq_c) <= data_i(ctrl_tx_irq_c); + ctrl(ctrl_en_c) <= data_i(ctrl_en_c); + end if; + end if; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + if (addr = uart_id_ctrl_addr_c) then + data_o(ctrl_baud11_c downto ctrl_baud00_c) <= ctrl(ctrl_baud11_c downto ctrl_baud00_c); + data_o(ctrl_sim_en_c) <= ctrl(ctrl_sim_en_c); + data_o(ctrl_pmode1_c downto ctrl_pmode0_c) <= ctrl(ctrl_pmode1_c downto ctrl_pmode0_c); + data_o(ctrl_prsc2_c downto ctrl_prsc0_c) <= ctrl(ctrl_prsc2_c downto ctrl_prsc0_c); + data_o(ctrl_rts_en_c) <= ctrl(ctrl_rts_en_c); + data_o(ctrl_cts_en_c) <= ctrl(ctrl_cts_en_c); + data_o(ctrl_rx_empty_c) <= not rx_buffer.avail; + data_o(ctrl_rx_half_c) <= rx_buffer.half; + data_o(ctrl_rx_full_c) <= not rx_buffer.free; + data_o(ctrl_tx_empty_c) <= not tx_buffer.avail; + data_o(ctrl_tx_half_c) <= tx_buffer.half; + data_o(ctrl_tx_full_c) <= not tx_buffer.free; + data_o(ctrl_en_c) <= ctrl(ctrl_en_c); + data_o(ctrl_rx_irq_c) <= ctrl(ctrl_rx_irq_c) and bool_to_ulogic_f(boolean(UART_RX_FIFO > 1)); -- tie to zero if UART_RX_FIFO = 1 + data_o(ctrl_tx_irq_c) <= ctrl(ctrl_tx_irq_c) and bool_to_ulogic_f(boolean(UART_TX_FIFO > 1)); -- tie to zero if UART_TX_FIFO = 1 + data_o(ctrl_tx_busy_c) <= tx_engine.busy; + data_o(ctrl_cts_c) <= uart_cts_ff(1); + else -- uart_id_rtx_addr_c + data_o(data_msb_c downto data_lsb_c) <= rx_buffer.rdata(7 downto 0); + data_o(data_rx_perr_c) <= rx_buffer.rdata(8); + data_o(data_rx_ferr_c) <= rx_buffer.rdata(9); + data_o(data_rx_overr_c) <= rx_engine.overr; + data_o(data_rx_avail_c) <= rx_buffer.avail; -- data available (valid?) + end if; + end if; + end if; + end process rw_access; + + -- number of bits to be sampled -- + -- if parity flag is ENABLED: 11 bit -> "1011" (1 start bit + 8 data bits + 1 parity bit + 1 stop bit) + -- if parity flag is DISABLED: 10 bit -> "1010" (1 start bit + 8 data bits + 1 stop bit) + num_bits <= "1011" when (ctrl(ctrl_pmode1_c) = '1') else "1010"; + + + -- Clock Selection ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- clock enable -- + clkgen_en_o <= ctrl(ctrl_en_c); + + -- uart clock select -- + uart_clk <= clkgen_i(to_integer(unsigned(ctrl(ctrl_prsc2_c downto ctrl_prsc0_c)))); + + + -- TX FIFO -------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + tx_engine_fifo_inst: neorv32_fifo + generic map ( + FIFO_DEPTH => UART_TX_FIFO, -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH => 32, -- size of data elements in fifo (32-bit only for simulation) + FIFO_RSYNC => false, -- async read + FIFO_SAFE => true -- safe access + ) + port map ( + -- control -- + clk_i => clk_i, -- clock, rising edge + rstn_i => '1', -- async reset, low-active + clear_i => tx_buffer.clear, -- sync reset, high-active + level_o => open, + half_o => tx_buffer.half, -- FIFO at least half-full + -- write port -- + wdata_i => tx_buffer.wdata, -- write data + we_i => tx_buffer.we, -- write enable + free_o => tx_buffer.free, -- at least one entry is free when set + -- read port -- + re_i => tx_buffer.re, -- read enable + rdata_o => tx_buffer.rdata, -- read data + avail_o => tx_buffer.avail -- data available when set + ); + + -- control -- + tx_buffer.clear <= not ctrl(ctrl_en_c); + + -- write access -- + tx_buffer.we <= '1' when (wren = '1') and (addr = uart_id_rtx_addr_c) else '0'; + tx_buffer.wdata <= data_i; + + + -- UART Transmitter Engine ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + uart_tx_engine: process(clk_i) + begin + if rising_edge(clk_i) then + -- defaults -- + uart_txd_o <= '1'; -- keep TX line idle (=high) if waiting for permission to start sending (->CTS) + tx_buffer.re <= '0'; + tx_engine.done <= '0'; + + -- FSM -- + if (ctrl(ctrl_en_c) = '0') then -- disabled + tx_engine.state <= S_TX_IDLE; + else + case tx_engine.state is + + when S_TX_IDLE => -- wait for new data to send + -- ------------------------------------------------------------ + if (tx_buffer.avail = '1') then -- new data available + if (ctrl(ctrl_sim_en_c) = '0') then -- normal mode + tx_engine.state <= S_TX_GET; + else -- simulation mode + tx_engine.state <= S_TX_SIM; + end if; + tx_buffer.re <= '1'; + end if; + + when S_TX_GET => -- get new data from buffer and prepare transmission + -- ------------------------------------------------------------ + tx_engine.baud_cnt <= ctrl(ctrl_baud11_c downto ctrl_baud00_c); + tx_engine.bitcnt <= num_bits; + if (ctrl(ctrl_pmode1_c) = '1') then -- add parity flag + -- stop bit & parity bit & data (8-bit) & start bit + tx_engine.sreg <= '1' & (xor_reduce_f(tx_buffer.rdata(7 downto 0)) xor ctrl(ctrl_pmode0_c)) & tx_buffer.rdata(7 downto 0) & '0'; + else + -- (dummy fill-bit &) stop bit & data (8-bit) & start bit + tx_engine.sreg <= '1' & '1' & tx_buffer.rdata(7 downto 0) & '0'; + end if; + tx_engine.state <= S_TX_CHECK; + + when S_TX_CHECK => -- check if allowed to send + -- ------------------------------------------------------------ + if (tx_engine.cts = '1') then -- clear to send + tx_engine.state <= S_TX_TRANSMIT; + end if; + + when S_TX_TRANSMIT => -- transmit data + -- ------------------------------------------------------------ + if (uart_clk = '1') then + if (or_reduce_f(tx_engine.baud_cnt) = '0') then -- bit done? + tx_engine.baud_cnt <= ctrl(ctrl_baud11_c downto ctrl_baud00_c); + tx_engine.bitcnt <= std_ulogic_vector(unsigned(tx_engine.bitcnt) - 1); + tx_engine.sreg <= '1' & tx_engine.sreg(tx_engine.sreg'left downto 1); + else + tx_engine.baud_cnt <= std_ulogic_vector(unsigned(tx_engine.baud_cnt) - 1); + end if; + end if; + uart_txd_o <= tx_engine.sreg(0); + if (or_reduce_f(tx_engine.bitcnt) = '0') then -- all bits send? + tx_engine.done <= '1'; -- sending done + tx_engine.state <= S_TX_IDLE; + end if; + + when S_TX_SIM => -- simulation mode output + -- ------------------------------------------------------------ + tx_engine.state <= S_TX_IDLE; + + when others => -- undefined + -- ------------------------------------------------------------ + tx_engine.state <= S_TX_IDLE; + + end case; + end if; + end if; + end process uart_tx_engine; + + -- transmitter busy -- + tx_engine.busy <= '0' when (tx_engine.state = S_TX_IDLE) else '1'; + + + -- UART Receiver Engine ------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + uart_rx_engine: process(clk_i) + begin + if rising_edge(clk_i) then + -- input synchronizer -- + rx_engine.sync <= uart_rxd_i & rx_engine.sync(rx_engine.sync'left downto 1); + + -- default -- + rx_engine.done <= '0'; + + -- FSM -- + if (ctrl(ctrl_en_c) = '0') then -- disabled + rx_engine.overr <= '0'; + rx_engine.state <= S_RX_IDLE; + else + case rx_engine.state is + + when S_RX_IDLE => -- idle; prepare receive + -- ------------------------------------------------------------ + rx_engine.baud_cnt <= '0' & ctrl(ctrl_baud11_c downto ctrl_baud01_c); -- half baud delay at the beginning to sample in the middle of each bit + rx_engine.bitcnt <= num_bits; + if (rx_engine.sync(3 downto 0) = "0011") then -- start bit? (falling edge) + rx_engine.state <= S_RX_RECEIVE; + end if; + + when S_RX_RECEIVE => -- receive data + -- ------------------------------------------------------------ + if (uart_clk = '1') then + if (or_reduce_f(rx_engine.baud_cnt) = '0') then -- bit done + rx_engine.baud_cnt <= ctrl(ctrl_baud11_c downto ctrl_baud00_c); + rx_engine.bitcnt <= std_ulogic_vector(unsigned(rx_engine.bitcnt) - 1); + rx_engine.sreg <= rx_engine.sync(2) & rx_engine.sreg(rx_engine.sreg'left downto 1); + else + rx_engine.baud_cnt <= std_ulogic_vector(unsigned(rx_engine.baud_cnt) - 1); + end if; + end if; + if (or_reduce_f(rx_engine.bitcnt) = '0') then -- all bits received? + rx_engine.done <= '1'; -- receiving done + rx_engine.state <= S_RX_IDLE; + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + rx_engine.state <= S_RX_IDLE; + + end case; + + -- overrun flag -- + if (rden = '1') and (addr = uart_id_rtx_addr_c) then -- clear when reading data register + rx_engine.overr <= '0'; + elsif (rx_buffer.we = '1') and (rx_buffer.free = '0') then -- write to full FIFO + rx_engine.overr <= '1'; + end if; + end if; + end if; + end process uart_rx_engine; + + -- RX engine ready for a new char? -- + rx_engine.rtr <= '1' when (rx_engine.state = S_RX_IDLE) and (ctrl(ctrl_en_c) = '1') else '0'; + + + -- RX FIFO -------------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rx_engine_fifo_inst: neorv32_fifo + generic map ( + FIFO_DEPTH => UART_RX_FIFO, -- number of fifo entries; has to be a power of two; min 1 + FIFO_WIDTH => 10, -- size of data elements in fifo + FIFO_RSYNC => false, -- async read + FIFO_SAFE => true -- safe access + ) + port map ( + -- control -- + clk_i => clk_i, -- clock, rising edge + rstn_i => '1', -- async reset, low-active + clear_i => rx_buffer.clear, -- sync reset, high-active + level_o => open, + half_o => rx_buffer.half, -- FIFO at least half-full + -- write port -- + wdata_i => rx_buffer.wdata, -- write data + we_i => rx_buffer.we, -- write enable + free_o => rx_buffer.free, -- at least one entry is free when set + -- read port -- + re_i => rx_buffer.re, -- read enable + rdata_o => rx_buffer.rdata, -- read data + avail_o => rx_buffer.avail -- data available when set + ); + + -- control -- + rx_buffer.clear <= not ctrl(ctrl_en_c); + + -- read/write access -- + rx_buffer.wdata(7 downto 0) <= rx_engine.sreg(7 downto 0) when (ctrl(ctrl_pmode1_c) = '1') else rx_engine.sreg(8 downto 1); -- RX data + rx_buffer.wdata(8) <= ctrl(ctrl_pmode1_c) and (xor_reduce_f(rx_engine.sreg(8 downto 0)) xor ctrl(ctrl_pmode0_c)); -- parity error flag + rx_buffer.wdata(9) <= not rx_engine.sreg(9); -- frame error flag: check stop bit (error if not set) + rx_buffer.we <= '1' when (rx_engine.bitcnt = "0000") and (rx_engine.state = S_RX_RECEIVE) else '0'; -- RX complete + rx_buffer.re <= '1' when (rden = '1') and (addr = uart_id_rtx_addr_c) else '0'; + + + -- Hardware Flow Control ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + tx_engine.cts <= (not uart_cts_ff(1)) when (ctrl(ctrl_cts_en_c) = '1') else '1'; -- input is low-active, internal signal is high-active + uart_rts <= (not rx_engine.rtr) when (ctrl(ctrl_rts_en_c) = '1') else '0'; -- output is low-active + + -- flow-control input/output synchronizer -- + flow_control_buffer: process(clk_i) + begin + if rising_edge(clk_i) then -- should be mapped to IOBs + uart_cts_ff <= uart_cts_ff(0) & uart_cts_i; + uart_rts_o <= uart_rts; + end if; + end process flow_control_buffer; + + + -- Interrupt Generator -------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + irq_type: process(ctrl, tx_buffer, rx_buffer, tx_engine.done) + begin + -- TX interrupt -- + if (UART_TX_FIFO = 1) or (ctrl(ctrl_tx_irq_c) = '0') then + tx_irq.set <= tx_buffer.free and tx_engine.done; -- fire IRQ if FIFO is not full + else + tx_irq.set <= (not tx_buffer.half) and tx_engine.done; -- fire IRQ if FIFO is less than half-full + end if; + -- RX interrupt -- + if (UART_RX_FIFO = 1) or (ctrl(ctrl_rx_irq_c) = '0') then + rx_irq.set <= rx_buffer.avail; -- fire IRQ if FIFO is not empty + else + rx_irq.set <= rx_buffer.half; -- fire IRQ if FIFO is at least half-full + end if; + end process irq_type; + + -- interrupt edge detector -- + irq_detect: process(clk_i) + begin + if rising_edge(clk_i) then + if (ctrl(ctrl_en_c) = '0') then + tx_irq.buf <= "00"; + rx_irq.buf <= "00"; + else + tx_irq.buf <= tx_irq.buf(0) & tx_irq.set; + rx_irq.buf <= rx_irq.buf(0) & rx_irq.set; + end if; + end if; + end process irq_detect; + + -- IRQ requests to CPU -- + irq_txd_o <= '1' when (tx_irq.buf = "01") else '0'; + irq_rxd_o <= '1' when (rx_irq.buf = "01") else '0'; + + + -- SIMULATION Transmitter ----------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- +-- pragma translate_off +-- synthesis translate_off +-- RTL_SYNTHESIS OFF + sim_output: process(clk_i) -- for SIMULATION ONLY! + file file_uart_text_out : text open write_mode is sim_uart_text_file_c; + file file_uart_data_out : text open write_mode is sim_uart_data_file_c; + variable char_v : integer; + variable line_screen_v : line; -- we need several line variables here since "writeline" seems to flush the source variable + variable line_text_v : line; + variable line_data_v : line; + begin + if rising_edge(clk_i) then + if (tx_engine.state = S_TX_SIM) then -- UART simulation mode + + -- print lowest byte as ASCII char -- + char_v := to_integer(unsigned(tx_buffer.rdata(7 downto 0))); + if (char_v >= 128) then -- out of range? + char_v := 0; + end if; + + if (char_v /= 10) and (char_v /= 13) then -- skip line breaks - they are issued via "writeline" + if (sim_screen_output_en_c = true) then + write(line_screen_v, character'val(char_v)); + end if; + if (sim_text_output_en_c = true) then + write(line_text_v, character'val(char_v)); + end if; + end if; + + if (char_v = 10) then -- line break: write to screen and text file + if (sim_screen_output_en_c = true) then + writeline(output, line_screen_v); + end if; + if (sim_text_output_en_c = true) then + writeline(file_uart_text_out, line_text_v); + end if; + end if; + + -- dump raw data as 8 hex chars to file -- + if (sim_data_output_en_c = true) then + for x in 7 downto 0 loop + write(line_data_v, to_hexchar_f(tx_buffer.rdata(3+x*4 downto 0+x*4))); -- write in hex form + end loop; -- x + writeline(file_uart_data_out, line_data_v); + end if; + + end if; + end if; + end process sim_output; +-- RTL_SYNTHESIS ON +-- synthesis translate_on +-- pragma translate_on + +end neorv32_uart_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_wdt.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_wdt.vhd new file mode 100644 index 0000000..3d0e79a --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_wdt.vhd @@ -0,0 +1,244 @@ +-- ################################################################################################# +-- # << NEORV32 - Watch Dog Timer (WDT) >> # +-- # ********************************************************************************************* # +-- # Watchdog counter to trigger an action if the CPU gets stuck. # +-- # The internal counter is 20-bit wide. If this counter overflows one of two possible actions is # +-- # triggered: Generate an IRQ or force a hardware reset of the system. # +-- # A WDT action can also be triggered manually at any time by setting the FORCE bit. # +-- # # +-- # Access to the control register can be permanently locked by setting the lock bit. This bit # +-- # can only be cleared by a hardware reset (external or caused by the watchdog itself). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_wdt is + generic ( + DEBUG_EN : boolean -- CPU debug mode implemented? + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- CPU in debug mode? -- + cpu_debug_i : in std_ulogic; + -- clock generator -- + clkgen_en_o : out std_ulogic; -- enable clock generator + clkgen_i : in std_ulogic_vector(07 downto 0); + -- timeout event -- + irq_o : out std_ulogic; -- timeout IRQ + rstn_o : out std_ulogic -- timeout reset, low_active, use as async + ); +end neorv32_wdt; + +architecture neorv32_wdt_rtl of neorv32_wdt is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(wdt_size_c); -- low address boundary bit + + -- Control register bits -- + constant ctrl_enable_c : natural := 0; -- r/w: WDT enable + constant ctrl_clksel0_c : natural := 1; -- r/w: prescaler select bit 0 + constant ctrl_clksel1_c : natural := 2; -- r/w: prescaler select bit 1 + constant ctrl_clksel2_c : natural := 3; -- r/w: prescaler select bit 2 + constant ctrl_mode_c : natural := 4; -- r/w: 0: WDT timeout triggers interrupt, 1: WDT timeout triggers hard reset + constant ctrl_rcause_c : natural := 5; -- r/-: cause of last action (reset/IRQ): 0=external reset, 1=watchdog overflow + constant ctrl_reset_c : natural := 6; -- -/w: reset WDT if set + constant ctrl_force_c : natural := 7; -- -/w: force WDT action + constant ctrl_lock_c : natural := 8; -- r/w: lock access to control register when set + constant ctrl_dben_c : natural := 9; -- r/w: allow WDT to continue operation even when in debug mode + constant ctrl_half_c : natural := 10; -- r/-: set if at least half of the max. timeout counter value has been reached + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal wren : std_ulogic; + signal rden : std_ulogic; + + -- control register -- + type ctrl_t is record + enable : std_ulogic; -- 1=WDT enabled + clk_sel : std_ulogic_vector(2 downto 0); + mode : std_ulogic; -- 0=trigger IRQ on overflow; 1=trigger hard reset on overflow + rcause : std_ulogic; -- cause of last system reset: '0' = external, '1' = watchdog + reset : std_ulogic; -- reset WDT + enforce : std_ulogic; -- force action + lock : std_ulogic; -- lock control register + dben : std_ulogic; -- allow operation also in debug mode + end record; + signal ctrl : ctrl_t; + + -- prescaler clock generator -- + signal prsc_tick : std_ulogic; + + -- WDT core -- + signal wdt_cnt : std_ulogic_vector(20 downto 0); + signal hw_rst : std_ulogic; + signal rst_gen : std_ulogic_vector(03 downto 0); + signal cnt_en : std_ulogic; + + -- internal reset (sync, low-active) -- + signal rstn_sync : std_ulogic; + +begin + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = wdt_base_c(hi_abb_c downto lo_abb_c)) else '0'; + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Write Access --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + write_access: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl.reset <= '1'; -- reset counter on start-up + ctrl.enforce <= '0'; + ctrl.enable <= '0'; -- disable WDT + ctrl.mode <= '0'; + ctrl.clk_sel <= (others => '0'); + ctrl.lock <= '0'; + ctrl.dben <= '0'; + elsif rising_edge(clk_i) then + if (rstn_sync = '0') then -- internal reset + ctrl.reset <= '1'; -- reset counter on start-up + ctrl.enforce <= '0'; + ctrl.enable <= '0'; -- disable WDT + ctrl.mode <= '0'; + ctrl.clk_sel <= (others => '0'); + ctrl.lock <= '0'; + ctrl.dben <= '0'; + else + -- auto-clear WDT reset and WDT force flags -- + ctrl.reset <= '0'; + ctrl.enforce <= '0'; + -- actual write access -- + if (wren = '1') then + ctrl.reset <= data_i(ctrl_reset_c); + ctrl.enforce <= data_i(ctrl_force_c); + if (ctrl.lock = '0') then -- update configuration only if not locked + ctrl.enable <= data_i(ctrl_enable_c); + ctrl.mode <= data_i(ctrl_mode_c); + ctrl.clk_sel <= data_i(ctrl_clksel2_c downto ctrl_clksel0_c); + ctrl.lock <= data_i(ctrl_lock_c); + ctrl.dben <= data_i(ctrl_dben_c) and bool_to_ulogic_f(DEBUG_EN); + end if; + end if; + end if; + end if; + end process write_access; + + -- clock generator -- + clkgen_en_o <= ctrl.enable; -- enable clock generator + prsc_tick <= clkgen_i(to_integer(unsigned(ctrl.clk_sel))); -- clock enable tick + + + -- Watchdog Counter ----------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + wdt_counter: process(clk_i) + begin + if rising_edge(clk_i) then + if (ctrl.reset = '1') then -- watchdog reset + wdt_cnt <= (others => '0'); + elsif (cnt_en = '1') then + wdt_cnt <= std_ulogic_vector(unsigned('0' & wdt_cnt(wdt_cnt'left-1 downto 0)) + 1); + end if; + end if; + end process wdt_counter; + + -- WDT counter enable -- + cnt_en <= ctrl.enable and prsc_tick and ((not cpu_debug_i) or ctrl.dben); + + -- action trigger -- + irq_o <= ctrl.enable and (wdt_cnt(wdt_cnt'left) or ctrl.enforce) and (not ctrl.mode); -- mode 0: IRQ + hw_rst <= ctrl.enable and (wdt_cnt(wdt_cnt'left) or ctrl.enforce) and ( ctrl.mode); -- mode 1: RESET + + + -- Reset Generator & Action Cause Indicator ----------------------------------------------- + -- ------------------------------------------------------------------------------------------- + reset_generator: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl.rcause <= '0'; + rst_gen <= (others => '1'); -- do NOT fire on reset! + rstn_sync <= '1'; + elsif rising_edge(clk_i) then + ctrl.rcause <= ctrl.rcause or hw_rst; -- sticky-set on WDT timeout/force + if (hw_rst = '1') then + rst_gen <= (others => '0'); + else + rst_gen <= rst_gen(rst_gen'left-1 downto 0) & '1'; + end if; + rstn_sync <= rst_gen(rst_gen'left); + end if; + end process reset_generator; + + -- system reset -- + rstn_o <= rst_gen(rst_gen'left); + + + -- Read Access ---------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + read_access: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= rden or wren; + if (rden = '1') then + data_o(ctrl_enable_c) <= ctrl.enable; + data_o(ctrl_mode_c) <= ctrl.mode; + data_o(ctrl_rcause_c) <= ctrl.rcause; + data_o(ctrl_clksel2_c downto ctrl_clksel0_c) <= ctrl.clk_sel; + data_o(ctrl_lock_c) <= ctrl.lock; + data_o(ctrl_dben_c) <= ctrl.dben; + data_o(ctrl_half_c) <= wdt_cnt(wdt_cnt'left-1); + else + data_o <= (others => '0'); + end if; + end if; + end process read_access; + + +end neorv32_wdt_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_wishbone.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_wishbone.vhd new file mode 100644 index 0000000..cb9913d --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_wishbone.vhd @@ -0,0 +1,274 @@ +-- ################################################################################################# +-- # << NEORV32 - External Bus Interface (WISHBONE) >> # +-- # ********************************************************************************************* # +-- # All bus accesses from the CPU, which do not target the internal IO region / the internal # +-- # bootloader / the internal instruction or data memories (if implemented), are delegated via # +-- # this Wishbone gateway to the external bus interface. Accessed peripherals can have a response # +-- # latency of up to BUS_TIMEOUT - 1 cycles. # +-- # # +-- # Even when all processor-internal memories and IO devices are disabled, the EXTERNAL address # +-- # space ENDS at address 0xffff0000 (begin of internal BOOTROM address space). # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_wishbone is + generic ( + -- Internal instruction memory -- + MEM_INT_IMEM_EN : boolean; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural; -- size of processor-internal instruction memory in bytes + -- Internal data memory -- + MEM_INT_DMEM_EN : boolean; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural; -- size of processor-internal data memory in bytes + -- Interface Configuration -- + BUS_TIMEOUT : natural; -- cycles after an UNACKNOWLEDGED bus access triggers a bus fault exception + PIPE_MODE : boolean; -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + BIG_ENDIAN : boolean; -- byte order: true=big-endian, false=little-endian + ASYNC_RX : boolean -- use register buffer for RX data when false + ); + port ( + -- global control -- + clk_i : in std_ulogic; -- global clock line + rstn_i : in std_ulogic; -- global reset line, low-active + -- host access -- + src_i : in std_ulogic; -- access type (0: data, 1:instruction) + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + ben_i : in std_ulogic_vector(03 downto 0); -- byte write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + lock_i : in std_ulogic; -- exclusive access request + ack_o : out std_ulogic; -- transfer acknowledge + err_o : out std_ulogic; -- transfer error + tmo_o : out std_ulogic; -- transfer timeout + priv_i : in std_ulogic_vector(01 downto 0); -- current CPU privilege level + ext_o : out std_ulogic; -- active external access + -- wishbone interface -- + wb_tag_o : out std_ulogic_vector(02 downto 0); -- request tag + wb_adr_o : out std_ulogic_vector(31 downto 0); -- address + wb_dat_i : in std_ulogic_vector(31 downto 0); -- read data + wb_dat_o : out std_ulogic_vector(31 downto 0); -- write data + wb_we_o : out std_ulogic; -- read/write + wb_sel_o : out std_ulogic_vector(03 downto 0); -- byte enable + wb_stb_o : out std_ulogic; -- strobe + wb_cyc_o : out std_ulogic; -- valid cycle + wb_lock_o : out std_ulogic; -- exclusive access request + wb_ack_i : in std_ulogic; -- transfer acknowledge + wb_err_i : in std_ulogic -- transfer error + ); +end neorv32_wishbone; + +architecture neorv32_wishbone_rtl of neorv32_wishbone is + + -- timeout enable -- + constant timeout_en_c : boolean := boolean(BUS_TIMEOUT /= 0); -- timeout enabled if BUS_TIMEOUT > 0 + + -- access control -- + signal int_imem_acc : std_ulogic; + signal int_dmem_acc : std_ulogic; + signal int_boot_acc : std_ulogic; + signal xbus_access : std_ulogic; + + -- bus arbiter + type ctrl_state_t is (IDLE, BUSY); + type ctrl_t is record + state : ctrl_state_t; + state_ff : ctrl_state_t; + we : std_ulogic; + adr : std_ulogic_vector(31 downto 0); + wdat : std_ulogic_vector(31 downto 0); + rdat : std_ulogic_vector(31 downto 0); + sel : std_ulogic_vector(03 downto 0); + ack : std_ulogic; + err : std_ulogic; + tmo : std_ulogic; + timeout : std_ulogic_vector(index_size_f(BUS_TIMEOUT) downto 0); + src : std_ulogic; + lock : std_ulogic; + priv : std_ulogic_vector(01 downto 0); + end record; + signal ctrl : ctrl_t; + signal stb_int : std_ulogic; + signal cyc_int : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + + -- async RX mode -- + signal ack_gated : std_ulogic; + signal rdata_gated : std_ulogic_vector(31 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- protocol -- + assert not (PIPE_MODE = false) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing STANDARD Wishbone protocol." severity note; + assert not (PIPE_MODE = true) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing PIEPLINED Wishbone protocol." severity note; + + -- bus timeout -- + assert not (BUS_TIMEOUT /= 0) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing auto-timeout (" & integer'image(BUS_TIMEOUT) & " cycles)." severity note; + assert not (BUS_TIMEOUT = 0) report "NEORV32 PROCESSOR CONFIG WARNING: External Bus Interface - Implementing NO auto-timeout (can cause permanent CPU stall!)." severity warning; + + -- endianness -- + assert not (BIG_ENDIAN = false) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing LITTLE-endian byte order." severity note; + assert not (BIG_ENDIAN = true) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing BIG-endian byte." severity note; + + -- async RX -- + assert not (ASYNC_RX = false) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing registered RX path." severity note; + assert not (ASYNC_RX = true) report "NEORV32 PROCESSOR CONFIG NOTE: External Bus Interface - Implementing ASYNC RX path." severity note; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- access to processor-internal IMEM or DMEM? -- + int_imem_acc <= '1' when (addr_i(31 downto index_size_f(MEM_INT_IMEM_SIZE)) = imem_base_c(31 downto index_size_f(MEM_INT_IMEM_SIZE))) and (MEM_INT_IMEM_EN = true) else '0'; + int_dmem_acc <= '1' when (addr_i(31 downto index_size_f(MEM_INT_DMEM_SIZE)) = dmem_base_c(31 downto index_size_f(MEM_INT_DMEM_SIZE))) and (MEM_INT_DMEM_EN = true) else '0'; + -- access to processor-internal BOOTROM or IO devices? -- + int_boot_acc <= '1' when (addr_i(31 downto 16) = boot_rom_base_c(31 downto 16)) else '0'; -- hacky! + -- actual external bus access? -- + xbus_access <= (not int_imem_acc) and (not int_dmem_acc) and (not int_boot_acc); + + + -- Bus Arbiter ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + bus_arbiter: process(rstn_i, clk_i) + begin + if (rstn_i = '0') then + ctrl.state <= IDLE; + ctrl.state_ff <= IDLE; + ctrl.we <= def_rst_val_c; + ctrl.adr <= (others => def_rst_val_c); + ctrl.wdat <= (others => def_rst_val_c); + ctrl.rdat <= (others => def_rst_val_c); + ctrl.sel <= (others => def_rst_val_c); + ctrl.timeout <= (others => def_rst_val_c); + ctrl.ack <= def_rst_val_c; + ctrl.err <= def_rst_val_c; + ctrl.tmo <= def_rst_val_c; + ctrl.src <= def_rst_val_c; + ctrl.lock <= def_rst_val_c; + ctrl.priv <= (others => def_rst_val_c); + elsif rising_edge(clk_i) then + -- defaults -- + ctrl.state_ff <= ctrl.state; + ctrl.rdat <= (others => '0'); -- required for internal output gating + ctrl.ack <= '0'; + ctrl.err <= '0'; + ctrl.tmo <= '0'; + ctrl.timeout <= std_ulogic_vector(to_unsigned(BUS_TIMEOUT, index_size_f(BUS_TIMEOUT)+1)); + + -- state machine -- + case ctrl.state is + + when IDLE => -- waiting for host request + -- ------------------------------------------------------------ + -- buffer all outgoing signals -- + ctrl.we <= wren_i; + ctrl.adr <= addr_i; + if (BIG_ENDIAN = true) then -- big-endian + ctrl.wdat <= bswap32_f(data_i); + ctrl.sel <= bit_rev_f(ben_i); + else -- little-endian + ctrl.wdat <= data_i; + ctrl.sel <= ben_i; + end if; + ctrl.src <= src_i; + ctrl.lock <= lock_i; + ctrl.priv <= priv_i; + -- valid new or buffered read/write request -- + if ((xbus_access and (wren_i or rden_i)) = '1') then + ctrl.state <= BUSY; + end if; + + when BUSY => -- transfer in progress + -- ------------------------------------------------------------ + ctrl.rdat <= wb_dat_i; + if (wb_err_i = '1') then -- abnormal bus termination + ctrl.err <= '1'; + ctrl.state <= IDLE; + elsif (timeout_en_c = true) and (or_reduce_f(ctrl.timeout) = '0') then -- enabled timeout + ctrl.tmo <= '1'; + ctrl.state <= IDLE; + elsif (wb_ack_i = '1') then -- normal bus termination + ctrl.ack <= '1'; + ctrl.state <= IDLE; + end if; + -- timeout counter -- + if (timeout_en_c = true) then + ctrl.timeout <= std_ulogic_vector(unsigned(ctrl.timeout) - 1); -- timeout counter + end if; + + when others => -- undefined + -- ------------------------------------------------------------ + ctrl.state <= IDLE; + + end case; + end if; + end process bus_arbiter; + + -- host access -- + ack_gated <= wb_ack_i when (ctrl.state = BUSY) else '0'; -- CPU ack gate for "async" RX + rdata_gated <= wb_dat_i when (ctrl.state = BUSY) else (others => '0'); -- CPU read data gate for "async" RX + rdata <= ctrl.rdat when (ASYNC_RX = false) else rdata_gated; + + ext_o <= '1' when (ctrl.state = BUSY) else '0'; -- active external access + + data_o <= rdata when (BIG_ENDIAN = false) else bswap32_f(rdata); -- endianness conversion + ack_o <= ctrl.ack when (ASYNC_RX = false) else ack_gated; + err_o <= ctrl.err; + tmo_o <= ctrl.tmo; + + -- wishbone interface -- + wb_tag_o(0) <= '0' when (ctrl.priv = priv_mode_u_c) else '1'; -- unprivileged access when in user mode + wb_tag_o(1) <= '0'; -- 0 = secure, 1 = non-secure + wb_tag_o(2) <= ctrl.src; -- 0 = data access, 1 = instruction access + + wb_lock_o <= ctrl.lock; -- 1 = exclusive access request + + wb_adr_o <= ctrl.adr; + wb_dat_o <= ctrl.wdat; + wb_we_o <= ctrl.we; + wb_sel_o <= ctrl.sel; + wb_stb_o <= stb_int when (PIPE_MODE = true) else cyc_int; + wb_cyc_o <= cyc_int; + + stb_int <= '1' when (ctrl.state = BUSY) and (ctrl.state_ff /= BUSY) else '0'; + cyc_int <= '1' when (ctrl.state = BUSY) else '0'; + + +end neorv32_wishbone_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/core/neorv32_xirq.vhd b/Libs/RiscV/NEORV32/rtl/core/neorv32_xirq.vhd new file mode 100644 index 0000000..9192ba1 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/core/neorv32_xirq.vhd @@ -0,0 +1,229 @@ +-- ################################################################################################# +-- # << NEORV32 - External Interrupt Controller (XIRQ) >> # +-- # ********************************************************************************************* # +-- # Simple interrupt controller for platform (processor-external) interrupts. Up to 32 channels # +-- # are supported that get (optionally) prioritized into a single CPU interrupt. # +-- # # +-- # The actual trigger configuration has to be done BEFORE synthesis using the XIRQ_TRIGGER_TYPE # +-- # and XIRQ_TRIGGER_POLARITY generics. These allow to configure channel-independent low-level, # +-- # high-level, falling-edge and rising-edge triggers. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_xirq is + generic ( + XIRQ_NUM_CH : natural; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_ulogic_vector(31 downto 0); -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_ulogic_vector(31 downto 0) -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + ); + port ( + -- host access -- + clk_i : in std_ulogic; -- global clock line + addr_i : in std_ulogic_vector(31 downto 0); -- address + rden_i : in std_ulogic; -- read enable + wren_i : in std_ulogic; -- write enable + data_i : in std_ulogic_vector(31 downto 0); -- data in + data_o : out std_ulogic_vector(31 downto 0); -- data out + ack_o : out std_ulogic; -- transfer acknowledge + -- external interrupt lines -- + xirq_i : in std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + -- CPU interrupt -- + cpu_irq_o : out std_ulogic + ); +end neorv32_xirq; + +architecture neorv32_xirq_rtl of neorv32_xirq is + + -- IO space: module base address -- + constant hi_abb_c : natural := index_size_f(io_size_c)-1; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(xirq_size_c); -- low address boundary bit + + -- access control -- + signal acc_en : std_ulogic; -- module access enable + signal addr : std_ulogic_vector(31 downto 0); -- access address + signal wren : std_ulogic; -- word write enable + signal rden : std_ulogic; -- read enable + + -- control registers -- + signal irq_enable : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); -- r/w: interrupt enable + signal clr_pending : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); -- r/w: clear pending IRQs + signal irq_src : std_ulogic_vector(4 downto 0); -- r/w: source IRQ, ACK on any write + + -- interrupt trigger -- + signal irq_sync : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + signal irq_sync2 : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + signal irq_trig : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + + -- interrupt buffer -- + signal irq_buf : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + signal irq_fire : std_ulogic; + + -- interrupt source -- + signal irq_src_nxt : std_ulogic_vector(4 downto 0); + + -- arbiter -- + signal irq_run : std_ulogic; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not ((XIRQ_NUM_CH < 0) or (XIRQ_NUM_CH > 32)) report "NEORV32 PROCESSOR CONFIG ERROR: Number of XIRQ inputs has to be 0..32." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = xirq_base_c(hi_abb_c downto lo_abb_c)) else '0'; + addr <= xirq_base_c(31 downto lo_abb_c) & addr_i(lo_abb_c-1 downto 2) & "00"; -- word aligned + wren <= acc_en and wren_i; + rden <= acc_en and rden_i; + + + -- Read/Write Access ---------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + rw_access: process(clk_i) + begin + if rising_edge(clk_i) then + -- bus handshake -- + ack_o <= rden or wren; + + -- write access -- + clr_pending <= (others => '1'); + if (wren = '1') then + -- channel-enable -- + if (addr = xirq_enable_addr_c) then + irq_enable <= data_i(XIRQ_NUM_CH-1 downto 0); + end if; + -- clear pending IRQs -- + if (addr = xirq_pending_addr_c) then + clr_pending <= data_i(XIRQ_NUM_CH-1 downto 0); -- set zero to clear pending IRQ + end if; + end if; + + -- read access -- + data_o <= (others => '0'); + if (rden = '1') then + case addr is + when xirq_enable_addr_c => data_o(XIRQ_NUM_CH-1 downto 0) <= irq_enable; -- channel-enable + when xirq_pending_addr_c => data_o(XIRQ_NUM_CH-1 downto 0) <= irq_buf; -- pending IRQs + when xirq_source_addr_c => data_o(4 downto 0) <= irq_src; -- source IRQ + when others => NULL; + end case; + end if; + end if; + end process rw_access; + + + -- IRQ Trigger -------------------------------------------------------------- + -- ----------------------------------------------------------------------------- + irq_trigger: process(clk_i) + begin + if rising_edge(clk_i) then + irq_sync <= xirq_i; + irq_sync2 <= irq_sync; + end if; + end process irq_trigger; + + irq_trigger_comb: process(irq_sync, irq_sync2) + variable sel_v : std_ulogic_vector(1 downto 0); + begin + for i in 0 to XIRQ_NUM_CH-1 loop + sel_v := XIRQ_TRIGGER_TYPE(i) & XIRQ_TRIGGER_POLARITY(i); + case sel_v is + when "00" => irq_trig(i) <= not irq_sync(i); -- low-level + when "01" => irq_trig(i) <= irq_sync(i); -- high-level + when "10" => irq_trig(i) <= (not irq_sync(i)) and irq_sync2(i); -- falling-edge + when "11" => irq_trig(i) <= irq_sync(i) and (not irq_sync2(i)); -- rising-edge + when others => irq_trig(i) <= '0'; + end case; + end loop; + end process irq_trigger_comb; + + + -- IRQ Buffer --------------------------------------------------------------- + -- ----------------------------------------------------------------------------- + irq_buffer: process(clk_i) + begin + if rising_edge(clk_i) then + irq_buf <= (irq_buf or (irq_trig and irq_enable)) and clr_pending; + end if; + end process irq_buffer; + + -- anyone firing? -- + irq_fire <= or_reduce_f(irq_buf); + + + -- IRQ Priority Encoder ----------------------------------------------------- + -- ----------------------------------------------------------------------------- + irq_priority: process(irq_buf) + begin + irq_src_nxt <= (others => '0'); + if (XIRQ_NUM_CH > 1) then + for i in 0 to XIRQ_NUM_CH-1 loop + if (irq_buf(i) = '1') then + irq_src_nxt(index_size_f(XIRQ_NUM_CH)-1 downto 0) <= std_ulogic_vector(to_unsigned(i, index_size_f(XIRQ_NUM_CH))); + exit; + end if; + end loop; + end if; + end process irq_priority; + + + -- IRQ Arbiter -------------------------------------------------------------- + -- ----------------------------------------------------------------------------- + irq_arbiter: process(clk_i) + begin + if rising_edge(clk_i) then + cpu_irq_o <= '0'; + if (irq_run = '0') then -- no active IRQ + if (irq_fire = '1') then + cpu_irq_o <= '1'; + irq_run <= '1'; + irq_src <= irq_src_nxt; + end if; + else -- active IRQ, wait for CPU to acknowledge + if (wren = '1') and (addr = xirq_source_addr_c) then -- write _any_ value to acknowledge + irq_run <= '0'; + end if; + end if; + end if; + end process irq_arbiter; + + +end neorv32_xirq_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/processor_templates/README.md b/Libs/RiscV/NEORV32/rtl/processor_templates/README.md new file mode 100644 index 0000000..291164a --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/processor_templates/README.md @@ -0,0 +1,35 @@ +# SoC/Processor Templates + +This folder provides exemplary templates that wrap the processor top entity and provide a simplified +set of configuration generics and IOs. These setups are intended to allow beginner an easy start by +hiding much of the processor's configuration complexity. Furthermore, these setups are used by many +of the provided [example setups](https://github.com/stnolting/neorv32/tree/master/setups). + +Alternatively, you can directly instantiate the processor's top entity +[`rtl/core/neorv32_top.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/core/neorv32_top.vhd) +to have full access to _all_ features. + +### [`neorv32_ProcessorTop_Minimal.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/processor_templates/neorv32_ProcessorTop_Minimal.vhd) + +This setup used the ["Direct Boot Configuration"](https://stnolting.github.io/neorv32/#_boot_configuration). +Application software is installed directly into the processor-internal instruction memory (IMEM) during +synthesis. This memory is implemented as ROM and these is no bootloader available. Hence, the executable +remains unchangeable is executed right after reset. + +The setup only provides 3 PWM channels as IO. + +### [`neorv32_ProcessorTop_MinimalBoot.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/processor_templates/neorv32_ProcessorTop_MinimalBoot.vhd) + +This setup used the ["Indirect Boot Configuration"](https://stnolting.github.io/neorv32/#_boot_configuration). +The NEORV32 bootloader is enabled in this setup allowing to upload new application software at any time +via a UART connection. + +The setup provides 8 GPIO outputs and the UART communication lines as IO. + +### [`neorv32_ProcessorTop_UP5KDemo.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/processor_templates/neorv32_ProcessorTop_UP5KDemo.vhd) + +This is a more complex template that implements a small microcontroller-like NEORV32. +It was originally designed for _UPDuino V3_ board, which features a Lattice iCE40up5k FPGA, but has +also been ported to other boards that provide the same FPGA. + +This setup provides a rich set of IOs including GPIO, SPI, TWI and PWM. diff --git a/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_Minimal.vhd b/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_Minimal.vhd new file mode 100644 index 0000000..143ae8b --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_Minimal.vhd @@ -0,0 +1,246 @@ +-- ################################################################################################# +-- # << NEORV32 - Minimal setup without a bootloader >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; + +entity neorv32_ProcessorTop_Minimal is + generic ( + CLOCK_FREQUENCY : natural := 0; -- clock frequency of clk_i in Hz + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 34; -- total width of CPU cycle and instret counters (0..64) + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 8*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean := true; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 8*1024; -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean := true; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 64*1024; -- size of processor-internal data memory in bytes + + -- Internal Cache memory -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- Processor peripherals -- + IO_MTIME_EN : boolean := false; -- implement machine system timer (MTIME)? + IO_PWM_NUM_CH : natural := 3; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := false -- implement watch dog timer (WDT)? + ); + port ( + clk_i : in std_logic; + rstn_i : in std_logic; + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0) + ); +end entity; + +architecture neorv32_ProcessorTop_Minimal_rtl of neorv32_ProcessorTop_Minimal is + +begin + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity neorv32.neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => false, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id (32-bit) + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => false, -- implement on-chip debugger? + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement mul/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH, -- total size of HPM counters (1..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + + -- Internal Cache memory -- + ICACHE_EN => ICACHE_EN, -- implement instruction cache + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- External memory interface -- + MEM_EXT_EN => false, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 0, -- cycles after a pending bus access auto-terminates (0 = disabled) + + -- Processor peripherals -- + IO_GPIO_EN => false, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? + IO_UART0_EN => false, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN => false, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN => false, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => false, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => IO_WDT_EN, -- implement watch dog timer (WDT)? + IO_TRNG_EN => false, -- implement true random number generator (TRNG)? + IO_CFS_EN => false, -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG => x"00000000", -- custom CFS configuration generic + IO_CFS_IN_SIZE => 32, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => 32, -- size of CFS output conduit in bits + IO_NEOLED_EN => false -- implement NeoPixel-compatible smart LED interface (NEOLED)? + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => '0', -- low-active TAP reset (optional) + jtag_tck_i => '0', -- serial clock + jtag_tdi_i => '0', -- serial data input + jtag_tdo_o => open, -- serial data output + jtag_tms_i => '0', -- mode select + + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => open, -- request tag + wb_adr_o => open, -- address + wb_dat_i => (others => '0'), -- read data + wb_dat_o => open, -- write data + wb_we_o => open, -- read/write + wb_sel_o => open, -- byte enable + wb_stb_o => open, -- strobe + wb_cyc_o => open, -- valid cycle + wb_lock_o => open, -- exclusive access request + wb_ack_i => '0', -- transfer acknowledge + wb_err_i => '0', -- transfer error + + -- 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 (available if IO_GPIO_EN = true) -- + gpio_o => open, -- parallel output + gpio_i => (others => '0'), -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => open, -- UART0 send data + uart0_rxd_i => '0', -- UART0 receive data + uart0_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => open, -- UART1 send data + uart1_rxd_i => '0', -- UART1 receive data + uart1_rts_o => open, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => '0', -- hw flow control: UART1.TX allowed to transmit, low-active, optional + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => open, -- SPI serial clock + spi_sdo_o => open, -- controller data out, peripheral data in + spi_sdi_i => '0', -- controller data in, peripheral data out + spi_csn_o => open, -- SPI CS + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => open, -- twi serial data line + twi_scl_io => open, -- twi serial clock line + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o => pwm_o, -- pwm channels + + -- Custom Functions Subsystem IO -- + cfs_in_i => (others => '0'), -- custom CFS inputs conduit + cfs_out_o => open, -- custom CFS outputs conduit + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => open, -- async serial data line + + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + + -- Interrupts -- + mtime_irq_i => '0', -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i => '0', -- machine software interrupt + mext_irq_i => '0' -- machine external interrupt + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_MinimalBoot.vhd new file mode 100644 index 0000000..b0a0aac --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_MinimalBoot.vhd @@ -0,0 +1,267 @@ +-- ################################################################################################# +-- # << NEORV32 - Minimal setup with the bootloader enabled >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; + +entity neorv32_ProcessorTop_MinimalBoot is + generic ( + CLOCK_FREQUENCY : natural := 0; -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN : boolean := true; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := true; -- implement atomic extension? + CPU_EXTENSION_RISCV_C : boolean := true; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := true; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 34; -- total width of CPU cycle and instret counters (0..64) + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean := true; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 64*1024; -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean := true; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 64*1024; -- size of processor-internal data memory in bytes + + -- Internal Cache memory -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- Processor peripherals -- + IO_GPIO_EN : boolean := true; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := true; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := true; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_PWM_NUM_CH : natural := 3; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := true -- implement watch dog timer (WDT)? + ); + port ( + clk_i : in std_logic; + rstn_i : in std_logic; + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_ulogic_vector(3 downto 0); + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart_txd_o : out std_ulogic; -- UART0 send data + uart_rxd_i : in std_ulogic := '0'; -- UART0 receive data + uart_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i : in std_ulogic := '0'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0) + ); +end entity; + +architecture neorv32_ProcessorTop_MinimalBoot_rtl of neorv32_ProcessorTop_MinimalBoot is + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(63 downto 0); + +begin + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + -- GPIO -- + gpio_o <= con_gpio_o(3 downto 0); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity neorv32.neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => INT_BOOTLOADER_EN,-- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id (32-bit) + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => false, -- implement on-chip debugger? + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement mul/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH, -- total size of HPM counters (1..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + + -- Internal Cache memory -- + ICACHE_EN => ICACHE_EN, -- implement instruction cache + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- External memory interface -- + MEM_EXT_EN => false, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 0, -- cycles after a pending bus access auto-terminates (0 = disabled) + + -- Processor peripherals -- + IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? + IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN => false, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN => false, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => false, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => IO_WDT_EN, -- implement watch dog timer (WDT)? + IO_TRNG_EN => false, -- implement true random number generator (TRNG)? + IO_CFS_EN => false, -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG => x"00000000", -- custom CFS configuration generic + IO_CFS_IN_SIZE => 32, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => 32, -- size of CFS output conduit in bits + IO_NEOLED_EN => false -- implement NeoPixel-compatible smart LED interface (NEOLED)? + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => '0', -- low-active TAP reset (optional) + jtag_tck_i => '0', -- serial clock + jtag_tdi_i => '0', -- serial data input + jtag_tdo_o => open, -- serial data output + jtag_tms_i => '0', -- mode select + + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => open, -- request tag + wb_adr_o => open, -- address + wb_dat_i => (others => '0'), -- read data + wb_dat_o => open, -- write data + wb_we_o => open, -- read/write + wb_sel_o => open, -- byte enable + wb_stb_o => open, -- strobe + wb_cyc_o => open, -- valid cycle + wb_lock_o => open, -- exclusive access request + wb_ack_i => '0', -- transfer acknowledge + wb_err_i => '0', -- transfer error + + -- 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 (available if IO_GPIO_EN = true) -- + gpio_o => con_gpio_o, -- parallel output + gpio_i => (others => '0'), -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart_txd_o, -- UART0 send data + uart0_rxd_i => uart_rxd_i, -- UART0 receive data + uart0_rts_o => uart_rts_o, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => uart_cts_i, -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => open, -- UART1 send data + uart1_rxd_i => '0', -- UART1 receive data + uart1_rts_o => open, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => '0', -- hw flow control: UART1.TX allowed to transmit, low-active, optional + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => open, -- SPI serial clock + spi_sdo_o => open, -- controller data out, peripheral data in + spi_sdi_i => '0', -- controller data in, peripheral data out + spi_csn_o => open, -- SPI CS + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => open, -- twi serial data line + twi_scl_io => open, -- twi serial clock line + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o => pwm_o, -- pwm channels + + -- Custom Functions Subsystem IO -- + cfs_in_i => (others => '0'), -- custom CFS inputs conduit + cfs_out_o => open, -- custom CFS outputs conduit + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => open, -- async serial data line + + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + + -- Interrupts -- + mtime_irq_i => '0', -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i => '0', -- machine software interrupt + mext_irq_i => '0' -- machine external interrupt + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_UP5KDemo.vhd b/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_UP5KDemo.vhd new file mode 100644 index 0000000..f09428b --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/processor_templates/neorv32_ProcessorTop_UP5KDemo.vhd @@ -0,0 +1,307 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for boards with UP5K devices >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; + +entity neorv32_ProcessorTop_UP5KDemo is + generic ( + CLOCK_FREQUENCY : natural := 0; -- clock frequency of clk_i in Hz + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger? + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := true; -- implement atomic extension? + CPU_EXTENSION_RISCV_C : boolean := true; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := true; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 34; -- total width of CPU cycle and instret counters (0..64) + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean := true; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 64*1024; -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean := true; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 64*1024; -- size of processor-internal data memory in bytes + + -- Internal Cache memory -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- Processor peripherals -- + IO_GPIO_EN : boolean := true; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := true; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := true; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_SPI_EN : boolean := true; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := true; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 3; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := true -- implement watch dog timer (WDT)? + ); + port ( + clk_i : in std_logic; + rstn_i : in std_logic; + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_i : in std_ulogic_vector(3 downto 0); + gpio_o : out std_ulogic_vector(3 downto 0); + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart_txd_o : out std_ulogic; -- UART0 send data + uart_rxd_i : in std_ulogic := '0'; -- UART0 receive data + uart_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i : in std_ulogic := '0'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- SPI to on-board flash -- + flash_sck_o : out std_ulogic; + flash_sdo_o : out std_ulogic; + flash_sdi_i : in std_ulogic; + flash_csn_o : out std_ulogic; -- NEORV32.SPI_CS(0) + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_ulogic; + spi_sdo_o : out std_ulogic; + spi_sdi_i : in std_ulogic; + spi_csn_o : out std_ulogic; -- NEORV32.SPI_CS(1) + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic; + twi_scl_io : inout std_logic; + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0) + ); +end entity; + +architecture neorv32_ProcessorTop_UP5KDemo_rtl of neorv32_ProcessorTop_UP5KDemo is + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(63 downto 0); + signal con_gpio_i : std_ulogic_vector(63 downto 0); + signal con_spi_sck : std_ulogic; + signal con_spi_sdi : std_ulogic; + signal con_spi_sdo : std_ulogic; + signal con_spi_csn : std_ulogic_vector(07 downto 0); + +begin + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + -- SPI: on-board flash -- + flash_sck_o <= con_spi_sck; + flash_sdo_o <= con_spi_sdo; + flash_csn_o <= con_spi_csn(0); + + -- SPI: user port -- + spi_sck_o <= con_spi_sck; + spi_sdo_o <= con_spi_sdo; + spi_csn_o <= con_spi_csn(1); + + con_spi_sdi <= flash_sdi_i when (con_spi_csn(0) = '0') else spi_sdi_i; + + -- GPIO -- + gpio_o <= con_gpio_o(3 downto 0); + con_gpio_i(03 downto 0) <= gpio_i; + con_gpio_i(63 downto 4) <= (others => '0'); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity neorv32.neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => true, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id (32-bit) + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => ON_CHIP_DEBUGGER_EN, -- implement on-chip debugger? + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement mul/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH, -- total size of HPM counters (1..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + + -- Internal Cache memory -- + ICACHE_EN => ICACHE_EN, -- implement instruction cache + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- External memory interface -- + MEM_EXT_EN => false, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 0, -- cycles after a pending bus access auto-terminates (0 = disabled) + + -- Processor peripherals -- + IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? + IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN => false, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN => IO_SPI_EN, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => IO_TWI_EN, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => IO_WDT_EN, -- implement watch dog timer (WDT)? + IO_TRNG_EN => false, -- implement true random number generator (TRNG)? + IO_CFS_EN => false, -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG => x"00000000", -- custom CFS configuration generic + IO_CFS_IN_SIZE => 32, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => 32, -- size of CFS output conduit in bits + IO_NEOLED_EN => false -- implement NeoPixel-compatible smart LED interface (NEOLED)? + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => '0', -- low-active TAP reset (optional) + jtag_tck_i => '0', -- serial clock + jtag_tdi_i => '0', -- serial data input + jtag_tdo_o => open, -- serial data output + jtag_tms_i => '0', -- mode select + + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => open, -- request tag + wb_adr_o => open, -- address + wb_dat_i => (others => '0'), -- read data + wb_dat_o => open, -- write data + wb_we_o => open, -- read/write + wb_sel_o => open, -- byte enable + wb_stb_o => open, -- strobe + wb_cyc_o => open, -- valid cycle + wb_lock_o => open, -- exclusive access request + wb_ack_i => '0', -- transfer acknowledge + wb_err_i => '0', -- transfer error + + -- 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 (available if IO_GPIO_EN = true) -- + gpio_o => con_gpio_o, -- parallel output + gpio_i => con_gpio_i, -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart_txd_o, -- UART0 send data + uart0_rxd_i => uart_rxd_i, -- UART0 receive data + uart0_rts_o => uart_rts_o, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => uart_cts_i, -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => open, -- UART1 send data + uart1_rxd_i => '0', -- UART1 receive data + uart1_rts_o => open, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => '0', -- hw flow control: UART1.TX allowed to transmit, low-active, optional + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => con_spi_sck, -- SPI serial clock + spi_sdo_o => con_spi_sdo, -- controller data out, peripheral data in + spi_sdi_i => con_spi_sdi, -- controller data in, peripheral data out + spi_csn_o => con_spi_csn, -- SPI CS + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => twi_sda_io, -- twi serial data line + twi_scl_io => twi_scl_io, -- twi serial clock line + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o => pwm_o, -- pwm channels + + -- Custom Functions Subsystem IO -- + cfs_in_i => (others => '0'), -- custom CFS inputs conduit + cfs_out_o => open, -- custom CFS outputs conduit + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => open, -- async serial data line + + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + + -- Interrupts -- + mtime_irq_i => '0', -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i => '0', -- machine software interrupt + mext_irq_i => '0' -- machine external interrupt + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_ProcessorTop_stdlogic.vhd b/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_ProcessorTop_stdlogic.vhd new file mode 100644 index 0000000..4e56831 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_ProcessorTop_stdlogic.vhd @@ -0,0 +1,486 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor Top Entity with Resolved Port Signals (std_logic/std_logic_vector) >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_ProcessorTop_stdlogic is + generic ( + -- General -- + CLOCK_FREQUENCY : natural := 0; -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN : boolean := true; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean := false; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement muld/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean := true; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean := false; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 64; -- total width of CPU cycle and instret counters (0..64) + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean := true; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean := true; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 8*1024; -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface -- + MEM_EXT_EN : boolean := false; -- implement external memory bus interface? + MEM_EXT_TIMEOUT : natural := 255; -- cycles after a pending bus access auto-terminates (0 = disabled) + MEM_EXT_PIPE_MODE : boolean := false; -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + MEM_EXT_BIG_ENDIAN : boolean := false; -- byte order: true=big-endian, false=little-endian + MEM_EXT_ASYNC_RX : boolean := false; -- use register buffer for RX data when false + -- Stream link interface -- + SLINK_NUM_TX : natural := 0; -- number of TX links (0..8) + SLINK_NUM_RX : natural := 0; -- number of TX links (0..8) + SLINK_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH : natural := 0; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_logic_vector(31 downto 0) := (others => '1'); -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_logic_vector(31 downto 0) := (others => '1'); -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN : boolean := true; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := true; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := true; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN : boolean := true; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN : boolean := true; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := true; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 4; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := true; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean := false; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean := false; -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG : std_ulogic_vector(31 downto 0); -- custom CFS configuration generic + IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits + IO_NEOLED_EN : boolean := true; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_GPTMR_EN : boolean := false -- implement general purpose timer (GPTMR)? + ); + port ( + -- Global control -- + clk_i : in std_logic := '0'; -- global clock, rising edge + rstn_i : in std_logic := '0'; -- global reset, low-active, async + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i : in std_logic := '0'; -- low-active TAP reset (optional) + jtag_tck_i : in std_logic := '0'; -- serial clock + jtag_tdi_i : in std_logic := '0'; -- serial data input + jtag_tdo_o : out std_logic; -- serial data output + jtag_tms_i : in std_logic := '0'; -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o : out std_logic_vector(02 downto 0); -- tag + wb_adr_o : out std_logic_vector(31 downto 0); -- address + wb_dat_i : in std_logic_vector(31 downto 0) := (others => '0'); -- read data + wb_dat_o : out std_logic_vector(31 downto 0); -- write data + wb_we_o : out std_logic; -- read/write + wb_sel_o : out std_logic_vector(03 downto 0); -- byte enable + wb_stb_o : out std_logic; -- strobe + wb_cyc_o : out std_logic; -- valid cycle + wb_lock_o : out std_logic; -- exclusive access request + wb_ack_i : in std_logic := '0'; -- transfer acknowledge + wb_err_i : in std_logic := '0'; -- transfer error + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o : out std_logic; -- indicates an executed FENCE operation + fencei_o : out std_logic; -- indicates an executed FENCEI operation + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o : out sdata_8x32r_t; -- output data + slink_tx_val_o : out std_logic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_logic_vector(7 downto 0) := (others => '0'); -- ready to send + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i : in sdata_8x32r_t := (others => (others => '0')); -- input data + slink_rx_val_i : in std_logic_vector(7 downto 0) := (others => '0'); -- valid input + slink_rx_rdy_o : out std_logic_vector(7 downto 0); -- ready to receive + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_logic_vector(63 downto 0); -- parallel output + gpio_i : in std_logic_vector(63 downto 0) := (others => '0'); -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o : out std_logic; -- UART0 send data + uart0_rxd_i : in std_logic := '0'; -- UART0 receive data + uart0_rts_o : out std_logic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i : in std_logic := '0'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o : out std_logic; -- UART1 send data + uart1_rxd_i : in std_logic := '0'; -- UART1 receive data + uart1_rts_o : out std_logic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i : in std_logic := '0'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_logic; -- SPI serial clock + spi_sdo_o : out std_logic; -- controller data out, peripheral data in + spi_sdi_i : in std_logic := '0'; -- controller data in, peripheral data out + spi_csn_o : out std_logic_vector(07 downto 0); -- SPI CS + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic; -- twi serial data line + twi_scl_io : inout std_logic; -- twi serial clock line + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_logic_vector(IO_PWM_NUM_CH-1 downto 0); -- pwm channels + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i : in std_logic_vector(IO_CFS_IN_SIZE-1 downto 0); -- custom inputs + cfs_out_o : out std_logic_vector(IO_CFS_OUT_SIZE-1 downto 0); -- custom outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o : out std_logic; -- async serial data line + -- System time -- + mtime_i : in std_logic_vector(63 downto 0) := (others => '0'); -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o : out std_logic_vector(63 downto 0); -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i : in std_logic_vector(XIRQ_NUM_CH-1 downto 0) := (others => '0'); -- IRQ channels + -- CPU Interrupts -- + mtime_irq_i : in std_logic := '0'; -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i : in std_logic := '0'; -- machine software interrupt + mext_irq_i : in std_logic := '0' -- machine external interrupt + ); +end entity; + +architecture neorv32_ProcessorTop_stdlogic_rtl of neorv32_ProcessorTop_stdlogic is + + -- type conversion -- + constant IO_CFS_CONFIG_INT : std_ulogic_vector(31 downto 0) := std_ulogic_vector(IO_CFS_CONFIG); + constant XIRQ_TRIGGER_TYPE_INT : std_ulogic_vector(31 downto 0) := std_ulogic_vector(XIRQ_TRIGGER_TYPE); + constant XIRQ_TRIGGER_POLARITY_INT : std_ulogic_vector(31 downto 0) := std_ulogic_vector(XIRQ_TRIGGER_POLARITY); + -- + signal clk_i_int : std_ulogic; + signal rstn_i_int : std_ulogic; + -- + signal jtag_trst_i_int :std_ulogic; + signal jtag_tck_i_int :std_ulogic; + signal jtag_tdi_i_int :std_ulogic; + signal jtag_tdo_o_int :std_ulogic; + signal jtag_tms_i_int :std_ulogic; + -- + signal wb_tag_o_int : std_ulogic_vector(02 downto 0); + signal wb_adr_o_int : std_ulogic_vector(31 downto 0); + signal wb_dat_i_int : std_ulogic_vector(31 downto 0); + signal wb_dat_o_int : std_ulogic_vector(31 downto 0); + signal wb_we_o_int : std_ulogic; + signal wb_sel_o_int : std_ulogic_vector(03 downto 0); + signal wb_stb_o_int : std_ulogic; + signal wb_cyc_o_int : std_ulogic; + signal wb_lock_o_int : std_ulogic; + signal wb_ack_i_int : std_ulogic; + signal wb_err_i_int : std_ulogic; + -- + signal fence_o_int : std_ulogic; + signal fencei_o_int : std_ulogic; + -- + signal slink_tx_dat_o_int : sdata_8x32_t; + signal slink_tx_val_o_int : std_logic_vector(7 downto 0); + signal slink_tx_rdy_i_int : std_logic_vector(7 downto 0); + signal slink_rx_dat_i_int : sdata_8x32_t; + signal slink_rx_val_i_int : std_logic_vector(7 downto 0); + signal slink_rx_rdy_o_int : std_logic_vector(7 downto 0); + -- + signal gpio_o_int : std_ulogic_vector(63 downto 0); + signal gpio_i_int : std_ulogic_vector(63 downto 0); + -- + signal uart0_txd_o_int : std_ulogic; + signal uart0_rxd_i_int : std_ulogic; + signal uart0_rts_o_int : std_ulogic; + signal uart0_cts_i_int : std_ulogic; + -- + signal uart1_txd_o_int : std_ulogic; + signal uart1_rxd_i_int : std_ulogic; + signal uart1_rts_o_int : std_ulogic; + signal uart1_cts_i_int : std_ulogic; + -- + signal spi_sck_o_int : std_ulogic; + signal spi_sdo_o_int : std_ulogic; + signal spi_sdi_i_int : std_ulogic; + signal spi_csn_o_int : std_ulogic_vector(07 downto 0); + -- + signal pwm_o_int : std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0); + -- + signal cfs_in_i_int : std_ulogic_vector(IO_CFS_IN_SIZE-1 downto 0); + signal cfs_out_o_int : std_ulogic_vector(IO_CFS_OUT_SIZE-1 downto 0); + -- + signal neoled_o_int : std_ulogic; + -- + signal mtime_i_int : std_ulogic_vector(63 downto 0); + signal mtime_o_int : std_ulogic_vector(63 downto 0); + -- + signal xirq_i_int : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + -- + signal mtime_irq_i_int : std_ulogic; + signal msw_irq_i_int : std_ulogic; + signal mext_irq_i_int : std_ulogic; + +begin + + -- The Core Of The Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => INT_BOOTLOADER_EN, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id (hartid) (32-bit) + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => ON_CHIP_DEBUGGER_EN, -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement muld/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => CPU_EXTENSION_RISCV_Zicntr, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => CPU_EXTENSION_RISCV_Zihpm, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH, -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN => ICACHE_EN, -- implement instruction cache + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface -- + MEM_EXT_EN => MEM_EXT_EN, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => MEM_EXT_TIMEOUT, -- cycles after a pending bus access auto-terminates (0 = disabled) + MEM_EXT_PIPE_MODE => MEM_EXT_PIPE_MODE, -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + MEM_EXT_BIG_ENDIAN => MEM_EXT_BIG_ENDIAN, -- byte order: true=big-endian, false=little-endian + MEM_EXT_ASYNC_RX => MEM_EXT_ASYNC_RX, -- use register buffer for RX data when false + -- Stream link interface -- + SLINK_NUM_TX => SLINK_NUM_TX, -- number of TX links (0..8) + SLINK_NUM_RX => SLINK_NUM_RX, -- number of TX links (0..8) + SLINK_TX_FIFO => SLINK_TX_FIFO, -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO => SLINK_RX_FIFO, -- RX fifo depth, has to be a power of two + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH => XIRQ_NUM_CH, -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE => XIRQ_TRIGGER_TYPE_INT, -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY => XIRQ_TRIGGER_POLARITY_INT, -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? + IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO => IO_UART0_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO => IO_UART0_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN => IO_UART1_EN, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO => IO_UART1_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO => IO_UART1_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN => IO_SPI_EN, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => IO_TWI_EN, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => IO_WDT_EN, -- implement watch dog timer (WDT)? + IO_TRNG_EN => IO_TRNG_EN, -- implement true random number generator (TRNG)? + IO_CFS_EN => IO_CFS_EN, -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG => IO_CFS_CONFIG_INT, -- custom CFS configuration generic + IO_CFS_IN_SIZE => IO_CFS_IN_SIZE, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => IO_CFS_OUT_SIZE, -- size of CFS output conduit in bits + IO_NEOLED_EN => IO_NEOLED_EN, -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_GPTMR_EN => IO_GPTMR_EN -- implement general purpose timer (GPTMR)? + ) + port map ( + -- Global control -- + clk_i => clk_i_int, -- global clock, rising edge + rstn_i => rstn_i_int, -- global reset, low-active, async + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => jtag_trst_i_int, -- low-active TAP reset (optional) + jtag_tck_i => jtag_tck_i_int, -- serial clock + jtag_tdi_i => jtag_tdi_i_int, -- serial data input + jtag_tdo_o => jtag_tdo_o_int, -- serial data output + jtag_tms_i => jtag_tms_i_int, -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => wb_tag_o_int, -- tag + wb_adr_o => wb_adr_o_int, -- address + wb_dat_i => wb_dat_i_int, -- read data + wb_dat_o => wb_dat_o_int, -- write data + wb_we_o => wb_we_o_int, -- read/write + wb_sel_o => wb_sel_o_int, -- byte enable + wb_stb_o => wb_stb_o_int, -- strobe + wb_cyc_o => wb_cyc_o_int, -- valid cycle + wb_lock_o => wb_lock_o_int, -- exclusive access request + wb_ack_i => wb_ack_i_int, -- transfer acknowledge + wb_err_i => wb_err_i_int, -- transfer error + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o => fence_o_int, -- indicates an executed FENCE operation + fencei_o => fencei_o_int, -- indicates an executed FENCEI operation + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o => slink_tx_dat_o_int, -- output data + slink_tx_val_o => slink_tx_val_o_int, -- valid output + slink_tx_rdy_i => slink_tx_rdy_i_int, -- ready to send + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i => slink_rx_dat_i_int, -- input data + slink_rx_val_i => slink_rx_val_i_int, -- valid input + slink_rx_rdy_o => slink_rx_rdy_o_int, -- ready to receive + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => gpio_o_int, -- parallel output + gpio_i => gpio_i_int, -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd_o_int, -- UART0 send data + uart0_rxd_i => uart0_rxd_i_int, -- UART0 receive data + uart0_rts_o => uart0_rts_o_int, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => uart0_cts_i_int, -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => uart1_txd_o_int, -- UART1 send data + uart1_rxd_i => uart1_rxd_i_int, -- UART1 receive data + uart1_rts_o => uart1_rts_o_int, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => uart1_cts_i_int, -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => spi_sck_o_int, -- SPI serial clock + spi_sdo_o => spi_sdo_o_int, -- controller data out, peripheral data in + spi_sdi_i => spi_sdi_i_int, -- controller data in, peripheral data out + spi_csn_o => spi_csn_o_int, -- SPI CS + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => twi_sda_io, -- twi serial data line + twi_scl_io => twi_scl_io, -- twi serial clock line + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o => pwm_o_int, -- pwm channels + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i => cfs_in_i_int, -- custom inputs + cfs_out_o => cfs_out_o_int, -- custom outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => neoled_o_int, -- async serial data line + -- System time -- + mtime_i => mtime_i_int, -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => mtime_o_int, -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i => xirq_i_int, -- IRQ channels + -- CPU Interrupts -- + mtime_irq_i => mtime_irq_i_int, -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i => msw_irq_i_int, -- machine software interrupt + mext_irq_i => mext_irq_i_int -- machine external interrupt + ); + + -- type conversion -- + clk_i_int <= std_ulogic(clk_i); + rstn_i_int <= std_ulogic(rstn_i); + + jtag_trst_i_int <= std_ulogic(jtag_trst_i); + jtag_tck_i_int <= std_ulogic(jtag_tck_i); + jtag_tdi_i_int <= std_ulogic(jtag_tdi_i); + jtag_tdo_o <= std_logic(jtag_tdo_o_int); + jtag_tms_i_int <= std_ulogic(jtag_tms_i); + + wb_tag_o <= std_logic_vector(wb_tag_o_int); + wb_adr_o <= std_logic_vector(wb_adr_o_int); + wb_dat_i_int <= std_ulogic_vector(wb_dat_i); + wb_dat_o <= std_logic_vector(wb_dat_o_int); + wb_we_o <= std_logic(wb_we_o_int); + wb_sel_o <= std_logic_vector(wb_sel_o_int); + wb_stb_o <= std_logic(wb_stb_o_int); + wb_cyc_o <= std_logic(wb_cyc_o_int); + wb_lock_o <= std_logic(wb_lock_o_int); + wb_ack_i_int <= std_ulogic(wb_ack_i); + wb_err_i_int <= std_ulogic(wb_err_i); + + fence_o <= std_logic(fence_o_int); + fencei_o <= std_logic(fencei_o_int); + + slink_tx_val_o <= std_logic_vector(slink_tx_val_o_int); + slink_tx_rdy_i_int <= std_ulogic_vector(slink_tx_rdy_i); + slink_rx_val_i_int <= std_ulogic_vector(slink_rx_val_i); + slink_rx_rdy_o <= std_logic_vector(slink_rx_rdy_o_int); + + slink_conv: + for i in 0 to 7 generate + slink_tx_dat_o(i) <= std_logic_vector(slink_tx_dat_o_int(i)); + slink_rx_dat_i_int(i) <= std_ulogic_vector(slink_rx_dat_i(i)); + end generate; + + gpio_o <= std_logic_vector(gpio_o_int); + gpio_i_int <= std_ulogic_vector(gpio_i); + + uart0_txd_o <= std_logic(uart0_txd_o_int); + uart0_rxd_i_int <= std_ulogic(uart0_rxd_i); + uart0_rts_o <= std_logic(uart0_rts_o_int); + uart0_cts_i_int <= std_ulogic(uart0_cts_i); + uart1_txd_o <= std_logic(uart1_txd_o_int); + uart1_rxd_i_int <= std_ulogic(uart1_rxd_i); + uart1_rts_o <= std_logic(uart1_rts_o_int); + uart1_cts_i_int <= std_ulogic(uart1_cts_i); + + spi_sck_o <= std_logic(spi_sck_o_int); + spi_sdo_o <= std_logic(spi_sdo_o_int); + spi_sdi_i_int <= std_ulogic(spi_sdi_i); + spi_csn_o <= std_logic_vector(spi_csn_o_int); + + pwm_o <= std_logic_vector(pwm_o_int); + + cfs_in_i_int <= std_ulogic_vector(cfs_in_i); + cfs_out_o <= std_logic_vector(cfs_out_o_int); + + neoled_o <= std_logic(neoled_o_int); + + mtime_i_int <= std_ulogic_vector(mtime_i); + mtime_o <= std_logic_vector(mtime_o_int); + + xirq_i_int <= std_ulogic_vector(xirq_i); + + msw_irq_i_int <= std_ulogic(msw_irq_i); + mext_irq_i_int <= std_ulogic(mext_irq_i); + + +end architecture; diff --git a/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd b/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd new file mode 100644 index 0000000..bcab595 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd @@ -0,0 +1,423 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor Top Entity with AvalonMM Compatible Master Interface >> # +-- # ********************************************************************************************* # +-- # (c) "AvalonMM", "NIOS-2", "Qsys", "MegaWizard" and "Platform Designer" # +-- # are trademarks of Intel # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_top_avalonmm is + generic ( + -- General -- + CLOCK_FREQUENCY : natural; -- clock frequency of clk_i in Hz + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + INT_BOOTLOADER_EN : boolean := false; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean := false; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean := true; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean := false; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean := false; -- implement multiply-only M sub-extension? + + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 64; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural := 2; -- entries is instruction prefetch buffer, has to be a power of 2 + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + + -- Internal Instruction memory (IMEM) -- + MEM_INT_IMEM_EN : boolean := false; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + + -- Internal Data memory (DMEM) -- + MEM_INT_DMEM_EN : boolean := false; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 8*1024; -- size of processor-internal data memory in bytes + + -- Internal Cache memory (iCACHE) -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- Stream link interface (SLINK) -- + SLINK_NUM_TX : natural := 0; -- number of TX links (0..8) + SLINK_NUM_RX : natural := 0; -- number of TX links (0..8) + SLINK_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two + + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH : natural := 0; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_ulogic_vector(31 downto 0) := x"ffffffff"; -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_ulogic_vector(31 downto 0) := x"ffffffff"; -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + + -- Processor peripherals -- + IO_GPIO_EN : boolean := false; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := false; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := false; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN : boolean := false; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN : boolean := false; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := false; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 0; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := false; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean := false; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean := false; -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG : std_ulogic_vector(31 downto 0) := x"00000000"; -- custom CFS configuration generic + IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits + IO_NEOLED_EN : boolean := false; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO : natural := 1; -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN : boolean := false -- implement general purpose timer (GPTMR)? + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i : in std_ulogic := 'U'; -- low-active TAP reset (optional) + jtag_tck_i : in std_ulogic := 'U'; -- serial clock + jtag_tdi_i : in std_ulogic := 'U'; -- serial data input + jtag_tdo_o : out std_ulogic; -- serial data output + jtag_tms_i : in std_ulogic := 'U'; -- mode select + + -- AvalonMM interface + read_o : out std_logic; + write_o : out std_logic; + waitrequest_i : in std_logic := '0'; + byteenable_o : out std_logic_vector(3 downto 0); + address_o : out std_logic_vector(31 downto 0); + writedata_o : out std_logic_vector(31 downto 0); + readdata_i : in std_logic_vector(31 downto 0) := (others => '0'); + + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o : out std_ulogic; -- indicates an executed FENCE operation + fencei_o : out std_ulogic; -- indicates an executed FENCEI operation + + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o : out sdata_8x32_t; -- output data + slink_tx_val_o : out std_ulogic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- ready to send + + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i : in sdata_8x32_t := (others => (others => 'U')); -- input data + slink_rx_val_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- valid input + slink_rx_rdy_o : out std_ulogic_vector(7 downto 0); -- ready to receive + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_ulogic_vector(63 downto 0); -- parallel output + gpio_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o : out std_ulogic; -- UART0 send data + uart0_rxd_i : in std_ulogic := 'U'; -- UART0 receive data + uart0_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i : in std_ulogic := 'L'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o : out std_ulogic; -- UART1 send data + uart1_rxd_i : in std_ulogic := 'U'; -- UART1 receive data + uart1_rts_o : out std_ulogic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i : in std_ulogic := 'L'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_ulogic; -- SPI serial clock + spi_sdo_o : out std_ulogic; -- controller data out, peripheral data in + spi_sdi_i : in std_ulogic := 'U'; -- controller data in, peripheral data out + spi_csn_o : out std_ulogic_vector(07 downto 0); -- chip-select + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic := 'U'; -- twi serial data line + twi_scl_io : inout std_logic := 'U'; -- twi serial clock line + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0); -- pwm channels + + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i : in std_ulogic_vector(IO_CFS_IN_SIZE-1 downto 0) := (others => 'U'); -- custom CFS inputs conduit + cfs_out_o : out std_ulogic_vector(IO_CFS_OUT_SIZE-1 downto 0); -- custom CFS outputs conduit + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o : out std_ulogic; -- async serial data line + + -- System time -- + mtime_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o : out std_ulogic_vector(63 downto 0); -- current system time from int. MTIME (if IO_MTIME_EN = true) + + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i : in std_ulogic_vector(XIRQ_NUM_CH-1 downto 0) := (others => 'L'); -- IRQ channels + + -- CPU interrupts -- + mtime_irq_i : in std_ulogic := 'L'; -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i : in std_ulogic := 'L'; -- machine software interrupt + mext_irq_i : in std_ulogic := 'L' -- machine external interrupt + ); +end neorv32_top_avalonmm; + +architecture neorv32_top_avalonmm_rtl of neorv32_top_avalonmm is + + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + signal wb_tag_o : std_ulogic_vector(02 downto 0); -- request tag + signal wb_adr_o : std_ulogic_vector(31 downto 0); -- address + signal wb_dat_i : std_ulogic_vector(31 downto 0) := (others => 'U'); -- read data + signal wb_dat_o : std_ulogic_vector(31 downto 0); -- write data + signal wb_we_o : std_ulogic; -- read/write + signal wb_sel_o : std_ulogic_vector(03 downto 0); -- byte enable + signal wb_stb_o : std_ulogic; -- strobe + signal wb_cyc_o : std_ulogic; -- valid cycle + signal wb_lock_o : std_ulogic; -- exclusive access request + signal wb_ack_i : std_ulogic := 'L'; -- transfer acknowledge + signal wb_err_i : std_ulogic := 'L'; -- transfer error + +begin + + neorv32_top_map : neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, + HW_THREAD_ID => HW_THREAD_ID, + INT_BOOTLOADER_EN => INT_BOOTLOADER_EN, + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => ON_CHIP_DEBUGGER_EN, + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, + CPU_EXTENSION_RISCV_Zicntr => CPU_EXTENSION_RISCV_Zicntr, + CPU_EXTENSION_RISCV_Zihpm => CPU_EXTENSION_RISCV_Zihpm, + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, + CPU_EXTENSION_RISCV_Zmmul => CPU_EXTENSION_RISCV_Zmmul, + + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, + FAST_SHIFT_EN => FAST_SHIFT_EN, + CPU_CNT_WIDTH => CPU_CNT_WIDTH, + CPU_IPB_ENTRIES => CPU_IPB_ENTRIES, + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, + HPM_CNT_WIDTH => HPM_CNT_WIDTH, + + -- Internal Instruction memory (IMEM) -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, + + -- Internal Data memory (DMEM) -- + MEM_INT_DMEM_EN => MEM_INT_IMEM_EN, + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, + + -- Internal Cache memory (iCACHE) -- + ICACHE_EN => ICACHE_EN, + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, + + -- External memory interface (WISHBONE) -- + MEM_EXT_EN => true, + MEM_EXT_TIMEOUT => 0, + MEM_EXT_PIPE_MODE => false, + MEM_EXT_BIG_ENDIAN => false, + MEM_EXT_ASYNC_RX => false, + + -- Stream link interface (SLINK) -- + SLINK_NUM_TX => SLINK_NUM_TX, + SLINK_NUM_RX => SLINK_NUM_RX, + SLINK_TX_FIFO => SLINK_TX_FIFO, + SLINK_RX_FIFO => SLINK_RX_FIFO, + + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH => XIRQ_NUM_CH, + XIRQ_TRIGGER_TYPE => XIRQ_TRIGGER_TYPE, + XIRQ_TRIGGER_POLARITY => XIRQ_TRIGGER_POLARITY, + + -- Processor peripherals -- + IO_GPIO_EN => IO_GPIO_EN, + IO_MTIME_EN => IO_MTIME_EN, + IO_UART0_EN => IO_UART0_EN, + IO_UART0_RX_FIFO => IO_UART0_RX_FIFO, + IO_UART0_TX_FIFO => IO_UART0_TX_FIFO, + IO_UART1_EN => IO_UART1_EN, + IO_UART1_RX_FIFO => IO_UART1_RX_FIFO, + IO_UART1_TX_FIFO => IO_UART1_TX_FIFO, + IO_SPI_EN => IO_SPI_EN, + IO_TWI_EN => IO_TWI_EN, + IO_PWM_NUM_CH => IO_PWM_NUM_CH, + IO_WDT_EN => IO_WDT_EN, + IO_TRNG_EN => IO_TRNG_EN, + IO_CFS_EN => IO_CFS_EN, + IO_CFS_CONFIG => IO_CFS_CONFIG, + IO_CFS_IN_SIZE => IO_CFS_IN_SIZE, + IO_CFS_OUT_SIZE => IO_CFS_OUT_SIZE, + IO_NEOLED_EN => IO_NEOLED_EN, + IO_NEOLED_TX_FIFO => IO_NEOLED_TX_FIFO, + IO_GPTMR_EN => IO_GPTMR_EN + ) + port map ( + -- Global control -- + clk_i => clk_i, + rstn_i => rstn_i, + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => jtag_trst_i, + jtag_tck_i => jtag_tck_i, + jtag_tdi_i => jtag_tdi_i, + jtag_tdo_o => jtag_tdo_o, + jtag_tms_i => jtag_tms_i, + + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => wb_tag_o, + wb_adr_o => wb_adr_o, + wb_dat_i => wb_dat_i, + wb_dat_o => wb_dat_o, + wb_we_o => wb_we_o, + wb_sel_o => wb_sel_o, + wb_stb_o => wb_stb_o, + wb_cyc_o => wb_cyc_o, + wb_lock_o => wb_lock_o, + wb_ack_i => wb_ack_i, + wb_err_i => wb_err_i, + + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o => fence_o, + fencei_o => fencei_o, + + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o => slink_tx_dat_o, + slink_tx_val_o => slink_tx_val_o, + slink_tx_rdy_i => slink_tx_rdy_i, + + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i => slink_rx_dat_i, + slink_rx_val_i => slink_rx_val_i, + slink_rx_rdy_o => slink_rx_rdy_o, + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => gpio_o, + gpio_i => gpio_i, + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd_o, + uart0_rxd_i => uart0_rxd_i, + uart0_rts_o => uart0_rts_o, + uart0_cts_i => uart0_cts_i, + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => uart1_txd_o, + uart1_rxd_i => uart1_rxd_i, + uart1_rts_o => uart1_rts_o, + uart1_cts_i => uart1_cts_i, + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => spi_sck_o, + spi_sdo_o => spi_sdo_o, + spi_sdi_i => spi_sdi_i, + spi_csn_o => spi_csn_o, + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => twi_sda_io, + twi_scl_io => twi_scl_io, + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o => pwm_o, + + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i => cfs_in_i, + cfs_out_o => cfs_out_o, + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => neoled_o, + + -- System time -- + mtime_i => mtime_i, + mtime_o => mtime_o, + + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i => xirq_i, + + -- CPU interrupts -- + mtime_irq_i => mtime_irq_i, + msw_irq_i => msw_irq_i, + mext_irq_i => mext_irq_i + ); + + -- Wishbone to AvalonMM bridge + read_o <= '1' when (wb_stb_o = '1' and wb_we_o = '0') else '0'; + write_o <= '1' when (wb_stb_o = '1' and wb_we_o = '1') else '0'; + address_o <= std_logic_vector(wb_adr_o); + writedata_o <= std_logic_vector(wb_dat_o); + byteenable_o <= std_logic_vector(wb_sel_o); + + wb_dat_i <= std_ulogic_vector(readdata_i); + wb_ack_i <= not(waitrequest_i); + wb_err_i <= '0'; + +end neorv32_top_avalonmm_rtl; diff --git a/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_axi4lite.vhd b/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_axi4lite.vhd new file mode 100644 index 0000000..382f97c --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/system_integration/neorv32_SystemTop_axi4lite.vhd @@ -0,0 +1,532 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor Top Entity with AXI4-Lite Compatible Master Interface >> # +-- # ********************************************************************************************* # +-- # (c) "AXI", "AXI4" and "AXI4-Lite" are trademarks of Arm Holdings plc. # +-- # Note: External MTIME is not supported. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_SystemTop_axi4lite is + generic ( + -- ------------------------------------------------------------ + -- Configuration Generics -- + -- ------------------------------------------------------------ + -- General -- + CLOCK_FREQUENCY : natural := 0; -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN : boolean := true; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean := false; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement muld/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr : boolean := true; -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm : boolean := false; -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 64; -- total width of CPU cycle and instret counters (0..64) + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN : boolean := true; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN : boolean := true; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 8*1024; -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH : natural := 0; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_logic_vector(31 downto 0) := x"FFFFFFFF"; -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_logic_vector(31 downto 0) := x"FFFFFFFF"; -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN : boolean := true; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := true; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := true; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN : boolean := true; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN : boolean := true; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := true; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 4; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := true; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean := true; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean := false; -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG : std_logic_vector(31 downto 0) := x"00000000"; -- custom CFS configuration generic + IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits + IO_NEOLED_EN : boolean := true; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO : natural := 1; -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN : boolean := false -- implement general purpose timer (GPTMR)? + ); + port ( + -- ------------------------------------------------------------ + -- AXI4-Lite-Compatible Master Interface -- + -- ------------------------------------------------------------ + -- Clock and Reset -- + m_axi_aclk : in std_logic; + m_axi_aresetn : in std_logic; + -- Write Address Channel -- + m_axi_awaddr : out std_logic_vector(31 downto 0); + m_axi_awprot : out std_logic_vector(2 downto 0); + m_axi_awvalid : out std_logic; + m_axi_awready : in std_logic; + -- Write Data Channel -- + m_axi_wdata : out std_logic_vector(31 downto 0); + m_axi_wstrb : out std_logic_vector(3 downto 0); + m_axi_wvalid : out std_logic; + m_axi_wready : in std_logic; + -- Read Address Channel -- + m_axi_araddr : out std_logic_vector(31 downto 0); + m_axi_arprot : out std_logic_vector(2 downto 0); + m_axi_arvalid : out std_logic; + m_axi_arready : in std_logic; + -- Read Data Channel -- + m_axi_rdata : in std_logic_vector(31 downto 0); + m_axi_rresp : in std_logic_vector(1 downto 0); + m_axi_rvalid : in std_logic; + m_axi_rready : out std_logic; + -- Write Response Channel -- + m_axi_bresp : in std_logic_vector(1 downto 0); + m_axi_bvalid : in std_logic; + m_axi_bready : out std_logic; + -- ------------------------------------------------------------ + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + -- ------------------------------------------------------------ + jtag_trst_i : in std_logic := '0'; -- low-active TAP reset (optional) + jtag_tck_i : in std_logic := '0'; -- serial clock + jtag_tdi_i : in std_logic := '0'; -- serial data input + jtag_tdo_o : out std_logic; -- serial data output + jtag_tms_i : in std_logic := '0'; -- mode select + -- ------------------------------------------------------------ + -- Processor IO -- + -- ------------------------------------------------------------ + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_logic_vector(63 downto 0); -- parallel output + gpio_i : in std_logic_vector(63 downto 0) := (others => '0'); -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o : out std_logic; -- UART0 send data + uart0_rxd_i : in std_logic := '0'; -- UART0 receive data + uart0_rts_o : out std_logic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i : in std_logic := '0'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o : out std_logic; -- UART1 send data + uart1_rxd_i : in std_logic := '0'; -- UART1 receive data + uart1_rts_o : out std_logic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i : in std_logic := '0'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_logic; -- SPI serial clock + spi_sdo_o : out std_logic; -- controller data out, peripheral data in + spi_sdi_i : in std_logic := '0'; -- controller data in, peripheral data out + spi_csn_o : out std_logic_vector(07 downto 0); -- SPI CS + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic; -- twi serial data line + twi_scl_io : inout std_logic; -- twi serial clock line + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_logic_vector(IO_PWM_NUM_CH-1 downto 0); -- pwm channels + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i : in std_logic_vector(IO_CFS_IN_SIZE-1 downto 0); -- custom inputs + cfs_out_o : out std_logic_vector(IO_CFS_OUT_SIZE-1 downto 0); -- custom outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o : out std_logic; -- async serial data line + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i : in std_logic_vector(XIRQ_NUM_CH-1 downto 0) := (others => '0'); -- IRQ channels + -- CPU Interrupts -- + msw_irq_i : in std_logic := '0'; -- machine software interrupt + mext_irq_i : in std_logic := '0' -- machine external interrupt + ); +end entity; + +architecture neorv32_SystemTop_axi4lite_rtl of neorv32_SystemTop_axi4lite is + + -- type conversion -- + constant IO_CFS_CONFIG_INT : std_ulogic_vector(31 downto 0) := std_ulogic_vector(IO_CFS_CONFIG); + constant XIRQ_TRIGGER_TYPE_INT : std_ulogic_vector(31 downto 0) := std_ulogic_vector(XIRQ_TRIGGER_TYPE); + constant XIRQ_TRIGGER_POLARITY_INT : std_ulogic_vector(31 downto 0) := std_ulogic_vector(XIRQ_TRIGGER_POLARITY); + -- + signal clk_i_int : std_ulogic; + signal rstn_i_int : std_ulogic; + -- + signal jtag_trst_i_int :std_ulogic; + signal jtag_tck_i_int :std_ulogic; + signal jtag_tdi_i_int :std_ulogic; + signal jtag_tdo_o_int :std_ulogic; + signal jtag_tms_i_int :std_ulogic; + -- + signal gpio_o_int : std_ulogic_vector(63 downto 0); + signal gpio_i_int : std_ulogic_vector(63 downto 0); + -- + signal uart0_txd_o_int : std_ulogic; + signal uart0_rxd_i_int : std_ulogic; + signal uart0_rts_o_int : std_ulogic; + signal uart0_cts_i_int : std_ulogic; + -- + signal uart1_txd_o_int : std_ulogic; + signal uart1_rxd_i_int : std_ulogic; + signal uart1_rts_o_int : std_ulogic; + signal uart1_cts_i_int : std_ulogic; + -- + signal spi_sck_o_int : std_ulogic; + signal spi_sdo_o_int : std_ulogic; + signal spi_sdi_i_int : std_ulogic; + signal spi_csn_o_int : std_ulogic_vector(07 downto 0); + -- + signal pwm_o_int : std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0); + -- + signal cfs_in_i_int : std_ulogic_vector(IO_CFS_IN_SIZE-1 downto 0); + signal cfs_out_o_int : std_ulogic_vector(IO_CFS_OUT_SIZE-1 downto 0); + -- + signal neoled_o_int : std_ulogic; + -- + signal xirq_i_int : std_ulogic_vector(XIRQ_NUM_CH-1 downto 0); + -- + signal msw_irq_i_int : std_ulogic; + signal mext_irq_i_int : std_ulogic; + + -- internal wishbone bus -- + type wb_bus_t is record + adr : std_ulogic_vector(31 downto 0); -- address + di : std_ulogic_vector(31 downto 0); -- processor input data + do : std_ulogic_vector(31 downto 0); -- processor output data + we : std_ulogic; -- write enable + sel : std_ulogic_vector(03 downto 0); -- byte enable + stb : std_ulogic; -- strobe + cyc : std_ulogic; -- valid cycle + ack : std_ulogic; -- transfer acknowledge + err : std_ulogic; -- transfer error + tag : std_ulogic_vector(02 downto 0); -- tag + lock : std_ulogic; -- exclusive access request + end record; + signal wb_core : wb_bus_t; + + -- AXI bridge control -- + type ctrl_t is record + radr_received : std_ulogic; + wadr_received : std_ulogic; + wdat_received : std_ulogic; + end record; + signal ctrl : ctrl_t; + + signal ack_read, ack_write : std_ulogic; -- normal transfer termination + signal err_read, err_write : std_ulogic; -- error transfer termination + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (CPU_EXTENSION_RISCV_A = true) report "NEORV32 PROCESSOR CONFIG WARNING: AXI4-Lite provides NO support for atomic memory operations. LR/SC access via AXI will raise a bus exception." severity warning; + + + -- The Core Of The Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => INT_BOOTLOADER_EN, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + HW_THREAD_ID => HW_THREAD_ID, -- hardware thread id (hartid) + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => ON_CHIP_DEBUGGER_EN, -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement muld/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => CPU_EXTENSION_RISCV_Zfinx, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => CPU_EXTENSION_RISCV_Zicntr, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => CPU_EXTENSION_RISCV_Zihpm, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + -- Extension Options -- + FAST_MUL_EN => FAST_MUL_EN, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => FAST_SHIFT_EN, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => CPU_CNT_WIDTH, -- total width of CPU cycle and instret counters (0..64) + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => PMP_NUM_REGIONS, -- number of regions (0..64) + PMP_MIN_GRANULARITY => PMP_MIN_GRANULARITY, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => HPM_NUM_CNTS, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => HPM_CNT_WIDTH, -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => MEM_INT_IMEM_EN, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => MEM_INT_DMEM_EN, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN => ICACHE_EN, -- implement instruction cache + ICACHE_NUM_BLOCKS => ICACHE_NUM_BLOCKS, -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => ICACHE_BLOCK_SIZE, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => ICACHE_ASSOCIATIVITY, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface -- + MEM_EXT_EN => true, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 0, -- cycles after a pending bus access auto-terminates (0 = disabled) + MEM_EXT_PIPE_MODE => false, -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + MEM_EXT_BIG_ENDIAN => false, -- byte order: true=big-endian, false=little-endian + MEM_EXT_ASYNC_RX => false, -- use register buffer for RX data when false + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH => XIRQ_NUM_CH, -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE => XIRQ_TRIGGER_TYPE_INT, -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY => XIRQ_TRIGGER_POLARITY_INT, -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? + IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO => IO_UART0_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO => IO_UART0_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN => IO_UART1_EN, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO => IO_UART1_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO => IO_UART1_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN => IO_SPI_EN, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => IO_TWI_EN, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => IO_WDT_EN, -- implement watch dog timer (WDT)? + IO_TRNG_EN => IO_TRNG_EN, -- implement true random number generator (TRNG)? + IO_CFS_EN => IO_CFS_EN, -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG => IO_CFS_CONFIG_INT, -- custom CFS configuration generic + IO_CFS_IN_SIZE => IO_CFS_IN_SIZE, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => IO_CFS_OUT_SIZE, -- size of CFS output conduit in bits + IO_NEOLED_EN => IO_NEOLED_EN, -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO => IO_NEOLED_TX_FIFO, -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN => IO_GPTMR_EN -- implement general purpose timer (GPTMR)? + ) + port map ( + -- Global control -- + clk_i => clk_i_int, -- global clock, rising edge + rstn_i => rstn_i_int, -- global reset, low-active, async + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => jtag_trst_i_int, -- low-active TAP reset (optional) + jtag_tck_i => jtag_tck_i_int, -- serial clock + jtag_tdi_i => jtag_tdi_i_int, -- serial data input + jtag_tdo_o => jtag_tdo_o_int, -- serial data output + jtag_tms_i => jtag_tms_i_int, -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => wb_core.tag, -- tag + wb_adr_o => wb_core.adr, -- address + wb_dat_i => wb_core.di, -- read data + wb_dat_o => wb_core.do, -- write data + wb_we_o => wb_core.we, -- read/write + wb_sel_o => wb_core.sel, -- byte enable + wb_stb_o => wb_core.stb, -- strobe + wb_cyc_o => wb_core.cyc, -- valid cycle + wb_lock_o => wb_core.lock, -- exclusive access request + wb_ack_i => wb_core.ack, -- transfer acknowledge + wb_err_i => wb_core.err, -- transfer error + -- 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 (available if IO_GPIO_EN = true) -- + gpio_o => gpio_o_int, -- parallel output + gpio_i => gpio_i_int, -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd_o_int, -- UART0 send data + uart0_rxd_i => uart0_rxd_i_int, -- UART0 receive data + uart0_rts_o => uart0_rts_o_int, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => uart0_cts_i_int, -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => uart1_txd_o_int, -- UART1 send data + uart1_rxd_i => uart1_rxd_i_int, -- UART1 receive data + uart1_rts_o => uart1_rts_o_int, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => uart1_cts_i_int, -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => spi_sck_o_int, -- SPI serial clock + spi_sdo_o => spi_sdo_o_int, -- controller data out, peripheral data in + spi_sdi_i => spi_sdi_i_int, -- controller data in, peripheral data out + spi_csn_o => spi_csn_o_int, -- SPI CS + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => twi_sda_io, -- twi serial data line + twi_scl_io => twi_scl_io, -- twi serial clock line + -- PWM available if IO_PWM_NUM_CH > 0) -- + pwm_o => pwm_o_int, -- pwm channels + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i => cfs_in_i_int, -- custom inputs + cfs_out_o => cfs_out_o_int, -- custom outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => neoled_o_int, -- async serial data line + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i => xirq_i_int, -- IRQ channels + -- CPU Interrupts -- + mtime_irq_i => '0', -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i => msw_irq_i_int, -- machine software interrupt + mext_irq_i => mext_irq_i_int -- machine external interrupt + ); + + -- type conversion -- + gpio_o <= std_logic_vector(gpio_o_int); + gpio_i_int <= std_ulogic_vector(gpio_i); + + jtag_trst_i_int <= std_ulogic(jtag_trst_i); + jtag_tck_i_int <= std_ulogic(jtag_tck_i); + jtag_tdi_i_int <= std_ulogic(jtag_tdi_i); + jtag_tdo_o <= std_logic(jtag_tdo_o_int); + jtag_tms_i_int <= std_ulogic(jtag_tms_i); + + uart0_txd_o <= std_logic(uart0_txd_o_int); + uart0_rxd_i_int <= std_ulogic(uart0_rxd_i); + uart0_rts_o <= std_logic(uart0_rts_o_int); + uart0_cts_i_int <= std_ulogic(uart0_cts_i); + uart1_txd_o <= std_logic(uart1_txd_o_int); + uart1_rxd_i_int <= std_ulogic(uart1_rxd_i); + uart1_rts_o <= std_logic(uart1_rts_o_int); + uart1_cts_i_int <= std_ulogic(uart1_cts_i); + + spi_sck_o <= std_logic(spi_sck_o_int); + spi_sdo_o <= std_logic(spi_sdo_o_int); + spi_sdi_i_int <= std_ulogic(spi_sdi_i); + spi_csn_o <= std_logic_vector(spi_csn_o_int); + + pwm_o <= std_logic_vector(pwm_o_int); + + cfs_in_i_int <= std_ulogic_vector(cfs_in_i); + cfs_out_o <= std_logic_vector(cfs_out_o_int); + + neoled_o <= std_logic(neoled_o_int); + + xirq_i_int <= std_ulogic_vector(xirq_i); + + msw_irq_i_int <= std_ulogic(msw_irq_i); + mext_irq_i_int <= std_ulogic(mext_irq_i); + + + -- Wishbone to AXI4-Lite Bridge ----------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + -- access arbiter -- + axi_access_arbiter: process(rstn_i_int, clk_i_int) + begin + if (rstn_i_int = '0') then + ctrl.radr_received <= '0'; + ctrl.wadr_received <= '0'; + ctrl.wdat_received <= '0'; + elsif rising_edge(clk_i_int) then + if (wb_core.cyc = '0') then -- idle + ctrl.radr_received <= '0'; + ctrl.wadr_received <= '0'; + ctrl.wdat_received <= '0'; + else -- busy + -- "read address received" flag -- + if (wb_core.we = '0') then -- pending READ + if (m_axi_arready = '1') then -- read address received by interconnect? + ctrl.radr_received <= '1'; + end if; + end if; + -- "write address received" flag -- + if (wb_core.we = '1') then -- pending WRITE + if (m_axi_awready = '1') then -- write address received by interconnect? + ctrl.wadr_received <= '1'; + end if; + end if; + -- "write data received" flag -- + if (wb_core.we = '1') then -- pending WRITE + if (m_axi_wready = '1') then -- write data received by interconnect? + ctrl.wdat_received <= '1'; + end if; + end if; + end if; + end if; + end process axi_access_arbiter; + + + -- AXI4-Lite Global Signals -- + clk_i_int <= std_ulogic(m_axi_aclk); + rstn_i_int <= std_ulogic(m_axi_aresetn); + + + -- AXI4-Lite Read Address Channel -- + m_axi_araddr <= std_logic_vector(wb_core.adr); + m_axi_arvalid <= std_logic((wb_core.cyc and (not wb_core.we)) and (not ctrl.radr_received)); +--m_axi_arprot <= "000"; -- recommended by Xilinx + m_axi_arprot(0) <= wb_core.tag(0); -- 0:unprivileged access, 1:privileged access + m_axi_arprot(1) <= wb_core.tag(1); -- 0:secure access, 1:non-secure access + m_axi_arprot(2) <= wb_core.tag(2); -- 0:data access, 1:instruction access + + -- AXI4-Lite Read Data Channel -- + m_axi_rready <= std_logic(wb_core.cyc and (not wb_core.we)); + wb_core.di <= std_ulogic_vector(m_axi_rdata); + ack_read <= std_ulogic(m_axi_rvalid); + err_read <= '0' when (m_axi_rresp = "00") else '1'; -- read response = ok? check this signal only when m_axi_rvalid = '1' + + + -- AXI4-Lite Write Address Channel -- + m_axi_awaddr <= std_logic_vector(wb_core.adr); + m_axi_awvalid <= std_logic((wb_core.cyc and wb_core.we) and (not ctrl.wadr_received)); +--m_axi_awprot <= "000"; -- recommended by Xilinx + m_axi_awprot(0) <= wb_core.tag(0); -- 0:unprivileged access, 1:privileged access + m_axi_awprot(1) <= wb_core.tag(1); -- 0:secure access, 1:non-secure access + m_axi_awprot(2) <= wb_core.tag(2); -- 0:data access, 1:instruction access + + -- AXI4-Lite Write Data Channel -- + m_axi_wdata <= std_logic_vector(wb_core.do); + m_axi_wvalid <= std_logic((wb_core.cyc and wb_core.we) and (not ctrl.wdat_received)); + m_axi_wstrb <= std_logic_vector(wb_core.sel); -- byte-enable + + -- AXI4-Lite Write Response Channel -- + m_axi_bready <= std_logic(wb_core.cyc and wb_core.we); + ack_write <= std_ulogic(m_axi_bvalid); + err_write <= '0' when (m_axi_bresp = "00") else '1'; -- write response = ok? check this signal only when m_axi_bvalid = '1' + + + -- Wishbone transfer termination -- + wb_core.ack <= ack_read or ack_write; + wb_core.err <= (ack_read and err_read) or (ack_write and err_write) or wb_core.lock; + + +end architecture; diff --git a/Libs/RiscV/NEORV32/rtl/test_setups/README.md b/Libs/RiscV/NEORV32/rtl/test_setups/README.md new file mode 100644 index 0000000..d3ee026 --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/test_setups/README.md @@ -0,0 +1,52 @@ +# Test Setups + +This folder contains very simple test setups that are intended for project beginners +to setup a minimal NEORV32 SoC. These setups are used in the :books: +[NEORV32 User Guide](https://stnolting.github.io/neorv32/ug/). +Note that these setups provides a minimalistic configuration to keep +things at a simple level at first. Additional CPU ISA extensions, performance options and +optional peripheral modules can be enabled by specifying the according :book: +[configuration generics](https://stnolting.github.io/neorv32/#_processor_top_entity_generics). + + +### Setup's Top Entity + +#### Clocking and Reset + +All test setups require an external clock (via `clk_i` signal) and an external +low-active reset (via `rstn_i` signal). + +#### Configuration Generics + +Each setup provides three elementary generics that can/should be adapted to fit +your FPGA/board. + +* The clock speed in Hz **has to be specified** via the `CLOCK_SPEED` generic to fit your clock source. +* The processor-internal instruction memory (IMEM) size _can be modified_ via the `MEM_INT_IMEM_SIZE` generic. +* The processor-internal data memory (DMEM) size _can be modified_ via the `MEM_INT_DMEM_SIZE` generic. +Note that this might require adaption of the NEORV32 linker script. + + +### [`neorv32_test_setup_approm.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_approm.vhd) + +This setup configures a `rv32imc_Zicsr` CPU with 16kB IMEM (as pre-initialized ROM), +8kB DMEM and includes the GPIO module to drive 8 external signals (`gpio_o`) +and the MTIME module for generating timer interrupts. +The setup uses the ["indirect boot"](https://stnolting.github.io/neorv32/#_indirect_boot) +configuration, so software applications are "installed" directly into the +processor-internal IMEM during synthesis. + +:books: See User Guide section [_Installing an Executable Directly Into Memory_](https://stnolting.github.io/neorv32/ug/#_installing_an_executable_directly_into_memory). + + +### [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) + +This setup configures a `rv32imc_Zicsr` CPU with 16kB IMEM (as RAM), 8kB DMEM +and includes the GPIO module to drive 8 external signals (`gpio_o`), the MTIME +module for generating timer interrupts and UART0 to interface with the bootloader +(via `uart0_txd_o` and `uart0_rxd_i`) via a serial terminal. +The setup uses the ["direct boot"](https://stnolting.github.io/neorv32/#_direct_boot) +configuration, so software applications can be uploaded and run at any timer via a serial terminal. + +:books: See User Guide section +[_Uploading and Starting of a Binary Executable Image via UART_](https://stnolting.github.io/neorv32/ug/#_uploading_and_starting_of_a_binary_executable_image_via_uart). diff --git a/Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_approm.vhd b/Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_approm.vhd new file mode 100644 index 0000000..6f48bef --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_approm.vhd @@ -0,0 +1,98 @@ +-- ################################################################################################# +-- # << NEORV32 - Test Setup using the internal IMEM as ROM to run pre-installed executables >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_test_setup_approm is + generic ( + -- adapt these for your setup -- + CLOCK_FREQUENCY : natural := 100000000; -- clock frequency of clk_i in Hz + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + MEM_INT_DMEM_SIZE : natural := 8*1024 -- size of processor-internal data memory in bytes + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + -- GPIO -- + gpio_o : out std_ulogic_vector(7 downto 0) -- parallel output + ); +end entity; + +architecture neorv32_test_setup_approm_rtl of neorv32_test_setup_approm is + + signal con_gpio_o : std_ulogic_vector(63 downto 0); + +begin + + -- The Core Of The Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => false, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_C => true, -- implement compressed extension? + CPU_EXTENSION_RISCV_M => true, -- implement mul/div extension? + CPU_EXTENSION_RISCV_Zicsr => true, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => true, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => true, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + -- Processor peripherals -- + IO_GPIO_EN => true, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true -- implement machine system timer (MTIME)? + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => con_gpio_o -- parallel output + ); + + -- GPIO output -- + gpio_o <= con_gpio_o(7 downto 0); + + +end architecture; diff --git a/Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_bootloader.vhd b/Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_bootloader.vhd new file mode 100644 index 0000000..1c420af --- /dev/null +++ b/Libs/RiscV/NEORV32/rtl/test_setups/neorv32_test_setup_bootloader.vhd @@ -0,0 +1,105 @@ +-- ################################################################################################# +-- # << NEORV32 - Test Setup using the UART-Bootloader to upload and run executables >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_test_setup_bootloader is + generic ( + -- adapt these for your setup -- + CLOCK_FREQUENCY : natural := 100000000; -- clock frequency of clk_i in Hz + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + MEM_INT_DMEM_SIZE : natural := 8*1024 -- size of processor-internal data memory in bytes + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + -- GPIO -- + gpio_o : out std_ulogic_vector(7 downto 0); -- parallel output + -- UART0 -- + uart0_txd_o : out std_ulogic; -- UART0 send data + uart0_rxd_i : in std_ulogic -- UART0 receive data + ); +end entity; + +architecture neorv32_test_setup_bootloader_rtl of neorv32_test_setup_bootloader is + + signal con_gpio_o : std_ulogic_vector(63 downto 0); + +begin + + -- The Core Of The Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => true, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_C => true, -- implement compressed extension? + CPU_EXTENSION_RISCV_M => true, -- implement mul/div extension? + CPU_EXTENSION_RISCV_Zicsr => true, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => true, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => true, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => MEM_INT_DMEM_SIZE, -- size of processor-internal data memory in bytes + -- Processor peripherals -- + IO_GPIO_EN => true, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true, -- implement machine system timer (MTIME)? + IO_UART0_EN => true -- implement primary universal asynchronous receiver/transmitter (UART0)? + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => con_gpio_o, -- parallel output + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd_o, -- UART0 send data + uart0_rxd_i => uart0_rxd_i -- UART0 receive data + ); + + -- GPIO output -- + gpio_o <= con_gpio_o(7 downto 0); + + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/README.md b/Libs/RiscV/NEORV32/setups/README.md new file mode 100644 index 0000000..d0cc30b --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/README.md @@ -0,0 +1,65 @@ +# Exemplary FPGA Board Setups + +* [Setups using Commercial Toolchains](#Setups-using-Commercial-Toolchains) +* [Setups using Open-Source Toolchains](#Setups-using-Open-Source-Toolchains) +* [Adding Your Project Setup](#Adding-Your-Project-Setup) +* [Setup-Specific NEORV32 Software Framework Modification](#Setup-Specific-NEORV32-Software-Framework-Modification) + +This folder provides exemplary NEORV32 SoC setups and projects for different FPGA platforms/boards. +You can directly use one of the provided setups or use them as starting point to build your own setup. +Project maintainers may make pull requests against this repository to [add or link their setups](#Adding-Your-Project-Setup). + + +## Setups using Commercial Toolchains + +| Setup | Toolchain | Board :books: | FPGA | Author(s) | +|:------|:----------|:--------------|:------|:----------| +| :file_folder: [`de0-nano-test-setup`](https://github.com/stnolting/neorv32/tree/master/setups/quartus/de0-nano-test-setup) | Intel Quartus Prime | [Terasic DE0-Nano](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593) | Intel Cyclone IV `EP4CE22F17C6N` | [stnolting](https://github.com/stnolting) | +| :file_folder: [`de0-nano-test-setup-qsys`](quartus/de0-nano-test-setup-qsys) | Intel Quartus Prime | [Terasic DE0-Nano](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593) | Intel Cyclone IV `EP4CE22F17C6N` | [torerams](https://github.com/torerams) | +| :file_folder: [`de0-nano-test-setup-avalonmm`](quartus/de0-nano-test-setup-avalonmm-wrapper) | Intel Quartus Prime | [Terasic DE0-Nano](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593) | Intel Cyclone IV `EP4CE22F17C6N` | [torerams](https://github.com/torerams) | +| :file_folder: [`terasic-cyclone-V-gx-starter-kit-test-setup`](https://github.com/stnolting/neorv32/tree/master/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup) | Intel Quartus Prime | [Terasic Cyclone-V GX Starter Kit](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=830) | Intel Cyclone V `5CGXFC5C6F27C7N` | zs6mue | +| :file_folder: [`UPduino_v3`](https://github.com/stnolting/neorv32/tree/master/setups/radiant/UPduino_v3) | Lattice Radiant | [tinyVision.ai Inc. UPduino `v3.0`](https://www.tindie.com/products/tinyvision_ai/upduino-v30-low-cost-lattice-ice40-fpga-board/) | Lattice iCE40 UltraPlus `iCE40UP5K-SG48I` | [stnolting](https://github.com/stnolting) | +| :file_folder: [`arty-a7-35-test-setup`](https://github.com/stnolting/neorv32/tree/master/setups/vivado/arty-a7-test-setup) | Xilinx Vivado | [Digilent Arty A7-35](https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start) | Xilinx Artix-7 `XC7A35TICSG324-1L` | [stnolting](https://github.com/stnolting) | +| :file_folder: [`nexys-a7-test-setup`](https://github.com/stnolting/neorv32/tree/master/setups/vivado/nexys-a7-test-setup) | Xilinx Vivado | [Digilent Nexys A7](https://reference.digilentinc.com/reference/programmable-logic/nexys-a7/start) | Xilinx Artix-7 `XC7A50TCSG324-1` | [AWenzel83](https://github.com/AWenzel83) | +| :file_folder: [`nexys-a7-test-setup`](https://github.com/stnolting/neorv32/tree/master/setups/vivado/nexys-a7-test-setup) | Xilinx Vivado | [Digilent Nexys 4 DDR](https://reference.digilentinc.com/reference/programmable-logic/nexys-4-ddr/start) | Xilinx Artix-7 `XC7A100TCSG324-1` | [AWenzel83](https://github.com/AWenzel83) | +| :earth_africa: [custom CRC32 processor module for the nexys-a7 boards (**tutorial**)](https://github.com/motius/neorv32/tree/add-custom-crc32-module) | Xilinx Vivado | [Digilent Nexys A7](https://reference.digilentinc.com/reference/programmable-logic/nexys-a7/start) | Xilinx Artix-7 `XC7A50TCSG324-1` | [motius](https://github.com/motius) ([ikstvn](https://github.com/ikstvn), [turbinenreiter](https://github.com/turbinenreiter)) | +| :earth_africa: [neorv32-examples](https://github.com/emb4fun/neorv32-examples) | Intel Quartus Prime | Different Terasic boards | Different Intel FPGAs | [emb4fun](https://github.com/emb4fun) | + + +## Setups using Open-Source Toolchains + +| Setup | Toolchain | Board :books: | FPGA | Author(s) | +|:------|:----------|:--------------|:------|:----------| +| :file_folder: [`UPduino v3`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) | GHDL, Yosys, nextPNR | [UPduino v3.0](https://www.tindie.com/products/tinyvision_ai/upduino-v30-low-cost-lattice-ice40-fpga-board/) | Lattice iCE40 UltraPlus `iCE40UP5K-SG48I` | [tmeissner](https://github.com/tmeissner) | +| :file_folder: [`FOMU`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) | GHDL, Yosys, nextPNR | [FOMU](https://tomu.im/fomu.html) | Lattice iCE40 UltraPlus `iCE40UP5K-SG48I` | [umarcor](https://github.com/umarcor) | +| :file_folder: [`iCESugar`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) | GHDL, Yosys, nextPNR | [iCESugar](https://github.com/wuxx/icesugar/blob/master/README_en.md) | Lattice iCE40 UltraPlus `iCE40UP5K-SG48I` | [umarcor](https://github.com/umarcor) | +| :file_folder: [`AlhambraII`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) | GHDL, Yosys, nextPNR | [AlhambraII](https://alhambrabits.com/alhambra/) | Lattice iCE40HX4K | [zipotron](https://github.com/zipotron) | +| :file_folder: [`Orange Crab`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) | GHDL, Yosys, nextPNR | [Orange Crab](https://github.com/gregdavill/OrangeCrab) | Lattice ECP5-25F | [umarcor](https://github.com/umarcor), [jeremyherbert](https://github.com/jeremyherbert) | +| :file_folder: [`ULX3S`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) | GHDL, Yosys, nextPNR | [ULX3S](https://radiona.org/ulx3s/) | Lattice ECP5 `LFE5U-85F-6BG381C` | [zipotron](https://github.com/zipotron) | +| :earth_africa: [`ULX3S-SDRAM`](https://github.com/zipotron/neorv32-complex-setups) | GHDL, Yosys, nextPNR | [ULX3S](https://radiona.org/ulx3s/) | Lattice ECP5 `LFE5U-85F-6BG381C` | [zipotron](https://github.com/zipotron) | + +:information_source: All setups using open-source toolchains are located in the +[`osflow`](https://github.com/stnolting/neorv32/tree/master/setups/osflow) folder. +See the README there for more information how to run a specific setup / configuration. + + +## Adding Your Project Setup + +Please respect the following guidelines if you'd like to add (or link) your setup to the list. + +* check out the project's [code of conduct](https://github.com/stnolting/neorv32/tree/master/CODE_OF_CONDUCT.md) +* add a link if the board you are using provides online documentation (and/or can be purchased somewhere) +* use the :file_folder: emoji (`:file_folder:`) if the setup is located *in this* folder; use the :earth_africa: +emoji (`:earth_africa:`) if it is a link to your local project +* please add a `README` to give some brief information about the setup and a `.gitignore` to keep things clean; +take a look at [`UPduino_v3`](https://github.com/stnolting/neorv32/tree/master/setups/radiant/UPduino_v3) to get some ideas what a project setup might look like + + +## Setup-Specific NEORV32 Software Framework Modification + +In order to use the features provided by the setups, minor *optional* changes can be made to the default NEORV32 setup. + +* To change the default data memory size take a look at the :books: User Guide section +[_General Software Framework Setup_](https://stnolting.github.io/neorv32/ug/#_general_software_framework_setup) +* To modify the SPI flash base address for storing/booting software application see :books: User Guide section +[_Customizing the Internal Bootloader_](https://stnolting.github.io/neorv32/ug/#_customizing_the_internal_bootloader) diff --git a/Libs/RiscV/NEORV32/setups/osflow/.gitignore b/Libs/RiscV/NEORV32/setups/osflow/.gitignore new file mode 100644 index 0000000..ff73747 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/.gitignore @@ -0,0 +1,8 @@ +*.asc +*.bit +*.cfg +*.dfu +*.history +*.json +*.svf +*-report.txt diff --git a/Libs/RiscV/NEORV32/setups/osflow/Makefile b/Libs/RiscV/NEORV32/setups/osflow/Makefile new file mode 100644 index 0000000..6890a09 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/Makefile @@ -0,0 +1,134 @@ +TEMPLATES := ../../rtl/processor_templates +MV := mv + +.DEFAULT_GOAL := help + +TASK := clean $(BITSTREAM) + +FOMU_REV ?= pvt +OrangeCrab_REV ?= r02-25F +UPduino_REV ?= v3 + +#ifndef BOARD +#$(error BOARD needs to be set to 'Fomu', 'iCESugar', 'UPDuino', 'iCEBreaker' or 'OrangeCrab' !) +#endif + +run: + $(eval TASK ?= clean $(BITSTREAM)) + $(MAKE) -f common.mk \ + BOARD_SRC=./board_tops/neorv32_$(BOARD)_BoardTop_$(DESIGN).vhd \ + TOP=neorv32_$(BOARD)_BoardTop_$(DESIGN) \ + ID=$(DESIGN) \ + $(TASK) + IMPL="$${BITSTREAM%%.*}"; for item in ".bit" ".svf"; do \ + if [ -f "./$$IMPL$$item" ]; then \ + $(MV) "./$$IMPL$$item" ./; \ + fi \ + done + +# Boards + +Fomu: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(FOMU_REV)_$(DESIGN).bit) +ifeq ($(DESIGN),Minimal) + $(eval IMEM_SRC := ../../rtl/core/mem/neorv32_imem.default.vhd) +else + $(eval IMEM_SRC := devices/ice40/neorv32_imem.ice40up_spram.vhd) +endif + $(eval NEORV32_MEM_SRC ?= ${IMEM_SRC} devices/ice40/neorv32_dmem.ice40up_spram.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +iCESugar: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= devices/ice40/neorv32_imem.ice40up_spram.vhd devices/ice40/neorv32_dmem.ice40up_spram.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +UPduino: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(UPduino_REV)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= devices/ice40/neorv32_imem.ice40up_spram.vhd devices/ice40/neorv32_dmem.ice40up_spram.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +OrangeCrab: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(OrangeCrab_REV)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= ../../rtl/core/mem/neorv32_imem.default.vhd ../../rtl/core/mem/neorv32_dmem.default.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +AlhambraII: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= ../../rtl/core/mem/neorv32_imem.default.vhd ../../rtl/core/mem/neorv32_dmem.default.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +ULX3S: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= ../../rtl/core/mem/neorv32_imem.default.vhd ../../rtl/core/mem/neorv32_dmem.default.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +iCEBreaker: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= devices/ice40/neorv32_imem.ice40up_spram.vhd devices/ice40/neorv32_dmem.ice40up_spram.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run + +# Designs + +Minimal: + $(eval DESIGN ?= $@) + $(eval DESIGN_SRC ?= $(TEMPLATES)/neorv32_ProcessorTop_Minimal*.vhd) + $(MAKE) \ + DESIGN="$(DESIGN)" \ + DESIGN_SRC="$(DESIGN_SRC)" \ + $(BOARD) + +MinimalBoot: + $(eval DESIGN ?= $@) + $(eval DESIGN_SRC ?= $(TEMPLATES)/neorv32_ProcessorTop_MinimalBoot.vhd) + $(MAKE) \ + DESIGN="$(DESIGN)" \ + DESIGN_SRC="$(DESIGN_SRC)" \ + $(BOARD) + +UP5KDemo: + $(eval DESIGN ?= $@) + $(eval DESIGN_SRC ?= $(TEMPLATES)/neorv32_ProcessorTop_UP5KDemo.vhd) + $(MAKE) \ + DESIGN="$(DESIGN)" \ + DESIGN_SRC="$(DESIGN_SRC)" \ + $(BOARD) + +MixedLanguage: + $(eval DESIGN ?= $@) + $(eval DESIGN_SRC ?= $(TEMPLATES)/neorv32_ProcessorTop_Minimal*.vhd) + $(eval NEORV32_VERILOG_SRC ?= devices/ice40/sb_ice40_components.v board_tops/neorv32_Fomu_MixedLanguage_ClkGen.v) + $(MAKE) \ + DESIGN="$(DESIGN)" \ + DESIGN_SRC="$(DESIGN_SRC)" \ + NEORV32_VERILOG_SRC="$(NEORV32_VERILOG_SRC)" \ + $(BOARD) + +# Help + +help: + @echo "Open-Source Synthesis, P&R, Routing and Bitstream Generation" + @echo "Usage: make BOARD= " + @echo "Example: make BOARD=Fomu Minimal" + diff --git a/Libs/RiscV/NEORV32/setups/osflow/PnR_Bit.mk b/Libs/RiscV/NEORV32/setups/osflow/PnR_Bit.mk new file mode 100644 index 0000000..cdfbd4f --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/PnR_Bit.mk @@ -0,0 +1,14 @@ +${IMPL}.${PNR2BIT_EXT}: $(IMPL).json $(CONSTRAINTS) + $(NEXTPNR) \ + $(PNRFLAGS) \ + --$(CONSTRAINTS_FORMAT) $(CONSTRAINTS) \ + --json $(IMPL).json \ + --${NEXTPNR_OUT} $@ 2>&1 | tee nextpnr-report.txt + +${IMPL}.bit: ${IMPL}.${PNR2BIT_EXT} + $(PACKTOOL) $< $@ + +ifeq ($(DEVICE_SERIES),ecp5) +${IMPL}.svf: ${IMPL}.${PNR2BIT_EXT} + $(PACKTOOL) $(PACKARGS) --svf $@ $< +endif diff --git a/Libs/RiscV/NEORV32/setups/osflow/README.md b/Libs/RiscV/NEORV32/setups/osflow/README.md new file mode 100644 index 0000000..4b61357 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/README.md @@ -0,0 +1,145 @@ +# Exemplary FPAG Board Setups - Using Open Source Toolchains + +* [Folder Structure](#Folder-Structure) +* [Prerequisites](#Prerequisites) +* [How To Run](#How-To-Run) +* [Porting to a new FPGA or Board](#Porting-to-a-new-FPGA-or-Board) + +This folder provides the infrastructure for generating bitstream for various FPGAs using +open-source toolchains. Synthesis is based on [ghdl-yosys](https://github.com/ghdl/ghdl-yosys-plugin). + +:information_source: Note that the provided setups just implement very basic SoC configurations. +These setups are intended as minimal example (how to synthesize the processor) for a given FPGA + board +that can be used as starting point to build more complex user-defined SoCs. + +## Folder Structure + +* `.`: Main makefile (main entry point) and partial-makefiles for synthesis, place & route and bitstream generation +* `boards`: board-specific _partial makefiles_ (used by main makefile "`Makefile`") for generating bitstreams +* `board_top`: board-specific top entities (board wrappers; may include FPGA-specific modules) +* `constraints`: physical constraints (mainly pin mappings) +* `devices`: FPGA-specific primitives and optimized processor modules (like memories) + + +## Prerequisites + +:construction: TODO :construction: + +* local installation of the tools +* using containers + + +## How To Run + +:construction: TODO :construction: + +The `Makefile` in this folder is the main entry point. To run the whole process of synthesis, place & route and bitstream +generation run: + +**Prototype:** +``` +make BOARD= +``` + +**Example:** +``` +make BOARD=Fomu Minimal +``` + +`` specifies the actual FPGA board and implicitly sets the FPGA type. The currently supported FPGA board +targets are listed in the `boards/` folder where each partial-makefile corresponds to a supported platform. + +`` is used to define the actual SoC top. Available SoCs are located in +[`rtl/processor_templates`](https://github.com/stnolting/neorv32/tree/master/rtl/processor_templates). + + +## Porting to a new FPGA or Board + +This sections illustrates how to add a new basic setup for a specific FPGA and board. This tutorial used the iCEBreaker +"MinimalBoot" setup as reference. + +#### 1. Setup a board- and FPGA-specific top entity + +1. Write a new top design unit that instantiates one of the provided processor templates from +[`rtl/processor_templates`](https://github.com/stnolting/neorv32/tree/master/rtl/processor_templates). +This new top unit can be a Verilog or VHDL file. +2. _Optional:_ You can also include FPGA-specific primitives like PLLs or block RAMs (but keep it simple). These components +need to be added to a FPGA-specific library in [`setups/osflow/devices`](https://github.com/stnolting/neorv32/tree/master/setups/osflow/devices). +3. Try to keep the external IO at a minimum even if the targeted FPGA boards provides cool features. Besides of clock and reset +you need to add at least one kind of IO interface like a UART, GPIO or PWM. +4. Give your new top entity file a specific name that includes the board's name and the instantiated processor template. +The name scheme is `neorv32_[board-name]_BoardTop_[template-name].[v/vhd]`. +5. Put this file in `setups/osflow/board_tops`. +6. Take a look at the iCEBreaker MinimalBoot top entity as a reference: +[`setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_MinimalBoot.vhd`](https://github.com/stnolting/neorv32/blob/master/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_MinimalBoot.vhd) + +#### 2. Pin mapping + +1. Add a new constraints file to define the mapping between the your top unit's IO and the FPGA's physical pins. +You can add _all_ of the FPGA's physical pins even though just a subset is used by the new setup. +2. Name the new constraints file according to the board `[board-name].pcf`. +3. Put this file in `setups/osflow/constraints`. +4. Take a look at the iCEBreaker pin mapping as a reference: +[`setups/osflow/constraints/iCEBreaker.pcf`](https://github.com/stnolting/neorv32/blob/master/setups/osflow/constraints/iCEBreaker.pcf) + +#### 3. Adding a board-specific makefile + +1. Add a board-specific makefile to the `setups/osflow/boards` folder. Name the new constraints file according to the board `[board-name].mk`. +2. The makefile contains (at least) one target to build the final bitstream: +```makefile +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" +``` +3. Take a look at the iCEBreaker pin mapping as a reference: +[` setups/osflow/boards/iCEBreaker.mk`](https://github.com/stnolting/neorv32/blob/master/setups/osflow/boards/iCEBreaker.mk) + +#### 4. Adding a new target to `index.mk` + +1. Add a new conditional section to the boards management makefile `setups/osflow/boards/index.mk`. +2. This board-specific section sets variables that are required to run synthesis, mapping, place & route and bitstream generation: + * `CONSTRAINTS` defines the physical pin mapping file + * `PNRFLAGS` defines the FPGA-specific flags for mapping and place & route + * `IMPL` defines the setup's implementation name +```makefile +ifeq ($(BOARD),iCEBreaker) +$(info Setting constraints and implementation args for BOARD iCEBreaker) + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf +PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(ID) + +endif +``` + +#### 5. Adding a new target to the main makefile + +1. As final step add the new setup to the main osflow makefile `setups/osflow/Makefile`. +2. Use the board's name to create a new makefile target. + * The new target should set the final bitstream's name using the `BITSTREAM` variable. + * Alternative _memory_ HDL sources like FPGA-optimized module can be set using the `NEORV32_MEM_SRC` variable. +```makefile +iCEBreaker: + $(eval BITSTREAM ?= neorv32_$(BOARD)_$(DESIGN).bit) + $(eval NEORV32_MEM_SRC ?= devices/ice40/neorv32_imem.ice40up_spram.vhd devices/ice40/neorv32_dmem.ice40up_spram.vhd) + $(MAKE) \ + BITSTREAM="$(BITSTREAM)" \ + NEORV32_MEM_SRC="$(NEORV32_MEM_SRC)" \ + run +``` + +#### 6. _Optional:_ Add the new setup to the automatic "Implementation" github workflow + +If you like you can add the new setup to the automatic build environment of the project. The project's "Implementation" +workflow will generate bitstreams for all configured osflow setups on every repository push. This is used to check for +regressions and also to provide up-to-date bitstreams that can be used right away. + +1. Add the new setup to the job matrix file `.github/generate-job-matrix.py`. +```python +{ + 'board': 'iCEBreaker', + 'design': 'MinimalBoot', + 'bitstream': 'neorv32_iCEBreaker_MinimalBoot.bit' +}, +``` diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_AlhambraII_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_AlhambraII_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..621ab8e --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_AlhambraII_BoardTop_MinimalBoot.vhd @@ -0,0 +1,128 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup including the bootloader, for the AlhambraII (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_AlhambraII_BoardTop_MinimalBoot is + port ( + -- external clock (12 MHz) + AlhambraII_CLK : in std_logic; + -- LED outputs + AlhambraII_LED0 : out std_logic; + AlhambraII_LED1 : out std_logic; + AlhambraII_LED2 : out std_logic; + AlhambraII_LED3 : out std_logic; + AlhambraII_LED4 : out std_logic; + AlhambraII_LED5 : out std_logic; + AlhambraII_LED6 : out std_logic; + AlhambraII_LED7 : out std_logic; + -- UART0 + AlhambraII_RX : in std_logic; + AlhambraII_TX : out std_logic + ); +end entity; + +architecture neorv32_AlhambraII_BoardTop_MinimalBoot_rtl of neorv32_AlhambraII_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 12000000; -- clock frequency in Hz + + -- reset generator -- + signal rst_cnt : std_logic_vector(8 downto 0) := (others => '0'); -- initialized by bitstream + signal sys_rstn : std_logic; + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(3 downto 0); + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- Reset Generator ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + reset_generator: process(AlhambraII_CLK) + begin + if rising_edge(AlhambraII_CLK) then + if (rst_cnt(rst_cnt'left) = '0') then + rst_cnt <= std_logic_vector(unsigned(rst_cnt) + 1); + end if; + end if; + end process reset_generator; + + sys_rstn <= rst_cnt(rst_cnt'left); + + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + MEM_INT_IMEM_SIZE => 4*1024, -- size of processor-internal instruction memory in bytes + MEM_INT_DMEM_SIZE => 2*1024 -- size of processor-internal data memory in bytes + ) + port map ( + -- Global control -- + clk_i => std_ulogic(AlhambraII_CLK), + rstn_i => std_ulogic(sys_rstn), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => AlhambraII_TX, -- UART0 send data + uart_rxd_i => AlhambraII_RX, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + AlhambraII_LED0 <= con_gpio_o(0); + AlhambraII_LED1 <= con_gpio_o(1); + AlhambraII_LED2 <= con_gpio_o(2); + AlhambraII_LED3 <= con_gpio_o(3); + AlhambraII_LED4 <= '0'; -- unused + AlhambraII_LED5 <= con_pwm(0); + AlhambraII_LED6 <= con_pwm(1); + AlhambraII_LED7 <= con_pwm(2); + + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_Minimal.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_Minimal.vhd new file mode 100644 index 0000000..d2c7b78 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_Minimal.vhd @@ -0,0 +1,149 @@ +-- ################################################################################################# +-- # << NEORV32 - Example minimal setup for the Fomu (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_Fomu_BoardTop_Minimal is + port ( + -- 48MHz Clock input + clki : in std_logic; + -- LED outputs + rgb : out std_logic_vector(2 downto 0); + -- USB Pins (which should be statically driven if not being used) + usb_dp : out std_logic; + usb_dn : out std_logic; + usb_dp_pu : out std_logic + ); +end entity; + +architecture neorv32_Fomu_BoardTop_Minimal_rtl of neorv32_Fomu_BoardTop_Minimal is + + -- configuration -- + constant f_clock_c : natural := 22000000; -- PLL output clock frequency in Hz + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect Fomu from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + usb_dp <= '0'; + usb_dn <= '0'; + usb_dp_pu <= '0'; + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 48 -o 21: + -- F_PLLIN: 48.000 MHz (given) + -- F_PLLOUT: 22.000 MHz (requested) + -- F_PLLOUT: 22.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 16.000 MHz + -- F_VCO: 704.000 MHz + -- DIVR: 2 (4'b0010) + -- DIVF: 43 (7'b0101011) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"2", + DIVF => 7x"2B", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => clki, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_Minimal + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB2PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB1PWM => con_pwm(1), -- I - red - pwm channel 1 || BOOT blink + RGB0PWM => con_pwm(0), -- I - green - pwm channel 0 + RGB2 => rgb(2), -- O - blue + RGB1 => rgb(1), -- O - red + RGB0 => rgb(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..ae50b9e --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MinimalBoot.vhd @@ -0,0 +1,174 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup including the bootloader, for the Fomu (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_Fomu_BoardTop_MinimalBoot is + port ( + -- 48MHz Clock input + clki : in std_logic; + -- LED outputs + rgb : out std_logic_vector(2 downto 0); + -- USB Pins (which should be statically driven if not being used) + usb_dp : out std_logic; + usb_dn : out std_logic; + usb_dp_pu : out std_logic + ); +end entity; + +architecture neorv32_Fomu_BoardTop_MinimalBoot_rtl of neorv32_Fomu_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(3 downto 0); + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect Fomu from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + usb_dp <= '0'; + usb_dn <= '0'; + usb_dp_pu <= '0'; + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => open, -- UART0 send data + uart_rxd_i => '0', -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB2PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB1PWM => con_pwm(1) or con_gpio_o(0), -- I - red - pwm channel 1 || BOOT blink + RGB0PWM => con_pwm(0), -- I - green - pwm channel 0 + RGB2 => rgb(2), -- O - blue + RGB1 => rgb(1), -- O - red + RGB0 => rgb(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MixedLanguage.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MixedLanguage.vhd new file mode 100644 index 0000000..de05fdb --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_MixedLanguage.vhd @@ -0,0 +1,139 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup including the bootloader, for the Fomu (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_Fomu_BoardTop_MixedLanguage is + port ( + -- 48MHz Clock input + clki : in std_logic; + -- LED outputs + rgb : out std_logic_vector(2 downto 0); + -- USB Pins (which should be statically driven if not being used) + usb_dp : out std_logic; + usb_dn : out std_logic; + usb_dp_pu : out std_logic + ); +end entity; + +architecture neorv32_Fomu_BoardTop_MixedLanguage_rtl of neorv32_Fomu_BoardTop_MixedLanguage is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + component neorv32_Fomu_MixedLanguage_ClkGen + port ( + clk_o : out std_logic; + rstn_o : out std_logic + ); + end component; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(3 downto 0); + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect Fomu from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + usb_dp <= '0'; + usb_dn <= '0'; + usb_dp_pu <= '0'; + + -- On-Chip HF Oscillator and System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + Clk_inst : neorv32_Fomu_MixedLanguage_ClkGen + port map ( + clk_o => pll_clk, + rstn_o => pll_rstn + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => open, -- UART0 send data + uart_rxd_i => '0', -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB2PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB1PWM => con_pwm(1) or con_gpio_o(0), -- I - red - pwm channel 1 || BOOT blink + RGB0PWM => con_pwm(0), -- I - green - pwm channel 0 + RGB2 => rgb(2), -- O - blue + RGB1 => rgb(1), -- O - red + RGB0 => rgb(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_UP5KDemo.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_UP5KDemo.vhd new file mode 100644 index 0000000..e1a8f5a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_Fomu_BoardTop_UP5KDemo.vhd @@ -0,0 +1,185 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for the Fomu (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_Fomu_BoardTop_UP5KDemo is + port ( + -- 48MHz Clock input + clki : in std_logic; + -- LED outputs + rgb : out std_logic_vector(2 downto 0); + -- USB Pins (which should be statically driven if not being used) + usb_dp : out std_logic; + usb_dn : out std_logic; + usb_dp_pu : out std_logic + ); +end entity; + +architecture neorv32_Fomu_BoardTop_UP5KDemo_rtl of neorv32_Fomu_BoardTop_UP5KDemo is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_pwm : std_ulogic_vector(2 downto 0); + signal con_gpio_o : std_ulogic_vector(3 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect Fomu from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + usb_dp <= '0'; + usb_dn <= '0'; + usb_dp_pu <= '0'; + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_UP5KDemo + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + -- primary UART -- + uart_txd_o => open, + uart_rxd_i => '0', + uart_rts_o => open, + uart_cts_i => '0', + -- SPI to on-board flash -- + flash_sck_o => open, + flash_sdo_o => open, + flash_sdi_i => '0', + flash_csn_o => open, + -- SPI to IO pins -- + spi_sck_o => open, + spi_sdo_o => open, + spi_sdi_i => '0', + spi_csn_o => open, + -- TWI -- + twi_sda_io => open, + twi_scl_io => open, + -- GPIO -- + gpio_i => (others=>'0'), + gpio_o => con_gpio_o, + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB2PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB1PWM => con_pwm(1) or con_gpio_o(0), -- I - red - pwm channel 1 || BOOT blink + RGB0PWM => con_pwm(0), -- I - green - pwm channel 0 + RGB2 => rgb(2), -- O - blue + RGB1 => rgb(1), -- O - red + RGB0 => rgb(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_OrangeCrab_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_OrangeCrab_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..801f129 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_OrangeCrab_BoardTop_MinimalBoot.vhd @@ -0,0 +1,130 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup including the bootloader, for the OrangeCrab (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library ECP5; +use ECP5.components.all; -- for device primitives and macros + +entity neorv32_OrangeCrab_BoardTop_MinimalBoot is + port ( + -- Clock and Reset inputs + OrangeCrab_CLK : in std_logic; + OrangeCrab_RST_N : in std_logic; + -- LED outputs + OrangeCrab_LED_RGB_R : out std_logic; + OrangeCrab_LED_RGB_G : out std_logic; + OrangeCrab_LED_RGB_B : out std_logic; + -- UART0 + OrangeCrab_GPIO_0 : in std_logic; + OrangeCrab_GPIO_1 : out std_logic; + OrangeCrab_GPIO_9 : out std_logic; + -- USB Pins (which should be statically driven if not being used) + OrangeCrab_USB_D_P : out std_logic; + OrangeCrab_USB_D_N : out std_logic; + OrangeCrab_USB_DP_PU : out std_logic + ); +end entity; + +architecture neorv32_OrangeCrab_BoardTop_MinimalBoot_rtl of neorv32_OrangeCrab_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 24000000; -- PLL output clock frequency in Hz + + -- Globals + signal pll_clk: std_logic; + + -- internal IO connection -- + signal con_pwm : std_logic_vector(2 downto 0); + signal con_gpio_o : std_ulogic_vector(3 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect OrangeCrab from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + OrangeCrab_USB_D_P <= '0'; + OrangeCrab_USB_D_N <= '0'; + OrangeCrab_USB_DP_PU <= '0'; + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + PLL_inst: EHXPLLL + generic map ( + CLKI_DIV => 2, -- from `ecppll -i 48 -o 24` + CLKFB_DIV => 1, + CLKOP_DIV => 25 + ) + port map ( + CLKI => OrangeCrab_CLK, + CLKFB => pll_clk, + ENCLKOP => '1', + CLKOP => pll_clk, + LOCK => OrangeCrab_GPIO_9 + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + MEM_INT_IMEM_SIZE => 16*1024, + MEM_INT_DMEM_SIZE => 8*1024 + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(OrangeCrab_RST_N), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => OrangeCrab_GPIO_1, -- UART0 send data + uart_rxd_i => OrangeCrab_GPIO_0, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + OrangeCrab_LED_RGB_R <= con_pwm(0) or not con_gpio_o(0); + OrangeCrab_LED_RGB_G <= con_pwm(1); + OrangeCrab_LED_RGB_B <= con_pwm(2); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_ULX3S_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_ULX3S_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..63aaa25 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_ULX3S_BoardTop_MinimalBoot.vhd @@ -0,0 +1,110 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup including the bootloader, for the ULX3S (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library ECP5; +use ECP5.components.all; -- for device primitives and macros + +entity neorv32_ULX3S_BoardTop_MinimalBoot is + port ( + -- Clock and Reset inputs + ULX3S_CLK : in std_logic; + ULX3S_RST_N : in std_logic; + -- LED outputs + ULX3S_LED0 : out std_logic; + ULX3S_LED1 : out std_logic; + ULX3S_LED2 : out std_logic; + ULX3S_LED3 : out std_logic; + ULX3S_LED4 : out std_logic; + ULX3S_LED5 : out std_logic; + ULX3S_LED6 : out std_logic; + ULX3S_LED7 : out std_logic; + -- UART0 + ULX3S_RX : in std_logic; + ULX3S_TX : out std_logic + ); +end entity; + +architecture neorv32_ULX3S_BoardTop_MinimalBoot_rtl of neorv32_ULX3S_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 25000000; -- clock frequency in Hz + + -- internal IO connection -- + signal con_pwm : std_logic_vector(2 downto 0); + signal con_gpio_o : std_ulogic_vector(3 downto 0); + +begin + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + MEM_INT_IMEM_SIZE => 16*1024, + MEM_INT_DMEM_SIZE => 8*1024 + ) + port map ( + -- Global control -- + clk_i => std_ulogic(ULX3S_CLK), + rstn_i => std_ulogic(ULX3S_RST_N), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => ULX3S_TX, -- UART0 send data + uart_rxd_i => ULX3S_RX, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ULX3S_LED0 <= con_gpio_o(0); + ULX3S_LED1 <= con_gpio_o(1); + ULX3S_LED2 <= con_gpio_o(2); + ULX3S_LED3 <= con_gpio_o(3); + ULX3S_LED4 <= '0'; -- unused + ULX3S_LED5 <= con_pwm(0); + ULX3S_LED6 <= con_pwm(1); + ULX3S_LED7 <= con_pwm(2); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..315273d --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_MinimalBoot.vhd @@ -0,0 +1,163 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for the tinyVision.ai Inc. "UPduino v3" (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_UPduino_BoardTop_MinimalBoot is + port ( + -- UART (uart0) -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- GPIO -- + gpio_o : out std_ulogic_vector(3 downto 0); + -- PWM (to on-board RGB power LED) -- + pwm_o : out std_logic_vector(2 downto 0) + ); +end entity; + +architecture neorv32_UPduino_BoardTop_MinimalBoot_rtl of neorv32_UPduino_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- GPIO -- + gpio_o => gpio_o, + + -- primary UART -- + uart_txd_o => uart_txd_o, -- UART0 send data + uart_rxd_i => uart_rxd_i, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB0PWM => con_pwm(1), -- I - green - pwm channel 1 + RGB1PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB2PWM => con_pwm(0), -- I - red - pwm channel 0 + RGB2 => pwm_o(2), -- O - red + RGB1 => pwm_o(1), -- O - blue + RGB0 => pwm_o(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_UP5KDemo.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_UP5KDemo.vhd new file mode 100644 index 0000000..46c1a73 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_UPduino_BoardTop_UP5KDemo.vhd @@ -0,0 +1,204 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for the tinyVision.ai Inc. "UPduino v3" (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_UPduino_BoardTop_UP5KDemo is + port ( + -- UART (uart0) -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- SPI to on-board flash -- + flash_sck_o : out std_ulogic; + flash_sdo_o : out std_ulogic; + flash_sdi_i : in std_ulogic; + flash_csn_o : out std_ulogic; -- NEORV32.SPI_CS(0) + -- SPI to IO pins -- + spi_sck_o : out std_ulogic; + spi_sdo_o : out std_ulogic; + spi_sdi_i : in std_ulogic; + spi_csn_o : out std_ulogic; -- NEORV32.SPI_CS(1) + -- TWI -- + twi_sda_io : inout std_logic; + twi_scl_io : inout std_logic; + -- GPIO -- + gpio_i : in std_ulogic_vector(3 downto 0); + gpio_o : out std_ulogic_vector(3 downto 0); + -- PWM (to on-board RGB power LED) -- + pwm_o : out std_ulogic_vector(2 downto 0) + ); +end entity; + +architecture neorv32_UPduino_BoardTop_UP5KDemo_rtl of neorv32_UPduino_BoardTop_UP5KDemo is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_pwm : std_ulogic_vector(2 downto 0); + signal con_spi_sdi : std_ulogic; + signal con_spi_csn : std_ulogic; + +begin + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_UP5KDemo + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- primary UART -- + uart_txd_o => uart_txd_o, + uart_rxd_i => uart_rxd_i, + uart_rts_o => open, + uart_cts_i => '0', + + -- SPI to on-board flash -- + flash_sck_o => flash_sck_o, + flash_sdo_o => flash_sdo_o, + flash_sdi_i => flash_sdi_i, + flash_csn_o => flash_csn_o, + + -- SPI to IO pins -- + spi_sck_o => spi_sck_o, + spi_sdo_o => spi_sdo_o, + spi_sdi_i => con_spi_sdi, + spi_csn_o => con_spi_csn, + + -- TWI -- + twi_sda_io => twi_sda_io, + twi_scl_io => twi_scl_io, + + -- GPIO -- + gpio_i => gpio_i, + gpio_o => gpio_o, + + -- PWM (to on-board RGB power LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + -- SPI sdi read-back -- + spi_csn_o <= con_spi_csn; + con_spi_sdi <= flash_sdi_i when (con_spi_csn = '0') else spi_sdi_i; + + -- RGB -- + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000001", + RGB1_CURRENT => "0b000001", + RGB2_CURRENT => "0b000001" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB0PWM => con_pwm(1), -- I - green - pwm channel 1 + RGB1PWM => con_pwm(2), -- I - bluee - pwm channel 2 + RGB2PWM => con_pwm(0), -- I - red - pwm channel 0 + RGB2 => pwm_o(2), -- O - red + RGB1 => pwm_o(1), -- O - blue + RGB0 => pwm_o(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..003e1af --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_MinimalBoot.vhd @@ -0,0 +1,163 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for the tinyVision.ai Inc. "UPduino v3" (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_iCEBreaker_BoardTop_MinimalBoot is + port ( + -- UART (uart0) -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- GPIO -- + gpio_o : out std_ulogic_vector(3 downto 0); + -- PWM (to on-board RGB power LED) -- + pwm_o : out std_logic_vector(2 downto 0) + ); +end entity; + +architecture neorv32_iCEBreaker_BoardTop_MinimalBoot_rtl of neorv32_iCEBreaker_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- GPIO -- + gpio_o => gpio_o, + + -- primary UART -- + uart_txd_o => uart_txd_o, -- UART0 send data + uart_rxd_i => uart_rxd_i, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB0PWM => con_pwm(1), -- I - green - pwm channel 1 + RGB1PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB2PWM => con_pwm(0), -- I - red - pwm channel 0 + RGB2 => pwm_o(2), -- O - red + RGB1 => pwm_o(1), -- O - blue + RGB0 => pwm_o(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_UP5KDemo.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_UP5KDemo.vhd new file mode 100644 index 0000000..880524f --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCEBreaker_BoardTop_UP5KDemo.vhd @@ -0,0 +1,205 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for the tinyVision.ai Inc. "UPduino v3" (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_iCEBreaker_BoardTop_UP5KDemo is + port ( + user_reset_btn : in std_ulogic; + -- UART (uart0) -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- SPI to on-board flash -- + flash_sck_o : out std_ulogic; + flash_sdo_o : out std_ulogic; + flash_sdi_i : in std_ulogic; + flash_csn_o : out std_ulogic; -- NEORV32.SPI_CS(0) + -- SPI to IO pins -- + spi_sck_o : out std_ulogic; + spi_sdo_o : out std_ulogic; + spi_sdi_i : in std_ulogic; + spi_csn_o : out std_ulogic; -- NEORV32.SPI_CS(1) + -- TWI -- + twi_sda_io : inout std_logic; + twi_scl_io : inout std_logic; + -- GPIO -- + gpio_i : in std_ulogic_vector(3 downto 0); + gpio_o : out std_ulogic_vector(3 downto 0); + -- PWM (to on-board RGB power LED) -- + pwm_o : out std_ulogic_vector(2 downto 0) + ); +end entity; + +architecture neorv32_iCEBreaker_BoardTop_UP5KDemo_rtl of neorv32_iCEBreaker_BoardTop_UP5KDemo is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_pwm : std_ulogic_vector(2 downto 0); + signal con_spi_sdi : std_ulogic; + signal con_spi_csn : std_ulogic; + +begin + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => user_reset_btn, + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_UP5KDemo + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- primary UART -- + uart_txd_o => uart_txd_o, + uart_rxd_i => uart_rxd_i, + uart_rts_o => open, + uart_cts_i => '0', + + -- SPI to on-board flash -- + flash_sck_o => flash_sck_o, + flash_sdo_o => flash_sdo_o, + flash_sdi_i => flash_sdi_i, + flash_csn_o => flash_csn_o, + + -- SPI to IO pins -- + spi_sck_o => spi_sck_o, + spi_sdo_o => spi_sdo_o, + spi_sdi_i => con_spi_sdi, + spi_csn_o => con_spi_csn, + + -- TWI -- + twi_sda_io => twi_sda_io, + twi_scl_io => twi_scl_io, + + -- GPIO -- + gpio_i => gpio_i, + gpio_o => gpio_o, + + -- PWM (to on-board RGB power LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + -- SPI sdi read-back -- + spi_csn_o <= con_spi_csn; + con_spi_sdi <= flash_sdi_i when (con_spi_csn = '0') else spi_sdi_i; + + -- RGB -- + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000001", + RGB1_CURRENT => "0b000001", + RGB2_CURRENT => "0b000001" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB0PWM => con_pwm(1), -- I - green - pwm channel 1 + RGB1PWM => con_pwm(2), -- I - bluee - pwm channel 2 + RGB2PWM => con_pwm(0), -- I - red - pwm channel 0 + RGB2 => pwm_o(2), -- O - red + RGB1 => pwm_o(1), -- O - blue + RGB0 => pwm_o(0) -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_Minimal.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_Minimal.vhd new file mode 100644 index 0000000..4fe0cb3 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_Minimal.vhd @@ -0,0 +1,172 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup with an external clock, for the iCESugar (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_iCESugar_BoardTop_Minimal is + port ( + -- 48MHz Clock input + iCESugarv15_CLK : in std_logic; + -- UART0 + iCESugarv15_RX : in std_logic; + iCESugarv15_TX : out std_logic; + -- LED outputs + iCESugarv15_LED_R : out std_logic; + iCESugarv15_LED_G : out std_logic; + iCESugarv15_LED_B : out std_logic; + -- USB Pins (which should be statically driven if not being used) + iCESugarv15_USB_DP : out std_logic; + iCESugarv15_USB_DN : out std_logic; + iCESugarv15_USB_DP_PU : out std_logic + ); +end entity; + +architecture neorv32_iCESugar_BoardTop_Minimal_rtl of neorv32_iCESugar_BoardTop_Minimal is + + -- configuration -- + constant f_clock_c : natural := 22000000; -- PLL output clock frequency in Hz + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(3 downto 0); + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect iCESugar from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + iCESugarv15_USB_DP <= '0'; + iCESugarv15_USB_DN <= '0'; + iCESugarv15_USB_DP_PU <= '0'; + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 22: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 22.000 MHz (requested) + -- F_PLLOUT: 22.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 708.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 58 (7'b0111010) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_PAD + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"3A", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + PACKAGEPIN => iCESugarv15_CLK, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + CPU_EXTENSION_RISCV_A => false, + CPU_EXTENSION_RISCV_C => false, + CPU_EXTENSION_RISCV_E => false, + CPU_EXTENSION_RISCV_M => false, + CPU_EXTENSION_RISCV_U => false, + CPU_EXTENSION_RISCV_Zfinx => false, + CPU_EXTENSION_RISCV_Zicsr => true, + CPU_EXTENSION_RISCV_Zifencei => false + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => iCESugarv15_TX, -- UART0 send data + uart_rxd_i => iCESugarv15_RX, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB2PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB1PWM => con_pwm(1) or con_gpio_o(0), -- I - red - pwm channel 1 || BOOT blink + RGB0PWM => con_pwm(0), -- I - green - pwm channel 0 + RGB2 => iCESugarv15_LED_B, -- O - blue + RGB1 => iCESugarv15_LED_R, -- O - red + RGB0 => iCESugarv15_LED_G -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_MinimalBoot.vhd b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_MinimalBoot.vhd new file mode 100644 index 0000000..b0ac673 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/board_tops/neorv32_iCESugar_BoardTop_MinimalBoot.vhd @@ -0,0 +1,177 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup including the bootloader, for the iCESugar (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library iCE40; +use iCE40.components.all; -- for device primitives and macros + +entity neorv32_iCESugar_BoardTop_MinimalBoot is + port ( + -- LED outputs + iCESugarv15_LED_R : out std_logic; + iCESugarv15_LED_G : out std_logic; + iCESugarv15_LED_B : out std_logic; + -- UART0 + iCESugarv15_RX : in std_logic; + iCESugarv15_TX : out std_logic; + -- USB Pins (which should be statically driven if not being used) + iCESugarv15_USB_DP : out std_logic; + iCESugarv15_USB_DN : out std_logic; + iCESugarv15_USB_DP_PU : out std_logic + ); +end entity; + +architecture neorv32_iCESugar_BoardTop_MinimalBoot_rtl of neorv32_iCESugar_BoardTop_MinimalBoot is + + -- configuration -- + constant f_clock_c : natural := 18000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- Globals + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- internal IO connection -- + signal con_gpio_o : std_ulogic_vector(3 downto 0); + signal con_pwm : std_logic_vector(2 downto 0); + +begin + + -- Assign USB pins to "0" so as to disconnect iCESugar from + -- the host system. Otherwise it would try to talk to + -- us over USB, which wouldn't work since we have no stack. + iCESugarv15_USB_DP <= '0'; + iCESugarv15_USB_DN <= '0'; + iCESugarv15_USB_DP_PU <= '0'; + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : SB_HFOSC + generic map ( + CLKHF_DIV => "0b10" -- 12 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- Settings generated by icepll -i 12 -o 18: + -- F_PLLIN: 12.000 MHz (given) + -- F_PLLOUT: 18.000 MHz (requested) + -- F_PLLOUT: 18.000 MHz (achieved) + -- FEEDBACK: SIMPLE + -- F_PFD: 12.000 MHz + -- F_VCO: 576.000 MHz + -- DIVR: 0 (4'b0000) + -- DIVF: 47 (7'b0101111) + -- DIVQ: 5 (3'b101) + -- FILTER_RANGE: 1 (3'b001) + Pll_inst : SB_PLL40_CORE + generic map ( + FEEDBACK_PATH => "SIMPLE", + DIVR => x"0", + DIVF => 7x"2F", + DIVQ => 3x"5", + FILTER_RANGE => 3x"1" + ) + port map ( + REFERENCECLK => hf_osc_clk, + PLLOUTCORE => open, + PLLOUTGLOBAL => pll_clk, + EXTFEEDBACK => '0', + DYNAMICDELAY => x"00", + LOCK => pll_rstn, + BYPASS => '0', + RESETB => '1', + LATCHINPUTVALUE => '0', + SDO => open, + SDI => '0', + SCLK => '0' + ); + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + neorv32_inst: entity work.neorv32_ProcessorTop_MinimalBoot + generic map ( + CLOCK_FREQUENCY => f_clock_c -- clock frequency of clk_i in Hz + ) + port map ( + -- Global control -- + clk_i => std_ulogic(pll_clk), + rstn_i => std_ulogic(pll_rstn), + + -- GPIO -- + gpio_o => con_gpio_o, + + -- primary UART -- + uart_txd_o => iCESugarv15_TX, -- UART0 send data + uart_rxd_i => iCESugarv15_RX, -- UART0 receive data + uart_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- PWM (to on-board RGB LED) -- + pwm_o => con_pwm + ); + + -- IO Connection -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + + RGB_inst: SB_RGBA_DRV + generic map ( + CURRENT_MODE => "0b1", + RGB0_CURRENT => "0b000011", + RGB1_CURRENT => "0b000011", + RGB2_CURRENT => "0b000011" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB2PWM => con_pwm(2), -- I - blue - pwm channel 2 + RGB1PWM => con_pwm(1) or con_gpio_o(0), -- I - red - pwm channel 1 || BOOT blink + RGB0PWM => con_pwm(0), -- I - green - pwm channel 0 + RGB2 => iCESugarv15_LED_B, -- O - blue + RGB1 => iCESugarv15_LED_R, -- O - red + RGB0 => iCESugarv15_LED_G -- O - green + ); + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/AlhambraII.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/AlhambraII.mk new file mode 100644 index 0000000..8c9f85a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/AlhambraII.mk @@ -0,0 +1,4 @@ +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/Fomu.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/Fomu.mk new file mode 100644 index 0000000..b103198 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/Fomu.mk @@ -0,0 +1,16 @@ +.PHONY: all + +# Default target: run all required targets to build the DFU image. +all: $(IMPL).dfu + echo "! Built $(IMPL) for $(BOARD) $(FOMU_REV)" + +# Use dfu-suffix to generate the DFU image from the FPGA bitstream. +${IMPL}.dfu: $(IMPL).bit + $(COPY) $< $@ + dfu-suffix -v 1209 -p 70b1 -a $@ + +# Use df-util to load the DFU image onto the Fomu. +load: $(IMPL).dfu + dfu-util -D $< + +.PHONY: load diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/OrangeCrab.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/OrangeCrab.mk new file mode 100644 index 0000000..8c9f85a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/OrangeCrab.mk @@ -0,0 +1,4 @@ +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/ULX3S.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/ULX3S.mk new file mode 100644 index 0000000..8c9f85a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/ULX3S.mk @@ -0,0 +1,4 @@ +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/UPduino.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/UPduino.mk new file mode 100644 index 0000000..8c9f85a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/UPduino.mk @@ -0,0 +1,4 @@ +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/iCEBreaker.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/iCEBreaker.mk new file mode 100644 index 0000000..8c9f85a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/iCEBreaker.mk @@ -0,0 +1,4 @@ +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/iCESugar.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/iCESugar.mk new file mode 100644 index 0000000..8c9f85a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/iCESugar.mk @@ -0,0 +1,4 @@ +.PHONY: all + +all: bit + echo "! Built $(IMPL) for $(BOARD)" diff --git a/Libs/RiscV/NEORV32/setups/osflow/boards/index.mk b/Libs/RiscV/NEORV32/setups/osflow/boards/index.mk new file mode 100644 index 0000000..a57645c --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/boards/index.mk @@ -0,0 +1,107 @@ +PCF_PATH ?= constraints + + +ifeq ($(BOARD),Fomu) + +$(info Setting constraints and implementation args for BOARD Fomu) + +# Different Fomu hardware revisions are wired differently and thus +# require different configurations for yosys and nextpnr. +# Configuration is performed by setting the environment variable FOMU_REV accordingly. + +FOMU_REV ?= pvt + +ifeq ($(FOMU_REV),evt1) +YOSYSFLAGS ?= -D EVT=1 -D EVT1=1 -D HAVE_PMOD=1 +PNRFLAGS ?= --up5k --package sg48 +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-evt2.pcf +else ifeq ($(FOMU_REV),evt2) +YOSYSFLAGS ?= -D EVT=1 -D EVT2=1 -D HAVE_PMOD=1 +PNRFLAGS ?= --up5k --package sg48 +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf +else ifeq ($(FOMU_REV),evt3) +YOSYSFLAGS ?= -D EVT=1 -D EVT3=1 -D HAVE_PMOD=1 +PNRFLAGS ?= --up5k --package sg48 +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf +else ifeq ($(FOMU_REV),hacker) +YOSYSFLAGS ?= -D HACKER=1 +PNRFLAGS ?= --up5k --package uwg30 +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf +else ifeq ($(FOMU_REV),pvt) +YOSYSFLAGS ?= -D PVT=1 +PNRFLAGS ?= --up5k --package uwg30 +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf +else +$(error Unrecognized FOMU_REV value. must be "evt1", "evt2", "evt3", "pvt", or "hacker") +endif + +IMPL := neorv32_Fomu_$(FOMU_REV)_$(ID) + +endif + + +ifeq ($(BOARD),iCESugar) +$(info Setting constraints and implementation args for BOARD iCESugar) + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf +PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(ID) + +endif + + +ifeq ($(BOARD),UPduino) +$(info Setting constraints and implementation args for BOARD UPduino) + +UPduino_REV ?= v3 + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)_v3.pcf +PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(UPduino_REV)_$(ID) + +endif + +ifeq ($(BOARD),iCEBreaker) +$(info Setting constraints and implementation args for BOARD iCEBreaker) + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf +PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(ID) + +endif + + + +ifeq ($(BOARD),OrangeCrab) +$(info Setting constraints and implementation args for BOARD OrangeCrab) + +DEVICE_SERIES = ecp5 + +OrangeCrab_REV ?= r02-25F + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).lpf +PNRFLAGS ?= --25k --package CSFBGA285 --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(OrangeCrab_REV)_$(ID) + +endif + +ifeq ($(BOARD),AlhambraII) +$(info Setting constraints and implementation args for BOARD AlhambraII) + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf +PNRFLAGS ?= --hx8k --package tq144:4k --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(ID) + +endif + + +ifeq ($(BOARD),ULX3S) +$(info Setting constraints and implementation args for BOARD ULX3S) + +DEVICE_SERIES = ecp5 + +CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).lpf +PNRFLAGS ?= --85k --freq 25 --package CABGA381 --ignore-loops --timing-allow-fail +IMPL ?= neorv32_$(BOARD)_$(ID) + +endif diff --git a/Libs/RiscV/NEORV32/setups/osflow/common.mk b/Libs/RiscV/NEORV32/setups/osflow/common.mk new file mode 100644 index 0000000..7bf264e --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/common.mk @@ -0,0 +1,39 @@ +ID ?= impl_1 + +include boards/index.mk + +ifndef TOP +$(error TOP needs to be specified!) +endif + +include filesets.mk + +ifndef DESIGN_SRC +ifndef BOARD_SRC +$(error Neither DESIGN_SRC nor BOARD_SRC were set!) +endif +endif + +include tools.mk + +ifdef GHDL_PLUGIN_MODULE +YOSYSFLAGS += -m $(GHDL_PLUGIN_MODULE) +endif + +include synthesis.mk +include PnR_Bit.mk + +.PHONY: syn impl bit svf clean + +syn: ${IMPL}.json +impl: ${IMPL}.${PNR2BIT_EXT} +bit: ${IMPL}.bit + +ifeq ($(DEVICE_SERIES),ecp5) +svf: ${IMPL}.svf +endif + +clean: + rm -rf *.{${PNR2BIT_EXT},bit,cf,dfu,history,json,o,svf} *-report.txt + +include boards/$(BOARD).mk diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/AlhambraII.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/AlhambraII.pcf new file mode 100644 index 0000000..8fae040 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/AlhambraII.pcf @@ -0,0 +1,24 @@ +# ----------------------------------------------------------------------------- +#- Alhambra II constraint file (.pcf) +#- By Carlos Dominguez +#- May - 2021 +#- GPL license +#- Repo: https://github.com/zipotron/neorv32 +# ----------------------------------------------------------------------------- + +# UART port (on-board FTDI) +set_io AlhambraII_TX 61 # output (ser-tx) +set_io AlhambraII_RX 62 # input (ser-rx) + +#> External clock (12 MHz) +set_io AlhambraII_CLK 49 + +#> On-Board LEDs +set_io AlhambraII_LED0 45 +set_io AlhambraII_LED1 44 +set_io AlhambraII_LED2 43 +set_io AlhambraII_LED3 42 +set_io AlhambraII_LED4 41 +set_io AlhambraII_LED5 39 +set_io AlhambraII_LED6 38 +set_io AlhambraII_LED7 37 diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt2.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt2.pcf new file mode 100644 index 0000000..f41d27c --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt2.pcf @@ -0,0 +1,34 @@ +# Configuration for the Fomu 'evt2' board +set_io clki 44 +set_io clki_alt 20 +set_io rgb[0] 39 +set_io rgb[1] 40 +set_io rgb[2] 41 +set_io pmod[0] 25 +set_io pmod[1] 26 +set_io pmod[2] 27 +set_io pmod[3] 28 +set_io user[0] 48 +set_io user[1] 47 +set_io user[2] 46 +set_io user[3] 45 +set_io user[4] 42 +set_io user[5] 38 +set_io spi_mosi 14 +set_io spi_miso 17 +set_io spi_clk 15 +set_io spi_cs 16 +set_io spi_io2 18 +set_io spi_io3 19 +set_io uart_tx 21 +set_io uart_rx 13 +set_io usb_dn 37 +set_io usb_dp 34 +set_io usb_dp_pu 35 +set_io usb_dn_pu 36 +set_io dbg[0] 20 +set_io dbg[1] 12 +set_io dbg[2] 11 +set_io dbg[3] 23 +set_io dbg[4] 10 +set_io dbg[5] 9 diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt3.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt3.pcf new file mode 100644 index 0000000..8d6057b --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-evt3.pcf @@ -0,0 +1,34 @@ +# Configuration for the Fomu 'evt3' board +set_io rgb[0] 39 +set_io rgb[1] 40 +set_io rgb[2] 41 +set_io pmod[0] 28 +set_io pmod[1] 27 +set_io pmod[2] 26 +set_io pmod[3] 23 +set_io clki_alt 20 +set_io clki 44 +set_io user[0] 48 +set_io user[1] 47 +set_io user[2] 46 +set_io user[3] 45 +set_io user[4] 42 +set_io user[5] 38 +set_io spi_mosi 14 +set_io spi_miso 17 +set_io spi_clk 15 +set_io spi_io2 18 +set_io spi_io3 19 +set_io spi_cs 16 +set_io uart_tx 21 +set_io uart_rx 13 +set_io usb_dn 37 +set_io usb_dp 34 +set_io usb_dp_pu 35 +set_io usb_dn_pu 36 +set_io dbg[0] 20 +set_io dbg[1] 12 +set_io dbg[2] 11 +set_io dbg[3] 25 +set_io dbg[4] 10 +set_io dbg[5] 9 diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-hacker.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-hacker.pcf new file mode 100644 index 0000000..3b17e6e --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-hacker.pcf @@ -0,0 +1,16 @@ +# Configuration for the Fomu 'hacker' board +set_io clki F5 # Clock input from 48MHz Oscillator +set_io rgb[0] A5 # Blue LED +set_io rgb[1] B5 # Green LED +set_io rgb[2] C5 # Red LED +set_io user[0] F4 # User touch pad 1 +set_io user[1] E5 # User touch pad 2 +set_io user[2] E4 # User touch pad 3 +set_io user[3] F2 # User touch pad 4 +set_io spi_mosi F1 # SPI Master Out, Slave In Pin +set_io spi_miso E1 # SPI Master In, Slave Out Pin +set_io spi_clk D1 # SPI Master Clock Output Pin +set_io spi_cs C1 # SPI Chip Select +set_io usb_dn A2 # USB D- pad +set_io usb_dp A4 # USB D+ pad +set_io usb_dp_pu D5 # USB D+ pull up (indicates device connected) diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-pvt.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-pvt.pcf new file mode 100644 index 0000000..d600953 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/Fomu-pvt.pcf @@ -0,0 +1,18 @@ +# Configuration for the Fomu 'pvt' board +set_io clki F4 # Clock input from 48MHz Oscillator +set_io rgb[0] A5 # Blue LED +set_io rgb[1] B5 # Green LED +set_io rgb[2] C5 # Red LED +set_io user[0] E4 # User touch pad 1 +set_io user[1] D5 # User touch pad 2 +set_io user[2] E5 # User touch pad 3 +set_io user[3] F5 # User touch pad 4 +set_io spi_mosi F1 # SPI Master Out, Slave In Pin +set_io spi_miso E1 # SPI Master In, Slave Out Pin +set_io spi_clk D1 # SPI Master Clock Output Pin +set_io spi_cs C1 # SPI Chip Select +set_io spi_io2 F2 +set_io spi_io3 B1 +set_io usb_dn A2 # USB D- pad +set_io usb_dp A1 # USB D+ pad +set_io usb_dp_pu A4 # USB D+ pull up (indicates device connected) diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/OrangeCrab.lpf b/Libs/RiscV/NEORV32/setups/osflow/constraints/OrangeCrab.lpf new file mode 100644 index 0000000..4c559cc --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/OrangeCrab.lpf @@ -0,0 +1,278 @@ +#| OrangeCrab-r02-25F + + +LOCATE COMP "OrangeCrab_CLK" SITE "A9"; +IOBUF PORT "OrangeCrab_CLK" IO_TYPE=LVCMOS33; +FREQUENCY PORT "OrangeCrab_CLK" 48.0 MHz; + +LOCATE COMP "OrangeCrab_RST_N" SITE "V17"; +IOBUF PORT "OrangeCrab_RST_N" IO_TYPE=LVCMOS33; + +LOCATE COMP "OrangeCrab_LED_RGB_R" SITE "K4"; +IOBUF PORT "OrangeCrab_LED_RGB_R" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_LED_RGB_G" SITE "M3"; +IOBUF PORT "OrangeCrab_LED_RGB_G" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_LED_RGB_B" SITE "J3"; +IOBUF PORT "OrangeCrab_LED_RGB_B" IO_TYPE=LVCMOS33; + +LOCATE COMP "OrangeCrab_USR_BTN" SITE "J17"; +IOBUF PORT "OrangeCrab_USR_BTN" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_USB_D_P" SITE "N1"; +IOBUF PORT "OrangeCrab_USB_D_P" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_USB_D_N" SITE "M2"; +IOBUF PORT "OrangeCrab_USB_D_N" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_USB_DP_PU" SITE "N2"; +IOBUF PORT "OrangeCrab_USB_DP_PU" IO_TYPE=LVCMOS33; + +LOCATE COMP "OrangeCrab_GPIO_0" SITE "N17"; +IOBUF PORT "OrangeCrab_GPIO_0" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_0" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_1" SITE "M18"; +IOBUF PORT "OrangeCrab_GPIO_1" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_1" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_5" SITE "B10"; +IOBUF PORT "OrangeCrab_GPIO_5" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_5" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_6" SITE "B9"; +IOBUF PORT "OrangeCrab_GPIO_6" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_6" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_9" SITE "C8"; +IOBUF PORT "OrangeCrab_GPIO_9" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_9" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_10" SITE "B8"; +IOBUF PORT "OrangeCrab_GPIO_10" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_10" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_11" SITE "A8"; +IOBUF PORT "OrangeCrab_GPIO_11" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_11" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_12" SITE "H2"; +IOBUF PORT "OrangeCrab_GPIO_12" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_12" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_13" SITE "J2"; +IOBUF PORT "OrangeCrab_GPIO_13" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_13" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_A0" SITE "L4"; +IOBUF PORT "OrangeCrab_GPIO_A0" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_A0" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_A1" SITE "N3"; +IOBUF PORT "OrangeCrab_GPIO_A1" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_A1" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_A2" SITE "N4"; +IOBUF PORT "OrangeCrab_GPIO_A2" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_A2" PULLMODE=DOWN; +LOCATE COMP "OrangeCrab_GPIO_A3" SITE "H4"; +IOBUF PORT "OrangeCrab_GPIO_A3" IO_TYPE=LVCMOS33; +IOBUF PORT "OrangeCrab_GPIO_A3" PULLMODE=DOWN; + +LOCATE COMP "OrangeCrab_DDRAM_A[0]" SITE "C4"; +IOBUF PORT "OrangeCrab_DDRAM_A[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[0]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[1]" SITE "D2"; +IOBUF PORT "OrangeCrab_DDRAM_A[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[1]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[2]" SITE "D3"; +IOBUF PORT "OrangeCrab_DDRAM_A[2]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[2]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[3]" SITE "A3"; +IOBUF PORT "OrangeCrab_DDRAM_A[3]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[3]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[4]" SITE "A4"; +IOBUF PORT "OrangeCrab_DDRAM_A[4]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[4]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[5]" SITE "D4"; +IOBUF PORT "OrangeCrab_DDRAM_A[5]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[5]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[6]" SITE "C3"; +IOBUF PORT "OrangeCrab_DDRAM_A[6]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[6]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[7]" SITE "B2"; +IOBUF PORT "OrangeCrab_DDRAM_A[7]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[7]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[8]" SITE "B1"; +IOBUF PORT "OrangeCrab_DDRAM_A[8]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[8]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[9]" SITE "D1"; +IOBUF PORT "OrangeCrab_DDRAM_A[9]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[9]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[10]" SITE "A7"; +IOBUF PORT "OrangeCrab_DDRAM_A[10]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[10]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[11]" SITE "C2"; +IOBUF PORT "OrangeCrab_DDRAM_A[11]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[11]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[12]" SITE "B6"; +IOBUF PORT "OrangeCrab_DDRAM_A[12]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[12]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[13]" SITE "C1"; +IOBUF PORT "OrangeCrab_DDRAM_A[13]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[13]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[14]" SITE "A2"; +IOBUF PORT "OrangeCrab_DDRAM_A[14]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[14]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_A[15]" SITE "C7"; +IOBUF PORT "OrangeCrab_DDRAM_A[15]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_A[15]" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_BA[0]" SITE "D6"; +IOBUF PORT "OrangeCrab_DDRAM_BA[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_BA[0]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_BA[1]" SITE "B7"; +IOBUF PORT "OrangeCrab_DDRAM_BA[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_BA[1]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_BA[2]" SITE "A6"; +IOBUF PORT "OrangeCrab_DDRAM_BA[2]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_BA[2]" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_RAS_N" SITE "C12"; +IOBUF PORT "OrangeCrab_DDRAM_RAS_N" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_RAS_N" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_CAS_N" SITE "D13"; +IOBUF PORT "OrangeCrab_DDRAM_CAS_N" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_CAS_N" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_WE_N" SITE "B12"; +IOBUF PORT "OrangeCrab_DDRAM_WE_N" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_WE_N" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_CS_N" SITE "A12"; +IOBUF PORT "OrangeCrab_DDRAM_CS_N" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_CS_N" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_DM[0]" SITE "D16"; +IOBUF PORT "OrangeCrab_DDRAM_DM[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DM[0]" IO_TYPE=SSTL135_I; +LOCATE COMP "OrangeCrab_DDRAM_DM[1]" SITE "G16"; +IOBUF PORT "OrangeCrab_DDRAM_DM[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DM[1]" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_DQ[0]" SITE "C17"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[0]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[0]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[1]" SITE "D15"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[1]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[1]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[2]" SITE "B17"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[2]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[2]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[2]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[3]" SITE "C16"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[3]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[3]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[3]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[4]" SITE "A15"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[4]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[4]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[4]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[5]" SITE "B13"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[5]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[5]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[5]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[6]" SITE "A17"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[6]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[6]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[6]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[7]" SITE "A13"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[7]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[7]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[7]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[8]" SITE "F17"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[8]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[8]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[8]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[9]" SITE "F16"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[9]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[9]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[9]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[10]" SITE "G15"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[10]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[10]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[10]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[11]" SITE "F15"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[11]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[11]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[11]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[12]" SITE "J16"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[12]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[12]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[12]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[13]" SITE "C18"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[13]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[13]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[13]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[14]" SITE "H16"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[14]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[14]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[14]" TERMINATION=OFF; +LOCATE COMP "OrangeCrab_DDRAM_DQ[15]" SITE "F18"; +IOBUF PORT "OrangeCrab_DDRAM_DQ[15]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQ[15]" IO_TYPE=SSTL135_I; +IOBUF PORT "OrangeCrab_DDRAM_DQ[15]" TERMINATION=OFF; + +LOCATE COMP "OrangeCrab_DDRAM_DQS_P[0]" SITE "B15"; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[0]" IO_TYPE=SSTL135D_I; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[0]" TERMINATION=OFF; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[0]" DIFFRESISTOR=100; +LOCATE COMP "OrangeCrab_DDRAM_DQS_P[1]" SITE "G18"; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[1]" IO_TYPE=SSTL135D_I; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[1]" TERMINATION=OFF; +IOBUF PORT "OrangeCrab_DDRAM_DQS_P[1]" DIFFRESISTOR=100; + +LOCATE COMP "OrangeCrab_DDRAM_CLK_P" SITE "J18"; +IOBUF PORT "OrangeCrab_DDRAM_CLK_P" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_CLK_P" IO_TYPE=SSTL135D_I; + +LOCATE COMP "OrangeCrab_DDRAM_CKE" SITE "D18"; +IOBUF PORT "OrangeCrab_DDRAM_CKE" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_CKE" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_ODT" SITE "C13"; +IOBUF PORT "OrangeCrab_DDRAM_ODT" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_ODT" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_RESET_N" SITE "L18"; +IOBUF PORT "OrangeCrab_DDRAM_RESET_N" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_RESET_N" IO_TYPE=SSTL135_I; + +LOCATE COMP "OrangeCrab_DDRAM_VCCIO[0]" SITE "K16"; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[0]" IO_TYPE=SSTL135_II; +LOCATE COMP "OrangeCrab_DDRAM_VCCIO[1]" SITE "D17"; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[1]" IO_TYPE=SSTL135_II; +LOCATE COMP "OrangeCrab_DDRAM_VCCIO[2]" SITE "K15"; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[2]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[2]" IO_TYPE=SSTL135_II; +LOCATE COMP "OrangeCrab_DDRAM_VCCIO[3]" SITE "K17"; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[3]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[3]" IO_TYPE=SSTL135_II; +LOCATE COMP "OrangeCrab_DDRAM_VCCIO[4]" SITE "B18"; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[4]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[4]" IO_TYPE=SSTL135_II; +LOCATE COMP "OrangeCrab_DDRAM_VCCIO[5]" SITE "C6"; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[5]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_VCCIO[5]" IO_TYPE=SSTL135_II; + +LOCATE COMP "OrangeCrab_DDRAM_GND[0]" SITE "L15"; +IOBUF PORT "OrangeCrab_DDRAM_GND[0]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_GND[0]" IO_TYPE=SSTL135_II; +LOCATE COMP "OrangeCrab_DDRAM_GND[1]" SITE "L16"; +IOBUF PORT "OrangeCrab_DDRAM_GND[1]" SLEWRATE=FAST; +IOBUF PORT "OrangeCrab_DDRAM_GND[1]" IO_TYPE=SSTL135_II; + +LOCATE COMP "OrangeCrab_SPIFLASH_CS_N" SITE "U17"; +IOBUF PORT "OrangeCrab_SPIFLASH_CS_N" IO_TYPE=LVCMOS33; + +LOCATE COMP "OrangeCrab_SPIFLASH_DQ[0]" SITE "U18"; +IOBUF PORT "OrangeCrab_SPIFLASH_DQ[0]" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_SPIFLASH_DQ[1]" SITE "T18"; +IOBUF PORT "OrangeCrab_SPIFLASH_DQ[1]" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_SPIFLASH_DQ[2]" SITE "R18"; +IOBUF PORT "OrangeCrab_SPIFLASH_DQ[2]" IO_TYPE=LVCMOS33; +LOCATE COMP "OrangeCrab_SPIFLASH_DQ[3]" SITE "N18"; +IOBUF PORT "OrangeCrab_SPIFLASH_DQ[3]" IO_TYPE=LVCMOS33; diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/ULX3S.lpf b/Libs/RiscV/NEORV32/setups/osflow/constraints/ULX3S.lpf new file mode 100644 index 0000000..df65329 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/ULX3S.lpf @@ -0,0 +1,598 @@ +BLOCK RESETPATHS; +BLOCK ASYNCPATHS; +## ULX3S v2.x.x and v3.0.x + +# The clock "usb" and "gpdi" sheet +LOCATE COMP "ULX3S_CLK" SITE "G2"; +IOBUF PORT "ULX3S_CLK" PULLMODE=NONE IO_TYPE=LVCMOS33; +FREQUENCY PORT "ULX3S_CLK" 25 MHZ; + +# JTAG and SPI FLASH voltage 3.3V and options to boot from SPI flash +# write to FLASH possible any time from JTAG: +SYSCONFIG CONFIG_IOVOLTAGE=3.3 COMPRESS_CONFIG=ON MCCLK_FREQ=62 SLAVE_SPI_PORT=DISABLE MASTER_SPI_PORT=ENABLE SLAVE_PARALLEL_PORT=DISABLE; +# write to FLASH possible from user bitstream: +# SYSCONFIG CONFIG_IOVOLTAGE=3.3 COMPRESS_CONFIG=ON MCCLK_FREQ=62 SLAVE_SPI_PORT=DISABLE MASTER_SPI_PORT=DISABLE SLAVE_PARALLEL_PORT=DISABLE; + +## USBSERIAL FTDI-FPGA serial port "usb" sheet +LOCATE COMP "ULX3S_TX" SITE "L4"; # FPGA transmits to ftdi +LOCATE COMP "ULX3S_RX" SITE "M1"; # FPGA receives from ftdi +LOCATE COMP "ftdi_nrts" SITE "M3"; # FPGA receives +LOCATE COMP "ftdi_ndtr" SITE "N1"; # FPGA receives +LOCATE COMP "ftdi_txden" SITE "L3"; # FPGA receives +IOBUF PORT "ULX3S_TX" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_RX" PULLMODE=UP IO_TYPE=LVCMOS33; +IOBUF PORT "ftdi_nrts" PULLMODE=UP IO_TYPE=LVCMOS33; +IOBUF PORT "ftdi_ndtr" PULLMODE=UP IO_TYPE=LVCMOS33; +IOBUF PORT "ftdi_txden" PULLMODE=UP IO_TYPE=LVCMOS33; + +## LED indicators "blinkey" and "gpio" sheet +LOCATE COMP "ULX3S_LED7" SITE "H3"; +LOCATE COMP "ULX3S_LED6" SITE "E1"; +LOCATE COMP "ULX3S_LED5" SITE "E2"; +LOCATE COMP "ULX3S_LED4" SITE "D1"; +LOCATE COMP "ULX3S_LED3" SITE "D2"; +LOCATE COMP "ULX3S_LED2" SITE "C1"; +LOCATE COMP "ULX3S_LED1" SITE "C2"; +LOCATE COMP "ULX3S_LED0" SITE "B2"; +IOBUF PORT "ULX3S_LED0" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED1" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED2" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED3" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED4" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED5" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED6" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "ULX3S_LED7" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; + +## Pushbuttons "blinkey", "flash", "power", "gpdi" sheet +LOCATE COMP "ULX3S_RST_N" SITE "D6"; # BTN_PWRn (inverted logic) +LOCATE COMP "btn[1]" SITE "R1"; # FIRE1 +LOCATE COMP "btn[2]" SITE "T1"; # FIRE2 +LOCATE COMP "btn[3]" SITE "R18"; # UP W1->R18 +LOCATE COMP "btn[4]" SITE "V1"; # DOWN +LOCATE COMP "btn[5]" SITE "U1"; # LEFT +LOCATE COMP "btn[6]" SITE "H16"; # RIGHT Y2->H16 +IOBUF PORT "ULX3S_RST_N" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "btn[1]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "btn[2]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "btn[3]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "btn[4]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "btn[5]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "btn[6]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; + +## DIP switch "blinkey", "gpio" sheet +LOCATE COMP "sw[0]" SITE "E8"; # SW1 +LOCATE COMP "sw[1]" SITE "D8"; # SW2 +LOCATE COMP "sw[2]" SITE "D7"; # SW3 +LOCATE COMP "sw[3]" SITE "E7"; # SW4 +IOBUF PORT "sw[0]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sw[1]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sw[2]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sw[3]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; + +## SPI OLED DISPLAY SSD1331 (Color) or SSD1306 (B/W) "blinkey", "usb" sheet +LOCATE COMP "oled_clk" SITE "P4"; +LOCATE COMP "oled_mosi" SITE "P3"; +LOCATE COMP "oled_dc" SITE "P1"; +LOCATE COMP "oled_resn" SITE "P2"; +LOCATE COMP "oled_csn" SITE "N2"; +IOBUF PORT "oled_clk" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "oled_mosi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "oled_dc" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "oled_resn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "oled_csn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## SPI Flash chip "flash" sheet +LOCATE COMP "flash_csn" SITE "R2"; +LOCATE COMP "flash_clk" SITE "U3"; +LOCATE COMP "flash_mosi" SITE "W2"; +LOCATE COMP "flash_miso" SITE "V2"; +LOCATE COMP "flash_holdn" SITE "W1"; +LOCATE COMP "flash_wpn" SITE "Y2"; +#LOCATE COMP "flash_csspin" SITE "AJ3"; +#LOCATE COMP "flash_initn" SITE "AG4"; +#LOCATE COMP "flash_done" SITE "AJ4"; +#LOCATE COMP "flash_programn" SITE "AH4"; +#LOCATE COMP "flash_cfg_select[0]" SITE "AM4"; +#LOCATE COMP "flash_cfg_select[1]" SITE "AL4"; +#LOCATE COMP "flash_cfg_select[2]" SITE "AK4"; +IOBUF PORT "flash_csn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "flash_clk" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "flash_mosi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "flash_miso" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "flash_holdn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "flash_wpn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_csspin" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_initn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_done" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_programn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_cfg_select[0]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_cfg_select[1]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "flash_cfg_select[2]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; + +## SD card "sdcard", "usb" sheet +# wifi_gpio2,4,12,13,14,15 are shared with SD card. +# If any of wifi_gpio2,4,12,13 is used in toplevel, don't use sd_d[]. +# If SD is used in 1-bit SPI mode, wifi_gpio4,12 = sd_d[1,2] are free, +LOCATE COMP "sd_clk" SITE "H2"; # sd_clk WiFi_GPIO14 +LOCATE COMP "sd_cmd" SITE "J1"; # sd_cmd_di (MOSI) WiFi GPIO15 +LOCATE COMP "sd_d[0]" SITE "J3"; # sd_d0_do (MISO) WiFi GPIO2 +LOCATE COMP "sd_d[1]" SITE "H1"; # sd_d1_irq WiFi GPIO4 +LOCATE COMP "sd_d[2]" SITE "K1"; # sd_d2 WiFi_GPIO12 +LOCATE COMP "sd_d[3]" SITE "K2"; # sd_d3_csn WiFi_GPIO13 +LOCATE COMP "sd_wp" SITE "P5"; # not connected +LOCATE COMP "sd_cdn" SITE "N5"; # not connected +IOBUF PORT "sd_clk" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sd_cmd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sd_d[0]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sd_d[1]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sd_d[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; # WiFi GPIO12 pulldown bootstrapping without 3.3V efuse +IOBUF PORT "sd_d[3]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sd_wp" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sd_cdn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## ADC SPI (MAX11123) "analog", "ram" sheet +# input lines shared with GP,GN14-17 +LOCATE COMP "adc_csn" SITE "R17"; +LOCATE COMP "adc_mosi" SITE "R16"; +LOCATE COMP "adc_miso" SITE "U16"; +LOCATE COMP "adc_sclk" SITE "P17"; +IOBUF PORT "adc_csn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "adc_mosi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "adc_miso" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "adc_sclk" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## Audio 4-bit DAC "analog", "gpio" sheet +# output impedance: 75 ohm +# Stereo 16 ohm earphones, analog audio, +# SPDIF digital audio and composite video. +LOCATE COMP "audio_l[3]" SITE "B3"; # JACK TIP (left audio) +LOCATE COMP "audio_l[2]" SITE "C3"; +LOCATE COMP "audio_l[1]" SITE "D3"; +LOCATE COMP "audio_l[0]" SITE "E4"; +LOCATE COMP "audio_r[3]" SITE "C5"; # JACK RING1 (right audio) +LOCATE COMP "audio_r[2]" SITE "D5"; +LOCATE COMP "audio_r[1]" SITE "B5"; +LOCATE COMP "audio_r[0]" SITE "A3"; +LOCATE COMP "audio_v[3]" SITE "E5"; # JACK RING2 (video or digital audio) +LOCATE COMP "audio_v[2]" SITE "F5"; +LOCATE COMP "audio_v[1]" SITE "F2"; +LOCATE COMP "audio_v[0]" SITE "H5"; +IOBUF PORT "audio_l[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_l[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_l[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_l[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_r[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_r[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_r[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_r[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_v[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_v[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_v[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "audio_v[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; + +## WiFi ESP-32 "wifi", "usb", "flash" sheet +# wifi_gpio2,4,12,13,14,15 are shared with SD card. +# If any of wifi_gpio2,4,12,13 is used in toplevel, don't use sd_d[]. +# If SD is used in 1-bit SPI mode, wifi_gpio4,12 = sd_d[1,2] are free, +# other pins are shared with GP/GN, and JTAG +LOCATE COMP "wifi_en" SITE "F1"; # enable/reset WiFi +LOCATE COMP "wifi_rxd" SITE "K3"; # FPGA transmits to WiFi +LOCATE COMP "wifi_txd" SITE "K4"; # FPGA receives from WiFi +LOCATE COMP "wifi_gpio0" SITE "L2"; +LOCATE COMP "wifi_gpio5" SITE "N4"; # WIFI LED +LOCATE COMP "wifi_gpio16" SITE "L1"; # Serial1 RX +LOCATE COMP "wifi_gpio17" SITE "N3"; # Serial1 TX +# LOCATE COMP "prog_done" SITE "Y3"; # not GPIO, always active +# wifi lines shared with SD card +LOCATE COMP "wifi_gpio2" SITE "J3"; # sd_d0_do (MISO) WiFi GPIO2 +LOCATE COMP "wifi_gpio4" SITE "H1"; # sd_d1_irq WiFi GPIO4 +LOCATE COMP "wifi_gpio12" SITE "K1"; # sd_d2 WiFi_GPIO12 +LOCATE COMP "wifi_gpio13" SITE "K2"; # sd_d3_csn WiFi_GPIO13 +LOCATE COMP "wifi_gpio14" SITE "H2"; # sd_clk WiFi_GPIO14 +LOCATE COMP "wifi_gpio15" SITE "J1"; # sd_cmd_di (MOSI) WiFi GPIO15 +# wifi lines shared with JTAG +# LOCATE COMP "wifi_gpio21" SITE "U5"; # JTAG TMS +# LOCATE COMP "wifi_gpio18" SITE "T5"; # JTAG TCK +# LOCATE COMP "wifi_gpio23" SITE "R5"; # JTAG TDI +# LOCATE COMP "wifi_gpio19" SITE "V4"; # JTAG TDO +IOBUF PORT "wifi_en" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "wifi_rxd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "wifi_txd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "wifi_gpio0" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "wifi_gpio5" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; # pull down or drive 0 for esp32 programming +IOBUF PORT "wifi_gpio16" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "wifi_gpio17" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +# IOBUF PORT "prog_done" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## PCB antenna 433 MHz (may be also used for FM) "usb" sheet +LOCATE COMP "ant_433mhz" SITE "G1"; +IOBUF PORT "ant_433mhz" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; + +## Second USB port "US2" going directly into FPGA "usb", "ram" sheet +LOCATE COMP "ULX3S_USB_D_P" SITE "E16"; # single ended or differential input only +LOCATE COMP "ULX3S_USB_D_N" SITE "F16"; +IOBUF PORT "ULX3S_USB_D_P" PULLMODE=NONE IO_TYPE=LVCMOS33D DRIVE=16; +IOBUF PORT "ULX3S_USB_D_N" PULLMODE=NONE IO_TYPE=LVCMOS33D DRIVE=16; +LOCATE COMP "usb_fpga_bd_dp" SITE "D15"; # single-ended bidirectional +LOCATE COMP "usb_fpga_bd_dn" SITE "E15"; +IOBUF PORT "usb_fpga_bd_dp" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "usb_fpga_bd_dn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "ULX3S_USB_DP_PU" SITE "B12"; # pull up/down control +LOCATE COMP "ULX3S_USB_DN_PU" SITE "C12"; +IOBUF PORT "ULX3S_USB_DP_PU" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; +IOBUF PORT "ULX3S_USB_DN_PU" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16; + +## JTAG ESP-32 "usb" sheet +# connected to FT231X and ESP-32 +# commented out because those are dedicated pins, not directly useable as GPIO +# but could be used by some vendor-specific JTAG bridging (boundary scan) module +#LOCATE COMP "jtag_tdi" SITE "R5"; # FTDI_nRI FPGA receives +#LOCATE COMP "jtag_tdo" SITE "V4"; # FTDI_nCTS FPGA transmits +#LOCATE COMP "jtag_tck" SITE "T5"; # FTDI_nDSR FPGA receives +#LOCATE COMP "jtag_tms" SITE "U5"; # FTDI_nDCD FPGA receives +#IOBUF PORT "jtag_tdi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "jtag_tdo" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "jtag_tck" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +#IOBUF PORT "jtag_tms" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## SDRAM "ram" sheet +LOCATE COMP "sdram_clk" SITE "F19"; +LOCATE COMP "sdram_cke" SITE "F20"; +LOCATE COMP "sdram_csn" SITE "P20"; +LOCATE COMP "sdram_wen" SITE "T20"; +LOCATE COMP "sdram_rasn" SITE "R20"; +LOCATE COMP "sdram_casn" SITE "T19"; +LOCATE COMP "sdram_a[0]" SITE "M20"; +LOCATE COMP "sdram_a[1]" SITE "M19"; +LOCATE COMP "sdram_a[2]" SITE "L20"; +LOCATE COMP "sdram_a[3]" SITE "L19"; +LOCATE COMP "sdram_a[4]" SITE "K20"; +LOCATE COMP "sdram_a[5]" SITE "K19"; +LOCATE COMP "sdram_a[6]" SITE "K18"; +LOCATE COMP "sdram_a[7]" SITE "J20"; +LOCATE COMP "sdram_a[8]" SITE "J19"; +LOCATE COMP "sdram_a[9]" SITE "H20"; +LOCATE COMP "sdram_a[10]" SITE "N19"; +LOCATE COMP "sdram_a[11]" SITE "G20"; +LOCATE COMP "sdram_a[12]" SITE "G19"; +LOCATE COMP "sdram_ba[0]" SITE "P19"; +LOCATE COMP "sdram_ba[1]" SITE "N20"; +LOCATE COMP "sdram_dqm[0]" SITE "U19"; +LOCATE COMP "sdram_dqm[1]" SITE "E20"; +LOCATE COMP "sdram_d[0]" SITE "J16"; +LOCATE COMP "sdram_d[1]" SITE "L18"; +LOCATE COMP "sdram_d[2]" SITE "M18"; +LOCATE COMP "sdram_d[3]" SITE "N18"; +LOCATE COMP "sdram_d[4]" SITE "P18"; +LOCATE COMP "sdram_d[5]" SITE "T18"; +LOCATE COMP "sdram_d[6]" SITE "T17"; +LOCATE COMP "sdram_d[7]" SITE "U20"; +LOCATE COMP "sdram_d[8]" SITE "E19"; +LOCATE COMP "sdram_d[9]" SITE "D20"; +LOCATE COMP "sdram_d[10]" SITE "D19"; +LOCATE COMP "sdram_d[11]" SITE "C20"; +LOCATE COMP "sdram_d[12]" SITE "E18"; +LOCATE COMP "sdram_d[13]" SITE "F18"; +LOCATE COMP "sdram_d[14]" SITE "J18"; +LOCATE COMP "sdram_d[15]" SITE "J17"; +IOBUF PORT "sdram_clk" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_cke" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_csn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_wen" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_rasn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_casn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[4]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[5]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[6]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[7]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[8]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[9]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[10]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[11]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_a[12]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_ba[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_ba[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_dqm[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_dqm[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[4]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[5]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[6]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[7]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[8]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[9]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[10]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[11]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[12]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[13]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[14]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "sdram_d[15]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4; + +# GPDI differential interface (Video) "gpdi" sheet +LOCATE COMP "gpdi_dp[0]" SITE "A16"; # Blue + +LOCATE COMP "gpdi_dn[0]" SITE "B16"; # Blue - +LOCATE COMP "gpdi_dp[1]" SITE "A14"; # Green + +LOCATE COMP "gpdi_dn[1]" SITE "C14"; # Green - +LOCATE COMP "gpdi_dp[2]" SITE "A12"; # Red + +LOCATE COMP "gpdi_dn[2]" SITE "A13"; # Red - +LOCATE COMP "gpdi_dp[3]" SITE "A17"; # Clock + +LOCATE COMP "gpdi_dn[3]" SITE "B18"; # Clock - +LOCATE COMP "gpdi_util" SITE "A19"; # add 10k parallel to C +LOCATE COMP "gpdi_hpd" SITE "B20"; # add 549ohm parallel to C +LOCATE COMP "gpdi_cec" SITE "A18"; +LOCATE COMP "gpdi_sda" SITE "B19"; # I2C shared with RTC +LOCATE COMP "gpdi_scl" SITE "E12"; # I2C shared with RTC C12->E12 +IOBUF PORT "gpdi_dp[0]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dn[0]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dp[1]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dn[1]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dp[2]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dn[2]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dp[3]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_dn[3]" IO_TYPE=LVCMOS33D DRIVE=4; +IOBUF PORT "gpdi_util" IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gpdi_hpd" IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gpdi_cec" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gpdi_sda" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gpdi_scl" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +# GPIO (default single-ended) "gpio", "ram", "gpdi" sheet +# Pins enumerated gp[0-27], gn[0-27]. +# With differential mode enabled on Lattice, +# gp[] (+) are used, gn[] (-) are ignored from design +# as they handle inverted signal by default. +# To enable differential, rename LVCMOS33->LVCMOS33D +# FEMALE ANGLED (90 deg PMOD) on TOP or +# MALE VERTICAL ( 0 deg pins) on BOTTOM and flat cable +LOCATE COMP "gp[0]" SITE "B11"; # PCLK +LOCATE COMP "gn[0]" SITE "C11"; # PCLK +LOCATE COMP "gp[1]" SITE "A10"; # PCLK +LOCATE COMP "gn[1]" SITE "A11"; # PCLK +LOCATE COMP "gp[2]" SITE "A9"; # GR_PCLK +LOCATE COMP "gn[2]" SITE "B10"; # GR_PCLK +LOCATE COMP "gp[3]" SITE "B9"; +LOCATE COMP "gn[3]" SITE "C10"; +LOCATE COMP "gp[4]" SITE "A7"; +LOCATE COMP "gn[4]" SITE "A8"; +LOCATE COMP "gp[5]" SITE "C8"; +LOCATE COMP "gn[5]" SITE "B8"; +LOCATE COMP "gp[6]" SITE "C6"; +LOCATE COMP "gn[6]" SITE "C7"; +IOBUF PORT "gp[0]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[0]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[1]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[1]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[2]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[2]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[3]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[3]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[4]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[4]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[5]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[5]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[6]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[6]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "gp[7]" SITE "A6"; +LOCATE COMP "gn[7]" SITE "B6"; +LOCATE COMP "gp[8]" SITE "A4"; # DIFF +LOCATE COMP "gn[8]" SITE "A5"; # DIFF +LOCATE COMP "gp[9]" SITE "A2"; # DIFF +LOCATE COMP "gn[9]" SITE "B1"; # DIFF +LOCATE COMP "gp[10]" SITE "C4"; # DIFF +LOCATE COMP "gn[10]" SITE "B4"; # DIFF +LOCATE COMP "gp[11]" SITE "F4"; # DIFF wifi_gpio26 +LOCATE COMP "gn[11]" SITE "E3"; # DIFF wifi_gpio25 +LOCATE COMP "gp[12]" SITE "G3"; # DIFF wifi_gpio33 PCLK +LOCATE COMP "gn[12]" SITE "F3"; # DIFF wifi_gpio32 PCLK +LOCATE COMP "gp[13]" SITE "H4"; # DIFF wifi_gpio35 +LOCATE COMP "gn[13]" SITE "G5"; # DIFF wifi_gpio34 +IOBUF PORT "gp[7]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[7]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[8]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[8]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[9]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[9]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[10]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[10]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[11]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[11]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[12]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[12]" PULLMODE=NONE IO_TYPE=LVCMOS33; +FREQUENCY PORT "gn[12]" 50 MHZ; +IOBUF PORT "gp[13]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[13]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "gp[14]" SITE "U18"; # DIFF ADC AIN1 +LOCATE COMP "gn[14]" SITE "U17"; # DIFF ADC AIN0 +LOCATE COMP "gp[15]" SITE "N17"; # DIFF ADC AIN3 +LOCATE COMP "gn[15]" SITE "P16"; # DIFF ADC AIN2 +LOCATE COMP "gp[16]" SITE "N16"; # DIFF ADC AIN5 +LOCATE COMP "gn[16]" SITE "M17"; # DIFF ADC AIN4 +LOCATE COMP "gp[17]" SITE "L16"; # DIFF ADC AIN7 GR_PCLK +LOCATE COMP "gn[17]" SITE "L17"; # DIFF ADC AIN6 +LOCATE COMP "gp[18]" SITE "H18"; # DIFF +LOCATE COMP "gn[18]" SITE "H17"; # DIFF +LOCATE COMP "gp[19]" SITE "F17"; # DIFF +LOCATE COMP "gn[19]" SITE "G18"; # DIFF +LOCATE COMP "gp[20]" SITE "D18"; # DIFF +LOCATE COMP "gn[20]" SITE "E17"; # DIFF +IOBUF PORT "gp[14]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[14]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[15]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[15]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[16]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[16]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[17]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[17]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[18]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[18]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[19]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[19]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[20]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[20]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "gp[21]" SITE "C18"; # DIFF +LOCATE COMP "gn[21]" SITE "D17"; # DIFF +LOCATE COMP "gp[22]" SITE "B15"; +LOCATE COMP "gn[22]" SITE "C15"; +LOCATE COMP "gp[23]" SITE "B17"; +LOCATE COMP "gn[23]" SITE "C17"; +LOCATE COMP "gp[24]" SITE "C16"; +LOCATE COMP "gn[24]" SITE "D16"; +LOCATE COMP "gp[25]" SITE "D14"; +LOCATE COMP "gn[25]" SITE "E14"; +LOCATE COMP "gp[26]" SITE "B13"; +LOCATE COMP "gn[26]" SITE "C13"; +LOCATE COMP "gp[27]" SITE "D13"; +LOCATE COMP "gn[27]" SITE "E13"; +IOBUF PORT "gp[21]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[21]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[22]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[22]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[23]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[23]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[24]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[24]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[25]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[25]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[26]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[26]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp[27]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn[27]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## GPIO repeated as individual signals (non-vector) +# Allows mixed input, output, bidirectional, clock, differential +# If any of individual gp is used, then don't use gp[] vector. +# Same for gn and gn[]. +# FEMALE ANGLED (90 deg PMOD) on TOP or +# MALE VERTICAL ( 0 deg pins) on BOTTOM and flat cable +LOCATE COMP "gp0" SITE "B11"; # PCLK +LOCATE COMP "gn0" SITE "C11"; # PCLK +LOCATE COMP "gp1" SITE "A10"; # PCLK +LOCATE COMP "gn1" SITE "A11"; # PCLK +LOCATE COMP "gp2" SITE "A9"; # GR_PCLK +LOCATE COMP "gn2" SITE "B10"; # GR_PCLK +LOCATE COMP "gp3" SITE "B9"; +LOCATE COMP "gn3" SITE "C10"; +LOCATE COMP "gp4" SITE "A7"; +LOCATE COMP "gn4" SITE "A8"; +LOCATE COMP "gp5" SITE "C8"; +LOCATE COMP "gn5" SITE "B8"; +LOCATE COMP "gp6" SITE "C6"; +LOCATE COMP "gn6" SITE "C7"; +IOBUF PORT "gp0" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn0" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp1" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn1" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp2" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn2" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp3" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn3" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp4" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn4" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp5" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn5" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp6" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn6" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "gp7" SITE "A6"; +LOCATE COMP "gn7" SITE "B6"; +LOCATE COMP "gp8" SITE "A4"; # DIFF +LOCATE COMP "gn8" SITE "A5"; # DIFF +LOCATE COMP "gp9" SITE "A2"; # DIFF +LOCATE COMP "gn9" SITE "B1"; # DIFF +LOCATE COMP "gp10" SITE "C4"; # DIFF +LOCATE COMP "gn10" SITE "B4"; # DIFF +LOCATE COMP "gp11" SITE "F4"; # DIFF wifi_gpio26 +LOCATE COMP "gn11" SITE "E3"; # DIFF wifi_gpio25 +LOCATE COMP "gp12" SITE "G3"; # DIFF wifi_gpio33 PCLK +LOCATE COMP "gn12" SITE "F3"; # DIFF wifi_gpio32 PCLK +LOCATE COMP "gp13" SITE "H4"; # DIFF wifi_gpio35 +LOCATE COMP "gn13" SITE "G5"; # DIFF wifi_gpio34 +# wifi sharing PCB v2.0.6-v3.0.8 +# prior to v2.0.6 see schematics +IOBUF PORT "gp7" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn7" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp8" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn8" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp9" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn9" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp10" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn10" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp11" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn11" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp12" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn12" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +FREQUENCY PORT "gn12" 50 MHZ; +IOBUF PORT "gp13" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn13" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "gp14" SITE "U18"; # DIFF ADC AIN1 +LOCATE COMP "gn14" SITE "U17"; # DIFF ADC AIN0 +LOCATE COMP "gp15" SITE "N17"; # DIFF ADC AIN3 +LOCATE COMP "gn15" SITE "P16"; # DIFF ADC AIN2 +LOCATE COMP "gp16" SITE "N16"; # DIFF ADC AIN5 +LOCATE COMP "gn16" SITE "M17"; # DIFF ADC AIN4 +LOCATE COMP "gp17" SITE "L16"; # DIFF ADC AIN7 GR_PCLK +LOCATE COMP "gn17" SITE "L17"; # DIFF ADC AIN6 +LOCATE COMP "gp18" SITE "H18"; # DIFF +LOCATE COMP "gn18" SITE "H17"; # DIFF +LOCATE COMP "gp19" SITE "F17"; # DIFF +LOCATE COMP "gn19" SITE "G18"; # DIFF +LOCATE COMP "gp20" SITE "D18"; # DIFF +LOCATE COMP "gn20" SITE "E17"; # DIFF +IOBUF PORT "gp14" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn14" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp15" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn15" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp16" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn16" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp17" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn17" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp18" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn18" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp19" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn19" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp20" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn20" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +LOCATE COMP "gp21" SITE "C18"; # DIFF +LOCATE COMP "gn21" SITE "D17"; # DIFF +LOCATE COMP "gp22" SITE "B15"; +LOCATE COMP "gn22" SITE "C15"; +LOCATE COMP "gp23" SITE "B17"; +LOCATE COMP "gn23" SITE "C17"; +LOCATE COMP "gp24" SITE "C16"; +LOCATE COMP "gn24" SITE "D16"; +LOCATE COMP "gp25" SITE "D14"; +LOCATE COMP "gn25" SITE "E14"; +LOCATE COMP "gp26" SITE "B13"; +LOCATE COMP "gn26" SITE "C13"; +LOCATE COMP "gp27" SITE "D13"; +LOCATE COMP "gn27" SITE "E13"; +IOBUF PORT "gp21" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn21" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp22" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn22" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp23" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn23" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp24" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn24" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp25" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn25" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp26" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn26" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gp27" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; +IOBUF PORT "gn27" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## PROGRAMN (reload bitstream from FLASH, exit from bootloader) +# PCB v2.0.5 and higher +LOCATE COMP "user_programn" SITE "M4"; +IOBUF PORT "user_programn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; + +## SHUTDOWN "power", "ram" sheet (connected from PCB v1.7.5) +# on PCB v1.7 shutdown is not connected to FPGA +LOCATE COMP "shutdown" SITE "G16"; # FPGA receives +IOBUF PORT "shutdown" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4; diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/UPduino_v3.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/UPduino_v3.pcf new file mode 100644 index 0000000..ba815e9 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/UPduino_v3.pcf @@ -0,0 +1,36 @@ +## UART (uart0) +set_io uart_txd_o 38 +set_io uart_rxd_i 28 + +## SPI - on-board flash +set_io flash_sdo_o 14 +set_io flash_sck_o 15 +set_io flash_csn_o 16 +set_io flash_sdi_i 17 + +## SPI - user port +set_io spi_sdo_o 34 +set_io spi_sck_o 43 +set_io spi_csn_o 36 +set_io spi_sdi_i 42 + +## TWI +set_io twi_sda_io 31 +set_io twi_scl_io 37 + +## GPIO - input +set_io gpio_i[0] 44 +set_io gpio_i[1] 4 +set_io gpio_i[2] 3 +set_io gpio_i[3] 48 + +## GPIO - output +set_io gpio_o[0] 45 +set_io gpio_o[1] 47 +set_io gpio_o[2] 46 +set_io gpio_o[3] 2 + +## RGB power LED +set_io pwm_o[0] 39 +set_io pwm_o[1] 40 +set_io pwm_o[2] 41 diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/iCEBreaker.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/iCEBreaker.pcf new file mode 100644 index 0000000..88ee9f1 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/iCEBreaker.pcf @@ -0,0 +1,39 @@ +## UART (uart0) +set_io uart_txd_o 9 +set_io uart_rxd_i 6 + +## SPI - on-board flash +set_io flash_sdo_o 14 +set_io flash_sck_o 15 +set_io flash_csn_o 16 +set_io flash_sdi_i 17 + +## SPI - user port +set_io spi_sdo_o 43 +set_io spi_sck_o 38 +set_io spi_csn_o 34 +set_io spi_sdi_i 31 + +## TWI +set_io twi_sda_io 2 +set_io twi_scl_io 4 + +## GPIO - input +set_io gpio_i[0] 18 +set_io gpio_i[1] 19 +set_io gpio_i[2] 20 +set_io gpio_i[3] 28 + +## GPIO - output +set_io gpio_o[0] 25 +set_io gpio_o[1] 26 +set_io gpio_o[2] 27 +set_io gpio_o[3] 23 + +## RGB power LED +set_io pwm_o[0] 39 +set_io pwm_o[1] 40 +set_io pwm_o[2] 41 + +#User Reset Btn +set_io user_reset_btn 10 diff --git a/Libs/RiscV/NEORV32/setups/osflow/constraints/iCESugar.pcf b/Libs/RiscV/NEORV32/setups/osflow/constraints/iCESugar.pcf new file mode 100644 index 0000000..ad56458 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/constraints/iCESugar.pcf @@ -0,0 +1,69 @@ +#| iCESugar-v1.5 + + +#> Clock (12 MHz) +set_io --warn-no-port iCESugarv15_CLK 35 + + +#> Tri-colour LED +set_io --warn-no-port iCESugarv15_LED_G 41 +set_io --warn-no-port iCESugarv15_LED_R 40 +set_io --warn-no-port iCESugarv15_LED_B 39 + + +#> UART +set_io --warn-no-port iCESugarv15_RX 4 +set_io --warn-no-port iCESugarv15_TX 6 + + +#> USB +set_io --warn-no-port iCESugarv15_USB_DN 9 +set_io --warn-no-port iCESugarv15_USB_DP 10 +set_io --warn-no-port iCESugarv15_USB_DP_PU 11 + + +#> PMOD 1 +set_io --warn-no-port iCESugarv15_PMOD1A_0 10 +set_io --warn-no-port iCESugarv15_PMOD1A_1 6 +set_io --warn-no-port iCESugarv15_PMOD1A_2 3 +set_io --warn-no-port iCESugarv15_PMOD1A_3 48 +set_io --warn-no-port iCESugarv15_PMOD1B_0 47 +set_io --warn-no-port iCESugarv15_PMOD1B_1 2 +set_io --warn-no-port iCESugarv15_PMOD1B_2 4 +set_io --warn-no-port iCESugarv15_PMOD1B_3 9 + + +#> PMOD 2 +set_io --warn-no-port iCESugarv15_PMOD2A_0 46 +set_io --warn-no-port iCESugarv15_PMOD2A_1 44 +set_io --warn-no-port iCESugarv15_PMOD2A_2 42 +set_io --warn-no-port iCESugarv15_PMOD2A_3 37 +set_io --warn-no-port iCESugarv15_PMOD2B_0 36 +set_io --warn-no-port iCESugarv15_PMOD2B_1 38 +set_io --warn-no-port iCESugarv15_PMOD2B_2 43 +set_io --warn-no-port iCESugarv15_PMOD2B_3 45 + + +#> PMOD 3 +set_io --warn-no-port iCESugarv15_PMOD3A_0 34 +set_io --warn-no-port iCESugarv15_PMOD3A_1 31 +set_io --warn-no-port iCESugarv15_PMOD3A_2 27 +set_io --warn-no-port iCESugarv15_PMOD3A_3 25 +set_io --warn-no-port iCESugarv15_PMOD3B_0 23 +set_io --warn-no-port iCESugarv15_PMOD3B_1 26 +set_io --warn-no-port iCESugarv15_PMOD3B_2 28 +set_io --warn-no-port iCESugarv15_PMOD3B_3 32 + + +#> PMOD 4 | Switches +set_io --warn-no-port iCESugarv15_PMOD4_0 21 +set_io --warn-no-port iCESugarv15_PMOD4_1 20 +set_io --warn-no-port iCESugarv15_PMOD4_2 19 +set_io --warn-no-port iCESugarv15_PMOD4_3 18 + + +#> SPI +set_io --warn-no-port iCESugarv15_SPI_SS 16 +set_io --warn-no-port iCESugarv15_SPI_SCK 15 +set_io --warn-no-port iCESugarv15_SPI_MOSI 17 +set_io --warn-no-port iCESugarv15_SPI_MISO 14 diff --git a/Libs/RiscV/NEORV32/setups/osflow/devices/ecp5/ecp5_components.vhd b/Libs/RiscV/NEORV32/setups/osflow/devices/ecp5/ecp5_components.vhd new file mode 100644 index 0000000..9385a3d --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/devices/ecp5/ecp5_components.vhd @@ -0,0 +1,75 @@ +library ieee ; +use ieee.std_logic_1164.all; + +package components is + + -- Yosys wrapper components + + component EHXPLLL + generic + ( + CLKI_DIV : integer := 1; + CLKFB_DIV : integer := 1; + CLKOP_DIV : integer := 8; + CLKOS_DIV : integer := 8; + CLKOS2_DIV : integer := 8; + CLKOS3_DIV : integer := 8; + CLKOP_ENABLE : string := "ENABLED"; + CLKOS_ENABLE : string := "DISABLED"; + CLKOS2_ENABLE : string := "DISABLED"; + CLKOS3_ENABLE : string := "DISABLED"; + CLKOP_CPHASE : integer := 0; + CLKOS_CPHASE : integer := 0; + CLKOS2_CPHASE : integer := 0; + CLKOS3_CPHASE : integer := 0; + CLKOP_FPHASE : integer := 0; + CLKOS_FPHASE : integer := 0; + CLKOS2_FPHASE : integer := 0; + CLKOS3_FPHASE : integer := 0; + FEEDBK_PATH : string := "CLKOP"; + CLKOP_TRIM_POL : string := "RISING"; + CLKOP_TRIM_DELAY : integer := 0; + CLKOS_TRIM_POL : string := "RISING"; + CLKOS_TRIM_DELAY : integer := 0; + OUTDIVIDER_MUXA : string := "DIVA"; + OUTDIVIDER_MUXB : string := "DIVB"; + OUTDIVIDER_MUXC : string := "DIVC"; + OUTDIVIDER_MUXD : string := "DIVD"; + PLL_LOCK_MODE : integer := 0; + PLL_LOCK_DELAY : integer := 200; + STDBY_ENABLE : string := "DISABLED"; + REFIN_RESET : string := "DISABLED"; + SYNC_ENABLE : string := "DISABLED"; + INT_LOCK_STICKY : string := "ENABLED"; + DPHASE_SOURCE : string := "DISABLED"; + PLLRST_ENA : string := "DISABLED"; + INTFB_WAKE : string := "DISABLED" + ); + port + ( + CLKI : IN std_logic := 'X'; + CLKFB : IN std_logic := 'X'; + RST : IN std_logic := 'X'; + STDBY : IN std_logic := 'X'; + PLLWAKESYNC : IN std_logic := 'X'; + PHASESEL1 : IN std_logic := 'X'; + PHASESEL0 : IN std_logic := 'X'; + PHASEDIR : IN std_logic := 'X'; + PHASESTEP : IN std_logic := 'X'; + PHASELOADREG : IN std_logic := 'X'; + ENCLKOP : IN std_logic := 'X'; + ENCLKOS : IN std_logic := 'X'; + ENCLKOS2 : IN std_logic := 'X'; + ENCLKOS3 : IN std_logic := 'X'; + CLKOP : OUT std_logic := 'X'; + CLKOS : OUT std_logic := 'X'; + CLKOS2 : OUT std_logic := 'X'; + CLKOS3 : OUT std_logic := 'X'; + LOCK : OUT std_logic := 'X'; + INTLOCK : OUT std_logic := 'X'; + REFCLK : OUT std_logic := 'X'; + CLKINTFB : OUT std_logic := 'X' + ); + end component; + +end package; diff --git a/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_dmem.ice40up_spram.vhd b/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_dmem.ice40up_spram.vhd new file mode 100644 index 0000000..3cd4a5d --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_dmem.ice40up_spram.vhd @@ -0,0 +1,145 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-Internal DMEM for Lattice iCE40 UltraPlus >> # +-- # ********************************************************************************************* # +-- # Memory has a physical size of 64kb (2 x SPRAMs). # +-- # Logical size DMEM_SIZE must be less or equal. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +library iCE40; +use iCE40.components.all; + +architecture neorv32_dmem_rtl of neorv32_dmem is + + -- advanced configuration -------------------------------------------------------------------------------- + constant spram_sleep_mode_en_c : boolean := false; -- put DMEM into sleep mode when idle (for low power) + -- ------------------------------------------------------------------------------------------------------- + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(64*1024); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal mem_cs : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + + -- SPRAM signals -- + signal spram_clk : std_logic; + signal spram_addr : std_logic_vector(13 downto 0); + signal spram_di_lo : std_logic_vector(15 downto 0); + signal spram_di_hi : std_logic_vector(15 downto 0); + signal spram_do_lo : std_logic_vector(15 downto 0); + signal spram_do_hi : std_logic_vector(15 downto 0); + signal spram_be_lo : std_logic_vector(03 downto 0); + signal spram_be_hi : std_logic_vector(03 downto 0); + signal spram_we : std_logic; + signal spram_pwr_n : std_logic; + signal spram_cs : std_logic; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using iCE40up SPRAM-based DMEM." severity note; + assert not (DMEM_SIZE > 64*1024) report "NEORV32 PROCESSOR CONFIG ERROR: DMEM has a fixed physical size of 64kB. Logical size must be less or equal." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = DMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + mem_cs <= acc_en and (rden_i or wren_i); + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_spram_lo_inst : SB_SPRAM256KA + port map ( + ADDRESS => spram_addr, -- I + DATAIN => spram_di_lo, -- I + MASKWREN => spram_be_lo, -- I + WREN => spram_we, -- I + CHIPSELECT => spram_cs, -- I + CLOCK => spram_clk, -- I + STANDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + POWEROFF => '1', -- I + DATAOUT => spram_do_lo -- O + ); + + imem_spram_hi_inst : SB_SPRAM256KA + port map ( + ADDRESS => spram_addr, -- I + DATAIN => spram_di_hi, -- I + MASKWREN => spram_be_hi, -- I + WREN => spram_we, -- I + CHIPSELECT => spram_cs, -- I + CLOCK => spram_clk, -- I + STANDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + POWEROFF => '1', -- I + DATAOUT => spram_do_hi -- O + ); + + -- access logic and signal type conversion -- + spram_clk <= std_logic(clk_i); + spram_addr <= std_logic_vector(addr_i(13+2 downto 0+2)); + spram_di_lo <= std_logic_vector(data_i(15 downto 00)); + spram_di_hi <= std_logic_vector(data_i(31 downto 16)); + spram_we <= '1' when ((acc_en and wren_i) = '1') else '0'; -- global write enable + spram_cs <= std_logic(mem_cs); + spram_be_lo <= std_logic(ben_i(1)) & std_logic(ben_i(1)) & std_logic(ben_i(0)) & std_logic(ben_i(0)); -- low byte write enable + spram_be_hi <= std_logic(ben_i(3)) & std_logic(ben_i(3)) & std_logic(ben_i(2)) & std_logic(ben_i(2)); -- high byte write enable + spram_pwr_n <= '0' when ((spram_sleep_mode_en_c = false) or (mem_cs = '1')) else '1'; -- LP mode disabled or IMEM selected + rdata <= std_ulogic_vector(spram_do_hi) & std_ulogic_vector(spram_do_lo); + + buffer_ff: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= mem_cs; + rden <= acc_en and rden_i; + end if; + end process buffer_ff; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_dmem_rtl; diff --git a/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_imem.ice40up_spram.vhd b/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_imem.ice40up_spram.vhd new file mode 100644 index 0000000..9272291 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/neorv32_imem.ice40up_spram.vhd @@ -0,0 +1,146 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-Internal IMEM for Lattice iCE40 UltraPlus >> # +-- # ********************************************************************************************* # +-- # Memory has a physical size of 64kb (2 x SPRAMs). # +-- # Logical size IMEM_SIZE must be less or equal. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +library iCE40; +use iCE40.components.all; + +architecture neorv32_imem_rtl of neorv32_imem is + + -- advanced configuration -------------------------------------------------------------------------------- + constant spram_sleep_mode_en_c : boolean := false; -- put IMEM into sleep mode when idle (for low power) + -- ------------------------------------------------------------------------------------------------------- + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(64*1024); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal mem_cs : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + + -- SPRAM signals -- + signal spram_clk : std_logic; + signal spram_addr : std_logic_vector(13 downto 0); + signal spram_di_lo : std_logic_vector(15 downto 0); + signal spram_di_hi : std_logic_vector(15 downto 0); + signal spram_do_lo : std_logic_vector(15 downto 0); + signal spram_do_hi : std_logic_vector(15 downto 0); + signal spram_be_lo : std_logic_vector(03 downto 0); + signal spram_be_hi : std_logic_vector(03 downto 0); + signal spram_we : std_logic; + signal spram_pwr_n : std_logic; + signal spram_cs : std_logic; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using iCE40up SPRAM-based IMEM." severity note; + assert not (IMEM_AS_IROM = true) report "NEORV32 PROCESSOR CONFIG ERROR: ICE40 Ultra Plus SPRAM cannot be initialized by bitstream!" severity failure; + assert not (IMEM_SIZE > 64*1024) report "NEORV32 PROCESSOR CONFIG ERROR: IMEM has a fixed physical size of 64kB. Logical size must be less or equal." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = IMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + mem_cs <= acc_en and (rden_i or wren_i); + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_spram_lo_inst : SB_SPRAM256KA + port map ( + ADDRESS => spram_addr, -- I + DATAIN => spram_di_lo, -- I + MASKWREN => spram_be_lo, -- I + WREN => spram_we, -- I + CHIPSELECT => spram_cs, -- I + CLOCK => spram_clk, -- I + STANDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + POWEROFF => '1', -- I + DATAOUT => spram_do_lo -- O + ); + + imem_spram_hi_inst : SB_SPRAM256KA + port map ( + ADDRESS => spram_addr, -- I + DATAIN => spram_di_hi, -- I + MASKWREN => spram_be_hi, -- I + WREN => spram_we, -- I + CHIPSELECT => spram_cs, -- I + CLOCK => spram_clk, -- I + STANDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + POWEROFF => '1', -- I + DATAOUT => spram_do_hi -- O + ); + + -- access logic and signal type conversion -- + spram_clk <= std_logic(clk_i); + spram_addr <= std_logic_vector(addr_i(13+2 downto 0+2)); + spram_di_lo <= std_logic_vector(data_i(15 downto 00)); + spram_di_hi <= std_logic_vector(data_i(31 downto 16)); + spram_we <= '1' when ((acc_en and wren_i) = '1') else '0'; -- global write enable + spram_cs <= std_logic(mem_cs); + spram_be_lo <= std_logic(ben_i(1)) & std_logic(ben_i(1)) & std_logic(ben_i(0)) & std_logic(ben_i(0)); -- low byte write enable + spram_be_hi <= std_logic(ben_i(3)) & std_logic(ben_i(3)) & std_logic(ben_i(2)) & std_logic(ben_i(2)); -- high byte write enable + spram_pwr_n <= '0' when ((spram_sleep_mode_en_c = false) or (mem_cs = '1')) else '1'; -- LP mode disabled or IMEM selected + rdata <= std_ulogic_vector(spram_do_hi) & std_ulogic_vector(spram_do_lo); + + buffer_ff: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= mem_cs; + rden <= acc_en and rden_i; + end if; + end process buffer_ff; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_imem_rtl; diff --git a/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/sb_ice40_components.vhd b/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/sb_ice40_components.vhd new file mode 100644 index 0000000..9db1924 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/devices/ice40/sb_ice40_components.vhd @@ -0,0 +1,126 @@ +library ieee ; +use ieee.std_logic_1164.all; + +package components is + + -- Yosys / IceCube wrapper components + + component SB_GB + port( + GLOBAL_BUFFER_OUTPUT : out std_logic; + USER_SIGNAL_TO_GLOBAL_BUFFER : in std_logic + ); + end component; + + component SB_HFOSC + generic ( + CLKHF_DIV : string + ); + port ( + CLKHFPU : in std_logic; + CLKHFEN : in std_logic; + CLKHF : out std_logic + ); + end component; + + component SB_PLL40_CORE is + generic ( + FEEDBACK_PATH : string := "SIMPLE"; + DELAY_ADJUSTMENT_MODE_FEEDBACK : string := "FIXED"; + DELAY_ADJUSTMENT_MODE_RELATIVE : string := "FIXED"; + SHIFTREG_DIV_MODE : std_logic := '0'; + FDA_FEEDBACK : std_logic_vector(3 downto 0) := x"0"; + FDA_RELATIVE : std_logic_vector(3 downto 0) := x"0"; + PLLOUT_SELECT : string := "GENCLK"; + DIVR : std_logic_vector(3 downto 0) := x"0"; + DIVF : std_logic_vector(6 downto 0) := "0000000"; + DIVQ : std_logic_vector(2 downto 0) := "000"; + FILTER_RANGE : std_logic_vector(2 downto 0) := "000"; + ENABLE_ICEGATE : bit := '0'; + TEST_MODE : bit := '0'; + EXTERNAL_DIVIDE_FACTOR : integer := 1 + ); + port ( + REFERENCECLK : in std_logic; + PLLOUTCORE : out std_logic; + PLLOUTGLOBAL : out std_logic; + EXTFEEDBACK : in std_logic; + DYNAMICDELAY : in std_logic_vector(7 downto 0); + LOCK : out std_logic; + BYPASS : in std_logic; + RESETB : in std_logic; + LATCHINPUTVALUE : in std_logic; + SDO : out std_logic; + SDI : in std_logic; + SCLK : in std_logic + ); + end component; + + component SB_PLL40_PAD + generic ( + FEEDBACK_PATH : string := "SIMPLE"; + DELAY_ADJUSTMENT_MODE_FEEDBACK : string := "FIXED"; + DELAY_ADJUSTMENT_MODE_RELATIVE : string := "FIXED"; + SHIFTREG_DIV_MODE : bit_vector(1 downto 0) := "00"; + FDA_FEEDBACK : bit_vector(3 downto 0) := "0000"; + FDA_RELATIVE : bit_vector(3 downto 0) := "0000"; + PLLOUT_SELECT : string := "GENCLK"; + DIVR : bit_vector(3 downto 0) := x"0"; + DIVF : bit_vector(6 downto 0) := "0000000"; + DIVQ : bit_vector(2 downto 0) := "000"; + FILTER_RANGE : bit_vector(2 downto 0) := "000"; + ENABLE_ICEGATE : bit := '0'; + TEST_MODE : bit := '0'; + EXTERNAL_DIVIDE_FACTOR : integer := 1 + ); + port ( + PACKAGEPIN : in std_logic; + PLLOUTCORE : out std_logic; + PLLOUTGLOBAL : out std_logic; + EXTFEEDBACK : in std_logic; + DYNAMICDELAY : in std_logic_vector(7 downto 0); + LOCK : out std_logic; + BYPASS : in std_logic; + RESETB : in std_logic; + LATCHINPUTVALUE : in std_logic; + SDO : out std_logic; + SDI : in std_logic; + SCLK : in std_logic + ); + end component; + + component SB_RGBA_DRV + generic ( + CURRENT_MODE : string := "0b0"; + RGB0_CURRENT : string := "0b000000"; + RGB1_CURRENT : string := "0b000000"; + RGB2_CURRENT : string := "0b000000" + ); + port ( + RGB0PWM : in std_logic; + RGB1PWM : in std_logic; + RGB2PWM : in std_logic; + CURREN : in std_logic; + RGBLEDEN : in std_logic; + RGB0 : out std_logic; + RGB1 : out std_logic; + RGB2 : out std_logic + ); + end component; + + component SB_SPRAM256KA + port ( + ADDRESS : in std_logic_vector(13 downto 0); + DATAIN : in std_logic_vector(15 downto 0); + MASKWREN : in std_logic_vector(3 downto 0); + WREN : in std_logic; + CHIPSELECT : in std_logic; + CLOCK : in std_logic; + STANDBY : in std_logic; + SLEEP : in std_logic; + POWEROFF : in std_logic; + DATAOUT : out std_logic_vector(15 downto 0) + ); + end component; + +end package; diff --git a/Libs/RiscV/NEORV32/setups/osflow/filesets.mk b/Libs/RiscV/NEORV32/setups/osflow/filesets.mk new file mode 100644 index 0000000..db44aac --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/filesets.mk @@ -0,0 +1,66 @@ +RTL_CORE_SRC := ../../rtl/core + +NEORV32_PKG := $(RTL_CORE_SRC)/neorv32_package.vhd + +NEORV32_APP_SRC := \ + $(RTL_CORE_SRC)/neorv32_application_image.vhd \ + +NEORV32_MEM_ENTITIES := \ + $(RTL_CORE_SRC)/neorv32_dmem.entity.vhd \ + $(RTL_CORE_SRC)/neorv32_imem.entity.vhd + +NEORV32_CORE_SRC := \ + $(RTL_CORE_SRC)/neorv32_bootloader_image.vhd \ + $(RTL_CORE_SRC)/neorv32_boot_rom.vhd \ + $(RTL_CORE_SRC)/neorv32_bus_keeper.vhd \ + $(RTL_CORE_SRC)/neorv32_busswitch.vhd \ + $(RTL_CORE_SRC)/neorv32_cfs.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_alu.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_bus.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_control.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_cp_bitmanip.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_cp_fpu.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_cp_muldiv.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_cp_shifter.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_decompressor.vhd \ + $(RTL_CORE_SRC)/neorv32_cpu_regfile.vhd \ + $(RTL_CORE_SRC)/neorv32_debug_dm.vhd \ + $(RTL_CORE_SRC)/neorv32_debug_dtm.vhd \ + $(RTL_CORE_SRC)/neorv32_fifo.vhd \ + $(RTL_CORE_SRC)/neorv32_gpio.vhd \ + $(RTL_CORE_SRC)/neorv32_gptmr.vhd \ + $(RTL_CORE_SRC)/neorv32_icache.vhd \ + $(RTL_CORE_SRC)/neorv32_mtime.vhd \ + $(RTL_CORE_SRC)/neorv32_neoled.vhd \ + $(RTL_CORE_SRC)/neorv32_pwm.vhd \ + $(RTL_CORE_SRC)/neorv32_slink.vhd \ + $(RTL_CORE_SRC)/neorv32_spi.vhd \ + $(RTL_CORE_SRC)/neorv32_sysinfo.vhd \ + $(RTL_CORE_SRC)/neorv32_top.vhd \ + $(RTL_CORE_SRC)/neorv32_trng.vhd \ + $(RTL_CORE_SRC)/neorv32_twi.vhd \ + $(RTL_CORE_SRC)/neorv32_uart.vhd \ + $(RTL_CORE_SRC)/neorv32_wdt.vhd \ + $(RTL_CORE_SRC)/neorv32_wishbone.vhd \ + $(RTL_CORE_SRC)/neorv32_xirq.vhd + +# Before including this partial makefile, NEORV32_MEM_SRC needs to be set +# (containing two VHDL sources: one for IMEM and one for DMEM) + +NEORV32_SRC := ${NEORV32_PKG} ${NEORV32_APP_SRC} ${NEORV32_MEM_ENTITIES} ${NEORV32_MEM_SRC} ${NEORV32_MEM_SRC_EXTRA} ${NEORV32_CORE_SRC} ${NEORV32_CORE_SRC_EXTRA} +NEORV32_VERILOG_ALL := ${NEORV32_VERILOG_SRC} ${NEORV32_VERILOG_SRC_EXTRA} + +ICE40_SRC := \ + devices/ice40/sb_ice40_components.vhd + +ECP5_SRC := \ + devices/ecp5/ecp5_components.vhd + +ifeq ($(DEVICE_SERIES),ecp5) +DEVICE_SRC := ${ECP5_SRC} +else +DEVICE_SRC := ${ICE40_SRC} +endif + +# Optionally NEORV32_VERILOG_SRC can be set to a list of Verilog sources diff --git a/Libs/RiscV/NEORV32/setups/osflow/synthesis.mk b/Libs/RiscV/NEORV32/setups/osflow/synthesis.mk new file mode 100644 index 0000000..7adc9c0 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/synthesis.mk @@ -0,0 +1,16 @@ +${DEVICE_LIB}-obj08.cf: ${DEVICE_SRC} + ghdl -a $(GHDL_FLAGS) --work=${DEVICE_LIB} ${DEVICE_SRC} + +neorv32-obj08.cf: ${DEVICE_LIB}-obj08.cf ${NEORV32_SRC} + ghdl -a $(GHDL_FLAGS) --work=neorv32 ${NEORV32_SRC} + +work-obj08.cf: neorv32-obj08.cf ${DESIGN_SRC} ${BOARD_SRC} + ghdl -a $(GHDL_FLAGS) --work=work ${DESIGN_SRC} ${BOARD_SRC} + +${IMPL}.json: work-obj08.cf $(NEORV32_VERILOG_ALL) + $(YOSYS) $(YOSYSFLAGS) \ + -p \ + "$(GHDLSYNTH) $(GHDL_FLAGS) --no-formal $(TOP); \ + synth_${YOSYSSYNTH} \ + -top $(TOP) $(YOSYSPIPE) \ + -json $@" $(NEORV32_VERILOG_ALL) 2>&1 | tee yosys-report.txt diff --git a/Libs/RiscV/NEORV32/setups/osflow/tools.mk b/Libs/RiscV/NEORV32/setups/osflow/tools.mk new file mode 100644 index 0000000..32c6cc1 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/osflow/tools.mk @@ -0,0 +1,28 @@ +GHDL_FLAGS += --std=08 +GHDL ?= ghdl +GHDLSYNTH ?= ghdl +YOSYS ?= yosys +ICEPACK ?= icepack +ECPPACK ?= ecppack +OPENOCD ?= openocd +COPY ?= cp -a + +DEVICE_SERIES ?= ice40 +DEVICE_LIB ?= $(DEVICE_SERIES) +YOSYSSYNTH ?= $(DEVICE_SERIES) +NEXTPNR ?= nextpnr-$(DEVICE_SERIES) + +ifeq ($(DEVICE_SERIES),ice40) +YOSYSPIPE ?= -dsp +CONSTRAINTS_FORMAT ?= pcf +NEXTPNR_OUT ?= asc +PNR2BIT_EXT ?= asc +PACKTOOL ?= $(ICEPACK) +PACKARGS ?= +else +CONSTRAINTS_FORMAT ?= lpf +NEXTPNR_OUT ?= textcfg +PNR2BIT_EXT ?= cfg +PACKTOOL ?= $(ECPPACK) +PACKARGS ?= --compress +endif diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/.gitignore b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/.gitignore new file mode 100644 index 0000000..0acbb70 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/.gitignore @@ -0,0 +1,5 @@ +db +incremental_db +output_files +greybox_tmp +*.qws diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/README.md b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/README.md new file mode 100644 index 0000000..036819b --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/README.md @@ -0,0 +1,60 @@ +# NEORV32 Test Setup using the NEORV32 with AvalonMM Master Interface wrapper + +This setup provides a very simple "demo setup" that uses the NEORV32 with a AvalonMM +Interface wrapper. This makes if possible to connect you own modules using a simple +version of the AvalonMM Master interface. + +Note that the AvalonMM Master is a very simple version providing only basic features: + +* Single read and write access +* Flow control (variable wait-states) +* 8/16/32 bit data access +* Aligned and unaligned access supported + +The AvalonMM Master does **not** support: +* Burst access +* Pipeline transfer +* Pending reads + +The design is based on the de0-nano-test-setup, but added a AvalonMM Master wrapper. +The wrapper file can be found here [`AvalonMM wrapper`](../../../rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd). + +As a test an "external" DMEM is conneced to the NEORV32 over the AvalonMM Master Interface. + +It uses the simplified and simple example top entity that provides a minimalistic interface (clock, reset, UART and 8 LEDs). + +* FPGA Board: :books: [Terasic DE0-Nano FPGA Board](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593) +* FPGA: Intel Cyclone-IV `EP4CE22F17C6N` +* Toolchain: Intel Quartus Prime (tested with Quartus Prime 18.1.1 - Lite Edition) + + +### NEORV32 Configuration + +For NEORV32 configuration the default values of the neorv32_top in version 1.6.0 are used +with a few exceptions: + +* Memory: 16kB instruction memory (internal IMEM), 8kB data memory (external DMEM), No bootloader +* Tested with version [`1.6.0`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +* Clock: 50MHz from on-board oscillator +* Reset: via on-board button "KEY0" +* GPIO output port `gpio_o` (8-bit) connected to the 8 green user LEDs ("LED7" - "LED0") +* UART0 signals `uart0_txd_o` and `uart0_rxd_i` are connected to the 40-pin **GPIO_0** header + * `uart0_txd_o:` output, connected to FPGA pin `C3` - header pin `GPIO_01` (pin number "4") + * `uart0_rxd_i:` input, connected to FPGA pin `A3` - header pin `GPIO_03` (pin number "6") + +### FPGA Utilization + +``` +Total logic elements 3,439 / 22,320 ( 15 % ) +Total registers 1674 +Total pins 12 / 154 ( 8 % ) +Total virtual pins 0 +Total memory bits 197,632 / 608,256 ( 32 % ) +Embedded Multiplier 9-bit elements 0 / 132 ( 0 % ) +Total PLLs 0 / 4 ( 0 % ) +``` + + +## How To Run + +Open the Quartus project file, compile and upload to FPGA. \ No newline at end of file diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qpf b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qpf new file mode 100644 index 0000000..bbef58c --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qpf @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and any partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details, at +# https://fpgasoftware.intel.com/eula. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 18.1.1 Build 646 04/11/2019 SJ Lite Edition +# Date created = 20:23:30 September 13, 2021 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "18.1" +DATE = "20:23:30 September 13, 2021" + +# Revisions + +PROJECT_REVISION = "de0-nano-test-setup" diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qsf b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qsf new file mode 100644 index 0000000..9300818 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/de0-nano-test-setup.qsf @@ -0,0 +1,108 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and any partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details, at +# https://fpgasoftware.intel.com/eula. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 18.1.1 Build 646 04/11/2019 SJ Lite Edition +# Date created = 20:23:30 September 13, 2021 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# de0-nano-test-setup_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus Prime software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE22F17C6 +set_global_assignment -name TOP_LEVEL_ENTITY neorv32_test_setup_avalonmm +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 20.1.0 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "16:40:53 APRIL 10, 2021" +set_global_assignment -name LAST_QUARTUS_VERSION "18.1.1 Lite Edition" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_application_image.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_bootloader_image.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_boot_rom.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_busswitch.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_bus_keeper.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cfs.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_alu.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_bus.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_control.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_cp_bitmanip.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_cp_fpu.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_cp_muldiv.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_cp_shifter.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_decompressor.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_cpu_regfile.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_debug_dm.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_debug_dtm.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_fifo.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_gpio.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_icache.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_mtime.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_neoled.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_package.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_pwm.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_slink.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_spi.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_sysinfo.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_top.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_trng.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_twi.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_uart.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_wdt.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_wishbone.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_xirq.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/system_integration/neorv32_SystemTop_AvalonMM.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_dmem.entity.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_imem.entity.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/mem/neorv32_dmem.default.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/mem/neorv32_imem.default.vhd -library neorv32 +set_global_assignment -name VHDL_FILE neorv32_test_setup_avalonmm.vhd +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_location_assignment PIN_R8 -to clk_i +set_location_assignment PIN_L3 -to gpio_o[7] +set_location_assignment PIN_B1 -to gpio_o[6] +set_location_assignment PIN_F3 -to gpio_o[5] +set_location_assignment PIN_D1 -to gpio_o[4] +set_location_assignment PIN_A11 -to gpio_o[3] +set_location_assignment PIN_B13 -to gpio_o[2] +set_location_assignment PIN_A13 -to gpio_o[1] +set_location_assignment PIN_A15 -to gpio_o[0] +set_location_assignment PIN_J15 -to rstn_i +set_location_assignment PIN_C3 -to uart0_txd_o +set_location_assignment PIN_A3 -to uart0_rxd_i +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.qip b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.qip new file mode 100644 index 0000000..03189d4 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.qip @@ -0,0 +1,4 @@ +set_global_assignment -name IP_TOOL_NAME "RAM: 1-PORT" +set_global_assignment -name IP_TOOL_VERSION "18.1" +set_global_assignment -name IP_GENERATED_DEVICE_FAMILY "{Cyclone IV E}" +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "dmem_ram.vhd"] diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.vhd b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.vhd new file mode 100644 index 0000000..83ca80b --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/dmem_ram.vhd @@ -0,0 +1,163 @@ +-- megafunction wizard: %RAM: 1-PORT% +-- GENERATION: STANDARD +-- VERSION: WM1.0 +-- MODULE: altsyncram + +-- ============================================================ +-- File Name: dmem_ram.vhd +-- Megafunction Name(s): +-- altsyncram +-- +-- Simulation Library Files(s): +-- altera_mf +-- ============================================================ +-- ************************************************************ +-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +-- +-- 18.1.1 Build 646 04/11/2019 SJ Lite Edition +-- ************************************************************ + + +--Copyright (C) 2019 Intel Corporation. All rights reserved. +--Your use of Intel Corporation's design tools, logic functions +--and other software and tools, and any partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Intel Program License +--Subscription Agreement, the Intel Quartus Prime License Agreement, +--the Intel FPGA IP License Agreement, or other applicable license +--agreement, including, without limitation, that your use is for +--the sole purpose of programming logic devices manufactured by +--Intel and sold by Intel or its authorized distributors. Please +--refer to the applicable agreement for further details, at +--https://fpgasoftware.intel.com/eula. + + +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.altera_mf_components.all; + +ENTITY dmem_ram IS + PORT + ( + address : IN STD_LOGIC_VECTOR (10 DOWNTO 0); + byteena : IN STD_LOGIC_VECTOR (3 DOWNTO 0) := (OTHERS => '1'); + clock : IN STD_LOGIC := '1'; + data : IN STD_LOGIC_VECTOR (31 DOWNTO 0); + wren : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) + ); +END dmem_ram; + + +ARCHITECTURE SYN OF dmem_ram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (31 DOWNTO 0); + +BEGIN + q <= sub_wire0(31 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + byte_size => 8, + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + intended_device_family => "Cyclone IV E", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2048, + operation_mode => "SINGLE_PORT", + outdata_aclr_a => "NONE", + outdata_reg_a => "CLOCK0", + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + widthad_a => 11, + width_a => 32, + width_byteena_a => 4 + ) + PORT MAP ( + address_a => address, + byteena_a => byteena, + clock0 => clock, + data_a => data, + wren_a => wren, + q_a => sub_wire0 + ); + + + +END SYN; + +-- ============================================================ +-- CNX file retrieval info +-- ============================================================ +-- Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0" +-- Retrieval info: PRIVATE: AclrAddr NUMERIC "0" +-- Retrieval info: PRIVATE: AclrByte NUMERIC "0" +-- Retrieval info: PRIVATE: AclrData NUMERIC "0" +-- Retrieval info: PRIVATE: AclrOutput NUMERIC "0" +-- Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC "1" +-- Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8" +-- Retrieval info: PRIVATE: BlankMemory NUMERIC "1" +-- Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0" +-- Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0" +-- Retrieval info: PRIVATE: Clken NUMERIC "0" +-- Retrieval info: PRIVATE: DataBusSeparated NUMERIC "1" +-- Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0" +-- Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A" +-- Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0" +-- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" +-- Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0" +-- Retrieval info: PRIVATE: JTAG_ID STRING "NONE" +-- Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0" +-- Retrieval info: PRIVATE: MIFfilename STRING "" +-- Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "2048" +-- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" +-- Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3" +-- Retrieval info: PRIVATE: RegAddr NUMERIC "1" +-- Retrieval info: PRIVATE: RegData NUMERIC "1" +-- Retrieval info: PRIVATE: RegOutput NUMERIC "1" +-- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +-- Retrieval info: PRIVATE: SingleClock NUMERIC "1" +-- Retrieval info: PRIVATE: UseDQRAM NUMERIC "1" +-- Retrieval info: PRIVATE: WRCONTROL_ACLR_A NUMERIC "0" +-- Retrieval info: PRIVATE: WidthAddr NUMERIC "11" +-- Retrieval info: PRIVATE: WidthData NUMERIC "32" +-- Retrieval info: PRIVATE: rden NUMERIC "0" +-- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +-- Retrieval info: CONSTANT: BYTE_SIZE NUMERIC "8" +-- Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS" +-- Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING "BYPASS" +-- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" +-- Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO" +-- Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram" +-- Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "2048" +-- Retrieval info: CONSTANT: OPERATION_MODE STRING "SINGLE_PORT" +-- Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING "NONE" +-- Retrieval info: CONSTANT: OUTDATA_REG_A STRING "CLOCK0" +-- Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE" +-- Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_PORT_A STRING "NEW_DATA_NO_NBE_READ" +-- Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "11" +-- Retrieval info: CONSTANT: WIDTH_A NUMERIC "32" +-- Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "4" +-- Retrieval info: USED_PORT: address 0 0 11 0 INPUT NODEFVAL "address[10..0]" +-- Retrieval info: USED_PORT: byteena 0 0 4 0 INPUT VCC "byteena[3..0]" +-- Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock" +-- Retrieval info: USED_PORT: data 0 0 32 0 INPUT NODEFVAL "data[31..0]" +-- Retrieval info: USED_PORT: q 0 0 32 0 OUTPUT NODEFVAL "q[31..0]" +-- Retrieval info: USED_PORT: wren 0 0 0 0 INPUT NODEFVAL "wren" +-- Retrieval info: CONNECT: @address_a 0 0 11 0 address 0 0 11 0 +-- Retrieval info: CONNECT: @byteena_a 0 0 4 0 byteena 0 0 4 0 +-- Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0 +-- Retrieval info: CONNECT: @data_a 0 0 32 0 data 0 0 32 0 +-- Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0 +-- Retrieval info: CONNECT: q 0 0 32 0 @q_a 0 0 32 0 +-- Retrieval info: GEN_FILE: TYPE_NORMAL dmem_ram.vhd TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL dmem_ram.inc FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL dmem_ram.cmp FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL dmem_ram.bsf FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL dmem_ram_inst.vhd FALSE +-- Retrieval info: LIB_FILE: altera_mf diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/neorv32_test_setup_avalonmm.vhd b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/neorv32_test_setup_avalonmm.vhd new file mode 100644 index 0000000..daa5b76 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-avalonmm-wrapper/neorv32_test_setup_avalonmm.vhd @@ -0,0 +1,332 @@ +-- ################################################################################################# +-- # << NEORV32 - Test Setup using the AvalonMM Interface >> # +-- # ********************************************************************************************* # +-- # (c) "AvalonMM", "NIOS-2", "Qsys", "MegaWizard" and "Platform Designer" # +-- # are trademarks of Intel # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use ieee.std_logic_unsigned.ALL; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_test_setup_avalonmm is + generic ( + -- adapt these for your setup -- + CLOCK_FREQUENCY : natural := 50000000; -- clock frequency of clk_i in Hz + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + MEM_INT_DMEM_SIZE : natural := 8*1024 -- size of processor-internal data memory in bytes + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + -- GPIO -- + gpio_o : out std_ulogic_vector(7 downto 0); -- parallel output + -- UART0 -- + uart0_txd_o : out std_ulogic; -- UART0 send data + uart0_rxd_i : in std_ulogic -- UART0 receive data + ); +end entity; + +architecture neorv32_test_setup_avalonmm_rtl of neorv32_test_setup_avalonmm is + + component neorv32_top_avalonmm is + generic ( + -- General -- + CLOCK_FREQUENCY : natural; -- clock frequency of clk_i in Hz + HW_THREAD_ID : natural := 0; -- hardware thread id (32-bit) + INT_BOOTLOADER_EN : boolean := false; -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN : boolean := false; -- implement on-chip debugger + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A : boolean := false; -- implement atomic extension? + CPU_EXTENSION_RISCV_B : boolean := false; -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C : boolean := false; -- implement compressed extension? + CPU_EXTENSION_RISCV_E : boolean := false; -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M : boolean := false; -- implement mul/div extension? + CPU_EXTENSION_RISCV_U : boolean := false; -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx : boolean := false; -- implement 32-bit floating-point extension (using INT regs!) + CPU_EXTENSION_RISCV_Zicsr : boolean := true; -- implement CSR system? + CPU_EXTENSION_RISCV_Zifencei : boolean := false; -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul : boolean := false; -- implement multiply-only M sub-extension? + + -- Extension Options -- + FAST_MUL_EN : boolean := false; -- use DSPs for M extension's multiplier + FAST_SHIFT_EN : boolean := false; -- use barrel shifter for shift operations + CPU_CNT_WIDTH : natural := 64; -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES : natural := 2; -- entries is instruction prefetch buffer, has to be a power of 2 + + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS : natural := 0; -- number of regions (0..64) + PMP_MIN_GRANULARITY : natural := 64*1024; -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS : natural := 0; -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH : natural := 40; -- total size of HPM counters (0..64) + + -- Internal Instruction memory (IMEM) -- + MEM_INT_IMEM_EN : boolean := false; -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE : natural := 16*1024; -- size of processor-internal instruction memory in bytes + + -- Internal Data memory (DMEM) -- + MEM_INT_DMEM_EN : boolean := false; -- implement processor-internal data memory + MEM_INT_DMEM_SIZE : natural := 8*1024; -- size of processor-internal data memory in bytes + + -- Internal Cache memory (iCACHE) -- + ICACHE_EN : boolean := false; -- implement instruction cache + ICACHE_NUM_BLOCKS : natural := 4; -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE : natural := 64; -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY : natural := 1; -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + + -- Stream link interface (SLINK) -- + SLINK_NUM_TX : natural := 0; -- number of TX links (0..8) + SLINK_NUM_RX : natural := 0; -- number of TX links (0..8) + SLINK_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two + + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH : natural := 0; -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE : std_ulogic_vector(31 downto 0) := x"ffffffff"; -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY : std_ulogic_vector(31 downto 0) := x"ffffffff"; -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + + -- Processor peripherals -- + IO_GPIO_EN : boolean := false; -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN : boolean := false; -- implement machine system timer (MTIME)? + IO_UART0_EN : boolean := false; -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN : boolean := false; -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN : boolean := false; -- implement serial peripheral interface (SPI)? + IO_TWI_EN : boolean := false; -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH : natural := 0; -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN : boolean := false; -- implement watch dog timer (WDT)? + IO_TRNG_EN : boolean := false; -- implement true random number generator (TRNG)? + IO_CFS_EN : boolean := false; -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG : std_ulogic_vector(31 downto 0) := x"00000000"; -- custom CFS configuration generic + IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits + IO_NEOLED_EN : boolean := false; -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO : natural := 1 -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + ); + port ( + -- Global control -- + clk_i : in std_ulogic; -- global clock, rising edge + rstn_i : in std_ulogic; -- global reset, low-active, async + + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i : in std_ulogic := 'U'; -- low-active TAP reset (optional) + jtag_tck_i : in std_ulogic := 'U'; -- serial clock + jtag_tdi_i : in std_ulogic := 'U'; -- serial data input + jtag_tdo_o : out std_ulogic; -- serial data output + jtag_tms_i : in std_ulogic := 'U'; -- mode select + + -- AvalonMM interface + read_o : out std_logic; + write_o : out std_logic; + waitrequest_i : in std_logic := '0'; + byteenable_o : out std_logic_vector(3 downto 0); + address_o : out std_logic_vector(31 downto 0); + writedata_o : out std_logic_vector(31 downto 0); + readdata_i : in std_logic_vector(31 downto 0) := (others => '0'); + + -- Advanced memory control signals (available if MEM_EXT_EN = true) -- + fence_o : out std_ulogic; -- indicates an executed FENCE operation + fencei_o : out std_ulogic; -- indicates an executed FENCEI operation + + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o : out sdata_8x32_t; -- output data + slink_tx_val_o : out std_ulogic_vector(7 downto 0); -- valid output + slink_tx_rdy_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- ready to send + + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i : in sdata_8x32_t := (others => (others => 'U')); -- input data + slink_rx_val_i : in std_ulogic_vector(7 downto 0) := (others => 'L'); -- valid input + slink_rx_rdy_o : out std_ulogic_vector(7 downto 0); -- ready to receive + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o : out std_ulogic_vector(63 downto 0); -- parallel output + gpio_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o : out std_ulogic; -- UART0 send data + uart0_rxd_i : in std_ulogic := 'U'; -- UART0 receive data + uart0_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i : in std_ulogic := 'L'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional + + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o : out std_ulogic; -- UART1 send data + uart1_rxd_i : in std_ulogic := 'U'; -- UART1 receive data + uart1_rts_o : out std_ulogic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i : in std_ulogic := 'L'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o : out std_ulogic; -- SPI serial clock + spi_sdo_o : out std_ulogic; -- controller data out, peripheral data in + spi_sdi_i : in std_ulogic := 'U'; -- controller data in, peripheral data out + spi_csn_o : out std_ulogic_vector(07 downto 0); -- chip-select + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io : inout std_logic := 'U'; -- twi serial data line + twi_scl_io : inout std_logic := 'U'; -- twi serial clock line + + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o : out std_ulogic_vector(IO_PWM_NUM_CH-1 downto 0); -- pwm channels + + -- Custom Functions Subsystem IO (available if IO_CFS_EN = true) -- + cfs_in_i : in std_ulogic_vector(IO_CFS_IN_SIZE-1 downto 0) := (others => 'U'); -- custom CFS inputs conduit + cfs_out_o : out std_ulogic_vector(IO_CFS_OUT_SIZE-1 downto 0); -- custom CFS outputs conduit + + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o : out std_ulogic; -- async serial data line + + -- System time -- + mtime_i : in std_ulogic_vector(63 downto 0) := (others => 'U'); -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o : out std_ulogic_vector(63 downto 0); -- current system time from int. MTIME (if IO_MTIME_EN = true) + + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i : in std_ulogic_vector(XIRQ_NUM_CH-1 downto 0) := (others => 'L'); -- IRQ channels + + -- CPU interrupts -- + mtime_irq_i : in std_ulogic := 'L'; -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i : in std_ulogic := 'L'; -- machine software interrupt + mext_irq_i : in std_ulogic := 'L' -- machine external interrupt + ); + end component neorv32_top_avalonmm; + + -- Intel/Altera RAM module created by MegaWizard + COMPONENT dmem_ram IS + PORT + ( + address : IN STD_LOGIC_VECTOR (10 DOWNTO 0); + byteena : IN STD_LOGIC_VECTOR (3 DOWNTO 0) := (OTHERS => '1'); + clock : IN STD_LOGIC := '1'; + data : IN STD_LOGIC_VECTOR (31 DOWNTO 0); + wren : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) + ); + END COMPONENT dmem_ram; + +signal con_gpio_o : std_ulogic_vector(63 downto 0); + +signal read_o : std_logic; +signal write_o : std_logic; +signal waitrequest_i : std_logic; +signal byteenable_o : std_logic_vector(3 downto 0); +signal address_o : std_logic_vector(31 downto 0); +signal writedata_o : std_logic_vector(31 downto 0); +signal readdata_i : std_logic_vector(31 downto 0); + +signal read_wait_cnt : std_logic_vector(1 downto 0); + + +begin + + -- The Core Of The Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top_avalonmm + generic map ( + -- General -- + CLOCK_FREQUENCY => CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => false, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_C => true, -- implement compressed extension? + CPU_EXTENSION_RISCV_M => true, -- implement mul/div extension? + CPU_EXTENSION_RISCV_Zicsr => true, -- implement CSR system? + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => true, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => false, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => 0, -- size of processor-internal data memory in bytes + -- Processor peripherals -- + IO_GPIO_EN => true, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true, -- implement machine system timer (MTIME)? + IO_UART0_EN => true -- implement primary universal asynchronous receiver/transmitter (UART0)? + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => con_gpio_o, -- parallel output + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd_o, -- UART0 send data + uart0_rxd_i => uart0_rxd_i, -- UART0 receive data + -- AvalonMM Interface + read_o => read_o, + write_o => write_o, + waitrequest_i => waitrequest_i, + byteenable_o => byteenable_o, + address_o => address_o, + writedata_o => writedata_o, + readdata_i => readdata_i + ); + + -- Simple example hooking up RAM module to AvalonMM Interface + -- and using this RAM as DMEM + my_dmem_ram : dmem_ram + port map( + address => address_o(12 downto 2), + byteena => byteenable_o, + clock => clk_i, + data => writedata_o, + wren => write_o, + q => readdata_i); + + + -- Very simple AvalonMM control signals + -- Write has 0 wait-states + -- Read has 2 wait-states + waitrequest_i <= '1' when (read_o = '1' and read_wait_cnt /= "10") else '0'; + process(clk_i, rstn_i) + begin + if rstn_i = '0' then + read_wait_cnt <= "00"; + elsif rising_edge(clk_i) then + if read_o = '0' then + read_wait_cnt <= "00"; + else + read_wait_cnt <= read_wait_cnt + '1'; + end if; + end if; + end process; + + -- GPIO output -- + gpio_o <= con_gpio_o(7 downto 0); + + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/.gitignore b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/.gitignore new file mode 100644 index 0000000..818036c --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/.gitignore @@ -0,0 +1,8 @@ +/.qsys_edit +/db +/neorv32_test_qsys +/*.sopcinfo +/*.rpt +/output_files +/incremental_db +/*.qws diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/README.md b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/README.md new file mode 100644 index 0000000..012a17a --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/README.md @@ -0,0 +1,51 @@ +# NEORV32 Test Setup using the NEORV32 as a Nios II drop-in replacement + +This setup provides a very simple "demo setup" that uses the NEORV32 Qsys/Platform Designer component +so that the NEORV32 can be used as a drop-in replacement of the Nios II soft CPU from Intel. +The demo is running on the Terasic DE0-Nano FPGA Board. + +The design is based on the de0-nano-test-setup, but the NEORV32 cpu is added as a QSys/Platform Designer +component. As an example the DMEM is "external" and uses an Platform Designer SRAM block. + +![NEORV32 in Platform Designer](figures/neorv32_platform_designer.png) + +For details about the design and use of the NEORV32 as a Qsys/Platform Designer component please +look at the Qsys component files and documentation here [`NEORV32 Qsys Component`](../neorv32_qsys_component) + +It uses the simplified simple example top entity that provides a minimalistic interface (clock, reset, UART and 8 LEDs). + +* FPGA Board: :books: [Terasic DE0-Nano FPGA Board](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593) +* FPGA: Intel Cyclone-IV `EP4CE22F17C6N` +* Toolchain: Intel Quartus Prime (tested with Quartus Prime 18.1.1 - Lite Edition) + + +### NEORV32 Configuration + +For NEORV32 configuration the default values of the neorv32_top in version 1.6.0 are used +with a few exceptions: + +* Memory: 16kB instruction memory (internal IMEM), 8kB data memory (external DMEM), No bootloader +* Tested with version [`1.6.0`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +* Clock: 50MHz from on-board oscillator +* Reset: via on-board button "KEY0" +* GPIO output port `gpio_o` (8-bit) connected to the 8 green user LEDs ("LED7" - "LED0") +* UART0 signals `uart0_txd_o` and `uart0_rxd_i` are connected to the 40-pin **GPIO_0** header + * `uart0_txd_o:` output, connected to FPGA pin `C3` - header pin `GPIO_01` (pin number "4") + * `uart0_rxd_i:` input, connected to FPGA pin `A3` - header pin `GPIO_03` (pin number "6") + +### FPGA Utilization + +``` +Total logic elements 4,064 / 22,320 ( 18 % ) +Total registers 1932 +Total pins 12 / 154 ( 8 % ) +Total virtual pins 0 +Total memory bits 230,400 / 608,256 ( 38 % ) +Embedded Multiplier 9-bit elements 0 / 132 ( 0 % ) +Total PLLs 0 / 4 ( 0 % ) +``` + + +## How To Run + +Open the Quartus project file, compile and upload to FPGA. \ No newline at end of file diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/User_Components.ipx b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/User_Components.ipx new file mode 100644 index 0000000..a0e1337 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/User_Components.ipx @@ -0,0 +1,3 @@ + + + diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qpf b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qpf new file mode 100644 index 0000000..2381531 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qpf @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and any partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details, at +# https://fpgasoftware.intel.com/eula. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 18.1.1 Build 646 04/11/2019 SJ Lite Edition +# Date created = 21:29:54 June 08, 2021 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "18.1" +DATE = "21:29:54 June 08, 2021" + +# Revisions + +PROJECT_REVISION = "de0-nano-test-setup" diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qsf b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qsf new file mode 100644 index 0000000..708a065 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.qsf @@ -0,0 +1,76 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and any partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details, at +# https://fpgasoftware.intel.com/eula. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 18.1.1 Build 646 04/11/2019 SJ Lite Edition +# Date created = 21:29:54 June 08, 2021 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# de0-nano-test-setup_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus Prime software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE22F17C6 +set_global_assignment -name TOP_LEVEL_ENTITY neorv32_ProcessorTop_Test +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 20.1.0 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "16:40:53 APRIL 10, 2021" +set_global_assignment -name LAST_QUARTUS_VERSION "18.1.1 Lite Edition" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id neorv32_ProcessorTop_Test +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id neorv32_ProcessorTop_Test +set_global_assignment -name PARTITION_COLOR 16764057 -section_id neorv32_ProcessorTop_Test +set_location_assignment PIN_R8 -to clk_i +set_location_assignment PIN_J15 -to rstn_i +set_location_assignment PIN_C3 -to uart0_txd_o +set_location_assignment PIN_A3 -to uart0_rxd_i +set_location_assignment PIN_L3 -to gpio_o[7] +set_location_assignment PIN_B1 -to gpio_o[6] +set_location_assignment PIN_F3 -to gpio_o[5] +set_location_assignment PIN_D1 -to gpio_o[4] +set_location_assignment PIN_A11 -to gpio_o[3] +set_location_assignment PIN_B13 -to gpio_o[2] +set_location_assignment PIN_A13 -to gpio_o[1] +set_location_assignment PIN_A15 -to gpio_o[0] +set_global_assignment -name QSYS_FILE neorv32_test_qsys.qsys +set_global_assignment -name QIP_FILE ../neorv32_qsys_component/neorv32_qsys.qip +set_global_assignment -name VHDL_FILE ../../../rtl/core/neorv32_application_image.vhd +set_global_assignment -name VHDL_FILE ../../../rtl/core/neorv32_bootloader_image.vhd +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_dmem.entity.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/neorv32_imem.entity.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/mem/neorv32_dmem.default.vhd -library neorv32 +set_global_assignment -name VHDL_FILE ./../../../rtl/core/mem/neorv32_imem.default.vhd -library neorv32 +set_global_assignment -name VHDL_FILE neorv32_ProcessorTop_Test.vhd +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id neorv32_ProcessorTop_Test \ No newline at end of file diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.sdc b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.sdc new file mode 100644 index 0000000..f67f960 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/de0-nano-test-setup.sdc @@ -0,0 +1,12 @@ +#************************************************************** +# Time Information +#************************************************************** + +set_time_format -unit ns -decimal_places 3 + +#************************************************************** +# Create Clock +#************************************************************** + +create_clock -name {altera_reserved_tck} -period 100.000 -waveform { 0.000 50.000 } [get_ports {altera_reserved_tck}] +create_clock -name {clk_i} -period 20.0 -waveform { 0.0 10.0 } [get_ports {clk_i}] diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/figures/neorv32_platform_designer.png b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/figures/neorv32_platform_designer.png new file mode 100644 index 0000000000000000000000000000000000000000..26dbe4ed4a58fda2875f25b2f116b7f97e541640 GIT binary patch literal 53277 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 clk_i, + perf_gpio_gpio_o => perf_gpio_gpio_o, + perf_gpio_gpio_i => (others => '0'), + perf_uart0_uart0_txd_o => uart0_txd_o, + perf_uart0_uart0_rxd_i => uart0_rxd_i, + reset_reset_n => rstn_i); + +end rtl; diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/neorv32_test_qsys.qsys b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/neorv32_test_qsys.qsys new file mode 100644 index 0000000..7a0dac1 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup-qsys/neorv32_test_qsys.qsys @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + de0-nano-test-setup.qpf + + + + + + + + + + + + + + $${FILENAME}_access_test_mem + + + + + + ADDRESS_STALL 1 ADVANCED_INFO 0 ALLOWS_COMPILING_OTHER_FAMILY_IP 1 ANY_QFP 0 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 ENABLE_PIN_PLANNER 0 ENGINEERING_SAMPLE 0 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FASTEST 0 FINAL_TIMING_MODEL 0 FITTER_USE_FALLING_EDGE_DELAY 0 FPP_COMPLETELY_PLACES_AND_ROUTES_PERIPHERY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ACTIVE_PARALLEL_FLASH_SUPPORT 0 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CDB_RE_NETWORK_PRESERVATION_SUPPORT 0 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HARDCOPYII_SUPPORT 0 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_ICD_DATA_IP 0 HAS_IDB_SUPPORT 1 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_PLACEMENT_USING_GEOMETRY_RULE 0 HAS_IO_PLACEMENT_USING_PHYSIC_RULE 0 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NADDER_STYLE_CLOCKING 0 HAS_NADDER_STYLE_FF 0 HAS_NADDER_STYLE_LCELL_COMB 0 HAS_NEW_CDB_NAME_FOR_M20K_SCLR 0 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PASSIVE_PARALLEL_SUPPORT 0 HAS_PDN_MODEL_STATUS 0 HAS_PHYSICAL_DESIGN_PLANNER_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_BINNING_LIMITS_DATA 0 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_QUARTUS_HIERARCHICAL_DESIGN_SUPPORT 0 HAS_RAPID_RECOMPILE_SUPPORT 0 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_STRICT_PRESERVATION_SUPPORT 1 HAS_SYNTHESIS_ON_ATOMS 0 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO2_WRITER_SUPPORT 0 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 INTERNAL_POF_SUPPORT_ENABLED 0 INTERNAL_USE_ONLY 0 ISSUE_MILITARY_TEMPERATURE_WARNING 0 IS_BARE_DIE 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_FOR_INTERNAL_TESTING_ONLY 0 IS_HARDCOPY_FAMILY 0 IS_HBGA_PACKAGE 0 IS_HIGH_CURRENT_PART 0 IS_JW_NEW_BINNING_PLAN 0 IS_LOW_POWER_PART 0 IS_REVE_SILICON 0 IS_SDM_ONLY_PACKAGE 0 IS_SMI_PART 0 LOAD_BLK_TYPE_DATA_FROM_ATOM_WYS_INFO 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NOT_MIGRATABLE 0 NO_FITTER_DELAY_CACHE_GENERATED 0 NO_PIN_OUT 0 NO_POF 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_ONLY 0 PROGRAMMER_SUPPORT 1 PVA_SUPPORTS_ONLY_SUBSET_OF_ATOMS 0 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 REQUIRE_QUARTUS_HIERARCHICAL_DESIGN 0 REQUIRE_SPECIAL_HANDLING_FOR_LOCAL_LABLINE 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RESTRICT_PARTIAL_RECONFIG 0 RISEFALL_SUPPORT_IS_HIDDEN 0 SHOW_HIDDEN_FAMILY_IN_PROGRAMMER 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_1P0V_IOSTD 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_HIPI_RETIMING 0 SUPPORTS_LICENSE_FREE_PARTIAL_RECONFIG 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_NEW_BINNING_PLAN 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 SUPPORTS_VID 0 SUPPORT_HIGH_SPEED_HPS 0 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_NETWORK_ROUTING_POWER_CALCULATOR 0 USES_PART_INFO_FOR_DISPLAYING_CORE_VOLTAGE_VALUE 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_PVAFAM2 0 USES_SECOND_GENERATION_PART_INFO 0 USES_SECOND_GENERATION_POWER_ANALYZER 0 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USES_XML_FORMAT_FOR_EMIF_PIN_MAP_FILE 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 USING_28NM_OR_OLDER_TIMING_METHODOLOGY 1 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1 + + + + + + + + + + + + + + + + + + + + + + $${FILENAME}_ext_dmem + + + + + + ADDRESS_STALL 1 ADVANCED_INFO 0 ALLOWS_COMPILING_OTHER_FAMILY_IP 1 ANY_QFP 0 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 ENABLE_PIN_PLANNER 0 ENGINEERING_SAMPLE 0 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FASTEST 0 FINAL_TIMING_MODEL 0 FITTER_USE_FALLING_EDGE_DELAY 0 FPP_COMPLETELY_PLACES_AND_ROUTES_PERIPHERY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ACTIVE_PARALLEL_FLASH_SUPPORT 0 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CDB_RE_NETWORK_PRESERVATION_SUPPORT 0 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HARDCOPYII_SUPPORT 0 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_ICD_DATA_IP 0 HAS_IDB_SUPPORT 1 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_PLACEMENT_USING_GEOMETRY_RULE 0 HAS_IO_PLACEMENT_USING_PHYSIC_RULE 0 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NADDER_STYLE_CLOCKING 0 HAS_NADDER_STYLE_FF 0 HAS_NADDER_STYLE_LCELL_COMB 0 HAS_NEW_CDB_NAME_FOR_M20K_SCLR 0 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PASSIVE_PARALLEL_SUPPORT 0 HAS_PDN_MODEL_STATUS 0 HAS_PHYSICAL_DESIGN_PLANNER_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_BINNING_LIMITS_DATA 0 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_QUARTUS_HIERARCHICAL_DESIGN_SUPPORT 0 HAS_RAPID_RECOMPILE_SUPPORT 0 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_STRICT_PRESERVATION_SUPPORT 1 HAS_SYNTHESIS_ON_ATOMS 0 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO2_WRITER_SUPPORT 0 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 INTERNAL_POF_SUPPORT_ENABLED 0 INTERNAL_USE_ONLY 0 ISSUE_MILITARY_TEMPERATURE_WARNING 0 IS_BARE_DIE 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_FOR_INTERNAL_TESTING_ONLY 0 IS_HARDCOPY_FAMILY 0 IS_HBGA_PACKAGE 0 IS_HIGH_CURRENT_PART 0 IS_JW_NEW_BINNING_PLAN 0 IS_LOW_POWER_PART 0 IS_REVE_SILICON 0 IS_SDM_ONLY_PACKAGE 0 IS_SMI_PART 0 LOAD_BLK_TYPE_DATA_FROM_ATOM_WYS_INFO 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NOT_MIGRATABLE 0 NO_FITTER_DELAY_CACHE_GENERATED 0 NO_PIN_OUT 0 NO_POF 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_ONLY 0 PROGRAMMER_SUPPORT 1 PVA_SUPPORTS_ONLY_SUBSET_OF_ATOMS 0 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 REQUIRE_QUARTUS_HIERARCHICAL_DESIGN 0 REQUIRE_SPECIAL_HANDLING_FOR_LOCAL_LABLINE 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RESTRICT_PARTIAL_RECONFIG 0 RISEFALL_SUPPORT_IS_HIDDEN 0 SHOW_HIDDEN_FAMILY_IN_PROGRAMMER 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_1P0V_IOSTD 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_HIPI_RETIMING 0 SUPPORTS_LICENSE_FREE_PARTIAL_RECONFIG 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_NEW_BINNING_PLAN 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 SUPPORTS_VID 0 SUPPORT_HIGH_SPEED_HPS 0 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_NETWORK_ROUTING_POWER_CALCULATOR 0 USES_PART_INFO_FOR_DISPLAYING_CORE_VOLTAGE_VALUE 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_PVAFAM2 0 USES_SECOND_GENERATION_PART_INFO 0 USES_SECOND_GENERATION_POWER_ANALYZER 0 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USES_XML_FORMAT_FOR_EMIF_PIN_MAP_FILE 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 USING_28NM_OR_OLDER_TIMING_METHODOLOGY 1 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/.gitignore b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/.gitignore new file mode 100644 index 0000000..8a6f547 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/.gitignore @@ -0,0 +1,7 @@ +db +incremental_db +output_files +*.qpf +*.qsf +*.qws +*.vhd diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/README.md b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/README.md new file mode 100644 index 0000000..39ffe2c --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/README.md @@ -0,0 +1,62 @@ +# NEORV32 Test Setup for the Terasic DE0-Nano FPGA Board + +This setup provides a very simple script-based "demo setup" that allows to check out the NEORV32 processor on the Terasic DE0-Nano board. +It uses the simplified [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) top entity, which is a wrapper for the actual processor +top entity that provides a minimalistic interface (clock, reset, UART and 8 LEDs). + +* FPGA Board: :books: [Terasic DE0-Nano FPGA Board](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593) +* FPGA: Intel Cyclone-IV `EP4CE22F17C6N` +* Toolchain: Intel Quartus Prime (tested with Quartus Prime 20.1.0 - Lite Edition) + + +### NEORV32 Configuration + +:information_source: See the top entity [`rtl/test_setups/neorv32_test_setup_bootloader.vhd` ](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) for +configuration and entity details and `create_project.tcl` for the according FPGA pin mapping. + +* CPU: `rv32imcu_Zicsr` + 4 `HPM` (hardware performance monitors, 40-bit wide) +* Memory: 16kB instruction memory (internal IMEM), 8kB data memory (internal DMEM), bootloader ROM +* Peripherals: `GPIO`, `MTIME`, `UART0`, `WDT` +* Tested with version [`1.5.7.6`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +* Clock: 50MHz from on-board oscillator +* Reset: via on-board button "KEY0" +* GPIO output port `gpio_o` (8-bit) connected to the 8 green user LEDs ("LED7" - "LED0") +* UART0 signals `uart0_txd_o` and `uart0_rxd_i` are connected to the 40-pin **GPIO_0** header + * `uart0_txd_o:` output, connected to FPGA pin `C3` - header pin `GPIO_01` (pin number "4") + * `uart0_rxd_i:` input, connected to FPGA pin `A3` - header pin `GPIO_03` (pin number "6") + +:warning: The default [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) top entity +is configured for a 100MHz input clock. Since the on-board oscillator of the DE0-nano board generates a 50MHz clock, the test setup has to be modified. +This is automatically done by the `create_project.tcl` TCL script, which makes a local copy of the original test setup VHDL file +(in *this* folder) and uses `sed` to configure the `CLOCK_FREQUENCY` generic (in the local copy) for 50MHz. The local copy is then used as actual +top entity. + +### FPGA Utilization + +``` +Total logic elements 4,009 / 22,320 ( 18 % ) +Total registers 1860 +Total pins 12 / 154 ( 8 % ) +Total virtual pins 0 +Total memory bits 230,400 / 608,256 ( 38 % ) +Embedded Multiplier 9-bit elements 0 / 132 ( 0 % ) +Total PLLs 0 / 4 ( 0 % ) +``` + + +## How To Run + +The `create_project.tcl` TCL script in this directory can be used to create a complete Quartus project. +If not already available, this script will create a `work` folder in this directory. + +1. start Quartus (in GUI mode) +2. in the menu line click "View/Utility Windows/Tcl console" to open the Tcl console +3. use the console to naviagte to **this** folder: `cd .../neorv32/boards/de0-nano-test-setup` +4. execute `source create_project.tcl` - this will create and open the actual Quartus project in this folder +5. if a "select family" prompt appears select the "Cyclone IV E" family and click OK +6. double click on "Compile Design" in the "Tasks" window. This will synthesize, map and place & route your design and will also generate the actual FPGA bitstream +7. when the process is done open the programmer (for example via "Tools/Programmer") and click "Start" in the programmer window to upload the bitstream to your FPGA +8. use a serial terminal (like :earth_asia: [Tera Term](https://ttssh2.osdn.jp/index.html.en)) to connect to the USB-UART interface using the following configuration: +19200 Baud, 8 data bits, 1 stop bit, no parity bits, no transmission / flow control protocol (raw bytes only), newline on `\r\n` (carriage return & newline) +9. now you can communicate with the bootloader console and upload a new program. Check out the [example programs](https://github.com/stnolting/neorv32/tree/master/sw/example) +and see section "Let's Get It Started" of the :page_facing_up: [NEORV32 data sheet](https://raw.githubusercontent.com/stnolting/neorv32/master/docs/NEORV32.pdf) for further resources. diff --git a/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/create_project.tcl b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/create_project.tcl new file mode 100644 index 0000000..2f2be7e --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/de0-nano-test-setup/create_project.tcl @@ -0,0 +1,94 @@ +# make a local copy of original "./../../rtl/test_setups/neorv32_test_setup_bootloader.vhd " file +# and modify the default clock frequency: set to 50MHz +set shell_script "cp -f ./../../../rtl/test_setups/neorv32_test_setup_bootloader.vhd . && sed -i 's/100000000/50000000/g' neorv32_test_setup_bootloader.vhd " +exec sh -c $shell_script + +# Copyright (C) 2020 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and any partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details, at +# https://fpgasoftware.intel.com/eula. + +# Quartus Prime: Generate Tcl File for Project +# File: de0_nano_test.tcl +# Generated on: Sat Apr 10 16:57:48 2021 + +# Load Quartus Prime Tcl Project package +package require ::quartus::project + +set need_to_close_project 0 +set make_assignments 1 + +# Check that the right project is open +if {[is_project_open]} { + if {[string compare $quartus(project) "de0-nano-test-setup"]} { + puts "Project de0-nano-test-setup is not open" + set make_assignments 0 + } +} else { + # Only open if not already open + if {[project_exists de0-nano-test-setup]} { + project_open -revision de0-nano-test-setup de0-nano-test-setup + } else { + project_new -revision de0-nano-test-setup de0-nano-test-setup + } + set need_to_close_project 1 +} + +# Make assignments +if {$make_assignments} { + set_global_assignment -name FAMILY "Cyclone IV E" + set_global_assignment -name DEVICE EP4CE22F17C6 + set_global_assignment -name TOP_LEVEL_ENTITY neorv32_test_setup_bootloader + set_global_assignment -name ORIGINAL_QUARTUS_VERSION 20.1.0 + set_global_assignment -name PROJECT_CREATION_TIME_DATE "16:40:53 APRIL 10, 2021" + set_global_assignment -name LAST_QUARTUS_VERSION "20.1.0 Lite Edition" + set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files + set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 + set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 + set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 + + # core VHDL files + set core_src_dir [glob ./../../../rtl/core/*.vhd] + foreach core_src_file $core_src_dir { + set_global_assignment -name VHDL_FILE $core_src_file -library neorv32 + } + set_global_assignment -name VHDL_FILE ./../../../rtl/core/mem/neorv32_dmem.default.vhd -library neorv32 + set_global_assignment -name VHDL_FILE ./../../../rtl/core/mem/neorv32_imem.default.vhd -library neorv32 + + # top entity: use local modified copy of the original test setup + set_global_assignment -name VHDL_FILE "neorv32_test_setup_bootloader.vhd" + + set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" + set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" + set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top + set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top + set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top + + set_location_assignment PIN_R8 -to clk_i + set_location_assignment PIN_L3 -to gpio_o[7] + set_location_assignment PIN_B1 -to gpio_o[6] + set_location_assignment PIN_F3 -to gpio_o[5] + set_location_assignment PIN_D1 -to gpio_o[4] + set_location_assignment PIN_A11 -to gpio_o[3] + set_location_assignment PIN_B13 -to gpio_o[2] + set_location_assignment PIN_A13 -to gpio_o[1] + set_location_assignment PIN_A15 -to gpio_o[0] + set_location_assignment PIN_J15 -to rstn_i + set_location_assignment PIN_C3 -to uart0_txd_o + set_location_assignment PIN_A3 -to uart0_rxd_i + + set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top + + # Commit assignments + export_assignments +} diff --git a/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/README.md b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/README.md new file mode 100644 index 0000000..187d985 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/README.md @@ -0,0 +1,73 @@ +# NEORV32 Platform Designer Component + +This folder contains a Qsys/Platform Designer wrapper for the NEORV32 together with +an Wishbone to AvalonMM bridge. This makes the NEORV32 a drop-in replacement for the +Altera/Intel Nios II soft CPU. + +This is just a quick template showing a possible solution, and not a feature complete +solution. All parameters in the Generic section could be added to the GUI. + +Only some peripherals (UART0, UART1 and GPIO) are connected, but other peripheral +could easily be connected. + +## Solution overview + +The solution is made up of 3 files. One VHDL file for the component implementation +(neorv32_qsys.vhd), one file for the Qsys component (neorv32_qsys_hw.tcl) and one file +listing files to include (neorv32_qsys.qip) to simplify the Quartus setup (.qsf) file. +The figure below shows how the component is implemented. + +![NEORV32 Qsys Component Solution](figures/overview.png) + +## GUI Settings + +The Qsys component is created so that some parameters can be set in the Platform Design +GUI. More settings could be added as needed. + +![NEORV32 GUI Settings](figures/gui_settings.png) + +## Implementation notes + +The Platform Designer has a bug (feature?) that makes boolean parameters from the Platform +Designer GUI being port mapped to the VHDL component generic as 0/1 instead of true/false. +This is a known bug/feature. + +A workaround for this is made by making the generic (boolean) parameters in the VHDL +as "integer", and then use a "integer2bool" function to make the parameter boolean +again to fit the NEORV32 top. + +## How to use + +To use the Qsys component in your Platform Designer design, you will just need to +make a "User_Components.ipx" file in your Qsys folder, and reference this (rtl/system_integration/neorv32_qsys_component) folder. + +Example "User_Components.ipx" content: +``` + + + +``` + +You will also need to add 3 lines in your Quartus project file (QSF-file) in order to +get the correct source files. + +Example QSF-file info: +``` +...... +set_global_assignment -name QIP_FILE ../neorv32_qsys_component/neorv32_qsys.qip +set_global_assignment -name VHDL_FILE ../../../rtl/core/neorv32_application_image.vhd +set_global_assignment -name VHDL_FILE ../../../rtl/core/neorv32_bootloader_image.vhd +...... +``` + +Having seperate links for the bootloader and application images makes it easy to include images +from your own project folders. + +# NEORV32 Platform Designer Component - Example Design + +The branch contains an example design using the Qsys/Platform designer component +and running on the DE0 Nano board. + +The example design can be found here [setups/quartus/de0-nano-test-setup-qsys`](../de0-nano-test-setup-qsys) + +The example design will run the software examples. diff --git a/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/figures/gui_settings.png b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/figures/gui_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..f607085e59d92e427a2abc48eb83964c8c8ff6ba GIT binary patch literal 10814 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�{@wEI=&LWo7Z-g+Ab3aAE%3SS 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 literal 0 HcmV?d00001 diff --git a/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.qip b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.qip new file mode 100644 index 0000000..59271eb --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.qip @@ -0,0 +1,33 @@ +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_package.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_boot_rom.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_busswitch.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_bus_keeper.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cfs.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_alu.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_bus.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_control.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_cp_fpu.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_cp_muldiv.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_decompressor.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_regfile.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_debug_dm.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_debug_dtm.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_gpio.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_icache.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_mtime.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_nco.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_neoled.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_package.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_pwm.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_spi.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_sysinfo.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_top.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_trng.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_twi.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_uart.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_wdt.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_wishbone.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_fifo.vhd"] -library neorv32 +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "../../../rtl/core/neorv32_cpu_cp_shifter.vhd"] -library neorv32 + diff --git a/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.vhd b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.vhd new file mode 100644 index 0000000..c04da0d --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys.vhd @@ -0,0 +1,279 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor Top Qsys component with AvalonMM Compatible Master Interface >> # +-- # ********************************************************************************************* # +-- # (c) "NIOS-2", "Qsys", "Platform Designer" and "AvalonMM" are trademarks of Intel. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +entity neorv32_qsys is + generic ( + GUI_CLOCK_FREQUENCY : integer := 100000000; + GUI_EMABLE_INTERNAL_IMEM : integer := 1; + GUI_IMEM_SIZE : integer := 16; + GUI_EMABLE_INTERNAL_DMEM : integer := 1; + GUI_DMEM_SIZE : integer := 8; + GUI_ENABLE_BOOTLOADER : integer := 0; + GUI_ENABLE_AVALONMM : integer := 1; + GUI_ENABLE_UART0 : integer := 1; + GUI_ENABLE_UART1 : integer := 0; + GUI_ENABLE_GPIO : integer := 0 + ); + port ( + -- Global control -- + clk_i : in std_logic := '0'; -- global clock, rising edge + rstn_i : in std_logic := '0'; -- global reset, low-active, async + -- GPIO -- + gpio_o : out std_logic_vector(63 downto 0); -- parallel output + gpio_i : in std_logic_vector(63 downto 0) := (others => '0'); -- parallel output + -- UART0 -- + uart0_txd_o : out std_logic; -- UART0 send data + uart0_rxd_i : in std_logic := '0'; -- UART0 receive data + + -- UART1 -- + uart1_txd_o : out std_logic; -- UART0 send data + uart1_rxd_i : in std_logic := '0'; -- UART0 receive data + + -- AvalonMM interface + read : out std_logic; + write : out std_logic; + waitrequest : in std_logic := '0'; + byteenable : out std_logic_vector(3 downto 0); + address : out std_logic_vector(31 downto 0); + writedata : out std_logic_vector(31 downto 0); + readdata : in std_logic_vector(31 downto 0) := (others => '0') + + ); +end entity; + +architecture neorv32_qsys_rtl of neorv32_qsys is + +signal gpio_i_ulogic : std_ulogic_vector(63 downto 0); +signal gpio_o_ulogic : std_ulogic_vector(63 downto 0); + +-- Wishbone bus interface (available if MEM_EXT_EN = true) -- +signal wb_tag_o : std_ulogic_vector(02 downto 0); -- request tag +signal wb_adr_o : std_ulogic_vector(31 downto 0); -- address +signal wb_dat_i : std_ulogic_vector(31 downto 0); -- read data +signal wb_dat_o : std_ulogic_vector(31 downto 0); -- write data +signal wb_we_o : std_ulogic; -- read/write +signal wb_sel_o : std_ulogic_vector(03 downto 0); -- byte enable +signal wb_stb_o : std_ulogic; -- strobe +signal wb_cyc_o : std_ulogic; -- valid cycle +signal wb_lock_o : std_ulogic; -- exclusive access request +signal wb_ack_i : std_ulogic; -- transfer acknowledge +signal wb_err_i : std_ulogic; -- transfer error + +signal reset : std_logic; + +function integer2bool(integer_value : integer := 0) return boolean is +begin + if integer_value = 0 then + return false; + else + return true; + end if; +end function; + +begin + + -- The Core Of The Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => GUI_CLOCK_FREQUENCY, -- clock frequency of clk_i in Hz + INT_BOOTLOADER_EN => integer2bool(GUI_ENABLE_BOOTLOADER), -- implement processor-internal bootloader? + HW_THREAD_ID => 0, -- hardware thread id (hartid) + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => false, -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => false, -- implement atomic extension? + CPU_EXTENSION_RISCV_C => true, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => false, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => true, -- implement muld/div extension? + CPU_EXTENSION_RISCV_U => true, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => false, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => true, -- implement CSR system? + CPU_EXTENSION_RISCV_Zifencei => false, -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul => false, -- implement multiply-only M sub-extension? + -- Extension Options -- + FAST_MUL_EN => false, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => false, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => 64, -- total width of CPU cycle and instret counters (0..64) + CPU_IPB_ENTRIES => 2, -- entries is instruction prefetch buffer, has to be a power of 2 + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => 0, -- number of regions (0..64) + PMP_MIN_GRANULARITY => 64*1024, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => 4, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => 40, -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => integer2bool(GUI_EMABLE_INTERNAL_IMEM), -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => GUI_IMEM_SIZE*1024, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => integer2bool(GUI_EMABLE_INTERNAL_DMEM), -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => GUI_DMEM_SIZE*1024, -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN => false, -- implement instruction cache + ICACHE_NUM_BLOCKS => 4, -- i-cache: number of blocks (min 1), has to be a power of 2 + ICACHE_BLOCK_SIZE => 64, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => 1, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface -- + MEM_EXT_EN => integer2bool(GUI_ENABLE_AVALONMM), -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 0, -- cycles after a pending bus access auto-terminates (0 = disabled) + MEM_EXT_PIPE_MODE => false, -- protocol: false=classic/standard wishbone mode, true=pipelined wishbone mode + MEM_EXT_BIG_ENDIAN => false, -- byte order: true=big-endian, false=little-endian + MEM_EXT_ASYNC_RX => false, -- use register buffer for RX data when false + -- Stream link interface (SLINK) -- + SLINK_NUM_TX => 0, -- number of TX links (0..8) + SLINK_NUM_RX => 0, -- number of TX links (0..8) + SLINK_TX_FIFO => 1, -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO => 1, -- RX fifo depth, has to be a power of two + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH => 0, -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE => (x"FFFFFFFF"), -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY => (x"FFFFFFFF"), -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN => integer2bool(GUI_ENABLE_GPIO), -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true, -- implement machine system timer (MTIME)? + IO_UART0_EN => integer2bool(GUI_ENABLE_UART0), -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART1_EN => integer2bool(GUI_ENABLE_UART1), -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_SPI_EN => false, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => false, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => 0, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => true, -- implement watch dog timer (WDT)? + IO_TRNG_EN => false, -- implement true random number generator (TRNG)? + IO_CFS_EN => false, -- implement custom functions subsystem (CFS)? + IO_CFS_CONFIG => x"00000000", -- custom CFS configuration generic + IO_CFS_IN_SIZE => 32, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => 32, -- size of CFS output conduit in bits + IO_NEOLED_EN => false, -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO => 1 -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + ) + port map ( + -- Global control -- + clk_i => clk_i, -- global clock, rising edge + rstn_i => rstn_i, -- global reset, low-active, async + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => '0', -- low-active TAP reset (optional) + jtag_tck_i => '0', -- serial clock + jtag_tdi_i => '0', -- serial data input + jtag_tdo_o => open, -- serial data output + jtag_tms_i => '0', -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => wb_tag_o, -- tag + wb_adr_o => wb_adr_o, -- address + wb_dat_i => wb_dat_i, -- read data + wb_dat_o => wb_dat_o, -- write data + wb_we_o => wb_we_o, -- read/write + wb_sel_o => wb_sel_o, -- byte enable + wb_stb_o => wb_stb_o, -- strobe + wb_cyc_o => wb_cyc_o, -- valid cycle + wb_lock_o => wb_lock_o, -- exclusive access request + wb_ack_i => wb_ack_i, -- transfer acknowledge + wb_err_i => wb_err_i, -- transfer error + -- 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 + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o => open, -- output data + slink_tx_val_o => open, -- valid output + slink_tx_rdy_i => (others => 'L'), -- ready to send + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i => (others => (others => 'U')), -- input data + slink_rx_val_i => (others => 'L'), -- valid input + slink_rx_rdy_o => open, -- ready to receive + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => gpio_o_ulogic, -- parallel output + gpio_i => gpio_i_ulogic, -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd_o, -- UART0 send data + uart0_rxd_i => uart0_rxd_i, -- UART0 receive data + uart0_rts_o => open, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => '0', -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => uart1_txd_o, -- UART1 send data + uart1_rxd_i => uart1_rxd_i, -- UART1 receive data + uart1_rts_o => open, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => '0', -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => open, -- SPI serial clock + spi_sdo_o => open, -- controller data out, peripheral data in + spi_sdi_i => '0', -- controller data in, peripheral data out + spi_csn_o => open, -- SPI CS + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => open, -- twi serial data line + twi_scl_io => open, -- twi serial clock line + -- PWM (available if IO_PWM_NUM_CH > 0) -- + pwm_o => open, -- pwm channels + -- Custom Functions Subsystem IO -- + cfs_in_i => (others => '0'), -- custom inputs + cfs_out_o => open, -- custom outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => open, -- async serial data line + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i => (others => '0'), -- IRQ channels + -- Interrupts -- + mtime_irq_i => '0', -- machine timer interrupt, available if IO_MTIME_EN = false + msw_irq_i => '0', -- machine software interrupt + mext_irq_i => '0' -- machine external interrupt + ); + + -- Convert between std_logic / std_ulogic + gpio_o <= std_logic_vector(gpio_o_ulogic); + gpio_i_ulogic <= std_ulogic_vector(gpio_i); + + reset <= not(rstn_i); + + -- Wishbone to AvalonMM brdige + read <= '1' when (wb_stb_o = '1' and wb_we_o = '0') else '0'; + write <= '1' when (wb_stb_o = '1' and wb_we_o = '1') else '0'; + address <= std_logic_vector(wb_adr_o); + writedata <= std_logic_vector(wb_dat_o); + byteenable <= std_logic_vector(wb_sel_o); + + wb_dat_i <= std_ulogic_vector(readdata); + wb_ack_i <= not(waitrequest); + wb_err_i <= '0'; + +end architecture; diff --git a/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys_hw.tcl b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys_hw.tcl new file mode 100644 index 0000000..55f7b0f --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/neorv32_qsys_component/neorv32_qsys_hw.tcl @@ -0,0 +1,258 @@ + +# +# request TCL package from ACDS 16.1 +# +package require -exact qsys 16.1 + +# +# module neorv32_qsys +# +set_module_property DESCRIPTION "NEORV32 RISC-V CPU" +set_module_property NAME neorv32_qsys +set_module_property VERSION 1.0 +set_module_property INTERNAL false +set_module_property OPAQUE_ADDRESS_MAP true +set_module_property GROUP "NEORV32" +set_module_property AUTHOR "Stephan Nolting" +set_module_property DISPLAY_NAME "NEORV32 CPU" +set_module_property INSTANTIATE_IN_SYSTEM_MODULE true +set_module_property EDITABLE false +set_module_property REPORT_TO_TALKBACK false +set_module_property ALLOW_GREYBOX_GENERATION false +set_module_property REPORT_HIERARCHY false +set_module_property ELABORATION_CALLBACK elaborate + +# +# file sets +# +add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" "" +set_fileset_property QUARTUS_SYNTH TOP_LEVEL neorv32_qsys +set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false +set_fileset_property QUARTUS_SYNTH ENABLE_FILE_OVERWRITE_MODE false +add_fileset_file neorv32_qsys.vhd VHDL PATH neorv32_qsys.vhd TOP_LEVEL_FILE + +# +# parameters +# +#add_parameter src_id INTEGER 1 "" +#set_parameter_property src_id DEFAULT_VALUE 1 +#set_parameter_property src_id DISPLAY_NAME src_id +#set_parameter_property src_id WIDTH "" +#set_parameter_property src_id TYPE INTEGER +#set_parameter_property src_id UNITS None +#set_parameter_property src_id ALLOWED_RANGES 1:15 +#set_parameter_property src_id DESCRIPTION "Input source ID" +#set_parameter_property src_id HDL_PARAMETER true + +add_parameter GUI_CLOCK_FREQUENCY INTEGER 100000000 +set_parameter_property GUI_CLOCK_FREQUENCY DISPLAY_NAME "CPU Clock Frequency" +set_parameter_property GUI_CLOCK_FREQUENCY DISPLAY_UNITS "Hz" +set_parameter_property GUI_CLOCK_FREQUENCY DESCRIPTION "CPU clock frequency" +set_parameter_property GUI_CLOCK_FREQUENCY ALLOWED_RANGES 1000000:250000000 +set_parameter_property GUI_CLOCK_FREQUENCY GROUP "Core" +set_parameter_property GUI_CLOCK_FREQUENCY HDL_PARAMETER true + +add_parameter GUI_EMABLE_INTERNAL_IMEM BOOLEAN true +set_parameter_property GUI_EMABLE_INTERNAL_IMEM DISPLAY_NAME "Enable Internal IMEM" +set_parameter_property GUI_EMABLE_INTERNAL_IMEM DESCRIPTION "Use interal IMEM" +set_parameter_property GUI_EMABLE_INTERNAL_IMEM GROUP "Core" +set_parameter_property GUI_EMABLE_INTERNAL_IMEM HDL_PARAMETER true + +add_parameter GUI_IMEM_SIZE INTEGER 16 +set_parameter_property GUI_IMEM_SIZE DISPLAY_NAME "Internal IMEM Memory Size" +set_parameter_property GUI_IMEM_SIZE DISPLAY_UNITS "KBytes" +set_parameter_property GUI_IMEM_SIZE DESCRIPTION "Size of IMEM instruction memory" +set_parameter_property GUI_IMEM_SIZE ALLOWED_RANGES {4 8 16 32 64} +set_parameter_property GUI_IMEM_SIZE GROUP "Core" +set_parameter_property GUI_IMEM_SIZE HDL_PARAMETER true + +add_parameter GUI_EMABLE_INTERNAL_DMEM BOOLEAN true +set_parameter_property GUI_EMABLE_INTERNAL_DMEM DISPLAY_NAME "Enable Internal DMEM" +set_parameter_property GUI_EMABLE_INTERNAL_DMEM DESCRIPTION "Use interal DMEM" +set_parameter_property GUI_EMABLE_INTERNAL_DMEM GROUP "Core" +set_parameter_property GUI_EMABLE_INTERNAL_DMEM HDL_PARAMETER true + +add_parameter GUI_DMEM_SIZE INTEGER 8 +set_parameter_property GUI_DMEM_SIZE DISPLAY_NAME "Internal DMEM Memory Size" +set_parameter_property GUI_DMEM_SIZE DISPLAY_UNITS "KBytes" +set_parameter_property GUI_DMEM_SIZE DESCRIPTION "Size of DMEM data memory" +set_parameter_property GUI_DMEM_SIZE ALLOWED_RANGES {2 4 8 16 32 64} +set_parameter_property GUI_DMEM_SIZE GROUP "Core" +set_parameter_property GUI_DMEM_SIZE HDL_PARAMETER true + + +add_parameter GUI_ENABLE_BOOTLOADER BOOLEAN false +set_parameter_property GUI_ENABLE_BOOTLOADER DISPLAY_NAME "Enable Bootloader" +set_parameter_property GUI_ENABLE_BOOTLOADER DESCRIPTION "Add bootloader and start bootloader" +set_parameter_property GUI_ENABLE_BOOTLOADER GROUP "Bootloader" +set_parameter_property GUI_ENABLE_BOOTLOADER HDL_PARAMETER true + + +add_parameter GUI_ENABLE_AVALONMM BOOLEAN true +set_parameter_property GUI_ENABLE_AVALONMM DISPLAY_NAME "Enable AvalonMM Interface" +set_parameter_property GUI_ENABLE_AVALONMM DESCRIPTION "Add AvalonMM Interface for external modules" +set_parameter_property GUI_ENABLE_AVALONMM GROUP "Peripheral" +set_parameter_property GUI_ENABLE_AVALONMM HDL_PARAMETER true + +add_parameter GUI_ENABLE_UART0 BOOLEAN true +set_parameter_property GUI_ENABLE_UART0 DISPLAY_NAME "Enable UART0" +set_parameter_property GUI_ENABLE_UART0 DESCRIPTION "Add UART0 to core" +set_parameter_property GUI_ENABLE_UART0 GROUP "Peripheral" +set_parameter_property GUI_ENABLE_UART0 HDL_PARAMETER true + +add_parameter GUI_ENABLE_UART1 BOOLEAN false +set_parameter_property GUI_ENABLE_UART1 DISPLAY_NAME "Enable UART1" +set_parameter_property GUI_ENABLE_UART1 DESCRIPTION "Add UART1 to core" +set_parameter_property GUI_ENABLE_UART1 GROUP "Peripheral" +set_parameter_property GUI_ENABLE_UART1 HDL_PARAMETER true + +add_parameter GUI_ENABLE_GPIO BOOLEAN false +set_parameter_property GUI_ENABLE_GPIO DISPLAY_NAME "Enable GPIO" +set_parameter_property GUI_ENABLE_GPIO DESCRIPTION "Add GPIO to core" +set_parameter_property GUI_ENABLE_GPIO GROUP "Peripheral" +set_parameter_property GUI_ENABLE_GPIO HDL_PARAMETER true + + + +# +# display items +# + + +# +# connection point clk +# +add_interface clk clock end +set_interface_property clk clockRate 0 +set_interface_property clk ENABLED true +set_interface_property clk EXPORT_OF "" +set_interface_property clk PORT_NAME_MAP "" +set_interface_property clk CMSIS_SVD_VARIABLES "" +set_interface_property clk SVD_ADDRESS_GROUP "" + +add_interface_port clk clk_i clk Input 1 + + +# +# connection point reset +# +add_interface reset reset end +set_interface_property reset associatedClock clk +set_interface_property reset synchronousEdges DEASSERT +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 rstn_i reset_n Input 1 + +# +# connection point perf_gpio +# +add_interface perf_gpio conduit end +set_interface_property perf_gpio associatedClock none +set_interface_property perf_gpio associatedReset none +set_interface_property perf_gpio ENABLED true +set_interface_property perf_gpio EXPORT_OF "" +set_interface_property perf_gpio PORT_NAME_MAP "" +set_interface_property perf_gpio CMSIS_SVD_VARIABLES "" +set_interface_property perf_gpio SVD_ADDRESS_GROUP "" + +add_interface_port perf_gpio gpio_o gpio_o Output 64 +add_interface_port perf_gpio gpio_i gpio_i Input 64 + +# +# connection point perf_uart0 +# +add_interface perf_uart0 conduit end +set_interface_property perf_uart0 associatedClock none +set_interface_property perf_uart0 associatedReset none +set_interface_property perf_uart0 ENABLED true +set_interface_property perf_uart0 EXPORT_OF "" +set_interface_property perf_uart0 PORT_NAME_MAP "" +set_interface_property perf_uart0 CMSIS_SVD_VARIABLES "" +set_interface_property perf_uart0 SVD_ADDRESS_GROUP "" + +add_interface_port perf_uart0 uart0_txd_o uart0_txd_o Output 1 +add_interface_port perf_uart0 uart0_rxd_i uart0_rxd_i Input 1 + +# +# connection point perf_uart1 +# +add_interface perf_uart1 conduit end +set_interface_property perf_uart1 associatedClock none +set_interface_property perf_uart1 associatedReset none +set_interface_property perf_uart1 ENABLED true +set_interface_property perf_uart1 EXPORT_OF "" +set_interface_property perf_uart1 PORT_NAME_MAP "" +set_interface_property perf_uart1 CMSIS_SVD_VARIABLES "" +set_interface_property perf_uart1 SVD_ADDRESS_GROUP "" + +add_interface_port perf_uart1 uart1_txd_o uart1_txd_o Output 1 +add_interface_port perf_uart1 uart1_rxd_i uart1_rxd_i Input 1 + +# +# connection point master +# +add_interface master avalon start +set_interface_property master addressUnits SYMBOLS +set_interface_property master associatedClock clk +set_interface_property master associatedReset reset +set_interface_property master bitsPerSymbol 8 +set_interface_property master burstOnBurstBoundariesOnly false +set_interface_property master burstcountUnits WORDS +set_interface_property master doStreamReads false +set_interface_property master doStreamWrites false +set_interface_property master holdTime 0 +set_interface_property master linewrapBursts false +set_interface_property master maximumPendingReadTransactions 0 +set_interface_property master maximumPendingWriteTransactions 0 +set_interface_property master readLatency 0 +set_interface_property master readWaitTime 0 +set_interface_property master setupTime 0 +set_interface_property master timingUnits Cycles +set_interface_property master writeWaitTime 0 +set_interface_property master ENABLED true +set_interface_property master EXPORT_OF "" +set_interface_property master PORT_NAME_MAP "" +set_interface_property master CMSIS_SVD_VARIABLES "" +set_interface_property master SVD_ADDRESS_GROUP "" + +add_interface_port master address address Output 32 +add_interface_port master read read Output 1 +add_interface_port master write write Output 1 +add_interface_port master byteenable byteenable Output 4 +add_interface_port master writedata writedata Output 32 +add_interface_port master readdata readdata Input 32 +add_interface_port master waitrequest waitrequest Input 1 + +# Callback to enable/disable interface signals +proc elaborate {} { + + if { [get_parameter_value GUI_ENABLE_GPIO] == "false" } { + set_interface_property perf_gpio ENABLED false + } else { + set_interface_property perf_gpio ENABLED true + } + + if { [get_parameter_value GUI_ENABLE_UART0] == "false" } { + set_interface_property perf_uart0 ENABLED false + } else { + set_interface_property perf_uart0 ENABLED true + } + + if { [get_parameter_value GUI_ENABLE_UART1] == "false" } { + set_interface_property perf_uart1 ENABLED false + } else { + set_interface_property perf_uart1 ENABLED true + } + + if { [get_parameter_value GUI_ENABLE_AVALONMM] == "false" } { + set_interface_property master ENABLED false + } else { + set_interface_property master ENABLED true + } + +} + diff --git a/Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/README.md b/Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/README.md new file mode 100644 index 0000000..088f4ea --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/README.md @@ -0,0 +1,65 @@ +# NEORV32 Test Setup for the Terasic Cyclone-V GX Starter Kit FPGA Board + +This setup provides a very simple script-based "demo setup" that allows to check out the NEORV32 processor on the Terasic Cyclone-V GX Starter Kit board. +It uses the simplified [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) top entity, which is a wrapper for the actual processor +top entity that provides a minimalistic interface (clock, reset, UART and 8 LEDs). + +* FPGA Board: :books: [Terasic Cyclone-V GX Starter Kit FPGA Board](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=830) +* FPGA: Intel Cyclone-V GX `5CGXFC5C6F27C7N` +* Toolchain: Intel Quartus Prime (tested with Quartus Prime 20.1.0 - Lite Edition) + + +### NEORV32 Configuration + +:information_source: See the top entity [`rtl/test_setups/neorv32_test_setup_bootloader.vhd` ](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) for +configuration and entity details and `create_project.tcl` for the according FPGA pin mapping. + +* CPU: `rv32imcu_Zicsr` + 4 `HPM` (hardware performance monitors, 40-bit wide) +* Memory: 16kB instruction memory (internal IMEM), 8kB data memory (internal DMEM), bootloader ROM +* Peripherals: `GPIO`, `MTIME`, `UART0`, `WDT` +* Tested with version [`1.5.9.4`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +* Clock: 50MHz from on-board oscillator +* Reset: via on-board button "KEY0" +* GPIO output port `gpio_o` (8-bit) connected to the 8 green user LEDs ("LED7" - "LED0") +* UART0 signals `uart0_txd_o` and `uart0_rxd_i` are connected to the on-board provided USB to UART converter + +:warning: The default [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) top entity +is configured for a 100MHz input clock. Since the on-board clock generator of the Cyclone-V GX Starter Kit board needs I2C to be programmed, the fixed 50MHz clock on bank 5B, pin R20 is used for this test setup, and the test setup has to be modified accordingly. +This is automatically done by the `create_project.tcl` TCL script, which makes a local copy of the original test setup VHDL file +(in *this* folder) and uses `sed` to configure the `CLOCK_FREQUENCY` generic (in the local copy) for 50MHz. The local copy is then used as actual +top entity. + +### FPGA Utilization + +``` +Logic utilization (in ALMs) 1,442 / 29,080 ( 5 % ) +Total registers 1771 +Total pins 12 / 364 ( 3 % ) +Total virtual pins 0 +Total block memory bits 231,424 / 4,567,040 ( 5 % ) +Total DSP Blocks 0 / 150 ( 0 % ) +Total HSSI RX PCSs 0 / 6 ( 0 % ) +Total HSSI PMA RX Deserializers 0 / 6 ( 0 % ) +Total HSSI TX PCSs 0 / 6 ( 0 % ) +Total HSSI PMA TX Serializers 0 / 6 ( 0 % ) +Total PLLs 0 / 12 ( 0 % ) +Total DLLs 0 / 4 ( 0 % ) +``` + + +## How To Run + +The `create_project.tcl` TCL script in this directory can be used to create a complete Quartus project. +If not already available, this script will create a `work` folder in this directory. + +1. start Quartus (in GUI mode) +2. in the menu line click "View/Utility Windows/Tcl console" to open the Tcl console +3. use the console to navigate to **this** folder: `cd .../setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup` +4. execute `source create_project.tcl` - this will create and open the actual Quartus project in this folder. Do NOT run the Quartus-supplied tcl setup script, as that will change all assignment names. +5. if a "select family" prompt appears, go to the "Board" tab, select the "Cyclone V GX Starter Kit" board and click OK +6. double click on "Compile Design" in the "Tasks" window. This will synthesize, map and place & route your design and will also generate the actual FPGA bitstream +7. when the process is done open the programmer (for example via "Tools/Programmer") and click "Start" in the programmer window to upload the bitstream to your FPGA +8. use a serial terminal (like :earth_asia: [Tera Term](https://ttssh2.osdn.jp/index.html.en)) to connect to the USB-UART interface using the following configuration: +19200 Baud, 8 data bits, 1 stop bit, no parity bits, no transmission / flow control protocol (raw bytes only), newline on `\r\n` (carriage return & newline) +9. now you can communicate with the bootloader console and upload a new program. Check out the [example programs](https://github.com/stnolting/neorv32/tree/master/sw/example) +and see section "Let's Get It Started" of the :page_facing_up: [NEORV32 data sheet](https://raw.githubusercontent.com/stnolting/neorv32/master/docs/NEORV32.pdf) for further resources. diff --git a/Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/create_project.tcl b/Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/create_project.tcl new file mode 100644 index 0000000..436e4be --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/quartus/terasic-cyclone-V-gx-starter-kit-test-setup/create_project.tcl @@ -0,0 +1,108 @@ +# make a local copy of original "./../../rtl/test_setups/neorv32_test_setup_bootloader.vhd " file +# and modify the default clock frequency: set to 50MHz +set shell_script "cp -f ./../../../rtl/test_setups/neorv32_test_setup_bootloader.vhd . && sed -i 's/100000000/50000000/g' neorv32_test_setup_bootloader.vhd " +exec sh -c $shell_script + +# Copyright (C) 2020 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and any partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details, at +# https://fpgasoftware.intel.com/eula. + +# Quartus Prime: Generate Tcl File for Project +# File: terasic-cyclone-V-gx=starter-kit_test.tcl +# Generated on: Sat Apr 10 16:57:48 2021 + +# Load Quartus Prime Tcl Project package +package require ::quartus::project + +set need_to_close_project 0 +set make_assignments 1 + +# Check that the right project is open +if {[is_project_open]} { + if {[string compare $quartus(project) "terasic-cyclone-V-gx-starter-kit-test-setup"]} { + puts "Project terasic-cyclone-V-gx-starter-kit-test-setup is not open" + set make_assignments 0 + } +} else { + # Only open if not already open + if {[project_exists de0-nano-test-setup]} { + project_open -revision terasic-cyclone-V-gx-starter-kit-setup terasic-cyclone-V-gx-starter-kit-test-setup + } else { + project_new -revision terasic-cyclone-V-gx-starter-kit-test-setup terasic-cyclone-V-gx-starter-kit-test-setup + } + set need_to_close_project 1 +} + +# Make assignments +if {$make_assignments} { + set_global_assignment -name FAMILY "Cyclone V" + set_global_assignment -name DEVICE 5CGXFC5C6F27C7 + set_global_assignment -name TOP_LEVEL_ENTITY neorv32_test_setup_bootloader + set_global_assignment -name ORIGINAL_QUARTUS_VERSION 20.1.0 + set_global_assignment -name PROJECT_CREATION_TIME_DATE "TUE JUN 4 20:41:15 2013" + set_global_assignment -name LAST_QUARTUS_VERSION "20.1.1 Lite Edition" + set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files + set_global_assignment -name BOARD "Cyclone V GX Starter Kit" + set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 + set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 + set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" + set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 + + # core VHDL files + set core_src_dir [glob ./../../../rtl/core/*.vhd] + foreach core_src_file $core_src_dir { + set_global_assignment -name VHDL_FILE $core_src_file -library neorv32 + } + + # top entity: use local modified copy of the original test setup + set_global_assignment -name VHDL_FILE "neorv32_test_setup_bootloader.vhd" + + set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" + set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" + + set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top + set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top + set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top + + set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to clk_i + set_instance_assignment -name IO_STANDARD "1.2 V" -to rstn_i + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[0] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[1] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[2] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[3] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[4] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[5] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[6] + set_instance_assignment -name IO_STANDARD "2.5 V" -to gpio_o[7] + set_instance_assignment -name IO_STANDARD "2.5 V" -to uart0_rxd_i + set_instance_assignment -name IO_STANDARD "2.5 V" -to uart0_txd_o + + set_location_assignment PIN_R20 -to clk_i + set_location_assignment PIN_P11 -to rstn_i + set_location_assignment PIN_L7 -to gpio_o[0] + set_location_assignment PIN_K6 -to gpio_o[1] + set_location_assignment PIN_D8 -to gpio_o[2] + set_location_assignment PIN_E9 -to gpio_o[3] + set_location_assignment PIN_A5 -to gpio_o[4] + set_location_assignment PIN_B6 -to gpio_o[5] + set_location_assignment PIN_H8 -to gpio_o[6] + set_location_assignment PIN_H9 -to gpio_o[7] + set_location_assignment PIN_M9 -to uart0_rxd_i + set_location_assignment PIN_L9 -to uart0_txd_o + + set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top + + # Commit assignments + export_assignments +} diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/.gitignore b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/.gitignore new file mode 100644 index 0000000..970d11e --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/.gitignore @@ -0,0 +1,20 @@ +/* + +!.gitignore +!README.md + +!system_pll/ +system_pll/* +!system_pll/system_pll.ipx +!system_pll/rtl/ +system_pll/rtl/* +!system_pll/rtl/system_pll.v + +!source/ +source/* +!source/impl_1.xcf + +!*.vhd +!*.rdf +!*.pdc +!*.bin diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/README.md b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/README.md new file mode 100644 index 0000000..6b88cdc --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/README.md @@ -0,0 +1,103 @@ +# NEORV32 Example Setup for the tinyVision.ai Inc. "UPduino v3.0" FPGA Board + + +This example setup turns the UPduino v3.0 board, which features a Lattice iCE40 UltraPlus FPGA, into a medium-scale NEORV32 *microcontroller*. +The processor setup provides 64kB of data and instruction memory, an RTOS-capable CPU (privileged architecture) +and a set of standard peripherals like UART, TWI and SPI. + + +* FPGA Board: :books: [tinyVision.ai Inc. UPduino v3 FPGA Board (GitHub)](https://github.com/tinyvision-ai-inc/UPduino-v3.0/), +:credit_card: buy on [Tindie](https://www.tindie.com/products/tinyvision_ai/upduino-v30-low-cost-lattice-ice40-fpga-board/) +* FPGA: Lattice iCE40 UltraPlus 5k `iCE40UP5K-SG48I` +* Toolchain: Lattice Radiant (tested with Radiant version 3.0.0), using *Lattice Synthesis Engine (LSE)* +* Top entity: [`neorv32_upduino_v3_top.vhd`](https://github.com/stnolting/neorv32/blob/master/boards/UPduino_v3/neorv32_upduino_v3_top.vhd) (instantiates NEORV32 top entity) + + +### Processor Configuration + +- [x] CPU: `rv32imacu_Zicsr_Zicntr` (reduced CPU `[m]instret` & `[m]cycle` counter width!) +- [x] Memory: 64 kB instruction memory (internal IMEM), 64 kB data memory (internal DMEM), 4 kB bootloader ROM +- [x] Peripherals: `GPIO`, `MTIME`, `UART0`, `SPI`, `TWI`, `PWM`, `WDT`, `TRNG` +- [x] Clock: 24 MHz from on-chip HF oscillator (via PLL) +- [x] Reset: via PLL "locked" signal; external "reset" via FPGA re-reconfiguration pin (`creset_n`) +- [x] Tested with processor version [`1.6.1.6`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +- [x] On-board FPGA bitstream flash storage can also be used to store/load NEORV32 application software (via the bootloader) + +:information_source: This setup uses optimized platform-specific memory modules for the internal data and instruction memories (DMEM & IMEM). Each memory uses two +UltraPlus SPRAM primitives (total memory size per memory = 2 x 32kB = 64kB). VHDL source file for platform-specific IMEM: +[`neorv32_imem.ice40up_spram.vhd`](https://github.com/stnolting/neorv32/blob/master/boards/UPduino_v3/neorv32_imem.ice40up_spram.vhd); +VHDL source file for platform-specific DMEM: [`neorv32_dmem.ice40up_spram.vhd`](https://github.com/stnolting/neorv32/blob/master/boards/UPduino_v3/neorv32_dmem.ice40up_spram.vhd). +These platform-specific memories are used *instead* of the default platform-agnostic modules from the core's `rtl/core/mem` folder. + + +### Interface Signals + +:information_source: See [`neorv32_upduino_v3.pdc`](https://github.com/stnolting/neorv32/blob/master/boards/UPduino_v3/neorv32_upduino_v3.pdc) +for the FPGA pin mapping. + +| Top Entity Signal | FPGA Pin | Package Pin | Board Header Pin | +|:------------------------------|:----------:|:------------:|:-----------------| +| `flash_csn_o` (spi_cs[0]) | IOB_35B | 16 | J3-1 | +| `flash_sck_o` | IOB_34A | 15 | J3-2 | +| `flash_sdo_o` | IOB_32A | 14 | J3-3 | +| `flash_sdi_i` | IOB_33B | 17 | J3-4 | +| `gpio_i(0)` | IOB_3B_G6 | 44 | J3-9 | +| `gpio_i(1)` | IOB_8A | 4 | J3-10 | +| `gpio_i(2)` | IOB_9B | 3 | J3-11 | +| `gpio_i(3)` | IOB_4A | 48 | J3-12 | +| `gpio_o(0)` (status LED) | IOB_5B | 45 | J3-13 | +| `gpio_o(1)` | IOB_2A | 47 | J3-14 | +| `gpio_o(2)` | IOB_0A | 46 | J3-15 | +| `gpio_o(3)` | IOB_6A | 2 | J3-16 | +| - | - | - | - | +| **reconfigure FPGA** ("_reset_") | CRESET | 8 | J2-3 | +| `pwm_o(0)` | `gpio_i(0)` (red)| RGB2 | 41 | J2-5 | +| `pwm_o(1)` (green) | RGB0 | 39 | J2-6 | +| `pwm_o(2)` (blue) | RGB1 | 40 | J2-7 | +| `twi_sda_io` | IOT_42B | 31 | J2-9 | +| `twi_scl_io` | IOT_45A_G1 | 37 | J2-10 | +| `spi_sdo_o` | IOT_44B | 34 | J2-11 | +| `spi_sck_o` | IOT_49A | 43 | J2-12 | +| `spi_csn_o` (spi_cs[1]) | IOT_48B | 36 | J2-13 | +| `spi_sdi_i` | IOT_51A | 42 | J2-14 | +| `uart_txd_o` (UART0) | IOT_50B | 38 | J2-15 | +| `uart_rxd_i` (UART0) | IOT_41A | 28 | J2-16 | + +:information_source: The TWI signals (`twi_sda_io` and `twi_scl_io`) and the reset input (`rstn_i`) require an external pull-up resistor. +GPIO output 0 (`gpio_o(0)`, also connected to the RGB drive) is used as output for a high-active **status LED** driven by the bootloader. + + +### FPGA Utilization + +``` +Number of slice registers: 1754 out of 5280 (33%) +Number of I/O registers: 11 out of 117 (9%) +Number of LUT4s: 4882 out of 5280 (92%) +Number of DSPs: 0 out of 8 (0%) +Number of I2Cs: 0 out of 2 (0%) +Number of High Speed OSCs: 1 out of 1 (100%) +Number of Low Speed OSCs: 0 out of 1 (0%) +Number of RGB PWM: 0 out of 1 (0%) +Number of RGB Drivers: 1 out of 1 (100%) +Number of SCL FILTERs: 0 out of 2 (0%) +Number of SRAMs: 4 out of 4 (100%) +Number of WARMBOOTs: 0 out of 1 (0%) +Number of SPIs: 0 out of 2 (0%) +Number of EBRs: 15 out of 30 (50%) +Number of PLLs: 1 out of 1 (100%) +``` + +### FPGA Setup + +1. start Lattice Radiant (in GUI mode) +2. click on "open project" and select `neorv32_upduino_v3.rdf` from this folder +3. click the :arrow_forward: button to synthesize, map, place and route the design and to generate a programming file +4. when done open the programmer (for example via "Tools" -> "Programmer"); you will need a programmer configuration, which will be created in the next steps; alternatively, +you can use the pre-build configuration `source/impl_1.xcf` +5. in the programmer double click on the field under "Operation" (_fast configuration_ should be the default) and select "External SPI Memory" as "Target Memory" +6. select "SPI Serial Flash" under "SPI Flash Options / Family" +7. select "WinBond" under "SPI Flash Options / Vendor" +8. select "W25Q32" under "SPI Flash Options / Device" +9. close the dialog by clicking "ok" +10. click on "Program Device" + diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_dmem.ice40up_spram.vhd b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_dmem.ice40up_spram.vhd new file mode 100644 index 0000000..4ff9d74 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_dmem.ice40up_spram.vhd @@ -0,0 +1,145 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-Internal DMEM for Lattice iCE40 UltraPlus >> # +-- # ********************************************************************************************* # +-- # Memory has a physical size of 64kb (2 x SPRAMs). # +-- # Logical size DMEM_SIZE must be less or equal. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +library iCE40UP; +use iCE40UP.components.all; -- for device primitives + +architecture neorv32_dmem_rtl of neorv32_dmem is + + -- advanced configuration -------------------------------------------------------------------------------- + constant spram_sleep_mode_en_c : boolean := false; -- put DMEM into sleep mode when idle (for low power) + -- ------------------------------------------------------------------------------------------------------- + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(64*1024); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal mem_cs : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + + -- SPRAM signals -- + signal spram_clk : std_logic; + signal spram_addr : std_logic_vector(13 downto 0); + signal spram_di_lo : std_logic_vector(15 downto 0); + signal spram_di_hi : std_logic_vector(15 downto 0); + signal spram_do_lo : std_logic_vector(15 downto 0); + signal spram_do_hi : std_logic_vector(15 downto 0); + signal spram_be_lo : std_logic_vector(03 downto 0); + signal spram_be_hi : std_logic_vector(03 downto 0); + signal spram_we : std_logic; + signal spram_pwr_n : std_logic; + signal spram_cs : std_logic; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using iCE40up SPRAM-based DMEM." severity note; + assert not (DMEM_SIZE > 64*1024) report "NEORV32 PROCESSOR CONFIG ERROR: DMEM has a fixed physical size of 64kB. Logical size must be less or equal." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = DMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + mem_cs <= acc_en and (rden_i or wren_i); + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + dmem_spram_lo_inst : SP256K + port map ( + AD => spram_addr, -- I + DI => spram_di_lo, -- I + MASKWE => spram_be_lo, -- I + WE => spram_we, -- I + CS => spram_cs, -- I + CK => spram_clk, -- I + STDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + PWROFF_N => '1', -- I + DO => spram_do_lo -- O + ); + + dmem_spram_hi_inst : SP256K + port map ( + AD => spram_addr, -- I + DI => spram_di_hi, -- I + MASKWE => spram_be_hi, -- I + WE => spram_we, -- I + CS => spram_cs, -- I + CK => spram_clk, -- I + STDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + PWROFF_N => '1', -- I + DO => spram_do_hi -- O + ); + + -- access logic and signal type conversion -- + spram_clk <= std_logic(clk_i); + spram_addr <= std_logic_vector(addr_i(13+2 downto 0+2)); + spram_di_lo <= std_logic_vector(data_i(15 downto 00)); + spram_di_hi <= std_logic_vector(data_i(31 downto 16)); + spram_we <= '1' when ((acc_en and wren_i) = '1') else '0'; -- global write enable + spram_cs <= std_logic(mem_cs); + spram_be_lo <= std_logic(ben_i(1)) & std_logic(ben_i(1)) & std_logic(ben_i(0)) & std_logic(ben_i(0)); -- low byte write enable + spram_be_hi <= std_logic(ben_i(3)) & std_logic(ben_i(3)) & std_logic(ben_i(2)) & std_logic(ben_i(2)); -- high byte write enable + spram_pwr_n <= '0' when ((spram_sleep_mode_en_c = false) or (mem_cs = '1')) else '1'; -- LP mode disabled or IMEM selected + rdata <= std_ulogic_vector(spram_do_hi) & std_ulogic_vector(spram_do_lo); + + buffer_ff: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= mem_cs; + rden <= acc_en and rden_i; + end if; + end process buffer_ff; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_dmem_rtl; diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_imem.ice40up_spram.vhd b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_imem.ice40up_spram.vhd new file mode 100644 index 0000000..d065504 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_imem.ice40up_spram.vhd @@ -0,0 +1,146 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-Internal IMEM for Lattice iCE40 UltraPlus >> # +-- # ********************************************************************************************* # +-- # Memory has a physical size of 64kb (2 x SPRAMs). # +-- # Logical size IMEM_SIZE must be less or equal. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +library iCE40UP; +use iCE40UP.components.all; -- for device primitives + +architecture neorv32_imem_rtl of neorv32_imem is + + -- advanced configuration -------------------------------------------------------------------------------- + constant spram_sleep_mode_en_c : boolean := false; -- put IMEM into sleep mode when idle (for low power) + -- ------------------------------------------------------------------------------------------------------- + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(64*1024); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal mem_cs : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + + -- SPRAM signals -- + signal spram_clk : std_logic; + signal spram_addr : std_logic_vector(13 downto 0); + signal spram_di_lo : std_logic_vector(15 downto 0); + signal spram_di_hi : std_logic_vector(15 downto 0); + signal spram_do_lo : std_logic_vector(15 downto 0); + signal spram_do_hi : std_logic_vector(15 downto 0); + signal spram_be_lo : std_logic_vector(03 downto 0); + signal spram_be_hi : std_logic_vector(03 downto 0); + signal spram_we : std_logic; + signal spram_pwr_n : std_logic; + signal spram_cs : std_logic; + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Using iCE40up SPRAM-based IMEM." severity note; + assert not (IMEM_AS_IROM = true) report "NEORV32 PROCESSOR CONFIG ERROR: ICE40 Ultra Plus SPRAM cannot be initialized by bitstream!" severity failure; + assert not (IMEM_SIZE > 64*1024) report "NEORV32 PROCESSOR CONFIG ERROR: IMEM has a fixed physical size of 64kB. Logical size must be less or equal." severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = IMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + mem_cs <= acc_en and (rden_i or wren_i); + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_spram_lo_inst : SP256K + port map ( + AD => spram_addr, -- I + DI => spram_di_lo, -- I + MASKWE => spram_be_lo, -- I + WE => spram_we, -- I + CS => spram_cs, -- I + CK => spram_clk, -- I + STDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + PWROFF_N => '1', -- I + DO => spram_do_lo -- O + ); + + imem_spram_hi_inst : SP256K + port map ( + AD => spram_addr, -- I + DI => spram_di_hi, -- I + MASKWE => spram_be_hi, -- I + WE => spram_we, -- I + CS => spram_cs, -- I + CK => spram_clk, -- I + STDBY => '0', -- I + SLEEP => spram_pwr_n, -- I + PWROFF_N => '1', -- I + DO => spram_do_hi -- O + ); + + -- access logic and signal type conversion -- + spram_clk <= std_logic(clk_i); + spram_addr <= std_logic_vector(addr_i(13+2 downto 0+2)); + spram_di_lo <= std_logic_vector(data_i(15 downto 00)); + spram_di_hi <= std_logic_vector(data_i(31 downto 16)); + spram_we <= '1' when ((acc_en and wren_i) = '1') else '0'; -- global write enable + spram_cs <= std_logic(mem_cs); + spram_be_lo <= std_logic(ben_i(1)) & std_logic(ben_i(1)) & std_logic(ben_i(0)) & std_logic(ben_i(0)); -- low byte write enable + spram_be_hi <= std_logic(ben_i(3)) & std_logic(ben_i(3)) & std_logic(ben_i(2)) & std_logic(ben_i(2)); -- high byte write enable + spram_pwr_n <= '0' when ((spram_sleep_mode_en_c = false) or (mem_cs = '1')) else '1'; -- LP mode disabled or IMEM selected + rdata <= std_ulogic_vector(spram_do_hi) & std_ulogic_vector(spram_do_lo); + + buffer_ff: process(clk_i) + begin + if rising_edge(clk_i) then + ack_o <= mem_cs; + rden <= acc_en and rden_i; + end if; + end process buffer_ff; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_imem_rtl; diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.pdc b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.pdc new file mode 100644 index 0000000..d5141a5 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.pdc @@ -0,0 +1,41 @@ +# Radiant pin mapping for the "tinyvision.ai Inc. UPduino v3" FPGA board + +## Clock (on-chip hf oscillator) +#create_clock -period 41.666666 -name hf_osc_clk [get_nets hf_osc_clk] + +## UART (uart0) +ldc_set_location -site {38} [get_ports uart_txd_o] +ldc_set_location -site {28} [get_ports uart_rxd_i] + +## SPI - on-board flash +ldc_set_location -site {14} [get_ports flash_sdo_o] +ldc_set_location -site {15} [get_ports flash_sck_o] +ldc_set_location -site {16} [get_ports flash_csn_o] +ldc_set_location -site {17} [get_ports flash_sdi_i] + +## SPI - user port +ldc_set_location -site {34} [get_ports spi_sdo_o] +ldc_set_location -site {43} [get_ports spi_sck_o] +ldc_set_location -site {36} [get_ports spi_csn_o] +ldc_set_location -site {42} [get_ports spi_sdi_i] + +## TWI +ldc_set_location -site {31} [get_ports twi_sda_io] +ldc_set_location -site {37} [get_ports twi_scl_io] + +## GPIO - input +ldc_set_location -site {44} [get_ports {gpio_i[0]}] +ldc_set_location -site {4} [get_ports {gpio_i[1]}] +ldc_set_location -site {3} [get_ports {gpio_i[2]}] +ldc_set_location -site {48} [get_ports {gpio_i[3]}] + +## GPIO - output +ldc_set_location -site {45} [get_ports {gpio_o[0]}] +ldc_set_location -site {47} [get_ports {gpio_o[1]}] +ldc_set_location -site {46} [get_ports {gpio_o[2]}] +ldc_set_location -site {2} [get_ports {gpio_o[3]}] + +## RGB power LED +ldc_set_location -site {39} [get_ports {pwm_o[0]}] +ldc_set_location -site {40} [get_ports {pwm_o[1]}] +ldc_set_location -site {41} [get_ports {pwm_o[2]}] diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.rdf b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.rdf new file mode 100644 index 0000000..86e0025 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3.rdf @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3_top.vhd b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3_top.vhd new file mode 100644 index 0000000..b0c05df --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/neorv32_upduino_v3_top.vhd @@ -0,0 +1,248 @@ +-- ################################################################################################# +-- # << NEORV32 - Example setup for the tinyVision.ai Inc. "UPduino v3" (c) Board >> # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; + +library work; +use work.all; + +library iCE40UP; +use iCE40UP.components.all; -- for device primitives + +entity neorv32_upduino_v3_top is + port ( + -- UART (uart0) -- + uart_txd_o : out std_ulogic; + uart_rxd_i : in std_ulogic; + -- SPI to on-board flash -- + flash_sck_o : out std_ulogic; + flash_sdo_o : out std_ulogic; + flash_sdi_i : in std_ulogic; + flash_csn_o : out std_ulogic; -- NEORV32.SPI_CS(0) + -- SPI to IO pins -- + spi_sck_o : out std_ulogic; + spi_sdo_o : out std_ulogic; + spi_sdi_i : in std_ulogic; + spi_csn_o : out std_ulogic; -- NEORV32.SPI_CS(1) + -- TWI -- + twi_sda_io : inout std_logic; + twi_scl_io : inout std_logic; + -- GPIO -- + gpio_i : in std_ulogic_vector(3 downto 0); + gpio_o : out std_ulogic_vector(3 downto 0); + -- PWM (to on-board RGB power LED) -- + pwm_o : out std_ulogic_vector(2 downto 0) + ); +end neorv32_upduino_v3_top; + +architecture neorv32_upduino_v3_top_rtl of neorv32_upduino_v3_top is + + -- configuration -- + constant f_clock_c : natural := 24000000; -- PLL output clock frequency in Hz + + -- On-chip oscillator -- + signal hf_osc_clk : std_logic; + + -- PLL (macro generated by radiant) -- + component system_pll + port ( + ref_clk_i : in std_logic; + rst_n_i : in std_logic; + lock_o : out std_logic; + outcore_o : out std_logic; + outglobal_o : out std_logic + ); + end component; + + signal pll_rstn : std_logic; + signal pll_clk : std_logic; + + -- CPU -- + signal cpu_clk : std_ulogic; + signal cpu_rstn : std_ulogic; + + -- internal IO connection -- + signal con_pwm : std_ulogic_vector(02 downto 0); + signal con_spi_sck : std_ulogic; + signal con_spi_sdi : std_ulogic; + signal con_spi_sdo : std_ulogic; + signal con_spi_csn : std_ulogic_vector(07 downto 0); + signal con_gpio_i : std_ulogic_vector(63 downto 0); + signal con_gpio_o : std_ulogic_vector(63 downto 0); + + -- Misc -- + signal pwm_drive : std_logic_vector(2 downto 0); + signal pwm_driven : std_ulogic_vector(2 downto 0); + +begin + + -- On-Chip HF Oscillator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + HSOSC_inst : HSOSC + generic map ( + CLKHF_DIV => "0b01" -- 24 MHz + ) + port map ( + CLKHFPU => '1', + CLKHFEN => '1', + CLKHF => hf_osc_clk + ); + + + -- System PLL ----------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + system_pll_inst: system_pll + port map ( + ref_clk_i => hf_osc_clk, + rst_n_i => '1', + lock_o => pll_rstn, + outcore_o => open, + outglobal_o => pll_clk + ); + + cpu_clk <= std_ulogic(pll_clk); + cpu_rstn <= std_ulogic(pll_rstn); + + + -- The core of the problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + HW_THREAD_ID => 0, -- hardware thread id (32-bit) + INT_BOOTLOADER_EN => true, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => true, -- implement atomic extension? + CPU_EXTENSION_RISCV_C => true, -- implement compressed extension? + CPU_EXTENSION_RISCV_M => true, -- implement mul/div extension? + CPU_EXTENSION_RISCV_U => true, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zicsr => true, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + CPU_EXTENSION_RISCV_Zifencei => true, -- implement instruction stream sync.? + + -- Extension Options -- + CPU_CNT_WIDTH => 34, -- total width of CPU cycle and instret counters (0..64) + + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => true, -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => 64*1024, -- size of processor-internal instruction memory in bytes + + -- Internal Data memory -- + MEM_INT_DMEM_EN => true, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => 64*1024, -- size of processor-internal data memory in bytes + + -- Processor peripherals -- + IO_GPIO_EN => true, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true, -- implement machine system timer (MTIME)? + IO_UART0_EN => true, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_SPI_EN => true, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => true, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => 3, -- number of PWM channels to implement (0..60); 0 = disabled + IO_WDT_EN => true, -- implement watch dog timer (WDT)? + IO_TRNG_EN => true -- implement true random number generator (TRNG)? + ) + port map ( + -- Global control -- + clk_i => cpu_clk, -- global clock, rising edge + rstn_i => cpu_rstn, -- global reset, low-active, async + + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => con_gpio_o, -- parallel output + gpio_i => con_gpio_i, -- parallel input + + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart_txd_o, -- UART0 send data + uart0_rxd_i => uart_rxd_i, -- UART0 receive data + + -- SPI (available if IO_SPI_EN = true) -- + spi_sck_o => con_spi_sck, + spi_sdo_o => con_spi_sdo, + spi_sdi_i => con_spi_sdi, + spi_csn_o => con_spi_csn, + + -- TWI (available if IO_TWI_EN = true) -- + twi_sda_io => twi_sda_io, -- twi serial data line + twi_scl_io => twi_scl_io, -- twi serial clock line + + -- PWM (available if IO_PWM_EN = true) -- + pwm_o => con_pwm -- pwm channels + ); + + -- GPIO -- + con_gpio_i <= x"000000000000000" & gpio_i(3 downto 0); + gpio_o(3 downto 0) <= con_gpio_o(3 downto 0); + + -- SPI -- + flash_sck_o <= con_spi_sck; + flash_sdo_o <= con_spi_sdo; + flash_csn_o <= con_spi_csn(0); + spi_sck_o <= con_spi_sck; + spi_sdo_o <= con_spi_sdo; + spi_csn_o <= con_spi_csn(1); + con_spi_sdi <= flash_sdi_i when (con_spi_csn(0) = '0') else spi_sdi_i; + + -- RGB -- + pwm_drive(0) <= std_logic(con_pwm(0) or con_gpio_o(0)); -- bit 0: red - pwm channel 0 OR gpio_o(0) [status LED] + pwm_drive(1) <= std_logic(con_pwm(1)); -- bit 1: green - pwm channel 1 + pwm_drive(2) <= std_logic(con_pwm(2)); -- bit 2: blue - pwm channel 2 + + RGB_inst: RGB + generic map ( + CURRENT_MODE => "1", + RGB0_CURRENT => "0b000001", + RGB1_CURRENT => "0b000001", + RGB2_CURRENT => "0b000001" + ) + port map ( + CURREN => '1', -- I + RGBLEDEN => '1', -- I + RGB0PWM => pwm_drive(1), -- I - green + RGB1PWM => pwm_drive(2), -- I - blue + RGB2PWM => pwm_drive(0), -- I - red + RGB2 => pwm_driven(2), -- O - red + RGB1 => pwm_driven(1), -- O - blue + RGB0 => pwm_driven(0) -- O - green + ); + + pwm_o <= std_ulogic_vector(pwm_driven); + + +end neorv32_upduino_v3_top_rtl; diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/source/impl_1.xcf b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/source/impl_1.xcf new file mode 100644 index 0000000..bd737ab --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/source/impl_1.xcf @@ -0,0 +1,108 @@ + + + + + + SPI + + + 1 + Lattice + iCE40 UltraPlus + iCE40UP5K + All + + 8 + 11111111 + 1 + 0 + + ../../impl_1/neorv32_upduino_v3_impl_1.bin + 11/04/21 21:44:40 + External SPI Flash Memory (SPI FLASH) + Erase,Program,Verify + + + + + 1 + Lattice + iCE40 UltraPlus + iCE40UP5K + 0x11200639 + All + iCE40UP5K + + 8 + 11111111 + 1 + 0 + + Compressed Random Access Memory (CRAM) + Bypass + + + + + + 1 + WinBond + SPI Serial Flash + W25Q32 + 0x15 + 8-pin SOIC + Erase,Program,Verify + ../../impl_1/neorv32_upduino_v3_impl_1.bin + 0x00000000 + 0x003F0000 + 32 + 104156 + 1 + + + + + + 1 + + N:/Projects/neorv32/boards/UPduino_v3/impl_1/neorv32_upduino_v3_impl_1.bin + + + + + + + + + + + SEQUENTIAL + ENTIRED CHAIN + No Override + TLR + TLR + + + 1 + + + USB2 + FTUSB-1 + UPduino v3.0 Location 0002 Serial + + diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/rtl/system_pll.v b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/rtl/system_pll.v new file mode 100644 index 0000000..bb22353 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/rtl/system_pll.v @@ -0,0 +1,222 @@ + +/******************************************************************************* + Verilog netlist generated by IPGEN Lattice Radiant Software (64-bit) + 2.1.0.27.2 + Soft IP Version: 1.0.1 + Wed May 12 22:58:47 2021 +*******************************************************************************/ +/******************************************************************************* + Wrapper Module generated per user settings. +*******************************************************************************/ +module system_pll (ref_clk_i, + rst_n_i, + lock_o, + outcore_o, + outglobal_o) ; + input ref_clk_i ; + input rst_n_i ; + output lock_o ; + output outcore_o ; + output outglobal_o ; + system_pll_ipgen_lscc_pll #(.DIVR("0"), + .FILTER_RANGE("2"), + .FREQUENCY_PIN_REFERENCECLK("24.000000"), + .FEEDBACK_PATH("PHASE_AND_DELAY"), + .EXTERNAL_DIVIDE_FACTOR("NONE"), + .DIVF("0"), + .DELAY_ADJUSTMENT_MODE_FEEDBACK("FIXED"), + .FDA_FEEDBACK("0"), + .SHIFTREG_DIV_MODE("0"), + .PLLOUT_SELECT_PORTA("SHIFTREG_0deg"), + .PLLOUT_SELECT_PORTB("SHIFTREG_0deg"), + .DELAY_ADJUSTMENT_MODE_RELATIVE("FIXED"), + .FDA_RELATIVE("0"), + .DIVQ("3"), + .ENABLE_ICEGATE_PORTA("0"), + .ENABLE_ICEGATE_PORTB("0")) lscc_pll_inst (.ref_clk_i(ref_clk_i), + .rst_n_i(rst_n_i), + .feedback_i(1'b0), + .dynamic_delay_i({4'b0000, + 4'b0000}), + .bypass_i(1'b0), + .latch_i(1'b0), + .lock_o(lock_o), + .outcore_o(outcore_o), + .outglobal_o(outglobal_o), + .outcoreb_o(), + .outglobalb_o(), + .sclk_i(), + .sdi_i(), + .sdo_o()) ; +endmodule + + + +// ============================================================================= +// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// ----------------------------------------------------------------------------- +// Copyright (c) 2017 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ----------------------------------------------------------------------------- +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// ----------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// ----------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : +// File : lscc_pll.v +// Title : +// Dependencies : 1. PLL_B primitive +// Description : iCE40UP Phase-Locked Loop. +// ============================================================================= +// REVISION HISTORY +// Version : 1.0.0. +// Author(s) : +// Mod. Date : 04.20.2017 +// Changes Made : Initial release. +// ============================================================================= +module system_pll_ipgen_lscc_pll #(parameter DIVR = "1", + parameter DIVF = "1", + parameter DIVQ = "1", + parameter FEEDBACK_PATH = "SIMPLE", + parameter FILTER_RANGE = "0", + parameter DELAY_ADJUSTMENT_MODE_FEEDBACK = "FIXED", + parameter FDA_FEEDBACK = "0", + parameter DELAY_ADJUSTMENT_MODE_RELATIVE = "FIXED", + parameter FDA_RELATIVE = "0", + parameter SHIFTREG_DIV_MODE = "0", + parameter PLLOUT_SELECT_PORTA = "SHIFTREG_0deg", + parameter PLLOUT_SELECT_PORTB = "SHIFTREG_0deg", + parameter EXTERNAL_DIVIDE_FACTOR = "NONE", + parameter ENABLE_ICEGATE_PORTA = "0", + parameter ENABLE_ICEGATE_PORTB = "0", + parameter FREQUENCY_PIN_REFERENCECLK = "10.0") ( + // ----------------------------------------------------------------------------- + // Module Parameters + // ----------------------------------------------------------------------------- + // ----------------------------------------------------------------------------- + // Input/Output Ports + // ----------------------------------------------------------------------------- + input ref_clk_i, + input rst_n_i, + input feedback_i, + input [7:0] dynamic_delay_i, + input bypass_i, + input latch_i, + output wire lock_o, + output wire outcore_o, + output wire outglobal_o, + output wire outcoreb_o, + output wire outglobalb_o, + input sclk_i, + input sdi_i, + output wire sdo_o) ; + // ----------------------------------------------------------------------------- + // Wire Declarations + // ----------------------------------------------------------------------------- + wire [7:0] dynamic_delay_w ; + wire feedback_w ; + wire intfbout_w ; + // ----------------------------------------------------------------------------- + // Generate Assign Statements + // ----------------------------------------------------------------------------- + generate + if ((EXTERNAL_DIVIDE_FACTOR != "NONE")) + begin : genblk1 + assign feedback_w = feedback_i ; + end + else + begin : genblk1 + assign feedback_w = intfbout_w ; + end + endgenerate + generate + if ((DELAY_ADJUSTMENT_MODE_FEEDBACK == "FIXED")) + begin : genblk2 + assign dynamic_delay_w[3:0] = 4'b0 ; + end + else + begin : genblk2 + assign dynamic_delay_w[3:0] = dynamic_delay_i[3:0] ; + end + if ((DELAY_ADJUSTMENT_MODE_RELATIVE == "FIXED")) + begin : genblk3 + assign dynamic_delay_w[7:4] = 4'b0 ; + end + else + begin : genblk3 + assign dynamic_delay_w[7:4] = dynamic_delay_i[7:4] ; + end + endgenerate + // ----------------------------------------------------------------------------- + // PLL Primitive Instantiation + // ----------------------------------------------------------------------------- + PLL_B #(.DIVR(DIVR), + .DIVF(DIVF), + .DIVQ(DIVQ), + .FEEDBACK_PATH(FEEDBACK_PATH), + .FILTER_RANGE(FILTER_RANGE), + .DELAY_ADJUSTMENT_MODE_FEEDBACK(DELAY_ADJUSTMENT_MODE_FEEDBACK), + .FDA_FEEDBACK(FDA_FEEDBACK), + .DELAY_ADJUSTMENT_MODE_RELATIVE(DELAY_ADJUSTMENT_MODE_RELATIVE), + .FDA_RELATIVE(FDA_RELATIVE), + .SHIFTREG_DIV_MODE(SHIFTREG_DIV_MODE), + .PLLOUT_SELECT_PORTA(PLLOUT_SELECT_PORTA), + .PLLOUT_SELECT_PORTB(PLLOUT_SELECT_PORTB), + .EXTERNAL_DIVIDE_FACTOR(EXTERNAL_DIVIDE_FACTOR), + .ENABLE_ICEGATE_PORTA(ENABLE_ICEGATE_PORTA), + .ENABLE_ICEGATE_PORTB(ENABLE_ICEGATE_PORTB), + .FREQUENCY_PIN_REFERENCECLK(FREQUENCY_PIN_REFERENCECLK)) u_PLL_B (.REFERENCECLK(ref_clk_i), + .RESET_N(rst_n_i), + .FEEDBACK(feedback_w), + .DYNAMICDELAY7(dynamic_delay_w[7]), + .DYNAMICDELAY6(dynamic_delay_w[6]), + .DYNAMICDELAY5(dynamic_delay_w[5]), + .DYNAMICDELAY4(dynamic_delay_w[4]), + .DYNAMICDELAY3(dynamic_delay_w[3]), + .DYNAMICDELAY2(dynamic_delay_w[2]), + .DYNAMICDELAY1(dynamic_delay_w[1]), + .DYNAMICDELAY0(dynamic_delay_w[0]), + .INTFBOUT(intfbout_w), + .BYPASS(bypass_i), + .LATCH(latch_i), + .OUTCORE(outcore_o), + .OUTGLOBAL(outglobal_o), + .OUTCOREB(outcoreb_o), + .OUTGLOBALB(outglobalb_o), + .LOCK(lock_o), + .SCLK(sclk_i), + .SDI(sdi_i), + .SDO(sdo_o)) ; +endmodule + + diff --git a/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/system_pll.ipx b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/system_pll.ipx new file mode 100644 index 0000000..f0331a3 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/radiant/UPduino_v3/system_pll/system_pll.ipx @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Libs/RiscV/NEORV32/setups/vivado/README.md b/Libs/RiscV/NEORV32/setups/vivado/README.md new file mode 100644 index 0000000..6d4eae2 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/README.md @@ -0,0 +1,32 @@ +# NEORV32 Xilinx Vivado Example Setups + +## How To Run + +The `create_project.tcl` TCL script in the board subdirectories can be used for creating a complete Vivado project and for running the implementation. +If not already available, this script will create a `work` folder in those subdirectories. + +Note that you may need to install support for your particular development board through "XHub Stores" menu item within Vivado prior to sourcing the `create_project.tcl` script. + +### Batch mode + +Execute `vivado -mode batch -nojournal -nolog -source create_project.tcl` from the board subdir. +The project will be created and implementation will be run until generation of `work/neorv32_test_setup.runs/impl_1/neorv32_test_setup.bit`. + +### GUI + +1. start Vivado (in GUI mode) +2. click on "TCL Console" at the bottom +3. use the console to naviagte to the boards folder. For example: `cd .../neorv32/setups/vivado/arty-a7-test-setup` +4. execute `source create_project.tcl` - this will create the actual Vivado project in `work` +5. when the Vivado project has openend, Implementation will run and a bitstream will be generated. +6. maybe a prompt will notify about it. + +### Programming the Bitstream + +1. open the "Hardware Manager" (maybe a prompt will ask for that) +2. click on "Open target/Auto Connect" +3. click on "Program device" and select `work/neorv32_test_setup.runs/impl_1/neorv32_test_setup.bit`; click "Program" +4. use a serial terminal (like :earth_asia: [Tera Term](https://ttssh2.osdn.jp/index.html.en)) to connect to the USB-UART interface using the following configuration: +19200 Baud, 8 data bits, 1 stop bit, no parity bits, no transmission / flow control protocol (raw bytes only), newline on `\r\n` (carriage return & newline) +5. now you can communicate with the bootloader console and upload a new program. Check out the [example programs](https://github.com/stnolting/neorv32/tree/master/sw/example) +and see section "Let's Get It Started" of the :page_facing_up: [NEORV32 data sheet](https://raw.githubusercontent.com/stnolting/neorv32/master/docs/NEORV32.pdf) for further resources. diff --git a/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/.gitignore b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/.gitignore new file mode 100644 index 0000000..97d1942 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/.gitignore @@ -0,0 +1,3 @@ +/vivado* +/.Xil +/work/* diff --git a/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/README.md b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/README.md new file mode 100644 index 0000000..f241c32 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/README.md @@ -0,0 +1,29 @@ +# NEORV32 Test Setup for the Digilent Arty A7-35 FPGA Board + +This setup provides a very simple script-based "demo setup" that allows to check out the NEORV32 processor on the Digilent Arty A7-35 board. +It uses the simplified [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) top entity, which is a wrapper for the actual processor +top entity that provides a minimalistic interface (clock, reset, UART and 4 LEDs). + +* FPGA Board: :books: [Digilent Arty A7-35 FPGA Board](https://reference.digilentinc.com/reference/programmable-logic/arty-a7/reference-manual) +* FPGA: Xilinx Artix-7 `XC7A35TICSG324-1L` +* Toolchain: Xilinx Vivado (tested with Vivado 2019.2) + + +## NEORV32 Configuration + +:information_source: See the top entity [`rtl/test_setups/neorv32_test_setup_bootloader.vhd` ](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) for +configuration and entity details and [`arty_a7_35_test_setup.xdc`](https://github.com/stnolting/neorv32/blob/master/boards/arty-a7-35-test-setup/arty_a7_35_test_setup.xdc) +for the according FPGA pin mapping. + +* CPU: `rv32imcu_Zicsr` + 4 `HPM` (hardware performance monitors) +* Memory: 16kB instruction memory (internal IMEM), 8kB data memory (internal DMEM), bootloader ROM +* Peripherals: `GPIO`, `MTIME`, `UART0`, `WDT` +* Tested with version [`1.5.3.3`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +* Clock: 100MHz from on-board oscillator +* Reset: Via dedicated on-board "RESET" button +* GPIO output port `gpio_o` + * bits 0..3 are connected to the green on-board LEDs (LD4 - LD7); LD4 is the bootloader status LED + * bits 4..7 are (not actually used) connected to PMOD `JA` connector pins 1-4 +* UART0 signals `uart0_txd_o` and `uart0_rxd_i` are connected to the on-board USB-UART chip + + diff --git a/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/arty_a7_test_setup.xdc b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/arty_a7_test_setup.xdc new file mode 100644 index 0000000..23a9757 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/arty_a7_test_setup.xdc @@ -0,0 +1,26 @@ +## This file is a general .xdc for the Arty A7-35 Rev. D + +## For default neorv32_test_setup.vhd top entity + +## Clock signal +set_property -dict { PACKAGE_PIN E3 IOSTANDARD LVCMOS33 } [get_ports { clk_i }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100] +create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { clk_i }]; + +## LEDs +set_property -dict { PACKAGE_PIN H5 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[0] }]; #IO_L24N_T3_35 Sch=led[4] +set_property -dict { PACKAGE_PIN J5 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[1] }]; #IO_25_35 Sch=led[5] +set_property -dict { PACKAGE_PIN T9 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[2] }]; #IO_L24P_T3_A01_D17_14 Sch=led[6] +set_property -dict { PACKAGE_PIN T10 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[3] }]; #IO_L24N_T3_A00_D16_14 Sch=led[7] + +## Pmod Header JA (unused GPIO outputs) +set_property -dict { PACKAGE_PIN G13 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[4] }]; #IO_0_15 Sch=ja[1] +set_property -dict { PACKAGE_PIN B11 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[5] }]; #IO_L4P_T0_15 Sch=ja[2] +set_property -dict { PACKAGE_PIN A11 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[6] }]; #IO_L4N_T0_15 Sch=ja[3] +set_property -dict { PACKAGE_PIN D12 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[7] }]; #IO_L6P_T0_15 Sch=ja[4] + +## USB-UART Interface +set_property -dict { PACKAGE_PIN D10 IOSTANDARD LVCMOS33 } [get_ports { uart0_txd_o }]; #IO_L19N_T3_VREF_16 Sch=uart_rxd_out +set_property -dict { PACKAGE_PIN A9 IOSTANDARD LVCMOS33 } [get_ports { uart0_rxd_i }]; #IO_L14N_T2_SRCC_16 Sch=uart_txd_in + +## Misc. +set_property -dict { PACKAGE_PIN C2 IOSTANDARD LVCMOS33 } [get_ports { rstn_i }]; #IO_L16P_T2_35 Sch=ck_rst diff --git a/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/create_project.tcl b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/create_project.tcl new file mode 100644 index 0000000..8b8cbb0 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/arty-a7-test-setup/create_project.tcl @@ -0,0 +1,57 @@ +set board "arty-a7-35" + +# Create and clear output directory +set outputdir work +file mkdir $outputdir + +set files [glob -nocomplain "$outputdir/*"] +if {[llength $files] != 0} { + puts "deleting contents of $outputdir" + file delete -force {*}[glob -directory $outputdir *]; # clear folder contents +} else { + puts "$outputdir is empty" +} + +switch $board { + "arty-a7-35" { + set a7part "xc7a35ticsg324-1L" + set a7prj ${board}-test-setup + } +} + +# Create project +create_project -part $a7part $a7prj $outputdir + +set_property board_part digilentinc.com:${board}:part0:1.0 [current_project] +set_property target_language VHDL [current_project] + +# Define filesets + +## Core: NEORV32 +add_files [glob ./../../../rtl/core/*.vhd] ./../../../rtl/core/mem/neorv32_dmem.default.vhd ./../../../rtl/core/mem/neorv32_imem.default.vhd +set_property library neorv32 [get_files [glob ./../../../rtl/core/*.vhd]] +set_property library neorv32 [get_files [glob ./../../../rtl/core/mem/neorv32_*mem.default.vhd]] + +## Design: processor subsystem template, and (optionally) BoardTop and/or other additional sources +set fileset_design ./../../../rtl/test_setups/neorv32_test_setup_bootloader.vhd + +## Constraints +set fileset_constraints [glob ./*.xdc] + +## Simulation-only sources +set fileset_sim [list ./../../../sim/simple/neorv32_tb.simple.vhd ./../../../sim/simple/uart_rx.simple.vhd] + +# Add source files + +## Design +add_files $fileset_design + +## Constraints +add_files -fileset constrs_1 $fileset_constraints + +## Simulation-only +add_files -fileset sim_1 $fileset_sim + +# Run synthesis, implementation and bitstream generation +launch_runs impl_1 -to_step write_bitstream -jobs 4 +wait_on_run impl_1 diff --git a/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/.gitignore b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/.gitignore new file mode 100644 index 0000000..97d1942 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/.gitignore @@ -0,0 +1,3 @@ +/vivado* +/.Xil +/work/* diff --git a/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/README.md b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/README.md new file mode 100644 index 0000000..b41dc10 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/README.md @@ -0,0 +1,29 @@ +# NEORV32 Test Setup for the Digilent Nexys A7 and Nexys 4 DDR FPGA Boards + +This setup provides a very simple script-based "demo setup" that allows to check out the NEORV32 processor on the Digilent Nexys A7 and Nexys 4 DDR boards. +It uses the simplified [`neorv32_test_setup_bootloader.vhd`](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) top entity, which is a wrapper for the actual processor +top entity that provides a minimalistic interface (clock, reset, UART and 4 LEDs). + +* FPGA Boards: + * :books: [Digilent Nexys A7 FPGA Boards](https://reference.digilentinc.com/reference/programmable-logic/nexys-a7/reference-manual) + * :books: [Digilent Nexys 4 DDR FPGA Board](https://reference.digilentinc.com/reference/programmable-logic/nexys-4-ddr/reference-manual) +* FPGAs: + * Xilinx Artix-7 `XC7A50TCSG324-1` + * Xilinx Artix-7 `XC7A100TCSG324-1` +* Toolchain: Xilinx Vivado (tested with Vivado 2020.2) + + +## NEORV32 Configuration + +:information_source: See the top entity [`rtl/test_setups/neorv32_test_setup_bootloader.vhd` ](https://github.com/stnolting/neorv32/blob/master/rtl/test_setups/neorv32_test_setup_bootloader.vhd) for +configuration and entity details and [`nexys_a7_test_setup.xdc`](https://github.com/AWenzel83/neorv32/blob/nexys_a7_example/boards/nexys-a7-test-setup/nexys_a7_test_setup.xdc) +for the according FPGA pin mapping. + +* CPU: `rv32imcu_Zicsr` + 4 `HPM` (hardware performance monitors) +* Memory: 16kB instruction memory (internal IMEM), 8kB data memory (internal DMEM), bootloader ROM +* Peripherals: `GPIO`, `MTIME`, `UART0`, `WDT` +* Tested with version [`1.5.3.3`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +* Clock: 100MHz from on-board oscillator +* Reset: Via dedicated on-board "RESET" button +* GPIO output port `gpio_o` bits 0..7 are connected to the green on-board LEDs (LD0 - LD7); LD0 is the bootloader status LED +* UART0 signals `uart0_txd_o` and `uart0_rxd_i` are connected to the on-board USB-UART chip diff --git a/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/create_project.tcl b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/create_project.tcl new file mode 100644 index 0000000..6b4f615 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/create_project.tcl @@ -0,0 +1,45 @@ +set board "A7-50" + +# create and clear output directory +set outputdir work +file mkdir $outputdir + +set files [glob -nocomplain "$outputdir/*"] +if {[llength $files] != 0} { + puts "deleting contents of $outputdir" + file delete -force {*}[glob -directory $outputdir *]; # clear folder contents +} else { + puts "$outputdir is empty" +} + +switch $board { + "A7-50" { + set a7part "xc7a50tcsg324-1" + set a7prj "nexys-a7-50-test-setup" + } + "A7-100" { + set a7part "xc7a100tcsg324-1" + set a7prj "nexys-a7-100-test-setup" + } +} + +# create project +create_project -part $a7part $a7prj $outputdir + +# add source files: core sources +add_files [glob ./../../../rtl/core/*.vhd] ./../../../rtl/core/mem/neorv32_dmem.default.vhd ./../../../rtl/core/mem/neorv32_imem.default.vhd +set_property library neorv32 [get_files [glob ./../../../rtl/core/*.vhd]] +set_property library neorv32 [get_files [glob ./../../../rtl/core/mem/neorv32_*mem.default.vhd]] + +# add source file: top entity +add_files [glob ./../../../rtl/test_setups/neorv32_test_setup_bootloader.vhd] + +# add source files: simulation-only +add_files -fileset sim_1 [list ./../../../sim/simple/neorv32_tb.simple.vhd ./../../../sim/simple/uart_rx.simple.vhd] + +# add source files: constraints +add_files -fileset constrs_1 [glob ./*.xdc] + +# run synthesis, implementation and bitstream generation +launch_runs impl_1 -to_step write_bitstream -jobs 4 +wait_on_run impl_1 diff --git a/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/nexys_a7_test_setup.xdc b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/nexys_a7_test_setup.xdc new file mode 100644 index 0000000..c171bc4 --- /dev/null +++ b/Libs/RiscV/NEORV32/setups/vivado/nexys-a7-test-setup/nexys_a7_test_setup.xdc @@ -0,0 +1,23 @@ +## This file is a general .xdc for the Nexys A7 and Nexys 4 DDR +## For default neorv32_test_setup.vhd top entity + +## Clock signal +set_property -dict { PACKAGE_PIN E3 IOSTANDARD LVCMOS33 } [get_ports { clk_i }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100] +create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { clk_i }]; + +## LEDs +set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[0] }]; #IO_L18P_T2_A24_15 Sch=led[0] +set_property -dict { PACKAGE_PIN K15 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[1] }]; #IO_L24P_T3_RS1_15 Sch=led[1] +set_property -dict { PACKAGE_PIN J13 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[2] }]; #IO_L17N_T2_A25_15 Sch=led[2] +set_property -dict { PACKAGE_PIN N14 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[3] }]; #IO_L8P_T1_D11_14 Sch=led[3] +set_property -dict { PACKAGE_PIN R18 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[4] }]; #IO_L7P_T1_D09_14 Sch=led[4] +set_property -dict { PACKAGE_PIN V17 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[5] }]; #IO_L18N_T2_A11_D27_14 Sch=led[5] +set_property -dict { PACKAGE_PIN U17 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[6] }]; #IO_L17P_T2_A14_D30_14 Sch=led[6] +set_property -dict { PACKAGE_PIN U16 IOSTANDARD LVCMOS33 } [get_ports { gpio_o[7] }]; #IO_L18P_T2_A12_D28_14 Sch=led[7] + +## USB-UART Interface +set_property -dict { PACKAGE_PIN D4 IOSTANDARD LVCMOS33 } [get_ports { uart0_txd_o }]; #IO_L11N_T1_SRCC_35 Sch=uart_rxd_out +set_property -dict { PACKAGE_PIN C4 IOSTANDARD LVCMOS33 } [get_ports { uart0_rxd_i }]; #IO_L7P_T1_AD6P_35 Sch=uart_txd_in + +## Misc. +set_property -dict { PACKAGE_PIN C12 IOSTANDARD LVCMOS33 } [get_ports { rstn_i }]; #IO_L3P_T0_DQS_AD1P_15 Sch=ck_rst diff --git a/Libs/RiscV/NEORV32/sw/README.md b/Libs/RiscV/NEORV32/sw/README.md new file mode 100644 index 0000000..aebeab4 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/README.md @@ -0,0 +1,55 @@ +# NEORV32 Software Framework + +This folder provides the core of the NEORV32 software framework. +This is a short description of the main folders. + + +## [bootloader](bootloader) + +Source(s) of the default NEORV32 bootloader. +A pre-built image is already installed into the rtl design via the `rtl/core/neorv32_bootloader_image.vhd` file. + + +## [common](common) + +NEORV32-specific common files for all bootloader and application programs: +linker script for executable generation and processor start-up code. + + +## [example](example) + +Several example programs for testing and for getting started. + + +## [image_gen](image_gen) + +This folder contains a simple program that is used to create NEORV32 executables (for upload via bootloader) and VHDL +memory initialization files (for memory-persistent applications and for the bootloader). +This program is automatically compiled using the native GCC when invoking one of the application compilation makefiles. + + +## [isa-test](isa-test) + +NEORV32 RISC-V Architecture Test Framework. +See [sim/README](../sim/README.md). + + +## [lib](lib) + +Core libraries (sources and header files) and helper functions for using the processor peripherals and the CPU itself. + + +## [ocd-firmware](ocd-firmware) + +Firmware (debugger "park loop") for the on-chip debugger. This folder is just for documenting the source code. +Modifying the sources is not recommended as this could break the on-chip debugger. + + +## [openocd](openocd) + +Configuration file for openOCD to connect to the NEORV32 on-chip debugger via JTAG. + + +## [svd](svd) + +Contains a CMSIS-SVD compatible system view description file including _all_ peripherals. diff --git a/Libs/RiscV/NEORV32/sw/bootloader/makefile b/Libs/RiscV/NEORV32/sw/bootloader/makefile new file mode 100644 index 0000000..b34ab61 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/bootloader/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/common/common.mk b/Libs/RiscV/NEORV32/sw/common/common.mk new file mode 100644 index 0000000..074a92f --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/common/common.mk @@ -0,0 +1,368 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# ----------------------------------------------------------------------------- +# USER CONFIGURATION +# ----------------------------------------------------------------------------- +# User's application sources (*.c, *.cpp, *.s, *.S); add additional files here +APP_SRC ?= $(wildcard ./*.c) $(wildcard ./*.s) $(wildcard ./*.cpp) $(wildcard ./*.S) + +# User's application include folders (don't forget the '-I' before each entry) +APP_INC ?= -I . +# User's application include folders - for assembly files only (don't forget the '-I' before each entry) +ASM_INC ?= -I . + +# Optimization +EFFORT ?= -Os + +# Compiler toolchain +RISCV_PREFIX ?= riscv32-unknown-elf- + +# CPU architecture and ABI +MARCH ?= rv32i +MABI ?= ilp32 + +# User flags for additional configuration (will be added to compiler flags) +USER_FLAGS ?= + +# Relative or absolute path to the NEORV32 home folder +NEORV32_HOME ?= ../../.. +NEORV32_LOCAL_RTL ?= $(NEORV32_HOME)/rtl + +# ----------------------------------------------------------------------------- +# NEORV32 framework +# ----------------------------------------------------------------------------- +# Path to NEORV32 linker script and startup file +NEORV32_COM_PATH = $(NEORV32_HOME)/sw/common +# Path to main NEORV32 library include files +NEORV32_INC_PATH = $(NEORV32_HOME)/sw/lib/include +# Path to main NEORV32 library source files +NEORV32_SRC_PATH = $(NEORV32_HOME)/sw/lib/source +# Path to NEORV32 executable generator +NEORV32_EXG_PATH = $(NEORV32_HOME)/sw/image_gen +# Path to NEORV32 core rtl folder +NEORV32_RTL_PATH = $(NEORV32_LOCAL_RTL)/core +# Path to NEORV32 sim folder +NEORV32_SIM_PATH = $(NEORV32_HOME)/sim +# Marker file to check for NEORV32 home folder +NEORV32_HOME_MARKER = $(NEORV32_INC_PATH)/neorv32.h + +# Core libraries (peripheral and CPU drivers) +CORE_SRC = $(wildcard $(NEORV32_SRC_PATH)/*.c) +# Application start-up code +CORE_SRC += $(NEORV32_COM_PATH)/crt0.S + +# Linker script +LD_SCRIPT = $(NEORV32_COM_PATH)/neorv32.ld + +# Main output files +APP_EXE = neorv32_exe.bin +APP_HEX = neorv32_exe.hex +APP_ASM = main.asm +APP_IMG = neorv32_application_image.vhd +BOOT_IMG = neorv32_bootloader_image.vhd + + +# ----------------------------------------------------------------------------- +# Sources and objects +# ----------------------------------------------------------------------------- +# Define all sources +SRC = $(APP_SRC) +SRC += $(CORE_SRC) + +# Define all object files +OBJ = $(SRC:%=%.o) + + +# ----------------------------------------------------------------------------- +# Tools and flags +# ----------------------------------------------------------------------------- +# Compiler tools +CC = $(RISCV_PREFIX)gcc +OBJDUMP = $(RISCV_PREFIX)objdump +OBJCOPY = $(RISCV_PREFIX)objcopy +SIZE = $(RISCV_PREFIX)size + +# Host native compiler +CC_X86 = g++ -Wall -O -g + +# NEORV32 executable image generator +IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen + +# Compiler & linker flags +CC_OPTS = -march=$(MARCH) -mabi=$(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles -mno-fdiv +CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc +# This accelerates instruction fetch after branches when C extension is enabled (irrelevant when C extension is disabled) +CC_OPTS += -falign-functions=4 -falign-labels=4 -falign-loops=4 -falign-jumps=4 +CC_OPTS += $(USER_FLAGS) + + +# ----------------------------------------------------------------------------- +# Application output definitions +# ----------------------------------------------------------------------------- +.PHONY: check info help elf_info clean clean_all bootloader +.DEFAULT_GOAL := help + +# 'compile' is still here for compatibility +exe: $(APP_ASM) $(APP_EXE) +hex: $(APP_ASM) $(APP_HEX) +compile: $(APP_ASM) $(APP_EXE) +image: $(APP_ASM) $(APP_IMG) +install: image install-$(APP_IMG) +all: $(APP_ASM) $(APP_EXE) $(APP_IMG) $(APP_HEX) install + +# Check if making bootloader +# Use different base address and length for instruction memory/"rom" (BOOTROM instead of IMEM) +# Also define "make_bootloader" symbol for crt0.S +target bootloader: CC_OPTS += -Wl,--defsym=make_bootloader=1 -Dmake_bootloader +target bl_image: CC_OPTS += -Wl,--defsym=make_bootloader=1 -Dmake_bootloader + + +# ----------------------------------------------------------------------------- +# Image generator targets +# ----------------------------------------------------------------------------- +# install/compile tools +$(IMAGE_GEN): $(NEORV32_EXG_PATH)/image_gen.c + @echo Compiling $(IMAGE_GEN) + @$(CC_X86) $< -o $(IMAGE_GEN) + + +# ----------------------------------------------------------------------------- +# General targets: Assemble, compile, link, dump +# ----------------------------------------------------------------------------- +# Compile app *.s sources (assembly) +%.s.o: %.s + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(ASM_INC) $< -o $@ + +# Compile app *.S sources (assembly + C pre-processor) +%.S.o: %.S + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(ASM_INC) $< -o $@ + +# Compile app *.c sources +%.c.o: %.c + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) $< -o $@ + +# Compile app *.cpp sources +%.cpp.o: %.cpp + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) $< -o $@ + +# Link object files and show memory utilization +main.elf: $(OBJ) + @$(CC) $(CC_OPTS) -T $(LD_SCRIPT) $(OBJ) -o $@ -lm + @echo "Memory utilization:" + @$(SIZE) main.elf + +# Assembly listing file (for debugging) +$(APP_ASM): main.elf + @$(OBJDUMP) -d -S -z $< > $@ + +# Generate final executable from .text + .rodata + .data (in THIS order!) +main.bin: main.elf $(APP_ASM) + @$(OBJCOPY) -I elf32-little $< -j .text -O binary text.bin + @$(OBJCOPY) -I elf32-little $< -j .rodata -O binary rodata.bin + @$(OBJCOPY) -I elf32-little $< -j .data -O binary data.bin + @cat text.bin rodata.bin data.bin > $@ + @rm -f text.bin rodata.bin data.bin + + +# ----------------------------------------------------------------------------- +# Application targets: Generate binary executable, install (as VHDL file) +# ----------------------------------------------------------------------------- +# Generate NEORV32 executable image for upload via bootloader +$(APP_EXE): main.bin $(IMAGE_GEN) + @set -e + @$(IMAGE_GEN) -app_bin $< $@ $(shell basename $(CURDIR)) + @echo "Executable ($(APP_EXE)) size in bytes:" + @wc -c < $(APP_EXE) + +# Generate NEORV32 executable VHDL boot image +$(APP_IMG): main.bin $(IMAGE_GEN) + @set -e + @$(IMAGE_GEN) -app_img $< $@ $(shell basename $(CURDIR)) + +install-$(APP_IMG): $(APP_IMG) + @set -e + @echo "Installing application image to $(NEORV32_RTL_PATH)/$(APP_IMG)" + @cp $(APP_IMG) $(NEORV32_RTL_PATH)/. + +# Generate NEORV32 executable image in plain hex format +$(APP_HEX): main.bin $(IMAGE_GEN) + @set -e + @$(IMAGE_GEN) -app_hex $< $@ $(shell basename $(CURDIR)) + + +# ----------------------------------------------------------------------------- +# Bootloader targets +# ----------------------------------------------------------------------------- +# Create and install bootloader VHDL init image +$(BOOT_IMG): main.bin $(IMAGE_GEN) + @set -e + @$(IMAGE_GEN) -bld_img $< $(BOOT_IMG) $(shell basename $(CURDIR)) + +install-$(BOOT_IMG): $(BOOT_IMG) + @set -e + @echo "Installing bootloader image to $(NEORV32_RTL_PATH)/$(BOOT_IMG)" + @cp $(BOOT_IMG) $(NEORV32_RTL_PATH)/. + +# Just an alias +bl_image: $(BOOT_IMG) +bootloader: bl_image install-$(BOOT_IMG) + + +# ----------------------------------------------------------------------------- +# Check toolchain +# ----------------------------------------------------------------------------- +check: $(IMAGE_GEN) + @echo "---------------- Check: NEORV32_HOME folder ----------------" +ifneq ($(shell [ -e $(NEORV32_HOME_MARKER) ] && echo 1 || echo 0 ), 1) +$(error NEORV32_HOME folder not found!) +endif + @echo "NEORV32_HOME: $(NEORV32_HOME)" + @echo "---------------- Check: $(CC) ----------------" + @$(CC) -v + @echo "---------------- Check: $(OBJDUMP) ----------------" + @$(OBJDUMP) -V + @echo "---------------- Check: $(OBJCOPY) ----------------" + @$(OBJCOPY) -V + @echo "---------------- Check: $(SIZE) ----------------" + @$(SIZE) -V + @echo "---------------- Check: NEORV32 image_gen ----------------" + @$(IMAGE_GEN) -help + @echo "---------------- Check: Native GCC ----------------" + @$(CC_X86) -v + @echo + @echo "Toolchain check OK" + + +# ----------------------------------------------------------------------------- +# Show configuration +# ----------------------------------------------------------------------------- +info: + @echo "---------------- Info: Project ----------------" + @echo "Project folder: $(shell basename $(CURDIR))" + @echo "Source files: $(APP_SRC)" + @echo "Include folder(s): $(APP_INC)" + @echo "ASM include folder(s): $(ASM_INC)" + @echo "---------------- Info: NEORV32 ----------------" + @echo "NEORV32 home folder (NEORV32_HOME): $(NEORV32_HOME)" + @echo "IMAGE_GEN: $(IMAGE_GEN)" + @echo "Core source files:" + @echo "$(CORE_SRC)" + @echo "Core include folder:" + @echo "$(NEORV32_INC_PATH)" + @echo "---------------- Info: Objects ----------------" + @echo "Project object files:" + @echo "$(OBJ)" + @echo "---------------- Info: RISC-V CPU ----------------" + @echo "MARCH: $(MARCH)" + @echo "MABI: $(MABI)" + @echo "---------------- Info: Toolchain ----------------" + @echo "Toolchain: $(RISCV_TOLLCHAIN)" + @echo "CC: $(CC)" + @echo "OBJDUMP: $(OBJDUMP)" + @echo "OBJCOPY: $(OBJCOPY)" + @echo "SIZE: $(SIZE)" + @echo "---------------- Info: Compiler Configuration ----------------" + @$(CC) -v + @echo "---------------- Info: Compiler Libraries ----------------" + @echo "LIBGCC:" + @$(CC) -print-libgcc-file-name + @echo "SEARCH-DIRS:" + @$(CC) -print-search-dirs + @echo "---------------- Info: Flags ----------------" + @echo "USER_FLAGS: $(USER_FLAGS)" + @echo "CC_OPTS: $(CC_OPTS)" + @echo "---------------- Info: Host Native GCC Flags ----------------" + @echo "CC_X86: $(CC_X86)" + + +# ----------------------------------------------------------------------------- +# In-console simulation using default/simple testbench and GHDL +# ----------------------------------------------------------------------------- +sim: $(APP_IMG) install + @echo "Simulating $(APP_IMG)..." + @sh $(NEORV32_SIM_PATH)/simple/ghdl.sh + +# ----------------------------------------------------------------------------- +# Show final ELF details (just for debugging) +# ----------------------------------------------------------------------------- +elf_info: main.elf + @$(OBJDUMP) -x main.elf + + +# ----------------------------------------------------------------------------- +# Help +# ----------------------------------------------------------------------------- +help: + @echo "<<< NEORV32 SW Application Makefile >>>" + @echo "Make sure to add the bin folder of RISC-V GCC to your PATH variable." + @echo "" + @echo "== Targets ==" + @echo " help - show this text" + @echo " check - check toolchain" + @echo " info - show makefile/toolchain configuration" + @echo " exe - compile and generate executable for upload via bootloader" + @echo " hex - compile and generate executable raw file" + @echo " image - compile and generate VHDL IMEM boot image (for application) in local folder" + @echo " install - compile, generate and install VHDL IMEM boot image (for application)" + @echo " sim - in-console simulation using default/simple testbench and GHDL" + @echo " all - exe + hex + install" + @echo " elf_info - show ELF layout info" + @echo " clean - clean up project" + @echo " clean_all - clean up project, core libraries and image generator" + @echo " bl_image - compile and generate VHDL BOOTROM boot image (for bootloader only!) in local folder" + @echo " bootloader - compile, generate and install VHDL BOOTROM boot image (for bootloader only!)" + @echo "" + @echo "== Variables ==" + @echo " USER_FLAGS - Custom toolchain flags [append only], default \"$(USER_FLAGS)\"" + @echo " EFFORT - Optimization level, default \"$(EFFORT)\"" + @echo " MARCH - Machine architecture, default \"$(MARCH)\"" + @echo " MABI - Machine binary interface, default \"$(MABI)\"" + @echo " APP_INC - C include folder(s) [append only], default \"$(APP_INC)\"" + @echo " ASM_INC - ASM include folder(s) [append only], default \"$(ASM_INC)\"" + @echo " RISCV_PREFIX - Toolchain prefix, default \"$(RISCV_PREFIX)\"" + @echo " NEORV32_HOME - NEORV32 home folder, default \"$(NEORV32_HOME)\"" + @echo "" + + +# ----------------------------------------------------------------------------- +# Clean up +# ----------------------------------------------------------------------------- +clean: + @rm -f *.elf *.o *.bin *.out *.asm *.vhd *.hex + +clean_all: clean + @rm -f $(OBJ) $(IMAGE_GEN) diff --git a/Libs/RiscV/NEORV32/sw/common/crt0.S b/Libs/RiscV/NEORV32/sw/common/crt0.S new file mode 100644 index 0000000..1c65664 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/common/crt0.S @@ -0,0 +1,261 @@ +/* ################################################################################################# */ +/* # << NEORV32 - crt0.S - Start-Up Code >> # */ +/* # ********************************************************************************************* # */ +/* # BSD 3-Clause License # */ +/* # # */ +/* # Copyright (c) 2021, Stephan Nolting. All rights reserved. # */ +/* # # */ +/* # Redistribution and use in source and binary forms, with or without modification, are # */ +/* # permitted provided that the following conditions are met: # */ +/* # # */ +/* # 1. Redistributions of source code must retain the above copyright notice, this list of # */ +/* # conditions and the following disclaimer. # */ +/* # # */ +/* # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # */ +/* # conditions and the following disclaimer in the documentation and/or other materials # */ +/* # provided with the distribution. # */ +/* # # */ +/* # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # */ +/* # endorse or promote products derived from this software without specific prior written # */ +/* # permission. # */ +/* # # */ +/* # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # */ +/* # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # */ +/* # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # */ +/* # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # */ +/* # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # */ +/* # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # */ +/* # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # */ +/* # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # */ +/* # OF THE POSSIBILITY OF SUCH DAMAGE. # */ +/* # ********************************************************************************************* # */ +/* # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # */ +/* ################################################################################################# */ + +.file "crt0.S" +.section .text.boot +.balign 4 +.global _start + + +_start: +.cfi_startproc +.cfi_undefined ra + + +// ************************************************************************************************ +// This is the very first instruction that is executed after hardware reset. It ensures that x0 is +// written at least once - the CPU HW will ensure it is always set to zero on any write access. +// ************************************************************************************************ + lui zero, 0 // "dummy" instruction that uses no reg-file input operands at all + + +// ************************************************************************************************ +// Setup pointers using linker script symbols +// ************************************************************************************************ +__crt0_pointer_init: + .option push + .option norelax + + la sp, __crt0_stack_begin // stack pointer + la gp, __global_pointer$ // global pointer + + .option pop + + +// ************************************************************************************************ +// Setup CPU core CSRs (some of them DO NOT have a dedicated +// reset and need to be explicitly initialized) +// ************************************************************************************************ +__crt0_cpu_csr_init: + + la x10, __crt0_dummy_trap_handler // configure early trap handler + csrw mtvec, x10 + csrw mepc, x10 // just to init mepc + + csrw mstatus, zero // disable global IRQ + + csrw mie, zero // absolutely no interrupts sources, thanks + + csrw mcounteren, zero // no access from less-privileged modes to counter CSRs + + li x11, ~5 // stop all counters except for [m]cycle[h] and [m]instret[h] + csrw 0x320, x11 // = mcountinhibit (literal address for lagacy toolchain compatibility) + + csrw mcycle, zero // reset cycle counters + csrw mcycleh, zero + csrw minstret, zero // reset instruction counters + csrw minstreth, zero + + +// ************************************************************************************************ +// Initialize integer register file (lower half) +// ************************************************************************************************ +__crt0_reg_file_clear: +//addi x0, x0, 0 // hardwired to zero + addi x1, x0, 0 +//addi x2, x0, 0 // stack pointer sp +//addi x3, x0, 0 // global pointer gp + addi x4, x0, 0 + addi x5, x0, 0 + addi x6, x0, 0 + addi x7, x0, 0 +//addi x8, x0, 0 // implicitly initialized within crt0 +//addi x9, x0, 0 // implicitly initialized within crt0 +//addi x10, x0, 0 // implicitly initialized within crt0 +//addi x11, x0, 0 // implicitly initialized within crt0 +//addi x12, x0, 0 // implicitly initialized within crt0 +//addi x13, x0, 0 // implicitly initialized within crt0 + addi x14, x0, 0 + addi x15, x0, 0 + + +// ************************************************************************************************ +// Initialize integer register file (upper half, if no E extension) +// ************************************************************************************************ +#ifndef __riscv_32e +// do not do this if compiling bootloader (to save some program space) +#ifndef make_bootloader + addi x16, x0, 0 + addi x17, x0, 0 + addi x18, x0, 0 + addi x19, x0, 0 + addi x20, x0, 0 + addi x21, x0, 0 + addi x22, x0, 0 + addi x23, x0, 0 + addi x24, x0, 0 + addi x25, x0, 0 + addi x26, x0, 0 + addi x27, x0, 0 + addi x28, x0, 0 + addi x29, x0, 0 + addi x30, x0, 0 + addi x31, x0, 0 +#endif +#endif + + +// ************************************************************************************************ +// Reset/deactivate IO/peripheral devices +// Devices, that are not implemented, will cause a store bus access fault +// which is captured (but actually ignored) by the dummy trap handler. +// ************************************************************************************************ +__crt0_reset_io: + la x8, __ctr0_io_space_begin // start of processor-internal IO region + la x9, __ctr0_io_space_end // end of processor-internal IO region + +__crt0_reset_io_loop: + sw zero, 0(x8) + addi x8, x8, 4 + bne x8, x9, __crt0_reset_io_loop + + +// ************************************************************************************************ +// Clear .bss section (byte-wise) using linker script symbols +// ************************************************************************************************ +__crt0_clear_bss: + la x11, __crt0_bss_start + la x12, __crt0_bss_end + +__crt0_clear_bss_loop: + bge x11, x12, __crt0_clear_bss_loop_end + sb zero, 0(x11) + addi x11, x11, 1 + j __crt0_clear_bss_loop + +__crt0_clear_bss_loop_end: + + +// ************************************************************************************************ +// Copy initialized .data section from ROM to RAM (byte-wise) using linker script symbols +// ************************************************************************************************ +__crt0_copy_data: + la x11, __crt0_copy_data_src_begin // start of data area (copy source) + la x12, __crt0_copy_data_dst_begin // start of data area (copy destination) + la x13, __crt0_copy_data_dst_end // last address of destination data area + +__crt0_copy_data_loop: + bge x12, x13, __crt0_copy_data_loop_end + lb x14, 0(x11) + sb x14, 0(x12) + addi x11, x11, 1 + addi x12, x12, 1 + j __crt0_copy_data_loop + +__crt0_copy_data_loop_end: + + +// ************************************************************************************************ +// Setup arguments and call main function +// ************************************************************************************************ +__crt0_main_entry: + addi x10, zero, 0 // a0 = argc = 0 + addi x11, zero, 0 // a1 = argv = 0 + jal ra, main // call actual app's main function, this "should" not return + + +// ************************************************************************************************ +// call "after main" handler (if there is any) if main really returns +// ************************************************************************************************ +__crt0_main_aftermath: + csrw mscratch, a0 // copy main's return code in mscratch for debugger + +#ifndef make_bootloader // after_main handler not supported for bootloader + .weak __neorv32_crt0_after_main + la ra, __neorv32_crt0_after_main + beqz ra, __crt0_main_aftermath_end // check if an aftermath handler has been specified + jalr ra // execute handler, main's return code in a0 +#endif + + +// ************************************************************************************************ +// go to endless sleep mode +// ************************************************************************************************ +__crt0_main_aftermath_end: + csrci mstatus, 8 // mstatus: disable global IRQs (mstatus.mie) +__crt0_main_aftermath_end_loop: + wfi // try to go to sleep mode + j __crt0_main_aftermath_end_loop // endless loop + + +// ************************************************************************************************ +// dummy trap handler (for exceptions & IRQs during very early boot stage) +// does nothing but tries to move on to next instruction +// ************************************************************************************************ +.balign 4 +__crt0_dummy_trap_handler: + + addi sp, sp, -8 + sw x8, 0(sp) + sw x9, 4(sp) + + csrr x8, mcause + blt x8, zero, __crt0_dummy_trap_handler_irq // skip mepc modification if interrupt + + csrr x8, mepc + +__crt0_dummy_trap_handler_exc_c_check: // is compressed instruction? + lh x9, 0(x8) // get compressed instruction or lower 16 bits of uncompressed instruction that caused exception + andi x9, x9, 3 // mask: isolate lowest 2 opcode bits (= 11 for uncompressed instructions) + + addi x8, x8, +2 // only this for compressed instructions + csrw mepc, x8 // set return address when compressed instruction + + addi x8, zero, 3 + bne x8, x9, __crt0_dummy_trap_handler_irq // jump if compressed instruction + +__crt0_dummy_trap_handler_exc_uncrompressed: // is uncompressed instruction! + csrr x8, mepc + addi x8, x8, +2 // add another 2 (making +4) for uncompressed instructions + csrw mepc, x8 + +__crt0_dummy_trap_handler_irq: + lw x8, 0(sp) + lw x9, 4(sp) + addi sp, sp, +8 + + mret + +.cfi_endproc +.end diff --git a/Libs/RiscV/NEORV32/sw/common/neorv32.ld b/Libs/RiscV/NEORV32/sw/common/neorv32.ld new file mode 100644 index 0000000..ed20dcd --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/common/neorv32.ld @@ -0,0 +1,309 @@ +/* ################################################################################################# */ +/* # << NEORV32 - RISC-V GCC Linker Script >> # */ +/* # ********************************************************************************************* # */ +/* # BSD 3-Clause License # */ +/* # # */ +/* # Copyright (c) 2021, Stephan Nolting. All rights reserved. # */ +/* # # */ +/* # Redistribution and use in source and binary forms, with or without modification, are # */ +/* # permitted provided that the following conditions are met: # */ +/* # # */ +/* # 1. Redistributions of source code must retain the above copyright notice, this list of # */ +/* # conditions and the following disclaimer. # */ +/* # # */ +/* # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # */ +/* # conditions and the following disclaimer in the documentation and/or other materials # */ +/* # provided with the distribution. # */ +/* # # */ +/* # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # */ +/* # endorse or promote products derived from this software without specific prior written # */ +/* # permission. # */ +/* # # */ +/* # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # */ +/* # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # */ +/* # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # */ +/* # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # */ +/* # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # */ +/* # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # */ +/* # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # */ +/* # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # */ +/* # OF THE POSSIBILITY OF SUCH DAMAGE. # */ +/* # ********************************************************************************************* # */ +/* # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # */ +/* ################################################################################################# */ + +/* Default linker script, for normal executables */ +/* Copyright (C) 2014-2020 Free Software Foundation, Inc. + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ + +/* modified for the NEORV32 processor by Stephan Nolting */ + + +OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv") +OUTPUT_ARCH(riscv) +ENTRY(_start) +SEARCH_DIR("/opt/riscv/riscv32-unknown-elf/lib"); SEARCH_DIR("=/opt/riscv/riscv64-unknown-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); + +/* ************************************************************************** */ +/* NEORV32 memory section configuration. */ +/* ************************************************************************** */ +/* "ram" : data memory (int/ext DMEM) - make sure this is sync with the HW! */ +/* "rom" : instruction memory (int/ext IMEM or bootloader ROM) */ +/* "iodev" : peripheral/IO devices */ +/* ************************************************************************** */ +MEMORY +{ +/* section base addresses and sizes have to be a multiple of 4 bytes */ +/* ram section: first value of LENGTH => data memory used by bootloader (fixed!); second value of LENGTH => *physical* size of data memory */ +/* adapt the right-most value to match the *total physical data memory size* of your setup */ + + ram (rwx) : ORIGIN = 0x80000000, LENGTH = DEFINED(make_bootloader) ? 512 : 8*1024 + +/* rom and iodev sections should NOT be modified by the user at all! */ +/* rom section: first value of ORIGIN/LENGTH => bootloader ROM; second value of ORIGIN/LENGTH => maximum *logical* size of instruction memory */ + + rom (rx) : ORIGIN = DEFINED(make_bootloader) ? 0xFFFF0000 : 0x00000000, LENGTH = DEFINED(make_bootloader) ? 32K : 2048M + iodev (rw) : ORIGIN = 0xFFFFFE00, LENGTH = 512 + +} +/* ************************************************************************* */ + +SECTIONS +{ + /* start section on WORD boundary */ + . = ALIGN(4); + + + /* Actual instructions */ + .text : + { + PROVIDE(__text_start = .); + PROVIDE(__textstart = .); + + PROVIDE_HIDDEN (__rela_iplt_start = .); + *(.rela.iplt) + PROVIDE_HIDDEN (__rela_iplt_end = .); + + *(.rela.plt) + + KEEP(*(.text.boot)); /* keep start-up code at the beginning of rom */ + + KEEP (*(SORT_NONE(.init))) + + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(SORT(.text.sorted.*)) + *(.text .stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf.em. */ + *(.gnu.warning) + + KEEP (*(SORT_NONE(.fini))) + + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + /* We don't want to include the .ctor section from + the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + + /* finish section on WORD boundary */ + . = ALIGN(4); + + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + } > rom + + + /* read-only data, appended to .text */ + .rodata : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) + KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) + PROVIDE_HIDDEN (__init_array_end = .); + + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) + KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) + PROVIDE_HIDDEN (__fini_array_end = .); + + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + + /* finish section on WORD boundary */ + . = ALIGN(4); + } > rom + + + /* initialized read/write data, accessed in RAM, placed in ROM, copied during boot */ + .data : + { + __DATA_BEGIN__ = .; + __SDATA_BEGIN__ = .; + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + + *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) + *(.dynamic) + + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + + *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + + PROVIDE_HIDDEN (__tdata_start = .); + *(.tdata .tdata.* .gnu.linkonce.td.*) + + + /* finish section on WORD boundary */ + . = ALIGN(4); + + _edata = .; PROVIDE (edata = .); + . = .; + + } > ram AT > rom + + + /* zero/non-initialized read/write data placed in RAM */ + .bss (NOLOAD): + { + __bss_start = .; + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + *(.scommon) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. + FIXME: Why do we need it? When there is no .bss section, we do not + pad the .data section. */ + . = ALIGN(. != 0 ? 32 / 8 : 1); + + . = ALIGN(32 / 8); + __BSS_END__ = .; + __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800)); + _end = .; PROVIDE (end = .); + } > ram + + + /* Yet unused */ + .jcr : { KEEP (*(.jcr)) } + .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .interp : { *(.interp) } + .note.gnu.build-id : { *(.note.gnu.build-id) } + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rela.init : { *(.rela.init) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rela.fini : { *(.rela.fini) } + .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rela.ctors : { *(.rela.ctors) } + .rela.dtors : { *(.rela.dtors) } + .rela.got : { *(.rela.got) } + .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } + .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } + .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } + .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } + + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + /* DWARF Extension. */ + .debug_macro 0 : { *(.debug_macro) } + .debug_addr 0 : { *(.debug_addr) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } + + + /* Provide symbols for neorv32 crt0 start-up code */ + PROVIDE(__ctr0_imem_begin = ORIGIN(rom)); + PROVIDE(__ctr0_dmem_begin = ORIGIN(ram)); + PROVIDE(__crt0_stack_begin = (ORIGIN(ram) + LENGTH(ram)) - 4); + PROVIDE(__crt0_bss_start = __bss_start); + PROVIDE(__crt0_bss_end = __BSS_END__); + PROVIDE(__crt0_copy_data_src_begin = __etext + SIZEOF(.rodata)); + PROVIDE(__crt0_copy_data_dst_begin = __DATA_BEGIN__); + PROVIDE(__crt0_copy_data_dst_end = __DATA_BEGIN__ + SIZEOF(.data)); + PROVIDE(__ctr0_io_space_begin = ORIGIN(iodev)); + PROVIDE(__ctr0_io_space_end = ORIGIN(iodev) + LENGTH(iodev)); +} diff --git a/Libs/RiscV/NEORV32/sw/example/bitmanip_test/README.md b/Libs/RiscV/NEORV32/sw/example/bitmanip_test/README.md new file mode 100644 index 0000000..7e9dae0 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/bitmanip_test/README.md @@ -0,0 +1,13 @@ +# NEORV32 Bit-Manipulation `B` Extension + +:warning: The RISC-V bit-manipulation extension is frozen but not yet officially ratified. + +:warning: The NEORV32 bit manipulation extensions `B` only supports the `Zbb` and `Zba` sub-extension +(basic bit-manipulation operation) yet. + +The provided test program `main.c` verifies all currently implemented instruction by checking the results against a pure-software emulation model. +The emulation functions as well as the available **intrinsics** for the sub-extension are located in `neorv32_b_extension_intrinsics.h`. + +:information_source: More information regarding the RISC-V bit manipulation extension can be found in the officail GitHub repo: +[github.com/riscv/riscv-bitmanip](https://github.com/riscv/riscv-bitmanip). +The specification of the bit-manipulation spec supported by the NEORV32 can be found in `docs/references/bitmanip-draft.pdf`. diff --git a/Libs/RiscV/NEORV32/sw/example/bitmanip_test/makefile b/Libs/RiscV/NEORV32/sw/example/bitmanip_test/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/bitmanip_test/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/bitmanip_test/neorv32_b_extension_intrinsics.h b/Libs/RiscV/NEORV32/sw/example/bitmanip_test/neorv32_b_extension_intrinsics.h new file mode 100644 index 0000000..2ae53eb --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/bitmanip_test/neorv32_b_extension_intrinsics.h @@ -0,0 +1,903 @@ +// ################################################################################################# +// # << NEORV32 - Intrinsics + Emulation Functions for the CPU B extension >> # +// # ********************************************************************************************* # +// # The intrinsics provided by this library allow to use the hardware bit manipulation unit of # +// # the RISC-V B CPU extension without the need for support by the compiler. # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file bitmanip_test/neorv32_b_extension_intrinsics.h + * @author Stephan Nolting + * @brief "Intrinsic" library for the NEORV32 bit manipulation B extension. + * Also provides emulation functions for all intrinsics (functionality re-built in pure software). + * + * @warning This library is just a temporary fall-back until the B extension is supported by the upstream RISC-V GCC port. + **************************************************************************/ + +#ifndef neorv32_b_extension_intrinsics_h +#define neorv32_b_extension_intrinsics_h + + +// ################################################################################################ +// "Intrinsics" +// ################################################################################################ + + +// ================================================================================================ +// Zbb - Base instructions +// ================================================================================================ + +/**********************************************************************//** + * Intrinsic: Bit manipulation CLZ (count leading zeros) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Number of leading zeros in source operand. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_clz(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // clz a0, a0 + CUSTOM_INSTR_R1_TYPE(0b0110000, 0b00000, a0, 0b001, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation CTZ (count trailing zeros) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Number of trailing zeros in source operand. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_ctz(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // ctz a0, a0 + CUSTOM_INSTR_R1_TYPE(0b0110000, 0b00001, a0, 0b001, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation CPOP (count set bits) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Number of set bits in source operand. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_cpop(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // cpop a0, a0 + CUSTOM_INSTR_R1_TYPE(0b0110000, 0b00010, a0, 0b001, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation SEXT.B (sign-extend byte) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Sign extended byte (operand(7:0)). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_sextb(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // sext.b a0, a0 + CUSTOM_INSTR_R1_TYPE(0b0110000, 0b00100, a0, 0b001, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation SEXT.H (sign-extend half-word) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Sign-extended half-word (operand(15:0)). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_sexth(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // sext.h a0, a0 + CUSTOM_INSTR_R1_TYPE(0b0110000, 0b00101, a0, 0b001, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ZEXT.H (zero-extend half-word) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Zero-extended half-word (operand(15:0)). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_zexth(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // sext.h a0, a0 + CUSTOM_INSTR_R1_TYPE(0b0000100, 0b00000, a0, 0b100, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MIN (select signed minimum) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Signed minimum. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_min(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // min a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0000101, a1, a0, 0b100, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MINU (select unsigned minimum) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Unsigned minimum. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_minu(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // minu a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0000101, a1, a0, 0b101, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MAX (select signed maximum) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Signed maximum. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_max(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // max a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0000101, a1, a0, 0b110, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MAXU (select unsigned maximum) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Unsigned maximum. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_maxu(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // maxu a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0000101, a1, a0, 0b111, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ANDN (logical and-negate) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 1 AND NOT operand 2. + **************************************************************************/ +inline inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_andn(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // andn a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0100000, a1, a0, 0b111, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ORN (logical or-negate) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 1 OR NOT operand 2. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_orn(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // orn a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0100000, a1, a0, 0b110, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation XNOR (logical xor-negate) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 1 XOR NOT operand 2. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_xnor(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // xnor a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0100000, a1, a0, 0b100, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ROL (rotate-left) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 1 rotated left by operand_2(4:0) positions. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_rol(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // rol a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0110000, a1, a0, 0b001, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ROR (rotate-right) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 1 rotated right by operand_2(4:0) positions. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_ror(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // ror a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0110000, a1, a0, 0b101, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation RORI (rotate-right) by 20 positions. [B.Zbb] + * @warning Fixed shift amount (20) for now. + * + * @param[in] rs1 Source operand 1 (a0). + * @return Operand 1 rotated right by 20 positions. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_rori20(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // rori a0, a0, 20 + CUSTOM_INSTR_R1_TYPE(0b0110000, 0b10100, a0, 0b101, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ORC.B (or-combine byte) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return OR-combined bytes of operand 1. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_orcb(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // gorci a0, a0, 7 (pseudo-instruction: orc.b a0, a0) + CUSTOM_INSTR_R1_TYPE(0b0010100, 0b00111, a0, 0b101, a0, 0b0010011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation REV8 (byte-swap) [B.Zbb] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Byte swap of operand 1 + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_rev8(uint32_t rs1) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // grevi a0, a0, -8 (pseudo-instruction: rev8 a0, a0) + CUSTOM_INSTR_R1_TYPE(0b0110100, 0b11000, a0, 0b101, a0, 0b0010011); + + return result; +} + + +// ================================================================================================ +// Zbb - Base instructions +// ================================================================================================ + +/**********************************************************************//** + * Intrinsic: Address generation instructions SH1ADD (add with logical-1-shift) [B.Zba] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 2 + (Operand 1 << 1) + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_sh1add(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // sh1add a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010000, a1, a0, 0b010, a0, 0b0110011); + + return result; +} + + +/**********************************************************************//** + * Intrinsic: Address generation instructions SH2ADD (add with logical-2-shift) [B.Zba] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 2 + (Operand 1 << 2) + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_sh2add(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // sh2add a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010000, a1, a0, 0b100, a0, 0b0110011); + + return result; +} + +/**********************************************************************//** + * Intrinsic: Address generation instructions SH1ADD (add with logical-3-shift) [B.Zba] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a0). + * @return Operand 2 + (Operand 1 << 3) + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_sh3add(uint32_t rs1, uint32_t rs2) { + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + register uint32_t tmp_b __asm__ ("a1") = rs2; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // sh3add a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010000, a1, a0, 0b110, a0, 0b0110011); + + return result; +} + + + +// ################################################################################################ +// Emulation functions +// ################################################################################################ + + +// ================================================================================================ +// Zbb - Base instructions +// ================================================================================================ + + +/**********************************************************************//** + * Intrinsic: Bit manipulation CLZ (count leading zeros) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Number of leading zeros in source operand. + **************************************************************************/ +uint32_t riscv_emulate_clz(uint32_t rs1) { + + uint32_t sreg = rs1; + uint32_t cnt = 0; + + while(1) { + if (sreg & 0x80000000UL) { + break; + } + else { + sreg <<= 1; + cnt++; + } + } + + return cnt; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation CTZ (count trailing zeros) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Number of trailing zeros in source operand. + **************************************************************************/ +uint32_t riscv_emulate_ctz(uint32_t rs1) { + + uint32_t sreg = rs1; + uint32_t cnt = 0; + + while(1) { + if (sreg & 1) { + break; + } + else { + sreg >>= 1; + cnt++; + } + } + + return cnt; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation CPOP (population count) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Number of set bits in source operand. + **************************************************************************/ +uint32_t riscv_emulate_cpop(uint32_t rs1) { + + uint32_t sreg = rs1; + uint32_t cnt = 0; + int i; + + for (i=0; i<32; i++) { + if (sreg & 1) { + cnt++; + } + sreg >>= 1; + } + + return cnt; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation SEXT.B (sign-extend byte) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Sign-extended byte (operand(7:0)). + **************************************************************************/ +uint32_t riscv_emulate_sextb(uint32_t rs1) { + + uint32_t tmp = rs1 & 0xff; + + if (tmp & 0x80) { + tmp |= 0xFFFFFF00UL; + } + + return tmp; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation SEXT.H (sign-extend half-word) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Sign-extended half-word (operand(15:0)). + **************************************************************************/ +uint32_t riscv_emulate_sexth(uint32_t rs1) { + + uint32_t tmp = rs1 & 0xffff; + + if (tmp & 0x8000) { + tmp |= 0xFFFF0000UL; + } + + return tmp; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ZEXT.H (zero-extend half-word) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Zero-extended half-word (operand(15:0)). + **************************************************************************/ +uint32_t riscv_emulate_zexth(uint32_t rs1) { + + return rs1 & 0x0000FFFFUL; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MIN (select signed minimum) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Signed minimum. + **************************************************************************/ +uint32_t riscv_emulate_min(uint32_t rs1, uint32_t rs2) { + + int32_t s_opa = (int32_t)rs1; + int32_t s_opb = (int32_t)rs2; + + if (s_opa < s_opb) { + return rs1; + } + else { + return rs2; + } +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MINU (select unsigned minimum) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Unsigned minimum. + **************************************************************************/ +uint32_t riscv_emulate_minu(uint32_t rs1, uint32_t rs2) { + + if (rs1 < rs2) { + return rs1; + } + else { + return rs2; + } +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MAX (select signed maximum) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Signed maximum. + **************************************************************************/ +uint32_t riscv_emulate_max(uint32_t rs1, uint32_t rs2) { + + int32_t s_opa = (int32_t)rs1; + int32_t s_opb = (int32_t)rs2; + + if (s_opa < s_opb) { + return rs2; + } + else { + return rs1; + } +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation MAXU (select unsigned maximum) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Unsigned maximum. + **************************************************************************/ +uint32_t riscv_emulate_maxu(uint32_t rs1, uint32_t rs2) { + + if (rs1 < rs2) { + return rs2; + } + else { + return rs1; + } +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ANDN (logical and-negate) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 1 AND NOT operand 2. + **************************************************************************/ +uint32_t riscv_emulate_andn(uint32_t rs1, uint32_t rs2) { + + return rs1 & (~rs2); +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ORN (logical or-negate) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 1 OR NOT operand 2. + **************************************************************************/ +uint32_t riscv_emulate_orn(uint32_t rs1, uint32_t rs2) { + + return rs1 | (~rs2); +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation XNOR (logical xor-negate) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 1 XOR NOT operand 2. + **************************************************************************/ +uint32_t riscv_emulate_xnor(uint32_t rs1, uint32_t rs2) { + + return rs1 ^ (~rs2); +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ROL (rotate-left) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 1 rotated left by operand_2(4:0) positions. + **************************************************************************/ +uint32_t riscv_emulate_rol(uint32_t rs1, uint32_t rs2) { + + uint32_t shamt = rs2 & 0x1f; + + uint32_t tmp_a = rs1 << shamt; + uint32_t tmp_b = rs1 >> (32-shamt); + + return tmp_a | tmp_b; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ROR (rotate-right) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 1 rotated right by operand_2(4:0) positions. + **************************************************************************/ +uint32_t riscv_emulate_ror(uint32_t rs1, uint32_t rs2) { + + uint32_t shamt = rs2 & 0x1f; + + uint32_t tmp_a = rs1 >> shamt; + uint32_t tmp_b = rs1 << (32-shamt); + + return tmp_a | tmp_b; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation REV8 (byte swap) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return Operand 1 byte swapped. + **************************************************************************/ +uint32_t riscv_emulate_rev8(uint32_t rs1) { + + uint32_t tmp_a = (rs1 & 0x000000ffUL) << 24; + uint32_t tmp_b = (rs1 & 0x0000ff00UL) << 8; + uint32_t tmp_c = (rs1 & 0x00ff0000UL) >> 8; + uint32_t tmp_d = (rs1 & 0xff000000UL) >> 24; + + return tmp_a | tmp_b | tmp_c | tmp_d; +} + + +/**********************************************************************//** + * Intrinsic: Bit manipulation ORCB (or-combine bytes) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @return OR-combined bytes of operand 1. + **************************************************************************/ +uint32_t riscv_emulate_orcb(uint32_t rs1) { + + uint32_t tmp = 0; + + if (rs1 & 0x000000ffUL) { + tmp |= 0x000000ffUL; + } + if (rs1 & 0x0000ff00UL) { + tmp |= 0x0000ff00UL; + } + if (rs1 & 0x00ff0000UL) { + tmp |= 0x00ff0000UL; + } + if (rs1 & 0xff000000UL) { + tmp |= 0xff000000UL; + } + + return tmp; +} + + +// ================================================================================================ +// Zba - Address generation instructions +// ================================================================================================ + + +/**********************************************************************//** + * Intrinsic: Address generation instructions SH1ADD (add with logical-1-shift) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 2 + (Operand 1 << 1) + **************************************************************************/ +uint32_t riscv_emulate_sh1add(uint32_t rs1, uint32_t rs2) { + + return rs2 + (rs1 << 1); +} + + +/**********************************************************************//** + * Intrinsic: Address generation instructions SH2ADD (add with logical-2-shift) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 2 + (Operand 1 << 2) + **************************************************************************/ +uint32_t riscv_emulate_sh2add(uint32_t rs1, uint32_t rs2) { + + return rs2 + (rs1 << 2); +} + + +/**********************************************************************//** + * Intrinsic: Address generation instructions SH3ADD (add with logical-3-shift) [emulation] + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 1 (a0). + * @return Operand 2 + (Operand 1 << 3) + **************************************************************************/ +uint32_t riscv_emulate_sh3add(uint32_t rs1, uint32_t rs2) { + + return rs2 + (rs1 << 3); +} + + +#endif // neorv32_b_extension_intrinsics_h diff --git a/Libs/RiscV/NEORV32/sw/example/blink_led/blink_led_in_asm.S b/Libs/RiscV/NEORV32/sw/example/blink_led/blink_led_in_asm.S new file mode 100644 index 0000000..072e7a1 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/blink_led/blink_led_in_asm.S @@ -0,0 +1,37 @@ +.file "blink_led_in_asm.S" +.section .text +.balign 4 +.global blink_led_asm + +blink_led_asm: + + /* base address of GPIO controller's output port is passed as argument (in a0)*/ + sw zero, 0(a0) /* clear output port */ + + li t1, 0 /* initialize counter */ + + +blink_loop: + andi t1, t1, 255 /* apply 8-bit mask */ + sw t1, 0(a0) /* output current counter value */ + addi t1, t1, 1 /* increment counter */ + + jal ra, blink_delay /* call delay function */ + + j blink_loop + + +blink_delay: + li t2, 0xfffff /* delay time */ + +blink_delay_loop: + beq t2, zero, blink_delay_end + addi t2, t2, -1 + nop + nop + j blink_delay_loop + +blink_delay_end: + ret + +.end diff --git a/Libs/RiscV/NEORV32/sw/example/blink_led/makefile b/Libs/RiscV/NEORV32/sw/example/blink_led/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/blink_led/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/bus_explorer/makefile b/Libs/RiscV/NEORV32/sw/example/bus_explorer/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/bus_explorer/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/coremark/LICENSE.md b/Libs/RiscV/NEORV32/sw/example/coremark/LICENSE.md new file mode 100644 index 0000000..14e53e9 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/coremark/LICENSE.md @@ -0,0 +1,100 @@ +# COREMARK® ACCEPTABLE USE AGREEMENT + +This ACCEPTABLE USE AGREEMENT (this “Agreementâ€) is offered by Embedded Microprocessor Benchmark Consortium, a California nonprofit corporation (“Licensorâ€), to users of its CoreMark® software (“Licenseeâ€) exclusively on the following terms. + +Licensor offers benchmarking software (“Softwareâ€) pursuant to an open source license, but carefully controls use of its benchmarks and their associated goodwill. Licensor has registered its trademark in one of the benchmarks available through the Software, COREMARK, Ser. No. 85/487,290; Reg. No. 4,179,307 (the “Trademarkâ€), and promotes the use of a standard metric as a benchmark for assessing the performance of embedded systems. Solely on the terms described herein, Licensee may use and display the Trademark in connection with the generation of data regarding measurement and analysis of computer and embedded system benchmarking via the Software (the “Licensed Useâ€). + +## Article 1 – License Grant. +1.1. License. Subject to the terms and conditions of this Agreement, Licensor hereby grants to Licensee, and Licensee hereby accepts from Licensor, a personal, non-exclusive, royalty-free, revocable right and license to use and display the Trademark during the term of this Agreement (the “Termâ€), solely and exclusively in connection with the Licensed Use. During the Term, Licensee (i) shall not modify or otherwise create derivative works of the Trademark, and (ii) may use the Trademark only to the extent permitted under this License. Neither Licensee nor any affiliate or agent thereof shall otherwise use the Trademark without the prior express written consent of Licensor, which may be withheld in its sole and absolute discretion. All rights not expressly granted to Licensee hereunder shall remain the exclusive property of Licensor. + +1.2. Modifications to the Software. Licensee shall not use the Trademark in connection with any use of a modified, derivative, or otherwise altered copy of the Software. + +1.3. Licensor’s Use. Nothing in this Agreement shall preclude Licensor or any of its successors or assigns from using or permitting other entities to use the Trademark, whether or not such entity directly or indirectly competes or conflicts with Licensee’s Licensed Use in any manner. + +1.4. Term and Termination. This Agreement is perpetual unless terminated by either of the parties. Licensee may terminate this Agreement for convenience, without cause or liability, for any reason or for no reason whatsoever, upon ten (10) business days written notice. Licensor may terminate this Agreement effective immediately upon notice of breach. Upon termination, Licensee shall immediately remove all implementations of the Trademark from the Licensed Use, and delete all digitals files and records of all materials related to the Trademark. + +## Article 2 – Ownership. +2.1. Ownership. Licensee acknowledges and agrees that Licensor is the owner of all right, title, and interest in and to the Trademark, and all such right, title, and interest shall remain with Licensor. Licensee shall not contest, dispute, challenge, oppose, or seek to cancel Licensor’s right, title, and interest in and to the Trademark. Licensee shall not prosecute any application for registration of the Trademark. Licensee shall display appropriate notices regarding ownership of the Trademark in connection with the Licensed Use. + +2.2. Goodwill. Licensee acknowledges that Licensee shall not acquire any right, title, or interest in the Trademark by virtue of this Agreement other than the license granted hereunder, and disclaims any such right, title, interest, or ownership. All goodwill and reputation generated by Licensee’s use of the Trademark shall inure to the exclusive benefit of Licensor. Licensee shall not by any act or omission use the Trademark in any manner that disparages or reflects adversely on Licensor or its Licensed Use or reputation. Licensee shall not take any action that would interfere with or prejudice Licensor’s ownership or registration of the Trademark, the validity of the Trademark or the validity of the license granted by this Agreement. If Licensor determines and notifies Licensee that any act taken in connection with the Licensed Use (i) is inaccurate, unlawful or offensive to good taste; (ii) fails to provide for proper trademark notices, or (iii) otherwise violates Licensee’s obligations under this Agreement, the license granted under this Agreement shall terminate. + +## Article 3 – Indemnification. +3.1. Indemnification Generally. Licensee agrees to indemnify, defend, and hold harmless (collectively “indemnify†or “indemnificationâ€) Licensor, including Licensor’s members, managers, officers, and employees (collectively “Related Personsâ€), from and against, and pay or reimburse Licensor and such Related Persons for, any and all third-party actions, claims, demands, proceedings, investigations, inquiries (collectively, “Claimsâ€), and any and all liabilities, obligations, fines, deficiencies, costs, expenses, royalties, losses, and damages (including reasonable outside counsel fees and expenses) associated with such Claims, to the extent that such Claim arises out of (i) Licensee’s material breach of this Agreement, or (ii) any allegation(s) that Licensee’s actions infringe or violate any third-party intellectual property right, including without limitation, any U.S. copyright, patent, or trademark, or are otherwise found to be tortious or criminal (whether or not such indemnified person is a named party in a legal proceeding). + +3.2. Notice and Defense of Claims. Licensor shall promptly notify Licensee of any Claim for which indemnification is sought, following actual knowledge of such Claim, provided however that the failure to give such notice shall not relieve Licensee of its obligations hereunder except to the extent that Licensee is materially prejudiced by such failure. In the event that any third-party Claim is brought, Licensee shall have the right and option to undertake and control the defense of such action with counsel of its choice, provided however that (i) Licensor at its own expense may participate and appear on an equal footing with Licensee in the defense of any such Claim, (ii) Licensor may undertake and control such defense in the event of the material failure of Licensee to undertake and control the same; and (iii) the defense of any Claim relating to the intellectual property rights of Licensor or its licensors and any related counterclaims shall be solely controlled by Licensor with counsel of its choice. Licensee shall not consent to judgment or concede or settle or compromise any Claim without the prior written approval of Licensor (whose approval shall not be unreasonably withheld), unless such concession or settlement or compromise includes a full and unconditional release of Licensor and any applicable Related Persons from all liabilities in respect of such Claim. + +## Article 4 – Miscellaneous. +4.1. Relationship of the Parties. This Agreement does not create a partnership, franchise, joint venture, agency, fiduciary, or employment relationship between the parties. + +4.2. No Third-Party Beneficiaries. Except for the rights of Related Persons under Article 3 (Indemnification), there are no third-party beneficiaries to this Agreement. + +4.3. Assignment. Licensee’s rights hereunder are non-assignable, and may not be sublicensed. + +4.4. Equitable Relief. Licensee acknowledges that the remedies available at law for any breach of this Agreement will, by their nature, be inadequate. Accordingly, Licensor may obtain injunctive relief or other equitable relief to restrain a breach or threatened breach of this Agreement or to specifically enforce this Agreement, without proving that any monetary damages have been sustained, and without the requirement of posting of a bond prior to obtaining such equitable relief. + +4.5. Governing Law. This Agreement will be interpreted, construed, and enforced in all respects in accordance with the laws of the State of California, without reference to its conflict of law principles. + +4.6. Attorneys’ Fees. If any legal action, arbitration or other proceeding is brought for the enforcement of this Agreement, or because of an alleged dispute, breach, default, or misrepresentation in connection with any of the provisions of this Agreement, the successful or prevailing party shall be entitled to recover its reasonable attorneys’ fees and other reasonable costs incurred in that action or proceeding, in addition to any other relief to which it may be entitled. + +4.7. Amendment; Waiver. This Agreement may not be amended, nor may any rights under it be waived, except in writing by Licensor. + +4.8. Severability. If any provision of this Agreement is held by a court of competent jurisdiction to be contrary to law, the provision shall be modified by the court and interpreted so as best to accomplish the objectives of the original provision to the fullest extent +permitted by law, and the remaining provisions of this Agreement shall remain in effect. + +4.9. Entire Agreement. This Agreement constitutes the entire agreement between the parties and supersedes all prior and contemporaneous agreements, proposals or representations, written or oral, concerning its subject matter. + + +# Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +## TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + You must give any other recipients of the Work or Derivative Works a copy of this License; and + You must cause any modified files to carry prominent notices stating that You changed the files; and + You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/Libs/RiscV/NEORV32/sw/example/coremark/README.md b/Libs/RiscV/NEORV32/sw/example/coremark/README.md new file mode 100644 index 0000000..d37b09a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/coremark/README.md @@ -0,0 +1,78 @@ + +# Introduction + +CoreMark's primary goals are simplicity and providing a method for testing only a processor's core features. For more information about EEMBC's comprehensive embedded benchmark suites, please see www.eembc.org. + +For a more compute-intensive version of CoreMark that uses larger datasets and execution loops taken from common applications, please check out EEMBC's [CoreMark-PRO](https://www.github.com/eembc/coremark-pro) benchmark, also on GitHub. + +This project folder is a port of CoreMark (from the official [GitHub repository](https://github.com/eembc/coremark)) for the NEORV32 processor. + +# Building + +To build the executable (`neorv32_exe.bin`) of the benchmark, type: + +`> make USER_FLAGS+=-DRUN_COREMARK clean_all exe` + +Make sure to define `RUN_COREMARK` *when invoking* `make` (via `USER_FLAGS+=-DRUN_COREMARK`). + +To build the executable for a certain CPU configuration and a certain optimization level of the benchmark, type (`rv32imc` and `O3` in this example): + +`> make USER_FLAGS+=-DRUN_COREMARK MARCH=rv32imc EFFORT=-O3 clean_all exe` + + +# Running + +Upload the generated executable `neorv32_exe.bin` via the bootloader ('u' command) and execute it ('e' command): + +``` +<< NEORV32 Bootloader >> + +BLDV: Nov 7 2020 +HWV: 0x01040700 +CLK: 0x05F5E100 Hz +USER: 0x10000DE0 +MISA: 0x40901104 +PROC: 0x007F0015 +IMEM: 0x00008000 bytes @ 0x00000000 +DMEM: 0x00008000 bytes @ 0x80000000 + +Autoboot in 8s. Press key to abort. +Aborted. + +Available CMDs: + h: Help + r: Restart + u: Upload + s: Store to flash + l: Load from flash + e: Execute +CMD:> u +Awaiting neorv32_exe.bin... OK +CMD:> e +Booting... + +NEORV32: Processor running at 100000000 Hz +NEORV32: Executing coremark (2000 iterations). This may take some time... + +2K performance run parameters for coremark. +CoreMark Size : 666 +Total ticks : 3036959876 +Total time (secs): 30 +Iterations/Sec : 66 +Iterations : 2000 +Compiler version : GCC10.1.0 +Compiler flags : -> default, see makefile +Memory location : STACK +seedcrc : 0xe9f5 +[0]crclist : 0xe714 +[0]crcmatrix : 0x1fd7 +[0]crcstate : 0x8e3a +[0]crcfinal : 0x4983 +Correct operation validated. See README.md for run and reporting rules. + +NEORV32: All reported numbers only show the integer results. + +NEORV32: Executed instructions 0x00000000_24b8576e +NEORV32: CoreMark core clock cycles 0x00000000_b5045484 +NEORV32: Average CPI (integer part only): 4 cycles/instruction +``` diff --git a/Libs/RiscV/NEORV32/sw/example/coremark/core_portme.h b/Libs/RiscV/NEORV32/sw/example/coremark/core_portme.h new file mode 100644 index 0000000..df3320a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/coremark/core_portme.h @@ -0,0 +1,232 @@ +/* +Copyright 2018 Embedded Microprocessor Benchmark Consortium (EEMBC) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Original Author: Shay Gal-on +*/ + +/* Modified for the NEORV32 Processor - by Stephan Nolting */ + +/* Topic : Description + This file contains configuration constants required to execute on + different platforms +*/ +#ifndef CORE_PORTME_H +#define CORE_PORTME_H + +#include +#include + +/************************/ +/* NEORV32-specific */ +/************************/ +#define BAUD_RATE (19200) +#define ITERATIONS (2000) +#define FLAGS_STR "-> default, see makefile" // compiler optimization + +/************************/ +/* Data types and settings */ +/************************/ +/* Configuration : HAS_FLOAT + Define to 1 if the platform supports floating point. +*/ +#ifndef HAS_FLOAT +#define HAS_FLOAT 0 +#endif +/* Configuration : HAS_TIME_H + Define to 1 if platform has the time.h header file, + and implementation of functions thereof. +*/ +#ifndef HAS_TIME_H +#define HAS_TIME_H 0 +#endif +/* Configuration : USE_CLOCK + Define to 1 if platform has the time.h header file, + and implementation of functions thereof. +*/ +#ifndef USE_CLOCK +#define USE_CLOCK 0 +#endif +/* Configuration : HAS_STDIO + Define to 1 if the platform has stdio.h. +*/ +#ifndef HAS_STDIO +#define HAS_STDIO 0 +#endif +/* Configuration : HAS_PRINTF + Define to 1 if the platform has stdio.h and implements the printf + function. +*/ +#ifndef HAS_PRINTF +#define HAS_PRINTF 0 +#endif + +/* Definitions : COMPILER_VERSION, COMPILER_FLAGS, MEM_LOCATION + Initialize these strings per platform +*/ +#ifndef COMPILER_VERSION +#ifdef __GNUC__ +#define COMPILER_VERSION "GCC"__VERSION__ +#else +#define COMPILER_VERSION "Please put compiler version here (e.g. gcc 4.1)" +#endif +#endif +#ifndef COMPILER_FLAGS +#define COMPILER_FLAGS \ + FLAGS_STR /* "Please put compiler flags here (e.g. -o3)" */ +#endif +#ifndef MEM_LOCATION +#define MEM_LOCATION "STATIC" +#endif + +/* Data Types : + To avoid compiler issues, define the data types that need ot be used for + 8b, 16b and 32b in . + + *Imprtant* : + ee_ptr_int needs to be the data type used to hold pointers, otherwise + coremark may fail!!! +*/ +typedef int16_t ee_s16; +typedef uint16_t ee_u16; +typedef int32_t ee_s32; +typedef double ee_f32; +typedef unsigned char ee_u8; +typedef uint32_t ee_u32; +typedef uint64_t ee_u64; +typedef ee_u32 ee_ptr_int; +typedef size_t ee_size_t; +#define NULL ((void *)0) +/* align_mem : + This macro is used to align an offset to point to a 32b value. It is + used in the Matrix algorithm to initialize the input memory blocks. +*/ +#define align_mem(x) (void *)(4 + (((ee_ptr_int)(x)-1) & ~3)) + +/* Configuration : CORE_TICKS + Define type of return from the timing functions. + */ +#define CORETIMETYPE ee_u64 +typedef ee_u64 CORE_TICKS; + +/* Configuration : SEED_METHOD + Defines method to get seed values that cannot be computed at compile + time. + + Valid values : + SEED_ARG - from command line. + SEED_FUNC - from a system function. + SEED_VOLATILE - from volatile variables. +*/ +#ifndef SEED_METHOD +#define SEED_METHOD SEED_VOLATILE +#endif + +/* Configuration : MEM_METHOD + Defines method to get a block of memry. + + Valid values : + MEM_MALLOC - for platforms that implement malloc and have malloc.h. + MEM_STATIC - to use a static memory array. + MEM_STACK - to allocate the data block on the stack (NYI). +*/ +#ifndef MEM_METHOD +#define MEM_METHOD MEM_STATIC +#endif + +/* Configuration : MULTITHREAD + Define for parallel execution + + Valid values : + 1 - only one context (default). + N>1 - will execute N copies in parallel. + + Note : + If this flag is defined to more then 1, an implementation for launching + parallel contexts must be defined. + + Two sample implementations are provided. Use or + to enable them. + + It is valid to have a different implementation of + and in , to fit a particular architecture. +*/ +#ifndef MULTITHREAD +#define MULTITHREAD 1 +#define USE_PTHREAD 0 +#define USE_FORK 0 +#define USE_SOCKET 0 +#endif + +/* Configuration : MAIN_HAS_NOARGC + Needed if platform does not support getting arguments to main. + + Valid values : + 0 - argc/argv to main is supported + 1 - argc/argv to main is not supported + + Note : + This flag only matters if MULTITHREAD has been defined to a value + greater then 1. +*/ +#ifndef MAIN_HAS_NOARGC +#define MAIN_HAS_NOARGC 0 +#endif + +/* Configuration : MAIN_HAS_NORETURN + Needed if platform does not support returning a value from main. + + Valid values : + 0 - main returns an int, and return value will be 0. + 1 - platform does not support returning a value from main +*/ +#ifndef MAIN_HAS_NORETURN +#define MAIN_HAS_NORETURN 0 +#endif + +/* Variable : default_num_contexts + Not used for this simple port, must cintain the value 1. +*/ +extern ee_u32 default_num_contexts; + +typedef struct CORE_PORTABLE_S +{ + ee_u8 portable_id; +} core_portable; + +/* target specific init/fini */ +#ifndef RUN_COREMARK +void +__attribute__((__noreturn__)) +portable_init(core_portable *p, int *argc, char *argv[]); +#else +void +portable_init(core_portable *p, int *argc, char *argv[]); +#endif +void portable_fini(core_portable *p); + +#if !defined(PROFILE_RUN) && !defined(PERFORMANCE_RUN) \ + && !defined(VALIDATION_RUN) +#if (TOTAL_DATA_SIZE == 1200) +#define PROFILE_RUN 1 +#elif (TOTAL_DATA_SIZE == 2000) +#define PERFORMANCE_RUN 1 +#else +#define VALIDATION_RUN 1 +#endif +#endif + +int ee_printf(const char *fmt, ...); + +#endif /* CORE_PORTME_H */ diff --git a/Libs/RiscV/NEORV32/sw/example/coremark/coremark.h b/Libs/RiscV/NEORV32/sw/example/coremark/coremark.h new file mode 100644 index 0000000..9c5e406 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/coremark/coremark.h @@ -0,0 +1,183 @@ +/* +Copyright 2018 Embedded Microprocessor Benchmark Consortium (EEMBC) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Original Author: Shay Gal-on +*/ + +/* Topic: Description + This file contains declarations of the various benchmark functions. +*/ + +/* Configuration: TOTAL_DATA_SIZE + Define total size for data algorithms will operate on +*/ +#ifndef TOTAL_DATA_SIZE +#define TOTAL_DATA_SIZE 2 * 1000 +#endif + +#define SEED_ARG 0 +#define SEED_FUNC 1 +#define SEED_VOLATILE 2 + +#define MEM_STATIC 0 +#define MEM_MALLOC 1 +#define MEM_STACK 2 + +#include "core_portme.h" + +#if HAS_STDIO +#include +#endif +#if HAS_PRINTF +#define ee_printf printf +#endif + +/* Actual benchmark execution in iterate */ +void *iterate(void *pres); + +/* Typedef: secs_ret + For machines that have floating point support, get number of seconds as + a double. Otherwise an unsigned int. +*/ +#if HAS_FLOAT +typedef double secs_ret; +#else +typedef ee_u32 secs_ret; +#endif + +#if MAIN_HAS_NORETURN +#define MAIN_RETURN_VAL +#define MAIN_RETURN_TYPE void +#else +#define MAIN_RETURN_VAL 0 +#define MAIN_RETURN_TYPE int +#endif + +void start_time(void); +void stop_time(void); +CORE_TICKS get_time(void); +secs_ret time_in_secs(CORE_TICKS ticks); + +/* Misc useful functions */ +ee_u16 crcu8(ee_u8 data, ee_u16 crc); +ee_u16 crc16(ee_s16 newval, ee_u16 crc); +ee_u16 crcu16(ee_u16 newval, ee_u16 crc); +ee_u16 crcu32(ee_u32 newval, ee_u16 crc); +ee_u8 check_data_types(void); +void * portable_malloc(ee_size_t size); +void portable_free(void *p); +ee_s32 parseval(char *valstring); + +/* Algorithm IDS */ +#define ID_LIST (1 << 0) +#define ID_MATRIX (1 << 1) +#define ID_STATE (1 << 2) +#define ALL_ALGORITHMS_MASK (ID_LIST | ID_MATRIX | ID_STATE) +#define NUM_ALGORITHMS 3 + +/* list data structures */ +typedef struct list_data_s +{ + ee_s16 data16; + ee_s16 idx; +} list_data; + +typedef struct list_head_s +{ + struct list_head_s *next; + struct list_data_s *info; +} list_head; + +/*matrix benchmark related stuff */ +#define MATDAT_INT 1 +#if MATDAT_INT +typedef ee_s16 MATDAT; +typedef ee_s32 MATRES; +#else +typedef ee_f16 MATDAT; +typedef ee_f32 MATRES; +#endif + +typedef struct MAT_PARAMS_S +{ + int N; + MATDAT *A; + MATDAT *B; + MATRES *C; +} mat_params; + +/* state machine related stuff */ +/* List of all the possible states for the FSM */ +typedef enum CORE_STATE +{ + CORE_START = 0, + CORE_INVALID, + CORE_S1, + CORE_S2, + CORE_INT, + CORE_FLOAT, + CORE_EXPONENT, + CORE_SCIENTIFIC, + NUM_CORE_STATES +} core_state_e; + +/* Helper structure to hold results */ +typedef struct RESULTS_S +{ + /* inputs */ + ee_s16 seed1; /* Initializing seed */ + ee_s16 seed2; /* Initializing seed */ + ee_s16 seed3; /* Initializing seed */ + void * memblock[4]; /* Pointer to safe memory location */ + ee_u32 size; /* Size of the data */ + ee_u32 iterations; /* Number of iterations to execute */ + ee_u32 execs; /* Bitmask of operations to execute */ + struct list_head_s *list; + mat_params mat; + /* outputs */ + ee_u16 crc; + ee_u16 crclist; + ee_u16 crcmatrix; + ee_u16 crcstate; + ee_s16 err; + /* ultithread specific */ + core_portable port; +} core_results; + +/* Multicore execution handling */ +#if (MULTITHREAD > 1) +ee_u8 core_start_parallel(core_results *res); +ee_u8 core_stop_parallel(core_results *res); +#endif + +/* list benchmark functions */ +list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed); +ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx); + +/* state benchmark functions */ +void core_init_state(ee_u32 size, ee_s16 seed, ee_u8 *p); +ee_u16 core_bench_state(ee_u32 blksize, + ee_u8 *memblock, + ee_s16 seed1, + ee_s16 seed2, + ee_s16 step, + ee_u16 crc); + +/* matrix benchmark functions */ +ee_u32 core_init_matrix(ee_u32 blksize, + void * memblk, + ee_s32 seed, + mat_params *p); +ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc); diff --git a/Libs/RiscV/NEORV32/sw/example/coremark/makefile b/Libs/RiscV/NEORV32/sw/example/coremark/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/coremark/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/FreeRTOSConfig.h b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/FreeRTOSConfig.h new file mode 100644 index 0000000..8de5d6e --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/FreeRTOSConfig.h @@ -0,0 +1,152 @@ +/* + FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. + + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available on the following + link: http://www.freertos.org/a00114.html + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * + * * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * + * * + *************************************************************************** + + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +//#include "clock_config.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* See https://www.freertos.org/Using-FreeRTOS-on-RISC-V.html */ +#define configMTIME_BASE_ADDRESS ( 0xFFFFFF90UL ) +#define configMTIMECMP_BASE_ADDRESS ( 0xFFFFFF98UL ) + +#define configISR_STACK_SIZE_WORDS ( 128 ) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 1 +#define configCPU_CLOCK_HZ 100000000 +#define configTICK_RATE_HZ ( ( TickType_t ) 100 ) +#define configMAX_PRIORITIES ( 5 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 ) /* Can be as low as 60 but some of the demo tasks that use this constant require it to be higher. */ +#define configSUPPORT_DYNAMIC_ALLOCATION 1 +#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 7 * 1024 ) ) +#define configMAX_TASK_NAME_LEN ( 16 ) +#define configUSE_TRACE_FACILITY 1 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 1 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 2 +#define configUSE_RECURSIVE_MUTEXES 1 +#define configUSE_MALLOC_FAILED_HOOK 1 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 +#define configTASK_NOTIFICATION_ARRAY_ENTRIES 4 +#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + +/* Software timer definitions. */ +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) +#define configTIMER_QUEUE_LENGTH 4 +#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE ) + +/* Task priorities. Allow these to be overridden. */ +#ifndef uartPRIMARY_PRIORITY + #define uartPRIMARY_PRIORITY ( configMAX_PRIORITIES - 3 ) +#endif + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskCleanUpResources 1 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 +#define INCLUDE_eTaskGetState 1 +#define INCLUDE_xTimerPendFunctionCall 1 +#define INCLUDE_xTaskAbortDelay 1 +#define INCLUDE_xTaskGetHandle 1 +#define INCLUDE_xSemaphoreGetMutexHolder 1 + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); __asm volatile( "ebreak" ); for( ;; ); } + +#endif /* FREERTOS_CONFIG_H */ diff --git a/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/README.md b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/README.md new file mode 100644 index 0000000..b35ace8 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/README.md @@ -0,0 +1,71 @@ + # FreeRTOS Demo for the NEORV32 Processor + +This example shows how to run [FreeRTOS](https://www.freertos.org/) on the NEORV32 processor. It features the default +"blinky_demo" and the more sophisticated "full_demo" demo applications. See the comments in `main.c` and the according +source files for more information. + +The chip-specific extensions folder (`chip_specific_extensions/neorv32`) should be in `$(FREERTOS_HOME)/Source/portable/GCC/RISC-V/chip_specific_extensions`, +but is placed in this source directory for simplicity. + + +## Hardware Requirements + +* DMEM/IMEM requriements depend on the actual application (for example: 8kB DMEM and 16kB IMEM for *blinky_demo*) +* MTIME (machine timer) + UART + GPIO +* `Zicsr` CPU extension + + +## Instructions + +Download FreeRTOS from the [official GitHub repository](https://github.com/FreeRTOS/FreeRTOS) or from the its official homepage. + + $ git clone https://github.com/FreeRTOS/FreeRTOS.git + +Open the makefile from this example folder and configure the `FREERTOS_HOME` variable to point to your FreeRTOS home folder. + + FREERTOS_HOME ?= /mnt/n/Projects/FreeRTOSv10.4.1 + +Compile the NEORV32 executable. Do not forget the `RUN_FREERTOS_DEMO` switch. + + $ make USER_FLAGS+=-DRUN_FREERTOS_DEMO clean_all exe + +Note: The *.c sources and the FreeRTOS-specific part of the makefile have (include) guards that test if `RUN_FREERTOS_DEMO` is defined. +This has no pratical usage for the user - it is just a work-around for the NEORV32 CI environment. + +Upload the executable (`neorv32_exe.bin`) to the processor via the bootloader and execute it. + +``` +Awaiting neorv32_exe.bin... OK +CMD:> e +Booting... + +FreeRTOS V10.4.1 +Blink +Blink +Blink +``` + +## FreeRTOS Plus + +To automatically add source and include files from FreeRTOS plus extensions add one (or more) of the following arguments when invoking `make`: + +* FreeRTOS-Plus-CLI: `USER_FLAGS+=-FREERTOS_PLUS_CLI` +* FreeRTOS-Plus-TCP: `USER_FLAGS+=-FREERTOS_PLUS_TCP` + +Example: + + $ make USER_FLAGS+=-DRUN_FREERTOS_DEMO USER_FLAGS+=-FREERTOS_PLUS_TCP clean_all exe + + +## Notes + +The onfiguration of the FreeRTOS home folder (via `FREERTOS_HOME`) is corrupted if the compiler shows the following error: + +``` +main.c:36:10: fatal error: FreeRTOS.h: No such file or directory + 36 | #include + | ^~~~~~~~~~~~ +compilation terminated. +make: *** [makefile:203: main.c.o] Error 1 +``` + diff --git a/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/chip_specific_extensions/neorv32/freertos_risc_v_chip_specific_extensions.h b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/chip_specific_extensions/neorv32/freertos_risc_v_chip_specific_extensions.h new file mode 100644 index 0000000..c10f848 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/chip_specific_extensions/neorv32/freertos_risc_v_chip_specific_extensions.h @@ -0,0 +1,72 @@ +/* + * FreeRTOS Kernel V10.3.1 + * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ + +/* + * The FreeRTOS kernel's RISC-V port is split between the the code that is + * common across all currently supported RISC-V chips (implementations of the + * RISC-V ISA), and code that tailors the port to a specific RISC-V chip: + * + * + FreeRTOS\Source\portable\GCC\RISC-V-RV32\portASM.S contains the code that + * is common to all currently supported RISC-V chips. There is only one + * portASM.S file because the same file is built for all RISC-V target chips. + * + * + Header files called freertos_risc_v_chip_specific_extensions.h contain the + * code that tailors the FreeRTOS kernel's RISC-V port to a specific RISC-V + * chip. There are multiple freertos_risc_v_chip_specific_extensions.h files + * as there are multiple RISC-V chip implementations. + * + * !!!NOTE!!! + * TAKE CARE TO INCLUDE THE CORRECT freertos_risc_v_chip_specific_extensions.h + * HEADER FILE FOR THE CHIP IN USE. This is done using the assembler's (not the + * compiler's!) include path. For example, if the chip in use includes a core + * local interrupter (CLINT) and does not include any chip specific register + * extensions then add the path below to the assembler's include path: + * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions\RV32I_CLINT_no_extensions + * + */ + +/* + * NEORV32 chip specific extensions + */ + + +#ifndef __FREERTOS_RISC_V_EXTENSIONS_H__ +#define __FREERTOS_RISC_V_EXTENSIONS_H__ + +#define portasmHAS_SIFIVE_CLINT 0 +#define portasmHAS_MTIME 1 +#define portasmADDITIONAL_CONTEXT_SIZE 0 /* Must be even number on 32-bit cores. */ + +.macro portasmSAVE_ADDITIONAL_REGISTERS + /* No additional registers to save, so this macro does nothing. */ + .endm + +.macro portasmRESTORE_ADDITIONAL_REGISTERS + /* No additional registers to restore, so this macro does nothing. */ + .endm + +#endif /* __FREERTOS_RISC_V_EXTENSIONS_H__ */ diff --git a/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/full_demo/RegTest.s b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/full_demo/RegTest.s new file mode 100644 index 0000000..e274604 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/full_demo/RegTest.s @@ -0,0 +1,266 @@ +/* + * FreeRTOS Kernel V10.3.0 + * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ + + .extern ulRegTest1LoopCounter + .extern ulRegTest2LoopCounter + + .global vRegTest1Implementation + .global vRegTest2Implementation + +/*-----------------------------------------------------------*/ + +/* + * The register check tasks are described in the comments at the top of + * main_full.c. + */ + +.align( 4 ) +vRegTest1Implementation: + + /* Fill the core registers with known values. */ + li x5, 0x5 + li x6, 0x6 + li x7, 0x7 + li x8, 0x8 + li x9, 0x9 + li x10, 0xa + li x11, 0xb + li x12, 0xc + li x13, 0xd + li x14, 0xe + li x15, 0xf + li x16, 0x10 + li x17, 0x11 + li x18, 0x12 + li x19, 0x13 + li x20, 0x14 + li x21, 0x15 + li x22, 0x16 + li x23, 0x17 + li x24, 0x18 + li x25, 0x19 + li x26, 0x1a + li x27, 0x1b + li x28, 0x1c + li x29, 0x1d + li x30, 0x1e + +reg1_loop: + + /* Check each register still contains the expected known value. + vRegTest1Implementation uses x31 as the temporary, vRegTest2Implementation + uses x5 as the temporary. */ + li x31, 0x5 + bne x31, x5, reg1_error_loop + li x31, 0x6 + bne x31, x6, reg1_error_loop + li x31, 0x7 + bne x31, x7, reg1_error_loop + li x31, 0x8 + bne x31, x8, reg1_error_loop + li x31, 0x9 + bne x31, x9, reg1_error_loop + li x31, 0xa + bne x31, x10, reg1_error_loop + li x31, 0xb + bne x31, x11, reg1_error_loop + li x31, 0xc + bne x31, x12, reg1_error_loop + li x31, 0xd + bne x31, x13, reg1_error_loop + li x31, 0xe + bne x31, x14, reg1_error_loop + li x31, 0xf + bne x31, x15, reg1_error_loop + li x31, 0x10 + bne x31, x16, reg1_error_loop + li x31, 0x11 + bne x31, x17, reg1_error_loop + li x31, 0x12 + bne x31, x18, reg1_error_loop + li x31, 0x13 + bne x31, x19, reg1_error_loop + li x31, 0x14 + bne x31, x20, reg1_error_loop + li x31, 0x15 + bne x31, x21, reg1_error_loop + li x31, 0x16 + bne x31, x22, reg1_error_loop + li x31, 0x17 + bne x31, x23, reg1_error_loop + li x31, 0x18 + bne x31, x24, reg1_error_loop + li x31, 0x19 + bne x31, x25, reg1_error_loop + li x31, 0x1a + bne x31, x26, reg1_error_loop + li x31, 0x1b + bne x31, x27, reg1_error_loop + li x31, 0x1c + bne x31, x28, reg1_error_loop + li x31, 0x1d + bne x31, x29, reg1_error_loop + li x31, 0x1e + bne x31, x30, reg1_error_loop + + /* Everything passed, increment the loop counter. */ + lw x31, ulRegTest1LoopCounterConst + lw x30, 0(x31) + addi x30, x30, 1 + sw x30, 0(x31) + + /* Restore clobbered register reading for next loop. */ + li x30, 0x1e + + /* Yield to increase code coverage. */ + ecall + + /* Start again. */ + jal reg1_loop + +reg1_error_loop: + /* Jump here if a register contains an uxpected value. This stops the loop + counter being incremented so the check task knows an error was found. */ + ebreak + jal reg1_error_loop + +.align( 4 ) +ulRegTest1LoopCounterConst: .word ulRegTest1LoopCounter + +/*-----------------------------------------------------------*/ + +.align( 4 ) +vRegTest2Implementation: + + /* Fill the core registers with known values. */ + li x6, 0x61 + li x7, 0x71 + li x8, 0x81 + li x9, 0x91 + li x10, 0xa1 + li x11, 0xb1 + li x12, 0xc1 + li x13, 0xd1 + li x14, 0xe1 + li x15, 0xf1 + li x16, 0x20 + li x17, 0x21 + li x18, 0x22 + li x19, 0x23 + li x20, 0x24 + li x21, 0x25 + li x22, 0x26 + li x23, 0x27 + li x24, 0x28 + li x25, 0x29 + li x26, 0x2a + li x27, 0x2b + li x28, 0x2c + li x29, 0x2d + li x30, 0x2e + li x31, 0x2f + +Reg2_loop: + + /* Check each register still contains the expected known value. + vRegTest2Implementation uses x5 as the temporary, vRegTest1Implementation + uses x31 as the temporary. */ + li x5, 0x61 + bne x5, x6, reg2_error_loop + li x5, 0x71 + bne x5, x7, reg2_error_loop + li x5, 0x81 + bne x5, x8, reg2_error_loop + li x5, 0x91 + bne x5, x9, reg2_error_loop + li x5, 0xa1 + bne x5, x10, reg2_error_loop + li x5, 0xb1 + bne x5, x11, reg2_error_loop + li x5, 0xc1 + bne x5, x12, reg2_error_loop + li x5, 0xd1 + bne x5, x13, reg2_error_loop + li x5, 0xe1 + bne x5, x14, reg2_error_loop + li x5, 0xf1 + bne x5, x15, reg2_error_loop + li x5, 0x20 + bne x5, x16, reg2_error_loop + li x5, 0x21 + bne x5, x17, reg2_error_loop + li x5, 0x22 + bne x5, x18, reg2_error_loop + li x5, 0x23 + bne x5, x19, reg2_error_loop + li x5, 0x24 + bne x5, x20, reg2_error_loop + li x5, 0x25 + bne x5, x21, reg2_error_loop + li x5, 0x26 + bne x5, x22, reg2_error_loop + li x5, 0x27 + bne x5, x23, reg2_error_loop + li x5, 0x28 + bne x5, x24, reg2_error_loop + li x5, 0x29 + bne x5, x25, reg2_error_loop + li x5, 0x2a + bne x5, x26, reg2_error_loop + li x5, 0x2b + bne x5, x27, reg2_error_loop + li x5, 0x2c + bne x5, x28, reg2_error_loop + li x5, 0x2d + bne x5, x29, reg2_error_loop + li x5, 0x2e + bne x5, x30, reg2_error_loop + li x5, 0x2f + bne x5, x31, reg2_error_loop + + /* Everything passed, increment the loop counter. */ + lw x5, ulRegTest2LoopCounterConst + lw x6, 0(x5) + addi x6, x6, 1 + sw x6, 0(x5) + + /* Restore clobbered register reading for next loop. */ + li x6, 0x61 + + /* Start again. */ + jal Reg2_loop + +reg2_error_loop: + /* Jump here if a register contains an uxpected value. This stops the loop + counter being incremented so the check task knows an error was found. */ + ebreak + jal reg2_error_loop + +.align( 4 ) +ulRegTest2LoopCounterConst: .word ulRegTest2LoopCounter + + diff --git a/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/makefile b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/makefile new file mode 100644 index 0000000..cdc8c1a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/makefile @@ -0,0 +1,144 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + + +# ***************************************************************************** +# USER CONFIGURATION +# ***************************************************************************** +# User's application sources (*.c, *.cpp, *.s, *.S); add additional files here +APP_SRC ?= $(wildcard ./*.c) $(wildcard ./*.s) $(wildcard ./*.cpp) $(wildcard ./*.S) + +# User's application include folders (don't forget the '-I' before each entry) +APP_INC ?= -I . +# User's application include folders - for assembly files only (don't forget the '-I' before each entry) +ASM_INC ?= -I . + +# Optimization +EFFORT ?= -Os + +# Compiler toolchain +RISCV_PREFIX ?= riscv32-unknown-elf- + +# CPU architecture and ABI +MARCH ?= rv32i +MABI ?= ilp32 + +# User flags for additional configuration (will be added to compiler flags) +USER_FLAGS ?= + +# Relative or absolute path to the NEORV32 home folder +NEORV32_HOME ?= ../../.. +# ***************************************************************************** + + + +# ----------------------------------------------------------------------------- +# FreeRTOS +# ----------------------------------------------------------------------------- +ifneq (,$(findstring RUN_FREERTOS_DEMO,$(USER_FLAGS))) +# FreeRTOS home folder (adapt this!) +FREERTOS_HOME ?= /mnt/n/Projects/FreeRTOSv10.4.1 + +# FreeRTOS RISC-V specific +APP_SRC += $(wildcard $(FREERTOS_HOME)/FreeRTOS/Source/portable/GCC/RISC-V/*.c) +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Source/portable/GCC/RISC-V/portASM.S + +APP_INC += -I $(FREERTOS_HOME)/FreeRTOS/Source/portable/GCC/RISC-V + +# FreeRTOS core +APP_SRC += $(wildcard $(FREERTOS_HOME)/FreeRTOS/Source/*.c) +APP_SRC += $(wildcard $(FREERTOS_HOME)/FreeRTOS/Source/portable/MemMang/heap_4.c) + +APP_INC += -I $(FREERTOS_HOME)/FreeRTOS/Source/include + +# FreeRTOS sources for the full_demo +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/blocktim.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/dynamic.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/EventGroupsDemo.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/GenQTest.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/recmutex.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/TaskNotify.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/TaskNotifyArray.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS/Demo/Common/Minimal/TimerDemo.c + +APP_INC += -I $(FREERTOS_HOME)/FreeRTOS/Demo/Common/include + +# NEORV32 specific +ASM_INC += -DportasmHANDLE_INTERRUPT=SystemIrqHandler + +APP_INC += -I chip_specific_extensions/neorv32 + +ASM_INC += -I chip_specific_extensions/neorv32 + +# Demo application +APP_SRC += blinky_demo/main_blinky.c +APP_SRC += full_demo/main_full.c +APP_SRC += full_demo/RegTest.s +endif + +# ----------------- +# FreeRTOS-Plus-CLI +# ----------------- +ifneq (,$(findstring FREERTOS_PLUS_CLI,$(USER_FLAGS))) +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c + +APP_INC += -I $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI +endif + +# ----------------- +# FreeRTOS-Plus-TCP +# ----------------- +ifneq (,$(findstring FREERTOS_PLUS_TCP,$(USER_FLAGS))) +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_ARP.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_DHCP.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_DNS.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_IP.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_Sockets.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_Stream_Buffer.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_TCP_IP.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_TCP_WIN.c +APP_SRC += $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/FreeRTOS_UDP_IP.c + +APP_INC += -I $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include +APP_INC += -I $(FREERTOS_HOME)/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/portable/Compiler/GCC +endif + + + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_gptmr/makefile b/Libs/RiscV/NEORV32/sw/example/demo_gptmr/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_gptmr/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_neopixel/makefile b/Libs/RiscV/NEORV32/sw/example/demo_neopixel/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_neopixel/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_pwm/makefile b/Libs/RiscV/NEORV32/sw/example/demo_pwm/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_pwm/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_slink/makefile b/Libs/RiscV/NEORV32/sw/example/demo_slink/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_slink/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_spi/makefile b/Libs/RiscV/NEORV32/sw/example/demo_spi/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_spi/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_trng/makefile b/Libs/RiscV/NEORV32/sw/example/demo_trng/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_trng/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_twi/makefile b/Libs/RiscV/NEORV32/sw/example/demo_twi/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_twi/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_wdt/makefile b/Libs/RiscV/NEORV32/sw/example/demo_wdt/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_wdt/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/demo_xirq/makefile b/Libs/RiscV/NEORV32/sw/example/demo_xirq/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/demo_xirq/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/dhrystone/LICENSE b/Libs/RiscV/NEORV32/sw/example/dhrystone/LICENSE new file mode 100644 index 0000000..ab666a9 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/dhrystone/LICENSE @@ -0,0 +1,9 @@ +Original LICENSE from https://github.com/sifive/benchmark-dhrystone + +Dhrystone +------------------------------------------------------------------------------ +There is no explicit license defined. They were originally +written in ADA by Reinhold P. Weicker and translated to C by Rick Richardson . + +The source obtained from the following site: +https://fossies.org/linux/privat/old/dhrystone-2.1.tar.gz diff --git a/Libs/RiscV/NEORV32/sw/example/dhrystone/README.md b/Libs/RiscV/NEORV32/sw/example/dhrystone/README.md new file mode 100644 index 0000000..81c4ec1 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/dhrystone/README.md @@ -0,0 +1,98 @@ +# Dhrystone Benchmark + +:copyright: Original sources from [https://github.com/sifive/benchmark-dhrystone](https://github.com/sifive/benchmark-dhrystone) (also, see `LICENSE`). +The source code has been modified for the NEORV32 processor. + +To compile the NEORV32 executable: +``` +neorv32/sw/example/dhrystone$ sh dhrystone.sh +``` + +The default number of iterations is 2000000. You can modify this by changing `USER_FLAGS+=-DDHRY_ITERS=2000000` in `dhrystone.sh`. +The default optimization level (EFFORT) is `O3`. + +:warning: Dhrystone will require an IMEM size of 16kB and a DMEM size of 16kB. The MTIME machine timer is used for timing evaluation. + +:construction: Porting Dhrystone is still work-in-progress. Performance results might be incorrect and not optimized. +All results only show the integer parts. + +### Exemplary Output + +Output generated for processor HW version [v1.5.9.1](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md) +using performance-optimized configuration options. + +``` +NEORV32: Processor running at 100000000 Hz +NEORV32: Executing Dhrystone (2000000 iterations). This may take some time... + + +Dhrystone Benchmark, Version 2.1 (Language: C) + +Program compiled without 'register' attribute + +Execution starts, 2000000 runs through Dhrystone +Execution ends + +Final values of the variables used in the benchmark: + +Int_Glob: 5 + should be: 5 +Bool_Glob: 1 + should be: 1 +Ch_1_Glob: A + should be: A +Ch_2_Glob: B + should be: B +Arr_1_Glob[8]: 7 + should be: 7 +Arr_2_Glob[8][7]: 2000010 + should be: Number_Of_Runs + 10 +Ptr_Glob-> + Ptr_Comp: -2147467428 + should be: (implementation-dependent) + Discr: 0 + should be: 0 + Enum_Comp: 2 + should be: 2 + Int_Comp: 17 + should be: 17 + Str_Comp: DHRYSTONE PROGRAM, SOME STRING + should be: DHRYSTONE PROGRAM, SOME STRING +Next_Ptr_Glob-> + Ptr_Comp: -2147467428 + should be: (implementation-dependent), same as above + Discr: 0 + should be: 0 + Enum_Comp: 1 + should be: 1 + Int_Comp: 18 + should be: 18 + Str_Comp: DHRYSTONE PROGRAM, SOME STRING + should be: DHRYSTONE PROGRAM, SOME STRING +Int_1_Loc: 5 + should be: 5 +Int_2_Loc: 13 + should be: 13 +Int_3_Loc: 7 + should be: 7 +Enum_Loc: 1 + should be: 1 +Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING + should be: DHRYSTONE PROGRAM, 1'ST STRING +Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING + should be: DHRYSTONE PROGRAM, 2'ND STRING + +Microseconds for one run through Dhrystone: 13 +Dhrystones per Second: 76923 + +NEORV32: << DETAILED RESULTS (integer parts only) >> +NEORV32: Total cycles: 2662000187 +NEORV32: Cycles per second: 100000000 +NEORV32: Total runs: 2000000 + +NEORV32: DMIPS/s: 76923 +NEORV32: DMIPS/MHz: 769 + +NEORV32: VAX DMIPS/s: 43 +NEORV32: VAX DMIPS/MHz: 43/100 +``` diff --git a/Libs/RiscV/NEORV32/sw/example/dhrystone/dhry.h b/Libs/RiscV/NEORV32/sw/example/dhrystone/dhry.h new file mode 100644 index 0000000..f296c1b --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/dhrystone/dhry.h @@ -0,0 +1,451 @@ +/* + **************************************************************************** + * + * "DHRYSTONE" Benchmark Program + * ----------------------------- + * + * Version: C, Version 2.1 + * + * File: dhry.h (part 1 of 3) + * + * Date: May 25, 1988 + * + * Author: Reinhold P. Weicker + * Siemens AG, E STE 35 + * Postfach 3240 + * 8520 Erlangen + * Germany (West) + * Phone: [xxx-49]-9131-7-20330 + * (8-17 Central European Time) + * Usenet: ..!mcvax!unido!estevax!weicker + * + * Original Version (in Ada) published in + * "Communications of the ACM" vol. 27., no. 10 (Oct. 1984), + * pp. 1013 - 1030, together with the statistics + * on which the distribution of statements etc. is based. + * + * In this C version, the following C library functions are used: + * - strcpy, strcmp (inside the measurement loop) + * - printf, scanf (outside the measurement loop) + * In addition, Berkeley UNIX system calls "times ()" or "time ()" + * are used for execution time measurement. For measurements + * on other systems, these calls have to be changed. + * + * Collection of Results: + * Reinhold Weicker (address see above) and + * + * Rick Richardson + * PC Research. Inc. + * 94 Apple Orchard Drive + * Tinton Falls, NJ 07724 + * Phone: (201) 389-8963 (9-17 EST) + * Usenet: ...!uunet!pcrat!rick + * + * Please send results to Rick Richardson and/or Reinhold Weicker. + * Complete information should be given on hardware and software used. + * Hardware information includes: Machine type, CPU, type and size + * of caches; for microprocessors: clock frequency, memory speed + * (number of wait states). + * Software information includes: Compiler (and runtime library) + * manufacturer and version, compilation switches, OS version. + * The Operating System version may give an indication about the + * compiler; Dhrystone itself performs no OS calls in the measurement loop. + * + * The complete output generated by the program should be mailed + * such that at least some checks for correctness can be made. + * + *************************************************************************** + * + * History: This version C/2.1 has been made for two reasons: + * + * 1) There is an obvious need for a common C version of + * Dhrystone, since C is at present the most popular system + * programming language for the class of processors + * (microcomputers, minicomputers) where Dhrystone is used most. + * There should be, as far as possible, only one C version of + * Dhrystone such that results can be compared without + * restrictions. In the past, the C versions distributed + * by Rick Richardson (Version 1.1) and by Reinhold Weicker + * had small (though not significant) differences. + * + * 2) As far as it is possible without changes to the Dhrystone + * statistics, optimizing compilers should be prevented from + * removing significant statements. + * + * This C version has been developed in cooperation with + * Rick Richardson (Tinton Falls, NJ), it incorporates many + * ideas from the "Version 1.1" distributed previously by + * him over the UNIX network Usenet. + * I also thank Chaim Benedelac (National Semiconductor), + * David Ditzel (SUN), Earl Killian and John Mashey (MIPS), + * Alan Smith and Rafael Saavedra-Barrera (UC at Berkeley) + * for their help with comments on earlier versions of the + * benchmark. + * + * Changes: In the initialization part, this version follows mostly + * Rick Richardson's version distributed via Usenet, not the + * version distributed earlier via floppy disk by Reinhold Weicker. + * As a concession to older compilers, names have been made + * unique within the first 8 characters. + * Inside the measurement loop, this version follows the + * version previously distributed by Reinhold Weicker. + * + * At several places in the benchmark, code has been added, + * but within the measurement loop only in branches that + * are not executed. The intention is that optimizing compilers + * should be prevented from moving code out of the measurement + * loop, or from removing code altogether. Since the statements + * that are executed within the measurement loop have NOT been + * changed, the numbers defining the "Dhrystone distribution" + * (distribution of statements, operand types and locality) + * still hold. Except for sophisticated optimizing compilers, + * execution times for this version should be the same as + * for previous versions. + * + * Since it has proven difficult to subtract the time for the + * measurement loop overhead in a correct way, the loop check + * has been made a part of the benchmark. This does have + * an impact - though a very minor one - on the distribution + * statistics which have been updated for this version. + * + * All changes within the measurement loop are described + * and discussed in the companion paper "Rationale for + * Dhrystone version 2". + * + * Because of the self-imposed limitation that the order and + * distribution of the executed statements should not be + * changed, there are still cases where optimizing compilers + * may not generate code for some statements. To a certain + * degree, this is unavoidable for small synthetic benchmarks. + * Users of the benchmark are advised to check code listings + * whether code is generated for all statements of Dhrystone. + * + * Version 2.1 is identical to version 2.0 distributed via + * the UNIX network Usenet in March 1988 except that it corrects + * some minor deficiencies that were found by users of version 2.0. + * The only change within the measurement loop is that a + * non-executed "else" part was added to the "if" statement in + * Func_3, and a non-executed "else" part removed from Proc_3. + * + *************************************************************************** + * + * Defines: The following "Defines" are possible: + * -DREG=register (default: Not defined) + * As an approximation to what an average C programmer + * might do, the "register" storage class is applied + * (if enabled by -DREG=register) + * - for local variables, if they are used (dynamically) + * five or more times + * - for parameters if they are used (dynamically) + * six or more times + * Note that an optimal "register" strategy is + * compiler-dependent, and that "register" declarations + * do not necessarily lead to faster execution. + * -DNOSTRUCTASSIGN (default: Not defined) + * Define if the C compiler does not support + * assignment of structures. + * -DNOENUMS (default: Not defined) + * Define if the C compiler does not support + * enumeration types. + * -DTIMES (default) + * -DTIME + * The "times" function of UNIX (returning process times) + * or the "time" function (returning wallclock time) + * is used for measurement. + * For single user machines, "time ()" is adequate. For + * multi-user machines where you cannot get single-user + * access, use the "times ()" function. If you have + * neither, use a stopwatch in the dead of night. + * "printf"s are provided marking the points "Start Timer" + * and "Stop Timer". DO NOT use the UNIX "time(1)" + * command, as this will measure the total time to + * run this program, which will (erroneously) include + * the time to allocate storage (malloc) and to perform + * the initialization. + * -DHZ=nnn + * In Berkeley UNIX, the function "times" returns process + * time in 1/HZ seconds, with HZ = 60 for most systems. + * CHECK YOUR SYSTEM DESCRIPTION BEFORE YOU JUST APPLY + * A VALUE. + * + *************************************************************************** + * + * Compilation model and measurement (IMPORTANT): + * + * This C version of Dhrystone consists of three files: + * - dhry.h (this file, containing global definitions and comments) + * - dhry_1.c (containing the code corresponding to Ada package Pack_1) + * - dhry_2.c (containing the code corresponding to Ada package Pack_2) + * + * The following "ground rules" apply for measurements: + * - Separate compilation + * - No procedure merging + * - Otherwise, compiler optimizations are allowed but should be indicated + * - Default results are those without register declarations + * See the companion paper "Rationale for Dhrystone Version 2" for a more + * detailed discussion of these ground rules. + * + * For 16-Bit processors (e.g. 80186, 80286), times for all compilation + * models ("small", "medium", "large" etc.) should be given if possible, + * together with a definition of these models for the compiler system used. + * + ************************************************************************** + * + * Dhrystone (C version) statistics: + * + * [Comment from the first distribution, updated for version 2. + * Note that because of language differences, the numbers are slightly + * different from the Ada version.] + * + * The following program contains statements of a high level programming + * language (here: C) in a distribution considered representative: + * + * assignments 52 (51.0 %) + * control statements 33 (32.4 %) + * procedure, function calls 17 (16.7 %) + * + * 103 statements are dynamically executed. The program is balanced with + * respect to the three aspects: + * + * - statement type + * - operand type + * - operand locality + * operand global, local, parameter, or constant. + * + * The combination of these three aspects is balanced only approximately. + * + * 1. Statement Type: + * ----------------- number + * + * V1 = V2 9 + * (incl. V1 = F(..) + * V = Constant 12 + * Assignment, 7 + * with array element + * Assignment, 6 + * with record component + * -- + * 34 34 + * + * X = Y +|-|"&&"|"|" Z 5 + * X = Y +|-|"==" Constant 6 + * X = X +|- 1 3 + * X = Y *|/ Z 2 + * X = Expression, 1 + * two operators + * X = Expression, 1 + * three operators + * -- + * 18 18 + * + * if .... 14 + * with "else" 7 + * without "else" 7 + * executed 3 + * not executed 4 + * for ... 7 | counted every time + * while ... 4 | the loop condition + * do ... while 1 | is evaluated + * switch ... 1 + * break 1 + * declaration with 1 + * initialization + * -- + * 34 34 + * + * P (...) procedure call 11 + * user procedure 10 + * library procedure 1 + * X = F (...) + * function call 6 + * user function 5 + * library function 1 + * -- + * 17 17 + * --- + * 103 + * + * The average number of parameters in procedure or function calls + * is 1.82 (not counting the function values aX * + * + * 2. Operators + * ------------ + * number approximate + * percentage + * + * Arithmetic 32 50.8 + * + * + 21 33.3 + * - 7 11.1 + * * 3 4.8 + * / (int div) 1 1.6 + * + * Comparison 27 42.8 + * + * == 9 14.3 + * /= 4 6.3 + * > 1 1.6 + * < 3 4.8 + * >= 1 1.6 + * <= 9 14.3 + * + * Logic 4 6.3 + * + * && (AND-THEN) 1 1.6 + * | (OR) 1 1.6 + * ! (NOT) 2 3.2 + * + * -- ----- + * 63 100.1 + * + * + * 3. Operand Type (counted once per operand reference): + * --------------- + * number approximate + * percentage + * + * Integer 175 72.3 % + * Character 45 18.6 % + * Pointer 12 5.0 % + * String30 6 2.5 % + * Array 2 0.8 % + * Record 2 0.8 % + * --- ------- + * 242 100.0 % + * + * When there is an access path leading to the final operand (e.g. a record + * component), only the final data type on the access path is counted. + * + * + * 4. Operand Locality: + * ------------------- + * number approximate + * percentage + * + * local variable 114 47.1 % + * global variable 22 9.1 % + * parameter 45 18.6 % + * value 23 9.5 % + * reference 22 9.1 % + * function result 6 2.5 % + * constant 55 22.7 % + * --- ------- + * 242 100.0 % + * + * + * The program does not compute anything meaningful, but it is syntactically + * and semantically correct. All variables have a value assigned to them + * before they are used as a source operand. + * + * There has been no explicit effort to account for the effects of a + * cache, or to balance the use of long or short displacements for code or + * data. + * + *************************************************************************** + */ + +#ifndef dhrystone_h +#define dhrystone_h + +/* Compiler and system dependent definitions: */ + +#ifndef TIME +#undef TIMES +#define TIMES +#endif + /* Use times(2) time function unless */ + /* explicitly defined otherwise */ + +//#ifdef MSC_CLOCK +//#undef HZ +//#undef TIMES +//#include +//#define HZ CLK_TCK +//#endif +// /* Use Microsoft C hi-res clock */ + +#define HZ SYSINFO_CLK + +#ifdef TIMES +#include +#include + /* for "times" */ +#endif + +#define Mic_secs_Per_Second 1000000 + /* Berkeley UNIX C returns process times in seconds/HZ */ + +#ifdef NOSTRUCTASSIGN +#define structassign(d, s) memcpy(&(d), &(s), sizeof(d)) +#else +#define structassign(d, s) d = s +#endif + +#ifdef NOENUM +#define Ident_1 0 +#define Ident_2 1 +#define Ident_3 2 +#define Ident_4 3 +#define Ident_5 4 + typedef int Enumeration; +#else + typedef enum {Ident_1, Ident_2, Ident_3, Ident_4, Ident_5} + Enumeration; +#endif + /* for boolean and enumeration types in Ada, Pascal */ + +/* General definitions: */ + +#include + /* for strcpy, strcmp */ + +#define Null 0 + /* Value of a Null pointer */ +#define true 1 +#define false 0 + +typedef int One_Thirty; +typedef int One_Fifty; +typedef char Capital_Letter; +typedef int Boolean; +typedef char Str_30 [31]; +typedef int Arr_1_Dim [50]; +typedef int Arr_2_Dim [50] [50]; + +typedef struct record + { + struct record *Ptr_Comp; + Enumeration Discr; + union { + struct { + Enumeration Enum_Comp; + int Int_Comp; + char Str_Comp [31]; + } var_1; + struct { + Enumeration E_Comp_2; + char Str_2_Comp [31]; + } var_2; + struct { + char Ch_1_Comp; + char Ch_2_Comp; + } var_3; + } variant; + } Rec_Type, *Rec_Pointer; + + +// function prototypes +Enumeration Func_1 (Ch_1_Par_Val, Ch_2_Par_Val); +Boolean Func_2 (Str_1_Par_Ref, Str_2_Par_Ref); +Boolean Func_3 (Enum_Par_Val); +void Proc_1 (Ptr_Val_Par); +void Proc_2 (Int_Par_Ref); +void Proc_3 (Ptr_Ref_Par); +void Proc_4 (void); +void Proc_5 (void); +void Proc_6 (Enum_Val_Par, Enum_Ref_Par); +void Proc_7 (Int_1_Par_Val, Int_2_Par_Val, Int_Par_Ref); +void Proc_8 (Arr_1_Par_Ref, Arr_2_Par_Ref, Int_1_Par_Val, Int_2_Par_Val); +int strcmp(const char *p1, const char *p2); + +#endif // dhrystone_h diff --git a/Libs/RiscV/NEORV32/sw/example/dhrystone/dhrystone.sh b/Libs/RiscV/NEORV32/sw/example/dhrystone/dhrystone.sh new file mode 100644 index 0000000..89f0c79 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/dhrystone/dhrystone.sh @@ -0,0 +1 @@ +make USER_FLAGS+=-DRUN_DHRYSTONE USER_FLAGS+=-DDHRY_ITERS=2000000 USER_FLAGS+=-DNOENUM MARCH=rv32imc EFFORT=-O3 clean_all exe diff --git a/Libs/RiscV/NEORV32/sw/example/dhrystone/makefile b/Libs/RiscV/NEORV32/sw/example/dhrystone/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/dhrystone/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/floating_point_test/README.md b/Libs/RiscV/NEORV32/sw/example/floating_point_test/README.md new file mode 100644 index 0000000..80c4bb1 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/floating_point_test/README.md @@ -0,0 +1,52 @@ +# NEORV32 `Zfinx` Floating-Point Extension + +The NEORV32 floating-point unit (FPU) implements the `Zfinx` RISC-V extension. The extensions can be enabled via the `CPU_EXTENSION_RISCV_Zfinx` top configuration generic. + +The RISC-V `Zfinx` single-precision floating-point extensions uses the integer register file `x` instead of the dedicated floating-point `f` register file (which is +defined by the RISC-V `F` single-precision floating-point extension). Hence, the standard data transfer instructions from the `F` extension are **not** available in `Zfinx`: + +* floating-point load/store operations (`FLW`, `FSW`) and their compressed versions +* integer register file `x` <-> floating point register file `f` move operations (`FMV.W.X`, `FMV.X.W`) + +:information_source: More information regarding the RISC-V `Zfinx` single-precision floating-point extension can be found in the official GitHub repo: +[`github.com/riscv/riscv-zfinx`](https://github.com/riscv/riscv-zfinx). + +:warning: The RISC-V `Zfinx` extension is not officially ratified yet, but it is assumed to remain unchanged. Hence, it is not supported by the upstream RISC-V GCC port. +Make sure you **do not** use the `f` ISA attribute when compiling applications that use floating-point arithmetic (`MARCH=rv32i*f*` is **NOT ALLOWED!**). + + +### :warning: FPU Limitations + +* The FPU **does not support subnormal numbers** yet. Subnormal FPU inputs and subnormal FPU results are always *flushed to zero*. The *classify* instruction `FCLASS` will never set the "subnormal" mask bits. +* Rounding mode `ob100` "round to nearest, ties to max magnitude" is not supported yet (this and all invalid rounding mode configurations behave as "round towards zero" (truncation)). + + +## Intrinsic Library + +The NEORV32 `Zfinx` floating-point extension can still be used using the provided **intrinsic library**. This library uses "custom" inline assmbly instructions +wrapped within normal C-language functions. Each original instruction of the extension can be utilized using an according intrinsic function. + +For example, the floating-point addition instruction `FADD.S` can be invoked using the according intrinsic function: + +```c +float riscv_intrinsic_fadds(float rs1, float rs2) +``` + +The pure-software emulation instruction, which uses the standard built-in functions to execute all floating-point operations, is available via wrapper function. The +emulation function for the `FADD.S` instruction is: + +```c +float riscv_emulate_fadds(float rs1, float rs2) +``` + +The emulation functions as well as the available intrinsics for the `Zfinx` extension are located in `neorv32_zfinx_extension_intrinsics.h`. + +The provided test program `main.c` verifies all currently implemented `Zfinx` instructions by checking the functionality against the pure software-based emulation model +(GCC soft-float library). + + +## Resources + +* Great page with online calculators for floating-point arithmetic: [http://www.ecs.umass.edu/ece/koren/arith/simulator/](http://www.ecs.umass.edu/ece/koren/arith/simulator/) +* A handy tool for visualizing floating-point numbers in their binary representation: [https://www.h-schmidt.net/FloatConverter/IEEE754.html](https://www.h-schmidt.net/FloatConverter/IEEE754.html) +* This helped me to understand what results the different FPU operation generate when having "special" inputs like NaN: [https://techdocs.altium.com/display/FPGA/IEEE+754+Standard+-+Overview](https://techdocs.altium.com/display/FPGA/IEEE+754+Standard+-+Overview) diff --git a/Libs/RiscV/NEORV32/sw/example/floating_point_test/makefile b/Libs/RiscV/NEORV32/sw/example/floating_point_test/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/floating_point_test/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/floating_point_test/neorv32_zfinx_extension_intrinsics.h b/Libs/RiscV/NEORV32/sw/example/floating_point_test/neorv32_zfinx_extension_intrinsics.h new file mode 100644 index 0000000..5b4b578 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/floating_point_test/neorv32_zfinx_extension_intrinsics.h @@ -0,0 +1,1370 @@ +// ################################################################################################# +// # << NEORV32 - Intrinsics + Emulation Functions for the RISC-V "Zfinx" CPU extension >> # +// # ********************************************************************************************* # +// # The intrinsics provided by this library allow to use the hardware floating-point unit of the # +// # RISC-V Zfinx CPU extension without the need for Zfinx support by the compiler / toolchain. # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file floating_point_test/neorv32_zfinx_extension_intrinsics.h + * @author Stephan Nolting + * + * @brief "Intrinsic" library for the NEORV32 single-precision floating-point in x registers (Zfinx) extension + * @brief Also provides emulation functions for all intrinsics (functionality re-built in pure software). The functionality of the emulation + * @brief functions is based on the RISC-V floating-point spec. + * + * @note All operations from this library use the default GCC "round to nearest, ties to even" rounding mode. + * + * @warning This library is just a temporary fall-back until the Zfinx extensions are supported by the upstream RISC-V GCC port. + **************************************************************************/ + +#ifndef neorv32_zfinx_extension_intrinsics_h +#define neorv32_zfinx_extension_intrinsics_h + +#define __USE_GNU + +#include +//#pragma STDC FENV_ACCESS ON + +#define _GNU_SOURCE + +#include +#include + + +/**********************************************************************//** + * Sanity check + **************************************************************************/ +#if defined __riscv_f || (__riscv_flen == 32) + #error Application programs using the Zfinx intrinsic library have to be compiled WITHOUT the MARCH ISA attribute! +#endif + + +/**********************************************************************//** + * Custom data type to access floating-point values as native floats and in binary representation + **************************************************************************/ +typedef union +{ + uint32_t binary_value; /**< Access as native float */ + float float_value; /**< Access in binary representation */ +} float_conv_t; + + +// ################################################################################################ +// Helper functions +// ################################################################################################ + +/**********************************************************************//** + * Flush to zero if denormal number. + * + * @warning Subnormal numbers are not supported yet! Flush them to zero. + * + * @param[in] tmp Source operand. + * @return Result. + **************************************************************************/ +float subnormal_flush(float tmp) { + + float res = tmp; + + if (fpclassify(tmp) == FP_SUBNORMAL) { + if (signbit(tmp) != 0) { + res = -0.0f; + } + else { + res = +0.0f; + } + } + + return res; +} + + +// ################################################################################################ +// Exception access +// ################################################################################################ + +/**********************************************************************//** + * Get exception flags from fflags CSR (floating-point hardware). + * + * @return Floating point exception status word. + **************************************************************************/ +uint32_t get_hw_exceptions(void) { + + uint32_t res = neorv32_cpu_csr_read(CSR_FFLAGS); + + neorv32_cpu_csr_write(CSR_FFLAGS, 0); // clear status word + + return res; +} + + +/**********************************************************************//** + * Get exception flags from C runtime (floating-point emulation). + * + * @warning WORK-IN-PROGRESS! + * + * @return Floating point exception status word. + **************************************************************************/ +uint32_t get_sw_exceptions(void) { + + const uint32_t FP_EXC_NV_C = 1 << 0; // invalid operation + const uint32_t FP_EXC_DZ_C = 1 << 1; // divide by zero + const uint32_t FP_EXC_OF_C = 1 << 2; // overflow + const uint32_t FP_EXC_UF_C = 1 << 3; // underflow + const uint32_t FP_EXC_NX_C = 1 << 4; // inexact + + int fpeRaised = fetestexcept(FE_ALL_EXCEPT); + + uint32_t res = 0; + + if (fpeRaised & FE_INVALID) { res |= FP_EXC_NV_C; } + if (fpeRaised & FE_DIVBYZERO) { res |= FP_EXC_DZ_C; } + if (fpeRaised & FE_OVERFLOW) { res |= FP_EXC_OF_C; } + if (fpeRaised & FE_UNDERFLOW) { res |= FP_EXC_UF_C; } + if (fpeRaised & FE_INEXACT) { res |= FP_EXC_NX_C; } + + feclearexcept(FE_ALL_EXCEPT); + + return res; +} + + +// ################################################################################################ +// "Intrinsics" +// ################################################################################################ + +/**********************************************************************//** + * Single-precision floating-point addition + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fadds(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fadd.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0000000, a1, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point subtraction + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fsubs(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fsub.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0000100, a1, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point multiplication + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fmuls(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fmul.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0001000, a1, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point minimum + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fmins(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fmin.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010100, a1, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point maximum + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fmaxs(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fmax.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010100, a1, a0, 0b001, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point convert float to unsigned integer + * + * @param[in] rs1 Source operand 1 (a0). + * @return Result. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_fcvt_wus(float rs1) { + + float_conv_t opa; + opa.float_value = rs1; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // fcvt.wu.s a0, a0 + CUSTOM_INSTR_R2_TYPE(0b1100000, x1, a0, 0b000, a0, 0b1010011); + + return result; +} + + +/**********************************************************************//** + * Single-precision floating-point convert float to signed integer + * + * @param[in] rs1 Source operand 1 (a0). + * @return Result. + **************************************************************************/ +inline int32_t __attribute__ ((always_inline)) riscv_intrinsic_fcvt_ws(float rs1) { + + float_conv_t opa; + opa.float_value = rs1; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // fcvt.w.s a0, a0 + CUSTOM_INSTR_R2_TYPE(0b1100000, x0, a0, 0b000, a0, 0b1010011); + + return (int32_t)result; +} + + +/**********************************************************************//** + * Single-precision floating-point convert unsigned integer to float + * + * @param[in] rs1 Source operand 1 (a0). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fcvt_swu(uint32_t rs1) { + + float_conv_t res; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // fcvt.s.wu a0, a0 + CUSTOM_INSTR_R2_TYPE(0b1101000, x1, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point convert signed integer to float + * + * @param[in] rs1 Source operand 1 (a0). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fcvt_sw(int32_t rs1) { + + float_conv_t res; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = (uint32_t)rs1; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // fcvt.s.w a0, a0 + CUSTOM_INSTR_R2_TYPE(0b1101000, x0, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point equal comparison + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_feqs(float rs1, float rs2) { + + float_conv_t opa, opb; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // feq.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b1010000, a1, a0, 0b010, a0, 0b1010011); + + return result; +} + + +/**********************************************************************//** + * Single-precision floating-point less-than comparison + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_flts(float rs1, float rs2) { + + float_conv_t opa, opb; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // flt.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b1010000, a1, a0, 0b001, a0, 0b1010011); + + return result; +} + + +/**********************************************************************//** + * Single-precision floating-point less-than-or-equal comparison + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_fles(float rs1, float rs2) { + + float_conv_t opa, opb; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fle.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b1010000, a1, a0, 0b000, a0, 0b1010011); + + return result; +} + + +/**********************************************************************//** + * Single-precision floating-point sign-injection + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fsgnjs(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fsgnj.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010000, a1, a0, 0b000, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point sign-injection NOT + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fsgnjns(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fsgnjn.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010000, a1, a0, 0b001, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point sign-injection XOR + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fsgnjxs(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fsgnjx.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0010000, a1, a0, 0b010, a0, 0b1010011); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point number classification + * + * @param[in] rs1 Source operand 1 (a0). + * @return Result. + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) riscv_intrinsic_fclasss(float rs1) { + + float_conv_t opa; + opa.float_value = rs1; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("" : [output] "=r" (result) : [input_i] "r" (tmp_a)); + + // fclass.s a0, a0 + CUSTOM_INSTR_R2_TYPE(0b1110000, x0, a0, 0b001, a0, 0b1010011); + + return result; +} + + +// ################################################################################################ +// !!! UNSUPPORTED instructions !!! +// ################################################################################################ + +/**********************************************************************//** + * Single-precision floating-point division + * + * @warning This instruction is not supported and should raise an illegal instruction exception when executed. + * + * @param[in] rs1 Source operand 1 (a0). + * @param[in] rs2 Source operand 2 (a1). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fdivs(float rs1, float rs2) { + + float_conv_t opa, opb, res; + opa.float_value = rs1; + opb.float_value = rs2; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + + // fdiv.s a0, a0, x1 + CUSTOM_INSTR_R2_TYPE(0b0001100, a1, a0, 0b000, a0, 0b1010011); + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add %[res], %[input], x0" : [res] "=r" (result) : [input] "r" (result) ); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point square root + * + * @warning This instruction is not supported and should raise an illegal instruction exception when executed. + * + * @param[in] rs1 Source operand 1 (a0). + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fsqrts(float rs1) { + + float_conv_t opa, res; + opa.float_value = rs1; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add x0, %[input_i], x0" : : [input_i] "r" (tmp_a)); + + // fsqrt.s a0, a0, a1 + CUSTOM_INSTR_R2_TYPE(0b0101100, a1, a0, 0b000, a0, 0b1010011); + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add %[res], %[input], x0" : [res] "=r" (result) : [input] "r" (result) ); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point fused multiply-add + * + * @warning This instruction is not supported and should raise an illegal instruction exception when executed. + * + * @param[in] rs1 Source operand 1 (a0) + * @param[in] rs2 Source operand 2 (a1) + * @param[in] rs3 Source operand 3 (a2) + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fmadds(float rs1, float rs2, float rs3) { + + float_conv_t opa, opb, opc, res; + opa.float_value = rs1; + opb.float_value = rs2; + opc.float_value = rs3; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + register uint32_t tmp_c __asm__ ("a2") = opc.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_b), [input_j] "r" (tmp_c)); + + // fmadd.s a0, a0, a1, a2 + CUSTOM_INSTR_R3_TYPE(a2, a1, a0, 0b000, a0, 0b1000011); + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add %[res], %[input], x0" : [res] "=r" (result) : [input] "r" (result) ); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point fused multiply-sub + * + * @warning This instruction is not supported and should raise an illegal instruction exception when executed. + * + * @param[in] rs1 Source operand 1 (a0) + * @param[in] rs2 Source operand 2 (a1) + * @param[in] rs3 Source operand 3 (a2) + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fmsubs(float rs1, float rs2, float rs3) { + + float_conv_t opa, opb, opc, res; + opa.float_value = rs1; + opb.float_value = rs2; + opc.float_value = rs3; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + register uint32_t tmp_c __asm__ ("a2") = opc.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_b), [input_j] "r" (tmp_c)); + + // fmsub.s a0, a0, a1, a2 + CUSTOM_INSTR_R3_TYPE(a2, a1, a0, 0b000, a0, 0b1000111); + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add %[res], %[input], x0" : [res] "=r" (result) : [input] "r" (result) ); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point fused negated multiply-sub + * + * @warning This instruction is not supported and should raise an illegal instruction exception when executed. + * + * @param[in] rs1 Source operand 1 (a0) + * @param[in] rs2 Source operand 2 (a1) + * @param[in] rs3 Source operand 3 (a2) + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fnmsubs(float rs1, float rs2, float rs3) { + + float_conv_t opa, opb, opc, res; + opa.float_value = rs1; + opb.float_value = rs2; + opc.float_value = rs3; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + register uint32_t tmp_c __asm__ ("a2") = opc.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_b), [input_j] "r" (tmp_c)); + + // fnmsub.s a0, a0, a1, a2 + CUSTOM_INSTR_R3_TYPE(a2, a1, a0, 0b000, a0, 0b1001011); + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add %[res], %[input], x0" : [res] "=r" (result) : [input] "r" (result) ); + + res.binary_value = result; + return res.float_value; +} + + +/**********************************************************************//** + * Single-precision floating-point fused negated multiply-add + * + * @warning This instruction is not supported and should raise an illegal instruction exception when executed. + * + * @param[in] rs1 Source operand 1 (a0) + * @param[in] rs2 Source operand 2 (a1) + * @param[in] rs3 Source operand 3 (a2) + * @return Result. + **************************************************************************/ +inline float __attribute__ ((always_inline)) riscv_intrinsic_fnmadds(float rs1, float rs2, float rs3) { + + float_conv_t opa, opb, opc, res; + opa.float_value = rs1; + opb.float_value = rs2; + opc.float_value = rs3; + + register uint32_t result __asm__ ("a0"); + register uint32_t tmp_a __asm__ ("a0") = opa.binary_value; + register uint32_t tmp_b __asm__ ("a1") = opb.binary_value; + register uint32_t tmp_c __asm__ ("a2") = opc.binary_value; + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_a), [input_j] "r" (tmp_b)); + asm volatile ("add x0, %[input_i], %[input_j]" : : [input_i] "r" (tmp_b), [input_j] "r" (tmp_c)); + + // fnmadd.s a0, a0, a1, a2 + CUSTOM_INSTR_R3_TYPE(a2, a1, a0, 0b000, a0, 0b1001111); + + // dummy instruction to prevent GCC "constprop" optimization + asm volatile ("add %[res], %[input], x0" : [res] "=r" (result) : [input] "r" (result) ); + + res.binary_value = result; + return res.float_value; +} + + +// ################################################################################################ +// Emulation functions +// ################################################################################################ + +/**********************************************************************//** + * Single-precision floating-point addition + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fadds(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + float res = opa + opb; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point subtraction + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fsubs(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + float res = opa - opb; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point multiplication + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fmuls(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + float res = opa * opb; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point minimum + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fmins(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + union { + uint32_t binary_value; /**< Access as native float */ + float float_value; /**< Access in binary representation */ + } tmp_a, tmp_b; + + if ((fpclassify(opa) == FP_NAN) && (fpclassify(opb) == FP_NAN)) { + return nanf(""); + } + + if (fpclassify(opa) == FP_NAN) { + return opb; + } + + if (fpclassify(opb) == FP_NAN) { + return opa; + } + + // RISC-V spec: -0 < +0 + tmp_a.float_value = opa; + tmp_b.float_value = opb; + if (((tmp_a.binary_value == 0x80000000) && (tmp_b.binary_value == 0x00000000)) || + ((tmp_a.binary_value == 0x00000000) && (tmp_b.binary_value == 0x80000000))) { + return -0.0f; + } + + return fmin(opa, opb); +} + + +/**********************************************************************//** + * Single-precision floating-point maximum + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fmaxs(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + union { + uint32_t binary_value; /**< Access as native float */ + float float_value; /**< Access in binary representation */ + } tmp_a, tmp_b; + + + if ((fpclassify(opa) == FP_NAN) && (fpclassify(opb) == FP_NAN)) { + return nanf(""); + } + + if (fpclassify(opa) == FP_NAN) { + return opb; + } + + if (fpclassify(opb) == FP_NAN) { + return opa; + } + + // RISC-V spec: -0 < +0 + tmp_a.float_value = opa; + tmp_b.float_value = opb; + if (((tmp_a.binary_value == 0x80000000) && (tmp_b.binary_value == 0x00000000)) || + ((tmp_a.binary_value == 0x00000000) && (tmp_b.binary_value == 0x80000000))) { + return +0.0f; + } + + return fmax(opa, opb); +} + + +/**********************************************************************//** + * Single-precision floating-point float to unsigned integer + * + * @param[in] rs1 Source operand 1. + * @return Result. + **************************************************************************/ +uint32_t __attribute__ ((noinline)) riscv_emulate_fcvt_wus(float rs1) { + + float opa = subnormal_flush(rs1); + + return (uint32_t)roundf(opa); +} + + +/**********************************************************************//** + * Single-precision floating-point float to signed integer + * + * @param[in] rs1 Source operand 1. + * @return Result. + **************************************************************************/ +int32_t __attribute__ ((noinline)) riscv_emulate_fcvt_ws(float rs1) { + + float opa = subnormal_flush(rs1); + + return (int32_t)roundf(opa); +} + + +/**********************************************************************//** + * Single-precision floating-point unsigned integer to float + * + * @param[in] rs1 Source operand 1. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fcvt_swu(uint32_t rs1) { + + return (float)rs1; +} + + +/**********************************************************************//** + * Single-precision floating-point signed integer to float + * + * @param[in] rs1 Source operand 1. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fcvt_sw(int32_t rs1) { + + return (float)rs1; +} + + +/**********************************************************************//** + * Single-precision floating-point equal comparison + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +uint32_t __attribute__ ((noinline)) riscv_emulate_feqs(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + if ((fpclassify(opa) == FP_NAN) || (fpclassify(opb) == FP_NAN)) { + return 0; + } + + if isless(opa, opb) { + return 0; + } + else if isgreater(opa, opb) { + return 0; + } + else { + return 1; + } +} + + +/**********************************************************************//** + * Single-precision floating-point less-than comparison + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +uint32_t __attribute__ ((noinline)) riscv_emulate_flts(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + if ((fpclassify(opa) == FP_NAN) || (fpclassify(opb) == FP_NAN)) { + return 0; + } + + if isless(opa, opb) { + return 1; + } + else { + return 0; + } +} + + +/**********************************************************************//** + * Single-precision floating-point less-than-or-equal comparison + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +uint32_t __attribute__ ((noinline)) riscv_emulate_fles(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + if ((fpclassify(opa) == FP_NAN) || (fpclassify(opb) == FP_NAN)) { + return 0; + } + + if islessequal(opa, opb) { + return 1; + } + else { + return 0; + } +} + + +/**********************************************************************//** + * Single-precision floating-point sign-injection + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fsgnjs(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + int sign_1 = (int)signbit(opa); + int sign_2 = (int)signbit(opb); + float res = 0; + + if (sign_2 != 0) { // opb is negative + if (sign_1 == 0) { + res = -opa; + } + else { + res = opa; + } + } + else { // opb is positive + if (sign_1 == 0) { + res = opa; + } + else { + res = -opa; + } + } + + return res; +} + + +/**********************************************************************//** + * Single-precision floating-point sign-injection NOT + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fsgnjns(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + int sign_1 = (int)signbit(opa); + int sign_2 = (int)signbit(opb); + float res = 0; + + if (sign_2 != 0) { // opb is negative + if (sign_1 == 0) { + res = opa; + } + else { + res = -opa; + } + } + else { // opb is positive + if (sign_1 == 0) { + res = -opa; + } + else { + res = opa; + } + } + + return res; +} + + +/**********************************************************************//** + * Single-precision floating-point sign-injection XOR + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fsgnjxs(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + int sign_1 = (int)signbit(opa); + int sign_2 = (int)signbit(opb); + float res = 0; + + if (((sign_1 == 0) && (sign_2 != 0)) || ((sign_1 != 0) && (sign_2 == 0))) { + if (sign_1 == 0) { + res = -opa; + } + else { + res = opa; + } + } + else { + if (sign_1 == 0) { + res = opa; + } + else { + res = -opa; + } + } + + return res; +} + + +/**********************************************************************//** + * Single-precision floating-point number classification + * + * @param[in] rs1 Source operand 1. + * @return Result. + **************************************************************************/ +uint32_t __attribute__ ((noinline)) riscv_emulate_fclasss(float rs1) { + + float opa = subnormal_flush(rs1); + + union { + uint32_t binary_value; /**< Access as native float */ + float float_value; /**< Access in binary representation */ + } aux; + + // RISC-V classify result layout + const uint32_t CLASS_NEG_INF = 1 << 0; // negative infinity + const uint32_t CLASS_NEG_NORM = 1 << 1; // negative normal number + const uint32_t CLASS_NEG_DENORM = 1 << 2; // negative subnormal number + const uint32_t CLASS_NEG_ZERO = 1 << 3; // negative zero + const uint32_t CLASS_POS_ZERO = 1 << 4; // positive zero + const uint32_t CLASS_POS_DENORM = 1 << 5; // positive subnormal number + const uint32_t CLASS_POS_NORM = 1 << 6; // positive normal number + const uint32_t CLASS_POS_INF = 1 << 7; // positive infinity + const uint32_t CLASS_SNAN = 1 << 8; // signaling NaN (sNaN) + const uint32_t CLASS_QNAN = 1 << 9; // quiet NaN (qNaN) + + int tmp = fpclassify(opa); + int sgn = (int)signbit(opa); + + uint32_t res = 0; + + // infinity + if (tmp == FP_INFINITE) { + if (sgn) { res |= CLASS_NEG_INF; } + else { res |= CLASS_POS_INF; } + } + + // zero + if (tmp == FP_ZERO) { + if (sgn) { res |= CLASS_NEG_ZERO; } + else { res |= CLASS_POS_ZERO; } + } + + // normal + if (tmp == FP_NORMAL) { + if (sgn) { res |= CLASS_NEG_NORM; } + else { res |= CLASS_POS_NORM; } + } + + // subnormal + if (tmp == FP_SUBNORMAL) { + if (sgn) { res |= CLASS_NEG_DENORM; } + else { res |= CLASS_POS_DENORM; } + } + + // NaN + if (tmp == FP_NAN) { + aux.float_value = opa; + if ((aux.binary_value >> 22) & 0b1) { // bit 22 (mantissa's MSB) is set -> canonical (quiet) NAN + res |= CLASS_QNAN; + } + else { + res |= CLASS_SNAN; + } + } + + return res; +} + + +/**********************************************************************//** + * Single-precision floating-point division + * + * @param[in] rs1 Source operand 1. + * @param[in] rs2 Source operand 2. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fdivs(float rs1, float rs2) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + + float res = opa / opb; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point square root + * + * @param[in] rs1 Source operand 1. + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fsqrts(float rs1) { + + float opa = subnormal_flush(rs1); + + float res = sqrtf(opa); + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point fused multiply-add + * + * @note "noinline" attributed to make sure arguments/return values are in a0 and a1. + * + * @warning This instruction is not supported! + * + * @param[in] rs1 Source operand 1 + * @param[in] rs2 Source operand 2 + * @param[in] rs3 Source operand 3 + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fmadds(float rs1, float rs2, float rs3) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + float opc = subnormal_flush(rs3); + + float res = (opa * opb) + opc; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point fused multiply-sub + * + * @param[in] rs1 Source operand 1 + * @param[in] rs2 Source operand 2 + * @param[in] rs3 Source operand 3 + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fmsubs(float rs1, float rs2, float rs3) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + float opc = subnormal_flush(rs3); + + float res = (opa * opb) - opc; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point fused negated multiply-sub + * + * @param[in] rs1 Source operand 1 + * @param[in] rs2 Source operand 2 + * @param[in] rs3 Source operand 3 + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fnmsubs(float rs1, float rs2, float rs3) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + float opc = subnormal_flush(rs3); + + float res = -(opa * opb) + opc; + return subnormal_flush(res); +} + + +/**********************************************************************//** + * Single-precision floating-point fused negated multiply-add + * + * @param[in] rs1 Source operand 1 + * @param[in] rs2 Source operand 2 + * @param[in] rs3 Source operand 3 + * @return Result. + **************************************************************************/ +float __attribute__ ((noinline)) riscv_emulate_fnmadds(float rs1, float rs2, float rs3) { + + float opa = subnormal_flush(rs1); + float opb = subnormal_flush(rs2); + float opc = subnormal_flush(rs3); + + float res = -(opa * opb) - opc; + return subnormal_flush(res); +} + + +#endif // neorv32_zfinx_extension_intrinsics_h + \ No newline at end of file diff --git a/Libs/RiscV/NEORV32/sw/example/game_of_life/makefile b/Libs/RiscV/NEORV32/sw/example/game_of_life/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/game_of_life/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/hello_world/makefile b/Libs/RiscV/NEORV32/sw/example/hello_world/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/hello_world/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/example/makefile b/Libs/RiscV/NEORV32/sw/example/makefile new file mode 100644 index 0000000..572b8c2 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/makefile @@ -0,0 +1,71 @@ +################################################################################################# +# << NEORV32 - All-Projects Makefile >> # +# ********************************************************************************************* # +# Make sure to add the riscv GCC compiler's bin folder to your PATH variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2020, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + + +#------------------------------------------------------------------------------- +# Make defaults and targets +#------------------------------------------------------------------------------- +.SUFFIXES: +.DEFAULT_GOAL := help + +TOPTARGETS := exe clean_all check info all + +SUBDIRS := $(wildcard */.) +# ignore dummy folders (starting with '~') +DUMMYDIRS := $(wildcard ~*/.) +SUBDIRS := $(filter-out $(DUMMYDIRS), $(SUBDIRS)) + +$(TOPTARGETS): $(SUBDIRS) +$(SUBDIRS): + @set -e + @$(MAKE) -C $@ $(MAKECMDGOALS) + +.PHONY: $(TOPTARGETS) $(SUBDIRS) + + +#------------------------------------------------------------------------------- +# Help +#------------------------------------------------------------------------------- +help: + @echo "Build / clean up all projects" + @echo "Targets:" + @echo " help - show this text" + @echo " check - check toolchain" + @echo " info - show makefile configuration" + @echo " exe - create executables from all projects" + @echo " all - create executables and boot images from all projects" + @echo " clean_all - clean up everything" + diff --git a/Libs/RiscV/NEORV32/sw/example/processor_check/makefile b/Libs/RiscV/NEORV32/sw/example/processor_check/makefile new file mode 100644 index 0000000..cd8a97a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/example/processor_check/makefile @@ -0,0 +1,40 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + +# Modify this variable to fit your NEORV32 setup (neorv32 home folder) +NEORV32_HOME ?= ../../.. + +include $(NEORV32_HOME)/sw/common/common.mk diff --git a/Libs/RiscV/NEORV32/sw/image_gen/uart_upload.sh b/Libs/RiscV/NEORV32/sw/image_gen/uart_upload.sh new file mode 100644 index 0000000..0d6ab76 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/image_gen/uart_upload.sh @@ -0,0 +1,58 @@ +#!/bin/sh + +set -e + +# Simple script to upload executable to bootloader + +if [ $# -ne 2 ] +then + echo "Upload image via serial port (UART) to the NEORV32 bootloader." + echo "Reset processor before starting the upload." + echo "Usage: [sudo] sh uart_upload.sh " + echo "Example: sh uart_upload.sh /dev/ttyS6 neorv32_exe.bin" + exit +fi + +# configure serial port +stty -F "$1" 19200 -hup raw -echo -echoe -echok -echoctl -echoke -crtscts cs8 -cstopb noflsh clocal cread + +# trigger fast upload mode and get response +exec 3<$1 # redirect serial output to fd 3 + cat <&3 > uart_upload.response.dat & # redirect serial output to file + PID=$! # save pid to kill cat + printf "u" > $1 # send upload command to serial port + sleep 0.5s # wait for bootloader response + kill $PID # kill cat process + +exec 3<&- # free fd 3 + +# check response +if ! grep -Fq "Awaiting neorv32_exe.bin" uart_upload.response.dat; +then + echo "Bootloader response error." + echo "Reset processor before starting the upload." + rm -f uart_upload.response.dat + exit +fi + +# send executable and get repsonse +echo -n "Uploading... " +exec 3<$1 # redirect serial output to fd 3 + cat <&3 > uart_upload.response.dat & # redirect serial output to file + PID=$! # save pid to kill cat + cat "$2" > "$1" # send executable to serial port + sleep 3s # wait for bootloader response + kill $PID # kill cat process + +exec 3<&- # free fd 3 + +# check response +if ! grep -Fq "OK" uart_upload.response.dat; +then + echo "Upload error." + rm -f uart_upload.response.dat + exit +fi + +rm -f uart_upload.response.dat +echo "Done." diff --git a/Libs/RiscV/NEORV32/sw/isa-test/common.mk b/Libs/RiscV/NEORV32/sw/isa-test/common.mk new file mode 100644 index 0000000..e272cce --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/common.mk @@ -0,0 +1,74 @@ +ifndef NEORV32_ROOT + $(error NEORV32_ROOT is undefined) +endif + +NEORV32_LOCAL_RTL ?= $(NEORV32_ROOT)/sim/work + +TARGET_SIM ?= ghdl +TARGET_FLAGS ?= $(RISCV_TARGET_FLAGS) + +ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),) + $(error Target simulator executable '$(TARGET_SIM)` not found) +endif + +NEORV32_MARCH ?= rv32i +NEORV32_MABI ?= ilp32 + +RISCV_PREFIX ?= riscv32-unknown-elf- +RISCV_GCC ?= $(RISCV_PREFIX)gcc +RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump +RISCV_OBJCOPY ?= $(RISCV_PREFIX)objcopy +RISCV_READELF ?= $(RISCV_PREFIX)readelf +RISCV_GCC_OPTS ?= -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -march=$(NEORV32_MARCH) -mabi=$(NEORV32_MABI) + +NEORV32_LINK ?= link.imem_rom.ld + +COMPILE_TARGET ?= \ + $$(RISCV_GCC) $(1) $$(RISCV_GCC_OPTS) \ + $$(RISCV_TARGET_FLAGS) \ + -I$(ROOTDIR)/riscv-test-suite/env/ \ + -I$(TARGETDIR)/$(RISCV_TARGET)/ \ + -T$(TARGETDIR)/$(RISCV_TARGET)/$(NEORV32_LINK) \ + $$(<) -o $$@ + +NEORV32_CPU_EXTENSION_RISCV_C ?= false +NEORV32_CPU_EXTENSION_RISCV_E ?= false +NEORV32_CPU_EXTENSION_RISCV_M ?= false +NEORV32_CPU_EXTENSION_RISCV_ZIFENCEI ?= false +NEORV32_MEM_INT_IMEM_SIZE ?= '2097152' + +NEORV32_SOFTWARE_EXAMPLE ?= $(NEORV32_ROOT)/sw/example/blink_led + +ifeq ($(NEORV32_CPU_EXTENSION_RISCV_ZIFENCEI), true) +RUN_TARGET ?= \ + echo "copying/using SIM-only IMEM (pre-initialized RAM!)"; \ + rm -f $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd; \ + cp -f $(NEORV32_ROOT)/sim/simple/neorv32_imem.iram.simple.vhd $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd; +else +RUN_TARGET ?= \ + echo "copying/using SIM-only IMEM (pre-initialized ROM!)"; \ + rm -f $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd; \ + cp -f $(NEORV32_ROOT)/sim/simple/neorv32_imem.simple.vhd $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd; +endif + +RUN_TARGET += \ + cd $(work_dir_isa); \ + echo ">"; \ + rm -f $(NEORV32_ROOT)/sim/*.out; \ + make -C $(NEORV32_SOFTWARE_EXAMPLE) main.elf; \ + cp -f $< $(NEORV32_SOFTWARE_EXAMPLE)/main.elf; \ + make -C $(NEORV32_SOFTWARE_EXAMPLE) main.bin install; \ + touch $(NEORV32_ROOT)/sim/simple/neorv32.uart0.sim_mode.data.out; \ + GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_ROOT)/sim/simple/ghdl.run.sh \ + --stop-time=$(SIM_TIME) \ + -gCPU_EXTENSION_RISCV_A=false \ + -gCPU_EXTENSION_RISCV_C=$(NEORV32_CPU_EXTENSION_RISCV_C) \ + -gCPU_EXTENSION_RISCV_E=$(NEORV32_CPU_EXTENSION_RISCV_E) \ + -gCPU_EXTENSION_RISCV_M=$(NEORV32_CPU_EXTENSION_RISCV_M) \ + -gCPU_EXTENSION_RISCV_U=false \ + -gCPU_EXTENSION_RISCV_Zicsr=true \ + -gCPU_EXTENSION_RISCV_Zifencei=true \ + -gEXT_IMEM_C=false \ + -gMEM_INT_IMEM_SIZE=$(NEORV32_MEM_INT_IMEM_SIZE); \ + cp $(NEORV32_ROOT)/sim/simple/neorv32.uart0.sim_mode.data.out $(*).signature.output; \ + echo "<"; diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/README.md b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/README.md new file mode 100644 index 0000000..d263a24 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/README.md @@ -0,0 +1,28 @@ +# NEORV32 Port for running the RISC-V Architecture Tests + + +The following tasks are executed by the device makefiles: + +* replace the original processor's IMEM rtl file by a simulation-optimized IMEM (ROM!) +* `sed` command is used to modify the default testbench (`neorv32/sim/neorv32_tb.simple.vhd`): + * enable/disable the required `CPU_EXTENSION_RISCV_xxx` VHDL configuration generics in the testbench (`neorv32/sim/neorv32_tb.simple.vhd`) + * set the processor memory configuration +* compile test code and install application image to processor's `rtl/core` folder + * compilation uses the `link.imem_rom.ld` linker script as default; code (the test code) is executed from simulation-optimized IMEM (which is read-only); data including signature is stored to DMEM + * certain areas in the DMEM are initialized using port code in `model_test.h` (`RVTEST` = 0xbabecafe and `SIGNATURE` = 0xdeadbeef); can be disabled using `RISCV_TARGET_FLAGS=-DNEORV32_NO_DATA_INIT` +* the processor is simulated using the default testbench +* the results are dumped via the SIM_MODE feature of UART0 + * the according code can be found in the `RVMODEL_HALT` macro in `model_test.h` + * data output (the "signature") is zero-padded to be always a multiple of 16 bytes + + +**Notes** + +:warning: The `Zifencei` test requires the r/w/e capabilities of the original IMEM rtl file. +Hence, the original file is restored for this test. Also, this test uses `link.imem_ram.ld` as linker script since the +IMEM is used as RAM to allow self-modifying code. + +:information_source: The `RVMODEL_BOOT` macro in `model_test.h` provides a simple "dummy trap handler" that just advances +to the next instruction. This trap handler is required for some `C` tests as the NEORV32 will raise an illegal instruction +exception for **all** unimplemented instructions. The trap handler can be overriden (by changing `mtval` CSR) if a test +uses the defualt trap handler of the test framework. diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/C/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/C/Makefile.include new file mode 100644 index 0000000..36d296e --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/C/Makefile.include @@ -0,0 +1,6 @@ +NEORV32_MARCH ?= rv32ec +NEORV32_MABI ?= ilp32e +NEORV32_CPU_EXTENSION_RISCV_C ?= true +NEORV32_CPU_EXTENSION_RISCV_E ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/E/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/E/Makefile.include new file mode 100644 index 0000000..e797e8c --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/E/Makefile.include @@ -0,0 +1,5 @@ +NEORV32_MARCH ?= rv32e +NEORV32_MABI ?= ilp32e +NEORV32_CPU_EXTENSION_RISCV_E ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/M/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/M/Makefile.include new file mode 100644 index 0000000..e3623b3 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32e_unratified/M/Makefile.include @@ -0,0 +1,6 @@ +NEORV32_MARCH ?= rv32em +NEORV32_MABI ?= ilp32e +NEORV32_CPU_EXTENSION_RISCV_E ?= true +NEORV32_CPU_EXTENSION_RISCV_M ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/C/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/C/Makefile.include new file mode 100644 index 0000000..d699665 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/C/Makefile.include @@ -0,0 +1,4 @@ +NEORV32_MARCH ?= rv32ic +NEORV32_CPU_EXTENSION_RISCV_C ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/I/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/I/Makefile.include new file mode 100644 index 0000000..9e41632 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/I/Makefile.include @@ -0,0 +1 @@ +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/M/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/M/Makefile.include new file mode 100644 index 0000000..523d7b3 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/M/Makefile.include @@ -0,0 +1,4 @@ +NEORV32_MARCH ?= rv32im +NEORV32_CPU_EXTENSION_RISCV_M ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/Zifencei/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/Zifencei/Makefile.include new file mode 100644 index 0000000..bbc15b3 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/Zifencei/Makefile.include @@ -0,0 +1,6 @@ +NEORV32_MARCH ?= rv32im +NEORV32_LINK ?= link.imem_ram.ld +NEORV32_MEM_INT_IMEM_SIZE ?= '16384' +NEORV32_CPU_EXTENSION_RISCV_ZIFENCEI ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/privilege/Makefile.include b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/privilege/Makefile.include new file mode 100644 index 0000000..c6cd2e5 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/device/rv32i_m/privilege/Makefile.include @@ -0,0 +1,3 @@ +NEORV32_CPU_EXTENSION_RISCV_C ?= true + +include $(NEORV32_ROOT)/sw/isa-test/common.mk diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_ram.ld b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_ram.ld new file mode 100644 index 0000000..bc8be81 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_ram.ld @@ -0,0 +1,22 @@ +OUTPUT_ARCH( "riscv" ) +ENTRY(rvtest_entry_point) + +SECTIONS +{ + . = 0x00000000; + .text : + { + *(.text.init) + . = ALIGN(0x1000); + *(.text) + . = ALIGN(0x1000); + *(.tohost) + *(.data) + *(.data.string) + *(.bss) + . = ALIGN(0x1000); + + _end = .; + } +} + diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_rom.ld b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_rom.ld new file mode 100644 index 0000000..0e41dd7 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/link.imem_rom.ld @@ -0,0 +1,26 @@ +OUTPUT_ARCH( "riscv" ) +ENTRY(rvtest_entry_point) + +SECTIONS +{ + . = 0x00000000; + .text : + { + *(.text.init) + . = ALIGN(0x1000); + *(.text) + . = ALIGN(0x1000); + _end = .; + } + + . = 0x80000000; + .data : + { + . = ALIGN(0x1000); + *(.tohost) + *(.data) + *(.data.string) + *(.bss) + } +} + diff --git a/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/model_test.h b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/model_test.h new file mode 100644 index 0000000..72a9255 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/isa-test/port-neorv32/model_test.h @@ -0,0 +1,212 @@ +// SPDX-License-Identifier: BSD-3-Clause + +// Modified by Stephan Nolting for the NEORV32 Processor + +#ifndef _COMPLIANCE_MODEL_H +#define _COMPLIANCE_MODEL_H + +#define RVMODEL_DATA_SECTION \ + .pushsection .tohost,"aw",@progbits; \ + .align 8; .global tohost; tohost: .dword 0; \ + .align 8; .global fromhost; fromhost: .dword 0; \ + .popsection; \ + .align 8; .global begin_regstate; begin_regstate: \ + .word 128; \ + .align 8; .global end_regstate; end_regstate: \ + .word 4; + +//RV_COMPLIANCE_HALT +// neorv32: this will dump the results via the UART0_SIM_MODE data file output +// neorv32: due to the modifications on "end_signature" (not 4-aligned) we need to make sure we output a 4-aligned number of data here +// neorv32: -> for zero-padding of the rest of the SIGNATURE section +#define RVMODEL_HALT \ + signature_dump: \ + la a0, begin_signature; \ + la a1, end_signature; \ + li a2, 0xFFFFFFA4; \ + signature_dump_loop: \ + beq a0, a1, signature_dump_padding; \ + lw t0, 0(a0); \ + sw t0, 0(a2); \ + addi a0, a0, 4; \ + j signature_dump_loop; \ +nop; \ +nop; \ + signature_dump_padding: \ + andi a0, a1, 0x0000000C; \ + beq a0, zero, signature_dump_end; \ + li t0, 16; \ + sub a0, t0, a0; \ + signature_dump_padding_loop: \ + beq a0, zero, signature_dump_end; \ + sw zero, 0(a2); \ + addi a0, a0, -4; \ + j signature_dump_padding_loop; \ + signature_dump_end: \ + j signature_dump_end + +//TODO: declare the start of your signature region here. Nothing else to be used here. +// The .align 4 ensures that the signature ends at a 16-byte boundary +#define RVMODEL_DATA_BEGIN \ + .align 4; .global begin_signature; begin_signature: + +//TODO: declare the end of the signature region here. Add other target specific contents here. +//neorv32: DO NOT use align_4 here! end_signature is used to indicate the actual "number" of signature words +#define RVMODEL_DATA_END \ + .global end_signature; end_signature: \ + RVMODEL_DATA_SECTION + +//RVMODEL_BOOT +// neorv32: enable UART0 (ctrl(28)) and enable UART0_SIM_MODE (ctrl(12)) +// neorv32: initialize the complete RVTEST_DATA section in data RAM (DMEM) with 0xBABECAFE +// neorv32: initialize the complete SIGNATURE section (that is a multiple of four 32-bit entries) in data RAM (DMEM) with 0xDEADBEEF +// neorv32: this code also provides a dummy trap handler that just moves on to the next instruction +// neorv32: -> this trap handler can be overridden by the compliance-suite by modifying mtval +// neorv32: -> the dummy trap handler is required to deal with the neorv32 X extension (-> all illegal/undefined instruction trigger an exception) +#ifdef NEORV32_NO_DATA_INIT +// ------------------------- WITHOUT DATA INIT ------------------------- +#define RVMODEL_BOOT \ + core_init: \ + la x1, core_dummy_trap_handler; \ + csrw mtvec, x1; \ + csrw mie, x0; \ + j uart0_sim_mode_init; \ +nop; \ +nop; \ + .balign 4; \ + core_dummy_trap_handler: \ + csrw mscratch, sp; \ + la sp, end_signature; \ + addi sp, sp, 32; \ + sw x8, 0(sp); \ + sw x9, 4(sp); \ + csrr x8, mcause; \ + blt x8, zero, core_dummy_trap_handler_irq; \ + csrr x8, mepc; \ + core_dummy_trap_handler_exc_c_check: \ + lh x9, 0(x8); \ + andi x9, x9, 3; \ + addi x8, x8, +2; \ + csrw mepc, x8; \ + addi x8, zero, 3; \ + bne x8, x9, core_dummy_trap_handler_irq; \ + core_dummy_trap_handler_exc_uncrompressed: \ + csrr x8, mepc; \ + addi x8, x8, +2; \ + csrw mepc, x8; \ + core_dummy_trap_handler_irq: \ + lw x9, 0(sp); \ + lw x8, 4(sp); \ + csrr sp, mscratch; \ + mret; \ +nop; \ +nop; \ + uart0_sim_mode_init: \ + li a0, 0xFFFFFFA0; \ + sw zero, 0(a0); \ + li a1, 1 << 28; \ + li a2, 1 << 12; \ + or a1, a1, a2; \ + sw a1, 0(a0); + +#else + +// ------------------------- WITH DATA INIT ------------------------- +#define RVMODEL_BOOT \ + core_init: \ + la x1, core_dummy_trap_handler; \ + csrw mtvec, x1; \ + csrw mie, x0; \ +nop; \ +nop; \ + init_rvtest_data: \ + la a0, rvtest_data_begin; \ + la a1, rvtest_data_end; \ + li a2, 0xBABECAFE; \ + init_rvtest_data_loop: \ + beq a0, a1, init_rvtest_data_loop_end; \ + sw a2, 0(a0); \ + addi a0, a0, 4; \ + j init_rvtest_data_loop; \ + init_rvtest_data_loop_end: \ +nop; \ +nop; \ + init_signature: \ + la a0, begin_signature; \ + la a1, end_signature; \ + li a2, 0xDEADBEEF; \ + init_signature_loop: \ + beq a0, a1, init_signature_loop_end; \ + sw a2, 0(a0); \ + addi a0, a0, 4; \ + j init_signature_loop; \ + init_signature_loop_end: \ + j uart0_sim_mode_init; \ +nop; \ +nop; \ + .balign 4; \ + core_dummy_trap_handler: \ + csrw mscratch, sp; \ + la sp, end_signature; \ + addi sp, sp, 32; \ + sw x8, 0(sp); \ + sw x9, 4(sp); \ + csrr x8, mcause; \ + blt x8, zero, core_dummy_trap_handler_irq; \ + csrr x8, mepc; \ + core_dummy_trap_handler_exc_c_check: \ + lh x9, 0(x8); \ + andi x9, x9, 3; \ + addi x8, x8, +2; \ + csrw mepc, x8; \ + addi x8, zero, 3; \ + bne x8, x9, core_dummy_trap_handler_irq; \ + core_dummy_trap_handler_exc_uncrompressed: \ + csrr x8, mepc; \ + addi x8, x8, +2; \ + csrw mepc, x8; \ + core_dummy_trap_handler_irq: \ + lw x9, 0(sp); \ + lw x8, 4(sp); \ + csrr sp, mscratch; \ + mret; \ +nop; \ +nop; \ + uart0_sim_mode_init: \ + li a0, 0xFFFFFFA0; \ + sw zero, 0(a0); \ + li a1, 1 << 28; \ + li a2, 1 << 12; \ + or a1, a1, a2; \ + sw a1, 0(a0); + +#endif + + +//RVTEST_IO_INIT +#define RVMODEL_IO_INIT +//RVTEST_IO_WRITE_STR +#define RVMODEL_IO_WRITE_STR(_R, _STR) +//RVTEST_IO_CHECK +#define RVMODEL_IO_CHECK() + +//RVTEST_IO_ASSERT_GPR_EQ +#define RVMODEL_IO_ASSERT_GPR_EQ(_S, _R, _I) +//RVTEST_IO_ASSERT_SFPR_EQ +#define RVMODEL_IO_ASSERT_SFPR_EQ(_F, _R, _I) +//RVTEST_IO_ASSERT_DFPR_EQ +#define RVMODEL_IO_ASSERT_DFPR_EQ(_D, _R, _I) + +// TODO: specify the routine for setting machine software interrupt +#define RVMODEL_SET_MSW_INT + +// TODO: specify the routine for clearing machine software interrupt +#define RVMODEL_CLEAR_MSW_INT + +// TODO: specify the routine for clearing machine timer interrupt +#define RVMODEL_CLEAR_MTIMER_INT + +// TODO: specify the routine for clearing machine external interrupt +#define RVMODEL_CLEAR_MEXT_INT + +#endif // _COMPLIANCE_MODEL_H diff --git a/Libs/RiscV/NEORV32/sw/lib/README.md b/Libs/RiscV/NEORV32/sw/lib/README.md new file mode 100644 index 0000000..b29f0ea --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/README.md @@ -0,0 +1,6 @@ +## NEORV32 Core Library + +This folder provides the hardware abstraction layer (HAL) libraries for the CPU itself and the individual processor modules (peripheral/IO devices). + +The `source` folder contains the actual C-code hardware driver functions (*.c*) while the `include` folder provides the according header files (*.h). +Application programs should only include the *main NEORV32 define file* `include/neorv32.h`. This file automatically includes all other provided header files. diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32.h new file mode 100644 index 0000000..636d8fc --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32.h @@ -0,0 +1,1311 @@ +// ################################################################################################# +// # << NEORV32: neorv32.h - Main Core Library File >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32.h + * @author Stephan Nolting + * + * @brief Main NEORV32 core library include file. + **************************************************************************/ + +#ifndef neorv32_h +#define neorv32_h + +#ifdef __cplusplus +extern "C" { +#endif + + +// Standard libraries +#include +#include +#include + + +/**********************************************************************//** + * Available CPU Control and Status Registers (CSRs) + **************************************************************************/ +enum NEORV32_CSR_enum { + CSR_FFLAGS = 0x001, /**< 0x001 - fflags (r/w): Floating-point accrued exception flags */ + CSR_FRM = 0x002, /**< 0x002 - frm (r/w): Floating-point dynamic rounding mode */ + CSR_FCSR = 0x003, /**< 0x003 - fcsr (r/w): Floating-point control/staturs register (frm + fflags) */ + + CSR_MSTATUS = 0x300, /**< 0x300 - mstatus (r/w): Machine status register */ + CSR_MISA = 0x301, /**< 0x301 - misa (r/-): CPU ISA and extensions (read-only in NEORV32) */ + CSR_MIE = 0x304, /**< 0x304 - mie (r/w): Machine interrupt-enable register */ + CSR_MTVEC = 0x305, /**< 0x305 - mtvec (r/w): Machine trap-handler base address (for ALL traps) */ + CSR_MCOUNTEREN = 0x306, /**< 0x305 - mcounteren (r/w): Machine counter enable register (controls access rights from U-mode) */ + + CSR_MENVCFG = 0x30a, /**< 0x30a - menvcfg (r/-): Machine environment configuration register */ + + CSR_MSTATUSH = 0x310, /**< 0x310 - mstatush (r/w): Machine status register - high word */ + + CSR_MENVCFGH = 0x31a, /**< 0x31a - menvcfgh (r/-): Machine environment configuration register - high word */ + + CSR_MCOUNTINHIBIT = 0x320, /**< 0x320 - mcountinhibit (r/w): Machine counter-inhibit register */ + + CSR_MHPMEVENT3 = 0x323, /**< 0x323 - mhpmevent3 (r/w): Machine hardware performance monitor event selector 3 */ + CSR_MHPMEVENT4 = 0x324, /**< 0x324 - mhpmevent4 (r/w): Machine hardware performance monitor event selector 4 */ + CSR_MHPMEVENT5 = 0x325, /**< 0x325 - mhpmevent5 (r/w): Machine hardware performance monitor event selector 5 */ + CSR_MHPMEVENT6 = 0x326, /**< 0x326 - mhpmevent6 (r/w): Machine hardware performance monitor event selector 6 */ + CSR_MHPMEVENT7 = 0x327, /**< 0x327 - mhpmevent7 (r/w): Machine hardware performance monitor event selector 7 */ + CSR_MHPMEVENT8 = 0x328, /**< 0x328 - mhpmevent8 (r/w): Machine hardware performance monitor event selector 8 */ + CSR_MHPMEVENT9 = 0x329, /**< 0x329 - mhpmevent9 (r/w): Machine hardware performance monitor event selector 9 */ + CSR_MHPMEVENT10 = 0x32a, /**< 0x32a - mhpmevent10 (r/w): Machine hardware performance monitor event selector 10 */ + CSR_MHPMEVENT11 = 0x32b, /**< 0x32b - mhpmevent11 (r/w): Machine hardware performance monitor event selector 11 */ + CSR_MHPMEVENT12 = 0x32c, /**< 0x32c - mhpmevent12 (r/w): Machine hardware performance monitor event selector 12 */ + CSR_MHPMEVENT13 = 0x32d, /**< 0x32d - mhpmevent13 (r/w): Machine hardware performance monitor event selector 13 */ + CSR_MHPMEVENT14 = 0x32e, /**< 0x32e - mhpmevent14 (r/w): Machine hardware performance monitor event selector 14 */ + CSR_MHPMEVENT15 = 0x32f, /**< 0x32f - mhpmevent15 (r/w): Machine hardware performance monitor event selector 15 */ + CSR_MHPMEVENT16 = 0x330, /**< 0x330 - mhpmevent16 (r/w): Machine hardware performance monitor event selector 16 */ + CSR_MHPMEVENT17 = 0x331, /**< 0x331 - mhpmevent17 (r/w): Machine hardware performance monitor event selector 17 */ + CSR_MHPMEVENT18 = 0x332, /**< 0x332 - mhpmevent18 (r/w): Machine hardware performance monitor event selector 18 */ + CSR_MHPMEVENT19 = 0x333, /**< 0x333 - mhpmevent19 (r/w): Machine hardware performance monitor event selector 19 */ + CSR_MHPMEVENT20 = 0x334, /**< 0x334 - mhpmevent20 (r/w): Machine hardware performance monitor event selector 20 */ + CSR_MHPMEVENT21 = 0x335, /**< 0x335 - mhpmevent21 (r/w): Machine hardware performance monitor event selector 21 */ + CSR_MHPMEVENT22 = 0x336, /**< 0x336 - mhpmevent22 (r/w): Machine hardware performance monitor event selector 22 */ + CSR_MHPMEVENT23 = 0x337, /**< 0x337 - mhpmevent23 (r/w): Machine hardware performance monitor event selector 23 */ + CSR_MHPMEVENT24 = 0x338, /**< 0x338 - mhpmevent24 (r/w): Machine hardware performance monitor event selector 24 */ + CSR_MHPMEVENT25 = 0x339, /**< 0x339 - mhpmevent25 (r/w): Machine hardware performance monitor event selector 25 */ + CSR_MHPMEVENT26 = 0x33a, /**< 0x33a - mhpmevent26 (r/w): Machine hardware performance monitor event selector 26 */ + CSR_MHPMEVENT27 = 0x33b, /**< 0x33b - mhpmevent27 (r/w): Machine hardware performance monitor event selector 27 */ + CSR_MHPMEVENT28 = 0x33c, /**< 0x33c - mhpmevent28 (r/w): Machine hardware performance monitor event selector 28 */ + CSR_MHPMEVENT29 = 0x33d, /**< 0x33d - mhpmevent29 (r/w): Machine hardware performance monitor event selector 29 */ + CSR_MHPMEVENT30 = 0x33e, /**< 0x33e - mhpmevent30 (r/w): Machine hardware performance monitor event selector 30 */ + CSR_MHPMEVENT31 = 0x33f, /**< 0x33f - mhpmevent31 (r/w): Machine hardware performance monitor event selector 31 */ + + CSR_MSCRATCH = 0x340, /**< 0x340 - mscratch (r/w): Machine scratch register */ + CSR_MEPC = 0x341, /**< 0x341 - mepc (r/w): Machine exception program counter */ + CSR_MCAUSE = 0x342, /**< 0x342 - mcause (r/w): Machine trap cause */ + CSR_MTVAL = 0x343, /**< 0x343 - mtval (r/-): Machine bad address or instruction */ + CSR_MIP = 0x344, /**< 0x344 - mip (r/-): Machine interrupt pending register */ + + CSR_PMPCFG0 = 0x3a0, /**< 0x3a0 - pmpcfg0 (r/w): Physical memory protection configuration register 0 */ + CSR_PMPCFG1 = 0x3a1, /**< 0x3a1 - pmpcfg1 (r/w): Physical memory protection configuration register 1 */ + CSR_PMPCFG2 = 0x3a2, /**< 0x3a2 - pmpcfg2 (r/w): Physical memory protection configuration register 2 */ + CSR_PMPCFG3 = 0x3a3, /**< 0x3a3 - pmpcfg3 (r/w): Physical memory protection configuration register 3 */ + CSR_PMPCFG4 = 0x3a4, /**< 0x3a4 - pmpcfg4 (r/w): Physical memory protection configuration register 4 */ + CSR_PMPCFG5 = 0x3a5, /**< 0x3a5 - pmpcfg5 (r/w): Physical memory protection configuration register 5 */ + CSR_PMPCFG6 = 0x3a6, /**< 0x3a6 - pmpcfg6 (r/w): Physical memory protection configuration register 6 */ + CSR_PMPCFG7 = 0x3a7, /**< 0x3a7 - pmpcfg7 (r/w): Physical memory protection configuration register 7 */ + CSR_PMPCFG8 = 0x3a8, /**< 0x3a8 - pmpcfg8 (r/w): Physical memory protection configuration register 8 */ + CSR_PMPCFG9 = 0x3a9, /**< 0x3a9 - pmpcfg9 (r/w): Physical memory protection configuration register 9 */ + CSR_PMPCFG10 = 0x3aa, /**< 0x3aa - pmpcfg10 (r/w): Physical memory protection configuration register 10 */ + CSR_PMPCFG11 = 0x3ab, /**< 0x3ab - pmpcfg11 (r/w): Physical memory protection configuration register 11 */ + CSR_PMPCFG12 = 0x3ac, /**< 0x3ac - pmpcfg12 (r/w): Physical memory protection configuration register 12 */ + CSR_PMPCFG13 = 0x3ad, /**< 0x3ad - pmpcfg13 (r/w): Physical memory protection configuration register 13 */ + CSR_PMPCFG14 = 0x3ae, /**< 0x3ae - pmpcfg14 (r/w): Physical memory protection configuration register 14 */ + CSR_PMPCFG15 = 0x3af, /**< 0x3af - pmpcfg15 (r/w): Physical memory protection configuration register 15 */ + + CSR_PMPADDR0 = 0x3b0, /**< 0x3b0 - pmpaddr0 (r/w): Physical memory protection address register 0 */ + CSR_PMPADDR1 = 0x3b1, /**< 0x3b1 - pmpaddr1 (r/w): Physical memory protection address register 1 */ + CSR_PMPADDR2 = 0x3b2, /**< 0x3b2 - pmpaddr2 (r/w): Physical memory protection address register 2 */ + CSR_PMPADDR3 = 0x3b3, /**< 0x3b3 - pmpaddr3 (r/w): Physical memory protection address register 3 */ + CSR_PMPADDR4 = 0x3b4, /**< 0x3b4 - pmpaddr4 (r/w): Physical memory protection address register 4 */ + CSR_PMPADDR5 = 0x3b5, /**< 0x3b5 - pmpaddr5 (r/w): Physical memory protection address register 5 */ + CSR_PMPADDR6 = 0x3b6, /**< 0x3b6 - pmpaddr6 (r/w): Physical memory protection address register 6 */ + CSR_PMPADDR7 = 0x3b7, /**< 0x3b7 - pmpaddr7 (r/w): Physical memory protection address register 7 */ + CSR_PMPADDR8 = 0x3b8, /**< 0x3b8 - pmpaddr8 (r/w): Physical memory protection address register 8 */ + CSR_PMPADDR9 = 0x3b9, /**< 0x3b9 - pmpaddr9 (r/w): Physical memory protection address register 9 */ + CSR_PMPADDR10 = 0x3ba, /**< 0x3ba - pmpaddr10 (r/w): Physical memory protection address register 10 */ + CSR_PMPADDR11 = 0x3bb, /**< 0x3bb - pmpaddr11 (r/w): Physical memory protection address register 11 */ + CSR_PMPADDR12 = 0x3bc, /**< 0x3bc - pmpaddr12 (r/w): Physical memory protection address register 12 */ + CSR_PMPADDR13 = 0x3bd, /**< 0x3bd - pmpaddr13 (r/w): Physical memory protection address register 13 */ + CSR_PMPADDR14 = 0x3be, /**< 0x3be - pmpaddr14 (r/w): Physical memory protection address register 14 */ + CSR_PMPADDR15 = 0x3bf, /**< 0x3bf - pmpaddr15 (r/w): Physical memory protection address register 15 */ + CSR_PMPADDR16 = 0x3c0, /**< 0x3c0 - pmpaddr16 (r/w): Physical memory protection address register 16 */ + CSR_PMPADDR17 = 0x3c1, /**< 0x3c1 - pmpaddr17 (r/w): Physical memory protection address register 17 */ + CSR_PMPADDR18 = 0x3c2, /**< 0x3c2 - pmpaddr18 (r/w): Physical memory protection address register 18 */ + CSR_PMPADDR19 = 0x3c3, /**< 0x3c3 - pmpaddr19 (r/w): Physical memory protection address register 19 */ + CSR_PMPADDR20 = 0x3c4, /**< 0x3c4 - pmpaddr20 (r/w): Physical memory protection address register 20 */ + CSR_PMPADDR21 = 0x3c5, /**< 0x3c5 - pmpaddr21 (r/w): Physical memory protection address register 21 */ + CSR_PMPADDR22 = 0x3c6, /**< 0x3c6 - pmpaddr22 (r/w): Physical memory protection address register 22 */ + CSR_PMPADDR23 = 0x3c7, /**< 0x3c7 - pmpaddr23 (r/w): Physical memory protection address register 23 */ + CSR_PMPADDR24 = 0x3c8, /**< 0x3c8 - pmpaddr24 (r/w): Physical memory protection address register 24 */ + CSR_PMPADDR25 = 0x3c9, /**< 0x3c9 - pmpaddr25 (r/w): Physical memory protection address register 25 */ + CSR_PMPADDR26 = 0x3ca, /**< 0x3ca - pmpaddr26 (r/w): Physical memory protection address register 26 */ + CSR_PMPADDR27 = 0x3cb, /**< 0x3cb - pmpaddr27 (r/w): Physical memory protection address register 27 */ + CSR_PMPADDR28 = 0x3cc, /**< 0x3cc - pmpaddr28 (r/w): Physical memory protection address register 28 */ + CSR_PMPADDR29 = 0x3cd, /**< 0x3cd - pmpaddr29 (r/w): Physical memory protection address register 29 */ + CSR_PMPADDR30 = 0x3ce, /**< 0x3ce - pmpaddr30 (r/w): Physical memory protection address register 30 */ + CSR_PMPADDR31 = 0x3cf, /**< 0x3cf - pmpaddr31 (r/w): Physical memory protection address register 31 */ + CSR_PMPADDR32 = 0x3d0, /**< 0x3d0 - pmpaddr32 (r/w): Physical memory protection address register 32 */ + CSR_PMPADDR33 = 0x3d1, /**< 0x3d1 - pmpaddr33 (r/w): Physical memory protection address register 33 */ + CSR_PMPADDR34 = 0x3d2, /**< 0x3d2 - pmpaddr34 (r/w): Physical memory protection address register 34 */ + CSR_PMPADDR35 = 0x3d3, /**< 0x3d3 - pmpaddr35 (r/w): Physical memory protection address register 35 */ + CSR_PMPADDR36 = 0x3d4, /**< 0x3d4 - pmpaddr36 (r/w): Physical memory protection address register 36 */ + CSR_PMPADDR37 = 0x3d5, /**< 0x3d5 - pmpaddr37 (r/w): Physical memory protection address register 37 */ + CSR_PMPADDR38 = 0x3d6, /**< 0x3d6 - pmpaddr38 (r/w): Physical memory protection address register 38 */ + CSR_PMPADDR39 = 0x3d7, /**< 0x3d7 - pmpaddr39 (r/w): Physical memory protection address register 39 */ + CSR_PMPADDR40 = 0x3d8, /**< 0x3d8 - pmpaddr40 (r/w): Physical memory protection address register 40 */ + CSR_PMPADDR41 = 0x3d9, /**< 0x3d9 - pmpaddr41 (r/w): Physical memory protection address register 41 */ + CSR_PMPADDR42 = 0x3da, /**< 0x3da - pmpaddr42 (r/w): Physical memory protection address register 42 */ + CSR_PMPADDR43 = 0x3db, /**< 0x3db - pmpaddr43 (r/w): Physical memory protection address register 43 */ + CSR_PMPADDR44 = 0x3dc, /**< 0x3dc - pmpaddr44 (r/w): Physical memory protection address register 44 */ + CSR_PMPADDR45 = 0x3dd, /**< 0x3dd - pmpaddr45 (r/w): Physical memory protection address register 45 */ + CSR_PMPADDR46 = 0x3de, /**< 0x3de - pmpaddr46 (r/w): Physical memory protection address register 46 */ + CSR_PMPADDR47 = 0x3df, /**< 0x3df - pmpaddr47 (r/w): Physical memory protection address register 47 */ + CSR_PMPADDR48 = 0x3e0, /**< 0x3e0 - pmpaddr48 (r/w): Physical memory protection address register 48 */ + CSR_PMPADDR49 = 0x3e1, /**< 0x3e1 - pmpaddr49 (r/w): Physical memory protection address register 49 */ + CSR_PMPADDR50 = 0x3e2, /**< 0x3e2 - pmpaddr50 (r/w): Physical memory protection address register 50 */ + CSR_PMPADDR51 = 0x3e3, /**< 0x3e3 - pmpaddr51 (r/w): Physical memory protection address register 51 */ + CSR_PMPADDR52 = 0x3e4, /**< 0x3e4 - pmpaddr52 (r/w): Physical memory protection address register 52 */ + CSR_PMPADDR53 = 0x3e5, /**< 0x3e5 - pmpaddr53 (r/w): Physical memory protection address register 53 */ + CSR_PMPADDR54 = 0x3e6, /**< 0x3e6 - pmpaddr54 (r/w): Physical memory protection address register 54 */ + CSR_PMPADDR55 = 0x3e7, /**< 0x3e7 - pmpaddr55 (r/w): Physical memory protection address register 55 */ + CSR_PMPADDR56 = 0x3e8, /**< 0x3e8 - pmpaddr56 (r/w): Physical memory protection address register 56 */ + CSR_PMPADDR57 = 0x3e9, /**< 0x3e9 - pmpaddr57 (r/w): Physical memory protection address register 57 */ + CSR_PMPADDR58 = 0x3ea, /**< 0x3ea - pmpaddr58 (r/w): Physical memory protection address register 58 */ + CSR_PMPADDR59 = 0x3eb, /**< 0x3eb - pmpaddr59 (r/w): Physical memory protection address register 59 */ + CSR_PMPADDR60 = 0x3ec, /**< 0x3ec - pmpaddr60 (r/w): Physical memory protection address register 60 */ + CSR_PMPADDR61 = 0x3ed, /**< 0x3ed - pmpaddr61 (r/w): Physical memory protection address register 61 */ + CSR_PMPADDR62 = 0x3ee, /**< 0x3ee - pmpaddr62 (r/w): Physical memory protection address register 62 */ + CSR_PMPADDR63 = 0x3ef, /**< 0x3ef - pmpaddr63 (r/w): Physical memory protection address register 63 */ + + CSR_MCYCLE = 0xb00, /**< 0xb00 - mcycle (r/w): Machine cycle counter low word */ + CSR_MINSTRET = 0xb02, /**< 0xb02 - minstret (r/w): Machine instructions-retired counter low word */ + + CSR_MHPMCOUNTER3 = 0xb03, /**< 0xb03 - mhpmcounter3 (r/w): Machine hardware performance monitor 3 counter low word */ + CSR_MHPMCOUNTER4 = 0xb04, /**< 0xb04 - mhpmcounter4 (r/w): Machine hardware performance monitor 4 counter low word */ + CSR_MHPMCOUNTER5 = 0xb05, /**< 0xb05 - mhpmcounter5 (r/w): Machine hardware performance monitor 5 counter low word */ + CSR_MHPMCOUNTER6 = 0xb06, /**< 0xb06 - mhpmcounter6 (r/w): Machine hardware performance monitor 6 counter low word */ + CSR_MHPMCOUNTER7 = 0xb07, /**< 0xb07 - mhpmcounter7 (r/w): Machine hardware performance monitor 7 counter low word */ + CSR_MHPMCOUNTER8 = 0xb08, /**< 0xb08 - mhpmcounter8 (r/w): Machine hardware performance monitor 8 counter low word */ + CSR_MHPMCOUNTER9 = 0xb09, /**< 0xb09 - mhpmcounter9 (r/w): Machine hardware performance monitor 9 counter low word */ + CSR_MHPMCOUNTER10 = 0xb0a, /**< 0xb0a - mhpmcounter10 (r/w): Machine hardware performance monitor 10 counter low word */ + CSR_MHPMCOUNTER11 = 0xb0b, /**< 0xb0b - mhpmcounter11 (r/w): Machine hardware performance monitor 11 counter low word */ + CSR_MHPMCOUNTER12 = 0xb0c, /**< 0xb0c - mhpmcounter12 (r/w): Machine hardware performance monitor 12 counter low word */ + CSR_MHPMCOUNTER13 = 0xb0d, /**< 0xb0d - mhpmcounter13 (r/w): Machine hardware performance monitor 13 counter low word */ + CSR_MHPMCOUNTER14 = 0xb0e, /**< 0xb0e - mhpmcounter14 (r/w): Machine hardware performance monitor 14 counter low word */ + CSR_MHPMCOUNTER15 = 0xb0f, /**< 0xb0f - mhpmcounter15 (r/w): Machine hardware performance monitor 15 counter low word */ + CSR_MHPMCOUNTER16 = 0xb10, /**< 0xb10 - mhpmcounter16 (r/w): Machine hardware performance monitor 16 counter low word */ + CSR_MHPMCOUNTER17 = 0xb11, /**< 0xb11 - mhpmcounter17 (r/w): Machine hardware performance monitor 17 counter low word */ + CSR_MHPMCOUNTER18 = 0xb12, /**< 0xb12 - mhpmcounter18 (r/w): Machine hardware performance monitor 18 counter low word */ + CSR_MHPMCOUNTER19 = 0xb13, /**< 0xb13 - mhpmcounter19 (r/w): Machine hardware performance monitor 19 counter low word */ + CSR_MHPMCOUNTER20 = 0xb14, /**< 0xb14 - mhpmcounter20 (r/w): Machine hardware performance monitor 20 counter low word */ + CSR_MHPMCOUNTER21 = 0xb15, /**< 0xb15 - mhpmcounter21 (r/w): Machine hardware performance monitor 21 counter low word */ + CSR_MHPMCOUNTER22 = 0xb16, /**< 0xb16 - mhpmcounter22 (r/w): Machine hardware performance monitor 22 counter low word */ + CSR_MHPMCOUNTER23 = 0xb17, /**< 0xb17 - mhpmcounter23 (r/w): Machine hardware performance monitor 23 counter low word */ + CSR_MHPMCOUNTER24 = 0xb18, /**< 0xb18 - mhpmcounter24 (r/w): Machine hardware performance monitor 24 counter low word */ + CSR_MHPMCOUNTER25 = 0xb19, /**< 0xb19 - mhpmcounter25 (r/w): Machine hardware performance monitor 25 counter low word */ + CSR_MHPMCOUNTER26 = 0xb1a, /**< 0xb1a - mhpmcounter26 (r/w): Machine hardware performance monitor 26 counter low word */ + CSR_MHPMCOUNTER27 = 0xb1b, /**< 0xb1b - mhpmcounter27 (r/w): Machine hardware performance monitor 27 counter low word */ + CSR_MHPMCOUNTER28 = 0xb1c, /**< 0xb1c - mhpmcounter28 (r/w): Machine hardware performance monitor 28 counter low word */ + CSR_MHPMCOUNTER29 = 0xb1d, /**< 0xb1d - mhpmcounter29 (r/w): Machine hardware performance monitor 29 counter low word */ + CSR_MHPMCOUNTER30 = 0xb1e, /**< 0xb1e - mhpmcounter30 (r/w): Machine hardware performance monitor 30 counter low word */ + CSR_MHPMCOUNTER31 = 0xb1f, /**< 0xb1f - mhpmcounter31 (r/w): Machine hardware performance monitor 31 counter low word */ + + CSR_MCYCLEH = 0xb80, /**< 0xb80 - mcycleh (r/w): Machine cycle counter high word */ + CSR_MINSTRETH = 0xb82, /**< 0xb82 - minstreth (r/w): Machine instructions-retired counter high word */ + + CSR_MHPMCOUNTER3H = 0xb83, /**< 0xb83 - mhpmcounter3h (r/w): Machine hardware performance monitor 3 counter high word */ + CSR_MHPMCOUNTER4H = 0xb84, /**< 0xb84 - mhpmcounter4h (r/w): Machine hardware performance monitor 4 counter high word */ + CSR_MHPMCOUNTER5H = 0xb85, /**< 0xb85 - mhpmcounter5h (r/w): Machine hardware performance monitor 5 counter high word */ + CSR_MHPMCOUNTER6H = 0xb86, /**< 0xb86 - mhpmcounter6h (r/w): Machine hardware performance monitor 6 counter high word */ + CSR_MHPMCOUNTER7H = 0xb87, /**< 0xb87 - mhpmcounter7h (r/w): Machine hardware performance monitor 7 counter high word */ + CSR_MHPMCOUNTER8H = 0xb88, /**< 0xb88 - mhpmcounter8h (r/w): Machine hardware performance monitor 8 counter high word */ + CSR_MHPMCOUNTER9H = 0xb89, /**< 0xb89 - mhpmcounter9h (r/w): Machine hardware performance monitor 9 counter high word */ + CSR_MHPMCOUNTER10H = 0xb8a, /**< 0xb8a - mhpmcounter10h (r/w): Machine hardware performance monitor 10 counter high word */ + CSR_MHPMCOUNTER11H = 0xb8b, /**< 0xb8b - mhpmcounter11h (r/w): Machine hardware performance monitor 11 counter high word */ + CSR_MHPMCOUNTER12H = 0xb8c, /**< 0xb8c - mhpmcounter12h (r/w): Machine hardware performance monitor 12 counter high word */ + CSR_MHPMCOUNTER13H = 0xb8d, /**< 0xb8d - mhpmcounter13h (r/w): Machine hardware performance monitor 13 counter high word */ + CSR_MHPMCOUNTER14H = 0xb8e, /**< 0xb8e - mhpmcounter14h (r/w): Machine hardware performance monitor 14 counter high word */ + CSR_MHPMCOUNTER15H = 0xb8f, /**< 0xb8f - mhpmcounter15h (r/w): Machine hardware performance monitor 15 counter high word */ + CSR_MHPMCOUNTER16H = 0xb90, /**< 0xb90 - mhpmcounter16h (r/w): Machine hardware performance monitor 16 counter high word */ + CSR_MHPMCOUNTER17H = 0xb91, /**< 0xb91 - mhpmcounter17h (r/w): Machine hardware performance monitor 17 counter high word */ + CSR_MHPMCOUNTER18H = 0xb92, /**< 0xb92 - mhpmcounter18h (r/w): Machine hardware performance monitor 18 counter high word */ + CSR_MHPMCOUNTER19H = 0xb93, /**< 0xb93 - mhpmcounter19h (r/w): Machine hardware performance monitor 19 counter high word */ + CSR_MHPMCOUNTER20H = 0xb94, /**< 0xb94 - mhpmcounter20h (r/w): Machine hardware performance monitor 20 counter high word */ + CSR_MHPMCOUNTER21H = 0xb95, /**< 0xb95 - mhpmcounter21h (r/w): Machine hardware performance monitor 21 counter high word */ + CSR_MHPMCOUNTER22H = 0xb96, /**< 0xb96 - mhpmcounter22h (r/w): Machine hardware performance monitor 22 counter high word */ + CSR_MHPMCOUNTER23H = 0xb97, /**< 0xb97 - mhpmcounter23h (r/w): Machine hardware performance monitor 23 counter high word */ + CSR_MHPMCOUNTER24H = 0xb98, /**< 0xb98 - mhpmcounter24h (r/w): Machine hardware performance monitor 24 counter high word */ + CSR_MHPMCOUNTER25H = 0xb99, /**< 0xb99 - mhpmcounter25h (r/w): Machine hardware performance monitor 25 counter high word */ + CSR_MHPMCOUNTER26H = 0xb9a, /**< 0xb9a - mhpmcounter26h (r/w): Machine hardware performance monitor 26 counter high word */ + CSR_MHPMCOUNTER27H = 0xb9b, /**< 0xb9b - mhpmcounter27h (r/w): Machine hardware performance monitor 27 counter high word */ + CSR_MHPMCOUNTER28H = 0xb9c, /**< 0xb9c - mhpmcounter28h (r/w): Machine hardware performance monitor 28 counter high word */ + CSR_MHPMCOUNTER29H = 0xb9d, /**< 0xb9d - mhpmcounter29h (r/w): Machine hardware performance monitor 29 counter high word */ + CSR_MHPMCOUNTER30H = 0xb9e, /**< 0xb9e - mhpmcounter30h (r/w): Machine hardware performance monitor 30 counter high word */ + CSR_MHPMCOUNTER31H = 0xb9f, /**< 0xb9f - mhpmcounter31h (r/w): Machine hardware performance monitor 31 counter high word */ + + CSR_CYCLE = 0xc00, /**< 0xc00 - cycle (r/-): Cycle counter low word (from MCYCLE) */ + CSR_TIME = 0xc01, /**< 0xc01 - time (r/-): Timer low word (from MTIME.TIME_LO) */ + CSR_INSTRET = 0xc02, /**< 0xc02 - instret (r/-): Instructions-retired counter low word (from MINSTRET) */ + + CSR_CYCLEH = 0xc80, /**< 0xc80 - cycleh (r/-): Cycle counter high word (from MCYCLEH) */ + CSR_TIMEH = 0xc81, /**< 0xc81 - timeh (r/-): Timer high word (from MTIME.TIME_HI) */ + CSR_INSTRETH = 0xc82, /**< 0xc82 - instreth (r/-): Instructions-retired counter high word (from MINSTRETH) */ + + CSR_MVENDORID = 0xf11, /**< 0xf11 - mvendorid (r/-): Vendor ID */ + CSR_MARCHID = 0xf12, /**< 0xf12 - marchid (r/-): Architecture ID */ + CSR_MIMPID = 0xf13, /**< 0xf13 - mimpid (r/-): Implementation ID/version */ + CSR_MHARTID = 0xf14, /**< 0xf14 - mhartid (r/-): Hardware thread ID (always 0) */ + CSR_MCONFIGPTR = 0xf15 /**< 0xf15 - mconfigptr (r/-): Machine configuration pointer register */ +}; + + +/**********************************************************************//** + * CPU mstatus CSR (r/w): Machine status (RISC-V spec.) + **************************************************************************/ +enum NEORV32_CSR_MSTATUS_enum { + CSR_MSTATUS_MIE = 3, /**< CPU mstatus CSR (3): MIE - Machine interrupt enable bit (r/w) */ + CSR_MSTATUS_MPIE = 7, /**< CPU mstatus CSR (7): MPIE - Machine previous interrupt enable bit (r/w) */ + CSR_MSTATUS_MPP_L = 11, /**< CPU mstatus CSR (11): MPP_L - Machine previous privilege mode bit low (r/w) */ + CSR_MSTATUS_MPP_H = 12 /**< CPU mstatus CSR (12): MPP_H - Machine previous privilege mode bit high (r/w) */ +}; + + +/**********************************************************************//** + * CPU mcounteren CSR (r/w): Machine counter enable (RISC-V spec.) + **************************************************************************/ +enum NEORV32_CSR_MCOUNTEREN_enum { + CSR_MCOUNTEREN_CY = 0, /**< CPU mcounteren CSR (0): CY - Allow access to cycle[h] CSRs from U-mode when set (r/w) */ + CSR_MCOUNTEREN_TM = 1, /**< CPU mcounteren CSR (1): TM - Allow access to time[h] CSRs from U-mode when set (r/w) */ + CSR_MCOUNTEREN_IR = 2 /**< CPU mcounteren CSR (2): IR - Allow access to instret[h] CSRs from U-mode when set (r/w) */ +}; + + +/**********************************************************************//** + * CPU mcountinhibit CSR (r/w): Machine counter-inhibit (RISC-V spec.) + **************************************************************************/ +enum NEORV32_CSR_MCOUNTINHIBIT_enum { + CSR_MCOUNTINHIBIT_CY = 0, /**< CPU mcountinhibit CSR (0): CY - Enable auto-increment of [m]cycle[h] CSR when set (r/w) */ + CSR_MCOUNTINHIBIT_IR = 2, /**< CPU mcountinhibit CSR (2): IR - Enable auto-increment of [m]instret[h] CSR when set (r/w) */ + + CSR_MCOUNTINHIBIT_HPM3 = 3, /**< CPU mcountinhibit CSR (3): HPM3 - Enable auto-increment of hpmcnt3[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM4 = 4, /**< CPU mcountinhibit CSR (4): HPM4 - Enable auto-increment of hpmcnt4[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM5 = 5, /**< CPU mcountinhibit CSR (5): HPM5 - Enable auto-increment of hpmcnt5[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM6 = 6, /**< CPU mcountinhibit CSR (6): HPM6 - Enable auto-increment of hpmcnt6[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM7 = 7, /**< CPU mcountinhibit CSR (7): HPM7 - Enable auto-increment of hpmcnt7[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM8 = 8, /**< CPU mcountinhibit CSR (8): HPM8 - Enable auto-increment of hpmcnt8[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM9 = 9, /**< CPU mcountinhibit CSR (9): HPM9 - Enable auto-increment of hpmcnt9[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM10 = 10, /**< CPU mcountinhibit CSR (10): HPM10 - Enable auto-increment of hpmcnt10[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM11 = 11, /**< CPU mcountinhibit CSR (11): HPM11 - Enable auto-increment of hpmcnt11[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM12 = 12, /**< CPU mcountinhibit CSR (12): HPM12 - Enable auto-increment of hpmcnt12[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM13 = 13, /**< CPU mcountinhibit CSR (13): HPM13 - Enable auto-increment of hpmcnt13[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM14 = 14, /**< CPU mcountinhibit CSR (14): HPM14 - Enable auto-increment of hpmcnt14[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM15 = 15, /**< CPU mcountinhibit CSR (15): HPM15 - Enable auto-increment of hpmcnt15[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM16 = 16, /**< CPU mcountinhibit CSR (16): HPM16 - Enable auto-increment of hpmcnt16[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM17 = 17, /**< CPU mcountinhibit CSR (17): HPM17 - Enable auto-increment of hpmcnt17[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM18 = 18, /**< CPU mcountinhibit CSR (18): HPM18 - Enable auto-increment of hpmcnt18[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM19 = 19, /**< CPU mcountinhibit CSR (19): HPM19 - Enable auto-increment of hpmcnt19[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM20 = 20, /**< CPU mcountinhibit CSR (20): HPM20 - Enable auto-increment of hpmcnt20[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM21 = 21, /**< CPU mcountinhibit CSR (21): HPM21 - Enable auto-increment of hpmcnt21[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM22 = 22, /**< CPU mcountinhibit CSR (22): HPM22 - Enable auto-increment of hpmcnt22[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM23 = 23, /**< CPU mcountinhibit CSR (23): HPM23 - Enable auto-increment of hpmcnt23[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM24 = 24, /**< CPU mcountinhibit CSR (24): HPM24 - Enable auto-increment of hpmcnt24[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM25 = 25, /**< CPU mcountinhibit CSR (25): HPM25 - Enable auto-increment of hpmcnt25[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM26 = 26, /**< CPU mcountinhibit CSR (26): HPM26 - Enable auto-increment of hpmcnt26[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM27 = 27, /**< CPU mcountinhibit CSR (27): HPM27 - Enable auto-increment of hpmcnt27[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM28 = 28, /**< CPU mcountinhibit CSR (28): HPM28 - Enable auto-increment of hpmcnt28[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM29 = 29, /**< CPU mcountinhibit CSR (29): HPM29 - Enable auto-increment of hpmcnt29[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM30 = 30, /**< CPU mcountinhibit CSR (30): HPM30 - Enable auto-increment of hpmcnt30[h] when set (r/w) */ + CSR_MCOUNTINHIBIT_HPM31 = 31 /**< CPU mcountinhibit CSR (31): HPM31 - Enable auto-increment of hpmcnt31[h] when set (r/w) */ +}; + + +/**********************************************************************//** + * CPU mie CSR (r/w): Machine interrupt enable (RISC-V spec.) + **************************************************************************/ +enum NEORV32_CSR_MIE_enum { + CSR_MIE_MSIE = 3, /**< CPU mie CSR (3): MSIE - Machine software interrupt enable (r/w) */ + CSR_MIE_MTIE = 7, /**< CPU mie CSR (7): MTIE - Machine timer interrupt enable bit (r/w) */ + CSR_MIE_MEIE = 11, /**< CPU mie CSR (11): MEIE - Machine external interrupt enable bit (r/w) */ + + CSR_MIE_FIRQ0E = 16, /**< CPU mie CSR (16): FIRQ0E - Fast interrupt channel 0 enable bit (r/w) */ + CSR_MIE_FIRQ1E = 17, /**< CPU mie CSR (17): FIRQ1E - Fast interrupt channel 1 enable bit (r/w) */ + CSR_MIE_FIRQ2E = 18, /**< CPU mie CSR (18): FIRQ2E - Fast interrupt channel 2 enable bit (r/w) */ + CSR_MIE_FIRQ3E = 19, /**< CPU mie CSR (19): FIRQ3E - Fast interrupt channel 3 enable bit (r/w) */ + CSR_MIE_FIRQ4E = 20, /**< CPU mie CSR (20): FIRQ4E - Fast interrupt channel 4 enable bit (r/w) */ + CSR_MIE_FIRQ5E = 21, /**< CPU mie CSR (21): FIRQ5E - Fast interrupt channel 5 enable bit (r/w) */ + CSR_MIE_FIRQ6E = 22, /**< CPU mie CSR (22): FIRQ6E - Fast interrupt channel 6 enable bit (r/w) */ + CSR_MIE_FIRQ7E = 23, /**< CPU mie CSR (23): FIRQ7E - Fast interrupt channel 7 enable bit (r/w) */ + CSR_MIE_FIRQ8E = 24, /**< CPU mie CSR (24): FIRQ8E - Fast interrupt channel 8 enable bit (r/w) */ + CSR_MIE_FIRQ9E = 25, /**< CPU mie CSR (25): FIRQ9E - Fast interrupt channel 9 enable bit (r/w) */ + CSR_MIE_FIRQ10E = 26, /**< CPU mie CSR (26): FIRQ10E - Fast interrupt channel 10 enable bit (r/w) */ + CSR_MIE_FIRQ11E = 27, /**< CPU mie CSR (27): FIRQ11E - Fast interrupt channel 11 enable bit (r/w) */ + CSR_MIE_FIRQ12E = 28, /**< CPU mie CSR (28): FIRQ12E - Fast interrupt channel 12 enable bit (r/w) */ + CSR_MIE_FIRQ13E = 29, /**< CPU mie CSR (29): FIRQ13E - Fast interrupt channel 13 enable bit (r/w) */ + CSR_MIE_FIRQ14E = 30, /**< CPU mie CSR (30): FIRQ14E - Fast interrupt channel 14 enable bit (r/w) */ + CSR_MIE_FIRQ15E = 31 /**< CPU mie CSR (31): FIRQ15E - Fast interrupt channel 15 enable bit (r/w) */ +}; + + +/**********************************************************************//** + * CPU mip CSR (r/-): Machine interrupt pending (RISC-V spec.) + **************************************************************************/ +enum NEORV32_CSR_MIP_enum { + CSR_MIP_MSIP = 3, /**< CPU mip CSR (3): MSIP - Machine software interrupt pending (r/-) */ + CSR_MIP_MTIP = 7, /**< CPU mip CSR (7): MTIP - Machine timer interrupt pending (r/-) */ + CSR_MIP_MEIP = 11, /**< CPU mip CSR (11): MEIP - Machine external interrupt pending (r/-) */ + + CSR_MIP_FIRQ0P = 16, /**< CPU mip CSR (16): FIRQ0P - Fast interrupt channel 0 pending (r/-) */ + CSR_MIP_FIRQ1P = 17, /**< CPU mip CSR (17): FIRQ1P - Fast interrupt channel 1 pending (r/-) */ + CSR_MIP_FIRQ2P = 18, /**< CPU mip CSR (18): FIRQ2P - Fast interrupt channel 2 pending (r/-) */ + CSR_MIP_FIRQ3P = 19, /**< CPU mip CSR (19): FIRQ3P - Fast interrupt channel 3 pending (r/-) */ + CSR_MIP_FIRQ4P = 20, /**< CPU mip CSR (20): FIRQ4P - Fast interrupt channel 4 pending (r/-) */ + CSR_MIP_FIRQ5P = 21, /**< CPU mip CSR (21): FIRQ5P - Fast interrupt channel 5 pending (r/-) */ + CSR_MIP_FIRQ6P = 22, /**< CPU mip CSR (22): FIRQ6P - Fast interrupt channel 6 pending (r/-) */ + CSR_MIP_FIRQ7P = 23, /**< CPU mip CSR (23): FIRQ7P - Fast interrupt channel 7 pending (r/-) */ + CSR_MIP_FIRQ8P = 24, /**< CPU mip CSR (24): FIRQ8P - Fast interrupt channel 8 pending (r/-) */ + CSR_MIP_FIRQ9P = 25, /**< CPU mip CSR (25): FIRQ9P - Fast interrupt channel 9 pending (r/-) */ + CSR_MIP_FIRQ10P = 26, /**< CPU mip CSR (26): FIRQ10P - Fast interrupt channel 10 pending (r/-) */ + CSR_MIP_FIRQ11P = 27, /**< CPU mip CSR (27): FIRQ11P - Fast interrupt channel 11 pending (r/-) */ + CSR_MIP_FIRQ12P = 28, /**< CPU mip CSR (28): FIRQ12P - Fast interrupt channel 12 pending (r/-) */ + CSR_MIP_FIRQ13P = 29, /**< CPU mip CSR (29): FIRQ13P - Fast interrupt channel 13 pending (r/-) */ + CSR_MIP_FIRQ14P = 30, /**< CPU mip CSR (30): FIRQ14P - Fast interrupt channel 14 pending (r/-) */ + CSR_MIP_FIRQ15P = 31 /**< CPU mip CSR (31): FIRQ15P - Fast interrupt channel 15 pending (r/-) */ +}; + + +/**********************************************************************//** + * CPU misa CSR (r/-): Machine instruction set extensions (RISC-V spec.) + **************************************************************************/ +enum NEORV32_CSR_MISA_enum { + CSR_MISA_A = 0, /**< CPU misa CSR (0): A: Atomic instructions CPU extension available (r/-)*/ + CSR_MISA_B = 1, /**< CPU misa CSR (1): B: Bit manipulation CPU extension available (r/-)*/ + CSR_MISA_C = 2, /**< CPU misa CSR (2): C: Compressed instructions CPU extension available (r/-)*/ + CSR_MISA_D = 3, /**< CPU misa CSR (3): D: Double-precision floating-point extension available (r/-)*/ + CSR_MISA_E = 4, /**< CPU misa CSR (4): E: Embedded CPU extension available (r/-) */ + CSR_MISA_F = 5, /**< CPU misa CSR (5): F: Single-precision floating-point extension available (r/-)*/ + CSR_MISA_I = 8, /**< CPU misa CSR (8): I: Base integer ISA CPU extension available (r/-) */ + CSR_MISA_M = 12, /**< CPU misa CSR (12): M: Multiplier/divider CPU extension available (r/-)*/ + CSR_MISA_U = 20, /**< CPU misa CSR (20): U: User mode CPU extension available (r/-)*/ + CSR_MISA_X = 23, /**< CPU misa CSR (23): X: Non-standard CPU extension available (r/-) */ + CSR_MISA_MXL_LO = 30, /**< CPU misa CSR (30): MXL.lo: CPU data width (r/-) */ + CSR_MISA_MXL_HI = 31 /**< CPU misa CSR (31): MXL.Hi: CPU data width (r/-) */ +}; + + +/**********************************************************************//** + * CPU mhpmevent hardware performance monitor events + **************************************************************************/ +enum NEORV32_HPMCNT_EVENT_enum { + HPMCNT_EVENT_CY = 0, /**< CPU mhpmevent CSR (0): Active cycle */ + HPMCNT_EVENT_IR = 2, /**< CPU mhpmevent CSR (2): Retired instruction */ + + HPMCNT_EVENT_CIR = 3, /**< CPU mhpmevent CSR (3): Retired compressed instruction */ + HPMCNT_EVENT_WAIT_IF = 4, /**< CPU mhpmevent CSR (4): Instruction fetch memory wait cycle */ + HPMCNT_EVENT_WAIT_II = 5, /**< CPU mhpmevent CSR (5): Instruction issue wait cycle */ + HPMCNT_EVENT_WAIT_MC = 6, /**< CPU mhpmevent CSR (6): Multi-cycle ALU-operation wait cycle */ + HPMCNT_EVENT_LOAD = 7, /**< CPU mhpmevent CSR (7): Load operation */ + HPMCNT_EVENT_STORE = 8, /**< CPU mhpmevent CSR (8): Store operation */ + HPMCNT_EVENT_WAIT_LS = 9, /**< CPU mhpmevent CSR (9): Load/store memory wait cycle */ + + HPMCNT_EVENT_JUMP = 10, /**< CPU mhpmevent CSR (10): Unconditional jump */ + HPMCNT_EVENT_BRANCH = 11, /**< CPU mhpmevent CSR (11): Conditional branch (taken or not taken) */ + HPMCNT_EVENT_TBRANCH = 12, /**< CPU mhpmevent CSR (12): Conditional taken branch */ + + HPMCNT_EVENT_TRAP = 13, /**< CPU mhpmevent CSR (13): Entered trap */ + HPMCNT_EVENT_ILLEGAL = 14 /**< CPU mhpmevent CSR (14): Illegal instruction exception */ +}; + + +/**********************************************************************//** + * CPU pmpcfg PMP configuration attributed + **************************************************************************/ +enum NEORV32_PMPCFG_ATTRIBUTES_enum { + PMPCFG_R = 0, /**< CPU pmpcfg attribute (0): Read */ + PMPCFG_W = 1, /**< CPU pmpcfg attribute (1): Write */ + PMPCFG_X = 2, /**< CPU pmpcfg attribute (2): Execute */ + PMPCFG_A_LSB = 3, /**< CPU pmpcfg attribute (3): Mode LSB */ + PMPCFG_A_MSB = 4, /**< CPU pmpcfg attribute (4): Mode MSB */ + PMPCFG_L = 7 /**< CPU pmpcfg attribute (7): Locked */ +}; + +/**********************************************************************//** + * PMP modes + **************************************************************************/ +#define PMPCFG_MODE_NAPOT 3 + + +/**********************************************************************//** + * Trap codes from mcause CSR. + **************************************************************************/ +enum NEORV32_EXCEPTION_CODES_enum { + TRAP_CODE_I_MISALIGNED = 0x00000000, /**< 0.0: Instruction address misaligned */ + TRAP_CODE_I_ACCESS = 0x00000001, /**< 0.1: Instruction (bus) access fault */ + TRAP_CODE_I_ILLEGAL = 0x00000002, /**< 0.2: Illegal instruction */ + TRAP_CODE_BREAKPOINT = 0x00000003, /**< 0.3: Breakpoint (EBREAK instruction) */ + TRAP_CODE_L_MISALIGNED = 0x00000004, /**< 0.4: Load address misaligned */ + TRAP_CODE_L_ACCESS = 0x00000005, /**< 0.5: Load (bus) access fault */ + TRAP_CODE_S_MISALIGNED = 0x00000006, /**< 0.6: Store address misaligned */ + TRAP_CODE_S_ACCESS = 0x00000007, /**< 0.7: Store (bus) access fault */ + TRAP_CODE_UENV_CALL = 0x00000008, /**< 0.8: Environment call from user mode (ECALL instruction) */ + TRAP_CODE_MENV_CALL = 0x0000000b, /**< 0.11: Environment call from machine mode (ECALL instruction) */ + TRAP_CODE_MSI = 0x80000003, /**< 1.3: Machine software interrupt */ + TRAP_CODE_MTI = 0x80000007, /**< 1.7: Machine timer interrupt */ + TRAP_CODE_MEI = 0x8000000b, /**< 1.11: Machine external interrupt */ + TRAP_CODE_FIRQ_0 = 0x80000010, /**< 1.16: Fast interrupt channel 0 */ + TRAP_CODE_FIRQ_1 = 0x80000011, /**< 1.17: Fast interrupt channel 1 */ + TRAP_CODE_FIRQ_2 = 0x80000012, /**< 1.18: Fast interrupt channel 2 */ + TRAP_CODE_FIRQ_3 = 0x80000013, /**< 1.19: Fast interrupt channel 3 */ + TRAP_CODE_FIRQ_4 = 0x80000014, /**< 1.20: Fast interrupt channel 4 */ + TRAP_CODE_FIRQ_5 = 0x80000015, /**< 1.21: Fast interrupt channel 5 */ + TRAP_CODE_FIRQ_6 = 0x80000016, /**< 1.22: Fast interrupt channel 6 */ + TRAP_CODE_FIRQ_7 = 0x80000017, /**< 1.23: Fast interrupt channel 7 */ + TRAP_CODE_FIRQ_8 = 0x80000018, /**< 1.24: Fast interrupt channel 8 */ + TRAP_CODE_FIRQ_9 = 0x80000019, /**< 1.25: Fast interrupt channel 9 */ + TRAP_CODE_FIRQ_10 = 0x8000001a, /**< 1.26: Fast interrupt channel 10 */ + TRAP_CODE_FIRQ_11 = 0x8000001b, /**< 1.27: Fast interrupt channel 11 */ + TRAP_CODE_FIRQ_12 = 0x8000001c, /**< 1.28: Fast interrupt channel 12 */ + TRAP_CODE_FIRQ_13 = 0x8000001d, /**< 1.29: Fast interrupt channel 13 */ + TRAP_CODE_FIRQ_14 = 0x8000001e, /**< 1.30: Fast interrupt channel 14 */ + TRAP_CODE_FIRQ_15 = 0x8000001f /**< 1.31: Fast interrupt channel 15 */ +}; + + +/**********************************************************************//** + * Processor clock prescaler select + **************************************************************************/ +enum NEORV32_CLOCK_PRSC_enum { + CLK_PRSC_2 = 0, /**< CPU_CLK (from clk_i top signal) / 2 */ + CLK_PRSC_4 = 1, /**< CPU_CLK (from clk_i top signal) / 4 */ + CLK_PRSC_8 = 2, /**< CPU_CLK (from clk_i top signal) / 8 */ + CLK_PRSC_64 = 3, /**< CPU_CLK (from clk_i top signal) / 64 */ + CLK_PRSC_128 = 4, /**< CPU_CLK (from clk_i top signal) / 128 */ + CLK_PRSC_1024 = 5, /**< CPU_CLK (from clk_i top signal) / 1024 */ + CLK_PRSC_2048 = 6, /**< CPU_CLK (from clk_i top signal) / 2048 */ + CLK_PRSC_4096 = 7 /**< CPU_CLK (from clk_i top signal) / 4096 */ +}; + + +/**********************************************************************//** + * Official NEORV32 >RISC-V open-source architecture ID< + * https://github.com/riscv/riscv-isa-manual/blob/master/marchid.md + **************************************************************************/ +#define NEORV32_ARCHID 19 + + +/**********************************************************************//** + * @defgroup FIRQ_ALIASES Fast Interrupt Requests (FIRQ) Aliases (MIE, MIP, MCAUSE, RTE-ID) + * @name Fast Interrupt Requests (FIRQ) Aliases (MIE, MIP, MCAUSE, RTE-ID) + **************************************************************************/ +/**@{*/ +/** @name Watchdog Timer (WDT) */ +/**@{*/ +#define WDT_FIRQ_ENABLE CSR_MIE_FIRQ0E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define WDT_FIRQ_PENDING CSR_MIP_FIRQ0P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define WDT_RTE_ID RTE_TRAP_FIRQ_0 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define WDT_TRAP_CODE TRAP_CODE_FIRQ_0 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Custom Functions Subsystem (CFS) */ +/**@{*/ +#define CFS_FIRQ_ENABLE CSR_MIE_FIRQ1E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define CFS_FIRQ_PENDING CSR_MIP_FIRQ1P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define CFS_RTE_ID RTE_TRAP_FIRQ_1 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define CFS_TRAP_CODE TRAP_CODE_FIRQ_1 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Primary Universal Asynchronous Receiver/Transmitter (UART0) */ +/**@{*/ +#define UART0_RX_FIRQ_ENABLE CSR_MIE_FIRQ2E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define UART0_RX_FIRQ_PENDING CSR_MIP_FIRQ2P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define UART0_RX_RTE_ID RTE_TRAP_FIRQ_2 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define UART0_RX_TRAP_CODE TRAP_CODE_FIRQ_2 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +#define UART0_TX_FIRQ_ENABLE CSR_MIE_FIRQ3E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define UART0_TX_FIRQ_PENDING CSR_MIP_FIRQ3P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define UART0_TX_RTE_ID RTE_TRAP_FIRQ_3 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define UART0_TX_TRAP_CODE TRAP_CODE_FIRQ_4 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Secondary Universal Asynchronous Receiver/Transmitter (UART1) */ +/**@{*/ +#define UART1_RX_FIRQ_ENABLE CSR_MIE_FIRQ4E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define UART1_RX_FIRQ_PENDING CSR_MIP_FIRQ4P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define UART1_RX_RTE_ID RTE_TRAP_FIRQ_4 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define UART1_RX_TRAP_CODE TRAP_CODE_FIRQ_4 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +#define UART1_TX_FIRQ_ENABLE CSR_MIE_FIRQ5E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define UART1_TX_FIRQ_PENDING CSR_MIP_FIRQ5P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define UART1_TX_RTE_ID RTE_TRAP_FIRQ_5 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define UART1_TX_TRAP_CODE TRAP_CODE_FIRQ_5 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Serial Peripheral Interface (SPI) */ +/**@{*/ +#define SPI_FIRQ_ENABLE CSR_MIE_FIRQ6E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define SPI_FIRQ_PENDING CSR_MIP_FIRQ6P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define SPI_RTE_ID RTE_TRAP_FIRQ_6 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define SPI_TRAP_CODE TRAP_CODE_FIRQ_6 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Two-Wire Interface (TWI) */ +/**@{*/ +#define TWI_FIRQ_ENABLE CSR_MIE_FIRQ7E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define TWI_FIRQ_PENDING CSR_MIP_FIRQ7P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define TWI_RTE_ID RTE_TRAP_FIRQ_7 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define TWI_TRAP_CODE TRAP_CODE_FIRQ_7 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name External Interrupt Controller (XIRQ) */ +/**@{*/ +#define XIRQ_FIRQ_ENABLE CSR_MIE_FIRQ8E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define XIRQ_FIRQ_PENDING CSR_MIP_FIRQ8P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define XIRQ_RTE_ID RTE_TRAP_FIRQ_8 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define XIRQ_TRAP_CODE TRAP_CODE_FIRQ_8 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Smart LED Controller (NEOLED) */ +/**@{*/ +#define NEOLED_FIRQ_ENABLE CSR_MIE_FIRQ9E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define NEOLED_FIRQ_PENDING CSR_MIP_FIRQ9P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define NEOLED_RTE_ID RTE_TRAP_FIRQ_9 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define NEOLED_TRAP_CODE TRAP_CODE_FIRQ_9 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name Stream Link Interface (SLINK) */ +/**@{*/ +#define SLINK_RX_FIRQ_ENABLE CSR_MIE_FIRQ10E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define SLINK_RX_FIRQ_PENDING CSR_MIP_FIRQ10P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define SLINK_RX_RTE_ID RTE_TRAP_FIRQ_10 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define SLINK_RX_TRAP_CODE TRAP_CODE_FIRQ_10 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +#define SLINK_TX_FIRQ_ENABLE CSR_MIE_FIRQ11E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define SLINK_TX_FIRQ_PENDING CSR_MIP_FIRQ11P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define SLINK_TX_RTE_ID RTE_TRAP_FIRQ_11 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define SLINK_TX_TRAP_CODE TRAP_CODE_FIRQ_11 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/** @name General Purpose Timer (GPTMR) */ +/**@{*/ +#define GPTMR_FIRQ_ENABLE CSR_MIE_FIRQ12E /**< MIE CSR bit (#NEORV32_CSR_MIE_enum) */ +#define GPTMR_FIRQ_PENDING CSR_MIP_FIRQ12P /**< MIP CSR bit (#NEORV32_CSR_MIP_enum) */ +#define GPTMR_RTE_ID RTE_TRAP_FIRQ_12 /**< RTE entry code (#NEORV32_RTE_TRAP_enum) */ +#define GPTMR_TRAP_CODE TRAP_CODE_FIRQ_12 /**< MCAUSE CSR trap code (#NEORV32_EXCEPTION_CODES_enum) */ +/**@}*/ +/**@}*/ + + +/**********************************************************************//** + * @name Address space sections + **************************************************************************/ +/**@{*/ +/** instruction memory base address (r/w/x) */ +// -> configured via ispace_base_c constant in neorv32_package.vhd and available to SW via SYSCONFIG entry +/** data memory base address (r/w/x) */ +// -> configured via dspace_base_c constant in neorv32_package.vhd and available to SW via SYSCONFIG entry +/** bootloader memory base address (r/-/x) */ +#define BOOTLOADER_BASE_ADDRESS (0xFFFF0000UL) +/** on-chip debugger complex base address (r/w/x) */ +#define OCD_BASE_ADDRESS (0XFFFFF800UL) +/** peripheral/IO devices memory base address (r/w/-) */ +#define IO_BASE_ADDRESS (0xFFFFFE00UL) +/**@}*/ + + +// ############################################################################################################################ +// On-Chip Debugger (should NOT be used by application software) +// ############################################################################################################################ +/**@{*/ +/** on-chip debugger - debug module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + const uint32_t CODE[32]; /**< offset 0: park loop code ROM (r/-) */ + const uint32_t PBUF[4]; /**< offset 128: program buffer (r/-) */ + const uint32_t reserved1[28]; /**< offset 144..252: reserved */ + uint32_t DATA; /**< offset 256: data exchange register (r/w) */ + const uint32_t reserved2[31]; /**< offset 260..380: reserved */ + uint32_t SREG; /**< offset 384: control and status register (r/w) (#NEORV32_OCD_DM_SREG_enum) */ + const uint32_t reserved3[31]; /**< offset 388..508: reserved */ +} neorv32_dm_t; + +/** on-chip debugger debug module hardware access (#neorv32_dm_t) */ +#define NEORV32_DM (*((volatile neorv32_dm_t*) (0XFFFFF800UL))) + +/** on-chip debugger debug module control and status register bits */ +enum NEORV32_OCD_DM_SREG_enum { + OCD_DM_SREG_HALT_ACK = 0, /**< OCD.DM control and status register(0) (-/w): CPU is halted in debug mode and waits in park loop */ + OCD_DM_SREG_RESUME_REQ = 1, /**< OCD.DM control and status register(1) (r/-): DM requests CPU to resume */ + OCD_DM_SREG_RESUME_ACK = 2, /**< OCD.DM control and status register(2) (-/w): CPU starts resuming */ + OCD_DM_SREG_EXECUTE_REQ = 3, /**< OCD.DM control and status register(3) (r/-): DM requests to execute program buffer */ + OCD_DM_SREG_EXECUTE_ACK = 4, /**< OCD.DM control and status register(4) (-/w): CPU starts to execute program buffer */ + OCD_DM_SREG_EXCEPTION_ACK = 5 /**< OCD.DM control and status register(5) (-/w): CPU has detected an exception */ +}; +/**@}*/ + + +// ############################################################################################################################ +// Peripheral/IO Devices - IO Address Space +// ############################################################################################################################ + + +/**********************************************************************//** + * @name Helper macros for easy memory-mapped register access (DEPRECATED!) + **************************************************************************/ +/**@{*/ +/** memory-mapped byte (8-bit) read/write register */ +#define IO_REG8 (volatile uint8_t*) +/** memory-mapped half-word (16-bit) read/write register */ +#define IO_REG16 (volatile uint16_t*) +/** memory-mapped word (32-bit) read/write register */ +#define IO_REG32 (volatile uint32_t*) +/** memory-mapped double-word (64-bit) read/write register */ +#define IO_REG64 (volatile uint64_t*) +/** memory-mapped byte (8-bit) read-only register */ +#define IO_ROM8 (const volatile uint8_t*) +/** memory-mapped half-word (16-bit) read-only register */ +#define IO_ROM16 (const volatile uint16_t*) +/** memory-mapped word (32-bit) read-only register */ +#define IO_ROM32 (const volatile uint32_t*) +/** memory-mapped double-word (64-bit) read-only register */ +#define IO_ROM64 (const volatile uint64_t*) +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Custom Functions Subsystem (CFS) + **************************************************************************/ +/**@{*/ +/** CFS module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t REG[32]; /**< offset 4*0..4*31: CFS register 0..31, user-defined */ +} neorv32_cfs_t; + +/** CFS module hardware access (#neorv32_cfs_t) */ +#define NEORV32_CFS (*((volatile neorv32_cfs_t*) (0xFFFFFE00UL))) +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Pulse Width Modulation Controller (PWM) + **************************************************************************/ +/**@{*/ +/** PWM module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_PWM_CTRL_enum) */ + uint32_t DUTY[15]; /**< offset 4..60: duty cycle register 0..14 */ +} neorv32_pwm_t; + +/** PWM module hardware access (#neorv32_pwm_t) */ +#define NEORV32_PWM (*((volatile neorv32_pwm_t*) (0xFFFFFE80UL))) + +/** PWM control register bits */ +enum NEORV32_PWM_CTRL_enum { + PWM_CTRL_EN = 0, /**< PWM control register(0) (r/w): PWM controller enable */ + PWM_CTRL_PRSC0 = 1, /**< PWM control register(1) (r/w): Clock prescaler select bit 0 */ + PWM_CTRL_PRSC1 = 2, /**< PWM control register(2) (r/w): Clock prescaler select bit 1 */ + PWM_CTRL_PRSC2 = 3 /**< PWM control register(3) (r/w): Clock prescaler select bit 2 */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Stream link interface (SLINK) + **************************************************************************/ +/**@{*/ +/** SLINK module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_SLINK_CTRL_enum) */ + const uint32_t reserved0; /**< offset 4: reserved */ + uint32_t IRQ; /**< offset 8: interrupt configuration register (#NEORV32_SLINK_IRQ_enum) */ + const uint32_t reserved1; /**< offset 12: reserved */ + const uint32_t STATUS; /**< offset 16: status register (#NEORV32_SLINK_STATUS_enum) */ + const uint32_t reserved2[3]; /**< offset 20..28: reserved */ + uint32_t DATA[8]; /**< offset 32..60: stream link data channel 0..7 */ +} neorv32_slink_t; + +/** SLINK module hardware access (#neorv32_slink_t) */ +#define NEORV32_SLINK (*((volatile neorv32_slink_t*) (0xFFFFFEC0UL))) + +/** SLINK control register bits */ +enum NEORV32_SLINK_CTRL_enum { + SLINK_CTRL_RX_NUM0 = 0, /**< SLINK control register(0) (r/-): number of implemented RX links bit 0 */ + SLINK_CTRL_RX_NUM1 = 1, /**< SLINK control register(1) (r/-): number of implemented RX links bit 1 */ + SLINK_CTRL_RX_NUM2 = 2, /**< SLINK control register(2) (r/-): number of implemented RX links bit 2 */ + SLINK_CTRL_RX_NUM3 = 3, /**< SLINK control register(3) (r/-): number of implemented RX links bit 3 */ + + SLINK_CTRL_TX_NUM0 = 4, /**< SLINK control register(4) (r/-): number of implemented TX links bit 0 */ + SLINK_CTRL_TX_NUM1 = 5, /**< SLINK control register(5) (r/-): number of implemented TX links bit 1 */ + SLINK_CTRL_TX_NUM2 = 6, /**< SLINK control register(6) (r/-): number of implemented TX links bit 2 */ + SLINK_CTRL_TX_NUM3 = 7, /**< SLINK control register(7) (r/-): number of implemented TX links bit 3 */ + + SLINK_CTRL_RX_FIFO_S0 = 8, /**< SLINK control register( 8) (r/-): log2(RX FIFO size) bit 0 */ + SLINK_CTRL_RX_FIFO_S1 = 9, /**< SLINK control register( 9) (r/-): log2(RX FIFO size) bit 1 */ + SLINK_CTRL_RX_FIFO_S2 = 10, /**< SLINK control register(10) (r/-): log2(RX FIFO size) bit 2 */ + SLINK_CTRL_RX_FIFO_S3 = 11, /**< SLINK control register(11) (r/-): log2(RX FIFO size) bit 3 */ + + SLINK_CTRL_TX_FIFO_S0 = 12, /**< SLINK control register(12) (r/-): log2(TX FIFO size) bit 0 */ + SLINK_CTRL_TX_FIFO_S1 = 13, /**< SLINK control register(13) (r/-): log2(TX FIFO size) bit 1 */ + SLINK_CTRL_TX_FIFO_S2 = 14, /**< SLINK control register(14) (r/-): log2(TX FIFO size) bit 2 */ + SLINK_CTRL_TX_FIFO_S3 = 15, /**< SLINK control register(15) (r/-): log2(TX FIFO size) bit 3 */ + + SLINK_CTRL_EN = 31, /**< SLINK control register(0) (r/w): SLINK controller enable */ +}; + +/** SLINK interrupt control register bits */ +enum NEORV32_SLINK_IRQ_enum { + SLINK_IRQ_RX_EN_LSB = 0, /**< SLINK IRQ configuration register( 0) (r/w): RX IRQ enable LSB (link 0) (#NEORV32_SLINK_IRQ_EN_enum) */ + SLINK_IRQ_RX_EN_MSB = 7, /**< SLINK IRQ configuration register( 7) (r/w): RX IRQ enable MSB (link 7) (#NEORV32_SLINK_IRQ_EN_enum) */ + SLINK_IRQ_RX_MODE_LSB = 8, /**< SLINK IRQ configuration register( 8) (r/w): RX IRQ mode LSB (link 0) (#NEORV32_SLINK_IRQ_RX_TYPE_enum) */ + SLINK_IRQ_RX_MODE_MSB = 15, /**< SLINK IRQ configuration register(15) (r/w): RX IRQ mode MSB (link 7) (#NEORV32_SLINK_IRQ_RX_TYPE_enum) */ + + SLINK_IRQ_TX_EN_LSB = 16, /**< SLINK IRQ configuration register(16) (r/w): TX IRQ enable LSB (link 0) (#NEORV32_SLINK_IRQ_EN_enum) */ + SLINK_IRQ_TX_EN_MSB = 23, /**< SLINK IRQ configuration register(23) (r/w): TX IRQ enable MSB (link 7) (#NEORV32_SLINK_IRQ_EN_enum) */ + SLINK_IRQ_TX_MODE_LSB = 24, /**< SLINK IRQ configuration register(24) (r/w): TX IRQ mode LSB (link 0) (#NEORV32_SLINK_IRQ_TX_TYPE_enum) */ + SLINK_IRQ_TX_MODE_MSB = 31 /**< SLINK IRQ configuration register(31) (r/w): TX IRQ mode MSB (link 7) (#NEORV32_SLINK_IRQ_TX_TYPE_enum) */ +}; + +/** SLINK interrupt configuration enable (per link) */ +enum NEORV32_SLINK_IRQ_EN_enum { + SLINK_IRQ_DISABLE = 0, /**< '1': IRQ disabled */ + SLINK_IRQ_ENABLE = 1 /**< '0': IRQ enabled */ +}; + +/** SLINK RX interrupt configuration type (per link) */ +enum NEORV32_SLINK_IRQ_RX_TYPE_enum { + SLINK_IRQ_RX_NOT_EMPTY = 0, /**< '1': RX FIFO is not empty */ + SLINK_IRQ_RX_FIFO_HALF = 1 /**< '0': RX FIFO fill-level rises above half-full */ +}; + +/** SLINK TX interrupt configuration type (per link) */ +enum NEORV32_SLINK_IRQ_TX_TYPE_enum { + SLINK_IRQ_TX_NOT_FULL = 0, /**< '1': TX FIFO is not FULL */ + SLINK_IRQ_TX_FIFO_HALF = 1 /**< '0': TX FIFO fill-level falls below half-full */ +}; + +/** SLINK status register bits */ +enum NEORV32_SLINK_STATUS_enum { + SLINK_STATUS_RX0_AVAIL = 0, /**< SLINK status register(0) (r/-): RX link 0 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX1_AVAIL = 1, /**< SLINK status register(1) (r/-): RX link 1 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX2_AVAIL = 2, /**< SLINK status register(2) (r/-): RX link 2 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX3_AVAIL = 3, /**< SLINK status register(3) (r/-): RX link 3 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX4_AVAIL = 4, /**< SLINK status register(4) (r/-): RX link 4 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX5_AVAIL = 5, /**< SLINK status register(5) (r/-): RX link 5 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX6_AVAIL = 6, /**< SLINK status register(6) (r/-): RX link 6 FIFO is NOT empty (data available) */ + SLINK_STATUS_RX7_AVAIL = 7, /**< SLINK status register(7) (r/-): RX link 7 FIFO is NOT empty (data available) */ + + SLINK_STATUS_TX0_FREE = 8, /**< SLINK status register(8) (r/-): TX link 0 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX1_FREE = 9, /**< SLINK status register(9) (r/-): TX link 1 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX2_FREE = 10, /**< SLINK status register(10) (r/-): TX link 2 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX3_FREE = 11, /**< SLINK status register(11) (r/-): TX link 3 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX4_FREE = 12, /**< SLINK status register(12) (r/-): TX link 4 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX5_FREE = 13, /**< SLINK status register(13) (r/-): TX link 5 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX6_FREE = 14, /**< SLINK status register(14) (r/-): TX link 6 FIFO is NOT full (ready to send) */ + SLINK_STATUS_TX7_FREE = 15, /**< SLINK status register(15) (r/-): TX link 7 FIFO is NOT full (ready to send) */ + + SLINK_STATUS_RX0_HALF = 16, /**< SLINK status register(16) (r/-): RX link 0 FIFO fill level is >= half-full */ + SLINK_STATUS_RX1_HALF = 17, /**< SLINK status register(17) (r/-): RX link 1 FIFO fill level is >= half-full */ + SLINK_STATUS_RX2_HALF = 18, /**< SLINK status register(18) (r/-): RX link 2 FIFO fill level is >= half-full */ + SLINK_STATUS_RX3_HALF = 19, /**< SLINK status register(19) (r/-): RX link 3 FIFO fill level is >= half-full */ + SLINK_STATUS_RX4_HALF = 20, /**< SLINK status register(20) (r/-): RX link 4 FIFO fill level is >= half-full */ + SLINK_STATUS_RX5_HALF = 21, /**< SLINK status register(21) (r/-): RX link 5 FIFO fill level is >= half-full */ + SLINK_STATUS_RX6_HALF = 22, /**< SLINK status register(22) (r/-): RX link 6 FIFO fill level is >= half-full */ + SLINK_STATUS_RX7_HALF = 23, /**< SLINK status register(23) (r/-): RX link 7 FIFO fill level is >= half-full */ + + SLINK_STATUS_TX0_HALF = 24, /**< SLINK status register(24) (r/-): TX link 0 FIFO fill level is > half-full */ + SLINK_STATUS_TX1_HALF = 25, /**< SLINK status register(25) (r/-): TX link 1 FIFO fill level is > half-full */ + SLINK_STATUS_TX2_HALF = 26, /**< SLINK status register(26) (r/-): TX link 2 FIFO fill level is > half-full */ + SLINK_STATUS_TX3_HALF = 27, /**< SLINK status register(27) (r/-): TX link 3 FIFO fill level is > half-full */ + SLINK_STATUS_TX4_HALF = 28, /**< SLINK status register(28) (r/-): TX link 4 FIFO fill level is > half-full */ + SLINK_STATUS_TX5_HALF = 29, /**< SLINK status register(29) (r/-): TX link 5 FIFO fill level is > half-full */ + SLINK_STATUS_TX6_HALF = 30, /**< SLINK status register(30) (r/-): TX link 6 FIFO fill level is > half-full */ + SLINK_STATUS_TX7_HALF = 31 /**< SLINK status register(31) (r/-): TX link 7 FIFO fill level is > half-full */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: General Purpose Timer (GPTMR) + **************************************************************************/ +/**@{*/ +/** GPTMR module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_GPTMR_CTRL_enum) */ + uint32_t THRES; /**< offset 4: threshold register */ + uint32_t COUNT; /**< offset 8: counter register */ + const uint32_t reserved; /**< offset 12: reserved */ +} neorv32_gptmr_t; + +/** GPTMR module hardware access (#neorv32_gptmr_t) */ +#define NEORV32_GPTMR (*((volatile neorv32_gptmr_t*) (0xFFFFFF60UL))) + +/** GPTMR control/data register bits */ +enum NEORV32_GPTMR_CTRL_enum { + GPTMR_CTRL_EN = 0, /**< GPTIMR control register(0) (r/w): Timer unit enable */ + GPTMR_CTRL_PRSC0 = 1, /**< GPTIMR control register(1) (r/w): Clock prescaler select bit 0 */ + GPTMR_CTRL_PRSC1 = 2, /**< GPTIMR control register(2) (r/w): Clock prescaler select bit 1 */ + GPTMR_CTRL_PRSC2 = 3, /**< GPTIMR control register(3) (r/w): Clock prescaler select bit 2 */ + GPTMR_CTRL_MODE = 4 /**< GPTIMR control register(4) (r/w): Timer mode: 0=single-shot mode, 1=continuous mode */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Bus Monitor (BUSKEEPER) + **************************************************************************/ +/**@{*/ +/** BUSKEEPER module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_BUSKEEPER_CTRL_enum) */ +} neorv32_buskeeper_t; + +/** BUSKEEPER module hardware access (#neorv32_buskeeper_t) */ +#define NEORV32_BUSKEEPER (*((volatile neorv32_buskeeper_t*) (0xFFFFFF7CUL))) + +/** BUSKEEPER control/data register bits */ +enum NEORV32_BUSKEEPER_CTRL_enum { + BUSKEEPER_ERR_TYPE = 0, /**< BUSKEEPER control register(0) (r/-): Bus error type: 0=device error, 1=access timeout */ + BUSKEEPER_ERR_FLAG = 31 /**< BUSKEEPER control register(31) (r/c): Sticky error flag, clears after read or write access */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: External Interrupt Controller (XIRQ) + **************************************************************************/ +/**@{*/ +/** XIRQ module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t IER; /**< offset 0: IRQ input enable register */ + uint32_t IPR; /**< offset 4: pending IRQ register /ack/clear */ + uint32_t SCR; /**< offset 8: interrupt source register */ + const uint32_t reserved; /**< offset 12: reserved */ +} neorv32_xirq_t; + +/** XIRQ module hardware access (#neorv32_xirq_t) */ +#define NEORV32_XIRQ (*((volatile neorv32_xirq_t*) (0xFFFFFF80UL))) +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Machine System Timer (MTIME) + **************************************************************************/ +/**@{*/ +/** MTIME module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t TIME_LO; /**< offset 0: time register low word */ + uint32_t TIME_HI; /**< offset 4: time register high word */ + uint32_t TIMECMP_LO; /**< offset 8: compare register low word */ + uint32_t TIMECMP_HI; /**< offset 12: compare register high word */ +} neorv32_mtime_t; + +/** MTIME module hardware access (#neorv32_mtime_t) */ +#define NEORV32_MTIME (*((volatile neorv32_mtime_t*) (0xFFFFFF90UL))) +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Primary/Secondary Universal Asynchronous Receiver and Transmitter (UART0 / UART1) + **************************************************************************/ +/**@{*/ +/** UART0 module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_UART_CTRL_enum) */ + uint32_t DATA; /**< offset 4: data register (#NEORV32_UART_DATA_enum) */ +} neorv32_uart0_t; + +/** UART0 module hardware access (#neorv32_uart0_t) */ +#define NEORV32_UART0 (*((volatile neorv32_uart0_t*) (0xFFFFFFA0UL))) + +/** UART1 module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_UART_CTRL_enum) */ + uint32_t DATA; /**< offset 4: data register (#NEORV32_UART_DATA_enum) */ +} neorv32_uart1_t; + +/** UART1 module hardware access (#neorv32_uart1_t) */ +#define NEORV32_UART1 (*((volatile neorv32_uart1_t*) (0xFFFFFFD0UL))) + +/** UART0/UART1 control register bits */ +enum NEORV32_UART_CTRL_enum { + UART_CTRL_BAUD00 = 0, /**< UART control register(0) (r/w): BAUD rate config value lsb (12-bit, bit 0) */ + UART_CTRL_BAUD01 = 1, /**< UART control register(1) (r/w): BAUD rate config value (12-bit, bit 1) */ + UART_CTRL_BAUD02 = 2, /**< UART control register(2) (r/w): BAUD rate config value (12-bit, bit 2) */ + UART_CTRL_BAUD03 = 3, /**< UART control register(3) (r/w): BAUD rate config value (12-bit, bit 3) */ + UART_CTRL_BAUD04 = 4, /**< UART control register(4) (r/w): BAUD rate config value (12-bit, bit 4) */ + UART_CTRL_BAUD05 = 5, /**< UART control register(5) (r/w): BAUD rate config value (12-bit, bit 4) */ + UART_CTRL_BAUD06 = 6, /**< UART control register(6) (r/w): BAUD rate config value (12-bit, bit 5) */ + UART_CTRL_BAUD07 = 7, /**< UART control register(7) (r/w): BAUD rate config value (12-bit, bit 6) */ + UART_CTRL_BAUD08 = 8, /**< UART control register(8) (r/w): BAUD rate config value (12-bit, bit 7) */ + UART_CTRL_BAUD09 = 9, /**< UART control register(9) (r/w): BAUD rate config value (12-bit, bit 8) */ + UART_CTRL_BAUD10 = 10, /**< UART control register(10) (r/w): BAUD rate config value (12-bit, bit 9) */ + UART_CTRL_BAUD11 = 11, /**< UART control register(11) (r/w): BAUD rate config value msb (12-bit, bit 0) */ + UART_CTRL_SIM_MODE = 12, /**< UART control register(12) (r/w): Simulation output override enable, for use in simulation only */ + UART_CTRL_RX_EMPTY = 13, /**< UART control register(13) (r/-): RX FIFO is empty */ + UART_CTRL_RX_HALF = 14, /**< UART control register(14) (r/-): RX FIFO is at least half-full */ + UART_CTRL_RX_FULL = 15, /**< UART control register(15) (r/-): RX FIFO is full */ + UART_CTRL_TX_EMPTY = 16, /**< UART control register(16) (r/-): TX FIFO is empty */ + UART_CTRL_TX_HALF = 17, /**< UART control register(17) (r/-): TX FIFO is at least half-full */ + UART_CTRL_TX_FULL = 18, /**< UART control register(18) (r/-): TX FIFO is full */ + + UART_CTRL_RTS_EN = 20, /**< UART control register(20) (r/w): Enable hardware flow control: Assert RTS output if UART.RX is ready to receive */ + UART_CTRL_CTS_EN = 21, /**< UART control register(21) (r/w): Enable hardware flow control: UART.TX starts sending only if CTS input is asserted */ + UART_CTRL_PMODE0 = 22, /**< UART control register(22) (r/w): Parity configuration (0=even; 1=odd) */ + UART_CTRL_PMODE1 = 23, /**< UART control register(23) (r/w): Parity bit enabled when set */ + UART_CTRL_PRSC0 = 24, /**< UART control register(24) (r/w): BAUD rate clock prescaler select bit 0 */ + UART_CTRL_PRSC1 = 25, /**< UART control register(25) (r/w): BAUD rate clock prescaler select bit 1 */ + UART_CTRL_PRSC2 = 26, /**< UART control register(26) (r/w): BAUD rate clock prescaler select bit 2 */ + UART_CTRL_CTS = 27, /**< UART control register(27) (r/-): current state of CTS input */ + UART_CTRL_EN = 28, /**< UART control register(28) (r/w): UART global enable */ + UART_CTRL_RX_IRQ = 29, /**< UART control register(29) (r/w): RX IRQ mode: 1=FIFO at least half-full; 0=FIFO not empty */ + UART_CTRL_TX_IRQ = 30, /**< UART control register(30) (r/w): TX IRQ mode: 1=FIFO less than half-full; 0=FIFO not full */ + UART_CTRL_TX_BUSY = 31 /**< UART control register(31) (r/-): Transmitter is busy when set */ +}; + +/** UART0/UART1 parity configuration */ +enum NEORV32_UART_PARITY_enum { + PARITY_NONE = 0b00, /**< 0b00: No parity bit at all */ + PARITY_EVEN = 0b10, /**< 0b10: Even parity */ + PARITY_ODD = 0b11 /**< 0b11: Odd parity */ +}; + +/** UART0/UART1 hardware flow control configuration */ +enum NEORV32_UART_FLOW_CONTROL_enum { + FLOW_CONTROL_NONE = 0b00, /**< 0b00: No hardware flow control */ + FLOW_CONTROL_RTS = 0b01, /**< 0b01: Assert RTS output if UART.RX is ready to receive */ + FLOW_CONTROL_CTS = 0b10, /**< 0b10: UART.TX starts sending only if CTS input is asserted */ + FLOW_CONTROL_RTSCTS = 0b11 /**< 0b11: Assert RTS output if UART.RX is ready to receive & UART.TX starts sending only if CTS input is asserted */ +}; + +/** UART0/UART1 receive/transmit data register bits */ +enum NEORV32_UART_DATA_enum { + UART_DATA_LSB = 0, /**< UART receive/transmit data register(0) (r/w): Receive/transmit data LSB (bit 0) */ + UART_DATA_MSB = 7, /**< UART receive/transmit data register(7) (r/w): Receive/transmit data MSB (bit 7) */ + + UART_DATA_PERR = 28, /**< UART receive/transmit data register(18) (r/-): RX parity error detected when set */ + UART_DATA_FERR = 29, /**< UART receive/transmit data register(29) (r/-): RX frame error (no valid stop bit) detected when set */ + UART_DATA_OVERR = 30, /**< UART receive/transmit data register(30) (r/-): RX data overrun when set */ + UART_DATA_AVAIL = 31 /**< UART receive/transmit data register(31) (r/-): RX data available when set */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Serial Peripheral Interface Controller (SPI) + **************************************************************************/ +/**@{*/ +/** SPI module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_SPI_CTRL_enum) */ + uint32_t DATA; /**< offset 4: data register */ +} neorv32_spi_t; + +/** SPI module hardware access (#neorv32_spi_t) */ +#define NEORV32_SPI (*((volatile neorv32_spi_t*) (0xFFFFFFA8UL))) + +/** SPI control register bits */ +enum NEORV32_SPI_CTRL_enum { + SPI_CTRL_CS0 = 0, /**< SPI control register(0) (r/w): Direct chip select line 0 (output is low when set) */ + SPI_CTRL_CS1 = 1, /**< SPI control register(1) (r/w): Direct chip select line 1 (output is low when set) */ + SPI_CTRL_CS2 = 2, /**< SPI control register(2) (r/w): Direct chip select line 2 (output is low when set) */ + SPI_CTRL_CS3 = 3, /**< SPI control register(3) (r/w): Direct chip select line 3 (output is low when set) */ + SPI_CTRL_CS4 = 4, /**< SPI control register(4) (r/w): Direct chip select line 4 (output is low when set) */ + SPI_CTRL_CS5 = 5, /**< SPI control register(5) (r/w): Direct chip select line 5 (output is low when set) */ + SPI_CTRL_CS6 = 6, /**< SPI control register(6) (r/w): Direct chip select line 6 (output is low when set) */ + SPI_CTRL_CS7 = 7, /**< SPI control register(7) (r/w): Direct chip select line 7 (output is low when set) */ + SPI_CTRL_EN = 8, /**< SPI control register(8) (r/w): SPI unit enable */ + SPI_CTRL_CPHA = 9, /**< SPI control register(9) (r/w): Clock phase */ + SPI_CTRL_PRSC0 = 10, /**< SPI control register(10) (r/w): Clock prescaler select bit 0 */ + SPI_CTRL_PRSC1 = 11, /**< SPI control register(11) (r/w): Clock prescaler select bit 1 */ + SPI_CTRL_PRSC2 = 12, /**< SPI control register(12) (r/w): Clock prescaler select bit 2 */ + SPI_CTRL_SIZE0 = 13, /**< SPI control register(13) (r/w): Transfer data size lsb (00: 8-bit, 01: 16-bit, 10: 24-bit, 11: 32-bit) */ + SPI_CTRL_SIZE1 = 14, /**< SPI control register(14) (r/w): Transfer data size msb (00: 8-bit, 01: 16-bit, 10: 24-bit, 11: 32-bit) */ + SPI_CTRL_CPOL = 15, /**< SPI control register(15) (r/w): Clock polarity */ + + SPI_CTRL_BUSY = 31 /**< SPI control register(31) (r/-): SPI busy flag */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Two-Wire Interface Controller (TWI) + **************************************************************************/ +/**@{*/ +/** TWI module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_TWI_CTRL_enum) */ + uint32_t DATA; /**< offset 4: data register (#NEORV32_TWI_DATA_enum) */ +} neorv32_twi_t; + +/** TWI module hardware access (#neorv32_twi_t) */ +#define NEORV32_TWI (*((volatile neorv32_twi_t*) (0xFFFFFFB0UL))) + +/** TWI control register bits */ +enum NEORV32_TWI_CTRL_enum { + TWI_CTRL_EN = 0, /**< TWI control register(0) (r/w): TWI enable */ + TWI_CTRL_START = 1, /**< TWI control register(1) (-/w): Generate START condition, auto-clears */ + TWI_CTRL_STOP = 2, /**< TWI control register(2) (-/w): Generate STOP condition, auto-clears */ + TWI_CTRL_PRSC0 = 3, /**< TWI control register(3) (r/w): Clock prescaler select bit 0 */ + TWI_CTRL_PRSC1 = 4, /**< TWI control register(4) (r/w): Clock prescaler select bit 1 */ + TWI_CTRL_PRSC2 = 5, /**< TWI control register(5) (r/w): Clock prescaler select bit 2 */ + TWI_CTRL_MACK = 6, /**< TWI control register(6) (r/w): Generate ACK by controller for each transmission */ + + TWI_CTRL_ACK = 30, /**< TWI control register(30) (r/-): ACK received when set */ + TWI_CTRL_BUSY = 31 /**< TWI control register(31) (r/-): Transfer in progress, busy flag */ +}; + +/** WTD receive/transmit data register bits */ +enum NEORV32_TWI_DATA_enum { + TWI_DATA_LSB = 0, /**< TWI data register(0) (r/w): Receive/transmit data (8-bit) LSB */ + TWI_DATA_MSB = 7 /**< TWI data register(7) (r/w): Receive/transmit data (8-bit) MSB */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: True Random Number Generator (TRNG) + **************************************************************************/ +/**@{*/ +/** TRNG module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_TRNG_CTRL_enum) */ +} neorv32_trng_t; + +/** TRNG module hardware access (#neorv32_trng_t) */ +#define NEORV32_TRNG (*((volatile neorv32_trng_t*) (0xFFFFFFB8UL))) + +/** TRNG control/data register bits */ +enum NEORV32_TRNG_CTRL_enum { + TRNG_CTRL_DATA_LSB = 0, /**< TRNG data/control register(0) (r/-): Random data byte LSB */ + TRNG_CTRL_DATA_MSB = 7, /**< TRNG data/control register(7) (r/-): Random data byte MSB */ + + TRNG_CTRL_EN = 30, /**< TRNG data/control register(30) (r/w): TRNG enable */ + TRNG_CTRL_VALID = 31 /**< TRNG data/control register(31) (r/-): Random data output valid */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Watchdog Timer (WDT) + **************************************************************************/ +/**@{*/ +/** WDT module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register (#NEORV32_WDT_CTRL_enum) */ +} neorv32_wdt_t; + +/** WDT module hardware access (#neorv32_wdt_t) */ +#define NEORV32_WDT (*((volatile neorv32_wdt_t*) (0xFFFFFFBCUL))) + +/** WTD control register bits */ +enum NEORV32_WDT_CTRL_enum { + WDT_CTRL_EN = 0, /**< WDT control register(0) (r/w): Watchdog enable */ + WDT_CTRL_CLK_SEL0 = 1, /**< WDT control register(1) (r/w): Clock prescaler select bit 0 */ + WDT_CTRL_CLK_SEL1 = 2, /**< WDT control register(2) (r/w): Clock prescaler select bit 1 */ + WDT_CTRL_CLK_SEL2 = 3, /**< WDT control register(3) (r/w): Clock prescaler select bit 2 */ + WDT_CTRL_MODE = 4, /**< WDT control register(4) (r/w): Watchdog mode: 0=timeout causes interrupt, 1=timeout causes processor reset */ + WDT_CTRL_RCAUSE = 5, /**< WDT control register(5) (r/-): Cause of last system reset: 0=external reset, 1=watchdog */ + WDT_CTRL_RESET = 6, /**< WDT control register(6) (-/w): Reset WDT counter when set, auto-clears */ + WDT_CTRL_FORCE = 7, /**< WDT control register(7) (-/w): Force WDT action, auto-clears */ + WDT_CTRL_LOCK = 8, /**< WDT control register(8) (r/w): Lock write access to control register, clears on reset (HW or WDT) only */ + WDT_CTRL_DBEN = 9, /**< WDT control register(9) (r/w): Allow WDT to continue operation even when in debug mode */ + WDT_CTRL_HALF = 10 /**< WDT control register(10) (r/-): Set if at least half of the max. timeout counter value has been reached */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: General Purpose Input/Output Port Unit (GPIO) + **************************************************************************/ +/**@{*/ +/** GPIO module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + const uint32_t INPUT_LO; /**< offset 0: parallel input port lower 32-bit */ + const uint32_t INPUT_HI; /**< offset 4: parallel input port upper 32-bit */ + uint32_t OUTPUT_LO; /**< offset 8: parallel output port lower 32-bit */ + uint32_t OUTPUT_HI; /**< offset 12: parallel output port upper 32-bit */ +} neorv32_gpio_t; + +/** GPIO module hardware access (#neorv32_gpio_t) */ +#define NEORV32_GPIO (*((volatile neorv32_gpio_t*) (0xFFFFFFC0UL))) +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: Smart LED Hardware Interface (NEOLED) + **************************************************************************/ +/**@{*/ +/** NEOLED module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + uint32_t CTRL; /**< offset 0: control register */ + uint32_t DATA; /**< offset 4: data register (#NEORV32_NEOLED_CTRL_enum) */ +} neorv32_neoled_t; + +/** NEOLED module hardware access (#neorv32_neoled_t) */ +#define NEORV32_NEOLED (*((volatile neorv32_neoled_t*) (0xFFFFFFD8UL))) + +/** NEOLED control register bits */ +enum NEORV32_NEOLED_CTRL_enum { + NEOLED_CTRL_EN = 0, /**< NEOLED control register(0) (r/w): NEOLED global enable */ + NEOLED_CTRL_MODE = 1, /**< NEOLED control register(1) (r/w): TX mode (0=24-bit, 1=32-bit) */ + NEOLED_CTRL_STROBE = 2, /**< NEOLED control register(2) (r/w): Strobe (0=send normal data, 1=send RESET command on data write) */ + NEOLED_CTRL_PRSC0 = 3, /**< NEOLED control register(3) (r/w): Clock prescaler select bit 0 (pulse-clock speed select) */ + NEOLED_CTRL_PRSC1 = 4, /**< NEOLED control register(4) (r/w): Clock prescaler select bit 1 (pulse-clock speed select) */ + NEOLED_CTRL_PRSC2 = 5, /**< NEOLED control register(5) (r/w): Clock prescaler select bit 2 (pulse-clock speed select) */ + // + NEOLED_CTRL_BUFS_0 = 6, /**< NEOLED control register(6) (r/-): log2(tx buffer size) bit 0 */ + NEOLED_CTRL_BUFS_1 = 7, /**< NEOLED control register(7) (r/-): log2(tx buffer size) bit 1 */ + NEOLED_CTRL_BUFS_2 = 8, /**< NEOLED control register(8) (r/-): log2(tx buffer size) bit 2 */ + NEOLED_CTRL_BUFS_3 = 9, /**< NEOLED control register(9) (r/-): log2(tx buffer size) bit 3 */ + // + NEOLED_CTRL_T_TOT_0 = 10, /**< NEOLED control register(10) (r/w): pulse-clock ticks per total period bit 0 */ + NEOLED_CTRL_T_TOT_1 = 11, /**< NEOLED control register(11) (r/w): pulse-clock ticks per total period bit 1 */ + NEOLED_CTRL_T_TOT_2 = 12, /**< NEOLED control register(12) (r/w): pulse-clock ticks per total period bit 2 */ + NEOLED_CTRL_T_TOT_3 = 13, /**< NEOLED control register(13) (r/w): pulse-clock ticks per total period bit 3 */ + NEOLED_CTRL_T_TOT_4 = 14, /**< NEOLED control register(14) (r/w): pulse-clock ticks per total period bit 4 */ + // + NEOLED_CTRL_T_ZERO_H_0 = 15, /**< NEOLED control register(15) (r/w): pulse-clock ticks per ZERO high-time bit 0 */ + NEOLED_CTRL_T_ZERO_H_1 = 16, /**< NEOLED control register(16) (r/w): pulse-clock ticks per ZERO high-time bit 1 */ + NEOLED_CTRL_T_ZERO_H_2 = 17, /**< NEOLED control register(17) (r/w): pulse-clock ticks per ZERO high-time bit 2 */ + NEOLED_CTRL_T_ZERO_H_3 = 18, /**< NEOLED control register(18) (r/w): pulse-clock ticks per ZERO high-time bit 3 */ + NEOLED_CTRL_T_ZERO_H_4 = 19, /**< NEOLED control register(19) (r/w): pulse-clock ticks per ZERO high-time bit 4 */ + // + NEOLED_CTRL_T_ONE_H_0 = 20, /**< NEOLED control register(20) (r/w): pulse-clock ticks per ONE high-time bit 0 */ + NEOLED_CTRL_T_ONE_H_1 = 21, /**< NEOLED control register(21) (r/w): pulse-clock ticks per ONE high-time bit 1 */ + NEOLED_CTRL_T_ONE_H_2 = 22, /**< NEOLED control register(22) (r/w): pulse-clock ticks per ONE high-time bit 2 */ + NEOLED_CTRL_T_ONE_H_3 = 23, /**< NEOLED control register(23) (r/w): pulse-clock ticks per ONE high-time bit 3 */ + NEOLED_CTRL_T_ONE_H_4 = 24, /**< NEOLED control register(24) (r/w): pulse-clock ticks per ONE high-time bit 4 */ + // + NEOLED_CTRL_IRQ_CONF = 27, /**< NEOLED control register(27) (r/w): TX FIFO interrupt: 0=IRQ if FIFO is less than half-full, 1=IRQ if FIFO is empty */ + NEOLED_CTRL_TX_EMPTY = 28, /**< NEOLED control register(28) (r/-): TX FIFO is empty */ + NEOLED_CTRL_TX_HALF = 29, /**< NEOLED control register(29) (r/-): TX FIFO is at least half-full */ + NEOLED_CTRL_TX_FULL = 30, /**< NEOLED control register(30) (r/-): TX FIFO is full */ + NEOLED_CTRL_TX_BUSY = 31 /**< NEOLED control register(31) (r/-): busy flag */ +}; +/**@}*/ + + +/**********************************************************************//** + * @name IO Device: System Configuration Information Memory (SYSINFO) + **************************************************************************/ +/**@{*/ +/** SYSINFO module prototype */ +typedef struct __attribute__((packed,aligned(4))) { + const uint32_t CLK; /**< offset 0: clock speed in Hz */ + const uint32_t CPU; /**< offset 4: CPU core features (#NEORV32_SYSINFO_CPU_enum) */ + const uint32_t SOC; /**< offset 8: SoC features (#NEORV32_SYSINFO_SOC_enum) */ + const uint32_t CACHE; /**< offset 12: cache configuration (#NEORV32_SYSINFO_CACHE_enum) */ + const uint32_t ISPACE_BASE; /**< offset 16: instruction memory address space base */ + const uint32_t DSPACE_BASE; /**< offset 20: data memory address space base */ + const uint32_t IMEM_SIZE; /**< offset 24: internal instruction memory (IMEM) size in bytes */ + const uint32_t DMEM_SIZE; /**< offset 28: internal data memory (DMEM) size in bytes */ +} neorv32_sysinfo_t; + +/** SYSINFO module hardware access (#neorv32_sysinfo_t) */ +#define NEORV32_SYSINFO (*((volatile neorv32_sysinfo_t*) (0xFFFFFFE0UL))) + +/** NEORV32_SYSINFO.CPU (r/-): Implemented CPU sub-extensions/features */ +enum NEORV32_SYSINFO_CPU_enum { + SYSINFO_CPU_ZICSR = 0, /**< SYSINFO_CPU (0): Zicsr extension (I sub-extension) available when set (r/-) */ + SYSINFO_CPU_ZIFENCEI = 1, /**< SYSINFO_CPU (1): Zifencei extension (I sub-extension) available when set (r/-) */ + SYSINFO_CPU_ZMMUL = 2, /**< SYSINFO_CPU (2): Zmmul extension (M sub-extension) available when set (r/-) */ + + SYSINFO_CPU_ZFINX = 5, /**< SYSINFO_CPU (5): Zfinx extension (F sub-/alternative-extension) available when set (r/-) */ + SYSINFO_CPU_ZXSCNT = 6, /**< SYSINFO_CPU (6): Custom extension - Small CPU counters: "cycle" & "instret" CSRs have less than 64-bit when set (r/-) */ + SYSINFO_CPU_ZICNTR = 7, /**< SYSINFO_CPU (7): Basic CPU counters available when set (r/-) */ + SYSINFO_CPU_PMP = 8, /**< SYSINFO_CPU (8): PMP (physical memory protection) extension available when set (r/-) */ + SYSINFO_CPU_ZIHPM = 9, /**< SYSINFO_CPU (9): HPM (hardware performance monitors) extension available when set (r/-) */ + SYSINFO_CPU_DEBUGMODE = 10, /**< SYSINFO_CPU (10): RISC-V CPU debug mode available when set (r/-) */ + + SYSINFO_CPU_FASTMUL = 30, /**< SYSINFO_CPU (30): fast multiplications (via FAST_MUL_EN generic) available when set (r/-) */ + SYSINFO_CPU_FASTSHIFT = 31 /**< SYSINFO_CPU (31): fast shifts (via FAST_SHIFT_EN generic) available when set (r/-) */ +}; + +/** NEORV32_SYSINFO.SOC (r/-): Implemented processor devices/features */ +enum NEORV32_SYSINFO_SOC_enum { + SYSINFO_SOC_BOOTLOADER = 0, /**< SYSINFO_FEATURES (0) (r/-): Bootloader implemented when 1 (via INT_BOOTLOADER_EN generic) */ + SYSINFO_SOC_MEM_EXT = 1, /**< SYSINFO_FEATURES (1) (r/-): External bus interface implemented when 1 (via MEM_EXT_EN generic) */ + SYSINFO_SOC_MEM_INT_IMEM = 2, /**< SYSINFO_FEATURES (2) (r/-): Processor-internal instruction memory implemented when 1 (via MEM_INT_IMEM_EN generic) */ + SYSINFO_SOC_MEM_INT_DMEM = 3, /**< SYSINFO_FEATURES (3) (r/-): Processor-internal data memory implemented when 1 (via MEM_INT_DMEM_EN generic) */ + SYSINFO_SOC_MEM_EXT_ENDIAN = 4, /**< SYSINFO_FEATURES (4) (r/-): External bus interface uses BIG-endian byte-order when 1 (via MEM_EXT_BIG_ENDIAN generic) */ + SYSINFO_SOC_ICACHE = 5, /**< SYSINFO_FEATURES (5) (r/-): Processor-internal instruction cache implemented when 1 (via ICACHE_EN generic) */ + + SYSINFO_SOC_IS_SIM = 13, /**< SYSINFO_FEATURES (13) (r/-): Set during simulation (not guaranteed) */ + SYSINFO_SOC_OCD = 14, /**< SYSINFO_FEATURES (14) (r/-): On-chip debugger implemented when 1 (via ON_CHIP_DEBUGGER_EN generic) */ + SYSINFO_SOC_HW_RESET = 15, /**< SYSINFO_FEATURES (15) (r/-): Dedicated hardware reset of core registers implemented when 1 (via package's dedicated_reset_c constant) */ + + SYSINFO_SOC_IO_GPIO = 16, /**< SYSINFO_FEATURES (16) (r/-): General purpose input/output port unit implemented when 1 (via IO_GPIO_EN generic) */ + SYSINFO_SOC_IO_MTIME = 17, /**< SYSINFO_FEATURES (17) (r/-): Machine system timer implemented when 1 (via IO_MTIME_EN generic) */ + SYSINFO_SOC_IO_UART0 = 18, /**< SYSINFO_FEATURES (18) (r/-): Primary universal asynchronous receiver/transmitter 0 implemented when 1 (via IO_UART0_EN generic) */ + SYSINFO_SOC_IO_SPI = 19, /**< SYSINFO_FEATURES (19) (r/-): Serial peripheral interface implemented when 1 (via IO_SPI_EN generic) */ + SYSINFO_SOC_IO_TWI = 20, /**< SYSINFO_FEATURES (20) (r/-): Two-wire interface implemented when 1 (via IO_TWI_EN generic) */ + SYSINFO_SOC_IO_PWM = 21, /**< SYSINFO_FEATURES (21) (r/-): Pulse-width modulation unit implemented when 1 (via IO_PWM_EN generic) */ + SYSINFO_SOC_IO_WDT = 22, /**< SYSINFO_FEATURES (22) (r/-): Watchdog timer implemented when 1 (via IO_WDT_EN generic) */ + SYSINFO_SOC_IO_CFS = 23, /**< SYSINFO_FEATURES (23) (r/-): Custom functions subsystem implemented when 1 (via IO_CFS_EN generic) */ + SYSINFO_SOC_IO_TRNG = 24, /**< SYSINFO_FEATURES (24) (r/-): True random number generator implemented when 1 (via IO_TRNG_EN generic) */ + SYSINFO_SOC_IO_SLINK = 25, /**< SYSINFO_FEATURES (25) (r/-): Stream link interface implemented when 1 (via SLINK_NUM_RX & SLINK_NUM_TX generics) */ + SYSINFO_SOC_IO_UART1 = 26, /**< SYSINFO_FEATURES (26) (r/-): Secondary universal asynchronous receiver/transmitter 1 implemented when 1 (via IO_UART1_EN generic) */ + SYSINFO_SOC_IO_NEOLED = 27, /**< SYSINFO_FEATURES (27) (r/-): NeoPixel-compatible smart LED interface implemented when 1 (via IO_NEOLED_EN generic) */ + SYSINFO_SOC_IO_XIRQ = 28, /**< SYSINFO_FEATURES (28) (r/-): External interrupt controller implemented when 1 (via XIRQ_NUM_IO generic) */ + SYSINFO_SOC_IO_GPTMR = 29 /**< SYSINFO_FEATURES (29) (r/-): General purpose timer implemented when 1 (via IO_GPTMR_EN generic) */ +}; + +/** NEORV32_SYSINFO.CACHE (r/-): Cache configuration */ + enum NEORV32_SYSINFO_CACHE_enum { + SYSINFO_CACHE_IC_BLOCK_SIZE_0 = 0, /**< SYSINFO_CACHE (0) (r/-): i-cache: log2(Block size in bytes), bit 0 (via ICACHE_BLOCK_SIZE generic) */ + SYSINFO_CACHE_IC_BLOCK_SIZE_1 = 1, /**< SYSINFO_CACHE (1) (r/-): i-cache: log2(Block size in bytes), bit 1 (via ICACHE_BLOCK_SIZE generic) */ + SYSINFO_CACHE_IC_BLOCK_SIZE_2 = 2, /**< SYSINFO_CACHE (2) (r/-): i-cache: log2(Block size in bytes), bit 2 (via ICACHE_BLOCK_SIZE generic) */ + SYSINFO_CACHE_IC_BLOCK_SIZE_3 = 3, /**< SYSINFO_CACHE (3) (r/-): i-cache: log2(Block size in bytes), bit 3 (via ICACHE_BLOCK_SIZE generic) */ + + SYSINFO_CACHE_IC_NUM_BLOCKS_0 = 4, /**< SYSINFO_CACHE (4) (r/-): i-cache: log2(Number of cache blocks/pages/lines), bit 0 (via ICACHE_NUM_BLOCKS generic) */ + SYSINFO_CACHE_IC_NUM_BLOCKS_1 = 5, /**< SYSINFO_CACHE (5) (r/-): i-cache: log2(Number of cache blocks/pages/lines), bit 1 (via ICACHE_NUM_BLOCKS generic) */ + SYSINFO_CACHE_IC_NUM_BLOCKS_2 = 6, /**< SYSINFO_CACHE (6) (r/-): i-cache: log2(Number of cache blocks/pages/lines), bit 2 (via ICACHE_NUM_BLOCKS generic) */ + SYSINFO_CACHE_IC_NUM_BLOCKS_3 = 7, /**< SYSINFO_CACHE (7) (r/-): i-cache: log2(Number of cache blocks/pages/lines), bit 3 (via ICACHE_NUM_BLOCKS generic) */ + + SYSINFO_CACHE_IC_ASSOCIATIVITY_0 = 8, /**< SYSINFO_CACHE (8) (r/-): i-cache: log2(associativity), bit 0 (via ICACHE_ASSOCIATIVITY generic) */ + SYSINFO_CACHE_IC_ASSOCIATIVITY_1 = 9, /**< SYSINFO_CACHE (9) (r/-): i-cache: log2(associativity), bit 1 (via ICACHE_ASSOCIATIVITY generic) */ + SYSINFO_CACHE_IC_ASSOCIATIVITY_2 = 10, /**< SYSINFO_CACHE (10) (r/-): i-cache: log2(associativity), bit 2 (via ICACHE_ASSOCIATIVITY generic) */ + SYSINFO_CACHE_IC_ASSOCIATIVITY_3 = 11, /**< SYSINFO_CACHE (11) (r/-): i-cache: log2(associativity), bit 3 (via ICACHE_ASSOCIATIVITY generic) */ + + SYSINFO_CACHE_IC_REPLACEMENT_0 = 12, /**< SYSINFO_CACHE (12) (r/-): i-cache: replacement policy (0001 = LRU if associativity > 0) bit 0 */ + SYSINFO_CACHE_IC_REPLACEMENT_1 = 13, /**< SYSINFO_CACHE (13) (r/-): i-cache: replacement policy (0001 = LRU if associativity > 0) bit 1 */ + SYSINFO_CACHE_IC_REPLACEMENT_2 = 14, /**< SYSINFO_CACHE (14) (r/-): i-cache: replacement policy (0001 = LRU if associativity > 0) bit 2 */ + SYSINFO_CACHE_IC_REPLACEMENT_3 = 15, /**< SYSINFO_CACHE (15) (r/-): i-cache: replacement policy (0001 = LRU if associativity > 0) bit 3 */ +}; +/**@}*/ + + +// ---------------------------------------------------------------------------- +// Include all IO driver headers +// ---------------------------------------------------------------------------- +// cpu core +#include "neorv32_cpu.h" + +// intrinsics +#include "neorv32_intrinsics.h" + +// neorv32 runtime environment +#include "neorv32_rte.h" + +// io/peripheral devices +#include "neorv32_cfs.h" +#include "neorv32_gpio.h" +#include "neorv32_gptmr.h" +#include "neorv32_mtime.h" +#include "neorv32_neoled.h" +#include "neorv32_pwm.h" +#include "neorv32_slink.h" +#include "neorv32_spi.h" +#include "neorv32_trng.h" +#include "neorv32_twi.h" +#include "neorv32_uart.h" +#include "neorv32_wdt.h" +#include "neorv32_xirq.h" + +#ifdef __cplusplus +} +#endif + +#endif // neorv32_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_cfs.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_cfs.h new file mode 100644 index 0000000..55fdc59 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_cfs.h @@ -0,0 +1,53 @@ +// ################################################################################################# +// # << NEORV32: neorv32_cfs.h - Custom Functions Subsystem (CFS)) HW Driver (stub) >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_cfs.h + * @author Stephan Nolting + * @brief Custom Functions Subsystem (CFS)) HW driver header file. + * + * @warning There are no "real" CFS driver functions available here, because these functions are defined by the actual hardware. + * @warning Hence, the CFS designer has to provide the actual driver functions. + * + * @note These functions should only be used if the CFS was synthesized (IO_CFS_EN = true). + **************************************************************************/ + +#ifndef neorv32_cfs_h +#define neorv32_cfs_h + +// prototypes +int neorv32_cfs_available(void); + +#endif // neorv32_cfs_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_cpu.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_cpu.h new file mode 100644 index 0000000..10fc180 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_cpu.h @@ -0,0 +1,306 @@ +// ################################################################################################# +// # << NEORV32: neorv32_cpu.h - CPU Core Functions HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_cpu.h + * @author Stephan Nolting + * @brief CPU Core Functions HW driver header file. + **************************************************************************/ + +#ifndef neorv32_cpu_h +#define neorv32_cpu_h + +// prototypes +int neorv32_cpu_irq_enable(uint8_t irq_sel); +int neorv32_cpu_irq_disable(uint8_t irq_sel); +uint64_t neorv32_cpu_get_cycle(void); +void neorv32_cpu_set_mcycle(uint64_t value); +uint64_t neorv32_cpu_get_instret(void); +void neorv32_cpu_set_minstret(uint64_t value); +uint64_t neorv32_cpu_get_systime(void); +void neorv32_cpu_delay_ms(uint32_t time_ms); +void __attribute__((naked)) neorv32_cpu_goto_user_mode(void); +uint32_t neorv32_cpu_pmp_get_num_regions(void); +uint32_t neorv32_cpu_pmp_get_granularity(void); +int neorv32_cpu_pmp_configure_region(uint32_t index, uint32_t base, uint32_t size, uint8_t config); +uint32_t neorv32_cpu_hpm_get_counters(void); +uint32_t neorv32_cpu_hpm_get_size(void); + + +/**********************************************************************//** + * Prototype for "after-main handler". This function is called if main() returns. + * + * @param[in] return_code Return value of main() function. + * @return Return value is irrelevant (there is no one left to check for it...). + **************************************************************************/ +extern int __neorv32_crt0_after_main(int32_t return_code) __attribute__ ((weak)); + + +/**********************************************************************//** + * Store unsigned word to address space if atomic access reservation is still valid. + * + * @note An unaligned access address will raise an alignment exception. + * + * @param[in] addr Address (32-bit). + * @param[in] wdata Data word (32-bit) to store. + * @return Operation status (32-bit, zero if success). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) neorv32_cpu_store_conditional(uint32_t addr, uint32_t wdata) { + +#if defined __riscv_atomic || defined __riscv_a + register uint32_t reg_addr = addr; + register uint32_t reg_data = wdata; + register uint32_t reg_status; + + asm volatile ("sc.w %[status], %[da], (%[ad])" : [status] "=r" (reg_status) : [da] "r" (reg_data), [ad] "r" (reg_addr)); + + return reg_status; +#else + return 1; // always failing +#endif +} + + +/**********************************************************************//** + * Conditional store unsigned word to address space. + * + * @note An unaligned access address will raise an alignment exception. + * + * @param[in] addr Address (32-bit). + * @param[in] wdata Data word (32-bit) to store. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_store_unsigned_word(uint32_t addr, uint32_t wdata) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data = wdata; + + asm volatile ("sw %[da], 0(%[ad])" : : [da] "r" (reg_data), [ad] "r" (reg_addr)); +} + + +/**********************************************************************//** + * Store unsigned half-word to address space. + * + * @note An unaligned access address will raise an alignment exception. + * + * @param[in] addr Address (32-bit). + * @param[in] wdata Data half-word (16-bit) to store. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_store_unsigned_half(uint32_t addr, uint16_t wdata) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data = (uint32_t)wdata; + + asm volatile ("sh %[da], 0(%[ad])" : : [da] "r" (reg_data), [ad] "r" (reg_addr)); +} + + +/**********************************************************************//** + * Store unsigned byte to address space. + * + * @param[in] addr Address (32-bit). + * @param[in] wdata Data byte (8-bit) to store. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_store_unsigned_byte(uint32_t addr, uint8_t wdata) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data = (uint32_t)wdata; + + asm volatile ("sb %[da], 0(%[ad])" : : [da] "r" (reg_data), [ad] "r" (reg_addr)); +} + + +/**********************************************************************//** + * Load unsigned word from address space and make reservation for atomic access. + * + * @note An unaligned access address will raise an alignment exception. + * + * @param[in] addr Address (32-bit). + * @return Read data word (32-bit). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) neorv32_cpu_load_reservate_word(uint32_t addr) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data; + +#if defined __riscv_atomic || defined __riscv_a + asm volatile ("lr.w %[da], 0(%[ad])" : [da] "=r" (reg_data) : [ad] "r" (reg_addr)); +#else + asm volatile ("lw %[da], 0(%[ad])" : [da] "=r" (reg_data) : [ad] "r" (reg_addr)); +#endif + + return (uint32_t)reg_data; +} + + + +/**********************************************************************//** + * Load unsigned word from address space. + * + * @note An unaligned access address will raise an alignment exception. + * + * @param[in] addr Address (32-bit). + * @return Read data word (32-bit). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) neorv32_cpu_load_unsigned_word(uint32_t addr) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data; + + asm volatile ("lw %[da], 0(%[ad])" : [da] "=r" (reg_data) : [ad] "r" (reg_addr)); + + return (uint32_t)reg_data; +} + + +/**********************************************************************//** + * Load unsigned half-word from address space. + * + * @note An unaligned access address will raise an alignment exception. + * + * @param[in] addr Address (32-bit). + * @return Read data half-word (16-bit). + **************************************************************************/ +inline uint16_t __attribute__ ((always_inline)) neorv32_cpu_load_unsigned_half(uint32_t addr) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data; + + asm volatile ("lhu %[da], 0(%[ad])" : [da] "=r" (reg_data) : [ad] "r" (reg_addr)); + + return (uint16_t)reg_data; +} + + +/**********************************************************************//** + * Load unsigned byte from address space. + * + * @param[in] addr Address (32-bit). + * @return Read data byte (8-bit). + **************************************************************************/ +inline uint8_t __attribute__ ((always_inline)) neorv32_cpu_load_unsigned_byte(uint32_t addr) { + + register uint32_t reg_addr = addr; + register uint32_t reg_data; + + asm volatile ("lbu %[da], 0(%[ad])" : [da] "=r" (reg_data) : [ad] "r" (reg_addr)); + + return (uint8_t)reg_data; +} + + +/**********************************************************************//** + * Read data from CPU configuration and status register (CSR). + * + * @param[in] csr_id ID of CSR to read. See #NEORV32_CSR_enum. + * @return Read data (uint32_t). + **************************************************************************/ +inline uint32_t __attribute__ ((always_inline)) neorv32_cpu_csr_read(const int csr_id) { + + register uint32_t csr_data; + + asm volatile ("csrr %[result], %[input_i]" : [result] "=r" (csr_data) : [input_i] "i" (csr_id)); + + return csr_data; +} + + +/**********************************************************************//** + * Write data to CPU configuration and status register (CSR). + * + * @param[in] csr_id ID of CSR to write. See #NEORV32_CSR_enum. + * @param[in] data Data to write (uint32_t). + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_csr_write(const int csr_id, uint32_t data) { + + register uint32_t csr_data = data; + + asm volatile ("csrw %[input_i], %[input_j]" : : [input_i] "i" (csr_id), [input_j] "r" (csr_data)); +} + + +/**********************************************************************//** + * Put CPU into "sleep" mode. + * + * @note This function executes the WFI instruction. + * The WFI (wait for interrupt) instruction will make the CPU stall until + * an interrupt request is detected. Interrupts have to be globally enabled + * and at least one external source must be enabled (like the MTI machine + * timer interrupt) to allow the CPU to wake up again. If 'Zicsr' CPU extension is disabled, + * this will permanently stall the CPU. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_sleep(void) { + + asm volatile ("wfi"); +} + + +/**********************************************************************//** + * Enable global CPU interrupts (via MIE flag in mstatus CSR). + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_eint(void) { + + asm volatile ("csrrsi zero, mstatus, %0" : : "i" (1 << CSR_MSTATUS_MIE)); +} + + +/**********************************************************************//** + * Disable global CPU interrupts (via MIE flag in mstatus CSR). + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_dint(void) { + + asm volatile ("csrrci zero, mstatus, %0" : : "i" (1 << CSR_MSTATUS_MIE)); +} + + +/**********************************************************************//** + * Trigger breakpoint exception (via EBREAK instruction). + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_breakpoint(void) { + + asm volatile ("ebreak"); +} + + +/**********************************************************************//** + * Trigger "environment call" exception (via ECALL instruction). + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_cpu_env_call(void) { + + asm volatile ("ecall"); +} + + +#endif // neorv32_cpu_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_gpio.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_gpio.h new file mode 100644 index 0000000..a4eabf6 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_gpio.h @@ -0,0 +1,57 @@ +// ################################################################################################# +// # << NEORV32: neorv32_gpio.h - General Purpose Input/Output Port HW Driver (Header) >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_gpio.h + * @author Stephan Nolting + * @brief General purpose input/output port unit (GPIO) HW driver header file. + * + * @note These functions should only be used if the GPIO unit was synthesized (IO_GPIO_EN = true). + **************************************************************************/ + +#ifndef neorv32_gpio_h +#define neorv32_gpio_h + +// prototypes +int neorv32_gpio_available(void); +void neorv32_gpio_pin_set(int pin); +void neorv32_gpio_pin_clr(int pin); +void neorv32_gpio_pin_toggle(int pin); +uint32_t neorv32_gpio_pin_get(int pin); + +void neorv32_gpio_port_set(uint64_t d); +uint64_t neorv32_gpio_port_get(void); + +#endif // neorv32_gpio_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_gptmr.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_gptmr.h new file mode 100644 index 0000000..4700c4f --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_gptmr.h @@ -0,0 +1,54 @@ +// ################################################################################################# +// # << NEORV32: neorv32_gptmr.h - General Purpose Timer (GPTMR) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_gptmr.h + * @author Stephan Nolting + * @brief General purpose timer (GPTMR) HW driver header file. + * + * @note These functions should only be used if the GPTMR unit was synthesized (IO_GPTMR_EN = true). + **************************************************************************/ + +#ifndef neorv32_gptmr_h +#define neorv32_gptmr_h + +// prototypes +int neorv32_gptmr_available(void); +void neorv32_gptmr_setup(uint8_t prsc, uint8_t mode, uint32_t threshold); +void neorv32_gptmr_disable(void); +void neorv32_gptmr_enable(void); +void neorv32_gptmr_restart(void); + +#endif // neorv32_gptmr_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_intrinsics.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_intrinsics.h new file mode 100644 index 0000000..b27e803 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_intrinsics.h @@ -0,0 +1,166 @@ +// ################################################################################################# +// # << NEORV32: neorv32_intrinsics.h - Helper functions/macros for (custom) "intrinsics" >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_intrinsics.h + * @author Stephan Nolting + * @brief Helper functions and macros for custom "intrinsics" / instructions. + **************************************************************************/ + +#ifndef neorv32_intrinsics_h +#define neorv32_intrinsics_h + +/**********************************************************************//** + * @name Custom instructions / intrinsics helper macros + **************************************************************************/ +/**@{*/ + +//** Selection helper macro */ +#define STR1(x) #x +//** Selection helper macro 2 */ +#define STR(x) STR1(x) + +//** Register address converter */ +#define GET_REG_ADDR(x) REG_ADDR_##x + +#define REG_ADDR_x0 0 /**< register 0 */ +#define REG_ADDR_x1 1 /**< register 1 */ +#define REG_ADDR_x2 2 /**< register 2 */ +#define REG_ADDR_x3 3 /**< register 3 */ +#define REG_ADDR_x4 4 /**< register 4 */ +#define REG_ADDR_x5 5 /**< register 5 */ +#define REG_ADDR_x6 6 /**< register 6 */ +#define REG_ADDR_x7 7 /**< register 7 */ +#define REG_ADDR_x8 8 /**< register 8 */ +#define REG_ADDR_x9 9 /**< register 9 */ +#define REG_ADDR_x10 10 /**< register 10 */ +#define REG_ADDR_x11 11 /**< register 11 */ +#define REG_ADDR_x12 12 /**< register 12 */ +#define REG_ADDR_x13 13 /**< register 13 */ +#define REG_ADDR_x14 14 /**< register 14 */ +#define REG_ADDR_x15 15 /**< register 15 */ +#define REG_ADDR_x16 16 /**< register 16 */ +#define REG_ADDR_x17 17 /**< register 17 */ +#define REG_ADDR_x18 18 /**< register 18 */ +#define REG_ADDR_x19 19 /**< register 19 */ +#define REG_ADDR_x20 20 /**< register 20 */ +#define REG_ADDR_x21 21 /**< register 21 */ +#define REG_ADDR_x22 22 /**< register 22 */ +#define REG_ADDR_x23 23 /**< register 23 */ +#define REG_ADDR_x24 24 /**< register 24 */ +#define REG_ADDR_x25 25 /**< register 25 */ +#define REG_ADDR_x26 26 /**< register 26 */ +#define REG_ADDR_x27 27 /**< register 27 */ +#define REG_ADDR_x28 28 /**< register 28 */ +#define REG_ADDR_x29 29 /**< register 29 */ +#define REG_ADDR_x30 30 /**< register 30 */ +#define REG_ADDR_x31 31 /**< register 31 */ +#define REG_ADDR_zero 0 /**< register 0 - according to calling convention */ +#define REG_ADDR_ra 1 /**< register 1 - according to calling convention */ +#define REG_ADDR_sp 2 /**< register 2 - according to calling convention */ +#define REG_ADDR_gp 3 /**< register 3 - according to calling convention */ +#define REG_ADDR_tp 4 /**< register 4 - according to calling convention */ +#define REG_ADDR_t0 5 /**< register 5 - according to calling convention */ +#define REG_ADDR_t1 6 /**< register 6 - according to calling convention */ +#define REG_ADDR_t2 7 /**< register 7 - according to calling convention */ +#define REG_ADDR_s0 8 /**< register 8 - according to calling convention */ +#define REG_ADDR_s1 9 /**< register 9 - according to calling convention */ +#define REG_ADDR_a0 10 /**< register 10 - according to calling convention */ +#define REG_ADDR_a1 11 /**< register 11 - according to calling convention */ +#define REG_ADDR_a2 12 /**< register 12 - according to calling convention */ +#define REG_ADDR_a3 13 /**< register 13 - according to calling convention */ +#define REG_ADDR_a4 14 /**< register 14 - according to calling convention */ +#define REG_ADDR_a5 15 /**< register 15 - according to calling convention */ +#define REG_ADDR_a6 16 /**< register 16 - according to calling convention */ +#define REG_ADDR_a7 17 /**< register 17 - according to calling convention */ +#define REG_ADDR_s2 18 /**< register 18 - according to calling convention */ +#define REG_ADDR_s3 19 /**< register 19 - according to calling convention */ +#define REG_ADDR_s4 20 /**< register 20 - according to calling convention */ +#define REG_ADDR_s5 21 /**< register 21 - according to calling convention */ +#define REG_ADDR_s6 22 /**< register 22 - according to calling convention */ +#define REG_ADDR_s7 23 /**< register 23 - according to calling convention */ +#define REG_ADDR_s8 24 /**< register 24 - according to calling convention */ +#define REG_ADDR_s9 25 /**< register 25 - according to calling convention */ +#define REG_ADDR_s10 26 /**< register 26 - according to calling convention */ +#define REG_ADDR_s11 27 /**< register 27 - according to calling convention */ +#define REG_ADDR_t3 28 /**< register 28 - according to calling convention */ +#define REG_ADDR_t4 29 /**< register 29 - according to calling convention */ +#define REG_ADDR_t5 30 /**< register 30 - according to calling convention */ +#define REG_ADDR_t6 31 /**< register 31 - according to calling convention */ + +//** Construct instruction word (32-bit) for R2-type instruction */ +#define CMD_WORD_R2_TYPE(funct7, rs2, rs1, funct3, rd, opcode) \ + ( (opcode & 0x7f) << 0 ) + \ + ( (rd & 0x1f) << 7 ) + \ + ( (funct3 & 0x1f) << 12 ) + \ + ( (rs1 & 0x1f) << 15 ) + \ + ( (rs2 & 0x1f) << 20 ) + \ + ( (funct7 & 0x7f) << 25 ) + +//** Construct instruction word (32-bit) for R3-type instruction */ +#define CMD_WORD_R3_TYPE(rs3, rs2, rs1, funct3, rd, opcode) \ + ( (opcode & 0x7f) << 0 ) + \ + ( (rd & 0x1f) << 7 ) + \ + ( (funct3 & 0x1f) << 12 ) + \ + ( (rs1 & 0x1f) << 15 ) + \ + ( (rs2 & 0x1f) << 20 ) + \ + ( (rs3 & 0x1f) << 27 ) + +//** Construct instruction word (32-bit) for I-type instruction */ +#define CMD_WORD_I_TYPE(imm12, rs1_f5, funct3, rd, opcode) \ + ( (opcode & 0x7f) << 0 ) + \ + ( (rd & 0x1f) << 7 ) + \ + ( (funct3 & 0x1f) << 12 ) + \ + ( (rs1_f5 & 0x1f) << 15 ) + \ + ( (imm12 & 0xfff) << 20 ) + +//** Construct custom R3-type instruction (4 registers, funct3, opcode) */ +#define CUSTOM_INSTR_R3_TYPE(rs3, rs2, rs1, funct3, rd, opcode) \ + asm volatile (".word " STR(CMD_WORD_R3_TYPE(GET_REG_ADDR(rs3), GET_REG_ADDR(rs2), GET_REG_ADDR(rs1), funct3, GET_REG_ADDR(rd), opcode))"\n"); + +//** Construct custom R2-type instruction (3 registers, funct3, funct7, opcode) */ +#define CUSTOM_INSTR_R2_TYPE(funct7, rs2, rs1, funct3, rd, opcode) \ + asm volatile (".word " STR(CMD_WORD_R2_TYPE(funct7, GET_REG_ADDR(rs2), GET_REG_ADDR(rs1), funct3, GET_REG_ADDR(rd), opcode))"\n"); + +//** Construct custom R1-type instruction (2 registers, funct3, funct7, funct5, opcode) */ +#define CUSTOM_INSTR_R1_TYPE(funct7, funct5, rs1, funct3, rd, opcode) \ + asm volatile (".word " STR(CMD_WORD_R2_TYPE(funct7, funct5, GET_REG_ADDR(rs1), funct3, GET_REG_ADDR(rd), opcode))"\n"); + +//** Construct custom I-type instruction (2 registers, funct3, imm12, opcode) */ +#define CUSTOM_INSTR_I_TYPE(imm12, rs1, funct3, rd, opcode) \ + asm volatile (".word " STR(CMD_WORD_I_TYPE(imm12, GET_REG_ADDR(rs1), funct3, GET_REG_ADDR(rd), opcode))"\n"); +/**@}*/ + +#endif // neorv32_intrinsics_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_mtime.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_mtime.h new file mode 100644 index 0000000..e9e2df9 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_mtime.h @@ -0,0 +1,54 @@ +// ################################################################################################# +// # << NEORV32: neorv32_mtime.h - Machine System Timer (MTIME) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_mtime.h + * @author Stephan Nolting + * @brief Machine System Timer (MTIME) HW driver header file. + * + * @note These functions should only be used if the MTIME unit was synthesized (IO_MTIME_EN = true). + **************************************************************************/ + +#ifndef neorv32_mtime_h +#define neorv32_mtime_h + +// prototypes +int neorv32_mtime_available(void); +void neorv32_mtime_set_time(uint64_t time); +uint64_t neorv32_mtime_get_time(void); +void neorv32_mtime_set_timecmp(uint64_t timecmp); +uint64_t neorv32_mtime_get_timecmp(void); + +#endif // neorv32_mtime_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_neoled.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_neoled.h new file mode 100644 index 0000000..f0d7ff7 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_neoled.h @@ -0,0 +1,72 @@ +// ################################################################################################# +// # << NEORV32: neorv32_neoled.h - Smart LED Interface (NEOLED) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_neoled.h + * @author Stephan Nolting + * @brief Smart LED Interface (NEOLED) HW driver header file. + * + * @note These functions should only be used if the NEOLED unit was synthesized (IO_NEOLED_EN = true). + **************************************************************************/ + +#ifndef neorv32_neoled_h +#define neorv32_neoled_h + +// prototypes +int neorv32_neoled_available(void); +void neorv32_neoled_setup(uint32_t prsc, uint32_t t_total, uint32_t t_high_zero, uint32_t t_high_one); +void neorv32_neoled_setup_ws2812(void); +void neorv32_neoled_set_mode(uint32_t mode); +void neorv32_neoled_strobe_blocking(void); +void neorv32_neoled_strobe_nonblocking(void); +void neorv32_neoled_enable(void); +void neorv32_neoled_disable(void); +void neorv32_neoled_write_blocking(uint32_t data); +uint32_t neorv32_neoled_get_buffer_size(void); + + +/**********************************************************************//** + * Send single RGB(W) data word to NEOLED module (non-blocking). + * + * @warning This function uses NO busy/flag checks at all! + * + * @param[in] data LSB-aligned 24-bit RGB or 32-bit RGBW data + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_neoled_write_nonblocking(uint32_t data) { + + NEORV32_NEOLED.DATA = data; // send new LED data +} + +#endif // neorv32_neoled_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_pwm.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_pwm.h new file mode 100644 index 0000000..2ca2d19 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_pwm.h @@ -0,0 +1,56 @@ +// ################################################################################################# +// # << NEORV32: neorv32_pwm.h - Pulse Width Modulation Controller (PWM) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_pwm.h + * @author Stephan Nolting + * @brief Pulse-Width Modulation Controller (PWM) HW driver header file. + * + * @note These functions should only be used if the PWM unit was synthesized (IO_PWM_EN = true). + **************************************************************************/ + +#ifndef neorv32_pwm_h +#define neorv32_pwm_h + +// prototypes +int neorv32_pwm_available(void); +void neorv32_pwm_setup(uint8_t prsc); +void neorv32_pwm_disable(void); +void neorv32_pwm_enable(void); +int neorv32_pmw_get_num_channels(void); +void neorv32_pwm_set(uint8_t channel, uint8_t duty); +uint8_t neorv32_pwm_get(uint8_t channel); + +#endif // neorv32_pwm_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_rte.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_rte.h new file mode 100644 index 0000000..30e292c --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_rte.h @@ -0,0 +1,101 @@ +// ################################################################################################# +// # << NEORV32: neorv32_rte.h - NEORV32 Runtime Environment >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_rte.h + * @author Stephan Nolting + * @brief NEORV32 Runtime Environment. + **************************************************************************/ + +#ifndef neorv32_rte_h +#define neorv32_rte_h + +/**********************************************************************//** + * NEORV32 runtime environment trap IDs. + **************************************************************************/ +enum NEORV32_RTE_TRAP_enum { + RTE_TRAP_I_MISALIGNED = 0, /**< Instruction address misaligned */ + RTE_TRAP_I_ACCESS = 1, /**< Instruction (bus) access fault */ + RTE_TRAP_I_ILLEGAL = 2, /**< Illegal instruction */ + RTE_TRAP_BREAKPOINT = 3, /**< Breakpoint (EBREAK instruction) */ + RTE_TRAP_L_MISALIGNED = 4, /**< Load address misaligned */ + RTE_TRAP_L_ACCESS = 5, /**< Load (bus) access fault */ + RTE_TRAP_S_MISALIGNED = 6, /**< Store address misaligned */ + RTE_TRAP_S_ACCESS = 7, /**< Store (bus) access fault */ + RTE_TRAP_UENV_CALL = 8, /**< Environment call from user mode (ECALL instruction) */ + RTE_TRAP_MENV_CALL = 9, /**< Environment call from machine mode (ECALL instruction) */ + RTE_TRAP_MSI = 10, /**< Machine software interrupt */ + RTE_TRAP_MTI = 11, /**< Machine timer interrupt */ + RTE_TRAP_MEI = 12, /**< Machine external interrupt */ + RTE_TRAP_FIRQ_0 = 13, /**< Fast interrupt channel 0 */ + RTE_TRAP_FIRQ_1 = 14, /**< Fast interrupt channel 1 */ + RTE_TRAP_FIRQ_2 = 15, /**< Fast interrupt channel 2 */ + RTE_TRAP_FIRQ_3 = 16, /**< Fast interrupt channel 3 */ + RTE_TRAP_FIRQ_4 = 17, /**< Fast interrupt channel 4 */ + RTE_TRAP_FIRQ_5 = 18, /**< Fast interrupt channel 5 */ + RTE_TRAP_FIRQ_6 = 19, /**< Fast interrupt channel 6 */ + RTE_TRAP_FIRQ_7 = 20, /**< Fast interrupt channel 7 */ + RTE_TRAP_FIRQ_8 = 21, /**< Fast interrupt channel 8 */ + RTE_TRAP_FIRQ_9 = 22, /**< Fast interrupt channel 9 */ + RTE_TRAP_FIRQ_10 = 23, /**< Fast interrupt channel 10 */ + RTE_TRAP_FIRQ_11 = 24, /**< Fast interrupt channel 11 */ + RTE_TRAP_FIRQ_12 = 25, /**< Fast interrupt channel 12 */ + RTE_TRAP_FIRQ_13 = 26, /**< Fast interrupt channel 13 */ + RTE_TRAP_FIRQ_14 = 27, /**< Fast interrupt channel 14 */ + RTE_TRAP_FIRQ_15 = 28 /**< Fast interrupt channel 15 */ +}; + + +/**********************************************************************//** + * NEORV32 runtime environment: Number of available traps. + **************************************************************************/ +#define NEORV32_RTE_NUM_TRAPS 29 + + +// prototypes +void neorv32_rte_setup(void); +int neorv32_rte_exception_install(uint8_t id, void (*handler)(void)); +int neorv32_rte_exception_uninstall(uint8_t id); + +void neorv32_rte_print_hw_config(void); +void neorv32_rte_print_hw_version(void); +void neorv32_rte_print_credits(void); +void neorv32_rte_print_logo(void); +void neorv32_rte_print_license(void); + +uint32_t neorv32_rte_get_compiler_isa(void); +int neorv32_rte_check_isa(int silent); + +#endif // neorv32_rte_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_slink.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_slink.h new file mode 100644 index 0000000..11803e4 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_slink.h @@ -0,0 +1,269 @@ +// ################################################################################################# +// # << NEORV32: neorv32_slink.h - Stream Link Interface HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_slink.h + * @author Stephan Nolting + * @brief Stream Link Interface HW driver header file. + **************************************************************************/ + +#ifndef neorv32_slink_h +#define neorv32_slink_h + +// prototypes +int neorv32_slink_available(void); +void neorv32_slink_enable(void); +void neorv32_slink_disable(void); +void neorv32_slink_rx_irq_config(int link_id, int irq_en, int irq_type); +void neorv32_slink_tx_irq_config(int link_id, int irq_en, int irq_type); +int neorv32_slink_get_rx_num(void); +int neorv32_slink_get_tx_num(void); +int neorv32_slink_get_rx_depth(void); +int neorv32_slink_get_tx_depth(void); +int neorv32_slink_check_rx_half_full(int link_id); +int neorv32_slink_check_tx_half_full(int link_id); +// non-blocking transmit +int neorv32_slink_tx0_nonblocking(uint32_t tx_data); +int neorv32_slink_tx1_nonblocking(uint32_t tx_data); +int neorv32_slink_tx2_nonblocking(uint32_t tx_data); +int neorv32_slink_tx3_nonblocking(uint32_t tx_data); +int neorv32_slink_tx4_nonblocking(uint32_t tx_data); +int neorv32_slink_tx5_nonblocking(uint32_t tx_data); +int neorv32_slink_tx6_nonblocking(uint32_t tx_data); +int neorv32_slink_tx7_nonblocking(uint32_t tx_data); +// non-blocking receive +int neorv32_slink_rx0_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx1_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx2_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx3_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx4_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx5_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx6_nonblocking(uint32_t *rx_data); +int neorv32_slink_rx7_nonblocking(uint32_t *rx_data); + + +/**********************************************************************//** + * Write data to TX stream link 0 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx0_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[0] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 1 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx1_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[1] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 2 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx2_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[2] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 3 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx3_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[3] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 4 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx4_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[4] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 5 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx5_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[5] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 6 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx6_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[6] = tx_data; +} + + +/**********************************************************************//** + * Write data to TX stream link 7 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in] tx_data Data to send to link. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_tx7_blocking(uint32_t tx_data) { + NEORV32_SLINK.DATA[7] = tx_data; +} + + +/**********************************************************************//** + * Read data from RX stream link 0 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx0_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[0]; +} + + +/**********************************************************************//** + * Read data from RX stream link 1 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx1_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[1]; +} + + +/**********************************************************************//** + * Read data from RX stream link 2 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx2_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[2]; +} + + +/**********************************************************************//** + * Read data from RX stream link 3 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx3_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[3]; +} + + +/**********************************************************************//** + * Read data from RX stream link 4 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx4_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[4]; +} + + +/**********************************************************************//** + * Read data from RX stream link 5 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx5_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[5]; +} + + +/**********************************************************************//** + * Read data from RX stream link 6 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx6_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[6]; +} + + +/**********************************************************************//** + * Read data from RX stream link 7 (blocking!) + * + * @warning This function will raise an exception when the bus access times out! + * + * @param[in,out] rx_data Pointer to return read data. + **************************************************************************/ +inline void __attribute__ ((always_inline)) neorv32_slink_rx7_blocking(uint32_t *rx_data) { + *rx_data = NEORV32_SLINK.DATA[7]; +} + + +#endif // neorv32_slink_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_spi.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_spi.h new file mode 100644 index 0000000..20d313b --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_spi.h @@ -0,0 +1,59 @@ +// ################################################################################################# +// # << NEORV32: neorv32_spi.h - Serial Peripheral Interface Controller (SPI) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_spi.h + * @author Stephan Nolting + * @brief Serial peripheral interface controller (SPI) HW driver header file. + * + * @note These functions should only be used if the SPI unit was synthesized (IO_SPI_EN = true). + **************************************************************************/ + +#ifndef neorv32_spi_h +#define neorv32_spi_h + +// prototypes +int neorv32_spi_available(void); +void neorv32_spi_setup(uint8_t prsc, uint8_t clk_phase, uint8_t clk_polarity, uint8_t data_size); +void neorv32_spi_disable(void); +void neorv32_spi_enable(void); +void neorv32_spi_cs_en(uint8_t cs); +void neorv32_spi_cs_dis(uint8_t cs); +uint32_t neorv32_spi_trans(uint32_t tx_data); +void neorv32_spi_put_nonblocking(uint32_t tx_data); +uint32_t neorv32_spi_get_nonblocking(void); +int neorv32_spi_busy(void); + +#endif // neorv32_spi_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_trng.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_trng.h new file mode 100644 index 0000000..0e59297 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_trng.h @@ -0,0 +1,53 @@ +// ################################################################################################# +// # << NEORV32: neorv32_trng.h - True Random Number Generator (TRNG) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_trng.h + * @author Stephan Nolting + * @brief True Random Number Generator (TRNG) HW driver header file. + * + * @note These functions should only be used if the TRNG unit was synthesized (IO_TRNG_EN = true). + **************************************************************************/ + +#ifndef neorv32_trng_h +#define neorv32_trng_h + +// prototypes +int neorv32_trng_available(void); +void neorv32_trng_enable(void); +void neorv32_trng_disable(void); +int neorv32_trng_get(uint8_t *data); + +#endif // neorv32_trng_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_twi.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_twi.h new file mode 100644 index 0000000..7ed224a --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_twi.h @@ -0,0 +1,61 @@ +// ################################################################################################# +// # << NEORV32: neorv32_twi.h - Two-Wire Interface Controller (TWI) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_twi.h + * @author Stephan Nolting + * @brief Two-Wire Interface Controller (TWI) HW driver header file. + * + * @note These functions should only be used if the TWI unit was synthesized (IO_TWI_EN = true). + **************************************************************************/ + +#ifndef neorv32_twi_h +#define neorv32_twi_h + +// prototypes +int neorv32_twi_available(void); +void neorv32_twi_setup(uint8_t prsc); +void neorv32_twi_disable(void); +void neorv32_twi_enable(void); +void neorv32_twi_mack_enable(void); +void neorv32_twi_mack_disable(void); +int neorv32_twi_busy(void); +int neorv32_twi_start_trans(uint8_t a); +int neorv32_twi_trans(uint8_t d); +uint8_t neorv32_twi_get_data(void); +void neorv32_twi_generate_stop(void); +void neorv32_twi_generate_start(void); + +#endif // neorv32_twi_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_uart.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_uart.h new file mode 100644 index 0000000..65d3812 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_uart.h @@ -0,0 +1,82 @@ +// ################################################################################################# +// # << NEORV32: neorv32_uart.h - Universal Asynchronous Receiver/Transmitter (UART) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_uart.h + * @author Stephan Nolting + * @brief Universal asynchronous receiver/transmitter (UART0/UART1) HW driver header file + * + * @warning UART0 (primary UART) is used as default user console interface for all NEORV32 software framework/library functions. + * + * @note These functions should only be used if the UART0/UART1 unit was synthesized (IO_UART0_EN = true / IO_UART1_EN = true). + **************************************************************************/ + +#ifndef neorv32_uart_h +#define neorv32_uart_h + +// Libs required by functions +#include + +// prototypes for UART0 (primary UART) +int neorv32_uart0_available(void); +void neorv32_uart0_setup(uint32_t baudrate, uint8_t parity, uint8_t flow_con); +void neorv32_uart0_disable(void); +void neorv32_uart0_enable(void); +void neorv32_uart0_putc(char c); +int neorv32_uart0_tx_busy(void); +char neorv32_uart0_getc(void); +int neorv32_uart0_char_received(void); +int neorv32_uart0_getc_safe(char *data); +char neorv32_uart0_char_received_get(void); +void neorv32_uart0_print(const char *s); +void neorv32_uart0_printf(const char *format, ...); +int neorv32_uart0_scan(char *buffer, int max_size, int echo); + +// prototypes for UART1 (secondary UART) +int neorv32_uart1_available(void); +void neorv32_uart1_setup(uint32_t baudrate, uint8_t parity, uint8_t flow_con); +void neorv32_uart1_disable(void); +void neorv32_uart1_enable(void); +void neorv32_uart1_putc(char c); +int neorv32_uart1_tx_busy(void); +char neorv32_uart1_getc(void); +int neorv32_uart1_char_received(void); +int neorv32_uart1_getc_safe(char *data); +char neorv32_uart1_char_received_get(void); +void neorv32_uart1_print(const char *s); +void neorv32_uart1_printf(const char *format, ...); +int neorv32_uart1_scan(char *buffer, int max_size, int echo); + +#endif // neorv32_uart_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_wdt.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_wdt.h new file mode 100644 index 0000000..6ed0580 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_wdt.h @@ -0,0 +1,55 @@ +// ################################################################################################# +// # << NEORV32: neorv32_wdt.h - Watchdog Timer (WDT) HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_wdt.h + * @author Stephan Nolting + * @brief Watchdog Timer (WDT) HW driver header file. + * + * @note These functions should only be used if the WDT unit was synthesized (IO_WDT_EN = true). + **************************************************************************/ + +#ifndef neorv32_wdt_h +#define neorv32_wdt_h + +// prototypes +int neorv32_wdt_available(void); +void neorv32_wdt_setup(uint8_t prsc, uint8_t mode, uint8_t lock); +int neorv32_wdt_disable(void); +void neorv32_wdt_reset(void); +int neorv32_wdt_get_cause(void); +void neorv32_wdt_force(void); + +#endif // neorv32_wdt_h diff --git a/Libs/RiscV/NEORV32/sw/lib/include/neorv32_xirq.h b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_xirq.h new file mode 100644 index 0000000..08f9b1f --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/lib/include/neorv32_xirq.h @@ -0,0 +1,59 @@ +// ################################################################################################# +// # << NEORV32: neorv32_xirq.h - External Interrupt controller HW Driver >> # +// # ********************************************************************************************* # +// # BSD 3-Clause License # +// # # +// # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +// # # +// # Redistribution and use in source and binary forms, with or without modification, are # +// # permitted provided that the following conditions are met: # +// # # +// # 1. Redistributions of source code must retain the above copyright notice, this list of # +// # conditions and the following disclaimer. # +// # # +// # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +// # conditions and the following disclaimer in the documentation and/or other materials # +// # provided with the distribution. # +// # # +// # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +// # endorse or promote products derived from this software without specific prior written # +// # permission. # +// # # +// # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +// # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +// # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +// # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +// # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +// # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +// # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +// # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +// # OF THE POSSIBILITY OF SUCH DAMAGE. # +// # ********************************************************************************************* # +// # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +// ################################################################################################# + + +/**********************************************************************//** + * @file neorv32_xirq.h + * @author Stephan Nolting + * @brief External Interrupt controller HW driver header file. + **************************************************************************/ + +#ifndef neorv32_xirq_h +#define neorv32_xirq_h + +// prototypes +int neorv32_xirq_available(void); +int neorv32_xirq_setup(void); +void neorv32_xirq_global_enable(void); +void neorv32_xirq_global_disable(void); +int neorv32_xirq_get_num(void); +void neorv32_xirq_clear_pending(uint8_t ch); +void neorv32_xirq_channel_enable(uint8_t ch); +void neorv32_xirq_channel_disable(uint8_t ch); + +int neorv32_xirq_install(uint8_t ch, void (*handler)(void)); +int neorv32_xirq_uninstall(uint8_t ch); + + +#endif // neorv32_xirq_h diff --git a/Libs/RiscV/NEORV32/sw/ocd-firmware/.gitignore b/Libs/RiscV/NEORV32/sw/ocd-firmware/.gitignore new file mode 100644 index 0000000..ed70f60 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/ocd-firmware/.gitignore @@ -0,0 +1 @@ +*.vhd diff --git a/Libs/RiscV/NEORV32/sw/ocd-firmware/README.md b/Libs/RiscV/NEORV32/sw/ocd-firmware/README.md new file mode 100644 index 0000000..9821d35 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/ocd-firmware/README.md @@ -0,0 +1,18 @@ +# NEORV32 On-Chip Debugger (OCD) - "Park Loop" Code + +This folder contains the ASM sources for the *execution-based* debugger code ROM. +`park_loop.S` contains the "park loop" that is executed when the CPU is in debug mode. This code is used to communicate +with the *debug module (DM)* and is responsible for: + +* acknowledging halt requests +* processing and acknowledging resume requests +* processing and acknowledging "execute program buffer" requests +* executing the program buffer (provided by the DM) +* catching exceptions while in debug mode + +The park loop code is implemented as endless loop that polls the status register of the *debug memory (DBMEM)* module +to check for requests from the DM and sets according flags in the status register to acknowledge these requests. + +:warning: Executing `make clean_all all` will **NOT** update the actual debugger code ROM that will be synthesized. +The interface with the DM will break if there are any bugs in this code. However, if you wish to update the code ROM, +copy the array content from `neorv32_debug_mem.code.vhd` to the `code_rom_file` constant in `rtl/core/neorv32_debug_dbmem.vhd`. diff --git a/Libs/RiscV/NEORV32/sw/ocd-firmware/debug_rom.ld b/Libs/RiscV/NEORV32/sw/ocd-firmware/debug_rom.ld new file mode 100644 index 0000000..1c9dcd8 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/ocd-firmware/debug_rom.ld @@ -0,0 +1,67 @@ +/* ################################################################################################# */ +/* # << NEORV32 - RISC-V GCC Linker Script >> # */ +/* # ********************************************************************************************* # */ +/* # For the execution based on-chip debugger code memory (/ROM() - "park loop" code # */ +/* # ********************************************************************************************* # */ +/* # BSD 3-Clause License # */ +/* # # */ +/* # Copyright (c) 2021, Stephan Nolting. All rights reserved. # */ +/* # # */ +/* # Redistribution and use in source and binary forms, with or without modification, are # */ +/* # permitted provided that the following conditions are met: # */ +/* # # */ +/* # 1. Redistributions of source code must retain the above copyright notice, this list of # */ +/* # conditions and the following disclaimer. # */ +/* # # */ +/* # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # */ +/* # conditions and the following disclaimer in the documentation and/or other materials # */ +/* # provided with the distribution. # */ +/* # # */ +/* # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # */ +/* # endorse or promote products derived from this software without specific prior written # */ +/* # permission. # */ +/* # # */ +/* # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # */ +/* # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # */ +/* # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # */ +/* # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # */ +/* # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # */ +/* # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # */ +/* # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # */ +/* # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # */ +/* # OF THE POSSIBILITY OF SUCH DAMAGE. # */ +/* # ********************************************************************************************* # */ +/* # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # */ +/* ################################################################################################# */ + +/* Default linker script, for normal executables */ +/* Copyright (C) 2014-2020 Free Software Foundation, Inc. + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ + +/* modified for the NEORV32 processor by Stephan Nolting */ + + +OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv") +OUTPUT_ARCH(riscv) +ENTRY(_start) +SEARCH_DIR("/opt/riscv/riscv32-unknown-elf/lib"); SEARCH_DIR("=/opt/riscv/riscv64-unknown-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); + +MEMORY +{ + debug_mem (rx) : ORIGIN = 0xFFFFF800, LENGTH = 128 +} +/* ************************************************************************* */ + +SECTIONS +{ + + /* Actual instructions */ + .text : + { + KEEP(*(.text)); + + } > debug_mem + +} diff --git a/Libs/RiscV/NEORV32/sw/ocd-firmware/makefile b/Libs/RiscV/NEORV32/sw/ocd-firmware/makefile new file mode 100644 index 0000000..ea759b2 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/ocd-firmware/makefile @@ -0,0 +1,294 @@ +################################################################################################# +# << NEORV32 - Application Makefile >> # +# ********************************************************************************************* # +# Make sure to add the RISC-V GCC compiler's bin folder to your PATH environment variable. # +# ********************************************************************************************* # +# FOR DEBUGGER "PARK LOOP" CODE ONLY! # +# ********************************************************************************************* # +# BSD 3-Clause License # +# # +# Copyright (c) 2021, Stephan Nolting. All rights reserved. # +# # +# Redistribution and use in source and binary forms, with or without modification, are # +# permitted provided that the following conditions are met: # +# # +# 1. Redistributions of source code must retain the above copyright notice, this list of # +# conditions and the following disclaimer. # +# # +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +# conditions and the following disclaimer in the documentation and/or other materials # +# provided with the distribution. # +# # +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +# endorse or promote products derived from this software without specific prior written # +# permission. # +# # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +# OF THE POSSIBILITY OF SUCH DAMAGE. # +# ********************************************************************************************* # +# The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +################################################################################################# + + +# ***************************************************************************** +# USER CONFIGURATION +# ***************************************************************************** +# User's application sources (*.c, *.cpp, *.s, *.S); add additional files here +APP_SRC ?= $(wildcard ./*.S) + +# User's application include folders (don't forget the '-I' before each entry) +APP_INC ?= -I . +# User's application include folders - for assembly files only (don't forget the '-I' before each entry) +ASM_INC ?= -I . + +# Optimization +EFFORT ?= -Os + +# Compiler toolchain +RISCV_PREFIX ?= riscv32-unknown-elf- + +# CPU architecture and ABI +MARCH = rv32i +MABI = ilp32 + +# User flags for additional configuration (will be added to compiler flags) +USER_FLAGS ?= + +# Relative or absolute path to the NEORV32 home folder +NEORV32_HOME ?= ../.. +# ***************************************************************************** + + + +# ----------------------------------------------------------------------------- +# NEORV32 framework +# ----------------------------------------------------------------------------- +# Path to NEORV32 linker script and startup file +NEORV32_COM_PATH = $(NEORV32_HOME)/sw/common +# Path to main NEORV32 library include files +NEORV32_INC_PATH = $(NEORV32_HOME)/sw/lib/include +# Path to main NEORV32 library source files +NEORV32_SRC_PATH = $(NEORV32_HOME)/sw/lib/source +# Path to NEORV32 executable generator +NEORV32_EXG_PATH = $(NEORV32_HOME)/sw/image_gen +# Path to NEORV32 core rtl folder +NEORV32_RTL_PATH = $(NEORV32_HOME)/rtl/core +# Marker file to check for NEORV32 home folder +NEORV32_HOME_MARKER = $(NEORV32_INC_PATH)/neorv32.h + +# Linker script +LD_SCRIPT = ./debug_rom.ld + +# Main output files +APP_ASM = main.asm +APP_IMG = neorv32_debug_mem.code.vhd + + +# ----------------------------------------------------------------------------- +# Sources and objects +# ----------------------------------------------------------------------------- +# Define all sources +SRC = $(APP_SRC) + +# Define all object files +OBJ = $(SRC:%=%.o) + + +# ----------------------------------------------------------------------------- +# Tools and flags +# ----------------------------------------------------------------------------- +# Compiler tools +CC = $(RISCV_PREFIX)gcc +OBJDUMP = $(RISCV_PREFIX)objdump +OBJCOPY = $(RISCV_PREFIX)objcopy +SIZE = $(RISCV_PREFIX)size + +# Host native compiler +CC_X86 = g++ -Wall -O -g + +# NEORV32 executable image generator +IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen + +# Compiler & linker flags +CC_OPTS = -march=$(MARCH) -mabi=$(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles -mno-fdiv +CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc +# This accelerates instruction fetch after branches when C extension is enabled (irrelevant when C extension is disabled) +CC_OPTS += -falign-functions=4 -falign-labels=4 -falign-loops=4 -falign-jumps=4 +CC_OPTS += $(USER_FLAGS) + + +# ----------------------------------------------------------------------------- +# Application output definitions +# ----------------------------------------------------------------------------- +.PHONY: check info help elf_info clean clean_all bootloader +.DEFAULT_GOAL := help + +# 'compile' is still here for compatibility +compile: $(APP_ASM) +install: $(APP_ASM) $(APP_IMG) +all: $(APP_ASM) $(APP_IMG) + +# Check if making bootloader +# Use different base address and legth for instruction memory/"rom" (BOOTMEM instead of IMEM) +# Also define "make_bootloader" for crt0.S +target bootloader: CC_OPTS += -Wl,--defsym=make_bootloader=1 -Dmake_bootloader + + +# ----------------------------------------------------------------------------- +# Image generator targets +# ----------------------------------------------------------------------------- +# install/compile tools +$(IMAGE_GEN): $(NEORV32_EXG_PATH)/image_gen.c + @echo Compiling $(IMAGE_GEN) + @$(CC_X86) $< -o $(IMAGE_GEN) + + +# ----------------------------------------------------------------------------- +# General targets: Assemble, compile, link, dump +# ----------------------------------------------------------------------------- +# Compile app *.s sources (assembly) +%.s.o: %.s + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(ASM_INC) $< -o $@ + +# Compile app *.S sources (assembly + C pre-processor) +%.S.o: %.S + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(ASM_INC) $< -o $@ + +# Compile app *.c sources +%.c.o: %.c + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) $< -o $@ + +# Compile app *.cpp sources +%.cpp.o: %.cpp + @$(CC) -c $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) $< -o $@ + +# Link object files and show memory utilization +main.elf: $(OBJ) + @$(CC) $(CC_OPTS) -T $(LD_SCRIPT) $(OBJ) -o $@ -lm + @echo "Memory utilization:" + @$(SIZE) main.elf + +# Assembly listing file (for debugging) +$(APP_ASM): main.elf + @$(OBJDUMP) -d -S -z $< > $@ + +# Generate final executable from .text only +main.bin: main.elf $(APP_ASM) + @$(OBJCOPY) -I elf32-little $< -j .text -O binary text.bin + @cat text.bin > $@ + @rm -f text.bin + + +# ----------------------------------------------------------------------------- +# Application targets: install (as VHDL file) +# ----------------------------------------------------------------------------- + +# Generate NEORV32 executable VHDL boot image +$(APP_IMG): main.bin $(IMAGE_GEN) + @set -e + @$(IMAGE_GEN) -app_img $< $@ $(shell basename $(CURDIR)) + + +# ----------------------------------------------------------------------------- +# Check toolchain +# ----------------------------------------------------------------------------- +check: $(IMAGE_GEN) + @echo "---------------- Check: NEORV32_HOME folder ----------------" +ifneq ($(shell [ -e $(NEORV32_HOME_MARKER) ] && echo 1 || echo 0 ), 1) +$(error NEORV32_HOME folder not found!) +endif + @echo "NEORV32_HOME: $(NEORV32_HOME)" + @echo "---------------- Check: $(CC) ----------------" + @$(CC) -v + @echo "---------------- Check: $(OBJDUMP) ----------------" + @$(OBJDUMP) -V + @echo "---------------- Check: $(OBJCOPY) ----------------" + @$(OBJCOPY) -V + @echo "---------------- Check: $(SIZE) ----------------" + @$(SIZE) -V + @echo "---------------- Check: NEORV32 image_gen ----------------" + @$(IMAGE_GEN) -help + @echo "---------------- Check: Native GCC ----------------" + @$(CC_X86) -v + @echo + @echo "Toolchain check OK" + + +# ----------------------------------------------------------------------------- +# Show configuration +# ----------------------------------------------------------------------------- +info: + @echo "---------------- Info: Project ----------------" + @echo "Project folder: $(shell basename $(CURDIR))" + @echo "Source files: $(APP_SRC)" + @echo "Include folder(s): $(APP_INC)" + @echo "ASM include folder(s): $(ASM_INC)" + @echo "---------------- Info: NEORV32 ----------------" + @echo "NEORV32 home folder (NEORV32_HOME): $(NEORV32_HOME)" + @echo "IMAGE_GEN: $(IMAGE_GEN)" + @echo "Core source files:" + @echo "$(CORE_SRC)" + @echo "Core include folder:" + @echo "$(NEORV32_INC_PATH)" + @echo "---------------- Info: Objects ----------------" + @echo "Project object files:" + @echo "$(OBJ)" + @echo "---------------- Info: RISC-V CPU ----------------" + @echo "MARCH: $(MARCH)" + @echo "MABI: $(MABI)" + @echo "---------------- Info: Toolchain ----------------" + @echo "Toolchain: $(RISCV_TOLLCHAIN)" + @echo "CC: $(CC)" + @echo "OBJDUMP: $(OBJDUMP)" + @echo "OBJCOPY: $(OBJCOPY)" + @echo "SIZE: $(SIZE)" + @echo "---------------- Info: Compiler Libraries ----------------" + @echo "LIBGCC:" + @$(CC) -print-libgcc-file-name + @echo "SEARCH-DIRS:" + @$(CC) -print-search-dirs + @echo "---------------- Info: Flags ----------------" + @echo "USER_FLAGS: $(USER_FLAGS)" + @echo "CC_OPTS: $(CC_OPTS)" + @echo "---------------- Info: Host Native GCC Flags ----------------" + @echo "CC_X86: $(CC_X86)" + + +# ----------------------------------------------------------------------------- +# Show final ELF details (just for debugging) +# ----------------------------------------------------------------------------- +elf_info: main.elf + @$(OBJDUMP) -x main.elf + + +# ----------------------------------------------------------------------------- +# Help +# ----------------------------------------------------------------------------- +help: + @echo "<<< NEORV32 Application Makefile >>>" + @echo "Make sure to add the bin folder of RISC-V GCC to your PATH variable." + @echo "Targets:" + @echo " help - show this text" + @echo " check - check toolchain" + @echo " info - show makefile/toolchain configuration" + @echo " exe - compile and generate executable for upload via bootloader" + @echo " all - compile and generate executable for upload via bootloader and generate and install VHDL IMEM boot image (for application)" + @echo " clean - clean up project" + @echo " clean_all - clean up project, core libraries and image generator" + + +# ----------------------------------------------------------------------------- +# Clean up +# ----------------------------------------------------------------------------- +clean: + @rm -f *.elf *.o *.bin *.out *.asm *.vhd + +clean_all: clean + @rm -f $(OBJ) $(IMAGE_GEN) diff --git a/Libs/RiscV/NEORV32/sw/ocd-firmware/park_loop.S b/Libs/RiscV/NEORV32/sw/ocd-firmware/park_loop.S new file mode 100644 index 0000000..5c02185 --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/ocd-firmware/park_loop.S @@ -0,0 +1,103 @@ +/* ################################################################################################# */ +/* # << NEORV32 - park_loop.S - Execution-Based On-Chip Debugger - Park Loop Code >> # */ +/* # ********************************************************************************************* # */ +/* # BSD 3-Clause License # */ +/* # # */ +/* # Copyright (c) 2021, Stephan Nolting. All rights reserved. # */ +/* # # */ +/* # Redistribution and use in source and binary forms, with or without modification, are # */ +/* # permitted provided that the following conditions are met: # */ +/* # # */ +/* # 1. Redistributions of source code must retain the above copyright notice, this list of # */ +/* # conditions and the following disclaimer. # */ +/* # # */ +/* # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # */ +/* # conditions and the following disclaimer in the documentation and/or other materials # */ +/* # provided with the distribution. # */ +/* # # */ +/* # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # */ +/* # endorse or promote products derived from this software without specific prior written # */ +/* # permission. # */ +/* # # */ +/* # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # */ +/* # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # */ +/* # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # */ +/* # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # */ +/* # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # */ +/* # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # */ +/* # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # */ +/* # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # */ +/* # OF THE POSSIBILITY OF SUCH DAMAGE. # */ +/* # ********************************************************************************************* # */ +/* # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # */ +/* ################################################################################################# */ + +// debug memory address map +.equ DBMEM_CODE_BASE, 0xfffff800 // base address of dbmem.code_memory +.equ DBMEM_PBUF_BASE, 0xfffff880 // base address of dbmem.program_buffer +.equ DBMEM_DBUF_BASE, 0xfffff900 // base address of dbmem.data_buffer +.equ DBMEM_SREG_BASE, 0xfffff980 // base address of dbmem.status_register + +// status register (SREG) bits +.equ SREG_HALTED_ACK, (1<<0) // -/w: CPU is halted in debug mode and waits in park loop +.equ SREG_RESUME_REQ, (1<<1) // r/-: DM requests CPU to resume +.equ SREG_RESUME_ACK, (1<<2) // -/w: CPU starts resuming +.equ SREG_EXECUTE_REQ, (1<<3) // r/-: DM requests to execute program buffer +.equ SREG_EXECUTE_ACK, (1<<4) // -/w: CPU starts to execute program buffer +.equ SREG_EXCEPTION_ACK, (1<<5) // -/w: CPU has detected an exception + +.file "park_loop.S" +.section .text +.balign 4 +.option norvc +.global _start +.global entry_normal +.global entry_exception + + +_start: + +// BASE + 0: entry for ebreak in debug-mode, halt request or return from single-stepped instruction +entry_normal: + jal zero, parking_loop_start + +// BASE + 4: entry for exceptions - signal EXCEPTION to DM and restart parking loop +entry_exception: + csrw dscratch0, s0 // save s0 to dscratch0 so we have a general purpose register available + addi s0, zero, SREG_EXCEPTION_ACK // mask exception acknowledge flag + sw s0, DBMEM_SREG_BASE(zero) // trigger exception acknowledge to inform DM + csrr s0, dscratch0 // restore s0 from dscratch0 + ebreak // restart parking loop + +// "parking loop": endless loop that polls the status register to check if the DM +// wants to execute code from the program buffer or to resume normal CPU/application operation +parking_loop_start: + csrw dscratch0, s0 // save s0 to dscratch0 so we have a general purpose register available + addi s0, zero, SREG_HALTED_ACK + sw s0, DBMEM_SREG_BASE(zero) // ACK that CPU has halted + +parking_loop: + lw s0, DBMEM_SREG_BASE(zero) // get status register + andi s0, s0, SREG_EXECUTE_REQ // request to execute program buffer? + bnez s0, execute_progbuf // execute program buffer + + lw s0, DBMEM_SREG_BASE(zero) // get status register + andi s0, s0, SREG_RESUME_REQ // request to resume? + bnez s0, resume // resume normal operation + + jal zero, parking_loop // restart parking loop polling + +// resume normal operation +resume: + addi s0, zero, SREG_RESUME_ACK + sw s0, DBMEM_SREG_BASE(zero) // ACK that CPU is about to resume + csrr s0, dscratch0 // restore s0 from dscratch0 + dret // end debug mode + +// execute program buffer +execute_progbuf: + addi s0, zero, SREG_EXECUTE_ACK + sw s0, DBMEM_SREG_BASE(zero) // ACK that execution is about to start + csrr s0, dscratch0 // restore s0 from dscratch0 + fence.i // synchronize i-cache & prefetch with memory (program buffer) + jalr zero, zero, %lo(DBMEM_PBUF_BASE) // jump to beginning of program buffer diff --git a/Libs/RiscV/NEORV32/sw/openocd/openocd_neorv32.cfg b/Libs/RiscV/NEORV32/sw/openocd/openocd_neorv32.cfg new file mode 100644 index 0000000..cbe1e3e --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/openocd/openocd_neorv32.cfg @@ -0,0 +1,41 @@ +# openOCD configuration file for generic FT2232H-based USB-jtag interface +# references: https://mcuoneclipse.com/2019/10/20/jtag-debugging-the-esp32-with-ft2232-and-openocd/ + +# ---------------------------------------------- +# Interface configuration +# ---------------------------------------------- + +# FT2232H pinout: +# TCK: D0 +# TDI: D1 +# TDO: D2 +# TMS: D3 +# TRST: D4 (low-active, optional - pull input pin high if not used) + +adapter driver ftdi +ftdi_vid_pid 0x0403 0x6010 +ftdi_channel 0 +ftdi_layout_init 0x0038 0x003b + +adapter speed 1000 +ftdi_layout_signal nTRST -ndata 0x0010 -noe 0x0040 +transport select jtag + +# ---------------------------------------------- +# Target configuration +# ---------------------------------------------- + +set _CHIPNAME neorv32 +set _JTAGID 0x0cafe001 +jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id $_JTAGID + +set _TARGETNAME $_CHIPNAME.cpu + +target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME + +# ---------------------------------------------- +# Scratch pad RAM +# ---------------------------------------------- + +# work area ("scratch pad RAM"): beginning of (internal) DMEM, 256 bytes, requires(!) backup +$_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 256 -work-area-backup 1 diff --git a/Libs/RiscV/NEORV32/sw/svd/README.md b/Libs/RiscV/NEORV32/sw/svd/README.md new file mode 100644 index 0000000..10b7c2e --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/svd/README.md @@ -0,0 +1,10 @@ +# NEORV32 System View Description (SVD) File + +Manually created from `sw/lib/include/neorv32.h`. + +* Format: CMSIS-SVD +* Copyright by ARM Ltd, Apache-2.0 License +* Documentation: + * https://www.keil.com/pack/doc/CMSIS/SVD/html/index.html + * https://github.com/ARM-software/CMSIS + * https://github.com/ARM-software/CMSIS_5 diff --git a/Libs/RiscV/NEORV32/sw/svd/neorv32.svd b/Libs/RiscV/NEORV32/sw/svd/neorv32.svd new file mode 100644 index 0000000..4e9371c --- /dev/null +++ b/Libs/RiscV/NEORV32/sw/svd/neorv32.svd @@ -0,0 +1,1189 @@ + + + + stnolting + neorv32 + RISC-V + 1.6.4 + The NEORV32 RISC-V Processor + + + + NEORV32 + r2p0 + little + true + true + false + false + true + true + 0 + false + + + + 8 + 32 + 32 + read-write + 0x00000000 + 0x00000000 + + + + + + + CFS + Custom functions subsystem + CFS + 0xFFFFFE00 + + CFS_FIRQ1 + + + 0 + 0x80 + registers + + + + REG0Application-defined0x00 + REG1Application-defined0x04 + REG2Application-defined0x08 + REG3Application-defined0x0C + REG4Application-defined0x10 + REG5Application-defined0x14 + REG6Application-defined0x18 + REG7Application-defined0x1C + REG8Application-defined0x20 + REG9Application-defined0x24 + REG10Application-defined0x28 + REG11Application-defined0x2C + REG12Application-defined0x30 + REG13Application-defined0x34 + REG14Application-defined0x38 + REG15Application-defined0x3C + REG16Application-defined0x40 + REG17Application-defined0x44 + REG18Application-defined0x48 + REG19Application-defined0x4C + REG20Application-defined0x50 + REG21Application-defined0x54 + REG22Application-defined0x58 + REG23Application-defined0x5C + REG24Application-defined0x60 + REG25Application-defined0x64 + REG26Application-defined0x68 + REG27Application-defined0x6C + REG28Application-defined0x70 + REG29Application-defined0x74 + REG30Application-defined0x78 + REG31Application-defined0x7C + + + + + + PWM + Pulse-width modulation controller + PWM + 0xFFFFFE80 + + + 0 + 0x40 + registers + + + + + CTRL + Control register + 0x00 + + + PWM_CTRL_EN + [0:0] + PWM controller enable flag + + + PWM_CTRL_PRSCx + [3:1] + Clock prescaler select + + + + + DUTY0 + Duty cycle register 0 + 0x04 + + + DUTY1 + Duty cycle register 1 + 0x08 + + + DUTY2 + Duty cycle register 2 + 0x0C + + + DUTY3 + Duty cycle register 3 + 0x10 + + + DUTY4 + Duty cycle register 4 + 0x14 + + + DUTY5 + Duty cycle register 5 + 0x18 + + + DUTY6 + Duty cycle register 6 + 0x1C + + + DUTY7 + Duty cycle register 7 + 0x20 + + + DUTY8 + Duty cycle register 8 + 0x24 + + + DUTY9 + Duty cycle register 9 + 0x28 + + + DUTY10 + Duty cycle register 10 + 0x2C + + + DUTY11 + Duty cycle register 11 + 0x30 + + + DUTY12 + Duty cycle register 12 + 0x34 + + + DUTY13 + Duty cycle register 13 + 0x38 + + + DUTY14 + Duty cycle register 14 + 0x3C + + + + + + + SLINK + Stream link interface + SLINK + 0xFFFFFEC0 + + SLINK_RX_FIRQ10 + SLINK_TX_FIRQ11 + + + 0 + 0x40 + registers + + + + + CTRL + Control register + 0x00 + + + SLINK_CTRL_RX_NUMx + read-only + [3:0] + Number of implemented RX links + + + SLINK_CTRL_TX_NUMx + read-only + [7:4] + Number of implemented TX links + + + SLINK_CTRL_RX_FIFO_Sx + read-only + [11:8] + log2(RX FIFO size) + + + SLINK_CTRL_TX_FIFO_Sx + read-only + [15:12] + log2(TX FIFO size) + + + SLINK_CTRL_EN + read-write + [31:31] + SLINK enable flag + + + + + IRQ + Link interrupt configuration register + 0x08 + + + SLINK_IRQ_RX_EN + [7:0] + RX link interrupt enable + + + SLINK_IRQ_RX_MODE + [15:8] + RX link interrupt mode + + + SLINK_IRQ_TX_EN + [23:16] + TX link interrupt enable + + + SLINK_IRQ_TX_MODE + [31:24] + TX link interrupt mode + + + + + STATUS + Link status register + 0x10 + + + SLINK_STATUS_RX_AVAIL + [7:0] + RX link n FIFO is NOT empty (data available) + + + SLINK_STATUS_TX_FREE + [15:8] + TX link n FIFO is NOT full (ready to send) + + + SLINK_STATUS_RX_HALF + [23:16] + RX link n FIFO fill level is >= half-full + + + SLINK_STATUS_TX_HALF + [31:24] + TX link 0 FIFO fill level is > half-full + + + + + DATA0 + Link 0 RTX data register + 0x20 + + + DATA1 + Link 1 RTX data register + 0x24 + + + DATA2 + Link 2 RTX data register + 0x28 + + + DATA3 + Link 3 RTX data register + 0x2C + + + DATA4 + Link 4 RTX data register + 0x30 + + + DATA5 + Link 5 RTX data register + 0x34 + + + DATA6 + Link 6 RTX data register + 0x38 + + + DATA7 + Link 7 RTX data register + 0x3C + + + + + + + GPTMR + General purpose timer + GPTMR + 0xFFFFFF60 + + GPTMR_FIRQ12 + + + 0 + 0x10 + registers + + + + + CTRL + Control register + 0x00 + + + GPTMR_CTRL_EN + [0:0] + Timer enable flag + + + GPTMR_CTRL_PRSC + [3:1] + Clock prescaler select + + + GPTMR_CTRL_MODE + [4:4] + Timer mode: 0=single-shot mode, 1=continuous mode + + + + + THRES + Threshold register + 0x04 + + + COUNT + Counter register + 0x08 + + + + + + + BUSKEEPER + Bus keeper + BUSKEEPER + 0xFFFFFF7C + + + 0 + 0x04 + registers + + + + + CTRL + Control register + 0x00 + + + BUSKEEPER_ERR_TYPE + [0:0] + read-only + Bus error type: 0=device error, 1=access timeout + + + BUSKEEPER_ERR_FLAG + [31:31] + Sticky error flag, clears after read or write access + + + + + + + + + XIRQ + External interrupts controller + XIRQ + 0xFFFFFF80 + + XIRQ_FIRQ8 + + + 0 + 0x10 + registers + + + + + IER + IRQ input enable register + 0x00 + + + IPR + IRQ pending/ack/clear register + 0x04 + + + SCR + IRQ source register + 0x08 + + + + + + + MTIME + Machine timer + MTIME + 0xFFFFFF90 + + + 0 + 0x10 + registers + + + + + TIME_LO + System time register - low + 0x00 + + + TIME_HI + System time register - high + 0x04 + + + TIMECMP_LO + Time compare register - low + 0x08 + + + TIMECMP_HI + Time compare register - high + 0x0C + + + + + + + UART0 + Primary universal asynchronous receiver and transmitter + UART0 + 0xFFFFFFA0 + + UART0_RX_FIRQ2 + UART0_TX_FIRQ3 + + + 0 + 0x08 + registers + + + + + CTRL + Control register + 0x00 + + + UART_CTRL_BAUD + [11:0] + Baud rate divisor + + + UART_CTRL_SIM_MODE + [12:12] + Simulation output override enable, for use in simulation only + + + UART_CTRL_RX_EMPTY + [13:13] + read-only + RX FIFO is empty + + + UART_CTRL_RX_HALF + [14:14] + read-only + RX FIFO is at least half-full + + + UART_CTRL_RX_FULL + [15:15] + read-only + RX FIFO is full + + + UART_CTRL_TX_EMPTY + [16:16] + read-only + TX FIFO is empty + + + UART_CTRL_TX_HALF + [17:17] + read-only + TX FIFO is at least half-full + + + UART_CTRL_TX_FULL + [18:18] + read-only + TX FIFO is full + + + UART_CTRL_RTS_EN + [20:20] + Enable hardware flow control: Assert RTS output if UART.RX is ready to receive + + + UART_CTRL_CTS_EN + [21:21] + Enable hardware flow control: UART.TX starts sending only if CTS input is asserted + + + UART_CTRL_PMODE0 + [22:22] + Parity configuration (0=even; 1=odd) + + + UART_CTRL_PMODE1 + [23:23] + Parity bit enabled when set + + + UART_CTRL_PRSC + [26:24] + Clock prescaler select + + + UART_CTRL_CTS + [27:27] + read-only + current state of CTS input + + + UART_CTRL_EN + [28:28] + UART enable flag + + + UART_CTRL_RX_IRQ + [29:29] + RX IRQ mode: 1=FIFO at least half-full; 0=FIFO not empty + + + UART_CTRL_TX_IRQ + [30:30] + TX IRQ mode: 1=FIFO less than half-full; 0=FIFO not full + + + UART_CTRL_TX_BUSY + [31:31] + read-only + Transmitter is busy when set + + + + + DATA + RX/TX data register + 0x04 + + + UART_DATA + [7:0] + Receive/transmit data + + + UART_DATA_PERR + [28:28] + read-only + RX parity error detected when set + + + UART_DATA_FERR + [29:29] + read-only + RX frame error (no valid stop bit) detected when set + + + UART_DATA_OVERR + [30:30] + read-only + RX parity error detected when set + + + UART_DATA_AVAIL + [31:31] + read-only + RX data available when set + + + + + + + + + UART1 + Secondary universal asynchronous receiver and transmitter + UART1 + 0xFFFFFFD0 + + UART1_RX_FIRQ4 + UART1_TX_FIRQ5 + + + 0 + 0x08 + registers + + + + + + + SPI + Serial peripheral interface controller + SPI + 0xFFFFFFA8 + + SPI_FIRQ6 + + + 0 + 0x08 + registers + + + + + CTRL + Control register + 0x00 + + + SPI_CTRL_CS + [7:0] + Direct chip select line + + + SPI_CTRL_EN + [8:8] + SPI enable flag + + + SPI_CTRL_CPHA + [9:9] + Clock phase + + + SPI_CTRL_PRSC + [12:10] + Clock prescaler select + + + SPI_CTRL_SIZE + [14:13] + Data transfer size + + + SPI_CTRL_CPOL + [15:15] + Clock polarity + + + SPI_CTRL_BUSY + [31:31] + read-only + SPI busy flag + + + + + DATA + RX/TX data register + 0x04 + + + + + + + TWI + Two-wire interface controller + SPI + 0xFFFFFFB0 + + TWI_FIRQ7 + + + 0 + 0x08 + registers + + + + + CTRL + Control register + 0x00 + + + TWI_CTRL_EN + [0:0] + TWI enable flag + + + TWI_CTRL_START + [1:1] + Generate START condition, auto-clears + + + TWI_CTRL_STOP + [2:2] + Generate STOP condition, auto-clears + + + TWI_CTRL_PRSC + [5:3] + Clock prescaler select + + + TWI_CTRL_MACK + [6:6] + Generate ACK by controller for each transmission + + + TWI_CTRL_ACK + [30:30] + read-only + ACK received when set + + + TWI_CTRL_BUSY + [31:31] + read-only + Transfer in progress, busy flag + + + + + DATA + RX/TX data register + 0x04 + + + TWI_DATA + [7:0] + RX/TX data + + + + + + + + + TRNG + True random number generator + TRNG + 0xFFFFFFB8 + + + 0 + 0x04 + registers + + + + + CTRL + Control and data register + 0x00 + + + TRNG_CTRL_DATA + [7:0] + read-only + Random data + + + TRNG_CTRL_EN + [30:30] + TRNG enable flag + + + TRNG_CTRL_VALID + [31:31] + read-only + Random data output valid + + + + + + + + + WDT + Watchdog timer + WDT + 0xFFFFFFBC + + WDT_FIRQ0 + + + 0 + 0x04 + registers + + + + + CTRL + Control register + 0x00 + + + WDT_CTRL_EN + [0:0] + WDT enable flag + + + WDT_CTRL_CLK_SEL + [3:1] + Clock prescaler select + + + WDT_CTRL_MODE + [4:4] + Watchdog mode: 0=timeout causes interrupt, 1=timeout causes processor reset + + + WDT_CTRL_RCAUSE + [5:5] + read-only + Cause of last system reset: 0=external reset, 1=watchdog + + + WDT_CTRL_RESET + [6:6] + Reset WDT counter when set, auto-clears + + + WDT_CTRL_FORCE + [7:7] + Force WDT action, auto-clears + + + WDT_CTRL_LOCK + [8:8] + Lock write access to control register, clears on reset (HW or WDT) only + + + WDT_CTRL_DBEN + [9:9] + Allow WDT to continue operation even when in debug mode + + + WDT_CTRL_HALF + [10:10] + read-only + Set if at least half of the max. timeout counter value has been reached + + + + + + + + + GPIO + General purpose input/output port + GPIO + 0xFFFFFFc0 + + + 0 + 0x10 + registers + + + + + INPUT_LO + Parallel input register - low + 0x00 + read-only + + + INPUT_HI + Parallel input register - high + 0x04 + read-only + + + OUTPUT_LO + Parallel output register - low + 0x08 + + + OUTPUT_HI + Parallel output register - high + 0x0C + + + + + + + NEOLED + Smart LED hardware interface + NEOLED + 0xFFFFFFD8 + + NEOLED_FIRQ9 + + + 0 + 0x08 + registers + + + + + CTRL + Control register + 0x00 + + + NEOLED_CTRL_EN + [0:0] + NEOLED enable flag + + + NEOLED_CTRL_MODE + [1:1] + TX mode (0=24-bit, 1=32-bit) + + + NEOLED_CTRL_STROBE + [2:2] + Strobe (0=send normal data, 1=send RESET command on data write) + + + NEOLED_CTRL_PRSC + [5:3] + Clock prescaler select + + + NEOLED_CTRL_BUFS + [9:6] + read-only + log2(tx buffer size) + + + NEOLED_CTRL_T_TOT + [14:10] + pulse-clock ticks per total period bit + + + NEOLED_CTRL_T_ZERO_H + [19:15] + pulse-clock ticks per ZERO high-time + + + NEOLED_CTRL_T_ONE_H + [24:20] + pulse-clock ticks per ONE high-time + + + NEOLED_CTRL_IRQ_CONF + [27:27] + TX FIFO interrupt: 0=IRQ if FIFO is less than half-full, 1=IRQ if FIFO is empty + + + NEOLED_CTRL_TX_EMPTY + [28:28] + read-only + TX FIFO is empty + + + NEOLED_CTRL_TX_HALF + [29:29] + read-only + TX FIFO is at least half-full + + + NEOLED_CTRL_TX_FULL + [30:30] + read-only + TX FIFO is full + + + NEOLED_CTRL_TX_BUSY + [31:31] + read-only + busy flag + + + + + DATA + Data register + 0x04 + + + + + + + SYSINFO + System configuration information memory + SYSINFO + 0xFFFFFFE0 + + + 0 + 0x20 + registers + + + + + CLK + Clock speed in Hz + 0x00 + read-only + + + CPU + CPU core features + 0x04 + read-only + + SYSINFO_CPU_ZICSR[0:0]Zicsr extension (I sub-extension) available when set + SYSINFO_CPU_ZIFENCEI[1:1]Zifencei extension (I sub-extension) available when set + SYSINFO_CPU_ZMMUL[2:2]Zmmul extension (M sub-extension) available when set + SYSINFO_CPU_ZFINX[5:5]Zfinx extension (F sub-/alternative-extension) available when set + SYSINFO_CPU_ZXSCNT[6:6]Custom extension - Small CPU counters + SYSINFO_CPU_ZICNTR[7:7]Basic CPU counters available when set + SYSINFO_CPU_PMP[8:8]PMP (physical memory protection) extension available when set + SYSINFO_CPU_ZIHPM[9:9]HPM (hardware performance monitors) extension available when set + SYSINFO_CPU_DEBUGMODE[10:10]RISC-V CPU debug mode available when set + SYSINFO_CPU_FASTMUL[30:30]fast multiplications (via FAST_MUL_EN generic) available when set + SYSINFO_CPU_FASTSHIFT[31:31]fast shifts (via FAST_SHIFT_EN generic) available when set + + + + SOC + SoC features + 0x08 + read-only + + SYSINFO_SOC_BOOTLOADER[0:0]Bootloader implemented + SYSINFO_SOC_MEM_EXT[1:1]External bus interface implemented + SYSINFO_SOC_MEM_INT_IMEM[2:2]Processor-internal instruction memory implemented + SYSINFO_SOC_MEM_INT_DMEM[3:3]Processor-internal data memory implemented + SYSINFO_SOC_MEM_EXT_ENDIAN[4:4]External bus interface uses BIG-endian byte-order + SYSINFO_SOC_ICACHE[5:5]Processor-internal instruction cache implemented + SYSINFO_SOC_IS_SIM[13:13]Set if processor is being simulated + SYSINFO_SOC_OCD[14:14]On-chip debugger implemented + SYSINFO_SOC_HW_RESET[15:15]Dedicated hardware reset of core registers implemented + SYSINFO_SOC_IO_GPIO[16:16]General purpose input/output port unit implemented + SYSINFO_SOC_IO_MTIME[17:17]Machine system timer implemented + SYSINFO_SOC_IO_UART0[18:18]Primary universal asynchronous receiver/transmitter 0 implemented + SYSINFO_SOC_IO_SPI[19:19]Serial peripheral interface implemented + SYSINFO_SOC_IO_TWI[20:20]Two-wire interface implemented + SYSINFO_SOC_IO_PWM[21:21]Pulse-width modulation unit implemented + SYSINFO_SOC_IO_WDT[22:22]Watchdog timer implemented + SYSINFO_SOC_IO_CFS[23:23]Custom functions subsystem implemented + SYSINFO_SOC_IO_TRNG[24:24]True random number generator implemented + SYSINFO_SOC_IO_SLINK[25:25]Stream link interface implemented + SYSINFO_SOC_IO_UART1[26:26]Secondary universal asynchronous receiver/transmitter 1 implemented + SYSINFO_SOC_IO_NEOLED[27:27]NeoPixel-compatible smart LED interface implemented + SYSINFO_SOC_IO_XIRQ[28:28]External interrupt controller implemented + SYSINFO_SOC_IO_GPTMR[29:29]General purpose timer implemented + + + + CACHE + Cache configuration + 0x0C + read-only + + SYSINFO_CACHE_IC_BLOCK_SIZE[3:0]i-cache: log2(Block size in bytes) + SYSINFO_CACHE_IC_NUM_BLOCKS[7:4]i-cache: log2(Number of cache blocks/pages/lines) + SYSINFO_CACHE_IC_ASSOCIATIVITY[11:8]i-cache: log2(associativity) + SYSINFO_CACHE_IC_REPLACEMENT[15:12]i-cache: replacement policy (0001 = LRU if associativity > 0) + + + + ISPACE_BASE + Instruction memory address space base address + 0x10 + read-only + + + DSPACE_BASE + Data memory address space base address + 0x14 + read-only + + + IMEM_SIZE + Internal instruction memory (IMEM) size in bytes + 0x18 + read-only + + + DMEM_SIZE + Internal data memory (DMEM) size in bytes + 0x1C + read-only + + + + + + diff --git a/Libs/RiscV/NEORV32_test/hdl/.gitkeep b/Libs/RiscV/NEORV32_test/hdl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Libs/RiscV/NEORV32_test/hds/.gitkeep b/Libs/RiscV/NEORV32_test/hds/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Libs/RiscV_test/NEORV32_test/README.md b/Libs/RiscV_test/NEORV32_test/README.md new file mode 100644 index 0000000..8dddbc3 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/README.md @@ -0,0 +1,58 @@ +# Simulation Source Folder + + +## [simple](simple) + +Simple testbench for the NEORV32 Processor and script for simulation using GHDL. + +- [`ghdl.setup.sh`](simple/ghdl.setup.sh) +- [`ghdl.run.sh`](simple/ghdl.run.sh) +- [`ghdl.sh`](simple/ghdl.sh) +- [`neorv32_tb.simple.vhd`](simple/neorv32_tb.simple.vhd) +- [`neorv32_imem.simple.vhd`](simple/neorv32_imem.simple.vhd): memory component optimized for simulation. +- [`neorv32_imem.iram.simple.vhd`](simple/neorv32_imem.iram.simple.vhd) +- [`uart_rx.simple.vhd`](simple/uart_rx.simple.vhd) + + +## VUnit testbench + +VUnit testbench for the NEORV32 Processor. + +- [`run.py`](run.py) +- [`neorv32_tb.vhd`](neorv32_tb.vhd) +- [`uart_rx_pkg.vhd`](uart_rx_pkg.vhd) +- [`uart_rx.vhd`](uart_rx.vhd) + + +## [`run_riscv_arch_test.sh`](run_riscv_arch_test.sh): NEORV32 RISC-V Architecture Test Framework + +This script tests the NEORV32 Processor for RISC-V compatibility using the +[official RISC-V architecture test suite v2+](https://github.com/riscv/riscv-arch-test). +The core's HDL sources are *simulated* using `GHDL` to provide a virtual execution platform for the test framework: + +* `rv32i_m/C` - compressed instructions +* `rv32i_m/I` - base ISA +* `rv32i_m/M` - hardware integer multiplication and division +* `rv32i_m/privilege` - privileged architecture +* `rv32i_m/Zifencei` - instruction stream synchronization (for example for self-modifying code) + +:warning: The RISC-V GCC toolchain (`riscv{32|64}-unknown-elf`) is required for program compilation, and the simulation + depends on `simple/ghdl_sim.sh`. + +To execute all the supported tests open a terminal and run [`./sim/run_riscv_arch_test.sh`](run_riscv_arch_test.sh), +which does the following: + +* Make a local copy of the NEORV32 `rtl` folder in `work/`, to keep the project's core files clean. +* Clone (as `git submodule`) the [riscv-arch-test repository](https://github.com/riscv/riscv-arch-test) into `sw/isa-test/riscv-arch-test`. +* Install (copy) the custom `neorv32` test target from `sw/isa-test/port-neorv32` to the +test suite's target folder `work/riscv-arch-test/riscv-target/neorv32`. +* Run the actual tests. + +:warning: Simulating all the test cases takes quite some time. Some tests use an optimised description of IMEM + (`neorv32_imem.simple.vhd`), but others require the original because they execute self-modifying code. + +:warning: If the simulation of a test does not generate any signature output at all or if the signature is truncated, +try increasing the simulation time by modiying the `SIM_TIME` variable when calling the test makefiles in `run_riscv_arch_test.sh`. + +More datails regarding the actual simulation process can be found in the +[target's `README`](../sw/riscv-arch-test/port-neorv32/framework_v2.0/riscv-target/neorv32/README.md). diff --git a/Libs/RiscV_test/NEORV32_test/neorv32_tb.vhd b/Libs/RiscV_test/NEORV32_test/neorv32_tb.vhd new file mode 100644 index 0000000..df9cba3 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/neorv32_tb.vhd @@ -0,0 +1,685 @@ +-- ################################################################################################# +-- # << NEORV32 - Default Processor Testbench >> # +-- # ********************************************************************************************* # +-- # The processor is configured to use a maximum of functional units (for testing purpose). # +-- # Use the "User Configuration" section to configure the testbench according to your needs. # +-- # See NEORV32 data sheet for more information. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library vunit_lib; +context vunit_lib.vunit_context; +context vunit_lib.com_context; +context vunit_lib.vc_context; + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use ieee.math_real.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_application_image.all; -- this file is generated by the image generator +use std.textio.all; + +library osvvm; +use osvvm.RandomPkg.all; + +use work.uart_rx_pkg.all; + +entity neorv32_tb is + generic (runner_cfg : string := runner_cfg_default; + ci_mode : boolean := false); +end neorv32_tb; + +architecture neorv32_tb_rtl of neorv32_tb is + + -- User Configuration --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- general -- + constant ext_imem_c : boolean := false; -- false: use and boot from proc-internal IMEM, true: use and boot from external (initialized) simulated IMEM (ext. mem A) + constant ext_dmem_c : boolean := false; -- false: use proc-internal DMEM, true: use external simulated DMEM (ext. mem B) + constant imem_size_c : natural := 16*1024; -- size in bytes of processor-internal IMEM / external mem A + constant dmem_size_c : natural := 8*1024; -- size in bytes of processor-internal DMEM / external mem B + constant f_clock_c : natural := 100000000; -- main clock in Hz + constant baud0_rate_c : natural := 19200; -- simulation UART0 (primary UART) baud rate + constant baud1_rate_c : natural := 19200; -- simulation UART1 (secondary UART) baud rate + -- simulated external Wishbone memory A (can be used as external IMEM) -- + constant ext_mem_a_base_addr_c : std_ulogic_vector(31 downto 0) := x"00000000"; -- wishbone memory base address (external IMEM base) + constant ext_mem_a_size_c : natural := imem_size_c; -- wishbone memory size in bytes + constant ext_mem_a_latency_c : natural := 8; -- latency in clock cycles (min 1, max 255), plus 1 cycle initial delay + -- simulated external Wishbone memory B (can be used as external DMEM) -- + constant ext_mem_b_base_addr_c : std_ulogic_vector(31 downto 0) := x"80000000"; -- wishbone memory base address (external DMEM base) + constant ext_mem_b_size_c : natural := dmem_size_c; -- wishbone memory size in bytes + constant ext_mem_b_latency_c : natural := 8; -- latency in clock cycles (min 1, max 255), plus 1 cycle initial delay + -- simulated external Wishbone memory C (can be used to simulate external IO access) -- + constant ext_mem_c_base_addr_c : std_ulogic_vector(31 downto 0) := x"F0000000"; -- wishbone memory base address (default begin of EXTERNAL IO area) + constant ext_mem_c_size_c : natural := 64; -- wishbone memory size in bytes + constant ext_mem_c_latency_c : natural := 3; -- latency in clock cycles (min 1, max 255), plus 1 cycle initial delay + -- simulation interrupt trigger -- + constant irq_trigger_base_addr_c : std_ulogic_vector(31 downto 0) := x"FF000000"; + -- ------------------------------------------------------------------------------------------- + + -- internals - hands off! -- + constant int_imem_c : boolean := not ext_imem_c; + constant int_dmem_c : boolean := not ext_dmem_c; + constant uart0_baud_val_c : real := real(f_clock_c) / real(baud0_rate_c); + constant uart1_baud_val_c : real := real(f_clock_c) / real(baud1_rate_c); + constant t_clock_c : time := (1 sec) / f_clock_c; + + -- generators -- + signal clk_gen, rst_gen : std_ulogic := '0'; + + -- uart -- + signal uart0_txd : std_ulogic; -- local loop-back + signal uart0_cts : std_ulogic; -- local loop-back + signal uart1_txd : std_ulogic; -- local loop-back + signal uart1_cts : std_ulogic; -- local loop-back + + -- gpio -- + signal gpio : std_ulogic_vector(63 downto 0); + + -- twi -- + signal twi_scl, twi_sda : std_logic; + + -- spi -- + signal spi_data : std_ulogic; + + -- irq -- + signal msi_ring, mei_ring : std_ulogic; + + -- Wishbone bus -- + type wishbone_t is record + addr : std_ulogic_vector(31 downto 0); -- address + wdata : std_ulogic_vector(31 downto 0); -- master write data + rdata : std_ulogic_vector(31 downto 0); -- master read data + we : std_ulogic; -- write enable + sel : std_ulogic_vector(03 downto 0); -- byte enable + stb : std_ulogic; -- strobe + cyc : std_ulogic; -- valid cycle + ack : std_ulogic; -- transfer acknowledge + err : std_ulogic; -- transfer error + tag : std_ulogic_vector(02 downto 0); -- request tag + lock : std_ulogic; -- exclusive access request + end record; + signal wb_cpu, wb_mem_a, wb_mem_b, wb_mem_c, wb_irq : wishbone_t; + + -- Wishbone access latency type -- + type ext_mem_read_latency_t is array (0 to 255) of std_ulogic_vector(31 downto 0); + + -- exclusive access / reservation -- + signal ext_mem_c_atomic_reservation : std_ulogic := '0'; + + -- simulated external memory c (IO) -- + signal ext_ram_c : mem32_t(0 to ext_mem_c_size_c/4-1); -- uninitialized, used to simulate external IO + + -- simulated external memory bus feedback type -- + type ext_mem_t is record + rdata : ext_mem_read_latency_t; + acc_en : std_ulogic; + ack : std_ulogic_vector(ext_mem_a_latency_c-1 downto 0); + end record; + signal ext_mem_a, ext_mem_b, ext_mem_c : ext_mem_t; + + -- stream link interface - local echo -- + signal slink_dat : sdata_8x32_t; + signal slink_val : std_ulogic_vector(7 downto 0); + signal slink_rdy : std_ulogic_vector(7 downto 0); + + signal slink_transmitter_dat, slink_receiver_dat : sdata_8x32_t; + signal slink_transmitter_val, slink_receiver_val : std_ulogic_vector(7 downto 0); + signal slink_transmitter_rdy, slink_receiver_rdy : std_ulogic_vector(7 downto 0); + + constant uart0_rx_logger : logger_t := get_logger("UART0.RX"); + constant uart1_rx_logger : logger_t := get_logger("UART1.RX"); + constant uart0_rx_handle : uart_rx_t := new_uart_rx(uart0_baud_val_c, uart0_rx_logger); + constant uart1_rx_handle : uart_rx_t := new_uart_rx(uart1_baud_val_c, uart1_rx_logger); + + type axi_stream_master_vec_t is array(integer range <>) of axi_stream_master_t; + type axi_stream_slave_vec_t is array(integer range <>) of axi_stream_slave_t; + + impure function init_slink_transmitters return axi_stream_master_vec_t is + variable result : axi_stream_master_vec_t(slink_transmitter_val'range); + begin + for idx in result'range loop + result(idx) := new_axi_stream_master( + data_length => slink_transmitter_dat(idx)'length, + stall_config => new_stall_config(0.05, 1, 10) + ); + end loop; + + return result; + end; + + impure function init_slink_receivers return axi_stream_slave_vec_t is + variable result : axi_stream_slave_vec_t(slink_receiver_val'range); + begin + for idx in result'range loop + result(idx) := new_axi_stream_slave( + data_length => slink_receiver_dat(idx)'length, + stall_config => new_stall_config(0.05, 1, 10) + ); + end loop; + + return result; + end; + + constant slink_transmitters : axi_stream_master_vec_t := init_slink_transmitters; + constant slink_receivers : axi_stream_slave_vec_t := init_slink_receivers; + +begin + test_runner : process + variable msg : msg_t; + variable rnd : RandomPType; + variable value : std_logic_vector(slink_transmitter_dat(0)'range); + begin + test_runner_setup(runner, runner_cfg); + + rnd.InitSeed(test_runner'path_name); + + -- Show passing checks for UART0 on the display (stdout) + show(uart0_rx_logger, display_handler, pass); + show(uart1_rx_logger, display_handler, pass); + + if ci_mode then + check_uart(net, uart0_rx_handle, nul & nul); + else + check_uart(net, uart0_rx_handle, "Blinking LED demo program" & cr & lf); + end if; + + if ci_mode then + -- No need to send the full expectation in one big chunk + check_uart(net, uart1_rx_handle, nul & nul); + check_uart(net, uart1_rx_handle, "0/46" & cr & lf); + end if; + + -- Apply some random data on each SLINK inputs and expect it to + -- be echoed by the CPU. No blocking. Let the SLINK transmitters + -- and receivers do this work in parallel. + for idx in slink_transmitters'range loop + for iter in 1 to 100 loop + value := rnd.RandSlv(value'length); + + -- SLINK is AXI Stream compatible so the SLINK transmitters and + -- and receivers are AXI Stream master and slave verification components (VCs). + -- The full-featured AXI Stream verification component interface (VCI) is used + -- but the AXI stream VCs also implements the basic stream VCI which also works + -- for simple transactions like these. To use that interface for pushing data + -- the AXI Steam VC must be "cast" to a basic stream VC using "as_stream" + -- + -- push_stream(net, as_stream(slink_transmitters(idx)), value); + + push_axi_stream(net, slink_transmitters(idx), value); + check_axi_stream(net, slink_receivers(idx), value, blocking => false); + end loop; + end loop; + + -- Wait until all expected data has been received + -- + -- wait_until_idle can take the VC actor as argument but + -- the more abstract view is that wait_until_idle is part + -- of the sync VCI and to use it a VC must be cast + -- to a sync VC + wait_until_idle(net, as_sync(uart0_rx_handle)); + wait_until_idle(net, as_sync(uart1_rx_handle)); + for idx in slink_receivers'range loop + wait_until_idle(net, as_sync(slink_receivers(idx))); + end loop; + + -- Wait a bit more if some extra unexpected data is produced. If so, + -- uart_rx will fail + wait for (20 * (1e9 / baud0_rate_c)) * ns; + + test_runner_cleanup(runner); + end process; + + -- In case we get stuck waiting there is a watchdog timeout to terminate and fail the + -- testbench + test_runner_watchdog(runner, 50 ms); + + -- Clock/Reset Generator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + clk_gen <= not clk_gen after (t_clock_c/2); + rst_gen <= '0', '1' after 60*(t_clock_c/2); + + + -- The Core of the Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + HW_THREAD_ID => 0, -- hardware thread id (hartid) (32-bit) + INT_BOOTLOADER_EN => false, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => true, -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => true, -- implement atomic extension? + CPU_EXTENSION_RISCV_B => true, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C => true, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => false, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => true, -- implement muld/div extension? + CPU_EXTENSION_RISCV_U => true, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => true, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => true, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => true, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => true, -- implement instruction stream sync.? + -- Extension Options -- + FAST_MUL_EN => false, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => false, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => 64, -- total width of CPU cycle and instret counters (0..64) + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => 8, -- number of regions (0..64) + PMP_MIN_GRANULARITY => 64*1024, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => 12, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => 40, -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => int_imem_c , -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => imem_size_c, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => int_dmem_c, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => dmem_size_c, -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN => true, -- implement instruction cache + ICACHE_NUM_BLOCKS => 8, -- i-cache: number of blocks (min 2), has to be a power of 2 + ICACHE_BLOCK_SIZE => 64, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => 2, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface -- + MEM_EXT_EN => true, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 256, -- cycles after a pending bus access auto-terminates (0 = disabled) + -- Stream link interface -- + SLINK_NUM_TX => 8, -- number of TX links (0..8) + SLINK_NUM_RX => 8, -- number of TX links (0..8) + SLINK_TX_FIFO => 4, -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO => 1, -- RX fifo depth, has to be a power of two + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH => 32, -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE => (others => '1'), -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY => (others => '1'), -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN => true, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true, -- implement machine system timer (MTIME)? + IO_UART0_EN => true, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO => 32, -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO => 32, -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN => true, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO => 1, -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO => 1, -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN => true, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => true, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => 30, -- number of PWM channels to implement (0..60); 0 = disabled + 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_IN_SIZE => 32, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => 32, -- size of CFS output conduit in bits + IO_NEOLED_EN => true, -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO => 8, -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN => true -- implement general purpose timer (GPTMR)? + ) + port map ( + -- Global control -- + clk_i => clk_gen, -- global clock, rising edge + rstn_i => rst_gen, -- global reset, low-active, async + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => '1', -- low-active TAP reset (optional) + jtag_tck_i => '0', -- serial clock + jtag_tdi_i => '0', -- serial data input + jtag_tdo_o => open, -- serial data output + jtag_tms_i => '0', -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => wb_cpu.tag, -- request tag + wb_adr_o => wb_cpu.addr, -- address + wb_dat_i => wb_cpu.rdata, -- read data + wb_dat_o => wb_cpu.wdata, -- write data + wb_we_o => wb_cpu.we, -- read/write + wb_sel_o => wb_cpu.sel, -- byte enable + wb_stb_o => wb_cpu.stb, -- strobe + wb_cyc_o => wb_cpu.cyc, -- valid cycle + wb_lock_o => wb_cpu.lock, -- exclusive access request + wb_ack_i => wb_cpu.ack, -- transfer acknowledge + wb_err_i => wb_cpu.err, -- transfer error + -- 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 + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o => slink_dat, -- output data + slink_tx_val_o => slink_val, -- valid output + slink_tx_rdy_i => slink_rdy, -- ready to send + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i => slink_dat, -- input data + slink_rx_val_i => slink_val, -- valid input + slink_rx_rdy_o => slink_rdy, -- ready to receive + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => gpio, -- parallel output + gpio_i => gpio, -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd, -- UART0 send data + uart0_rxd_i => uart0_txd, -- UART0 receive data + uart0_rts_o => uart0_cts, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => uart0_cts, -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => uart1_txd, -- UART1 send data + uart1_rxd_i => uart1_txd, -- UART1 receive data + uart1_rts_o => uart1_cts, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => uart1_cts, -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- 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 (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 (available if IO_PWM_NUM_CH > 0) -- + pwm_o => open, -- pwm channels + -- Custom Functions Subsystem IO -- + cfs_in_i => (others => '0'), -- custom CFS inputs + cfs_out_o => open, -- custom CFS outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => open, -- async serial data line + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i => gpio(31 downto 0), -- IRQ channels + -- CPU Interrupts -- + mtime_irq_i => '0', -- machine software interrupt, available if IO_MTIME_EN = false + msw_irq_i => msi_ring, -- machine software interrupt + mext_irq_i => mei_ring -- machine external interrupt + ); + + -- TWI termination (pull-ups) -- + twi_scl <= 'H'; + twi_sda <= 'H'; + + uart0_checker: entity work.uart_rx + generic map (uart0_rx_handle) + port map ( + clk => clk_gen, + uart_txd => uart0_txd); + + uart1_checker: entity work.uart_rx + generic map (uart1_rx_handle) + port map ( + clk => clk_gen, + uart_txd => uart1_txd); + + slink_transmitters_gen: for idx in slink_transmitters'range generate + slink_transmitter : entity vunit_lib.axi_stream_master + generic map( + master => slink_transmitters(idx) + ) + port map( + aclk => clk_gen, + tvalid => slink_transmitter_val(idx), + tready => slink_transmitter_rdy(idx), + std_ulogic_vector(tdata) => slink_transmitter_dat(idx) + ); + end generate; + + slink_receivers_gen: for idx in slink_receivers'range generate + begin + slink_receiver : entity vunit_lib.axi_stream_slave + generic map( + slave => slink_receivers(idx) + ) + port map( + aclk => clk_gen, + tvalid => slink_receiver_val(idx), + tready => slink_receiver_rdy(idx), + tdata => std_logic_vector(slink_receiver_dat(idx)) + ); + end generate; + + -- TODO: connect these to the CPU SLINK interface once the + -- loopback SW has been implemented + temporary_connection : for idx in slink_transmitters'range generate + slink_receiver_val(idx) <= slink_transmitter_val(idx); + slink_transmitter_rdy(idx) <= slink_receiver_rdy(idx); + slink_receiver_dat(idx) <= slink_transmitter_dat(idx); + end generate; + + + -- Wishbone Fabric ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- CPU broadcast signals -- + wb_mem_a.addr <= wb_cpu.addr; + wb_mem_a.wdata <= wb_cpu.wdata; + wb_mem_a.we <= wb_cpu.we; + wb_mem_a.sel <= wb_cpu.sel; + wb_mem_a.tag <= wb_cpu.tag; + wb_mem_a.cyc <= wb_cpu.cyc; + wb_mem_a.lock <= wb_cpu.lock; + + wb_mem_b.addr <= wb_cpu.addr; + wb_mem_b.wdata <= wb_cpu.wdata; + wb_mem_b.we <= wb_cpu.we; + wb_mem_b.sel <= wb_cpu.sel; + wb_mem_b.tag <= wb_cpu.tag; + wb_mem_b.cyc <= wb_cpu.cyc; + wb_mem_b.lock <= wb_cpu.lock; + + wb_mem_c.addr <= wb_cpu.addr; + wb_mem_c.wdata <= wb_cpu.wdata; + wb_mem_c.we <= wb_cpu.we; + wb_mem_c.sel <= wb_cpu.sel; + wb_mem_c.tag <= wb_cpu.tag; + wb_mem_c.cyc <= wb_cpu.cyc; + wb_mem_c.lock <= wb_cpu.lock; + + wb_irq.addr <= wb_cpu.addr; + wb_irq.wdata <= wb_cpu.wdata; + wb_irq.we <= wb_cpu.we; + wb_irq.sel <= wb_cpu.sel; + wb_irq.tag <= wb_cpu.tag; + wb_irq.cyc <= wb_cpu.cyc; + + -- CPU read-back signals (no mux here since peripherals have "output gates") -- + wb_cpu.rdata <= wb_mem_a.rdata or wb_mem_b.rdata or wb_mem_c.rdata or wb_irq.rdata; + wb_cpu.ack <= wb_mem_a.ack or wb_mem_b.ack or wb_mem_c.ack or wb_irq.ack; + wb_cpu.err <= wb_mem_a.err or wb_mem_b.err or wb_mem_c.err or wb_irq.err; + + -- peripheral select via STROBE signal -- + wb_mem_a.stb <= wb_cpu.stb when (wb_cpu.addr >= ext_mem_a_base_addr_c) and (wb_cpu.addr < std_ulogic_vector(unsigned(ext_mem_a_base_addr_c) + ext_mem_a_size_c)) else '0'; + wb_mem_b.stb <= wb_cpu.stb when (wb_cpu.addr >= ext_mem_b_base_addr_c) and (wb_cpu.addr < std_ulogic_vector(unsigned(ext_mem_b_base_addr_c) + ext_mem_b_size_c)) else '0'; + wb_mem_c.stb <= wb_cpu.stb when (wb_cpu.addr >= ext_mem_c_base_addr_c) and (wb_cpu.addr < std_ulogic_vector(unsigned(ext_mem_c_base_addr_c) + ext_mem_c_size_c)) else '0'; + wb_irq.stb <= wb_cpu.stb when (wb_cpu.addr = irq_trigger_base_addr_c) else '0'; + + + -- Wishbone Memory A (simulated external IMEM) -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + generate_ext_imem: + if ext_imem_c generate + ext_mem_a_access: process(clk_gen) + variable ext_ram_a : mem32_t(0 to ext_mem_a_size_c/4-1) := mem32_init_f(application_init_image, ext_mem_a_size_c/4); -- initialized, used to simulate external IMEM + begin + if rising_edge(clk_gen) then + -- control -- + ext_mem_a.ack(0) <= wb_mem_a.cyc and wb_mem_a.stb; -- wishbone acknowledge + + -- write access -- + if ((wb_mem_a.cyc and wb_mem_a.stb and wb_mem_a.we) = '1') then -- valid write access + for i in 0 to 3 loop + if (wb_mem_a.sel(i) = '1') then + ext_ram_a(to_integer(unsigned(wb_mem_a.addr(index_size_f(ext_mem_a_size_c/4)+1 downto 2))))(7+i*8 downto 0+i*8) := wb_mem_a.wdata(7+i*8 downto 0+i*8); + end if; + end loop; -- i + end if; + + -- read access -- + ext_mem_a.rdata(0) <= ext_ram_a(to_integer(unsigned(wb_mem_a.addr(index_size_f(ext_mem_a_size_c/4)+1 downto 2)))); -- word aligned + -- virtual read and ack latency -- + if (ext_mem_a_latency_c > 1) then + for i in 1 to ext_mem_a_latency_c-1 loop + ext_mem_a.rdata(i) <= ext_mem_a.rdata(i-1); + ext_mem_a.ack(i) <= ext_mem_a.ack(i-1) and wb_mem_a.cyc; + end loop; + end if; + + -- bus output register -- + wb_mem_a.err <= '0'; + if (ext_mem_a.ack(ext_mem_a_latency_c-1) = '1') and (wb_mem_a.cyc = '1') and (wb_mem_a.ack = '0') then + wb_mem_a.rdata <= ext_mem_a.rdata(ext_mem_a_latency_c-1); + wb_mem_a.ack <= '1'; + else + wb_mem_a.rdata <= (others => '0'); + wb_mem_a.ack <= '0'; + end if; + end if; + end process ext_mem_a_access; + end generate; + + generate_ext_imem_false: + if (ext_imem_c = false) generate + wb_mem_a.rdata <= (others => '0'); + wb_mem_a.ack <= '0'; + wb_mem_a.err <= '0'; + end generate; + + + -- Wishbone Memory B (simulated external DMEM) -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ext_mem_b_access: process(clk_gen) + variable ext_ram_b : mem32_t(0 to ext_mem_b_size_c/4-1) := (others => (others => '0')); -- zero, used to simulate external DMEM + begin + if rising_edge(clk_gen) then + -- control -- + ext_mem_b.ack(0) <= wb_mem_b.cyc and wb_mem_b.stb; -- wishbone acknowledge + + -- write access -- + if ((wb_mem_b.cyc and wb_mem_b.stb and wb_mem_b.we) = '1') then -- valid write access + for i in 0 to 3 loop + if (wb_mem_b.sel(i) = '1') then + ext_ram_b(to_integer(unsigned(wb_mem_b.addr(index_size_f(ext_mem_b_size_c/4)+1 downto 2))))(7+i*8 downto 0+i*8) := wb_mem_b.wdata(7+i*8 downto 0+i*8); + end if; + end loop; -- i + end if; + + -- read access -- + ext_mem_b.rdata(0) <= ext_ram_b(to_integer(unsigned(wb_mem_b.addr(index_size_f(ext_mem_b_size_c/4)+1 downto 2)))); -- word aligned + -- virtual read and ack latency -- + if (ext_mem_b_latency_c > 1) then + for i in 1 to ext_mem_b_latency_c-1 loop + ext_mem_b.rdata(i) <= ext_mem_b.rdata(i-1); + ext_mem_b.ack(i) <= ext_mem_b.ack(i-1) and wb_mem_b.cyc; + end loop; + end if; + + -- bus output register -- + wb_mem_b.err <= '0'; + if (ext_mem_b.ack(ext_mem_b_latency_c-1) = '1') and (wb_mem_b.cyc = '1') and (wb_mem_b.ack = '0') then + wb_mem_b.rdata <= ext_mem_b.rdata(ext_mem_b_latency_c-1); + wb_mem_b.ack <= '1'; + else + wb_mem_b.rdata <= (others => '0'); + wb_mem_b.ack <= '0'; + end if; + end if; + end process ext_mem_b_access; + + + -- Wishbone Memory C (simulated external IO) ---------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ext_mem_c_access: process(clk_gen) + begin + if rising_edge(clk_gen) then + -- control -- + ext_mem_c.ack(0) <= wb_mem_c.cyc and wb_mem_c.stb; -- wishbone acknowledge + + -- write access -- + if ((wb_mem_c.cyc and wb_mem_c.stb and wb_mem_c.we) = '1') then -- valid write access + for i in 0 to 3 loop + if (wb_mem_c.sel(i) = '1') then + ext_ram_c(to_integer(unsigned(wb_mem_c.addr(index_size_f(ext_mem_c_size_c/4)+1 downto 2))))(7+i*8 downto 0+i*8) <= wb_mem_c.wdata(7+i*8 downto 0+i*8); + end if; + end loop; -- i + end if; + + -- read access -- + ext_mem_c.rdata(0) <= ext_ram_c(to_integer(unsigned(wb_mem_c.addr(index_size_f(ext_mem_c_size_c/4)+1 downto 2)))); -- word aligned + -- virtual read and ack latency -- + if (ext_mem_c_latency_c > 1) then + for i in 1 to ext_mem_c_latency_c-1 loop + ext_mem_c.rdata(i) <= ext_mem_c.rdata(i-1); + ext_mem_c.ack(i) <= ext_mem_c.ack(i-1) and wb_mem_c.cyc; + end loop; + end if; + + -- EXCLUSIVE bus access ----------------------------------------------------- + -- ----------------------------------------------------------------------------- + -- Since there is only one CPU in this design, the exclusive access reservation in THIS memory CANNOT fail. + -- However, this memory module is used to simulated failing LR/SC accesses. + if ((wb_mem_c.cyc and wb_mem_c.stb) = '1') then -- valid access + ext_mem_c_atomic_reservation <= wb_mem_c.lock; -- make reservation + end if; + -- ----------------------------------------------------------------------------- + + -- bus output register -- + if (ext_mem_c.ack(ext_mem_c_latency_c-1) = '1') and (wb_mem_c.cyc = '1') and (wb_mem_c.ack = '0') then + wb_mem_c.rdata <= ext_mem_c.rdata(ext_mem_c_latency_c-1); + wb_mem_c.ack <= '1'; + wb_mem_c.err <= ext_mem_c_atomic_reservation; -- issue a bus error if there is an exclusive access request + else + wb_mem_c.rdata <= (others => '0'); + wb_mem_c.ack <= '0'; + wb_mem_c.err <= '0'; + end if; + end if; + end process ext_mem_c_access; + + + -- Wishbone IRQ Triggers ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + irq_trigger: process(rst_gen, clk_gen) + begin + if (rst_gen = '0') then + msi_ring <= '0'; + mei_ring <= '0'; + elsif rising_edge(clk_gen) then + -- bus interface -- + wb_irq.rdata <= (others => '0'); + wb_irq.ack <= wb_irq.cyc and wb_irq.stb and wb_irq.we and and_reduce_f(wb_irq.sel); + wb_irq.err <= '0'; + -- trigger RISC-V platform IRQs -- + if ((wb_irq.cyc and wb_irq.stb and wb_irq.we and and_reduce_f(wb_irq.sel)) = '1') then + msi_ring <= wb_irq.wdata(03); -- machine software interrupt + mei_ring <= wb_irq.wdata(11); -- machine software interrupt + end if; + end if; + end process irq_trigger; + + +end neorv32_tb_rtl; diff --git a/Libs/RiscV_test/NEORV32_test/run.py b/Libs/RiscV_test/NEORV32_test/run.py new file mode 100644 index 0000000..426b7d8 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/run.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 + +from pathlib import Path +from vunit import VUnit, VUnitCLI + +cli = VUnitCLI() +cli.parser.add_argument( + "--ci-mode", + action="store_true", + default=False, + help="Enable special settings used by the CI", +) +args = cli.parse_args() + +PRJ = VUnit.from_args(args=args) +PRJ.add_com() +PRJ.add_verification_components() +PRJ.add_osvvm() + +ROOT = Path(__file__).parent + +NEORV32 = PRJ.add_library("neorv32") +NEORV32.add_source_files([ + ROOT / "*.vhd", + ROOT / ".." / "rtl" / "**" / "*.vhd", + # In VUnit <=v4.5.0, the glob search is not recursive, + # hence subdir 'mem' is not picked by the previous pattern + ROOT / ".." / "rtl" / "core" / "mem" / "*.vhd" +]) + +NEORV32.test_bench("neorv32_tb").set_generic("ci_mode", args.ci_mode) + +PRJ.set_sim_option("disable_ieee_warnings", True) +PRJ.set_sim_option("ghdl.sim_flags", ["--max-stack-alloc=256"]) + +PRJ.main() diff --git a/Libs/RiscV_test/NEORV32_test/run_riscv_arch_test.sh b/Libs/RiscV_test/NEORV32_test/run_riscv_arch_test.sh new file mode 100644 index 0000000..fe0c1c5 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/run_riscv_arch_test.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +# Abort if any command returns != 0 +set -e + +cd $(dirname "$0") + +header() { + echo "--------------------------------------------------------------------------" + echo "> $@..." + echo "--------------------------------------------------------------------------" +} + +RISCV_PREFIX="${RISCV_PREFIX:-riscv32-unknown-elf-}" + +header "Checking RISC-V GCC toolchain" +"$RISCV_PREFIX"gcc -v + +header "Checking 'riscv-arch-test' GitHub repository (submodule)" +git submodule update --init + +header "Copying neorv32 test-target into riscv-arch-test framework" +( + cd ../sw/isa-test + target_device='riscv-arch-test/riscv-target/neorv32' + if [ -d "$target_device" ]; then rm -rf "$target_device"; fi + cp -vr port-neorv32 "$target_device" +) + +header "Making local copy of NEORV32 'rtl' and 'sim' folders" + +export NEORV32_LOCAL_RTL=${NEORV32_LOCAL_RTL:-$(pwd)/work} + +rm -rf "$NEORV32_LOCAL_RTL" +cp -r ../rtl "$NEORV32_LOCAL_RTL" + +header "Starting RISC-V architecture tests" + +./simple/ghdl.setup.sh + +# work in progress FIXME +printf "\n\e[1;33mWARNING! 'rv32e/*' tests are work in progress! \e[0m\n\n" + +makeArgs="-C $(pwd)/../sw/isa-test/riscv-arch-test NEORV32_ROOT=$(pwd)/.. XLEN=32 RISCV_TARGET=neorv32" +makeTargets='clean build run verify' + +[ -n "$1" ] && SUITES="$@" || SUITES='I C M privilege Zifencei' + +for suite in $SUITES; do + case "$suite" in + I) make --silent $makeArgs SIM_TIME=850us RISCV_DEVICE=I $makeTargets;; + C) make --silent $makeArgs SIM_TIME=400us RISCV_DEVICE=C $makeTargets;; + M) make --silent $makeArgs SIM_TIME=800us RISCV_DEVICE=M $makeTargets;; + privilege) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=privilege $makeTargets;; + Zifencei) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=Zifencei RISCV_TARGET_FLAGS=-DNEORV32_NO_DATA_INIT $makeTargets;; + + rv32e_C) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=../rv32e_unratified/C $makeTargets;; + rv32e_E) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=../rv32e_unratified/E $makeTargets;; + rv32e_M) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=../rv32e_unratified/M $makeTargets;; + esac +done + +printf "\nRISC-V architecture tests completed successfully" diff --git a/Libs/RiscV_test/NEORV32_test/simple/ghdl.run.sh b/Libs/RiscV_test/NEORV32_test/simple/ghdl.run.sh new file mode 100644 index 0000000..72d6661 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/ghdl.run.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +set -e + +cd $(dirname "$0") + +echo "Tip: Compile application with USER_FLAGS+=-DUART[0/1]_SIM_MODE to auto-enable UART[0/1]'s simulation mode (redirect UART output to simulator console)." + +# Prepare simulation output files for UART0 and UART 1 +# - Testbench receiver log file (neorv32.testbench_uart?.out) +# - Direct simulation output (neorv32.uart?.sim_mode.[text|data].out) +for uart in 0 1; do + for item in \ + testbench_uart"$uart" \ + uart"$uart".sim_mode.text \ + uart"$uart".sim_mode.data; do + touch neorv32."$item".out + chmod 777 neorv32."$item".out + done +done + +GHDL="${GHDL:-ghdl}" + +$GHDL -m --work=neorv32 --workdir=build neorv32_tb_simple + +GHDL_RUN_ARGS="${@:---stop-time=10ms}" +echo "Using simulation runtime args: $GHDL_RUN_ARGS"; + +runcmd="$GHDL -r --work=neorv32 --workdir=build neorv32_tb_simple \ + --max-stack-alloc=0 \ + --ieee-asserts=disable \ + --assert-level=error $GHDL_RUN_ARGS" + +if [ -n "$GHDL_DEVNULL" ]; then + $runcmd >> /dev/null +else + $runcmd +fi + +cat neorv32.uart0.sim_mode.text.out | grep "CPU TEST COMPLETED SUCCESSFULLY!" diff --git a/Libs/RiscV_test/NEORV32_test/simple/ghdl.setup.sh b/Libs/RiscV_test/NEORV32_test/simple/ghdl.setup.sh new file mode 100644 index 0000000..c0f040e --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/ghdl.setup.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -e + +cd $(dirname "$0") + +NEORV32_LOCAL_RTL=${NEORV32_LOCAL_RTL:-../../rtl} + +mkdir -p build + +ghdl -i --work=neorv32 --workdir=build \ + "$NEORV32_LOCAL_RTL"/core/*.vhd \ + "$NEORV32_LOCAL_RTL"/core/mem/*.vhd \ + "$NEORV32_LOCAL_RTL"/processor_templates/*.vhd \ + "$NEORV32_LOCAL_RTL"/system_integration/*.vhd \ + "$NEORV32_LOCAL_RTL"/test_setups/*.vhd \ + neorv32_tb.simple.vhd \ + uart_rx.simple.vhd diff --git a/Libs/RiscV_test/NEORV32_test/simple/ghdl.sh b/Libs/RiscV_test/NEORV32_test/simple/ghdl.sh new file mode 100644 index 0000000..eae1928 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/ghdl.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# `GHDL` is used to check all VHDL files for syntax errors and to simulate the default testbench. The previously +# installed CPU test program is executed and the console output (UART0 primary UART) is dumped to a text file. After the +# simulation has finished, the text file is searched for a specific string. If the string is found, the CPU test was +# successful. + +# Abort if any command returns != 0 +set -e + +cd $(dirname "$0") + +./ghdl.setup.sh +./ghdl.run.sh diff --git a/Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.iram.simple.vhd b/Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.iram.simple.vhd new file mode 100644 index 0000000..cebfd90 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.iram.simple.vhd @@ -0,0 +1,136 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal instruction memory (IMEM) >> # +-- # ********************************************************************************************* # +-- # This version is intended for SIMULATION ONLY! # +-- # It implements the IMEM as pre-initialized RAM. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_application_image.all; -- this file is generated by the image generator + +architecture neorv32_imem_rtl of neorv32_imem is + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(IMEM_SIZE); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal addr : std_ulogic_vector(index_size_f(IMEM_SIZE/4)-1 downto 0); + + -- ---------------------------------------------------- -- + -- << SIMULATION ONLY!!! >> IMEM as pre-initialized RAM -- + -- ---------------------------------------------------- -- + + -- application (image) size in bytes -- + constant imem_app_size_c : natural := (application_init_image'length)*4; + + -- RAM - initialized with executable code -- + signal mem_ram : mem32_t(0 to IMEM_SIZE/4-1) := mem32_init_f(application_init_image, IMEM_SIZE/4); + + -- read data -- + signal mem_ram_rd : std_ulogic_vector(31 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert false report "NEORV32 PROCESSOR CONFIG NOTE: Implementing processor-internal [SIM-only!] IMEM as RAM (" & natural'image(IMEM_SIZE) & + " bytes), pre-initialized with application (" & natural'image(imem_app_size_c) & " bytes)." severity note; + -- + assert not (imem_app_size_c > IMEM_SIZE) report "NEORV32 PROCESSOR CONFIG ERROR: Application (image = " & natural'image(imem_app_size_c) & + " bytes) does not fit into processor-internal IMEM (" & natural'image(IMEM_SIZE) & " bytes)!" severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = IMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(index_size_f(IMEM_SIZE/4)+1 downto 2); -- word aligned + + + -- Implement IMEM as pre-initialized RAM -------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + mem_access: process(clk_i) + begin + if rising_edge(clk_i) then + if (acc_en = '1') then + if (wren_i = '1') and (ben_i(0) = '1') then -- byte 0 + mem_ram(to_integer(unsigned(addr)))(07 downto 00) <= data_i(07 downto 00); + else + mem_ram_rd(07 downto 00) <= mem_ram(to_integer(unsigned(addr)))(07 downto 00); + end if; + if (wren_i = '1') and (ben_i(1) = '1') then -- byte 1 + mem_ram(to_integer(unsigned(addr)))(15 downto 08) <= data_i(15 downto 08); + else + mem_ram_rd(15 downto 08) <= mem_ram(to_integer(unsigned(addr)))(15 downto 08); + end if; + if (wren_i = '1') and (ben_i(2) = '1') then -- byte 2 + mem_ram(to_integer(unsigned(addr)))(23 downto 16) <= data_i(23 downto 16); + else + mem_ram_rd(23 downto 16) <= mem_ram(to_integer(unsigned(addr)))(23 downto 16); + end if; + if (wren_i = '1') and (ben_i(3) = '1') then -- byte 3 + mem_ram(to_integer(unsigned(addr)))(31 downto 24) <= data_i(31 downto 24); + else + mem_ram_rd(31 downto 24) <= mem_ram(to_integer(unsigned(addr)))(31 downto 24); + end if; + end if; + end if; + end process mem_access; + + -- read data -- + rdata <= mem_ram_rd; + + + -- Bus Feedback --------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + bus_feedback: process(clk_i) + begin + if rising_edge(clk_i) then + rden <= acc_en and rden_i; + ack_o <= acc_en and (rden_i or wren_i); + end if; + end process bus_feedback; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_imem_rtl; diff --git a/Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.simple.vhd b/Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.simple.vhd new file mode 100644 index 0000000..cde2729 --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/neorv32_imem.simple.vhd @@ -0,0 +1,95 @@ +-- ################################################################################################# +-- # << NEORV32 - Processor-internal instruction memory (IMEM) >> # +-- # ********************************************************************************************* # +-- # This version is intended for SIMULATION ONLY! # +-- # It only allows an implementation as ROM and is initialized using "application_init_image". # +-- # Optimized for simulation to allow LARGE read-only IMEMs. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_application_image.all; -- this file is generated by the image generator + +architecture neorv32_imem_rtl of neorv32_imem is + + -- IO space: module base address -- + constant hi_abb_c : natural := 31; -- high address boundary bit + constant lo_abb_c : natural := index_size_f(IMEM_SIZE); -- low address boundary bit + + -- local signals -- + signal acc_en : std_ulogic; + signal rdata : std_ulogic_vector(31 downto 0); + signal rden : std_ulogic; + signal addr : std_ulogic_vector(index_size_f(IMEM_SIZE/4)-1 downto 0); + +begin + + -- Sanity Checks -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + assert not (IMEM_AS_IROM = false) report "NEORV32 PROCESSOR CONFIG ERROR! Simulation-optimized IMEM can only be used as pre-initialized ROM!" severity error; + + + -- Access Control ------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + acc_en <= '1' when (addr_i(hi_abb_c downto lo_abb_c) = IMEM_BASE(hi_abb_c downto lo_abb_c)) else '0'; + addr <= addr_i(index_size_f(IMEM_SIZE/4)+1 downto 2); -- word aligned + + + -- Memory Access -------------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + imem_file_access: process(clk_i) + variable addr_v : integer; + begin + if rising_edge(clk_i) then + rden <= acc_en and rden_i; + ack_o <= acc_en and (rden_i or wren_i); + if (acc_en = '1') then -- reduce switching activity when not accessed + addr_v := to_integer(unsigned(addr)); + if (addr_v > application_init_image'length) then + rdata <= (others => '0'); + else + rdata <= application_init_image(addr_v); + end if; + end if; + end if; + end process imem_file_access; + + -- output gate -- + data_o <= rdata when (rden = '1') else (others => '0'); + + +end neorv32_imem_rtl; diff --git a/Libs/RiscV_test/NEORV32_test/simple/neorv32_tb.simple.vhd b/Libs/RiscV_test/NEORV32_test/simple/neorv32_tb.simple.vhd new file mode 100644 index 0000000..380b8cb --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/neorv32_tb.simple.vhd @@ -0,0 +1,554 @@ +-- ################################################################################################# +-- # << NEORV32 - Default Processor Testbench >> # +-- # ********************************************************************************************* # +-- # The processor is configured to use a maximum of functional units (for testing purpose). # +-- # Use the "User Configuration" section to configure the testbench according to your needs. # +-- # See NEORV32 data sheet for more information. # +-- # ********************************************************************************************* # +-- # BSD 3-Clause License # +-- # # +-- # Copyright (c) 2021, Stephan Nolting. All rights reserved. # +-- # # +-- # Redistribution and use in source and binary forms, with or without modification, are # +-- # permitted provided that the following conditions are met: # +-- # # +-- # 1. Redistributions of source code must retain the above copyright notice, this list of # +-- # conditions and the following disclaimer. # +-- # # +-- # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # +-- # conditions and the following disclaimer in the documentation and/or other materials # +-- # provided with the distribution. # +-- # # +-- # 3. Neither the name of the copyright holder nor the names of its contributors may be used to # +-- # endorse or promote products derived from this software without specific prior written # +-- # permission. # +-- # # +-- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS # +-- # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # +-- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # +-- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # +-- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # +-- # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # +-- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # +-- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # +-- # OF THE POSSIBILITY OF SUCH DAMAGE. # +-- # ********************************************************************************************* # +-- # The NEORV32 Processor - https://github.com/stnolting/neorv32 (c) Stephan Nolting # +-- ################################################################################################# + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use ieee.math_real.all; + +library neorv32; +use neorv32.neorv32_package.all; +use neorv32.neorv32_application_image.all; -- this file is generated by the image generator +use std.textio.all; + +entity neorv32_tb_simple is + generic ( + CPU_EXTENSION_RISCV_A : boolean := true; + CPU_EXTENSION_RISCV_B : boolean := true; + CPU_EXTENSION_RISCV_C : boolean := true; + CPU_EXTENSION_RISCV_E : boolean := false; + CPU_EXTENSION_RISCV_M : boolean := true; + CPU_EXTENSION_RISCV_U : boolean := true; + CPU_EXTENSION_RISCV_Zicsr : boolean := true; + CPU_EXTENSION_RISCV_Zifencei : boolean := true; + EXT_IMEM_C : boolean := false; -- false: use and boot from proc-internal IMEM, true: use and boot from external (initialized) simulated IMEM (ext. mem A) + MEM_INT_IMEM_SIZE : natural := 16*1024 -- size in bytes of processor-internal IMEM / external mem A + ); +end neorv32_tb_simple; + +architecture neorv32_tb_simple_rtl of neorv32_tb_simple is + + -- User Configuration --------------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + -- general -- + constant ext_dmem_c : boolean := false; -- false: use proc-internal DMEM, true: use external simulated DMEM (ext. mem B) + constant dmem_size_c : natural := 8*1024; -- size in bytes of processor-internal DMEM / external mem B + constant f_clock_c : natural := 100000000; -- main clock in Hz + constant baud0_rate_c : natural := 19200; -- simulation UART0 (primary UART) baud rate + constant baud1_rate_c : natural := 19200; -- simulation UART1 (secondary UART) baud rate + -- simulated external Wishbone memory A (can be used as external IMEM) -- + constant ext_mem_a_base_addr_c : std_ulogic_vector(31 downto 0) := x"00000000"; -- wishbone memory base address (external IMEM base) + constant ext_mem_a_size_c : natural := MEM_INT_IMEM_SIZE; -- wishbone memory size in bytes + constant ext_mem_a_latency_c : natural := 8; -- latency in clock cycles (min 1, max 255), plus 1 cycle initial delay + -- simulated external Wishbone memory B (can be used as external DMEM) -- + constant ext_mem_b_base_addr_c : std_ulogic_vector(31 downto 0) := x"80000000"; -- wishbone memory base address (external DMEM base) + constant ext_mem_b_size_c : natural := dmem_size_c; -- wishbone memory size in bytes + constant ext_mem_b_latency_c : natural := 8; -- latency in clock cycles (min 1, max 255), plus 1 cycle initial delay + -- simulated external Wishbone memory C (can be used to simulate external IO access) -- + constant ext_mem_c_base_addr_c : std_ulogic_vector(31 downto 0) := x"F0000000"; -- wishbone memory base address (default begin of EXTERNAL IO area) + constant ext_mem_c_size_c : natural := 64; -- wishbone memory size in bytes + constant ext_mem_c_latency_c : natural := 3; -- latency in clock cycles (min 1, max 255), plus 1 cycle initial delay + -- simulation interrupt trigger -- + constant irq_trigger_base_addr_c : std_ulogic_vector(31 downto 0) := x"FF000000"; + -- ------------------------------------------------------------------------------------------- + + -- internals - hands off! -- + constant int_imem_c : boolean := not EXT_IMEM_C; + constant int_dmem_c : boolean := not ext_dmem_c; + constant uart0_baud_val_c : real := real(f_clock_c) / real(baud0_rate_c); + constant uart1_baud_val_c : real := real(f_clock_c) / real(baud1_rate_c); + constant t_clock_c : time := (1 sec) / f_clock_c; + + -- generators -- + signal clk_gen, rst_gen : std_ulogic := '0'; + + -- text.io -- + file file_uart0_tx_out : text open write_mode is "neorv32.testbench_uart0.out"; + + -- uart -- + signal uart0_txd : std_ulogic; -- local loop-back + signal uart0_cts : std_ulogic; -- local loop-back + signal uart1_txd : std_ulogic; -- local loop-back + signal uart1_cts : std_ulogic; -- local loop-back + + -- gpio -- + signal gpio : std_ulogic_vector(63 downto 0); + + -- twi -- + signal twi_scl, twi_sda : std_logic; + + -- spi -- + signal spi_data : std_ulogic; + + -- irq -- + signal msi_ring, mei_ring : std_ulogic; + + -- Wishbone bus -- + type wishbone_t is record + addr : std_ulogic_vector(31 downto 0); -- address + wdata : std_ulogic_vector(31 downto 0); -- master write data + rdata : std_ulogic_vector(31 downto 0); -- master read data + we : std_ulogic; -- write enable + sel : std_ulogic_vector(03 downto 0); -- byte enable + stb : std_ulogic; -- strobe + cyc : std_ulogic; -- valid cycle + ack : std_ulogic; -- transfer acknowledge + err : std_ulogic; -- transfer error + tag : std_ulogic_vector(02 downto 0); -- request tag + lock : std_ulogic; -- exclusive access request + end record; + signal wb_cpu, wb_mem_a, wb_mem_b, wb_mem_c, wb_irq : wishbone_t; + + -- Wishbone access latency type -- + type ext_mem_read_latency_t is array (0 to 255) of std_ulogic_vector(31 downto 0); + + -- exclusive access / reservation -- + signal ext_mem_c_atomic_reservation : std_ulogic := '0'; + + -- simulated external memory c (IO) -- + signal ext_ram_c : mem32_t(0 to ext_mem_c_size_c/4-1); -- uninitialized, used to simulate external IO + + -- simulated external memory bus feedback type -- + type ext_mem_t is record + rdata : ext_mem_read_latency_t; + acc_en : std_ulogic; + ack : std_ulogic_vector(ext_mem_a_latency_c-1 downto 0); + end record; + signal ext_mem_a, ext_mem_b, ext_mem_c : ext_mem_t; + + -- stream link interface - local echo -- + signal slink_dat : sdata_8x32_t; + signal slink_val : std_ulogic_vector(7 downto 0); + signal slink_rdy : std_ulogic_vector(7 downto 0); + +begin + + -- Clock/Reset Generator ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + clk_gen <= not clk_gen after (t_clock_c/2); + rst_gen <= '0', '1' after 60*(t_clock_c/2); + + + -- The Core of the Problem ---------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + neorv32_top_inst: neorv32_top + generic map ( + -- General -- + CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz + HW_THREAD_ID => 0, -- hardware thread id (hartid) (32-bit) + INT_BOOTLOADER_EN => false, -- boot configuration: true = boot explicit bootloader; false = boot from int/ext (I)MEM + -- On-Chip Debugger (OCD) -- + ON_CHIP_DEBUGGER_EN => true, -- implement on-chip debugger + -- RISC-V CPU Extensions -- + CPU_EXTENSION_RISCV_A => CPU_EXTENSION_RISCV_A, -- implement atomic extension? + CPU_EXTENSION_RISCV_B => CPU_EXTENSION_RISCV_B, -- implement bit-manipulation extension? + CPU_EXTENSION_RISCV_C => CPU_EXTENSION_RISCV_C, -- implement compressed extension? + CPU_EXTENSION_RISCV_E => CPU_EXTENSION_RISCV_E, -- implement embedded RF extension? + CPU_EXTENSION_RISCV_M => CPU_EXTENSION_RISCV_M, -- implement muld/div extension? + CPU_EXTENSION_RISCV_U => CPU_EXTENSION_RISCV_U, -- implement user mode extension? + CPU_EXTENSION_RISCV_Zfinx => true, -- implement 32-bit floating-point extension (using INT reg!) + CPU_EXTENSION_RISCV_Zicsr => CPU_EXTENSION_RISCV_Zicsr, -- implement CSR system? + CPU_EXTENSION_RISCV_Zicntr => true, -- implement base counters? + CPU_EXTENSION_RISCV_Zihpm => true, -- implement hardware performance monitors? + CPU_EXTENSION_RISCV_Zifencei => CPU_EXTENSION_RISCV_Zifencei, -- implement instruction stream sync.? + CPU_EXTENSION_RISCV_Zmmul => false, -- implement multiply-only M sub-extension? + -- Extension Options -- + FAST_MUL_EN => false, -- use DSPs for M extension's multiplier + FAST_SHIFT_EN => false, -- use barrel shifter for shift operations + CPU_CNT_WIDTH => 64, -- total width of CPU cycle and instret counters (0..64) + -- Physical Memory Protection (PMP) -- + PMP_NUM_REGIONS => 8, -- number of regions (0..64) + PMP_MIN_GRANULARITY => 64*1024, -- minimal region granularity in bytes, has to be a power of 2, min 8 bytes + -- Hardware Performance Monitors (HPM) -- + HPM_NUM_CNTS => 12, -- number of implemented HPM counters (0..29) + HPM_CNT_WIDTH => 40, -- total size of HPM counters (0..64) + -- Internal Instruction memory -- + MEM_INT_IMEM_EN => int_imem_c , -- implement processor-internal instruction memory + MEM_INT_IMEM_SIZE => MEM_INT_IMEM_SIZE, -- size of processor-internal instruction memory in bytes + -- Internal Data memory -- + MEM_INT_DMEM_EN => int_dmem_c, -- implement processor-internal data memory + MEM_INT_DMEM_SIZE => dmem_size_c, -- size of processor-internal data memory in bytes + -- Internal Cache memory -- + ICACHE_EN => true, -- implement instruction cache + ICACHE_NUM_BLOCKS => 8, -- i-cache: number of blocks (min 2), has to be a power of 2 + ICACHE_BLOCK_SIZE => 64, -- i-cache: block size in bytes (min 4), has to be a power of 2 + ICACHE_ASSOCIATIVITY => 2, -- i-cache: associativity / number of sets (1=direct_mapped), has to be a power of 2 + -- External memory interface -- + MEM_EXT_EN => true, -- implement external memory bus interface? + MEM_EXT_TIMEOUT => 256, -- cycles after a pending bus access auto-terminates (0 = disabled) + -- Stream link interface -- + SLINK_NUM_TX => 8, -- number of TX links (0..8) + SLINK_NUM_RX => 8, -- number of TX links (0..8) + SLINK_TX_FIFO => 4, -- TX fifo depth, has to be a power of two + SLINK_RX_FIFO => 1, -- RX fifo depth, has to be a power of two + -- External Interrupts Controller (XIRQ) -- + XIRQ_NUM_CH => 32, -- number of external IRQ channels (0..32) + XIRQ_TRIGGER_TYPE => (others => '1'), -- trigger type: 0=level, 1=edge + XIRQ_TRIGGER_POLARITY => (others => '1'), -- trigger polarity: 0=low-level/falling-edge, 1=high-level/rising-edge + -- Processor peripherals -- + IO_GPIO_EN => true, -- implement general purpose input/output port unit (GPIO)? + IO_MTIME_EN => true, -- implement machine system timer (MTIME)? + IO_UART0_EN => true, -- implement primary universal asynchronous receiver/transmitter (UART0)? + IO_UART0_RX_FIFO => 32, -- RX fifo depth, has to be a power of two, min 1 + IO_UART0_TX_FIFO => 32, -- TX fifo depth, has to be a power of two, min 1 + IO_UART1_EN => true, -- implement secondary universal asynchronous receiver/transmitter (UART1)? + IO_UART1_RX_FIFO => 1, -- RX fifo depth, has to be a power of two, min 1 + IO_UART1_TX_FIFO => 1, -- TX fifo depth, has to be a power of two, min 1 + IO_SPI_EN => true, -- implement serial peripheral interface (SPI)? + IO_TWI_EN => true, -- implement two-wire interface (TWI)? + IO_PWM_NUM_CH => 30, -- number of PWM channels to implement (0..60); 0 = disabled + 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_IN_SIZE => 32, -- size of CFS input conduit in bits + IO_CFS_OUT_SIZE => 32, -- size of CFS output conduit in bits + IO_NEOLED_EN => true, -- implement NeoPixel-compatible smart LED interface (NEOLED)? + IO_NEOLED_TX_FIFO => 8, -- NEOLED TX FIFO depth, 1..32k, has to be a power of two + IO_GPTMR_EN => true -- implement general purpose timer (GPTMR)? + ) + port map ( + -- Global control -- + clk_i => clk_gen, -- global clock, rising edge + rstn_i => rst_gen, -- global reset, low-active, async + -- JTAG on-chip debugger interface (available if ON_CHIP_DEBUGGER_EN = true) -- + jtag_trst_i => '1', -- low-active TAP reset (optional) + jtag_tck_i => '0', -- serial clock + jtag_tdi_i => '0', -- serial data input + jtag_tdo_o => open, -- serial data output + jtag_tms_i => '0', -- mode select + -- Wishbone bus interface (available if MEM_EXT_EN = true) -- + wb_tag_o => wb_cpu.tag, -- request tag + wb_adr_o => wb_cpu.addr, -- address + wb_dat_i => wb_cpu.rdata, -- read data + wb_dat_o => wb_cpu.wdata, -- write data + wb_we_o => wb_cpu.we, -- read/write + wb_sel_o => wb_cpu.sel, -- byte enable + wb_stb_o => wb_cpu.stb, -- strobe + wb_cyc_o => wb_cpu.cyc, -- valid cycle + wb_lock_o => wb_cpu.lock, -- exclusive access request + wb_ack_i => wb_cpu.ack, -- transfer acknowledge + wb_err_i => wb_cpu.err, -- transfer error + -- 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 + -- TX stream interfaces (available if SLINK_NUM_TX > 0) -- + slink_tx_dat_o => slink_dat, -- output data + slink_tx_val_o => slink_val, -- valid output + slink_tx_rdy_i => slink_rdy, -- ready to send + -- RX stream interfaces (available if SLINK_NUM_RX > 0) -- + slink_rx_dat_i => slink_dat, -- input data + slink_rx_val_i => slink_val, -- valid input + slink_rx_rdy_o => slink_rdy, -- ready to receive + -- GPIO (available if IO_GPIO_EN = true) -- + gpio_o => gpio, -- parallel output + gpio_i => gpio, -- parallel input + -- primary UART0 (available if IO_UART0_EN = true) -- + uart0_txd_o => uart0_txd, -- UART0 send data + uart0_rxd_i => uart0_txd, -- UART0 receive data + uart0_rts_o => uart0_cts, -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional + uart0_cts_i => uart0_cts, -- hw flow control: UART0.TX allowed to transmit, low-active, optional + -- secondary UART1 (available if IO_UART1_EN = true) -- + uart1_txd_o => uart1_txd, -- UART1 send data + uart1_rxd_i => uart1_txd, -- UART1 receive data + uart1_rts_o => uart1_cts, -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional + uart1_cts_i => uart1_cts, -- hw flow control: UART1.TX allowed to transmit, low-active, optional + -- 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 (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 (available if IO_PWM_NUM_CH > 0) -- + pwm_o => open, -- pwm channels + -- Custom Functions Subsystem IO -- + cfs_in_i => (others => '0'), -- custom CFS inputs + cfs_out_o => open, -- custom CFS outputs + -- NeoPixel-compatible smart LED interface (available if IO_NEOLED_EN = true) -- + neoled_o => open, -- async serial data line + -- System time -- + mtime_i => (others => '0'), -- current system time from ext. MTIME (if IO_MTIME_EN = false) + mtime_o => open, -- current system time from int. MTIME (if IO_MTIME_EN = true) + -- External platform interrupts (available if XIRQ_NUM_CH > 0) -- + xirq_i => gpio(31 downto 0), -- IRQ channels + -- CPU Interrupts -- + mtime_irq_i => '0', -- machine software interrupt, available if IO_MTIME_EN = false + msw_irq_i => msi_ring, -- machine software interrupt + mext_irq_i => mei_ring -- machine external interrupt + ); + + -- TWI termination (pull-ups) -- + twi_scl <= 'H'; + twi_sda <= 'H'; + + + -- UART Simulation Receiver --------------------------------------------------------------- + -- ------------------------------------------------------------------------------------------- + uart0_checker: entity work.uart_rx_simple + generic map ( + name => "uart0", + uart_baud_val_c => uart0_baud_val_c + ) + port map ( + clk => clk_gen, + uart_txd => uart0_txd + ); + + uart1_checker: entity work.uart_rx_simple + generic map ( + name => "uart1", + uart_baud_val_c => uart1_baud_val_c + ) + port map ( + clk => clk_gen, + uart_txd => uart1_txd + ); + + + -- Wishbone Fabric ------------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + -- CPU broadcast signals -- + wb_mem_a.addr <= wb_cpu.addr; + wb_mem_a.wdata <= wb_cpu.wdata; + wb_mem_a.we <= wb_cpu.we; + wb_mem_a.sel <= wb_cpu.sel; + wb_mem_a.tag <= wb_cpu.tag; + wb_mem_a.cyc <= wb_cpu.cyc; + wb_mem_a.lock <= wb_cpu.lock; + + wb_mem_b.addr <= wb_cpu.addr; + wb_mem_b.wdata <= wb_cpu.wdata; + wb_mem_b.we <= wb_cpu.we; + wb_mem_b.sel <= wb_cpu.sel; + wb_mem_b.tag <= wb_cpu.tag; + wb_mem_b.cyc <= wb_cpu.cyc; + wb_mem_b.lock <= wb_cpu.lock; + + wb_mem_c.addr <= wb_cpu.addr; + wb_mem_c.wdata <= wb_cpu.wdata; + wb_mem_c.we <= wb_cpu.we; + wb_mem_c.sel <= wb_cpu.sel; + wb_mem_c.tag <= wb_cpu.tag; + wb_mem_c.cyc <= wb_cpu.cyc; + wb_mem_c.lock <= wb_cpu.lock; + + wb_irq.addr <= wb_cpu.addr; + wb_irq.wdata <= wb_cpu.wdata; + wb_irq.we <= wb_cpu.we; + wb_irq.sel <= wb_cpu.sel; + wb_irq.tag <= wb_cpu.tag; + wb_irq.cyc <= wb_cpu.cyc; + + -- CPU read-back signals (no mux here since peripherals have "output gates") -- + wb_cpu.rdata <= wb_mem_a.rdata or wb_mem_b.rdata or wb_mem_c.rdata or wb_irq.rdata; + wb_cpu.ack <= wb_mem_a.ack or wb_mem_b.ack or wb_mem_c.ack or wb_irq.ack; + wb_cpu.err <= wb_mem_a.err or wb_mem_b.err or wb_mem_c.err or wb_irq.err; + + -- peripheral select via STROBE signal -- + wb_mem_a.stb <= wb_cpu.stb when (wb_cpu.addr >= ext_mem_a_base_addr_c) and (wb_cpu.addr < std_ulogic_vector(unsigned(ext_mem_a_base_addr_c) + ext_mem_a_size_c)) else '0'; + wb_mem_b.stb <= wb_cpu.stb when (wb_cpu.addr >= ext_mem_b_base_addr_c) and (wb_cpu.addr < std_ulogic_vector(unsigned(ext_mem_b_base_addr_c) + ext_mem_b_size_c)) else '0'; + wb_mem_c.stb <= wb_cpu.stb when (wb_cpu.addr >= ext_mem_c_base_addr_c) and (wb_cpu.addr < std_ulogic_vector(unsigned(ext_mem_c_base_addr_c) + ext_mem_c_size_c)) else '0'; + wb_irq.stb <= wb_cpu.stb when (wb_cpu.addr = irq_trigger_base_addr_c) else '0'; + + + -- Wishbone Memory A (simulated external IMEM) -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + generate_ext_imem: + if (EXT_IMEM_C = true) generate + ext_mem_a_access: process(clk_gen) + variable ext_ram_a : mem32_t(0 to ext_mem_a_size_c/4-1) := mem32_init_f(application_init_image, ext_mem_a_size_c/4); -- initialized, used to simulate external IMEM + begin + if rising_edge(clk_gen) then + -- control -- + ext_mem_a.ack(0) <= wb_mem_a.cyc and wb_mem_a.stb; -- wishbone acknowledge + + -- write access -- + if ((wb_mem_a.cyc and wb_mem_a.stb and wb_mem_a.we) = '1') then -- valid write access + for i in 0 to 3 loop + if (wb_mem_a.sel(i) = '1') then + ext_ram_a(to_integer(unsigned(wb_mem_a.addr(index_size_f(ext_mem_a_size_c/4)+1 downto 2))))(7+i*8 downto 0+i*8) := wb_mem_a.wdata(7+i*8 downto 0+i*8); + end if; + end loop; -- i + end if; + + -- read access -- + ext_mem_a.rdata(0) <= ext_ram_a(to_integer(unsigned(wb_mem_a.addr(index_size_f(ext_mem_a_size_c/4)+1 downto 2)))); -- word aligned + -- virtual read and ack latency -- + if (ext_mem_a_latency_c > 1) then + for i in 1 to ext_mem_a_latency_c-1 loop + ext_mem_a.rdata(i) <= ext_mem_a.rdata(i-1); + ext_mem_a.ack(i) <= ext_mem_a.ack(i-1) and wb_mem_a.cyc; + end loop; + end if; + + -- bus output register -- + wb_mem_a.err <= '0'; + if (ext_mem_a.ack(ext_mem_a_latency_c-1) = '1') and (wb_mem_a.cyc = '1') and (wb_mem_a.ack = '0') then + wb_mem_a.rdata <= ext_mem_a.rdata(ext_mem_a_latency_c-1); + wb_mem_a.ack <= '1'; + else + wb_mem_a.rdata <= (others => '0'); + wb_mem_a.ack <= '0'; + end if; + end if; + end process ext_mem_a_access; + end generate; + + generate_ext_imem_false: + if (EXT_IMEM_C = false) generate + wb_mem_a.rdata <= (others => '0'); + wb_mem_a.ack <= '0'; + wb_mem_a.err <= '0'; + end generate; + + + -- Wishbone Memory B (simulated external DMEM) -------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ext_mem_b_access: process(clk_gen) + variable ext_ram_b : mem32_t(0 to ext_mem_b_size_c/4-1) := (others => (others => '0')); -- zero, used to simulate external DMEM + begin + if rising_edge(clk_gen) then + -- control -- + ext_mem_b.ack(0) <= wb_mem_b.cyc and wb_mem_b.stb; -- wishbone acknowledge + + -- write access -- + if ((wb_mem_b.cyc and wb_mem_b.stb and wb_mem_b.we) = '1') then -- valid write access + for i in 0 to 3 loop + if (wb_mem_b.sel(i) = '1') then + ext_ram_b(to_integer(unsigned(wb_mem_b.addr(index_size_f(ext_mem_b_size_c/4)+1 downto 2))))(7+i*8 downto 0+i*8) := wb_mem_b.wdata(7+i*8 downto 0+i*8); + end if; + end loop; -- i + end if; + + -- read access -- + ext_mem_b.rdata(0) <= ext_ram_b(to_integer(unsigned(wb_mem_b.addr(index_size_f(ext_mem_b_size_c/4)+1 downto 2)))); -- word aligned + -- virtual read and ack latency -- + if (ext_mem_b_latency_c > 1) then + for i in 1 to ext_mem_b_latency_c-1 loop + ext_mem_b.rdata(i) <= ext_mem_b.rdata(i-1); + ext_mem_b.ack(i) <= ext_mem_b.ack(i-1) and wb_mem_b.cyc; + end loop; + end if; + + -- bus output register -- + wb_mem_b.err <= '0'; + if (ext_mem_b.ack(ext_mem_b_latency_c-1) = '1') and (wb_mem_b.cyc = '1') and (wb_mem_b.ack = '0') then + wb_mem_b.rdata <= ext_mem_b.rdata(ext_mem_b_latency_c-1); + wb_mem_b.ack <= '1'; + else + wb_mem_b.rdata <= (others => '0'); + wb_mem_b.ack <= '0'; + end if; + end if; + end process ext_mem_b_access; + + + -- Wishbone Memory C (simulated external IO) ---------------------------------------------- + -- ------------------------------------------------------------------------------------------- + ext_mem_c_access: process(clk_gen) + begin + if rising_edge(clk_gen) then + -- control -- + ext_mem_c.ack(0) <= wb_mem_c.cyc and wb_mem_c.stb; -- wishbone acknowledge + + -- write access -- + if ((wb_mem_c.cyc and wb_mem_c.stb and wb_mem_c.we) = '1') then -- valid write access + for i in 0 to 3 loop + if (wb_mem_c.sel(i) = '1') then + ext_ram_c(to_integer(unsigned(wb_mem_c.addr(index_size_f(ext_mem_c_size_c/4)+1 downto 2))))(7+i*8 downto 0+i*8) <= wb_mem_c.wdata(7+i*8 downto 0+i*8); + end if; + end loop; -- i + end if; + + -- read access -- + ext_mem_c.rdata(0) <= ext_ram_c(to_integer(unsigned(wb_mem_c.addr(index_size_f(ext_mem_c_size_c/4)+1 downto 2)))); -- word aligned + -- virtual read and ack latency -- + if (ext_mem_c_latency_c > 1) then + for i in 1 to ext_mem_c_latency_c-1 loop + ext_mem_c.rdata(i) <= ext_mem_c.rdata(i-1); + ext_mem_c.ack(i) <= ext_mem_c.ack(i-1) and wb_mem_c.cyc; + end loop; + end if; + + -- EXCLUSIVE bus access ----------------------------------------------------- + -- ----------------------------------------------------------------------------- + -- Since there is only one CPU in this design, the exclusive access reservation in THIS memory CANNOT fail. + -- However, this memory module is used to simulated failing LR/SC accesses. + if ((wb_mem_c.cyc and wb_mem_c.stb) = '1') then -- valid access + ext_mem_c_atomic_reservation <= wb_mem_c.lock; -- make reservation + end if; + -- ----------------------------------------------------------------------------- + + -- bus output register -- + if (ext_mem_c.ack(ext_mem_c_latency_c-1) = '1') and (wb_mem_c.cyc = '1') and (wb_mem_c.ack = '0') then + wb_mem_c.rdata <= ext_mem_c.rdata(ext_mem_c_latency_c-1); + wb_mem_c.ack <= '1'; + wb_mem_c.err <= ext_mem_c_atomic_reservation; -- issue a bus error if there is an exclusive access request + else + wb_mem_c.rdata <= (others => '0'); + wb_mem_c.ack <= '0'; + wb_mem_c.err <= '0'; + end if; + end if; + end process ext_mem_c_access; + + + -- Wishbone IRQ Triggers ------------------------------------------------------------------ + -- ------------------------------------------------------------------------------------------- + irq_trigger: process(rst_gen, clk_gen) + begin + if (rst_gen = '0') then + msi_ring <= '0'; + mei_ring <= '0'; + elsif rising_edge(clk_gen) then + -- bus interface -- + wb_irq.rdata <= (others => '0'); + wb_irq.ack <= wb_irq.cyc and wb_irq.stb and wb_irq.we and and_reduce_f(wb_irq.sel); + wb_irq.err <= '0'; + -- trigger RISC-V platform IRQs -- + if ((wb_irq.cyc and wb_irq.stb and wb_irq.we and and_reduce_f(wb_irq.sel)) = '1') then + msi_ring <= wb_irq.wdata(03); -- machine software interrupt + mei_ring <= wb_irq.wdata(11); -- machine software interrupt + end if; + end if; + end process irq_trigger; + + +end neorv32_tb_simple_rtl; diff --git a/Libs/RiscV_test/NEORV32_test/simple/uart_rx.simple.vhd b/Libs/RiscV_test/NEORV32_test/simple/uart_rx.simple.vhd new file mode 100644 index 0000000..64d82ce --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/simple/uart_rx.simple.vhd @@ -0,0 +1,77 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use ieee.math_real.all; + +use std.textio.all; + +entity uart_rx_simple is + generic ( + name : string; + uart_baud_val_c : real); + + port ( + clk : in std_ulogic; + uart_txd : in std_ulogic + ); +end entity; + +architecture a of uart_rx_simple is + signal uart_rx_sync : std_ulogic_vector(04 downto 0) := (others => '1'); + signal uart_rx_busy : std_ulogic := '0'; + signal uart_rx_sreg : std_ulogic_vector(08 downto 0) := (others => '0'); + signal uart_rx_baud_cnt : real; + signal uart_rx_bitcnt : natural; + + file file_uart_tx_out : text open write_mode is "neorv32.testbench_" & name & ".out"; + +begin + uart_rx_console : process(clk) + variable i : integer; + variable l : line; + begin + -- "UART" -- + if rising_edge(clk) then + -- synchronizer -- + uart_rx_sync <= uart_rx_sync(3 downto 0) & uart_txd; + -- arbiter -- + if (uart_rx_busy = '0') then -- idle + uart_rx_busy <= '0'; + uart_rx_baud_cnt <= round(0.5 * uart_baud_val_c); + uart_rx_bitcnt <= 9; + if (uart_rx_sync(4 downto 1) = "1100") then -- start bit? (falling edge) + uart_rx_busy <= '1'; + end if; + else + if (uart_rx_baud_cnt <= 0.0) then + if (uart_rx_bitcnt = 1) then + uart_rx_baud_cnt <= round(0.5 * uart_baud_val_c); + else + uart_rx_baud_cnt <= round(uart_baud_val_c); + end if; + if (uart_rx_bitcnt = 0) then + uart_rx_busy <= '0'; -- done + i := to_integer(unsigned(uart_rx_sreg(8 downto 1))); + + if (i < 32) or (i > 32+95) then -- printable char? + report name & ".tx: (" & integer'image(i) & ")"; -- print code + else + report name & ".tx: " & character'val(i); -- print ASCII + end if; + + if (i = 10) then -- Linux line break + writeline(file_uart_tx_out, l); + elsif (i /= 13) then -- Remove additional carriage return + write(l, character'val(i)); + end if; + else + uart_rx_sreg <= uart_rx_sync(4) & uart_rx_sreg(8 downto 1); + uart_rx_bitcnt <= uart_rx_bitcnt - 1; + end if; + else + uart_rx_baud_cnt <= uart_rx_baud_cnt - 1.0; + end if; + end if; + end if; + end process uart_rx_console; +end architecture; diff --git a/Libs/RiscV_test/NEORV32_test/uart_rx.vhd b/Libs/RiscV_test/NEORV32_test/uart_rx.vhd new file mode 100644 index 0000000..4c9149c --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/uart_rx.vhd @@ -0,0 +1,119 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use ieee.math_real.all; + +use std.textio.all; + +library vunit_lib; +context vunit_lib.vunit_context; +context vunit_lib.com_context; +context vunit_lib.vc_context; + +use work.uart_rx_pkg.all; + +entity uart_rx is + generic (handle : uart_rx_t); + port ( + clk : in std_ulogic; + uart_txd : in std_ulogic + ); +end entity; + +architecture a of uart_rx is + signal uart_rx_sync : std_ulogic_vector(04 downto 0) := (others => '1'); + signal uart_rx_busy : std_ulogic := '0'; + signal uart_rx_sreg : std_ulogic_vector(08 downto 0) := (others => '0'); + signal uart_rx_baud_cnt : real; + signal uart_rx_bitcnt : natural; + + file file_uart_tx_out : text open write_mode is "neorv32.testbench_" & get_name(handle.p_logger) & ".out"; + constant checker : checker_t := new_checker(handle.p_logger); + constant character_queue : queue_t := new_queue; + +begin + control : process + variable request_msg, reply_msg : msg_t; + variable msg_type : msg_type_t; + + procedure put_characters_in_queue(s : string) is + begin + for idx in s'range loop + push(character_queue, s(idx)); + end loop; + end procedure put_characters_in_queue; + begin + receive(net, handle.p_actor, request_msg); + msg_type := message_type(request_msg); + + -- Standard handling of standard wait_for_time messages = wait for the given time + -- before proceeeding + handle_wait_for_time(net, msg_type, request_msg); + + if msg_type = check_uart_msg then + put_characters_in_queue(pop(request_msg)); + + -- Custom handling of standard wait_until_idle message + elsif msg_type = wait_until_idle_msg then + while not is_empty(character_queue) loop + wait until rising_edge(clk); + end loop; + reply_msg := new_msg(wait_until_idle_reply_msg); + reply(net, request_msg, reply_msg); + + else + unexpected_msg_type(msg_type); + end if; + end process; + + uart_rx_console : process(clk) + variable i : integer; + variable l : line; + variable expected_character : character; + begin + -- "UART" -- + if rising_edge(clk) then + -- synchronizer -- + uart_rx_sync <= uart_rx_sync(3 downto 0) & uart_txd; + -- arbiter -- + if (uart_rx_busy = '0') then -- idle + uart_rx_busy <= '0'; + uart_rx_baud_cnt <= round(0.5 * handle.p_baud_val); + uart_rx_bitcnt <= 9; + if (uart_rx_sync(4 downto 1) = "1100") then -- start bit? (falling edge) + uart_rx_busy <= '1'; + end if; + else + if (uart_rx_baud_cnt <= 0.0) then + if (uart_rx_bitcnt = 1) then + uart_rx_baud_cnt <= round(0.5 * handle.p_baud_val); + else + uart_rx_baud_cnt <= round(handle.p_baud_val); + end if; + if (uart_rx_bitcnt = 0) then + uart_rx_busy <= '0'; -- done + i := to_integer(unsigned(uart_rx_sreg(8 downto 1))); + + if is_empty(character_queue) then + check_failed(checker, "Extra characters received"); + else + expected_character := pop(character_queue); + check_equal(checker, character'val(i), expected_character); + end if; + + if (i = 10) then -- Linux line break + writeline(file_uart_tx_out, l); + elsif (i /= 13) then -- Remove additional carriage return + write(l, character'val(i)); + end if; + else + uart_rx_sreg <= uart_rx_sync(4) & uart_rx_sreg(8 downto 1); + uart_rx_bitcnt <= uart_rx_bitcnt - 1; + end if; + else + uart_rx_baud_cnt <= uart_rx_baud_cnt - 1.0; + end if; + end if; + end if; + end process uart_rx_console; +end architecture; diff --git a/Libs/RiscV_test/NEORV32_test/uart_rx_pkg.vhd b/Libs/RiscV_test/NEORV32_test/uart_rx_pkg.vhd new file mode 100644 index 0000000..97cf0ca --- /dev/null +++ b/Libs/RiscV_test/NEORV32_test/uart_rx_pkg.vhd @@ -0,0 +1,60 @@ +library vunit_lib; +context vunit_lib.vunit_context; +context vunit_lib.com_context; +use vunit_lib.sync_pkg.all; + +package uart_rx_pkg is + constant check_uart_msg : msg_type_t := new_msg_type("check_uart"); + + type uart_rx_t is record + p_baud_val : real; + p_logger : logger_t; + p_actor : actor_t; + end record; + + impure function new_uart_rx( + baud_val : real; + logger : logger_t := null_logger; + actor : actor_t := null_actor) return uart_rx_t; + + function as_sync(handle : uart_rx_t) return sync_handle_t; + + procedure check_uart( + signal net : inout network_t; + constant handle : in uart_rx_t; + constant data : in string); +end package uart_rx_pkg; + +package body uart_rx_pkg is + constant uart_rx_logger : logger_t := get_logger("neorv32_lib:uart_rx_pkg"); + + impure function new_uart_rx( + baud_val : real; + logger : logger_t := null_logger; + actor : actor_t := null_actor) return uart_rx_t is + variable result : uart_rx_t; + begin + result.p_baud_val := baud_val; + result.p_logger := logger when logger /= null_logger else uart_rx_logger; + result.p_actor := actor when actor /= null_actor else new_actor; + + return result; + end; + + function as_sync(handle : uart_rx_t) return sync_handle_t is + begin + return handle.p_actor; + end; + + procedure check_uart( + signal net : inout network_t; + constant handle : in uart_rx_t; + constant data : in string) is + variable msg : msg_t; + begin + msg := new_msg(check_uart_msg); + push(msg, data); + send(net, handle.p_actor, msg); + end; + +end package body uart_rx_pkg; diff --git a/README.md b/README.md new file mode 100644 index 0000000..20d0345 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# sem-labs +HEVs laboratory files for course SEm

    3. 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 z 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 '-'); + signal errorTopSeparator : string(1 to 80) := (others => '#'); + signal bottomSeparator : string(1 to 80) := (others => '.'); + signal indentation : string(1 to 2) := (others => ' '); + signal noteInformation : string(1 to 9) := (others => ' '); + signal errorInformation : string(1 to 10) := (others => ' '); + signal failureInformation : string(1 to 12) := (others => ' '); + signal testInformation : string(1 to 50) := (others => ' '); + -- register definition + constant peripheralBaseAddress: natural := 2**4; + constant dataRegisterAddress: natural := 0; + constant outputEnableRegisterAddress: natural := 1; + -- AMBA bus access + signal registerAddress: natural; + signal registerData: integer; + signal registerWrite: std_uLogic; + signal registerRead: std_uLogic; + signal writeFlag, readFlag, readFlag1: std_uLogic; + signal writeData, readData: integer; + -- GPIO access + signal ioData: integer; + signal ioMask: integer; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset_int <= '1', '0' after 2*clockPeriod; + hReset_n <= not(reset_int); + + clock_int <= not clock_int after clockPeriod/2; + hClk <= transport clock_int after clockPeriod*9.0/10.0; + + ------------------------------------------------------------------------------ + -- test sequence + testSequence: process + begin + registerAddress <= 0; + registerData <= 0; + registerWrite <= '0'; + registerRead <= '0'; + ioData <= 0; + ioMask <= 0; + wait for 100 ns; + + ---------------------------------------------------------------------------- + -- simple test + -- write en mask + testInformation <= pad("Writing data on the GPIO", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + ioData <= 16#AA#; + ioMask <= 16#0F#; wait for 0 ns; + registerAddress <= outputEnableRegisterAddress; + registerData <= ioMask; + registerWrite <= '1', '0' after clockPeriod/2; + wait for 4*clockPeriod; + -- write output data 55h + registerAddress <= dataRegisterAddress; + registerData <= 16#55#; + registerWrite <= '1', '0' after clockPeriod; + wait for 4*clockPeriod; + assert io = x"A5" + report + errorTopSeparator & cr & + noteInformation & indentation & "IO data not as expected" & cr & + noteInformation & bottomSeparator + severity error; + -- read data + testInformation <= pad("Reading data from the GPIO", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= dataRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#A5# + report + errorTopSeparator & cr & + noteInformation & indentation & "read data not as expected" & cr & + noteInformation & bottomSeparator + severity error; + wait for 100 ns; + + ---------------------------------------------------------------------------- + -- test with a different base address + -- write en mask + testInformation <= pad( + "Writing data to a different base address", testInformation'length + ); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + ioData <= 16#AA#; + ioMask <= 16#F0#; wait for 0 ns; + registerAddress <= peripheralBaseAddress + outputEnableRegisterAddress; + registerData <= ioMask; + registerWrite <= '1', '0' after clockPeriod; + wait for 4*clockPeriod; + -- write output data 55h + registerAddress <= peripheralBaseAddress + dataRegisterAddress; + registerData <= 16#55#; + registerWrite <= '1', '0' after clockPeriod; + wait for 4*clockPeriod; + -- read data + registerAddress <= peripheralBaseAddress + dataRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#5A# + report + errorTopSeparator & cr & + noteInformation & indentation & "read data not as expected" & cr & + noteInformation & bottomSeparator + severity error; + wait for 4*clockPeriod; + + ---------------------------------------------------------------------------- + -- access back to back + -- write en mask + testInformation <= pad("Accessing at full speed", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + wait until rising_edge(clock_int); + ioData <= 16#AA#; + ioMask <= 16#0F#; wait for 0 ns; + registerAddress <= outputEnableRegisterAddress; + registerData <= ioMask; + registerWrite <= '1' after clockPeriod/4, '0' after clockPeriod/2; + -- write output data 55h + wait until rising_edge(clock_int); + registerAddress <= dataRegisterAddress; + registerData <= 16#55#; + registerWrite <= '1' after clockPeriod/4, '0' after clockPeriod/2; + -- read data + wait until rising_edge(clock_int); + registerAddress <= dataRegisterAddress; + registerRead <= '1' after clockPeriod/4, '0' after clockPeriod/2; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#A5# + report + errorTopSeparator & cr & + noteInformation & indentation & "read data not as expected" & cr & + noteInformation & bottomSeparator + severity error; + wait for 4*clockPeriod; + -- end of simulation + wait for 100 ns; + testInformation <= pad("End of tests", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + failureInformation & indentation & testInformation & cr & + failureInformation & bottomSeparator + severity failure; + wait; + end process testSequence; + + ------------------------------------------------------------------------------ + -- AMBA bus access + -- phase 1: address and controls + busAccess1: process + variable writeAccess: boolean := false; + begin + wait on reset_int, registerWrite, registerRead; + if falling_edge(reset_int) then + hAddr <= (others => '-'); + hTrans <= transIdle; + hSel <= '0'; + writeFlag <= '0'; + end if; + if rising_edge(registerWrite) or rising_edge(registerRead) then + writeAccess := false; + if rising_edge(registerWrite) then + writeAccess := true; + end if; + wait until rising_edge(clock_int); + hAddr <= to_unsigned(registerAddress, hAddr'length), + (others => '-') after clockPeriod + 1 ns; + hTrans <= transNonSeq, transIdle after clockPeriod + 1 ns; + hSel <= '1', '0' after clockPeriod + 1 ns; + if writeAccess then + writeFlag <= '1', '0' after clockPeriod + 1 ns; + writeData <= registerData; + else + readFlag <= '1', '0' after clockPeriod + 1 ns; + end if; + end if; + end process busAccess1; + + hWrite <= writeFlag; + -- phase 2: data write + busAccess2: process + begin + wait until rising_edge(clock_int); + hWData <= (others => '-'); + readFlag1 <= '0'; + if writeFlag = '1' then + hWData <= std_uLogic_vector(to_signed(writeData, hWData'length)); + end if; + readFlag1 <= readFlag; + end process busAccess2; + -- phase 3: data read + busAccess3: process + begin + wait until rising_edge(clock_int); + if readFlag1 = '1' then + readData <= to_integer(to_01(unsigned(hRData))); + end if; + end process busAccess3; + + ------------------------------------------------------------------------------ + -- GPIO access + linesAccess: process(ioData, ioMask) + variable ioDataVector: unsigned(io'range); + variable ioMaskVector: unsigned(io'range); + begin + ioDataVector := to_unsigned(ioData, ioDataVector'length); + ioMaskVector := to_unsigned(ioMask, ioMaskVector'length); + for index in io'range loop + if ioMaskVector(index) = '1' then + io(index) <= 'Z'; + else + io(index) <= ioDataVector(index); + end if; + end loop; + end process; + +END ARCHITECTURE test; diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/ahbUart_tester_test.vhd b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/ahbUart_tester_test.vhd new file mode 100644 index 0000000..4299ea5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/ahbUart_tester_test.vhd @@ -0,0 +1,330 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + + +ARCHITECTURE test OF ahbUart_tester IS + -- reset and clock + constant clockPeriod: time := (1.0/clockFrequency) * 1 sec; + signal clock_int: std_uLogic := '1'; + signal reset_int: std_uLogic; + -- test information + signal noteTopSeparator : string(1 to 80) := (others => '-'); + signal errorTopSeparator : string(1 to 80) := (others => '#'); + signal bottomSeparator : string(1 to 80) := (others => '.'); + signal indentation : string(1 to 2) := (others => ' '); + signal noteInformation : string(1 to 9) := (others => ' '); + signal errorInformation : string(1 to 10) := (others => ' '); + signal failureInformation : string(1 to 12) := (others => ' '); + signal testInformation : string(1 to 50) := (others => ' '); + -- register definition + constant dataRegisterAddress: natural := 0; + constant controlRegisterAddress: natural := 1; + constant scalerRegisterAddress: natural := 2; + + constant statusRegisterAddress: natural := 1; + constant statusValidAddress: natural := 0; + constant valueRegisterAddress: natural := 1; + -- AMBA bus access + signal registerAddress: natural; + signal registerData: integer; + signal registerWrite: std_uLogic; + signal registerRead: std_uLogic; + signal writeFlag, readFlag, readFlag1: std_uLogic; + signal writeData, readData: integer; + -- UART access + constant baudPeriodNb: positive := 4; + signal uartData: integer; + signal uartSend: std_uLogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset_int <= '1', '0' after 2*clockPeriod; + hReset_n <= not(reset_int); + + clock_int <= not clock_int after clockPeriod/2; + hClk <= transport clock_int after clockPeriod*9.0/10.0; + + ------------------------------------------------------------------------------ + -- test sequence + testSequence: process + begin + registerAddress <= 0; + registerData <= 0; + registerWrite <= '0'; + registerRead <= '0'; + uartSend <= '0'; + wait for 1 us; + -- write baud rate + testInformation <= pad("Writing baud rate", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= scalerRegisterAddress; + registerData <= baudPeriodNb; + registerWrite <= '1', '0' after clockPeriod; + wait for 4*clockPeriod; + -- write Tx data 55h + testInformation <= pad("Writing Tx data", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= dataRegisterAddress; + registerData <= 16#55#; + registerWrite <= '1', '0' after clockPeriod; + wait for 20*baudPeriodNb*clockPeriod; + -- write Tx data 0Fh + testInformation <= (others => ' '); + wait for 1 ns; + testInformation <= pad("Writing Tx data", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= dataRegisterAddress; + registerData <= 16#0F#; + registerWrite <= '1', '0' after clockPeriod; + wait for 4*clockPeriod; + -- read status + testInformation <= pad("Reading status", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= statusRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#02# + report + errorTopSeparator & cr & + errorInformation & indentation & + "expected status sending flag" & cr & + errorInformation & bottomSeparator + severity error; + wait for 12*baudPeriodNb*clockPeriod; + -- read status + testInformation <= (others => ' '); + wait for 1 ns; + testInformation <= pad("Reading status", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#00# + report + errorTopSeparator & cr & + errorInformation & indentation & + "expected no flag" & cr & + errorInformation & bottomSeparator + severity error; + wait for 20*baudPeriodNb*clockPeriod; + -- receive AAh + testInformation <= pad("Receiving Rx data", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + uartData <= 16#AA#; + uartSend <= '1', '0' after clockPeriod; + wait for 4*clockPeriod; + -- read status + testInformation <= pad("Reading status", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= statusRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#04# + report + errorTopSeparator & cr & + errorInformation & indentation & + "expected status receiving flag" & cr & + errorInformation & bottomSeparator + severity error; + wait for 10*baudPeriodNb*clockPeriod; + -- read status again + testInformation <= (others => ' '); + wait for 1 ns; + testInformation <= pad("Reading status", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#01# + report + errorTopSeparator & cr & + errorInformation & indentation & + "expected status data available flag" & cr & + errorInformation & bottomSeparator + severity error; + wait for 4*clockPeriod; + -- read data + testInformation <= pad("Reading data", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= dataRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#AA# + report + errorTopSeparator & cr & + errorInformation & indentation & "read data not as expected" & cr & + errorInformation & bottomSeparator + severity error; + wait for 4*clockPeriod; + -- read status + testInformation <= pad("Reading status", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + noteInformation & indentation & testInformation & cr & + noteInformation & bottomSeparator + severity note; + registerAddress <= statusRegisterAddress; + registerRead <= '1', '0' after clockPeriod; + for index in 1 to 4 loop + wait until rising_edge(clock_int); + end loop; + assert readData = 16#00# + report + errorTopSeparator & cr & + errorInformation & indentation & + "expected no flag" & cr & + errorInformation & bottomSeparator + severity error; + wait for 4*clockPeriod; + -- end of simulation + wait for 100 ns; + testInformation <= pad("End of tests", testInformation'length); + wait for 0 ns; + assert false + report + noteTopSeparator & cr & + failureInformation & indentation & testInformation & cr & + failureInformation & bottomSeparator + severity failure; + wait; + end process testSequence; + + ------------------------------------------------------------------------------ + -- AMBA bus access + -- phase 1: address and controls + busAccess1: process + variable writeAccess: boolean := false; + begin + wait on reset_int, registerWrite, registerRead; + if falling_edge(reset_int) then + hAddr <= (others => '-'); + hTrans <= transIdle; + hSel <= '0'; + writeFlag <= '0'; + end if; + if rising_edge(registerWrite) or rising_edge(registerRead) then + writeAccess := false; + if rising_edge(registerWrite) then + writeAccess := true; + end if; + wait until rising_edge(clock_int); + hAddr <= to_unsigned(registerAddress, hAddr'length), + (others => '-') after clockPeriod + 1 ns; + hTrans <= transNonSeq, transIdle after clockPeriod + 1 ns; + hSel <= '1', '0' after clockPeriod + 1 ns; + if writeAccess then + writeFlag <= '1', '0' after clockPeriod + 1 ns; + writeData <= registerData; + else + readFlag <= '1', '0' after clockPeriod + 1 ns; + end if; + end if; + end process busAccess1; + + hWrite <= writeFlag; + -- phase 2: data write + busAccess2: process + begin + wait until rising_edge(clock_int); + hWData <= (others => '-'); + readFlag1 <= '0'; + if writeFlag = '1' then + hWData <= std_uLogic_vector(to_signed(writeData, hWData'length)); + end if; + readFlag1 <= readFlag; + end process busAccess2; + -- phase 3: data read + busAccess3: process + begin + wait until rising_edge(clock_int); + if readFlag1 = '1' then + readData <= to_integer(to_01(unsigned(hRData))); + end if; + end process busAccess3; + + ------------------------------------------------------------------------------ + -- UART access + sendByte: process + variable serialData: unsigned(7 downto 0); + begin + -- send stop bit + RxD <= '1'; + -- get new word + wait until rising_edge(uartSend); + serialData := to_unsigned(uartData, serialData'length); + -- send start bit + RxD <= '0'; + wait for baudPeriodNb * clockPeriod; + -- send data bits + for index in serialData'reverse_range loop + RxD <= serialData(index); + wait for baudPeriodNb * clockPeriod; + end loop; + end process sendByte; + +END ARCHITECTURE test; diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbDriver_sim.vhd b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbDriver_sim.vhd new file mode 100644 index 0000000..e8514e6 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbDriver_sim.vhd @@ -0,0 +1,74 @@ +LIBRARY std; + USE std.TEXTIO.all; +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE RTL OF uvmAhbDriver IS + + constant flipflopDelay: time := 1 ns; + + signal hAddr1, hWData1, hWData2: natural := 0; + signal hWrite1, hWrite2, hRead1, hRead2: std_ulogic := '0'; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + hReset_n <= not(reset); + hClk <= clock; + + ------------------------------------------------------------------------------ + -- interpret transaction + interpretTransaction: process(driverTransaction) + variable my_line : line; + variable command_part : line; + begin + write(my_line, driverTransaction); + read_first(my_line, command_part); + if command_part.all = "write" then + read_first(my_line, command_part); + hAddr1 <= sscanf(command_part.all); + read_first(my_line, command_part); + hWData1 <= sscanf(command_part.all); + hWrite1 <= '1', '0' after 1 ns; + elsif command_part.all = "read" then + read_first(my_line, command_part); + hAddr1 <= sscanf(command_part.all); + hRead1 <= '1', '0' after 1 ns; + end if; + deallocate(my_line); + end process interpretTransaction; + -- expand pulses to the next clock + expandReadWrite: process + begin + hRead2 <= '0'; + hWrite2 <= '0'; + wait on hRead1, hWrite1; + hRead2 <= hRead1; + hWrite2 <= hWrite1; + wait until rising_edge(clock); + end process expandReadWrite; + -- delay signals 1 or 2 clock periods + synchAccess: process(reset, clock) + begin + if reset = '1' then + hAddr <= (others => '0'); + hWData2 <= 0; + hWData <= (others => '0'); + hWrite <= '0'; + hSel <= '0'; + hTrans <= transIdle; + elsif rising_edge(clock) then + hAddr <= to_unsigned(hAddr1, hAddr'length) after flipflopDelay; + hWData2 <= hWData1; + hWData <= std_ulogic_vector(to_unsigned(hWData2, hWData'length)) after flipflopDelay; + hWrite <= hWrite2 after flipflopDelay; + hSel <= hWrite2 or hRead2 after flipflopDelay; + if (hWrite2 = '1') or (hRead2 = '1') then + hTrans <= transNonSeq after flipflopDelay; + else + hTrans <= transIdle after flipflopDelay; + end if; + end if; + end process synchAccess; + +END ARCHITECTURE RTL; diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbMonitor_sim.vhd b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbMonitor_sim.vhd new file mode 100644 index 0000000..395ea6f --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hdl/uvmAhbMonitor_sim.vhd @@ -0,0 +1,49 @@ +LIBRARY Common_test; + USE Common_test.testUtils.all; + +ARCHITECTURE RTL OF uvmAhbMonitor IS + + signal addressReg: unsigned(hAddr'range); + signal writeReg: std_ulogic; + signal readReg: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- register address and controls + storeControls: process(hReset_n, hClk) + begin + if not(hReset_n) = '1' then + addressReg <= (others => '0'); + writeReg <= '0'; + readReg <= '0'; + elsif rising_edge(hClk) then + writeReg <= '0'; + readReg <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addressReg <= hAddr(addressReg'range); + writeReg <= hWrite; + readReg <= not hWrite; + end if; + end if; + end process storeControls; + -- monitor acesses + reportBusAccess: process(hReset_n, hClk) + begin + if not(hReset_n) = '1' then + monitorTransaction <= pad( false, ' ', monitorTransaction'length, "idle"); + elsif rising_edge(hClk) then + if readReg = '1' then + monitorTransaction <= pad( + false, ' ', monitorTransaction'length, + "read " & sprintf("%04X", addressReg) & ' ' & sprintf("%04X", hRData) + ); + elsif writeReg = '1' then + monitorTransaction <= pad( + false, ' ', monitorTransaction'length, + "written " & sprintf("%04X", addressReg) & ' ' & sprintf("%04X", hWData) + ); + end if; + end if; + end process reportBusAccess; + +END ARCHITECTURE RTL; diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbGpio_tester_test.vhd._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbGpio_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbGpio_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbUart_tester_test.vhd._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbUart_tester_test.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbUart_tester_test.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_entity.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_struct.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_struct.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tester_entity.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tester_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbgpio_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_entity.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_struct.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tb_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tester_entity.vhg._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tester_entity.vhg._fpf new file mode 100644 index 0000000..3eea781 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_ahbuart_tester_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_ANY diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbDriver_sim.vhd._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbDriver_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbDriver_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbMonitor_sim.vhd._fpf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbMonitor_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/.hdlsidedata/_uvmAhbMonitor_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tb._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tb._epf new file mode 100644 index 0000000..a4f9fe7 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom ahb@gpio_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tester._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tester._epf new file mode 100644 index 0000000..1f5a6c5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbgpio_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom ahbGpio_tester_test.vhd diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tb._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tb._epf new file mode 100644 index 0000000..833e6e1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tb._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom ahb@uart_tb/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tester._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tester._epf new file mode 100644 index 0000000..254f3eb --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_ahbuart_tester._epf @@ -0,0 +1,2 @@ +DEFAULT_ARCHITECTURE atom test +DEFAULT_FILE atom ahbUart_tester_test.vhd diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbagenthw._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbagenthw._epf new file mode 100644 index 0000000..7620737 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbagenthw._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom uvm@ahb@agent@hw/struct.bd +DEFAULT_ARCHITECTURE atom struct diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbdriver._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbdriver._epf new file mode 100644 index 0000000..69ad7cc --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbdriver._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom uvmAhbDriver_sim.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbmonitor._epf b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbmonitor._epf new file mode 100644 index 0000000..cba4a77 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/_uvmahbmonitor._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom uvmAhbMonitor_sim.vhd +DEFAULT_ARCHITECTURE atom RTL diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/struct.bd b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/struct.bd new file mode 100644 index 0000000..018b5fa --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/struct.bd @@ -0,0 +1,4005 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "AhbLiteComponents_test" +duName "ahbGpio_tester" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 12657,0 +) +(Instance +name "I_DUT" +duLibraryName "AhbLiteComponents" +duName "ahbGpio" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +] +mwi 0 +uid 13194,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbGpio_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbGpio_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:06:49" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbGpio_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbGpio_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:06:49" +) +(vvPair +variable "unit" +value "ahbGpio_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "119000,85000,138000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "119200,85400,134600,86600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,85000,113000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "94250,85250,105750,86750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,91000,113000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,91400,110000,92600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,85000,119000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,85400,117900,86600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,87000,113000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,87400,107400,88600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,87000,92000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,87400,90600,88600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,89000,92000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,89400,90600,90600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,87000,138000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,87200,127300,88400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,89000,113000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,89400,107500,90600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,91000,92000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,91400,91500,92600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "87000,85000,138000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Net +uid 12555,0 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 5 +suid 108,0 +) +declText (MLText +uid 12556,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hReset_n : std_uLogic +" +) +) +*13 (Net +uid 12563,0 +decl (Decl +n "hClk" +t "std_uLogic" +o 2 +suid 109,0 +) +declText (MLText +uid 12564,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hClk : std_uLogic +" +) +) +*14 (Net +uid 12571,0 +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +suid 110,0 +) +declText (MLText +uid 12572,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hResp : std_uLogic +" +) +) +*15 (Net +uid 12579,0 +decl (Decl +n "hReady" +t "std_uLogic" +o 4 +suid 111,0 +) +declText (MLText +uid 12580,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hReady : std_uLogic +" +) +) +*16 (Net +uid 12587,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 112,0 +) +declText (MLText +uid 12588,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,32000,1200" +st "SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0) +" +) +) +*17 (Net +uid 12595,0 +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 113,0 +) +declText (MLText +uid 12596,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hSel : std_uLogic +" +) +) +*18 (Net +uid 12603,0 +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 114,0 +) +declText (MLText +uid 12604,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hWrite : std_uLogic +" +) +) +*19 (Net +uid 12611,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 115,0 +) +declText (MLText +uid 12612,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,32500,1200" +st "SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0) +" +) +) +*20 (Net +uid 12619,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 116,0 +) +declText (MLText +uid 12620,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,32000,1200" +st "SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0) +" +) +) +*21 (Net +uid 12627,0 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 117,0 +) +declText (MLText +uid 12628,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,30000,1200" +st "SIGNAL hAddr : unsigned( ahbAddressBitNb-1 DOWNTO 0 ) +" +) +) +*22 (Blk +uid 12657,0 +shape (Rectangle +uid 12658,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "42000,67000,132000,75000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 12659,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 12660,0 +va (VaSet +font "Verdana,12,0" +) +xt "42400,74900,60800,76300" +st "AhbLiteComponents_test" +blo "42400,76100" +tm "BdLibraryNameMgr" +) +*24 (Text +uid 12661,0 +va (VaSet +font "Verdana,12,0" +) +xt "42400,76300,53800,77700" +st "ahbGpio_tester" +blo "42400,77500" +tm "BlkNameMgr" +) +*25 (Text +uid 12662,0 +va (VaSet +font "Verdana,12,0" +) +xt "42400,77700,48300,79100" +st "I_tester" +blo "42400,78900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12663,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12664,0 +text (MLText +uid 12665,0 +va (VaSet +font "Courier New,8,0" +) +xt "42400,80300,68900,81900" +st "ioNb = ioNb ( positive ) +clockFrequency = clockFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +viewicon (ZoomableIcon +uid 12742,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "42250,73250,43750,74750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +) +*26 (SaComponent +uid 13194,0 +optionalChildren [ +*27 (CptPort +uid 13142,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13143,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,36625,72000,37375" +) +tg (CPTG +uid 13144,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13145,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,36300,77500,37700" +st "hAddr" +blo "73000,37500" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*28 (CptPort +uid 13146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13147,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,38625,72000,39375" +) +tg (CPTG +uid 13148,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13149,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,38300,78900,39700" +st "hWData" +blo "73000,39500" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +) +*29 (CptPort +uid 13150,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13151,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,46625,72000,47375" +) +tg (CPTG +uid 13152,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13153,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,46300,78400,47700" +st "hRData" +blo "73000,47500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +) +*30 (CptPort +uid 13154,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13155,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,42625,72000,43375" +) +tg (CPTG +uid 13156,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13157,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,42300,78000,43700" +st "hWrite" +blo "73000,43500" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +) +*31 (CptPort +uid 13158,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13159,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,40625,72000,41375" +) +tg (CPTG +uid 13160,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13161,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,40300,78100,41700" +st "hTrans" +blo "73000,41500" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +) +*32 (CptPort +uid 13162,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13163,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,48625,72000,49375" +) +tg (CPTG +uid 13164,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13165,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,48300,78500,49700" +st "hReady" +blo "73000,49500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*33 (CptPort +uid 13166,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13167,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,50625,72000,51375" +) +tg (CPTG +uid 13168,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13169,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,50300,77700,51700" +st "hResp" +blo "73000,51500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +) +*34 (CptPort +uid 13170,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13171,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,54625,72000,55375" +) +tg (CPTG +uid 13172,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13173,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,54300,76500,55700" +st "hClk" +blo "73000,55500" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*35 (CptPort +uid 13174,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13175,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,56625,72000,57375" +) +tg (CPTG +uid 13176,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13177,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,56300,79800,57700" +st "hReset_n" +blo "73000,57500" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +) +*36 (CptPort +uid 13178,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88000,38625,88750,39375" +) +tg (CPTG +uid 13180,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 13181,0 +va (VaSet +font "Verdana,12,0" +) +xt "82800,38300,87000,39700" +st "ioOut" +ju 2 +blo "87000,39500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2065,0 +) +) +) +*37 (CptPort +uid 13182,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13183,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "71250,44625,72000,45375" +) +tg (CPTG +uid 13184,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13185,0 +va (VaSet +font "Verdana,12,0" +) +xt "73000,44300,76500,45700" +st "hSel" +blo "73000,45500" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +) +*38 (CptPort +uid 13186,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13187,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88000,40625,88750,41375" +) +tg (CPTG +uid 13188,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 13189,0 +va (VaSet +font "Verdana,12,0" +) +xt "83800,40300,87000,41700" +st "ioIn" +ju 2 +blo "87000,41500" +) +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 12 +suid 2067,0 +) +) +) +*39 (CptPort +uid 13190,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13191,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "88000,36625,88750,37375" +) +tg (CPTG +uid 13192,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 13193,0 +va (VaSet +font "Verdana,12,0" +) +xt "83500,36300,87000,37700" +st "ioEn" +ju 2 +blo "87000,37500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 13 +suid 2068,0 +) +) +) +] +shape (Rectangle +uid 13195,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "72000,33000,88000,59000" +) +oxt "47000,16000,63000,42000" +ttg (MlTextGroup +uid 13196,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*40 (Text +uid 13197,0 +va (VaSet +) +xt "72100,58700,79600,59700" +st "AhbLiteComponents" +blo "72100,59500" +tm "BdLibraryNameMgr" +) +*41 (Text +uid 13198,0 +va (VaSet +) +xt "72100,59700,75300,60700" +st "ahbGpio" +blo "72100,60500" +tm "CptNameMgr" +) +*42 (Text +uid 13199,0 +va (VaSet +) +xt "72100,60700,74800,61700" +st "I_DUT" +blo "72100,61500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 13200,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 13201,0 +text (MLText +uid 13202,0 +va (VaSet +font "Courier New,8,0" +) +xt "72000,63000,88000,63800" +st "ioNb = ioNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +] +) +viewicon (ZoomableIcon +uid 13203,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "72250,57250,73750,58750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*43 (HdlText +uid 13204,0 +optionalChildren [ +*44 (EmbeddedText +uid 13246,0 +commentText (CommentText +uid 13247,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 13248,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "104000,34000,120000,44000" +) +oxt "0,0,18000,5000" +text (MLText +uid 13249,0 +va (VaSet +) +xt "104200,34200,119200,43800" +st " +tristate: process(ioEn, ioOut) +begin + for index in io'range loop + if ioEn(index) = '1' then + io(index) <= ioOut(index); + else + io(index) <= 'Z'; + end if; + end loop; +end process tristate; + +ioIn <= std_ulogic_vector(io); + +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 10000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 13205,0 +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "104000,33000,120000,45000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 13206,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*45 (Text +uid 13207,0 +va (VaSet +font "Verdana,8,1" +) +xt "103850,45000,106150,46000" +st "eb1" +blo "103850,45800" +tm "HdlTextNameMgr" +) +*46 (Text +uid 13208,0 +va (VaSet +font "Verdana,8,1" +) +xt "103850,46000,105050,47000" +st "1" +blo "103850,46800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +uid 13209,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "104250,43250,105750,44750" +iconName "TextFile.png" +iconMaskName "TextFile.msk" +ftype 21 +) +viewiconposition 0 +) +*47 (Net +uid 13210,0 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 12 +suid 118,0 +) +declText (MLText +uid 13211,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,28000,1200" +st "SIGNAL ioEn : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*48 (Net +uid 13218,0 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 14 +suid 119,0 +) +declText (MLText +uid 13219,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,28000,1200" +st "SIGNAL ioOut : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*49 (Net +uid 13226,0 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 13 +suid 120,0 +) +declText (MLText +uid 13227,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,28000,1200" +st "SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*50 (Net +uid 13244,0 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 122,0 +) +declText (MLText +uid 13245,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,27500,1200" +st "SIGNAL io : std_logic_vector(ioNb-1 DOWNTO 0) +" +) +) +*51 (Wire +uid 12557,0 +shape (OrthoPolyLine +uid 12558,0 +va (VaSet +vasetType 3 +) +xt "70000,57000,71250,67000" +pts [ +"71250,57000" +"70000,57000" +"70000,67000" +] +) +start &35 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12561,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12562,0 +va (VaSet +font "Verdana,12,0" +) +xt "63250,55600,70050,57000" +st "hReset_n" +blo "63250,56800" +tm "WireNameMgr" +) +) +on &12 +) +*52 (Wire +uid 12565,0 +shape (OrthoPolyLine +uid 12566,0 +va (VaSet +vasetType 3 +) +xt "68000,55000,71250,67000" +pts [ +"71250,55000" +"68000,55000" +"68000,67000" +] +) +start &34 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12569,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12570,0 +va (VaSet +font "Verdana,12,0" +) +xt "66250,53600,69750,55000" +st "hClk" +blo "66250,54800" +tm "WireNameMgr" +) +) +on &13 +) +*53 (Wire +uid 12573,0 +shape (OrthoPolyLine +uid 12574,0 +va (VaSet +vasetType 3 +) +xt "64000,51000,71250,67000" +pts [ +"71250,51000" +"64000,51000" +"64000,67000" +] +) +start &33 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12578,0 +va (VaSet +font "Verdana,12,0" +) +xt "65250,49600,69950,51000" +st "hResp" +blo "65250,50800" +tm "WireNameMgr" +) +) +on &14 +) +*54 (Wire +uid 12581,0 +shape (OrthoPolyLine +uid 12582,0 +va (VaSet +vasetType 3 +) +xt "62000,49000,71250,67000" +pts [ +"71250,49000" +"62000,49000" +"62000,67000" +] +) +start &32 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12585,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12586,0 +va (VaSet +font "Verdana,12,0" +) +xt "64250,47600,69750,49000" +st "hReady" +blo "64250,48800" +tm "WireNameMgr" +) +) +on &15 +) +*55 (Wire +uid 12589,0 +shape (OrthoPolyLine +uid 12590,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "60000,47000,71250,67000" +pts [ +"71250,47000" +"60000,47000" +"60000,67000" +] +) +start &29 +end &22 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12594,0 +va (VaSet +font "Verdana,12,0" +) +xt "65250,45600,70650,47000" +st "hRData" +blo "65250,46800" +tm "WireNameMgr" +) +) +on &16 +) +*56 (Wire +uid 12597,0 +shape (OrthoPolyLine +uid 12598,0 +va (VaSet +vasetType 3 +) +xt "58000,45000,71250,67000" +pts [ +"71250,45000" +"58000,45000" +"58000,67000" +] +) +start &37 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12601,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12602,0 +va (VaSet +font "Verdana,12,0" +) +xt "66250,43600,69750,45000" +st "hSel" +blo "66250,44800" +tm "WireNameMgr" +) +) +on &17 +) +*57 (Wire +uid 12605,0 +shape (OrthoPolyLine +uid 12606,0 +va (VaSet +vasetType 3 +) +xt "56000,43000,71250,67000" +pts [ +"71250,43000" +"56000,43000" +"56000,67000" +] +) +start &30 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12609,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12610,0 +va (VaSet +font "Verdana,12,0" +) +xt "65250,41600,70250,43000" +st "hWrite" +blo "65250,42800" +tm "WireNameMgr" +) +) +on &18 +) +*58 (Wire +uid 12613,0 +shape (OrthoPolyLine +uid 12614,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "54000,41000,71250,67000" +pts [ +"71250,41000" +"54000,41000" +"54000,67000" +] +) +start &31 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12617,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12618,0 +va (VaSet +font "Verdana,12,0" +) +xt "65250,39600,70350,41000" +st "hTrans" +blo "65250,40800" +tm "WireNameMgr" +) +) +on &19 +) +*59 (Wire +uid 12621,0 +shape (OrthoPolyLine +uid 12622,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52000,39000,71250,67000" +pts [ +"71250,39000" +"52000,39000" +"52000,67000" +] +) +start &28 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12625,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12626,0 +va (VaSet +font "Verdana,12,0" +) +xt "64250,37600,70150,39000" +st "hWData" +blo "64250,38800" +tm "WireNameMgr" +) +) +on &20 +) +*60 (Wire +uid 12629,0 +shape (OrthoPolyLine +uid 12630,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "50000,37000,71250,67000" +pts [ +"71250,37000" +"50000,37000" +"50000,67000" +] +) +start &27 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12633,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12634,0 +va (VaSet +font "Verdana,12,0" +) +xt "65250,35600,69750,37000" +st "hAddr" +blo "65250,36800" +tm "WireNameMgr" +) +) +on &21 +) +*61 (Wire +uid 13212,0 +shape (OrthoPolyLine +uid 13213,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "88750,37000,104000,37000" +pts [ +"88750,37000" +"104000,37000" +] +) +start &39 +end &43 +sat 32 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 13216,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13217,0 +va (VaSet +font "Verdana,12,0" +) +xt "90750,35600,94250,37000" +st "ioEn" +blo "90750,36800" +tm "WireNameMgr" +) +) +on &47 +) +*62 (Wire +uid 13220,0 +shape (OrthoPolyLine +uid 13221,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "88750,39000,104000,39000" +pts [ +"88750,39000" +"104000,39000" +] +) +start &36 +end &43 +sat 32 +eat 1 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 13224,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13225,0 +va (VaSet +font "Verdana,12,0" +) +xt "90750,37600,94950,39000" +st "ioOut" +blo "90750,38800" +tm "WireNameMgr" +) +) +on &48 +) +*63 (Wire +uid 13228,0 +shape (OrthoPolyLine +uid 13229,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "88750,41000,104000,41000" +pts [ +"88750,41000" +"104000,41000" +] +) +start &38 +end &43 +sat 32 +eat 2 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 13232,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13233,0 +va (VaSet +font "Verdana,12,0" +) +xt "90750,39600,93950,41000" +st "ioIn" +blo "90750,40800" +tm "WireNameMgr" +) +) +on &49 +) +*64 (Wire +uid 13236,0 +shape (OrthoPolyLine +uid 13237,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "120000,37000,124000,67000" +pts [ +"120000,37000" +"124000,37000" +"124000,67000" +] +) +start &43 +end &22 +sat 4 +eat 4 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 13242,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13243,0 +va (VaSet +font "Verdana,12,0" +) +xt "122000,35600,123900,37000" +st "io" +blo "122000,36800" +tm "WireNameMgr" +) +) +on &50 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *65 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +uid 1297,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,19000,35900,20000" +st "Package List" +blo "29000,19800" +) +*67 (MLText +uid 1298,0 +va (VaSet +) +xt "29000,20000,46500,26000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*69 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*70 (MLText +uid 193,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,2800,30400,5400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*71 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*72 (MLText +uid 195,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*73 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*74 (MLText +uid 197,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "27426,17402,170102,94921" +cachedDiagramExtent "0,0,138000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "29000,19000" +lastUid 13522,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "300,1000,4000,2000" +st "Panel0" +blo "300,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,2550,8000,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*76 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,3950,7300,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*77 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,5350,4800,6750" +st "U_0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,3000,4300,4200" +st "Library" +blo "-100,4000" +) +*79 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,4200,9800,5400" +st "MWComponent" +blo "-100,5200" +) +*80 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,5400,2700,6600" +st "U_0" +blo "-100,6400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,2550,4050,3750" +st "Library" +blo "-350,3550" +tm "BdLibraryNameMgr" +) +*82 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,3750,8950,4950" +st "SaComponent" +blo "-350,4750" +tm "CptNameMgr" +) +*83 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,4950,2450,6150" +st "U_0" +blo "-350,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "-600,8250,900,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,2550,3550,3750" +st "Library" +blo "-850,3550" +) +*85 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,3750,9450,4950" +st "VhdlComponent" +blo "-850,4750" +) +*86 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,4950,1950,6150" +st "U_0" +blo "-850,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,2550,2800,3750" +st "Library" +blo "-1600,3550" +) +*88 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,3750,10100,4950" +st "VerilogComponent" +blo "-1600,4750" +) +*89 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,4950,1200,6150" +st "U_0" +blo "-1600,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*90 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,3400,5250,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*91 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,4400,4150,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-750,-600,750,600" +st "G" +blo "-750,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,400,3700,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1400,1500,2600" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1200,9600,2400" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,18500,-200" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "150,400,950,1400" +st "1" +blo "150,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*92 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*93 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,11000,-200" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "150,400,950,1400" +st "1" +blo "150,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*94 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*95 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,26800,36000,27800" +st "Declarations" +blo "29000,27600" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,32400,29000" +st "Ports:" +blo "29000,28800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,27800,33800,28800" +st "Pre User:" +blo "29000,28600" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,10,0" +) +xt "31000,28800,59200,33600" +st "constant ioNb: positive := 8; + +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,38000,29000" +st "Diagram Signals:" +blo "29000,28800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,35000,29000" +st "Post User:" +blo "29000,28800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,10,0" +) +xt "31000,42400,31000,42400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 122,0 +usingSuid 1 +emptyRow *96 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*97 (RefLabelRowHdr +) +*98 (TitleRowHdr +) +*99 (FilterRowHdr +) +*100 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*101 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*102 (GroupColHdr +tm "GroupColHdrMgr" +) +*103 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*104 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*105 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*106 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*107 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*108 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 5 +suid 108,0 +) +) +uid 12637,0 +) +*110 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hClk" +t "std_uLogic" +o 2 +suid 109,0 +) +) +uid 12639,0 +) +*111 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +suid 110,0 +) +) +uid 12641,0 +) +*112 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReady" +t "std_uLogic" +o 4 +suid 111,0 +) +) +uid 12643,0 +) +*113 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 112,0 +) +) +uid 12645,0 +) +*114 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 113,0 +) +) +uid 12647,0 +) +*115 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 114,0 +) +) +uid 12649,0 +) +*116 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 115,0 +) +) +uid 12651,0 +) +*117 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 116,0 +) +) +uid 12653,0 +) +*118 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 117,0 +) +) +uid 12655,0 +) +*119 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 12 +suid 118,0 +) +) +uid 13250,0 +) +*120 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 14 +suid 119,0 +) +) +uid 13252,0 +) +*121 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 13 +suid 120,0 +) +) +uid 13254,0 +) +*122 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 122,0 +) +) +uid 13256,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*123 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *124 (MRCItem +litem &96 +pos 14 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*125 (MRCItem +litem &97 +pos 0 +dimension 20 +uid 3326,0 +) +*126 (MRCItem +litem &98 +pos 1 +dimension 23 +uid 3327,0 +) +*127 (MRCItem +litem &99 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*128 (MRCItem +litem &109 +pos 0 +dimension 20 +uid 12638,0 +) +*129 (MRCItem +litem &110 +pos 1 +dimension 20 +uid 12640,0 +) +*130 (MRCItem +litem &111 +pos 2 +dimension 20 +uid 12642,0 +) +*131 (MRCItem +litem &112 +pos 3 +dimension 20 +uid 12644,0 +) +*132 (MRCItem +litem &113 +pos 4 +dimension 20 +uid 12646,0 +) +*133 (MRCItem +litem &114 +pos 5 +dimension 20 +uid 12648,0 +) +*134 (MRCItem +litem &115 +pos 6 +dimension 20 +uid 12650,0 +) +*135 (MRCItem +litem &116 +pos 7 +dimension 20 +uid 12652,0 +) +*136 (MRCItem +litem &117 +pos 8 +dimension 20 +uid 12654,0 +) +*137 (MRCItem +litem &118 +pos 9 +dimension 20 +uid 12656,0 +) +*138 (MRCItem +litem &119 +pos 10 +dimension 20 +uid 13251,0 +) +*139 (MRCItem +litem &120 +pos 11 +dimension 20 +uid 13253,0 +) +*140 (MRCItem +litem &121 +pos 12 +dimension 20 +uid 13255,0 +) +*141 (MRCItem +litem &122 +pos 13 +dimension 20 +uid 13257,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*142 (MRCItem +litem &100 +pos 0 +dimension 20 +uid 3330,0 +) +*143 (MRCItem +litem &102 +pos 1 +dimension 50 +uid 3331,0 +) +*144 (MRCItem +litem &103 +pos 2 +dimension 100 +uid 3332,0 +) +*145 (MRCItem +litem &104 +pos 3 +dimension 50 +uid 3333,0 +) +*146 (MRCItem +litem &105 +pos 4 +dimension 100 +uid 3334,0 +) +*147 (MRCItem +litem &106 +pos 5 +dimension 100 +uid 3335,0 +) +*148 (MRCItem +litem &107 +pos 6 +dimension 50 +uid 3336,0 +) +*149 (MRCItem +litem &108 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *150 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*151 (RefLabelRowHdr +) +*152 (TitleRowHdr +) +*153 (FilterRowHdr +) +*154 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*155 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*156 (GroupColHdr +tm "GroupColHdrMgr" +) +*157 (NameColHdr +tm "GenericNameColHdrMgr" +) +*158 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*159 (InitColHdr +tm "GenericValueColHdrMgr" +) +*160 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*161 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*162 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *163 (MRCItem +litem &150 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*164 (MRCItem +litem &151 +pos 0 +dimension 20 +uid 3354,0 +) +*165 (MRCItem +litem &152 +pos 1 +dimension 23 +uid 3355,0 +) +*166 (MRCItem +litem &153 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*167 (MRCItem +litem &154 +pos 0 +dimension 20 +uid 3358,0 +) +*168 (MRCItem +litem &156 +pos 1 +dimension 50 +uid 3359,0 +) +*169 (MRCItem +litem &157 +pos 2 +dimension 100 +uid 3360,0 +) +*170 (MRCItem +litem &158 +pos 3 +dimension 100 +uid 3361,0 +) +*171 (MRCItem +litem &159 +pos 4 +dimension 50 +uid 3362,0 +) +*172 (MRCItem +litem &160 +pos 5 +dimension 50 +uid 3363,0 +) +*173 (MRCItem +litem &161 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/symbol.sb new file mode 100644 index 0000000..4f81cf2 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tb/symbol.sb @@ -0,0 +1,1258 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbGpio_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "entity_name" +value "ahbGpio_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:51:39" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbGpio_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbGpio_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "c:\\eda\\modelsim\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:51:39" +) +(vvPair +variable "unit" +value "ahbGpio_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,44850,23100" +st "AhbLiteComponents_test" +blo "29950,22900" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,23100,37050,24300" +st "ahbGpio_tb" +blo "29950,24100" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "32000,27600,43500,28400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41400,69600,42600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "29250,41250,40750,42750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47400,40800,48600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41400,52900,42600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43400,42400,44600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43400,25600,44600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45400,25600,46600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,62300,44400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45400,42500,46600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47400,26500,48600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "Arial,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "Arial,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,10,1" +) +xt "0,5800,3200,7000" +st "User:" +blo "0,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,7000,2000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 134,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tester/interface b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tester/interface new file mode 100644 index 0000000..20ae94a --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@gpio_tester/interface @@ -0,0 +1,2036 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 66,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 130,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 56,0 +) +) +uid 713,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 2 +suid 57,0 +) +) +uid 715,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 58,0 +) +) +uid 717,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 4 +suid 59,0 +) +) +uid 719,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 5 +suid 60,0 +) +) +uid 721,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +suid 61,0 +) +) +uid 723,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 62,0 +) +) +uid 725,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 63,0 +) +) +uid 727,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 64,0 +) +) +uid 729,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 65,0 +) +) +uid 731,0 +) +*24 (LogPort +port (LogicalPort +m 2 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 66,0 +) +) +uid 733,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 143,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 145,0 +optionalChildren [ +*27 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 146,0 +) +*28 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 147,0 +) +*29 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 148,0 +) +*30 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 714,0 +) +*31 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 716,0 +) +*32 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 718,0 +) +*33 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 720,0 +) +*34 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 722,0 +) +*35 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 724,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 726,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 728,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 730,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 732,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 734,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 149,0 +optionalChildren [ +*41 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 150,0 +) +*42 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 151,0 +) +*43 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 152,0 +) +*44 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 153,0 +) +*45 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 154,0 +) +*46 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 155,0 +) +*47 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 156,0 +) +*48 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 157,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 144,0 +vaOverrides [ +] +) +] +) +uid 129,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 159,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +*61 (LogGeneric +generic (GiElement +name "ioNb" +type "positive" +value "" +) +uid 208,0 +) +*62 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 433,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 171,0 +optionalChildren [ +*63 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *64 (MRCItem +litem &49 +pos 2 +dimension 20 +) +uid 173,0 +optionalChildren [ +*65 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 174,0 +) +*66 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 175,0 +) +*67 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 176,0 +) +*68 (MRCItem +litem &61 +pos 0 +dimension 20 +uid 209,0 +) +*69 (MRCItem +litem &62 +pos 1 +dimension 20 +uid 434,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 177,0 +optionalChildren [ +*70 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 178,0 +) +*71 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 179,0 +) +*72 (MRCItem +litem &56 +pos 2 +dimension 100 +uid 180,0 +) +*73 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 181,0 +) +*74 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 182,0 +) +*75 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 183,0 +) +*76 (MRCItem +litem &60 +pos 6 +dimension 80 +uid 184,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 172,0 +vaOverrides [ +] +) +] +) +uid 158,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tester" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbGpio_tester" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbGpio_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "14:51:40" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbGpio_tester" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@gpio_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbGpio_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "14:51:40" +) +(vvPair +variable "unit" +value "ahbGpio_tester" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 128,0 +optionalChildren [ +*77 (SymbolBody +uid 8,0 +optionalChildren [ +*78 (CptPort +uid 658,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 659,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 660,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 661,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,11500" +st "hAddr" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 662,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,75500,5200" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 56,0 +) +) +) +*79 (CptPort +uid 663,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 664,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +tg (CPTG +uid 665,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 666,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "40300,7000,41700,10500" +st "hClk" +ju 2 +blo "41500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 667,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "hClk : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 2 +suid 57,0 +) +) +) +*80 (CptPort +uid 668,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 669,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 670,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 671,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "32300,7000,33700,12400" +st "hRData" +ju 2 +blo "33500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 672,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,77500,2800" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 58,0 +) +) +) +*81 (CptPort +uid 673,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 674,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 675,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 676,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "34300,7000,35700,12500" +st "hReady" +ju 2 +blo "35500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 677,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,61000,3600" +st "hReady : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 4 +suid 59,0 +) +) +) +*82 (CptPort +uid 678,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 679,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +tg (CPTG +uid 680,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 681,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "42300,7000,43700,13800" +st "hReset_n" +ju 2 +blo "43500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 682,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,61000,6800" +st "hReset_n : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 5 +suid 60,0 +) +) +) +*83 (CptPort +uid 683,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 684,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 685,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 686,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "36300,7000,37700,11700" +st "hResp" +ju 2 +blo "37500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 687,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,61000,4400" +st "hResp : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 6 +suid 61,0 +) +) +) +*84 (CptPort +uid 688,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 689,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 690,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 691,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,10500" +st "hSel" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 692,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,61000,7600" +st "hSel : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 62,0 +) +) +) +*85 (CptPort +uid 693,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 694,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 695,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 696,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,12100" +st "hTrans" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 697,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,78000,8400" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 63,0 +) +) +) +*86 (CptPort +uid 698,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 699,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 700,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 701,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,12900" +st "hWData" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 702,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,77500,9200" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 64,0 +) +) +) +*87 (CptPort +uid 703,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 704,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 705,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 706,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,12000" +st "hWrite" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 707,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,61000,10000" +st "hWrite : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 65,0 +) +) +) +*88 (CptPort +uid 708,0 +ps "OnEdgeStrategy" +shape (Diamond +uid 709,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "96625,5250,97375,6000" +) +tg (CPTG +uid 710,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 711,0 +va (VaSet +font "Verdana,12,0" +) +xt "98000,6000,99900,7400" +st "io" +blo "98000,7200" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 712,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,72000,10800" +st "io : INOUT std_logic_vector (ioNb-1 DOWNTO 0) +" +) +thePort (LogicalPort +m 2 +decl (Decl +n "io" +t "std_logic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 66,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,105000,14000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "54600,9000,65400,10000" +st "AhbLiteComponents_test" +blo "54600,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "54600,10000,61100,11000" +st "ahbGpio_tester" +blo "54600,10800" +) +) +gi *89 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "36000,6000,50500,9200" +st "Generic Declarations + +ioNb positive +clockFrequency real " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "" +) +(GiElement +name "clockFrequency" +type "real" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*90 (Grouping +uid 16,0 +optionalChildren [ +*91 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *101 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*102 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*103 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,7000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "239,85,1256,775" +viewArea "-500,-500,71320,48820" +cachedDiagramExtent "0,0,105000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "AhbLiteComponents_test" +entityName "ahbGpio_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *104 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *105 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,10800,44400,11800" +st "User:" +blo "42000,11600" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11800,44000,11800" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 734,0 +activeModelName "Symbol:GEN" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/struct.bd b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/struct.bd new file mode 100644 index 0000000..3361ac7 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/struct.bd @@ -0,0 +1,3697 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_tester" +duLibraryName "AhbLiteComponents_test" +duName "ahbUart_tester" +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +mwi 0 +uid 12657,0 +) +(Instance +name "I_DUT" +duLibraryName "AhbLiteComponents" +duName "ahbUart" +elements [ +(GiElement +name "txFifoDepth" +type "positive" +value "txFifoDepth" +) +(GiElement +name "rxFifoDepth" +type "positive" +value "rxFifoDepth" +) +] +mwi 0 +uid 13707,0 +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbUart_tb" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbUart_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:07:00" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "ahbUart_tb" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbUart_tb\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:07:00" +) +(vvPair +variable "unit" +value "ahbUart_tb" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 198,0 +optionalChildren [ +*1 (Grouping +uid 1487,0 +optionalChildren [ +*2 (CommentText +uid 1489,0 +shape (Rectangle +uid 1490,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "119000,85000,138000,87000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 1491,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "119200,85400,134600,86600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*3 (CommentText +uid 1492,0 +shape (Rectangle +uid 1493,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,85000,113000,87000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 1494,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "94250,85250,105750,86750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*4 (CommentText +uid 1495,0 +shape (Rectangle +uid 1496,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,91000,113000,93000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 1497,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,91400,105900,92600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*5 (CommentText +uid 1498,0 +shape (Rectangle +uid 1499,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,85000,119000,87000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 1500,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,85400,117900,86600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*6 (CommentText +uid 1501,0 +shape (Rectangle +uid 1502,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,87000,113000,89000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 1503,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,87400,107400,88600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*7 (CommentText +uid 1504,0 +shape (Rectangle +uid 1505,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,87000,92000,89000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 1506,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,87400,90600,88600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 1507,0 +shape (Rectangle +uid 1508,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,89000,92000,91000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 1509,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,89400,90600,90600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 1510,0 +shape (Rectangle +uid 1511,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "113000,87000,138000,93000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 1512,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "113200,87200,127300,88400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*10 (CommentText +uid 1513,0 +shape (Rectangle +uid 1514,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "92000,89000,113000,91000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 1515,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "92200,89400,107500,90600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 1516,0 +shape (Rectangle +uid 1517,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "87000,91000,92000,93000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 1518,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "87200,91400,91500,92600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 1488,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "87000,85000,138000,93000" +) +oxt "13000,22000,64000,30000" +) +*12 (Net +uid 12555,0 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 108,0 +) +declText (MLText +uid 12556,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hReset_n : std_uLogic +" +) +) +*13 (Net +uid 12563,0 +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 109,0 +) +declText (MLText +uid 12564,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hClk : std_uLogic +" +) +) +*14 (Net +uid 12571,0 +decl (Decl +n "hResp" +t "std_uLogic" +o 8 +suid 110,0 +) +declText (MLText +uid 12572,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hResp : std_uLogic +" +) +) +*15 (Net +uid 12579,0 +decl (Decl +n "hReady" +t "std_uLogic" +o 6 +suid 111,0 +) +declText (MLText +uid 12580,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hReady : std_uLogic +" +) +) +*16 (Net +uid 12587,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 5 +suid 112,0 +) +declText (MLText +uid 12588,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,32000,1200" +st "SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0) +" +) +) +*17 (Net +uid 12595,0 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 113,0 +) +declText (MLText +uid 12596,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hSel : std_uLogic +" +) +) +*18 (Net +uid 12603,0 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 114,0 +) +declText (MLText +uid 12604,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL hWrite : std_uLogic +" +) +) +*19 (Net +uid 12611,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 115,0 +) +declText (MLText +uid 12612,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,32500,1200" +st "SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0) +" +) +) +*20 (Net +uid 12619,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 116,0 +) +declText (MLText +uid 12620,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,32000,1200" +st "SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0) +" +) +) +*21 (Net +uid 12627,0 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 117,0 +) +declText (MLText +uid 12628,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,30000,1200" +st "SIGNAL hAddr : unsigned( ahbAddressBitNb-1 DOWNTO 0 ) +" +) +) +*22 (Blk +uid 12657,0 +shape (Rectangle +uid 12658,0 +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "57000,67000,117000,75000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 12659,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*23 (Text +uid 12660,0 +va (VaSet +font "Verdana,12,0" +) +xt "57400,74900,75800,76300" +st "AhbLiteComponents_test" +blo "57400,76100" +tm "BdLibraryNameMgr" +) +*24 (Text +uid 12661,0 +va (VaSet +font "Verdana,12,0" +) +xt "57400,76300,68700,77700" +st "ahbUart_tester" +blo "57400,77500" +tm "BlkNameMgr" +) +*25 (Text +uid 12662,0 +va (VaSet +font "Verdana,12,0" +) +xt "57400,77700,63300,79100" +st "I_tester" +blo "57400,78900" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 12663,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 12664,0 +text (MLText +uid 12665,0 +va (VaSet +font "Courier New,8,0" +) +xt "57400,80300,81900,81100" +st "clockFrequency = clockFrequency ( real ) " +) +header "" +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "clockFrequency" +) +] +) +viewicon (ZoomableIcon +uid 12742,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "57250,73250,58750,74750" +iconName "BlockDiagram.png" +iconMaskName "BlockDiagram.msk" +ftype 1 +) +viewiconposition 0 +) +*26 (Net +uid 13297,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 118,0 +) +declText (MLText +uid 13298,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL RxD : std_ulogic +" +) +) +*27 (Net +uid 13305,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 119,0 +) +declText (MLText +uid 13306,0 +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "0,0,15500,1200" +st "SIGNAL TxD : std_ulogic +" +) +) +*28 (SaComponent +uid 13707,0 +optionalChildren [ +*29 (CptPort +uid 13659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13660,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,36625,87000,37375" +) +tg (CPTG +uid 13661,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13662,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,36300,92500,37700" +st "hAddr" +blo "88000,37500" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 1 +suid 2051,0 +) +) +) +*30 (CptPort +uid 13663,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13664,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,38625,87000,39375" +) +tg (CPTG +uid 13665,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13666,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,38300,93900,39700" +st "hWData" +blo "88000,39500" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 3 +suid 2053,0 +) +) +) +*31 (CptPort +uid 13667,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13668,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,46625,87000,47375" +) +tg (CPTG +uid 13669,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13670,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,46300,93400,47700" +st "hRData" +blo "88000,47500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 6 +suid 2054,0 +) +) +) +*32 (CptPort +uid 13671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13672,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,42625,87000,43375" +) +tg (CPTG +uid 13673,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13674,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,42300,93000,43700" +st "hWrite" +blo "88000,43500" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 4 +suid 2055,0 +) +) +) +*33 (CptPort +uid 13675,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13676,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,40625,87000,41375" +) +tg (CPTG +uid 13677,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13678,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,40300,93100,41700" +st "hTrans" +blo "88000,41500" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 2 +suid 2059,0 +) +) +) +*34 (CptPort +uid 13679,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13680,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,48625,87000,49375" +) +tg (CPTG +uid 13681,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13682,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,48300,93500,49700" +st "hReady" +blo "88000,49500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReady" +t "std_uLogic" +o 7 +suid 2061,0 +) +) +) +*35 (CptPort +uid 13683,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13684,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,50625,87000,51375" +) +tg (CPTG +uid 13685,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13686,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,50300,92700,51700" +st "hResp" +blo "88000,51500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hResp" +t "std_uLogic" +o 9 +suid 2062,0 +) +) +) +*36 (CptPort +uid 13687,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13688,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,54625,87000,55375" +) +tg (CPTG +uid 13689,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13690,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,54300,91500,55700" +st "hClk" +blo "88000,55500" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*37 (CptPort +uid 13691,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13692,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,56625,87000,57375" +) +tg (CPTG +uid 13693,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13694,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,56300,94800,57700" +st "hReset_n" +blo "88000,57500" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 2064,0 +) +) +) +*38 (CptPort +uid 13695,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13696,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "103000,36625,103750,37375" +) +tg (CPTG +uid 13697,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 13698,0 +va (VaSet +font "Verdana,12,0" +) +xt "98900,36300,102000,37700" +st "TxD" +ju 2 +blo "102000,37500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 10 +suid 2065,0 +) +) +) +*39 (CptPort +uid 13699,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13700,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86250,44625,87000,45375" +) +tg (CPTG +uid 13701,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 13702,0 +va (VaSet +font "Verdana,12,0" +) +xt "88000,44300,91500,45700" +st "hSel" +blo "88000,45500" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 11 +suid 2066,0 +) +) +) +*40 (CptPort +uid 13703,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 13704,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "103000,38625,103750,39375" +) +tg (CPTG +uid 13705,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 13706,0 +va (VaSet +font "Verdana,12,0" +) +xt "98800,38300,102000,39700" +st "RxD" +ju 2 +blo "102000,39500" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 12 +suid 2067,0 +) +) +) +] +shape (Rectangle +uid 13708,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "87000,33000,103000,59000" +) +oxt "47000,16000,63000,42000" +ttg (MlTextGroup +uid 13709,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*41 (Text +uid 13710,0 +va (VaSet +) +xt "87100,58700,98700,59900" +st "AhbLiteComponents" +blo "87100,59700" +tm "BdLibraryNameMgr" +) +*42 (Text +uid 13711,0 +va (VaSet +) +xt "87100,59700,91800,60900" +st "ahbUart" +blo "87100,60700" +tm "CptNameMgr" +) +*43 (Text +uid 13712,0 +va (VaSet +) +xt "87100,60700,91200,61900" +st "I_DUT" +blo "87100,61700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 13713,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 13714,0 +text (MLText +uid 13715,0 +va (VaSet +font "Courier New,8,0" +) +xt "87000,63000,110500,64600" +st "txFifoDepth = txFifoDepth ( positive ) +rxFifoDepth = rxFifoDepth ( positive ) " +) +header "" +) +elements [ +(GiElement +name "txFifoDepth" +type "positive" +value "txFifoDepth" +) +(GiElement +name "rxFifoDepth" +type "positive" +value "rxFifoDepth" +) +] +) +viewicon (ZoomableIcon +uid 13716,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "87250,57250,88750,58750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*44 (Wire +uid 12557,0 +shape (OrthoPolyLine +uid 12558,0 +va (VaSet +vasetType 3 +) +xt "85000,57000,86250,67000" +pts [ +"86250,57000" +"85000,57000" +"85000,67000" +] +) +start &37 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12561,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12562,0 +va (VaSet +font "Verdana,12,0" +) +xt "78250,55600,85050,57000" +st "hReset_n" +blo "78250,56800" +tm "WireNameMgr" +) +) +on &12 +) +*45 (Wire +uid 12565,0 +shape (OrthoPolyLine +uid 12566,0 +va (VaSet +vasetType 3 +) +xt "83000,55000,86250,67000" +pts [ +"86250,55000" +"83000,55000" +"83000,67000" +] +) +start &36 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12569,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12570,0 +va (VaSet +font "Verdana,12,0" +) +xt "81250,53600,84750,55000" +st "hClk" +blo "81250,54800" +tm "WireNameMgr" +) +) +on &13 +) +*46 (Wire +uid 12573,0 +shape (OrthoPolyLine +uid 12574,0 +va (VaSet +vasetType 3 +) +xt "79000,51000,86250,67000" +pts [ +"86250,51000" +"79000,51000" +"79000,67000" +] +) +start &35 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12578,0 +va (VaSet +font "Verdana,12,0" +) +xt "80250,49600,84950,51000" +st "hResp" +blo "80250,50800" +tm "WireNameMgr" +) +) +on &14 +) +*47 (Wire +uid 12581,0 +shape (OrthoPolyLine +uid 12582,0 +va (VaSet +vasetType 3 +) +xt "77000,49000,86250,67000" +pts [ +"86250,49000" +"77000,49000" +"77000,67000" +] +) +start &34 +end &22 +sat 32 +eat 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12585,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12586,0 +va (VaSet +font "Verdana,12,0" +) +xt "79250,47600,84750,49000" +st "hReady" +blo "79250,48800" +tm "WireNameMgr" +) +) +on &15 +) +*48 (Wire +uid 12589,0 +shape (OrthoPolyLine +uid 12590,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "75000,47000,86250,67000" +pts [ +"86250,47000" +"75000,47000" +"75000,67000" +] +) +start &31 +end &22 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12593,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12594,0 +va (VaSet +font "Verdana,12,0" +) +xt "80250,45600,85650,47000" +st "hRData" +blo "80250,46800" +tm "WireNameMgr" +) +) +on &16 +) +*49 (Wire +uid 12597,0 +shape (OrthoPolyLine +uid 12598,0 +va (VaSet +vasetType 3 +) +xt "73000,45000,86250,67000" +pts [ +"86250,45000" +"73000,45000" +"73000,67000" +] +) +start &39 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12601,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12602,0 +va (VaSet +font "Verdana,12,0" +) +xt "81250,43600,84750,45000" +st "hSel" +blo "81250,44800" +tm "WireNameMgr" +) +) +on &17 +) +*50 (Wire +uid 12605,0 +shape (OrthoPolyLine +uid 12606,0 +va (VaSet +vasetType 3 +) +xt "71000,43000,86250,67000" +pts [ +"86250,43000" +"71000,43000" +"71000,67000" +] +) +start &32 +end &22 +sat 32 +eat 2 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12609,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12610,0 +va (VaSet +font "Verdana,12,0" +) +xt "80250,41600,85250,43000" +st "hWrite" +blo "80250,42800" +tm "WireNameMgr" +) +) +on &18 +) +*51 (Wire +uid 12613,0 +shape (OrthoPolyLine +uid 12614,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "69000,41000,86250,67000" +pts [ +"86250,41000" +"69000,41000" +"69000,67000" +] +) +start &33 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12617,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12618,0 +va (VaSet +font "Verdana,12,0" +) +xt "80250,39600,85350,41000" +st "hTrans" +blo "80250,40800" +tm "WireNameMgr" +) +) +on &19 +) +*52 (Wire +uid 12621,0 +shape (OrthoPolyLine +uid 12622,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "67000,39000,86250,67000" +pts [ +"86250,39000" +"67000,39000" +"67000,67000" +] +) +start &30 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12625,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12626,0 +va (VaSet +font "Verdana,12,0" +) +xt "79250,37600,85150,39000" +st "hWData" +blo "79250,38800" +tm "WireNameMgr" +) +) +on &20 +) +*53 (Wire +uid 12629,0 +shape (OrthoPolyLine +uid 12630,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "65000,37000,86250,67000" +pts [ +"86250,37000" +"65000,37000" +"65000,67000" +] +) +start &29 +end &22 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 12633,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 12634,0 +va (VaSet +font "Verdana,12,0" +) +xt "80250,35600,84750,37000" +st "hAddr" +blo "80250,36800" +tm "WireNameMgr" +) +) +on &21 +) +*54 (Wire +uid 13299,0 +shape (OrthoPolyLine +uid 13300,0 +va (VaSet +vasetType 3 +) +xt "103750,39000,107000,67000" +pts [ +"103750,39000" +"107000,39000" +"107000,67000" +] +) +start &40 +end &22 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 13303,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13304,0 +va (VaSet +font "Verdana,12,0" +) +xt "105750,37600,108950,39000" +st "RxD" +blo "105750,38800" +tm "WireNameMgr" +) +) +on &26 +) +*55 (Wire +uid 13307,0 +shape (OrthoPolyLine +uid 13308,0 +va (VaSet +vasetType 3 +) +xt "103750,37000,109000,67000" +pts [ +"103750,37000" +"109000,37000" +"109000,67000" +] +) +start &38 +end &22 +sat 32 +eat 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 13311,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 13312,0 +va (VaSet +font "Verdana,12,0" +) +xt "105750,35600,108850,37000" +st "TxD" +blo "105750,36800" +tm "WireNameMgr" +) +) +on &27 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *56 (PackageList +uid 187,0 +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 1297,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,19000,35900,20000" +st "Package List" +blo "29000,19800" +) +*58 (MLText +uid 1298,0 +va (VaSet +) +xt "29000,20000,46500,26000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 190,0 +stg "VerticalLayoutStrategy" +textVec [ +*59 (Text +uid 191,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,0,31000,1200" +st "Compiler Directives" +blo "20000,1000" +) +*60 (Text +uid 192,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,1400,33000,2600" +st "Pre-module directives:" +blo "20000,2400" +) +*61 (MLText +uid 193,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,2800,30400,5400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*62 (Text +uid 194,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,5600,33500,6800" +st "Post-module directives:" +blo "20000,6600" +) +*63 (MLText +uid 195,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,7000,20000,7000" +tm "BdCompilerDirectivesTextMgr" +) +*64 (Text +uid 196,0 +va (VaSet +isHidden 1 +font "arial,10,1" +) +xt "20000,7200,33200,8400" +st "End-module directives:" +blo "20000,8200" +) +*65 (MLText +uid 197,0 +va (VaSet +isHidden 1 +font "arial,10,0" +) +xt "20000,1200,20000,1200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "27368,17416,170158,94997" +cachedDiagramExtent "0,0,138000,93000" +pageSetupInfo (PageSetupInfo +ptrCmd "\\\\SUN\\PREA309_HPLJ3005DN.PRINTERS.SYSTEM.SION.HEVs,winspool," +fileName "\\\\EIV\\a309_hplj4050.electro.eiv" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +titlesVisible 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "29000,19000" +lastUid 13904,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,8,1" +) +xt "300,1000,4000,2000" +st "Panel0" +blo "300,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,2550,8000,3950" +st "" +blo "1500,3750" +tm "BdLibraryNameMgr" +) +*67 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,3950,7300,5350" +st "" +blo "1500,5150" +tm "BlkNameMgr" +) +*68 (Text +va (VaSet +font "Verdana,12,0" +) +xt "1500,5350,4800,6750" +st "U_0" +blo "1500,6550" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "1500,12550,1500,12550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-600,0,8600,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,3000,4300,4200" +st "Library" +blo "-100,4000" +) +*70 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,4200,9800,5400" +st "MWComponent" +blo "-100,5200" +) +*71 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-100,5400,2700,6600" +st "U_0" +blo "-100,6400" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +xt "-7100,1000,-7100,1000" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*72 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,2550,4050,3750" +st "Library" +blo "-350,3550" +tm "BdLibraryNameMgr" +) +*73 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,3750,8950,4950" +st "SaComponent" +blo "-350,4750" +tm "CptNameMgr" +) +*74 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-350,4950,2450,6150" +st "U_0" +blo "-350,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-7350,550,-7350,550" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "-600,8250,900,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1350,0,9350,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,2550,3550,3750" +st "Library" +blo "-850,3550" +) +*76 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,3750,9450,4950" +st "VhdlComponent" +blo "-850,4750" +) +*77 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-850,4950,1950,6150" +st "U_0" +blo "-850,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-7850,550,-7850,550" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-2100,0,10100,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*78 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,2550,2800,3750" +st "Library" +blo "-1600,3550" +) +*79 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,3750,10100,4950" +st "VerilogComponent" +blo "-1600,4750" +) +*80 (Text +va (VaSet +font "Verdana,10,0" +) +xt "-1600,4950,1200,6150" +st "U_0" +blo "-1600,5950" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-8600,550,-8600,550" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*81 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,3400,5250,4400" +st "eb1" +blo "2950,4200" +tm "HdlTextNameMgr" +) +*82 (Text +va (VaSet +font "Verdana,8,1" +) +xt "2950,4400,4150,5400" +st "1" +blo "2950,5200" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "250,8250,1750,9750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-750,-600,750,600" +st "G" +blo "-750,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "-2875,-375,-2875,-375" +ju 2 +blo "-2875,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "2875,-375,2875,-375" +blo "2875,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "3000,500,3000,500" +blo "3000,500" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3400,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,4700,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,400,3700,1400" +st "bundle0" +blo "0,1200" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1400,1500,2600" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1200,9600,2400" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,18500,-200" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "150,400,950,1400" +st "1" +blo "150,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*83 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*84 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1400,11000,-200" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1750" +) +num (Text +va (VaSet +) +xt "150,400,950,1400" +st "1" +blo "150,1200" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*85 (Text +va (VaSet +font "Verdana,8,1" +) +xt "11800,20000,21800,21000" +st "Frame Declarations" +blo "11800,20800" +) +*86 (MLText +va (VaSet +) +xt "11800,21000,11800,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +isHidden 1 +font "Courier New,9,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,26800,36000,27800" +st "Declarations" +blo "29000,27600" +) +portLabel (Text +uid 3,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,32400,29000" +st "Ports:" +blo "29000,28800" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "29000,27800,33800,28800" +st "Pre User:" +blo "29000,28600" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,10,0" +) +xt "31000,28800,59200,34800" +st "constant txFifoDepth: positive := 1; +constant rxFifoDepth: positive := 1; + +constant clockFrequency : real := 60.0E6; +--constant clockFrequency : real := 66.0E6;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,38000,29000" +st "Diagram Signals:" +blo "29000,28800" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "29000,28000,35000,29000" +st "Post User:" +blo "29000,28800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,10,0" +) +xt "31000,42400,31000,42400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 119,0 +usingSuid 1 +emptyRow *87 (LEmptyRow +) +uid 3310,0 +optionalChildren [ +*88 (RefLabelRowHdr +) +*89 (TitleRowHdr +) +*90 (FilterRowHdr +) +*91 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*92 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*93 (GroupColHdr +tm "GroupColHdrMgr" +) +*94 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*95 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*96 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*97 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*98 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*99 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*100 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 108,0 +) +) +uid 12637,0 +) +*101 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 109,0 +) +) +uid 12639,0 +) +*102 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hResp" +t "std_uLogic" +o 8 +suid 110,0 +) +) +uid 12641,0 +) +*103 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hReady" +t "std_uLogic" +o 6 +suid 111,0 +) +) +uid 12643,0 +) +*104 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 5 +suid 112,0 +) +) +uid 12645,0 +) +*105 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 113,0 +) +) +uid 12647,0 +) +*106 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 114,0 +) +) +uid 12649,0 +) +*107 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 115,0 +) +) +uid 12651,0 +) +*108 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 116,0 +) +) +uid 12653,0 +) +*109 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 117,0 +) +) +uid 12655,0 +) +*110 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 118,0 +) +) +uid 13313,0 +) +*111 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 119,0 +) +) +uid 13315,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3323,0 +optionalChildren [ +*112 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *113 (MRCItem +litem &87 +pos 12 +dimension 20 +) +uid 3325,0 +optionalChildren [ +*114 (MRCItem +litem &88 +pos 0 +dimension 20 +uid 3326,0 +) +*115 (MRCItem +litem &89 +pos 1 +dimension 23 +uid 3327,0 +) +*116 (MRCItem +litem &90 +pos 2 +hidden 1 +dimension 20 +uid 3328,0 +) +*117 (MRCItem +litem &100 +pos 0 +dimension 20 +uid 12638,0 +) +*118 (MRCItem +litem &101 +pos 1 +dimension 20 +uid 12640,0 +) +*119 (MRCItem +litem &102 +pos 2 +dimension 20 +uid 12642,0 +) +*120 (MRCItem +litem &103 +pos 3 +dimension 20 +uid 12644,0 +) +*121 (MRCItem +litem &104 +pos 4 +dimension 20 +uid 12646,0 +) +*122 (MRCItem +litem &105 +pos 5 +dimension 20 +uid 12648,0 +) +*123 (MRCItem +litem &106 +pos 6 +dimension 20 +uid 12650,0 +) +*124 (MRCItem +litem &107 +pos 7 +dimension 20 +uid 12652,0 +) +*125 (MRCItem +litem &108 +pos 8 +dimension 20 +uid 12654,0 +) +*126 (MRCItem +litem &109 +pos 9 +dimension 20 +uid 12656,0 +) +*127 (MRCItem +litem &110 +pos 10 +dimension 20 +uid 13314,0 +) +*128 (MRCItem +litem &111 +pos 11 +dimension 20 +uid 13316,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3329,0 +optionalChildren [ +*129 (MRCItem +litem &91 +pos 0 +dimension 20 +uid 3330,0 +) +*130 (MRCItem +litem &93 +pos 1 +dimension 50 +uid 3331,0 +) +*131 (MRCItem +litem &94 +pos 2 +dimension 100 +uid 3332,0 +) +*132 (MRCItem +litem &95 +pos 3 +dimension 50 +uid 3333,0 +) +*133 (MRCItem +litem &96 +pos 4 +dimension 100 +uid 3334,0 +) +*134 (MRCItem +litem &97 +pos 5 +dimension 100 +uid 3335,0 +) +*135 (MRCItem +litem &98 +pos 6 +dimension 50 +uid 3336,0 +) +*136 (MRCItem +litem &99 +pos 7 +dimension 80 +uid 3337,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3324,0 +vaOverrides [ +] +) +] +) +uid 3309,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *137 (LEmptyRow +) +uid 3339,0 +optionalChildren [ +*138 (RefLabelRowHdr +) +*139 (TitleRowHdr +) +*140 (FilterRowHdr +) +*141 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*142 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*143 (GroupColHdr +tm "GroupColHdrMgr" +) +*144 (NameColHdr +tm "GenericNameColHdrMgr" +) +*145 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*146 (InitColHdr +tm "GenericValueColHdrMgr" +) +*147 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*148 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 3351,0 +optionalChildren [ +*149 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *150 (MRCItem +litem &137 +pos 0 +dimension 20 +) +uid 3353,0 +optionalChildren [ +*151 (MRCItem +litem &138 +pos 0 +dimension 20 +uid 3354,0 +) +*152 (MRCItem +litem &139 +pos 1 +dimension 23 +uid 3355,0 +) +*153 (MRCItem +litem &140 +pos 2 +hidden 1 +dimension 20 +uid 3356,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3357,0 +optionalChildren [ +*154 (MRCItem +litem &141 +pos 0 +dimension 20 +uid 3358,0 +) +*155 (MRCItem +litem &143 +pos 1 +dimension 50 +uid 3359,0 +) +*156 (MRCItem +litem &144 +pos 2 +dimension 100 +uid 3360,0 +) +*157 (MRCItem +litem &145 +pos 3 +dimension 100 +uid 3361,0 +) +*158 (MRCItem +litem &146 +pos 4 +dimension 50 +uid 3362,0 +) +*159 (MRCItem +litem &147 +pos 5 +dimension 50 +uid 3363,0 +) +*160 (MRCItem +litem &148 +pos 6 +dimension 80 +uid 3364,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3352,0 +vaOverrides [ +] +) +] +) +uid 3338,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/symbol.sb new file mode 100644 index 0000000..d1b8e84 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tb/symbol.sb @@ -0,0 +1,1282 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2001,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 107,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 108,0 +optionalChildren [ +*14 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *15 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 55,0 +optionalChildren [ +*16 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 58,0 +) +*17 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 60,0 +) +*18 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 62,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 56,0 +optionalChildren [ +*19 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 64,0 +) +*20 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 68,0 +) +*21 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 70,0 +) +*22 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 72,0 +) +*23 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 74,0 +) +*24 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 76,0 +) +*25 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 78,0 +) +*26 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 54,0 +vaOverrides [ +] +) +] +) +uid 106,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *27 (LEmptyRow +) +uid 110,0 +optionalChildren [ +*28 (RefLabelRowHdr +) +*29 (TitleRowHdr +) +*30 (FilterRowHdr +) +*31 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*32 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*33 (GroupColHdr +tm "GroupColHdrMgr" +) +*34 (NameColHdr +tm "GenericNameColHdrMgr" +) +*35 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*36 (InitColHdr +tm "GenericValueColHdrMgr" +) +*37 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*38 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 111,0 +optionalChildren [ +*39 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *40 (MRCItem +litem &27 +pos 3 +dimension 20 +) +uid 82,0 +optionalChildren [ +*41 (MRCItem +litem &28 +pos 0 +dimension 20 +uid 85,0 +) +*42 (MRCItem +litem &29 +pos 1 +dimension 23 +uid 87,0 +) +*43 (MRCItem +litem &30 +pos 2 +hidden 1 +dimension 20 +uid 89,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 83,0 +optionalChildren [ +*44 (MRCItem +litem &31 +pos 0 +dimension 20 +uid 91,0 +) +*45 (MRCItem +litem &33 +pos 1 +dimension 50 +uid 95,0 +) +*46 (MRCItem +litem &34 +pos 2 +dimension 100 +uid 97,0 +) +*47 (MRCItem +litem &35 +pos 3 +dimension 100 +uid 99,0 +) +*48 (MRCItem +litem &36 +pos 4 +dimension 50 +uid 101,0 +) +*49 (MRCItem +litem &37 +pos 5 +dimension 50 +uid 103,0 +) +*50 (MRCItem +litem &38 +pos 6 +dimension 80 +uid 105,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 81,0 +vaOverrides [ +] +) +] +) +uid 109,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbUart_tb" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbUart_tb" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:08:42" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\SysLo\\Master\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "ahbUart_tb" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tb\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbUart_tb\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:08:42" +) +(vvPair +variable "unit" +value "ahbUart_tb" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*51 (SymbolBody +uid 8,0 +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,13000,43000,27000" +) +oxt "15000,6000,20000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "29950,21900,44850,23100" +st "AhbLiteComponents_test" +blo "29950,22900" +) +second (Text +uid 12,0 +va (VaSet +) +xt "29950,23100,36950,24300" +st "ahbUart_tb" +blo "29950,24100" +) +) +gi *52 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "32000,27600,43500,28400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sT 1 +sIVOD 1 +) +) +*53 (Grouping +uid 16,0 +optionalChildren [ +*54 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "54000,41000,73000,43000" +) +oxt "45000,22000,64000,24000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "54200,41400,69600,42600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 18600 +) +position 1 +ignorePrefs 1 +) +*55 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,41000,48000,43000" +) +oxt "13000,22000,39000,24000" +text (MLText +uid 23,0 +va (VaSet +fg "32768,0,0" +font "Arial,12,1" +) +xt "29250,41250,40750,42750" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 25600 +) +position 1 +ignorePrefs 1 +) +*56 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,47000,48000,49000" +) +oxt "18000,28000,39000,30000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,47400,43200,48600" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*57 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,41000,54000,43000" +) +oxt "39000,22000,45000,24000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,41400,52900,42600" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 5600 +) +position 1 +ignorePrefs 1 +) +*58 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,43000,48000,45000" +) +oxt "18000,24000,39000,26000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,43400,42400,44600" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*59 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,43000,27000,45000" +) +oxt "13000,24000,18000,26000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,43400,25600,44600" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*60 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,45000,27000,47000" +) +oxt "13000,26000,18000,28000" +text (MLText +uid 38,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,45400,25600,46600" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +*61 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "48000,43000,73000,49000" +) +oxt "39000,24000,64000,30000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "48200,43200,62300,44400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 5600 +visibleWidth 24600 +) +ignorePrefs 1 +) +*62 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "27000,45000,48000,47000" +) +oxt "18000,26000,39000,28000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "27200,45400,42500,46600" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 20600 +) +position 1 +ignorePrefs 1 +) +*63 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "22000,47000,27000,49000" +) +oxt "13000,28000,18000,30000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "22200,47400,26500,48600" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1600 +visibleWidth 4600 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 1 +) +xt "22000,41000,73000,49000" +) +oxt "13000,22000,64000,30000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "32768,32768,32768" +) +packageList *64 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*65 (Text +uid 52,0 +va (VaSet +font "Arial,12,1" +) +xt "0,0,8800,1500" +st "Package List" +blo "0,1200" +) +*66 (MLText +uid 53,0 +va (VaSet +font "Arial,12,0" +) +xt "0,1500,0,1500" +tm "PackageList" +) +] +) +windowSize "102,76,952,712" +viewArea "-8021,-1136,81281,50396" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "arial,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "15000,6000,20000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "15950,14900,19050,15900" +st "" +blo "15950,15700" +) +second (Text +va (VaSet +) +xt "15950,15900,18150,16900" +st "" +blo "15950,16700" +) +) +gi *67 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *68 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,10,1" +) +xt "0,3400,7400,4600" +st "Declarations" +blo "0,4400" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,10,1" +) +xt "0,4600,3500,5800" +st "Ports:" +blo "0,5600" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,10,1" +) +xt "0,5800,3200,7000" +st "User:" +blo "0,6800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,10,1" +) +xt "0,3400,7800,4600" +st "Internal User:" +blo "0,4400" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,7000,2000,7000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,3400,0,3400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 182,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tester/interface b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tester/interface new file mode 100644 index 0000000..c1528b1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/ahb@uart_tester/interface @@ -0,0 +1,2085 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 58,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 123,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 47,0 +) +) +uid 1274,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 48,0 +) +) +uid 1276,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 5 +suid 49,0 +) +) +uid 1278,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 6 +suid 50,0 +) +) +uid 1280,0 +) +*18 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 51,0 +) +) +uid 1282,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 8 +suid 52,0 +) +) +uid 1284,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 53,0 +) +) +uid 1286,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 54,0 +) +) +uid 1288,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 55,0 +) +) +uid 1290,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 56,0 +) +) +uid 1292,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 57,0 +) +) +uid 1294,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 58,0 +) +) +uid 1296,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 136,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 138,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 139,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 140,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 141,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 1275,0 +) +*32 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 1277,0 +) +*33 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 1279,0 +) +*34 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 1281,0 +) +*35 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 1283,0 +) +*36 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 1285,0 +) +*37 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 1287,0 +) +*38 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 1289,0 +) +*39 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 1291,0 +) +*40 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 1293,0 +) +*41 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 1295,0 +) +*42 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 1297,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 142,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 143,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 144,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 145,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 146,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 147,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 148,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 149,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 150,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 137,0 +vaOverrides [ +] +) +] +) +uid 122,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 152,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "clockFrequency" +type "real" +value "" +) +uid 446,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 164,0 +optionalChildren [ +*64 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *65 (MRCItem +litem &51 +pos 1 +dimension 20 +) +uid 166,0 +optionalChildren [ +*66 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 167,0 +) +*67 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 168,0 +) +*68 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 169,0 +) +*69 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 447,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 170,0 +optionalChildren [ +*70 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 171,0 +) +*71 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 172,0 +) +*72 (MRCItem +litem &58 +pos 2 +dimension 100 +uid 173,0 +) +*73 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 174,0 +) +*74 (MRCItem +litem &60 +pos 4 +dimension 50 +uid 175,0 +) +*75 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 176,0 +) +*76 (MRCItem +litem &62 +pos 6 +dimension 80 +uid 177,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 165,0 +vaOverrides [ +] +) +] +) +uid 151,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tester\\interface.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tester\\interface.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "interface" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tester" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbUart_tester" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbUart_tester" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "interface" +) +(vvPair +variable "f_logical" +value "interface" +) +(vvPair +variable "f_noext" +value "interface" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:08:42" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_LIBS_DIR/AhbLiteComponents_test/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "ahbUart_tester" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahb@uart_tester\\interface" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\ahbUart_tester\\interface" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "" +) +(vvPair +variable "this_file" +value "interface" +) +(vvPair +variable "this_file_logical" +value "interface" +) +(vvPair +variable "time" +value "17:08:42" +) +(vvPair +variable "unit" +value "ahbUart_tester" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "interface" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 121,0 +optionalChildren [ +*77 (SymbolBody +uid 8,0 +optionalChildren [ +*78 (CptPort +uid 1214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1215,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22625,5250,23375,6000" +) +tg (CPTG +uid 1216,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1217,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "22300,7000,23700,11500" +st "hAddr" +ju 2 +blo "23500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1218,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6000,75500,6800" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 3 +suid 47,0 +) +) +) +*79 (CptPort +uid 1219,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1220,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "40625,5250,41375,6000" +) +tg (CPTG +uid 1221,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1222,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "40300,7000,41700,10500" +st "hClk" +ju 2 +blo "41500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1223,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6800,61000,7600" +st "hClk : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 4 +suid 48,0 +) +) +) +*80 (CptPort +uid 1224,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1225,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "32625,5250,33375,6000" +) +tg (CPTG +uid 1226,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1227,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "32300,7000,33700,12400" +st "hRData" +ju 2 +blo "33500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1228,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2800,77500,3600" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 5 +suid 49,0 +) +) +) +*81 (CptPort +uid 1229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1230,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "34625,5250,35375,6000" +) +tg (CPTG +uid 1231,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1232,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "34300,7000,35700,12500" +st "hReady" +ju 2 +blo "35500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1233,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3600,61000,4400" +st "hReady : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 6 +suid 50,0 +) +) +) +*82 (CptPort +uid 1234,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1235,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42625,5250,43375,6000" +) +tg (CPTG +uid 1236,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1237,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "42300,7000,43700,13800" +st "hReset_n" +ju 2 +blo "43500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1238,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7600,61000,8400" +st "hReset_n : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 51,0 +) +) +) +*83 (CptPort +uid 1239,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1240,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "36625,5250,37375,6000" +) +tg (CPTG +uid 1241,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1242,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "36300,7000,37700,11700" +st "hResp" +ju 2 +blo "37500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1243,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4400,61000,5200" +st "hResp : IN std_uLogic ; +" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 8 +suid 52,0 +) +) +) +*84 (CptPort +uid 1244,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1245,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30625,5250,31375,6000" +) +tg (CPTG +uid 1246,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1247,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "30300,7000,31700,10500" +st "hSel" +ju 2 +blo "31500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1248,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8400,61000,9200" +st "hSel : OUT std_uLogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 53,0 +) +) +) +*85 (CptPort +uid 1249,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1250,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,5250,27375,6000" +) +tg (CPTG +uid 1251,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1252,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "26300,7000,27700,12100" +st "hTrans" +ju 2 +blo "27500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1253,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9200,78000,10000" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 54,0 +) +) +) +*86 (CptPort +uid 1254,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1255,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24625,5250,25375,6000" +) +tg (CPTG +uid 1256,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1257,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "24300,7000,25700,12900" +st "hWData" +ju 2 +blo "25500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1258,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10000,77500,10800" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 55,0 +) +) +) +*87 (CptPort +uid 1259,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1260,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28625,5250,29375,6000" +) +tg (CPTG +uid 1261,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1262,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "28300,7000,29700,12000" +st "hWrite" +ju 2 +blo "29500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1263,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,10800,60000,11600" +st "hWrite : OUT std_uLogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 56,0 +) +) +) +*88 (CptPort +uid 1264,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1265,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "64625,5250,65375,6000" +) +tg (CPTG +uid 1266,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1267,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "64300,7000,65700,10200" +st "RxD" +ju 2 +blo "65500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1268,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5200,61000,6000" +st "RxD : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 57,0 +) +) +) +*89 (CptPort +uid 1269,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1270,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "66625,5250,67375,6000" +) +tg (CPTG +uid 1271,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1272,0 +ro 270 +va (VaSet +font "Verdana,12,0" +) +xt "66300,7000,67700,10100" +st "TxD" +ju 2 +blo "67500,7000" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 1273,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2000,61000,2800" +st "TxD : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "TxD" +t "std_ulogic" +o 2 +suid 58,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,75000,14000" +) +oxt "15000,6000,73000,14000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Arial,8,1" +) +xt "39600,9000,50400,10000" +st "AhbLiteComponents_test" +blo "39600,9800" +) +second (Text +uid 12,0 +va (VaSet +font "Arial,8,1" +) +xt "39600,10000,45900,11000" +st "ahbUart_tester" +blo "39600,10800" +) +) +gi *90 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "21000,6000,33500,8400" +st "Generic Declarations + +clockFrequency real " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "clockFrequency" +type "real" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*91 (Grouping +uid 16,0 +optionalChildren [ +*92 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48500,36200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44500,53200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*94 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46500,36200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*95 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46500,32200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*96 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,67300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*97 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44500,57200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*98 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47500,32200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48500,32200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47500,36200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *102 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*103 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*104 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,17500,7000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "246,67,1263,757" +viewArea "-500,-500,71320,48820" +cachedDiagramExtent "0,0,78000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "AhbLiteComponents_test" +entityName "ahbUart_tb" +viewName "struct.bd" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *105 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "In0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1750" +st "Buffer0" +blo "0,1550" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *106 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,0,47400,1000" +st "Declarations" +blo "42000,800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,1000,44700,2000" +st "Ports:" +blo "42000,1800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "42000,11600,44400,12600" +st "User:" +blo "42000,12400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "42000,0,47800,1000" +st "Internal User:" +blo "42000,800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,12600,44000,12600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 1297,0 +activeModelName "Symbol:GEN" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/struct.bd b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/struct.bd new file mode 100644 index 0000000..3c0d443 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/struct.bd @@ -0,0 +1,5392 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +instances [ +(Instance +name "I_file2trans" +duLibraryName "UVM" +duName "driverControl" +elements [ +(GiElement +name "driverFileSpec" +type "string" +value "driverFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "driverVerbosity" +) +] +mwi 0 +uid 136,0 +) +(Instance +name "U_trans2File" +duLibraryName "UVM" +duName "monitorSupervision" +elements [ +(GiElement +name "monitorFileSpec" +type "string" +value "monitorFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "monitorVerbosity" +) +] +mwi 0 +uid 150,0 +) +(Instance +name "I_driv" +duLibraryName "AhbLiteComponents_test" +duName "uvmAhbDriver" +elements [ +] +mwi 0 +uid 977,0 +) +(Instance +name "I_mon" +duLibraryName "AhbLiteComponents_test" +duName "uvmAhbMonitor" +elements [ +] +mwi 0 +uid 1031,0 +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvmAhbAgentHw" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmAhbAgentHw" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:07:09" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "uvmAhbAgentHw" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvmAhbAgentHw\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:07:09" +) +(vvPair +variable "unit" +value "uvmAhbAgentHw" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,73000,89000,74000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,73500,72200,73500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,69000,93000,70000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,69500,89200,69500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,71000,89000,72000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,71500,72200,71500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,71000,72000,72000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,71500,68200,71500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "89000,70000,109000,74000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "89200,70200,103300,71400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "93000,69000,109000,70000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "93200,69500,93200,69500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,69000,89000,71000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "73350,69400,83650,70600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,72000,72000,73000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,72500,68200,72500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "68000,73000,72000,74000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "68200,73500,68200,73500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "72000,72000,89000,73000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "72200,72500,72200,72500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "68000,69000,109000,74000" +) +oxt "14000,66000,55000,71000" +) +*12 (SaComponent +uid 136,0 +optionalChildren [ +*13 (CptPort +uid 132,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 133,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,7625,52750,8375" +) +tg (CPTG +uid 134,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 135,0 +va (VaSet +font "Verdana,12,0" +) +xt "38500,7300,51000,8700" +st "driverTransaction" +ju 2 +blo "51000,8500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "driverTransaction" +t "string" +o 1 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 137,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,4000,52000,12000" +) +oxt "29000,12000,45000,20000" +ttg (MlTextGroup +uid 138,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*14 (Text +uid 139,0 +va (VaSet +) +xt "36100,11700,39300,12900" +st "UVM" +blo "36100,12700" +tm "BdLibraryNameMgr" +) +*15 (Text +uid 140,0 +va (VaSet +) +xt "36100,12700,44100,13900" +st "driverControl" +blo "36100,13700" +tm "CptNameMgr" +) +*16 (Text +uid 141,0 +va (VaSet +) +xt "36100,13700,43400,14900" +st "I_file2trans" +blo "36100,14700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 142,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 143,0 +text (MLText +uid 144,0 +va (VaSet +font "Courier New,8,0" +) +xt "36000,16000,62500,17600" +st "driverFileSpec = driverFileSpec ( string ) +verbosity = driverVerbosity ( natural ) " +) +header "" +) +elements [ +(GiElement +name "driverFileSpec" +type "string" +value "driverFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "driverVerbosity" +) +] +) +viewicon (ZoomableIcon +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "36250,10250,37750,11750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*17 (SaComponent +uid 150,0 +optionalChildren [ +*18 (CptPort +uid 146,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 147,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,37625,52750,38375" +) +tg (CPTG +uid 148,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 149,0 +va (VaSet +font "Verdana,12,0" +) +xt "37300,37300,51000,38700" +st "monitorTransaction" +ju 2 +blo "51000,38500" +) +) +thePort (LogicalPort +decl (Decl +n "monitorTransaction" +t "string" +o 1 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 151,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "36000,34000,52000,42000" +) +oxt "29000,12000,45000,20000" +ttg (MlTextGroup +uid 152,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*19 (Text +uid 153,0 +va (VaSet +) +xt "36100,41700,39300,42900" +st "UVM" +blo "36100,42700" +tm "BdLibraryNameMgr" +) +*20 (Text +uid 154,0 +va (VaSet +) +xt "36100,42700,47200,43900" +st "monitorSupervision" +blo "36100,43700" +tm "CptNameMgr" +) +*21 (Text +uid 155,0 +va (VaSet +) +xt "36100,43700,44000,44900" +st "U_trans2File" +blo "36100,44700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 156,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 157,0 +text (MLText +uid 158,0 +va (VaSet +font "Courier New,8,0" +) +xt "36000,46000,63500,47600" +st "monitorFileSpec = monitorFileSpec ( string ) +verbosity = monitorVerbosity ( natural ) " +) +header "" +) +elements [ +(GiElement +name "monitorFileSpec" +type "string" +value "monitorFileSpec" +) +(GiElement +name "verbosity" +type "natural" +value "monitorVerbosity" +) +] +) +viewicon (ZoomableIcon +uid 159,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "36250,40250,37750,41750" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*22 (PortIoOut +uid 307,0 +shape (CompositeShape +uid 308,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 309,0 +sl 0 +ro 270 +xt "100500,7625,102000,8375" +) +(Line +uid 310,0 +sl 0 +ro 270 +xt "100000,8000,100500,8000" +pts [ +"100000,8000" +"100500,8000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 311,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 312,0 +va (VaSet +isHidden 1 +) +xt "103000,7500,106700,8700" +st "hAddr" +blo "103000,8500" +tm "WireNameMgr" +) +) +) +*23 (Net +uid 319,0 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 6 +suid 1,0 +) +declText (MLText +uid 320,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21800,33500,22600" +st "hAddr : unsigned( ahbAddressBitNb-1 DOWNTO 0 )" +) +) +*24 (PortIoIn +uid 321,0 +shape (CompositeShape +uid 322,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 323,0 +sl 0 +ro 90 +xt "100500,47625,102000,48375" +) +(Line +uid 324,0 +sl 0 +ro 90 +xt "100000,48000,100500,48000" +pts [ +"100500,48000" +"100000,48000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 325,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 326,0 +va (VaSet +isHidden 1 +) +xt "103000,47500,107400,48700" +st "hRData" +blo "103000,48500" +tm "WireNameMgr" +) +) +) +*25 (Net +uid 333,0 +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +declText (MLText +uid 334,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18600,35500,19400" +st "hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*26 (PortIoIn +uid 335,0 +shape (CompositeShape +uid 336,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 337,0 +sl 0 +ro 90 +xt "100500,17625,102000,18375" +) +(Line +uid 338,0 +sl 0 +ro 90 +xt "100000,18000,100500,18000" +pts [ +"100500,18000" +"100000,18000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 339,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 340,0 +va (VaSet +isHidden 1 +) +xt "103000,17500,107400,18700" +st "hReady" +blo "103000,18500" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 347,0 +decl (Decl +n "hReady" +t "std_uLogic" +o 3 +suid 3,0 +) +declText (MLText +uid 348,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19400,19000,20200" +st "hReady : std_uLogic" +) +) +*28 (PortIoIn +uid 349,0 +shape (CompositeShape +uid 350,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 351,0 +sl 0 +ro 90 +xt "100500,51625,102000,52375" +) +(Line +uid 352,0 +sl 0 +ro 90 +xt "100000,52000,100500,52000" +pts [ +"100500,52000" +"100000,52000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 353,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 354,0 +va (VaSet +isHidden 1 +) +xt "103000,51500,106800,52700" +st "hResp" +blo "103000,52500" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 361,0 +decl (Decl +n "hResp" +t "std_uLogic" +o 4 +suid 4,0 +) +declText (MLText +uid 362,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,20200,19000,21000" +st "hResp : std_uLogic" +) +) +*30 (PortIoOut +uid 363,0 +shape (CompositeShape +uid 364,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 365,0 +sl 0 +ro 270 +xt "100500,15625,102000,16375" +) +(Line +uid 366,0 +sl 0 +ro 270 +xt "100000,16000,100500,16000" +pts [ +"100000,16000" +"100500,16000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 367,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 368,0 +va (VaSet +isHidden 1 +) +xt "103000,15500,105900,16700" +st "hSel" +blo "103000,16500" +tm "WireNameMgr" +) +) +) +*31 (Net +uid 375,0 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 5,0 +) +declText (MLText +uid 376,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,24200,19000,25000" +st "hSel : std_uLogic" +) +) +*32 (PortIoOut +uid 377,0 +shape (CompositeShape +uid 378,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 379,0 +sl 0 +ro 270 +xt "100500,11625,102000,12375" +) +(Line +uid 380,0 +sl 0 +ro 270 +xt "100000,12000,100500,12000" +pts [ +"100000,12000" +"100500,12000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 381,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 382,0 +va (VaSet +isHidden 1 +) +xt "103000,11500,107200,12700" +st "hTrans" +blo "103000,12500" +tm "WireNameMgr" +) +) +) +*33 (Net +uid 389,0 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 6,0 +) +declText (MLText +uid 390,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,25000,36000,25800" +st "hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0)" +) +) +*34 (PortIoOut +uid 391,0 +shape (CompositeShape +uid 392,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 393,0 +sl 0 +ro 270 +xt "100500,9625,102000,10375" +) +(Line +uid 394,0 +sl 0 +ro 270 +xt "100000,10000,100500,10000" +pts [ +"100000,10000" +"100500,10000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 395,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 396,0 +va (VaSet +isHidden 1 +) +xt "103000,9500,107600,10700" +st "hWData" +blo "103000,10500" +tm "WireNameMgr" +) +) +) +*35 (Net +uid 403,0 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 7,0 +) +declText (MLText +uid 404,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,25800,35500,26600" +st "hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0)" +) +) +*36 (PortIoOut +uid 405,0 +shape (CompositeShape +uid 406,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 407,0 +sl 0 +ro 270 +xt "100500,13625,102000,14375" +) +(Line +uid 408,0 +sl 0 +ro 270 +xt "100000,14000,100500,14000" +pts [ +"100000,14000" +"100500,14000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 409,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 410,0 +va (VaSet +isHidden 1 +) +xt "103000,13500,106900,14700" +st "hWrite" +blo "103000,14500" +tm "WireNameMgr" +) +) +) +*37 (Net +uid 417,0 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 8,0 +) +declText (MLText +uid 418,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,26600,19000,27400" +st "hWrite : std_uLogic" +) +) +*38 (Net +uid 455,0 +decl (Decl +n "driverTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 13 +suid 9,0 +) +declText (MLText +uid 456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,30200,34500,31000" +st "SIGNAL driverTransaction : string(1 TO ahbTransactionLength)" +) +) +*39 (Net +uid 461,0 +decl (Decl +n "monitorTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 14 +suid 10,0 +) +declText (MLText +uid 462,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,31000,34500,31800" +st "SIGNAL monitorTransaction : string(1 TO ahbTransactionLength)" +) +) +*40 (PortIoIn +uid 502,0 +shape (CompositeShape +uid 503,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 504,0 +sl 0 +ro 270 +xt "58000,21625,59500,22375" +) +(Line +uid 505,0 +sl 0 +ro 270 +xt "59500,22000,60000,22000" +pts [ +"59500,22000" +"60000,22000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 506,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 507,0 +va (VaSet +isHidden 1 +) +xt "53600,21500,57000,22700" +st "clock" +ju 2 +blo "57000,22500" +tm "WireNameMgr" +) +) +) +*41 (Net +uid 514,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 11,0 +) +declText (MLText +uid 515,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17800,19000,18600" +st "clock : std_ulogic" +) +) +*42 (PortIoOut +uid 516,0 +shape (CompositeShape +uid 517,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 518,0 +sl 0 +ro 270 +xt "100500,21625,102000,22375" +) +(Line +uid 519,0 +sl 0 +ro 270 +xt "100000,22000,100500,22000" +pts [ +"100000,22000" +"100500,22000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 520,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 521,0 +va (VaSet +isHidden 1 +) +xt "103000,21500,106000,22700" +st "hClk" +blo "103000,22500" +tm "WireNameMgr" +) +) +) +*43 (Net +uid 528,0 +decl (Decl +n "hClk" +t "std_uLogic" +o 7 +suid 12,0 +) +declText (MLText +uid 529,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,22600,19000,23400" +st "hClk : std_uLogic" +) +) +*44 (PortIoOut +uid 530,0 +shape (CompositeShape +uid 531,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 532,0 +sl 0 +ro 270 +xt "100500,23625,102000,24375" +) +(Line +uid 533,0 +sl 0 +ro 270 +xt "100000,24000,100500,24000" +pts [ +"100000,24000" +"100500,24000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 534,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 535,0 +va (VaSet +isHidden 1 +) +xt "103000,23500,108400,24700" +st "hReset_n" +blo "103000,24500" +tm "WireNameMgr" +) +) +) +*45 (Net +uid 542,0 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 13,0 +) +declText (MLText +uid 543,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,23400,19000,24200" +st "hReset_n : std_uLogic" +) +) +*46 (PortIoIn +uid 544,0 +shape (CompositeShape +uid 545,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 546,0 +sl 0 +ro 270 +xt "58000,23625,59500,24375" +) +(Line +uid 547,0 +sl 0 +ro 270 +xt "59500,24000,60000,24000" +pts [ +"59500,24000" +"60000,24000" +] +) +] +) +stc 0 +sf 1 +tg (WTG +uid 548,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 549,0 +va (VaSet +isHidden 1 +) +xt "53700,23500,57000,24700" +st "reset" +ju 2 +blo "57000,24500" +tm "WireNameMgr" +) +) +) +*47 (Net +uid 556,0 +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 14,0 +) +declText (MLText +uid 557,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21000,19000,21800" +st "reset : std_ulogic" +) +) +*48 (SaComponent +uid 977,0 +optionalChildren [ +*49 (CptPort +uid 933,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 934,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,7625,84750,8375" +) +tg (CPTG +uid 935,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 936,0 +va (VaSet +font "Verdana,12,0" +) +xt "78500,7300,83000,8700" +st "hAddr" +ju 2 +blo "83000,8500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 5 +suid 2051,0 +) +) +) +*50 (CptPort +uid 937,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 938,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,9625,84750,10375" +) +tg (CPTG +uid 939,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 940,0 +va (VaSet +font "Verdana,12,0" +) +xt "77100,9300,83000,10700" +st "hWData" +ju 2 +blo "83000,10500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 2053,0 +) +) +) +*51 (CptPort +uid 941,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 942,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,13625,84750,14375" +) +tg (CPTG +uid 943,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 944,0 +va (VaSet +font "Verdana,12,0" +) +xt "78000,13300,83000,14700" +st "hWrite" +ju 2 +blo "83000,14500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 2055,0 +) +) +) +*52 (CptPort +uid 945,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 946,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,11625,84750,12375" +) +tg (CPTG +uid 947,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 948,0 +va (VaSet +font "Verdana,12,0" +) +xt "77900,11300,83000,12700" +st "hTrans" +ju 2 +blo "83000,12500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 2059,0 +) +) +) +*53 (CptPort +uid 949,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 950,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,17625,84750,18375" +) +tg (CPTG +uid 951,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 952,0 +va (VaSet +font "Verdana,12,0" +) +xt "77500,17300,83000,18700" +st "hReady" +ju 2 +blo "83000,18500" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 2 +suid 2061,0 +) +) +) +*54 (CptPort +uid 953,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 954,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,21625,84750,22375" +) +tg (CPTG +uid 955,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 956,0 +va (VaSet +font "Verdana,12,0" +) +xt "79500,21300,83000,22700" +st "hClk" +ju 2 +blo "83000,22500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 6 +suid 2063,0 +) +) +) +*55 (CptPort +uid 957,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 958,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,23625,84750,24375" +) +tg (CPTG +uid 959,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 960,0 +va (VaSet +font "Verdana,12,0" +) +xt "76200,23300,83000,24700" +st "hReset_n" +ju 2 +blo "83000,24500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 2064,0 +) +) +) +*56 (CptPort +uid 961,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 962,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,15625,84750,16375" +) +tg (CPTG +uid 963,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 964,0 +va (VaSet +font "Verdana,12,0" +) +xt "79500,15300,83000,16700" +st "hSel" +ju 2 +blo "83000,16500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 2066,0 +) +) +) +*57 (CptPort +uid 965,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 966,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,21625,68000,22375" +) +tg (CPTG +uid 967,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 968,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,21300,72800,22700" +st "clock" +blo "69000,22500" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_uLogic" +o 1 +suid 2068,0 +) +) +) +*58 (CptPort +uid 969,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 970,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,23625,68000,24375" +) +tg (CPTG +uid 971,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 972,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,23300,73100,24700" +st "reset" +blo "69000,24500" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 3 +suid 2069,0 +) +) +) +*59 (CptPort +uid 973,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 974,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,7625,68000,8375" +) +tg (CPTG +uid 975,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 976,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,7300,81500,8700" +st "driverTransaction" +blo "69000,8500" +) +) +thePort (LogicalPort +decl (Decl +n "driverTransaction" +t "string" +o 4 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 978,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,4000,84000,26000" +) +oxt "47000,20000,63000,42000" +ttg (MlTextGroup +uid 979,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 980,0 +va (VaSet +) +xt "68100,25700,83000,26900" +st "AhbLiteComponents_test" +blo "68100,26700" +tm "BdLibraryNameMgr" +) +*61 (Text +uid 981,0 +va (VaSet +) +xt "68100,26700,76700,27900" +st "uvmAhbDriver" +blo "68100,27700" +tm "CptNameMgr" +) +*62 (Text +uid 982,0 +va (VaSet +) +xt "68100,27700,71800,28900" +st "I_driv" +blo "68100,28700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 983,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 984,0 +text (MLText +uid 985,0 +va (VaSet +font "Courier New,8,0" +) +xt "68000,30000,68000,30000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 986,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,24250,69750,25750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*63 (SaComponent +uid 1031,0 +optionalChildren [ +*64 (CptPort +uid 987,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 988,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,37625,84750,38375" +) +tg (CPTG +uid 989,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 990,0 +va (VaSet +font "Verdana,12,0" +) +xt "78500,37300,83000,38700" +st "hAddr" +ju 2 +blo "83000,38500" +) +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 4 +suid 2051,0 +) +) +) +*65 (CptPort +uid 991,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 992,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,39625,84750,40375" +) +tg (CPTG +uid 993,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 994,0 +va (VaSet +font "Verdana,12,0" +) +xt "77100,39300,83000,40700" +st "hWData" +ju 2 +blo "83000,40500" +) +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 2053,0 +) +) +) +*66 (CptPort +uid 995,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 996,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,47625,84750,48375" +) +tg (CPTG +uid 997,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 998,0 +va (VaSet +font "Verdana,12,0" +) +xt "77600,47300,83000,48700" +st "hRData" +ju 2 +blo "83000,48500" +) +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 1 +suid 2054,0 +) +) +) +*67 (CptPort +uid 999,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1000,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,43625,84750,44375" +) +tg (CPTG +uid 1001,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1002,0 +va (VaSet +font "Verdana,12,0" +) +xt "78000,43300,83000,44700" +st "hWrite" +ju 2 +blo "83000,44500" +) +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 2055,0 +) +) +) +*68 (CptPort +uid 1003,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1004,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,41625,84750,42375" +) +tg (CPTG +uid 1005,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1006,0 +va (VaSet +font "Verdana,12,0" +) +xt "77900,41300,83000,42700" +st "hTrans" +ju 2 +blo "83000,42500" +) +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 2059,0 +) +) +) +*69 (CptPort +uid 1007,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1008,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,49625,84750,50375" +) +tg (CPTG +uid 1009,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1010,0 +va (VaSet +font "Verdana,12,0" +) +xt "77500,49300,83000,50700" +st "hReady" +ju 2 +blo "83000,50500" +) +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 2 +suid 2061,0 +) +) +) +*70 (CptPort +uid 1011,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1012,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,51625,84750,52375" +) +tg (CPTG +uid 1013,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1014,0 +va (VaSet +font "Verdana,12,0" +) +xt "78300,51300,83000,52700" +st "hResp" +ju 2 +blo "83000,52500" +) +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +) +*71 (CptPort +uid 1015,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1016,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,55625,84750,56375" +) +tg (CPTG +uid 1017,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1018,0 +va (VaSet +font "Verdana,12,0" +) +xt "79500,55300,83000,56700" +st "hClk" +ju 2 +blo "83000,56500" +) +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*72 (CptPort +uid 1019,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1020,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,57625,84750,58375" +) +tg (CPTG +uid 1021,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1022,0 +va (VaSet +font "Verdana,12,0" +) +xt "76200,57300,83000,58700" +st "hReset_n" +ju 2 +blo "83000,58500" +) +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 2064,0 +) +) +) +*73 (CptPort +uid 1023,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1024,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,45625,84750,46375" +) +tg (CPTG +uid 1025,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1026,0 +va (VaSet +font "Verdana,12,0" +) +xt "79500,45300,83000,46700" +st "hSel" +ju 2 +blo "83000,46500" +) +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 2066,0 +) +) +) +*74 (CptPort +uid 1027,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1028,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,37625,68000,38375" +) +tg (CPTG +uid 1029,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1030,0 +va (VaSet +font "Verdana,12,0" +) +xt "69000,37300,82700,38700" +st "monitorTransaction" +blo "69000,38500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "monitorTransaction" +t "string" +o 11 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 1032,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,34000,84000,60000" +) +oxt "47000,16000,63000,42000" +ttg (MlTextGroup +uid 1033,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*75 (Text +uid 1034,0 +va (VaSet +) +xt "68100,59700,83000,60900" +st "AhbLiteComponents_test" +blo "68100,60700" +tm "BdLibraryNameMgr" +) +*76 (Text +uid 1035,0 +va (VaSet +) +xt "68100,60700,77400,61900" +st "uvmAhbMonitor" +blo "68100,61700" +tm "CptNameMgr" +) +*77 (Text +uid 1036,0 +va (VaSet +) +xt "68100,61700,72000,62900" +st "I_mon" +blo "68100,62700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1037,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1038,0 +text (MLText +uid 1039,0 +va (VaSet +font "Courier New,8,0" +) +xt "68000,64000,68000,64000" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 1040,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "68250,58250,69750,59750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +viewiconposition 0 +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*78 (Wire +uid 313,0 +optionalChildren [ +*79 (BdJunction +uid 423,0 +ps "OnConnectorStrategy" +shape (Circle +uid 424,0 +va (VaSet +vasetType 1 +) +xt "87600,7600,88400,8400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 314,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,8000,100000,8000" +pts [ +"84750,8000" +"100000,8000" +] +) +start &49 +end &22 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 317,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 318,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,6600,100500,8000" +st "hAddr" +blo "96000,7800" +tm "WireNameMgr" +) +) +on &23 +) +*80 (Wire +uid 327,0 +shape (OrthoPolyLine +uid 328,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,48000,100000,48000" +pts [ +"100000,48000" +"84750,48000" +] +) +start &24 +end &66 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 331,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 332,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,46600,101400,48000" +st "hRData" +blo "96000,47800" +tm "WireNameMgr" +) +) +on &25 +) +*81 (Wire +uid 341,0 +optionalChildren [ +*82 (BdJunction +uid 453,0 +ps "OnConnectorStrategy" +shape (Circle +uid 454,0 +va (VaSet +vasetType 1 +) +xt "97600,17600,98400,18400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 342,0 +va (VaSet +vasetType 3 +) +xt "84750,18000,100000,18000" +pts [ +"100000,18000" +"84750,18000" +] +) +start &26 +end &53 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 345,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 346,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,16600,101500,18000" +st "hReady" +blo "96000,17800" +tm "WireNameMgr" +) +) +on &27 +) +*83 (Wire +uid 355,0 +shape (OrthoPolyLine +uid 356,0 +va (VaSet +vasetType 3 +) +xt "84750,52000,100000,52000" +pts [ +"100000,52000" +"84750,52000" +] +) +start &28 +end &70 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 359,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 360,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,50600,100700,52000" +st "hResp" +blo "96000,51800" +tm "WireNameMgr" +) +) +on &29 +) +*84 (Wire +uid 369,0 +optionalChildren [ +*85 (BdJunction +uid 447,0 +ps "OnConnectorStrategy" +shape (Circle +uid 448,0 +va (VaSet +vasetType 1 +) +xt "95600,15600,96400,16400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 370,0 +va (VaSet +vasetType 3 +) +xt "84750,16000,100000,16000" +pts [ +"84750,16000" +"100000,16000" +] +) +start &56 +end &30 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 373,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 374,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,14600,100500,16000" +st "hSel" +blo "97000,15800" +tm "WireNameMgr" +) +) +on &31 +) +*86 (Wire +uid 383,0 +optionalChildren [ +*87 (BdJunction +uid 435,0 +ps "OnConnectorStrategy" +shape (Circle +uid 436,0 +va (VaSet +vasetType 1 +) +xt "91600,11600,92400,12400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 384,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,12000,100000,12000" +pts [ +"84750,12000" +"100000,12000" +] +) +start &52 +end &32 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 387,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 388,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,10600,101100,12000" +st "hTrans" +blo "96000,11800" +tm "WireNameMgr" +) +) +on &33 +) +*88 (Wire +uid 397,0 +optionalChildren [ +*89 (BdJunction +uid 429,0 +ps "OnConnectorStrategy" +shape (Circle +uid 430,0 +va (VaSet +vasetType 1 +) +xt "89600,9600,90400,10400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 398,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,10000,100000,10000" +pts [ +"84750,10000" +"100000,10000" +] +) +start &50 +end &34 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 401,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 402,0 +va (VaSet +font "Verdana,12,0" +) +xt "95000,8600,100900,10000" +st "hWData" +blo "95000,9800" +tm "WireNameMgr" +) +) +on &35 +) +*90 (Wire +uid 411,0 +optionalChildren [ +*91 (BdJunction +uid 441,0 +ps "OnConnectorStrategy" +shape (Circle +uid 442,0 +va (VaSet +vasetType 1 +) +xt "93600,13600,94400,14400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 412,0 +va (VaSet +vasetType 3 +) +xt "84750,14000,100000,14000" +pts [ +"84750,14000" +"100000,14000" +] +) +start &51 +end &36 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 415,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 416,0 +va (VaSet +font "Verdana,12,0" +) +xt "96000,12600,101000,14000" +st "hWrite" +blo "96000,13800" +tm "WireNameMgr" +) +) +on &37 +) +*92 (Wire +uid 419,0 +shape (OrthoPolyLine +uid 420,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,8000,88000,38000" +pts [ +"88000,8000" +"88000,38000" +"84750,38000" +] +) +start &79 +end &64 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 421,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 422,0 +va (VaSet +) +xt "86750,37000,90450,38200" +st "hAddr" +blo "86750,38000" +tm "WireNameMgr" +) +) +on &23 +) +*93 (Wire +uid 425,0 +shape (OrthoPolyLine +uid 426,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,10000,90000,40000" +pts [ +"90000,10000" +"90000,40000" +"84750,40000" +] +) +start &89 +end &65 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 427,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 428,0 +va (VaSet +) +xt "86750,39000,91350,40200" +st "hWData" +blo "86750,40000" +tm "WireNameMgr" +) +) +on &35 +) +*94 (Wire +uid 431,0 +shape (OrthoPolyLine +uid 432,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,12000,92000,42000" +pts [ +"92000,12000" +"92000,42000" +"84750,42000" +] +) +start &87 +end &68 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 433,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 434,0 +va (VaSet +) +xt "86750,41000,90950,42200" +st "hTrans" +blo "86750,42000" +tm "WireNameMgr" +) +) +on &33 +) +*95 (Wire +uid 437,0 +shape (OrthoPolyLine +uid 438,0 +va (VaSet +vasetType 3 +) +xt "84750,14000,94000,44000" +pts [ +"94000,14000" +"94000,44000" +"84750,44000" +] +) +start &91 +end &67 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 439,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 440,0 +va (VaSet +) +xt "86750,43000,90650,44200" +st "hWrite" +blo "86750,44000" +tm "WireNameMgr" +) +) +on &37 +) +*96 (Wire +uid 443,0 +shape (OrthoPolyLine +uid 444,0 +va (VaSet +vasetType 3 +) +xt "84750,16000,96000,46000" +pts [ +"96000,16000" +"96000,46000" +"84750,46000" +] +) +start &85 +end &73 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 445,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 446,0 +va (VaSet +) +xt "86750,45000,89650,46200" +st "hSel" +blo "86750,46000" +tm "WireNameMgr" +) +) +on &31 +) +*97 (Wire +uid 449,0 +shape (OrthoPolyLine +uid 450,0 +va (VaSet +vasetType 3 +) +xt "84750,18000,98000,50000" +pts [ +"98000,18000" +"98000,50000" +"84750,50000" +] +) +start &82 +end &69 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 451,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 452,0 +va (VaSet +) +xt "86750,49000,91150,50200" +st "hReady" +blo "86750,50000" +tm "WireNameMgr" +) +) +on &27 +) +*98 (Wire +uid 457,0 +shape (OrthoPolyLine +uid 458,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,8000,67250,8000" +pts [ +"52750,8000" +"67250,8000" +] +) +start &13 +end &59 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 459,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 460,0 +va (VaSet +font "Verdana,12,0" +) +xt "54000,6600,66500,8000" +st "driverTransaction" +blo "54000,7800" +tm "WireNameMgr" +) +) +on &38 +) +*99 (Wire +uid 463,0 +shape (OrthoPolyLine +uid 464,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "52750,38000,67250,38000" +pts [ +"52750,38000" +"67250,38000" +] +) +start &18 +end &74 +sat 32 +eat 32 +sty 1 +stc 0 +sf 1 +si 0 +tg (WTG +uid 465,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 466,0 +va (VaSet +font "Verdana,12,0" +) +xt "54000,36600,67700,38000" +st "monitorTransaction" +blo "54000,37800" +tm "WireNameMgr" +) +) +on &39 +) +*100 (Wire +uid 508,0 +shape (OrthoPolyLine +uid 509,0 +va (VaSet +vasetType 3 +) +xt "60000,22000,67250,22000" +pts [ +"60000,22000" +"67250,22000" +] +) +start &40 +end &57 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 512,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 513,0 +va (VaSet +font "Verdana,12,0" +) +xt "60000,20600,63800,22000" +st "clock" +blo "60000,21800" +tm "WireNameMgr" +) +) +on &41 +) +*101 (Wire +uid 522,0 +shape (OrthoPolyLine +uid 523,0 +va (VaSet +vasetType 3 +) +xt "84750,22000,100000,22000" +pts [ +"84750,22000" +"100000,22000" +] +) +start &54 +end &42 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 526,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 527,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,20600,100500,22000" +st "hClk" +blo "97000,21800" +tm "WireNameMgr" +) +) +on &43 +) +*102 (Wire +uid 536,0 +shape (OrthoPolyLine +uid 537,0 +va (VaSet +vasetType 3 +) +xt "84750,24000,100000,24000" +pts [ +"84750,24000" +"100000,24000" +] +) +start &55 +end &44 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 541,0 +va (VaSet +font "Verdana,12,0" +) +xt "95000,22600,101800,24000" +st "hReset_n" +blo "95000,23800" +tm "WireNameMgr" +) +) +on &45 +) +*103 (Wire +uid 550,0 +shape (OrthoPolyLine +uid 551,0 +va (VaSet +vasetType 3 +) +xt "60000,24000,67250,24000" +pts [ +"60000,24000" +"67250,24000" +] +) +start &46 +end &58 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 554,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 555,0 +va (VaSet +font "Verdana,12,0" +) +xt "60000,22600,64100,24000" +st "reset" +blo "60000,23800" +tm "WireNameMgr" +) +) +on &47 +) +*104 (Wire +uid 558,0 +shape (OrthoPolyLine +uid 559,0 +va (VaSet +vasetType 3 +) +xt "84750,56000,92000,56000" +pts [ +"84750,56000" +"92000,56000" +] +) +start &71 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 564,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 565,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,54600,92500,56000" +st "hClk" +blo "89000,55800" +tm "WireNameMgr" +) +) +on &43 +) +*105 (Wire +uid 566,0 +shape (OrthoPolyLine +uid 567,0 +va (VaSet +vasetType 3 +) +xt "84750,58000,92000,58000" +pts [ +"84750,58000" +"92000,58000" +] +) +start &72 +sat 32 +eat 16 +st 0 +sf 1 +si 0 +tg (WTG +uid 572,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 573,0 +va (VaSet +font "Verdana,12,0" +) +xt "87000,56600,93800,58000" +st "hReset_n" +blo "87000,57800" +tm "WireNameMgr" +) +) +on &45 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *106 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*107 (Text +uid 42,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*108 (MLText +uid 43,0 +va (VaSet +) +xt "0,1000,17500,7000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*110 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*111 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*112 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*113 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*114 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*115 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-1604,-1604,141072,75916" +cachedDiagramExtent "0,0,109000,74000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 67 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 1094,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*116 (Text +va (VaSet +font "Arial,8,1" +) +xt "2200,3500,5800,4500" +st "" +blo "2200,4300" +tm "BdLibraryNameMgr" +) +*117 (Text +va (VaSet +font "Arial,8,1" +) +xt "2200,4500,5600,5500" +st "" +blo "2200,5300" +tm "BlkNameMgr" +) +*118 (Text +va (VaSet +font "Arial,8,1" +) +xt "2200,5500,4000,6500" +st "U_0" +blo "2200,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "2200,13500,2200,13500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*119 (Text +va (VaSet +font "Arial,8,1" +) +xt "550,3500,3450,4500" +st "Library" +blo "550,4300" +) +*120 (Text +va (VaSet +font "Arial,8,1" +) +xt "550,4500,7450,5500" +st "MWComponent" +blo "550,5300" +) +*121 (Text +va (VaSet +font "Arial,8,1" +) +xt "550,5500,2350,6500" +st "U_0" +blo "550,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-6450,1500,-6450,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*122 (Text +va (VaSet +font "Arial,8,1" +) +xt "900,3500,3800,4500" +st "Library" +blo "900,4300" +tm "BdLibraryNameMgr" +) +*123 (Text +va (VaSet +font "Arial,8,1" +) +xt "900,4500,7100,5500" +st "SaComponent" +blo "900,5300" +tm "CptNameMgr" +) +*124 (Text +va (VaSet +font "Arial,8,1" +) +xt "900,5500,2700,6500" +st "U_0" +blo "900,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-6100,1500,-6100,1500" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*125 (Text +va (VaSet +font "Arial,8,1" +) +xt "500,3500,3400,4500" +st "Library" +blo "500,4300" +) +*126 (Text +va (VaSet +font "Arial,8,1" +) +xt "500,4500,7500,5500" +st "VhdlComponent" +blo "500,5300" +) +*127 (Text +va (VaSet +font "Arial,8,1" +) +xt "500,5500,2300,6500" +st "U_0" +blo "500,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-6500,1500,-6500,1500" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-450,0,8450,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*128 (Text +va (VaSet +font "Arial,8,1" +) +xt "50,3500,2950,4500" +st "Library" +blo "50,4300" +) +*129 (Text +va (VaSet +font "Arial,8,1" +) +xt "50,4500,7950,5500" +st "VerilogComponent" +blo "50,5300" +) +*130 (Text +va (VaSet +font "Arial,8,1" +) +xt "50,5500,1850,6500" +st "U_0" +blo "50,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-6950,1500,-6950,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*131 (Text +va (VaSet +font "Arial,8,1" +) +xt "3150,4000,4850,5000" +st "eb1" +blo "3150,4800" +tm "HdlTextNameMgr" +) +*132 (Text +va (VaSet +font "Arial,8,1" +) +xt "3150,5000,3950,6000" +st "1" +blo "3150,5800" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Arial,8,1" +) +xt "-500,-500,500,500" +st "G" +blo "-500,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,1900,1000" +st "sig0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2400,1000" +st "dbus0" +blo "0,800" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,3000,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*133 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*134 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1250,1450" +) +num (Text +va (VaSet +) +xt "250,250,1050,1250" +st "1" +blo "250,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*135 (Text +va (VaSet +font "Arial,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*136 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1800,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,15800,5400,16800" +st "Declarations" +blo "0,16600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,16800,2700,17800" +st "Ports:" +blo "0,17600" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,27400,3800,28400" +st "Pre User:" +blo "0,28200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,28400,27000,29200" +st "constant ahbTransactionLength: positive := 20;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Arial,8,1" +) +xt "0,29200,7100,30200" +st "Diagram Signals:" +blo "0,30000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,15800,4700,16800" +st "Post User:" +blo "0,16600" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,15800,0,15800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 14,0 +usingSuid 1 +emptyRow *137 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*138 (RefLabelRowHdr +) +*139 (TitleRowHdr +) +*140 (FilterRowHdr +) +*141 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*142 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*143 (GroupColHdr +tm "GroupColHdrMgr" +) +*144 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*145 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*146 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*147 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*148 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*149 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*150 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 6 +suid 1,0 +) +) +uid 292,0 +) +*151 (LeafLogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 2 +suid 2,0 +) +) +uid 294,0 +) +*152 (LeafLogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 3 +suid 3,0 +) +) +uid 296,0 +) +*153 (LeafLogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 4 +suid 4,0 +) +) +uid 298,0 +) +*154 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 5,0 +) +) +uid 300,0 +) +*155 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 6,0 +) +) +uid 302,0 +) +*156 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 7,0 +) +) +uid 304,0 +) +*157 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 8,0 +) +) +uid 306,0 +) +*158 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "driverTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 13 +suid 9,0 +) +) +uid 467,0 +) +*159 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "monitorTransaction" +t "string" +b "(1 TO ahbTransactionLength)" +o 14 +suid 10,0 +) +) +uid 469,0 +) +*160 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 11,0 +) +) +uid 495,0 +) +*161 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 7 +suid 12,0 +) +) +uid 497,0 +) +*162 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 13,0 +) +) +uid 499,0 +) +*163 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 14,0 +) +) +uid 501,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*164 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *165 (MRCItem +litem &137 +pos 14 +dimension 20 +) +uid 69,0 +optionalChildren [ +*166 (MRCItem +litem &138 +pos 0 +dimension 20 +uid 70,0 +) +*167 (MRCItem +litem &139 +pos 1 +dimension 23 +uid 71,0 +) +*168 (MRCItem +litem &140 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*169 (MRCItem +litem &150 +pos 1 +dimension 20 +uid 291,0 +) +*170 (MRCItem +litem &151 +pos 3 +dimension 20 +uid 293,0 +) +*171 (MRCItem +litem &152 +pos 4 +dimension 20 +uid 295,0 +) +*172 (MRCItem +litem &153 +pos 6 +dimension 20 +uid 297,0 +) +*173 (MRCItem +litem &154 +pos 7 +dimension 20 +uid 299,0 +) +*174 (MRCItem +litem &155 +pos 8 +dimension 20 +uid 301,0 +) +*175 (MRCItem +litem &156 +pos 9 +dimension 20 +uid 303,0 +) +*176 (MRCItem +litem &157 +pos 10 +dimension 20 +uid 305,0 +) +*177 (MRCItem +litem &158 +pos 12 +dimension 20 +uid 468,0 +) +*178 (MRCItem +litem &159 +pos 13 +dimension 20 +uid 470,0 +) +*179 (MRCItem +litem &160 +pos 0 +dimension 20 +uid 494,0 +) +*180 (MRCItem +litem &161 +pos 2 +dimension 20 +uid 496,0 +) +*181 (MRCItem +litem &162 +pos 5 +dimension 20 +uid 498,0 +) +*182 (MRCItem +litem &163 +pos 11 +dimension 20 +uid 500,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*183 (MRCItem +litem &141 +pos 0 +dimension 20 +uid 74,0 +) +*184 (MRCItem +litem &143 +pos 1 +dimension 50 +uid 75,0 +) +*185 (MRCItem +litem &144 +pos 2 +dimension 100 +uid 76,0 +) +*186 (MRCItem +litem &145 +pos 3 +dimension 50 +uid 77,0 +) +*187 (MRCItem +litem &146 +pos 4 +dimension 100 +uid 78,0 +) +*188 (MRCItem +litem &147 +pos 5 +dimension 100 +uid 79,0 +) +*189 (MRCItem +litem &148 +pos 6 +dimension 50 +uid 80,0 +) +*190 (MRCItem +litem &149 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *191 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*192 (RefLabelRowHdr +) +*193 (TitleRowHdr +) +*194 (FilterRowHdr +) +*195 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*196 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*197 (GroupColHdr +tm "GroupColHdrMgr" +) +*198 (NameColHdr +tm "GenericNameColHdrMgr" +) +*199 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*200 (InitColHdr +tm "GenericValueColHdrMgr" +) +*201 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*202 (EolColHdr +tm "GenericEolColHdrMgr" +) +*203 (LogGeneric +generic (GiElement +name "driverVerbosity" +type "integer" +value "" +) +uid 629,0 +) +*204 (LogGeneric +generic (GiElement +name "monitorVerbosity" +type "integer" +value "" +) +uid 631,0 +) +*205 (LogGeneric +generic (GiElement +name "driverFileSpec" +type "string" +value "" +) +uid 633,0 +) +*206 (LogGeneric +generic (GiElement +name "monitorFileSpec" +type "string" +value "" +) +uid 635,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*207 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *208 (MRCItem +litem &191 +pos 4 +dimension 20 +) +uid 97,0 +optionalChildren [ +*209 (MRCItem +litem &192 +pos 0 +dimension 20 +uid 98,0 +) +*210 (MRCItem +litem &193 +pos 1 +dimension 23 +uid 99,0 +) +*211 (MRCItem +litem &194 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +*212 (MRCItem +litem &203 +pos 0 +dimension 20 +uid 628,0 +) +*213 (MRCItem +litem &204 +pos 2 +dimension 20 +uid 630,0 +) +*214 (MRCItem +litem &205 +pos 1 +dimension 20 +uid 632,0 +) +*215 (MRCItem +litem &206 +pos 3 +dimension 20 +uid 634,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*216 (MRCItem +litem &195 +pos 0 +dimension 20 +uid 102,0 +) +*217 (MRCItem +litem &197 +pos 1 +dimension 50 +uid 103,0 +) +*218 (MRCItem +litem &198 +pos 2 +dimension 100 +uid 104,0 +) +*219 (MRCItem +litem &199 +pos 3 +dimension 100 +uid 105,0 +) +*220 (MRCItem +litem &200 +pos 4 +dimension 50 +uid 106,0 +) +*221 (MRCItem +litem &201 +pos 5 +dimension 50 +uid 107,0 +) +*222 (MRCItem +litem &202 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/symbol.sb new file mode 100644 index 0000000..4b6cf5f --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@agent@hw/symbol.sb @@ -0,0 +1,2116 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "NUMERIC_STD" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 30,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 19,0 +) +) +uid 432,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 6 +suid 20,0 +) +) +uid 434,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 7 +suid 21,0 +) +) +uid 436,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +) +uid 438,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 3 +suid 23,0 +) +) +uid 440,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 24,0 +) +) +uid 442,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 4 +suid 25,0 +) +) +uid 444,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 26,0 +) +) +uid 446,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 27,0 +) +) +uid 448,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 28,0 +) +) +uid 450,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 29,0 +) +) +uid 452,0 +) +*25 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 30,0 +) +) +uid 454,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*26 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *27 (MRCItem +litem &1 +pos 12 +dimension 20 +) +uid 68,0 +optionalChildren [ +*28 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*29 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*30 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*31 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 433,0 +) +*32 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 435,0 +) +*33 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 437,0 +) +*34 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 439,0 +) +*35 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 441,0 +) +*36 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 443,0 +) +*37 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 445,0 +) +*38 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 447,0 +) +*39 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 449,0 +) +*40 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 451,0 +) +*41 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 453,0 +) +*42 (MRCItem +litem &25 +pos 11 +dimension 20 +uid 455,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*43 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*44 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*45 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*46 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*47 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*48 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*49 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*50 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *51 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*52 (RefLabelRowHdr +) +*53 (TitleRowHdr +) +*54 (FilterRowHdr +) +*55 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*56 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*57 (GroupColHdr +tm "GroupColHdrMgr" +) +*58 (NameColHdr +tm "GenericNameColHdrMgr" +) +*59 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*60 (InitColHdr +tm "GenericValueColHdrMgr" +) +*61 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*62 (EolColHdr +tm "GenericEolColHdrMgr" +) +*63 (LogGeneric +generic (GiElement +name "driverVerbosity" +type "integer" +value "" +) +uid 525,0 +) +*64 (LogGeneric +generic (GiElement +name "monitorVerbosity" +type "integer" +value "" +) +uid 527,0 +) +*65 (LogGeneric +generic (GiElement +name "driverFileSpec" +type "string" +value "" +) +uid 529,0 +) +*66 (LogGeneric +generic (GiElement +name "monitorFileSpec" +type "string" +value "" +) +uid 531,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*67 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *68 (MRCItem +litem &51 +pos 4 +dimension 20 +) +uid 96,0 +optionalChildren [ +*69 (MRCItem +litem &52 +pos 0 +dimension 20 +uid 97,0 +) +*70 (MRCItem +litem &53 +pos 1 +dimension 23 +uid 98,0 +) +*71 (MRCItem +litem &54 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +*72 (MRCItem +litem &63 +pos 0 +dimension 20 +uid 526,0 +) +*73 (MRCItem +litem &64 +pos 2 +dimension 20 +uid 528,0 +) +*74 (MRCItem +litem &65 +pos 1 +dimension 20 +uid 530,0 +) +*75 (MRCItem +litem &66 +pos 3 +dimension 20 +uid 532,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*76 (MRCItem +litem &55 +pos 0 +dimension 20 +uid 101,0 +) +*77 (MRCItem +litem &57 +pos 1 +dimension 50 +uid 102,0 +) +*78 (MRCItem +litem &58 +pos 2 +dimension 100 +uid 103,0 +) +*79 (MRCItem +litem &59 +pos 3 +dimension 100 +uid 104,0 +) +*80 (MRCItem +litem &60 +pos 4 +dimension 50 +uid 105,0 +) +*81 (MRCItem +litem &61 +pos 5 +dimension 50 +uid 106,0 +) +*82 (MRCItem +litem &62 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw" +) +(vvPair +variable "d_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvmAhbAgentHw" +) +(vvPair +variable "date" +value "02/17/2020" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "17" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "uvmAhbAgentHw" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "zas" +) +(vvPair +variable "graphical_source_date" +value "02/17/2020" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "ZELL" +) +(vvPair +variable "graphical_source_time" +value "17:08:42" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "ZELL" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/AhbLiteComponents_test" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "uvmAhbAgentHw" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvm@ahb@agent@hw\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\work\\repo\\edu\\sem\\labo\\solution\\hd-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\AhbLiteComponents_test\\hds\\uvmAhbAgentHw\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "17:08:42" +) +(vvPair +variable "unit" +value "uvmAhbAgentHw" +) +(vvPair +variable "user" +value "zas" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2020" +) +(vvPair +variable "yy" +value "20" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*83 (SymbolBody +uid 8,0 +optionalChildren [ +*84 (CptPort +uid 372,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 373,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,26625,38000,27375" +) +tg (CPTG +uid 374,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 375,0 +va (VaSet +) +xt "39000,26400,42400,27600" +st "clock" +blo "39000,27400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 376,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,9400,17000,10200" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 19,0 +) +) +) +*85 (CptPort +uid 377,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 378,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,8625,54750,9375" +) +tg (CPTG +uid 379,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 380,0 +va (VaSet +) +xt "49300,8400,53000,9600" +st "hAddr" +ju 2 +blo "53000,9400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 381,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,13400,31500,14200" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 6 +suid 20,0 +) +) +) +*86 (CptPort +uid 382,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 383,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,26625,54750,27375" +) +tg (CPTG +uid 384,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 385,0 +va (VaSet +) +xt "50000,26400,53000,27600" +st "hClk" +ju 2 +blo "53000,27400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 386,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,14200,17000,15000" +st "hClk : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 7 +suid 21,0 +) +) +) +*87 (CptPort +uid 387,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 388,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,18625,54750,19375" +) +tg (CPTG +uid 389,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 390,0 +va (VaSet +) +xt "48600,18400,53000,19600" +st "hRData" +ju 2 +blo "53000,19400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 391,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,10200,33500,11000" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 2 +suid 22,0 +) +) +) +*88 (CptPort +uid 392,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 393,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,20625,54750,21375" +) +tg (CPTG +uid 394,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 395,0 +va (VaSet +) +xt "48600,20400,53000,21600" +st "hReady" +ju 2 +blo "53000,21400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 396,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11000,17000,11800" +st "hReady : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 3 +suid 23,0 +) +) +) +*89 (CptPort +uid 397,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 398,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,28625,54750,29375" +) +tg (CPTG +uid 399,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 400,0 +va (VaSet +) +xt "47600,28400,53000,29600" +st "hReset_n" +ju 2 +blo "53000,29400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 401,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15000,17000,15800" +st "hReset_n : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 8 +suid 24,0 +) +) +) +*90 (CptPort +uid 402,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 403,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,22625,54750,23375" +) +tg (CPTG +uid 404,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 405,0 +va (VaSet +) +xt "49200,22400,53000,23600" +st "hResp" +ju 2 +blo "53000,23400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 406,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,11800,17000,12600" +st "hResp : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 4 +suid 25,0 +) +) +) +*91 (CptPort +uid 407,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 408,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,16625,54750,17375" +) +tg (CPTG +uid 409,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 410,0 +va (VaSet +) +xt "50100,16400,53000,17600" +st "hSel" +ju 2 +blo "53000,17400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 411,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,15800,17000,16600" +st "hSel : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 9 +suid 26,0 +) +) +) +*92 (CptPort +uid 412,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 413,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,12625,54750,13375" +) +tg (CPTG +uid 414,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 415,0 +va (VaSet +) +xt "48800,12400,53000,13600" +st "hTrans" +ju 2 +blo "53000,13400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 416,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,16600,34000,17400" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 10 +suid 27,0 +) +) +) +*93 (CptPort +uid 417,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 418,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,10625,54750,11375" +) +tg (CPTG +uid 419,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 420,0 +va (VaSet +) +xt "48400,10400,53000,11600" +st "hWData" +ju 2 +blo "53000,11400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 421,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,17400,33500,18200" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 11 +suid 28,0 +) +) +) +*94 (CptPort +uid 422,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 423,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "54000,14625,54750,15375" +) +tg (CPTG +uid 424,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 425,0 +va (VaSet +) +xt "49100,14400,53000,15600" +st "hWrite" +ju 2 +blo "53000,15400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 426,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,18200,16000,19000" +st "hWrite : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 12 +suid 29,0 +) +) +) +*95 (CptPort +uid 427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 428,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "37250,28625,38000,29375" +) +tg (CPTG +uid 429,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 430,0 +va (VaSet +) +xt "39000,28400,42300,29600" +st "reset" +blo "39000,29400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 431,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12600,17000,13400" +st "reset : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 5 +suid 30,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "38000,5000,54000,31000" +) +oxt "15000,6000,27000,16000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,31000,52200,32200" +st "AhbLiteComponents_test" +blo "37600,32000" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "37600,32200,47600,33400" +st "uvmAhbAgentHw" +blo "37600,33200" +) +) +gi *96 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "38000,35200,53000,40000" +st "Generic Declarations + +driverVerbosity integer +driverFileSpec string +monitorVerbosity integer +monitorFileSpec string " +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "driverVerbosity" +type "integer" +value "" +) +(GiElement +name "driverFileSpec" +type "string" +value "" +) +(GiElement +name "monitorVerbosity" +type "integer" +value "" +) +(GiElement +name "monitorFileSpec" +type "string" +value "" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +sF 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*97 (Grouping +uid 16,0 +optionalChildren [ +*98 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,48000,51000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,48500,34200,48500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*99 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,44000,55000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,44500,51200,44500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*100 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,46000,51000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,46500,34200,46500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*101 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,46000,34000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,46500,30200,46500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*102 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "51000,45000,71000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "51200,45200,65300,46400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*103 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "55000,44000,71000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "55200,44500,55200,44500" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*104 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,44000,51000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "35350,44400,45650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*105 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,47000,34000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,47500,30200,47500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*106 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "30000,48000,34000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "30200,48500,30200,48500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*107 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "34000,47000,51000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "34200,47500,34200,47500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "30000,44000,71000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *108 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +uid 49,0 +va (VaSet +font "arial,8,1" +) +xt "-2000,0,3400,1000" +st "Package List" +blo "-2000,800" +) +*110 (MLText +uid 50,0 +va (VaSet +) +xt "-2000,1000,15500,7000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.NUMERIC_STD.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all;" +tm "PackageList" +) +] +) +windowSize "136,41,1414,882" +viewArea "-3051,-1040,72660,50935" +cachedDiagramExtent "-2000,0,71000,49000" +hasePageBreakOrigin 1 +pageBreakOrigin "-2000,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Arial,8,1" +) +xt "1000,1000,3800,2000" +st "Panel0" +blo "1000,1800" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,33000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,15000,25800,16000" +st "" +blo "22200,15800" +) +second (Text +va (VaSet +font "Arial,8,1" +) +xt "22200,16000,24800,17000" +st "" +blo "22200,16800" +) +) +gi *111 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *112 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,7400,3400,8400" +st "Declarations" +blo "-2000,8200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,8400,700,9400" +st "Ports:" +blo "-2000,9200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "-2000,19000,400,20000" +st "User:" +blo "-2000,19800" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "-2000,7400,3800,8400" +st "Internal User:" +blo "-2000,8200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,20000,0,20000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "-2000,7400,-2000,7400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 624,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@driver/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@driver/symbol.sb new file mode 100644 index 0000000..97fe935 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@driver/symbol.sb @@ -0,0 +1,2001 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2074,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 5 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 2053,0 +) +) +uid 2526,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 2055,0 +) +) +uid 2530,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 2059,0 +) +) +uid 2538,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 2 +suid 2061,0 +) +) +uid 2542,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 6 +suid 2063,0 +) +) +uid 2546,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 2064,0 +) +) +uid 2548,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 2066,0 +) +) +uid 2697,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_uLogic" +o 1 +suid 2068,0 +) +) +uid 2903,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 3 +suid 2069,0 +) +) +uid 2905,0 +) +*24 (LogPort +port (LogicalPort +decl (Decl +n "driverTransaction" +t "string" +o 4 +suid 2071,0 +) +) +uid 2934,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 254,0 +optionalChildren [ +*27 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*28 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*29 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*30 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*31 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2527,0 +) +*32 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2531,0 +) +*33 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2539,0 +) +*34 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2543,0 +) +*35 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2547,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2549,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2698,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2904,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 2906,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2935,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*41 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*42 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*43 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*44 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*45 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*46 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*47 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*48 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *62 (MRCItem +litem &49 +pos 0 +dimension 20 +) +uid 293,0 +optionalChildren [ +*63 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 296,0 +) +*64 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 298,0 +) +*65 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*66 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 302,0 +) +*67 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 306,0 +) +*68 (MRCItem +litem &56 +pos 2 +dimension 199 +uid 308,0 +) +*69 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 310,0 +) +*70 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 312,0 +) +*71 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 314,0 +) +*72 (MRCItem +litem &60 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@driver\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@driver\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@driver" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahbDriver" +) +(vvPair +variable "date" +value "15.06.2015" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "15" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbDriver" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/AhbLiteComponents_test/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "module_name" +value "ahbDriver" +) +(vvPair +variable "month" +value "juin" +) +(vvPair +variable "month_long" +value "juin" +) +(vvPair +variable "p" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@driver\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahbDriver\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-beamer" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:11:55" +) +(vvPair +variable "unit" +value "ahbDriver" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2015" +) +(vvPair +variable "yy" +value "15" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2965,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,23625,63750,24375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "57500,23300,62000,24700" +st "hAddr" +ju 2 +blo "62000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14600,38000,15400" +st "hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 5 +suid 2051,0 +) +) +) +*75 (CptPort +uid 2464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2966,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,25625,63750,26375" +) +tg (CPTG +uid 2466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Verdana,12,0" +) +xt "56100,25300,62000,26700" +st "hWData" +ju 2 +blo "62000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2468,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18600,40000,19400" +st "hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 10 +suid 2053,0 +) +) +) +*76 (CptPort +uid 2474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2968,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,29625,63750,30375" +) +tg (CPTG +uid 2476,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2477,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,29300,62000,30700" +st "hWrite" +ju 2 +blo "62000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2478,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19400,22500,20200" +st "hWrite : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "hWrite" +t "std_uLogic" +o 11 +suid 2055,0 +) +) +) +*77 (CptPort +uid 2494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2969,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,27625,63750,28375" +) +tg (CPTG +uid 2496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2497,0 +va (VaSet +font "Verdana,12,0" +) +xt "56900,27300,62000,28700" +st "hTrans" +ju 2 +blo "62000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2498,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17800,40500,18600" +st "hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 9 +suid 2059,0 +) +) +) +*78 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2970,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,33625,63750,34375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "56500,33300,62000,34700" +st "hReady" +ju 2 +blo "62000,34500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13000,24000,13800" +st "hReady : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 2 +suid 2061,0 +) +) +) +*79 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2972,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,37625,63750,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Verdana,12,0" +) +xt "58500,37300,62000,38700" +st "hClk" +ju 2 +blo "62000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15400,24000,16200" +st "hClk : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hClk" +t "std_uLogic" +o 6 +suid 2063,0 +) +) +) +*80 (CptPort +uid 2519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2973,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,39625,63750,40375" +) +tg (CPTG +uid 2521,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2522,0 +va (VaSet +font "Verdana,12,0" +) +xt "55200,39300,62000,40700" +st "hReset_n" +ju 2 +blo "62000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2523,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16200,24000,17000" +st "hReset_n : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hReset_n" +t "std_uLogic" +o 7 +suid 2064,0 +) +) +) +*81 (CptPort +uid 2692,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2974,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,31625,63750,32375" +) +tg (CPTG +uid 2694,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2695,0 +va (VaSet +font "Verdana,12,0" +) +xt "58500,31300,62000,32700" +st "hSel" +ju 2 +blo "62000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2696,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17000,24000,17800" +st "hSel : OUT std_uLogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "hSel" +t "std_uLogic" +o 8 +suid 2066,0 +) +) +) +*82 (CptPort +uid 2893,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2894,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,37625,47000,38375" +) +tg (CPTG +uid 2895,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2896,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,37300,51800,38700" +st "clock" +blo "48000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2897,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11400,24000,12200" +st "clock : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_uLogic" +o 1 +suid 2068,0 +) +) +) +*83 (CptPort +uid 2898,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2899,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,39625,47000,40375" +) +tg (CPTG +uid 2900,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2901,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,39300,52100,40700" +st "reset" +blo "48000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2902,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13800,24000,14600" +st "reset : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_uLogic" +o 3 +suid 2069,0 +) +) +) +*84 (CptPort +uid 2912,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2976,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,23625,47000,24375" +) +tg (CPTG +uid 2914,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2915,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,23300,60500,24700" +st "driverTransaction" +blo "48000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2916,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12200,21500,13000" +st "driverTransaction : IN string ;" +) +thePort (LogicalPort +decl (Decl +n "driverTransaction" +t "string" +o 4 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,20000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,56600,42700" +st "AhbLiteComponents_test" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,50800,43700" +st "ahbDriver" +blo "47100,43500" +) +) +gi *85 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "47000,46000,58500,46800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*86 (Grouping +uid 136,0 +optionalChildren [ +*87 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,71200,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,71200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,59300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*92 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,92300,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "64150,61500,70850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,59300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,59900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,76700,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*97 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 103,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,11300,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; +" +tm "PackageList" +) +] +) +windowSize "117,42,1429,895" +viewArea "-1400,-1400,101342,68066" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,20200,2400,21200" +st "User:" +blo "0,21000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21200,2000,21200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 3091,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@monitor/symbol.sb b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@monitor/symbol.sb new file mode 100644 index 0000000..cde51a8 --- /dev/null +++ b/06-07-08-09-SystemOnChip/AhbLiteComponents_test/hds/uvm@ahb@monitor/symbol.sb @@ -0,0 +1,1993 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +(DmPackageRef +library "AhbLite" +unitName "ahbLite" +) +] +libraryRefs [ +"ieee" +"AhbLite" +] +) +version "24.1" +appVersion "2009.2 (Build 10)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2074,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 320,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 4 +suid 2051,0 +) +) +uid 2524,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 2053,0 +) +) +uid 2526,0 +) +*16 (LogPort +port (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 1 +suid 2054,0 +) +) +uid 2528,0 +) +*17 (LogPort +port (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 2055,0 +) +) +uid 2530,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 2059,0 +) +) +uid 2538,0 +) +*19 (LogPort +port (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 2 +suid 2061,0 +) +) +uid 2542,0 +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +uid 2544,0 +) +*21 (LogPort +port (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +uid 2546,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 2064,0 +) +) +uid 2548,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 2066,0 +) +) +uid 2697,0 +) +*24 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "monitorTransaction" +t "string" +o 11 +suid 2071,0 +) +) +uid 2934,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 333,0 +optionalChildren [ +*25 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *26 (MRCItem +litem &1 +pos 11 +dimension 20 +) +uid 254,0 +optionalChildren [ +*27 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 257,0 +) +*28 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 259,0 +) +*29 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 261,0 +) +*30 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 2525,0 +) +*31 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 2527,0 +) +*32 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 2529,0 +) +*33 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 2531,0 +) +*34 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 2539,0 +) +*35 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 2543,0 +) +*36 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 2545,0 +) +*37 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 2547,0 +) +*38 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 2549,0 +) +*39 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 2698,0 +) +*40 (MRCItem +litem &24 +pos 10 +dimension 20 +uid 2935,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 255,0 +optionalChildren [ +*41 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 263,0 +) +*42 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 267,0 +) +*43 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 269,0 +) +*44 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 271,0 +) +*45 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 273,0 +) +*46 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 275,0 +) +*47 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 277,0 +) +*48 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 279,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 253,0 +vaOverrides [ +] +) +] +) +uid 319,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *49 (LEmptyRow +) +uid 335,0 +optionalChildren [ +*50 (RefLabelRowHdr +) +*51 (TitleRowHdr +) +*52 (FilterRowHdr +) +*53 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*54 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*55 (GroupColHdr +tm "GroupColHdrMgr" +) +*56 (NameColHdr +tm "GenericNameColHdrMgr" +) +*57 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*58 (InitColHdr +tm "GenericValueColHdrMgr" +) +*59 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*60 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 336,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *62 (MRCItem +litem &49 +pos 0 +dimension 20 +) +uid 293,0 +optionalChildren [ +*63 (MRCItem +litem &50 +pos 0 +dimension 20 +uid 296,0 +) +*64 (MRCItem +litem &51 +pos 1 +dimension 23 +uid 298,0 +) +*65 (MRCItem +litem &52 +pos 2 +hidden 1 +dimension 20 +uid 300,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 294,0 +optionalChildren [ +*66 (MRCItem +litem &53 +pos 0 +dimension 20 +uid 302,0 +) +*67 (MRCItem +litem &55 +pos 1 +dimension 50 +uid 306,0 +) +*68 (MRCItem +litem &56 +pos 2 +dimension 199 +uid 308,0 +) +*69 (MRCItem +litem &57 +pos 3 +dimension 100 +uid 310,0 +) +*70 (MRCItem +litem &58 +pos 4 +dimension 50 +uid 312,0 +) +*71 (MRCItem +litem &59 +pos 5 +dimension 50 +uid 314,0 +) +*72 (MRCItem +litem &60 +pos 6 +dimension 309 +uid 316,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 292,0 +vaOverrides [ +] +) +] +) +uid 334,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hdl" +) +(vvPair +variable "HDSDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@monitor\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@monitor\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@monitor" +) +(vvPair +variable "d_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahbMonitor" +) +(vvPair +variable "date" +value "15.06.2015" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "15" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "ahbMonitor" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE3673" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "AhbLiteComponents_test" +) +(vvPair +variable "library_downstream_Concatenation" +value "U:/ELN_Board/Synthesis" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "library_downstream_HdsLintPlugin" +value "$HDS_PROJECT_DIR/../NanoBlaze/designcheck" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Libs/AhbLiteComponents_test/work" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\ELN_Board\\Synthesis" +) +(vvPair +variable "mm" +value "06" +) +(vvPair +variable "module_name" +value "ahbMonitor" +) +(vvPair +variable "month" +value "juin" +) +(vvPair +variable "month_long" +value "juin" +) +(vvPair +variable "p" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahb@monitor\\symbol.sb" +) +(vvPair +variable "p_logical" +value "D:\\Labs\\SEm_labs\\..\\Libs\\AhbLiteComponents_test\\hds\\ahbMonitor\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds-beamer" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HDS_LIBS_DIR\\NanoBlaze\\hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_SCRATCH_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME\\win32" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:12:41" +) +(vvPair +variable "unit" +value "ahbMonitor" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2009.2 (Build 10)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2015" +) +(vvPair +variable "yy" +value "15" +) +] +) +LanguageMgr "VhdlLangMgr" +uid 51,0 +optionalChildren [ +*73 (SymbolBody +uid 8,0 +optionalChildren [ +*74 (CptPort +uid 2452,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3023,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,19625,63750,20375" +) +tg (CPTG +uid 2454,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2455,0 +va (VaSet +font "Verdana,12,0" +) +xt "57500,19300,62000,20700" +st "hAddr" +ju 2 +blo "62000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2456,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,11400,38500,12200" +st "hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ) ;" +) +thePort (LogicalPort +decl (Decl +n "hAddr" +t "unsigned" +b "( ahbAddressBitNb-1 DOWNTO 0 )" +o 4 +suid 2051,0 +) +) +) +*75 (CptPort +uid 2464,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3024,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,21625,63750,22375" +) +tg (CPTG +uid 2466,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2467,0 +va (VaSet +font "Verdana,12,0" +) +xt "56100,21300,62000,22700" +st "hWData" +ju 2 +blo "62000,22500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2468,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17800,40500,18600" +st "hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hWData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 9 +suid 2053,0 +) +) +) +*76 (CptPort +uid 2469,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2967,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,29625,63750,30375" +) +tg (CPTG +uid 2471,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2472,0 +va (VaSet +font "Verdana,12,0" +) +xt "56600,29300,62000,30700" +st "hRData" +ju 2 +blo "62000,30500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2473,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13000,40500,13800" +st "hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hRData" +t "std_ulogic_vector" +b "(ahbDataBitNb-1 DOWNTO 0)" +o 1 +suid 2054,0 +) +) +) +*77 (CptPort +uid 2474,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3025,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,25625,63750,26375" +) +tg (CPTG +uid 2476,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2477,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,25300,62000,26700" +st "hWrite" +ju 2 +blo "62000,26500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2478,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,18600,24500,19400" +st "hWrite : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hWrite" +t "std_uLogic" +o 10 +suid 2055,0 +) +) +) +*78 (CptPort +uid 2494,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3026,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,23625,63750,24375" +) +tg (CPTG +uid 2496,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2497,0 +va (VaSet +font "Verdana,12,0" +) +xt "56900,23300,62000,24700" +st "hTrans" +ju 2 +blo "62000,24500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2498,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,17000,41000,17800" +st "hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0) ;" +) +thePort (LogicalPort +decl (Decl +n "hTrans" +t "std_ulogic_vector" +b "(ahbTransBitNb-1 DOWNTO 0)" +o 8 +suid 2059,0 +) +) +) +*79 (CptPort +uid 2504,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2970,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,31625,63750,32375" +) +tg (CPTG +uid 2506,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2507,0 +va (VaSet +font "Verdana,12,0" +) +xt "56500,31300,62000,32700" +st "hReady" +ju 2 +blo "62000,32500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2508,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,13800,24500,14600" +st "hReady : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hReady" +t "std_uLogic" +o 2 +suid 2061,0 +) +) +) +*80 (CptPort +uid 2509,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2971,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,33625,63750,34375" +) +tg (CPTG +uid 2511,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2512,0 +va (VaSet +font "Verdana,12,0" +) +xt "57300,33300,62000,34700" +st "hResp" +ju 2 +blo "62000,34500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2513,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,15400,24500,16200" +st "hResp : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hResp" +t "std_uLogic" +o 3 +suid 2062,0 +) +) +) +*81 (CptPort +uid 2514,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3027,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,37625,63750,38375" +) +tg (CPTG +uid 2516,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2517,0 +va (VaSet +font "Verdana,12,0" +) +xt "58500,37300,62000,38700" +st "hClk" +ju 2 +blo "62000,38500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2518,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,12200,24500,13000" +st "hClk : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hClk" +t "std_uLogic" +o 5 +suid 2063,0 +) +) +) +*82 (CptPort +uid 2519,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3028,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,39625,63750,40375" +) +tg (CPTG +uid 2521,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2522,0 +va (VaSet +font "Verdana,12,0" +) +xt "55200,39300,62000,40700" +st "hReset_n" +ju 2 +blo "62000,40500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2523,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,14600,24500,15400" +st "hReset_n : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hReset_n" +t "std_uLogic" +o 6 +suid 2064,0 +) +) +) +*83 (CptPort +uid 2692,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3029,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "63000,27625,63750,28375" +) +tg (CPTG +uid 2694,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2695,0 +va (VaSet +font "Verdana,12,0" +) +xt "58500,27300,62000,28700" +st "hSel" +ju 2 +blo "62000,28500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2696,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16200,24500,17000" +st "hSel : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "hSel" +t "std_uLogic" +o 7 +suid 2066,0 +) +) +) +*84 (CptPort +uid 2912,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3030,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "46250,19625,47000,20375" +) +tg (CPTG +uid 2914,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2915,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,19300,61700,20700" +st "monitorTransaction" +blo "48000,20500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 2916,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,19400,21000,20200" +st "monitorTransaction : OUT string " +) +thePort (LogicalPort +m 1 +decl (Decl +n "monitorTransaction" +t "string" +o 11 +suid 2071,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "47000,16000,63000,42000" +) +oxt "15000,6000,47000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +) +xt "47100,41700,56600,42700" +st "AhbLiteComponents_test" +blo "47100,42500" +) +second (Text +uid 12,0 +va (VaSet +) +xt "47100,42700,51700,43700" +st "ahbMonitor" +blo "47100,43500" +) +) +gi *85 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "47000,46000,58500,46800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*86 (Grouping +uid 136,0 +optionalChildren [ +*87 (CommentText +uid 138,0 +shape (Rectangle +uid 139,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,65000,78000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 140,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,65000,71200,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*88 (CommentText +uid 141,0 +shape (Rectangle +uid 142,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,82000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 143,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,81200,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 144,0 +shape (Rectangle +uid 145,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,63000,78000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 146,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,63000,71200,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 147,0 +shape (Rectangle +uid 148,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,61000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 149,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,59300,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 150,0 +shape (Rectangle +uid 151,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,62000,98000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 152,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*92 (CommentText +uid 153,0 +shape (Rectangle +uid 154,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "82000,61000,98000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 155,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "82200,61000,92300,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*93 (CommentText +uid 156,0 +shape (Rectangle +uid 157,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,61000,78000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 158,0 +va (VaSet +fg "32768,0,0" +) +xt "64150,61500,70850,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 159,0 +shape (Rectangle +uid 160,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,61000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 161,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,59300,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 162,0 +shape (Rectangle +uid 163,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,61000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 164,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,59900,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 165,0 +shape (Rectangle +uid 166,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "61000,64000,78000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 167,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "61200,64000,77600,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 137,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "57000,61000,98000,66000" +) +oxt "14000,66000,55000,71000" +) +*97 (CommentGraphic +uid 2462,0 +shape (PolyLine2D +pts [ +"47000,44000" +"63000,44000" +] +uid 2463,0 +layer 0 +va (VaSet +vasetType 1 +transparent 1 +fg "49152,49152,49152" +) +xt "47000,44000,63000,44000" +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 103,0 +va (VaSet +font "arial,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 104,0 +va (VaSet +) +xt "0,1000,11300,6000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; +" +tm "PackageList" +) +] +) +windowSize "117,42,1428,895" +viewArea "-1443,-1443,101127,67970" +cachedDiagramExtent "0,0,98000,66000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +windowsPaperName "A4" +windowsPaperType 9 +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2000,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Courier New,9,0" +) +xt "750,1000,4250,2200" +st "Panel0" +blo "750,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,47000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "29100,14700,32600,15700" +st "" +blo "29100,15500" +) +second (Text +va (VaSet +) +xt "29100,15700,31700,16700" +st "" +blo "29100,16500" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Arial,8,1" +) +xt "0,9400,5400,10400" +st "Declarations" +blo "0,10200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Arial,8,1" +) +xt "0,10400,2700,11400" +st "Ports:" +blo "0,11200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Arial,8,1" +) +xt "0,20200,2400,21200" +st "User:" +blo "0,21000" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Arial,8,1" +) +xt "0,9400,5800,10400" +st "Internal User:" +blo "0,10200" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21200,2000,21200" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,9400,0,9400" +tm "SyDeclarativeTextMgr" +) +) +lastUid 3076,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/Board/concat/concatenated.vhd b/06-07-08-09-SystemOnChip/Board/concat/concatenated.vhd new file mode 100644 index 0000000..a6a79c1 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/concat/concatenated.vhd @@ -0,0 +1,6031 @@ +-- VHDL Entity Board.SoC_ebs3.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 10:21:25 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY SoC_ebs3 IS + PORT( + RxD : IN std_ulogic; + clock : IN std_ulogic; + reset_N : IN std_ulogic; + selSinCos_n : IN std_ulogic; + LED1 : OUT std_ulogic; + LED2 : OUT std_ulogic; + TxD : OUT std_ulogic; + spare : OUT std_ulogic_vector (1 TO 17); + xOut : OUT std_ulogic; + yOut : OUT std_ulogic + ); + +-- Declarations + +END SoC_ebs3 ; + + + + + +-- VHDL Entity Board.DFF.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:05 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY DFF IS + PORT( + CLK : IN std_uLogic; + CLR : IN std_uLogic; + D : IN std_uLogic; + Q : OUT std_uLogic + ); + +-- Declarations + +END DFF ; + + + + + +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + + + + + +-- VHDL Entity Board.inverterIn.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY inverterIn IS + PORT( + in1 : IN std_uLogic; + out1 : OUT std_uLogic + ); + +-- Declarations + +END inverterIn ; + + + + + +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + + + + + +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; + + + + +-- VHDL Entity SystemOnChip.beamerSoc.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY beamerSoc IS + GENERIC( + ioNb : positive := 8; + testOutBitNb : positive := 16; + patternAddressBitNb : positive := 9 + ); + PORT( + TxD : OUT std_ulogic; + RxD : IN std_ulogic; + outX : OUT std_ulogic; + outY : OUT std_ulogic; + selSinCos : IN std_ulogic; + reset : IN std_ulogic; + clock : IN std_ulogic; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + testOut : OUT std_ulogic_vector (1 TO testOutBitNb) + ); + +-- Declarations + +END beamerSoc ; + + + + + +LIBRARY ieee; + USE ieee.std_logic_1164.all; + +PACKAGE ahbLite IS + ------------------------------------------------------------------------------ + -- bus components sizes + constant ahbAddressBitNb : positive := 16; + constant ahbDataBitNb : positive := 16; + constant ahbSlaveNb : positive := 16; + + constant ahbTransBitNb : positive := 2; + constant ahbSizeBitNb : positive := 1; + constant ahbBurstBitNb : positive := 3; + constant ahbProtBitNb : positive := 4; + + ------------------------------------------------------------------------------ + -- bus data vector type + subtype ahbDataType is std_logic_vector(ahbDataBitNb-1 downto 0); + type ahbDataVector is array(1 to ahbSlaveNb) of ahbDataType; + + ------------------------------------------------------------------------------ + -- address decoder + type ahbMemoryLocationType is + record + baseAddress: natural; + addressMask: natural; + end record; + type ahbMemoryLocationVector is array(1 to ahbSlaveNb) of ahbMemoryLocationType; + + ------------------------------------------------------------------------------ + -- bus signals + subtype transferType is std_ulogic_vector(ahbTransBitNb-1 downto 0); + constant transIdle : transferType := "00"; + constant transBusy : transferType := "01"; + constant transNonSeq: transferType := "10"; + constant transSeq : transferType := "11"; + + subtype transferSizeType is std_ulogic_vector(ahbSizeBitNb-1 downto 0); + constant size8 : transferSizeType := "0"; + constant size16 : transferSizeType := "1"; + + subtype burstType is std_ulogic_vector(ahbBurstBitNb-1 downto 0); + constant burstSingle : burstType := "000"; + constant burstIncr : burstType := "001"; + constant burstWrap4 : burstType := "010"; + constant burstIncr4 : burstType := "011"; + constant burstWrap8 : burstType := "100"; + constant burstIncr8 : burstType := "101"; + constant burstWrap16 : burstType := "110"; + constant burstIncr16 : burstType := "111"; + + subtype protectionType is std_ulogic_vector(ahbProtBitNb-1 downto 0); + constant protDefault : protectionType := "0011"; + + ------------------------------------------------------------------------------ + -- log2 + function addressBitNb (addressNb : natural) return natural; + +END ahbLite; + + + + +PACKAGE BODY ahbLite IS + + function addressBitNb (addressNb : natural) return natural is + variable powerOfTwo, bitNb : natural; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo <= addressNb loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end addressBitNb; + +END ahbLite; + + + + +-- VHDL Entity SystemOnChip.ahbBeamer.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:22 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbBeamer IS + GENERIC( + patternAddressBitNb : positive := 9; + testOutBitNb : positive := 16 + ); + PORT( + outX : OUT std_ulogic; + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + outY : OUT std_ulogic; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + selSinCos : IN std_ulogic; + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic; + hSel : IN std_ulogic; + hReady : OUT std_ulogic; + hResp : OUT std_ulogic; + hClk : IN std_ulogic; + hReset_n : IN std_ulogic + ); + +-- Declarations + +END ahbBeamer ; + + + + + +-- VHDL Entity SystemOnChip.ahbBeamerOperator.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:21 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY ahbBeamerOperator IS + GENERIC( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16 + ); + PORT( + outX : OUT std_ulogic; + run : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + outY : OUT std_ulogic; + selSinCos : IN std_ulogic; + interpolateLin : IN std_ulogic; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + memX : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + newPolynom : OUT std_ulogic + ); + +-- Declarations + +END ahbBeamerOperator ; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCoefficients.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:20 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCoefficients IS + GENERIC( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + +-- Declarations + +END interpolatorCoefficients ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCoefficients IS +BEGIN + + calcCoeffs: process(interpolateLinear, sample1, sample2, sample3, sample4) + begin + if interpolateLinear = '1' then + a <= (others => '0'); + b <= (others => '0'); + c <= resize(2*sample3, c'length) + - resize(2*sample2, c'length); + d <= resize( sample2, d'length); + else + a <= resize( sample4, a'length) + - resize(3*sample3, a'length) + + resize(3*sample2, a'length) + - resize( sample1, a'length); + b <= resize(2*sample1, b'length) + - resize(5*sample2, b'length) + + resize(4*sample3, b'length) + - resize( sample4, b'length); + c <= resize( sample3, c'length) + - resize( sample1, c'length); + d <= resize( sample2, d'length); + end if; + end process calcCoeffs; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity DigitalToAnalogConverter.DAC.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:06:08 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY DAC IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + serialOut : OUT std_ulogic; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END DAC ; + + + + + +ARCHITECTURE masterVersion OF DAC IS + + signal parallelIn1: unsigned(parallelIn'range); + signal integrator: unsigned(parallelIn'high+1 downto 0); + signal quantized: std_ulogic; + +BEGIN + +-- parallelIn1 <= parallelIn; + parallelIn1 <= parallelIn/2 + 2**(parallelIn'length-2); + + integrate: process(reset, clock) + begin + if reset = '1' then + integrator <= (others => '0'); + elsif rising_edge(clock) then + if quantized = '0' then + integrator <= integrator + parallelIn1; + else + integrator <= integrator + parallelIn1 - 2**parallelIn'length; + end if; + end if; + end process integrate; + + quantized <= integrator(integrator'high); + + serialOut <= quantized; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.offsetToUnsigned.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:32 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY offsetToUnsigned IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END offsetToUnsigned ; + + + + + +ARCHITECTURE masterVersion OF offsetToUnsigned IS + +BEGIN + + unsignedOut <= not(signedIn(signedIn'high)) & unsigned(signedIn(signedIn'high-1 downto 0)); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity WaveformGenerator.sawtoothGen.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothGen IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END sawtoothGen ; + + + + + +ARCHITECTURE masterVersion OF sawtoothGen IS + + signal counter: unsigned(sawtooth'range); + +begin + + count: process(reset, clock) + begin + if reset = '1' then + counter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + counter <= counter + step; + end if; + end if; + end process count; + + sawtooth <= counter; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCalculatePolynom.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCalculatePolynom IS + GENERIC( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + restartPolynom : IN std_ulogic; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorCalculatePolynom ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCalculatePolynom IS + + constant additionalBitNb: positive := 1; + constant internalsBitNb: positive := signalBitNb + 3*oversamplingBitNb + 1 + + additionalBitNb; + signal x: signed(internalsBitNb-1 downto 0); + signal u: signed(internalsBitNb-1 downto 0); + signal v: signed(internalsBitNb-1 downto 0); + signal w: signed(internalsBitNb-1 downto 0); + +BEGIN + + iterativePolynom: process(reset, clock) + begin + if reset = '1' then + x <= (others => '0'); + u <= (others => '0'); + v <= (others => '0'); + w <= (others => '0'); + sampleOut <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + if restartPolynom = '1' then + x <= shift_left(resize(2*d, x'length), 3*oversamplingBitNb); + u <= resize(a, u'length) + + shift_left(resize(b, u'length), oversamplingBitNb) + + shift_left(resize(c, u'length), 2*oversamplingBitNb); + v <= resize(6*a, v'length) + + shift_left(resize(2*b, v'length), oversamplingBitNb); + w <= resize(6*a, w'length); + sampleOut <= resize(d, sampleOut'length); + else + x <= x + u; + u <= u + v; + v <= v + w; + sampleOut <= resize( + shift_right(x, 3*oversamplingBitNb+1), sampleOut'length + ); + -- limit overflow + if x(x'high downto x'high-additionalBitNb) = "01" then + sampleOut <= not shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + -- limit underflow + if x(x'high downto x'high-additionalBitNb) = "10" then + sampleOut <= shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + end if; + end if; + end if; + end process iterativePolynom; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SystemOnChip.sinCosTable.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sinCosTable IS + GENERIC( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0); + cosine : OUT signed (outputBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sinCosTable ; + + + + + +ARCHITECTURE masterVersion OF sinCosTable IS + + signal changeSignSine : std_uLogic; + signal changeSignCosine : std_uLogic; + signal flipPhase : std_uLogic; + signal phaseTableAddress1 : unsigned(tableAddressBitNb-1 downto 0); + signal phaseTableAddress2 : unsigned(phaseTableAddress1'range); + signal quarterSine : signed(sine'range); + signal quarterCosine : signed(cosine'range); + +BEGIN + + changeSignSine <= phase(phase'high); + changeSignCosine <= phase(phase'high) xor phase(phase'high-1); + flipPhase <= phase(phase'high-1); + + phaseTableAddress1 <= phase(phase'high-2 downto phase'high-2-tableAddressBitNb+1); + + checkPhase: process(flipPhase, phaseTableAddress1) + begin + if flipPhase = '0' then + phaseTableAddress2 <= phaseTableAddress1; + else + phaseTableAddress2 <= 0 - phaseTableAddress1; + end if; + end process checkPhase; + + + quarterTableSine: process(phaseTableAddress2, flipPhase) + begin + case to_integer(phaseTableAddress2) is + when 0 => if flipPhase = '0' then + quarterSine <= to_signed(16#0000#, quarterSine'length); + else + quarterSine <= to_signed(16#7FFF#, quarterSine'length); + end if; + when 1 => quarterSine <= to_signed(16#18F9#, quarterSine'length); + when 2 => quarterSine <= to_signed(16#30FB#, quarterSine'length); + when 3 => quarterSine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterSine <= to_signed(16#5A82#, quarterSine'length); + when 5 => quarterSine <= to_signed(16#6A6D#, quarterSine'length); + when 6 => quarterSine <= to_signed(16#7641#, quarterSine'length); + when 7 => quarterSine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterSine <= (others => '-'); + end case; + end process quarterTableSine; + + + quarterTableCosine: process(phaseTableAddress2, flipPhase) + begin + case to_integer(phaseTableAddress2) is + when 0 => if flipPhase = '1' then + quarterCosine <= to_signed(16#0000#, quarterSine'length); + else + quarterCosine <= to_signed(16#7FFF#, quarterSine'length); + end if; + when 7 => quarterCosine <= to_signed(16#18F9#, quarterSine'length); + when 6 => quarterCosine <= to_signed(16#30FB#, quarterSine'length); + when 5 => quarterCosine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterCosine <= to_signed(16#5A82#, quarterSine'length); + when 3 => quarterCosine <= to_signed(16#6A6D#, quarterSine'length); + when 2 => quarterCosine <= to_signed(16#7641#, quarterSine'length); + when 1 => quarterCosine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterCosine <= (others => '-'); + end case; + end process quarterTableCosine; + + + checkSignSine: process(changeSignSine, quarterSine) + begin + if changeSignSine = '0' then + sine <= quarterSine; + else + sine <= 0 - quarterSine; + end if; + end process checkSignSine; + + + checkSignCosine: process(changeSignCosine, quarterCosine) + begin + if changeSignCosine = '0' then + cosine <= quarterCosine; + else + cosine <= 0 - quarterCosine; + end if; + end process checkSignCosine; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SystemOnChip.periphSpeedController.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphSpeedController IS + GENERIC( + updatePeriodBitNb : positive := 16 + ); + PORT( + enableOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + enableIn : IN std_ulogic + ); + +-- Declarations + +END periphSpeedController ; + + + + + +ARCHITECTURE masterVersion OF periphSpeedController IS + + signal enableCounter: unsigned(updatePeriod'range); + signal endOfCount: std_uLogic; + +BEGIN + + count: process(reset, clock) + begin + if reset = '1' then + enableCounter <= (others => '0'); + elsif rising_edge(clock) then + if (endOfCount = '0') and (enableIn = '1') then + enableCounter <= enableCounter - 1; + else + enableCounter <= updatePeriod; + end if; + end if; + end process count; + + testEndOfCount: process(enableCounter) + begin + if enableCounter = 0 then + endOfCount <= '1'; + else + endOfCount <= '0'; + end if; + end process testEndOfCount; + + enableOut <= endOfCount and enableIn; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorShiftRegister.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:24 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorShiftRegister IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + shiftSamples : IN std_ulogic; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END interpolatorShiftRegister ; + + + + + +ARCHITECTURE masterVersion OF interpolatorShiftRegister IS + + -- signal sample4_int: signed(sampleIn'range); + -- signal sample3_int: signed(sampleIn'range); + -- signal sample2_int: signed(sampleIn'range); + -- signal sample1_int: signed(sampleIn'range); + + type samplesArray is array(3 downto 0) of signed(sampleIn'range); + signal samples: samplesArray; + +begin + + shiftThem: process(reset, clock) + begin + if reset = '1' then + samples <= (others=>(others=>'0')); + -- sample1_int <= (others => '0'); + -- sample2_int <= (others => '0'); + -- sample3_int <= (others => '0'); + -- sample4_int <= (others => '0'); + elsif rising_edge(clock) then + if shiftSamples = '1' then + -- sample1_int <= sample2_int; + -- sample2_int <= sample3_int; + -- sample3_int <= sample4_int; + -- sample4_int <= sampleIn; + samples(0) <= samples(1); + samples(1) <= samples(2); + samples(2) <= samples(3); + samples(3) <= sampleIn; + end if; + end if; + end process shiftThem; + + sample4 <= samples(3); + sample3 <= samples(2); + sample2 <= samples(1); + sample1 <= samples(0); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.interpolatorTrigger.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:28 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorTrigger IS + GENERIC( + counterBitNb : positive := 4 + ); + PORT( + triggerOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorTrigger ; + + + + + +ARCHITECTURE masterVersion OF interpolatorTrigger IS + + signal triggerCounter: unsigned(counterBitNb-1 downto 0); + +BEGIN + + count: process(reset, clock) + begin + if reset = '1' then + triggerCounter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + triggerCounter <= triggerCounter + 1; + end if; + end if; + end process count; + + trig: process(triggerCounter, en) + begin + if triggerCounter = 0 then + triggerOut <= en; + else + triggerOut <= '0'; + end if; + end process trig; + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture SystemOnChip.ahbBeamerOperator.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:01:08 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; + +LIBRARY DigitalToAnalogConverter; +LIBRARY SplineInterpolator; +LIBRARY SystemOnChip; +LIBRARY WaveformGenerator; + +ARCHITECTURE struct OF ahbBeamerOperator IS + + -- Architecture declarations + constant coeffBitNb : positive := signalBitNb+3+1; + constant sampleCountBitNb : positive := 8; + constant patternAddressBitNb : positive := 8; + -- sinewave generator + constant tableAddressBitNb : positive := 3; + constant phaseBitNb : positive := sampleCountBitNb + tableAddressBitNb + 2; + + -- Internal signal declarations + SIGNAL aX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL aY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL bX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL bY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL cX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL cY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL cosine : signed(signalBitNb-1 DOWNTO 0); + SIGNAL dX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL dY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL interpolateLinear : std_ulogic; + SIGNAL interpolationEn : std_ulogic; + SIGNAL interpolationEnable : std_ulogic; + SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL sampleX : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX1 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX2 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX3 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX4 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY1 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY2 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY3 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY4 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL samplesX : signed(signalBitNb-1 DOWNTO 0); + SIGNAL samplesY : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sine : signed(signalBitNb-1 DOWNTO 0); + SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL unsignedX : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL unsignedY : unsigned(signalBitNb-1 DOWNTO 0); + + -- Implicit buffer signal declarations + SIGNAL newPolynom_internal : std_ulogic; + + + -- Component Declarations + COMPONENT DAC + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + serialOut : OUT std_ulogic ; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorCalculatePolynom + GENERIC ( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + restartPolynom : IN std_ulogic ; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorCoefficients + GENERIC ( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT ( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorShiftRegister + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + shiftSamples : IN std_ulogic ; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT interpolatorTrigger + GENERIC ( + counterBitNb : positive := 4 + ); + PORT ( + triggerOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT offsetToUnsigned + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT periphSpeedController + GENERIC ( + updatePeriodBitNb : positive := 16 + ); + PORT ( + enableOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + enableIn : IN std_ulogic + ); + END COMPONENT; + COMPONENT sinCosTable + GENERIC ( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT ( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0); + cosine : OUT signed (outputBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sawtoothGen + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic ; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : DAC USE ENTITY DigitalToAnalogConverter.DAC; + FOR ALL : interpolatorCalculatePolynom USE ENTITY SplineInterpolator.interpolatorCalculatePolynom; + FOR ALL : interpolatorCoefficients USE ENTITY SplineInterpolator.interpolatorCoefficients; + FOR ALL : interpolatorShiftRegister USE ENTITY SplineInterpolator.interpolatorShiftRegister; + FOR ALL : interpolatorTrigger USE ENTITY SplineInterpolator.interpolatorTrigger; + FOR ALL : offsetToUnsigned USE ENTITY SplineInterpolator.offsetToUnsigned; + FOR ALL : periphSpeedController USE ENTITY SystemOnChip.periphSpeedController; + FOR ALL : sawtoothGen USE ENTITY WaveformGenerator.sawtoothGen; + FOR ALL : sinCosTable USE ENTITY SystemOnChip.sinCosTable; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + samplesY <= sine when selSinCos = '1' + else signed(memY); + + -- HDL Embedded Text Block 2 eb2 + samplesX <= cosine when selSinCos = '1' + else signed(memX); + + -- HDL Embedded Text Block 4 eb4 + step <= to_unsigned(1, step'length); + + -- HDL Embedded Text Block 5 eb5 + interpolationEnable <= '1' when selSinCos = '1' + else interpolationEn; + interpolateLinear <= '0' when selSinCos = '1' + else interpolateLin; + --interpolateLinear <= interpolateLin; + + + -- Instance port mappings. + I_dacx : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => outX, + parallelIn => unsignedX, + clock => clock, + reset => reset + ); + I_dacy : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => outY, + parallelIn => unsignedY, + clock => clock, + reset => reset + ); + I_polyx : interpolatorCalculatePolynom + GENERIC MAP ( + signalBitNb => signalBitNb, + coeffBitNb => coeffBitNb, + oversamplingBitNb => sampleCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + restartPolynom => newPolynom_internal, + d => dX, + sampleOut => sampleX, + c => cX, + b => bX, + a => aX, + en => interpolationEnable + ); + I_polyy : interpolatorCalculatePolynom + GENERIC MAP ( + signalBitNb => signalBitNb, + coeffBitNb => coeffBitNb, + oversamplingBitNb => sampleCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + restartPolynom => newPolynom_internal, + d => dY, + sampleOut => sampleY, + c => cY, + b => bY, + a => aY, + en => interpolationEnable + ); + I_coeffx : interpolatorCoefficients + GENERIC MAP ( + bitNb => signalBitNb, + coeffBitNb => coeffBitNb + ) + PORT MAP ( + sample1 => sampleX1, + sample2 => sampleX2, + sample3 => sampleX3, + sample4 => sampleX4, + a => aX, + b => bX, + c => cX, + d => dX, + interpolateLinear => interpolateLinear + ); + I_coeffy : interpolatorCoefficients + GENERIC MAP ( + bitNb => signalBitNb, + coeffBitNb => coeffBitNb + ) + PORT MAP ( + sample1 => sampleY1, + sample2 => sampleY2, + sample3 => sampleY3, + sample4 => sampleY4, + a => aY, + b => bY, + c => cY, + d => dY, + interpolateLinear => interpolateLinear + ); + I_srx : interpolatorShiftRegister + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + shiftSamples => newPolynom_internal, + sampleIn => samplesX, + sample1 => sampleX1, + sample2 => sampleX2, + sample3 => sampleX3, + sample4 => sampleX4 + ); + I_sry : interpolatorShiftRegister + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + shiftSamples => newPolynom_internal, + sampleIn => samplesY, + sample1 => sampleY1, + sample2 => sampleY2, + sample3 => sampleY3, + sample4 => sampleY4 + ); + I_trig : interpolatorTrigger + GENERIC MAP ( + counterBitNb => sampleCountBitNb + ) + PORT MAP ( + triggerOut => newPolynom_internal, + clock => clock, + reset => reset, + en => interpolationEnable + ); + I_offsx : offsetToUnsigned + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + unsignedOut => unsignedX, + signedIn => sampleX + ); + I_offsy : offsetToUnsigned + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + unsignedOut => unsignedY, + signedIn => sampleY + ); + I_speed : periphSpeedController + GENERIC MAP ( + updatePeriodBitNb => updatePeriodBitNb + ) + PORT MAP ( + enableOut => interpolationEn, + clock => clock, + reset => reset, + updatePeriod => updatePeriod, + enableIn => run + ); + I_sin : sinCosTable + GENERIC MAP ( + inputBitNb => phaseBitNb, + outputBitNb => signalBitNb, + tableAddressBitNb => tableAddressBitNb + ) + PORT MAP ( + sine => sine, + phase => phase, + cosine => cosine + ); + I_phase : sawtoothGen + GENERIC MAP ( + bitNb => phaseBitNb + ) + PORT MAP ( + sawtooth => phase, + clock => clock, + reset => reset, + step => step, + en => interpolationEnable + ); + + -- Implicit buffered output assignments + newPolynom <= newPolynom_internal; + +END struct; + + + + +-- VHDL Entity SystemOnChip.ahbBeamerRegisters.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:21 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbBeamerRegisters IS + GENERIC( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16; + patternAddressBitNb : positive := 8; + testOutBitNb : positive := 16 + ); + PORT( + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + memX : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + run : OUT std_ulogic; + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + interpolateLin : OUT std_ulogic; + newPolynom : IN std_ulogic; + hClk : IN std_ulogic; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + hReset_n : IN std_ulogic; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic; + hSel : IN std_ulogic; + hReady : OUT std_ulogic; + hResp : OUT std_ulogic + ); + +-- Declarations + +END ahbBeamerRegisters ; + + + + + +-- VHDL Entity SystemOnChip.blockRAMAddressCounter.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY blockRAMAddressCounter IS + GENERIC( + addressBitNb : positive := 8 + ); + PORT( + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + updateMem : IN std_ulogic; + addr : OUT unsigned (addressBitNb-1 DOWNTO 0); + patternSize : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END blockRAMAddressCounter ; + + + + + +ARCHITECTURE masterVersion OF blockRAMAddressCounter IS + + signal updateMemDelayed : std_ulogic; + signal updateMemChanging : std_ulogic; + signal addressInt : unsigned(addr'range); + +BEGIN + + delay: process(reset, clock) + begin + if reset = '1' then + updateMemDelayed <= '0'; + elsif rising_edge(clock) then + updateMemDelayed <= updateMem; + end if; + end process delay; + + updateMemChanging <= '1' when (updateMem /= updateMemDelayed) + else '0'; + + count: process(reset, clock) + begin + if reset = '1' then + addressInt <= (others => '0'); + elsif rising_edge(clock) then + if updateMemChanging = '1' then + addressInt <= (others => '0'); + elsif en = '1' then + if updateMem = '1' then + addressInt <= addressInt + 1; + else + if addressInt < patternSize - 1 then + addressInt <= addressInt + 1; + else + addressInt <= (others => '0'); + end if; + end if; + end if; + end if; + end process count; + + addr <= addressInt; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SystemOnChip.periphControlReg.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphControlReg IS + GENERIC( + dataBitNb : positive := 16; + patternSizeBitNb : positive := 8 + ); + PORT( + run : OUT std_ulogic; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + updatePattern : OUT std_ulogic; + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + write : IN std_ulogic; + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + interpolateLinear : OUT std_ulogic; + patternSize : OUT unsigned (patternSizeBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END periphControlReg ; + + + + + +ARCHITECTURE masterVersion OF periphControlReg IS + + constant runId : natural := 0; + constant updatePatternId : natural := 1; + constant interpolateLinearId : natural := 2; + constant patternSizeHighId : natural := 15; + + signal runInt : std_ulogic; + signal updatePatternInt : std_ulogic; + signal interpolateLinearInt : std_ulogic; + signal patternSizeInt : std_ulogic_vector(patternSize'range); + + signal dataOutReg : std_ulogic_vector(dataOut'range); + +BEGIN + + store: process(reset, clock) + begin + if reset = '1' then + runInt <= '0'; + updatePatternInt <= '0'; + interpolateLinearInt <= '0'; + patternSizeInt <= (others => '0'); + elsif rising_edge(clock) then + if (en = '1') and (write = '1') then + runInt <= dataIn(runId); + updatePatternInt <= dataIn(updatePatternId); + interpolateLinearInt <= dataIn(interpolateLinearId); + patternSizeInt <= + dataIn(patternSizeHighId downto patternSizeHighId-patternSize'length+1); + end if; + end if; + end process store; + + run <= runInt; + updatePattern <= updatePatternInt; + interpolateLinear <= interpolateLinearInt; + patternSize <= unsigned(patternSizeInt); + + process(runInt, updatePatternInt, interpolateLinearInt, patternSizeInt) + begin + dataOutReg <= (others => '-'); + dataOutReg(runId) <= runInt; + dataOutReg(updatePatternId) <= updatePatternInt; + dataOutReg(interpolateLinearId) <= interpolateLinearInt; + dataOutReg(patternSizeHighId downto patternSizeHighId-patternSize'length+1) + <= patternSizeInt; + end process; + + dataOut <= std_logic_vector(dataOutReg) when en = '1' + else (others => 'Z'); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SystemOnChip.blockRAMControl.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY blockRAMControl IS + PORT( + memWr : OUT std_ulogic; + sel : IN std_ulogic; + memEn : OUT std_ulogic; + update : IN std_ulogic; + wr : IN std_ulogic; + cntIncr : OUT std_ulogic; + newSample : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END blockRAMControl ; + + + + + +ARCHITECTURE masterVersion OF blockRAMControl IS + + signal writeDelayed: std_ulogic; + signal writePulse: std_ulogic; + signal memWr1: std_ulogic; + +BEGIN + + delayWrPulse: process(reset, clock) + begin + if reset = '1' then + writeDelayed <= '0'; + elsif rising_edge(clock) then + writeDelayed <= wr; + end if; + end process delayWrPulse; + + writePulse <= '1' when (wr='1') and (writeDelayed='0') + else '0'; + + cntIncr <= '1' when ( (update = '0') and (newSample = '1') ) + or ( (update = '1') and (writePulse = '1') and (sel = '1') ) + else '0'; + + memWr1 <= '1' when (update = '1') and (writePulse = '1') and (sel = '1') + else '0'; + +-- delayMemWrPulse: process(reset, clock) +-- begin +-- if reset = '1' then +-- memWr <= '0'; +-- elsif rising_edge(clock) then +-- memWr <= memWr1; +-- end if; +-- end process delayMemWrPulse; + memWr <= memWr1; + + memEn <= '1' when (sel = '1') or (update = '0') + else '0'; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SystemOnChip.periphAddressDecoder.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphAddressDecoder IS + GENERIC( + addressBitNb : positive := 24 + ); + PORT( + selControl : OUT std_ulogic; + addr : IN unsigned (addressBitNb-1 DOWNTO 0); + selSpeed : OUT std_ulogic; + selX : OUT std_ulogic; + selY : OUT std_ulogic; + selZ : OUT std_ulogic + ); + +-- Declarations + +END periphAddressDecoder ; + + + + + +ARCHITECTURE masterVersion OF periphAddressDecoder IS +BEGIN + + decode: process(addr) + begin + selControl <= '0'; + selSpeed <= '0'; + selX <= '0'; + selY <= '0'; + selZ <= '0'; + case to_integer(addr(3 downto 0)) is + when 16#00# => selControl <= '1'; + when 16#01# => selSpeed <= '1'; + when 16#02# => selX <= '1'; + when 16#03# => selY <= '1'; + when 16#04# => selZ <= '1'; + when others => null; + end case; + end process decode; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SystemOnChip.blockRAM.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY blockRAM IS + GENERIC( + addressBitNb : positive := 8; + dataBitNb : positive := 16; + initFileSpec : string := "ramInit.txt" + ); + PORT( + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + write : IN std_ulogic; + addr : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END blockRAM ; + + + + + +USE std.textio.all; + +ARCHITECTURE Spartan3E OF blockRAM IS + + subtype registerType is std_ulogic_vector(dataBitNb-1 downto 0); + type memoryType is array (0 to 2**addressBitNb-1) of registerType; + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFileSpec : in string) return memoryType is + FILE ramContentFile : text open read_mode is ramContentFileSpec; + variable ramContentFileLine : line; + variable ramContent : memoryType; + variable ramCurrentWord : bit_vector(registerType'range); + variable index : natural := 0; --241; + begin + for index in ramContent'range loop +-- while not endfile(ramContentFile) loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramCurrentWord); + ramContent(index) := std_ulogic_vector(to_stdlogicvector(ramCurrentWord)); +-- index := index + 1; + end loop; + return ramContent; + end function; + + shared variable memoryArray: memoryType := ReadRamContentFromFile(initFileSpec); + +BEGIN + + portA: process(clock) + begin + if rising_edge(clock) then + if (en = '1') then + if (write = '1') then + memoryArray(to_integer(addr)) := dataIn; + dataOut <= dataIn; + else + dataOut <= memoryArray(to_integer(addr)); + end if; + end if; + end if; + end process portA; + +END ARCHITECTURE Spartan3E; + + + + +-- VHDL Entity SystemOnChip.periphSpeedReg.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphSpeedReg IS + GENERIC( + dataBitNb : positive := 16; + updatePeriodBitNb : positive := 16 + ); + PORT( + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + write : IN std_ulogic + ); + +-- Declarations + +END periphSpeedReg ; + + + + + +ARCHITECTURE masterVersion OF periphSpeedReg IS + + signal updatePeriodInt: unsigned(updatePeriod'range); + +BEGIN + + store: process(reset, clock) + begin + if reset = '1' then + updatePeriodInt <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + if write = '1' then + updatePeriodInt <= unsigned(dataIn(updatePeriodInt'range)); + end if; + end if; + end if; + end process store; + + updatePeriod <= updatePeriodInt; + + writeBack: process(en, updatePeriodInt) + begin + if en = '1' then + dataOut <= (others => '-'); + dataOut(updatePeriodInt'range) <= std_logic_vector(updatePeriodInt); + else + dataOut <= (others => 'Z'); + end if; + end process writeBack; + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture SystemOnChip.ahbBeamerRegisters.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:01:22 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; + +LIBRARY SystemOnChip; + +ARCHITECTURE struct OF ahbBeamerRegisters IS + + -- Architecture declarations + constant addressBitNb: positive := hAddr'length; + constant dataBitNb : positive := hWData'length; + + -- Internal signal declarations + SIGNAL clock : std_ulogic; + SIGNAL reset : std_ulogic; + SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0); + SIGNAL addrX : unsigned(patternAddressBitNb-1 DOWNTO 0); + SIGNAL addrY : unsigned(patternAddressBitNb-1 DOWNTO 0); + SIGNAL cntIncrX : std_ulogic; + SIGNAL cntIncrY : std_ulogic; + SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0); + SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0); + SIGNAL memEnX : std_ulogic; + SIGNAL memEnY : std_ulogic; + SIGNAL memWrX : std_ulogic; + SIGNAL memWrY : std_ulogic; + SIGNAL patternSize : unsigned(patternAddressBitNb-1 DOWNTO 0); + SIGNAL selControl : std_ulogic; + SIGNAL selSpeed : std_ulogic; + SIGNAL selX : std_ulogic; + SIGNAL selY : std_ulogic; + SIGNAL updatePattern : std_ulogic; + SIGNAL write : std_ulogic; + SIGNAL memDataIn : std_ulogic_vector(signalBitNb-1 DOWNTO 0); + SIGNAL run_int : std_ulogic; + SIGNAL interpolateLin_int : std_ulogic; + + + -- Component Declarations + COMPONENT blockRAM + GENERIC ( + addressBitNb : positive := 8; + dataBitNb : positive := 16; + initFileSpec : string := "ramInit.txt" + ); + PORT ( + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + write : IN std_ulogic ; + addr : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT blockRAMAddressCounter + GENERIC ( + addressBitNb : positive := 8 + ); + PORT ( + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + updateMem : IN std_ulogic ; + addr : OUT unsigned (addressBitNb-1 DOWNTO 0); + patternSize : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT blockRAMControl + PORT ( + memWr : OUT std_ulogic ; + sel : IN std_ulogic ; + memEn : OUT std_ulogic ; + update : IN std_ulogic ; + wr : IN std_ulogic ; + cntIncr : OUT std_ulogic ; + newSample : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT periphAddressDecoder + GENERIC ( + addressBitNb : positive := 24 + ); + PORT ( + selControl : OUT std_ulogic ; + addr : IN unsigned (addressBitNb-1 DOWNTO 0); + selSpeed : OUT std_ulogic ; + selX : OUT std_ulogic ; + selY : OUT std_ulogic ; + selZ : OUT std_ulogic + ); + END COMPONENT; + COMPONENT periphControlReg + GENERIC ( + dataBitNb : positive := 16; + patternSizeBitNb : positive := 8 + ); + PORT ( + run : OUT std_ulogic ; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + updatePattern : OUT std_ulogic ; + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + write : IN std_ulogic ; + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + interpolateLinear : OUT std_ulogic ; + patternSize : OUT unsigned (patternSizeBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT periphSpeedReg + GENERIC ( + dataBitNb : positive := 16; + updatePeriodBitNb : positive := 16 + ); + PORT ( + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + write : IN std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : blockRAM USE ENTITY SystemOnChip.blockRAM; + FOR ALL : blockRAMAddressCounter USE ENTITY SystemOnChip.blockRAMAddressCounter; + FOR ALL : blockRAMControl USE ENTITY SystemOnChip.blockRAMControl; + FOR ALL : periphAddressDecoder USE ENTITY SystemOnChip.periphAddressDecoder; + FOR ALL : periphControlReg USE ENTITY SystemOnChip.periphControlReg; + FOR ALL : periphSpeedReg USE ENTITY SystemOnChip.periphSpeedReg; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 3 eb3 + testout( 1) <= run_int; run <= run_int; + testout( 2) <= updatePattern; + testout( 3) <= interpolateLin_int; interpolateLin <= interpolateLin_int; + testout( 4) <= newPolynom; + testout( 5) <= newPolynom; + testout( 6) <= '0'; + testout( 7) <= '0'; + testout( 8) <= selControl; + testout( 9) <= selSpeed; + testout(10) <= selX; + testout(11) <= selY; + testout(12) <= '0'; + testout(13) <= addr(0); + testout(14) <= addr(1); + testout(15) <= dataIn(0); + testout(16) <= dataIn(1); + + -- HDL Embedded Text Block 8 eb8 + storeControls: process(reset, clock) + begin + if reset = '1' then + addr <= (others => '0'); + write <= '0'; + elsif rising_edge(clock) then + write <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addr <= hAddr(addr'range); + write <= hWrite; + end if; + end if; + end process storeControls; + + dataIn <= hWData; + + -- HDL Embedded Text Block 9 eb9 + memDataIn <= dataIn(memDataIn'range); + + -- HDL Embedded Text Block 10 eb10 + hRData <= std_ulogic_vector(dataOut); + + hReady <= '1'; -- no wait state + hResp <= '0'; -- data OK + + -- HDL Embedded Text Block 11 eb11 + clock<= hClk; + + reset <= not hReset_n; + + + -- Instance port mappings. + I_ramx : blockRAM + GENERIC MAP ( + addressBitNb => patternAddressBitNb, + dataBitNb => signalBitNb, + initFileSpec => "$SIMULATION_DIR/ramYInit.txt" + ) + PORT MAP ( + dataIn => memDataIn, + dataOut => memX, + en => memEnX, + clock => clock, + reset => reset, + write => memWrX, + addr => addrX + ); + I_ramy : blockRAM + GENERIC MAP ( + addressBitNb => patternAddressBitNb, + dataBitNb => signalBitNb, + initFileSpec => "$SIMULATION_DIR/ramXInit.txt" + ) + PORT MAP ( + dataIn => memDataIn, + dataOut => memY, + en => memEnY, + clock => clock, + reset => reset, + write => memWrY, + addr => addrY + ); + I_addrx : blockRAMAddressCounter + GENERIC MAP ( + addressBitNb => patternAddressBitNb + ) + PORT MAP ( + en => cntIncrX, + clock => clock, + reset => reset, + updateMem => updatePattern, + addr => addrX, + patternSize => patternSize + ); + I_addry : blockRAMAddressCounter + GENERIC MAP ( + addressBitNb => patternAddressBitNb + ) + PORT MAP ( + en => cntIncrY, + clock => clock, + reset => reset, + updateMem => updatePattern, + addr => addrY, + patternSize => patternSize + ); + I_ctlx : blockRAMControl + PORT MAP ( + memWr => memWrX, + sel => selX, + memEn => memEnX, + update => updatePattern, + wr => write, + cntIncr => cntIncrX, + newSample => newPolynom, + clock => clock, + reset => reset + ); + I_ctly : blockRAMControl + PORT MAP ( + memWr => memWrY, + sel => selY, + memEn => memEnY, + update => updatePattern, + wr => write, + cntIncr => cntIncrY, + newSample => newPolynom, + clock => clock, + reset => reset + ); + I_decoder : periphAddressDecoder + GENERIC MAP ( + addressBitNb => addressBitNb + ) + PORT MAP ( + selControl => selControl, + addr => addr, + selSpeed => selSpeed, + selX => selX, + selY => selY, + selZ => OPEN + ); + I_ctl : periphControlReg + GENERIC MAP ( + dataBitNb => dataBitNb, + patternSizeBitNb => patternAddressBitNb + ) + PORT MAP ( + run => run_int, + dataIn => dataIn, + updatePattern => updatePattern, + dataOut => dataOut, + write => write, + en => selControl, + clock => clock, + reset => reset, + interpolateLinear => interpolateLin_int, + patternSize => patternSize + ); + I_speed : periphSpeedReg + GENERIC MAP ( + dataBitNb => dataBitNb, + updatePeriodBitNb => updatePeriodBitNb + ) + PORT MAP ( + updatePeriod => updatePeriod, + dataIn => dataIn, + dataOut => dataOut, + en => selSpeed, + clock => clock, + reset => reset, + write => write + ); + +END struct; + + + + +-- +-- VHDL Architecture SystemOnChip.ahbBeamer.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:00:20 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +LIBRARY SystemOnChip; + +ARCHITECTURE struct OF ahbBeamer IS + + -- Architecture declarations + constant signalBitNb: positive := 16; + constant updatePeriodBitNb : positive := 16; + + -- Internal signal declarations + SIGNAL reset : std_ulogic; + SIGNAL run : std_ulogic; + SIGNAL interpolateLin : std_ulogic; + SIGNAL updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0); + SIGNAL memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0); + SIGNAL memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0); + SIGNAL newPolynom : std_ulogic; + + + -- Component Declarations + COMPONENT ahbBeamerOperator + GENERIC ( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16 + ); + PORT ( + outX : OUT std_ulogic ; + run : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + outY : OUT std_ulogic ; + selSinCos : IN std_ulogic ; + interpolateLin : IN std_ulogic ; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + memX : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + newPolynom : OUT std_ulogic + ); + END COMPONENT; + COMPONENT ahbBeamerRegisters + GENERIC ( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16; + patternAddressBitNb : positive := 8; + testOutBitNb : positive := 16 + ); + PORT ( + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + memX : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + run : OUT std_ulogic ; + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + interpolateLin : OUT std_ulogic ; + newPolynom : IN std_ulogic ; + hClk : IN std_ulogic ; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + hReset_n : IN std_ulogic ; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic ; + hSel : IN std_ulogic ; + hReady : OUT std_ulogic ; + hResp : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : ahbBeamerOperator USE ENTITY SystemOnChip.ahbBeamerOperator; + FOR ALL : ahbBeamerRegisters USE ENTITY SystemOnChip.ahbBeamerRegisters; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 2 eb2 + --process + --begin + -- newPolynom <= '0'; + -- for index in 1 to 2**4-1 loop + -- wait until rising_edge(clock); + -- end loop; + -- newPolynom <= '1'; + -- wait until rising_edge(clock); + --end process; + + -- HDL Embedded Text Block 3 eb3 + reset <= not hReset_n; + + + -- Instance port mappings. + I_op : ahbBeamerOperator + GENERIC MAP ( + updatePeriodBitNb => updatePeriodBitNb, + signalBitNb => signalBitNb + ) + PORT MAP ( + outX => outX, + run => run, + clock => hClk, + reset => reset, + outY => outY, + selSinCos => selSinCos, + interpolateLin => interpolateLin, + updatePeriod => updatePeriod, + memX => memX, + memY => memY, + newPolynom => newPolynom + ); + I_regs : ahbBeamerRegisters + GENERIC MAP ( + updatePeriodBitNb => updatePeriodBitNb, + signalBitNb => signalBitNb, + patternAddressBitNb => patternAddressBitNb, + testOutBitNb => testOutBitNb + ) + PORT MAP ( + testOut => testOut, + memX => memX, + memY => memY, + run => run, + updatePeriod => updatePeriod, + interpolateLin => interpolateLin, + newPolynom => newPolynom, + hClk => hClk, + hRData => hRData, + hAddr => hAddr, + hReset_n => hReset_n, + hWData => hWData, + hTrans => hTrans, + hWrite => hWrite, + hSel => hSel, + hReady => hReady, + hResp => hResp + ); + +END struct; + + + + +-- VHDL Entity AhbLite.ahbMuxConnector.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbMuxConnector IS + GENERIC( + index : positive := 1 + ); + PORT( + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic; + hResp : IN std_uLogic; + hSelV : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRDataV : OUT ahbDataVector; + hReadyV : OUT std_logic_vector (1 TO ahbSlaveNb); + hRespV : OUT std_logic_vector (1 TO ahbSlaveNb); + hSel : OUT std_uLogic + ); + +-- Declarations + +END ahbMuxConnector ; + + + + + +ARCHITECTURE RTL OF ahbMuxConnector IS +BEGIN + + hSel <= hSelV(index); + + hRDataV(index) <= std_logic_vector(hRData); + hReadyV(index) <= hReady; + hRespV(index) <= hResp; + + hRDataV <= (others => (others => 'Z')); + hReadyV <= (others => 'Z'); + hRespV <= (others => 'Z'); + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity AhbLite.ahbDecoder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbDecoder IS + GENERIC( + ahbMemoryLocation : ahbMemoryLocationVector + ); + PORT( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hSel : OUT std_ulogic_vector (1 TO ahbSlaveNb) + ); + +-- Declarations + +END ahbDecoder ; + + + + + +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ARCHITECTURE RTL OF ahbDecoder IS +BEGIN + + decodeAddress: process(hAddr) + variable mask: unsigned(hAddr'range); + begin + hSel <= (others => '0'); + for index in hSel'range loop + mask := to_unsigned(ahbMemoryLocation(index).addressMask, mask'length); + if (hAddr and mask) = ahbMemoryLocation(index).baseAddress then + hSel(index) <= '1'; + end if; + end loop; + end process decodeAddress; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity AhbLiteComponents.ahbGpio.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:43:49 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbGpio IS + GENERIC( + ioNb : positive := 8 + ); + PORT( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic; + hReset_n : IN std_uLogic; + hSel : IN std_uLogic; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic; + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic; + hResp : OUT std_uLogic; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) + ); + +-- Declarations + +END ahbGpio ; + + + + + +--============================================================================== +-- +-- AHB general purpose input/outputs +-- +-- Provides "ioNb" input/output signals . +-- +-------------------------------------------------------------------------------- +-- +-- Write registers +-- +-- 00, data register receives the values to drive the output lines. +-- 01, output enable register defines the signal direction: +-- when '1', the direction is "out". +-- +-------------------------------------------------------------------------------- +-- +-- Read registers +-- 00, data register provides the values detected on the lines. +-- + +ARCHITECTURE masterVersion OF ahbGpio IS + + signal reset, clock: std_ulogic; + -- register definitions + constant dataRegisterId: natural := 0; + constant outputEnableRegisterId: natural := 1; + + signal addressReg: unsigned(addressBitNb(outputEnableRegisterId)-1 downto 0); + signal writeReg: std_ulogic; + -- written registers + subtype registerType is unsigned(ioNb-1 downto 0); + signal dataOutRegister, outputEnableRegister: registerType; + -- read registers + signal dataInRegister : registerType; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= not hReset_n; + clock <= hClk; + + --============================================================================ + -- address and controls + storeControls: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + writeReg <= '0'; + elsif rising_edge(clock) then + writeReg <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addressReg <= hAddr(addressReg'range); + writeReg <= hWrite; + end if; + end if; + end process storeControls; + + --============================================================================ + -- registers + storeWriteRegisters: process(reset, clock) + begin + if reset = '1' then + dataOutRegister <= (others => '0'); + outputEnableRegister <= (others => '0'); + elsif rising_edge(clock) then + if writeReg = '1' then + case to_integer(addressReg) is + when dataRegisterId => dataOutRegister <= unsigned(hWData(dataOutRegister'range)); + when outputEnableRegisterId => outputEnableRegister <= unsigned(hWData(outputEnableRegister'range)); + when others => null; + end case; + end if; + end if; + end process storeWriteRegisters; + + ioOut <= std_ulogic_vector(dataOutRegister); + ioEn <= std_ulogic_vector(outputEnableRegister); + + --============================================================================ + -- data readback + dataInRegister <= unsigned(ioIn); + + hRData <= std_ulogic_vector(resize(dataInRegister, hRData'length)); + hReady <= '1'; -- no wait state + hResp <= '0'; -- data OK + + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity AhbLite.ahbMasterInterface.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbMasterInterface IS + PORT( + clock : IN std_ulogic; + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic; + hResp : IN std_uLogic; + pAddress : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + pDataOut : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + pReadStrobe : IN std_uLogic; + pWriteStrobe : IN std_uLogic; + reset : IN std_ulogic; + hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hBurst : OUT std_ulogic_vector (ahbBurstBitNb-1 DOWNTO 0); + hClk : OUT std_uLogic; + hMastLock : OUT std_uLogic; + hProt : OUT std_ulogic_vector (ahbProtBitNb-1 DOWNTO 0); + hReset_n : OUT std_uLogic; + hSize : OUT std_ulogic_vector (ahbSizeBitNb-1 DOWNTO 0); + hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : OUT std_uLogic; + pDataIn : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END ahbMasterInterface ; + + + + + +ARCHITECTURE RTL OF ahbMasterInterface IS + + signal addressReg: unsigned(pAddress'range); + signal newAddress: std_ulogic; + signal writeReg: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + hReset_n <= not reset; + hClk <= clock; + + ------------------------------------------------------------------------------ + -- address and controls + newAddress <= pReadStrobe or pWriteStrobe; + + storeAddress: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + elsif rising_edge(clock) then + if newAddress = '1' then + addressReg <= pAddress; + end if; + end if; + end process storeAddress; + + hAddr <= pAddress when newAddress = '1' + else addressReg; + + storeWrite: process(reset, clock) + begin + if reset = '1' then + writeReg <= '0'; + elsif rising_edge(clock) then + if newAddress = '1' then + writeReg <= pWriteStrobe; + end if; + end if; + end process storeWrite; + + hWrite <= pWriteStrobe when newAddress = '1' + else writeReg; + + hTrans <= transNonSeq when newAddress = '1' + else transIdle; + + hSize <= size16; + hBurst <= burstSingle; + hProt <= protDefault; + hMastLock <= '0'; + + ------------------------------------------------------------------------------ + -- data out + delayData: process(reset, clock) + begin + if reset = '1' then + hWData <= (others => '0'); + elsif rising_edge(clock) then + if pWriteStrobe = '1' then + hWData <= pDataOut; + end if; + end if; + end process delayData; + + ------------------------------------------------------------------------------ + -- data in + pDataIn <= hRData; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity AhbLite.ahbMultiplexor.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbMultiplexor IS + PORT( + hRDataV : IN ahbDataVector; + hReadyV : IN std_logic_vector (1 TO ahbSlaveNb); + hRespV : IN std_logic_vector (1 TO ahbSlaveNb); + hSel : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic; + hResp : OUT std_uLogic + ); + +-- Declarations + +END ahbMultiplexor ; + + + + + +ARCHITECTURE RTL OF ahbMultiplexor IS +BEGIN + + multiplexData: process(hSel, hRDataV, hReadyV, hRespV) + begin + hRData <= (others => '0'); + hReady <= '1'; + hResp <= '0'; + for index in hSel'range loop + if hSel(index) = '1' then + hRData <= std_ulogic_vector(hRDataV(index)); + hReady <= hReadyV(index); + hResp <= hRespV(index); + end if; + end loop; + end process multiplexData; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity SystemOnChip.programRom.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY programRom IS + GENERIC( + addressBitNb : positive := 8; + dataBitNb : positive := 8 + ); + PORT( + address : IN unsigned (addressBitNb-1 DOWNTO 0); + clock : IN std_ulogic; + en : IN std_ulogic; + reset : IN std_ulogic; + dataOut : OUT std_ulogic_vector ( dataBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END programRom ; + + + + + +ARCHITECTURE mapped OF programRom IS + + subtype opCodeType is std_ulogic_vector(5 downto 0); + constant opLoadC : opCodeType := "000000"; + constant opLoadR : opCodeType := "000001"; + constant opInputC : opCodeType := "000100"; + constant opInputR : opCodeType := "000101"; + constant opFetchC : opCodeType := "000110"; + constant opFetchR : opCodeType := "000111"; + constant opAndC : opCodeType := "001010"; + constant opAndR : opCodeType := "001011"; + constant opOrC : opCodeType := "001100"; + constant opOrR : opCodeType := "001101"; + constant opXorC : opCodeType := "001110"; + constant opXorR : opCodeType := "001111"; + constant opTestC : opCodeType := "010010"; + constant opTestR : opCodeType := "010011"; + constant opCompC : opCodeType := "010100"; + constant opCompR : opCodeType := "010101"; + constant opAddC : opCodeType := "011000"; + constant opAddR : opCodeType := "011001"; + constant opAddCyC : opCodeType := "011010"; + constant opAddCyR : opCodeType := "011011"; + constant opSubC : opCodeType := "011100"; + constant opSubR : opCodeType := "011101"; + constant opSubCyC : opCodeType := "011110"; + constant opSubCyR : opCodeType := "011111"; + constant opShRot : opCodeType := "100000"; + constant opOutputC : opCodeType := "101100"; + constant opOutputR : opCodeType := "101101"; + constant opStoreC : opCodeType := "101110"; + constant opStoreR : opCodeType := "101111"; + + subtype shRotCinType is std_ulogic_vector(2 downto 0); + constant shRotLdC : shRotCinType := "00-"; + constant shRotLdM : shRotCinType := "01-"; + constant shRotLdL : shRotCinType := "10-"; + constant shRotLd0 : shRotCinType := "110"; + constant shRotLd1 : shRotCinType := "111"; + + constant registerAddressBitNb : positive := 4; + constant shRotPadLength : positive + := dataOut'length - opCodeType'length - registerAddressBitNb + - 1 - shRotCinType'length; + subtype shRotDirType is std_ulogic_vector(1+shRotPadLength-1 downto 0); + constant shRotL : shRotDirType := (0 => '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + --=============================================================== + -- Beamer control + --=============================================================== + -- + ----------------------------------------------------------------- + -- register definitions + -- s0, s1: used for INPUT and OUTPUT operations + -- S2: returns UART data byte + -- S3: uart protocol checksum + -- S4: uart protocol packet id + -- S5: uart protocol command id + -- S6: uart protocol address + -- S7: uart protocol data + -- S8: copy of UART data byte for debug + ----------------------------------------------------------------- + -- + ----------------------------------------------------------------- + -- GPIO definitions + ----------------------------------------------------------------- + ----------------------------------------------------------------- + -- UART definitions + ----------------------------------------------------------------- + -- CONSTANT uartBaudCount, 023D ; 66E6 / 115 200 = 573 + -- CONSTANT uartpollDelay, 0100 + ----------------------------------------------------------------- + -- beamer peripheral definitions + ----------------------------------------------------------------- + -- CONSTANT beamerCtlInit, 1001 + -- + --=============================================================== + -- initializations + --=============================================================== + -- + ----------------------------------------------------------------- + -- initialize GPIO + ----------------------------------------------------------------- + 16#000# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#001# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#002# => opLoadC & "0001" & "0000000010101010", -- LOAD s1, AA + 16#003# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#004# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#005# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#006# => opLoadC & "0001" & "0000000000001111", -- LOAD s1, 0F + 16#007# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize UART + ----------------------------------------------------------------- + 16#008# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 + 16#009# => opAddC & "0000" & "0000000000000010", -- ADD s0, 0002 + 16#00A# => opLoadC & "0001" & "0000000001000010", -- LOAD s1, 0042 + 16#00B# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize beamer peripheral + ----------------------------------------------------------------- + 16#00C# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#00D# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#00E# => opLoadC & "0001" & "0000010000000001", -- LOAD s1, 0401 + 16#00F# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#010# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#011# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#012# => opLoadC & "0001" & "0000000000000100", -- LOAD s1, 0004 + 16#013# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + -- + --=============================================================== + -- Main loop + --=============================================================== + -- + ----------------------------------------------------------------- + -- Process commands from serial port + ----------------------------------------------------------------- + -- _main_: + 16#014# => brCall & brDo & "--------0000100001",-- CALL 021 ; get command from UART + 16#015# => opCompC & "0011" & "0000000000000000", -- COMPARE s3, 0000 ; check function return + 16#016# => brJump & brNZ & "--------0000011111",-- JUMP NZ, 01F + 16#017# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#018# => brJump & brNZ & "--------0000011100",-- JUMP NZ, 01C + 16#019# => opOutputR & "0111" & "0110------------", -- OUTPUT s7, (S6) ; write word to memory location + 16#01A# => brCall & brDo & "--------0001100000",-- CALL 060 ; send write acknowledge + 16#01B# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandRead_: + 16#01C# => opInputR & "0111" & "0110------------", -- INPUT s7, (S6) ; write word in memory location + 16#01D# => brCall & brDo & "--------0001101111",-- CALL 06F ; send back read data + 16#01E# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandAbort_: + 16#01F# => brCall & brDo & "--------0001010001",-- CALL 051 + 16#020# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- + --=============================================================== + -- Subroutines + --=============================================================== + -- + ----------------------------------------------------------------- + -- Get command from serial port + ----------------------------------------------------------------- + -- _uartGetCmd_: + 16#021# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command header + 16#022# => opCompC & "0010" & "0000000010101010", -- COMPARE s2, 00AA + 16#023# => brJump & brNZ & "--------0000100001",-- JUMP NZ, 021 ; loop until byte is AAh + 16#024# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#025# => brCall & brDo & "--------0010000110",-- CALL 086 ; get packet id + 16#026# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#027# => opLoadR & "0100" & "0010------------", -- LOAD s4, s2 ; store id for reply + 16#028# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command + 16#029# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#02A# => opCompC & "0010" & "0000000000000011", -- COMPARE s2, 0003 ; check for WRITE_MEM command + 16#02B# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02C# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; check for READ_MEM command + 16#02D# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02E# => brJump & brDo & "--------0001001111",-- JUMP 04F ; no match + -- _commandOk_: + 16#02F# => opLoadR & "0101" & "0010------------", -- LOAD s5, s2 ; store command for action + 16#030# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data length + 16#031# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#032# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#033# => brJump & brZ & "--------0000110111",-- JUMP Z, 037 ; go to test write command length + 16#034# => opCompC & "0010" & "0000000000000010", -- COMPARE s2, 0002 ; verify READ_MEM length + 16#035# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#036# => brJump & brDo & "--------0000111001",-- JUMP 039 + -- _testWrLength_: + 16#037# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; verify WRITE_MEM length + 16#038# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + -- _getAddress_: + 16#039# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address low + 16#03A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03B# => opLoadR & "0110" & "0010------------", -- LOAD s6, s2 ; store address low + 16#03C# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address high + 16#03D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03E# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#03F# => opAddR & "0110" & "0010------------", -- ADD s6, s2 ; build address from low and high + 16#040# => opCompC & "0101" & "0000000000000100", -- COMPARE s5, 0004 ; check for READ_MEM command + 16#041# => brJump & brZ & "--------0001001001",-- JUMP Z, 049 ; skip reading data word + 16#042# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data low + 16#043# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#044# => opLoadR & "0111" & "0010------------", -- LOAD s7, s2 ; store data low + 16#045# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data high + 16#046# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#047# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#048# => opAddR & "0111" & "0010------------", -- ADD s7, s2 ; build data from low and high + -- _getChecksum_: + 16#049# => brCall & brDo & "--------0010000110",-- CALL 086 ; get checksum + 16#04A# => opAndC & "0011" & "0000000011111111", -- AND s3, 00FF ; limit calculated checksum to 8 bit + 16#04B# => opCompR & "0011" & "0010------------", -- COMPARE s3, s2 ; test checksum + 16#04C# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#04D# => opLoadC & "0011" & "0000000000000000", -- LOAD s3, 0000 ; return OK + 16#04E# => brRet & brDo & "------------------",-- RETURN + -- _commandKo_: + 16#04F# => opLoadC & "0011" & "0000000000000001", -- LOAD s3, 0001 ; return KO + 16#050# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send NACK reply + ----------------------------------------------------------------- + -- _sendNAck_: + 16#051# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#052# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#053# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#054# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#055# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#056# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#057# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; negative Acknowledge + 16#058# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#059# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05A# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#05B# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#05C# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05D# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#05E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send WRITE_MEM reply + ----------------------------------------------------------------- + -- _sendWriteOk_: + 16#060# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#061# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#062# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#063# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#064# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#065# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#066# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#067# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#068# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#069# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#06A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#06B# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06C# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#06D# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06E# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send READ_MEM reply + ----------------------------------------------------------------- + -- _sendReadData_: + 16#06F# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#070# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#071# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#072# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#073# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#074# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#075# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#076# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#077# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#078# => opLoadC & "0010" & "0000000000000010", -- LOAD s2, 0002 ; packet length: 2 bytes + 16#079# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07A# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07B# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data low + 16#07C# => opAndC & "0010" & "0000000011111111", -- AND s2, 00FF ; keep low byte only + 16#07D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07F# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data high + 16#080# => brCall & brDo & "--------0010100101",-- CALL 0A5 ; shift MSBs down to LSBs + 16#081# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#082# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#083# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#084# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#085# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Get byte from serial port + ----------------------------------------------------------------- + -- _uartGetByte_: + 16#086# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#087# => opAddC & "0000" & "0000000000000001", -- ADD s0, 01 + --load s8, 0100 + -- _checkStat_: + 16#088# => opLoadC & "0010" & "0000000001000000", -- LOAD s2, 0040 ; add delay between bus reads + -- _delay0_: + 16#089# => opSubC & "0010" & "0000000000000001", -- SUB s2, 0001 + 16#08A# => brJump & brNZ & "--------0010001001",-- JUMP NZ, 089 + --sub s8, 0001 + --jump nz, continue + --load s2, 0035 + --call uartSendByte + --load s8, 0100 + -- _continue_: + 16#08B# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08C# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08D# => opTestC & "0001" & "0000000000000001", -- TEST s1, 0001 ; check "data ready" bit + 16#08E# => brJump & brZ & "--------0010001000",-- JUMP Z, 088 ; loop until bit is '1' + 16#08F# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART data register + 16#090# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + 16#091# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + --LOAD s8, s2 + 16#092# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Send byte to serial port + ----------------------------------------------------------------- + -- _uartSendByte_: + 16#093# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#094# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + -- _readStatus_: + 16#095# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#096# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#097# => opTestC & "0001" & "0000000000000010", -- TEST s1, 0002 ; check "sending data" bit + 16#098# => brJump & brZ & "--------0010011101",-- JUMP Z, 09D ; loop until bit is '1' + 16#099# => opLoadC & "0001" & "0000000001000000", -- LOAD s1, 0040 ; add delay between bus reads + -- _delay1_: + 16#09A# => opSubC & "0001" & "0000000000000001", -- SUB s1, 0001 + 16#09B# => brJump & brNZ & "--------0010011010",-- JUMP NZ, 09A + 16#09C# => brJump & brDo & "--------0010010101",-- JUMP 095 + -- _sendByte_: + 16#09D# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; write UART data register + 16#09E# => opOutputR & "0010" & "0000------------", -- OUTPUT s2, (S0) + 16#09F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the left + ----------------------------------------------------------------- + -- _shiftS2L8_: + 16#0A0# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftLeftLoop_: + 16#0A1# => opShRot & "0010" & shRotL & shRotLd0, -- SL0 s2 + 16#0A2# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A3# => brJump & brNZ & "--------0010100001",-- JUMP NZ, 0A1 + 16#0A4# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the right + ----------------------------------------------------------------- + -- _shiftS2R8_: + 16#0A5# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftRightLoop_: + 16#0A6# => opShRot & "0010" & shRotR & shRotLd0, -- SR0 s2 + 16#0A7# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A8# => brJump & brNZ & "--------0010100110",-- JUMP NZ, 0A6 + 16#0A9# => brRet & brDo & "------------------",-- RETURN + -- + --=============================================================== + -- End of instruction memory + --=============================================================== + -- _endOfMemory_: + 16#3FF# => brJump & brDo & "--------1111111111",-- JUMP 3FF + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; + + + + +-- VHDL Entity AhbLiteComponents.ahbUart.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:43:49 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +ENTITY ahbUart IS + GENERIC( + txFifoDepth : positive := 8; + rxFifoDepth : positive := 1 + ); + PORT( + RxD : IN std_ulogic; + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic; + hReset_n : IN std_uLogic; + hSel : IN std_uLogic; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic; + TxD : OUT std_ulogic; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic; + hResp : OUT std_uLogic + ); + +-- Declarations + +END ahbUart ; + + + + + +--============================================================================== +-- +-- AHB UART +-- +-- Implements a serial port. +-- +-------------------------------------------------------------------------------- +-- +-- Write registers +-- +-- 00, data register receives the word to be sent to the serial port. +-- 01, control register is used to control the peripheral. +-- 02, scaler register is used to set the baud rate. +-- +-------------------------------------------------------------------------------- +-- +-- Read registers +-- 00, data register provides the last word received by the serial port. +-- 01, status register is used to get the peripheral's state. +-- bit 0: data ready for read +-- bit 1: sending in progress +-- bit 2: receiving in progress +-- + +ARCHITECTURE masterVersion OF ahbUart IS + + signal reset, clock: std_ulogic; + -- register definitions + constant dataOutRegisterId: natural := 0; + constant dataBitNb: positive := 8; + constant controlRegisterId: natural := 1; + constant controlBpoId: natural := 0; + constant controlFormatId: natural := 0; + constant scalerRegisterId: natural := 2; + + constant statusRegisterId: natural := 1; + constant statusReadyId: natural := 0; + constant statusSendingId: natural := 1; + constant statusReceivingId: natural := 2; + -- written registers + signal addressReg: unsigned(addressBitNb(scalerRegisterId)+1-1 downto 0); + signal writeReg: std_ulogic; + signal readReg: std_ulogic; + subtype registerType is unsigned(hWdata'length-1 downto 0); + signal dataOutRegister : unsigned(dataBitNb-1 downto 0); + signal controlRegister, scalerRegister: registerType; + -- serializer + signal txPeriodCounter: unsigned(registerType'range); + signal txEn: std_uLogic; + signal txStart: std_uLogic; + signal txSending: std_uLogic; + signal txShiftCounter : unsigned(addressBitNb(dataOutRegister'length+2)-1 downto 0); + signal txShiftRegister : unsigned(dataOutRegister'high+1 downto 0); + -- read registers + signal dataInRegister : unsigned(dataOutRegister'range); + signal statusRegister: registerType; + -- deserializer + signal rxPeriodCounter: unsigned(registerType'range); + signal rxEn: std_uLogic; + signal rxDelayed, rxChanged: std_uLogic; + signal rxShiftCounter : unsigned(txShiftCounter'range); + signal rxReceiving: std_uLogic; + signal rxShiftRegister : unsigned(dataInRegister'range); + signal rxDataReady: std_uLogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= not hReset_n; + clock <= hClk; + + --============================================================================ + -- address and controls + storeControls: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + writeReg <= '0'; + readReg <= '0'; + elsif rising_edge(clock) then + writeReg <= '0'; + readReg <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addressReg <= hAddr(addressReg'range); + writeReg <= hWrite; + readReg <= not hWrite; + end if; + end if; + end process storeControls; + + --============================================================================ + -- registers + storeWriteRegisters: process(reset, clock) + begin + if reset = '1' then + dataOutRegister <= (others => '0'); + controlRegister <= (others => '0'); + scalerRegister <= (others => '0'); + elsif rising_edge(clock) then + if writeReg = '1' then + case to_integer(addressReg) is + when dataOutRegisterId => dataOutRegister <= unsigned(hWData(dataOutRegister'range)); + when controlRegisterId => controlRegister <= unsigned(hWData); + when scalerRegisterId => scalerRegister <= unsigned(hWData); + when others => null; + end case; + end if; + end if; + end process storeWriteRegisters; + + txStart <= '1' when (writeReg = '1') and (addressReg = dataOutRegisterId) + else '0'; + + --============================================================================ + -- serializer + -- tx baud rate + countTxBaudRate: process(reset, clock) + begin + if reset = '1' then + txPeriodCounter <= (others => '1'); + elsif rising_edge(clock) then + if txPeriodCounter + 1 < scalerRegister then + txPeriodCounter <= txPeriodCounter + 1; + else + txPeriodCounter <= (others => '0'); + end if; + end if; + end process countTxBaudRate; + + txEn <= '1' when txPeriodCounter = 1 + else '0'; + -- count tx shift + countTxShift: process(reset, clock) + begin + if reset = '1' then + txShiftCounter <= (others => '0'); + elsif rising_edge(clock) then + if txShiftCounter = 0 then + if txStart = '1' then + txShiftCounter <= txShiftCounter + 1; + end if; + elsif txEn = '1' then + if txShiftCounter < dataOutRegister'length + 3 then + txShiftCounter <= txShiftCounter + 1; + else + txShiftCounter <= (others => '0'); + end if; + end if; + end if; + end process countTxShift; + + txSending <= '1' when txShiftCounter /= 0 + else '0'; + -- tx serializer + shiftTxData: process(reset, clock) + begin + if reset = '1' then + txShiftRegister <= (others => '1'); + elsif rising_edge(clock) then + if txEn = '1' then + if txShiftCounter = 1 then + txShiftRegister <= dataOutRegister & '0'; + else + txShiftRegister <= shift_right(txShiftRegister, 1); + txShiftRegister(txShiftRegister'high) <= '1'; + end if; + end if; + end if; + end process shiftTxData; + + TxD <= txShiftRegister(0); + + --============================================================================ + -- deserializer + delayRxd: process(reset, clock) + begin + if reset = '1' then + rxDelayed <= '0'; + elsif rising_edge(clock) then + rxDelayed <= RxD; + end if; + end process delayRxd; + + rxChanged <= '1' when rxDelayed /= RxD + else '0'; + -- rx baud rate + countRxBaudRate: process(reset, clock) + begin + if reset = '1' then + rxPeriodCounter <= (others => '1'); + elsif rising_edge(clock) then + if rxChanged = '1' then + rxPeriodCounter <= (others => '0'); + elsif rxPeriodCounter + 1 < scalerRegister then + rxPeriodCounter <= rxPeriodCounter + 1; + else + rxPeriodCounter <= (others => '0'); + end if; + end if; + end process countRxBaudRate; + + rxEn <= '1' when rxPeriodCounter = shift_right(scalerRegister-2, 1) + else '0'; + -- count rx shift + countRxShift: process(reset, clock) + begin + if reset = '1' then + rxShiftCounter <= (others => '0'); + elsif rising_edge(clock) then + if rxShiftCounter = 0 then + if (RxD = '0') and (rxDelayed = '1') then + rxShiftCounter <= rxShiftCounter + 1; + end if; + elsif rxEn = '1' then + if rxShiftCounter < dataInRegister'length + 2 then + rxShiftCounter <= rxShiftCounter + 1; + else + rxShiftCounter <= (others => '0'); + end if; + end if; + end if; + end process countRxShift; + + rxReceiving <= '1' when rxShiftCounter /= 0 + else '0'; + -- rx deserializer + shiftRxData: process(reset, clock) + begin + if reset = '1' then + rxShiftRegister <= (others => '1'); + dataInRegister <= (others => '0'); + elsif rising_edge(clock) then + if rxEn = '1' then + if rxShiftCounter <= dataInRegister'length+1 then + rxShiftRegister <= shift_right(rxShiftRegister, 1); + rxShiftRegister(rxShiftRegister'high) <= RxD; + end if; + if rxShiftCounter = dataInRegister'length+2 then + dataInRegister <= rxShiftRegister; + end if; + end if; + end if; + end process shiftRxData; + -- monitor data ready + checkDataReady: process(reset, clock) + begin + if reset = '1' then + rxDataReady <= '0'; + elsif rising_edge(clock) then + if (rxEn = '1') and (rxShiftCounter = dataInRegister'length+2) then + rxDataReady <= '1'; + elsif (readReg = '1') and (addressReg = dataOutRegisterId) then + rxDataReady <= '0'; + end if; + end if; + end process checkDataReady; + + --============================================================================ + -- data readback + statusRegister <= ( + statusReadyId => rxDataReady, + statusSendingId => txSending, + statusReceivingId => rxReceiving, + others => '0' + ); + + selectData: process(addressReg, dataInRegister, statusRegister) + begin + hRData <= (others => '-'); + case to_integer(addressReg) is + when dataOutRegisterId => hRData <= std_ulogic_vector(resize(dataInRegister, hRData'length)); + when statusRegisterId => hRData <= std_ulogic_vector(statusRegister); + when others => null; + end case; + end process selectData; + + hReady <= '1'; -- no wait state + hResp <= '0'; -- data OK + + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity NanoBlaze.nanoProcessor.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:43 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY nanoProcessor IS + GENERIC( + addressBitNb : positive := 8; + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5; + instructionBitNb : positive := 18; + scratchpadAddressBitNb : natural := 4 + ); + PORT( + clock : IN std_ulogic; + dataIn : IN std_ulogic_vector (registerBitNb-1 DOWNTO 0); + en : IN std_ulogic; + instruction : IN std_ulogic_vector (instructionBitNb-1 DOWNTO 0); + int : IN std_uLogic; + reset : IN std_ulogic; + dataAddress : OUT unsigned (addressBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (registerBitNb-1 DOWNTO 0); + intAck : OUT std_ulogic; + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + readStrobe : OUT std_uLogic; + writeStrobe : OUT std_uLogic + ); + +-- Declarations + +END nanoProcessor ; + + + + + +-- VHDL Entity NanoBlaze.aluAndRegs.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:43 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY aluAndRegs IS + GENERIC( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + portAddressBitNb : positive := 8; + scratchpadAddressBitNb : natural := 4 + ); + PORT( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic; + clock : IN std_ulogic; + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic; + regWrite : IN std_ulogic; + registerFileSel : IN std_ulogic; + reset : IN std_ulogic; + scratchpadSel : IN std_ulogic; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic; + portAddr : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + scratchpadAddr : OUT unsigned (scratchpadAddressBitNb-1 DOWNTO 0); + spadOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + zero : OUT std_ulogic + ); + +-- Declarations + +END aluAndRegs ; + + + + + +-- VHDL Entity NanoBlaze.alu.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY alu IS + GENERIC( + aluCodeBitNb : positive := 5; + dataBitNb : positive := 8 + ); + PORT( + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic; + opA : IN signed ( dataBitNb-1 DOWNTO 0 ); + opB : IN signed ( dataBitNb-1 DOWNTO 0 ); + aluOut : OUT signed ( dataBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic; + zero : OUT std_ulogic + ); + +-- Declarations + +END alu ; + + + + + +ARCHITECTURE RTL OF alu IS + + signal aluCodeInt: unsigned(aluCode'range); + signal aArith: signed(opA'high+1 downto 0); + signal bArith: signed(opA'high+1 downto 0); + signal cInArith: signed(1 downto 0); + signal cInShift: std_ulogic; + signal yArith: signed(aluOut'high+1 downto 0); + signal aluOutInt: signed(aluOut'range); + +BEGIN + ------------------------------------------------------------------------------ + -- clear aluCode don't care LSB for shifts + aluCodeInt(aluCode'high downto 1) <= unsigned(aluCode(aluCode'high downto 1)); + + cleanupLsb: process(aluCode) + begin + if aluCode(aluCode'high) = '1' then + aluCodeInt(0) <= '0'; + else + aluCodeInt(0) <= aluCode(0); + end if; + end process cleanupLsb; + + ------------------------------------------------------------------------------ + -- values for arithmetic operations + aArith <= signed(resize(unsigned(opA), aArith'length)); + bArith <= signed(resize(unsigned(opB), bArith'length)); + cInArith <= (0 => cIn, others => '0'); + + process(aluCode, cIn, opA) + begin + case aluCode(2 downto 1) is + when "00" => cInShift <= cIn; + when "01" => cInShift <= opA(opA'high); + when "10" => cInShift <= opA(opA'low); + when "11" => cInShift <= aluCode(0); + when others => cInShift <= '-'; + end case; + end process; + + ------------------------------------------------------------------------------ + -- alu operations + aluOperation: process( + aluCodeInt, + opA, opB, + aArith, bArith, cInArith, + cInShift, + yArith, aluOutInt + ) + variable xorAcc: std_ulogic; + begin + yArith <= (others => '-'); + cOut <= '-'; + aluOutInt <= (others => '-'); + case to_integer(aluCodeInt) is + when 0 => -- LOAD sX, kk + aluOutInt <= opB; + when 2 => -- INPUT sX, pp + aluOutInt <= opB; + when 3 => -- FETCH sX, ss + aluOutInt <= opB; + when 5 => -- AND sX, kk + aluOutInt <= opA and opB; + cOut <= '0'; + when 6 => -- OR sX, kk + aluOutInt <= opA or opB; + cOut <= '0'; + when 7 => -- XOR sX, kk + aluOutInt <= opA xor opB; + cOut <= '0'; + when 9 => -- TEST sX, kk + aluOutInt <= opA and opB; + xorAcc := '0'; + for index in aluOutInt'range loop + xorAcc := xorAcc xor aluOutInt(index); + end loop; + cOut <= xorAcc; + when 10 => -- COMPARE sX, kk + yArith <= aArith - bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 12 => -- ADD sX, kk + yArith <= aArith + bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 13 => -- ADDCY sX, kk + yArith <= (aArith + bArith) + cInArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 14 => -- SUB sX, kk + yArith <= aArith - bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 15 => -- SUBCY sX, kk + yArith <= (aArith - bArith) - cInArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 16 to 23 => -- SL sX + aluOutInt <= opA(opA'high-1 downto 0) & cInShift; + cOut <= opA(opA'high); + when 24 to 31 => -- SR sX + aluOutInt <= cInShift & opA(opA'high downto 1); + cOut <= opA(0); + when others => + aluOutInt <= (others => '-'); + end case; + end process aluOperation; + + aluOut <= aluOutInt; + zero <= '1' when aluOutInt = 0 else '0'; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.aluBOpSelector.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY aluBOpSelector IS + GENERIC( + registerBitNb : positive := 8 + ); + PORT( + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic; + registerFileIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + registerFileSel : IN std_ulogic; + scratchpadSel : IN std_ulogic; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + opB : OUT signed (registerBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END aluBOpSelector ; + + + + + +ARCHITECTURE RTL OF aluBOpSelector IS +BEGIN + + selectDataSource: process( + registerFileSel, registerFileIn, + scratchpadSel, spadIn, + portInSel, portIn, + instrDataSel, instrData + ) + begin + if registerFileSel = '1' then + opB <= registerFileIn; + elsif scratchpadSel = '1' then + opB <= spadIn; + elsif portInSel = '1' then + opB <= portIn; + elsif instrDataSel = '1' then + opB <= instrData; + else + opB <= (others => '-'); + end if; + end process selectDataSource; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.registerFile.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY registerFile IS + GENERIC( + registerAddressBitNb : positive := 4; + dataBitNb : positive := 8 + ); + PORT( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic; + regWrite : IN std_ulogic; + registersIn : IN signed ( dataBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic; + opA : OUT signed ( dataBitNb-1 DOWNTO 0 ); + opB : OUT signed ( dataBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END registerFile ; + + + + + +ARCHITECTURE RTL OF registerFile IS + + subtype registerType is signed(registersIn'range); + type registerArrayType is array (0 to 2**registerAddressBitNb-1) of registerType; + signal registerArray : registerArrayType; + +BEGIN + ------------------------------------------------------------------------------ + -- write to registers + updateRegister: process(reset, clock) + begin + if reset = '1' then + registerArray <= (others => (others => '0')); + elsif rising_edge(clock) then + if regWrite = '1' then + registerArray(to_integer(addrA)) <= registersIn; + end if; + end if; + end process updateRegister; + + ------------------------------------------------------------------------------ + -- read from registers + opA <= registerArray(to_integer(addrA)); + opB <= registerArray(to_integer(addrB)); + +END ARCHITECTURE RTL; + + + + +-- +-- VHDL Architecture NanoBlaze.aluAndRegs.struct +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:44 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY NanoBlaze; + +ARCHITECTURE struct OF aluAndRegs IS + + -- Architecture declarations + + -- Internal signal declarations + SIGNAL aluOut : signed(registerBitNb-1 DOWNTO 0); + SIGNAL opA : signed(registerBitNb-1 DOWNTO 0); + SIGNAL opB : signed(registerBitNb-1 DOWNTO 0); + SIGNAL registerFileIn : signed(registerBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT alu + GENERIC ( + aluCodeBitNb : positive := 5; + dataBitNb : positive := 8 + ); + PORT ( + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic ; + opA : IN signed ( dataBitNb-1 DOWNTO 0 ); + opB : IN signed ( dataBitNb-1 DOWNTO 0 ); + aluOut : OUT signed ( dataBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic ; + zero : OUT std_ulogic + ); + END COMPONENT; + COMPONENT aluBOpSelector + GENERIC ( + registerBitNb : positive := 8 + ); + PORT ( + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic ; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic ; + registerFileIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + registerFileSel : IN std_ulogic ; + scratchpadSel : IN std_ulogic ; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + opB : OUT signed (registerBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT registerFile + GENERIC ( + registerAddressBitNb : positive := 4; + dataBitNb : positive := 8 + ); + PORT ( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic ; + regWrite : IN std_ulogic ; + registersIn : IN signed ( dataBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic ; + opA : OUT signed ( dataBitNb-1 DOWNTO 0 ); + opB : OUT signed ( dataBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : alu USE ENTITY NanoBlaze.alu; + FOR ALL : aluBOpSelector USE ENTITY NanoBlaze.aluBOpSelector; + FOR ALL : registerFile USE ENTITY NanoBlaze.registerFile; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + portOut <= opA; + spadOut <= opA; + + -- HDL Embedded Text Block 2 eb2 + portAddr <= resize(unsigned(registerFileIn), portAddressBitNb); + scratchpadAddr <= resize(unsigned(registerFileIn), scratchpadAddressBitNb); + + + -- Instance port mappings. + I_ALU : alu + GENERIC MAP ( + aluCodeBitNb => aluCodeBitNb, + dataBitNb => registerBitNb + ) + PORT MAP ( + aluCode => aluCode, + cIn => cIn, + opA => opA, + opB => opB, + aluOut => aluOut, + cOut => cOut, + zero => zero + ); + I_bSel : aluBOpSelector + GENERIC MAP ( + registerBitNb => registerBitNb + ) + PORT MAP ( + instrData => instrData, + instrDataSel => instrDataSel, + portIn => portIn, + portInSel => portInSel, + registerFileIn => registerFileIn, + registerFileSel => registerFileSel, + scratchpadSel => scratchpadSel, + spadIn => spadIn, + opB => opB + ); + I_regs : registerFile + GENERIC MAP ( + registerAddressBitNb => registerAddressBitNb, + dataBitNb => registerBitNb + ) + PORT MAP ( + addrA => addrA, + addrB => addrB, + clock => clock, + regWrite => regWrite, + registersIn => aluOut, + reset => reset, + opA => opA, + opB => registerFileIn + ); + +END struct; + + + + +-- VHDL Entity NanoBlaze.branchStack.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY branchStack IS + GENERIC( + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5 + ); + PORT( + clock : IN std_ulogic; + prevPC : IN std_ulogic; + progCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic; + storePC : IN std_ulogic; + storedProgCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END branchStack ; + + + + + +ARCHITECTURE RTL OF branchStack IS + + subtype progCounterType is unsigned(progCounter'range); + type progCounterArrayType is array (0 to 2**stackPointerBitNb) of progCounterType; + signal progCounterArray : progCounterArrayType; + + signal writePointer : unsigned(stackPointerBitNb-1 downto 0); + signal readPointer : unsigned(stackPointerBitNb-1 downto 0); + +BEGIN + ------------------------------------------------------------------------------ + -- stack pointers + updateStackPointer: process(reset, clock) + begin + if reset = '1' then + writePointer <= (others => '0'); + elsif rising_edge(clock) then + if storePC = '1' then + writePointer <= writePointer + 1; + elsif prevPC = '1' then + writePointer <= writePointer - 1; + end if; + end if; + end process updateStackPointer; + + readPointer <= writePointer - 1; + + ------------------------------------------------------------------------------ + -- program counters stack + updateStack: process(reset, clock) + begin + if rising_edge(clock) then + if storePc = '1' then + progCounterArray(to_integer(writePointer)) <= progCounter; + end if; + storedProgCounter <= progCounterArray(to_integer(readPointer)); + end if; + end process updateStack; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.controller.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY controller IS + GENERIC( + intCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + opCodeBitNb : positive := 5 + ); + PORT( + branchCond : IN std_ulogic_vector ( branchCondBitNb-1 DOWNTO 0 ); + cOut : IN std_ulogic; + clock : IN std_ulogic; + en : IN std_ulogic; + int : IN std_uLogic; + intCode : IN std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : IN std_ulogic_vector (opCodeBitNb-1 DOWNTO 0); + reset : IN std_ulogic; + twoRegInstr : IN std_ulogic; + zero : IN std_ulogic; + cIn : OUT std_ulogic; + incPC : OUT std_ulogic; + instrDataSel : OUT std_ulogic; + intAck : OUT std_ulogic; + loadInstrAddress : OUT std_ulogic; + loadStoredPC : OUT std_ulogic; + portInSel : OUT std_ulogic; + prevPC : OUT std_ulogic; + readStrobe : OUT std_uLogic; + regWrite : OUT std_ulogic; + registerFileSel : OUT std_ulogic; + scratchpadSel : OUT std_ulogic; + scratchpadWrite : OUT std_ulogic; + storePC : OUT std_ulogic; + writeStrobe : OUT std_uLogic + ); + +-- Declarations + +END controller ; + + + + + +ARCHITECTURE RTL OF controller IS + + signal en1, enInt: std_ulogic; + + constant opCodeLength : integer := 5; + subtype opCodeType is std_ulogic_vector(opCodeLength-1 downto 0); + constant opLoad : opCodeType := "00000"; + constant opInput : opCodeType := "00010"; + constant opFetch : opCodeType := "00011"; + constant opAnd : opCodeType := "00101"; + constant opOr : opCodeType := "00110"; + constant opXor : opCodeType := "00111"; + constant opTest : opCodeType := "01001"; + constant opComp : opCodeType := "01010"; + constant opAdd : opCodeType := "01100"; + constant opAddCy : opCodeType := "01101"; + constant opSub : opCodeType := "01110"; + constant opSubCy : opCodeType := "01111"; + constant opShRot : opCodeType := "10000"; + constant opRet : opCodeType := "10101"; + constant opOutput: opCodeType := "10110"; + constant opStore : opCodeType := "10111"; + constant opCall : opCodeType := "11000"; + constant opJump : opCodeType := "11010"; + constant opIntF : opCodeType := "11110"; + + constant branchConditionLength : integer := 3; + subtype branchConditionType is std_ulogic_vector(branchConditionLength-1 downto 0); + constant brAw : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + signal aluOpSel: std_ulogic; + signal regWriteEn: std_ulogic; + + signal flagsEn, flagsEnable: std_ulogic; + signal carrySaved: std_ulogic; + signal zeroSaved: std_ulogic; + + signal branchEnable1, branchEnable: std_ulogic; + signal discardOpCode: std_ulogic; + + signal updateIntFlag: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- Enable signal + buildEnable: process(reset, clock) + begin + if reset = '1' then + en1 <= '0'; + elsif rising_edge(clock) then + en1 <= '1'; + end if; + end process buildEnable; + + enInt <= en1 and en; -- don't enable very first instruction twice + + ------------------------------------------------------------------------------ + -- ALU controls + selectdataSource: process(opCode) + begin + aluOpSel <= '0'; + portInSel <= '0'; + scratchpadSel <= '0'; + case opCode(opCodeLength-1 downto 0) is + when opLoad => aluOpSel <= '1'; + when opInput => portInSel <= '1'; + when opFetch => scratchpadSel <= '1'; + when opAnd => aluOpSel <= '1'; + when opOr => aluOpSel <= '1'; + when opXor => aluOpSel <= '1'; + when opTest => aluOpSel <= '1'; + when opComp => aluOpSel <= '1'; + when opAdd => aluOpSel <= '1'; + when opAddCy => aluOpSel <= '1'; + when opSub => aluOpSel <= '1'; + when opSubCy => aluOpSel <= '1'; + when opShRot => aluOpSel <= '1'; + when others => aluOpSel <= '-'; + portInSel <= '-'; + scratchpadSel <= '-'; + end case; + end process selectdataSource; + + registerFileSel <= aluOpSel and twoRegInstr; + instrDataSel <= aluOpSel and (not twoRegInstr); + + regWriteEn <= enInt and (not discardOpCode); + + regWriteTable: process(opCode, regWriteEn) + begin + case opCode(opCodeLength-1 downto 0) is + when opLoad => regWrite <= regWriteEn; + when opInput => regWrite <= regWriteEn; + when opFetch => regWrite <= regWriteEn; + when opAnd => regWrite <= regWriteEn; + when opOr => regWrite <= regWriteEn; + when opXor => regWrite <= regWriteEn; + when opAdd => regWrite <= regWriteEn; + when opAddCy => regWrite <= regWriteEn; + when opSub => regWrite <= regWriteEn; + when opSubCy => regWrite <= regWriteEn; + when opShRot => regWrite <= regWriteEn; + when others => regWrite <= '0'; + end case; + end process regWriteTable; + + ------------------------------------------------------------------------------ + -- I/O controls + readStrobe <= enInt when (opCode = opInput) and (discardOpCode = '0') + else '0'; + writeStrobe <= enInt when (opCode = opOutput) and (discardOpCode = '0') + else '0'; + + ------------------------------------------------------------------------------ + -- scratchpad controls + scratchpadWrite <= '1' when opCode = opStore else '0'; + + ------------------------------------------------------------------------------ + -- Carry logic + flagsEn <= enInt and (not branchEnable); + + flagsEnableTable: process(opCode, flagsEn) + begin + case opCode(opCodeLength-1 downto 0) is + when opAnd => flagsEnable <= flagsEn; + when opOr => flagsEnable <= flagsEn; + when opXor => flagsEnable <= flagsEn; + when opTest => flagsEnable <= flagsEn; + when opComp => flagsEnable <= flagsEn; + when opAdd => flagsEnable <= flagsEn; + when opAddCy => flagsEnable <= flagsEn; + when opSub => flagsEnable <= flagsEn; + when opSubCy => flagsEnable <= flagsEn; + when opShRot => flagsEnable <= flagsEn; + when others => flagsEnable <= '0'; + end case; + end process flagsEnableTable; + + saveCarries: process(reset, clock) + begin + if reset = '1' then + carrySaved <= '0'; + zeroSaved <= '0'; + elsif rising_edge(clock) then + if flagsEnable = '1' then + carrySaved <= cOut; + zeroSaved <= zero; + end if; + end if; + end process saveCarries; + + cIn <= carrySaved; + + ------------------------------------------------------------------------------ + -- Program counter controls + checkBranchCondition: process(branchCond, zeroSaved, carrySaved) + begin + case branchCond(branchConditionLength-1 downto 0) is + when brAw => branchEnable1 <= '1'; + when brZ => branchEnable1 <= zeroSaved; + when brNZ => branchEnable1 <= not zeroSaved; + when brC => branchEnable1 <= carrySaved; + when brNC => branchEnable1 <= not carrySaved; + when others => branchEnable1 <= '-'; + end case; + end process checkBranchCondition; + + branchEnableTable: process(opCode, branchEnable1, discardOpCode) + begin + if discardOpCode = '0' then + case opCode(opCodeLength-1 downto 0) is + when opRet => branchEnable <= branchEnable1; + when opCall => branchEnable <= branchEnable1; + when opJump => branchEnable <= branchEnable1; + when others => branchEnable <= '0'; + end case; + else + branchEnable <= '0'; + end if; + end process branchEnableTable; + + progCounterControlTable: process(opCode, enInt, branchEnable) + begin + incPC <= enInt; + loadInstrAddress <= '0'; + loadStoredPC <= '0'; + case opCode(opCodeLength-1 downto 0) is + when opRet => incPC <= not branchEnable; + loadStoredPC <= enInt and branchEnable; + when opCall => incPC <= not branchEnable; + loadInstrAddress <= enInt and branchEnable; + when opJump => incPC <= not branchEnable; + loadInstrAddress <= enInt and branchEnable; + when others => null; + end case; + end process progCounterControlTable; + + -- If a branch condition is met, the next operation has to be discarded. + -- This is due to the synchronous operation of the program ROM: the + -- instructions are provided one clock period after the program counter. + -- so while the branch operation is processed, the next instruction is + -- already being fetched. + delayBranchEnable: process(reset, clock) + begin + if reset = '1' then + discardOpCode <= '0'; + elsif rising_edge(clock) then + discardOpCode <= branchEnable; + end if; + end process delayBranchEnable; + + ------------------------------------------------------------------------------ + -- Stack pointer controls + pcStackControlTable: process(discardOpCode, opCode, enInt) + begin + storePC <= '0'; + prevPC <= '0'; + if discardOpCode = '0' then + case opCode(opCodeLength-1 downto 0) is + when opRet => prevPC <= enInt; + when opCall => storePC <= enInt; + when others => null; + end case; + end if; + end process pcStackControlTable; + + + ------------------------------------------------------------------------------ + -- interrupt control + updateIntFlag <= '1' when opCode = opIntF else '0'; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.instructionDecoder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY instructionDecoder IS + GENERIC( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + instructionBitNb : positive := 18; + programCounterBitNb : positive := 10; + opCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + intCodeBitNb : positive := 5; + spadAddressBitNb : natural := 4; + portAddressBitNb : positive := 8 + ); + PORT( + instruction : IN std_ulogic_vector ( instructionBitNb-1 DOWNTO 0 ); + addrA : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : OUT std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + branchCond : OUT std_ulogic_vector (branchCondBitNb-1 DOWNTO 0); + instrAddress : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + instrData : OUT signed ( registerBitNb-1 DOWNTO 0 ); + intCode : OUT std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : OUT std_ulogic_vector ( opCodeBitNb-1 DOWNTO 0 ); + portAddress : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portIndexedSel : OUT std_ulogic; + spadAddress : OUT unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + spadIndexedSel : OUT std_ulogic; + twoRegInstr : OUT std_ulogic + ); + +-- Declarations + +END instructionDecoder ; + + + + + +ARCHITECTURE RTL OF instructionDecoder IS + + constant opCodeIndexH : integer := instruction'high; + constant opCodeIndexL : integer := opCodeIndexH - opCodeBitNb + 1; + + constant twoRegInstrIndex : integer := opCodeIndexL - 1; + constant ioAddrIndexed : integer := twoRegInstrIndex; + + constant addrAIndexH : integer := twoRegInstrIndex - 1; + constant addrAIndexL : integer := addrAIndexH - registerAddressBitNb + 1; + + constant immediateDataIndexH : integer := registerBitNb-1; + constant immediateDataIndexL : integer := 0; + constant addrBIndexH : integer := addrAIndexL - 1; + constant addrBIndexL : integer := addrBIndexH - registerAddressBitNb + 1; + + constant aluCodeIndexH : integer := opCodeIndexH; + constant aluCodeIndexL : integer := aluCodeIndexH - aluCodeBitNb + 1; + + constant portAddressH : integer := registerBitNb-1; + constant portAddressL : integer := portAddressH-portAddressBitNb+1; + constant spadAddressH : integer := registerBitNb-1; + constant spadAddressL : integer := spadAddressH-spadAddressBitNb+1; + + constant branchCondH : integer := opCodeIndexL-1; + constant branchCondL : integer := branchCondH-branchCondBitNb+1; + +BEGIN + ------------------------------------------------------------------------------ + -- ALU control + aluCode <= + instruction(aluCodeIndexH downto aluCodeIndexL) + when instruction(aluCodeIndexH) = '0' else + '1' & instruction(aluCodeBitNb-2 downto 0); + opCode <= instruction(opCodeIndexH downto opCodeIndexL); + twoRegInstr <= instruction(twoRegInstrIndex); + addrA <= unsigned(instruction(addrAIndexH downto addrAIndexL)); + addrB <= unsigned(instruction(addrBIndexH downto addrBIndexL)); + instrData <= signed(instruction(immediateDataIndexH downto immediateDataIndexL)); + + ------------------------------------------------------------------------------ + -- I/O control + portIndexedSel <= instruction(ioAddrIndexed); + portAddress <= unsigned(instruction(portAddressH downto portAddressL)); + + ------------------------------------------------------------------------------ + -- scratchpad control + spadIndexedSel <= instruction(ioAddrIndexed); + spadAddress <= unsigned(instruction(spadAddressH downto spadAddressL)); + + ------------------------------------------------------------------------------ + -- branch control + branchCond <= instruction(branchCondH downto branchCondL); + instrAddress <= unsigned(instruction(instrAddress'range)); + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.programCounter.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY programCounter IS + GENERIC( + programCounterBitNb : positive := 10 + ); + PORT( + clock : IN std_ulogic; + incPC : IN std_ulogic; + instrAddress : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + loadInstrAddress : IN std_ulogic; + loadStoredPC : IN std_ulogic; + reset : IN std_ulogic; + storedProgCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END programCounter ; + + + + + +ARCHITECTURE RTL OF programCounter IS + + signal pCounter: unsigned(progCounter'range); + +BEGIN + + updateProgramCounter: process(reset, clock) + begin + if reset = '1' then + pCounter <= (others => '0'); + elsif rising_edge(clock) then + if incPC = '1' then + pCounter <= pCounter + 1; + elsif loadInstrAddress = '1' then + pCounter <= instrAddress; + elsif loadStoredPC = '1' then + pCounter <= storedProgCounter; + end if; + end if; + end process updateProgramCounter; + + progCounter <= pCounter; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.scratchpad.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY scratchpad IS + GENERIC( + registerBitNb : positive := 8; + spadAddressBitNb : natural := 4 + ); + PORT( + addr : IN unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic; + dataIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic; + write : IN std_ulogic; + dataOut : OUT signed ( registerBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END scratchpad ; + + + + + +ARCHITECTURE RTL OF scratchpad IS + + subtype memoryWordType is signed(dataOut'range); + type memoryArrayType is array (0 to 2**addr'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType; + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if write = '1' then + memoryArray(to_integer(addr)) <= dataIn; + end if; + end if; + end process; + + dataOut <= memoryArray(to_integer(addr)); + +END ARCHITECTURE RTL; + + + + +-- +-- VHDL Architecture NanoBlaze.nanoProcessor.struct +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:43 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY NanoBlaze; + +ARCHITECTURE struct OF nanoProcessor IS + + -- Architecture declarations + constant aluCodeBitNb: positive := 5; + constant opCodeBitNb: positive := 5; + constant branchCondBitNb: positive := 3; + constant intCodeBitNb: positive := 5; + + -- Internal signal declarations + SIGNAL addrA : unsigned( registerAddressBitNb-1 DOWNTO 0 ); + SIGNAL addrB : unsigned( registerAddressBitNb-1 DOWNTO 0 ); + SIGNAL aluCode : std_ulogic_vector( aluCodeBitNb-1 DOWNTO 0 ); + SIGNAL branchCond : std_ulogic_vector(branchCondBitNb-1 DOWNTO 0); + SIGNAL cIn : std_ulogic; + SIGNAL cOut : std_ulogic; + SIGNAL incPC : std_ulogic; + SIGNAL instrAddress : unsigned( programCounterBitNb-1 DOWNTO 0 ); + SIGNAL instrData : signed( registerBitNb-1 DOWNTO 0 ); + SIGNAL instrDataSel : std_ulogic; + SIGNAL instrString : string(1 TO 16); + SIGNAL intCode : std_ulogic_vector( intCodeBitNb-1 DOWNTO 0 ); + SIGNAL loadInstrAddress : std_ulogic; + SIGNAL loadStoredPC : std_ulogic; + SIGNAL opCode : std_ulogic_vector( opCodeBitNb-1 DOWNTO 0 ); + SIGNAL portIn : signed( registerBitNb-1 DOWNTO 0 ); + SIGNAL portInSel : std_ulogic; + SIGNAL portIndexedSel : std_ulogic; + SIGNAL portInstrAddress : unsigned(addressBitNb-1 DOWNTO 0); + SIGNAL portOut : signed( registerBitNb-1 DOWNTO 0 ); + SIGNAL portRegAddress : unsigned(addressBitNb-1 DOWNTO 0); + SIGNAL prevPC : std_ulogic; + SIGNAL regWrite : std_ulogic; + SIGNAL registerFileSel : std_ulogic; + SIGNAL scratchpadSel : std_ulogic; + SIGNAL scratchpadWrite : std_ulogic; + SIGNAL spadAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0); + SIGNAL spadIn : signed(registerBitNb-1 DOWNTO 0); + SIGNAL spadIndexedSel : std_ulogic; + SIGNAL spadInstrAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0); + SIGNAL spadOut : signed(registerBitNb-1 DOWNTO 0); + SIGNAL spadRegAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0); + SIGNAL storePC : std_ulogic; + SIGNAL storedProgCounter : unsigned( programCounterBitNb-1 DOWNTO 0 ); + SIGNAL twoRegInstr : std_ulogic; + SIGNAL zero : std_ulogic; + + -- Implicit buffer signal declarations + SIGNAL progCounter_internal : unsigned ( programCounterBitNb-1 DOWNTO 0 ); + + + -- Component Declarations + COMPONENT aluAndRegs + GENERIC ( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + portAddressBitNb : positive := 8; + scratchpadAddressBitNb : natural := 4 + ); + PORT ( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic ; + clock : IN std_ulogic ; + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic ; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic ; + regWrite : IN std_ulogic ; + registerFileSel : IN std_ulogic ; + reset : IN std_ulogic ; + scratchpadSel : IN std_ulogic ; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic ; + portAddr : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + scratchpadAddr : OUT unsigned (scratchpadAddressBitNb-1 DOWNTO 0); + spadOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + zero : OUT std_ulogic + ); + END COMPONENT; + COMPONENT branchStack + GENERIC ( + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5 + ); + PORT ( + clock : IN std_ulogic ; + prevPC : IN std_ulogic ; + progCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic ; + storePC : IN std_ulogic ; + storedProgCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + COMPONENT controller + GENERIC ( + intCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + opCodeBitNb : positive := 5 + ); + PORT ( + branchCond : IN std_ulogic_vector ( branchCondBitNb-1 DOWNTO 0 ); + cOut : IN std_ulogic ; + clock : IN std_ulogic ; + en : IN std_ulogic ; + int : IN std_uLogic ; + intCode : IN std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : IN std_ulogic_vector (opCodeBitNb-1 DOWNTO 0); + reset : IN std_ulogic ; + twoRegInstr : IN std_ulogic ; + zero : IN std_ulogic ; + cIn : OUT std_ulogic ; + incPC : OUT std_ulogic ; + instrDataSel : OUT std_ulogic ; + intAck : OUT std_ulogic ; + loadInstrAddress : OUT std_ulogic ; + loadStoredPC : OUT std_ulogic ; + portInSel : OUT std_ulogic ; + prevPC : OUT std_ulogic ; + readStrobe : OUT std_uLogic ; + regWrite : OUT std_ulogic ; + registerFileSel : OUT std_ulogic ; + scratchpadSel : OUT std_ulogic ; + scratchpadWrite : OUT std_ulogic ; + storePC : OUT std_ulogic ; + writeStrobe : OUT std_uLogic + ); + END COMPONENT; + COMPONENT instructionDecoder + GENERIC ( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + instructionBitNb : positive := 18; + programCounterBitNb : positive := 10; + opCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + intCodeBitNb : positive := 5; + spadAddressBitNb : natural := 4; + portAddressBitNb : positive := 8 + ); + PORT ( + instruction : IN std_ulogic_vector ( instructionBitNb-1 DOWNTO 0 ); + addrA : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : OUT std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + branchCond : OUT std_ulogic_vector (branchCondBitNb-1 DOWNTO 0); + instrAddress : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + instrData : OUT signed ( registerBitNb-1 DOWNTO 0 ); + intCode : OUT std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : OUT std_ulogic_vector ( opCodeBitNb-1 DOWNTO 0 ); + portAddress : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portIndexedSel : OUT std_ulogic ; + spadAddress : OUT unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + spadIndexedSel : OUT std_ulogic ; + twoRegInstr : OUT std_ulogic + ); + END COMPONENT; + COMPONENT programCounter + GENERIC ( + programCounterBitNb : positive := 10 + ); + PORT ( + clock : IN std_ulogic ; + incPC : IN std_ulogic ; + instrAddress : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + loadInstrAddress : IN std_ulogic ; + loadStoredPC : IN std_ulogic ; + reset : IN std_ulogic ; + storedProgCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + COMPONENT scratchpad + GENERIC ( + registerBitNb : positive := 8; + spadAddressBitNb : natural := 4 + ); + PORT ( + addr : IN unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic ; + dataIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic ; + write : IN std_ulogic ; + dataOut : OUT signed ( registerBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : aluAndRegs USE ENTITY NanoBlaze.aluAndRegs; + FOR ALL : branchStack USE ENTITY NanoBlaze.branchStack; + FOR ALL : controller USE ENTITY NanoBlaze.controller; + FOR ALL : instructionDecoder USE ENTITY NanoBlaze.instructionDecoder; + FOR ALL : programCounter USE ENTITY NanoBlaze.programCounter; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + dataAddress <= portInstrAddress when portIndexedSel = '0' else portRegAddress; + + -- HDL Embedded Text Block 2 eb2 + dataOut <= std_ulogic_vector(portOut); + portIn <= signed(dataIn); + + -- HDL Embedded Text Block 3 eb3 + spadAddress <= spadInstrAddress when spadIndexedSel = '0' else spadRegAddress; + + -- HDL Embedded Text Block 4 eb4 + -- pragma translate_off + + process(instruction) + + constant bitsPerHexDigit : positive := 4; + + function pad(inString : string; outLength : positive) return string is + variable outString : string(1 to outLength); + begin + outString := (others => ' '); + outString(inString'range) := inString; + return outString; + end function pad; + + function hexDigitNb(bitNb : positive) return positive is + begin + return (bitNb-1)/bitsPerHexDigit+1; + end function hexDigitNb; + + function to01(nineValued : unsigned) return unsigned is + variable twoValued : unsigned(nineValued'range); + begin + twoValued := (others => '0'); + for index in nineValued'range loop + if (nineValued(index) = '1') or (nineValued(index) = 'H') then + twoValued(index) := '1'; + end if; + end loop; + return twoValued; + end function to01; + + variable opCode : unsigned(1+opCodeBitNb-1 downto 0); + variable destRegister : unsigned(registerAddressBitNb-1 downto 0); + variable destRegisterString : string(1 to 1+hexDigitNb(registerAddressBitNb)); + variable sourceRegister : unsigned(registerAddressBitNb-1 downto 0); + variable sourceRegisterString : string(1 to 1+hexDigitNb(registerAddressBitNb)); + variable sourceConstant : unsigned(registerBitNb-1 downto 0); + variable sourceConstantString : string(1 to hexDigitNb(registerBitNb)); + variable branchAddress : unsigned(programCounterBitNb-1 downto 0); + variable branchAddressString : string(1 to hexDigitNb(programCounterBitNb)); + variable branchKind : unsigned(1 downto 0); + variable shRotCin : unsigned(2 downto 0); + variable shRotDir: std_ulogic; + + function toHexDigit(binary : unsigned(bitsPerHexDigit-1 downto 0)) return character is + begin + if binary <= 9 then + return character'val(character'pos('0') + to_integer(to01(binary))); + else + return character'val(character'pos('A') + to_integer(to01(binary)) - 10); + end if; + end function toHexDigit; + + function toHexString(binary : unsigned) return string is + variable hexString : string(1 to hexDigitNb(binary'length)); + begin + for index in hexString'high-1 downto 0 loop + hexString(hexString'high-index) := toHexDigit( + resize(shift_right(binary, bitsPerHexDigit*index), bitsPerHexDigit) + ); + end loop; + return hexString; + end function toHexString; + + begin + + opCode := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length), + opCode'length + ); + destRegister := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-destRegister'length), + destRegister'length + ); + destRegisterString := 's' & toHexDigit(destRegister); + sourceRegister := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-destRegister'length-sourceRegister'length), + sourceRegister'length + ); + sourceRegisterString := 's' & toHexDigit(sourceRegister); + sourceConstant := resize(unsigned(instruction), sourceConstant'length); + sourceConstantString := toHexString(sourceConstant); + branchKind := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-branchKind'length), + branchKind'length + ); + branchAddress := resize(unsigned(instruction), branchAddress'length); + branchAddressString := toHexString(branchAddress); + shRotCin := resize(shift_right(unsigned(instruction), 1), shRotCin'length); + shRotDir := instruction(0); + + case opCode is + when "000000" => instrString <= pad("LOAD " & destRegisterString & " " & sourceConstantString, instrString'length); + when "000001" => instrString <= pad("LOAD " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "000100" => instrString <= pad("INPUT " & destRegisterString & " " & sourceConstantString, instrString'length); + when "000101" => instrString <= pad("INPUT " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "000110" => instrString <= pad("FETCH " & destRegisterString & " " & sourceConstantString, instrString'length); + when "000111" => instrString <= pad("FETCH " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "001010" => instrString <= pad("AND " & destRegisterString & " " & sourceConstantString, instrString'length); + when "001011" => instrString <= pad("AND " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "001100" => instrString <= pad("OR " & destRegisterString & " " & sourceConstantString, instrString'length); + when "001101" => instrString <= pad("OR " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "001110" => instrString <= pad("XOR " & destRegisterString & " " & sourceConstantString, instrString'length); + when "001111" => instrString <= pad("XOR " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "010010" => instrString <= pad("TEST " & destRegisterString & " " & sourceConstantString, instrString'length); + when "010011" => instrString <= pad("TEST " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "010100" => instrString <= pad("COMP " & destRegisterString & " " & sourceConstantString, instrString'length); + when "010101" => instrString <= pad("COMP " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011000" => instrString <= pad("ADD " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011001" => instrString <= pad("ADD " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011010" => instrString <= pad("ADDCY " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011011" => instrString <= pad("ADDCY " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011100" => instrString <= pad("SUB " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011101" => instrString <= pad("SUB " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011110" => instrString <= pad("SUBCY " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011111" => instrString <= pad("SUBCY " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "100000" => + case shRotCin is + when "000" => instrString <= pad("SLA " & destRegisterString, instrString'length); + when "001" => instrString <= pad("RL " & destRegisterString, instrString'length); + when "010" => instrString <= pad("SLX " & destRegisterString, instrString'length); + when "011" => + case shRotDir is + when '0' => instrString <= pad("SL0 " & destRegisterString, instrString'length); + when '1' => instrString <= pad("SL1 " & destRegisterString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when "100" => instrString <= pad("SRA " & destRegisterString, instrString'length); + when "101" => instrString <= pad("SRX " & destRegisterString, instrString'length); + when "110" => instrString <= pad("RR " & destRegisterString, instrString'length); + when "111" => + case shRotDir is + when '0' => instrString <= pad("SR0 " & destRegisterString, instrString'length); + when '1' => instrString <= pad("SR1 " & destRegisterString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when others => instrString <= pad("--------", instrString'length); + end case; + when "101100" => instrString <= pad("OUTPUT " & destRegisterString & " " & sourceConstantString, instrString'length); + when "101101" => instrString <= pad("OUTPUT " & destRegisterString & " (" & sourceRegisterString & ")", instrString'length); + when "101110" => instrString <= pad("STORE " & destRegisterString & " " & sourceConstantString, instrString'length); + when "101111" => instrString <= pad("STORE " & destRegisterString & " (" & sourceRegisterString & ")", instrString'length); + when "101010" => instrString <= pad("RET", instrString'length); + when "101011" => + case branchKind is + when "00" => instrString <= pad("RET Z", instrString'length); + when "01" => instrString <= pad("RET NZ", instrString'length); + when "10" => instrString <= pad("RET C", instrString'length); + when "11" => instrString <= pad("RET NC", instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when "110000" => instrString <= pad("CALL " & branchAddressString, instrString'length); + when "110001" => + case branchKind is + when "00" => instrString <= pad("CALL Z " & branchAddressString, instrString'length); + when "01" => instrString <= pad("CALL NZ " & branchAddressString, instrString'length); + when "10" => instrString <= pad("CALL C " & branchAddressString, instrString'length); + when "11" => instrString <= pad("CALL NC " & branchAddressString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when "110100" => instrString <= pad("JUMP " & branchAddressString, instrString'length); + when "110101" => + case branchKind is + when "00" => instrString <= pad("JUMP Z " & branchAddressString, instrString'length); + when "01" => instrString <= pad("JUMP NZ " & branchAddressString, instrString'length); + when "10" => instrString <= pad("JUMP C " & branchAddressString, instrString'length); + when "11" => instrString <= pad("JUMP NC " & branchAddressString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when others => instrString <= pad("--------", instrString'length); + end case; + + end process; + + -- pragma translate_on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- Instance port mappings. + I_alu : aluAndRegs + GENERIC MAP ( + registerBitNb => registerBitNb, + registerAddressBitNb => registerAddressBitNb, + aluCodeBitNb => aluCodeBitNb, + portAddressBitNb => addressBitNb, + scratchpadAddressBitNb => scratchpadAddressBitNb + ) + PORT MAP ( + addrA => addrA, + addrB => addrB, + aluCode => aluCode, + cIn => cIn, + clock => clock, + instrData => instrData, + instrDataSel => instrDataSel, + portIn => portIn, + portInSel => portInSel, + regWrite => regWrite, + registerFileSel => registerFileSel, + reset => reset, + scratchpadSel => scratchpadSel, + spadIn => spadIn, + cOut => cOut, + portAddr => portRegAddress, + portOut => portOut, + scratchpadAddr => spadRegAddress, + spadOut => spadOut, + zero => zero + ); + I_BR : branchStack + GENERIC MAP ( + programCounterBitNb => programCounterBitNb, + stackPointerBitNb => stackPointerBitNb + ) + PORT MAP ( + clock => clock, + prevPC => prevPC, + progCounter => progCounter_internal, + reset => reset, + storePC => storePC, + storedProgCounter => storedProgCounter + ); + I_ctrl : controller + GENERIC MAP ( + intCodeBitNb => 5, + branchCondBitNb => branchCondBitNb, + opCodeBitNb => opCodeBitNb + ) + PORT MAP ( + branchCond => branchCond, + cOut => cOut, + clock => clock, + en => en, + int => int, + intCode => intCode, + opCode => opCode, + reset => reset, + twoRegInstr => twoRegInstr, + zero => zero, + cIn => cIn, + incPC => incPC, + instrDataSel => instrDataSel, + intAck => intAck, + loadInstrAddress => loadInstrAddress, + loadStoredPC => loadStoredPC, + portInSel => portInSel, + prevPC => prevPC, + readStrobe => readStrobe, + regWrite => regWrite, + registerFileSel => registerFileSel, + scratchpadSel => scratchpadSel, + scratchpadWrite => scratchpadWrite, + storePC => storePC, + writeStrobe => writeStrobe + ); + I_instr : instructionDecoder + GENERIC MAP ( + registerBitNb => registerBitNb, + registerAddressBitNb => registerAddressBitNb, + aluCodeBitNb => aluCodeBitNb, + instructionBitNb => instructionBitNb, + programCounterBitNb => programCounterBitNb, + opCodeBitNb => opCodeBitNb, + branchCondBitNb => branchCondBitNb, + intCodeBitNb => 5, + spadAddressBitNb => scratchpadAddressBitNb, + portAddressBitNb => addressBitNb + ) + PORT MAP ( + instruction => instruction, + addrA => addrA, + addrB => addrB, + aluCode => aluCode, + branchCond => branchCond, + instrAddress => instrAddress, + instrData => instrData, + intCode => intCode, + opCode => opCode, + portAddress => portInstrAddress, + portIndexedSel => portIndexedSel, + spadAddress => spadInstrAddress, + spadIndexedSel => spadIndexedSel, + twoRegInstr => twoRegInstr + ); + I_PC : programCounter + GENERIC MAP ( + programCounterBitNb => programCounterBitNb + ) + PORT MAP ( + clock => clock, + incPC => incPC, + instrAddress => instrAddress, + loadInstrAddress => loadInstrAddress, + loadStoredPC => loadStoredPC, + reset => reset, + storedProgCounter => storedProgCounter, + progCounter => progCounter_internal + ); + + g_scratchpad: IF scratchpadAddressBitNb > 0 GENERATE + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : scratchpad USE ENTITY NanoBlaze.scratchpad; + -- pragma synthesis_on + + BEGIN + I_sPad : scratchpad + GENERIC MAP ( + registerBitNb => registerBitNb, + spadAddressBitNb => scratchpadAddressBitNb + ) + PORT MAP ( + addr => spadAddress, + clock => clock, + dataIn => spadOut, + reset => reset, + write => scratchpadWrite, + dataOut => spadIn + ); + END GENERATE g_scratchpad; + + -- Implicit buffered output assignments + progCounter <= progCounter_internal; + +END struct; + + + + +-- +-- VHDL Architecture SystemOnChip.beamerSoc.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:02:29 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; +LIBRARY AhbLite; + USE AhbLite.ahbLite.all; + +LIBRARY AhbLiteComponents; +LIBRARY NanoBlaze; +LIBRARY SystemOnChip; + +ARCHITECTURE struct OF beamerSoc IS + + -- Architecture declarations + constant programCounterBitNb: positive := 10; + constant instructionBitNb: positive := 26; + constant stackPointerBitNb: positive := 4; + constant registerAddressBitNb: positive := 4; + constant scratchpadAddressBitNb: natural := 0; + + constant signalBitNb: positive := 16; + constant updatePeriodBitNb : positive := 16; + + constant gpioIndex: positive := 1; + constant uartIndex: positive := gpioIndex+1; + constant beamerIndex: positive := uartIndex+1; + + constant ahbMemoryLocation : ahbMemoryLocationVector := ( + gpioIndex => ( + baseAddress => 16#0000#, + addressMask => 16#10000# - 16#0002# + ), + uartIndex => ( + baseAddress => 16#0010#, + addressMask => 16#10000# - 16#0004# + ), + beamerIndex => ( + baseAddress => 16#0020#, + addressMask => 16#10000# - 16#0004# + ), + others => ( + baseAddress => 16#FFFF#, + addressMask => 16#0000# + ) + ); + + -- Internal signal declarations + SIGNAL upEn : std_ulogic; + SIGNAL int : std_uLogic; + SIGNAL upAddress : unsigned(ahbAddressBitNb-1 DOWNTO 0); + SIGNAL upDataOut : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL upDataIn : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL upReadStrobe : std_uLogic; + SIGNAL upWriteStrobe : std_uLogic; + SIGNAL hAddr : unsigned(ahbAddressBitNb-1 DOWNTO 0); + SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0); + SIGNAL hSize : std_ulogic_vector(ahbSizeBitNb-1 DOWNTO 0); + SIGNAL hBurst : std_ulogic_vector(ahbBurstBitNb-1 DOWNTO 0); + SIGNAL hProt : std_ulogic_vector(ahbProtBitNb-1 DOWNTO 0); + SIGNAL hWrite : std_uLogic; + SIGNAL hReady : std_uLogic; + SIGNAL hMastLock : std_uLogic; + SIGNAL hResp : std_uLogic; + SIGNAL hClk : std_uLogic; + SIGNAL hReset_n : std_uLogic; + SIGNAL hSelV : std_ulogic_vector(1 TO ahbSlaveNb); + SIGNAL hRDataV : ahbDataVector; + SIGNAL hReadyV : std_logic_vector(1 TO ahbSlaveNb); + SIGNAL hRespV : std_logic_vector(1 TO ahbSlaveNb); + SIGNAL hSelGpio : std_uLogic; + SIGNAL hRespGpio : std_uLogic; + SIGNAL hReadyGpio : std_uLogic; + SIGNAL hRDataGpio : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hRDataBeamer : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hRDataUart : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hSelBeamer : std_uLogic; + SIGNAL hSelUart : std_uLogic; + SIGNAL hRespUart : std_uLogic; + SIGNAL hRespBeamer : std_uLogic; + SIGNAL hReadyBeamer : std_uLogic; + SIGNAL hReadyUart : std_uLogic; + SIGNAL intAck : std_ulogic; + SIGNAL instruction : std_ulogic_vector(instructionBitNb-1 DOWNTO 0); + SIGNAL programCounter : unsigned(programCounterBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT ahbDecoder + GENERIC ( + ahbMemoryLocation : ahbMemoryLocationVector + ); + PORT ( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hSel : OUT std_ulogic_vector (1 TO ahbSlaveNb) + ); + END COMPONENT; + COMPONENT ahbMasterInterface + PORT ( + clock : IN std_ulogic ; + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic ; + hResp : IN std_uLogic ; + pAddress : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + pDataOut : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + pReadStrobe : IN std_uLogic ; + pWriteStrobe : IN std_uLogic ; + reset : IN std_ulogic ; + hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hBurst : OUT std_ulogic_vector (ahbBurstBitNb-1 DOWNTO 0); + hClk : OUT std_uLogic ; + hMastLock : OUT std_uLogic ; + hProt : OUT std_ulogic_vector (ahbProtBitNb-1 DOWNTO 0); + hReset_n : OUT std_uLogic ; + hSize : OUT std_ulogic_vector (ahbSizeBitNb-1 DOWNTO 0); + hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : OUT std_uLogic ; + pDataIn : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT ahbMultiplexor + PORT ( + hRDataV : IN ahbDataVector ; + hReadyV : IN std_logic_vector (1 TO ahbSlaveNb); + hRespV : IN std_logic_vector (1 TO ahbSlaveNb); + hSel : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic ; + hResp : OUT std_uLogic + ); + END COMPONENT; + COMPONENT ahbMuxConnector + GENERIC ( + index : positive := 1 + ); + PORT ( + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic ; + hResp : IN std_uLogic ; + hSelV : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRDataV : OUT ahbDataVector ; + hReadyV : OUT std_logic_vector (1 TO ahbSlaveNb); + hRespV : OUT std_logic_vector (1 TO ahbSlaveNb); + hSel : OUT std_uLogic + ); + END COMPONENT; + COMPONENT ahbGpio + GENERIC ( + ioNb : positive := 8 + ); + PORT ( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic ; + hReset_n : IN std_uLogic ; + hSel : IN std_uLogic ; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic ; + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic ; + hResp : OUT std_uLogic ; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT ahbUart + GENERIC ( + txFifoDepth : positive := 8; + rxFifoDepth : positive := 1 + ); + PORT ( + RxD : IN std_ulogic ; + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic ; + hReset_n : IN std_uLogic ; + hSel : IN std_uLogic ; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic ; + TxD : OUT std_ulogic ; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic ; + hResp : OUT std_uLogic + ); + END COMPONENT; + COMPONENT nanoProcessor + GENERIC ( + addressBitNb : positive := 8; + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5; + instructionBitNb : positive := 18; + scratchpadAddressBitNb : natural := 4 + ); + PORT ( + clock : IN std_ulogic ; + dataIn : IN std_ulogic_vector (registerBitNb-1 DOWNTO 0); + en : IN std_ulogic ; + instruction : IN std_ulogic_vector (instructionBitNb-1 DOWNTO 0); + int : IN std_uLogic ; + reset : IN std_ulogic ; + dataAddress : OUT unsigned (addressBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (registerBitNb-1 DOWNTO 0); + intAck : OUT std_ulogic ; + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + readStrobe : OUT std_uLogic ; + writeStrobe : OUT std_uLogic + ); + END COMPONENT; + COMPONENT ahbBeamer + GENERIC ( + patternAddressBitNb : positive := 9; + testOutBitNb : positive := 16 + ); + PORT ( + outX : OUT std_ulogic ; + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + outY : OUT std_ulogic ; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + selSinCos : IN std_ulogic ; + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic ; + hSel : IN std_ulogic ; + hReady : OUT std_ulogic ; + hResp : OUT std_ulogic ; + hClk : IN std_ulogic ; + hReset_n : IN std_ulogic + ); + END COMPONENT; + COMPONENT programRom + GENERIC ( + addressBitNb : positive := 8; + dataBitNb : positive := 8 + ); + PORT ( + address : IN unsigned (addressBitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + en : IN std_ulogic ; + reset : IN std_ulogic ; + dataOut : OUT std_ulogic_vector ( dataBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : ahbBeamer USE ENTITY SystemOnChip.ahbBeamer; + FOR ALL : ahbDecoder USE ENTITY AhbLite.ahbDecoder; + FOR ALL : ahbGpio USE ENTITY AhbLiteComponents.ahbGpio; + FOR ALL : ahbMasterInterface USE ENTITY AhbLite.ahbMasterInterface; + FOR ALL : ahbMultiplexor USE ENTITY AhbLite.ahbMultiplexor; + FOR ALL : ahbMuxConnector USE ENTITY AhbLite.ahbMuxConnector; + FOR ALL : ahbUart USE ENTITY AhbLiteComponents.ahbUart; + FOR ALL : nanoProcessor USE ENTITY NanoBlaze.nanoProcessor; + FOR ALL : programRom USE ENTITY SystemOnChip.programRom; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + upEn <= '1'; + + + -- Instance port mappings. + I_dec : ahbDecoder + GENERIC MAP ( + ahbMemoryLocation => ahbMemoryLocation + ) + PORT MAP ( + hAddr => hAddr, + hSel => hSelV + ); + I_mst : ahbMasterInterface + PORT MAP ( + clock => clock, + hRData => hRData, + hReady => hReady, + hResp => hResp, + pAddress => upAddress, + pDataOut => upDataOut, + pReadStrobe => upReadStrobe, + pWriteStrobe => upWriteStrobe, + reset => reset, + hAddr => hAddr, + hBurst => hBurst, + hClk => hClk, + hMastLock => hMastLock, + hProt => hProt, + hReset_n => hReset_n, + hSize => hSize, + hTrans => hTrans, + hWData => hWData, + hWrite => hWrite, + pDataIn => upDataIn + ); + I_mux : ahbMultiplexor + PORT MAP ( + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelV, + hRData => hRData, + hReady => hReady, + hResp => hResp + ); + I_connBeam : ahbMuxConnector + GENERIC MAP ( + index => beamerIndex + ) + PORT MAP ( + hRData => hRDataBeamer, + hReady => hReadyBeamer, + hResp => hRespBeamer, + hSelV => hSelV, + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelBeamer + ); + I_connT : ahbMuxConnector + GENERIC MAP ( + index => gpioIndex + ) + PORT MAP ( + hRData => hRDataGpio, + hReady => hReadyGpio, + hResp => hRespGpio, + hSelV => hSelV, + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelGpio + ); + I_connUart : ahbMuxConnector + GENERIC MAP ( + index => uartIndex + ) + PORT MAP ( + hRData => hRDataUart, + hReady => hReadyUart, + hResp => hRespUart, + hSelV => hSelV, + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelUart + ); + I_GPIO : ahbGpio + GENERIC MAP ( + ioNb => ioNb + ) + PORT MAP ( + hAddr => hAddr, + hClk => hClk, + hReset_n => hReset_n, + hSel => hSelGpio, + hTrans => hTrans, + hWData => hWData, + hWrite => hWrite, + ioIn => ioIn, + hRData => hRDataGpio, + hReady => hReadyGpio, + hResp => hRespGpio, + ioEn => ioEn, + ioOut => ioOut + ); + I_UART : ahbUart + GENERIC MAP ( + txFifoDepth => 8, + rxFifoDepth => 1 + ) + PORT MAP ( + RxD => RxD, + hAddr => hAddr, + hClk => hClk, + hReset_n => hReset_n, + hSel => hSelUart, + hTrans => hTrans, + hWData => hWData, + hWrite => hWrite, + TxD => TxD, + hRData => hRDataUart, + hReady => hReadyUart, + hResp => hRespUart + ); + I_up : nanoProcessor + GENERIC MAP ( + addressBitNb => ahbAddressBitNb, + registerBitNb => ahbDataBitNb, + registerAddressBitNb => registerAddressBitNb, + programCounterBitNb => programCounterBitNb, + stackPointerBitNb => stackPointerBitNb, + instructionBitNb => instructionBitNb, + scratchpadAddressBitNb => scratchpadAddressBitNb + ) + PORT MAP ( + clock => clock, + dataIn => upDataIn, + en => upEn, + instruction => instruction, + int => int, + reset => reset, + dataAddress => upAddress, + dataOut => upDataOut, + intAck => intAck, + progCounter => programCounter, + readStrobe => upReadStrobe, + writeStrobe => upWriteStrobe + ); + I_beamer : ahbBeamer + GENERIC MAP ( + patternAddressBitNb => patternAddressBitNb, + testOutBitNb => testOutBitNb + ) + PORT MAP ( + outX => outX, + hAddr => hAddr, + outY => outY, + hWData => hWData, + selSinCos => selSinCos, + testOut => testOut, + hRData => hRDataBeamer, + hTrans => hTrans, + hWrite => hWrite, + hSel => hSelBeamer, + hReady => hReadyBeamer, + hResp => hRespBeamer, + hClk => hClk, + hReset_n => hReset_n + ); + I_rom : programRom + GENERIC MAP ( + addressBitNb => programCounterBitNb, + dataBitNb => instructionBitNb + ) + PORT MAP ( + address => programCounter, + clock => clock, + en => upEn, + reset => reset, + dataOut => instruction + ); + +END struct; + + + + +-- +-- VHDL Architecture Board.SoC_ebs3.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 10:21:25 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +LIBRARY Board; +LIBRARY Lattice; +LIBRARY SystemOnChip; + +ARCHITECTURE struct OF SoC_ebs3 IS + + -- Architecture declarations + constant ioNb: positive := 8; + constant testOutBitNb: positive := 16; + constant patternAddressBitNb: positive := 9; + + -- Internal signal declarations + SIGNAL clk_sys : std_ulogic; + SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0); + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_uLogic; + SIGNAL reset : std_ulogic; + SIGNAL resetSynch : std_ulogic; + SIGNAL resetSynch_N : std_ulogic; + SIGNAL rxdSynch : std_ulogic; + SIGNAL selSinCos : std_ulogic; + SIGNAL selSinCosSynch : std_ulogic; + SIGNAL testOut : std_ulogic_vector(1 TO testOutBitNb); + + + -- Component Declarations + COMPONENT DFF + PORT ( + CLK : IN std_uLogic ; + CLR : IN std_uLogic ; + D : IN std_uLogic ; + Q : OUT std_uLogic + ); + END COMPONENT; + COMPONENT inverterIn + PORT ( + in1 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT pll + PORT ( + clkIn100M : IN std_ulogic ; + en75M : IN std_ulogic ; + en50M : IN std_ulogic ; + en10M : IN std_ulogic ; + clk60MHz : OUT std_ulogic ; + clk75MHz : OUT std_ulogic ; + clk50MHz : OUT std_ulogic ; + clk10MHz : OUT std_ulogic ; + pllLocked : OUT std_ulogic + ); + END COMPONENT; + COMPONENT beamerSoc + GENERIC ( + ioNb : positive := 8; + testOutBitNb : positive := 16; + patternAddressBitNb : positive := 9 + ); + PORT ( + TxD : OUT std_ulogic ; + RxD : IN std_ulogic ; + outX : OUT std_ulogic ; + outY : OUT std_ulogic ; + selSinCos : IN std_ulogic ; + reset : IN std_ulogic ; + clock : IN std_ulogic ; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + testOut : OUT std_ulogic_vector (1 TO testOutBitNb) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off + FOR ALL : DFF USE ENTITY Board.DFF; + FOR ALL : beamerSoc USE ENTITY SystemOnChip.beamerSoc; + FOR ALL : inverterIn USE ENTITY Board.inverterIn; + FOR ALL : pll USE ENTITY Lattice.pll; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 3 eb3 + LED1 <= testOut(1); + LED2 <= testOut(2); + spare(testOut'range) <= testOut; + spare(testOut'high+1 to spare'high) <= (others => '0'); + + -- HDL Embedded Text Block 4 eb4 + logic1 <= '1'; + + -- HDL Embedded Text Block 5 eb5 + logic0 <= '0'; + + + -- Instance port mappings. + I8 : DFF + PORT MAP ( + CLK => clk_sys, + CLR => resetSynch, + D => RxD, + Q => rxdSynch + ); + I9 : DFF + PORT MAP ( + CLK => clk_sys, + CLR => resetSynch, + D => selSinCos, + Q => selSinCosSynch + ); + I12 : DFF + PORT MAP ( + CLK => clock, + CLR => reset, + D => logic1, + Q => resetSynch_N + ); + I2 : inverterIn + PORT MAP ( + in1 => reset_N, + out1 => reset + ); + I3 : inverterIn + PORT MAP ( + in1 => resetSynch_N, + out1 => resetSynch + ); + I7 : inverterIn + PORT MAP ( + in1 => selSinCos_n, + out1 => selSinCos + ); + I_pll : pll + PORT MAP ( + clkIn100M => clock, + en75M => logic0, + en50M => logic0, + en10M => logic0, + clk60MHz => clk_sys, + clk75MHz => OPEN, + clk50MHz => OPEN, + clk10MHz => OPEN, + pllLocked => OPEN + ); + I_top : beamerSoc + GENERIC MAP ( + ioNb => ioNb, + testOutBitNb => testOutBitNb, + patternAddressBitNb => patternAddressBitNb + ) + PORT MAP ( + TxD => TxD, + RxD => rxdSynch, + outX => xOut, + outY => yOut, + selSinCos => selSinCosSynch, + reset => resetSynch, + clock => clk_sys, + ioEn => OPEN, + ioOut => OPEN, + ioIn => ioIn, + testOut => testOut + ); + +END struct; + + + + diff --git a/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.lpf b/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.lpf new file mode 100644 index 0000000..ae65545 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.lpf @@ -0,0 +1,334 @@ +### For reference, see TN1262 / FPGA-TN-02032 +# .lpf file format is not really documented by Lattice, normally generated through Diamond + + +################ +#### sysCONFIG +################ + +# The BLOCK commands disable tracing of paths within clock domains (impacting overall timing score) +# It can also be used on paths if the TRACE should not consider the clock domain crossing +# like : BLOCK PATH FROM CLKNET "CLK_A" TO CLKNET "CLK_B" ; +BLOCK RESETPATHS ; +BLOCK ASYNCPATHS ; +BLOCK JTAGPATHS ; +BLOCK RD_DURING_WR_PATHS ; + + +# Not comprehensive +# dflt : CONFIG_IOVOLTAGE 1.2, 1.5, 1.8, 2.5(dflt), 3.3 voltage is 3.3V +# dflt : COMPRESS_CONFIG OFF (dflt), ON no bitstream compression +# mod : MCCLK_FREQ 2.4, 4.8, 9.7, 19.4, 38.8, 62 NOR program read @ 62MHz +# mod : MASTER_SPI_PORT DISABLE (dflt), ENABLE master SPI port stays SPI and not GPIOs, other mods disabled by dflt +# dflt : BACKGROUND_RECONFIG - no soft ERC when hot-loading bitstream (due to cosmic rays) +# dflt : DONE_PULL ON (dflt), OFF IPU on DONE pin +# dflt : DONE_EX OFF (dflt), ON not delaying end of the configuration (used for daisy chaining FPGAs) +# mod : DONE_OD OFF (dflt), ON DONE pin as open-drain instead of push-pull +# dflt : CONFIG_SECURE OFF (dflt), ON allows external access to current program +# mod : CONFIG_MODE JTAG (dflt), SSPI, SPI_SERIAL, SPI_DUAL, SPI_QUAD, SLAVE_PARALLEL, SLAVE_SERIAL +# which bus and mode is used to load configuration (for the Lattic IDE) +# dflt : TRANSFR OFF (dflt), ON if using TransFR tool from Lattice +# dflt : WAKE_UP 4 (set DONE=1 before starting user code, dflt for DONE_EX=ON) +# 21 (set DONE=1 once FPGA is already running user code, dflt for DONE_EX=OFF) +# mod : INBUF ON, OFF disable unused input buffers (not sure it impacts the ECP5 family) +SYSCONFIG MCCLK_FREQ=62 MASTER_SPI_PORT=ENABLE DONE_OD=ON CONFIG_MODE=SPI_QUAD INBUF=OFF CONFIG_IOVOLTAGE=3.3 ; +IOBUF ALLPORTS IO_TYPE=LVCMOS33 ; + +################ +#### Labs DB +################ + +### Clock and reset ### +#INPUT_SETUP ALLPORTS 50.000000 ns HOLD 10.000000 ns CLKPORT "CLK" ; +#INPUT_SETUP PORT "nRST" 50.000000 ns CLKPORT "CLK" ; + +FREQUENCY PORT "clock" 100.000000 MHz ; +LOCATE COMP "clock" SITE "K16" ; +IOBUF PORT "clock" PULLMODE=NONE ; + +LOCATE COMP "reset_n" SITE "E13" ; +GSR_NET NET "resetSynch_n"; + + +### LEDs ### +LOCATE COMP "LED1" SITE "T14" ;# red +LOCATE COMP "LED2" SITE "R14" ;# green +LOCATE COMP "LED3" SITE "T15" ;# blue + + +################ +#### SODIMM-200 +################ + +### PP2 ### +LOCATE COMP "xOut" SITE "G3" ; +LOCATE COMP "yOut" SITE "E1" ; +LOCATE COMP "ampOut" SITE "F3" ; +#LOCATE COMP "" SITE "D1" ; +#LOCATE COMP "" SITE "F4" ; +#LOCATE COMP "" SITE "C1" ; +LOCATE COMP "morseIn" SITE "D7" ; +#LOCATE COMP "" SITE "B6" ; +LOCATE COMP "morseEnvelope" SITE "C7" ; +#LOCATE COMP "" SITE "A6" ; # PP2 11 +#LOCATE COMP "" SITE "D8" ; # PP2 13 +#LOCATE COMP "" SITE "B7" ; # PP2 15 +#LOCATE COMP "" SITE "C8" ; # PP2 17 +#LOCATE COMP "" SITE "A7" ; # PP2 19 +#LOCATE COMP "" SITE "E9" ; # PP2 21 +LOCATE COMP "RxD_synch" SITE "A8" ; # PP2 23 +LOCATE COMP "morseOut" SITE "D9" ; # PP2 25 + + +### PP1 ### +#LOCATE COMP "" SITE "A9" ; +#LOCATE COMP "" SITE "D10" ; +#LOCATE COMP "" SITE "A10" ; +#LOCATE COMP "" SITE "C10" ; +#LOCATE COMP "" SITE "B10" ; +#LOCATE COMP "" SITE "C12" ; +#LOCATE COMP "" SITE "B12" ; +#LOCATE COMP "" SITE "D13" ; +#LOCATE COMP "" SITE "A13" ; +#LOCATE COMP "" SITE "M5" ; # PP1 11 +#LOCATE COMP "" SITE "L5" ; # PP1 13 +#LOCATE COMP "" SITE "K5" ; # PP1 15 +#LOCATE COMP "" SITE "H5" ; # PP1 17 +#LOCATE COMP "" SITE "E8" ; # PP1 19 +#LOCATE COMP "" SITE "E5" ; # PP1 21 +LOCATE COMP "selSinCos_n" SITE "E6" ; # PP1 23 +#LOCATE COMP "" SITE "E7" ; # PP1 25 + + +### USB (FTDI2232HL located on the daughterboard) ### +LOCATE COMP "TxD" SITE "A14" ; +IOBUF PORT "TxD" SLEWRATE=FAST ; +LOCATE COMP "RxD" SITE "B14" ; +IOBUF PORT "RxD" PULLMODE=UP ; +#LOCATE COMP "USB_DB_RTS" SITE "B13" ; +#IOBUF PORT "USB_DB_RTS" SLEWRATE=FAST ; +#LOCATE COMP "USB_DB_CTS" SITE "C13" ; +#IOBUF PORT "USB_DB_CTS" PULLMODE=UP ; + + + +################ +#### Extras +################ + + +### SD Flash (External SD card) ### +#LOCATE COMP "SD_DETECT" SITE "G12" ; +#IOBUF PORT "SD_DETECT" PULLMODE=UP ; + +#LOCATE COMP "SD_CMD" SITE "C15" ; +#IOBUF PORT "SD_CMD" SLEWRATE=FAST ; +#LOCATE COMP "SD_CLK" SITE "B15" ; +#IOBUF PORT "SD_CLK" SLEWRATE=FAST ; + +#LOCATE COMP "SD_DTA[0]" SITE "B16" ; +##IOBUF PORT "SD_DTA[0]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[1]" SITE "C16" ; +##IOBUF PORT "SD_DTA[1]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[2]" SITE "F12" ; +##IOBUF PORT "SD_DTA[2]" SLEWRATE=FAST ; +#LOCATE COMP "SD_DTA[3]" SITE "C14" ; +##IOBUF PORT "SD_DTA[3]" SLEWRATE=FAST ; + + +### DRAM ### +#LOCATE COMP "DRAM_ADDR[0]" SITE "J15" ; +#IOBUF PORT "DRAM_ADDR[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[1]" SITE "L16" ; +#IOBUF PORT "DRAM_ADDR[1]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[2]" SITE "L15" ; +#IOBUF PORT "DRAM_ADDR[2]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[3]" SITE "K15" ; +#IOBUF PORT "DRAM_ADDR[3]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[4]" SITE "G15" ; +#IOBUF PORT "DRAM_ADDR[4]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[5]" SITE "F15" ; +#IOBUF PORT "DRAM_ADDR[5]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[6]" SITE "F16" ; +#IOBUF PORT "DRAM_ADDR[6]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[7]" SITE "E16" ; +#IOBUF PORT "DRAM_ADDR[7]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[8]" SITE "E15" ; +#IOBUF PORT "DRAM_ADDR[8]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[9]" SITE "G13" ; +#IOBUF PORT "DRAM_ADDR[9]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[10]" SITE "M16" ; +#IOBUF PORT "DRAM_ADDR[10]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[11]" SITE "F13" ; +#IOBUF PORT "DRAM_ADDR[11]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_ADDR[12]" SITE "D16" ; +#IOBUF PORT "DRAM_ADDR[12]" SLEWRATE=FAST ; + +#LOCATE COMP "DRAM_BA[0]" SITE "L14" ; +#IOBUF PORT "DRAM_BA[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_BA[1]" SITE "L13" ; +#IOBUF PORT "DRAM_BA[1]" SLEWRATE=FAST ; + +#LOCATE COMP "DRAM_CLK" SITE "G14" ; +#IOBUF PORT "DRAM_CLK" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_CKE" SITE "G16" ; +#IOBUF PORT "DRAM_CKE" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nRAS" SITE "M14" ; +#IOBUF PORT "DRAM_nRAS" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nCAS" SITE "K13" ; +#IOBUF PORT "DRAM_nCAS" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nWE" SITE "N16" ; +#IOBUF PORT "DRAM_nWE" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_nCS" SITE "M15" ; + +#LOCATE COMP "DRAM_DQ[0]" SITE "P14" ; +#LOCATE COMP "DRAM_DQ[1]" SITE "R15" ; +#LOCATE COMP "DRAM_DQ[2]" SITE "N14" ; +#LOCATE COMP "DRAM_DQ[3]" SITE "R16" ; +#LOCATE COMP "DRAM_DQ[4]" SITE "J14" ; +#LOCATE COMP "DRAM_DQ[5]" SITE "P15" ; +#LOCATE COMP "DRAM_DQ[6]" SITE "K14" ; +#LOCATE COMP "DRAM_DQ[7]" SITE "P16" ; +#LOCATE COMP "DRAM_DQ[8]" SITE "D14" ; +#LOCATE COMP "DRAM_DQ[9]" SITE "H14" ; +#LOCATE COMP "DRAM_DQ[10]" SITE "H12" ; +#LOCATE COMP "DRAM_DQ[11]" SITE "H13" ; +#LOCATE COMP "DRAM_DQ[12]" SITE "E14" ; +#LOCATE COMP "DRAM_DQ[13]" SITE "H15" ; +#LOCATE COMP "DRAM_DQ[14]" SITE "J13" ; +#LOCATE COMP "DRAM_DQ[15]" SITE "J16" ; + +#LOCATE COMP "DRAM_DQM[0]" SITE "M13" ; +#IOBUF PORT "DRAM_DQM[0]" SLEWRATE=FAST ; +#LOCATE COMP "DRAM_DQM[1]" SITE "F14" ; +#IOBUF PORT "DRAM_DQM[1]" SLEWRATE=FAST ; + + + + +### USB (chip located on the motherboard) ### +#LOCATE COMP "USB_MB_TX" SITE "M11" ; +#IOBUF PORT "USB_MB_TX" SLEWRATE=FAST ; +#LOCATE COMP "USB_MB_RX" SITE "N12" ; +#IOBUF PORT "USB_MB_RX" PULLMODE=UP ; +#LOCATE COMP "USB_MB_RTS" SITE "N11" ; +#IOBUF PORT "USB_MB_RTS" SLEWRATE=FAST ; +#LOCATE COMP "USB_MB_CTS" SITE "M12" ; +#IOBUF PORT "USB_MB_CTS" PULLMODE=UP ; + + +### PMOD1 ### +#LOCATE COMP "dbg_leds[16]" SITE "P1" ; +#LOCATE COMP "dbg_leds[17]" SITE "N4" ; +#LOCATE COMP "dbg_leds[18]" SITE "P2" ; +#LOCATE COMP "dbg_leds[19]" SITE "P5" ; +#LOCATE COMP "dbg_leds[20]" SITE "R1" ; +#LOCATE COMP "dbg_leds[21]" SITE "N5" ; +#LOCATE COMP "dbg_leds[22]" SITE "R2" ; +#LOCATE COMP "dbg_leds[23]" SITE "N6" ; + + +### PMOD2 ### +#LOCATE COMP "dbg_leds[24]" SITE "R3" ; +#LOCATE COMP "dbg_leds[25]" SITE "P11" ; +#LOCATE COMP "dbg_leds[26]" SITE "P12" ; +#LOCATE COMP "dbg_leds[27]" SITE "T3" ; +#LOCATE COMP "dbg_leds[28]" SITE "R4" ; +#LOCATE COMP "dbg_leds[29]" SITE "R12" ; +#LOCATE COMP "dbg_leds[30]" SITE "T13" ; +#LOCATE COMP "dbg_leds[31]" SITE "R5" ; + + +### PMOD3 ### +#LOCATE COMP "dbg_leds[8]" SITE "B2" ; +#LOCATE COMP "dbg_leds[9]" SITE "B3" ; +#LOCATE COMP "dbg_leds[10]" SITE "A4" ; +#LOCATE COMP "dbg_leds[11]" SITE "D4" ; +#LOCATE COMP "dbg_leds[12]" SITE "A2" ; +#LOCATE COMP "dbg_leds[13]" SITE "B4" ; +#LOCATE COMP "dbg_leds[14]" SITE "C3" ; +#LOCATE COMP "dbg_leds[15]" SITE "C4" ; + + +### PMOD4 ### +#LOCATE COMP "dbg_leds[0]" SITE "J4" ; +#LOCATE COMP "dbg_leds[1]" SITE "J5" ; +#LOCATE COMP "dbg_leds[2]" SITE "H4" ; +#LOCATE COMP "dbg_leds[3]" SITE "E4" ; +#LOCATE COMP "dbg_leds[4]" SITE "J3" ; +#LOCATE COMP "dbg_leds[5]" SITE "H3" ; +#LOCATE COMP "dbg_leds[6]" SITE "E3" ; +#LOCATE COMP "dbg_leds[7]" SITE "D3" ; + + +### Ethernet ### +#LOCATE COMP "ETH_CLK_EN" SITE "B1" ; +#LOCATE COMP "ETH_nRESET" SITE "C2" ; + +#LOCATE COMP "ETH_nLED_Y" SITE "F1" ; +#LOCATE COMP "ETH_nLED_G" SITE "G2" ; + +#LOCATE COMP "ETH_MDC" SITE "J1" ; +#LOCATE COMP "ETH_MDIO" SITE "H2" ; +#IOBUF PORT "ETH_MDIO" OPENDRAIN=ON SLEWRATE=FAST ; +#LOCATE COMP "ETH_MDINT" SITE "G1" ; +#IOBUF PORT "ETH_MDINT" SLEWRATE=FAST ; + +#LOCATE COMP "ETH_REF_CLK" SITE "P3" ; + +#LOCATE COMP "ETH_TX_CLK" SITE "M4" ; +#IOBUF PORT "ETH_TX_CLK" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TX_CTL" SITE "N3" ; +#IOBUF PORT "ETH_TX_CTL" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[0]" SITE "M3" ; +#IOBUF PORT "ETH_TXD[0]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[1]" SITE "L4" ; +#IOBUF PORT "ETH_TXD[1]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[2]" SITE "K4" ; +#IOBUF PORT "ETH_TXD[2]" SLEWRATE=FAST ; +#LOCATE COMP "ETH_TXD[3]" SITE "K3" ; +#IOBUF PORT "ETH_TXD[3]" SLEWRATE=FAST ; + +#LOCATE COMP "ETH_RX_CLK" SITE "K1" ; +#LOCATE COMP "ETH_RX_CTL" SITE "K2" ; +#LOCATE COMP "ETH_RXD[0]" SITE "L1" ; +#LOCATE COMP "ETH_RXD[1]" SITE "L2" ; +#LOCATE COMP "ETH_RXD[2]" SITE "M1" ; +#LOCATE COMP "ETH_RXD[3]" SITE "M2" ; + + +### Extras ### +#LOCATE COMP "EXT[1]" SITE "P13" ; +#LOCATE COMP "EXT[2]" SITE "R13" ; +#LOCATE COMP "EXT[3]" SITE "A3" ; +#LOCATE COMP "EXT[4]" SITE "A5" ; +#LOCATE COMP "EXT[5]" SITE "B5" ; +#LOCATE COMP "EXT[6]" SITE "C5" ; +#LOCATE COMP "EXT[7]" SITE "C6" ; +#LOCATE COMP "EXT[8]" SITE "D5" ; +#LOCATE COMP "EXT[9]" SITE "D6" ; +#LOCATE COMP "EXT[10]" SITE "A11" ; +#LOCATE COMP "EXT[11]" SITE "A12" ; +#LOCATE COMP "EXT[12]" SITE "B8" ; +#LOCATE COMP "EXT[13]" SITE "B9" ; +#LOCATE COMP "EXT[14]" SITE "B11" ; +#LOCATE COMP "EXT[15]" SITE "C9" ; +#LOCATE COMP "EXT[16]" SITE "C11" ; +#LOCATE COMP "EXT[17]" SITE "D11" ; +#LOCATE COMP "EXT[18]" SITE "D12" ; +#LOCATE COMP "EXT[19]" SITE "E10" ; +#LOCATE COMP "EXT[20]" SITE "E11" ; +#LOCATE COMP "EXT[21]" SITE "E12" ; +#LOCATE COMP "EXT[22]" SITE "L3" ; +#LOCATE COMP "EXT[23]" SITE "M6" ; +#LOCATE COMP "EXT[24]" SITE "N1" ; +#LOCATE COMP "EXT[25]" SITE "P4" ; +#LOCATE COMP "EXT[26]" SITE "P6" ; +#LOCATE COMP "EXT[27]" SITE "T2" ; +#LOCATE COMP "EXT[28]" SITE "T4" ; +#LOCATE COMP "EXT[29]" SITE "E2" ; +#LOCATE COMP "EXT[30]" SITE "F2" ; +#LOCATE COMP "EXT[31]" SITE "F5" ; +#LOCATE COMP "EXT[32]" SITE "G4" ; +#LOCATE COMP "EXT[33]" SITE "G5" ; +#LOCATE COMP "EXT[34]" SITE "J2" ; diff --git a/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.ucf b/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.ucf new file mode 100644 index 0000000..dae497e --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.ucf @@ -0,0 +1,57 @@ +#------------------------------------------------------------------------------- +# Clock and reset +# +NET "reset_n" LOC = "D3" | PULLUP; +NET "clock" LOC = "A10"; + +#------------------------------------------------------------------------------- +# Buttons & LEDs +# +NET "selSinCos_n" LOC = "A15" | PULLUP; +#NET "button2_n" LOC = "D3" | PULLUP; +NET "LED1" LOC = "B16"; +NET "LED2" LOC = "A16"; + +#------------------------------------------------------------------------------- +# Sigma-delta outputs +# +#NET "xOut" LOC = "G4" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW ; +#NET "yOut" LOC = "G5" | IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW ; +NET "xOut" LOC = "G4" ; +NET "yOut" LOC = "G5" ; + +#------------------------------------------------------------------------------- +# Serial ports, Rx, Tx defined with FPGA as master +# +NET "rxd0" LOC = "V2" ; # female DB9 on J9 +NET "txd0" LOC = "T1" ; +#NET "rxd1" LOC = "U1" ; # male DB9 on J10 +#NET "txd1" LOC = "P1" ; + +#------------------------------------------------------------------------------- +# Debug +# +NET "spare<1>" LOC = "F8" ; +NET "spare<2>" LOC = "F7" ; +NET "spare<3>" LOC = "F9" ; +NET "spare<4>" LOC = "G9" ; +NET "spare<5>" LOC = "E8" ; +NET "spare<6>" LOC = "E7" ; +NET "spare<7>" LOC = "B14"; +NET "spare<8>" LOC = "B13"; +NET "spare<9>" LOC = "B11"; +NET "spare<10>" LOC = "A8" ; +NET "spare<11>" LOC = "C7" ; +NET "spare<12>" LOC = "A14"; +NET "spare<13>" LOC = "A11"; +NET "spare<14>" LOC = "A13"; +NET "spare<15>" LOC = "D7" ; +NET "spare<16>" LOC = "E9" ; +NET "spare<17>" LOC = "F11"; + + +#------------------------------------------------------------------------------- +# Globals +# +#NET "*" IOSTANDARD = LVTTL | DRIVE = 2 | SLEW = SLOW; +NET "*" IOSTANDARD = LVCMOS33; diff --git a/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.vhd b/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.vhd new file mode 100644 index 0000000..75eb9c5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/concat/systemOnChip.vhd @@ -0,0 +1,6031 @@ +-- VHDL Entity Board.SoC_ebs3.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 10:21:25 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY SoC_ebs3 IS + PORT( + RxD : IN std_ulogic; + clock : IN std_ulogic; + reset_N : IN std_ulogic; + selSinCos_n : IN std_ulogic; + LED1 : OUT std_ulogic; + LED2 : OUT std_ulogic; + TxD : OUT std_ulogic; + spare : OUT std_ulogic_vector (1 TO 17); + xOut : OUT std_ulogic; + yOut : OUT std_ulogic + ); + +-- Declarations + +END SoC_ebs3 ; + + + + + +-- VHDL Entity Board.DFF.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:05 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY DFF IS + PORT( + CLK : IN std_uLogic; + CLR : IN std_uLogic; + D : IN std_uLogic; + Q : OUT std_uLogic + ); + +-- Declarations + +END DFF ; + + + + + +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + + + + + +-- VHDL Entity Board.inverterIn.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:07:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +ENTITY inverterIn IS + PORT( + in1 : IN std_uLogic; + out1 : OUT std_uLogic + ); + +-- Declarations + +END inverterIn ; + + + + + +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + + + + + +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454 +-- Module Version: 5.7 +--C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc + +-- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks + +library IEEE; + use IEEE.std_logic_1164.all; +library ECP5U; + use ECP5U.components.all; + +ENTITY pll IS + PORT( + clkIn100M : IN std_ulogic; + en75M : IN std_ulogic; + en50M : IN std_ulogic; + en10M : IN std_ulogic; + clk60MHz : OUT std_ulogic; + clk75MHz : OUT std_ulogic; + clk50MHz : OUT std_ulogic; + clk10MHz : OUT std_ulogic; + pllLocked : OUT std_ulogic + ); + +-- Declarations + +END pll ; + +architecture rtl of pll is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "5"; + attribute LPF_RESISTOR of PLLInst_0 : label is "16"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of rtl : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 59, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 11, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 7, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 9, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 60, + CLKOS2_DIV=> 12, CLKOS_DIV=> 8, CLKOP_DIV=> 10, CLKFB_DIV=> 3, + CLKI_DIV=> 5, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, + ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + clk10MHz <= CLKOS3_t; + clk50MHz <= CLKOS2_t; + clk75MHz <= CLKOS_t; + clk60MHz <= CLKOP_t; +end rtl; + + + + +-- VHDL Entity SystemOnChip.beamerSoc.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY beamerSoc IS + GENERIC( + ioNb : positive := 8; + testOutBitNb : positive := 16; + patternAddressBitNb : positive := 9 + ); + PORT( + TxD : OUT std_ulogic; + RxD : IN std_ulogic; + outX : OUT std_ulogic; + outY : OUT std_ulogic; + selSinCos : IN std_ulogic; + reset : IN std_ulogic; + clock : IN std_ulogic; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + testOut : OUT std_ulogic_vector (1 TO testOutBitNb) + ); + +-- Declarations + +END beamerSoc ; + + + + + +LIBRARY ieee; + USE ieee.std_logic_1164.all; + +PACKAGE ahbLite IS + ------------------------------------------------------------------------------ + -- bus components sizes + constant ahbAddressBitNb : positive := 16; + constant ahbDataBitNb : positive := 16; + constant ahbSlaveNb : positive := 16; + + constant ahbTransBitNb : positive := 2; + constant ahbSizeBitNb : positive := 1; + constant ahbBurstBitNb : positive := 3; + constant ahbProtBitNb : positive := 4; + + ------------------------------------------------------------------------------ + -- bus data vector type + subtype ahbDataType is std_logic_vector(ahbDataBitNb-1 downto 0); + type ahbDataVector is array(1 to ahbSlaveNb) of ahbDataType; + + ------------------------------------------------------------------------------ + -- address decoder + type ahbMemoryLocationType is + record + baseAddress: natural; + addressMask: natural; + end record; + type ahbMemoryLocationVector is array(1 to ahbSlaveNb) of ahbMemoryLocationType; + + ------------------------------------------------------------------------------ + -- bus signals + subtype transferType is std_ulogic_vector(ahbTransBitNb-1 downto 0); + constant transIdle : transferType := "00"; + constant transBusy : transferType := "01"; + constant transNonSeq: transferType := "10"; + constant transSeq : transferType := "11"; + + subtype transferSizeType is std_ulogic_vector(ahbSizeBitNb-1 downto 0); + constant size8 : transferSizeType := "0"; + constant size16 : transferSizeType := "1"; + + subtype burstType is std_ulogic_vector(ahbBurstBitNb-1 downto 0); + constant burstSingle : burstType := "000"; + constant burstIncr : burstType := "001"; + constant burstWrap4 : burstType := "010"; + constant burstIncr4 : burstType := "011"; + constant burstWrap8 : burstType := "100"; + constant burstIncr8 : burstType := "101"; + constant burstWrap16 : burstType := "110"; + constant burstIncr16 : burstType := "111"; + + subtype protectionType is std_ulogic_vector(ahbProtBitNb-1 downto 0); + constant protDefault : protectionType := "0011"; + + ------------------------------------------------------------------------------ + -- log2 + function addressBitNb (addressNb : natural) return natural; + +END ahbLite; + + + + +PACKAGE BODY ahbLite IS + + function addressBitNb (addressNb : natural) return natural is + variable powerOfTwo, bitNb : natural; + begin + powerOfTwo := 1; + bitNb := 0; + while powerOfTwo <= addressNb loop + powerOfTwo := 2 * powerOfTwo; + bitNb := bitNb + 1; + end loop; + return bitNb; + end addressBitNb; + +END ahbLite; + + + + +-- VHDL Entity SystemOnChip.ahbBeamer.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:22 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbBeamer IS + GENERIC( + patternAddressBitNb : positive := 9; + testOutBitNb : positive := 16 + ); + PORT( + outX : OUT std_ulogic; + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + outY : OUT std_ulogic; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + selSinCos : IN std_ulogic; + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic; + hSel : IN std_ulogic; + hReady : OUT std_ulogic; + hResp : OUT std_ulogic; + hClk : IN std_ulogic; + hReset_n : IN std_ulogic + ); + +-- Declarations + +END ahbBeamer ; + + + + + +-- VHDL Entity SystemOnChip.ahbBeamerOperator.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:21 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY ahbBeamerOperator IS + GENERIC( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16 + ); + PORT( + outX : OUT std_ulogic; + run : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + outY : OUT std_ulogic; + selSinCos : IN std_ulogic; + interpolateLin : IN std_ulogic; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + memX : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + newPolynom : OUT std_ulogic + ); + +-- Declarations + +END ahbBeamerOperator ; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCoefficients.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:20 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCoefficients IS + GENERIC( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + +-- Declarations + +END interpolatorCoefficients ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCoefficients IS +BEGIN + + calcCoeffs: process(interpolateLinear, sample1, sample2, sample3, sample4) + begin + if interpolateLinear = '1' then + a <= (others => '0'); + b <= (others => '0'); + c <= resize(2*sample3, c'length) + - resize(2*sample2, c'length); + d <= resize( sample2, d'length); + else + a <= resize( sample4, a'length) + - resize(3*sample3, a'length) + + resize(3*sample2, a'length) + - resize( sample1, a'length); + b <= resize(2*sample1, b'length) + - resize(5*sample2, b'length) + + resize(4*sample3, b'length) + - resize( sample4, b'length); + c <= resize( sample3, c'length) + - resize( sample1, c'length); + d <= resize( sample2, d'length); + end if; + end process calcCoeffs; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity DigitalToAnalogConverter.DAC.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:06:08 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY DAC IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + serialOut : OUT std_ulogic; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END DAC ; + + + + + +ARCHITECTURE masterVersion OF DAC IS + + signal parallelIn1: unsigned(parallelIn'range); + signal integrator: unsigned(parallelIn'high+1 downto 0); + signal quantized: std_ulogic; + +BEGIN + +-- parallelIn1 <= parallelIn; + parallelIn1 <= parallelIn/2 + 2**(parallelIn'length-2); + + integrate: process(reset, clock) + begin + if reset = '1' then + integrator <= (others => '0'); + elsif rising_edge(clock) then + if quantized = '0' then + integrator <= integrator + parallelIn1; + else + integrator <= integrator + parallelIn1 - 2**parallelIn'length; + end if; + end if; + end process integrate; + + quantized <= integrator(integrator'high); + + serialOut <= quantized; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.offsetToUnsigned.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:32 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY offsetToUnsigned IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + +-- Declarations + +END offsetToUnsigned ; + + + + + +ARCHITECTURE masterVersion OF offsetToUnsigned IS + +BEGIN + + unsignedOut <= not(signedIn(signedIn'high)) & unsigned(signedIn(signedIn'high-1 downto 0)); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity WaveformGenerator.sawtoothGen.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 08:02:49 03/11/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sawtoothGen IS + GENERIC( + bitNb : positive := 16 + ); + PORT( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic; + reset : IN std_ulogic; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END sawtoothGen ; + + + + + +ARCHITECTURE masterVersion OF sawtoothGen IS + + signal counter: unsigned(sawtooth'range); + +begin + + count: process(reset, clock) + begin + if reset = '1' then + counter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + counter <= counter + step; + end if; + end if; + end process count; + + sawtooth <= counter; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorCalculatePolynom.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:14 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorCalculatePolynom IS + GENERIC( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + restartPolynom : IN std_ulogic; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorCalculatePolynom ; + + + + + +ARCHITECTURE masterVersion OF interpolatorCalculatePolynom IS + + constant additionalBitNb: positive := 1; + constant internalsBitNb: positive := signalBitNb + 3*oversamplingBitNb + 1 + + additionalBitNb; + signal x: signed(internalsBitNb-1 downto 0); + signal u: signed(internalsBitNb-1 downto 0); + signal v: signed(internalsBitNb-1 downto 0); + signal w: signed(internalsBitNb-1 downto 0); + +BEGIN + + iterativePolynom: process(reset, clock) + begin + if reset = '1' then + x <= (others => '0'); + u <= (others => '0'); + v <= (others => '0'); + w <= (others => '0'); + sampleOut <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + if restartPolynom = '1' then + x <= shift_left(resize(2*d, x'length), 3*oversamplingBitNb); + u <= resize(a, u'length) + + shift_left(resize(b, u'length), oversamplingBitNb) + + shift_left(resize(c, u'length), 2*oversamplingBitNb); + v <= resize(6*a, v'length) + + shift_left(resize(2*b, v'length), oversamplingBitNb); + w <= resize(6*a, w'length); + sampleOut <= resize(d, sampleOut'length); + else + x <= x + u; + u <= u + v; + v <= v + w; + sampleOut <= resize( + shift_right(x, 3*oversamplingBitNb+1), sampleOut'length + ); + -- limit overflow + if x(x'high downto x'high-additionalBitNb) = "01" then + sampleOut <= not shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + -- limit underflow + if x(x'high downto x'high-additionalBitNb) = "10" then + sampleOut <= shift_left( + resize("10", sampleOut'length), sampleOut'length-2 + ); + end if; + end if; + end if; + end if; + end process iterativePolynom; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SystemOnChip.sinCosTable.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY sinCosTable IS + GENERIC( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0); + cosine : OUT signed (outputBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END sinCosTable ; + + + + + +ARCHITECTURE masterVersion OF sinCosTable IS + + signal changeSignSine : std_uLogic; + signal changeSignCosine : std_uLogic; + signal flipPhase : std_uLogic; + signal phaseTableAddress1 : unsigned(tableAddressBitNb-1 downto 0); + signal phaseTableAddress2 : unsigned(phaseTableAddress1'range); + signal quarterSine : signed(sine'range); + signal quarterCosine : signed(cosine'range); + +BEGIN + + changeSignSine <= phase(phase'high); + changeSignCosine <= phase(phase'high) xor phase(phase'high-1); + flipPhase <= phase(phase'high-1); + + phaseTableAddress1 <= phase(phase'high-2 downto phase'high-2-tableAddressBitNb+1); + + checkPhase: process(flipPhase, phaseTableAddress1) + begin + if flipPhase = '0' then + phaseTableAddress2 <= phaseTableAddress1; + else + phaseTableAddress2 <= 0 - phaseTableAddress1; + end if; + end process checkPhase; + + + quarterTableSine: process(phaseTableAddress2, flipPhase) + begin + case to_integer(phaseTableAddress2) is + when 0 => if flipPhase = '0' then + quarterSine <= to_signed(16#0000#, quarterSine'length); + else + quarterSine <= to_signed(16#7FFF#, quarterSine'length); + end if; + when 1 => quarterSine <= to_signed(16#18F9#, quarterSine'length); + when 2 => quarterSine <= to_signed(16#30FB#, quarterSine'length); + when 3 => quarterSine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterSine <= to_signed(16#5A82#, quarterSine'length); + when 5 => quarterSine <= to_signed(16#6A6D#, quarterSine'length); + when 6 => quarterSine <= to_signed(16#7641#, quarterSine'length); + when 7 => quarterSine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterSine <= (others => '-'); + end case; + end process quarterTableSine; + + + quarterTableCosine: process(phaseTableAddress2, flipPhase) + begin + case to_integer(phaseTableAddress2) is + when 0 => if flipPhase = '1' then + quarterCosine <= to_signed(16#0000#, quarterSine'length); + else + quarterCosine <= to_signed(16#7FFF#, quarterSine'length); + end if; + when 7 => quarterCosine <= to_signed(16#18F9#, quarterSine'length); + when 6 => quarterCosine <= to_signed(16#30FB#, quarterSine'length); + when 5 => quarterCosine <= to_signed(16#471C#, quarterSine'length); + when 4 => quarterCosine <= to_signed(16#5A82#, quarterSine'length); + when 3 => quarterCosine <= to_signed(16#6A6D#, quarterSine'length); + when 2 => quarterCosine <= to_signed(16#7641#, quarterSine'length); + when 1 => quarterCosine <= to_signed(16#7D89#, quarterSine'length); + when others => quarterCosine <= (others => '-'); + end case; + end process quarterTableCosine; + + + checkSignSine: process(changeSignSine, quarterSine) + begin + if changeSignSine = '0' then + sine <= quarterSine; + else + sine <= 0 - quarterSine; + end if; + end process checkSignSine; + + + checkSignCosine: process(changeSignCosine, quarterCosine) + begin + if changeSignCosine = '0' then + cosine <= quarterCosine; + else + cosine <= 0 - quarterCosine; + end if; + end process checkSignCosine; + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SystemOnChip.periphSpeedController.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphSpeedController IS + GENERIC( + updatePeriodBitNb : positive := 16 + ); + PORT( + enableOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + enableIn : IN std_ulogic + ); + +-- Declarations + +END periphSpeedController ; + + + + + +ARCHITECTURE masterVersion OF periphSpeedController IS + + signal enableCounter: unsigned(updatePeriod'range); + signal endOfCount: std_uLogic; + +BEGIN + + count: process(reset, clock) + begin + if reset = '1' then + enableCounter <= (others => '0'); + elsif rising_edge(clock) then + if (endOfCount = '0') and (enableIn = '1') then + enableCounter <= enableCounter - 1; + else + enableCounter <= updatePeriod; + end if; + end if; + end process count; + + testEndOfCount: process(enableCounter) + begin + if enableCounter = 0 then + endOfCount <= '1'; + else + endOfCount <= '0'; + end if; + end process testEndOfCount; + + enableOut <= endOfCount and enableIn; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SplineInterpolator.interpolatorShiftRegister.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:24 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorShiftRegister IS + GENERIC( + signalBitNb : positive := 16 + ); + PORT( + clock : IN std_ulogic; + reset : IN std_ulogic; + shiftSamples : IN std_ulogic; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END interpolatorShiftRegister ; + + + + + +ARCHITECTURE masterVersion OF interpolatorShiftRegister IS + + -- signal sample4_int: signed(sampleIn'range); + -- signal sample3_int: signed(sampleIn'range); + -- signal sample2_int: signed(sampleIn'range); + -- signal sample1_int: signed(sampleIn'range); + + type samplesArray is array(3 downto 0) of signed(sampleIn'range); + signal samples: samplesArray; + +begin + + shiftThem: process(reset, clock) + begin + if reset = '1' then + samples <= (others=>(others=>'0')); + -- sample1_int <= (others => '0'); + -- sample2_int <= (others => '0'); + -- sample3_int <= (others => '0'); + -- sample4_int <= (others => '0'); + elsif rising_edge(clock) then + if shiftSamples = '1' then + -- sample1_int <= sample2_int; + -- sample2_int <= sample3_int; + -- sample3_int <= sample4_int; + -- sample4_int <= sampleIn; + samples(0) <= samples(1); + samples(1) <= samples(2); + samples(2) <= samples(3); + samples(3) <= sampleIn; + end if; + end if; + end process shiftThem; + + sample4 <= samples(3); + sample3 <= samples(2); + sample2 <= samples(1); + sample1 <= samples(0); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SplineInterpolator.interpolatorTrigger.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 13:00:28 02/19/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY interpolatorTrigger IS + GENERIC( + counterBitNb : positive := 4 + ); + PORT( + triggerOut : OUT std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + en : IN std_ulogic + ); + +-- Declarations + +END interpolatorTrigger ; + + + + + +ARCHITECTURE masterVersion OF interpolatorTrigger IS + + signal triggerCounter: unsigned(counterBitNb-1 downto 0); + +BEGIN + + count: process(reset, clock) + begin + if reset = '1' then + triggerCounter <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + triggerCounter <= triggerCounter + 1; + end if; + end if; + end process count; + + trig: process(triggerCounter, en) + begin + if triggerCounter = 0 then + triggerOut <= en; + else + triggerOut <= '0'; + end if; + end process trig; + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture SystemOnChip.ahbBeamerOperator.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:01:08 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; + +-- LIBRARY DigitalToAnalogConverter; +-- LIBRARY SplineInterpolator; +-- LIBRARY SystemOnChip; +-- LIBRARY WaveformGenerator; + +ARCHITECTURE struct OF ahbBeamerOperator IS + + -- Architecture declarations + constant coeffBitNb : positive := signalBitNb+3+1; + constant sampleCountBitNb : positive := 8; + constant patternAddressBitNb : positive := 8; + -- sinewave generator + constant tableAddressBitNb : positive := 3; + constant phaseBitNb : positive := sampleCountBitNb + tableAddressBitNb + 2; + + -- Internal signal declarations + SIGNAL aX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL aY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL bX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL bY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL cX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL cY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL cosine : signed(signalBitNb-1 DOWNTO 0); + SIGNAL dX : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL dY : signed(coeffBitNb-1 DOWNTO 0); + SIGNAL interpolateLinear : std_ulogic; + SIGNAL interpolationEn : std_ulogic; + SIGNAL interpolationEnable : std_ulogic; + SIGNAL phase : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL sampleX : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX1 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX2 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX3 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleX4 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY1 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY2 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY3 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sampleY4 : signed(signalBitNb-1 DOWNTO 0); + SIGNAL samplesX : signed(signalBitNb-1 DOWNTO 0); + SIGNAL samplesY : signed(signalBitNb-1 DOWNTO 0); + SIGNAL sine : signed(signalBitNb-1 DOWNTO 0); + SIGNAL step : unsigned(phaseBitNb-1 DOWNTO 0); + SIGNAL unsignedX : unsigned(signalBitNb-1 DOWNTO 0); + SIGNAL unsignedY : unsigned(signalBitNb-1 DOWNTO 0); + + -- Implicit buffer signal declarations + SIGNAL newPolynom_internal : std_ulogic; + + + -- Component Declarations + COMPONENT DAC + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + serialOut : OUT std_ulogic ; + parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorCalculatePolynom + GENERIC ( + signalBitNb : positive := 16; + coeffBitNb : positive := 16; + oversamplingBitNb : positive := 8 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + restartPolynom : IN std_ulogic ; + d : IN signed (coeffBitNb-1 DOWNTO 0); + sampleOut : OUT signed (signalBitNb-1 DOWNTO 0); + c : IN signed (coeffBitNb-1 DOWNTO 0); + b : IN signed (coeffBitNb-1 DOWNTO 0); + a : IN signed (coeffBitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorCoefficients + GENERIC ( + bitNb : positive := 16; + coeffBitNb : positive := 16 + ); + PORT ( + sample1 : IN signed (bitNb-1 DOWNTO 0); + sample2 : IN signed (bitNb-1 DOWNTO 0); + sample3 : IN signed (bitNb-1 DOWNTO 0); + sample4 : IN signed (bitNb-1 DOWNTO 0); + a : OUT signed (coeffBitNb-1 DOWNTO 0); + b : OUT signed (coeffBitNb-1 DOWNTO 0); + c : OUT signed (coeffBitNb-1 DOWNTO 0); + d : OUT signed (coeffBitNb-1 DOWNTO 0); + interpolateLinear : IN std_ulogic + ); + END COMPONENT; + COMPONENT interpolatorShiftRegister + GENERIC ( + signalBitNb : positive := 16 + ); + PORT ( + clock : IN std_ulogic ; + reset : IN std_ulogic ; + shiftSamples : IN std_ulogic ; + sampleIn : IN signed (signalBitNb-1 DOWNTO 0); + sample1 : OUT signed (signalBitNb-1 DOWNTO 0); + sample2 : OUT signed (signalBitNb-1 DOWNTO 0); + sample3 : OUT signed (signalBitNb-1 DOWNTO 0); + sample4 : OUT signed (signalBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT interpolatorTrigger + GENERIC ( + counterBitNb : positive := 4 + ); + PORT ( + triggerOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + en : IN std_ulogic + ); + END COMPONENT; + COMPONENT offsetToUnsigned + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + unsignedOut : OUT unsigned (bitNb-1 DOWNTO 0); + signedIn : IN signed (bitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT periphSpeedController + GENERIC ( + updatePeriodBitNb : positive := 16 + ); + PORT ( + enableOut : OUT std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + enableIn : IN std_ulogic + ); + END COMPONENT; + COMPONENT sinCosTable + GENERIC ( + inputBitNb : positive := 16; + outputBitNb : positive := 16; + tableAddressBitNb : positive := 3 + ); + PORT ( + sine : OUT signed (outputBitNb-1 DOWNTO 0); + phase : IN unsigned (inputBitNb-1 DOWNTO 0); + cosine : OUT signed (outputBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT sawtoothGen + GENERIC ( + bitNb : positive := 16 + ); + PORT ( + sawtooth : OUT unsigned (bitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + reset : IN std_ulogic ; + step : IN unsigned (bitNb-1 DOWNTO 0); + en : IN std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : DAC USE ENTITY DigitalToAnalogConverter.DAC; +-- FOR ALL : interpolatorCalculatePolynom USE ENTITY SplineInterpolator.interpolatorCalculatePolynom; +-- FOR ALL : interpolatorCoefficients USE ENTITY SplineInterpolator.interpolatorCoefficients; +-- FOR ALL : interpolatorShiftRegister USE ENTITY SplineInterpolator.interpolatorShiftRegister; +-- FOR ALL : interpolatorTrigger USE ENTITY SplineInterpolator.interpolatorTrigger; +-- FOR ALL : offsetToUnsigned USE ENTITY SplineInterpolator.offsetToUnsigned; +-- FOR ALL : periphSpeedController USE ENTITY SystemOnChip.periphSpeedController; +-- FOR ALL : sawtoothGen USE ENTITY WaveformGenerator.sawtoothGen; +-- FOR ALL : sinCosTable USE ENTITY SystemOnChip.sinCosTable; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + samplesY <= sine when selSinCos = '1' + else signed(memY); + + -- HDL Embedded Text Block 2 eb2 + samplesX <= cosine when selSinCos = '1' + else signed(memX); + + -- HDL Embedded Text Block 4 eb4 + step <= to_unsigned(1, step'length); + + -- HDL Embedded Text Block 5 eb5 + interpolationEnable <= '1' when selSinCos = '1' + else interpolationEn; + interpolateLinear <= '0' when selSinCos = '1' + else interpolateLin; + --interpolateLinear <= interpolateLin; + + + -- Instance port mappings. + I_dacx : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => outX, + parallelIn => unsignedX, + clock => clock, + reset => reset + ); + I_dacy : DAC + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + serialOut => outY, + parallelIn => unsignedY, + clock => clock, + reset => reset + ); + I_polyx : interpolatorCalculatePolynom + GENERIC MAP ( + signalBitNb => signalBitNb, + coeffBitNb => coeffBitNb, + oversamplingBitNb => sampleCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + restartPolynom => newPolynom_internal, + d => dX, + sampleOut => sampleX, + c => cX, + b => bX, + a => aX, + en => interpolationEnable + ); + I_polyy : interpolatorCalculatePolynom + GENERIC MAP ( + signalBitNb => signalBitNb, + coeffBitNb => coeffBitNb, + oversamplingBitNb => sampleCountBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + restartPolynom => newPolynom_internal, + d => dY, + sampleOut => sampleY, + c => cY, + b => bY, + a => aY, + en => interpolationEnable + ); + I_coeffx : interpolatorCoefficients + GENERIC MAP ( + bitNb => signalBitNb, + coeffBitNb => coeffBitNb + ) + PORT MAP ( + sample1 => sampleX1, + sample2 => sampleX2, + sample3 => sampleX3, + sample4 => sampleX4, + a => aX, + b => bX, + c => cX, + d => dX, + interpolateLinear => interpolateLinear + ); + I_coeffy : interpolatorCoefficients + GENERIC MAP ( + bitNb => signalBitNb, + coeffBitNb => coeffBitNb + ) + PORT MAP ( + sample1 => sampleY1, + sample2 => sampleY2, + sample3 => sampleY3, + sample4 => sampleY4, + a => aY, + b => bY, + c => cY, + d => dY, + interpolateLinear => interpolateLinear + ); + I_srx : interpolatorShiftRegister + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + shiftSamples => newPolynom_internal, + sampleIn => samplesX, + sample1 => sampleX1, + sample2 => sampleX2, + sample3 => sampleX3, + sample4 => sampleX4 + ); + I_sry : interpolatorShiftRegister + GENERIC MAP ( + signalBitNb => signalBitNb + ) + PORT MAP ( + clock => clock, + reset => reset, + shiftSamples => newPolynom_internal, + sampleIn => samplesY, + sample1 => sampleY1, + sample2 => sampleY2, + sample3 => sampleY3, + sample4 => sampleY4 + ); + I_trig : interpolatorTrigger + GENERIC MAP ( + counterBitNb => sampleCountBitNb + ) + PORT MAP ( + triggerOut => newPolynom_internal, + clock => clock, + reset => reset, + en => interpolationEnable + ); + I_offsx : offsetToUnsigned + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + unsignedOut => unsignedX, + signedIn => sampleX + ); + I_offsy : offsetToUnsigned + GENERIC MAP ( + bitNb => signalBitNb + ) + PORT MAP ( + unsignedOut => unsignedY, + signedIn => sampleY + ); + I_speed : periphSpeedController + GENERIC MAP ( + updatePeriodBitNb => updatePeriodBitNb + ) + PORT MAP ( + enableOut => interpolationEn, + clock => clock, + reset => reset, + updatePeriod => updatePeriod, + enableIn => run + ); + I_sin : sinCosTable + GENERIC MAP ( + inputBitNb => phaseBitNb, + outputBitNb => signalBitNb, + tableAddressBitNb => tableAddressBitNb + ) + PORT MAP ( + sine => sine, + phase => phase, + cosine => cosine + ); + I_phase : sawtoothGen + GENERIC MAP ( + bitNb => phaseBitNb + ) + PORT MAP ( + sawtooth => phase, + clock => clock, + reset => reset, + step => step, + en => interpolationEnable + ); + + -- Implicit buffered output assignments + newPolynom <= newPolynom_internal; + +END struct; + + + + +-- VHDL Entity SystemOnChip.ahbBeamerRegisters.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:21 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbBeamerRegisters IS + GENERIC( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16; + patternAddressBitNb : positive := 8; + testOutBitNb : positive := 16 + ); + PORT( + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + memX : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + run : OUT std_ulogic; + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + interpolateLin : OUT std_ulogic; + newPolynom : IN std_ulogic; + hClk : IN std_ulogic; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + hReset_n : IN std_ulogic; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic; + hSel : IN std_ulogic; + hReady : OUT std_ulogic; + hResp : OUT std_ulogic + ); + +-- Declarations + +END ahbBeamerRegisters ; + + + + + +-- VHDL Entity SystemOnChip.blockRAMAddressCounter.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY blockRAMAddressCounter IS + GENERIC( + addressBitNb : positive := 8 + ); + PORT( + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + updateMem : IN std_ulogic; + addr : OUT unsigned (addressBitNb-1 DOWNTO 0); + patternSize : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END blockRAMAddressCounter ; + + + + + +ARCHITECTURE masterVersion OF blockRAMAddressCounter IS + + signal updateMemDelayed : std_ulogic; + signal updateMemChanging : std_ulogic; + signal addressInt : unsigned(addr'range); + +BEGIN + + delay: process(reset, clock) + begin + if reset = '1' then + updateMemDelayed <= '0'; + elsif rising_edge(clock) then + updateMemDelayed <= updateMem; + end if; + end process delay; + + updateMemChanging <= '1' when (updateMem /= updateMemDelayed) + else '0'; + + count: process(reset, clock) + begin + if reset = '1' then + addressInt <= (others => '0'); + elsif rising_edge(clock) then + if updateMemChanging = '1' then + addressInt <= (others => '0'); + elsif en = '1' then + if updateMem = '1' then + addressInt <= addressInt + 1; + else + if addressInt < patternSize - 1 then + addressInt <= addressInt + 1; + else + addressInt <= (others => '0'); + end if; + end if; + end if; + end if; + end process count; + + addr <= addressInt; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SystemOnChip.periphControlReg.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphControlReg IS + GENERIC( + dataBitNb : positive := 16; + patternSizeBitNb : positive := 8 + ); + PORT( + run : OUT std_ulogic; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + updatePattern : OUT std_ulogic; + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + write : IN std_ulogic; + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + interpolateLinear : OUT std_ulogic; + patternSize : OUT unsigned (patternSizeBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END periphControlReg ; + + + + + +ARCHITECTURE masterVersion OF periphControlReg IS + + constant runId : natural := 0; + constant updatePatternId : natural := 1; + constant interpolateLinearId : natural := 2; + constant patternSizeHighId : natural := 15; + + signal runInt : std_ulogic; + signal updatePatternInt : std_ulogic; + signal interpolateLinearInt : std_ulogic; + signal patternSizeInt : std_ulogic_vector(patternSize'range); + + signal dataOutReg : std_ulogic_vector(dataOut'range); + +BEGIN + + store: process(reset, clock) + begin + if reset = '1' then + runInt <= '0'; + updatePatternInt <= '0'; + interpolateLinearInt <= '0'; + patternSizeInt <= (others => '0'); + elsif rising_edge(clock) then + if (en = '1') and (write = '1') then + runInt <= dataIn(runId); + updatePatternInt <= dataIn(updatePatternId); + interpolateLinearInt <= dataIn(interpolateLinearId); + patternSizeInt <= + dataIn(patternSizeHighId downto patternSizeHighId-patternSize'length+1); + end if; + end if; + end process store; + + run <= runInt; + updatePattern <= updatePatternInt; + interpolateLinear <= interpolateLinearInt; + patternSize <= unsigned(patternSizeInt); + + process(runInt, updatePatternInt, interpolateLinearInt, patternSizeInt) + begin + dataOutReg <= (others => '-'); + dataOutReg(runId) <= runInt; + dataOutReg(updatePatternId) <= updatePatternInt; + dataOutReg(interpolateLinearId) <= interpolateLinearInt; + dataOutReg(patternSizeHighId downto patternSizeHighId-patternSize'length+1) + <= patternSizeInt; + end process; + + dataOut <= std_logic_vector(dataOutReg) when en = '1' + else (others => 'Z'); + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity SystemOnChip.blockRAMControl.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY blockRAMControl IS + PORT( + memWr : OUT std_ulogic; + sel : IN std_ulogic; + memEn : OUT std_ulogic; + update : IN std_ulogic; + wr : IN std_ulogic; + cntIncr : OUT std_ulogic; + newSample : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic + ); + +-- Declarations + +END blockRAMControl ; + + + + + +ARCHITECTURE masterVersion OF blockRAMControl IS + + signal writeDelayed: std_ulogic; + signal writePulse: std_ulogic; + signal memWr1: std_ulogic; + +BEGIN + + delayWrPulse: process(reset, clock) + begin + if reset = '1' then + writeDelayed <= '0'; + elsif rising_edge(clock) then + writeDelayed <= wr; + end if; + end process delayWrPulse; + + writePulse <= '1' when (wr='1') and (writeDelayed='0') + else '0'; + + cntIncr <= '1' when ( (update = '0') and (newSample = '1') ) + or ( (update = '1') and (writePulse = '1') and (sel = '1') ) + else '0'; + + memWr1 <= '1' when (update = '1') and (writePulse = '1') and (sel = '1') + else '0'; + +-- delayMemWrPulse: process(reset, clock) +-- begin +-- if reset = '1' then +-- memWr <= '0'; +-- elsif rising_edge(clock) then +-- memWr <= memWr1; +-- end if; +-- end process delayMemWrPulse; + memWr <= memWr1; + + memEn <= '1' when (sel = '1') or (update = '0') + else '0'; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SystemOnChip.periphAddressDecoder.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphAddressDecoder IS + GENERIC( + addressBitNb : positive := 24 + ); + PORT( + selControl : OUT std_ulogic; + addr : IN unsigned (addressBitNb-1 DOWNTO 0); + selSpeed : OUT std_ulogic; + selX : OUT std_ulogic; + selY : OUT std_ulogic; + selZ : OUT std_ulogic + ); + +-- Declarations + +END periphAddressDecoder ; + + + + + +ARCHITECTURE masterVersion OF periphAddressDecoder IS +BEGIN + + decode: process(addr) + begin + selControl <= '0'; + selSpeed <= '0'; + selX <= '0'; + selY <= '0'; + selZ <= '0'; + case to_integer(addr(3 downto 0)) is + when 16#00# => selControl <= '1'; + when 16#01# => selSpeed <= '1'; + when 16#02# => selX <= '1'; + when 16#03# => selY <= '1'; + when 16#04# => selZ <= '1'; + when others => null; + end case; + end process decode; + +END ARCHITECTURE masterVersion; + + + + + +-- VHDL Entity SystemOnChip.blockRAM.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY blockRAM IS + GENERIC( + addressBitNb : positive := 8; + dataBitNb : positive := 16; + initFileSpec : string := "ramInit.txt" + ); + PORT( + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + write : IN std_ulogic; + addr : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END blockRAM ; + + + + + +USE std.textio.all; + +ARCHITECTURE Spartan3E OF blockRAM IS + + subtype registerType is std_ulogic_vector(dataBitNb-1 downto 0); + type memoryType is array (0 to 2**addressBitNb-1) of registerType; + + -- Define function to create initvalue signal + impure function ReadRamContentFromFile(ramContentFileSpec : in string) return memoryType is + FILE ramContentFile : text open read_mode is ramContentFileSpec; + variable ramContentFileLine : line; + variable ramContent : memoryType; + variable ramCurrentWord : bit_vector(registerType'range); + variable index : natural := 0; --241; + begin + for index in ramContent'range loop +-- while not endfile(ramContentFile) loop + readline(ramContentFile, ramContentFileLine); + read(ramContentFileLine, ramCurrentWord); + ramContent(index) := std_ulogic_vector(to_stdlogicvector(ramCurrentWord)); +-- index := index + 1; + end loop; + return ramContent; + end function; + + shared variable memoryArray: memoryType := ReadRamContentFromFile(initFileSpec); + +BEGIN + + portA: process(clock) + begin + if rising_edge(clock) then + if (en = '1') then + if (write = '1') then + memoryArray(to_integer(addr)) := dataIn; + dataOut <= dataIn; + else + dataOut <= memoryArray(to_integer(addr)); + end if; + end if; + end if; + end process portA; + +END ARCHITECTURE Spartan3E; + + + + +-- VHDL Entity SystemOnChip.periphSpeedReg.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY periphSpeedReg IS + GENERIC( + dataBitNb : positive := 16; + updatePeriodBitNb : positive := 16 + ); + PORT( + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic; + clock : IN std_ulogic; + reset : IN std_ulogic; + write : IN std_ulogic + ); + +-- Declarations + +END periphSpeedReg ; + + + + + +ARCHITECTURE masterVersion OF periphSpeedReg IS + + signal updatePeriodInt: unsigned(updatePeriod'range); + +BEGIN + + store: process(reset, clock) + begin + if reset = '1' then + updatePeriodInt <= (others => '0'); + elsif rising_edge(clock) then + if en = '1' then + if write = '1' then + updatePeriodInt <= unsigned(dataIn(updatePeriodInt'range)); + end if; + end if; + end if; + end process store; + + updatePeriod <= updatePeriodInt; + + writeBack: process(en, updatePeriodInt) + begin + if en = '1' then + dataOut <= (others => '-'); + dataOut(updatePeriodInt'range) <= std_logic_vector(updatePeriodInt); + else + dataOut <= (others => 'Z'); + end if; + end process writeBack; + +END ARCHITECTURE masterVersion; + + + + +-- +-- VHDL Architecture SystemOnChip.ahbBeamerRegisters.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:01:22 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; + +-- LIBRARY SystemOnChip; + +ARCHITECTURE struct OF ahbBeamerRegisters IS + + -- Architecture declarations + constant addressBitNb: positive := hAddr'length; + constant dataBitNb : positive := hWData'length; + + -- Internal signal declarations + SIGNAL clock : std_ulogic; + SIGNAL reset : std_ulogic; + SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0); + SIGNAL addrX : unsigned(patternAddressBitNb-1 DOWNTO 0); + SIGNAL addrY : unsigned(patternAddressBitNb-1 DOWNTO 0); + SIGNAL cntIncrX : std_ulogic; + SIGNAL cntIncrY : std_ulogic; + SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0); + SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0); + SIGNAL memEnX : std_ulogic; + SIGNAL memEnY : std_ulogic; + SIGNAL memWrX : std_ulogic; + SIGNAL memWrY : std_ulogic; + SIGNAL patternSize : unsigned(patternAddressBitNb-1 DOWNTO 0); + SIGNAL selControl : std_ulogic; + SIGNAL selSpeed : std_ulogic; + SIGNAL selX : std_ulogic; + SIGNAL selY : std_ulogic; + SIGNAL updatePattern : std_ulogic; + SIGNAL write : std_ulogic; + SIGNAL memDataIn : std_ulogic_vector(signalBitNb-1 DOWNTO 0); + SIGNAL run_int : std_ulogic; + SIGNAL interpolateLin_int : std_ulogic; + + + -- Component Declarations + COMPONENT blockRAM + GENERIC ( + addressBitNb : positive := 8; + dataBitNb : positive := 16; + initFileSpec : string := "ramInit.txt" + ); + PORT ( + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + write : IN std_ulogic ; + addr : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT blockRAMAddressCounter + GENERIC ( + addressBitNb : positive := 8 + ); + PORT ( + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + updateMem : IN std_ulogic ; + addr : OUT unsigned (addressBitNb-1 DOWNTO 0); + patternSize : IN unsigned (addressBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT blockRAMControl + PORT ( + memWr : OUT std_ulogic ; + sel : IN std_ulogic ; + memEn : OUT std_ulogic ; + update : IN std_ulogic ; + wr : IN std_ulogic ; + cntIncr : OUT std_ulogic ; + newSample : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic + ); + END COMPONENT; + COMPONENT periphAddressDecoder + GENERIC ( + addressBitNb : positive := 24 + ); + PORT ( + selControl : OUT std_ulogic ; + addr : IN unsigned (addressBitNb-1 DOWNTO 0); + selSpeed : OUT std_ulogic ; + selX : OUT std_ulogic ; + selY : OUT std_ulogic ; + selZ : OUT std_ulogic + ); + END COMPONENT; + COMPONENT periphControlReg + GENERIC ( + dataBitNb : positive := 16; + patternSizeBitNb : positive := 8 + ); + PORT ( + run : OUT std_ulogic ; + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + updatePattern : OUT std_ulogic ; + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + write : IN std_ulogic ; + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + interpolateLinear : OUT std_ulogic ; + patternSize : OUT unsigned (patternSizeBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT periphSpeedReg + GENERIC ( + dataBitNb : positive := 16; + updatePeriodBitNb : positive := 16 + ); + PORT ( + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + dataIn : IN std_ulogic_vector (dataBitNb-1 DOWNTO 0); + dataOut : OUT std_logic_vector (dataBitNb-1 DOWNTO 0); + en : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + write : IN std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : blockRAM USE ENTITY SystemOnChip.blockRAM; +-- FOR ALL : blockRAMAddressCounter USE ENTITY SystemOnChip.blockRAMAddressCounter; +-- FOR ALL : blockRAMControl USE ENTITY SystemOnChip.blockRAMControl; +-- FOR ALL : periphAddressDecoder USE ENTITY SystemOnChip.periphAddressDecoder; +-- FOR ALL : periphControlReg USE ENTITY SystemOnChip.periphControlReg; +-- FOR ALL : periphSpeedReg USE ENTITY SystemOnChip.periphSpeedReg; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 3 eb3 + testout( 1) <= run_int; run <= run_int; + testout( 2) <= updatePattern; + testout( 3) <= interpolateLin_int; interpolateLin <= interpolateLin_int; + testout( 4) <= newPolynom; + testout( 5) <= newPolynom; + testout( 6) <= '0'; + testout( 7) <= '0'; + testout( 8) <= selControl; + testout( 9) <= selSpeed; + testout(10) <= selX; + testout(11) <= selY; + testout(12) <= '0'; + testout(13) <= addr(0); + testout(14) <= addr(1); + testout(15) <= dataIn(0); + testout(16) <= dataIn(1); + + -- HDL Embedded Text Block 8 eb8 + storeControls: process(reset, clock) + begin + if reset = '1' then + addr <= (others => '0'); + write <= '0'; + elsif rising_edge(clock) then + write <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addr <= hAddr(addr'range); + write <= hWrite; + end if; + end if; + end process storeControls; + + dataIn <= hWData; + + -- HDL Embedded Text Block 9 eb9 + memDataIn <= dataIn(memDataIn'range); + + -- HDL Embedded Text Block 10 eb10 + hRData <= std_ulogic_vector(dataOut); + + hReady <= '1'; -- no wait state + hResp <= '0'; -- data OK + + -- HDL Embedded Text Block 11 eb11 + clock<= hClk; + + reset <= not hReset_n; + + + -- Instance port mappings. + I_ramx : blockRAM + GENERIC MAP ( + addressBitNb => patternAddressBitNb, + dataBitNb => signalBitNb, + initFileSpec => "C:/dev/sem-labs/06-07-08-09-SystemOnChip/Simulation/ramYInit.txt" + ) + PORT MAP ( + dataIn => memDataIn, + dataOut => memX, + en => memEnX, + clock => clock, + reset => reset, + write => memWrX, + addr => addrX + ); + I_ramy : blockRAM + GENERIC MAP ( + addressBitNb => patternAddressBitNb, + dataBitNb => signalBitNb, + initFileSpec => "C:/dev/sem-labs/06-07-08-09-SystemOnChip/Simulation/ramXInit.txt" + ) + PORT MAP ( + dataIn => memDataIn, + dataOut => memY, + en => memEnY, + clock => clock, + reset => reset, + write => memWrY, + addr => addrY + ); + I_addrx : blockRAMAddressCounter + GENERIC MAP ( + addressBitNb => patternAddressBitNb + ) + PORT MAP ( + en => cntIncrX, + clock => clock, + reset => reset, + updateMem => updatePattern, + addr => addrX, + patternSize => patternSize + ); + I_addry : blockRAMAddressCounter + GENERIC MAP ( + addressBitNb => patternAddressBitNb + ) + PORT MAP ( + en => cntIncrY, + clock => clock, + reset => reset, + updateMem => updatePattern, + addr => addrY, + patternSize => patternSize + ); + I_ctlx : blockRAMControl + PORT MAP ( + memWr => memWrX, + sel => selX, + memEn => memEnX, + update => updatePattern, + wr => write, + cntIncr => cntIncrX, + newSample => newPolynom, + clock => clock, + reset => reset + ); + I_ctly : blockRAMControl + PORT MAP ( + memWr => memWrY, + sel => selY, + memEn => memEnY, + update => updatePattern, + wr => write, + cntIncr => cntIncrY, + newSample => newPolynom, + clock => clock, + reset => reset + ); + I_decoder : periphAddressDecoder + GENERIC MAP ( + addressBitNb => addressBitNb + ) + PORT MAP ( + selControl => selControl, + addr => addr, + selSpeed => selSpeed, + selX => selX, + selY => selY, + selZ => OPEN + ); + I_ctl : periphControlReg + GENERIC MAP ( + dataBitNb => dataBitNb, + patternSizeBitNb => patternAddressBitNb + ) + PORT MAP ( + run => run_int, + dataIn => dataIn, + updatePattern => updatePattern, + dataOut => dataOut, + write => write, + en => selControl, + clock => clock, + reset => reset, + interpolateLinear => interpolateLin_int, + patternSize => patternSize + ); + I_speed : periphSpeedReg + GENERIC MAP ( + dataBitNb => dataBitNb, + updatePeriodBitNb => updatePeriodBitNb + ) + PORT MAP ( + updatePeriod => updatePeriod, + dataIn => dataIn, + dataOut => dataOut, + en => selSpeed, + clock => clock, + reset => reset, + write => write + ); + +END struct; + + + + +-- +-- VHDL Architecture SystemOnChip.ahbBeamer.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:00:20 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +-- LIBRARY SystemOnChip; + +ARCHITECTURE struct OF ahbBeamer IS + + -- Architecture declarations + constant signalBitNb: positive := 16; + constant updatePeriodBitNb : positive := 16; + + -- Internal signal declarations + SIGNAL reset : std_ulogic; + SIGNAL run : std_ulogic; + SIGNAL interpolateLin : std_ulogic; + SIGNAL updatePeriod : unsigned(updatePeriodBitNb-1 DOWNTO 0); + SIGNAL memX : std_ulogic_vector(signalBitNb-1 DOWNTO 0); + SIGNAL memY : std_ulogic_vector(signalBitNb-1 DOWNTO 0); + SIGNAL newPolynom : std_ulogic; + + + -- Component Declarations + COMPONENT ahbBeamerOperator + GENERIC ( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16 + ); + PORT ( + outX : OUT std_ulogic ; + run : IN std_ulogic ; + clock : IN std_ulogic ; + reset : IN std_ulogic ; + outY : OUT std_ulogic ; + selSinCos : IN std_ulogic ; + interpolateLin : IN std_ulogic ; + updatePeriod : IN unsigned (updatePeriodBitNb-1 DOWNTO 0); + memX : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : IN std_ulogic_vector (signalBitNb-1 DOWNTO 0); + newPolynom : OUT std_ulogic + ); + END COMPONENT; + COMPONENT ahbBeamerRegisters + GENERIC ( + updatePeriodBitNb : positive := 16; + signalBitNb : positive := 16; + patternAddressBitNb : positive := 8; + testOutBitNb : positive := 16 + ); + PORT ( + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + memX : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + memY : OUT std_ulogic_vector (signalBitNb-1 DOWNTO 0); + run : OUT std_ulogic ; + updatePeriod : OUT unsigned (updatePeriodBitNb-1 DOWNTO 0); + interpolateLin : OUT std_ulogic ; + newPolynom : IN std_ulogic ; + hClk : IN std_ulogic ; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + hReset_n : IN std_ulogic ; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic ; + hSel : IN std_ulogic ; + hReady : OUT std_ulogic ; + hResp : OUT std_ulogic + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : ahbBeamerOperator USE ENTITY SystemOnChip.ahbBeamerOperator; +-- FOR ALL : ahbBeamerRegisters USE ENTITY SystemOnChip.ahbBeamerRegisters; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 2 eb2 + --process + --begin + -- newPolynom <= '0'; + -- for index in 1 to 2**4-1 loop + -- wait until rising_edge(clock); + -- end loop; + -- newPolynom <= '1'; + -- wait until rising_edge(clock); + --end process; + + -- HDL Embedded Text Block 3 eb3 + reset <= not hReset_n; + + + -- Instance port mappings. + I_op : ahbBeamerOperator + GENERIC MAP ( + updatePeriodBitNb => updatePeriodBitNb, + signalBitNb => signalBitNb + ) + PORT MAP ( + outX => outX, + run => run, + clock => hClk, + reset => reset, + outY => outY, + selSinCos => selSinCos, + interpolateLin => interpolateLin, + updatePeriod => updatePeriod, + memX => memX, + memY => memY, + newPolynom => newPolynom + ); + I_regs : ahbBeamerRegisters + GENERIC MAP ( + updatePeriodBitNb => updatePeriodBitNb, + signalBitNb => signalBitNb, + patternAddressBitNb => patternAddressBitNb, + testOutBitNb => testOutBitNb + ) + PORT MAP ( + testOut => testOut, + memX => memX, + memY => memY, + run => run, + updatePeriod => updatePeriod, + interpolateLin => interpolateLin, + newPolynom => newPolynom, + hClk => hClk, + hRData => hRData, + hAddr => hAddr, + hReset_n => hReset_n, + hWData => hWData, + hTrans => hTrans, + hWrite => hWrite, + hSel => hSel, + hReady => hReady, + hResp => hResp + ); + +END struct; + + + + +-- VHDL Entity AhbLite.ahbMuxConnector.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbMuxConnector IS + GENERIC( + index : positive := 1 + ); + PORT( + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic; + hResp : IN std_uLogic; + hSelV : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRDataV : OUT ahbDataVector; + hReadyV : OUT std_logic_vector (1 TO ahbSlaveNb); + hRespV : OUT std_logic_vector (1 TO ahbSlaveNb); + hSel : OUT std_uLogic + ); + +-- Declarations + +END ahbMuxConnector ; + + + + + +ARCHITECTURE RTL OF ahbMuxConnector IS +BEGIN + + hSel <= hSelV(index); + + hRDataV(index) <= std_logic_vector(hRData); + hReadyV(index) <= hReady; + hRespV(index) <= hResp; + + hRDataV <= (others => (others => 'Z')); + hReadyV <= (others => 'Z'); + hRespV <= (others => 'Z'); + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity AhbLite.ahbDecoder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbDecoder IS + GENERIC( + ahbMemoryLocation : ahbMemoryLocationVector + ); + PORT( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hSel : OUT std_ulogic_vector (1 TO ahbSlaveNb) + ); + +-- Declarations + +END ahbDecoder ; + + + + + +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ARCHITECTURE RTL OF ahbDecoder IS +BEGIN + + decodeAddress: process(hAddr) + variable mask: unsigned(hAddr'range); + begin + hSel <= (others => '0'); + for index in hSel'range loop + mask := to_unsigned(ahbMemoryLocation(index).addressMask, mask'length); + if (hAddr and mask) = ahbMemoryLocation(index).baseAddress then + hSel(index) <= '1'; + end if; + end loop; + end process decodeAddress; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity AhbLiteComponents.ahbGpio.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:43:49 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbGpio IS + GENERIC( + ioNb : positive := 8 + ); + PORT( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic; + hReset_n : IN std_uLogic; + hSel : IN std_uLogic; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic; + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic; + hResp : OUT std_uLogic; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) + ); + +-- Declarations + +END ahbGpio ; + + + + + +--============================================================================== +-- +-- AHB general purpose input/outputs +-- +-- Provides "ioNb" input/output signals . +-- +-------------------------------------------------------------------------------- +-- +-- Write registers +-- +-- 00, data register receives the values to drive the output lines. +-- 01, output enable register defines the signal direction: +-- when '1', the direction is "out". +-- +-------------------------------------------------------------------------------- +-- +-- Read registers +-- 00, data register provides the values detected on the lines. +-- + +ARCHITECTURE masterVersion OF ahbGpio IS + + signal reset, clock: std_ulogic; + -- register definitions + constant dataRegisterId: natural := 0; + constant outputEnableRegisterId: natural := 1; + + signal addressReg: unsigned(addressBitNb(outputEnableRegisterId)-1 downto 0); + signal writeReg: std_ulogic; + -- written registers + subtype registerType is unsigned(ioNb-1 downto 0); + signal dataOutRegister, outputEnableRegister: registerType; + -- read registers + signal dataInRegister : registerType; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= not hReset_n; + clock <= hClk; + + --============================================================================ + -- address and controls + storeControls: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + writeReg <= '0'; + elsif rising_edge(clock) then + writeReg <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addressReg <= hAddr(addressReg'range); + writeReg <= hWrite; + end if; + end if; + end process storeControls; + + --============================================================================ + -- registers + storeWriteRegisters: process(reset, clock) + begin + if reset = '1' then + dataOutRegister <= (others => '0'); + outputEnableRegister <= (others => '0'); + elsif rising_edge(clock) then + if writeReg = '1' then + case to_integer(addressReg) is + when dataRegisterId => dataOutRegister <= unsigned(hWData(dataOutRegister'range)); + when outputEnableRegisterId => outputEnableRegister <= unsigned(hWData(outputEnableRegister'range)); + when others => null; + end case; + end if; + end if; + end process storeWriteRegisters; + + ioOut <= std_ulogic_vector(dataOutRegister); + ioEn <= std_ulogic_vector(outputEnableRegister); + + --============================================================================ + -- data readback + dataInRegister <= unsigned(ioIn); + + hRData <= std_ulogic_vector(resize(dataInRegister, hRData'length)); + hReady <= '1'; -- no wait state + hResp <= '0'; -- data OK + + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity AhbLite.ahbMasterInterface.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbMasterInterface IS + PORT( + clock : IN std_ulogic; + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic; + hResp : IN std_uLogic; + pAddress : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + pDataOut : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + pReadStrobe : IN std_uLogic; + pWriteStrobe : IN std_uLogic; + reset : IN std_ulogic; + hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hBurst : OUT std_ulogic_vector (ahbBurstBitNb-1 DOWNTO 0); + hClk : OUT std_uLogic; + hMastLock : OUT std_uLogic; + hProt : OUT std_ulogic_vector (ahbProtBitNb-1 DOWNTO 0); + hReset_n : OUT std_uLogic; + hSize : OUT std_ulogic_vector (ahbSizeBitNb-1 DOWNTO 0); + hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : OUT std_uLogic; + pDataIn : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END ahbMasterInterface ; + + + + + +ARCHITECTURE RTL OF ahbMasterInterface IS + + signal addressReg: unsigned(pAddress'range); + signal newAddress: std_ulogic; + signal writeReg: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + hReset_n <= not reset; + hClk <= clock; + + ------------------------------------------------------------------------------ + -- address and controls + newAddress <= pReadStrobe or pWriteStrobe; + + storeAddress: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + elsif rising_edge(clock) then + if newAddress = '1' then + addressReg <= pAddress; + end if; + end if; + end process storeAddress; + + hAddr <= pAddress when newAddress = '1' + else addressReg; + + storeWrite: process(reset, clock) + begin + if reset = '1' then + writeReg <= '0'; + elsif rising_edge(clock) then + if newAddress = '1' then + writeReg <= pWriteStrobe; + end if; + end if; + end process storeWrite; + + hWrite <= pWriteStrobe when newAddress = '1' + else writeReg; + + hTrans <= transNonSeq when newAddress = '1' + else transIdle; + + hSize <= size16; + hBurst <= burstSingle; + hProt <= protDefault; + hMastLock <= '0'; + + ------------------------------------------------------------------------------ + -- data out + delayData: process(reset, clock) + begin + if reset = '1' then + hWData <= (others => '0'); + elsif rising_edge(clock) then + if pWriteStrobe = '1' then + hWData <= pDataOut; + end if; + end if; + end process delayData; + + ------------------------------------------------------------------------------ + -- data in + pDataIn <= hRData; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity AhbLite.ahbMultiplexor.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:16 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbMultiplexor IS + PORT( + hRDataV : IN ahbDataVector; + hReadyV : IN std_logic_vector (1 TO ahbSlaveNb); + hRespV : IN std_logic_vector (1 TO ahbSlaveNb); + hSel : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic; + hResp : OUT std_uLogic + ); + +-- Declarations + +END ahbMultiplexor ; + + + + + +ARCHITECTURE RTL OF ahbMultiplexor IS +BEGIN + + multiplexData: process(hSel, hRDataV, hReadyV, hRespV) + begin + hRData <= (others => '0'); + hReady <= '1'; + hResp <= '0'; + for index in hSel'range loop + if hSel(index) = '1' then + hRData <= std_ulogic_vector(hRDataV(index)); + hReady <= hReadyV(index); + hResp <= hRespV(index); + end if; + end loop; + end process multiplexData; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity SystemOnChip.programRom.symbol +-- +-- Created: +-- by - francois.francois (Aphelia) +-- at - 14:40:20 03/13/19 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY programRom IS + GENERIC( + addressBitNb : positive := 8; + dataBitNb : positive := 8 + ); + PORT( + address : IN unsigned (addressBitNb-1 DOWNTO 0); + clock : IN std_ulogic; + en : IN std_ulogic; + reset : IN std_ulogic; + dataOut : OUT std_ulogic_vector ( dataBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END programRom ; + + + + + +ARCHITECTURE mapped OF programRom IS + + subtype opCodeType is std_ulogic_vector(5 downto 0); + constant opLoadC : opCodeType := "000000"; + constant opLoadR : opCodeType := "000001"; + constant opInputC : opCodeType := "000100"; + constant opInputR : opCodeType := "000101"; + constant opFetchC : opCodeType := "000110"; + constant opFetchR : opCodeType := "000111"; + constant opAndC : opCodeType := "001010"; + constant opAndR : opCodeType := "001011"; + constant opOrC : opCodeType := "001100"; + constant opOrR : opCodeType := "001101"; + constant opXorC : opCodeType := "001110"; + constant opXorR : opCodeType := "001111"; + constant opTestC : opCodeType := "010010"; + constant opTestR : opCodeType := "010011"; + constant opCompC : opCodeType := "010100"; + constant opCompR : opCodeType := "010101"; + constant opAddC : opCodeType := "011000"; + constant opAddR : opCodeType := "011001"; + constant opAddCyC : opCodeType := "011010"; + constant opAddCyR : opCodeType := "011011"; + constant opSubC : opCodeType := "011100"; + constant opSubR : opCodeType := "011101"; + constant opSubCyC : opCodeType := "011110"; + constant opSubCyR : opCodeType := "011111"; + constant opShRot : opCodeType := "100000"; + constant opOutputC : opCodeType := "101100"; + constant opOutputR : opCodeType := "101101"; + constant opStoreC : opCodeType := "101110"; + constant opStoreR : opCodeType := "101111"; + + subtype shRotCinType is std_ulogic_vector(2 downto 0); + constant shRotLdC : shRotCinType := "00-"; + constant shRotLdM : shRotCinType := "01-"; + constant shRotLdL : shRotCinType := "10-"; + constant shRotLd0 : shRotCinType := "110"; + constant shRotLd1 : shRotCinType := "111"; + + constant registerAddressBitNb : positive := 4; + constant shRotPadLength : positive + := dataOut'length - opCodeType'length - registerAddressBitNb + - 1 - shRotCinType'length; + subtype shRotDirType is std_ulogic_vector(1+shRotPadLength-1 downto 0); + constant shRotL : shRotDirType := (0 => '0', others => '-'); + constant shRotR : shRotDirType := (0 => '1', others => '-'); + + subtype branchCodeType is std_ulogic_vector(4 downto 0); + constant brRet : branchCodeType := "10101"; + constant brCall : branchCodeType := "11000"; + constant brJump : branchCodeType := "11010"; + constant brReti : branchCodeType := "11100"; + constant brEni : branchCodeType := "11110"; + + subtype branchConditionType is std_ulogic_vector(2 downto 0); + constant brDo : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + subtype memoryWordType is std_ulogic_vector(dataOut'range); + type memoryArrayType is array (0 to 2**address'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType := ( + --=============================================================== + -- Beamer control + --=============================================================== + -- + ----------------------------------------------------------------- + -- register definitions + -- s0, s1: used for INPUT and OUTPUT operations + -- S2: returns UART data byte + -- S3: uart protocol checksum + -- S4: uart protocol packet id + -- S5: uart protocol command id + -- S6: uart protocol address + -- S7: uart protocol data + -- S8: copy of UART data byte for debug + ----------------------------------------------------------------- + -- + ----------------------------------------------------------------- + -- GPIO definitions + ----------------------------------------------------------------- + ----------------------------------------------------------------- + -- UART definitions + ----------------------------------------------------------------- + -- CONSTANT uartBaudCount, 023D ; 66E6 / 115 200 = 573 + -- CONSTANT uartpollDelay, 0100 + ----------------------------------------------------------------- + -- beamer peripheral definitions + ----------------------------------------------------------------- + -- CONSTANT beamerCtlInit, 1001 + -- + --=============================================================== + -- initializations + --=============================================================== + -- + ----------------------------------------------------------------- + -- initialize GPIO + ----------------------------------------------------------------- + 16#000# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#001# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#002# => opLoadC & "0001" & "0000000010101010", -- LOAD s1, AA + 16#003# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#004# => opLoadC & "0000" & "0000000000000000", -- LOAD s0, 0000 + 16#005# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#006# => opLoadC & "0001" & "0000000000001111", -- LOAD s1, 0F + 16#007# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize UART + ----------------------------------------------------------------- + 16#008# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 + 16#009# => opAddC & "0000" & "0000000000000010", -- ADD s0, 0002 + 16#00A# => opLoadC & "0001" & "0000000001000010", -- LOAD s1, 0042 + 16#00B# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + ----------------------------------------------------------------- + -- initialize beamer peripheral + ----------------------------------------------------------------- + 16#00C# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#00D# => opAddC & "0000" & "0000000000000000", -- ADD s0, 0000 + 16#00E# => opLoadC & "0001" & "0000010000000001", -- LOAD s1, 0401 + 16#00F# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + 16#010# => opLoadC & "0000" & "0000000000100000", -- LOAD s0, 0020 + 16#011# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + 16#012# => opLoadC & "0001" & "0000000000000100", -- LOAD s1, 0004 + 16#013# => opOutputR & "0001" & "0000------------", -- OUTPUT s1, (S0) + -- + --=============================================================== + -- Main loop + --=============================================================== + -- + ----------------------------------------------------------------- + -- Process commands from serial port + ----------------------------------------------------------------- + -- _main_: + 16#014# => brCall & brDo & "--------0000100001",-- CALL 021 ; get command from UART + 16#015# => opCompC & "0011" & "0000000000000000", -- COMPARE s3, 0000 ; check function return + 16#016# => brJump & brNZ & "--------0000011111",-- JUMP NZ, 01F + 16#017# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#018# => brJump & brNZ & "--------0000011100",-- JUMP NZ, 01C + 16#019# => opOutputR & "0111" & "0110------------", -- OUTPUT s7, (S6) ; write word to memory location + 16#01A# => brCall & brDo & "--------0001100000",-- CALL 060 ; send write acknowledge + 16#01B# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandRead_: + 16#01C# => opInputR & "0111" & "0110------------", -- INPUT s7, (S6) ; write word in memory location + 16#01D# => brCall & brDo & "--------0001101111",-- CALL 06F ; send back read data + 16#01E# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- _commandAbort_: + 16#01F# => brCall & brDo & "--------0001010001",-- CALL 051 + 16#020# => brJump & brDo & "--------0000010100",-- JUMP 014 + -- + --=============================================================== + -- Subroutines + --=============================================================== + -- + ----------------------------------------------------------------- + -- Get command from serial port + ----------------------------------------------------------------- + -- _uartGetCmd_: + 16#021# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command header + 16#022# => opCompC & "0010" & "0000000010101010", -- COMPARE s2, 00AA + 16#023# => brJump & brNZ & "--------0000100001",-- JUMP NZ, 021 ; loop until byte is AAh + 16#024# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#025# => brCall & brDo & "--------0010000110",-- CALL 086 ; get packet id + 16#026# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#027# => opLoadR & "0100" & "0010------------", -- LOAD s4, s2 ; store id for reply + 16#028# => brCall & brDo & "--------0010000110",-- CALL 086 ; get command + 16#029# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#02A# => opCompC & "0010" & "0000000000000011", -- COMPARE s2, 0003 ; check for WRITE_MEM command + 16#02B# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02C# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; check for READ_MEM command + 16#02D# => brJump & brZ & "--------0000101111",-- JUMP Z, 02F + 16#02E# => brJump & brDo & "--------0001001111",-- JUMP 04F ; no match + -- _commandOk_: + 16#02F# => opLoadR & "0101" & "0010------------", -- LOAD s5, s2 ; store command for action + 16#030# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data length + 16#031# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#032# => opCompC & "0101" & "0000000000000011", -- COMPARE s5, 0003 ; check for WRITE_MEM command + 16#033# => brJump & brZ & "--------0000110111",-- JUMP Z, 037 ; go to test write command length + 16#034# => opCompC & "0010" & "0000000000000010", -- COMPARE s2, 0002 ; verify READ_MEM length + 16#035# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#036# => brJump & brDo & "--------0000111001",-- JUMP 039 + -- _testWrLength_: + 16#037# => opCompC & "0010" & "0000000000000100", -- COMPARE s2, 0004 ; verify WRITE_MEM length + 16#038# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + -- _getAddress_: + 16#039# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address low + 16#03A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03B# => opLoadR & "0110" & "0010------------", -- LOAD s6, s2 ; store address low + 16#03C# => brCall & brDo & "--------0010000110",-- CALL 086 ; get address high + 16#03D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#03E# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#03F# => opAddR & "0110" & "0010------------", -- ADD s6, s2 ; build address from low and high + 16#040# => opCompC & "0101" & "0000000000000100", -- COMPARE s5, 0004 ; check for READ_MEM command + 16#041# => brJump & brZ & "--------0001001001",-- JUMP Z, 049 ; skip reading data word + 16#042# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data low + 16#043# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#044# => opLoadR & "0111" & "0010------------", -- LOAD s7, s2 ; store data low + 16#045# => brCall & brDo & "--------0010000110",-- CALL 086 ; get data high + 16#046# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#047# => brCall & brDo & "--------0010100000",-- CALL 0A0 + 16#048# => opAddR & "0111" & "0010------------", -- ADD s7, s2 ; build data from low and high + -- _getChecksum_: + 16#049# => brCall & brDo & "--------0010000110",-- CALL 086 ; get checksum + 16#04A# => opAndC & "0011" & "0000000011111111", -- AND s3, 00FF ; limit calculated checksum to 8 bit + 16#04B# => opCompR & "0011" & "0010------------", -- COMPARE s3, s2 ; test checksum + 16#04C# => brJump & brNZ & "--------0001001111",-- JUMP NZ, 04F + 16#04D# => opLoadC & "0011" & "0000000000000000", -- LOAD s3, 0000 ; return OK + 16#04E# => brRet & brDo & "------------------",-- RETURN + -- _commandKo_: + 16#04F# => opLoadC & "0011" & "0000000000000001", -- LOAD s3, 0001 ; return KO + 16#050# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send NACK reply + ----------------------------------------------------------------- + -- _sendNAck_: + 16#051# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#052# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#053# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#054# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#055# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#056# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#057# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; negative Acknowledge + 16#058# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#059# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05A# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#05B# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#05C# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05D# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#05E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#05F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send WRITE_MEM reply + ----------------------------------------------------------------- + -- _sendWriteOk_: + 16#060# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#061# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#062# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#063# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#064# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#065# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#066# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#067# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#068# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#069# => opLoadC & "0010" & "0000000000000000", -- LOAD s2, 0000 ; packet length: no data + 16#06A# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#06B# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06C# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#06D# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#06E# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- send READ_MEM reply + ----------------------------------------------------------------- + -- _sendReadData_: + 16#06F# => opLoadC & "0010" & "0000000010101010", -- LOAD s2, 00AA ; send header + 16#070# => opLoadR & "0011" & "0010------------", -- LOAD s3, s2 ; prepare checksum + 16#071# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#072# => opLoadR & "0010" & "0100------------", -- LOAD s2, s4 ; packet id + 16#073# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#074# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#075# => opLoadR & "0010" & "0101------------", -- LOAD s2, s5 ; received command + 16#076# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#077# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#078# => opLoadC & "0010" & "0000000000000010", -- LOAD s2, 0002 ; packet length: 2 bytes + 16#079# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07A# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07B# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data low + 16#07C# => opAndC & "0010" & "0000000011111111", -- AND s2, 00FF ; keep low byte only + 16#07D# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#07E# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#07F# => opLoadR & "0010" & "0111------------", -- LOAD s2, s7 ; data high + 16#080# => brCall & brDo & "--------0010100101",-- CALL 0A5 ; shift MSBs down to LSBs + 16#081# => opAddR & "0011" & "0010------------", -- ADD s3, s2 ; calculate checksum + 16#082# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#083# => opLoadR & "0010" & "0011------------", -- LOAD s2, s3 ; checksum + 16#084# => brCall & brDo & "--------0010010011",-- CALL 093 + 16#085# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Get byte from serial port + ----------------------------------------------------------------- + -- _uartGetByte_: + 16#086# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#087# => opAddC & "0000" & "0000000000000001", -- ADD s0, 01 + --load s8, 0100 + -- _checkStat_: + 16#088# => opLoadC & "0010" & "0000000001000000", -- LOAD s2, 0040 ; add delay between bus reads + -- _delay0_: + 16#089# => opSubC & "0010" & "0000000000000001", -- SUB s2, 0001 + 16#08A# => brJump & brNZ & "--------0010001001",-- JUMP NZ, 089 + --sub s8, 0001 + --jump nz, continue + --load s2, 0035 + --call uartSendByte + --load s8, 0100 + -- _continue_: + 16#08B# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08C# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#08D# => opTestC & "0001" & "0000000000000001", -- TEST s1, 0001 ; check "data ready" bit + 16#08E# => brJump & brZ & "--------0010001000",-- JUMP Z, 088 ; loop until bit is '1' + 16#08F# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART data register + 16#090# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + 16#091# => opInputR & "0010" & "0000------------", -- INPUT s2, (S0) + --LOAD s8, s2 + 16#092# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- Send byte to serial port + ----------------------------------------------------------------- + -- _uartSendByte_: + 16#093# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; read UART satus register + 16#094# => opAddC & "0000" & "0000000000000001", -- ADD s0, 0001 + -- _readStatus_: + 16#095# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#096# => opInputR & "0001" & "0000------------", -- INPUT s1, (S0) + 16#097# => opTestC & "0001" & "0000000000000010", -- TEST s1, 0002 ; check "sending data" bit + 16#098# => brJump & brZ & "--------0010011101",-- JUMP Z, 09D ; loop until bit is '1' + 16#099# => opLoadC & "0001" & "0000000001000000", -- LOAD s1, 0040 ; add delay between bus reads + -- _delay1_: + 16#09A# => opSubC & "0001" & "0000000000000001", -- SUB s1, 0001 + 16#09B# => brJump & brNZ & "--------0010011010",-- JUMP NZ, 09A + 16#09C# => brJump & brDo & "--------0010010101",-- JUMP 095 + -- _sendByte_: + 16#09D# => opLoadC & "0000" & "0000000000010000", -- LOAD s0, 0010 ; write UART data register + 16#09E# => opOutputR & "0010" & "0000------------", -- OUTPUT s2, (S0) + 16#09F# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the left + ----------------------------------------------------------------- + -- _shiftS2L8_: + 16#0A0# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftLeftLoop_: + 16#0A1# => opShRot & "0010" & shRotL & shRotLd0, -- SL0 s2 + 16#0A2# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A3# => brJump & brNZ & "--------0010100001",-- JUMP NZ, 0A1 + 16#0A4# => brRet & brDo & "------------------",-- RETURN + -- + ----------------------------------------------------------------- + -- shift s2 8 bits to the right + ----------------------------------------------------------------- + -- _shiftS2R8_: + 16#0A5# => opLoadC & "0000" & "0000000000001000", -- LOAD s0, 8 ; loop count + -- _shiftRightLoop_: + 16#0A6# => opShRot & "0010" & shRotR & shRotLd0, -- SR0 s2 + 16#0A7# => opSubC & "0000" & "0000000000000001", -- SUB s0, 0001 + 16#0A8# => brJump & brNZ & "--------0010100110",-- JUMP NZ, 0A6 + 16#0A9# => brRet & brDo & "------------------",-- RETURN + -- + --=============================================================== + -- End of instruction memory + --=============================================================== + -- _endOfMemory_: + 16#3FF# => brJump & brDo & "--------1111111111",-- JUMP 3FF + others => (others => '0') + ); + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if en = '1' then + dataOut <= memoryArray(to_integer(address)); + end if; + end if; + end process; + +END ARCHITECTURE mapped; + + + + +-- VHDL Entity AhbLiteComponents.ahbUart.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:43:49 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +ENTITY ahbUart IS + GENERIC( + txFifoDepth : positive := 8; + rxFifoDepth : positive := 1 + ); + PORT( + RxD : IN std_ulogic; + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic; + hReset_n : IN std_uLogic; + hSel : IN std_uLogic; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic; + TxD : OUT std_ulogic; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic; + hResp : OUT std_uLogic + ); + +-- Declarations + +END ahbUart ; + + + + + +--============================================================================== +-- +-- AHB UART +-- +-- Implements a serial port. +-- +-------------------------------------------------------------------------------- +-- +-- Write registers +-- +-- 00, data register receives the word to be sent to the serial port. +-- 01, control register is used to control the peripheral. +-- 02, scaler register is used to set the baud rate. +-- +-------------------------------------------------------------------------------- +-- +-- Read registers +-- 00, data register provides the last word received by the serial port. +-- 01, status register is used to get the peripheral's state. +-- bit 0: data ready for read +-- bit 1: sending in progress +-- bit 2: receiving in progress +-- + +ARCHITECTURE masterVersion OF ahbUart IS + + signal reset, clock: std_ulogic; + -- register definitions + constant dataOutRegisterId: natural := 0; + constant dataBitNb: positive := 8; + constant controlRegisterId: natural := 1; + constant controlBpoId: natural := 0; + constant controlFormatId: natural := 0; + constant scalerRegisterId: natural := 2; + + constant statusRegisterId: natural := 1; + constant statusReadyId: natural := 0; + constant statusSendingId: natural := 1; + constant statusReceivingId: natural := 2; + -- written registers + signal addressReg: unsigned(addressBitNb(scalerRegisterId)+1-1 downto 0); + signal writeReg: std_ulogic; + signal readReg: std_ulogic; + subtype registerType is unsigned(hWdata'length-1 downto 0); + signal dataOutRegister : unsigned(dataBitNb-1 downto 0); + signal controlRegister, scalerRegister: registerType; + -- serializer + signal txPeriodCounter: unsigned(registerType'range); + signal txEn: std_uLogic; + signal txStart: std_uLogic; + signal txSending: std_uLogic; + signal txShiftCounter : unsigned(addressBitNb(dataOutRegister'length+2)-1 downto 0); + signal txShiftRegister : unsigned(dataOutRegister'high+1 downto 0); + -- read registers + signal dataInRegister : unsigned(dataOutRegister'range); + signal statusRegister: registerType; + -- deserializer + signal rxPeriodCounter: unsigned(registerType'range); + signal rxEn: std_uLogic; + signal rxDelayed, rxChanged: std_uLogic; + signal rxShiftCounter : unsigned(txShiftCounter'range); + signal rxReceiving: std_uLogic; + signal rxShiftRegister : unsigned(dataInRegister'range); + signal rxDataReady: std_uLogic; + +BEGIN + ------------------------------------------------------------------------------ + -- reset and clock + reset <= not hReset_n; + clock <= hClk; + + --============================================================================ + -- address and controls + storeControls: process(reset, clock) + begin + if reset = '1' then + addressReg <= (others => '0'); + writeReg <= '0'; + readReg <= '0'; + elsif rising_edge(clock) then + writeReg <= '0'; + readReg <= '0'; + if (hSel = '1') and (hTrans = transNonSeq) then + addressReg <= hAddr(addressReg'range); + writeReg <= hWrite; + readReg <= not hWrite; + end if; + end if; + end process storeControls; + + --============================================================================ + -- registers + storeWriteRegisters: process(reset, clock) + begin + if reset = '1' then + dataOutRegister <= (others => '0'); + controlRegister <= (others => '0'); + scalerRegister <= (others => '0'); + elsif rising_edge(clock) then + if writeReg = '1' then + case to_integer(addressReg) is + when dataOutRegisterId => dataOutRegister <= unsigned(hWData(dataOutRegister'range)); + when controlRegisterId => controlRegister <= unsigned(hWData); + when scalerRegisterId => scalerRegister <= unsigned(hWData); + when others => null; + end case; + end if; + end if; + end process storeWriteRegisters; + + txStart <= '1' when (writeReg = '1') and (addressReg = dataOutRegisterId) + else '0'; + + --============================================================================ + -- serializer + -- tx baud rate + countTxBaudRate: process(reset, clock) + begin + if reset = '1' then + txPeriodCounter <= (others => '1'); + elsif rising_edge(clock) then + if txPeriodCounter + 1 < scalerRegister then + txPeriodCounter <= txPeriodCounter + 1; + else + txPeriodCounter <= (others => '0'); + end if; + end if; + end process countTxBaudRate; + + txEn <= '1' when txPeriodCounter = 1 + else '0'; + -- count tx shift + countTxShift: process(reset, clock) + begin + if reset = '1' then + txShiftCounter <= (others => '0'); + elsif rising_edge(clock) then + if txShiftCounter = 0 then + if txStart = '1' then + txShiftCounter <= txShiftCounter + 1; + end if; + elsif txEn = '1' then + if txShiftCounter < dataOutRegister'length + 3 then + txShiftCounter <= txShiftCounter + 1; + else + txShiftCounter <= (others => '0'); + end if; + end if; + end if; + end process countTxShift; + + txSending <= '1' when txShiftCounter /= 0 + else '0'; + -- tx serializer + shiftTxData: process(reset, clock) + begin + if reset = '1' then + txShiftRegister <= (others => '1'); + elsif rising_edge(clock) then + if txEn = '1' then + if txShiftCounter = 1 then + txShiftRegister <= dataOutRegister & '0'; + else + txShiftRegister <= shift_right(txShiftRegister, 1); + txShiftRegister(txShiftRegister'high) <= '1'; + end if; + end if; + end if; + end process shiftTxData; + + TxD <= txShiftRegister(0); + + --============================================================================ + -- deserializer + delayRxd: process(reset, clock) + begin + if reset = '1' then + rxDelayed <= '0'; + elsif rising_edge(clock) then + rxDelayed <= RxD; + end if; + end process delayRxd; + + rxChanged <= '1' when rxDelayed /= RxD + else '0'; + -- rx baud rate + countRxBaudRate: process(reset, clock) + begin + if reset = '1' then + rxPeriodCounter <= (others => '1'); + elsif rising_edge(clock) then + if rxChanged = '1' then + rxPeriodCounter <= (others => '0'); + elsif rxPeriodCounter + 1 < scalerRegister then + rxPeriodCounter <= rxPeriodCounter + 1; + else + rxPeriodCounter <= (others => '0'); + end if; + end if; + end process countRxBaudRate; + + rxEn <= '1' when rxPeriodCounter = shift_right(scalerRegister-2, 1) + else '0'; + -- count rx shift + countRxShift: process(reset, clock) + begin + if reset = '1' then + rxShiftCounter <= (others => '0'); + elsif rising_edge(clock) then + if rxShiftCounter = 0 then + if (RxD = '0') and (rxDelayed = '1') then + rxShiftCounter <= rxShiftCounter + 1; + end if; + elsif rxEn = '1' then + if rxShiftCounter < dataInRegister'length + 2 then + rxShiftCounter <= rxShiftCounter + 1; + else + rxShiftCounter <= (others => '0'); + end if; + end if; + end if; + end process countRxShift; + + rxReceiving <= '1' when rxShiftCounter /= 0 + else '0'; + -- rx deserializer + shiftRxData: process(reset, clock) + begin + if reset = '1' then + rxShiftRegister <= (others => '1'); + dataInRegister <= (others => '0'); + elsif rising_edge(clock) then + if rxEn = '1' then + if rxShiftCounter <= dataInRegister'length+1 then + rxShiftRegister <= shift_right(rxShiftRegister, 1); + rxShiftRegister(rxShiftRegister'high) <= RxD; + end if; + if rxShiftCounter = dataInRegister'length+2 then + dataInRegister <= rxShiftRegister; + end if; + end if; + end if; + end process shiftRxData; + -- monitor data ready + checkDataReady: process(reset, clock) + begin + if reset = '1' then + rxDataReady <= '0'; + elsif rising_edge(clock) then + if (rxEn = '1') and (rxShiftCounter = dataInRegister'length+2) then + rxDataReady <= '1'; + elsif (readReg = '1') and (addressReg = dataOutRegisterId) then + rxDataReady <= '0'; + end if; + end if; + end process checkDataReady; + + --============================================================================ + -- data readback + statusRegister <= ( + statusReadyId => rxDataReady, + statusSendingId => txSending, + statusReceivingId => rxReceiving, + others => '0' + ); + + selectData: process(addressReg, dataInRegister, statusRegister) + begin + hRData <= (others => '-'); + case to_integer(addressReg) is + when dataOutRegisterId => hRData <= std_ulogic_vector(resize(dataInRegister, hRData'length)); + when statusRegisterId => hRData <= std_ulogic_vector(statusRegister); + when others => null; + end case; + end process selectData; + + hReady <= '1'; -- no wait state + hResp <= '0'; -- data OK + + +END ARCHITECTURE masterVersion; + + + + +-- VHDL Entity NanoBlaze.nanoProcessor.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:43 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY nanoProcessor IS + GENERIC( + addressBitNb : positive := 8; + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5; + instructionBitNb : positive := 18; + scratchpadAddressBitNb : natural := 4 + ); + PORT( + clock : IN std_ulogic; + dataIn : IN std_ulogic_vector (registerBitNb-1 DOWNTO 0); + en : IN std_ulogic; + instruction : IN std_ulogic_vector (instructionBitNb-1 DOWNTO 0); + int : IN std_uLogic; + reset : IN std_ulogic; + dataAddress : OUT unsigned (addressBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (registerBitNb-1 DOWNTO 0); + intAck : OUT std_ulogic; + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + readStrobe : OUT std_uLogic; + writeStrobe : OUT std_uLogic + ); + +-- Declarations + +END nanoProcessor ; + + + + + +-- VHDL Entity NanoBlaze.aluAndRegs.symbol +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:43 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY aluAndRegs IS + GENERIC( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + portAddressBitNb : positive := 8; + scratchpadAddressBitNb : natural := 4 + ); + PORT( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic; + clock : IN std_ulogic; + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic; + regWrite : IN std_ulogic; + registerFileSel : IN std_ulogic; + reset : IN std_ulogic; + scratchpadSel : IN std_ulogic; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic; + portAddr : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + scratchpadAddr : OUT unsigned (scratchpadAddressBitNb-1 DOWNTO 0); + spadOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + zero : OUT std_ulogic + ); + +-- Declarations + +END aluAndRegs ; + + + + + +-- VHDL Entity NanoBlaze.alu.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY alu IS + GENERIC( + aluCodeBitNb : positive := 5; + dataBitNb : positive := 8 + ); + PORT( + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic; + opA : IN signed ( dataBitNb-1 DOWNTO 0 ); + opB : IN signed ( dataBitNb-1 DOWNTO 0 ); + aluOut : OUT signed ( dataBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic; + zero : OUT std_ulogic + ); + +-- Declarations + +END alu ; + + + + + +ARCHITECTURE RTL OF alu IS + + signal aluCodeInt: unsigned(aluCode'range); + signal aArith: signed(opA'high+1 downto 0); + signal bArith: signed(opA'high+1 downto 0); + signal cInArith: signed(1 downto 0); + signal cInShift: std_ulogic; + signal yArith: signed(aluOut'high+1 downto 0); + signal aluOutInt: signed(aluOut'range); + +BEGIN + ------------------------------------------------------------------------------ + -- clear aluCode don't care LSB for shifts + aluCodeInt(aluCode'high downto 1) <= unsigned(aluCode(aluCode'high downto 1)); + + cleanupLsb: process(aluCode) + begin + if aluCode(aluCode'high) = '1' then + aluCodeInt(0) <= '0'; + else + aluCodeInt(0) <= aluCode(0); + end if; + end process cleanupLsb; + + ------------------------------------------------------------------------------ + -- values for arithmetic operations + aArith <= signed(resize(unsigned(opA), aArith'length)); + bArith <= signed(resize(unsigned(opB), bArith'length)); + cInArith <= (0 => cIn, others => '0'); + + process(aluCode, cIn, opA) + begin + case aluCode(2 downto 1) is + when "00" => cInShift <= cIn; + when "01" => cInShift <= opA(opA'high); + when "10" => cInShift <= opA(opA'low); + when "11" => cInShift <= aluCode(0); + when others => cInShift <= '-'; + end case; + end process; + + ------------------------------------------------------------------------------ + -- alu operations + aluOperation: process( + aluCodeInt, + opA, opB, + aArith, bArith, cInArith, + cInShift, + yArith, aluOutInt + ) + variable xorAcc: std_ulogic; + begin + yArith <= (others => '-'); + cOut <= '-'; + aluOutInt <= (others => '-'); + case to_integer(aluCodeInt) is + when 0 => -- LOAD sX, kk + aluOutInt <= opB; + when 2 => -- INPUT sX, pp + aluOutInt <= opB; + when 3 => -- FETCH sX, ss + aluOutInt <= opB; + when 5 => -- AND sX, kk + aluOutInt <= opA and opB; + cOut <= '0'; + when 6 => -- OR sX, kk + aluOutInt <= opA or opB; + cOut <= '0'; + when 7 => -- XOR sX, kk + aluOutInt <= opA xor opB; + cOut <= '0'; + when 9 => -- TEST sX, kk + aluOutInt <= opA and opB; + xorAcc := '0'; + for index in aluOutInt'range loop + xorAcc := xorAcc xor aluOutInt(index); + end loop; + cOut <= xorAcc; + when 10 => -- COMPARE sX, kk + yArith <= aArith - bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 12 => -- ADD sX, kk + yArith <= aArith + bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 13 => -- ADDCY sX, kk + yArith <= (aArith + bArith) + cInArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 14 => -- SUB sX, kk + yArith <= aArith - bArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 15 => -- SUBCY sX, kk + yArith <= (aArith - bArith) - cInArith; + aluOutInt <= yArith(aluOut'range); + cOut <= yArith(yArith'high); + when 16 to 23 => -- SL sX + aluOutInt <= opA(opA'high-1 downto 0) & cInShift; + cOut <= opA(opA'high); + when 24 to 31 => -- SR sX + aluOutInt <= cInShift & opA(opA'high downto 1); + cOut <= opA(0); + when others => + aluOutInt <= (others => '-'); + end case; + end process aluOperation; + + aluOut <= aluOutInt; + zero <= '1' when aluOutInt = 0 else '0'; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.aluBOpSelector.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY aluBOpSelector IS + GENERIC( + registerBitNb : positive := 8 + ); + PORT( + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic; + registerFileIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + registerFileSel : IN std_ulogic; + scratchpadSel : IN std_ulogic; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + opB : OUT signed (registerBitNb-1 DOWNTO 0) + ); + +-- Declarations + +END aluBOpSelector ; + + + + + +ARCHITECTURE RTL OF aluBOpSelector IS +BEGIN + + selectDataSource: process( + registerFileSel, registerFileIn, + scratchpadSel, spadIn, + portInSel, portIn, + instrDataSel, instrData + ) + begin + if registerFileSel = '1' then + opB <= registerFileIn; + elsif scratchpadSel = '1' then + opB <= spadIn; + elsif portInSel = '1' then + opB <= portIn; + elsif instrDataSel = '1' then + opB <= instrData; + else + opB <= (others => '-'); + end if; + end process selectDataSource; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.registerFile.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY registerFile IS + GENERIC( + registerAddressBitNb : positive := 4; + dataBitNb : positive := 8 + ); + PORT( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic; + regWrite : IN std_ulogic; + registersIn : IN signed ( dataBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic; + opA : OUT signed ( dataBitNb-1 DOWNTO 0 ); + opB : OUT signed ( dataBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END registerFile ; + + + + + +ARCHITECTURE RTL OF registerFile IS + + subtype registerType is signed(registersIn'range); + type registerArrayType is array (0 to 2**registerAddressBitNb-1) of registerType; + signal registerArray : registerArrayType; + +BEGIN + ------------------------------------------------------------------------------ + -- write to registers + updateRegister: process(reset, clock) + begin + if reset = '1' then + registerArray <= (others => (others => '0')); + elsif rising_edge(clock) then + if regWrite = '1' then + registerArray(to_integer(addrA)) <= registersIn; + end if; + end if; + end process updateRegister; + + ------------------------------------------------------------------------------ + -- read from registers + opA <= registerArray(to_integer(addrA)); + opB <= registerArray(to_integer(addrB)); + +END ARCHITECTURE RTL; + + + + +-- +-- VHDL Architecture NanoBlaze.aluAndRegs.struct +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:44 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY NanoBlaze; + +ARCHITECTURE struct OF aluAndRegs IS + + -- Architecture declarations + + -- Internal signal declarations + SIGNAL aluOut : signed(registerBitNb-1 DOWNTO 0); + SIGNAL opA : signed(registerBitNb-1 DOWNTO 0); + SIGNAL opB : signed(registerBitNb-1 DOWNTO 0); + SIGNAL registerFileIn : signed(registerBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT alu + GENERIC ( + aluCodeBitNb : positive := 5; + dataBitNb : positive := 8 + ); + PORT ( + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic ; + opA : IN signed ( dataBitNb-1 DOWNTO 0 ); + opB : IN signed ( dataBitNb-1 DOWNTO 0 ); + aluOut : OUT signed ( dataBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic ; + zero : OUT std_ulogic + ); + END COMPONENT; + COMPONENT aluBOpSelector + GENERIC ( + registerBitNb : positive := 8 + ); + PORT ( + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic ; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic ; + registerFileIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + registerFileSel : IN std_ulogic ; + scratchpadSel : IN std_ulogic ; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + opB : OUT signed (registerBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT registerFile + GENERIC ( + registerAddressBitNb : positive := 4; + dataBitNb : positive := 8 + ); + PORT ( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic ; + regWrite : IN std_ulogic ; + registersIn : IN signed ( dataBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic ; + opA : OUT signed ( dataBitNb-1 DOWNTO 0 ); + opB : OUT signed ( dataBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : alu USE ENTITY NanoBlaze.alu; +-- FOR ALL : aluBOpSelector USE ENTITY NanoBlaze.aluBOpSelector; +-- FOR ALL : registerFile USE ENTITY NanoBlaze.registerFile; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + portOut <= opA; + spadOut <= opA; + + -- HDL Embedded Text Block 2 eb2 + portAddr <= resize(unsigned(registerFileIn), portAddressBitNb); + scratchpadAddr <= resize(unsigned(registerFileIn), scratchpadAddressBitNb); + + + -- Instance port mappings. + I_ALU : alu + GENERIC MAP ( + aluCodeBitNb => aluCodeBitNb, + dataBitNb => registerBitNb + ) + PORT MAP ( + aluCode => aluCode, + cIn => cIn, + opA => opA, + opB => opB, + aluOut => aluOut, + cOut => cOut, + zero => zero + ); + I_bSel : aluBOpSelector + GENERIC MAP ( + registerBitNb => registerBitNb + ) + PORT MAP ( + instrData => instrData, + instrDataSel => instrDataSel, + portIn => portIn, + portInSel => portInSel, + registerFileIn => registerFileIn, + registerFileSel => registerFileSel, + scratchpadSel => scratchpadSel, + spadIn => spadIn, + opB => opB + ); + I_regs : registerFile + GENERIC MAP ( + registerAddressBitNb => registerAddressBitNb, + dataBitNb => registerBitNb + ) + PORT MAP ( + addrA => addrA, + addrB => addrB, + clock => clock, + regWrite => regWrite, + registersIn => aluOut, + reset => reset, + opA => opA, + opB => registerFileIn + ); + +END struct; + + + + +-- VHDL Entity NanoBlaze.branchStack.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY branchStack IS + GENERIC( + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5 + ); + PORT( + clock : IN std_ulogic; + prevPC : IN std_ulogic; + progCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic; + storePC : IN std_ulogic; + storedProgCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END branchStack ; + + + + + +ARCHITECTURE RTL OF branchStack IS + + subtype progCounterType is unsigned(progCounter'range); + type progCounterArrayType is array (0 to 2**stackPointerBitNb) of progCounterType; + signal progCounterArray : progCounterArrayType; + + signal writePointer : unsigned(stackPointerBitNb-1 downto 0); + signal readPointer : unsigned(stackPointerBitNb-1 downto 0); + +BEGIN + ------------------------------------------------------------------------------ + -- stack pointers + updateStackPointer: process(reset, clock) + begin + if reset = '1' then + writePointer <= (others => '0'); + elsif rising_edge(clock) then + if storePC = '1' then + writePointer <= writePointer + 1; + elsif prevPC = '1' then + writePointer <= writePointer - 1; + end if; + end if; + end process updateStackPointer; + + readPointer <= writePointer - 1; + + ------------------------------------------------------------------------------ + -- program counters stack + updateStack: process(reset, clock) + begin + if rising_edge(clock) then + if storePc = '1' then + progCounterArray(to_integer(writePointer)) <= progCounter; + end if; + storedProgCounter <= progCounterArray(to_integer(readPointer)); + end if; + end process updateStack; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.controller.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY controller IS + GENERIC( + intCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + opCodeBitNb : positive := 5 + ); + PORT( + branchCond : IN std_ulogic_vector ( branchCondBitNb-1 DOWNTO 0 ); + cOut : IN std_ulogic; + clock : IN std_ulogic; + en : IN std_ulogic; + int : IN std_uLogic; + intCode : IN std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : IN std_ulogic_vector (opCodeBitNb-1 DOWNTO 0); + reset : IN std_ulogic; + twoRegInstr : IN std_ulogic; + zero : IN std_ulogic; + cIn : OUT std_ulogic; + incPC : OUT std_ulogic; + instrDataSel : OUT std_ulogic; + intAck : OUT std_ulogic; + loadInstrAddress : OUT std_ulogic; + loadStoredPC : OUT std_ulogic; + portInSel : OUT std_ulogic; + prevPC : OUT std_ulogic; + readStrobe : OUT std_uLogic; + regWrite : OUT std_ulogic; + registerFileSel : OUT std_ulogic; + scratchpadSel : OUT std_ulogic; + scratchpadWrite : OUT std_ulogic; + storePC : OUT std_ulogic; + writeStrobe : OUT std_uLogic + ); + +-- Declarations + +END controller ; + + + + + +ARCHITECTURE RTL OF controller IS + + signal en1, enInt: std_ulogic; + + constant opCodeLength : integer := 5; + subtype opCodeType is std_ulogic_vector(opCodeLength-1 downto 0); + constant opLoad : opCodeType := "00000"; + constant opInput : opCodeType := "00010"; + constant opFetch : opCodeType := "00011"; + constant opAnd : opCodeType := "00101"; + constant opOr : opCodeType := "00110"; + constant opXor : opCodeType := "00111"; + constant opTest : opCodeType := "01001"; + constant opComp : opCodeType := "01010"; + constant opAdd : opCodeType := "01100"; + constant opAddCy : opCodeType := "01101"; + constant opSub : opCodeType := "01110"; + constant opSubCy : opCodeType := "01111"; + constant opShRot : opCodeType := "10000"; + constant opRet : opCodeType := "10101"; + constant opOutput: opCodeType := "10110"; + constant opStore : opCodeType := "10111"; + constant opCall : opCodeType := "11000"; + constant opJump : opCodeType := "11010"; + constant opIntF : opCodeType := "11110"; + + constant branchConditionLength : integer := 3; + subtype branchConditionType is std_ulogic_vector(branchConditionLength-1 downto 0); + constant brAw : branchConditionType := "000"; + constant brZ : branchConditionType := "100"; + constant brNZ : branchConditionType := "101"; + constant brC : branchConditionType := "110"; + constant brNC : branchConditionType := "111"; + + signal aluOpSel: std_ulogic; + signal regWriteEn: std_ulogic; + + signal flagsEn, flagsEnable: std_ulogic; + signal carrySaved: std_ulogic; + signal zeroSaved: std_ulogic; + + signal branchEnable1, branchEnable: std_ulogic; + signal discardOpCode: std_ulogic; + + signal updateIntFlag: std_ulogic; + +BEGIN + ------------------------------------------------------------------------------ + -- Enable signal + buildEnable: process(reset, clock) + begin + if reset = '1' then + en1 <= '0'; + elsif rising_edge(clock) then + en1 <= '1'; + end if; + end process buildEnable; + + enInt <= en1 and en; -- don't enable very first instruction twice + + ------------------------------------------------------------------------------ + -- ALU controls + selectdataSource: process(opCode) + begin + aluOpSel <= '0'; + portInSel <= '0'; + scratchpadSel <= '0'; + case opCode(opCodeLength-1 downto 0) is + when opLoad => aluOpSel <= '1'; + when opInput => portInSel <= '1'; + when opFetch => scratchpadSel <= '1'; + when opAnd => aluOpSel <= '1'; + when opOr => aluOpSel <= '1'; + when opXor => aluOpSel <= '1'; + when opTest => aluOpSel <= '1'; + when opComp => aluOpSel <= '1'; + when opAdd => aluOpSel <= '1'; + when opAddCy => aluOpSel <= '1'; + when opSub => aluOpSel <= '1'; + when opSubCy => aluOpSel <= '1'; + when opShRot => aluOpSel <= '1'; + when others => aluOpSel <= '-'; + portInSel <= '-'; + scratchpadSel <= '-'; + end case; + end process selectdataSource; + + registerFileSel <= aluOpSel and twoRegInstr; + instrDataSel <= aluOpSel and (not twoRegInstr); + + regWriteEn <= enInt and (not discardOpCode); + + regWriteTable: process(opCode, regWriteEn) + begin + case opCode(opCodeLength-1 downto 0) is + when opLoad => regWrite <= regWriteEn; + when opInput => regWrite <= regWriteEn; + when opFetch => regWrite <= regWriteEn; + when opAnd => regWrite <= regWriteEn; + when opOr => regWrite <= regWriteEn; + when opXor => regWrite <= regWriteEn; + when opAdd => regWrite <= regWriteEn; + when opAddCy => regWrite <= regWriteEn; + when opSub => regWrite <= regWriteEn; + when opSubCy => regWrite <= regWriteEn; + when opShRot => regWrite <= regWriteEn; + when others => regWrite <= '0'; + end case; + end process regWriteTable; + + ------------------------------------------------------------------------------ + -- I/O controls + readStrobe <= enInt when (opCode = opInput) and (discardOpCode = '0') + else '0'; + writeStrobe <= enInt when (opCode = opOutput) and (discardOpCode = '0') + else '0'; + + ------------------------------------------------------------------------------ + -- scratchpad controls + scratchpadWrite <= '1' when opCode = opStore else '0'; + + ------------------------------------------------------------------------------ + -- Carry logic + flagsEn <= enInt and (not branchEnable); + + flagsEnableTable: process(opCode, flagsEn) + begin + case opCode(opCodeLength-1 downto 0) is + when opAnd => flagsEnable <= flagsEn; + when opOr => flagsEnable <= flagsEn; + when opXor => flagsEnable <= flagsEn; + when opTest => flagsEnable <= flagsEn; + when opComp => flagsEnable <= flagsEn; + when opAdd => flagsEnable <= flagsEn; + when opAddCy => flagsEnable <= flagsEn; + when opSub => flagsEnable <= flagsEn; + when opSubCy => flagsEnable <= flagsEn; + when opShRot => flagsEnable <= flagsEn; + when others => flagsEnable <= '0'; + end case; + end process flagsEnableTable; + + saveCarries: process(reset, clock) + begin + if reset = '1' then + carrySaved <= '0'; + zeroSaved <= '0'; + elsif rising_edge(clock) then + if flagsEnable = '1' then + carrySaved <= cOut; + zeroSaved <= zero; + end if; + end if; + end process saveCarries; + + cIn <= carrySaved; + + ------------------------------------------------------------------------------ + -- Program counter controls + checkBranchCondition: process(branchCond, zeroSaved, carrySaved) + begin + case branchCond(branchConditionLength-1 downto 0) is + when brAw => branchEnable1 <= '1'; + when brZ => branchEnable1 <= zeroSaved; + when brNZ => branchEnable1 <= not zeroSaved; + when brC => branchEnable1 <= carrySaved; + when brNC => branchEnable1 <= not carrySaved; + when others => branchEnable1 <= '-'; + end case; + end process checkBranchCondition; + + branchEnableTable: process(opCode, branchEnable1, discardOpCode) + begin + if discardOpCode = '0' then + case opCode(opCodeLength-1 downto 0) is + when opRet => branchEnable <= branchEnable1; + when opCall => branchEnable <= branchEnable1; + when opJump => branchEnable <= branchEnable1; + when others => branchEnable <= '0'; + end case; + else + branchEnable <= '0'; + end if; + end process branchEnableTable; + + progCounterControlTable: process(opCode, enInt, branchEnable) + begin + incPC <= enInt; + loadInstrAddress <= '0'; + loadStoredPC <= '0'; + case opCode(opCodeLength-1 downto 0) is + when opRet => incPC <= not branchEnable; + loadStoredPC <= enInt and branchEnable; + when opCall => incPC <= not branchEnable; + loadInstrAddress <= enInt and branchEnable; + when opJump => incPC <= not branchEnable; + loadInstrAddress <= enInt and branchEnable; + when others => null; + end case; + end process progCounterControlTable; + + -- If a branch condition is met, the next operation has to be discarded. + -- This is due to the synchronous operation of the program ROM: the + -- instructions are provided one clock period after the program counter. + -- so while the branch operation is processed, the next instruction is + -- already being fetched. + delayBranchEnable: process(reset, clock) + begin + if reset = '1' then + discardOpCode <= '0'; + elsif rising_edge(clock) then + discardOpCode <= branchEnable; + end if; + end process delayBranchEnable; + + ------------------------------------------------------------------------------ + -- Stack pointer controls + pcStackControlTable: process(discardOpCode, opCode, enInt) + begin + storePC <= '0'; + prevPC <= '0'; + if discardOpCode = '0' then + case opCode(opCodeLength-1 downto 0) is + when opRet => prevPC <= enInt; + when opCall => storePC <= enInt; + when others => null; + end case; + end if; + end process pcStackControlTable; + + + ------------------------------------------------------------------------------ + -- interrupt control + updateIntFlag <= '1' when opCode = opIntF else '0'; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.instructionDecoder.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY instructionDecoder IS + GENERIC( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + instructionBitNb : positive := 18; + programCounterBitNb : positive := 10; + opCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + intCodeBitNb : positive := 5; + spadAddressBitNb : natural := 4; + portAddressBitNb : positive := 8 + ); + PORT( + instruction : IN std_ulogic_vector ( instructionBitNb-1 DOWNTO 0 ); + addrA : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : OUT std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + branchCond : OUT std_ulogic_vector (branchCondBitNb-1 DOWNTO 0); + instrAddress : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + instrData : OUT signed ( registerBitNb-1 DOWNTO 0 ); + intCode : OUT std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : OUT std_ulogic_vector ( opCodeBitNb-1 DOWNTO 0 ); + portAddress : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portIndexedSel : OUT std_ulogic; + spadAddress : OUT unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + spadIndexedSel : OUT std_ulogic; + twoRegInstr : OUT std_ulogic + ); + +-- Declarations + +END instructionDecoder ; + + + + + +ARCHITECTURE RTL OF instructionDecoder IS + + constant opCodeIndexH : integer := instruction'high; + constant opCodeIndexL : integer := opCodeIndexH - opCodeBitNb + 1; + + constant twoRegInstrIndex : integer := opCodeIndexL - 1; + constant ioAddrIndexed : integer := twoRegInstrIndex; + + constant addrAIndexH : integer := twoRegInstrIndex - 1; + constant addrAIndexL : integer := addrAIndexH - registerAddressBitNb + 1; + + constant immediateDataIndexH : integer := registerBitNb-1; + constant immediateDataIndexL : integer := 0; + constant addrBIndexH : integer := addrAIndexL - 1; + constant addrBIndexL : integer := addrBIndexH - registerAddressBitNb + 1; + + constant aluCodeIndexH : integer := opCodeIndexH; + constant aluCodeIndexL : integer := aluCodeIndexH - aluCodeBitNb + 1; + + constant portAddressH : integer := registerBitNb-1; + constant portAddressL : integer := portAddressH-portAddressBitNb+1; + constant spadAddressH : integer := registerBitNb-1; + constant spadAddressL : integer := spadAddressH-spadAddressBitNb+1; + + constant branchCondH : integer := opCodeIndexL-1; + constant branchCondL : integer := branchCondH-branchCondBitNb+1; + +BEGIN + ------------------------------------------------------------------------------ + -- ALU control + aluCode <= + instruction(aluCodeIndexH downto aluCodeIndexL) + when instruction(aluCodeIndexH) = '0' else + '1' & instruction(aluCodeBitNb-2 downto 0); + opCode <= instruction(opCodeIndexH downto opCodeIndexL); + twoRegInstr <= instruction(twoRegInstrIndex); + addrA <= unsigned(instruction(addrAIndexH downto addrAIndexL)); + addrB <= unsigned(instruction(addrBIndexH downto addrBIndexL)); + instrData <= signed(instruction(immediateDataIndexH downto immediateDataIndexL)); + + ------------------------------------------------------------------------------ + -- I/O control + portIndexedSel <= instruction(ioAddrIndexed); + portAddress <= unsigned(instruction(portAddressH downto portAddressL)); + + ------------------------------------------------------------------------------ + -- scratchpad control + spadIndexedSel <= instruction(ioAddrIndexed); + spadAddress <= unsigned(instruction(spadAddressH downto spadAddressL)); + + ------------------------------------------------------------------------------ + -- branch control + branchCond <= instruction(branchCondH downto branchCondL); + instrAddress <= unsigned(instruction(instrAddress'range)); + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.programCounter.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY programCounter IS + GENERIC( + programCounterBitNb : positive := 10 + ); + PORT( + clock : IN std_ulogic; + incPC : IN std_ulogic; + instrAddress : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + loadInstrAddress : IN std_ulogic; + loadStoredPC : IN std_ulogic; + reset : IN std_ulogic; + storedProgCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END programCounter ; + + + + + +ARCHITECTURE RTL OF programCounter IS + + signal pCounter: unsigned(progCounter'range); + +BEGIN + + updateProgramCounter: process(reset, clock) + begin + if reset = '1' then + pCounter <= (others => '0'); + elsif rising_edge(clock) then + if incPC = '1' then + pCounter <= pCounter + 1; + elsif loadInstrAddress = '1' then + pCounter <= instrAddress; + elsif loadStoredPC = '1' then + pCounter <= storedProgCounter; + end if; + end if; + end process updateProgramCounter; + + progCounter <= pCounter; + +END ARCHITECTURE RTL; + + + + +-- VHDL Entity NanoBlaze.scratchpad.symbol +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 11:44:17 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +ENTITY scratchpad IS + GENERIC( + registerBitNb : positive := 8; + spadAddressBitNb : natural := 4 + ); + PORT( + addr : IN unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic; + dataIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic; + write : IN std_ulogic; + dataOut : OUT signed ( registerBitNb-1 DOWNTO 0 ) + ); + +-- Declarations + +END scratchpad ; + + + + + +ARCHITECTURE RTL OF scratchpad IS + + subtype memoryWordType is signed(dataOut'range); + type memoryArrayType is array (0 to 2**addr'length-1) of memoryWordType; + + signal memoryArray : memoryArrayType; + +BEGIN + + process (clock) + begin + if rising_edge(clock) then + if write = '1' then + memoryArray(to_integer(addr)) <= dataIn; + end if; + end if; + end process; + + dataOut <= memoryArray(to_integer(addr)); + +END ARCHITECTURE RTL; + + + + +-- +-- VHDL Architecture NanoBlaze.nanoProcessor.struct +-- +-- Created: +-- by - silvan.zahno.UNKNOWN (WE6996) +-- at - 07:38:43 11.11.2019 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY NanoBlaze; + +ARCHITECTURE struct OF nanoProcessor IS + + -- Architecture declarations + constant aluCodeBitNb: positive := 5; + constant opCodeBitNb: positive := 5; + constant branchCondBitNb: positive := 3; + constant intCodeBitNb: positive := 5; + + -- Internal signal declarations + SIGNAL addrA : unsigned( registerAddressBitNb-1 DOWNTO 0 ); + SIGNAL addrB : unsigned( registerAddressBitNb-1 DOWNTO 0 ); + SIGNAL aluCode : std_ulogic_vector( aluCodeBitNb-1 DOWNTO 0 ); + SIGNAL branchCond : std_ulogic_vector(branchCondBitNb-1 DOWNTO 0); + SIGNAL cIn : std_ulogic; + SIGNAL cOut : std_ulogic; + SIGNAL incPC : std_ulogic; + SIGNAL instrAddress : unsigned( programCounterBitNb-1 DOWNTO 0 ); + SIGNAL instrData : signed( registerBitNb-1 DOWNTO 0 ); + SIGNAL instrDataSel : std_ulogic; + SIGNAL instrString : string(1 TO 16); + SIGNAL intCode : std_ulogic_vector( intCodeBitNb-1 DOWNTO 0 ); + SIGNAL loadInstrAddress : std_ulogic; + SIGNAL loadStoredPC : std_ulogic; + SIGNAL opCode : std_ulogic_vector( opCodeBitNb-1 DOWNTO 0 ); + SIGNAL portIn : signed( registerBitNb-1 DOWNTO 0 ); + SIGNAL portInSel : std_ulogic; + SIGNAL portIndexedSel : std_ulogic; + SIGNAL portInstrAddress : unsigned(addressBitNb-1 DOWNTO 0); + SIGNAL portOut : signed( registerBitNb-1 DOWNTO 0 ); + SIGNAL portRegAddress : unsigned(addressBitNb-1 DOWNTO 0); + SIGNAL prevPC : std_ulogic; + SIGNAL regWrite : std_ulogic; + SIGNAL registerFileSel : std_ulogic; + SIGNAL scratchpadSel : std_ulogic; + SIGNAL scratchpadWrite : std_ulogic; + SIGNAL spadAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0); + SIGNAL spadIn : signed(registerBitNb-1 DOWNTO 0); + SIGNAL spadIndexedSel : std_ulogic; + SIGNAL spadInstrAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0); + SIGNAL spadOut : signed(registerBitNb-1 DOWNTO 0); + SIGNAL spadRegAddress : unsigned(scratchpadAddressBitNb-1 DOWNTO 0); + SIGNAL storePC : std_ulogic; + SIGNAL storedProgCounter : unsigned( programCounterBitNb-1 DOWNTO 0 ); + SIGNAL twoRegInstr : std_ulogic; + SIGNAL zero : std_ulogic; + + -- Implicit buffer signal declarations + SIGNAL progCounter_internal : unsigned ( programCounterBitNb-1 DOWNTO 0 ); + + + -- Component Declarations + COMPONENT aluAndRegs + GENERIC ( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + portAddressBitNb : positive := 8; + scratchpadAddressBitNb : natural := 4 + ); + PORT ( + addrA : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : IN unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : IN std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + cIn : IN std_ulogic ; + clock : IN std_ulogic ; + instrData : IN signed ( registerBitNb-1 DOWNTO 0 ); + instrDataSel : IN std_ulogic ; + portIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + portInSel : IN std_ulogic ; + regWrite : IN std_ulogic ; + registerFileSel : IN std_ulogic ; + reset : IN std_ulogic ; + scratchpadSel : IN std_ulogic ; + spadIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + cOut : OUT std_ulogic ; + portAddr : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + scratchpadAddr : OUT unsigned (scratchpadAddressBitNb-1 DOWNTO 0); + spadOut : OUT signed ( registerBitNb-1 DOWNTO 0 ); + zero : OUT std_ulogic + ); + END COMPONENT; + COMPONENT branchStack + GENERIC ( + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5 + ); + PORT ( + clock : IN std_ulogic ; + prevPC : IN std_ulogic ; + progCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic ; + storePC : IN std_ulogic ; + storedProgCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + COMPONENT controller + GENERIC ( + intCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + opCodeBitNb : positive := 5 + ); + PORT ( + branchCond : IN std_ulogic_vector ( branchCondBitNb-1 DOWNTO 0 ); + cOut : IN std_ulogic ; + clock : IN std_ulogic ; + en : IN std_ulogic ; + int : IN std_uLogic ; + intCode : IN std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : IN std_ulogic_vector (opCodeBitNb-1 DOWNTO 0); + reset : IN std_ulogic ; + twoRegInstr : IN std_ulogic ; + zero : IN std_ulogic ; + cIn : OUT std_ulogic ; + incPC : OUT std_ulogic ; + instrDataSel : OUT std_ulogic ; + intAck : OUT std_ulogic ; + loadInstrAddress : OUT std_ulogic ; + loadStoredPC : OUT std_ulogic ; + portInSel : OUT std_ulogic ; + prevPC : OUT std_ulogic ; + readStrobe : OUT std_uLogic ; + regWrite : OUT std_ulogic ; + registerFileSel : OUT std_ulogic ; + scratchpadSel : OUT std_ulogic ; + scratchpadWrite : OUT std_ulogic ; + storePC : OUT std_ulogic ; + writeStrobe : OUT std_uLogic + ); + END COMPONENT; + COMPONENT instructionDecoder + GENERIC ( + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + aluCodeBitNb : positive := 5; + instructionBitNb : positive := 18; + programCounterBitNb : positive := 10; + opCodeBitNb : positive := 5; + branchCondBitNb : positive := 3; + intCodeBitNb : positive := 5; + spadAddressBitNb : natural := 4; + portAddressBitNb : positive := 8 + ); + PORT ( + instruction : IN std_ulogic_vector ( instructionBitNb-1 DOWNTO 0 ); + addrA : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + addrB : OUT unsigned ( registerAddressBitNb-1 DOWNTO 0 ); + aluCode : OUT std_ulogic_vector ( aluCodeBitNb-1 DOWNTO 0 ); + branchCond : OUT std_ulogic_vector (branchCondBitNb-1 DOWNTO 0); + instrAddress : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + instrData : OUT signed ( registerBitNb-1 DOWNTO 0 ); + intCode : OUT std_ulogic_vector ( intCodeBitNb-1 DOWNTO 0 ); + opCode : OUT std_ulogic_vector ( opCodeBitNb-1 DOWNTO 0 ); + portAddress : OUT unsigned (portAddressBitNb-1 DOWNTO 0); + portIndexedSel : OUT std_ulogic ; + spadAddress : OUT unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + spadIndexedSel : OUT std_ulogic ; + twoRegInstr : OUT std_ulogic + ); + END COMPONENT; + COMPONENT programCounter + GENERIC ( + programCounterBitNb : positive := 10 + ); + PORT ( + clock : IN std_ulogic ; + incPC : IN std_ulogic ; + instrAddress : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + loadInstrAddress : IN std_ulogic ; + loadStoredPC : IN std_ulogic ; + reset : IN std_ulogic ; + storedProgCounter : IN unsigned ( programCounterBitNb-1 DOWNTO 0 ); + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + COMPONENT scratchpad + GENERIC ( + registerBitNb : positive := 8; + spadAddressBitNb : natural := 4 + ); + PORT ( + addr : IN unsigned ( spadAddressBitNb-1 DOWNTO 0 ); + clock : IN std_ulogic ; + dataIn : IN signed ( registerBitNb-1 DOWNTO 0 ); + reset : IN std_ulogic ; + write : IN std_ulogic ; + dataOut : OUT signed ( registerBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : aluAndRegs USE ENTITY NanoBlaze.aluAndRegs; +-- FOR ALL : branchStack USE ENTITY NanoBlaze.branchStack; +-- FOR ALL : controller USE ENTITY NanoBlaze.controller; +-- FOR ALL : instructionDecoder USE ENTITY NanoBlaze.instructionDecoder; +-- FOR ALL : programCounter USE ENTITY NanoBlaze.programCounter; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + dataAddress <= portInstrAddress when portIndexedSel = '0' else portRegAddress; + + -- HDL Embedded Text Block 2 eb2 + dataOut <= std_ulogic_vector(portOut); + portIn <= signed(dataIn); + + -- HDL Embedded Text Block 3 eb3 + spadAddress <= spadInstrAddress when spadIndexedSel = '0' else spadRegAddress; + + -- HDL Embedded Text Block 4 eb4 + -- pragma translate_off + + process(instruction) + + constant bitsPerHexDigit : positive := 4; + + function pad(inString : string; outLength : positive) return string is + variable outString : string(1 to outLength); + begin + outString := (others => ' '); + outString(inString'range) := inString; + return outString; + end function pad; + + function hexDigitNb(bitNb : positive) return positive is + begin + return (bitNb-1)/bitsPerHexDigit+1; + end function hexDigitNb; + + function to01(nineValued : unsigned) return unsigned is + variable twoValued : unsigned(nineValued'range); + begin + twoValued := (others => '0'); + for index in nineValued'range loop + if (nineValued(index) = '1') or (nineValued(index) = 'H') then + twoValued(index) := '1'; + end if; + end loop; + return twoValued; + end function to01; + + variable opCode : unsigned(1+opCodeBitNb-1 downto 0); + variable destRegister : unsigned(registerAddressBitNb-1 downto 0); + variable destRegisterString : string(1 to 1+hexDigitNb(registerAddressBitNb)); + variable sourceRegister : unsigned(registerAddressBitNb-1 downto 0); + variable sourceRegisterString : string(1 to 1+hexDigitNb(registerAddressBitNb)); + variable sourceConstant : unsigned(registerBitNb-1 downto 0); + variable sourceConstantString : string(1 to hexDigitNb(registerBitNb)); + variable branchAddress : unsigned(programCounterBitNb-1 downto 0); + variable branchAddressString : string(1 to hexDigitNb(programCounterBitNb)); + variable branchKind : unsigned(1 downto 0); + variable shRotCin : unsigned(2 downto 0); + variable shRotDir: std_ulogic; + + function toHexDigit(binary : unsigned(bitsPerHexDigit-1 downto 0)) return character is + begin + if binary <= 9 then + return character'val(character'pos('0') + to_integer(to01(binary))); + else + return character'val(character'pos('A') + to_integer(to01(binary)) - 10); + end if; + end function toHexDigit; + + function toHexString(binary : unsigned) return string is + variable hexString : string(1 to hexDigitNb(binary'length)); + begin + for index in hexString'high-1 downto 0 loop + hexString(hexString'high-index) := toHexDigit( + resize(shift_right(binary, bitsPerHexDigit*index), bitsPerHexDigit) + ); + end loop; + return hexString; + end function toHexString; + + begin + + opCode := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length), + opCode'length + ); + destRegister := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-destRegister'length), + destRegister'length + ); + destRegisterString := 's' & toHexDigit(destRegister); + sourceRegister := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-destRegister'length-sourceRegister'length), + sourceRegister'length + ); + sourceRegisterString := 's' & toHexDigit(sourceRegister); + sourceConstant := resize(unsigned(instruction), sourceConstant'length); + sourceConstantString := toHexString(sourceConstant); + branchKind := resize( + shift_right(unsigned(instruction), instruction'length-opCode'length-branchKind'length), + branchKind'length + ); + branchAddress := resize(unsigned(instruction), branchAddress'length); + branchAddressString := toHexString(branchAddress); + shRotCin := resize(shift_right(unsigned(instruction), 1), shRotCin'length); + shRotDir := instruction(0); + + case opCode is + when "000000" => instrString <= pad("LOAD " & destRegisterString & " " & sourceConstantString, instrString'length); + when "000001" => instrString <= pad("LOAD " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "000100" => instrString <= pad("INPUT " & destRegisterString & " " & sourceConstantString, instrString'length); + when "000101" => instrString <= pad("INPUT " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "000110" => instrString <= pad("FETCH " & destRegisterString & " " & sourceConstantString, instrString'length); + when "000111" => instrString <= pad("FETCH " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "001010" => instrString <= pad("AND " & destRegisterString & " " & sourceConstantString, instrString'length); + when "001011" => instrString <= pad("AND " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "001100" => instrString <= pad("OR " & destRegisterString & " " & sourceConstantString, instrString'length); + when "001101" => instrString <= pad("OR " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "001110" => instrString <= pad("XOR " & destRegisterString & " " & sourceConstantString, instrString'length); + when "001111" => instrString <= pad("XOR " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "010010" => instrString <= pad("TEST " & destRegisterString & " " & sourceConstantString, instrString'length); + when "010011" => instrString <= pad("TEST " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "010100" => instrString <= pad("COMP " & destRegisterString & " " & sourceConstantString, instrString'length); + when "010101" => instrString <= pad("COMP " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011000" => instrString <= pad("ADD " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011001" => instrString <= pad("ADD " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011010" => instrString <= pad("ADDCY " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011011" => instrString <= pad("ADDCY " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011100" => instrString <= pad("SUB " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011101" => instrString <= pad("SUB " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "011110" => instrString <= pad("SUBCY " & destRegisterString & " " & sourceConstantString, instrString'length); + when "011111" => instrString <= pad("SUBCY " & destRegisterString & " " & sourceRegisterString, instrString'length); + when "100000" => + case shRotCin is + when "000" => instrString <= pad("SLA " & destRegisterString, instrString'length); + when "001" => instrString <= pad("RL " & destRegisterString, instrString'length); + when "010" => instrString <= pad("SLX " & destRegisterString, instrString'length); + when "011" => + case shRotDir is + when '0' => instrString <= pad("SL0 " & destRegisterString, instrString'length); + when '1' => instrString <= pad("SL1 " & destRegisterString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when "100" => instrString <= pad("SRA " & destRegisterString, instrString'length); + when "101" => instrString <= pad("SRX " & destRegisterString, instrString'length); + when "110" => instrString <= pad("RR " & destRegisterString, instrString'length); + when "111" => + case shRotDir is + when '0' => instrString <= pad("SR0 " & destRegisterString, instrString'length); + when '1' => instrString <= pad("SR1 " & destRegisterString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when others => instrString <= pad("--------", instrString'length); + end case; + when "101100" => instrString <= pad("OUTPUT " & destRegisterString & " " & sourceConstantString, instrString'length); + when "101101" => instrString <= pad("OUTPUT " & destRegisterString & " (" & sourceRegisterString & ")", instrString'length); + when "101110" => instrString <= pad("STORE " & destRegisterString & " " & sourceConstantString, instrString'length); + when "101111" => instrString <= pad("STORE " & destRegisterString & " (" & sourceRegisterString & ")", instrString'length); + when "101010" => instrString <= pad("RET", instrString'length); + when "101011" => + case branchKind is + when "00" => instrString <= pad("RET Z", instrString'length); + when "01" => instrString <= pad("RET NZ", instrString'length); + when "10" => instrString <= pad("RET C", instrString'length); + when "11" => instrString <= pad("RET NC", instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when "110000" => instrString <= pad("CALL " & branchAddressString, instrString'length); + when "110001" => + case branchKind is + when "00" => instrString <= pad("CALL Z " & branchAddressString, instrString'length); + when "01" => instrString <= pad("CALL NZ " & branchAddressString, instrString'length); + when "10" => instrString <= pad("CALL C " & branchAddressString, instrString'length); + when "11" => instrString <= pad("CALL NC " & branchAddressString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when "110100" => instrString <= pad("JUMP " & branchAddressString, instrString'length); + when "110101" => + case branchKind is + when "00" => instrString <= pad("JUMP Z " & branchAddressString, instrString'length); + when "01" => instrString <= pad("JUMP NZ " & branchAddressString, instrString'length); + when "10" => instrString <= pad("JUMP C " & branchAddressString, instrString'length); + when "11" => instrString <= pad("JUMP NC " & branchAddressString, instrString'length); + when others => instrString <= pad("--------", instrString'length); + end case; + when others => instrString <= pad("--------", instrString'length); + end case; + + end process; + + -- pragma translate_on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- Instance port mappings. + I_alu : aluAndRegs + GENERIC MAP ( + registerBitNb => registerBitNb, + registerAddressBitNb => registerAddressBitNb, + aluCodeBitNb => aluCodeBitNb, + portAddressBitNb => addressBitNb, + scratchpadAddressBitNb => scratchpadAddressBitNb + ) + PORT MAP ( + addrA => addrA, + addrB => addrB, + aluCode => aluCode, + cIn => cIn, + clock => clock, + instrData => instrData, + instrDataSel => instrDataSel, + portIn => portIn, + portInSel => portInSel, + regWrite => regWrite, + registerFileSel => registerFileSel, + reset => reset, + scratchpadSel => scratchpadSel, + spadIn => spadIn, + cOut => cOut, + portAddr => portRegAddress, + portOut => portOut, + scratchpadAddr => spadRegAddress, + spadOut => spadOut, + zero => zero + ); + I_BR : branchStack + GENERIC MAP ( + programCounterBitNb => programCounterBitNb, + stackPointerBitNb => stackPointerBitNb + ) + PORT MAP ( + clock => clock, + prevPC => prevPC, + progCounter => progCounter_internal, + reset => reset, + storePC => storePC, + storedProgCounter => storedProgCounter + ); + I_ctrl : controller + GENERIC MAP ( + intCodeBitNb => 5, + branchCondBitNb => branchCondBitNb, + opCodeBitNb => opCodeBitNb + ) + PORT MAP ( + branchCond => branchCond, + cOut => cOut, + clock => clock, + en => en, + int => int, + intCode => intCode, + opCode => opCode, + reset => reset, + twoRegInstr => twoRegInstr, + zero => zero, + cIn => cIn, + incPC => incPC, + instrDataSel => instrDataSel, + intAck => intAck, + loadInstrAddress => loadInstrAddress, + loadStoredPC => loadStoredPC, + portInSel => portInSel, + prevPC => prevPC, + readStrobe => readStrobe, + regWrite => regWrite, + registerFileSel => registerFileSel, + scratchpadSel => scratchpadSel, + scratchpadWrite => scratchpadWrite, + storePC => storePC, + writeStrobe => writeStrobe + ); + I_instr : instructionDecoder + GENERIC MAP ( + registerBitNb => registerBitNb, + registerAddressBitNb => registerAddressBitNb, + aluCodeBitNb => aluCodeBitNb, + instructionBitNb => instructionBitNb, + programCounterBitNb => programCounterBitNb, + opCodeBitNb => opCodeBitNb, + branchCondBitNb => branchCondBitNb, + intCodeBitNb => 5, + spadAddressBitNb => scratchpadAddressBitNb, + portAddressBitNb => addressBitNb + ) + PORT MAP ( + instruction => instruction, + addrA => addrA, + addrB => addrB, + aluCode => aluCode, + branchCond => branchCond, + instrAddress => instrAddress, + instrData => instrData, + intCode => intCode, + opCode => opCode, + portAddress => portInstrAddress, + portIndexedSel => portIndexedSel, + spadAddress => spadInstrAddress, + spadIndexedSel => spadIndexedSel, + twoRegInstr => twoRegInstr + ); + I_PC : programCounter + GENERIC MAP ( + programCounterBitNb => programCounterBitNb + ) + PORT MAP ( + clock => clock, + incPC => incPC, + instrAddress => instrAddress, + loadInstrAddress => loadInstrAddress, + loadStoredPC => loadStoredPC, + reset => reset, + storedProgCounter => storedProgCounter, + progCounter => progCounter_internal + ); + + g_scratchpad: IF scratchpadAddressBitNb > 0 GENERATE + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : scratchpad USE ENTITY NanoBlaze.scratchpad; + -- pragma synthesis_on + + BEGIN + I_sPad : scratchpad + GENERIC MAP ( + registerBitNb => registerBitNb, + spadAddressBitNb => scratchpadAddressBitNb + ) + PORT MAP ( + addr => spadAddress, + clock => clock, + dataIn => spadOut, + reset => reset, + write => scratchpadWrite, + dataOut => spadIn + ); + END GENERATE g_scratchpad; + + -- Implicit buffered output assignments + progCounter <= progCounter_internal; + +END struct; + + + + +-- +-- VHDL Architecture SystemOnChip.beamerSoc.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 15:02:29 28.04.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.ALL; +-- LIBRARY AhbLite; + use work.ahbLite.all; + +-- LIBRARY AhbLiteComponents; +-- LIBRARY NanoBlaze; +-- LIBRARY SystemOnChip; + +ARCHITECTURE struct OF beamerSoc IS + + -- Architecture declarations + constant programCounterBitNb: positive := 10; + constant instructionBitNb: positive := 26; + constant stackPointerBitNb: positive := 4; + constant registerAddressBitNb: positive := 4; + constant scratchpadAddressBitNb: natural := 0; + + constant signalBitNb: positive := 16; + constant updatePeriodBitNb : positive := 16; + + constant gpioIndex: positive := 1; + constant uartIndex: positive := gpioIndex+1; + constant beamerIndex: positive := uartIndex+1; + + constant ahbMemoryLocation : ahbMemoryLocationVector := ( + gpioIndex => ( + baseAddress => 16#0000#, + addressMask => 16#10000# - 16#0002# + ), + uartIndex => ( + baseAddress => 16#0010#, + addressMask => 16#10000# - 16#0004# + ), + beamerIndex => ( + baseAddress => 16#0020#, + addressMask => 16#10000# - 16#0004# + ), + others => ( + baseAddress => 16#FFFF#, + addressMask => 16#0000# + ) + ); + + -- Internal signal declarations + SIGNAL upEn : std_ulogic; + SIGNAL int : std_uLogic; + SIGNAL upAddress : unsigned(ahbAddressBitNb-1 DOWNTO 0); + SIGNAL upDataOut : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL upDataIn : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL upReadStrobe : std_uLogic; + SIGNAL upWriteStrobe : std_uLogic; + SIGNAL hAddr : unsigned(ahbAddressBitNb-1 DOWNTO 0); + SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0); + SIGNAL hSize : std_ulogic_vector(ahbSizeBitNb-1 DOWNTO 0); + SIGNAL hBurst : std_ulogic_vector(ahbBurstBitNb-1 DOWNTO 0); + SIGNAL hProt : std_ulogic_vector(ahbProtBitNb-1 DOWNTO 0); + SIGNAL hWrite : std_uLogic; + SIGNAL hReady : std_uLogic; + SIGNAL hMastLock : std_uLogic; + SIGNAL hResp : std_uLogic; + SIGNAL hClk : std_uLogic; + SIGNAL hReset_n : std_uLogic; + SIGNAL hSelV : std_ulogic_vector(1 TO ahbSlaveNb); + SIGNAL hRDataV : ahbDataVector; + SIGNAL hReadyV : std_logic_vector(1 TO ahbSlaveNb); + SIGNAL hRespV : std_logic_vector(1 TO ahbSlaveNb); + SIGNAL hSelGpio : std_uLogic; + SIGNAL hRespGpio : std_uLogic; + SIGNAL hReadyGpio : std_uLogic; + SIGNAL hRDataGpio : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hRDataBeamer : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hRDataUart : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0); + SIGNAL hSelBeamer : std_uLogic; + SIGNAL hSelUart : std_uLogic; + SIGNAL hRespUart : std_uLogic; + SIGNAL hRespBeamer : std_uLogic; + SIGNAL hReadyBeamer : std_uLogic; + SIGNAL hReadyUart : std_uLogic; + SIGNAL intAck : std_ulogic; + SIGNAL instruction : std_ulogic_vector(instructionBitNb-1 DOWNTO 0); + SIGNAL programCounter : unsigned(programCounterBitNb-1 DOWNTO 0); + + + -- Component Declarations + COMPONENT ahbDecoder + GENERIC ( + ahbMemoryLocation : ahbMemoryLocationVector + ); + PORT ( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hSel : OUT std_ulogic_vector (1 TO ahbSlaveNb) + ); + END COMPONENT; + COMPONENT ahbMasterInterface + PORT ( + clock : IN std_ulogic ; + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic ; + hResp : IN std_uLogic ; + pAddress : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + pDataOut : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + pReadStrobe : IN std_uLogic ; + pWriteStrobe : IN std_uLogic ; + reset : IN std_ulogic ; + hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hBurst : OUT std_ulogic_vector (ahbBurstBitNb-1 DOWNTO 0); + hClk : OUT std_uLogic ; + hMastLock : OUT std_uLogic ; + hProt : OUT std_ulogic_vector (ahbProtBitNb-1 DOWNTO 0); + hReset_n : OUT std_uLogic ; + hSize : OUT std_ulogic_vector (ahbSizeBitNb-1 DOWNTO 0); + hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : OUT std_uLogic ; + pDataIn : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT ahbMultiplexor + PORT ( + hRDataV : IN ahbDataVector ; + hReadyV : IN std_logic_vector (1 TO ahbSlaveNb); + hRespV : IN std_logic_vector (1 TO ahbSlaveNb); + hSel : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic ; + hResp : OUT std_uLogic + ); + END COMPONENT; + COMPONENT ahbMuxConnector + GENERIC ( + index : positive := 1 + ); + PORT ( + hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : IN std_uLogic ; + hResp : IN std_uLogic ; + hSelV : IN std_ulogic_vector ( 1 TO ahbSlaveNb ); + hRDataV : OUT ahbDataVector ; + hReadyV : OUT std_logic_vector (1 TO ahbSlaveNb); + hRespV : OUT std_logic_vector (1 TO ahbSlaveNb); + hSel : OUT std_uLogic + ); + END COMPONENT; + COMPONENT ahbGpio + GENERIC ( + ioNb : positive := 8 + ); + PORT ( + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic ; + hReset_n : IN std_uLogic ; + hSel : IN std_uLogic ; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic ; + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic ; + hResp : OUT std_uLogic ; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0) + ); + END COMPONENT; + COMPONENT ahbUart + GENERIC ( + txFifoDepth : positive := 8; + rxFifoDepth : positive := 1 + ); + PORT ( + RxD : IN std_ulogic ; + hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 ); + hClk : IN std_uLogic ; + hReset_n : IN std_uLogic ; + hSel : IN std_uLogic ; + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hWrite : IN std_uLogic ; + TxD : OUT std_ulogic ; + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hReady : OUT std_uLogic ; + hResp : OUT std_uLogic + ); + END COMPONENT; + COMPONENT nanoProcessor + GENERIC ( + addressBitNb : positive := 8; + registerBitNb : positive := 8; + registerAddressBitNb : positive := 4; + programCounterBitNb : positive := 10; + stackPointerBitNb : positive := 5; + instructionBitNb : positive := 18; + scratchpadAddressBitNb : natural := 4 + ); + PORT ( + clock : IN std_ulogic ; + dataIn : IN std_ulogic_vector (registerBitNb-1 DOWNTO 0); + en : IN std_ulogic ; + instruction : IN std_ulogic_vector (instructionBitNb-1 DOWNTO 0); + int : IN std_uLogic ; + reset : IN std_ulogic ; + dataAddress : OUT unsigned (addressBitNb-1 DOWNTO 0); + dataOut : OUT std_ulogic_vector (registerBitNb-1 DOWNTO 0); + intAck : OUT std_ulogic ; + progCounter : OUT unsigned ( programCounterBitNb-1 DOWNTO 0 ); + readStrobe : OUT std_uLogic ; + writeStrobe : OUT std_uLogic + ); + END COMPONENT; + COMPONENT ahbBeamer + GENERIC ( + patternAddressBitNb : positive := 9; + testOutBitNb : positive := 16 + ); + PORT ( + outX : OUT std_ulogic ; + hAddr : IN unsigned (ahbAddressBitNb-1 DOWNTO 0); + outY : OUT std_ulogic ; + hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + selSinCos : IN std_ulogic ; + testOut : OUT std_ulogic_vector (1 TO testOutBitNb); + hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0); + hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0); + hWrite : IN std_ulogic ; + hSel : IN std_ulogic ; + hReady : OUT std_ulogic ; + hResp : OUT std_ulogic ; + hClk : IN std_ulogic ; + hReset_n : IN std_ulogic + ); + END COMPONENT; + COMPONENT programRom + GENERIC ( + addressBitNb : positive := 8; + dataBitNb : positive := 8 + ); + PORT ( + address : IN unsigned (addressBitNb-1 DOWNTO 0); + clock : IN std_ulogic ; + en : IN std_ulogic ; + reset : IN std_ulogic ; + dataOut : OUT std_ulogic_vector ( dataBitNb-1 DOWNTO 0 ) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : ahbBeamer USE ENTITY SystemOnChip.ahbBeamer; +-- FOR ALL : ahbDecoder USE ENTITY AhbLite.ahbDecoder; +-- FOR ALL : ahbGpio USE ENTITY AhbLiteComponents.ahbGpio; +-- FOR ALL : ahbMasterInterface USE ENTITY AhbLite.ahbMasterInterface; +-- FOR ALL : ahbMultiplexor USE ENTITY AhbLite.ahbMultiplexor; +-- FOR ALL : ahbMuxConnector USE ENTITY AhbLite.ahbMuxConnector; +-- FOR ALL : ahbUart USE ENTITY AhbLiteComponents.ahbUart; +-- FOR ALL : nanoProcessor USE ENTITY NanoBlaze.nanoProcessor; +-- FOR ALL : programRom USE ENTITY SystemOnChip.programRom; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 1 eb1 + upEn <= '1'; + + + -- Instance port mappings. + I_dec : ahbDecoder + GENERIC MAP ( + ahbMemoryLocation => ahbMemoryLocation + ) + PORT MAP ( + hAddr => hAddr, + hSel => hSelV + ); + I_mst : ahbMasterInterface + PORT MAP ( + clock => clock, + hRData => hRData, + hReady => hReady, + hResp => hResp, + pAddress => upAddress, + pDataOut => upDataOut, + pReadStrobe => upReadStrobe, + pWriteStrobe => upWriteStrobe, + reset => reset, + hAddr => hAddr, + hBurst => hBurst, + hClk => hClk, + hMastLock => hMastLock, + hProt => hProt, + hReset_n => hReset_n, + hSize => hSize, + hTrans => hTrans, + hWData => hWData, + hWrite => hWrite, + pDataIn => upDataIn + ); + I_mux : ahbMultiplexor + PORT MAP ( + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelV, + hRData => hRData, + hReady => hReady, + hResp => hResp + ); + I_connBeam : ahbMuxConnector + GENERIC MAP ( + index => beamerIndex + ) + PORT MAP ( + hRData => hRDataBeamer, + hReady => hReadyBeamer, + hResp => hRespBeamer, + hSelV => hSelV, + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelBeamer + ); + I_connT : ahbMuxConnector + GENERIC MAP ( + index => gpioIndex + ) + PORT MAP ( + hRData => hRDataGpio, + hReady => hReadyGpio, + hResp => hRespGpio, + hSelV => hSelV, + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelGpio + ); + I_connUart : ahbMuxConnector + GENERIC MAP ( + index => uartIndex + ) + PORT MAP ( + hRData => hRDataUart, + hReady => hReadyUart, + hResp => hRespUart, + hSelV => hSelV, + hRDataV => hRDataV, + hReadyV => hReadyV, + hRespV => hRespV, + hSel => hSelUart + ); + I_GPIO : ahbGpio + GENERIC MAP ( + ioNb => ioNb + ) + PORT MAP ( + hAddr => hAddr, + hClk => hClk, + hReset_n => hReset_n, + hSel => hSelGpio, + hTrans => hTrans, + hWData => hWData, + hWrite => hWrite, + ioIn => ioIn, + hRData => hRDataGpio, + hReady => hReadyGpio, + hResp => hRespGpio, + ioEn => ioEn, + ioOut => ioOut + ); + I_UART : ahbUart + GENERIC MAP ( + txFifoDepth => 8, + rxFifoDepth => 1 + ) + PORT MAP ( + RxD => RxD, + hAddr => hAddr, + hClk => hClk, + hReset_n => hReset_n, + hSel => hSelUart, + hTrans => hTrans, + hWData => hWData, + hWrite => hWrite, + TxD => TxD, + hRData => hRDataUart, + hReady => hReadyUart, + hResp => hRespUart + ); + I_up : nanoProcessor + GENERIC MAP ( + addressBitNb => ahbAddressBitNb, + registerBitNb => ahbDataBitNb, + registerAddressBitNb => registerAddressBitNb, + programCounterBitNb => programCounterBitNb, + stackPointerBitNb => stackPointerBitNb, + instructionBitNb => instructionBitNb, + scratchpadAddressBitNb => scratchpadAddressBitNb + ) + PORT MAP ( + clock => clock, + dataIn => upDataIn, + en => upEn, + instruction => instruction, + int => int, + reset => reset, + dataAddress => upAddress, + dataOut => upDataOut, + intAck => intAck, + progCounter => programCounter, + readStrobe => upReadStrobe, + writeStrobe => upWriteStrobe + ); + I_beamer : ahbBeamer + GENERIC MAP ( + patternAddressBitNb => patternAddressBitNb, + testOutBitNb => testOutBitNb + ) + PORT MAP ( + outX => outX, + hAddr => hAddr, + outY => outY, + hWData => hWData, + selSinCos => selSinCos, + testOut => testOut, + hRData => hRDataBeamer, + hTrans => hTrans, + hWrite => hWrite, + hSel => hSelBeamer, + hReady => hReadyBeamer, + hResp => hRespBeamer, + hClk => hClk, + hReset_n => hReset_n + ); + I_rom : programRom + GENERIC MAP ( + addressBitNb => programCounterBitNb, + dataBitNb => instructionBitNb + ) + PORT MAP ( + address => programCounter, + clock => clock, + en => upEn, + reset => reset, + dataOut => instruction + ); + +END struct; + + + + +-- +-- VHDL Architecture Board.SoC_ebs3.struct +-- +-- Created: +-- by - axel.amand.UNKNOWN (WE7860) +-- at - 10:21:25 08.05.2023 +-- +-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) +-- +LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all; + +-- LIBRARY Board; +-- LIBRARY Lattice; +-- LIBRARY SystemOnChip; + +ARCHITECTURE struct OF SoC_ebs3 IS + + -- Architecture declarations + constant ioNb: positive := 8; + constant testOutBitNb: positive := 16; + constant patternAddressBitNb: positive := 9; + + -- Internal signal declarations + SIGNAL clk_sys : std_ulogic; + SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0); + SIGNAL logic0 : std_ulogic; + SIGNAL logic1 : std_uLogic; + SIGNAL reset : std_ulogic; + SIGNAL resetSynch : std_ulogic; + SIGNAL resetSynch_N : std_ulogic; + SIGNAL rxdSynch : std_ulogic; + SIGNAL selSinCos : std_ulogic; + SIGNAL selSinCosSynch : std_ulogic; + SIGNAL testOut : std_ulogic_vector(1 TO testOutBitNb); + + + -- Component Declarations + COMPONENT DFF + PORT ( + CLK : IN std_uLogic ; + CLR : IN std_uLogic ; + D : IN std_uLogic ; + Q : OUT std_uLogic + ); + END COMPONENT; + COMPONENT inverterIn + PORT ( + in1 : IN std_uLogic ; + out1 : OUT std_uLogic + ); + END COMPONENT; + COMPONENT pll + PORT ( + clkIn100M : IN std_ulogic ; + en75M : IN std_ulogic ; + en50M : IN std_ulogic ; + en10M : IN std_ulogic ; + clk60MHz : OUT std_ulogic ; + clk75MHz : OUT std_ulogic ; + clk50MHz : OUT std_ulogic ; + clk10MHz : OUT std_ulogic ; + pllLocked : OUT std_ulogic + ); + END COMPONENT; + COMPONENT beamerSoc + GENERIC ( + ioNb : positive := 8; + testOutBitNb : positive := 16; + patternAddressBitNb : positive := 9 + ); + PORT ( + TxD : OUT std_ulogic ; + RxD : IN std_ulogic ; + outX : OUT std_ulogic ; + outY : OUT std_ulogic ; + selSinCos : IN std_ulogic ; + reset : IN std_ulogic ; + clock : IN std_ulogic ; + ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0); + ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0); + testOut : OUT std_ulogic_vector (1 TO testOutBitNb) + ); + END COMPONENT; + + -- Optional embedded configurations + -- pragma synthesis_off +-- FOR ALL : DFF USE ENTITY Board.DFF; +-- FOR ALL : beamerSoc USE ENTITY SystemOnChip.beamerSoc; +-- FOR ALL : inverterIn USE ENTITY Board.inverterIn; +-- FOR ALL : pll USE ENTITY Lattice.pll; + -- pragma synthesis_on + + +BEGIN + -- Architecture concurrent statements + -- HDL Embedded Text Block 3 eb3 + LED1 <= testOut(1); + LED2 <= testOut(2); + spare(testOut'range) <= testOut; + spare(testOut'high+1 to spare'high) <= (others => '0'); + + -- HDL Embedded Text Block 4 eb4 + logic1 <= '1'; + + -- HDL Embedded Text Block 5 eb5 + logic0 <= '0'; + + + -- Instance port mappings. + I8 : DFF + PORT MAP ( + CLK => clk_sys, + CLR => resetSynch, + D => RxD, + Q => rxdSynch + ); + I9 : DFF + PORT MAP ( + CLK => clk_sys, + CLR => resetSynch, + D => selSinCos, + Q => selSinCosSynch + ); + I12 : DFF + PORT MAP ( + CLK => clock, + CLR => reset, + D => logic1, + Q => resetSynch_N + ); + I2 : inverterIn + PORT MAP ( + in1 => reset_N, + out1 => reset + ); + I3 : inverterIn + PORT MAP ( + in1 => resetSynch_N, + out1 => resetSynch + ); + I7 : inverterIn + PORT MAP ( + in1 => selSinCos_n, + out1 => selSinCos + ); + I_pll : pll + PORT MAP ( + clkIn100M => clock, + en75M => logic0, + en50M => logic0, + en10M => logic0, + clk60MHz => clk_sys, + clk75MHz => OPEN, + clk50MHz => OPEN, + clk10MHz => OPEN, + pllLocked => OPEN + ); + I_top : beamerSoc + GENERIC MAP ( + ioNb => ioNb, + testOutBitNb => testOutBitNb, + patternAddressBitNb => patternAddressBitNb + ) + PORT MAP ( + TxD => TxD, + RxD => rxdSynch, + outX => xOut, + outY => yOut, + selSinCos => selSinCosSynch, + reset => resetSynch, + clock => clk_sys, + ioEn => OPEN, + ioOut => OPEN, + ioIn => ioIn, + testOut => testOut + ); + +END struct; + + + + diff --git a/06-07-08-09-SystemOnChip/Board/diamond/programmer.xcf b/06-07-08-09-SystemOnChip/Board/diamond/programmer.xcf new file mode 100644 index 0000000..468a2da --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/diamond/programmer.xcf @@ -0,0 +1,50 @@ + + + + + + JTAG + + + 1 + Renesas + ECP5U + LFE5U-25F + All + LFE5U-25F + + 8 + 11111111 + 1 + 0 + + + 04/11/23 16:14:28 + 0xA4B0 + Fast Program + + + + + SEQUENTIAL + ENTIRED CHAIN + No Override + TLR + TLR + + 4 + + + USB2 + FTUSB-0 + LFE5U-25F A Location 0000 Serial 018VFVT3A + + diff --git a/06-07-08-09-SystemOnChip/Board/diamond/reveal_analyze.rva b/06-07-08-09-SystemOnChip/Board/diamond/reveal_analyze.rva new file mode 100644 index 0000000..4249e0e --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/diamond/reveal_analyze.rva @@ -0,0 +1,638 @@ + + + lun. 6. mars 14:29:10 2023 + + + + + + + + + + + + 1 + + 0 + 1. LFE5U-25F + 0x41111043 + true + false + + 8 + reveal_config.rvl + reveal_config.rvs + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/06-07-08-09-SystemOnChip/Board/diamond/reveal_config.rvl b/06-07-08-09-SystemOnChip/Board/diamond/reveal_config.rvl new file mode 100644 index 0000000..28d2f1c --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/diamond/reveal_config.rvl @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/06-07-08-09-SystemOnChip/Board/diamond/strategy.sty b/06-07-08-09-SystemOnChip/Board/diamond/strategy.sty new file mode 100644 index 0000000..a2b5a4a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/diamond/strategy.sty @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.bit b/06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.bit new file mode 100644 index 0000000000000000000000000000000000000000..b654faf5e73961bfdce15a7d8bbadec2eb04ec15 GIT binary patch literal 587316 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 literal 0 HcmV?d00001 diff --git a/06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.ldf b/06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.ldf new file mode 100644 index 0000000..f1ae61d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/diamond/systemOnChip.ldf @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/06-07-08-09-SystemOnChip/Board/hdl/DFF_sim.vhd b/06-07-08-09-SystemOnChip/Board/hdl/DFF_sim.vhd new file mode 100644 index 0000000..cf8868a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hdl/DFF_sim.vhd @@ -0,0 +1,14 @@ +ARCHITECTURE sim OF DFF IS +BEGIN + + process(clk, clr) + begin + if clr = '1' then + q <= '0'; + elsif rising_edge(clk) then + q <= d; + end if; + end process; + +END ARCHITECTURE sim; + diff --git a/06-07-08-09-SystemOnChip/Board/hdl/buff_sim.vhd b/06-07-08-09-SystemOnChip/Board/hdl/buff_sim.vhd new file mode 100644 index 0000000..8ad27be --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hdl/buff_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF buff IS +BEGIN + + out1 <= in1; + +END ARCHITECTURE sim; + diff --git a/06-07-08-09-SystemOnChip/Board/hdl/inverterIn_sim.vhd b/06-07-08-09-SystemOnChip/Board/hdl/inverterIn_sim.vhd new file mode 100644 index 0000000..fb039ac --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hdl/inverterIn_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverterIn IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/06-07-08-09-SystemOnChip/Board/hdl/inverter_sim.vhd b/06-07-08-09-SystemOnChip/Board/hdl/inverter_sim.vhd new file mode 100644 index 0000000..ca5b6b5 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hdl/inverter_sim.vhd @@ -0,0 +1,7 @@ +ARCHITECTURE sim OF inverter IS +BEGIN + + out1 <= NOT in1; + +END ARCHITECTURE sim; + diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_DFF_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_buff_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_dff_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_entity.vhg._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_struct.vhg._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_fpga_beamer_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterIn_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverter_sim.vhd._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_inverterin_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_entity.vhg._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_entity.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_entity.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_struct.vhg._fpf b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_struct.vhg._fpf new file mode 100644 index 0000000..376bb70 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/.hdlsidedata/_soc_ebs3_struct.vhg._fpf @@ -0,0 +1 @@ +DIALECT atom VHDL_2008 diff --git a/06-07-08-09-SystemOnChip/Board/hds/@d@f@f/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/@d@f@f/symbol.sb new file mode 100644 index 0000000..555b689 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@d@f@f/symbol.sb @@ -0,0 +1,1211 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2004,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 157,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +uid 158,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +uid 159,0 +) +*4 (LogPort +port (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +uid 160,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +uid 161,0 +) +*6 (RefLabelRowHdr +) +*7 (TitleRowHdr +) +*8 (FilterRowHdr +) +*9 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*10 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*11 (GroupColHdr +tm "GroupColHdrMgr" +) +*12 (NameColHdr +tm "NameColHdrMgr" +) +*13 (ModeColHdr +tm "ModeColHdrMgr" +) +*14 (TypeColHdr +tm "TypeColHdrMgr" +) +*15 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*16 (InitColHdr +tm "InitColHdrMgr" +) +*17 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 162,0 +optionalChildren [ +*18 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *19 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 101,0 +optionalChildren [ +*20 (MRCItem +litem &6 +pos 0 +dimension 20 +uid 104,0 +) +*21 (MRCItem +litem &7 +pos 1 +dimension 23 +uid 106,0 +) +*22 (MRCItem +litem &8 +pos 2 +hidden 1 +dimension 20 +uid 108,0 +) +*23 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 127,0 +) +*24 (MRCItem +litem &3 +pos 2 +dimension 20 +uid 128,0 +) +*25 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 129,0 +) +*26 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 130,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 102,0 +optionalChildren [ +*27 (MRCItem +litem &9 +pos 0 +dimension 20 +uid 110,0 +) +*28 (MRCItem +litem &11 +pos 1 +dimension 50 +uid 114,0 +) +*29 (MRCItem +litem &12 +pos 2 +dimension 100 +uid 116,0 +) +*30 (MRCItem +litem &13 +pos 3 +dimension 50 +uid 118,0 +) +*31 (MRCItem +litem &14 +pos 4 +dimension 100 +uid 120,0 +) +*32 (MRCItem +litem &15 +pos 5 +dimension 100 +uid 122,0 +) +*33 (MRCItem +litem &16 +pos 6 +dimension 50 +uid 124,0 +) +*34 (MRCItem +litem &17 +pos 7 +dimension 80 +uid 126,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 100,0 +vaOverrides [ +] +) +] +) +uid 156,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *35 (LEmptyRow +) +uid 164,0 +optionalChildren [ +*36 (RefLabelRowHdr +) +*37 (TitleRowHdr +) +*38 (FilterRowHdr +) +*39 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*40 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*41 (GroupColHdr +tm "GroupColHdrMgr" +) +*42 (NameColHdr +tm "GenericNameColHdrMgr" +) +*43 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*44 (InitColHdr +tm "GenericValueColHdrMgr" +) +*45 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*46 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 165,0 +optionalChildren [ +*47 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *48 (MRCItem +litem &35 +pos 3 +dimension 20 +) +uid 132,0 +optionalChildren [ +*49 (MRCItem +litem &36 +pos 0 +dimension 20 +uid 135,0 +) +*50 (MRCItem +litem &37 +pos 1 +dimension 23 +uid 137,0 +) +*51 (MRCItem +litem &38 +pos 2 +hidden 1 +dimension 20 +uid 139,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 133,0 +optionalChildren [ +*52 (MRCItem +litem &39 +pos 0 +dimension 20 +uid 141,0 +) +*53 (MRCItem +litem &41 +pos 1 +dimension 50 +uid 145,0 +) +*54 (MRCItem +litem &42 +pos 2 +dimension 100 +uid 147,0 +) +*55 (MRCItem +litem &43 +pos 3 +dimension 100 +uid 149,0 +) +*56 (MRCItem +litem &44 +pos 4 +dimension 50 +uid 151,0 +) +*57 (MRCItem +litem &45 +pos 5 +dimension 50 +uid 153,0 +) +*58 (MRCItem +litem &46 +pos 6 +dimension 80 +uid 155,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 131,0 +vaOverrides [ +] +) +] +) +uid 163,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "DFF" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:05" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "DFF" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/@d@f@f/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/DFF/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:05" +) +(vvPair +variable "unit" +value "DFF" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 86,0 +optionalChildren [ +*59 (SymbolBody +uid 11,0 +optionalChildren [ +*60 (CptPort +uid 51,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 52,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,4625,23000,5375" +) +tg (CPTG +uid 93,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 54,0 +va (VaSet +font "courier,12,0" +) +xt "24000,4300,25700,5700" +st "D" +blo "24000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12500,15500,13400" +st "D : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +) +*61 (CptPort +uid 57,0 +optionalChildren [ +*62 (FFT +pts [ +"23750,9000" +"23000,9375" +"23000,8625" +] +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23000,8625,23750,9375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 58,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,8625,23000,9375" +) +tg (CPTG +uid 94,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 60,0 +va (VaSet +font "courier,12,0" +) +xt "24000,8400,27200,9800" +st "CLK" +blo "24000,9600" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 88,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10700,15500,11600" +st "CLK : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +) +*63 (CptPort +uid 63,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 64,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "25625,11000,26375,11750" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 66,0 +va (VaSet +font "courier,12,0" +) +xt "25000,9600,28200,11000" +st "CLR" +blo "25000,10800" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 89,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11600,15500,12500" +st "CLR : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*64 (CptPort +uid 69,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 70,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "29000,4625,29750,5375" +) +tg (CPTG +uid 96,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 72,0 +va (VaSet +font "courier,12,0" +) +xt "26200,4300,28000,5700" +st "Q" +ju 2 +blo "28000,5500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 90,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13400,14500,14300" +st "Q : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 12,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,3000,29000,11000" +) +showPorts 0 +oxt "15000,10000,21000,19000" +biTextGroup (BiTextGroup +uid 13,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 14,0 +va (VaSet +) +xt "27600,10700,30600,11700" +st "Board" +blo "27600,11500" +) +second (Text +uid 15,0 +va (VaSet +) +xt "27600,11700,29400,12700" +st "DFF" +blo "27600,12500" +) +) +gi *65 (GenericInterface +uid 16,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 17,0 +text (MLText +uid 18,0 +va (VaSet +isHidden 1 +) +xt "30000,10400,42600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *66 (PackageList +uid 8,0 +stg "VerticalLayoutStrategy" +textVec [ +*67 (Text +uid 97,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*68 (MLText +uid 98,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "23,13,991,725" +viewArea "-672,-4956,43920,21156" +cachedDiagramExtent "0,0,43800,15100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,42000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26600,24700,29700,25700" +st "" +blo "26600,25500" +) +second (Text +va (VaSet +) +xt "26600,25700,28800,26700" +st "" +blo "26600,26500" +) +) +gi *69 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *70 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,8300,8600,9500" +st "Declarations" +blo "0,9300" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,10,1" +) +xt "0,9500,4200,10700" +st "Ports:" +blo "0,10500" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,10,1" +) +xt "0,14300,3000,15300" +st "User:" +blo "0,15100" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,8300,9400,9500" +st "Internal User:" +blo "0,9300" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15300,2000,15300" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "32000,8300,32000,8300" +tm "SyDeclarativeTextMgr" +) +) +lastUid 188,0 +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/struct.bd b/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/struct.bd new file mode 100644 index 0000000..6e60617 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/struct.bd @@ -0,0 +1,6067 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 2944,0 +) +(Instance +name "I12" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 3013,0 +) +(Instance +name "I7" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 3775,0 +) +(Instance +name "I9" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 3795,0 +) +(Instance +name "I3" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 3968,0 +) +(Instance +name "I8" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 4904,0 +) +(Instance +name "I_top" +duLibraryName "SystemOnChip" +duName "beamerSoc" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 5675,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb3" +number "3" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\FPGA_beamer" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FPGA_beamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:00:12" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FPGA_beamer" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\FPGA_beamer\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:00:12" +) +(vvPair +variable "unit" +value "FPGA_beamer" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "26000,70625,27500,71375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "27500,71000,28000,71000" +pts [ +"27500,71000" +"28000,71000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "21200,70300,25000,71700" +st "clock" +ju 2 +blo "25000,71500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,7600,10200,8600" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "116500,48625,118000,49375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "116000,49000,116500,49000" +pts [ +"116000,49000" +"116500,49000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "119000,48300,122800,49700" +st "yOut" +blo "119000,49500" +tm "WireNameMgr" +) +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "26000,82625,27500,83375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "27500,83000,28000,83000" +pts [ +"27500,83000" +"28000,83000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "19200,82300,25000,83700" +st "reset_N" +ju 2 +blo "25000,83500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 13 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,22900,13400,23900" +st "SIGNAL reset : std_ulogic" +) +) +*6 (Grouping +uid 51,0 +optionalChildren [ +*7 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "107000,98000,124000,99000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "107200,98500,107200,98500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,94000,128000,95000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,94500,124200,94500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "107000,96000,124000,97000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "107200,96500,107200,96500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,96000,107000,97000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "103200,96500,103200,96500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,95000,144000,99000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,95200,138300,96400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*12 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "128000,94000,144000,95000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "128200,94500,128200,94500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,94000,124000,96000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "108350,94400,118650,95600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,97000,107000,98000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "103200,97500,103200,97500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,98000,107000,99000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "103200,98500,103200,98500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "107000,97000,124000,98000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "107200,97500,107200,97500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "103000,94000,144000,99000" +) +oxt "14000,66000,55000,71000" +) +*17 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,8500,10700,9500" +st "reset_N : std_ulogic" +) +) +*18 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +declText (MLText +uid 477,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,14800,10400,15800" +st "xOut : std_ulogic" +) +) +*19 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "116500,46625,118000,47375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "116000,47000,116500,47000" +pts [ +"116000,47000" +"116500,47000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "119000,46300,122800,47700" +st "xOut" +blo "119000,47500" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +declText (MLText +uid 612,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,15700,10400,16700" +st "yOut : std_ulogic" +) +) +*21 (PortIoIn +uid 954,0 +shape (CompositeShape +uid 955,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 956,0 +sl 0 +ro 270 +xt "26000,40625,27500,41375" +) +(Line +uid 957,0 +sl 0 +ro 270 +xt "27500,41000,28000,41000" +pts [ +"27500,41000" +"28000,41000" +] +) +] +) +tg (WTG +uid 958,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 959,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "21400,40300,25000,41700" +st "rxd0" +ju 2 +blo "25000,41500" +tm "WireNameMgr" +) +) +) +*22 (PortIoOut +uid 1157,0 +shape (CompositeShape +uid 1158,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1159,0 +sl 0 +ro 270 +xt "104500,12625,106000,13375" +) +(Line +uid 1160,0 +sl 0 +ro 270 +xt "104000,13000,104500,13000" +pts [ +"104000,13000" +"104500,13000" +] +) +] +) +tg (WTG +uid 1161,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1162,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "107000,12300,111000,13700" +st "LED1" +blo "107000,13500" +tm "WireNameMgr" +) +) +) +*23 (PortIoOut +uid 1171,0 +shape (CompositeShape +uid 1172,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1173,0 +sl 0 +ro 270 +xt "104500,14625,106000,15375" +) +(Line +uid 1174,0 +sl 0 +ro 270 +xt "104000,15000,104500,15000" +pts [ +"104000,15000" +"104500,15000" +] +) +] +) +tg (WTG +uid 1175,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1176,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "107000,14300,111000,15700" +st "LED2" +blo "107000,15500" +tm "WireNameMgr" +) +) +) +*24 (HdlText +uid 1185,0 +optionalChildren [ +*25 (EmbeddedText +uid 1190,0 +commentText (CommentText +uid 1191,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1192,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "80000,12000,96000,18000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1193,0 +va (VaSet +) +xt "80200,12200,94900,18200" +st " +LED1 <= testOut(1); +LED2 <= testOut(2); +spare(testOut'range) <= testOut; +spare(testOut'high+1 to spare'high) <= (others => '0'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1186,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "80000,11000,96000,19000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1187,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*26 (Text +uid 1188,0 +va (VaSet +) +xt "80400,19000,83000,20200" +st "eb2" +blo "80400,20000" +tm "HdlTextNameMgr" +) +*27 (Text +uid 1189,0 +va (VaSet +) +xt "80400,20000,81800,21200" +st "2" +blo "80400,21000" +tm "HdlTextNumberMgr" +) +] +) +) +*28 (PortIoOut +uid 1267,0 +shape (CompositeShape +uid 1268,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1269,0 +sl 0 +ro 270 +xt "104500,16625,106000,17375" +) +(Line +uid 1270,0 +sl 0 +ro 270 +xt "104000,17000,104500,17000" +pts [ +"104000,17000" +"104500,17000" +] +) +] +) +tg (WTG +uid 1271,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1272,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "107000,16300,119400,17700" +st "spare : (1 TO 17)" +blo "107000,17500" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 1279,0 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +declText (MLText +uid 1280,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,13000,17900,14000" +st "spare : std_ulogic_vector(1 TO 17)" +) +) +*30 (HdlText +uid 1748,0 +optionalChildren [ +*31 (EmbeddedText +uid 1753,0 +commentText (CommentText +uid 1754,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1755,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "33000,74000,39000,76000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1756,0 +va (VaSet +) +xt "33200,74200,38700,75400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 1749,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "32000,73000,40000,77000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1750,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 1751,0 +va (VaSet +) +xt "32400,77000,35000,78200" +st "eb3" +blo "32400,78000" +tm "HdlTextNameMgr" +) +*33 (Text +uid 1752,0 +va (VaSet +) +xt "32400,78000,33800,79200" +st "3" +blo "32400,79000" +tm "HdlTextNumberMgr" +) +] +) +) +*34 (Net +uid 1765,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 12 +suid 28,0 +) +declText (MLText +uid 1766,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,22000,13600,23000" +st "SIGNAL logic1 : std_uLogic" +) +) +*35 (SaComponent +uid 2944,0 +optionalChildren [ +*36 (CptPort +uid 2935,0 +optionalChildren [ +*37 (Circle +uid 2939,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32092,82546,33000,83454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2936,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "31342,82625,32092,83375" +) +tg (CPTG +uid 2937,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2938,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "33000,82500,35700,83900" +st "in1" +blo "33000,83700" +) +s (Text +uid 2953,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "33000,83900,33000,83900" +blo "33000,83900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*38 (CptPort +uid 2940,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2941,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38000,82625,38750,83375" +) +tg (CPTG +uid 2942,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2943,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "34050,82500,37750,83900" +st "out1" +ju 2 +blo "37750,83700" +) +s (Text +uid 2954,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "37750,83900,37750,83900" +ju 2 +blo "37750,83900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 2945,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "33000,80000,38000,86000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2946,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 2947,0 +va (VaSet +isHidden 1 +) +xt "33910,78700,37510,79900" +st "Board" +blo "33910,79700" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 2948,0 +va (VaSet +isHidden 1 +) +xt "33910,79700,40310,80900" +st "inverterIn" +blo "33910,80700" +tm "CptNameMgr" +) +*41 (Text +uid 2949,0 +va (VaSet +) +xt "33910,79700,35810,80900" +st "I2" +blo "33910,80700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2950,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2951,0 +text (MLText +uid 2952,0 +va (VaSet +) +xt "10000,76000,10000,76000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 3013,0 +optionalChildren [ +*43 (CptPort +uid 3022,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3023,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,74625,45000,75375" +) +tg (CPTG +uid 3024,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3025,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,74300,47700,75700" +st "D" +blo "46000,75500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*44 (CptPort +uid 3026,0 +optionalChildren [ +*45 (FFT +pts [ +"45750,79000" +"45000,79375" +"45000,78625" +] +uid 3030,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45000,78625,45750,79375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3027,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,78625,45000,79375" +) +tg (CPTG +uid 3028,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3029,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,78400,49200,79800" +st "CLK" +blo "46000,79600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*46 (CptPort +uid 3031,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3032,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "47625,81000,48375,81750" +) +tg (CPTG +uid 3033,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3034,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,79600,50200,81000" +st "CLR" +blo "47000,80800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*47 (CptPort +uid 3035,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3036,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,74625,51750,75375" +) +tg (CPTG +uid 3037,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3038,0 +va (VaSet +font "Verdana,12,0" +) +xt "48200,74300,50000,75700" +st "Q" +ju 2 +blo "50000,75500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 3014,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,73000,51000,81000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3015,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 3016,0 +va (VaSet +) +xt "51600,78700,55200,79900" +st "Board" +blo "51600,79700" +tm "BdLibraryNameMgr" +) +*49 (Text +uid 3017,0 +va (VaSet +) +xt "51600,79700,54300,80900" +st "DFF" +blo "51600,80700" +tm "CptNameMgr" +) +*50 (Text +uid 3018,0 +va (VaSet +) +xt "51600,80700,54200,81900" +st "I12" +blo "51600,81700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3019,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3020,0 +text (MLText +uid 3021,0 +va (VaSet +) +xt "22000,70000,22000,70000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*51 (PortIoOut +uid 3747,0 +shape (CompositeShape +uid 3748,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 3749,0 +sl 0 +ro 90 +xt "26000,36625,27500,37375" +) +(Line +uid 3750,0 +sl 0 +ro 90 +xt "27500,37000,28000,37000" +pts [ +"28000,37000" +"27500,37000" +] +) +] +) +tg (WTG +uid 3751,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3752,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "21400,36300,25000,37700" +st "txd0" +ju 2 +blo "25000,37500" +tm "WireNameMgr" +) +) +) +*52 (PortIoIn +uid 3769,0 +shape (CompositeShape +uid 3770,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 3771,0 +sl 0 +ro 90 +xt "116500,52625,118000,53375" +) +(Line +uid 3772,0 +sl 0 +ro 90 +xt "116000,53000,116500,53000" +pts [ +"116500,53000" +"116000,53000" +] +) +] +) +tg (WTG +uid 3773,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3774,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "119000,52300,128300,53700" +st "selSinCos_n" +blo "119000,53500" +tm "WireNameMgr" +) +) +) +*53 (SaComponent +uid 3775,0 +optionalChildren [ +*54 (CptPort +uid 3784,0 +optionalChildren [ +*55 (Circle +uid 3789,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "111000,52546,111908,53454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3785,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "111908,52625,112658,53375" +) +tg (CPTG +uid 3786,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3787,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "368566,52500,371266,53900" +st "in1" +ju 2 +blo "371266,53700" +) +s (Text +uid 3788,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "371266,53900,371266,53900" +ju 2 +blo "371266,53900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*56 (CptPort +uid 3790,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3791,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "105250,52625,106000,53375" +) +tg (CPTG +uid 3792,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3793,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "356300,52500,360000,53900" +st "out1" +blo "356300,53700" +) +s (Text +uid 3794,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "356300,53900,356300,53900" +blo "356300,53900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 3776,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "106000,50000,111000,56000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3777,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 3778,0 +va (VaSet +isHidden 1 +) +xt "106910,48700,110510,49900" +st "Board" +blo "106910,49700" +tm "BdLibraryNameMgr" +) +*58 (Text +uid 3779,0 +va (VaSet +isHidden 1 +) +xt "106910,49700,113310,50900" +st "inverterIn" +blo "106910,50700" +tm "CptNameMgr" +) +*59 (Text +uid 3780,0 +va (VaSet +) +xt "106910,49700,108810,50900" +st "I7" +blo "106910,50700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3781,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3782,0 +text (MLText +uid 3783,0 +va (VaSet +) +xt "83000,46000,83000,46000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*60 (SaComponent +uid 3795,0 +optionalChildren [ +*61 (CptPort +uid 3804,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3805,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "99000,52625,99750,53375" +) +tg (CPTG +uid 3806,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3807,0 +va (VaSet +font "Verdana,12,0" +) +xt "96300,52300,98000,53700" +st "D" +ju 2 +blo "98000,53500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*62 (CptPort +uid 3808,0 +optionalChildren [ +*63 (FFT +pts [ +"98250,57000" +"99000,56625" +"99000,57375" +] +uid 3812,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98250,56625,99000,57375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3809,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "99000,56625,99750,57375" +) +tg (CPTG +uid 3810,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3811,0 +va (VaSet +font "Verdana,12,0" +) +xt "94800,56400,98000,57800" +st "CLK" +ju 2 +blo "98000,57600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*64 (CptPort +uid 3813,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3814,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "95625,59000,96375,59750" +) +tg (CPTG +uid 3815,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3816,0 +va (VaSet +font "Verdana,12,0" +) +xt "93800,57600,97000,59000" +st "CLR" +blo "93800,58800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*65 (CptPort +uid 3817,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3818,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "92250,52625,93000,53375" +) +tg (CPTG +uid 3819,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3820,0 +va (VaSet +font "Verdana,12,0" +) +xt "94000,52300,95800,53700" +st "Q" +blo "94000,53500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 3796,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,51000,99000,59000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3797,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +uid 3798,0 +va (VaSet +) +xt "99600,56700,103200,57900" +st "Board" +blo "99600,57700" +tm "BdLibraryNameMgr" +) +*67 (Text +uid 3799,0 +va (VaSet +) +xt "99600,57700,102300,58900" +st "DFF" +blo "99600,58700" +tm "CptNameMgr" +) +*68 (Text +uid 3800,0 +va (VaSet +) +xt "99600,58700,101500,59900" +st "I9" +blo "99600,59700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3801,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3802,0 +text (MLText +uid 3803,0 +va (VaSet +) +xt "70000,48000,70000,48000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*69 (Net +uid 3962,0 +decl (Decl +n "selSinCosSynch" +t "std_ulogic" +o 18 +suid 45,0 +) +declText (MLText +uid 3963,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,27400,14900,28400" +st "SIGNAL selSinCosSynch : std_ulogic" +) +) +*70 (Net +uid 3964,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 46,0 +) +declText (MLText +uid 3965,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,26500,14000,27500" +st "SIGNAL selSinCos : std_ulogic" +) +) +*71 (Net +uid 3966,0 +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 47,0 +) +declText (MLText +uid 3967,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,10300,11200,11300" +st "selSinCos_n : std_ulogic" +) +) +*72 (SaComponent +uid 3968,0 +optionalChildren [ +*73 (CptPort +uid 3977,0 +optionalChildren [ +*74 (Circle +uid 3982,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "56092,74546,57000,75454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3978,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55342,74625,56092,75375" +) +tg (CPTG +uid 3979,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3980,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57000,74500,59700,75900" +st "in1" +blo "57000,75700" +) +s (Text +uid 3981,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57000,75900,57000,75900" +blo "57000,75900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*75 (CptPort +uid 3983,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3984,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "62000,74625,62750,75375" +) +tg (CPTG +uid 3985,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3986,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "58050,74500,61750,75900" +st "out1" +ju 2 +blo "61750,75700" +) +s (Text +uid 3987,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "61750,75900,61750,75900" +ju 2 +blo "61750,75900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 3969,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,72000,62000,78000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3970,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 3971,0 +va (VaSet +isHidden 1 +) +xt "57910,70700,61510,71900" +st "Board" +blo "57910,71700" +tm "BdLibraryNameMgr" +) +*77 (Text +uid 3972,0 +va (VaSet +isHidden 1 +) +xt "57910,71700,64310,72900" +st "inverterIn" +blo "57910,72700" +tm "CptNameMgr" +) +*78 (Text +uid 3973,0 +va (VaSet +) +xt "57910,71700,59810,72900" +st "I3" +blo "57910,72700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3974,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3975,0 +text (MLText +uid 3976,0 +va (VaSet +) +xt "34000,68000,34000,68000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*79 (Net +uid 4010,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 19 +suid 49,0 +) +declText (MLText +uid 4011,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,28300,25200,29300" +st "SIGNAL testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*80 (Net +uid 4012,0 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 50,0 +) +declText (MLText +uid 4013,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,11200,10500,12200" +st "LED1 : std_ulogic" +) +) +*81 (Net +uid 4014,0 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 51,0 +) +declText (MLText +uid 4015,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,12100,10500,13100" +st "LED2 : std_ulogic" +) +) +*82 (Net +uid 4405,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 14 +suid 72,0 +) +declText (MLText +uid 4406,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,23800,14300,24800" +st "SIGNAL resetSynch : std_ulogic" +) +) +*83 (Net +uid 4407,0 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 15 +suid 73,0 +) +declText (MLText +uid 4408,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,24700,14800,25700" +st "SIGNAL resetSynch_N : std_ulogic" +) +) +*84 (Net +uid 4885,0 +decl (Decl +n "rxdSynch" +t "std_ulogic" +o 16 +suid 76,0 +) +declText (MLText +uid 4886,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,25600,14200,26600" +st "SIGNAL rxdSynch : std_ulogic" +) +) +*85 (SaComponent +uid 4904,0 +optionalChildren [ +*86 (CptPort +uid 4887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4888,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,40625,45000,41375" +) +tg (CPTG +uid 4889,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4890,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,40300,47700,41700" +st "D" +blo "46000,41500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +) +*87 (CptPort +uid 4891,0 +optionalChildren [ +*88 (FFT +pts [ +"45750,45000" +"45000,45375" +"45000,44625" +] +uid 4895,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45000,44625,45750,45375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 4892,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,44625,45000,45375" +) +tg (CPTG +uid 4893,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4894,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,44400,49200,45800" +st "CLK" +blo "46000,45600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +) +*89 (CptPort +uid 4896,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4897,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "47625,47000,48375,47750" +) +tg (CPTG +uid 4898,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4899,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,45600,50200,47000" +st "CLR" +blo "47000,46800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*90 (CptPort +uid 4900,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4901,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,40625,51750,41375" +) +tg (CPTG +uid 4902,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4903,0 +va (VaSet +font "Verdana,12,0" +) +xt "48200,40300,50000,41700" +st "Q" +ju 2 +blo "50000,41500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 4905,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,39000,51000,47000" +) +showPorts 0 +oxt "23000,3000,29000,11000" +ttg (MlTextGroup +uid 4906,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 4907,0 +va (VaSet +) +xt "49600,46700,53200,47900" +st "Board" +blo "49600,47700" +tm "BdLibraryNameMgr" +) +*92 (Text +uid 4908,0 +va (VaSet +) +xt "49600,47700,52300,48900" +st "DFF" +blo "49600,48700" +tm "CptNameMgr" +) +*93 (Text +uid 4909,0 +va (VaSet +) +xt "49600,48700,51500,49900" +st "I8" +blo "49600,49700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4910,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4911,0 +text (MLText +uid 4912,0 +va (VaSet +) +xt "52000,46400,52000,46400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*94 (Net +uid 5011,0 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 77,0 +) +declText (MLText +uid 5012,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,21100,25000,22100" +st "SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0)" +) +) +*95 (Net +uid 5239,0 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 80,0 +) +declText (MLText +uid 5240,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,13900,10300,14900" +st "txd0 : std_ulogic" +) +) +*96 (Net +uid 5241,0 +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 81,0 +) +declText (MLText +uid 5242,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,9400,10300,10400" +st "rxd0 : std_ulogic" +) +) +*97 (SaComponent +uid 5675,0 +optionalChildren [ +*98 (CptPort +uid 5631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5632,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,50625,68000,51375" +) +tg (CPTG +uid 5633,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5634,0 +va (VaSet +) +xt "69000,50400,72400,51600" +st "clock" +blo "69000,51400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +) +*99 (CptPort +uid 5635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5636,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,46625,84750,47375" +) +tg (CPTG +uid 5637,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5638,0 +va (VaSet +) +xt "80001,46400,83001,47600" +st "outX" +ju 2 +blo "83001,47400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*100 (CptPort +uid 5639,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5640,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,48625,84750,49375" +) +tg (CPTG +uid 5641,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5642,0 +va (VaSet +) +xt "80001,48400,83001,49600" +st "outY" +ju 2 +blo "83001,49400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*101 (CptPort +uid 5643,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5644,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,50625,84750,51375" +) +tg (CPTG +uid 5645,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5646,0 +va (VaSet +) +xt "77201,50400,83001,51600" +st "selSinCos" +ju 2 +blo "83001,51400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*102 (CptPort +uid 5647,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5648,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,52625,68000,53375" +) +tg (CPTG +uid 5649,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5650,0 +va (VaSet +) +xt "69000,52400,72300,53600" +st "reset" +blo "69000,53400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 2017,0 +) +) +) +*103 (CptPort +uid 5651,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5652,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,38625,68000,39375" +) +tg (CPTG +uid 5653,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5654,0 +va (VaSet +) +xt "69000,38400,71800,39600" +st "TxD" +blo "69000,39400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 2018,0 +) +) +) +*104 (CptPort +uid 5655,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5656,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,40625,68000,41375" +) +tg (CPTG +uid 5657,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5658,0 +va (VaSet +) +xt "69000,40400,71800,41600" +st "RxD" +blo "69000,41400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 2019,0 +) +) +) +*105 (CptPort +uid 5659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5660,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,38625,84750,39375" +) +tg (CPTG +uid 5661,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5662,0 +va (VaSet +) +xt "80100,38400,83000,39600" +st "ioEn" +ju 2 +blo "83000,39400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 2020,0 +) +) +) +*106 (CptPort +uid 5663,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5664,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,40625,84750,41375" +) +tg (CPTG +uid 5665,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5666,0 +va (VaSet +) +xt "79500,40400,83000,41600" +st "ioOut" +ju 2 +blo "83000,41400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 2021,0 +) +) +) +*107 (CptPort +uid 5667,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5668,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,42625,84750,43375" +) +tg (CPTG +uid 5669,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5670,0 +va (VaSet +) +xt "80300,42400,83000,43600" +st "ioIn" +ju 2 +blo "83000,43400" +) +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2022,0 +) +) +) +*108 (CptPort +uid 5671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5672,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75625,34250,76375,35000" +) +tg (CPTG +uid 5673,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5674,0 +va (VaSet +) +xt "74000,36000,78600,37200" +st "testOut" +ju 2 +blo "78600,37000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 2024,0 +) +) +) +] +shape (Rectangle +uid 5676,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,35000,84000,55000" +) +oxt "36000,10000,52000,30000" +ttg (MlTextGroup +uid 5677,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +uid 5678,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,54800,77000,56000" +st "SystemOnChip" +blo "68600,55800" +tm "BdLibraryNameMgr" +) +*110 (Text +uid 5679,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,55700,74600,56900" +st "beamerSoc" +blo "68600,56700" +tm "CptNameMgr" +) +*111 (Text +uid 5680,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,56600,72000,57800" +st "I_top" +blo "68600,57600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5681,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5682,0 +text (MLText +uid 5683,0 +va (VaSet +font "Verdana,8,0" +) +xt "68000,58600,93800,61600" +st "ioNb = ioNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) +patternAddressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*112 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "28000,51000,67250,71000" +pts [ +"28000,71000" +"64000,71000" +"64000,51000" +"67250,51000" +] +) +start &1 +end &98 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,69600,31800,71000" +st "clock" +blo "28000,70800" +tm "WireNameMgr" +) +) +on &2 +) +*113 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "84750,49000,116000,49000" +pts [ +"116000,49000" +"84750,49000" +] +) +start &3 +end &100 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,47600,115800,49000" +st "yOut" +blo "112000,48800" +tm "WireNameMgr" +) +) +on &20 +) +*114 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "28000,83000,32092,83000" +pts [ +"28000,83000" +"32092,83000" +] +) +start &4 +end &36 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Verdana,12,0" +) +xt "27000,81600,32800,83000" +st "reset_N" +blo "27000,82800" +tm "WireNameMgr" +) +) +on &17 +) +*115 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "84750,47000,116000,47000" +pts [ +"116000,47000" +"84750,47000" +] +) +start &19 +end &99 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,45600,115800,47000" +st "xOut" +blo "112000,46800" +tm "WireNameMgr" +) +) +on &18 +) +*116 (Wire +uid 900,0 +shape (OrthoPolyLine +uid 901,0 +va (VaSet +vasetType 3 +) +xt "51000,41000,67250,41000" +pts [ +"67250,41000" +"51000,41000" +] +) +start &104 +end &90 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 902,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 903,0 +va (VaSet +font "Verdana,12,0" +) +xt "52000,39600,58500,41000" +st "rxdSynch" +blo "52000,40800" +tm "WireNameMgr" +) +) +on &84 +) +*117 (Wire +uid 946,0 +shape (OrthoPolyLine +uid 947,0 +va (VaSet +vasetType 3 +) +xt "28000,37000,67250,39000" +pts [ +"67250,39000" +"56000,39000" +"56000,37000" +"28000,37000" +] +) +start &103 +end &51 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 952,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 953,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,35600,31600,37000" +st "txd0" +blo "28000,36800" +tm "WireNameMgr" +) +) +on &95 +) +*118 (Wire +uid 1163,0 +shape (OrthoPolyLine +uid 1164,0 +va (VaSet +vasetType 3 +) +xt "96000,13000,104000,13000" +pts [ +"96000,13000" +"104000,13000" +] +) +start &24 +end &22 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1167,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1168,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,11600,105000,13000" +st "LED1" +blo "101000,12800" +tm "WireNameMgr" +) +) +on &80 +) +*119 (Wire +uid 1177,0 +shape (OrthoPolyLine +uid 1178,0 +va (VaSet +vasetType 3 +) +xt "96000,15000,104000,15000" +pts [ +"96000,15000" +"104000,15000" +] +) +start &24 +end &23 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1181,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1182,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,13600,105000,15000" +st "LED2" +blo "101000,14800" +tm "WireNameMgr" +) +) +on &81 +) +*120 (Wire +uid 1273,0 +shape (OrthoPolyLine +uid 1274,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "96000,17000,104000,17000" +pts [ +"96000,17000" +"104000,17000" +] +) +start &24 +end &28 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1277,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1278,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,15600,104400,17000" +st "spare" +blo "100000,16800" +tm "WireNameMgr" +) +) +on &29 +) +*121 (Wire +uid 1403,0 +shape (OrthoPolyLine +uid 1404,0 +va (VaSet +vasetType 3 +) +xt "28000,41000,45000,41000" +pts [ +"45000,41000" +"28000,41000" +] +) +start &86 +end &21 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1409,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1410,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,39600,31600,41000" +st "rxd0" +blo "28000,40800" +tm "WireNameMgr" +) +) +on &96 +) +*122 (Wire +uid 1413,0 +shape (OrthoPolyLine +uid 1414,0 +va (VaSet +vasetType 3 +) +xt "42000,47000,48000,49000" +pts [ +"42000,49000" +"48000,49000" +"48000,47000" +] +) +end &89 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1419,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1420,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,47600,49600,49000" +st "resetSynch" +blo "41000,48800" +tm "WireNameMgr" +) +) +on &82 +) +*123 (Wire +uid 1421,0 +shape (OrthoPolyLine +uid 1422,0 +va (VaSet +vasetType 3 +) +xt "42000,45000,45000,45000" +pts [ +"42000,45000" +"45000,45000" +] +) +end &87 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1427,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1428,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,43600,44800,45000" +st "clock" +blo "41000,44800" +tm "WireNameMgr" +) +) +on &2 +) +*124 (Wire +uid 1716,0 +shape (OrthoPolyLine +uid 1717,0 +va (VaSet +vasetType 3 +) +xt "38000,81000,48000,83000" +pts [ +"38000,83000" +"48000,83000" +"48000,81000" +] +) +start &38 +end &46 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1720,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1721,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,81600,43100,83000" +st "reset" +blo "39000,82800" +tm "WireNameMgr" +) +) +on &5 +) +*125 (Wire +uid 1722,0 +shape (OrthoPolyLine +uid 1723,0 +va (VaSet +vasetType 3 +) +xt "43000,79000,45000,79000" +pts [ +"43000,79000" +"45000,79000" +] +) +end &44 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1726,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1727,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,77600,44800,79000" +st "clock" +blo "41000,78800" +tm "WireNameMgr" +) +) +on &2 +) +*126 (Wire +uid 1759,0 +shape (OrthoPolyLine +uid 1760,0 +va (VaSet +vasetType 3 +) +xt "40000,75000,45000,75000" +pts [ +"45000,75000" +"40000,75000" +] +) +start &43 +end &30 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 1763,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1764,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,73600,45400,75000" +st "logic1" +blo "41000,74800" +tm "WireNameMgr" +) +) +on &34 +) +*127 (Wire +uid 3821,0 +shape (OrthoPolyLine +uid 3822,0 +va (VaSet +vasetType 3 +) +xt "99000,57000,102000,57000" +pts [ +"102000,57000" +"99000,57000" +] +) +end &62 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3825,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3826,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,55600,104800,57000" +st "clock" +blo "101000,56800" +tm "WireNameMgr" +) +) +on &2 +) +*128 (Wire +uid 3827,0 +shape (OrthoPolyLine +uid 3828,0 +va (VaSet +vasetType 3 +) +xt "111908,53000,116000,53000" +pts [ +"111908,53000" +"116000,53000" +] +) +start &54 +end &52 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3829,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3830,0 +va (VaSet +font "Verdana,12,0" +) +xt "113000,51600,122300,53000" +st "selSinCos_n" +blo "113000,52800" +tm "WireNameMgr" +) +) +on &71 +) +*129 (Wire +uid 3831,0 +shape (OrthoPolyLine +uid 3832,0 +va (VaSet +vasetType 3 +) +xt "84750,51000,93000,53000" +pts [ +"84750,51000" +"88000,51000" +"88000,53000" +"93000,53000" +] +) +start &101 +end &65 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3835,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3836,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,51600,97400,53000" +st "selSinCosSynch" +blo "86000,52800" +tm "WireNameMgr" +) +) +on &69 +) +*130 (Wire +uid 3837,0 +shape (OrthoPolyLine +uid 3838,0 +va (VaSet +vasetType 3 +) +xt "99000,53000,106000,53000" +pts [ +"99000,53000" +"106000,53000" +] +) +start &61 +end &56 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3840,0 +va (VaSet +font "Verdana,12,0" +) +xt "98000,51600,104900,53000" +st "selSinCos" +blo "98000,52800" +tm "WireNameMgr" +) +) +on &70 +) +*131 (Wire +uid 3988,0 +shape (OrthoPolyLine +uid 3989,0 +va (VaSet +vasetType 3 +) +xt "51000,75000,56092,75000" +pts [ +"51000,75000" +"56092,75000" +] +) +start &47 +end &73 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3990,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3991,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,73600,58300,75000" +st "resetSynch_N" +blo "48000,74800" +tm "WireNameMgr" +) +) +on &83 +) +*132 (Wire +uid 3994,0 +shape (OrthoPolyLine +uid 3995,0 +va (VaSet +vasetType 3 +) +xt "62000,53000,67250,75000" +pts [ +"67250,53000" +"66000,53000" +"66000,75000" +"62000,75000" +] +) +start &102 +end &75 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4000,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4001,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,73600,71600,75000" +st "resetSynch" +blo "63000,74800" +tm "WireNameMgr" +) +) +on &82 +) +*133 (Wire +uid 4004,0 +shape (OrthoPolyLine +uid 4005,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "76000,15000,80000,34250" +pts [ +"76000,34250" +"76000,15000" +"80000,15000" +] +) +start &108 +end &24 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4008,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4009,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,13600,77600,15000" +st "testOut" +blo "72000,14800" +tm "WireNameMgr" +) +) +on &79 +) +*134 (Wire +uid 4397,0 +shape (OrthoPolyLine +uid 4398,0 +va (VaSet +vasetType 3 +) +xt "96000,59000,102000,61000" +pts [ +"102000,61000" +"96000,61000" +"96000,59000" +] +) +end &64 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4403,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4404,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,59600,105600,61000" +st "resetSynch" +blo "97000,60800" +tm "WireNameMgr" +) +) +on &82 +) +*135 (Wire +uid 5013,0 +shape (OrthoPolyLine +uid 5014,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,43000,92000,43000" +pts [ +"84750,43000" +"92000,43000" +] +) +start &107 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5017,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5018,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,41600,92200,43000" +st "ioIn" +blo "89000,42800" +tm "WireNameMgr" +) +) +on &94 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *136 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*137 (Text +uid 85,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*138 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*140 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*141 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*142 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*143 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*144 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*145 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-5145,-2144,185548,101465" +cachedDiagramExtent "-3000,0,371266,99000" +pageSetupInfo (PageSetupInfo +ptrCmd "HP LaserJet P3005 PCL 6 (A303),winspool," +fileName "\\\\SUN\\PREA309_HPLJ4050.PRINTERS.SYSTEM.SION.HEVs" +toPrinter 1 +colour 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 5818,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*147 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*148 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*149 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*150 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*151 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*152 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*153 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*154 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*155 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*156 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*157 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*158 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*159 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*160 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*161 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*162 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*163 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*164 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*165 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*166 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,5800,4000,6800" +st "Declarations" +blo "-3000,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6700,400,7700" +st "Ports:" +blo "-3000,7500" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,16600,1800,17600" +st "Pre User:" +blo "-3000,17400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,17500,19200,20500" +st "constant ioNb: positive := 8; +constant testOutBitNb: positive := 16; +constant patternAddressBitNb: positive := 9;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,20200,6000,21200" +st "Diagram Signals:" +blo "-3000,21000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,5800,3000,6800" +st "Post User:" +blo "-3000,6600" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-3000,5800,-3000,5800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 81,0 +usingSuid 1 +emptyRow *167 (LEmptyRow +) +uid 3228,0 +optionalChildren [ +*168 (RefLabelRowHdr +) +*169 (TitleRowHdr +) +*170 (FilterRowHdr +) +*171 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*172 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*173 (GroupColHdr +tm "GroupColHdrMgr" +) +*174 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*175 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*176 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*177 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*178 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*179 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*180 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 3159,0 +) +*181 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 13 +suid 2,0 +) +) +uid 3161,0 +) +*182 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 3163,0 +) +*183 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +) +uid 3165,0 +) +*184 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +) +uid 3167,0 +) +*185 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +) +uid 3199,0 +) +*186 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 12 +suid 28,0 +) +) +uid 3213,0 +) +*187 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCosSynch" +t "std_ulogic" +o 18 +suid 45,0 +) +) +uid 4032,0 +) +*188 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 46,0 +) +) +uid 4034,0 +) +*189 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 47,0 +) +) +uid 4036,0 +) +*190 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 19 +suid 49,0 +) +) +uid 4038,0 +) +*191 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 50,0 +) +) +uid 4040,0 +) +*192 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 51,0 +) +) +uid 4042,0 +) +*193 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 14 +suid 72,0 +) +) +uid 4409,0 +) +*194 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 15 +suid 73,0 +) +) +uid 4411,0 +) +*195 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxdSynch" +t "std_ulogic" +o 16 +suid 76,0 +) +) +uid 5023,0 +) +*196 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 77,0 +) +) +uid 5025,0 +) +*197 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 80,0 +) +) +uid 5243,0 +) +*198 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 81,0 +) +) +uid 5245,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3241,0 +optionalChildren [ +*199 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *200 (MRCItem +litem &167 +pos 19 +dimension 20 +) +uid 3243,0 +optionalChildren [ +*201 (MRCItem +litem &168 +pos 0 +dimension 20 +uid 3244,0 +) +*202 (MRCItem +litem &169 +pos 1 +dimension 23 +uid 3245,0 +) +*203 (MRCItem +litem &170 +pos 2 +hidden 1 +dimension 20 +uid 3246,0 +) +*204 (MRCItem +litem &180 +pos 0 +dimension 20 +uid 3160,0 +) +*205 (MRCItem +litem &181 +pos 10 +dimension 20 +uid 3162,0 +) +*206 (MRCItem +litem &182 +pos 1 +dimension 20 +uid 3164,0 +) +*207 (MRCItem +litem &183 +pos 2 +dimension 20 +uid 3166,0 +) +*208 (MRCItem +litem &184 +pos 3 +dimension 20 +uid 3168,0 +) +*209 (MRCItem +litem &185 +pos 4 +dimension 20 +uid 3200,0 +) +*210 (MRCItem +litem &186 +pos 11 +dimension 20 +uid 3214,0 +) +*211 (MRCItem +litem &187 +pos 12 +dimension 20 +uid 4033,0 +) +*212 (MRCItem +litem &188 +pos 13 +dimension 20 +uid 4035,0 +) +*213 (MRCItem +litem &189 +pos 5 +dimension 20 +uid 4037,0 +) +*214 (MRCItem +litem &190 +pos 14 +dimension 20 +uid 4039,0 +) +*215 (MRCItem +litem &191 +pos 6 +dimension 20 +uid 4041,0 +) +*216 (MRCItem +litem &192 +pos 7 +dimension 20 +uid 4043,0 +) +*217 (MRCItem +litem &193 +pos 15 +dimension 20 +uid 4410,0 +) +*218 (MRCItem +litem &194 +pos 16 +dimension 20 +uid 4412,0 +) +*219 (MRCItem +litem &195 +pos 17 +dimension 20 +uid 5024,0 +) +*220 (MRCItem +litem &196 +pos 18 +dimension 20 +uid 5026,0 +) +*221 (MRCItem +litem &197 +pos 8 +dimension 20 +uid 5244,0 +) +*222 (MRCItem +litem &198 +pos 9 +dimension 20 +uid 5246,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3247,0 +optionalChildren [ +*223 (MRCItem +litem &171 +pos 0 +dimension 20 +uid 3248,0 +) +*224 (MRCItem +litem &173 +pos 1 +dimension 50 +uid 3249,0 +) +*225 (MRCItem +litem &174 +pos 2 +dimension 100 +uid 3250,0 +) +*226 (MRCItem +litem &175 +pos 3 +dimension 50 +uid 3251,0 +) +*227 (MRCItem +litem &176 +pos 4 +dimension 100 +uid 3252,0 +) +*228 (MRCItem +litem &177 +pos 5 +dimension 100 +uid 3253,0 +) +*229 (MRCItem +litem &178 +pos 6 +dimension 50 +uid 3254,0 +) +*230 (MRCItem +litem &179 +pos 7 +dimension 80 +uid 3255,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3242,0 +vaOverrides [ +] +) +] +) +uid 3227,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *231 (LEmptyRow +) +uid 3257,0 +optionalChildren [ +*232 (RefLabelRowHdr +) +*233 (TitleRowHdr +) +*234 (FilterRowHdr +) +*235 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*236 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*237 (GroupColHdr +tm "GroupColHdrMgr" +) +*238 (NameColHdr +tm "GenericNameColHdrMgr" +) +*239 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*240 (InitColHdr +tm "GenericValueColHdrMgr" +) +*241 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*242 (EolColHdr +tm "GenericEolColHdrMgr" +) +*243 (LogGeneric +generic (GiElement +name "memDataBitNb" +type "positive" +value "16" +) +uid 4414,0 +) +*244 (LogGeneric +generic (GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +uid 4416,0 +) +] +) +pdm (PhysicalDM +uid 3269,0 +optionalChildren [ +*245 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *246 (MRCItem +litem &231 +pos 2 +dimension 20 +) +uid 3271,0 +optionalChildren [ +*247 (MRCItem +litem &232 +pos 0 +dimension 20 +uid 3272,0 +) +*248 (MRCItem +litem &233 +pos 1 +dimension 23 +uid 3273,0 +) +*249 (MRCItem +litem &234 +pos 2 +hidden 1 +dimension 20 +uid 3274,0 +) +*250 (MRCItem +litem &243 +pos 1 +dimension 20 +uid 4413,0 +) +*251 (MRCItem +litem &244 +pos 0 +dimension 20 +uid 4415,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3275,0 +optionalChildren [ +*252 (MRCItem +litem &235 +pos 0 +dimension 20 +uid 3276,0 +) +*253 (MRCItem +litem &237 +pos 1 +dimension 50 +uid 3277,0 +) +*254 (MRCItem +litem &238 +pos 2 +dimension 100 +uid 3278,0 +) +*255 (MRCItem +litem &239 +pos 3 +dimension 100 +uid 3279,0 +) +*256 (MRCItem +litem &240 +pos 4 +dimension 50 +uid 3280,0 +) +*257 (MRCItem +litem &241 +pos 5 +dimension 50 +uid 3281,0 +) +*258 (MRCItem +litem &242 +pos 6 +dimension 80 +uid 3282,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3270,0 +vaOverrides [ +] +) +] +) +uid 3256,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/student@version.bd b/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/student@version.bd new file mode 100644 index 0000000..4440cd9 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/student@version.bd @@ -0,0 +1,6671 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I2" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 217,0 +) +(Instance +name "I3" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 812,0 +) +(Instance +name "I4" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 832,0 +) +(Instance +name "I5" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 852,0 +) +(Instance +name "I6" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 872,0 +) +(Instance +name "I1" +duLibraryName "io" +duName "triBuffLogicV" +elements [ +(GiElement +name "nbBits" +type "positive" +value "dataBitNb" +) +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 1001,0 +) +(Instance +name "I0" +duLibraryName "Curves" +duName "beamerPeriph" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 1250,0 +) +(Instance +name "I7" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 1307,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/student@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/student@version.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "studentVersion" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer" +) +(vvPair +variable "date" +value "04/15/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "15" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FPGA_beamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "student@version.bd" +) +(vvPair +variable "f_logical" +value "studentVersion.bd" +) +(vvPair +variable "f_noext" +value "student@version" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "04/15/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:26:56" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FPGA_beamer" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/student@version.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer/studentVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "student@version" +) +(vvPair +variable "this_file_logical" +value "studentVersion" +) +(vvPair +variable "time" +value "14:26:56" +) +(vvPair +variable "unit" +value "FPGA_beamer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "studentVersion" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "17000,57625,18500,58375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "18500,58000,19000,58000" +pts [ +"18500,58000" +"19000,58000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "12200,57300,16000,58700" +st "clock" +ju 2 +blo "16000,58500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "courier,8,0" +) +xt "65000,2400,77500,3300" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "67500,26625,69000,27375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "67000,27000,67500,27000" +pts [ +"67000,27000" +"67500,27000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "70000,26300,73800,27700" +st "yOut" +blo "70000,27500" +tm "WireNameMgr" +) +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "17000,61625,18500,62375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "18500,62000,19000,62000" +pts [ +"18500,62000" +"19000,62000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "10200,61300,16000,62700" +st "reset_N" +ju 2 +blo "16000,62500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "65000,22000,81000,22900" +st "SIGNAL reset : std_ulogic" +) +) +*6 (Grouping +uid 51,0 +optionalChildren [ +*7 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,74000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,74000,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,61000,78000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,61000,77800,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,74000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,73400,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,63000,57000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,63000,56800,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,62000,94000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*12 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,94000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,93800,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,61000,74000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "59000,61500,68000,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,64000,57000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,64000,56200,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,65000,57000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,65000,56800,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,74000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,68600,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "53000,61000,94000,66000" +) +oxt "14000,66000,55000,71000" +) +*17 (SaComponent +uid 217,0 +optionalChildren [ +*18 (CptPort +uid 208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 209,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,61625,24000,62375" +) +tg (CPTG +uid 210,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 211,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,61500,26700,62900" +st "in1" +blo "24000,62700" +) +s (Text +uid 226,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,62900,24000,62900" +blo "24000,62900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*19 (CptPort +uid 212,0 +optionalChildren [ +*20 (Circle +uid 216,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,61625,29750,62375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 213,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,61625,30500,62375" +) +tg (CPTG +uid 214,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 215,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,61500,28750,62900" +st "out1" +ju 2 +blo "28750,62700" +) +s (Text +uid 227,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,62900,28750,62900" +ju 2 +blo "28750,62900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 218,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,59000,29000,65000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 219,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*21 (Text +uid 220,0 +va (VaSet +isHidden 1 +) +xt "24910,57700,27210,58700" +st "gates" +blo "24910,58500" +tm "BdLibraryNameMgr" +) +*22 (Text +uid 221,0 +va (VaSet +isHidden 1 +) +xt "24910,58700,27810,59700" +st "inverter" +blo "24910,59500" +tm "CptNameMgr" +) +*23 (Text +uid 222,0 +va (VaSet +) +xt "24910,58700,25910,59700" +st "I2" +blo "24910,59500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 223,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 224,0 +text (MLText +uid 225,0 +va (VaSet +isHidden 1 +) +xt "24000,65400,39600,66400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*24 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +font "courier,8,0" +) +xt "65000,3200,77500,4100" +st "reset_N : std_ulogic" +) +) +*25 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +declText (MLText +uid 477,0 +va (VaSet +font "courier,8,0" +) +xt "65000,8800,77500,9700" +st "xOut : std_ulogic" +) +) +*26 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "67500,24625,69000,25375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "67000,25000,67500,25000" +pts [ +"67000,25000" +"67500,25000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "70000,24300,73800,25700" +st "xOut" +blo "70000,25500" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +declText (MLText +uid 612,0 +va (VaSet +font "courier,8,0" +) +xt "65000,9600,77500,10500" +st "yOut : std_ulogic" +) +) +*28 (SaComponent +uid 812,0 +optionalChildren [ +*29 (CptPort +uid 821,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 822,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,53625,24000,54375" +) +tg (CPTG +uid 823,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 824,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,53500,26700,54900" +st "in1" +blo "24000,54700" +) +s (Text +uid 825,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,54900,24000,54900" +blo "24000,54900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*30 (CptPort +uid 826,0 +optionalChildren [ +*31 (Circle +uid 831,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,53625,29750,54375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 827,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,53625,30500,54375" +) +tg (CPTG +uid 828,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 829,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,53500,28750,54900" +st "out1" +ju 2 +blo "28750,54700" +) +s (Text +uid 830,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,54900,28750,54900" +ju 2 +blo "28750,54900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 813,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,51000,29000,57000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 814,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 815,0 +va (VaSet +isHidden 1 +) +xt "24910,49700,27210,50700" +st "gates" +blo "24910,50500" +tm "BdLibraryNameMgr" +) +*33 (Text +uid 816,0 +va (VaSet +isHidden 1 +) +xt "24910,50700,27810,51700" +st "inverter" +blo "24910,51500" +tm "CptNameMgr" +) +*34 (Text +uid 817,0 +va (VaSet +) +xt "24910,50700,25910,51700" +st "I3" +blo "24910,51500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 818,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 819,0 +text (MLText +uid 820,0 +va (VaSet +isHidden 1 +) +xt "24000,57400,39600,58400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*35 (SaComponent +uid 832,0 +optionalChildren [ +*36 (CptPort +uid 841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 842,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,45625,24000,46375" +) +tg (CPTG +uid 843,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 844,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,45500,26700,46900" +st "in1" +blo "24000,46700" +) +s (Text +uid 845,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,46900,24000,46900" +blo "24000,46900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*37 (CptPort +uid 846,0 +optionalChildren [ +*38 (Circle +uid 851,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,45625,29750,46375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 847,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,45625,30500,46375" +) +tg (CPTG +uid 848,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 849,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,45500,28750,46900" +st "out1" +ju 2 +blo "28750,46700" +) +s (Text +uid 850,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,46900,28750,46900" +ju 2 +blo "28750,46900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 833,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,43000,29000,49000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 834,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 835,0 +va (VaSet +isHidden 1 +) +xt "24910,41700,27210,42700" +st "gates" +blo "24910,42500" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 836,0 +va (VaSet +isHidden 1 +) +xt "24910,42700,27810,43700" +st "inverter" +blo "24910,43500" +tm "CptNameMgr" +) +*41 (Text +uid 837,0 +va (VaSet +) +xt "24910,42700,25910,43700" +st "I4" +blo "24910,43500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 838,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 839,0 +text (MLText +uid 840,0 +va (VaSet +isHidden 1 +) +xt "24000,49400,39600,50400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 852,0 +optionalChildren [ +*43 (CptPort +uid 861,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 862,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,37625,24000,38375" +) +tg (CPTG +uid 863,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 864,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,37500,26700,38900" +st "in1" +blo "24000,38700" +) +s (Text +uid 865,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,38900,24000,38900" +blo "24000,38900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*44 (CptPort +uid 866,0 +optionalChildren [ +*45 (Circle +uid 871,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,37625,29750,38375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 867,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,37625,30500,38375" +) +tg (CPTG +uid 868,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 869,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,37500,28750,38900" +st "out1" +ju 2 +blo "28750,38700" +) +s (Text +uid 870,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,38900,28750,38900" +ju 2 +blo "28750,38900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 853,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,35000,29000,41000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 854,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +uid 855,0 +va (VaSet +isHidden 1 +) +xt "24910,33700,27210,34700" +st "gates" +blo "24910,34500" +tm "BdLibraryNameMgr" +) +*47 (Text +uid 856,0 +va (VaSet +isHidden 1 +) +xt "24910,34700,27810,35700" +st "inverter" +blo "24910,35500" +tm "CptNameMgr" +) +*48 (Text +uid 857,0 +va (VaSet +) +xt "24910,34700,25910,35700" +st "I5" +blo "24910,35500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 858,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 859,0 +text (MLText +uid 860,0 +va (VaSet +isHidden 1 +) +xt "24000,41400,39600,42400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*49 (SaComponent +uid 872,0 +optionalChildren [ +*50 (CptPort +uid 881,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 882,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,30625,24000,31375" +) +tg (CPTG +uid 883,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 884,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,30500,26700,31900" +st "in1" +blo "24000,31700" +) +s (Text +uid 885,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,31900,24000,31900" +blo "24000,31900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*51 (CptPort +uid 886,0 +optionalChildren [ +*52 (Circle +uid 891,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,30625,29750,31375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 887,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,30625,30500,31375" +) +tg (CPTG +uid 888,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 889,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,30500,28750,31900" +st "out1" +ju 2 +blo "28750,31700" +) +s (Text +uid 890,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,31900,28750,31900" +ju 2 +blo "28750,31900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 873,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,28000,29000,34000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 874,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 875,0 +va (VaSet +isHidden 1 +) +xt "24910,26700,27210,27700" +st "gates" +blo "24910,27500" +tm "BdLibraryNameMgr" +) +*54 (Text +uid 876,0 +va (VaSet +isHidden 1 +) +xt "24910,27700,27810,28700" +st "inverter" +blo "24910,28500" +tm "CptNameMgr" +) +*55 (Text +uid 877,0 +va (VaSet +) +xt "24910,27700,25910,28700" +st "I6" +blo "24910,28500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 878,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 879,0 +text (MLText +uid 880,0 +va (VaSet +isHidden 1 +) +xt "24000,34400,39600,35400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*56 (Net +uid 898,0 +decl (Decl +n "rd" +t "std_ulogic" +o 22 +suid 6,0 +) +declText (MLText +uid 899,0 +va (VaSet +font "courier,8,0" +) +xt "65000,21200,81000,22100" +st "SIGNAL rd : std_ulogic" +) +) +*57 (Net +uid 904,0 +decl (Decl +n "wrH" +t "std_ulogic" +o 25 +suid 7,0 +) +declText (MLText +uid 905,0 +va (VaSet +font "courier,8,0" +) +xt "65000,23600,81000,24500" +st "SIGNAL wrH : std_ulogic" +) +) +*58 (Net +uid 910,0 +decl (Decl +n "wrL" +t "std_ulogic" +o 26 +suid 8,0 +) +declText (MLText +uid 911,0 +va (VaSet +font "courier,8,0" +) +xt "65000,24400,81000,25300" +st "SIGNAL wrL : std_ulogic" +) +) +*59 (Net +uid 916,0 +decl (Decl +n "cs" +t "std_ulogic" +o 13 +suid 9,0 +) +declText (MLText +uid 917,0 +va (VaSet +font "courier,8,0" +) +xt "65000,14000,81000,14900" +st "SIGNAL cs : std_ulogic" +) +) +*60 (Net +uid 978,0 +decl (Decl +n "ncs" +t "std_ulogic" +o 18 +suid 10,0 +) +declText (MLText +uid 979,0 +va (VaSet +font "courier,8,0" +) +xt "65000,18000,81000,18900" +st "SIGNAL ncs : std_ulogic" +) +) +*61 (Net +uid 980,0 +decl (Decl +n "nwr0" +t "std_ulogic" +o 20 +suid 11,0 +) +declText (MLText +uid 981,0 +va (VaSet +font "courier,8,0" +) +xt "65000,19600,81000,20500" +st "SIGNAL nwr0 : std_ulogic" +) +) +*62 (Net +uid 982,0 +decl (Decl +n "nwr1" +t "std_ulogic" +o 21 +suid 12,0 +) +declText (MLText +uid 983,0 +va (VaSet +font "courier,8,0" +) +xt "65000,20400,81000,21300" +st "SIGNAL nwr1 : std_ulogic" +) +) +*63 (Net +uid 984,0 +decl (Decl +n "nrd" +t "std_ulogic" +o 19 +suid 13,0 +) +declText (MLText +uid 985,0 +va (VaSet +font "courier,8,0" +) +xt "65000,18800,81000,19700" +st "SIGNAL nrd : std_ulogic" +) +) +*64 (SaComponent +uid 1001,0 +optionalChildren [ +*65 (CptPort +uid 986,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 987,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,20625,24000,21375" +) +tg (CPTG +uid 988,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 989,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23250,20750,26950,22150" +st "out1" +blo "23250,21950" +) +s (Text +uid 990,0 +va (VaSet +isHidden 1 +) +xt "23250,22150,33950,23150" +blo "23250,22950" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_logic_vector" +b "(nbBits-1 DOWNTO 0)" +o 16 +) +) +) +*66 (CptPort +uid 991,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 992,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,20625,30750,21375" +) +tg (CPTG +uid 993,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 994,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "27950,21250,30650,22650" +st "in1" +ju 2 +blo "30650,22450" +) +s (Text +uid 995,0 +va (VaSet +isHidden 1 +) +xt "19950,22650,30650,23650" +ju 2 +blo "30650,23450" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_logic_vector" +b "(nbBits-1 DOWNTO 0)" +o 12 +) +) +) +*67 (CptPort +uid 996,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 997,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,18250,27375,19000" +) +tg (CPTG +uid 998,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 999,0 +va (VaSet +font "courier,12,0" +) +xt "26200,19100,28600,20500" +st "oe" +blo "26200,20300" +) +s (Text +uid 1000,0 +va (VaSet +isHidden 1 +) +xt "26200,20500,30500,21500" +blo "26200,21300" +) +) +thePort (LogicalPort +decl (Decl +n "oe" +t "std_ulogic" +o 3 +) +) +) +] +shape (Buf +uid 1002,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24000,17000,30000,25000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1003,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +uid 1004,0 +va (VaSet +isHidden 1 +) +xt "24750,21400,25750,22400" +st "io" +blo "24750,22200" +tm "BdLibraryNameMgr" +) +*69 (Text +uid 1005,0 +va (VaSet +isHidden 1 +) +xt "24750,22400,29950,23400" +st "triBuffLogicV" +blo "24750,23200" +tm "CptNameMgr" +) +*70 (Text +uid 1006,0 +va (VaSet +) +xt "24750,22400,25750,23400" +st "I1" +blo "24750,23200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1007,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1008,0 +text (MLText +uid 1009,0 +va (VaSet +font "courier,9,0" +) +xt "21000,23600,39000,25400" +st "nbBits = dataBitNb ( positive ) +delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "nbBits" +type "positive" +value "dataBitNb" +) +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +connectByName 1 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*71 (Net +uid 1025,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 14,0 +) +declText (MLText +uid 1026,0 +va (VaSet +font "courier,8,0" +) +xt "65000,17200,95000,18100" +st "SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*72 (Net +uid 1031,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 15 +suid 15,0 +) +declText (MLText +uid 1032,0 +va (VaSet +font "courier,8,0" +) +xt "65000,15600,95500,16500" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*73 (Net +uid 1039,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 12 +suid 16,0 +) +declText (MLText +uid 1040,0 +va (VaSet +font "courier,8,0" +) +xt "65000,13200,92500,14100" +st "SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*74 (HdlText +uid 1053,0 +optionalChildren [ +*75 (EmbeddedText +uid 1058,0 +commentText (CommentText +uid 1059,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1060,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "24000,10000,34000,12000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1061,0 +va (VaSet +) +xt "24200,10200,33800,12200" +st " +dataIn <= std_ulogic_vector(data); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 10000 +) +) +) +] +shape (Rectangle +uid 1054,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "23000,9000,35000,13000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1055,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 1056,0 +va (VaSet +) +xt "22400,13000,24000,14000" +st "eb1" +blo "22400,13800" +tm "HdlTextNameMgr" +) +*77 (Text +uid 1057,0 +va (VaSet +) +xt "22400,14000,23200,15000" +st "1" +blo "22400,14800" +tm "HdlTextNumberMgr" +) +] +) +) +*78 (Net +uid 1070,0 +decl (Decl +n "data" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 14 +suid 17,0 +) +declText (MLText +uid 1071,0 +va (VaSet +font "courier,8,0" +) +xt "65000,14800,95000,15700" +st "SIGNAL data : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*79 (PortIoOut +uid 1157,0 +shape (CompositeShape +uid 1158,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1159,0 +sl 0 +ro 270 +xt "91500,39625,93000,40375" +) +(Line +uid 1160,0 +sl 0 +ro 270 +xt "91000,40000,91500,40000" +pts [ +"91000,40000" +"91500,40000" +] +) +] +) +tg (WTG +uid 1161,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1162,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,39300,98000,40700" +st "LED2" +blo "94000,40500" +tm "WireNameMgr" +) +) +) +*80 (Net +uid 1169,0 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 18,0 +) +declText (MLText +uid 1170,0 +va (VaSet +font "courier,8,0" +) +xt "65000,6400,77500,7300" +st "LED2 : std_ulogic" +) +) +*81 (Net +uid 1183,0 +decl (Decl +n "LED4" +t "std_ulogic" +o 11 +suid 19,0 +) +declText (MLText +uid 1184,0 +va (VaSet +font "courier,8,0" +) +xt "65000,12400,81000,13300" +st "SIGNAL LED4 : std_ulogic" +) +) +*82 (HdlText +uid 1185,0 +optionalChildren [ +*83 (EmbeddedText +uid 1190,0 +commentText (CommentText +uid 1191,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1192,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "68000,40000,82000,45000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1193,0 +va (VaSet +) +xt "68200,40200,81400,44200" +st " +LED2 <= '0'; +LED4 <= '0'; +spare <= (others => '0'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 5000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 1186,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "67000,39000,83000,47000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1187,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 1188,0 +va (VaSet +) +xt "67400,47000,69000,48000" +st "eb2" +blo "67400,47800" +tm "HdlTextNameMgr" +) +*85 (Text +uid 1189,0 +va (VaSet +) +xt "67400,48000,68200,49000" +st "2" +blo "67400,48800" +tm "HdlTextNumberMgr" +) +] +) +) +*86 (SaComponent +uid 1250,0 +optionalChildren [ +*87 (CptPort +uid 1202,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1203,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,42625,43000,43375" +) +tg (CPTG +uid 1204,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1205,0 +va (VaSet +font "courier,9,0" +) +xt "44000,42400,47400,43600" +st "clock" +blo "44000,43400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*88 (CptPort +uid 1206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1207,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,24625,43000,25375" +) +tg (CPTG +uid 1208,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1209,0 +va (VaSet +font "courier,9,0" +) +xt "44000,24400,46900,25600" +st "addr" +blo "44000,25400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*89 (CptPort +uid 1210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1211,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,24625,59750,25375" +) +tg (CPTG +uid 1212,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1213,0 +va (VaSet +font "courier,9,0" +) +xt "55001,24400,58001,25600" +st "outX" +ju 2 +blo "58001,25400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +) +) +) +*90 (CptPort +uid 1214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,44625,43000,45375" +) +tg (CPTG +uid 1216,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1217,0 +va (VaSet +font "courier,9,0" +) +xt "44000,44400,47300,45600" +st "reset" +blo "44000,45400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*91 (CptPort +uid 1218,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1219,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,26625,59750,27375" +) +tg (CPTG +uid 1220,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1221,0 +va (VaSet +font "courier,9,0" +) +xt "55001,26400,58001,27600" +st "outY" +ju 2 +blo "58001,27400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +) +) +) +*92 (CptPort +uid 1222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1223,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,26625,43000,27375" +) +tg (CPTG +uid 1224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1225,0 +va (VaSet +font "courier,9,0" +) +xt "44000,26400,48000,27600" +st "dataIn" +blo "44000,27400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*93 (CptPort +uid 1226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,32625,43000,33375" +) +tg (CPTG +uid 1228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1229,0 +va (VaSet +font "courier,9,0" +) +xt "44000,32400,45700,33600" +st "rd" +blo "44000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +) +) +) +*94 (CptPort +uid 1230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1231,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,34625,43000,35375" +) +tg (CPTG +uid 1232,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1233,0 +va (VaSet +font "courier,9,0" +) +xt "44000,34400,46600,35600" +st "wrH" +blo "44000,35400" +) +) +thePort (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +) +) +) +*95 (CptPort +uid 1234,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1235,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,38625,43000,39375" +) +tg (CPTG +uid 1236,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1237,0 +va (VaSet +font "courier,9,0" +) +xt "44000,38400,45900,39600" +st "cs" +blo "44000,39400" +) +) +thePort (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +) +) +) +*96 (CptPort +uid 1238,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1239,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,36625,43000,37375" +) +tg (CPTG +uid 1240,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1241,0 +va (VaSet +font "courier,9,0" +) +xt "44000,36400,46400,37600" +st "wrL" +blo "44000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +) +) +) +*97 (CptPort +uid 1242,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1243,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,28625,43000,29375" +) +tg (CPTG +uid 1244,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1245,0 +va (VaSet +font "courier,9,0" +) +xt "44000,28400,48800,29600" +st "dataOut" +blo "44000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +) +) +) +*98 (CptPort +uid 1246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1247,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,42625,59750,43375" +) +tg (CPTG +uid 1248,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1249,0 +va (VaSet +font "courier,9,0" +) +xt "53401,42400,58001,43600" +st "testOut" +ju 2 +blo "58001,43400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +) +) +) +] +shape (Rectangle +uid 1251,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,21000,59000,47000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1252,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 1253,0 +va (VaSet +) +xt "43600,46800,46400,47800" +st "Curves" +blo "43600,47600" +tm "BdLibraryNameMgr" +) +*100 (Text +uid 1254,0 +va (VaSet +) +xt "43600,47800,49100,48800" +st "beamerPeriph" +blo "43600,48600" +tm "CptNameMgr" +) +*101 (Text +uid 1255,0 +va (VaSet +) +xt "43600,48800,44600,49800" +st "I0" +blo "43600,49600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1256,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1257,0 +text (MLText +uid 1258,0 +va (VaSet +font "courier,8,0" +) +xt "43000,50600,65500,52400" +st "dataBitNb = dataBitNb ( positive ) +addressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*102 (Net +uid 1259,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 24 +suid 20,0 +) +declText (MLText +uid 1260,0 +va (VaSet +font "courier,8,0" +) +xt "65000,22800,89000,23700" +st "SIGNAL testOut : std_ulogic_vector(1 TO 16)" +) +) +*103 (PortIoOut +uid 1267,0 +shape (CompositeShape +uid 1268,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1269,0 +sl 0 +ro 270 +xt "91500,43625,93000,44375" +) +(Line +uid 1270,0 +sl 0 +ro 270 +xt "91000,44000,91500,44000" +pts [ +"91000,44000" +"91500,44000" +] +) +] +) +tg (WTG +uid 1271,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1272,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,43300,106400,44700" +st "spare : (1 TO 17)" +blo "94000,44500" +tm "WireNameMgr" +) +) +) +*104 (Net +uid 1279,0 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +declText (MLText +uid 1280,0 +va (VaSet +font "courier,8,0" +) +xt "65000,7200,85500,8100" +st "spare : std_ulogic_vector(1 TO 17)" +) +) +*105 (SaComponent +uid 1307,0 +optionalChildren [ +*106 (CptPort +uid 1295,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1296,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,16625,51750,17375" +) +tg (CPTG +uid 1297,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1298,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "39400,16200,51000,17600" +st "in1 : std_uLogic" +ju 2 +blo "51000,17400" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*107 (CptPort +uid 1299,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1300,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,12625,51750,13375" +) +tg (CPTG +uid 1301,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1302,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "39400,12200,51000,13600" +st "in2 : std_uLogic" +ju 2 +blo "51000,13400" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*108 (CptPort +uid 1303,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1304,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43300,14625,44050,15375" +) +tg (CPTG +uid 1305,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1306,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "44000,14250,56600,15650" +st "out1 : std_uLogic" +blo "44000,15450" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (And +uid 1308,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,12000,51000,18000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1309,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +uid 1310,0 +va (VaSet +isHidden 1 +) +xt "46600,12700,48900,13700" +st "gates" +blo "46600,13500" +tm "BdLibraryNameMgr" +) +*110 (Text +uid 1311,0 +va (VaSet +isHidden 1 +) +xt "46600,13700,48600,14700" +st "and2" +blo "46600,14500" +tm "CptNameMgr" +) +*111 (Text +uid 1312,0 +va (VaSet +) +xt "46600,13700,47600,14700" +st "I7" +blo "46600,14500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1313,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1314,0 +text (MLText +uid 1315,0 +va (VaSet +isHidden 1 +) +xt "44000,18400,59600,19400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*112 (Net +uid 1334,0 +decl (Decl +n "dataOE" +t "std_ulogic" +o 16 +suid 22,0 +) +declText (MLText +uid 1335,0 +va (VaSet +font "courier,8,0" +) +xt "65000,16400,81000,17300" +st "SIGNAL dataOE : std_ulogic" +) +) +*113 (PortIoIn +uid 1516,0 +shape (CompositeShape +uid 1517,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1518,0 +sl 0 +ro 270 +xt "17000,65625,18500,66375" +) +(Line +uid 1519,0 +sl 0 +ro 270 +xt "18500,66000,19000,66000" +pts [ +"18500,66000" +"19000,66000" +] +) +] +) +tg (WTG +uid 1520,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1521,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "6700,65500,16000,66900" +st "selSinCos_n" +ju 2 +blo "16000,66700" +tm "WireNameMgr" +) +) +) +*114 (Net +uid 1528,0 +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 23 +suid 23,0 +) +declText (MLText +uid 1529,0 +va (VaSet +font "courier,8,0" +) +xt "65000,4800,77500,5700" +st "selSinCos_n : std_ulogic" +) +) +*115 (PortIoOut +uid 1530,0 +shape (CompositeShape +uid 1531,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1532,0 +sl 0 +ro 270 +xt "91500,47625,93000,48375" +) +(Line +uid 1533,0 +sl 0 +ro 270 +xt "91000,48000,91500,48000" +pts [ +"91000,48000" +"91500,48000" +] +) +] +) +tg (WTG +uid 1534,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1535,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,47500,98000,48900" +st "LED1" +blo "94000,48700" +tm "WireNameMgr" +) +) +) +*116 (Net +uid 1542,0 +decl (Decl +n "LED1" +t "std_ulogic" +o 24 +suid 24,0 +) +declText (MLText +uid 1543,0 +va (VaSet +font "courier,8,0" +) +xt "65000,5600,77500,6500" +st "LED1 : std_ulogic" +) +) +*117 (PortIoOut +uid 1544,0 +shape (CompositeShape +uid 1545,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1546,0 +sl 0 +ro 270 +xt "91500,49625,93000,50375" +) +(Line +uid 1547,0 +sl 0 +ro 270 +xt "91000,50000,91500,50000" +pts [ +"91000,50000" +"91500,50000" +] +) +] +) +tg (WTG +uid 1548,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1549,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,49500,97600,50900" +st "txd0" +blo "94000,50700" +tm "WireNameMgr" +) +) +) +*118 (Net +uid 1556,0 +decl (Decl +n "txd0" +t "std_ulogic" +o 25 +suid 25,0 +) +declText (MLText +uid 1557,0 +va (VaSet +font "courier,8,0" +) +xt "65000,8000,77500,8900" +st "txd0 : std_ulogic" +) +) +*119 (PortIoIn +uid 1558,0 +shape (CompositeShape +uid 1559,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1560,0 +sl 0 +ro 270 +xt "17000,67625,18500,68375" +) +(Line +uid 1561,0 +sl 0 +ro 270 +xt "18500,68000,19000,68000" +pts [ +"18500,68000" +"19000,68000" +] +) +] +) +tg (WTG +uid 1562,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1563,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "12400,67500,16000,68900" +st "rxd0" +ju 2 +blo "16000,68700" +tm "WireNameMgr" +) +) +) +*120 (Net +uid 1570,0 +decl (Decl +n "rxd0" +t "std_ulogic" +o 26 +suid 26,0 +) +declText (MLText +uid 1571,0 +va (VaSet +font "courier,8,0" +) +xt "65000,4000,77500,4900" +st "rxd0 : std_ulogic" +) +) +*121 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "19000,43000,42250,58000" +pts [ +"19000,58000" +"39000,58000" +"39000,43000" +"42250,43000" +] +) +start &1 +end &87 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "courier,12,0" +) +xt "19000,56600,22800,58000" +st "clock" +blo "19000,57800" +tm "WireNameMgr" +) +) +on &2 +) +*122 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "59750,27000,67000,27000" +pts [ +"67000,27000" +"59750,27000" +] +) +start &3 +end &91 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "courier,12,0" +) +xt "62000,25600,65800,27000" +st "yOut" +blo "62000,26800" +tm "WireNameMgr" +) +) +on &27 +) +*123 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "19000,62000,24000,62000" +pts [ +"19000,62000" +"24000,62000" +] +) +start &4 +end &18 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "courier,12,0" +) +xt "18000,60600,23800,62000" +st "reset_N" +blo "18000,61800" +tm "WireNameMgr" +) +) +on &24 +) +*124 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "29750,45000,42250,62000" +pts [ +"29750,62000" +"41000,62000" +"41000,45000" +"42250,45000" +] +) +start &19 +end &90 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "courier,12,0" +) +xt "31000,60600,35100,62000" +st "reset" +blo "31000,61800" +tm "WireNameMgr" +) +) +on &5 +) +*125 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "59750,25000,67000,25000" +pts [ +"67000,25000" +"59750,25000" +] +) +start &26 +end &89 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "courier,12,0" +) +xt "62000,23600,65800,25000" +st "xOut" +blo "62000,24800" +tm "WireNameMgr" +) +) +on &25 +) +*126 (Wire +uid 900,0 +shape (OrthoPolyLine +uid 901,0 +va (VaSet +vasetType 3 +) +xt "29750,31000,42250,33000" +pts [ +"42250,33000" +"33000,33000" +"33000,31000" +"29750,31000" +] +) +start &93 +end &51 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 902,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 903,0 +va (VaSet +font "courier,12,0" +) +xt "31000,29600,33100,31000" +st "rd" +blo "31000,30800" +tm "WireNameMgr" +) +) +on &56 +) +*127 (Wire +uid 906,0 +shape (OrthoPolyLine +uid 907,0 +va (VaSet +vasetType 3 +) +xt "29750,35000,42250,38000" +pts [ +"42250,35000" +"33000,35000" +"33000,38000" +"29750,38000" +] +) +start &94 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 908,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 909,0 +va (VaSet +font "courier,12,0" +) +xt "31000,36600,34300,38000" +st "wrH" +blo "31000,37800" +tm "WireNameMgr" +) +) +on &57 +) +*128 (Wire +uid 912,0 +shape (OrthoPolyLine +uid 913,0 +va (VaSet +vasetType 3 +) +xt "29750,37000,42250,46000" +pts [ +"42250,37000" +"35000,37000" +"35000,46000" +"29750,46000" +] +) +start &96 +end &37 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 914,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 915,0 +va (VaSet +font "courier,12,0" +) +xt "31000,44600,34100,46000" +st "wrL" +blo "31000,45800" +tm "WireNameMgr" +) +) +on &58 +) +*129 (Wire +uid 918,0 +shape (OrthoPolyLine +uid 919,0 +va (VaSet +vasetType 3 +) +xt "29750,39000,42250,54000" +pts [ +"42250,39000" +"37000,39000" +"37000,54000" +"29750,54000" +] +) +start &95 +end &30 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 920,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 921,0 +va (VaSet +font "courier,12,0" +) +xt "31000,52600,33100,54000" +st "cs" +blo "31000,53800" +tm "WireNameMgr" +) +) +on &59 +) +*130 (Wire +uid 922,0 +shape (OrthoPolyLine +uid 923,0 +va (VaSet +vasetType 3 +) +xt "19000,46000,24000,46000" +pts [ +"24000,46000" +"19000,46000" +] +) +start &36 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 928,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 929,0 +va (VaSet +font "courier,12,0" +) +xt "19000,44600,23000,46000" +st "nwr0" +blo "19000,45800" +tm "WireNameMgr" +) +) +on &61 +) +*131 (Wire +uid 930,0 +shape (OrthoPolyLine +uid 931,0 +va (VaSet +vasetType 3 +) +xt "19000,31000,24000,31000" +pts [ +"24000,31000" +"19000,31000" +] +) +start &50 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 936,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 937,0 +va (VaSet +font "courier,12,0" +) +xt "19000,29600,21900,31000" +st "nrd" +blo "19000,30800" +tm "WireNameMgr" +) +) +on &63 +) +*132 (Wire +uid 938,0 +shape (OrthoPolyLine +uid 939,0 +va (VaSet +vasetType 3 +) +xt "19000,54000,24000,54000" +pts [ +"24000,54000" +"19000,54000" +] +) +start &29 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 944,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 945,0 +va (VaSet +font "courier,12,0" +) +xt "19000,52600,21900,54000" +st "ncs" +blo "19000,53800" +tm "WireNameMgr" +) +) +on &60 +) +*133 (Wire +uid 946,0 +shape (OrthoPolyLine +uid 947,0 +va (VaSet +vasetType 3 +) +xt "19000,38000,24000,38000" +pts [ +"24000,38000" +"19000,38000" +] +) +start &43 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 952,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 953,0 +va (VaSet +font "courier,12,0" +) +xt "19000,36600,23000,38000" +st "nwr1" +blo "19000,37800" +tm "WireNameMgr" +) +) +on &62 +) +*134 (Wire +uid 1027,0 +shape (OrthoPolyLine +uid 1028,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30750,21000,42250,29000" +pts [ +"42250,29000" +"35000,29000" +"35000,21000" +"30750,21000" +] +) +start &97 +end &66 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1029,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1030,0 +va (VaSet +font "courier,12,0" +) +xt "36250,27600,42250,29000" +st "dataOut" +blo "36250,28800" +tm "WireNameMgr" +) +) +on &71 +) +*135 (Wire +uid 1033,0 +shape (OrthoPolyLine +uid 1034,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "35000,11000,42250,27000" +pts [ +"42250,27000" +"37000,27000" +"37000,11000" +"35000,11000" +] +) +start &92 +end &74 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1037,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1038,0 +va (VaSet +font "courier,12,0" +) +xt "37250,25600,42250,27000" +st "dataIn" +blo "37250,26800" +tm "WireNameMgr" +) +) +on &72 +) +*136 (Wire +uid 1041,0 +shape (OrthoPolyLine +uid 1042,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,5000,42250,25000" +pts [ +"42250,25000" +"38000,25000" +"38000,5000" +"19000,5000" +] +) +start &88 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1045,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1046,0 +va (VaSet +font "courier,12,0" +) +xt "19000,3600,22700,5000" +st "addr" +blo "19000,4800" +tm "WireNameMgr" +) +) +on &73 +) +*137 (Wire +uid 1062,0 +optionalChildren [ +*138 (BdJunction +uid 1084,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1085,0 +va (VaSet +vasetType 1 +) +xt "20600,15600,21400,16400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1063,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,16000,23250,21000" +pts [ +"23250,21000" +"21000,21000" +"21000,16000" +"19000,16000" +] +) +start &65 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1068,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1069,0 +va (VaSet +font "courier,12,0" +) +xt "18000,13600,21700,15000" +st "data" +blo "18000,14800" +tm "WireNameMgr" +) +) +on &78 +) +*139 (Wire +uid 1078,0 +shape (OrthoPolyLine +uid 1079,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "21000,11000,23000,16000" +pts [ +"21000,16000" +"21000,11000" +"23000,11000" +] +) +start &138 +end &74 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1082,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1083,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "19000,9600,22700,11000" +st "data" +blo "19000,10800" +tm "WireNameMgr" +) +) +on &78 +) +*140 (Wire +uid 1086,0 +shape (OrthoPolyLine +uid 1087,0 +va (VaSet +vasetType 3 +) +xt "51000,13000,55000,13000" +pts [ +"51000,13000" +"55000,13000" +] +) +start &107 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1092,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1093,0 +va (VaSet +font "courier,12,0" +) +xt "53000,11600,55100,13000" +st "rd" +blo "53000,12800" +tm "WireNameMgr" +) +) +on &56 +) +*141 (Wire +uid 1163,0 +shape (OrthoPolyLine +uid 1164,0 +va (VaSet +vasetType 3 +) +xt "83000,40000,91000,40000" +pts [ +"83000,40000" +"91000,40000" +] +) +start &82 +end &79 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1167,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1168,0 +va (VaSet +font "courier,12,0" +) +xt "88000,38600,92000,40000" +st "LED2" +blo "88000,39800" +tm "WireNameMgr" +) +) +on &80 +) +*142 (Wire +uid 1177,0 +shape (OrthoPolyLine +uid 1178,0 +va (VaSet +vasetType 3 +) +xt "83000,42000,91000,42000" +pts [ +"83000,42000" +"91000,42000" +] +) +start &82 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1181,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1182,0 +va (VaSet +font "courier,12,0" +) +xt "88000,40600,92000,42000" +st "LED4" +blo "88000,41800" +tm "WireNameMgr" +) +) +on &81 +) +*143 (Wire +uid 1261,0 +shape (OrthoPolyLine +uid 1262,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59750,43000,67000,43000" +pts [ +"59750,43000" +"67000,43000" +] +) +start &98 +end &82 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1265,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1266,0 +va (VaSet +font "courier,12,0" +) +xt "61750,41600,67350,43000" +st "testOut" +blo "61750,42800" +tm "WireNameMgr" +) +) +on &102 +) +*144 (Wire +uid 1273,0 +shape (OrthoPolyLine +uid 1274,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83000,44000,91000,44000" +pts [ +"83000,44000" +"91000,44000" +] +) +start &82 +end &103 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1277,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1278,0 +va (VaSet +font "courier,12,0" +) +xt "87000,42600,91400,44000" +st "spare" +blo "87000,43800" +tm "WireNameMgr" +) +) +on &104 +) +*145 (Wire +uid 1330,0 +shape (OrthoPolyLine +uid 1331,0 +va (VaSet +vasetType 3 +) +xt "27000,15000,44050,18250" +pts [ +"44050,15000" +"27000,15000" +"27000,18250" +] +) +start &108 +end &67 +sat 32 +eat 32 +sf 1 +si 0 +tg (WTG +uid 1332,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1333,0 +ro 270 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "48600,-1050,50000,12950" +st "dataOE : std_ulogic" +blo "49800,12950" +tm "WireNameMgr" +) +) +on &112 +) +*146 (Wire +uid 1336,0 +shape (OrthoPolyLine +uid 1337,0 +va (VaSet +vasetType 3 +) +xt "51000,17000,55000,17000" +pts [ +"55000,17000" +"51000,17000" +] +) +end &106 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1342,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1343,0 +va (VaSet +font "courier,12,0" +) +xt "53000,15600,55100,17000" +st "cs" +blo "53000,16800" +tm "WireNameMgr" +) +) +on &59 +) +*147 (Wire +uid 1522,0 +shape (OrthoPolyLine +uid 1523,0 +va (VaSet +vasetType 3 +) +xt "19000,66000,29000,66000" +pts [ +"19000,66000" +"29000,66000" +] +) +start &113 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1526,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1527,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "21000,64600,30300,66000" +st "selSinCos_n" +blo "21000,65800" +tm "WireNameMgr" +) +) +on &114 +) +*148 (Wire +uid 1536,0 +shape (OrthoPolyLine +uid 1537,0 +va (VaSet +vasetType 3 +) +xt "81000,48000,91000,48000" +pts [ +"81000,48000" +"91000,48000" +] +) +end &115 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1541,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "83000,46600,87000,48000" +st "LED1" +blo "83000,47800" +tm "WireNameMgr" +) +) +on &116 +) +*149 (Wire +uid 1550,0 +shape (OrthoPolyLine +uid 1551,0 +va (VaSet +vasetType 3 +) +xt "81000,50000,91000,50000" +pts [ +"81000,50000" +"91000,50000" +] +) +end &117 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1554,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1555,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "83000,48600,86600,50000" +st "txd0" +blo "83000,49800" +tm "WireNameMgr" +) +) +on &118 +) +*150 (Wire +uid 1564,0 +shape (OrthoPolyLine +uid 1565,0 +va (VaSet +vasetType 3 +) +xt "19000,68000,29000,68000" +pts [ +"19000,68000" +"29000,68000" +] +) +start &119 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1568,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1569,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "21000,66600,24600,68000" +st "rxd0" +blo "21000,67800" +tm "WireNameMgr" +) +) +on &120 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *151 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*152 (Text +uid 85,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,0,2400,1000" +st "Package List" +blo "-3000,800" +) +*153 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,15600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*154 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*155 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*156 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*157 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*158 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*159 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*160 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "29,29,922,729" +viewArea "-4864,-1468,96864,67668" +cachedDiagramExtent "-8700,-1050,106400,66600" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 1636,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*161 (Text +va (VaSet +font "courier,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*162 (Text +va (VaSet +font "courier,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*163 (Text +va (VaSet +font "courier,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*164 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*165 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*166 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*167 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*168 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*169 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*170 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*171 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*172 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*173 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*174 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*175 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*176 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*177 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5400,1000" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,10800,2000" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*178 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*179 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*180 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*181 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "63000,400,68400,1400" +st "Declarations" +blo "63000,1200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "63000,1400,65700,2400" +st "Ports:" +blo "63000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "63000,10400,66800,11400" +st "Pre User:" +blo "63000,11200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "65000,11400,85500,13000" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "63000,11400,70100,12400" +st "Diagram Signals:" +blo "63000,12200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "63000,400,67700,1400" +st "Post User:" +blo "63000,1200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "63000,400,63000,400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 26,0 +usingSuid 1 +emptyRow *182 (LEmptyRow +) +uid 1437,0 +optionalChildren [ +*183 (RefLabelRowHdr +) +*184 (TitleRowHdr +) +*185 (FilterRowHdr +) +*186 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*187 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*188 (GroupColHdr +tm "GroupColHdrMgr" +) +*189 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*190 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*191 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*192 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*193 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*194 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*195 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1392,0 +) +*196 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 2,0 +) +) +uid 1394,0 +) +*197 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 1396,0 +) +*198 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +) +uid 1398,0 +) +*199 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +) +uid 1400,0 +) +*200 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rd" +t "std_ulogic" +o 22 +suid 6,0 +) +) +uid 1402,0 +) +*201 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrH" +t "std_ulogic" +o 25 +suid 7,0 +) +) +uid 1404,0 +) +*202 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrL" +t "std_ulogic" +o 26 +suid 8,0 +) +) +uid 1406,0 +) +*203 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cs" +t "std_ulogic" +o 13 +suid 9,0 +) +) +uid 1408,0 +) +*204 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ncs" +t "std_ulogic" +o 18 +suid 10,0 +) +) +uid 1410,0 +) +*205 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "nwr0" +t "std_ulogic" +o 20 +suid 11,0 +) +) +uid 1412,0 +) +*206 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "nwr1" +t "std_ulogic" +o 21 +suid 12,0 +) +) +uid 1414,0 +) +*207 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "nrd" +t "std_ulogic" +o 19 +suid 13,0 +) +) +uid 1416,0 +) +*208 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 14,0 +) +) +uid 1418,0 +) +*209 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 15 +suid 15,0 +) +) +uid 1420,0 +) +*210 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 12 +suid 16,0 +) +) +uid 1422,0 +) +*211 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "data" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 14 +suid 17,0 +) +) +uid 1424,0 +) +*212 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 18,0 +) +) +uid 1426,0 +) +*213 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "LED4" +t "std_ulogic" +o 11 +suid 19,0 +) +) +uid 1428,0 +) +*214 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 24 +suid 20,0 +) +) +uid 1430,0 +) +*215 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +) +uid 1432,0 +) +*216 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOE" +t "std_ulogic" +o 16 +suid 22,0 +) +) +uid 1434,0 +) +*217 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 23,0 +) +) +uid 1509,0 +) +*218 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 24,0 +) +) +uid 1511,0 +) +*219 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 25,0 +) +) +uid 1513,0 +) +*220 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 26,0 +) +) +uid 1515,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1450,0 +optionalChildren [ +*221 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *222 (MRCItem +litem &182 +pos 3 +dimension 20 +) +uid 1452,0 +optionalChildren [ +*223 (MRCItem +litem &183 +pos 0 +dimension 20 +uid 1453,0 +) +*224 (MRCItem +litem &184 +pos 1 +dimension 23 +uid 1454,0 +) +*225 (MRCItem +litem &185 +pos 2 +hidden 1 +dimension 20 +uid 1455,0 +) +*226 (MRCItem +litem &195 +pos 0 +dimension 20 +uid 1393,0 +) +*227 (MRCItem +litem &196 +pos 10 +dimension 20 +uid 1395,0 +) +*228 (MRCItem +litem &197 +pos 1 +dimension 20 +uid 1397,0 +) +*229 (MRCItem +litem &198 +pos 2 +dimension 20 +uid 1399,0 +) +*230 (MRCItem +litem &199 +pos 3 +dimension 20 +uid 1401,0 +) +*231 (MRCItem +litem &200 +pos 11 +dimension 20 +uid 1403,0 +) +*232 (MRCItem +litem &201 +pos 12 +dimension 20 +uid 1405,0 +) +*233 (MRCItem +litem &202 +pos 13 +dimension 20 +uid 1407,0 +) +*234 (MRCItem +litem &203 +pos 14 +dimension 20 +uid 1409,0 +) +*235 (MRCItem +litem &204 +pos 15 +dimension 20 +uid 1411,0 +) +*236 (MRCItem +litem &205 +pos 16 +dimension 20 +uid 1413,0 +) +*237 (MRCItem +litem &206 +pos 17 +dimension 20 +uid 1415,0 +) +*238 (MRCItem +litem &207 +pos 18 +dimension 20 +uid 1417,0 +) +*239 (MRCItem +litem &208 +pos 19 +dimension 20 +uid 1419,0 +) +*240 (MRCItem +litem &209 +pos 20 +dimension 20 +uid 1421,0 +) +*241 (MRCItem +litem &210 +pos 21 +dimension 20 +uid 1423,0 +) +*242 (MRCItem +litem &211 +pos 22 +dimension 20 +uid 1425,0 +) +*243 (MRCItem +litem &212 +pos 7 +dimension 20 +uid 1427,0 +) +*244 (MRCItem +litem &213 +pos 23 +dimension 20 +uid 1429,0 +) +*245 (MRCItem +litem &214 +pos 24 +dimension 20 +uid 1431,0 +) +*246 (MRCItem +litem &215 +pos 4 +dimension 20 +uid 1433,0 +) +*247 (MRCItem +litem &216 +pos 25 +dimension 20 +uid 1435,0 +) +*248 (MRCItem +litem &217 +pos 5 +dimension 20 +uid 1508,0 +) +*249 (MRCItem +litem &218 +pos 6 +dimension 20 +uid 1510,0 +) +*250 (MRCItem +litem &219 +pos 8 +dimension 20 +uid 1512,0 +) +*251 (MRCItem +litem &220 +pos 9 +dimension 20 +uid 1514,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 1456,0 +optionalChildren [ +*252 (MRCItem +litem &186 +pos 0 +dimension 20 +uid 1457,0 +) +*253 (MRCItem +litem &188 +pos 1 +dimension 50 +uid 1458,0 +) +*254 (MRCItem +litem &189 +pos 2 +dimension 100 +uid 1459,0 +) +*255 (MRCItem +litem &190 +pos 3 +dimension 50 +uid 1460,0 +) +*256 (MRCItem +litem &191 +pos 4 +dimension 100 +uid 1461,0 +) +*257 (MRCItem +litem &192 +pos 5 +dimension 100 +uid 1462,0 +) +*258 (MRCItem +litem &193 +pos 6 +dimension 50 +uid 1463,0 +) +*259 (MRCItem +litem &194 +pos 7 +dimension 80 +uid 1464,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1451,0 +vaOverrides [ +] +) +] +) +uid 1436,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *260 (LEmptyRow +) +uid 1466,0 +optionalChildren [ +*261 (RefLabelRowHdr +) +*262 (TitleRowHdr +) +*263 (FilterRowHdr +) +*264 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*265 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*266 (GroupColHdr +tm "GroupColHdrMgr" +) +*267 (NameColHdr +tm "GenericNameColHdrMgr" +) +*268 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*269 (InitColHdr +tm "GenericValueColHdrMgr" +) +*270 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*271 (EolColHdr +tm "GenericEolColHdrMgr" +) +*272 (LogGeneric +generic (GiElement +name "memDataBitNb" +type "positive" +value "16" +) +uid 1573,0 +) +*273 (LogGeneric +generic (GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +uid 1575,0 +) +] +) +pdm (PhysicalDM +uid 1478,0 +optionalChildren [ +*274 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *275 (MRCItem +litem &260 +pos 3 +dimension 20 +) +uid 1480,0 +optionalChildren [ +*276 (MRCItem +litem &261 +pos 0 +dimension 20 +uid 1481,0 +) +*277 (MRCItem +litem &262 +pos 1 +dimension 23 +uid 1482,0 +) +*278 (MRCItem +litem &263 +pos 2 +hidden 1 +dimension 20 +uid 1483,0 +) +*279 (MRCItem +litem &272 +pos 1 +dimension 20 +uid 1572,0 +) +*280 (MRCItem +litem &273 +pos 0 +dimension 20 +uid 1574,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 1484,0 +optionalChildren [ +*281 (MRCItem +litem &264 +pos 0 +dimension 20 +uid 1485,0 +) +*282 (MRCItem +litem &266 +pos 1 +dimension 50 +uid 1486,0 +) +*283 (MRCItem +litem &267 +pos 2 +dimension 100 +uid 1487,0 +) +*284 (MRCItem +litem &268 +pos 3 +dimension 100 +uid 1488,0 +) +*285 (MRCItem +litem &269 +pos 4 +dimension 50 +uid 1489,0 +) +*286 (MRCItem +litem &270 +pos 5 +dimension 50 +uid 1490,0 +) +*287 (MRCItem +litem &271 +pos 6 +dimension 80 +uid 1491,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1479,0 +vaOverrides [ +] +) +] +) +uid 1465,0 +type 1 +) +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/symbol.sb new file mode 100644 index 0000000..3629eac --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@f@p@g@a_beamer/symbol.sb @@ -0,0 +1,1994 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2041,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 241,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 242,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 12,0 +) +) +uid 245,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 3,0 +) +) +uid 246,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 4,0 +) +) +uid 248,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 13,0 +) +) +uid 249,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 256,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 2019,0 +) +) +uid 424,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 2020,0 +) +) +uid 426,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 2040,0 +) +) +uid 824,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 2041,0 +) +) +uid 826,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 257,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 25 +dimension 20 +) +uid 170,0 +optionalChildren [ +*26 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 173,0 +) +*27 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 175,0 +) +*28 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 177,0 +) +*29 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 196,0 +) +*30 (MRCItem +litem &3 +pos 7 +dimension 20 +uid 199,0 +) +*31 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 200,0 +) +*32 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 202,0 +) +*33 (MRCItem +litem &6 +pos 4 +dimension 20 +uid 203,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 20 +uid 210,0 +) +*35 (MRCItem +litem &20 +pos 5 +dimension 20 +uid 423,0 +) +*36 (MRCItem +litem &21 +pos 6 +dimension 20 +uid 425,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 823,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 825,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 171,0 +optionalChildren [ +*39 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 179,0 +) +*40 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 183,0 +) +*41 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 185,0 +) +*42 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 187,0 +) +*43 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 189,0 +) +*44 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 191,0 +) +*45 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 193,0 +) +*46 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 195,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 169,0 +vaOverrides [ +] +) +] +) +uid 240,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 259,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "memDataBitNb" +type "positive" +value "16" +) +uid 236,0 +) +*60 (LogGeneric +generic (GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +uid 237,0 +) +] +) +pdm (PhysicalDM +uid 260,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *62 (MRCItem +litem &47 +pos 2 +dimension 20 +) +uid 212,0 +optionalChildren [ +*63 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 215,0 +) +*64 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 217,0 +) +*65 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 219,0 +) +*66 (MRCItem +litem &59 +pos 1 +dimension 20 +uid 238,0 +) +*67 (MRCItem +litem &60 +pos 0 +dimension 20 +uid 239,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 213,0 +optionalChildren [ +*68 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 221,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 225,0 +) +*70 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 227,0 +) +*71 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 229,0 +) +*72 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 231,0 +) +*73 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 233,0 +) +*74 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 235,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 211,0 +vaOverrides [ +] +) +] +) +uid 258,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer" +) +(vvPair +variable "date" +value "04/15/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "15" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FPGA_beamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "04/15/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:26:55" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FPGA_beamer" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:26:55" +) +(vvPair +variable "unit" +value "FPGA_beamer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "35000,25400,38400,26600" +st "clock" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,19500,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*77 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,27625,34000,28375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "35000,27400,39700,28600" +st "reset_N" +blo "35000,28400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,19500,12800" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*78 (CptPort +uid 93,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 94,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,9625,52750,10375" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 96,0 +va (VaSet +font "courier,9,0" +) +xt "47800,9400,51000,10600" +st "xOut" +ju 2 +blo "51000,10400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 97,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,19500,19100" +st "xOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 3,0 +) +) +) +*79 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,11625,52750,12375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "courier,9,0" +) +xt "47800,11400,51000,12600" +st "yOut" +ju 2 +blo "51000,12400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19100,18500,20000" +st "yOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 4,0 +) +) +) +*80 (CptPort +uid 138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 139,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,19625,52750,20375" +) +tg (CPTG +uid 140,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 141,0 +va (VaSet +font "courier,9,0" +) +xt "47500,19400,51000,20600" +st "LED2" +ju 2 +blo "51000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 142,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,19500,16400" +st "LED2 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 12,0 +) +) +) +*81 (CptPort +uid 143,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 148,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 145,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 146,0 +va (VaSet +font "courier,9,0" +) +xt "47500,23400,51000,24600" +st "spare" +ju 2 +blo "51000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 147,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,27500,17300" +st "spare : OUT std_ulogic_vector (1 TO 17) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 13,0 +) +) +) +*82 (CptPort +uid 427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 428,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,28625,34000,29375" +) +tg (CPTG +uid 429,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 430,0 +va (VaSet +font "courier,9,0" +) +xt "35000,28400,42700,29600" +st "selSinCos_n" +blo "35000,29400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 431,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,19500,14600" +st "selSinCos_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 2019,0 +) +) +) +*83 (CptPort +uid 432,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 433,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,26625,52750,27375" +) +tg (CPTG +uid 434,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 435,0 +va (VaSet +font "courier,9,0" +) +xt "47500,26400,51000,27600" +st "LED1" +ju 2 +blo "51000,27400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 436,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,19500,15500" +st "LED1 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 2020,0 +) +) +) +*84 (CptPort +uid 827,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 828,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,27625,52750,28375" +) +tg (CPTG +uid 829,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 830,0 +va (VaSet +font "courier,9,0" +) +xt "48000,27400,51000,28600" +st "txd0" +ju 2 +blo "51000,28400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 831,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,19500,18200" +st "txd0 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 2040,0 +) +) +) +*85 (CptPort +uid 832,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 833,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,29625,34000,30375" +) +tg (CPTG +uid 834,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 835,0 +va (VaSet +font "courier,9,0" +) +xt "35000,29400,38000,30600" +st "rxd0" +blo "35000,30400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 836,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19500,13700" +st "rxd0 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 2041,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,6000,52000,40000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "34600,29800,37100,30700" +st "Board" +blo "34600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "34600,30700,40600,31600" +st "FPGA_beamer" +blo "34600,31400" +) +) +gi *86 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,33600,49000,37200" +st "Generic Declarations + +memAddressBitNb positive 24 +memDataBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +(GiElement +name "memDataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*87 (Grouping +uid 16,0 +optionalChildren [ +*88 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*93 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "20,35,1257,877" +viewArea "-1081,-1081,74584,50948" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,20000,2500,20900" +st "User:" +blo "0,20700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20900,2000,20900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 882,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/struct.bd b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/struct.bd new file mode 100644 index 0000000..6e60617 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/struct.bd @@ -0,0 +1,6067 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 2944,0 +) +(Instance +name "I12" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 3013,0 +) +(Instance +name "I7" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 3775,0 +) +(Instance +name "I9" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 3795,0 +) +(Instance +name "I3" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 3968,0 +) +(Instance +name "I8" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 4904,0 +) +(Instance +name "I_top" +duLibraryName "SystemOnChip" +duName "beamerSoc" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 5675,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb2" +number "2" +) +(EmbeddedInstance +name "eb3" +number "3" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\FPGA_beamer" +) +(vvPair +variable "date" +value "28.04.2023" +) +(vvPair +variable "day" +value "ven." +) +(vvPair +variable "day_long" +value "vendredi" +) +(vvPair +variable "dd" +value "28" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FPGA_beamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "28.04.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "15:00:12" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FPGA_beamer" +) +(vvPair +variable "month" +value "avr." +) +(vvPair +variable "month_long" +value "avril" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@f@p@g@a_beamer\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\FPGA_beamer\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "15:00:12" +) +(vvPair +variable "unit" +value "FPGA_beamer" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "26000,70625,27500,71375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "27500,71000,28000,71000" +pts [ +"27500,71000" +"28000,71000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "21200,70300,25000,71700" +st "clock" +ju 2 +blo "25000,71500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,7600,10200,8600" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "116500,48625,118000,49375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "116000,49000,116500,49000" +pts [ +"116000,49000" +"116500,49000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "119000,48300,122800,49700" +st "yOut" +blo "119000,49500" +tm "WireNameMgr" +) +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "26000,82625,27500,83375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "27500,83000,28000,83000" +pts [ +"27500,83000" +"28000,83000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "19200,82300,25000,83700" +st "reset_N" +ju 2 +blo "25000,83500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 13 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,22900,13400,23900" +st "SIGNAL reset : std_ulogic" +) +) +*6 (Grouping +uid 51,0 +optionalChildren [ +*7 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "107000,98000,124000,99000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "107200,98500,107200,98500" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,94000,128000,95000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,94500,124200,94500" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "107000,96000,124000,97000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "107200,96500,107200,96500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,96000,107000,97000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "103200,96500,103200,96500" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "124000,95000,144000,99000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "124200,95200,138300,96400" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*12 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "128000,94000,144000,95000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "128200,94500,128200,94500" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,94000,124000,96000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "108350,94400,118650,95600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,97000,107000,98000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "103200,97500,103200,97500" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "103000,98000,107000,99000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "103200,98500,103200,98500" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "107000,97000,124000,98000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "107200,97500,107200,97500" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "103000,94000,144000,99000" +) +oxt "14000,66000,55000,71000" +) +*17 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,8500,10700,9500" +st "reset_N : std_ulogic" +) +) +*18 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +declText (MLText +uid 477,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,14800,10400,15800" +st "xOut : std_ulogic" +) +) +*19 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "116500,46625,118000,47375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "116000,47000,116500,47000" +pts [ +"116000,47000" +"116500,47000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "119000,46300,122800,47700" +st "xOut" +blo "119000,47500" +tm "WireNameMgr" +) +) +) +*20 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +declText (MLText +uid 612,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,15700,10400,16700" +st "yOut : std_ulogic" +) +) +*21 (PortIoIn +uid 954,0 +shape (CompositeShape +uid 955,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 956,0 +sl 0 +ro 270 +xt "26000,40625,27500,41375" +) +(Line +uid 957,0 +sl 0 +ro 270 +xt "27500,41000,28000,41000" +pts [ +"27500,41000" +"28000,41000" +] +) +] +) +tg (WTG +uid 958,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 959,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "21400,40300,25000,41700" +st "rxd0" +ju 2 +blo "25000,41500" +tm "WireNameMgr" +) +) +) +*22 (PortIoOut +uid 1157,0 +shape (CompositeShape +uid 1158,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1159,0 +sl 0 +ro 270 +xt "104500,12625,106000,13375" +) +(Line +uid 1160,0 +sl 0 +ro 270 +xt "104000,13000,104500,13000" +pts [ +"104000,13000" +"104500,13000" +] +) +] +) +tg (WTG +uid 1161,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1162,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "107000,12300,111000,13700" +st "LED1" +blo "107000,13500" +tm "WireNameMgr" +) +) +) +*23 (PortIoOut +uid 1171,0 +shape (CompositeShape +uid 1172,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1173,0 +sl 0 +ro 270 +xt "104500,14625,106000,15375" +) +(Line +uid 1174,0 +sl 0 +ro 270 +xt "104000,15000,104500,15000" +pts [ +"104000,15000" +"104500,15000" +] +) +] +) +tg (WTG +uid 1175,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1176,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "107000,14300,111000,15700" +st "LED2" +blo "107000,15500" +tm "WireNameMgr" +) +) +) +*24 (HdlText +uid 1185,0 +optionalChildren [ +*25 (EmbeddedText +uid 1190,0 +commentText (CommentText +uid 1191,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1192,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "80000,12000,96000,18000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1193,0 +va (VaSet +) +xt "80200,12200,94900,18200" +st " +LED1 <= testOut(1); +LED2 <= testOut(2); +spare(testOut'range) <= testOut; +spare(testOut'high+1 to spare'high) <= (others => '0'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 1186,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "80000,11000,96000,19000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1187,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*26 (Text +uid 1188,0 +va (VaSet +) +xt "80400,19000,83000,20200" +st "eb2" +blo "80400,20000" +tm "HdlTextNameMgr" +) +*27 (Text +uid 1189,0 +va (VaSet +) +xt "80400,20000,81800,21200" +st "2" +blo "80400,21000" +tm "HdlTextNumberMgr" +) +] +) +) +*28 (PortIoOut +uid 1267,0 +shape (CompositeShape +uid 1268,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1269,0 +sl 0 +ro 270 +xt "104500,16625,106000,17375" +) +(Line +uid 1270,0 +sl 0 +ro 270 +xt "104000,17000,104500,17000" +pts [ +"104000,17000" +"104500,17000" +] +) +] +) +tg (WTG +uid 1271,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1272,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "107000,16300,119400,17700" +st "spare : (1 TO 17)" +blo "107000,17500" +tm "WireNameMgr" +) +) +) +*29 (Net +uid 1279,0 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +declText (MLText +uid 1280,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,13000,17900,14000" +st "spare : std_ulogic_vector(1 TO 17)" +) +) +*30 (HdlText +uid 1748,0 +optionalChildren [ +*31 (EmbeddedText +uid 1753,0 +commentText (CommentText +uid 1754,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1755,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "33000,74000,39000,76000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1756,0 +va (VaSet +) +xt "33200,74200,38700,75400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 1749,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "32000,73000,40000,77000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1750,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 1751,0 +va (VaSet +) +xt "32400,77000,35000,78200" +st "eb3" +blo "32400,78000" +tm "HdlTextNameMgr" +) +*33 (Text +uid 1752,0 +va (VaSet +) +xt "32400,78000,33800,79200" +st "3" +blo "32400,79000" +tm "HdlTextNumberMgr" +) +] +) +) +*34 (Net +uid 1765,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 12 +suid 28,0 +) +declText (MLText +uid 1766,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,22000,13600,23000" +st "SIGNAL logic1 : std_uLogic" +) +) +*35 (SaComponent +uid 2944,0 +optionalChildren [ +*36 (CptPort +uid 2935,0 +optionalChildren [ +*37 (Circle +uid 2939,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "32092,82546,33000,83454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 2936,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "31342,82625,32092,83375" +) +tg (CPTG +uid 2937,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 2938,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "33000,82500,35700,83900" +st "in1" +blo "33000,83700" +) +s (Text +uid 2953,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "33000,83900,33000,83900" +blo "33000,83900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*38 (CptPort +uid 2940,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 2941,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "38000,82625,38750,83375" +) +tg (CPTG +uid 2942,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 2943,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "34050,82500,37750,83900" +st "out1" +ju 2 +blo "37750,83700" +) +s (Text +uid 2954,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "37750,83900,37750,83900" +ju 2 +blo "37750,83900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 2945,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "33000,80000,38000,86000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 2946,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 2947,0 +va (VaSet +isHidden 1 +) +xt "33910,78700,37510,79900" +st "Board" +blo "33910,79700" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 2948,0 +va (VaSet +isHidden 1 +) +xt "33910,79700,40310,80900" +st "inverterIn" +blo "33910,80700" +tm "CptNameMgr" +) +*41 (Text +uid 2949,0 +va (VaSet +) +xt "33910,79700,35810,80900" +st "I2" +blo "33910,80700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 2950,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 2951,0 +text (MLText +uid 2952,0 +va (VaSet +) +xt "10000,76000,10000,76000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 3013,0 +optionalChildren [ +*43 (CptPort +uid 3022,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3023,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,74625,45000,75375" +) +tg (CPTG +uid 3024,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3025,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,74300,47700,75700" +st "D" +blo "46000,75500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*44 (CptPort +uid 3026,0 +optionalChildren [ +*45 (FFT +pts [ +"45750,79000" +"45000,79375" +"45000,78625" +] +uid 3030,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45000,78625,45750,79375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3027,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,78625,45000,79375" +) +tg (CPTG +uid 3028,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3029,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,78400,49200,79800" +st "CLK" +blo "46000,79600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*46 (CptPort +uid 3031,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3032,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "47625,81000,48375,81750" +) +tg (CPTG +uid 3033,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3034,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,79600,50200,81000" +st "CLR" +blo "47000,80800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*47 (CptPort +uid 3035,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3036,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,74625,51750,75375" +) +tg (CPTG +uid 3037,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3038,0 +va (VaSet +font "Verdana,12,0" +) +xt "48200,74300,50000,75700" +st "Q" +ju 2 +blo "50000,75500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 3014,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,73000,51000,81000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3015,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*48 (Text +uid 3016,0 +va (VaSet +) +xt "51600,78700,55200,79900" +st "Board" +blo "51600,79700" +tm "BdLibraryNameMgr" +) +*49 (Text +uid 3017,0 +va (VaSet +) +xt "51600,79700,54300,80900" +st "DFF" +blo "51600,80700" +tm "CptNameMgr" +) +*50 (Text +uid 3018,0 +va (VaSet +) +xt "51600,80700,54200,81900" +st "I12" +blo "51600,81700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3019,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3020,0 +text (MLText +uid 3021,0 +va (VaSet +) +xt "22000,70000,22000,70000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*51 (PortIoOut +uid 3747,0 +shape (CompositeShape +uid 3748,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 3749,0 +sl 0 +ro 90 +xt "26000,36625,27500,37375" +) +(Line +uid 3750,0 +sl 0 +ro 90 +xt "27500,37000,28000,37000" +pts [ +"28000,37000" +"27500,37000" +] +) +] +) +tg (WTG +uid 3751,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3752,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "21400,36300,25000,37700" +st "txd0" +ju 2 +blo "25000,37500" +tm "WireNameMgr" +) +) +) +*52 (PortIoIn +uid 3769,0 +shape (CompositeShape +uid 3770,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 3771,0 +sl 0 +ro 90 +xt "116500,52625,118000,53375" +) +(Line +uid 3772,0 +sl 0 +ro 90 +xt "116000,53000,116500,53000" +pts [ +"116500,53000" +"116000,53000" +] +) +] +) +tg (WTG +uid 3773,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3774,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "119000,52300,128300,53700" +st "selSinCos_n" +blo "119000,53500" +tm "WireNameMgr" +) +) +) +*53 (SaComponent +uid 3775,0 +optionalChildren [ +*54 (CptPort +uid 3784,0 +optionalChildren [ +*55 (Circle +uid 3789,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "111000,52546,111908,53454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3785,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "111908,52625,112658,53375" +) +tg (CPTG +uid 3786,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3787,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "368566,52500,371266,53900" +st "in1" +ju 2 +blo "371266,53700" +) +s (Text +uid 3788,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "371266,53900,371266,53900" +ju 2 +blo "371266,53900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*56 (CptPort +uid 3790,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3791,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "105250,52625,106000,53375" +) +tg (CPTG +uid 3792,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3793,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "356300,52500,360000,53900" +st "out1" +blo "356300,53700" +) +s (Text +uid 3794,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "356300,53900,356300,53900" +blo "356300,53900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 3776,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "106000,50000,111000,56000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3777,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*57 (Text +uid 3778,0 +va (VaSet +isHidden 1 +) +xt "106910,48700,110510,49900" +st "Board" +blo "106910,49700" +tm "BdLibraryNameMgr" +) +*58 (Text +uid 3779,0 +va (VaSet +isHidden 1 +) +xt "106910,49700,113310,50900" +st "inverterIn" +blo "106910,50700" +tm "CptNameMgr" +) +*59 (Text +uid 3780,0 +va (VaSet +) +xt "106910,49700,108810,50900" +st "I7" +blo "106910,50700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3781,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3782,0 +text (MLText +uid 3783,0 +va (VaSet +) +xt "83000,46000,83000,46000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*60 (SaComponent +uid 3795,0 +optionalChildren [ +*61 (CptPort +uid 3804,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3805,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "99000,52625,99750,53375" +) +tg (CPTG +uid 3806,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3807,0 +va (VaSet +font "Verdana,12,0" +) +xt "96300,52300,98000,53700" +st "D" +ju 2 +blo "98000,53500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*62 (CptPort +uid 3808,0 +optionalChildren [ +*63 (FFT +pts [ +"98250,57000" +"99000,56625" +"99000,57375" +] +uid 3812,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "98250,56625,99000,57375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3809,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "99000,56625,99750,57375" +) +tg (CPTG +uid 3810,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3811,0 +va (VaSet +font "Verdana,12,0" +) +xt "94800,56400,98000,57800" +st "CLK" +ju 2 +blo "98000,57600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*64 (CptPort +uid 3813,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3814,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "95625,59000,96375,59750" +) +tg (CPTG +uid 3815,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3816,0 +va (VaSet +font "Verdana,12,0" +) +xt "93800,57600,97000,59000" +st "CLR" +blo "93800,58800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*65 (CptPort +uid 3817,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3818,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "92250,52625,93000,53375" +) +tg (CPTG +uid 3819,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3820,0 +va (VaSet +font "Verdana,12,0" +) +xt "94000,52300,95800,53700" +st "Q" +blo "94000,53500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 3796,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "93000,51000,99000,59000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3797,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*66 (Text +uid 3798,0 +va (VaSet +) +xt "99600,56700,103200,57900" +st "Board" +blo "99600,57700" +tm "BdLibraryNameMgr" +) +*67 (Text +uid 3799,0 +va (VaSet +) +xt "99600,57700,102300,58900" +st "DFF" +blo "99600,58700" +tm "CptNameMgr" +) +*68 (Text +uid 3800,0 +va (VaSet +) +xt "99600,58700,101500,59900" +st "I9" +blo "99600,59700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3801,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3802,0 +text (MLText +uid 3803,0 +va (VaSet +) +xt "70000,48000,70000,48000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*69 (Net +uid 3962,0 +decl (Decl +n "selSinCosSynch" +t "std_ulogic" +o 18 +suid 45,0 +) +declText (MLText +uid 3963,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,27400,14900,28400" +st "SIGNAL selSinCosSynch : std_ulogic" +) +) +*70 (Net +uid 3964,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 46,0 +) +declText (MLText +uid 3965,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,26500,14000,27500" +st "SIGNAL selSinCos : std_ulogic" +) +) +*71 (Net +uid 3966,0 +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 47,0 +) +declText (MLText +uid 3967,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,10300,11200,11300" +st "selSinCos_n : std_ulogic" +) +) +*72 (SaComponent +uid 3968,0 +optionalChildren [ +*73 (CptPort +uid 3977,0 +optionalChildren [ +*74 (Circle +uid 3982,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "56092,74546,57000,75454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 3978,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55342,74625,56092,75375" +) +tg (CPTG +uid 3979,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 3980,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57000,74500,59700,75900" +st "in1" +blo "57000,75700" +) +s (Text +uid 3981,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "57000,75900,57000,75900" +blo "57000,75900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*75 (CptPort +uid 3983,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 3984,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "62000,74625,62750,75375" +) +tg (CPTG +uid 3985,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 3986,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "58050,74500,61750,75900" +st "out1" +ju 2 +blo "61750,75700" +) +s (Text +uid 3987,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "61750,75900,61750,75900" +ju 2 +blo "61750,75900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 3969,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "57000,72000,62000,78000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 3970,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 3971,0 +va (VaSet +isHidden 1 +) +xt "57910,70700,61510,71900" +st "Board" +blo "57910,71700" +tm "BdLibraryNameMgr" +) +*77 (Text +uid 3972,0 +va (VaSet +isHidden 1 +) +xt "57910,71700,64310,72900" +st "inverterIn" +blo "57910,72700" +tm "CptNameMgr" +) +*78 (Text +uid 3973,0 +va (VaSet +) +xt "57910,71700,59810,72900" +st "I3" +blo "57910,72700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 3974,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 3975,0 +text (MLText +uid 3976,0 +va (VaSet +) +xt "34000,68000,34000,68000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*79 (Net +uid 4010,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 19 +suid 49,0 +) +declText (MLText +uid 4011,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,28300,25200,29300" +st "SIGNAL testOut : std_ulogic_vector(1 TO testOutBitNb)" +) +) +*80 (Net +uid 4012,0 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 50,0 +) +declText (MLText +uid 4013,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,11200,10500,12200" +st "LED1 : std_ulogic" +) +) +*81 (Net +uid 4014,0 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 51,0 +) +declText (MLText +uid 4015,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,12100,10500,13100" +st "LED2 : std_ulogic" +) +) +*82 (Net +uid 4405,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 14 +suid 72,0 +) +declText (MLText +uid 4406,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,23800,14300,24800" +st "SIGNAL resetSynch : std_ulogic" +) +) +*83 (Net +uid 4407,0 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 15 +suid 73,0 +) +declText (MLText +uid 4408,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,24700,14800,25700" +st "SIGNAL resetSynch_N : std_ulogic" +) +) +*84 (Net +uid 4885,0 +decl (Decl +n "rxdSynch" +t "std_ulogic" +o 16 +suid 76,0 +) +declText (MLText +uid 4886,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,25600,14200,26600" +st "SIGNAL rxdSynch : std_ulogic" +) +) +*85 (SaComponent +uid 4904,0 +optionalChildren [ +*86 (CptPort +uid 4887,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4888,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,40625,45000,41375" +) +tg (CPTG +uid 4889,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4890,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,40300,47700,41700" +st "D" +blo "46000,41500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +suid 1,0 +) +) +) +*87 (CptPort +uid 4891,0 +optionalChildren [ +*88 (FFT +pts [ +"45750,45000" +"45000,45375" +"45000,44625" +] +uid 4895,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "45000,44625,45750,45375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 4892,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "44250,44625,45000,45375" +) +tg (CPTG +uid 4893,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4894,0 +va (VaSet +font "Verdana,12,0" +) +xt "46000,44400,49200,45800" +st "CLK" +blo "46000,45600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +suid 2,0 +) +) +) +*89 (CptPort +uid 4896,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4897,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "47625,47000,48375,47750" +) +tg (CPTG +uid 4898,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 4899,0 +va (VaSet +font "Verdana,12,0" +) +xt "47000,45600,50200,47000" +st "CLR" +blo "47000,46800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +suid 3,0 +) +) +) +*90 (CptPort +uid 4900,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 4901,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,40625,51750,41375" +) +tg (CPTG +uid 4902,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 4903,0 +va (VaSet +font "Verdana,12,0" +) +xt "48200,40300,50000,41700" +st "Q" +ju 2 +blo "50000,41500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +suid 4,0 +) +) +) +] +shape (Rectangle +uid 4905,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "45000,39000,51000,47000" +) +showPorts 0 +oxt "23000,3000,29000,11000" +ttg (MlTextGroup +uid 4906,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*91 (Text +uid 4907,0 +va (VaSet +) +xt "49600,46700,53200,47900" +st "Board" +blo "49600,47700" +tm "BdLibraryNameMgr" +) +*92 (Text +uid 4908,0 +va (VaSet +) +xt "49600,47700,52300,48900" +st "DFF" +blo "49600,48700" +tm "CptNameMgr" +) +*93 (Text +uid 4909,0 +va (VaSet +) +xt "49600,48700,51500,49900" +st "I8" +blo "49600,49700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 4910,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 4911,0 +text (MLText +uid 4912,0 +va (VaSet +) +xt "52000,46400,52000,46400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*94 (Net +uid 5011,0 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 77,0 +) +declText (MLText +uid 5012,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,21100,25000,22100" +st "SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0)" +) +) +*95 (Net +uid 5239,0 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 80,0 +) +declText (MLText +uid 5240,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,13900,10300,14900" +st "txd0 : std_ulogic" +) +) +*96 (Net +uid 5241,0 +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 81,0 +) +declText (MLText +uid 5242,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,9400,10300,10400" +st "rxd0 : std_ulogic" +) +) +*97 (SaComponent +uid 5675,0 +optionalChildren [ +*98 (CptPort +uid 5631,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5632,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,50625,68000,51375" +) +tg (CPTG +uid 5633,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5634,0 +va (VaSet +) +xt "69000,50400,72400,51600" +st "clock" +blo "69000,51400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 1,0 +) +) +) +*99 (CptPort +uid 5635,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5636,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,46625,84750,47375" +) +tg (CPTG +uid 5637,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5638,0 +va (VaSet +) +xt "80001,46400,83001,47600" +st "outX" +ju 2 +blo "83001,47400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +suid 3,0 +) +) +) +*100 (CptPort +uid 5639,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5640,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,48625,84750,49375" +) +tg (CPTG +uid 5641,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5642,0 +va (VaSet +) +xt "80001,48400,83001,49600" +st "outY" +ju 2 +blo "83001,49400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +suid 5,0 +) +) +) +*101 (CptPort +uid 5643,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5644,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,50625,84750,51375" +) +tg (CPTG +uid 5645,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5646,0 +va (VaSet +) +xt "77201,50400,83001,51600" +st "selSinCos" +ju 2 +blo "83001,51400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +suid 13,0 +) +) +) +*102 (CptPort +uid 5647,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5648,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,52625,68000,53375" +) +tg (CPTG +uid 5649,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5650,0 +va (VaSet +) +xt "69000,52400,72300,53600" +st "reset" +blo "69000,53400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +suid 2017,0 +) +) +) +*103 (CptPort +uid 5651,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5652,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,38625,68000,39375" +) +tg (CPTG +uid 5653,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5654,0 +va (VaSet +) +xt "69000,38400,71800,39600" +st "TxD" +blo "69000,39400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +suid 2018,0 +) +) +) +*104 (CptPort +uid 5655,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5656,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "67250,40625,68000,41375" +) +tg (CPTG +uid 5657,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 5658,0 +va (VaSet +) +xt "69000,40400,71800,41600" +st "RxD" +blo "69000,41400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +suid 2019,0 +) +) +) +*105 (CptPort +uid 5659,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5660,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,38625,84750,39375" +) +tg (CPTG +uid 5661,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5662,0 +va (VaSet +) +xt "80100,38400,83000,39600" +st "ioEn" +ju 2 +blo "83000,39400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +suid 2020,0 +) +) +) +*106 (CptPort +uid 5663,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5664,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,40625,84750,41375" +) +tg (CPTG +uid 5665,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5666,0 +va (VaSet +) +xt "79500,40400,83000,41600" +st "ioOut" +ju 2 +blo "83000,41400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +suid 2021,0 +) +) +) +*107 (CptPort +uid 5667,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5668,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "84000,42625,84750,43375" +) +tg (CPTG +uid 5669,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5670,0 +va (VaSet +) +xt "80300,42400,83000,43600" +st "ioIn" +ju 2 +blo "83000,43400" +) +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +suid 2022,0 +) +) +) +*108 (CptPort +uid 5671,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 5672,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "75625,34250,76375,35000" +) +tg (CPTG +uid 5673,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 5674,0 +va (VaSet +) +xt "74000,36000,78600,37200" +st "testOut" +ju 2 +blo "78600,37000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +suid 2024,0 +) +) +) +] +shape (Rectangle +uid 5676,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,35000,84000,55000" +) +oxt "36000,10000,52000,30000" +ttg (MlTextGroup +uid 5677,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +uid 5678,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,54800,77000,56000" +st "SystemOnChip" +blo "68600,55800" +tm "BdLibraryNameMgr" +) +*110 (Text +uid 5679,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,55700,74600,56900" +st "beamerSoc" +blo "68600,56700" +tm "CptNameMgr" +) +*111 (Text +uid 5680,0 +va (VaSet +font "Verdana,9,1" +) +xt "68600,56600,72000,57800" +st "I_top" +blo "68600,57600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 5681,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 5682,0 +text (MLText +uid 5683,0 +va (VaSet +font "Verdana,8,0" +) +xt "68000,58600,93800,61600" +st "ioNb = ioNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) +patternAddressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*112 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "28000,51000,67250,71000" +pts [ +"28000,71000" +"64000,71000" +"64000,51000" +"67250,51000" +] +) +start &1 +end &98 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,69600,31800,71000" +st "clock" +blo "28000,70800" +tm "WireNameMgr" +) +) +on &2 +) +*113 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "84750,49000,116000,49000" +pts [ +"116000,49000" +"84750,49000" +] +) +start &3 +end &100 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,47600,115800,49000" +st "yOut" +blo "112000,48800" +tm "WireNameMgr" +) +) +on &20 +) +*114 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "28000,83000,32092,83000" +pts [ +"28000,83000" +"32092,83000" +] +) +start &4 +end &36 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "Verdana,12,0" +) +xt "27000,81600,32800,83000" +st "reset_N" +blo "27000,82800" +tm "WireNameMgr" +) +) +on &17 +) +*115 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "84750,47000,116000,47000" +pts [ +"116000,47000" +"84750,47000" +] +) +start &19 +end &99 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,45600,115800,47000" +st "xOut" +blo "112000,46800" +tm "WireNameMgr" +) +) +on &18 +) +*116 (Wire +uid 900,0 +shape (OrthoPolyLine +uid 901,0 +va (VaSet +vasetType 3 +) +xt "51000,41000,67250,41000" +pts [ +"67250,41000" +"51000,41000" +] +) +start &104 +end &90 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 902,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 903,0 +va (VaSet +font "Verdana,12,0" +) +xt "52000,39600,58500,41000" +st "rxdSynch" +blo "52000,40800" +tm "WireNameMgr" +) +) +on &84 +) +*117 (Wire +uid 946,0 +shape (OrthoPolyLine +uid 947,0 +va (VaSet +vasetType 3 +) +xt "28000,37000,67250,39000" +pts [ +"67250,39000" +"56000,39000" +"56000,37000" +"28000,37000" +] +) +start &103 +end &51 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 952,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 953,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,35600,31600,37000" +st "txd0" +blo "28000,36800" +tm "WireNameMgr" +) +) +on &95 +) +*118 (Wire +uid 1163,0 +shape (OrthoPolyLine +uid 1164,0 +va (VaSet +vasetType 3 +) +xt "96000,13000,104000,13000" +pts [ +"96000,13000" +"104000,13000" +] +) +start &24 +end &22 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1167,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1168,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,11600,105000,13000" +st "LED1" +blo "101000,12800" +tm "WireNameMgr" +) +) +on &80 +) +*119 (Wire +uid 1177,0 +shape (OrthoPolyLine +uid 1178,0 +va (VaSet +vasetType 3 +) +xt "96000,15000,104000,15000" +pts [ +"96000,15000" +"104000,15000" +] +) +start &24 +end &23 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1181,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1182,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,13600,105000,15000" +st "LED2" +blo "101000,14800" +tm "WireNameMgr" +) +) +on &81 +) +*120 (Wire +uid 1273,0 +shape (OrthoPolyLine +uid 1274,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "96000,17000,104000,17000" +pts [ +"96000,17000" +"104000,17000" +] +) +start &24 +end &28 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1277,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1278,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,15600,104400,17000" +st "spare" +blo "100000,16800" +tm "WireNameMgr" +) +) +on &29 +) +*121 (Wire +uid 1403,0 +shape (OrthoPolyLine +uid 1404,0 +va (VaSet +vasetType 3 +) +xt "28000,41000,45000,41000" +pts [ +"45000,41000" +"28000,41000" +] +) +start &86 +end &21 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1409,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1410,0 +va (VaSet +font "Verdana,12,0" +) +xt "28000,39600,31600,41000" +st "rxd0" +blo "28000,40800" +tm "WireNameMgr" +) +) +on &96 +) +*122 (Wire +uid 1413,0 +shape (OrthoPolyLine +uid 1414,0 +va (VaSet +vasetType 3 +) +xt "42000,47000,48000,49000" +pts [ +"42000,49000" +"48000,49000" +"48000,47000" +] +) +end &89 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1419,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1420,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,47600,49600,49000" +st "resetSynch" +blo "41000,48800" +tm "WireNameMgr" +) +) +on &82 +) +*123 (Wire +uid 1421,0 +shape (OrthoPolyLine +uid 1422,0 +va (VaSet +vasetType 3 +) +xt "42000,45000,45000,45000" +pts [ +"42000,45000" +"45000,45000" +] +) +end &87 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1427,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1428,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,43600,44800,45000" +st "clock" +blo "41000,44800" +tm "WireNameMgr" +) +) +on &2 +) +*124 (Wire +uid 1716,0 +shape (OrthoPolyLine +uid 1717,0 +va (VaSet +vasetType 3 +) +xt "38000,81000,48000,83000" +pts [ +"38000,83000" +"48000,83000" +"48000,81000" +] +) +start &38 +end &46 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1720,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1721,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,81600,43100,83000" +st "reset" +blo "39000,82800" +tm "WireNameMgr" +) +) +on &5 +) +*125 (Wire +uid 1722,0 +shape (OrthoPolyLine +uid 1723,0 +va (VaSet +vasetType 3 +) +xt "43000,79000,45000,79000" +pts [ +"43000,79000" +"45000,79000" +] +) +end &44 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1726,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1727,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,77600,44800,79000" +st "clock" +blo "41000,78800" +tm "WireNameMgr" +) +) +on &2 +) +*126 (Wire +uid 1759,0 +shape (OrthoPolyLine +uid 1760,0 +va (VaSet +vasetType 3 +) +xt "40000,75000,45000,75000" +pts [ +"45000,75000" +"40000,75000" +] +) +start &43 +end &30 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 1763,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1764,0 +va (VaSet +font "Verdana,12,0" +) +xt "41000,73600,45400,75000" +st "logic1" +blo "41000,74800" +tm "WireNameMgr" +) +) +on &34 +) +*127 (Wire +uid 3821,0 +shape (OrthoPolyLine +uid 3822,0 +va (VaSet +vasetType 3 +) +xt "99000,57000,102000,57000" +pts [ +"102000,57000" +"99000,57000" +] +) +end &62 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3825,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3826,0 +va (VaSet +font "Verdana,12,0" +) +xt "101000,55600,104800,57000" +st "clock" +blo "101000,56800" +tm "WireNameMgr" +) +) +on &2 +) +*128 (Wire +uid 3827,0 +shape (OrthoPolyLine +uid 3828,0 +va (VaSet +vasetType 3 +) +xt "111908,53000,116000,53000" +pts [ +"111908,53000" +"116000,53000" +] +) +start &54 +end &52 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3829,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3830,0 +va (VaSet +font "Verdana,12,0" +) +xt "113000,51600,122300,53000" +st "selSinCos_n" +blo "113000,52800" +tm "WireNameMgr" +) +) +on &71 +) +*129 (Wire +uid 3831,0 +shape (OrthoPolyLine +uid 3832,0 +va (VaSet +vasetType 3 +) +xt "84750,51000,93000,53000" +pts [ +"84750,51000" +"88000,51000" +"88000,53000" +"93000,53000" +] +) +start &101 +end &65 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3835,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3836,0 +va (VaSet +font "Verdana,12,0" +) +xt "86000,51600,97400,53000" +st "selSinCosSynch" +blo "86000,52800" +tm "WireNameMgr" +) +) +on &69 +) +*130 (Wire +uid 3837,0 +shape (OrthoPolyLine +uid 3838,0 +va (VaSet +vasetType 3 +) +xt "99000,53000,106000,53000" +pts [ +"99000,53000" +"106000,53000" +] +) +start &61 +end &56 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3839,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3840,0 +va (VaSet +font "Verdana,12,0" +) +xt "98000,51600,104900,53000" +st "selSinCos" +blo "98000,52800" +tm "WireNameMgr" +) +) +on &70 +) +*131 (Wire +uid 3988,0 +shape (OrthoPolyLine +uid 3989,0 +va (VaSet +vasetType 3 +) +xt "51000,75000,56092,75000" +pts [ +"51000,75000" +"56092,75000" +] +) +start &47 +end &73 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 3990,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 3991,0 +va (VaSet +font "Verdana,12,0" +) +xt "48000,73600,58300,75000" +st "resetSynch_N" +blo "48000,74800" +tm "WireNameMgr" +) +) +on &83 +) +*132 (Wire +uid 3994,0 +shape (OrthoPolyLine +uid 3995,0 +va (VaSet +vasetType 3 +) +xt "62000,53000,67250,75000" +pts [ +"67250,53000" +"66000,53000" +"66000,75000" +"62000,75000" +] +) +start &102 +end &75 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4000,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4001,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,73600,71600,75000" +st "resetSynch" +blo "63000,74800" +tm "WireNameMgr" +) +) +on &82 +) +*133 (Wire +uid 4004,0 +shape (OrthoPolyLine +uid 4005,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "76000,15000,80000,34250" +pts [ +"76000,34250" +"76000,15000" +"80000,15000" +] +) +start &108 +end &24 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4008,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4009,0 +va (VaSet +font "Verdana,12,0" +) +xt "72000,13600,77600,15000" +st "testOut" +blo "72000,14800" +tm "WireNameMgr" +) +) +on &79 +) +*134 (Wire +uid 4397,0 +shape (OrthoPolyLine +uid 4398,0 +va (VaSet +vasetType 3 +) +xt "96000,59000,102000,61000" +pts [ +"102000,61000" +"96000,61000" +"96000,59000" +] +) +end &64 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 4403,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 4404,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,59600,105600,61000" +st "resetSynch" +blo "97000,60800" +tm "WireNameMgr" +) +) +on &82 +) +*135 (Wire +uid 5013,0 +shape (OrthoPolyLine +uid 5014,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "84750,43000,92000,43000" +pts [ +"84750,43000" +"92000,43000" +] +) +start &107 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 5017,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 5018,0 +va (VaSet +font "Verdana,12,0" +) +xt "89000,41600,92200,43000" +st "ioIn" +blo "89000,42800" +tm "WireNameMgr" +) +) +on &94 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *136 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*137 (Text +uid 85,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,0,3900,1000" +st "Package List" +blo "-3000,800" +) +*138 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,14500,4600" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*139 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,0,30200,1000" +st "Compiler Directives" +blo "20000,800" +) +*140 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,1000,32200,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*141 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32100,4400" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*142 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,4000,32800,5000" +st "Post-module directives:" +blo "20000,4800" +) +*143 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*144 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "20000,5000,32400,6000" +st "End-module directives:" +blo "20000,5800" +) +*145 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "-8,-8,1928,1048" +viewArea "-5145,-2144,185548,101465" +cachedDiagramExtent "-3000,0,371266,99000" +pageSetupInfo (PageSetupInfo +ptrCmd "HP LaserJet P3005 PCL 6 (A303),winspool," +fileName "\\\\SUN\\PREA309_HPLJ4050.PRINTERS.SYSTEM.SION.HEVs" +toPrinter 1 +colour 1 +xMargin 48 +yMargin 48 +paperWidth 761 +paperHeight 1077 +unixPaperWidth 595 +unixPaperHeight 842 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4" +unixPaperName "A4 (210mm x 297mm)" +windowsPaperName "A4" +windowsPaperType 9 +scale 50 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 5818,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "Verdana,8,0" +) +xt "450,2150,1450,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*146 (Text +va (VaSet +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*147 (Text +va (VaSet +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*148 (Text +va (VaSet +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*149 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*150 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*151 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*152 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*153 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*154 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*155 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*156 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*157 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*158 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*159 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*160 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*161 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*162 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1500,2200" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5000,1200" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,9600,2200" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,18500,100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*163 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*164 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,11000,100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*165 (Text +va (VaSet +font "Verdana,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*166 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Verdana,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,5800,4000,6800" +st "Declarations" +blo "-3000,6600" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,6700,400,7700" +st "Ports:" +blo "-3000,7500" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,16600,1800,17600" +st "Pre User:" +blo "-3000,17400" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Verdana,8,0" +) +xt "-1000,17500,19200,20500" +st "constant ioNb: positive := 8; +constant testOutBitNb: positive := 16; +constant patternAddressBitNb: positive := 9;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,8,1" +) +xt "-3000,20200,6000,21200" +st "Diagram Signals:" +blo "-3000,21000" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,8,1" +) +xt "-3000,5800,3000,6800" +st "Post User:" +blo "-3000,6600" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Verdana,8,0" +) +xt "-3000,5800,-3000,5800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 81,0 +usingSuid 1 +emptyRow *167 (LEmptyRow +) +uid 3228,0 +optionalChildren [ +*168 (RefLabelRowHdr +) +*169 (TitleRowHdr +) +*170 (FilterRowHdr +) +*171 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*172 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*173 (GroupColHdr +tm "GroupColHdrMgr" +) +*174 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*175 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*176 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*177 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*178 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*179 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*180 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 3159,0 +) +*181 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 13 +suid 2,0 +) +) +uid 3161,0 +) +*182 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 3163,0 +) +*183 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +) +uid 3165,0 +) +*184 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +) +uid 3167,0 +) +*185 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +) +uid 3199,0 +) +*186 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 12 +suid 28,0 +) +) +uid 3213,0 +) +*187 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCosSynch" +t "std_ulogic" +o 18 +suid 45,0 +) +) +uid 4032,0 +) +*188 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 17 +suid 46,0 +) +) +uid 4034,0 +) +*189 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 47,0 +) +) +uid 4036,0 +) +*190 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 19 +suid 49,0 +) +) +uid 4038,0 +) +*191 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 50,0 +) +) +uid 4040,0 +) +*192 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 51,0 +) +) +uid 4042,0 +) +*193 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 14 +suid 72,0 +) +) +uid 4409,0 +) +*194 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 15 +suid 73,0 +) +) +uid 4411,0 +) +*195 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxdSynch" +t "std_ulogic" +o 16 +suid 76,0 +) +) +uid 5023,0 +) +*196 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 11 +suid 77,0 +) +) +uid 5025,0 +) +*197 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 80,0 +) +) +uid 5243,0 +) +*198 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 81,0 +) +) +uid 5245,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 3241,0 +optionalChildren [ +*199 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *200 (MRCItem +litem &167 +pos 19 +dimension 20 +) +uid 3243,0 +optionalChildren [ +*201 (MRCItem +litem &168 +pos 0 +dimension 20 +uid 3244,0 +) +*202 (MRCItem +litem &169 +pos 1 +dimension 23 +uid 3245,0 +) +*203 (MRCItem +litem &170 +pos 2 +hidden 1 +dimension 20 +uid 3246,0 +) +*204 (MRCItem +litem &180 +pos 0 +dimension 20 +uid 3160,0 +) +*205 (MRCItem +litem &181 +pos 10 +dimension 20 +uid 3162,0 +) +*206 (MRCItem +litem &182 +pos 1 +dimension 20 +uid 3164,0 +) +*207 (MRCItem +litem &183 +pos 2 +dimension 20 +uid 3166,0 +) +*208 (MRCItem +litem &184 +pos 3 +dimension 20 +uid 3168,0 +) +*209 (MRCItem +litem &185 +pos 4 +dimension 20 +uid 3200,0 +) +*210 (MRCItem +litem &186 +pos 11 +dimension 20 +uid 3214,0 +) +*211 (MRCItem +litem &187 +pos 12 +dimension 20 +uid 4033,0 +) +*212 (MRCItem +litem &188 +pos 13 +dimension 20 +uid 4035,0 +) +*213 (MRCItem +litem &189 +pos 5 +dimension 20 +uid 4037,0 +) +*214 (MRCItem +litem &190 +pos 14 +dimension 20 +uid 4039,0 +) +*215 (MRCItem +litem &191 +pos 6 +dimension 20 +uid 4041,0 +) +*216 (MRCItem +litem &192 +pos 7 +dimension 20 +uid 4043,0 +) +*217 (MRCItem +litem &193 +pos 15 +dimension 20 +uid 4410,0 +) +*218 (MRCItem +litem &194 +pos 16 +dimension 20 +uid 4412,0 +) +*219 (MRCItem +litem &195 +pos 17 +dimension 20 +uid 5024,0 +) +*220 (MRCItem +litem &196 +pos 18 +dimension 20 +uid 5026,0 +) +*221 (MRCItem +litem &197 +pos 8 +dimension 20 +uid 5244,0 +) +*222 (MRCItem +litem &198 +pos 9 +dimension 20 +uid 5246,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3247,0 +optionalChildren [ +*223 (MRCItem +litem &171 +pos 0 +dimension 20 +uid 3248,0 +) +*224 (MRCItem +litem &173 +pos 1 +dimension 50 +uid 3249,0 +) +*225 (MRCItem +litem &174 +pos 2 +dimension 100 +uid 3250,0 +) +*226 (MRCItem +litem &175 +pos 3 +dimension 50 +uid 3251,0 +) +*227 (MRCItem +litem &176 +pos 4 +dimension 100 +uid 3252,0 +) +*228 (MRCItem +litem &177 +pos 5 +dimension 100 +uid 3253,0 +) +*229 (MRCItem +litem &178 +pos 6 +dimension 50 +uid 3254,0 +) +*230 (MRCItem +litem &179 +pos 7 +dimension 80 +uid 3255,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 3242,0 +vaOverrides [ +] +) +] +) +uid 3227,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *231 (LEmptyRow +) +uid 3257,0 +optionalChildren [ +*232 (RefLabelRowHdr +) +*233 (TitleRowHdr +) +*234 (FilterRowHdr +) +*235 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*236 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*237 (GroupColHdr +tm "GroupColHdrMgr" +) +*238 (NameColHdr +tm "GenericNameColHdrMgr" +) +*239 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*240 (InitColHdr +tm "GenericValueColHdrMgr" +) +*241 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*242 (EolColHdr +tm "GenericEolColHdrMgr" +) +*243 (LogGeneric +generic (GiElement +name "memDataBitNb" +type "positive" +value "16" +) +uid 4414,0 +) +*244 (LogGeneric +generic (GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +uid 4416,0 +) +] +) +pdm (PhysicalDM +uid 3269,0 +optionalChildren [ +*245 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *246 (MRCItem +litem &231 +pos 2 +dimension 20 +) +uid 3271,0 +optionalChildren [ +*247 (MRCItem +litem &232 +pos 0 +dimension 20 +uid 3272,0 +) +*248 (MRCItem +litem &233 +pos 1 +dimension 23 +uid 3273,0 +) +*249 (MRCItem +litem &234 +pos 2 +hidden 1 +dimension 20 +uid 3274,0 +) +*250 (MRCItem +litem &243 +pos 1 +dimension 20 +uid 4413,0 +) +*251 (MRCItem +litem &244 +pos 0 +dimension 20 +uid 4415,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 3275,0 +optionalChildren [ +*252 (MRCItem +litem &235 +pos 0 +dimension 20 +uid 3276,0 +) +*253 (MRCItem +litem &237 +pos 1 +dimension 50 +uid 3277,0 +) +*254 (MRCItem +litem &238 +pos 2 +dimension 100 +uid 3278,0 +) +*255 (MRCItem +litem &239 +pos 3 +dimension 100 +uid 3279,0 +) +*256 (MRCItem +litem &240 +pos 4 +dimension 50 +uid 3280,0 +) +*257 (MRCItem +litem &241 +pos 5 +dimension 50 +uid 3281,0 +) +*258 (MRCItem +litem &242 +pos 6 +dimension 80 +uid 3282,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 3270,0 +vaOverrides [ +] +) +] +) +uid 3256,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/student@version.bd b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/student@version.bd new file mode 100644 index 0000000..4440cd9 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/student@version.bd @@ -0,0 +1,6671 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I2" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 217,0 +) +(Instance +name "I3" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 812,0 +) +(Instance +name "I4" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 832,0 +) +(Instance +name "I5" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 852,0 +) +(Instance +name "I6" +duLibraryName "gates" +duName "inverter" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 872,0 +) +(Instance +name "I1" +duLibraryName "io" +duName "triBuffLogicV" +elements [ +(GiElement +name "nbBits" +type "positive" +value "dataBitNb" +) +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 1001,0 +) +(Instance +name "I0" +duLibraryName "Curves" +duName "beamerPeriph" +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +mwi 0 +uid 1250,0 +) +(Instance +name "I7" +duLibraryName "gates" +duName "and2" +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +mwi 0 +uid 1307,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb1" +number "1" +) +(EmbeddedInstance +name "eb2" +number "2" +) +] +libraryRefs [ +"ieee" +] +) +version "31.1" +appVersion "2018.1 (Build 12)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/student@version.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/student@version.bd.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "studentVersion" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer" +) +(vvPair +variable "date" +value "04/15/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "15" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FPGA_beamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "student@version.bd" +) +(vvPair +variable "f_logical" +value "studentVersion.bd" +) +(vvPair +variable "f_noext" +value "student@version" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "04/15/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:26:56" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FPGA_beamer" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/student@version.bd" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer/studentVersion.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "student@version" +) +(vvPair +variable "this_file_logical" +value "studentVersion" +) +(vvPair +variable "time" +value "14:26:56" +) +(vvPair +variable "unit" +value "FPGA_beamer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "studentVersion" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 83,0 +optionalChildren [ +*1 (PortIoIn +uid 9,0 +shape (CompositeShape +uid 10,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 11,0 +sl 0 +ro 270 +xt "17000,57625,18500,58375" +) +(Line +uid 12,0 +sl 0 +ro 270 +xt "18500,58000,19000,58000" +pts [ +"18500,58000" +"19000,58000" +] +) +] +) +tg (WTG +uid 13,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 14,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "12200,57300,16000,58700" +st "clock" +ju 2 +blo "16000,58500" +tm "WireNameMgr" +) +) +) +*2 (Net +uid 21,0 +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 22,0 +va (VaSet +font "courier,8,0" +) +xt "65000,2400,77500,3300" +st "clock : std_ulogic" +) +) +*3 (PortIoOut +uid 23,0 +shape (CompositeShape +uid 24,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 25,0 +sl 0 +ro 270 +xt "67500,26625,69000,27375" +) +(Line +uid 26,0 +sl 0 +ro 270 +xt "67000,27000,67500,27000" +pts [ +"67000,27000" +"67500,27000" +] +) +] +) +tg (WTG +uid 27,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 28,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "70000,26300,73800,27700" +st "yOut" +blo "70000,27500" +tm "WireNameMgr" +) +) +) +*4 (PortIoIn +uid 37,0 +shape (CompositeShape +uid 38,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 39,0 +sl 0 +ro 270 +xt "17000,61625,18500,62375" +) +(Line +uid 40,0 +sl 0 +ro 270 +xt "18500,62000,19000,62000" +pts [ +"18500,62000" +"19000,62000" +] +) +] +) +tg (WTG +uid 41,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 42,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "10200,61300,16000,62700" +st "reset_N" +ju 2 +blo "16000,62500" +tm "WireNameMgr" +) +) +) +*5 (Net +uid 49,0 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 2,0 +) +declText (MLText +uid 50,0 +va (VaSet +font "courier,8,0" +) +xt "65000,22000,81000,22900" +st "SIGNAL reset : std_ulogic" +) +) +*6 (Grouping +uid 51,0 +optionalChildren [ +*7 (CommentText +uid 53,0 +shape (Rectangle +uid 54,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,65000,74000,66000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 55,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,65000,74000,66000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*8 (CommentText +uid 56,0 +shape (Rectangle +uid 57,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,61000,78000,62000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 58,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,61000,77800,62000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*9 (CommentText +uid 59,0 +shape (Rectangle +uid 60,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,63000,74000,64000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 61,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,63000,73400,64000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*10 (CommentText +uid 62,0 +shape (Rectangle +uid 63,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,63000,57000,64000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 64,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,63000,56800,64000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*11 (CommentText +uid 65,0 +shape (Rectangle +uid 66,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "74000,62000,94000,66000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 67,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "74200,62200,87400,63200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*12 (CommentText +uid 68,0 +shape (Rectangle +uid 69,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "78000,61000,94000,62000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 70,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "78200,61000,93800,62000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*13 (CommentText +uid 71,0 +shape (Rectangle +uid 72,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,61000,74000,63000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 73,0 +va (VaSet +fg "32768,0,0" +) +xt "59000,61500,68000,62500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*14 (CommentText +uid 74,0 +shape (Rectangle +uid 75,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,64000,57000,65000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 76,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,64000,56200,65000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*15 (CommentText +uid 77,0 +shape (Rectangle +uid 78,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,65000,57000,66000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 79,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,65000,56800,66000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*16 (CommentText +uid 80,0 +shape (Rectangle +uid 81,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,64000,74000,65000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 82,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,64000,68600,65000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 52,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "53000,61000,94000,66000" +) +oxt "14000,66000,55000,71000" +) +*17 (SaComponent +uid 217,0 +optionalChildren [ +*18 (CptPort +uid 208,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 209,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,61625,24000,62375" +) +tg (CPTG +uid 210,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 211,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,61500,26700,62900" +st "in1" +blo "24000,62700" +) +s (Text +uid 226,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,62900,24000,62900" +blo "24000,62900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*19 (CptPort +uid 212,0 +optionalChildren [ +*20 (Circle +uid 216,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,61625,29750,62375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 213,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,61625,30500,62375" +) +tg (CPTG +uid 214,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 215,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,61500,28750,62900" +st "out1" +ju 2 +blo "28750,62700" +) +s (Text +uid 227,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,62900,28750,62900" +ju 2 +blo "28750,62900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 218,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,59000,29000,65000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 219,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*21 (Text +uid 220,0 +va (VaSet +isHidden 1 +) +xt "24910,57700,27210,58700" +st "gates" +blo "24910,58500" +tm "BdLibraryNameMgr" +) +*22 (Text +uid 221,0 +va (VaSet +isHidden 1 +) +xt "24910,58700,27810,59700" +st "inverter" +blo "24910,59500" +tm "CptNameMgr" +) +*23 (Text +uid 222,0 +va (VaSet +) +xt "24910,58700,25910,59700" +st "I2" +blo "24910,59500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 223,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 224,0 +text (MLText +uid 225,0 +va (VaSet +isHidden 1 +) +xt "24000,65400,39600,66400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*24 (Net +uid 253,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +declText (MLText +uid 254,0 +va (VaSet +font "courier,8,0" +) +xt "65000,3200,77500,4100" +st "reset_N : std_ulogic" +) +) +*25 (Net +uid 476,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +declText (MLText +uid 477,0 +va (VaSet +font "courier,8,0" +) +xt "65000,8800,77500,9700" +st "xOut : std_ulogic" +) +) +*26 (PortIoOut +uid 569,0 +shape (CompositeShape +uid 570,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 571,0 +sl 0 +ro 270 +xt "67500,24625,69000,25375" +) +(Line +uid 572,0 +sl 0 +ro 270 +xt "67000,25000,67500,25000" +pts [ +"67000,25000" +"67500,25000" +] +) +] +) +tg (WTG +uid 573,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 574,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "70000,24300,73800,25700" +st "xOut" +blo "70000,25500" +tm "WireNameMgr" +) +) +) +*27 (Net +uid 611,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +declText (MLText +uid 612,0 +va (VaSet +font "courier,8,0" +) +xt "65000,9600,77500,10500" +st "yOut : std_ulogic" +) +) +*28 (SaComponent +uid 812,0 +optionalChildren [ +*29 (CptPort +uid 821,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 822,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,53625,24000,54375" +) +tg (CPTG +uid 823,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 824,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,53500,26700,54900" +st "in1" +blo "24000,54700" +) +s (Text +uid 825,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,54900,24000,54900" +blo "24000,54900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*30 (CptPort +uid 826,0 +optionalChildren [ +*31 (Circle +uid 831,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,53625,29750,54375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 827,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,53625,30500,54375" +) +tg (CPTG +uid 828,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 829,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,53500,28750,54900" +st "out1" +ju 2 +blo "28750,54700" +) +s (Text +uid 830,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,54900,28750,54900" +ju 2 +blo "28750,54900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 813,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,51000,29000,57000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 814,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*32 (Text +uid 815,0 +va (VaSet +isHidden 1 +) +xt "24910,49700,27210,50700" +st "gates" +blo "24910,50500" +tm "BdLibraryNameMgr" +) +*33 (Text +uid 816,0 +va (VaSet +isHidden 1 +) +xt "24910,50700,27810,51700" +st "inverter" +blo "24910,51500" +tm "CptNameMgr" +) +*34 (Text +uid 817,0 +va (VaSet +) +xt "24910,50700,25910,51700" +st "I3" +blo "24910,51500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 818,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 819,0 +text (MLText +uid 820,0 +va (VaSet +isHidden 1 +) +xt "24000,57400,39600,58400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*35 (SaComponent +uid 832,0 +optionalChildren [ +*36 (CptPort +uid 841,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 842,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,45625,24000,46375" +) +tg (CPTG +uid 843,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 844,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,45500,26700,46900" +st "in1" +blo "24000,46700" +) +s (Text +uid 845,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,46900,24000,46900" +blo "24000,46900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*37 (CptPort +uid 846,0 +optionalChildren [ +*38 (Circle +uid 851,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,45625,29750,46375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 847,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,45625,30500,46375" +) +tg (CPTG +uid 848,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 849,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,45500,28750,46900" +st "out1" +ju 2 +blo "28750,46700" +) +s (Text +uid 850,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,46900,28750,46900" +ju 2 +blo "28750,46900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 833,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,43000,29000,49000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 834,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*39 (Text +uid 835,0 +va (VaSet +isHidden 1 +) +xt "24910,41700,27210,42700" +st "gates" +blo "24910,42500" +tm "BdLibraryNameMgr" +) +*40 (Text +uid 836,0 +va (VaSet +isHidden 1 +) +xt "24910,42700,27810,43700" +st "inverter" +blo "24910,43500" +tm "CptNameMgr" +) +*41 (Text +uid 837,0 +va (VaSet +) +xt "24910,42700,25910,43700" +st "I4" +blo "24910,43500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 838,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 839,0 +text (MLText +uid 840,0 +va (VaSet +isHidden 1 +) +xt "24000,49400,39600,50400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*42 (SaComponent +uid 852,0 +optionalChildren [ +*43 (CptPort +uid 861,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 862,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,37625,24000,38375" +) +tg (CPTG +uid 863,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 864,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,37500,26700,38900" +st "in1" +blo "24000,38700" +) +s (Text +uid 865,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,38900,24000,38900" +blo "24000,38900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*44 (CptPort +uid 866,0 +optionalChildren [ +*45 (Circle +uid 871,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,37625,29750,38375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 867,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,37625,30500,38375" +) +tg (CPTG +uid 868,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 869,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,37500,28750,38900" +st "out1" +ju 2 +blo "28750,38700" +) +s (Text +uid 870,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,38900,28750,38900" +ju 2 +blo "28750,38900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 853,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,35000,29000,41000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 854,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*46 (Text +uid 855,0 +va (VaSet +isHidden 1 +) +xt "24910,33700,27210,34700" +st "gates" +blo "24910,34500" +tm "BdLibraryNameMgr" +) +*47 (Text +uid 856,0 +va (VaSet +isHidden 1 +) +xt "24910,34700,27810,35700" +st "inverter" +blo "24910,35500" +tm "CptNameMgr" +) +*48 (Text +uid 857,0 +va (VaSet +) +xt "24910,34700,25910,35700" +st "I5" +blo "24910,35500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 858,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 859,0 +text (MLText +uid 860,0 +va (VaSet +isHidden 1 +) +xt "24000,41400,39600,42400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*49 (SaComponent +uid 872,0 +optionalChildren [ +*50 (CptPort +uid 881,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 882,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "23250,30625,24000,31375" +) +tg (CPTG +uid 883,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 884,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,30500,26700,31900" +st "in1" +blo "24000,31700" +) +s (Text +uid 885,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24000,31900,24000,31900" +blo "24000,31900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*51 (CptPort +uid 886,0 +optionalChildren [ +*52 (Circle +uid 891,0 +va (VaSet +fg "0,65535,0" +) +xt "29000,30625,29750,31375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 887,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "29750,30625,30500,31375" +) +tg (CPTG +uid 888,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 889,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "25050,30500,28750,31900" +st "out1" +ju 2 +blo "28750,31700" +) +s (Text +uid 890,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "28750,31900,28750,31900" +ju 2 +blo "28750,31900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 873,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "24000,28000,29000,34000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 874,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*53 (Text +uid 875,0 +va (VaSet +isHidden 1 +) +xt "24910,26700,27210,27700" +st "gates" +blo "24910,27500" +tm "BdLibraryNameMgr" +) +*54 (Text +uid 876,0 +va (VaSet +isHidden 1 +) +xt "24910,27700,27810,28700" +st "inverter" +blo "24910,28500" +tm "CptNameMgr" +) +*55 (Text +uid 877,0 +va (VaSet +) +xt "24910,27700,25910,28700" +st "I6" +blo "24910,28500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 878,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 879,0 +text (MLText +uid 880,0 +va (VaSet +isHidden 1 +) +xt "24000,34400,39600,35400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*56 (Net +uid 898,0 +decl (Decl +n "rd" +t "std_ulogic" +o 22 +suid 6,0 +) +declText (MLText +uid 899,0 +va (VaSet +font "courier,8,0" +) +xt "65000,21200,81000,22100" +st "SIGNAL rd : std_ulogic" +) +) +*57 (Net +uid 904,0 +decl (Decl +n "wrH" +t "std_ulogic" +o 25 +suid 7,0 +) +declText (MLText +uid 905,0 +va (VaSet +font "courier,8,0" +) +xt "65000,23600,81000,24500" +st "SIGNAL wrH : std_ulogic" +) +) +*58 (Net +uid 910,0 +decl (Decl +n "wrL" +t "std_ulogic" +o 26 +suid 8,0 +) +declText (MLText +uid 911,0 +va (VaSet +font "courier,8,0" +) +xt "65000,24400,81000,25300" +st "SIGNAL wrL : std_ulogic" +) +) +*59 (Net +uid 916,0 +decl (Decl +n "cs" +t "std_ulogic" +o 13 +suid 9,0 +) +declText (MLText +uid 917,0 +va (VaSet +font "courier,8,0" +) +xt "65000,14000,81000,14900" +st "SIGNAL cs : std_ulogic" +) +) +*60 (Net +uid 978,0 +decl (Decl +n "ncs" +t "std_ulogic" +o 18 +suid 10,0 +) +declText (MLText +uid 979,0 +va (VaSet +font "courier,8,0" +) +xt "65000,18000,81000,18900" +st "SIGNAL ncs : std_ulogic" +) +) +*61 (Net +uid 980,0 +decl (Decl +n "nwr0" +t "std_ulogic" +o 20 +suid 11,0 +) +declText (MLText +uid 981,0 +va (VaSet +font "courier,8,0" +) +xt "65000,19600,81000,20500" +st "SIGNAL nwr0 : std_ulogic" +) +) +*62 (Net +uid 982,0 +decl (Decl +n "nwr1" +t "std_ulogic" +o 21 +suid 12,0 +) +declText (MLText +uid 983,0 +va (VaSet +font "courier,8,0" +) +xt "65000,20400,81000,21300" +st "SIGNAL nwr1 : std_ulogic" +) +) +*63 (Net +uid 984,0 +decl (Decl +n "nrd" +t "std_ulogic" +o 19 +suid 13,0 +) +declText (MLText +uid 985,0 +va (VaSet +font "courier,8,0" +) +xt "65000,18800,81000,19700" +st "SIGNAL nrd : std_ulogic" +) +) +*64 (SaComponent +uid 1001,0 +optionalChildren [ +*65 (CptPort +uid 986,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 987,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "23250,20625,24000,21375" +) +tg (CPTG +uid 988,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 989,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23250,20750,26950,22150" +st "out1" +blo "23250,21950" +) +s (Text +uid 990,0 +va (VaSet +isHidden 1 +) +xt "23250,22150,33950,23150" +blo "23250,22950" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_logic_vector" +b "(nbBits-1 DOWNTO 0)" +o 16 +) +) +) +*66 (CptPort +uid 991,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 992,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "30000,20625,30750,21375" +) +tg (CPTG +uid 993,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 994,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "27950,21250,30650,22650" +st "in1" +ju 2 +blo "30650,22450" +) +s (Text +uid 995,0 +va (VaSet +isHidden 1 +) +xt "19950,22650,30650,23650" +ju 2 +blo "30650,23450" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_logic_vector" +b "(nbBits-1 DOWNTO 0)" +o 12 +) +) +) +*67 (CptPort +uid 996,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 997,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "26625,18250,27375,19000" +) +tg (CPTG +uid 998,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 999,0 +va (VaSet +font "courier,12,0" +) +xt "26200,19100,28600,20500" +st "oe" +blo "26200,20300" +) +s (Text +uid 1000,0 +va (VaSet +isHidden 1 +) +xt "26200,20500,30500,21500" +blo "26200,21300" +) +) +thePort (LogicalPort +decl (Decl +n "oe" +t "std_ulogic" +o 3 +) +) +) +] +shape (Buf +uid 1002,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "24000,17000,30000,25000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1003,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*68 (Text +uid 1004,0 +va (VaSet +isHidden 1 +) +xt "24750,21400,25750,22400" +st "io" +blo "24750,22200" +tm "BdLibraryNameMgr" +) +*69 (Text +uid 1005,0 +va (VaSet +isHidden 1 +) +xt "24750,22400,29950,23400" +st "triBuffLogicV" +blo "24750,23200" +tm "CptNameMgr" +) +*70 (Text +uid 1006,0 +va (VaSet +) +xt "24750,22400,25750,23400" +st "I1" +blo "24750,23200" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1007,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1008,0 +text (MLText +uid 1009,0 +va (VaSet +font "courier,9,0" +) +xt "21000,23600,39000,25400" +st "nbBits = dataBitNb ( positive ) +delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "nbBits" +type "positive" +value "dataBitNb" +) +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +connectByName 1 +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +sIVOD 1 +) +archFileType "UNKNOWN" +) +*71 (Net +uid 1025,0 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 14,0 +) +declText (MLText +uid 1026,0 +va (VaSet +font "courier,8,0" +) +xt "65000,17200,95000,18100" +st "SIGNAL dataOut : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*72 (Net +uid 1031,0 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 15 +suid 15,0 +) +declText (MLText +uid 1032,0 +va (VaSet +font "courier,8,0" +) +xt "65000,15600,95500,16500" +st "SIGNAL dataIn : std_ulogic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*73 (Net +uid 1039,0 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 12 +suid 16,0 +) +declText (MLText +uid 1040,0 +va (VaSet +font "courier,8,0" +) +xt "65000,13200,92500,14100" +st "SIGNAL addr : unsigned(addressBitNb-1 DOWNTO 0)" +) +) +*74 (HdlText +uid 1053,0 +optionalChildren [ +*75 (EmbeddedText +uid 1058,0 +commentText (CommentText +uid 1059,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1060,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "24000,10000,34000,12000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1061,0 +va (VaSet +) +xt "24200,10200,33800,12200" +st " +dataIn <= std_ulogic_vector(data); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 10000 +) +) +) +] +shape (Rectangle +uid 1054,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "23000,9000,35000,13000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1055,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*76 (Text +uid 1056,0 +va (VaSet +) +xt "22400,13000,24000,14000" +st "eb1" +blo "22400,13800" +tm "HdlTextNameMgr" +) +*77 (Text +uid 1057,0 +va (VaSet +) +xt "22400,14000,23200,15000" +st "1" +blo "22400,14800" +tm "HdlTextNumberMgr" +) +] +) +) +*78 (Net +uid 1070,0 +decl (Decl +n "data" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 14 +suid 17,0 +) +declText (MLText +uid 1071,0 +va (VaSet +font "courier,8,0" +) +xt "65000,14800,95000,15700" +st "SIGNAL data : std_logic_vector(dataBitNb-1 DOWNTO 0)" +) +) +*79 (PortIoOut +uid 1157,0 +shape (CompositeShape +uid 1158,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1159,0 +sl 0 +ro 270 +xt "91500,39625,93000,40375" +) +(Line +uid 1160,0 +sl 0 +ro 270 +xt "91000,40000,91500,40000" +pts [ +"91000,40000" +"91500,40000" +] +) +] +) +tg (WTG +uid 1161,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1162,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,39300,98000,40700" +st "LED2" +blo "94000,40500" +tm "WireNameMgr" +) +) +) +*80 (Net +uid 1169,0 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 18,0 +) +declText (MLText +uid 1170,0 +va (VaSet +font "courier,8,0" +) +xt "65000,6400,77500,7300" +st "LED2 : std_ulogic" +) +) +*81 (Net +uid 1183,0 +decl (Decl +n "LED4" +t "std_ulogic" +o 11 +suid 19,0 +) +declText (MLText +uid 1184,0 +va (VaSet +font "courier,8,0" +) +xt "65000,12400,81000,13300" +st "SIGNAL LED4 : std_ulogic" +) +) +*82 (HdlText +uid 1185,0 +optionalChildren [ +*83 (EmbeddedText +uid 1190,0 +commentText (CommentText +uid 1191,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 1192,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "68000,40000,82000,45000" +) +oxt "0,0,18000,5000" +text (MLText +uid 1193,0 +va (VaSet +) +xt "68200,40200,81400,44200" +st " +LED2 <= '0'; +LED4 <= '0'; +spare <= (others => '0'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 5000 +visibleWidth 14000 +) +) +) +] +shape (Rectangle +uid 1186,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "67000,39000,83000,47000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1187,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*84 (Text +uid 1188,0 +va (VaSet +) +xt "67400,47000,69000,48000" +st "eb2" +blo "67400,47800" +tm "HdlTextNameMgr" +) +*85 (Text +uid 1189,0 +va (VaSet +) +xt "67400,48000,68200,49000" +st "2" +blo "67400,48800" +tm "HdlTextNumberMgr" +) +] +) +) +*86 (SaComponent +uid 1250,0 +optionalChildren [ +*87 (CptPort +uid 1202,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1203,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,42625,43000,43375" +) +tg (CPTG +uid 1204,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1205,0 +va (VaSet +font "courier,9,0" +) +xt "44000,42400,47400,43600" +st "clock" +blo "44000,43400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 3 +) +) +) +*88 (CptPort +uid 1206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1207,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,24625,43000,25375" +) +tg (CPTG +uid 1208,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1209,0 +va (VaSet +font "courier,9,0" +) +xt "44000,24400,46900,25600" +st "addr" +blo "44000,25400" +) +) +thePort (LogicalPort +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 2 +) +) +) +*89 (CptPort +uid 1210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1211,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,24625,59750,25375" +) +tg (CPTG +uid 1212,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1213,0 +va (VaSet +font "courier,9,0" +) +xt "55001,24400,58001,25600" +st "outX" +ju 2 +blo "58001,25400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 1 +) +) +) +*90 (CptPort +uid 1214,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,44625,43000,45375" +) +tg (CPTG +uid 1216,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1217,0 +va (VaSet +font "courier,9,0" +) +xt "44000,44400,47300,45600" +st "reset" +blo "44000,45400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 4 +) +) +) +*91 (CptPort +uid 1218,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1219,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,26625,59750,27375" +) +tg (CPTG +uid 1220,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1221,0 +va (VaSet +font "courier,9,0" +) +xt "55001,26400,58001,27600" +st "outY" +ju 2 +blo "58001,27400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 5 +) +) +) +*92 (CptPort +uid 1222,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1223,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,26625,43000,27375" +) +tg (CPTG +uid 1224,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1225,0 +va (VaSet +font "courier,9,0" +) +xt "44000,26400,48000,27600" +st "dataIn" +blo "44000,27400" +) +) +thePort (LogicalPort +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 6 +) +) +) +*93 (CptPort +uid 1226,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1227,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,32625,43000,33375" +) +tg (CPTG +uid 1228,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1229,0 +va (VaSet +font "courier,9,0" +) +xt "44000,32400,45700,33600" +st "rd" +blo "44000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "rd" +t "std_ulogic" +o 7 +) +) +) +*94 (CptPort +uid 1230,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1231,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,34625,43000,35375" +) +tg (CPTG +uid 1232,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1233,0 +va (VaSet +font "courier,9,0" +) +xt "44000,34400,46600,35600" +st "wrH" +blo "44000,35400" +) +) +thePort (LogicalPort +decl (Decl +n "wrH" +t "std_ulogic" +o 8 +) +) +) +*95 (CptPort +uid 1234,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1235,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,38625,43000,39375" +) +tg (CPTG +uid 1236,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1237,0 +va (VaSet +font "courier,9,0" +) +xt "44000,38400,45900,39600" +st "cs" +blo "44000,39400" +) +) +thePort (LogicalPort +decl (Decl +n "cs" +t "std_ulogic" +o 9 +) +) +) +*96 (CptPort +uid 1238,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1239,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,36625,43000,37375" +) +tg (CPTG +uid 1240,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1241,0 +va (VaSet +font "courier,9,0" +) +xt "44000,36400,46400,37600" +st "wrL" +blo "44000,37400" +) +) +thePort (LogicalPort +decl (Decl +n "wrL" +t "std_ulogic" +o 10 +) +) +) +*97 (CptPort +uid 1242,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1243,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "42250,28625,43000,29375" +) +tg (CPTG +uid 1244,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1245,0 +va (VaSet +font "courier,9,0" +) +xt "44000,28400,48800,29600" +st "dataOut" +blo "44000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 11 +) +) +) +*98 (CptPort +uid 1246,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1247,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "59000,42625,59750,43375" +) +tg (CPTG +uid 1248,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1249,0 +va (VaSet +font "courier,9,0" +) +xt "53401,42400,58001,43600" +st "testOut" +ju 2 +blo "58001,43400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 12 +) +) +) +] +shape (Rectangle +uid 1251,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43000,21000,59000,47000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1252,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 1253,0 +va (VaSet +) +xt "43600,46800,46400,47800" +st "Curves" +blo "43600,47600" +tm "BdLibraryNameMgr" +) +*100 (Text +uid 1254,0 +va (VaSet +) +xt "43600,47800,49100,48800" +st "beamerPeriph" +blo "43600,48600" +tm "CptNameMgr" +) +*101 (Text +uid 1255,0 +va (VaSet +) +xt "43600,48800,44600,49800" +st "I0" +blo "43600,49600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1256,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1257,0 +text (MLText +uid 1258,0 +va (VaSet +font "courier,8,0" +) +xt "43000,50600,65500,52400" +st "dataBitNb = dataBitNb ( positive ) +addressBitNb = addressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "dataBitNb" +type "positive" +value "dataBitNb" +) +(GiElement +name "addressBitNb" +type "positive" +value "addressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*102 (Net +uid 1259,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 24 +suid 20,0 +) +declText (MLText +uid 1260,0 +va (VaSet +font "courier,8,0" +) +xt "65000,22800,89000,23700" +st "SIGNAL testOut : std_ulogic_vector(1 TO 16)" +) +) +*103 (PortIoOut +uid 1267,0 +shape (CompositeShape +uid 1268,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1269,0 +sl 0 +ro 270 +xt "91500,43625,93000,44375" +) +(Line +uid 1270,0 +sl 0 +ro 270 +xt "91000,44000,91500,44000" +pts [ +"91000,44000" +"91500,44000" +] +) +] +) +tg (WTG +uid 1271,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1272,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,43300,106400,44700" +st "spare : (1 TO 17)" +blo "94000,44500" +tm "WireNameMgr" +) +) +) +*104 (Net +uid 1279,0 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +declText (MLText +uid 1280,0 +va (VaSet +font "courier,8,0" +) +xt "65000,7200,85500,8100" +st "spare : std_ulogic_vector(1 TO 17)" +) +) +*105 (SaComponent +uid 1307,0 +optionalChildren [ +*106 (CptPort +uid 1295,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1296,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,16625,51750,17375" +) +tg (CPTG +uid 1297,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1298,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "39400,16200,51000,17600" +st "in1 : std_uLogic" +ju 2 +blo "51000,17400" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*107 (CptPort +uid 1299,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1300,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "51000,12625,51750,13375" +) +tg (CPTG +uid 1301,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 1302,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "39400,12200,51000,13600" +st "in2 : std_uLogic" +ju 2 +blo "51000,13400" +) +) +thePort (LogicalPort +decl (Decl +n "in2" +t "std_uLogic" +o 2 +) +) +) +*108 (CptPort +uid 1303,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 1304,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "43300,14625,44050,15375" +) +tg (CPTG +uid 1305,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 1306,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "44000,14250,56600,15650" +st "out1 : std_uLogic" +blo "44000,15450" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 3 +) +) +) +] +shape (And +uid 1308,0 +ro 180 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,12000,51000,18000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 1309,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*109 (Text +uid 1310,0 +va (VaSet +isHidden 1 +) +xt "46600,12700,48900,13700" +st "gates" +blo "46600,13500" +tm "BdLibraryNameMgr" +) +*110 (Text +uid 1311,0 +va (VaSet +isHidden 1 +) +xt "46600,13700,48600,14700" +st "and2" +blo "46600,14500" +tm "CptNameMgr" +) +*111 (Text +uid 1312,0 +va (VaSet +) +xt "46600,13700,47600,14700" +st "I7" +blo "46600,14500" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 1313,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 1314,0 +text (MLText +uid 1315,0 +va (VaSet +isHidden 1 +) +xt "44000,18400,59600,19400" +st "delay = 1 ns ( time ) " +) +header "" +) +elements [ +(GiElement +name "delay" +type "time" +value "1 ns" +) +] +) +portVis (PortSigDisplay +sN 0 +sT 1 +) +archFileType "UNKNOWN" +) +*112 (Net +uid 1334,0 +decl (Decl +n "dataOE" +t "std_ulogic" +o 16 +suid 22,0 +) +declText (MLText +uid 1335,0 +va (VaSet +font "courier,8,0" +) +xt "65000,16400,81000,17300" +st "SIGNAL dataOE : std_ulogic" +) +) +*113 (PortIoIn +uid 1516,0 +shape (CompositeShape +uid 1517,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1518,0 +sl 0 +ro 270 +xt "17000,65625,18500,66375" +) +(Line +uid 1519,0 +sl 0 +ro 270 +xt "18500,66000,19000,66000" +pts [ +"18500,66000" +"19000,66000" +] +) +] +) +tg (WTG +uid 1520,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1521,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "6700,65500,16000,66900" +st "selSinCos_n" +ju 2 +blo "16000,66700" +tm "WireNameMgr" +) +) +) +*114 (Net +uid 1528,0 +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 23 +suid 23,0 +) +declText (MLText +uid 1529,0 +va (VaSet +font "courier,8,0" +) +xt "65000,4800,77500,5700" +st "selSinCos_n : std_ulogic" +) +) +*115 (PortIoOut +uid 1530,0 +shape (CompositeShape +uid 1531,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1532,0 +sl 0 +ro 270 +xt "91500,47625,93000,48375" +) +(Line +uid 1533,0 +sl 0 +ro 270 +xt "91000,48000,91500,48000" +pts [ +"91000,48000" +"91500,48000" +] +) +] +) +tg (WTG +uid 1534,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1535,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,47500,98000,48900" +st "LED1" +blo "94000,48700" +tm "WireNameMgr" +) +) +) +*116 (Net +uid 1542,0 +decl (Decl +n "LED1" +t "std_ulogic" +o 24 +suid 24,0 +) +declText (MLText +uid 1543,0 +va (VaSet +font "courier,8,0" +) +xt "65000,5600,77500,6500" +st "LED1 : std_ulogic" +) +) +*117 (PortIoOut +uid 1544,0 +shape (CompositeShape +uid 1545,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1546,0 +sl 0 +ro 270 +xt "91500,49625,93000,50375" +) +(Line +uid 1547,0 +sl 0 +ro 270 +xt "91000,50000,91500,50000" +pts [ +"91000,50000" +"91500,50000" +] +) +] +) +tg (WTG +uid 1548,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1549,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "94000,49500,97600,50900" +st "txd0" +blo "94000,50700" +tm "WireNameMgr" +) +) +) +*118 (Net +uid 1556,0 +decl (Decl +n "txd0" +t "std_ulogic" +o 25 +suid 25,0 +) +declText (MLText +uid 1557,0 +va (VaSet +font "courier,8,0" +) +xt "65000,8000,77500,8900" +st "txd0 : std_ulogic" +) +) +*119 (PortIoIn +uid 1558,0 +shape (CompositeShape +uid 1559,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 1560,0 +sl 0 +ro 270 +xt "17000,67625,18500,68375" +) +(Line +uid 1561,0 +sl 0 +ro 270 +xt "18500,68000,19000,68000" +pts [ +"18500,68000" +"19000,68000" +] +) +] +) +tg (WTG +uid 1562,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1563,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "12400,67500,16000,68900" +st "rxd0" +ju 2 +blo "16000,68700" +tm "WireNameMgr" +) +) +) +*120 (Net +uid 1570,0 +decl (Decl +n "rxd0" +t "std_ulogic" +o 26 +suid 26,0 +) +declText (MLText +uid 1571,0 +va (VaSet +font "courier,8,0" +) +xt "65000,4000,77500,4900" +st "rxd0 : std_ulogic" +) +) +*121 (Wire +uid 15,0 +shape (OrthoPolyLine +uid 16,0 +va (VaSet +vasetType 3 +) +xt "19000,43000,42250,58000" +pts [ +"19000,58000" +"39000,58000" +"39000,43000" +"42250,43000" +] +) +start &1 +end &87 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 19,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 20,0 +va (VaSet +font "courier,12,0" +) +xt "19000,56600,22800,58000" +st "clock" +blo "19000,57800" +tm "WireNameMgr" +) +) +on &2 +) +*122 (Wire +uid 29,0 +shape (OrthoPolyLine +uid 30,0 +va (VaSet +vasetType 3 +) +xt "59750,27000,67000,27000" +pts [ +"67000,27000" +"59750,27000" +] +) +start &3 +end &91 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 33,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 34,0 +va (VaSet +font "courier,12,0" +) +xt "62000,25600,65800,27000" +st "yOut" +blo "62000,26800" +tm "WireNameMgr" +) +) +on &27 +) +*123 (Wire +uid 43,0 +shape (OrthoPolyLine +uid 44,0 +va (VaSet +vasetType 3 +) +xt "19000,62000,24000,62000" +pts [ +"19000,62000" +"24000,62000" +] +) +start &4 +end &18 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 47,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 48,0 +va (VaSet +font "courier,12,0" +) +xt "18000,60600,23800,62000" +st "reset_N" +blo "18000,61800" +tm "WireNameMgr" +) +) +on &24 +) +*124 (Wire +uid 245,0 +shape (OrthoPolyLine +uid 246,0 +va (VaSet +vasetType 3 +) +xt "29750,45000,42250,62000" +pts [ +"29750,62000" +"41000,62000" +"41000,45000" +"42250,45000" +] +) +start &19 +end &90 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 251,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 252,0 +va (VaSet +font "courier,12,0" +) +xt "31000,60600,35100,62000" +st "reset" +blo "31000,61800" +tm "WireNameMgr" +) +) +on &5 +) +*125 (Wire +uid 575,0 +shape (OrthoPolyLine +uid 576,0 +va (VaSet +vasetType 3 +) +xt "59750,25000,67000,25000" +pts [ +"67000,25000" +"59750,25000" +] +) +start &26 +end &89 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 577,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 578,0 +va (VaSet +font "courier,12,0" +) +xt "62000,23600,65800,25000" +st "xOut" +blo "62000,24800" +tm "WireNameMgr" +) +) +on &25 +) +*126 (Wire +uid 900,0 +shape (OrthoPolyLine +uid 901,0 +va (VaSet +vasetType 3 +) +xt "29750,31000,42250,33000" +pts [ +"42250,33000" +"33000,33000" +"33000,31000" +"29750,31000" +] +) +start &93 +end &51 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 902,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 903,0 +va (VaSet +font "courier,12,0" +) +xt "31000,29600,33100,31000" +st "rd" +blo "31000,30800" +tm "WireNameMgr" +) +) +on &56 +) +*127 (Wire +uid 906,0 +shape (OrthoPolyLine +uid 907,0 +va (VaSet +vasetType 3 +) +xt "29750,35000,42250,38000" +pts [ +"42250,35000" +"33000,35000" +"33000,38000" +"29750,38000" +] +) +start &94 +end &44 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 908,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 909,0 +va (VaSet +font "courier,12,0" +) +xt "31000,36600,34300,38000" +st "wrH" +blo "31000,37800" +tm "WireNameMgr" +) +) +on &57 +) +*128 (Wire +uid 912,0 +shape (OrthoPolyLine +uid 913,0 +va (VaSet +vasetType 3 +) +xt "29750,37000,42250,46000" +pts [ +"42250,37000" +"35000,37000" +"35000,46000" +"29750,46000" +] +) +start &96 +end &37 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 914,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 915,0 +va (VaSet +font "courier,12,0" +) +xt "31000,44600,34100,46000" +st "wrL" +blo "31000,45800" +tm "WireNameMgr" +) +) +on &58 +) +*129 (Wire +uid 918,0 +shape (OrthoPolyLine +uid 919,0 +va (VaSet +vasetType 3 +) +xt "29750,39000,42250,54000" +pts [ +"42250,39000" +"37000,39000" +"37000,54000" +"29750,54000" +] +) +start &95 +end &30 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 920,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 921,0 +va (VaSet +font "courier,12,0" +) +xt "31000,52600,33100,54000" +st "cs" +blo "31000,53800" +tm "WireNameMgr" +) +) +on &59 +) +*130 (Wire +uid 922,0 +shape (OrthoPolyLine +uid 923,0 +va (VaSet +vasetType 3 +) +xt "19000,46000,24000,46000" +pts [ +"24000,46000" +"19000,46000" +] +) +start &36 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 928,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 929,0 +va (VaSet +font "courier,12,0" +) +xt "19000,44600,23000,46000" +st "nwr0" +blo "19000,45800" +tm "WireNameMgr" +) +) +on &61 +) +*131 (Wire +uid 930,0 +shape (OrthoPolyLine +uid 931,0 +va (VaSet +vasetType 3 +) +xt "19000,31000,24000,31000" +pts [ +"24000,31000" +"19000,31000" +] +) +start &50 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 936,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 937,0 +va (VaSet +font "courier,12,0" +) +xt "19000,29600,21900,31000" +st "nrd" +blo "19000,30800" +tm "WireNameMgr" +) +) +on &63 +) +*132 (Wire +uid 938,0 +shape (OrthoPolyLine +uid 939,0 +va (VaSet +vasetType 3 +) +xt "19000,54000,24000,54000" +pts [ +"24000,54000" +"19000,54000" +] +) +start &29 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 944,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 945,0 +va (VaSet +font "courier,12,0" +) +xt "19000,52600,21900,54000" +st "ncs" +blo "19000,53800" +tm "WireNameMgr" +) +) +on &60 +) +*133 (Wire +uid 946,0 +shape (OrthoPolyLine +uid 947,0 +va (VaSet +vasetType 3 +) +xt "19000,38000,24000,38000" +pts [ +"24000,38000" +"19000,38000" +] +) +start &43 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 952,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 953,0 +va (VaSet +font "courier,12,0" +) +xt "19000,36600,23000,38000" +st "nwr1" +blo "19000,37800" +tm "WireNameMgr" +) +) +on &62 +) +*134 (Wire +uid 1027,0 +shape (OrthoPolyLine +uid 1028,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "30750,21000,42250,29000" +pts [ +"42250,29000" +"35000,29000" +"35000,21000" +"30750,21000" +] +) +start &97 +end &66 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1029,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1030,0 +va (VaSet +font "courier,12,0" +) +xt "36250,27600,42250,29000" +st "dataOut" +blo "36250,28800" +tm "WireNameMgr" +) +) +on &71 +) +*135 (Wire +uid 1033,0 +shape (OrthoPolyLine +uid 1034,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "35000,11000,42250,27000" +pts [ +"42250,27000" +"37000,27000" +"37000,11000" +"35000,11000" +] +) +start &92 +end &74 +sat 32 +eat 2 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1037,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1038,0 +va (VaSet +font "courier,12,0" +) +xt "37250,25600,42250,27000" +st "dataIn" +blo "37250,26800" +tm "WireNameMgr" +) +) +on &72 +) +*136 (Wire +uid 1041,0 +shape (OrthoPolyLine +uid 1042,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,5000,42250,25000" +pts [ +"42250,25000" +"38000,25000" +"38000,5000" +"19000,5000" +] +) +start &88 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1045,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1046,0 +va (VaSet +font "courier,12,0" +) +xt "19000,3600,22700,5000" +st "addr" +blo "19000,4800" +tm "WireNameMgr" +) +) +on &73 +) +*137 (Wire +uid 1062,0 +optionalChildren [ +*138 (BdJunction +uid 1084,0 +ps "OnConnectorStrategy" +shape (Circle +uid 1085,0 +va (VaSet +vasetType 1 +) +xt "20600,15600,21400,16400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 1063,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "19000,16000,23250,21000" +pts [ +"23250,21000" +"21000,21000" +"21000,16000" +"19000,16000" +] +) +start &65 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1068,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1069,0 +va (VaSet +font "courier,12,0" +) +xt "18000,13600,21700,15000" +st "data" +blo "18000,14800" +tm "WireNameMgr" +) +) +on &78 +) +*139 (Wire +uid 1078,0 +shape (OrthoPolyLine +uid 1079,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "21000,11000,23000,16000" +pts [ +"21000,16000" +"21000,11000" +"23000,11000" +] +) +start &138 +end &74 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1082,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1083,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "19000,9600,22700,11000" +st "data" +blo "19000,10800" +tm "WireNameMgr" +) +) +on &78 +) +*140 (Wire +uid 1086,0 +shape (OrthoPolyLine +uid 1087,0 +va (VaSet +vasetType 3 +) +xt "51000,13000,55000,13000" +pts [ +"51000,13000" +"55000,13000" +] +) +start &107 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1092,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1093,0 +va (VaSet +font "courier,12,0" +) +xt "53000,11600,55100,13000" +st "rd" +blo "53000,12800" +tm "WireNameMgr" +) +) +on &56 +) +*141 (Wire +uid 1163,0 +shape (OrthoPolyLine +uid 1164,0 +va (VaSet +vasetType 3 +) +xt "83000,40000,91000,40000" +pts [ +"83000,40000" +"91000,40000" +] +) +start &82 +end &79 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1167,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1168,0 +va (VaSet +font "courier,12,0" +) +xt "88000,38600,92000,40000" +st "LED2" +blo "88000,39800" +tm "WireNameMgr" +) +) +on &80 +) +*142 (Wire +uid 1177,0 +shape (OrthoPolyLine +uid 1178,0 +va (VaSet +vasetType 3 +) +xt "83000,42000,91000,42000" +pts [ +"83000,42000" +"91000,42000" +] +) +start &82 +sat 2 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1181,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1182,0 +va (VaSet +font "courier,12,0" +) +xt "88000,40600,92000,42000" +st "LED4" +blo "88000,41800" +tm "WireNameMgr" +) +) +on &81 +) +*143 (Wire +uid 1261,0 +shape (OrthoPolyLine +uid 1262,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "59750,43000,67000,43000" +pts [ +"59750,43000" +"67000,43000" +] +) +start &98 +end &82 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1265,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1266,0 +va (VaSet +font "courier,12,0" +) +xt "61750,41600,67350,43000" +st "testOut" +blo "61750,42800" +tm "WireNameMgr" +) +) +on &102 +) +*144 (Wire +uid 1273,0 +shape (OrthoPolyLine +uid 1274,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "83000,44000,91000,44000" +pts [ +"83000,44000" +"91000,44000" +] +) +start &82 +end &103 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1277,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1278,0 +va (VaSet +font "courier,12,0" +) +xt "87000,42600,91400,44000" +st "spare" +blo "87000,43800" +tm "WireNameMgr" +) +) +on &104 +) +*145 (Wire +uid 1330,0 +shape (OrthoPolyLine +uid 1331,0 +va (VaSet +vasetType 3 +) +xt "27000,15000,44050,18250" +pts [ +"44050,15000" +"27000,15000" +"27000,18250" +] +) +start &108 +end &67 +sat 32 +eat 32 +sf 1 +si 0 +tg (WTG +uid 1332,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1333,0 +ro 270 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "48600,-1050,50000,12950" +st "dataOE : std_ulogic" +blo "49800,12950" +tm "WireNameMgr" +) +) +on &112 +) +*146 (Wire +uid 1336,0 +shape (OrthoPolyLine +uid 1337,0 +va (VaSet +vasetType 3 +) +xt "51000,17000,55000,17000" +pts [ +"55000,17000" +"51000,17000" +] +) +end &106 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1342,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1343,0 +va (VaSet +font "courier,12,0" +) +xt "53000,15600,55100,17000" +st "cs" +blo "53000,16800" +tm "WireNameMgr" +) +) +on &59 +) +*147 (Wire +uid 1522,0 +shape (OrthoPolyLine +uid 1523,0 +va (VaSet +vasetType 3 +) +xt "19000,66000,29000,66000" +pts [ +"19000,66000" +"29000,66000" +] +) +start &113 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1526,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1527,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "21000,64600,30300,66000" +st "selSinCos_n" +blo "21000,65800" +tm "WireNameMgr" +) +) +on &114 +) +*148 (Wire +uid 1536,0 +shape (OrthoPolyLine +uid 1537,0 +va (VaSet +vasetType 3 +) +xt "81000,48000,91000,48000" +pts [ +"81000,48000" +"91000,48000" +] +) +end &115 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1540,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1541,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "83000,46600,87000,48000" +st "LED1" +blo "83000,47800" +tm "WireNameMgr" +) +) +on &116 +) +*149 (Wire +uid 1550,0 +shape (OrthoPolyLine +uid 1551,0 +va (VaSet +vasetType 3 +) +xt "81000,50000,91000,50000" +pts [ +"81000,50000" +"91000,50000" +] +) +end &117 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1554,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1555,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "83000,48600,86600,50000" +st "txd0" +blo "83000,49800" +tm "WireNameMgr" +) +) +on &118 +) +*150 (Wire +uid 1564,0 +shape (OrthoPolyLine +uid 1565,0 +va (VaSet +vasetType 3 +) +xt "19000,68000,29000,68000" +pts [ +"19000,68000" +"29000,68000" +] +) +start &119 +sat 32 +eat 16 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 1568,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 1569,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "21000,66600,24600,68000" +st "rxd0" +blo "21000,67800" +tm "WireNameMgr" +) +) +on &120 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *151 (PackageList +uid 84,0 +stg "VerticalLayoutStrategy" +textVec [ +*152 (Text +uid 85,0 +va (VaSet +font "courier,8,1" +) +xt "-3000,0,2400,1000" +st "Package List" +blo "-3000,800" +) +*153 (MLText +uid 86,0 +va (VaSet +) +xt "-3000,1000,15600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 87,0 +stg "VerticalLayoutStrategy" +textVec [ +*154 (Text +uid 88,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,0,28100,1000" +st "Compiler Directives" +blo "20000,800" +) +*155 (Text +uid 89,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,1000,29600,2000" +st "Pre-module directives:" +blo "20000,1800" +) +*156 (MLText +uid 90,0 +va (VaSet +isHidden 1 +) +xt "20000,2000,32000,4000" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*157 (Text +uid 91,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,4000,30100,5000" +st "Post-module directives:" +blo "20000,4800" +) +*158 (MLText +uid 92,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*159 (Text +uid 93,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "20000,5000,29900,6000" +st "End-module directives:" +blo "20000,5800" +) +*160 (MLText +uid 94,0 +va (VaSet +isHidden 1 +) +xt "20000,6000,20000,6000" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "29,29,922,729" +viewArea "-4864,-1468,96864,67668" +cachedDiagramExtent "-8700,-1050,106400,66600" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +scale 75 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "-3000,0" +lastUid 1636,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "65535,0,0" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,10,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "40000,56832,65535" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*161 (Text +va (VaSet +font "courier,9,0" +) +xt "1700,3200,6300,4400" +st "" +blo "1700,4200" +tm "BdLibraryNameMgr" +) +*162 (Text +va (VaSet +font "courier,9,0" +) +xt "1700,4400,5800,5600" +st "" +blo "1700,5400" +tm "BlkNameMgr" +) +*163 (Text +va (VaSet +font "courier,9,0" +) +xt "1700,5600,2900,6800" +st "I0" +blo "1700,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "1700,13200,1700,13200" +) +header "" +) +elements [ +] +) +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*164 (Text +va (VaSet +) +xt "1000,3500,3300,4500" +st "Library" +blo "1000,4300" +) +*165 (Text +va (VaSet +) +xt "1000,4500,7000,5500" +st "MWComponent" +blo "1000,5300" +) +*166 (Text +va (VaSet +) +xt "1000,5500,1600,6500" +st "I0" +blo "1000,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6000,1500,-6000,1500" +) +header "" +) +elements [ +] +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*167 (Text +va (VaSet +) +xt "1250,3500,3550,4500" +st "Library" +blo "1250,4300" +tm "BdLibraryNameMgr" +) +*168 (Text +va (VaSet +) +xt "1250,4500,6750,5500" +st "SaComponent" +blo "1250,5300" +tm "CptNameMgr" +) +*169 (Text +va (VaSet +) +xt "1250,5500,1850,6500" +st "I0" +blo "1250,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-5750,1500,-5750,1500" +) +header "" +) +elements [ +] +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*170 (Text +va (VaSet +) +xt "950,3500,3250,4500" +st "Library" +blo "950,4300" +) +*171 (Text +va (VaSet +) +xt "950,4500,7050,5500" +st "VhdlComponent" +blo "950,5300" +) +*172 (Text +va (VaSet +) +xt "950,5500,1550,6500" +st "I0" +blo "950,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6050,1500,-6050,1500" +) +header "" +) +elements [ +] +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "-50,0,8050,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*173 (Text +va (VaSet +) +xt "450,3500,2750,4500" +st "Library" +blo "450,4300" +) +*174 (Text +va (VaSet +) +xt "450,4500,7550,5500" +st "VerilogComponent" +blo "450,5300" +) +*175 (Text +va (VaSet +) +xt "450,5500,1050,6500" +st "I0" +blo "450,6300" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "-6550,1500,-6550,1500" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*176 (Text +va (VaSet +) +xt "3400,4000,4600,5000" +st "eb1" +blo "3400,4800" +tm "HdlTextNameMgr" +) +*177 (Text +va (VaSet +) +xt "3400,5000,3800,6000" +st "1" +blo "3400,5800" +tm "HdlTextNumberMgr" +) +] +) +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,2600,1200" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +) +xt "-300,-500,300,500" +st "G" +blo "-300,300" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,2600,1400" +st "sig0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +font "courier,12,0" +) +xt "0,0,3900,1400" +st "dbus0" +blo "0,1200" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineStyle 3 +lineWidth 1 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,2600,1000" +st "bundle0" +blo "0,800" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1000,1200,2000" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,50000" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +xt "0,0,5400,1000" +st "Auto list" +) +second (MLText +va (VaSet +) +xt "0,1000,10800,2000" +st "User defined list" +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,17400,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*178 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*179 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "28160,28160,28160" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1100,10800,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1050,1450" +) +num (Text +va (VaSet +) +xt "350,250,750,1250" +st "1" +blo "350,1050" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*180 (Text +va (VaSet +font "courier,8,1" +) +xt "14100,20000,22000,21000" +st "Frame Declarations" +blo "14100,20800" +) +*181 (MLText +va (VaSet +) +xt "14100,21000,14100,21000" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,1400,1750" +st "Port" +blo "0,1550" +) +) +thePort (LogicalPort +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "courier,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "63000,400,68400,1400" +st "Declarations" +blo "63000,1200" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "63000,1400,65700,2400" +st "Ports:" +blo "63000,2200" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "63000,10400,66800,11400" +st "Pre User:" +blo "63000,11200" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "65000,11400,85500,13000" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "courier,8,1" +) +xt "63000,11400,70100,12400" +st "Diagram Signals:" +blo "63000,12200" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "63000,400,67700,1400" +st "Post User:" +blo "63000,1200" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "63000,400,63000,400" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 26,0 +usingSuid 1 +emptyRow *182 (LEmptyRow +) +uid 1437,0 +optionalChildren [ +*183 (RefLabelRowHdr +) +*184 (TitleRowHdr +) +*185 (FilterRowHdr +) +*186 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*187 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*188 (GroupColHdr +tm "GroupColHdrMgr" +) +*189 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*190 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*191 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*192 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*193 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*194 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*195 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 1392,0 +) +*196 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 23 +suid 2,0 +) +) +uid 1394,0 +) +*197 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 3,0 +) +) +uid 1396,0 +) +*198 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 4,0 +) +) +uid 1398,0 +) +*199 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +) +uid 1400,0 +) +*200 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rd" +t "std_ulogic" +o 22 +suid 6,0 +) +) +uid 1402,0 +) +*201 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrH" +t "std_ulogic" +o 25 +suid 7,0 +) +) +uid 1404,0 +) +*202 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "wrL" +t "std_ulogic" +o 26 +suid 8,0 +) +) +uid 1406,0 +) +*203 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "cs" +t "std_ulogic" +o 13 +suid 9,0 +) +) +uid 1408,0 +) +*204 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ncs" +t "std_ulogic" +o 18 +suid 10,0 +) +) +uid 1410,0 +) +*205 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "nwr0" +t "std_ulogic" +o 20 +suid 11,0 +) +) +uid 1412,0 +) +*206 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "nwr1" +t "std_ulogic" +o 21 +suid 12,0 +) +) +uid 1414,0 +) +*207 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "nrd" +t "std_ulogic" +o 19 +suid 13,0 +) +) +uid 1416,0 +) +*208 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOut" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 17 +suid 14,0 +) +) +uid 1418,0 +) +*209 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataIn" +t "std_ulogic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 15 +suid 15,0 +) +) +uid 1420,0 +) +*210 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "addr" +t "unsigned" +b "(addressBitNb-1 DOWNTO 0)" +o 12 +suid 16,0 +) +) +uid 1422,0 +) +*211 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "data" +t "std_logic_vector" +b "(dataBitNb-1 DOWNTO 0)" +o 14 +suid 17,0 +) +) +uid 1424,0 +) +*212 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 18,0 +) +) +uid 1426,0 +) +*213 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "LED4" +t "std_ulogic" +o 11 +suid 19,0 +) +) +uid 1428,0 +) +*214 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO 16)" +o 24 +suid 20,0 +) +) +uid 1430,0 +) +*215 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 21,0 +) +) +uid 1432,0 +) +*216 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "dataOE" +t "std_ulogic" +o 16 +suid 22,0 +) +) +uid 1434,0 +) +*217 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 23,0 +) +) +uid 1509,0 +) +*218 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 24,0 +) +) +uid 1511,0 +) +*219 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 25,0 +) +) +uid 1513,0 +) +*220 (LeafLogPort +port (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 26,0 +) +) +uid 1515,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 1450,0 +optionalChildren [ +*221 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *222 (MRCItem +litem &182 +pos 3 +dimension 20 +) +uid 1452,0 +optionalChildren [ +*223 (MRCItem +litem &183 +pos 0 +dimension 20 +uid 1453,0 +) +*224 (MRCItem +litem &184 +pos 1 +dimension 23 +uid 1454,0 +) +*225 (MRCItem +litem &185 +pos 2 +hidden 1 +dimension 20 +uid 1455,0 +) +*226 (MRCItem +litem &195 +pos 0 +dimension 20 +uid 1393,0 +) +*227 (MRCItem +litem &196 +pos 10 +dimension 20 +uid 1395,0 +) +*228 (MRCItem +litem &197 +pos 1 +dimension 20 +uid 1397,0 +) +*229 (MRCItem +litem &198 +pos 2 +dimension 20 +uid 1399,0 +) +*230 (MRCItem +litem &199 +pos 3 +dimension 20 +uid 1401,0 +) +*231 (MRCItem +litem &200 +pos 11 +dimension 20 +uid 1403,0 +) +*232 (MRCItem +litem &201 +pos 12 +dimension 20 +uid 1405,0 +) +*233 (MRCItem +litem &202 +pos 13 +dimension 20 +uid 1407,0 +) +*234 (MRCItem +litem &203 +pos 14 +dimension 20 +uid 1409,0 +) +*235 (MRCItem +litem &204 +pos 15 +dimension 20 +uid 1411,0 +) +*236 (MRCItem +litem &205 +pos 16 +dimension 20 +uid 1413,0 +) +*237 (MRCItem +litem &206 +pos 17 +dimension 20 +uid 1415,0 +) +*238 (MRCItem +litem &207 +pos 18 +dimension 20 +uid 1417,0 +) +*239 (MRCItem +litem &208 +pos 19 +dimension 20 +uid 1419,0 +) +*240 (MRCItem +litem &209 +pos 20 +dimension 20 +uid 1421,0 +) +*241 (MRCItem +litem &210 +pos 21 +dimension 20 +uid 1423,0 +) +*242 (MRCItem +litem &211 +pos 22 +dimension 20 +uid 1425,0 +) +*243 (MRCItem +litem &212 +pos 7 +dimension 20 +uid 1427,0 +) +*244 (MRCItem +litem &213 +pos 23 +dimension 20 +uid 1429,0 +) +*245 (MRCItem +litem &214 +pos 24 +dimension 20 +uid 1431,0 +) +*246 (MRCItem +litem &215 +pos 4 +dimension 20 +uid 1433,0 +) +*247 (MRCItem +litem &216 +pos 25 +dimension 20 +uid 1435,0 +) +*248 (MRCItem +litem &217 +pos 5 +dimension 20 +uid 1508,0 +) +*249 (MRCItem +litem &218 +pos 6 +dimension 20 +uid 1510,0 +) +*250 (MRCItem +litem &219 +pos 8 +dimension 20 +uid 1512,0 +) +*251 (MRCItem +litem &220 +pos 9 +dimension 20 +uid 1514,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 1456,0 +optionalChildren [ +*252 (MRCItem +litem &186 +pos 0 +dimension 20 +uid 1457,0 +) +*253 (MRCItem +litem &188 +pos 1 +dimension 50 +uid 1458,0 +) +*254 (MRCItem +litem &189 +pos 2 +dimension 100 +uid 1459,0 +) +*255 (MRCItem +litem &190 +pos 3 +dimension 50 +uid 1460,0 +) +*256 (MRCItem +litem &191 +pos 4 +dimension 100 +uid 1461,0 +) +*257 (MRCItem +litem &192 +pos 5 +dimension 100 +uid 1462,0 +) +*258 (MRCItem +litem &193 +pos 6 +dimension 50 +uid 1463,0 +) +*259 (MRCItem +litem &194 +pos 7 +dimension 80 +uid 1464,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 1451,0 +vaOverrides [ +] +) +] +) +uid 1436,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *260 (LEmptyRow +) +uid 1466,0 +optionalChildren [ +*261 (RefLabelRowHdr +) +*262 (TitleRowHdr +) +*263 (FilterRowHdr +) +*264 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*265 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*266 (GroupColHdr +tm "GroupColHdrMgr" +) +*267 (NameColHdr +tm "GenericNameColHdrMgr" +) +*268 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*269 (InitColHdr +tm "GenericValueColHdrMgr" +) +*270 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*271 (EolColHdr +tm "GenericEolColHdrMgr" +) +*272 (LogGeneric +generic (GiElement +name "memDataBitNb" +type "positive" +value "16" +) +uid 1573,0 +) +*273 (LogGeneric +generic (GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +uid 1575,0 +) +] +) +pdm (PhysicalDM +uid 1478,0 +optionalChildren [ +*274 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *275 (MRCItem +litem &260 +pos 3 +dimension 20 +) +uid 1480,0 +optionalChildren [ +*276 (MRCItem +litem &261 +pos 0 +dimension 20 +uid 1481,0 +) +*277 (MRCItem +litem &262 +pos 1 +dimension 23 +uid 1482,0 +) +*278 (MRCItem +litem &263 +pos 2 +hidden 1 +dimension 20 +uid 1483,0 +) +*279 (MRCItem +litem &272 +pos 1 +dimension 20 +uid 1572,0 +) +*280 (MRCItem +litem &273 +pos 0 +dimension 20 +uid 1574,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 1484,0 +optionalChildren [ +*281 (MRCItem +litem &264 +pos 0 +dimension 20 +uid 1485,0 +) +*282 (MRCItem +litem &266 +pos 1 +dimension 50 +uid 1486,0 +) +*283 (MRCItem +litem &267 +pos 2 +dimension 100 +uid 1487,0 +) +*284 (MRCItem +litem &268 +pos 3 +dimension 100 +uid 1488,0 +) +*285 (MRCItem +litem &269 +pos 4 +dimension 50 +uid 1489,0 +) +*286 (MRCItem +litem &270 +pos 5 +dimension 50 +uid 1490,0 +) +*287 (MRCItem +litem &271 +pos 6 +dimension 80 +uid 1491,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 1479,0 +vaOverrides [ +] +) +] +) +uid 1465,0 +type 1 +) +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/symbol.sb new file mode 100644 index 0000000..3629eac --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs2/symbol.sb @@ -0,0 +1,1994 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2041,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 241,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 242,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 12,0 +) +) +uid 245,0 +) +*4 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 3,0 +) +) +uid 246,0 +) +*5 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 4,0 +) +) +uid 248,0 +) +*6 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 13,0 +) +) +uid 249,0 +) +*7 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 256,0 +) +*8 (RefLabelRowHdr +) +*9 (TitleRowHdr +) +*10 (FilterRowHdr +) +*11 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*12 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*13 (GroupColHdr +tm "GroupColHdrMgr" +) +*14 (NameColHdr +tm "NameColHdrMgr" +) +*15 (ModeColHdr +tm "ModeColHdrMgr" +) +*16 (TypeColHdr +tm "TypeColHdrMgr" +) +*17 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*18 (InitColHdr +tm "InitColHdrMgr" +) +*19 (EolColHdr +tm "EolColHdrMgr" +) +*20 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 2019,0 +) +) +uid 424,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 2020,0 +) +) +uid 426,0 +) +*22 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 2040,0 +) +) +uid 824,0 +) +*23 (LogPort +port (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 2041,0 +) +) +uid 826,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 257,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 25 +dimension 20 +) +uid 170,0 +optionalChildren [ +*26 (MRCItem +litem &8 +pos 0 +dimension 20 +uid 173,0 +) +*27 (MRCItem +litem &9 +pos 1 +dimension 23 +uid 175,0 +) +*28 (MRCItem +litem &10 +pos 2 +hidden 1 +dimension 20 +uid 177,0 +) +*29 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 196,0 +) +*30 (MRCItem +litem &3 +pos 7 +dimension 20 +uid 199,0 +) +*31 (MRCItem +litem &4 +pos 2 +dimension 20 +uid 200,0 +) +*32 (MRCItem +litem &5 +pos 3 +dimension 20 +uid 202,0 +) +*33 (MRCItem +litem &6 +pos 4 +dimension 20 +uid 203,0 +) +*34 (MRCItem +litem &7 +pos 1 +dimension 20 +uid 210,0 +) +*35 (MRCItem +litem &20 +pos 5 +dimension 20 +uid 423,0 +) +*36 (MRCItem +litem &21 +pos 6 +dimension 20 +uid 425,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 823,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 825,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 171,0 +optionalChildren [ +*39 (MRCItem +litem &11 +pos 0 +dimension 20 +uid 179,0 +) +*40 (MRCItem +litem &13 +pos 1 +dimension 50 +uid 183,0 +) +*41 (MRCItem +litem &14 +pos 2 +dimension 100 +uid 185,0 +) +*42 (MRCItem +litem &15 +pos 3 +dimension 50 +uid 187,0 +) +*43 (MRCItem +litem &16 +pos 4 +dimension 100 +uid 189,0 +) +*44 (MRCItem +litem &17 +pos 5 +dimension 100 +uid 191,0 +) +*45 (MRCItem +litem &18 +pos 6 +dimension 50 +uid 193,0 +) +*46 (MRCItem +litem &19 +pos 7 +dimension 80 +uid 195,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 169,0 +vaOverrides [ +] +) +] +) +uid 240,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 259,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +*59 (LogGeneric +generic (GiElement +name "memDataBitNb" +type "positive" +value "16" +) +uid 236,0 +) +*60 (LogGeneric +generic (GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +uid 237,0 +) +] +) +pdm (PhysicalDM +uid 260,0 +optionalChildren [ +*61 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *62 (MRCItem +litem &47 +pos 2 +dimension 20 +) +uid 212,0 +optionalChildren [ +*63 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 215,0 +) +*64 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 217,0 +) +*65 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 219,0 +) +*66 (MRCItem +litem &59 +pos 1 +dimension 20 +uid 238,0 +) +*67 (MRCItem +litem &60 +pos 0 +dimension 20 +uid 239,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 213,0 +optionalChildren [ +*68 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 221,0 +) +*69 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 225,0 +) +*70 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 227,0 +) +*71 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 229,0 +) +*72 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 231,0 +) +*73 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 233,0 +) +*74 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 235,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 211,0 +vaOverrides [ +] +) +] +) +uid 258,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer" +) +(vvPair +variable "date" +value "04/15/19" +) +(vvPair +variable "day" +value "Mon" +) +(vvPair +variable "day_long" +value "Monday" +) +(vvPair +variable "dd" +value "15" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "FPGA_beamer" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "04/15/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "14:26:55" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "04" +) +(vvPair +variable "module_name" +value "FPGA_beamer" +) +(vvPair +variable "month" +value "Apr" +) +(vvPair +variable "month_long" +value "April" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/@f@p@g@a_beamer/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/SystemOnChip/Prefs/../Board/hds/FPGA_beamer/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "systemOnChip" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_ADMS" +value "" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "14:26:55" +) +(vvPair +variable "unit" +value "FPGA_beamer" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*75 (SymbolBody +uid 8,0 +optionalChildren [ +*76 (CptPort +uid 52,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 72,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,25625,34000,26375" +) +tg (CPTG +uid 54,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 55,0 +va (VaSet +font "courier,9,0" +) +xt "35000,25400,38400,26600" +st "clock" +blo "35000,26400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 56,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11000,19500,11900" +st "clock : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 1 +suid 1,0 +) +) +) +*77 (CptPort +uid 83,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 84,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,27625,34000,28375" +) +tg (CPTG +uid 85,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 86,0 +va (VaSet +font "courier,9,0" +) +xt "35000,27400,39700,28600" +st "reset_N" +blo "35000,28400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 87,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11900,19500,12800" +st "reset_N : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*78 (CptPort +uid 93,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 94,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,9625,52750,10375" +) +tg (CPTG +uid 95,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 96,0 +va (VaSet +font "courier,9,0" +) +xt "47800,9400,51000,10600" +st "xOut" +ju 2 +blo "51000,10400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 97,0 +va (VaSet +font "courier,8,0" +) +xt "2000,18200,19500,19100" +st "xOut : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 3,0 +) +) +) +*79 (CptPort +uid 98,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 99,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,11625,52750,12375" +) +tg (CPTG +uid 100,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 101,0 +va (VaSet +font "courier,9,0" +) +xt "47800,11400,51000,12600" +st "yOut" +ju 2 +blo "51000,12400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 102,0 +va (VaSet +font "courier,8,0" +) +xt "2000,19100,18500,20000" +st "yOut : OUT std_ulogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 4,0 +) +) +) +*80 (CptPort +uid 138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 139,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,19625,52750,20375" +) +tg (CPTG +uid 140,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 141,0 +va (VaSet +font "courier,9,0" +) +xt "47500,19400,51000,20600" +st "LED2" +ju 2 +blo "51000,20400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 142,0 +va (VaSet +font "courier,8,0" +) +xt "2000,15500,19500,16400" +st "LED2 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 12,0 +) +) +) +*81 (CptPort +uid 143,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 148,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,23625,52750,24375" +) +tg (CPTG +uid 145,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 146,0 +va (VaSet +font "courier,9,0" +) +xt "47500,23400,51000,24600" +st "spare" +ju 2 +blo "51000,24400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 147,0 +va (VaSet +font "courier,8,0" +) +xt "2000,16400,27500,17300" +st "spare : OUT std_ulogic_vector (1 TO 17) ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 7 +suid 13,0 +) +) +) +*82 (CptPort +uid 427,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 428,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,28625,34000,29375" +) +tg (CPTG +uid 429,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 430,0 +va (VaSet +font "courier,9,0" +) +xt "35000,28400,42700,29600" +st "selSinCos_n" +blo "35000,29400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 431,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13700,19500,14600" +st "selSinCos_n : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 2019,0 +) +) +) +*83 (CptPort +uid 432,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 433,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,26625,52750,27375" +) +tg (CPTG +uid 434,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 435,0 +va (VaSet +font "courier,9,0" +) +xt "47500,26400,51000,27600" +st "LED1" +ju 2 +blo "51000,27400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 436,0 +va (VaSet +font "courier,8,0" +) +xt "2000,14600,19500,15500" +st "LED1 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 2020,0 +) +) +) +*84 (CptPort +uid 827,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 828,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "52000,27625,52750,28375" +) +tg (CPTG +uid 829,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 830,0 +va (VaSet +font "courier,9,0" +) +xt "48000,27400,51000,28600" +st "txd0" +ju 2 +blo "51000,28400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 831,0 +va (VaSet +font "courier,8,0" +) +xt "2000,17300,19500,18200" +st "txd0 : OUT std_ulogic ;" +) +thePort (LogicalPort +m 1 +decl (Decl +n "txd0" +t "std_ulogic" +o 8 +suid 2040,0 +) +) +) +*85 (CptPort +uid 832,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 833,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "33250,29625,34000,30375" +) +tg (CPTG +uid 834,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 835,0 +va (VaSet +font "courier,9,0" +) +xt "35000,29400,38000,30600" +st "rxd0" +blo "35000,30400" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 836,0 +va (VaSet +font "courier,8,0" +) +xt "2000,12800,19500,13700" +st "rxd0 : IN std_ulogic ;" +) +thePort (LogicalPort +decl (Decl +n "rxd0" +t "std_ulogic" +o 3 +suid 2041,0 +) +) +) +] +shape (Rectangle +uid 81,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "34000,6000,52000,40000" +) +oxt "15000,6000,35000,26000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "courier,9,1" +) +xt "34600,29800,37100,30700" +st "Board" +blo "34600,30500" +) +second (Text +uid 12,0 +va (VaSet +font "courier,9,1" +) +xt "34600,30700,40600,31600" +st "FPGA_beamer" +blo "34600,31400" +) +) +gi *86 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "courier,8,0" +) +xt "34000,33600,49000,37200" +st "Generic Declarations + +memAddressBitNb positive 24 +memDataBitNb positive 16 +" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +(GiElement +name "memAddressBitNb" +type "positive" +value "24" +) +(GiElement +name "memDataBitNb" +type "positive" +value "16" +) +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sTC 0 +) +portVis (PortSigDisplay +sTC 0 +sF 0 +) +) +*87 (Grouping +uid 16,0 +optionalChildren [ +*88 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,48000,53000,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*89 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,44000,56800,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*90 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,46000,52400,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +*91 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,46000,35800,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*92 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "53200,45200,66400,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +) +*93 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "57200,44000,72800,45000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +) +*94 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "38000,44500,47000,45500" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +) +*95 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,47000,35200,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*96 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "32200,48000,35800,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +) +*97 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +) +xt "36200,47000,51200,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *98 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*99 (Text +uid 49,0 +va (VaSet +font "courier,8,1" +) +xt "0,0,5400,1000" +st "Package List" +blo "0,800" +) +*100 (MLText +uid 50,0 +va (VaSet +) +xt "0,1000,18600,4000" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "20,35,1257,877" +viewArea "-1081,-1081,74584,50948" +cachedDiagramExtent "0,0,73000,49000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +xMargin 49 +yMargin 49 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "Letter (8.5\" x 11\")" +windowsPaperName "A4" +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,9,0" +) +xt "200,200,2200,1100" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,1" +) +xt "1000,1000,4400,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,35000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "courier,9,1" +) +xt "22600,14800,27400,16000" +st "" +blo "22600,15800" +) +second (Text +va (VaSet +font "courier,9,1" +) +xt "22600,16000,25900,17200" +st "" +blo "22600,17000" +) +) +gi *101 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,12000,0,12000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *102 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,8,1" +) +xt "0,9000,5400,10000" +st "Declarations" +blo "0,9800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "courier,8,1" +) +xt "0,10000,2700,11000" +st "Ports:" +blo "0,10800" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "courier,8,1" +) +xt "0,20000,2500,20900" +st "User:" +blo "0,20700" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "courier,8,1" +) +xt "0,9000,5800,10000" +st "Internal User:" +blo "0,9800" +) +externalText (MLText +uid 5,0 +va (VaSet +font "courier,8,0" +) +xt "2000,20900,2000,20900" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "0,9000,0,9000" +tm "SyDeclarativeTextMgr" +) +) +lastUid 882,0 +okToSyncOnLoad 1 +OkToSyncGenericsOnLoad 1 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/struct.bd b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/struct.bd new file mode 100644 index 0000000..f2e06af --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/struct.bd @@ -0,0 +1,6806 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +instances [ +(Instance +name "I2" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 133,0 +) +(Instance +name "I8" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 162,0 +) +(Instance +name "I12" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 188,0 +) +(Instance +name "I3" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 214,0 +) +(Instance +name "I_top" +duLibraryName "SystemOnChip" +duName "beamerSoc" +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +mwi 0 +uid 234,0 +) +(Instance +name "I9" +duLibraryName "Board" +duName "DFF" +elements [ +] +mwi 0 +uid 296,0 +) +(Instance +name "I7" +duLibraryName "Board" +duName "inverterIn" +elements [ +] +mwi 0 +uid 340,0 +) +(Instance +name "I_pll" +duLibraryName "Lattice" +duName "pll" +elements [ +] +mwi 0 +uid 653,0 +) +] +embeddedInstances [ +(EmbeddedInstance +name "eb4" +number "4" +) +(EmbeddedInstance +name "eb3" +number "3" +) +(EmbeddedInstance +name "eb5" +number "5" +) +] +libraryRefs [ +"ieee" +] +) +version "32.1" +appVersion "2019.2 (Build 5)" +noEmbeddedEditors 1 +model (BlockDiag +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3\\struct.bd.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3\\struct.bd.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "struct" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\SoC_ebs3" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "entity_name" +value "SoC_ebs3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "struct.bd" +) +(vvPair +variable "f_logical" +value "struct.bd" +) +(vvPair +variable "f_noext" +value "struct" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "10:21:25" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "SoC_ebs3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3\\struct.bd" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\SoC_ebs3\\struct.bd" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "bd" +) +(vvPair +variable "this_file" +value "struct" +) +(vvPair +variable "this_file_logical" +value "struct" +) +(vvPair +variable "time" +value "10:21:25" +) +(vvPair +variable "unit" +value "SoC_ebs3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "struct" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 52,0 +optionalChildren [ +*1 (Grouping +uid 9,0 +optionalChildren [ +*2 (CommentText +uid 11,0 +shape (Rectangle +uid 12,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,4000,53000,5000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 13,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,4000,47600,5000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*3 (CommentText +uid 14,0 +shape (Rectangle +uid 15,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,0,57000,1000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 16,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,0,56200,1000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*4 (CommentText +uid 17,0 +shape (Rectangle +uid 18,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,2000,53000,3000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 19,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,2000,46200,3000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*5 (CommentText +uid 20,0 +shape (Rectangle +uid 21,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,2000,36000,3000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 22,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,2000,34300,3000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*6 (CommentText +uid 23,0 +shape (Rectangle +uid 24,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,1000,73000,5000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 25,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,1200,62600,2200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*7 (CommentText +uid 26,0 +shape (Rectangle +uid 27,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,0,73000,1000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 28,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,0,58800,1000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*8 (CommentText +uid 29,0 +shape (Rectangle +uid 30,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,0,53000,2000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 31,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,400,47650,1600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*9 (CommentText +uid 32,0 +shape (Rectangle +uid 33,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,3000,36000,4000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 34,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,3000,34300,4000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*10 (CommentText +uid 35,0 +shape (Rectangle +uid 36,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,4000,36000,5000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 37,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,4000,34900,5000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*11 (CommentText +uid 38,0 +shape (Rectangle +uid 39,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,3000,53000,4000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 40,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,3000,45200,4000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 10,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,0,73000,5000" +) +oxt "14000,66000,55000,71000" +) +*12 (PortIoIn +uid 109,0 +shape (CompositeShape +uid 110,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 111,0 +sl 0 +ro 270 +xt "37000,72625,38500,73375" +) +(Line +uid 112,0 +sl 0 +ro 270 +xt "38500,73000,39000,73000" +pts [ +"38500,73000" +"39000,73000" +] +) +] +) +tg (WTG +uid 113,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 114,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "30200,72300,36000,73700" +st "reset_N" +ju 2 +blo "36000,73500" +tm "WireNameMgr" +) +) +) +*13 (PortIoOut +uid 115,0 +shape (CompositeShape +uid 116,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 117,0 +sl 0 +ro 90 +xt "37000,26625,38500,27375" +) +(Line +uid 118,0 +sl 0 +ro 90 +xt "38500,27000,39000,27000" +pts [ +"39000,27000" +"38500,27000" +] +) +] +) +tg (WTG +uid 119,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 120,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "32900,26300,36000,27700" +st "TxD" +ju 2 +blo "36000,27500" +tm "WireNameMgr" +) +) +) +*14 (PortIoIn +uid 121,0 +shape (CompositeShape +uid 122,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 123,0 +sl 0 +ro 270 +xt "37000,30625,38500,31375" +) +(Line +uid 124,0 +sl 0 +ro 270 +xt "38500,31000,39000,31000" +pts [ +"38500,31000" +"39000,31000" +] +) +] +) +tg (WTG +uid 125,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 126,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "32800,30300,36000,31700" +st "RxD" +ju 2 +blo "36000,31500" +tm "WireNameMgr" +) +) +) +*15 (PortIoIn +uid 127,0 +shape (CompositeShape +uid 128,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 129,0 +sl 0 +ro 270 +xt "37000,47625,38500,48375" +) +(Line +uid 130,0 +sl 0 +ro 270 +xt "38500,48000,39000,48000" +pts [ +"38500,48000" +"39000,48000" +] +) +] +) +tg (WTG +uid 131,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 132,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "32200,47300,36000,48700" +st "clock" +ju 2 +blo "36000,48500" +tm "WireNameMgr" +) +) +) +*16 (SaComponent +uid 133,0 +optionalChildren [ +*17 (CptPort +uid 142,0 +optionalChildren [ +*18 (Circle +uid 147,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "43092,72546,44000,73454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 143,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "42342,72625,43092,73375" +) +tg (CPTG +uid 144,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 145,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "44000,72500,46700,73900" +st "in1" +blo "44000,73700" +) +s (Text +uid 146,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "44000,73900,44000,73900" +blo "44000,73900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*19 (CptPort +uid 148,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 149,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "49000,72625,49750,73375" +) +tg (CPTG +uid 150,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 151,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "45050,72500,48750,73900" +st "out1" +ju 2 +blo "48750,73700" +) +s (Text +uid 152,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "48750,73900,48750,73900" +ju 2 +blo "48750,73900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 134,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "44000,70000,49000,76000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 135,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*20 (Text +uid 136,0 +va (VaSet +isHidden 1 +) +xt "44910,68700,48510,69900" +st "Board" +blo "44910,69700" +tm "BdLibraryNameMgr" +) +*21 (Text +uid 137,0 +va (VaSet +isHidden 1 +) +xt "44910,69700,51310,70900" +st "inverterIn" +blo "44910,70700" +tm "CptNameMgr" +) +*22 (Text +uid 138,0 +va (VaSet +) +xt "44910,69700,46810,70900" +st "I2" +blo "44910,70700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 139,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 140,0 +text (MLText +uid 141,0 +va (VaSet +) +xt "21000,66000,21000,66000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*23 (HdlText +uid 153,0 +optionalChildren [ +*24 (EmbeddedText +uid 158,0 +commentText (CommentText +uid 159,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 160,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "44000,64000,50000,66000" +) +oxt "0,0,18000,5000" +text (MLText +uid 161,0 +va (VaSet +) +xt "44200,64200,49700,65400" +st " +logic1 <= '1'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 154,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "43000,63000,51000,67000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 155,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*25 (Text +uid 156,0 +va (VaSet +) +xt "43400,67000,46000,68200" +st "eb4" +blo "43400,68000" +tm "HdlTextNameMgr" +) +*26 (Text +uid 157,0 +va (VaSet +) +xt "43400,68000,44800,69200" +st "4" +blo "43400,69000" +tm "HdlTextNumberMgr" +) +] +) +) +*27 (SaComponent +uid 162,0 +optionalChildren [ +*28 (CptPort +uid 171,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 172,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55250,30625,56000,31375" +) +tg (CPTG +uid 173,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 174,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,30300,58700,31700" +st "D" +blo "57000,31500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*29 (CptPort +uid 175,0 +optionalChildren [ +*30 (FFT +pts [ +"56750,35000" +"56000,35375" +"56000,34625" +] +uid 179,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,34625,56750,35375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 176,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55250,34625,56000,35375" +) +tg (CPTG +uid 177,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 178,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,34400,60200,35800" +st "CLK" +blo "57000,35600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*31 (CptPort +uid 180,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 181,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "58625,37000,59375,37750" +) +tg (CPTG +uid 182,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 183,0 +va (VaSet +font "Verdana,12,0" +) +xt "58000,35600,61200,37000" +st "CLR" +blo "58000,36800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*32 (CptPort +uid 184,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 185,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "62000,30625,62750,31375" +) +tg (CPTG +uid 186,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 187,0 +va (VaSet +font "Verdana,12,0" +) +xt "59200,30300,61000,31700" +st "Q" +ju 2 +blo "61000,31500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 163,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "56000,29000,62000,37000" +) +showPorts 0 +oxt "23000,3000,29000,11000" +ttg (MlTextGroup +uid 164,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*33 (Text +uid 165,0 +va (VaSet +) +xt "60600,36700,64200,37900" +st "Board" +blo "60600,37700" +tm "BdLibraryNameMgr" +) +*34 (Text +uid 166,0 +va (VaSet +) +xt "60600,37700,63300,38900" +st "DFF" +blo "60600,38700" +tm "CptNameMgr" +) +*35 (Text +uid 167,0 +va (VaSet +) +xt "60600,38700,62500,39900" +st "I8" +blo "60600,39700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 168,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 169,0 +text (MLText +uid 170,0 +va (VaSet +) +xt "63000,36400,63000,36400" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*36 (SaComponent +uid 188,0 +optionalChildren [ +*37 (CptPort +uid 197,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 198,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55250,64625,56000,65375" +) +tg (CPTG +uid 199,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 200,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,64300,58700,65700" +st "D" +blo "57000,65500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*38 (CptPort +uid 201,0 +optionalChildren [ +*39 (FFT +pts [ +"56750,69000" +"56000,69375" +"56000,68625" +] +uid 205,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "56000,68625,56750,69375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 202,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "55250,68625,56000,69375" +) +tg (CPTG +uid 203,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 204,0 +va (VaSet +font "Verdana,12,0" +) +xt "57000,68400,60200,69800" +st "CLK" +blo "57000,69600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*40 (CptPort +uid 206,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 207,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "58625,71000,59375,71750" +) +tg (CPTG +uid 208,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 209,0 +va (VaSet +font "Verdana,12,0" +) +xt "58000,69600,61200,71000" +st "CLR" +blo "58000,70800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*41 (CptPort +uid 210,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 211,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "62000,64625,62750,65375" +) +tg (CPTG +uid 212,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 213,0 +va (VaSet +font "Verdana,12,0" +) +xt "59200,64300,61000,65700" +st "Q" +ju 2 +blo "61000,65500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 189,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "56000,63000,62000,71000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 190,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*42 (Text +uid 191,0 +va (VaSet +) +xt "62600,68700,66200,69900" +st "Board" +blo "62600,69700" +tm "BdLibraryNameMgr" +) +*43 (Text +uid 192,0 +va (VaSet +) +xt "62600,69700,65300,70900" +st "DFF" +blo "62600,70700" +tm "CptNameMgr" +) +*44 (Text +uid 193,0 +va (VaSet +) +xt "62600,70700,65200,71900" +st "I12" +blo "62600,71700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 194,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 195,0 +text (MLText +uid 196,0 +va (VaSet +) +xt "33000,60000,33000,60000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*45 (SaComponent +uid 214,0 +optionalChildren [ +*46 (CptPort +uid 223,0 +optionalChildren [ +*47 (Circle +uid 228,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "67092,64546,68000,65454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 224,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "66342,64625,67092,65375" +) +tg (CPTG +uid 225,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 226,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "68000,64500,70700,65900" +st "in1" +blo "68000,65700" +) +s (Text +uid 227,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "68000,65900,68000,65900" +blo "68000,65900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*48 (CptPort +uid 229,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 230,0 +ro 90 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "73000,64625,73750,65375" +) +tg (CPTG +uid 231,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 232,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "69050,64500,72750,65900" +st "out1" +ju 2 +blo "72750,65700" +) +s (Text +uid 233,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "72750,65900,72750,65900" +ju 2 +blo "72750,65900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 215,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "68000,62000,73000,68000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 216,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*49 (Text +uid 217,0 +va (VaSet +isHidden 1 +) +xt "68910,60700,72510,61900" +st "Board" +blo "68910,61700" +tm "BdLibraryNameMgr" +) +*50 (Text +uid 218,0 +va (VaSet +isHidden 1 +) +xt "68910,61700,75310,62900" +st "inverterIn" +blo "68910,62700" +tm "CptNameMgr" +) +*51 (Text +uid 219,0 +va (VaSet +) +xt "68910,61700,70810,62900" +st "I3" +blo "68910,62700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 220,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 221,0 +text (MLText +uid 222,0 +va (VaSet +) +xt "45000,58000,45000,58000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*52 (SaComponent +uid 234,0 +optionalChildren [ +*53 (CptPort +uid 243,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 244,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78250,40625,79000,41375" +) +tg (CPTG +uid 245,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 246,0 +va (VaSet +) +xt "80000,40400,83400,41600" +st "clock" +blo "80000,41400" +) +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +) +) +) +*54 (CptPort +uid 247,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 248,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95000,36625,95750,37375" +) +tg (CPTG +uid 249,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 250,0 +va (VaSet +) +xt "91001,36400,94001,37600" +st "outX" +ju 2 +blo "94001,37400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outX" +t "std_ulogic" +o 3 +) +) +) +*55 (CptPort +uid 251,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 252,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95000,38625,95750,39375" +) +tg (CPTG +uid 253,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 254,0 +va (VaSet +) +xt "91001,38400,94001,39600" +st "outY" +ju 2 +blo "94001,39400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "outY" +t "std_ulogic" +o 4 +) +) +) +*56 (CptPort +uid 255,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 256,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95000,40625,95750,41375" +) +tg (CPTG +uid 257,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 258,0 +va (VaSet +) +xt "88201,40400,94001,41600" +st "selSinCos" +ju 2 +blo "94001,41400" +) +) +thePort (LogicalPort +decl (Decl +n "selSinCos" +t "std_ulogic" +o 5 +) +) +) +*57 (CptPort +uid 259,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 260,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78250,42625,79000,43375" +) +tg (CPTG +uid 261,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 262,0 +va (VaSet +) +xt "80000,42400,83300,43600" +st "reset" +blo "80000,43400" +) +) +thePort (LogicalPort +decl (Decl +n "reset" +t "std_ulogic" +o 6 +) +) +) +*58 (CptPort +uid 263,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 264,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78250,28625,79000,29375" +) +tg (CPTG +uid 265,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 266,0 +va (VaSet +) +xt "80000,28400,82800,29600" +st "TxD" +blo "80000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 1 +) +) +) +*59 (CptPort +uid 267,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 268,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "78250,30625,79000,31375" +) +tg (CPTG +uid 269,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 270,0 +va (VaSet +) +xt "80000,30400,82800,31600" +st "RxD" +blo "80000,31400" +) +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 2 +) +) +) +*60 (CptPort +uid 271,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 272,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95000,28625,95750,29375" +) +tg (CPTG +uid 273,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 274,0 +va (VaSet +) +xt "91100,28400,94000,29600" +st "ioEn" +ju 2 +blo "94000,29400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioEn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 8 +) +) +) +*61 (CptPort +uid 275,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 276,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95000,30625,95750,31375" +) +tg (CPTG +uid 277,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 278,0 +va (VaSet +) +xt "90500,30400,94000,31600" +st "ioOut" +ju 2 +blo "94000,31400" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "ioOut" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 9 +) +) +) +*62 (CptPort +uid 279,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 280,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "95000,32625,95750,33375" +) +tg (CPTG +uid 281,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 282,0 +va (VaSet +) +xt "91300,32400,94000,33600" +st "ioIn" +ju 2 +blo "94000,33400" +) +) +thePort (LogicalPort +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 10 +) +) +) +*63 (CptPort +uid 283,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 284,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "86625,24250,87375,25000" +) +tg (CPTG +uid 285,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 286,0 +va (VaSet +) +xt "85000,26000,89600,27200" +st "testOut" +ju 2 +blo "89600,27000" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 11 +) +) +) +] +shape (Rectangle +uid 235,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +bg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "79000,25000,95000,45000" +) +oxt "36000,10000,52000,30000" +ttg (MlTextGroup +uid 236,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*64 (Text +uid 237,0 +va (VaSet +font "Verdana,9,1" +) +xt "79600,44800,88000,46000" +st "SystemOnChip" +blo "79600,45800" +tm "BdLibraryNameMgr" +) +*65 (Text +uid 238,0 +va (VaSet +font "Verdana,9,1" +) +xt "79600,45700,85600,46900" +st "beamerSoc" +blo "79600,46700" +tm "CptNameMgr" +) +*66 (Text +uid 239,0 +va (VaSet +font "Verdana,9,1" +) +xt "79600,46600,83000,47800" +st "I_top" +blo "79600,47600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 240,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 241,0 +text (MLText +uid 242,0 +va (VaSet +font "Verdana,8,0" +) +xt "79000,48600,104800,51600" +st "ioNb = ioNb ( positive ) +testOutBitNb = testOutBitNb ( positive ) +patternAddressBitNb = patternAddressBitNb ( positive ) " +) +header "" +) +elements [ +(GiElement +name "ioNb" +type "positive" +value "ioNb" +) +(GiElement +name "testOutBitNb" +type "positive" +value "testOutBitNb" +) +(GiElement +name "patternAddressBitNb" +type "positive" +value "patternAddressBitNb" +) +] +) +ordering 1 +portVis (PortSigDisplay +sTC 0 +) +archFileType "UNKNOWN" +) +*67 (HdlText +uid 287,0 +optionalChildren [ +*68 (EmbeddedText +uid 292,0 +commentText (CommentText +uid 293,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 294,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "91000,2000,107000,8000" +) +oxt "0,0,18000,5000" +text (MLText +uid 295,0 +va (VaSet +) +xt "91200,2200,105900,8200" +st " +LED1 <= testOut(1); +LED2 <= testOut(2); +spare(testOut'range) <= testOut; +spare(testOut'high+1 to spare'high) <= (others => '0'); +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 6000 +visibleWidth 16000 +) +) +) +] +shape (Rectangle +uid 288,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "91000,1000,107000,9000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 289,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*69 (Text +uid 290,0 +va (VaSet +) +xt "91400,9000,94000,10200" +st "eb3" +blo "91400,10000" +tm "HdlTextNameMgr" +) +*70 (Text +uid 291,0 +va (VaSet +) +xt "91400,10000,92800,11200" +st "3" +blo "91400,11000" +tm "HdlTextNumberMgr" +) +] +) +) +*71 (SaComponent +uid 296,0 +optionalChildren [ +*72 (CptPort +uid 305,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 306,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "110000,42625,110750,43375" +) +tg (CPTG +uid 307,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 308,0 +va (VaSet +font "Verdana,12,0" +) +xt "107300,42300,109000,43700" +st "D" +ju 2 +blo "109000,43500" +) +) +thePort (LogicalPort +decl (Decl +n "D" +t "std_uLogic" +o 3 +) +) +) +*73 (CptPort +uid 309,0 +optionalChildren [ +*74 (FFT +pts [ +"109250,47000" +"110000,46625" +"110000,47375" +] +uid 313,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "109250,46625,110000,47375" +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 310,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "110000,46625,110750,47375" +) +tg (CPTG +uid 311,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 312,0 +va (VaSet +font "Verdana,12,0" +) +xt "105800,46400,109000,47800" +st "CLK" +ju 2 +blo "109000,47600" +) +) +thePort (LogicalPort +decl (Decl +n "CLK" +t "std_uLogic" +o 1 +) +) +) +*75 (CptPort +uid 314,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 315,0 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "106625,49000,107375,49750" +) +tg (CPTG +uid 316,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 317,0 +va (VaSet +font "Verdana,12,0" +) +xt "104800,47600,108000,49000" +st "CLR" +blo "104800,48800" +) +) +thePort (LogicalPort +decl (Decl +n "CLR" +t "std_uLogic" +o 2 +) +) +) +*76 (CptPort +uid 318,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 319,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "103250,42625,104000,43375" +) +tg (CPTG +uid 320,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 321,0 +va (VaSet +font "Verdana,12,0" +) +xt "105000,42300,106800,43700" +st "Q" +blo "105000,43500" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "Q" +t "std_uLogic" +o 4 +) +) +) +] +shape (Rectangle +uid 297,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "104000,41000,110000,49000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 298,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*77 (Text +uid 299,0 +va (VaSet +) +xt "110600,46700,114200,47900" +st "Board" +blo "110600,47700" +tm "BdLibraryNameMgr" +) +*78 (Text +uid 300,0 +va (VaSet +) +xt "110600,47700,113300,48900" +st "DFF" +blo "110600,48700" +tm "CptNameMgr" +) +*79 (Text +uid 301,0 +va (VaSet +) +xt "110600,48700,112500,49900" +st "I9" +blo "110600,49700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 302,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 303,0 +text (MLText +uid 304,0 +va (VaSet +) +xt "81000,38000,81000,38000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*80 (PortIoOut +uid 322,0 +shape (CompositeShape +uid 323,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 324,0 +sl 0 +ro 270 +xt "115500,2625,117000,3375" +) +(Line +uid 325,0 +sl 0 +ro 270 +xt "115000,3000,115500,3000" +pts [ +"115000,3000" +"115500,3000" +] +) +] +) +tg (WTG +uid 326,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 327,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "118000,2300,122000,3700" +st "LED1" +blo "118000,3500" +tm "WireNameMgr" +) +) +) +*81 (PortIoOut +uid 328,0 +shape (CompositeShape +uid 329,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 330,0 +sl 0 +ro 270 +xt "115500,4625,117000,5375" +) +(Line +uid 331,0 +sl 0 +ro 270 +xt "115000,5000,115500,5000" +pts [ +"115000,5000" +"115500,5000" +] +) +] +) +tg (WTG +uid 332,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 333,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "118000,4300,122000,5700" +st "LED2" +blo "118000,5500" +tm "WireNameMgr" +) +) +) +*82 (PortIoOut +uid 334,0 +shape (CompositeShape +uid 335,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 336,0 +sl 0 +ro 270 +xt "115500,6625,117000,7375" +) +(Line +uid 337,0 +sl 0 +ro 270 +xt "115000,7000,115500,7000" +pts [ +"115000,7000" +"115500,7000" +] +) +] +) +tg (WTG +uid 338,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 339,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "118000,6300,130400,7700" +st "spare : (1 TO 17)" +blo "118000,7500" +tm "WireNameMgr" +) +) +) +*83 (SaComponent +uid 340,0 +optionalChildren [ +*84 (CptPort +uid 349,0 +optionalChildren [ +*85 (Circle +uid 354,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "122000,42546,122908,43454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 350,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "122908,42625,123658,43375" +) +tg (CPTG +uid 351,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 352,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "379566,42500,382266,43900" +st "in1" +ju 2 +blo "382266,43700" +) +s (Text +uid 353,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "382266,43900,382266,43900" +ju 2 +blo "382266,43900" +) +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +) +) +) +*86 (CptPort +uid 355,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 356,0 +ro 270 +va (VaSet +vasetType 1 +isHidden 1 +fg "0,65535,0" +) +xt "116250,42625,117000,43375" +) +tg (CPTG +uid 357,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 358,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "367300,42500,371000,43900" +st "out1" +blo "367300,43700" +) +s (Text +uid 359,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "367300,43900,367300,43900" +blo "367300,43900" +) +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +) +) +) +] +shape (Buf +uid 341,0 +ro 270 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "117000,40000,122000,46000" +) +showPorts 0 +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 342,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*87 (Text +uid 343,0 +va (VaSet +isHidden 1 +) +xt "117910,38700,121510,39900" +st "Board" +blo "117910,39700" +tm "BdLibraryNameMgr" +) +*88 (Text +uid 344,0 +va (VaSet +isHidden 1 +) +xt "117910,39700,124310,40900" +st "inverterIn" +blo "117910,40700" +tm "CptNameMgr" +) +*89 (Text +uid 345,0 +va (VaSet +) +xt "117910,39700,119810,40900" +st "I7" +blo "117910,40700" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 346,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 347,0 +text (MLText +uid 348,0 +va (VaSet +) +xt "94000,36000,94000,36000" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +archFileType "UNKNOWN" +) +*90 (PortIoIn +uid 360,0 +shape (CompositeShape +uid 361,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 362,0 +sl 0 +ro 90 +xt "127500,42625,129000,43375" +) +(Line +uid 363,0 +sl 0 +ro 90 +xt "127000,43000,127500,43000" +pts [ +"127500,43000" +"127000,43000" +] +) +] +) +tg (WTG +uid 364,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 365,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "130000,42300,139300,43700" +st "selSinCos_n" +blo "130000,43500" +tm "WireNameMgr" +) +) +) +*91 (PortIoOut +uid 366,0 +shape (CompositeShape +uid 367,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 368,0 +sl 0 +ro 270 +xt "127500,36625,129000,37375" +) +(Line +uid 369,0 +sl 0 +ro 270 +xt "127000,37000,127500,37000" +pts [ +"127000,37000" +"127500,37000" +] +) +] +) +tg (WTG +uid 370,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 371,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "130000,36300,133800,37700" +st "xOut" +blo "130000,37500" +tm "WireNameMgr" +) +) +) +*92 (PortIoOut +uid 372,0 +shape (CompositeShape +uid 373,0 +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +uid 374,0 +sl 0 +ro 270 +xt "127500,38625,129000,39375" +) +(Line +uid 375,0 +sl 0 +ro 270 +xt "127000,39000,127500,39000" +pts [ +"127000,39000" +"127500,39000" +] +) +] +) +tg (WTG +uid 376,0 +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 377,0 +va (VaSet +isHidden 1 +font "Verdana,12,0" +) +xt "130000,38300,133800,39700" +st "yOut" +blo "130000,39500" +tm "WireNameMgr" +) +) +) +*93 (Net +uid 496,0 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 1 +suid 1,0 +) +declText (MLText +uid 497,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,32200,17000,33200" +st "SIGNAL selSinCos : std_ulogic +" +) +) +*94 (Net +uid 498,0 +decl (Decl +n "selSinCosSynch" +t "std_ulogic" +o 2 +suid 2,0 +) +declText (MLText +uid 499,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,33200,17900,34200" +st "SIGNAL selSinCosSynch : std_ulogic +" +) +) +*95 (Net +uid 500,0 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 3 +suid 3,0 +) +declText (MLText +uid 501,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,30200,17800,31200" +st "SIGNAL resetSynch_N : std_ulogic +" +) +) +*96 (Net +uid 502,0 +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 4,0 +) +declText (MLText +uid 503,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,13000,14200,14000" +st "selSinCos_n : std_ulogic +" +) +) +*97 (Net +uid 504,0 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 5 +suid 5,0 +) +declText (MLText +uid 505,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,29200,17300,30200" +st "SIGNAL resetSynch : std_ulogic +" +) +) +*98 (Net +uid 506,0 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +declText (MLText +uid 507,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,25400,28000,26400" +st "SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0) +" +) +) +*99 (Net +uid 508,0 +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 7,0 +) +declText (MLText +uid 509,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,11000,13200,12000" +st "clock : std_ulogic +" +) +) +*100 (Net +uid 510,0 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 8 +suid 8,0 +) +declText (MLText +uid 511,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,34200,28200,35200" +st "SIGNAL testOut : std_ulogic_vector(1 TO testOutBitNb) +" +) +) +*101 (Net +uid 512,0 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 9 +suid 9,0 +) +declText (MLText +uid 513,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,16800,20900,17800" +st "spare : std_ulogic_vector(1 TO 17) +" +) +) +*102 (Net +uid 516,0 +decl (Decl +n "yOut" +t "std_ulogic" +o 11 +suid 11,0 +) +declText (MLText +uid 517,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,18800,13400,19800" +st "yOut : std_ulogic +" +) +) +*103 (Net +uid 518,0 +decl (Decl +n "reset_N" +t "std_ulogic" +o 12 +suid 12,0 +) +declText (MLText +uid 519,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,12000,13700,13000" +st "reset_N : std_ulogic +" +) +) +*104 (Net +uid 520,0 +decl (Decl +n "rxdSynch" +t "std_ulogic" +o 13 +suid 13,0 +) +declText (MLText +uid 521,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,31200,17200,32200" +st "SIGNAL rxdSynch : std_ulogic +" +) +) +*105 (Net +uid 524,0 +decl (Decl +n "LED1" +t "std_ulogic" +o 15 +suid 15,0 +) +declText (MLText +uid 525,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,14000,13500,15000" +st "LED1 : std_ulogic +" +) +) +*106 (Net +uid 526,0 +decl (Decl +n "LED2" +t "std_ulogic" +o 16 +suid 16,0 +) +declText (MLText +uid 527,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,15000,13500,16000" +st "LED2 : std_ulogic +" +) +) +*107 (Net +uid 528,0 +decl (Decl +n "xOut" +t "std_ulogic" +o 17 +suid 17,0 +) +declText (MLText +uid 529,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,17800,13400,18800" +st "xOut : std_ulogic +" +) +) +*108 (Net +uid 530,0 +decl (Decl +n "logic1" +t "std_uLogic" +o 18 +suid 18,0 +) +declText (MLText +uid 531,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,27200,16600,28200" +st "SIGNAL logic1 : std_uLogic +" +) +) +*109 (Net +uid 532,0 +decl (Decl +n "reset" +t "std_ulogic" +o 19 +suid 19,0 +) +declText (MLText +uid 533,0 +va (VaSet +font "Verdana,8,0" +) +xt "2000,28200,16400,29200" +st "SIGNAL reset : std_ulogic +" +) +) +*110 (SaComponent +uid 653,0 +optionalChildren [ +*111 (CptPort +uid 617,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 618,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,51625,62750,52375" +) +tg (CPTG +uid 619,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 620,0 +va (VaSet +font "Verdana,8,0" +) +xt "56700,51500,61000,52500" +st "clk10MHz" +ju 2 +blo "61000,52300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk10MHz" +t "std_ulogic" +o 8 +suid 1,0 +) +) +) +*112 (CptPort +uid 621,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 622,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,50625,62750,51375" +) +tg (CPTG +uid 623,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 624,0 +va (VaSet +font "Verdana,8,0" +) +xt "56700,50500,61000,51500" +st "clk50MHz" +ju 2 +blo "61000,51300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk50MHz" +t "std_ulogic" +o 7 +suid 2,0 +) +) +) +*113 (CptPort +uid 625,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 626,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,47625,62750,48375" +) +tg (CPTG +uid 627,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 628,0 +va (VaSet +font "Verdana,8,0" +) +xt "56700,47500,61000,48500" +st "clk60MHz" +ju 2 +blo "61000,48300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk60MHz" +t "std_ulogic" +o 5 +suid 3,0 +) +) +) +*114 (CptPort +uid 629,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 630,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,49625,62750,50375" +) +tg (CPTG +uid 631,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 632,0 +va (VaSet +font "Verdana,8,0" +) +xt "56700,49500,61000,50500" +st "clk75MHz" +ju 2 +blo "61000,50300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "clk75MHz" +t "std_ulogic" +o 6 +suid 4,0 +) +) +) +*115 (CptPort +uid 633,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 634,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49250,51625,50000,52375" +) +tg (CPTG +uid 635,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 636,0 +va (VaSet +font "Verdana,8,0" +) +xt "51000,51500,54200,52500" +st "en10M" +blo "51000,52300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en10M" +t "std_ulogic" +o 4 +suid 6,0 +) +) +) +*116 (CptPort +uid 637,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 638,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49250,50625,50000,51375" +) +tg (CPTG +uid 639,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 640,0 +va (VaSet +font "Verdana,8,0" +) +xt "51000,50500,54200,51500" +st "en50M" +blo "51000,51300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en50M" +t "std_ulogic" +o 3 +suid 7,0 +) +) +) +*117 (CptPort +uid 641,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 642,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49250,49625,50000,50375" +) +tg (CPTG +uid 643,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 644,0 +va (VaSet +font "Verdana,8,0" +) +xt "51000,49500,54200,50500" +st "en75M" +blo "51000,50300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "en75M" +t "std_ulogic" +o 2 +suid 8,0 +) +) +) +*118 (CptPort +uid 645,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 646,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "62000,53625,62750,54375" +) +tg (CPTG +uid 647,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 648,0 +va (VaSet +font "Verdana,8,0" +) +xt "56800,53500,61000,54500" +st "pllLocked" +ju 2 +blo "61000,54300" +) +) +thePort (LogicalPort +lang 11 +m 1 +decl (Decl +n "pllLocked" +t "std_ulogic" +o 9 +suid 9,0 +) +) +) +*119 (CptPort +uid 649,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 650,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "49250,47625,50000,48375" +) +tg (CPTG +uid 651,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 652,0 +va (VaSet +font "Verdana,8,0" +) +xt "51000,47500,55600,48500" +st "clkIn100M" +blo "51000,48300" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "clkIn100M" +t "std_ulogic" +o 1 +suid 10,0 +) +) +) +] +shape (Rectangle +uid 654,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "50000,47000,62000,55000" +) +oxt "20000,20000,32000,28000" +ttg (MlTextGroup +uid 655,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*120 (Text +uid 656,0 +va (VaSet +font "Verdana,8,1" +) +xt "50400,57000,54100,58000" +st "Lattice" +blo "50400,57800" +tm "BdLibraryNameMgr" +) +*121 (Text +uid 657,0 +va (VaSet +font "Verdana,8,1" +) +xt "50400,58000,52200,59000" +st "pll" +blo "50400,58800" +tm "CptNameMgr" +) +*122 (Text +uid 658,0 +va (VaSet +font "Verdana,8,1" +) +xt "50400,59000,53200,60000" +st "I_pll" +blo "50400,59800" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +uid 659,0 +ps "EdgeToEdgeStrategy" +matrix (Matrix +uid 660,0 +text (MLText +uid 661,0 +va (VaSet +font "Courier New,8,0" +) +xt "26000,-22200,26000,-22200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +uid 662,0 +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "50250,53250,51750,54750" +iconName "VhdlFileViewIcon.png" +iconMaskName "VhdlFileViewIcon.msk" +ftype 10 +) +ordering 1 +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +*123 (Net +uid 669,0 +lang 11 +decl (Decl +n "clk_sys" +t "std_ulogic" +o 20 +suid 21,0 +) +declText (MLText +uid 670,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,24600,20500,25400" +st "SIGNAL clk_sys : std_ulogic +" +) +) +*124 (HdlText +uid 671,0 +optionalChildren [ +*125 (EmbeddedText +uid 676,0 +commentText (CommentText +uid 677,0 +ps "CenterOffsetStrategy" +shape (Rectangle +uid 678,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +) +xt "34000,51000,40000,53000" +) +oxt "0,0,18000,5000" +text (MLText +uid 679,0 +va (VaSet +) +xt "34200,51200,39700,52400" +st " +logic0 <= '0'; +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 2000 +visibleWidth 6000 +) +) +) +] +shape (Rectangle +uid 672,0 +va (VaSet +vasetType 1 +fg "65535,65535,32768" +) +xt "33000,50000,41000,54000" +) +oxt "0,0,8000,10000" +ttg (MlTextGroup +uid 673,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*126 (Text +uid 674,0 +va (VaSet +) +xt "33400,54000,36000,55200" +st "eb5" +blo "33400,55000" +tm "HdlTextNameMgr" +) +*127 (Text +uid 675,0 +va (VaSet +) +xt "33400,55000,34800,56200" +st "5" +blo "33400,56000" +tm "HdlTextNumberMgr" +) +] +) +) +*128 (Net +uid 700,0 +lang 11 +decl (Decl +n "logic0" +t "std_ulogic" +o 21 +suid 23,0 +) +declText (MLText +uid 701,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,26400,20500,27200" +st "SIGNAL logic0 : std_ulogic +" +) +) +*129 (Net +uid 753,0 +decl (Decl +n "RxD" +t "std_ulogic" +o 10 +suid 24,0 +) +declText (MLText +uid 754,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,10200,17000,11000" +st "RxD : std_ulogic +" +) +) +*130 (Net +uid 755,0 +decl (Decl +n "TxD" +t "std_ulogic" +o 14 +suid 25,0 +) +declText (MLText +uid 756,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,16000,17000,16800" +st "TxD : std_ulogic +" +) +) +*131 (Wire +uid 378,0 +shape (OrthoPolyLine +uid 379,0 +va (VaSet +vasetType 3 +) +xt "53000,35000,56000,35000" +pts [ +"53000,35000" +"56000,35000" +] +) +end &29 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 382,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 383,0 +va (VaSet +font "Verdana,12,0" +) +xt "52000,33600,57300,35000" +st "clk_sys" +blo "52000,34800" +tm "WireNameMgr" +) +) +on &123 +) +*132 (Wire +uid 384,0 +shape (OrthoPolyLine +uid 385,0 +va (VaSet +vasetType 3 +) +xt "49000,71000,59000,73000" +pts [ +"49000,73000" +"59000,73000" +"59000,71000" +] +) +start &19 +end &40 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 386,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 387,0 +va (VaSet +font "Verdana,12,0" +) +xt "50000,71600,54100,73000" +st "reset" +blo "50000,72800" +tm "WireNameMgr" +) +) +on &109 +) +*133 (Wire +uid 388,0 +shape (OrthoPolyLine +uid 389,0 +va (VaSet +vasetType 3 +) +xt "54000,69000,56000,69000" +pts [ +"54000,69000" +"56000,69000" +] +) +end &38 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 392,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 393,0 +va (VaSet +font "Verdana,12,0" +) +xt "52000,67600,55800,69000" +st "clock" +blo "52000,68800" +tm "WireNameMgr" +) +) +on &99 +) +*134 (Wire +uid 394,0 +shape (OrthoPolyLine +uid 395,0 +va (VaSet +vasetType 3 +) +xt "110000,47000,113000,47000" +pts [ +"113000,47000" +"110000,47000" +] +) +end &73 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 398,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 399,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,45600,117300,47000" +st "clk_sys" +blo "112000,46800" +tm "WireNameMgr" +) +) +on &123 +) +*135 (Wire +uid 400,0 +shape (OrthoPolyLine +uid 401,0 +va (VaSet +vasetType 3 +) +xt "122908,43000,127000,43000" +pts [ +"122908,43000" +"127000,43000" +] +) +start &84 +end &90 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 402,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 403,0 +va (VaSet +font "Verdana,12,0" +) +xt "124000,41600,133300,43000" +st "selSinCos_n" +blo "124000,42800" +tm "WireNameMgr" +) +) +on &96 +) +*136 (Wire +uid 404,0 +shape (OrthoPolyLine +uid 405,0 +va (VaSet +vasetType 3 +) +xt "51000,65000,56000,65000" +pts [ +"56000,65000" +"51000,65000" +] +) +start &37 +end &23 +sat 32 +eat 2 +stc 0 +sf 1 +si 0 +tg (WTG +uid 408,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 409,0 +va (VaSet +font "Verdana,12,0" +) +xt "52000,63600,56400,65000" +st "logic1" +blo "52000,64800" +tm "WireNameMgr" +) +) +on &108 +) +*137 (Wire +uid 410,0 +shape (OrthoPolyLine +uid 411,0 +va (VaSet +vasetType 3 +) +xt "110000,43000,117000,43000" +pts [ +"110000,43000" +"117000,43000" +] +) +start &72 +end &86 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 412,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 413,0 +va (VaSet +font "Verdana,12,0" +) +xt "109000,41600,115900,43000" +st "selSinCos" +blo "109000,42800" +tm "WireNameMgr" +) +) +on &93 +) +*138 (Wire +uid 414,0 +shape (OrthoPolyLine +uid 415,0 +va (VaSet +vasetType 3 +) +xt "62000,65000,67092,65000" +pts [ +"62000,65000" +"67092,65000" +] +) +start &41 +end &46 +ss 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 416,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 417,0 +va (VaSet +font "Verdana,12,0" +) +xt "59000,63600,69300,65000" +st "resetSynch_N" +blo "59000,64800" +tm "WireNameMgr" +) +) +on &95 +) +*139 (Wire +uid 418,0 +shape (OrthoPolyLine +uid 419,0 +va (VaSet +vasetType 3 +) +xt "95750,41000,104000,43000" +pts [ +"95750,41000" +"99000,41000" +"99000,43000" +"104000,43000" +] +) +start &56 +end &76 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 420,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 421,0 +va (VaSet +font "Verdana,12,0" +) +xt "97000,41600,108400,43000" +st "selSinCosSynch" +blo "97000,42800" +tm "WireNameMgr" +) +) +on &94 +) +*140 (Wire +uid 422,0 +shape (OrthoPolyLine +uid 423,0 +va (VaSet +vasetType 3 +) +xt "39000,31000,56000,31000" +pts [ +"56000,31000" +"39000,31000" +] +) +start &28 +end &14 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 424,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 425,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,29600,42200,31000" +st "RxD" +blo "39000,30800" +tm "WireNameMgr" +) +) +on &129 +) +*141 (Wire +uid 426,0 +shape (OrthoPolyLine +uid 427,0 +va (VaSet +vasetType 3 +) +xt "53000,37000,59000,39000" +pts [ +"53000,39000" +"59000,39000" +"59000,37000" +] +) +end &31 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 430,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 431,0 +va (VaSet +font "Verdana,12,0" +) +xt "52000,37600,60600,39000" +st "resetSynch" +blo "52000,38800" +tm "WireNameMgr" +) +) +on &97 +) +*142 (Wire +uid 432,0 +shape (OrthoPolyLine +uid 433,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "107000,7000,115000,7000" +pts [ +"107000,7000" +"115000,7000" +] +) +start &67 +end &82 +sat 2 +eat 32 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 436,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 437,0 +va (VaSet +font "Verdana,12,0" +) +xt "111000,5600,115400,7000" +st "spare" +blo "111000,6800" +tm "WireNameMgr" +) +) +on &101 +) +*143 (Wire +uid 438,0 +shape (OrthoPolyLine +uid 439,0 +va (VaSet +vasetType 3 +) +xt "73000,43000,78250,65000" +pts [ +"78250,43000" +"77000,43000" +"77000,65000" +"73000,65000" +] +) +start &57 +end &48 +es 0 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 440,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 441,0 +va (VaSet +font "Verdana,12,0" +) +xt "74000,63600,82600,65000" +st "resetSynch" +blo "74000,64800" +tm "WireNameMgr" +) +) +on &97 +) +*144 (Wire +uid 442,0 +shape (OrthoPolyLine +uid 443,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "87000,5000,91000,24250" +pts [ +"87000,24250" +"87000,5000" +"91000,5000" +] +) +start &63 +end &67 +sat 32 +eat 1 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 446,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 447,0 +va (VaSet +font "Verdana,12,0" +) +xt "83000,3600,88600,5000" +st "testOut" +blo "83000,4800" +tm "WireNameMgr" +) +) +on &100 +) +*145 (Wire +uid 448,0 +shape (OrthoPolyLine +uid 449,0 +va (VaSet +vasetType 3 +) +xt "107000,49000,113000,51000" +pts [ +"113000,51000" +"107000,51000" +"107000,49000" +] +) +end &75 +sat 16 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 452,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 453,0 +va (VaSet +font "Verdana,12,0" +) +xt "108000,49600,116600,51000" +st "resetSynch" +blo "108000,50800" +tm "WireNameMgr" +) +) +on &97 +) +*146 (Wire +uid 454,0 +shape (OrthoPolyLine +uid 455,0 +va (VaSet +vasetType 3 +lineWidth 2 +) +xt "95750,33000,103000,33000" +pts [ +"95750,33000" +"103000,33000" +] +) +start &62 +sat 32 +eat 16 +sty 1 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 458,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 459,0 +va (VaSet +font "Verdana,12,0" +) +xt "100000,31600,103200,33000" +st "ioIn" +blo "100000,32800" +tm "WireNameMgr" +) +) +on &98 +) +*147 (Wire +uid 460,0 +shape (OrthoPolyLine +uid 461,0 +va (VaSet +vasetType 3 +) +xt "62000,31000,78250,31000" +pts [ +"78250,31000" +"62000,31000" +] +) +start &59 +end &32 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 462,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 463,0 +va (VaSet +font "Verdana,12,0" +) +xt "63000,29600,69500,31000" +st "rxdSynch" +blo "63000,30800" +tm "WireNameMgr" +) +) +on &104 +) +*148 (Wire +uid 464,0 +shape (OrthoPolyLine +uid 465,0 +va (VaSet +vasetType 3 +) +xt "95750,39000,127000,39000" +pts [ +"127000,39000" +"95750,39000" +] +) +start &92 +end &55 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 466,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 467,0 +va (VaSet +font "Verdana,12,0" +) +xt "123000,37600,126800,39000" +st "yOut" +blo "123000,38800" +tm "WireNameMgr" +) +) +on &102 +) +*149 (Wire +uid 468,0 +shape (OrthoPolyLine +uid 469,0 +va (VaSet +vasetType 3 +) +xt "39000,27000,78250,29000" +pts [ +"78250,29000" +"67000,29000" +"67000,27000" +"39000,27000" +] +) +start &58 +end &13 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 470,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 471,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,25600,42100,27000" +st "TxD" +blo "39000,26800" +tm "WireNameMgr" +) +) +on &130 +) +*150 (Wire +uid 472,0 +shape (OrthoPolyLine +uid 473,0 +va (VaSet +vasetType 3 +) +xt "107000,5000,115000,5000" +pts [ +"107000,5000" +"115000,5000" +] +) +start &67 +end &81 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 476,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 477,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,3600,116000,5000" +st "LED2" +blo "112000,4800" +tm "WireNameMgr" +) +) +on &106 +) +*151 (Wire +uid 478,0 +shape (OrthoPolyLine +uid 479,0 +va (VaSet +vasetType 3 +) +xt "39000,48000,49250,48000" +pts [ +"39000,48000" +"49250,48000" +] +) +start &15 +end &119 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 480,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 481,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,46600,42800,48000" +st "clock" +blo "39000,47800" +tm "WireNameMgr" +) +) +on &99 +) +*152 (Wire +uid 482,0 +shape (OrthoPolyLine +uid 483,0 +va (VaSet +vasetType 3 +) +xt "95750,37000,127000,37000" +pts [ +"127000,37000" +"95750,37000" +] +) +start &91 +end &54 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 484,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 485,0 +va (VaSet +font "Verdana,12,0" +) +xt "123000,35600,126800,37000" +st "xOut" +blo "123000,36800" +tm "WireNameMgr" +) +) +on &107 +) +*153 (Wire +uid 486,0 +shape (OrthoPolyLine +uid 487,0 +va (VaSet +vasetType 3 +) +xt "107000,3000,115000,3000" +pts [ +"107000,3000" +"115000,3000" +] +) +start &67 +end &80 +sat 2 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 490,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 491,0 +va (VaSet +font "Verdana,12,0" +) +xt "112000,1600,116000,3000" +st "LED1" +blo "112000,2800" +tm "WireNameMgr" +) +) +on &105 +) +*154 (Wire +uid 492,0 +shape (OrthoPolyLine +uid 493,0 +va (VaSet +vasetType 3 +) +xt "39000,73000,43092,73000" +pts [ +"39000,73000" +"43092,73000" +] +) +start &12 +end &17 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 494,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 495,0 +va (VaSet +font "Verdana,12,0" +) +xt "38000,71600,43800,73000" +st "reset_N" +blo "38000,72800" +tm "WireNameMgr" +) +) +on &103 +) +*155 (Wire +uid 665,0 +shape (OrthoPolyLine +uid 666,0 +va (VaSet +vasetType 3 +) +xt "62750,41000,78250,48000" +pts [ +"62750,48000" +"70000,48000" +"70000,41000" +"78250,41000" +] +) +start &113 +end &53 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 667,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 668,0 +va (VaSet +) +xt "64750,46800,69350,48000" +st "clk_sys" +blo "64750,47800" +tm "WireNameMgr" +) +) +on &123 +) +*156 (Wire +uid 682,0 +optionalChildren [ +*157 (BdJunction +uid 692,0 +ps "OnConnectorStrategy" +shape (Circle +uid 693,0 +va (VaSet +vasetType 1 +) +xt "46600,50600,47400,51400" +radius 400 +) +) +*158 (BdJunction +uid 698,0 +ps "OnConnectorStrategy" +shape (Circle +uid 699,0 +va (VaSet +vasetType 1 +) +xt "46600,50600,47400,51400" +radius 400 +) +) +] +shape (OrthoPolyLine +uid 683,0 +va (VaSet +vasetType 3 +) +xt "41000,51000,49250,51000" +pts [ +"41000,51000" +"49250,51000" +] +) +start &124 +end &116 +sat 2 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +uid 686,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 687,0 +va (VaSet +) +xt "43000,49800,46800,51000" +st "logic0" +blo "43000,50800" +tm "WireNameMgr" +) +) +on &128 +) +*159 (Wire +uid 688,0 +shape (OrthoPolyLine +uid 689,0 +va (VaSet +vasetType 3 +) +xt "47000,50000,49250,51000" +pts [ +"49250,50000" +"47000,50000" +"47000,51000" +] +) +start &117 +end &157 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 690,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 691,0 +va (VaSet +isHidden 1 +) +xt "44250,48800,48050,50000" +st "logic0" +blo "44250,49800" +tm "WireNameMgr" +) +) +on &128 +) +*160 (Wire +uid 694,0 +shape (OrthoPolyLine +uid 695,0 +va (VaSet +vasetType 3 +) +xt "47000,51000,49250,52000" +pts [ +"49250,52000" +"47000,52000" +"47000,51000" +] +) +start &115 +end &158 +sat 32 +eat 32 +stc 0 +st 0 +sf 1 +si 0 +tg (WTG +uid 696,0 +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +uid 697,0 +va (VaSet +isHidden 1 +) +xt "44250,50800,48050,52000" +st "logic0" +blo "44250,51800" +tm "WireNameMgr" +) +) +on &128 +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 0 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "26368,26368,26368" +) +packageList *161 (PackageList +uid 41,0 +stg "VerticalLayoutStrategy" +textVec [ +*162 (Text +uid 42,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*163 (MLText +uid 43,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +compDirBlock (MlTextGroup +uid 44,0 +stg "VerticalLayoutStrategy" +textVec [ +*164 (Text +uid 45,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,0,30800,1200" +st "Compiler Directives" +blo "20000,1000" +) +*165 (Text +uid 46,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,1200,33100,2400" +st "Pre-module directives:" +blo "20000,2200" +) +*166 (MLText +uid 47,0 +va (VaSet +isHidden 1 +) +xt "20000,2400,32100,4800" +st "`resetall +`timescale 1ns/10ps" +tm "BdCompilerDirectivesTextMgr" +) +*167 (Text +uid 48,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,4800,33700,6000" +st "Post-module directives:" +blo "20000,5800" +) +*168 (MLText +uid 49,0 +va (VaSet +isHidden 1 +) +xt "20000,0,20000,0" +tm "BdCompilerDirectivesTextMgr" +) +*169 (Text +uid 50,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "20000,6000,33200,7200" +st "End-module directives:" +blo "20000,7000" +) +*170 (MLText +uid 51,0 +va (VaSet +isHidden 1 +) +xt "20000,7200,20000,7200" +tm "BdCompilerDirectivesTextMgr" +) +] +associable 1 +) +windowSize "0,0,1921,1056" +viewArea "-2000,-2100,146984,79564" +cachedDiagramExtent "0,0,382266,76000" +pageSetupInfo (PageSetupInfo +ptrCmd "" +toPrinter 1 +paperWidth 761 +paperHeight 1077 +windowsPaperWidth 761 +windowsPaperHeight 1077 +paperType "A4 (210 x 297 mm)" +windowsPaperName "A4 (210 x 297 mm)" +windowsPaperType 9 +useAdjustTo 0 +exportedDirectories [ +"$HDS_PROJECT_DIR/HTMLExport" +] +boundaryWidth 0 +exportStdIncludeRefs 1 +exportStdPackageRefs 1 +) +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +lastUid 760,0 +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +defaultBlk (Blk +shape (Rectangle +va (VaSet +vasetType 1 +fg "39936,56832,65280" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*171 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,3200,6700,4400" +st "" +blo "1300,4200" +tm "BdLibraryNameMgr" +) +*172 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,4400,6100,5600" +st "" +blo "1300,5400" +tm "BlkNameMgr" +) +*173 (Text +va (VaSet +font "Verdana,9,1" +) +xt "1300,5600,3800,6800" +st "U_0" +blo "1300,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "1300,13200,1300,13200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultMWComponent (MWC +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-850,0,8850,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*174 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,3200,3750,4400" +st "Library" +blo "-350,4200" +) +*175 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,4400,8350,5600" +st "MWComponent" +blo "-350,5400" +) +*176 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-350,5600,2150,6800" +st "U_0" +blo "-350,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7350,1200,-7350,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +prms (Property +pclass "params" +pname "params" +ptn "String" +) +visOptions (mwParamsVisibilityOptions +) +) +defaultSaComponent (SaComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*177 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,3200,4100,4400" +st "Library" +blo "0,4200" +tm "BdLibraryNameMgr" +) +*178 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,4400,8000,5600" +st "SaComponent" +blo "0,5400" +tm "CptNameMgr" +) +*179 (Text +va (VaSet +font "Verdana,9,1" +) +xt "0,5600,2500,6800" +st "U_0" +blo "0,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7000,1200,-7000,1200" +) +header "" +) +elements [ +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +portVis (PortSigDisplay +) +archFileType "UNKNOWN" +) +defaultVhdlComponent (VhdlComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1000,0,9000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*180 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,3200,3600,4400" +st "Library" +blo "-500,4200" +) +*181 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,4400,8500,5600" +st "VhdlComponent" +blo "-500,5400" +) +*182 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-500,5600,2000,6800" +st "U_0" +blo "-500,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-7500,1200,-7500,1200" +) +header "" +) +elements [ +] +) +portVis (PortSigDisplay +) +entityPath "" +archName "" +archPath "" +) +defaultVerilogComponent (VerilogComponent +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "-1650,0,9650,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*183 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,3200,2950,4400" +st "Library" +blo "-1150,4200" +) +*184 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,4400,9150,5600" +st "VerilogComponent" +blo "-1150,5400" +) +*185 (Text +va (VaSet +font "Verdana,9,1" +) +xt "-1150,5600,1350,6800" +st "U_0" +blo "-1150,6600" +tm "InstanceNameMgr" +) +] +) +ga (GenericAssociation +ps "EdgeToEdgeStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "-8150,1200,-8150,1200" +) +header "" +) +elements [ +] +) +entityPath "" +) +defaultHdlText (HdlText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,37120" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,8000,10000" +) +ttg (MlTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*186 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,3800,5200,5000" +st "eb1" +blo "2800,4800" +tm "HdlTextNameMgr" +) +*187 (Text +va (VaSet +font "Verdana,9,1" +) +xt "2800,5000,4000,6200" +st "1" +blo "2800,6000" +tm "HdlTextNumberMgr" +) +] +) +viewicon (ZoomableIcon +sl 0 +va (VaSet +vasetType 1 +fg "49152,49152,49152" +) +xt "0,0,1500,1500" +iconName "UnknownFile.png" +iconMaskName "UnknownFile.msk" +) +viewiconposition 0 +) +defaultEmbeddedText (EmbeddedText +commentText (CommentText +ps "CenterOffsetStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,18000,5000" +) +text (MLText +va (VaSet +) +xt "200,200,3200,1400" +st " +Text +" +tm "HdlTextMgr" +wrapOption 3 +visibleHeight 4600 +visibleWidth 17600 +) +) +) +defaultGlobalConnector (GlobalConnector +shape (Circle +va (VaSet +vasetType 1 +fg "65535,65535,0" +) +xt "-1000,-1000,1000,1000" +radius 1000 +) +name (Text +va (VaSet +font "Verdana,9,1" +) +xt "-650,-600,650,600" +st "G" +blo "-650,400" +) +) +defaultRipper (Ripper +ps "OnConnectorStrategy" +shape (Line2D +pts [ +"0,0" +"1000,1000" +] +va (VaSet +vasetType 1 +) +xt "0,0,1000,1000" +) +) +defaultBdJunction (BdJunction +ps "OnConnectorStrategy" +shape (Circle +va (VaSet +vasetType 1 +) +xt "-400,-400,400,400" +radius 400 +) +) +defaultPortIoIn (PortIoIn +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "-2000,-375,-500,375" +) +(Line +sl 0 +ro 270 +xt "-500,0,0,0" +pts [ +"-500,0" +"0,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "-1375,-1000,-1375,-1000" +ju 2 +blo "-1375,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoOut (PortIoOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Pentagon +sl 0 +ro 270 +xt "500,-375,2000,375" +) +(Line +sl 0 +ro 270 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "625,-1000,625,-1000" +blo "625,-1000" +tm "WireNameMgr" +) +) +) +defaultPortIoInOut (PortIoInOut +shape (CompositeShape +va (VaSet +vasetType 1 +fg "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultPortIoBuffer (PortIoBuffer +shape (CompositeShape +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +) +optionalChildren [ +(Hexagon +sl 0 +xt "500,-375,2000,375" +) +(Line +sl 0 +xt "0,0,500,0" +pts [ +"0,0" +"500,0" +] +) +] +) +stc 0 +sf 1 +tg (WTG +ps "PortIoTextPlaceStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,-375,0,-375" +blo "0,-375" +tm "WireNameMgr" +) +) +) +defaultSignal (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,2900,1200" +st "sig0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBus (Wire +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +sty 1 +st 0 +sf 1 +si 0 +tg (WTG +ps "ConnStartEndStrategy" +stg "STSignalDisplayStrategy" +f (Text +va (VaSet +) +xt "0,0,3800,1200" +st "dbus0" +blo "0,1000" +tm "WireNameMgr" +) +) +) +defaultBundle (Bundle +shape (OrthoPolyLine +va (VaSet +vasetType 3 +lineColor "32768,0,0" +lineWidth 2 +) +pts [ +"0,0" +"0,0" +] +) +ss 0 +es 0 +sat 32 +eat 32 +textGroup (BiTextGroup +ps "ConnStartEndStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "0,0,4700,1200" +st "bundle0" +blo "0,1000" +tm "BundleNameMgr" +) +second (MLText +va (VaSet +) +xt "0,1200,1500,2400" +st "()" +tm "BundleContentsMgr" +) +) +bundleNet &0 +) +defaultPortMapFrame (PortMapFrame +ps "PortMapFrameStrategy" +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "0,0,32768" +lineWidth 2 +) +xt "0,0,10000,12000" +) +portMapText (BiTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +first (MLText +va (VaSet +) +) +second (MLText +va (VaSet +) +tm "PortMapTextMgr" +) +) +) +defaultGenFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 2 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,18500,-100" +st "g0: FOR i IN 0 TO n GENERATE" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*188 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*189 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +) +defaultBlockFrame (Frame +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "26368,26368,26368" +lineStyle 1 +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (MLText +va (VaSet +) +xt "0,-1300,11000,-100" +st "b0: BLOCK (guard)" +tm "FrameTitleTextMgr" +) +) +seqNum (FrameSequenceNumber +ps "TopLeftStrategy" +shape (Rectangle +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "50,50,1850,1650" +) +num (Text +va (VaSet +) +xt "250,250,1650,1450" +st "1" +blo "250,1250" +tm "FrameSeqNumMgr" +) +) +decls (MlTextGroup +ps "BottomRightOffsetStrategy" +stg "VerticalLayoutStrategy" +textVec [ +*190 (Text +va (VaSet +font "Verdana,9,1" +) +xt "11200,20000,22000,21200" +st "Frame Declarations" +blo "11200,21000" +) +*191 (MLText +va (VaSet +) +xt "11200,21200,11200,21200" +tm "BdFrameDeclTextMgr" +) +] +) +style 3 +) +defaultSaCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultSaCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +) +xt "0,750,2800,1950" +st "Port" +blo "0,1750" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Port" +t "" +o 0 +) +) +) +defaultDeclText (MLText +va (VaSet +font "Courier New,8,0" +) +) +archDeclarativeBlock (BdArchDeclBlock +uid 1,0 +stg "BdArchDeclBlockLS" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,7800,7400,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,9000,3700,10200" +st "Ports:" +blo "0,10000" +) +preUserLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,19800,5200,21000" +st "Pre User:" +blo "0,20800" +) +preUserText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "2000,21000,26000,23400" +st "constant ioNb: positive := 8; +constant testOutBitNb: positive := 16; +constant patternAddressBitNb: positive := 9;" +tm "BdDeclarativeTextMgr" +) +diagSignalLabel (Text +uid 6,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,23400,9500,24600" +st "Diagram Signals:" +blo "0,24400" +) +postUserLabel (Text +uid 7,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "0,7800,6400,9000" +st "Post User:" +blo "0,8800" +) +postUserText (MLText +uid 8,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "0,7800,0,7800" +tm "BdDeclarativeTextMgr" +) +) +commonDM (CommonDM +ldm (LogicalDM +suid 25,0 +usingSuid 1 +emptyRow *192 (LEmptyRow +) +uid 54,0 +optionalChildren [ +*193 (RefLabelRowHdr +) +*194 (TitleRowHdr +) +*195 (FilterRowHdr +) +*196 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*197 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*198 (GroupColHdr +tm "GroupColHdrMgr" +) +*199 (NameColHdr +tm "BlockDiagramNameColHdrMgr" +) +*200 (ModeColHdr +tm "BlockDiagramModeColHdrMgr" +) +*201 (TypeColHdr +tm "BlockDiagramTypeColHdrMgr" +) +*202 (BoundsColHdr +tm "BlockDiagramBoundsColHdrMgr" +) +*203 (InitColHdr +tm "BlockDiagramInitColHdrMgr" +) +*204 (EolColHdr +tm "BlockDiagramEolColHdrMgr" +) +*205 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCos" +t "std_ulogic" +o 1 +suid 1,0 +) +) +uid 534,0 +) +*206 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "selSinCosSynch" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 536,0 +) +*207 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch_N" +t "std_ulogic" +o 3 +suid 3,0 +) +) +uid 538,0 +) +*208 (LeafLogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 4,0 +) +) +uid 540,0 +) +*209 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "resetSynch" +t "std_ulogic" +o 5 +suid 5,0 +) +) +uid 542,0 +) +*210 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "ioIn" +t "std_ulogic_vector" +b "(ioNb-1 DOWNTO 0)" +o 6 +suid 6,0 +) +) +uid 544,0 +) +*211 (LeafLogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 7 +suid 7,0 +) +) +uid 546,0 +) +*212 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "testOut" +t "std_ulogic_vector" +b "(1 TO testOutBitNb)" +o 8 +suid 8,0 +) +) +uid 548,0 +) +*213 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 9 +suid 9,0 +) +) +uid 550,0 +) +*214 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 11 +suid 11,0 +) +) +uid 554,0 +) +*215 (LeafLogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 12 +suid 12,0 +) +) +uid 556,0 +) +*216 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "rxdSynch" +t "std_ulogic" +o 13 +suid 13,0 +) +) +uid 558,0 +) +*217 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 15 +suid 15,0 +) +) +uid 562,0 +) +*218 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 16 +suid 16,0 +) +) +uid 564,0 +) +*219 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 17 +suid 17,0 +) +) +uid 566,0 +) +*220 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "logic1" +t "std_uLogic" +o 18 +suid 18,0 +) +) +uid 568,0 +) +*221 (LeafLogPort +port (LogicalPort +m 4 +decl (Decl +n "reset" +t "std_ulogic" +o 19 +suid 19,0 +) +) +uid 570,0 +) +*222 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "clk_sys" +t "std_ulogic" +o 20 +suid 21,0 +) +) +uid 702,0 +) +*223 (LeafLogPort +port (LogicalPort +lang 11 +m 4 +decl (Decl +n "logic0" +t "std_ulogic" +o 21 +suid 23,0 +) +) +uid 704,0 +) +*224 (LeafLogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 10 +suid 24,0 +) +) +uid 757,0 +) +*225 (LeafLogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 14 +suid 25,0 +) +) +uid 759,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 67,0 +optionalChildren [ +*226 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *227 (MRCItem +litem &192 +pos 21 +dimension 20 +) +uid 69,0 +optionalChildren [ +*228 (MRCItem +litem &193 +pos 0 +dimension 20 +uid 70,0 +) +*229 (MRCItem +litem &194 +pos 1 +dimension 23 +uid 71,0 +) +*230 (MRCItem +litem &195 +pos 2 +hidden 1 +dimension 20 +uid 72,0 +) +*231 (MRCItem +litem &205 +pos 0 +dimension 20 +uid 535,0 +) +*232 (MRCItem +litem &206 +pos 1 +dimension 20 +uid 537,0 +) +*233 (MRCItem +litem &207 +pos 2 +dimension 20 +uid 539,0 +) +*234 (MRCItem +litem &208 +pos 3 +dimension 20 +uid 541,0 +) +*235 (MRCItem +litem &209 +pos 4 +dimension 20 +uid 543,0 +) +*236 (MRCItem +litem &210 +pos 5 +dimension 20 +uid 545,0 +) +*237 (MRCItem +litem &211 +pos 6 +dimension 20 +uid 547,0 +) +*238 (MRCItem +litem &212 +pos 7 +dimension 20 +uid 549,0 +) +*239 (MRCItem +litem &213 +pos 8 +dimension 20 +uid 551,0 +) +*240 (MRCItem +litem &214 +pos 9 +dimension 20 +uid 555,0 +) +*241 (MRCItem +litem &215 +pos 10 +dimension 20 +uid 557,0 +) +*242 (MRCItem +litem &216 +pos 11 +dimension 20 +uid 559,0 +) +*243 (MRCItem +litem &217 +pos 12 +dimension 20 +uid 563,0 +) +*244 (MRCItem +litem &218 +pos 13 +dimension 20 +uid 565,0 +) +*245 (MRCItem +litem &219 +pos 14 +dimension 20 +uid 567,0 +) +*246 (MRCItem +litem &220 +pos 15 +dimension 20 +uid 569,0 +) +*247 (MRCItem +litem &221 +pos 16 +dimension 20 +uid 571,0 +) +*248 (MRCItem +litem &222 +pos 17 +dimension 20 +uid 703,0 +) +*249 (MRCItem +litem &223 +pos 18 +dimension 20 +uid 705,0 +) +*250 (MRCItem +litem &224 +pos 19 +dimension 20 +uid 758,0 +) +*251 (MRCItem +litem &225 +pos 20 +dimension 20 +uid 760,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*252 (MRCItem +litem &196 +pos 0 +dimension 20 +uid 74,0 +) +*253 (MRCItem +litem &198 +pos 1 +dimension 50 +uid 75,0 +) +*254 (MRCItem +litem &199 +pos 2 +dimension 100 +uid 76,0 +) +*255 (MRCItem +litem &200 +pos 3 +dimension 50 +uid 77,0 +) +*256 (MRCItem +litem &201 +pos 4 +dimension 100 +uid 78,0 +) +*257 (MRCItem +litem &202 +pos 5 +dimension 100 +uid 79,0 +) +*258 (MRCItem +litem &203 +pos 6 +dimension 50 +uid 80,0 +) +*259 (MRCItem +litem &204 +pos 7 +dimension 80 +uid 81,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 68,0 +vaOverrides [ +] +) +] +) +uid 53,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *260 (LEmptyRow +) +uid 83,0 +optionalChildren [ +*261 (RefLabelRowHdr +) +*262 (TitleRowHdr +) +*263 (FilterRowHdr +) +*264 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*265 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*266 (GroupColHdr +tm "GroupColHdrMgr" +) +*267 (NameColHdr +tm "GenericNameColHdrMgr" +) +*268 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*269 (InitColHdr +tm "GenericValueColHdrMgr" +) +*270 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*271 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 95,0 +optionalChildren [ +*272 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *273 (MRCItem +litem &260 +pos 0 +dimension 20 +) +uid 97,0 +optionalChildren [ +*274 (MRCItem +litem &261 +pos 0 +dimension 20 +uid 98,0 +) +*275 (MRCItem +litem &262 +pos 1 +dimension 23 +uid 99,0 +) +*276 (MRCItem +litem &263 +pos 2 +hidden 1 +dimension 20 +uid 100,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 101,0 +optionalChildren [ +*277 (MRCItem +litem &264 +pos 0 +dimension 20 +uid 102,0 +) +*278 (MRCItem +litem &266 +pos 1 +dimension 50 +uid 103,0 +) +*279 (MRCItem +litem &267 +pos 2 +dimension 100 +uid 104,0 +) +*280 (MRCItem +litem &268 +pos 3 +dimension 100 +uid 105,0 +) +*281 (MRCItem +litem &269 +pos 4 +dimension 50 +uid 106,0 +) +*282 (MRCItem +litem &270 +pos 5 +dimension 50 +uid 107,0 +) +*283 (MRCItem +litem &271 +pos 6 +dimension 80 +uid 108,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 96,0 +vaOverrides [ +] +) +] +) +uid 82,0 +type 1 +) +activeModelName "BlockDiag" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/symbol.sb new file mode 100644 index 0000000..153673a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/@so@c_ebs3/symbol.sb @@ -0,0 +1,1895 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +(DmPackageRef +library "ieee" +unitName "numeric_std" +) +] +libraryRefs [ +"ieee" +] +) +version "27.1" +appVersion "2019.2 (Build 5)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 12,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 53,0 +optionalChildren [ +*2 (RefLabelRowHdr +) +*3 (TitleRowHdr +) +*4 (FilterRowHdr +) +*5 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*6 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*7 (GroupColHdr +tm "GroupColHdrMgr" +) +*8 (NameColHdr +tm "NameColHdrMgr" +) +*9 (ModeColHdr +tm "ModeColHdrMgr" +) +*10 (TypeColHdr +tm "TypeColHdrMgr" +) +*11 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*12 (InitColHdr +tm "InitColHdrMgr" +) +*13 (EolColHdr +tm "EolColHdrMgr" +) +*14 (LogPort +port (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 1,0 +) +) +uid 109,0 +) +*15 (LogPort +port (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +uid 111,0 +) +*16 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 8 +suid 3,0 +) +) +uid 113,0 +) +*17 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +) +uid 117,0 +) +*18 (LogPort +port (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 3 +suid 6,0 +) +) +uid 119,0 +) +*19 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 8,0 +) +) +uid 123,0 +) +*20 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 9,0 +) +) +uid 125,0 +) +*21 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 10,0 +) +) +uid 127,0 +) +*22 (LogPort +port (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 11,0 +) +) +uid 340,0 +) +*23 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 7 +suid 12,0 +) +) +uid 342,0 +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 66,0 +optionalChildren [ +*24 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *25 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 68,0 +optionalChildren [ +*26 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*27 (MRCItem +litem &3 +pos 1 +dimension 23 +uid 70,0 +) +*28 (MRCItem +litem &4 +pos 2 +hidden 1 +dimension 20 +uid 71,0 +) +*29 (MRCItem +litem &14 +pos 0 +dimension 20 +uid 108,0 +) +*30 (MRCItem +litem &15 +pos 1 +dimension 20 +uid 110,0 +) +*31 (MRCItem +litem &16 +pos 2 +dimension 20 +uid 112,0 +) +*32 (MRCItem +litem &17 +pos 3 +dimension 20 +uid 116,0 +) +*33 (MRCItem +litem &18 +pos 4 +dimension 20 +uid 118,0 +) +*34 (MRCItem +litem &19 +pos 5 +dimension 20 +uid 122,0 +) +*35 (MRCItem +litem &20 +pos 6 +dimension 20 +uid 124,0 +) +*36 (MRCItem +litem &21 +pos 7 +dimension 20 +uid 126,0 +) +*37 (MRCItem +litem &22 +pos 8 +dimension 20 +uid 339,0 +) +*38 (MRCItem +litem &23 +pos 9 +dimension 20 +uid 341,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 72,0 +optionalChildren [ +*39 (MRCItem +litem &5 +pos 0 +dimension 20 +uid 73,0 +) +*40 (MRCItem +litem &7 +pos 1 +dimension 50 +uid 74,0 +) +*41 (MRCItem +litem &8 +pos 2 +dimension 100 +uid 75,0 +) +*42 (MRCItem +litem &9 +pos 3 +dimension 50 +uid 76,0 +) +*43 (MRCItem +litem &10 +pos 4 +dimension 100 +uid 77,0 +) +*44 (MRCItem +litem &11 +pos 5 +dimension 100 +uid 78,0 +) +*45 (MRCItem +litem &12 +pos 6 +dimension 50 +uid 79,0 +) +*46 (MRCItem +litem &13 +pos 7 +dimension 80 +uid 80,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 67,0 +vaOverrides [ +] +) +] +) +uid 52,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *47 (LEmptyRow +) +uid 82,0 +optionalChildren [ +*48 (RefLabelRowHdr +) +*49 (TitleRowHdr +) +*50 (FilterRowHdr +) +*51 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*52 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*53 (GroupColHdr +tm "GroupColHdrMgr" +) +*54 (NameColHdr +tm "GenericNameColHdrMgr" +) +*55 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*56 (InitColHdr +tm "GenericValueColHdrMgr" +) +*57 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*58 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +displayShortBounds 1 +editShortBounds 1 +uid 94,0 +optionalChildren [ +*59 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "Tahoma,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "Tahoma,10,0" +) +emptyMRCItem *60 (MRCItem +litem &47 +pos 3 +dimension 20 +) +uid 96,0 +optionalChildren [ +*61 (MRCItem +litem &48 +pos 0 +dimension 20 +uid 97,0 +) +*62 (MRCItem +litem &49 +pos 1 +dimension 23 +uid 98,0 +) +*63 (MRCItem +litem &50 +pos 2 +hidden 1 +dimension 20 +uid 99,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "Tahoma,10,0" +textAngle 90 +) +uid 100,0 +optionalChildren [ +*64 (MRCItem +litem &51 +pos 0 +dimension 20 +uid 101,0 +) +*65 (MRCItem +litem &53 +pos 1 +dimension 50 +uid 102,0 +) +*66 (MRCItem +litem &54 +pos 2 +dimension 100 +uid 103,0 +) +*67 (MRCItem +litem &55 +pos 3 +dimension 100 +uid 104,0 +) +*68 (MRCItem +litem &56 +pos 4 +dimension 50 +uid 105,0 +) +*69 (MRCItem +litem &57 +pos 5 +dimension 50 +uid 106,0 +) +*70 (MRCItem +litem &58 +pos 6 +dimension 80 +uid 107,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 95,0 +vaOverrides [ +] +) +] +) +uid 81,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable "HDLDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hdl" +) +(vvPair +variable "HDSDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "SideDataDesignDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3\\symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3\\symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3" +) +(vvPair +variable "d_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\SoC_ebs3" +) +(vvPair +variable "date" +value "08.05.2023" +) +(vvPair +variable "day" +value "lun." +) +(vvPair +variable "day_long" +value "lundi" +) +(vvPair +variable "dd" +value "08" +) +(vvPair +variable "entity_name" +value "SoC_ebs3" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "axel.amand" +) +(vvPair +variable "graphical_source_date" +value "08.05.2023" +) +(vvPair +variable "graphical_source_group" +value "UNKNOWN" +) +(vvPair +variable "graphical_source_host" +value "WE7860" +) +(vvPair +variable "graphical_source_time" +value "10:21:25" +) +(vvPair +variable "group" +value "UNKNOWN" +) +(vvPair +variable "host" +value "WE7860" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "mm" +value "05" +) +(vvPair +variable "module_name" +value "SoC_ebs3" +) +(vvPair +variable "month" +value "mai" +) +(vvPair +variable "month_long" +value "mai" +) +(vvPair +variable "p" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\@so@c_ebs3\\symbol.sb" +) +(vvPair +variable "p_logical" +value "C:\\dev\\sem-labs\\06-07-08-09-SystemOnChip\\Prefs\\..\\Board\\hds\\SoC_ebs3\\symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "hds" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "10:21:25" +) +(vvPair +variable "unit" +value "SoC_ebs3" +) +(vvPair +variable "user" +value "axel.amand" +) +(vvPair +variable "version" +value "2019.2 (Build 5)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2023" +) +(vvPair +variable "yy" +value "23" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 51,0 +optionalChildren [ +*71 (SymbolBody +uid 8,0 +optionalChildren [ +*72 (CptPort +uid 128,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 129,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,6625,15000,7375" +) +tg (CPTG +uid 130,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 131,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,6300,25300,7700" +st "selSinCos_n" +blo "16000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 132,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4800,62500,5600" +st "selSinCos_n : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "selSinCos_n" +t "std_ulogic" +o 4 +suid 1,0 +) +) +) +*73 (CptPort +uid 133,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 134,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,7625,15000,8375" +) +tg (CPTG +uid 135,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 136,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,7300,19800,8700" +st "clock" +blo "16000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 137,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,3200,62500,4000" +st "clock : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "clock" +t "std_ulogic" +o 2 +suid 2,0 +) +) +) +*74 (CptPort +uid 138,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 139,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,6625,44750,7375" +) +tg (CPTG +uid 140,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 141,0 +va (VaSet +font "Verdana,12,0" +) +xt "32600,6300,43000,7700" +st "spare : (1:17)" +ju 2 +blo "43000,7500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 142,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8000,71000,8800" +st "spare : OUT std_ulogic_vector (1 TO 17) ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "spare" +t "std_ulogic_vector" +b "(1 TO 17)" +o 8 +suid 3,0 +) +) +) +*75 (CptPort +uid 148,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 149,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,7625,44750,8375" +) +tg (CPTG +uid 150,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 151,0 +va (VaSet +font "Verdana,12,0" +) +xt "39200,7300,43000,8700" +st "yOut" +ju 2 +blo "43000,8500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 152,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,9600,61500,10400" +st "yOut : OUT std_ulogic +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "yOut" +t "std_ulogic" +o 10 +suid 5,0 +) +) +) +*76 (CptPort +uid 153,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 154,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,9625,15000,10375" +) +tg (CPTG +uid 155,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 156,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,9300,21800,10700" +st "reset_N" +blo "16000,10500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 157,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,4000,62500,4800" +st "reset_N : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "reset_N" +t "std_ulogic" +o 3 +suid 6,0 +) +) +) +*77 (CptPort +uid 163,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 164,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,9625,44750,10375" +) +tg (CPTG +uid 165,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 166,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,9300,43000,10700" +st "LED1" +ju 2 +blo "43000,10500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 167,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,5600,62500,6400" +st "LED1 : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "LED1" +t "std_ulogic" +o 5 +suid 8,0 +) +) +) +*78 (CptPort +uid 168,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 169,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,10625,44750,11375" +) +tg (CPTG +uid 170,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 171,0 +va (VaSet +font "Verdana,12,0" +) +xt "39000,10300,43000,11700" +st "LED2" +ju 2 +blo "43000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 172,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,6400,62500,7200" +st "LED2 : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "LED2" +t "std_ulogic" +o 6 +suid 9,0 +) +) +) +*79 (CptPort +uid 173,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 174,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,11625,44750,12375" +) +tg (CPTG +uid 175,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 176,0 +va (VaSet +font "Verdana,12,0" +) +xt "39200,11300,43000,12700" +st "xOut" +ju 2 +blo "43000,12500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 177,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,8800,62500,9600" +st "xOut : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "xOut" +t "std_ulogic" +o 9 +suid 10,0 +) +) +) +*80 (CptPort +uid 343,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 344,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "14250,10625,15000,11375" +) +tg (CPTG +uid 345,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 346,0 +va (VaSet +font "Verdana,12,0" +) +xt "16000,10300,19200,11700" +st "RxD" +blo "16000,11500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 347,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,2400,62500,3200" +st "RxD : IN std_ulogic ; +" +) +thePort (LogicalPort +decl (Decl +n "RxD" +t "std_ulogic" +o 1 +suid 11,0 +) +) +) +*81 (CptPort +uid 348,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 349,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "44000,12625,44750,13375" +) +tg (CPTG +uid 350,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 351,0 +va (VaSet +font "Verdana,12,0" +) +xt "39900,12300,43000,13700" +st "TxD" +ju 2 +blo "43000,13500" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 352,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,7200,62500,8000" +st "TxD : OUT std_ulogic ; +" +) +thePort (LogicalPort +m 1 +decl (Decl +n "TxD" +t "std_ulogic" +o 7 +suid 12,0 +) +) +) +] +shape (Rectangle +uid 9,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,30300,16000" +st "Board" +blo "26800,15800" +) +second (Text +uid 12,0 +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,32100,17200" +st "SoC_ebs3" +blo "26800,17000" +) +) +gi *82 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +*83 (Grouping +uid 16,0 +optionalChildren [ +*84 (CommentText +uid 18,0 +shape (Rectangle +uid 19,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,48000,53000,49000" +) +oxt "18000,70000,35000,71000" +text (MLText +uid 20,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,48000,47600,49000" +st " +by %user on %dd %month %year +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*85 (CommentText +uid 21,0 +shape (Rectangle +uid 22,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,44000,57000,45000" +) +oxt "35000,66000,39000,67000" +text (MLText +uid 23,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,44000,56200,45000" +st " +Project: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*86 (CommentText +uid 24,0 +shape (Rectangle +uid 25,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,46000,53000,47000" +) +oxt "18000,68000,35000,69000" +text (MLText +uid 26,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,46000,46200,47000" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*87 (CommentText +uid 27,0 +shape (Rectangle +uid 28,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,46000,36000,47000" +) +oxt "14000,68000,18000,69000" +text (MLText +uid 29,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,46000,34300,47000" +st " +Title: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*88 (CommentText +uid 30,0 +shape (Rectangle +uid 31,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "53000,45000,73000,49000" +) +oxt "35000,67000,55000,71000" +text (MLText +uid 32,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "53200,45200,62600,46200" +st " + +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 20000 +) +ignorePrefs 1 +titleBlock 1 +) +*89 (CommentText +uid 33,0 +shape (Rectangle +uid 34,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "57000,44000,73000,45000" +) +oxt "39000,66000,55000,67000" +text (MLText +uid 35,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "57200,44000,58800,45000" +st " +%project_name +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 16000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*90 (CommentText +uid 36,0 +shape (Rectangle +uid 37,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,44000,53000,46000" +) +oxt "14000,66000,35000,68000" +text (MLText +uid 38,0 +va (VaSet +fg "32768,0,0" +) +xt "37350,44400,47650,45600" +st " + +" +ju 0 +tm "CommentText" +wrapOption 3 +visibleHeight 2000 +visibleWidth 21000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*91 (CommentText +uid 39,0 +shape (Rectangle +uid 40,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,47000,36000,48000" +) +oxt "14000,69000,18000,70000" +text (MLText +uid 41,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,47000,34300,48000" +st " +Path: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*92 (CommentText +uid 42,0 +shape (Rectangle +uid 43,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "32000,48000,36000,49000" +) +oxt "14000,70000,18000,71000" +text (MLText +uid 44,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "32200,48000,34900,49000" +st " +Edited: +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 4000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +*93 (CommentText +uid 45,0 +shape (Rectangle +uid 46,0 +sl 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +) +xt "36000,47000,53000,48000" +) +oxt "18000,69000,35000,70000" +text (MLText +uid 47,0 +va (VaSet +fg "0,0,32768" +bg "0,0,32768" +font "Arial,8,0" +) +xt "36200,47000,45800,48000" +st " +%library/%unit/%view +" +tm "CommentText" +wrapOption 3 +visibleHeight 1000 +visibleWidth 17000 +) +position 1 +ignorePrefs 1 +titleBlock 1 +) +] +shape (GroupingShape +uid 17,0 +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineStyle 2 +lineWidth 2 +) +xt "32000,44000,73000,49000" +) +oxt "14000,66000,55000,71000" +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *94 (PackageList +uid 48,0 +stg "VerticalLayoutStrategy" +textVec [ +*95 (Text +uid 49,0 +va (VaSet +font "Verdana,9,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*96 (MLText +uid 50,0 +va (VaSet +) +xt "0,1200,17500,4800" +st "LIBRARY ieee; + USE ieee.std_logic_1164.all; + USE ieee.numeric_std.all;" +tm "PackageList" +) +] +) +windowSize "0,0,1015,690" +viewArea "0,0,0,0" +cachedDiagramExtent "0,0,0,0" +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +layer 0 +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,3200,1400" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4600 +visibleWidth 14600 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "arial,8,0" +) +xt "500,2150,1400,3150" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 3 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "Verdana,9,1" +) +xt "1000,1000,5000,2200" +st "Panel0" +blo "1000,2000" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,6000,44000,26000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,14800,32200,16000" +st "" +blo "26800,15800" +) +second (Text +va (VaSet +font "Verdana,9,1" +) +xt "26800,16000,30700,17200" +st "" +blo "26800,17000" +) +) +gi *97 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +font "Courier New,8,0" +) +xt "0,12000,11500,12800" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVisAsIs 1 +portInstanceVis (PortSigDisplay +sIVOD 1 +) +portVis (PortSigDisplay +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,2900,2150" +st "In0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "Verdana,12,0" +) +xt "0,750,5300,2150" +st "Buffer0" +blo "0,1950" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "Courier New,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "unsigned" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *98 (SymDeclBlock +uid 1,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,0,49400,1200" +st "Declarations" +blo "42000,1000" +) +portLabel (Text +uid 3,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,1200,45700,2400" +st "Ports:" +blo "42000,2200" +) +externalLabel (Text +uid 4,0 +va (VaSet +font "Verdana,9,1" +) +xt "42000,10400,45200,11600" +st "User:" +blo "42000,11400" +) +internalLabel (Text +uid 6,0 +va (VaSet +isHidden 1 +font "Verdana,9,1" +) +xt "42000,0,50200,1200" +st "Internal User:" +blo "42000,1000" +) +externalText (MLText +uid 5,0 +va (VaSet +font "Courier New,8,0" +) +xt "44000,11600,44000,11600" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 7,0 +va (VaSet +isHidden 1 +font "Courier New,8,0" +) +xt "42000,0,42000,0" +tm "SyDeclarativeTextMgr" +) +) +lastUid 352,0 +activeModelName "Symbol:CDM" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/_buff._epf b/06-07-08-09-SystemOnChip/Board/hds/_buff._epf new file mode 100644 index 0000000..d74258b --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/_buff._epf @@ -0,0 +1,2 @@ +DEFAULT_FILE atom buff_sim.vhd +DEFAULT_ARCHITECTURE atom sim diff --git a/06-07-08-09-SystemOnChip/Board/hds/_fpga_beamer._epf b/06-07-08-09-SystemOnChip/Board/hds/_fpga_beamer._epf new file mode 100644 index 0000000..9f56918 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/_fpga_beamer._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom @f@p@g@a_beamer/struct.bd +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/Board/hds/_lissajousgenerator_circuit._epf b/06-07-08-09-SystemOnChip/Board/hds/_lissajousgenerator_circuit._epf new file mode 100644 index 0000000..50730df --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/_lissajousgenerator_circuit._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom lissajous@generator_circuit/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/Board/hds/_soc_ebs2._epf b/06-07-08-09-SystemOnChip/Board/hds/_soc_ebs2._epf new file mode 100644 index 0000000..225d8cb --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/_soc_ebs2._epf @@ -0,0 +1,3 @@ +DEFAULT_FILE atom @so@c_ebs2/struct.bd +DEFAULT_ARCHITECTURE atom struct +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/Board/hds/_soc_ebs3._epf b/06-07-08-09-SystemOnChip/Board/hds/_soc_ebs3._epf new file mode 100644 index 0000000..9430509 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/_soc_ebs3._epf @@ -0,0 +1,3 @@ +DEFAULT_ARCHITECTURE atom struct +DEFAULT_FILE atom @so@c_ebs3/struct.bd +TOP_MARKER atom 1 diff --git a/06-07-08-09-SystemOnChip/Board/hds/buff/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/buff/symbol.sb new file mode 100644 index 0000000..f9ad06a --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/buff/symbol.sb @@ -0,0 +1,1107 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 2 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 1 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 0 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 0 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "buff" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:01" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "buff" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/buff/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_DesignCompilerPath" +value "" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_LeonardoPath" +value "" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "task_NC-SimPath" +value "" +) +(vvPair +variable "task_PrecisionRTLPath" +value "" +) +(vvPair +variable "task_QuestaSimPath" +value "" +) +(vvPair +variable "task_VCSPath" +value "" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:01" +) +(vvPair +variable "unit" +value "buff" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,26310,5700" +st "buff" +blo "23910,5500" +) +) +gi *58 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *59 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*60 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*61 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,1352,888" +viewArea "-600,-3900,62412,40055" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *62 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *63 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 149,0 +activeModelName "Symbol" +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/inverter/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/inverter/symbol.sb new file mode 100644 index 0000000..515ce1d --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/inverter/symbol.sb @@ -0,0 +1,1092 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 97,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 98,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 99,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 100,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 43,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 46,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 48,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 50,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 69,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 70,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 44,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 52,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 56,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 58,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 60,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 62,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 64,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 66,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 68,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 42,0 +vaOverrides [ +] +) +] +) +uid 96,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 102,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 103,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 72,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 75,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 77,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 79,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 73,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 81,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 85,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 87,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 89,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 91,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 93,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 95,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 71,0 +vaOverrides [ +] +) +] +) +uid 101,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverter" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:09" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverter" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:09" +) +(vvPair +variable "unit" +value "inverter" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "22250,6625,23000,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*57 (CptPort +uid 22,0 +optionalChildren [ +*58 (Circle +uid 28,0 +va (VaSet +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +radius 375 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28750,6625,29500,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,28710,5700" +st "inverter" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 126,0 +) diff --git a/06-07-08-09-SystemOnChip/Board/hds/inverter@in/symbol.sb b/06-07-08-09-SystemOnChip/Board/hds/inverter@in/symbol.sb new file mode 100644 index 0000000..85e0913 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/hds/inverter@in/symbol.sb @@ -0,0 +1,1095 @@ +DocumentHdrVersion "1.1" +Header (DocumentHdr +version 2 +dialect 11 +dmPackageRefs [ +(DmPackageRef +library "ieee" +unitName "std_logic_1164" +) +] +libraryRefs [ +"ieee" +] +) +version "26.1" +appVersion "2018.1 (Build 12)" +model (Symbol +commonDM (CommonDM +ldm (LogicalDM +suid 2002,0 +usingSuid 1 +emptyRow *1 (LEmptyRow +) +uid 98,0 +optionalChildren [ +*2 (LogPort +port (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +uid 99,0 +) +*3 (LogPort +port (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +uid 100,0 +) +*4 (RefLabelRowHdr +) +*5 (TitleRowHdr +) +*6 (FilterRowHdr +) +*7 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*8 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*9 (GroupColHdr +tm "GroupColHdrMgr" +) +*10 (NameColHdr +tm "NameColHdrMgr" +) +*11 (ModeColHdr +tm "ModeColHdrMgr" +) +*12 (TypeColHdr +tm "TypeColHdrMgr" +) +*13 (BoundsColHdr +tm "BoundsColHdrMgr" +) +*14 (InitColHdr +tm "InitColHdrMgr" +) +*15 (EolColHdr +tm "EolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 101,0 +optionalChildren [ +*16 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *17 (MRCItem +litem &1 +pos 3 +dimension 20 +) +uid 44,0 +optionalChildren [ +*18 (MRCItem +litem &4 +pos 0 +dimension 20 +uid 47,0 +) +*19 (MRCItem +litem &5 +pos 1 +dimension 23 +uid 49,0 +) +*20 (MRCItem +litem &6 +pos 2 +hidden 1 +dimension 20 +uid 51,0 +) +*21 (MRCItem +litem &2 +pos 0 +dimension 20 +uid 70,0 +) +*22 (MRCItem +litem &3 +pos 1 +dimension 20 +uid 71,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 45,0 +optionalChildren [ +*23 (MRCItem +litem &7 +pos 0 +dimension 20 +uid 53,0 +) +*24 (MRCItem +litem &9 +pos 1 +dimension 50 +uid 57,0 +) +*25 (MRCItem +litem &10 +pos 2 +dimension 100 +uid 59,0 +) +*26 (MRCItem +litem &11 +pos 3 +dimension 50 +uid 61,0 +) +*27 (MRCItem +litem &12 +pos 4 +dimension 100 +uid 63,0 +) +*28 (MRCItem +litem &13 +pos 5 +dimension 100 +uid 65,0 +) +*29 (MRCItem +litem &14 +pos 6 +dimension 50 +uid 67,0 +) +*30 (MRCItem +litem &15 +pos 7 +dimension 80 +uid 69,0 +) +] +) +fixedCol 4 +fixedRow 2 +name "Ports" +uid 43,0 +vaOverrides [ +] +) +] +) +uid 97,0 +) +genericsCommonDM (CommonDM +ldm (LogicalDM +emptyRow *31 (LEmptyRow +) +uid 103,0 +optionalChildren [ +*32 (RefLabelRowHdr +) +*33 (TitleRowHdr +) +*34 (FilterRowHdr +) +*35 (RefLabelColHdr +tm "RefLabelColHdrMgr" +) +*36 (RowExpandColHdr +tm "RowExpandColHdrMgr" +) +*37 (GroupColHdr +tm "GroupColHdrMgr" +) +*38 (NameColHdr +tm "GenericNameColHdrMgr" +) +*39 (TypeColHdr +tm "GenericTypeColHdrMgr" +) +*40 (InitColHdr +tm "GenericValueColHdrMgr" +) +*41 (PragmaColHdr +tm "GenericPragmaColHdrMgr" +) +*42 (EolColHdr +tm "GenericEolColHdrMgr" +) +] +) +pdm (PhysicalDM +uid 104,0 +optionalChildren [ +*43 (Sheet +sheetRow (SheetRow +headerVa (MVa +cellColor "49152,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +) +cellVa (MVa +cellColor "65535,65535,65535" +fontColor "0,0,0" +font "courier,10,0" +) +groupVa (MVa +cellColor "39936,56832,65280" +fontColor "0,0,0" +font "courier,10,0" +) +emptyMRCItem *44 (MRCItem +litem &31 +pos 3 +dimension 20 +) +uid 73,0 +optionalChildren [ +*45 (MRCItem +litem &32 +pos 0 +dimension 20 +uid 76,0 +) +*46 (MRCItem +litem &33 +pos 1 +dimension 23 +uid 78,0 +) +*47 (MRCItem +litem &34 +pos 2 +hidden 1 +dimension 20 +uid 80,0 +) +] +) +sheetCol (SheetCol +propVa (MVa +cellColor "0,49152,49152" +fontColor "0,0,0" +font "courier,10,0" +textAngle 90 +) +uid 74,0 +optionalChildren [ +*48 (MRCItem +litem &35 +pos 0 +dimension 20 +uid 82,0 +) +*49 (MRCItem +litem &37 +pos 1 +dimension 50 +uid 86,0 +) +*50 (MRCItem +litem &38 +pos 2 +dimension 100 +uid 88,0 +) +*51 (MRCItem +litem &39 +pos 3 +dimension 100 +uid 90,0 +) +*52 (MRCItem +litem &40 +pos 4 +dimension 50 +uid 92,0 +) +*53 (MRCItem +litem &41 +pos 5 +dimension 50 +uid 94,0 +) +*54 (MRCItem +litem &42 +pos 6 +dimension 80 +uid 96,0 +) +] +) +fixedCol 3 +fixedRow 2 +name "Ports" +uid 72,0 +vaOverrides [ +] +) +] +) +uid 102,0 +type 1 +) +VExpander (VariableExpander +vvMap [ +(vvPair +variable " " +value " " +) +(vvPair +variable "HDLDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hdl" +) +(vvPair +variable "HDSDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "SideDataDesignDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.info" +) +(vvPair +variable "SideDataUserDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb.user" +) +(vvPair +variable "SourceDir" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds" +) +(vvPair +variable "appl" +value "HDL Designer" +) +(vvPair +variable "arch_name" +value "symbol" +) +(vvPair +variable "asm_file" +value "beamer.asm" +) +(vvPair +variable "concat_file" +value "concatenated" +) +(vvPair +variable "config" +value "%(unit)_%(view)_config" +) +(vvPair +variable "d" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in" +) +(vvPair +variable "d_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn" +) +(vvPair +variable "date" +value "02/19/19" +) +(vvPair +variable "day" +value "Tue" +) +(vvPair +variable "day_long" +value "Tuesday" +) +(vvPair +variable "dd" +value "19" +) +(vvPair +variable "designName" +value "$DESIGN_NAME" +) +(vvPair +variable "entity_name" +value "inverterIn" +) +(vvPair +variable "ext" +value "" +) +(vvPair +variable "f" +value "symbol.sb" +) +(vvPair +variable "f_logical" +value "symbol.sb" +) +(vvPair +variable "f_noext" +value "symbol" +) +(vvPair +variable "graphical_source_author" +value "francois" +) +(vvPair +variable "graphical_source_date" +value "02/19/19" +) +(vvPair +variable "graphical_source_group" +value "francois" +) +(vvPair +variable "graphical_source_host" +value "Aphelia" +) +(vvPair +variable "graphical_source_time" +value "13:07:14" +) +(vvPair +variable "group" +value "francois" +) +(vvPair +variable "host" +value "Aphelia" +) +(vvPair +variable "language" +value "VHDL" +) +(vvPair +variable "library" +value "Board" +) +(vvPair +variable "library_downstream_Concatenation" +value "$HDS_PROJECT_DIR/../Board/concat" +) +(vvPair +variable "library_downstream_Generic_1_file" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "library_downstream_ModelSim" +value "D:\\Users\\ELN_labs\\VHDL_comp" +) +(vvPair +variable "library_downstream_ModelSimCompiler" +value "$SCRATCH_DIR/Board" +) +(vvPair +variable "library_downstream_SpyGlass" +value "U:\\SEm_curves\\Synthesis" +) +(vvPair +variable "mm" +value "02" +) +(vvPair +variable "module_name" +value "inverterIn" +) +(vvPair +variable "month" +value "Feb" +) +(vvPair +variable "month_long" +value "February" +) +(vvPair +variable "p" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverter@in/symbol.sb" +) +(vvPair +variable "p_logical" +value "/home/francois/Documents/HEVs/SEm/SEm_labs/VHDL/Lissajous/Prefs/../Board/hds/inverterIn/symbol.sb" +) +(vvPair +variable "package_name" +value "" +) +(vvPair +variable "project_name" +value "lissajous" +) +(vvPair +variable "series" +value "HDL Designer Series" +) +(vvPair +variable "task_AsmPath" +value "$HEI_LIBS_DIR/NanoBlaze/hdl" +) +(vvPair +variable "task_HDSPath" +value "$HDS_HOME" +) +(vvPair +variable "task_ISEBinPath" +value "$ISE_HOME" +) +(vvPair +variable "task_ISEPath" +value "$ISE_WORK_DIR" +) +(vvPair +variable "task_ModelSimPath" +value "$MODELSIM_HOME/modeltech/bin" +) +(vvPair +variable "this_ext" +value "sb" +) +(vvPair +variable "this_file" +value "symbol" +) +(vvPair +variable "this_file_logical" +value "symbol" +) +(vvPair +variable "time" +value "13:07:14" +) +(vvPair +variable "unit" +value "inverterIn" +) +(vvPair +variable "user" +value "francois" +) +(vvPair +variable "version" +value "2018.1 (Build 12)" +) +(vvPair +variable "view" +value "symbol" +) +(vvPair +variable "year" +value "2019" +) +(vvPair +variable "yy" +value "19" +) +] +) +LanguageMgr "Vhdl2008LangMgr" +uid 29,0 +optionalChildren [ +*55 (SymbolBody +uid 8,0 +optionalChildren [ +*56 (CptPort +uid 16,0 +optionalChildren [ +*57 (Circle +uid 42,0 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "22092,6546,23000,7454" +radius 454 +) +] +ps "OnEdgeStrategy" +shape (Triangle +uid 17,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "21342,6625,22092,7375" +) +tg (CPTG +uid 38,0 +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +uid 19,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "23000,6500,25700,7900" +st "in1" +blo "23000,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 34,0 +va (VaSet +font "courier,8,0" +) +xt "2000,10200,16000,11100" +st "in1 : IN std_uLogic ;" +) +thePort (LogicalPort +decl (Decl +n "in1" +t "std_uLogic" +o 1 +suid 1,0 +) +) +) +*58 (CptPort +uid 22,0 +ps "OnEdgeStrategy" +shape (Triangle +uid 23,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "28000,6625,28750,7375" +) +tg (CPTG +uid 39,0 +ps "CptPortTextPlaceStrategy" +stg "RightVerticalLayoutStrategy" +f (Text +uid 25,0 +va (VaSet +isHidden 1 +font "courier,12,0" +) +xt "24050,6500,27750,7900" +st "out1" +ju 2 +blo "27750,7700" +tm "CptPortNameMgr" +) +) +dt (MLText +uid 35,0 +va (VaSet +font "courier,8,0" +) +xt "2000,11100,15000,12000" +st "out1 : OUT std_uLogic " +) +thePort (LogicalPort +m 1 +decl (Decl +n "out1" +t "std_uLogic" +o 2 +suid 2,0 +) +) +) +] +shape (Buf +uid 30,0 +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "23000,4000,28000,10000" +) +showPorts 0 +oxt "15000,18000,21000,24000" +biTextGroup (BiTextGroup +uid 10,0 +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +uid 11,0 +va (VaSet +isHidden 1 +) +xt "23910,3700,26910,4700" +st "Board" +blo "23910,4500" +) +second (Text +uid 12,0 +va (VaSet +isHidden 1 +) +xt "23910,4700,30510,5700" +st "inverterIn" +blo "23910,5500" +) +) +gi *59 (GenericInterface +uid 13,0 +ps "CenterOffsetStrategy" +matrix (Matrix +uid 14,0 +text (MLText +uid 15,0 +va (VaSet +isHidden 1 +) +xt "23000,10400,35600,11400" +st "Generic Declarations" +) +header "Generic Declarations" +showHdrWhenContentsEmpty 1 +) +elements [ +] +) +portInstanceVis (PortSigDisplay +disp 1 +sN 0 +sTC 0 +sT 1 +) +portVis (PortSigDisplay +sN 0 +sTC 0 +sF 0 +) +) +] +bg "65535,65535,65535" +grid (Grid +origin "0,0" +isVisible 1 +isActive 1 +xSpacing 1000 +xySpacing 1000 +xShown 1 +yShown 1 +color "65535,0,0" +) +packageList *60 (PackageList +uid 5,0 +stg "VerticalLayoutStrategy" +textVec [ +*61 (Text +uid 40,0 +va (VaSet +font "courier,10,1" +) +xt "0,0,7600,1200" +st "Package List" +blo "0,1000" +) +*62 (MLText +uid 41,0 +va (VaSet +) +xt "0,1200,17400,3200" +st "LIBRARY ieee; +USE ieee.std_logic_1164.all;" +tm "PackageList" +) +] +) +windowSize "65,29,915,670" +viewArea "-630,-3856,36676,17902" +cachedDiagramExtent "0,0,36800,17100" +hasePageBreakOrigin 1 +pageBreakOrigin "0,0" +defaultCommentText (CommentText +shape (Rectangle +va (VaSet +vasetType 1 +fg "65280,65280,46080" +lineColor "0,0,32768" +) +xt "0,0,15000,5000" +) +text (MLText +va (VaSet +fg "0,0,32768" +) +xt "200,200,2600,1200" +st " +Text +" +tm "CommentText" +wrapOption 3 +visibleHeight 4000 +visibleWidth 14000 +) +) +defaultRequirementText (RequirementText +shape (ZoomableIcon +layer 0 +va (VaSet +vasetType 1 +fg "59904,39936,65280" +lineColor "0,0,32768" +) +xt "0,0,1500,1750" +iconName "reqTracerRequirement.bmp" +iconMaskName "reqTracerRequirement.msk" +) +autoResize 1 +text (MLText +va (VaSet +fg "0,0,32768" +font "courier,8,0" +) +xt "450,2150,1450,3050" +st " +Text +" +tm "RequirementText" +wrapOption 3 +visibleHeight 1350 +visibleWidth 1100 +) +) +defaultPanel (Panel +shape (RectFrame +va (VaSet +vasetType 1 +fg "65535,65535,65535" +lineColor "32768,0,0" +lineWidth 2 +) +xt "0,0,20000,20000" +) +title (TextAssociate +ps "TopLeftStrategy" +text (Text +va (VaSet +font "courier,9,0" +) +xt "1000,1000,4000,2200" +st "Panel0" +blo "1000,1900" +tm "PanelText" +) +) +) +parentGraphicsRef (HdmGraphicsRef +libraryName "" +entityName "" +viewName "" +) +defaultSymbolBody (SymbolBody +shape (Rectangle +va (VaSet +vasetType 1 +fg "0,65535,0" +lineColor "0,32896,0" +lineWidth 2 +) +xt "15000,16000,43000,36000" +) +biTextGroup (BiTextGroup +ps "CenterOffsetStrategy" +stg "VerticalLayoutStrategy" +first (Text +va (VaSet +) +xt "26910,24700,30010,25700" +st "" +blo "26910,25500" +) +second (Text +va (VaSet +) +xt "26910,25700,29110,26700" +st "" +blo "26910,26500" +) +) +gi *63 (GenericInterface +ps "CenterOffsetStrategy" +matrix (Matrix +text (MLText +va (VaSet +isHidden 1 +) +xt "20000,5000,20000,5000" +) +header "Generic Declarations" +) +elements [ +] +) +portInstanceVis (PortSigDisplay +sT 1 +sIVOD 1 +) +) +defaultCptPort (CptPort +ps "OnEdgeStrategy" +shape (Triangle +ro 90 +va (VaSet +vasetType 1 +fg "0,65535,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,1500,1650" +st "In0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +decl (Decl +n "In0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +defaultCptPortBuffer (CptPort +ps "OnEdgeStrategy" +shape (Diamond +va (VaSet +vasetType 1 +fg "65535,65535,65535" +bg "0,0,0" +) +xt "0,0,750,750" +) +tg (CPTG +ps "CptPortTextPlaceStrategy" +stg "VerticalLayoutStrategy" +f (Text +va (VaSet +font "courier,8,0" +) +xt "0,750,3500,1650" +st "Buffer0" +blo "0,1450" +tm "CptPortNameMgr" +) +) +dt (MLText +va (VaSet +font "courier,8,0" +) +) +thePort (LogicalPort +lang 11 +m 3 +decl (Decl +n "Buffer0" +t "std_logic_vector" +b "(15 DOWNTO 0)" +o 0 +) +) +) +DeclarativeBlock *64 (SymDeclBlock +uid 31,0 +stg "SymDeclLayoutStrategy" +declLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,7800,8600,9000" +st "Declarations" +blo "0,8800" +) +portLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,9000,4200,10200" +st "Ports:" +blo "0,10000" +) +externalLabel (Text +uid 2,0 +va (VaSet +font "courier,10,1" +) +xt "0,12000,3000,13000" +st "User:" +blo "0,12800" +) +internalLabel (Text +uid 2,0 +va (VaSet +isHidden 1 +font "courier,10,1" +) +xt "0,15900,9400,17100" +st "Internal User:" +blo "0,16900" +) +externalText (MLText +uid 3,0 +va (VaSet +font "courier,8,0" +) +xt "2000,13000,2000,13000" +tm "SyDeclarativeTextMgr" +) +internalText (MLText +uid 4,0 +va (VaSet +isHidden 1 +font "courier,8,0" +) +xt "2000,17600,2000,17600" +tm "SyDeclarativeTextMgr" +) +) +lastUid 127,0 +) diff --git a/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.bit b/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.bit new file mode 100644 index 0000000000000000000000000000000000000000..8ef74922a688a518c79ea41d8de9cd00ad417e8c GIT binary patch literal 480246 zcmeFa4RjsHbtZVbUjt}B4X{Z z3O(y&VO!qi_;`{6gxIi#wqZ-kkvy^&j>8;>(M~Wvp0k>CNlRrmYD14)pChzGn2bltZc?)w5trp)?o57$fI()ifxk>m;Kq3kLV@G?Fwxmf!PWH$GGeaa-`iDy(cnRYKC`laOI8ZLOEJ9 zp1-7cqa;6j_6Os&b-noF^74x>{>l7Ld!Bvv+_~?~E`FCBz~7yC@bMG*-;>9lJofkr zo@@VH?32g7^yJgWo<8=>y5U*N5sJI#O3~H|lmghZ**UCPg}q^#9_GpSV6dzWgnOaS&IInm8K|`pe|~ zcQ<}=Ek`fwJm0~on3FLV9aA&P2!4(kb^r|7Yvnv&m@*^Y>PcL4SUp|*s`}u;hV|xk zBUo^A-%OYdiMod-tXz%Q8`7||i(`WBJ<`A5^RMUejSM6FWrj1_hQVW+oS$Q+`Et&0 z#EipX^C8YYAhPbpgL3@rjqiT)zux%nFE8uTyU@1p zLR(sF!=OK#rOo-DwfS+P4RWXr*YZ~I3wi9u#pllbV35)+9zT2bd$Zq~eLeYcdVKNt zA_vbOr{9`gLU;*(-MpL0)~U`bCuy}bObS&sD_?H9l6#(Lu4S(d`_Id$FP=O1 zdO{6ek1*cak||L&#JX79;%($F-sYrSUUo7bKSb$|A7cHupA5Pi2=TMey6|75%gZmn zoW+kj9?w6SUuz5FMy1!9=W^2ffm~C~uXG`Z_u~zO_M~5Vsiki^BPuNf>Q9-j5Xd_j z5Bj|sZKrYI+i5Ovoblh0;n57+{)Bi7HR*G@5$EY2M183LXDs%Ew@tHtKZtP^sZ?ax zh*GH^s43EZF!UM5+VJ~*L zKhvwq|8%D3;}-ksd8@A%cUd~F=$Z3#`3o+6XNu}--zHh|VovGBB)URr#-&_WQYt4? zIfb(@gyT*GUWL(KJ)Nd!jmX)vDhB@q3|k&drEo$d9Yh%^e&~%bt~?npl%=2%I5kcd zQk5l5!3A#|?DCyBMD89hq|6tV&jK^+*|II5jH{-sSyF(qy1)z5(`TQzlAeC>RfC8$ zU|QfuANO{qkIu`lrI2KFUQUhv_(6F-Wt^lpSj3Q=Iy*HeFQNU@Q+Jnlrt)X$qpz0J zaY@aepBjHvNK2~Arc)K}K6wJ7pH5GWn^azq@(J2QO!@BdKSy^;K}(nx(z^=f0?RL) z6^JP5OQX;+mBKukYlgKA4Qnp`ycuGwf_RD&7?C*~!``$BL}q=Njuj#U5Obc)%8U^m zi<%R|)P5jJc6m67;Se7x4i|0;8*4nWaNwUuLh+0Y6B{KH9-Gxj46IEk8tf2Zf|;P5(DGl3Spy+A5Fa}?%RN{H4p+=QN9)yKj)1J)u{x0q&;6nm1Q4QWgL*ig27$uFVEefOl z@gC@?WV>v5fVg!q&ll3M92vbek=Vqac!v>VVDpno4xkIac;5$%crSGCnD+*f!u-2C zw}-=0Fxx!sb&q&yvcE8uB>vpCk1pZGx)k3!Cbte8m@)%?eCzhfV7AX&x^){`;XS^- z)sqhL_iU3c69PwqbRUgxyl2?c+a>PX9f|2i)Avh9vG?OY{>oQGO^1`Om|5V?c+99X z|LRC3u8Y{5fu4_AHU}P!#(fV<}cm4=YXd>JAVW$+V_8SE4s}5 zUP(J|M#E3|Kl&es#d|FB@%laS<|6;PThZHfB`BsHHO1EDelEYBVm%dr? z7R4XmgC3;CpWoBnU$8$=>m5PthK4fMH3Cx+F$n{)m&f|{o!tdw&>d1Ur?Wua@WA{hf%Wb z8W`E0M)Ehn=mUav6(jSX2i|_I%=ejc5Izyk8-GvvKS*%8*B^dBquznZb9cwrj=cEk zBd?r_x<}G<*C)39k^kM!`ws*sZ`S25=|?>RdmQo7X9dIdlb-3+@*CRgHGLl~cgjq`^p?uF zs0+GJI-*{~PSyQsxkKbS%5Weseg5-P9%b3kz>C`6mYkGP?46v#NCnFGC!}ZmMhuJ* z$lH7`4rjd&PJ{U^N1aU_Cm+z@=}6D_^jl_0+-gKqx8* zhv(5ZW8{rfg(&pYlO78f&6|LJz8@=U`-h}cN~0?Hf)~p6@&4Zp;{e0&T!+jd!#$xg z!ITbz*+JZmW88>tv;*@24E__SABCE+(F0NvqbJeh-z$MuQ9sfJ2&;Izc+f&*ycn25 zsJvl~o1O@tZNP0ISVDgt#x?SZD7;?$E_38;`QUQ}bc*e#=g=yB54`r*Mhd3y*N=)a=P>J&fAmtehCVC{9T>@V74q~PG0>$ zaGS3Vu>D?A#0_&>i% z){@?r)C8Ov`80#Nd+P3=_0_lxM zyRP>OrW50w5pN!HJv@SYMIXAo?I^f0;NGaGa%nasF4s$?%Y6f~SI{Q!*0QTGF}cHx zd|f(>oHDy73g#`Pv!5G~|K`kF^w^9XDIxF4P8pGcbe!GGHkP!6YVFNr$b_4Rnf z-#M>UpDy|ZUrw0*g@eb_443L_iEYw6)C)Yx9s@}`t(x=lk#pOW%(KZm4AkE%LBOYOZc_a zlXHFVmurgy{zS*HY(KM`%{ubl6bcNzUv~Uc@okl&WJyA^bd7XMU(X#z*f*oMdylf; ztrgT-GI&{H<8X#DW+SS`W}(o~WEfxVA5Q$2nVAr3-2$aBVGV|(!1N3R!O-+LBBLOP zya+e`o-pvkag2jO6TYotx0nfEd~3`(D4uy?EG={)zCNxRLC| zon{9fCbS<8`j4T*;HKiuNRNUMsFVW2Wt8886460+pgII#^^ z2bcvAL6>J3faS>1w&lsN5Xl^E3OJ0Gw#g&u2B-Ue2|IO1Bp<#J`HnFKtk5B)hrp8% zP1EfPgwxY-6!yS1hE>^0Z5xvVvODZ!1rf_e4kQVKdF02SZ95GR)j*aG>FDUVUBV6@ z7Z-vZF684;%>v4g5F_0YUeu!=knGMSHH=^&9}X3!C*a>aywD?^9UlybJK*ybd>FHk zga!DKyaVajQ!RAQGqp9x1OzJC*Z(0ZurLH^`_S5epktox?mKg{&b5JBOY%&({H9iO zZ*!&O<9(-t|D5a$i}2$gP=1> z0*q+E;hr$+D+V{+g49LWogMuPtm|!$^nXMb?~vq? z4jq3Sbp-D>^2kAvkB>=o&A$j_C`e=gFEY{0feA)FnY_Q)pGXo-PJVI#)${58DJybz zDq=K3!IAigOpf%ZPPATU63ca+pOnr}C0(5dRP>yZ&gig2iAt_RFG!4hGK`K)b|z?? zVwm7AeE47OeFUwBKCL?Bz(>@tmp+WAzhGDbB@b;fd9geikti@px28Tv#5wxHU#mC`5*Jz#d>M;kIX42KCT7`10tyhVC!`QhIGd(ce zHfof2WW2HpU`VtZTTX&*@i+`4?6EW82#BX_H*%R=IM<~!#886H6ybh}_aHSjq4Q*k z8Y?H;SdmO7sc|V;k^|QtGs5f5IxFuZkhTdZ@Ra6R49+I+dSrmU0C22tTI>b#F?y6I z!;?&B{oN85dCHsWB9kN8sySe0+>>x70A-=N^w~{|QS}F|?JPY9=)8zJY>6zRVCIjh z9BQ;TUDQ$ex5=_f(U)9dpzlO#7VHXlV@XCjRvrN+k~^w`t-o!B$vSYY(e}z+bL3=q zJ)1KVz_G9P`5@rLiGv3pZU8I>FCIG1^KFaglaZ^vjOY3=@lWQt*1QV*-Ios0x2X27 z>RnXzJ#zj>fA-*a9{;lktAF$_vi?%m&&YWh(Z{IjE#=&&9PK1HcW!x^$4`5#KNP&S z+BSeHeRk=Gf05F+i#}e~mkPd7UpnOep1JKyhw6`KZgaFdQ!Yq~ zKYB!c>B*{mF65+h=iIBSmIvP`_!^u&OL-jZ$^%yn@9_3tyWiUnpOXFXJ8}3MSs0jn zJJDRd!hPDsxm#K83q>EJ#$zo$M!A0xe2J`|5pm7~h7Stq)qRXuw_Bj0T=j>Gb5gso z(;@fkYV@nBl^b%vKc?=WeB@dAzEzdirdz9DS5;OgpA_OOu#Tw42Z(+@s~pf1K0pMd zM;Q9Lv>DE6rehhTZF+A=^BzsVDEcooJFMRmeVcIfW`0I_d9F@dF`lO2zr^x*-5TH zvlut6^@inT`u^npO3n+Z>Wx(I739W6`Z2i_^bKN;D(yU*a{9+9$1TEr_buM$ZYK9- zkl$MFyYJvZvUp$NvAlfjn3Lz&G3RIWlX>T7M4#Hl@4E6JwGHP!M`zFGeEK*oeivR* z%N)6nFFC)`m1Db0|9X<=qsQ#GX6f}r?g-&pbH<2Fvo&J)YBy_aP?A*Pif6+R05mO*7`{??O9^YopRuhaxldE>E0p^})$wD41 zcM}g5iYI_XQn`B&YhJHD8orRq=|b0wXHS{5AcMH{x>D&H^iO#x<7ZEu`t?(P4w1W% zvmke$=sG!g@&s4C$4~uL%KkdPlZ|>x<`qko)248mqF10i{%0?ZpRm4MufhQ2HHw57Gi>uKacf9tUU|XH4BeI4!~4~jiu^O>B1PL7xfyKn41CFe{cSNO z;eGHWLb+eM{s@_cx$8lz13RA})~KI8PV&uoCj88QxwjmO?v>|1<;m1scdTyhzvFSU zAn`Ui@Su5zw;OOk>mT=-{{)y=b z;M*dPlD}tiS_4&J8^sqoYM`5Yac9r4mu{c@>Q|*OJtq5?ZkkALiMN&1w%urx&zEFR zsJ-$tCE2F%HJz!4W!q7>MS$Kju;2UT&z90#2fm5-VZLljdTvg4`AZ(&4UTpCOM7<6 z%~*l}Ubxx%bnS?4DRn{Lkwl6|JCSer*YDkF(B?jHK#Nlz*@g$Bs_cR-X|;tKNp2S#}nvNT`}5rFMWz|;jllz zU#wHE{ld|s{%QIcrR*jH+n-qcBU~8qkpR9&|K_gy(SN$716OC^26U`o;kphJZuh$4 z;lg7_kv}#C!6HQ%n`w1a%G-LSpwO|r0gb{QDWlpFu2XgQtVmHt&d5MN_%#q&dGW3u zyhzGe!v%ir_q$}mV1=c8`da7_hi3{V@Lt#zp6T*Nd_U?*J$PXLel#JSe%L+T3BEtk zGsvYQFD{_Tk(CGWP9GMzR zj&_w~u3PqimK6Snj5o+eTE2+^JeC9gESAQ@_+aO(>Os_D|A|-)Dv7)A!J0FNm|d#J zS4M)N;Q~5Quxl83r_@*A9|~iH5jq1${fV#ZutP>!unKhP1SOyqpMnwX$`ooAI-D$a zOFV5*9tyXhGF(9=8}fZCXTKB;`q$JfU;f_gPhEE-OGWn#Y*+DAfLk6orBH<+;OSL* zGuOot1O#YUB{QZdL&J}Vr?4;^!ob~Qo>tyufSxRSIusI`V2@V zD{=6^QH-afr;}^`xKC8~T<7y=l&3y)bkZ}u`u4Z{QY^EdVo`xNAMKEb{BM>)p&X2r zXr-4eB`CMKHdF_87aK@Idi&G7hXN_ zxkw=&+2lk*Qm&&3*K22Qw~x-z(o z#p?_XXBawb1oiMk8KYdmS~FO7CIqgB*KAz>+$;0s_Z=+b?4|wC55}L8;n$=a42?dm z=DJUN=DjmVy|S3$NB?x-x&Qm$h?w^c7$lwTcn4OnyJepg3-CQ1{`OSbCtja?q*xe$ zD{|ld4}D&lu`v4P*Ulid8bKYRmv%of{Mt3}wUXIyd%p`lyB)yC=<)}Jdl-}tJ%&qE z`pvzT%1`K57U1NB=rR`Z;h&KVhSy@ku^VgKyTvPZr?AJtUw_kflXmux{P5G!^YDr4 z{}KEcVZV{WnYWl5X63oUzkAEHbf}Ss-t-pjPekUu#oh^D;hIL@8N)r%eAWd1UGV|$ zSMJgNUAR|<{#}2Awhnr^VlU=!!3wg!Ua{#IFwUmI4?aM|``2 z2{6VvEN@}>4wM1M4%%E3m zH|-#b?$KK5X&r<^zB<}-OBme~s&@r(B;%nPl)XK&XE+vL1$ZV&WIJS|mGpaNX0^CVMfM`})5XFVGXd$ANzWh7aL{L6hJ*gKeC28hE_{HP!%RKqFMa zwJ^Dj&{@x5)5?JKO*(exJSI+3{JoeYMq4FcS&(NDJR;$|AKgAD|FUmEq9^D6+5EjS zFSkcBFb{n1?#W^_KRN#a>FoZ4-}@4p47&&6(I!!tK#2a5z-@U>CQxdEi}sf!j{D-d z@ZBA8EIYz$JJ6ecH9%{}3sDqxqIY5XE}flpCC0D@i6@u_!Xdn;hYQ8IcO`g` zoa;Ln_MwoTIcP26a|z}(!3UDl0)=k~sTQlWcB3y+|hzaOCWJLMnIFRO!|QtJ%3 zrffS0QHO0fRBsspuO2*Jq6^@kyEWB;CWYJdJ-p6h|8Cvm`392}E#4q5-=9anp1nnO zbc`cjVWKzGx5tZpc#FZ%fr$jJL?OMS0AVm&44y?y7#UDKAu7gr8_{7*i5S=|RF6%< z77DpN={bt&CKAm0vy{C%6f*<*Xb`DjNMQ;JIY6UQ3LS<6_j6i;elbZd&PI$aO8w+wKy zVrsGVf51BxX24HAa642Yny)qBrDOpH1Sp=g$X;A%#0m(Y?HMOO4}ilk%e??-=0-AL zT}x$AE*}Zshyl_V$Yw|bPzz<> z1J7#5uxITg%I7%Bz&ggp*t61NkV%G2#zi=zbHp z^23ENdV*sg?uaqD5=EMSE`KPW5thJ4^6feHGbi9`LTwfw(ce3X3#4cRbBTwV+Bz;O44*BO zpVxu@RPkfVdAW}hX5Fhpqc2u%${n8nWKFrYj{UBlJj}YPeYjAYdt-;|$ESP@Jib^f zHTIKQ!Z>cnV(u#C#&qs6mHRQ_<^soC=Y8dNY~oH(#}6F?xV@%`={3dr2rNIxwRK%g zczOBY!DGkn1JwEfySs_=)ymI@D)%(E=M(Qoi_nF>U)UMzj~Bn2*XPD`cW=n=RfmrA zj>LPE^Z&{*Ya-|2hY#XcIadcfk%w3_p4IH65Eu`VRX}{*{Tp<#8mqKmQsW^7me275 zg*3)5B*0Mu%E2Io4TG<8=34RZ!9+d9VTJxVTJ>;5XJaFj(>4p%G`tb%B z0DINW<5y%wx>%3{>Fo0a=&K60eghE#D~6kw)<{%|&v=dWT+W|Cz|hNpfafnxQjI85 zgicx#(8#yUHJrX^%L(NMVv|X|hWx7~&GpK#V!CE`*gPHGjKm;Cuv&?ZpQq2#;iov@ zUqQLgU;BAuaRCn6ix9p?jS1bwnQ`j~^3qqqN)gZ)4NkG=gGf`$auJ9F7&-0ZKqw_i z;PZGDD%8B=kv2A{=M`3c-P8L{bekJ6V7yQ3QB=7?9G7?PXDmCMKrWv-(|kZ8Q3Hxj zIRJ(Df}FO^3DSpT7~<>$9HSY}4wGgflp9M|S);WT1!k)ga_p!#_-tJLs(H1hPBy&u ztWRc?cBWEj0{e;-36z1FxY%(fXy^y7nTOJjm)pxmE0Yl04u(Zqf>Kfj%M&W>jdU2dHoz!=u}QH~90vEt@eFR}pV~ca5TW@Z3ib}1B6m$NoHeA&g#B@FgNr+^BaRaERkl$M@ZVq% zBX$sualbq7QzWfIntbYot|8?TkOLSFW8L#~`x(|)fbRzz34!mFRI~A~7Gy(^%IY76 zSbnW6-V?PH!thBG+f8%6$pXq^<*tZ~Cumm!^tPaJK~Z;TU$PjA)An~tJPW4AztMQ7 zY~UQD^$^~~YZ=E7AK+EzXs1GwtSsIQ@ zv(%2hcqGwiQT+R}8vFVM^7{sF&c%0VLm?VNy`95Pfw;~LGyM}N&Xhop;CKuL z!2~iIXix!;s{vgU#rMi?(GaROKvx4zz3L!YaHNOp5~hPsZ7p2};o8O@gPxCw>_(rF zaqm0e>NqQH>Y+kPV_>x^9FUy~A%GGyDJ41+VLyhGlF5ekPQWf12r)LS89e2(@VZ6I znNIP)o&wAN{B>+`hH<15iv@XG1W4on|!&ppu>5d{z~)r!#^G zdwijtY8dR=J8Egyq$0CqV!th+|1^D*aPrtt-mJzsUUxV2-dGeKOi@ zb(*Uy`{$t-)>3ZDn4Rb+1ck%kkZ3QqETp=Jaj^fQA3&+0frFT~TapPesLWtgOFVno z>x_Rjkg=6wmXt%@ju}mFR~sCj(Ztgef>lNpV?a|yQ9DG9W5LuauME5s40ddq^5|4y zVFu?JOvAlEb2cxb!3o|2I7JErH@Zpy_jdSbeFi>sL%5ERK@AS+1ho$L?=kyiN54{$ z?0K)u#c@%5cXQE(#Vei~z}j48Op7UA1w06>kkQcLPO#mTjE~6-*TnEU)mhwMzzE=U zF$?$KAh9Er5u?SR1S6vY&Bb8(&&0cA&gZJyoWDo;7z*|)m<3UupaLy-OurMif*zT= z<^AIa#$bX#>%GQIc(I%&wB;3)lA;+R|?R1xKMb+j{Q_f}VqL5gf)8adxse!hGE!%eGhA zjWDaIK!&gd=_lll$!yd?tpF<#1Lp%=dNly|j!1#V$NZ=To=y6P;gXN(IBJIH$M$eC zI>LBQ3M4WOv(Ppa3 zWo2h^)xs2blwYw-V$czCfQDT8w4FX6jev_89i2+;MOw%&qB(JAN{yHbXcw|67_3yD zMY!mVa;9_vw)3+%GgU?6ijXGLA~$7S3fd$C@{J-fBOx%id<+K-Zlp7=Y{Nd$VFKWi zP3n0rJI^+xj2OGM8W?&Cr;CBATy>HmD~ls4jE|_5z`K%X+t!Es zp2u<&=e86y?~m*V6<`WNg^7-RY4F0OWm_dzE^H;5D=zH0^%3L%EYd&>5JMpi4DArM zu@+fv9jTCpfC1e4)?tDSQ|)3nOTg{`R?YQ*a7HPHMsaXvs6?g^BuqQh^sKXjGi*?i z%0yExLzQ;?oDTAIC?U(Sq6XR}x6Pn-(FzFZbGBpFm#|uKS=yFC^?M+lUu^E}l&7eE zkBGiS-0z9LLtJZTn3%psTyrPT2Z=sbuP1r_^~A>)UyojX`Fpc3zl?A5Wl&q+xpP06 z|H=Hhb2*QDSLNZ{vx{rw&eO}S*1Pp|uHCy7dHUAGYiWksvZbz(Kkef3_loR|&o00ep1s z_*yFEkhfa;=bm%ELX7{`Y<1jo`#Qb&BKdB-<~~py+mA2N!b_V=h3V})?P9ZR^mK-ArUP$&U%ePSnsGc=4nh`b8~?E49rtaV6vdYIh8Tj1Lakq1^FaBnop=> zoySybt&tl{B{^+Z$!)Uw4(d{5ZC)+r>W0SIGuH;!^W``UgnXu&)9&9Cfaf3~D&q*4 z$iAG^Y*`QkQW)bNdRU*m6P^(YhQ5=0*!oU$hi6pcjdy05#_Y>EFLet&vJQa76$dup zd*AP#cky3n|(L-KjQQ!^WF57zCvi_Vr~5w2zzr#PxlQcX^?wAzT}uA-X9w3lizr-aT+{%%xkP^$O2x*dpDcb?CjP8lS z7CSN(eg=i%v!5Z}@ z7;i9qJBWj8(2^n_T)>I5PWewf)j*MB6#V_)#||O!87FZJ@36y4jQ!jrdJ9rqbnH1iy!dIlhWry%UEd15QA#j$7lMqcZZ?YP$m zljt?xEcji(#w6G?M}O6TZVjNxGjJW3S2;r(4&G2cHVVtofkMAAAaT%52>ZZTj4>MP z)gB75j#0?QJthKRAe6F)qiKKwP^uD7;RjxU$8D{U9HTvxYte?jxehXMR7PG3Qlglh zB>|gw(4R4ejXDLH;U-15EmkdNN=)YPtH?lnzs8i*7Y}Ri(@f%rGrQCv@&?|J0X-eg zOet^5-x17>&7u758kX_Lwd~RTR)t&-q+NHmEMfpK-bqyx5$9Ql`Gs5YdFO&El^UEtDEjPU^pYpca)?XHR7(^t*KqN zB&A}vdVyJf1F?672NH-I_3a`DLsi5N0~(o9Pr=tOqJ7LfqCWQ=rkV-7!XgvSMuHn0 zb{)g-Fm@jVih_d*X@+Ijhy(|)FIIejG}0&dGG{FPbne_Jpy~x_Dp_V|JbrNBpomYP z0DKyiofyL}4l*?U9LCubWeE7l;9m;O^fxsIrunz)6`blw*)t2g@QXs)?;-uQAO2dO={4OkIR(J1es) z+{rP-n7WwIre}}BpTTSZ8V(AvNsTU+{zNDUQgA*dyqgwu?dW0Fm; z+AN*QutPbO~xa@-`zMY3|Oa!)DJD$A=goFP8Ut11hf z+)_hQYfYD+CYj3+8izN-d3pKSXRnkVS9(NTxmY088tWCpkt?yK09H$Nz%*vS7_5y|W)EiNaI+=1ms2!PaQ-e;q zpO(en@T$7i7Gm|pA`9&BW#qR<7Owb3fp4GUD*1S$Zvo)0Nc7`${!9Eup7Z6TUsKM< zSMw_VKl#{rIjXtuqE`K^E~l(!d4F1T`}t8Trx$&+7@~eW@?8tD}#D2FK@Gc zUbGPNFm=9Plq>h)hnwZyWITf@FpiA}xWw%23UAXeL*usq^P4MVRgfC511UB5qn_rx zo80DrXBdMR9$OyreWNy-A#7tBNR`d0r-l$VUR;sW@qKSE`O=xC&r(-XRRT`Wi+--C zq8YxS(sJfRj1AUh(8wE&@uyfJ0Ec+N-)|cIYS=eq{p7NY*YI3FncnZz7YN zjOI#oFlu9hr?{+O!8JB)5`*+oFG0hb+Slp^d?j{MHH0o3-gVg})D~dZej>jNo^1p# zK3o#fAPI?A#<_#R@Co7mHrVmPfU0S*S-Xh{lT;xtJKwLg!{8OPkHdq{Md&?JO#)sW z(0Usjw3Sa~QceTwY`UuvHaG&Fs^C?FmmQk9>=G&k*d>w9OmxVN)&4p5PzTs<1_8Sz zDpm*)wquoDJ;23I2-rVrdVpo(WctbF9iQ)%HGIEfTUA4xxD@C<<CMU)%d`po{>o1h?vJ6U$l(ANhcv)go+fJYm$N`%u0REtu)1I8cIN{A_v)U3i zGob$;SC?B1s4l^pj9L&n^d$Ib6W59RGyeTHlHAJ%gA!oVy!Oj3uTp?QsGxDe4jI@X z?{tq&^8K&yjYye5#C~4VKKjC8T(@|VHxGeE`UZ#%7!Ytk+~Bq#~bhfrZpCNz4M zm-$x$a^+CB7g^49m@X4FDYM9xocdfVsX?oOc!Q7$l6#OEFJFdyH6;EFPD4rs!3gph ztbuDzP5mGkG&V8C!+=J0pTMVq@jVuGZva0|PwnWxWqUHJwu>2>*oSQ;_iPWiFPIl6 zBPKynxE`>FO|0#GLSlt7S`6T{LW$?>^lgqo>hAyYWZgC{(R2I zbd9ipDel7D+b2aKrVoxps{-nr`}kxQ?Qpi26?irI7FI2xNyMDxxi{bl&rA2D<-8r| z`Hp$qnHB;#K!LdcSE-JKk%{1&!#(WEF=nrO>A&+f1Vglaw?YbdI!gSnukR}+^D_B% zPH^#6!G&ZYNq#9gFnMqMwgnX7pnEl8 zc7R;YtO(bnHHGH!^_XpyA2uhneZXPlT17qWu$GhX5#6UGemwIQ$-`&?7F z=xMxentc;96?EI9Wy)Nfj@dPpp^MAoTDB&wy$OIO=2dIYw#a-Bxhyg6*%+?*2S7^$ z^Cww&eTP3xbS*ziyZI1TkT;)JD>Zr+u=K;l?=F6K+2ePZ?Dz9L()`w5y$u|Xdr+M_ zx3Z+oz}cragBBOo0kibXx2h4>eKQXQF`mZ+4F;2Q;>pE`e`8k#;q z_5MFsUE+EHa`_>1?%zdRdwjM&N0q9{YxVyI?0~%XK$vCp=6+V5VtY^6!yD4Luj^_- zd8kF&Jl_N9*sxHl5Nf#>!}a^J<{nct$z)v68WytQKP$+XrytEJzzbm;ivZS;Yn zzZ1{yTY8Rm;nngU15khN2*nV;_eb6NWkAP)J^pyvwj{@Rj{iIuCahL&o8KB1K*K&n zNegybXYnl{jUR*tEQ6~Yq)I&*ntupb~@dGcOO45S9tdlXsLoHbN0%|t6Po) ztqxp!(j&h8rVN%_9K`FSnPKroSI1?YGx>Bj9syGid8%7mjO9SSeK{{omGSwN_(t!e zUOM3ae+PQ~okl*obZg}Aoa>ri($Pram_Y%yoY`w$Ir!PRh~AOcOF_Gz@`7kJ*lPtY z$zH>q`kdp}WQG&?lQCZ7uwY+I=ftJs1X-_?!A9g7{A9Rj<(z<|T=zp;TY48T>pCAK zhOziwQ~0&R^2(>L?|xwZKv?ebLvL;%`Hu$PVZU3+j&F5ISSn~=*`IEs^i~9SB~MXw zyk7jO)gqEdK^k=Jo9R^`s`1VC#!)o0`dB8>XJp=nGB#$~<;=VF{33UXl$gSJTCs!M zRbXI)E|a+g=HrDD3;bqZi-I=?!Mlu;KG%Z&UX%Qe4!XZaU+ChBv-nJ8?`|jwz#orkChWOJmdTuxSi~dIUV~-SOJG)Pm zd!%HiYqlHh^1pxD-A+7wgs4SsiLe&MGKStHP;or`1r!Hi231OYvq@I_Z(&kW%S zJ;ta#0xT2#GK>dwGl5bJw!HGA@MgDBmaRy^D7KI$rw!ib3z^8&!-?8EZ-aGntX_D` z$U?C@>C3;Xnq|8jWbBUxSi;=p6jRA-o5E2EQI8l$;jWBpz6b)puI+(iRP181=mjf) zvS~Z!l{|w`$9zxpR{l2P?Hmd5KiSuNF#0xD9v0*de4djP^epuB{B!9rn2y@|40tUC z+Y>7{WKLibY&o`z-fuCQ+HUb=BjYQk5w5o@1H3g&vM2^J0BuOyJqU62_v6YY3)eUT z^aTroumqCWuAL8A94Kt+YH5cfe?E+kCTdc86D+oeM`agW#7ed#!|YXiSdy$YL$c-^ z7n32kMvgBgPxCaYIs1*_VxR`Na}|@PRyhX2=fQYlg0g3xYK`r|=|<^2l4z`)B2M8T zC~Z-P?KGs>c`{JI?l~{#h*t?+Ouz|XE+*-k)A(7A9Iq%qfnyKT1cPTgwu{Pw;9Wkb z%P+!-W>8SGV;20QS=>Fq1Z~gtAzbgi3>q-C;&;4j05kw!+P1jbbwC;%y0+sqOenG( zt0T2~)cVG-;tL&_1gd5%%UG9%)C-rD-Da-b!UK|uGqie4(kf^JtDRz-2Ima&P>w5n zm4$MgN3`*VvB1TwadVH5d^Z*MO(@6VGJ5`vC}JvQ7tL$FCAeV}Z3|LkfeZU~@w<8W zW*&TE?6>k(!`4^G8=6GfNlp0;LHqiqfwvJ!?2SY}ARP1$vVKAE38G(69^RO~Q5_Tg z-@5T#*W>u|1#olUsG2>Ys4sN4Is;q1Gn)M7`J1(+*NnOGc+1QD!X3W`$}irzFX55S z$2{VVCpE{}+^g%txS9Oln>~K$>8IgHg>x0tOUfNNpKhbAU-N~%Qesnp zAPi#dY14sTp;7)uVnxJNWoWduW+R;k+l|-lB3n~Y-DS%a;@CHMxKHuRB)o0G50f?1 z`#O%T?v_S1n+L4sJv0y26b7J|achwXc}8z|J@fJDLbz5DwlKk;$DIKSa6g)oNpIfw zmgEEINTAJt0rr&|!P`8yAC>Cj`}(c- zQbCH*J{a|o8jEr|x7W&2TZwZZ5U2`We9gNfTDm0c`;)*O28;~{sguZ49$emVjXG>3 zt)s!0=6#l4l5avAYJr{#xIa|TAMO;~UZ5W|7SW91UNgY4mtr;50eGzqnIa3kk1s(L zPIu<= z%B1e&Qo!*G?{`_5+5yIuYj)>EYhrYF3)#m}@GBi9UJpNXsBqQC_&|?xUp>UeEO4O^ zddF4`kY&CEbS27Ys5V!n%61$hK3VouiCg(G7$e~nI=xE)!UlTiOo2^yVhQOt9q)o^ zBsBQ`8XPV2IX%6rS`7>Yp3`(1O5E4&B5aB!{~C97?5R`4Ro_=C_U*#{NPX8ACHZy{ zsV)~#h7tY~GCMos^3RhiikQr6s*hP9=~8PWrTdPS(0T}zFao@DrgT_LbZ;pLW<&fq z(aZ#9pj#qidQ9-YOE4GwcA`Fj)aWOQ<+Kn)xvVx|f+W+xIBX(^v3-ilQ??Gyl?y0x zHjHP|V_&ESKu?ZMEze_bM6&$D$I)LR)|QfRx`XzPEI#i-TWx_GENrb(E0Y4j<0=8{ z{l3So8pMi6y z2Cc}*F~esw$)a3tVCO=`oN=ss=lP z3ADRATw706hWxE+lg+O8V^1zF{)fkxmR|a>8`ppLAGWuQ+N^EPSI-=-$3vB3#}Tji zb$+W);Vr$=oaTAB+Vg#;HmeP`nqGEiYa_wg8Mb`rPmKeauyf8D0$)YnOB(Oz+py^@ zaD)85c<{3tlpE-Wg;)2$2n{+-LAPP^Sioe9Gw`~!yE<#EvP(XH12*`p(3?l?Ev*UM zDezUAE(xUeYA|IpMkD{K(dJ@m zULp0u%3Qhba1=vxG9DPNGYDevR-*cdhverOMZmWPEspB8*s`n^I2p>w6OR>8HO7jl z7GXr@A_UFS)F=JVC4M;@PEbZ3<1+h)jT|kau!nIh!5?%J!+Jc8tUi{|kmrwG&D59J z2^SEaao@R)_OMvbsyGa`pN)a}127 zTSULszq_r!q49;HyJ?^8l>d|aJCHfCh+T4%G8`4(zoNtL1I;|%6YW!BdxmUkO$Ni%Y z9d|oQ5#M(o_mOgYO5Jx~WApvXZs$8R^|y(thg^8;)e2UILJw~Pt2Pt;`^_%PyrLA5YPTZ>^(5$UB zz_-bGW5cibE$zt{tPc@CVbxkNH$-{E6^~FSzAU&-{ zIleuo&THtTVWV@6@uWRVI^H@@W>t0Q0fnQm)YOMmre_RIm6>=ve46O#%H!xg>k>+ z+d&=M-?4pTZ(foTwTUfl5OVEKULDxqWKVPGGl6CdO=f+Hrp1jEWNvV%)y+Jpno4U- zGj{W|%~EbOo@WPSksE>8_M;glKh#dz?CxGCdabR({naR5;0AxK0#;Hj@I+` zk7;1_CqZmWv&~Wlm7GGhuw2&&tW}RhO>I8s)h{ z$@_$#0c6|YfKGk*5?vprUwytreG~fw@bDeEgyuXt4gPe5PsxS~Braxl056szFz787!ivR%y1`pwcsqphPA`EYkqOhGfc-Ab_t7Zhp5=r$L8TRU~0l| zXwZq4H+@#Ms)(>kU#zH+CA^d?|Ak5=8z7+aHg*_RQBEpnA3Mxd#LTH2y9j(^lv`xV z=}Nk~fQRRPRma&_#06!`dP+s=3udUK+{}UB`}fuL=f6JIn)`8lVf^^r$@uW~H|-FW+y88q|hcNu$-|Zpz2l)$)*iZ;w7w@P(>9uFq(T5pVD1xldFhrX5!G zCu$KRU6lNowzN7t`z*gVM{wVst_$|@dFC0JqXtcQax3?cZ zeiHjE{X6Wh^m{kCG5v{WnvI36W1-jnqBZYL>u+KDL@D}20S_5W1hL=J;8X$6I~evF zCq3&g&K0Nua`UOf)IOh*heHExd2l{a{qiYV1eW^ZkhM;H18MYxR)c)ss6newRr;J? z7(IvunIP6u z_zN|Xy_2>1TjsQll5$0n+f3BJinoz9aho7mVi$M!;t@aBN83vmZCvq@VwCZ*#%2O8 zwQTReI{SFw+{9URt)fxwFHst{r{k2gIfxkAyZjk1rre4y%IgyF($h-W9?!KQLBL+&6Ie$L2x^1v8RTJmM0H; zWsx+%gH~B?E_Fbk6b&56I6`s4fgE(nHwN^+5>EK$sFdM2$zTar0+7d_GWcP5K->~6 znJokZfxC0B7~8?$l-D_$Q{n}(~uw=k0nP^s`PE2+?!?3dx95I&9 zP;0?aikrJbU1LDhv?(_O^_XB&fo)r8)QF7&6UPh?`+%k8C~xY?7&!ZZHL&}!8@Tn5 z7gx`19jevkKd+_Pixm!Ho^zZS@NrnoAst~%-Fed4$zq0^z=}@LB+W)Q>|wq z%5M*xtS&jWr1b!6RJrw(ymW~ZY&2s3YKs7~rGf3NaPS+N4S*=y=5}K#7q=<52y9S0 zBe7vrtG8`)#a81^Hbms~nw*2SmdP3{c9lqTmFmr_z1sEXa%?3WZzW~dQCGE&Wp9|G z+nr^@G{sdBgx{LFDiyaYy^0ptr|T+T(=@IwXPeky7Wmm4-~Hr&z46^&UggNX4ZOjG zzDnXOFaKctDph?&t6i3*rQ^pJ7nhcnh1i`*k$33O6|JmY*aoqHN=1eZ-p~N^T}&el zRvR{z1*U~J>QGk0n@ZWXGR^{z{`sGNZRblOC&W7;zy;aq$qmGXowh%;4Ylbkkb2r~ zML#3jeo{(j+na0dY~P-&H?;TWd4)0Apqbe3OC^omtxluCH^oIzw{J!{TTw&fI==h1 z*j8`rT>rHCRgaw2q8PnbvyJ%)76J$i>+UDlh-H)k(-;SbqC{wHmBJS^6P)?7P$1BYp?49IVKz88|jAVHo3Vh zpfh!Hyt%Zyd~MX_7tt=E#VpWn^A>Bcwz$nKu)0sw2AX~}6THp43=1^)L|sNnt(w&v z(yc1`dF9^Wbw2qcuk*{R99!BaYW1;BWO;dU>AZ&B(2;-d^;;kQonw>Vzw5qV__n_9 zlaIgaC+~Xlolk%KuWl^fGCi}fp+#S3;fyFPqSm>VcJUj@0;v_otuk#Sx!SU`iovzevUfk7DUjogBr4f((S1A6hPTcMK2V$Haz1aXwXgFU^W>gy z6;_}t!4?mwO#U3_>NL_hf6L$%4`X~y<-p{D7R8WXQS>I5>`MhtUuw?Hm9N@SHj-Y- zwK>kpidDrMNy@7%%MX6AmG@HG8Z(>5F4nE`$$Dck8kfYE7ydtO->f=WBTFU`tt` za#gRCTCZe*<8S$E_l2f*X)Wf3uiV<cjSw}0+OzjNZA|La#D{=h-~@Nb^@*wYU^{=l)Dm&1okXHE{azJ6^D z+7@VAplyMzX@RD$QCMA7Thkm{LTlr+tbbr{uc&Y0w$}sPSLu;1w0s=Mq&T`i(0UmB zHf%l%OnNDl>JW=fAV)~29TIyIK9;_D^C{fc2%lh?40q{%NpMpi1t$G7q_H1MSo`v| zZL3XV0bJjn#9fBhxfh29*SY6`#&vG#O`~XAk*Wm>hGA{*=Lk$@bbtF+PP=So2t#bG zWnE=Bo;Uc+Y-Yu`m~L~>cOija44OHrw7F=*Ht+81mhRjj+$*&Wo5li0_=jz9H;qPZ zMK0C?%D#0|NM3tfZ0>ft*0O-f#3jxSm50GMf8H{yn~qb;+2YFnUffwl$O z7HCBac&ZhpzD$|7`1)bn*Yz^{Pm5*8*4+j#;Bd5It60DnEUL6&>sesu)>FByaoYlI z3$!iJwm{ngo6G{iCex>_PTK-)3#_!jdG?-InYhi_Y!+y6j*3B79ciF!L;MPQv)NXR*}N-x{A?rVDrZOrcxR_^#0YV)=;Rg3fz1FzSLs0OcM!DxVLyoj zctt;H>hvRk00Iag@KgwV(EF#SV$x4&5_22<|NYpPzBBFdM<4r=zQ_9zCXV^kgQnk` zk_Qj&-hJ@kCqKD+_ehSUDmVF8zVhi$^WCbcd>_&dS5}|DS-$M`tMHTcLP#?ua4mdy zDv@cq57BII7d> z?47-yhCsBmE%q3uXjq~!qXN-Vp~t+K(dY>4{RFtSzn{u%w|)DLE4%Sa-<|C!iEdor zFZ=oe?vpd)ZIowQ;E|O7{RQd1J=;+d-ME00SeB!;V!Vy=%nMxj=FEpkfD;1g@aCi75=Ux}K>5Y? z#7d-n4F3TN1TWihv;I{00GFh&RMbXdXNV6}HW%@0dTwM6c8n5cJf50t5*N!lW za!kPcu?odj2vlEgcddw(AcMfs(W6K9fTK+UcJ~(U;Hsdxk88!j=l4dn;xG?`JUV)C z*S`BYY@jgn0zLf=LLv+LAhkuH!;e?ma;V4S+&LJpQEr34pbbG1<48c?n(2>Hz5UyB zQcDEZ%QN|9DR@`jlH+Y*#u9tYNG%e`e>i`ZFFUvBfLEbzhTkO9y0F_Da3*;q`o)Qm z>a4vQ?TFmI6lGtHl4N&r{6{VAh`y~+{>C>o^0Ry#*Pi3=^xIMTAhk@uyOssq@^JOG z&A$0cLI42-5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0+V2pk>#c>U<;(W9q?<`scJie$4v664sCYXWII)?LUe>KCS^Sx1-^cwQ2p` zb?ZsKJFS1dif`)r)7Cr9_HJLvMIKI@L*4%$)B5LieN88BApZZBmbE7b^9I3rfz?7K2J%#EahF111Zbv`vWQE@L+$Z9G}~P z?28=ALHXLg5B+<4Z;kg)mb?4!?v2_?>Av&!!*hQBwf+112ezYV|N4)H{fAO&qv+n> zmh!K(<`3R3yNAR6pQ8}wH_+|u>-@YN`up#cW2kzq~JlNUr~Mf4`LSTzBtBuQmPB)qr#%(Sa`ywOd|0e8+b+Z<5oe zRMu3UmORt*+*0PQ&FOVcOZ_>W=Xla~O<6JUc2SUAV|+~VeLXXV$w|`b6ykesE*XT@ z=vo>NyQ@8_S*ByOS!d(CAM5^kieY|U=29=ZYMeyl^Uq>?CTr@fC6@V2CgZc_CUugi z2B}&!){k~{#YlQGxMAB$){4>mosH7nIq@AC=)sL8^16#U>58r?pLX6kudiY@iP)t& zO?}C7%{z*lp+1nm3%R)Ta+s{Uuo}imvK%6Ia(N=(4)ritqFC&e&XUF-24%;c*vtfQ3*GjCr)^Rt&0GBoUt>)jv zDHob8SsvN8E$RAU_L_gDYLSl4TjNW8)w5g8TRX?%uZPN9EML}>U^vUB{dDqqeg4^= z3z2Vl%}a?sVflQgzojwVdno;@T8{>uh4(B!>}*?Iy4Q*=%`9z&y&<2Ps@d~QZMzPp1GB( zy*U(xug86SB0p2rtJ7ZxRqIPp1?�Jgc4^B5qKPFS2DTWQUzl?@N_eol}>~x#ZQe zr#v6-(_B%-5sR~xmR)0Cdk^o;>-x`Z`R1|xdOe&qOsCGZ$&z!rhM z{ond>-Ew`t9BOt#iZ1Q=)h!(~_h%AW9J-(Uq1XIt@{%rXe*ZdW^{cl&+0{(G)}Pz5 z`oml6kE;G}m0H#LuO5c{_NrylmB`urzmR=$Nwjc1)h3JIuZh>fp0|@G%GZ4Uo)&Dr zHvcHP{imf?qa7bxUZ<_-&`RDGr=Hws26-IH7K)|lrY)Vw70W}aPTZCH8G6OWJAEou zoz3&9u4#v+Xvq~)kAL%c9_h(1oyl>Jp;tRJRrA+E;?$*zU!T!>>_zU`fF*rY>-lBt4^Q$Yw*h16 z@2`(lo@_Cb^I>XPreQS6>C4TA6iH$)J55R?)_c1|dOcrAu2;z{39C38plehLT8orH z?`}S-Ede0O)H6!7+}Fp_LM|K6UU+Uf?!@{MvC>bLBU^d7Skk4qo4U_CQIc)w#(%4G zA=^mejZI0O$>mm&b~*#j0MdJ?}N_zH6mu0$dna$AyRv(H zCrjbTICs2NUvYYgF6@=3N~xT^Cwk12^z0ApcK)`D7ezjI_H!bCl5K0RHEv4S{5@Sw zJ41Q!x@_+1Q5y`ZHvw<-B+ZvqQ0ssFdYa!(7FK`txrLWydwcUQm5Q zcV#hrzGwq}kja9)p=U`N=XRp#(br}@<{{qdy@jr4jdlwB`m0X2pZsBFHyPQAo&f1e zUVQe-R+?r#S$X*nbgy?-GsU_0a=N{ECw=2pc{7z)wr{7e=*hgBZhj|@^UvDmLyCI~ za`qns?d_N)NpEx+R@V-C%G3b^cb* zFZ=kytt+{0)a##+>|NP*R+Xz|Q>iy#yU-LiW93XfrAO=Lx6@QlL4A{|mvi@38}UpC zWjo1UaXoR{ajI7VJw@Fm>$K!@rxUh^{(bUEBM50S*G7F3RDE_9=wVy8g&w7~>fkn? zQuMUhS(mj(I-syo<0*{)ytZ_Lo{h2bA+N{9pSMeINcsVX7Q;Hatvc7b?!_uabp)Dr zTctXkLVIELVH)3quBq)s_+!V-YL*IHI9m*NT2&^Ooymq!?^sMr8jIy&NEL^E2-9r! zXV=pS=hf?C)90GPY3D;S7vgZ?7NxpTv8h$TRg)|+4}YwzYa~JBs6j#wzuQ@oYHTQR8T3Yjfe@Cg$gSJ>w?VQIjcbXB5SFcO2_}Eh5X0 zrRojYv8JY?=SDF+$D76{l6%{WMN+&^ZcRlUX5qAELqp!gKFW8(Yk|m47cn<&o literal 0 HcmV?d00001 diff --git a/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.mcs b/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.mcs new file mode 100644 index 0000000..d8f4f37 --- /dev/null +++ b/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S1200E.mcs @@ -0,0 +1,30019 @@ +:020000040000FA +:10000000FFFFFFFF5599AA660C000180000000E089 +:100010000C8006800000003E0C80048000008CA74D +:100020000C800380804307C90C000380000000009F +:100030000C000180000000900C0004800000000013 +:100040000C000180000000800C0002000A802BC21E +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000002000000000008A5 +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000400000000B8 +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000A00A000000000000000000001E +:1008300000000000000000000000000000000000B8 +:100840000000000000000031005100000000000026 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000A00000001200000000000000000086 +:1008C00000000000200800002200000000000000DE +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000002000000000000000000026 +:100AB0000000000000000000000100000000000035 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C00000000540118000000000000000000000077 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000001001000000000000000043 +:100CA0000000000000001001000000000000000033 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000010010000000051 +:100E90000000000000000000000010010000000041 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D00000000000000000200000000000000000ED +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000004000000000000000B9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000100000006 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000002000000000000A2 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E3000000000000000000000000000A002000000 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000020000000000000000000000000BB +:1026000000000000000000000000000000000000CA +:10261000000000000000800000000000000000003A +:102620000001000000000000210000000000800008 +:102630000000000000000000000201000000000097 +:10264000012000020000000080020000800200045F +:102650000102002281008000000000020902010046 +:102660000401000000008000080280000048010012 +:1026700040000101000200000001002000200001D4 +:102680000000010000020000000000000022000025 +:102690000000800000020000000080000000000038 +:1026A0000000000001000000000000000100000028 +:1026B0000000000000000000000000000000000119 +:1026C00000000000000000100000000000000000FA +:1026D00000000000000000000000000000000001F9 +:1026E0000000000000000000804000000001000029 +:1026F00000420000000100008042010004010001CE +:102700000142000000010000000200000000000083 +:1027100000000000000400000000000000040000B1 +:102720000000002000000008000000000000000081 +:102730000000000000020000000000000000000097 +:102740000401000000000000000000000000000183 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:102810000000000000000000000000000050000068 +:10282000B0000000000000000000000000000000F8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000C00000000000000000000000850000014 +:10286000900C0000040000000000000000000000C8 +:10287000000000000000000000B000000000200088 +:1028800000000000B0000000000000000000000098 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B00000000000000000000000003000000000E8 +:1028C00000000000000000000000000000100000F8 +:1028D00000000000000000000000000000000000F8 +:1028E00000000010900000000050000000000000F8 +:1028F0000050000090000000005000100000000098 +:102900000050000090000000000020000000800047 +:1029100000000000000000000000000800000400AB +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000020000077 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C00000000000000000000040000000000000C7 +:1029D00000000000000000000000001000000000E7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000001000C7 +:102A00000000000000000000500C00000E0000005C +:102A1000180000000000300000500000000000001E +:102A2000000C0C50000000000C30000800000000FA +:102A3000105C00501008000C080C00183800100042 +:102A40000000000C080808000C7C00000E0030009C +:102A5000000C105000300800310008040A0C00007F +:102A6000000800300010000800000C00000C0006F8 +:102A7000060080000038000000001000000C00007C +:102A80000000100000000000000000000C0000002A +:102A9000000000000C00000000000000000000002A +:102AA000000000000000000C00000000000000001A +:102AB0000000000000000000000000000000000016 +:102AC0000080000000000A08000000000000000074 +:102AD0001E100000000C0080001C0000000C000014 +:102AE0001E1C0C000C0C000C081C0000000C0080CC +:102AF0000E0C000000000E0000000E50000D8000C3 +:102B000000000606000C000000000036060000066B +:102B1000000001000600000000000600060800009A +:102B200000000000000600000C0C06060600000075 +:102B30000080000000000004000000000000000011 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF0000000000000000000000080000000000054 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D20000080000000000000000000000000000023 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000300000000000000000000000000000B3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000001000000000000000000000000000A2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000001000D2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000002000000000000000000000D1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000020000000000000000000A0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000400000000000000000000000000020 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:1031400000000000000000000000FFFFFFFF000083 +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B00000000000000047477722000000000000E8 +:1031C0000000000000005353FFFF5353F5055F500C +:1031D00035352727BB1133B35353FFFFFFFFFF7F65 +:1031E000C3C6C9C3C9C3C9C3C9C3C9C3A9A5A9A5FE +:1031F000C9C3A9A5A9A5A9A5A9A5A9A5A9A5A9A521 +:10320000A9A5C9C3C9C3C9C3A9A559A999A599A500 +:1032100039C939C999A539C939C98787778887874D +:10322000878787878787778877888787878787874C +:10323000778887878787878787877788878787873C +:1032400087877788878787878787FF80FF8055D51F +:1032500055D5FF8055D50F8F33B30F8F33B30F8FF5 +:10326000FF800F8FFF80FF80FF80FFFF7722FF80AE +:10327000FF800000000000000000FFFFFEFFFFFFD6 +:10328000FFFFFFFFFEFFFFFFFFFFF30335355F0A80 +:103290005F0A0000000033557744FF7F4BF095A68E +:1032A00095A665A965A995A695A665A965A995A6FA +:1032B00065A965A965A965A995A665A965A965A971 +:1032C00065A965A965A963C965A965A963C963C934 +:1032D00063C965A963C965A939C959A999C399A5DC +:1032E00059A959A999A539C959A959A98787778889 +:1032F000878777888787878777887788878777889A +:10330000878787877788FFFF0F55FFFF550F0000DE +:1033100000000000000000000800000000000000A5 +:10332000000000000000000000000000000000009D +:103330000000000000000000000000000000800409 +:103340000C00000000000000000000000000000071 +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A0000000000000000000000090241E0000004B +:1033B0000000000000000000000090040C009024B9 +:1033C0001E0000000C0090241E0090241E0080248B +:1033D0000E0000A01E28DCA45EB8DCA45EB8DCA44D +:1033E0005EB9DDA45EB8DDA45EB9DDA45EB9DDA47E +:1033F0005EB9DDA45EB9DCA45EB8DCA45EB9DDA470 +:103400005EB9DDA45EB8DCA45EB9DCA45EB8DAA463 +:103410003EB8DAA43EB8DAA43EB8DAA43EB8DAA4DC +:103420003EB8DAA43EB8DAA43EB8DAA43EB8DAA4CC +:103430003EB8DAA43EB8DAA43EB8DAA43EB090248E +:103440001E0090241E0090241E0090241E00902434 +:103450001E0090241E0090241E0090241E000000D8 +:103460000C0090241E00000000000000000000007E +:103470000C0080240E0000000C0080240E000000D0 +:103480000C0000000C000000000000000C0000A078 +:103490001E28DDA45EB9DDA45EB9DDA45EB9DDA49D +:1034A0005EB9DDA45EB9DDA45EB9DDA45EB9DDA4BC +:1034B0005EB9DDA45EB9DDA45EB9DCA45EB9DDA4AD +:1034C0005EB8DCA45EB8DDA45EB8DDA45EB8DDA4A1 +:1034D0005EB8DDA45EB9DDA45EB9DCA45EB9DDA48E +:1034E0003EB8DAA43EB8DAA43EB8DAA43EB8DAA40C +:1034F0003EB8DAA43EB8DAA43EB000000C000000EA +:103500000C00000000000000000000C018000000D7 +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A0000000000000000000000000000000902467 +:1035B000120000000000902412000000000090247F +:1035C000120000000000802402009024120000007D +:1035D000000000000000908400284C8040B84C801F +:1035E00040B84D8040B84C8040B84C8040B94D80C8 +:1035F00040B84D8040B84C8040B94D8040B84C80B8 +:1036000040B84C8040B94D8040B84D8040B94D80A5 +:1036100040B84D8040B84D8040B94C8040B94D8095 +:1036200040B84C8040B94D8040B84C8040B94D8086 +:1036300040B84D8040B94D8040B84C8040B94C8076 +:1036400040B000000000902412009024120090244A +:103650001200902412009024120000000000D8A450 +:1036600072A9DFA472B9DFA472B9DFA472B9DFA4B2 +:1036700072B9DFA472B090241200000000000000B4 +:1036800000000000000000A01228DDA452B8DDA454 +:1036900052B8DDA452B8DCA452B9DCA452B8DCA400 +:1036A00052B9DDA452B8DCA452B8DCA452B9DCA4EF +:1036B00052B100A01228DDA452B9DDA452B8DCA496 +:1036C00052B1000000000000000080240200000051 +:1036D0000000000000008024020000000000000044 +:1036E0000000000000000000000080240200802490 +:1036F000020000000000000000000000000000C008 +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000272777440000000033554747BB112E +:1037B000DD113F0CCF0355335533FFFFFFFFCF0320 +:1037C000DD110F3355330F330F33BB119999C3C339 +:1037D000C3C3C3C333CC55AA9999C3C399999999C3 +:1037E000999955AA999955AAC3C333CC55AA9999C1 +:1037F000999933CCC3C39999A5A5A5A599999999E8 +:10380000A5A59999C3C3A5A59999A5A59999C3C338 +:103810009999A5A599999999A5A5A5A5C3C399997C +:10382000999955AA99999999A5A599999999C3C3CF +:1038300055AAC3C39999FFFFDD1155D555D555D567 +:10384000FF8033B333B30F8F33B333B333B3FEFFE0 +:1038500000C05555FF000F0F33330F0F3333FF00F8 +:103860005555FF000F0F3333AAAA0F8FFF80553332 +:1038700027273F0C3F0CCF033F30FFFF55AA9999F4 +:103880009999999933CC55AA99999999999933CC41 +:10389000999999999999A5A533CC999933CC33CC19 +:1038A000A5A599999999FFFFC3C3A5A5999955AA6B +:1038B00033CCC3C355AAFFFFDD11FFFF7744FFFFE1 +:1038C000FFFFFFFF7744FFFF3535FFFFFFFFFFFFDF +:1038D000F303FFFF1B1BFFFFDD11FFFF7722FFFF3D +:1038E000FFFFFFFFFFFFFFFFAF050000000000002C +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:103910000000000000000000000080000002000025 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:1039800000000000000000000000402000D0000007 +:1039900000000000000000000402C020084C0000ED +:1039A00004028000280480030402C02008640B0085 +:1039B0000403C02004A300000000C0200092000007 +:1039C0000402C020048A00000000C0200020000083 +:1039D0000000C020001000000000C020000800000F +:1039E0000000C02000A200000000C02000820000F3 +:1039F0000000C020004400000000C02000000000C3 +:103A00000000C020001000000000C02000000000E6 +:103A10000000C020000000000000C02000000000E6 +:103A20000000C020004400000000C02000C60000CC +:103A30000403C02098C60000040340209C410000FD +:103A40000402402008C00000040300001401000428 +:103A5000040340200481000004034020249100005E +:103A600004020000040000000000800000200000AC +:103A70000403C020201000000403C0204008000000 +:103A80000403C02004A300000403C020249300000A +:103A90000403C020448B20000403C0200020260023 +:103AA0000403C020201000000402C0200008000011 +:103AB0000001C02000A300000000C020009201000F +:103AC0000402C020048A00000000C02000824400DC +:103AD0000001C020004403000402000008000000B0 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B00000000000000000000000080000000000134 +:103B10000020000000000000000000000000000085 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000200000000025 +:103B80000000000000000000000081200000000193 +:103B90008008810000000001000481200000000175 +:103BA0002010C120800000012810802000000001AA +:103BB0000004812000000001800880200000000136 +:103BC000001080200000000100048020000000019F +:103BD000000880200000000100108020000000018B +:103BE00000608020000000010060802000000001D3 +:103BF000006080200000000100048020000000011F +:103C000000608020000000010060802000000001B2 +:103C100000608020000000010060802000000001A2 +:103C20000060C12080000001106041208000000081 +:103C30001040012000000000104041008000000002 +:103C40001000412080000000281041248000000066 +:103C50004000010000000000800080000000000122 +:103C60000000C120800000014004C120800000014C +:103C70008008C120800000012810C12080000001C0 +:103C80004004C120800000018008E1208000000184 +:103C90002810C9208000000140048320000000019A +:103CA0008008E02080000001081080200000000152 +:103CB0000004832000000001800880200000000133 +:103CC0000060C02080000001406003000000000090 +:103CD00010000000000000000000000000000000D4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000003000000000000000000000000B0 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000002231 +:103D70000007000000000000000000000000000339 +:103D800000230300E30300230003002303030023B5 +:103D9000C2000300C70000C1C713030347010000AE +:103DA00047470408030300C300400007440300C062 +:103DB000C30000034407000003004600C30000C026 +:103DC00000000022C00700C002000000E32200C380 +:103DD00000004403000700030322C0070200002282 +:103DE00000000007C20000070000E222C00300003C +:103DF00003001007470300000000C0004707000051 +:103E0000C00000074400000702C00000002000229C +:103E1000C0E00000C0100313478300070000001338 +:103E2000C6C701000000032047070000000003C1CF +:103E3000C980C803C10500EA03C0C300820500E3CE +:103E400082CFC6008303000000000003C40000000E +:103E500000000000000300E347814400CB000001A4 +:103E600003E3E207C803009303C1C707032200036B +:103E700001D3E322C700009303C1000302070160DE +:103E800004C0E223C30000E31303E3220103004361 +:103E90000007C300E30300000107E222D300004053 +:103EA0000307C300001003C00362C007C000000086 +:103EB00000C04700E000000003CB820303220300A0 +:103EC000C00500000000000000000000000000002D +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000080000000000000000BA +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F7000000000080100408004080000000100006B +:103F80000901000014804101200000114000410897 +:103F900004010040202000000980001100210100E0 +:103FA000020800040900010800000040200004008D +:103FB00018800004000001001000001004000180BF +:103FC0000800000C0000000802000008200010009B +:103FD0000500000000800100140000000001040042 +:103FE0001280000020000100088000000201100083 +:103FF000020000001080000000000000041000001B +:10400000010000021204000001004000040A020046 +:104010000000000004024000000004004000000016 +:104020008000042120020001A00000002020A00048 +:104030008400000284000408A001000000001401B4 +:104040004000000000000500088002200803000076 +:104050002080000141100400000800020503080050 +:104060002100000141100800208000020403000824 +:104070000500402004820400308000100001080088 +:1040800041800021404018000480004040000400AE +:1040900010000020200018000100082021208200CC +:1040A0001000000200900800020000402008840870 +:1040B0002000040088000000000000000000000054 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000200000000000000005D +:10416000000000000000000580001C0008001E8206 +:10417000F40C000801085EA20100010101004023C7 +:1041800004001CC00500535A7A0100804390480582 +:1041900080380CC005726088101400C001F08002E5 +:1041A00080902C80030C4CC0810C0C4009F04E0F09 +:1041B000003100000A744200F4381C8101384008C4 +:1041C000F4880E201170800FF4F0000005F2400218 +:1041D000F48000A00138400884F000E0011040089D +:1041E0008430008101384E08A4321480028800080F +:1041F0007078300001900004102800A00AB0AECF03 +:104200007979000441100E870111000441600842D1 +:1042100001040BEFFB00000000000000003800006C +:1042200000001400007000000470000E00C042CFB7 +:104230000300000400006CCF2F805684A2F0400FD2 +:10424000F4841C800260604FF4841C000240404FE4 +:10425000F400008005340003609400000112404F18 +:10426000F6140080513040081C000C800930406872 +:10427000F40014800230000374F002800240200732 +:10428000F40410400190400A240016003100400060 +:1042900070110080330040228400000802004005B5 +:1042A000849028C00118000000B02C0040000000DD +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000007003800200E +:10435000010000000000000000000C1020000140DF +:10436000000000BBE81000000210068401300C07BA +:1043700002000082000C0080011002070200000110 +:10438000E8F2000760410100001D0C0770010223E4 +:1043900001180003009000260100004780082A4011 +:1043A000003909026040149001380000E03428C050 +:1043B00004710007E038143601400002E0382C8810 +:1043C00003300017E0382C20117000000038010085 +:1043D00005F100000088A8000570010720102910D1 +:1043E00005014084073B002013B040148602008082 +:1043F00001380E27E208A82C53E11E87E330902CE9 +:1044000003031882000010C72100000020000000F4 +:10441000E00000000000010700081000E0001000AC +:10442000000018070008000B00000207033894CCB6 +:10443000A1380007E01028C000680E07E8102840E7 +:1044400000480007E8001C80013040B3603A1C209F +:1044500023940207E00028800138000700381E80FE +:10446000033500C00000A98001600200E60280B0B0 +:1044700001704E07600021C001B00607000200C0B5 +:10448000027000A030B0010004000090E1005C0068 +:1044900000680000E0001C20017040838180000063 +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:104530000000000000000000000000000000001C5F +:10454000000800C00000000000000000000030086B +:10455000802381000040000000404012005022A44F +:1045600000088030400000CC4080081008288100FE +:10457000002C80A000004029800E220000008180D5 +:10458000000C1008040080030001A0800481412C6D +:104590000841205000000200400403000001840490 +:1045A000001028804041002000161001040A00007D +:1045B0000000200000020042200400044140204886 +:1045C0000000100010402042004008004140200040 +:1045D000201000001405200000402450008001023B +:1045E0009038008040000488000800000608193C4C +:1045F00007381000042010140500014008001000C6 +:1046000008030400080020000123800000000000CF +:1046100002040A02000283280A08004C24006000F9 +:104620000682042089801000882228A110082020FA +:10463000000409A0000900200032100401208102BA +:104640001020114400000308800800A40088000026 +:10465000001C100400122000000800200142821CEF +:1046600000060001020E000C008A0020020430281F +:1046700080080020008A0004088800800042200092 +:1046800000220A2001C0100480140200000900006A +:1046900004A3000020000000000000000000000053 +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:1047400000000F00E000140700085E3010B80040C1 +:10475000E0011E47073C1DC0C0000088130900404F +:104760000870862FFB0100C00170232228008028DA +:104770000284828B70390020028508C7E740401010 +:10478000C40000073228000E106800DC105000C87A +:10479000C960AC0C083A0020C002225260BA11076E +:1047A00000010900C77A0C31C0002E0076386C0376 +:1047B00002004C00C04C0803D0044C80C701000329 +:1047C000D0040E42002A80080030010008000C0EC0 +:1047D0000878008C850110C801700000008000C7B7 +:1047E000C10C0623000080E8A00101040A000C2788 +:1047F000F0000000E00000060008000000000000DB +:10480000000000002030000000040604027440068E +:10481000040018206328002000384050E0000CC03D +:10482000C1040FB2E1308CC0C1103637E80000CEB1 +:104830000130022CE03414262072100488AC0006EB +:1048400000613287E7B829260030828FF071401767 +:10485000D10400828000008009302E0FF0786C2097 +:1048600000B00882E0B840C001600007600100802D +:1048700005700000662C1C00027008040000122065 +:104880000000000C80001C000281000000000000FD +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000007000000000000000080 +:1049300000000000000002077038003400002E0064 +:1049400072020018C0120E48012C1500A00100E3ED +:10495000017812C001F80647713800D40BF8024202 +:1049600021001E060000002360002C00C000A047AC +:1049700078292C06F00000071081AC06000416E030 +:1049800015082C40C805020470020A40C04000C34C +:1049900001280D2600002200043A0AA0F20100427C +:1049A00051000A00200000870438D20F2000004286 +:1049B00001008A00200080C801021206203042084F +:1049C00084000026A0001207203031C6CBF8511217 +:1049D0007E808081F9600E83010800C00308431CBB +:1049E000000C00AF010000000000142000000000D7 +:1049F00000383C00D038000028011600D0000644E2 +:104A000000300086F200088078500CC0031000448B +:104A100070B800C6CB1A0200787900C01BE200848F +:104A200079B80040193C0C077801000700984087CE +:104A3000750800C00738400FF40010C50380002738 +:104A4000702A00A80A384012A01400880B780002CF +:104A500070082C8A03000022242A0048D900400054 +:104A6000000000000004000F0010010FD0006000E3 +:104A700070505C010070000000307C80C13000008C +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000040000000000000000000000000000F2 +:104AC00000000000000000000000000000000000E6 +:104AD0000000000000000000000000000000800056 +:104AE00000000000000001000000000000010000C4 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000100000000A4 +:104B10000000000000010000000000001001200063 +:104B20000000100010001000100000100000100025 +:104B300000002121104000005400040040400020EB +:104B40001430200150382020244122100000302051 +:104B50002030803010200050102040102212200001 +:104B60002030403008203000004801012050200053 +:104B700000200010001202201420102120002030FC +:104B8000002100002208283132211000302220317B +:104B9000201000012202302030514000300030202F +:104BA0003020403122102000303000828050898037 +:104BB00021203100905000203090009081300290F0 +:104BC000308112001130000030320010000021004E +:104BD0000021101000400000000004000010000040 +:104BE000010012401020000010200012901002124C +:104BF0000222200002120002003000009042110048 +:104C00001032022081190010343000301A091202CB +:104C10003038000100184040802800001A18800039 +:104C200000281210920080013448000048128000D1 +:104C30000240104440510008804000048021005090 +:104C4000044040000000200004400000200022003A +:104C50001002000002000102000000300002000407 +:104C600020010002005000000100000000000002CE +:104C70000000010000000000000000000000000033 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000001000000000000000000000000000A4 +:104D000000000000000000000000000000000000A3 +:104D100030000000000030002000390000000020BA +:104D20000000300000000200100000000000000041 +:104D300000000000003000091020000000000016F4 +:104D40000050100000300020300090200000903A09 +:104D500000106002A0300036A4003000A500000062 +:104D600000300002A0000626A03000001010100045 +:104D7000900000300000000000B0143010503000EF +:104D800010300020003000000000200030300050C3 +:104D90003000100030009010701020000030100023 +:104DA00000309000000020001020050010100800C6 +:104DB0000020002030000000201000000020003003 +:104DC000A000A0A0A0AC0010A040006000A0A0A087 +:104DD000A010A0400060004020A0000000000000E3 +:104DE00010300030006000009030B0000030000053 +:104DF000300030100010000604140030002000368F +:104E0000100430400030000094140D500060A0A643 +:104E10001014A000B00020362050000C000000004C +:104E2000403000A200200000203000000000000000 +:104E30009005003000000010000000120010100665 +:104E4000B0000000001060000000000000002430EE +:104E500090007050000000000020A00500500000ED +:104E600040100000000000100010000000000000D2 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E9000000000000000000000040000000000000E +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000030000000000000000800AA +:104ED00000000000000800000000000000000000CA +:104EE0000000000000008000000000000000000042 +:104EF00000000008000000000000000000080000A2 +:104F000000000A000008000000000000020040004D +:104F1000400040004E0000400000008840028040F9 +:104F200000000080801080A0000030882010A010B9 +:104F3000002C1C000A0010200A1010100000600055 +:104F4000002020600C0C20700000201650103070E3 +:104F50000A2064540012207060206E705E4C0C2099 +:104F600068AE013802702E20000C8E000C60A02864 +:104F70000D080000009C2E288E020A5C000C2EA05A +:104F80000208AE400000202A01002E3C0000AE4284 +:104F90000030D0AD200024200C0038C020000020BC +:104FA000102001202C3E0C2A0A280C000C300E0E7A +:104FB0003E38000A00001400001900000000000044 +:104FC0000000000000000A0004000800003000405B +:104FD0000A00000C1E500460000C00600C08006801 +:104FE000603E006010040CE0601C04301D04006092 +:104FF000301600300C040C683010000C01003E101C +:10500000301E0E600C0010000A100C001C00165D13 +:10501000342E00500050100004A0001C8E044606E0 +:105020003600007020140020040026F0007030804C +:105030000C80860030001C0000880E000C00080068 +:10504000000E810000000E04100C0004001000602F +:10505000080000060080000C00000C8000800000AA +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000001000000000008000017 +:1050900000000020000000000000000000000000F0 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000001000000000000000000000D0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000100000000000000000A0 +:1051000000000000000000000000000040008000DF +:1051100000000020400000000000000040100000DF +:10512000000000000000003000000000000000004F +:10513000000020002000200000008000000000008F +:1051400000402000000000008000200080300000AF +:10515000000020200000002000100020000000249B +:1051600000000000000000200000002000000000FF +:10517000000000000000000000A08020802000004F +:1051800040000000021080202000001000000000FD +:10519000001000400020000000000000004000005F +:1051A00000000000200000000000000000000000DF +:1051B000000000000000000040000000001000009F +:1051C00000000000000000000000000000000000DF +:1051D000000040000000000000000020000032003D +:1051E000400000000000020040000000003002000B +:1051F00000000000020002000000000000000000AB +:1052000001000000020C0000000000000200000489 +:105210000000400400000000000000000230000018 +:10522000000000000000000000000000000000007E +:105230000000000000000000000000000000A000CE +:10524000000020000000000000000000000000003E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:105270000000000000000000000000080000000026 +:10528000000200000000000000000000000000001C +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000010000000000000002000000000006D +:1053100000900000200000000000000000000000DD +:1053200000000000800080000000000080001020CD +:10533000004000208020802000000020900080207D +:10534000100000200000808000000080000020800D +:1053500000000081008000000080008000000081CB +:1053600000800000000000000000000000601080CD +:105370001080000030302000040014800000200065 +:10538000000000000000002000800000000000007D +:1053900000200000000000000000000000000000ED +:1053A00000000000000100200000000110000000CB +:1053B000000000010000000000001080000000005C +:1053C000000000002000200000000000000000009D +:1053D0000080B000300000000000100030000040ED +:1053E00000000000000000000000000000000000BD +:1053F000000000000400000004020400000000019E +:105400000400000100001000000000000000000087 +:105410000400000000000000000000000000000088 +:10542000000000000000000000000000000000007C +:1054300000006000000040000000000000000000CC +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:1054600000000000000000000000000000008200BA +:1054700000000001000000000041001000000000DA +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000100000EC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000010BC +:1054E00000000000000000000000000000000000BC +:1054F000000000000000000020000010001020004C +:10550000000000000020000020000000000000104B +:10551000000000000000000000000000100010006B +:1055200000000020000000200000002000000020FB +:1055300000000020001000202000000000000000FB +:1055400020102000000000002000000000000000EB +:10555000200000000000000000000000000000002B +:10556000200000000000C0000030200000101400E7 +:10557000300020100000100000100000100000009B +:1055800000000000100000000000002010001020AB +:1055900000000000100000C22000002000000020D9 +:1055A00000000000001000200000000000002000AB +:1055B000000020000000000020000000000010009B +:1055C000000000100000200000000000000020008B +:1055D0000000000000100008000000200000000093 +:1055E0000000000000000008000082000000040825 +:1055F00000000000000000000000000800000000A3 +:10560000200000000010000000000000000000006A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:1056900000003C3C3C3CC3C33C3C666666666666B8 +:1056A00066666666666666666666CC33CC33AA5501 +:1056B000CC33CC33CC3300000000000000000000ED +:1056C00000000000000000000000000000000000DA +:1056D0000000FFFFFFFF00000000FFFF7744000015 +:1056E0000000AF053F30FFFFFFFFFFFFFFFFFFFFA1 +:1056F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F3A +:1057000059AA95A695A695A695A695A695A695A6F9 +:1057100095A665A965A995A665A965A995A665A992 +:1057200065A995A695A695A695A665A993C663C9EC +:1057300093C693C693C693C693C693C699C399A5B9 +:1057400039C939C999C399A559A999A539C959A977 +:105750008787778877887788878787878787878706 +:1057600087878787778877888787FFFFFFFFFFFF17 +:105770002727FFFF2727FFFF5F50FFFF7722FFFF4D +:105780005353FFFF1B1BFFFFFFFF00000000000043 +:105790000000FFFFFFFFFFFFFFFF00000000335589 +:1057A000FFFF535335350F8FF3035F503535535398 +:1057B000F505FF80FF80FF7F4BF059AA59AA59AA2F +:1057C00059AA39CC59AA39CC59AA39CC59AA39CCB9 +:1057D00059AA39CC39CC39CC59AA39CC39CC59AAA7 +:1057E00039CC99A539C999C399C399C359A999C302 +:1057F00059A9778877887788878787877788778890 +:105800007788778877888787778877888787878773 +:105810007788878787877788778887877788778863 +:105820008787FFFF0F33FFFF47470000000000009E +:105830000000000018000000000000000000000050 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:1058800000000000000048804CA84C804CB84C80C0 +:105890004CB94C804CB84C804CB94D804CB94C80C4 +:1058A0004CB84D804CB84C804CB00000000000005B +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000008C020000000000004A +:1058D0000C000000000090241E0080240E00802494 +:1058E0000E0080240E0080240E0080240E008024F0 +:1058F0000E0000A01E28DDA45EB9DDA45EB9DDA403 +:105900005EB9DDA45EB9DDA45EB9DDA45EB9DDA437 +:105910005EB9DDA45EB9DDA45EB9DDA45EB9DDA427 +:105920005EB8DCA45EB8DCA45EB8DCA45EB8DCA41F +:105930005EB8DDA45EB8DCA45EB8DDA45EB9DDA40B +:105940005EB8DDA43EB8DAA43EB8DAA43EB8DAA464 +:105950003EB8DAA43EB8DAA43EB8DAA43EB0802459 +:105960000E0000000C0000000C0000000C00000005 +:105970000C0000000C0000000C0080240E00000051 +:1059800000000000000080240E0000008C020000D7 +:10599000000090040C0090241E0090241E0090240F +:1059A0001E0090241E0090241E0000A01E28DDA4CE +:1059B0005EB9DDA45EB9DCA45EB9DCA45EB9DCA48A +:1059C0005EB9DCA45EB9DCA45EB8DCA45EB9DCA47C +:1059D0005EB8DDA45EB8DDA45EB8DCA45EB8DCA46D +:1059E0005EB9DCA45EB9DAA43EB8DAA43EB8DAA4A3 +:1059F0003EB8DAA43EB8DAA43EB8DAA43EB8DAA4D7 +:105A00003EB8DAA43EB8DAA43EB8DAA43EB8DAA4C6 +:105A10003EB8DAA43EB000000C0000000C0000000C +:105A200000000000000000C00800000000000000AE +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000A01228DDA4BB +:105A900052B8DDA452B8DCA452B9DCA452B9DCA4DB +:105AA00052B9DCA452B9DCA452B9DCA452B9DCA4CA +:105AB00052B8DCA452B10000000000A01228DCA4FF +:105AC00052B8DDA452B9DCA452B9DDA452B9DCA4A9 +:105AD00052B8DDA452B9DCA452B8DCA452B9DCA49B +:105AE00052B8DDA452B10000000080240200008002 +:105AF00000284C8040B94D8040B94D8040B94D8060 +:105B000040B94D8040B94D8040B94D8040B84D807E +:105B100040B94D8040B84D8040B000A01228DDA4AF +:105B200052B8DDA452B9DCA452B10000000000005C +:105B30000000000000009024120080240200802455 +:105B400002009024120000000000802402000000E7 +:105B5000000080240200802402009024120090247F +:105B6000120000000000000000000000000080247F +:105B700002000000000000000000802402008024D9 +:105B80000200802402000000000080240200802423 +:105B9000020090241200908400284C8040B84C8071 +:105BA00040B94C8040B94D8040B84C8040B94D80E0 +:105BB00040B84C8040B94D8040B94D8040B84D80D0 +:105BC00040B94D8040B94C8040B94D8040B94D80BE +:105BD00040B84C8040B94D8040B94D8040B84C80B1 +:105BE00040B94C8040B94D8040B94C8040B84D80A0 +:105BF00040B94C8040B84D8040B94D8040B84D8090 +:105C000040B10000000000000000000000000000A3 +:105C10000000000000000000000000C000000000C4 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000FFFF26 +:105C800033CC55AA33CC55AA9999C3C3A5A59999E4 +:105C9000A5A5C3C3A5A59999A5A5999955AA99990B +:105CA0009999999933CC99999999FFFFFFFFFFFF33 +:105CB000C3C333CCC3C3A5A5999933CCA5A5A5A5CA +:105CC000999933CCC3C3A5A5999933CC33CCC3C31D +:105CD000999933CCC3C3A5A59999CF030F33FFFF7F +:105CE000FFFFFFFF5A5A33CC6666666666665A5AED +:105CF0005A5A5A5A5A5A66666666666666665A5AA4 +:105D00003C3C5A5A5A5AAA55CC33AA55CC33FFFFB9 +:105D1000A5A555AA33CC55AAA5A5C3C355AAFFFF6F +:105D2000AF05FFFF7744FFFFBB1133B333B3FFFF72 +:105D3000FFFFFFFFFFFF33B333B3FFFF3535FFFF37 +:105D4000FFFFFFFF4747FFFFFFFFFFFFFFFF0F8F33 +:105D5000FF8033B355D5FFFF3355FFFF550FFFFFCE +:105D60000F55FFFFFFFF0000000000000000FFFFD5 +:105D7000FFFFFFFFFFFFFFFFFFFFFFFF3F0CFFFFE6 +:105D8000FFFFFFFFFFFF55D50F8FDD11A5A533CC1A +:105D9000C3C3999955AA33CC9999A5A5999933CCA0 +:105DA0009999A5A5999933CC9999A5A5999955AA99 +:105DB00033CCA5A5999955AA9999C3C3A5A555AA68 +:105DC0009999A5A599999999A5A5999955AA999946 +:105DD00033CC9999A5A59999A5A5999955AA999969 +:105DE000C3C3999955AA9999C3C3999955AA9999E1 +:105DF00033CCA5A59999FFFF5F0AFFFFAF05FFFF11 +:105E00000F55FFFF335500000000000000000000A8 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000004030000AC0100000403000067 +:105E80008C01000004030000C800000004030000AF +:105E9000A8000000040300008800000004020000C5 +:105EA00004000000040300002401000004030000BB +:105EB000440180080403C020002000190403C0200E +:105EC000201080280403C020400800100402C020D5 +:105ED0000CCE03000402C0202CD600000000C0201D +:105EE00000E600000000C020004C00000000C020C0 +:105EF000005400000000C020006400000000C0202A +:105F000000A200000403C020249308000403C02062 +:105F1000448B00000000C020002000000001C020D1 +:105F2000001049000403C020400800000402C02003 +:105F300004A203000402C02024926B340403402016 +:105F40004481000004030000000000000000000085 +:105F500000002001000180009022000000000000ED +:105F600000000000040340201080080004028000AC +:105F7000002004000403C020201000000403C020FF +:105F8000400000000000C02000CE00000000C02043 +:105F900000D600000000C02000E600000000C02085 +:105FA000004C00000000C020005400000000C02091 +:105FB000000000000000C02000A200000000C0207F +:105FC000009200000000C020008A00000000C020F5 +:105FD000002000000000C020001000000000C020D1 +:105FE000000000000000C020000000000000C020F1 +:105FF000008200000000000000000000000000001F +:10600000000000000400000000000000000000008C +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:1060600000000000000041008000000040004100EE +:106070008000000028004100808000008000410076 +:106080008000000040004100800000002800010066 +:10609000000000002000410080000000400041009E +:1060A000800000008000C120800000012810C1286D +:1060B000800000014004C128800000018008812880 +:1060C00000000001800891200000000100048020F1 +:1060D0000000000100108020000000010008802066 +:1060E000000000010004802000000001001080205A +:1060F000000008010010C720800000014004E120DA +:106100008000000180088020000000010010C020F5 +:10611000800000014004E12080000001800881200F +:106120000000000120108320000000010004612015 +:10613000800000008008410080000000280000006E +:10614000000000000000E0028000000100000000EC +:1061500000000000000047218000000010088100BE +:10616000000000012000C920800000014004C1207F +:106170008000000180608020000000010008802075 +:1061800000000001000480200000000100108020B9 +:1061900000000001000880200000000100048020B1 +:1061A000000000010060802000000001001080203D +:1061B0000000000100048020000000010008802091 +:1061C0000000000100108020000000010004802079 +:1061D00000000001006080200000000100608020BD +:1061E000000000010060000000000000000000004E +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:106240000000000000000000000000000000000549 +:106250000000000000000005000200C000800023D4 +:10626000C90200C800C08023D30200C800C0800358 +:10627000D70200C800C08003C41300C80080C01348 +:10628000C401000000C00003C40000CAC482C600EC +:10629000420000C800C08000C00000EAC380C340C4 +:1062A000C4C04483C3CB0303C6C0E087C0E201007F +:1062B000C7EA000000C00022C007004047C000231A +:1062C00000C3E000C0E20022C000E0C00340C00004 +:1062D0000000004300E2C000000044C00AC3000008 +:1062E0000000000300E24400E000C7C110430300C7 +:1062F00013C0E05347E30103C00044400000E00343 +:1063000000E04440E380E000C0D8E3E346E3D3008C +:106310008000E00044C0C000E2C3E0234423C30087 +:1063200002070322E3EB030080800005C880000021 +:1063300000E300050400000000001301C01300008A +:10634000C000000000000000000000072293CB22E4 +:10635000C30300230003C700030303C903CBCB839C +:10636000014700000413C3C30223000004000022FD +:1063700003000062C3E00003000003C30200440303 +:10638000000003C302C04400000003C302C3440072 +:10639000000003C3004000030000034302C0E0000C +:1063A000000003C302C0440000000022E30000001C +:1063B000E3000200C3000200C3000022E307030061 +:1063C00047000022E30000C0C0220022E30003C017 +:1063D000000006030800002203070000A0000000E0 +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:1064400000000000000800000000000000800020A4 +:1064500000020000408000000020800080800000DA +:1064600000028001008000000002800100000000A6 +:106470000002800000010003C00300010000008052 +:106480000082020003000000002080008000010064 +:10649000888230200084000A300821010484000230 +:1064A000120220C0200000100028012088020020D5 +:1064B0000804010000110040100400001040000416 +:1064C00009201000010000280004100001000090C5 +:1064D000040C00000100000800100200020020115E +:1064E000002802000104002040044108010040216E +:1064F00041414008C0040020080200801200400210 +:10650000041010008440000000201080040A0000E5 +:1065100000405080840240004000200080020000C3 +:106520000002000000020000000000000000000166 +:106530001200000010000000000000000000000435 +:1065400004020400A001000000014000040804014E +:106550000401400A41200000000030050500408091 +:106560000000010020000220120401080000200C9D +:10657000050000080100200C051000800000200C20 +:10658000059000000100200C0120040801002028D3 +:10659000051004000100200C05100080000002001E +:1065A0000880000002000480300004003000020077 +:1065B0000800028008000200080000041200020027 +:1065C0000800201002000408020200000902100066 +:1065D00004000000000000000000000000000000B7 +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:1066300000000000000000800260800884800000EC +:10664000013C00C8F138000008000C00F00000C058 +:10665000C102000000000081C10200000000000132 +:10666000000000000000000000000000000000002A +:10667000000000800100000E000000800002800089 +:106680000100008F01008180030000900100940050 +:10669000000000800180022000000040F008B000EF +:1066A000A0700003600000C059B81E02200000C0A6 +:1066B00009B8000360041CC829B800036002000088 +:1066C0000110400884002D082110911F1A071000A6 +:1066D00002B000836180008109900804F4285CC93D +:1066E000010D0008F0001CC601E80083F002000064 +:1066F00042B0400BE40615C001804C0814128CD83F +:106700004108000710110080D208000000170000A7 +:106710000060509000101298D101A02000480000A5 +:10672000C108000000840E410200000000000000CB +:106730000000000000F00E000000002050000000EB +:10674000208080086050148003880E858500C04139 +:1067500042004C0F64120C5408F00604F07800005C +:1067600009F106008410028007390600F0040C804D +:1067700003816600F0311C000639060084384C8025 +:10678000D2B10603F4382D0000414000F00C5094C3 +:106790000318400F800014804260400F844800942A +:1067A0000280400F84480D940138400884483054DA +:1067B00006E04008842C0C000A316003F4381446CB +:1067C0001AC8010004003107024800000000000060 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000C0006800023E +:1068300000000180073040C2E740008001080100ED +:1068400000001CC02400000000001CC02400002028 +:1068500002001C000000002002001C0000000000DC +:106860000000000000000000000000000000000325 +:1068700008381C000200000000000C00000000802E +:10688000033429000000000000102804000000A0CC +:1068900029800000E008000360341C800130000201 +:1068A00020000080013000036000A88931314013CE +:1068B000603A1C20039400000038882933950004B6 +:1068C00080081E2001304073623A0090019000A0C1 +:1068D000000010C0C4000280200D68A00110888054 +:1068E000E00814C051310003600801C000100C0022 +:1068F0001008014104310007F0B000C0046000003E +:106900008038020000002E078000000620000204EC +:10691000E21100000A002C0B0038280000000000E3 +:10692000000000000000000000300C00000000002B +:1069300002100000003000070012020000302F4556 +:10694000E00012010060100713A829000008100BD6 +:10695000C00120804318100BE0802C4040305003D1 +:106960008000128045301200604010904160100B92 +:10697000E040125044101000008008C04140000068 +:10698000633811C004140605600012D004600000D2 +:10699000C3001400023800050300159005640007C9 +:1069A0000300004000B00600E0002D8041640610A6 +:1069B000C2001E4800400000E60010000000000079 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A1000000000000000000000000028800200A02C +:106A2000000800000000000000001100088108803C +:106A300000082000001010002083000000101454F3 +:106A400021000000001010040000200008101004B5 +:106A500000002000000800040000000009100002EF +:106A60002000001000301040200000000990008439 +:106A7000200000000390000400000000011004004A +:106A800020000000002D00002808001C401110000C +:106A90001210083C6011045010040016402908042C +:106AA00044040008903210444000000800180450CC +:106AB00040040100202414C000020020181400002B +:106AC0000081047900900810000010300480081044 +:106AD00002000212150210A0008200000000042033 +:106AE0000206C300001000000040001900E0008012 +:106AF000000C00000000010000028100339000083B +:106B000041010100204000000000000000040000DE +:106B1000000000000000000000000000000006006F +:106B2000000000004040040020000028000A01A0EE +:106B3000000081112020000094408168A4000040E2 +:106B400000008001202800000000800420800080D8 +:106B500000400006100410800420002C800658001D +:106B60000440000420000000002000140004002164 +:106B7000010A0024142E008004103000108002004E +:106B80009042800204800E200004800084A0040053 +:106B90000000012084800600000010020080240014 +:106BA0000103000024B00200400400200006008021 +:106BB00010000000000000000000000004000000C1 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C0000000000000000000000000000000000077D +:106C1000E000000000000000000000000000000094 +:106C200000300100C00000000838411604011000C7 +:106C30000800000600011000080000060001030023 +:106C400008002006000012000000000600002C00D2 +:106C50000800000000002C00080000060001EC0401 +:106C600008481ED300002C200030280300003C20E0 +:106C700000401C0000002C60C039010600184000D4 +:106C80008011210000000C8711304C80A1380007D2 +:106C9000E002022320604C80E10000C331040C0AB2 +:106CA00080030CC010680C0C870820863178000027 +:106CB00082130CD0D5700004900960830B0480040B +:106CC00096310E8001B002ACF8BC080011610000E2 +:106CD000000C20800530480026402D070000008071 +:106CE000E1000C000A400000E00D1000000040230D +:106CF00080080004400002000000001000000002B4 +:106D0000004800000000000000000000000000003B +:106D1000000C200000000000063C1C000070000772 +:106D2000F050140000184C14880280EBC1000004DD +:106D3000603C00C0F1194210063A6000D0014213D5 +:106D4000664A34A013B51207E6803C0020012E07E6 +:106D5000E6803CC621714254808E8ECB0970029031 +:106D600087012CC0537101136002C0C7C3710E406C +:106D7000C0101420F264000000108007C2E0080078 +:106D800000108027E20801070010B027A00A0903BD +:106D9000025010071074000000101C0002000005D3 +:106DA00086301D08020000000000000000000020E6 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E000000000007700000000000000000001600F5 +:106E10000000000000001400000200000002142620 +:106E20000000000000000007000000000000000754 +:106E3000000202000000000700020000000000073E +:106E40000000000000000000000000000000002F13 +:106E500000000007002809870500000000703C07BB +:106E60000000008003280107000000408100142F6B +:106E70000090000080020000240409901380018A21 +:106E800021318007000114C1A3381D977300000150 +:106E9000CA380100000011A0A260000C90008C0014 +:106EA0000AC0000B00143D810370008070008E0A40 +:106EB000C038000470704C96F104014210302DC5AA +:106EC0000B000000042C00800300020F7829142F0F +:106ED000D000002300113D80A1000000002C200004 +:106EE0000000004000002825C0320000000000968D +:106EF000510080000028011A00000000000000007E +:106F00000000000000780000000000000078010090 +:106F100000800007700A200000B00C4410A8000098 +:106F2000C0780E04107800800A90030000023C46EE +:106F3000E888010360282C8FE13083077801284F0F +:106F40000888000770002CC00BF801C411001DC098 +:106F5000ABF84100A0042C26E8F802401230018A68 +:106F60000AB0124004000120C100004202001C01CE +:106F7000B101204062081C80B232024062001C0055 +:106F80001040621700101C20B060000C00000116B9 +:106F9000C000000000004C06C0000000000000001F +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000004000000040000000000011 +:107000001040402000202040004020204020104020 +:1070100000403020402000200040002020200020A0 +:1070200010201000302004010020000004000000A7 +:10703000100010001000000000000000000004001C +:1070400040000000040104000000000010000200E5 +:1070500000000404042422240000002004001A205C +:1070600020000000540028202400040001003030DB +:1070700000100000900080000040202090000424B8 +:1070800000300020804010243120200020302020BB +:1070900004300020802000204840240400400012DA +:1070A00048400054004188020000000000440000F5 +:1070B0000804001080210018300000400020082043 +:1070C000080080400010300028104020802480817B +:1070D000313010200030141010000030200040002B +:1070E0000040202180500001101102100000040017 +:1070F00000000000341000041400200400002400EC +:107100000200240024204024100424001020010048 +:107110002840305020303032020204024102201058 +:1071200024400431505410303210045220083000F2 +:10713000221004440034500084140800400420202D +:1071400088020C008804001012008C10820A0808C3 +:10715000020420024000301202001800400A002001 +:107160000200020000003410020040029A00802059 +:1071700002124080001080021210404010301000B7 +:107180000030300000021400010000000400000084 +:1071900002000000000000000000000000000000ED +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000003000000000000000000000005F +:10720000000010000000300000000000000000003E +:10721000000010001000100010000000000000002E +:1072200000000000000000000000000060000000FE +:10723000000000000000000000000020000000002E +:107240003800700E0000000000006005000A000019 +:107250000A6908000000000D10000400790D0035D7 +:1072600000000D1E0010054030AC09009D700D009F +:1072700030A90975051A000500AC30003805000575 +:10728000001A780E0A30050E057A006090256959BB +:107290000040003008000412000C04000009000245 +:1072A00059000006080900120800000C1A0000BC72 +:1072B0000008087008091072A00808004810A8A06B +:1072C0000000904A20101000080D3030306000108F +:1072D0000050900000606000090000700000600035 +:1072E000000E0000000000000C20000030004000F4 +:1072F0007000000000000800700000001C007050CA +:10730000000D00007000101900190D100800000099 +:10731000000000000840603230303030300D000096 +:1073200009583000A909000AB030305A403060A036 +:107330000CA00000740474A27CA50010300400149A +:10734000000400100D0A09520C04101009703C10C2 +:1073500070080000500900000D00101D0D007000A5 +:107360001C09092C001020000030201D342A0E04B6 +:10737000301020300D2E0000006A20301000600018 +:107380009E30B00000A0005000000000000000008F +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000200020000030002D +:1073F000002030A0200000000020301020000030CD +:107400000020001030008030003000003000000804 +:10741000003000000000000000000000000000003C +:10742000020000000040008032008040000840E27E +:10743000025080400100048002008044000424B413 +:1074400002004011540048A0220080400400301087 +:10745000247084800840203000700000200130003B +:1074600050100010207000000000001020110A20B1 +:107470003530007010300100001050101030000046 +:10748000008030705000000400000100500910041A +:10749000510E005000040070008000503108800040 +:1074A0000000801140110020000090100001210018 +:1074B00000003120300420240410002001000400CA +:1074C0000000003010003000001010383A100008A2 +:1074D000000808000E00000000000E00210000005F +:1074E00040002004000020004800214034002020FB +:1074F00001003440000048011030213000002028F5 +:10750000855800042C0C20000130002C3034003051 +:10751000245000043E001000340000000010300031 +:107520001000000031000000100100003054006025 +:1075300004011471345006806404000413530004E1 +:107540000000008216000000005008000050247067 +:1075500000003000340010B10000B0200000B08CFA +:107560000170303150000080002030000068048637 +:107570008C000600048600000C00000000000000E3 +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000040203B +:1075F00000000000000040200000000000004020CB +:1076000000008000000040208010000000000020EA +:1076100000000000000040600000000000200200A8 +:1076200040100000000000004210422C0204420002 +:107630008010000002004200001001000020003015 +:1076400000000000800000600050000000002020CA +:1076500020002000000020000000000000002000AA +:10766000000000000000200000302000001020007A +:10767000800000000000A030000042040000023042 +:1076800000040000320000000000000800000000BC +:1076900000040000000002000034A000000002000E +:1076A00000040000000000000200000000000000D4 +:1076B0000040000000000000000002000040000048 +:1076C000003020000000000000000000000000006A +:1076D00000000000000000000000000000000000AA +:1076E000000000000200020000200000020002046E +:1076F00040200200000000000000300000000000F8 +:1077000000000030200000080004000C000000040D +:107710000000000000000000000410000000221023 +:107720000010000032000000000000040000000013 +:1077300000040000021002000000000400008000AD +:10774000000000000000000400000000000C000425 +:107750008000000080002004000000000000000005 +:107760001080000000000080010000000000000008 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000200000000000000020000000000059 +:1077F0000000200000002000000020002090000079 +:107800000000000000000000000020100000000048 +:1078100000800000100000000000000010002002A6 +:1078200000003000200000003000300008000C0094 +:107830000000000000000000900000000000002098 +:107840008002802040004020800080200000002036 +:1078500080008020000000208000002000B0002078 +:1078600080008020200000000000A0000000040034 +:107870000000000000000000000000000000000206 +:107880000000000000000000000004000000600094 +:1078900000000400000000000000000000000000E4 +:1078A0000000000000200000000000000020000098 +:1078B0000000000000808000000000008000000048 +:1078C00000000000000000000000000000000000B8 +:1078D0000000000000000000040004800000000020 +:1078E00004000480208004000000000000008000EC +:1078F0000000000000000000400100010000000244 +:107900008002002100000000000000200000802014 +:1079100000008490009000000000000000000000C3 +:107920000002000004000000040104000000000048 +:107930000401100000010000000000010000000030 +:1079400004020001200000002401000100000000EA +:1079500000000000800000000000000004000000A3 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000040B7 +:1079900040000000000000000000000000000000A7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D0000000000000000010000000000000001087 +:1079E00000000000000000100081000000000050B6 +:1079F0000220000000000010000000100000001035 +:107A00000000001000000000001000000008000846 +:107A100000100010000800000010001020080000F6 +:107A20000410001000100010008100000000001081 +:107A30000091002000000030000000200000002025 +:107A400000000020000000200000002000001020A6 +:107A5000002010200010402100000008000000104D +:107A600000200018000000100008000010000000B6 +:107A700003000000000040010008000000000000BA +:107A800000180101000000000008000000000000D4 +:107A9000000000C2100000000000000010001000F4 +:107AA00000200000000000000300C00100001000E2 +:107AB00000000000000000000000001000000000B6 +:107AC0000000001020001000000000000000000076 +:107AD000001000000000000800000010100000006E +:107AE0000000001000000000000000100400000072 +:107AF000000800000000002000000000000000203E +:107B000000080020000000200020000010080000F5 +:107B100000020008040000080408001000100080A3 +:107B200042000008041000000000000000000000F7 +:107B3000000000000400000000000000040010002D +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC000000000000000000000000F550F33474781 +:107BD0004747000000004747BB11000000000000BD +:107BE0000000000000000000000053530F5500008B +:107BF00000000000000000000000CF03772200001A +:107C00000000000000000000000000000000FFFF76 +:107C1000FFFFFFFFFFFF000000000000000000006A +:107C20000000FFFFFFFFFFFFAF050000000055331E +:107C30007744FFFFFFFF00000000FFFFFFFFFFFF93 +:107C4000DD11FFFF5F0AFFFF1D1DFFFFBB11666611 +:107C5000666666666666AA55CC333C3C66665A5ACA +:107C60006666666666666666CC336666CC3366664E +:107C7000AA55CC333C3C0000000000000000FF5F30 +:107C80005F50FFFFFFFF0000000000000000000049 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC0000000000000000000000000000000FFFFB6 +:107CD000FFFF330F550F000000003F300F5500002D +:107CE0000000000000000000000000000000FFFF96 +:107CF000FFFFFFFF3F30FFFF77440F8F0F8F000024 +:107D000000000F8F0F8F0F8F0F8FFFFF3F0CFFFFB4 +:107D1000BB11FFFF1B1BFFFF1D1DFFFF1B1B0000F7 +:107D20000000FFFF7722000000000F8F0F8FFFFF82 +:107D3000FFFF00000000FFFF3F30FFFFFFFFFFFFDE +:107D40001B1BFFFFFFFF0000000000000000000001 +:107D5000180000000000000000000000000000000B +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB000000000000000000000000000000090240F +:107DC0001E0090241E000000000090241E000000F1 +:107DD00000000000000000000000000000009024EF +:107DE0001E000000000000000000000000009024C1 +:107DF0001E00000000000000000000000000000065 +:107E0000000080240E0080240E000000000000000E +:107E100000000000000080240E0000000C000000A4 +:107E2000000000000C0000008C0200000000802414 +:107E30000E0000000C0000000C0000000C00000010 +:107E40000C0048804CA84C804CB94D804CB84C80FC +:107E50004CB94D804CB84C804CB94D804CB84C80DE +:107E60004CB84D804CB94C804CB000000000000074 +:107E7000000000000C0080240E0000000000000044 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC000000000008C0290241E000000000090249E +:107ED0001E00000000000000000000000000000084 +:107EE000000000008C0200000C0000000C00902438 +:107EF0001E000000000090241E0090241E000000C0 +:107F00000C0000000C0000000C0000000C00000041 +:107F10000C000000000000000C0000000000902495 +:107F20001E0080240E000000000000000C008024D1 +:107F30000E0000000C0000008C0200000000000099 +:107F4000000000C008000000000000000000000069 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE00000000000000000000000000000008024ED +:107FF00002000000000000000000000000008024DB +:10800000020000000000000000000000000000006E +:1080100000000000000000000000802402000000BA +:108020000000000000000000000000000000000050 +:10803000000000000000488040A84C8040B84C8000 +:1080400040B94C8040B94D8040B84D8040B94D801A +:1080500040B94C8040B94D8040B94D8040B080243B +:1080600002008024020000000000802402000000C2 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A0000000008000284D8040B94D8040B84D80D0 +:1080B00040B84D8040B84D8040B94C8040B94D80AB +:1080C00040B84D8040B94C8040B94D8040B100006F +:1080D00000000000000000000000000000000000A0 +:1080E00000000000000000000000902412000000CA +:1080F0000000000000000000000000000000000080 +:10810000000000000000488040A94D8040B84D802C +:1081100040B94C8040B84D8040B84C8040B84D804C +:1081200040B84D8040B84C8040B94D8040B0000010 +:1081300000000000000000C000000000000000007F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E0000000FFFFFFFF0000000000000000000093 +:1081F0000000FFFFFFFFFFFF5533000000000000FD +:108200000000000000005533550FFFFF5F50FFFFD7 +:10821000FFFFFFFFCF03FFFF5F0AFFFF5533FFFFA5 +:108220003355FFFF550FFFFF550F33CC33CCC3C37E +:1082300033CCC3C3999933CC55AA55AAC3C355AA05 +:10824000A5A5A5A59999C3C39999A5A59999A5A5EA +:10825000C3C3FFFFFFFFFFFFFFFF00000000FFFFA2 +:10826000FFFF000000000000000000000000000010 +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:10829000000000000000FFFF3C3CA5A55A5A5A5AB6 +:1082A0003C3C666666666666666666665A5A6666DA +:1082B0006666AA55CC33AA55AA55CC33AA55AA55F9 +:1082C000AA550000000000000000FFFFDD11FFFFC5 +:1082D000DD11FFFF330FFFFF0F33FFFF0F3355D5C6 +:1082E00033B30000000000000000FFFF1D1DFFFF72 +:1082F000550F00000000FFFFBB1166666666AA55B9 +:108300006666AA5566666666CC33AA55CC33666641 +:10831000CC33AA55CC335A5A6666CC33AA55666616 +:108320003C3C0000000000000000000000000000D5 +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:108390000000000000000000000080000026000037 +:1083A000000040200040000000004020005000007D +:1083B000000000000000000000008000002200001B +:1083C000000000000000000000008000000A000023 +:1083D00000000000000000000402000020008022D5 +:1083E0000000C02000080900040200000C0080000A +:1083F00000008000000600000000000000000000F7 +:1084000000010000C0000000000080000004000027 +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:108440000000000000004500040300001401E003E8 +:108450000001800090060000000000000000000005 +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000008000000E00000000800000060000B8 +:1084B00000000000000000000000000000000000BC +:1084C0000000000000000000000080000024000008 +:1084D0000001800000230000000040200090000008 +:1084E000000000000000000000000000000000008C +:1084F00000000000000000000000800000080024D0 +:10850000000040200080800000008000000000008B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:10858000000000000000000000008000000000016A +:108590000000002000000000000800200000000093 +:1085A000000000000000000000008000000000014A +:1085B000000000000000000000008000000000013A +:1085C00000000000000000000000090000000000A2 +:1085D00000008021000000010008010000000000F0 +:1085E0008000801000000001000400000000000076 +:1085F000000060008000000000008010000000010A +:108600000004000000000000000000000000000066 +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:108630000000000000000000000049008000000071 +:108640001000C400800000010020000000000000B5 +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000008000000000010000800000000001D8 +:1086A00000040000000008000000000000000000BE +:1086B0000000000000000000000080000000000139 +:1086C0000000C00080000001080000200000000041 +:1086D000000000000000000000000000000000009A +:1086E0000000000000000000000080000000000109 +:1086F00000000020000000000010801000000001B9 +:108700000020000000000000000000000000000049 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:108780000000000000C0000044C000000000E00045 +:108790004400000000000000000000000000000095 +:1087A00000C0000000000000000000000000C00049 +:1087B00000000000000000000000000000000003B6 +:1087C000C7C000000300000002000022E3000023F5 +:1087D000000300000303000300000000000300008A +:1087E0000000000000000001001340010013000021 +:1087F00000030000000000000000A00000000000D6 +:108800000000000000000000A000000000000000C8 +:108810000005000000000000A000000001000000B2 +:108820000000020504800008A00000000400C80049 +:108830000080C40000C0CA020282000200C0000022 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:10888000000000000000400040C300000040000065 +:108890000000030000C00000000000000000000015 +:1088A0000000000000000000000004400040000044 +:1088B0000000040000C0C0001380000000000000A1 +:1088C0000040A00000C020002000200000000000A8 +:1088D0000000040000000008000300000400000085 +:1088E00000C300000800E007021000000400C00000 +:1088F0000010000000000000001000000000000058 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000001000010000000040000E2 +:1089800000000000000000000000000000000000E7 +:1089900000000000011000000000000000000000C6 +:1089A00000001000010000000000000000000000B6 +:1089B000000000010402000040000000040002006A +:1089C0000880000000010000040100080080008011 +:1089D0000008000000000002001000010000010576 +:1089E000000400800008000000800000000000007B +:1089F0000000000000000000001000200000000047 +:108A000000000020000000000000002000102000F6 +:108A100020001000000002002004000000040000FC +:108A200000100000000200000002028002820180AB +:108A30000010000000000000000000000000000026 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A7000000000000000000000000180011801005B +:108A800000400000008008400010000000000000CE +:108A90000000000000000000000000000000004096 +:108AA0000040010000000000001010000002000063 +:108AB0000100000000200000000400000004000489 +:108AC0000004000000000000000000000080000022 +:108AD00000000000009000000040000004000000C2 +:108AE00000001080011004000000000410000400C9 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000F0000000004040078E +:108B700000020000010000030000004000000000AF +:108B8000000000000000000078000000000000006D +:108B90000000000000000000043800000038000061 +:108BA000000000000000000000802C000000000019 +:108BB000009008000000000000000000000000001D +:108BC000000001000000008001000000300080086B +:108BD00000502C040900001000801104D000411046 +:108BE000048040000100202004020806C138422011 +:108BF00080B8144001E200C00380006001908880CA +:108C000079380040C1B000008000026001B9000066 +:108C10000050000030BA000000060C000000000305 +:108C200000F800000000000000000000000000004C +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C5000000000000000000000000000A000000074 +:108C6000000000082000000000042C0000000000AC +:108C700004040007000008800078000000802CA099 +:108C80000170000000000000000000000000012052 +:108C90000000000000408110203A080821000180F7 +:108CA0006178140100000002000410000040401030 +:108CB0000404124742604000043021400038004064 +:108CC00007000C000030162070140100003802006C +:108CD000000A0C0000000200003000800102880041 +:108CE00000000040C2000000000000000000000082 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D6000000800070038002003000007003800203A +:108D700001000000000000000000000020300000A2 +:108D800000140000000000000000000000000000CF +:108D900000000000000000000000000000000000D3 +:108DA000000000000048220000000080033C00009A +:108DB0000000000000001000000000CB05000000D3 +:108DC00000000C03003C28480200020000380008A4 +:108DD00000000E80E3380C00020008820010120828 +:108DE00002008280030001200170808005081C01C0 +:108DF00000F0904200001C000070800000001C4148 +:108E0000C070800000001C06407000000038120096 +:108E100000000014003828000000000000000000DE +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E500000000000000014012000000000000000DD +:108E600000000000E0001400004408A068001400A6 +:108E700000300C8001000C00000000000000000029 +:108E800000000E80010000000008000320104200D6 +:108E900002080080610000000802000200000200D9 +:108EA0000008000000380000000100070600000074 +:108EB00000000000000030000080008083081000E7 +:108EC000001402000770280000000800007028004D +:108ED000C20003020000300000000000000000009B +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50008000000000000004000000000000001479 +:108F600000080040000000000000000000000000B9 +:108F70008029000000000000000000000000000048 +:108F800000100C000088000000000000000000003D +:108F900000000100000000000000040000000000CC +:108FA000042000000000000000000000000000009D +:108FB000020000000000100000000000000002009D +:108FC000000428000000000008062800000000300F +:108FD000000014012000C20008110000000200007F +:108FE000020102404000010800110202242020007A +:108FF00002002220001020100800826004000000FF +:109000000000100000000010002000100000000010 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:1090400000000000200000000800D00228000000FE +:10905000000020001400000080207C000400430079 +:10906000100210000404048000001000040000003E +:1090700000000000000020000802000100000100C4 +:109080004011024020082000450118000042001451 +:10909000000000A0000001000042000000020000EB +:1090A0002090000000008100000068011400010011 +:1090B000402900040401060000002C00000051209B +:1090C00000080000040082200200000020000000D0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:1091400000000000E02C0000004080070034000018 +:10915000000080000000000000000000000000008F +:1091600000000000E000000000000000000000001F +:1091700000000000000200000000000000000000ED +:1091800000000000000C0D000000000000801C002A +:1091900000000080013C00000000000000801C0076 +:1091A0000000000700000010000000000040422006 +:1091B00002002E0000780C000000228063100000E6 +:1091C0000208000200000000008126C00300080021 +:1091D00000003200103800C8040000000000000445 +:1091E00000010E000600101C00000C80230080000F +:1091F00000000000000C2000000000180038108063 +:10920000030000000000000000000000000000005B +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:109230000000008004000000000000800100000821 +:10924000200001600040150320000100EE15100809 +:109250002870000060008100200000000000000075 +:10926000200100000000000000000E80E328000044 +:10927000000000006302000000840E808C031400D4 +:109280003085001AC000002003080000E0800000C4 +:109290000200008307300000000108000600000003 +:1092A0000080086070006000E0702E000E009400E6 +:1092B000C000008701009C14C001000406002808BB +:1092C000E0000000000000000000000000000000BE +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:1093300000000000000000007001000000C880056F +:109340000000000000000005000000800200000096 +:1093500000000000000000007039000000780000EC +:1093600000000000000000000000140000480000A1 +:1093700000000000000000000000100000000000DD +:10938000000011000000002000380000F000000084 +:109390000028010000008080000000801102000011 +:1093A00000080D860100000000382000F0000000D9 +:1093B000002C001AF04000000000000800300040BF +:1093C0000000400000000E80710201804100000397 +:1093D00000008000000000800150AC80F10000001F +:1093E00000012C14020400000078000000000004BA +:1093F000000A010002000000000000000000000060 +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:1094300000000000000203400008900FA00002009E +:1094400020381000A0F8000078780C003078100068 +:109450000000000900000000000000000000000003 +:1094600000B40000F00800106400000000000000DC +:109470006000010000000000040000000100000086 +:1094800000303405F10080000000160000000800E4 +:1094900000000000E000004024383C0800E000002C +:1094A000000000000001002000142100C2000C8018 +:1094B000002C00000002000000000000000000007E +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:1095300000010000000000500000000000000000DA +:10954000000010000000000000000000000000000B +:109550000010003010000000000014210200000084 +:10956000004112000002800408004200040A0004C6 +:1095700048000422204000000001000004014000D7 +:1095800020010021108180804001000000000000C7 +:1095900021000000212000208020028000800000A7 +:1095A00010018000008000200000803004001020A6 +:1095B000000020208000812040209100240424000D +:1095C0000084000000044424020C100000142884CD +:1095D000018C00482804043000848A000908080A25 +:1095E00000408800000000000201000000000400AC +:1095F000000000000000000000000000000000006B +:10960000000008000000000400000000000000044A +:10961000000000004000000000000000000000000A +:109620000080000422040004000104014210001420 +:1096300030200022420021080410002412001100F2 +:1096400002012000222008080011000810200C0050 +:109650000010000001000102000100000001008272 +:109660000004080000011000080108180009400863 +:1096700000100009408404402800004C04800408C5 +:10968000011000800022040002005C419202402090 +:10969000500081542A221C42200020200202340162 +:1096A000011280080212880100040100000001007C +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000900000100000900009 +:1097300090000000000030709000007000090000F0 +:10974000000000000030003030000000000010B0C9 +:1097500070000000000030B0007070090800600068 +:109760000008000058B0500050000000B000000099 +:109770000900000000B00000100000000000000020 +:1097800000000009000000007E000000000008B09A +:109790005000000030090000500000700000003050 +:1097A0007A501000B07042000A0602B65070209045 +:1097B00090667C060006AE009E5A2E060E0820001B +:1097C000A030A0069018AEA8AC5000350070040080 +:1097D0009CACB0A0905004000006067090A0A900B8 +:1097E0005D000000000A7000700000000000000032 +:1097F000000000000000080000000000000D000054 +:109800000000000000B000000000000000000000A8 +:10981000000000000000000000000D00000000003B +:109820000030003030000000000600B00030300092 +:1098300010B030B05010500000B004B4503030942C +:10984000100000B05030320200B00006000050900E +:10985000300006163C903496000010B6300D041C03 +:10986000B000B0000020100C0200167634095050F1 +:10987000B0000008023008320C0000000E000404A2 +:1098800030000000100090309C091C000000000017 +:10989000000C0000B00009305000580A005C09BA02 +:1098A000000000A000000000000000000000000018 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:10991000000000000000000000080000020000102D +:1099200000000E0000000000000000000000000029 +:109930000000000000000000000000200000000007 +:109940000000082C0C00000000380C0E000830004D +:10995000000028000C08000030000C04003E00004D +:10996000000400006C0430063054C2340034303639 +:109970003154000000006000380000501C1001103D +:10998000161009205020007051082000503000109F +:1099900000002030580000100000322020503C1001 +:1099A00030101400100C110E0A2C00000000901052 +:1099B0000C080000000810200CA400002000042067 +:1099C00000241C00085E005C0E3010000000000047 +:1099D0000C04000000000C0000000000000000006B +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000011000000056 +:109A000000000000000000000030000830040000EA +:109A100000080808300000002030002814001C4016 +:109A20000800802C000008000C88100E301E00007A +:109A300000088000001E0C007A0080000C0E0C084C +:109A4000000C0000800400B88108800000040000C1 +:109A500080040000000412000A008E74302C8C3048 +:109A6000A00E0014082E0800080001BE01306C5042 +:109A70000C003C3D30003E103A00383824100C38C1 +:109A80002050802004513404040830800400200C4D +:109A900000090400000008000000000000000000B1 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000040000000000000000000000000041 +:109B20004000000040104020400000004000400085 +:109B30004000000040000000002000000000000085 +:109B4000200000000000082040200000000040200D +:109B50004000000000004020000000200000100035 +:109B60004000000000000000000000000000800035 +:109B700000000400000000008000402000000030D1 +:109B800080004020000040004014003040001000E1 +:109B9000000202004014400000000C00000401001C +:109BA0002022000000000000200000002000000033 +:109BB000000000000000A0010000000000080000FC +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000004020400000000000402075 +:109BF00040000000000000200020000000000000E5 +:109C0000000000044000002040200004000000008C +:109C1000402000044000003040204004000040008C +:109C200040100004000000000010001000000000C0 +:109C300000000000000000000000000000B0000074 +:109C40000030008000000034000040304000000080 +:109C5000020042000010000000020030000000007E +:109C60000000000000000200000000000030400082 +:109C700000000000000020000000000000000002C2 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000020000000209020002000000033 +:109D200020002000200000002000000000000000B3 +:109D30000000000000000000000001002000000002 +:109D400000002000200000000000200000000000B3 +:109D50000000000000000080000000000000000083 +:109D60000000200000000104000000002100100499 +:109D700000003000210010440130200021002000AC +:109D80002000000100000400A001200100000600E6 +:109D900000010400808080000000000080000000BE +:109DA00080000000000401000100600800000000C5 +:109DB0000002810000000000000000000000000020 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000020002000000043 +:109DE0000000200020000000000000000000000033 +:109DF0000000000004010001200000002401000117 +:109E000000000000200100012000000014011001EA +:109E100000003030340100010000000000000000AC +:109E20000000000000000000000000000000000032 +:109E30000070000000800030000000400002308010 +:109E40002000000004001400008000000008000052 +:109E500000000000004000000000000000000000C2 +:109E60000000200000000000000040000000000092 +:109E70000000000C000000000000000000000000D6 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA000000000000000000000000000430000006F +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF000000000000000000000000800000000005A +:109F00000000000000000000000000080020001019 +:109F10000000000800000000000000000000000039 +:109F200000100000000000001000000000020010FF +:109F300000100000000200100000004002020010AB +:109F400020000010000010000000000000100000C1 +:109F500020000000001000000000000400000000CD +:109F600000000014001020100000000C003000045D +:109F70000018201000001000000000000410040071 +:109F800000000400000020000000000000000000AD +:109F9000000000002000000000040000000082001B +:109FA00000004001000004000081000000000000EB +:109FB0000041000000000000000000000000000060 +:109FC000000000000000000000000000000200107F +:109FD000000000000002001000000000010000105E +:109FE0000410000000000000040000000000001049 +:109FF0000410000000000000041000000000001029 +:10A000000410000000000020041000000000000008 +:10A010000010001000000000000000000000000020 +:10A020000000000000000000000000080000000820 +:10A0300000000000000000440200000000000004D6 +:10A0400000000010000008000000000000000000F8 +:10A0500000000000001000000000000000000000F0 +:10A0600000001000000000000000000000000000E0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A1200000000000000000000000FFFF47470000A3 +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A15000000000000000FFFF772200000000000068 +:10A160000000FFFF1B1BFFFFDD11FFFFBB11FFFF07 +:10A170005353FFFF3F30FFFF5F50FFFF5353FFFF7D +:10A180005F50FFFF1D1DFFFFCF03FFFFFFFFFFFF1E +:10A190003F0CFFFF7744FFFF3F0C00000000000072 +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F00000000000000000000000000000005533D7 +:10A200003F301B1BBB111B1B7722FFFFFFFFFFFF14 +:10A21000FFFF0000000000000000000000002727F2 +:10A22000AF05AF0527270000000000000000FFFF7A +:10A23000272700000000000000006666666666666C +:10A24000666666663C3C66665A5A66665A5A3C3C86 +:10A250006666AA55666666665A5A5A5A666666669B +:10A260006666000000000000000000000000000022 +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A320000C00000000000000000000000000000021 +:10A33000000000000000000000000000000000001D +:10A340000000000000000000000000000C00000001 +:10A3500000000000000000000C0000000C000000E5 +:10A360000C0000000C0000000C0000000C000000BD +:10A370000C0000000C0000000C0000000C000000AD +:10A380008C0200000C0000000C0000000C0000001B +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000090241E0090241E0090241E00802443 +:10A400000E0080240E00000000000000000000008C +:10A41000000000000C0000000C0000000000000024 +:10A42000000000000C000000000000000000488058 +:10A430004CA84C804CB84D804CB84C804CB94D80E9 +:10A440004CB94C804CB84D804CB84C804CB94D80C8 +:10A450004CB84C804CB00000000000000000000030 +:10A4600008000000000000000000000000000000E4 +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D00000000000000000000000902412000000B6 +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A5000000000000000000000000802402000000A5 +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000488040A94D807D +:10A5600040B84C8040B84D8040B94C8040B84D80D8 +:10A5700040B94C8040B94D8040B94C8040B94C80C6 +:10A5800040B00000000000000000000000000000DB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D00000000000000000000000000000009024C7 +:10A5E00012000000000000000000000000009024A5 +:10A5F00012000000000080240200000000000000A3 +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A620000000488040A84C8040B94C8040B94C8024 +:10A6300040B84C8040B84C8040B94C8040B84C8009 +:10A6400040B94C8040B84C8040B100000000000090 +:10A65000000000800000000000000000000000007A +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C0000000000000000000000000000000330F48 +:10A6D0000F55000000000000000000000000000016 +:10A6E000000000000000000000000000000000006A +:10A6F0000000000000000000000000000000FFFF5C +:10A70000FFFF00000000000000000000000000004B +:10A71000000000000000000000001D1D550F00009B +:10A72000000000000000DD112727000000000000ED +:10A730000000FFFF550FFFFF535300000000FFFF15 +:10A740003F0CFFFF3535FFFFBB11FFFF550FCC332B +:10A75000666666663C3C3C3CCC335A5A5A5ACC330B +:10A760006666AA555A5A3C3CAA555A5A66663C3CFB +:10A770006666CC336666FFFF774400000000000089 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000AF05BB1100000000000000000000F9 +:10A7E0000000330F330FFFFF0F33FFFFFFFFFFFFAB +:10A7F0001D1D00000000FFFF5533FFFF3F0CFFFF52 +:10A80000335500000000FFFF330FFFFF55330000FA +:10A810000000FFFFAF0599999999C3C39999999938 +:10A82000A5A533CC33CC9999C3C333CCA5A59999AD +:10A830009999C3C39999C3C3C3C3C3C355AA00009D +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C000000000000402000028000000000000005A +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F000000003000402000020000000000000002F +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000010000900000000000800076 +:10A9D000000400000001C020104404000001C02059 +:10A9E00090000000000000000000000000000000D7 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000100000000000000000095 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000001100000000000000000055 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000004000800000000000800055 +:10ABC000000000010020C020800000010060C034AF +:10ABD0008000000100600000000000000000000094 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA000000000000000000000000000C4C0000020 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000230003C7C0C7 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD200000000000000000000000001000C0000053 +:10AD3000008008000400000000000400C008A0001B +:10AD400000000800C00000000000C0000800A000D3 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000010000A2 +:10ADB000C800000000000000C000570080CBE00089 +:10ADC00044000000000300015707000000000000DD +:10ADD0000000000000000000000000000000000073 +:10ADE00000000000000000800000000000000000E3 +:10ADF000000000000005040008000002000508052E +:10AE00000000000800000405008000050000084064 +:10AE1000000000000000040000000000000000002E +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000020000000000000000000000000000A0 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED000000104020000000000000000000000006B +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000200000000000000000000011 +:10AF2000804000000004000000000000000000005D +:10AF3000010000000000000001000000000001000E +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA0000001000000000000008000001000000010 +:10AFB00082080000000000000008020100000000FC +:10AFC0000000000000000000000000000020000061 +:10AFD000000000000000000000000004002000004D +:10AFE000000000000020000800000000000000A099 +:10AFF000000000000000000000000000000400202D +:10B000000000004000000000000000000000000000 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B09000000022000002000000000000000000008C +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000B82C0000008000000200001A +:10B0D0000100000000000000000000200048000007 +:10B0E000200200000000000000000C00000000072B +:10B0F00000000020000100003000000000020004F9 +:10B1000000000100003800C042108020004800000C +:10B11000C210080004100000C20001000008000076 +:10B12000C2015C8001040C8022600100003000003C +:10B1300000428080000000800370000000000000DA +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B19000000000500000000000000000500000000F +:10B1A000004080E779010080C530000000880C0075 +:10B1B00000000000000000000000000060300000FF +:10B1C000C000000700000080010000000010000621 +:10B1D000006000000000000030008000282F00C048 +:10B1E00001F200807000008703800040000000181A +:10B1F00028F000002800008003824000902C1458A2 +:10B2000001F000000000000000000000000000004D +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000002000038800C00000000F8 +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000400000000000034B +:10B2C0000038000002000000000000000000000044 +:10B2D000020000000000000000000000000000006C +:10B2E000000000000000000082003000008000002C +:10B2F0000038000800000E076038000000810204DA +:10B30000623100000A800000E090280008000C0F65 +:10B3100080800C10280000070010280000090C0095 +:10B320000040A001C00800440000200602800C007C +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B38000000000000000008009000000B000000084 +:10B390000000000000080087E3002C1000F00E0001 +:10B3A00000382900000000000000000000002C8090 +:10B3B000714100000034AE0F0000000000002C803E +:10B3C00065010008000000A00000000000008002ED +:10B3D00020100020017880A010340020017080002F +:10B3E000800000000078800300003400C07080807E +:10B3F000E3003501007800000000000000000000BC +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000040000000000C8 +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000008000001C +:10B4B000000000000000000000000000000000008C +:10B4C00000000000000000008000000000000000FC +:10B4D00000008400000000000000000000000000E8 +:10B4E00000002000002000000000013000190002D0 +:10B4F000000022002008100002006000004400004C +:10B5000001108020000311080000010001C0088024 +:10B5100000108000000200001010090000028000EE +:10B52000000011000000000000000000000000000A +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B58000140000004000000000400081080000009E +:10B5900088081000003004020000000000000002D3 +:10B5A0000000000004000000801000000000000106 +:10B5B0000100010020100000000200000000000057 +:10B5C0000000810008000000100080800001408120 +:10B5D00000008110910040003000811000012080A7 +:10B5E000000081001400800008000000000000003E +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000001000CA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000008000000000000D00000000000000000D +:10B6B000000000000000000008000000A0000000E2 +:10B6C0000000000000000C000080000000000000EE +:10B6D0000000000000810E00000000000000008358 +:10B6E00007B0000000080C000080000000011C20D2 +:10B6F000089000001000220360800C00E00140056B +:10B70000E0310000100000A081400000100002C0E5 +:10B71000870020180008080000000000000000005A +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B76000000000000000000000000000000000A039 +:10B7700000000000000000008001100000C08040B8 +:10B780001200000002002600001028000000060041 +:10B790000000000000000820D08100000000A60D7D +:10B7A000000000C000000000670000000000000072 +:10B7B00000000000000000000A0000070000002355 +:10B7C000CA0100010000080B08000000000008008A +:10B7D0002E0016040001880008000000000100008F +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000200000000010000000000000000D5 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B890000000000000083C00000000000000000064 +:10B8A0000000000000000000000000000000000098 +:10B8B000B002000000000000000022000008202F5D +:10B8C0000000000000000000004000000008000F21 +:10B8D0000000000000880000F06000000000008F01 +:10B8E00002004C400400004F01000000002800004E +:10B8F000001A100000000005103000000028280F7A +:10B900002000084000000086B10000000000001682 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000100D6 +:10B9700000F000C551000000003800000088000001 +:10B980000000010000000005000020005038000FFA +:10B99000006000050000000004000000000000003E +:10B9A00010000000000000001000088001702C2F23 +:10B9B000E00088800100200E0000028011000000DD +:10B9C000E000028001010C30080002850100000047 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA70000000000000004000000000000000000086 +:10BA80000008000000000080000000080000000224 +:10BA90001004040000040801040004402004000114 +:10BAA00000010000040100001000800040110000AF +:10BAB00010008000001080204020804000008000A6 +:10BAC0002000000000008020200020000000202036 +:10BAD00000080000840000400020000440800000B6 +:10BAE000040080042000802080302040208000203E +:10BAF00080200000008020020002011400080000E5 +:10BB000000000000004000000000000004000000F1 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000400040400000040A9 +:10BB50000000000400000108444021010100002011 +:10BB60000081000010110002002020802000000051 +:10BB70000001810001008800000000000420000096 +:10BB80000081000028022000014000804020004188 +:10BB900000000000401021180444002000208024F0 +:10BBA00001000000411021810480814048200942A9 +:10BBB00009000004880220040040220200840228B8 +:10BBC0000800000000080000000000000000000065 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC300000000000000000000000000000090000FB +:10BC400000000000080900000000000000000000E3 +:10BC50000000000000000000000050000000000094 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000C00000000000000000008B0 +:10BC800000000000000000000000080000000000AC +:10BC9000000070000002000000000800009000009A +:10BCA00000000D00000000000E00000200000A006D +:10BCB000000000000900000E00090C02100500063B +:10BCC000000070920254990000003C900270300015 +:10BCD0000D5EAE020672060C000A00000C3A060564 +:10BCE000060A02B2490279000D000D000250000060 +:10BCF0000658090000000006B80000B0000000006F +:10BD000000000000000000000050000A00000000D9 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000080000000000000800000C00000000D7 +:10BD50000000000000000090301000000C000050B7 +:10BD6000000000000005A0060090B80000003000B0 +:10BD700090020002000090000C060A900096000657 +:10BD8000000D000000000D06B010001800000000BB +:10BD9000000A0A7200000000003000B0000000003D +:10BDA00008000CA00800020004A00040000002707F +:10BDB000700009500C0A090601087000000570AAFD +:10BDC0000050000000000000000000000000000023 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE3000000040000000000001400001400001003F +:10BE4000010180000000000001808000000000006F +:10BE500000000000000000000000000000003000B2 +:10BE600000000000000000000000000000000010C2 +:10BE70000E0070000000000C00000000000400082C +:10BE80000000043010000008000C0000080C0B50EB +:10BE900000003000300C0000600010000000308016 +:10BEA0000010201000003050300000000000313041 +:10BEB0009050300000003030005000703C50811035 +:10BEC0000030807830100000780010093000102019 +:10BED0002120003030100020102070000010300CA5 +:10BEE0000008080000000000000000000130000011 +:10BEF000000000000800000000000000000000003A +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30007800700000017030000000080100080067 +:10BF400018101C0C0C0000307018000000080004D1 +:10BF500001301010100001008104190009003000A8 +:10BF60000101800105000000711D0001100C30006E +:10BF70000C3001101130003C0000700010001C005B +:10BF8000783C00100030203C040000001400182C05 +:10BF900000201C101030081C04000000100C300C95 +:10BFA0000010340800280C10000000000000000001 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C0300000000400000000000000000000000000FC +:10C0400000100000000000000000000000000000E0 +:10C0500000000000000030000000000000800080B0 +:10C060003000300030807000000000003080300070 +:10C07000400000008020000080000000000200025C +:10C08000000000000002000000008000040000002A +:10C0900000000000400080000000000000000000E0 +:10C0A000000040000000041000000000000000003C +:10C0B0000000000000000000000000000C00000074 +:10C0C00000000082000000000000000000000000EE +:10C0D000000000000000040000000000000000005C +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000800080001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000800000003000000000400000000000FF +:10C15000400000000000000000000000000000009F +:10C16000003020010000040000300000000000004A +:10C1700000000000802000100000000220000000ED +:10C180000004400020000000200400002000000007 +:10C19000000000000000000000000000000004009B +:10C1A000000000000000000100000000000000008E +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C23000000000000090000000000000000000006E +:10C2400000000000000000000000400000000000AE +:10C25000003000304000400040306000000000002E +:10C2600040304000210000001000000010000000DD +:10C27000010C000C00000000000C00000000200079 +:10C28000010000000000000020002000000000006D +:10C290000000000400001000000001000000000089 +:10C2A0000000000401000000000000000100000088 +:10C2B000000000000000003000000000000000004E +:10C2C000000000000000000000000100000000006D +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C3100030003000000000000000000000000000BD +:10C32000000000000000000000000000000000000D +:10C33000000000000030000000400000000000008D +:10C34000000000800000000000000000000000006D +:10C350000000000400804008000001000080000090 +:10C3600000000000000000001040000000008000FD +:10C37000800080008001100080200000800100000B +:10C380008024000001008000000080008000010087 +:10C390000000010000040000000000000000000098 +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C00000000000000000404200000000000000EB +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C410000000000000000000000008000000000014 +:10C4200000000000000000000020000000000000EC +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000003000000000000E9 +:10C4500000030000000000000000000000100000C9 +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000004000000000000B8 +:10C480000000000000000004000000000000001098 +:10C490000000000000001004000000000000000088 +:10C4A0000000000008000000000000000000000084 +:10C4B000000000000000000000000000000000403C +:10C4C000400000000000000000000000000000002C +:10C4D000000000000000000000000000000000005C +:10C4E0000000000000000000000300000000000049 +:10C4F0000003000000000000000000000000000039 +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000010000000000000001000100000CB +:10C5400000000010000000040000000000000002D5 +:10C5500000000000000000000000000000000810C3 +:10C560000000040000000000000000000020002087 +:10C570000400000000240020000000000000000073 +:10C5800000000004000000000004000000000000A3 +:10C59000000000000000000000001001000000008A +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C66000000000000000FFFF353500000000000062 +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B0000000FFFF774400000000000000000000C1 +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000BB111B1B2727F50500000000FFFFE1 +:10C71000FFFF0F33550F0000000000000000FFFF77 +:10C72000FFFF00000000FFFFFFFFFFFFFFFF000013 +:10C730000000FFFFFFFF00000000000000000000FD +:10C7400000003F3035350000000000000000000010 +:10C75000000000000000FFFF5F0A00000000000072 +:10C7600000000000000000000000FFFF272700007D +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000800000000000001A0 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C850000000000000000000000000000C000000CC +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A00000000000000000000C000000000000007C +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F00000000000000090241E0090241E00000094 +:10C90000000080240E0090241E00000000000000A3 +:10C91000000080240E000000000080240E0080240F +:10C920000E000000000080240E0000000000000047 +:10C9300000000000000000000C00000000000000EB +:10C940000000000000000000000000000C000000DB +:10C9500000000000000000000000000000000000D7 +:10C960000C000000000000000000000000000000BB +:10C970000000000000000000000000C000000000F7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000488040A94D8040B94C8040B84D80FE +:10CA300040B84D8040B84D8040B84C8040B84D80E3 +:10CA400040B94C8040B84D8060B10000000000004B +:10CA50000000802402000000000000000000000030 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF00000000000000090241200000000004880A8 +:10CB000040A84C8040B94D8040B84D8040B84C8022 +:10CB100040B84D8040B84D8040B94C8040B84D8001 +:10CB200040B94D8060B1000000000000000000002E +:10CB300000000000000000000000802402000080CF +:10CB400000284C8040B94D8040B94D8040B94C80A0 +:10CB500040B94D8040B84C8040B94C8040B84D80C1 +:10CB600040B0000000000000000000000000008055 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000006666AA55AA556666CC337F +:10CC20006666AA553C3C5A5A6666666666663C3C31 +:10CC3000CC33AA556666CC3366665A5AAAAA000057 +:10CC4000000000000000FFFFFFFF000000000000E8 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000FFFF2727FFFF5A +:10CC90002727000000000000000000000000000046 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE000000000000000000000005F0A1B1B0000A5 +:10CCF00000006666CC33CC336666AA55CC335A5AEC +:10CD0000CC3366663C3C5A5A3C3C5A5AAA55CC3302 +:10CD10003C3C66666666AA55CCCC0000000000006C +:10CD20000000000000000000000000000000FFFF05 +:10CD3000FFFFFFFFF00FCC336666AA55AA555A5A7B +:10CD4000AA556666AA555A5A6666CC33AA55CC339C +:10CD50006666AA556666000000000000000000003C +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000001000040010000B0 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000800000200000000040200010001032 +:10CEE0000402C02000080000000000000000000450 +:10CEF00000004020008000000000C020008280026E +:10CF0000000080000004000000000000000000009D +:10CF100000000000000000000000000000006000B1 +:10CF200000010000000100000000000000000000FF +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000060008000000020 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C00000008000000000010000002000000000BF +:10D0D0000000812400000001800800000000000022 +:10D0E000000000200000000000408034000000012B +:10D0F000006080000000000100200000000000002F +:10D10000000000000000000000000000000000001F +:10D1100000006000800000004000000000000000EF +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F0000000000000000008000300000400000818 +:10D200000003000004000000001000000400000003 +:10D21000000310000000000000000000C00000003B +:10D22000C880130080000000000000000000000023 +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000300000000C0AB +:10D2C000002200000000002300030307020000000A +:10D2D0000000000304100000020010E0E3400040E2 +:10D2E000000044C3C0070000030010C0032000007A +:10D2F000000003001000000000000000000000001B +:10D300000000000000000000000080C800000000D5 +:10D31000000000000000000000000000000000000D +:10D32000000000000080000000000000000300106A +:10D3300000030000000000000000000000000000EA +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E0000000000000010400000000000080400078 +:10D3F000000000000080400000000000000040002D +:10D40000000000000080000080000000000000001C +:10D410000100000000020000800000000000000089 +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A00000000000000000000000000000800800F4 +:10D4B000000000040000000000000040000108001F +:10D4C0000400000000000080400000000400000490 +:10D4D000022100200040409014400080080001100C +:10D4E0000200000000000200000000000000000038 +:10D4F00000000000000000000000000000008000AC +:10D50000000000000000000000000000000000001B +:10D510000000000000000000000400000000000205 +:10D5200000800000008000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D00000000000000000000000000000000E40FD +:10D5E0000200000000000C000034000000000020D9 +:10D5F0000030000000020CC00130000000000000FC +:10D600000000002000004000003C018002000000FB +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500004005006D0400000000000000000000060 +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000E40000000040000F0000000008001C0023 +:10D6B00000810909008001800300000000002800AB +:10D6C00000000F000000000000000C092000208076 +:10D6D00000A80020200000C00100000000000000A1 +:10D6E00004001000003000000000000000000000F6 +:10D6F000003400000000A0C00150000400000E0033 +:10D70000003400000002000000051000007012400C +:10D7100000000000000002000000400000000000C7 +:10D7200000000000000000000000000000000000F9 +:10D73000A002000000000000000000000000000047 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C00000000000000000000000008004003C0099 +:10D7D00000000000000034000000000000000C0801 +:10D7E0000000008003800C00200001400080000049 +:10D7F0000000000000000001000000040000101004 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D840000000000000005200000000000000000086 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000060001000003040070000004061 +:10D8A00000000000800816060000020000000000D2 +:10D8B00000000C8007000000A000000000102900FC +:10D8C00000010E0000482801000000400000000098 +:10D8D000000000000000110000E000000000000057 +:10D8E00000000000000000000000080700380008E9 +:10D8F000000003A001000C0040000C008010280074 +:10D9000010802E00000000000000000000000C004D +:10D9100000000000000000000000000000080000FF +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000200000000000400000000000000410010 +:10D9D000000002000800000000000200000001003A +:10D9E0000000200100000000000000000000000016 +:10D9F00000800000000000000000000000000000A7 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000210000C5 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA800000000000000000002000100000600008FE +:10DA900000000000000001008000400900040000B8 +:10DAA0000000000000004000080000000800200006 +:10DAB000005000000800008002000000200001006B +:10DAC00000200000000000002000020000400000D4 +:10DAD0000000000000000000000000000000000046 +:10DAE00001280040000010000000100400000200A7 +:10DAF00020080805100008000300010000000400D1 +:10DB000000004000000000000000000000000000D5 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB000000000000000000010012E200A00800874 +:10DBC000000000A001008000480032200800880802 +:10DBD00000000C60000000040000000000000004D1 +:10DBE0000000000A006820000000000000000000A3 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC2000000000000000000000000CA0010001083E +:10DC300000010000000000000000000000000000E3 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC70000000000000000000000000008000000024 +:10DC80000004000F003C00000000020080010E01B3 +:10DC9000004802800100800600002E8003800006FC +:10DCA0001000002000400D07C000002000002C07DD +:10DCB00000000D800100000F400000008002000005 +:10DCC00000040000000000000000000000401400FC +:10DCD000000000250A000000000000000080000B8A +:10DCE000A0000080050000031000000006401000A6 +:10DCF00000002200000060000000000000000000A2 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA00000000000000000400000000000000080B3 +:10DDB000000000001000000000000000A0020E4063 +:10DDC00000000108000000400000002810000000D2 +:10DDD0000000003A00000000000800000000000001 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000010001 +:10DE2000000014000040000000000000000000009E +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE70000000000000000004000000C002000000DC +:10DE80001000400800401350020C0000F000000099 +:10DE900000283C200000120000104C20000200402E +:10DEA0000100801600000210001001260002000090 +:10DEB0001000000000000000000000000000000052 +:10DEC000000801000000400000380080F100000060 +:10DED00000000000F002100000000008C0000880F0 +:10DEE0000038001AF00000000000000600000000EA +:10DEF000000000000000000000880000000000009A +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000040800000000000004000400041 +:10DFA00028002A00200440000008208404004000CB +:10DFB0000000280022010400200000180220500068 +:10DFC00088010008800030001010040804100800C8 +:10DFD00000800000000000000000000000000000C1 +:10DFE0000000000000000000000000000000200011 +:10DFF00000000000000000000048000000000000D9 +:10E000000000000000000000000000000000000010 +:10E0100000000000080800002000000000000000D0 +:10E0200000000000000000000000200000000000D0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E05000000000000000000000000000440040003C +:10E060004000008044800000400000800400204008 +:10E07000200024400424004021042400240404201F +:10E08000202C000000014000200220003000402031 +:10E09000204401000040000048000000200800006B +:10E0A00000280029102804080408041A20080C007D +:10E0B0008004482854880C820488000124128C00B3 +:10E0C0004408848820000C800080080C2C010C007F +:10E0D00001400108000808080802000008000000CC +:10E0E0000804000000000000000000000000000024 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000C00080000000009000C08004E +:10E1A0000009000000005800000A5000B000003CC8 +:10E1B000500010000C00500C00003000002000083F +:10E1C000003A3C00000000000000000000000000D9 +:10E1D00000000000000000000000000000000D0032 +:10E1E000000E0D097C0E000400000070A008000065 +:10E1F000000000000000000000000000000000001F +:10E2000000000000000000000C000809AE0E000035 +:10E2100000000000000E0000000000B070000000D0 +:10E2200000000000000800000000000000000000E6 +:10E230000D000000000000000000000000000000D1 +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000090000B5 +:10E26000000000B000000000000900000500900E52 +:10E2700000000000007C00000005A005000A000D61 +:10E2800020000D000E00000D000050A00C0000004A +:10E29000000C00A000085004100800080C0800340E +:10E2A000000808009C00080C10080C0090040C00EA +:10E2B0000030080000087DB8700A0C05000E7C0CC8 +:10E2C000080000700D000D0C0D0C0CBC0C1C0E1A7F +:10E2D000089C0D000C0000000000000090050000EC +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000070007000103000007D +:10E38000700000001000100030003C5030041000FD +:10E3900000001B18040010000000300034080C00BE +:10E3A00010000050001010003E0C00003000100063 +:10E3B00000000C0008508000003000000000000049 +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000001000001000000003B +:10E3E000001000000000000000000000000000001D +:10E3F000000000000000000000000000000001001C +:10E4000010400000000000000000000000000000BC +:10E4100000001000000000000001000000000000EB +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000180010001000003018107000CC +:10E45000100000100850103010001C10081400307C +:10E4600014041C0008040020101400000004100014 +:10E47000300830002101103020080C80010000011C +:10E48000100100803F00010F001E001C0130090E2A +:10E49000090E080C3000080E21083010303000380A +:10E4A0000C1E010C300C20003C5E2C2030000810AB +:10E4B000002000083C04080004300C0000000000AC +:10E4C000008900800001000000080000000000003A +:10E4D0000000000004000000000000000000000038 +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E56000000000000000800000000000000000002B +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000800000000B +:10E5900000000000801000000000000000000000EB +:10E5A0000000000400000000000000004000000027 +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F00000000000000020000000000000000000FB +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E62000000000300030000000000000800000000A +:10E63000800080008000000000000000000000005A +:10E64000000000300000000000000030000000006A +:10E65000000000000000000000000000400000007A +:10E66000000000204000000000004020000040208A +:10E670000000402000000000000000200000A0007A +:10E680000000000200100000000000020400000270 +:10E69000040000004400000000000400043080007A +:10E6A0000410000000020000000024020400000228 +:10E6B0000000200000000000000000000002000038 +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E750000000000000000000000030000000000089 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E7800030000000000000003080000000000000A9 +:10E790000000000000000001000000000000000078 +:10E7A0000100000000000000000000000000000068 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E00000000000010000040000400000000000E4 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E81000000030000000008000B000000000000098 +:10E820003000000030003000300000000000000028 +:10E830000000000000000040000000000000004058 +:10E840000000000000000000300000000000000098 +:10E850003000000000000000300000000000200038 +:10E8600000002000000020000000000000000080E8 +:10E8700000006000000001040080000000000004AF +:10E8800000000000000000003000000080000104D3 +:10E890000040102080000020000400208000802420 +:10E8A0000000000480008000000000000000000064 +:10E8B00000000000000000000000000000600000F8 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000200000000000000000026 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D000000000000000000400000084020081012B +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA000000000000000020000000000000200000C6 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000020000000B6 +:10EA400000000000000000000000001000100000A6 +:10EA50000000001000100010000000100010000066 +:10EA60002000000000100004000000000000000072 +:10EA70000000000008000000080008000800000076 +:10EA800000200004080000200810002000200020C2 +:10EA90000000082008000000000000000000000046 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000FFFFFFFF0000000000000000000099 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000353535350F8F42 +:10EC600033B333B3FF8055D533B30F8F0F8FFF808E +:10EC700033B333B30F8FFFFFFFFF0000000000002E +:10EC800000000000000033B30F8FFFFF7722FFFF6B +:10EC90002727000000000000000000000000000026 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000008C0200000000000015 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE50000C0090241E0090241E0090241E0090247C +:10EE60001E0090241E0090241E0000008C02000052 +:10EE70000000000000000000000090241E000000C0 +:10EE80000C0000000C00000000000000000000006A +:10EE900000000000000000800000000000000000F2 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF30000000000000000000000000000000488009 +:10EF400040A94C8040B84D8040B94C8040B84D80BD +:10EF500040B94C8040B84D8040B94C8040B94D809C +:10EF600040B00000000000000000000000000000B1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000488049 +:10F0000040A94C8040B84C8040B94C8040B84D80FD +:10F0100040B94C8040B94C8040B94C8040B94C80DC +:10F0200040B10000000000000000000000000000EF +:10F0300000000000000000000000488040A94C8053 +:10F0400040B84C8040B84D8040B94D8040B84C80AD +:10F0500040B84C8040B84D8040B94C8040B09024BE +:10F060001200000000008004000090241200902490 +:10F070001200802402008024020000000000000032 +:10F080000000000000000000000000800000000000 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F13000000099999999C3C39999A5A555AA33CC6B +:10F1400033CC55AAA5A533CC33CC9999999933CC16 +:10F1500055AA999933CCFFFFDD1100000000000093 +:10F160000000FFFFDD1100000000000000000000B3 +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000FFFFAF05000000000000AD +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F0000000F00FAA5533CCCC33CC33AA55CC3316 +:10F20000CC33AA55AA55CC33AA55CC33AA55CC3306 +:10F21000AA55CC33AA5500000000000000000000F1 +:10F220000000000000000000000000000000A5A594 +:10F23000A5A59999999933CC9999A5A59999A5A529 +:10F24000C3C333CC33CC33CCC3C39999A5A5999907 +:10F2500033CC55D5FF8000000000FFFFFFFF0F8F6C +:10F2600033B30F8F33B3FFFFFFFFFFFFFFFF00003C +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F42000000000000000000000000000000080005C +:10F43000002600000000C020000000000000C020E6 +:10F4400000540000000140201001200000010000D5 +:10F45000900000000403800024052600040300003F +:10F460009C010000000000000000000000000000FF +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F0000000000000000000000008000000000003 +:10F6000000000000000000000000000000000000FA +:10F61000000000000000000000000000000080006A +:10F620000000000100008020000000010060802038 +:10F630000000000100044020800000000040440061 +:10F64000800000000000C10080000001402049004F +:10F65000800000001000000000000000000000001A +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F720000000000000000000000000400000000099 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000300F5 +:10F81000040000000000C3000400000000C003C09A +:10F820000440C0000000470000C0E000804003002A +:10F8300000C80000001300000000C00003C08000EA +:10F8400000C8C001C8C000000000000000000000A7 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000004000000F3 +:10F91000000000000400000000000000040000409F +:10F9200000000000040000000000000000000000D3 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA00000000020040000000004012004000010021 +:10FA10000004021040201000004002008404000492 +:10FA200080200200000000000000000000008000B4 +:10FA3000092080000000800100200000000000007C +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF000000000000000000000000000002C0000DA +:10FB000000022C40002C0000000009000000000052 +:10FB100000000820000000000000000000000000BD +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000001000000000A8A +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB00000000020000000000000024000000000E3 +:10FBC00000000240002C000000001990022C0000F0 +:10FBD000000008800010000000000000000000008D +:10FBE0000000000000000000000000000000000015 +:10FBF000000000000000810700004C08A4804E8037 +:10FC00000338409F1CB040C801004E0FF43040C87C +:10FC100009E0410F02302CC0A501000000100000D7 +:10FC2000000011D0873CB10930C8000000B800C006 +:10FC30000270000000000000000000000000000052 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE00000000000000000000000340000000000E0 +:10FCF00006003401C00008000000340000000E00BF +:10FD00000000340000000C800300340000000200FA +:10FD100000000000000000A0000000000000000043 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000C0097 +:10FD60000000700000000000000000000000000023 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA000000000000000000000002C00D000022035 +:10FDB0000A0034000000120002003C00000008802D +:10FDC000000034000000188000000C00000000005B +:10FDD0000000000000000000000000000000000023 +:10FDE000000000000000000000000C010000000006 +:10FDF00020381010C5160087E1B89086051C100742 +:10FE0000E040108009380CA701400080A1000000EC +:10FE10000000000000000E80E3001006C002400455 +:10FE20008070000000800000000000000000000062 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED00000000000000000000000000008200000FA +:10FEE0000000810000000008100085800000000074 +:10FEF0003000C1000000010010009400021000005A +:10FF000004003000000000000000000000000000BD +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF900000000000000000000000008000000000E1 +:10FFA0000000420000000000000091000500000079 +:10FFB0000000800000000000000090000710020018 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000600000060000000001800204000222 +:10FFF0000000A0080000000200000100000C40000A +:020000040001F9 +:10000000800000000010000000000000000400005C +:1000100000000000100210000000000000000000BE +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C00000000000000000000000000000000080B0 +:1000D00009000000E0010000000000001000000026 +:1000E00000000000100008000E1014001000002096 +:1000F00002000008E0000E000000400000000020A8 +:1001000002000000080000000000000000000000E5 +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000800000000A7 +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:100190000000000000012F00080000000001000026 +:1001A0000000000018000000080000080000000027 +:1001B000000000000001000000000000000000003E +:1001C00000000000000000000000000000000040EF +:1001D0000680AD000002830AE6384D0040410082EF +:1001E000277880000000024D90512EC0116090C30E +:1001F00007500006C000000000800000000018400A +:10020000E7132000000000008050200000000000E4 +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C0000000008000300000000208000050160FFF +:1002D000E000080000000000E000028001020000D1 +:1002E000E000088001000000000000000000000A9B +:1002F0000000000000000000A0000000000000005E +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000E8000000000DF +:100390000000080000000000400000800100000094 +:1003A00050000CC00100000500000000000000002B +:1003B000000000000000000000000000000000003D +:1003C000000000C001080005F0000E0228005400E3 +:1003D00000CA404AA42820C00B88008370B80CC013 +:1003E0005B7C82C7013820C01B01000000000000B8 +:1003F0000000284000000021108A0000000A004090 +:1004000001000000000000000000000000000000EB +:1004100000000000000000000000080000000000D4 +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C00000010401000800080000000400040024EA +:1004D0000400848000040004000000000404000004 +:1004E00004080000000400080008000000000000EC +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000020AB +:10053000000000000000800000000000000000003B +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:1005700000000000000000208000000000000000DB +:1005800000800000100000000000000000000000DB +:1005900000200000408000004000400021002008B2 +:1005A0000000000000002020000020002000282083 +:1005B000210000000000202020200802000024204C +:1005C00020200802800124008020080210002C0056 +:1005D00080200012280014402080011200004001F9 +:1005E00080002040301094800020000000100000A7 +:1005F00000000400000400000000000000000000F3 +:1006000000000000000000000000000000000800E2 +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000D00003D +:1006B000000000000010000000080000000000B072 +:1006C00005000000080070000000000000000000AD +:1006D000000000B0005000000D0A900C700C0D00DE +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000100000E00000000BA +:1007300000000900000000000000000000000000B0 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000100000000000000069 +:100780000000000C0000000050000100000000000C +:100790000000000C50000C0A000000AA00005000ED +:1007A0000D00080001000000000100000000000032 +:1007B0000D0000090000040000000000A005040076 +:1007C00039000000A005503074001C00007C00308F +:1007D00000003000000E70B03C303DB000000D0055 +:1007E0005C1000A00C000000500D50508D00A001C6 +:1007F0000070000C0000000001000000000000007C +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A000000000000000000000880C0C00000000A8 +:1008B0000000000C000800080900182000080008CB +:1008C00050000000080800000C00000000080000B4 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000200000000000000000B7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:10096000300000000E000000003000000000000019 +:10097000000000000E0000010030000010300000F8 +:1009800000001000280020000000010000002020CE +:100990000000100030002020100600000000202081 +:1009A0001010000400002420101000042004340063 +:1009B0002010000400003400201000043040051016 +:1009C00030310C040E00B00C100010103100183043 +:1009D00000100600010000000100000000080000F7 +:1009E0000000000000000001000000000000000006 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A2000000C0000000000000000000000000000BA +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000030000000000000003016 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000004000000000000000000000000000022 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B30000000000000000000000000000000800035 +:100B400000000000800000000000000080000000A5 +:100B5000000000000000000004000000040000008D +:100B60000400000004000000040000000400000075 +:100B700044000000440000000400000044000000A5 +:100B800000000000040000000000000000000C0055 +:100B9000000000000000000000008030003004026F +:100BA00084000C0200008C00000004000000000023 +:100BB000000004020000000000A00020000000006F +:100BC00000000420000000000000000000000400FD +:100BD00000000C0100000000000000000000000008 +:100BE0000080000000000000000000000000000085 +:100BF00000000000000000000000000000000000F5 +:100C00000000000000000000000000000000000CD8 +:100C100000000000000100000000000000000000D3 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000400000000044 +:100C70000000004000000000000000000000000034 +:100C80000000000000000000000000000400000060 +:100C90000400000004010000040000000401000042 +:100CA0000400000004010000040100000001000035 +:100CB000000000040000000001000000000000002F +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000004000000000000000000000000DF +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000100000001000000A1 +:100D5000010000000100000001000000010000008F +:100D6000010000001100000031000000010000003F +:100D7000320000000000000002000000000000003F +:100D80000000020000000000000000000000204001 +:100D900000440100000002040000320000000000D6 +:100DA000000000000000000400000000006000409F +:100DB00000000000000000440000000000000000EF +:100DC000000001000000020C000000000000000014 +:100DD0000000000000100000000000000000000003 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000004000000000000000000000000DE +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E7000000000000000000000000000040000006E +:100E80000400000004000000040000000400000052 +:100E90000400000004000000040000000400000042 +:100EA0000000000000000004000800000000000036 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000044300000000000000AB +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000001000000000A1 +:100F4000000000002000000000040000200000005D +:100F50000004000020000000000400000000000069 +:100F6000000400000000000000000000000000007D +:100F70000000000000000000000000000000000071 +:100F8000000008000004000008000000000000004D +:100F90000000080000000000000008000000000041 +:100FA0000000000000000000000008040000000035 +:100FB000000000040000000000000000000000002D +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:101140000000000000000000000000000000FFFFA1 +:10115000FFFF000000000000000000000000000091 +:10116000000000000000000000000000000000007F +:101170000000CC3366666666666666663C3C5A5A14 +:1011800066663C3CCC3366666666CC33CC335A5AD2 +:1011900066663C3C66665A5A666600000000FFFFC1 +:1011A000FFFFFFFF772200000000000000000000AA +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000008C02000000000000000000000F +:10135000000000000000000000000000000000008D +:1013600000000000000048804CA84D804CB94C8023 +:101370004CB84D804CB94C804CB84D804CB94C8029 +:101380004CB84D804CB94C804CB84D804CB00000EE +:10139000000080240E0000000C000000000000008F +:1013A000000000000000000000000000000000003D +:1013B000000000C00000000000000000000000006D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:1014500000000000000000000000008000284D8017 +:1014600040B94D8040B84D8040B84C8040B84C8069 +:1014700040B94C8040B84C8040B84C8040B000002F +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:10151000000000A01228DDA452B8DDA452B9DDA459 +:1015200052B8DDA452B9DDA452B8DDA452B9DDA48D +:1015300052B8DDA452B9DDA452B8DDA452B1000006 +:10154000000000000000000000000000000000009B +:101550000000008000284C8040B94D8040B94C808C +:1015600040B94D8040B94C8040B84D8040B84C8067 +:1015700040B84D8040B94C8040B94D8040B100002A +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A00000000000000000800000000000000000BB +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:101640000000000000000000000000000000FFFF9C +:101650003C3C666666665A5A3C3CAA5566663C3C0B +:101660003C3C66666666CC33666666666666CC3308 +:10167000666600000000000000000000000000009E +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:10170000000000000000FFFF99999999C3C39999BF +:1017100099999999C3C3999999999999C3C3999991 +:1017200099999999C3C3999999999999C3C3999981 +:101730009999000000000000000000000000000077 +:10174000000000000000BB1155AA999955AA55AA9E +:101750009999999955AA55AA9999999933CC999992 +:1017600033CC999933CC55AA9999999955AA9999B5 +:1017700055AAFFFF330FFFFF330FFFFF0F33FFFFAC +:10178000550F0000000000000000000000000000F5 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F0000000000000000000000100009001000056 +:101900000403000010000000040300009C0100001C +:101910000403000010000000040300009C0100000C +:1019200004030000100000000000000000000000A0 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000001463 +:101970000000402000800000000000000000000087 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE0000000000000000000000040008000000036 +:101AF0000000410080000000100041008000000054 +:101B00001000410080000000100041008000000033 +:101B100010004100800000001000000000000000E4 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000002000000000004000000000000015 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C3000000000080000000000000000000000009C +:101C400000000000000000000000000000E00000B4 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000080800000C000C0C800800000C06C +:101CF00000C0C800800000C000C0C800800000C054 +:101D000000C0C8008000004000C0C8008003000080 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000A0000000020011 +:101D300000C040000000420020000000C000000081 +:101D400022000000004002000040000404000000E7 +:101D5000020000020000000000004400E00000005B +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000002B0 +:101E300000000000000000000000000000000000A2 +:101E40000040000000000000000000000000000052 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED000000000000000000280000002002000005E +:101EE00080000002002000008000000200200000AE +:101EF0008000000200200000800000400020000060 +:101F00008001000000000000000000000000000050 +:101F100000000000000000000000200000000000A1 +:101F200000200200084001000020030008200000FB +:101F300001100800020000000040020808400000F4 +:101F40000000080002000080000000000000000007 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000200000000050400020001C00D4 +:102020000038000000010080010000000000008076 +:10203000010200000000000000000000000000009D +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D00000000008000000000000000800000000F0 +:1020E00000000008000000000000000800000000E0 +:1020F00000000008000000000000000000000000D8 +:10210000000000000000004001000000000000404E +:10211000050010000040804F81000E800540800FB8 +:10212000007A00000240804F013801000240400464 +:10213000042C11000040000F00000004E0002020EB +:1021400000090C0E4000000000000000000000002C +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000C00C2 +:10221000C00200000010280020000000080000009C +:102220000000000008382800000000000000000046 +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C0000000000000005C000000000000005C0056 +:1022D0000000000000005C000000000000005C0046 +:1022E0000000000000005C00000000000000000092 +:1022F00000000000000000000000000003000000DB +:1023000000000000000010000064000400000080D5 +:102310000164000403382800006400040000140075 +:10232000006400070300150000640CA20100000017 +:10233000000002008200020000080000000000000F +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000020000000BD +:1024000000000000840001000850000020000900C6 +:10241000002000001000200002000000100000005A +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000204000101000000020403C +:1024C000001010000000204000101000000020400C +:1024D000001010000000204000101000000000005C +:1024E00000000000000000000000000000000000EC +:1024F0000500000000000200010078011420020025 +:102500000104400001208308040440800030820060 +:10251000011440A004340209040440810420031083 +:10252000080020828000010000300002200000002E +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000001C20004080002000004002008000FD +:10260000000002000600000400000E000600A00109 +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000300000000000080048000071C +:1026B0001000008004800007100001000380000764 +:1026C000100000800480000710000080040000005B +:1026D00010000000000000000000000000000000EA +:1026E0000000000008800000E80001000200000473 +:1026F000000401000228100420000020002800042B +:102700001000280002280004200101000028000415 +:1027100020010880030C10000000000000000100F0 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000010E9 +:1027E0000000000000000D000038000F0000008015 +:1027F0000100000500000C800338012F2000168026 +:102800000100000B2000000000000000000000009C +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:10289000000000000000001000000000D0001680C2 +:1028A00001000020D000168001000020D000089018 +:1028B00001000020D000168001000020D00016800A +:1028C00001008000D00000000000000000000000B7 +:1028D000000000000000008001080000000202105B +:1028E000000000000000021004000109300200474F +:1028F000820000000060001000000000006008433B +:102900002A00000000000008000000000000000095 +:1029100000101000D078000000000000000000004F +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000800000000000000040400000F7 +:1029E0000000004044000400805000084000040043 +:1029F00000400800304004000840000000080400C7 +:102A00000800080000081000080000000000000096 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A4000000000000000000000000000080000007E +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A900000000000000000000000000000000080B6 +:102AA0000000000000000000000000000000000026 +:102AB0000080000000000001004000000000400015 +:102AC0000000000000000000000000004040000086 +:102AD00000000000000000000000000000000100F5 +:102AE00010810000800000000000000100100000C4 +:102AF000000000502010100018040008001018807A +:102B0000000008185000080010010018001800000C +:102B1000084000000000080008020000000000005B +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000100000004 +:102BD00009020050000D0C0000B000000030800819 +:102BE0000C007D000900080C300A00000C70060A79 +:102BF00070180D000C70B80A000C3D0A0C000000A3 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000A8A +:102C40000C000100000100000000000080000000F6 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C900000000000000000000000000E0000000026 +:102CA000000000000000000000000000000E000115 +:102CB0000000000000000000000000000000000014 +:102CC000000000000D000000000E000000000002E7 +:102CD0000100065A31060802000100060600000243 +:102CE000922106160001301A0620201110900000D3 +:102CF00001212001389000300101500120BD002049 +:102D000009207E0C047A000100810000040000000C +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB00000000000000000000000000030000000E3 +:102DC0000000000000300000000001200C000400A2 +:102DD00000000000010004000000000130000400B9 +:102DE00000000080008004000000000000000000DF +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000003000000000000002 +:102EA00000200000000010000000000000000000F2 +:102EB00000000000303000000000000000000000B2 +:102EC0000000000000000C000008010000000000ED +:102ED0000000000000000080000080003000008042 +:102EE00000080000000000308B000000100000000F +:102EF000000C000600000001003000060000000089 +:102F0000000C0000000000000000000000000000B5 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB00000000000000000200000000000000000F1 +:102FC00000000000000000000400000004000000F9 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000080000000000000000000 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000400000000008400000000000000000088 +:1030C00000000000000000000400000000000000FC +:1030D00000000020000000000000000000000000D0 +:1030E00000000000000000000000000004000000DC +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000100000000000080000000009E +:1031B000000000000000000000000000010000000E +:1031C00001000000000000000000000000000000FE +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000010000000007E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000010000002D +:1032A00000000000010000040000200000000000F9 +:1032B000000000000000000000000000010000000D +:1032C0000000000000002080000000000100000459 +:1032D00000000000010000040000000000000000E9 +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:10341000000000404200000000000000000000002A +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:103490000004000000000000000400040000080018 +:1034A000000400000004000000000000080000000C +:1034B00000040000000000000000200000000000E8 +:1034C00000000004000000040000000400000000F0 +:1034D00000000000080000000000000000000000E4 +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000007A073 +:1036B00033332B620F0F00000000E11F0F0F495939 +:1036C000333300000000000000000B18555561FF67 +:1036D0000F0F0000000000000000000000000000CC +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A000000048201E2048201E2000000000482064 +:1038B0001E2048201E2000000000000000004820BC +:1038C0001E2048201E200000000000000000008094 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000048201220482024 +:103AA00012204820122000000000482012200000B0 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C8000000000000000000000000000000051A93A +:103C900033333BC90F0FCB36333300000000A1563E +:103CA000FF00000000000000000000000000000015 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000080010000800041 +:103E8000000022100403402010800A150402C02004 +:103E90000400020004020000040080200000C02092 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:1040600000000000000000000000000000008010C0 +:104070000000000100204721800000001040812244 +:1040800000000001106009000000000010008034F2 +:1040900000000001006000000000000000000000BF +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:1042600000000000000000000000C4004500804085 +:1042700000C04400C40000C000400000C4000000B2 +:1042800000C04400000000000040000000000000EA +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000001000040000000001B +:104460004000802000200000020001200020000009 +:1044700000000000002000000100010000200000FA +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:104640000000000000000000000000002002000048 +:1046500000180C8301BC00005000020410B00020C0 +:1046600008980C0000B8002000000003680000005B +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:1048400000322C00001400000038004120008100DC +:10485000107800C300600C0000780C0000004003DA +:1048600000000040044000000000000000000000C4 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A300000000000000000000080048100008024CD +:104A400008008000002400040080860000001000A0 +:104A5000000000030020000000C000000000000073 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000020000040080B11 +:104C3000007C00412402081B00121C4104400000BB +:104C4000003C800000000000E0011CC00460000087 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E1000000000000000000000000000D0000000C2 +:104E20000000174D03383C000000010000103D0059 +:104E300000000000000000000000000368103D00BA +:104E40000000000000000000000000000000000062 +:104E5000000000000800000000000000000000004A +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000004000000000000000000000885 +:104F20000008000000000000000000000000000079 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC0000000000000008000000000000000000061 +:104FD00000000000000020000000000000000000B1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000C0000000000000094 +:10501000800000000000800000000000000100008F +:10502000201000800000000000000000000440008C +:105030000000000010000000000000000000000060 +:105040000000000000000000080000000000000058 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000080000000000B8 +:1050F0000000000800000000000000800000000028 +:10510000000000000000000000000000000000009F +:1051100000000000000C0000000000000000000083 +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000001000000000000000000FE +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000C00000000D3 +:1051D0000000000000000000000000000D000000C2 +:1051E00000000000000000000000000000000008B7 +:1051F00000000000000000000009000004000000A2 +:105200000009000008010004000060000004000420 +:1052100070006000002400B40000000000000000E6 +:105220000C00500000000000307000000000000082 +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000100CD +:1052E00000000001000000010000000000000000BC +:1052F00000000000000000000000000008000000A6 +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000003001BC +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000001000000000000010000000000BB +:1053F0000000000000000000370600010E00300031 +:105400000601005100080000360100310A000000CA +:10541000660000000F0810000000000000000000FF +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F000000000400000000000000000000000006C +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:1055400000000000000000800000000000000000DB +:10555000000000000000000000000000000000004B +:1055600000000000008000000000000000000000BB +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:1055900000000000000000000000001000000000FB +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D000000080000000000000000000000000004B +:1055E000000000000000000000000000000000407B +:1055F00000000000000000000000000000000000AB +:105600000000000000000000000020000002000078 +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E000000000000000003000000000000000008A +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000100000000059 +:105740000000000000000000000000000000000059 +:105750000000000000000000001000000000000039 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:1057800000000000000000000000000000000040D9 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000020000000000000000000B9 +:1057D00000000000000000000000000000000000C9 +:1057E0000000002000000000000000000000000099 +:1057F0000000000000000000000000000000400069 +:105800000000400000000000000000000000000058 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000004037 +:105930000000020000000000000000000000000065 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000080000000000BF +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF0000000000000000000000000000000FFFFA8 +:105B00000F550000000000000000000000001950C8 +:105B10003333EDCE0F0F0000000000000000000046 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC0000000000000003F3FFFFF00000000000059 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF000000000000000000008000000000000009D +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF000000000000C000000000000000000000098 +:105D0000000048201E2048201E2000000000000047 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB0000000000000000000000090040C00000043 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE0000000000000000000000000800000000033 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA000000000000000488040A94C8040B94C80B0 +:105EB00040B94C8040B94C8040B94C8040B94C80CE +:105EC00040B94C8040B94C8040B94D8040B1000091 +:105ED000000000000000000000000000000048205A +:105EE00012200000000048201220482012208024A8 +:105EF0000200000000004820122000000000000006 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA0000000000000000000000000000000482089 +:105FB00012200000000000000000000000000000AF +:105FC0000000000000004820122000000000000037 +:105FD0000000000000000000000000000000004081 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:1060900000000000000000000000CC33AA55CC3303 +:1060A000AA55CC336666CC33AA553C3CAA556666E5 +:1060B000AA553C3C5A5ACC336666CC336666666653 +:1060C0005A5A00000000000000000000000000001C +:1060D00000009D90333300000000815733334FF5AB +:1060E000FF00FFFFFFFF000000000D06333300003C +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000FFFF3F30000092 +:1061A00000000B99333300000000000000000000E5 +:1061B000000000000000000000000B063333000068 +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000001000402000004000000C3 +:1062D0000403000024010800040200000400000080 +:1062E0000402C020002000000000000000000000A8 +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000003300402402000800000E4 +:1063A00000000000000000000000000000000200EB +:1063B00004020000000000000000000000000000D7 +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000110000000000CB +:1064C00020004700800000004000010000000000A4 +:1064D000800089340000000120100000000000004E +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:1065800000000000000000000000092400000000DE +:1065900010400000000000000000000000000000AB +:1065A00000000900000000001000000000000000D2 +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:106670000000000000000000001000000300000007 +:106680000010000000000000000003C01400000023 +:10669000000000C00B2000000000030010000000FC +:1066A00000000000000000000000000000000000EA +:1066B0000300C400000000230180000000C00000AF +:1066C000002300C0000000000322000002000000C0 +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000C40055 +:106780000000C40000C00000000000000000000085 +:106790000000000000000000C400000000C0000075 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000040024 +:106870008200000000004000040000000000024010 +:1068800000000000000104400200000000000200BF +:106890008000000000000000000000000000000078 +:1068A00000000000040000000000000040020000A2 +:1068B0000020000000000002000000800400010031 +:1068C00004000000000000000000000000000000C4 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000400000000000013 +:106980000000000000000000000000000000000007 +:1069900000200000000000000000000000000000D7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A500000000000000000000000000000001240E4 +:106A60000008010000000C80010C00000000000084 +:106A7000000C800000000080000C800800000C006A +:106A800000000000D0000000000000000000000036 +:106A9000000000000000080000020020000002606A +:106AA00000842C000000000000802C0000000C037B +:106AB00060B800A00A800000000000000000000094 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000010034 +:106B6000000000060000080000B014200000000033 +:106B7000000000000000000000000000000008000D +:106B80000080142000000000000000000000000051 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000224006401000000000E000000C0090 +:106C60000000088005000C060000000008000C0071 +:106C70000000010000000C00000000000000000007 +:106C800000000000000000000000000000300006CE +:106C9000000041C4000000012002000000002000AC +:106CA000000081001078004100400000000000005A +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D500000000C000000000000000000000001C660 +:106D6000040000000000000000000000000000001F +:106D70000000000000000101000000000000000011 +:106D800000000000000000000000000004000000FF +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000008000020000000000A4001C +:106E5000020010000000820002001000000080000C +:106E600002001002000000000000140000000000FA +:106E700000000000000000000000000000000C0006 +:106E800000000000000000000000104C00000000A6 +:106E90000000000000008000000001000100000070 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F400000000000000001000000000200004900F5 +:106F50000010000000000000000000000000000021 +:106F600000000000000041000000000400000000DC +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000848 +:10704000080002000000000808000000000000081E +:10705000A8020000060000080800324000000008F6 +:10706000C802000000000000000000000000000056 +:1070700000002600000002070000080300000103D2 +:1070800010000000000C200000000810C08F0DC789 +:10709000017000000000000000000000000000007F +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000200000000004D +:1071400000000C10008000030000000000000000A0 +:107150000000000000000000000012000000000617 +:10716000000000000000000000000000000000001F +:1071700000000020000000000000000000000000EF +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:1072200000000000000000000000000000000080DE +:1072300000000000C000008000000000C0000080CE +:1072400000000000C000008000000100C00002C07B +:1072500001000D0020000000000000000000000000 +:107260000000000000000800007008200000B64088 +:1072700003000C800100000000003400000020002A +:1072800000280C2008800000000000000000000022 +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:1073300000000000000008040000BC000000000085 +:107340000000000000000000000000000000080035 +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000800000000020804C +:10742000008001000000008000800140008000809A +:107430000080010200401080008001000020000058 +:10744000004004004000000212240000000002007E +:1074500000010000000001000000102000000008F2 +:10746000000088080000000000288020000088003C +:1074700000004800000000000000000808080000AC +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000010000DB +:1074B00000000000000000000000000000001000BC +:1074C00000000000000000000000000000000000BC +:1074D000100000000000000000000000000000009C +:1074E000100000000000000000000000000000008C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000008000000000800000006B +:107520000000000000000000000800002000000033 +:107530000009000080000000005000000000000072 +:10754000100000000000010000000000000000002A +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:107610000000000000000000000900000000000061 +:107620000A0000000600000000003008080000000A +:10763000080A0000080000000000000A3090000066 +:107640000E0000000090000000000E0000003090CE +:107650000000000000903490000000000094000042 +:107660007000B0000000000E0000000000000000EC +:1076700000000000000000000D00000000000000FD +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B0000000300000000000010000000C0000008D +:1076C0000101000110000000010100010C00000098 +:1076D0000101000110000000010100010C00000088 +:1076E0000101000150000000000000000000000047 +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000004000D58 +:1077200000000009000400500000000000100000EC +:1077300000000D00200500000000000000700000A7 +:10774000000000000D00000000000000000000002C +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000070000100700000007000000038 +:10780000701000007000103070104C00704000309C +:1078100070124C207010003000100C0C0000003171 +:1078200041104C004130004041100400000000882D +:1078300008080A00008008000A080A0000000C007E +:107840000A500010000070000050B000005000000E +:1078500000303000000030000000200A0000060068 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000800000000000000000000E0 +:1078A00000000000000000000000000000000000D8 +:1078B00001000000000000000000000000000000C7 +:1078C00001000000000000000000000000000000B7 +:1078D00001000000000000000000000000000000A7 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000003058 +:107900000000000000000000000000000000000077 +:107910000000000030000000000C0000100000001B +:107920000A100000000050000000000000000800E5 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000020000400000042 +:107A20001000000000000000000000400000000006 +:107A30000040000000700000000000003000000066 +:107A400000003400200000002C0000402000000056 +:107A500030000040000000000080000000800000B6 +:107A60000000000000002080000000000000000076 +:107A700000000000000C00000000000000000000FA +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000008000800096 +:107AF0000000000000300000000000000000000056 +:107B00000000000000000000000000020001000270 +:107B10000000000000000002000000000000000063 +:107B20000000000000000002000000000000000053 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF000000000000000000400000000010000047C +:107C00000000000000000004000000000000600010 +:107C10000100000000000000000000000000003033 +:107C2000000000000020000000B000000000000084 +:107C300040000000000041000000000000000020A3 +:107C400000000000400000200000000000300000A4 +:107C500000300000000000000000401C0000000098 +:107C60000000000000000000000100000000000013 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE00000002000000000000080000000000000F4 +:107CF0000000000000000004000000000000000080 +:107D0000000C000000000000000000000000000067 +:107D10000000000000000000300000000000000033 +:107D2000000000000000000008000000000000004B +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D500000000000000000000000000043000000E0 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE000000000000000000000040004000000008B +:107DF000000000040000000020000004000000005B +:107E00000000200000000000100000000000000042 +:107E10000000000000001000000000000000100042 +:107E20000000000000000000000000001000100032 +:107E30001800000013000000000000000000000017 +:107E4000000000000000000000000080000082042C +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE000000000000000000000000004000000008E +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000002000000051 +:107F1000000000000000000000000000040000005D +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000695B33330000000000000000FBA586 +:10803000FF00000000000000000000000000000041 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E000000000000000892255550000000000003B +:1080F000000000000000000000000000000067BB5E +:108100000F0F000000000000000000000000000051 +:108110000000000008000000000000000000000057 +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:1082100000000000000048201E20000000000000B8 +:10822000000048201E2000000000000000000000A8 +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D0000000000000000000000048201E200000F8 +:1082E000000000000000000000000000000000008E +:1082F000000048201E2000000000000000000000D8 +:1083000000000000000000800000000000000000ED +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000008000284D8038 +:1083D00040B94C8040B94D8040B94D8040B94D8086 +:1083E00040B94D8040B84D8040B94D8040B84D8077 +:1083F00040B94C8040B000000000482012204820C6 +:108400001220482012204820122048201220482004 +:108410001220000000004820122000000000000090 +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D0000000000000004820122000000000000002 +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000040000000003C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B0000000000000000000000000000000353551 +:1085C000999999999999999955AA55AA999955AAB4 +:1085D00055AA55AA9999A5A59999999955AA99998C +:1085E00033CC55AA99999999C3C3FFFFFFFF11890D +:1085F0005555C130333357AC555523C90F0FAB56C2 +:10860000FF006964FF000000000029390F0F00001F +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C000000000000000000000002FF3FF00000089 +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E000000000000403000004010800040300006E +:1087F00024010400040340204481C00200018000E1 +:108800000020000000000000000000000000000048 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000080000000400000010000F7 +:1088C0001000000000000000000080000000800098 +:1088D0000002000000000000000000000000000096 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000004700800000002800610047 +:1089E0008000000040004924800000008008C4008E +:1089F00080000001080000000000000000000000EE +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000080100000000100204400D1 +:108AB00080000000000000000000000000008010A6 +:108AC0000000000100200000000000000000000085 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC000000000000000000000000000C48080C021 +:108BD0000000000080C0C48000000000C4404400C9 +:108BE0000080000000000000008000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000800000800000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000020000000000000000B1 +:108DC000000280200000000080200002000000005F +:108DD000002000000002000001000040000200002E +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E9000010000400000000080000002000000000F +:108EA0000000000000000000010000400000000081 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F80000000000000000020000000800100000040 +:108F900000000240010000000000002000008000EE +:108FA00000000040014800000000000000480006EA +:108FB00000000240001000200002028000080000B3 +:108FC0000001024400080020080200C0F3042C0045 +:108FD0003000000000000000000000000000000061 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000F000000000800080013C0000B3 +:10909000000000000000000000000000600001006F +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000600000200E7 +:109180000800000000002C4000000000000000006B +:10919000020000010000024000000C00000000007E +:1091A000000040000000014000900001200010007D +:1091B0000088A000C00022B00B081441200000006D +:1091C0000008200050140000000000000000000013 +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:10927000000000000000000080012C000030000011 +:1092800006000000D0000000000000000000000008 +:10929000000010000030000000000000000000008E +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000200002000401D6 +:109370001400020000002001140040000800400119 +:10938000140000000200000040000300080002007A +:109390000000010000080000000000000040000084 +:1093A000000008C000400000800048420018020091 +:1093B00001000000002C0000000000000000000080 +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:10946000000000000000000000000000800000007C +:109470000004008002000000000000000000000066 +:1094800000000000C000000000C00000000000005C +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:109550000000000000000000000000000000168075 +:10956000070000032000018007009406A00000000F +:1095700003000001200022000000080C4000100041 +:10958000030000064001010000008C06000000807E +:1095900005400007E0000000000080061000000009 +:1095A000008080201000004010101C0010040000FB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:109660000038200000400000003C00000000000026 +:10967000000000000000000060002000003000003A +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000064001000C28200002000000000A62 +:10976000A0000000000000082000004001000126C9 +:10977000C00208000000800000020200000040005B +:10978000000016400328002900020880000000099C +:109790000000088200003C00000000C071083D008D +:1097A0000048000000000000000000000000000071 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000070020200000000C001000000D3 +:109860000001000000000000000000006001000096 +:1098700000000000000000000000000000000000E8 +:109880000000000000008000000000000000000058 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940002000000020400020200000000000202017 +:109950000000000020100000200000000000002097 +:1099600000000000200000000000040001000000D2 +:109970000000800080000840080000000000002077 +:109980008000200000000000802000000000000097 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000800008000000000886 +:109A500008000000000800000000200000000000D6 +:109A600000000000000400000008000800000000E2 +:109A700000000000000000000000000000000000E6 +:109A800000000900000000000000000000000000CD +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B4000000000000000000E09100000000A0000E4 +:109B5000000000000200000000700000060200008B +:109B6000000000000E00000600000C000C040000C5 +:109B700000000400040000000D00000000000001CF +:109B800000000000040400000000000000000000CD +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000090C000C0003 +:109C4000000D000CB800000000180800B000000073 +:109C5000000E000D000009000000001A001C000C9E +:109C600000000000000000000000000000001000E4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D200000000000000000002000000020300021A2 +:109D30002000004040002021000000002000000121 +:109D400020000000000100200000000020000000B2 +:109D50000000040008000050000030003000001037 +:109D600006010000000601301100306000060060AE +:109D700010106060000000000101000000060000FB +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E300031000000005000000000000000D00100D0 +:109E4000000010000000000000000000000800807A +:109E50000080000000000000000000000000000082 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F200000000020000000000000002000000000F1 +:109F300000000020000000000000000104000000FC +:109F400004000021000000000001000104000000E6 +:109F50000031004000000C420000004C00000C02E8 +:109F6000000000400004000000400000000000006D +:109F700000000000000000000000200000000000C1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000020000000000000 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000008000000004000000803B +:10A120000000000000800080000000000080000CA3 +:10A13000010000040100000C01000004000C000CF0 +:10A1400001000000008C000000000200000000027E +:10A1500000000200000000000000000000000000FD +:10A1600000000000000000000000000000004000AF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A2200000000000000000000000000000004000EE +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A27000000000000000004042000000000000005C +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A300000000000000000000000000002004000425 +:10A3100000000000200400000000000020040000F5 +:10A320000000000000000004000000100000000415 +:10A33000000000000000000000000000000000001D +:10A3400010000000000000000000000000080000F5 +:10A3500000000000000000000000000000000000FD +:10A36000000082010000000000000000000000006A +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE60000000000000000000000000000000008052 +:10BE700000000000000000000000000000000000C2 +:10BE8000000000000000000000010000004004006D +:10BE9000800080088000000000001000000000000A +:10BEA0000000000000000000080000040000000086 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE000000000000004000000000000000000004E +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF9000000000000000040000000000000000009D +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000800E8 +:10C05000000000000000000D0000000000000000D3 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000A00000000000000000000B6 +:10C080000000000000000C0C000E0000090039093F +:10C090000901000A000000000D000D00080000006A +:10C0A0005000000000000000000000000000000040 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000010000000000AE +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000100000000000000000000000000ED +:10C25000000000800000000000000000000000005E +:10C2600000000000000000000000000000000000CE +:10C27000000800000010080010001100100000006D +:10C2800000000000000000000000000000000000AE +:10C290000000000800000000000000000000000096 +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C0000000000000000000000000000008000066 +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000C00000000000000C0 +:10C47000000000000000008000000000000000003C +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000001000000D9 +:10C6600000000000000000000000002000000000AA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000FFFF12 +:10D020005F0A000000000000000000000000000097 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000001000000000000000036 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD000000000000000080000000000000000003D +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000002000000000150 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B0000000000000000006000000000000000059 +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A0000000008000400400000800000800080091 +:10E3B000080000000000000000000000000008004D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E470000000000000000000000000000000080094 +:10E480000000080000000808000008000000000864 +:10E49000000008000000000000080000100000005C +:10E4A000000800080000000000000000000000005C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000C00006F +:10E5A0000C000C000C000000000000000000000047 +:10E5B00000000C000000000000000000000000004F +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E670000000080000000400000008040000000082 +:10E680000000000000000000000000000008000082 +:10E6900010000000000C000C000000000000000052 +:10E6A000300000000000000000000000000000003A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E7800000000000000000000000003000300C001D +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000E0000008A +:10E880000000000000000000000000000E0000007A +:10E8900000000000800000000000000000000000F8 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C000000C00000000000000000000000000003C +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000100000000000000000000D5 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000010000000000000000000055 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000008000000000000DC +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED7000000400000000000000000000000000008F +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000008000000000000000000AA +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F05000000000000000FFFFFFFF000000000000B4 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F240000000000000000000000000008C02000030 +:10F25000000000000000000000000080000000002E +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F42000000000000000D8A472A9DFA472B9DFA414 +:10F4300072B9DFA472B9DFA472B9DFA472B9DFA414 +:10F4400072B9DFA472B000000000000000000000EC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F550000000FFFF77220000000000000000000014 +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000FF000F0F555523 +:10F6200033330F0FFF0055553333FF005555333338 +:10F630000F0FFF0033330F0FAAAA000000000000D5 +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100004030000140100000403000010000000B5 +:10F8200004030000140100000403000010000000A5 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA00000000410080000000100041008000000064 +:10FA10001000410080000000100041008000000044 +:10FA200010000000000000000000000000000000C6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF00000000000000000C1D3A3C5C8CB0000C3B3 +:10FC00000080C300CB0000C000C88000C40000C05A +:10FC100000C0C800800000000000000000000000DC +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE000000000000000000000000003800240004E +:10FDF000040000210002C00040000002000080005A +:10FE00000000000200200000800000000000000050 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000008000000000000D9 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000E00000000000000000000000003 +:10FFF00000000000E0000000000C00000000000015 +:020000040002F8 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:100100000000000000000000000008000080000067 +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D0000000100000000000000000000000000708 +:1001E00000001000000000000000100000000000EF +:1001F000E00000000000000000000000000000001F +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000300FB +:1003000000200000000000000000000000000000CD +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C0000000000000000000080000020000100013 +:1003D0000800800000000000020000002000200053 +:1003E0000000000008000000000000000000000005 +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000C000000000000000C000000000000000AB +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E00000000000000000000038000F00000000C3 +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000020000000000000002000035 +:1007C000000000070000000000000000D000000052 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000137 +:1008C0000000000800010080000000080000000097 +:1008D0000000008000000020000001000000000275 +:1008E00000000804000000000000000000000000FC +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000040000D3 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000004000000000053 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000002000000000035 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000004000000000000000C26 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000C005000000000000000BA +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA00000000000700000000000000000000000D5 +:100BB00000000000700000000000000000000000C5 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000003014 +:100CB00000000000000000000000001000000030F4 +:100CC000000000000000000C000000080000000010 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000800000000000000000000DB +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000E00000000000000000000000000000045 +:100DA0000E00000000000000000000000000000035 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F8000000000000000000000000000000000025F +:100F9000000000000000000200000000000000004F +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A000000000000000000000000000000000043C +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000040000000000000000000000003A +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:1015600000000000000000000000FFFFFFFF00007F +:10157000000000000000000000000000000000006B +:101580000000000008000000000000000000000053 +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760008C020000000000000000000000000000EB +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:1018600000008024020000000000000000000000D2 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000488060A94F8007 +:1019400060B94F8060B94F8060B94F8060B94F80F7 +:1019500060B94F8060B94F8060B0000000000000A7 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A5000000000000000FFFFFFFF0000000000008A +:101A60000000000000000000000000000000000076 +:101A70000000FFFF330F0000000000000000000026 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B3000EC3FF466FEA50EE7625A6C3D025A3EC9C0 +:101B400052AF52A99299AEEBA40A5441210D000064 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C4000000000000000000000000100040200008D +:101C50000400000000000000000000000000000080 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E3000000000000000000000000000000003009F +:101E40000000000020000000000000000000000072 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:102030000000000000C300000000000000000000DD +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:10211000000000000000000000000000000000C0FF +:10212000000000400000000000000000000000006F +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:10222000000000000000000000210000000000008D +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:10231000000000400000004000000020000000001D +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000802D000F +:1024200000000000000000000000000000000000AC +:10243000000000000000000020000000000000007C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F000000020D00302000EE00011D003001C0AEF +:10250000A00006400100000AA000025000000027C1 +:102510004002000000000000000000000000000079 +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:102620000000000000000080010000000000000029 +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E000000000000000028003082808F00100003C +:1026F0000000BE0BB00127400700800BB001028034 +:102700000B080006C00100000000000000000000EF +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000004000000B4 +:102820008000000000000000000000000000000028 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000240100D3 +:1028E0000000000000802000000000000020000028 +:1028F000000062000A7000000000000000000000FC +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F0000000000000000000008C2000000000002B +:102A00000000000000000000000000000000008046 +:102A100001000000000000000000000000000000B5 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC00000000000000000000000000000002240A4 +:102AD000063808001001234006901C071000234010 +:102AE00006000007E0001200020C2E07E0000000C4 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000303C0079 +:102BF00000000000000000000000000000000000D5 +:102C000000000020000000000000000000000000A4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC000000000400038000F000002400010002FFC +:102CD000F00002400028012FF002024000280C2FD3 +:102CE000F0020000000000000000000000000000F2 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000004000000400AF +:102DE00000080000080008000800000000000000C3 +:102DF00000000000000008080000000000000000C3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0001000000020000020002000000000000092 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000C00000800080008000000CD +:102FE00000000000000000000000080C00000000CD +:102FF0000000007000000000000000000000000061 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A000000000000000000000000000020000001E +:1030B000000000000200000000000000000000000E +:1030C000000000000000000600000000000A000AE6 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000030000008000000000000000000C7 +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A00000000000000000000000000020000020DE +:1032B00000200000000000000000000000000000EE +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B00000000000000000000030000000000000DD +:1033C00000000000000000000000200200000000DB +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:103490000000000004000000000000000400000024 +:1034A0000000000000000000000000000400000018 +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000008000009B +:1035B00000000000000000000000000000004000CB +:1035C00000000000000000000100000000000000FA +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:103680000000000000000000010000040000000035 +:103690000100000400000000010000040000000020 +:1036A0000100000000000000000000000000000019 +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D000000000000000000000000000000000806A +:1036E00002000000000000000000000000000000D8 +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E0000000000000000040000000000000000099 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000004000440 +:103880000000000000040004000000000004000428 +:103890000000000000040000000000000000000024 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A00000007777FFFF000000000000000000002B +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA000080000000000000000000000000000000E +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B900000000000000090040C0000000000000085 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F7000000000000000FFFFBB1100000000000077 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000024D +:1041700000008000000200000000000000000000BD +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:1043600000008000000000010004000000000000C8 +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:104550000000000000000000000000C0000000009B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000001059 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000020000000000000000057 +:104940006000000000000000000000000000000007 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000200000083 +:104B30000000000000000000001000000000000065 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D200000000000400000004000000000400000C3 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F1000000000A0000000000000000000000000F1 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000A0000000FF +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000400000000000804000000007D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:105350000000000000000004000000000000000049 +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F000000000000000000D00000000000000108F +:1055000000000000000000000000000000000C008F +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F0000000008000000000000000000C0000001E +:105700000000000800000000000000000000000091 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000C5D +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D0000000000000300000000000000000000098 +:1058E00000000000000000000000000000000000B8 +:1058F00004000000000000000000000000000000A4 +:105900000000000000002000000000000000000077 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC0000000000000000000008000000000000056 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000020000000000000000000000B4 +:105AF00000000000000000000000400C000000005A +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF0000000000000000000000000004300000062 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00020000000000000000000000000000000B4 +:105CD00000000000000000000000000000000000C4 +:105CE0000000080000000000000000000000820426 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED0000000FFFFFFFF00000000000000000000C6 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000008C0200000000000042 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A0000000488060A94F8060B94F8060B94F807E +:1062B00060B94F8060B94F8060B94F8060B94F803E +:1062C00060B00000000000000000000000000000BE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000007A7EE44FFEC332DB03 +:1064A0004A667A3C0266B6C3CE9926C986A594FF91 +:1064B0001066060B2324000000000000000000000E +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A7000000000000000C000000000000000000056 +:106A800000000000000000000000004000000400C2 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000001000000000023 +:106C700000200000000000000000000000000040B4 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000238000AEE +:106E6000A0002EE00100000820000E000238000AF9 +:106E7000A00028200202140AA00000000000000068 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:1070400000000000000000000000000000000E80B2 +:1070500003000000A0000E800300000120001E803D +:1070600003000003A0000880001051035800000036 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000030000E10180228000CC0000082025E +:10725000280030000E10980228000C400010100882 +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:107430000000000000000E8003800008E0010E80C4 +:107440000300800810011E8003808008E00108808E +:107450000000800810010000000000000000000093 +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:107620000000000000000000000000C00100000099 +:1076300000022EE00100000000000EC0010000006A +:10764000000228A000000000000000000000000070 +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000101000100010000000000810 +:107830000000001000000000000000000000000038 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A0000000000000000000000000000000900006D +:107A1000000D0C000C0008000030100010001000D9 +:107A20000000000002010010000090709000900023 +:107A300000000000000000500000000000000000F6 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C000000000000000001000100010000000A0067 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000040004000000040000000400000062 +:107E1000040000000400000000000000000000005A +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF000010000000000000001000000010000007E +:108000000100000401000000010000000000000069 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000004000000040800000000007F +:1081F0000004000000000004000000000004000073 +:10820000000400000000000000000000000000006A +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C0000000000000000000000080040000000025 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B0000000000000000000000000000000004078 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B0000000000000000000000000000000FFFFB9 +:1089C000FFFF0000000000000000000000000000A9 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA0000000000000000000000000000000700055 +:108BB00000010000100100000000000000000000A3 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA0000000400080000000000000000000000003 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F90000000000000000000000000C80000000009 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000020000000000000D9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B500000300000000000000000000000000000D5 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D500010000000000000000000000000000008EB +:109D600010000010001000100000000000000000B3 +:109D700010000000000000000000000000000000D3 +:109D800010000000000000000000000000000000C3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000800000000000019 +:109F400000B0000010000800080008000000000039 +:109F5000000000041000002000200020000000008D +:109F600000000000100000000000000000000000E1 +:109F700000000000100000000000000000000000D1 +:109F80000000000050000000000000000000000081 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000100002E +:10A130000E0000000000000000000100010001000E +:10A14000000000000000000000000000000000000F +:10A150000E000000000000000000000000000000F1 +:10A160000E000000000000000000000000000000E1 +:10A170000E000000000000000000000000000000D1 +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A27000000000000000004000000000000000009E +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A000000000000000004000000000000000006E +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000004000000000000000003E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000004000000000000000000D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A3300000000000000000000040000000000000DD +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000200000000003A +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000001000000000DC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000001000000000AC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000010000000007C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000030000000002C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000002000000B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000040000000000000000025 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD0000000000A01228DFA472B9DFA472B9DFA48A +:10AD100072B9DFA472B9DFA472B9DFA472B9DFA47B +:10AD200072B9DEA472B00000000000000000000054 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000400000000033 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF000000000000000FFFFFF00333355553333DF +:10AF00000F0F5555FF00FF00555533330F0FFF004E +:10AF1000555533330F0FAAAACCCCFFFFFFFF00001B +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000403000059 +:10B0F000100000000403000014010000040300001D +:10B10000100000000403000014010000040200000D +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000041002D +:10B2E00080000000100041008000000010004100BC +:10B2F00080000000100041008000000010000100EC +:10B30000000000001000000000000000000000002D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000080C0C4C8000080C8C480C0C0C400D0 +:10B4E000C80000C000C88000C40000C000C88000C0 +:10B4F000C400000000C00000C00000000000000008 +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C0000000000000008020000000008000000258 +:10B6D0008002000000000002000080000000000264 +:10B6E0000000800000000002002000008000000038 +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C000000000000000000E00000000000000006A +:10B8D000E000000000000000E000000000000000A8 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000100076 +:10BAC0000000000000001000000000000000000066 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA000000010000200000000000000040000027C +:10BCB0000000000002000000200000000200000060 +:10BCC000200020000008000000000000000000002C +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE90000000000000000000000000000000100092 +:10BEA00000000000C00000000000000000000000D2 +:10BEB000000000000000000000000006000000007C +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C09000D0000000000000000002000000000007C7 +:10C0A0000000000000000007000000000000002069 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C48000000000000000000070000000000000003C +:10C49000000000000000000070000000000000002C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C67000000000000E0000000000000000000000AC +:10C68000000000000E00000000000000000000009C +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040003F7 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000001000000000000037 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D900000600000000000000000000000000000F3 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000400000000000000000000021 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000001000006D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:1015600000C00000000000000000000000000000BB +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040004F6 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040005F5 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA50000000000000000000000000000000005076 +:10DA600005000000000000000000000000000000B1 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC4000000000000000000000280000A00000000C +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE30000000FFFFFFFFFFFFFFFF000000000000EA +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000080240E0080240E0000008C +:10E030000000000000000080000000000000000060 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000802402008024B4 +:10E2200002000000000000000000000000000000EC +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E400000000000000000000000000000000FFFF0E +:10E41000FFFFFFFFFFFF0000000000000000000002 +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000051190403C0209C45000000000000D8 +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F000000000000000D12880000001106000002F +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E00000000000000000000000470003DBC20040 +:10E9F000C0A30000000000000000000000000000B4 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000040031 +:10EBE00020001480820200000000000000000000ED +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD00000000000003816000000000000000000E5 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC00000000000000000000030140000000000FD +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000001C030030 +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B00000B0140000000000000000000000000089 +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A0000000000000302800000000000000000003 +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000800000004000800000055 +:10F7A0000C0000000000000000000000000000004D +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F98000000000000000000000000C060A0000401B +:10F990000000B65000100000000A00000000000047 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB7000000000000000000000000000000006007F +:10FB800000000C00000000000880000000000000E1 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD700000000000800000040000000000000000FF +:10FD80000200000000000000000000000000000071 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000280000000000000069 +:10FF7000000000000400000000000000000000007D +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040006F4 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:1001500000000000000000000000C00104000008D2 +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:100340000000000000000000000000000000FFFFAF +:10035000FFFFFFFF77220000000000000000000008 +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:10054000000080240E0000000C00000000000000ED +:10055000000000800000000000000000000000001B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000FFFFF303FFFFD5 +:10093000F3030000000000000000000000000000C1 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000030A5 +:100B20000000402000C000000000000000000000A5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D1000000000280000000000400000000000006B +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F0000000000000000000003620000000000007C +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000000000000000000000000000080 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000000000000000000000000000000000040 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000020200000B0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000000000000000000000000000009E +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000000000000000000000000000000003E +:1012B000000000000000000000000000000000002E +:1012C000000000000000000000000000000000001E +:1012D000000000000000000000000000000000000E +:1012E00000000000000000000000000000000020DE +:1012F00000030E0440400000000000000000000059 +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000000000000000000000000000000007D +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000001D +:1013D000000000000000000000000000000000000D +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E0000000228021101008000900000000000008 +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E00000000000000000000000000000000000FB +:1015F00000000000000000000000000000000000EB +:1016000000000000000000000000000000000000DA +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D00000000000000020000000020000000000E8 +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000000000000000000000000079 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:101790000000000000000000000000000000000049 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C0000000000000000000000000000000000019 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:1018100000000000000000000000000000000000C8 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C000000000000000000000000C800400000088 +:1018D0000080000000000000000000000000000088 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A200000000000000000000000000000000000B6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A50000000000000000000000000000000000086 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC00000503C000000000000000000000000008A +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300000000000000000000000000000000000A5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000000000000000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C90000000000000000000000000000000000044 +:101CA0000000000000000000000000000000000034 +:101CB00000000C0400040804080C040800000000E4 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000000000000C3 +:101D200000000000000000000000000000000000B3 +:101D300000000000000000000000000000000000A3 +:101D40000000000000000000000000000000000093 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000000000000000073 +:101D70000000000000000000000000000000000063 +:101D80000000000000000000000000000000000053 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB0000000000000000000000000000000000023 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA000000000000000040600000C00080C000CFC +:101EB00000B0003000000000000000000000000042 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:102040000000000000000000000000000000000090 +:102050000000000000000000000000000000000080 +:102060000000000000000000000000000000000070 +:102070000000000000000000000000000000000060 +:102080000000000000000000000000000000000050 +:102090000000000000000000000008080004000C20 +:1020A00000040C00000000800000000000000000A0 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000000000000000000000F0 +:1020F00000000000000000000000000000000000E0 +:1021000000000000000000000000000000000000CF +:1021100000000000000000000000000000000000BF +:1021200000000000000000000000000000000000AF +:10213000000000000000000000000000000000009F +:10214000000000000000000000000000000000008F +:10215000000000000000000000000000000000007F +:10216000000000000000000000000000000000006F +:10217000000000000000000000000000000000005F +:10218000000000000000000000000000000000004F +:10219000000000000000000000000000000000003F +:1021A000000000000000000000000000000000002F +:1021B000000000000000000000000000000000001F +:1021C000000000000000000000000000000000000F +:1021D00000000000000000000000000000000000FF +:1021E00000000000000000000000000000000000EF +:1021F00000000000000000000000000000000000DF +:1022000000000000000000000000000000000000CE +:1022100000000000000000000000000000000000BE +:1022200000000000000000000000000000000000AE +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000044A +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000000000000000000000000000FE +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000000000000000000CD +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:10233000000000000000000000000000000000009D +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000000000000000000000000000000000006D +:10237000000000000000000000000000000000005D +:10238000000000000000000000000000000000004D +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000000000000000001D +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E00000000000000000000000000000000000ED +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000000000BC +:1024200000000000000000000000000000000000AC +:10243000000000000000000000000000000000009C +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:10246000000000000000000000000000000000006C +:10247000000000000000000000000000000000005C +:10248000000000010100000000000000000000004A +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:1025100000000000000000000000000000000000BB +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:10254000000000000000000000000000000000008B +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:10257000000000000000000000000000000000005B +:10258000000000000000000000000000000000004B +:10259000000000000000000000000000000000003B +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000000000000000000000B +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F00000000000000000000000000000000000DB +:1026000000000000000000000000000000000000CA +:1026100000000000000000000000000000000000BA +:1026200000000000000000000000000000000000AA +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000000000008A +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:10267000000000000000000400080000000400004A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000000000000DA +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:1027200000000000000000000000000000000000A9 +:102730000000000000000000000000000000000099 +:102740000000000000000000000000000000000089 +:102750000000000000000000000000000000000079 +:102760000000000000000000000000000000000069 +:102770000000000000000000000000000000000059 +:102780000000000000000000000000000000000049 +:102790000000000000000000000000000000000039 +:1027A0000000000000000000000000000000000029 +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D00000000000000000000000000000000000F9 +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000000000000000000000000D9 +:1028000000000000000000000000000000000000C8 +:1028100000000000000000000000000000000000B8 +:1028200000000000000000000000000000000000A8 +:102830000000000000000000000000000000000098 +:102840000000000000000000000000000000000088 +:102850000000000000000000000000000000000078 +:1028600000000000000000000000FFFF4747FFFFDE +:1028700047470000000000000000000000000000CA +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C0000000000000000000000000000000000008 +:1028D00000000000000000000000000000000000F8 +:1028E00000000000000000000000000000000000E8 +:1028F00000000000000000000000000000000000D8 +:1029000000000000000000000000000000000000C7 +:1029100000000000000000000000000000000000B7 +:1029200000000000000000000000000000000000A7 +:102930000000000000000000000000000000000097 +:102940000000000000000000000000000000000087 +:102950000000000000000000000000000000000077 +:102960000000000000000000000000000000000067 +:102970000000000000000000000000000000000057 +:102980000000000000000000000000000000000047 +:102990000000000000000000000000000000000037 +:1029A0000000000000000000000000000000000027 +:1029B0000000000000000000000000000000000017 +:1029C0000000000000000000000000000000000007 +:1029D00000000000000000000000000000000000F7 +:1029E00000000000000000000000000000000000E7 +:1029F00000000000000000000000000000000000D7 +:102A000000000000000000000000000000000000C6 +:102A100000000000000000000000000000000000B6 +:102A200000000000000000000000000000000000A6 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000C0000000C0000000000000000000080CE +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C500000000000000080240200000000000000CE +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E4000000000000000FFFF3355FFFFFFFF000000 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:10303000000000000000000000005000000100003F +:1030400090010000000000000000000000000000EF +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000040005E +:10323000800000000000000000000000000000000E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:103420000000000000811300000000000000000008 +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000005000000000000A5 +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:10380000000000000000000000008000003C0000FC +:103810000110000000000000000000000000000097 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000002203A2 +:103A0000600C2C000280000000000000000000009C +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF0000000200020010000000000000000000084 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE0000000000000000C0BE0702000000000004C +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD000000000000000000000000000000A0010C7 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000800E7 +:1041D0000C8000080800000000000008000000003B +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000C000C0000080C00001009B0000CEC +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000006C1600000070008089 +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A00000000000000000000000040000040400FD +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000010400000000000000000000000002 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000080000080004000000000000000001 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:10515000000000000000000000000000000000004F +:10516000000000000000000000000000000000003F +:10517000000000000000000000000000000000002F +:10518000000000000000000000000000000000001F +:10519000000000000000000000000000000000000F +:1051A00000000000000000000000000000000000FF +:1051B00000000000000000000000000000000000EF +:1051C00000000000000000000000000000000000DF +:1051D00000000000000000000000000000000000CF +:1051E00000000000000000000000000000000000BF +:1051F00000000000000000000000000000000000AF +:10520000000000000000000000000000000000009E +:10521000000000000000000000000000000000008E +:10522000000000000000000000000000000000007E +:10523000000000000000000000000000000000006E +:10524000000000000000000000000000000000005E +:10525000000000000000000000000000000000004E +:10526000000000000000000000000000000000003E +:10527000000000000000000000000000000000002E +:10528000000000000000000000000000000000001E +:10529000000000000000000000000000000000000E +:1052A00000000000000000000000000000000000FE +:1052B00000000000000000000000000000000000EE +:1052C00000000000000000000000000000000000DE +:1052D00000000000000000000000000000000000CE +:1052E00000000000000000000000000000000000BE +:1052F00000000000000000000000000000000000AE +:10530000000000000000000000000000000000009D +:10531000000000000000000000000000000000008D +:10532000000000000000000000000000000000007D +:10533000000000000000000000000000000000006D +:10534000000000000000000000000000000000005D +:10535000000000000000000000000000000000004D +:10536000000000000000000000000000000000003D +:10537000000000000000000000000000000000002D +:10538000000000000000000000000000000000001D +:10539000000000000000000000000000000000000D +:1053A00000000000000000000000000000000000FD +:1053B00000000000000000000000000000000000ED +:1053C00000000000000000000000000000000000DD +:1053D00000000000000000000000000000000000CD +:1053E00000000000000000000000000000000000BD +:1053F00000000000000000000000000000000000AD +:10540000000000000000000000000000000000009C +:10541000000000000000000000000000000000008C +:10542000000000000000000000000000000000007C +:10543000000000000000000000000000000000006C +:10544000000000000000000000000000000000005C +:10545000000000000000000000000000000000004C +:10546000000000000000000000000000000000003C +:10547000000000000000000000000000000000002C +:10548000000000000000000000000000000000001C +:10549000000000000000000000000000000000000C +:1054A00000000000000000000000000000000000FC +:1054B00000000000000000000000000000000000EC +:1054C00000000000000000000000000000000000DC +:1054D00000000000000000000000000000000000CC +:1054E00000000000000000000000000000000000BC +:1054F00000000000000000000000000000000000AC +:10550000000000000000000000000000000000009B +:10551000000000000000000000000000000000008B +:10552000000000000000000000000000000000007B +:10553000000000000000000000000000000000006B +:10554000000000000000000000000000000000005B +:10555000000000000000000000000000000000004B +:10556000000000000000000000000000000000003B +:10557000000000000000000000000000000000002B +:10558000000000000000000000000000000000001B +:10559000000000000000000000000000000000000B +:1055A00000000000000000000000000000000000FB +:1055B00000000000000000000000000000000000EB +:1055C00000000000000000000000000000000000DB +:1055D00000000000000000000000000000000000CB +:1055E00000000000000000000000000000000000BB +:1055F00000000000000000000000000000000000AB +:10560000000000000000000000000000000000009A +:10561000000000000000000000000000000000008A +:10562000000000000000000000000000000000007A +:10563000000000000000000000000000000000006A +:10564000000000000000000000000000000000005A +:10565000000000000000000000000000000000004A +:10566000000000000000000000000000000000003A +:10567000000000000000000000000000000000002A +:10568000000000000000000000000000000000001A +:10569000000000000000000000000000000000000A +:1056A00000000000000000000000000000000000FA +:1056B00000000000000000000000000000000000EA +:1056C00000000000000000000000000000000000DA +:1056D00000000000000000000000000000000000CA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:105700000000000000000000000000000000000099 +:105710000000000000000000000000000000000089 +:105720000000000000000000000000000000000079 +:105730000000000000000000000000000000000069 +:105740000000000000000000000000000000000059 +:105750000000000000000000000000000000000049 +:105760000000000000000000000000000000000039 +:105770000000000000000000000000000000000029 +:105780000000000000000000000000000000000019 +:105790000000000000000000000000000000000009 +:1057A00000000000000000000000000000000000F9 +:1057B00000000000000000000000000000000000E9 +:1057C00000000000000000000000000000000000D9 +:1057D00000000000000000000000000000000000C9 +:1057E00000000000000000000000000000000000B9 +:1057F00000000000000000000000000000000000A9 +:105800000000000000000000000000000000000098 +:105810000000000000000000000000000000000088 +:105820000000000000000000000000000000000078 +:105830000000000000000000000000000000000068 +:105840000000000000000000000000000000000058 +:105850000000000000000000000000000000000048 +:105860000000000000000000000000000000000038 +:105870000000000000000000000000000000000028 +:105880000000000000000000000000000000000018 +:105890000000000000000000000000000000000008 +:1058A00000000000000000000000000000000000F8 +:1058B00000000000000000000000000000000000E8 +:1058C00000000000000000000000000000000000D8 +:1058D00000000000000000000000000000000000C8 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000000000000000000000000000000087 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:105940000000000000000000000000000000000057 +:105950000000000000000000000000000000000047 +:105960000000000000000000000000000000000037 +:105970000000000000000000000000000000000027 +:105980000000000000000000000000000000000017 +:105990000000000000000000000000000000000007 +:1059A00000000000000000000000000000000000F7 +:1059B00000000000000000000000000000000000E7 +:1059C00000000000000000000000000000000000D7 +:1059D00000000000000000000000000000000000C7 +:1059E00000000000000000000000000000000000B7 +:1059F00000000000000000000000000000000000A7 +:105A00000000000000000000000000000000000096 +:105A10000000000000000000000000000000000086 +:105A20000000000000000000000000000000000076 +:105A30000000000000000000000000000000000066 +:105A40000000000000000000000000000000000056 +:105A50000000000000000000000000000000000046 +:105A60000000000000000000000000000000000036 +:105A70000000000000000000000000000000000026 +:105A80000000000000000000000000000000000016 +:105A90000000000000000000000000000000000006 +:105AA00000000000000000000000000000000000F6 +:105AB00000000000000000000000000000000000E6 +:105AC00000000000000000000000000000000000D6 +:105AD00000000000000000000000000000000000C6 +:105AE00000000000000000000000000000000000B6 +:105AF00000000000000000000000000000000000A6 +:105B00000000000000000000000000000000000095 +:105B10000000000000000000000000000000000085 +:105B20000000000000000000000000000000000075 +:105B30000000000000000000000000000000000065 +:105B40000000000000000000000000000000000055 +:105B50000000000000000000000000000000000045 +:105B60000000000000000000000000000000000035 +:105B70000000000000000000000000000000000025 +:105B80000000000000000000000000000000000015 +:105B90000000000000000000000000000000000005 +:105BA00000000000000000000000000000000000F5 +:105BB00000000000000000000000000000000000E5 +:105BC00000000000000000000000000000000000D5 +:105BD00000000000000000000000000000000000C5 +:105BE00000000000000000000000000000000000B5 +:105BF00000000000000000000000000000000000A5 +:105C00000000000000000000000000000000000094 +:105C10000000000000000000000000000000000084 +:105C20000000000000000000000000000000000074 +:105C30000000000000000000000000000000000064 +:105C40000000000000000000000000000000000054 +:105C50000000000000000000000000000000000044 +:105C60000000000000000000000000000000000034 +:105C70000000000000000000000000000000000024 +:105C80000000000000000000000000000000000014 +:105C90000000000000000000000000000000000004 +:105CA00000000000000000000000000000000000F4 +:105CB00000000000000000000000000000000000E4 +:105CC00000000000000000000000000000000000D4 +:105CD00000000000000000000000000000000000C4 +:105CE00000000000000000000000000000000000B4 +:105CF00000000000000000000000000000000000A4 +:105D00000000000000000000000000000000000093 +:105D10000000000000000000000000000000000083 +:105D20000000000000000000000000000000000073 +:105D30000000000000000000000000000000000063 +:105D40000000000000000000000000000000000053 +:105D50000000000000000000000000000000000043 +:105D60000000000000000000000000000000000033 +:105D70000000000000000000000000000000000023 +:105D80000000000000000000000000000000000013 +:105D90000000000000000000000000000000000003 +:105DA00000000000000000000000000000000000F3 +:105DB00000000000000000000000000000000000E3 +:105DC00000000000000000000000000000000000D3 +:105DD00000000000000000000000000000000000C3 +:105DE00000000000000000000000000000000000B3 +:105DF00000000000000000000000000000000000A3 +:105E00000000000000000000000000000000000092 +:105E10000000000000000000000000000000000082 +:105E20000000000000000000000000000000000072 +:105E30000000000000000000000000000000000062 +:105E40000000000000000000000000000000000052 +:105E50000000000000000000000000000000000042 +:105E60000000000000000000000000000000000032 +:105E70000000000000000000000000000000000022 +:105E80000000000000000000000000000000000012 +:105E90000000000000000000000000000000000002 +:105EA00000000000000000000000000000000000F2 +:105EB00000000000000000000000000000000000E2 +:105EC00000000000000000000000000000000000D2 +:105ED00000000000000000000000000000000000C2 +:105EE00000000000000000000000000000000000B2 +:105EF00000000000000000000000000000000000A2 +:105F00000000000000000000000000000000000091 +:105F10000000000000000000000000000000000081 +:105F20000000000000000000000000000000000071 +:105F30000000000000000000000000000000000061 +:105F40000000000000000000000000000000000051 +:105F50000000000000000000000000000000000041 +:105F60000000000000000000000000000000000031 +:105F70000000000000000000000000000000000021 +:105F80000000000000000000000000000000000011 +:105F90000000000000000000000000000000000001 +:105FA00000000000000000000000000000000000F1 +:105FB00000000000000000000000000000000000E1 +:105FC00000000000000000000000000000000000D1 +:105FD00000000000000000000000000000000000C1 +:105FE00000000000000000000000000000000000B1 +:105FF00000000000000000000000000000000000A1 +:106000000000000000000000000000000000000090 +:106010000000000000000000000000000000000080 +:106020000000000000000000000000000000000070 +:106030000000000000000000000000000000000060 +:106040000000000000000000000000000000000050 +:106050000000000000000000000000000000000040 +:106060000000000000000000000000000000000030 +:106070000000000000000000000000000000000020 +:106080000000000000000000000000000000000010 +:106090000000000000000000000000000000000000 +:1060A00000000000000000000000000000000000F0 +:1060B00000000000000000000000000000000000E0 +:1060C00000000000000000000000000000000000D0 +:1060D00000000000000000000000000000000000C0 +:1060E00000000000000000000000000000000000B0 +:1060F00000000000000000000000000000000000A0 +:10610000000000000000000000000000000000008F +:10611000000000000000000000000000000000007F +:10612000000000000000000000000000000000006F +:10613000000000000000000000000000000000005F +:10614000000000000000000000000000000000004F +:10615000000000000000000000000000000000003F +:10616000000000000000000000000000000000002F +:10617000000000000000000000000000000000001F +:10618000000000000000000000000000000000000F +:1061900000000000000000000000000000000000FF +:1061A00000000000000000000000000000000000EF +:1061B00000000000000000000000000000000000DF +:1061C00000000000000000000000000000000000CF +:1061D00000000000000000000000000000000000BF +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000000000000000000000006E +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000000000000000000000000000002E +:10627000000000000000000000000000000000001E +:10628000000000000000000000000000000000000E +:1062900000000000000000000000000000000000FE +:1062A00000000000000000000000000000000000EE +:1062B00000000000000000000000000000000000DE +:1062C00000000000000000000000000000000000CE +:1062D00000000000000000000000000000000000BE +:1062E00000000000000000000000000000000000AE +:1062F000000000000000000000000000000000009E +:10630000000000000000000000000000000000008D +:10631000000000000000000000000000000000007D +:10632000000000000000000000000000000000006D +:10633000000000000000000000000000000000005D +:10634000000000000000000000000000000000004D +:10635000000000000000000000000000000000003D +:10636000000000000000000000000000000000002D +:10637000000000000000000000000000000000001D +:10638000000000000000000000000000000000000D +:1063900000000000000000000000000000000000FD +:1063A00000000000000000000000000000000000ED +:1063B00000000000000000000000000000000000DD +:1063C00000000000000000000000000000000000CD +:1063D00000000000000000000000000000000000BD +:1063E00000000000000000000000000000000000AD +:1063F000000000000000000000000000000000009D +:10640000000000000000000000000000000000008C +:10641000000000000000000000000000000000007C +:10642000000000000000000000000000000000006C +:10643000000000000000000000000000000000005C +:10644000000000000000000000000000000000004C +:10645000000000000000000000000000000000003C +:10646000000000000000000000000000000000002C +:10647000000000000000000000000000000000001C +:10648000000000000000000000000000000000000C +:1064900000000000000000000000000000000000FC +:1064A00000000000000000000000000000000000EC +:1064B00000000000000000000000000000000000DC +:1064C00000000000000000000000000000000000CC +:1064D00000000000000000000000000000000000BC +:1064E00000000000000000000000000000000000AC +:1064F000000000000000000000000000000000009C +:10650000000000000000000000000000000000008B +:10651000000000000000000000000000000000007B +:10652000000000000000000000000000000000006B +:10653000000000000000000000000000000000005B +:10654000000000000000000000000000000000004B +:10655000000000000000000000000000000000003B +:10656000000000000000000000000000000000002B +:10657000000000000000000000000000000000001B +:10658000000000000000000000000000000000000B +:1065900000000000000000000000000000000000FB +:1065A00000000000000000000000000000000000EB +:1065B00000000000000000000000000000000000DB +:1065C00000000000000000000000000000000000CB +:1065D00000000000000000000000000000000000BB +:1065E00000000000000000000000000000000000AB +:1065F000000000000000000000000000000000009B +:10660000000000000000000000000000000000008A +:10661000000000000000000000000000000000007A +:10662000000000000000000000000000000000006A +:10663000000000000000000000000000000000005A +:10664000000000000000000000000000000000004A +:10665000000000000000000000000000000000003A +:10666000000000000000000000000000000000002A +:10667000000000000000000000000000000000001A +:10668000000000000000000000000000000000000A +:1066900000000000000000000000000000000000FA +:1066A00000000000000000000000000000000000EA +:1066B00000000000000000000000000000000000DA +:1066C00000000000000000000000000000000000CA +:1066D00000000000000000000000000000000000BA +:1066E00000000000000000000000000000000000AA +:1066F000000000000000000000000000000000009A +:106700000000000000000000000000000000000089 +:106710000000000000000000000000000000000079 +:106720000000000000000000000000000000000069 +:106730000000000000000000000000000000000059 +:106740000000000000000000000000000000000049 +:106750000000000000000000000000000000000039 +:106760000000000000000000000000000000000029 +:106770000000000000000000000000000000000019 +:106780000000000000000000000000000000000009 +:1067900000000000000000000000000000000000F9 +:1067A00000000000000000000000000000000000E9 +:1067B00000000000000000000000000000000000D9 +:1067C00000000000000000000000000000000000C9 +:1067D00000000000000000000000000000000000B9 +:1067E00000000000000000000000000000000000A9 +:1067F0000000000000000000000000000000000099 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000000000000000000018 +:106880000000000000000000000000000000000008 +:1068900000000000000000000000000000000000F8 +:1068A00000000000000000000000000000000000E8 +:1068B00000000000000000000000000000000000D8 +:1068C00000000000000000000000000000000000C8 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F0000000000000000000000000000000000098 +:106900000000000000000000000000000000000087 +:106910000000000000000000000000000000000077 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000000000057 +:106940000000000000000000000000000000000047 +:106950000000000000000000000000000000000037 +:106960000000000000000000000000000000000027 +:106970000000000000000000000000000000000017 +:106980000000000000000000000000000000000007 +:1069900000000000000000000000000000000000F7 +:1069A00000000000000000000000000000000000E7 +:1069B00000000000000000000000000000000000D7 +:1069C00000000000000000000000000000000000C7 +:1069D00000000000000000000000000000000000B7 +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A50000000000000000000000000000000000036 +:106A60000000000000000000000000000000000026 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000000000000000000085 +:106B10000000000000000000000000000000000075 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000000000000E2 +:106EB00000000000000000000000000000000000D2 +:106EC00000000000000000000000000000000000C2 +:106ED00000000000000000000000000000000000B2 +:106EE00000000000000000000000000000000000A2 +:106EF0000000000000000000000000000000000092 +:106F00000000000000000000000000000000000081 +:106F10000000000000000000000000000000000071 +:106F20000000000000000000000000000000000061 +:106F30000000000000000000000000000000000051 +:106F40000000000000000000000000000000000041 +:106F50000000000000000000000000000000000031 +:106F60000000000000000000000000000000000021 +:106F70000000000000000000000000000000000011 +:106F80000000000000000000000000000000000001 +:106F900000000000000000000000000000000000F1 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:107050000000000000000000000000000000000030 +:107060000000000000000000000000000000000020 +:107070000000000000000000000000000000000010 +:107080000000000000000000000000000000000000 +:1070900000000000000000000000000000000000F0 +:1070A00000000000000000000000000000000000E0 +:1070B00000000000000000000000000000000000D0 +:1070C00000000000000000000000000000000000C0 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:10735000000000000000000000000000000000002D +:10736000000000000000000000000000000000001D +:10737000000000000000000000000000000000000D +:1073800000000000000000000000000000000000FD +:1073900000000000000000000000000000000000ED +:1073A00000000000000000000000000000000000DD +:1073B00000000000000000000000000000000000CD +:1073C00000000000000000000000000000000000BD +:1073D00000000000000000000000000000000000AD +:1073E000000000000000000000000000000000009D +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000000000004C +:10744000000000000000000000000000000000003C +:10745000000000000000000000000000000000002C +:10746000000000000000000000000000000000001C +:10747000000000000000000000000000000000000C +:1074800000000000000000000000000000000000FC +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:10750000000000000000000000000000000000007B +:10751000000000000000000000000000000000006B +:10752000000000000000000000000000000000005B +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000000000000000000000000000000000001B +:10757000000000000000000000000000000000000B +:1075800000000000000000000000000000000000FB +:1075900000000000000000000000000000000000EB +:1075A00000000000000000000000000000000000DB +:1075B00000000000000000000000000000000000CB +:1075C00000000000000000000000000000000000BB +:1075D00000000000000000000000000000000000AB +:1075E000000000000000000000000000000000009B +:1075F000000000000000000000000000000000008B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:10763000000000000000000000000000000000004A +:10764000000000000000000000000000000000003A +:10765000000000000000000000000000000000002A +:10766000000000000000000000000000000000001A +:10767000000000000000000000000000000000000A +:1076800000000000000000000000000000000000FA +:1076900000000000000000000000000000000000EA +:1076A00000000000000000000000000000000000DA +:1076B00000000000000000000000000000000000CA +:1076C00000000000000000000000000000000000BA +:1076D00000000000000000000000000000000000AA +:1076E000000000000000000000000000000000009A +:1076F000000000000000000000000000000000008A +:107700000000000000000000000000000000000079 +:107710000000000000000000000000000000000069 +:107720000000000000000000000000000000000059 +:107730000000000000000000000000000000000049 +:107740000000000000000000000000000000000039 +:107750000000000000000000000000000000000029 +:107760000000000000000000000000000000000019 +:107770000000000000000000000000000000000009 +:1077800000000000000000000000000000000000F9 +:1077900000000000000000000000000000000000E9 +:1077A00000000000000000000000000000000000D9 +:1077B00000000000000000000000000000000000C9 +:1077C00000000000000000000000000000000000B9 +:1077D00000000000000000000000000000000000A9 +:1077E0000000000000000000000000000000000099 +:1077F0000000000000000000000000000000000089 +:107800000000000000000000000000000000000078 +:107810000000000000000000000000000000000068 +:107820000000000000000000000000000000000058 +:107830000000000000000000000000000000000048 +:107840000000000000000000000000000000000038 +:107850000000000000000000000000000000000028 +:107860000000000000000000000000000000000018 +:107870000000000000000000000000000000000008 +:1078800000000000000000000000000000000000F8 +:1078900000000000000000000000000000000000E8 +:1078A00000000000000000000000000000000000D8 +:1078B00000000000000000000000000000000000C8 +:1078C00000000000000000000000000000000000B8 +:1078D00000000000000000000000000000000000A8 +:1078E0000000000000000000000000000000000098 +:1078F0000000000000000000000000000000000088 +:107900000000000000000000000000000000000077 +:107910000000000000000000000000000000000067 +:107920000000000000000000000000000000000057 +:107930000000000000000000000000000000000047 +:107940000000000000000000000000000000000037 +:107950000000000000000000000000000000000027 +:107960000000000000000000000000000000000017 +:107970000000000000000000000000000000000007 +:1079800000000000000000000000000000000000F7 +:1079900000000000000000000000000000000000E7 +:1079A00000000000000000000000000000000000D7 +:1079B00000000000000000000000000000000000C7 +:1079C00000000000000000000000000000000000B7 +:1079D00000000000000000000000000000000000A7 +:1079E0000000000000000000000000000000000097 +:1079F0000000000000000000000000000000000087 +:107A00000000000000000000000000000000000076 +:107A10000000000000000000000000000000000066 +:107A20000000000000000000000000000000000056 +:107A30000000000000000000000000000000000046 +:107A40000000000000000000000000000000000036 +:107A50000000000000000000000000000000000026 +:107A60000000000000000000000000000000000016 +:107A70000000000000000000000000000000000006 +:107A800000000000000000000000000000000000F6 +:107A900000000000000000000000000000000000E6 +:107AA00000000000000000000000000000000000D6 +:107AB00000000000000000000000000000000000C6 +:107AC00000000000000000000000000000000000B6 +:107AD00000000000000000000000000000000000A6 +:107AE0000000000000000000000000000000000096 +:107AF0000000000000000000000000000000000086 +:107B00000000000000000000000000000000000075 +:107B10000000000000000000000000000000000065 +:107B20000000000000000000000000000000000055 +:107B30000000000000000000000000000000000045 +:107B40000000000000000000000000000000000035 +:107B50000000000000000000000000000000000025 +:107B60000000000000000000000000000000000015 +:107B70000000000000000000000000000000000005 +:107B800000000000000000000000000000000000F5 +:107B900000000000000000000000000000000000E5 +:107BA00000000000000000000000000000000000D5 +:107BB00000000000000000000000000000000000C5 +:107BC00000000000000000000000000000000000B5 +:107BD00000000000000000000000000000000000A5 +:107BE0000000000000000000000000000000000095 +:107BF0000000000000000000000000000000000085 +:107C00000000000000000000000000000000000074 +:107C10000000000000000000000000000000000064 +:107C20000000000000000000000000000000000054 +:107C30000000000000000000000000000000000044 +:107C40000000000000000000000000000000000034 +:107C50000000000000000000000000000000000024 +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C800000000000000000000000000000000000F4 +:107C900000000000000000000000000000000000E4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC00000000000000000000000000000000000B4 +:107CD00000000000000000000000000000000000A4 +:107CE0000000000000000000000000000000000094 +:107CF0000000000000000000000000000000000084 +:107D00000000000000000000000000000000000073 +:107D10000000000000000000000000000000000063 +:107D20000000000000000000000000000000000053 +:107D30000000000000000000000000000000000043 +:107D40000000000000000000000000000000000033 +:107D50000000000000000000000000000000000023 +:107D60000000000000000000000000000000000013 +:107D70000000000000000000000000000000000003 +:107D800000000000000000000000000000000000F3 +:107D900000000000000000000000000000000000E3 +:107DA00000000000000000000000000000000000D3 +:107DB00000000000000000000000000000000000C3 +:107DC00000000000000000000000000000000000B3 +:107DD00000000000000000000000000000000000A3 +:107DE0000000000000000000000000000000000093 +:107DF0000000000000000000000000000000000083 +:107E00000000000000000000000000000000000072 +:107E10000000000000000000000000000000000062 +:107E20000000000000000000000000000000000052 +:107E30000000000000000000000000000000000042 +:107E40000000000000000000000000000000000032 +:107E50000000000000000000000000000000000022 +:107E60000000000000000000000000000000000012 +:107E70000000000000000000000000000000000002 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA00000000000000000000000000000000000D2 +:107EB00000000000000000000000000000000000C2 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000000000000000000000000000A2 +:107EE0000000000000000000000000000000000092 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:107F10000000000000000000000000000000000061 +:107F20000000000000000000000000000000000051 +:107F30000000000000000000000000000000000041 +:107F40000000000000000000000000000000000031 +:107F50000000000000000000000000000000000021 +:107F60000000000000000000000000000000000011 +:107F70000000000000000000000000000000000001 +:107F800000000000000000000000000000000000F1 +:107F900000000000000000000000000000000000E1 +:107FA00000000000000000000000000000000000D1 +:107FB00000000000000000000000000000000000C1 +:107FC00000000000000000000000000000000000B1 +:107FD00000000000000000000000000000000000A1 +:107FE0000000000000000000000000000000000091 +:107FF0000000000000000000000000000000000081 +:108000000000000000000000000000000000000070 +:108010000000000000000000000000000000000060 +:108020000000000000000000000000000000000050 +:108030000000000000000000000000000000000040 +:108040000000000000000000000000000000000030 +:108050000000000000000000000000000000000020 +:108060000000000000000000000000000000000010 +:108070000000000000000000000000000000000000 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:1081700000000000000000000000000000000000FF +:1081800000000000000000000000000000000000EF +:1081900000000000000000000000000000000000DF +:1081A00000000000000000000000000000000000CF +:1081B00000000000000000000000000000000000BF +:1081C00000000000000000000000000000000000AF +:1081D000000000000000000000000000000000009F +:1081E000000000000000000000000000000000008F +:1081F000000000000000000000000000000000007F +:10820000000000000000000000000000000000006E +:10821000000000000000000000000000000000005E +:10822000000000000000000000000000000000004E +:10823000000000000000000000000000000000003E +:10824000000000000000000000000000000000002E +:10825000000000000000000000000000000000001E +:10826000000000000000000000000000000000000E +:1082700000000000000000000000000000000000FE +:1082800000000000000000000000000000000000EE +:1082900000000000000000000000000000000000DE +:1082A00000000000000000000000000000000000CE +:1082B00000000000000000000000000000000000BE +:1082C00000000000000000000000000000000000AE +:1082D000000000000000000000000000000000009E +:1082E000000000000000000000000000000000008E +:1082F000000000000000000000000000000000007E +:10830000000000000000000000000000000000006D +:10831000000000000000000000000000000000005D +:10832000000000000000000000000000000000004D +:10833000000000000000000000000000000000003D +:10834000000000000000000000000000000000002D +:10835000000000000000000000000000000000001D +:10836000000000000000000000000000000000000D +:1083700000000000000000000000000000000000FD +:1083800000000000000000000000000000000000ED +:1083900000000000000000000000000000000000DD +:1083A00000000000000000000000000000000000CD +:1083B00000000000000000000000000000000000BD +:1083C00000000000000000000000000000000000AD +:1083D000000000000000000000000000000000009D +:1083E000000000000000000000000000000000008D +:1083F000000000000000000000000000000000007D +:10840000000000000000000000000000000000006C +:10841000000000000000000000000000000000005C +:10842000000000000000000000000000000000004C +:10843000000000000000000000000000000000003C +:10844000000000000000000000000000000000002C +:10845000000000000000000000000000000000001C +:10846000000000000000000000000000000000000C +:1084700000000000000000000000000000000000FC +:1084800000000000000000000000000000000000EC +:1084900000000000000000000000000000000000DC +:1084A00000000000000000000000000000000000CC +:1084B00000000000000000000000000000000000BC +:1084C00000000000000000000000000000000000AC +:1084D000000000000000000000000000000000009C +:1084E000000000000000000000000000000000008C +:1084F000000000000000000000000000000000007C +:10850000000000000000000000000000000000006B +:10851000000000000000000000000000000000005B +:10852000000000000000000000000000000000004B +:10853000000000000000000000000000000000003B +:10854000000000000000000000000000000000002B +:10855000000000000000000000000000000000001B +:10856000000000000000000000000000000000000B +:1085700000000000000000000000000000000000FB +:1085800000000000000000000000000000000000EB +:1085900000000000000000000000000000000000DB +:1085A00000000000000000000000000000000000CB +:1085B00000000000000000000000000000000000BB +:1085C00000000000000000000000000000000000AB +:1085D000000000000000000000000000000000009B +:1085E000000000000000000000000000000000008B +:1085F000000000000000000000000000000000007B +:10860000000000000000000000000000000000006A +:10861000000000000000000000000000000000005A +:10862000000000000000000000000000000000004A +:10863000000000000000000000000000000000003A +:10864000000000000000000000000000000000002A +:10865000000000000000000000000000000000001A +:10866000000000000000000000000000000000000A +:1086700000000000000000000000000000000000FA +:1086800000000000000000000000000000000000EA +:1086900000000000000000000000000000000000DA +:1086A00000000000000000000000000000000000CA +:1086B00000000000000000000000000000000000BA +:1086C00000000000000000000000000000000000AA +:1086D000000000000000000000000000000000009A +:1086E000000000000000000000000000000000008A +:1086F000000000000000000000000000000000007A +:108700000000000000000000000000000000000069 +:108710000000000000000000000000000000000059 +:108720000000000000000000000000000000000049 +:108730000000000000000000000000000000000039 +:108740000000000000000000000000000000000029 +:108750000000000000000000000000000000000019 +:108760000000000000000000000000000000000009 +:1087700000000000000000000000000000000000F9 +:1087800000000000000000000000000000000000E9 +:1087900000000000000000000000000000000000D9 +:1087A00000000000000000000000000000000000C9 +:1087B00000000000000000000000000000000000B9 +:1087C00000000000000000000000000000000000A9 +:1087D0000000000000000000000000000000000099 +:1087E0000000000000000000000000000000000089 +:1087F0000000000000000000000000000000000079 +:108800000000000000000000000000000000000068 +:108810000000000000000000000000000000000058 +:108820000000000000000000000000000000000048 +:108830000000000000000000000000000000000038 +:108840000000000000000000000000000000000028 +:108850000000000000000000000000000000000018 +:108860000000000000000000000000000000000008 +:1088700000000000000000000000000000000000F8 +:1088800000000000000000000000000000000000E8 +:1088900000000000000000000000000000000000D8 +:1088A00000000000000000000000000000000000C8 +:1088B00000000000000000000000000000000000B8 +:1088C00000000000000000000000000000000000A8 +:1088D0000000000000000000000000000000000098 +:1088E0000000000000000000000000000000000088 +:1088F0000000000000000000000000000000000078 +:108900000000000000000000000000000000000067 +:108910000000000000000000000000000000000057 +:108920000000000000000000000000000000000047 +:108930000000000000000000000000000000000037 +:108940000000000000000000000000000000000027 +:108950000000000000000000000000000000000017 +:108960000000000000000000000000000000000007 +:1089700000000000000000000000000000000000F7 +:1089800000000000000000000000000000000000E7 +:1089900000000000000000000000000000000000D7 +:1089A00000000000000000000000000000000000C7 +:1089B00000000000000000000000000000000000B7 +:1089C00000000000000000000000000000000000A7 +:1089D0000000000000000000000000000000000097 +:1089E0000000000000000000000000000000000087 +:1089F0000000000000000000000000000000000077 +:108A00000000000000000000000000000000000066 +:108A10000000000000000000000000000000000056 +:108A20000000000000000000000000000000000046 +:108A30000000000000000000000000000000000036 +:108A40000000000000000000000000000000000026 +:108A50000000000000000000000000000000000016 +:108A60000000000000000000000000000000000006 +:108A700000000000000000000000000000000000F6 +:108A800000000000000000000000000000000000E6 +:108A900000000000000000000000000000000000D6 +:108AA00000000000000000000000000000000000C6 +:108AB00000000000000000000000000000000000B6 +:108AC00000000000000000000000000000000000A6 +:108AD0000000000000000000000000000000000096 +:108AE0000000000000000000000000000000000086 +:108AF0000000000000000000000000000000000076 +:108B00000000000000000000000000000000000065 +:108B10000000000000000000000000000000000055 +:108B20000000000000000000000000000000000045 +:108B30000000000000000000000000000000000035 +:108B40000000000000000000000000000000000025 +:108B50000000000000000000000000000000000015 +:108B60000000000000000000000000000000000005 +:108B700000000000000000000000000000000000F5 +:108B800000000000000000000000000000000000E5 +:108B900000000000000000000000000000000000D5 +:108BA00000000000000000000000000000000000C5 +:108BB00000000000000000000000000000000000B5 +:108BC00000000000000000000000000000000000A5 +:108BD0000000000000000000000000000000000095 +:108BE0000000000000000000000000000000000085 +:108BF0000000000000000000000000000000000075 +:108C00000000000000000000000000000000000064 +:108C10000000000000000000000000000000000054 +:108C20000000000000000000000000000000000044 +:108C30000000000000000000000000000000000034 +:108C40000000000000000000000000000000000024 +:108C50000000000000000000000000000000000014 +:108C60000000000000000000000000000000000004 +:108C700000000000000000000000000000000000F4 +:108C800000000000000000000000000000000000E4 +:108C900000000000000000000000000000000000D4 +:108CA00000000000000000000000000000000000C4 +:108CB00000000000000000000000000000000000B4 +:108CC00000000000000000000000000000000000A4 +:108CD0000000000000000000000000000000000094 +:108CE0000000000000000000000000000000000084 +:108CF0000000000000000000000000000000000074 +:108D00000000000000000000000000000000000063 +:108D10000000000000000000000000000000000053 +:108D20000000000000000000000000000000000043 +:108D30000000000000000000000000000000000033 +:108D40000000000000000000000000000000000023 +:108D50000000000000000000000000000000000013 +:108D60000000000000000000000000000000000003 +:108D700000000000000000000000000000000000F3 +:108D800000000000000000000000000000000000E3 +:108D900000000000000000000000000000000000D3 +:108DA00000000000000000000000000000000000C3 +:108DB00000000000000000000000000000000000B3 +:108DC00000000000000000000000000000000000A3 +:108DD0000000000000000000000000000000000093 +:108DE0000000000000000000000000000000000083 +:108DF0000000000000000000000000000000000073 +:108E00000000000000000000000000000000000062 +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F20000000000000000000000000000000000041 +:108F30000000000000000000000000000000000031 +:108F40000000000000000000000000000000000021 +:108F50000000000000000000000000000000000011 +:108F60000000000000000000000000000000000001 +:108F700000000000000000000000000000000000F1 +:108F800000000000000000000000000000000000E1 +:108F900000000000000000000000000000000000D1 +:108FA00000000000000000000000000000000000C1 +:108FB00000000000000000000000000000000000B1 +:108FC00000000000000000000000000000000000A1 +:108FD0000000000000000000000000000000000091 +:108FE0000000000000000000000000000000000081 +:108FF0000000000000000000000000000000000071 +:109000000000000000000000000000000000000060 +:109010000000000000000000000000000000000050 +:109020000000000000000000000000000000000040 +:109030000000000000000000000000000000000030 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0000000000000000000000000000000000070 +:10910000000000000000000000000000000000005F +:10911000000000000000000000000000000000004F +:10912000000000000000000000000000000000003F +:10913000000000000000000000000000000000002F +:10914000000000000000000000000000000000001F +:10915000000000000000000000000000000000000F +:1091600000000000000000000000000000000000FF +:1091700000000000000000000000000000000000EF +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B00000000000000000000000000000000000AF +:1091C000000000000000000000000000000000009F +:1091D000000000000000000000000000000000008F +:1091E000000000000000000000000000000000007F +:1091F000000000000000000000000000000000006F +:10920000000000000000000000000000000000005E +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000000000000000000000E +:1092600000000000000000000000000000000000FE +:1092700000000000000000000000000000000000EE +:1092800000000000000000000000000000000000DE +:1092900000000000000000000000000000000000CE +:1092A00000000000000000000000000000000000BE +:1092B00000000000000000000000000000000000AE +:1092C000000000000000000000000000000000009E +:1092D000000000000000000000000000000000008E +:1092E000000000000000000000000000000000007E +:1092F000000000000000000000000000000000006E +:10930000000000000000000000000000000000005D +:10931000000000000000000000000000000000004D +:10932000000000000000000000000000000000003D +:10933000000000000000000000000000000000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:1093800000000000000000000000000000000000DD +:1093900000000000000000000000000000000000CD +:1093A00000000000000000000000000000000000BD +:1093B00000000000000000000000000000000000AD +:1093C000000000000000000000000000000000009D +:1093D000000000000000000000000000000000008D +:1093E000000000000000000000000000000000007D +:1093F000000000000000000000000000000000006D +:10940000000000000000000000000000000000005C +:10941000000000000000000000000000000000004C +:10942000000000000000000000000000000000003C +:10943000000000000000000000000000000000002C +:10944000000000000000000000000000000000001C +:10945000000000000000000000000000000000000C +:1094600000000000000000000000000000000000FC +:1094700000000000000000000000000000000000EC +:1094800000000000000000000000000000000000DC +:1094900000000000000000000000000000000000CC +:1094A00000000000000000000000000000000000BC +:1094B00000000000000000000000000000000000AC +:1094C000000000000000000000000000000000009C +:1094D000000000000000000000000000000000008C +:1094E000000000000000000000000000000000007C +:1094F000000000000000000000000000000000006C +:10950000000000000000000000000000000000005B +:10951000000000000000000000000000000000004B +:10952000000000000000000000000000000000003B +:10953000000000000000000000000000000000002B +:10954000000000000000000000000000000000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:1095800000000000000000000000000000000000DB +:1095900000000000000000000000000000000000CB +:1095A00000000000000000000000000000000000BB +:1095B00000000000000000000000000000000000AB +:1095C000000000000000000000000000000000009B +:1095D000000000000000000000000000000000008B +:1095E000000000000000000000000000000000007B +:1095F000000000000000000000000000000000006B +:10960000000000000000000000000000000000005A +:10961000000000000000000000000000000000004A +:10962000000000000000000000000000000000003A +:10963000000000000000000000000000000000002A +:10964000000000000000000000000000000000001A +:10965000000000000000000000000000000000000A +:1096600000000000000000000000000000000000FA +:1096700000000000000000000000000000000000EA +:1096800000000000000000000000000000000000DA +:1096900000000000000000000000000000000000CA +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000000000009A +:1096D000000000000000000000000000000000008A +:1096E000000000000000000000000000000000007A +:1096F000000000000000000000000000000000006A +:109700000000000000000000000000000000000059 +:109710000000000000000000000000000000000049 +:109720000000000000000000000000000000000039 +:109730000000000000000000000000000000000029 +:109740000000000000000000000000000000000019 +:109750000000000000000000000000000000000009 +:1097600000000000000000000000000000000000F9 +:1097700000000000000000000000000000000000E9 +:1097800000000000000000000000000000000000D9 +:1097900000000000000000000000000000000000C9 +:1097A00000000000000000000000000000000000B9 +:1097B00000000000000000000000000000000000A9 +:1097C0000000000000000000000000000000000099 +:1097D0000000000000000000000000000000000089 +:1097E0000000000000000000000000000000000079 +:1097F0000000000000000000000000000000000069 +:109800000000000000000000000000000000000058 +:109810000000000000000000000000000000000048 +:109820000000000000000000000000000000000038 +:109830000000000000000000000000000000000028 +:109840000000000000000000000000000000000018 +:109850000000000000000000000000000000000008 +:1098600000000000000000000000000000000000F8 +:1098700000000000000000000000000000000000E8 +:1098800000000000000000000000000000000000D8 +:1098900000000000000000000000000000000000C8 +:1098A00000000000000000000000000000000000B8 +:1098B00000000000000000000000000000000000A8 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000000000000000000088 +:1098E0000000000000000000000000000000000078 +:1098F0000000000000000000000000000000000068 +:109900000000000000000000000000000000000057 +:109910000000000000000000000000000000000047 +:109920000000000000000000000000000000000037 +:109930000000000000000000000000000000000027 +:109940000000000000000000000000000000000017 +:109950000000000000000000000000000000000007 +:1099600000000000000000000000000000000000F7 +:1099700000000000000000000000000000000000E7 +:1099800000000000000000000000000000000000D7 +:1099900000000000000000000000000000000000C7 +:1099A00000000000000000000000000000000000B7 +:1099B00000000000000000000000000000000000A7 +:1099C0000000000000000000000000000000000097 +:1099D0000000000000000000000000000000000087 +:1099E0000000000000000000000000000000000077 +:1099F0000000000000000000000000000000000067 +:109A00000000000000000000000000000000000056 +:109A10000000000000000000000000000000000046 +:109A20000000000000000000000000000000000036 +:109A30000000000000000000000000000000000026 +:109A40000000000000000000000000000000000016 +:109A50000000000000000000000000000000000006 +:109A600000000000000000000000000000000000F6 +:109A700000000000000000000000000000000000E6 +:109A800000000000000000000000000000000000D6 +:109A900000000000000000000000000000000000C6 +:109AA00000000000000000000000000000000000B6 +:109AB00000000000000000000000000000000000A6 +:109AC0000000000000000000000000000000000096 +:109AD0000000000000000000000000000000000086 +:109AE0000000000000000000000000000000000076 +:109AF0000000000000000000000000000000000066 +:109B00000000000000000000000000000000000055 +:109B10000000000000000000000000000000000045 +:109B20000000000000000000000000000000000035 +:109B30000000000000000000000000000000000025 +:109B40000000000000000000000000000000000015 +:109B50000000000000000000000000000000000005 +:109B600000000000000000000000000000000000F5 +:109B700000000000000000000000000000000000E5 +:109B800000000000000000000000000000000000D5 +:109B900000000000000000000000000000000000C5 +:109BA00000000000000000000000000000000000B5 +:109BB00000000000000000000000000000000000A5 +:109BC0000000000000000000000000000000000095 +:109BD0000000000000000000000000000000000085 +:109BE0000000000000000000000000000000000075 +:109BF0000000000000000000000000000000000065 +:109C00000000000000000000000000000000000054 +:109C10000000000000000000000000000000000044 +:109C20000000000000000000000000000000000034 +:109C30000000000000000000000000000000000024 +:109C40000000000000000000000000000000000014 +:109C50000000000000000000000000000000000004 +:109C600000000000000000000000000000000000F4 +:109C700000000000000000000000000000000000E4 +:109C800000000000000000000000000000000000D4 +:109C900000000000000000000000000000000000C4 +:109CA00000000000000000000000000000000000B4 +:109CB00000000000000000000000000000000000A4 +:109CC0000000000000000000000000000000000094 +:109CD0000000000000000000000000000000000084 +:109CE0000000000000000000000000000000000074 +:109CF0000000000000000000000000000000000064 +:109D00000000000000000000000000000000000053 +:109D10000000000000000000000000000000000043 +:109D20000000000000000000000000000000000033 +:109D30000000000000000000000000000000000023 +:109D40000000000000000000000000000000000013 +:109D50000000000000000000000000000000000003 +:109D600000000000000000000000000000000000F3 +:109D700000000000000000000000000000000000E3 +:109D800000000000000000000000000000000000D3 +:109D900000000000000000000000000000000000C3 +:109DA00000000000000000000000000000000000B3 +:109DB00000000000000000000000000000000000A3 +:109DC0000000000000000000000000000000000093 +:109DD0000000000000000000000000000000000083 +:109DE0000000000000000000000000000000000073 +:109DF0000000000000000000000000000000000063 +:109E00000000000000000000000000000000000052 +:109E10000000000000000000000000000000000042 +:109E20000000000000000000000000000000000032 +:109E30000000000000000000000000000000000022 +:109E40000000000000000000000000000000000012 +:109E50000000000000000000000000000000000002 +:109E600000000000000000000000000000000000F2 +:109E700000000000000000000000000000000000E2 +:109E800000000000000000000000000000000000D2 +:109E900000000000000000000000000000000000C2 +:109EA00000000000000000000000000000000000B2 +:109EB00000000000000000000000000000000000A2 +:109EC0000000000000000000000000000000000092 +:109ED0000000000000000000000000000000000082 +:109EE0000000000000000000000000000000000072 +:109EF0000000000000000000000000000000000062 +:109F00000000000000000000000000000000000051 +:109F10000000000000000000000000000000000041 +:109F20000000000000000000000000000000000031 +:109F30000000000000000000000000000000000021 +:109F40000000000000000000000000000000000011 +:109F50000000000000000000000000000000000001 +:109F600000000000000000000000000000000000F1 +:109F700000000000000000000000000000000000E1 +:109F800000000000000000000000000000000000D1 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB00000000000000000000000000000000000A1 +:109FC0000000000000000000000000000000000091 +:109FD0000000000000000000000000000000000081 +:109FE0000000000000000000000000000000000071 +:109FF0000000000000000000000000000000000061 +:10A000000000000000000000000000000000000050 +:10A010000000000000000000000000000000000040 +:10A020000000000000000000000000000000000030 +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C0000000000000000000000000000000000090 +:10A0D0000000000000000000000000000000000080 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000001F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E2200000000000000000000000000000000000EE +:10E2300000000000000000000000000000000000DE +:10E2400000000000000000000000000000000000CE +:10E2500000000000000000000000000000000000BE +:10E2600000000000000000000000000000000000AE +:10E27000000000000000000000000000000000009E +:10E28000000000000000000000000000000000008E +:10E29000000000000000000000000000000000007E +:10E2A000000000000000000000000000000000006E +:10E2B000000000000000000000000000000000005E +:10E2C000000000000000000000000000000000004E +:10E2D000000000000000000000000000000000003E +:10E2E000000000000000000000000000000000002E +:10E2F000000000000000000000000000000000001E +:10E30000000000000000000000000000000000000D +:10E3100000000000000000000000000000000000FD +:10E3200000000000000000000000000000000000ED +:10E3300000000000000000000000000000000000DD +:10E3400000000000000000000000000000000000CD +:10E3500000000000000000000000000000000000BD +:10E3600000000000000000000000000000000000AD +:10E37000000000000000000000000000000000009D +:10E38000000000000000000000000000000000008D +:10E39000000000000000000000000000000000007D +:10E3A000000000000000000000000000000000006D +:10E3B000000000000000000000000000000000005D +:10E3C000000000000000000000000000000000004D +:10E3D000000000000000000000000000000000003D +:10E3E000000000000000000000000000000000002D +:10E3F000000000000000000000000000000000001D +:10E40000000000000000000000000000000000000C +:10E4100000000000000000000000000000000000FC +:10E4200000000000000000000000000000000000EC +:10E4300000000000000000000000000000000000DC +:10E4400000000000000000000000000000000000CC +:10E4500000000000000000000000000000000000BC +:10E4600000000000000000000000000000000000AC +:10E47000000000000000000000000000000000009C +:10E48000000000000000000000000000000000008C +:10E49000000000000000000000000000000000007C +:10E4A000000000000000000000000000000000006C +:10E4B000000000000000000000000000000000005C +:10E4C000000000000000000000000000000000004C +:10E4D000000000000000000000000000000000003C +:10E4E000000000000000000000000000000000002C +:10E4F000000000000000000000000000000000001C +:10E50000000000000000000000000000000000000B +:10E5100000000000000000000000000000000000FB +:10E5200000000000000000000000000000000000EB +:10E5300000000000000000000000000000000000DB +:10E5400000000000000000000000000000000000CB +:10E5500000000000000000000000000000000000BB +:10E5600000000000000000000000000000000000AB +:10E57000000000000000000000000000000000009B +:10E58000000000000000000000000000000000008B +:10E59000000000000000000000000000000000007B +:10E5A000000000000000000000000000000000006B +:10E5B000000000000000000000000000000000005B +:10E5C000000000000000000000000000000000004B +:10E5D000000000000000000000000000000000003B +:10E5E000000000000000000000000000000000002B +:10E5F000000000000000000000000000000000001B +:10E60000000000000000000000000000000000000A +:10E6100000000000000000000000000000000000FA +:10E6200000000000000000000000000000000000EA +:10E6300000000000000000000000000000000000DA +:10E6400000000000000000000000000000000000CA +:10E6500000000000000000000000000000000000BA +:10E6600000000000000000000000000000000000AA +:10E67000000000000000000000000000000000009A +:10E68000000000000000000000000000000000008A +:10E69000000000000000000000000000000000007A +:10E6A000000000000000000000000000000000006A +:10E6B000000000000000000000000000000000005A +:10E6C000000000000000000000000000000000004A +:10E6D000000000000000000000000000000000003A +:10E6E000000000000000000000000000000000002A +:10E6F000000000000000000000000000000000001A +:10E700000000000000000000000000000000000009 +:10E7100000000000000000000000000000000000F9 +:10E7200000000000000000000000000000000000E9 +:10E7300000000000000000000000000000000000D9 +:10E7400000000000000000000000000000000000C9 +:10E7500000000000000000000000000000000000B9 +:10E7600000000000000000000000000000000000A9 +:10E770000000000000000000000000000000000099 +:10E780000000000000000000000000000000000089 +:10E790000000000000000000000000000000000079 +:10E7A0000000000000000000000000000000000069 +:10E7B0000000000000000000000000000000000059 +:10E7C0000000000000000000000000000000000049 +:10E7D0000000000000000000000000000000000039 +:10E7E0000000000000000000000000000000000029 +:10E7F0000000000000000000000000000000000019 +:10E800000000000000000000000000000000000008 +:10E8100000000000000000000000000000000000F8 +:10E8200000000000000000000000000000000000E8 +:10E8300000000000000000000000000000000000D8 +:10E8400000000000000000000000000000000000C8 +:10E8500000000000000000000000000000000000B8 +:10E8600000000000000000000000000000000000A8 +:10E870000000000000000000000000000000000098 +:10E880000000000000000000000000000000000088 +:10E890000000000000000000000000000000000078 +:10E8A0000000000000000000000000000000000068 +:10E8B0000000000000000000000000000000000058 +:10E8C0000000000000000000000000000000000048 +:10E8D0000000000000000000000000000000000038 +:10E8E0000000000000000000000000000000000028 +:10E8F0000000000000000000000000000000000018 +:10E900000000000000000000000000000000000007 +:10E9100000000000000000000000000000000000F7 +:10E9200000000000000000000000000000000000E7 +:10E9300000000000000000000000000000000000D7 +:10E9400000000000000000000000000000000000C7 +:10E9500000000000000000000000000000000000B7 +:10E9600000000000000000000000000000000000A7 +:10E970000000000000000000000000000000000097 +:10E980000000000000000000000000000000000087 +:10E990000000000000000000000000000000000077 +:10E9A0000000000000000000000000000000000067 +:10E9B0000000000000000000000000000000000057 +:10E9C0000000000000000000000000000000000047 +:10E9D0000000000000000000000000000000000037 +:10E9E0000000000000000000000000000000000027 +:10E9F0000000000000000000000000000000000017 +:10EA00000000000000000000000000000000000006 +:10EA100000000000000000000000000000000000F6 +:10EA200000000000000000000000000000000000E6 +:10EA300000000000000000000000000000000000D6 +:10EA400000000000000000000000000000000000C6 +:10EA500000000000000000000000000000000000B6 +:10EA600000000000000000000000000000000000A6 +:10EA70000000000000000000000000000000000096 +:10EA80000000000000000000000000000000000086 +:10EA90000000000000000000000000000000000076 +:10EAA0000000000000000000000000000000000066 +:10EAB0000000000000000000000000000000000056 +:10EAC0000000000000000000000000000000000046 +:10EAD0000000000000000000000000000000000036 +:10EAE0000000000000000000000000000000000026 +:10EAF0000000000000000000000000000000000016 +:10EB00000000000000000000000000000000000005 +:10EB100000000000000000000000000000000000F5 +:10EB200000000000000000000000000000000000E5 +:10EB300000000000000000000000000000000000D5 +:10EB400000000000000000000000000000000000C5 +:10EB500000000000000000000000000000000000B5 +:10EB600000000000000000000000000000000000A5 +:10EB70000000000000000000000000000000000095 +:10EB80000000000000000000000000000000000085 +:10EB90000000000000000000000000000000000075 +:10EBA0000000000000000000000000000000000065 +:10EBB0000000000000000000000000000000000055 +:10EBC0000000000000000000000000000000000045 +:10EBD0000000000000000000000000000000000035 +:10EBE0000000000000000000000000000000000025 +:10EBF0000000000000000000000000000000000015 +:10EC00000000000000000000000000000000000004 +:10EC100000000000000000000000000000000000F4 +:10EC200000000000000000000000000000000000E4 +:10EC300000000000000000000000000000000000D4 +:10EC400000000000000000000000000000000000C4 +:10EC500000000000000000000000000000000000B4 +:10EC600000000000000000000000000000000000A4 +:10EC70000000000000000000000000000000000094 +:10EC80000000000000000000000000000000000084 +:10EC90000000000000000000000000000000000074 +:10ECA0000000000000000000000000000000000064 +:10ECB0000000000000000000000000000000000054 +:10ECC0000000000000000000000000000000000044 +:10ECD0000000000000000000000000000000000034 +:10ECE0000000000000000000000000000000000024 +:10ECF0000000000000000000000000000000000014 +:10ED00000000000000000000000000000000000003 +:10ED100000000000000000000000000000000000F3 +:10ED200000000000000000000000000000000000E3 +:10ED300000000000000000000000000000000000D3 +:10ED400000000000000000000000000000000000C3 +:10ED500000000000000000000000000000000000B3 +:10ED600000000000000000000000000000000000A3 +:10ED70000000000000000000000000000000000093 +:10ED80000000000000000000000000000000000083 +:10ED90000000000000000000000000000000000073 +:10EDA0000000000000000000000000000000000063 +:10EDB0000000000000000000000000000000000053 +:10EDC0000000000000000000000000000000000043 +:10EDD0000000000000000000000000000000000033 +:10EDE0000000000000000000000000000000000023 +:10EDF0000000000000000000000000000000000013 +:10EE00000000000000000000000000000000000002 +:10EE100000000000000000000000000000000000F2 +:10EE200000000000000000000000000000000000E2 +:10EE300000000000000000000000000000000000D2 +:10EE400000000000000000000000000000000000C2 +:10EE500000000000000000000000000000000000B2 +:10EE600000000000000000000000000000000000A2 +:10EE70000000000000000000000000000000000092 +:10EE80000000000000000000000000000000000082 +:10EE90000000000000000000000000000000000072 +:10EEA0000000000000000000000000000000000062 +:10EEB0000000000000000000000000000000000052 +:10EEC0000000000000000000000000000000000042 +:10EED0000000000000000000000000000000000032 +:10EEE0000000000000000000000000000000000022 +:10EEF0000000000000000000000000000000000012 +:10EF00000000000000000000000000000000000001 +:10EF100000000000000000000000000000000000F1 +:10EF200000000000000000000000000000000000E1 +:10EF300000000000000000000000000000000000D1 +:10EF400000000000000000000000000000000000C1 +:10EF500000000000000000000000000000000000B1 +:10EF600000000000000000000000000000000000A1 +:10EF70000000000000000000000000000000000091 +:10EF80000000000000000000000000000000000081 +:10EF90000000000000000000000000000000000071 +:10EFA0000000000000000000000000000000000061 +:10EFB0000000000000000000000000000000000051 +:10EFC0000000000000000000000000000000000041 +:10EFD0000000000000000000000000000000000031 +:10EFE0000000000000000000000000000000000021 +:10EFF0000000000000000000000000000000000011 +:10F000000000000000000000000000000000000000 +:10F0100000000000000000000000000000000000F0 +:10F0200000000000000000000000000000000000E0 +:10F0300000000000000000000000000000000000D0 +:10F0400000000000000000000000000000000000C0 +:10F0500000000000000000000000000000000000B0 +:10F0600000000000000000000000000000000000A0 +:10F070000000000000000000000000000000000090 +:10F080000000000000000000000000000000000080 +:10F090000000000000000000000000000000000070 +:10F0A0000000000000000000000000000000000060 +:10F0B0000000000000000000000000000000000050 +:10F0C0000000000000000000000000000000000040 +:10F0D0000000000000000000000000000000000030 +:10F0E0000000000000000000000000000000000020 +:10F0F0000000000000000000000000000000000010 +:10F1000000000000000000000000000000000000FF +:10F1100000000000000000000000000000000000EF +:10F1200000000000000000000000000000000000DF +:10F1300000000000000000000000000000000000CF +:10F1400000000000000000000000000000000000BF +:10F1500000000000000000000000000000000000AF +:10F16000000000000000000000000000000000009F +:10F17000000000000000000000000000000000008F +:10F18000000000000000000000000000000000007F +:10F19000000000000000000000000000000000006F +:10F1A000000000000000000000000000000000005F +:10F1B000000000000000000000000000000000004F +:10F1C000000000000000000000000000000000003F +:10F1D000000000000000000000000000000000002F +:10F1E000000000000000000000000000000000001F +:10F1F000000000000000000000000000000000000F +:10F2000000000000000000000000000000000000FE +:10F2100000000000000000000000000000000000EE +:10F2200000000000000000000000000000000000DE +:10F2300000000000000000000000000000000000CE +:10F2400000000000000000000000000000000000BE +:10F2500000000000000000000000000000000000AE +:10F26000000000000000000000000000000000009E +:10F27000000000000000000000000000000000008E +:10F28000000000000000000000000000000000007E +:10F29000000000000000000000000000000000006E +:10F2A000000000000000000000000000000000005E +:10F2B000000000000000000000000000000000004E +:10F2C000000000000000000000000000000000003E +:10F2D000000000000000000000000000000000002E +:10F2E000000000000000000000000000000000001E +:10F2F000000000000000000000000000000000000E +:10F3000000000000000000000000000000000000FD +:10F3100000000000000000000000000000000000ED +:10F3200000000000000000000000000000000000DD +:10F3300000000000000000000000000000000000CD +:10F3400000000000000000000000000000000000BD +:10F3500000000000000000000000000000000000AD +:10F36000000000000000000000000000000000009D +:10F37000000000000000000000000000000000008D +:10F38000000000000000000000000000000000007D +:10F39000000000000000000000000000000000006D +:10F3A000000000000000000000000000000000005D +:10F3B000000000000000000000000000000000004D +:10F3C000000000000000000000000000000000003D +:10F3D000000000000000000000000000000000002D +:10F3E000000000000000000000000000000000001D +:10F3F000000000000000000000000000000000000D +:10F4000000000000000000000000000000000000FC +:10F4100000000000000000000000000000000000EC +:10F4200000000000000000000000000000000000DC +:10F4300000000000000000000000000000000000CC +:10F4400000000000000000000000000000000000BC +:10F4500000000000000000000000000000000000AC +:10F46000000000000000000000000000000000009C +:10F47000000000000000000000000000000000008C +:10F48000000000000000000000000000000000007C +:10F49000000000000000000000000000000000006C +:10F4A000000000000000000000000000000000005C +:10F4B000000000000000000000000000000000004C +:10F4C000000000000000000000000000000000003C +:10F4D000000000000000000000000000000000002C +:10F4E000000000000000000000000000000000001C +:10F4F000000000000000000000000000000000000C +:10F5000000000000000000000000000000000000FB +:10F5100000000000000000000000000000000000EB +:10F5200000000000000000000000000000000000DB +:10F5300000000000000000000000000000000000CB +:10F5400000000000000000000000000000000000BB +:10F5500000000000000000000000000000000000AB +:10F56000000000000000000000000000000000009B +:10F57000000000000000000000000000000000008B +:10F58000000000000000000000000000000000007B +:10F59000000000000000000000000000000000006B +:10F5A000000000000000000000000000000000005B +:10F5B000000000000000000000000000000000004B +:10F5C000000000000000000000000000000000003B +:10F5D000000000000000000000000000000000002B +:10F5E000000000000000000000000000000000001B +:10F5F000000000000000000000000000000000000B +:10F6000000000000000000000000000000000000FA +:10F6100000000000000000000000000000000000EA +:10F6200000000000000000000000000000000000DA +:10F6300000000000000000000000000000000000CA +:10F6400000000000000000000000000000000000BA +:10F6500000000000000000000000000000000000AA +:10F66000000000000000000000000000000000009A +:10F67000000000000000000000000000000000008A +:10F68000000000000000000000000000000000007A +:10F69000000000000000000000000000000000006A +:10F6A000000000000000000000000000000000005A +:10F6B000000000000000000000000000000000004A +:10F6C000000000000000000000000000000000003A +:10F6D000000000000000000000000000000000002A +:10F6E000000000000000000000000000000000001A +:10F6F000000000000000000000000000000000000A +:10F7000000000000000000000000000000000000F9 +:10F7100000000000000000000000000000000000E9 +:10F7200000000000000000000000000000000000D9 +:10F7300000000000000000000000000000000000C9 +:10F7400000000000000000000000000000000000B9 +:10F7500000000000000000000000000000000000A9 +:10F760000000000000000000000000000000000099 +:10F770000000000000000000000000000000000089 +:10F780000000000000000000000000000000000079 +:10F790000000000000000000000000000000000069 +:10F7A0000000000000000000000000000000000059 +:10F7B0000000000000000000000000000000000049 +:10F7C0000000000000000000000000000000000039 +:10F7D0000000000000000000000000000000000029 +:10F7E0000000000000000000000000000000000019 +:10F7F0000000000000000000000000000000000009 +:10F8000000000000000000000000000000000000F8 +:10F8100000000000000000000000000000000000E8 +:10F8200000000000000000000000000000000000D8 +:10F8300000000000000000000000000000000000C8 +:10F8400000000000000000000000000000000000B8 +:10F8500000000000000000000000000000000000A8 +:10F860000000000000000000000000000000000098 +:10F870000000000000000000000000000000000088 +:10F880000000000000000000000000000000000078 +:10F890000000000000000000000000000000000068 +:10F8A0000000000000000000000000000000000058 +:10F8B0000000000000000000000000000000000048 +:10F8C0000000000000000000000000000000000038 +:10F8D0000000000000000000000000000000000028 +:10F8E0000000000000000000000000000000000018 +:10F8F0000000000000000000000000000000000008 +:10F9000000000000000000000000000000000000F7 +:10F9100000000000000000000000000000000000E7 +:10F9200000000000000000000000000000000000D7 +:10F9300000000000000000000000000000000000C7 +:10F9400000000000000000000000000000000000B7 +:10F9500000000000000000000000000000000000A7 +:10F960000000000000000000000000000000000097 +:10F970000000000000000000000000000000000087 +:10F980000000000000000000000000000000000077 +:10F990000000000000000000000000000000000067 +:10F9A0000000000000000000000000000000000057 +:10F9B0000000000000000000000000000000000047 +:10F9C0000000000000000000000000000000000037 +:10F9D0000000000000000000000000000000000027 +:10F9E0000000000000000000000000000000000017 +:10F9F0000000000000000000000000000000000007 +:10FA000000000000000000000000000000000000F6 +:10FA100000000000000000000000000000000000E6 +:10FA200000000000000000000000000000000000D6 +:10FA300000000000000000000000000000000000C6 +:10FA400000000000000000000000000000000000B6 +:10FA500000000000000000000000000000000000A6 +:10FA60000000000000000000000000000000000096 +:10FA70000000000000000000000000000000000086 +:10FA80000000000000000000000000000000000076 +:10FA90000000000000000000000000000000000066 +:10FAA0000000000000000000000000000000000056 +:10FAB0000000000000000000000000000000000046 +:10FAC0000000000000000000000000000000000036 +:10FAD0000000000000000000000000000000000026 +:10FAE0000000000000000000000000000000000016 +:10FAF0000000000000000000000000000000000006 +:10FB000000000000000000000000000000000000F5 +:10FB100000000000000000000000000000000000E5 +:10FB200000000000000000000000000000000000D5 +:10FB300000000000000000000000000000000000C5 +:10FB400000000000000000000000000000000000B5 +:10FB500000000000000000000000000000000000A5 +:10FB60000000000000000000000000000000000095 +:10FB70000000000000000000000000000000000085 +:10FB80000000000000000000000000000000000075 +:10FB90000000000000000000000000000000000065 +:10FBA0000000000000000000000000000000000055 +:10FBB0000000000000000000000000000000000045 +:10FBC0000000000000000000000000000000000035 +:10FBD0000000000000000000000000000000000025 +:10FBE0000000000000000000000000000000000015 +:10FBF0000000000000000000000000000000000005 +:10FC000000000000000000000000000000000000F4 +:10FC100000000000000000000000000000000000E4 +:10FC200000000000000000000000000000000000D4 +:10FC300000000000000000000000000000000000C4 +:10FC400000000000000000000000000000000000B4 +:10FC500000000000000000000000000000000000A4 +:10FC60000000000000000000000000000000000094 +:10FC70000000000000000000000000000000000084 +:10FC80000000000000000000000000000000000074 +:10FC90000000000000000000000000000000000064 +:10FCA0000000000000000000000000000000000054 +:10FCB0000000000000000000000000000000000044 +:10FCC0000000000000000000000000000000000034 +:10FCD0000000000000000000000000000000000024 +:10FCE0000000000000000000000000000000000014 +:10FCF0000000000000000000000000000000000004 +:10FD000000000000000000000000000000000000F3 +:10FD100000000000000000000000000000000000E3 +:10FD200000000000000000000000000000000000D3 +:10FD300000000000000000000000000000000000C3 +:10FD400000000000000000000000000000000000B3 +:10FD500000000000000000000000000000000000A3 +:10FD60000000000000000000000000000000000093 +:10FD70000000000000000000000000000000000083 +:10FD80000000000000000000000000000000000073 +:10FD90000000000000000000000000000000000063 +:10FDA0000000000000000000000000000000000053 +:10FDB0000000000000000000000000000000000043 +:10FDC0000000000000000000000000000000000033 +:10FDD0000000000000000000000000000000000023 +:10FDE0000000000000000000000000000000000013 +:10FDF0000000000000000000000000000000000003 +:10FE000000000000000000000000000000000000F2 +:10FE100000000000000000000000000000000000E2 +:10FE200000000000000000000000000000000000D2 +:10FE300000000000000000000000000000000000C2 +:10FE400000000000000000000000000000000000B2 +:10FE500000000000000000000000000000000000A2 +:10FE60000000000000000000000000000000000092 +:10FE70000000000000000000000000000000000082 +:10FE80000000000000000000000000000000000072 +:10FE90000000000000000000000000000000000062 +:10FEA0000000000000000000000000000000000052 +:10FEB0000000000000000000000000000000000042 +:10FEC0000000000000000000000000000000000032 +:10FED0000000000000000000000000000000000022 +:10FEE0000000000000000000000000000000000012 +:10FEF0000000000000000000000000000000000002 +:10FF000000000000000000000000000000000000F1 +:10FF100000000000000000000000000000000000E1 +:10FF200000000000000000000000000000000000D1 +:10FF300000000000000000000000000000000000C1 +:10FF400000000000000000000000000000000000B1 +:10FF500000000000000000000000000000000000A1 +:10FF60000000000000000000000000000000000091 +:10FF70000000000000000000000000000000000081 +:10FF80000000000000000000000000000000000071 +:10FF90000000000000000000000000000000000061 +:10FFA0000000000000000000000000000000000051 +:10FFB0000000000000000000000000000000000041 +:10FFC0000000000000000000000000000000000031 +:10FFD0000000000000000000000000000000000021 +:10FFE0000000000000000000000000000000000011 +:10FFF0000000000000000000000000000000000001 +:020000040007F3 +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:100710000000FFFF7722FFFF4747000000000000B6 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000010058 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000010038 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000030016 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000100F8 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000100D7 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000010097 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000010077 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000030055 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000010037 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000010017 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000C0000000C000000CF +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000000000000056 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C300000000000000000000000000000000000B4 +:100C400000000000000000000000000000000000A4 +:100C50000000000000000000000000000000000094 +:100C60000000000000000000000000000000000084 +:100C70000000000000000000000000000000000074 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000FFFF06 +:100CF0003355FFFF553300000000000000000000E6 +:100D000000000000000000000000000000000000E3 +:100D100000000000000000000000000000000000D3 +:100D200000000000000000000000000000000000C3 +:100D300000000000000000000000000000000000B3 +:100D400000000000000000000000000000000000A3 +:100D50000000000000000000000000000000000093 +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000701900000004105400000000000072 +:100D90000000000000000000000000000000000053 +:100DA0000000B03900000004C04C0000000000004A +:100DB0000000000000000000000000000000000033 +:100DC0000000A039000020041054000000000000C2 +:100DD0000000000000000000000000000000000013 +:100DE0000000F0390000000480E70000000000006F +:100DF00000000000000000000000000000000000F3 +:100E00000000201900000080806400000000000045 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E40000000201D000020041044000000000000ED +:100E50000000000000000000000000000000000092 +:100E60000000B039000020041083000000000000E2 +:100E70000000000000000000000000000000000072 +:100E80000000E033000000011082000000000000BC +:100E90000000000000000000000000000000000052 +:100EA0000000C0220000000010450000000000000B +:100EB0000000000000000000000000000000000032 +:100EC0000000E03900000004808200000000000003 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F7000000000000000C028000080000087000082 +:100F80000000000000000000000000000000000061 +:100F9000000000000000C02800008000008B00005E +:100FA0000000000000000000000000000000000041 +:100FB000000000000000E0280000000000870000A2 +:100FC0000000000000000000000000000000000021 +:100FD000000000000000C02800008000089300000E +:100FE0000000000000000000000000000000000001 +:100FF000000000000000E0280000800008930000CE +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:10103000000000000000E0200000000000E30000CD +:1010400000000000000000000000000000000000A0 +:10105000000000000000C0280000000000E30000C5 +:101060000000000000000000000000000000000080 +:10107000000000000000C4210000400000E3000068 +:101080000000000000000000000000000000000060 +:10109000000000000000C4210000800100E3000007 +:1010A0000000000000000000000000000000000040 +:1010B000000000000000C4280000400008E3000019 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:1011000000000000000000000000000000000000DF +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:101160000000000000000000000000000003030079 +:10117000F3000013000303C1C3050003000713C3FA +:1011800081030000000000000000000000001300C8 +:10119000C3000007001303C5C30100030007138346 +:1011A0008323000000000000000000000000000099 +:1011B0000000000000000000000000000000C0C3AC +:1011C000F383000000000000000000000300C0D313 +:1011D000A387C801C3C5C3E3C3130000130080C3C2 +:1011E000C1C700000000000000000007000313005A +:1011F0000000000303A30003C90700030113A303B6 +:10120000C007000000000000000000000000000017 +:1012100000000000000000000000000000000000CE +:1012200000000000000000000000000000001300AB +:10123000C3000005000313C3C3010001000701E35D +:10124000D3030000000000000000000000030300C2 +:10125000CB00002300070383D3050007000303EB43 +:1012600081030000000000000000000000000000FA +:1012700000000000000000000000000003C080E348 +:1012800000CF0000000000000000A0008300C8C3E1 +:1012900003E300058000C1CFC3C3030003C8C083BC +:1012A000C7C5000000000000000000C000130000DF +:1012B000C000008013010307C3030000C507D3016A +:1012C000C0030000000000000000000004800000D7 +:1012D0000800000000000000000000000000000006 +:1012E00000000000000000000000000000000000FE +:1012F00000000000000000000000000000000000EE +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000000000000BD +:1013300000000000000000000000000000000000AD +:10134000000000000000000000000000000000009D +:10135000000000000000000000000000000000008D +:10136000000840000000000000080441A000000147 +:1013700000000028A0800000000000000000000025 +:1013800000000000A000000000000802050100802D +:101390000000000CC0000000000000000000000081 +:1013A000000000000000000000000000000000003D +:1013B0000000012800030000000000000000000001 +:1013C00004001040400200015004A010050000007D +:1013D00000008041302000000000000000000000FC +:1013E0000001000000000080080200012000000849 +:1013F00040000401010000000000000000000000A7 +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000A0000000000100A03001000149 +:10143000000020108080000000000000000000007C +:101440000008200040000000000040821000000062 +:1014500000010800A0800000000000000000000063 +:10146000000000000000000000000000000000007C +:10147000401080400000000000000000000000005C +:10148000C0000084401000008000500005212000B2 +:101490004000108202200000000000000000000454 +:1014A000000000008000000400014000050800006A +:1014B0002000800101080000000000000000100072 +:1014C0000004000000000000000000000000000018 +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:101540000000000000000000000040180001100032 +:1015500000000020043000200000001004000C00F7 +:1015600000000000001100200000000500790020AC +:101570000000000004302C000000000004381C2093 +:1015800000000010001014200000000004002C20B7 +:101590000000000004002C200000000004000E20C9 +:1015A0000000000000000000000080200039000062 +:1015B0000000000000080000080000000008000013 +:1015C0000800000004780C0000000005040008205A +:1015D00000000000040000000000000000280020BF +:1015E00000000000040000000000000000000000F7 +:1015F00000000000000000000000000000000000EB +:101600000000000000000000000000030478142027 +:10161000040000100000000000000000044800006A +:1016200000000010002C00200000000204482C20C4 +:101630000000001004003420080000100000210009 +:1016400000000000040808200000000004002C2016 +:1016500000000000007900200000000000380000B9 +:1016600000000000000000000000802004000000D6 +:101670000000001004000800000000100400AC008E +:101680000000000000004020000080200030010029 +:1016900008000000000900200000000000000020F9 +:1016A000000000000000000000000000000000003A +:1016B0000000A020004A008001100000000000008F +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:10174000E000104000000000020000E60100000080 +:10175000030080E401000000E04028060000800D46 +:1017600087002826010000800540902701000080A6 +:1017700007400E2601000000C041020600000000E4 +:10178000000000060000000000000006000000004D +:101790000000000600000000200000000000000023 +:1017A0002080802601000020E281208001000000CE +:1017B00062000083010000000000A0E40000800D32 +:1017C000070002E6010000A0010080E10000000027 +:1017D0002740002601000000C60080030000000032 +:1017E00000000000000000000000000000000000F9 +:1017F0000000000000000000000000000000008366 +:1018000001000046000000002000000600000080EB +:1018100000008087050000002301340600000082DC +:101820000000002000000000C00028C100000000EF +:10183000800080C405000000008022060000000037 +:101840000000000600000000E000000600000000AC +:10185000E00080040000000080018006000000001D +:1018600020002821010000002000022101000000CA +:1018700002002CC005000000E0001006050000007A +:1018800020001046000000202280002600000000FA +:101890002200002601000080E5001000000000008A +:1018A00000000000000008826010001000800000AE +:1018B0000000000000000000000000000000000028 +:1018C0000000000000000000000000000000000018 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F00000000000000000000000000000000000E8 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:10193000000000000800D920000000000810080086 +:101940000000000000000B00000000000000041078 +:1019500000000000080441000000000008043400FA +:1019600000000000008003000000000000020100F1 +:10197000000000000000640000000000000064009F +:1019800000000000000060000000000000010008EE +:101990000000000100004100000000000002800083 +:1019A0000000000004138000000000000800080090 +:1019B0000000000000040500000000000002081400 +:1019C0000000000008074000000000002800400060 +:1019D0000000000000000000000000000000000007 +:1019E00000000000000000000000000000000000F7 +:1019F000000000140C000C10000000000003182868 +:101A000000000000040208000000000020000400A4 +:101A1000000000140400100000000000008000001E +:101A200000000000108200000000000000800000A4 +:101A300000000000000000000000000000000000A6 +:101A40000000000000114000000000000000000045 +:101A50000000000100002008000000000000400815 +:101A60000000000000000100000000000001040070 +:101A7000000000010011200800000000080004041C +:101A80000000000004811000000000000001500868 +:101A900000000000000000000000200030000000F6 +:101AA0000200000000000000000000000000000034 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B2000000000000000808C83010C210000008078 +:101B300083012D07050000A080318C00050000A066 +:101B400080319CC00100800C832908200000000027 +:101B500082098CC001000020832988C00100000098 +:101B6000C60008030000800C800114030000000080 +:101B7000800110010000000080011503000000003A +:101B80000000800600008004020800C3010000007D +:101B9000E6009CC001000000E6009CC601000000B9 +:101BA000821120070000000006080804050000A0BC +:101BB000E00000C001000000632800C10100000037 +:101BC00022000007000000000000000000000000EC +:101BD0000000000000000000000000000000000005 +:101BE000000000000000808C81011C06000000A0A5 +:101BF0006100802100000000E6000C870100000069 +:101C000086009C000000800C80019DA00100000067 +:101C1000263194C0000000008628A00601000000C4 +:101C2000873122470000800C8001B60300000000CD +:101C300080011C070000000080291C00000000003B +:101C4000C000800400008004C208942400000080CA +:101C5000C13000C0000000208301820001000000AC +:101C6000830180000000800C82010C27000000002E +:101C7000220000C0010000808029A1030000008034 +:101C80008101200300000000000000000000068029 +:101C9000070000000001000000000000000000003C +:101CA0000000000000000000000000000000000034 +:101CB0000000000000000000000000000000000024 +:101CC0000000000000000000000000000000000014 +:101CD0000000000000000000000000000000000004 +:101CE00000000000000000000000000000000000F4 +:101CF00000000000000000000000000000000000E4 +:101D000000000000000000000000000000000000D3 +:101D100000000000000000000000000400000000BF +:101D20000000000000000C20000000000080000007 +:101D300000000000008011000000000400003C00D2 +:101D40000000000000000000080000000000340057 +:101D50000800000000003C20000000040000140007 +:101D60000000000000001000000000000000000063 +:101D700000000000040000000000802404020000B5 +:101D80000800000000003D000800000000003D00C9 +:101D9000080000000080002000004008040014201B +:101DA000000000000000000000000000000028000B +:101DB000080000000000000000000000000000001B +:101DC0000000000000000000000000000000000013 +:101DD000000000000000000000000004000095006A +:101DE0000000000000000000000000000000402093 +:101DF0000400000000001D000000001400000900A5 +:101E000000000000000001000800000000000000C9 +:101E10000400000000000C20040000040000140076 +:101E20000000000000003D200000000000800100D4 +:101E300000000000040000000000802404020000F4 +:101E400000000010048000000800000000000800EE +:101E50000400002000000D0000000024000000200D +:101E60000000000000011400080000100000000045 +:101E7000080000100000000000000000000000004A +:101E80000000000000000085C1000000000000000C +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F00000000080018001000000008088000000011 +:101F10000000000000000004100010120002101069 +:101F20001000100000000000000000001000202041 +:101F30000430100050500102000C04001008108002 +:101F40000000000004000000000410000000080071 +:101F50000000040000800004001004008400000061 +:101F6000200000000010082004008010200000283D +:101F700020000024900C00124838581420402008FB +:101F800004343428101480100000001402240000CF +:101F90000000041110001019801008128000009237 +:101FA000403808121020120A0010880C003102304C +:101FB000404000180C2490020100889120100C2051 +:101FC0000010002001002120010000000020000876 +:101FD00000000020000000000000000000001000D1 +:101FE0000010401040100010100010402000003081 +:101FF00000204010401001210020448034040030B3 +:10200000141000000000000800101022000810004A +:10201000040010000010000800080010000210006A +:1020200000000000105008100800080810100008F8 +:102030001824082818284008101C00000C18041048 +:1020400010084004585010002404303C0044303440 +:10205000003418000021101210001010201420125B +:10206000101004003C203202801010040C0200000A +:102070000000000000001201040420100C04000005 +:10208000110010000000000000000000000000002F +:102090000000000000000000000000000000000040 +:1020A0000000000000000000000000000000000030 +:1020B0000000000000000000000000000000000020 +:1020C0000000000000000000000000000000000010 +:1020D0000000000000000000000000000000000000 +:1020E00000000000000000090009000000000000DE +:1020F0000000000000000000240020000000040494 +:10210000000000000000000000000000000030009F +:1021100000501030000030000000000000000000FF +:102120003000700D003010001030707D000C000089 +:10213000290420B000007C707C0000BE080E300036 +:1021400070000C00000A0000090000000D300000C3 +:10215000B0000000090000000515000A090A00107F +:102160000505000C00000000355000300C14101064 +:102170000005000C9915300C2910901C9858901AE5 +:10218000000E0E0A0D500C1C2D5A1D2C0D10AC30DB +:102190000000000A093C0C2039B0200C08300C0467 +:1021A000501000300A0A0D040400100A001000004C +:1021B0000500000000000900000075000000000C90 +:1021C000000A0D0C000A0000000E00700D7A000ECF +:1021D000780C100000307030000D00100000000975 +:1021E00000B070190000000000000E7D0800900093 +:1021F0003500002030200C000800000400300000F2 +:10220000000810000000300000390000000000301D +:10221000000D3000000000001000B4390400000C74 +:10222000101E0808140000083408000830340C029E +:10223000BC3C063030085000341A360A0000191C25 +:10224000080030100D1A300EB019303539003D300D +:10225000003A0E29303A00001409300AB920200C47 +:10226000BC1000000000000000002050900070250D +:10227000900090B0300510050050000000000000F4 +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000000000000000000000000000000001E +:1022C000000000000000000000000000000000000E +:1022D00000000000010001000000000000000001FB +:1022E00000000000010000000000000000400000AD +:1022F00000000000304000000000004000400008E6 +:102300000000000C000C00000000000000000000B5 +:10231000000000000000202000200000303E080CDB +:1023200000000C00000000300050010009004000D7 +:1023300001040000400000000000040000300054D0 +:1023400040000400180000002000000000004000D1 +:102350000000100000000000000000201004000C2D +:102360001010104000201000001010306054300198 +:1023700001410A000C000000000005590000000C9B +:102380001A000058100000349020805000100404FF +:10239000010030040014043010100000041C200C54 +:1023A0000880203410000C100000001004003410CD +:1023B0000C000001001000000000003000000000D0 +:1023C00000000E000101000000003000300000009D +:1023D00000000030200000200020300030000C2CD5 +:1023E000012038313C0C00300400010001000000E5 +:1023F000000000380000000E08000000000000008F +:102400000000000000080000000000000030000094 +:10241000000000000000010000000020000020007B +:102420000000010008004C500000115130300A003B +:102430001004002C011400045A0000000088000C55 +:102440000000000E10083A045000040E203024044E +:1024500030000005048C0000000000000000040CA7 +:10246000040C0000040C00000C0000000000000040 +:10247000000000000000000000000000000000005C +:10248000000000000000000000000000000000004C +:10249000000000000000000000000000000000003C +:1024A000000000000000000000000000000000002C +:1024B000000000000000000000000000000000001C +:1024C000000000000000000000000000000000000C +:1024D00000000000000000000000000000200000DC +:1024E00000000000002000000000000000200000AC +:1024F000000000000000000020302000000000006C +:102500000040004000400000220040000000001099 +:1025100082400000000000108040000000000050D9 +:1025200000400004004000008240000080000000E5 +:102530000200000000000000000000000000000099 +:102540000040000000004200000040300000000099 +:10255000800000000040000080000000000000003B +:102560000000000020424020000000000000002089 +:102570000040200000400000000000000240000079 +:102580000000000000400040000440000000023055 +:1025900000000000004000000000000000000000FB +:1025A00000100000000000300000000002000000E9 +:1025B000000000000000000000008000000000009B +:1025C0000000000000000000020000000200020005 +:1025D00002000020000002000000000000000200D5 +:1025E00000000004000000000000400000000000A7 +:1025F00000000000000000000000000000000000DB +:10260000000000000000004000000000000000008A +:10261000000000000000000000000000004040300A +:102620000000240080004030000040000000002036 +:1026300000000000002000800004000000000000F6 +:10264000000000000000000000000000000000008A +:1026500000001000000C10800000000000000000CE +:102660000000000004000000000000000000000066 +:10267000000000000000000000000000000000005A +:10268000000000000000000000000000000000004A +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000000000000000000001A +:1026C000000000000000000000000000000000000A +:1026D00000000000000000000000000000000000FA +:1026E000000000000000000000000000008000006A +:1026F000000000000000042000000000040024008E +:102700000000000024000000000000002000000085 +:102710000000000000000000020000002400000291 +:102720002000000004000000000000000000000085 +:102730000000000000100000000000000000008009 +:102740000000000020002000001000802000000099 +:1027500000000000000020004000200000000000F9 +:102760000000000000000000000000000030000039 +:1027700000200000000000000000002000002000F9 +:102780000000000000000000000000000000000049 +:1027900000000000000000000000008000000000B9 +:1027A0000000000000000000000000000000200009 +:1027B0000000000000000000000000000400000015 +:1027C00004000400040000000000000000000000FD +:1027D00000000401000004000000000100000400EB +:1027E00000000000000000000000000000000000E9 +:1027F00000000000000020000000001000000000A9 +:1028000000000000000000000000000000000000C8 +:102810000020208000002000200020800000000018 +:102820000000000000000000000000200030000058 +:102830000000000000000000000000000000000098 +:1028400000000000000040000002402000000000E6 +:102850000000000000000000000000000000000078 +:102860000000000000000000000000000000000068 +:102870000000000000000000000000000000000058 +:102880000000000000000000000000000000000048 +:102890000000000000000000000000000000000038 +:1028A0000000000000000000000000000000000028 +:1028B0000000000000000000000000000000000018 +:1028C00001000000001000000002000000100000E5 +:1028D00000020000001000000002000000000000E4 +:1028E00010021000000000000002040000000000C0 +:1028F00010000400000000100000000000000010A4 +:10290000000000000000001000810008000000002E +:102910000081000000000000000000000000000036 +:1029200000000000000000000000000000000000A7 +:10293000000000000000000000083000000000005F +:10294000100800000000001000002000000000102F +:10295000000000000008001000101000000000003F +:10296000002000000000000000000000000800003F +:10297000000800000000001000000000000000003F +:102980000000000000000000001000001000000027 +:102990000000000010001000000000000000000017 +:1029A00001000000000000000081000000000000A5 +:1029B0000081000000000000000000100000000086 +:1029C00000000000000800000000040800000000F3 +:1029D00000000400000000000000000000000000F3 +:1029E0000000000000000000000060000000000087 +:1029F00000000000000000000000000000000000D7 +:102A000000000002020000000000F80100000000C9 +:102A10000000000000100010000840000018000036 +:102A20000028000000000008000000000000000076 +:102A30000000000000000000000000000000000096 +:102A40000000000000000000000000000000000086 +:102A50000000000000000000000000000000000076 +:102A60000000000000000000000000000000000066 +:102A70000000000000000000000000000000000056 +:102A80000000000000000000000000000000000046 +:102A90000000000000000000000000000000000036 +:102AA0000000000000000000000000000000000026 +:102AB0000000000000000000000000000000000016 +:102AC0000000000000000000000000000000000006 +:102AD00000000000000000000000000000000000F6 +:102AE00000000000000000000000000000000000E6 +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000000000000000000000000000000A5 +:102B30000000000000000000000000000000000095 +:102B40000000000000000000000000000000000085 +:102B50000000000000000000000000000000000075 +:102B60000000000000000000000000000000000065 +:102B70000000000000000000000000000000000055 +:102B80000000000000000000000000000000000045 +:102B90000000000000000000000000000000000035 +:102BA0000000000000000000000000000000000025 +:102BB0000000000000000000000000000000000015 +:102BC0000000000000000000000000000000000005 +:102BD00000000000000000000000000000000000F5 +:102BE00000000000000000000000000000000000E5 +:102BF00000000000000000000000000000000000D5 +:102C000000000000000000000000000000000000C4 +:102C100000000000000000000000000000000000B4 +:102C200000000000000000000000000000000000A4 +:102C30000000000000000000000000000000000094 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000000000000064 +:102C70000000000000000000000000000000000054 +:102C80000000000000000000000000000000000044 +:102C90000000000000000000000000000000000034 +:102CA0000000000000000000000000000000000024 +:102CB0000000000000000000000000000000000014 +:102CC0000000000000000000000000000000000004 +:102CD00000000000000000000000000000000000F4 +:102CE00000000000000000000000000000000000E4 +:102CF00000000000000000000000000000000000D4 +:102D000000000000000000000000000000000000C3 +:102D100000000000000000000000000000000000B3 +:102D200000000000000000000000000000000000A3 +:102D30000000000000000000000000000000000093 +:102D40000000000000000000000000000000000083 +:102D50000000000000000000000000000000000073 +:102D60000000000000000000000000000000000063 +:102D70000000000000000000000000000000000053 +:102D80000000000000000000000000000000000043 +:102D90000000000000000000000000000000000033 +:102DA0000000000000000000000000000000000023 +:102DB0000000000000000000000000000000000013 +:102DC0000000000000000000000000000000000003 +:102DD00000000000000000000000000000000000F3 +:102DE00000000000000000000000000000000000E3 +:102DF00000000000000000000000000000000000D3 +:102E000000000000000000000000000000000000C2 +:102E100000000000000000000000000000000000B2 +:102E200000000000000000000000000000000000A2 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E50000000000000000000000000000000000072 +:102E60000000000000000000000000000000000062 +:102E70000000000000000000000000000000000052 +:102E80000000000000000000000000000000000042 +:102E90000000000000000000000000000000000032 +:102EA0000000000000000000000000000000000022 +:102EB0000000000000000000000000000000000012 +:102EC0000000000000000000000000000000000002 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000000D2 +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F30000000000000000000000000000000000091 +:102F40000000000000000000000000000000000081 +:102F50000000000000000000000000000000000071 +:102F60000000000000000000000000000000000061 +:102F70000000000000000000000000000000000051 +:102F80000000000000000000000000000000000041 +:102F90000000000000000000000000000000000031 +:102FA0000000000000000000000000000000000021 +:102FB0000000000000000000000000000000000011 +:102FC0000000000000000000000000000000000001 +:102FD00000000000000000000000000000000000F1 +:102FE00000000000000000000000000000000000E1 +:102FF00000000000000000000000000000000000D1 +:1030000000000000000000000000000000000000C0 +:1030100000000000000000000000000000000000B0 +:1030200000000000000000000000000000000000A0 +:103030000000000000000000000000000000000090 +:103040000000000000000000000000000000000080 +:103050000000000000000000000000000000000070 +:103060000000000000000000000000000000000060 +:103070000000000000000000000000000000000050 +:103080000000000000000000000000000000000040 +:103090000000000000000000000000000000000030 +:1030A0000000000000000000000000000000000020 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 +:1030D00000000000000000000000000000000000F0 +:1030E00000000000000000000000000000000000E0 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000000000000000000005F +:10317000000000000000000000000000000000004F +:10318000000000000000000000000000000000003F +:10319000000000000000000000000000000000002F +:1031A000000000000000000000000000000000001F +:1031B000000000000000000000000000000000000F +:1031C00000000000000000000000000000000000FF +:1031D00000000000000000000000000000000000EF +:1031E00000000000000000000000000000000000DF +:1031F00000000000000000000000000000000000CF +:1032000000000000000000000000000000000000BE +:1032100000000000000000000000000000000000AE +:10322000000000000000000000000000000000009E +:10323000000000000000000000000000000000008E +:10324000000000000000000000000000000000007E +:10325000000000000000000000000000000000006E +:10326000000000000000000000000000000000005E +:10327000000000000000000000000000000000004E +:10328000000000000000000000000000000000003E +:10329000000000000000000000000000000000002E +:1032A000000000000000000000000000000000001E +:1032B000000000000000000000000000000000000E +:1032C00000000000000000000000000000000000FE +:1032D00000000000000000000000000000000000EE +:1032E00000000000000000000000000000000000DE +:1032F00000000000000000000000000000000000CE +:1033000000000000000000000000000000000000BD +:1033100000000000000000000000000000000000AD +:10332000000000000000000000000000000000009D +:10333000000000000000000000000000000000008D +:10334000000000000000000000000000000000007D +:10335000000000000000000000000000000000006D +:10336000000000000000000000000000000000005D +:10337000000000000000000000000000000000004D +:10338000000000000000000000000000000000003D +:10339000000000000000000000000000000000002D +:1033A000000000000000000000000000000000001D +:1033B000000000000000000000000000000000000D +:1033C00000000000000000000000000000000000FD +:1033D00000000000000000000000000000000000ED +:1033E00000000000000000000000000000000000DD +:1033F00000000000000000000000000000000000CD +:1034000000000000000000000000000000000000BC +:1034100000000000000000000000000000000000AC +:10342000000000000000000000000000000000009C +:10343000000000000000000000000000000000008C +:10344000000000000000000000000000000000007C +:10345000000000000000000000000000000000006C +:10346000000000000000000000000000000000005C +:10347000000000000000000000000000000000004C +:10348000000000000000000000000000000000003C +:10349000000000000000000000000000000000002C +:1034A000000000000000000000000000000000001C +:1034B000000000000000000000000000000000000C +:1034C00000000000000000000000000000000000FC +:1034D00000000000000000000000000000000000EC +:1034E00000000000000000000000000000000000DC +:1034F00000000000000000000000000000000000CC +:1035000000000000000000000000000000000000BB +:1035100000000000000000000000000000000000AB +:10352000000000000000000000000000000000009B +:10353000000000000000000000000000000000008B +:10354000000000000000000000000000000000007B +:10355000000000000000000000000000000000006B +:10356000000000000000000000000000000000005B +:10357000000000000000000000000000000000004B +:10358000000000000000000000000000000000003B +:10359000000000000000000000000000000000002B +:1035A000000000000000000000000000000000001B +:1035B000000000000000000000000000000000000B +:1035C00000000000000000000000000000000000FB +:1035D00000000000000000000000000000000000EB +:1035E00000000000000000000000000000000000DB +:1035F00000000000000000000000000000000000CB +:1036000000000000000000000000000000000000BA +:1036100000000000000000000000000000000000AA +:10362000000000000000000000000000000000009A +:10363000000000000000000000000000000000008A +:10364000000000000000000000000000000000007A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000000000000000000FA +:1036D00000000000000000000000000000000000EA +:1036E00000000000000000000000000000000000DA +:1036F00000000000000000000000000000000000CA +:1037000000000000000000000000000000000000B9 +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:103790000000000000000000000000000000000029 +:1037A0000000000000000000000000000000000019 +:1037B0000000000000000000000000000000000009 +:1037C00000000000000000000000000000000000F9 +:1037D00000000000000000000000000000000000E9 +:1037E00000000000000000000000000000000000D9 +:1037F00000000000000000000000000000000000C9 +:1038000000000000000000000000000000000000B8 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000000000098 +:103830000000000000000000000000000000000088 +:103840000000000000000000000000000000000078 +:103850000000000000000000000000000000000068 +:103860000000000000000000000000000000000058 +:103870000000000000000000000000000000000048 +:103880000000000000000000000000000000000038 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000000000000000000000000000000000008 +:1038C00000000000000000000000000000000000F8 +:1038D00000000000000000000000000000000000E8 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:1039000000000000000000000000000000000000B7 +:1039100000000000000000000000000000000000A7 +:103920000000000000000000000000000000000097 +:103930000000000000000000000000000000000087 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000000000000000000000000000000000057 +:103970000000000000000000000000000000000047 +:103980000000000000000000000000000000000037 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000000000000000000000000000D7 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000000000000D6 +:103AF00000000000000000000000000000000000C6 +:103B000000000000000000000000000000000000B5 +:103B100000000000000000000000000000000000A5 +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B40000000000000000000000000000000000075 +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B70000000000000000000000000000000000045 +:103B80000000000000000000000000000000000035 +:103B90000000000000000000000000000000000025 +:103BA0000000000000000000000000000000000015 +:103BB0000000000000000000000000000000000005 +:103BC00000000000000000000000000000000000F5 +:103BD00000000000000000000000000000000000E5 +:103BE00000000000000000000000000000000000D5 +:103BF00000000000000000000000000000000000C5 +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C20000000000000000000000000000000000094 +:103C30000000000000000000000000000000000084 +:103C40000000000000000000000000000000000074 +:103C50000000000000000000000000000000000064 +:103C60000000000000000000000000000000000054 +:103C70000000000000000000000000000000000044 +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000000000000000000000000000014 +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD00000000000000000000000000000000000E4 +:103CE00000000000000000000000000000000000D4 +:103CF00000000000000000000000000000000000C4 +:103D000000000000000000000000000000000000B3 +:103D100000000000000000000000000000000000A3 +:103D20000000000000000000000000000000000093 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000000000000000000000000000063 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D80000000000000000000000000000000000033 +:103D90000000000000000000000000000000000023 +:103DA0000000000000000000000000000000000013 +:103DB0000000000000000000000000000000000003 +:103DC00000000000000000000000000000000000F3 +:103DD00000000000000000000000000000000000E3 +:103DE00000000000000000000000000000000000D3 +:103DF00000000000000000000000000000000000C3 +:103E000000000000000000000000000000000000B2 +:103E100000000000000000000000000000000000A2 +:103E20000000000000000000000000000000000092 +:103E30000000000000000000000000000000000082 +:103E40000000000000000000000000000000000072 +:103E50000000000000000000000000000000000062 +:103E60000000000000000000000000000000000052 +:103E70000000000000000000000000000000000042 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA0000000000000000000000000000000000012 +:103EB0000000000000000000000000000000000002 +:103EC00000000000000000000000000000000000F2 +:103ED00000000000000000000000000000000000E2 +:103EE00000000000000000000000000000000000D2 +:103EF00000000000000000000000000000000000C2 +:103F000000000000000000000000000000000000B1 +:103F100000000000000000000000000000000000A1 +:103F20000000000000000000000000000000000091 +:103F30000000000000000000000000000000000081 +:103F40000000000000000000000000000000000071 +:103F50000000000000000000000000000000000061 +:103F60000000000000000000000000000000000051 +:103F70000000000000000000000000000000000041 +:103F80000000000000000000000000000000000031 +:103F90000000000000000000000000000000000021 +:103FA0000000000000000000000000000000000011 +:103FB0000000000000000000000000000000000001 +:103FC00000000000000000000000000000000000F1 +:103FD00000000000000000000000000000000000E1 +:103FE00000000000000000000000000000000000D1 +:103FF00000000000000000000000000000000000C1 +:1040000000000000000000000000000000000000B0 +:1040100000000000000000000000000000000000A0 +:104020000000000000000000000000000000000090 +:104030000000000000000000000000000000000080 +:104040000000000000000000000000000000000070 +:104050000000000000000000000000000000000060 +:104060000000000000000000000000000000000050 +:104070000000000000000000000000000000000040 +:104080000000000000000000000000000000000030 +:104090000000000000000000000000000000000020 +:1040A0000000000000000000000000000000000010 +:1040B0000000000000000000000000000000000000 +:1040C00000000000000000000000000000000000F0 +:1040D00000000000000000000000000000000000E0 +:1040E00000000000000000000000000000000000D0 +:1040F00000000000000000000000000000000000C0 +:1041000000000000000000000000000000000000AF +:10411000000000000000000000000000000000009F +:10412000000000000000000000000000000000008F +:10413000000000000000000000000000000000007F +:10414000000000000000000000000000000000006F +:10415000000000000000000000000000000000005F +:10416000000000000000000000000000000000004F +:10417000000000000000000000000000000000003F +:10418000000000000000000000000000000000002F +:10419000000000000000000000000000000000001F +:1041A000000000000000000000000000000000000F +:1041B00000000000000000000000000000000000FF +:1041C00000000000000000000000000000000000EF +:1041D00000000000000000000000000000000000DF +:1041E00000000000000000000000000000000000CF +:1041F00000000000000000000000000000000000BF +:1042000000000000000000000000000000000000AE +:10421000000000000000000000000000000000009E +:10422000000000000000000000000000000000008E +:10423000000000000000000000000000000000007E +:10424000000000000000000000000000000000006E +:10425000000000000000000000000000000000005E +:10426000000000000000000000000000000000004E +:10427000000000000000000000000000000000003E +:10428000000000000000000000000000000000002E +:10429000000000000000000000000000000000001E +:1042A000000000000000000000000000000000000E +:1042B00000000000000000000000000000000000FE +:1042C00000000000000000000000000000000000EE +:1042D00000000000000000000000000000000000DE +:1042E00000000000000000000000000000000000CE +:1042F00000000000000000000000000000000000BE +:1043000000000000000000000000000000000000AD +:10431000000000000000000000000000000000009D +:10432000000000000000000000000000000000008D +:10433000000000000000000000000000000000007D +:10434000000000000000000000000000000000006D +:10435000000000000000000000000000000000005D +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:104940000000000000000000000000000000000067 +:104950000000000000000000000000000000000057 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A0000000000000000000000000000000000007 +:1049B00000000000000000000000000000000000F7 +:1049C00000000000000000000000000000000000E7 +:1049D00000000000000000000000000000000000D7 +:1049E00000000000000000000000000000000000C7 +:1049F00000000000000000000000000000000000B7 +:104A000000000000000000000000000000000000A6 +:104A10000000000000000000000000000000000096 +:104A20000000000000000000000000000000000086 +:104A30000000000000000000000000000000000076 +:104A40000000000000000000000000000000000066 +:104A50000000000000000000000000000000000056 +:104A60000000000000000000000000000000000046 +:104A70000000000000000000000000000000000036 +:104A80000000000000000000000000000000000026 +:104A90000000000000000000000000000000000016 +:104AA0000000000000000000000000000000000006 +:104AB00000000000000000000000000000000000F6 +:104AC00000000000000000000000000000000000E6 +:104AD00000000000000000000000000000000000D6 +:104AE00000000000000000000000000000000000C6 +:104AF00000000000000000000000000000000000B6 +:104B000000000000000000000000000000000000A5 +:104B10000000000000000000000000000000000095 +:104B20000000000000000000000000000000000085 +:104B30000000000000000000000000000000000075 +:104B40000000000000000000000000000000000065 +:104B50000000000000000000000000000000000055 +:104B60000000000000000000000000000000000045 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000000025 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000000F5 +:104BC00000000000000000000000000000000000E5 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000000000000000000000C5 +:104BF00000000000000000000000000000000000B5 +:104C000000000000000000000000000000000000A4 +:104C10000000000000000000000000000000000094 +:104C20000000000000000000000000000000000084 +:104C30000000000000000000000000000000000074 +:104C40000000000000000000000000000000000064 +:104C50000000000000000000000000000000000054 +:104C60000000000000000000000000000000000044 +:104C70000000000000000000000000000000000034 +:104C80000000000000000000000000000000000024 +:104C90000000000000000000000000000000000014 +:104CA0000000000000000000000000000000000004 +:104CB00000000000000000000000000000000000F4 +:104CC00000000000000000000000000000000000E4 +:104CD00000000000000000000000000000000000D4 +:104CE00000000000000000000000000000000000C4 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000000000053 +:104D60000000000000000000000000000000000043 +:104D70000000000000000000000000000000000033 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000000000000000000013 +:104DA0000000000000000000000000000000000003 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000000000000E3 +:104DD00000000000000000000000000000000000D3 +:104DE00000000000000000000000000000000000C3 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000000000000000A2 +:104E10000000000000000000000000000000000092 +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000000000072 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60000000000000000000000000000000000042 +:104E70000000000000000000000000000000000032 +:104E80000000000000000000000000000000000022 +:104E90000000000000000000000000000000000012 +:104EA0000000000000000000000000000000000002 +:104EB00000000000000000000000000000000000F2 +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE00000000000000000000000000000000000C2 +:104EF00000000000000000000000000000000000B2 +:104F000000000000000000000000000000000000A1 +:104F10000000000000000000000000000000000091 +:104F20000000000000000000000000000000000081 +:104F30000000000000000000000000000000000071 +:104F40000000000000000000000000000000000061 +:104F50000000000000000000000000000000000051 +:104F60000000000000000000000000000000000041 +:104F70000000000000000000000000000000000031 +:104F80000000000000000000000000000000000021 +:104F90000000000000000000000000000000000011 +:104FA0000000000000000000000000000000000001 +:104FB00000000000000000000000000000000000F1 +:104FC00000000000000000000000000000000000E1 +:104FD00000000000000000000000000000000000D1 +:104FE00000000000000000000000000000000000C1 +:104FF00000000000000000000000000000000000B1 +:1050000000000000000000000000000000000000A0 +:105010000000000000000000000000000000000090 +:105020000000000000000000000000000000000080 +:105030000000000000000000000000000000000070 +:105040000000000000000000000000000000000060 +:105050000000000000000000000000000000000050 +:105060000000000000000000000000000000000040 +:105070000000000000000000000000000000000030 +:105080000000000000000000000000000000000020 +:105090000000000000000000000000000000000010 +:1050A0000000000000000000000000000000000000 +:1050B00000000000000000000000000000000000F0 +:1050C00000000000000000000000000000000000E0 +:1050D00000000000000000000000000000000000D0 +:1050E00000000000000000000000000000000000C0 +:1050F00000000000000000000000000000000000B0 +:10510000000000000000000000000000000000009F +:10511000000000000000000000000000000000008F +:10512000000000000000000000000000000000007F +:10513000000000000000000000000000000000006F +:10514000000000000000000000000000000000005F +:105150000000000000000000000000000000D0A5DA +:105160000C000180000000500C000180000000C015 +:10517000040000000400000004000000040000001F +:10518000040000000400000004000000040000000F +:1051900004000000040000000400000004000000FF +:1051A00004000000040000000400000004000000EF +:1051B00004000000040000000400000004000000DF +:1051C00004000000040000000400000004000000CF +:1051D00004000000040000000400000004000000BF +:1051E00004000000040000000400000004000000AF +:1051F000040000000400000004000000040000009F +:10520000040000000400000004000000040000008E +:10521000040000000400000004000000040000007E +:10522000040000000400000004000000040000006E +:10523000040000000400000004000000040000005E +:10524000040000000400000004000000040000004E +:10525000040000000400000004000000040000003E +:10526000040000000400000004000000040000002E +:10527000040000000400000004000000040000001E +:10528000040000000400000004000000040000000E +:1052900004000000040000000400000004000000FE +:1052A00004000000040000000400000004000000EE +:1052B00004000000040000000400000004000000DE +:1052C00004000000040000000400000004000000CE +:1052D00004000000040000000400000004000000BE +:1052E00004000000040000000400000004000000AE +:1052F000040000000400000004000000040000009E +:10530000040000000400000004000000040000008D +:10531000040000000400000004000000040000007D +:10532000040000000400000004000000040000006D +:10533000040000000400000004000000040000005D +:10534000040000000400000004000000040000004D +:10535000040000000400000004000000040000003D +:10536000040000000C000180000000A00C0005807B +:10537000000000000C0000800000FAEA0C00018030 +:10538000000000B004000000040000000400000061 +:045390000400000015 +:00000001FF diff --git a/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S500E.bit b/06-07-08-09-SystemOnChip/Board/ise/systemOnChip-XC3S500E.bit new file mode 100644 index 0000000000000000000000000000000000000000..a97b25ad3bc0632810da49df592a514edf4298cf GIT binary patch literal 283873 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 + + +

      87w~@dqvU%|PL%LkA!@fZ0(Hc%UCGK({EZ@#SoQ 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³#fzig}F9l8hxycx`)@@%ori!h0)DXlYk)th8debjHgH+d&*EUIY8+uFO zR!c)|%a^C?hMTm|Q^12$Ud=w);OmBr6F+qfyc9vP!?*4*6O94dzXK&kAc| zVWvqe?5fsokd0@59Q&ht#ROMd??ANJhT_8?gJYt(@~{n%PQoiiP&&)QF#)7rDV+?J z?`>STGkJ?xZs37%e6TJ2NQzN#RMEe=Za-MPJ^BUW79M9jN)+5{X; z1E)iF-Q9SQ7^FErO%@ zI{zoS+_G#*K_EJ!bC)9cnE%Au*kM-x)H3UkN&;>IW|sCS93EP32AZyRSb3?t-|TZe zyFYbw6G%G@YiMmuCz;-9kd02{hwKixkPr=BSZtR2IFttZKu4vou;;M&bm(e|JUUeL(vEj%f*r?4 zKY*$Q#UDP|vD{d)`HRc+7(+f*QSOln04h{Nk;|l*e#YS^I@g)(=MT?gt0QM7!PlU9 zqudAoks}^+?i21)>C*~9VYdVgZ)9dR_IXV$*vQktm-k1|=|kMr_>{#&qz{sr_}S>a z0X&sUIlmYwd)UbAZ2F!jLSyoVorzbv%gj>m3wqg?)rI_ObcQfG4V5rBgJ6cisqW+K z??J9QAG?YDDc0rnGb3tx3S+asdIy`G&|_x>y0^k`7z-AkA!%FOw3L!2D}V*y6XUupV_^l1N}2lo)Vl| z7DvRk5o3`UFrcN{+|hc&Ij+=wf@iu*16rzRS$EzmAK0TF@9z3u^&)!%wVC&meWG}o zMC`61^XYO_v{XH%t>C}vcYwxmGojr@%RzgVRj`YOq=DWHRG6lRfKK)+z)r*aC|X{~ z??C^bS+-he$Ibg&;naWb-$RM`Kpzp3EKadaf8=UlT{P1=vQ_zN! z`_&W&qjGX{$J3cBIfuSFQpZ1)iBOlW8T2DXI|oLcB`s?^qzp>_|Liom$(r%irwNc6 zKjc%=b))2aQqJ>uqiPfznW)b1Q~p&90^<*K9gvzrgBMM&YCN5d(Tq2pjHfI$yo`^D z>Cda9)O0F&(z|A{?f`i?&1eDp#wgcu5F~n99sew2ZA%QT3D3NTd=bqWp(XApXCjZqd5<& z*9s=puNx$g3{WWNTzosMGW0)z@H)>jX<2PLe{Oq8q&D||Ox8=KGaYkr@M2;guAZ{7 zOW%3mS9EW6USE~fp-JE1&^d2;SRD%?6`JzXyTwTSg0n8}!658}8$59;S! zvLzVobiups3}s7Ib)UjztVBv}HmW?Kp!j`kRm_z)3<(BR##*k0Z_j9P)D2+LQxuqB zO(vjKJ`PIcClr)hyfK)b$WFpRO^duwH(E_6nu40Nuv#V`IcDUFNmZR;gkyA&tVc!+ zgMD|FT90n80`0cti1eZk)kaa6HajH<>UYITz>}osjm>y?x~-Tt2>ZDACWg#!j_ckL zdo(Tz=lx*qHbOt^Zr?Sg@xnQ11r5K)q=46CP1S^b8V-8n{Vksl{tt4!(kBXm$%uQ` zB%ouP;c*~rh5XJYFOn{J8gHPF+nTnT!0uqR9C|GYUVESDn~Y5{Vyz*sqz?NNl?enp zqd`9DpTm9*+MB;nUQ25vaWaQ_gWeL|(JD(U?{#Q6p*O_9Z>mZt*cg@43>?(41%}zP6{HyU|pHwsuBoq+DV%*sPjlmXN>I*`-=G{th;7b zSQpt!9?5ak7den1yleFTAUA6*blHD5IwdGhL&*=O@0Cn|TvNacoAA z+|MjwWS2LaHnNtylp++KeCX!RwP3Hkp|%{@a9Zh;)q%kT?DP&zwC#zGigUmYQeoN( zMOaksffMOepVAFGT+m}BLcGp8j8)E%U?}}9PlQ6XH*^+l)*b9Vb-h1J-v z`(Tyy!Obsp`Rc5V!q19}sR^qPwbCcanxf?s>(Q{5ta|5i-%ePtQ1_HhaNZO;=hg9!WtLG|cz)3VI>Y@A}53Jb)HBtourWEK)V)Rv@8#_X{3M z@M1OP(6-gmdUYQds`^4Tpa?t1>5l1BWZ@aJcfBhbevXNT_4rWm@Sf1L-Jm=p^by0| zbvmH$sdyj3qQd-Jk7spA6`>XlHIK+=(NGdUuo4e%{SC)r{`oGA8cY#baTlZMltd@B z)ag<`jWWb)^F*N}lTOaT*Cm(Vk*Myt@ZIqV{rV)~%Z@sKFcv7VYE=y%tqJ3KZ&jFl zS0T&C(dpu$x|ky&BC7C7eiyk2@ZD+NJUfFpdgRAUs8lSitnJc7i#4iBH2i5)fOeaK zbJ!;V@fY;-f`?LbTCcXapRVMEHdbdYl%b@Dj+ZWMunDVFdKRBqMldLghC|trJlZ?|SBK|araJ^R0 zv9R0mIu>TAwYhZAVT1{`K43@~la-hlpr9TRxtvG!)L!@v_r`r;;ta0tac8je4~RbP z;;^9^3mo2cXs4U=X63$=f3)G=DvK6MRzo1&r@@e$Smk1!X8V?|O|V!m-+V za+kI;%pTM|muDZW0*NdPO)#TNjTOqU`@o= z^oDxHeaKe_BH>SSm%L3hNh`%Ht<0x)GYVVsODRX|$T5NN78NtteOiAtl~kUT$Ap8o zni2W)ezoQ%)!&4JKV?Sy3WWEecZZ^GjBl}T|CT|(w4G3ReL425jO9|qG+G6-?0nKN z9r*$XosdC(?K4pw%U;bc->dV(V34r&ILr|ayTlgtH`qEK4YS$(HI$c5m5YXhv`uKJVc}U7&63(#=z?P~oy)7KdA2Z3koOQ^dkgwoPCtF7wMo)F<1zA&s}y*3%@5(uS&N zd3YKcuG=e%!%g@t4rjwkNAw4WbHku0)4xt3W_Ktkhad8@o5~CYW*9CiLNFY#1tauP zyT!P!7igu6v4uxcRD$UOhtiE$(Us1P{CY4%SKo)SU-uTS2gAIlFJO4D_6nPAEB?|i zkK~sF3mi78Q)ULDCcFg>gG#(>M0yccJuxygx!lzWPIx(JLUv3<)c7F3#KXXc^?10u z4>S=gWhHgk;q5|TD5uYAC_@@g*8}4Ay0~Y3+6q^;TtRfTtq(-j&KCy8Fg3u%IC(25 z?ovclK#o1Xhv@=wf@UOLl74vDzFN+YSlH+S3rTprTC5qC+I+h~Mpfs6i=v8_$13n( zBrpp9GDGR#$mM-761G5*MXvim34;wZppEDbE8pQNbKQ zQ3dJC&QuF#mo?{rWK^Vb=mJ42SuY!}FrhTn52*O^Rk2c&1nvILF!iPf6QUlV*8vwF zsUtl?#pgbbBt+e?bP5;8QP_ow>P(rK45ztmmT{372^4=cU6lo)qS8Jbi90-S6bZJ@ zz4^&vN3!jA(Q5RU{ujjT0E#lp{dkGPb3I?-uyDL$N(S_^N=9Wd#GQQTPSs-!2`0WY zwjS1-7T=W#EWSv*G$bp{OV(OeJJi}kq(oO8%+;6k+-Manc4-L|pZV{ZcV;+UVxI+z z@zRvwR?wmeOO#uFQG_%AnPlGxDldyA4qG1v=#cRyhU(NTP@HvD?=Zk7w*-o6A04N0 z&^pt>;{%Yav5>+OvQ^m`>-&Fr(rm+apKkZkUuF8yRAN4A)x*y$T(S7q;z6KTV(BF+}jR! zwE@3?y3fkM*&2&+Wz{ibjltQ83O{LZoT&>kKs}x}G>%hRprd$rf{of}6o+Iy?Oj?b zry$npa@Z=fbP`6l(hYOD1Q`dzErG^wv3gP$7y}L_jEWnO-iBj-r>j-rxy-zYtAfSO z*hCAq=+?fOEHDbY=zl97cR@z2Gw0ts2SccHW&?~?T8yW7S$*fZYrI@gQM7eiYePC- z)-R~|80qF0xrpts*7XF|7ono2=xd`3?EQ$vPV|I~KO(Q8Z^M~;DZe12iuqWN0oh-c zF38KCc%h4$+-W5y=fch2gn4TOXVB0$sbf7XFTnVtiHaZw*I9wk6KQ#Yei?qkqNmqF zakByL(kqEa1&TqU{x8_Jg22L@jdqrc|fR?&>Oh%X+@&b`Rxsc~iDs7X&qU-FDNV&^GWyStfK;yc9b{P#x`>H*H+><7Gk#=`ZN0 zvrAC;_@oCo;h7#LRtUvWW~mVScCfWjZRHtv`Th%cE_Q3 z5&se35Qn%({nV|(O(EjsNdxC`$b_5?a&FCm=uZ>ax;)VFwXaW)u*~qcO{qCX8n@z8 zP*%z5iS8(kS~Z=b(by+Nn9vo53N|Jl3qxP4AA&Z__PrZPHr>zbuYytWWIwXqpSLnP zY~R_Wdzj;`J1t?*u1L+c%(ie$h^n&P*dt8Ukol52JCACfN?MGdEZv8!lIRL#ri+%r zFo{t<+ORYTbpLeSEXR3Yt$+MfQXpwkqbs0wT}l{q+#Z%D2F0JMndoud71&NfvJL~H zGPb_{(%Ia_PB~Jo?z6OrqAFW4b%BeEB2}r%AZ-<{>TNr^GbiZ%u?N;=26lI!aOnAS zEhO8-tV{`nh5iJzAb2Of344-A7@gMXX9A)et~mbA}-e2zffs5zujon>v>oP!{5>b z$nYj~{v#RTPWb5`R@|U@V_>RL`i{z#YmZ&6fz$7=<8P$C_frI{h4kUQ1FWDGgx0#V z3>9G08I;N;Z(XKD0rpNRU(sU~6o>_!R*Dya;aRO01=(E@2mo96tL%eXl?P5}7_*gv z&R58-Mt^|V4?$*FQO{0O%z)hnE0%-~HJbIf0_VvfVGfU3YcB7PpXT+q}#qqWM4dkd}CXX@A#@3sxYqm06q zM6qhsv+i|zFJA@M!~GGU^(Z6{(0aVkaOWJen6-pS+xA`0gVjPJK5i3SVl~-H+0I&63`lBpRA~X{OeW_Jc}FP$^xQ#xw1CmbVQa> zN4trnztLvZO9HDiM2kh1F9}mMOZw8eJzu+%BBrb)O#gDGV^Xf`(BRY(w&um&);tJN z!4yhAzH|ut_HY%rM*Q*QUhkjqfO7T@oip09K+_IZGs%V0>5JAf+VIHPjM^O)El@hX zHWNm7v$=r2KjT{6DwNg?&9pCl7Z}TGt~~JFTQ;{N10f@wo}Jy3sj2 z%)O^c%1_tRXlux5E`al0E_M+54{D$2g!OCHLE~PmHK(3`nrr-XPf0LBYkQGY<34t& zn!D2FPjX@|&kLd({0U8S>QqKMoZ4_N!GykU>;ic6`;I5goKS-Dx7(*^m?ofLwED*v zCbPEp3R3@uJ-Q?44Rte8dVM+89V%n}1Rn~cr=1^8+g^3=U=NDri?$}S#;$}TVazgh z%Zo- zr&*G}y>zK?F~Y#CHNc8M^L1i0 z{^z@#;0u`N1KYAt$UJ`SCFEIa2iHTLMHyFVj$&7oqF^~#-y|&f$F9c(%bmqm!Xd#) z#7~+HR}uxvVlsFjNY=o@WI^&1KE-^G{*UQ0%d#YeVdz$R1DOXfX4wD68eKW6>Mxbg z0mg$Y$7^&VC*3T~#?_K$-l}Yf&#m)C^cBqRdC z+`fSp6nL|43?#Eg6@Sa0=l3i-Q7F1xU?ollU<+LL&4c>7+fe6KMDqyEAQIm}oA18azU5fTYYel=VZ2fxf8e|VI&mi2P6@cfc32`q|iM!kDA zsw6_guhjT0wDG{f0S9Xw){)8fbNv$p9G%B`rx^8|^vKlOAaq2M;g7EVp0R8w1|F8@ z0Rex?C9IFz-x@E4+}sV!yZ2xYUCFNcMO{4H&Cm~Qucw8)&$Os_Batly9x91E-RirW z$Y$DhGt- z8+V?8vIycPGS-K^JUE`4H;B|pbMEkm3$({BTQjnY{;-iuH{W4hnNjx}xfS&QXdA!9 z$EvJV*Nc)FVH_hyCc?Iz_&u{yC03SR;>qG<39X=_?xv*9{v0^lb?<{-4gR>$`sAPN zQk3b0n13_?Cch3#sRamu7N4b8nAs_Jo|JPL4ge)3v+G z_8tcz^=t3$hX4$+uKL7O6s>4>n~G(hBitc|7U*TUfPPh}<-714j+WT_4)w@HxJ`3( zvm$>8(44PnnikdSZ{+gvM{GDJKQoA0G$fGD>LO73SgCPQP4<)@?|VWAK6aecq^gE; zQw!&Ss|7?QFJ$Bi{&^nP(+eK|206$1=kKhmP1WlV%h;q-89qU%N*2zavkc2V_LA&fB;&ebuo5aI3-2T5UNo-(d{l ztw*QX`IWRXAIb^k+7lCqGdXI0=R)0N-)kY;Di3nQ`ffU9ll=I=hJcP3_& zd`Q$YsM}UM4k7^$dT{PivnKScmz;W;7+SOTjV_@@A!PWLO+x#wm%-6mr2OlZRBq4a z0VOTm$SHn)(dpdh>Vf_8*MlQxlwB}YSOXu*KP-~w=f=3TsYmNrBmjPvYW5Z1*e}zX ztOqZnF?G9NFD;Fjs;GwDlQa{u?hy5W$a!&NLezQ+zd3Plq6lojz5rA}tG}xZPr842 z2`n9E>4c@#Bdt;;q89eM#M8QBxm@ZIfS5;=?DZZv|m)QWed=y8EMi zxD-#Gvd!kSI`Z(fv;$wFt0gllUE{9#(}=Iyl~J7hOzobXj)nKDzH-8+Z>}9NJEf8vEzhMYADu1=>ctc1pat7l1_wg;mKzR?YhiEMb7c4G`UJnd$ZEXZT6^{H$kZWg_z*=bmp?kn zNVW>mBwO8nLEW8#66z+rN;%wZ%`Rki@%cqPtIjlct91c%tc0%6x;~_W1bKG|S;+aC zetLRm?DyDqd28#gAF;IbLKtkz_RloH;m}BNGl&WA^5DI*-nHoFhI{MOv=~PG6kpL7 zbMMZnn_W!{oPf5~*VvV&tr7C;XF%G;Zp)-SDOg)7kdkuTSfst}X=&~_^(uI~!6`zX zyJyg?McebUE#mI>;jkx#GjiCI6hB*Pp#9prqU>ovoO%?ISkWGL&w*->|11*z>`d9+ zHEPWru53&0b?fFk5YtZKRXQ2)%Uu1?7xj!i5gEvR<6TOxdJ+aA;Kn*XBxoqH?m1PIDj7>v9! z?Nzp7ZQ;&I)3tSu(XjvEe{2ucrWZbR8^K=g zM|Ai68{XS3*#md4Ri(cRkA|r7zH@tH@UQ7UHsQhL3iWrYp{eE8T2dccbTlV#}tOqa`zF1rnc z_cw~0z#K@To?#dc!D}y^|HiDZ*kfaWAFXM&MDbBoyoPdVzooYV@&<`$(FLT#n(YGQ z%|psHjAvaguRJnMYsUK_IpfX!G`Ft^jQ_?;>ndp<=>mTZ&s|z3x?DAGH830=ncm<8 zz&yB{O(CHCP|pi0ZS~#qaJ4G_fO&@M;@mi7E~Z!a80bG+(=eL(e!{yGRUvufE?5SN zpdwyCUUw1*qD@bkPME82E)q45bT81OZ`Z8~$$Rs*Z#u14tCHUDRI)(wZozbo<0U!o zhvV%tor9eFol)FhZJt*vSEo}ab*PmYcyF!+iVyyYEjT_1nO59t92{R%PQ1F675H*= zR`GCIPFDS^K(IVKNZn6^tM;@q3%~Yldx<&<_Ws#50qD^be4_fQkleWf#zh?j0~i+y zm8EgKxjIUJ$H4JI@m-;kE>=Svn?5(osMT^bs#yeM^7OKixK?*`3(9>>y-|gAj8Jdk z-*J5AA_9Q81Y4OJ#h?9CzadNf;dN#|51tuVudcm$m-97(Qi7FMAUxL&WdZmMV(03N zTbp`P4Bw-Y;c#3BXU|HN+iV*wuBWBtEuSqv2za944rprCuPcyU3%uKBDu9ZwuihFa zxbVv4{VG)8_xK9?9W%zV?PWE-eg(k8`tG54RfC!)9`G&SHzCj(_d`3qKVM*n7hb(y zrq<%E`|X}q0sheQQ@Q&L;fYJi<@*J2KI}!m_t><1d6h*V`+e_F5=h(G_Vq85($ZWvg%OUBfKiA4Bi47-8rTbh!Ut)mrpZ@ZkbPs)$lnsyjeoIc>k~6geRf6R>jX;|7wG*d6Ad3+ zK4i5H?`2T1JX zNu7N)W~Ddw>I(Do6Sgv+xOJ{&WlUGZy}tsiA;Yz`ejnvl)%<8r-$+BF`kaB}c@S9B zr@m=wH<0jZpp7LVj4GIs8~Q~Un*GEF3if`k!N&^;TGL{&7}z)}ULA0(*#>0Hv+wwY zy65Q)Wb9nOgNu>ZRoq(UA=Q<~27od7XJeHmF|2}sMQI0AXkKAgrRTFKFYhkDdhpzy ztu#+jI2~L}vXGr%PFRibc5y^*JfU6@C604 zFn*toCj$^s7aRv=uq36jsJjJ_O`e5->t)F9)t5Xsf6b`^!g9*~rf(F}wYFvC^=6t z$F$?|3S?5pLbaNQYP!(^k0eq5_1CbJRHX?)8|^j0vlb4`wOO8?ciInrzpyXtZpk!l zbOzPWR#1+>dH|N9fR2?!3!eN(L6f@F{joy6dKKi#GCrX9zV;z}`O^dyS;c>s++Ru_&O*slQ zMO-2oOJRq1Azg!GB`A>yy3sO)1k!l?;-NJ{_R zZUpHDN>96Wj~mlyjNzPAh#nU>dVGnS6%jCVJ|DtitLtK|y@0>_6yXPz?Z&gGzv;}^ z3Y-yCdcOPLv-f&T5pJvpn&Uk@-Rq986qEdU7Rg}DduVIC3LrCEaWGC8FE=F7M)g>? zU6_bajSXsP=~xtEzHd8}zQ`a@m_Hq{9tg}Iq5rboBj{@S05w(oO|;yR%wu~$0cZPY zE36gt2xcxu#Q0D%3n!=x@hl^e)qd|jvtUz<-^w08|EHnQ3(+J5citZDyHyr*2u}MTH{9`=9$(nZssi z%yxWcn8Ai3Cd?EZv#|wPzqUfWsICJ=u14XSLQFXTb%%wfMvYP8sUeS|KywXmXPJpN z1(|26C#KHoAC$us#6pBiNko2uY%}k&&Bk)Yt+78UN zDk8NT;<&cjI^D1upr=bRKIojJS+Wx$Gq|2GVsn$YB{F7V^Q7sGH$=_sM60`qjp zS^uX*g30WsS5A+mUZ;D{-L6-=cpj;{T|S~cr}K^QoK&pru2^mTpfs+{ z%$bv?NIIQ$w+|-Lr9OW*^f*Ho|su#%0j76KnWWjhK( zQ+Wwgt>Xb>=bu=kEpGLnS;hmC5N>W+CT??3BPohRXKlST5 zwpApnBs{zfW1p@vq<+^1tnmz;`buM}5@y3gC6MtYZX)&#?hEz~{uZnXiQ`!@5kHJr z43CrLb1$@3Q_(9=A~GHx!q{A~1qkX(1B88L@E63ox;Yna_z9#f+e%viYDxiHhRiqK^u+)kLhl-^#l1z=SYNoZj0 zBEK%mb94v5I>4uGWUZ%`>*M-YL8@MUF~7@txul$24XtAKnkNNb7_-$5_8!#IUJurUZuR$`e>BU2s5&NeU->0qseqd7 z4P)ydEHWkn37;8^%ivW2;+E7+clA!-~llMKZ$RDkpHtePKh0!tlEJUC=52 zc(4ki>jyrexHJTQRl&91F3C?{9PWJkEbARaOaWXg@s1uI?#6f6l!jNKQy5&!znC%y zMY9fiMprm-7+;5AFn;i=R*znfm=&UcZZk*95V2Mzm(}k7qcGpEP~$Jabf;}y9}Qy% zJA*PEsINkx;@Ndqq`U>YwYas{@FYsGkF{ zvPSFWbvpfk*r45n0k*PE(P(^qT}7E@GuQ~eo<;=lwS?yj)dx$AkYWRDQhWgHB7ISu z_~X0!)!o3#otz4aFRyd(x=)>_FWw|tfu}&&N%ukVQJLS<|KYDHJUQU01u6yXML@Rn z7mCeaspkiw-p@w6bL7%nLa9^MaU`|wkbtoXrwg-JC73+(o`s|Doq{xnvXJl?VY71P zN|*@WdRAQAucSEt5Vo9mjIaxGjp89ApB38~WzI3e)-*L+@geT=$pM3@GX(eL$DDb7 z4E7s(4F+poehjgzGxiu{J*A!>g*_J1(PQG1NaBcro`N?G%c%=vrVH_nWko!l+K~c8fIVl|NLO~v}e}j z?mY7Ka@BnG%VQqvZib?fRw{?NMd0`3LgB31Z#W+sY9G!3XeU5dwe-0TDS#4354qZ! z=~l0AY>yZbep&S>QNQ0VnwS>Mhnx)C6UI3D;P!-ZNw21|XZVBR2}7`delV*!>KJDy zkwDQ?#&`9p=qclH%4{~jzVXm52fm4Pz-2LHR{Y790JR6wP<8O%pIgmZQB-`BF;!Z+ ztUA!gj;GG;HDOfxqPBZb?>-J|8VwlY9n~6OCzm%4|~ph85HoK`d?%+OoFEJI`dP*xoTy)>{AE}`s)^K1Qxl|~ck0kefv+yS2*BzKz4mLtAp z#c4D^&n0tk^bY6UY(0+}-zO^tv+6SFU9Iozck7LkblVSN1HlmM7F*&p-y|B*Ny4*0 ztZ0Dkjorjb4uro7-MP^aJ3l)xT*aFU%{ZsdFmavXv{IT##1Y5LaqNM>nRi-oHEC7; zL1;f{VhQ1dJ5CpX_Je(;VYa}JWCUglwy!NdCR``9mu|-Q$ztei0mk;zIgJxfzXxas zsG0^^<)ClO00~#3c!<`%C}udOt#~bdC<>kwAz2O3R>2I%xS>|fr3Cju5rz_$IZHIWON!#Nkuqud#_<7ltBUR7sSkct>$!P% zSZyIygLSkEk06T)qH9U(R0YpvS~0qjToFOSPWEtfmh zbM67P16Ex^;MwCd;-BKj&Uw&vz?!eIwZ6J|)?gSm*L*>@d0soYSW{^$>^s1OIF34JVleSdQDgv#I(_M+1(}j8**mKQACwor;`?hS&k8-@eEh(5qKBjx#M~oX& zPrIa1b@8q+b&}^7NUiitzbZ`C1S%IKEib9r#?vu<8;DvZ%uC>@IG%pmczPNIK-39( zU+}c@iR8LPLALiTn9?O9vdZg!N`VZ*myuxW9e%v9>?BRkeo`yp>61J zJ@>mk&;!4O4QqW%lxg3D`7ik zAnrrdr_hk*oEwhXtl$g|c*+gp4aEuAU|Ge^i%Sa&0*XLq~K|+ix@fi8Wfn zsq|N(+8i765W;rDyM#y~%%mSeJ%PuZ1Tu!}SZB)br&UAuqEypWXG~}Q}LAQ9=;hi9i%dWMqO$?VlFaGAfYQm z^yCb?S`%*73Zi%2R-@lpE~@QAPr1|dKoqZ2)T$8goQCqslce*MlB$o3?)8R3e_zL@ z5pA^UWSf#!^%ko6+hlnSNOqUCD174SmK-cVTM}m$2BN|{Scf%4=B(9uvl&5 z*e*OhGW<>U+#6XFpySO_xf3?YPMZ$;b#9}%Jx0nBAN%pQ(>?T$k)gTv)kTNeH+nvQ;NE+j{rw=h+UAij1+)x^5wEfpXPf^{{s6#P9edZx@lw zB^2Ev`<)v!RvY->j&9#IAcJ}lrln*P3fMinV>&vm!evp>odXA1P5@{~`cd#24&N80 zh6E%V#ay@iEFNytUrob`q|l%XSFih_Vzn=x!o&+XBeac9#cF6&FN#UXoD<(*~f!t*g^*NGhjH)lBt zMN6FH8Vv2-M98YQjk-cZza*fikugZ;9Xtz-oS|*cbis!a{(8D)S{Om(`-K25PwupHXyxweZVWe) zBGYCrPngvy)IlvdLde7R{MvevnLcO1>^X%3| zvNR7{X;yU^1OeQuk+x~2+qV8 zEwK7uOrF1L;cHnF@B(uDNYxPTR8$|E`ytv+ zMI$bB*gXH-3PDNl-8uKvb~N#}*nIDL8GN2}6+FAxygWLd#I4%k*ul@=u7&g>VJE!t zdWJW%xgO7{aJjMw=zzZJ)H@*E&(9VUON#O?m|Q~RnQqT%r}lbP3jgjl%a5{rYFppv z$!@-jW<6Xd23lShH0xq9+BOEbDJm>HqF^Y6M4SXj{TANj$XE=@uN)jN8)SymnFzuD~aK# zXdEP^3&ON{SNdG7-JG5dZrp9d+Dp$&G(EoOvo(va`nuu!o7FFLK=b$93;ygvG{5W! zLE(DYv?(P1`!W>ypdE!gaZa7u2c+4;2Q82NHH-q(-mx33*&uYtnVuwcq2?BqGkAPb zzlosnlexnoXna#^*p6;?KBRPbr`nxcq>&_>TbWL6bUP=Hz|rETr365BzvnD8t|86G zSl)FA0UVxD?-hfG9rx)SYOVD@RL4#e)f${TO@Pg&+auYVPdAYdc3Gjz=-kbh1bSLgfR6D^#21s`@%6h3#-c}U*sJjk{iJe_^GTtgq{A@g5}*iGkZ zalS(4$_~J~{C@Sa%Pjsn{$1Bp>v(`HA8!LoyxOnM>n8Js!Vt17AC(5^e0jQPIC-M; zyKrtR0_O8O$xt*tUSAKLkGIvSM=TqbZ5M$(X4`nf{~c>eZ*EnD`G<%Xy0r0W&sL<~ z;LbKo=@MXoMlL!{&pQvmHho)K9rPEPg+`JFZn&W(JDJXxn~SFJczVX%6JvlC8n`p54DGILqs?|Qw! zy)ew@8VN?uo(d4t^~#Gg*9Z?MA^@Lv)V6K?WS7CB`u8Ov%TJsYD#%@!ie7R5GzM%g zeyz;H=lx~2*nBt~uz6#w+IG;^(FyvVwDGd(GI+ki=h{nr>_MC109@V>Z??S0SRb_m z2$&ikdWXX1UQ>lE%;z9?pdc916>I8w?y{-9&=5Gberr`#0$mgea z{U+|rM%=WsVG4zR%vYf?9Uk&Jr$cut15mis5&l8oS@=P)rc-yy1MM8@g23DPAJgS> zt5<9T;k~PH12Oa#RYs5!vd$v?Z^HS8=f*H#A6on+K8M3cB-i2*Fg&HG9Bgk@8l{rl zYsa3!$+HT7bj=$t!AzS~9=xCaq!*_w-A-M16YT3&7mHoy;~KP;0x(=7fai~Q&}PF6 z!B;D{3d64}`%LdwHWdWlAH1xOl3zzw5S|7-k{|?cK%O;4pwkgw^Ni>YvR(ot>(T=8 z?IHxiYg=80@WyS{U2c)O$)STPFVpe7cT~sROETq=q#)7lVS3SVr2^gX41Vq??Ji<} zjgk>2|6~3ixWa^mEoDKJ_39-G5OQ@}sk-@&F(qu!G89DE>+&pWYa+We@R+#uJb&kh zF3;=2bbCKn_i!h?8HT%R?*elDBWcH9?>`UVcB^KDk)m2;m+qqq9*4b&X2s@rBIE7j zE*lhY<`^k>0EhCH(jw#gv$ZcM(zSJB^Qs38=ag=7vQlLLPfo%i-968y@-Q z{x(Vx^lrE>X_CRycpdO=pow*N$+$ER*&VifW^!7og+T24|0e-^4cd2C7zNuJj3lQp zdtk+y1SodZ2B4k!pT1_ph(*OE9Rqr~17?rUS+VZnPTi1hVPrY869A{F>ISdH)c76> zS1ng5s)S~6->$)el^gf_D6|>A^$EN#dx`H<9&k%0d!tpK^7)MNVloA zmJx&jI-FJ^2a+e%Cdq)@9fIQ3G0GVrxj`l*T>v^T@_7k5tE%^Tq%Ji~?!4`|0ya|D zDCYe`qj!(810ahx^1bxEy=NZqIO8g)J_ci9yrt``?(fQr**9A@C1+92AF#L>KbnGL z-E(-+Xe@w}Fx4PJ7;8>d+$_bdewiYhDV$Cze2SEQ_K3b?d;oZWV&SIM=sq#o^M`hZ zvK+y1qqwXzE}VsT#_H8n2(nc61Udd*g(w(R$7%qx<0}3pvh-c|9-AP3 zKbz5vM$gF_QLzM?e`*(C?zFum19O}8`tvjoyGuhe>LpwT>?qeCW}oe|$GUq&(5_)w zt0%R50cMq`TKV6C(0|~wftY`j`s2B zTU=So8H%GnSLo$1yGG2Mms zekOz#?vA<>kRDKZNlf9vXw z4L+y*xJT%mKXmn<;s#~pVY<(SKVY-?jip5+t{>HnEHWhNc*bq)R^;HRpRPAB_lEfz zIS@EY=%uHTr8?qDp|eJ~HRod96)F^IZUgT>a1IQ;XMT-f-ODEQZ0I%rIe0IC78j_3 zyH5p&2SHq>e-p#Qw!-;=v$H2`=6Zq~F#Yp66rNy?bv95k?a}?MqFSfwNZp}?;j7?T z8wZMl=ZwPV%!kjeZ_qha-AjeeYgeZ|uYf0fdH|AnN+P#kg}jTQJTGw0n#MU{bNbe( zxkzyCazXPo1?>ZDy-|#Lj#2}d@3opIX~MV!!}2s!i4U1~_!g7qmiI`CSrgu>tT%mf zPr-6rGnUOoE(^FVY8X&Vu@sujVbZu)wn^^+`Snd#ND+&tF^XmYD(jR{W z2XoZJqmk7*87x-Q-%9E8qzv;mYFfgg$+=miIb&5?T5WmmW-5aI%B*rEd zVylCoOHkAkQR-PiaR;>}K$w|2DXdyEOVL|r)Zu|8j?LrqdU=gcH_Vi}Pr>4~5QN35 zgUaCY^b`ukN0`UPZ-Fr_RncC~QX>;gDkg;l*3f~59qk1x9gHe;f>k~S;O8Wnf}vfBG{_F!hN zveT|9VrdFF*nd!kEi1MN)9dW3=Ks>Uff5$*;y;1}otC2ao4tMy@pfz8wv=?DMlh}k2 z#=#HS`{z{K3X!vc9MHmJEdi32H?NA4y;X7~xLC*+J=DtW$if(4g9P@6dwd;W{DIJ8 zc2-}2#bOP3R#^N#WO<&R(}4As^K55|DXRjldz^I_4`94LnAL?TjSqvN%PFgwUbYAW zXA3GGF(-c5@QN-AA0)`mjM76`Fe9%w4_sDj9?lLOuGW!s8KD^|00h-=zCf*2~^X-Q_lL`7v#3eEoa7Y6@fvo$+vyE#1{`Ie4|NQme-wAU0Clyx~ zMcT025QRvE|NPQP{+%_$B!%j=;kx9WHl8tA_cazfiH)2qcBB0GUpb`Ri>F zENbB*@1^(dhZp&H)8n2Gy&v+pQPT)eJ)t$fJvF~s6b9Iv5}U#Tbb8u8nCSTp(kayGIL4BnJnBE)S3)X{CI z&odp|sRC!a&2O-6|BvW$%aUcqVdzwP0(BM`o5%bo)@X~!`%?=l9bo*BWClogMmshV zVFoWl|Bm|PxyZ6PVxtVxli#Kb8YQc_MC~%)l~$vP9~NaRNW*p$_|oh^v@>Mwv~oQW zimdWG)BMvd)9aNoYIROSgzwGC_%RW1d4P|iobsS7@)cYe%nrY4GE=S2*W^~?m@y$u z-dj1%W;AD6McBVG?+ixOS{96{Ow>m^&VQM84g>CNe(_A^QZq|;1gW@7Dp^J+$8ESy3^Eq>6bp zfMQjQ8*aWOY<-=umTQ9#wgzF)f~>#miVW8?)p~8)muZskgf_;kE~8dPE!;oEFwA}IoMpFvz^B= zALjrE4jjb&csV~jf6$$0f3w70yM0~>DXQA~Ri=BvjW#v}8$>AnZP3)?{H8L{3qkh` zi>-uC2Re}f%zMk)YcCrbJ^SW1YPj=}p);&&ucy32lAhZIZj&|0)SngT9Mn)R50nae zr&LF6Tdf52u(FIQ=D&xX1wixR9eEWHxeAJbAEQ;0N=kD%OJ=V8hroppj+We9@BVE4(HwWw$g# zs4e(>Z%?Hg#l%LTl3li+e7>77IuvVX(-P-{PEkk)IMsSu!jv_gfSex5IAD1MV`j=t zzs+~)Lrp|}DH(}H2Q%;H$vR+DQqdB20Qre>u4K$<+b2HY6wG(yWH|%%iqAHnME_8kps6UEp9zX%lMw9o4oehm@?A-lX!OZnk25>nE z?>3PQ>(LKA8{$OR*)8>f&X4}?E>-`VBh&I0I~3J;h@A1 z$q{tIVln_b8~lr%37#Pm>{Pe^{8O;8D$TDRAP%F_0uqn@{Q^sof!XBrs@eNRBXfZs ziw`s>%=E-&@#tpd-C@vpl5Y&`3g%1Jyn39n6~epwfX!qu51Zo+C@vJ4W~=<)SJuPu z5(JqC+}&UXJe~v>ZKoye*zK4Bb1r^Z`Js1wc)8cJ+i###eyti-z|EabQ(MVSi1}x6 zeK!N=n+^|N70kNsu7r&bZy8T#$^?EAe#bv96D4Ry1#9iP z&{CO|M*}4mI&nZ7BOI%N=$B{-uu_6f5fxV6^>awl>vp7mu)Yx)Xq1EuhK&+!*J($cOEyKbnAQe7pIe>K)iYm4sy2gj`wPCI6mgjGQO@}1SJ9B>w>Jy9EeIaOJX&f+kF#{{(JCKl%hw>!pz#_%=G)ukpB}l zSk3-Vi(dL@^43Fjsb9whSx4;cRwq{bu8a7;^>a<|I4-N|ltthdRqH3U*Se+#r9S}2 zKkK2pu`kL6c57O60}>Y>$2~|7SVxID-475z=Iv8bhm4y6_#tq|@?o2yN3teRmZ~qE zyDO=WZmUUB^#6taXxQ(8RCZuDv&TdpAF~1{oo?~$`>Zh=(Ki;lgATRbnrmOssDjqt z`{AWq`svnsKEw|JW4<7e=g~1?9lUOEo|=BCU@tNzwKUL@`6TE78E+D&bg^NvZT;s7 z$t+vV^^GtCT$H{@tr=?eNt+?(TGKBbDc-u$(iuae`N~cbvISCHJ*14^bryK+D|^m| zyLSyI2xJDZsKC9mAQq){0IgEMIyc&QDq2<+k%w{-B#PfuyTNR;&a*Po2fu)bNmv4e z8SloR-pAmVZPL~f2}#KeL*h;2_=jY+OUzmES;Tqzae#<=sZJaqburoA9fi0Szbua~ zUXvn5lJP)sC6}P&cauvWCi=#N>%}&A9jdEFY2;uHLJUCh?n;qLG(vXWn4U_8Bb79Q z8t<-==3JhKWHet`&2*wCN;nPzeb=D__q(uo(58F!Z1o^k^pYjoZ#Nep+Ui_^ z;Els@tOR^XJq{*SPhocr^p54s7zTsX9J=Ss@6T?&kF1NihA>cim@^rqMC;ff6(f`_ zgP>$pf(D{WStT$im>YD0*1A6dK~YE8s+3#JRr$(q9?s&$g=|a8RDB$LNp$&67-$P2 zpn6p2bQJmq+xyeJHZlO-G~6|1topv|Nuy=jY9)j!H~JoL0L=$~ofdV`c@RqAPw=TF zG#J2o5+fs9@;@mgT^>+S(J}e(ZxK(SpO99*3;l#}c0M-vGX{)h&S%|!rI&P=XhN=x zcR9Q^EOMQikrs^nGV}3dq6)um&!-D}aF&H%1hj|5M#Sx6QVvE0k4HVPKu76wX5aj-y8o9#R6X>*!cFsR`PgyH$& z0<8QmN;N%OJSu07#pX>L+(>LC*Afs+NLyBhLD5qFoADr2J^E@68$HD7nfKy)`4kEY zO`RU$U{PR+29(xU7$(!=EZ5dFA*NomxjjYc!UY>ktlqW9!|-~-R!;RQ&m`dN zlGPxg0>T^WVM0LAV7 zMwevrJyaxxogks)x+Ad}V{4L(PL~Ba0`6YboY8-EZf!W6J$N^sQEk{ABL;)=2TN+A zo>xM{hW<{lP#Qp)Z!A?Zg}A<()c-?EF>C>ZjXK9@AX19DVKPlyO$mz}-Bt^62lWUD zHGW=$0tuznE3gw7GH>a(-V1G^N-`dBQVZx$r#mTuRGrquIY z9)^=6?l^sxZ(Pd&{h*m$TYK=JRkqaG&V&y9-zpbRRX+1#LlZXDL4!6!)P z(Vfe2ED80!FtG#T1t#7CTecD^YK+zMB@CtCw1gW3Ef|$YDSnx-C~rxKsX3_0aHwqd zJFXGf|Hc}-rl|VK1L=f>7!2cCh1*Ha2ok$eBo)$U@AFg7oT2-2nENWG0>u99b}1VY zM=C!8#6^FdM-9j4{Foem6DzXdS`;7(^q*A$;WWR* z?$;I|;sA(B@knlC?}^XhEcTPT_$?0?s+@<03yi-Fh(^=>zY88}ds>nq1NVDYY)RQY zd)boOk$%dB8EW>}=t{X=C-)8X*+_W7LlMWcm8on4$?fRLEiJwmFzk#|F|C;wX!f?qa2Nqt7b&GO2z|pbHpI zsstUTA*qb?lm92{LJ6#OId zEV)Zlk9z^#+Yg_*M;IZyRCqNs)%P|FsNOEUOl(0!Zz;ZFhaa>_cISh?mu@u{?$l2X zOX;pCVGY61rZ{P&MR=P%V5=g$pH;XB#C^@;yO_DD{&&_i>0TIQ$oW_@S!~ z!ZQcPu=IDGp)rP>x&UY{>>=qj{Jpj3Y$_f}9L(yVvW!wK z?+F7eWI^wJMxdfltL1yi_mCWNte}hmEQ&WzeQEET<&4s~Ld8EK#f6=K@sHPwfF@3G zFQ9Z?iOZJ?7$?CBzPFc>E?jU=+k{bd$TQQ#+!R^4Gw(cb_QHP)S-!?LK!8V?gA^g>~xWE(*d z{VMHT{c~(WA_Ff#L=kBHA8MNNNY(lsJ0z~&;IjGu3=j>Gj(Wi~9tz6hvBNQR?LDM; zEn5j3_1{ztoVducSmhAiQq$DYiv@*$4C?V03)4=8=hCLw0(zcPmm3QA@asb1ztmI! zzqu_RCcA4&=(p(Yme~Uri4+~$rlkQEZdSvV3I0eGo{{j*XSD~((+6*9l$U|KG>|xLlqI3ND&3A2(baJ0`3>r>z#v6j*H~N=2Jc_AJij_ftno&1}-;gD{~OyqYrMsrK1diW#5H?8#GVvjvrCzz;$?sJ)erN)>etd z?7|!X%(6@CI}lu1Ek;jeAPWHJ_ECbs0kcTB;T8ZzK)Sz=Y4HT29Tx&x%f}7h5At%< zwiV2*hGMY4#1*-vwi;}vvfA^!@ty#nc0h^yP}25l(*`5?aygc88voMw?OA}$)65B$EpYz6#%q3E0gjiXwB=vTI49LA92s?zr3aF)=vrY|HO z)W;o+mP7>frq8)Bd7M?Zbs|e~y#!xfiP5H=CRRc2Ya(NHpH=G1ha1Mg`RS>`z>j$+ ztEYu-3D%)ao&Mx!weK4(Egy13CdCEKF0i5*=TOX}=!TWZY`QLCL15P;Jt}6{Pn1^) zC$D#(Ag~!{$#;`MVy;mxYV}?y3=}F5Eg?0G_}3lvNilmY~`ejyJHs4AZ| zrXcOgmC+q|+AX;#3_M-E*GAn44L$>_u7Ul25G3(;QYxh5$dh3f{0*HY4E(?{nau%R z=%5xL*yk4Vl6-R6YKx_JR7xXdQ9vaO>>J`86l9J6Gl_zL2m}}9fe}i|jWrl!#A7js zyh{`)xN)<&OY z_WOyFVB$5N&Ag0lY(St*SskX(xekMXP^iO~P?qM>1CO?^vF-WM`t%V5ovC5e(pMmq z&k+zRAbPf7aI@al!@=v!+g!&)_w8dVc(~&%80@YqtO_|CsQA=1-_<2C zl#MwRgrKTw`78n9=H8Y!*$CvL4qDr_9=vwbDv??P2l-Qn{)O+!nmAM+zA=PqfdeU+!LUr^DpcGNa+(Q`hXyhm;}Z zQVmk4)a+bHSqj`*Hr(2##`qZ?5h1m-luNcWr&|djlQtR~Dgfi-W^t;#7C(2-u+@N- z>q04$00w7^5_SahXSiX40{9PFxBwq1cl}+_q{alDeF*IQ=LN(t&oeYPydPIj_K<5o zgo^>=wjoS<41aUGTNaAU`ki++I|;#IDl_23SHU>&<8d6w1r|qufZ@%0KDlaTTiW$3KY^dCoHr$YQkr^ol%gu>GOVOlf zhf``BDZu5#TfyZeO}4urX>qYCels$q6aV`{P(>li%)i}gUeW?zIFe}@p5K%K{@&H8F=_K6c-TO z$82l6eW}bpEp_iFLY!**_9(Vv*NS9E21$UuF`9qHoZEetA%pe~8^%I>ZNSptTjruh z#b$TcyCaFY)F7?&rnXBA#j`v4pLf=rFn@z(vuN0H1?k4cn+Xdv{|1g-&%?Gn0sU@k z=4v+Rd0;x@H60rrt3$_ww}?R6Ym%SDlS_^O>jL+Y2WC6R@%pEWyV4^ z9ol}iBxv&kXfNndUlqX~d=y9(Dw^lJ5}|o~tEh-!H`}VfWQ*(uAz)!AxU`;(iCZRE zRgu7v!(NL7Z?GxwX%Vaz8Ga?dCGsnRq6&#(z9vPgg_7zL!>aPD7DTey6_>BgrMPPf z3T$}gJVS)ZbwtdnH`f24!V{mhFo#4(MLGmA8id}wsvQu> z{ZWSZSE6<}b~(YF5?u^&45hhq7nJf$FqAFzUq{HEym7fGnoZdJZjr3Rmrb(0Kf?_d zW^V{ksl)#EkF134%(LXHmy+GhfE~1#gI(kiexZ{k{&-d-?pOB}(S|eEQD2!7``VAw zc*~H5r`z>Gx2!>6OtandrZb_^jfLx~x5IA%V%BfeMMj7}!_ggV8qtWm?mhFu^=b7= z!q4xZ*=-=2-E=aBBHB$W3wR9LM+@1x%WevdvV%%0CuZ6GToliW2zbR3cA9^L{usB) zD?Sal&rV6ns=WABbk$mKbrsR9+JUr)WE&b$AOKYi;?V435`mKCwRQ}a)=F_WFn+Z@ z@2%57torO$)6e$wD;QS#S^y=xdR2pXa-doS0C#AQA-0>J`BqVv6Ca*>v(81*CLhl#Ak7@0SV0 zvip^gcy=M3Fg)E&$srh4Y+$`u_I~fUB^cL7Y^Rauvx#|C^u44Y%PSX{MwGXo zy=f5T0nKK9HNL!2<@{Iq3`jPcxR+h1@o74W&*@Olh zt72%jYwQ^x-xbAbz8VaHfc-cM!LEQ_$vG2Pk*Z<*#SYGk zV>1VXYq5#;`RqDzS8@|fHWG)hlN}F|M05`;%|O3q(fT)=)_i7%y`$MIPrW}MF%mo7 zJSA*57=kGL1YH_uAMPt9o0a4RV!*gTT?kO5YAt|rx_U)MB%76G--oB*#6wZ6=)!j5 zSn()c&4#Qg&}Vg+4cUKGU;+UnEd%1TY`Q{xHQ!-sr;gX zuQYX&0^2Y++^Nil&|D;IO;ts=nfW#97Awx%;oPrTfUYv}Yy7-Q5W!|N8|P{CN%WCK zv8*IP-Btvv8No$V16l0{Z#4-tC#$44d&X^i%sSQ=mWXwDZMQ}3n&Jr#N`aqsAPy-rD8Zh+^Rw(KzAzq(cW>vw(;SR$Tj0NY`C>KmJS^7YeF(A6&voNSsJ!~ z95{<$Lqs&8*MYni7z-iX%5X9WvzY`a*=alIbHrf5+4MM?Fl`F92mSn5|1G!rlO*nQ!8VNcgDFQz_#N<{I zQn^#c2}ZzE{t@#po*fiBRaz4zE6(B>8T-{|`<8!$V2EHhA!&AO|9ll`sorHGnhIi&p_6fyW95pN3;UVf^smRK3 zQoo;rF;Qz{68AX=y6_o>;3c?LvGc=?$pjp|LMV<+vYY-`Qmh68r;B38za)!ft*`_v zV_m&PvCqXII@$#V!h0{Drl}=HY_}K#_A1~s4O0Ny*{oI(&q~R1py)cI=sQcuYFO2Y zma@aGvYe!D!)c$MVR)akAyPJ+_Qe#Or#@|}o$ezs?R*8h8H3U5(&Ac&OrWb`zfP}g z%6If?Q*mveumysJ@*|95+W!)>*)>+!@UUGTE+Zu?X=1yR-`qcqtB7jzTRb9D)_PV$ zX%@8z8K%C4e}WRj0y}H+Q-LbezpmILbe-GgPk~Sv#|*b z0Tn9Xptq`3?hLj+zgt=pzf(Yrdd@0C^R3I~;$i=Myy^A@@LqgW={Xr;c8pT9tMTbz zQwfMc0J;r7hn|nMSrp+SkVSsFODn^}#l|zd^X;8kWuL!%0c{{8%g~Beq#;0xhE|P$ zZWDOs1&op~e8@ukNEas9Vot3*HiU4QBmvz@$zrHx?j~4v1}Q~8MWM9D(cL@kDl0^F zH2;1ov14$uxOTJe*^q%4(li0vifw!#WfNby*Dn=yIYfMW@-JS9Z!_gzU07|fEoTxS z4X#}j->Tor#{sE?FFZ0s%hVI_ZGu}_7UM3oi2#!JIslV_xKCZins!Y-ElsO-wIMsl z9rbAyau#23Yw>NiD_=I>u6G`UyXuwcHgH#To8jJ74Z%RvKLwg~E5&BI9k-$w(mdT& z6O%#Dc@fswHd>ITf4`)F#^;l_fQc*M+Ck2m1*XOYw^fU&!|EF1+OYgqK$ORU2aAPc zMmZ;{%@o@s6D`}3$Ozp!>$;{|ErJ3^qGyM}4R%!9ZFIGL+Re<06Q%-Dxs%+vc znw@AK0ftatRa={d1MM3{v(sfQn$=aJ3@>o=HSw(2pZc+;)v|=4Rc+^EXDEwf_(yDC z5-7G~3yRH`87-}znMYNrXQQqz7m;`n@H47r)rCd1VqZS1?#KWh?s3^TzL&bo$}!4t z(w^>B%i8m6xR67H`kqNahk=s1W(DS6G>;^>#uu7LIa$bBOWrhGWD2>aXVa`|VL`LM zyW%QcyCggkEc8$KbaswAR~a7Xl~;GLAvFQhY&<&?Eq%M7S+9KpY#ky18^SG6;eyUp z|2Aap2yc}OqLquhI^=lzN4Gi8j-M zzq&z$XFnw&|CxG>>auFl-}FnEa0Ry?OHD&dl#r5Fh3Q+%q5 z!-}$U4nQSz*UQ@a4sZ}`U8r?-xuadLYBH44U%2Ll~8nbnU2r17xX+i7hoNr=CFA(qP!eeQgU1m)Y}H=sdg>*UO}B9vb~Z z+m|jS?=QT~d)7N>du4%Jxb0DT@b)D8BrtZ+hhJ!Wz8UJm+v7Ix(t)e_JP1!25uR-& z$_lr!NXI0k!KEUrQXVU+GH5Df#l9#-{%9*LSNrtf?a_F3tF4_SL@%IO5ni&~kYh!? zE851NZ%=gr843+ch_)&r98R>AP`4N>5P6lb&5tH~3bwhPyP6AbL!qN*4;{zrdFWW> z4`N@jm5*dh+rz>^c%?QJcp4}qkTK<7U0F5tTaS*mJfMy?uivaleSXfS3v8V_DG0R+ zNv^*rh3(Z%7CnA%Y%SC(9Cvjy8wl5JL6J6*R$B1w9?Y_-#uWzU>^l`JBJFV>=%GtRM`k&~tXjV%GKYp@6KZ^8Nu@!kV6y7GoYi)3?SfwP2j{nO;+1-5wSmV{Vy7 zpuKK*ssJQRFK!lRQ~Gv(LU_-F@|s(SXX?0|C(F#2pzm(*&mlG3Jdhv(%yv%+QJ@tL zC3Jr^5XLUJSaHe-p%jqo@R?#U;H>boOA*qBb_*7+G9Sg+c(W8~Y(r-Z8e4@r=jgO= z;apB};FrlOdV{_E(dx{cpWeowjh)3=1%?$bf@3WHVDQULx*Jh0qHQ$!pfl+A)#*u~ zb)#Gapgpt&R;00Q%ZiI0C%CV&WCIE-o*)J|(YQ)PA}2tt*l|no>9l9?POWTmuZM+0 zKGZ#o+w)k_o$dC4rw5N-D^3QFVXL{bT^D;!29Mq=9E4j9sMtoZm9P0qunlq$Md9`( zFEHF1L;y!LYu9%d^|wMCAtly6=Y7E1r=iJu3iy`s;&*Bn8n~47c(-pIQp{D3Y~F6# zp~Y=rxjI|xjZ=9mVG&@%dLZ|Go)L6Yu~{*rdpQ{bm@iHp?3i59L22qFJ#Z{HY z0&gzg9g-riq*mt?d}a2*nqqH!=QMk(Gq&fihq<8d)$HIkf$xesrSZE4if(f2xht&K zsZ$2Aye~Hh=yIH30bFivtfu3Bjth6%eOQp&;(ZHViPwixn|tt=ghwy+1^IJn^xz2qV9 zR3|$J?XKl2Mtzp*avG|2dcarZ%O3*Yv1|8EAM@C}hiZ#*Fo-kk?BbWwOvI;gX())PujWk=J`nPM6cprVO0DPALAW z;Bm=09Kd`v3E+J`Mf|e2-)*JmEa8x=nC7ov|N8ac-~D&Xe;P8AcmnViEYg4f{?9MH z$={5R-#`57=jHF!PaFC@)X9{lq@B>t=LB4Sknx+(S%&g?(>XP|^B=i!=v{^<0*Yw{ z31eFESxkpDZ1vOA%-W-O-n@feAFL62ku|8{$NXJ-p3{pdJn~juzx{Cd$GTaDf23S$ zd3~LAdz}n zYRdnl6+M(k=Ex*UIA4+R#iyoXKxBC%Sw6r=d8T8XT<8M#BXv-yp#Sne@8vaMi@* zDR_UcLzPdQz`K{;^U<4(5(%$P0tAJ1fGzd8{U@bc$RG zc1*8ekC--#POb)@yG!xeF|XkB?3!T3H%PO)^_AjZ7pbgxljvDqq>x3Lz0-ZgQoM+M zC5Oq&4-(R0Nq~}SDNWF+o})NAf;NMSTeXY^)yU8@$Y?I4A4^pSWC~JGl_iCH&4pSo z5SO~IkEB!plTPvcyQA4}h};_&@dycr-wBJ{S5G+Y@!ns$|8vvd&e9RsIO)2?Yc zxLb#%ozk5r$)D|hN+ivT@^Vf}iFO1a@)|13tRhJct_7Eq5WJ%nx)7X&f<$ZT1`N>2 zbSgDXD~P|l5h{mI2_W=tyGo;tETR{3&_-qJCMSF>A+!^(9as*gx(+|n2oSRa(1B@v zXSs(3yRH~+b21gcXm~4Q`uG2fjYm7^DQuy1bf9Z3LO`HLi{S4ZYd>6dFoZy%sC87F zj&l^s-Pjxn5rm0wua9;pzIST9Ls%Y-FMo`PUS>5qj}3I+R}E~fuQkx8R1WIfB^bII zWUwjh_@d&bIHwnr+#2ezVWx=UiH50#HbFo&kry1W!g7(0VpgE$3r(ko5@kNenv&&Md7b>81JDLg|wBY0nLlj5`XM>Q2W0 zh%UDzSymhfZsly?nk8@8|HcOQpn87Vpi2ot2vKV>-z@4Lz3E)Jw|#sZP=%)EI(J--N$K&~CQv3dJIFs`#{UaMnIY_~SRr$!rNq zQtDKfNU|1v9Vun?onwUM)liIPBvKbYWtfg?M7&+gxAb_1g4RARRK!!4kz)ay$t=)w6pD#ptZPm z1Za5=9Gt#ptV&Zd#A}nM)P*>>nyPZor#Jc^2oIc7iHcGTUs6B|WnGfyKt zKR0!}iAoczJjwO1$<$&szT+qYi%%1(2%5$(_9A3J`)N?vsabf|?hQ3XkS~())~~H% zYNmo1k{W@a-cWRd7{c=03P*Ua)B<-g^``2POq$B02{g_HwY+))DaK>=k_!Ty! zTEIrWfvBjNcn4AuK$Ty@)8V!?eZe&I!Y4(AhHB95iKY=Od=&qsXmPR`4t511{Xx<&_pT7V5k6H^BLLAY-8U{h_?Bl zrzQBl`1K?xz0aN083*vQzm}lqls#paLe*3m_$xUq zD5W%Eg%KhdO9!l=)Sh-3gTo0l- z!-Hu5l9)3kZuwGl@woIoc7IB~0nu*CFg&&nnunl0(SSKhIn53&Vcy?N16ku42<4gK znEV8ITs^e?FO@;N=5%@s%F(-aCmw6OCzpFAJ^4w`Ky3H1y~9=FbR+auJKwTL zVFA+XQ+qVY35jFWnS7o>Y?94>G5;@|+5=}ZcMSdB+o3(&OgutPWNMEdE#`lhoKDD( zZjhK>CUn`!657d5a!<2i!Mh9H@mwj>uDvq(cI>wA&IRlbdMD8U=l$Gv?>Db zht9oy6ago}xRcyT896KL1k)#AhLR?X|TE4*J-lNwb~}L;B!J zXVrf~G&@p!*`#p>e#h;-o#Yzd8C0U_wC*GoZMk-mX9%1ALuhy3o-UzGC+QL*3z(*Q zPJS9u45m{bd21sZ_k866`%ZX@zEFONI z=iV4L1e@RkP>$OOH?$!=S~73sVp@KC3@tbaLuuJ!H@_p&Fryx#$T_+icYO(-U1~dc zJ$r8H5IPXbeUE20Pk`)VOWoq5m^O>$g=C(gEN8h@%#BkWFHF}5^Ngo>+O6z!CO1sqrs z(Kv)Af^@~oZuU&qG7aX<%po)BTC)~k7K3)j#TzDy%+J!QC8N1me=D&BqK9R z#!Ja*O5B-h-EdW&#^)_GUtHIs`7+PMkEVG%Z?S(7K9IeCkEIa&>CNSYtJ8W=CNk(0I@9x{&ent!kA*IXB%SeU^=U$|%Ze;)1UCwP3;H`-YPISwD*R!h zEon@zi4_l`z8wkjyb&3C)c>uUdhwq1m(}5pgSdQQ@oGIg?h#$#iL4#o^G@v=c@7z-Xh^?4vo}KJdZW$c(KQZZ*u`C zNJ7JAQ!b)0*FAhlSTmM{it9UR+(vCgh=+;v9E^v$-byzg3deoEcWgzXot$dN&nRl8 zyOfc6|Ki&{;*^8Kz7(UP)2NCm2a$AsU_ol%h}B^BRjuS;9k@kVqA!WjQcvGw-tjq# zRy?eq%J^g{K!^ga{8DXOmsU1U!^eDQQe#eB0fXJ{&HkX_pN#W=VgX)ruSisM%j(2#K8d7Ddiv0E^>-wg(Y6t<~Wq&dRB z{@FCX8|>E5&-lPWwa_#bsq3+!{-5LjJzHxIhv$6jtV95x03dpgodF<^A<-P4;%{+f zqof$JGXSLMWWP~UXjp5=mS$QY4TmkBR+0(IJUWy59EKi?1hqbW!XXc60s!CLI{ycQKDzAwQsJ>dRwmuv|BhI$;U z?G^0F_dCyiJMJd(j`Q0%G=pJgoiqLdvqtU@8u3)!@KmLXwjXyfM|=+fo9PDs`nx4d z*Z1E0F{{jOPx0*_o6_`fc4i6{d-A0EbN}oJnHU{Y=U&9}72Trb$hvGEEcu53IQ-Jq z%lY;2N0*}25Qf*wJDvy!s`Cy`(|8alB)D zspV@}0ua58!{Bdt;ybpI6JM=XDwmby^*t7h&+k{Seo*6 zQQ`aYMX6!;a-al%*;y9&c~~95Pn5!0_9zaeUnDT-!~+A=w%JNap2ntAfyb#V2Spm? zKn0B_E^@%XO$1KkpCSFgF$3!L&J>?N2o^`XF8mX<<7*)7a<|YgA=GGrEH~t@(C@TW z{dYfG!uG)sedCfyhL3030RY9Sq$&cac2TyI1e|5R6BGzqK=@~#aKOJ;cgL-j!%0 zlQJNrd>8x)ME$~+LMc%)e#tb_Hg?o5MwQ}Ifc6(MCi4SCfWPa%VSvU5YiG3sIlJQc_F``;G0etrST00 zqLjv9!}EEH(Oq`8+c3EF_xKTl+Yor69hdlt5An-UEZ30hg22P}f>zDO{R;+e#_w$k zsH{k9GKAKYEn}c)(fv_CM?oMcrpV_YzV#2&-i}YbXeiF}3hTtaE*KbOOgfZU>2d1Y zpm6^`qx1hSj2(xm&)eA(2ySDo2;i$Pe{dCtIF6GrP;cMBv(loec0s^*o{m6FEk~Mq z7X%c5a1MR9hMyOkDkjANSjWLG#kh9cI;Jzag&Biy+XJH`E(p}1)(;aLN*NMVYaQ`* zfz( z&u5nef$B~D0RANb5dH}S9P%{xTS|uTPl)RFKLpmM4ilSp6Z~Zl&Bc%kJ0<)RljWC9 zsD~Upj@EQV9s96?p&P%z9yrYCei8m@!b?^BuU>WQ1F^rNT+v#RG>$L$C*+fd7fP{? z-7*4RiugwW^+3}BC)uzSo=R z!2Pzp7WBQoBj5(U!_m0M46PrFe(5gCUc`+fMEqPUEz@%S0O3_Zyz_QeTFDiM#~&+$ zp7738-=T-=$L&*>cni(<+;<*9bquryo0&GI0`|1G>iGj^Z@%~>s{cFKO0T{0aX@_L zTGk@`!ubODyh9bhr?YJd`ou~o0S3-kvMbJh5K5vYr4$=70$=oZf!kGHx`Ls7R zx|Hg5a#{)D>Ic!?diYzM^;s;tw0Qm(lpd@x^@qhE9NUo+_KBXOm4^bA!G^xR&)}C+ zehd0M3hGDxt}l$S86|Q>(D#r!?a&6Ptpxq9qld>f9nm{P{tW79C1@+JqCAI_vkLYb zRx+%Nt2_3P!L1Jjebwk%fS=2zfWE^pu7k`E?mRE3GB? zOO}QL{PZf$PCz*5hQIy=@Cz#5;J3P9F5M`S_|By;s?Lg+zH=HqfCZOci9qND^@nna z;pSt$eAp5Ey&XhBF#651O9H^R(E(3I9n_I~!avR2zKpPIEROFXp!k9cNy0d^zHXE_ zLA&RXgjZeqC;5N$KdrbeS}{GJ0)bR$Rj?vB{AS2I^M1Y<-)>w&$zZ6!OPB$@=JMeM z;CJm{812CK0UOWYS`op`CS=6}%PSkX9$UT|E;zF-&d)7IXy$+x@HDf*nr+a8@LpU5 ztxtcm!J~fegc;1uz0-SH4hz*AsTD88-d7d;+!Gb6baGI0H2rET9tXKxfv|^Aau^Vjp9~*w})@9X|6E8kbj>1FD zNUkL}f=!;>u?!cFVkPO?Uwaddu%?7{9irtb+-{i77lKd*%D!nJ~mlR1!&$vJ~+l65#juBd0>y z*Jh`KuF}?=vqe~Dx}-H71Xe$b7xGv(0$?d(s!C>ERLA>5SmVQ@&{hiyUtL({@7;H? zDlPxStQYl`kP}#FJy`j2A>B*ubrXwnKIs?nlCaz{#n$Gs19hW1hyd?dR8A>)^Tin< zTIf0#{37$pf-g+xUHGda_+5+`_C}zq-~Jb*=5~E*%IyG0-m?^V32d?~3KBz8@oYEw z)-IDmfF~q82F5AT2%Ns_?p_J$R!9&d2+@-eBV&|%6-UNwRBbN@8^M09CLuK8zUZh6 zcx&|K#^F=832T}k&lzyXfbmLXyr-X|h48IfiFu*0Ftp!2&C-Dz3TH0t%^*5$Zt9tG z%&FI2a(s3(w$>5Se!&|B!74+}<@W36vi|w8%T2Sk1#%j*)z}lnr6jN^e1$#H)J-2* zF_o@ZF2*Cp>5LnF*KG$EOXISUU@XQkvX0I2(eDlDcvnMsN+v!A3*GGK1-lfpY7k&i zPa8ZE!h?DMykenNY~D%)HY3u^6A^OPzd`@IVE0m{*6z0mb2WB(v;g`>xtn++J>MI}uLb zYr?DaOSrV=wNM9vt7ikQigY&PO+DlZK*f&Jdduv`ipJZt;s%R7rkC0 ze{efz>y_w(Zh6A^OhpRw;=JM<%bH`Z-`t*{?e@@`RMR7(qkRQeoua->- z*Of%9!ldMvLILj+O=QJ(%l!HYb1;tkY5{KnY!YHXO|dB0y)39!gk@fL!e%<>G82~b z>-=uM1=ICUEV1Q>33>C!HJ&(>(5|bTztu&;x)6`P+1PvRzQ|;nButR^P_9-yj29;+ z&HgiSM92&G>7F@8qX;|`_C7Y#0_FLyfX*yt9RWIfblwoi=+xwr=q&XXr*iNF`vNa#!{ zrN+eTgS*m^wMoA(-RXU8sfD)1QR1&I>6g6X-e=*HH&4gsu}63t9znjBM{zf0qzpw^8W*EZ_VoL8 zPSf<8w_k)>-6Dl@wgG&D)c5eKULgVe?ysD)&){T#Fo$1xxADdES=!~ErqyYUts3!&xxY3Hi&fMOx!BHXj`+`+r7%nqOaPagdU#z ztU2PLz^W6fHd#0ezgNq^1iu%{thou{^)u6#wQ8Ea*%;2SD*ROo-+J1bCZQuh&YFPF zSI3LM*Ktl^63{*T+G1_^dR?k91}ORxw)d5WFJQ15(Ja-A+$T@X;4W;UX*GY4u41-hLm_sAWo0=3eyOMY1LP^(2f}s602*KrDCxrSu7QaRZGDEh2r6^ zJRgjQUFeBeYovt9nEO007FQKcNSxqkgmbdDjQte1il%R$cLfzSuQuO2{Bn8GG)Lp; z)oUFfNXtX5`leN<7bJg%6>V5iaJ%K86*A;ZoVSi37`Ftv?e`QfqMwP-S$myto5k~# ziP1Gq>QfRJ%)_5Ii{qu6alCE4Va%+Y!lqfAC`A^`8^k8=W@_h)`%~03NuVekU$^TC zj0JI=FBoqeV8sb@FF_Mt^D@U@WEj4qY~1WE^WbmMIP-A0c5y{!Wra{hta5e5h{hVD zc~3Cj~GUt3sQw>l4mjH}g=h8O>?RM)bLUOo!Oa|h^oFIWtew?>CP!p)B zgh`=^3R@+!0J69`OOdW7@=93Ei*8A-%JEbo@{x}hJl^)#g2(B7w-brF!BzAYkPi3n z1vG-RK~XrCB9CaAds~>aQ;&Y@O~ao*7%pXQBl7J$u&&)GbC#rRvRe7t`2C!9kFHmi zYIAuGKH3b{AH88lDGdj;SmiUT)bBGcXHpSsm4^B94H>#oE^ZmNyMSX;t)L0N~9%&DvGvr3q{T;HfPm)jo6dsNR@wY#33%WT{yZWvd731R4u+Q&{m%T+r z6fi!IZv1Wv^L7(Ru@lY1qpaiUwJMl@HSmnmTN1mXl0qn8BvF9dsNR?V9~On+$yFqG z<9m$&jZ@zf{oHIMB;Q89v=H+Aks)uTI3+GE5dm!jx=9FDh;~Ym^)?Q-6m~Md0y{MI zrr=JMZr1(f>M(D$P3m`NjV!;2DwzsA7_?1WAlwSYyVMrRu>35}8|wnr?$<{H+HNPZ zs)gzE!!eq6lM%D-YuX5pXux>Lkz$EB^!1hUdh9v+3b_3-oF5w_>;qtw{gd9p{L%>5W-7 zP6DLuE(LK`y9q%NXLG-+4+^v+nSfPG`NSp@!mQG_3|!pUIlWj(wq3Yf(qA1b*b0qS zWHJy?CEQa?M$xcswoeJC?FPlj`)GHntQKswpkcdEyWAX8Sit+1vjto6mkiL1t4+gi z9SKE-fVP@uIa;h0NO7oGE0@%zcb~r+-z*|}Rl=0e-^tsH$n`fuRk)oT8gR9g)}=+; zkzpgl1QNA$6gA(v;i4$osv~mR>5AT(TuiL>hG4~sxH(#lMty+59C<@|ZatdK=O=RZ zwVyPrtT#~^=o*vIyUcRogcWM-e-sVdI#z5JR2pOV}wa|)z*!*m(6u1cnX%?kj^X6s^n;vF1UXXV&HQL5yb+V9~2lyibZeG#Z#h{fmt9wA# z)ZmW!$DXMk{vEp1S7{hW;cDF{U)AN;c*(q#KTs^O6NODRum3;it?voAT8%JJxYbOB zfyV8M3bBD3AGcI{)wF|!#%L!D+(nGU-!bN*|R9 zhqcXha_C^;Z*N8GRnwsZoDa48DZ`sXBHB)jMe#P(cv7;B`|7I8`^tw?%mYA1GQTzmhrnVV) zb#b@3SdF&JoqQhNc0sll50Y11B_U`@Kjr|qRfvaAL)F_9!UNiNJhPrVsPkzLI&C2k zjp?Q00Jp=O^*nOBw*}9`@h%qJRyk<8AD$lEFJVaNYdu98IgS;VlDF)Kz*da%K1C?q z9R5Z;jv%Vm8qn{(L=;M6+F!uhl^7S+4p^fVb3kH;f=kni*K)`5%>j@W9$ z%Zm-Q$B1+u*zS#<=xvolTIdT*9#+hlU?WBZwS)O3fq6Lhi=oiAvfQn>v{yD?oopYc zy{8CmMT&^8u{LZ`SR3$Q6t&nCfZ>&(w%(6DA#HK7r&I|VqLVt$_yP9;+Y{boy`_ub zWhERVp8pD%-Tg&o+<0OM7~Bqw&++WdeAAEfePAU4q>cWUmqBpPDjhB3i;ejDOoc zL0P;u+2kY_--NX3wX}pTy3*!*vVd0w>Tju+w2m8$_`834D(Z>n@Uwi@G^z5u)Cp;O zRURQbl+1M=MQaDd4aLhS90slnRq2EGiq=*||Bz6rsX{TdTneSR_XV_-{r%#1nT69H zUUrY(2-EfM(O%VDCiGOJ)q)Cz+*)leKwGIhDBd5`R-h!LxRv%22_WtCs&K(t`IvlL zO1Orq1ZLqj3SYpsL>24>YQ=}U1i2dZrCU*8TeT7X7GkgSU|vw$Fk!_Z_IfXF32M_F zbAj3cRkz}Tdsq+5PaB8VIDfTI$)kf(G()Qe;j$j0-4 zKgO~iI2-pqJ)m|xMS%7aq-={h{^BB}74N_)k=hzT4qzs$#xHDBgAnDF->eX5^T8-IPRa9Pn;e|!PqYFH}aLLp16 zzyIoGRmCM#G`=pDR_E#SoYq?whdxysd@8Ohp+fNq(x1HwM%n9CuH{`rm{SIO#p26< z4E8|WQyz*Ee#u)KgyvJFEi2X^$Os;4(tj1;s>Q|x{(c0g#A<}k4P3$ciy%~r z*(^#gJLem^xs*SFs~t@FBu*j|T6l;yXOfqcO@lkg1nXk1%VMbG=9o|G=(=eGmo#eG zX*G<=V}Sh)viQY&p(bz%`wj$hyk7iJSB95>=(rq1g5E!R?=7`Z2@Ne74(yielBv+dBbw?`w5H8s8SnaxUoX$ zQDp4c)NYdUD0;h!sxG{A@($9coS|_p~W} zuJn2}G2h*Ve7$q&nK#4&*3jphu!Zdi-=U$x@26kWWcC&$3t_si6!}rf5H0sa(3O=3 z-EOM*N}=A+F7u7|bl6`qf`HR{iTEB^s!q_6>PtGXgQX3^*v(ujSy~aBCQ?OzTMKRy z7p+Ui7W@Pl)y3B91`e$w_0#pZ*_VJ(b&#(WLlJx>Jv5=BoY!x@ptS=cf&pB(om;Pd zGrg<=07pQ$zoCvpo%@4H@v4WP$BfSq+G+3-27NR-iqlQCp278cOwWz-L9aNNKRju^ z2y51U?gjzrL=kWO^b^+8td+>kX*U`qRoPL3O=}FIo%ZjB(4-?f5UN>rmlZwd1Vx=< zeZ!ywqYdUEJ=NE|36o@iLHkGSH!09buwe3Kh$F5E_nbN(Z;Rk(!gcHXHVNG)@RY7& z?BF&nLD0koA?mcTiI=pDw41+F7K6Q|!~2Bg_RGu57Lx%uy{>eYK6f};2mBoJ{=p{c z05$7B?<3VLROTS3Ld}3hbx_lRL`}|ITE>XadzSzty@&h&ln}WI7CIEjc#R;??681p zs789=vBpd{k@R-BUqFxHQPbUpl-66PeyBOM?|_;81$MtsJ7n8W7uhYuT>nYL4hL_n zX(F8(6}Ht=3}2B6urffe04wXvUKKyIWS{C=%hI5-1sTOex1T7qEGnA1C7KgR{gcd* zwiQM~JPsP*G`&|qsj}VHq8P?tUtDBBAn4`sGkrkMKuK6dG?j5#OZ>GhG0yr)m#1fy zi;Q0k2SNa;K=CU`3DFcbHd2KWgR4#XE@Z6uV&mx8ox|ks?v$F&;2m|n2|ce0x^k+j8 z!YWJd*mj{{;Rq=f3MRgwbW}RpR!SA@5vvLyP+s^pxB55->t+vJ_%QJG)dRt8JsDQt z*Ky14%gt5U-+8Hb#v*R|Oe5!`OJjhG#Otb(g+=*Rf&>H;HkM$ZgPLHVvURQXq)ojq zl5#nd?AfhFPXTg*K=v}OdTSX<9g@T6JNFB0;`UI~eU z>0W0T&<=e!0#4QiNx(cnq1DhsFX7O_WGjuJc9VRm%`PF1rKUNN*4iE3&zIAg%ABwH zG)msnWC+^P(dI5+WgOHc`Ivj)Pr{FqDoCh^SyY03imr}8Uwb+(5yF@3rN_O=z--%5 z68eeb>JNt}&?TU$$)vplts!X~#qzO2N_;SX=CJP!g@h)K!!rgKQu+NpB><`~nVNJ< zOP@WM?3VG*ZVCO^=ww*%_jQH_dJ9fLh)fHc&&LGXN+e)Sn!9z-SMe48RTXZ(aWMx5 z3){-U;@gd0TJ~&ed3D&p1T*q*UKh~z6ODl#=T~K6!iN(G90d!0qCjxK)AK=KEJFz3 zHf?LC$XOU%#)j7dC-BnUo-IJ|n92ZwNsXBf4maS2nhzWn0(wX%2pIoox@^-UOjRJd zmDxb@ynZ3oGcYv<%#c!SQ6p z28#pfx&fhD83FAntiWiXkPfa0gsPwSVNZDWhQrtdLk?P!Nd{r8X9Wv4NE%$j`Y7s< zus$Dgq6YL>Hfl&33LP-%uxNNTEL7pJLZD!DID34?qXt&^a?qWI8unbmd<*$Fh09(h;b9bpdKwNxtAP{)p2_ma^!&CPnR7??{6%O!Yx_Jh>q+` z-D50zNtT!Vr3eHfLkWZt7%bA!5G+a})%9ElAY3|mFk)bb?32}nzbEaIDX5Tc zl%PvSk2lpPyp|}al@%5-unY49u|Zw7O|k}`qtv*R2f%Q^liaWH&-T+X`$@p>y_Tl} zr;aB8s#nE|KxuKTq98L?Jo~zg>8!?!rx2(09C$hL}i>l*rsrCKDvo{ zpAq`$TRJ7Fy~)kG1tINvCHL1k*v076cy&b1p9)N6RL>|wx3lm3D+IU3$iM-ndPezE zdF%0^&E2dUl&8CG#Vad)4s!NoCD?Z;TL=6p!=k?#RH4HV_N}*&={KmO!$k&kWUu5)Mp-ZDk+%sr0I`}>2`Bi8wvClb&6{I|a z-vmk;j_xGKajMu%=j-?0G9KIG}T$N5J}YLKAR2Bh>Jk81eF@s}2CP-olD1 ztoEzNP?!N1<~v?MAPMv){`oN;u1XH)rkN8;&y#`+w>LWcqh~qrPa;Epn0{w5zFf_8 z2*kgSmf}1u7(+XrZ_}CC>Wt+!<~%8=R`EO`xY9v5l;OD*ghLakG(YgK3-7x>6L1}V zpOlx9^T!Qbc`YHZL)D)H7CrbQ+Ue%)Qb1ca2p6EKYm9Aq=NJSd;f7?sqtS+ zffWe+xV>;1Xy?l-sqp1pw0IE%cT<}OEB-CS16Die$+U@b@k894rvY7!dxjKA@>T@w z?DJa9jvybg>NVqCbNcTdjOAU@{v0Ssl=L-^in~mdQNExj(b^?f@*>|9tVG||wO3i5 zX{n+R$)}>YSr;F4j##TLir43K0gwCGr9x-mOrhTblS?CEhYBbB6srE}gvNy|)IuEz zTD04#=%_5TQGh>XLfC3u^aZio)Q_Raebka76?#U9zK&pzbHXT(p&Dg7o^;S}f{c|$ z(vaH9lL-hY-KNhGL*a{}Xy#jJ@D{V-(PK)W%FVxHlzIR_>5-{#3gm4ac2a=O=M4qG zNdppyzXg5+>9^cK^knm5wxS^V^;=rn-1L(;z{)eCIB5eVuH%=+Ho{?-z8O=y34VGX zjDe}EQGh=IR9h?_eoQU8(BFHPtqw@I3iLweh)RL{>+$gU7D9UQ^KzNe*Z>@5&$m?2 zhqD{WyScu-(1pYM>G-OVSRF)!To?Yjo(~^yUt-G^gun|u_+fG=Kly1Lv9DRd)3o+G zVZRS0;F2K+DXYJM_LF2!ThXmW^7|{D5L}Gl_aTe1s_~R-{030efWlSw2^D!uE+J_a zQPo-!%nnk}?_6#rj)k}~B_ipm{1oDnz+_q=0tNCwk2o7;r6iF!*DiuzpZn;fhTlX0 z^b8fGa@=ER`w@M?uif>AH~#coz`hUI2JHK2PO(Bcsm@1-p5_tfrT-L8j1ob{ybTvG6>?3VGjxMjodZbhyrKKJ;9LXKu~z9x0P6s@8SSPmA+ zv)Rx34`!9S5&NV_gqQrJw6GxbUx266MmfNfLJ=T==KB zVYN}_J8eZ3mI~`}=t90eW{)quEOO$ahNPVN2K}#=f0{aWDRYy`tUu`Q@UWVCkHxQe$0^-eaVhV|8xQ2 zq()-45gEEjbFhx~Unp^F!V3wTYm;yCk}nGDB6oCPSqX(7P1b!{a1U*`r+60#FwHJ~ zpj_VX1$Yb<_pue-VqWbcE!Y=y7$-R#&x&d^u@VhC6sePlhE1@~Av<#*;1zJG%a6C! z^DNPU>N(|5J`%2GW5Pkb(xEXNtaWU)c~~9s9#f36 zQ#avY`$q}y*_F4c&r_Omc|R-Ib+NGy6d4l=DonB(Q&)7T00{^CkpolgLqTu9RJ ztyc>Z2C5g+6`Ft*SY?n7&k6==5Ap9uiOys&xu31XK*1UJB?lE!#YAFo((qw+z#az^ z0)M2ew5J%@llpv*>PdctD1Aja8XVaW+&<-_V95W|@Abz8EXjr+kbn zYuhcMP@O48k+05Cw3g~T3j8C64ZQ;E+%MNWNyvmO#xm8~oeJCZ%#x{mo_b@bBi zd25Ac!df8?`#tERo^%%e%vYofFzVrSpb9Q3g;{S5c{B20H{e6zkHDzd$xne%jab@> zx+F>#T>Sn=beSc~5raVRMB~sdasP{%%A)Nb$169Zg(X4s;DC!7VyCShF3Y^mzeAx@ zMn>L)zo&Op`K8Jt4ZxTlNI%6l9xi)hOnI|&7SX5i1`UC+k+T@#d^|R2Pa0RE$hgWT z7`&DarB38x42DN_Id3O4b|rAYMS)=;7WH$cy)QPV4DBc~Y6j)+dniY5DK@5hx|PV7 zzqnJY0msfeRCcRxOTICwuPKL#jg2#5wm^8-4V1u&@@9BEk9u8@CTM$Z}0N#IzF2Cs4Yng;ZgZaSj9)> z-?gDXiLxO;s*7L#CX-fkHU@>+h;l6b9S19-+#CXrjg2ki@^(`e2Xmv`d3^(Oa)`nC zpG~92To#?VgOExx1@#P<#H8KHUTS&Bm{F#SH(zYqW>9|y5o%klvZd7ZAW4Cn^d!{Z zjX0fK`}ca*ip33RiUJS8I2i<3lKvH){l1AZ^SZZhqP*YkI+V7YUevDHopX0bK;05s zF;r3XS1~mI-TdvB9WP7dt~MgE=oWSbA0j@x!z}0}4ll9AnMKkZtK1-@A5+%i3bUc6 zO-qfayNjv0&avt6xWeAk6Mz2t>AH3)Tkb+}M+Nj>@O6PExyS(nb?xA>}@wC&lZ0iYix$Hz@ z1^jS*Se$dqs5I5krTaJhct7VHD~~+4!Y?GJ9tZCT$#T!c2S8cQstml3@&CC_Zm?^& zS6*(WGkk#+oAvHsA)z^)qU4fN>{8uYR)9{uIjtI1{_Z&kG_6YA3dFnIR?;(?>cO{;D}bv!F1rqgkUa+X*zp-|9o;9@lydSAVG&Yi ze1?~=VYd%u%uQH({XAl-;gsoScxqM!;JMJj%VMxDF>6^tJaubq%4nRP+*TW<3EQ@Z zSkJ?if%we`krhBZcQLkwtSvo!1|Xh^x;Z>E@?b{Bc9{p$yJ}ok5<6!g`An{q=|=9! zz1P99m6!?}s*bR(HytdrT^S^oIIcx!SqkMUxyJDzdB!1FRg}^hrHSEvsIq zJwD%iw!L^SoZkT51!vob9@{I$aVii%fWCRpVGGi?-+g)%P^{hFy>t5vbza8p3IC)V zvv4YCZbDTgZk^EaWzf!FF3x+4gi-Fj!9JpXsz(T!k-CANU2j*~fOI*DNC5QBUfoX* zRJq|D0(>8vLi9=dkb0=|$_Px zu?h9K-oQjx(c9KcpTk><=$qq91$DhW><%+Mk)T@*6a6vNr4V=CAE)9l(I4$@co0A7 zYFqAYc+4_At__hbm4?i$47qg}=Xsp*9UzQs4HM(T`EKk2&KENTw%z^sc~@|L)CVP& z#am@6pkLaK)N!j`908oGH=VM5==FRA#YnF_HUZ~)q;=Z@bU(DDMio83)aep~PMA?d ze}fYYJk+}lwcdr*9C8_*rDmx* zEI_|s5SGICJkSmEJlA=ZGY~y89sKq2m7bSMHI=Gj3(}uQxM84&=VlF_#BzRN0O{@rs}&LDh&95)W}I5moro-am-#d#nl0wMe=4bi0~meC5%$1&g-* zSuV2R9qw^9(bQ{7>Rb;9RW#uIoA>J!LJ}Ga>R>5mkO&R9LN8Humr? z%JaQo&l6MwBhWeJ5TB7kny{XCo-Gwp-eIF`x6?)4R`NvEhJP&LMH%d*jKP#Yf3dpYu672Ox6?4U8 zy{IH+ly7Po0|jIvQHy9?}7 zMN)l$5r2B9X98y7t1e!nBi8N%nz=|ixY1ZTxx_B&Vbc;2UD(HqgJ;HmeipCB)}V=-b0Nbb(x{eJfvUr@||z z`wCw?zW`c#9l=1E@dyu1AU$#G1hj#m=%i+KkWEBld6#y}adZNDE4fP}c#OhQ_j<6Z z_|XeAxp-;K_yjDyygcI5>^VsOhatz*s&}3oBh1=bV?H3gWer3G(#Ll~sEW5aeL&uVsj6>h zQPfb_HyFwW(Q~vnO>S%TAV(sqSdu5p%m9p(_sVakpwFb3JC%!Plif@utr=Wi2K&+#U&3zATSX?Q*wG`KeY;eMNTpGN;`R+tokOH>h-4CvKucj8Kr zBm9S}!1C4p63twBIGu1R;@BKkV}} zSz*4YLDJb?Q(`=CZvioQ`1BUg8s8|!_!Y|>MlYpLj4=o-Y-}UlOUZm-r^?SQ3RtTA z%=lne?&gd<3g((ZlIF4;T+P8e0nv3kDWj@qON&5s*YfEHW$p0=)D%oF0xMmgWj#1A z-$@Bk^nK-hWi>lTPZ@(oW#-05WJ)Bq1M; z?qUi-35nwJlYCXzby=9x-pn#C>Ij0I13BKNxU`lz)#_JqKc3h#>>h8MWKNV42uB#& z(j101x~*QbkU07$>%!4p@9P-dJlE6Nl=o|8*yghPe9*x6izBed&M5!(sQSX5zM0=C)n{Nc=L>VLyhz z>I3r#36?C4?$V&|zv7m;`O#W}i}-#@LMtFl^+a5Kon8?KQ)xAE);m`k7L5-pHGJI` zTkRfKMeNY%1=HNH8?z&BsC$nyEq1_;#?#0RxQTJhsSdx6THK&*u`E|~3?040eeBeU z8iw@a{)k}>re|I=!K?X44T}vTVnBDwbXjNmoy&y{rEGcEyiKOLVLfm2{^cvl4E3(y zJ4_7oHPpJK0_VWQFxAy0hEugY^3`&ICWAp48&jTKc29FMLM3gXL$_{}=T^0~JME7V zCi4`J?NfJLkAJiGZu7$vn9kFhvONB83io_J@HDB18kWwmwyD0ohJLJoH5R5hfveWG zcqp?ubNjmIlT)4TH91QtR_K%@bkCuh<>gDCen`!a)I$~cIQ9&;fM!OlP>aUmQ^*Qn z!f@<)JdR47Bm_J0SR1b8DvB2@-^%3Z7IX#UKJ%GAS-dc*0bs_PbSBYBLBq;>>y<;! z{;VN5riLD#uw!Ycqo^K=%r+li;;#VjPd78WX+RlF(Ru1N(@mw{$Gg(9+sw!L9bDF)(cN->c37;ulL4()6; z7?bge5bCYf6);T*WB7U9FxQl;;mv6AZ10irLLS{stE0151>B4qnzLD8v4lq(xUJ1e$fDy48JayhGcI} zMVi{Da{R=>yxZ<+>Q}NJ4LIx62bhZME=unqp}w)VGIu<$J6sh}L1CAjmyrJi-*Mur zg1jxU?v(cntaq6fe%(nC85ET8D~N#kAPJzxejjO|I#(k?7N~_JSPqgvq2A}ar~p$# z4Gjs)|G6ax*Yiy+CH!V-qevh8LjjblnhRst&)=qebu7fklAsZL;A!-4Y<8ID^s!`G z>1}oW5&RP>I=?5|1fvTJQg2h^$obM)Iy@x#) zdoj_shde~p%K!-dP<7Y7S|hi8FMWv_=dZr(DbHad*R!#zp-P9RQVM{n9Klcx=i;f9 z0<}jDS-}-xtmnIbbY@wZUOjZM5x;9aJI4H`MFlJER(6>bB0j*p%bA#;gn_zXrbnvx-{x}K2>Iw4Wr{+e-p`mR0?tFWLutiboH0rS)U0m?^&mgOVXUP+ zF4aB{@`2_sw^+Zwvy*UqF*-+(56)E_mjrOr1tjQWg=Mb=U2kJeECIIj7RVbC#&1iK zAg?S{`aRB=KlL~wJ_u2#Ca3(%aA@^en@=I&A3|kWyJ@bw6HLG_yXh;?9uy~Q(wfr` zBib8Hj-VbZ74u7^2T-|xc9Ju1XNtBW;(Bo&-h&V5i_8BAFky9;bq4c5yg%Fk6NgFW>W@Ph){&ZvX_z41A1Xmu z2Ky!KI!~THXV1W7y$-8>RLZke=$8!qOl;zl&J|L%D~rA@To4FY?!)*MNzjiL2J1LL4>E86ks_uXp|3V&?KJasY2f0sp1dWlaWfh4y7H zeVwdoN90#Xk7?-k4b^<>tJeJCbCZjF7jKq*w2f7qu!IjCb5Ri9*n?+m`4Z_dCp?!p zzpCXKJ#l`q73B-8FWV=D0P%`{&>Pxh`WQOG6t7 z=X;8|z-$SS1jNpr_!@TL`zKa+^BBgpRa0nxJrF{CYX1E9t9@Dh!@MPq(VN3?-|Dvf z=MTQr-@l+}{jFS^ii(%a_-3q2I}oMmky@l$_=3FD^{=WbBWO?nU>aJpE@l}M-dHYIJh~|9o>y# zVRvm~I5xbxVH_r>&ed=_H6HaR$KViuV{JM4_!5PTZxAlRUnC8QEtpfO+W58@b#hj` z8@_*59Xf`-G2>{BYcWJbxL1=`b%dG>0fH%{HikU4sbt`tTDp}!6@@-1gdZoo;$;2% z&*9~d1s?oZJ02^#zgCRb0?DqG?U#k({;}TWAl-f}$iv5q*K@8nu+`qc*qVN<`C5E} z{aE7-Z08%;6H5DBhL7dzwdQ;*l<;GXe65Vv+WuI*kJpO+TB|+Q_+`9vjC`XU`;F53 z8<)o$7n|?3qP=rMB0bi8<4XHw{R%AK1#-QC&GrU1{S9o+_jk+Qz}EO>4{<8KPWcD}6e5cI$1~%;tY>qdunQvfozq3&2{8;gZxz-!lZf{`Q z-@twy&weiNsP461D}GsPJ{Ee;V|l#R!;w*);U_Tk*FxS#H<~>N>izZguYdgWX}fC_ zKC8(^Y0~`vwp;E-=peW=0<}3pP-oCbpF52y4-7eDY;@mFE?PA<6!tLVQF1qbv+djy) zi)*{6wu@=Ih_;JoyJ)tHWxGhWi(|VewhxBSV0;z>f9waZYu{IttXyWF(POuM|a4=e3*(k>(I^3g6E?Q+pB6YcWQ zE(`5)&@Kb*@XtQ%v&%iZ%(KfoyR5UzIlGLr%Qw4hv&%KROtTNq?6S-*$Luo9F2C%u z%PzO0d&amC(Y7n$KzrozFsQzV;=sK^pSq)^!wBet}PQ@`KV)#2b~C z;}x*FCg995I4+r~lBHKw(>Dro;FG?Y({D3^J)tKDj~I%yXft$yDzR7r_{1Gta$^$) ze}GcF11hu+RsAy;TW7C>AG&w-Kl@9xrKUe_YfIB(vL;dQbzI{k{&DVbY+c&DW5UJ= z=H!@&-e*44T<7(!F-pA9#WDCnJkg6N(KZIHRd zuTaw%I)+P2jo^7C=fNLT?4bUy7NpG~ueEt&Ik9v0#0FgNovGDahhPIa0LM@s49bUI zFDLJ=Cs;OYkC>~i(ht|Gs5In8Jwl&_gBpY5ja!2DK%YVmt`=&(v*Z_ttlpvMqjGmI z1}4J8bg(7i;>#zIx5;P$R6azJE3~V+0(mkKsL0MnFshUT#$r-YF5jpJrz4Q@4TNFU zWIcGJAF62$Wg-!dG5oAqqB4NIW}TSdD+JVdojtwkBoGb{By00n@|@(fN-NUFQ)Jja zlVe_EEjiCwuu{8T^wz^SwT(BsaI_u0heBkzi&>zML`cb0++}$qGDsO zvgDX=uQ9bQaM_7LCo55JShcfx&D5fRehgb!c%(u-Q%n3O?STluFMi!MHEFk(ndu24z$9;FxV|`SC)3-j2Y6@2)P5jeE0R#JQ0Lm44E8=nhh zsDmLRi9?ezaez~r48zS=6UR_}EP6Vr98u?GOzf1ko>W-s2u^V75#f|?6jsQ`)U91j z8=bnhE3kp-+~{sHdqE{ z|5*d4l~egxgO$s}UX)Wkkz24+4Vqs0Y1cJge9A7)yF2I70RWxA0_NH}43z=NiR-2G zlAVor&Ph%PQ*1zcS<1#{L)?o_6HZez&rS9#7oaCS_SSmne^ixtE5Ik119Z_UnmEF; z7t!KSbMe&6a%{Qr19eo?dBl;G(au~GnhM8KW4s@0_Z)AGCD7t8ngJAZutD(XI*nj& z>~g}(s3u{FQh9OY0brbX1hpfSpjrs`X18>JJ_mJ)e))PrPR2$q8f z21oL;lUhMq*6ai6ajJaEir@v))d;eZ>Ivb2-)M2}s83QSy968=(^SKC1OBj*?QUXDk zOr&gQF0pb@R4+%E9`p*z5LNC9^hldX$6D=6A!Cf=vV#QV9X*A`3Q|%~VKWDnE#>$z zCqmn#nTAv*`YDFEguazpu(B*UElCmN;?UB0L$eUTTeYi*Q?!I$>@ak{ z8%0O*X27iUCwGSHSLK^hnGoJ7$CR|J-{oN@Fqw?6+;?$O6lDcCg7hPofj8 z8oviP!IQwmBxhaorpiO& zW>jBwY-3%!3h0JYbdn~DsXnoz0tIU#NLwz&7W8#% zZB1bFj*`fPQ279s+79H$qm|7b3N9O*=m3^1iU@s~&N`FVu|HgQ2}N8zs_GW!v}r=j z>c1=Z?-?u=Dx@3q*l^?pnPMc|m0IFl{MkDFY6pangF-z}%SPMR*{kAkQ6zS$gwNl! zXB-bh&{ic4nnMB4OG-CK23&KmWr~f=D(v950W}SpY5IQL3(t_F~VUuc=2;6U9 zVMw^;NeQ0!cUdox6zwp<6vpVBoTFJ!Fe!9Cy22>gmz)(!s@a_qM8=O3taiU>T+e9=C2nq0VL^AWkCN19v>jocGb6<%2OIg8*Hb-&Vbivw+<}-V2RPO542$U z7kV7vW5a_0A4LTC$Gtx@BtXcT$f*at8ph(>b>72$8ADTRcEur}_d&EoC$%rxKcVI0 zIRQYb+Bg3RgmK<=*DU4oQZ>h9S_K$6>uswEBr7jO|BlIUkv9g&JMHIX;~Yf5lyXc( z)d1PTwh1DcTKWP&_9+h(Q$d+CnXvn__2p5>(^O(YNV@9j(aF8bQHJg8Xl-^kTc6CT znR-!#Qj3v%6rEf@jhmGXad2LQ-K&nT*`$Z#zh5PGUflX(-qb4%*IaTurgA?vnPp80 z8~m$FuW_>6-@|$VfCpDx&9$+3H8tG&`bO%^*1wy-?0h>P+Zwer_L|AJuux^w6!x)uEm%$=C zyAOJ6eT(3QTu8C7=z@|B3(y0~x*Q!>X-hwvI`3m8!K4U){ysZ9>LhA&u%q^HuE5E{ zkftl3lA7iS=J$)Py1=TsqULT1*TOgmo@B%65?IRGrq>oxDL?On%69GS@}$^$Nl;lP z9Wnt{){wpSL;HYi?_6={u`UyYmW7GkFE^$?C*uA2zdGsCeO7LKgjF zPvy%L;ewYP=5^tgngZMfb(qWbwm~e-=sMpCb3zL?KVI$~3i5MU8QME1Z4q`-h*{z| zx=euiHpLQ5?(cM69#8U&_*4eWD1loMg_la;38njL$RqGL9Lx zj1X>0=njdXQ=-}-7+|||KAY9YN`XKnX~9ziO@%j1%+xAxQDI}+sOfVNg5qeG*LaB-0%?gps z%c=U=v}-O3#yU*0X&tBhOhrWC3641?X=5fGAowJxYF*(cASV|R2(94#u2UCpI%Qr$ zF*UxzI*`nqXf5^>Yi(sQSGN{}Rj8VDo1k-Y-oVhX76e(OAc0OrDRpu0WG4ZeWNfHX zOFchUDTcu=$Y7*S+%vNa$IlU1j%}&Z>ok$w1q0=es zl-T9pgHD1Y=&a1VbP7C0j%5x^voXs{AfDp!sF9PsWZPlQ(~}3zuK_2W(}{G~zt2>h z7j-7!Y!o0`F#f=Q!KSKFz6dpilkcujOA%QhQ;Fu@L=Xr_Eu4`c>ITi3N^Y>rv`@{b zIU1il$i|cfuuavl_0Bfv>D`EB_)q{JZVqQYY?3p7`|mGi+A-?fU2C9bqkYnt+1Zs! zSi@~-^FGw%wgWK}+Nb$u5$pXfgf58i);am4(n>H>cE5Vd#Zr(z*NOrxBGD4C8 zL!1)nvCjT<%|dVUz2;!Ye++tUjZf8ULDxFf9-N-R|9V?Y)oD#3s+xZDZMa8OcMUqK z>RFXYrP~0+`F5;0yG121gj;Dr>fE@QDj9D$hy=A?UB<3U6JU1 zTD&h)C-k&alDhGGU1Xuei^C!=>QCMl#)>MOr+AY-^wXIxNHk}Iv)u2_*{P@Ik8`~- zju3|Vr|8XLUMz#C8WJU)a0p-er@Pwki_rgZn30ZGz+u(ZNU35VseA9UVAu^;I|(pUcP1MGu~vLu`Cr{kd<5z6S$h zZgWo}73M7W>(tobmX=ychjlfEZw-j*>7VXJer@z9?hDCn(-i)hAiQQ>BCz1KvPG7! za#z{;$_30`Ukd`+M&{l=&=!HUZh*(e61Z;t5!<1<6|YY-k=&q3d5lHq3=}u_MM%2zF2_Q>SMmp1`q|U^U9LS^UQ_@9Jm?R}qjCZd9yyU&P2}WFjz1RSN zSH9YOy6(L=SPLnx8g5wBH<@1J*#Mwd=&L{_g=3Ei;P)V-R?Y6j^C$q`O|Lot&b-^! zeFS-3ZW=`4*t3Bncg54(%0g?z-4MQyUpUO@{7fA+Aa&>VHMVA~Yw127f$D?t)A9N7 zWzoytKe`;>wbO7cgCs3FOfy;1cE8OR0?oY_JxMaC^4I*&OC{WMo~|-zd?@Jwc{(Q# z$WL1JLHX+V0+4IvL~!=Te02bl7s}Y}_0`u#(pIzHA|m-B-|L&qfMW2^ZK8DUe^i%Q zmMu331XpAqO=#Hv#!N<1_q4zKaM8MmAxKrU;YEie=w|uKWKfluOzy82W72Pxv5500 zhNy9rfYWRjgW6YBskMIA2yW-8f%7$?%n?QTKO$UHqh;OWn^dSzoLL z^y}Jh^K&+0h3DB&-`qg-Og!Hnr)rdXH_h|Lt(sOm&pY!}>EJjyqd}83>1Y+ozRQ!m z?HlmD)w$b3dw=Izc+W=n!SjsWfA}co*cB{5U&JY^GuCZV+`{?z5_Sy)UQ^vT4|ch% zz}llm=V}`VOSYTlqN1%^Tl{maA`$Gp`?U_B~in*c@P+2uE_H5q`OuPSO$xoX|8o5{ihaXu zl|UM%d2YN$ywH5}!nNrG}m_8b<_gX;u=ho0@7L?|5kH-85@(V==!p( zS5#%J=atdR*GSio$wHPlUu;}Mx>dr8=CG@$z7Uit1{3S%<#Z&fU9|b9}?_v;nW5v^>$$mAyWRgc`|n8tR)x zCCl+3W~Pyz3T2-1wP3i*z8<))o6S$4cLOx-yZiw3S1+rpoi~kiozv~x+uw70DfY3U(*s@OtOU{*mW@@ zeQl1hKz|NZ*%xY~(go3T9uGx;=UF}{L_7z)->Dbv^%^Mv=vpH90`&aPE8poC7H`aH zpf83^mVv%KV`;mDdr;8nt=xxwt=y*tTi| zo;nt!=YO=Kr$xH72tTsI5TCbv{V09SUytRoueL6e+fJon8Cva>b-yC5Qj!x9srmgsB~Fodf%0>-59eu=_pir zS|@B>!>oD{tZzRa)6!DTzI9cg`uRlQG}qO~Tx|Q5b=_kh)xRDqt~d8s>2%(GX?1SB zZr$zll8k&@JaOXs4_(3UW?(%mr>B{&*fGwsnyqF$clx4swMti6`}{Pz6cWBtVhCtH z8tDDfiv{$Wa#2LT?^8_BdAJlfSA>-;fWAOVhtKeUU@lvCp6bK*?H>KRJwJiRSYAJzXUF$tnCl73 zxgPy9D%e3U*Qvt|dAbc|_QWgC#n-!isPnV6oR?`Xy&L6wEVCEkeKfCgpBMS7D$Hg^ zI|tDG^6-*1u*4MmPV2P6uR`-2C{hc|Gu&PI`tBB= z>yEY*dcjk+)%@n57))n>wx&B_Ru+PTqH&c7PX>LUbX~Nf9aX{0kjgr*W=h7ju_{zx zey!57ZrU_A8;V%b=NB&H3(TdwxYwQxE{t0r%6HVc1@kH{D9;)#`yMK^U!``tg0EtD z_H_(M^ej>JA}r6FZVp1DUklX*e58rK(FNw2zRfrk%g6Gu+t$~&$AWK$ef`9WXUl?f ztSW<3)VbJoJnzt$usnmU+5+>uiID`%^VS=bKyy7HT1B8e%!|S2DxTgGcS+NThPnPoAij|OA;@K^jF(HuT2|uk^R-St8t*XJlX1#Q80I|?h43Gn3y)IQ)pPNe|(zTFmg{@Jp`+9eAi(>lRL;};r z-b!rQyYY*&Z(H5gF&E1hs&5`7vL?!_E&E!bw_Eq0mYjXs*IP&3C+pP4{?5I=^`#Fa zWk?7WS#9}&SZM(AnZ3hpp!(%kWlg5H)v-d5%t?UDNFCG1`jHi_!Y!;{7ZZ)1lxhUD z9@dQtAsW-oUJh&YW3d!g=o+1BnXo8!wBbE7-NTkG^J`kK!R1+i>IZoy>tN|^WLL{P z=|Wk~R~uXmtRLnD->r%sKVUWPv}|-69_w2X6xUbtL4kA&-)sAk6;Y!L*Zo|Pb-lwE z;qJ#1^^D5xX%s1NJ>7h8#h`l9W7e^UVT?hrM~Hg7lw`#+j4QLpcWKXG&oo+WT@bH@ zV&8{ATdwD=y&SYW3O%L3IQ9kXIRcLWuisc_+VUG~&dS(bR{M3*_G4rCSB~FbpDW*7 zg=>NK8CdVt@WS+C;ThKH!8=CQFtlIAT2SAIUwoxS%!ESv{rc)DHBEN1UedYq)SRLya_-PNGTwSYU8|hMx7|U-^KZXQ)(sjaLH-vbZZ&`;e zJ-s8hnXW3^_gOk!tZpGy8-1JU$0Xh+dQQ?L-0oMFGqyje9vZ=IpiBSx*iCgM+wALi zR)i0_JkTm9ouUnIhHawv&P|5tz(2>I-6-?X(9<6U^kt#64fMr+vu~iiWAo!<7e@H; zBKonY+8@Ku<^JQ*c|*Et|N)Gyyml4s3Nl!J>Tqnmg`+04w(65?=>~x8HFGYIUiyZWUOrCr5Qb z95#2U`0F%VP4Q7IuBh%RIv)f8E`JI5$X<}{iRuCgQ_VMWu+OuS^{IDz5vV#W zGJkFuB)aA!Z=%o_n-R7r9F&ab4-5LcSAoG#8FCU=uBsSM6GF=Om-*iG}CGDCU&c?xeN$D*YjHCc; z`QlN8fMZ~%kdi$#OS@LyP_&fAwRV{QbRPFdKG}qhfbc*NmEFJC|A7Pt^q7VK^nxX++x|u*h0SIn0|* zqen*1EFWNWO^TSqng+mcG`|9UBimILFk+A61qlF z{+iNRDb8G&#&(Y-Vrk2!s?=-5{AN_@#f*qf;;Kj!qT>iwO2 zs`v3#Vpw&&Z2M{>D_>#tV@-do+P#Vi6{olIp>(>|SD|UC=ByN_@6U%~^&Pf7)!*E0 zT)KOoGBvGt9}B6Ee1l`BLo~*)EyO+;mqLSN?@1b_HPrk}J(4TBuzF;dRYR+YV4WRbR(jji^G%Gjh1kk0;@M-?_)h zUc~5JdUs5}`9QN(bYb?yi?7~p`Q`S6*A?BmTFLZx@fTi?EI-cGtvdtErb=S}?a1F_ z%NIs)^dU=qWQi_TqS-uCWoSK2qx;7v3}qS>u1XW6d)N6X!h z(fjk8$BgPlFLB-F@(}g-g7<=Dv3J{rvZv*dn}}>QeS+6e>4Q;i+d&=L(z0(XTdr$V zo`x4dYCqAj@(!a5y5(q?tS+}0oiC{TK+bxvQ_bf*F_VX5I=o$tU49O4S9D0C?fnzC z$FT%Im8#+8s@XM|Tq_cvhsm|R*0Iy_;2chZ$tRnfkeR%HE-0VSrJq_m$L5ky`Tlq| zv4`=U{_3rvP8pU!Z>?-0b1j2}VRdsA$1V$4|AhvelZf4{wWEp)I@kF`3^La&G!mI7#e9tborlN#wN6jE zbo}<--^OX%!(H#f;q7+Y4VPeZ#jon?IEy+^sMk;f1faEw16WhkPZiKa{TU5Vl)Lcx zA9s)Ean&ts9u$ggAGkOOHcvH36d?1Sm0nqc&Qm%%VkOh(Acq%5+M_a|dQq>`LHqv- z;F2DV@-Gqa`LIU5W^)xBzQg9{+sbZ|&xH{Np+~20EAeZUz9Br@dLmE9^G&n1i{UNM z`I1(gULL~e$#jpa!RS(TzOFiNykcQ3z-($ z###7W#1(bXLQpHG zSZpOSiQdB{A@uyB87%RIfGMv;&+FO2g;7h^t7v@^-B*FqvxqNmj#3Ms55r5t*~9>e zo;2U^XjpQdP{#iI>p#E#{pmj~|K)93w&KVbucl>IH22RhJ<9*HUView&Hsu{gK-lC zz{^6yfjG*lY8D1k+go4(7BaoTuk1N`biBu8;foSo{=3e5?v3PtW=W7;esv%UAiqR_ z5{6;Ja1fr6ZI@tfuUprKi{SLeGex5%2LcY@j5<-o(UKE%mu}Vdo*WMED)0I(61jr- z7y;qMQKYnD>iFAjIQYOKit@MRV7>efB09r%2Y7P6B)BNdNKc!men#<@p-4O1k1&pY zEJYQa0dTC`B(dY&Z@b7FG=n;D zx*46Y8Dwuyoj3#HlnkyXNzB@Y_A zMS>usai8r5a4UFgPUl|fSRPs$?AUGK;s_JoxN>yWzzP@4`qaMM+l?|CTesc4G^f+C zqnko`Hkd$?_YIC!^;Dp%I@K4%+9wNEG4Dh7g}jmS(A1+uw|9;G9FpT@<33fMNKW_J zy6Xu*s{@ZKRwUg#%2j0nAd;i*aQ1O6%cXNj-|f70tw@eL_*}}eJ$+3U>{9D5uzli< z<#8_`?^xauCyAY21?Iw!O^Ie|O^EKvMWU=F~#)GP-G`eKpTZ%n-%YP>XxSCP zc1;n}Ysy1f3wq52OnML@ueZyfG-nt zO7dw+nqEaLwj)WM*u_(W;<=KE2(0KX#Srj`aVqRrKyQ61rFo*>(jLL8E?AtsOv5G0XzyoL?%W#%YTDeTD z>Gad_AF(b6Wx8fnKpmB$YNE6tR;9x}!mS-qpVYd30tMb-)}Y9-dLV5d(6zpFboBC0 zu%7)}-R;Xomai`<^XIp#-sGyX)jbx3zqxPq^Kh*!cgDi%xg`naZq=W*+uj5wdDlUT zm|PIAikWORHhrc{?Mj1A-uiQVN5KyKEw-?)HXod&n66m`yNo|B{nW>wa02)AmT z&{q^e5rN`(toWNXtEp9s4+ol9pOzOBYooX@Wb9~R%Xz`1;@THFT^8ZR!c(H#oceXe zE%{NEd_D3O4aiQI0pd3^>s60QyP8?M2~`xSd_k!2o6MfmB8KYl=@&flsb-_g{n3U< zcfO!A6&;bO4)GOOcFOjhB9i|5d0@GYp2gAlv2@C5A0|@ux;_@(apYm>ndhv8x&T>= z-EBCpMeNbD#iV+?grnmwo6!SPf2Ze9MlzsK6~(|tf<&dNrV)c`e9Ed@??sfEb8)6l zgFy2$*>Pb4RejqvDAb*&Su-7fPPabYkZYJirOkARrCwxE1OAk_wOODQI>&{{Oz8~x zQ*___-LN9l7sG3e%0sb}v?W;6hNjW2_y_tzeVS~?T(J$UIGR3VauTyg@n=wvVFne! zVm2*omSQ)UxBY)im&>tjDGmkaWkows6`McUQ~vwVWG>F@p4@=DbwD7ITKW>zrV?)X zvL)qL9q(7!wMt>DSc%SNk5_}vW{-rO@VtfCQ1)h!cvV$R`oCSfn|43l12uhXRb~>HoO6h83V7NA${`sb zGYPv^Gi8Oi%#_m{SS9*vP*54k2kmrhc;e*X?AdaT)D3fJt~fcHlaO&g!*KI#w|eC) z99aqbey1Cg_fsw-(VT0pMgjR)-RwgIe*VLjUL1Dbp$<$aKBgF>oQFQnd zC<+gUX2q(@>uo=X?%_{*Vm4!Dw^sD5+)L{BvOD9&xEqEhLc2Gg=B(O)HSt-@F086@ zyXs8v$xQ&y*N3$yK0htgp65QlW_{st$Mq*CC*IaA0~j5()QQQ7V!Hot3VHNf`^Q4q ze5B1bh+=^gO_2xNo5-Z~h||p~);>04OLWNRPnMJU7TeBN!Syint85Q5$+d(KXy%1B z1F0V8Cy$u4U)uEtP)?8Bq&vWc9$C0@6WyDbhx5~~qI#NRIa#u4sCf>XjsUW=XG-`S zx%we6mN5*t$KuW)X0^f6YVv~W)=Fg3m$oM}`$;~GeQXlgWtsz}vKAtfL&kgiiR%65 zy;lPkU`AZGA2J7<%n@0#*d3MW%Z+1mJzb#T@fm;asoLp1W=m!EabeIhsJUZ*R(AG8 z_cY7X9V_{c&v6O0w%$@Rh{G9JIj`sb;-Ye>EwsA98TTO&JoF`SIQ#^83ICF2yQWi{ zxC|$GNDNJtXvjOeS=_CNcRce-a2!Muuf!WhQf2&oB!BZnPg~9}NhTvxPMhN8Gd-Gs zq$p&$;{!cItNEWOmfx`CE|hNHc9ZRMTMmz6GDifBsk&V*b{n~F7ui)q|NhnGR=<&0 zd}+~zMeMllIk8e^L%05q4{RPs3|DEf+0$gxMh6it{V{Qs><1OA3a`t=ZZ+vLu~`qa z>bY`0j5I$G4B+=h*%OkWlC*-#XP)Qyk|CMaoN=lXSVLu+Bhk1fBZ0gnw61T8d zyU*`$s!4ScBw9>+2#KMKY*okRMw;byjcnXar!kfV<^Dl8b@AB6uSPAz(kPOeR<+9s z9*&i$%SSrGk9`o8obYgYJu<(Uv0X%d?|^9vdgJ5)WIws%AaZmTKviC*EOtdwewJ;m zhU$W@uRlV5)x}ggwdFpB;;DDHJPPiKoAYz54TLQIqQgg;NcL8$?jEP+5ANMZUOZ=) zj>WvyXi~+XPmi3uHFlB$bE_ZAOUNfDYvX1kCx^=|OV#<3+yD~4h)LvRTbyuNIH>_z z2}rbh7mv|AT|72hDy?AQm|WI2*NWmHEYM<$p=N4J#?M0Ee+sg%98wKQ&xG^)Poe5k zJ#5!Z$yGZ$YztL(+m_7zcmW-Y`t^=Wu^u$ju_!2?RV&IHzw}?5cE{?ZljM35EJj>b zIm@9Mmg4VT@Q{l)c{Nzg?i|Ndt9IT}lUX^$t1TZ-cPt0{ zGdgL-@S}&_`rVb0edKhn-#i3Dok$BqgnJ)>Z_XzQ(Y1IMp*Wl4g~Rn-R!`UBJ%obG z%Y}lU`H$5o?bY}3C`dIMQn0>Wa=f;7#p+RTaAQMp_q}9*gEvJxk%NLw4LzhF5-V0y zy>>R+SlbBP2nJum$iZpm&1T6z>^22-DRF&TI7?**Fql$!$4j+blEq5rQCVtz_Cmg( z^%ik89s)A+iq$+3iin^+fwwI4=}Jw5v`6hvl9l=+;J-~@UHc4 zJ`@~2^ytG@@XG{3!)P?ZJvKbk767lz@-?#^5ad$0tO&$z!X8yI67Ju>rnM9yUazbM zgS>*xxEgPZ*PXSu{FH)Fj^Rix8?muCpkbyEL=z*{qgKby%I*l+IWGha?!DqWE(Xou z%pV2^Ye7Mpkx#P}qV>fuNXWGKZFW^Gn-+z7Yj3%&x|lAfN*uabKc35PG2nFHC8tLv zrsuumCL~Avuf4pMa!SKIp7}&#X){*7AJXQIEkD%Q864IVBTeoTyQ42HmMcAdIDPpu z3K4<9C+iWEx#P~bSt_PXOpkZRHxM*=)5*%@B;33`+Y~bzmBJ8OlAzKz*@ ze#4;=sUrcJT@iv(y_5TUf;Wm2b@|udYLV%~tWq6PO6_NllkUr%qVY~^^L$>(F+ z>e!-J0pnar>!9&et-Q7#D{Ip?bN!%^E`blK!#eTsDA7l3A{2)!ou;B2e}*r0%%iE_ zXS^O@!o;fyX72r1nu`1Yil4}uLh;@}c~-|dbzjDM4F-5xLJ=XwmET!?iu(?gxp=qC z9onrPqszq`+M7LhY_rN^UQ+RUV)@Q?6YhRVbI>mDm)g)yA*(?~V1G^410#*Y9XHRu zW7V4?m(|L^=(}lp$3~#}{Fhi{pUNqrq7sMkaXjsOmSDWoHaG$=F0JemjP;eFWrk8+ zxu=>W7YTU^7mFfcNyWdb;aFnv?_UG4BqN+z zoE|XVyX!0m7!kDDv|FLJHwhMRkgKchbXzZf`rRFx-Y;Z4n-U{X1;4)R2^=B&#|l8| z9>HXaR!pa{q~rCV;MsU|!n23Q@9jBgT`vLrbbOl-a{ZGIYiCa-zu}v#x{dra3&4;j z&DVy*sKx7i?d(lvFlmXnY-Gx(MJ`mY1uj-$s?~`UB+OC~&a&F0;&{*E9(|MV?F0xN8_Vbg8#Bs+$`sDqXbTQ+w&g3BblOv*Im5TX zVmp5T;b*@n3D8}3`Q6VSFKhYDK6xSV50KR2sDs50cKE|)2YYpu>00CO7aSXUTL?L; zdLE!4^pd>*WX3CRe*mNkrrF6cy2CtmHs#7C7UGU_-cA}M)qhVAx!5P4A@U7}b%>l# zq9snEJfagYki8#TvzcdHJtCM?C&(A2uobO%#U8P^K=LmBvCRp~uA-08P`o58noO9< z8-I1Te_lvauQwvrG!(8BJ&ABO$icI3iyuvg+dBQ zoUR3Q%zQJy!$8c-;*oj7yY{32^E8>b$1wIOeS%8~!xkZ)Q!WZFGkBZkf7?976$fC-Wu06# zqZW?*&P1&A(UEvhgl#`rtRl{W#YThWt7a&Pz6?gz;}h&yrL&+PSB(%mJTAHFAl&Py zhLPJ<5kXNeszP|F3SSCYfSDTX{ZD?^1Pg?54H;JR#@n;BQ*f*Hyf%PLVA^^|SsPj2 z0k`bm_ajd%00C-hf6)KC>4ZQzh3v8urJ(=Blk7TXIQ)U$J>b?&ft z94$xv@%s~J)dmnCr}%4W1zkAwg!rXkfP~C$4jwkED5l&9pi?wLpGyTj8SVjgCNMoN zIJK$C$$81ttIPwP%885lT zn5q6Ot-ByN%FTLex31NSV=ZB2iiac%D%JN(*(|JFm8P=@I&U7|eYYNk zVCJ)LTJNej)Ia(C^etW!FwC@b`q@i1#?x)W%Ir^C#aOwUlX>TYF6#e+urKF#Q<%#! zD}veh{}ryNL*m2AS1+=_2Jsiabl>K8heLL22`*KPQzfI&Ye03~{MPUmU`PNk)1SxL zQP%d+t7_|3{4hXFF;uP#&pQkiyG&tE`w)%mv~Q*`D)RbQOk;=d3n#_BC)i|}l^?ciezl`?6gZtZLOpVr(+YgjUn zK8jVcC(6v=_4YyOz1RbmYAGtufYX#OQ4pF!7c32=e(T;bTprt}tFp$urfCYMRUvUB zeCC1o7HJsX6)&r!1!RS$6$yX zy6GFw*7bC%^m_MOlfcuXC(Y0A!#FALh00zgBy>afCa8e2(5fyxHmv#3RDQb7io%Xj zfjSJ|`sOENxx}zkmBxZnp?Xf+;>9zm6U%ORHT5f-dD zE2z)=#&!n?wTod%GH!pM^HxWxpUvSAhq@v~N||;S1=orTv2Ia?8i>W` zl(yDKDPF^u5VIS>)3jzOERE6y!&9C-4-L-v`Jcst+lkU0s?ISmP7I``MhC&wt)C*p z_G~N_;JQR4Je}P4y&j0ljHWJwIRD#wG2!WqdcZdpDG3ad5!^WVzPI#NN3G1HH;Qx^-t`hdmQtClEA8x9|X@S2-%!zT6{vtUTb*H0G>PF`8aj z?5z-6ZQ}>tfumQ9O1!*hQr!Hn5}?%*A<2-{7>&L zG0J=3I%T_2Xnh^jZBBH1nV=;}awDPJs{W)w&poBMid$K6BdNe8onQ06f5`n7G2IWa zKJ|h-v=pQI6E`5ylNTj*r1cfvao)z`nlr`9)tD02t1`4Ej6Iy1LhEfqh1Ou_r&=0kJRpj#E-k&om~YKz#_LXm3$B0q+5NWd zgh#2}3$A#*^a55JZuRi)vnH(oSPxjERaeRQ6P~lp_!M4%ZhX4Oh4Zi!d~U29|4OMl zKD^dUlVsX0#wlskW?QPmhs&zwL{WeApnY$b?m<3sW&qg@+?4PL@sB2J(NM(?@H%PX z<6na7kpNeUeR!J<&L-Ku6GI`~f`eYF27skr(cm_J3Ez4h^cAIhOWuG08VH44U?C~i+He6ht8KPtc4J$>M zBvg)s*$eA>)oT99icGb)W+^U~UQN6Ky%rSl@;XZMx#hR;8k8MCb^8inF+*0KHodv1HpNozcU^Y6B7#XD zLU)`3p??To%Fa@3DoY6Ml~Mu#{ngF^g7zl2j8RDb_~5yHCLXtab6QTAC3Oq@&(J-J zPj4O*HqZaMzq2&6Og}6TG^bc+n4z>u*vej?)idC-He14DCLMv1S2g+ZfB`D^uek)t ziaOt2-}kGB5{cYf%F*@b$j|fn@iy7p_*i&6To2%J<43DrZ$!tZ;l1P%sv4wKVa8+_ zkA%n&9EVD!wsLM)cm&BSUGp6p*jfHo6bOJbR-}`vP{p19XS&R;EQxIxnu-(XIa)|9 z`6p)Kg7xg5nPQ7i;tGPQU7~Z32=Mv>E-+RWUS&;?crd>tsED2u+&DpE*OG*}V3`*o zNUe)UBJiR%pRlUunJ{=32LJTD?r17aAozEoAXwylSh05{5TZ3d2wvC=6Zv;Oz4+Qz zLJp5g-w0pspDzO720@hY&_S-_v?!?}n^qM1zSJFjDePsPcoO&PCTmWo&}Xtgu0Jo` zK1(f~3Tzx|>ej>G(z`24??~@9>s{p*PGr{dygc2CljY`gf-|{s*+8N0e4SAS&QQ}` z8#t2=+@wWu5IB_Hmeg$hWKgEfowRqfij6*0`{XY=Ks!l`Q8#<}LIXn$B!nhvzc?MK zmg}ud6z&e=$1K!sPIR!R6cANWhg1O?9_$0^`{VctSRC=MoyElGl4hi_m z4_Wi-?pkrfh{9&9gQQVt)r-umodvqL1eTfk6^?+n!viI}wjOS@Cy=5!%FG>#f=081 z4KQ9SZYi#>p^dw@;llPB!&W-^?@zE<4JfYnC)z-2&KSQ~p2-xw<@$;K4Z#WaKHus` z&=&Qi6%8~_?{SOZwjkvNtul?UIJl-E1463V^{A@9jc0$p7}3U83Kdex}AgV-2z z!{{km@a!o!u4&aIG=kjjREKvW(DErpfo|9Q3zOf@vT7zp49j=JhppQG*w|*dlFTluXZ)u0sLQ*>rUaXN*)J{zHMT1 zq3@{>34aaO5_Zy4xFh(LZ>toqTb4_rF)o*bo>j4S1)G@iFflo#$ko+NxQLs%~kmk=ED}aX*(=EN`gdxwJtFJrCIeVjOTml zJEET7d%~#+l8{)IZfq$i)?#GU7bYQzt5yq^fF#q>Kx(BcI9B;P_(tRAP#w0FG0Fhp z@q2_5$7$mGIToto&b5dSjLl7OFUT}Lh!Gx(+4*d!09Xs3@cLa`tm;j8EQZTlf@2K` z%K1878MITnTlH^q}kRVwBQAP@E(2~_ip zUWyQjP(?oB^p9jGBv{CrrC5-Bbk>`e%_ba7Bl3I9Q#o-`<#xEHPkg)Ex?Z zovohNpVfKTIT_{}6B1ZlhA}RS6_4p#F1;O{a0-?Ge1@ukSv!NHWMbSVF9gfW{1O@> z2Tz~42j8|tu&hB?R>oov8$_B#;`Nk&bO%)PS}{F92Ogw%m(hr=h_P(mpDGChd{e0W z3?3K^t>|C9Cjsh?Np7{mXx7{CrLTxgjyopirBExYq9}h3GMcL|%RVImG5rk^uPUO& zk~uCRSzdO7l&_@|5m_r@S0o_;lwV0rU$0b+|Mdm1ESY=6kG1RYy4Z08IjzYIWk*aP z86d&G?J2f*y|4KH)pUH4K_`e(!E!H{(e3R^&}rja1`~Qb{$=S2lb@9XE6;=^9h)LR z7K1vUY9dc8I|Sn5kJ0XTBje8%Ye2rf{8|{5o$EPuHYOUA=iz6U5!y#(T&OIkiSsoh ztWFXrKPf)k0GEeJX#P;y;SwsVeMeQ?y|nLs4c8aA{HK};q>gkv))poEr$1YFlG`i( zxXhLZv9@l>&8HiVN(=u_D$Nt#TsCLdoiflAKnqU1&@CvmWX$WH>QmJ$X?RcDr5dm% zE)_g$iSV6_(Q`gM_N_L3$RzO<)XSfd=DrIvhu52iDJIO}iMhaM^^PySp8uQR{@}R+3PLv)Nl7M%ZCNrtHxGpM zLue;vX1Y`@Eu=HbF<~_C_*Ebp2KUe)hz%-t3ku4|f1XI%j*CNQmTf?#Ow-;IW9`z@Rv^tgmBVSRmZhbr?GT~798TvIj20~|$FK9X>rRkos7E$6*w_=F=Jq^u9c?DqhEl;@h-Pg>y_5T*Lk_1Xe9yN%D%-AKmg^IiKP^u;)F=!XzW*b{`|ujW3@ z2?%$t5jxj0`h*k&&zYqNK;MB&#h%%SHux-CT6y1r(_A=3t!$niO8@>|Hdyo2V4+~q z*+rXko>B{y<@QTL=9lnGD2q1tGH`%CS|cTR7u#X!lE@xq;A|u^2Z1hR9@tpGJaDl+Ab#0dBUL31)nF0kfeHX01|>e>dI8f zpJt^nfhxVEAbL5UwTQXq^5nO)A;FW+t)v!<4xb91ADZx~Uq55E^%fgOIk5CST>Fca zqOJ19=)CQAVRO2pz~&c{S!S-|!CI%6!Mb=r(A)r1G&hwj0xV&86LR$nnW1?Vq^%6e z9x7PatU7dLb)VoS%6H-OUlF7y9WS#sec$na``!kkS!a3mc%rUJd7YZ4y<$~VI(!ol z{rb=lWS>3dB&GL8JUhE;FD;Sco)xYF>QSe+2o|0dpB5uVS7@%NxZzEyS7MF`bth}q z4CX9lB&24;z*3-EgKddJq6W}`U84U0v%}}ZNvDJ&1H`;@=1Z! zQ)BiRtQ!>7x=TgC@_FFWFTyIv10~TOa7ytaUfwUDZX)^z!snrmW{1K~Z7m0&el407 zUee|ZdATI04sQUbfV$br4hGy&M)p&6t8b0V^tWLDzf_mYtzJ0}g!hiZ3D}URC&L(Y z9J84GH?8`L$K3-17orb;iO*tD0~4kAXC-^W``;&=u#gfAcu#!3k7oraxQrv zw5t_C>LeQRZHE3;;dFeOM(XA;3a2%52-WBaUl<4Ty*1)dC_N@-j!7DerQeT0?}=@K zX~BbEI4rns&kIf~-tI?&zR594kjK0TbJ@t74O`na(tzk4yoLSy>*6F3Wj5@x< zlxNxytum6vcd5}i9cE#(8cFA^m5$ax(LfEtJVEZiXdVlPFBM6{^G*UJa26T&ueOBV zDvf9{2mzf`mHfPDd0P5J@qgDA6nSy#-N6gIpe=!M1ou2MA` z52LEESYg0oWAV7(>nvt!?0gv0SprH}wZA>R{IGb)%qJ;V0@02%r)k(JT@&X$th-_R z>Yju(3+6t}E67p+5+Lpn+$S(s-!oyo-f%s6t_Q-g;$RtCr8g;t%UgnBSU1A%9;Lf9 zw`ZQ(AgMF8xV`HnzxcDn{KNS2!LcF+Q+q;}FtW@PAUF88gh971hf~x57GCcQk|q27 zaK7}Cq{I5TICbAaoQptt$D^6UBPo5|a5Co66@!)@z#^Su-XqskQ$*FAxF2I> z<-|%WJ*f|f=ds1wI8ISW=S!1DF@Yh?hA_yXM$50S_;hjQhHo@73*|JnS%;4o+a@&b z&~tOk*_}?qhhA(EnEgnv{Foq*tWe8C|*zK;V!TzJIG}m*~pSmw?hKn^qE#;gb*h$N|d~T zV{Us%mt1WtB8^cz2DIISBd^*(b4RD3Ow+ikIGYYmVYM_yV<7pGij~>6eD4=7; z5?dymyT4@;#oVqSSRG`t(GRzSNXz-ZVTpSPM2$ZO#8$c=ICoui&cJ`Bwfvodd z9gPtB9t{81iUSf7;b(wlPsfAzb^ReI(|aX_(Pq)XQv4c&t%3WBQE6y=~mHydrh8uzZd{xnSg z;BzckvKLOWCHz#miChRi)z0{AE~Kf0)+Aq|V!}Z5?nH0rzbL@-kbE`jL|dgELa&It zUuA}S1N+dE%>ncTbM1o=6#6_VP9p?)n2Q0Me%5^u0q-|_HIkwwqlP$o=@BSm@WJS% zww7u9Jyu-i@s~@MhshN2d@yQGT{o^ZK6b>S`*o6mBf}|M%&G((7W}=3T-vSB)t7Da z_eEquP~ih5I)GCZJ&L9rK|Sr|{-N6U{umf~gfA(leQ3dRQM(A~9mz=gx<_R7G&fI| zOTtkJz)lBBX)HzJC^_%KU^U{LIjy&7&e$qGpj7na9gmrct<#qCu&J?4U6ttgy@8Sj zZJ8AoA?dsPvfBzs6^SO-3rTmu%AGFr4Sp?`615{FRUs|gr#*)Fq3Ah3=mD@)jqz+cD_#idda>Ae*uZZ||T|I{z(rf}~PQ1t$h2ICrqk20kCVQtULbs@Q2e{OXXZGyJrEAfH9u!)4-`;aUnO#f>_a z>>FHm8t37O=SS5+V!>;{_Oo`nfSsx&meoKMtvW${zBpWt_h+k$ih|bIGG%($jV@lEa9VKEu9GHgC84rg(E7{e<$b@pD@KwF4 z3&Gc5WkfNUcp?{1a6s;siF>)39Yq7IHddW!M?xcbRm(ajn;m91J#<=UgAC5svmY(c zwN;H4wkEC@wq`nhz^m8|TccA<8jo3X9vA&_RL+v!-e$@Mv(#1jxb4pz4B)j@$%C%m zJkj&yiz{!7scy=-cJa_?SnBa(uhXy$1q5_G<%gxZJ1i0A*#ZE(c{_!lz3RoRtdSw%b$LDGHn6 zqPf?EY{>Qk*#sC0WV0+xC~{KA>ADyccwy{q&KxK!2BOG-v9elCqERBiuqU~(cWypi zzG;+6fRSz+2+YpcdiUo9Mb)^^xhGV96zTcl?0PjZjj~S6G|Em0J&KFY5CZEzx&6L- z|7N<}u57tMAo}kpoPcNPg&y%Z{~S#1qUZYSG^;skNx-I9rfeo>E$BUs$%1cx!%e16 zGfX>vkX9mJZw4iJ_z##BG`t?5HB1*EPGx;I#>TkbADj)!czu)&8_!Dh`NO4R8*89q zCAakK7N|1EZ<ACxKDz9y1zKh zloz^&IWaT}tzZ3$G+rNHuN~w1`wGn57Cfs~JeWeuLc#z#{`D+znpZ@~Qe*ktEpmtk zgjH@I`%Rk<$3;NL!U$K~3p;Mor7y)7#2(b+qDB0(YrysqRmRZSYWj zp((I$9WuNLF>-wp_H2JQEbbq9AJ&qCoQ1F53{2~GkE`0d@Y=}ZWxA#YtGK~eO-c&G z9`2J`+jJe3edenaiJlefd35s4e9^+G2Vb?e-W-?f#kfq2qxqJ>Yf#tAaMk6U?id|^ z60}N);3TjH6IU9FOU|G5RnV$B(S{&v{%}^vsv;=IO9-XL(|E2)QUU?1aSgxQDUEyO zcWVOG{Xo`E+2Lmed&&B%)~B4&b|I@Ff#bn!L%YA8F6Lv!=eeUC3$E=bHJ^b$bS(8~ zhD=`|a24U`$jU{uJz2+r78CttvC$U+)vZ?!f0)r zKTK9ps>_%dQaCs+kh!zc((r`w8jjoJ2J$$d6jR>OyT^TwTsVwY=e8VsO@Nt?0e>_E zJgwM0V=(c>Ct_dMf_*t{lP+Pl&R;)g^c^}TY*kBV@oRw5TElb|$F&A*)klRl9V2|+ zLhIqH2v{`~9Ul3*Xrwp>LPxzkJ^?!y|2i0Z__Kpfbsw*u2(q%WLvY>5H#tp(CnP9? zAR}hh?r#qrd4bg$=P`1-d$I>UJoEO@PC&%+>W!%>@+OILoNb&yzLwu-@y z8g!NL)vjQxv9kqU^ybe&XXd;)fmStVcFcCJRVlHzMI zOFL~0(AFyjV?n(|Qln-?7>r#a_1Vz^c05)zUtcId$kzlx-FFGtP4H?+x!R)nYIPhx z#Rz*%BH36@fc-~V>60K~gLx&4SU0{j&i$B!qa|#Rg~iy7aT@rH=OaVfpnZfntJ1}o z$D1n01wcD{gtOuU#s<30;X8_$wy*G=%NmEXfLS#~JKpALap>Lc>+3OL2|F_5?KdgH zXxdb9_K=ovR%4|7O2R&taDXNo1he9S{S=|7w1KkOp^yFqWp^p~FlaZG5XP+9ERNoJ zc!NM!2T@R-gCc1da8}CD8+>j-9Rx{VX@j$4@TXADWJ!C(cnPy@&Z^?|Ja``LFHHqV zKSS?4VccA48?&AgaV#@8xGh@Ki1$AO4YfZF`Z@0dF&yE_)|feQAq;HjVOoSVL}3+pMn*WR=3cz|GQ^4B6A2s`E^!%-?Oy_DU-t zyXv0zHdn)^D9rMqOH7s3+lU=MmCeU}uswwh!e;Yi4-i%o()FP_K|AOkj%SQBv^s>H zjFUL-aC!6YR7m;PjSsOn8nXLoSGSeu(XnogT+@O3%%N>bx60rwpFu0xA7uj&Twh|N zNPuiZG2?ii=Lg$+`T;TJ|32!gGvN!RLeQ%)K8&Rx^t(J59I2cX?+yD_)&X%r>}?CP8_@D+5g> zF2mK?YQgIS&7VV7NJ!^y4v>{B9}~yoY%Jalm+I5m(?!{vSAIUq4y48TK&wIQ7_+(j(!ap0)UQ_@v%A6TYhX5GlpXtgn4QnJ zW5G8<*XBB_(6o(`ZOU)2 zuTLC{+Ej?-4U#r9mSR31csuWkw2N~=+JU~3W3g7Lbw1Lnvd<@JPb3`44R;isqQLxmS{Khih_rd)qVM zrlMeNt3ZmjjReLoQ!J}y>donTZkkYXY_IXIQXd9j5Yy= zw9*RKju%rCYZ}JWz1l>P_6|FioIP8M+))74v&HOLzQ024eM)LTD|GAd*8|6?izz*O zuEK$y&7z|^k+XT7&1V6%$`Wm{Kzp=0ob4nIejZa7ND}IqSrs3HdoO?ZIrfbzk+@Cp zZr01N^qTI{%JB3$FPzm17O7E=>wGtpMmEE2ESCkh zo-Z=*0@}_;?nl`b7;YHrcsV$$;b7-GQC4kBem%+6@|uU;rmUUidW~46CPw_PdHyjI zu4!D0j10szVh4Q^$7hK;bVLx_^3HV*5Suy71ztqGQa4lb8nK;9xkjwI<+9@?R6)>Li{&k@5npG$mb3b_qEe9kl4}L@ z)XuLVJAmOeWV6Cwt$3d4saK`k*kUm@>T-&*O2P1~(YR0utK0Q=VQgOgW{DtN^YAYd zb~+hiTkSR0xOEV1!bP^h%>A*~R66DVv!nFQf*AbC6g2S+eRGEh_*xyvP0T9bKyctDMl|)Z-jpO@M7kk$iUZ3u@)m zT=DsB0wHOU#_!B^4Ofj7t~cpM?r=d%9tg`*}FzKF0N6Kys9f z?SvM#HZm5!*L`JjEVe$t0b9jgpX80N0bf+?cjr1sqp9HK=tRTKQD5Aj&?=)cPjto9 zt4pNFF4)@WdH??POjj*G|9)sFWmJChS;IQLaGW-Cw`nY5I0DDOSaaENV`^-Dma%lM ze6HIZVZTRFHr^FoGgI=pTf(f4Umx>pCuz8NHCa9LHIIm*O*8DsD>LL}u->O&J<+{i z+71?c<5Oer!>d%k9EY3V;>h4N1#RZS`xNY?H#`GY=GHrRKfY}F@UHKAY*OL+)upa_ z@E^|^-B&#x^(&%2vRTQ0AI9~hVn+y@j47OoyJ6r%&O|5 zS26Sb1Z?=d$%b*WZcJ}TeX3|w1ls5v_hh^4JU7`fj=r@R1iE^)O9HSG!K&JaZda)YpJveF(ETcDM&G4EtnY(}OKxS;TBe zAQfVcF~#B5T{-U@v(`rC|HkeWy=0IqVJtIh?s; zJN1x$Lwk#S6v@uzJC=31gD#4d;=;YNrLykw4OhaEauL6Fx2mkJN8iy^kgKA5f7n`2 zr^&DMbb9lAAoJVyF6^2w#N@*K`U2S$;=7%}+y)1Q8oZ&@Yrc~2YLP8L_#6=E0&!Ia zfGsK2>06;-gS3~%K9!mmVyoB@|DayBEE%iwO?0fP=b<9nYgQL#&lvB|LL(fE z21qu&qq--t*TVl_D&b@%T* zcGT?rGTAFwYdX`7vRkYt6psm7W4ruZ%R)EPIar&_9>>Ze_<3VGGrkayU$JSneF1d% z7giJX``61UWAr%2+EsqXjIrw{H@EKMOl)E6hCsyOYXtwOlrs1sRn{j#0g6CKs7-x)4$1#7r((U)eR8PnV9+by@T`7kW3BYXs2a z9le|?PJw}X2+(95on;wC(cDA0)O12CL1hY?#}kG^aJfmQ!{uuDy0$knVD~+ya!HnH z1UU})uv_8?zt9MUqbIQ_1eKq5%QhF-AMG0<)3Gfo@1F~>xkhG}ih1eW&v^&IT)s^h zwl$mY*K|I#KlTP!=l;y16UpJj<-ldb)WV6_&to3GBuaKM|GQ8Nh|IC zhK2N-Wv6m5sqWPs08{yT#C(j>C_itf_MPQE7TV5xCifnrakFeIf78!4na2;;n#&&n z(KHXUZ%Ez>K~JNDg2C*4p|b!Qb1gzetCG;35L@Ne?EOAU9Ry-XBmSXmgG`rgR>%lw zjwDFFH)sE97~4Qt6Ebu8dgKUNM*Djk5!{!LBDA-Q0y5XOfFVu3nk`qi1LFcN6RS)Y zDU`$$B3?<+EaDSc?=qvOvmwMZmJk#wKL2{57`^f8bu9okS=r6#_9`(``g&c;Df9SF zdt^d?#rfrIM?J=`vHYfmg*1(u6%n@E_-uPvjJ}E3zVn|rnA4R*N8XgKRlq(JrSDNb zR4EMC>IrutO=lf0Z|h|m=%#-kZi}!*6`RlB_}NwC2YFEadfQrA)dub9tYb)B*`qic@&aG0kx zAB13%RlyyT`E%{xNXFp-(B-#cU`~Hj;xi2!5ha#nZ+MFoX0__q(JDso9n_7qyV!OP zhHTn9GrC^q$W8>*9G`8H?X9zU{E5IMFzPWp)?VI&hSja=bl8E?=RM2z!~VW0T$}0q z3-zxMP3elTv#>Ow*oubvT=VmkZ{V%UR>{eQ6 zgn~^g%Lk2nFS0J_vmh3l!F2w3WmdpSpm&Oo1!j|IR;{laVG0$!!G(sMXS4ZBS4GQw zt|8?si_JH#UIf5t^?CF8!_bl0Ttd}=SzKdbKB5|k5l9+oLW-4!}%nhBx5HWpb; z==_D-zhjZ-U6w@-bt}yl8cY*1SI?~KU)vadp-xw5^>q$aph8E@Qm`s7;vq0)$ z7_j%RWjdR@W1v09wl^m8Hy9(!^q|AKV`(yfl;Y5t%ik@i>W8~id$vu@LRVaVs%=f?njuc6rMdP)1I^*~e|K$#s(oF%rzcdy^&QsQCFUk< z-X3lHo5khY4um$$-s)j{FM^^&w$JHTS(HohR9+8rSbhmXtW{d_`X?8 zPX0=ixBZzexAfuFlS#Y++herL*LgPY@?msFR0U0yXW~{e)oqV_^`DxE9HyRl3eGq8k-` z!k1kB(sWP^@eMz!+DFL%^9=OB7npyb(7wZVux`QpxE+Cce~Nw@=X&dKHv`fop?3SS zq^f59rs}3lQN(}y#V}sAK=VdKWOb)`*mr~rw06HvWjAB4;**gL`&Q~^B>|dCBm37V z<;}TKlV;^*mslY**Q@=NQ~`= z-7?TswqD6N-;$OogeZbpG3Zqx{;7(IuXMCD-jdzAMKfQPQO>Jn8RfdxE#DocC6^Y; z)&7^GcE35#Z{O>l>i7;<6a#u$mN!ZTUkPB@pM9q#Xc_MBbINtm;L(WI(4@_%a00Ph zW3nzLm`mnzX{qwhWJ(G7O-r>}6P9NqI9nols=7{^XHMb|oZEBC9Mj7zBI&>($Mdsz zp2vAyBtR5bcX1_ENh5i9E@_unNRs2ZifdI`{G%W2$Wb`s(h+0$6W#1S9|2EFgTF6o z$X{qQN}t;;UZ~PgC1x69*~kO`)M|pZ*vbmh-)bY)7F=}Qw;;&QoxPwR0B8HV8n{vS zEn?qm-}s$hSuUFXReOrr!qULE1o-6yFgt_rJiF_{F*%FqpLJ}J-@U8cj&t>OGACr` zU}_{v#O^%S?3srgmK6(Lt21#dT(?u@u6dw*H%c)oJdP>2&i!WvE2f83t+cu0s4ofK z7jIdJy`2I5n@!UEw+vknKM}iGeXNITNjO=Z#=H-tcbHr*lDkYQv!SH-{=Mw3NzB>6 zb@PZ?#&u&P+1D>8!MJT|T}+m4*@$mV|IW42?v`B|liR$OHusms>od!j0{*|s7BFNtLDH7t^Y}Md`*1M~3@rISgZ9-3sTJr67smu!LORVYs|^ zulGT4sak z&(Ed(C>`Y(g5UJs3-Ne;K|wlu@6;)U>2y?O>>tkrCglDxcVg9w*4ey$WYjYWBmY|- z<85tNe-6sZb9BFg(zqDUQGZBLvbAXadElneNo-Vn_E0&tK}t50x7ip{kotj_$h9m;xSX|utdVUb(3xf-(h*y~=_ zacWK!p#B)K_I-)tcm?XMBOilW8jmBKhiYkmS)Q^yP7k2Y#O>!g(bAa(8CC2OD94sS~ImdnOV@Xilmg zHUAH^mH>+KJ5f(ZRx7s=A>6`|gFpR9b zEU;Z$k1e$$2`l61tBTMF^{?=3M@caHIE{j|RJ$xsvsv+(y?DrPnzxy5ZX-yy_q33S z?rg+ysx`Bw?I^mTTI?92Z5*$t8Iu_z;1<&Dm64I%8X;MPeZ%JTE)B}bg*RmI6Hs+kaJFjlWseVUmUNfy@J;#|Vojv6AF zz2}&qRwM~Cl1Do>v*wwJji*%c~CkNmnaellC*=W<9f`cEDU()*Pqn9evg za&jEP3+FXWMcC4W%EKQyc+UH?S9Y9*(%+tOj-rptCf7#T-88r|!m5(%aVt&nCHj=P_it zjqt1|kX>ERtMYSctu`rPv01~|UtK`moXIepbH=F5gW!LRRvDdlpT$~uL_t6q5?6lt zh1m@g?5JMMrt)uUBS|Cut>|W~dihV_$lo@LTO|dvn!h<4!F^`mKU$nCj#yN%K z%*XPFngL0TT2(-9^sfvn=c#f_%Mm0^4w-{?QJB-AxzWLlWPS;R#&_n3CbGglhRQEq=q@T=K7L1uZ~tn z(Cp6cQha)*oU+Jtjoo-;KFh13p4;N6>jbH;h%TzS1v%WG@w#jrhH&+Tu{?qmOFjFX zdmNW>1yrO{U3~tvUOWD7V|=&HxvevhT0ve_7W{qr+ivGW9=pB7WK=Dugvy#$bxgRd zbh7!Gl|j}#etgW=Mgp_gRx6P-ghjyRG`>oxz}$?Dcv#k5WHr(oU!66qfG)Khepa}L zWAfs7ep4YFE?z-VkmGO5=C`%rEGYQ5sJwc?YwMMrt|{C1DK<~84w`d^sKDQ$Chxwi zq_gtn&lZo|R#kWR#Pn}I%P<^EHGlK1d9~(D%(R{2XB(ust z4Zn3(+vQpI@ULeWkLRCOyX70hv(vv`)Kg$I%KEfpPw_dMRqEkFXFXu-2%Td+M}kBt zT;#Df9~iJ%jbcar1QxCUsEO;vugHI%S0Yh!Vd|&OkhrVcxEYbpqWuErqCgti4W)@%ABdr|MTnLzyAMM#w!1po--RY`((AeteWq?|NEt1@?YLB zB8vX~I&tUUk3nS$r8Q)I&D{d?bSXW+{Q9G7(%i6fP?5Z*I`1bLo(xg5$*8+@*VZoXb}Z$6P*RKbWn-qo%veMffj9Z@%>S z7)O`!F&cxa-+?&fDlpGdQQScs3=bwm#Hg`^W)keIM>b1ruDq6lJsgZNePvA<4aut@ z&W|zQ+rY4>^hKse!Ju|@`&{qxC*tEy-(yaaH&K$33tU)#|4nqcUD=hwK=gm2a02ZG zLgEq6AEB&Z4|ZvuI!eiW6~A-(_gqDSOKsf}j^gtq7Wa1ITug$+#d}$(xShyiFqU zuoUU&Flj;J|GsbDkV~|ltvCn4bmP41l%d;T7(cfYIS|e(WP7rluG*a*4$q)O*q)5O zad|(O)62(FUFVjGin;2#xojBI^Hbc?Tg=s^0VEKz+Hv*(?cJuEO_5P|%fhna4#Y_h z?F(!7D+Bs=hQ40jg}5L)d#1^QT-nQm={3~$?3onRJ_NDMoNvrkZQD<4_qrC3roujf zU#f3Y>?`!w^r{&7Ne7%q3%w9bYOmrcdeQBXEDQFGdH%=&K-cZRXm4xB&3`0xgyDVa z7BnbYqDx{UfZ^f{OzLg)jJATlD@-aVnYc|m!4*tzjkdS)SUlUIqMD}poyp7S?Hg6k zswkGypt?dV!&rO$vsOBh2{|jc<0)8MnO83Bc^3$lhi>>U_PTx$4*AduNMtnxg)kub zk{{r#$oA74?p9e81~~7D!0a`Trt1dU0ARaeR;9(VX`GclibmRj!^3a_tGhT$T$VjC z(6SI=L9hS`CIEL|2F&U*_NGHoO}-Jv-f3Yjd8147z`SlwXunR{#xYkknYty(sANsb z2#+QRRRFAEs(;gL@*Vt^T)2mV1j+`x6^fJ4c2*`4qH9K5T)zRw`#Lt4T z;eFHiI%w%`e7&~zr#NspsMY;g8tDLE1x2oyy@o@^jhop{`vI@Q4|k^Q{4pZkIs106 z(-B;_UM38%YV!K!fvmZ_btCW^j7Jple>PdD=M`M79KVk-u(|0DAhoVScqP-m3b=MC z!TA@QyfgPKrgK~wYGfl8c%Q57rrpQ1^^KszV@)s4`Bs#_ir2j%n*aqbYdS0 zL#!%7n@Sky_C`qRq8;BDp2}U1#XL?3w=dUb4(qv8wJU@HR&^nP>AWZe=UHBcVmJh7 z9_|6eYGgmXVNPDM9f0mkZyPv0hqDJOEL}V{0vx-& z`e$<}aw@n`GNxTSwrkE00OAqG)N5j|0%ltUwrVSq_0w%l(X6(=AuGMr-F&q63MNw{ zz98$J0p$z9R_{&mA?qjwd)c5mPtg@HluJ!-MYL@M-0*T3hF2|WQhfAvrQ-3(>)Nh> z?Fqc;U+Am&vRsC|YHf4zZ9+#MZWzuOTnFJkuQfKyog5U(DJn$obT{YI0$6VWk)JcV z;ZHX|SdHyE23SSEQJfTv!hF^*`;C(OC3uLw>dR+CDQX($0NT3a#O)8{SfKsR3@aL1 zH3)}+RpS|<+>O-cU$Jd2+0z2&kc#qM1v=h-S=^X%73s^`PUK^*?-d%Dv zUSVwcs+~ghxg0zYRR-~r@ihGG>4qq$gDx-Ja{(lGd&UmdgaKoMEy}$Ir-u+fINdL2 zqs;3Sxv_lT3WWWUPxPFM>ilLpg&RUs(K}x!I2AdS-5J!)6UOvA4qhg#rEj^BuWdud zrcq^gdkdW2c9e_4QY}3)Az?*d@Tx&OaIk>dn4D?ONc$il)nMco)3n3c?7tj3xuU&N zmI0#ob-V^dZwSVF^NFQ$dbvD4TbTA>qDC9c@!0hE%?h)Q4V$o(r5wy+^`eD@qT0`F z*JLSchp#u}Q6>sRMN-jOtdE85VyCwDo3JGkAd3624hR|-!CXjh;9K%|rI#hn{dFgz7FPy!>fbuPe zZRsv{lIwlKK~0OKBd|1WPmoe3CLatl%jvtiaUyx9PfwR?Um7j7Rz1aqIBxc@uuV@k zUxAjRm-P-Mc%Mwx5HUf05`k;OS`pF`i@)a-kk771gJk46)|#E0Ww)@>6etaqO0#{9 z<2>sb^PwTP2N2o;m84z-i25N^!J`y4;iM+AZyMKGMOJ2wDdZ7AC7e_FpVnG3{`eP9 zFYUPbQO=Wg@{vvrjVpM1m3&Dr1%qw#iXI-C;|T|7tWgQd|9nI$KbRa8&f}bQ6t?vA z63au;TUu>h0_SWjRcXel>FS`AXBY-TIkgojr-Dkxhb^pP(i}2TMz^3!9$NO7*K%gs z;6^V6LH=iZWW_H}uWo}NI^%&NTY4VTR41x!|4Z71hH^kG5{h1e}U-$pPVJqk9wJgmt=xmzRM> zbuKRh7z*hW06V!`nGtFzssc~8I@$L~=Ly&7ep5C1%^mC77lNvNr#%5gI}_jvZ*ncZ zG8Z0>%Rcj8`DtnSaR=sypp|y{!%!0c5L9S*1#bmq3r~41pa_n!Tk|4ePQbM-d{DYK z7Yay|(NF;CPd-p7qVnSsEi+Kq1CPVloJib`0bhZXBSsk0YPf?W`Q=vwMGk6WTuCicP+_iYh(s85tf%wF`n9cWP8RQig;Ppm24}|WtJsJ3 zCL^i&v85?m3xXgqTI1Pk_ln^+SRl-EIqjN2=Q@m|Eq67tgRBzG8V|1TRQFTL^pw%O$kfn>WoeVU z=frX7B6Q5t4yg__74EOb!P8Mp52@LK<3Wq&(`Q8HxR;XIn04n#%f~qc9z@a^VCh6i zVz`-hw(1rK>Lhb=l^Xqc-_D69ca`kKWHg4;HxNqm$4y5Y)*t%sn4=Q@-f~o(yL{U& zw~h5mE!Wuw9yvqDM%^ZmPHEEyhtJPl&6NoV%_w@hGYCz*fWresp)iInaU)+jCyUAQ zHKAzk8M^1xlSp)8cbSZO2Pm3x?gdMwVz^u-*Y+ifq7ApeP)G2g1WHX*Gzp_fOdY>; zs^h6tYBc+K8SNMUEks}I9-E@{7l+z}PLkJl*K0112jj2@)!R0Bd5lnzQm;`6Rnf%G z@p_wXyj|`kmX0N=%8Tt>P%ck@a1z1d8u=<%gwdo19y1C048|^f6#{2%BTf4p`dP=+ zISL51rI^t_uuCW>k8PgDt5QM~mDtrTh0sIl6hfoSECw5=F+vxKBZS&Dm>r=~UE~3w z#IT%;I#rY8dtT#5RrXk*cDm7Hh)V7{px|gH91qF@QsBMP$sFT>?=>7xzR3YlR^4y0+;K5*n7l)#Ngy19 zRDA?Xmo|O1+?&?E``^t6o|dtliKWcdMXuGUitNz0Y9Jbh%Y;C@T@zLJI{J2yooe8& z)oJ3HLVK-GC;I6^)C|%dGVE?4R83?ERp*Zd3#oVLyxkpyaveK2cLMVLL~7%_{kR08 zjxIQ5ieZFtH#K=Iv1(_bRgbAp0_#8}T%tdtYkA+1c$01qeKA%~=zL&R0px9soe|pA z(JrT6Q*|zT1)b@`jE7)JhF-ARi+efCvuGuKn3ST0(R3*+qos9&H~MrbH=b@9X7hu= zR88e65moh%A3bW`#cEOJp04#t(xV>~Oxq|k5cZtaI;XX?AqDT_V{}Aebtum$ogIDy)Rk9QrkdQpD&5r(~(d7gT<}EsjdY z<%DA9n-aXsMlO->$>#ViHbcGA*?wQ8W=~qs!PPp|L8|g`nv> zo-*7TD79n;Le-M!0x_mLRSc^&SiV9yKikx%0;$%}72*uy#H0~HI}O|gpVDnQg2Zi- zuO3sbjjb&oi8*Krc zt@LHMFBn`&{!~rqUT%!a7u^scngN^s2=h{I={DR<_4D|-)qP&wC6;s#f&)>cdq`1p zsl(*CPxXbTLv`bfX-KR#m{bn>CPJrpti24*r?uw>hxgiuM432cB6jplIp$py#aKON zp`}Dkw-W(2^ViKcRZMrHHpl4%IcqQ`0h@PRo48#%{&HWS_8>lJj#qZ!tFhXf;7`Ai z`lQX3(QZI@=*T;3md1ckH-D^j@u8=SStEg4&vu@y3<~DTsLiU zxZ(|ly81p2T{BZcJ*+#WR4{W-;NCI}&Cg>(W-j;iKm#&t)quMG>IsjMluI+hSB?dbhRCqgDMYuN`I1kDeqs#E=LQzHuJZ)7<^T~L2NQks} z@Ke%^FKYruk9B3M@K?xuU3ZhxTslh*^X%*I)FS5m;c(+}Z;iEv5I5|BZ@RV1a_wq& zF>yz_y_{N`hO&MjQ#wr!6*BWI;%o6?jyt9hqJY7G9V?A z;K9vYos$cmI*+MA~!AokT*wI;`**jje&e#jhMjS}DVKBoaw#g}YO-#&@< zJ9E-B@QeAtoKJPAUUTrpLUZwCpUm{JB#Wd5^#RSl$P6JaTK?91J!tAOkQvcL9>&r}RO)gR~KEu#-X83CI0HH1*2Pvtdm7&0xkC{%^WGvcL zmKPXXp<2_WFpX}*EsxD%!y|wM#a&ZG|H?PgB!+vt!|auo9A)~J>!Lo6Zp9GnP&#u` zX*HibZ#;Z77Q&xJb%=yqFFS>~Dnz$do(L;V?jvD8JBT^$Ng*P|DTp-bO4IFFRgoY3 z-iC8mjBB!0R_F6r@7F#v#c1A%TYMDdaN?-4w30+9RgIeLeCY(1bL-Ly2y$3ns{6bC z##1<|?%G8a+il3=v?JFoK5}xA_GK1S!;LRWd{*{Hn_sJmDe|+`JtaTY!124_efFrW zLpVw&bFAPh<9ZCo-nSs$ncZsy!8kp6k~8O4VClKq;>OP{VB=bk=5W5xY@+CbeV^Nd zKK-+$HTtX!F>1*M0Vp!MSNG2n2b(6$hMFmbdPk2e{e`i_N;Ga_Wt$12B|5Clf0O&Y zE|h=z&vbcZ*^$FAbSu39`zVkK``_3I7p(UDw2Ky>0s{zSIR@RRGVNe(I5%oT?H`cMWJo;K{L3OZ;zzXWz%#A&!# zKQNSWZD?}lt#_+aGLK^eX9|k2U_3`V8E2JE8K7*RJl+KL>`EUX?K$Vk z@eXicrtAC*^}L?mJTZ_7VhJ+9*%;+mNbCCQmNEd_{k>v|IaT-;2>~BE^Whn@>dJ5%&3i0eVfeX5+kPs} zg}2+AFa{+~dN1DEcLjQb<=snD*N~FJNI2Z*hjN%+Vu#~TR79)$ZOaJ1QCKTTa&_+u zoZeGUF1X!?eFV0{*xvzL<*_0yxSij%#AVIjWF*F|CONCaEWG3H#Rz54)R|S+P?c>2 zQ65I{{!1+E0+*fcS&5`qv~GI=?IR+qE+?dY=HSdrdZv3xI6Fvz9bs{X(|h3&hKGx+ znC6dzLVS}~V{a6#O>wkmAT6#d`k8dkP*|Q30(I#s87VN$eajK3&F)P$4OlxOc%5QR zaYV*qL$liUhO7)YZM)l!eE_Tq+5lx=r!F=$%APvdFuUFxWGoS!JH7jc?c}$ii}&*8 zj_BQ!UkPM?@p2T*riSr=(MnwLD@rEn;1LuI_k+!L`2H+ftb+x#&ySVJpZ4W(Cz>oOf!F8DZTv!P@=)25XLuf3y=h)ywZ7+q`sPQk&lhXgf0lKS=d! z+shiL29`{K_E%U=pjI(DtflaDZ##mt{~VVCa(tY)wFo^o5#*|LthOd_E8pOFp{)># zZ}qkmjQyZ-ojpcC4g3j=#w@R7h?bjKgM(HZ z8_=J@^%SG`=Jh$EJ9=kF;q8Pv$)L5fSNepw`b*%Zb%%D5W!kTeBaMBEm;R;+{h&m#B_4&;)r!Dl3mgaoskexbI#r@!f@~1wOOD z_j8r zAQAf)NkL7sZcz1;x9hNq<0=KWDo6;dB)G|Fq}50d_$y+HpJgEnxBV}r2H^GUHYBH# zr`%8-U%Tn2uPdvw1;C>HL`U!&j5`@y((2r58sTp~!1IPM-6PzK;hhZ zN%pD<@n0CbzL|@w-+xA)+OR0EFe!|^?~=}vNb$2`)GYce){?NN*cexdPy@ zV2gs^v$={%Z@21vW>B6So>{a+-^=s4Qj^QT?C9kIZQAkAj=HsF<=ez}CZ4oClvxJo z8><4O{(hy9L~^}U3BU%Y3w{MCt@acG>-cM5RnOmT&zj&Bp|t_=U~R)PZ!bf6yQ>1U z$3ZkR*(ImX|@<^X~<0=xzQ5BH4#SgPdP5qa`CB2UuU7yJg23CBaKwh_nh8?L)U zE%#ZEIb5sRFZ8hMlZCzmD6}7Hty40G9$Ky@kXLlYZZum`gXcnH9c^Rp`C@oGeSSIj z&c&qKHV(?-b2R?)Mzh~p8!kxfs1RNhldmr9mD=DI#@=vX9wIlWnPTw_iWc6HFyDs^ z28w4+q@@rx5e}-A?w^@KwAIUXsi@;+K*o!CzV-=>BV$@>CHR}KZ&-t4zgA&OqwgK% z*cnbaIlMCm_KTQ|fE^ja)8h1*-Vy$Lf_wC>2;ZnX3V=J>ONM6Ki~f*7JX-DNF795S z+xfvzakXEksiAs(D3lq*mI3l^muq?uP+~H+rsZ_7#eCx{n`d4P&%tvi^HDLDA^i%8 z#1FO*jYx=XOEg^@%)_YtCgV}uP{xwLy}qGfSB?5P9+`1@N)g}YlteQC&2km=$_`E! z_0?cM7?b8ZpXbzTpgYe(uajO^8F*ff#&5jpdWI8C5df2Q<-wHRqWil}f zlvA_d0psFY00|N^g}YWg_JaKT)yaVDliP~*Dvs3zsNJ_6^^gb@*mnZD6M~B4V%RS~ zd6hu1fk0`qGFYff-6ohjzKg7-1}x(L%sq>vCS*okYd@y;$nR(xd^jztLqTrZV7z~h zdqSXGW!v(kZ6YPil|1I0(8l}4kwuz%@?=44o zUSI4e(km`ky)WSHUv`1rvF)dK_OG|V-R6p5IPSar4X^zG;x>g}MJU7g;7_$?t2_&I zU!KEDi~;yqg1HKIm9|h<$C4Fc?n|ZHQFTUp)HCj7x}#^;!wxlM*YBRu7ekpn7b&KN z^o;DzIn4Pjh}}U+N7CwjSu32wk4@>O@Ap zTGX0t*c9HYs^$1%z0Fm-XbH6%AsQ5IyZ+Wp?I+9c$ehPp-c2E}qp-JgXB?^0(b;dJ z0qzMKn%MhPg#P2YTypiwZ6G}ND!hSf=q+j)L6(ql2HF3lSzqyV1Azfs^x-e@Su6^D z)$n}MaLkICgiF|qR8I?jk+DnYD;j6vY3sUQFhP0BNkYF^%$+KJTJJE8L|0P)YPyEa1&uROvs+Pk+*pMqfX46etL`1; zj8dEu=ixOI;5{&-Gb^{-;T9fm74!v-M>=*95;}5Vcni3K;|bf&^Z30@^RL*i7}T-S zNG(w|>=O>>4rT8JUm098!^;Ap&`-X>JngXg?`xkPi(_Bb3z5XteY^SZs+R@B%MFu) zr==a9LrG9ttvJ1TSP>2^^Cd7X&#R=&%{n`ITF9T>(w~LJ0$X~TK_14}3^*?t1YVsk zSgNOm!h)X8b7sJElRjZ^(%~0$iQxo}xP3!zvFDz_?R*@0%QS#BLue7 z^eC9W85##$SgWc#rMI!&1!}Ba%l9S7WCP6#w$N5X!|y)m(BoGc&XamWQD`fuL{Tg^ zM>faFaeZoe*aqzYYbRYQfy!O0B6BYA>ZloO_r?`rZ6@d|#0$nXBFNY?R}Sw8iA;5& zz;@6q64r!jaN*q+%4LDAS_l)bT9a=Q0-@9xJmJ;_1~;uY;j5Q| zH_%SEiGWu5sWvgxR&)ilT15$rQnIZrT2DyZ9ES(3%>oME)#&`YxFlYH z08v1$zx?rStMFK@9;7x?G|E7@#vT5oxI<8%Dea2yIx@5#rVsBOi*x5ZN^bxy$DtUE z!n%8`fOMB50^3}px)qPMkn?a@P@8xcQHmjPgkO^Z*;KecnS|X9`U-isqc$1I=W)GQ zZKh<_(*j#{jlX4RPP&JUg4&a&DK!87^{-$5`<;9u|7cy+0+mMWuG&%B{`*Ux^6x+J z$wL=3!Xbjw7#(s^j-)idy|DrGjc#j9-&|sDx7OB|>EGk|jQ-D=Z7iinOxWalR($g2 z#nRNf1yEIcl6T3a#i+AyEl7=mrd7$N^{t``C{jQ099F4*srgx#F>BtCIsNG@*41FX zX%fp-N}XkPEL}Ow>BX8;m?rqo*NtTn_XZXyX?Z>aYq!-BrhdLCjV$$_!HU@^_1qsG zLovcj24F%&&giBh^LWpY<6^yi_=`F=Vz0G}B=l$xs ziz6E+HEmN^-di4t8&##+Y$z5zC4Q!$QL=Z0TgIMTXJn8q?TB)VTD%+KRO+rR87xLO zOCrtf{#8~{3cEbHkN7@1Og!c%84UfG6DH5Yxr>3vkEV->D|7Oj z<5ey?UUD=&Bf(S!GPuH!aE*RUpu+^pke%8yx&bwtSHBRRf(xaVQ$=tT!b}ZZnpfvj z{duiNV8@n09Ui5!>Og8n(A*19?Ov}EQr&3x6aiDmc;IHW3>Ues08+CFMaqFxHGHcJ z4`OSuID;x1Yl3Pgcs37IRo3(gOdYU*6nu6n{H#DP&j9(x{t5bT=Ru%KW65wZH4W!p zL+X2V*(G0Z%5FflLC?EURX}XxmS^1%$up{o)OKU)VEUmpo##nJ7ioh00rn}Z@4iFM zCfu$-RlU{?s;Z=E#fK+W|cK0yxdHmstbqBu#fR2RoYtV7e0L9AV&e5zhXB z=~M{_E)<;SSFZySI2VoJH##GnmIkjins!!+ZZOr@1edl)u1f$k?cP|7rTY)f1eE3s zuNn~Pof zQ`vbAMdjmpr2PiIk9W&P#zcev^J^GRCzNZzPKAq!{wYjAa>9I5^za>51iN{rs3FIP zrdkJ3yv*XkmfM0GcRbcwQb^V`teAmnzX70%4sE>*qHfkC6qOx`8*0xCJQrdA#dH}Q zT9$%9bU#u25L6U3p3Xmqp-y>!_fFsCDFPmgo8j7s>T+qnLf(ePgG*(OMI!_b)DnmowIcx zjV`i#f{Vbl5`KJBoPIT{!;&=s_;`YK`@~70E~S;`rexqSUuW&`Ry#~5<(c>Vy-vIR zrd5X9#k%nw!q%Nh`S%$6B?ZbB#in+9j2)eS*{Kx{;r2~FQ%OOxcGzAMKRY%9vR3xP zjJ0wcX6&q+?xW~I+<@zA)QRYWY&&MnefL`4Ukmns$6nk-xwVi#SQ5A!B}{tKg4)AbV{ zXix1IR;}?G+W1ggS&`w4Tl7QEUR z&iVnB-KSkk2-+Lrvq%!=tkCfc*WbOm@39o1>GLMo?eot!H&~OSe3<3h)wB<9Cd1+0 zQ}1tBzUm%(XGm+!8VFdu*>ZOzD&~a{&PoRI=@`cx3(6LO>E1N8M#01AT>jjOyx-n! zv+z@>P2ue1K?`$s{>CMio3$y=;jDIIV$P1w@c1dII;+Xw7dy<^K{{m!X~BLFIjz35 zAe=2oxD){GtV+agrA4KVF^!pA&(L=|LrIu!@)A2Yof+O2&erYeiVKvjBQH4!WhXU- zp|8&kIrSv08qfGBo7^S62u^WgXbBst$aNU6>tbC>khGfY9%XgB_$Yf{46_sLPzW=) z`G>_52Y2_r33TLn`W@<DaTL;jye$U?c@poKq_UST{_v)03>2;-A9ZLMild*eU#`p69GgBpsMbn6_WLMQpBeo`~eWxK?4{2a%#12oU zDMjNtQ60)bmG3lTS6#!Q$!2oKu%TpR!kme+&@-Ac1hRD)FkI8t1#S5Cw9lU>@4WsB96~8+ytI7pQzbt`nvu!1|K5rA(U+u zVXg7hY@bYCr?G73ru3waJly)-jh!KT;nw7BWvb1hS*ac-Uaxz>@H==pB$S=>cGH|y zD`*cP?c%YU=ByJj&Dl>9)|4FGx`vYrCwX`}6Tal?*a6zoL_%F(JEVoYcHR4}S(T)d_(`grz>v6`Utq3D0dj~)VTtK!g>qHLX- zgDR$_h0$F6=1i-8k6F>Z2pO*pKUeCGcLlx^v;sUUB$O`d-uj;mJ zRT=TaungA%(qT0VSQRdI&OjAfjgQk-M_Oo&8q;kS5v22KnHmksv{iJLxmw5Mp5YCF8lx3o-*p?>aI(c3V zrZ$9yIzDpL6cYipvhtS8Lscon@ovT7AICyU?kUb&%&pRrKhx4ImU4_@9lTnyTb-MAx(wIw1>6cF zinY;=VmOJah`m6m@~@ac(wZ#C4wkyZSSD$wMAk>rcwt$-Rg*f-&g0yN;^GDGaIGY6 zB>pzZCuH@8gA>X}sn=aql^GTt^5K~(_C(|Hl$+{dk+y%Rt+ z;mV##czP2X>PH$((gOqU~kd|{|4snt$7*SO$UW9MHCRr2(Iq-y;^ z$G%YhbT5T!t!eNnufNIB3()q9Fcj5M*|R98efZDScu;g%x6XWwpEN}M)}&Qxr@pWY zC+X^wA2waC{5aaExrC&Rooc)j+_KyeImtpkjOw*c`jUtKnsg?aUaZ@po!YgVTdOW- znxj?P@eJ3rO-#yh}C+H7mzyV>ee=p0Dmv{CM|5=qesee&oF`62; z=47Hq>(k_u-!$Ez{OGxT!VjOJBZlin@+%9T=_lITB2B-eO+RGPT)&fXj}58Ov9;h- zkkvq>>DfR#R@-KW<<4}Yt252Zq;>DRta|2++JIEY;bUu_9ysirT{N0ExDmePfB155%xdJlSQXaSb@4U~<(m8?My4b(jq#YmDprNlkSL+lbWL$zROK1>5&W z$?0#YoQ(2$!^i<b9kSPHy(>e&3obtDQZ zy~4_aJ(y;%C%`j1jg8`1-e7c@sHVBefoQ(ss}#%~R2f>7#oBs;fHIhBXkGQ%-U=o# z8F0Gu!!wU7u9&9vM!>cdMB(IkPxGCNO;GdgQ20TYA8=Bv*Pa?F&*1mBlLS?~r?{i$ z&B0IEOzJU$^Zngf4^Szw=@t{rF%`3I;y<0xy-(G^VMdFH=$OevN{OdrQz#G6EN*ik zmmO{;trNnzooE>)Q(-;Ksc}nd?Vq%q7xotjaxPx^5>d|*P`nI;f&m@xI#8|IH~EKIZKv?bf=jL>Vxv)Sh>W zRPI%30Z=crrlOQb)p-2Y0dPHBm z?Pwdx4=ZPzR-4;xrcZ`Sjl%?H^r2tt9o&4D-nk<1Kq^15TyvpUa49uW%FcrN&M_J6 zew(0DmCP68{()DvMJZ4w4p?c)8P1JvrVYJ<<|dN-O27iKXE9odZa;Eu*D~ zN`jRHq)Tv06c_a1_?im|v3wC|{D$duqO=}bj+fc@K}ac>(v1R2u~IuZL)j6$CNQZO z$;m>=%G6wNji%R6D2%Ez;gc^H=U5Az6lNwUsi?{>DESPBje(QGEm>Re`^(FOl0qhz z+JfK7^LM5@=hdAHM!2eQ*P%TWiIwbi$q!hufV})?gYmk7-M}H;PC_~i0!b5;1R;YJ zDFMh=P}}tdEDbWfnGa(e&Z%>Ass(f+(t6UqN|c}?ABEI;S3w-c=Q?`TVUs!JzyNuC zpAm9jl-7b?>q6n9P;^^s%aj}J=%^-5@KI}k9W;+rwI%Qa}4b5+Pynzog^QZ z#EQ2jG&10Ms2wte>xGR3SJbFW?w(!D}A*0Q@;| z!72%JT5nrCe4`@T#+=6#qwRu?&-lZf3xvE3bsf8D4mv_cfobOp1+gB|U4T)beXO18;Esc*!2PMH%bz5t*UFnV#=cMdamy10P66n8aS3Zp(Xvkd z=E{Pu3n*#x2PTUqEp@53MCweDT<_wR+Uvae>4~2GUVmuqXBSg$2DN z;q+SO6?Su(GBn+&x{0c!mDHhYjNVBF(=>X@RTcIhU$sr4BV|QEr8rU%+bn#Bqp&@j z=8@~-jUt=8P_s)WDiE3ss>)Qr1&mr;76Qnq{7LUL1Dfoep5Lsya7PI?Cvare%C*CU zY6RBcsOCm(Q>V(tg+H<+@SAj(9Y+lc`2vB%Mo2-+J9jwavb$!GgOV15l(%FmXL!wU z>E5GaX{rO zX}Ke$)IK!I)<&FHZ@VX{Pb|aev!Lo;>hSs18#ByP7vUHN{{2gm8$|qHe94V45SUpL z7bLD?PX1`XJf(V;SGH5S%Fes}b!j)8=*7wP5Xu)autc)KbMY-;Cx=HDsl4^jKD^6L zzO4^wBy4%-#X=%9ze%Hg@HypkGp*Eeu&fHRd~LNb8r{jfyhSAEz3c8#x7A@!JBk;;Td9?c*Se>&~m11q+kVCEQtW6yokzlw5X(n9H456yU1r z>y0YNm!rWG4{Pdm@gBxse&r?5?Nq7+L+){DXDckLZcVQS=?jg!b-RF99a)M49@y|Z zm+DCPEny46S}VWvXkd?ytHRy!ZnMEF;fpw=Wn;l>ZP+olzPz+rm~&Ci*LZ){wM1{P zD3kzz-4l|wqIHc!!rwtjS~Jy~Z4mNHqO@K14jXwUVcrtK;MZF^0}-J(=zVIxW{41^ z#5ZXrZPtT2v)0YhJCd^52Ap-&#ZcCO-aWB58gT1VA#V$wQM|REUYcWg?e$lcm^-|~ zUBweVo9q$uav!}7@0Q?IqJN6e*Rik|t$!0-Qb)>G4t?kw{_3@Ja=YKzJix@7g_|3X zf{FE=FLb*iDIz0uvpoj#16j^=sMJvu_A1+huYz7ph{M&wUdHk&-RI_$=k-@F81rzy z;1>@n<)WvG=dsF@d{2w}r(>tauuQ^Ac;(apjLJ2!nB|k~yJH zWBB8SfIAHW;YP7ok##TACSkeVkJL&PuM11jJa-)w1;T2kur!#XvtB727Ps=t%y!kq zy-@h{&m`14og%f0>ed$74|9~BG$7r*7wdhfND2hSYUEuB+L7PDmjs3AmkbDte_&Po zdodAglt@n_y;5)zv^Whzb3M$Dm|OIY+y6pj6XBG=9G}y_n%WQ7{uG(x+cviNN+!=x z2gf&?15|!L6J9$HuIeWUlLZ#bilWED5sDjl66!Wtb2*UguuxRAmdBLOB?)#IVDJ@fUPTZdB(Y8HX}vlaY6-!v=Y2$EuZJ##%Sx&=dp?AT$Jx1Xp{X#1!zUe zm)Hk*{Bqj-D|Wgyswj=fRYAgIkrNbG^dD*|X?{D%6MiXZ0LG0GV@0U{u?a=BIgv{N zKUwcvDTjsX5-ttv%oG;4T`upQ9t-{&?5d0B8jAC)v<(Z)q{g=z>p!N;EJ>0ahoM*L z3q+f1qon&^Y={Rcr+=yv<_wAA0)ly@4dLSZf)jCp_!t-Jyan{D{hC2^tjgz`$T)YV z;CPYo%;Ko4MaL8M-Vw$cDfqh=`=?hXL5Sa-x4pXg@IwRa%F2dtn%h;fI8)RJqcm|x z=wo=O1rmGV5Q|ODPN5?fzTQ=s4z+5l$$Rx7R9IIl|pGI&tCb*0v#)) z&z#(Pn^HO5WN0nKukA?5bX}JuK5m`sNzh(niGS5RW(R3v2|JUSb}SRRP48xW<~aib zcBTYc03eG211oWSLKHJmN0D#y+)lVq$X%S2D7aergRpQd4jYBQ8l3mql&gBcA~SYqK>Yb#MS^_F&)0ZClX5;d%h2prP3nl110Vp*nQ z-=CKzp$4iFnjKxFpV)SQHHC#tz>~;MR+#nP;I0<~MUCJruM7h;nVjR_oN?yN_vETo?)@f!0yblV{w7k#*@TsCj;u!OJ8UWOQg{z z0&^(D$hu^e2PKGI9-?H4q(&WS6#cA}Y`U1X+y04@wGa8!4bk>0xqH;!Yxw@GpByM+ zj|n4dx=iTA9usf+xp)BZ0U z1ldA6Z|)y5ej8?mx}A1dNq){P(8$PT6THF^vTl%HD1acqS?`gH?exO|YegroB+9Po%I7 z@2cWRARgAu95~rn=2tgQ)6V9Q$?$HQYM9K+F)KEf!7KbNl*)b$yt1@ahI^I-O|af( zGfM)WRUWR!EVWaMe1*$!4Zw@xvT!7XRIA8Af5TX>W)@wu2+U%Y`&=^19sPZkyHdfQ zizd9SI8I@e7u%L%WQi7>3h!@aICa}R&ydTdQU!v{4jb+$DPcpz#MgMU%(|blNsuy* znfcenPzu;#D*bz_lSRL(drDLiSo?zy4C?yz$*wiU-(cU4eK z*h;mMHDEhhTI-VS=HK=*q1t?|OY6q|?|U!faXMF0zYX>ixJpm+GgdmP#0?c@f-dNEl4_N%MAKj3~x zO*;m7B>u4#d&;M>S&(h59t*bBs#}+K?*<T zs|5u^so(T@aN^AWNO!$xlKt=@87s*-eG{#^etl@5-AR$i zw`S!k@>N6GQYpKx%QgSj!zJ=njrMZWp7qa$LH@1{;opAWfk&`i9<(mXXSxPNzY>3~ zOvS)Y3@%hKfgw!cl|^f#ZRdW(E@U12xdb&l6t-UVq{%JpTn81i!lt#ftTNrTv^d+M zVs$O=5*PmlV$`PES+e=<-*(=PW3U~%T2m9VwuBupA8X+hIDoIhiq8JmzKM_Z#7)DY zg)^?Zf+bEyt8)Dr4J~d{C|Q%(mXIHO85H5YETpsm*}S4Gc1&vv041S&zP%7CAlIOS^>8UxGDklwrr z&F3K~01tQGE{0afCg+Kw<)>*mU=!NYUq#X*8GuN@(rS)+Jv^NWE!(@1WL!T!ckZY> z6-|E^(~%UJ2ZAIX1}YsGyEe<(=+hE)5~}6_~YOU?`&29@mMJ zc={(H#jB>$mQ{M|dboN(LPB#m7u+v}tSsJ&mUdAHlj4+0{;S1#1itYsuh-Q{{-Nq& z@g7jMgn}n`z}7!4o7}l@uL7{9JGGbf3O1RyB^qtI0if#!Ckd&>wHcLVl1IW`XC7XqSc5SAs{jbQzX~Y2 z-XHIRt{ZvAc6UP3Cho!4YGndje7$=W?4I`t3n42IHM7um_twLc)x;eyno`z!S=nx**J9U02j&kLTsx>aoK~;&C;A9cmp`m2$RiKaX>Trt_q|B#~1%_bJtX)=h)WM=HcsdZXt9P6h1)c z6Ul%rl)fx66Lsox6vV|0+inQ4_gbK>#C7n6r=lC7+w5cFN4z?eJ14TIO~^Dqr6PF2f4qU)ej&94LKI@i?K7lUvJf7>MpWicY|W z25Jh!a2#GZ|BYFvc)N`ce2`DP62+ld;!O2e02nA_Z>)*{h^~V7rjJIx>1~&7kk08&0nf8aooeuW35INnHYe^q!{u}AK=b_0Z0;J*19BtH z6Pb(MkC7M3T?2Z8$7M0%3#GJ0<8F`g`{B75#x*Gq7?!kaf84j%aGu^~&7}sIZys;b zl)cS_!xlIf=YOouVW1prGE zps#|CREbu9;ZncwN}rlyz+cL4L8so$nn@1sPv^Yxl{eaoiTwx^NX-nhx>Xm^o4 z==tLLV%xFo0y`bY@||I=n!Mr#oM+~*Z4a&Li=8|EN0zVgJVQHix6s@rd^=4%V%qff z>9)aJ^{CQ^Y>rVGFntVHz;)odw>NIiy8d-p6{1|@XzQiX`E8Y-uaVc`8U)D`nTQlX zp0G9Q{5Q-6HoiT#+P2KZUajI(K>pm$?-T>G<`E<`we5qiJ>@EgwF@hsWb`!l`h$Cht81nk<|Fe@E4EhvwU2LO3|9suM4 z3fi`GjiJ=`w}|2rxaC1V#@Njw8F_Z6n_<0e!#bVw3dHrumDbUO%(ir$FIDoR*wm6) z&}crQeYPg%{d!f|6T`)CVEla5`V8cHzSxI%e$l#@FkY}!(JCNsk9)z)#XZ?qo$-fg z*k>E)dSpsl2AD^j0rJcV&Gq+>zkdAtv;S=QC+uz_9`9$Od=74P>OViUl>h$}2X2f> z$+=aQ|CFq0nt@aFn^_fnJmrAAMB|fX1qe!Yqpr(Z!ef$%ssBy3=MGziw6Wxf%6_ntvIZJ$ij`U$v}~UD*`zvrsA#f~ zeSz7e5!jiLNc6tiD*GacG&USZoTj`z%i(zP{MJ58TG(hyegtqPXH6*SWp#B#n>r#g z{K=^n;+0q~MYh_Y@>3SEqbE|IIQ7BaHrk5S8VdR%!FnE~e4R#@ z>3Y)CpAFU)^i9fL@^;Pd1ewJXE9DtnN@9?u@Of#QA0HO>PhleBkr>Y=xtbc`+_@YK z(v+VvvnvLtY1@U>8H6(sm6@pYov8)UpOoW~KIEmys&TQ}hr-}{k!?UmJtkR%1}h;> zPF-c@HtqZ9joWplSdgP#1@^pFrvKpsWEV;Y0L9+5kd}vT z7a~e7S_1xUa{};BrKPPpdB4qG^-#O4;QJf`%fugS6H{Kc(s_s9uWoUJot`pMPcp#I zg_?3!Rq_+g7WD1PNC*73fFi|EaxOS0`)w##OS0pA-!ynqiLqQ`22 zpSo2T)PcU`u@3YFg@o0Vw)A8G`esGJ(D%x9gWtP+f0Pd6yO3Y+7RO59ml~zC8pxs> z3i>kR=CXiaRPE{5!+1+MhtK)tywEQhLFfBT)mMdmx$m(_D! zqPr^#oxmqeP|c92O?K`nD+-9;eLux*3!1C&R1wRBudr{?X2QOmuvJ#M#Ws1#*T+g( zPaDa%%1~B?RT7GsT59;1kC-lpGI zT~9BM!PHL~4y4?6o{srQbl(X5@)JER3;RUII!G6w9#&fpx6L8+VD|)l!a-e1R*xJk zvL@`yp!7O*^M1l;O1t!m;co#q&vUTqN)RZrs|CTzKvD#2on)jD6R)X*^nVtKNUaMg zM^o1U%Iai^myu9Lu%CG`0%k?HBr6MzkuVDVMA^oNeMd1D_$A~ljCvE^ouRFSeJ3xh z@C*CypWdiv!c(67p0U0hIzYZ#JbHkA$(!XzKY$t>sDn4Fc6thrCiKWV3SBps5b}LM zHj4Ib`8^mr5sHD3Psng=w9uBE67p$yN=)zLx6ze$Co6e&CPWdKxa|PwHE;p7lrvoq z!y(-BV-ll8zRS~KfP0bUj|}cb^J#N4lk)!n_XKdeFfvQ$g{^49$M?asImAG~r*?FT z)nxe%dx@6GbF4!04DS``OKN*p!=#n>I?6>QM#y(4tO4$2H$Om~(bK1`7KPB=iPU<3 z19{T_j+US=abiMm41AP}fG?w1F%|S(mHhzsUVgx~PqJPnG7=W1MnZ&p8Q(x2l6$jT z*2EKsDk2xg`z3bAYAYlg)G+cjs!+)1V#CPouPg2JOkc~t(0g<$uXO2bgS6%ag+of7gTWYglJeV5lj%1^F~oXJYacPpNveYuzAAquFRU55ohtgg^RQC`K;u*n+NCw+|v2y$m_gyIxiXuMx%(+R{1o?BRts52Nb9n zg@Ty@kZ;0MH)uFPL3ykD83nIhG7PHnCjh-GL2y|r)|Rj|f*8euESh<;qSE;=Fkw-|OxfS4!&vC)SaSx@Z+93E$R z;mPhgWHGiE9ts0B2x~8>t!TxpxL)3o0x)rCM|3k0MeS1d@E`v%T_(r2+&B>3%Zj!@ zQ5*n*_Q-!9nt2jeUz-=KcTvR&IGJEE82mkq&O zJ_TbihZZFWMkni;^e}x4_J6dXTSYzz58&2I5(FRKxHBQ}DJ7X81a6dys2lWtbg&;~ z=KcyB8q+JULGG=~8If*_A?~6&C`jTx=?C;X+f%hD^F3ctQy<%_i&@|_O+YmkigMq3 zxs8ka4vy_o94q`SLGV!as}U$LV?W-BIMqR*a!#Fyl#Q8hNv*5bBnG}NBHIYQZR4mv zZ<=D?AW)_NW3dpYPnRwL7Dq!=$e`)MHy-e?{EY)F8d#!GA)Bj@)#g?<$pYSPS~m=Q zYu}nh1bpv*L@l`pl@w7s+Qe)uq5Fsp0^I-+b?8(`-%$%i(;9`qCp-=^1LrBSUzS2W z(;H9KT;7htkNQ({7e`Ic8FCS$mn8fpl(DXBV?n!ck3MiFWg zi*(u$Ffh#<0&bcBqHuzN>k|R>QO2q9nO?aVD4T?1Kd`MG>MOG2`Gi2(Tm{(^ejnqh z@uGd&Ffgh2-9B(L_l|(|+fkwIsbt^S`;KHRZpH8!2!c=5xilHU!A}|Bs0o1YM9v{f2$bS#Q7M(vYj3Ee z$muUxW0MeTkYfUE@{06x_J)kVqGL)F=&t_K)w(Y`I)ja}rt=>oz9FC>r1#CgTfYY2 zjngX^1SRUcpSTEG48yUG4E z#TAAIsh}^vTy=@6I1l6sjGrw_z`!@gRRw0{J)uP3TBL%ya*`Y zfjAd%+YY*H5cK)9$)Jf1|AvDmHvFTKWC9PB5?H`T^71K6M95WT6SzG-10&YoD!kip z^Pnn}1E-jM62^q=g76Ed&0kt?`mX!1u%tM|Y$Y4EU#3 z#7Ev9uoSg9{(=SqpfbUyDFps=0E5a52pF)BsI8(=yAe%5CJeasb?OC5pzC^LCf~FR@_-uqY6L+& z**)s@Ppk5mhHnQ3eq?$s>(}ZUeB-Z!K>y}K%)lh06B{1B8$&P_C437efa*^bJC9d> zD93rhHqt*REg?|dhl4Caq>^pm@~3P9Pe;8 z-C#{*s}rlx?oDG@TZ_ML3xnGFoLR+b>37>;ITeHn1kUYs8G-@Jgun~40|Y)-@HtAg zf8Sq>3=Qwb)X+opk&$fYCd@6N3qb49!C$(ub5(vJn6yJh@*UH^eK+wdH=;qZJXoHRcfoFQ@ zy2dw0p61&4Na}=vdhpucwdmmkeFyR-4aUWod}5&^EqY?#>Kb*mg~U`9R8)a zKaw!1)9P#y1gm>6`@qXx+6A7~QH#&h_OQ{ozw6c5M}C5-^ndDrY_J17={1Rfr)yCB zd;H{v#J^&%iYoH(OwN}caQUqF;tfw%JO8|&zDdl z?(wGcoBLeg(@D%t-0)xE$}mx-4oMV~39w&v++7&*PL!*Bc zAc-&IAFDBy;@{;ai3&ZH-?s}NL>;(`O3LK1svs4e50r%Y=RV^!0Rzt_7pP*uKwDjp zzcmnp?e}qk1CR}NE_Xo`tk>Nf02uA@1wavC6J-R7`v)KR?wlFr0*fAiD7CC}5JUn5 zuh|5Cu<`s2EjDB#afd%t|Fdr)1d&4X*GE%_;Z%}`*PX{;y47rP4lFrqa*2K-}EX%$^n2u9ZA->g78rZhk=CJMM)z6xU1W% z-ZNR2Tbe#L`+Cia*4uV8= zirxiZu{~ix^pDJp+YRT#5$&Q+AqPhSrO;4PCy|m_9fN3Znxmw_2y9bE{U<>U!P+{h zJa(f2{1|t68G^I4q(cXQS=GW+sGjg}=!c3piwr|Nvg?Q#bnI{fC)GPeGJYO#;dY36 z*Sp%k$@8zS#=?hZe@hg6rx_Rn^T*P~mRF~`D5wqK_~_aEd*#ov5q0dNcpn#-gV{0S za(qN#jiRnC2~u|PUuW6KaAeNVOC6xc7wz42v=?fP- zXaqhHx3Wlvf`m!?P;gLfmQEo$cSdHcYiXJ{8l z%qA0TeC0%iy3JTsr)wh$AO=QT2)u7r#%CiP9aRz%d8h(`vUG)sUWZ;Sz% zq=E=&>q`_iaMK;BkY&0UgTRdb7Bo)(f&ulJcWikE%}ad#CV_ecJ@e^$@l6^j&`0 zs`T};_BQ;!oQ~oc?z@9GKELdF<*U!6?zzB*}FeRQbc7=s2h z=(i67Wx1iv3`93z1+jj&-3Jhq__9}lhv2=!dy3m9yT-%Nq8IqYg!8k6{b1{K5U{^^xeMppToCbXs^Z?aIpG=f|2XVLCv>4$>7vnitjWf_A)=8Bd?6XJsov}a1kqw zfjxh8+nT$i>>fe`c=Ea1`zEv3rf>|s&+@lR?0)EVY z^Dmgy*Jab8+SMmM|E3fk^_#lh;mS))=PWV4a*vDb%z33(3)ZCP9z5XP4a-yY!w( zF&c=9X>k$HhJuZ%fE5P=X4u<7g5Iqa2PwMF@&MR#6Kl{f;|f8>8J;SenIRyf+CWhW#y91}zn8}YK!kR{fn)6`+i%;xaSBZN(_e)W6&*)cZ` zCt|sGEnE~fv%f{v%?df9)+v!)qXQC&shfB9XSgKq^CFCa%d1o6w>Dn1&wDuKVvq=X zOXG;DLjhF9K&%DOPBWJ168)>goh<1z90?T&yN zoI@zhzd9I-r2&F5Q~~8?Uh#mjwugmc7VR@!((N`Rr8<3mWW-oeF;x0QV6Pc^0)3`JkTnr{Fo^ULq<`+Cbx1)ad+DCz{60Z}o050sxTlw*@UB}VFO*8tHH zep4x3wtYfwA0+e%7*LF@91$wE>Y; zcNbqy+WeI3G8L6`lXcW9Z4NH}&Q?UMQ z_xjpFH>mx14f8;XXP9($)YNOSkWj62UW8Gt=K`kT?5)N^F?5sru$WwNU)Bz)HNAJf zWxeN`p_|nKHJOVtB|LZHYCLME4V)3G31pde-Mmizq&l_?G@1`M)!Svtq55UZzPx`} zkmu(&Me0ozsP@8tQF%wL2(rw z(H6xOm0dCW^zzrk^%N|mu0>gz2E!F5l+(J2A1qf9SJrkw8APQ(UIahr7k0(To<5L70k&#{;6waR+?iA%m=`-ZDn-ftsa`X z$kVoq8*si_5YM%e3tJSGKlT=$&tz(Ot6;9Y!?>U^IaLJ#oG+>c)7wd??t)YvNrmFz zYRpd6R*~ka#BlEBl$6e#jpMLfPsrLHnop199hUEOi4FLDqcSU;r!-fd8u9#YIW*5# z>Zx*p=ebAs*U1U{UJ$$qtB~XKCGESNC5AYFn*u-DCYYS}1>udX#dO;(WG`=+4JV-SxCp z?y79U@VQ|BgdGV27M~!2ZPuc?l+xW_#mwZ&+Ex_C^?Py{>JwN>J#O&|6igS)%Y)&L z9D%dN^t}iPO#fFR1P!!p>+LkXu4nOnK3h}0OfUI$DM0k}&V$D=)AKSk0yKm6tP3mE zJ%{Zo8<-y7o^y^r%nTD<$bDtIVTXncse^irlg-=z--m}*A*X`qnX-nzE1c|8>n=qs zi|VlJ8Wi&OE)YH8aVis43F>TwQYaVC!;uc=tI)I)ByWhGSJ?!m1B>Q-ii&*acsTHrmgDll)Mvt#AM4#Lk zY+-u#yhbT7pbH@6;Ru*Jm#Zp==_k43ubZ#oYJ}+f8$t&OkuKW@n8HC}LQl1AdfT$} z$Ic&iGXkP-?u>0`HycU*)wMf$a5BM!e*XKNOgxv|Ug&~RrkVlN506AljrC4|Uggi> zg6jFd@A4Mc_aUE9eYshtnq>EUwEN>a-a&N@7q)dn)+58V7yVp*?+aHZWqwo-$7`DF zsr3|{9@7_Jr3Phu_A1-yMw_vaT1G^zYp&O5H+ipe?H*q*$?n3!G}kj?9+jrae%$P* zxt{o2tP9r#yi>LVy{~O&bs=_v>zUtIK0x+O5rika--V}A7gf-mCVO^9!oaM)0G*Tv zJC9Y8M1`#BYJ&2LLU#`5w`!rCQk|aG)gTYbb3?n|y61mPmsxftIS2)}(i>LcfRg0xa;zp4nvkVIfcKcCJ1uV<2G>_||>PGPxY&oX(ElNqA;39 z=Td?F=JT;f4ol%x=5EFCdMQ~R+;xnvFc-%A4t>aqPfF@IGS=A$*)Ip68**40&p~R! zN?dzSEt(;%d;r?>*iBJ>VD}w|aE|evdc!$|yO`C}dHVY(dOm`#WT@|3)o{)CG0*aHPY(^t$z{>V~te>CrQk;dyw2(drYZLiFV|Xq)Gm6q9$Y zS#JJx7qQ;WCyD3J%htva$J|1Dj9UZr2V&M0kQJ)i8zXpa)J*o0jOnamw7|xp@24ryqAtgn{ZPUxD=0 zY#0mBv!wj9ZQ-NAiD}vAnCHi~!t($?)_q>BF2}-iF^nRD=dOEnA^K*!m85nY94~1> z?DmDW@G!#u9ff3;Or!oJqM#_;tyT61+v*C4G|fpbkQcmSBI zwIgf~-C4K=5pSg&I-QC$VuY^SS(0Z-eN0QlR_s-2Pi$vSLK)k&lz&k7;xJ>7o7_I7#e;dc>#{Ai~z^h*S z6sZMa3c*b7*7SaLS3PQ10FQM|gyn$k$G6%X!#wwTDM>URj8Brphd(C3^OT2mm+8?7 zwPHa-sUU=zu&%$Ju)Wy8bUwe~Pcl7ZZf=#I*bc8HH}YQRp5a7raF2IVjhvF!@(@z0 zdwLi1LE&x7ZUE?+#kX?&IKQ6Vpixr}eI;SgYsb1EJ>AAED(wC;3)u1|L%&+ymX z{WOes5}&VpZ#etv*o&{@mPEEGSk`^W(|}+ z$3#!hinl2#d@ZB!9UI8=@D_;P8O$YJBn>&%C18D`Iy_J<{w5{XDG!YP>{V_A>3L)Q zY$9!spW0fl=1J?dc)ebQ=Dg6HYj;9>B*)6md`=;|@p z0MFC6javY^JUvTy4`+#WHKBLfNqhXz zP2}!+nV}woT2MFBQ+O9h&s6*F-+?#5c1meYBl!`CdyC3Ln4YfP1gR$U_qZe6kk1z~ zn4bCeI7virKM%86CDWai1vJ;h1=oj-QFoVgkWMdC<6N80jiX#>IzX=Mtr$En zR~oV;4cvTO6@WZnd@2btGnEoPC;v(3+-pHG{ z8;Zkxgag;`mP1GB&gbz7Glv(dg(braRrTTf4dhe9a7ymH-Kri8YE8SQclJS*`vsYe z4N^jv(4(F%dZ!0{uLX_2A3S!c>48nY%MGVad>*Q3-S>Y0+ZLF7qi>XEk!ZA zxkB%cli+o3-<&wwF2!0}IB>7|S96)s-;1_;+^ItkiMMR_HWc@lDFyB0(17fG@#B}# zh-v={3TO|qLXwc3He76A2=5e@b!&^_((sNF2meFuOu+BdLr_=voa=tP$eVck>o(|~ zMv$wd3fk8h2(*z{QOfsIN11MSWOt?OX!hYiP*=~x!39ajz(wuhg6YlL$S zUN2GlhHeev6AOTL))}t7*fu;_T(F(j2ampPY9`f{u)e_!-q zHnTJzA$GUo)ZgLifBre}m$0Gov?9D#30pDroYpb3U!Lk8J^fiG_Dmy5XpJl^(R*8v zUTbxnaNU_@BxL!kOOGiBxqsFpi#U(Koul$enYTJ?HHlpwI75&%~phvu40AT=Wc4f$rR`6<&3*sOT ziX9}d9mG!J-}gC1vb%bZwB(S;b=A$Q+FX+IOU9p5$rv{_w@&-xHD@{?Tj| zsSn1)2li%b_3eRE_?{#sS~;DuboZKAWQ`+T0(S%QM7fpx_Tmu#FtKc1U~4_3?UUWw z!z5;*o6k2cF+;0M>}pQ3xwX=IN<7iDM9`Nro~%9z9b}oLvlX@VnF`tBg>KDA=aPcJ z%VI3&);8B(ucR-C!so2OBth?5ZDI#)9Q`m7J1T{BmutK#@8BDpQJd} z%^a@URwa_~c_YyI*3eMfD4mWBl)=TyX+?1fTRv<^(qm(47vLpSm}(fixzCu^w`^Q= z)iF~yI+&ukf*RRAceBlE14bIDVDT=RJ3B*YQ=KUish`=$-8nxeut7)vsA5S zby~3+wPMODjP0tC-_0r4?ETt`dZHRAMvY2P$XTyZa2jQ+kmmC{5Vew97!w7n)e1qY z6|z<<8m(5`Nr-8Os#cQkB8BvpDQm^D(TZiS70XF0maE>SxE+dG%~G^t)oR6R(2DJ@ zr>fxf$k;`rxI-l?)T+^nLexm*5ihU5fmn9GIJ~?{aW&KQ!-ww<&o1t-EW+2X4=g-L z_16zmCw`m)y>KD3P?^~VDGX&0cEinFzdiiJvI;1^>2rHvB&E_e?h6`!J-EmT%OWEHsU5shf1#bG_k)@ z*uztP;vt_lt~y#}59A_Z+HR+NL`Z~N1unw=vo*)XA}h?s9JzHwead6fJvHf{nhXyn zp|RWC!4G$^qL7);tSA0tD34f-28o1)i=H;WKHB;280R-fSLf-=`Ita1c7Ffz%cE>A zXLPHJCGMG;10!H;Knx={2hSXhC0=5zXcX< zNKJE>d3!zZ3T%s~5|Q|(ka2O)I^u_~I}}kjegD)#!u)nbdnmIgsIP46#vtj=Y^ z)lHvIsxvNpt75a(?W|pKJ<&uhp8t<%M%(QRniagZn0i8wW)oi+V*>u-d5Ncl5tkWV zr0nIqWc(U`E+;1uaF*-ESoSi$;LJcNoP!L9m*DWHb(IxQ9;+BaSb6T2gh}K9;lw-+ z-I!Gq9np8qw{2)zjtgVi zn%^JOsm#;$xcK>O+q(+b|N^?c2+A zc=qZafB*0IUro=SKYM$5eKXktPdcAp-e68;JUj@{H%|d3s%%SAXfLOXJHbPRS#P8$ zIyE1h6EpoT)49kt22n{jP#$h=h34YqU_;t2+hBv7fCg}#b)rE|_;||OxF8OP3>CNW z200NcUW?mAgPeff(6X)*4RWG*K5f>C202mT5^Adk*wat{w3*bznwi(K24#Mpm`h5)PUDd&hJAKcjCFyGW z>id1sfxANw)a-bqnY|l+&DN^__L}W5;RZAG=K($4i8v&~y=U%!oe2 zk@#XL-H{M${PB4Ez>)qiefOJsBH1t_;Y5S23Rt$YA=lOBAo62Nzhp=Q;YL%A8CaDZz*$!bj3}HDB zzG8;3;#VpSv84{N)eT`a4q^QisBWeX%CBSnZb8*SS(gSCa+^H}`g*-$>GepI8mzY+n4xz~np=m5lc?ip92+Mv5%V`M9b*w0EPvI9q zA?;HXKwUm?ni?Ro0!OpwOBcZnx_I_)aB1OcV}WZcR0uFqA&q7XB|&(2M|@fGTj3Ju zvZ4{DARxoBgbz2kB;1fNqPu}Z3P};h_szI46&bJ6?BSA03t&_9;ozkYNAqmhh~S$E zJWTIp2*5!bVf506x=M8!c4*$5@I}%w^!?y9XmpayAS7Wg?*$YAd^`ys)FyOfww^qUFTzpM@x=dW+L{qmdAAw1Ogj;V}!RZlp>oT zIm$tu|nNgYT4JAURJJ+P6*I0q}I;o#1(9! z=^{hJOV0FC#TIJWEF6=(c8W|v1-OXiVOiqnF6|Jp(j>l8?bM=!=krqk=sL9-C5a=% zN~0u+bTLWd5o&A_6W6)Gv!y6;XXQ943E&BZEejMIB<4cwA`-!jC9Yj5`V=@9c`{B6 z%ZRgQ$8q1HPcj+~Pu*E8sC(cMb8LRoZ+uUuE;`B`J2cB5r2+EllayAV@5c zW&n_@vJ^;IfR;WjN~&PmL>P7ZGjAecCs`lmE`8;ps~Et9W?2mJa7AY5jxIKm2{V?y zSC#bX7|BvE;kqqIs#JwYqw!%IBj z-TA0z;wBARl-Xc*ubq$j=l>iNmc&Fa_rXo>aPSJ)1oF}oass%h(`C#_v~Y{xKPne8 zVK6c-d9lT*Mwbo2snB!T|3p^K5RjQ|TER?;ld!@}E?HLLgiOxKG2e;OG@b0NLqoV} z%gdiwlwxF4sF@)g7123p0-rvgsIe3!S|O@(m%2bP^E9o3QjCKm@XhD1T3u$}L{Y$# zzpDRP$VBABHyJf4v*l0Codjm{_ETaqIlByxaifB#%!Fr~dkalObzN3$ zX0jOw-jdJT8>KWyCCBzki+%RImF~98N6k^G_PAL=m6}<2R$5^*UKk3TbCDb&i?%uR z`sS)lL-EljH-Lp!D&uKP^F3E)#jPrY*ltSWn3k*2e(Rl8?sD6^>g3$%;d7jd*{QlE zDRNSU+QxD+s}ocTNYFf$fr6hqOVE!t<5@9-pUeMqd=wLBC|K zKF(=gIM*O<>!&<-o~I5EUDP!>B{n;=TEk_~@bOZ4lDK6S(<0yea4i1ew)qz{w?^Qz z^FjK?;PP4zo+#-09P{e?=UV)6 zwQ>d-^Ql#q=){o!K_^97mjs?PMiv5{fAtbvKX#VXTE6W-X~!KP1MzlT4|?)Wc-v~% z8f(z=iM#Fq5(wX08!J28+j**t?{IAS$Ek}>53@Tv%~D@Ws~~yn{lpACyG>F|M%RJ zoYyK*H>|e3lfft(ivKgAw*l!y4R9jY>hzKmy~KBN6JtLiJIRSUKIHs^2Y9^%9-1*Z z(ZJ)nb^b!`qz=R-1!k(jOddv+kw6oWu?@sb zWVNF%N@AW|zAg$g!{)XWoe0Pl$|u~}W_kC{S>EMncb9Xd+^v}Wa#C{6S21AobJ_KD z=eex6vr<&nnGIWLra%aWogrnUQ8lxym0iH3N)MA2|1YX7GIKh+zeOp_;aA6UJHG|5 zU~$)K=galPW|JM50nTP(R(kS={TRni+)hG#v)X^80CyP!!jYq;xK*UBfoUQJ%FoVwgsI`%R#BIEEi zSLbczkTRI0Ltga8liI|Co6=lY+AepA-OX z`&g{y=7+2#^Y)XNRM@t0{J^jUW?C(OS?^tdSKy`3po;kni?0tZPYG=sCsjnY3n-I)tJp=Y8OQ0rUwa5q{K3Z?VqhaWM(E0r{B-gh3E_)SP z(eeK6bmcKw>ykRXJtJ!5nr(NP1DaQYmxc76(&ARvFxR1Fv(aniCoTCAXi{n=Zy3^& zR-g{cX*X=VZK8l#x+aR4S$wMNC}!p{Gt4>JEPkdR#rC#uy<---YlUKTtiI-C->Dgz z(^Jqr$Qk14`QD^}6*99~eWB9aDxw^3``@a=eYUCYxfPm-+r1D`awFg=X_*6a~$0f7UK$sY%=cpAqh#Yu{apD>MXT#56F( zuk~unaVPaouj2vE;Y%pQCYq9%g3Wwg)#2tAhYOcIW=2+F$V`3v7Q2RL9&S<81hpYG z`z!bmn^~caePrgf8$`*>Bd@fhLL+a)vDf}YB-<`gad({#Y=#8Nv4R67k-`NbGQaX0 z9gu2dDMjm8;n3c;Mi~v>mmHWET*-OHhr_?!U}lv>6fnEMjv{8JN4a8OTf;Sm@hNyA zQwU6awkuB2)g-jw5Sha=36Y8Ht@UEbl*Ud`U94?RN-~MDx~IrYDs7jzReWAUrCBNz zL!jBLh8*|dyNty_CeO-MR#U|iF0hJ``Ve`>KEKsMMxKu20cPfoC4VmZK3?&G%=v^*H|$1Fh_v+@s_zD7^!%)|jc=n`l6g$;#MXry!LT8!mk4~_;nTb0bo z*DtnP0xu?tXIi z6fi$)^$1KVd)I2nEv{w+=1>|j{BC}T?JwIrUIUvoL3S&qA#@qKIYcxW9@@t*ti!;zUemh#u^ zs|vZ=(!|3tUv!@bSLc)2{7|xgC0(z$v~4}J>S8M$aHS5>$r$IPdRSA~-D2jaBE1qb z<9pfmvxPNP#eK+ZdF)$4lVCfUvzDt%08LvJ`+n-}?P|g0rm8b%Bxsv{f6)Tp=4kLT zv0#4Z%-86h{?gy$&B?I0h1qdUbPCihc~)eoXw>(AOqW@bB{>KLuQC_tGHqzN|HTH6 zAiL|Q>`_T7B|uJ4$V8IKPko27ed?@Rh5p1$l%%%?G>;nJli2LKVEH@uoB=pq3xp!d z$<_4aGxnCDuZ-t3h?@zC&~jT4Bo7HAhzJwjcZ8vb%91Xa+q-&nA z$)v*v!Dgz{Q(jryp)2!}Jj>D^Is>Is{9&B6x&oLy7j6E;D5=hWh6?s+>?uX`lbBTr&1 zoHewobzqQ^K3Gf8oOQ{b^W43Eu*qQ2IOy{PaGqAP+PvLaFgvN~o~5C|^wEOT$UgCX z7c)PZMRn|m-n=>m763&j&2kOdJ(GZy7dm(H{Gz7HHFtSlsUn1EGeS|w`h0H!;*N6d z&1$V{oj%oZ?zHb*mg2X3mntxP5LlWoE`0=+W@V^xVjiUBX4*_6AwmMOgs|TD*P+rL zZgQ(@QFLeqcwG64tE(Dq_r!v4Q+zUnITZT)`K6uZQ5)63Fu)_f)dCp{v5s2*>)(o3 zxkmC}Ns^wB>ugu8tO8}i9w%yA)$a0~YGCwxyDr6)aRJMaT}=o4DBDi?9^etzt`|v4 z$Hb66?Y*+UG6-}PJrie#ZYtK0b!Q!axdT3D9M%qc0l&k)>*LTi&7p#VM^YR1ydL;o z9UtUMGwEqG>6fn0hh~SfYEh`0pw>Q1te&Ru0$s#W>*X1;_fw)QSdTXok|9wC3JH;? ztcMbKuOh!aTU03lU)8eq2z|SoWD|ZNN;yt)Nxm?axDH3KATR>#bKS=P(|Pvcw$^)B z7x{}N6lSp1_JMGU`lt8+;UN;r5ez396p`bu_`G8v%%pKD<}|K9?s?sn_~%H(Vlh&L zbiaMCe4|!Mb}elwjhoRAb!~aFk^KefS}A}stf`^p%+J-s#d`LQq1)j_H^$wc=b@h# z;;sjbwY6`dxl1|ARU_bWjX#ErWlBDf(OaGUp|%N#emk$;M&Wrx1zv=n9vjorq`_3t zeJtM@durA=xpdF{G_DsTqYNbQb1u6W&A2i23}u$W8=5l1Y$0iVu0T3mY~6?+svaz> z+`7VDl!l^S_Hv(Z^Lq~?q_%n&q!|^0XDD5$tIs2J$%up=w$=Z7H}q}_4PTWfLCapS!$0K*A3@S z`(bZ2%jM9|noPWL=#0v5pRXJ1^Hcbo%I4VUGG@gTK*Kr3Ms!9SXtSk+@2o{3G})#C zxkB1{yGp4DU0NISGQX_){3G3a$uT^sT>HW2{$)m*cx&%iG}NsUv+J_no!T3GUYgl3 zAlj^|vAuP9(va=DA#mCx_VUV290rln%ng(01_$33oYza10LNxG&j3eQ_;oFo<=zOHE?Wsvu(yA-?^mM%?jZC4`<$w@y&p|)FQ)AnAs=4<5`L1t}=^od( znmW=^H(jlcbTqt-P$-4xymGE95L5y|t`Hi)xzYhNu+X9aI{!x9k2@r^T{{*>--{l}thyN2F?qhksmz?ngy(gU5r zs?Pa>K5KdaW=6xPQloQmdtBPjP2xDL?^!Y#oI`jV8Uy~)~7K`%=VI1X{y2HAbQqTZYk{-!_s*) z?YV?AC2iMGb8S9^q;uCWi*+=>x;&LB`f2NU!s4A&rKzWk?Gq%4o75=QeUphJa`TX z5R9d5j_0?mo#Xp>ly0r3M+tA?H}5Z1hpChf7n=}G7t;nLq0x1ftlfPKooTzG9oeK5|NB< z(x_NV+W085Tw5?(cgZ4pOzja7otJPpukT6?BkJw?WD6y;boBA>j$&vI5G?`80HJ7n zX#GK5Pl0Xf1oqR28s!L-T${7x^L1%Vi6W_?p@&bBvlEDEO6SKd1*SPYJ)cZrT4B<% za2kmkVuAgO^P7*6*Y%c0tbs#96VM|uZi{ZlX@_0mG@7Mp9WdRDJc58M zxwTLAkMJ(7p?mi`9(rPYD;m?(=M7vPY-f9ry&R%u0;QYyX3vF|;^tw%==|W-$>)|8ul6ZQ6A=4q=23r~Le<~7W0ro7qiilj zNL~`HNh4%pEWhan>_yg^f93KNo&T|We)9P_GVCASq2C&M=KUNs^l-!bEIP-~OW|bg zIy!*n4mHIEJ~Q;$b4ggW+GkL#keuIcRa2i1b+J+9Ue>dp6C^TDlesI^a{bus8rwAC z43y%9d}eql$0^GNwwJZj^jrR3oGOpK<8S{>i>p2*RrBXe=poCp?keLpp-x_x! zDoBhPEUmDBa>~h$YyBHar@-8GOEIAG%jBs#q4J-b|ExFx=Cr*^?jR9#^cqQvp9;}c zFMUJV5t30fIt@&gBB*bJWllHkn^fj9ddZCuyUq=kv%r0MFN$`!Hm>rq`{(yG88q$x zb;*Wx%Tg+%RoIysv0b*$BZVfyDKJ->?JE)8oD;}AB{?v%PFTCr4w@Onv`@Iqc$)`W z5?f6=Cmol_4F7OhQqbx;L)P?=8=tTDCd@5~=wZ?<=@&Hb=gGj52VQyxoI~w!naz>+ zuRKNPL?@(ya2j`pjRAePMI9!`6{yq5LQFMu>=^WuS#EoLy)2Dm*y=dq@|MQ3CuBYr zaLZgC8c)+uw>1q{ahc*+KN`X2*#4b?$WPUJ8pm$;BX!N=pLp%@Ep|xZMei*U`OmP9 zSY|T1);wWvSP{Tl4OXWC+-waaT-Y(a@g>xlt9BJ5ZyZpC(sT3Qwn3?IA$^V zZ-#Y>_qAcbe)Q!hi6V7a)P*J*R(T2%xdYp2>E>B9jX*Sw@06l4tn!YJ5vC3!Dr^5+ zC*92hROiC?crIHu5tn7vQMbeJo>{>qXjgH$MpBs;OunV?4C6~Xdzx2_& zIjP93yPd3mJ)QQb>%30i^-1qCFAf(VG^6F}q-f^k&SB4F-uvwe(X5pz>Xl6ilJ*6E zAEJ5io7dP)7M`#B-a45U2sL#2wQ4TN-9K~z=Ys4iG!Li#=|Fiqm8chLg1uJBvn355 z0SV2E2_PLeaJCwfAv9}YTSD_D*>=sH1Wt*h4Vs4smkpVv>ApqDnYz1-AlDjMWZm`E zfn6Wkxa;ZUUTso{fzjum5o;Hm$7Y#6>7S}&S?;FYy>NqPMlKE~K9ef_9hzyEwZaC_ z$1K{=Ij_*CwlJ=E3eJ*U`?vf09jrHye0S9u#b?=vD;j3v?kq1Q)lgS<<(W10{EckZ zOld>M&a(J6ro7i`zIlz zf5$YP$0G!(Xbqtlr(yIe5Ak^zu#yM?T5U|4Yqv1p*3BK9$l4x`{PNB*cFQxchHFQF zRjxN>{c;NA z^5NHZedKXEk0P^bgJ48v*CU>)-IMXMJ4KO*VTZezc5db7G6fRuM%$>9a+R0fcnezh zy2pDBUT0mope!YHs(^~i&)Jb?o@^&$+&{W-1HHU)mrODF`hkkcdY~V)gk>?*36W%O z%$hQ^b|(H?R0Pl)OdbI~4Q~e||BQ-h4m!2U@Bn1Za{kfc4$Rd9kyTLTdFZcGBswN? zlJ1pja1mNsmL=gjY%d@)#a#P}$!e90J%!}lL!$KXoLaRiS<25VzpYT~)Lj(=i0v5U zHTZO;Wm@=0ys0Yp4+;&adM-0UoHnO zQ3dwA%C*$3jK?e8Qkcgu7T)U~!LbG#PKIKq^~#vaVz)RrMdQIa=T_eCv>%16mTtcw ziSzj5Wf*#$yOM(cGt`|=F1JU#qH#XlAf!d-ED9ZPoax?dFBt!lup=aB{4*;Z^Z3xZ zWCd+j|5Mhb5wTRH0$}7mhS62 zDn!;}-=UUItC-?S{d8AFJW9l6ASP#le!Gjx8M}{m2fY+t9iS{h9F=yVK$^6C zl`rEq4Pw6)JGi^vyN1v`Y#79&PFY|c#40N1f(_5tnQ>#-@r_l7ma)+LW{jYmjQQez z@Mk|l6_VBE{Hu@}j!}txS86zn$@fshNB0^C<&s|M8rI6&NDad?6EQHRAiX_T24tS# zJpAh1)&na4ATEsM3_%g6bs;aqOOF)*zHO<4S zeRtSX2ko1?9vrU6w4TE-n7`OTv(#q(Jw8Pf0&_k*!z)mR!$WF-=3kwhhSA)CqCM3@ zr8(@n>8^)U2+f1(z@8zqEpK;GMcqe)&7BP53Z1jyHkYC_r378L3e6r}>#&3d$Boa*3e2wtHap#rBZbMwJq)fI14-1 z)|zfO<+{uR{(kJz+5L1hWt1VcBpTpYfOe6imz87= zbCfi-(uy5E@9&;OXGvNAFi$M>e~V_%(Cv5`4>;X*C_MiXL@KE0%QA^OjG?!Cf=YL(cKzydXNq0QKDqpu5?5;d92jqa2^OD%q7rZ>waSjP6H!YjgOlx*B|) zXsUbIp)XqP^3%KkT4Ssp@h#=Nw|^L-ZGX2s1;)F){rje&i*8=CoCYbI-Cvjim&U#8 z@iC3sSAIIm0(Q47xEW2@c8 zXWfZ!U0KsYzS`+A$DREGXte-tT6E62&VkQN)`mTHyfVl0l5bhB@v~CSl0~>KKl~Zo z^P0%o@Ld$1!{epwW!o!NNlqKia~(i@{#{LU)6SAMIrg6Lsgc>(m%mioIZnf=tF z0IFjXo>I@UKMgeet7RsI9KrM{dpIR zw--Ra-=>cEoIEeL%$KwQAB5(Y?~?@;Us|Vs3m)v}?F8r4I2=T5-e_<;CX6Mz(l57c zZmTMlw7OrHtN6#(qm$*)W~rY3Sl<5uXG(YR6*kB8vZ1l(-dmnmgHM}Y28prlDDM8L z__Q-&zuctL7?#<`mX-6e?0u&5K>5qs0`M7}MQBbAt#47DL-^BGA^Feek)fPkHQTOl zgF%OVt(>b{KiHh_#H)=-PQ|8Y;oOjQ_S}BGo3O{xY%`8s^C@YOQ=V6E)M0|=MCBo@ z*{q#f-TCyK)7V{P-WEt{OyRceN~Fk~^N}-$aLzUBXOhkNLKxis`RhM_{qOG-G5Jqk zTI8gpx4Zk&n463J_b+|Qf9Fm6Wz%DHdEI@jp~8N3wHF1{=+Lqy6&eGAX4I!wC8epJ ziaZkwuC=Og+=M?3B>MXzDO;-*bt@-derHAt4`XKdp$zP&69`p9#MO|cWKV6ZX+t*$ zg;oDshuR#f9}&58h#owCs!ZyW8s~#vw>qi5kB0H?z-@?n`7{F&rm|iCXS&?3?MPuD z`ae-P0pA5kyyBVsa~Rbw+MXZZ#;rqx9$O_8y<|t|zI%iXlVykAW5O|O$l>{6kY`eI zETvOxq3L0BpIThHkb7zMn8vcGKDblTUA52 zdTgS>L~%yi&PzC=VL?5a0U$4#y}IpYRgFB=^r_j&ph1Y{pr71)hQV@Tmmt0QM>D+e zo#*nBQHajHp1PceaNTP!&dc(UuB%y8j)}5HL&o!>V6Kri)2q z0O$5{f<_(^P{tx&V()N$B2~BB(Ikhq zyHPe5%62mv2gALbY`V$zps@Qh^kgvE@d$4kEaC~I-_p*`2KnpvVWg-<;DBKzl~x?b zmpPNA_gJLEwAz%xUe6Af&`rhWnaP8eb{4w5XK&Tyw-VGMJ`^z_}J>T<6 z9jc$OD1L|mFCXsqB!TL@w1tE36_);X?JQn46lv>hY9r?CMB{aHwve=J*gY7WIKTQI(9$QnhXU0v zhKY!vF&VVVARV_mkC%l(v6fns*6c>@hCKF&7K>hL+-~dJikYi$Y5oJYwPOq$8n^PH z!YAPKY|=`>VzpRKjf5s`XLjr+ZApjyzI$0tHi5L&PV}Sb&I5lnI@Pr$605X3%?}Z- zIK#7IHuO>ApL5Sger1*vu>XRKc2JBbJ{e$fZMR|H^lO(N0XK}224cl63 z&^2nSWF#;vAA^Q(eQw&;NTu1~W9`wPS*#^s?OkRbLzGa=i%OJo>}Ks?M3dp8?Fba$ zcy!dSR(CT)ebH|+>&yY!5m4Q-2!RFPOa(M%oGP6C8kv9sdpH+Ok=?ROe5UDnw~ zZEw^GoOL7bA7`gEzDZlD*yS=fTg2zefc8FQ)>6$-BMFA*>2}=<(DrW_slX3UeKNf6 zeu1L^ZGavO2ZPtaISfKkKb98(ZT@l1L+yeamWhXYz4oqCMk5iOa{W^I&Eq;@@r5z3cAZH0%>X-Vkz(eX9+D8`dtxew0eJ44%wWRriNuHC6G zn+wgpj^>URx^lQ5@5O=x1r2@}wkix=64pv+X>U|*efK&jvCyuEF;TQt-y8}GxZQMg z46UK0L55)~g`_XTTB%CxfUOdRS3&eNs*Mk|>!l5_T_pFQRTDiuZ$JCHpjPM98*?@p zL*cBPgc+c%6z3jbw(5ZJ%z&O_*)!9cHszQ(Ni?j?SaWN9lvOQ{PtgWB{q*d3xw_m5 zJE3}vl>#4T?B7iA{;?QuNxGn57M&!I!(lRgta_X1f}(V<)ibEab5`TesGeYd)V5KDmeOgjfx*dbX4e`|li!UaoPw=fUVK zD31Nnj%69BcciO;>v#0|7I zb_>wjaF6W7Rt=a6LaO_zu=E?qTHL;l2y9KtBR;ZyzV`@@^`)Ji6xU>D;aW@~)CI!xEb7Gb)+_MyJiNiA*+ zTnmo62W;KUin4>Q2R{XDRmSTc%Es~YzWTaKu)!qqlaGq68tz^i2(RL9c-nxXgKNOo zLzj}_cJ<7o#K@)^o4oe3ZzUmK#Pr`0}de8N!Y)`}2`w~wYR@tt{qsN`T?`8}g zL+%5u8|@TEYpFSZ_6*Myg!F(TO(g+Vt)?)W!3d=r3ap$5Y=Bm=`8WZ=YZn&z@?{7* zTL(nHmeU@w0PJL1s>OKN)H!Zg+kA#eW9*b8e65PX*#hie%4mYBB~@`b1|3NYAexRb zgq2%|=Eg?NmDB3E6RRDv%MY-(5-g2Zg-6fH^F>M2(#>yl&!J!B*nPiIgsQ9cA#^L) zMyK!fE`OyZY$f%vq5N(Srzu-4s^XTWY%S)nU3ys=D1RmHNbL?~TZKMsxYKUqW3TB2 z+g}8uw#U%2P3=y1I+k3z%y{at`_q6{V9=+*Y}HDz@Q{&6%QR>cIOd1h-1;<}trkn1 z6VlEfPDt?9<`K-^@bR>ZCe|xwz*(iTHUqT#XZduHwsiW`M`HrdF<3~zs;qsw*bJkc zEu0uPc%~lLwEyBBD>c1KkA0&J7Rw^thH$p*kG=(EyI93aU9i*^3O)^5je&Z#X^=WZ zR&W|<#OO-h@N)>8^yxHV?Kb$jDW|k}RYxIfmHw<=N-J%&_7=HJVcSGpV<3sJUWJ$>Ir{V?O!q5@l0 zK&}AUhNG}kJjyXk2?u1A4l>*pYNz|kV7A7P#=9qCJJH!mHRj8FI9szEcLuVZ+a{3Z zW4_Bi1Z#&JzTb#J+5*~D-^T8E#1O{Ppbg3^Enp>1o?&`;x3~3E5rAFpXJj%zyuxCapxs(Ys;DR3c1s_8V^|W0%Ufvxz`k{iE(Z4cbq> z)lz&bdF~w#NjVOSYo$X$O@p?)R+UkUH)dQ8+25EUfMP1vG63l%W5%hnnt*oDKrln` zuFi%&Mz1`me?4h9WwqQEI6Bp6xau}tdb~~u80^2_M&$&v)p-jF6Uw#+;0b1>3b0z; z6C!3Cg_ZYhcRVb4i)-y&j~;`r{TDvZ;I0p{8)pL9fw03cSVrSry70Op@+jN(GhD}x z{*UM~%a$t#f#6np1MPD)f!P1Xnv7JrfBXs;r2#>ZXxo)k;Yo~(F;I@jr0r)-#Y}2e z6Jq^9Xx>2x(ZJ#`UvytVFSjhXH9;7dBl}C7LPdSH=W{c zgK`NYc7WzEVw+xsrOic=tv2I_*jP9UvDGUcI|gR<4co}@V7O&m9(C-uwL3)h!U6r% z!#hFZA-1pQtzm5E@zElG0ef^15mweNuZf%$xTbbT&uZ$_=X4FyB*L7XeI(W_xE4d# znVvXiP8=U+i>r#V9aZg&l>LoPK`pBH_ff-QRub-LXE@s};;gc3(m&47y*)4F;b)!? zr>}w(+E@1wXg}&I;B3!mvF$WvT^(qt3r->uhHRJn^yw5VHRDgwUFlXa3nR_&x9JbF zx-F0$!L-pWNlkD_=HUrvnb|^LPEDQXYJCl7Vxr?G%nG(TB8+WiGH?rkTle`1E-iG4 ziXo(_GtAh|-r;08A8$2yU?@8ouELZZlp>CLpnj3k`Jn6p_8x@(%7FN*X@l<)ni51^ zN44?2oy#*x=!D^pqc8=Nrcfm>b5^toDC@!qQ})+j!<^N1wP~2=H~5ifjhcR84K&)d za4eo~*wN#~4c`~i_Dn%w5VV7dGAw7?7(QVxPfAz!NbBl2{OVAVr~Jej$0`WNblrWW zv_a1H@!!^kr67kvyIzOJa4Fi(xmN3Frp@` z9sIsO7yKNZziH6+W*PW_T8VYOo0MeQP#?U1((3`*wmRq1l-=yn#?un_IVNVqB@Njw z-A>p1L3TmvG-eOIFM(`dnbV4~ec1Ed8cYLlq#0ZNU%34k`z|b)@BvV@_Qe zDcfoIo_H4}xR=%dv+Ly+nBDY#IRe_+uJXTPmmLRm>g z40pju=K`4R=idq6)~OdTV2*S(h?Aa17$y=H9X0%sBU_Wj_X!HYfEo7vHV%8xpQbn+$w7ZX{TCSlS3A;_U3cKhS zzPgU*Vo5*HSAJzs+e2V~17`bKhn^11{+i;YN`>mBCy|`htiySwW&yYN-Fl&Vw*<5a zx2{2}@${|en%unI18w36XuC|j;Bf^J=;OIG>?X`=Ub*($m~r{;3=2UW7t9LI-uS0y z14m;vOUFIs9*G-Wrf@Q*@0@%luH)qapp~@O@4>7pMxQr*ufi!Ehto+>Uklj2U>ppS zwOpRkpeP>}WZdX+jb}7yyX2p1j^Fs9MIo)^8m`N8xEV8m^u}x zZQ*kCdV-jYazO!G$!FyQs7355X1XF!+tM>wN;WqxtA+uK&~ff zbNGCfB=VtxO3A7i<5-NVi=nrEussdFHhv?AK2KWa{GQ)R4;fqEZ7VhLUzKFbOsc18 zRRN`MEo$q-=)&&sz9oClzKb>nv>l{Qj5da+kF#(Cwf&M^J!M5J`7&gfY4wf>crR2c zllJgVW|O1}dQa0FLW^%aA*kDzLHmngn}af{QaGktVWh4BXghfe=ksS! zMMcSQRUaLFy8E5)Vz?%kFD%rGa0C}kD^%g)oo(or8ZaePn-HwKRW zO4mTpwlYnAlYXd4?=F+J?Hue@)SX_njM_GQ73nCkf=EN!e*UE;A+74-I@H@UhX_!h zwgI}dx@e|)bOeRk)dj53z}a5Uu`y^TDqfyuZG%Y*o-y4)<#`%+-)r3kZ2Qt%E1qqD zUga*N^@xI>is+IWZKSI@KgH^}mHo~r$D%dWAA+$tZhQ!hTV4;`&VDvs64(avu?*W_ z4;#aGwtEe4 zk{gLLNH8R=&h%Cct077^lQOJ}ab1(!kAlKAY&*9GBUuvB>#-x#F}xl-YU#m%ZTDBu zb2qw1sfXji42mAuwi;eI=JX8at)cBkYnNFo4WY}x+QTd)$9ltRXzOz6Bq>&g!@G1X zsQP)0UFMQ525$$GA&!9=2S+tU>-zdh+gR6*b-ls(r_<^Cc(v$|$r`rkd$OnP>2ED? z)r)2A_)UTKJ>hZJ>jv#K`>|vtPq*)UzSl2%ylzpy{d@8o+)#t zF0_hj6(Is$G!V#=7H;zVM|GKHTau$da4WTet|NuewEvAYZjNqdedQyAs{xSVoQeZ- zxWiXj?xL!HS;BO(?W+olLnrOQN`~y(%f<(_zAAE&TFkj*SEO!All~56`d77LSz~CG zvAUB>Kxk^Ob;#yzUgReFwSjn?)hEhC=^x zV(nceyWCkLI4sm&441MFqmFKB-*eoMh}HIBsqkWTy4SVlroSGnvB_DH{1=6Dp|UC|t=n1YUJif1|Df)c@M9flo@GIxi{|^) zAwd8BH7)L{c3(f-Otq(1dSSX`3(=IG;h|*8IxNxy#x+ebE$OrVDN&qze!_iP!xJk# zNp^U)%{rHbkp5_^-Q$+b5np+4D=qz8=0P+|uF4YA^>(hEg>_ZPr;o*SwOUzL)OSAD zF`fpH70BqJm(A$hAv%AU{sKX*Y!}QJAAj@Lm z-pcQASC-C^C4x#Ob0V0Y8LZQeMZTvKR!AS$n;fk9f-r8qSFR1x_0Y*eA$|5b0#J9u zk~PAk8oMC5^YxDBJKf(GmkG~B^CM*-J)b1X5IbB6>^eOUwecV8D_^Ld8p>&c=>ZjG zjs9n%ksa94{B`!pyA_P^H=Vt=sijLPa*ufU~cq}@A# ze^hrZLUqMum+vg~%~6-Ta`Ppj`V=tidVqX53rkHo38BABi@!2}>Df6Zj+=pr49j9- z%9uRgs8`L$iH2FutR%IpTQ3Zz-}k5>dX}Ew?Y=Nu%?e+bu2LZc5IyngfE3Z!t#HBg zY2J4$^MPcRHL>cjqO2Oww&y0x*I6!QuHnbN*U;fAq;9)dE^FLTyI%^aJFV9f)bWzn zBh;@10lH}5HFLR-F-t~>S^w`s2Z}g#?V(Jx-{p)>R7kc zy5e>QaBS8E=HT#PismIC?LCp~vvEY>JY&Wg1am#MTaHI&JKRfJ?SFt0S8&dMPdh{O zo|MU?%k+%aInihJ@a=MS5A2ikeKUS!kY!o!R{A}eJ{_`>={E?&cM#s;NA{WNc>)e# zpl7H!ENX zZ+8+RXr5(p_~HDlwO1_*&+l6nnyaI*EHqd6-?~I-`Wp}DyPQ>E%{#s&kGbEduhl?~ z&#hK>2R$vxBKTK%82%UXP)*hBU zhR&U=3(eab#XhD3A<1Dcn$Kk`JbU#z!%_CK+&8-x&#zHZJpW$J7ST1v$Rf_&%U-Ly zTJ$yszH?brFJCO{WnEdV)uQ+1i_qSnNT#WyTkvPO75W9e_Eksjmbu-z(|zyScVTHU2QJxJ36%8lXZvZti`erU9GS@15EGF>sWB^$!P)lUnfu( zRj_>*G`a?p%|$_a4iOcwVtU^sBGi^O9dLGt-ua<@1@&gNI*jyfK{$-`R2vmAnC^Vb z64A3IcDo+Suc%sxW4<(wFq<3XrEaD(*k>I9sB3OvC6K=9bF!klrYdC9y(2uX!0KzBz4OcdANQQN4A(is>niyedf7uz1RKU{A+q1=wEUA5P8=1l40LNjE;*2tk*D@rd4_)tau-{PyIwGNAt>ZsKC*Ms1< zj}3!6PI(5b@iEw z0ANp~IJ}#dI-?G=H7m5a)+ak1JJyBh*aD97v2~&M| z%t$Ld>AWn!_0LZ|o>W&hWo>lWcx4dogv-H=JAKbj*0ea@b+Or4Xgi(rGi3*%hU$`u zm9trO%T=aZo2%B*it!d*?7v+x)00;7$>)IptyO)4`Oe6YmIACte}*katyXUguqR~v zaF!>nISAgvdYxbeK#-V~_4@F%#cA)Tnt|)twF!Gc{aYMoH*(p&N&;Bd#D;HCJw8qV z)$=^PlCa&Dr;Be-x_uo1swZ|{iSO+$?NWs5;sl3>>gwxuJ&l)oyeUX`P-Xf3omaKb z_G zV7^+jDI%w$ajIxYQ`v#8FFjt;O zxw;C6KTe7;7sJ3Zy{Bp3nPX&a+H+g}U1{_$%D0%;^|3c_b5qgE>VClU*tMIMS2>sZ zHAsVH0lBq~eW&fi5disgKGNFVC@9y{UEAJNB+qy>E=K3ur#waS^DgpHV^r0I;~%q& z9S7ogHg+$8-ZY`kC(kw1*>@e^(!Tq+05J~6`t4u#X3wEyso1A2a=u@(Ai3JCeFuHH zbvA+H*_c=53zFwNn}WZ)9;MPcVTR+$t#>s6R1le5CK^imE*re&^YT?B|AGSo@^H1M zHHIs#q7Z{&LxNhC%X>J}fLwj7jsVKl*!g(el}T4z&t|;>HrF0lK^kJT%?vG&064T@qoCEuX2wpLjH z%U$@gGNRLZ%WRtzsXg=AQZqS4pm;UBZHhm1pIz02^NvdSevEOe0a-@Fu<}lOSYB(X zLxa`%ls{JPI{PkH=lW6$I8=_FYj_inR>#kEK9(!GvRxH-FC}&+3uVHl;e!g`NU;DD}HF!0friBs5o@o2vA}alyC!|oL`C;0SWtjILXXzV0xaq#`9g5>o$1HU7>}frMQDH4XzTUJiD9_M2RCDl_ zl0UKp^5jJ8DGML%W>u3J1Vf5+F9F=?RHVgM=3Sl@3*2Qg1VHfN6^pmnvZfmU$%mBF^E6{@?gS| zWiY51>}x@OJ1YV5iK#{6Vq@HBObi=AM6v|KezG|PG7d;+dTRc|e@g?FN zRCKsBL3viY_4z55XBfPa75TpGa(R}1KG%c2h{CHLtC%+1?F%d4T*B);Ui$r z54gX870tKv5SA-HI4r9C4=7%BGzRU70myoroYfZbdg!6&cw6C6YFnGzj457Q*@=P^%ty@5Uldm*S ziFf_&UOZnfPvJaoD)k$Nc^`b1Nh=aV-3+QH9GAad-uEuvteCFh z5a0PVJPuf5T`wwY9M2=Sd`0zRZinT0PH4@)+?HwXagnqYCVjs zNA*e&rd8s6e?iy|SWM2aho{X&z&6GkpX+kNw5L1rzJv>|tJ>X| z=9>03+J`H$z&;%kz%Hy*^@iuG?ZN`=d70@nhwM2tR2X8poASxgbS9`xF#COuf!#Y1 zic8~fPFtv+^o>e!xUPP|RRmWKu!#a#PqSu*Fxj64Qkd%taVHBcGFBZzBcv42;NI8s z-W$`_L+PH17-(OVkgSL18$JVMPwR^qY)?A~5oFKn_?M7f?5-Sp9%`=B{CUdSuE`?% z_=xwyBGk}&j}~@a`9=0+mfw%W#7%swU4Yr z@vqH^0DGcfjq+v09n;G`-%NjxKg4BOXZedBEWh1ui*|MUD$mIxLl2hL0@eD7tc|r^ zJpy1q)=1aVJ=?1k+%?wI`VQckbU9YD(`nv#wvNZ6TDG{p2d}A=Or{H!XV9)U;Jj#c)t-H)DRAl#Ya!FF z*ZsggIYepoGiLcl|LQ~5?N$do#j1>tZ{6ns&b#i;uosS*r@7B_BQjPaM%$BCcQI_M z&-1;nhB}R{i!FB;`d%}x=bnlIVBcA$B{gD)f2=^Afxttk<$i z!?c^T@fcFmM*!;s{@6D_+77RKJ$m^-U_FoP88Yjg!!~XmE`?a+B2eF1%~g!0*TXpl z)YZSj&I;!Hw{$>zHe(YZ%qS%JHQ4iNtKI>$XB)s3u4iyN%fj`Yn^eRA`-V-jCJL<+ zgv)F(dX>W^#Tm;kVtq0mVR&qv^|nA=^9>(G^i+hcehAV#V8Zz|x9xs8A5d?<{bXW# zepwaSH`S%PA@e+Lg&*uWgL=IeNY`-3H+5ybH|IgAUxqKcK8CTYZvT?!Jakh#edc+l z!R7$ZL?2!$t;v9O)%2cuu0ddz?_Q>|*F6Zfrk;{kP$cWsbUg(rI095pje9;{*I;uD zh9|)G@SP2CAJ^G4*tw?+QC-4{7oO_L9pPfvh5fuKSbqRfmawjO(X#*i^`F1~_pASE z`M>@vwSy*y^DD6=?V29{{Y#(nzrPzbbrZe%+X8kfv72MFNH5*nm9R7fG_*py{@eYH zhiabl@;Zla;g~(?*`{Wf1%ssXKmKh&od0N2E)5mElk@%J*2i%d?D{1AgyL$(XfkHn zO-YlQNkg0VR=lTL66<5DCMoBYV9A7sOe3#kW_?xz#g~Ww{I_;y|k2-C3Q{)bDo{J#V zg{Ov;e72>HG?FQ_lb;xb+s`3A@VDfqemvj(8h!q>{WKpruI^!TXu+i>rcIgSa^>(9 zw4F5J;@d`s_N!gju|^%W8fDa{l7QBp7viXreL}_YU3Vk(4`ZhUZ3=>?^>((cJn1Yq z;rBPY?gir1nbO#(ku`k0?RF)yr4gtYC4)o~&1#pQTh%3*Pb2z=Y&jjn*wd`$5#wpW zQ+xH*%S1v?yat+%ET~BR#jWH^9h$UMmJ|VM(GsCS);Dl zI`yLAd1F(0v8z=%U&3H(WN8F7D*4gy5RFbbK1>lXBjj`FrPJt?+?_6vtG<*CS36%3 zEn`UQyohzoIKJn8OvM$|gBymmFhgeOgkF5=a zwdn?y>qziH%x>A7a6P=2z910kd1MoV(zMqN&u3HL#MS*-=_44K&M2JTZ z-J-wGD7U1%G_}?fS*auaeE|Qm?92RIzJ|^OSqD1Gg3+ArgDWe;-D%gX;dNl~n4GpvP7S zvL5a~;cD~fvZ3a+pL*L-2p^||sV(%7EkEJK8R!78+RIO}7^)gE^9L7>VW)_zeZNK9 z*$jj+*{xV?>-^>_qa!i`tcoM-e2HyMe>EM^j}4*f9Q594tWK8%rc4LgS}zlvCRqVn zHN)D`>Cxb(F-YWM@vD!bT=hQgxnSWA!SxMTT>KZilPZ~{{v@F!mfE|$c=LcRf#LT0 zZr+vy$uagJ;5D4mBCHyR?g?MJV6N;QU+49w8J^PerXz~-JtP-=4e4j>fQTl)`E{LuEnb`JwB6=(s7*Ee?3e zE^z^~VkI^Ib8%jfV;2!p<@4QZNpk)ngLYqMnX4)(?X*l*dg(G&ThS~50m1sA!Ldu0 z%7X{3@;mst5UHd#H2R`Z9`I!_WtQp z!YVnb=S{BC)Rw`jhR>@*%8X>^&yge&Rw;C^uivS92koYxX@X^|g`6*>5m4>cOiBUO z*4g3DE^s~p=qh&BPo-IDgk$&;sMUZx3#=-hg03FI-wgf>imBsm3&iob{$2#SMi5@` z^#88rWuU5g*{%@ZN0$sMvOGM$32oZUZFo<;OY`Eh9-PE#Jg>pi&HN;-_y?KGFzuVo zXZV&B9sCUR`=3RuXZRsxjtvFVxftaZ1u0n9yR?X^_4pS3gU)z}^hWo_af)tI<$Q9^ zra&_INzsSDXJwquA?F}hi#RRQv@7X8L)EaVA?WPLb5aknddNoEmG#-+ni2|0#`8>{eh~xI2)cyfH_$ps>B(Fm+5e(4gpX*#nPnE63JS^u{93ZL&Qa*iI?B~SK z8~&=*SLR=Nh`>8=wX=`>g{$3ZpWS7Z1o;lyA6G`Nc2k?C3s_aV(Uq?n-esUzKozdp zZhKb5*`lhp<2U;Ay%fAU$Wg3>)c*0uPS+|_zKg$ll|3esrc}Wk_ldVO0TK`Y>FT zDEEg!tAyXxJE4R*APm;zirAfF=;~XpqtvB@RZ;5LOk_of=+$y@@=S5g?Zb(zZvJ7l z+Cf=tT*OOC0lPyiqwf^vYNy`NJS(p1IKzJCqmu7ox!T9pc7m%qiG3G~;Ul(u0$od0 z8-{Dw)_$99+&V~*C@8v$A00%g8Pv-+e&|!8peQ^p3)f)UDF9Y1)yZ>tswfuWMc6M8 zwU<+0My*b;=L%Msp50-!mM;A0y775lqV^$L!g$@JaG0&m-GFpz2R5^3){vjK0ixqs zs50haR`@fAE(}^b-#(q;p*7;|cc%rGj$VV&u*mJ2?v>j+Lf5WvN}|FQrjQg}y&O0X zQj1uXdSCLvFj)mCyX9A_;^+E4!pAc;J%&#wvUbC#gutqXhoSw>8zpWz6V4kYs3N87 z0O|d_8Ag|_EJH)zdpdQKV?b3o_I5*XNu#us!9fEvn7WblGE-BQzqa;+seK@74WMtZr9o!^g>O{6-_7yV}n_YAB>YM1)!|!DWU=OV5g|*?wqo)ZU4Wdf_ zm0s;+c44>5KbkKAs+DkBsBT6q4RL?koa`P^r7H3%)zvUhtOXxig%)c1X`zZd?&s}l z^U>Be4!G$$i1(UoY?XSmY)BAh=VJ<{Q_cG5c~Su1_Sr(MuGh(i52$-~=^MO;9 z^U{8rQYiKFcC5EvIzC9X9!(NZZ99BxpgNJ6X{27%avG_cKI}!HdQh18zQ|4c?|eWtUtkLotLx^Encz8BD|cGLRr}bE zqwM=zo*34(UY{J3$@S<;V(MbT!wjnGe`&QUk*0f|d4Bt`?BoJ80ftGhKE*S^`d+mO zs)#?`@YIttx(8Hkq4_Nvy4ze5{#+BhK7AUk+Guzl{H6!O;vIpmP!fu(n`g|r*6R0- zd*0+(4vfFMz3|{OpenV?)}AJYlMt!e*!XnG>yCFQgzJ76+uyw&wKUN7!Wfw(hh^S9 z{_rh#1bynF==Z%mqdb-Ln0*$a2fNGSYd&u4Rk2p7zki%PQl{^(ls?EuA|RR z&k^_IR~rQrJ{@W`h`_d7b?0*d{Yk)HlFo})YxugM<1Wn+$~9j^fQ8CBlmP3HZUgqW zkhU3H@54w|l_!R0+Ud)NpiNz5|2*+|^&6yD9A7sEeKJbdjrFD+FRm|WyLeTplS>je zc$A>qcx{2i*t8AU!-TuhsuBs_{ZmIAU)t`fx16Q@Qd!zX6keb_WBY)Qu+?pU8?fyP z-8Pl6r+?)A5}7u1q69AADV`Y%=k)1dYm&elvMQ0}Ac0lAe`2QDu91869k9CDVS`mE zEa$*>WX90h#8pJH?h05Z>KwzvGIhUg^_5FUMXR1C4YWL3o~sQ-R0VoyLxXjVi(R>A zy+qZ6VDQ41Y{i~F@{HO=N{-)^L?Wb1(TNqfK^4L^MTdYm!V^zSG(q~ zPxvjgQIf&meoiYE5OYkQ5V)$%>(yC|Mm!_!Bke$uRkzY^a8-RrNdZ@-!R)_l(vPi+ z=wQ8Y{@who2JARpg~EGrippk#)q%#x>Y!d$$$4N^-CL&vtL}II{!fW#f;TKm^ME4S zIacUZk-%0#Lk!vsQ2jdfON&jq-BUKKV@4jmJ01Wpdw)c&sNI6C(uLY^4p^$LSifN1 z%U=eqE#{8SB(Q4A)8^u8mr6Xd&1A9LEoH8DM_redW{D}+ESrk0nu#vozI4c1+J6md zOu>|;KE!D|J?W9s9u)yKy$4WH7E%LBzO3?E$Q+fif_!!dLNUhIy1{b+CXLup2f zn0_3nQc2W$>h*E0jMu)%Rv^NiZxTG{Y5|1dTTb}{pz2-xT@;O>;HwIp&`Q6yhGciC zSB;#38GLPz9_!GP|qlz5 z!sUV`nAp0E6s+C`-FTrHe7*%GyBF|eu@-CR`g?(^SDNRzrf(V@#L=tOAnf|(cuy)> z!t;RG8WJgnN7(-I0b}bTT|wIykY*|{AT}xqJ|U2eB9=BgJcx50MWMwlPxTR@rIDy!!is94%D;4IAhA8AriQqNybnxdUNqf#ZS^Vk_!P zv4}a%HZ2!Y)0NTdMuM<`3OVMhh989!=~`#)E>tm=#NlZ1I){vGWN}UB1j=5Xvt#u- zU|t!>WEBp6Oh}TC=V@0x80RV1J)f5c3w8B@vF(Lii2W<8R5r@2qj;D?BOe(ZBPfJx z$Q~r+HDvXOEE!g=cZVG}ecI}#WgLX4VsQ=Gi>}2np1JkSH_;KVDXSH|b%#<*d-dT8 zTsm%_>nlgx9{EEj?53G2P=+h^2EDslKd!fIf+R;${u_hKVsew zt$Dm2G?mKc+s4T9zi6R<{LJHcL0NcXcduHi43|}OJ1%SbcC^S7uQ8Qs!}V43eRQqj zP$)p_AQqQkGmpF#4^zh?ehAp=?X3gD*AfjNwM@6c)y}(Fre66;zv}RBXUPkE|U>;Ht9G z#!teEb!80tO*$4w%g8v|x=Sjmy8~nSxIQ6xtz%VK!gvidQy8y_62(!kUskKh5xyRV zs4!ovwwS1VR@JJ%O`bx{tYQ7y-y0&6z|FdRu#}Yb)y;hPoX?N`5jDb)T?m#k(*5{O zIQ;@%uK6%Khko@i>ozIVFG@uvXiMmPG5iWOrv=Vd9W}mPXEyj%z{~3cg4qGX!jSDc zuYzdGmVyWeN3V^O#QuH&4{oa(NTYI+E2qv8OObNo}U4Grw#{R2Z)S+-DnyB z4p?gyT zf~(XpcYv;Sw%3??4rEePck+sf7h&Z(e`OD0Cl6$puN8cH`0;h8Z}JE`N$mCOclePt zpM<*n0Bnbp@$vQ0`0&*u367Q;u8vsgM@>7&ru(K(2w?XsXT^9>bpc+#DKp?}rxU_( zt^ajh80ngIKKrT7yEM5zQ8((VfUg6F;I%w2Qc~&BB3RARbu}MOh*b+w$Rcc`;{w7~ z8&IKX!Zw7TiBlKSn3JY!)!u%NlX{=}vUo4o!q_xq?qj!OJyWHUrt1Kj$qT6T&Thx# zVU^s=s)n$-Oc{OotAnRIxg82S4avHE@D;83-7y>BOP5_6{@SL@~2+gw9}9bzGj&?)G*49lS1hg80 zhCNA;j}K=jFL;`>1+n4HA#L4-HST-=X4CTO9;A&c4Ag3l<6He>soJX*#o5JY-0El> zj3*r;Zo>vBTYl;2+(1ROEyu7ZnRziF>+Iea(CT+8FNCbRMirsD5S;gO+*G|9Bh6Xm zfaNbn|5gludX|nQ(pHNeEhy4fxo>wU2);C%8eTZjV#(?Dbewa7`pK7N72~!1yq*UT zNIPGP=XITsV=?PLq(RJ%YK7{lDj26HpVgrOLPn+&v};XShHX~3Wa%Y5pwhnEqP6nY z+oxz()vm0&-7wEJP^!|7vZQG%K$9OLX&cMn3wO)j90BYWyQ}kL&E>{>$JJ}j>+h8| zGswEO4%VQ~Wh-Oc8S;*bJw{^m?^ZqI)2Pz_-LJ*4HPAXS-nE{%6%=JHWj#6e;7;wn zy$2+{i%a-Hi($v>cm2El(An;nD|HPrd)NxB_O_oLX!Ol}=iGiMyDh(=NHN*VJsN!6 zOr60AfUr`up6BJTb9>J?hL(SrH0*3I{>$Ttno^cwyg52Bu2|(eEIh8q#kC|J&!17L zu5>_QnMbCk4;hyXD~qy%oVNbXstQ+u1`*h*Y|S5>e0L(5`$ZNsUnGGnlX-Ppi;+c> zt$jC%Rj0}_oVT;Etw-*=*XHe;;cuyFuk)+(Ki>>5@wp*vWq34+%iiF5Gw#_{HGaMu zOBqVswPOpl`<0a*V8$9kB|g`o+uJ^_oBmxNNRO%+d~c(7mlFr1Kfxh;V8`OP()nV& zf4FR%S63)vNkle95+B|YS#MN{Z`oKL*Z8PLscf)nRPOapudIY?wLY`})>2tS09p&N z&vRL=Drhoaw61@7#-B`)eaY%rC$)^(0HLJPk+6ndA=1iAs<8S!KdT43p{ zWlhr@ku7`uo?ltpQ)}4w(4Tpqt5+@JboLUx>pmD{T-m|1Hy+_}SrmFdGRqXcgEZNB zqK=s~J5EyA3!}nQfV%T}R%L7+KIEch)!;brdojY<)pga>tworY-y9~(;(3`^ve&Qh zJ57d2Bm{#``9*fX(|)|_v5+4&D39DPSfA~<4yP-9$ItqFfw)8_S3yZv!vw!XNMBwX z`_B7ARyV?{^)6+AlCH{Y>-ippaZYvx;*$4V42Wyw`qotns}2TVfp`UX5fUK&4N}-t z0zp`d;-78UvU)zB=e9KCc+0Qvq=aqxNb)|!SE3O zWK3(Wc=-b2WjBA_h-fKPS%>ys>t%rlaBeROQ%7)aORV3LiMf*W2;wD0+*|)=y3CFw z*>NDK$|^8p$qOX)S8Nd;V7>Y3f+d>C#Nh}C;u)r1H5e+*tUWsp^0*G4gu>QXdaeum zxUgV&jv8kQhUc+g-7^m2ba3qciH&A}D`^!{5T5DpymEW{n}z}a-+8&Z01VGE`}}k< zsKfsl^Qj-ZnhJYzI|*hzz55^QMs=(pt}hu}5Xl`(jb?_&8;4qLScSrg1mXqJW`=8` zJl_Dncle~uq`n3dvRmrlUBL?h+C@=hjBPXI0)oDZM3=Wz5)`&Yt;tA=YZ0j$5XL*o zUdHmabPY{)@t>B*R2IN^n@G!Mh<9p4)+M!VkcCe8|46j{Pe$jnS{{!TUUF8s4kvr~ z=|rGSRc|-NJ^bw(NYASt?LQqZG2Jc0C%tLk>w$bZ7a_hNm8`~mYAhwPox;(1D;zI{ z&@ICk{bAqf&7gCK7RN)`);7G|;N39S4T(d`EOmI5MrU^ts__)cEyiRhV9Xi*PnSck zxAOHA>YFdiZjc%o{;j_KcD-Kc7B1~4F`fize#OBOEbV&f+lH$!uHf^#>Gz0A?8q6M z1>{;2E1aY-Pm35xeuFZ2GI7+*j>t#7(9o~`)V>h$9H z>JE^6zM6&OngrbUaeP;F7lZg)K8P838#hpE4!YNl2Xd^xmOeh&%T8o?Xf+BdMn^@Sc!T7LFD9@noCw`FeMoO?bnat`qV z=8bI$-_sESAFc3U?y?2uxxm(KkJ6`6XxDI}C&7Z{n!L|y(y4-haJLefPOqlQ;Lx&D5#G_$t9%%~QcblKrhSH!0rrU)rUz0=`qRGRu>} z|7*j7T-xGdH7$P2d&B_c7CbTrihGAWXZZ7Pxi0v76xCslU)p^b<3AyDYsd zH`kG|HGudZ37M{k0<^Y*jnOkwUz_D<@?2sgWaZA+?59QQ=0{abh48f1c+IP*bkVf6 z>FluHPx~OhcMvHMp2gq**+k711GKMo%o zboO^DuwxT;0aDgM@gr!5Ii53j)Td3);1QfVo7LDR%y3-tvCf6$SzCiogX2jT#~F@K z5^vwd(>Q$1Jn$FAFRPormE0ovZupAhQoHIFKrbJ-R?sViT~;X*UfGeWH3H}7#m;YxCAG@kX*C6T+ON>g_qVmW)p_D zsea2doagXEVLZp!s&@zr$ys;fG|5v&ssLF)roWsfAWwoUT)Td^Ro|bbq)y^$U_4`N zH)XDLu04fvHM6>8n&guqHy_B)c)r{FrDNW`Z8qN=kf+ruTf@PEXlbdo6F4_)ZHtxX zJGO-d>4M~`9zN~>$)#l~Um{A{D8aOjcUmWU9JlnTaKUm%F|C<{I7fmnFOX-1ywXlc zE?vp>jB$MnUpA)$7`IYpNv?H-$Cl*B6*RX-Xlu_^@Xwm_xz{thb6MngylFc@xyt*a zWR#BFA&-qAV@G{fPL6!v@+o{_ryiDfyqAF$?2B|>S_kVm&44`KjyjFDxtnj@ z7L*V6F4n^KrZxF^KWsraCRhB@g{{TMZGs!^m9oo$5YyfV@{Z0QbZC zl{O?Fh+0|Q+RT@^gAb1Nd=0AOG63Ytg?(fHBTA-Go`df5(?bhShX9ak_~4tm=CiQY zxyvBmf3-#|b9^VTZn+NDCoMLzrq$TCul4xXR`~|i|7GFJ+SAOvSjSq-Rjc)*Aq~|2 zy0w-7=|UNqi;w!j6O?Cz`F>5=JAVc8G$zJ*7l7r5HAz+=pF20#dh_u$_B@#R|1ym6 zGkLww-xaFPBh|kQ9oP>S>0ENxdE$8Xhd%&@=iuTx~gWd zO3#UxsLp@9{`_M1JXIv?gVwa#^HL1aL*tG1T@dr&Y-(CZgzZr4y2yswF;nGyz+DE{!Y>uyD1-Wxn4c;hjr>|ds^`gvC@c%`qzF@6 zYSmA}T+TnTHdc4I!qooq(tfFD?!5db^7~g>0k)MA`GU-=%8F*tI43^;#(yVqEI_5>x=*kZyL}*LyDgvMO=Yr(XB(sAEyz6X_sJ>U+HiXsXkO6|C^E zbGyX)w+&-~<=ZM;KwRy@OF?+1>-s;1@D3#HYauZGX)s*jx0NA`ku5)4lgfLYy z(mMt7C2|PwO9t(#%O%T97Je0I`-$*a96=DT zCt_bW;MTqDAp@!eS(hZ=Sw~nVCj+aha~f2n6%j6uUi+2~A1u3FI+Nnw97mD1BZ9ID ze=n+GI9YIfCa~*XkUUj$V}CfVLib-<-6@~;eO7x;7aZU809l>HUJo0d&%h?}LXB51 zQ7NFq_K)wzb`=)Kck?FqxRmR-=em744cBk&McA@1Yqjj{?q`Ps!tpFG9|%3Jv7%g; zANXZcfn1O4Q3;S-(^J*#J;vgDymsJWiHhjyP-_f}@qC6jRV_6h=LlfW&&r@@luFza% zZELzwk3zy*)vCF;c&=C12^m1oL2%a@K)UGal{`?j>odIbWhs5bOkXbEK(}ORH03)? z^vV0T@7$lZm9==?qxmoW2%hCsnCY7BI=@<&A8|QM^iJOG`>;dOFHCf45!UV9+H2Xh zTMQ48APn?|4h{2Mv96mH(M2Cw#|ie$;Q65w*w-WI_Nwn^Kul}+soQUOh?$RDNy7Z` z(pZ*--~K4`p9tv069q0~%ZOL8QiU#5m<%UxZhO{Db-x3E6HOv%%szh$mRB;4WOFZ9G2WlojUFyvLHQ84Ka2W)nBH80KxP|He@LjdGiXv&eL^X zWEv;qlN6lW#?>rx>rN0|f5?{bTrI$^;(6r#D+Na#@a1*vyD2>VpRD6j{#o}L(?Q{% zVCM2QrOVS8^|mgjb0&eg#|2py<+1Ai;Jg%MS`1Zl5aR1V?(eAJJV%$u;V$iXSi7eg zHe0VOSeke9J>Yrf*`+3&|Krh!=bBD90x(zYbIG6)_3zQb_AF=PC61ra^rAek_hk#3 zFaAPSR2ld%kEGvLfmIJryE$Ob+RjfAl&iPY^Lq1}dh=UPEdykT0`d%cr2vxa0ddrK zq0KUu;P~M^+qdkDLw_c>#@&A!oufX3Je$<CNT3sJu zo?Bk8CVD@bvcE#+VI#z3gaNKAcq;emI@1Nm{QZ%rnI;!DVgI z`W9z};c7VY{r9hb{rd0kgkSzIA5lIqHMiZ4DlG&5pI`bV|NFPOXC93sEkiT@0t_{V z`4^~ayq#(2DeDS5Ti2+|q{aE&|gIoyTkG|W&De?D77`?&uTMGYCDVbsdk>Lh?=Xk9_ zLiT~rvl9xurvGavJvI7Ye&;;}V17P)BVUDgEP^;fOC8Eo&#h6{@|q5N8`@WcZobuK zhy2`i_}tyn10wx#?`UY&AKjDY{+TJ#I0{!k0QxG2B06rN1nEIHH}M6k)gA*r)&(Rn z_2#Z_u(A#>^`75}Q$ffzq28ShF%-s?&-4NUeV^Y)O&q7IguSk~uAn|QG1KS@ksR9H zm??w9N%2aU>NyI~lNGV`I&4j8hu5icp^4muA!{$Q=gVc0jgSLP0k7 zut!mJ0`A3*o~5Kler92;YT{=pWfCbk*&^qvgU#rb-&g+)9+%3MvpB{KGQ$_2I@1_;+(N>Nb3ck6rBjyLzuRB%I$DKu+mEEU}xh>phtM{`^`eLgXf#!5;& z*mC5g$*hQ5~C6fm#?$I8gEb=UNY5 zHCD@Z4JCAAK`~|XbWk^?xw`%m-%bZG}C@lG2iC%+YlDjY;;;dF>gNji>m;u)8M6n zDXR)EAu)d<&U#`R)WQiD75^AEX$+~2-C%gCwT*tjEo)wlkQKHXmjEl$tECB(c;#^; zicbUN>4(5URA2 zO41Li$%fpUI6WnFpTMcNU5`G$dsKP{GuPLCR7mt=kD-$7@w6lPVQ2F>zLX>)~ga9M-xb+zww+ zfZTatT|t~*^ZOchnEhujO;H;GJA}hOTJhLvdZazNoq%{4Q3gQ#glby(doVlZ3tQr7OvSTm%ZJyX>1#wyW-crU!Ef-j$ z{g3G~%dX%Cq2P*~qYQ4Fc0dtYHh)u|ET`yJ zIiFSK1r&D{xHR4Wbys0=v}a{URejk*^Bu>dB1WN0*J^=>U$TW`_T-iO8qG&d>4lay z7PX%t_B9HgLPtnRWFc#H?5y?PcS%{_-sR@8>?MHs(;jPvPy|WcNhH8V*azo*r&dCd zf&qvXpFBrM>37p{5nDqoqK_#4A;$9o(ShA9#jeW$@v|+4JpA4+kxx0BIw~G#03zh@ ztfIcH9J?jen*Lv*JnUMCND9ig`_V*AcS&|Bvxi=nFrqoZz_7U*zD!^QoNzCp!w==3t$ ztOHj>Pi0gqc%NU*r`2_EDuLOsa9C=p5_hkUTivC_|F7{IMtx1IdY9vCRdw>iCY$_W zio{gWyMhT53)fR3=67#rjdST6Wd#zuE5s}w);2r!l$7;ye^&{PLD@h=);C@X5p%Ad zXBH;M`C1||{5+d(M1ADGr7`d(T4_tX3Tl zuTG4VPayGABrrm2opPM!NB@+f!%QYlSDh&lYo(oPb0%R~%_`eU6NyLU(Zlh-FccI^ zT9ius>RPc9QQjX%Wz?D={2{pdn)@Z_0<7N!?yu60u5isS;BfH{=}>u{KAow$w8%!OvfK*Rd#c zE1yilxbgHLB`+eNAtf($mq4WCm67l;*UCO0z1b8_nJu0^snnfI>;UVD#P$4#hfN`# z=gh*ftd=m$2_0nx4s&`dRT+rvVpC*g=zbV(z3irst?^QT*gcR4)L1zN5Id3Po$xS8 zKefBP`uvvNwGXa2s6F=bnU!vp1P^L({fCOp#4f3rQ>)c0>uG%6lnKaR&gWU}p^RIC zvAcui+1bRPTVjz7vD^ZTOt2%opeyf{YZZqdmEp z`Zi?8Vld&wyY2I_HxdXMcYe~6Xl!Hm)^&N$$u8r9JsDZYL{Npbd}t(OPF)rB7XxF7 z#h?Fzu`3y$aYCx}-&$+#tG90B+p|w5x7AP_T;@Q9?%JpicBimo({a;E0*%vrXeCAO zr`16pw&qor=tWc~0ml^nLvh!XGKWAMh5KCP6*Zi``;CajCC!$CpB5~?j-!5?7s&X- za%2Yug$Ein%g@Ni@Eg&KTWP)&iy7l8#A_y&FS}zsv@W$G+eh{8t$AtdUWEanU7|71 z6^ZLou(NP9i zwPgNx9XXEgJKiL_26?{5`8>GPd63>$8HJQYttXnzr*Z zY{C85_$j`cFuzly-sG1r=~)B#!pomdZ1K$Id-S)poabZ@GUjFND>FBwPx054NwNKp zJC#qptiEXnsJpcN=CP{>wW$qYtg78o5kAniV^x!skqW*UEvSe}^**Rb^ZnX6awu+v zUSw!^H%vZlYcd-hGfj9g@ykxxPbuD6A%%lT9|5xNpXW%$tYo#smWtb%zlC-Qjx7_3 zTNyb;uUCOY#2)_u5>I|vWf~|R<;VWhihSV8;gqPZc*4Z|^x<|35`P#H{tIdyWnSr# zio<1X%f#?STO|Hsa4TAmd(F1HGjpH%VzQy^TSiOtSrCQ9FhN_2-B-^*v82J4h#87Y z*%T1tR9Fj%pFs*TfK=H3_z8PgK}1z3e~M|(lmv=Z;^I^+U?TfT@Ww(SvMSH#svF)L zEr2$ckUy`Gf6wj33n(&2r4&RQ%c(Fqw_R7kM7!Dl-=$gc?6`NlW<1B)Z)E_)?q9Y% z%um=8ZE`hiU(8cz=i+~mP$3vUpnuDuPB?d-Ru&!FE8te1R zSG8l8EU$ZtiOoudh(x<;-&L?w;RcF8Ul4t)oS#kcp=|prn$NYfx}}OD>ZXtLu^h5H zn}4$=n=8jr0Td96sQIL3?%BT~5ZP(KA3)6FSi7u(HXCQ!^|Gk`<5my6yFM4x3mf=- zs$=u)a#`(@PmZN1tGS)q+zSuWlk==3VtJ2NWUAsbRwbEt?0s5cfD zNlBh3J=8jv6c+bO(tBE3o$(6v?>ygKcPKOc|F1eNo^%!g@B@)kqUHMdL z=mQM_6cYfMgCi8DrJ|WK^)`PAm4uQ9D0U}-R_9ZivAZ?Z@($1YZ(JYOD0DQwuz7aB z=QslMTD?C~aVlz#O#JfyJ?HONzG`*Q8aGSe$i(Ez^sbC)Dwh#u1{PW1@(oAubis3^ zB0ES~Dc?@xN}%}q=E%j*$*Ec3fG;L?-LM~3VoJSTHXpA)xCIuMd)X0-tXK7kaB({p z^87?*FCFPaulIq)28{Bk+?wjW5`{FTM)pem_hqsH=sa6CyH&2C;;>|0T})o&a($F(YnD@wSNl7iy3xPYQ+OCxn3OWBc$KTW6{p_u2d%=UnTlx>2Z96uf)G_Ds3nDR#ac`oEM*R5|y!n{L z^)sD^`7n*u=B>!Yn}4r}o%}sp+s}fC$XSg+A`k7^T_2BycrqAyg`Psin??R<1{ZJU z$zMh(i*8>zBA#!&fhA6VuIFQPZpILj_X-?j{Fmu6$+9B}f#AOHQhG55oTu-9hsN9^ zOTAK}PsIcn4&meqaFMsr%84_zju&LC6X>FFv6Pw8ERDS9G(7663bWqw2L`gg<>I&2 zwutZF2B>F!OQ+}c!7@S5WX&L{pd%L;U<8z^p=GX z%I+$!PCeSvE%knLd&gp28I605un1h*J!Kf`Vewe--Z;)4f+Xjk5(iT~H}o%{<_9#| z)U$y|y1GLNB&UQ;2$4j&$;}Dex}Se)7sy>)l}5H!DMZB-*&;ELDGeKulr*NlS^-j*Hya;|1!`VT`vbC>#4in)Yc09a(L~1 zQr`q?yCU!5z~?Nr6IL2spX*nug#bwtC2_);td|0hRVXh70c7D#Rf|yc-RpZR9ABo! zmZ0ukt6k2LOMW3iIDAJ2$Sz446^!{LQ#?HO;Utv0yn`bpuf-bmiI$C*^|=Voy=(y+ zQGQzJNS>un1)W8B$a%mV_4@y({VYVJITn5hz*-$!T)0)7gaPHguu{ ziB*!4$q5vv6gQs?16{X;iKU%X`6(zC_+pEh9?+%?Pf_FeC7yER*;2}pnUgK&(kOU* z$EndWIvYX7uF^;q@i$&!QL;;cT#ctptpyWH2l|ey)2sGiLrcf2A;iM*_>N2Z9sQG{ z)GLRSa{NR^J|^nyD=e?HcS_oIUvW#4bGG{Kf?#qFfcW!Of0~JuGtp+}0?yR;<~xp$ z4-zYm!I2S~~s!nZh@m+|4%>68T@vwxe-VV7LVYc`RzDDY%B= zmZ*H9v1PZL8`B+HA!r!s?<7t!9KkE~e)a6&aH|!hO06(Gye9}GiTGg=k32j9im~GK zR?;wcbib?I&z$;RzkMK81JyeluLBOd3N3}huZ@*OIM$KV+~P9(#X`sJZ~)=qkVsC2 zVT$o7sR;X>d~wyf<&<=EluAk|7Tb;=E4#V^|IeC3^^t<5SILR7RLr?WnHBm@DN8@o zL*d{QDcQc15P+~wbbW46xc-p)^j$@1(6*ac=>PloAIxzz&`1(Chk*T>aCn~1z}%Sg z__w2ZjK)*O6)onsVqg}0yKDQXD$$=!6V~na1B;7S;k%$%I*O9Tn(MDXlW>(r%%wHE zWc+w*sxR-ib-zl!rE7O-_f}!XsMp)lpK^qcQ)!0LHHRI0Lde>Dk9e*~$EwF`-}TfM z-}|?L%aWNo*0{RC^#g&*PxE62ZJYwfC|LHPHistX*@o&$t`M_RI=cA-=59LZtOu`E zk@5Cjnjgo}o{yT_e|Q)e=i7g3lFi{&f=I?23G%2Te2z(<-CZGHo^|K4p@P}ZkpXO| zkTI0w*YN?MA>D09&v0I&3aK6z?Tl5|V7Bbvl1v=C-b(Mnl_?qhAs}4}uRQsaEreot z&Nwy}6F|H`!qSqbT`vMke>}Ee=_R+CT$kKpByp;5t-kE1&UWwfgQ`>rKf%=YJ^p#q zpZYKMRN&6gD+AZc^=)G#DSLaVekA*cGx*`P9q%B%p6}X5?9waW_6-~uUDD+%Gay@! zFqFQxK=*@=)-lO{B9JeGKyAgKP3?#DTz`DZdl4=D%OGChI6W+Q5cnusaP-uFVLE)yz-pldQ1y6sD#ICO*V!bRi`cla`rhIr=NIn_h;I`u=Pd()q! zCd7Cc(C~5`vz&?)`Dw%_G!0$;{w$UQSq#HoaOZM9ibTi?~&-Q{n6X zlcX4f{=pE7Aqay9J1#MqSL=ds1+3dqZ?U94F|T!l9RnfVI6xPLOGTvp!0?nD#ps$f zyfYN;QcrfA$WAmq#-icOt<^zrC}wulKr>03GOp)4#(=I8`1ytt>nit zO%x7Ie?oP3tvSe|=9>+=#*zS$rMYWpvvH2%;=eh1f%*I{2{ER(4No=Uze*M7bA-T6 z${E8I)wUeLFRJxD5By~S)#(M_icHh10^c8xgLbWh{YcwjXn@%19W=}C_c}A_kfSMT zjwFglGi^6d?OD{~zU=vyVy6es9Q_kHiPD9bvQ9VH#;eHfQ&oZ~*nkP`75ucYXf zAAhS?=6HeGnr^#}xRtm2=y~>(!0GRZz;_937@KG!yfNrFq_zFdd7~XhC)}zz4SqU(z5zuBqW7+Mz%w9fI2$2vWvXIyG$gjSFW|i|_n@w1zV;P%hoWxJs<59S zsnNSaT-ID^>!|6zSA@M_!!?8AU6Pd;6Ja>>h1zO&yZ-NinkXn4BtiQM0rbKbuNXx4 zGm=M$e02?a8P4=TfcF%|bY#F=D(t+R0KNO84MhyZ^u5PlX^5%eXIw9$0c#o?5&ds3 z>Y&AcUEis0qxA&d*55Mk}#IL%>~)nRbIj&cq??7Spaa2D=4;^*IJD zG?;hM=@L8ii?V<&fOe-G0xtqtcd28PqPaS+vLZWnT+`ohmd+TmH+ruZ@dHozubE2 z{D-QoqV<|mz3p?n?l2yV0#2^CcVgWBGWTkrOeguRvMz=?g-qW4l{M^z4gQVXsQgo) zE~Qz|{H_gq;kIrAc?;3ajsc?MzC62Ff6ytUiZfg$fyBamYZ6=Eu3EPCfNOy2o9 z+8ny5q`u}|zPkwh9vt*`=}in`k)h{iH0kZFmKsg`GKo6NJN%uLal97_v?6IEPkPOfYqE3(FXUUyjfq}p9UVlm8h2w(cCE3bN z`c9pVOPqf^@yMWpzw#TNOO|2*dEuWH2fV)>FwKeB-ouUyt$Gz{pqn!5eHiMV43^h8 zh@k0BTy>FE@dLRWS~oJ)9owgaOpPU_R7X*FE&n$eO#7$Rp)R9ReR*0{c~@d?zSg|H z$CBMEZNM&h=$y6UJv6a2bVIWrd&1qkmZe3JytzslljQi`Ew3ddpI#rS%K2kd4>EyoAyc6Z|;>cY_4A=vHjVq!v)u8Rh_u0;C<=5l7o zM$mlSt7|Bs$=MOeNPfdLLczWpH(jyr&97v#>E8g1WnOxxcbkk?KPM19`HrtCN z#`FDmk4$CZ4m{M2vJzt0fVQJmAc1c($Vo=^{m}4jnZ3U;7k%enSEyxg zLE=)v8r1A~)H+=amc1WRZi>8_sUgQH^oA#sDemU%3aqBEyERhUaUz7+G)6`yL!h~E zNN_nsVg{egV9e0lxXcsjUFtoDyo6&^HHL`Xr*Vt9Nia zX)Rf2-ExiY4AVy2*0{O+frAlkm*-W@YLmdXTTj4UG>A(KOB3d_AG!I~>zYu;u46-B zMl40o`gaY#6*A(jxJeofwNnC^!9k}+{z9X-B3G7Iu=!7*P%D?gb$92*6oeTo>^Qm7 zef8-f$i%2yguM-YSkOtekXEL%1)0_;7`HKSycbI%s_7Pbt`0%D1HBEDC>KG4h&@0)a7Q z^jZ-NA0urF!cDxwU>eFRu37-YneS71VClP-_OU;;(OdZqhtnJ?ldbGoM*&-ad{^yp@1b6%Ps3oez4i!$nK0_E&)5I-7j78*X>%BwX#1`UwDdiO zgBctS0l#I=?TRB14vmo*z^!+`M11dgZW2LGoTEG1SKlS?e2ek}!Q{L)2!KJZ*1MGK z|3{YE&Lew~b=((p=BrNGUR6WjOtGyUn!lkSg5M!{rC$Q)3pLL4TUNfg2vxDHd$YUm z@*JWp9c_uf9D2)Gnq1wcs<%dyC1Kp_5F{KLLC;55`p()f#efz`L)4HyU(&n?^4c8)`dl7M zf<8sf(SiVX=z{DhrW{}Ch$TJTWNa$(`)Y$@s}(N=WolYH>)4pQ^&CMi8c3%^_tJZ> zmYf+<1mLNh0lJXRI|DToptdse#NN3*H|D9YpI*}g#??hy$S~@1FXPkKt$SA}3J{le zUun3ML*AExyL_2e3$sWtrM*L2`8s(ZZZqk?6Ck~Bi(oB-<3!z3d2Q;;R19jf z{01$Qwt+Dvkaj4flD%Cauq(YW3*qSFFgLsT)+S-@mRPZ;T4T60VQ#`A^l_LAI!+x2 z>=N^?HP4XPJ$`RO)-fu3;ckc+7*hP#FCj6a)mD2gve4F@I&y zLcZ9~wlPlsxnq?zToFx4SK61r|FBze=Y2o1$O&F)1m1E-o&By=%mlq1|- z8YS}Ct-G6g_SNbsimauAWbDD+*9dA_i|51}^|-0+!!Z(6O_p#g9vxW9IhJs>2F z@%_yHi?^aB?Ul(; zeiFdf3$mrplKL5E*DfJ&e+LJ@xn(^r9>bp|BwA~IbDy~HorQ@ z(T^lNMXF z_aKpuTeK}5zQx)+d>I4vW|gx`;kNK!i+-uubPKf@QI1i4QNc#Z`xJs2TSC);vgO zUQYu}m}=?_8zSkc72&M)yMYj9#1>@#*(ALW)u+FLi#?xG1IlK{_}+SltMm$&%Tia{ zBJ31}%3qV{q-EV zlQpuiFA`PJ*8f3}%1mJ2JSTB?{Pc$sW!KPDq~WU~u-gJ8hBn=J#{} zIEx(6n&#{`E5-JwDd;G28f$WqV`Hi`p5x^9ZucS?yKA+v1>5YAUsZ~68?^|nkdZ=% zgSKf!EeUUbmNFZwsg{6;cqzR=vy?- zEXTtdy*_5c7U)K2O1yMw`#%kL%$Gy@;JCzo2Zom)JtUx_;|u z*6eMU=T)yo5g)PFD8^_okV}$d(>&`f`f=Dz)7iI9xh>4S?U&m)QmPmmqqW*%Lz8@T zqGRy(tM&NkbU#gl3e0->kLq$smg9zj;9jTj1;#-V{NWf5pTi5^e`8b@=h+TLNKG|{ zP2!U%bl#MiBEyiz1;XiiRpL$S-dNYz*V%DyF`=X z$;I};FtS_@T8i(Hd@WEfcf1Aq!b<-_&}tFyT_u>p!*e;T>g&g@zL^D3e>o?t#8Aqm zd^O*#X9F{h<7;*~?uhr%ckXwWS&d_QdcDxMin4ou@wX~A<7--hs`YXDh``nZTBH`@ z5SF6wrQvANJ-T^;R?hRbER4wJV7~wAf7=Y_#V|b2zWx$%h^tE)?!MneEg|4cZHXOC)qoAq3A#^Orrl3U2=H z64{I*GjZxpOUYLVVr6qXt%YumyR;BrD{-F_b-w}CwV0|v=Y#-U*?8Xxh2Y|$t*du;}zqyps>TT)P$_k09p~@~(11K0`0nxN32} zI_KX-jAwWQW#%0XUO_yofT@?^+a&CLLQSi|05kbr4=rwA&yws(zXEJsNtv)Wn5b-b zknpxsC9TF0JGD69341bLstqRamBPk1z*i^iwj6_UkA_Fa#N)SnAsX)Q33aLZoIX?w zIi}Qa*z&M?Q(#&pbTqzJNr84eWc+G~!%_eiU=}BpZmX(!mh?!G&X$009GnvClFB@9 z74o@iHGls4Bc&^mdSDsb@|?`Gw3tDvpCe&&+>L= zrK%LY8w6*fM)vlOeIfnN=G|7}U!=E!QQ^WZ3Mq3y>dw9T5I50%NA;mPdO$Jh2|9|( zq!v{OVfW%vRHC zlYy!oWy(>etij#K_B}KUJx|tRV%VnkUdtg0hjwl9Y_s7J!DjM&6{D|Ff+){!Ll+XP zMS)rz^q|bPs8Ov_Z-UTGo7IOa8&~>loatd?lNM|&HKrhALQo`p>bZJN{TlD?vCOXauj~aYeersu<2x}mQ+9W7bWmM{#H{H`lv7K zn2Lg+P505`mT)e35}m#1x^5|Hv0sOqoN)nC;In7XNQ|o%K7XZj--ipq9C7k z$XRW5_@hE+kyl-)5NBnK!5E-&T8JY(gm1l>(4?ttLQQ@XHrp(>)GFZoI5BE*iH_tU zhE_sHVy8j_|2GmasJ`&rBX)kAs$J+DB$QrDrn*(b&Z_r~%_5F#DVc|q zx}(tf(SV|7Wy=QfveO(>cXt9PTsTzTp#x75*j5pbwDs(M!@X(kaa|Dm7yu}ALL_qa zFFWsiX2xgJq*CytrOAJm`HC`au$!L(x4v}3iiGWtb2Z*o1yD7@;C@oDeGpMD-g?_Y*_F__^d>0uVfPd^U<8~~h4N^3_)_6B*3ymKwczU0i z&ZSAG9xLGGzN zVpBpmIp#Rs-P&fCRrZbu?xujwi|}j&MTV4PUL7bjZZwWtby*Un`vwu*ipGNSTySC- zpZoRZT5iDTK!Q(me;A)qC$>YAPn_`1j&}r4m8ZWde423TE02*n2=uJcW7uzVk{4ie61IPTlY<5A#` zeXvs`hw0fUZw#-SU-D7U1B6cSlt}b`hv{W==HtHJk3t7J)v$b1;Mra|==xQUjps_q zMJ-`gNjTqu0B1>5{0lgDanTNjoriQEucIqMllQxYxZAjnywyS?oc z7S#jOVt8cWN0-Jonxl{Q^h7marz%8t7M^F>cR4JM^gg9QRL5VwNn~vw4}4Yz9UZAI zc*;PRts~wl%V%_Jv5_T=C+20kpG~@!SyUU}MCwU@-iiZ@0edC-F$}73+A;1)ljn7R z04!Z{6bH~Nd@2!mzJ#%_w_6&S%QK5{+BbBt0A-#H6I4#sX!ZCxmj*iVQ!wqvhKn*> z;(Xts@}MS5L&2Pl90GTPUtD~3my>QK)pl{iR%27MLrrwIyzni=QDrrmwsp(JQRzGDh4ra+ z#Y@FpHRY@B&BC=G#^|j$$aCVNg6G{5fjzb(VUB9J2q-!bb@j|(FowT+f(Y0O+Rfx~ z|L`VYXk$hQi_eNZTbZD8CuY^vYT1wOAc8hDLOg(ei|bljl9>Xi&YW@z1XWM+(O{^i zIShAzJk^f~+G$akq1gjO+++;c3P^e+a3cw;&qhM5qh@AEL|TT4Edrg7@*I=SkdY&-m}dAR<-2 zZ)6F@4L~3*)h`mkb|EW zd8GvX30J1-SQI%hZc2yeI1vQRTZ}-oDZGbpt_HMgw-`UG$E+Ya%OSs`{1Z(&!qD2+ zYBEAmmO!+=k^9FqGL&i7+d<{4AZFZ^YBjsIeq2F+ zb&eT=61kZ4_a@}{((d0IvlF48{rZS5K$tpU=W9DQ6fZczM39~I8M&(TMAow@?3`xdFKza3waaWQtjK_W zcwno8d5&zt40e(uUg1-q&tn-GanKhcdm4qj?=~RU$QY3Jn}FQ31doX~0?)488Kx zboK@&Zfe=-xx@V=i1<-{PV=B9lks!&AlG_tlHVQSKOEmbv0t-;Uc3bx0RE&3D_YVF zPGwxT1DIcbTKJeE^OaH>jqT&>Y=DVucM@uMy*XtjXv{t*3i5SwRhM_hP;Az;zHkuM zGm_r+Y0Fr(6ypH|-x=Ld`938kz2A2}pvmL16UbD~IXNnv5vzkYDW(8h#VB6C@rl(( z%*HnGk{anhhI#Yk0?lwd%`Zy_5`(>V?zEu!y-w5ZT{MXJ!0cTy? z=#`qg@U0otJaz6YCpYh>xOWADo5`(!%n2Yx9`pL;8>Jrl{Q25RvD=( z{6*bW%f6FWk(?+yC!X}rOsp*Z6cQ22Q*yors8%~3lvv76G&AGtICm&@_UJK|sEM7x zh-_()TKytgdmIfoEg@MnJj0wGW{e1tCATaX`1BmW+O1B2=a6uD6S9j@lli z$owt~M30ZLMCh=ZED_rLpH?;leexuq<~)yoSy3pmsir%nj`Jkn=5l<0IK@hxyLqW@ zA8-dw==K5kd^RHV@y$AYKz-^QT!NPG-#ka35{o3R$xiJ){%h~wM8orGIQAX+kHeHS z^e1Lgl#MwO5Jf3-)1gcH&9*?aGVf|Nt%T^UrSjz3=UZ;;t;r+&2&#u6=ubS9Hy*?Y z5^YIPgtX(vI4=S~n;q^7J>dfmRdiPP-}qpLd;8@P=2nQ%A}$Gv4!_@~_l>+0SJoNU zw)G;bu~7$hZO?c`@`0CPfH+)&&md4TX>f1e8-z! zpgoD-`;7E<>~uec<-e|?df{oSsw@B~*rn9&YM_cqI+dD6d+Iw^U)d_QUt?@K6cg8kd$h9a~Bry4i>Mwo5!S$mGeF95AQ2X{q&^3a@&#uUKxT=guU z;cUO<2*&_9@ksmPNQ4&L*cJWB2|OM0le9TmFgczRUE#jPm;8L~sF869hA;UycWyzx*5O|M-+CIahtr`xYqH)fCPHi13Z0q|zt_XH zZL^U(G^9qqJVHC4OyhBa&I&QdQJ!gPYT6W%$MBJyX?#z}iA1|Gj8ERf9ay#* zvgb!mCFYTxr6yu^<0@8@oT$e*VcLs5b_KJ2sl{p^IQPu)W@2Q&9FK;PS8d#527Y5@ zUlk}RNsOpK>mCLIe=01EJd04u`_=-8vg`2r)Op_Ua~|GT30k?)SyusC!tf?ae6i7<`lw$g zOYc29F9Jeqx|ds>kaxwXQkE`aJL!ce(3Q5rw{$d$bNUY-x=(86CXM^ z+Ow^^8JK#E!5RlvFzZBomK~S8f9kUmuO_bwvzOfsJ9g=23E&0LxhMx7(b?^J9J?phn$*uC23tyfF5JB=QAKqVw@gBB0q^m6q=($eV?ODO- z3W8@|jxltN1Hqj9!eXI4UtvDT zvzkJ>x{tZEsa}Hy(uxWE6h!n1-N}<%tA7*d1D%;FT?}kabo3J)sHIxT+~ke3-{MVf z_p;udP?1x&)bACynQ_sE;$}wqme*9DbUt@&({*Q2Qwp;Anp^qU0QSL6WwG%qgH!b` z$K#IncooOP!0QUm@i5S)Qz~|5esl?mtw2aUz?mgiFI?mtyyRzWeuV`#6Nukpz-F_W zI%Xbql98)XU?FzpCv>XnrmiS*=5+@@%7s?O!4Vca7c;=K_8g=yjRREm+VQ(2NwVsh zoa*ITTlD<&*=H^4`3)uuJ<%6G~C9FL`s@$$C=WX~mMh1~c# zfEDZYI?@YL_k@2X9kPei8xeK0bSCM9x$eKRX1AoTM6F3JX^fP$w-vrE2sdwe5`C>E zLtSrNGNDE^PF-iy569--!msKt?3a(@-&enbV(q*OF)iAgu|2PEvp+F-_>Dp2F@E zS<|kJ=QE>V}lay zt)eehD+G<8BA%toFlhVhi~f0fC)-iIo+-z%LGD{Q-k^S6=f<=^AY)O?vtoL;Yk9Dp zIL*m;h=4k;JL*cHdVCSrs2KxCMT>TY+Y|Z=2hv?y(0doF=lwh_rLPP0Ic3i&d+w(1 z3lg+ecOpoor{D4}&m)gj)-bKLM22P{sgpC)M#e6C$DZXG0*&S^855ClHEIs)={)Q@ z<+=e>TlQ700(lvdW#8KyOrJ`@*0ptm_uRoh z%7RX}Ub~CTn-j`7Bsi`&zbNB5Zn>J*P-mFd%@`Th)E3kD#yGADj#jE#O-|Ni(rQuZ zkL9v;P-83OZ}^ADMqOXPmgy~xYX=ogEvdTfskuOk?Qj!aAp=F#3aqw%C-_$$sV-u3eEZ$T z(#W);E}v0S1#vJnwbWW(pSwvG+D$$7Fi^^RlF`nQCG}fXOFL7Ra^i8F?J20(B1Cngie-5Wlx(wa2&8S; zb<%?RB1&gbqW60v#}a?~2x7HdIjd0p(;fz}&L8RvqFTRYcO>;7xj5cIyKRlE&>wK(Umj~R>&^yhB1VqPPO>j&|y9Jk98R{toi zVOmdil{MXr7snKtT2&YrM~1%GGmos*{OwuAU$!Vxi!``)cl$X0DjZJa zYIj4EfQmYRV66_sHwGb9f55?SQcde9_-F+e#7TpU&5*=s6K3?L7VLVd|D*9N%xI;SRbjN=YF#_J#V}z9 z(I?B2WkK}LtB-P>q<1(jLiD86WI*V(%Q5k|^Z$4h=wFILvn&54$#)_lOJbr~u0I_X5|(69nVt0MS2Birl) zo`3!yEgjE4n9A|n70M+btss%^U&mFl&^Bw=(^#HbHMPllw59H-3eM6~yJ9Xtqqq3F z-BK&D0QzUBlW=8f^+C6bz4_YPBTxGtyAX}dVMS;b;>WPjLu+&*F9>b?S0EqXpWZx{bojb*jTF|XRCw2gf&r*9NPfV9*X!MOtCb11GnrZhV_OCrp zv9>zaTy;z!y)uH_TZqoIU%O8AUrhz}%!3K8+z2(Tm%usHu>fyHNRU>u9)ub-olikf znLxTBhtf4o2G^&Cl!iswP&zG0R7V~cCfZ5QyWaVrnI!gDPPRKIbipJgd15NgqG7fL3N(Kv8OckLJ!Nh=%)Ft z=@xp}5J4?6T`a0`?Q75B&4ud5)PX0gZb(pBZm##T17cdKu7fIi^g(|;@cAsR zU$ox!R={-wbZPxhb(!2+mfS#e-&V8(Rmh1sm?6jnt+kN<8}UT&ewENb<40Y-OeTk5 zuoU&{x`f?@xSeu#IUaZFSm=6s1}qKopHa3%*V$oR4}q(Hy(}LEV6h3^j6j77zGk1P zbF!RnR)k!Iu5UUsY>9S%A}_#D6E7E7IBh?k#*}#5$LF~Hp%T#kRG&>5w3g(cqZGp< zp!>X|R$Rs1UeFTlrq!r9BVuj}uiho@o*v+dCW`qz`HpaAyw<5uH?*q~DBi{dbS$6C zR}nV_=^G!_a-UuWT{jiHERQJQhQAFp@+f3#?57G#tev>YH;wy@j;@EYv)=o6=+T-K zaumj9J=h8{oSo=>Tyb0NyZQ=mXDJV*7~;-?`>~uuJC#Cumt@p-;UcU-^E2JX&f`6D z#=oPf_O0w^)|yw0^hoWzm4xR}yJr)>rX zX{+M-G}(G6oDWx~+X>EYzfBPtnnv~>iZP_Cy)6I+V7lyyVUQ7$7v^g=HzV`)an|Ew z>{nkYlPv5jpfzZD0}b(Yt}y&#t|LuC89e~%f6C@CT{EylUzIMH5U@ng%|VKfu2H_A zt^NcnLTeC-C8ZG@Bv^9t0yIe$#JlB&%)1LaEH!NxEN$ZLHhHEW6H?(SonVKE1iZnd^?Ly$J zrfpbVGc#4n9DVGnDB9Bi#B`;|D^thwbvsTb>Fr}7Y4d?Cr>NJ3cf1QRUO^$k zZczdKaD63F>E7H%O7ZPg`lqD6D--71o)RIF-uk&Lq3MKn?oLfxgeAx!gEkv*}VhTj*}lbyrOS z2ooCT2_2#Bskp7Kmmie~X3pR&0Bnsw=(dEeGr>d06jv{1`4(48%-%9x!a)GG$eIeX z>F(mW&yq=$N89jrYfWF_ZMIoJCO0dKOO``Ss#(5&Ys~jpWrl<4fzE)ebBGlrvy}Ct@VB`7&$mliQ3npk%#&XRds}Yr+5!-w{ygY2!I(ylV z5?M1RZMXPDYjzJsh&&A5pQ#sNHxVX?wB>xiHhn@hZ}+FE-D!|$Cb%n4TLZR&1X(Zd zLR(x-k+_m~Y?nnvX@|Ju`927R8gea*tP{O@`hIGV;lP}xp*Eia0a z&^09BXu#J^%alzuOtg$7Kv0OQcM0mB6E7%+4}8iIdu5{QjQunTTn*(b^*0kXtoF8; zx{Eh#NMrt2ZG> zB5<}N&{QUyl_)YzT-%A5zu+x!3RKSv}@H0ZKpLES}MAgkC_*LUw7`UFdy(A^MVrgYnA zP_4fmK5G6K0?}v+(Pp+>!q*{!qMQ5jh@t_nERW#u&6Jf17X(M6!RmUkGzFsg!O>Zq zOK+P4z!0`&ax@ZK!7PFnog@k+GxjJ`Q?wNB5sRibb*NUL__>}WX7TD679;kdXMkb* zj)bAvUj1!~K%7^}>6{0r9=}4Wn?Y^!iV%b6zciM;X9-L|c2Ciqt*?VSsdb((2euPh&s8GI$Av#_2) zA8vtTLu55gFy$QeObaXnneJY47t`Y0iN5l^>dG%nZ>YSc=1A?SQ<8#-}l$h>+v z)Ad)VML}H|oPLgIx~V8^JE8CqI+M<4oGD`P1$_P)Zc=@h9y>_b%|bL%Z8g2iwi44_ z!AMvCY`=sJeOgyCUk$s9!%9)f~4%4^x+tzM|=-Nd!2ipHWo;QA?of$w+A^ z&o|KdNVG4et4l85=dWW*NhoPhbyje%urk{6N~cLo&70X(uBrO{{_06w{eC<55H_<458DS*~OkDyC7N=KB#w*E}6+2AhU(cUK^#$@kXnq2aoB zy(nl$Z;&?`1RkL?1W;5n$`F?BN)BMCTN%`#c|7-fnKE6om)&TvbY56L+*>N9-n0+v zPVfF^mhOI`SUSn|Rq7eCOo^^5PuHA6J%OyF<8z>hn%{!ZMV4__G@X(-$^nQvm5t9l zLsjS_z5UEDOQ*)0PQ1+#wWqhMccUzCUxuoRJ2m)b=!!aIR^j=I%v`k(dis~QJkWdpn+(_7ZB-8H5b`wvnyQ&3w$uWo@qLS`kNXpx8EC9`zwGh2HX1u;3(n=X)(HNU)BmRW>s3|rse zwB#56O50D#oF|%WmdZ~&El$<#Ftr}BY$~!wyXit&g+YJyOY}4Z;SK1Sx_=xHSF6 z(tDx12I@ZJ>+`)Wy5$mHsl=r-G)VF#*MQ!P&qYWYdiA%V>U^+8qN&W?USXe8>wi(LNmuYdgYpTE=7{4c3yy)2{rZAuH3-oO6+7hm%KIp5VPv%~SKl=MYR z(mcMl_PK;pkbiB`f)l39KSO^ig^4t}wkAe93L{n7)Kbu@wzGs!a1qRI0+f)3q7bYy zLhQii#J|I9I)&kyZk zUCEKdK=5By$bsHR65wTz{P$szk?fIvq^d3q4;+C+u*#_ZWaQOz=sB8q)Bw0?h?4qr zs>WK&EQ2O`MaPfMH|Ec^wEtj$P>+?FE8yxJvltf4jp`ce|7ZDZ^C;0aLDbAt(ppbwgqdDxAs9&5RiP1W z^~gjp!|N<{*~>-i?w@Z~E^=L?1V)=elG?AAI!(pTYh9j~vq$q$yoBAIO6uf@l(R}_ zde8k}MV@ZDOBhjlRBW&koVj&9Gqh=#6+lU~6}EClSbTN7x&1tUdjOTyQR}Q$d5~yR zGM2lXib5qzct<7ZDi8DbZY31*+4=Us%FYn+m8&{rCkz*2=1bU1C>n^+v>9YWJ%^rm z_m)@1dpPl(igl+*?oxrxYxiGtzM6SG<2sV#UXK(4Ekz8>>t2-?p# zAMe&vi}cI)IVna7+YXG^d{(&sF!^Yefk@Qfp#-|EOvNOH28nRFtC*C8h*+u`p%Qwu<}wkbL8On%|Ken)DHgN) zu}!LcH$e{flHgHZUHOcx&5wQ)3qR^I3;~yy^vH&CkUS)Wi7?+oD+`8I>DD-9PU0OG zoC3WFm0+0Cq8LqmIGiRKbeGg(J!{m;ZO4m-l1H6k!AcyT&Hm;re1;V<{u@5#)U<4PwXz#9>x0*XD>`iFE@S_O8ky>>9M<9*DW&Ov= zHTGyVp>P7e4hmK9F8{NGI>V}xLfhccb9phes;(OGIY7}c#7r!#pRaEq8fqHDNK(3% zMg(0e>HAVqKvX7Nmu#JFk-Jwi`n(J)|CbUe6Xg3?1~7`I5$FLD)z}y=g~UlF3?`WM zM#=#oH-W9^a{n%*{5*C_ZGc5-c=-dZSow4|7}=U_2Hvl1YRo~GC9D=Hb7{qZh**Wn z==Oj-;$I&;n~UhU@g*bMh>J8ZHA{))?dx{{=A(u0k;S7FFOnF}^tJpa&jK?5GhGQf2lMc0BjAsA(eSk()6IRsuoObJ^M~$iD z&zY~~4#?QJ7FGy|PA0%bRpUfK@RHk^xEeufINfBN_i`xFP@@QDirL0xi&29HwOp1y zyerio@ixdlG{{0e+h=-3Obcp(?*&=ibh7{o68+N58l8YlBXpc$8- zfK|DFIfE2n1#Id>08*W3+3YeV=?noN12X#GiW8&N_l*g+GcYv*r@9Ya8kNTbSvx>S#DXfYh9_QO@y~iUA{)lHPihYmY~@>Qkp; z=}pDR>Zp^&j$~m=c@HV>7!{i73LQaMI}Ba6_Ik0!Vi0Ocoj@}w4K9C?*E5?#8H_89 zsECk7UPdwz@+;s2L?#&=@G)rM0UnhycD(>8JZP015Sw)q1%HkYpXk|Sq!b<-{H{t2Ox zja3Br3pgg-47>VYUHh_gS8r#y6&iQ#Wlso>72m}dGa&G7lETw#)n*?>fPOcxF*cBu z8n(vQ3=z~x7Uy4h%X^-RmeqEsw@1Z8TIl?HNERw%u?oF)#H;8i$LVoWNOr|GO0|Ww z=O)N{Kdoa;F*| zbmNC~0UagKbjbs-CtBt5i?oKUM8~9q1`=vntY4QNejzerTcvin8LD$z-*Oolu~F#%+M6<%+M zP>pv99`&y@425#i2V1l&Wn(J0KBDJ9=@7G5B8!f@1{$b>aVr?|i0F9hj?-3E54|Et zG#6uvcRVUEsUfT`s)(A{-JP8??oK-#FBJt#y;2<8@;&aqFX3%B%}TYNFml&{bOJ$g zzo{lUWW8-&RETV7-h_}^Y&xE&v9{V)y#zg?lTw1@M=jaAij(4r8*sc~D1oFa0V^cr zB#7sDK+xl5Mzcc%$y#YpJ00RB@^bLpyCa2yY#cD5r1-DJuKVv>jJ`2h%Ti#Ezt3r6 zT-5vsc}#x$2zJUzLGt5n^yk-PzG55`Muo{FR1-|rRC=CSN+<@C>cb>8ihOT0k_jeN z8%tk~{yo(qCWx%1a$;qQDPiilPsUY!@59O-E>0*Zv7{ZPCN=2rCo>uQj;)sGvaK&W zUCx-D_&ZBYYe)o~x-S{c0HvdKX?}I+2`3l*8>`Tp7+BA#`E7s~3&^j-!fI!T)p3-3 z9gb?W^;Ck@;qOx?5gR)$_&#@gRh%r>+fRmMm*+C4A>pJDCY8O7Z|JwS?(^-JpY=wj z5btEJbO4OVV;l9q|CuhgEXz_53XUji9iQm@C)Pw@R`s9W!}S3eY;ebxn&^)05sQ%b z))g&}X6IVAv`riFct?4i)|6(KbF72a62;e`y&MFPpUBT~MKHL;wx8&`0=-QkBqL*D z5UvFt<26T1K%S&PSR+*<9&0P(!LC;4Jb}Jcj|fiIiZ6bfM$7~xeCLwrM{v|xuH@qy zm8tYH-xEKvLY>9|NoRVkA6w>8l*hnhPKU1uI{r{T8AC_>L(sEMC)j?r3TI2l(ue!Oan4(2 zI+a#x3&+owxrHNT{FK$M2sUc|7xrZf#(+nTjfRnN@y(23J+uXrCZai1@N)i zG-)+?UOW6^X*#kLKB5|SSt)dInR=XT*oDUEWx;D-i=PXP?egqEP9y68 zy~|)xBJk6F>e?+Y|LM>XRdtvD3d1s#Wcv{k9&MFmYKToNXX5C%IaUzz*jR1>Iqfvy zGOC-5(rPaG$~KRW*C@hAIa49;T9!7OSabw}|}BG7y;n`D(2- zP#1JpIkr?yPlkx3P*=Q{{Vi%H$13`6`YaXwY86PFM<2?a%@Xd5dx7kz5ad*ijHrTLaUR@$h`U?Kw(?3Hx3RHs-UtB z2QorXPfMG5U*hqUuh@(f<5=J^BgfgHV-DXN3iVdKTIkqx^_Gql$vW0)l+sUie+F5M z^x3kJ;!;M72o9gjNykMdwo649$8{>`xGY**Hqt*G*1Dh7X^+Y-wd1fJZuyuD5kZRP z-xyK~QDYqJF5629c4f|U#NECkV*(rL-dsuHIG#`MrImsykvA1N%OO|ajeN*i=lvkq zLM~=KSlWV{v! zW;o=09J>pI=yhobr1a@wQEG7lGz?*z`E5T$E(U2=FB+R~7X_)Nc$6{v$*XM>LrY2+v9NbzxO zq2l3aWj4aX_!W>aA_|XPajo5!h~!_0$L|Hc=s2F$B{bcekV>&DiNU96Ek~%-6jHAFR@97YB6_fXqm6yb_RY)WNrI7^ZbJH`fi&G0zv}2C8be z?+fXet)R~iI##!-)mo3DAs*?c*c?2j-(R-IQGA;^@G;ZC_d%FB{w_xxJJ{v(J>BBG zKf-XvQ`5B^kd*1{3M7+i2loNVf6w>W+J>oks;N1S|0m}|O45gLPY^lnxhgus!J-f-~A zN|mqdh?uE-(JJ3k=CIo0ORT7C8SnkCmps06v`p=D?A|_CQ?k+XV)n#ip6{6OnV_5Q zr1kk%WaW(d)a%2H*J~XgZ&P7ww4Ei9j&Mx>YIH345oL7I>wR((5*S!F?#lzE44k@U z@1{iy4M#IMxMmmMS0Q%fBW~<`DfRKWnhZLtmz7!7KWzK4&+};AZs@df1%TYf9tn3; zCagP@o_E)d;PDetM>tXux$#&4anHJD;Snu+N;@`slwOMXqZ>V-`^5~Ru%=6B2Dl$O& zbL0m{R)dYhUPCMCI5vBReUDp$#-#%^3ZOYZ+yxr5n{11mh}WDx=ZnXD$FvTXnc-pu zkMn#18#8_Q{b6xBp*npws9Kfo-pj?J+Y&iG2*LYRN`uBcjQ0nOlu@hzBe5t~T(TuT z?wBOXg5?vqilvu=sF_?Sw1JG>zTikkD)sm5!nW&PcR2)XEIbSwGe}bBsvNV-gyYn5zlpYXY&F&)dO zS+TA{^2$bJNbqU!>S}wGW9eP376tbUmn!KPm)#YPv`JBRrx*48c2S6QKldreKBi{< zLzd6xmrllChok+~VOKaNP=iBvPd_UVu%BxlH>4P^R0EZbz<`6@}SybS-3cq_gGQh z(kY$0Bc(`hoezf1={OKYm$AonCI@YqI8rW1(I}Sg2 z*xvI1k9n)X9}oi=5w43m^pyqat$+y0Yzh9~E@dDo_*e8WI-Qyi|SXbk^I}ZZ2(rZFA=?^rVh6z2*WZL%3iV_gb+1W2JfYd5jw!w?!bul^r z`U0i~CTdYsXJ$+ifl1>i^S)y)h3>ueZCDp;MR}|N^!RKcHK(<(L52VbN{*<(YgM_+ZNi=ZPgm_AJyfR z9odcp!L7^&)Q1i<``_3gGI7=Yex$-F6b(!;q5M5vUU2Oix9s_p>K#h;Y1@3)2J}iZ zF1sf&##ete(a~o}tQ=1PUkuNpkK59@&Kc4m{tRXNSCD`<5g0nxk&N3zC%$^^)~egU z+I$aOE?_b*K$XD|F8% zp>u?R_ZRF~Apd#aHLAEi?+S`Hp_4uLTSt`W0a>JL!N$&kRXlcpKYm^r|}Ux0Zbg8*AahTvmyRYcWf7d z(I#3Hp-RDqjImtHm{~9+!OXP&N!YvmJYeL-o2*lz~O&_M0kdj zE5>8e>Y>Yori=DDLgHb{baA)~rTKSCy}Eb1K+MCVQx%4rmyeRF;Y7}?%iKKH$%uJPVR#Ik5e(O*Ai9ZsuYOHMy)6mCl3sVhmg(ZPzQPHa^#ym z^-zVk2GyD+WN38l3eOOTdB^D2f-ucu=KOR)$&OQYPo`o?13!{IL}A3`El-=-T^LGD zTgQfUQu~&Cobl$3(*VH;IBw&b%Ix$}u4qN-b8GkR+MVT_g!=haO2bN6$i~pC8B+%Z z!#ink$}xX`(odJ~kKD!61~8cG)$UAHc~GxN;bxN`tvCS1c4Z7hm?whIfu7pepZ$W4 zIw27LvCzk|8h&2zDve)=hG^652!Z8f9lXkC4%+`J+>*h_9$QOFX}Y`8_H!w{HAG(c zr*vBdul0En6bqYS5ti{iHfY$YNKC2c&;e-?vqJ_Qy1%^*-+L9`6~rwZL!+1eu;Wp~ zPCMSIit*NJlpPgq!}_{zYxJ-B)skefiqsstyK`-t?qM&M$_JP1t`2cZ45zpNio_p^!__6 zK$tqx=Oez2s*CGV_POrUV{^2i`YbBu4|SB6))}ALwHp&p6U#bvX&_v4<`98H5*Q;a zaK9C|OqV!Xm_f}eUML&CTR)kQc&fN}#%jyxsN3QBVhX~cn_-y1>c%MoYkE878WO)$ zG}h)ZUf$q@=+(VSwPK^T@I18$rn&?MJmRLfV)bRQE2=CG+VD1UN&v zY-}0UrBicFvwls(L1}h;^ynRR@e;v2t5YHvWo?6+n11HK1U;3#&*w$6z3I<1BG|WE z<|{R(wiSGrGLCg*%`f8c7mYyAPT^PMr+zuV>15b145VsKvTBGVDU zQ^%W9d2^LPP-?tFU{i|WsLzYBuh lQ}t>#Bp``)p>jNRaTcCqSCKyiZ!*yT1TC! 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≫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